diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 79121776..f773ef2e 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -15,7 +15,7 @@ concurrency: cancel-in-progress: true env: - GO_VERSION: 1.20.14 + GO_VERSION: 1.21.13 NODE_VERSION: 18 GOLANGCI_VERSION: v1.53.3 SOURCE_MAP_SUPPORT: true diff --git a/go.work b/go.work index bd088338..a33226a5 100644 --- a/go.work +++ b/go.work @@ -1,4 +1,4 @@ -go 1.20 +go 1.21 use ( ./playground diff --git a/go.work.sum b/go.work.sum index c8541949..16d0df52 100644 --- a/go.work.sum +++ b/go.work.sum @@ -203,11 +203,9 @@ github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9 github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= -github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo= github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o= github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= @@ -247,6 +245,7 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -287,6 +286,7 @@ golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91 golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.20.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -328,6 +328,7 @@ golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= +golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -356,6 +357,7 @@ golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -405,14 +407,17 @@ golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.23.0 h1:YfKFowiIMvtgl1UERQoTPPToxltDeZfbj4H7dVUCwmM= +golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/telemetry v0.0.0-20240521205824-bda55230c457/go.mod h1:pRgIJT+bRLFKnoM1ldnzKoxTIn14Yxz928LQRYYgIN0= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.0.0-20220411215600-e5f449aeb171 h1:EH1Deb8WZJ0xc0WK//leUHXcX9aLE5SymusoTmMZye8= golang.org/x/term v0.0.0-20220411215600-e5f449aeb171/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= +golang.org/x/term v0.23.0/go.mod h1:DgV24QBUrK6jhZXl+20l6UWznPlwAHm1Q1mGHtydmSk= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -425,6 +430,7 @@ golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= diff --git a/playground/compile.js b/playground/compile.js index b7a6a4a7..7d70a96a 100644 --- a/playground/compile.js +++ b/playground/compile.js @@ -1,7 +1,8 @@ "use strict"; (function() { -var $goVersion = "go1.20.14"; +var $goVersion = "go1.21.13"; +var $testBinary = "0"; Error.stackTraceLimit = Infinity; var $NaN = NaN; var $global, $module; @@ -69,6 +70,7 @@ var $keys = (m) => { var $flushConsole = () => { }; var $throwRuntimeError; +var $newPanicNilError; var $throwNilPointerError = () => { $throwRuntimeError("invalid memory address or nil pointer dereference"); }; @@ -93,6 +95,68 @@ if ($global.process !== void 0 && $global.require) { } } var $println = console.log; +var $callstack = (skip, limit) => { + const oldLimit = Error.stackTraceLimit; + var stack; + try { + Error.stackTraceLimit = skip + limit; + stack = new Error().stack; + } finally { + Error.stackTraceLimit = oldLimit; + } + if (!stack) return []; + stack = stack.trim(); + const firstNl = stack.indexOf("\n"); + const firstLine = firstNl >= 0 ? stack.substring(0, firstNl) : stack; + if (!firstLine.includes("@") && !firstLine.startsWith("at ")) { + skip++; + } + return stack.split("\n").slice(skip); +}; +var $parseCallFrame = (frame) => { + const posRe = /^(.+?)(?::(\d+)(?::(\d+))?)?$/; + const parsePos = (fnName, framePos) => { + const m = posRe.exec(framePos); + if (m) { + const file = m[1] || ""; + const line = m[2] || 0; + const col = m[3] || 0; + return [fnName, file, line, col]; + } + return [fnName, "", 0, 0]; + }; + const receiverRe = /^(?:(?:Object|typ\d*)\.)|(?:[a-zA-Z_$][a-zA-Z0-9_$]*\.(github\.com[\\|/]))/; + const stripReceiver = (fnName) => fnName.replace(receiverRe, "$1"); + $parseCallFrame = (frame2) => { + const atIdx = frame2.indexOf("@"); + if (atIdx >= 0) { + const fnName2 = frame2.substring(0, atIdx) || ""; + return parsePos(fnName2, frame2.substring(atIdx + 1)); + } + const atLeadIdx = frame2.indexOf("at "); + if (atLeadIdx >= 0) frame2 = frame2.substring(atLeadIdx + 3); + const openIdx = frame2.lastIndexOf("("); + if (openIdx === -1) { + return parsePos("", frame2); + } + var fnName = frame2.substring(0, frame2.indexOf("(")).trim(); + const asIdx = fnName.indexOf("[as "); + if (asIdx > 0) { + var closeIdx = fnName.indexOf("]"); + if (closeIdx === -1) closeIdx = fnName.length; + fnName = fnName.substring(asIdx + 4, closeIdx).trim(); + } + fnName = stripReceiver(fnName); + var closeIdx = frame2.indexOf(")", openIdx); + if (closeIdx === -1) closeIdx = frame2.length; + var pos = frame2.substring(openIdx + 1, closeIdx); + if (pos === "") { + return [fnName, "", 0, 0]; + } + return parsePos(fnName, pos); + }; + return $parseCallFrame(frame); +}; var $callForAllPackages = (methodName) => { var names = $keys($packages); for (var i = 0; i < names.length; i++) { @@ -215,7 +279,7 @@ var $convertSliceType = (slice, desiredType) => { if (slice == slice.constructor.nil) { return desiredType.nil; } - return $subslice(new desiredType(slice.$array), slice.$offset, slice.$offset + slice.$length); + return $subslice(new desiredType(slice.$array), slice.$offset, slice.$offset + slice.$length, slice.$offset + slice.$capacity); }; var $decodeRune = (str, pos) => { var c0 = str.charCodeAt(pos); @@ -364,11 +428,14 @@ var $clone = (src, type) => { return clone; }; var $pointerOfStructConversion = (obj, type) => { + if (obj === (obj.constructor && obj.constructor.nil)) { + return type.nil; + } if (obj.$proxies === void 0) { obj.$proxies = {}; - obj.$proxies[obj.constructor.string] = obj; + obj.$proxies[obj.constructor.id] = obj; } - var proxy = obj.$proxies[type.string]; + var proxy = obj.$proxies[type.id]; if (proxy === void 0) { var properties = {}; for (var i = 0; i < type.elem.fields.length; i++) { @@ -385,7 +452,7 @@ var $pointerOfStructConversion = (obj, type) => { } proxy = Object.create(type.prototype, properties); proxy.$val = proxy; - obj.$proxies[type.string] = proxy; + obj.$proxies[type.id] = proxy; proxy.$proxies = obj.$proxies; } return proxy; @@ -505,7 +572,7 @@ var $unsafeMethodToFunction = (typ, name, isPtr) => { r = new ptrType(r); break; default: - r = new ptrType(r.$get, r.$set, r.$target); + r = new ptrType(r.$get, r.$set, r.$target, r.$index); } } return r[name](...args); @@ -542,13 +609,80 @@ var $instanceOf = (x, y) => { var $typeOf = (x) => { return typeof x; }; -var $sliceData = (slice, typ) => { +var $unsafeString = (ptr, len) => { + var byteSliceType = $sliceType($Uint8); + return $bytesToString($unsafeSlice(ptr, len, byteSliceType, "String")); +}; +var $unsafeStringData = (str) => { + if (str.length === 0) { + return $ptrType($Uint8).nil; + } + var byteSliceType = $sliceType($Uint8); + var b = new byteSliceType($stringToBytes(str)); + return $unsafeSliceData(b, byteSliceType); +}; +var $unsafeSlice = (ptr, len, typ, methodName = "Slice") => { + if (len < 0) { + $throwRuntimeError("unsafe." + methodName + ": len out of range"); + } + var ptrType = $ptrType(typ.elem); + if (ptr === ptrType.nil || ptr.$target === void 0) { + if (len > 0) { + $throwRuntimeError("unsafe." + methodName + ": ptr is nil and len is not zero"); + } + return typ.nil; + } + if (len === 0) { + var s = new typ(ptr.$target); + s.$offset = ptr.$index !== void 0 ? ptr.$index : 0; + s.$length = 0; + s.$capacity = 0; + return s; + } + if (ptr.$index === void 0) { + $throwRuntimeError("unsafe." + methodName + ": pointer does not address a slice or array element (missing index)"); + } + if (ptr.$target.buffer && ptr.$target.BYTES_PER_ELEMENT && ptr.$target.constructor !== $nativeArray(typ.elem.kind)) { + $throwRuntimeError("unsafe." + methodName + ": pointer does not match slice element storage layout"); + } + if (ptr.$index + len > ptr.$target.length) { + $throwRuntimeError("unsafe." + methodName + ": len out of range"); + } + var s = new typ(ptr.$target); + s.$offset = ptr.$index; + s.$length = len; + s.$capacity = len; + return s; +}; +var $unsafeSliceData = (slice, typ) => { + var ptrType = $ptrType(typ.elem); if (slice === typ.nil) { - return $ptrType(typ.elem).nil; + return ptrType.nil; } - return $indexPtr(slice.$array, slice.$offset, typ.elem); + return $indexPtr(slice.$array, slice.$offset, ptrType); +}; +var $clearSlice = (slice) => { + const n = slice.$length; + if (n === 0) { + return; + } + const arr = slice.$array; + const off = slice.$offset; + const zeroFn = slice.constructor.elem.zero; + for (let i = 0; i < n; i++) { + arr[off + i] = zeroFn(); + } +}; +var $clearMap = (m) => { + typeof m.clear === "function" && m.clear(); }; var $min = Math.min; +var $max = Math.max; +var $less64 = (x, y) => x.$high < y.$high || x.$high === y.$high && x.$low < y.$low; +var $min64 = (first, ...rest) => rest.reduce((m, x) => $less64(x, m) ? x : m, first); +var $max64 = (first, ...rest) => rest.reduce((m, x) => $less64(m, x) ? x : m, first); +var $minStr = (first, ...rest) => rest.reduce((m, x) => x < m ? x : m, first); +var $maxStr = (first, ...rest) => rest.reduce((m, x) => m < x ? x : m, first); var $mod = (x, y) => { return x % y; }; @@ -911,7 +1045,7 @@ var $newType = (size, kind, string, named, pkg, exported, constructor) => { if (src.$length < dst.length) { $throwRuntimeError("cannot convert slice with length " + src.$length + " to array or pointer to array with length " + dst.length); } - $copyArray(dst, src.$array, 0, 0, dst.length, elem); + $copyArray(dst, src.$array, 0, src.$offset, dst.length, elem); } else { $copyArray(dst, src, 0, 0, src.length, elem); } @@ -966,10 +1100,11 @@ var $newType = (size, kind, string, named, pkg, exported, constructor) => { }; break; case $kindPtr: - typ2 = constructor || function(getter, setter, target) { + typ2 = constructor || function(getter, setter, target, index) { this.$get = getter; this.$set = setter; this.$target = target; + if (index !== void 0) this.$index = index; this.$val = this; }; typ2.keyFor = $idKey; @@ -1180,42 +1315,66 @@ var $methodSet = (typ2) => { typ2.methodSetCache = []; return []; } - var current = [{ typ: isPtr ? typ2.elem : typ2, indirect: isPtr }]; + var current = [{ typ: isPtr ? typ2.elem : typ2, indirect: isPtr, shadow: void 0 }]; var seen = {}; while (current.length > 0) { var next = []; - var mset = []; + var mset = {}; current.forEach((e) => { - if (seen[e.typ.string]) { + if (seen[e.typ.id]) { return; } - seen[e.typ.string] = true; + seen[e.typ.id] = true; + const promotePair = (name, m) => { + if (mset[name] === null) { + return; + } else if (e.shadow && e.shadow[name]) { + return; + } else if (mset[name] === void 0) { + mset[name] = m; + } else if (mset[name] !== m) { + mset[name] = null; + } + }; + const promote = (methods) => { + methods.forEach((m) => promotePair(m.name, m)); + }; if (e.typ.named) { - mset = mset.concat(e.typ.methods); + promote(e.typ.methods); if (e.indirect) { - mset = mset.concat($ptrType(e.typ).methods); + promote($ptrType(e.typ).methods); } } switch (e.typ.kind) { case $kindStruct: + var nextShadow = {}; + Object.assign(nextShadow, e.shadow); + e.typ.fields.forEach((f) => { + nextShadow[f.name] = true; + promotePair(f.name, null); + }); e.typ.fields.forEach((f) => { if (f.embedded) { var fTyp = f.typ; var fIsPtr = fTyp.kind === $kindPtr; - next.push({ typ: fIsPtr ? fTyp.elem : fTyp, indirect: e.indirect || fIsPtr }); + next.push({ + typ: fIsPtr ? fTyp.elem : fTyp, + indirect: e.indirect || fIsPtr, + shadow: nextShadow + }); } }); break; case $kindInterface: - mset = mset.concat(e.typ.methods); + promote(e.typ.methods); break; } }); - mset.forEach((m) => { - if (base[m.name] === void 0) { - base[m.name] = m; + for (const [name, m] of Object.entries(mset)) { + if (m !== null && base[name] === void 0) { + base[name] = m; } - }); + } current = next; } typ2.methodSetCache = []; @@ -1412,23 +1571,38 @@ var $newDataPointer = (data, constructor) => { data = v; }); }; +var $indexPtrGet = function() { + return this.$target[this.$index]; +}; +var $indexPtrSet = function(v) { + this.$target[this.$index] = v; +}; var $indexPtr = (array, index, constructor) => { + var makeIndexPtr = () => { + if (constructor.elem.kind === $kindStruct || constructor.elem.kind === $kindArray) { + var ptr = array[index]; + if (ptr === void 0) { + ptr = array[index] = constructor.elem.zero(); + } + ptr.$val = ptr; + ptr.$target = array; + ptr.$index = index; + ptr.$get = $indexPtrGet; + ptr.$set = (v) => { + constructor.elem.copy(array[index], v); + }; + return ptr; + } + return new constructor($indexPtrGet, $indexPtrSet, array, index); + }; if (array.buffer) { var cache = array.buffer.$ptr = array.buffer.$ptr || {}; var typeCache = cache[array.name] = cache[array.name] || {}; var cacheIdx = array.BYTES_PER_ELEMENT * index + array.byteOffset; - return typeCache[cacheIdx] || (typeCache[cacheIdx] = new constructor(() => { - return array[index]; - }, (v) => { - array[index] = v; - })); + return typeCache[cacheIdx] || (typeCache[cacheIdx] = makeIndexPtr()); } else { array.$ptr = array.$ptr || {}; - return array.$ptr[index] || (array.$ptr[index] = new constructor(() => { - return array[index]; - }, (v) => { - array[index] = v; - })); + return array.$ptr[index] || (array.$ptr[index] = makeIndexPtr()); } }; var $sliceType = (elem) => { @@ -1497,8 +1671,8 @@ var $assertType = (value, type, returnTuple) => { } else if (!isInterface) { ok = value.constructor === type; } else { - var valueTypeString = value.constructor.string; - ok = type.implementedBy[valueTypeString]; + var valueTypeId = value.constructor.id; + ok = type.implementedBy[valueTypeId]; if (ok === void 0) { ok = true; var valueMethodSet = $methodSet(value.constructor); @@ -1515,14 +1689,14 @@ var $assertType = (value, type, returnTuple) => { } if (!found) { ok = false; - type.missingMethodFor[valueTypeString] = tm.name; + type.missingMethodFor[valueTypeId] = tm.name; break; } } - type.implementedBy[valueTypeString] = ok; + type.implementedBy[valueTypeId] = ok; } if (!ok) { - missingMethod = type.missingMethodFor[valueTypeString]; + missingMethod = type.missingMethodFor[valueTypeId]; } } if (!ok) { @@ -1640,7 +1814,11 @@ var $callDeferred = (deferred, jsErr, fromPanic) => { $stackDepthOffset++; } }; +var $panicnil = "0"; var $panic = (value) => { + if (value === $ifaceNil && $panicnil !== "1") { + value = $newPanicNilError(); + } $curGoroutine.panicStack.push(value); $callDeferred(null, null, true); }; @@ -2479,7 +2657,7 @@ $packages["github.com/gopherjs/gopherjs/js"] = (function() { return $pkg; })(); $packages["runtime"] = (function() { - var $pkg = {}, $init, js, _type, TypeAssertionError, basicFrame, Frames, Frame, Func, errorString, ptrType, sliceType, ptrType$1, structType, sliceType$1, sliceType$2, ptrType$2, ptrType$3, buildVersion, godebugUpdate, knownPositions, positionCounters, hiddenFrames, knownFrames, init, GOROOT, registerPosition, itoa, callstack, parseCallstack, ParseCallFrame, Caller, Callers, CallersFrames, SetFinalizer, FuncForPC, Stack, Version, KeepAlive, throw$1, nanotime, godebug_setUpdate, getEnvString, godebug_notify, fastrand, fastrand64, fastrandu; + var $pkg = {}, $init, js, _type, TypeAssertionError, PanicNilError, basicFrame, Frames, Frame, Func, errorString, ptrType, sliceType, ptrType$1, ptrType$2, arrayType, structType, sliceType$1, sliceType$2, ptrType$3, ptrType$4, buildVersion, godebugUpdate, knownPositions, positionCounters, hiddenFrames, knownFrames, newPanicNilError, init, GOROOT, registerPosition, callstack, parseCallstack, Caller, Callers, CallersFrames, SetFinalizer, FuncForPC, Stack, Version, KeepAlive, throw$1, nanotime, godebug_setUpdate, getEnvString, godebug_notify, syncPanicNilFromGodebug, fastrand, fastrand64, fastrandu; js = $packages["github.com/gopherjs/gopherjs/js"]; _type = $newType(0, $kindStruct, "runtime._type", true, "runtime", false, function(str_) { this.$val = this; @@ -2503,6 +2681,14 @@ $packages["runtime"] = (function() { this.asserted = asserted_; this.missingMethod = missingMethod_; }); + PanicNilError = $newType(0, $kindStruct, "runtime.PanicNilError", true, "runtime", true, function(_$0_) { + this.$val = this; + if (arguments.length === 0) { + this._$0 = arrayType.zero(); + return; + } + this._$0 = _$0_; + }); basicFrame = $newType(0, $kindStruct, "runtime.basicFrame", true, "runtime", false, function(FuncName_, File_, Line_, Col_) { this.$val = this; if (arguments.length === 0) { @@ -2562,6 +2748,7 @@ $packages["runtime"] = (function() { errorString = $newType(8, $kindString, "runtime.errorString", true, "runtime", false, null); $pkg._type = _type; $pkg.TypeAssertionError = TypeAssertionError; + $pkg.PanicNilError = PanicNilError; $pkg.basicFrame = basicFrame; $pkg.Frames = Frames; $pkg.Frame = Frame; @@ -2571,11 +2758,13 @@ $packages["runtime"] = (function() { ptrType = $ptrType(Func); sliceType = $sliceType(ptrType); ptrType$1 = $ptrType(_type); + ptrType$2 = $ptrType(PanicNilError); + arrayType = $arrayType(ptrType$2, 0); structType = $structType("", []); sliceType$1 = $sliceType(basicFrame); sliceType$2 = $sliceType(Frame); - ptrType$2 = $ptrType(TypeAssertionError); - ptrType$3 = $ptrType(Frames); + ptrType$3 = $ptrType(TypeAssertionError); + ptrType$4 = $ptrType(Frames); $ptrType(_type).prototype.string = function string() { var t; t = this; @@ -2613,13 +2802,23 @@ $packages["runtime"] = (function() { } return "interface conversion: " + cs + " is not " + as + ": missing method " + e.missingMethod; }; + $ptrType(PanicNilError).prototype.Error = function Error$2() { + return "panic called with nil argument"; + }; + $ptrType(PanicNilError).prototype.RuntimeError = function RuntimeError$1() { + }; + newPanicNilError = function newPanicNilError$1() { + return new PanicNilError.ptr(arrayType.zero()); + }; init = function init$1() { var e, jsPkg; jsPkg = $packages[$externalize("github.com/gopherjs/gopherjs/js", $String)]; $jsObjectPtr = jsPkg.Object.ptr; $jsErrorPtr = jsPkg.Error.ptr; $throwRuntimeError = throw$1; + $newPanicNilError = newPanicNilError; buildVersion = $internalize($goVersion, $String); + syncPanicNilFromGodebug(getEnvString("GODEBUG")); e = $ifaceNil; e = new TypeAssertionError.ptr(ptrType$1.nil, ptrType$1.nil, ptrType$1.nil, ""); $unused(e); @@ -2642,97 +2841,61 @@ $packages["runtime"] = (function() { return "/usr/local/go"; }; $pkg.GOROOT = GOROOT; - registerPosition = function registerPosition$1(funcName, file, line, col) { - var _entry, _key, _tuple, col, f, file, found, funcName, key, line, pc, pc$1; - key = file + ":" + itoa(line) + ":" + itoa(col); - _tuple = (_entry = $mapIndex(knownPositions,$String.keyFor(key)), _entry !== undefined ? [_entry.v, true] : [0, false]); + registerPosition = function registerPosition$1(frame) { + var _entry, _key, _tuple, f, found, frame, pc, pc$1; + _tuple = (_entry = $mapIndex(knownPositions,basicFrame.keyFor(frame)), _entry !== undefined ? [_entry.v, true] : [0, false]); pc = _tuple[0]; found = _tuple[1]; if (found) { return pc; } - f = new Func.ptr(funcName, file, line, new structType.ptr()); + f = new Func.ptr(frame.FuncName, frame.File, frame.Line, new structType.ptr()); pc$1 = ((positionCounters.$length >>> 0)); positionCounters = $append(positionCounters, f); - _key = key; (knownPositions || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: pc$1 }); + _key = $clone(frame, basicFrame); (knownPositions || $throwRuntimeError("assignment to entry in nil map")).set(basicFrame.keyFor(_key), { k: _key, v: pc$1 }); return pc$1; }; - itoa = function itoa$1(i) { - var i; - return $internalize(new ($global.String)(i), $String); - }; callstack = function callstack$1(skip, limit) { var limit, lines, skip; - skip = (skip + 1 >> 0) + 1 >> 0; - lines = new ($global.Error)().stack.split($externalize("\n", $String)).slice(skip, skip + limit >> 0); - return parseCallstack(lines); + if (limit <= 0) { + return new sliceType$1([]); + } + skip = skip + 2 >> 0; + lines = $callstack(skip, limit); + return parseCallstack(lines, limit); }; - parseCallstack = function parseCallstack$1(lines) { - var _entry, _entry$1, _tuple, alias, frame, frames, i, l, lines, ok; + parseCallstack = function parseCallstack$1(lines, limit) { + var _entry, _entry$1, _tuple, alias, frame, frames, funcName, i, l, limit, lines, ok; frames = new sliceType$1([]); l = $parseInt(lines.length); i = 0; while (true) { if (!(i < l)) { break; } - frame = $clone(ParseCallFrame(lines[i]), basicFrame); - if ((_entry = $mapIndex(hiddenFrames,$String.keyFor(frame.FuncName)), _entry !== undefined ? _entry.v : false)) { + frame = $parseCallFrame(lines[i]); + funcName = $internalize(frame[0], $String); + if ((_entry = $mapIndex(hiddenFrames,$String.keyFor(funcName)), _entry !== undefined ? _entry.v : false)) { i = i + (1) >> 0; continue; } - _tuple = (_entry$1 = $mapIndex(knownFrames,$String.keyFor(frame.FuncName)), _entry$1 !== undefined ? [_entry$1.v, true] : ["", false]); + _tuple = (_entry$1 = $mapIndex(knownFrames,$String.keyFor(funcName)), _entry$1 !== undefined ? [_entry$1.v, true] : ["", false]); alias = _tuple[0]; ok = _tuple[1]; if (ok) { - frame.FuncName = alias; + funcName = alias; + } + frames = $append(frames, new basicFrame.ptr(funcName, $internalize(frame[1], $String), $parseInt(frame[2]) >> 0, $parseInt(frame[3]) >> 0)); + if (funcName === "runtime.goexit") { + break; } - frames = $append(frames, frame); - if (frame.FuncName === "runtime.goexit") { + if (frames.$length >= limit) { break; } i = i + (1) >> 0; } return frames; }; - ParseCallFrame = function ParseCallFrame$1(info) { - var _tmp, _tmp$1, _tmp$2, _tmp$3, col, file, fn, funcName, idx, info, line, openIdx, parts, parts$1, parts$2, pos, split; - if (($parseInt(info.indexOf($externalize("@", $String))) >> 0) >= 0) { - split = new ($global.RegExp)($externalize("[@:]", $String)); - parts = info.split(split); - return new basicFrame.ptr($internalize(parts[0], $String), $internalize(parts.slice(1, $parseInt(parts.length) - 2 >> 0).join($externalize(":", $String)), $String), $parseInt(parts[($parseInt(parts.length) - 2 >> 0)]) >> 0, $parseInt(parts[($parseInt(parts.length) - 1 >> 0)]) >> 0); - } - openIdx = $parseInt(info.lastIndexOf($externalize("(", $String))) >> 0; - if (openIdx === -1) { - parts$1 = info.split($externalize(":", $String)); - return new basicFrame.ptr("", $internalize(parts$1.slice(0, $parseInt(parts$1.length) - 2 >> 0).join($externalize(":", $String)).replace(new ($global.RegExp)($externalize("^\\s*at ", $String)), $externalize("", $String)), $String), $parseInt(parts$1[($parseInt(parts$1.length) - 2 >> 0)]) >> 0, $parseInt(parts$1[($parseInt(parts$1.length) - 1 >> 0)]) >> 0); - } - _tmp = ""; - _tmp$1 = ""; - file = _tmp; - funcName = _tmp$1; - _tmp$2 = 0; - _tmp$3 = 0; - line = _tmp$2; - col = _tmp$3; - pos = info.substring(openIdx + 1 >> 0, $parseInt(info.indexOf($externalize(")", $String))) >> 0); - parts$2 = pos.split($externalize(":", $String)); - if ($internalize(pos, $String) === "") { - file = ""; - } else { - file = $internalize(parts$2.slice(0, $parseInt(parts$2.length) - 2 >> 0).join($externalize(":", $String)), $String); - line = $parseInt(parts$2[($parseInt(parts$2.length) - 2 >> 0)]) >> 0; - col = $parseInt(parts$2[($parseInt(parts$2.length) - 1 >> 0)]) >> 0; - } - fn = info.substring(($parseInt(info.indexOf($externalize("at ", $String))) >> 0) + 3 >> 0, $parseInt(info.indexOf($externalize(" (", $String))) >> 0); - idx = $parseInt(fn.indexOf($externalize("[as ", $String))) >> 0; - if (idx > 0) { - fn = fn.substring(idx + 4 >> 0, fn.indexOf($externalize("]", $String))); - } - funcName = $internalize(fn, $String); - return new basicFrame.ptr(funcName, file, line, col); - }; - $pkg.ParseCallFrame = ParseCallFrame; Caller = function Caller$1(skip) { - var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, file, frames, line, ok, pc, skip; + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, file, frame, frames, line, ok, pc, skip; pc = 0; file = ""; line = 0; @@ -2750,10 +2913,11 @@ $packages["runtime"] = (function() { ok = _tmp$3; return [pc, file, line, ok]; } - pc = registerPosition((0 >= frames.$length ? ($throwRuntimeError("index out of range"), undefined) : frames.$array[frames.$offset + 0]).FuncName, (0 >= frames.$length ? ($throwRuntimeError("index out of range"), undefined) : frames.$array[frames.$offset + 0]).File, (0 >= frames.$length ? ($throwRuntimeError("index out of range"), undefined) : frames.$array[frames.$offset + 0]).Line, (0 >= frames.$length ? ($throwRuntimeError("index out of range"), undefined) : frames.$array[frames.$offset + 0]).Col); + frame = $clone((0 >= frames.$length ? ($throwRuntimeError("index out of range"), undefined) : frames.$array[frames.$offset + 0]), basicFrame); + pc = registerPosition($clone(frame, basicFrame)); _tmp$4 = pc; - _tmp$5 = (0 >= frames.$length ? ($throwRuntimeError("index out of range"), undefined) : frames.$array[frames.$offset + 0]).File; - _tmp$6 = (0 >= frames.$length ? ($throwRuntimeError("index out of range"), undefined) : frames.$array[frames.$offset + 0]).Line; + _tmp$5 = frame.File; + _tmp$6 = frame.Line; _tmp$7 = true; pc = _tmp$4; file = _tmp$5; @@ -2771,7 +2935,7 @@ $packages["runtime"] = (function() { if (!(_i < _ref.$length)) { break; } i = _i; frame = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), basicFrame); - ((i < 0 || i >= pc.$length) ? ($throwRuntimeError("index out of range"), undefined) : pc.$array[pc.$offset + i] = registerPosition(frame.FuncName, frame.File, frame.Line, frame.Col)); + ((i < 0 || i >= pc.$length) ? ($throwRuntimeError("index out of range"), undefined) : pc.$array[pc.$offset + i] = registerPosition($clone(frame, basicFrame))); _i++; } return frames.$length; @@ -2786,6 +2950,11 @@ $packages["runtime"] = (function() { if (!(_i < _ref.$length)) { break; } pc = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); fun = FuncForPC(pc); + if (fun === ptrType.nil) { + result.frames = $append(result.frames, new Frame.ptr(pc, ptrType.nil, "", "", 0, 0)); + _i++; + continue; + } result.frames = $append(result.frames, new Frame.ptr(pc, fun, fun.name, fun.file, fun.line, fun.Entry())); _i++; } @@ -2848,8 +3017,8 @@ $packages["runtime"] = (function() { FuncForPC = function FuncForPC$1(pc) { var ipc, pc; ipc = ((pc >> 0)); - if (ipc >= positionCounters.$length) { - $panic(new $String("GopherJS: pc=" + itoa(ipc) + " is out of range of known position counters")); + if (ipc <= 0 || ipc >= positionCounters.$length) { + return ptrType.nil; } return ((ipc < 0 || ipc >= positionCounters.$length) ? ($throwRuntimeError("index out of range"), undefined) : positionCounters.$array[positionCounters.$offset + ipc]); }; @@ -2871,12 +3040,12 @@ $packages["runtime"] = (function() { var param; }; $pkg.KeepAlive = KeepAlive; - errorString.prototype.RuntimeError = function RuntimeError$1() { + errorString.prototype.RuntimeError = function RuntimeError$2() { var e; e = this.$val; }; $ptrType(errorString).prototype.RuntimeError = function(...$args) { return new errorString(this.$get()).RuntimeError(...$args); }; - errorString.prototype.Error = function Error$2() { + errorString.prototype.Error = function Error$3() { var e; e = this.$val; return "runtime error: " + (e); @@ -2917,15 +3086,32 @@ $packages["runtime"] = (function() { godebug_notify = function godebug_notify$1(key, value) { var {godebugDefault, key, update, value, $s, $r, $c} = $restore(this, {key, value}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - update = godebugUpdate; - if (update === $throwNilPointerError || !(key === "GODEBUG")) { + if (!(key === "GODEBUG")) { $s = -1; return; } - godebugDefault = ""; - $r = update(godebugDefault, value); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + update = godebugUpdate; + /* */ if (!(update === $throwNilPointerError)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(update === $throwNilPointerError)) { */ case 1: + godebugDefault = ""; + $r = update(godebugDefault, value); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + syncPanicNilFromGodebug(value); $s = -1; return; /* */ } return; } var $f = {$blk: godebug_notify$1, $c: true, $r, godebugDefault, key, update, value, $s};return $f; }; + syncPanicNilFromGodebug = function syncPanicNilFromGodebug$1(godebug) { + var godebug, m, panicnil, re; + panicnil = "0"; + if (!(godebug === "")) { + re = new ($global.RegExp)($externalize("(?:^|,)panicnil=(\\d+)(?:,|$)", $String)); + m = re.exec($externalize(godebug, $String)); + if (!(m === null) && !(m === undefined) && $parseInt(m.length) >= 2) { + panicnil = $internalize(m[1], $String); + } + } + $panicnil = $externalize(panicnil, $String); + }; fastrand = function fastrand$1() { return (($parseFloat($global.Math.random()) * 4.294967295e+09 >>> 0)); }; @@ -2937,12 +3123,14 @@ $packages["runtime"] = (function() { return ((fastrand() >>> 0)); }; ptrType$1.methods = [{prop: "string", name: "string", pkg: "runtime", typ: $funcType([], [$String], false)}, {prop: "pkgpath", name: "pkgpath", pkg: "runtime", typ: $funcType([], [$String], false)}]; - ptrType$2.methods = [{prop: "RuntimeError", name: "RuntimeError", pkg: "", typ: $funcType([], [], false)}, {prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$3.methods = [{prop: "Next", name: "Next", pkg: "", typ: $funcType([], [Frame, $Bool], false)}]; + ptrType$3.methods = [{prop: "RuntimeError", name: "RuntimeError", pkg: "", typ: $funcType([], [], false)}, {prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$2.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "RuntimeError", name: "RuntimeError", pkg: "", typ: $funcType([], [], false)}]; + ptrType$4.methods = [{prop: "Next", name: "Next", pkg: "", typ: $funcType([], [Frame, $Bool], false)}]; ptrType.methods = [{prop: "Entry", name: "Entry", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "FileLine", name: "FileLine", pkg: "", typ: $funcType([$Uintptr], [$String, $Int], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}]; errorString.methods = [{prop: "RuntimeError", name: "RuntimeError", pkg: "", typ: $funcType([], [], false)}, {prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; _type.init("runtime", [{prop: "str", name: "str", embedded: false, exported: false, typ: $String, tag: ""}]); TypeAssertionError.init("runtime", [{prop: "_interface", name: "_interface", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "concrete", name: "concrete", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "asserted", name: "asserted", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "missingMethod", name: "missingMethod", embedded: false, exported: false, typ: $String, tag: ""}]); + PanicNilError.init("runtime", [{prop: "_$0", name: "_", embedded: false, exported: false, typ: arrayType, tag: ""}]); basicFrame.init("", [{prop: "FuncName", name: "FuncName", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "File", name: "File", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Line", name: "Line", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Col", name: "Col", embedded: false, exported: true, typ: $Int, tag: ""}]); Frames.init("runtime", [{prop: "frames", name: "frames", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "current", name: "current", embedded: false, exported: false, typ: $Int, tag: ""}]); Frame.init("", [{prop: "PC", name: "PC", embedded: false, exported: true, typ: $Uintptr, tag: ""}, {prop: "Func", name: "Func", embedded: false, exported: true, typ: ptrType, tag: ""}, {prop: "Function", name: "Function", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "File", name: "File", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Line", name: "Line", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Entry", name: "Entry", embedded: false, exported: true, typ: $Uintptr, tag: ""}]); @@ -2960,8 +3148,8 @@ $packages["runtime"] = (function() { $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } buildVersion = ""; godebugUpdate = $throwNilPointerError; - knownPositions = $makeMap($String.keyFor, []); - positionCounters = new sliceType([]); + knownPositions = $makeMap(basicFrame.keyFor, []); + positionCounters = new sliceType([ptrType.nil]); hiddenFrames = $makeMap($String.keyFor, [{ k: "$callDeferred", v: true }]); knownFrames = $makeMap($String.keyFor, [{ k: "$panic", v: "runtime.gopanic" }, { k: "$goroutine", v: "runtime.goexit" }]); init(); @@ -2982,14 +3170,873 @@ $packages["internal/goarch"] = (function() { $pkg.$init = $init; return $pkg; })(); +$packages["internal/abi"] = (function() { + var $pkg = {}, $init, js, goarch, Type, Kind, TFlag, Method, Imethod, ArrayType, ChanDir, ChanType, InterfaceType, MapType, SliceType, PtrType, StructField, StructType, UncommonType, FuncType, Name, NameOff, TypeOff, TextOff, sliceType, ptrType, ptrType$1, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, sliceType$1, ptrType$7, sliceType$2, sliceType$3, sliceType$4, structType, ptrType$9, funcType, funcType$1, ptrType$10, ptrType$11, kindNames, UnsafeNew, IfaceE2I, TypedMemMove, ReflectType, setKindType, NewName, ResolveReflectName, ResolveReflectType, internalStr, WrapJsObject, UnwrapJsObject, CopyStruct; + js = $packages["github.com/gopherjs/gopherjs/js"]; + goarch = $packages["internal/goarch"]; + Type = $newType(0, $kindStruct, "abi.Type", true, "internal/abi", true, function(Size__, PtrBytes_, Hash_, TFlag_, Align__, FieldAlign__, Kind__, Equal_, GCData_, Str_, PtrToThis_) { + this.$val = this; + if (arguments.length === 0) { + this.Size_ = 0; + this.PtrBytes = 0; + this.Hash = 0; + this.TFlag = 0; + this.Align_ = 0; + this.FieldAlign_ = 0; + this.Kind_ = 0; + this.Equal = $throwNilPointerError; + this.GCData = ptrType$7.nil; + this.Str = NameOff.nil; + this.PtrToThis = TypeOff.nil; + return; + } + this.Size_ = Size__; + this.PtrBytes = PtrBytes_; + this.Hash = Hash_; + this.TFlag = TFlag_; + this.Align_ = Align__; + this.FieldAlign_ = FieldAlign__; + this.Kind_ = Kind__; + this.Equal = Equal_; + this.GCData = GCData_; + this.Str = Str_; + this.PtrToThis = PtrToThis_; + }); + Kind = $newType(4, $kindUint, "abi.Kind", true, "internal/abi", true, null); + TFlag = $newType(1, $kindUint8, "abi.TFlag", true, "internal/abi", true, null); + Method = $newType(0, $kindStruct, "abi.Method", true, "internal/abi", true, function(Name_, Mtyp_, Ifn_, Tfn_) { + this.$val = this; + if (arguments.length === 0) { + this.Name = NameOff.nil; + this.Mtyp = TypeOff.nil; + this.Ifn = 0; + this.Tfn = 0; + return; + } + this.Name = Name_; + this.Mtyp = Mtyp_; + this.Ifn = Ifn_; + this.Tfn = Tfn_; + }); + Imethod = $newType(0, $kindStruct, "abi.Imethod", true, "internal/abi", true, function(Name_, Typ_) { + this.$val = this; + if (arguments.length === 0) { + this.Name = NameOff.nil; + this.Typ = TypeOff.nil; + return; + } + this.Name = Name_; + this.Typ = Typ_; + }); + ArrayType = $newType(0, $kindStruct, "abi.ArrayType", true, "internal/abi", true, function(Type_, Elem_, Slice_, Len_) { + this.$val = this; + if (arguments.length === 0) { + this.Type = new Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$7.nil, NameOff.nil, TypeOff.nil); + this.Elem = ptrType.nil; + this.Slice = ptrType.nil; + this.Len = 0; + return; + } + this.Type = Type_; + this.Elem = Elem_; + this.Slice = Slice_; + this.Len = Len_; + }); + ChanDir = $newType(4, $kindInt, "abi.ChanDir", true, "internal/abi", true, null); + ChanType = $newType(0, $kindStruct, "abi.ChanType", true, "internal/abi", true, function(Type_, Elem_, Dir_) { + this.$val = this; + if (arguments.length === 0) { + this.Type = new Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$7.nil, NameOff.nil, TypeOff.nil); + this.Elem = ptrType.nil; + this.Dir = 0; + return; + } + this.Type = Type_; + this.Elem = Elem_; + this.Dir = Dir_; + }); + InterfaceType = $newType(0, $kindStruct, "abi.InterfaceType", true, "internal/abi", true, function(Type_, PkgPath_, Methods_) { + this.$val = this; + if (arguments.length === 0) { + this.Type = new Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$7.nil, NameOff.nil, TypeOff.nil); + this.PkgPath = new Name.ptr("", "", false, false, ""); + this.Methods = sliceType$3.nil; + return; + } + this.Type = Type_; + this.PkgPath = PkgPath_; + this.Methods = Methods_; + }); + MapType = $newType(0, $kindStruct, "abi.MapType", true, "internal/abi", true, function(Type_, Key_, Elem_, Bucket_, Hasher_, KeySize_, ValueSize_, BucketSize_, Flags_) { + this.$val = this; + if (arguments.length === 0) { + this.Type = new Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$7.nil, NameOff.nil, TypeOff.nil); + this.Key = ptrType.nil; + this.Elem = ptrType.nil; + this.Bucket = ptrType.nil; + this.Hasher = $throwNilPointerError; + this.KeySize = 0; + this.ValueSize = 0; + this.BucketSize = 0; + this.Flags = 0; + return; + } + this.Type = Type_; + this.Key = Key_; + this.Elem = Elem_; + this.Bucket = Bucket_; + this.Hasher = Hasher_; + this.KeySize = KeySize_; + this.ValueSize = ValueSize_; + this.BucketSize = BucketSize_; + this.Flags = Flags_; + }); + SliceType = $newType(0, $kindStruct, "abi.SliceType", true, "internal/abi", true, function(Type_, Elem_) { + this.$val = this; + if (arguments.length === 0) { + this.Type = new Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$7.nil, NameOff.nil, TypeOff.nil); + this.Elem = ptrType.nil; + return; + } + this.Type = Type_; + this.Elem = Elem_; + }); + PtrType = $newType(0, $kindStruct, "abi.PtrType", true, "internal/abi", true, function(Type_, Elem_) { + this.$val = this; + if (arguments.length === 0) { + this.Type = new Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$7.nil, NameOff.nil, TypeOff.nil); + this.Elem = ptrType.nil; + return; + } + this.Type = Type_; + this.Elem = Elem_; + }); + StructField = $newType(0, $kindStruct, "abi.StructField", true, "internal/abi", true, function(Name_, Typ_, Offset_) { + this.$val = this; + if (arguments.length === 0) { + this.Name = new Name.ptr("", "", false, false, ""); + this.Typ = ptrType.nil; + this.Offset = 0; + return; + } + this.Name = Name_; + this.Typ = Typ_; + this.Offset = Offset_; + }); + StructType = $newType(0, $kindStruct, "abi.StructType", true, "internal/abi", true, function(Type_, PkgPath_, Fields_) { + this.$val = this; + if (arguments.length === 0) { + this.Type = new Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$7.nil, NameOff.nil, TypeOff.nil); + this.PkgPath = new Name.ptr("", "", false, false, ""); + this.Fields = sliceType$4.nil; + return; + } + this.Type = Type_; + this.PkgPath = PkgPath_; + this.Fields = Fields_; + }); + UncommonType = $newType(0, $kindStruct, "abi.UncommonType", true, "internal/abi", true, function(PkgPath_, Mcount_, Xcount_, Methods__) { + this.$val = this; + if (arguments.length === 0) { + this.PkgPath = NameOff.nil; + this.Mcount = 0; + this.Xcount = 0; + this.Methods_ = sliceType$1.nil; + return; + } + this.PkgPath = PkgPath_; + this.Mcount = Mcount_; + this.Xcount = Xcount_; + this.Methods_ = Methods__; + }); + FuncType = $newType(0, $kindStruct, "abi.FuncType", true, "internal/abi", true, function(Type_, InCount_, OutCount_, In__, Out__) { + this.$val = this; + if (arguments.length === 0) { + this.Type = new Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$7.nil, NameOff.nil, TypeOff.nil); + this.InCount = 0; + this.OutCount = 0; + this.In_ = sliceType$2.nil; + this.Out_ = sliceType$2.nil; + return; + } + this.Type = Type_; + this.InCount = InCount_; + this.OutCount = OutCount_; + this.In_ = In__; + this.Out_ = Out__; + }); + Name = $newType(0, $kindStruct, "abi.Name", true, "internal/abi", true, function(name_, tag_, exported_, embedded_, pkgPath_) { + this.$val = this; + if (arguments.length === 0) { + this.name = ""; + this.tag = ""; + this.exported = false; + this.embedded = false; + this.pkgPath = ""; + return; + } + this.name = name_; + this.tag = tag_; + this.exported = exported_; + this.embedded = embedded_; + this.pkgPath = pkgPath_; + }); + NameOff = $newType(4, $kindPtr, "abi.NameOff", true, "internal/abi", true, null); + TypeOff = $newType(4, $kindPtr, "abi.TypeOff", true, "internal/abi", true, null); + TextOff = $newType(4, $kindUnsafePointer, "abi.TextOff", true, "internal/abi", true, null); + $pkg.Type = Type; + $pkg.Kind = Kind; + $pkg.TFlag = TFlag; + $pkg.Method = Method; + $pkg.Imethod = Imethod; + $pkg.ArrayType = ArrayType; + $pkg.ChanDir = ChanDir; + $pkg.ChanType = ChanType; + $pkg.InterfaceType = InterfaceType; + $pkg.MapType = MapType; + $pkg.SliceType = SliceType; + $pkg.PtrType = PtrType; + $pkg.StructField = StructField; + $pkg.StructType = StructType; + $pkg.UncommonType = UncommonType; + $pkg.FuncType = FuncType; + $pkg.Name = Name; + $pkg.NameOff = NameOff; + $pkg.TypeOff = TypeOff; + $pkg.TextOff = TextOff; + $pkg.$finishSetup = function() { + sliceType = $sliceType($String); + ptrType = $ptrType(Type); + ptrType$1 = $ptrType(StructType); + ptrType$2 = $ptrType(MapType); + ptrType$3 = $ptrType(ArrayType); + ptrType$4 = $ptrType(FuncType); + ptrType$5 = $ptrType(InterfaceType); + ptrType$6 = $ptrType(UncommonType); + sliceType$1 = $sliceType(Method); + ptrType$7 = $ptrType($Uint8); + sliceType$2 = $sliceType(ptrType); + sliceType$3 = $sliceType(Imethod); + sliceType$4 = $sliceType(StructField); + structType = $structType("internal/abi", [{prop: "str", name: "str", embedded: false, exported: false, typ: $String, tag: ""}]); + ptrType$9 = $ptrType(js.Object); + funcType = $funcType([$UnsafePointer, $UnsafePointer], [$Bool], false); + funcType$1 = $funcType([$UnsafePointer, $Uintptr], [$Uintptr], false); + ptrType$10 = $ptrType(StructField); + ptrType$11 = $ptrType(Name); + Kind.prototype.String = function String() { + var k; + k = this.$val; + if (((k >> 0)) < kindNames.$length) { + return ((k < 0 || k >= kindNames.$length) ? ($throwRuntimeError("index out of range"), undefined) : kindNames.$array[kindNames.$offset + k]); + } + return (0 >= kindNames.$length ? ($throwRuntimeError("index out of range"), undefined) : kindNames.$array[kindNames.$offset + 0]); + }; + $ptrType(Kind).prototype.String = function(...$args) { return new Kind(this.$get()).String(...$args); }; + $ptrType(Type).prototype.Kind = function Kind$1() { + var t; + t = this; + return ((((t.Kind_ & 31) >>> 0) >>> 0)); + }; + $ptrType(Type).prototype.HasName = function HasName() { + var t; + t = this; + return !((((t.TFlag & 4) >>> 0) === 0)); + }; + $ptrType(Type).prototype.Pointers = function Pointers() { + var t; + t = this; + return !((t.PtrBytes === 0)); + }; + $ptrType(Type).prototype.IfaceIndir = function IfaceIndir() { + var t; + t = this; + return ((t.Kind_ & 32) >>> 0) === 0; + }; + $ptrType(Type).prototype.IsDirectIface = function IsDirectIface() { + var t; + t = this; + return !((((t.Kind_ & 32) >>> 0) === 0)); + }; + $ptrType(Type).prototype.Len = function Len() { + var t; + t = this; + if (t.Kind() === 17) { + return (((t.kindType).Len >> 0)); + } + return 0; + }; + $ptrType(Type).prototype.Common = function Common() { + var t; + t = this; + return t; + }; + $ptrType(Type).prototype.ChanDir = function ChanDir$1() { + var ch, t; + t = this; + if (t.Kind() === 18) { + ch = (t.kindType); + return ch.Dir; + } + return 0; + }; + $ptrType(Type).prototype.Elem = function Elem() { + var _1, t, tt, tt$1, tt$2, tt$3, tt$4; + t = this; + _1 = t.Kind(); + if (_1 === (17)) { + tt = (t.kindType); + return tt.Elem; + } else if (_1 === (18)) { + tt$1 = (t.kindType); + return tt$1.Elem; + } else if (_1 === (21)) { + tt$2 = (t.kindType); + return tt$2.Elem; + } else if (_1 === (22)) { + tt$3 = (t.kindType); + return tt$3.Elem; + } else if (_1 === (23)) { + tt$4 = (t.kindType); + return tt$4.Elem; + } + return ptrType.nil; + }; + $ptrType(Type).prototype.StructType = function StructType$1() { + var t; + t = this; + if (!((t.Kind() === 25))) { + return ptrType$1.nil; + } + return (t.kindType); + }; + $ptrType(Type).prototype.MapType = function MapType$1() { + var t; + t = this; + if (!((t.Kind() === 21))) { + return ptrType$2.nil; + } + return (t.kindType); + }; + $ptrType(Type).prototype.ArrayType = function ArrayType$1() { + var t; + t = this; + if (!((t.Kind() === 17))) { + return ptrType$3.nil; + } + return (t.kindType); + }; + $ptrType(Type).prototype.FuncType = function FuncType$1() { + var t; + t = this; + if (!((t.Kind() === 19))) { + return ptrType$4.nil; + } + return (t.kindType); + }; + $ptrType(Type).prototype.InterfaceType = function InterfaceType$1() { + var t; + t = this; + if (!((t.Kind() === 20))) { + return ptrType$5.nil; + } + return (t.kindType); + }; + $ptrType(Type).prototype.Size = function Size() { + var t; + t = this; + return t.Size_; + }; + $ptrType(Type).prototype.Align = function Align() { + var t; + t = this; + return ((t.Align_ >> 0)); + }; + $ptrType(Type).prototype.FieldAlign = function FieldAlign() { + var t; + t = this; + return ((t.FieldAlign_ >> 0)); + }; + $ptrType(Type).prototype.ExportedMethods = function ExportedMethods() { + var t, ut; + t = this; + ut = t.Uncommon(); + if (ut === ptrType$6.nil) { + return sliceType$1.nil; + } + return ut.ExportedMethods(); + }; + $ptrType(Type).prototype.NumMethod = function NumMethod() { + var t, tt; + t = this; + if (t.Kind() === 20) { + tt = (t.kindType); + return tt.NumMethod(); + } + return t.ExportedMethods().$length; + }; + $ptrType(InterfaceType).prototype.NumMethod = function NumMethod$1() { + var t; + t = this; + return t.Methods.$length; + }; + $ptrType(MapType).prototype.IndirectKey = function IndirectKey() { + var mt; + mt = this; + return !((((mt.Flags & 1) >>> 0) === 0)); + }; + $ptrType(MapType).prototype.IndirectElem = function IndirectElem() { + var mt; + mt = this; + return !((((mt.Flags & 2) >>> 0) === 0)); + }; + $ptrType(MapType).prototype.ReflexiveKey = function ReflexiveKey() { + var mt; + mt = this; + return !((((mt.Flags & 4) >>> 0) === 0)); + }; + $ptrType(MapType).prototype.NeedKeyUpdate = function NeedKeyUpdate() { + var mt; + mt = this; + return !((((mt.Flags & 8) >>> 0) === 0)); + }; + $ptrType(MapType).prototype.HashMightPanic = function HashMightPanic() { + var mt; + mt = this; + return !((((mt.Flags & 16) >>> 0) === 0)); + }; + $ptrType(Type).prototype.Key = function Key() { + var t; + t = this; + if (t.Kind() === 21) { + return (t.kindType).Key; + } + return ptrType.nil; + }; + $ptrType(FuncType).prototype.In = function In(i) { + var i, t, x; + t = this; + return (x = t.InSlice(), ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + }; + $ptrType(FuncType).prototype.NumIn = function NumIn() { + var t; + t = this; + return ((t.InCount >> 0)); + }; + $ptrType(FuncType).prototype.NumOut = function NumOut() { + var t; + t = this; + return ((((t.OutCount & 32767) >>> 0) >> 0)); + }; + $ptrType(FuncType).prototype.Out = function Out(i) { + var i, t, x; + t = this; + return (x = t.OutSlice(), ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + }; + $ptrType(FuncType).prototype.IsVariadic = function IsVariadic() { + var t; + t = this; + return !((((t.OutCount & 32768) >>> 0) === 0)); + }; + $ptrType(StructField).prototype.Embedded = function Embedded() { + var f; + f = this; + return $clone(f.Name, Name).IsEmbedded(); + }; + UnsafeNew = function UnsafeNew$1(typ) { + var _1, typ; + _1 = typ.Kind(); + if (_1 === (25)) { + return (new (typ.JsType().ptr)()); + } else if (_1 === (17)) { + return (typ.JsType().zero()); + } else { + return ($newDataPointer(typ.JsType().zero(), typ.JsPtrTo())); + } + }; + $pkg.UnsafeNew = UnsafeNew; + IfaceE2I = function IfaceE2I$1(t, src, dst) { + var dst, src, t; + dst.$set(src); + }; + $pkg.IfaceE2I = IfaceE2I; + TypedMemMove = function TypedMemMove$1(t, dst, src) { + var dst, src, t; + dst.$set(src.$get()); + }; + $pkg.TypedMemMove = TypedMemMove; + ReflectType = function ReflectType$1(typ) { + var _1, _i, _i$1, _i$2, _i$3, _ref, _ref$1, _ref$2, _ref$3, abiTyp, dir, exported, exported$1, exported$2, f, fields, i, i$1, i$2, i$3, i$4, i$5, imethods, in$1, jrt, m, m$1, m$2, mPkg, methodSet, methods, name, out, outCount, params, reflectFields, reflectMethods, results, typ, ut, xcount; + jrt = typ.abiType; + if (!(jrt === undefined)) { + return ((jrt)); + } + abiTyp = new Type.ptr(((($parseInt(typ.size) >> 0) >>> 0)), 0, 0, 0, 0, 0, ((($parseInt(typ.kind) >> 0) << 24 >>> 24)), $throwNilPointerError, ptrType$7.nil, ResolveReflectName($clone(NewName(internalStr(typ.string), "", !!(typ.exported), false), Name)), TypeOff.nil); + abiTyp.jsType = typ; + typ.abiType = abiTyp; + methodSet = $methodSet(typ); + if (!(($parseInt(methodSet.length) === 0)) || !!(typ.named)) { + abiTyp.TFlag = (abiTyp.TFlag | (1)) >>> 0; + if (!!(typ.named)) { + abiTyp.TFlag = (abiTyp.TFlag | (4)) >>> 0; + } + reflectMethods = sliceType$1.nil; + i = 0; + while (true) { + if (!(i < $parseInt(methodSet.length))) { break; } + m = methodSet[i]; + exported = internalStr(m.pkg) === ""; + if (!exported) { + i = i + (1) >> 0; + continue; + } + reflectMethods = $append(reflectMethods, new Method.ptr(ResolveReflectName($clone(NewName(internalStr(m.name), "", exported, false), Name)), ResolveReflectType(ReflectType(m.typ)), 0, 0)); + i = i + (1) >> 0; + } + xcount = ((reflectMethods.$length << 16 >>> 16)); + i$1 = 0; + while (true) { + if (!(i$1 < $parseInt(methodSet.length))) { break; } + m$1 = methodSet[i$1]; + exported$1 = internalStr(m$1.pkg) === ""; + if (exported$1) { + i$1 = i$1 + (1) >> 0; + continue; + } + reflectMethods = $append(reflectMethods, new Method.ptr(ResolveReflectName($clone(NewName(internalStr(m$1.name), "", exported$1, false), Name)), ResolveReflectType(ReflectType(m$1.typ)), 0, 0)); + i$1 = i$1 + (1) >> 0; + } + ut = new UncommonType.ptr(ResolveReflectName($clone(NewName(internalStr(typ.pkg), "", false, false), Name)), (($parseInt(methodSet.length) << 16 >>> 16)), xcount, reflectMethods); + abiTyp.uncommonType = ut; + } + _1 = abiTyp.Kind(); + if (_1 === (17)) { + setKindType(abiTyp, new ArrayType.ptr(new Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$7.nil, NameOff.nil, TypeOff.nil), ReflectType(typ.elem), ptrType.nil, ((($parseInt(typ.len) >> 0) >>> 0)))); + } else if (_1 === (18)) { + dir = 3; + if (!!(typ.sendOnly)) { + dir = 2; + } + if (!!(typ.recvOnly)) { + dir = 1; + } + abiTyp.PtrBytes = 4; + setKindType(abiTyp, new ChanType.ptr(new Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$7.nil, NameOff.nil, TypeOff.nil), ReflectType(typ.elem), dir)); + } else if (_1 === (19)) { + params = typ.params; + in$1 = $makeSlice(sliceType$2, $parseInt(params.length)); + _ref = in$1; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i$2 = _i; + ((i$2 < 0 || i$2 >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + i$2] = ReflectType(params[i$2])); + _i++; + } + results = typ.results; + out = $makeSlice(sliceType$2, $parseInt(results.length)); + _ref$1 = out; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i$3 = _i$1; + ((i$3 < 0 || i$3 >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + i$3] = ReflectType(results[i$3])); + _i$1++; + } + outCount = (($parseInt(results.length) << 16 >>> 16)); + if (!!(typ.variadic)) { + outCount = (outCount | (32768)) >>> 0; + } + abiTyp.PtrBytes = 4; + setKindType(abiTyp, new FuncType.ptr(new Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$7.nil, NameOff.nil, TypeOff.nil), (($parseInt(params.length) << 16 >>> 16)), outCount, in$1, out)); + } else if (_1 === (20)) { + methods = typ.methods; + imethods = $makeSlice(sliceType$3, $parseInt(methods.length)); + _ref$2 = imethods; + _i$2 = 0; + while (true) { + if (!(_i$2 < _ref$2.$length)) { break; } + i$4 = _i$2; + m$2 = methods[i$4]; + mPkg = internalStr(m$2.pkg); + exported$2 = mPkg === ""; + name = $clone(NewName(internalStr(m$2.name), "", exported$2, false), Name); + name.SetPkgPath(mPkg); + Imethod.copy(((i$4 < 0 || i$4 >= imethods.$length) ? ($throwRuntimeError("index out of range"), undefined) : imethods.$array[imethods.$offset + i$4]), new Imethod.ptr(ResolveReflectName($clone(name, Name)), ResolveReflectType(ReflectType(m$2.typ)))); + _i$2++; + } + setKindType(abiTyp, new InterfaceType.ptr(new Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$7.nil, NameOff.nil, TypeOff.nil), $clone(NewName(internalStr(typ.pkg), "", false, false), Name), imethods)); + } else if (_1 === (21)) { + abiTyp.PtrBytes = 4; + setKindType(abiTyp, new MapType.ptr(new Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$7.nil, NameOff.nil, TypeOff.nil), ReflectType(typ.key), ReflectType(typ.elem), ptrType.nil, $throwNilPointerError, 0, 0, 0, 0)); + } else if (_1 === (22)) { + abiTyp.PtrBytes = 4; + setKindType(abiTyp, new PtrType.ptr(new Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$7.nil, NameOff.nil, TypeOff.nil), ReflectType(typ.elem))); + } else if (_1 === (23)) { + abiTyp.PtrBytes = 4; + setKindType(abiTyp, new SliceType.ptr(new Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$7.nil, NameOff.nil, TypeOff.nil), ReflectType(typ.elem))); + } else if (_1 === (25)) { + fields = typ.fields; + reflectFields = $makeSlice(sliceType$4, $parseInt(fields.length)); + _ref$3 = reflectFields; + _i$3 = 0; + while (true) { + if (!(_i$3 < _ref$3.$length)) { break; } + i$5 = _i$3; + f = fields[i$5]; + StructField.copy(((i$5 < 0 || i$5 >= reflectFields.$length) ? ($throwRuntimeError("index out of range"), undefined) : reflectFields.$array[reflectFields.$offset + i$5]), new StructField.ptr($clone(NewName(internalStr(f.name), internalStr(f.tag), !!(f.exported), !!(f.embedded)), Name), ReflectType(f.typ), ((i$5 >>> 0)))); + _i$3++; + } + setKindType(abiTyp, new StructType.ptr(new Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$7.nil, NameOff.nil, TypeOff.nil), $clone(NewName(internalStr(typ.pkgPath), "", false, false), Name), reflectFields)); + } else if (_1 === (26)) { + abiTyp.PtrBytes = 4; + } + return abiTyp; + }; + $pkg.ReflectType = ReflectType; + setKindType = function setKindType$1(abiTyp, kindType) { + var abiTyp, kindType; + abiTyp.kindType = kindType; + kindType.Type = abiTyp; + }; + $ptrType(UncommonType).prototype.Methods = function Methods() { + var t; + t = this; + return t.Methods_; + }; + $ptrType(UncommonType).prototype.ExportedMethods = function ExportedMethods$1() { + var t; + t = this; + return $subslice(t.Methods_, 0, t.Xcount, t.Xcount); + }; + $ptrType(Type).prototype.Uncommon = function Uncommon() { + var obj, t; + t = this; + obj = t.uncommonType; + if (obj === undefined) { + return ptrType$6.nil; + } + return ((obj)); + }; + $ptrType(Type).prototype.JsType = function JsType() { + var typ; + typ = this; + return typ.jsType; + }; + $ptrType(Type).prototype.PtrTo = function PtrTo() { + var typ; + typ = this; + return ReflectType($ptrType(typ.JsType())); + }; + $ptrType(Type).prototype.JsPtrTo = function JsPtrTo() { + var typ; + typ = this; + return typ.PtrTo().JsType(); + }; + $ptrType(Type).prototype.String = function String$1() { + var s, t; + t = this; + s = $clone(t.NameOff(t.Str), Name).Name(); + if (!((((t.TFlag & 2) >>> 0) === 0))) { + return $substring(s, 1); + } + return s; + }; + $ptrType(FuncType).prototype.InSlice = function InSlice() { + var t; + t = this; + return t.In_; + }; + $ptrType(FuncType).prototype.OutSlice = function OutSlice() { + var t; + t = this; + return t.Out_; + }; + $ptrType(Name).prototype.IsExported = function IsExported() { + var n; + n = this; + return n.exported; + }; + Name.prototype.IsExported = function(...$args) { return this.$val.IsExported(...$args); }; + $ptrType(Name).prototype.HasTag = function HasTag() { + var n; + n = this; + return n.tag.length > 0; + }; + Name.prototype.HasTag = function(...$args) { return this.$val.HasTag(...$args); }; + $ptrType(Name).prototype.IsEmbedded = function IsEmbedded() { + var n; + n = this; + return n.embedded; + }; + Name.prototype.IsEmbedded = function(...$args) { return this.$val.IsEmbedded(...$args); }; + $ptrType(Name).prototype.IsBlank = function IsBlank() { + var n; + n = this; + return $clone(n, Name).Name() === "_"; + }; + Name.prototype.IsBlank = function(...$args) { return this.$val.IsBlank(...$args); }; + $ptrType(Name).prototype.Name = function Name$1() { + var n; + n = this; + return n.name; + }; + Name.prototype.Name = function(...$args) { return this.$val.Name(...$args); }; + $ptrType(Name).prototype.Tag = function Tag() { + var n; + n = this; + return n.tag; + }; + Name.prototype.Tag = function(...$args) { return this.$val.Tag(...$args); }; + $ptrType(Name).prototype.PkgPath = function PkgPath() { + var n; + n = this; + return n.pkgPath; + }; + Name.prototype.PkgPath = function(...$args) { return this.$val.PkgPath(...$args); }; + $ptrType(Name).prototype.SetPkgPath = function SetPkgPath(pkgpath) { + var n, pkgpath; + n = this; + n.pkgPath = pkgpath; + }; + NewName = function NewName$1(n, tag, exported, embedded) { + var embedded, exported, n, tag; + return new Name.ptr(n, tag, exported, embedded, ""); + }; + $pkg.NewName = NewName; + $ptrType(Type).prototype.NameOff = function NameOff$1(off) { + var off, typ; + typ = this; + return (off === NameOff.nil && $throwNilPointerError(), off); + }; + ResolveReflectName = function ResolveReflectName$1(n) { + var n; + return $pointerOfStructConversion(n, NameOff); + }; + $pkg.ResolveReflectName = ResolveReflectName; + $ptrType(Type).prototype.TypeOff = function TypeOff$1(off) { + var off, typ; + typ = this; + return $pointerOfStructConversion(off, ptrType); + }; + ResolveReflectType = function ResolveReflectType$1(t) { + var t; + return $pointerOfStructConversion(t, TypeOff); + }; + $pkg.ResolveReflectType = ResolveReflectType; + $ptrType(Type).prototype.TextOff = function TextOff$1(off) { + var off, typ; + typ = this; + return (off); + }; + internalStr = function internalStr$1(strObj) { + var c, strObj; + c = new structType.ptr(""); + c.str = strObj; + return c.str; + }; + $ptrType(Type).prototype.IsWrapped = function IsWrapped() { + var typ; + typ = this; + return !!(typ.JsType().wrapped); + }; + WrapJsObject = function WrapJsObject$1(typ, val) { + var typ, val; + if (typ === $pkg.JsObjectPtr) { + return new ($pkg.JsObjectPtr.JsType())(val); + } + return val; + }; + $pkg.WrapJsObject = WrapJsObject; + UnwrapJsObject = function UnwrapJsObject$1(typ, val) { + var typ, val; + if (typ === $pkg.JsObjectPtr) { + return val.object; + } + return val; + }; + $pkg.UnwrapJsObject = UnwrapJsObject; + CopyStruct = function CopyStruct$1(dst, src, typ) { + var dst, fields, i, prop, src, typ; + fields = typ.JsType().fields; + i = 0; + while (true) { + if (!(i < $parseInt(fields.length))) { break; } + prop = $internalize(fields[i].prop, $String); + dst[$externalize(prop, $String)] = src[$externalize(prop, $String)]; + i = i + (1) >> 0; + } + }; + $pkg.CopyStruct = CopyStruct; + $ptrType(Type).prototype.Comparable = function Comparable() { + var _1, ft, i, st, t, x; + t = this; + _1 = t.Kind(); + if ((_1 === (19)) || (_1 === (23)) || (_1 === (21))) { + return false; + } else if (_1 === (17)) { + return t.Elem().Comparable(); + } else if (_1 === (25)) { + st = t.StructType(); + i = 0; + while (true) { + if (!(i < st.Fields.$length)) { break; } + ft = $clone((x = st.Fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])), StructField); + if (!ft.Typ.Comparable()) { + return false; + } + i = i + (1) >> 0; + } + } + return true; + }; + ptrType.methods = [{prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "HasName", name: "HasName", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Pointers", name: "Pointers", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IfaceIndir", name: "IfaceIndir", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsDirectIface", name: "IsDirectIface", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Common", name: "Common", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "ChanDir", name: "ChanDir", pkg: "", typ: $funcType([], [ChanDir], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "StructType", name: "StructType", pkg: "", typ: $funcType([], [ptrType$1], false)}, {prop: "MapType", name: "MapType", pkg: "", typ: $funcType([], [ptrType$2], false)}, {prop: "ArrayType", name: "ArrayType", pkg: "", typ: $funcType([], [ptrType$3], false)}, {prop: "FuncType", name: "FuncType", pkg: "", typ: $funcType([], [ptrType$4], false)}, {prop: "InterfaceType", name: "InterfaceType", pkg: "", typ: $funcType([], [ptrType$5], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "Align", name: "Align", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "FieldAlign", name: "FieldAlign", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "ExportedMethods", name: "ExportedMethods", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Key", name: "Key", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "Uncommon", name: "Uncommon", pkg: "", typ: $funcType([], [ptrType$6], false)}, {prop: "JsType", name: "JsType", pkg: "", typ: $funcType([], [ptrType$9], false)}, {prop: "PtrTo", name: "PtrTo", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "JsPtrTo", name: "JsPtrTo", pkg: "", typ: $funcType([], [ptrType$9], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "NameOff", name: "NameOff", pkg: "", typ: $funcType([NameOff], [Name], false)}, {prop: "TypeOff", name: "TypeOff", pkg: "", typ: $funcType([TypeOff], [ptrType], false)}, {prop: "TextOff", name: "TextOff", pkg: "", typ: $funcType([TextOff], [$UnsafePointer], false)}, {prop: "IsWrapped", name: "IsWrapped", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false)}]; + Kind.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$5.methods = [{prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}]; + ptrType$2.methods = [{prop: "IndirectKey", name: "IndirectKey", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IndirectElem", name: "IndirectElem", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "ReflexiveKey", name: "ReflexiveKey", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "NeedKeyUpdate", name: "NeedKeyUpdate", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "HashMightPanic", name: "HashMightPanic", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$10.methods = [{prop: "Embedded", name: "Embedded", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$6.methods = [{prop: "Methods", name: "Methods", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "ExportedMethods", name: "ExportedMethods", pkg: "", typ: $funcType([], [sliceType$1], false)}]; + ptrType$4.methods = [{prop: "In", name: "In", pkg: "", typ: $funcType([$Int], [ptrType], false)}, {prop: "NumIn", name: "NumIn", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumOut", name: "NumOut", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Out", name: "Out", pkg: "", typ: $funcType([$Int], [ptrType], false)}, {prop: "IsVariadic", name: "IsVariadic", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "InSlice", name: "InSlice", pkg: "", typ: $funcType([], [sliceType$2], false)}, {prop: "OutSlice", name: "OutSlice", pkg: "", typ: $funcType([], [sliceType$2], false)}]; + Name.methods = [{prop: "IsExported", name: "IsExported", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "HasTag", name: "HasTag", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsEmbedded", name: "IsEmbedded", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsBlank", name: "IsBlank", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Tag", name: "Tag", pkg: "", typ: $funcType([], [$String], false)}, {prop: "PkgPath", name: "PkgPath", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$11.methods = [{prop: "SetPkgPath", name: "SetPkgPath", pkg: "", typ: $funcType([$String], [], false)}]; + Type.init("", [{prop: "Size_", name: "Size_", embedded: false, exported: true, typ: $Uintptr, tag: ""}, {prop: "PtrBytes", name: "PtrBytes", embedded: false, exported: true, typ: $Uintptr, tag: ""}, {prop: "Hash", name: "Hash", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "TFlag", name: "TFlag", embedded: false, exported: true, typ: TFlag, tag: ""}, {prop: "Align_", name: "Align_", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "FieldAlign_", name: "FieldAlign_", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Kind_", name: "Kind_", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Equal", name: "Equal", embedded: false, exported: true, typ: funcType, tag: ""}, {prop: "GCData", name: "GCData", embedded: false, exported: true, typ: ptrType$7, tag: ""}, {prop: "Str", name: "Str", embedded: false, exported: true, typ: NameOff, tag: ""}, {prop: "PtrToThis", name: "PtrToThis", embedded: false, exported: true, typ: TypeOff, tag: ""}]); + Method.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: NameOff, tag: ""}, {prop: "Mtyp", name: "Mtyp", embedded: false, exported: true, typ: TypeOff, tag: ""}, {prop: "Ifn", name: "Ifn", embedded: false, exported: true, typ: TextOff, tag: ""}, {prop: "Tfn", name: "Tfn", embedded: false, exported: true, typ: TextOff, tag: ""}]); + Imethod.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: NameOff, tag: ""}, {prop: "Typ", name: "Typ", embedded: false, exported: true, typ: TypeOff, tag: ""}]); + ArrayType.init("", [{prop: "Type", name: "Type", embedded: true, exported: true, typ: Type, tag: ""}, {prop: "Elem", name: "Elem", embedded: false, exported: true, typ: ptrType, tag: ""}, {prop: "Slice", name: "Slice", embedded: false, exported: true, typ: ptrType, tag: ""}, {prop: "Len", name: "Len", embedded: false, exported: true, typ: $Uintptr, tag: ""}]); + ChanType.init("", [{prop: "Type", name: "Type", embedded: true, exported: true, typ: Type, tag: ""}, {prop: "Elem", name: "Elem", embedded: false, exported: true, typ: ptrType, tag: ""}, {prop: "Dir", name: "Dir", embedded: false, exported: true, typ: ChanDir, tag: ""}]); + InterfaceType.init("", [{prop: "Type", name: "Type", embedded: true, exported: true, typ: Type, tag: ""}, {prop: "PkgPath", name: "PkgPath", embedded: false, exported: true, typ: Name, tag: ""}, {prop: "Methods", name: "Methods", embedded: false, exported: true, typ: sliceType$3, tag: ""}]); + MapType.init("", [{prop: "Type", name: "Type", embedded: true, exported: true, typ: Type, tag: ""}, {prop: "Key", name: "Key", embedded: false, exported: true, typ: ptrType, tag: ""}, {prop: "Elem", name: "Elem", embedded: false, exported: true, typ: ptrType, tag: ""}, {prop: "Bucket", name: "Bucket", embedded: false, exported: true, typ: ptrType, tag: ""}, {prop: "Hasher", name: "Hasher", embedded: false, exported: true, typ: funcType$1, tag: ""}, {prop: "KeySize", name: "KeySize", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "ValueSize", name: "ValueSize", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "BucketSize", name: "BucketSize", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Flags", name: "Flags", embedded: false, exported: true, typ: $Uint32, tag: ""}]); + SliceType.init("", [{prop: "Type", name: "Type", embedded: true, exported: true, typ: Type, tag: ""}, {prop: "Elem", name: "Elem", embedded: false, exported: true, typ: ptrType, tag: ""}]); + PtrType.init("", [{prop: "Type", name: "Type", embedded: true, exported: true, typ: Type, tag: ""}, {prop: "Elem", name: "Elem", embedded: false, exported: true, typ: ptrType, tag: ""}]); + StructField.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: Name, tag: ""}, {prop: "Typ", name: "Typ", embedded: false, exported: true, typ: ptrType, tag: ""}, {prop: "Offset", name: "Offset", embedded: false, exported: true, typ: $Uintptr, tag: ""}]); + StructType.init("", [{prop: "Type", name: "Type", embedded: true, exported: true, typ: Type, tag: ""}, {prop: "PkgPath", name: "PkgPath", embedded: false, exported: true, typ: Name, tag: ""}, {prop: "Fields", name: "Fields", embedded: false, exported: true, typ: sliceType$4, tag: ""}]); + UncommonType.init("", [{prop: "PkgPath", name: "PkgPath", embedded: false, exported: true, typ: NameOff, tag: ""}, {prop: "Mcount", name: "Mcount", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Xcount", name: "Xcount", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Methods_", name: "Methods_", embedded: false, exported: true, typ: sliceType$1, tag: ""}]); + FuncType.init("", [{prop: "Type", name: "Type", embedded: true, exported: true, typ: Type, tag: ""}, {prop: "InCount", name: "InCount", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "OutCount", name: "OutCount", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "In_", name: "In_", embedded: false, exported: true, typ: sliceType$2, tag: ""}, {prop: "Out_", name: "Out_", embedded: false, exported: true, typ: sliceType$2, tag: ""}]); + Name.init("internal/abi", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "tag", name: "tag", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "exported", name: "exported", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "embedded", name: "embedded", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "pkgPath", name: "pkgPath", embedded: false, exported: false, typ: $String, tag: ""}]); + NameOff.init(Name); + TypeOff.init(Type); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = goarch.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + kindNames = new sliceType(["invalid", "bool", "int", "int8", "int16", "int32", "int64", "uint", "uint8", "uint16", "uint32", "uint64", "uintptr", "float32", "float64", "complex64", "complex128", "array", "chan", "func", "interface", "map", "ptr", "slice", "string", "struct", "unsafe.Pointer"]); + $pkg.JsObjectPtr = ReflectType($jsObjectPtr); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); $packages["internal/reflectlite"] = (function() { - var $pkg = {}, $init, js, goarch, Value, flag, ValueError, Type, Kind, tflag, rtype, method, chanDir, arrayType, chanType, imethod, interfaceType, mapType, ptrType, sliceType, structField, structType, nameOff, typeOff, textOff, errorString, Method, uncommonType, funcType, name, nameData, mapIter, TypeEx, ptrType$1, sliceType$1, sliceType$2, sliceType$3, sliceType$4, ptrType$2, funcType$1, ptrType$4, sliceType$5, ptrType$5, sliceType$6, ptrType$6, ptrType$7, sliceType$7, sliceType$8, sliceType$9, sliceType$10, ptrType$8, structType$2, ptrType$9, arrayType$2, sliceType$13, ptrType$10, funcType$2, ptrType$11, funcType$3, ptrType$12, ptrType$13, uint8Type, nameOffList, typeOffList, kindNames, callHelper, initialized, idJsType, idReflectType, idKindType, idRtype, uncommonTypeMap, nameMap, jsObjectPtr, selectHelper, implements$1, directlyAssignable, haveIdenticalType, haveIdenticalUnderlyingType, toType, ifaceIndir, unquote, Swapper, init, jsType, reflectType, setKindType, newName, newNameOff, newTypeOff, internalStr, isWrapped, copyStruct, makeValue, TypeOf, ValueOf, FuncOf, SliceOf, unsafe_New, typedmemmove, keyFor, mapaccess, mapiterinit, mapiterkey, mapiternext, maplen, methodReceiver, valueInterface, ifaceE2I, methodName, makeMethodValue, wrapJsObject, unwrapJsObject, getJsTag, PtrTo, copyVal; + var $pkg = {}, $init, js, abi, goarch, Value, flag, ValueError, Type, rtype, ptrType, ptrType$1, sliceType, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, sliceType$1, sliceType$2, sliceType$3, ptrType$10, sliceType$4, ptrType$11, toRType, elem, implements$1, directlyAssignable, haveIdenticalType, haveIdenticalUnderlyingType, toType, Swapper, init, jsType, pkgPath, makeValue, TypeOf, ValueOf, unsafe_New, methodReceiver, valueInterface, ifaceE2I, methodName, makeMethodValue; js = $packages["github.com/gopherjs/gopherjs/js"]; + abi = $packages["internal/abi"]; goarch = $packages["internal/goarch"]; Value = $newType(0, $kindStruct, "reflectlite.Value", true, "internal/reflectlite", true, function(typ_, ptr_, flag_) { this.$val = this; if (arguments.length === 0) { - this.typ = ptrType$1.nil; + this.typ = ptrType.nil; this.ptr = 0; this.flag = 0; return; @@ -3010,323 +4057,37 @@ $packages["internal/reflectlite"] = (function() { this.Kind = Kind_; }); Type = $newType(8, $kindInterface, "reflectlite.Type", true, "internal/reflectlite", true, null); - Kind = $newType(4, $kindUint, "reflectlite.Kind", true, "internal/reflectlite", true, null); - tflag = $newType(1, $kindUint8, "reflectlite.tflag", true, "internal/reflectlite", false, null); - rtype = $newType(0, $kindStruct, "reflectlite.rtype", true, "internal/reflectlite", false, function(size_, ptrdata_, hash_, tflag_, align_, fieldAlign_, kind_, equal_, gcdata_, str_, ptrToThis_) { + rtype = $newType(0, $kindStruct, "reflectlite.rtype", true, "internal/reflectlite", false, function(Type_) { this.$val = this; if (arguments.length === 0) { - this.size = 0; - this.ptrdata = 0; - this.hash = 0; - this.tflag = 0; - this.align = 0; - this.fieldAlign = 0; - this.kind = 0; - this.equal = $throwNilPointerError; - this.gcdata = ptrType$6.nil; - this.str = 0; - this.ptrToThis = 0; - return; - } - this.size = size_; - this.ptrdata = ptrdata_; - this.hash = hash_; - this.tflag = tflag_; - this.align = align_; - this.fieldAlign = fieldAlign_; - this.kind = kind_; - this.equal = equal_; - this.gcdata = gcdata_; - this.str = str_; - this.ptrToThis = ptrToThis_; - }); - method = $newType(0, $kindStruct, "reflectlite.method", true, "internal/reflectlite", false, function(name_, mtyp_, ifn_, tfn_) { - this.$val = this; - if (arguments.length === 0) { - this.name = 0; - this.mtyp = 0; - this.ifn = 0; - this.tfn = 0; - return; - } - this.name = name_; - this.mtyp = mtyp_; - this.ifn = ifn_; - this.tfn = tfn_; - }); - chanDir = $newType(4, $kindInt, "reflectlite.chanDir", true, "internal/reflectlite", false, null); - arrayType = $newType(0, $kindStruct, "reflectlite.arrayType", true, "internal/reflectlite", false, function(rtype_, elem_, slice_, len_) { - this.$val = this; - if (arguments.length === 0) { - this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0); - this.elem = ptrType$1.nil; - this.slice = ptrType$1.nil; - this.len = 0; - return; - } - this.rtype = rtype_; - this.elem = elem_; - this.slice = slice_; - this.len = len_; - }); - chanType = $newType(0, $kindStruct, "reflectlite.chanType", true, "internal/reflectlite", false, function(rtype_, elem_, dir_) { - this.$val = this; - if (arguments.length === 0) { - this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0); - this.elem = ptrType$1.nil; - this.dir = 0; - return; - } - this.rtype = rtype_; - this.elem = elem_; - this.dir = dir_; - }); - imethod = $newType(0, $kindStruct, "reflectlite.imethod", true, "internal/reflectlite", false, function(name_, typ_) { - this.$val = this; - if (arguments.length === 0) { - this.name = 0; - this.typ = 0; - return; - } - this.name = name_; - this.typ = typ_; - }); - interfaceType = $newType(0, $kindStruct, "reflectlite.interfaceType", true, "internal/reflectlite", false, function(rtype_, pkgPath_, methods_) { - this.$val = this; - if (arguments.length === 0) { - this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0); - this.pkgPath = new name.ptr(ptrType$6.nil); - this.methods = sliceType$9.nil; - return; - } - this.rtype = rtype_; - this.pkgPath = pkgPath_; - this.methods = methods_; - }); - mapType = $newType(0, $kindStruct, "reflectlite.mapType", true, "internal/reflectlite", false, function(rtype_, key_, elem_, bucket_, hasher_, keysize_, valuesize_, bucketsize_, flags_) { - this.$val = this; - if (arguments.length === 0) { - this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0); - this.key = ptrType$1.nil; - this.elem = ptrType$1.nil; - this.bucket = ptrType$1.nil; - this.hasher = $throwNilPointerError; - this.keysize = 0; - this.valuesize = 0; - this.bucketsize = 0; - this.flags = 0; - return; - } - this.rtype = rtype_; - this.key = key_; - this.elem = elem_; - this.bucket = bucket_; - this.hasher = hasher_; - this.keysize = keysize_; - this.valuesize = valuesize_; - this.bucketsize = bucketsize_; - this.flags = flags_; - }); - ptrType = $newType(0, $kindStruct, "reflectlite.ptrType", true, "internal/reflectlite", false, function(rtype_, elem_) { - this.$val = this; - if (arguments.length === 0) { - this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0); - this.elem = ptrType$1.nil; - return; - } - this.rtype = rtype_; - this.elem = elem_; - }); - sliceType = $newType(0, $kindStruct, "reflectlite.sliceType", true, "internal/reflectlite", false, function(rtype_, elem_) { - this.$val = this; - if (arguments.length === 0) { - this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0); - this.elem = ptrType$1.nil; - return; - } - this.rtype = rtype_; - this.elem = elem_; - }); - structField = $newType(0, $kindStruct, "reflectlite.structField", true, "internal/reflectlite", false, function(name_, typ_, offset_) { - this.$val = this; - if (arguments.length === 0) { - this.name = new name.ptr(ptrType$6.nil); - this.typ = ptrType$1.nil; - this.offset = 0; - return; - } - this.name = name_; - this.typ = typ_; - this.offset = offset_; - }); - structType = $newType(0, $kindStruct, "reflectlite.structType", true, "internal/reflectlite", false, function(rtype_, pkgPath_, fields_) { - this.$val = this; - if (arguments.length === 0) { - this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0); - this.pkgPath = new name.ptr(ptrType$6.nil); - this.fields = sliceType$10.nil; - return; - } - this.rtype = rtype_; - this.pkgPath = pkgPath_; - this.fields = fields_; - }); - nameOff = $newType(4, $kindInt32, "reflectlite.nameOff", true, "internal/reflectlite", false, null); - typeOff = $newType(4, $kindInt32, "reflectlite.typeOff", true, "internal/reflectlite", false, null); - textOff = $newType(4, $kindInt32, "reflectlite.textOff", true, "internal/reflectlite", false, null); - errorString = $newType(0, $kindStruct, "reflectlite.errorString", true, "internal/reflectlite", false, function(s_) { - this.$val = this; - if (arguments.length === 0) { - this.s = ""; - return; - } - this.s = s_; - }); - Method = $newType(0, $kindStruct, "reflectlite.Method", true, "internal/reflectlite", true, function(Name_, PkgPath_, Type_, Func_, Index_) { - this.$val = this; - if (arguments.length === 0) { - this.Name = ""; - this.PkgPath = ""; - this.Type = $ifaceNil; - this.Func = new Value.ptr(ptrType$1.nil, 0, 0); - this.Index = 0; + this.Type = ptrType.nil; return; } - this.Name = Name_; - this.PkgPath = PkgPath_; this.Type = Type_; - this.Func = Func_; - this.Index = Index_; - }); - uncommonType = $newType(0, $kindStruct, "reflectlite.uncommonType", true, "internal/reflectlite", false, function(pkgPath_, mcount_, xcount_, moff_, _methods_) { - this.$val = this; - if (arguments.length === 0) { - this.pkgPath = 0; - this.mcount = 0; - this.xcount = 0; - this.moff = 0; - this._methods = sliceType$5.nil; - return; - } - this.pkgPath = pkgPath_; - this.mcount = mcount_; - this.xcount = xcount_; - this.moff = moff_; - this._methods = _methods_; - }); - funcType = $newType(0, $kindStruct, "reflectlite.funcType", true, "internal/reflectlite", false, function(rtype_, inCount_, outCount_, _in_, _out_) { - this.$val = this; - if (arguments.length === 0) { - this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0); - this.inCount = 0; - this.outCount = 0; - this._in = sliceType$2.nil; - this._out = sliceType$2.nil; - return; - } - this.rtype = rtype_; - this.inCount = inCount_; - this.outCount = outCount_; - this._in = _in_; - this._out = _out_; - }); - name = $newType(0, $kindStruct, "reflectlite.name", true, "internal/reflectlite", false, function(bytes_) { - this.$val = this; - if (arguments.length === 0) { - this.bytes = ptrType$6.nil; - return; - } - this.bytes = bytes_; - }); - nameData = $newType(0, $kindStruct, "reflectlite.nameData", true, "internal/reflectlite", false, function(name_, tag_, exported_, embedded_) { - this.$val = this; - if (arguments.length === 0) { - this.name = ""; - this.tag = ""; - this.exported = false; - this.embedded = false; - return; - } - this.name = name_; - this.tag = tag_; - this.exported = exported_; - this.embedded = embedded_; - }); - mapIter = $newType(0, $kindStruct, "reflectlite.mapIter", true, "internal/reflectlite", false, function(t_, m_, keys_, i_, last_) { - this.$val = this; - if (arguments.length === 0) { - this.t = $ifaceNil; - this.m = null; - this.keys = null; - this.i = 0; - this.last = null; - return; - } - this.t = t_; - this.m = m_; - this.keys = keys_; - this.i = i_; - this.last = last_; }); - TypeEx = $newType(8, $kindInterface, "reflectlite.TypeEx", true, "internal/reflectlite", true, null); $pkg.Value = Value; $pkg.flag = flag; $pkg.ValueError = ValueError; $pkg.Type = Type; - $pkg.Kind = Kind; - $pkg.tflag = tflag; $pkg.rtype = rtype; - $pkg.method = method; - $pkg.chanDir = chanDir; - $pkg.arrayType = arrayType; - $pkg.chanType = chanType; - $pkg.imethod = imethod; - $pkg.interfaceType = interfaceType; - $pkg.mapType = mapType; - $pkg.ptrType = ptrType; - $pkg.sliceType = sliceType; - $pkg.structField = structField; - $pkg.structType = structType; - $pkg.nameOff = nameOff; - $pkg.typeOff = typeOff; - $pkg.textOff = textOff; - $pkg.errorString = errorString; - $pkg.Method = Method; - $pkg.uncommonType = uncommonType; - $pkg.funcType = funcType; - $pkg.name = name; - $pkg.nameData = nameData; - $pkg.mapIter = mapIter; - $pkg.TypeEx = TypeEx; $pkg.$finishSetup = function() { - ptrType$1 = $ptrType(rtype); - sliceType$1 = $sliceType(name); - sliceType$2 = $sliceType(ptrType$1); - sliceType$3 = $sliceType($String); - sliceType$4 = $sliceType($emptyInterface); - ptrType$2 = $ptrType(js.Object); - funcType$1 = $funcType([sliceType$4], [ptrType$2], true); - ptrType$4 = $ptrType(uncommonType); - sliceType$5 = $sliceType(method); - ptrType$5 = $ptrType(funcType); - sliceType$6 = $sliceType(Value); - ptrType$6 = $ptrType($Uint8); - ptrType$7 = $ptrType($UnsafePointer); - sliceType$7 = $sliceType(Type); - sliceType$8 = $sliceType(ptrType$2); - sliceType$9 = $sliceType(imethod); - sliceType$10 = $sliceType(structField); - ptrType$8 = $ptrType(nameData); - structType$2 = $structType("internal/reflectlite", [{prop: "str", name: "str", embedded: false, exported: false, typ: $String, tag: ""}]); - ptrType$9 = $ptrType(mapIter); - arrayType$2 = $arrayType($Uintptr, 2); - sliceType$13 = $sliceType($Uint8); - ptrType$10 = $ptrType(ValueError); - funcType$2 = $funcType([$UnsafePointer, $UnsafePointer], [$Bool], false); - ptrType$11 = $ptrType(interfaceType); - funcType$3 = $funcType([$UnsafePointer, $Uintptr], [$Uintptr], false); - ptrType$12 = $ptrType(structField); - ptrType$13 = $ptrType(errorString); + ptrType = $ptrType(abi.Type); + ptrType$1 = $ptrType(abi.UncommonType); + sliceType = $sliceType(abi.Method); + ptrType$2 = $ptrType(abi.InterfaceType); + ptrType$3 = $ptrType(abi.FuncType); + ptrType$4 = $ptrType(abi.MapType); + ptrType$5 = $ptrType(abi.ArrayType); + ptrType$6 = $ptrType(abi.StructType); + ptrType$7 = $ptrType(abi.Imethod); + ptrType$8 = $ptrType(abi.StructField); + ptrType$9 = $ptrType($Uint8); + sliceType$1 = $sliceType(ptrType); + sliceType$2 = $sliceType(abi.Imethod); + sliceType$3 = $sliceType(abi.StructField); + ptrType$10 = $ptrType(js.Object); + sliceType$4 = $sliceType(ptrType$10); + ptrType$11 = $ptrType(ValueError); flag.prototype.kind = function kind() { var f; f = this.$val; @@ -3342,25 +4103,13 @@ $packages["internal/reflectlite"] = (function() { return 0; }; $ptrType(flag).prototype.ro = function(...$args) { return new flag(this.$get()).ro(...$args); }; - $ptrType(Value).prototype.pointer = function pointer() { - var v; - v = this; - if (!((v.typ.size === 4)) || !v.typ.pointers()) { - $panic(new $String("can't call pointer on a non-pointer Value")); - } - if (!((((v.flag & 128) >>> 0) === 0))) { - return (v.ptr).$get(); - } - return v.ptr; - }; - Value.prototype.pointer = function(...$args) { return this.$val.pointer(...$args); }; $ptrType(ValueError).prototype.Error = function Error() { var e; e = this; if (e.Kind === 0) { return "reflect: call of " + e.Method + " on zero Value"; } - return "reflect: call of " + e.Method + " on " + new Kind(e.Kind).String() + " Value"; + return "reflect: call of " + e.Method + " on " + new abi.Kind(e.Kind).String() + " Value"; }; flag.prototype.mustBeExported = function mustBeExported() { var f; @@ -3406,100 +4155,67 @@ $packages["internal/reflectlite"] = (function() { }; Value.prototype.Kind = function(...$args) { return this.$val.Kind(...$args); }; $ptrType(Value).prototype.Type = function Type$1() { - var f, v; + var f, v, x; v = this; f = v.flag; if (f === 0) { $panic(new ValueError.ptr("reflectlite.Value.Type", 0)); } - return v.typ; + return (x = toRType(v.typ), new x.constructor.elem(x)); }; Value.prototype.Type = function(...$args) { return this.$val.Type(...$args); }; - $ptrType(structField).prototype.embedded = function embedded() { - var f; - f = this; - return $clone(f.name, name).embedded(); - }; - Kind.prototype.String = function String() { - var k; - k = this.$val; - if (((k >> 0)) < kindNames.$length) { - return ((k < 0 || k >= kindNames.$length) ? ($throwRuntimeError("index out of range"), undefined) : kindNames.$array[kindNames.$offset + k]); - } - return (0 >= kindNames.$length ? ($throwRuntimeError("index out of range"), undefined) : kindNames.$array[kindNames.$offset + 0]); - }; - $ptrType(Kind).prototype.String = function(...$args) { return new Kind(this.$get()).String(...$args); }; - $ptrType(rtype).prototype.String = function String$1() { - var s, t; - t = this; - s = $clone(t.nameOff(t.str), name).name(); - if (!((((t.tflag & 2) >>> 0) === 0))) { - return $substring(s, 1); - } - return s; - }; - $ptrType(rtype).prototype.Size = function Size() { - var t; - t = this; - return t.size; - }; - $ptrType(rtype).prototype.Kind = function Kind$2() { - var t; - t = this; - return ((((t.kind & 31) >>> 0) >>> 0)); - }; - $ptrType(rtype).prototype.pointers = function pointers() { + $ptrType(rtype).prototype.uncommon = function uncommon() { var t; t = this; - return !((t.ptrdata === 0)); + return t.Type.Uncommon(); }; + rtype.prototype.uncommon = function(...$args) { return this.$val.uncommon(...$args); }; $ptrType(rtype).prototype.common = function common() { var t; t = this; - return t; + return t.Type; }; + rtype.prototype.common = function(...$args) { return this.$val.common(...$args); }; $ptrType(rtype).prototype.exportedMethods = function exportedMethods() { var t, ut; t = this; - ut = t.uncommon(); - if (ut === ptrType$4.nil) { - return sliceType$5.nil; + ut = $clone(t, rtype).uncommon(); + if (ut === ptrType$1.nil) { + return sliceType.nil; } - return ut.exportedMethods(); + return ut.ExportedMethods(); }; + rtype.prototype.exportedMethods = function(...$args) { return this.$val.exportedMethods(...$args); }; $ptrType(rtype).prototype.NumMethod = function NumMethod() { var t, tt; t = this; - if (t.Kind() === 20) { - tt = (t.kindType); + tt = t.Type.InterfaceType(); + if (!(tt === ptrType$2.nil)) { return tt.NumMethod(); } - return t.exportedMethods().$length; + return $clone(t, rtype).exportedMethods().$length; }; + rtype.prototype.NumMethod = function(...$args) { return this.$val.NumMethod(...$args); }; $ptrType(rtype).prototype.PkgPath = function PkgPath() { var t, ut; t = this; - if (((t.tflag & 4) >>> 0) === 0) { + if (((t.Type.TFlag & 4) >>> 0) === 0) { return ""; } - ut = t.uncommon(); - if (ut === ptrType$4.nil) { + ut = $clone(t, rtype).uncommon(); + if (ut === ptrType$1.nil) { return ""; } - return $clone(t.nameOff(ut.pkgPath), name).name(); - }; - $ptrType(rtype).prototype.hasName = function hasName() { - var t; - t = this; - return !((((t.tflag & 4) >>> 0) === 0)); + return $clone($clone(t, rtype).nameOff(ut.PkgPath), abi.Name).Name(); }; + rtype.prototype.PkgPath = function(...$args) { return this.$val.PkgPath(...$args); }; $ptrType(rtype).prototype.Name = function Name() { var _1, i, s, sqBrackets, t; t = this; - if (!t.hasName()) { + if (!t.Type.HasName()) { return ""; } - s = t.String(); + s = $clone(t, rtype).String(); i = s.length - 1 >> 0; sqBrackets = 0; while (true) { @@ -3514,89 +4230,97 @@ $packages["internal/reflectlite"] = (function() { } return $substring(s, (i + 1 >> 0)); }; - $ptrType(rtype).prototype.chanDir = function chanDir$1() { - var t, tt; - t = this; - if (!((t.Kind() === 18))) { - $panic(new $String("reflect: chanDir of non-chan type")); + rtype.prototype.Name = function(...$args) { return this.$val.Name(...$args); }; + toRType = function toRType$1(t) { + var t; + return new rtype.ptr(t); + }; + elem = function elem$1(t) { + var et, t; + et = t.Elem(); + if (!(et === ptrType.nil)) { + return et; } - tt = (t.kindType); - return ((tt.dir >> 0)); + $panic(new $String("reflect: Elem of invalid type " + $clone(toRType(t), rtype).String())); }; $ptrType(rtype).prototype.Elem = function Elem() { - var _1, t, tt, tt$1, tt$2, tt$3, tt$4; + var t; t = this; - _1 = t.Kind(); - if (_1 === (17)) { - tt = (t.kindType); - return toType(tt.elem); - } else if (_1 === (18)) { - tt$1 = (t.kindType); - return toType(tt$1.elem); - } else if (_1 === (21)) { - tt$2 = (t.kindType); - return toType(tt$2.elem); - } else if (_1 === (22)) { - tt$3 = (t.kindType); - return toType(tt$3.elem); - } else if (_1 === (23)) { - tt$4 = (t.kindType); - return toType(tt$4.elem); - } - $panic(new $String("reflect: Elem of invalid type")); + return toType(elem($clone(t, rtype).common())); }; + rtype.prototype.Elem = function(...$args) { return this.$val.Elem(...$args); }; $ptrType(rtype).prototype.In = function In(i) { var i, t, tt, x; t = this; - if (!((t.Kind() === 19))) { + tt = t.Type.FuncType(); + if (tt === ptrType$3.nil) { $panic(new $String("reflect: In of non-func type")); } - tt = (t.kindType); - return toType((x = tt.in$(), ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]))); + return toType((x = tt.InSlice(), ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]))); + }; + rtype.prototype.In = function(...$args) { return this.$val.In(...$args); }; + $ptrType(rtype).prototype.Key = function Key() { + var t, tt; + t = this; + tt = t.Type.MapType(); + if (tt === ptrType$4.nil) { + $panic(new $String("reflect: Key of non-map type")); + } + return toType(tt.Key); }; + rtype.prototype.Key = function(...$args) { return this.$val.Key(...$args); }; $ptrType(rtype).prototype.Len = function Len() { var t, tt; t = this; - if (!((t.Kind() === 17))) { + tt = t.Type.ArrayType(); + if (tt === ptrType$5.nil) { $panic(new $String("reflect: Len of non-array type")); } - tt = (t.kindType); - return ((tt.len >> 0)); + return ((tt.Len >> 0)); + }; + rtype.prototype.Len = function(...$args) { return this.$val.Len(...$args); }; + $ptrType(rtype).prototype.NumField = function NumField() { + var t, tt; + t = this; + tt = t.Type.StructType(); + if (tt === ptrType$6.nil) { + $panic(new $String("reflect: NumField of non-struct type")); + } + return tt.Fields.$length; }; + rtype.prototype.NumField = function(...$args) { return this.$val.NumField(...$args); }; $ptrType(rtype).prototype.NumIn = function NumIn() { var t, tt; t = this; - if (!((t.Kind() === 19))) { + tt = t.Type.FuncType(); + if (tt === ptrType$3.nil) { $panic(new $String("reflect: NumIn of non-func type")); } - tt = (t.kindType); - return ((tt.inCount >> 0)); + return ((tt.InCount >> 0)); }; + rtype.prototype.NumIn = function(...$args) { return this.$val.NumIn(...$args); }; $ptrType(rtype).prototype.NumOut = function NumOut() { var t, tt; t = this; - if (!((t.Kind() === 19))) { + tt = t.Type.FuncType(); + if (tt === ptrType$3.nil) { $panic(new $String("reflect: NumOut of non-func type")); } - tt = (t.kindType); - return tt.out().$length; + return tt.NumOut(); }; + rtype.prototype.NumOut = function(...$args) { return this.$val.NumOut(...$args); }; $ptrType(rtype).prototype.Out = function Out(i) { var i, t, tt, x; t = this; - if (!((t.Kind() === 19))) { + tt = t.Type.FuncType(); + if (tt === ptrType$3.nil) { $panic(new $String("reflect: Out of non-func type")); } - tt = (t.kindType); - return toType((x = tt.out(), ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]))); - }; - $ptrType(interfaceType).prototype.NumMethod = function NumMethod$1() { - var t; - t = this; - return t.methods.$length; + return toType((x = tt.OutSlice(), ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]))); }; + rtype.prototype.Out = function(...$args) { return this.$val.Out(...$args); }; $ptrType(rtype).prototype.Implements = function Implements(u) { - var {_r, t, u, $s, $r, $c} = $restore(this, {u}); + var {$24r, _r, _r$1, _r$2, t, u, $s, $r, $c} = $restore(this, {u}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: t = this; if ($interfaceIsEqual(u, $ifaceNil)) { @@ -3608,50 +4332,57 @@ $packages["internal/reflectlite"] = (function() { /* if (!((_r === 20))) { */ case 1: $panic(new $String("reflect: non-interface type passed to Type.Implements")); /* } */ case 2: - $s = -1; return implements$1($assertType(u, ptrType$1), t); - /* */ } return; } var $f = {$blk: Implements, $c: true, $r, _r, t, u, $s};return $f; + _r$1 = u.common(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = implements$1(_r$1, $clone(t, rtype).common()); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 6; case 6: return $24r; + /* */ } return; } var $f = {$blk: Implements, $c: true, $r, $24r, _r, _r$1, _r$2, t, u, $s};return $f; }; + rtype.prototype.Implements = function(...$args) { return this.$val.Implements(...$args); }; $ptrType(rtype).prototype.AssignableTo = function AssignableTo(u) { - var {$24r, _r, t, u, uu, $s, $r, $c} = $restore(this, {u}); + var {_r, t, tt, u, uu, $s, $r, $c} = $restore(this, {u}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: t = this; if ($interfaceIsEqual(u, $ifaceNil)) { $panic(new $String("reflect: nil type passed to Type.AssignableTo")); } - uu = $assertType(u, ptrType$1); - _r = directlyAssignable(uu, t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r || implements$1(uu, t); - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: AssignableTo, $c: true, $r, $24r, _r, t, u, uu, $s};return $f; + _r = u.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + uu = _r; + tt = $clone(t, rtype).common(); + $s = -1; return directlyAssignable(uu, tt) || implements$1(uu, tt); + /* */ } return; } var $f = {$blk: AssignableTo, $c: true, $r, _r, t, tt, u, uu, $s};return $f; }; + rtype.prototype.AssignableTo = function(...$args) { return this.$val.AssignableTo(...$args); }; implements$1 = function implements$2(T, V) { - var T, V, i, i$1, j, j$1, t, tm, tm$1, tmName, tmName$1, tmPkgPath, tmPkgPath$1, v, v$1, vm, vm$1, vmName, vmName$1, vmPkgPath, vmPkgPath$1, vmethods, x, x$1, x$2; - if (!((T.Kind() === 20))) { + var T, V, i, i$1, j, j$1, rT, rV, t, tm, tm$1, tmName, tmName$1, tmPkgPath, tmPkgPath$1, v, v$1, vm, vm$1, vmName, vmName$1, vmPkgPath, vmPkgPath$1, vmethods, x, x$1, x$2; + t = T.InterfaceType(); + if (t === ptrType$2.nil) { return false; } - t = (T.kindType); - if (t.methods.$length === 0) { + if (t.Methods.$length === 0) { return true; } + rT = $clone(toRType(T), rtype); + rV = $clone(toRType(V), rtype); if (V.Kind() === 20) { v = (V.kindType); i = 0; j = 0; while (true) { - if (!(j < v.methods.$length)) { break; } - tm = (x = t.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - tmName = $clone(t.rtype.nameOff(tm.name), name); - vm = (x$1 = v.methods, ((j < 0 || j >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + j])); - vmName = $clone(V.nameOff(vm.name), name); - if ($clone(vmName, name).name() === $clone(tmName, name).name() && V.typeOff(vm.typ) === t.rtype.typeOff(tm.typ)) { - if (!$clone(tmName, name).isExported()) { - tmPkgPath = $clone(tmName, name).pkgPath(); + if (!(j < v.Methods.$length)) { break; } + tm = (x = t.Methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + i, ptrType$7))); + tmName = $clone($clone(rT, rtype).nameOff(tm.Name), abi.Name); + vm = (x$1 = v.Methods, ((j < 0 || j >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + j, ptrType$7))); + vmName = $clone($clone(rV, rtype).nameOff(vm.Name), abi.Name); + if ($clone(vmName, abi.Name).Name() === $clone(tmName, abi.Name).Name() && $clone(rV, rtype).typeOff(vm.Typ) === $clone(rT, rtype).typeOff(tm.Typ)) { + if (!$clone(tmName, abi.Name).IsExported()) { + tmPkgPath = pkgPath($clone(tmName, abi.Name)); if (tmPkgPath === "") { - tmPkgPath = $clone(t.pkgPath, name).name(); + tmPkgPath = $clone(t.PkgPath, abi.Name).Name(); } - vmPkgPath = $clone(vmName, name).pkgPath(); + vmPkgPath = pkgPath($clone(vmName, abi.Name)); if (vmPkgPath === "") { - vmPkgPath = $clone(v.pkgPath, name).name(); + vmPkgPath = $clone(v.PkgPath, abi.Name).Name(); } if (!(tmPkgPath === vmPkgPath)) { j = j + (1) >> 0; @@ -3659,7 +4390,7 @@ $packages["internal/reflectlite"] = (function() { } } i = i + (1) >> 0; - if (i >= t.methods.$length) { + if (i >= t.Methods.$length) { return true; } } @@ -3667,28 +4398,28 @@ $packages["internal/reflectlite"] = (function() { } return false; } - v$1 = V.uncommon(); - if (v$1 === ptrType$4.nil) { + v$1 = V.Uncommon(); + if (v$1 === ptrType$1.nil) { return false; } i$1 = 0; - vmethods = v$1.methods(); + vmethods = v$1.Methods(); j$1 = 0; while (true) { - if (!(j$1 < ((v$1.mcount >> 0)))) { break; } - tm$1 = (x$2 = t.methods, ((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$1])); - tmName$1 = $clone(t.rtype.nameOff(tm$1.name), name); - vm$1 = $clone(((j$1 < 0 || j$1 >= vmethods.$length) ? ($throwRuntimeError("index out of range"), undefined) : vmethods.$array[vmethods.$offset + j$1]), method); - vmName$1 = $clone(V.nameOff(vm$1.name), name); - if ($clone(vmName$1, name).name() === $clone(tmName$1, name).name() && V.typeOff(vm$1.mtyp) === t.rtype.typeOff(tm$1.typ)) { - if (!$clone(tmName$1, name).isExported()) { - tmPkgPath$1 = $clone(tmName$1, name).pkgPath(); + if (!(j$1 < ((v$1.Mcount >> 0)))) { break; } + tm$1 = (x$2 = t.Methods, ((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$2.$array, x$2.$offset + i$1, ptrType$7))); + tmName$1 = $clone($clone(rT, rtype).nameOff(tm$1.Name), abi.Name); + vm$1 = $clone(((j$1 < 0 || j$1 >= vmethods.$length) ? ($throwRuntimeError("index out of range"), undefined) : vmethods.$array[vmethods.$offset + j$1]), abi.Method); + vmName$1 = $clone($clone(rV, rtype).nameOff(vm$1.Name), abi.Name); + if ($clone(vmName$1, abi.Name).Name() === $clone(tmName$1, abi.Name).Name() && $clone(rV, rtype).typeOff(vm$1.Mtyp) === $clone(rT, rtype).typeOff(tm$1.Typ)) { + if (!$clone(tmName$1, abi.Name).IsExported()) { + tmPkgPath$1 = pkgPath($clone(tmName$1, abi.Name)); if (tmPkgPath$1 === "") { - tmPkgPath$1 = $clone(t.pkgPath, name).name(); + tmPkgPath$1 = $clone(t.PkgPath, abi.Name).Name(); } - vmPkgPath$1 = $clone(vmName$1, name).pkgPath(); + vmPkgPath$1 = pkgPath($clone(vmName$1, abi.Name)); if (vmPkgPath$1 === "") { - vmPkgPath$1 = $clone(V.nameOff(v$1.pkgPath), name).name(); + vmPkgPath$1 = $clone($clone(rV, rtype).nameOff(v$1.PkgPath), abi.Name).Name(); } if (!(tmPkgPath$1 === vmPkgPath$1)) { j$1 = j$1 + (1) >> 0; @@ -3696,7 +4427,7 @@ $packages["internal/reflectlite"] = (function() { } } i$1 = i$1 + (1) >> 0; - if (i$1 >= t.methods.$length) { + if (i$1 >= t.Methods.$length) { return true; } } @@ -3705,189 +4436,122 @@ $packages["internal/reflectlite"] = (function() { return false; }; directlyAssignable = function directlyAssignable$1(T, V) { - var {$24r, T, V, _r, $s, $r, $c} = $restore(this, {T, V}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var T, V; if (T === V) { - $s = -1; return true; + return true; } - if (T.hasName() && V.hasName() || !((T.Kind() === V.Kind()))) { - $s = -1; return false; + if (T.HasName() && V.HasName() || !((T.Kind() === V.Kind()))) { + return false; } - _r = haveIdenticalUnderlyingType(T, V, true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: directlyAssignable$1, $c: true, $r, $24r, T, V, _r, $s};return $f; + return haveIdenticalUnderlyingType(T, V, true); }; haveIdenticalType = function haveIdenticalType$1(T, V, cmpTags) { - var {$24r, T, V, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _v, cmpTags, $s, $r, $c} = $restore(this, {T, V, cmpTags}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var T, V, cmpTags; if (cmpTags) { - $s = -1; return $interfaceIsEqual(T, V); - } - _r = T.Name(); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = V.Name(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - if (!(_r === _r$1)) { _v = true; $s = 3; continue s; } - _r$2 = T.Kind(); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = V.Kind(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _v = !((_r$2 === _r$3)); case 3: - /* */ if (_v) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (_v) { */ case 1: - $s = -1; return false; - /* } */ case 2: - _r$4 = T.common(); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _arg = _r$4; - _r$5 = V.common(); /* */ $s = 9; case 9: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _arg$1 = _r$5; - _r$6 = haveIdenticalUnderlyingType(_arg, _arg$1, false); /* */ $s = 10; case 10: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - $24r = _r$6; - $s = 11; case 11: return $24r; - /* */ } return; } var $f = {$blk: haveIdenticalType$1, $c: true, $r, $24r, T, V, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _v, cmpTags, $s};return $f; + return T === V; + } + if (!($clone(toRType(T), rtype).Name() === $clone(toRType(V), rtype).Name()) || !((T.Kind() === V.Kind()))) { + return false; + } + return haveIdenticalUnderlyingType(T, V, false); }; haveIdenticalUnderlyingType = function haveIdenticalUnderlyingType$1(T, V, cmpTags) { - var {$24r, $24r$1, $24r$2, $24r$3, T, V, _1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _v, _v$1, _v$2, _v$3, cmpTags, i, i$1, i$2, kind$1, t, t$1, t$2, tf, v, v$1, v$2, vf, x, x$1, $s, $r, $c} = $restore(this, {T, V, cmpTags}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var T, V, _1, _i, _ref, cmpTags, i, i$1, i$2, kind$1, t, t$1, t$2, tf, v, v$1, v$2, vf, x, x$1; if (T === V) { - $s = -1; return true; + return true; } kind$1 = T.Kind(); if (!((kind$1 === V.Kind()))) { - $s = -1; return false; + return false; } if (1 <= kind$1 && kind$1 <= 16 || (kind$1 === 24) || (kind$1 === 26)) { - $s = -1; return true; + return true; } - _1 = kind$1; - /* */ if (_1 === (17)) { $s = 2; continue; } - /* */ if (_1 === (18)) { $s = 3; continue; } - /* */ if (_1 === (19)) { $s = 4; continue; } - /* */ if (_1 === (20)) { $s = 5; continue; } - /* */ if (_1 === (21)) { $s = 6; continue; } - /* */ if ((_1 === (22)) || (_1 === (23))) { $s = 7; continue; } - /* */ if (_1 === (25)) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (_1 === (17)) { */ case 2: - if (!(T.Len() === V.Len())) { _v = false; $s = 10; continue s; } - _r = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 11; case 11: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _v = _r; case 10: - $24r = _v; - $s = 12; case 12: return $24r; - /* } else if (_1 === (18)) { */ case 3: - if (!(V.chanDir() === 3)) { _v$1 = false; $s = 15; continue s; } - _r$1 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 16; case 16: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v$1 = _r$1; case 15: - /* */ if (_v$1) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (_v$1) { */ case 13: - $s = -1; return true; - /* } */ case 14: - if (!(V.chanDir() === T.chanDir())) { _v$2 = false; $s = 17; continue s; } - _r$2 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 18; case 18: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _v$2 = _r$2; case 17: - $24r$1 = _v$2; - $s = 19; case 19: return $24r$1; - /* } else if (_1 === (19)) { */ case 4: - t = (T.kindType); - v = (V.kindType); - if (!((t.outCount === v.outCount)) || !((t.inCount === v.inCount))) { - $s = -1; return false; + _1 = kind$1; + if (_1 === (17)) { + return (T.Len() === V.Len()) && haveIdenticalType(T.Elem(), V.Elem(), cmpTags); + } else if (_1 === (18)) { + if ((V.ChanDir() === 3) && haveIdenticalType(T.Elem(), V.Elem(), cmpTags)) { + return true; + } + return (V.ChanDir() === T.ChanDir()) && haveIdenticalType(T.Elem(), V.Elem(), cmpTags); + } else if (_1 === (19)) { + t = (T.kindType); + v = (V.kindType); + if (!((t.OutCount === v.OutCount)) || !((t.InCount === v.InCount))) { + return false; + } + i = 0; + while (true) { + if (!(i < t.NumIn())) { break; } + if (!haveIdenticalType(t.In(i), v.In(i), cmpTags)) { + return false; } - i = 0; - /* while (true) { */ case 20: - /* if (!(i < t.rtype.NumIn())) { break; } */ if(!(i < t.rtype.NumIn())) { $s = 21; continue; } - _r$3 = haveIdenticalType(t.rtype.In(i), v.rtype.In(i), cmpTags); /* */ $s = 24; case 24: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (!_r$3) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if (!_r$3) { */ case 22: - $s = -1; return false; - /* } */ case 23: - i = i + (1) >> 0; - $s = 20; continue; - case 21: - i$1 = 0; - /* while (true) { */ case 25: - /* if (!(i$1 < t.rtype.NumOut())) { break; } */ if(!(i$1 < t.rtype.NumOut())) { $s = 26; continue; } - _r$4 = haveIdenticalType(t.rtype.Out(i$1), v.rtype.Out(i$1), cmpTags); /* */ $s = 29; case 29: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if (!_r$4) { $s = 27; continue; } - /* */ $s = 28; continue; - /* if (!_r$4) { */ case 27: - $s = -1; return false; - /* } */ case 28: - i$1 = i$1 + (1) >> 0; - $s = 25; continue; - case 26: - $s = -1; return true; - /* } else if (_1 === (20)) { */ case 5: - t$1 = (T.kindType); - v$1 = (V.kindType); - if ((t$1.methods.$length === 0) && (v$1.methods.$length === 0)) { - $s = -1; return true; + i = i + (1) >> 0; + } + i$1 = 0; + while (true) { + if (!(i$1 < t.NumOut())) { break; } + if (!haveIdenticalType(t.Out(i$1), v.Out(i$1), cmpTags)) { + return false; } - $s = -1; return false; - /* } else if (_1 === (21)) { */ case 6: - _r$5 = haveIdenticalType(T.Key(), V.Key(), cmpTags); /* */ $s = 31; case 31: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - if (!(_r$5)) { _v$3 = false; $s = 30; continue s; } - _r$6 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 32; case 32: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _v$3 = _r$6; case 30: - $24r$2 = _v$3; - $s = 33; case 33: return $24r$2; - /* } else if ((_1 === (22)) || (_1 === (23))) { */ case 7: - _r$7 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 34; case 34: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - $24r$3 = _r$7; - $s = 35; case 35: return $24r$3; - /* } else if (_1 === (25)) { */ case 8: - t$2 = (T.kindType); - v$2 = (V.kindType); - if (!((t$2.fields.$length === v$2.fields.$length))) { - $s = -1; return false; + i$1 = i$1 + (1) >> 0; + } + return true; + } else if (_1 === (20)) { + t$1 = (T.kindType); + v$1 = (V.kindType); + if ((t$1.Methods.$length === 0) && (v$1.Methods.$length === 0)) { + return true; + } + return false; + } else if (_1 === (21)) { + return haveIdenticalType(T.Key(), V.Key(), cmpTags) && haveIdenticalType(T.Elem(), V.Elem(), cmpTags); + } else if ((_1 === (22)) || (_1 === (23))) { + return haveIdenticalType(T.Elem(), V.Elem(), cmpTags); + } else if (_1 === (25)) { + t$2 = (T.kindType); + v$2 = (V.kindType); + if (!((t$2.Fields.$length === v$2.Fields.$length))) { + return false; + } + if (!($clone(t$2.PkgPath, abi.Name).Name() === $clone(v$2.PkgPath, abi.Name).Name())) { + return false; + } + _ref = t$2.Fields; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i$2 = _i; + tf = (x = t$2.Fields, ((i$2 < 0 || i$2 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + i$2, ptrType$8))); + vf = (x$1 = v$2.Fields, ((i$2 < 0 || i$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + i$2, ptrType$8))); + if (!($clone(tf.Name, abi.Name).Name() === $clone(vf.Name, abi.Name).Name())) { + return false; } - if (!($clone(t$2.pkgPath, name).name() === $clone(v$2.pkgPath, name).name())) { - $s = -1; return false; + if (!haveIdenticalType(tf.Typ, vf.Typ, cmpTags)) { + return false; } - _ref = t$2.fields; - _i = 0; - /* while (true) { */ case 36: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 37; continue; } - i$2 = _i; - tf = (x = t$2.fields, ((i$2 < 0 || i$2 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i$2])); - vf = (x$1 = v$2.fields, ((i$2 < 0 || i$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$2])); - if (!($clone(tf.name, name).name() === $clone(vf.name, name).name())) { - $s = -1; return false; - } - _r$8 = haveIdenticalType(tf.typ, vf.typ, cmpTags); /* */ $s = 40; case 40: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - /* */ if (!_r$8) { $s = 38; continue; } - /* */ $s = 39; continue; - /* if (!_r$8) { */ case 38: - $s = -1; return false; - /* } */ case 39: - if (cmpTags && !($clone(tf.name, name).tag() === $clone(vf.name, name).tag())) { - $s = -1; return false; - } - if (!((tf.offset === vf.offset))) { - $s = -1; return false; - } - if (!(tf.embedded() === vf.embedded())) { - $s = -1; return false; - } - _i++; - $s = 36; continue; - case 37: - $s = -1; return true; - /* } */ case 9: - case 1: - $s = -1; return false; - /* */ } return; } var $f = {$blk: haveIdenticalUnderlyingType$1, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, T, V, _1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _v, _v$1, _v$2, _v$3, cmpTags, i, i$1, i$2, kind$1, t, t$1, t$2, tf, v, v$1, v$2, vf, x, x$1, $s};return $f; + if (cmpTags && !($clone(tf.Name, abi.Name).Tag() === $clone(vf.Name, abi.Name).Tag())) { + return false; + } + if (!((tf.Offset === vf.Offset))) { + return false; + } + if (!(tf.Embedded() === vf.Embedded())) { + return false; + } + _i++; + } + return true; + } + return false; }; toType = function toType$1(t) { - var t; - if (t === ptrType$1.nil) { + var t, x; + if (t === ptrType.nil) { return $ifaceNil; } - return t; - }; - ifaceIndir = function ifaceIndir$1(t) { - var t; - return ((t.kind & 32) >>> 0) === 0; + return (x = toRType(t), new x.constructor.elem(x)); }; $ptrType(Value).prototype.object = function object() { var _1, newVal, v, val; @@ -3923,7 +4587,7 @@ $packages["internal/reflectlite"] = (function() { }; Value.prototype.object = function(...$args) { return this.$val.object(...$args); }; $ptrType(Value).prototype.assignTo = function assignTo(context, dst, target) { - var {_r, _r$1, _r$2, context, dst, fl, target, v, x, $s, $r, $c} = $restore(this, {context, dst, target}); + var {_r, _r$1, context, dst, fl, target, v, x, $s, $r, $c} = $restore(this, {context, dst, target}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: v = this; /* */ if (!((((v.flag & 512) >>> 0) === 0))) { $s = 1; continue; } @@ -3932,11 +4596,10 @@ $packages["internal/reflectlite"] = (function() { _r = makeMethodValue(context, $clone(v, Value)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } Value.copy(v, _r); /* } */ case 2: - _r$1 = directlyAssignable(dst, v.typ); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 5; continue; } + /* */ if (directlyAssignable(dst, v.typ)) { $s = 5; continue; } /* */ if (implements$1(dst, v.typ)) { $s = 6; continue; } /* */ $s = 7; continue; - /* if (_r$1) { */ case 5: + /* if (directlyAssignable(dst, v.typ)) { */ case 5: fl = (((v.flag & 384) >>> 0) | new flag(v.flag).ro()) >>> 0; fl = (fl | (((dst.Kind() >>> 0)))) >>> 0; $s = -1; return new Value.ptr(dst, v.ptr, fl); @@ -3944,8 +4607,8 @@ $packages["internal/reflectlite"] = (function() { if (target === 0) { target = unsafe_New(dst); } - _r$2 = valueInterface($clone(v, Value)); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - x = _r$2; + _r$1 = valueInterface($clone(v, Value)); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + x = _r$1; if (dst.NumMethod() === 0) { (target).$set(x); } else { @@ -3955,105 +4618,10 @@ $packages["internal/reflectlite"] = (function() { /* } */ case 7: case 4: $panic(new $String(context + ": value of type " + v.typ.String() + " is not assignable to type " + dst.String())); - $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); - /* */ } return; } var $f = {$blk: assignTo, $c: true, $r, _r, _r$1, _r$2, context, dst, fl, target, v, x, $s};return $f; + $s = -1; return new Value.ptr(ptrType.nil, 0, 0); + /* */ } return; } var $f = {$blk: assignTo, $c: true, $r, _r, _r$1, context, dst, fl, target, v, x, $s};return $f; }; Value.prototype.assignTo = function(...$args) { return this.$val.assignTo(...$args); }; - $ptrType(Value).prototype.Cap = function Cap() { - var _1, k, v; - v = this; - k = new flag(v.flag).kind(); - _1 = k; - if (_1 === (17)) { - return v.typ.Len(); - } else if ((_1 === (18)) || (_1 === (23))) { - return $parseInt($clone(v, Value).object().$capacity) >> 0; - } - $panic(new ValueError.ptr("reflect.Value.Cap", k)); - }; - Value.prototype.Cap = function(...$args) { return this.$val.Cap(...$args); }; - $ptrType(Value).prototype.Index = function Index(i) { - var {$24r, $24r$1, _1, _r, _r$1, a, a$1, c, fl, fl$1, fl$2, i, k, s, str, tt, tt$1, typ, typ$1, v, $s, $r, $c} = $restore(this, {i}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - a = [a]; - a$1 = [a$1]; - c = [c]; - i = [i]; - typ = [typ]; - typ$1 = [typ$1]; - v = this; - k = new flag(v.flag).kind(); - _1 = k; - /* */ if (_1 === (17)) { $s = 2; continue; } - /* */ if (_1 === (23)) { $s = 3; continue; } - /* */ if (_1 === (24)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_1 === (17)) { */ case 2: - tt = (v.typ.kindType); - if (i[0] < 0 || i[0] > ((tt.len >> 0))) { - $panic(new $String("reflect: array index out of range")); - } - typ[0] = tt.elem; - fl = (((((v.flag & 384) >>> 0) | new flag(v.flag).ro()) >>> 0) | ((typ[0].Kind() >>> 0))) >>> 0; - a[0] = v.ptr; - /* */ if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { */ case 7: - $s = -1; return new Value.ptr(typ[0], (new (jsType(PtrTo(typ[0])))((function(a, a$1, c, i, typ, typ$1) { return function Value·Index·func1() { - return wrapJsObject(typ[0], a[0][i[0]]); - }; })(a, a$1, c, i, typ, typ$1), (function(a, a$1, c, i, typ, typ$1) { return function Value·Index·func2(x) { - var x; - a[0][i[0]] = unwrapJsObject(typ[0], x); - }; })(a, a$1, c, i, typ, typ$1))), fl); - /* } */ case 8: - _r = makeValue(typ[0], wrapJsObject(typ[0], a[0][i[0]]), fl); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 10; case 10: return $24r; - /* } else if (_1 === (23)) { */ case 3: - s = $clone(v, Value).object(); - if (i[0] < 0 || i[0] >= ($parseInt(s.$length) >> 0)) { - $panic(new $String("reflect: slice index out of range")); - } - tt$1 = (v.typ.kindType); - typ$1[0] = tt$1.elem; - fl$1 = (((384 | new flag(v.flag).ro()) >>> 0) | ((typ$1[0].Kind() >>> 0))) >>> 0; - i[0] = i[0] + (($parseInt(s.$offset) >> 0)) >> 0; - a$1[0] = s.$array; - /* */ if (!((((fl$1 & 128) >>> 0) === 0)) && !((typ$1[0].Kind() === 17)) && !((typ$1[0].Kind() === 25))) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (!((((fl$1 & 128) >>> 0) === 0)) && !((typ$1[0].Kind() === 17)) && !((typ$1[0].Kind() === 25))) { */ case 11: - $s = -1; return new Value.ptr(typ$1[0], (new (jsType(PtrTo(typ$1[0])))((function(a, a$1, c, i, typ, typ$1) { return function Value·Index·func3() { - return wrapJsObject(typ$1[0], a$1[0][i[0]]); - }; })(a, a$1, c, i, typ, typ$1), (function(a, a$1, c, i, typ, typ$1) { return function Value·Index·func4(x) { - var x; - a$1[0][i[0]] = unwrapJsObject(typ$1[0], x); - }; })(a, a$1, c, i, typ, typ$1))), fl$1); - /* } */ case 12: - _r$1 = makeValue(typ$1[0], wrapJsObject(typ$1[0], a$1[0][i[0]]), fl$1); /* */ $s = 13; case 13: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r$1 = _r$1; - $s = 14; case 14: return $24r$1; - /* } else if (_1 === (24)) { */ case 4: - str = (v.ptr).$get(); - if (i[0] < 0 || i[0] >= str.length) { - $panic(new $String("reflect: string index out of range")); - } - fl$2 = (((new flag(v.flag).ro() | 8) >>> 0) | 128) >>> 0; - c[0] = str.charCodeAt(i[0]); - $s = -1; return new Value.ptr(uint8Type, ((c.$ptr || (c.$ptr = new ptrType$6(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, c)))), fl$2); - /* } else { */ case 5: - $panic(new ValueError.ptr("reflect.Value.Index", k)); - /* } */ case 6: - case 1: - $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); - /* */ } return; } var $f = {$blk: Index, $c: true, $r, $24r, $24r$1, _1, _r, _r$1, a, a$1, c, fl, fl$1, fl$2, i, k, s, str, tt, tt$1, typ, typ$1, v, $s};return $f; - }; - Value.prototype.Index = function(...$args) { return this.$val.Index(...$args); }; - $ptrType(Value).prototype.InterfaceData = function InterfaceData() { - var v; - v = this; - $panic(new $String("InterfaceData is not supported by GopherJS")); - }; - Value.prototype.InterfaceData = function(...$args) { return this.$val.InterfaceData(...$args); }; $ptrType(Value).prototype.IsNil = function IsNil() { var _1, k, v; v = this; @@ -4094,31 +4662,6 @@ $packages["internal/reflectlite"] = (function() { } }; Value.prototype.Len = function(...$args) { return this.$val.Len(...$args); }; - $ptrType(Value).prototype.Pointer = function Pointer() { - var _1, k, v; - v = this; - k = new flag(v.flag).kind(); - _1 = k; - if ((_1 === (18)) || (_1 === (21)) || (_1 === (22)) || (_1 === (26))) { - if ($clone(v, Value).IsNil()) { - return 0; - } - return $clone(v, Value).object(); - } else if (_1 === (19)) { - if ($clone(v, Value).IsNil()) { - return 0; - } - return 1; - } else if (_1 === (23)) { - if ($clone(v, Value).IsNil()) { - return 0; - } - return $clone(v, Value).object().$array; - } else { - $panic(new ValueError.ptr("reflect.Value.Pointer", k)); - } - }; - Value.prototype.Pointer = function(...$args) { return this.$val.Pointer(...$args); }; $ptrType(Value).prototype.Set = function Set(x) { var {_1, _r, _r$1, v, x, $s, $r, $c} = $restore(this, {x}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: @@ -4143,7 +4686,7 @@ $packages["internal/reflectlite"] = (function() { v.ptr.$set(_r$1); $s = 9; continue; /* } else if (_1 === (25)) { */ case 7: - copyStruct(v.ptr, x.ptr, v.typ); + abi.CopyStruct(v.ptr, x.ptr, v.typ); $s = 9; continue; /* } else { */ case 8: v.ptr.$set($clone(x, Value).object()); @@ -4156,1003 +4699,173 @@ $packages["internal/reflectlite"] = (function() { /* */ } return; } var $f = {$blk: Set, $c: true, $r, _1, _r, _r$1, v, x, $s};return $f; }; Value.prototype.Set = function(...$args) { return this.$val.Set(...$args); }; - $ptrType(Value).prototype.SetBytes = function SetBytes(x) { - var {_r, _r$1, _v, slice, typedSlice, v, x, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - v = this; - new flag(v.flag).mustBeAssignable(); - new flag(v.flag).mustBe(23); - _r = v.typ.Elem().Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - /* */ if (!((_r === 8))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!((_r === 8))) { */ case 1: - $panic(new $String("reflect.Value.SetBytes of non-byte slice")); - /* } */ case 2: - slice = x; - if (!(v.typ.Name() === "")) { _v = true; $s = 6; continue s; } - _r$1 = v.typ.Elem().Name(); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = !(_r$1 === ""); case 6: - /* */ if (_v) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_v) { */ case 4: - typedSlice = new (jsType(v.typ))(slice.$array); - typedSlice.$offset = slice.$offset; - typedSlice.$length = slice.$length; - typedSlice.$capacity = slice.$capacity; - slice = typedSlice; - /* } */ case 5: - v.ptr.$set(slice); - $s = -1; return; - /* */ } return; } var $f = {$blk: SetBytes, $c: true, $r, _r, _r$1, _v, slice, typedSlice, v, x, $s};return $f; - }; - Value.prototype.SetBytes = function(...$args) { return this.$val.SetBytes(...$args); }; - $ptrType(Value).prototype.SetCap = function SetCap(n) { - var n, newSlice, s, v; - v = this; - new flag(v.flag).mustBeAssignable(); - new flag(v.flag).mustBe(23); - s = v.ptr.$get(); - if (n < ($parseInt(s.$length) >> 0) || n > ($parseInt(s.$capacity) >> 0)) { - $panic(new $String("reflect: slice capacity out of range in SetCap")); - } - newSlice = new (jsType(v.typ))(s.$array); - newSlice.$offset = s.$offset; - newSlice.$length = s.$length; - newSlice.$capacity = n; - v.ptr.$set(newSlice); - }; - Value.prototype.SetCap = function(...$args) { return this.$val.SetCap(...$args); }; - $ptrType(Value).prototype.SetLen = function SetLen(n) { - var n, newSlice, s, v; - v = this; - new flag(v.flag).mustBeAssignable(); - new flag(v.flag).mustBe(23); - s = v.ptr.$get(); - if (n < 0 || n > ($parseInt(s.$capacity) >> 0)) { - $panic(new $String("reflect: slice length out of range in SetLen")); - } - newSlice = new (jsType(v.typ))(s.$array); - newSlice.$offset = s.$offset; - newSlice.$length = n; - newSlice.$capacity = s.$capacity; - v.ptr.$set(newSlice); - }; - Value.prototype.SetLen = function(...$args) { return this.$val.SetLen(...$args); }; - $ptrType(Value).prototype.Slice = function Slice(i, j) { - var {$24r, $24r$1, _1, _r, _r$1, cap, i, j, kind$1, s, str, tt, typ, v, $s, $r, $c} = $restore(this, {i, j}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - v = this; - cap = 0; - typ = $ifaceNil; - s = null; - kind$1 = new flag(v.flag).kind(); - _1 = kind$1; - /* */ if (_1 === (17)) { $s = 2; continue; } - /* */ if (_1 === (23)) { $s = 3; continue; } - /* */ if (_1 === (24)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_1 === (17)) { */ case 2: - if (((v.flag & 256) >>> 0) === 0) { - $panic(new $String("reflect.Value.Slice: slice of unaddressable array")); - } - tt = (v.typ.kindType); - cap = ((tt.len >> 0)); - typ = SliceOf(tt.elem); - s = new (jsType(typ))($clone(v, Value).object()); - $s = 6; continue; - /* } else if (_1 === (23)) { */ case 3: - typ = v.typ; - s = $clone(v, Value).object(); - cap = $parseInt(s.$capacity) >> 0; - $s = 6; continue; - /* } else if (_1 === (24)) { */ case 4: - str = (v.ptr).$get(); - if (i < 0 || j < i || j > str.length) { - $panic(new $String("reflect.Value.Slice: string slice index out of bounds")); - } - _r = ValueOf(new $String($substring(str, i, j))); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 8; case 8: return $24r; - /* } else { */ case 5: - $panic(new ValueError.ptr("reflect.Value.Slice", kind$1)); - /* } */ case 6: - case 1: - if (i < 0 || j < i || j > cap) { - $panic(new $String("reflect.Value.Slice: slice index out of bounds")); - } - _r$1 = makeValue(typ, $subslice(s, i, j), new flag(v.flag).ro()); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r$1 = _r$1; - $s = 10; case 10: return $24r$1; - /* */ } return; } var $f = {$blk: Slice, $c: true, $r, $24r, $24r$1, _1, _r, _r$1, cap, i, j, kind$1, s, str, tt, typ, v, $s};return $f; - }; - Value.prototype.Slice = function(...$args) { return this.$val.Slice(...$args); }; - $ptrType(Value).prototype.Slice3 = function Slice3(i, j, k) { - var {$24r, _1, _r, cap, i, j, k, kind$1, s, tt, typ, v, $s, $r, $c} = $restore(this, {i, j, k}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $ptrType(Value).prototype.Elem = function Elem$1() { + var _1, fl, k, tt, typ, v, val, val$1; v = this; - cap = 0; - typ = $ifaceNil; - s = null; - kind$1 = new flag(v.flag).kind(); - _1 = kind$1; - if (_1 === (17)) { - if (((v.flag & 256) >>> 0) === 0) { - $panic(new $String("reflect.Value.Slice: slice of unaddressable array")); + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (20)) { + val = $clone(v, Value).object(); + if (val === $ifaceNil) { + return new Value.ptr(ptrType.nil, 0, 0); + } + typ = abi.ReflectType(val.constructor); + return makeValue(typ, val.$val, new flag(v.flag).ro()); + } else if (_1 === (22)) { + if ($clone(v, Value).IsNil()) { + return new Value.ptr(ptrType.nil, 0, 0); } + val$1 = $clone(v, Value).object(); tt = (v.typ.kindType); - cap = ((tt.len >> 0)); - typ = SliceOf(tt.elem); - s = new (jsType(typ))($clone(v, Value).object()); - } else if (_1 === (23)) { - typ = v.typ; - s = $clone(v, Value).object(); - cap = $parseInt(s.$capacity) >> 0; + fl = (((((v.flag & 96) >>> 0) | 128) >>> 0) | 256) >>> 0; + fl = (fl | (((tt.Elem.Kind() >>> 0)))) >>> 0; + return new Value.ptr(tt.Elem, (abi.WrapJsObject(tt.Elem, val$1)), fl); } else { - $panic(new ValueError.ptr("reflect.Value.Slice3", kind$1)); - } - if (i < 0 || j < i || k < j || k > cap) { - $panic(new $String("reflect.Value.Slice3: slice index out of bounds")); + $panic(new ValueError.ptr("reflect.Value.Elem", k)); } - _r = makeValue(typ, $subslice(s, i, j, k), new flag(v.flag).ro()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Slice3, $c: true, $r, $24r, _1, _r, cap, i, j, k, kind$1, s, tt, typ, v, $s};return $f; - }; - Value.prototype.Slice3 = function(...$args) { return this.$val.Slice3(...$args); }; - $ptrType(Value).prototype.Close = function Close() { - var v; - v = this; - new flag(v.flag).mustBe(18); - new flag(v.flag).mustBeExported(); - $close($clone(v, Value).object()); - }; - Value.prototype.Close = function(...$args) { return this.$val.Close(...$args); }; - $ptrType(Value).prototype.Elem = function Elem$1() { - var {$24r, _1, _r, fl, k, tt, typ, v, val, val$1, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - v = this; - k = new flag(v.flag).kind(); - _1 = k; - /* */ if (_1 === (20)) { $s = 2; continue; } - /* */ if (_1 === (22)) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (_1 === (20)) { */ case 2: - val = $clone(v, Value).object(); - if (val === $ifaceNil) { - $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); - } - typ = reflectType(val.constructor); - _r = makeValue(typ, val.$val, new flag(v.flag).ro()); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 7; case 7: return $24r; - /* } else if (_1 === (22)) { */ case 3: - if ($clone(v, Value).IsNil()) { - $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); - } - val$1 = $clone(v, Value).object(); - tt = (v.typ.kindType); - fl = (((((v.flag & 96) >>> 0) | 128) >>> 0) | 256) >>> 0; - fl = (fl | (((tt.elem.Kind() >>> 0)))) >>> 0; - $s = -1; return new Value.ptr(tt.elem, (wrapJsObject(tt.elem, val$1)), fl); - /* } else { */ case 4: - $panic(new ValueError.ptr("reflect.Value.Elem", k)); - /* } */ case 5: - case 1: - $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); - /* */ } return; } var $f = {$blk: Elem$1, $c: true, $r, $24r, _1, _r, fl, k, tt, typ, v, val, val$1, $s};return $f; }; Value.prototype.Elem = function(...$args) { return this.$val.Elem(...$args); }; - $ptrType(Value).prototype.NumField = function NumField() { - var tt, v; - v = this; - new flag(v.flag).mustBe(25); - tt = (v.typ.kindType); - return tt.fields.$length; - }; - Value.prototype.NumField = function(...$args) { return this.$val.NumField(...$args); }; - $ptrType(Value).prototype.MapKeys = function MapKeys() { - var {_r, a, fl, i, it, key, keyType, m, mlen, tt, v, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - v = this; - new flag(v.flag).mustBe(21); - tt = (v.typ.kindType); - keyType = tt.key; - fl = (new flag(v.flag).ro() | ((keyType.Kind() >>> 0))) >>> 0; - m = $clone(v, Value).pointer(); - mlen = 0; - if (!(m === 0)) { - mlen = maplen(m); - } - it = mapiterinit(v.typ, m); - a = $makeSlice(sliceType$6, mlen); - i = 0; - i = 0; - /* while (true) { */ case 1: - /* if (!(i < a.$length)) { break; } */ if(!(i < a.$length)) { $s = 2; continue; } - _r = mapiterkey(it); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - key = _r; - if (key === 0) { - /* break; */ $s = 2; continue; - } - Value.copy(((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i]), copyVal(keyType, fl, key)); - mapiternext(it); - i = i + (1) >> 0; - $s = 1; continue; - case 2: - $s = -1; return $subslice(a, 0, i); - /* */ } return; } var $f = {$blk: MapKeys, $c: true, $r, _r, a, fl, i, it, key, keyType, m, mlen, tt, v, $s};return $f; - }; - Value.prototype.MapKeys = function(...$args) { return this.$val.MapKeys(...$args); }; - $ptrType(Value).prototype.MapIndex = function MapIndex(key) { - var {_r, e, fl, k, key, tt, typ, v, $s, $r, $c} = $restore(this, {key}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - v = this; - new flag(v.flag).mustBe(21); - tt = (v.typ.kindType); - _r = $clone(key, Value).assignTo("reflect.Value.MapIndex", tt.key, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - Value.copy(key, _r); - k = 0; - if (!((((key.flag & 128) >>> 0) === 0))) { - k = key.ptr; - } else { - k = ((key.$ptr_ptr || (key.$ptr_ptr = new ptrType$7(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, key)))); - } - e = mapaccess(v.typ, $clone(v, Value).pointer(), k); - if (e === 0) { - $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); - } - typ = tt.elem; - fl = new flag((((v.flag | key.flag) >>> 0))).ro(); - fl = (fl | (((typ.Kind() >>> 0)))) >>> 0; - $s = -1; return copyVal(typ, fl, e); - /* */ } return; } var $f = {$blk: MapIndex, $c: true, $r, _r, e, fl, k, key, tt, typ, v, $s};return $f; - }; - Value.prototype.MapIndex = function(...$args) { return this.$val.MapIndex(...$args); }; - $ptrType(Value).prototype.Field = function Field(i) { - var {$24r, _r, _r$1, _r$2, field, fl, i, jsTag, o, prop, s, tag, tt, typ, v, x, x$1, $s, $r, $c} = $restore(this, {i}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - jsTag = [jsTag]; - prop = [prop]; - s = [s]; - typ = [typ]; - v = this; - if (!((new flag(v.flag).kind() === 25))) { - $panic(new ValueError.ptr("reflect.Value.Field", new flag(v.flag).kind())); - } - tt = (v.typ.kindType); - if (((i >>> 0)) >= ((tt.fields.$length >>> 0))) { - $panic(new $String("reflect: Field index out of range")); - } - prop[0] = $internalize(jsType(v.typ).fields[i].prop, $String); - field = (x = tt.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - typ[0] = field.typ; - fl = (((v.flag & 416) >>> 0) | ((typ[0].Kind() >>> 0))) >>> 0; - if (!$clone(field.name, name).isExported()) { - if (field.embedded()) { - fl = (fl | (64)) >>> 0; - } else { - fl = (fl | (32)) >>> 0; - } - } - tag = $clone((x$1 = tt.fields, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])).name, name).tag(); - /* */ if (!(tag === "") && !((i === 0))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(tag === "") && !((i === 0))) { */ case 1: - jsTag[0] = getJsTag(tag); - /* */ if (!(jsTag[0] === "")) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!(jsTag[0] === "")) { */ case 3: - /* while (true) { */ case 5: - o = [o]; - _r = $clone(v, Value).Field(0); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - Value.copy(v, _r); - /* */ if (v.typ === jsObjectPtr) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (v.typ === jsObjectPtr) { */ case 8: - o[0] = $clone(v, Value).object().object; - $s = -1; return new Value.ptr(typ[0], (new (jsType(PtrTo(typ[0])))((function(jsTag, o, prop, s, typ) { return function Value·Field·func1() { - return $internalize(o[0][$externalize(jsTag[0], $String)], jsType(typ[0])); - }; })(jsTag, o, prop, s, typ), (function(jsTag, o, prop, s, typ) { return function Value·Field·func2(x$2) { - var x$2; - o[0][$externalize(jsTag[0], $String)] = $externalize(x$2, jsType(typ[0])); - }; })(jsTag, o, prop, s, typ))), fl); - /* } */ case 9: - /* */ if (v.typ.Kind() === 22) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (v.typ.Kind() === 22) { */ case 10: - _r$1 = $clone(v, Value).Elem(); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - Value.copy(v, _r$1); - /* } */ case 11: - $s = 5; continue; - case 6: - /* } */ case 4: - /* } */ case 2: - s[0] = v.ptr; - /* */ if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { */ case 13: - $s = -1; return new Value.ptr(typ[0], (new (jsType(PtrTo(typ[0])))((function(jsTag, prop, s, typ) { return function Value·Field·func3() { - return wrapJsObject(typ[0], s[0][$externalize(prop[0], $String)]); - }; })(jsTag, prop, s, typ), (function(jsTag, prop, s, typ) { return function Value·Field·func4(x$2) { - var x$2; - s[0][$externalize(prop[0], $String)] = unwrapJsObject(typ[0], x$2); - }; })(jsTag, prop, s, typ))), fl); - /* } */ case 14: - _r$2 = makeValue(typ[0], wrapJsObject(typ[0], s[0][$externalize(prop[0], $String)]), fl); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 16; case 16: return $24r; - /* */ } return; } var $f = {$blk: Field, $c: true, $r, $24r, _r, _r$1, _r$2, field, fl, i, jsTag, o, prop, s, tag, tt, typ, v, x, x$1, $s};return $f; - }; - Value.prototype.Field = function(...$args) { return this.$val.Field(...$args); }; - $ptrType(errorString).prototype.Error = function Error$1() { - var e; - e = this; - return e.s; - }; - unquote = function unquote$1(s) { - var s; - if (s.length < 2) { - return [s, $ifaceNil]; - } - if ((s.charCodeAt(0) === 39) || (s.charCodeAt(0) === 34)) { - if (s.charCodeAt((s.length - 1 >> 0)) === s.charCodeAt(0)) { - return [$substring(s, 1, (s.length - 1 >> 0)), $ifaceNil]; - } - return ["", $pkg.ErrSyntax]; - } - return [s, $ifaceNil]; - }; - flag.prototype.mustBe = function mustBe(expected) { - var expected, f; - f = this.$val; - if (!((((((f & 31) >>> 0) >>> 0)) === expected))) { - $panic(new ValueError.ptr(methodName(), new flag(f).kind())); - } - }; - $ptrType(flag).prototype.mustBe = function(...$args) { return new flag(this.$get()).mustBe(...$args); }; $ptrType(rtype).prototype.Comparable = function Comparable() { - var {$24r, _1, _r, _r$1, ft, i, t, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _1 = t.Kind(); - /* */ if ((_1 === (19)) || (_1 === (23)) || (_1 === (21))) { $s = 2; continue; } - /* */ if (_1 === (17)) { $s = 3; continue; } - /* */ if (_1 === (25)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if ((_1 === (19)) || (_1 === (23)) || (_1 === (21))) { */ case 2: - $s = -1; return false; - /* } else if (_1 === (17)) { */ case 3: - _r = t.Elem().Comparable(); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 7; case 7: return $24r; - /* } else if (_1 === (25)) { */ case 4: - i = 0; - /* while (true) { */ case 8: - /* if (!(i < t.NumField())) { break; } */ if(!(i < t.NumField())) { $s = 9; continue; } - ft = $clone(t.Field(i), structField); - _r$1 = ft.typ.Comparable(); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (!_r$1) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (!_r$1) { */ case 10: - $s = -1; return false; - /* } */ case 11: - i = i + (1) >> 0; - $s = 8; continue; - case 9: - /* } */ case 5: - case 1: - $s = -1; return true; - /* */ } return; } var $f = {$blk: Comparable, $c: true, $r, $24r, _1, _r, _r$1, ft, i, t, $s};return $f; - }; - $ptrType(rtype).prototype.IsVariadic = function IsVariadic() { - var t, tt; - t = this; - if (!((t.Kind() === 19))) { - $panic(new $String("reflect: IsVariadic of non-func type")); - } - tt = (t.kindType); - return !((((tt.outCount & 32768) >>> 0) === 0)); - }; - $ptrType(rtype).prototype.Field = function Field$1(i) { - var i, t, tt, x; - t = this; - if (!((t.Kind() === 25))) { - $panic(new $String("reflect: Field of non-struct type")); - } - tt = (t.kindType); - if (i < 0 || i >= tt.fields.$length) { - $panic(new $String("reflect: Field index out of bounds")); - } - return (x = tt.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - }; - $ptrType(rtype).prototype.Key = function Key() { - var t, tt; - t = this; - if (!((t.Kind() === 21))) { - $panic(new $String("reflect: Key of non-map type")); - } - tt = (t.kindType); - return toType(tt.key); - }; - $ptrType(rtype).prototype.NumField = function NumField$1() { - var t, tt; + var t; t = this; - if (!((t.Kind() === 25))) { - $panic(new $String("reflect: NumField of non-struct type")); - } - tt = (t.kindType); - return tt.fields.$length; + return $clone(t, rtype).common().Comparable(); }; - $ptrType(rtype).prototype.Method = function Method$1(i) { - var {$24r, _i, _i$1, _r, _r$1, _ref, _ref$1, arg, fl, fn, ft, i, in$1, m, methods, mt, mtyp, out, p, pname, prop, ret, t, tt, $s, $r, $c} = $restore(this, {i}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - prop = [prop]; - m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0); + rtype.prototype.Comparable = function(...$args) { return this.$val.Comparable(...$args); }; + $ptrType(rtype).prototype.String = function String() { + var t; t = this; - /* */ if (t.Kind() === 20) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (t.Kind() === 20) { */ case 1: - tt = (t.kindType); - _r = tt.rtype.Method(i); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - Method.copy(m, _r); - $24r = m; - $s = 4; case 4: return $24r; - /* } */ case 2: - methods = t.exportedMethods(); - if (i < 0 || i >= methods.$length) { - $panic(new $String("reflect: Method index out of range")); - } - p = $clone(((i < 0 || i >= methods.$length) ? ($throwRuntimeError("index out of range"), undefined) : methods.$array[methods.$offset + i]), method); - pname = $clone(t.nameOff(p.name), name); - m.Name = $clone(pname, name).name(); - fl = 19; - mtyp = t.typeOff(p.mtyp); - ft = (mtyp.kindType); - in$1 = $makeSlice(sliceType$7, 0, (1 + ft.in$().$length >> 0)); - in$1 = $append(in$1, t); - _ref = ft.in$(); - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - in$1 = $append(in$1, arg); - _i++; - } - out = $makeSlice(sliceType$7, 0, ft.out().$length); - _ref$1 = ft.out(); - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - ret = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - out = $append(out, ret); - _i$1++; - } - _r$1 = FuncOf(in$1, out, ft.rtype.IsVariadic()); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - mt = _r$1; - m.Type = mt; - prop[0] = $internalize($methodSet(t[$externalize(idJsType, $String)])[i].prop, $String); - fn = js.MakeFunc((function(prop) { return function rtype·Method·func1(this$1, arguments$1) { - var arguments$1, rcvr, this$1; - rcvr = (0 >= arguments$1.$length ? ($throwRuntimeError("index out of range"), undefined) : arguments$1.$array[arguments$1.$offset + 0]); - return new $jsObjectPtr(rcvr[$externalize(prop[0], $String)].apply(rcvr, $externalize($subslice(arguments$1, 1), sliceType$8))); - }; })(prop)); - Value.copy(m.Func, new Value.ptr($assertType(mt, ptrType$1), (fn), fl)); - m.Index = i; - Method.copy(m, m); - $s = -1; return m; - /* */ } return; } var $f = {$blk: Method$1, $c: true, $r, $24r, _i, _i$1, _r, _r$1, _ref, _ref$1, arg, fl, fn, ft, i, in$1, m, methods, mt, mtyp, out, p, pname, prop, ret, t, tt, $s};return $f; + return $clone(t, rtype).common().String(); }; + rtype.prototype.String = function(...$args) { return this.$val.String(...$args); }; Swapper = function Swapper$1(slice) { - var {_1, _r, a, off, slice, v, vLen, $s, $r, $c} = $restore(this, {slice}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - a = [a]; - off = [off]; - vLen = [vLen]; - _r = ValueOf(slice); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - v = $clone(_r, Value); + var _1, a, off, slice, v, vLen; + v = $clone(ValueOf(slice), Value); if (!(($clone(v, Value).Kind() === 23))) { $panic(new ValueError.ptr("Swapper", $clone(v, Value).Kind())); } - vLen[0] = (($clone(v, Value).Len() >>> 0)); - _1 = vLen[0]; + vLen = (($clone(v, Value).Len() >>> 0)); + _1 = vLen; if (_1 === (0)) { - $s = -1; return (function(a, off, vLen) { return function Swapper·func1(i, j) { + return (function Swapper·func1(i, j) { var i, j; $panic(new $String("reflect: slice index out of range")); - }; })(a, off, vLen); + }); } else if (_1 === (1)) { - $s = -1; return (function(a, off, vLen) { return function Swapper·func2(i, j) { + return (function Swapper·func2(i, j) { var i, j; if (!((i === 0)) || !((j === 0))) { $panic(new $String("reflect: slice index out of range")); } - }; })(a, off, vLen); + }); } - a[0] = slice.$array; - off[0] = $parseInt(slice.$offset) >> 0; - $s = -1; return (function(a, off, vLen) { return function Swapper·func3(i, j) { + a = slice.$array; + off = $parseInt(slice.$offset) >> 0; + return (function Swapper·func3(i, j) { var i, j, tmp; - if (((i >>> 0)) >= vLen[0] || ((j >>> 0)) >= vLen[0]) { + if (((i >>> 0)) >= vLen || ((j >>> 0)) >= vLen) { $panic(new $String("reflect: slice index out of range")); } - i = i + (off[0]) >> 0; - j = j + (off[0]) >> 0; - tmp = a[0][i]; - a[0][i] = a[0][j]; - a[0][j] = tmp; - }; })(a, off, vLen); - /* */ } return; } var $f = {$blk: Swapper$1, $c: true, $r, _1, _r, a, off, slice, v, vLen, $s};return $f; + i = i + (off) >> 0; + j = j + (off) >> 0; + tmp = a[i]; + a[i] = a[j]; + a[j] = tmp; + }); }; $pkg.Swapper = Swapper; init = function init$1() { - var {used, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {}); + var {used, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: used = (function init·func1(i) { var i; }); - $r = used((x = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), new x.constructor.elem(x))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$1 = new uncommonType.ptr(0, 0, 0, 0, sliceType$5.nil), new x$1.constructor.elem(x$1))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$2 = new method.ptr(0, 0, 0, 0), new x$2.constructor.elem(x$2))); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$3 = new arrayType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), ptrType$1.nil, ptrType$1.nil, 0), new x$3.constructor.elem(x$3))); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$4 = new chanType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), ptrType$1.nil, 0), new x$4.constructor.elem(x$4))); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$5 = new funcType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), 0, 0, sliceType$2.nil, sliceType$2.nil), new x$5.constructor.elem(x$5))); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$6 = new interfaceType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), new name.ptr(ptrType$6.nil), sliceType$9.nil), new x$6.constructor.elem(x$6))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$7 = new mapType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), ptrType$1.nil, ptrType$1.nil, ptrType$1.nil, $throwNilPointerError, 0, 0, 0, 0), new x$7.constructor.elem(x$7))); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$8 = new ptrType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), ptrType$1.nil), new x$8.constructor.elem(x$8))); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$9 = new sliceType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), ptrType$1.nil), new x$9.constructor.elem(x$9))); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$10 = new structType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), new name.ptr(ptrType$6.nil), sliceType$10.nil), new x$10.constructor.elem(x$10))); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$11 = new imethod.ptr(0, 0), new x$11.constructor.elem(x$11))); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$12 = new structField.ptr(new name.ptr(ptrType$6.nil), ptrType$1.nil, 0), new x$12.constructor.elem(x$12))); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - initialized = true; - uint8Type = $assertType(TypeOf(new $Uint8(0)), ptrType$1); - $s = -1; return; - /* */ } return; } var $f = {$blk: init$1, $c: true, $r, used, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; + $r = used((x = new rtype.ptr(ptrType.nil), new x.constructor.elem(x))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$1 = new abi.UncommonType.ptr(abi.NameOff.nil, 0, 0, sliceType.nil), new x$1.constructor.elem(x$1))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$2 = new abi.FuncType.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$9.nil, abi.NameOff.nil, abi.TypeOff.nil), 0, 0, sliceType$1.nil, sliceType$1.nil), new x$2.constructor.elem(x$2))); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$3 = new abi.InterfaceType.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$9.nil, abi.NameOff.nil, abi.TypeOff.nil), new abi.Name.ptr("", "", false, false, ""), sliceType$2.nil), new x$3.constructor.elem(x$3))); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$4 = new abi.StructType.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$9.nil, abi.NameOff.nil, abi.TypeOff.nil), new abi.Name.ptr("", "", false, false, ""), sliceType$3.nil), new x$4.constructor.elem(x$4))); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: init$1, $c: true, $r, used, x, x$1, x$2, x$3, x$4, $s};return $f; }; jsType = function jsType$1(typ) { var typ; - return typ[$externalize(idJsType, $String)]; - }; - reflectType = function reflectType$1(typ) { - var _1, _i, _i$1, _i$2, _i$3, _key, _ref, _ref$1, _ref$2, _ref$3, dir, exported, exported$1, f, fields, i, i$1, i$2, i$3, i$4, i$5, imethods, in$1, m, m$1, m$2, methodSet, methods, out, outCount, params, reflectFields, reflectMethods, results, rt, typ, ut, xcount; - if (typ[$externalize(idReflectType, $String)] === undefined) { - rt = new rtype.ptr(((($parseInt(typ.size) >> 0) >>> 0)), 0, 0, 0, 0, 0, ((($parseInt(typ.kind) >> 0) << 24 >>> 24)), $throwNilPointerError, ptrType$6.nil, newNameOff($clone(newName(internalStr(typ.string), "", !!(typ.exported), false), name)), 0); - rt[$externalize(idJsType, $String)] = typ; - typ[$externalize(idReflectType, $String)] = rt; - methodSet = $methodSet(typ); - if (!(($parseInt(methodSet.length) === 0)) || !!(typ.named)) { - rt.tflag = (rt.tflag | (1)) >>> 0; - if (!!(typ.named)) { - rt.tflag = (rt.tflag | (4)) >>> 0; - } - reflectMethods = sliceType$5.nil; - i = 0; - while (true) { - if (!(i < $parseInt(methodSet.length))) { break; } - m = methodSet[i]; - exported = internalStr(m.pkg) === ""; - if (!exported) { - i = i + (1) >> 0; - continue; - } - reflectMethods = $append(reflectMethods, new method.ptr(newNameOff($clone(newName(internalStr(m.name), "", exported, false), name)), newTypeOff(reflectType(m.typ)), 0, 0)); - i = i + (1) >> 0; - } - xcount = ((reflectMethods.$length << 16 >>> 16)); - i$1 = 0; - while (true) { - if (!(i$1 < $parseInt(methodSet.length))) { break; } - m$1 = methodSet[i$1]; - exported$1 = internalStr(m$1.pkg) === ""; - if (exported$1) { - i$1 = i$1 + (1) >> 0; - continue; - } - reflectMethods = $append(reflectMethods, new method.ptr(newNameOff($clone(newName(internalStr(m$1.name), "", exported$1, false), name)), newTypeOff(reflectType(m$1.typ)), 0, 0)); - i$1 = i$1 + (1) >> 0; - } - ut = new uncommonType.ptr(newNameOff($clone(newName(internalStr(typ.pkg), "", false, false), name)), (($parseInt(methodSet.length) << 16 >>> 16)), xcount, 0, reflectMethods); - _key = rt; (uncommonTypeMap || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$1.keyFor(_key), { k: _key, v: ut }); - ut[$externalize(idJsType, $String)] = typ; - } - _1 = rt.Kind(); - if (_1 === (17)) { - setKindType(rt, new arrayType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), reflectType(typ.elem), ptrType$1.nil, ((($parseInt(typ.len) >> 0) >>> 0)))); - } else if (_1 === (18)) { - dir = 3; - if (!!(typ.sendOnly)) { - dir = 2; - } - if (!!(typ.recvOnly)) { - dir = 1; - } - setKindType(rt, new chanType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), reflectType(typ.elem), ((dir >>> 0)))); - } else if (_1 === (19)) { - params = typ.params; - in$1 = $makeSlice(sliceType$2, $parseInt(params.length)); - _ref = in$1; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i$2 = _i; - ((i$2 < 0 || i$2 >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + i$2] = reflectType(params[i$2])); - _i++; - } - results = typ.results; - out = $makeSlice(sliceType$2, $parseInt(results.length)); - _ref$1 = out; - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - i$3 = _i$1; - ((i$3 < 0 || i$3 >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + i$3] = reflectType(results[i$3])); - _i$1++; - } - outCount = (($parseInt(results.length) << 16 >>> 16)); - if (!!(typ.variadic)) { - outCount = (outCount | (32768)) >>> 0; - } - setKindType(rt, new funcType.ptr($clone(rt, rtype), (($parseInt(params.length) << 16 >>> 16)), outCount, in$1, out)); - } else if (_1 === (20)) { - methods = typ.methods; - imethods = $makeSlice(sliceType$9, $parseInt(methods.length)); - _ref$2 = imethods; - _i$2 = 0; - while (true) { - if (!(_i$2 < _ref$2.$length)) { break; } - i$4 = _i$2; - m$2 = methods[i$4]; - imethod.copy(((i$4 < 0 || i$4 >= imethods.$length) ? ($throwRuntimeError("index out of range"), undefined) : imethods.$array[imethods.$offset + i$4]), new imethod.ptr(newNameOff($clone(newName(internalStr(m$2.name), "", internalStr(m$2.pkg) === "", false), name)), newTypeOff(reflectType(m$2.typ)))); - _i$2++; - } - setKindType(rt, new interfaceType.ptr($clone(rt, rtype), $clone(newName(internalStr(typ.pkg), "", false, false), name), imethods)); - } else if (_1 === (21)) { - setKindType(rt, new mapType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), reflectType(typ.key), reflectType(typ.elem), ptrType$1.nil, $throwNilPointerError, 0, 0, 0, 0)); - } else if (_1 === (22)) { - setKindType(rt, new ptrType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), reflectType(typ.elem))); - } else if (_1 === (23)) { - setKindType(rt, new sliceType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), reflectType(typ.elem))); - } else if (_1 === (25)) { - fields = typ.fields; - reflectFields = $makeSlice(sliceType$10, $parseInt(fields.length)); - _ref$3 = reflectFields; - _i$3 = 0; - while (true) { - if (!(_i$3 < _ref$3.$length)) { break; } - i$5 = _i$3; - f = fields[i$5]; - structField.copy(((i$5 < 0 || i$5 >= reflectFields.$length) ? ($throwRuntimeError("index out of range"), undefined) : reflectFields.$array[reflectFields.$offset + i$5]), new structField.ptr($clone(newName(internalStr(f.name), internalStr(f.tag), !!(f.exported), !!(f.embedded)), name), reflectType(f.typ), ((i$5 >>> 0)))); - _i$3++; - } - setKindType(rt, new structType.ptr($clone(rt, rtype), $clone(newName(internalStr(typ.pkgPath), "", false, false), name), reflectFields)); - } - } - return ((typ[$externalize(idReflectType, $String)])); - }; - setKindType = function setKindType$1(rt, kindType$1) { - var kindType$1, rt; - rt[$externalize(idKindType, $String)] = kindType$1; - kindType$1[$externalize(idRtype, $String)] = rt; - }; - $ptrType(uncommonType).prototype.methods = function methods() { - var t; - t = this; - return t._methods; - }; - $ptrType(uncommonType).prototype.exportedMethods = function exportedMethods$1() { - var t; - t = this; - return $subslice(t._methods, 0, t.xcount, t.xcount); - }; - $ptrType(rtype).prototype.uncommon = function uncommon() { - var _entry, t; - t = this; - return (_entry = $mapIndex(uncommonTypeMap,ptrType$1.keyFor(t)), _entry !== undefined ? _entry.v : ptrType$4.nil); - }; - $ptrType(funcType).prototype.in$ = function in$1() { - var t; - t = this; - return t._in; - }; - $ptrType(funcType).prototype.out = function out() { - var t; - t = this; - return t._out; - }; - $ptrType(name).prototype.name = function name$1() { - var _entry, n, s; - s = ""; - n = this; - s = (_entry = $mapIndex(nameMap,ptrType$6.keyFor(n.bytes)), _entry !== undefined ? _entry.v : ptrType$8.nil).name; - return s; - }; - name.prototype.name = function(...$args) { return this.$val.name(...$args); }; - $ptrType(name).prototype.tag = function tag() { - var _entry, n, s; - s = ""; - n = this; - s = (_entry = $mapIndex(nameMap,ptrType$6.keyFor(n.bytes)), _entry !== undefined ? _entry.v : ptrType$8.nil).tag; - return s; + return typ.JsType(); }; - name.prototype.tag = function(...$args) { return this.$val.tag(...$args); }; - $ptrType(name).prototype.pkgPath = function pkgPath() { + pkgPath = function pkgPath$1(n) { var n; - n = this; - return ""; - }; - name.prototype.pkgPath = function(...$args) { return this.$val.pkgPath(...$args); }; - $ptrType(name).prototype.isExported = function isExported() { - var _entry, n; - n = this; - return (_entry = $mapIndex(nameMap,ptrType$6.keyFor(n.bytes)), _entry !== undefined ? _entry.v : ptrType$8.nil).exported; - }; - name.prototype.isExported = function(...$args) { return this.$val.isExported(...$args); }; - $ptrType(name).prototype.embedded = function embedded$1() { - var _entry, n; - n = this; - return (_entry = $mapIndex(nameMap,ptrType$6.keyFor(n.bytes)), _entry !== undefined ? _entry.v : ptrType$8.nil).embedded; - }; - name.prototype.embedded = function(...$args) { return this.$val.embedded(...$args); }; - newName = function newName$1(n, tag$1, exported, embedded$2) { - var _key, b, embedded$2, exported, n, tag$1; - b = $newDataPointer(0, ptrType$6); - _key = b; (nameMap || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$6.keyFor(_key), { k: _key, v: new nameData.ptr(n, tag$1, exported, embedded$2) }); - return new name.ptr(b); + return $clone(n, abi.Name).PkgPath(); }; $ptrType(rtype).prototype.nameOff = function nameOff$1(off) { - var off, t, x; + var off, t; t = this; - return (x = ((off >> 0)), ((x < 0 || x >= nameOffList.$length) ? ($throwRuntimeError("index out of range"), undefined) : nameOffList.$array[nameOffList.$offset + x])); - }; - newNameOff = function newNameOff$1(n) { - var i, n; - i = nameOffList.$length; - nameOffList = $append(nameOffList, n); - return ((i >> 0)); + return t.Type.NameOff(off); }; + rtype.prototype.nameOff = function(...$args) { return this.$val.nameOff(...$args); }; $ptrType(rtype).prototype.typeOff = function typeOff$1(off) { - var off, t, x; + var off, t; t = this; - return (x = ((off >> 0)), ((x < 0 || x >= typeOffList.$length) ? ($throwRuntimeError("index out of range"), undefined) : typeOffList.$array[typeOffList.$offset + x])); - }; - newTypeOff = function newTypeOff$1(t) { - var i, t; - i = typeOffList.$length; - typeOffList = $append(typeOffList, t); - return ((i >> 0)); - }; - internalStr = function internalStr$1(strObj) { - var c, strObj; - c = new structType$2.ptr(""); - c.str = strObj; - return c.str; - }; - isWrapped = function isWrapped$1(typ) { - var typ; - return !!(jsType(typ).wrapped); - }; - copyStruct = function copyStruct$1(dst, src, typ) { - var dst, fields, i, prop, src, typ; - fields = jsType(typ).fields; - i = 0; - while (true) { - if (!(i < $parseInt(fields.length))) { break; } - prop = $internalize(fields[i].prop, $String); - dst[$externalize(prop, $String)] = src[$externalize(prop, $String)]; - i = i + (1) >> 0; - } + return t.Type.TypeOff(off); }; + rtype.prototype.typeOff = function(...$args) { return this.$val.typeOff(...$args); }; makeValue = function makeValue$1(t, v, fl) { - var {$24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _v, _v$1, fl, rt, t, v, $s, $r, $c} = $restore(this, {t, v, fl}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = t.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - rt = _r; - _r$1 = t.Kind(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - if (_r$1 === 17) { _v$1 = true; $s = 5; continue s; } - _r$2 = t.Kind(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _v$1 = _r$2 === 25; case 5: - if (_v$1) { _v = true; $s = 4; continue s; } - _r$3 = t.Kind(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _v = _r$3 === 22; case 4: - /* */ if (_v) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (_v) { */ case 2: - _r$4 = t.Kind(); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $24r = new Value.ptr(rt, (v), (fl | ((_r$4 >>> 0))) >>> 0); - $s = 10; case 10: return $24r; - /* } */ case 3: - _r$5 = t.Kind(); /* */ $s = 11; case 11: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - $24r$1 = new Value.ptr(rt, ($newDataPointer(v, jsType(rt.ptrTo()))), (((fl | ((_r$5 >>> 0))) >>> 0) | 128) >>> 0); - $s = 12; case 12: return $24r$1; - /* */ } return; } var $f = {$blk: makeValue$1, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _v, _v$1, fl, rt, t, v, $s};return $f; + var _1, fl, t, v; + _1 = t.Kind(); + if ((_1 === (17)) || (_1 === (25)) || (_1 === (22))) { + return new Value.ptr(t, (v), (fl | ((t.Kind() >>> 0))) >>> 0); + } + return new Value.ptr(t, ($newDataPointer(v, t.JsPtrTo())), (((fl | ((t.Kind() >>> 0))) >>> 0) | 128) >>> 0); }; TypeOf = function TypeOf$1(i) { - var i; - if (!initialized) { - return new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0); - } + var i, x; if ($interfaceIsEqual(i, $ifaceNil)) { return $ifaceNil; } - return reflectType(i.constructor); + return (x = toRType(abi.ReflectType(i.constructor)), new x.constructor.elem(x)); }; $pkg.TypeOf = TypeOf; ValueOf = function ValueOf$1(i) { - var {$24r, _r, i, $s, $r, $c} = $restore(this, {i}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var i; if ($interfaceIsEqual(i, $ifaceNil)) { - $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + return new Value.ptr(ptrType.nil, 0, 0); } - _r = makeValue(reflectType(i.constructor), i.$val, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: ValueOf$1, $c: true, $r, $24r, _r, i, $s};return $f; + return makeValue(abi.ReflectType(i.constructor), i.$val, 0); }; $pkg.ValueOf = ValueOf; - FuncOf = function FuncOf$1(in$2, out$1, variadic) { - var {_i, _i$1, _r, _ref, _ref$1, _v, _v$1, i, i$1, in$2, jsIn, jsOut, out$1, v, v$1, variadic, x, $s, $r, $c} = $restore(this, {in$2, out$1, variadic}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (!(variadic)) { _v = false; $s = 3; continue s; } - if (in$2.$length === 0) { _v$1 = true; $s = 4; continue s; } - _r = (x = in$2.$length - 1 >> 0, ((x < 0 || x >= in$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$2.$array[in$2.$offset + x])).Kind(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _v$1 = !((_r === 23)); case 4: - _v = _v$1; case 3: - /* */ if (_v) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (_v) { */ case 1: - $panic(new $String("reflect.FuncOf: last arg of variadic func must be slice")); - /* } */ case 2: - jsIn = $makeSlice(sliceType$8, in$2.$length); - _ref = in$2; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - ((i < 0 || i >= jsIn.$length) ? ($throwRuntimeError("index out of range"), undefined) : jsIn.$array[jsIn.$offset + i] = jsType(v)); - _i++; - } - jsOut = $makeSlice(sliceType$8, out$1.$length); - _ref$1 = out$1; - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - i$1 = _i$1; - v$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - ((i$1 < 0 || i$1 >= jsOut.$length) ? ($throwRuntimeError("index out of range"), undefined) : jsOut.$array[jsOut.$offset + i$1] = jsType(v$1)); - _i$1++; - } - $s = -1; return reflectType($funcType($externalize(jsIn, sliceType$8), $externalize(jsOut, sliceType$8), $externalize(variadic, $Bool))); - /* */ } return; } var $f = {$blk: FuncOf$1, $c: true, $r, _i, _i$1, _r, _ref, _ref$1, _v, _v$1, i, i$1, in$2, jsIn, jsOut, out$1, v, v$1, variadic, x, $s};return $f; - }; - $pkg.FuncOf = FuncOf; - $ptrType(rtype).prototype.ptrTo = function ptrTo() { - var t; - t = this; - return reflectType($ptrType(jsType(t))); - }; - SliceOf = function SliceOf$1(t) { - var t; - return reflectType($sliceType(jsType(t))); - }; - $pkg.SliceOf = SliceOf; unsafe_New = function unsafe_New$1(typ) { - var _1, typ; - _1 = typ.Kind(); - if (_1 === (25)) { - return (new (jsType(typ).ptr)()); - } else if (_1 === (17)) { - return (jsType(typ).zero()); - } else { - return ($newDataPointer(jsType(typ).zero(), jsType(typ.ptrTo()))); - } - }; - typedmemmove = function typedmemmove$1(t, dst, src) { - var dst, src, t; - dst.$set(src.$get()); - }; - keyFor = function keyFor$1(t, key) { - var k, key, kv, t; - kv = key; - if (!(kv.$get === undefined)) { - kv = kv.$get(); - } - k = $internalize(jsType(t.Key()).keyFor(kv), $String); - return [kv, k]; - }; - mapaccess = function mapaccess$1(t, m, key) { - var _tuple, entry, k, key, m, t; - _tuple = keyFor(t, key); - k = _tuple[1]; - entry = m.get($externalize(k, $String)); - if (entry === undefined) { - return 0; - } - return ($newDataPointer(entry.v, jsType(PtrTo(t.Elem())))); - }; - $ptrType(mapIter).prototype.skipUntilValidKey = function skipUntilValidKey() { - var iter, k; - iter = this; - while (true) { - if (!(iter.i < $parseInt(iter.keys.length))) { break; } - k = iter.keys[iter.i]; - if (!(iter.m.get(k) === undefined)) { - break; - } - iter.i = iter.i + (1) >> 0; - } - }; - mapiterinit = function mapiterinit$1(t, m) { - var m, t; - return (new mapIter.ptr(t, m, $global.Array.from(m.keys()), 0, null)); - }; - mapiterkey = function mapiterkey$1(it) { - var {$24r, _r, _r$1, _r$2, it, iter, k, kv, $s, $r, $c} = $restore(this, {it}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - iter = ($pointerOfStructConversion(it, ptrType$9)); - kv = null; - if (!(iter.last === null)) { - kv = iter.last; - } else { - iter.skipUntilValidKey(); - if (iter.i === $parseInt(iter.keys.length)) { - $s = -1; return 0; - } - k = iter.keys[iter.i]; - kv = iter.m.get(k); - iter.last = kv; - } - _r = $assertType(iter.t, TypeEx).Key(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = PtrTo(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = jsType(_r$1); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = ($newDataPointer(kv.k, _r$2)); - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: mapiterkey$1, $c: true, $r, $24r, _r, _r$1, _r$2, it, iter, k, kv, $s};return $f; - }; - mapiternext = function mapiternext$1(it) { - var it, iter; - iter = ($pointerOfStructConversion(it, ptrType$9)); - iter.last = null; - iter.i = iter.i + (1) >> 0; - }; - maplen = function maplen$1(m) { - var m; - return $parseInt(m.size) >> 0; + var typ; + return abi.UnsafeNew(typ); }; methodReceiver = function methodReceiver$1(op, v, i) { - var _, fn, i, m, m$1, ms, op, prop, rcvr, t, tt, v, x; - _ = ptrType$1.nil; - t = ptrType$5.nil; + var fn, i, m, m$1, ms, op, prop, rcvr, tt, v, x; fn = 0; prop = ""; if (v.typ.Kind() === 20) { - tt = (v.typ.kindType); - if (i < 0 || i >= tt.methods.$length) { + tt = v.typ.InterfaceType(); + if (i < 0 || i >= tt.Methods.$length) { $panic(new $String("reflect: internal error: invalid method index")); } - m = (x = tt.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - if (!$clone(tt.rtype.nameOff(m.name), name).isExported()) { + m = (x = tt.Methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + i, ptrType$7))); + if (!$clone(tt.Type.NameOff(m.Name), abi.Name).IsExported()) { $panic(new $String("reflect: " + op + " of unexported method")); } - t = (tt.rtype.typeOff(m.typ).kindType); - prop = $clone(tt.rtype.nameOff(m.name), name).name(); + prop = $clone(tt.Type.NameOff(m.Name), abi.Name).Name(); } else { - ms = v.typ.exportedMethods(); + ms = v.typ.ExportedMethods(); if (((i >>> 0)) >= ((ms.$length >>> 0))) { $panic(new $String("reflect: internal error: invalid method index")); } - m$1 = $clone(((i < 0 || i >= ms.$length) ? ($throwRuntimeError("index out of range"), undefined) : ms.$array[ms.$offset + i]), method); - if (!$clone(v.typ.nameOff(m$1.name), name).isExported()) { + m$1 = $clone(((i < 0 || i >= ms.$length) ? ($throwRuntimeError("index out of range"), undefined) : ms.$array[ms.$offset + i]), abi.Method); + if (!$clone(v.typ.NameOff(m$1.Name), abi.Name).IsExported()) { $panic(new $String("reflect: " + op + " of unexported method")); } - t = (v.typ.typeOff(m$1.mtyp).kindType); prop = $internalize($methodSet(jsType(v.typ))[i].prop, $String); } rcvr = $clone(v, Value).object(); - if (isWrapped(v.typ)) { + if (v.typ.IsWrapped()) { rcvr = new (jsType(v.typ))(rcvr); } fn = (rcvr[$externalize(prop, $String)]); - return [_, t, fn]; + return fn; }; valueInterface = function valueInterface$1(v) { var {_r, cv, v, $s, $r, $c} = $restore(this, {v}); @@ -5166,10 +4879,10 @@ $packages["internal/reflectlite"] = (function() { _r = makeMethodValue("Interface", $clone(v, Value)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } Value.copy(v, _r); /* } */ case 2: - if (isWrapped(v.typ)) { + if (v.typ.IsWrapped()) { if (!((((v.flag & 128) >>> 0) === 0)) && ($clone(v, Value).Kind() === 25)) { cv = jsType(v.typ).zero(); - copyStruct(cv, $clone(v, Value).object(), v.typ); + abi.CopyStruct(cv, $clone(v, Value).object(), v.typ); $s = -1; return ((new (jsType(v.typ))(cv))); } $s = -1; return ((new (jsType(v.typ))($clone(v, Value).object()))); @@ -5179,169 +4892,56 @@ $packages["internal/reflectlite"] = (function() { }; ifaceE2I = function ifaceE2I$1(t, src, dst) { var dst, src, t; - dst.$set(src); + abi.IfaceE2I(t, src, dst); }; methodName = function methodName$1() { return "?FIXME?"; }; makeMethodValue = function makeMethodValue$1(op, v) { - var {$24r, _r, _tuple, fn, fv, op, rcvr, v, $s, $r, $c} = $restore(this, {op, v}); + var {$24r, _r, fn, fv, op, rcvr, v, $s, $r, $c} = $restore(this, {op, v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: fn = [fn]; rcvr = [rcvr]; if (((v.flag & 512) >>> 0) === 0) { $panic(new $String("reflect: internal error: invalid use of makePartialFunc")); } - _tuple = methodReceiver(op, $clone(v, Value), ((v.flag >> 0)) >> 10 >> 0); - fn[0] = _tuple[2]; + fn[0] = methodReceiver(op, $clone(v, Value), ((v.flag >> 0)) >> 10 >> 0); rcvr[0] = $clone(v, Value).object(); - if (isWrapped(v.typ)) { + if (v.typ.IsWrapped()) { rcvr[0] = new (jsType(v.typ))(rcvr[0]); } fv = js.MakeFunc((function(fn, rcvr) { return function makeMethodValue·func1(this$1, arguments$1) { var arguments$1, this$1; - return new $jsObjectPtr(fn[0].apply(rcvr[0], $externalize(arguments$1, sliceType$8))); + return new $jsObjectPtr(fn[0].apply(rcvr[0], $externalize(arguments$1, sliceType$4))); }; })(fn, rcvr)); _r = $clone(v, Value).Type().common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $24r = new Value.ptr(_r, (fv), (new flag(v.flag).ro() | 19) >>> 0); $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: makeMethodValue$1, $c: true, $r, $24r, _r, _tuple, fn, fv, op, rcvr, v, $s};return $f; - }; - wrapJsObject = function wrapJsObject$1(typ, val) { - var typ, val; - if ($interfaceIsEqual(typ, jsObjectPtr)) { - return new (jsType(jsObjectPtr))(val); - } - return val; - }; - unwrapJsObject = function unwrapJsObject$1(typ, val) { - var typ, val; - if ($interfaceIsEqual(typ, jsObjectPtr)) { - return val.object; - } - return val; - }; - getJsTag = function getJsTag$1(tag$1) { - var _tuple, i, name$2, qvalue, tag$1, value; - while (true) { - if (!(!(tag$1 === ""))) { break; } - i = 0; - while (true) { - if (!(i < tag$1.length && (tag$1.charCodeAt(i) === 32))) { break; } - i = i + (1) >> 0; - } - tag$1 = $substring(tag$1, i); - if (tag$1 === "") { - break; - } - i = 0; - while (true) { - if (!(i < tag$1.length && !((tag$1.charCodeAt(i) === 32)) && !((tag$1.charCodeAt(i) === 58)) && !((tag$1.charCodeAt(i) === 34)))) { break; } - i = i + (1) >> 0; - } - if ((i + 1 >> 0) >= tag$1.length || !((tag$1.charCodeAt(i) === 58)) || !((tag$1.charCodeAt((i + 1 >> 0)) === 34))) { - break; - } - name$2 = ($substring(tag$1, 0, i)); - tag$1 = $substring(tag$1, (i + 1 >> 0)); - i = 1; - while (true) { - if (!(i < tag$1.length && !((tag$1.charCodeAt(i) === 34)))) { break; } - if (tag$1.charCodeAt(i) === 92) { - i = i + (1) >> 0; - } - i = i + (1) >> 0; - } - if (i >= tag$1.length) { - break; - } - qvalue = ($substring(tag$1, 0, (i + 1 >> 0))); - tag$1 = $substring(tag$1, (i + 1 >> 0)); - if (name$2 === "js") { - _tuple = unquote(qvalue); - value = _tuple[0]; - return value; - } - } - return ""; - }; - PtrTo = function PtrTo$1(t) { - var t; - return $assertType(t, ptrType$1).ptrTo(); - }; - $pkg.PtrTo = PtrTo; - copyVal = function copyVal$1(typ, fl, ptr) { - var c, fl, ptr, typ; - if (ifaceIndir(typ)) { - c = unsafe_New(typ); - typedmemmove(typ, c, ptr); - return new Value.ptr(typ, c, (fl | 128) >>> 0); - } - return new Value.ptr(typ, (ptr).$get(), fl); - }; - Value.methods = [{prop: "pointer", name: "pointer", pkg: "internal/reflectlite", typ: $funcType([], [$UnsafePointer], false)}, {prop: "CanSet", name: "CanSet", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsValid", name: "IsValid", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "numMethod", name: "numMethod", pkg: "internal/reflectlite", typ: $funcType([], [$Int], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [Type], false)}, {prop: "object", name: "object", pkg: "internal/reflectlite", typ: $funcType([], [ptrType$2], false)}, {prop: "assignTo", name: "assignTo", pkg: "internal/reflectlite", typ: $funcType([$String, ptrType$1, $UnsafePointer], [Value], false)}, {prop: "call", name: "call", pkg: "internal/reflectlite", typ: $funcType([$String, sliceType$6], [sliceType$6], false)}, {prop: "Cap", name: "Cap", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Index", name: "Index", pkg: "", typ: $funcType([$Int], [Value], false)}, {prop: "InterfaceData", name: "InterfaceData", pkg: "", typ: $funcType([], [arrayType$2], false)}, {prop: "IsNil", name: "IsNil", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Pointer", name: "Pointer", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([Value], [], false)}, {prop: "SetBytes", name: "SetBytes", pkg: "", typ: $funcType([sliceType$13], [], false)}, {prop: "SetCap", name: "SetCap", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "SetLen", name: "SetLen", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Slice", name: "Slice", pkg: "", typ: $funcType([$Int, $Int], [Value], false)}, {prop: "Slice3", name: "Slice3", pkg: "", typ: $funcType([$Int, $Int, $Int], [Value], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Value], false)}, {prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "MapKeys", name: "MapKeys", pkg: "", typ: $funcType([], [sliceType$6], false)}, {prop: "MapIndex", name: "MapIndex", pkg: "", typ: $funcType([Value], [Value], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [Value], false)}]; - flag.methods = [{prop: "kind", name: "kind", pkg: "internal/reflectlite", typ: $funcType([], [Kind], false)}, {prop: "ro", name: "ro", pkg: "internal/reflectlite", typ: $funcType([], [flag], false)}, {prop: "mustBeExported", name: "mustBeExported", pkg: "internal/reflectlite", typ: $funcType([], [], false)}, {prop: "mustBeAssignable", name: "mustBeAssignable", pkg: "internal/reflectlite", typ: $funcType([], [], false)}, {prop: "mustBe", name: "mustBe", pkg: "internal/reflectlite", typ: $funcType([Kind], [], false)}]; - ptrType$10.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; - Kind.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$1.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "pointers", name: "pointers", pkg: "internal/reflectlite", typ: $funcType([], [$Bool], false)}, {prop: "common", name: "common", pkg: "internal/reflectlite", typ: $funcType([], [ptrType$1], false)}, {prop: "exportedMethods", name: "exportedMethods", pkg: "internal/reflectlite", typ: $funcType([], [sliceType$5], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "PkgPath", name: "PkgPath", pkg: "", typ: $funcType([], [$String], false)}, {prop: "hasName", name: "hasName", pkg: "internal/reflectlite", typ: $funcType([], [$Bool], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "chanDir", name: "chanDir", pkg: "internal/reflectlite", typ: $funcType([], [chanDir], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "In", name: "In", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumIn", name: "NumIn", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumOut", name: "NumOut", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Out", name: "Out", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "Implements", name: "Implements", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "AssignableTo", name: "AssignableTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsVariadic", name: "IsVariadic", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "kindType", name: "kindType", pkg: "internal/reflectlite", typ: $funcType([], [ptrType$1], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [structField], false)}, {prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Type], false)}, {prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Method], false)}, {prop: "uncommon", name: "uncommon", pkg: "internal/reflectlite", typ: $funcType([], [ptrType$4], false)}, {prop: "nameOff", name: "nameOff", pkg: "internal/reflectlite", typ: $funcType([nameOff], [name], false)}, {prop: "typeOff", name: "typeOff", pkg: "internal/reflectlite", typ: $funcType([typeOff], [ptrType$1], false)}, {prop: "ptrTo", name: "ptrTo", pkg: "internal/reflectlite", typ: $funcType([], [ptrType$1], false)}]; - ptrType$11.methods = [{prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}]; - ptrType$12.methods = [{prop: "embedded", name: "embedded", pkg: "internal/reflectlite", typ: $funcType([], [$Bool], false)}]; - ptrType$13.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$4.methods = [{prop: "methods", name: "methods", pkg: "internal/reflectlite", typ: $funcType([], [sliceType$5], false)}, {prop: "exportedMethods", name: "exportedMethods", pkg: "internal/reflectlite", typ: $funcType([], [sliceType$5], false)}]; - ptrType$5.methods = [{prop: "in$", name: "in", pkg: "internal/reflectlite", typ: $funcType([], [sliceType$2], false)}, {prop: "out", name: "out", pkg: "internal/reflectlite", typ: $funcType([], [sliceType$2], false)}]; - name.methods = [{prop: "data", name: "data", pkg: "internal/reflectlite", typ: $funcType([$Int, $String], [ptrType$6], false)}, {prop: "hasTag", name: "hasTag", pkg: "internal/reflectlite", typ: $funcType([], [$Bool], false)}, {prop: "readVarint", name: "readVarint", pkg: "internal/reflectlite", typ: $funcType([$Int], [$Int, $Int], false)}, {prop: "name", name: "name", pkg: "internal/reflectlite", typ: $funcType([], [$String], false)}, {prop: "tag", name: "tag", pkg: "internal/reflectlite", typ: $funcType([], [$String], false)}, {prop: "pkgPath", name: "pkgPath", pkg: "internal/reflectlite", typ: $funcType([], [$String], false)}, {prop: "isExported", name: "isExported", pkg: "internal/reflectlite", typ: $funcType([], [$Bool], false)}, {prop: "embedded", name: "embedded", pkg: "internal/reflectlite", typ: $funcType([], [$Bool], false)}]; - ptrType$9.methods = [{prop: "skipUntilValidKey", name: "skipUntilValidKey", pkg: "internal/reflectlite", typ: $funcType([], [], false)}]; - Value.init("internal/reflectlite", [{prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "ptr", name: "ptr", embedded: false, exported: false, typ: $UnsafePointer, tag: ""}, {prop: "flag", name: "flag", embedded: true, exported: false, typ: flag, tag: ""}]); - ValueError.init("", [{prop: "Method", name: "Method", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Kind", name: "Kind", embedded: false, exported: true, typ: Kind, tag: ""}]); - Type.init([{prop: "AssignableTo", name: "AssignableTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Implements", name: "Implements", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "PkgPath", name: "PkgPath", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "common", name: "common", pkg: "internal/reflectlite", typ: $funcType([], [ptrType$1], false)}, {prop: "uncommon", name: "uncommon", pkg: "internal/reflectlite", typ: $funcType([], [ptrType$4], false)}]); - rtype.init("internal/reflectlite", [{prop: "size", name: "size", embedded: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "ptrdata", name: "ptrdata", embedded: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "hash", name: "hash", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "tflag", name: "tflag", embedded: false, exported: false, typ: tflag, tag: ""}, {prop: "align", name: "align", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "fieldAlign", name: "fieldAlign", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "kind", name: "kind", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "equal", name: "equal", embedded: false, exported: false, typ: funcType$2, tag: ""}, {prop: "gcdata", name: "gcdata", embedded: false, exported: false, typ: ptrType$6, tag: ""}, {prop: "str", name: "str", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "ptrToThis", name: "ptrToThis", embedded: false, exported: false, typ: typeOff, tag: ""}]); - method.init("internal/reflectlite", [{prop: "name", name: "name", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "mtyp", name: "mtyp", embedded: false, exported: false, typ: typeOff, tag: ""}, {prop: "ifn", name: "ifn", embedded: false, exported: false, typ: textOff, tag: ""}, {prop: "tfn", name: "tfn", embedded: false, exported: false, typ: textOff, tag: ""}]); - arrayType.init("internal/reflectlite", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "slice", name: "slice", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "len", name: "len", embedded: false, exported: false, typ: $Uintptr, tag: ""}]); - chanType.init("internal/reflectlite", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "dir", name: "dir", embedded: false, exported: false, typ: $Uintptr, tag: ""}]); - imethod.init("internal/reflectlite", [{prop: "name", name: "name", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: typeOff, tag: ""}]); - interfaceType.init("internal/reflectlite", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "pkgPath", name: "pkgPath", embedded: false, exported: false, typ: name, tag: ""}, {prop: "methods", name: "methods", embedded: false, exported: false, typ: sliceType$9, tag: ""}]); - mapType.init("internal/reflectlite", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "key", name: "key", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "bucket", name: "bucket", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "hasher", name: "hasher", embedded: false, exported: false, typ: funcType$3, tag: ""}, {prop: "keysize", name: "keysize", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "valuesize", name: "valuesize", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "bucketsize", name: "bucketsize", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "flags", name: "flags", embedded: false, exported: false, typ: $Uint32, tag: ""}]); - ptrType.init("internal/reflectlite", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}]); - sliceType.init("internal/reflectlite", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}]); - structField.init("internal/reflectlite", [{prop: "name", name: "name", embedded: false, exported: false, typ: name, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "offset", name: "offset", embedded: false, exported: false, typ: $Uintptr, tag: ""}]); - structType.init("internal/reflectlite", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "pkgPath", name: "pkgPath", embedded: false, exported: false, typ: name, tag: ""}, {prop: "fields", name: "fields", embedded: false, exported: false, typ: sliceType$10, tag: ""}]); - errorString.init("internal/reflectlite", [{prop: "s", name: "s", embedded: false, exported: false, typ: $String, tag: ""}]); - Method.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "PkgPath", name: "PkgPath", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: Type, tag: ""}, {prop: "Func", name: "Func", embedded: false, exported: true, typ: Value, tag: ""}, {prop: "Index", name: "Index", embedded: false, exported: true, typ: $Int, tag: ""}]); - uncommonType.init("internal/reflectlite", [{prop: "pkgPath", name: "pkgPath", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "mcount", name: "mcount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "xcount", name: "xcount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "moff", name: "moff", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "_methods", name: "_methods", embedded: false, exported: false, typ: sliceType$5, tag: ""}]); - funcType.init("internal/reflectlite", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: "reflect:\"func\""}, {prop: "inCount", name: "inCount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "outCount", name: "outCount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "_in", name: "_in", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "_out", name: "_out", embedded: false, exported: false, typ: sliceType$2, tag: ""}]); - name.init("internal/reflectlite", [{prop: "bytes", name: "bytes", embedded: false, exported: false, typ: ptrType$6, tag: ""}]); - nameData.init("internal/reflectlite", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "tag", name: "tag", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "exported", name: "exported", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "embedded", name: "embedded", embedded: false, exported: false, typ: $Bool, tag: ""}]); - mapIter.init("internal/reflectlite", [{prop: "t", name: "t", embedded: false, exported: false, typ: Type, tag: ""}, {prop: "m", name: "m", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "keys", name: "keys", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "i", name: "i", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "last", name: "last", embedded: false, exported: false, typ: ptrType$2, tag: ""}]); - TypeEx.init([{prop: "AssignableTo", name: "AssignableTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Implements", name: "Implements", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "PkgPath", name: "PkgPath", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "common", name: "common", pkg: "internal/reflectlite", typ: $funcType([], [ptrType$1], false)}, {prop: "uncommon", name: "uncommon", pkg: "internal/reflectlite", typ: $funcType([], [ptrType$4], false)}]); + /* */ } return; } var $f = {$blk: makeMethodValue$1, $c: true, $r, $24r, _r, fn, fv, op, rcvr, v, $s};return $f; + }; + Value.methods = [{prop: "pointer", name: "pointer", pkg: "internal/reflectlite", typ: $funcType([], [$UnsafePointer], false)}, {prop: "CanSet", name: "CanSet", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsValid", name: "IsValid", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [abi.Kind], false)}, {prop: "numMethod", name: "numMethod", pkg: "internal/reflectlite", typ: $funcType([], [$Int], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [Type], false)}, {prop: "object", name: "object", pkg: "internal/reflectlite", typ: $funcType([], [ptrType$10], false)}, {prop: "assignTo", name: "assignTo", pkg: "internal/reflectlite", typ: $funcType([$String, ptrType, $UnsafePointer], [Value], false)}, {prop: "IsNil", name: "IsNil", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([Value], [], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Value], false)}]; + flag.methods = [{prop: "kind", name: "kind", pkg: "internal/reflectlite", typ: $funcType([], [abi.Kind], false)}, {prop: "ro", name: "ro", pkg: "internal/reflectlite", typ: $funcType([], [flag], false)}, {prop: "mustBeExported", name: "mustBeExported", pkg: "internal/reflectlite", typ: $funcType([], [], false)}, {prop: "mustBeAssignable", name: "mustBeAssignable", pkg: "internal/reflectlite", typ: $funcType([], [], false)}]; + ptrType$11.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + rtype.methods = [{prop: "uncommon", name: "uncommon", pkg: "internal/reflectlite", typ: $funcType([], [ptrType$1], false)}, {prop: "common", name: "common", pkg: "internal/reflectlite", typ: $funcType([], [ptrType], false)}, {prop: "exportedMethods", name: "exportedMethods", pkg: "internal/reflectlite", typ: $funcType([], [sliceType], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "PkgPath", name: "PkgPath", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "In", name: "In", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumIn", name: "NumIn", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumOut", name: "NumOut", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Out", name: "Out", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "Implements", name: "Implements", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "AssignableTo", name: "AssignableTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "nameOff", name: "nameOff", pkg: "internal/reflectlite", typ: $funcType([abi.NameOff], [abi.Name], false)}, {prop: "typeOff", name: "typeOff", pkg: "internal/reflectlite", typ: $funcType([abi.TypeOff], [ptrType], false)}]; + Value.init("internal/reflectlite", [{prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "ptr", name: "ptr", embedded: false, exported: false, typ: $UnsafePointer, tag: ""}, {prop: "flag", name: "flag", embedded: true, exported: false, typ: flag, tag: ""}]); + ValueError.init("", [{prop: "Method", name: "Method", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Kind", name: "Kind", embedded: false, exported: true, typ: abi.Kind, tag: ""}]); + Type.init([{prop: "AssignableTo", name: "AssignableTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Implements", name: "Implements", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [abi.Kind], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "PkgPath", name: "PkgPath", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "common", name: "common", pkg: "internal/reflectlite", typ: $funcType([], [ptrType], false)}, {prop: "uncommon", name: "uncommon", pkg: "internal/reflectlite", typ: $funcType([], [ptrType$1], false)}]); + rtype.init("", [{prop: "Type", name: "Type", embedded: true, exported: true, typ: ptrType, tag: ""}]); }; $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = goarch.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - uint8Type = ptrType$1.nil; - nameOffList = sliceType$1.nil; - typeOffList = sliceType$2.nil; - kindNames = new sliceType$3(["invalid", "bool", "int", "int8", "int16", "int32", "int64", "uint", "uint8", "uint16", "uint32", "uint64", "uintptr", "float32", "float64", "complex64", "complex128", "array", "chan", "func", "interface", "map", "ptr", "slice", "string", "struct", "unsafe.Pointer"]); - callHelper = $assertType($internalize($call, $emptyInterface), funcType$1); - $pkg.ErrSyntax = new errorString.ptr("invalid syntax"); - initialized = false; - idJsType = "_jsType"; - idReflectType = "_reflectType"; - idKindType = "kindType"; - idRtype = "_rtype"; - uncommonTypeMap = new $global.Map(); - nameMap = new $global.Map(); - jsObjectPtr = reflectType($jsObjectPtr); - selectHelper = $assertType($internalize($select, $emptyInterface), funcType$1); - $r = init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = abi.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = goarch.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $packages["errors"] = (function() { - var $pkg = {}, $init, reflectlite, errorString, ptrType, interfaceType, interfaceType$1, sliceType, interfaceType$2, ptrType$2, errorType, _r, Is, New; + var $pkg = {}, $init, reflectlite, errorString, ptrType, interfaceType, interfaceType$1, sliceType, interfaceType$2, interfaceType$3, ptrType$2, errorType, _r, Is, As, New; reflectlite = $packages["internal/reflectlite"]; errorString = $newType(0, $kindStruct, "errors.errorString", true, "errors", false, function(s_) { this.$val = this; @@ -5358,6 +4958,7 @@ $packages["errors"] = (function() { interfaceType$1 = $interfaceType([{prop: "Is", name: "Is", pkg: "", typ: $funcType([$error], [$Bool], false)}]); sliceType = $sliceType($error); interfaceType$2 = $interfaceType([{prop: "Unwrap", name: "Unwrap", pkg: "", typ: $funcType([], [sliceType], false)}]); + interfaceType$3 = $interfaceType([{prop: "As", name: "As", pkg: "", typ: $funcType([$emptyInterface], [$Bool], false)}]); ptrType$2 = $ptrType(errorString); Is = function Is$1(err, target) { var {_i, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _tuple, _v, err, err$1, isComparable, ok, target, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {err, target}); @@ -5422,6 +5023,93 @@ $packages["errors"] = (function() { /* */ } return; } var $f = {$blk: Is$1, $c: true, $r, _i, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _tuple, _v, err, err$1, isComparable, ok, target, x, x$1, x$2, x$3, $s};return $f; }; $pkg.Is = Is; + As = function As$1(err, target) { + var {_i, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _v, _v$1, err, err$1, ok, target, targetType, typ, val, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {err, target}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if ($interfaceIsEqual(err, $ifaceNil)) { + $s = -1; return false; + } + if ($interfaceIsEqual(target, $ifaceNil)) { + $panic(new $String("errors: target cannot be nil")); + } + val = $clone(reflectlite.ValueOf(target), reflectlite.Value); + typ = $clone(val, reflectlite.Value).Type(); + _r$1 = typ.Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!((_r$1 === 22)) || $clone(val, reflectlite.Value).IsNil()) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((_r$1 === 22)) || $clone(val, reflectlite.Value).IsNil()) { */ case 1: + $panic(new $String("errors: target must be a non-nil pointer")); + /* } */ case 2: + _r$2 = typ.Elem(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + targetType = _r$2; + _r$3 = targetType.Kind(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + if (!(!((_r$3 === 20)))) { _v = false; $s = 7; continue s; } + _r$4 = targetType.Implements(errorType); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _v = !_r$4; case 7: + /* */ if (_v) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_v) { */ case 5: + $panic(new $String("errors: *target must be interface or implement error")); + /* } */ case 6: + /* while (true) { */ case 10: + _r$5 = reflectlite.TypeOf(err).AssignableTo(targetType); /* */ $s = 14; case 14: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (_r$5) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (_r$5) { */ case 12: + $r = $clone($clone(val, reflectlite.Value).Elem(), reflectlite.Value).Set($clone(reflectlite.ValueOf(err), reflectlite.Value)); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return true; + /* } */ case 13: + _tuple = $assertType(err, interfaceType$3, true); + x = _tuple[0]; + ok = _tuple[1]; + if (!(ok)) { _v$1 = false; $s = 18; continue s; } + _r$6 = x.As(target); /* */ $s = 19; case 19: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _v$1 = _r$6; case 18: + /* */ if (_v$1) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (_v$1) { */ case 16: + $s = -1; return true; + /* } */ case 17: + _ref = err; + /* */ if ($assertType(_ref, interfaceType, true)[1]) { $s = 20; continue; } + /* */ if ($assertType(_ref, interfaceType$2, true)[1]) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if ($assertType(_ref, interfaceType, true)[1]) { */ case 20: + x$1 = _ref; + _r$7 = x$1.Unwrap(); /* */ $s = 24; case 24: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + err = _r$7; + if ($interfaceIsEqual(err, $ifaceNil)) { + $s = -1; return false; + } + $s = 23; continue; + /* } else if ($assertType(_ref, interfaceType$2, true)[1]) { */ case 21: + x$2 = _ref; + _r$8 = x$2.Unwrap(); /* */ $s = 25; case 25: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _ref$1 = _r$8; + _i = 0; + /* while (true) { */ case 26: + /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 27; continue; } + err$1 = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + _r$9 = As(err$1, target); /* */ $s = 30; case 30: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + /* */ if (_r$9) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (_r$9) { */ case 28: + $s = -1; return true; + /* } */ case 29: + _i++; + $s = 26; continue; + case 27: + $s = -1; return false; + /* } else { */ case 22: + x$3 = _ref; + $s = -1; return false; + /* } */ case 23: + $s = 10; continue; + case 11: + $s = -1; return false; + /* */ } return; } var $f = {$blk: As$1, $c: true, $r, _i, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _v, _v$1, err, err$1, ok, target, targetType, typ, val, x, x$1, x$2, x$3, $s};return $f; + }; + $pkg.As = As; New = function New$1(text) { var text; return new errorString.ptr(text); @@ -5441,20 +5129,7 @@ $packages["errors"] = (function() { $r = reflectlite.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _r = reflectlite.TypeOf((ptrType.nil)).Elem(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } errorType = _r; - /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; - }; - $pkg.$init = $init; - return $pkg; -})(); -$packages["internal/abi"] = (function() { - var $pkg = {}, $init, goarch; - goarch = $packages["internal/goarch"]; - $pkg.$finishSetup = function() { - }; - $init = function() { - $pkg.$init = function() {}; - /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: - $r = goarch.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.ErrUnsupported = New("unsupported operation"); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; @@ -5474,7 +5149,7 @@ $packages["internal/cpu"] = (function() { $pkg.$finishSetup = function() { arrayType = $arrayType($Uint8, 0); structType = $structType("internal/cpu", [{prop: "_$0", name: "_", embedded: false, exported: false, typ: CacheLinePad, tag: ""}, {prop: "HasAES", name: "HasAES", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasADX", name: "HasADX", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasAVX", name: "HasAVX", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasAVX2", name: "HasAVX2", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasBMI1", name: "HasBMI1", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasBMI2", name: "HasBMI2", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasERMS", name: "HasERMS", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasFMA", name: "HasFMA", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasOSXSAVE", name: "HasOSXSAVE", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasPCLMULQDQ", name: "HasPCLMULQDQ", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasPOPCNT", name: "HasPOPCNT", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasRDTSCP", name: "HasRDTSCP", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasSHA", name: "HasSHA", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasSSE3", name: "HasSSE3", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasSSSE3", name: "HasSSSE3", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasSSE41", name: "HasSSE41", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasSSE42", name: "HasSSE42", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "_$18", name: "_", embedded: false, exported: false, typ: CacheLinePad, tag: ""}]); - structType$2 = $structType("internal/cpu", [{prop: "_$0", name: "_", embedded: false, exported: false, typ: CacheLinePad, tag: ""}, {prop: "HasAES", name: "HasAES", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasPMULL", name: "HasPMULL", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasSHA1", name: "HasSHA1", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasSHA2", name: "HasSHA2", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasSHA512", name: "HasSHA512", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasCRC32", name: "HasCRC32", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasATOMICS", name: "HasATOMICS", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasCPUID", name: "HasCPUID", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "IsNeoverseN1", name: "IsNeoverseN1", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "IsNeoverseV1", name: "IsNeoverseV1", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "_$11", name: "_", embedded: false, exported: false, typ: CacheLinePad, tag: ""}]); + structType$2 = $structType("internal/cpu", [{prop: "_$0", name: "_", embedded: false, exported: false, typ: CacheLinePad, tag: ""}, {prop: "HasAES", name: "HasAES", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasPMULL", name: "HasPMULL", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasSHA1", name: "HasSHA1", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasSHA2", name: "HasSHA2", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasSHA512", name: "HasSHA512", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasCRC32", name: "HasCRC32", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasATOMICS", name: "HasATOMICS", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasCPUID", name: "HasCPUID", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "IsNeoverse", name: "IsNeoverse", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "_$10", name: "_", embedded: false, exported: false, typ: CacheLinePad, tag: ""}]); structType$5 = $structType("internal/cpu", [{prop: "_$0", name: "_", embedded: false, exported: false, typ: CacheLinePad, tag: ""}, {prop: "HasZARCH", name: "HasZARCH", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasSTFLE", name: "HasSTFLE", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasLDISP", name: "HasLDISP", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasEIMM", name: "HasEIMM", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasDFP", name: "HasDFP", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasETF3EH", name: "HasETF3EH", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasMSA", name: "HasMSA", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasAES", name: "HasAES", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasAESCBC", name: "HasAESCBC", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasAESCTR", name: "HasAESCTR", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasAESGCM", name: "HasAESGCM", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasGHASH", name: "HasGHASH", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasSHA1", name: "HasSHA1", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasSHA256", name: "HasSHA256", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasSHA512", name: "HasSHA512", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasSHA3", name: "HasSHA3", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasVX", name: "HasVX", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasVXE", name: "HasVXE", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasKDSA", name: "HasKDSA", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasECDSA", name: "HasECDSA", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasEDDSA", name: "HasEDDSA", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "_$22", name: "_", embedded: false, exported: false, typ: CacheLinePad, tag: ""}]); CacheLinePad.init("internal/cpu", [{prop: "_$0", name: "_", embedded: false, exported: false, typ: arrayType, tag: ""}]); }; @@ -5482,7 +5157,7 @@ $packages["internal/cpu"] = (function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: $pkg.X86 = new structType.ptr(new CacheLinePad.ptr(arrayType.zero()), false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, new CacheLinePad.ptr(arrayType.zero())); - $pkg.ARM64 = new structType$2.ptr(new CacheLinePad.ptr(arrayType.zero()), false, false, false, false, false, false, false, false, false, false, new CacheLinePad.ptr(arrayType.zero())); + $pkg.ARM64 = new structType$2.ptr(new CacheLinePad.ptr(arrayType.zero()), false, false, false, false, false, false, false, false, false, new CacheLinePad.ptr(arrayType.zero())); $pkg.S390X = new structType$5.ptr(new CacheLinePad.ptr(arrayType.zero()), false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, new CacheLinePad.ptr(arrayType.zero())); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; @@ -5490,9 +5165,10 @@ $packages["internal/cpu"] = (function() { return $pkg; })(); $packages["internal/bytealg"] = (function() { - var $pkg = {}, $init, cpu, Index, IndexString, Cutover, Equal, IndexByteString, Count, HashStrBytes, IndexRabinKarpBytes; + var $pkg = {}, $init, cpu, sliceType, Index, IndexString, Cutover, Equal, IndexByteString, MakeNoZero, Count, HashStrBytes, IndexRabinKarpBytes; cpu = $packages["internal/cpu"]; $pkg.$finishSetup = function() { + sliceType = $sliceType($Uint8); Index = function Index$1(a, b) { var a, b; $panic(new $String("unimplemented")); @@ -5540,6 +5216,11 @@ $packages["internal/bytealg"] = (function() { return -1; }; $pkg.IndexByteString = IndexByteString; + MakeNoZero = function MakeNoZero$1(n) { + var n; + return $makeSlice(sliceType, n); + }; + $pkg.MakeNoZero = MakeNoZero; Count = function Count$1(b, c) { var _i, _ref, b, c, n, x; n = 0; @@ -5663,7 +5344,8 @@ $packages["internal/itoa"] = (function() { return $pkg; })(); $packages["math/bits"] = (function() { - var $pkg = {}, $init, _err, overflowError, divideError, deBruijn32tab, deBruijn64tab, Mul32, Add32, Div32, LeadingZeros, LeadingZeros32, LeadingZeros64, TrailingZeros, TrailingZeros32, TrailingZeros64, RotateLeft32, RotateLeft64, Reverse8, Reverse16, ReverseBytes64, Len, Len32, Len64, Add, Add64, Sub, Sub32, Sub64, Mul, Mul64, Div, Div64; + var $pkg = {}, $init, js, _err, overflowError, divideError, LeadingZeros32, LeadingZeros64, TrailingZeros32, TrailingZeros64, RotateLeft64, ReverseBytes64, Len32, Len64, Mul32, Mul64, Add32, Add64, Sub64, Div32, Div64, LeadingZeros, TrailingZeros, RotateLeft32, Reverse8, Reverse16, ReverseBytes32, Len, Add, Sub, Sub32, Mul, Div; + js = $packages["github.com/gopherjs/gopherjs/js"]; _err = $newType(8, $kindString, "bits._err", true, "math/bits", false, null); $pkg._err = _err; $pkg.$finishSetup = function() { @@ -5678,6 +5360,77 @@ $packages["math/bits"] = (function() { e = this.$val; }; $ptrType(_err).prototype.RuntimeError = function(...$args) { return new _err(this.$get()).RuntimeError(...$args); }; + LeadingZeros32 = function LeadingZeros32$1(x) { + var x; + return $parseInt($global.Math.clz32(x)) >> 0; + }; + $pkg.LeadingZeros32 = LeadingZeros32; + LeadingZeros64 = function LeadingZeros64$1(x) { + var hi, x; + hi = x.$high; + if (!((hi === 0))) { + return LeadingZeros32(hi); + } + return 32 + LeadingZeros32(x.$low) >> 0; + }; + $pkg.LeadingZeros64 = LeadingZeros64; + TrailingZeros32 = function TrailingZeros32$1(x) { + var x; + if (x === 0) { + return 32; + } + return 31 - LeadingZeros32((x & (-x >>> 0)) >>> 0) >> 0; + }; + $pkg.TrailingZeros32 = TrailingZeros32; + TrailingZeros64 = function TrailingZeros64$1(x) { + var hi, lo, x; + lo = x.$low; + if (!((lo === 0))) { + return 31 - LeadingZeros32((lo & (-lo >>> 0)) >>> 0) >> 0; + } + hi = x.$high; + if (hi === 0) { + return 64; + } + return 63 - LeadingZeros32((hi & (-hi >>> 0)) >>> 0) >> 0; + }; + $pkg.TrailingZeros64 = TrailingZeros64; + RotateLeft64 = function RotateLeft64$1(x, k) { + var k, rs, s, tmp, x, xHi, xLo, y, y$1, y$2, y$3; + s = (((k >>> 0)) & 63) >>> 0; + if (s === 0) { + return x; + } + xHi = x.$high; + xLo = x.$low; + if (s >= 32) { + tmp = xLo; + xLo = xHi; + xHi = tmp; + s = s - (32) >>> 0; + } + if (s === 0) { + return new $Uint64((xHi), (xLo)); + } + rs = 32 - s >>> 0; + return new $Uint64((((((y = s, y < 32 ? (xHi << y) : 0) >>> 0) | ((y$1 = rs, y$1 < 32 ? (xLo >>> y$1) : 0) >>> 0)) >>> 0)), (((((y$2 = s, y$2 < 32 ? (xLo << y$2) : 0) >>> 0) | ((y$3 = rs, y$3 < 32 ? (xHi >>> y$3) : 0) >>> 0)) >>> 0))); + }; + $pkg.RotateLeft64 = RotateLeft64; + ReverseBytes64 = function ReverseBytes64$1(x) { + var x; + return new $Uint64((ReverseBytes32(x.$low)), (ReverseBytes32(x.$high))); + }; + $pkg.ReverseBytes64 = ReverseBytes64; + Len32 = function Len32$1(x) { + var x; + return 32 - LeadingZeros32(x) >> 0; + }; + $pkg.Len32 = Len32; + Len64 = function Len64$1(x) { + var x; + return 64 - LeadingZeros64(x) >> 0; + }; + $pkg.Len64 = Len64; Mul32 = function Mul32$1(x, y) { var hi, lo, t, w0, w1, w2, x, x0, x1, y, y0, y1; hi = 0; @@ -5696,6 +5449,80 @@ $packages["math/bits"] = (function() { return [hi, lo]; }; $pkg.Mul32 = Mul32; + Mul64 = function Mul64$1(x, y) { + var c0, c16, c32, c48, c64, c80, c96, hiLo, loHi, loLo, x, x0, x1, x2, x3, xHi, xLo, y, y0, y1, y2, y3, yHi, yLo; + xLo = x.$low; + x0 = (xLo & 65535) >>> 0; + x1 = xLo >>> 16 >>> 0; + xHi = x.$high; + x2 = (xHi & 65535) >>> 0; + x3 = xHi >>> 16 >>> 0; + yLo = y.$low; + y0 = (yLo & 65535) >>> 0; + y1 = yLo >>> 16 >>> 0; + yHi = y.$high; + y2 = (yHi & 65535) >>> 0; + y3 = yHi >>> 16 >>> 0; + c0 = $imul(x0, y0) >>> 0; + c16 = c0 >>> 16 >>> 0; + c0 = (c0 & (65535)) >>> 0; + c16 = c16 + (($imul(x1, y0) >>> 0)) >>> 0; + c32 = c16 >>> 16 >>> 0; + c16 = (c16 & (65535)) >>> 0; + c16 = c16 + (($imul(x0, y1) >>> 0)) >>> 0; + c32 = c32 + ((c16 >>> 16 >>> 0)) >>> 0; + c16 = (c16 & (65535)) >>> 0; + loLo = ((c16 << 16 >>> 0) | c0) >>> 0; + c48 = c32 >>> 16 >>> 0; + c32 = (c32 & (65535)) >>> 0; + c32 = c32 + (($imul(x2, y0) >>> 0)) >>> 0; + c48 = c48 + ((c32 >>> 16 >>> 0)) >>> 0; + c32 = (c32 & (65535)) >>> 0; + c32 = c32 + (($imul(x1, y1) >>> 0)) >>> 0; + c48 = c48 + ((c32 >>> 16 >>> 0)) >>> 0; + c32 = (c32 & (65535)) >>> 0; + c32 = c32 + (($imul(x0, y2) >>> 0)) >>> 0; + c48 = c48 + ((c32 >>> 16 >>> 0)) >>> 0; + c32 = (c32 & (65535)) >>> 0; + c64 = c48 >>> 16 >>> 0; + c48 = (c48 & (65535)) >>> 0; + c48 = c48 + (($imul(x3, y0) >>> 0)) >>> 0; + c64 = c64 + ((c48 >>> 16 >>> 0)) >>> 0; + c48 = (c48 & (65535)) >>> 0; + c48 = c48 + (($imul(x2, y1) >>> 0)) >>> 0; + c64 = c64 + ((c48 >>> 16 >>> 0)) >>> 0; + c48 = (c48 & (65535)) >>> 0; + c48 = c48 + (($imul(x1, y2) >>> 0)) >>> 0; + c64 = c64 + ((c48 >>> 16 >>> 0)) >>> 0; + c48 = (c48 & (65535)) >>> 0; + c48 = c48 + (($imul(x0, y3) >>> 0)) >>> 0; + c64 = c64 + ((c48 >>> 16 >>> 0)) >>> 0; + c48 = (c48 & (65535)) >>> 0; + loHi = ((c48 << 16 >>> 0) | c32) >>> 0; + c80 = c64 >>> 16 >>> 0; + c64 = (c64 & (65535)) >>> 0; + c64 = c64 + (($imul(x3, y1) >>> 0)) >>> 0; + c80 = c80 + ((c64 >>> 16 >>> 0)) >>> 0; + c64 = (c64 & (65535)) >>> 0; + c64 = c64 + (($imul(x2, y2) >>> 0)) >>> 0; + c80 = c80 + ((c64 >>> 16 >>> 0)) >>> 0; + c64 = (c64 & (65535)) >>> 0; + c64 = c64 + (($imul(x1, y3) >>> 0)) >>> 0; + c80 = c80 + ((c64 >>> 16 >>> 0)) >>> 0; + c64 = (c64 & (65535)) >>> 0; + c96 = c80 >>> 16 >>> 0; + c80 = (c80 & (65535)) >>> 0; + c80 = c80 + (($imul(x3, y2) >>> 0)) >>> 0; + c96 = c96 + ((c80 >>> 16 >>> 0)) >>> 0; + c80 = (c80 & (65535)) >>> 0; + c80 = c80 + (($imul(x2, y3) >>> 0)) >>> 0; + c96 = c96 + ((c80 >>> 16 >>> 0)) >>> 0; + c80 = (c80 & (65535)) >>> 0; + hiLo = ((c80 << 16 >>> 0) | c64) >>> 0; + c96 = c96 + (($imul(x3, y3) >>> 0)) >>> 0; + return [new $Uint64((c96), (hiLo)), new $Uint64((loHi), (loLo))]; + }; + $pkg.Mul64 = Mul64; Add32 = function Add32$1(x, y, carry) { var carry, carryOut, sum, x, y; sum = 0; @@ -5705,6 +5532,35 @@ $packages["math/bits"] = (function() { return [sum, carryOut]; }; $pkg.Add32 = Add32; + Add64 = function Add64$1(x, y, carry) { + var carry, carryOut, hiSum, loSum, sum, x, y; + sum = new $Uint64(0, 0); + carryOut = new $Uint64(0, 0); + hiSum = (x.$high) + (y.$high); + loSum = (x.$low) + (y.$low) + (carry.$low); + sum = new $Uint64(hiSum, loSum); + if (loSum >= 4.294967296e+09) { + hiSum = hiSum + (1); + } + if (hiSum >= 4.294967296e+09) { + carryOut = new $Uint64(0, 1); + } + return [sum, carryOut]; + }; + $pkg.Add64 = Add64; + Sub64 = function Sub64$1(x, y, borrow) { + var borrow, borrowOut, diff, hiDiff, loDiff, x, y; + diff = new $Uint64(0, 0); + borrowOut = new $Uint64(0, 0); + hiDiff = (x.$high) - (y.$high); + loDiff = (x.$low) - (y.$low) - (borrow.$low); + diff = new $Uint64(hiDiff, loDiff); + if (hiDiff < 0 || ((hiDiff === 0) && loDiff < 0)) { + borrowOut = new $Uint64(0, 1); + } + return [diff, borrowOut]; + }; + $pkg.Sub64 = Sub64; Div32 = function Div32$1(hi, lo, y) { var _q, _q$1, _tmp, _tmp$1, hi, lo, q0, q1, quo, rem, rhat, s, un0, un1, un10, un16, un21, y, y$1, y$2, y$3, y$4, y$5, yn0, yn1; quo = 0; @@ -5751,21 +5607,153 @@ $packages["math/bits"] = (function() { return [quo, rem]; }; $pkg.Div32 = Div32; + Div64 = function Div64$1(hi, lo, y) { + var _q, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, carry, carry$1, carry$2, carry$3, hi, lo, q0, q0$1, q1, q1$1, quo, qyHi, qynHi, qynLo, r0, r1, rem, remHi, remLo, rhat, rs, s, skipAdj, sum, sum$1, sum$2, sum$3, un0, un1, un21Hi, un21Lo, un32Hi, un32Lo, y, y$1, y$10, y$11, y$12, y$13, y$2, y$3, y$4, y$5, y$6, y$7, y$8, y$9, yn0, yn1; + quo = new $Uint64(0, 0); + rem = new $Uint64(0, 0); + yn1 = y.$high; + yn0 = y.$low; + if ((yn1 === 0) && (yn0 === 0)) { + $panic(divideError); + } + un32Hi = hi.$high; + un32Lo = hi.$low; + if (yn1 < un32Hi || ((yn1 === un32Hi) && yn0 <= un32Lo)) { + $panic(overflowError); + } + un1 = lo.$high; + un0 = lo.$low; + if (yn1 === 0) { + _tuple = Div32(un32Lo, un1, yn0); + q1 = _tuple[0]; + r1 = _tuple[1]; + _tuple$1 = Div32(r1, un0, yn0); + q0 = _tuple$1[0]; + r0 = _tuple$1[1]; + _tmp = new $Uint64((q1), (q0)); + _tmp$1 = new $Uint64(0, (r0)); + quo = _tmp; + rem = _tmp$1; + return [quo, rem]; + } + s = ((LeadingZeros32(yn1) >>> 0)); + rs = 32 - s >>> 0; + if (!((s === 0))) { + yn1 = (((y$1 = s, y$1 < 32 ? (yn1 << y$1) : 0) >>> 0) | ((y$2 = rs, y$2 < 32 ? (yn0 >>> y$2) : 0) >>> 0)) >>> 0; + yn0 = (y$3 = s, y$3 < 32 ? (yn0 << y$3) : 0) >>> 0; + un32Hi = (((y$4 = s, y$4 < 32 ? (un32Hi << y$4) : 0) >>> 0) | ((y$5 = rs, y$5 < 32 ? (un32Lo >>> y$5) : 0) >>> 0)) >>> 0; + un32Lo = (((y$6 = s, y$6 < 32 ? (un32Lo << y$6) : 0) >>> 0) | ((y$7 = rs, y$7 < 32 ? (un1 >>> y$7) : 0) >>> 0)) >>> 0; + un1 = (((y$8 = s, y$8 < 32 ? (un1 << y$8) : 0) >>> 0) | ((y$9 = rs, y$9 < 32 ? (un0 >>> y$9) : 0) >>> 0)) >>> 0; + un0 = (y$10 = s, y$10 < 32 ? (un0 << y$10) : 0) >>> 0; + } + _tmp$2 = 0; + _tmp$3 = 0; + q1$1 = _tmp$2; + rhat = _tmp$3; + skipAdj = false; + if (un32Hi === 0) { + q1$1 = (_q = un32Lo / yn1, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + rhat = un32Lo - ($imul(q1$1, yn1) >>> 0) >>> 0; + } else if (un32Hi >= yn1) { + q1$1 = 4294967295; + _tuple$2 = Add32(un32Lo, yn1, 0); + sum = _tuple$2[0]; + carry = _tuple$2[1]; + if (!((carry === 0))) { + skipAdj = true; + } else { + rhat = sum; + } + } else { + _tuple$3 = Div32(un32Hi, un32Lo, yn1); + q1$1 = _tuple$3[0]; + rhat = _tuple$3[1]; + } + _tuple$4 = Mul32(q1$1, yn0); + qynHi = _tuple$4[0]; + qynLo = _tuple$4[1]; + if (!skipAdj) { + while (true) { + if (!(qynHi > rhat || ((qynHi === rhat) && qynLo > un1))) { break; } + q1$1 = q1$1 - (1) >>> 0; + if (qynLo < yn0) { + qynHi = qynHi - (1) >>> 0; + } + qynLo = qynLo - (yn0) >>> 0; + _tuple$5 = Add32(rhat, yn1, 0); + sum$1 = _tuple$5[0]; + carry$1 = _tuple$5[1]; + if (!((carry$1 === 0))) { + break; + } + rhat = sum$1; + } + } + qyHi = ($imul(q1$1, yn1) >>> 0) + qynHi >>> 0; + un21Lo = un1 - qynLo >>> 0; + un21Hi = un32Lo - qyHi >>> 0; + if (un1 < qynLo) { + un21Hi = un21Hi - (1) >>> 0; + } + q0$1 = 0; + skipAdj = false; + if (un21Hi >= yn1) { + q0$1 = 4294967295; + _tuple$6 = Add32(un21Lo, yn1, 0); + sum$2 = _tuple$6[0]; + carry$2 = _tuple$6[1]; + if (!((carry$2 === 0)) || un21Hi > yn1) { + skipAdj = true; + } else { + rhat = sum$2; + } + } else { + _tuple$7 = Div32(un21Hi, un21Lo, yn1); + q0$1 = _tuple$7[0]; + rhat = _tuple$7[1]; + } + _tuple$8 = Mul32(q0$1, yn0); + qynHi = _tuple$8[0]; + qynLo = _tuple$8[1]; + if (!skipAdj) { + while (true) { + if (!(qynHi > rhat || ((qynHi === rhat) && qynLo > un0))) { break; } + q0$1 = q0$1 - (1) >>> 0; + if (qynLo < yn0) { + qynHi = qynHi - (1) >>> 0; + } + qynLo = qynLo - (yn0) >>> 0; + _tuple$9 = Add32(rhat, yn1, 0); + sum$3 = _tuple$9[0]; + carry$3 = _tuple$9[1]; + if (!((carry$3 === 0))) { + break; + } + rhat = sum$3; + } + } + qyHi = ($imul(q0$1, yn1) >>> 0) + qynHi >>> 0; + remLo = un0 - qynLo >>> 0; + remHi = un21Lo - qyHi >>> 0; + if (un0 < qynLo) { + remHi = remHi - (1) >>> 0; + } + if (!((s === 0))) { + remLo = (((y$11 = s, y$11 < 32 ? (remLo >>> y$11) : 0) >>> 0) | ((y$12 = rs, y$12 < 32 ? (remHi << y$12) : 0) >>> 0)) >>> 0; + remHi = (y$13 = s, y$13 < 32 ? (remHi >>> y$13) : 0) >>> 0; + } + _tmp$4 = new $Uint64((q1$1), (q0$1)); + _tmp$5 = new $Uint64((remHi), (remLo)); + quo = _tmp$4; + rem = _tmp$5; + return [quo, rem]; + }; + $pkg.Div64 = Div64; LeadingZeros = function LeadingZeros$1(x) { var x; return 32 - Len(x) >> 0; }; $pkg.LeadingZeros = LeadingZeros; - LeadingZeros32 = function LeadingZeros32$1(x) { - var x; - return 32 - Len32(x) >> 0; - }; - $pkg.LeadingZeros32 = LeadingZeros32; - LeadingZeros64 = function LeadingZeros64$1(x) { - var x; - return 64 - Len64(x) >> 0; - }; - $pkg.LeadingZeros64 = LeadingZeros64; TrailingZeros = function TrailingZeros$1(x) { var x; if (true) { @@ -5774,34 +5762,12 @@ $packages["math/bits"] = (function() { return TrailingZeros64((new $Uint64(0, x))); }; $pkg.TrailingZeros = TrailingZeros; - TrailingZeros32 = function TrailingZeros32$1(x) { - var x, x$1; - if (x === 0) { - return 32; - } - return (((x$1 = ($imul((((x & (-x >>> 0)) >>> 0)), 125613361) >>> 0) >>> 27 >>> 0, ((x$1 < 0 || x$1 >= deBruijn32tab.length) ? ($throwRuntimeError("index out of range"), undefined) : deBruijn32tab[x$1])) >> 0)); - }; - $pkg.TrailingZeros32 = TrailingZeros32; - TrailingZeros64 = function TrailingZeros64$1(x) { - var x, x$1, x$2; - if ((x.$high === 0 && x.$low === 0)) { - return 64; - } - return (((x$1 = $shiftRightUint64($mul64(((x$2 = new $Uint64(-x.$high, -x.$low), new $Uint64(x.$high & x$2.$high, (x.$low & x$2.$low) >>> 0))), new $Uint64(66559345, 3033172745)), 58), (($flatten64(x$1) < 0 || $flatten64(x$1) >= deBruijn64tab.length) ? ($throwRuntimeError("index out of range"), undefined) : deBruijn64tab[$flatten64(x$1)])) >> 0)); - }; - $pkg.TrailingZeros64 = TrailingZeros64; RotateLeft32 = function RotateLeft32$1(x, k) { var k, s, x, y, y$1; s = (((k >>> 0)) & 31) >>> 0; return (((y = s, y < 32 ? (x << y) : 0) >>> 0) | ((y$1 = ((32 - s >>> 0)), y$1 < 32 ? (x >>> y$1) : 0) >>> 0)) >>> 0; }; $pkg.RotateLeft32 = RotateLeft32; - RotateLeft64 = function RotateLeft64$1(x, k) { - var k, s, x, x$1, x$2; - s = (((k >>> 0)) & 63) >>> 0; - return (x$1 = $shiftLeft64(x, s), x$2 = $shiftRightUint64(x, ((64 - s >>> 0))), new $Uint64(x$1.$high | x$2.$high, (x$1.$low | x$2.$low) >>> 0)); - }; - $pkg.RotateLeft64 = RotateLeft64; Reverse8 = function Reverse8$1(x) { var x; return "\x00\x80@\xC0 \xA0`\xE0\x10\x90P\xD00\xB0p\xF0\b\x88H\xC8(\xA8h\xE8\x18\x98X\xD88\xB8x\xF8\x04\x84D\xC4$\xA4d\xE4\x14\x94T\xD44\xB4t\xF4\f\x8CL\xCC,\xACl\xEC\x1C\x9C\\\xDC<\xBC|\xFC\x02\x82B\xC2\"\xA2b\xE2\x12\x92R\xD22\xB2r\xF2\n\x8AJ\xCA*\xAAj\xEA\x1A\x9AZ\xDA:\xBAz\xFA\x06\x86F\xC6&\xA6f\xE6\x16\x96V\xD66\xB6v\xF6\x0E\x8EN\xCE.\xAEn\xEE\x1E\x9E^\xDE>\xBE~\xFE\x01\x81A\xC1!\xA1a\xE1\x11\x91Q\xD11\xB1q\xF1\t\x89I\xC9)\xA9i\xE9\x19\x99Y\xD99\xB9y\xF9\x05\x85E\xC5%\xA5e\xE5\x15\x95U\xD55\xB5u\xF5\r\x8DM\xCD-\xADm\xED\x1D\x9D]\xDD=\xBD}\xFD\x03\x83C\xC3#\xA3c\xE3\x13\x93S\xD33\xB3s\xF3\v\x8BK\xCB+\xABk\xEB\x1B\x9B[\xDB;\xBB{\xFB\x07\x87G\xC7'\xA7g\xE7\x17\x97W\xD77\xB7w\xF7\x0F\x8FO\xCF/\xAFo\xEF\x1F\x9F_\xDF?\xBF\x7F\xFF".charCodeAt(x); @@ -5812,13 +5778,12 @@ $packages["math/bits"] = (function() { return ((("\x00\x80@\xC0 \xA0`\xE0\x10\x90P\xD00\xB0p\xF0\b\x88H\xC8(\xA8h\xE8\x18\x98X\xD88\xB8x\xF8\x04\x84D\xC4$\xA4d\xE4\x14\x94T\xD44\xB4t\xF4\f\x8CL\xCC,\xACl\xEC\x1C\x9C\\\xDC<\xBC|\xFC\x02\x82B\xC2\"\xA2b\xE2\x12\x92R\xD22\xB2r\xF2\n\x8AJ\xCA*\xAAj\xEA\x1A\x9AZ\xDA:\xBAz\xFA\x06\x86F\xC6&\xA6f\xE6\x16\x96V\xD66\xB6v\xF6\x0E\x8EN\xCE.\xAEn\xEE\x1E\x9E^\xDE>\xBE~\xFE\x01\x81A\xC1!\xA1a\xE1\x11\x91Q\xD11\xB1q\xF1\t\x89I\xC9)\xA9i\xE9\x19\x99Y\xD99\xB9y\xF9\x05\x85E\xC5%\xA5e\xE5\x15\x95U\xD55\xB5u\xF5\r\x8DM\xCD-\xADm\xED\x1D\x9D]\xDD=\xBD}\xFD\x03\x83C\xC3#\xA3c\xE3\x13\x93S\xD33\xB3s\xF3\v\x8BK\xCB+\xABk\xEB\x1B\x9B[\xDB;\xBB{\xFB\x07\x87G\xC7'\xA7g\xE7\x17\x97W\xD77\xB7w\xF7\x0F\x8FO\xCF/\xAFo\xEF\x1F\x9F_\xDF?\xBF\x7F\xFF".charCodeAt((x >>> 8 << 16 >>> 16)) << 16 >>> 16)) | ((("\x00\x80@\xC0 \xA0`\xE0\x10\x90P\xD00\xB0p\xF0\b\x88H\xC8(\xA8h\xE8\x18\x98X\xD88\xB8x\xF8\x04\x84D\xC4$\xA4d\xE4\x14\x94T\xD44\xB4t\xF4\f\x8CL\xCC,\xACl\xEC\x1C\x9C\\\xDC<\xBC|\xFC\x02\x82B\xC2\"\xA2b\xE2\x12\x92R\xD22\xB2r\xF2\n\x8AJ\xCA*\xAAj\xEA\x1A\x9AZ\xDA:\xBAz\xFA\x06\x86F\xC6&\xA6f\xE6\x16\x96V\xD66\xB6v\xF6\x0E\x8EN\xCE.\xAEn\xEE\x1E\x9E^\xDE>\xBE~\xFE\x01\x81A\xC1!\xA1a\xE1\x11\x91Q\xD11\xB1q\xF1\t\x89I\xC9)\xA9i\xE9\x19\x99Y\xD99\xB9y\xF9\x05\x85E\xC5%\xA5e\xE5\x15\x95U\xD55\xB5u\xF5\r\x8DM\xCD-\xADm\xED\x1D\x9D]\xDD=\xBD}\xFD\x03\x83C\xC3#\xA3c\xE3\x13\x93S\xD33\xB3s\xF3\v\x8BK\xCB+\xABk\xEB\x1B\x9B[\xDB;\xBB{\xFB\x07\x87G\xC7'\xA7g\xE7\x17\x97W\xD77\xB7w\xF7\x0F\x8FO\xCF/\xAFo\xEF\x1F\x9F_\xDF?\xBF\x7F\xFF".charCodeAt(((x & 255) >>> 0)) << 16 >>> 16)) << 8 << 16 >>> 16)) >>> 0; }; $pkg.Reverse16 = Reverse16; - ReverseBytes64 = function ReverseBytes64$1(x) { - var x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8; - x = (x$1 = (x$2 = $shiftRightUint64(x, 8), new $Uint64(x$2.$high & 16711935, (x$2.$low & 16711935) >>> 0)), x$3 = $shiftLeft64(new $Uint64(x.$high & 16711935, (x.$low & 16711935) >>> 0), 8), new $Uint64(x$1.$high | x$3.$high, (x$1.$low | x$3.$low) >>> 0)); - x = (x$4 = (x$5 = $shiftRightUint64(x, 16), new $Uint64(x$5.$high & 65535, (x$5.$low & 65535) >>> 0)), x$6 = $shiftLeft64(new $Uint64(x.$high & 65535, (x.$low & 65535) >>> 0), 16), new $Uint64(x$4.$high | x$6.$high, (x$4.$low | x$6.$low) >>> 0)); - return (x$7 = $shiftRightUint64(x, 32), x$8 = $shiftLeft64(x, 32), new $Uint64(x$7.$high | x$8.$high, (x$7.$low | x$8.$low) >>> 0)); + ReverseBytes32 = function ReverseBytes32$1(x) { + var x; + x = ((((x >>> 8 >>> 0) & 16711935) >>> 0) | (((x & 16711935) >>> 0) << 8 >>> 0)) >>> 0; + return ((x >>> 16 >>> 0) | (x << 16 >>> 0)) >>> 0; }; - $pkg.ReverseBytes64 = ReverseBytes64; + $pkg.ReverseBytes32 = ReverseBytes32; Len = function Len$1(x) { var x; if (true) { @@ -5827,40 +5792,6 @@ $packages["math/bits"] = (function() { return Len64((new $Uint64(0, x))); }; $pkg.Len = Len; - Len32 = function Len32$1(x) { - var n, x, y, y$1; - n = 0; - if (x >= 65536) { - x = (y = (16), y < 32 ? (x >>> y) : 0) >>> 0; - n = 16; - } - if (x >= 256) { - x = (y$1 = (8), y$1 < 32 ? (x >>> y$1) : 0) >>> 0; - n = n + (8) >> 0; - } - n = n + (("\x00\x01\x02\x02\x03\x03\x03\x03\x04\x04\x04\x04\x04\x04\x04\x04\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b".charCodeAt(x) >> 0)) >> 0; - return n; - }; - $pkg.Len32 = Len32; - Len64 = function Len64$1(x) { - var n, x; - n = 0; - if ((x.$high > 1 || (x.$high === 1 && x.$low >= 0))) { - x = $shiftRightUint64(x, (32)); - n = 32; - } - if ((x.$high > 0 || (x.$high === 0 && x.$low >= 65536))) { - x = $shiftRightUint64(x, (16)); - n = n + (16) >> 0; - } - if ((x.$high > 0 || (x.$high === 0 && x.$low >= 256))) { - x = $shiftRightUint64(x, (8)); - n = n + (8) >> 0; - } - n = n + (("\x00\x01\x02\x02\x03\x03\x03\x03\x04\x04\x04\x04\x04\x04\x04\x04\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b".charCodeAt($flatten64(x)) >> 0)) >> 0; - return n; - }; - $pkg.Len64 = Len64; Add = function Add$1(x, y, carry) { var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, c32, c64, carry, carryOut, s32, s64, sum, x, y; sum = 0; @@ -5885,15 +5816,6 @@ $packages["math/bits"] = (function() { return [sum, carryOut]; }; $pkg.Add = Add; - Add64 = function Add64$1(x, y, carry) { - var carry, carryOut, sum, x, x$1, x$2, x$3, x$4, y; - sum = new $Uint64(0, 0); - carryOut = new $Uint64(0, 0); - sum = (x$1 = new $Uint64(x.$high + y.$high, x.$low + y.$low), new $Uint64(x$1.$high + carry.$high, x$1.$low + carry.$low)); - carryOut = $shiftRightUint64(((x$2 = new $Uint64(x.$high & y.$high, (x.$low & y.$low) >>> 0), x$3 = (x$4 = new $Uint64(x.$high | y.$high, (x.$low | y.$low) >>> 0), new $Uint64(x$4.$high & ~sum.$high, (x$4.$low & ~sum.$low) >>> 0)), new $Uint64(x$2.$high | x$3.$high, (x$2.$low | x$3.$low) >>> 0))), 63); - return [sum, carryOut]; - }; - $pkg.Add64 = Add64; Sub = function Sub$1(x, y, borrow) { var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, b32, b64, borrow, borrowOut, d32, d64, diff, x, y; diff = 0; @@ -5927,15 +5849,6 @@ $packages["math/bits"] = (function() { return [diff, borrowOut]; }; $pkg.Sub32 = Sub32; - Sub64 = function Sub64$1(x, y, borrow) { - var borrow, borrowOut, diff, x, x$1, x$2, x$3, x$4, x$5, x$6, y; - diff = new $Uint64(0, 0); - borrowOut = new $Uint64(0, 0); - diff = (x$1 = new $Uint64(x.$high - y.$high, x.$low - y.$low), new $Uint64(x$1.$high - borrow.$high, x$1.$low - borrow.$low)); - borrowOut = $shiftRightUint64(((x$2 = (x$3 = new $Uint64(~x.$high, ~x.$low >>> 0), new $Uint64(x$3.$high & y.$high, (x$3.$low & y.$low) >>> 0)), x$4 = (x$5 = (x$6 = new $Uint64(x.$high ^ y.$high, (x.$low ^ y.$low) >>> 0), new $Uint64(~x$6.$high, ~x$6.$low >>> 0)), new $Uint64(x$5.$high & diff.$high, (x$5.$low & diff.$low) >>> 0)), new $Uint64(x$2.$high | x$4.$high, (x$2.$low | x$4.$low) >>> 0))), 63); - return [diff, borrowOut]; - }; - $pkg.Sub64 = Sub64; Mul = function Mul$1(x, y) { var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, h, h$1, hi, l, l$1, lo, x, y; hi = 0; @@ -5960,24 +5873,6 @@ $packages["math/bits"] = (function() { return [hi, lo]; }; $pkg.Mul = Mul; - Mul64 = function Mul64$1(x, y) { - var hi, lo, t, w0, w1, w2, x, x$1, x$2, x$3, x$4, x$5, x$6, x0, x1, y, y0, y1; - hi = new $Uint64(0, 0); - lo = new $Uint64(0, 0); - x0 = new $Uint64(x.$high & 0, (x.$low & 4294967295) >>> 0); - x1 = $shiftRightUint64(x, 32); - y0 = new $Uint64(y.$high & 0, (y.$low & 4294967295) >>> 0); - y1 = $shiftRightUint64(y, 32); - w0 = $mul64(x0, y0); - t = (x$1 = $mul64(x1, y0), x$2 = $shiftRightUint64(w0, 32), new $Uint64(x$1.$high + x$2.$high, x$1.$low + x$2.$low)); - w1 = new $Uint64(t.$high & 0, (t.$low & 4294967295) >>> 0); - w2 = $shiftRightUint64(t, 32); - w1 = (x$3 = $mul64(x0, y1), new $Uint64(w1.$high + x$3.$high, w1.$low + x$3.$low)); - hi = (x$4 = (x$5 = $mul64(x1, y1), new $Uint64(x$5.$high + w2.$high, x$5.$low + w2.$low)), x$6 = $shiftRightUint64(w1, 32), new $Uint64(x$4.$high + x$6.$high, x$4.$low + x$6.$low)); - lo = $mul64(x, y); - return [hi, lo]; - }; - $pkg.Mul64 = Mul64; Div = function Div$1(hi, lo, y) { var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, hi, lo, q, q$1, quo, r, r$1, rem, y; quo = 0; @@ -6002,68 +5897,14 @@ $packages["math/bits"] = (function() { return [quo, rem]; }; $pkg.Div = Div; - Div64 = function Div64$1(hi, lo, y) { - var _tmp, _tmp$1, _tmp$2, _tmp$3, hi, lo, q0, q1, quo, rem, rhat, s, un0, un1, un10, un21, un32, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$3, x$4, x$5, x$6, x$7, x$8, x$9, y, yn0, yn1; - quo = new $Uint64(0, 0); - rem = new $Uint64(0, 0); - if ((y.$high === 0 && y.$low === 0)) { - $panic(divideError); - } - if ((y.$high < hi.$high || (y.$high === hi.$high && y.$low <= hi.$low))) { - $panic(overflowError); - } - if ((hi.$high === 0 && hi.$low === 0)) { - _tmp = $div64(lo, y, false); - _tmp$1 = $div64(lo, y, true); - quo = _tmp; - rem = _tmp$1; - return [quo, rem]; - } - s = ((LeadingZeros64(y) >>> 0)); - y = $shiftLeft64(y, (s)); - yn1 = $shiftRightUint64(y, 32); - yn0 = new $Uint64(y.$high & 0, (y.$low & 4294967295) >>> 0); - un32 = (x = $shiftLeft64(hi, s), x$1 = $shiftRightUint64(lo, ((64 - s >>> 0))), new $Uint64(x.$high | x$1.$high, (x.$low | x$1.$low) >>> 0)); - un10 = $shiftLeft64(lo, s); - un1 = $shiftRightUint64(un10, 32); - un0 = new $Uint64(un10.$high & 0, (un10.$low & 4294967295) >>> 0); - q1 = $div64(un32, yn1, false); - rhat = (x$2 = $mul64(q1, yn1), new $Uint64(un32.$high - x$2.$high, un32.$low - x$2.$low)); - while (true) { - if (!((q1.$high > 1 || (q1.$high === 1 && q1.$low >= 0)) || (x$3 = $mul64(q1, yn0), x$4 = (x$5 = $mul64(new $Uint64(1, 0), rhat), new $Uint64(x$5.$high + un1.$high, x$5.$low + un1.$low)), (x$3.$high > x$4.$high || (x$3.$high === x$4.$high && x$3.$low > x$4.$low))))) { break; } - q1 = (x$6 = new $Uint64(0, 1), new $Uint64(q1.$high - x$6.$high, q1.$low - x$6.$low)); - rhat = (x$7 = yn1, new $Uint64(rhat.$high + x$7.$high, rhat.$low + x$7.$low)); - if ((rhat.$high > 1 || (rhat.$high === 1 && rhat.$low >= 0))) { - break; - } - } - un21 = (x$8 = (x$9 = $mul64(un32, new $Uint64(1, 0)), new $Uint64(x$9.$high + un1.$high, x$9.$low + un1.$low)), x$10 = $mul64(q1, y), new $Uint64(x$8.$high - x$10.$high, x$8.$low - x$10.$low)); - q0 = $div64(un21, yn1, false); - rhat = (x$11 = $mul64(q0, yn1), new $Uint64(un21.$high - x$11.$high, un21.$low - x$11.$low)); - while (true) { - if (!((q0.$high > 1 || (q0.$high === 1 && q0.$low >= 0)) || (x$12 = $mul64(q0, yn0), x$13 = (x$14 = $mul64(new $Uint64(1, 0), rhat), new $Uint64(x$14.$high + un0.$high, x$14.$low + un0.$low)), (x$12.$high > x$13.$high || (x$12.$high === x$13.$high && x$12.$low > x$13.$low))))) { break; } - q0 = (x$15 = new $Uint64(0, 1), new $Uint64(q0.$high - x$15.$high, q0.$low - x$15.$low)); - rhat = (x$16 = yn1, new $Uint64(rhat.$high + x$16.$high, rhat.$low + x$16.$low)); - if ((rhat.$high > 1 || (rhat.$high === 1 && rhat.$low >= 0))) { - break; - } - } - _tmp$2 = (x$17 = $mul64(q1, new $Uint64(1, 0)), new $Uint64(x$17.$high + q0.$high, x$17.$low + q0.$low)); - _tmp$3 = $shiftRightUint64(((x$18 = (x$19 = $mul64(un21, new $Uint64(1, 0)), new $Uint64(x$19.$high + un0.$high, x$19.$low + un0.$low)), x$20 = $mul64(q0, y), new $Uint64(x$18.$high - x$20.$high, x$18.$low - x$20.$low))), s); - quo = _tmp$2; - rem = _tmp$3; - return [quo, rem]; - }; - $pkg.Div64 = Div64; _err.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "RuntimeError", name: "RuntimeError", pkg: "", typ: $funcType([], [], false)}]; }; $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } overflowError = new _err("runtime error: integer overflow"); divideError = new _err("runtime error: integer divide by zero"); - deBruijn32tab = $toNativeArray($kindUint8, [0, 1, 28, 2, 29, 14, 24, 3, 30, 22, 20, 15, 25, 17, 4, 8, 31, 27, 13, 23, 21, 19, 16, 7, 26, 12, 18, 6, 11, 5, 10, 9]); - deBruijn64tab = $toNativeArray($kindUint8, [0, 1, 56, 2, 57, 49, 28, 3, 61, 58, 42, 50, 38, 29, 17, 4, 62, 47, 59, 36, 45, 43, 51, 22, 53, 39, 33, 30, 24, 18, 12, 5, 63, 55, 48, 27, 60, 41, 37, 16, 46, 35, 44, 21, 52, 32, 23, 11, 54, 26, 40, 15, 34, 20, 31, 10, 25, 14, 19, 9, 13, 8, 7, 6]); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; @@ -7015,7 +6856,7 @@ $packages["unicode/utf8"] = (function() { return $pkg; })(); $packages["strconv"] = (function() { - var $pkg = {}, $init, errors, js, bytealg, math, bits, utf8, floatInfo, decimalSlice, decimal, leftCheat, NumError, sliceType, sliceType$1, arrayType, sliceType$2, sliceType$3, sliceType$4, sliceType$5, sliceType$6, arrayType$1, arrayType$2, ptrType, arrayType$3, arrayType$4, arrayType$5, ptrType$1, ptrType$2, isPrint16, isNotPrint16, isPrint32, isNotPrint32, isGraphic, uint64pow10, float32info, float32info$24ptr, float64info, float64info$24ptr, detailedPowersOfTen, leftcheats, optimize, powtab, float64pow10, float32pow10, contains, quoteWith, appendQuotedWith, appendQuotedRuneWith, appendEscapedRune, Quote, AppendQuote, QuoteToASCII, AppendQuoteToASCII, AppendQuoteRune, AppendQuoteRuneToASCII, CanBackquote, unhex, UnquoteChar, Unquote, unquote, bsearch16, bsearch32, IsPrint, isInGraphicList, FormatUint, FormatInt, AppendInt, AppendUint, small, formatBits, isPowerOfTwo, Itoa, Atoi, ryuFtoaFixed32, ryuFtoaFixed64, formatDecimal, ryuFtoaShortest, mulByLog2Log10, mulByLog10Log2, computeBounds, ryuDigits, ryuDigits32, mult64bitPow10, mult128bitPow10, divisibleByPower5, divmod1e9, FormatFloat, AppendFloat, genericFtoa, bigFtoa, formatDigits, roundShortest, fmtE, fmtF, fmtB, fmtX, min, max, eiselLemire64, eiselLemire32, digitZero, trim, rightShift, prefixIsLessThan, leftShift, shouldRoundUp, index, lower, cloneString, syntaxError, rangeError, baseError, bitSizeError, ParseUint, ParseInt, underscoreOK, commonPrefixLenIgnoreCase, special, readFloat, atof64exact, atof32exact, atofHex, atof32, atof64, ParseFloat, parseFloatPrefix, FormatBool; + var $pkg = {}, $init, errors, js, bytealg, math, bits, utf8, floatInfo, decimalSlice, decimal, leftCheat, NumError, sliceType, sliceType$1, arrayType, sliceType$2, sliceType$3, sliceType$4, sliceType$5, sliceType$6, arrayType$1, arrayType$2, ptrType, arrayType$3, arrayType$4, arrayType$5, ptrType$1, ptrType$2, isPrint16, isNotPrint16, isPrint32, isNotPrint32, isGraphic, uint64pow10, float32info, float32info$24ptr, float64info, float64info$24ptr, detailedPowersOfTen, leftcheats, optimize, powtab, float64pow10, float32pow10, contains, quoteWith, appendQuotedWith, appendQuotedRuneWith, appendEscapedRune, Quote, AppendQuote, QuoteToASCII, AppendQuoteToASCII, AppendQuoteRune, AppendQuoteRuneToASCII, CanBackquote, unhex, UnquoteChar, Unquote, unquote, bsearch16, bsearch32, IsPrint, isInGraphicList, FormatUint, FormatInt, AppendInt, AppendUint, small, formatBits, isPowerOfTwo, Itoa, Atoi, ryuFtoaFixed32, ryuFtoaFixed64, formatDecimal, ryuFtoaShortest, mulByLog2Log10, mulByLog10Log2, computeBounds, ryuDigits, ryuDigits32, mult64bitPow10, mult128bitPow10, divisibleByPower5, divmod1e9, FormatFloat, AppendFloat, genericFtoa, bigFtoa, formatDigits, roundShortest, fmtE, fmtF, fmtB, fmtX, min, max, eiselLemire64, eiselLemire32, digitZero, trim, rightShift, prefixIsLessThan, leftShift, shouldRoundUp, index, lower, cloneString, syntaxError, rangeError, baseError, bitSizeError, ParseUint, ParseInt, underscoreOK, commonPrefixLenIgnoreCase, special, readFloat, atof64exact, atof32exact, atofHex, atof32, atof64, ParseFloat, parseFloatPrefix, FormatBool, AppendBool; errors = $packages["errors"]; js = $packages["github.com/gopherjs/gopherjs/js"]; bytealg = $packages["internal/bytealg"]; @@ -10276,6 +10117,14 @@ $packages["strconv"] = (function() { return "false"; }; $pkg.FormatBool = FormatBool; + AppendBool = function AppendBool$1(dst, b) { + var b, dst; + if (b) { + return $appendSlice(dst, "true"); + } + return $appendSlice(dst, "false"); + }; + $pkg.AppendBool = AppendBool; ptrType$2.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Assign", name: "Assign", pkg: "", typ: $funcType([$Uint64], [], false)}, {prop: "Shift", name: "Shift", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Round", name: "Round", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "RoundDown", name: "RoundDown", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "RoundUp", name: "RoundUp", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "RoundedInteger", name: "RoundedInteger", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "set", name: "set", pkg: "strconv", typ: $funcType([$String], [$Bool], false)}, {prop: "floatBits", name: "floatBits", pkg: "strconv", typ: $funcType([ptrType], [$Uint64, $Bool], false)}]; ptrType$1.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Unwrap", name: "Unwrap", pkg: "", typ: $funcType([], [$error], false)}]; floatInfo.init("strconv", [{prop: "mantbits", name: "mantbits", embedded: false, exported: false, typ: $Uint, tag: ""}, {prop: "expbits", name: "expbits", embedded: false, exported: false, typ: $Uint, tag: ""}, {prop: "bias", name: "bias", embedded: false, exported: false, typ: $Int, tag: ""}]); @@ -10293,10 +10142,10 @@ $packages["strconv"] = (function() { $r = math.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = bits.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = utf8.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - isPrint16 = new sliceType([32, 126, 161, 887, 890, 895, 900, 1366, 1369, 1418, 1421, 1479, 1488, 1514, 1519, 1524, 1542, 1563, 1566, 1805, 1808, 1866, 1869, 1969, 1984, 2042, 2045, 2093, 2096, 2139, 2142, 2154, 2208, 2247, 2259, 2444, 2447, 2448, 2451, 2482, 2486, 2489, 2492, 2500, 2503, 2504, 2507, 2510, 2519, 2519, 2524, 2531, 2534, 2558, 2561, 2570, 2575, 2576, 2579, 2617, 2620, 2626, 2631, 2632, 2635, 2637, 2641, 2641, 2649, 2654, 2662, 2678, 2689, 2745, 2748, 2765, 2768, 2768, 2784, 2787, 2790, 2801, 2809, 2828, 2831, 2832, 2835, 2873, 2876, 2884, 2887, 2888, 2891, 2893, 2901, 2903, 2908, 2915, 2918, 2935, 2946, 2954, 2958, 2965, 2969, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3006, 3010, 3014, 3021, 3024, 3024, 3031, 3031, 3046, 3066, 3072, 3129, 3133, 3149, 3157, 3162, 3168, 3171, 3174, 3183, 3191, 3257, 3260, 3277, 3285, 3286, 3294, 3299, 3302, 3314, 3328, 3407, 3412, 3427, 3430, 3478, 3482, 3517, 3520, 3526, 3530, 3530, 3535, 3551, 3558, 3567, 3570, 3572, 3585, 3642, 3647, 3675, 3713, 3773, 3776, 3789, 3792, 3801, 3804, 3807, 3840, 3948, 3953, 4058, 4096, 4295, 4301, 4301, 4304, 4685, 4688, 4701, 4704, 4749, 4752, 4789, 4792, 4805, 4808, 4885, 4888, 4954, 4957, 4988, 4992, 5017, 5024, 5109, 5112, 5117, 5120, 5788, 5792, 5880, 5888, 5908, 5920, 5942, 5952, 5971, 5984, 6003, 6016, 6109, 6112, 6121, 6128, 6137, 6144, 6157, 6160, 6169, 6176, 6264, 6272, 6314, 6320, 6389, 6400, 6443, 6448, 6459, 6464, 6464, 6468, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6608, 6618, 6622, 6683, 6686, 6780, 6783, 6793, 6800, 6809, 6816, 6829, 6832, 6848, 6912, 6987, 6992, 7036, 7040, 7155, 7164, 7223, 7227, 7241, 7245, 7304, 7312, 7354, 7357, 7367, 7376, 7418, 7424, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8061, 8064, 8147, 8150, 8175, 8178, 8190, 8208, 8231, 8240, 8286, 8304, 8305, 8308, 8348, 8352, 8383, 8400, 8432, 8448, 8587, 8592, 9254, 9280, 9290, 9312, 11123, 11126, 11507, 11513, 11559, 11565, 11565, 11568, 11623, 11631, 11632, 11647, 11670, 11680, 11858, 11904, 12019, 12032, 12245, 12272, 12283, 12289, 12438, 12441, 12543, 12549, 12771, 12784, 40956, 40960, 42124, 42128, 42182, 42192, 42539, 42560, 42743, 42752, 42943, 42946, 42954, 42997, 43052, 43056, 43065, 43072, 43127, 43136, 43205, 43214, 43225, 43232, 43347, 43359, 43388, 43392, 43481, 43486, 43574, 43584, 43597, 43600, 43609, 43612, 43714, 43739, 43766, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43883, 43888, 44013, 44016, 44025, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64449, 64467, 64831, 64848, 64911, 64914, 64967, 65008, 65021, 65024, 65049, 65056, 65131, 65136, 65276, 65281, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, 65504, 65518, 65532, 65533]); - isNotPrint16 = new sliceType([173, 907, 909, 930, 1328, 1424, 1757, 2111, 2143, 2229, 2274, 2436, 2473, 2481, 2526, 2564, 2601, 2609, 2612, 2615, 2621, 2653, 2692, 2702, 2706, 2729, 2737, 2740, 2758, 2762, 2816, 2820, 2857, 2865, 2868, 2910, 2948, 2961, 2971, 2973, 3017, 3085, 3089, 3113, 3141, 3145, 3159, 3213, 3217, 3241, 3252, 3269, 3273, 3295, 3312, 3341, 3345, 3397, 3401, 3456, 3460, 3506, 3516, 3541, 3543, 3715, 3717, 3723, 3748, 3750, 3781, 3783, 3912, 3992, 4029, 4045, 4294, 4681, 4695, 4697, 4745, 4785, 4799, 4801, 4823, 4881, 5760, 5901, 5997, 6001, 6431, 6751, 7674, 8024, 8026, 8028, 8030, 8117, 8133, 8156, 8181, 8335, 11158, 11311, 11359, 11558, 11687, 11695, 11703, 11711, 11719, 11727, 11735, 11743, 11930, 12352, 12592, 12687, 12831, 43470, 43519, 43815, 43823, 64311, 64317, 64319, 64322, 64325, 65107, 65127, 65141, 65511]); - isPrint32 = new sliceType$1([65536, 65613, 65616, 65629, 65664, 65786, 65792, 65794, 65799, 65843, 65847, 65948, 65952, 65952, 66000, 66045, 66176, 66204, 66208, 66256, 66272, 66299, 66304, 66339, 66349, 66378, 66384, 66426, 66432, 66499, 66504, 66517, 66560, 66717, 66720, 66729, 66736, 66771, 66776, 66811, 66816, 66855, 66864, 66915, 66927, 66927, 67072, 67382, 67392, 67413, 67424, 67431, 67584, 67589, 67592, 67640, 67644, 67644, 67647, 67742, 67751, 67759, 67808, 67829, 67835, 67867, 67871, 67897, 67903, 67903, 67968, 68023, 68028, 68047, 68050, 68102, 68108, 68149, 68152, 68154, 68159, 68168, 68176, 68184, 68192, 68255, 68288, 68326, 68331, 68342, 68352, 68405, 68409, 68437, 68440, 68466, 68472, 68497, 68505, 68508, 68521, 68527, 68608, 68680, 68736, 68786, 68800, 68850, 68858, 68903, 68912, 68921, 69216, 69293, 69296, 69297, 69376, 69415, 69424, 69465, 69552, 69579, 69600, 69622, 69632, 69709, 69714, 69743, 69759, 69825, 69840, 69864, 69872, 69881, 69888, 69959, 69968, 70006, 70016, 70132, 70144, 70206, 70272, 70313, 70320, 70378, 70384, 70393, 70400, 70412, 70415, 70416, 70419, 70468, 70471, 70472, 70475, 70477, 70480, 70480, 70487, 70487, 70493, 70499, 70502, 70508, 70512, 70516, 70656, 70753, 70784, 70855, 70864, 70873, 71040, 71093, 71096, 71133, 71168, 71236, 71248, 71257, 71264, 71276, 71296, 71352, 71360, 71369, 71424, 71450, 71453, 71467, 71472, 71487, 71680, 71739, 71840, 71922, 71935, 71942, 71945, 71945, 71948, 71992, 71995, 72006, 72016, 72025, 72096, 72103, 72106, 72151, 72154, 72164, 72192, 72263, 72272, 72354, 72384, 72440, 72704, 72773, 72784, 72812, 72816, 72847, 72850, 72886, 72960, 73014, 73018, 73031, 73040, 73049, 73056, 73112, 73120, 73129, 73440, 73464, 73648, 73648, 73664, 73713, 73727, 74649, 74752, 74868, 74880, 75075, 77824, 78894, 82944, 83526, 92160, 92728, 92736, 92777, 92782, 92783, 92880, 92909, 92912, 92917, 92928, 92997, 93008, 93047, 93053, 93071, 93760, 93850, 93952, 94026, 94031, 94087, 94095, 94111, 94176, 94180, 94192, 94193, 94208, 100343, 100352, 101589, 101632, 101640, 110592, 110878, 110928, 110930, 110948, 110951, 110960, 111355, 113664, 113770, 113776, 113788, 113792, 113800, 113808, 113817, 113820, 113823, 118784, 119029, 119040, 119078, 119081, 119154, 119163, 119272, 119296, 119365, 119520, 119539, 119552, 119638, 119648, 119672, 119808, 119967, 119970, 119970, 119973, 119974, 119977, 120074, 120077, 120134, 120138, 120485, 120488, 120779, 120782, 121483, 121499, 121519, 122880, 122904, 122907, 122922, 123136, 123180, 123184, 123197, 123200, 123209, 123214, 123215, 123584, 123641, 123647, 123647, 124928, 125124, 125127, 125142, 125184, 125259, 125264, 125273, 125278, 125279, 126065, 126132, 126209, 126269, 126464, 126500, 126503, 126523, 126530, 126530, 126535, 126548, 126551, 126564, 126567, 126619, 126625, 126651, 126704, 126705, 126976, 127019, 127024, 127123, 127136, 127150, 127153, 127221, 127232, 127405, 127462, 127490, 127504, 127547, 127552, 127560, 127568, 127569, 127584, 127589, 127744, 128727, 128736, 128748, 128752, 128764, 128768, 128883, 128896, 128984, 128992, 129003, 129024, 129035, 129040, 129095, 129104, 129113, 129120, 129159, 129168, 129197, 129200, 129201, 129280, 129619, 129632, 129645, 129648, 129652, 129656, 129658, 129664, 129670, 129680, 129704, 129712, 129718, 129728, 129730, 129744, 129750, 129792, 129994, 130032, 130041, 131072, 173789, 173824, 177972, 177984, 178205, 178208, 183969, 183984, 191456, 194560, 195101, 196608, 201546, 917760, 917999]); - isNotPrint32 = new sliceType([12, 39, 59, 62, 399, 926, 2057, 2102, 2134, 2291, 2564, 2580, 2584, 3711, 3754, 4285, 4405, 4576, 4626, 4743, 4745, 4750, 4766, 4868, 4905, 4913, 4916, 4922, 5212, 6420, 6423, 6454, 7177, 7223, 7336, 7431, 7434, 7483, 7486, 7526, 7529, 7567, 7570, 9327, 27231, 27482, 27490, 54357, 54429, 54445, 54458, 54460, 54468, 54534, 54549, 54557, 54586, 54591, 54597, 54609, 55968, 57351, 57378, 57381, 60932, 60960, 60963, 60968, 60979, 60984, 60986, 61000, 61002, 61004, 61008, 61011, 61016, 61018, 61020, 61022, 61024, 61027, 61035, 61043, 61048, 61053, 61055, 61066, 61092, 61098, 61632, 61648, 63865, 63948, 64403]); + isPrint16 = new sliceType([32, 126, 161, 887, 890, 895, 900, 1366, 1369, 1418, 1421, 1479, 1488, 1514, 1519, 1524, 1542, 1805, 1808, 1866, 1869, 1969, 1984, 2042, 2045, 2093, 2096, 2139, 2142, 2154, 2160, 2190, 2200, 2444, 2447, 2448, 2451, 2482, 2486, 2489, 2492, 2500, 2503, 2504, 2507, 2510, 2519, 2519, 2524, 2531, 2534, 2558, 2561, 2570, 2575, 2576, 2579, 2617, 2620, 2626, 2631, 2632, 2635, 2637, 2641, 2641, 2649, 2654, 2662, 2678, 2689, 2745, 2748, 2765, 2768, 2768, 2784, 2787, 2790, 2801, 2809, 2828, 2831, 2832, 2835, 2873, 2876, 2884, 2887, 2888, 2891, 2893, 2901, 2903, 2908, 2915, 2918, 2935, 2946, 2954, 2958, 2965, 2969, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3006, 3010, 3014, 3021, 3024, 3024, 3031, 3031, 3046, 3066, 3072, 3129, 3132, 3149, 3157, 3162, 3165, 3165, 3168, 3171, 3174, 3183, 3191, 3257, 3260, 3277, 3285, 3286, 3293, 3299, 3302, 3315, 3328, 3407, 3412, 3427, 3430, 3478, 3482, 3517, 3520, 3526, 3530, 3530, 3535, 3551, 3558, 3567, 3570, 3572, 3585, 3642, 3647, 3675, 3713, 3773, 3776, 3801, 3804, 3807, 3840, 3948, 3953, 4058, 4096, 4295, 4301, 4301, 4304, 4685, 4688, 4701, 4704, 4749, 4752, 4789, 4792, 4805, 4808, 4885, 4888, 4954, 4957, 4988, 4992, 5017, 5024, 5109, 5112, 5117, 5120, 5788, 5792, 5880, 5888, 5909, 5919, 5942, 5952, 5971, 5984, 6003, 6016, 6109, 6112, 6121, 6128, 6137, 6144, 6169, 6176, 6264, 6272, 6314, 6320, 6389, 6400, 6443, 6448, 6459, 6464, 6464, 6468, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6608, 6618, 6622, 6683, 6686, 6780, 6783, 6793, 6800, 6809, 6816, 6829, 6832, 6862, 6912, 6988, 6992, 7155, 7164, 7223, 7227, 7241, 7245, 7304, 7312, 7354, 7357, 7367, 7376, 7418, 7424, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8061, 8064, 8147, 8150, 8175, 8178, 8190, 8208, 8231, 8240, 8286, 8304, 8305, 8308, 8348, 8352, 8384, 8400, 8432, 8448, 8587, 8592, 9254, 9280, 9290, 9312, 11123, 11126, 11507, 11513, 11559, 11565, 11565, 11568, 11623, 11631, 11632, 11647, 11670, 11680, 11869, 11904, 12019, 12032, 12245, 12272, 12283, 12289, 12438, 12441, 12543, 12549, 12771, 12784, 42124, 42128, 42182, 42192, 42539, 42560, 42743, 42752, 42954, 42960, 42969, 42994, 43052, 43056, 43065, 43072, 43127, 43136, 43205, 43214, 43225, 43232, 43347, 43359, 43388, 43392, 43481, 43486, 43574, 43584, 43597, 43600, 43609, 43612, 43714, 43739, 43766, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43883, 43888, 44013, 44016, 44025, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64450, 64467, 64911, 64914, 64967, 64975, 64975, 65008, 65049, 65056, 65131, 65136, 65276, 65281, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, 65504, 65518, 65532, 65533]); + isNotPrint16 = new sliceType([173, 907, 909, 930, 1328, 1424, 1564, 1757, 2111, 2143, 2274, 2436, 2473, 2481, 2526, 2564, 2601, 2609, 2612, 2615, 2621, 2653, 2692, 2702, 2706, 2729, 2737, 2740, 2758, 2762, 2816, 2820, 2857, 2865, 2868, 2910, 2948, 2961, 2971, 2973, 3017, 3085, 3089, 3113, 3141, 3145, 3159, 3213, 3217, 3241, 3252, 3269, 3273, 3295, 3312, 3341, 3345, 3397, 3401, 3456, 3460, 3506, 3516, 3541, 3543, 3715, 3717, 3723, 3748, 3750, 3781, 3783, 3791, 3912, 3992, 4029, 4045, 4294, 4681, 4695, 4697, 4745, 4785, 4799, 4801, 4823, 4881, 5760, 5997, 6001, 6158, 6431, 6751, 7039, 8024, 8026, 8028, 8030, 8117, 8133, 8156, 8181, 8335, 11158, 11558, 11687, 11695, 11703, 11711, 11719, 11727, 11735, 11743, 11930, 12352, 12592, 12687, 12831, 42962, 42964, 43470, 43519, 43815, 43823, 64311, 64317, 64319, 64322, 64325, 65107, 65127, 65141, 65511]); + isPrint32 = new sliceType$1([65536, 65613, 65616, 65629, 65664, 65786, 65792, 65794, 65799, 65843, 65847, 65948, 65952, 65952, 66000, 66045, 66176, 66204, 66208, 66256, 66272, 66299, 66304, 66339, 66349, 66378, 66384, 66426, 66432, 66499, 66504, 66517, 66560, 66717, 66720, 66729, 66736, 66771, 66776, 66811, 66816, 66855, 66864, 66915, 66927, 67004, 67072, 67382, 67392, 67413, 67424, 67431, 67456, 67514, 67584, 67589, 67592, 67640, 67644, 67644, 67647, 67742, 67751, 67759, 67808, 67829, 67835, 67867, 67871, 67897, 67903, 67903, 67968, 68023, 68028, 68047, 68050, 68102, 68108, 68149, 68152, 68154, 68159, 68168, 68176, 68184, 68192, 68255, 68288, 68326, 68331, 68342, 68352, 68405, 68409, 68437, 68440, 68466, 68472, 68497, 68505, 68508, 68521, 68527, 68608, 68680, 68736, 68786, 68800, 68850, 68858, 68903, 68912, 68921, 69216, 69293, 69296, 69297, 69373, 69415, 69424, 69465, 69488, 69513, 69552, 69579, 69600, 69622, 69632, 69709, 69714, 69749, 69759, 69826, 69840, 69864, 69872, 69881, 69888, 69959, 69968, 70006, 70016, 70132, 70144, 70209, 70272, 70313, 70320, 70378, 70384, 70393, 70400, 70412, 70415, 70416, 70419, 70468, 70471, 70472, 70475, 70477, 70480, 70480, 70487, 70487, 70493, 70499, 70502, 70508, 70512, 70516, 70656, 70753, 70784, 70855, 70864, 70873, 71040, 71093, 71096, 71133, 71168, 71236, 71248, 71257, 71264, 71276, 71296, 71353, 71360, 71369, 71424, 71450, 71453, 71467, 71472, 71494, 71680, 71739, 71840, 71922, 71935, 71942, 71945, 71945, 71948, 71992, 71995, 72006, 72016, 72025, 72096, 72103, 72106, 72151, 72154, 72164, 72192, 72263, 72272, 72354, 72368, 72440, 72448, 72457, 72704, 72773, 72784, 72812, 72816, 72847, 72850, 72886, 72960, 73014, 73018, 73031, 73040, 73049, 73056, 73112, 73120, 73129, 73440, 73464, 73472, 73530, 73534, 73561, 73648, 73648, 73664, 73713, 73727, 74649, 74752, 74868, 74880, 75075, 77712, 77810, 77824, 78895, 78912, 78933, 82944, 83526, 92160, 92728, 92736, 92777, 92782, 92873, 92880, 92909, 92912, 92917, 92928, 92997, 93008, 93047, 93053, 93071, 93760, 93850, 93952, 94026, 94031, 94087, 94095, 94111, 94176, 94180, 94192, 94193, 94208, 100343, 100352, 101589, 101632, 101640, 110576, 110882, 110898, 110898, 110928, 110930, 110933, 110933, 110948, 110951, 110960, 111355, 113664, 113770, 113776, 113788, 113792, 113800, 113808, 113817, 113820, 113823, 118528, 118573, 118576, 118598, 118608, 118723, 118784, 119029, 119040, 119078, 119081, 119154, 119163, 119274, 119296, 119365, 119488, 119507, 119520, 119539, 119552, 119638, 119648, 119672, 119808, 119967, 119970, 119970, 119973, 119974, 119977, 120074, 120077, 120134, 120138, 120485, 120488, 120779, 120782, 121483, 121499, 121519, 122624, 122654, 122661, 122666, 122880, 122904, 122907, 122922, 122928, 122989, 123023, 123023, 123136, 123180, 123184, 123197, 123200, 123209, 123214, 123215, 123536, 123566, 123584, 123641, 123647, 123647, 124112, 124153, 124896, 125124, 125127, 125142, 125184, 125259, 125264, 125273, 125278, 125279, 126065, 126132, 126209, 126269, 126464, 126500, 126503, 126523, 126530, 126530, 126535, 126548, 126551, 126564, 126567, 126619, 126625, 126651, 126704, 126705, 126976, 127019, 127024, 127123, 127136, 127150, 127153, 127221, 127232, 127405, 127462, 127490, 127504, 127547, 127552, 127560, 127568, 127569, 127584, 127589, 127744, 128727, 128732, 128748, 128752, 128764, 128768, 128886, 128891, 128985, 128992, 129003, 129008, 129008, 129024, 129035, 129040, 129095, 129104, 129113, 129120, 129159, 129168, 129197, 129200, 129201, 129280, 129619, 129632, 129645, 129648, 129660, 129664, 129672, 129680, 129733, 129742, 129755, 129760, 129768, 129776, 129784, 129792, 129994, 130032, 130041, 131072, 173791, 173824, 177977, 177984, 178205, 178208, 183969, 183984, 191456, 194560, 195101, 196608, 201546, 201552, 205743, 917760, 917999]); + isNotPrint32 = new sliceType([12, 39, 59, 62, 399, 926, 1403, 1419, 1427, 1430, 1442, 1458, 1466, 1926, 1969, 2057, 2102, 2134, 2291, 2564, 2580, 2584, 3711, 3754, 4285, 4405, 4576, 4626, 4743, 4745, 4750, 4766, 4868, 4905, 4913, 4916, 4922, 5212, 6420, 6423, 6454, 7177, 7223, 7336, 7431, 7434, 7483, 7486, 7526, 7529, 7567, 7570, 7953, 9327, 27231, 27327, 27482, 27490, 45044, 45052, 45055, 54357, 54429, 54445, 54458, 54460, 54468, 54534, 54549, 54557, 54586, 54591, 54597, 54609, 55968, 57351, 57378, 57381, 59367, 59372, 59375, 59391, 60932, 60960, 60963, 60968, 60979, 60984, 60986, 61000, 61002, 61004, 61008, 61011, 61016, 61018, 61020, 61022, 61024, 61027, 61035, 61043, 61048, 61053, 61055, 61066, 61092, 61098, 61632, 61648, 64190, 64403]); isGraphic = new sliceType([160, 5760, 8192, 8193, 8194, 8195, 8196, 8197, 8198, 8199, 8200, 8201, 8202, 8239, 8287, 12288]); uint64pow10 = $toNativeArray($kindUint64, [new $Uint64(0, 1), new $Uint64(0, 10), new $Uint64(0, 100), new $Uint64(0, 1000), new $Uint64(0, 10000), new $Uint64(0, 100000), new $Uint64(0, 1000000), new $Uint64(0, 10000000), new $Uint64(0, 100000000), new $Uint64(0, 1000000000), new $Uint64(2, 1410065408), new $Uint64(23, 1215752192), new $Uint64(232, 3567587328), new $Uint64(2328, 1316134912), new $Uint64(23283, 276447232), new $Uint64(232830, 2764472320), new $Uint64(2328306, 1874919424), new $Uint64(23283064, 1569325056), new $Uint64(232830643, 2808348672), new $Uint64(2328306436, 2313682944)]); float32info = new floatInfo.ptr(23, 8, -127); @@ -10345,7 +10194,7 @@ $packages["internal/race"] = (function() { return $pkg; })(); $packages["sync/atomic"] = (function() { - var $pkg = {}, $init, js, Value, Bool, Int32, Int64, Uint64, noCopy, align64, Pointer = [], ptrType$1, ptrType$2, ptrType$3, ptrType$4, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, ptrType$11, ptrType$12, ptrType$13, ptrType$14, ptrType$15, ptrType$17, ptrType$19, ptrType$20, ptrType$21, ptrType$22, ptrType$23, ptrType$24, ptrType$25, b32, SwapInt32, SwapInt64, SwapUint32, SwapUint64, CompareAndSwapInt32, CompareAndSwapInt64, CompareAndSwapUint32, CompareAndSwapUint64, AddInt32, AddUint32, AddInt64, AddUint64, LoadInt32, LoadInt64, LoadUint32, LoadUint64, StoreInt32, StoreInt64, StoreUint32, StoreUint64, sameType; + var $pkg = {}, $init, js, Value, Bool, Int32, Int64, Uint64, noCopy, align64, Pointer = [], ptrType$1, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$8, ptrType$9, ptrType$12, ptrType$13, ptrType$14, ptrType$15, ptrType$16, ptrType$17, ptrType$18, ptrType$19, ptrType$20, ptrType$21, ptrType$22, ptrType$23, ptrType$24, ptrType$25, ptrType$26, ptrType$27, ptrType$28, ptrType$29, b32, SwapInt32, SwapInt64, SwapUint32, SwapUint64, CompareAndSwapInt32, CompareAndSwapInt64, CompareAndSwapUint32, CompareAndSwapUint64, CompareAndSwapPointer, AddInt32, AddUint32, AddInt64, AddUint64, LoadInt32, LoadInt64, LoadUint32, LoadUint64, LoadPointer, StoreInt32, StoreInt64, StoreUint32, StoreUint64, sameType; js = $packages["github.com/gopherjs/gopherjs/js"]; Value = $newType(0, $kindStruct, "atomic.Value", true, "sync/atomic", true, function(v_) { this.$val = this; @@ -10404,7 +10253,7 @@ $packages["sync/atomic"] = (function() { Pointer[0 /* encoding/gob.encEngine */] = $newType(0, $kindStruct, "atomic.Pointer[encoding/gob.encEngine]", true, "sync/atomic", true, function(v_) { this.$val = this; if (arguments.length === 0) { - this.v = ptrType$6.nil; + this.v = ptrType$12.nil; return; } this.v = v_; @@ -10412,39 +10261,55 @@ $packages["sync/atomic"] = (function() { Pointer[5 /* go/token.File */] = $newType(0, $kindStruct, "atomic.Pointer[go/token.File]", true, "sync/atomic", true, function(v_) { this.$val = this; if (arguments.length === 0) { - this.v = ptrType$7.nil; + this.v = ptrType$13.nil; return; } this.v = v_; }); - Pointer[10 /* string */] = $newType(0, $kindStruct, "atomic.Pointer[string]", true, "sync/atomic", true, function(v_) { + Pointer[10 /* internal/godebug.value */] = $newType(0, $kindStruct, "atomic.Pointer[internal/godebug.value]", true, "sync/atomic", true, function(v_) { this.$val = this; if (arguments.length === 0) { - this.v = ptrType$8.nil; + this.v = ptrType$14.nil; return; } this.v = v_; }); - Pointer[15 /* net/http.response */] = $newType(0, $kindStruct, "atomic.Pointer[net/http.response]", true, "sync/atomic", true, function(v_) { + Pointer[15 /* string */] = $newType(0, $kindStruct, "atomic.Pointer[string]", true, "sync/atomic", true, function(v_) { this.$val = this; if (arguments.length === 0) { - this.v = ptrType$9.nil; + this.v = ptrType$15.nil; return; } this.v = v_; }); - Pointer[20 /* sync.readOnly */] = $newType(0, $kindStruct, "atomic.Pointer[sync.readOnly]", true, "sync/atomic", true, function(v_) { + Pointer[20 /* math/rand.Rand */] = $newType(0, $kindStruct, "atomic.Pointer[math/rand.Rand]", true, "sync/atomic", true, function(v_) { this.$val = this; if (arguments.length === 0) { - this.v = ptrType$10.nil; + this.v = ptrType$16.nil; return; } this.v = v_; }); - Pointer[25 /* any */] = $newType(0, $kindStruct, "atomic.Pointer[any]", true, "sync/atomic", true, function(v_) { + Pointer[25 /* net/http.response */] = $newType(0, $kindStruct, "atomic.Pointer[net/http.response]", true, "sync/atomic", true, function(v_) { this.$val = this; if (arguments.length === 0) { - this.v = ptrType$11.nil; + this.v = ptrType$17.nil; + return; + } + this.v = v_; + }); + Pointer[30 /* sync.readOnly */] = $newType(0, $kindStruct, "atomic.Pointer[sync.readOnly]", true, "sync/atomic", true, function(v_) { + this.$val = this; + if (arguments.length === 0) { + this.v = ptrType$18.nil; + return; + } + this.v = v_; + }); + Pointer[35 /* any */] = $newType(0, $kindStruct, "atomic.Pointer[any]", true, "sync/atomic", true, function(v_) { + this.$val = this; + if (arguments.length === 0) { + this.v = ptrType$19.nil; return; } this.v = v_; @@ -10458,50 +10323,54 @@ $packages["sync/atomic"] = (function() { $pkg.align64 = align64; $pkg.Pointer = Pointer; $pkg.$finishSetup = function() { - ptrType$1 = $ptrType($Uint32); - ptrType$2 = $ptrType($Int32); - ptrType$3 = $ptrType($Int64); - ptrType$4 = $ptrType($Uint64); - ptrType$6 = $ptrType($packages["encoding/gob"].encEngine); - ptrType$7 = $ptrType($packages["go/token"].File); - ptrType$8 = $ptrType($String); - ptrType$9 = $ptrType($packages["net/http"].response); - ptrType$10 = $ptrType($packages["sync"].readOnly); - ptrType$11 = $ptrType($emptyInterface); - ptrType$12 = $ptrType(Value); - ptrType$13 = $ptrType(Bool); - ptrType$14 = $ptrType(Int32); - ptrType$15 = $ptrType(Int64); - ptrType$17 = $ptrType(Uint64); - ptrType$19 = $ptrType(noCopy); - ptrType$20 = $ptrType(Pointer[0 /* encoding/gob.encEngine */]); - ptrType$21 = $ptrType(Pointer[5 /* go/token.File */]); - ptrType$22 = $ptrType(Pointer[10 /* string */]); - ptrType$23 = $ptrType(Pointer[15 /* net/http.response */]); - ptrType$24 = $ptrType(Pointer[20 /* sync.readOnly */]); - ptrType$25 = $ptrType(Pointer[25 /* any */]); + ptrType$1 = $ptrType(Bool); + ptrType$2 = $ptrType($Uint32); + ptrType$3 = $ptrType(Int32); + ptrType$4 = $ptrType($Int32); + ptrType$5 = $ptrType(Int64); + ptrType$6 = $ptrType($Int64); + ptrType$8 = $ptrType(Uint64); + ptrType$9 = $ptrType($Uint64); + ptrType$12 = $ptrType($packages["encoding/gob"].encEngine); + ptrType$13 = $ptrType($packages["go/token"].File); + ptrType$14 = $ptrType($packages["internal/godebug"].value); + ptrType$15 = $ptrType($String); + ptrType$16 = $ptrType($packages["math/rand"].Rand); + ptrType$17 = $ptrType($packages["net/http"].response); + ptrType$18 = $ptrType($packages["sync"].readOnly); + ptrType$19 = $ptrType($emptyInterface); + ptrType$20 = $ptrType(Value); + ptrType$21 = $ptrType(noCopy); + ptrType$22 = $ptrType(Pointer[0 /* encoding/gob.encEngine */]); + ptrType$23 = $ptrType(Pointer[5 /* go/token.File */]); + ptrType$24 = $ptrType(Pointer[10 /* internal/godebug.value */]); + ptrType$25 = $ptrType(Pointer[15 /* string */]); + ptrType$26 = $ptrType(Pointer[20 /* math/rand.Rand */]); + ptrType$27 = $ptrType(Pointer[25 /* net/http.response */]); + ptrType$28 = $ptrType(Pointer[30 /* sync.readOnly */]); + ptrType$29 = $ptrType(Pointer[35 /* any */]); $ptrType(Bool).prototype.Load = function Load() { var x; x = this; - return !((LoadUint32((x.$ptr_v || (x.$ptr_v = new ptrType$1(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x)))) === 0)); + return !((LoadUint32((x === ptrType$1.nil && $throwNilPointerError(), (x.$ptr_v || (x.$ptr_v = new ptrType$2(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x))))) === 0)); }; $ptrType(Bool).prototype.Store = function Store(val) { var val, x; x = this; - StoreUint32((x.$ptr_v || (x.$ptr_v = new ptrType$1(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x))), b32(val)); + StoreUint32((x === ptrType$1.nil && $throwNilPointerError(), (x.$ptr_v || (x.$ptr_v = new ptrType$2(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x)))), b32(val)); }; $ptrType(Bool).prototype.Swap = function Swap(new$1) { var new$1, old, x; old = false; x = this; - old = !((SwapUint32((x.$ptr_v || (x.$ptr_v = new ptrType$1(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x))), b32(new$1)) === 0)); + old = !((SwapUint32((x === ptrType$1.nil && $throwNilPointerError(), (x.$ptr_v || (x.$ptr_v = new ptrType$2(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x)))), b32(new$1)) === 0)); return old; }; $ptrType(Bool).prototype.CompareAndSwap = function CompareAndSwap(old, new$1) { var new$1, old, swapped, x; swapped = false; x = this; - swapped = CompareAndSwapUint32((x.$ptr_v || (x.$ptr_v = new ptrType$1(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x))), b32(old), b32(new$1)); + swapped = CompareAndSwapUint32((x === ptrType$1.nil && $throwNilPointerError(), (x.$ptr_v || (x.$ptr_v = new ptrType$2(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x)))), b32(old), b32(new$1)); return swapped; }; b32 = function b32$1(b) { @@ -10514,94 +10383,94 @@ $packages["sync/atomic"] = (function() { $ptrType(Int32).prototype.Load = function Load$1() { var x; x = this; - return LoadInt32((x.$ptr_v || (x.$ptr_v = new ptrType$2(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x)))); + return LoadInt32((x === ptrType$3.nil && $throwNilPointerError(), (x.$ptr_v || (x.$ptr_v = new ptrType$4(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x))))); }; $ptrType(Int32).prototype.Store = function Store$1(val) { var val, x; x = this; - StoreInt32((x.$ptr_v || (x.$ptr_v = new ptrType$2(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x))), val); + StoreInt32((x === ptrType$3.nil && $throwNilPointerError(), (x.$ptr_v || (x.$ptr_v = new ptrType$4(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x)))), val); }; $ptrType(Int32).prototype.Swap = function Swap$1(new$1) { var new$1, old, x; old = 0; x = this; - old = SwapInt32((x.$ptr_v || (x.$ptr_v = new ptrType$2(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x))), new$1); + old = SwapInt32((x === ptrType$3.nil && $throwNilPointerError(), (x.$ptr_v || (x.$ptr_v = new ptrType$4(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x)))), new$1); return old; }; $ptrType(Int32).prototype.CompareAndSwap = function CompareAndSwap$1(old, new$1) { var new$1, old, swapped, x; swapped = false; x = this; - swapped = CompareAndSwapInt32((x.$ptr_v || (x.$ptr_v = new ptrType$2(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x))), old, new$1); + swapped = CompareAndSwapInt32((x === ptrType$3.nil && $throwNilPointerError(), (x.$ptr_v || (x.$ptr_v = new ptrType$4(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x)))), old, new$1); return swapped; }; $ptrType(Int32).prototype.Add = function Add(delta) { var delta, new$1, x; new$1 = 0; x = this; - new$1 = AddInt32((x.$ptr_v || (x.$ptr_v = new ptrType$2(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x))), delta); + new$1 = AddInt32((x === ptrType$3.nil && $throwNilPointerError(), (x.$ptr_v || (x.$ptr_v = new ptrType$4(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x)))), delta); return new$1; }; $ptrType(Int64).prototype.Load = function Load$2() { var x; x = this; - return LoadInt64((x.$ptr_v || (x.$ptr_v = new ptrType$3(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x)))); + return LoadInt64((x === ptrType$5.nil && $throwNilPointerError(), (x.$ptr_v || (x.$ptr_v = new ptrType$6(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x))))); }; $ptrType(Int64).prototype.Store = function Store$2(val) { var val, x; x = this; - StoreInt64((x.$ptr_v || (x.$ptr_v = new ptrType$3(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x))), val); + StoreInt64((x === ptrType$5.nil && $throwNilPointerError(), (x.$ptr_v || (x.$ptr_v = new ptrType$6(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x)))), val); }; $ptrType(Int64).prototype.Swap = function Swap$2(new$1) { var new$1, old, x; old = new $Int64(0, 0); x = this; - old = SwapInt64((x.$ptr_v || (x.$ptr_v = new ptrType$3(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x))), new$1); + old = SwapInt64((x === ptrType$5.nil && $throwNilPointerError(), (x.$ptr_v || (x.$ptr_v = new ptrType$6(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x)))), new$1); return old; }; $ptrType(Int64).prototype.CompareAndSwap = function CompareAndSwap$2(old, new$1) { var new$1, old, swapped, x; swapped = false; x = this; - swapped = CompareAndSwapInt64((x.$ptr_v || (x.$ptr_v = new ptrType$3(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x))), old, new$1); + swapped = CompareAndSwapInt64((x === ptrType$5.nil && $throwNilPointerError(), (x.$ptr_v || (x.$ptr_v = new ptrType$6(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x)))), old, new$1); return swapped; }; $ptrType(Int64).prototype.Add = function Add$1(delta) { var delta, new$1, x; new$1 = new $Int64(0, 0); x = this; - new$1 = AddInt64((x.$ptr_v || (x.$ptr_v = new ptrType$3(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x))), delta); + new$1 = AddInt64((x === ptrType$5.nil && $throwNilPointerError(), (x.$ptr_v || (x.$ptr_v = new ptrType$6(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x)))), delta); return new$1; }; $ptrType(Uint64).prototype.Load = function Load$4() { var x; x = this; - return LoadUint64((x.$ptr_v || (x.$ptr_v = new ptrType$4(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x)))); + return LoadUint64((x === ptrType$8.nil && $throwNilPointerError(), (x.$ptr_v || (x.$ptr_v = new ptrType$9(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x))))); }; $ptrType(Uint64).prototype.Store = function Store$4(val) { var val, x; x = this; - StoreUint64((x.$ptr_v || (x.$ptr_v = new ptrType$4(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x))), val); + StoreUint64((x === ptrType$8.nil && $throwNilPointerError(), (x.$ptr_v || (x.$ptr_v = new ptrType$9(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x)))), val); }; $ptrType(Uint64).prototype.Swap = function Swap$4(new$1) { var new$1, old, x; old = new $Uint64(0, 0); x = this; - old = SwapUint64((x.$ptr_v || (x.$ptr_v = new ptrType$4(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x))), new$1); + old = SwapUint64((x === ptrType$8.nil && $throwNilPointerError(), (x.$ptr_v || (x.$ptr_v = new ptrType$9(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x)))), new$1); return old; }; $ptrType(Uint64).prototype.CompareAndSwap = function CompareAndSwap$4(old, new$1) { var new$1, old, swapped, x; swapped = false; x = this; - swapped = CompareAndSwapUint64((x.$ptr_v || (x.$ptr_v = new ptrType$4(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x))), old, new$1); + swapped = CompareAndSwapUint64((x === ptrType$8.nil && $throwNilPointerError(), (x.$ptr_v || (x.$ptr_v = new ptrType$9(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x)))), old, new$1); return swapped; }; $ptrType(Uint64).prototype.Add = function Add$3(delta) { var delta, new$1, x; new$1 = new $Uint64(0, 0); x = this; - new$1 = AddUint64((x.$ptr_v || (x.$ptr_v = new ptrType$4(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x))), delta); + new$1 = AddUint64((x === ptrType$8.nil && $throwNilPointerError(), (x.$ptr_v || (x.$ptr_v = new ptrType$9(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x)))), delta); return new$1; }; $ptrType(noCopy).prototype.Lock = function Lock() { @@ -10672,6 +10541,15 @@ $packages["sync/atomic"] = (function() { return false; }; $pkg.CompareAndSwapUint64 = CompareAndSwapUint64; + CompareAndSwapPointer = function CompareAndSwapPointer$1(addr, old, new$1) { + var addr, new$1, old; + if (addr.$get() === old) { + addr.$set(new$1); + return true; + } + return false; + }; + $pkg.CompareAndSwapPointer = CompareAndSwapPointer; AddInt32 = function AddInt32$1(addr, delta) { var addr, delta, new$1; new$1 = addr.$get() + delta >> 0; @@ -10720,6 +10598,11 @@ $packages["sync/atomic"] = (function() { return addr.$get(); }; $pkg.LoadUint64 = LoadUint64; + LoadPointer = function LoadPointer$1(addr) { + var addr; + return addr.$get(); + }; + $pkg.LoadPointer = LoadPointer; StoreInt32 = function StoreInt32$1(addr, val) { var addr, val; addr.$set(val); @@ -10805,22 +10688,32 @@ $packages["sync/atomic"] = (function() { x = this; return x.v; }; - $ptrType(Pointer[10 /* string */]).prototype.Load = function Load$9() { + $ptrType(Pointer[10 /* internal/godebug.value */]).prototype.Load = function Load$9() { + var x; + x = this; + return x.v; + }; + $ptrType(Pointer[15 /* string */]).prototype.Load = function Load$10() { var x; x = this; return x.v; }; - $ptrType(Pointer[15 /* net/http.response */]).prototype.Load = function Load$10() { + $ptrType(Pointer[20 /* math/rand.Rand */]).prototype.Load = function Load$11() { var x; x = this; return x.v; }; - $ptrType(Pointer[20 /* sync.readOnly */]).prototype.Load = function Load$11() { + $ptrType(Pointer[25 /* net/http.response */]).prototype.Load = function Load$12() { var x; x = this; return x.v; }; - $ptrType(Pointer[25 /* any */]).prototype.Load = function Load$12() { + $ptrType(Pointer[30 /* sync.readOnly */]).prototype.Load = function Load$13() { + var x; + x = this; + return x.v; + }; + $ptrType(Pointer[35 /* any */]).prototype.Load = function Load$14() { var x; x = this; return x.v; @@ -10835,29 +10728,39 @@ $packages["sync/atomic"] = (function() { x = this; x.v = val; }; - $ptrType(Pointer[10 /* string */]).prototype.Store = function Store$9(val) { + $ptrType(Pointer[10 /* internal/godebug.value */]).prototype.Store = function Store$9(val) { + var val, x; + x = this; + x.v = val; + }; + $ptrType(Pointer[15 /* string */]).prototype.Store = function Store$10(val) { + var val, x; + x = this; + x.v = val; + }; + $ptrType(Pointer[20 /* math/rand.Rand */]).prototype.Store = function Store$11(val) { var val, x; x = this; x.v = val; }; - $ptrType(Pointer[15 /* net/http.response */]).prototype.Store = function Store$10(val) { + $ptrType(Pointer[25 /* net/http.response */]).prototype.Store = function Store$12(val) { var val, x; x = this; x.v = val; }; - $ptrType(Pointer[20 /* sync.readOnly */]).prototype.Store = function Store$11(val) { + $ptrType(Pointer[30 /* sync.readOnly */]).prototype.Store = function Store$13(val) { var val, x; x = this; x.v = val; }; - $ptrType(Pointer[25 /* any */]).prototype.Store = function Store$12(val) { + $ptrType(Pointer[35 /* any */]).prototype.Store = function Store$14(val) { var val, x; x = this; x.v = val; }; $ptrType(Pointer[0 /* encoding/gob.encEngine */]).prototype.Swap = function Swap$7(new$1) { var new$1, old, x; - old = ptrType$6.nil; + old = ptrType$12.nil; x = this; old = x.v; x.v = new$1; @@ -10866,43 +10769,61 @@ $packages["sync/atomic"] = (function() { }; $ptrType(Pointer[5 /* go/token.File */]).prototype.Swap = function Swap$8(new$1) { var new$1, old, x; - old = ptrType$7.nil; + old = ptrType$13.nil; + x = this; + old = x.v; + x.v = new$1; + old = old; + return old; + }; + $ptrType(Pointer[10 /* internal/godebug.value */]).prototype.Swap = function Swap$9(new$1) { + var new$1, old, x; + old = ptrType$14.nil; + x = this; + old = x.v; + x.v = new$1; + old = old; + return old; + }; + $ptrType(Pointer[15 /* string */]).prototype.Swap = function Swap$10(new$1) { + var new$1, old, x; + old = ptrType$15.nil; x = this; old = x.v; x.v = new$1; old = old; return old; }; - $ptrType(Pointer[10 /* string */]).prototype.Swap = function Swap$9(new$1) { + $ptrType(Pointer[20 /* math/rand.Rand */]).prototype.Swap = function Swap$11(new$1) { var new$1, old, x; - old = ptrType$8.nil; + old = ptrType$16.nil; x = this; old = x.v; x.v = new$1; old = old; return old; }; - $ptrType(Pointer[15 /* net/http.response */]).prototype.Swap = function Swap$10(new$1) { + $ptrType(Pointer[25 /* net/http.response */]).prototype.Swap = function Swap$12(new$1) { var new$1, old, x; - old = ptrType$9.nil; + old = ptrType$17.nil; x = this; old = x.v; x.v = new$1; old = old; return old; }; - $ptrType(Pointer[20 /* sync.readOnly */]).prototype.Swap = function Swap$11(new$1) { + $ptrType(Pointer[30 /* sync.readOnly */]).prototype.Swap = function Swap$13(new$1) { var new$1, old, x; - old = ptrType$10.nil; + old = ptrType$18.nil; x = this; old = x.v; x.v = new$1; old = old; return old; }; - $ptrType(Pointer[25 /* any */]).prototype.Swap = function Swap$12(new$1) { + $ptrType(Pointer[35 /* any */]).prototype.Swap = function Swap$14(new$1) { var new$1, old, x; - old = ptrType$11.nil; + old = ptrType$19.nil; x = this; old = x.v; x.v = new$1; @@ -10927,7 +10848,25 @@ $packages["sync/atomic"] = (function() { } return false; }; - $ptrType(Pointer[10 /* string */]).prototype.CompareAndSwap = function CompareAndSwap$9(old, new$1) { + $ptrType(Pointer[10 /* internal/godebug.value */]).prototype.CompareAndSwap = function CompareAndSwap$9(old, new$1) { + var new$1, old, x; + x = this; + if (x.v === old) { + x.v = new$1; + return true; + } + return false; + }; + $ptrType(Pointer[15 /* string */]).prototype.CompareAndSwap = function CompareAndSwap$10(old, new$1) { + var new$1, old, x; + x = this; + if (x.v === old) { + x.v = new$1; + return true; + } + return false; + }; + $ptrType(Pointer[20 /* math/rand.Rand */]).prototype.CompareAndSwap = function CompareAndSwap$11(old, new$1) { var new$1, old, x; x = this; if (x.v === old) { @@ -10936,7 +10875,7 @@ $packages["sync/atomic"] = (function() { } return false; }; - $ptrType(Pointer[15 /* net/http.response */]).prototype.CompareAndSwap = function CompareAndSwap$10(old, new$1) { + $ptrType(Pointer[25 /* net/http.response */]).prototype.CompareAndSwap = function CompareAndSwap$12(old, new$1) { var new$1, old, x; x = this; if (x.v === old) { @@ -10945,7 +10884,7 @@ $packages["sync/atomic"] = (function() { } return false; }; - $ptrType(Pointer[20 /* sync.readOnly */]).prototype.CompareAndSwap = function CompareAndSwap$11(old, new$1) { + $ptrType(Pointer[30 /* sync.readOnly */]).prototype.CompareAndSwap = function CompareAndSwap$13(old, new$1) { var new$1, old, x; x = this; if (x.v === old) { @@ -10954,7 +10893,7 @@ $packages["sync/atomic"] = (function() { } return false; }; - $ptrType(Pointer[25 /* any */]).prototype.CompareAndSwap = function CompareAndSwap$12(old, new$1) { + $ptrType(Pointer[35 /* any */]).prototype.CompareAndSwap = function CompareAndSwap$14(old, new$1) { var new$1, old, x; x = this; if (x.v === old) { @@ -10963,18 +10902,20 @@ $packages["sync/atomic"] = (function() { } return false; }; - ptrType$12.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$emptyInterface], [$emptyInterface], false)}, {prop: "CompareAndSwap", name: "CompareAndSwap", pkg: "", typ: $funcType([$emptyInterface, $emptyInterface], [$Bool], false)}, {prop: "checkNew", name: "checkNew", pkg: "sync/atomic", typ: $funcType([$String, $emptyInterface], [], false)}]; - ptrType$13.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([$Bool], [], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Bool], [$Bool], false)}, {prop: "CompareAndSwap", name: "CompareAndSwap", pkg: "", typ: $funcType([$Bool, $Bool], [$Bool], false)}]; - ptrType$14.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [$Int32], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([$Int32], [], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int32], [$Int32], false)}, {prop: "CompareAndSwap", name: "CompareAndSwap", pkg: "", typ: $funcType([$Int32, $Int32], [$Bool], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([$Int32], [$Int32], false)}]; - ptrType$15.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([$Int64], [], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int64], [$Int64], false)}, {prop: "CompareAndSwap", name: "CompareAndSwap", pkg: "", typ: $funcType([$Int64, $Int64], [$Bool], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([$Int64], [$Int64], false)}]; - ptrType$17.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([$Uint64], [], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Uint64], [$Uint64], false)}, {prop: "CompareAndSwap", name: "CompareAndSwap", pkg: "", typ: $funcType([$Uint64, $Uint64], [$Bool], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([$Uint64], [$Uint64], false)}]; - ptrType$19.methods = [{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}]; - ptrType$20.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [ptrType$6], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([ptrType$6], [], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([ptrType$6], [ptrType$6], false)}, {prop: "CompareAndSwap", name: "CompareAndSwap", pkg: "", typ: $funcType([ptrType$6, ptrType$6], [$Bool], false)}]; - ptrType$21.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [ptrType$7], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([ptrType$7], [], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([ptrType$7], [ptrType$7], false)}, {prop: "CompareAndSwap", name: "CompareAndSwap", pkg: "", typ: $funcType([ptrType$7, ptrType$7], [$Bool], false)}]; - ptrType$22.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [ptrType$8], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([ptrType$8], [], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([ptrType$8], [ptrType$8], false)}, {prop: "CompareAndSwap", name: "CompareAndSwap", pkg: "", typ: $funcType([ptrType$8, ptrType$8], [$Bool], false)}]; - ptrType$23.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [ptrType$9], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([ptrType$9], [], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([ptrType$9], [ptrType$9], false)}, {prop: "CompareAndSwap", name: "CompareAndSwap", pkg: "", typ: $funcType([ptrType$9, ptrType$9], [$Bool], false)}]; - ptrType$24.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [ptrType$10], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([ptrType$10], [], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([ptrType$10], [ptrType$10], false)}, {prop: "CompareAndSwap", name: "CompareAndSwap", pkg: "", typ: $funcType([ptrType$10, ptrType$10], [$Bool], false)}]; - ptrType$25.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [ptrType$11], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([ptrType$11], [], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([ptrType$11], [ptrType$11], false)}, {prop: "CompareAndSwap", name: "CompareAndSwap", pkg: "", typ: $funcType([ptrType$11, ptrType$11], [$Bool], false)}]; + ptrType$20.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$emptyInterface], [$emptyInterface], false)}, {prop: "CompareAndSwap", name: "CompareAndSwap", pkg: "", typ: $funcType([$emptyInterface, $emptyInterface], [$Bool], false)}, {prop: "checkNew", name: "checkNew", pkg: "sync/atomic", typ: $funcType([$String, $emptyInterface], [], false)}]; + ptrType$1.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([$Bool], [], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Bool], [$Bool], false)}, {prop: "CompareAndSwap", name: "CompareAndSwap", pkg: "", typ: $funcType([$Bool, $Bool], [$Bool], false)}]; + ptrType$3.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [$Int32], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([$Int32], [], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int32], [$Int32], false)}, {prop: "CompareAndSwap", name: "CompareAndSwap", pkg: "", typ: $funcType([$Int32, $Int32], [$Bool], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([$Int32], [$Int32], false)}]; + ptrType$5.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([$Int64], [], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int64], [$Int64], false)}, {prop: "CompareAndSwap", name: "CompareAndSwap", pkg: "", typ: $funcType([$Int64, $Int64], [$Bool], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([$Int64], [$Int64], false)}]; + ptrType$8.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([$Uint64], [], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Uint64], [$Uint64], false)}, {prop: "CompareAndSwap", name: "CompareAndSwap", pkg: "", typ: $funcType([$Uint64, $Uint64], [$Bool], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([$Uint64], [$Uint64], false)}]; + ptrType$21.methods = [{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}]; + ptrType$22.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [ptrType$12], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([ptrType$12], [], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([ptrType$12], [ptrType$12], false)}, {prop: "CompareAndSwap", name: "CompareAndSwap", pkg: "", typ: $funcType([ptrType$12, ptrType$12], [$Bool], false)}]; + ptrType$23.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [ptrType$13], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([ptrType$13], [], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([ptrType$13], [ptrType$13], false)}, {prop: "CompareAndSwap", name: "CompareAndSwap", pkg: "", typ: $funcType([ptrType$13, ptrType$13], [$Bool], false)}]; + ptrType$24.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [ptrType$14], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([ptrType$14], [], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([ptrType$14], [ptrType$14], false)}, {prop: "CompareAndSwap", name: "CompareAndSwap", pkg: "", typ: $funcType([ptrType$14, ptrType$14], [$Bool], false)}]; + ptrType$25.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [ptrType$15], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([ptrType$15], [], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([ptrType$15], [ptrType$15], false)}, {prop: "CompareAndSwap", name: "CompareAndSwap", pkg: "", typ: $funcType([ptrType$15, ptrType$15], [$Bool], false)}]; + ptrType$26.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [ptrType$16], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([ptrType$16], [], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([ptrType$16], [ptrType$16], false)}, {prop: "CompareAndSwap", name: "CompareAndSwap", pkg: "", typ: $funcType([ptrType$16, ptrType$16], [$Bool], false)}]; + ptrType$27.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [ptrType$17], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([ptrType$17], [], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([ptrType$17], [ptrType$17], false)}, {prop: "CompareAndSwap", name: "CompareAndSwap", pkg: "", typ: $funcType([ptrType$17, ptrType$17], [$Bool], false)}]; + ptrType$28.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [ptrType$18], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([ptrType$18], [], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([ptrType$18], [ptrType$18], false)}, {prop: "CompareAndSwap", name: "CompareAndSwap", pkg: "", typ: $funcType([ptrType$18, ptrType$18], [$Bool], false)}]; + ptrType$29.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [ptrType$19], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([ptrType$19], [], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([ptrType$19], [ptrType$19], false)}, {prop: "CompareAndSwap", name: "CompareAndSwap", pkg: "", typ: $funcType([ptrType$19, ptrType$19], [$Bool], false)}]; Value.init("sync/atomic", [{prop: "v", name: "v", embedded: false, exported: false, typ: $emptyInterface, tag: ""}]); Bool.init("sync/atomic", [{prop: "_$0", name: "_", embedded: false, exported: false, typ: noCopy, tag: ""}, {prop: "v", name: "v", embedded: false, exported: false, typ: $Uint32, tag: ""}]); Int32.init("sync/atomic", [{prop: "_$0", name: "_", embedded: false, exported: false, typ: noCopy, tag: ""}, {prop: "v", name: "v", embedded: false, exported: false, typ: $Int32, tag: ""}]); @@ -10982,12 +10923,14 @@ $packages["sync/atomic"] = (function() { Uint64.init("sync/atomic", [{prop: "_$0", name: "_", embedded: false, exported: false, typ: noCopy, tag: ""}, {prop: "_$1", name: "_", embedded: false, exported: false, typ: align64, tag: ""}, {prop: "v", name: "v", embedded: false, exported: false, typ: $Uint64, tag: ""}]); noCopy.init("", []); align64.init("", []); - Pointer[0 /* encoding/gob.encEngine */].init("sync/atomic", [{prop: "v", name: "v", embedded: false, exported: false, typ: ptrType$6, tag: ""}]); - Pointer[5 /* go/token.File */].init("sync/atomic", [{prop: "v", name: "v", embedded: false, exported: false, typ: ptrType$7, tag: ""}]); - Pointer[10 /* string */].init("sync/atomic", [{prop: "v", name: "v", embedded: false, exported: false, typ: ptrType$8, tag: ""}]); - Pointer[15 /* net/http.response */].init("sync/atomic", [{prop: "v", name: "v", embedded: false, exported: false, typ: ptrType$9, tag: ""}]); - Pointer[20 /* sync.readOnly */].init("sync/atomic", [{prop: "v", name: "v", embedded: false, exported: false, typ: ptrType$10, tag: ""}]); - Pointer[25 /* any */].init("sync/atomic", [{prop: "v", name: "v", embedded: false, exported: false, typ: ptrType$11, tag: ""}]); + Pointer[0 /* encoding/gob.encEngine */].init("sync/atomic", [{prop: "v", name: "v", embedded: false, exported: false, typ: ptrType$12, tag: ""}]); + Pointer[5 /* go/token.File */].init("sync/atomic", [{prop: "v", name: "v", embedded: false, exported: false, typ: ptrType$13, tag: ""}]); + Pointer[10 /* internal/godebug.value */].init("sync/atomic", [{prop: "v", name: "v", embedded: false, exported: false, typ: ptrType$14, tag: ""}]); + Pointer[15 /* string */].init("sync/atomic", [{prop: "v", name: "v", embedded: false, exported: false, typ: ptrType$15, tag: ""}]); + Pointer[20 /* math/rand.Rand */].init("sync/atomic", [{prop: "v", name: "v", embedded: false, exported: false, typ: ptrType$16, tag: ""}]); + Pointer[25 /* net/http.response */].init("sync/atomic", [{prop: "v", name: "v", embedded: false, exported: false, typ: ptrType$17, tag: ""}]); + Pointer[30 /* sync.readOnly */].init("sync/atomic", [{prop: "v", name: "v", embedded: false, exported: false, typ: ptrType$18, tag: ""}]); + Pointer[35 /* any */].init("sync/atomic", [{prop: "v", name: "v", embedded: false, exported: false, typ: ptrType$19, tag: ""}]); }; $init = function() { $pkg.$init = function() {}; @@ -10999,7 +10942,7 @@ $packages["sync/atomic"] = (function() { return $pkg; })(); $packages["sync"] = (function() { - var $pkg = {}, $init, js, race, atomic, RWMutex, rlocker, notifyList, Once, Mutex, Locker, Map, readOnly, entry, WaitGroup, Pool, Cond, copyChecker, noCopy, ptrType, ptrType$1, ptrType$2, ptrType$3, ptrType$9, ptrType$10, ptrType$11, structType, chanType, sliceType$1, funcType, ptrType$15, ptrType$16, funcType$1, ptrType$17, mapType, ptrType$18, chanType$1, sliceType$2, ptrType$19, funcType$2, ptrType$20, ptrType$21, ptrType$22, expunged, semWaiters, semAwoken, init, runtime_doSpin, fatal, newEntry, runtime_Semacquire, runtime_SemacquireMutex, runtime_SemacquireRWMutexR, runtime_SemacquireRWMutex, runtime_Semrelease, runtime_notifyListCheck, runtime_canSpin, runtime_nanotime, throw$1, NewCond; + var $pkg = {}, $init, js, race, atomic, RWMutex, rlocker, notifyList, Once, Mutex, Locker, Map, readOnly, entry, WaitGroup, Pool, Cond, copyChecker, noCopy, ptrType, ptrType$1, ptrType$2, ptrType$3, ptrType$11, ptrType$12, ptrType$13, ptrType$14, ptrType$15, structType, chanType, sliceType$1, funcType, funcType$1, ptrType$17, mapType, ptrType$18, chanType$1, sliceType$2, ptrType$19, funcType$2, ptrType$20, ptrType$21, ptrType$22, expunged, semWaiters, semAwoken, init, runtime_doSpin, fatal, newEntry, runtime_Semacquire, runtime_SemacquireMutex, runtime_SemacquireRWMutexR, runtime_SemacquireRWMutex, runtime_Semrelease, runtime_notifyListCheck, runtime_canSpin, runtime_nanotime, throw$1, syscall_hasWaitingReaders, NewCond; js = $packages["github.com/gopherjs/gopherjs/js"]; race = $packages["internal/race"]; atomic = $packages["sync/atomic"]; @@ -11076,7 +11019,7 @@ $packages["sync"] = (function() { this.$val = this; if (arguments.length === 0) { this.mu = new Mutex.ptr(0, 0); - this.read = new atomic.Pointer[20 /* sync.readOnly */].ptr(ptrType$10.nil); + this.read = new atomic.Pointer[30 /* sync.readOnly */].ptr(ptrType$14.nil); this.dirty = false; this.misses = 0; return; @@ -11099,7 +11042,7 @@ $packages["sync"] = (function() { entry = $newType(0, $kindStruct, "sync.entry", true, "sync", false, function(p_) { this.$val = this; if (arguments.length === 0) { - this.p = new atomic.Pointer[25 /* any */].ptr(ptrType.nil); + this.p = new atomic.Pointer[35 /* any */].ptr(ptrType.nil); return; } this.p = p_; @@ -11164,21 +11107,21 @@ $packages["sync"] = (function() { $pkg.noCopy = noCopy; $pkg.$finishSetup = function() { ptrType = $ptrType($emptyInterface); - ptrType$1 = $ptrType($Uint32); - ptrType$2 = $ptrType(rlocker); - ptrType$3 = $ptrType(RWMutex); - ptrType$9 = $ptrType($Int32); - ptrType$10 = $ptrType(readOnly); - ptrType$11 = $ptrType(entry); + ptrType$1 = $ptrType(RWMutex); + ptrType$2 = $ptrType($Uint32); + ptrType$3 = $ptrType(rlocker); + ptrType$11 = $ptrType(Once); + ptrType$12 = $ptrType(Mutex); + ptrType$13 = $ptrType($Int32); + ptrType$14 = $ptrType(readOnly); + ptrType$15 = $ptrType(entry); structType = $structType("", []); chanType = $chanType($Bool, false, false); sliceType$1 = $sliceType(chanType); funcType = $funcType([], [], false); - ptrType$15 = $ptrType(Once); - ptrType$16 = $ptrType(Mutex); funcType$1 = $funcType([$emptyInterface, $emptyInterface], [$Bool], false); ptrType$17 = $ptrType(Map); - mapType = $mapType($emptyInterface, ptrType$11); + mapType = $mapType($emptyInterface, ptrType$15); ptrType$18 = $ptrType(WaitGroup); chanType$1 = $chanType(structType, false, false); sliceType$2 = $sliceType($emptyInterface); @@ -11203,11 +11146,11 @@ $packages["sync"] = (function() { /* */ if (rw.readerCount.Add(1) < 0) { $s = 1; continue; } /* */ $s = 2; continue; /* if (rw.readerCount.Add(1) < 0) { */ case 1: - $r = runtime_SemacquireRWMutexR((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw))), false, 0); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime_SemacquireRWMutexR((rw === ptrType$1.nil && $throwNilPointerError(), (rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$2(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw)))), false, 0); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 2: if (false) { race.Enable(); - race.Acquire(((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw))))); + race.Acquire(((rw === ptrType$1.nil && $throwNilPointerError(), (rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$2(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw)))))); } $s = -1; return; /* */ } return; } var $f = {$blk: RLock, $c: true, $r, rw, $s};return $f; @@ -11230,7 +11173,7 @@ $packages["sync"] = (function() { if (rw.readerCount.CompareAndSwap(c, c + 1 >> 0)) { if (false) { race.Enable(); - race.Acquire(((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw))))); + race.Acquire(((rw === ptrType$1.nil && $throwNilPointerError(), (rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$2(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw)))))); } return true; } @@ -11242,7 +11185,7 @@ $packages["sync"] = (function() { rw = this; if (false) { $unused(rw.w.state); - race.ReleaseMerge(((rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$1(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw))))); + race.ReleaseMerge(((rw === ptrType$1.nil && $throwNilPointerError(), (rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$2(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw)))))); race.Disable(); } r = rw.readerCount.Add(-1); @@ -11270,7 +11213,7 @@ $packages["sync"] = (function() { /* */ if (rw.readerWait.Add(-1) === 0) { $s = 4; continue; } /* */ $s = 5; continue; /* if (rw.readerWait.Add(-1) === 0) { */ case 4: - $r = runtime_Semrelease((rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$1(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw))), false, 1); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime_Semrelease((rw === ptrType$1.nil && $throwNilPointerError(), (rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$2(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw)))), false, 1); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 5: $s = -1; return; /* */ } return; } var $f = {$blk: rUnlockSlow, $c: true, $r, r, rw, $s};return $f; @@ -11288,12 +11231,12 @@ $packages["sync"] = (function() { /* */ if (!((r === 0)) && !((rw.readerWait.Add(r) === 0))) { $s = 2; continue; } /* */ $s = 3; continue; /* if (!((r === 0)) && !((rw.readerWait.Add(r) === 0))) { */ case 2: - $r = runtime_SemacquireRWMutex((rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$1(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw))), false, 0); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime_SemacquireRWMutex((rw === ptrType$1.nil && $throwNilPointerError(), (rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$2(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw)))), false, 0); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 3: if (false) { race.Enable(); - race.Acquire(((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw))))); - race.Acquire(((rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$1(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw))))); + race.Acquire(((rw === ptrType$1.nil && $throwNilPointerError(), (rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$2(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw)))))); + race.Acquire(((rw === ptrType$1.nil && $throwNilPointerError(), (rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$2(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw)))))); } $s = -1; return; /* */ } return; } var $f = {$blk: Lock, $c: true, $r, r, rw, $s};return $f; @@ -11323,8 +11266,8 @@ $packages["sync"] = (function() { /* } */ case 2: if (false) { race.Enable(); - race.Acquire(((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw))))); - race.Acquire(((rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$1(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw))))); + race.Acquire(((rw === ptrType$1.nil && $throwNilPointerError(), (rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$2(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw)))))); + race.Acquire(((rw === ptrType$1.nil && $throwNilPointerError(), (rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$2(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw)))))); } $s = -1; return true; /* */ } return; } var $f = {$blk: TryLock, $c: true, $r, rw, $s};return $f; @@ -11335,7 +11278,7 @@ $packages["sync"] = (function() { rw = this; if (false) { $unused(rw.w.state); - race.Release(((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw))))); + race.Release(((rw === ptrType$1.nil && $throwNilPointerError(), (rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$2(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw)))))); race.Disable(); } r = rw.readerCount.Add(1073741824); @@ -11348,7 +11291,7 @@ $packages["sync"] = (function() { i = 0; /* while (true) { */ case 4: /* if (!(i < ((r >> 0)))) { break; } */ if(!(i < ((r >> 0)))) { $s = 5; continue; } - $r = runtime_Semrelease((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw))), false, 0); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime_Semrelease((rw === ptrType$1.nil && $throwNilPointerError(), (rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$2(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw)))), false, 0); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } i = i + (1) >> 0; $s = 4; continue; case 5: @@ -11362,13 +11305,13 @@ $packages["sync"] = (function() { $ptrType(RWMutex).prototype.RLocker = function RLocker() { var rw; rw = this; - return ($pointerOfStructConversion(rw, ptrType$2)); + return ($pointerOfStructConversion(rw, ptrType$3)); }; $ptrType(rlocker).prototype.Lock = function Lock$1() { var {r, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: r = this; - $r = ($pointerOfStructConversion(r, ptrType$3)).RLock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = ($pointerOfStructConversion(r, ptrType$1)).RLock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* */ } return; } var $f = {$blk: Lock$1, $c: true, $r, r, $s};return $f; }; @@ -11376,7 +11319,7 @@ $packages["sync"] = (function() { var {r, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: r = this; - $r = ($pointerOfStructConversion(r, ptrType$3)).RUnlock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = ($pointerOfStructConversion(r, ptrType$1)).RUnlock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* */ } return; } var $f = {$blk: Unlock$1, $c: true, $r, r, $s};return $f; }; @@ -11392,9 +11335,9 @@ $packages["sync"] = (function() { var {f, o, $s, $r, $c} = $restore(this, {f}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: o = this; - /* */ if (atomic.LoadUint32((o.$ptr_done || (o.$ptr_done = new ptrType$1(function() { return this.$target.done; }, function($v) { this.$target.done = $v; }, o)))) === 0) { $s = 1; continue; } + /* */ if (atomic.LoadUint32((o === ptrType$11.nil && $throwNilPointerError(), (o.$ptr_done || (o.$ptr_done = new ptrType$2(function() { return this.$target.done; }, function($v) { this.$target.done = $v; }, o))))) === 0) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (atomic.LoadUint32((o.$ptr_done || (o.$ptr_done = new ptrType$1(function() { return this.$target.done; }, function($v) { this.$target.done = $v; }, o)))) === 0) { */ case 1: + /* if (atomic.LoadUint32((o === ptrType$11.nil && $throwNilPointerError(), (o.$ptr_done || (o.$ptr_done = new ptrType$2(function() { return this.$target.done; }, function($v) { this.$target.done = $v; }, o))))) === 0) { */ case 1: $r = o.doSlow(f); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 2: $s = -1; return; @@ -11409,7 +11352,7 @@ $packages["sync"] = (function() { /* */ if (o.done === 0) { $s = 2; continue; } /* */ $s = 3; continue; /* if (o.done === 0) { */ case 2: - $deferred.push([atomic.StoreUint32, [(o.$ptr_done || (o.$ptr_done = new ptrType$1(function() { return this.$target.done; }, function($v) { this.$target.done = $v; }, o))), 1]]); + $deferred.push([atomic.StoreUint32, [(o === ptrType$11.nil && $throwNilPointerError(), (o.$ptr_done || (o.$ptr_done = new ptrType$2(function() { return this.$target.done; }, function($v) { this.$target.done = $v; }, o)))), 1]]); $r = f(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 3: $s = -1; return; @@ -11422,7 +11365,7 @@ $packages["sync"] = (function() { var {m, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: m = this; - if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$9(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), 0, 1)) { + if (atomic.CompareAndSwapInt32((m === ptrType$12.nil && $throwNilPointerError(), (m.$ptr_state || (m.$ptr_state = new ptrType$13(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m)))), 0, 1)) { if (false) { race.Acquire((m)); } @@ -11439,7 +11382,7 @@ $packages["sync"] = (function() { if (!(((old & 5) === 0))) { return false; } - if (!atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$9(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, old | 1)) { + if (!atomic.CompareAndSwapInt32((m === ptrType$12.nil && $throwNilPointerError(), (m.$ptr_state || (m.$ptr_state = new ptrType$13(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m)))), old, old | 1)) { return false; } if (false) { @@ -11460,7 +11403,7 @@ $packages["sync"] = (function() { /* */ if (((old & 5) === 1) && runtime_canSpin(iter)) { $s = 3; continue; } /* */ $s = 4; continue; /* if (((old & 5) === 1) && runtime_canSpin(iter)) { */ case 3: - if (!awoke && ((old & 2) === 0) && !(((old >> 3 >> 0) === 0)) && atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$9(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, old | 2)) { + if (!awoke && ((old & 2) === 0) && !(((old >> 3 >> 0) === 0)) && atomic.CompareAndSwapInt32((m === ptrType$12.nil && $throwNilPointerError(), (m.$ptr_state || (m.$ptr_state = new ptrType$13(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m)))), old, old | 2)) { awoke = true; } $r = runtime_doSpin(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } @@ -11484,9 +11427,9 @@ $packages["sync"] = (function() { } new$1 = (new$1 & ~(2)) >> 0; } - /* */ if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$9(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, new$1)) { $s = 6; continue; } + /* */ if (atomic.CompareAndSwapInt32((m === ptrType$12.nil && $throwNilPointerError(), (m.$ptr_state || (m.$ptr_state = new ptrType$13(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m)))), old, new$1)) { $s = 6; continue; } /* */ $s = 7; continue; - /* if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$9(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, new$1)) { */ case 6: + /* if (atomic.CompareAndSwapInt32((m === ptrType$12.nil && $throwNilPointerError(), (m.$ptr_state || (m.$ptr_state = new ptrType$13(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m)))), old, new$1)) { */ case 6: if ((old & 5) === 0) { /* break; */ $s = 2; continue; } @@ -11497,7 +11440,7 @@ $packages["sync"] = (function() { _r = runtime_nanotime(); /* */ $s = 11; case 11: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } waitStartTime = _r; /* } */ case 10: - $r = runtime_SemacquireMutex((m.$ptr_sema || (m.$ptr_sema = new ptrType$1(function() { return this.$target.sema; }, function($v) { this.$target.sema = $v; }, m))), queueLifo, 1); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime_SemacquireMutex((m === ptrType$12.nil && $throwNilPointerError(), (m.$ptr_sema || (m.$ptr_sema = new ptrType$2(function() { return this.$target.sema; }, function($v) { this.$target.sema = $v; }, m)))), queueLifo, 1); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } if (starving) { _v = true; $s = 13; continue s; } _r$1 = runtime_nanotime(); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _v = (x = (x$1 = _r$1, new $Int64(x$1.$high - waitStartTime.$high, x$1.$low - waitStartTime.$low)), (x.$high > 0 || (x.$high === 0 && x.$low > 1000000))); case 13: @@ -11511,7 +11454,7 @@ $packages["sync"] = (function() { if (!starving || ((old >> 3 >> 0) === 1)) { delta = delta - (4) >> 0; } - atomic.AddInt32((m.$ptr_state || (m.$ptr_state = new ptrType$9(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), delta); + atomic.AddInt32((m === ptrType$12.nil && $throwNilPointerError(), (m.$ptr_state || (m.$ptr_state = new ptrType$13(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m)))), delta); /* break; */ $s = 2; continue; } awoke = true; @@ -11536,7 +11479,7 @@ $packages["sync"] = (function() { $unused(m.state); race.Release((m)); } - new$1 = atomic.AddInt32((m.$ptr_state || (m.$ptr_state = new ptrType$9(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), -1); + new$1 = atomic.AddInt32((m === ptrType$12.nil && $throwNilPointerError(), (m.$ptr_state || (m.$ptr_state = new ptrType$13(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m)))), -1); /* */ if (!((new$1 === 0))) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!((new$1 === 0))) { */ case 1: @@ -11563,10 +11506,10 @@ $packages["sync"] = (function() { $s = -1; return; } new$1 = ((old - 8 >> 0)) | 2; - /* */ if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$9(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, new$1)) { $s = 9; continue; } + /* */ if (atomic.CompareAndSwapInt32((m === ptrType$12.nil && $throwNilPointerError(), (m.$ptr_state || (m.$ptr_state = new ptrType$13(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m)))), old, new$1)) { $s = 9; continue; } /* */ $s = 10; continue; - /* if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$9(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, new$1)) { */ case 9: - $r = runtime_Semrelease((m.$ptr_sema || (m.$ptr_sema = new ptrType$1(function() { return this.$target.sema; }, function($v) { this.$target.sema = $v; }, m))), false, 1); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* if (atomic.CompareAndSwapInt32((m === ptrType$12.nil && $throwNilPointerError(), (m.$ptr_state || (m.$ptr_state = new ptrType$13(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m)))), old, new$1)) { */ case 9: + $r = runtime_Semrelease((m === ptrType$12.nil && $throwNilPointerError(), (m.$ptr_sema || (m.$ptr_sema = new ptrType$2(function() { return this.$target.sema; }, function($v) { this.$target.sema = $v; }, m)))), false, 1); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* } */ case 10: old = m.state; @@ -11574,14 +11517,14 @@ $packages["sync"] = (function() { case 8: $s = 6; continue; /* } else { */ case 5: - $r = runtime_Semrelease((m.$ptr_sema || (m.$ptr_sema = new ptrType$1(function() { return this.$target.sema; }, function($v) { this.$target.sema = $v; }, m))), true, 1); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime_Semrelease((m === ptrType$12.nil && $throwNilPointerError(), (m.$ptr_sema || (m.$ptr_sema = new ptrType$2(function() { return this.$target.sema; }, function($v) { this.$target.sema = $v; }, m)))), true, 1); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 6: $s = -1; return; /* */ } return; } var $f = {$blk: unlockSlow, $c: true, $r, m, new$1, old, $s};return $f; }; newEntry = function newEntry$1(i) { var e, i, i$24ptr; - e = new entry.ptr(new atomic.Pointer[25 /* any */].ptr(ptrType.nil)); + e = new entry.ptr(new atomic.Pointer[35 /* any */].ptr(ptrType.nil)); e.p.Store((i$24ptr || (i$24ptr = new ptrType(function() { return i; }, function($v) { i = $v; })))); return e; }; @@ -11589,8 +11532,8 @@ $packages["sync"] = (function() { var m, p; m = this; p = m.read.Load(); - if (!(p === ptrType$10.nil)) { - return p; + if (!(p === ptrType$14.nil)) { + return (p === ptrType$14.nil && $throwNilPointerError(), p); } return new readOnly.ptr(false, false); }; @@ -11601,7 +11544,7 @@ $packages["sync"] = (function() { ok = false; m = this; read = $clone(m.loadReadOnly(), readOnly); - _tuple = (_entry = $mapIndex(read.m,$emptyInterface.keyFor(key)), _entry !== undefined ? [_entry.v, true] : [ptrType$11.nil, false]); + _tuple = (_entry = $mapIndex(read.m,$emptyInterface.keyFor(key)), _entry !== undefined ? [_entry.v, true] : [ptrType$15.nil, false]); e = _tuple[0]; ok = _tuple[1]; /* */ if (!ok && read.amended) { $s = 1; continue; } @@ -11609,11 +11552,11 @@ $packages["sync"] = (function() { /* if (!ok && read.amended) { */ case 1: $r = m.mu.Lock(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } readOnly.copy(read, m.loadReadOnly()); - _tuple$1 = (_entry$1 = $mapIndex(read.m,$emptyInterface.keyFor(key)), _entry$1 !== undefined ? [_entry$1.v, true] : [ptrType$11.nil, false]); + _tuple$1 = (_entry$1 = $mapIndex(read.m,$emptyInterface.keyFor(key)), _entry$1 !== undefined ? [_entry$1.v, true] : [ptrType$15.nil, false]); e = _tuple$1[0]; ok = _tuple$1[1]; if (!ok && read.amended) { - _tuple$2 = (_entry$2 = $mapIndex(m.dirty,$emptyInterface.keyFor(key)), _entry$2 !== undefined ? [_entry$2.v, true] : [ptrType$11.nil, false]); + _tuple$2 = (_entry$2 = $mapIndex(m.dirty,$emptyInterface.keyFor(key)), _entry$2 !== undefined ? [_entry$2.v, true] : [ptrType$15.nil, false]); e = _tuple$2[0]; ok = _tuple$2[1]; m.missLocked(); @@ -11698,7 +11641,7 @@ $packages["sync"] = (function() { loaded = false; m = this; read = $clone(m.loadReadOnly(), readOnly); - _tuple = (_entry = $mapIndex(read.m,$emptyInterface.keyFor(key)), _entry !== undefined ? [_entry.v, true] : [ptrType$11.nil, false]); + _tuple = (_entry = $mapIndex(read.m,$emptyInterface.keyFor(key)), _entry !== undefined ? [_entry.v, true] : [ptrType$15.nil, false]); e = _tuple[0]; ok = _tuple[1]; if (ok) { @@ -11716,7 +11659,7 @@ $packages["sync"] = (function() { } $r = m.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } readOnly.copy(read, m.loadReadOnly()); - _tuple$2 = (_entry$1 = $mapIndex(read.m,$emptyInterface.keyFor(key)), _entry$1 !== undefined ? [_entry$1.v, true] : [ptrType$11.nil, false]); + _tuple$2 = (_entry$1 = $mapIndex(read.m,$emptyInterface.keyFor(key)), _entry$1 !== undefined ? [_entry$1.v, true] : [ptrType$15.nil, false]); e$1 = _tuple$2[0]; ok$2 = _tuple$2[1]; if (ok$2) { @@ -11727,7 +11670,7 @@ $packages["sync"] = (function() { actual = _tuple$3[0]; loaded = _tuple$3[1]; } else { - _tuple$4 = (_entry$2 = $mapIndex(m.dirty,$emptyInterface.keyFor(key)), _entry$2 !== undefined ? [_entry$2.v, true] : [ptrType$11.nil, false]); + _tuple$4 = (_entry$2 = $mapIndex(m.dirty,$emptyInterface.keyFor(key)), _entry$2 !== undefined ? [_entry$2.v, true] : [ptrType$15.nil, false]); e$2 = _tuple$4[0]; ok$3 = _tuple$4[1]; if (ok$3) { @@ -11819,7 +11762,7 @@ $packages["sync"] = (function() { loaded = false; m = this; read = $clone(m.loadReadOnly(), readOnly); - _tuple = (_entry = $mapIndex(read.m,$emptyInterface.keyFor(key)), _entry !== undefined ? [_entry.v, true] : [ptrType$11.nil, false]); + _tuple = (_entry = $mapIndex(read.m,$emptyInterface.keyFor(key)), _entry !== undefined ? [_entry.v, true] : [ptrType$15.nil, false]); e = _tuple[0]; ok = _tuple[1]; /* */ if (!ok && read.amended) { $s = 1; continue; } @@ -11827,11 +11770,11 @@ $packages["sync"] = (function() { /* if (!ok && read.amended) { */ case 1: $r = m.mu.Lock(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } readOnly.copy(read, m.loadReadOnly()); - _tuple$1 = (_entry$1 = $mapIndex(read.m,$emptyInterface.keyFor(key)), _entry$1 !== undefined ? [_entry$1.v, true] : [ptrType$11.nil, false]); + _tuple$1 = (_entry$1 = $mapIndex(read.m,$emptyInterface.keyFor(key)), _entry$1 !== undefined ? [_entry$1.v, true] : [ptrType$15.nil, false]); e = _tuple$1[0]; ok = _tuple$1[1]; if (!ok && read.amended) { - _tuple$2 = (_entry$2 = $mapIndex(m.dirty,$emptyInterface.keyFor(key)), _entry$2 !== undefined ? [_entry$2.v, true] : [ptrType$11.nil, false]); + _tuple$2 = (_entry$2 = $mapIndex(m.dirty,$emptyInterface.keyFor(key)), _entry$2 !== undefined ? [_entry$2.v, true] : [ptrType$15.nil, false]); e = _tuple$2[0]; ok = _tuple$2[1]; $mapDelete(m.dirty, $emptyInterface.keyFor(key)); @@ -11905,7 +11848,7 @@ $packages["sync"] = (function() { loaded = false; m = this; read = $clone(m.loadReadOnly(), readOnly); - _tuple = (_entry = $mapIndex(read.m,$emptyInterface.keyFor(key)), _entry !== undefined ? [_entry.v, true] : [ptrType$11.nil, false]); + _tuple = (_entry = $mapIndex(read.m,$emptyInterface.keyFor(key)), _entry !== undefined ? [_entry.v, true] : [ptrType$15.nil, false]); e = _tuple[0]; ok = _tuple[1]; if (ok) { @@ -11929,7 +11872,7 @@ $packages["sync"] = (function() { } $r = m.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } readOnly.copy(read, m.loadReadOnly()); - _tuple$2 = (_entry$1 = $mapIndex(read.m,$emptyInterface.keyFor(key)), _entry$1 !== undefined ? [_entry$1.v, true] : [ptrType$11.nil, false]); + _tuple$2 = (_entry$1 = $mapIndex(read.m,$emptyInterface.keyFor(key)), _entry$1 !== undefined ? [_entry$1.v, true] : [ptrType$15.nil, false]); e$1 = _tuple$2[0]; ok$2 = _tuple$2[1]; if (ok$2) { @@ -11942,7 +11885,7 @@ $packages["sync"] = (function() { previous = v$1.$get(); } } else { - _tuple$3 = (_entry$2 = $mapIndex(m.dirty,$emptyInterface.keyFor(key)), _entry$2 !== undefined ? [_entry$2.v, true] : [ptrType$11.nil, false]); + _tuple$3 = (_entry$2 = $mapIndex(m.dirty,$emptyInterface.keyFor(key)), _entry$2 !== undefined ? [_entry$2.v, true] : [ptrType$15.nil, false]); e$2 = _tuple$3[0]; ok$3 = _tuple$3[1]; if (ok$3) { @@ -11972,7 +11915,7 @@ $packages["sync"] = (function() { /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); m = this; read = $clone(m.loadReadOnly(), readOnly); - _tuple = (_entry = $mapIndex(read.m,$emptyInterface.keyFor(key)), _entry !== undefined ? [_entry.v, true] : [ptrType$11.nil, false]); + _tuple = (_entry = $mapIndex(read.m,$emptyInterface.keyFor(key)), _entry !== undefined ? [_entry.v, true] : [ptrType$15.nil, false]); e = _tuple[0]; ok = _tuple[1]; if (ok) { @@ -11984,13 +11927,13 @@ $packages["sync"] = (function() { $deferred.push([$methodVal(m.mu, "Unlock"), []]); readOnly.copy(read, m.loadReadOnly()); swapped = false; - _tuple$1 = (_entry$1 = $mapIndex(read.m,$emptyInterface.keyFor(key)), _entry$1 !== undefined ? [_entry$1.v, true] : [ptrType$11.nil, false]); + _tuple$1 = (_entry$1 = $mapIndex(read.m,$emptyInterface.keyFor(key)), _entry$1 !== undefined ? [_entry$1.v, true] : [ptrType$15.nil, false]); e$1 = _tuple$1[0]; ok$1 = _tuple$1[1]; if (ok$1) { swapped = e$1.tryCompareAndSwap(old, new$1); } else { - _tuple$2 = (_entry$2 = $mapIndex(m.dirty,$emptyInterface.keyFor(key)), _entry$2 !== undefined ? [_entry$2.v, true] : [ptrType$11.nil, false]); + _tuple$2 = (_entry$2 = $mapIndex(m.dirty,$emptyInterface.keyFor(key)), _entry$2 !== undefined ? [_entry$2.v, true] : [ptrType$15.nil, false]); e$2 = _tuple$2[0]; ok$2 = _tuple$2[1]; if (ok$2) { @@ -12008,7 +11951,7 @@ $packages["sync"] = (function() { deleted = false; m = this; read = $clone(m.loadReadOnly(), readOnly); - _tuple = (_entry = $mapIndex(read.m,$emptyInterface.keyFor(key)), _entry !== undefined ? [_entry.v, true] : [ptrType$11.nil, false]); + _tuple = (_entry = $mapIndex(read.m,$emptyInterface.keyFor(key)), _entry !== undefined ? [_entry.v, true] : [ptrType$15.nil, false]); e = _tuple[0]; ok = _tuple[1]; /* */ if (!ok && read.amended) { $s = 1; continue; } @@ -12016,11 +11959,11 @@ $packages["sync"] = (function() { /* if (!ok && read.amended) { */ case 1: $r = m.mu.Lock(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } readOnly.copy(read, m.loadReadOnly()); - _tuple$1 = (_entry$1 = $mapIndex(read.m,$emptyInterface.keyFor(key)), _entry$1 !== undefined ? [_entry$1.v, true] : [ptrType$11.nil, false]); + _tuple$1 = (_entry$1 = $mapIndex(read.m,$emptyInterface.keyFor(key)), _entry$1 !== undefined ? [_entry$1.v, true] : [ptrType$15.nil, false]); e = _tuple$1[0]; ok = _tuple$1[1]; if (!ok && read.amended) { - _tuple$2 = (_entry$2 = $mapIndex(m.dirty,$emptyInterface.keyFor(key)), _entry$2 !== undefined ? [_entry$2.v, true] : [ptrType$11.nil, false]); + _tuple$2 = (_entry$2 = $mapIndex(m.dirty,$emptyInterface.keyFor(key)), _entry$2 !== undefined ? [_entry$2.v, true] : [ptrType$15.nil, false]); e = _tuple$2[0]; ok = _tuple$2[1]; m.missLocked(); @@ -12188,20 +12131,20 @@ $packages["sync"] = (function() { runtime_SemacquireMutex = function runtime_SemacquireMutex$1(s, lifo, skipframes) { var {_entry, _entry$1, _entry$2, _entry$3, _entry$4, _key, _key$1, _key$2, _r, ch, lifo, s, skipframes, $s, $r, $c} = $restore(this, {s, lifo, skipframes}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - /* */ if (((s.$get() - (_entry = $mapIndex(semAwoken,ptrType$1.keyFor(s)), _entry !== undefined ? _entry.v : 0) >>> 0)) === 0) { $s = 1; continue; } + /* */ if (((s.$get() - (_entry = $mapIndex(semAwoken,ptrType$2.keyFor(s)), _entry !== undefined ? _entry.v : 0) >>> 0)) === 0) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (((s.$get() - (_entry = $mapIndex(semAwoken,ptrType$1.keyFor(s)), _entry !== undefined ? _entry.v : 0) >>> 0)) === 0) { */ case 1: + /* if (((s.$get() - (_entry = $mapIndex(semAwoken,ptrType$2.keyFor(s)), _entry !== undefined ? _entry.v : 0) >>> 0)) === 0) { */ case 1: ch = new $Chan($Bool, 0); if (lifo) { - _key = s; (semWaiters || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$1.keyFor(_key), { k: _key, v: $appendSlice(new sliceType$1([ch]), (_entry$1 = $mapIndex(semWaiters,ptrType$1.keyFor(s)), _entry$1 !== undefined ? _entry$1.v : sliceType$1.nil)) }); + _key = s; (semWaiters || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$2.keyFor(_key), { k: _key, v: $appendSlice(new sliceType$1([ch]), (_entry$1 = $mapIndex(semWaiters,ptrType$2.keyFor(s)), _entry$1 !== undefined ? _entry$1.v : sliceType$1.nil)) }); } else { - _key$1 = s; (semWaiters || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$1.keyFor(_key$1), { k: _key$1, v: $append((_entry$2 = $mapIndex(semWaiters,ptrType$1.keyFor(s)), _entry$2 !== undefined ? _entry$2.v : sliceType$1.nil), ch) }); + _key$1 = s; (semWaiters || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$2.keyFor(_key$1), { k: _key$1, v: $append((_entry$2 = $mapIndex(semWaiters,ptrType$2.keyFor(s)), _entry$2 !== undefined ? _entry$2.v : sliceType$1.nil), ch) }); } _r = $recv(ch); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _r[0]; - _key$2 = s; (semAwoken || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$1.keyFor(_key$2), { k: _key$2, v: (_entry$3 = $mapIndex(semAwoken,ptrType$1.keyFor(s)), _entry$3 !== undefined ? _entry$3.v : 0) - (1) >>> 0 }); - if ((_entry$4 = $mapIndex(semAwoken,ptrType$1.keyFor(s)), _entry$4 !== undefined ? _entry$4.v : 0) === 0) { - $mapDelete(semAwoken, ptrType$1.keyFor(s)); + _key$2 = s; (semAwoken || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$2.keyFor(_key$2), { k: _key$2, v: (_entry$3 = $mapIndex(semAwoken,ptrType$2.keyFor(s)), _entry$3 !== undefined ? _entry$3.v : 0) - (1) >>> 0 }); + if ((_entry$4 = $mapIndex(semAwoken,ptrType$2.keyFor(s)), _entry$4 !== undefined ? _entry$4.v : 0) === 0) { + $mapDelete(semAwoken, ptrType$2.keyFor(s)); } /* } */ case 2: s.$set(s.$get() - (1) >>> 0); @@ -12226,17 +12169,17 @@ $packages["sync"] = (function() { var {_entry, _entry$1, _key, _key$1, ch, handoff, s, skipframes, w, $s, $r, $c} = $restore(this, {s, handoff, skipframes}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: s.$set(s.$get() + (1) >>> 0); - w = (_entry = $mapIndex(semWaiters,ptrType$1.keyFor(s)), _entry !== undefined ? _entry.v : sliceType$1.nil); + w = (_entry = $mapIndex(semWaiters,ptrType$2.keyFor(s)), _entry !== undefined ? _entry.v : sliceType$1.nil); if (w.$length === 0) { $s = -1; return; } ch = (0 >= w.$length ? ($throwRuntimeError("index out of range"), undefined) : w.$array[w.$offset + 0]); w = $subslice(w, 1); - _key = s; (semWaiters || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$1.keyFor(_key), { k: _key, v: w }); + _key = s; (semWaiters || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$2.keyFor(_key), { k: _key, v: w }); if (w.$length === 0) { - $mapDelete(semWaiters, ptrType$1.keyFor(s)); + $mapDelete(semWaiters, ptrType$2.keyFor(s)); } - _key$1 = s; (semAwoken || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$1.keyFor(_key$1), { k: _key$1, v: (_entry$1 = $mapIndex(semAwoken,ptrType$1.keyFor(s)), _entry$1 !== undefined ? _entry$1.v : 0) + (1) >>> 0 }); + _key$1 = s; (semAwoken || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$2.keyFor(_key$1), { k: _key$1, v: (_entry$1 = $mapIndex(semAwoken,ptrType$2.keyFor(s)), _entry$1 !== undefined ? _entry$1.v : 0) + (1) >>> 0 }); $r = $send(ch, true); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* */ } return; } var $f = {$blk: runtime_Semrelease$1, $c: true, $r, _entry, _entry$1, _key, _key$1, ch, handoff, s, skipframes, w, $s};return $f; @@ -12255,6 +12198,11 @@ $packages["sync"] = (function() { var s; $throwRuntimeError($externalize(s, $String)); }; + syscall_hasWaitingReaders = function syscall_hasWaitingReaders$1(rw) { + var r, rw; + r = rw.readerCount.Load(); + return r < 0 && (r + 1073741824 >> 0) > 0; + }; $ptrType(Pool).prototype.Get = function Get() { var {$24r, _r, p, x, x$1, x$2, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: @@ -12336,12 +12284,12 @@ $packages["sync"] = (function() { }; $ptrType(noCopy).prototype.Unlock = function Unlock$3() { }; - ptrType$3.methods = [{prop: "RLock", name: "RLock", pkg: "", typ: $funcType([], [], false)}, {prop: "TryRLock", name: "TryRLock", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "RUnlock", name: "RUnlock", pkg: "", typ: $funcType([], [], false)}, {prop: "rUnlockSlow", name: "rUnlockSlow", pkg: "sync", typ: $funcType([$Int32], [], false)}, {prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "TryLock", name: "TryLock", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}, {prop: "RLocker", name: "RLocker", pkg: "", typ: $funcType([], [Locker], false)}]; - ptrType$2.methods = [{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}]; - ptrType$15.methods = [{prop: "Do", name: "Do", pkg: "", typ: $funcType([funcType], [], false)}, {prop: "doSlow", name: "doSlow", pkg: "sync", typ: $funcType([funcType], [], false)}]; - ptrType$16.methods = [{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "TryLock", name: "TryLock", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "lockSlow", name: "lockSlow", pkg: "sync", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}, {prop: "unlockSlow", name: "unlockSlow", pkg: "sync", typ: $funcType([$Int32], [], false)}]; + ptrType$1.methods = [{prop: "RLock", name: "RLock", pkg: "", typ: $funcType([], [], false)}, {prop: "TryRLock", name: "TryRLock", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "RUnlock", name: "RUnlock", pkg: "", typ: $funcType([], [], false)}, {prop: "rUnlockSlow", name: "rUnlockSlow", pkg: "sync", typ: $funcType([$Int32], [], false)}, {prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "TryLock", name: "TryLock", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}, {prop: "RLocker", name: "RLocker", pkg: "", typ: $funcType([], [Locker], false)}]; + ptrType$3.methods = [{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}]; + ptrType$11.methods = [{prop: "Do", name: "Do", pkg: "", typ: $funcType([funcType], [], false)}, {prop: "doSlow", name: "doSlow", pkg: "sync", typ: $funcType([funcType], [], false)}]; + ptrType$12.methods = [{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "TryLock", name: "TryLock", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "lockSlow", name: "lockSlow", pkg: "sync", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}, {prop: "unlockSlow", name: "unlockSlow", pkg: "sync", typ: $funcType([$Int32], [], false)}]; ptrType$17.methods = [{prop: "loadReadOnly", name: "loadReadOnly", pkg: "sync", typ: $funcType([], [readOnly], false)}, {prop: "Load", name: "Load", pkg: "", typ: $funcType([$emptyInterface], [$emptyInterface, $Bool], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([$emptyInterface, $emptyInterface], [], false)}, {prop: "LoadOrStore", name: "LoadOrStore", pkg: "", typ: $funcType([$emptyInterface, $emptyInterface], [$emptyInterface, $Bool], false)}, {prop: "LoadAndDelete", name: "LoadAndDelete", pkg: "", typ: $funcType([$emptyInterface], [$emptyInterface, $Bool], false)}, {prop: "Delete", name: "Delete", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$emptyInterface, $emptyInterface], [$emptyInterface, $Bool], false)}, {prop: "CompareAndSwap", name: "CompareAndSwap", pkg: "", typ: $funcType([$emptyInterface, $emptyInterface, $emptyInterface], [$Bool], false)}, {prop: "CompareAndDelete", name: "CompareAndDelete", pkg: "", typ: $funcType([$emptyInterface, $emptyInterface], [$Bool], false)}, {prop: "Range", name: "Range", pkg: "", typ: $funcType([funcType$1], [], false)}, {prop: "missLocked", name: "missLocked", pkg: "sync", typ: $funcType([], [], false)}, {prop: "dirtyLocked", name: "dirtyLocked", pkg: "sync", typ: $funcType([], [], false)}]; - ptrType$11.methods = [{prop: "load", name: "load", pkg: "sync", typ: $funcType([], [$emptyInterface, $Bool], false)}, {prop: "tryCompareAndSwap", name: "tryCompareAndSwap", pkg: "sync", typ: $funcType([$emptyInterface, $emptyInterface], [$Bool], false)}, {prop: "unexpungeLocked", name: "unexpungeLocked", pkg: "sync", typ: $funcType([], [$Bool], false)}, {prop: "swapLocked", name: "swapLocked", pkg: "sync", typ: $funcType([ptrType], [ptrType], false)}, {prop: "tryLoadOrStore", name: "tryLoadOrStore", pkg: "sync", typ: $funcType([$emptyInterface], [$emptyInterface, $Bool, $Bool], false)}, {prop: "delete$", name: "delete", pkg: "sync", typ: $funcType([], [$emptyInterface, $Bool], false)}, {prop: "trySwap", name: "trySwap", pkg: "sync", typ: $funcType([ptrType], [ptrType, $Bool], false)}, {prop: "tryExpungeLocked", name: "tryExpungeLocked", pkg: "sync", typ: $funcType([], [$Bool], false)}]; + ptrType$15.methods = [{prop: "load", name: "load", pkg: "sync", typ: $funcType([], [$emptyInterface, $Bool], false)}, {prop: "tryCompareAndSwap", name: "tryCompareAndSwap", pkg: "sync", typ: $funcType([$emptyInterface, $emptyInterface], [$Bool], false)}, {prop: "unexpungeLocked", name: "unexpungeLocked", pkg: "sync", typ: $funcType([], [$Bool], false)}, {prop: "swapLocked", name: "swapLocked", pkg: "sync", typ: $funcType([ptrType], [ptrType], false)}, {prop: "tryLoadOrStore", name: "tryLoadOrStore", pkg: "sync", typ: $funcType([$emptyInterface], [$emptyInterface, $Bool, $Bool], false)}, {prop: "delete$", name: "delete", pkg: "sync", typ: $funcType([], [$emptyInterface, $Bool], false)}, {prop: "trySwap", name: "trySwap", pkg: "sync", typ: $funcType([ptrType], [ptrType, $Bool], false)}, {prop: "tryExpungeLocked", name: "tryExpungeLocked", pkg: "sync", typ: $funcType([], [$Bool], false)}]; ptrType$18.methods = [{prop: "Done", name: "Done", pkg: "", typ: $funcType([], [], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Wait", name: "Wait", pkg: "", typ: $funcType([], [], false)}]; ptrType$19.methods = [{prop: "Get", name: "Get", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Put", name: "Put", pkg: "", typ: $funcType([$emptyInterface], [], false)}]; ptrType$20.methods = [{prop: "Wait", name: "Wait", pkg: "", typ: $funcType([], [], false)}, {prop: "Signal", name: "Signal", pkg: "", typ: $funcType([], [], false)}, {prop: "Broadcast", name: "Broadcast", pkg: "", typ: $funcType([], [], false)}]; @@ -12353,15 +12301,16 @@ $packages["sync"] = (function() { Once.init("sync", [{prop: "done", name: "done", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "m", name: "m", embedded: false, exported: false, typ: Mutex, tag: ""}]); Mutex.init("sync", [{prop: "state", name: "state", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "sema", name: "sema", embedded: false, exported: false, typ: $Uint32, tag: ""}]); Locker.init([{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}]); - Map.init("sync", [{prop: "mu", name: "mu", embedded: false, exported: false, typ: Mutex, tag: ""}, {prop: "read", name: "read", embedded: false, exported: false, typ: atomic.Pointer[20 /* sync.readOnly */], tag: ""}, {prop: "dirty", name: "dirty", embedded: false, exported: false, typ: mapType, tag: ""}, {prop: "misses", name: "misses", embedded: false, exported: false, typ: $Int, tag: ""}]); + Map.init("sync", [{prop: "mu", name: "mu", embedded: false, exported: false, typ: Mutex, tag: ""}, {prop: "read", name: "read", embedded: false, exported: false, typ: atomic.Pointer[30 /* sync.readOnly */], tag: ""}, {prop: "dirty", name: "dirty", embedded: false, exported: false, typ: mapType, tag: ""}, {prop: "misses", name: "misses", embedded: false, exported: false, typ: $Int, tag: ""}]); readOnly.init("sync", [{prop: "m", name: "m", embedded: false, exported: false, typ: mapType, tag: ""}, {prop: "amended", name: "amended", embedded: false, exported: false, typ: $Bool, tag: ""}]); - entry.init("sync", [{prop: "p", name: "p", embedded: false, exported: false, typ: atomic.Pointer[25 /* any */], tag: ""}]); + entry.init("sync", [{prop: "p", name: "p", embedded: false, exported: false, typ: atomic.Pointer[35 /* any */], tag: ""}]); WaitGroup.init("sync", [{prop: "counter", name: "counter", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "ch", name: "ch", embedded: false, exported: false, typ: chanType$1, tag: ""}, {prop: "state1", name: "state1", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "state2", name: "state2", embedded: false, exported: false, typ: $Uint32, tag: ""}]); Pool.init("sync", [{prop: "store", name: "store", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "New", name: "New", embedded: false, exported: true, typ: funcType$2, tag: ""}]); Cond.init("sync", [{prop: "noCopy", name: "noCopy", embedded: false, exported: false, typ: noCopy, tag: ""}, {prop: "L", name: "L", embedded: false, exported: true, typ: Locker, tag: ""}, {prop: "notify", name: "notify", embedded: false, exported: false, typ: notifyList, tag: ""}, {prop: "checker", name: "checker", embedded: false, exported: false, typ: copyChecker, tag: ""}, {prop: "n", name: "n", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "ch", name: "ch", embedded: false, exported: false, typ: chanType, tag: ""}]); noCopy.init("", []); $linknames["sync.runtime_Semacquire"] = runtime_Semacquire; $linknames["sync.runtime_Semrelease"] = runtime_Semrelease; + $linknames["sync.syscall_hasWaitingReaders"] = syscall_hasWaitingReaders; $pkg.$initLinknames = function() { runtime_nanotime = $linknames["runtime.nanotime"]; }; @@ -12382,7 +12331,7 @@ $packages["sync"] = (function() { return $pkg; })(); $packages["unicode"] = (function() { - var $pkg = {}, $init, RangeTable, Range16, Range32, CaseRange, d, foldPair, sliceType, sliceType$1, sliceType$2, sliceType$3, arrayType, ptrType, sliceType$4, _C, _Cc, _Cf, _Co, _Cs, _L, _Ll, _Lm, _Lo, _Lt, _Lu, _M, _Mc, _Me, _Mn, _N, _Nd, _Nl, _No, _P, _Pc, _Pd, _Pe, _Pf, _Pi, _Po, _Ps, _S, _Sc, _Sk, _Sm, _So, _Z, _Zl, _Zp, _Zs, _Adlam, _Ahom, _Anatolian_Hieroglyphs, _Arabic, _Armenian, _Avestan, _Balinese, _Bamum, _Bassa_Vah, _Batak, _Bengali, _Bhaiksuki, _Bopomofo, _Brahmi, _Braille, _Buginese, _Buhid, _Canadian_Aboriginal, _Carian, _Caucasian_Albanian, _Chakma, _Cham, _Cherokee, _Chorasmian, _Common, _Coptic, _Cuneiform, _Cypriot, _Cyrillic, _Deseret, _Devanagari, _Dives_Akuru, _Dogra, _Duployan, _Egyptian_Hieroglyphs, _Elbasan, _Elymaic, _Ethiopic, _Georgian, _Glagolitic, _Gothic, _Grantha, _Greek, _Gujarati, _Gunjala_Gondi, _Gurmukhi, _Han, _Hangul, _Hanifi_Rohingya, _Hanunoo, _Hatran, _Hebrew, _Hiragana, _Imperial_Aramaic, _Inherited, _Inscriptional_Pahlavi, _Inscriptional_Parthian, _Javanese, _Kaithi, _Kannada, _Katakana, _Kayah_Li, _Kharoshthi, _Khitan_Small_Script, _Khmer, _Khojki, _Khudawadi, _Lao, _Latin, _Lepcha, _Limbu, _Linear_A, _Linear_B, _Lisu, _Lycian, _Lydian, _Mahajani, _Makasar, _Malayalam, _Mandaic, _Manichaean, _Marchen, _Masaram_Gondi, _Medefaidrin, _Meetei_Mayek, _Mende_Kikakui, _Meroitic_Cursive, _Meroitic_Hieroglyphs, _Miao, _Modi, _Mongolian, _Mro, _Multani, _Myanmar, _Nabataean, _Nandinagari, _New_Tai_Lue, _Newa, _Nko, _Nushu, _Nyiakeng_Puachue_Hmong, _Ogham, _Ol_Chiki, _Old_Hungarian, _Old_Italic, _Old_North_Arabian, _Old_Permic, _Old_Persian, _Old_Sogdian, _Old_South_Arabian, _Old_Turkic, _Oriya, _Osage, _Osmanya, _Pahawh_Hmong, _Palmyrene, _Pau_Cin_Hau, _Phags_Pa, _Phoenician, _Psalter_Pahlavi, _Rejang, _Runic, _Samaritan, _Saurashtra, _Sharada, _Shavian, _Siddham, _SignWriting, _Sinhala, _Sogdian, _Sora_Sompeng, _Soyombo, _Sundanese, _Syloti_Nagri, _Syriac, _Tagalog, _Tagbanwa, _Tai_Le, _Tai_Tham, _Tai_Viet, _Takri, _Tamil, _Tangut, _Telugu, _Thaana, _Thai, _Tibetan, _Tifinagh, _Tirhuta, _Ugaritic, _Vai, _Wancho, _Warang_Citi, _Yezidi, _Yi, _Zanabazar_Square, _White_Space, caseOrbit, foldL, foldLl, foldLt, foldLu, foldM, foldMn, foldCommon, foldGreek, foldInherited, asciiFold, _CaseRanges, properties, is16, is32, Is, isExcludingLatin, IsUpper, To, ToUpper, ToLower, SimpleFold, IsGraphic, IsPrint, In, IsLetter, IsNumber, IsPunct, IsSpace, to, IsDigit; + var $pkg = {}, $init, RangeTable, Range16, Range32, CaseRange, d, foldPair, sliceType, sliceType$1, sliceType$2, arrayType, sliceType$3, ptrType, sliceType$4, ptrType$1, ptrType$2, ptrType$3, _C, _Cc, _Cf, _Co, _Cs, _L, _Ll, _Lm, _Lo, _Lt, _Lu, _M, _Mc, _Me, _Mn, _N, _Nd, _Nl, _No, _P, _Pc, _Pd, _Pe, _Pf, _Pi, _Po, _Ps, _S, _Sc, _Sk, _Sm, _So, _Z, _Zl, _Zp, _Zs, _Adlam, _Ahom, _Anatolian_Hieroglyphs, _Arabic, _Armenian, _Avestan, _Balinese, _Bamum, _Bassa_Vah, _Batak, _Bengali, _Bhaiksuki, _Bopomofo, _Brahmi, _Braille, _Buginese, _Buhid, _Canadian_Aboriginal, _Carian, _Caucasian_Albanian, _Chakma, _Cham, _Cherokee, _Chorasmian, _Common, _Coptic, _Cuneiform, _Cypriot, _Cypro_Minoan, _Cyrillic, _Deseret, _Devanagari, _Dives_Akuru, _Dogra, _Duployan, _Egyptian_Hieroglyphs, _Elbasan, _Elymaic, _Ethiopic, _Georgian, _Glagolitic, _Gothic, _Grantha, _Greek, _Gujarati, _Gunjala_Gondi, _Gurmukhi, _Han, _Hangul, _Hanifi_Rohingya, _Hanunoo, _Hatran, _Hebrew, _Hiragana, _Imperial_Aramaic, _Inherited, _Inscriptional_Pahlavi, _Inscriptional_Parthian, _Javanese, _Kaithi, _Kannada, _Katakana, _Kawi, _Kayah_Li, _Kharoshthi, _Khitan_Small_Script, _Khmer, _Khojki, _Khudawadi, _Lao, _Latin, _Lepcha, _Limbu, _Linear_A, _Linear_B, _Lisu, _Lycian, _Lydian, _Mahajani, _Makasar, _Malayalam, _Mandaic, _Manichaean, _Marchen, _Masaram_Gondi, _Medefaidrin, _Meetei_Mayek, _Mende_Kikakui, _Meroitic_Cursive, _Meroitic_Hieroglyphs, _Miao, _Modi, _Mongolian, _Mro, _Multani, _Myanmar, _Nabataean, _Nag_Mundari, _Nandinagari, _New_Tai_Lue, _Newa, _Nko, _Nushu, _Nyiakeng_Puachue_Hmong, _Ogham, _Ol_Chiki, _Old_Hungarian, _Old_Italic, _Old_North_Arabian, _Old_Permic, _Old_Persian, _Old_Sogdian, _Old_South_Arabian, _Old_Turkic, _Old_Uyghur, _Oriya, _Osage, _Osmanya, _Pahawh_Hmong, _Palmyrene, _Pau_Cin_Hau, _Phags_Pa, _Phoenician, _Psalter_Pahlavi, _Rejang, _Runic, _Samaritan, _Saurashtra, _Sharada, _Shavian, _Siddham, _SignWriting, _Sinhala, _Sogdian, _Sora_Sompeng, _Soyombo, _Sundanese, _Syloti_Nagri, _Syriac, _Tagalog, _Tagbanwa, _Tai_Le, _Tai_Tham, _Tai_Viet, _Takri, _Tamil, _Tangsa, _Tangut, _Telugu, _Thaana, _Thai, _Tibetan, _Tifinagh, _Tirhuta, _Toto, _Ugaritic, _Vai, _Vithkuqi, _Wancho, _Warang_Citi, _Yezidi, _Yi, _Zanabazar_Square, _White_Space, _CaseRanges, properties, asciiFold, caseOrbit, foldL, foldLl, foldLt, foldLu, foldM, foldMn, foldCommon, foldGreek, foldInherited, is16, is32, Is, isExcludingLatin, IsUpper, To, ToUpper, ToLower, SimpleFold, IsGraphic, IsPrint, In, IsLetter, IsNumber, IsPunct, IsSpace, to, IsDigit; RangeTable = $newType(0, $kindStruct, "unicode.RangeTable", true, "unicode", true, function(R16_, R32_, LatinOffset_) { this.$val = this; if (arguments.length === 0) { @@ -12451,11 +12400,14 @@ $packages["unicode"] = (function() { $pkg.$finishSetup = function() { sliceType = $sliceType(Range16); sliceType$1 = $sliceType(Range32); - sliceType$2 = $sliceType(foldPair); - sliceType$3 = $sliceType(CaseRange); + sliceType$2 = $sliceType(CaseRange); arrayType = $arrayType($Int32, 3); + sliceType$3 = $sliceType(foldPair); ptrType = $ptrType(RangeTable); sliceType$4 = $sliceType(ptrType); + ptrType$1 = $ptrType(Range16); + ptrType$2 = $ptrType(Range32); + ptrType$3 = $ptrType(CaseRange); is16 = function is16$1(ranges, r) { var _i, _q, _r, _r$1, _ref, hi, i, lo, m, r, range_, range_$1, ranges; if (ranges.$length <= 18 || r <= 255) { @@ -12464,7 +12416,7 @@ $packages["unicode"] = (function() { while (true) { if (!(_i < _ref.$length)) { break; } i = _i; - range_ = ((i < 0 || i >= ranges.$length) ? ($throwRuntimeError("index out of range"), undefined) : ranges.$array[ranges.$offset + i]); + range_ = ((i < 0 || i >= ranges.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(ranges.$array, ranges.$offset + i, ptrType$1)); if (r < range_.Lo) { return false; } @@ -12480,7 +12432,7 @@ $packages["unicode"] = (function() { while (true) { if (!(lo < hi)) { break; } m = lo + (_q = ((hi - lo >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0; - range_$1 = ((m < 0 || m >= ranges.$length) ? ($throwRuntimeError("index out of range"), undefined) : ranges.$array[ranges.$offset + m]); + range_$1 = ((m < 0 || m >= ranges.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(ranges.$array, ranges.$offset + m, ptrType$1)); if (range_$1.Lo <= r && r <= range_$1.Hi) { return (range_$1.Stride === 1) || ((_r$1 = ((r - range_$1.Lo << 16 >>> 16)) % range_$1.Stride, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) === 0); } @@ -12500,7 +12452,7 @@ $packages["unicode"] = (function() { while (true) { if (!(_i < _ref.$length)) { break; } i = _i; - range_ = ((i < 0 || i >= ranges.$length) ? ($throwRuntimeError("index out of range"), undefined) : ranges.$array[ranges.$offset + i]); + range_ = ((i < 0 || i >= ranges.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(ranges.$array, ranges.$offset + i, ptrType$2)); if (r < range_.Lo) { return false; } @@ -12703,7 +12655,7 @@ $packages["unicode"] = (function() { while (true) { if (!(lo < hi)) { break; } m = lo + (_q = ((hi - lo >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0; - cr = ((m < 0 || m >= caseRange.$length) ? ($throwRuntimeError("index out of range"), undefined) : caseRange.$array[caseRange.$offset + m]); + cr = ((m < 0 || m >= caseRange.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(caseRange.$array, caseRange.$offset + m, ptrType$3)); if (((cr.Lo >> 0)) <= r && r <= ((cr.Hi >> 0))) { delta = ((x = cr.Delta, ((_case < 0 || _case >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[_case]))); if (delta > 1114111) { @@ -12749,38 +12701,38 @@ $packages["unicode"] = (function() { $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: - _C = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(0, 31, 1), Range16), $clone(new Range16.ptr(127, 159, 1), Range16), $clone(new Range16.ptr(173, 1536, 1363), Range16), $clone(new Range16.ptr(1537, 1541, 1), Range16), $clone(new Range16.ptr(1564, 1757, 193), Range16), $clone(new Range16.ptr(1807, 2274, 467), Range16), $clone(new Range16.ptr(6158, 8203, 2045), Range16), $clone(new Range16.ptr(8204, 8207, 1), Range16), $clone(new Range16.ptr(8234, 8238, 1), Range16), $clone(new Range16.ptr(8288, 8292, 1), Range16), $clone(new Range16.ptr(8294, 8303, 1), Range16), $clone(new Range16.ptr(55296, 63743, 1), Range16), $clone(new Range16.ptr(65279, 65529, 250), Range16), $clone(new Range16.ptr(65530, 65531, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(69821, 69837, 16), Range32), $clone(new Range32.ptr(78896, 78904, 1), Range32), $clone(new Range32.ptr(113824, 113827, 1), Range32), $clone(new Range32.ptr(119155, 119162, 1), Range32), $clone(new Range32.ptr(917505, 917536, 31), Range32), $clone(new Range32.ptr(917537, 917631, 1), Range32), $clone(new Range32.ptr(983040, 1048573, 1), Range32), $clone(new Range32.ptr(1048576, 1114109, 1), Range32)]), 2); + _C = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(0, 31, 1), Range16), $clone(new Range16.ptr(127, 159, 1), Range16), $clone(new Range16.ptr(173, 1536, 1363), Range16), $clone(new Range16.ptr(1537, 1541, 1), Range16), $clone(new Range16.ptr(1564, 1757, 193), Range16), $clone(new Range16.ptr(1807, 2192, 385), Range16), $clone(new Range16.ptr(2193, 2274, 81), Range16), $clone(new Range16.ptr(6158, 8203, 2045), Range16), $clone(new Range16.ptr(8204, 8207, 1), Range16), $clone(new Range16.ptr(8234, 8238, 1), Range16), $clone(new Range16.ptr(8288, 8292, 1), Range16), $clone(new Range16.ptr(8294, 8303, 1), Range16), $clone(new Range16.ptr(55296, 63743, 1), Range16), $clone(new Range16.ptr(65279, 65529, 250), Range16), $clone(new Range16.ptr(65530, 65531, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(69821, 69837, 16), Range32), $clone(new Range32.ptr(78896, 78911, 1), Range32), $clone(new Range32.ptr(113824, 113827, 1), Range32), $clone(new Range32.ptr(119155, 119162, 1), Range32), $clone(new Range32.ptr(917505, 917536, 31), Range32), $clone(new Range32.ptr(917537, 917631, 1), Range32), $clone(new Range32.ptr(983040, 1048573, 1), Range32), $clone(new Range32.ptr(1048576, 1114109, 1), Range32)]), 2); _Cc = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(0, 31, 1), Range16), $clone(new Range16.ptr(127, 159, 1), Range16)]), sliceType$1.nil, 2); - _Cf = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(173, 1536, 1363), Range16), $clone(new Range16.ptr(1537, 1541, 1), Range16), $clone(new Range16.ptr(1564, 1757, 193), Range16), $clone(new Range16.ptr(1807, 2274, 467), Range16), $clone(new Range16.ptr(6158, 8203, 2045), Range16), $clone(new Range16.ptr(8204, 8207, 1), Range16), $clone(new Range16.ptr(8234, 8238, 1), Range16), $clone(new Range16.ptr(8288, 8292, 1), Range16), $clone(new Range16.ptr(8294, 8303, 1), Range16), $clone(new Range16.ptr(65279, 65529, 250), Range16), $clone(new Range16.ptr(65530, 65531, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(69821, 69837, 16), Range32), $clone(new Range32.ptr(78896, 78904, 1), Range32), $clone(new Range32.ptr(113824, 113827, 1), Range32), $clone(new Range32.ptr(119155, 119162, 1), Range32), $clone(new Range32.ptr(917505, 917536, 31), Range32), $clone(new Range32.ptr(917537, 917631, 1), Range32)]), 0); + _Cf = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(173, 1536, 1363), Range16), $clone(new Range16.ptr(1537, 1541, 1), Range16), $clone(new Range16.ptr(1564, 1757, 193), Range16), $clone(new Range16.ptr(1807, 2192, 385), Range16), $clone(new Range16.ptr(2193, 2274, 81), Range16), $clone(new Range16.ptr(6158, 8203, 2045), Range16), $clone(new Range16.ptr(8204, 8207, 1), Range16), $clone(new Range16.ptr(8234, 8238, 1), Range16), $clone(new Range16.ptr(8288, 8292, 1), Range16), $clone(new Range16.ptr(8294, 8303, 1), Range16), $clone(new Range16.ptr(65279, 65529, 250), Range16), $clone(new Range16.ptr(65530, 65531, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(69821, 69837, 16), Range32), $clone(new Range32.ptr(78896, 78911, 1), Range32), $clone(new Range32.ptr(113824, 113827, 1), Range32), $clone(new Range32.ptr(119155, 119162, 1), Range32), $clone(new Range32.ptr(917505, 917536, 31), Range32), $clone(new Range32.ptr(917537, 917631, 1), Range32)]), 0); _Co = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(57344, 63743, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(983040, 1048573, 1), Range32), $clone(new Range32.ptr(1048576, 1114109, 1), Range32)]), 0); _Cs = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(55296, 57343, 1), Range16)]), sliceType$1.nil, 0); - _L = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(65, 90, 1), Range16), $clone(new Range16.ptr(97, 122, 1), Range16), $clone(new Range16.ptr(170, 181, 11), Range16), $clone(new Range16.ptr(186, 192, 6), Range16), $clone(new Range16.ptr(193, 214, 1), Range16), $clone(new Range16.ptr(216, 246, 1), Range16), $clone(new Range16.ptr(248, 705, 1), Range16), $clone(new Range16.ptr(710, 721, 1), Range16), $clone(new Range16.ptr(736, 740, 1), Range16), $clone(new Range16.ptr(748, 750, 2), Range16), $clone(new Range16.ptr(880, 884, 1), Range16), $clone(new Range16.ptr(886, 887, 1), Range16), $clone(new Range16.ptr(890, 893, 1), Range16), $clone(new Range16.ptr(895, 902, 7), Range16), $clone(new Range16.ptr(904, 906, 1), Range16), $clone(new Range16.ptr(908, 910, 2), Range16), $clone(new Range16.ptr(911, 929, 1), Range16), $clone(new Range16.ptr(931, 1013, 1), Range16), $clone(new Range16.ptr(1015, 1153, 1), Range16), $clone(new Range16.ptr(1162, 1327, 1), Range16), $clone(new Range16.ptr(1329, 1366, 1), Range16), $clone(new Range16.ptr(1369, 1376, 7), Range16), $clone(new Range16.ptr(1377, 1416, 1), Range16), $clone(new Range16.ptr(1488, 1514, 1), Range16), $clone(new Range16.ptr(1519, 1522, 1), Range16), $clone(new Range16.ptr(1568, 1610, 1), Range16), $clone(new Range16.ptr(1646, 1647, 1), Range16), $clone(new Range16.ptr(1649, 1747, 1), Range16), $clone(new Range16.ptr(1749, 1765, 16), Range16), $clone(new Range16.ptr(1766, 1774, 8), Range16), $clone(new Range16.ptr(1775, 1786, 11), Range16), $clone(new Range16.ptr(1787, 1788, 1), Range16), $clone(new Range16.ptr(1791, 1808, 17), Range16), $clone(new Range16.ptr(1810, 1839, 1), Range16), $clone(new Range16.ptr(1869, 1957, 1), Range16), $clone(new Range16.ptr(1969, 1994, 25), Range16), $clone(new Range16.ptr(1995, 2026, 1), Range16), $clone(new Range16.ptr(2036, 2037, 1), Range16), $clone(new Range16.ptr(2042, 2048, 6), Range16), $clone(new Range16.ptr(2049, 2069, 1), Range16), $clone(new Range16.ptr(2074, 2084, 10), Range16), $clone(new Range16.ptr(2088, 2112, 24), Range16), $clone(new Range16.ptr(2113, 2136, 1), Range16), $clone(new Range16.ptr(2144, 2154, 1), Range16), $clone(new Range16.ptr(2208, 2228, 1), Range16), $clone(new Range16.ptr(2230, 2247, 1), Range16), $clone(new Range16.ptr(2308, 2361, 1), Range16), $clone(new Range16.ptr(2365, 2384, 19), Range16), $clone(new Range16.ptr(2392, 2401, 1), Range16), $clone(new Range16.ptr(2417, 2432, 1), Range16), $clone(new Range16.ptr(2437, 2444, 1), Range16), $clone(new Range16.ptr(2447, 2448, 1), Range16), $clone(new Range16.ptr(2451, 2472, 1), Range16), $clone(new Range16.ptr(2474, 2480, 1), Range16), $clone(new Range16.ptr(2482, 2486, 4), Range16), $clone(new Range16.ptr(2487, 2489, 1), Range16), $clone(new Range16.ptr(2493, 2510, 17), Range16), $clone(new Range16.ptr(2524, 2525, 1), Range16), $clone(new Range16.ptr(2527, 2529, 1), Range16), $clone(new Range16.ptr(2544, 2545, 1), Range16), $clone(new Range16.ptr(2556, 2565, 9), Range16), $clone(new Range16.ptr(2566, 2570, 1), Range16), $clone(new Range16.ptr(2575, 2576, 1), Range16), $clone(new Range16.ptr(2579, 2600, 1), Range16), $clone(new Range16.ptr(2602, 2608, 1), Range16), $clone(new Range16.ptr(2610, 2611, 1), Range16), $clone(new Range16.ptr(2613, 2614, 1), Range16), $clone(new Range16.ptr(2616, 2617, 1), Range16), $clone(new Range16.ptr(2649, 2652, 1), Range16), $clone(new Range16.ptr(2654, 2674, 20), Range16), $clone(new Range16.ptr(2675, 2676, 1), Range16), $clone(new Range16.ptr(2693, 2701, 1), Range16), $clone(new Range16.ptr(2703, 2705, 1), Range16), $clone(new Range16.ptr(2707, 2728, 1), Range16), $clone(new Range16.ptr(2730, 2736, 1), Range16), $clone(new Range16.ptr(2738, 2739, 1), Range16), $clone(new Range16.ptr(2741, 2745, 1), Range16), $clone(new Range16.ptr(2749, 2768, 19), Range16), $clone(new Range16.ptr(2784, 2785, 1), Range16), $clone(new Range16.ptr(2809, 2821, 12), Range16), $clone(new Range16.ptr(2822, 2828, 1), Range16), $clone(new Range16.ptr(2831, 2832, 1), Range16), $clone(new Range16.ptr(2835, 2856, 1), Range16), $clone(new Range16.ptr(2858, 2864, 1), Range16), $clone(new Range16.ptr(2866, 2867, 1), Range16), $clone(new Range16.ptr(2869, 2873, 1), Range16), $clone(new Range16.ptr(2877, 2908, 31), Range16), $clone(new Range16.ptr(2909, 2911, 2), Range16), $clone(new Range16.ptr(2912, 2913, 1), Range16), $clone(new Range16.ptr(2929, 2947, 18), Range16), $clone(new Range16.ptr(2949, 2954, 1), Range16), $clone(new Range16.ptr(2958, 2960, 1), Range16), $clone(new Range16.ptr(2962, 2965, 1), Range16), $clone(new Range16.ptr(2969, 2970, 1), Range16), $clone(new Range16.ptr(2972, 2974, 2), Range16), $clone(new Range16.ptr(2975, 2979, 4), Range16), $clone(new Range16.ptr(2980, 2984, 4), Range16), $clone(new Range16.ptr(2985, 2986, 1), Range16), $clone(new Range16.ptr(2990, 3001, 1), Range16), $clone(new Range16.ptr(3024, 3077, 53), Range16), $clone(new Range16.ptr(3078, 3084, 1), Range16), $clone(new Range16.ptr(3086, 3088, 1), Range16), $clone(new Range16.ptr(3090, 3112, 1), Range16), $clone(new Range16.ptr(3114, 3129, 1), Range16), $clone(new Range16.ptr(3133, 3160, 27), Range16), $clone(new Range16.ptr(3161, 3162, 1), Range16), $clone(new Range16.ptr(3168, 3169, 1), Range16), $clone(new Range16.ptr(3200, 3205, 5), Range16), $clone(new Range16.ptr(3206, 3212, 1), Range16), $clone(new Range16.ptr(3214, 3216, 1), Range16), $clone(new Range16.ptr(3218, 3240, 1), Range16), $clone(new Range16.ptr(3242, 3251, 1), Range16), $clone(new Range16.ptr(3253, 3257, 1), Range16), $clone(new Range16.ptr(3261, 3294, 33), Range16), $clone(new Range16.ptr(3296, 3297, 1), Range16), $clone(new Range16.ptr(3313, 3314, 1), Range16), $clone(new Range16.ptr(3332, 3340, 1), Range16), $clone(new Range16.ptr(3342, 3344, 1), Range16), $clone(new Range16.ptr(3346, 3386, 1), Range16), $clone(new Range16.ptr(3389, 3406, 17), Range16), $clone(new Range16.ptr(3412, 3414, 1), Range16), $clone(new Range16.ptr(3423, 3425, 1), Range16), $clone(new Range16.ptr(3450, 3455, 1), Range16), $clone(new Range16.ptr(3461, 3478, 1), Range16), $clone(new Range16.ptr(3482, 3505, 1), Range16), $clone(new Range16.ptr(3507, 3515, 1), Range16), $clone(new Range16.ptr(3517, 3520, 3), Range16), $clone(new Range16.ptr(3521, 3526, 1), Range16), $clone(new Range16.ptr(3585, 3632, 1), Range16), $clone(new Range16.ptr(3634, 3635, 1), Range16), $clone(new Range16.ptr(3648, 3654, 1), Range16), $clone(new Range16.ptr(3713, 3714, 1), Range16), $clone(new Range16.ptr(3716, 3718, 2), Range16), $clone(new Range16.ptr(3719, 3722, 1), Range16), $clone(new Range16.ptr(3724, 3747, 1), Range16), $clone(new Range16.ptr(3749, 3751, 2), Range16), $clone(new Range16.ptr(3752, 3760, 1), Range16), $clone(new Range16.ptr(3762, 3763, 1), Range16), $clone(new Range16.ptr(3773, 3776, 3), Range16), $clone(new Range16.ptr(3777, 3780, 1), Range16), $clone(new Range16.ptr(3782, 3804, 22), Range16), $clone(new Range16.ptr(3805, 3807, 1), Range16), $clone(new Range16.ptr(3840, 3904, 64), Range16), $clone(new Range16.ptr(3905, 3911, 1), Range16), $clone(new Range16.ptr(3913, 3948, 1), Range16), $clone(new Range16.ptr(3976, 3980, 1), Range16), $clone(new Range16.ptr(4096, 4138, 1), Range16), $clone(new Range16.ptr(4159, 4176, 17), Range16), $clone(new Range16.ptr(4177, 4181, 1), Range16), $clone(new Range16.ptr(4186, 4189, 1), Range16), $clone(new Range16.ptr(4193, 4197, 4), Range16), $clone(new Range16.ptr(4198, 4206, 8), Range16), $clone(new Range16.ptr(4207, 4208, 1), Range16), $clone(new Range16.ptr(4213, 4225, 1), Range16), $clone(new Range16.ptr(4238, 4256, 18), Range16), $clone(new Range16.ptr(4257, 4293, 1), Range16), $clone(new Range16.ptr(4295, 4301, 6), Range16), $clone(new Range16.ptr(4304, 4346, 1), Range16), $clone(new Range16.ptr(4348, 4680, 1), Range16), $clone(new Range16.ptr(4682, 4685, 1), Range16), $clone(new Range16.ptr(4688, 4694, 1), Range16), $clone(new Range16.ptr(4696, 4698, 2), Range16), $clone(new Range16.ptr(4699, 4701, 1), Range16), $clone(new Range16.ptr(4704, 4744, 1), Range16), $clone(new Range16.ptr(4746, 4749, 1), Range16), $clone(new Range16.ptr(4752, 4784, 1), Range16), $clone(new Range16.ptr(4786, 4789, 1), Range16), $clone(new Range16.ptr(4792, 4798, 1), Range16), $clone(new Range16.ptr(4800, 4802, 2), Range16), $clone(new Range16.ptr(4803, 4805, 1), Range16), $clone(new Range16.ptr(4808, 4822, 1), Range16), $clone(new Range16.ptr(4824, 4880, 1), Range16), $clone(new Range16.ptr(4882, 4885, 1), Range16), $clone(new Range16.ptr(4888, 4954, 1), Range16), $clone(new Range16.ptr(4992, 5007, 1), Range16), $clone(new Range16.ptr(5024, 5109, 1), Range16), $clone(new Range16.ptr(5112, 5117, 1), Range16), $clone(new Range16.ptr(5121, 5740, 1), Range16), $clone(new Range16.ptr(5743, 5759, 1), Range16), $clone(new Range16.ptr(5761, 5786, 1), Range16), $clone(new Range16.ptr(5792, 5866, 1), Range16), $clone(new Range16.ptr(5873, 5880, 1), Range16), $clone(new Range16.ptr(5888, 5900, 1), Range16), $clone(new Range16.ptr(5902, 5905, 1), Range16), $clone(new Range16.ptr(5920, 5937, 1), Range16), $clone(new Range16.ptr(5952, 5969, 1), Range16), $clone(new Range16.ptr(5984, 5996, 1), Range16), $clone(new Range16.ptr(5998, 6000, 1), Range16), $clone(new Range16.ptr(6016, 6067, 1), Range16), $clone(new Range16.ptr(6103, 6108, 5), Range16), $clone(new Range16.ptr(6176, 6264, 1), Range16), $clone(new Range16.ptr(6272, 6276, 1), Range16), $clone(new Range16.ptr(6279, 6312, 1), Range16), $clone(new Range16.ptr(6314, 6320, 6), Range16), $clone(new Range16.ptr(6321, 6389, 1), Range16), $clone(new Range16.ptr(6400, 6430, 1), Range16), $clone(new Range16.ptr(6480, 6509, 1), Range16), $clone(new Range16.ptr(6512, 6516, 1), Range16), $clone(new Range16.ptr(6528, 6571, 1), Range16), $clone(new Range16.ptr(6576, 6601, 1), Range16), $clone(new Range16.ptr(6656, 6678, 1), Range16), $clone(new Range16.ptr(6688, 6740, 1), Range16), $clone(new Range16.ptr(6823, 6917, 94), Range16), $clone(new Range16.ptr(6918, 6963, 1), Range16), $clone(new Range16.ptr(6981, 6987, 1), Range16), $clone(new Range16.ptr(7043, 7072, 1), Range16), $clone(new Range16.ptr(7086, 7087, 1), Range16), $clone(new Range16.ptr(7098, 7141, 1), Range16), $clone(new Range16.ptr(7168, 7203, 1), Range16), $clone(new Range16.ptr(7245, 7247, 1), Range16), $clone(new Range16.ptr(7258, 7293, 1), Range16), $clone(new Range16.ptr(7296, 7304, 1), Range16), $clone(new Range16.ptr(7312, 7354, 1), Range16), $clone(new Range16.ptr(7357, 7359, 1), Range16), $clone(new Range16.ptr(7401, 7404, 1), Range16), $clone(new Range16.ptr(7406, 7411, 1), Range16), $clone(new Range16.ptr(7413, 7414, 1), Range16), $clone(new Range16.ptr(7418, 7424, 6), Range16), $clone(new Range16.ptr(7425, 7615, 1), Range16), $clone(new Range16.ptr(7680, 7957, 1), Range16), $clone(new Range16.ptr(7960, 7965, 1), Range16), $clone(new Range16.ptr(7968, 8005, 1), Range16), $clone(new Range16.ptr(8008, 8013, 1), Range16), $clone(new Range16.ptr(8016, 8023, 1), Range16), $clone(new Range16.ptr(8025, 8031, 2), Range16), $clone(new Range16.ptr(8032, 8061, 1), Range16), $clone(new Range16.ptr(8064, 8116, 1), Range16), $clone(new Range16.ptr(8118, 8124, 1), Range16), $clone(new Range16.ptr(8126, 8130, 4), Range16), $clone(new Range16.ptr(8131, 8132, 1), Range16), $clone(new Range16.ptr(8134, 8140, 1), Range16), $clone(new Range16.ptr(8144, 8147, 1), Range16), $clone(new Range16.ptr(8150, 8155, 1), Range16), $clone(new Range16.ptr(8160, 8172, 1), Range16), $clone(new Range16.ptr(8178, 8180, 1), Range16), $clone(new Range16.ptr(8182, 8188, 1), Range16), $clone(new Range16.ptr(8305, 8319, 14), Range16), $clone(new Range16.ptr(8336, 8348, 1), Range16), $clone(new Range16.ptr(8450, 8455, 5), Range16), $clone(new Range16.ptr(8458, 8467, 1), Range16), $clone(new Range16.ptr(8469, 8473, 4), Range16), $clone(new Range16.ptr(8474, 8477, 1), Range16), $clone(new Range16.ptr(8484, 8490, 2), Range16), $clone(new Range16.ptr(8491, 8493, 1), Range16), $clone(new Range16.ptr(8495, 8505, 1), Range16), $clone(new Range16.ptr(8508, 8511, 1), Range16), $clone(new Range16.ptr(8517, 8521, 1), Range16), $clone(new Range16.ptr(8526, 8579, 53), Range16), $clone(new Range16.ptr(8580, 11264, 2684), Range16), $clone(new Range16.ptr(11265, 11310, 1), Range16), $clone(new Range16.ptr(11312, 11358, 1), Range16), $clone(new Range16.ptr(11360, 11492, 1), Range16), $clone(new Range16.ptr(11499, 11502, 1), Range16), $clone(new Range16.ptr(11506, 11507, 1), Range16), $clone(new Range16.ptr(11520, 11557, 1), Range16), $clone(new Range16.ptr(11559, 11565, 6), Range16), $clone(new Range16.ptr(11568, 11623, 1), Range16), $clone(new Range16.ptr(11631, 11648, 17), Range16), $clone(new Range16.ptr(11649, 11670, 1), Range16), $clone(new Range16.ptr(11680, 11686, 1), Range16), $clone(new Range16.ptr(11688, 11694, 1), Range16), $clone(new Range16.ptr(11696, 11702, 1), Range16), $clone(new Range16.ptr(11704, 11710, 1), Range16), $clone(new Range16.ptr(11712, 11718, 1), Range16), $clone(new Range16.ptr(11720, 11726, 1), Range16), $clone(new Range16.ptr(11728, 11734, 1), Range16), $clone(new Range16.ptr(11736, 11742, 1), Range16), $clone(new Range16.ptr(11823, 12293, 470), Range16), $clone(new Range16.ptr(12294, 12337, 43), Range16), $clone(new Range16.ptr(12338, 12341, 1), Range16), $clone(new Range16.ptr(12347, 12348, 1), Range16), $clone(new Range16.ptr(12353, 12438, 1), Range16), $clone(new Range16.ptr(12445, 12447, 1), Range16), $clone(new Range16.ptr(12449, 12538, 1), Range16), $clone(new Range16.ptr(12540, 12543, 1), Range16), $clone(new Range16.ptr(12549, 12591, 1), Range16), $clone(new Range16.ptr(12593, 12686, 1), Range16), $clone(new Range16.ptr(12704, 12735, 1), Range16), $clone(new Range16.ptr(12784, 12799, 1), Range16), $clone(new Range16.ptr(13312, 19903, 1), Range16), $clone(new Range16.ptr(19968, 40956, 1), Range16), $clone(new Range16.ptr(40960, 42124, 1), Range16), $clone(new Range16.ptr(42192, 42237, 1), Range16), $clone(new Range16.ptr(42240, 42508, 1), Range16), $clone(new Range16.ptr(42512, 42527, 1), Range16), $clone(new Range16.ptr(42538, 42539, 1), Range16), $clone(new Range16.ptr(42560, 42606, 1), Range16), $clone(new Range16.ptr(42623, 42653, 1), Range16), $clone(new Range16.ptr(42656, 42725, 1), Range16), $clone(new Range16.ptr(42775, 42783, 1), Range16), $clone(new Range16.ptr(42786, 42888, 1), Range16), $clone(new Range16.ptr(42891, 42943, 1), Range16), $clone(new Range16.ptr(42946, 42954, 1), Range16), $clone(new Range16.ptr(42997, 43009, 1), Range16), $clone(new Range16.ptr(43011, 43013, 1), Range16), $clone(new Range16.ptr(43015, 43018, 1), Range16), $clone(new Range16.ptr(43020, 43042, 1), Range16), $clone(new Range16.ptr(43072, 43123, 1), Range16), $clone(new Range16.ptr(43138, 43187, 1), Range16), $clone(new Range16.ptr(43250, 43255, 1), Range16), $clone(new Range16.ptr(43259, 43261, 2), Range16), $clone(new Range16.ptr(43262, 43274, 12), Range16), $clone(new Range16.ptr(43275, 43301, 1), Range16), $clone(new Range16.ptr(43312, 43334, 1), Range16), $clone(new Range16.ptr(43360, 43388, 1), Range16), $clone(new Range16.ptr(43396, 43442, 1), Range16), $clone(new Range16.ptr(43471, 43488, 17), Range16), $clone(new Range16.ptr(43489, 43492, 1), Range16), $clone(new Range16.ptr(43494, 43503, 1), Range16), $clone(new Range16.ptr(43514, 43518, 1), Range16), $clone(new Range16.ptr(43520, 43560, 1), Range16), $clone(new Range16.ptr(43584, 43586, 1), Range16), $clone(new Range16.ptr(43588, 43595, 1), Range16), $clone(new Range16.ptr(43616, 43638, 1), Range16), $clone(new Range16.ptr(43642, 43646, 4), Range16), $clone(new Range16.ptr(43647, 43695, 1), Range16), $clone(new Range16.ptr(43697, 43701, 4), Range16), $clone(new Range16.ptr(43702, 43705, 3), Range16), $clone(new Range16.ptr(43706, 43709, 1), Range16), $clone(new Range16.ptr(43712, 43714, 2), Range16), $clone(new Range16.ptr(43739, 43741, 1), Range16), $clone(new Range16.ptr(43744, 43754, 1), Range16), $clone(new Range16.ptr(43762, 43764, 1), Range16), $clone(new Range16.ptr(43777, 43782, 1), Range16), $clone(new Range16.ptr(43785, 43790, 1), Range16), $clone(new Range16.ptr(43793, 43798, 1), Range16), $clone(new Range16.ptr(43808, 43814, 1), Range16), $clone(new Range16.ptr(43816, 43822, 1), Range16), $clone(new Range16.ptr(43824, 43866, 1), Range16), $clone(new Range16.ptr(43868, 43881, 1), Range16), $clone(new Range16.ptr(43888, 44002, 1), Range16), $clone(new Range16.ptr(44032, 55203, 1), Range16), $clone(new Range16.ptr(55216, 55238, 1), Range16), $clone(new Range16.ptr(55243, 55291, 1), Range16), $clone(new Range16.ptr(63744, 64109, 1), Range16), $clone(new Range16.ptr(64112, 64217, 1), Range16), $clone(new Range16.ptr(64256, 64262, 1), Range16), $clone(new Range16.ptr(64275, 64279, 1), Range16), $clone(new Range16.ptr(64285, 64287, 2), Range16), $clone(new Range16.ptr(64288, 64296, 1), Range16), $clone(new Range16.ptr(64298, 64310, 1), Range16), $clone(new Range16.ptr(64312, 64316, 1), Range16), $clone(new Range16.ptr(64318, 64320, 2), Range16), $clone(new Range16.ptr(64321, 64323, 2), Range16), $clone(new Range16.ptr(64324, 64326, 2), Range16), $clone(new Range16.ptr(64327, 64433, 1), Range16), $clone(new Range16.ptr(64467, 64829, 1), Range16), $clone(new Range16.ptr(64848, 64911, 1), Range16), $clone(new Range16.ptr(64914, 64967, 1), Range16), $clone(new Range16.ptr(65008, 65019, 1), Range16), $clone(new Range16.ptr(65136, 65140, 1), Range16), $clone(new Range16.ptr(65142, 65276, 1), Range16), $clone(new Range16.ptr(65313, 65338, 1), Range16), $clone(new Range16.ptr(65345, 65370, 1), Range16), $clone(new Range16.ptr(65382, 65470, 1), Range16), $clone(new Range16.ptr(65474, 65479, 1), Range16), $clone(new Range16.ptr(65482, 65487, 1), Range16), $clone(new Range16.ptr(65490, 65495, 1), Range16), $clone(new Range16.ptr(65498, 65500, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65536, 65547, 1), Range32), $clone(new Range32.ptr(65549, 65574, 1), Range32), $clone(new Range32.ptr(65576, 65594, 1), Range32), $clone(new Range32.ptr(65596, 65597, 1), Range32), $clone(new Range32.ptr(65599, 65613, 1), Range32), $clone(new Range32.ptr(65616, 65629, 1), Range32), $clone(new Range32.ptr(65664, 65786, 1), Range32), $clone(new Range32.ptr(66176, 66204, 1), Range32), $clone(new Range32.ptr(66208, 66256, 1), Range32), $clone(new Range32.ptr(66304, 66335, 1), Range32), $clone(new Range32.ptr(66349, 66368, 1), Range32), $clone(new Range32.ptr(66370, 66377, 1), Range32), $clone(new Range32.ptr(66384, 66421, 1), Range32), $clone(new Range32.ptr(66432, 66461, 1), Range32), $clone(new Range32.ptr(66464, 66499, 1), Range32), $clone(new Range32.ptr(66504, 66511, 1), Range32), $clone(new Range32.ptr(66560, 66717, 1), Range32), $clone(new Range32.ptr(66736, 66771, 1), Range32), $clone(new Range32.ptr(66776, 66811, 1), Range32), $clone(new Range32.ptr(66816, 66855, 1), Range32), $clone(new Range32.ptr(66864, 66915, 1), Range32), $clone(new Range32.ptr(67072, 67382, 1), Range32), $clone(new Range32.ptr(67392, 67413, 1), Range32), $clone(new Range32.ptr(67424, 67431, 1), Range32), $clone(new Range32.ptr(67584, 67589, 1), Range32), $clone(new Range32.ptr(67592, 67594, 2), Range32), $clone(new Range32.ptr(67595, 67637, 1), Range32), $clone(new Range32.ptr(67639, 67640, 1), Range32), $clone(new Range32.ptr(67644, 67647, 3), Range32), $clone(new Range32.ptr(67648, 67669, 1), Range32), $clone(new Range32.ptr(67680, 67702, 1), Range32), $clone(new Range32.ptr(67712, 67742, 1), Range32), $clone(new Range32.ptr(67808, 67826, 1), Range32), $clone(new Range32.ptr(67828, 67829, 1), Range32), $clone(new Range32.ptr(67840, 67861, 1), Range32), $clone(new Range32.ptr(67872, 67897, 1), Range32), $clone(new Range32.ptr(67968, 68023, 1), Range32), $clone(new Range32.ptr(68030, 68031, 1), Range32), $clone(new Range32.ptr(68096, 68112, 16), Range32), $clone(new Range32.ptr(68113, 68115, 1), Range32), $clone(new Range32.ptr(68117, 68119, 1), Range32), $clone(new Range32.ptr(68121, 68149, 1), Range32), $clone(new Range32.ptr(68192, 68220, 1), Range32), $clone(new Range32.ptr(68224, 68252, 1), Range32), $clone(new Range32.ptr(68288, 68295, 1), Range32), $clone(new Range32.ptr(68297, 68324, 1), Range32), $clone(new Range32.ptr(68352, 68405, 1), Range32), $clone(new Range32.ptr(68416, 68437, 1), Range32), $clone(new Range32.ptr(68448, 68466, 1), Range32), $clone(new Range32.ptr(68480, 68497, 1), Range32), $clone(new Range32.ptr(68608, 68680, 1), Range32), $clone(new Range32.ptr(68736, 68786, 1), Range32), $clone(new Range32.ptr(68800, 68850, 1), Range32), $clone(new Range32.ptr(68864, 68899, 1), Range32), $clone(new Range32.ptr(69248, 69289, 1), Range32), $clone(new Range32.ptr(69296, 69297, 1), Range32), $clone(new Range32.ptr(69376, 69404, 1), Range32), $clone(new Range32.ptr(69415, 69424, 9), Range32), $clone(new Range32.ptr(69425, 69445, 1), Range32), $clone(new Range32.ptr(69552, 69572, 1), Range32), $clone(new Range32.ptr(69600, 69622, 1), Range32), $clone(new Range32.ptr(69635, 69687, 1), Range32), $clone(new Range32.ptr(69763, 69807, 1), Range32), $clone(new Range32.ptr(69840, 69864, 1), Range32), $clone(new Range32.ptr(69891, 69926, 1), Range32), $clone(new Range32.ptr(69956, 69959, 3), Range32), $clone(new Range32.ptr(69968, 70002, 1), Range32), $clone(new Range32.ptr(70006, 70019, 13), Range32), $clone(new Range32.ptr(70020, 70066, 1), Range32), $clone(new Range32.ptr(70081, 70084, 1), Range32), $clone(new Range32.ptr(70106, 70108, 2), Range32), $clone(new Range32.ptr(70144, 70161, 1), Range32), $clone(new Range32.ptr(70163, 70187, 1), Range32), $clone(new Range32.ptr(70272, 70278, 1), Range32), $clone(new Range32.ptr(70280, 70282, 2), Range32), $clone(new Range32.ptr(70283, 70285, 1), Range32), $clone(new Range32.ptr(70287, 70301, 1), Range32), $clone(new Range32.ptr(70303, 70312, 1), Range32), $clone(new Range32.ptr(70320, 70366, 1), Range32), $clone(new Range32.ptr(70405, 70412, 1), Range32), $clone(new Range32.ptr(70415, 70416, 1), Range32), $clone(new Range32.ptr(70419, 70440, 1), Range32), $clone(new Range32.ptr(70442, 70448, 1), Range32), $clone(new Range32.ptr(70450, 70451, 1), Range32), $clone(new Range32.ptr(70453, 70457, 1), Range32), $clone(new Range32.ptr(70461, 70480, 19), Range32), $clone(new Range32.ptr(70493, 70497, 1), Range32), $clone(new Range32.ptr(70656, 70708, 1), Range32), $clone(new Range32.ptr(70727, 70730, 1), Range32), $clone(new Range32.ptr(70751, 70753, 1), Range32), $clone(new Range32.ptr(70784, 70831, 1), Range32), $clone(new Range32.ptr(70852, 70853, 1), Range32), $clone(new Range32.ptr(70855, 71040, 185), Range32), $clone(new Range32.ptr(71041, 71086, 1), Range32), $clone(new Range32.ptr(71128, 71131, 1), Range32), $clone(new Range32.ptr(71168, 71215, 1), Range32), $clone(new Range32.ptr(71236, 71296, 60), Range32), $clone(new Range32.ptr(71297, 71338, 1), Range32), $clone(new Range32.ptr(71352, 71424, 72), Range32), $clone(new Range32.ptr(71425, 71450, 1), Range32), $clone(new Range32.ptr(71680, 71723, 1), Range32), $clone(new Range32.ptr(71840, 71903, 1), Range32), $clone(new Range32.ptr(71935, 71942, 1), Range32), $clone(new Range32.ptr(71945, 71948, 3), Range32), $clone(new Range32.ptr(71949, 71955, 1), Range32), $clone(new Range32.ptr(71957, 71958, 1), Range32), $clone(new Range32.ptr(71960, 71983, 1), Range32), $clone(new Range32.ptr(71999, 72001, 2), Range32), $clone(new Range32.ptr(72096, 72103, 1), Range32), $clone(new Range32.ptr(72106, 72144, 1), Range32), $clone(new Range32.ptr(72161, 72163, 2), Range32), $clone(new Range32.ptr(72192, 72203, 11), Range32), $clone(new Range32.ptr(72204, 72242, 1), Range32), $clone(new Range32.ptr(72250, 72272, 22), Range32), $clone(new Range32.ptr(72284, 72329, 1), Range32), $clone(new Range32.ptr(72349, 72384, 35), Range32), $clone(new Range32.ptr(72385, 72440, 1), Range32), $clone(new Range32.ptr(72704, 72712, 1), Range32), $clone(new Range32.ptr(72714, 72750, 1), Range32), $clone(new Range32.ptr(72768, 72818, 50), Range32), $clone(new Range32.ptr(72819, 72847, 1), Range32), $clone(new Range32.ptr(72960, 72966, 1), Range32), $clone(new Range32.ptr(72968, 72969, 1), Range32), $clone(new Range32.ptr(72971, 73008, 1), Range32), $clone(new Range32.ptr(73030, 73056, 26), Range32), $clone(new Range32.ptr(73057, 73061, 1), Range32), $clone(new Range32.ptr(73063, 73064, 1), Range32), $clone(new Range32.ptr(73066, 73097, 1), Range32), $clone(new Range32.ptr(73112, 73440, 328), Range32), $clone(new Range32.ptr(73441, 73458, 1), Range32), $clone(new Range32.ptr(73648, 73728, 80), Range32), $clone(new Range32.ptr(73729, 74649, 1), Range32), $clone(new Range32.ptr(74880, 75075, 1), Range32), $clone(new Range32.ptr(77824, 78894, 1), Range32), $clone(new Range32.ptr(82944, 83526, 1), Range32), $clone(new Range32.ptr(92160, 92728, 1), Range32), $clone(new Range32.ptr(92736, 92766, 1), Range32), $clone(new Range32.ptr(92880, 92909, 1), Range32), $clone(new Range32.ptr(92928, 92975, 1), Range32), $clone(new Range32.ptr(92992, 92995, 1), Range32), $clone(new Range32.ptr(93027, 93047, 1), Range32), $clone(new Range32.ptr(93053, 93071, 1), Range32), $clone(new Range32.ptr(93760, 93823, 1), Range32), $clone(new Range32.ptr(93952, 94026, 1), Range32), $clone(new Range32.ptr(94032, 94099, 67), Range32), $clone(new Range32.ptr(94100, 94111, 1), Range32), $clone(new Range32.ptr(94176, 94177, 1), Range32), $clone(new Range32.ptr(94179, 94208, 29), Range32), $clone(new Range32.ptr(94209, 100343, 1), Range32), $clone(new Range32.ptr(100352, 101589, 1), Range32), $clone(new Range32.ptr(101632, 101640, 1), Range32), $clone(new Range32.ptr(110592, 110878, 1), Range32), $clone(new Range32.ptr(110928, 110930, 1), Range32), $clone(new Range32.ptr(110948, 110951, 1), Range32), $clone(new Range32.ptr(110960, 111355, 1), Range32), $clone(new Range32.ptr(113664, 113770, 1), Range32), $clone(new Range32.ptr(113776, 113788, 1), Range32), $clone(new Range32.ptr(113792, 113800, 1), Range32), $clone(new Range32.ptr(113808, 113817, 1), Range32), $clone(new Range32.ptr(119808, 119892, 1), Range32), $clone(new Range32.ptr(119894, 119964, 1), Range32), $clone(new Range32.ptr(119966, 119967, 1), Range32), $clone(new Range32.ptr(119970, 119973, 3), Range32), $clone(new Range32.ptr(119974, 119977, 3), Range32), $clone(new Range32.ptr(119978, 119980, 1), Range32), $clone(new Range32.ptr(119982, 119993, 1), Range32), $clone(new Range32.ptr(119995, 119997, 2), Range32), $clone(new Range32.ptr(119998, 120003, 1), Range32), $clone(new Range32.ptr(120005, 120069, 1), Range32), $clone(new Range32.ptr(120071, 120074, 1), Range32), $clone(new Range32.ptr(120077, 120084, 1), Range32), $clone(new Range32.ptr(120086, 120092, 1), Range32), $clone(new Range32.ptr(120094, 120121, 1), Range32), $clone(new Range32.ptr(120123, 120126, 1), Range32), $clone(new Range32.ptr(120128, 120132, 1), Range32), $clone(new Range32.ptr(120134, 120138, 4), Range32), $clone(new Range32.ptr(120139, 120144, 1), Range32), $clone(new Range32.ptr(120146, 120485, 1), Range32), $clone(new Range32.ptr(120488, 120512, 1), Range32), $clone(new Range32.ptr(120514, 120538, 1), Range32), $clone(new Range32.ptr(120540, 120570, 1), Range32), $clone(new Range32.ptr(120572, 120596, 1), Range32), $clone(new Range32.ptr(120598, 120628, 1), Range32), $clone(new Range32.ptr(120630, 120654, 1), Range32), $clone(new Range32.ptr(120656, 120686, 1), Range32), $clone(new Range32.ptr(120688, 120712, 1), Range32), $clone(new Range32.ptr(120714, 120744, 1), Range32), $clone(new Range32.ptr(120746, 120770, 1), Range32), $clone(new Range32.ptr(120772, 120779, 1), Range32), $clone(new Range32.ptr(123136, 123180, 1), Range32), $clone(new Range32.ptr(123191, 123197, 1), Range32), $clone(new Range32.ptr(123214, 123584, 370), Range32), $clone(new Range32.ptr(123585, 123627, 1), Range32), $clone(new Range32.ptr(124928, 125124, 1), Range32), $clone(new Range32.ptr(125184, 125251, 1), Range32), $clone(new Range32.ptr(125259, 126464, 1205), Range32), $clone(new Range32.ptr(126465, 126467, 1), Range32), $clone(new Range32.ptr(126469, 126495, 1), Range32), $clone(new Range32.ptr(126497, 126498, 1), Range32), $clone(new Range32.ptr(126500, 126503, 3), Range32), $clone(new Range32.ptr(126505, 126514, 1), Range32), $clone(new Range32.ptr(126516, 126519, 1), Range32), $clone(new Range32.ptr(126521, 126523, 2), Range32), $clone(new Range32.ptr(126530, 126535, 5), Range32), $clone(new Range32.ptr(126537, 126541, 2), Range32), $clone(new Range32.ptr(126542, 126543, 1), Range32), $clone(new Range32.ptr(126545, 126546, 1), Range32), $clone(new Range32.ptr(126548, 126551, 3), Range32), $clone(new Range32.ptr(126553, 126561, 2), Range32), $clone(new Range32.ptr(126562, 126564, 2), Range32), $clone(new Range32.ptr(126567, 126570, 1), Range32), $clone(new Range32.ptr(126572, 126578, 1), Range32), $clone(new Range32.ptr(126580, 126583, 1), Range32), $clone(new Range32.ptr(126585, 126588, 1), Range32), $clone(new Range32.ptr(126590, 126592, 2), Range32), $clone(new Range32.ptr(126593, 126601, 1), Range32), $clone(new Range32.ptr(126603, 126619, 1), Range32), $clone(new Range32.ptr(126625, 126627, 1), Range32), $clone(new Range32.ptr(126629, 126633, 1), Range32), $clone(new Range32.ptr(126635, 126651, 1), Range32), $clone(new Range32.ptr(131072, 173789, 1), Range32), $clone(new Range32.ptr(173824, 177972, 1), Range32), $clone(new Range32.ptr(177984, 178205, 1), Range32), $clone(new Range32.ptr(178208, 183969, 1), Range32), $clone(new Range32.ptr(183984, 191456, 1), Range32), $clone(new Range32.ptr(194560, 195101, 1), Range32), $clone(new Range32.ptr(196608, 201546, 1), Range32)]), 6); - _Ll = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(97, 122, 1), Range16), $clone(new Range16.ptr(181, 223, 42), Range16), $clone(new Range16.ptr(224, 246, 1), Range16), $clone(new Range16.ptr(248, 255, 1), Range16), $clone(new Range16.ptr(257, 311, 2), Range16), $clone(new Range16.ptr(312, 328, 2), Range16), $clone(new Range16.ptr(329, 375, 2), Range16), $clone(new Range16.ptr(378, 382, 2), Range16), $clone(new Range16.ptr(383, 384, 1), Range16), $clone(new Range16.ptr(387, 389, 2), Range16), $clone(new Range16.ptr(392, 396, 4), Range16), $clone(new Range16.ptr(397, 402, 5), Range16), $clone(new Range16.ptr(405, 409, 4), Range16), $clone(new Range16.ptr(410, 411, 1), Range16), $clone(new Range16.ptr(414, 417, 3), Range16), $clone(new Range16.ptr(419, 421, 2), Range16), $clone(new Range16.ptr(424, 426, 2), Range16), $clone(new Range16.ptr(427, 429, 2), Range16), $clone(new Range16.ptr(432, 436, 4), Range16), $clone(new Range16.ptr(438, 441, 3), Range16), $clone(new Range16.ptr(442, 445, 3), Range16), $clone(new Range16.ptr(446, 447, 1), Range16), $clone(new Range16.ptr(454, 460, 3), Range16), $clone(new Range16.ptr(462, 476, 2), Range16), $clone(new Range16.ptr(477, 495, 2), Range16), $clone(new Range16.ptr(496, 499, 3), Range16), $clone(new Range16.ptr(501, 505, 4), Range16), $clone(new Range16.ptr(507, 563, 2), Range16), $clone(new Range16.ptr(564, 569, 1), Range16), $clone(new Range16.ptr(572, 575, 3), Range16), $clone(new Range16.ptr(576, 578, 2), Range16), $clone(new Range16.ptr(583, 591, 2), Range16), $clone(new Range16.ptr(592, 659, 1), Range16), $clone(new Range16.ptr(661, 687, 1), Range16), $clone(new Range16.ptr(881, 883, 2), Range16), $clone(new Range16.ptr(887, 891, 4), Range16), $clone(new Range16.ptr(892, 893, 1), Range16), $clone(new Range16.ptr(912, 940, 28), Range16), $clone(new Range16.ptr(941, 974, 1), Range16), $clone(new Range16.ptr(976, 977, 1), Range16), $clone(new Range16.ptr(981, 983, 1), Range16), $clone(new Range16.ptr(985, 1007, 2), Range16), $clone(new Range16.ptr(1008, 1011, 1), Range16), $clone(new Range16.ptr(1013, 1019, 3), Range16), $clone(new Range16.ptr(1020, 1072, 52), Range16), $clone(new Range16.ptr(1073, 1119, 1), Range16), $clone(new Range16.ptr(1121, 1153, 2), Range16), $clone(new Range16.ptr(1163, 1215, 2), Range16), $clone(new Range16.ptr(1218, 1230, 2), Range16), $clone(new Range16.ptr(1231, 1327, 2), Range16), $clone(new Range16.ptr(1376, 1416, 1), Range16), $clone(new Range16.ptr(4304, 4346, 1), Range16), $clone(new Range16.ptr(4349, 4351, 1), Range16), $clone(new Range16.ptr(5112, 5117, 1), Range16), $clone(new Range16.ptr(7296, 7304, 1), Range16), $clone(new Range16.ptr(7424, 7467, 1), Range16), $clone(new Range16.ptr(7531, 7543, 1), Range16), $clone(new Range16.ptr(7545, 7578, 1), Range16), $clone(new Range16.ptr(7681, 7829, 2), Range16), $clone(new Range16.ptr(7830, 7837, 1), Range16), $clone(new Range16.ptr(7839, 7935, 2), Range16), $clone(new Range16.ptr(7936, 7943, 1), Range16), $clone(new Range16.ptr(7952, 7957, 1), Range16), $clone(new Range16.ptr(7968, 7975, 1), Range16), $clone(new Range16.ptr(7984, 7991, 1), Range16), $clone(new Range16.ptr(8000, 8005, 1), Range16), $clone(new Range16.ptr(8016, 8023, 1), Range16), $clone(new Range16.ptr(8032, 8039, 1), Range16), $clone(new Range16.ptr(8048, 8061, 1), Range16), $clone(new Range16.ptr(8064, 8071, 1), Range16), $clone(new Range16.ptr(8080, 8087, 1), Range16), $clone(new Range16.ptr(8096, 8103, 1), Range16), $clone(new Range16.ptr(8112, 8116, 1), Range16), $clone(new Range16.ptr(8118, 8119, 1), Range16), $clone(new Range16.ptr(8126, 8130, 4), Range16), $clone(new Range16.ptr(8131, 8132, 1), Range16), $clone(new Range16.ptr(8134, 8135, 1), Range16), $clone(new Range16.ptr(8144, 8147, 1), Range16), $clone(new Range16.ptr(8150, 8151, 1), Range16), $clone(new Range16.ptr(8160, 8167, 1), Range16), $clone(new Range16.ptr(8178, 8180, 1), Range16), $clone(new Range16.ptr(8182, 8183, 1), Range16), $clone(new Range16.ptr(8458, 8462, 4), Range16), $clone(new Range16.ptr(8463, 8467, 4), Range16), $clone(new Range16.ptr(8495, 8505, 5), Range16), $clone(new Range16.ptr(8508, 8509, 1), Range16), $clone(new Range16.ptr(8518, 8521, 1), Range16), $clone(new Range16.ptr(8526, 8580, 54), Range16), $clone(new Range16.ptr(11312, 11358, 1), Range16), $clone(new Range16.ptr(11361, 11365, 4), Range16), $clone(new Range16.ptr(11366, 11372, 2), Range16), $clone(new Range16.ptr(11377, 11379, 2), Range16), $clone(new Range16.ptr(11380, 11382, 2), Range16), $clone(new Range16.ptr(11383, 11387, 1), Range16), $clone(new Range16.ptr(11393, 11491, 2), Range16), $clone(new Range16.ptr(11492, 11500, 8), Range16), $clone(new Range16.ptr(11502, 11507, 5), Range16), $clone(new Range16.ptr(11520, 11557, 1), Range16), $clone(new Range16.ptr(11559, 11565, 6), Range16), $clone(new Range16.ptr(42561, 42605, 2), Range16), $clone(new Range16.ptr(42625, 42651, 2), Range16), $clone(new Range16.ptr(42787, 42799, 2), Range16), $clone(new Range16.ptr(42800, 42801, 1), Range16), $clone(new Range16.ptr(42803, 42865, 2), Range16), $clone(new Range16.ptr(42866, 42872, 1), Range16), $clone(new Range16.ptr(42874, 42876, 2), Range16), $clone(new Range16.ptr(42879, 42887, 2), Range16), $clone(new Range16.ptr(42892, 42894, 2), Range16), $clone(new Range16.ptr(42897, 42899, 2), Range16), $clone(new Range16.ptr(42900, 42901, 1), Range16), $clone(new Range16.ptr(42903, 42921, 2), Range16), $clone(new Range16.ptr(42927, 42933, 6), Range16), $clone(new Range16.ptr(42935, 42943, 2), Range16), $clone(new Range16.ptr(42947, 42952, 5), Range16), $clone(new Range16.ptr(42954, 42998, 44), Range16), $clone(new Range16.ptr(43002, 43824, 822), Range16), $clone(new Range16.ptr(43825, 43866, 1), Range16), $clone(new Range16.ptr(43872, 43880, 1), Range16), $clone(new Range16.ptr(43888, 43967, 1), Range16), $clone(new Range16.ptr(64256, 64262, 1), Range16), $clone(new Range16.ptr(64275, 64279, 1), Range16), $clone(new Range16.ptr(65345, 65370, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(66600, 66639, 1), Range32), $clone(new Range32.ptr(66776, 66811, 1), Range32), $clone(new Range32.ptr(68800, 68850, 1), Range32), $clone(new Range32.ptr(71872, 71903, 1), Range32), $clone(new Range32.ptr(93792, 93823, 1), Range32), $clone(new Range32.ptr(119834, 119859, 1), Range32), $clone(new Range32.ptr(119886, 119892, 1), Range32), $clone(new Range32.ptr(119894, 119911, 1), Range32), $clone(new Range32.ptr(119938, 119963, 1), Range32), $clone(new Range32.ptr(119990, 119993, 1), Range32), $clone(new Range32.ptr(119995, 119997, 2), Range32), $clone(new Range32.ptr(119998, 120003, 1), Range32), $clone(new Range32.ptr(120005, 120015, 1), Range32), $clone(new Range32.ptr(120042, 120067, 1), Range32), $clone(new Range32.ptr(120094, 120119, 1), Range32), $clone(new Range32.ptr(120146, 120171, 1), Range32), $clone(new Range32.ptr(120198, 120223, 1), Range32), $clone(new Range32.ptr(120250, 120275, 1), Range32), $clone(new Range32.ptr(120302, 120327, 1), Range32), $clone(new Range32.ptr(120354, 120379, 1), Range32), $clone(new Range32.ptr(120406, 120431, 1), Range32), $clone(new Range32.ptr(120458, 120485, 1), Range32), $clone(new Range32.ptr(120514, 120538, 1), Range32), $clone(new Range32.ptr(120540, 120545, 1), Range32), $clone(new Range32.ptr(120572, 120596, 1), Range32), $clone(new Range32.ptr(120598, 120603, 1), Range32), $clone(new Range32.ptr(120630, 120654, 1), Range32), $clone(new Range32.ptr(120656, 120661, 1), Range32), $clone(new Range32.ptr(120688, 120712, 1), Range32), $clone(new Range32.ptr(120714, 120719, 1), Range32), $clone(new Range32.ptr(120746, 120770, 1), Range32), $clone(new Range32.ptr(120772, 120777, 1), Range32), $clone(new Range32.ptr(120779, 125218, 4439), Range32), $clone(new Range32.ptr(125219, 125251, 1), Range32)]), 4); - _Lm = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(688, 705, 1), Range16), $clone(new Range16.ptr(710, 721, 1), Range16), $clone(new Range16.ptr(736, 740, 1), Range16), $clone(new Range16.ptr(748, 750, 2), Range16), $clone(new Range16.ptr(884, 890, 6), Range16), $clone(new Range16.ptr(1369, 1600, 231), Range16), $clone(new Range16.ptr(1765, 1766, 1), Range16), $clone(new Range16.ptr(2036, 2037, 1), Range16), $clone(new Range16.ptr(2042, 2074, 32), Range16), $clone(new Range16.ptr(2084, 2088, 4), Range16), $clone(new Range16.ptr(2417, 3654, 1237), Range16), $clone(new Range16.ptr(3782, 4348, 566), Range16), $clone(new Range16.ptr(6103, 6211, 108), Range16), $clone(new Range16.ptr(6823, 7288, 465), Range16), $clone(new Range16.ptr(7289, 7293, 1), Range16), $clone(new Range16.ptr(7468, 7530, 1), Range16), $clone(new Range16.ptr(7544, 7579, 35), Range16), $clone(new Range16.ptr(7580, 7615, 1), Range16), $clone(new Range16.ptr(8305, 8319, 14), Range16), $clone(new Range16.ptr(8336, 8348, 1), Range16), $clone(new Range16.ptr(11388, 11389, 1), Range16), $clone(new Range16.ptr(11631, 11823, 192), Range16), $clone(new Range16.ptr(12293, 12337, 44), Range16), $clone(new Range16.ptr(12338, 12341, 1), Range16), $clone(new Range16.ptr(12347, 12445, 98), Range16), $clone(new Range16.ptr(12446, 12540, 94), Range16), $clone(new Range16.ptr(12541, 12542, 1), Range16), $clone(new Range16.ptr(40981, 42232, 1251), Range16), $clone(new Range16.ptr(42233, 42237, 1), Range16), $clone(new Range16.ptr(42508, 42623, 115), Range16), $clone(new Range16.ptr(42652, 42653, 1), Range16), $clone(new Range16.ptr(42775, 42783, 1), Range16), $clone(new Range16.ptr(42864, 42888, 24), Range16), $clone(new Range16.ptr(43000, 43001, 1), Range16), $clone(new Range16.ptr(43471, 43494, 23), Range16), $clone(new Range16.ptr(43632, 43741, 109), Range16), $clone(new Range16.ptr(43763, 43764, 1), Range16), $clone(new Range16.ptr(43868, 43871, 1), Range16), $clone(new Range16.ptr(43881, 65392, 21511), Range16), $clone(new Range16.ptr(65438, 65439, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(92992, 92995, 1), Range32), $clone(new Range32.ptr(94099, 94111, 1), Range32), $clone(new Range32.ptr(94176, 94177, 1), Range32), $clone(new Range32.ptr(94179, 123191, 29012), Range32), $clone(new Range32.ptr(123192, 123197, 1), Range32), $clone(new Range32.ptr(125259, 125259, 1), Range32)]), 0); - _Lo = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(170, 186, 16), Range16), $clone(new Range16.ptr(443, 448, 5), Range16), $clone(new Range16.ptr(449, 451, 1), Range16), $clone(new Range16.ptr(660, 1488, 828), Range16), $clone(new Range16.ptr(1489, 1514, 1), Range16), $clone(new Range16.ptr(1519, 1522, 1), Range16), $clone(new Range16.ptr(1568, 1599, 1), Range16), $clone(new Range16.ptr(1601, 1610, 1), Range16), $clone(new Range16.ptr(1646, 1647, 1), Range16), $clone(new Range16.ptr(1649, 1747, 1), Range16), $clone(new Range16.ptr(1749, 1774, 25), Range16), $clone(new Range16.ptr(1775, 1786, 11), Range16), $clone(new Range16.ptr(1787, 1788, 1), Range16), $clone(new Range16.ptr(1791, 1808, 17), Range16), $clone(new Range16.ptr(1810, 1839, 1), Range16), $clone(new Range16.ptr(1869, 1957, 1), Range16), $clone(new Range16.ptr(1969, 1994, 25), Range16), $clone(new Range16.ptr(1995, 2026, 1), Range16), $clone(new Range16.ptr(2048, 2069, 1), Range16), $clone(new Range16.ptr(2112, 2136, 1), Range16), $clone(new Range16.ptr(2144, 2154, 1), Range16), $clone(new Range16.ptr(2208, 2228, 1), Range16), $clone(new Range16.ptr(2230, 2247, 1), Range16), $clone(new Range16.ptr(2308, 2361, 1), Range16), $clone(new Range16.ptr(2365, 2384, 19), Range16), $clone(new Range16.ptr(2392, 2401, 1), Range16), $clone(new Range16.ptr(2418, 2432, 1), Range16), $clone(new Range16.ptr(2437, 2444, 1), Range16), $clone(new Range16.ptr(2447, 2448, 1), Range16), $clone(new Range16.ptr(2451, 2472, 1), Range16), $clone(new Range16.ptr(2474, 2480, 1), Range16), $clone(new Range16.ptr(2482, 2486, 4), Range16), $clone(new Range16.ptr(2487, 2489, 1), Range16), $clone(new Range16.ptr(2493, 2510, 17), Range16), $clone(new Range16.ptr(2524, 2525, 1), Range16), $clone(new Range16.ptr(2527, 2529, 1), Range16), $clone(new Range16.ptr(2544, 2545, 1), Range16), $clone(new Range16.ptr(2556, 2565, 9), Range16), $clone(new Range16.ptr(2566, 2570, 1), Range16), $clone(new Range16.ptr(2575, 2576, 1), Range16), $clone(new Range16.ptr(2579, 2600, 1), Range16), $clone(new Range16.ptr(2602, 2608, 1), Range16), $clone(new Range16.ptr(2610, 2611, 1), Range16), $clone(new Range16.ptr(2613, 2614, 1), Range16), $clone(new Range16.ptr(2616, 2617, 1), Range16), $clone(new Range16.ptr(2649, 2652, 1), Range16), $clone(new Range16.ptr(2654, 2674, 20), Range16), $clone(new Range16.ptr(2675, 2676, 1), Range16), $clone(new Range16.ptr(2693, 2701, 1), Range16), $clone(new Range16.ptr(2703, 2705, 1), Range16), $clone(new Range16.ptr(2707, 2728, 1), Range16), $clone(new Range16.ptr(2730, 2736, 1), Range16), $clone(new Range16.ptr(2738, 2739, 1), Range16), $clone(new Range16.ptr(2741, 2745, 1), Range16), $clone(new Range16.ptr(2749, 2768, 19), Range16), $clone(new Range16.ptr(2784, 2785, 1), Range16), $clone(new Range16.ptr(2809, 2821, 12), Range16), $clone(new Range16.ptr(2822, 2828, 1), Range16), $clone(new Range16.ptr(2831, 2832, 1), Range16), $clone(new Range16.ptr(2835, 2856, 1), Range16), $clone(new Range16.ptr(2858, 2864, 1), Range16), $clone(new Range16.ptr(2866, 2867, 1), Range16), $clone(new Range16.ptr(2869, 2873, 1), Range16), $clone(new Range16.ptr(2877, 2908, 31), Range16), $clone(new Range16.ptr(2909, 2911, 2), Range16), $clone(new Range16.ptr(2912, 2913, 1), Range16), $clone(new Range16.ptr(2929, 2947, 18), Range16), $clone(new Range16.ptr(2949, 2954, 1), Range16), $clone(new Range16.ptr(2958, 2960, 1), Range16), $clone(new Range16.ptr(2962, 2965, 1), Range16), $clone(new Range16.ptr(2969, 2970, 1), Range16), $clone(new Range16.ptr(2972, 2974, 2), Range16), $clone(new Range16.ptr(2975, 2979, 4), Range16), $clone(new Range16.ptr(2980, 2984, 4), Range16), $clone(new Range16.ptr(2985, 2986, 1), Range16), $clone(new Range16.ptr(2990, 3001, 1), Range16), $clone(new Range16.ptr(3024, 3077, 53), Range16), $clone(new Range16.ptr(3078, 3084, 1), Range16), $clone(new Range16.ptr(3086, 3088, 1), Range16), $clone(new Range16.ptr(3090, 3112, 1), Range16), $clone(new Range16.ptr(3114, 3129, 1), Range16), $clone(new Range16.ptr(3133, 3160, 27), Range16), $clone(new Range16.ptr(3161, 3162, 1), Range16), $clone(new Range16.ptr(3168, 3169, 1), Range16), $clone(new Range16.ptr(3200, 3205, 5), Range16), $clone(new Range16.ptr(3206, 3212, 1), Range16), $clone(new Range16.ptr(3214, 3216, 1), Range16), $clone(new Range16.ptr(3218, 3240, 1), Range16), $clone(new Range16.ptr(3242, 3251, 1), Range16), $clone(new Range16.ptr(3253, 3257, 1), Range16), $clone(new Range16.ptr(3261, 3294, 33), Range16), $clone(new Range16.ptr(3296, 3297, 1), Range16), $clone(new Range16.ptr(3313, 3314, 1), Range16), $clone(new Range16.ptr(3332, 3340, 1), Range16), $clone(new Range16.ptr(3342, 3344, 1), Range16), $clone(new Range16.ptr(3346, 3386, 1), Range16), $clone(new Range16.ptr(3389, 3406, 17), Range16), $clone(new Range16.ptr(3412, 3414, 1), Range16), $clone(new Range16.ptr(3423, 3425, 1), Range16), $clone(new Range16.ptr(3450, 3455, 1), Range16), $clone(new Range16.ptr(3461, 3478, 1), Range16), $clone(new Range16.ptr(3482, 3505, 1), Range16), $clone(new Range16.ptr(3507, 3515, 1), Range16), $clone(new Range16.ptr(3517, 3520, 3), Range16), $clone(new Range16.ptr(3521, 3526, 1), Range16), $clone(new Range16.ptr(3585, 3632, 1), Range16), $clone(new Range16.ptr(3634, 3635, 1), Range16), $clone(new Range16.ptr(3648, 3653, 1), Range16), $clone(new Range16.ptr(3713, 3714, 1), Range16), $clone(new Range16.ptr(3716, 3718, 2), Range16), $clone(new Range16.ptr(3719, 3722, 1), Range16), $clone(new Range16.ptr(3724, 3747, 1), Range16), $clone(new Range16.ptr(3749, 3751, 2), Range16), $clone(new Range16.ptr(3752, 3760, 1), Range16), $clone(new Range16.ptr(3762, 3763, 1), Range16), $clone(new Range16.ptr(3773, 3776, 3), Range16), $clone(new Range16.ptr(3777, 3780, 1), Range16), $clone(new Range16.ptr(3804, 3807, 1), Range16), $clone(new Range16.ptr(3840, 3904, 64), Range16), $clone(new Range16.ptr(3905, 3911, 1), Range16), $clone(new Range16.ptr(3913, 3948, 1), Range16), $clone(new Range16.ptr(3976, 3980, 1), Range16), $clone(new Range16.ptr(4096, 4138, 1), Range16), $clone(new Range16.ptr(4159, 4176, 17), Range16), $clone(new Range16.ptr(4177, 4181, 1), Range16), $clone(new Range16.ptr(4186, 4189, 1), Range16), $clone(new Range16.ptr(4193, 4197, 4), Range16), $clone(new Range16.ptr(4198, 4206, 8), Range16), $clone(new Range16.ptr(4207, 4208, 1), Range16), $clone(new Range16.ptr(4213, 4225, 1), Range16), $clone(new Range16.ptr(4238, 4352, 114), Range16), $clone(new Range16.ptr(4353, 4680, 1), Range16), $clone(new Range16.ptr(4682, 4685, 1), Range16), $clone(new Range16.ptr(4688, 4694, 1), Range16), $clone(new Range16.ptr(4696, 4698, 2), Range16), $clone(new Range16.ptr(4699, 4701, 1), Range16), $clone(new Range16.ptr(4704, 4744, 1), Range16), $clone(new Range16.ptr(4746, 4749, 1), Range16), $clone(new Range16.ptr(4752, 4784, 1), Range16), $clone(new Range16.ptr(4786, 4789, 1), Range16), $clone(new Range16.ptr(4792, 4798, 1), Range16), $clone(new Range16.ptr(4800, 4802, 2), Range16), $clone(new Range16.ptr(4803, 4805, 1), Range16), $clone(new Range16.ptr(4808, 4822, 1), Range16), $clone(new Range16.ptr(4824, 4880, 1), Range16), $clone(new Range16.ptr(4882, 4885, 1), Range16), $clone(new Range16.ptr(4888, 4954, 1), Range16), $clone(new Range16.ptr(4992, 5007, 1), Range16), $clone(new Range16.ptr(5121, 5740, 1), Range16), $clone(new Range16.ptr(5743, 5759, 1), Range16), $clone(new Range16.ptr(5761, 5786, 1), Range16), $clone(new Range16.ptr(5792, 5866, 1), Range16), $clone(new Range16.ptr(5873, 5880, 1), Range16), $clone(new Range16.ptr(5888, 5900, 1), Range16), $clone(new Range16.ptr(5902, 5905, 1), Range16), $clone(new Range16.ptr(5920, 5937, 1), Range16), $clone(new Range16.ptr(5952, 5969, 1), Range16), $clone(new Range16.ptr(5984, 5996, 1), Range16), $clone(new Range16.ptr(5998, 6000, 1), Range16), $clone(new Range16.ptr(6016, 6067, 1), Range16), $clone(new Range16.ptr(6108, 6176, 68), Range16), $clone(new Range16.ptr(6177, 6210, 1), Range16), $clone(new Range16.ptr(6212, 6264, 1), Range16), $clone(new Range16.ptr(6272, 6276, 1), Range16), $clone(new Range16.ptr(6279, 6312, 1), Range16), $clone(new Range16.ptr(6314, 6320, 6), Range16), $clone(new Range16.ptr(6321, 6389, 1), Range16), $clone(new Range16.ptr(6400, 6430, 1), Range16), $clone(new Range16.ptr(6480, 6509, 1), Range16), $clone(new Range16.ptr(6512, 6516, 1), Range16), $clone(new Range16.ptr(6528, 6571, 1), Range16), $clone(new Range16.ptr(6576, 6601, 1), Range16), $clone(new Range16.ptr(6656, 6678, 1), Range16), $clone(new Range16.ptr(6688, 6740, 1), Range16), $clone(new Range16.ptr(6917, 6963, 1), Range16), $clone(new Range16.ptr(6981, 6987, 1), Range16), $clone(new Range16.ptr(7043, 7072, 1), Range16), $clone(new Range16.ptr(7086, 7087, 1), Range16), $clone(new Range16.ptr(7098, 7141, 1), Range16), $clone(new Range16.ptr(7168, 7203, 1), Range16), $clone(new Range16.ptr(7245, 7247, 1), Range16), $clone(new Range16.ptr(7258, 7287, 1), Range16), $clone(new Range16.ptr(7401, 7404, 1), Range16), $clone(new Range16.ptr(7406, 7411, 1), Range16), $clone(new Range16.ptr(7413, 7414, 1), Range16), $clone(new Range16.ptr(7418, 8501, 1083), Range16), $clone(new Range16.ptr(8502, 8504, 1), Range16), $clone(new Range16.ptr(11568, 11623, 1), Range16), $clone(new Range16.ptr(11648, 11670, 1), Range16), $clone(new Range16.ptr(11680, 11686, 1), Range16), $clone(new Range16.ptr(11688, 11694, 1), Range16), $clone(new Range16.ptr(11696, 11702, 1), Range16), $clone(new Range16.ptr(11704, 11710, 1), Range16), $clone(new Range16.ptr(11712, 11718, 1), Range16), $clone(new Range16.ptr(11720, 11726, 1), Range16), $clone(new Range16.ptr(11728, 11734, 1), Range16), $clone(new Range16.ptr(11736, 11742, 1), Range16), $clone(new Range16.ptr(12294, 12348, 54), Range16), $clone(new Range16.ptr(12353, 12438, 1), Range16), $clone(new Range16.ptr(12447, 12449, 2), Range16), $clone(new Range16.ptr(12450, 12538, 1), Range16), $clone(new Range16.ptr(12543, 12549, 6), Range16), $clone(new Range16.ptr(12550, 12591, 1), Range16), $clone(new Range16.ptr(12593, 12686, 1), Range16), $clone(new Range16.ptr(12704, 12735, 1), Range16), $clone(new Range16.ptr(12784, 12799, 1), Range16), $clone(new Range16.ptr(13312, 19903, 1), Range16), $clone(new Range16.ptr(19968, 40956, 1), Range16), $clone(new Range16.ptr(40960, 40980, 1), Range16), $clone(new Range16.ptr(40982, 42124, 1), Range16), $clone(new Range16.ptr(42192, 42231, 1), Range16), $clone(new Range16.ptr(42240, 42507, 1), Range16), $clone(new Range16.ptr(42512, 42527, 1), Range16), $clone(new Range16.ptr(42538, 42539, 1), Range16), $clone(new Range16.ptr(42606, 42656, 50), Range16), $clone(new Range16.ptr(42657, 42725, 1), Range16), $clone(new Range16.ptr(42895, 42999, 104), Range16), $clone(new Range16.ptr(43003, 43009, 1), Range16), $clone(new Range16.ptr(43011, 43013, 1), Range16), $clone(new Range16.ptr(43015, 43018, 1), Range16), $clone(new Range16.ptr(43020, 43042, 1), Range16), $clone(new Range16.ptr(43072, 43123, 1), Range16), $clone(new Range16.ptr(43138, 43187, 1), Range16), $clone(new Range16.ptr(43250, 43255, 1), Range16), $clone(new Range16.ptr(43259, 43261, 2), Range16), $clone(new Range16.ptr(43262, 43274, 12), Range16), $clone(new Range16.ptr(43275, 43301, 1), Range16), $clone(new Range16.ptr(43312, 43334, 1), Range16), $clone(new Range16.ptr(43360, 43388, 1), Range16), $clone(new Range16.ptr(43396, 43442, 1), Range16), $clone(new Range16.ptr(43488, 43492, 1), Range16), $clone(new Range16.ptr(43495, 43503, 1), Range16), $clone(new Range16.ptr(43514, 43518, 1), Range16), $clone(new Range16.ptr(43520, 43560, 1), Range16), $clone(new Range16.ptr(43584, 43586, 1), Range16), $clone(new Range16.ptr(43588, 43595, 1), Range16), $clone(new Range16.ptr(43616, 43631, 1), Range16), $clone(new Range16.ptr(43633, 43638, 1), Range16), $clone(new Range16.ptr(43642, 43646, 4), Range16), $clone(new Range16.ptr(43647, 43695, 1), Range16), $clone(new Range16.ptr(43697, 43701, 4), Range16), $clone(new Range16.ptr(43702, 43705, 3), Range16), $clone(new Range16.ptr(43706, 43709, 1), Range16), $clone(new Range16.ptr(43712, 43714, 2), Range16), $clone(new Range16.ptr(43739, 43740, 1), Range16), $clone(new Range16.ptr(43744, 43754, 1), Range16), $clone(new Range16.ptr(43762, 43777, 15), Range16), $clone(new Range16.ptr(43778, 43782, 1), Range16), $clone(new Range16.ptr(43785, 43790, 1), Range16), $clone(new Range16.ptr(43793, 43798, 1), Range16), $clone(new Range16.ptr(43808, 43814, 1), Range16), $clone(new Range16.ptr(43816, 43822, 1), Range16), $clone(new Range16.ptr(43968, 44002, 1), Range16), $clone(new Range16.ptr(44032, 55203, 1), Range16), $clone(new Range16.ptr(55216, 55238, 1), Range16), $clone(new Range16.ptr(55243, 55291, 1), Range16), $clone(new Range16.ptr(63744, 64109, 1), Range16), $clone(new Range16.ptr(64112, 64217, 1), Range16), $clone(new Range16.ptr(64285, 64287, 2), Range16), $clone(new Range16.ptr(64288, 64296, 1), Range16), $clone(new Range16.ptr(64298, 64310, 1), Range16), $clone(new Range16.ptr(64312, 64316, 1), Range16), $clone(new Range16.ptr(64318, 64320, 2), Range16), $clone(new Range16.ptr(64321, 64323, 2), Range16), $clone(new Range16.ptr(64324, 64326, 2), Range16), $clone(new Range16.ptr(64327, 64433, 1), Range16), $clone(new Range16.ptr(64467, 64829, 1), Range16), $clone(new Range16.ptr(64848, 64911, 1), Range16), $clone(new Range16.ptr(64914, 64967, 1), Range16), $clone(new Range16.ptr(65008, 65019, 1), Range16), $clone(new Range16.ptr(65136, 65140, 1), Range16), $clone(new Range16.ptr(65142, 65276, 1), Range16), $clone(new Range16.ptr(65382, 65391, 1), Range16), $clone(new Range16.ptr(65393, 65437, 1), Range16), $clone(new Range16.ptr(65440, 65470, 1), Range16), $clone(new Range16.ptr(65474, 65479, 1), Range16), $clone(new Range16.ptr(65482, 65487, 1), Range16), $clone(new Range16.ptr(65490, 65495, 1), Range16), $clone(new Range16.ptr(65498, 65500, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65536, 65547, 1), Range32), $clone(new Range32.ptr(65549, 65574, 1), Range32), $clone(new Range32.ptr(65576, 65594, 1), Range32), $clone(new Range32.ptr(65596, 65597, 1), Range32), $clone(new Range32.ptr(65599, 65613, 1), Range32), $clone(new Range32.ptr(65616, 65629, 1), Range32), $clone(new Range32.ptr(65664, 65786, 1), Range32), $clone(new Range32.ptr(66176, 66204, 1), Range32), $clone(new Range32.ptr(66208, 66256, 1), Range32), $clone(new Range32.ptr(66304, 66335, 1), Range32), $clone(new Range32.ptr(66349, 66368, 1), Range32), $clone(new Range32.ptr(66370, 66377, 1), Range32), $clone(new Range32.ptr(66384, 66421, 1), Range32), $clone(new Range32.ptr(66432, 66461, 1), Range32), $clone(new Range32.ptr(66464, 66499, 1), Range32), $clone(new Range32.ptr(66504, 66511, 1), Range32), $clone(new Range32.ptr(66640, 66717, 1), Range32), $clone(new Range32.ptr(66816, 66855, 1), Range32), $clone(new Range32.ptr(66864, 66915, 1), Range32), $clone(new Range32.ptr(67072, 67382, 1), Range32), $clone(new Range32.ptr(67392, 67413, 1), Range32), $clone(new Range32.ptr(67424, 67431, 1), Range32), $clone(new Range32.ptr(67584, 67589, 1), Range32), $clone(new Range32.ptr(67592, 67594, 2), Range32), $clone(new Range32.ptr(67595, 67637, 1), Range32), $clone(new Range32.ptr(67639, 67640, 1), Range32), $clone(new Range32.ptr(67644, 67647, 3), Range32), $clone(new Range32.ptr(67648, 67669, 1), Range32), $clone(new Range32.ptr(67680, 67702, 1), Range32), $clone(new Range32.ptr(67712, 67742, 1), Range32), $clone(new Range32.ptr(67808, 67826, 1), Range32), $clone(new Range32.ptr(67828, 67829, 1), Range32), $clone(new Range32.ptr(67840, 67861, 1), Range32), $clone(new Range32.ptr(67872, 67897, 1), Range32), $clone(new Range32.ptr(67968, 68023, 1), Range32), $clone(new Range32.ptr(68030, 68031, 1), Range32), $clone(new Range32.ptr(68096, 68112, 16), Range32), $clone(new Range32.ptr(68113, 68115, 1), Range32), $clone(new Range32.ptr(68117, 68119, 1), Range32), $clone(new Range32.ptr(68121, 68149, 1), Range32), $clone(new Range32.ptr(68192, 68220, 1), Range32), $clone(new Range32.ptr(68224, 68252, 1), Range32), $clone(new Range32.ptr(68288, 68295, 1), Range32), $clone(new Range32.ptr(68297, 68324, 1), Range32), $clone(new Range32.ptr(68352, 68405, 1), Range32), $clone(new Range32.ptr(68416, 68437, 1), Range32), $clone(new Range32.ptr(68448, 68466, 1), Range32), $clone(new Range32.ptr(68480, 68497, 1), Range32), $clone(new Range32.ptr(68608, 68680, 1), Range32), $clone(new Range32.ptr(68864, 68899, 1), Range32), $clone(new Range32.ptr(69248, 69289, 1), Range32), $clone(new Range32.ptr(69296, 69297, 1), Range32), $clone(new Range32.ptr(69376, 69404, 1), Range32), $clone(new Range32.ptr(69415, 69424, 9), Range32), $clone(new Range32.ptr(69425, 69445, 1), Range32), $clone(new Range32.ptr(69552, 69572, 1), Range32), $clone(new Range32.ptr(69600, 69622, 1), Range32), $clone(new Range32.ptr(69635, 69687, 1), Range32), $clone(new Range32.ptr(69763, 69807, 1), Range32), $clone(new Range32.ptr(69840, 69864, 1), Range32), $clone(new Range32.ptr(69891, 69926, 1), Range32), $clone(new Range32.ptr(69956, 69959, 3), Range32), $clone(new Range32.ptr(69968, 70002, 1), Range32), $clone(new Range32.ptr(70006, 70019, 13), Range32), $clone(new Range32.ptr(70020, 70066, 1), Range32), $clone(new Range32.ptr(70081, 70084, 1), Range32), $clone(new Range32.ptr(70106, 70108, 2), Range32), $clone(new Range32.ptr(70144, 70161, 1), Range32), $clone(new Range32.ptr(70163, 70187, 1), Range32), $clone(new Range32.ptr(70272, 70278, 1), Range32), $clone(new Range32.ptr(70280, 70282, 2), Range32), $clone(new Range32.ptr(70283, 70285, 1), Range32), $clone(new Range32.ptr(70287, 70301, 1), Range32), $clone(new Range32.ptr(70303, 70312, 1), Range32), $clone(new Range32.ptr(70320, 70366, 1), Range32), $clone(new Range32.ptr(70405, 70412, 1), Range32), $clone(new Range32.ptr(70415, 70416, 1), Range32), $clone(new Range32.ptr(70419, 70440, 1), Range32), $clone(new Range32.ptr(70442, 70448, 1), Range32), $clone(new Range32.ptr(70450, 70451, 1), Range32), $clone(new Range32.ptr(70453, 70457, 1), Range32), $clone(new Range32.ptr(70461, 70480, 19), Range32), $clone(new Range32.ptr(70493, 70497, 1), Range32), $clone(new Range32.ptr(70656, 70708, 1), Range32), $clone(new Range32.ptr(70727, 70730, 1), Range32), $clone(new Range32.ptr(70751, 70753, 1), Range32), $clone(new Range32.ptr(70784, 70831, 1), Range32), $clone(new Range32.ptr(70852, 70853, 1), Range32), $clone(new Range32.ptr(70855, 71040, 185), Range32), $clone(new Range32.ptr(71041, 71086, 1), Range32), $clone(new Range32.ptr(71128, 71131, 1), Range32), $clone(new Range32.ptr(71168, 71215, 1), Range32), $clone(new Range32.ptr(71236, 71296, 60), Range32), $clone(new Range32.ptr(71297, 71338, 1), Range32), $clone(new Range32.ptr(71352, 71424, 72), Range32), $clone(new Range32.ptr(71425, 71450, 1), Range32), $clone(new Range32.ptr(71680, 71723, 1), Range32), $clone(new Range32.ptr(71935, 71942, 1), Range32), $clone(new Range32.ptr(71945, 71948, 3), Range32), $clone(new Range32.ptr(71949, 71955, 1), Range32), $clone(new Range32.ptr(71957, 71958, 1), Range32), $clone(new Range32.ptr(71960, 71983, 1), Range32), $clone(new Range32.ptr(71999, 72001, 2), Range32), $clone(new Range32.ptr(72096, 72103, 1), Range32), $clone(new Range32.ptr(72106, 72144, 1), Range32), $clone(new Range32.ptr(72161, 72163, 2), Range32), $clone(new Range32.ptr(72192, 72203, 11), Range32), $clone(new Range32.ptr(72204, 72242, 1), Range32), $clone(new Range32.ptr(72250, 72272, 22), Range32), $clone(new Range32.ptr(72284, 72329, 1), Range32), $clone(new Range32.ptr(72349, 72384, 35), Range32), $clone(new Range32.ptr(72385, 72440, 1), Range32), $clone(new Range32.ptr(72704, 72712, 1), Range32), $clone(new Range32.ptr(72714, 72750, 1), Range32), $clone(new Range32.ptr(72768, 72818, 50), Range32), $clone(new Range32.ptr(72819, 72847, 1), Range32), $clone(new Range32.ptr(72960, 72966, 1), Range32), $clone(new Range32.ptr(72968, 72969, 1), Range32), $clone(new Range32.ptr(72971, 73008, 1), Range32), $clone(new Range32.ptr(73030, 73056, 26), Range32), $clone(new Range32.ptr(73057, 73061, 1), Range32), $clone(new Range32.ptr(73063, 73064, 1), Range32), $clone(new Range32.ptr(73066, 73097, 1), Range32), $clone(new Range32.ptr(73112, 73440, 328), Range32), $clone(new Range32.ptr(73441, 73458, 1), Range32), $clone(new Range32.ptr(73648, 73728, 80), Range32), $clone(new Range32.ptr(73729, 74649, 1), Range32), $clone(new Range32.ptr(74880, 75075, 1), Range32), $clone(new Range32.ptr(77824, 78894, 1), Range32), $clone(new Range32.ptr(82944, 83526, 1), Range32), $clone(new Range32.ptr(92160, 92728, 1), Range32), $clone(new Range32.ptr(92736, 92766, 1), Range32), $clone(new Range32.ptr(92880, 92909, 1), Range32), $clone(new Range32.ptr(92928, 92975, 1), Range32), $clone(new Range32.ptr(93027, 93047, 1), Range32), $clone(new Range32.ptr(93053, 93071, 1), Range32), $clone(new Range32.ptr(93952, 94026, 1), Range32), $clone(new Range32.ptr(94032, 94208, 176), Range32), $clone(new Range32.ptr(94209, 100343, 1), Range32), $clone(new Range32.ptr(100352, 101589, 1), Range32), $clone(new Range32.ptr(101632, 101640, 1), Range32), $clone(new Range32.ptr(110592, 110878, 1), Range32), $clone(new Range32.ptr(110928, 110930, 1), Range32), $clone(new Range32.ptr(110948, 110951, 1), Range32), $clone(new Range32.ptr(110960, 111355, 1), Range32), $clone(new Range32.ptr(113664, 113770, 1), Range32), $clone(new Range32.ptr(113776, 113788, 1), Range32), $clone(new Range32.ptr(113792, 113800, 1), Range32), $clone(new Range32.ptr(113808, 113817, 1), Range32), $clone(new Range32.ptr(123136, 123180, 1), Range32), $clone(new Range32.ptr(123214, 123584, 370), Range32), $clone(new Range32.ptr(123585, 123627, 1), Range32), $clone(new Range32.ptr(124928, 125124, 1), Range32), $clone(new Range32.ptr(126464, 126467, 1), Range32), $clone(new Range32.ptr(126469, 126495, 1), Range32), $clone(new Range32.ptr(126497, 126498, 1), Range32), $clone(new Range32.ptr(126500, 126503, 3), Range32), $clone(new Range32.ptr(126505, 126514, 1), Range32), $clone(new Range32.ptr(126516, 126519, 1), Range32), $clone(new Range32.ptr(126521, 126523, 2), Range32), $clone(new Range32.ptr(126530, 126535, 5), Range32), $clone(new Range32.ptr(126537, 126541, 2), Range32), $clone(new Range32.ptr(126542, 126543, 1), Range32), $clone(new Range32.ptr(126545, 126546, 1), Range32), $clone(new Range32.ptr(126548, 126551, 3), Range32), $clone(new Range32.ptr(126553, 126561, 2), Range32), $clone(new Range32.ptr(126562, 126564, 2), Range32), $clone(new Range32.ptr(126567, 126570, 1), Range32), $clone(new Range32.ptr(126572, 126578, 1), Range32), $clone(new Range32.ptr(126580, 126583, 1), Range32), $clone(new Range32.ptr(126585, 126588, 1), Range32), $clone(new Range32.ptr(126590, 126592, 2), Range32), $clone(new Range32.ptr(126593, 126601, 1), Range32), $clone(new Range32.ptr(126603, 126619, 1), Range32), $clone(new Range32.ptr(126625, 126627, 1), Range32), $clone(new Range32.ptr(126629, 126633, 1), Range32), $clone(new Range32.ptr(126635, 126651, 1), Range32), $clone(new Range32.ptr(131072, 173789, 1), Range32), $clone(new Range32.ptr(173824, 177972, 1), Range32), $clone(new Range32.ptr(177984, 178205, 1), Range32), $clone(new Range32.ptr(178208, 183969, 1), Range32), $clone(new Range32.ptr(183984, 191456, 1), Range32), $clone(new Range32.ptr(194560, 195101, 1), Range32), $clone(new Range32.ptr(196608, 201546, 1), Range32)]), 1); + _L = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(65, 90, 1), Range16), $clone(new Range16.ptr(97, 122, 1), Range16), $clone(new Range16.ptr(170, 181, 11), Range16), $clone(new Range16.ptr(186, 192, 6), Range16), $clone(new Range16.ptr(193, 214, 1), Range16), $clone(new Range16.ptr(216, 246, 1), Range16), $clone(new Range16.ptr(248, 705, 1), Range16), $clone(new Range16.ptr(710, 721, 1), Range16), $clone(new Range16.ptr(736, 740, 1), Range16), $clone(new Range16.ptr(748, 750, 2), Range16), $clone(new Range16.ptr(880, 884, 1), Range16), $clone(new Range16.ptr(886, 887, 1), Range16), $clone(new Range16.ptr(890, 893, 1), Range16), $clone(new Range16.ptr(895, 902, 7), Range16), $clone(new Range16.ptr(904, 906, 1), Range16), $clone(new Range16.ptr(908, 910, 2), Range16), $clone(new Range16.ptr(911, 929, 1), Range16), $clone(new Range16.ptr(931, 1013, 1), Range16), $clone(new Range16.ptr(1015, 1153, 1), Range16), $clone(new Range16.ptr(1162, 1327, 1), Range16), $clone(new Range16.ptr(1329, 1366, 1), Range16), $clone(new Range16.ptr(1369, 1376, 7), Range16), $clone(new Range16.ptr(1377, 1416, 1), Range16), $clone(new Range16.ptr(1488, 1514, 1), Range16), $clone(new Range16.ptr(1519, 1522, 1), Range16), $clone(new Range16.ptr(1568, 1610, 1), Range16), $clone(new Range16.ptr(1646, 1647, 1), Range16), $clone(new Range16.ptr(1649, 1747, 1), Range16), $clone(new Range16.ptr(1749, 1765, 16), Range16), $clone(new Range16.ptr(1766, 1774, 8), Range16), $clone(new Range16.ptr(1775, 1786, 11), Range16), $clone(new Range16.ptr(1787, 1788, 1), Range16), $clone(new Range16.ptr(1791, 1808, 17), Range16), $clone(new Range16.ptr(1810, 1839, 1), Range16), $clone(new Range16.ptr(1869, 1957, 1), Range16), $clone(new Range16.ptr(1969, 1994, 25), Range16), $clone(new Range16.ptr(1995, 2026, 1), Range16), $clone(new Range16.ptr(2036, 2037, 1), Range16), $clone(new Range16.ptr(2042, 2048, 6), Range16), $clone(new Range16.ptr(2049, 2069, 1), Range16), $clone(new Range16.ptr(2074, 2084, 10), Range16), $clone(new Range16.ptr(2088, 2112, 24), Range16), $clone(new Range16.ptr(2113, 2136, 1), Range16), $clone(new Range16.ptr(2144, 2154, 1), Range16), $clone(new Range16.ptr(2160, 2183, 1), Range16), $clone(new Range16.ptr(2185, 2190, 1), Range16), $clone(new Range16.ptr(2208, 2249, 1), Range16), $clone(new Range16.ptr(2308, 2361, 1), Range16), $clone(new Range16.ptr(2365, 2384, 19), Range16), $clone(new Range16.ptr(2392, 2401, 1), Range16), $clone(new Range16.ptr(2417, 2432, 1), Range16), $clone(new Range16.ptr(2437, 2444, 1), Range16), $clone(new Range16.ptr(2447, 2448, 1), Range16), $clone(new Range16.ptr(2451, 2472, 1), Range16), $clone(new Range16.ptr(2474, 2480, 1), Range16), $clone(new Range16.ptr(2482, 2486, 4), Range16), $clone(new Range16.ptr(2487, 2489, 1), Range16), $clone(new Range16.ptr(2493, 2510, 17), Range16), $clone(new Range16.ptr(2524, 2525, 1), Range16), $clone(new Range16.ptr(2527, 2529, 1), Range16), $clone(new Range16.ptr(2544, 2545, 1), Range16), $clone(new Range16.ptr(2556, 2565, 9), Range16), $clone(new Range16.ptr(2566, 2570, 1), Range16), $clone(new Range16.ptr(2575, 2576, 1), Range16), $clone(new Range16.ptr(2579, 2600, 1), Range16), $clone(new Range16.ptr(2602, 2608, 1), Range16), $clone(new Range16.ptr(2610, 2611, 1), Range16), $clone(new Range16.ptr(2613, 2614, 1), Range16), $clone(new Range16.ptr(2616, 2617, 1), Range16), $clone(new Range16.ptr(2649, 2652, 1), Range16), $clone(new Range16.ptr(2654, 2674, 20), Range16), $clone(new Range16.ptr(2675, 2676, 1), Range16), $clone(new Range16.ptr(2693, 2701, 1), Range16), $clone(new Range16.ptr(2703, 2705, 1), Range16), $clone(new Range16.ptr(2707, 2728, 1), Range16), $clone(new Range16.ptr(2730, 2736, 1), Range16), $clone(new Range16.ptr(2738, 2739, 1), Range16), $clone(new Range16.ptr(2741, 2745, 1), Range16), $clone(new Range16.ptr(2749, 2768, 19), Range16), $clone(new Range16.ptr(2784, 2785, 1), Range16), $clone(new Range16.ptr(2809, 2821, 12), Range16), $clone(new Range16.ptr(2822, 2828, 1), Range16), $clone(new Range16.ptr(2831, 2832, 1), Range16), $clone(new Range16.ptr(2835, 2856, 1), Range16), $clone(new Range16.ptr(2858, 2864, 1), Range16), $clone(new Range16.ptr(2866, 2867, 1), Range16), $clone(new Range16.ptr(2869, 2873, 1), Range16), $clone(new Range16.ptr(2877, 2908, 31), Range16), $clone(new Range16.ptr(2909, 2911, 2), Range16), $clone(new Range16.ptr(2912, 2913, 1), Range16), $clone(new Range16.ptr(2929, 2947, 18), Range16), $clone(new Range16.ptr(2949, 2954, 1), Range16), $clone(new Range16.ptr(2958, 2960, 1), Range16), $clone(new Range16.ptr(2962, 2965, 1), Range16), $clone(new Range16.ptr(2969, 2970, 1), Range16), $clone(new Range16.ptr(2972, 2974, 2), Range16), $clone(new Range16.ptr(2975, 2979, 4), Range16), $clone(new Range16.ptr(2980, 2984, 4), Range16), $clone(new Range16.ptr(2985, 2986, 1), Range16), $clone(new Range16.ptr(2990, 3001, 1), Range16), $clone(new Range16.ptr(3024, 3077, 53), Range16), $clone(new Range16.ptr(3078, 3084, 1), Range16), $clone(new Range16.ptr(3086, 3088, 1), Range16), $clone(new Range16.ptr(3090, 3112, 1), Range16), $clone(new Range16.ptr(3114, 3129, 1), Range16), $clone(new Range16.ptr(3133, 3160, 27), Range16), $clone(new Range16.ptr(3161, 3162, 1), Range16), $clone(new Range16.ptr(3165, 3168, 3), Range16), $clone(new Range16.ptr(3169, 3200, 31), Range16), $clone(new Range16.ptr(3205, 3212, 1), Range16), $clone(new Range16.ptr(3214, 3216, 1), Range16), $clone(new Range16.ptr(3218, 3240, 1), Range16), $clone(new Range16.ptr(3242, 3251, 1), Range16), $clone(new Range16.ptr(3253, 3257, 1), Range16), $clone(new Range16.ptr(3261, 3293, 32), Range16), $clone(new Range16.ptr(3294, 3296, 2), Range16), $clone(new Range16.ptr(3297, 3313, 16), Range16), $clone(new Range16.ptr(3314, 3332, 18), Range16), $clone(new Range16.ptr(3333, 3340, 1), Range16), $clone(new Range16.ptr(3342, 3344, 1), Range16), $clone(new Range16.ptr(3346, 3386, 1), Range16), $clone(new Range16.ptr(3389, 3406, 17), Range16), $clone(new Range16.ptr(3412, 3414, 1), Range16), $clone(new Range16.ptr(3423, 3425, 1), Range16), $clone(new Range16.ptr(3450, 3455, 1), Range16), $clone(new Range16.ptr(3461, 3478, 1), Range16), $clone(new Range16.ptr(3482, 3505, 1), Range16), $clone(new Range16.ptr(3507, 3515, 1), Range16), $clone(new Range16.ptr(3517, 3520, 3), Range16), $clone(new Range16.ptr(3521, 3526, 1), Range16), $clone(new Range16.ptr(3585, 3632, 1), Range16), $clone(new Range16.ptr(3634, 3635, 1), Range16), $clone(new Range16.ptr(3648, 3654, 1), Range16), $clone(new Range16.ptr(3713, 3714, 1), Range16), $clone(new Range16.ptr(3716, 3718, 2), Range16), $clone(new Range16.ptr(3719, 3722, 1), Range16), $clone(new Range16.ptr(3724, 3747, 1), Range16), $clone(new Range16.ptr(3749, 3751, 2), Range16), $clone(new Range16.ptr(3752, 3760, 1), Range16), $clone(new Range16.ptr(3762, 3763, 1), Range16), $clone(new Range16.ptr(3773, 3776, 3), Range16), $clone(new Range16.ptr(3777, 3780, 1), Range16), $clone(new Range16.ptr(3782, 3804, 22), Range16), $clone(new Range16.ptr(3805, 3807, 1), Range16), $clone(new Range16.ptr(3840, 3904, 64), Range16), $clone(new Range16.ptr(3905, 3911, 1), Range16), $clone(new Range16.ptr(3913, 3948, 1), Range16), $clone(new Range16.ptr(3976, 3980, 1), Range16), $clone(new Range16.ptr(4096, 4138, 1), Range16), $clone(new Range16.ptr(4159, 4176, 17), Range16), $clone(new Range16.ptr(4177, 4181, 1), Range16), $clone(new Range16.ptr(4186, 4189, 1), Range16), $clone(new Range16.ptr(4193, 4197, 4), Range16), $clone(new Range16.ptr(4198, 4206, 8), Range16), $clone(new Range16.ptr(4207, 4208, 1), Range16), $clone(new Range16.ptr(4213, 4225, 1), Range16), $clone(new Range16.ptr(4238, 4256, 18), Range16), $clone(new Range16.ptr(4257, 4293, 1), Range16), $clone(new Range16.ptr(4295, 4301, 6), Range16), $clone(new Range16.ptr(4304, 4346, 1), Range16), $clone(new Range16.ptr(4348, 4680, 1), Range16), $clone(new Range16.ptr(4682, 4685, 1), Range16), $clone(new Range16.ptr(4688, 4694, 1), Range16), $clone(new Range16.ptr(4696, 4698, 2), Range16), $clone(new Range16.ptr(4699, 4701, 1), Range16), $clone(new Range16.ptr(4704, 4744, 1), Range16), $clone(new Range16.ptr(4746, 4749, 1), Range16), $clone(new Range16.ptr(4752, 4784, 1), Range16), $clone(new Range16.ptr(4786, 4789, 1), Range16), $clone(new Range16.ptr(4792, 4798, 1), Range16), $clone(new Range16.ptr(4800, 4802, 2), Range16), $clone(new Range16.ptr(4803, 4805, 1), Range16), $clone(new Range16.ptr(4808, 4822, 1), Range16), $clone(new Range16.ptr(4824, 4880, 1), Range16), $clone(new Range16.ptr(4882, 4885, 1), Range16), $clone(new Range16.ptr(4888, 4954, 1), Range16), $clone(new Range16.ptr(4992, 5007, 1), Range16), $clone(new Range16.ptr(5024, 5109, 1), Range16), $clone(new Range16.ptr(5112, 5117, 1), Range16), $clone(new Range16.ptr(5121, 5740, 1), Range16), $clone(new Range16.ptr(5743, 5759, 1), Range16), $clone(new Range16.ptr(5761, 5786, 1), Range16), $clone(new Range16.ptr(5792, 5866, 1), Range16), $clone(new Range16.ptr(5873, 5880, 1), Range16), $clone(new Range16.ptr(5888, 5905, 1), Range16), $clone(new Range16.ptr(5919, 5937, 1), Range16), $clone(new Range16.ptr(5952, 5969, 1), Range16), $clone(new Range16.ptr(5984, 5996, 1), Range16), $clone(new Range16.ptr(5998, 6000, 1), Range16), $clone(new Range16.ptr(6016, 6067, 1), Range16), $clone(new Range16.ptr(6103, 6108, 5), Range16), $clone(new Range16.ptr(6176, 6264, 1), Range16), $clone(new Range16.ptr(6272, 6276, 1), Range16), $clone(new Range16.ptr(6279, 6312, 1), Range16), $clone(new Range16.ptr(6314, 6320, 6), Range16), $clone(new Range16.ptr(6321, 6389, 1), Range16), $clone(new Range16.ptr(6400, 6430, 1), Range16), $clone(new Range16.ptr(6480, 6509, 1), Range16), $clone(new Range16.ptr(6512, 6516, 1), Range16), $clone(new Range16.ptr(6528, 6571, 1), Range16), $clone(new Range16.ptr(6576, 6601, 1), Range16), $clone(new Range16.ptr(6656, 6678, 1), Range16), $clone(new Range16.ptr(6688, 6740, 1), Range16), $clone(new Range16.ptr(6823, 6917, 94), Range16), $clone(new Range16.ptr(6918, 6963, 1), Range16), $clone(new Range16.ptr(6981, 6988, 1), Range16), $clone(new Range16.ptr(7043, 7072, 1), Range16), $clone(new Range16.ptr(7086, 7087, 1), Range16), $clone(new Range16.ptr(7098, 7141, 1), Range16), $clone(new Range16.ptr(7168, 7203, 1), Range16), $clone(new Range16.ptr(7245, 7247, 1), Range16), $clone(new Range16.ptr(7258, 7293, 1), Range16), $clone(new Range16.ptr(7296, 7304, 1), Range16), $clone(new Range16.ptr(7312, 7354, 1), Range16), $clone(new Range16.ptr(7357, 7359, 1), Range16), $clone(new Range16.ptr(7401, 7404, 1), Range16), $clone(new Range16.ptr(7406, 7411, 1), Range16), $clone(new Range16.ptr(7413, 7414, 1), Range16), $clone(new Range16.ptr(7418, 7424, 6), Range16), $clone(new Range16.ptr(7425, 7615, 1), Range16), $clone(new Range16.ptr(7680, 7957, 1), Range16), $clone(new Range16.ptr(7960, 7965, 1), Range16), $clone(new Range16.ptr(7968, 8005, 1), Range16), $clone(new Range16.ptr(8008, 8013, 1), Range16), $clone(new Range16.ptr(8016, 8023, 1), Range16), $clone(new Range16.ptr(8025, 8031, 2), Range16), $clone(new Range16.ptr(8032, 8061, 1), Range16), $clone(new Range16.ptr(8064, 8116, 1), Range16), $clone(new Range16.ptr(8118, 8124, 1), Range16), $clone(new Range16.ptr(8126, 8130, 4), Range16), $clone(new Range16.ptr(8131, 8132, 1), Range16), $clone(new Range16.ptr(8134, 8140, 1), Range16), $clone(new Range16.ptr(8144, 8147, 1), Range16), $clone(new Range16.ptr(8150, 8155, 1), Range16), $clone(new Range16.ptr(8160, 8172, 1), Range16), $clone(new Range16.ptr(8178, 8180, 1), Range16), $clone(new Range16.ptr(8182, 8188, 1), Range16), $clone(new Range16.ptr(8305, 8319, 14), Range16), $clone(new Range16.ptr(8336, 8348, 1), Range16), $clone(new Range16.ptr(8450, 8455, 5), Range16), $clone(new Range16.ptr(8458, 8467, 1), Range16), $clone(new Range16.ptr(8469, 8473, 4), Range16), $clone(new Range16.ptr(8474, 8477, 1), Range16), $clone(new Range16.ptr(8484, 8490, 2), Range16), $clone(new Range16.ptr(8491, 8493, 1), Range16), $clone(new Range16.ptr(8495, 8505, 1), Range16), $clone(new Range16.ptr(8508, 8511, 1), Range16), $clone(new Range16.ptr(8517, 8521, 1), Range16), $clone(new Range16.ptr(8526, 8579, 53), Range16), $clone(new Range16.ptr(8580, 11264, 2684), Range16), $clone(new Range16.ptr(11265, 11492, 1), Range16), $clone(new Range16.ptr(11499, 11502, 1), Range16), $clone(new Range16.ptr(11506, 11507, 1), Range16), $clone(new Range16.ptr(11520, 11557, 1), Range16), $clone(new Range16.ptr(11559, 11565, 6), Range16), $clone(new Range16.ptr(11568, 11623, 1), Range16), $clone(new Range16.ptr(11631, 11648, 17), Range16), $clone(new Range16.ptr(11649, 11670, 1), Range16), $clone(new Range16.ptr(11680, 11686, 1), Range16), $clone(new Range16.ptr(11688, 11694, 1), Range16), $clone(new Range16.ptr(11696, 11702, 1), Range16), $clone(new Range16.ptr(11704, 11710, 1), Range16), $clone(new Range16.ptr(11712, 11718, 1), Range16), $clone(new Range16.ptr(11720, 11726, 1), Range16), $clone(new Range16.ptr(11728, 11734, 1), Range16), $clone(new Range16.ptr(11736, 11742, 1), Range16), $clone(new Range16.ptr(11823, 12293, 470), Range16), $clone(new Range16.ptr(12294, 12337, 43), Range16), $clone(new Range16.ptr(12338, 12341, 1), Range16), $clone(new Range16.ptr(12347, 12348, 1), Range16), $clone(new Range16.ptr(12353, 12438, 1), Range16), $clone(new Range16.ptr(12445, 12447, 1), Range16), $clone(new Range16.ptr(12449, 12538, 1), Range16), $clone(new Range16.ptr(12540, 12543, 1), Range16), $clone(new Range16.ptr(12549, 12591, 1), Range16), $clone(new Range16.ptr(12593, 12686, 1), Range16), $clone(new Range16.ptr(12704, 12735, 1), Range16), $clone(new Range16.ptr(12784, 12799, 1), Range16), $clone(new Range16.ptr(13312, 19903, 1), Range16), $clone(new Range16.ptr(19968, 42124, 1), Range16), $clone(new Range16.ptr(42192, 42237, 1), Range16), $clone(new Range16.ptr(42240, 42508, 1), Range16), $clone(new Range16.ptr(42512, 42527, 1), Range16), $clone(new Range16.ptr(42538, 42539, 1), Range16), $clone(new Range16.ptr(42560, 42606, 1), Range16), $clone(new Range16.ptr(42623, 42653, 1), Range16), $clone(new Range16.ptr(42656, 42725, 1), Range16), $clone(new Range16.ptr(42775, 42783, 1), Range16), $clone(new Range16.ptr(42786, 42888, 1), Range16), $clone(new Range16.ptr(42891, 42954, 1), Range16), $clone(new Range16.ptr(42960, 42961, 1), Range16), $clone(new Range16.ptr(42963, 42965, 2), Range16), $clone(new Range16.ptr(42966, 42969, 1), Range16), $clone(new Range16.ptr(42994, 43009, 1), Range16), $clone(new Range16.ptr(43011, 43013, 1), Range16), $clone(new Range16.ptr(43015, 43018, 1), Range16), $clone(new Range16.ptr(43020, 43042, 1), Range16), $clone(new Range16.ptr(43072, 43123, 1), Range16), $clone(new Range16.ptr(43138, 43187, 1), Range16), $clone(new Range16.ptr(43250, 43255, 1), Range16), $clone(new Range16.ptr(43259, 43261, 2), Range16), $clone(new Range16.ptr(43262, 43274, 12), Range16), $clone(new Range16.ptr(43275, 43301, 1), Range16), $clone(new Range16.ptr(43312, 43334, 1), Range16), $clone(new Range16.ptr(43360, 43388, 1), Range16), $clone(new Range16.ptr(43396, 43442, 1), Range16), $clone(new Range16.ptr(43471, 43488, 17), Range16), $clone(new Range16.ptr(43489, 43492, 1), Range16), $clone(new Range16.ptr(43494, 43503, 1), Range16), $clone(new Range16.ptr(43514, 43518, 1), Range16), $clone(new Range16.ptr(43520, 43560, 1), Range16), $clone(new Range16.ptr(43584, 43586, 1), Range16), $clone(new Range16.ptr(43588, 43595, 1), Range16), $clone(new Range16.ptr(43616, 43638, 1), Range16), $clone(new Range16.ptr(43642, 43646, 4), Range16), $clone(new Range16.ptr(43647, 43695, 1), Range16), $clone(new Range16.ptr(43697, 43701, 4), Range16), $clone(new Range16.ptr(43702, 43705, 3), Range16), $clone(new Range16.ptr(43706, 43709, 1), Range16), $clone(new Range16.ptr(43712, 43714, 2), Range16), $clone(new Range16.ptr(43739, 43741, 1), Range16), $clone(new Range16.ptr(43744, 43754, 1), Range16), $clone(new Range16.ptr(43762, 43764, 1), Range16), $clone(new Range16.ptr(43777, 43782, 1), Range16), $clone(new Range16.ptr(43785, 43790, 1), Range16), $clone(new Range16.ptr(43793, 43798, 1), Range16), $clone(new Range16.ptr(43808, 43814, 1), Range16), $clone(new Range16.ptr(43816, 43822, 1), Range16), $clone(new Range16.ptr(43824, 43866, 1), Range16), $clone(new Range16.ptr(43868, 43881, 1), Range16), $clone(new Range16.ptr(43888, 44002, 1), Range16), $clone(new Range16.ptr(44032, 55203, 1), Range16), $clone(new Range16.ptr(55216, 55238, 1), Range16), $clone(new Range16.ptr(55243, 55291, 1), Range16), $clone(new Range16.ptr(63744, 64109, 1), Range16), $clone(new Range16.ptr(64112, 64217, 1), Range16), $clone(new Range16.ptr(64256, 64262, 1), Range16), $clone(new Range16.ptr(64275, 64279, 1), Range16), $clone(new Range16.ptr(64285, 64287, 2), Range16), $clone(new Range16.ptr(64288, 64296, 1), Range16), $clone(new Range16.ptr(64298, 64310, 1), Range16), $clone(new Range16.ptr(64312, 64316, 1), Range16), $clone(new Range16.ptr(64318, 64320, 2), Range16), $clone(new Range16.ptr(64321, 64323, 2), Range16), $clone(new Range16.ptr(64324, 64326, 2), Range16), $clone(new Range16.ptr(64327, 64433, 1), Range16), $clone(new Range16.ptr(64467, 64829, 1), Range16), $clone(new Range16.ptr(64848, 64911, 1), Range16), $clone(new Range16.ptr(64914, 64967, 1), Range16), $clone(new Range16.ptr(65008, 65019, 1), Range16), $clone(new Range16.ptr(65136, 65140, 1), Range16), $clone(new Range16.ptr(65142, 65276, 1), Range16), $clone(new Range16.ptr(65313, 65338, 1), Range16), $clone(new Range16.ptr(65345, 65370, 1), Range16), $clone(new Range16.ptr(65382, 65470, 1), Range16), $clone(new Range16.ptr(65474, 65479, 1), Range16), $clone(new Range16.ptr(65482, 65487, 1), Range16), $clone(new Range16.ptr(65490, 65495, 1), Range16), $clone(new Range16.ptr(65498, 65500, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65536, 65547, 1), Range32), $clone(new Range32.ptr(65549, 65574, 1), Range32), $clone(new Range32.ptr(65576, 65594, 1), Range32), $clone(new Range32.ptr(65596, 65597, 1), Range32), $clone(new Range32.ptr(65599, 65613, 1), Range32), $clone(new Range32.ptr(65616, 65629, 1), Range32), $clone(new Range32.ptr(65664, 65786, 1), Range32), $clone(new Range32.ptr(66176, 66204, 1), Range32), $clone(new Range32.ptr(66208, 66256, 1), Range32), $clone(new Range32.ptr(66304, 66335, 1), Range32), $clone(new Range32.ptr(66349, 66368, 1), Range32), $clone(new Range32.ptr(66370, 66377, 1), Range32), $clone(new Range32.ptr(66384, 66421, 1), Range32), $clone(new Range32.ptr(66432, 66461, 1), Range32), $clone(new Range32.ptr(66464, 66499, 1), Range32), $clone(new Range32.ptr(66504, 66511, 1), Range32), $clone(new Range32.ptr(66560, 66717, 1), Range32), $clone(new Range32.ptr(66736, 66771, 1), Range32), $clone(new Range32.ptr(66776, 66811, 1), Range32), $clone(new Range32.ptr(66816, 66855, 1), Range32), $clone(new Range32.ptr(66864, 66915, 1), Range32), $clone(new Range32.ptr(66928, 66938, 1), Range32), $clone(new Range32.ptr(66940, 66954, 1), Range32), $clone(new Range32.ptr(66956, 66962, 1), Range32), $clone(new Range32.ptr(66964, 66965, 1), Range32), $clone(new Range32.ptr(66967, 66977, 1), Range32), $clone(new Range32.ptr(66979, 66993, 1), Range32), $clone(new Range32.ptr(66995, 67001, 1), Range32), $clone(new Range32.ptr(67003, 67004, 1), Range32), $clone(new Range32.ptr(67072, 67382, 1), Range32), $clone(new Range32.ptr(67392, 67413, 1), Range32), $clone(new Range32.ptr(67424, 67431, 1), Range32), $clone(new Range32.ptr(67456, 67461, 1), Range32), $clone(new Range32.ptr(67463, 67504, 1), Range32), $clone(new Range32.ptr(67506, 67514, 1), Range32), $clone(new Range32.ptr(67584, 67589, 1), Range32), $clone(new Range32.ptr(67592, 67594, 2), Range32), $clone(new Range32.ptr(67595, 67637, 1), Range32), $clone(new Range32.ptr(67639, 67640, 1), Range32), $clone(new Range32.ptr(67644, 67647, 3), Range32), $clone(new Range32.ptr(67648, 67669, 1), Range32), $clone(new Range32.ptr(67680, 67702, 1), Range32), $clone(new Range32.ptr(67712, 67742, 1), Range32), $clone(new Range32.ptr(67808, 67826, 1), Range32), $clone(new Range32.ptr(67828, 67829, 1), Range32), $clone(new Range32.ptr(67840, 67861, 1), Range32), $clone(new Range32.ptr(67872, 67897, 1), Range32), $clone(new Range32.ptr(67968, 68023, 1), Range32), $clone(new Range32.ptr(68030, 68031, 1), Range32), $clone(new Range32.ptr(68096, 68112, 16), Range32), $clone(new Range32.ptr(68113, 68115, 1), Range32), $clone(new Range32.ptr(68117, 68119, 1), Range32), $clone(new Range32.ptr(68121, 68149, 1), Range32), $clone(new Range32.ptr(68192, 68220, 1), Range32), $clone(new Range32.ptr(68224, 68252, 1), Range32), $clone(new Range32.ptr(68288, 68295, 1), Range32), $clone(new Range32.ptr(68297, 68324, 1), Range32), $clone(new Range32.ptr(68352, 68405, 1), Range32), $clone(new Range32.ptr(68416, 68437, 1), Range32), $clone(new Range32.ptr(68448, 68466, 1), Range32), $clone(new Range32.ptr(68480, 68497, 1), Range32), $clone(new Range32.ptr(68608, 68680, 1), Range32), $clone(new Range32.ptr(68736, 68786, 1), Range32), $clone(new Range32.ptr(68800, 68850, 1), Range32), $clone(new Range32.ptr(68864, 68899, 1), Range32), $clone(new Range32.ptr(69248, 69289, 1), Range32), $clone(new Range32.ptr(69296, 69297, 1), Range32), $clone(new Range32.ptr(69376, 69404, 1), Range32), $clone(new Range32.ptr(69415, 69424, 9), Range32), $clone(new Range32.ptr(69425, 69445, 1), Range32), $clone(new Range32.ptr(69488, 69505, 1), Range32), $clone(new Range32.ptr(69552, 69572, 1), Range32), $clone(new Range32.ptr(69600, 69622, 1), Range32), $clone(new Range32.ptr(69635, 69687, 1), Range32), $clone(new Range32.ptr(69745, 69746, 1), Range32), $clone(new Range32.ptr(69749, 69763, 14), Range32), $clone(new Range32.ptr(69764, 69807, 1), Range32), $clone(new Range32.ptr(69840, 69864, 1), Range32), $clone(new Range32.ptr(69891, 69926, 1), Range32), $clone(new Range32.ptr(69956, 69959, 3), Range32), $clone(new Range32.ptr(69968, 70002, 1), Range32), $clone(new Range32.ptr(70006, 70019, 13), Range32), $clone(new Range32.ptr(70020, 70066, 1), Range32), $clone(new Range32.ptr(70081, 70084, 1), Range32), $clone(new Range32.ptr(70106, 70108, 2), Range32), $clone(new Range32.ptr(70144, 70161, 1), Range32), $clone(new Range32.ptr(70163, 70187, 1), Range32), $clone(new Range32.ptr(70207, 70208, 1), Range32), $clone(new Range32.ptr(70272, 70278, 1), Range32), $clone(new Range32.ptr(70280, 70282, 2), Range32), $clone(new Range32.ptr(70283, 70285, 1), Range32), $clone(new Range32.ptr(70287, 70301, 1), Range32), $clone(new Range32.ptr(70303, 70312, 1), Range32), $clone(new Range32.ptr(70320, 70366, 1), Range32), $clone(new Range32.ptr(70405, 70412, 1), Range32), $clone(new Range32.ptr(70415, 70416, 1), Range32), $clone(new Range32.ptr(70419, 70440, 1), Range32), $clone(new Range32.ptr(70442, 70448, 1), Range32), $clone(new Range32.ptr(70450, 70451, 1), Range32), $clone(new Range32.ptr(70453, 70457, 1), Range32), $clone(new Range32.ptr(70461, 70480, 19), Range32), $clone(new Range32.ptr(70493, 70497, 1), Range32), $clone(new Range32.ptr(70656, 70708, 1), Range32), $clone(new Range32.ptr(70727, 70730, 1), Range32), $clone(new Range32.ptr(70751, 70753, 1), Range32), $clone(new Range32.ptr(70784, 70831, 1), Range32), $clone(new Range32.ptr(70852, 70853, 1), Range32), $clone(new Range32.ptr(70855, 71040, 185), Range32), $clone(new Range32.ptr(71041, 71086, 1), Range32), $clone(new Range32.ptr(71128, 71131, 1), Range32), $clone(new Range32.ptr(71168, 71215, 1), Range32), $clone(new Range32.ptr(71236, 71296, 60), Range32), $clone(new Range32.ptr(71297, 71338, 1), Range32), $clone(new Range32.ptr(71352, 71424, 72), Range32), $clone(new Range32.ptr(71425, 71450, 1), Range32), $clone(new Range32.ptr(71488, 71494, 1), Range32), $clone(new Range32.ptr(71680, 71723, 1), Range32), $clone(new Range32.ptr(71840, 71903, 1), Range32), $clone(new Range32.ptr(71935, 71942, 1), Range32), $clone(new Range32.ptr(71945, 71948, 3), Range32), $clone(new Range32.ptr(71949, 71955, 1), Range32), $clone(new Range32.ptr(71957, 71958, 1), Range32), $clone(new Range32.ptr(71960, 71983, 1), Range32), $clone(new Range32.ptr(71999, 72001, 2), Range32), $clone(new Range32.ptr(72096, 72103, 1), Range32), $clone(new Range32.ptr(72106, 72144, 1), Range32), $clone(new Range32.ptr(72161, 72163, 2), Range32), $clone(new Range32.ptr(72192, 72203, 11), Range32), $clone(new Range32.ptr(72204, 72242, 1), Range32), $clone(new Range32.ptr(72250, 72272, 22), Range32), $clone(new Range32.ptr(72284, 72329, 1), Range32), $clone(new Range32.ptr(72349, 72368, 19), Range32), $clone(new Range32.ptr(72369, 72440, 1), Range32), $clone(new Range32.ptr(72704, 72712, 1), Range32), $clone(new Range32.ptr(72714, 72750, 1), Range32), $clone(new Range32.ptr(72768, 72818, 50), Range32), $clone(new Range32.ptr(72819, 72847, 1), Range32), $clone(new Range32.ptr(72960, 72966, 1), Range32), $clone(new Range32.ptr(72968, 72969, 1), Range32), $clone(new Range32.ptr(72971, 73008, 1), Range32), $clone(new Range32.ptr(73030, 73056, 26), Range32), $clone(new Range32.ptr(73057, 73061, 1), Range32), $clone(new Range32.ptr(73063, 73064, 1), Range32), $clone(new Range32.ptr(73066, 73097, 1), Range32), $clone(new Range32.ptr(73112, 73440, 328), Range32), $clone(new Range32.ptr(73441, 73458, 1), Range32), $clone(new Range32.ptr(73474, 73476, 2), Range32), $clone(new Range32.ptr(73477, 73488, 1), Range32), $clone(new Range32.ptr(73490, 73523, 1), Range32), $clone(new Range32.ptr(73648, 73728, 80), Range32), $clone(new Range32.ptr(73729, 74649, 1), Range32), $clone(new Range32.ptr(74880, 75075, 1), Range32), $clone(new Range32.ptr(77712, 77808, 1), Range32), $clone(new Range32.ptr(77824, 78895, 1), Range32), $clone(new Range32.ptr(78913, 78918, 1), Range32), $clone(new Range32.ptr(82944, 83526, 1), Range32), $clone(new Range32.ptr(92160, 92728, 1), Range32), $clone(new Range32.ptr(92736, 92766, 1), Range32), $clone(new Range32.ptr(92784, 92862, 1), Range32), $clone(new Range32.ptr(92880, 92909, 1), Range32), $clone(new Range32.ptr(92928, 92975, 1), Range32), $clone(new Range32.ptr(92992, 92995, 1), Range32), $clone(new Range32.ptr(93027, 93047, 1), Range32), $clone(new Range32.ptr(93053, 93071, 1), Range32), $clone(new Range32.ptr(93760, 93823, 1), Range32), $clone(new Range32.ptr(93952, 94026, 1), Range32), $clone(new Range32.ptr(94032, 94099, 67), Range32), $clone(new Range32.ptr(94100, 94111, 1), Range32), $clone(new Range32.ptr(94176, 94177, 1), Range32), $clone(new Range32.ptr(94179, 94208, 29), Range32), $clone(new Range32.ptr(94209, 100343, 1), Range32), $clone(new Range32.ptr(100352, 101589, 1), Range32), $clone(new Range32.ptr(101632, 101640, 1), Range32), $clone(new Range32.ptr(110576, 110579, 1), Range32), $clone(new Range32.ptr(110581, 110587, 1), Range32), $clone(new Range32.ptr(110589, 110590, 1), Range32), $clone(new Range32.ptr(110592, 110882, 1), Range32), $clone(new Range32.ptr(110898, 110928, 30), Range32), $clone(new Range32.ptr(110929, 110930, 1), Range32), $clone(new Range32.ptr(110933, 110948, 15), Range32), $clone(new Range32.ptr(110949, 110951, 1), Range32), $clone(new Range32.ptr(110960, 111355, 1), Range32), $clone(new Range32.ptr(113664, 113770, 1), Range32), $clone(new Range32.ptr(113776, 113788, 1), Range32), $clone(new Range32.ptr(113792, 113800, 1), Range32), $clone(new Range32.ptr(113808, 113817, 1), Range32), $clone(new Range32.ptr(119808, 119892, 1), Range32), $clone(new Range32.ptr(119894, 119964, 1), Range32), $clone(new Range32.ptr(119966, 119967, 1), Range32), $clone(new Range32.ptr(119970, 119973, 3), Range32), $clone(new Range32.ptr(119974, 119977, 3), Range32), $clone(new Range32.ptr(119978, 119980, 1), Range32), $clone(new Range32.ptr(119982, 119993, 1), Range32), $clone(new Range32.ptr(119995, 119997, 2), Range32), $clone(new Range32.ptr(119998, 120003, 1), Range32), $clone(new Range32.ptr(120005, 120069, 1), Range32), $clone(new Range32.ptr(120071, 120074, 1), Range32), $clone(new Range32.ptr(120077, 120084, 1), Range32), $clone(new Range32.ptr(120086, 120092, 1), Range32), $clone(new Range32.ptr(120094, 120121, 1), Range32), $clone(new Range32.ptr(120123, 120126, 1), Range32), $clone(new Range32.ptr(120128, 120132, 1), Range32), $clone(new Range32.ptr(120134, 120138, 4), Range32), $clone(new Range32.ptr(120139, 120144, 1), Range32), $clone(new Range32.ptr(120146, 120485, 1), Range32), $clone(new Range32.ptr(120488, 120512, 1), Range32), $clone(new Range32.ptr(120514, 120538, 1), Range32), $clone(new Range32.ptr(120540, 120570, 1), Range32), $clone(new Range32.ptr(120572, 120596, 1), Range32), $clone(new Range32.ptr(120598, 120628, 1), Range32), $clone(new Range32.ptr(120630, 120654, 1), Range32), $clone(new Range32.ptr(120656, 120686, 1), Range32), $clone(new Range32.ptr(120688, 120712, 1), Range32), $clone(new Range32.ptr(120714, 120744, 1), Range32), $clone(new Range32.ptr(120746, 120770, 1), Range32), $clone(new Range32.ptr(120772, 120779, 1), Range32), $clone(new Range32.ptr(122624, 122654, 1), Range32), $clone(new Range32.ptr(122661, 122666, 1), Range32), $clone(new Range32.ptr(122928, 122989, 1), Range32), $clone(new Range32.ptr(123136, 123180, 1), Range32), $clone(new Range32.ptr(123191, 123197, 1), Range32), $clone(new Range32.ptr(123214, 123536, 322), Range32), $clone(new Range32.ptr(123537, 123565, 1), Range32), $clone(new Range32.ptr(123584, 123627, 1), Range32), $clone(new Range32.ptr(124112, 124139, 1), Range32), $clone(new Range32.ptr(124896, 124902, 1), Range32), $clone(new Range32.ptr(124904, 124907, 1), Range32), $clone(new Range32.ptr(124909, 124910, 1), Range32), $clone(new Range32.ptr(124912, 124926, 1), Range32), $clone(new Range32.ptr(124928, 125124, 1), Range32), $clone(new Range32.ptr(125184, 125251, 1), Range32), $clone(new Range32.ptr(125259, 126464, 1205), Range32), $clone(new Range32.ptr(126465, 126467, 1), Range32), $clone(new Range32.ptr(126469, 126495, 1), Range32), $clone(new Range32.ptr(126497, 126498, 1), Range32), $clone(new Range32.ptr(126500, 126503, 3), Range32), $clone(new Range32.ptr(126505, 126514, 1), Range32), $clone(new Range32.ptr(126516, 126519, 1), Range32), $clone(new Range32.ptr(126521, 126523, 2), Range32), $clone(new Range32.ptr(126530, 126535, 5), Range32), $clone(new Range32.ptr(126537, 126541, 2), Range32), $clone(new Range32.ptr(126542, 126543, 1), Range32), $clone(new Range32.ptr(126545, 126546, 1), Range32), $clone(new Range32.ptr(126548, 126551, 3), Range32), $clone(new Range32.ptr(126553, 126561, 2), Range32), $clone(new Range32.ptr(126562, 126564, 2), Range32), $clone(new Range32.ptr(126567, 126570, 1), Range32), $clone(new Range32.ptr(126572, 126578, 1), Range32), $clone(new Range32.ptr(126580, 126583, 1), Range32), $clone(new Range32.ptr(126585, 126588, 1), Range32), $clone(new Range32.ptr(126590, 126592, 2), Range32), $clone(new Range32.ptr(126593, 126601, 1), Range32), $clone(new Range32.ptr(126603, 126619, 1), Range32), $clone(new Range32.ptr(126625, 126627, 1), Range32), $clone(new Range32.ptr(126629, 126633, 1), Range32), $clone(new Range32.ptr(126635, 126651, 1), Range32), $clone(new Range32.ptr(131072, 173791, 1), Range32), $clone(new Range32.ptr(173824, 177977, 1), Range32), $clone(new Range32.ptr(177984, 178205, 1), Range32), $clone(new Range32.ptr(178208, 183969, 1), Range32), $clone(new Range32.ptr(183984, 191456, 1), Range32), $clone(new Range32.ptr(194560, 195101, 1), Range32), $clone(new Range32.ptr(196608, 201546, 1), Range32), $clone(new Range32.ptr(201552, 205743, 1), Range32)]), 6); + _Ll = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(97, 122, 1), Range16), $clone(new Range16.ptr(181, 223, 42), Range16), $clone(new Range16.ptr(224, 246, 1), Range16), $clone(new Range16.ptr(248, 255, 1), Range16), $clone(new Range16.ptr(257, 311, 2), Range16), $clone(new Range16.ptr(312, 328, 2), Range16), $clone(new Range16.ptr(329, 375, 2), Range16), $clone(new Range16.ptr(378, 382, 2), Range16), $clone(new Range16.ptr(383, 384, 1), Range16), $clone(new Range16.ptr(387, 389, 2), Range16), $clone(new Range16.ptr(392, 396, 4), Range16), $clone(new Range16.ptr(397, 402, 5), Range16), $clone(new Range16.ptr(405, 409, 4), Range16), $clone(new Range16.ptr(410, 411, 1), Range16), $clone(new Range16.ptr(414, 417, 3), Range16), $clone(new Range16.ptr(419, 421, 2), Range16), $clone(new Range16.ptr(424, 426, 2), Range16), $clone(new Range16.ptr(427, 429, 2), Range16), $clone(new Range16.ptr(432, 436, 4), Range16), $clone(new Range16.ptr(438, 441, 3), Range16), $clone(new Range16.ptr(442, 445, 3), Range16), $clone(new Range16.ptr(446, 447, 1), Range16), $clone(new Range16.ptr(454, 460, 3), Range16), $clone(new Range16.ptr(462, 476, 2), Range16), $clone(new Range16.ptr(477, 495, 2), Range16), $clone(new Range16.ptr(496, 499, 3), Range16), $clone(new Range16.ptr(501, 505, 4), Range16), $clone(new Range16.ptr(507, 563, 2), Range16), $clone(new Range16.ptr(564, 569, 1), Range16), $clone(new Range16.ptr(572, 575, 3), Range16), $clone(new Range16.ptr(576, 578, 2), Range16), $clone(new Range16.ptr(583, 591, 2), Range16), $clone(new Range16.ptr(592, 659, 1), Range16), $clone(new Range16.ptr(661, 687, 1), Range16), $clone(new Range16.ptr(881, 883, 2), Range16), $clone(new Range16.ptr(887, 891, 4), Range16), $clone(new Range16.ptr(892, 893, 1), Range16), $clone(new Range16.ptr(912, 940, 28), Range16), $clone(new Range16.ptr(941, 974, 1), Range16), $clone(new Range16.ptr(976, 977, 1), Range16), $clone(new Range16.ptr(981, 983, 1), Range16), $clone(new Range16.ptr(985, 1007, 2), Range16), $clone(new Range16.ptr(1008, 1011, 1), Range16), $clone(new Range16.ptr(1013, 1019, 3), Range16), $clone(new Range16.ptr(1020, 1072, 52), Range16), $clone(new Range16.ptr(1073, 1119, 1), Range16), $clone(new Range16.ptr(1121, 1153, 2), Range16), $clone(new Range16.ptr(1163, 1215, 2), Range16), $clone(new Range16.ptr(1218, 1230, 2), Range16), $clone(new Range16.ptr(1231, 1327, 2), Range16), $clone(new Range16.ptr(1376, 1416, 1), Range16), $clone(new Range16.ptr(4304, 4346, 1), Range16), $clone(new Range16.ptr(4349, 4351, 1), Range16), $clone(new Range16.ptr(5112, 5117, 1), Range16), $clone(new Range16.ptr(7296, 7304, 1), Range16), $clone(new Range16.ptr(7424, 7467, 1), Range16), $clone(new Range16.ptr(7531, 7543, 1), Range16), $clone(new Range16.ptr(7545, 7578, 1), Range16), $clone(new Range16.ptr(7681, 7829, 2), Range16), $clone(new Range16.ptr(7830, 7837, 1), Range16), $clone(new Range16.ptr(7839, 7935, 2), Range16), $clone(new Range16.ptr(7936, 7943, 1), Range16), $clone(new Range16.ptr(7952, 7957, 1), Range16), $clone(new Range16.ptr(7968, 7975, 1), Range16), $clone(new Range16.ptr(7984, 7991, 1), Range16), $clone(new Range16.ptr(8000, 8005, 1), Range16), $clone(new Range16.ptr(8016, 8023, 1), Range16), $clone(new Range16.ptr(8032, 8039, 1), Range16), $clone(new Range16.ptr(8048, 8061, 1), Range16), $clone(new Range16.ptr(8064, 8071, 1), Range16), $clone(new Range16.ptr(8080, 8087, 1), Range16), $clone(new Range16.ptr(8096, 8103, 1), Range16), $clone(new Range16.ptr(8112, 8116, 1), Range16), $clone(new Range16.ptr(8118, 8119, 1), Range16), $clone(new Range16.ptr(8126, 8130, 4), Range16), $clone(new Range16.ptr(8131, 8132, 1), Range16), $clone(new Range16.ptr(8134, 8135, 1), Range16), $clone(new Range16.ptr(8144, 8147, 1), Range16), $clone(new Range16.ptr(8150, 8151, 1), Range16), $clone(new Range16.ptr(8160, 8167, 1), Range16), $clone(new Range16.ptr(8178, 8180, 1), Range16), $clone(new Range16.ptr(8182, 8183, 1), Range16), $clone(new Range16.ptr(8458, 8462, 4), Range16), $clone(new Range16.ptr(8463, 8467, 4), Range16), $clone(new Range16.ptr(8495, 8505, 5), Range16), $clone(new Range16.ptr(8508, 8509, 1), Range16), $clone(new Range16.ptr(8518, 8521, 1), Range16), $clone(new Range16.ptr(8526, 8580, 54), Range16), $clone(new Range16.ptr(11312, 11359, 1), Range16), $clone(new Range16.ptr(11361, 11365, 4), Range16), $clone(new Range16.ptr(11366, 11372, 2), Range16), $clone(new Range16.ptr(11377, 11379, 2), Range16), $clone(new Range16.ptr(11380, 11382, 2), Range16), $clone(new Range16.ptr(11383, 11387, 1), Range16), $clone(new Range16.ptr(11393, 11491, 2), Range16), $clone(new Range16.ptr(11492, 11500, 8), Range16), $clone(new Range16.ptr(11502, 11507, 5), Range16), $clone(new Range16.ptr(11520, 11557, 1), Range16), $clone(new Range16.ptr(11559, 11565, 6), Range16), $clone(new Range16.ptr(42561, 42605, 2), Range16), $clone(new Range16.ptr(42625, 42651, 2), Range16), $clone(new Range16.ptr(42787, 42799, 2), Range16), $clone(new Range16.ptr(42800, 42801, 1), Range16), $clone(new Range16.ptr(42803, 42865, 2), Range16), $clone(new Range16.ptr(42866, 42872, 1), Range16), $clone(new Range16.ptr(42874, 42876, 2), Range16), $clone(new Range16.ptr(42879, 42887, 2), Range16), $clone(new Range16.ptr(42892, 42894, 2), Range16), $clone(new Range16.ptr(42897, 42899, 2), Range16), $clone(new Range16.ptr(42900, 42901, 1), Range16), $clone(new Range16.ptr(42903, 42921, 2), Range16), $clone(new Range16.ptr(42927, 42933, 6), Range16), $clone(new Range16.ptr(42935, 42947, 2), Range16), $clone(new Range16.ptr(42952, 42954, 2), Range16), $clone(new Range16.ptr(42961, 42969, 2), Range16), $clone(new Range16.ptr(42998, 43002, 4), Range16), $clone(new Range16.ptr(43824, 43866, 1), Range16), $clone(new Range16.ptr(43872, 43880, 1), Range16), $clone(new Range16.ptr(43888, 43967, 1), Range16), $clone(new Range16.ptr(64256, 64262, 1), Range16), $clone(new Range16.ptr(64275, 64279, 1), Range16), $clone(new Range16.ptr(65345, 65370, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(66600, 66639, 1), Range32), $clone(new Range32.ptr(66776, 66811, 1), Range32), $clone(new Range32.ptr(66967, 66977, 1), Range32), $clone(new Range32.ptr(66979, 66993, 1), Range32), $clone(new Range32.ptr(66995, 67001, 1), Range32), $clone(new Range32.ptr(67003, 67004, 1), Range32), $clone(new Range32.ptr(68800, 68850, 1), Range32), $clone(new Range32.ptr(71872, 71903, 1), Range32), $clone(new Range32.ptr(93792, 93823, 1), Range32), $clone(new Range32.ptr(119834, 119859, 1), Range32), $clone(new Range32.ptr(119886, 119892, 1), Range32), $clone(new Range32.ptr(119894, 119911, 1), Range32), $clone(new Range32.ptr(119938, 119963, 1), Range32), $clone(new Range32.ptr(119990, 119993, 1), Range32), $clone(new Range32.ptr(119995, 119997, 2), Range32), $clone(new Range32.ptr(119998, 120003, 1), Range32), $clone(new Range32.ptr(120005, 120015, 1), Range32), $clone(new Range32.ptr(120042, 120067, 1), Range32), $clone(new Range32.ptr(120094, 120119, 1), Range32), $clone(new Range32.ptr(120146, 120171, 1), Range32), $clone(new Range32.ptr(120198, 120223, 1), Range32), $clone(new Range32.ptr(120250, 120275, 1), Range32), $clone(new Range32.ptr(120302, 120327, 1), Range32), $clone(new Range32.ptr(120354, 120379, 1), Range32), $clone(new Range32.ptr(120406, 120431, 1), Range32), $clone(new Range32.ptr(120458, 120485, 1), Range32), $clone(new Range32.ptr(120514, 120538, 1), Range32), $clone(new Range32.ptr(120540, 120545, 1), Range32), $clone(new Range32.ptr(120572, 120596, 1), Range32), $clone(new Range32.ptr(120598, 120603, 1), Range32), $clone(new Range32.ptr(120630, 120654, 1), Range32), $clone(new Range32.ptr(120656, 120661, 1), Range32), $clone(new Range32.ptr(120688, 120712, 1), Range32), $clone(new Range32.ptr(120714, 120719, 1), Range32), $clone(new Range32.ptr(120746, 120770, 1), Range32), $clone(new Range32.ptr(120772, 120777, 1), Range32), $clone(new Range32.ptr(120779, 122624, 1845), Range32), $clone(new Range32.ptr(122625, 122633, 1), Range32), $clone(new Range32.ptr(122635, 122654, 1), Range32), $clone(new Range32.ptr(122661, 122666, 1), Range32), $clone(new Range32.ptr(125218, 125251, 1), Range32)]), 4); + _Lm = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(688, 705, 1), Range16), $clone(new Range16.ptr(710, 721, 1), Range16), $clone(new Range16.ptr(736, 740, 1), Range16), $clone(new Range16.ptr(748, 750, 2), Range16), $clone(new Range16.ptr(884, 890, 6), Range16), $clone(new Range16.ptr(1369, 1600, 231), Range16), $clone(new Range16.ptr(1765, 1766, 1), Range16), $clone(new Range16.ptr(2036, 2037, 1), Range16), $clone(new Range16.ptr(2042, 2074, 32), Range16), $clone(new Range16.ptr(2084, 2088, 4), Range16), $clone(new Range16.ptr(2249, 2417, 168), Range16), $clone(new Range16.ptr(3654, 3782, 128), Range16), $clone(new Range16.ptr(4348, 6103, 1755), Range16), $clone(new Range16.ptr(6211, 6823, 612), Range16), $clone(new Range16.ptr(7288, 7293, 1), Range16), $clone(new Range16.ptr(7468, 7530, 1), Range16), $clone(new Range16.ptr(7544, 7579, 35), Range16), $clone(new Range16.ptr(7580, 7615, 1), Range16), $clone(new Range16.ptr(8305, 8319, 14), Range16), $clone(new Range16.ptr(8336, 8348, 1), Range16), $clone(new Range16.ptr(11388, 11389, 1), Range16), $clone(new Range16.ptr(11631, 11823, 192), Range16), $clone(new Range16.ptr(12293, 12337, 44), Range16), $clone(new Range16.ptr(12338, 12341, 1), Range16), $clone(new Range16.ptr(12347, 12445, 98), Range16), $clone(new Range16.ptr(12446, 12540, 94), Range16), $clone(new Range16.ptr(12541, 12542, 1), Range16), $clone(new Range16.ptr(40981, 42232, 1251), Range16), $clone(new Range16.ptr(42233, 42237, 1), Range16), $clone(new Range16.ptr(42508, 42623, 115), Range16), $clone(new Range16.ptr(42652, 42653, 1), Range16), $clone(new Range16.ptr(42775, 42783, 1), Range16), $clone(new Range16.ptr(42864, 42888, 24), Range16), $clone(new Range16.ptr(42994, 42996, 1), Range16), $clone(new Range16.ptr(43000, 43001, 1), Range16), $clone(new Range16.ptr(43471, 43494, 23), Range16), $clone(new Range16.ptr(43632, 43741, 109), Range16), $clone(new Range16.ptr(43763, 43764, 1), Range16), $clone(new Range16.ptr(43868, 43871, 1), Range16), $clone(new Range16.ptr(43881, 65392, 21511), Range16), $clone(new Range16.ptr(65438, 65439, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(67456, 67461, 1), Range32), $clone(new Range32.ptr(67463, 67504, 1), Range32), $clone(new Range32.ptr(67506, 67514, 1), Range32), $clone(new Range32.ptr(92992, 92995, 1), Range32), $clone(new Range32.ptr(94099, 94111, 1), Range32), $clone(new Range32.ptr(94176, 94177, 1), Range32), $clone(new Range32.ptr(94179, 110576, 16397), Range32), $clone(new Range32.ptr(110577, 110579, 1), Range32), $clone(new Range32.ptr(110581, 110587, 1), Range32), $clone(new Range32.ptr(110589, 110590, 1), Range32), $clone(new Range32.ptr(122928, 122989, 1), Range32), $clone(new Range32.ptr(123191, 123197, 1), Range32), $clone(new Range32.ptr(124139, 125259, 1120), Range32)]), 0); + _Lo = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(170, 186, 16), Range16), $clone(new Range16.ptr(443, 448, 5), Range16), $clone(new Range16.ptr(449, 451, 1), Range16), $clone(new Range16.ptr(660, 1488, 828), Range16), $clone(new Range16.ptr(1489, 1514, 1), Range16), $clone(new Range16.ptr(1519, 1522, 1), Range16), $clone(new Range16.ptr(1568, 1599, 1), Range16), $clone(new Range16.ptr(1601, 1610, 1), Range16), $clone(new Range16.ptr(1646, 1647, 1), Range16), $clone(new Range16.ptr(1649, 1747, 1), Range16), $clone(new Range16.ptr(1749, 1774, 25), Range16), $clone(new Range16.ptr(1775, 1786, 11), Range16), $clone(new Range16.ptr(1787, 1788, 1), Range16), $clone(new Range16.ptr(1791, 1808, 17), Range16), $clone(new Range16.ptr(1810, 1839, 1), Range16), $clone(new Range16.ptr(1869, 1957, 1), Range16), $clone(new Range16.ptr(1969, 1994, 25), Range16), $clone(new Range16.ptr(1995, 2026, 1), Range16), $clone(new Range16.ptr(2048, 2069, 1), Range16), $clone(new Range16.ptr(2112, 2136, 1), Range16), $clone(new Range16.ptr(2144, 2154, 1), Range16), $clone(new Range16.ptr(2160, 2183, 1), Range16), $clone(new Range16.ptr(2185, 2190, 1), Range16), $clone(new Range16.ptr(2208, 2248, 1), Range16), $clone(new Range16.ptr(2308, 2361, 1), Range16), $clone(new Range16.ptr(2365, 2384, 19), Range16), $clone(new Range16.ptr(2392, 2401, 1), Range16), $clone(new Range16.ptr(2418, 2432, 1), Range16), $clone(new Range16.ptr(2437, 2444, 1), Range16), $clone(new Range16.ptr(2447, 2448, 1), Range16), $clone(new Range16.ptr(2451, 2472, 1), Range16), $clone(new Range16.ptr(2474, 2480, 1), Range16), $clone(new Range16.ptr(2482, 2486, 4), Range16), $clone(new Range16.ptr(2487, 2489, 1), Range16), $clone(new Range16.ptr(2493, 2510, 17), Range16), $clone(new Range16.ptr(2524, 2525, 1), Range16), $clone(new Range16.ptr(2527, 2529, 1), Range16), $clone(new Range16.ptr(2544, 2545, 1), Range16), $clone(new Range16.ptr(2556, 2565, 9), Range16), $clone(new Range16.ptr(2566, 2570, 1), Range16), $clone(new Range16.ptr(2575, 2576, 1), Range16), $clone(new Range16.ptr(2579, 2600, 1), Range16), $clone(new Range16.ptr(2602, 2608, 1), Range16), $clone(new Range16.ptr(2610, 2611, 1), Range16), $clone(new Range16.ptr(2613, 2614, 1), Range16), $clone(new Range16.ptr(2616, 2617, 1), Range16), $clone(new Range16.ptr(2649, 2652, 1), Range16), $clone(new Range16.ptr(2654, 2674, 20), Range16), $clone(new Range16.ptr(2675, 2676, 1), Range16), $clone(new Range16.ptr(2693, 2701, 1), Range16), $clone(new Range16.ptr(2703, 2705, 1), Range16), $clone(new Range16.ptr(2707, 2728, 1), Range16), $clone(new Range16.ptr(2730, 2736, 1), Range16), $clone(new Range16.ptr(2738, 2739, 1), Range16), $clone(new Range16.ptr(2741, 2745, 1), Range16), $clone(new Range16.ptr(2749, 2768, 19), Range16), $clone(new Range16.ptr(2784, 2785, 1), Range16), $clone(new Range16.ptr(2809, 2821, 12), Range16), $clone(new Range16.ptr(2822, 2828, 1), Range16), $clone(new Range16.ptr(2831, 2832, 1), Range16), $clone(new Range16.ptr(2835, 2856, 1), Range16), $clone(new Range16.ptr(2858, 2864, 1), Range16), $clone(new Range16.ptr(2866, 2867, 1), Range16), $clone(new Range16.ptr(2869, 2873, 1), Range16), $clone(new Range16.ptr(2877, 2908, 31), Range16), $clone(new Range16.ptr(2909, 2911, 2), Range16), $clone(new Range16.ptr(2912, 2913, 1), Range16), $clone(new Range16.ptr(2929, 2947, 18), Range16), $clone(new Range16.ptr(2949, 2954, 1), Range16), $clone(new Range16.ptr(2958, 2960, 1), Range16), $clone(new Range16.ptr(2962, 2965, 1), Range16), $clone(new Range16.ptr(2969, 2970, 1), Range16), $clone(new Range16.ptr(2972, 2974, 2), Range16), $clone(new Range16.ptr(2975, 2979, 4), Range16), $clone(new Range16.ptr(2980, 2984, 4), Range16), $clone(new Range16.ptr(2985, 2986, 1), Range16), $clone(new Range16.ptr(2990, 3001, 1), Range16), $clone(new Range16.ptr(3024, 3077, 53), Range16), $clone(new Range16.ptr(3078, 3084, 1), Range16), $clone(new Range16.ptr(3086, 3088, 1), Range16), $clone(new Range16.ptr(3090, 3112, 1), Range16), $clone(new Range16.ptr(3114, 3129, 1), Range16), $clone(new Range16.ptr(3133, 3160, 27), Range16), $clone(new Range16.ptr(3161, 3162, 1), Range16), $clone(new Range16.ptr(3165, 3168, 3), Range16), $clone(new Range16.ptr(3169, 3200, 31), Range16), $clone(new Range16.ptr(3205, 3212, 1), Range16), $clone(new Range16.ptr(3214, 3216, 1), Range16), $clone(new Range16.ptr(3218, 3240, 1), Range16), $clone(new Range16.ptr(3242, 3251, 1), Range16), $clone(new Range16.ptr(3253, 3257, 1), Range16), $clone(new Range16.ptr(3261, 3293, 32), Range16), $clone(new Range16.ptr(3294, 3296, 2), Range16), $clone(new Range16.ptr(3297, 3313, 16), Range16), $clone(new Range16.ptr(3314, 3332, 18), Range16), $clone(new Range16.ptr(3333, 3340, 1), Range16), $clone(new Range16.ptr(3342, 3344, 1), Range16), $clone(new Range16.ptr(3346, 3386, 1), Range16), $clone(new Range16.ptr(3389, 3406, 17), Range16), $clone(new Range16.ptr(3412, 3414, 1), Range16), $clone(new Range16.ptr(3423, 3425, 1), Range16), $clone(new Range16.ptr(3450, 3455, 1), Range16), $clone(new Range16.ptr(3461, 3478, 1), Range16), $clone(new Range16.ptr(3482, 3505, 1), Range16), $clone(new Range16.ptr(3507, 3515, 1), Range16), $clone(new Range16.ptr(3517, 3520, 3), Range16), $clone(new Range16.ptr(3521, 3526, 1), Range16), $clone(new Range16.ptr(3585, 3632, 1), Range16), $clone(new Range16.ptr(3634, 3635, 1), Range16), $clone(new Range16.ptr(3648, 3653, 1), Range16), $clone(new Range16.ptr(3713, 3714, 1), Range16), $clone(new Range16.ptr(3716, 3718, 2), Range16), $clone(new Range16.ptr(3719, 3722, 1), Range16), $clone(new Range16.ptr(3724, 3747, 1), Range16), $clone(new Range16.ptr(3749, 3751, 2), Range16), $clone(new Range16.ptr(3752, 3760, 1), Range16), $clone(new Range16.ptr(3762, 3763, 1), Range16), $clone(new Range16.ptr(3773, 3776, 3), Range16), $clone(new Range16.ptr(3777, 3780, 1), Range16), $clone(new Range16.ptr(3804, 3807, 1), Range16), $clone(new Range16.ptr(3840, 3904, 64), Range16), $clone(new Range16.ptr(3905, 3911, 1), Range16), $clone(new Range16.ptr(3913, 3948, 1), Range16), $clone(new Range16.ptr(3976, 3980, 1), Range16), $clone(new Range16.ptr(4096, 4138, 1), Range16), $clone(new Range16.ptr(4159, 4176, 17), Range16), $clone(new Range16.ptr(4177, 4181, 1), Range16), $clone(new Range16.ptr(4186, 4189, 1), Range16), $clone(new Range16.ptr(4193, 4197, 4), Range16), $clone(new Range16.ptr(4198, 4206, 8), Range16), $clone(new Range16.ptr(4207, 4208, 1), Range16), $clone(new Range16.ptr(4213, 4225, 1), Range16), $clone(new Range16.ptr(4238, 4352, 114), Range16), $clone(new Range16.ptr(4353, 4680, 1), Range16), $clone(new Range16.ptr(4682, 4685, 1), Range16), $clone(new Range16.ptr(4688, 4694, 1), Range16), $clone(new Range16.ptr(4696, 4698, 2), Range16), $clone(new Range16.ptr(4699, 4701, 1), Range16), $clone(new Range16.ptr(4704, 4744, 1), Range16), $clone(new Range16.ptr(4746, 4749, 1), Range16), $clone(new Range16.ptr(4752, 4784, 1), Range16), $clone(new Range16.ptr(4786, 4789, 1), Range16), $clone(new Range16.ptr(4792, 4798, 1), Range16), $clone(new Range16.ptr(4800, 4802, 2), Range16), $clone(new Range16.ptr(4803, 4805, 1), Range16), $clone(new Range16.ptr(4808, 4822, 1), Range16), $clone(new Range16.ptr(4824, 4880, 1), Range16), $clone(new Range16.ptr(4882, 4885, 1), Range16), $clone(new Range16.ptr(4888, 4954, 1), Range16), $clone(new Range16.ptr(4992, 5007, 1), Range16), $clone(new Range16.ptr(5121, 5740, 1), Range16), $clone(new Range16.ptr(5743, 5759, 1), Range16), $clone(new Range16.ptr(5761, 5786, 1), Range16), $clone(new Range16.ptr(5792, 5866, 1), Range16), $clone(new Range16.ptr(5873, 5880, 1), Range16), $clone(new Range16.ptr(5888, 5905, 1), Range16), $clone(new Range16.ptr(5919, 5937, 1), Range16), $clone(new Range16.ptr(5952, 5969, 1), Range16), $clone(new Range16.ptr(5984, 5996, 1), Range16), $clone(new Range16.ptr(5998, 6000, 1), Range16), $clone(new Range16.ptr(6016, 6067, 1), Range16), $clone(new Range16.ptr(6108, 6176, 68), Range16), $clone(new Range16.ptr(6177, 6210, 1), Range16), $clone(new Range16.ptr(6212, 6264, 1), Range16), $clone(new Range16.ptr(6272, 6276, 1), Range16), $clone(new Range16.ptr(6279, 6312, 1), Range16), $clone(new Range16.ptr(6314, 6320, 6), Range16), $clone(new Range16.ptr(6321, 6389, 1), Range16), $clone(new Range16.ptr(6400, 6430, 1), Range16), $clone(new Range16.ptr(6480, 6509, 1), Range16), $clone(new Range16.ptr(6512, 6516, 1), Range16), $clone(new Range16.ptr(6528, 6571, 1), Range16), $clone(new Range16.ptr(6576, 6601, 1), Range16), $clone(new Range16.ptr(6656, 6678, 1), Range16), $clone(new Range16.ptr(6688, 6740, 1), Range16), $clone(new Range16.ptr(6917, 6963, 1), Range16), $clone(new Range16.ptr(6981, 6988, 1), Range16), $clone(new Range16.ptr(7043, 7072, 1), Range16), $clone(new Range16.ptr(7086, 7087, 1), Range16), $clone(new Range16.ptr(7098, 7141, 1), Range16), $clone(new Range16.ptr(7168, 7203, 1), Range16), $clone(new Range16.ptr(7245, 7247, 1), Range16), $clone(new Range16.ptr(7258, 7287, 1), Range16), $clone(new Range16.ptr(7401, 7404, 1), Range16), $clone(new Range16.ptr(7406, 7411, 1), Range16), $clone(new Range16.ptr(7413, 7414, 1), Range16), $clone(new Range16.ptr(7418, 8501, 1083), Range16), $clone(new Range16.ptr(8502, 8504, 1), Range16), $clone(new Range16.ptr(11568, 11623, 1), Range16), $clone(new Range16.ptr(11648, 11670, 1), Range16), $clone(new Range16.ptr(11680, 11686, 1), Range16), $clone(new Range16.ptr(11688, 11694, 1), Range16), $clone(new Range16.ptr(11696, 11702, 1), Range16), $clone(new Range16.ptr(11704, 11710, 1), Range16), $clone(new Range16.ptr(11712, 11718, 1), Range16), $clone(new Range16.ptr(11720, 11726, 1), Range16), $clone(new Range16.ptr(11728, 11734, 1), Range16), $clone(new Range16.ptr(11736, 11742, 1), Range16), $clone(new Range16.ptr(12294, 12348, 54), Range16), $clone(new Range16.ptr(12353, 12438, 1), Range16), $clone(new Range16.ptr(12447, 12449, 2), Range16), $clone(new Range16.ptr(12450, 12538, 1), Range16), $clone(new Range16.ptr(12543, 12549, 6), Range16), $clone(new Range16.ptr(12550, 12591, 1), Range16), $clone(new Range16.ptr(12593, 12686, 1), Range16), $clone(new Range16.ptr(12704, 12735, 1), Range16), $clone(new Range16.ptr(12784, 12799, 1), Range16), $clone(new Range16.ptr(13312, 19903, 1), Range16), $clone(new Range16.ptr(19968, 40980, 1), Range16), $clone(new Range16.ptr(40982, 42124, 1), Range16), $clone(new Range16.ptr(42192, 42231, 1), Range16), $clone(new Range16.ptr(42240, 42507, 1), Range16), $clone(new Range16.ptr(42512, 42527, 1), Range16), $clone(new Range16.ptr(42538, 42539, 1), Range16), $clone(new Range16.ptr(42606, 42656, 50), Range16), $clone(new Range16.ptr(42657, 42725, 1), Range16), $clone(new Range16.ptr(42895, 42999, 104), Range16), $clone(new Range16.ptr(43003, 43009, 1), Range16), $clone(new Range16.ptr(43011, 43013, 1), Range16), $clone(new Range16.ptr(43015, 43018, 1), Range16), $clone(new Range16.ptr(43020, 43042, 1), Range16), $clone(new Range16.ptr(43072, 43123, 1), Range16), $clone(new Range16.ptr(43138, 43187, 1), Range16), $clone(new Range16.ptr(43250, 43255, 1), Range16), $clone(new Range16.ptr(43259, 43261, 2), Range16), $clone(new Range16.ptr(43262, 43274, 12), Range16), $clone(new Range16.ptr(43275, 43301, 1), Range16), $clone(new Range16.ptr(43312, 43334, 1), Range16), $clone(new Range16.ptr(43360, 43388, 1), Range16), $clone(new Range16.ptr(43396, 43442, 1), Range16), $clone(new Range16.ptr(43488, 43492, 1), Range16), $clone(new Range16.ptr(43495, 43503, 1), Range16), $clone(new Range16.ptr(43514, 43518, 1), Range16), $clone(new Range16.ptr(43520, 43560, 1), Range16), $clone(new Range16.ptr(43584, 43586, 1), Range16), $clone(new Range16.ptr(43588, 43595, 1), Range16), $clone(new Range16.ptr(43616, 43631, 1), Range16), $clone(new Range16.ptr(43633, 43638, 1), Range16), $clone(new Range16.ptr(43642, 43646, 4), Range16), $clone(new Range16.ptr(43647, 43695, 1), Range16), $clone(new Range16.ptr(43697, 43701, 4), Range16), $clone(new Range16.ptr(43702, 43705, 3), Range16), $clone(new Range16.ptr(43706, 43709, 1), Range16), $clone(new Range16.ptr(43712, 43714, 2), Range16), $clone(new Range16.ptr(43739, 43740, 1), Range16), $clone(new Range16.ptr(43744, 43754, 1), Range16), $clone(new Range16.ptr(43762, 43777, 15), Range16), $clone(new Range16.ptr(43778, 43782, 1), Range16), $clone(new Range16.ptr(43785, 43790, 1), Range16), $clone(new Range16.ptr(43793, 43798, 1), Range16), $clone(new Range16.ptr(43808, 43814, 1), Range16), $clone(new Range16.ptr(43816, 43822, 1), Range16), $clone(new Range16.ptr(43968, 44002, 1), Range16), $clone(new Range16.ptr(44032, 55203, 1), Range16), $clone(new Range16.ptr(55216, 55238, 1), Range16), $clone(new Range16.ptr(55243, 55291, 1), Range16), $clone(new Range16.ptr(63744, 64109, 1), Range16), $clone(new Range16.ptr(64112, 64217, 1), Range16), $clone(new Range16.ptr(64285, 64287, 2), Range16), $clone(new Range16.ptr(64288, 64296, 1), Range16), $clone(new Range16.ptr(64298, 64310, 1), Range16), $clone(new Range16.ptr(64312, 64316, 1), Range16), $clone(new Range16.ptr(64318, 64320, 2), Range16), $clone(new Range16.ptr(64321, 64323, 2), Range16), $clone(new Range16.ptr(64324, 64326, 2), Range16), $clone(new Range16.ptr(64327, 64433, 1), Range16), $clone(new Range16.ptr(64467, 64829, 1), Range16), $clone(new Range16.ptr(64848, 64911, 1), Range16), $clone(new Range16.ptr(64914, 64967, 1), Range16), $clone(new Range16.ptr(65008, 65019, 1), Range16), $clone(new Range16.ptr(65136, 65140, 1), Range16), $clone(new Range16.ptr(65142, 65276, 1), Range16), $clone(new Range16.ptr(65382, 65391, 1), Range16), $clone(new Range16.ptr(65393, 65437, 1), Range16), $clone(new Range16.ptr(65440, 65470, 1), Range16), $clone(new Range16.ptr(65474, 65479, 1), Range16), $clone(new Range16.ptr(65482, 65487, 1), Range16), $clone(new Range16.ptr(65490, 65495, 1), Range16), $clone(new Range16.ptr(65498, 65500, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65536, 65547, 1), Range32), $clone(new Range32.ptr(65549, 65574, 1), Range32), $clone(new Range32.ptr(65576, 65594, 1), Range32), $clone(new Range32.ptr(65596, 65597, 1), Range32), $clone(new Range32.ptr(65599, 65613, 1), Range32), $clone(new Range32.ptr(65616, 65629, 1), Range32), $clone(new Range32.ptr(65664, 65786, 1), Range32), $clone(new Range32.ptr(66176, 66204, 1), Range32), $clone(new Range32.ptr(66208, 66256, 1), Range32), $clone(new Range32.ptr(66304, 66335, 1), Range32), $clone(new Range32.ptr(66349, 66368, 1), Range32), $clone(new Range32.ptr(66370, 66377, 1), Range32), $clone(new Range32.ptr(66384, 66421, 1), Range32), $clone(new Range32.ptr(66432, 66461, 1), Range32), $clone(new Range32.ptr(66464, 66499, 1), Range32), $clone(new Range32.ptr(66504, 66511, 1), Range32), $clone(new Range32.ptr(66640, 66717, 1), Range32), $clone(new Range32.ptr(66816, 66855, 1), Range32), $clone(new Range32.ptr(66864, 66915, 1), Range32), $clone(new Range32.ptr(67072, 67382, 1), Range32), $clone(new Range32.ptr(67392, 67413, 1), Range32), $clone(new Range32.ptr(67424, 67431, 1), Range32), $clone(new Range32.ptr(67584, 67589, 1), Range32), $clone(new Range32.ptr(67592, 67594, 2), Range32), $clone(new Range32.ptr(67595, 67637, 1), Range32), $clone(new Range32.ptr(67639, 67640, 1), Range32), $clone(new Range32.ptr(67644, 67647, 3), Range32), $clone(new Range32.ptr(67648, 67669, 1), Range32), $clone(new Range32.ptr(67680, 67702, 1), Range32), $clone(new Range32.ptr(67712, 67742, 1), Range32), $clone(new Range32.ptr(67808, 67826, 1), Range32), $clone(new Range32.ptr(67828, 67829, 1), Range32), $clone(new Range32.ptr(67840, 67861, 1), Range32), $clone(new Range32.ptr(67872, 67897, 1), Range32), $clone(new Range32.ptr(67968, 68023, 1), Range32), $clone(new Range32.ptr(68030, 68031, 1), Range32), $clone(new Range32.ptr(68096, 68112, 16), Range32), $clone(new Range32.ptr(68113, 68115, 1), Range32), $clone(new Range32.ptr(68117, 68119, 1), Range32), $clone(new Range32.ptr(68121, 68149, 1), Range32), $clone(new Range32.ptr(68192, 68220, 1), Range32), $clone(new Range32.ptr(68224, 68252, 1), Range32), $clone(new Range32.ptr(68288, 68295, 1), Range32), $clone(new Range32.ptr(68297, 68324, 1), Range32), $clone(new Range32.ptr(68352, 68405, 1), Range32), $clone(new Range32.ptr(68416, 68437, 1), Range32), $clone(new Range32.ptr(68448, 68466, 1), Range32), $clone(new Range32.ptr(68480, 68497, 1), Range32), $clone(new Range32.ptr(68608, 68680, 1), Range32), $clone(new Range32.ptr(68864, 68899, 1), Range32), $clone(new Range32.ptr(69248, 69289, 1), Range32), $clone(new Range32.ptr(69296, 69297, 1), Range32), $clone(new Range32.ptr(69376, 69404, 1), Range32), $clone(new Range32.ptr(69415, 69424, 9), Range32), $clone(new Range32.ptr(69425, 69445, 1), Range32), $clone(new Range32.ptr(69488, 69505, 1), Range32), $clone(new Range32.ptr(69552, 69572, 1), Range32), $clone(new Range32.ptr(69600, 69622, 1), Range32), $clone(new Range32.ptr(69635, 69687, 1), Range32), $clone(new Range32.ptr(69745, 69746, 1), Range32), $clone(new Range32.ptr(69749, 69763, 14), Range32), $clone(new Range32.ptr(69764, 69807, 1), Range32), $clone(new Range32.ptr(69840, 69864, 1), Range32), $clone(new Range32.ptr(69891, 69926, 1), Range32), $clone(new Range32.ptr(69956, 69959, 3), Range32), $clone(new Range32.ptr(69968, 70002, 1), Range32), $clone(new Range32.ptr(70006, 70019, 13), Range32), $clone(new Range32.ptr(70020, 70066, 1), Range32), $clone(new Range32.ptr(70081, 70084, 1), Range32), $clone(new Range32.ptr(70106, 70108, 2), Range32), $clone(new Range32.ptr(70144, 70161, 1), Range32), $clone(new Range32.ptr(70163, 70187, 1), Range32), $clone(new Range32.ptr(70207, 70208, 1), Range32), $clone(new Range32.ptr(70272, 70278, 1), Range32), $clone(new Range32.ptr(70280, 70282, 2), Range32), $clone(new Range32.ptr(70283, 70285, 1), Range32), $clone(new Range32.ptr(70287, 70301, 1), Range32), $clone(new Range32.ptr(70303, 70312, 1), Range32), $clone(new Range32.ptr(70320, 70366, 1), Range32), $clone(new Range32.ptr(70405, 70412, 1), Range32), $clone(new Range32.ptr(70415, 70416, 1), Range32), $clone(new Range32.ptr(70419, 70440, 1), Range32), $clone(new Range32.ptr(70442, 70448, 1), Range32), $clone(new Range32.ptr(70450, 70451, 1), Range32), $clone(new Range32.ptr(70453, 70457, 1), Range32), $clone(new Range32.ptr(70461, 70480, 19), Range32), $clone(new Range32.ptr(70493, 70497, 1), Range32), $clone(new Range32.ptr(70656, 70708, 1), Range32), $clone(new Range32.ptr(70727, 70730, 1), Range32), $clone(new Range32.ptr(70751, 70753, 1), Range32), $clone(new Range32.ptr(70784, 70831, 1), Range32), $clone(new Range32.ptr(70852, 70853, 1), Range32), $clone(new Range32.ptr(70855, 71040, 185), Range32), $clone(new Range32.ptr(71041, 71086, 1), Range32), $clone(new Range32.ptr(71128, 71131, 1), Range32), $clone(new Range32.ptr(71168, 71215, 1), Range32), $clone(new Range32.ptr(71236, 71296, 60), Range32), $clone(new Range32.ptr(71297, 71338, 1), Range32), $clone(new Range32.ptr(71352, 71424, 72), Range32), $clone(new Range32.ptr(71425, 71450, 1), Range32), $clone(new Range32.ptr(71488, 71494, 1), Range32), $clone(new Range32.ptr(71680, 71723, 1), Range32), $clone(new Range32.ptr(71935, 71942, 1), Range32), $clone(new Range32.ptr(71945, 71948, 3), Range32), $clone(new Range32.ptr(71949, 71955, 1), Range32), $clone(new Range32.ptr(71957, 71958, 1), Range32), $clone(new Range32.ptr(71960, 71983, 1), Range32), $clone(new Range32.ptr(71999, 72001, 2), Range32), $clone(new Range32.ptr(72096, 72103, 1), Range32), $clone(new Range32.ptr(72106, 72144, 1), Range32), $clone(new Range32.ptr(72161, 72163, 2), Range32), $clone(new Range32.ptr(72192, 72203, 11), Range32), $clone(new Range32.ptr(72204, 72242, 1), Range32), $clone(new Range32.ptr(72250, 72272, 22), Range32), $clone(new Range32.ptr(72284, 72329, 1), Range32), $clone(new Range32.ptr(72349, 72368, 19), Range32), $clone(new Range32.ptr(72369, 72440, 1), Range32), $clone(new Range32.ptr(72704, 72712, 1), Range32), $clone(new Range32.ptr(72714, 72750, 1), Range32), $clone(new Range32.ptr(72768, 72818, 50), Range32), $clone(new Range32.ptr(72819, 72847, 1), Range32), $clone(new Range32.ptr(72960, 72966, 1), Range32), $clone(new Range32.ptr(72968, 72969, 1), Range32), $clone(new Range32.ptr(72971, 73008, 1), Range32), $clone(new Range32.ptr(73030, 73056, 26), Range32), $clone(new Range32.ptr(73057, 73061, 1), Range32), $clone(new Range32.ptr(73063, 73064, 1), Range32), $clone(new Range32.ptr(73066, 73097, 1), Range32), $clone(new Range32.ptr(73112, 73440, 328), Range32), $clone(new Range32.ptr(73441, 73458, 1), Range32), $clone(new Range32.ptr(73474, 73476, 2), Range32), $clone(new Range32.ptr(73477, 73488, 1), Range32), $clone(new Range32.ptr(73490, 73523, 1), Range32), $clone(new Range32.ptr(73648, 73728, 80), Range32), $clone(new Range32.ptr(73729, 74649, 1), Range32), $clone(new Range32.ptr(74880, 75075, 1), Range32), $clone(new Range32.ptr(77712, 77808, 1), Range32), $clone(new Range32.ptr(77824, 78895, 1), Range32), $clone(new Range32.ptr(78913, 78918, 1), Range32), $clone(new Range32.ptr(82944, 83526, 1), Range32), $clone(new Range32.ptr(92160, 92728, 1), Range32), $clone(new Range32.ptr(92736, 92766, 1), Range32), $clone(new Range32.ptr(92784, 92862, 1), Range32), $clone(new Range32.ptr(92880, 92909, 1), Range32), $clone(new Range32.ptr(92928, 92975, 1), Range32), $clone(new Range32.ptr(93027, 93047, 1), Range32), $clone(new Range32.ptr(93053, 93071, 1), Range32), $clone(new Range32.ptr(93952, 94026, 1), Range32), $clone(new Range32.ptr(94032, 94208, 176), Range32), $clone(new Range32.ptr(94209, 100343, 1), Range32), $clone(new Range32.ptr(100352, 101589, 1), Range32), $clone(new Range32.ptr(101632, 101640, 1), Range32), $clone(new Range32.ptr(110592, 110882, 1), Range32), $clone(new Range32.ptr(110898, 110928, 30), Range32), $clone(new Range32.ptr(110929, 110930, 1), Range32), $clone(new Range32.ptr(110933, 110948, 15), Range32), $clone(new Range32.ptr(110949, 110951, 1), Range32), $clone(new Range32.ptr(110960, 111355, 1), Range32), $clone(new Range32.ptr(113664, 113770, 1), Range32), $clone(new Range32.ptr(113776, 113788, 1), Range32), $clone(new Range32.ptr(113792, 113800, 1), Range32), $clone(new Range32.ptr(113808, 113817, 1), Range32), $clone(new Range32.ptr(122634, 123136, 502), Range32), $clone(new Range32.ptr(123137, 123180, 1), Range32), $clone(new Range32.ptr(123214, 123536, 322), Range32), $clone(new Range32.ptr(123537, 123565, 1), Range32), $clone(new Range32.ptr(123584, 123627, 1), Range32), $clone(new Range32.ptr(124112, 124138, 1), Range32), $clone(new Range32.ptr(124896, 124902, 1), Range32), $clone(new Range32.ptr(124904, 124907, 1), Range32), $clone(new Range32.ptr(124909, 124910, 1), Range32), $clone(new Range32.ptr(124912, 124926, 1), Range32), $clone(new Range32.ptr(124928, 125124, 1), Range32), $clone(new Range32.ptr(126464, 126467, 1), Range32), $clone(new Range32.ptr(126469, 126495, 1), Range32), $clone(new Range32.ptr(126497, 126498, 1), Range32), $clone(new Range32.ptr(126500, 126503, 3), Range32), $clone(new Range32.ptr(126505, 126514, 1), Range32), $clone(new Range32.ptr(126516, 126519, 1), Range32), $clone(new Range32.ptr(126521, 126523, 2), Range32), $clone(new Range32.ptr(126530, 126535, 5), Range32), $clone(new Range32.ptr(126537, 126541, 2), Range32), $clone(new Range32.ptr(126542, 126543, 1), Range32), $clone(new Range32.ptr(126545, 126546, 1), Range32), $clone(new Range32.ptr(126548, 126551, 3), Range32), $clone(new Range32.ptr(126553, 126561, 2), Range32), $clone(new Range32.ptr(126562, 126564, 2), Range32), $clone(new Range32.ptr(126567, 126570, 1), Range32), $clone(new Range32.ptr(126572, 126578, 1), Range32), $clone(new Range32.ptr(126580, 126583, 1), Range32), $clone(new Range32.ptr(126585, 126588, 1), Range32), $clone(new Range32.ptr(126590, 126592, 2), Range32), $clone(new Range32.ptr(126593, 126601, 1), Range32), $clone(new Range32.ptr(126603, 126619, 1), Range32), $clone(new Range32.ptr(126625, 126627, 1), Range32), $clone(new Range32.ptr(126629, 126633, 1), Range32), $clone(new Range32.ptr(126635, 126651, 1), Range32), $clone(new Range32.ptr(131072, 173791, 1), Range32), $clone(new Range32.ptr(173824, 177977, 1), Range32), $clone(new Range32.ptr(177984, 178205, 1), Range32), $clone(new Range32.ptr(178208, 183969, 1), Range32), $clone(new Range32.ptr(183984, 191456, 1), Range32), $clone(new Range32.ptr(194560, 195101, 1), Range32), $clone(new Range32.ptr(196608, 201546, 1), Range32), $clone(new Range32.ptr(201552, 205743, 1), Range32)]), 1); _Lt = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(453, 459, 3), Range16), $clone(new Range16.ptr(498, 8072, 7574), Range16), $clone(new Range16.ptr(8073, 8079, 1), Range16), $clone(new Range16.ptr(8088, 8095, 1), Range16), $clone(new Range16.ptr(8104, 8111, 1), Range16), $clone(new Range16.ptr(8124, 8140, 16), Range16), $clone(new Range16.ptr(8188, 8188, 1), Range16)]), sliceType$1.nil, 0); - _Lu = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(65, 90, 1), Range16), $clone(new Range16.ptr(192, 214, 1), Range16), $clone(new Range16.ptr(216, 222, 1), Range16), $clone(new Range16.ptr(256, 310, 2), Range16), $clone(new Range16.ptr(313, 327, 2), Range16), $clone(new Range16.ptr(330, 376, 2), Range16), $clone(new Range16.ptr(377, 381, 2), Range16), $clone(new Range16.ptr(385, 386, 1), Range16), $clone(new Range16.ptr(388, 390, 2), Range16), $clone(new Range16.ptr(391, 393, 2), Range16), $clone(new Range16.ptr(394, 395, 1), Range16), $clone(new Range16.ptr(398, 401, 1), Range16), $clone(new Range16.ptr(403, 404, 1), Range16), $clone(new Range16.ptr(406, 408, 1), Range16), $clone(new Range16.ptr(412, 413, 1), Range16), $clone(new Range16.ptr(415, 416, 1), Range16), $clone(new Range16.ptr(418, 422, 2), Range16), $clone(new Range16.ptr(423, 425, 2), Range16), $clone(new Range16.ptr(428, 430, 2), Range16), $clone(new Range16.ptr(431, 433, 2), Range16), $clone(new Range16.ptr(434, 435, 1), Range16), $clone(new Range16.ptr(437, 439, 2), Range16), $clone(new Range16.ptr(440, 444, 4), Range16), $clone(new Range16.ptr(452, 461, 3), Range16), $clone(new Range16.ptr(463, 475, 2), Range16), $clone(new Range16.ptr(478, 494, 2), Range16), $clone(new Range16.ptr(497, 500, 3), Range16), $clone(new Range16.ptr(502, 504, 1), Range16), $clone(new Range16.ptr(506, 562, 2), Range16), $clone(new Range16.ptr(570, 571, 1), Range16), $clone(new Range16.ptr(573, 574, 1), Range16), $clone(new Range16.ptr(577, 579, 2), Range16), $clone(new Range16.ptr(580, 582, 1), Range16), $clone(new Range16.ptr(584, 590, 2), Range16), $clone(new Range16.ptr(880, 882, 2), Range16), $clone(new Range16.ptr(886, 895, 9), Range16), $clone(new Range16.ptr(902, 904, 2), Range16), $clone(new Range16.ptr(905, 906, 1), Range16), $clone(new Range16.ptr(908, 910, 2), Range16), $clone(new Range16.ptr(911, 913, 2), Range16), $clone(new Range16.ptr(914, 929, 1), Range16), $clone(new Range16.ptr(931, 939, 1), Range16), $clone(new Range16.ptr(975, 978, 3), Range16), $clone(new Range16.ptr(979, 980, 1), Range16), $clone(new Range16.ptr(984, 1006, 2), Range16), $clone(new Range16.ptr(1012, 1015, 3), Range16), $clone(new Range16.ptr(1017, 1018, 1), Range16), $clone(new Range16.ptr(1021, 1071, 1), Range16), $clone(new Range16.ptr(1120, 1152, 2), Range16), $clone(new Range16.ptr(1162, 1216, 2), Range16), $clone(new Range16.ptr(1217, 1229, 2), Range16), $clone(new Range16.ptr(1232, 1326, 2), Range16), $clone(new Range16.ptr(1329, 1366, 1), Range16), $clone(new Range16.ptr(4256, 4293, 1), Range16), $clone(new Range16.ptr(4295, 4301, 6), Range16), $clone(new Range16.ptr(5024, 5109, 1), Range16), $clone(new Range16.ptr(7312, 7354, 1), Range16), $clone(new Range16.ptr(7357, 7359, 1), Range16), $clone(new Range16.ptr(7680, 7828, 2), Range16), $clone(new Range16.ptr(7838, 7934, 2), Range16), $clone(new Range16.ptr(7944, 7951, 1), Range16), $clone(new Range16.ptr(7960, 7965, 1), Range16), $clone(new Range16.ptr(7976, 7983, 1), Range16), $clone(new Range16.ptr(7992, 7999, 1), Range16), $clone(new Range16.ptr(8008, 8013, 1), Range16), $clone(new Range16.ptr(8025, 8031, 2), Range16), $clone(new Range16.ptr(8040, 8047, 1), Range16), $clone(new Range16.ptr(8120, 8123, 1), Range16), $clone(new Range16.ptr(8136, 8139, 1), Range16), $clone(new Range16.ptr(8152, 8155, 1), Range16), $clone(new Range16.ptr(8168, 8172, 1), Range16), $clone(new Range16.ptr(8184, 8187, 1), Range16), $clone(new Range16.ptr(8450, 8455, 5), Range16), $clone(new Range16.ptr(8459, 8461, 1), Range16), $clone(new Range16.ptr(8464, 8466, 1), Range16), $clone(new Range16.ptr(8469, 8473, 4), Range16), $clone(new Range16.ptr(8474, 8477, 1), Range16), $clone(new Range16.ptr(8484, 8490, 2), Range16), $clone(new Range16.ptr(8491, 8493, 1), Range16), $clone(new Range16.ptr(8496, 8499, 1), Range16), $clone(new Range16.ptr(8510, 8511, 1), Range16), $clone(new Range16.ptr(8517, 8579, 62), Range16), $clone(new Range16.ptr(11264, 11310, 1), Range16), $clone(new Range16.ptr(11360, 11362, 2), Range16), $clone(new Range16.ptr(11363, 11364, 1), Range16), $clone(new Range16.ptr(11367, 11373, 2), Range16), $clone(new Range16.ptr(11374, 11376, 1), Range16), $clone(new Range16.ptr(11378, 11381, 3), Range16), $clone(new Range16.ptr(11390, 11392, 1), Range16), $clone(new Range16.ptr(11394, 11490, 2), Range16), $clone(new Range16.ptr(11499, 11501, 2), Range16), $clone(new Range16.ptr(11506, 42560, 31054), Range16), $clone(new Range16.ptr(42562, 42604, 2), Range16), $clone(new Range16.ptr(42624, 42650, 2), Range16), $clone(new Range16.ptr(42786, 42798, 2), Range16), $clone(new Range16.ptr(42802, 42862, 2), Range16), $clone(new Range16.ptr(42873, 42877, 2), Range16), $clone(new Range16.ptr(42878, 42886, 2), Range16), $clone(new Range16.ptr(42891, 42893, 2), Range16), $clone(new Range16.ptr(42896, 42898, 2), Range16), $clone(new Range16.ptr(42902, 42922, 2), Range16), $clone(new Range16.ptr(42923, 42926, 1), Range16), $clone(new Range16.ptr(42928, 42932, 1), Range16), $clone(new Range16.ptr(42934, 42942, 2), Range16), $clone(new Range16.ptr(42946, 42948, 2), Range16), $clone(new Range16.ptr(42949, 42951, 1), Range16), $clone(new Range16.ptr(42953, 42997, 44), Range16), $clone(new Range16.ptr(65313, 65338, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(66560, 66599, 1), Range32), $clone(new Range32.ptr(66736, 66771, 1), Range32), $clone(new Range32.ptr(68736, 68786, 1), Range32), $clone(new Range32.ptr(71840, 71871, 1), Range32), $clone(new Range32.ptr(93760, 93791, 1), Range32), $clone(new Range32.ptr(119808, 119833, 1), Range32), $clone(new Range32.ptr(119860, 119885, 1), Range32), $clone(new Range32.ptr(119912, 119937, 1), Range32), $clone(new Range32.ptr(119964, 119966, 2), Range32), $clone(new Range32.ptr(119967, 119973, 3), Range32), $clone(new Range32.ptr(119974, 119977, 3), Range32), $clone(new Range32.ptr(119978, 119980, 1), Range32), $clone(new Range32.ptr(119982, 119989, 1), Range32), $clone(new Range32.ptr(120016, 120041, 1), Range32), $clone(new Range32.ptr(120068, 120069, 1), Range32), $clone(new Range32.ptr(120071, 120074, 1), Range32), $clone(new Range32.ptr(120077, 120084, 1), Range32), $clone(new Range32.ptr(120086, 120092, 1), Range32), $clone(new Range32.ptr(120120, 120121, 1), Range32), $clone(new Range32.ptr(120123, 120126, 1), Range32), $clone(new Range32.ptr(120128, 120132, 1), Range32), $clone(new Range32.ptr(120134, 120138, 4), Range32), $clone(new Range32.ptr(120139, 120144, 1), Range32), $clone(new Range32.ptr(120172, 120197, 1), Range32), $clone(new Range32.ptr(120224, 120249, 1), Range32), $clone(new Range32.ptr(120276, 120301, 1), Range32), $clone(new Range32.ptr(120328, 120353, 1), Range32), $clone(new Range32.ptr(120380, 120405, 1), Range32), $clone(new Range32.ptr(120432, 120457, 1), Range32), $clone(new Range32.ptr(120488, 120512, 1), Range32), $clone(new Range32.ptr(120546, 120570, 1), Range32), $clone(new Range32.ptr(120604, 120628, 1), Range32), $clone(new Range32.ptr(120662, 120686, 1), Range32), $clone(new Range32.ptr(120720, 120744, 1), Range32), $clone(new Range32.ptr(120778, 125184, 4406), Range32), $clone(new Range32.ptr(125185, 125217, 1), Range32)]), 3); - _M = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(768, 879, 1), Range16), $clone(new Range16.ptr(1155, 1161, 1), Range16), $clone(new Range16.ptr(1425, 1469, 1), Range16), $clone(new Range16.ptr(1471, 1473, 2), Range16), $clone(new Range16.ptr(1474, 1476, 2), Range16), $clone(new Range16.ptr(1477, 1479, 2), Range16), $clone(new Range16.ptr(1552, 1562, 1), Range16), $clone(new Range16.ptr(1611, 1631, 1), Range16), $clone(new Range16.ptr(1648, 1750, 102), Range16), $clone(new Range16.ptr(1751, 1756, 1), Range16), $clone(new Range16.ptr(1759, 1764, 1), Range16), $clone(new Range16.ptr(1767, 1768, 1), Range16), $clone(new Range16.ptr(1770, 1773, 1), Range16), $clone(new Range16.ptr(1809, 1840, 31), Range16), $clone(new Range16.ptr(1841, 1866, 1), Range16), $clone(new Range16.ptr(1958, 1968, 1), Range16), $clone(new Range16.ptr(2027, 2035, 1), Range16), $clone(new Range16.ptr(2045, 2070, 25), Range16), $clone(new Range16.ptr(2071, 2073, 1), Range16), $clone(new Range16.ptr(2075, 2083, 1), Range16), $clone(new Range16.ptr(2085, 2087, 1), Range16), $clone(new Range16.ptr(2089, 2093, 1), Range16), $clone(new Range16.ptr(2137, 2139, 1), Range16), $clone(new Range16.ptr(2259, 2273, 1), Range16), $clone(new Range16.ptr(2275, 2307, 1), Range16), $clone(new Range16.ptr(2362, 2364, 1), Range16), $clone(new Range16.ptr(2366, 2383, 1), Range16), $clone(new Range16.ptr(2385, 2391, 1), Range16), $clone(new Range16.ptr(2402, 2403, 1), Range16), $clone(new Range16.ptr(2433, 2435, 1), Range16), $clone(new Range16.ptr(2492, 2494, 2), Range16), $clone(new Range16.ptr(2495, 2500, 1), Range16), $clone(new Range16.ptr(2503, 2504, 1), Range16), $clone(new Range16.ptr(2507, 2509, 1), Range16), $clone(new Range16.ptr(2519, 2530, 11), Range16), $clone(new Range16.ptr(2531, 2558, 27), Range16), $clone(new Range16.ptr(2561, 2563, 1), Range16), $clone(new Range16.ptr(2620, 2622, 2), Range16), $clone(new Range16.ptr(2623, 2626, 1), Range16), $clone(new Range16.ptr(2631, 2632, 1), Range16), $clone(new Range16.ptr(2635, 2637, 1), Range16), $clone(new Range16.ptr(2641, 2672, 31), Range16), $clone(new Range16.ptr(2673, 2677, 4), Range16), $clone(new Range16.ptr(2689, 2691, 1), Range16), $clone(new Range16.ptr(2748, 2750, 2), Range16), $clone(new Range16.ptr(2751, 2757, 1), Range16), $clone(new Range16.ptr(2759, 2761, 1), Range16), $clone(new Range16.ptr(2763, 2765, 1), Range16), $clone(new Range16.ptr(2786, 2787, 1), Range16), $clone(new Range16.ptr(2810, 2815, 1), Range16), $clone(new Range16.ptr(2817, 2819, 1), Range16), $clone(new Range16.ptr(2876, 2878, 2), Range16), $clone(new Range16.ptr(2879, 2884, 1), Range16), $clone(new Range16.ptr(2887, 2888, 1), Range16), $clone(new Range16.ptr(2891, 2893, 1), Range16), $clone(new Range16.ptr(2901, 2903, 1), Range16), $clone(new Range16.ptr(2914, 2915, 1), Range16), $clone(new Range16.ptr(2946, 3006, 60), Range16), $clone(new Range16.ptr(3007, 3010, 1), Range16), $clone(new Range16.ptr(3014, 3016, 1), Range16), $clone(new Range16.ptr(3018, 3021, 1), Range16), $clone(new Range16.ptr(3031, 3072, 41), Range16), $clone(new Range16.ptr(3073, 3076, 1), Range16), $clone(new Range16.ptr(3134, 3140, 1), Range16), $clone(new Range16.ptr(3142, 3144, 1), Range16), $clone(new Range16.ptr(3146, 3149, 1), Range16), $clone(new Range16.ptr(3157, 3158, 1), Range16), $clone(new Range16.ptr(3170, 3171, 1), Range16), $clone(new Range16.ptr(3201, 3203, 1), Range16), $clone(new Range16.ptr(3260, 3262, 2), Range16), $clone(new Range16.ptr(3263, 3268, 1), Range16), $clone(new Range16.ptr(3270, 3272, 1), Range16), $clone(new Range16.ptr(3274, 3277, 1), Range16), $clone(new Range16.ptr(3285, 3286, 1), Range16), $clone(new Range16.ptr(3298, 3299, 1), Range16), $clone(new Range16.ptr(3328, 3331, 1), Range16), $clone(new Range16.ptr(3387, 3388, 1), Range16), $clone(new Range16.ptr(3390, 3396, 1), Range16), $clone(new Range16.ptr(3398, 3400, 1), Range16), $clone(new Range16.ptr(3402, 3405, 1), Range16), $clone(new Range16.ptr(3415, 3426, 11), Range16), $clone(new Range16.ptr(3427, 3457, 30), Range16), $clone(new Range16.ptr(3458, 3459, 1), Range16), $clone(new Range16.ptr(3530, 3535, 5), Range16), $clone(new Range16.ptr(3536, 3540, 1), Range16), $clone(new Range16.ptr(3542, 3544, 2), Range16), $clone(new Range16.ptr(3545, 3551, 1), Range16), $clone(new Range16.ptr(3570, 3571, 1), Range16), $clone(new Range16.ptr(3633, 3636, 3), Range16), $clone(new Range16.ptr(3637, 3642, 1), Range16), $clone(new Range16.ptr(3655, 3662, 1), Range16), $clone(new Range16.ptr(3761, 3764, 3), Range16), $clone(new Range16.ptr(3765, 3772, 1), Range16), $clone(new Range16.ptr(3784, 3789, 1), Range16), $clone(new Range16.ptr(3864, 3865, 1), Range16), $clone(new Range16.ptr(3893, 3897, 2), Range16), $clone(new Range16.ptr(3902, 3903, 1), Range16), $clone(new Range16.ptr(3953, 3972, 1), Range16), $clone(new Range16.ptr(3974, 3975, 1), Range16), $clone(new Range16.ptr(3981, 3991, 1), Range16), $clone(new Range16.ptr(3993, 4028, 1), Range16), $clone(new Range16.ptr(4038, 4139, 101), Range16), $clone(new Range16.ptr(4140, 4158, 1), Range16), $clone(new Range16.ptr(4182, 4185, 1), Range16), $clone(new Range16.ptr(4190, 4192, 1), Range16), $clone(new Range16.ptr(4194, 4196, 1), Range16), $clone(new Range16.ptr(4199, 4205, 1), Range16), $clone(new Range16.ptr(4209, 4212, 1), Range16), $clone(new Range16.ptr(4226, 4237, 1), Range16), $clone(new Range16.ptr(4239, 4250, 11), Range16), $clone(new Range16.ptr(4251, 4253, 1), Range16), $clone(new Range16.ptr(4957, 4959, 1), Range16), $clone(new Range16.ptr(5906, 5908, 1), Range16), $clone(new Range16.ptr(5938, 5940, 1), Range16), $clone(new Range16.ptr(5970, 5971, 1), Range16), $clone(new Range16.ptr(6002, 6003, 1), Range16), $clone(new Range16.ptr(6068, 6099, 1), Range16), $clone(new Range16.ptr(6109, 6155, 46), Range16), $clone(new Range16.ptr(6156, 6157, 1), Range16), $clone(new Range16.ptr(6277, 6278, 1), Range16), $clone(new Range16.ptr(6313, 6432, 119), Range16), $clone(new Range16.ptr(6433, 6443, 1), Range16), $clone(new Range16.ptr(6448, 6459, 1), Range16), $clone(new Range16.ptr(6679, 6683, 1), Range16), $clone(new Range16.ptr(6741, 6750, 1), Range16), $clone(new Range16.ptr(6752, 6780, 1), Range16), $clone(new Range16.ptr(6783, 6832, 49), Range16), $clone(new Range16.ptr(6833, 6848, 1), Range16), $clone(new Range16.ptr(6912, 6916, 1), Range16), $clone(new Range16.ptr(6964, 6980, 1), Range16), $clone(new Range16.ptr(7019, 7027, 1), Range16), $clone(new Range16.ptr(7040, 7042, 1), Range16), $clone(new Range16.ptr(7073, 7085, 1), Range16), $clone(new Range16.ptr(7142, 7155, 1), Range16), $clone(new Range16.ptr(7204, 7223, 1), Range16), $clone(new Range16.ptr(7376, 7378, 1), Range16), $clone(new Range16.ptr(7380, 7400, 1), Range16), $clone(new Range16.ptr(7405, 7412, 7), Range16), $clone(new Range16.ptr(7415, 7417, 1), Range16), $clone(new Range16.ptr(7616, 7673, 1), Range16), $clone(new Range16.ptr(7675, 7679, 1), Range16), $clone(new Range16.ptr(8400, 8432, 1), Range16), $clone(new Range16.ptr(11503, 11505, 1), Range16), $clone(new Range16.ptr(11647, 11744, 97), Range16), $clone(new Range16.ptr(11745, 11775, 1), Range16), $clone(new Range16.ptr(12330, 12335, 1), Range16), $clone(new Range16.ptr(12441, 12442, 1), Range16), $clone(new Range16.ptr(42607, 42610, 1), Range16), $clone(new Range16.ptr(42612, 42621, 1), Range16), $clone(new Range16.ptr(42654, 42655, 1), Range16), $clone(new Range16.ptr(42736, 42737, 1), Range16), $clone(new Range16.ptr(43010, 43014, 4), Range16), $clone(new Range16.ptr(43019, 43043, 24), Range16), $clone(new Range16.ptr(43044, 43047, 1), Range16), $clone(new Range16.ptr(43052, 43136, 84), Range16), $clone(new Range16.ptr(43137, 43188, 51), Range16), $clone(new Range16.ptr(43189, 43205, 1), Range16), $clone(new Range16.ptr(43232, 43249, 1), Range16), $clone(new Range16.ptr(43263, 43302, 39), Range16), $clone(new Range16.ptr(43303, 43309, 1), Range16), $clone(new Range16.ptr(43335, 43347, 1), Range16), $clone(new Range16.ptr(43392, 43395, 1), Range16), $clone(new Range16.ptr(43443, 43456, 1), Range16), $clone(new Range16.ptr(43493, 43561, 68), Range16), $clone(new Range16.ptr(43562, 43574, 1), Range16), $clone(new Range16.ptr(43587, 43596, 9), Range16), $clone(new Range16.ptr(43597, 43643, 46), Range16), $clone(new Range16.ptr(43644, 43645, 1), Range16), $clone(new Range16.ptr(43696, 43698, 2), Range16), $clone(new Range16.ptr(43699, 43700, 1), Range16), $clone(new Range16.ptr(43703, 43704, 1), Range16), $clone(new Range16.ptr(43710, 43711, 1), Range16), $clone(new Range16.ptr(43713, 43755, 42), Range16), $clone(new Range16.ptr(43756, 43759, 1), Range16), $clone(new Range16.ptr(43765, 43766, 1), Range16), $clone(new Range16.ptr(44003, 44010, 1), Range16), $clone(new Range16.ptr(44012, 44013, 1), Range16), $clone(new Range16.ptr(64286, 65024, 738), Range16), $clone(new Range16.ptr(65025, 65039, 1), Range16), $clone(new Range16.ptr(65056, 65071, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(66045, 66272, 227), Range32), $clone(new Range32.ptr(66422, 66426, 1), Range32), $clone(new Range32.ptr(68097, 68099, 1), Range32), $clone(new Range32.ptr(68101, 68102, 1), Range32), $clone(new Range32.ptr(68108, 68111, 1), Range32), $clone(new Range32.ptr(68152, 68154, 1), Range32), $clone(new Range32.ptr(68159, 68325, 166), Range32), $clone(new Range32.ptr(68326, 68900, 574), Range32), $clone(new Range32.ptr(68901, 68903, 1), Range32), $clone(new Range32.ptr(69291, 69292, 1), Range32), $clone(new Range32.ptr(69446, 69456, 1), Range32), $clone(new Range32.ptr(69632, 69634, 1), Range32), $clone(new Range32.ptr(69688, 69702, 1), Range32), $clone(new Range32.ptr(69759, 69762, 1), Range32), $clone(new Range32.ptr(69808, 69818, 1), Range32), $clone(new Range32.ptr(69888, 69890, 1), Range32), $clone(new Range32.ptr(69927, 69940, 1), Range32), $clone(new Range32.ptr(69957, 69958, 1), Range32), $clone(new Range32.ptr(70003, 70016, 13), Range32), $clone(new Range32.ptr(70017, 70018, 1), Range32), $clone(new Range32.ptr(70067, 70080, 1), Range32), $clone(new Range32.ptr(70089, 70092, 1), Range32), $clone(new Range32.ptr(70094, 70095, 1), Range32), $clone(new Range32.ptr(70188, 70199, 1), Range32), $clone(new Range32.ptr(70206, 70367, 161), Range32), $clone(new Range32.ptr(70368, 70378, 1), Range32), $clone(new Range32.ptr(70400, 70403, 1), Range32), $clone(new Range32.ptr(70459, 70460, 1), Range32), $clone(new Range32.ptr(70462, 70468, 1), Range32), $clone(new Range32.ptr(70471, 70472, 1), Range32), $clone(new Range32.ptr(70475, 70477, 1), Range32), $clone(new Range32.ptr(70487, 70498, 11), Range32), $clone(new Range32.ptr(70499, 70502, 3), Range32), $clone(new Range32.ptr(70503, 70508, 1), Range32), $clone(new Range32.ptr(70512, 70516, 1), Range32), $clone(new Range32.ptr(70709, 70726, 1), Range32), $clone(new Range32.ptr(70750, 70832, 82), Range32), $clone(new Range32.ptr(70833, 70851, 1), Range32), $clone(new Range32.ptr(71087, 71093, 1), Range32), $clone(new Range32.ptr(71096, 71104, 1), Range32), $clone(new Range32.ptr(71132, 71133, 1), Range32), $clone(new Range32.ptr(71216, 71232, 1), Range32), $clone(new Range32.ptr(71339, 71351, 1), Range32), $clone(new Range32.ptr(71453, 71467, 1), Range32), $clone(new Range32.ptr(71724, 71738, 1), Range32), $clone(new Range32.ptr(71984, 71989, 1), Range32), $clone(new Range32.ptr(71991, 71992, 1), Range32), $clone(new Range32.ptr(71995, 71998, 1), Range32), $clone(new Range32.ptr(72000, 72002, 2), Range32), $clone(new Range32.ptr(72003, 72145, 142), Range32), $clone(new Range32.ptr(72146, 72151, 1), Range32), $clone(new Range32.ptr(72154, 72160, 1), Range32), $clone(new Range32.ptr(72164, 72193, 29), Range32), $clone(new Range32.ptr(72194, 72202, 1), Range32), $clone(new Range32.ptr(72243, 72249, 1), Range32), $clone(new Range32.ptr(72251, 72254, 1), Range32), $clone(new Range32.ptr(72263, 72273, 10), Range32), $clone(new Range32.ptr(72274, 72283, 1), Range32), $clone(new Range32.ptr(72330, 72345, 1), Range32), $clone(new Range32.ptr(72751, 72758, 1), Range32), $clone(new Range32.ptr(72760, 72767, 1), Range32), $clone(new Range32.ptr(72850, 72871, 1), Range32), $clone(new Range32.ptr(72873, 72886, 1), Range32), $clone(new Range32.ptr(73009, 73014, 1), Range32), $clone(new Range32.ptr(73018, 73020, 2), Range32), $clone(new Range32.ptr(73021, 73023, 2), Range32), $clone(new Range32.ptr(73024, 73029, 1), Range32), $clone(new Range32.ptr(73031, 73098, 67), Range32), $clone(new Range32.ptr(73099, 73102, 1), Range32), $clone(new Range32.ptr(73104, 73105, 1), Range32), $clone(new Range32.ptr(73107, 73111, 1), Range32), $clone(new Range32.ptr(73459, 73462, 1), Range32), $clone(new Range32.ptr(92912, 92916, 1), Range32), $clone(new Range32.ptr(92976, 92982, 1), Range32), $clone(new Range32.ptr(94031, 94033, 2), Range32), $clone(new Range32.ptr(94034, 94087, 1), Range32), $clone(new Range32.ptr(94095, 94098, 1), Range32), $clone(new Range32.ptr(94180, 94192, 12), Range32), $clone(new Range32.ptr(94193, 113821, 19628), Range32), $clone(new Range32.ptr(113822, 119141, 5319), Range32), $clone(new Range32.ptr(119142, 119145, 1), Range32), $clone(new Range32.ptr(119149, 119154, 1), Range32), $clone(new Range32.ptr(119163, 119170, 1), Range32), $clone(new Range32.ptr(119173, 119179, 1), Range32), $clone(new Range32.ptr(119210, 119213, 1), Range32), $clone(new Range32.ptr(119362, 119364, 1), Range32), $clone(new Range32.ptr(121344, 121398, 1), Range32), $clone(new Range32.ptr(121403, 121452, 1), Range32), $clone(new Range32.ptr(121461, 121476, 15), Range32), $clone(new Range32.ptr(121499, 121503, 1), Range32), $clone(new Range32.ptr(121505, 121519, 1), Range32), $clone(new Range32.ptr(122880, 122886, 1), Range32), $clone(new Range32.ptr(122888, 122904, 1), Range32), $clone(new Range32.ptr(122907, 122913, 1), Range32), $clone(new Range32.ptr(122915, 122916, 1), Range32), $clone(new Range32.ptr(122918, 122922, 1), Range32), $clone(new Range32.ptr(123184, 123190, 1), Range32), $clone(new Range32.ptr(123628, 123631, 1), Range32), $clone(new Range32.ptr(125136, 125142, 1), Range32), $clone(new Range32.ptr(125252, 125258, 1), Range32), $clone(new Range32.ptr(917760, 917999, 1), Range32)]), 0); - _Mc = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(2307, 2363, 56), Range16), $clone(new Range16.ptr(2366, 2368, 1), Range16), $clone(new Range16.ptr(2377, 2380, 1), Range16), $clone(new Range16.ptr(2382, 2383, 1), Range16), $clone(new Range16.ptr(2434, 2435, 1), Range16), $clone(new Range16.ptr(2494, 2496, 1), Range16), $clone(new Range16.ptr(2503, 2504, 1), Range16), $clone(new Range16.ptr(2507, 2508, 1), Range16), $clone(new Range16.ptr(2519, 2563, 44), Range16), $clone(new Range16.ptr(2622, 2624, 1), Range16), $clone(new Range16.ptr(2691, 2750, 59), Range16), $clone(new Range16.ptr(2751, 2752, 1), Range16), $clone(new Range16.ptr(2761, 2763, 2), Range16), $clone(new Range16.ptr(2764, 2818, 54), Range16), $clone(new Range16.ptr(2819, 2878, 59), Range16), $clone(new Range16.ptr(2880, 2887, 7), Range16), $clone(new Range16.ptr(2888, 2891, 3), Range16), $clone(new Range16.ptr(2892, 2903, 11), Range16), $clone(new Range16.ptr(3006, 3007, 1), Range16), $clone(new Range16.ptr(3009, 3010, 1), Range16), $clone(new Range16.ptr(3014, 3016, 1), Range16), $clone(new Range16.ptr(3018, 3020, 1), Range16), $clone(new Range16.ptr(3031, 3073, 42), Range16), $clone(new Range16.ptr(3074, 3075, 1), Range16), $clone(new Range16.ptr(3137, 3140, 1), Range16), $clone(new Range16.ptr(3202, 3203, 1), Range16), $clone(new Range16.ptr(3262, 3264, 2), Range16), $clone(new Range16.ptr(3265, 3268, 1), Range16), $clone(new Range16.ptr(3271, 3272, 1), Range16), $clone(new Range16.ptr(3274, 3275, 1), Range16), $clone(new Range16.ptr(3285, 3286, 1), Range16), $clone(new Range16.ptr(3330, 3331, 1), Range16), $clone(new Range16.ptr(3390, 3392, 1), Range16), $clone(new Range16.ptr(3398, 3400, 1), Range16), $clone(new Range16.ptr(3402, 3404, 1), Range16), $clone(new Range16.ptr(3415, 3458, 43), Range16), $clone(new Range16.ptr(3459, 3535, 76), Range16), $clone(new Range16.ptr(3536, 3537, 1), Range16), $clone(new Range16.ptr(3544, 3551, 1), Range16), $clone(new Range16.ptr(3570, 3571, 1), Range16), $clone(new Range16.ptr(3902, 3903, 1), Range16), $clone(new Range16.ptr(3967, 4139, 172), Range16), $clone(new Range16.ptr(4140, 4145, 5), Range16), $clone(new Range16.ptr(4152, 4155, 3), Range16), $clone(new Range16.ptr(4156, 4182, 26), Range16), $clone(new Range16.ptr(4183, 4194, 11), Range16), $clone(new Range16.ptr(4195, 4196, 1), Range16), $clone(new Range16.ptr(4199, 4205, 1), Range16), $clone(new Range16.ptr(4227, 4228, 1), Range16), $clone(new Range16.ptr(4231, 4236, 1), Range16), $clone(new Range16.ptr(4239, 4250, 11), Range16), $clone(new Range16.ptr(4251, 4252, 1), Range16), $clone(new Range16.ptr(6070, 6078, 8), Range16), $clone(new Range16.ptr(6079, 6085, 1), Range16), $clone(new Range16.ptr(6087, 6088, 1), Range16), $clone(new Range16.ptr(6435, 6438, 1), Range16), $clone(new Range16.ptr(6441, 6443, 1), Range16), $clone(new Range16.ptr(6448, 6449, 1), Range16), $clone(new Range16.ptr(6451, 6456, 1), Range16), $clone(new Range16.ptr(6681, 6682, 1), Range16), $clone(new Range16.ptr(6741, 6743, 2), Range16), $clone(new Range16.ptr(6753, 6755, 2), Range16), $clone(new Range16.ptr(6756, 6765, 9), Range16), $clone(new Range16.ptr(6766, 6770, 1), Range16), $clone(new Range16.ptr(6916, 6965, 49), Range16), $clone(new Range16.ptr(6971, 6973, 2), Range16), $clone(new Range16.ptr(6974, 6977, 1), Range16), $clone(new Range16.ptr(6979, 6980, 1), Range16), $clone(new Range16.ptr(7042, 7073, 31), Range16), $clone(new Range16.ptr(7078, 7079, 1), Range16), $clone(new Range16.ptr(7082, 7143, 61), Range16), $clone(new Range16.ptr(7146, 7148, 1), Range16), $clone(new Range16.ptr(7150, 7154, 4), Range16), $clone(new Range16.ptr(7155, 7204, 49), Range16), $clone(new Range16.ptr(7205, 7211, 1), Range16), $clone(new Range16.ptr(7220, 7221, 1), Range16), $clone(new Range16.ptr(7393, 7415, 22), Range16), $clone(new Range16.ptr(12334, 12335, 1), Range16), $clone(new Range16.ptr(43043, 43044, 1), Range16), $clone(new Range16.ptr(43047, 43136, 89), Range16), $clone(new Range16.ptr(43137, 43188, 51), Range16), $clone(new Range16.ptr(43189, 43203, 1), Range16), $clone(new Range16.ptr(43346, 43347, 1), Range16), $clone(new Range16.ptr(43395, 43444, 49), Range16), $clone(new Range16.ptr(43445, 43450, 5), Range16), $clone(new Range16.ptr(43451, 43454, 3), Range16), $clone(new Range16.ptr(43455, 43456, 1), Range16), $clone(new Range16.ptr(43567, 43568, 1), Range16), $clone(new Range16.ptr(43571, 43572, 1), Range16), $clone(new Range16.ptr(43597, 43643, 46), Range16), $clone(new Range16.ptr(43645, 43755, 110), Range16), $clone(new Range16.ptr(43758, 43759, 1), Range16), $clone(new Range16.ptr(43765, 44003, 238), Range16), $clone(new Range16.ptr(44004, 44006, 2), Range16), $clone(new Range16.ptr(44007, 44009, 2), Range16), $clone(new Range16.ptr(44010, 44012, 2), Range16)]), new sliceType$1([$clone(new Range32.ptr(69632, 69634, 2), Range32), $clone(new Range32.ptr(69762, 69808, 46), Range32), $clone(new Range32.ptr(69809, 69810, 1), Range32), $clone(new Range32.ptr(69815, 69816, 1), Range32), $clone(new Range32.ptr(69932, 69957, 25), Range32), $clone(new Range32.ptr(69958, 70018, 60), Range32), $clone(new Range32.ptr(70067, 70069, 1), Range32), $clone(new Range32.ptr(70079, 70080, 1), Range32), $clone(new Range32.ptr(70094, 70188, 94), Range32), $clone(new Range32.ptr(70189, 70190, 1), Range32), $clone(new Range32.ptr(70194, 70195, 1), Range32), $clone(new Range32.ptr(70197, 70368, 171), Range32), $clone(new Range32.ptr(70369, 70370, 1), Range32), $clone(new Range32.ptr(70402, 70403, 1), Range32), $clone(new Range32.ptr(70462, 70463, 1), Range32), $clone(new Range32.ptr(70465, 70468, 1), Range32), $clone(new Range32.ptr(70471, 70472, 1), Range32), $clone(new Range32.ptr(70475, 70477, 1), Range32), $clone(new Range32.ptr(70487, 70498, 11), Range32), $clone(new Range32.ptr(70499, 70709, 210), Range32), $clone(new Range32.ptr(70710, 70711, 1), Range32), $clone(new Range32.ptr(70720, 70721, 1), Range32), $clone(new Range32.ptr(70725, 70832, 107), Range32), $clone(new Range32.ptr(70833, 70834, 1), Range32), $clone(new Range32.ptr(70841, 70843, 2), Range32), $clone(new Range32.ptr(70844, 70846, 1), Range32), $clone(new Range32.ptr(70849, 71087, 238), Range32), $clone(new Range32.ptr(71088, 71089, 1), Range32), $clone(new Range32.ptr(71096, 71099, 1), Range32), $clone(new Range32.ptr(71102, 71216, 114), Range32), $clone(new Range32.ptr(71217, 71218, 1), Range32), $clone(new Range32.ptr(71227, 71228, 1), Range32), $clone(new Range32.ptr(71230, 71340, 110), Range32), $clone(new Range32.ptr(71342, 71343, 1), Range32), $clone(new Range32.ptr(71350, 71456, 106), Range32), $clone(new Range32.ptr(71457, 71462, 5), Range32), $clone(new Range32.ptr(71724, 71726, 1), Range32), $clone(new Range32.ptr(71736, 71984, 248), Range32), $clone(new Range32.ptr(71985, 71989, 1), Range32), $clone(new Range32.ptr(71991, 71992, 1), Range32), $clone(new Range32.ptr(71997, 72000, 3), Range32), $clone(new Range32.ptr(72002, 72145, 143), Range32), $clone(new Range32.ptr(72146, 72147, 1), Range32), $clone(new Range32.ptr(72156, 72159, 1), Range32), $clone(new Range32.ptr(72164, 72249, 85), Range32), $clone(new Range32.ptr(72279, 72280, 1), Range32), $clone(new Range32.ptr(72343, 72751, 408), Range32), $clone(new Range32.ptr(72766, 72873, 107), Range32), $clone(new Range32.ptr(72881, 72884, 3), Range32), $clone(new Range32.ptr(73098, 73102, 1), Range32), $clone(new Range32.ptr(73107, 73108, 1), Range32), $clone(new Range32.ptr(73110, 73461, 351), Range32), $clone(new Range32.ptr(73462, 94033, 20571), Range32), $clone(new Range32.ptr(94034, 94087, 1), Range32), $clone(new Range32.ptr(94192, 94193, 1), Range32), $clone(new Range32.ptr(119141, 119142, 1), Range32), $clone(new Range32.ptr(119149, 119154, 1), Range32)]), 0); + _Lu = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(65, 90, 1), Range16), $clone(new Range16.ptr(192, 214, 1), Range16), $clone(new Range16.ptr(216, 222, 1), Range16), $clone(new Range16.ptr(256, 310, 2), Range16), $clone(new Range16.ptr(313, 327, 2), Range16), $clone(new Range16.ptr(330, 376, 2), Range16), $clone(new Range16.ptr(377, 381, 2), Range16), $clone(new Range16.ptr(385, 386, 1), Range16), $clone(new Range16.ptr(388, 390, 2), Range16), $clone(new Range16.ptr(391, 393, 2), Range16), $clone(new Range16.ptr(394, 395, 1), Range16), $clone(new Range16.ptr(398, 401, 1), Range16), $clone(new Range16.ptr(403, 404, 1), Range16), $clone(new Range16.ptr(406, 408, 1), Range16), $clone(new Range16.ptr(412, 413, 1), Range16), $clone(new Range16.ptr(415, 416, 1), Range16), $clone(new Range16.ptr(418, 422, 2), Range16), $clone(new Range16.ptr(423, 425, 2), Range16), $clone(new Range16.ptr(428, 430, 2), Range16), $clone(new Range16.ptr(431, 433, 2), Range16), $clone(new Range16.ptr(434, 435, 1), Range16), $clone(new Range16.ptr(437, 439, 2), Range16), $clone(new Range16.ptr(440, 444, 4), Range16), $clone(new Range16.ptr(452, 461, 3), Range16), $clone(new Range16.ptr(463, 475, 2), Range16), $clone(new Range16.ptr(478, 494, 2), Range16), $clone(new Range16.ptr(497, 500, 3), Range16), $clone(new Range16.ptr(502, 504, 1), Range16), $clone(new Range16.ptr(506, 562, 2), Range16), $clone(new Range16.ptr(570, 571, 1), Range16), $clone(new Range16.ptr(573, 574, 1), Range16), $clone(new Range16.ptr(577, 579, 2), Range16), $clone(new Range16.ptr(580, 582, 1), Range16), $clone(new Range16.ptr(584, 590, 2), Range16), $clone(new Range16.ptr(880, 882, 2), Range16), $clone(new Range16.ptr(886, 895, 9), Range16), $clone(new Range16.ptr(902, 904, 2), Range16), $clone(new Range16.ptr(905, 906, 1), Range16), $clone(new Range16.ptr(908, 910, 2), Range16), $clone(new Range16.ptr(911, 913, 2), Range16), $clone(new Range16.ptr(914, 929, 1), Range16), $clone(new Range16.ptr(931, 939, 1), Range16), $clone(new Range16.ptr(975, 978, 3), Range16), $clone(new Range16.ptr(979, 980, 1), Range16), $clone(new Range16.ptr(984, 1006, 2), Range16), $clone(new Range16.ptr(1012, 1015, 3), Range16), $clone(new Range16.ptr(1017, 1018, 1), Range16), $clone(new Range16.ptr(1021, 1071, 1), Range16), $clone(new Range16.ptr(1120, 1152, 2), Range16), $clone(new Range16.ptr(1162, 1216, 2), Range16), $clone(new Range16.ptr(1217, 1229, 2), Range16), $clone(new Range16.ptr(1232, 1326, 2), Range16), $clone(new Range16.ptr(1329, 1366, 1), Range16), $clone(new Range16.ptr(4256, 4293, 1), Range16), $clone(new Range16.ptr(4295, 4301, 6), Range16), $clone(new Range16.ptr(5024, 5109, 1), Range16), $clone(new Range16.ptr(7312, 7354, 1), Range16), $clone(new Range16.ptr(7357, 7359, 1), Range16), $clone(new Range16.ptr(7680, 7828, 2), Range16), $clone(new Range16.ptr(7838, 7934, 2), Range16), $clone(new Range16.ptr(7944, 7951, 1), Range16), $clone(new Range16.ptr(7960, 7965, 1), Range16), $clone(new Range16.ptr(7976, 7983, 1), Range16), $clone(new Range16.ptr(7992, 7999, 1), Range16), $clone(new Range16.ptr(8008, 8013, 1), Range16), $clone(new Range16.ptr(8025, 8031, 2), Range16), $clone(new Range16.ptr(8040, 8047, 1), Range16), $clone(new Range16.ptr(8120, 8123, 1), Range16), $clone(new Range16.ptr(8136, 8139, 1), Range16), $clone(new Range16.ptr(8152, 8155, 1), Range16), $clone(new Range16.ptr(8168, 8172, 1), Range16), $clone(new Range16.ptr(8184, 8187, 1), Range16), $clone(new Range16.ptr(8450, 8455, 5), Range16), $clone(new Range16.ptr(8459, 8461, 1), Range16), $clone(new Range16.ptr(8464, 8466, 1), Range16), $clone(new Range16.ptr(8469, 8473, 4), Range16), $clone(new Range16.ptr(8474, 8477, 1), Range16), $clone(new Range16.ptr(8484, 8490, 2), Range16), $clone(new Range16.ptr(8491, 8493, 1), Range16), $clone(new Range16.ptr(8496, 8499, 1), Range16), $clone(new Range16.ptr(8510, 8511, 1), Range16), $clone(new Range16.ptr(8517, 8579, 62), Range16), $clone(new Range16.ptr(11264, 11311, 1), Range16), $clone(new Range16.ptr(11360, 11362, 2), Range16), $clone(new Range16.ptr(11363, 11364, 1), Range16), $clone(new Range16.ptr(11367, 11373, 2), Range16), $clone(new Range16.ptr(11374, 11376, 1), Range16), $clone(new Range16.ptr(11378, 11381, 3), Range16), $clone(new Range16.ptr(11390, 11392, 1), Range16), $clone(new Range16.ptr(11394, 11490, 2), Range16), $clone(new Range16.ptr(11499, 11501, 2), Range16), $clone(new Range16.ptr(11506, 42560, 31054), Range16), $clone(new Range16.ptr(42562, 42604, 2), Range16), $clone(new Range16.ptr(42624, 42650, 2), Range16), $clone(new Range16.ptr(42786, 42798, 2), Range16), $clone(new Range16.ptr(42802, 42862, 2), Range16), $clone(new Range16.ptr(42873, 42877, 2), Range16), $clone(new Range16.ptr(42878, 42886, 2), Range16), $clone(new Range16.ptr(42891, 42893, 2), Range16), $clone(new Range16.ptr(42896, 42898, 2), Range16), $clone(new Range16.ptr(42902, 42922, 2), Range16), $clone(new Range16.ptr(42923, 42926, 1), Range16), $clone(new Range16.ptr(42928, 42932, 1), Range16), $clone(new Range16.ptr(42934, 42948, 2), Range16), $clone(new Range16.ptr(42949, 42951, 1), Range16), $clone(new Range16.ptr(42953, 42960, 7), Range16), $clone(new Range16.ptr(42966, 42968, 2), Range16), $clone(new Range16.ptr(42997, 65313, 22316), Range16), $clone(new Range16.ptr(65314, 65338, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(66560, 66599, 1), Range32), $clone(new Range32.ptr(66736, 66771, 1), Range32), $clone(new Range32.ptr(66928, 66938, 1), Range32), $clone(new Range32.ptr(66940, 66954, 1), Range32), $clone(new Range32.ptr(66956, 66962, 1), Range32), $clone(new Range32.ptr(66964, 66965, 1), Range32), $clone(new Range32.ptr(68736, 68786, 1), Range32), $clone(new Range32.ptr(71840, 71871, 1), Range32), $clone(new Range32.ptr(93760, 93791, 1), Range32), $clone(new Range32.ptr(119808, 119833, 1), Range32), $clone(new Range32.ptr(119860, 119885, 1), Range32), $clone(new Range32.ptr(119912, 119937, 1), Range32), $clone(new Range32.ptr(119964, 119966, 2), Range32), $clone(new Range32.ptr(119967, 119973, 3), Range32), $clone(new Range32.ptr(119974, 119977, 3), Range32), $clone(new Range32.ptr(119978, 119980, 1), Range32), $clone(new Range32.ptr(119982, 119989, 1), Range32), $clone(new Range32.ptr(120016, 120041, 1), Range32), $clone(new Range32.ptr(120068, 120069, 1), Range32), $clone(new Range32.ptr(120071, 120074, 1), Range32), $clone(new Range32.ptr(120077, 120084, 1), Range32), $clone(new Range32.ptr(120086, 120092, 1), Range32), $clone(new Range32.ptr(120120, 120121, 1), Range32), $clone(new Range32.ptr(120123, 120126, 1), Range32), $clone(new Range32.ptr(120128, 120132, 1), Range32), $clone(new Range32.ptr(120134, 120138, 4), Range32), $clone(new Range32.ptr(120139, 120144, 1), Range32), $clone(new Range32.ptr(120172, 120197, 1), Range32), $clone(new Range32.ptr(120224, 120249, 1), Range32), $clone(new Range32.ptr(120276, 120301, 1), Range32), $clone(new Range32.ptr(120328, 120353, 1), Range32), $clone(new Range32.ptr(120380, 120405, 1), Range32), $clone(new Range32.ptr(120432, 120457, 1), Range32), $clone(new Range32.ptr(120488, 120512, 1), Range32), $clone(new Range32.ptr(120546, 120570, 1), Range32), $clone(new Range32.ptr(120604, 120628, 1), Range32), $clone(new Range32.ptr(120662, 120686, 1), Range32), $clone(new Range32.ptr(120720, 120744, 1), Range32), $clone(new Range32.ptr(120778, 125184, 4406), Range32), $clone(new Range32.ptr(125185, 125217, 1), Range32)]), 3); + _M = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(768, 879, 1), Range16), $clone(new Range16.ptr(1155, 1161, 1), Range16), $clone(new Range16.ptr(1425, 1469, 1), Range16), $clone(new Range16.ptr(1471, 1473, 2), Range16), $clone(new Range16.ptr(1474, 1476, 2), Range16), $clone(new Range16.ptr(1477, 1479, 2), Range16), $clone(new Range16.ptr(1552, 1562, 1), Range16), $clone(new Range16.ptr(1611, 1631, 1), Range16), $clone(new Range16.ptr(1648, 1750, 102), Range16), $clone(new Range16.ptr(1751, 1756, 1), Range16), $clone(new Range16.ptr(1759, 1764, 1), Range16), $clone(new Range16.ptr(1767, 1768, 1), Range16), $clone(new Range16.ptr(1770, 1773, 1), Range16), $clone(new Range16.ptr(1809, 1840, 31), Range16), $clone(new Range16.ptr(1841, 1866, 1), Range16), $clone(new Range16.ptr(1958, 1968, 1), Range16), $clone(new Range16.ptr(2027, 2035, 1), Range16), $clone(new Range16.ptr(2045, 2070, 25), Range16), $clone(new Range16.ptr(2071, 2073, 1), Range16), $clone(new Range16.ptr(2075, 2083, 1), Range16), $clone(new Range16.ptr(2085, 2087, 1), Range16), $clone(new Range16.ptr(2089, 2093, 1), Range16), $clone(new Range16.ptr(2137, 2139, 1), Range16), $clone(new Range16.ptr(2200, 2207, 1), Range16), $clone(new Range16.ptr(2250, 2273, 1), Range16), $clone(new Range16.ptr(2275, 2307, 1), Range16), $clone(new Range16.ptr(2362, 2364, 1), Range16), $clone(new Range16.ptr(2366, 2383, 1), Range16), $clone(new Range16.ptr(2385, 2391, 1), Range16), $clone(new Range16.ptr(2402, 2403, 1), Range16), $clone(new Range16.ptr(2433, 2435, 1), Range16), $clone(new Range16.ptr(2492, 2494, 2), Range16), $clone(new Range16.ptr(2495, 2500, 1), Range16), $clone(new Range16.ptr(2503, 2504, 1), Range16), $clone(new Range16.ptr(2507, 2509, 1), Range16), $clone(new Range16.ptr(2519, 2530, 11), Range16), $clone(new Range16.ptr(2531, 2558, 27), Range16), $clone(new Range16.ptr(2561, 2563, 1), Range16), $clone(new Range16.ptr(2620, 2622, 2), Range16), $clone(new Range16.ptr(2623, 2626, 1), Range16), $clone(new Range16.ptr(2631, 2632, 1), Range16), $clone(new Range16.ptr(2635, 2637, 1), Range16), $clone(new Range16.ptr(2641, 2672, 31), Range16), $clone(new Range16.ptr(2673, 2677, 4), Range16), $clone(new Range16.ptr(2689, 2691, 1), Range16), $clone(new Range16.ptr(2748, 2750, 2), Range16), $clone(new Range16.ptr(2751, 2757, 1), Range16), $clone(new Range16.ptr(2759, 2761, 1), Range16), $clone(new Range16.ptr(2763, 2765, 1), Range16), $clone(new Range16.ptr(2786, 2787, 1), Range16), $clone(new Range16.ptr(2810, 2815, 1), Range16), $clone(new Range16.ptr(2817, 2819, 1), Range16), $clone(new Range16.ptr(2876, 2878, 2), Range16), $clone(new Range16.ptr(2879, 2884, 1), Range16), $clone(new Range16.ptr(2887, 2888, 1), Range16), $clone(new Range16.ptr(2891, 2893, 1), Range16), $clone(new Range16.ptr(2901, 2903, 1), Range16), $clone(new Range16.ptr(2914, 2915, 1), Range16), $clone(new Range16.ptr(2946, 3006, 60), Range16), $clone(new Range16.ptr(3007, 3010, 1), Range16), $clone(new Range16.ptr(3014, 3016, 1), Range16), $clone(new Range16.ptr(3018, 3021, 1), Range16), $clone(new Range16.ptr(3031, 3072, 41), Range16), $clone(new Range16.ptr(3073, 3076, 1), Range16), $clone(new Range16.ptr(3132, 3134, 2), Range16), $clone(new Range16.ptr(3135, 3140, 1), Range16), $clone(new Range16.ptr(3142, 3144, 1), Range16), $clone(new Range16.ptr(3146, 3149, 1), Range16), $clone(new Range16.ptr(3157, 3158, 1), Range16), $clone(new Range16.ptr(3170, 3171, 1), Range16), $clone(new Range16.ptr(3201, 3203, 1), Range16), $clone(new Range16.ptr(3260, 3262, 2), Range16), $clone(new Range16.ptr(3263, 3268, 1), Range16), $clone(new Range16.ptr(3270, 3272, 1), Range16), $clone(new Range16.ptr(3274, 3277, 1), Range16), $clone(new Range16.ptr(3285, 3286, 1), Range16), $clone(new Range16.ptr(3298, 3299, 1), Range16), $clone(new Range16.ptr(3315, 3328, 13), Range16), $clone(new Range16.ptr(3329, 3331, 1), Range16), $clone(new Range16.ptr(3387, 3388, 1), Range16), $clone(new Range16.ptr(3390, 3396, 1), Range16), $clone(new Range16.ptr(3398, 3400, 1), Range16), $clone(new Range16.ptr(3402, 3405, 1), Range16), $clone(new Range16.ptr(3415, 3426, 11), Range16), $clone(new Range16.ptr(3427, 3457, 30), Range16), $clone(new Range16.ptr(3458, 3459, 1), Range16), $clone(new Range16.ptr(3530, 3535, 5), Range16), $clone(new Range16.ptr(3536, 3540, 1), Range16), $clone(new Range16.ptr(3542, 3544, 2), Range16), $clone(new Range16.ptr(3545, 3551, 1), Range16), $clone(new Range16.ptr(3570, 3571, 1), Range16), $clone(new Range16.ptr(3633, 3636, 3), Range16), $clone(new Range16.ptr(3637, 3642, 1), Range16), $clone(new Range16.ptr(3655, 3662, 1), Range16), $clone(new Range16.ptr(3761, 3764, 3), Range16), $clone(new Range16.ptr(3765, 3772, 1), Range16), $clone(new Range16.ptr(3784, 3790, 1), Range16), $clone(new Range16.ptr(3864, 3865, 1), Range16), $clone(new Range16.ptr(3893, 3897, 2), Range16), $clone(new Range16.ptr(3902, 3903, 1), Range16), $clone(new Range16.ptr(3953, 3972, 1), Range16), $clone(new Range16.ptr(3974, 3975, 1), Range16), $clone(new Range16.ptr(3981, 3991, 1), Range16), $clone(new Range16.ptr(3993, 4028, 1), Range16), $clone(new Range16.ptr(4038, 4139, 101), Range16), $clone(new Range16.ptr(4140, 4158, 1), Range16), $clone(new Range16.ptr(4182, 4185, 1), Range16), $clone(new Range16.ptr(4190, 4192, 1), Range16), $clone(new Range16.ptr(4194, 4196, 1), Range16), $clone(new Range16.ptr(4199, 4205, 1), Range16), $clone(new Range16.ptr(4209, 4212, 1), Range16), $clone(new Range16.ptr(4226, 4237, 1), Range16), $clone(new Range16.ptr(4239, 4250, 11), Range16), $clone(new Range16.ptr(4251, 4253, 1), Range16), $clone(new Range16.ptr(4957, 4959, 1), Range16), $clone(new Range16.ptr(5906, 5909, 1), Range16), $clone(new Range16.ptr(5938, 5940, 1), Range16), $clone(new Range16.ptr(5970, 5971, 1), Range16), $clone(new Range16.ptr(6002, 6003, 1), Range16), $clone(new Range16.ptr(6068, 6099, 1), Range16), $clone(new Range16.ptr(6109, 6155, 46), Range16), $clone(new Range16.ptr(6156, 6157, 1), Range16), $clone(new Range16.ptr(6159, 6277, 118), Range16), $clone(new Range16.ptr(6278, 6313, 35), Range16), $clone(new Range16.ptr(6432, 6443, 1), Range16), $clone(new Range16.ptr(6448, 6459, 1), Range16), $clone(new Range16.ptr(6679, 6683, 1), Range16), $clone(new Range16.ptr(6741, 6750, 1), Range16), $clone(new Range16.ptr(6752, 6780, 1), Range16), $clone(new Range16.ptr(6783, 6832, 49), Range16), $clone(new Range16.ptr(6833, 6862, 1), Range16), $clone(new Range16.ptr(6912, 6916, 1), Range16), $clone(new Range16.ptr(6964, 6980, 1), Range16), $clone(new Range16.ptr(7019, 7027, 1), Range16), $clone(new Range16.ptr(7040, 7042, 1), Range16), $clone(new Range16.ptr(7073, 7085, 1), Range16), $clone(new Range16.ptr(7142, 7155, 1), Range16), $clone(new Range16.ptr(7204, 7223, 1), Range16), $clone(new Range16.ptr(7376, 7378, 1), Range16), $clone(new Range16.ptr(7380, 7400, 1), Range16), $clone(new Range16.ptr(7405, 7412, 7), Range16), $clone(new Range16.ptr(7415, 7417, 1), Range16), $clone(new Range16.ptr(7616, 7679, 1), Range16), $clone(new Range16.ptr(8400, 8432, 1), Range16), $clone(new Range16.ptr(11503, 11505, 1), Range16), $clone(new Range16.ptr(11647, 11744, 97), Range16), $clone(new Range16.ptr(11745, 11775, 1), Range16), $clone(new Range16.ptr(12330, 12335, 1), Range16), $clone(new Range16.ptr(12441, 12442, 1), Range16), $clone(new Range16.ptr(42607, 42610, 1), Range16), $clone(new Range16.ptr(42612, 42621, 1), Range16), $clone(new Range16.ptr(42654, 42655, 1), Range16), $clone(new Range16.ptr(42736, 42737, 1), Range16), $clone(new Range16.ptr(43010, 43014, 4), Range16), $clone(new Range16.ptr(43019, 43043, 24), Range16), $clone(new Range16.ptr(43044, 43047, 1), Range16), $clone(new Range16.ptr(43052, 43136, 84), Range16), $clone(new Range16.ptr(43137, 43188, 51), Range16), $clone(new Range16.ptr(43189, 43205, 1), Range16), $clone(new Range16.ptr(43232, 43249, 1), Range16), $clone(new Range16.ptr(43263, 43302, 39), Range16), $clone(new Range16.ptr(43303, 43309, 1), Range16), $clone(new Range16.ptr(43335, 43347, 1), Range16), $clone(new Range16.ptr(43392, 43395, 1), Range16), $clone(new Range16.ptr(43443, 43456, 1), Range16), $clone(new Range16.ptr(43493, 43561, 68), Range16), $clone(new Range16.ptr(43562, 43574, 1), Range16), $clone(new Range16.ptr(43587, 43596, 9), Range16), $clone(new Range16.ptr(43597, 43643, 46), Range16), $clone(new Range16.ptr(43644, 43645, 1), Range16), $clone(new Range16.ptr(43696, 43698, 2), Range16), $clone(new Range16.ptr(43699, 43700, 1), Range16), $clone(new Range16.ptr(43703, 43704, 1), Range16), $clone(new Range16.ptr(43710, 43711, 1), Range16), $clone(new Range16.ptr(43713, 43755, 42), Range16), $clone(new Range16.ptr(43756, 43759, 1), Range16), $clone(new Range16.ptr(43765, 43766, 1), Range16), $clone(new Range16.ptr(44003, 44010, 1), Range16), $clone(new Range16.ptr(44012, 44013, 1), Range16), $clone(new Range16.ptr(64286, 65024, 738), Range16), $clone(new Range16.ptr(65025, 65039, 1), Range16), $clone(new Range16.ptr(65056, 65071, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(66045, 66272, 227), Range32), $clone(new Range32.ptr(66422, 66426, 1), Range32), $clone(new Range32.ptr(68097, 68099, 1), Range32), $clone(new Range32.ptr(68101, 68102, 1), Range32), $clone(new Range32.ptr(68108, 68111, 1), Range32), $clone(new Range32.ptr(68152, 68154, 1), Range32), $clone(new Range32.ptr(68159, 68325, 166), Range32), $clone(new Range32.ptr(68326, 68900, 574), Range32), $clone(new Range32.ptr(68901, 68903, 1), Range32), $clone(new Range32.ptr(69291, 69292, 1), Range32), $clone(new Range32.ptr(69373, 69375, 1), Range32), $clone(new Range32.ptr(69446, 69456, 1), Range32), $clone(new Range32.ptr(69506, 69509, 1), Range32), $clone(new Range32.ptr(69632, 69634, 1), Range32), $clone(new Range32.ptr(69688, 69702, 1), Range32), $clone(new Range32.ptr(69744, 69747, 3), Range32), $clone(new Range32.ptr(69748, 69759, 11), Range32), $clone(new Range32.ptr(69760, 69762, 1), Range32), $clone(new Range32.ptr(69808, 69818, 1), Range32), $clone(new Range32.ptr(69826, 69888, 62), Range32), $clone(new Range32.ptr(69889, 69890, 1), Range32), $clone(new Range32.ptr(69927, 69940, 1), Range32), $clone(new Range32.ptr(69957, 69958, 1), Range32), $clone(new Range32.ptr(70003, 70016, 13), Range32), $clone(new Range32.ptr(70017, 70018, 1), Range32), $clone(new Range32.ptr(70067, 70080, 1), Range32), $clone(new Range32.ptr(70089, 70092, 1), Range32), $clone(new Range32.ptr(70094, 70095, 1), Range32), $clone(new Range32.ptr(70188, 70199, 1), Range32), $clone(new Range32.ptr(70206, 70209, 3), Range32), $clone(new Range32.ptr(70367, 70378, 1), Range32), $clone(new Range32.ptr(70400, 70403, 1), Range32), $clone(new Range32.ptr(70459, 70460, 1), Range32), $clone(new Range32.ptr(70462, 70468, 1), Range32), $clone(new Range32.ptr(70471, 70472, 1), Range32), $clone(new Range32.ptr(70475, 70477, 1), Range32), $clone(new Range32.ptr(70487, 70498, 11), Range32), $clone(new Range32.ptr(70499, 70502, 3), Range32), $clone(new Range32.ptr(70503, 70508, 1), Range32), $clone(new Range32.ptr(70512, 70516, 1), Range32), $clone(new Range32.ptr(70709, 70726, 1), Range32), $clone(new Range32.ptr(70750, 70832, 82), Range32), $clone(new Range32.ptr(70833, 70851, 1), Range32), $clone(new Range32.ptr(71087, 71093, 1), Range32), $clone(new Range32.ptr(71096, 71104, 1), Range32), $clone(new Range32.ptr(71132, 71133, 1), Range32), $clone(new Range32.ptr(71216, 71232, 1), Range32), $clone(new Range32.ptr(71339, 71351, 1), Range32), $clone(new Range32.ptr(71453, 71467, 1), Range32), $clone(new Range32.ptr(71724, 71738, 1), Range32), $clone(new Range32.ptr(71984, 71989, 1), Range32), $clone(new Range32.ptr(71991, 71992, 1), Range32), $clone(new Range32.ptr(71995, 71998, 1), Range32), $clone(new Range32.ptr(72000, 72002, 2), Range32), $clone(new Range32.ptr(72003, 72145, 142), Range32), $clone(new Range32.ptr(72146, 72151, 1), Range32), $clone(new Range32.ptr(72154, 72160, 1), Range32), $clone(new Range32.ptr(72164, 72193, 29), Range32), $clone(new Range32.ptr(72194, 72202, 1), Range32), $clone(new Range32.ptr(72243, 72249, 1), Range32), $clone(new Range32.ptr(72251, 72254, 1), Range32), $clone(new Range32.ptr(72263, 72273, 10), Range32), $clone(new Range32.ptr(72274, 72283, 1), Range32), $clone(new Range32.ptr(72330, 72345, 1), Range32), $clone(new Range32.ptr(72751, 72758, 1), Range32), $clone(new Range32.ptr(72760, 72767, 1), Range32), $clone(new Range32.ptr(72850, 72871, 1), Range32), $clone(new Range32.ptr(72873, 72886, 1), Range32), $clone(new Range32.ptr(73009, 73014, 1), Range32), $clone(new Range32.ptr(73018, 73020, 2), Range32), $clone(new Range32.ptr(73021, 73023, 2), Range32), $clone(new Range32.ptr(73024, 73029, 1), Range32), $clone(new Range32.ptr(73031, 73098, 67), Range32), $clone(new Range32.ptr(73099, 73102, 1), Range32), $clone(new Range32.ptr(73104, 73105, 1), Range32), $clone(new Range32.ptr(73107, 73111, 1), Range32), $clone(new Range32.ptr(73459, 73462, 1), Range32), $clone(new Range32.ptr(73472, 73473, 1), Range32), $clone(new Range32.ptr(73475, 73524, 49), Range32), $clone(new Range32.ptr(73525, 73530, 1), Range32), $clone(new Range32.ptr(73534, 73538, 1), Range32), $clone(new Range32.ptr(78912, 78919, 7), Range32), $clone(new Range32.ptr(78920, 78933, 1), Range32), $clone(new Range32.ptr(92912, 92916, 1), Range32), $clone(new Range32.ptr(92976, 92982, 1), Range32), $clone(new Range32.ptr(94031, 94033, 2), Range32), $clone(new Range32.ptr(94034, 94087, 1), Range32), $clone(new Range32.ptr(94095, 94098, 1), Range32), $clone(new Range32.ptr(94180, 94192, 12), Range32), $clone(new Range32.ptr(94193, 113821, 19628), Range32), $clone(new Range32.ptr(113822, 118528, 4706), Range32), $clone(new Range32.ptr(118529, 118573, 1), Range32), $clone(new Range32.ptr(118576, 118598, 1), Range32), $clone(new Range32.ptr(119141, 119145, 1), Range32), $clone(new Range32.ptr(119149, 119154, 1), Range32), $clone(new Range32.ptr(119163, 119170, 1), Range32), $clone(new Range32.ptr(119173, 119179, 1), Range32), $clone(new Range32.ptr(119210, 119213, 1), Range32), $clone(new Range32.ptr(119362, 119364, 1), Range32), $clone(new Range32.ptr(121344, 121398, 1), Range32), $clone(new Range32.ptr(121403, 121452, 1), Range32), $clone(new Range32.ptr(121461, 121476, 15), Range32), $clone(new Range32.ptr(121499, 121503, 1), Range32), $clone(new Range32.ptr(121505, 121519, 1), Range32), $clone(new Range32.ptr(122880, 122886, 1), Range32), $clone(new Range32.ptr(122888, 122904, 1), Range32), $clone(new Range32.ptr(122907, 122913, 1), Range32), $clone(new Range32.ptr(122915, 122916, 1), Range32), $clone(new Range32.ptr(122918, 122922, 1), Range32), $clone(new Range32.ptr(123023, 123184, 161), Range32), $clone(new Range32.ptr(123185, 123190, 1), Range32), $clone(new Range32.ptr(123566, 123628, 62), Range32), $clone(new Range32.ptr(123629, 123631, 1), Range32), $clone(new Range32.ptr(124140, 124143, 1), Range32), $clone(new Range32.ptr(125136, 125142, 1), Range32), $clone(new Range32.ptr(125252, 125258, 1), Range32), $clone(new Range32.ptr(917760, 917999, 1), Range32)]), 0); + _Mc = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(2307, 2363, 56), Range16), $clone(new Range16.ptr(2366, 2368, 1), Range16), $clone(new Range16.ptr(2377, 2380, 1), Range16), $clone(new Range16.ptr(2382, 2383, 1), Range16), $clone(new Range16.ptr(2434, 2435, 1), Range16), $clone(new Range16.ptr(2494, 2496, 1), Range16), $clone(new Range16.ptr(2503, 2504, 1), Range16), $clone(new Range16.ptr(2507, 2508, 1), Range16), $clone(new Range16.ptr(2519, 2563, 44), Range16), $clone(new Range16.ptr(2622, 2624, 1), Range16), $clone(new Range16.ptr(2691, 2750, 59), Range16), $clone(new Range16.ptr(2751, 2752, 1), Range16), $clone(new Range16.ptr(2761, 2763, 2), Range16), $clone(new Range16.ptr(2764, 2818, 54), Range16), $clone(new Range16.ptr(2819, 2878, 59), Range16), $clone(new Range16.ptr(2880, 2887, 7), Range16), $clone(new Range16.ptr(2888, 2891, 3), Range16), $clone(new Range16.ptr(2892, 2903, 11), Range16), $clone(new Range16.ptr(3006, 3007, 1), Range16), $clone(new Range16.ptr(3009, 3010, 1), Range16), $clone(new Range16.ptr(3014, 3016, 1), Range16), $clone(new Range16.ptr(3018, 3020, 1), Range16), $clone(new Range16.ptr(3031, 3073, 42), Range16), $clone(new Range16.ptr(3074, 3075, 1), Range16), $clone(new Range16.ptr(3137, 3140, 1), Range16), $clone(new Range16.ptr(3202, 3203, 1), Range16), $clone(new Range16.ptr(3262, 3264, 2), Range16), $clone(new Range16.ptr(3265, 3268, 1), Range16), $clone(new Range16.ptr(3271, 3272, 1), Range16), $clone(new Range16.ptr(3274, 3275, 1), Range16), $clone(new Range16.ptr(3285, 3286, 1), Range16), $clone(new Range16.ptr(3315, 3330, 15), Range16), $clone(new Range16.ptr(3331, 3390, 59), Range16), $clone(new Range16.ptr(3391, 3392, 1), Range16), $clone(new Range16.ptr(3398, 3400, 1), Range16), $clone(new Range16.ptr(3402, 3404, 1), Range16), $clone(new Range16.ptr(3415, 3458, 43), Range16), $clone(new Range16.ptr(3459, 3535, 76), Range16), $clone(new Range16.ptr(3536, 3537, 1), Range16), $clone(new Range16.ptr(3544, 3551, 1), Range16), $clone(new Range16.ptr(3570, 3571, 1), Range16), $clone(new Range16.ptr(3902, 3903, 1), Range16), $clone(new Range16.ptr(3967, 4139, 172), Range16), $clone(new Range16.ptr(4140, 4145, 5), Range16), $clone(new Range16.ptr(4152, 4155, 3), Range16), $clone(new Range16.ptr(4156, 4182, 26), Range16), $clone(new Range16.ptr(4183, 4194, 11), Range16), $clone(new Range16.ptr(4195, 4196, 1), Range16), $clone(new Range16.ptr(4199, 4205, 1), Range16), $clone(new Range16.ptr(4227, 4228, 1), Range16), $clone(new Range16.ptr(4231, 4236, 1), Range16), $clone(new Range16.ptr(4239, 4250, 11), Range16), $clone(new Range16.ptr(4251, 4252, 1), Range16), $clone(new Range16.ptr(5909, 5940, 31), Range16), $clone(new Range16.ptr(6070, 6078, 8), Range16), $clone(new Range16.ptr(6079, 6085, 1), Range16), $clone(new Range16.ptr(6087, 6088, 1), Range16), $clone(new Range16.ptr(6435, 6438, 1), Range16), $clone(new Range16.ptr(6441, 6443, 1), Range16), $clone(new Range16.ptr(6448, 6449, 1), Range16), $clone(new Range16.ptr(6451, 6456, 1), Range16), $clone(new Range16.ptr(6681, 6682, 1), Range16), $clone(new Range16.ptr(6741, 6743, 2), Range16), $clone(new Range16.ptr(6753, 6755, 2), Range16), $clone(new Range16.ptr(6756, 6765, 9), Range16), $clone(new Range16.ptr(6766, 6770, 1), Range16), $clone(new Range16.ptr(6916, 6965, 49), Range16), $clone(new Range16.ptr(6971, 6973, 2), Range16), $clone(new Range16.ptr(6974, 6977, 1), Range16), $clone(new Range16.ptr(6979, 6980, 1), Range16), $clone(new Range16.ptr(7042, 7073, 31), Range16), $clone(new Range16.ptr(7078, 7079, 1), Range16), $clone(new Range16.ptr(7082, 7143, 61), Range16), $clone(new Range16.ptr(7146, 7148, 1), Range16), $clone(new Range16.ptr(7150, 7154, 4), Range16), $clone(new Range16.ptr(7155, 7204, 49), Range16), $clone(new Range16.ptr(7205, 7211, 1), Range16), $clone(new Range16.ptr(7220, 7221, 1), Range16), $clone(new Range16.ptr(7393, 7415, 22), Range16), $clone(new Range16.ptr(12334, 12335, 1), Range16), $clone(new Range16.ptr(43043, 43044, 1), Range16), $clone(new Range16.ptr(43047, 43136, 89), Range16), $clone(new Range16.ptr(43137, 43188, 51), Range16), $clone(new Range16.ptr(43189, 43203, 1), Range16), $clone(new Range16.ptr(43346, 43347, 1), Range16), $clone(new Range16.ptr(43395, 43444, 49), Range16), $clone(new Range16.ptr(43445, 43450, 5), Range16), $clone(new Range16.ptr(43451, 43454, 3), Range16), $clone(new Range16.ptr(43455, 43456, 1), Range16), $clone(new Range16.ptr(43567, 43568, 1), Range16), $clone(new Range16.ptr(43571, 43572, 1), Range16), $clone(new Range16.ptr(43597, 43643, 46), Range16), $clone(new Range16.ptr(43645, 43755, 110), Range16), $clone(new Range16.ptr(43758, 43759, 1), Range16), $clone(new Range16.ptr(43765, 44003, 238), Range16), $clone(new Range16.ptr(44004, 44006, 2), Range16), $clone(new Range16.ptr(44007, 44009, 2), Range16), $clone(new Range16.ptr(44010, 44012, 2), Range16)]), new sliceType$1([$clone(new Range32.ptr(69632, 69634, 2), Range32), $clone(new Range32.ptr(69762, 69808, 46), Range32), $clone(new Range32.ptr(69809, 69810, 1), Range32), $clone(new Range32.ptr(69815, 69816, 1), Range32), $clone(new Range32.ptr(69932, 69957, 25), Range32), $clone(new Range32.ptr(69958, 70018, 60), Range32), $clone(new Range32.ptr(70067, 70069, 1), Range32), $clone(new Range32.ptr(70079, 70080, 1), Range32), $clone(new Range32.ptr(70094, 70188, 94), Range32), $clone(new Range32.ptr(70189, 70190, 1), Range32), $clone(new Range32.ptr(70194, 70195, 1), Range32), $clone(new Range32.ptr(70197, 70368, 171), Range32), $clone(new Range32.ptr(70369, 70370, 1), Range32), $clone(new Range32.ptr(70402, 70403, 1), Range32), $clone(new Range32.ptr(70462, 70463, 1), Range32), $clone(new Range32.ptr(70465, 70468, 1), Range32), $clone(new Range32.ptr(70471, 70472, 1), Range32), $clone(new Range32.ptr(70475, 70477, 1), Range32), $clone(new Range32.ptr(70487, 70498, 11), Range32), $clone(new Range32.ptr(70499, 70709, 210), Range32), $clone(new Range32.ptr(70710, 70711, 1), Range32), $clone(new Range32.ptr(70720, 70721, 1), Range32), $clone(new Range32.ptr(70725, 70832, 107), Range32), $clone(new Range32.ptr(70833, 70834, 1), Range32), $clone(new Range32.ptr(70841, 70843, 2), Range32), $clone(new Range32.ptr(70844, 70846, 1), Range32), $clone(new Range32.ptr(70849, 71087, 238), Range32), $clone(new Range32.ptr(71088, 71089, 1), Range32), $clone(new Range32.ptr(71096, 71099, 1), Range32), $clone(new Range32.ptr(71102, 71216, 114), Range32), $clone(new Range32.ptr(71217, 71218, 1), Range32), $clone(new Range32.ptr(71227, 71228, 1), Range32), $clone(new Range32.ptr(71230, 71340, 110), Range32), $clone(new Range32.ptr(71342, 71343, 1), Range32), $clone(new Range32.ptr(71350, 71456, 106), Range32), $clone(new Range32.ptr(71457, 71462, 5), Range32), $clone(new Range32.ptr(71724, 71726, 1), Range32), $clone(new Range32.ptr(71736, 71984, 248), Range32), $clone(new Range32.ptr(71985, 71989, 1), Range32), $clone(new Range32.ptr(71991, 71992, 1), Range32), $clone(new Range32.ptr(71997, 72000, 3), Range32), $clone(new Range32.ptr(72002, 72145, 143), Range32), $clone(new Range32.ptr(72146, 72147, 1), Range32), $clone(new Range32.ptr(72156, 72159, 1), Range32), $clone(new Range32.ptr(72164, 72249, 85), Range32), $clone(new Range32.ptr(72279, 72280, 1), Range32), $clone(new Range32.ptr(72343, 72751, 408), Range32), $clone(new Range32.ptr(72766, 72873, 107), Range32), $clone(new Range32.ptr(72881, 72884, 3), Range32), $clone(new Range32.ptr(73098, 73102, 1), Range32), $clone(new Range32.ptr(73107, 73108, 1), Range32), $clone(new Range32.ptr(73110, 73461, 351), Range32), $clone(new Range32.ptr(73462, 73475, 13), Range32), $clone(new Range32.ptr(73524, 73525, 1), Range32), $clone(new Range32.ptr(73534, 73535, 1), Range32), $clone(new Range32.ptr(73537, 94033, 20496), Range32), $clone(new Range32.ptr(94034, 94087, 1), Range32), $clone(new Range32.ptr(94192, 94193, 1), Range32), $clone(new Range32.ptr(119141, 119142, 1), Range32), $clone(new Range32.ptr(119149, 119154, 1), Range32)]), 0); _Me = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(1160, 1161, 1), Range16), $clone(new Range16.ptr(6846, 8413, 1567), Range16), $clone(new Range16.ptr(8414, 8416, 1), Range16), $clone(new Range16.ptr(8418, 8420, 1), Range16), $clone(new Range16.ptr(42608, 42610, 1), Range16)]), sliceType$1.nil, 0); - _Mn = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(768, 879, 1), Range16), $clone(new Range16.ptr(1155, 1159, 1), Range16), $clone(new Range16.ptr(1425, 1469, 1), Range16), $clone(new Range16.ptr(1471, 1473, 2), Range16), $clone(new Range16.ptr(1474, 1476, 2), Range16), $clone(new Range16.ptr(1477, 1479, 2), Range16), $clone(new Range16.ptr(1552, 1562, 1), Range16), $clone(new Range16.ptr(1611, 1631, 1), Range16), $clone(new Range16.ptr(1648, 1750, 102), Range16), $clone(new Range16.ptr(1751, 1756, 1), Range16), $clone(new Range16.ptr(1759, 1764, 1), Range16), $clone(new Range16.ptr(1767, 1768, 1), Range16), $clone(new Range16.ptr(1770, 1773, 1), Range16), $clone(new Range16.ptr(1809, 1840, 31), Range16), $clone(new Range16.ptr(1841, 1866, 1), Range16), $clone(new Range16.ptr(1958, 1968, 1), Range16), $clone(new Range16.ptr(2027, 2035, 1), Range16), $clone(new Range16.ptr(2045, 2070, 25), Range16), $clone(new Range16.ptr(2071, 2073, 1), Range16), $clone(new Range16.ptr(2075, 2083, 1), Range16), $clone(new Range16.ptr(2085, 2087, 1), Range16), $clone(new Range16.ptr(2089, 2093, 1), Range16), $clone(new Range16.ptr(2137, 2139, 1), Range16), $clone(new Range16.ptr(2259, 2273, 1), Range16), $clone(new Range16.ptr(2275, 2306, 1), Range16), $clone(new Range16.ptr(2362, 2364, 2), Range16), $clone(new Range16.ptr(2369, 2376, 1), Range16), $clone(new Range16.ptr(2381, 2385, 4), Range16), $clone(new Range16.ptr(2386, 2391, 1), Range16), $clone(new Range16.ptr(2402, 2403, 1), Range16), $clone(new Range16.ptr(2433, 2492, 59), Range16), $clone(new Range16.ptr(2497, 2500, 1), Range16), $clone(new Range16.ptr(2509, 2530, 21), Range16), $clone(new Range16.ptr(2531, 2558, 27), Range16), $clone(new Range16.ptr(2561, 2562, 1), Range16), $clone(new Range16.ptr(2620, 2625, 5), Range16), $clone(new Range16.ptr(2626, 2631, 5), Range16), $clone(new Range16.ptr(2632, 2635, 3), Range16), $clone(new Range16.ptr(2636, 2637, 1), Range16), $clone(new Range16.ptr(2641, 2672, 31), Range16), $clone(new Range16.ptr(2673, 2677, 4), Range16), $clone(new Range16.ptr(2689, 2690, 1), Range16), $clone(new Range16.ptr(2748, 2753, 5), Range16), $clone(new Range16.ptr(2754, 2757, 1), Range16), $clone(new Range16.ptr(2759, 2760, 1), Range16), $clone(new Range16.ptr(2765, 2786, 21), Range16), $clone(new Range16.ptr(2787, 2810, 23), Range16), $clone(new Range16.ptr(2811, 2815, 1), Range16), $clone(new Range16.ptr(2817, 2876, 59), Range16), $clone(new Range16.ptr(2879, 2881, 2), Range16), $clone(new Range16.ptr(2882, 2884, 1), Range16), $clone(new Range16.ptr(2893, 2901, 8), Range16), $clone(new Range16.ptr(2902, 2914, 12), Range16), $clone(new Range16.ptr(2915, 2946, 31), Range16), $clone(new Range16.ptr(3008, 3021, 13), Range16), $clone(new Range16.ptr(3072, 3076, 4), Range16), $clone(new Range16.ptr(3134, 3136, 1), Range16), $clone(new Range16.ptr(3142, 3144, 1), Range16), $clone(new Range16.ptr(3146, 3149, 1), Range16), $clone(new Range16.ptr(3157, 3158, 1), Range16), $clone(new Range16.ptr(3170, 3171, 1), Range16), $clone(new Range16.ptr(3201, 3260, 59), Range16), $clone(new Range16.ptr(3263, 3270, 7), Range16), $clone(new Range16.ptr(3276, 3277, 1), Range16), $clone(new Range16.ptr(3298, 3299, 1), Range16), $clone(new Range16.ptr(3328, 3329, 1), Range16), $clone(new Range16.ptr(3387, 3388, 1), Range16), $clone(new Range16.ptr(3393, 3396, 1), Range16), $clone(new Range16.ptr(3405, 3426, 21), Range16), $clone(new Range16.ptr(3427, 3457, 30), Range16), $clone(new Range16.ptr(3530, 3538, 8), Range16), $clone(new Range16.ptr(3539, 3540, 1), Range16), $clone(new Range16.ptr(3542, 3633, 91), Range16), $clone(new Range16.ptr(3636, 3642, 1), Range16), $clone(new Range16.ptr(3655, 3662, 1), Range16), $clone(new Range16.ptr(3761, 3764, 3), Range16), $clone(new Range16.ptr(3765, 3772, 1), Range16), $clone(new Range16.ptr(3784, 3789, 1), Range16), $clone(new Range16.ptr(3864, 3865, 1), Range16), $clone(new Range16.ptr(3893, 3897, 2), Range16), $clone(new Range16.ptr(3953, 3966, 1), Range16), $clone(new Range16.ptr(3968, 3972, 1), Range16), $clone(new Range16.ptr(3974, 3975, 1), Range16), $clone(new Range16.ptr(3981, 3991, 1), Range16), $clone(new Range16.ptr(3993, 4028, 1), Range16), $clone(new Range16.ptr(4038, 4141, 103), Range16), $clone(new Range16.ptr(4142, 4144, 1), Range16), $clone(new Range16.ptr(4146, 4151, 1), Range16), $clone(new Range16.ptr(4153, 4154, 1), Range16), $clone(new Range16.ptr(4157, 4158, 1), Range16), $clone(new Range16.ptr(4184, 4185, 1), Range16), $clone(new Range16.ptr(4190, 4192, 1), Range16), $clone(new Range16.ptr(4209, 4212, 1), Range16), $clone(new Range16.ptr(4226, 4229, 3), Range16), $clone(new Range16.ptr(4230, 4237, 7), Range16), $clone(new Range16.ptr(4253, 4957, 704), Range16), $clone(new Range16.ptr(4958, 4959, 1), Range16), $clone(new Range16.ptr(5906, 5908, 1), Range16), $clone(new Range16.ptr(5938, 5940, 1), Range16), $clone(new Range16.ptr(5970, 5971, 1), Range16), $clone(new Range16.ptr(6002, 6003, 1), Range16), $clone(new Range16.ptr(6068, 6069, 1), Range16), $clone(new Range16.ptr(6071, 6077, 1), Range16), $clone(new Range16.ptr(6086, 6089, 3), Range16), $clone(new Range16.ptr(6090, 6099, 1), Range16), $clone(new Range16.ptr(6109, 6155, 46), Range16), $clone(new Range16.ptr(6156, 6157, 1), Range16), $clone(new Range16.ptr(6277, 6278, 1), Range16), $clone(new Range16.ptr(6313, 6432, 119), Range16), $clone(new Range16.ptr(6433, 6434, 1), Range16), $clone(new Range16.ptr(6439, 6440, 1), Range16), $clone(new Range16.ptr(6450, 6457, 7), Range16), $clone(new Range16.ptr(6458, 6459, 1), Range16), $clone(new Range16.ptr(6679, 6680, 1), Range16), $clone(new Range16.ptr(6683, 6742, 59), Range16), $clone(new Range16.ptr(6744, 6750, 1), Range16), $clone(new Range16.ptr(6752, 6754, 2), Range16), $clone(new Range16.ptr(6757, 6764, 1), Range16), $clone(new Range16.ptr(6771, 6780, 1), Range16), $clone(new Range16.ptr(6783, 6832, 49), Range16), $clone(new Range16.ptr(6833, 6845, 1), Range16), $clone(new Range16.ptr(6847, 6848, 1), Range16), $clone(new Range16.ptr(6912, 6915, 1), Range16), $clone(new Range16.ptr(6964, 6966, 2), Range16), $clone(new Range16.ptr(6967, 6970, 1), Range16), $clone(new Range16.ptr(6972, 6978, 6), Range16), $clone(new Range16.ptr(7019, 7027, 1), Range16), $clone(new Range16.ptr(7040, 7041, 1), Range16), $clone(new Range16.ptr(7074, 7077, 1), Range16), $clone(new Range16.ptr(7080, 7081, 1), Range16), $clone(new Range16.ptr(7083, 7085, 1), Range16), $clone(new Range16.ptr(7142, 7144, 2), Range16), $clone(new Range16.ptr(7145, 7149, 4), Range16), $clone(new Range16.ptr(7151, 7153, 1), Range16), $clone(new Range16.ptr(7212, 7219, 1), Range16), $clone(new Range16.ptr(7222, 7223, 1), Range16), $clone(new Range16.ptr(7376, 7378, 1), Range16), $clone(new Range16.ptr(7380, 7392, 1), Range16), $clone(new Range16.ptr(7394, 7400, 1), Range16), $clone(new Range16.ptr(7405, 7412, 7), Range16), $clone(new Range16.ptr(7416, 7417, 1), Range16), $clone(new Range16.ptr(7616, 7673, 1), Range16), $clone(new Range16.ptr(7675, 7679, 1), Range16), $clone(new Range16.ptr(8400, 8412, 1), Range16), $clone(new Range16.ptr(8417, 8421, 4), Range16), $clone(new Range16.ptr(8422, 8432, 1), Range16), $clone(new Range16.ptr(11503, 11505, 1), Range16), $clone(new Range16.ptr(11647, 11744, 97), Range16), $clone(new Range16.ptr(11745, 11775, 1), Range16), $clone(new Range16.ptr(12330, 12333, 1), Range16), $clone(new Range16.ptr(12441, 12442, 1), Range16), $clone(new Range16.ptr(42607, 42612, 5), Range16), $clone(new Range16.ptr(42613, 42621, 1), Range16), $clone(new Range16.ptr(42654, 42655, 1), Range16), $clone(new Range16.ptr(42736, 42737, 1), Range16), $clone(new Range16.ptr(43010, 43014, 4), Range16), $clone(new Range16.ptr(43019, 43045, 26), Range16), $clone(new Range16.ptr(43046, 43052, 6), Range16), $clone(new Range16.ptr(43204, 43205, 1), Range16), $clone(new Range16.ptr(43232, 43249, 1), Range16), $clone(new Range16.ptr(43263, 43302, 39), Range16), $clone(new Range16.ptr(43303, 43309, 1), Range16), $clone(new Range16.ptr(43335, 43345, 1), Range16), $clone(new Range16.ptr(43392, 43394, 1), Range16), $clone(new Range16.ptr(43443, 43446, 3), Range16), $clone(new Range16.ptr(43447, 43449, 1), Range16), $clone(new Range16.ptr(43452, 43453, 1), Range16), $clone(new Range16.ptr(43493, 43561, 68), Range16), $clone(new Range16.ptr(43562, 43566, 1), Range16), $clone(new Range16.ptr(43569, 43570, 1), Range16), $clone(new Range16.ptr(43573, 43574, 1), Range16), $clone(new Range16.ptr(43587, 43596, 9), Range16), $clone(new Range16.ptr(43644, 43696, 52), Range16), $clone(new Range16.ptr(43698, 43700, 1), Range16), $clone(new Range16.ptr(43703, 43704, 1), Range16), $clone(new Range16.ptr(43710, 43711, 1), Range16), $clone(new Range16.ptr(43713, 43756, 43), Range16), $clone(new Range16.ptr(43757, 43766, 9), Range16), $clone(new Range16.ptr(44005, 44008, 3), Range16), $clone(new Range16.ptr(44013, 64286, 20273), Range16), $clone(new Range16.ptr(65024, 65039, 1), Range16), $clone(new Range16.ptr(65056, 65071, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(66045, 66272, 227), Range32), $clone(new Range32.ptr(66422, 66426, 1), Range32), $clone(new Range32.ptr(68097, 68099, 1), Range32), $clone(new Range32.ptr(68101, 68102, 1), Range32), $clone(new Range32.ptr(68108, 68111, 1), Range32), $clone(new Range32.ptr(68152, 68154, 1), Range32), $clone(new Range32.ptr(68159, 68325, 166), Range32), $clone(new Range32.ptr(68326, 68900, 574), Range32), $clone(new Range32.ptr(68901, 68903, 1), Range32), $clone(new Range32.ptr(69291, 69292, 1), Range32), $clone(new Range32.ptr(69446, 69456, 1), Range32), $clone(new Range32.ptr(69633, 69688, 55), Range32), $clone(new Range32.ptr(69689, 69702, 1), Range32), $clone(new Range32.ptr(69759, 69761, 1), Range32), $clone(new Range32.ptr(69811, 69814, 1), Range32), $clone(new Range32.ptr(69817, 69818, 1), Range32), $clone(new Range32.ptr(69888, 69890, 1), Range32), $clone(new Range32.ptr(69927, 69931, 1), Range32), $clone(new Range32.ptr(69933, 69940, 1), Range32), $clone(new Range32.ptr(70003, 70016, 13), Range32), $clone(new Range32.ptr(70017, 70070, 53), Range32), $clone(new Range32.ptr(70071, 70078, 1), Range32), $clone(new Range32.ptr(70089, 70092, 1), Range32), $clone(new Range32.ptr(70095, 70191, 96), Range32), $clone(new Range32.ptr(70192, 70193, 1), Range32), $clone(new Range32.ptr(70196, 70198, 2), Range32), $clone(new Range32.ptr(70199, 70206, 7), Range32), $clone(new Range32.ptr(70367, 70371, 4), Range32), $clone(new Range32.ptr(70372, 70378, 1), Range32), $clone(new Range32.ptr(70400, 70401, 1), Range32), $clone(new Range32.ptr(70459, 70460, 1), Range32), $clone(new Range32.ptr(70464, 70502, 38), Range32), $clone(new Range32.ptr(70503, 70508, 1), Range32), $clone(new Range32.ptr(70512, 70516, 1), Range32), $clone(new Range32.ptr(70712, 70719, 1), Range32), $clone(new Range32.ptr(70722, 70724, 1), Range32), $clone(new Range32.ptr(70726, 70750, 24), Range32), $clone(new Range32.ptr(70835, 70840, 1), Range32), $clone(new Range32.ptr(70842, 70847, 5), Range32), $clone(new Range32.ptr(70848, 70850, 2), Range32), $clone(new Range32.ptr(70851, 71090, 239), Range32), $clone(new Range32.ptr(71091, 71093, 1), Range32), $clone(new Range32.ptr(71100, 71101, 1), Range32), $clone(new Range32.ptr(71103, 71104, 1), Range32), $clone(new Range32.ptr(71132, 71133, 1), Range32), $clone(new Range32.ptr(71219, 71226, 1), Range32), $clone(new Range32.ptr(71229, 71231, 2), Range32), $clone(new Range32.ptr(71232, 71339, 107), Range32), $clone(new Range32.ptr(71341, 71344, 3), Range32), $clone(new Range32.ptr(71345, 71349, 1), Range32), $clone(new Range32.ptr(71351, 71453, 102), Range32), $clone(new Range32.ptr(71454, 71455, 1), Range32), $clone(new Range32.ptr(71458, 71461, 1), Range32), $clone(new Range32.ptr(71463, 71467, 1), Range32), $clone(new Range32.ptr(71727, 71735, 1), Range32), $clone(new Range32.ptr(71737, 71738, 1), Range32), $clone(new Range32.ptr(71995, 71996, 1), Range32), $clone(new Range32.ptr(71998, 72003, 5), Range32), $clone(new Range32.ptr(72148, 72151, 1), Range32), $clone(new Range32.ptr(72154, 72155, 1), Range32), $clone(new Range32.ptr(72160, 72193, 33), Range32), $clone(new Range32.ptr(72194, 72202, 1), Range32), $clone(new Range32.ptr(72243, 72248, 1), Range32), $clone(new Range32.ptr(72251, 72254, 1), Range32), $clone(new Range32.ptr(72263, 72273, 10), Range32), $clone(new Range32.ptr(72274, 72278, 1), Range32), $clone(new Range32.ptr(72281, 72283, 1), Range32), $clone(new Range32.ptr(72330, 72342, 1), Range32), $clone(new Range32.ptr(72344, 72345, 1), Range32), $clone(new Range32.ptr(72752, 72758, 1), Range32), $clone(new Range32.ptr(72760, 72765, 1), Range32), $clone(new Range32.ptr(72767, 72850, 83), Range32), $clone(new Range32.ptr(72851, 72871, 1), Range32), $clone(new Range32.ptr(72874, 72880, 1), Range32), $clone(new Range32.ptr(72882, 72883, 1), Range32), $clone(new Range32.ptr(72885, 72886, 1), Range32), $clone(new Range32.ptr(73009, 73014, 1), Range32), $clone(new Range32.ptr(73018, 73020, 2), Range32), $clone(new Range32.ptr(73021, 73023, 2), Range32), $clone(new Range32.ptr(73024, 73029, 1), Range32), $clone(new Range32.ptr(73031, 73104, 73), Range32), $clone(new Range32.ptr(73105, 73109, 4), Range32), $clone(new Range32.ptr(73111, 73459, 348), Range32), $clone(new Range32.ptr(73460, 92912, 19452), Range32), $clone(new Range32.ptr(92913, 92916, 1), Range32), $clone(new Range32.ptr(92976, 92982, 1), Range32), $clone(new Range32.ptr(94031, 94095, 64), Range32), $clone(new Range32.ptr(94096, 94098, 1), Range32), $clone(new Range32.ptr(94180, 113821, 19641), Range32), $clone(new Range32.ptr(113822, 119143, 5321), Range32), $clone(new Range32.ptr(119144, 119145, 1), Range32), $clone(new Range32.ptr(119163, 119170, 1), Range32), $clone(new Range32.ptr(119173, 119179, 1), Range32), $clone(new Range32.ptr(119210, 119213, 1), Range32), $clone(new Range32.ptr(119362, 119364, 1), Range32), $clone(new Range32.ptr(121344, 121398, 1), Range32), $clone(new Range32.ptr(121403, 121452, 1), Range32), $clone(new Range32.ptr(121461, 121476, 15), Range32), $clone(new Range32.ptr(121499, 121503, 1), Range32), $clone(new Range32.ptr(121505, 121519, 1), Range32), $clone(new Range32.ptr(122880, 122886, 1), Range32), $clone(new Range32.ptr(122888, 122904, 1), Range32), $clone(new Range32.ptr(122907, 122913, 1), Range32), $clone(new Range32.ptr(122915, 122916, 1), Range32), $clone(new Range32.ptr(122918, 122922, 1), Range32), $clone(new Range32.ptr(123184, 123190, 1), Range32), $clone(new Range32.ptr(123628, 123631, 1), Range32), $clone(new Range32.ptr(125136, 125142, 1), Range32), $clone(new Range32.ptr(125252, 125258, 1), Range32), $clone(new Range32.ptr(917760, 917999, 1), Range32)]), 0); - _N = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(48, 57, 1), Range16), $clone(new Range16.ptr(178, 179, 1), Range16), $clone(new Range16.ptr(185, 188, 3), Range16), $clone(new Range16.ptr(189, 190, 1), Range16), $clone(new Range16.ptr(1632, 1641, 1), Range16), $clone(new Range16.ptr(1776, 1785, 1), Range16), $clone(new Range16.ptr(1984, 1993, 1), Range16), $clone(new Range16.ptr(2406, 2415, 1), Range16), $clone(new Range16.ptr(2534, 2543, 1), Range16), $clone(new Range16.ptr(2548, 2553, 1), Range16), $clone(new Range16.ptr(2662, 2671, 1), Range16), $clone(new Range16.ptr(2790, 2799, 1), Range16), $clone(new Range16.ptr(2918, 2927, 1), Range16), $clone(new Range16.ptr(2930, 2935, 1), Range16), $clone(new Range16.ptr(3046, 3058, 1), Range16), $clone(new Range16.ptr(3174, 3183, 1), Range16), $clone(new Range16.ptr(3192, 3198, 1), Range16), $clone(new Range16.ptr(3302, 3311, 1), Range16), $clone(new Range16.ptr(3416, 3422, 1), Range16), $clone(new Range16.ptr(3430, 3448, 1), Range16), $clone(new Range16.ptr(3558, 3567, 1), Range16), $clone(new Range16.ptr(3664, 3673, 1), Range16), $clone(new Range16.ptr(3792, 3801, 1), Range16), $clone(new Range16.ptr(3872, 3891, 1), Range16), $clone(new Range16.ptr(4160, 4169, 1), Range16), $clone(new Range16.ptr(4240, 4249, 1), Range16), $clone(new Range16.ptr(4969, 4988, 1), Range16), $clone(new Range16.ptr(5870, 5872, 1), Range16), $clone(new Range16.ptr(6112, 6121, 1), Range16), $clone(new Range16.ptr(6128, 6137, 1), Range16), $clone(new Range16.ptr(6160, 6169, 1), Range16), $clone(new Range16.ptr(6470, 6479, 1), Range16), $clone(new Range16.ptr(6608, 6618, 1), Range16), $clone(new Range16.ptr(6784, 6793, 1), Range16), $clone(new Range16.ptr(6800, 6809, 1), Range16), $clone(new Range16.ptr(6992, 7001, 1), Range16), $clone(new Range16.ptr(7088, 7097, 1), Range16), $clone(new Range16.ptr(7232, 7241, 1), Range16), $clone(new Range16.ptr(7248, 7257, 1), Range16), $clone(new Range16.ptr(8304, 8308, 4), Range16), $clone(new Range16.ptr(8309, 8313, 1), Range16), $clone(new Range16.ptr(8320, 8329, 1), Range16), $clone(new Range16.ptr(8528, 8578, 1), Range16), $clone(new Range16.ptr(8581, 8585, 1), Range16), $clone(new Range16.ptr(9312, 9371, 1), Range16), $clone(new Range16.ptr(9450, 9471, 1), Range16), $clone(new Range16.ptr(10102, 10131, 1), Range16), $clone(new Range16.ptr(11517, 12295, 778), Range16), $clone(new Range16.ptr(12321, 12329, 1), Range16), $clone(new Range16.ptr(12344, 12346, 1), Range16), $clone(new Range16.ptr(12690, 12693, 1), Range16), $clone(new Range16.ptr(12832, 12841, 1), Range16), $clone(new Range16.ptr(12872, 12879, 1), Range16), $clone(new Range16.ptr(12881, 12895, 1), Range16), $clone(new Range16.ptr(12928, 12937, 1), Range16), $clone(new Range16.ptr(12977, 12991, 1), Range16), $clone(new Range16.ptr(42528, 42537, 1), Range16), $clone(new Range16.ptr(42726, 42735, 1), Range16), $clone(new Range16.ptr(43056, 43061, 1), Range16), $clone(new Range16.ptr(43216, 43225, 1), Range16), $clone(new Range16.ptr(43264, 43273, 1), Range16), $clone(new Range16.ptr(43472, 43481, 1), Range16), $clone(new Range16.ptr(43504, 43513, 1), Range16), $clone(new Range16.ptr(43600, 43609, 1), Range16), $clone(new Range16.ptr(44016, 44025, 1), Range16), $clone(new Range16.ptr(65296, 65305, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65799, 65843, 1), Range32), $clone(new Range32.ptr(65856, 65912, 1), Range32), $clone(new Range32.ptr(65930, 65931, 1), Range32), $clone(new Range32.ptr(66273, 66299, 1), Range32), $clone(new Range32.ptr(66336, 66339, 1), Range32), $clone(new Range32.ptr(66369, 66378, 9), Range32), $clone(new Range32.ptr(66513, 66517, 1), Range32), $clone(new Range32.ptr(66720, 66729, 1), Range32), $clone(new Range32.ptr(67672, 67679, 1), Range32), $clone(new Range32.ptr(67705, 67711, 1), Range32), $clone(new Range32.ptr(67751, 67759, 1), Range32), $clone(new Range32.ptr(67835, 67839, 1), Range32), $clone(new Range32.ptr(67862, 67867, 1), Range32), $clone(new Range32.ptr(68028, 68029, 1), Range32), $clone(new Range32.ptr(68032, 68047, 1), Range32), $clone(new Range32.ptr(68050, 68095, 1), Range32), $clone(new Range32.ptr(68160, 68168, 1), Range32), $clone(new Range32.ptr(68221, 68222, 1), Range32), $clone(new Range32.ptr(68253, 68255, 1), Range32), $clone(new Range32.ptr(68331, 68335, 1), Range32), $clone(new Range32.ptr(68440, 68447, 1), Range32), $clone(new Range32.ptr(68472, 68479, 1), Range32), $clone(new Range32.ptr(68521, 68527, 1), Range32), $clone(new Range32.ptr(68858, 68863, 1), Range32), $clone(new Range32.ptr(68912, 68921, 1), Range32), $clone(new Range32.ptr(69216, 69246, 1), Range32), $clone(new Range32.ptr(69405, 69414, 1), Range32), $clone(new Range32.ptr(69457, 69460, 1), Range32), $clone(new Range32.ptr(69573, 69579, 1), Range32), $clone(new Range32.ptr(69714, 69743, 1), Range32), $clone(new Range32.ptr(69872, 69881, 1), Range32), $clone(new Range32.ptr(69942, 69951, 1), Range32), $clone(new Range32.ptr(70096, 70105, 1), Range32), $clone(new Range32.ptr(70113, 70132, 1), Range32), $clone(new Range32.ptr(70384, 70393, 1), Range32), $clone(new Range32.ptr(70736, 70745, 1), Range32), $clone(new Range32.ptr(70864, 70873, 1), Range32), $clone(new Range32.ptr(71248, 71257, 1), Range32), $clone(new Range32.ptr(71360, 71369, 1), Range32), $clone(new Range32.ptr(71472, 71483, 1), Range32), $clone(new Range32.ptr(71904, 71922, 1), Range32), $clone(new Range32.ptr(72016, 72025, 1), Range32), $clone(new Range32.ptr(72784, 72812, 1), Range32), $clone(new Range32.ptr(73040, 73049, 1), Range32), $clone(new Range32.ptr(73120, 73129, 1), Range32), $clone(new Range32.ptr(73664, 73684, 1), Range32), $clone(new Range32.ptr(74752, 74862, 1), Range32), $clone(new Range32.ptr(92768, 92777, 1), Range32), $clone(new Range32.ptr(93008, 93017, 1), Range32), $clone(new Range32.ptr(93019, 93025, 1), Range32), $clone(new Range32.ptr(93824, 93846, 1), Range32), $clone(new Range32.ptr(119520, 119539, 1), Range32), $clone(new Range32.ptr(119648, 119672, 1), Range32), $clone(new Range32.ptr(120782, 120831, 1), Range32), $clone(new Range32.ptr(123200, 123209, 1), Range32), $clone(new Range32.ptr(123632, 123641, 1), Range32), $clone(new Range32.ptr(125127, 125135, 1), Range32), $clone(new Range32.ptr(125264, 125273, 1), Range32), $clone(new Range32.ptr(126065, 126123, 1), Range32), $clone(new Range32.ptr(126125, 126127, 1), Range32), $clone(new Range32.ptr(126129, 126132, 1), Range32), $clone(new Range32.ptr(126209, 126253, 1), Range32), $clone(new Range32.ptr(126255, 126269, 1), Range32), $clone(new Range32.ptr(127232, 127244, 1), Range32), $clone(new Range32.ptr(130032, 130041, 1), Range32)]), 4); - _Nd = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(48, 57, 1), Range16), $clone(new Range16.ptr(1632, 1641, 1), Range16), $clone(new Range16.ptr(1776, 1785, 1), Range16), $clone(new Range16.ptr(1984, 1993, 1), Range16), $clone(new Range16.ptr(2406, 2415, 1), Range16), $clone(new Range16.ptr(2534, 2543, 1), Range16), $clone(new Range16.ptr(2662, 2671, 1), Range16), $clone(new Range16.ptr(2790, 2799, 1), Range16), $clone(new Range16.ptr(2918, 2927, 1), Range16), $clone(new Range16.ptr(3046, 3055, 1), Range16), $clone(new Range16.ptr(3174, 3183, 1), Range16), $clone(new Range16.ptr(3302, 3311, 1), Range16), $clone(new Range16.ptr(3430, 3439, 1), Range16), $clone(new Range16.ptr(3558, 3567, 1), Range16), $clone(new Range16.ptr(3664, 3673, 1), Range16), $clone(new Range16.ptr(3792, 3801, 1), Range16), $clone(new Range16.ptr(3872, 3881, 1), Range16), $clone(new Range16.ptr(4160, 4169, 1), Range16), $clone(new Range16.ptr(4240, 4249, 1), Range16), $clone(new Range16.ptr(6112, 6121, 1), Range16), $clone(new Range16.ptr(6160, 6169, 1), Range16), $clone(new Range16.ptr(6470, 6479, 1), Range16), $clone(new Range16.ptr(6608, 6617, 1), Range16), $clone(new Range16.ptr(6784, 6793, 1), Range16), $clone(new Range16.ptr(6800, 6809, 1), Range16), $clone(new Range16.ptr(6992, 7001, 1), Range16), $clone(new Range16.ptr(7088, 7097, 1), Range16), $clone(new Range16.ptr(7232, 7241, 1), Range16), $clone(new Range16.ptr(7248, 7257, 1), Range16), $clone(new Range16.ptr(42528, 42537, 1), Range16), $clone(new Range16.ptr(43216, 43225, 1), Range16), $clone(new Range16.ptr(43264, 43273, 1), Range16), $clone(new Range16.ptr(43472, 43481, 1), Range16), $clone(new Range16.ptr(43504, 43513, 1), Range16), $clone(new Range16.ptr(43600, 43609, 1), Range16), $clone(new Range16.ptr(44016, 44025, 1), Range16), $clone(new Range16.ptr(65296, 65305, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(66720, 66729, 1), Range32), $clone(new Range32.ptr(68912, 68921, 1), Range32), $clone(new Range32.ptr(69734, 69743, 1), Range32), $clone(new Range32.ptr(69872, 69881, 1), Range32), $clone(new Range32.ptr(69942, 69951, 1), Range32), $clone(new Range32.ptr(70096, 70105, 1), Range32), $clone(new Range32.ptr(70384, 70393, 1), Range32), $clone(new Range32.ptr(70736, 70745, 1), Range32), $clone(new Range32.ptr(70864, 70873, 1), Range32), $clone(new Range32.ptr(71248, 71257, 1), Range32), $clone(new Range32.ptr(71360, 71369, 1), Range32), $clone(new Range32.ptr(71472, 71481, 1), Range32), $clone(new Range32.ptr(71904, 71913, 1), Range32), $clone(new Range32.ptr(72016, 72025, 1), Range32), $clone(new Range32.ptr(72784, 72793, 1), Range32), $clone(new Range32.ptr(73040, 73049, 1), Range32), $clone(new Range32.ptr(73120, 73129, 1), Range32), $clone(new Range32.ptr(92768, 92777, 1), Range32), $clone(new Range32.ptr(93008, 93017, 1), Range32), $clone(new Range32.ptr(120782, 120831, 1), Range32), $clone(new Range32.ptr(123200, 123209, 1), Range32), $clone(new Range32.ptr(123632, 123641, 1), Range32), $clone(new Range32.ptr(125264, 125273, 1), Range32), $clone(new Range32.ptr(130032, 130041, 1), Range32)]), 1); + _Mn = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(768, 879, 1), Range16), $clone(new Range16.ptr(1155, 1159, 1), Range16), $clone(new Range16.ptr(1425, 1469, 1), Range16), $clone(new Range16.ptr(1471, 1473, 2), Range16), $clone(new Range16.ptr(1474, 1476, 2), Range16), $clone(new Range16.ptr(1477, 1479, 2), Range16), $clone(new Range16.ptr(1552, 1562, 1), Range16), $clone(new Range16.ptr(1611, 1631, 1), Range16), $clone(new Range16.ptr(1648, 1750, 102), Range16), $clone(new Range16.ptr(1751, 1756, 1), Range16), $clone(new Range16.ptr(1759, 1764, 1), Range16), $clone(new Range16.ptr(1767, 1768, 1), Range16), $clone(new Range16.ptr(1770, 1773, 1), Range16), $clone(new Range16.ptr(1809, 1840, 31), Range16), $clone(new Range16.ptr(1841, 1866, 1), Range16), $clone(new Range16.ptr(1958, 1968, 1), Range16), $clone(new Range16.ptr(2027, 2035, 1), Range16), $clone(new Range16.ptr(2045, 2070, 25), Range16), $clone(new Range16.ptr(2071, 2073, 1), Range16), $clone(new Range16.ptr(2075, 2083, 1), Range16), $clone(new Range16.ptr(2085, 2087, 1), Range16), $clone(new Range16.ptr(2089, 2093, 1), Range16), $clone(new Range16.ptr(2137, 2139, 1), Range16), $clone(new Range16.ptr(2200, 2207, 1), Range16), $clone(new Range16.ptr(2250, 2273, 1), Range16), $clone(new Range16.ptr(2275, 2306, 1), Range16), $clone(new Range16.ptr(2362, 2364, 2), Range16), $clone(new Range16.ptr(2369, 2376, 1), Range16), $clone(new Range16.ptr(2381, 2385, 4), Range16), $clone(new Range16.ptr(2386, 2391, 1), Range16), $clone(new Range16.ptr(2402, 2403, 1), Range16), $clone(new Range16.ptr(2433, 2492, 59), Range16), $clone(new Range16.ptr(2497, 2500, 1), Range16), $clone(new Range16.ptr(2509, 2530, 21), Range16), $clone(new Range16.ptr(2531, 2558, 27), Range16), $clone(new Range16.ptr(2561, 2562, 1), Range16), $clone(new Range16.ptr(2620, 2625, 5), Range16), $clone(new Range16.ptr(2626, 2631, 5), Range16), $clone(new Range16.ptr(2632, 2635, 3), Range16), $clone(new Range16.ptr(2636, 2637, 1), Range16), $clone(new Range16.ptr(2641, 2672, 31), Range16), $clone(new Range16.ptr(2673, 2677, 4), Range16), $clone(new Range16.ptr(2689, 2690, 1), Range16), $clone(new Range16.ptr(2748, 2753, 5), Range16), $clone(new Range16.ptr(2754, 2757, 1), Range16), $clone(new Range16.ptr(2759, 2760, 1), Range16), $clone(new Range16.ptr(2765, 2786, 21), Range16), $clone(new Range16.ptr(2787, 2810, 23), Range16), $clone(new Range16.ptr(2811, 2815, 1), Range16), $clone(new Range16.ptr(2817, 2876, 59), Range16), $clone(new Range16.ptr(2879, 2881, 2), Range16), $clone(new Range16.ptr(2882, 2884, 1), Range16), $clone(new Range16.ptr(2893, 2901, 8), Range16), $clone(new Range16.ptr(2902, 2914, 12), Range16), $clone(new Range16.ptr(2915, 2946, 31), Range16), $clone(new Range16.ptr(3008, 3021, 13), Range16), $clone(new Range16.ptr(3072, 3076, 4), Range16), $clone(new Range16.ptr(3132, 3134, 2), Range16), $clone(new Range16.ptr(3135, 3136, 1), Range16), $clone(new Range16.ptr(3142, 3144, 1), Range16), $clone(new Range16.ptr(3146, 3149, 1), Range16), $clone(new Range16.ptr(3157, 3158, 1), Range16), $clone(new Range16.ptr(3170, 3171, 1), Range16), $clone(new Range16.ptr(3201, 3260, 59), Range16), $clone(new Range16.ptr(3263, 3270, 7), Range16), $clone(new Range16.ptr(3276, 3277, 1), Range16), $clone(new Range16.ptr(3298, 3299, 1), Range16), $clone(new Range16.ptr(3328, 3329, 1), Range16), $clone(new Range16.ptr(3387, 3388, 1), Range16), $clone(new Range16.ptr(3393, 3396, 1), Range16), $clone(new Range16.ptr(3405, 3426, 21), Range16), $clone(new Range16.ptr(3427, 3457, 30), Range16), $clone(new Range16.ptr(3530, 3538, 8), Range16), $clone(new Range16.ptr(3539, 3540, 1), Range16), $clone(new Range16.ptr(3542, 3633, 91), Range16), $clone(new Range16.ptr(3636, 3642, 1), Range16), $clone(new Range16.ptr(3655, 3662, 1), Range16), $clone(new Range16.ptr(3761, 3764, 3), Range16), $clone(new Range16.ptr(3765, 3772, 1), Range16), $clone(new Range16.ptr(3784, 3790, 1), Range16), $clone(new Range16.ptr(3864, 3865, 1), Range16), $clone(new Range16.ptr(3893, 3897, 2), Range16), $clone(new Range16.ptr(3953, 3966, 1), Range16), $clone(new Range16.ptr(3968, 3972, 1), Range16), $clone(new Range16.ptr(3974, 3975, 1), Range16), $clone(new Range16.ptr(3981, 3991, 1), Range16), $clone(new Range16.ptr(3993, 4028, 1), Range16), $clone(new Range16.ptr(4038, 4141, 103), Range16), $clone(new Range16.ptr(4142, 4144, 1), Range16), $clone(new Range16.ptr(4146, 4151, 1), Range16), $clone(new Range16.ptr(4153, 4154, 1), Range16), $clone(new Range16.ptr(4157, 4158, 1), Range16), $clone(new Range16.ptr(4184, 4185, 1), Range16), $clone(new Range16.ptr(4190, 4192, 1), Range16), $clone(new Range16.ptr(4209, 4212, 1), Range16), $clone(new Range16.ptr(4226, 4229, 3), Range16), $clone(new Range16.ptr(4230, 4237, 7), Range16), $clone(new Range16.ptr(4253, 4957, 704), Range16), $clone(new Range16.ptr(4958, 4959, 1), Range16), $clone(new Range16.ptr(5906, 5908, 1), Range16), $clone(new Range16.ptr(5938, 5939, 1), Range16), $clone(new Range16.ptr(5970, 5971, 1), Range16), $clone(new Range16.ptr(6002, 6003, 1), Range16), $clone(new Range16.ptr(6068, 6069, 1), Range16), $clone(new Range16.ptr(6071, 6077, 1), Range16), $clone(new Range16.ptr(6086, 6089, 3), Range16), $clone(new Range16.ptr(6090, 6099, 1), Range16), $clone(new Range16.ptr(6109, 6155, 46), Range16), $clone(new Range16.ptr(6156, 6157, 1), Range16), $clone(new Range16.ptr(6159, 6277, 118), Range16), $clone(new Range16.ptr(6278, 6313, 35), Range16), $clone(new Range16.ptr(6432, 6434, 1), Range16), $clone(new Range16.ptr(6439, 6440, 1), Range16), $clone(new Range16.ptr(6450, 6457, 7), Range16), $clone(new Range16.ptr(6458, 6459, 1), Range16), $clone(new Range16.ptr(6679, 6680, 1), Range16), $clone(new Range16.ptr(6683, 6742, 59), Range16), $clone(new Range16.ptr(6744, 6750, 1), Range16), $clone(new Range16.ptr(6752, 6754, 2), Range16), $clone(new Range16.ptr(6757, 6764, 1), Range16), $clone(new Range16.ptr(6771, 6780, 1), Range16), $clone(new Range16.ptr(6783, 6832, 49), Range16), $clone(new Range16.ptr(6833, 6845, 1), Range16), $clone(new Range16.ptr(6847, 6862, 1), Range16), $clone(new Range16.ptr(6912, 6915, 1), Range16), $clone(new Range16.ptr(6964, 6966, 2), Range16), $clone(new Range16.ptr(6967, 6970, 1), Range16), $clone(new Range16.ptr(6972, 6978, 6), Range16), $clone(new Range16.ptr(7019, 7027, 1), Range16), $clone(new Range16.ptr(7040, 7041, 1), Range16), $clone(new Range16.ptr(7074, 7077, 1), Range16), $clone(new Range16.ptr(7080, 7081, 1), Range16), $clone(new Range16.ptr(7083, 7085, 1), Range16), $clone(new Range16.ptr(7142, 7144, 2), Range16), $clone(new Range16.ptr(7145, 7149, 4), Range16), $clone(new Range16.ptr(7151, 7153, 1), Range16), $clone(new Range16.ptr(7212, 7219, 1), Range16), $clone(new Range16.ptr(7222, 7223, 1), Range16), $clone(new Range16.ptr(7376, 7378, 1), Range16), $clone(new Range16.ptr(7380, 7392, 1), Range16), $clone(new Range16.ptr(7394, 7400, 1), Range16), $clone(new Range16.ptr(7405, 7412, 7), Range16), $clone(new Range16.ptr(7416, 7417, 1), Range16), $clone(new Range16.ptr(7616, 7679, 1), Range16), $clone(new Range16.ptr(8400, 8412, 1), Range16), $clone(new Range16.ptr(8417, 8421, 4), Range16), $clone(new Range16.ptr(8422, 8432, 1), Range16), $clone(new Range16.ptr(11503, 11505, 1), Range16), $clone(new Range16.ptr(11647, 11744, 97), Range16), $clone(new Range16.ptr(11745, 11775, 1), Range16), $clone(new Range16.ptr(12330, 12333, 1), Range16), $clone(new Range16.ptr(12441, 12442, 1), Range16), $clone(new Range16.ptr(42607, 42612, 5), Range16), $clone(new Range16.ptr(42613, 42621, 1), Range16), $clone(new Range16.ptr(42654, 42655, 1), Range16), $clone(new Range16.ptr(42736, 42737, 1), Range16), $clone(new Range16.ptr(43010, 43014, 4), Range16), $clone(new Range16.ptr(43019, 43045, 26), Range16), $clone(new Range16.ptr(43046, 43052, 6), Range16), $clone(new Range16.ptr(43204, 43205, 1), Range16), $clone(new Range16.ptr(43232, 43249, 1), Range16), $clone(new Range16.ptr(43263, 43302, 39), Range16), $clone(new Range16.ptr(43303, 43309, 1), Range16), $clone(new Range16.ptr(43335, 43345, 1), Range16), $clone(new Range16.ptr(43392, 43394, 1), Range16), $clone(new Range16.ptr(43443, 43446, 3), Range16), $clone(new Range16.ptr(43447, 43449, 1), Range16), $clone(new Range16.ptr(43452, 43453, 1), Range16), $clone(new Range16.ptr(43493, 43561, 68), Range16), $clone(new Range16.ptr(43562, 43566, 1), Range16), $clone(new Range16.ptr(43569, 43570, 1), Range16), $clone(new Range16.ptr(43573, 43574, 1), Range16), $clone(new Range16.ptr(43587, 43596, 9), Range16), $clone(new Range16.ptr(43644, 43696, 52), Range16), $clone(new Range16.ptr(43698, 43700, 1), Range16), $clone(new Range16.ptr(43703, 43704, 1), Range16), $clone(new Range16.ptr(43710, 43711, 1), Range16), $clone(new Range16.ptr(43713, 43756, 43), Range16), $clone(new Range16.ptr(43757, 43766, 9), Range16), $clone(new Range16.ptr(44005, 44008, 3), Range16), $clone(new Range16.ptr(44013, 64286, 20273), Range16), $clone(new Range16.ptr(65024, 65039, 1), Range16), $clone(new Range16.ptr(65056, 65071, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(66045, 66272, 227), Range32), $clone(new Range32.ptr(66422, 66426, 1), Range32), $clone(new Range32.ptr(68097, 68099, 1), Range32), $clone(new Range32.ptr(68101, 68102, 1), Range32), $clone(new Range32.ptr(68108, 68111, 1), Range32), $clone(new Range32.ptr(68152, 68154, 1), Range32), $clone(new Range32.ptr(68159, 68325, 166), Range32), $clone(new Range32.ptr(68326, 68900, 574), Range32), $clone(new Range32.ptr(68901, 68903, 1), Range32), $clone(new Range32.ptr(69291, 69292, 1), Range32), $clone(new Range32.ptr(69373, 69375, 1), Range32), $clone(new Range32.ptr(69446, 69456, 1), Range32), $clone(new Range32.ptr(69506, 69509, 1), Range32), $clone(new Range32.ptr(69633, 69688, 55), Range32), $clone(new Range32.ptr(69689, 69702, 1), Range32), $clone(new Range32.ptr(69744, 69747, 3), Range32), $clone(new Range32.ptr(69748, 69759, 11), Range32), $clone(new Range32.ptr(69760, 69761, 1), Range32), $clone(new Range32.ptr(69811, 69814, 1), Range32), $clone(new Range32.ptr(69817, 69818, 1), Range32), $clone(new Range32.ptr(69826, 69888, 62), Range32), $clone(new Range32.ptr(69889, 69890, 1), Range32), $clone(new Range32.ptr(69927, 69931, 1), Range32), $clone(new Range32.ptr(69933, 69940, 1), Range32), $clone(new Range32.ptr(70003, 70016, 13), Range32), $clone(new Range32.ptr(70017, 70070, 53), Range32), $clone(new Range32.ptr(70071, 70078, 1), Range32), $clone(new Range32.ptr(70089, 70092, 1), Range32), $clone(new Range32.ptr(70095, 70191, 96), Range32), $clone(new Range32.ptr(70192, 70193, 1), Range32), $clone(new Range32.ptr(70196, 70198, 2), Range32), $clone(new Range32.ptr(70199, 70206, 7), Range32), $clone(new Range32.ptr(70209, 70367, 158), Range32), $clone(new Range32.ptr(70371, 70378, 1), Range32), $clone(new Range32.ptr(70400, 70401, 1), Range32), $clone(new Range32.ptr(70459, 70460, 1), Range32), $clone(new Range32.ptr(70464, 70502, 38), Range32), $clone(new Range32.ptr(70503, 70508, 1), Range32), $clone(new Range32.ptr(70512, 70516, 1), Range32), $clone(new Range32.ptr(70712, 70719, 1), Range32), $clone(new Range32.ptr(70722, 70724, 1), Range32), $clone(new Range32.ptr(70726, 70750, 24), Range32), $clone(new Range32.ptr(70835, 70840, 1), Range32), $clone(new Range32.ptr(70842, 70847, 5), Range32), $clone(new Range32.ptr(70848, 70850, 2), Range32), $clone(new Range32.ptr(70851, 71090, 239), Range32), $clone(new Range32.ptr(71091, 71093, 1), Range32), $clone(new Range32.ptr(71100, 71101, 1), Range32), $clone(new Range32.ptr(71103, 71104, 1), Range32), $clone(new Range32.ptr(71132, 71133, 1), Range32), $clone(new Range32.ptr(71219, 71226, 1), Range32), $clone(new Range32.ptr(71229, 71231, 2), Range32), $clone(new Range32.ptr(71232, 71339, 107), Range32), $clone(new Range32.ptr(71341, 71344, 3), Range32), $clone(new Range32.ptr(71345, 71349, 1), Range32), $clone(new Range32.ptr(71351, 71453, 102), Range32), $clone(new Range32.ptr(71454, 71455, 1), Range32), $clone(new Range32.ptr(71458, 71461, 1), Range32), $clone(new Range32.ptr(71463, 71467, 1), Range32), $clone(new Range32.ptr(71727, 71735, 1), Range32), $clone(new Range32.ptr(71737, 71738, 1), Range32), $clone(new Range32.ptr(71995, 71996, 1), Range32), $clone(new Range32.ptr(71998, 72003, 5), Range32), $clone(new Range32.ptr(72148, 72151, 1), Range32), $clone(new Range32.ptr(72154, 72155, 1), Range32), $clone(new Range32.ptr(72160, 72193, 33), Range32), $clone(new Range32.ptr(72194, 72202, 1), Range32), $clone(new Range32.ptr(72243, 72248, 1), Range32), $clone(new Range32.ptr(72251, 72254, 1), Range32), $clone(new Range32.ptr(72263, 72273, 10), Range32), $clone(new Range32.ptr(72274, 72278, 1), Range32), $clone(new Range32.ptr(72281, 72283, 1), Range32), $clone(new Range32.ptr(72330, 72342, 1), Range32), $clone(new Range32.ptr(72344, 72345, 1), Range32), $clone(new Range32.ptr(72752, 72758, 1), Range32), $clone(new Range32.ptr(72760, 72765, 1), Range32), $clone(new Range32.ptr(72767, 72850, 83), Range32), $clone(new Range32.ptr(72851, 72871, 1), Range32), $clone(new Range32.ptr(72874, 72880, 1), Range32), $clone(new Range32.ptr(72882, 72883, 1), Range32), $clone(new Range32.ptr(72885, 72886, 1), Range32), $clone(new Range32.ptr(73009, 73014, 1), Range32), $clone(new Range32.ptr(73018, 73020, 2), Range32), $clone(new Range32.ptr(73021, 73023, 2), Range32), $clone(new Range32.ptr(73024, 73029, 1), Range32), $clone(new Range32.ptr(73031, 73104, 73), Range32), $clone(new Range32.ptr(73105, 73109, 4), Range32), $clone(new Range32.ptr(73111, 73459, 348), Range32), $clone(new Range32.ptr(73460, 73472, 12), Range32), $clone(new Range32.ptr(73473, 73526, 53), Range32), $clone(new Range32.ptr(73527, 73530, 1), Range32), $clone(new Range32.ptr(73536, 73538, 2), Range32), $clone(new Range32.ptr(78912, 78919, 7), Range32), $clone(new Range32.ptr(78920, 78933, 1), Range32), $clone(new Range32.ptr(92912, 92916, 1), Range32), $clone(new Range32.ptr(92976, 92982, 1), Range32), $clone(new Range32.ptr(94031, 94095, 64), Range32), $clone(new Range32.ptr(94096, 94098, 1), Range32), $clone(new Range32.ptr(94180, 113821, 19641), Range32), $clone(new Range32.ptr(113822, 118528, 4706), Range32), $clone(new Range32.ptr(118529, 118573, 1), Range32), $clone(new Range32.ptr(118576, 118598, 1), Range32), $clone(new Range32.ptr(119143, 119145, 1), Range32), $clone(new Range32.ptr(119163, 119170, 1), Range32), $clone(new Range32.ptr(119173, 119179, 1), Range32), $clone(new Range32.ptr(119210, 119213, 1), Range32), $clone(new Range32.ptr(119362, 119364, 1), Range32), $clone(new Range32.ptr(121344, 121398, 1), Range32), $clone(new Range32.ptr(121403, 121452, 1), Range32), $clone(new Range32.ptr(121461, 121476, 15), Range32), $clone(new Range32.ptr(121499, 121503, 1), Range32), $clone(new Range32.ptr(121505, 121519, 1), Range32), $clone(new Range32.ptr(122880, 122886, 1), Range32), $clone(new Range32.ptr(122888, 122904, 1), Range32), $clone(new Range32.ptr(122907, 122913, 1), Range32), $clone(new Range32.ptr(122915, 122916, 1), Range32), $clone(new Range32.ptr(122918, 122922, 1), Range32), $clone(new Range32.ptr(123023, 123184, 161), Range32), $clone(new Range32.ptr(123185, 123190, 1), Range32), $clone(new Range32.ptr(123566, 123628, 62), Range32), $clone(new Range32.ptr(123629, 123631, 1), Range32), $clone(new Range32.ptr(124140, 124143, 1), Range32), $clone(new Range32.ptr(125136, 125142, 1), Range32), $clone(new Range32.ptr(125252, 125258, 1), Range32), $clone(new Range32.ptr(917760, 917999, 1), Range32)]), 0); + _N = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(48, 57, 1), Range16), $clone(new Range16.ptr(178, 179, 1), Range16), $clone(new Range16.ptr(185, 188, 3), Range16), $clone(new Range16.ptr(189, 190, 1), Range16), $clone(new Range16.ptr(1632, 1641, 1), Range16), $clone(new Range16.ptr(1776, 1785, 1), Range16), $clone(new Range16.ptr(1984, 1993, 1), Range16), $clone(new Range16.ptr(2406, 2415, 1), Range16), $clone(new Range16.ptr(2534, 2543, 1), Range16), $clone(new Range16.ptr(2548, 2553, 1), Range16), $clone(new Range16.ptr(2662, 2671, 1), Range16), $clone(new Range16.ptr(2790, 2799, 1), Range16), $clone(new Range16.ptr(2918, 2927, 1), Range16), $clone(new Range16.ptr(2930, 2935, 1), Range16), $clone(new Range16.ptr(3046, 3058, 1), Range16), $clone(new Range16.ptr(3174, 3183, 1), Range16), $clone(new Range16.ptr(3192, 3198, 1), Range16), $clone(new Range16.ptr(3302, 3311, 1), Range16), $clone(new Range16.ptr(3416, 3422, 1), Range16), $clone(new Range16.ptr(3430, 3448, 1), Range16), $clone(new Range16.ptr(3558, 3567, 1), Range16), $clone(new Range16.ptr(3664, 3673, 1), Range16), $clone(new Range16.ptr(3792, 3801, 1), Range16), $clone(new Range16.ptr(3872, 3891, 1), Range16), $clone(new Range16.ptr(4160, 4169, 1), Range16), $clone(new Range16.ptr(4240, 4249, 1), Range16), $clone(new Range16.ptr(4969, 4988, 1), Range16), $clone(new Range16.ptr(5870, 5872, 1), Range16), $clone(new Range16.ptr(6112, 6121, 1), Range16), $clone(new Range16.ptr(6128, 6137, 1), Range16), $clone(new Range16.ptr(6160, 6169, 1), Range16), $clone(new Range16.ptr(6470, 6479, 1), Range16), $clone(new Range16.ptr(6608, 6618, 1), Range16), $clone(new Range16.ptr(6784, 6793, 1), Range16), $clone(new Range16.ptr(6800, 6809, 1), Range16), $clone(new Range16.ptr(6992, 7001, 1), Range16), $clone(new Range16.ptr(7088, 7097, 1), Range16), $clone(new Range16.ptr(7232, 7241, 1), Range16), $clone(new Range16.ptr(7248, 7257, 1), Range16), $clone(new Range16.ptr(8304, 8308, 4), Range16), $clone(new Range16.ptr(8309, 8313, 1), Range16), $clone(new Range16.ptr(8320, 8329, 1), Range16), $clone(new Range16.ptr(8528, 8578, 1), Range16), $clone(new Range16.ptr(8581, 8585, 1), Range16), $clone(new Range16.ptr(9312, 9371, 1), Range16), $clone(new Range16.ptr(9450, 9471, 1), Range16), $clone(new Range16.ptr(10102, 10131, 1), Range16), $clone(new Range16.ptr(11517, 12295, 778), Range16), $clone(new Range16.ptr(12321, 12329, 1), Range16), $clone(new Range16.ptr(12344, 12346, 1), Range16), $clone(new Range16.ptr(12690, 12693, 1), Range16), $clone(new Range16.ptr(12832, 12841, 1), Range16), $clone(new Range16.ptr(12872, 12879, 1), Range16), $clone(new Range16.ptr(12881, 12895, 1), Range16), $clone(new Range16.ptr(12928, 12937, 1), Range16), $clone(new Range16.ptr(12977, 12991, 1), Range16), $clone(new Range16.ptr(42528, 42537, 1), Range16), $clone(new Range16.ptr(42726, 42735, 1), Range16), $clone(new Range16.ptr(43056, 43061, 1), Range16), $clone(new Range16.ptr(43216, 43225, 1), Range16), $clone(new Range16.ptr(43264, 43273, 1), Range16), $clone(new Range16.ptr(43472, 43481, 1), Range16), $clone(new Range16.ptr(43504, 43513, 1), Range16), $clone(new Range16.ptr(43600, 43609, 1), Range16), $clone(new Range16.ptr(44016, 44025, 1), Range16), $clone(new Range16.ptr(65296, 65305, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65799, 65843, 1), Range32), $clone(new Range32.ptr(65856, 65912, 1), Range32), $clone(new Range32.ptr(65930, 65931, 1), Range32), $clone(new Range32.ptr(66273, 66299, 1), Range32), $clone(new Range32.ptr(66336, 66339, 1), Range32), $clone(new Range32.ptr(66369, 66378, 9), Range32), $clone(new Range32.ptr(66513, 66517, 1), Range32), $clone(new Range32.ptr(66720, 66729, 1), Range32), $clone(new Range32.ptr(67672, 67679, 1), Range32), $clone(new Range32.ptr(67705, 67711, 1), Range32), $clone(new Range32.ptr(67751, 67759, 1), Range32), $clone(new Range32.ptr(67835, 67839, 1), Range32), $clone(new Range32.ptr(67862, 67867, 1), Range32), $clone(new Range32.ptr(68028, 68029, 1), Range32), $clone(new Range32.ptr(68032, 68047, 1), Range32), $clone(new Range32.ptr(68050, 68095, 1), Range32), $clone(new Range32.ptr(68160, 68168, 1), Range32), $clone(new Range32.ptr(68221, 68222, 1), Range32), $clone(new Range32.ptr(68253, 68255, 1), Range32), $clone(new Range32.ptr(68331, 68335, 1), Range32), $clone(new Range32.ptr(68440, 68447, 1), Range32), $clone(new Range32.ptr(68472, 68479, 1), Range32), $clone(new Range32.ptr(68521, 68527, 1), Range32), $clone(new Range32.ptr(68858, 68863, 1), Range32), $clone(new Range32.ptr(68912, 68921, 1), Range32), $clone(new Range32.ptr(69216, 69246, 1), Range32), $clone(new Range32.ptr(69405, 69414, 1), Range32), $clone(new Range32.ptr(69457, 69460, 1), Range32), $clone(new Range32.ptr(69573, 69579, 1), Range32), $clone(new Range32.ptr(69714, 69743, 1), Range32), $clone(new Range32.ptr(69872, 69881, 1), Range32), $clone(new Range32.ptr(69942, 69951, 1), Range32), $clone(new Range32.ptr(70096, 70105, 1), Range32), $clone(new Range32.ptr(70113, 70132, 1), Range32), $clone(new Range32.ptr(70384, 70393, 1), Range32), $clone(new Range32.ptr(70736, 70745, 1), Range32), $clone(new Range32.ptr(70864, 70873, 1), Range32), $clone(new Range32.ptr(71248, 71257, 1), Range32), $clone(new Range32.ptr(71360, 71369, 1), Range32), $clone(new Range32.ptr(71472, 71483, 1), Range32), $clone(new Range32.ptr(71904, 71922, 1), Range32), $clone(new Range32.ptr(72016, 72025, 1), Range32), $clone(new Range32.ptr(72784, 72812, 1), Range32), $clone(new Range32.ptr(73040, 73049, 1), Range32), $clone(new Range32.ptr(73120, 73129, 1), Range32), $clone(new Range32.ptr(73552, 73561, 1), Range32), $clone(new Range32.ptr(73664, 73684, 1), Range32), $clone(new Range32.ptr(74752, 74862, 1), Range32), $clone(new Range32.ptr(92768, 92777, 1), Range32), $clone(new Range32.ptr(92864, 92873, 1), Range32), $clone(new Range32.ptr(93008, 93017, 1), Range32), $clone(new Range32.ptr(93019, 93025, 1), Range32), $clone(new Range32.ptr(93824, 93846, 1), Range32), $clone(new Range32.ptr(119488, 119507, 1), Range32), $clone(new Range32.ptr(119520, 119539, 1), Range32), $clone(new Range32.ptr(119648, 119672, 1), Range32), $clone(new Range32.ptr(120782, 120831, 1), Range32), $clone(new Range32.ptr(123200, 123209, 1), Range32), $clone(new Range32.ptr(123632, 123641, 1), Range32), $clone(new Range32.ptr(124144, 124153, 1), Range32), $clone(new Range32.ptr(125127, 125135, 1), Range32), $clone(new Range32.ptr(125264, 125273, 1), Range32), $clone(new Range32.ptr(126065, 126123, 1), Range32), $clone(new Range32.ptr(126125, 126127, 1), Range32), $clone(new Range32.ptr(126129, 126132, 1), Range32), $clone(new Range32.ptr(126209, 126253, 1), Range32), $clone(new Range32.ptr(126255, 126269, 1), Range32), $clone(new Range32.ptr(127232, 127244, 1), Range32), $clone(new Range32.ptr(130032, 130041, 1), Range32)]), 4); + _Nd = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(48, 57, 1), Range16), $clone(new Range16.ptr(1632, 1641, 1), Range16), $clone(new Range16.ptr(1776, 1785, 1), Range16), $clone(new Range16.ptr(1984, 1993, 1), Range16), $clone(new Range16.ptr(2406, 2415, 1), Range16), $clone(new Range16.ptr(2534, 2543, 1), Range16), $clone(new Range16.ptr(2662, 2671, 1), Range16), $clone(new Range16.ptr(2790, 2799, 1), Range16), $clone(new Range16.ptr(2918, 2927, 1), Range16), $clone(new Range16.ptr(3046, 3055, 1), Range16), $clone(new Range16.ptr(3174, 3183, 1), Range16), $clone(new Range16.ptr(3302, 3311, 1), Range16), $clone(new Range16.ptr(3430, 3439, 1), Range16), $clone(new Range16.ptr(3558, 3567, 1), Range16), $clone(new Range16.ptr(3664, 3673, 1), Range16), $clone(new Range16.ptr(3792, 3801, 1), Range16), $clone(new Range16.ptr(3872, 3881, 1), Range16), $clone(new Range16.ptr(4160, 4169, 1), Range16), $clone(new Range16.ptr(4240, 4249, 1), Range16), $clone(new Range16.ptr(6112, 6121, 1), Range16), $clone(new Range16.ptr(6160, 6169, 1), Range16), $clone(new Range16.ptr(6470, 6479, 1), Range16), $clone(new Range16.ptr(6608, 6617, 1), Range16), $clone(new Range16.ptr(6784, 6793, 1), Range16), $clone(new Range16.ptr(6800, 6809, 1), Range16), $clone(new Range16.ptr(6992, 7001, 1), Range16), $clone(new Range16.ptr(7088, 7097, 1), Range16), $clone(new Range16.ptr(7232, 7241, 1), Range16), $clone(new Range16.ptr(7248, 7257, 1), Range16), $clone(new Range16.ptr(42528, 42537, 1), Range16), $clone(new Range16.ptr(43216, 43225, 1), Range16), $clone(new Range16.ptr(43264, 43273, 1), Range16), $clone(new Range16.ptr(43472, 43481, 1), Range16), $clone(new Range16.ptr(43504, 43513, 1), Range16), $clone(new Range16.ptr(43600, 43609, 1), Range16), $clone(new Range16.ptr(44016, 44025, 1), Range16), $clone(new Range16.ptr(65296, 65305, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(66720, 66729, 1), Range32), $clone(new Range32.ptr(68912, 68921, 1), Range32), $clone(new Range32.ptr(69734, 69743, 1), Range32), $clone(new Range32.ptr(69872, 69881, 1), Range32), $clone(new Range32.ptr(69942, 69951, 1), Range32), $clone(new Range32.ptr(70096, 70105, 1), Range32), $clone(new Range32.ptr(70384, 70393, 1), Range32), $clone(new Range32.ptr(70736, 70745, 1), Range32), $clone(new Range32.ptr(70864, 70873, 1), Range32), $clone(new Range32.ptr(71248, 71257, 1), Range32), $clone(new Range32.ptr(71360, 71369, 1), Range32), $clone(new Range32.ptr(71472, 71481, 1), Range32), $clone(new Range32.ptr(71904, 71913, 1), Range32), $clone(new Range32.ptr(72016, 72025, 1), Range32), $clone(new Range32.ptr(72784, 72793, 1), Range32), $clone(new Range32.ptr(73040, 73049, 1), Range32), $clone(new Range32.ptr(73120, 73129, 1), Range32), $clone(new Range32.ptr(73552, 73561, 1), Range32), $clone(new Range32.ptr(92768, 92777, 1), Range32), $clone(new Range32.ptr(92864, 92873, 1), Range32), $clone(new Range32.ptr(93008, 93017, 1), Range32), $clone(new Range32.ptr(120782, 120831, 1), Range32), $clone(new Range32.ptr(123200, 123209, 1), Range32), $clone(new Range32.ptr(123632, 123641, 1), Range32), $clone(new Range32.ptr(124144, 124153, 1), Range32), $clone(new Range32.ptr(125264, 125273, 1), Range32), $clone(new Range32.ptr(130032, 130041, 1), Range32)]), 1); _Nl = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(5870, 5872, 1), Range16), $clone(new Range16.ptr(8544, 8578, 1), Range16), $clone(new Range16.ptr(8581, 8584, 1), Range16), $clone(new Range16.ptr(12295, 12321, 26), Range16), $clone(new Range16.ptr(12322, 12329, 1), Range16), $clone(new Range16.ptr(12344, 12346, 1), Range16), $clone(new Range16.ptr(42726, 42735, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65856, 65908, 1), Range32), $clone(new Range32.ptr(66369, 66378, 9), Range32), $clone(new Range32.ptr(66513, 66517, 1), Range32), $clone(new Range32.ptr(74752, 74862, 1), Range32)]), 0); - _No = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(178, 179, 1), Range16), $clone(new Range16.ptr(185, 188, 3), Range16), $clone(new Range16.ptr(189, 190, 1), Range16), $clone(new Range16.ptr(2548, 2553, 1), Range16), $clone(new Range16.ptr(2930, 2935, 1), Range16), $clone(new Range16.ptr(3056, 3058, 1), Range16), $clone(new Range16.ptr(3192, 3198, 1), Range16), $clone(new Range16.ptr(3416, 3422, 1), Range16), $clone(new Range16.ptr(3440, 3448, 1), Range16), $clone(new Range16.ptr(3882, 3891, 1), Range16), $clone(new Range16.ptr(4969, 4988, 1), Range16), $clone(new Range16.ptr(6128, 6137, 1), Range16), $clone(new Range16.ptr(6618, 8304, 1686), Range16), $clone(new Range16.ptr(8308, 8313, 1), Range16), $clone(new Range16.ptr(8320, 8329, 1), Range16), $clone(new Range16.ptr(8528, 8543, 1), Range16), $clone(new Range16.ptr(8585, 9312, 727), Range16), $clone(new Range16.ptr(9313, 9371, 1), Range16), $clone(new Range16.ptr(9450, 9471, 1), Range16), $clone(new Range16.ptr(10102, 10131, 1), Range16), $clone(new Range16.ptr(11517, 12690, 1173), Range16), $clone(new Range16.ptr(12691, 12693, 1), Range16), $clone(new Range16.ptr(12832, 12841, 1), Range16), $clone(new Range16.ptr(12872, 12879, 1), Range16), $clone(new Range16.ptr(12881, 12895, 1), Range16), $clone(new Range16.ptr(12928, 12937, 1), Range16), $clone(new Range16.ptr(12977, 12991, 1), Range16), $clone(new Range16.ptr(43056, 43061, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65799, 65843, 1), Range32), $clone(new Range32.ptr(65909, 65912, 1), Range32), $clone(new Range32.ptr(65930, 65931, 1), Range32), $clone(new Range32.ptr(66273, 66299, 1), Range32), $clone(new Range32.ptr(66336, 66339, 1), Range32), $clone(new Range32.ptr(67672, 67679, 1), Range32), $clone(new Range32.ptr(67705, 67711, 1), Range32), $clone(new Range32.ptr(67751, 67759, 1), Range32), $clone(new Range32.ptr(67835, 67839, 1), Range32), $clone(new Range32.ptr(67862, 67867, 1), Range32), $clone(new Range32.ptr(68028, 68029, 1), Range32), $clone(new Range32.ptr(68032, 68047, 1), Range32), $clone(new Range32.ptr(68050, 68095, 1), Range32), $clone(new Range32.ptr(68160, 68168, 1), Range32), $clone(new Range32.ptr(68221, 68222, 1), Range32), $clone(new Range32.ptr(68253, 68255, 1), Range32), $clone(new Range32.ptr(68331, 68335, 1), Range32), $clone(new Range32.ptr(68440, 68447, 1), Range32), $clone(new Range32.ptr(68472, 68479, 1), Range32), $clone(new Range32.ptr(68521, 68527, 1), Range32), $clone(new Range32.ptr(68858, 68863, 1), Range32), $clone(new Range32.ptr(69216, 69246, 1), Range32), $clone(new Range32.ptr(69405, 69414, 1), Range32), $clone(new Range32.ptr(69457, 69460, 1), Range32), $clone(new Range32.ptr(69573, 69579, 1), Range32), $clone(new Range32.ptr(69714, 69733, 1), Range32), $clone(new Range32.ptr(70113, 70132, 1), Range32), $clone(new Range32.ptr(71482, 71483, 1), Range32), $clone(new Range32.ptr(71914, 71922, 1), Range32), $clone(new Range32.ptr(72794, 72812, 1), Range32), $clone(new Range32.ptr(73664, 73684, 1), Range32), $clone(new Range32.ptr(93019, 93025, 1), Range32), $clone(new Range32.ptr(93824, 93846, 1), Range32), $clone(new Range32.ptr(119520, 119539, 1), Range32), $clone(new Range32.ptr(119648, 119672, 1), Range32), $clone(new Range32.ptr(125127, 125135, 1), Range32), $clone(new Range32.ptr(126065, 126123, 1), Range32), $clone(new Range32.ptr(126125, 126127, 1), Range32), $clone(new Range32.ptr(126129, 126132, 1), Range32), $clone(new Range32.ptr(126209, 126253, 1), Range32), $clone(new Range32.ptr(126255, 126269, 1), Range32), $clone(new Range32.ptr(127232, 127244, 1), Range32)]), 3); - _P = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(33, 35, 1), Range16), $clone(new Range16.ptr(37, 42, 1), Range16), $clone(new Range16.ptr(44, 47, 1), Range16), $clone(new Range16.ptr(58, 59, 1), Range16), $clone(new Range16.ptr(63, 64, 1), Range16), $clone(new Range16.ptr(91, 93, 1), Range16), $clone(new Range16.ptr(95, 123, 28), Range16), $clone(new Range16.ptr(125, 161, 36), Range16), $clone(new Range16.ptr(167, 171, 4), Range16), $clone(new Range16.ptr(182, 183, 1), Range16), $clone(new Range16.ptr(187, 191, 4), Range16), $clone(new Range16.ptr(894, 903, 9), Range16), $clone(new Range16.ptr(1370, 1375, 1), Range16), $clone(new Range16.ptr(1417, 1418, 1), Range16), $clone(new Range16.ptr(1470, 1472, 2), Range16), $clone(new Range16.ptr(1475, 1478, 3), Range16), $clone(new Range16.ptr(1523, 1524, 1), Range16), $clone(new Range16.ptr(1545, 1546, 1), Range16), $clone(new Range16.ptr(1548, 1549, 1), Range16), $clone(new Range16.ptr(1563, 1566, 3), Range16), $clone(new Range16.ptr(1567, 1642, 75), Range16), $clone(new Range16.ptr(1643, 1645, 1), Range16), $clone(new Range16.ptr(1748, 1792, 44), Range16), $clone(new Range16.ptr(1793, 1805, 1), Range16), $clone(new Range16.ptr(2039, 2041, 1), Range16), $clone(new Range16.ptr(2096, 2110, 1), Range16), $clone(new Range16.ptr(2142, 2404, 262), Range16), $clone(new Range16.ptr(2405, 2416, 11), Range16), $clone(new Range16.ptr(2557, 2678, 121), Range16), $clone(new Range16.ptr(2800, 3191, 391), Range16), $clone(new Range16.ptr(3204, 3572, 368), Range16), $clone(new Range16.ptr(3663, 3674, 11), Range16), $clone(new Range16.ptr(3675, 3844, 169), Range16), $clone(new Range16.ptr(3845, 3858, 1), Range16), $clone(new Range16.ptr(3860, 3898, 38), Range16), $clone(new Range16.ptr(3899, 3901, 1), Range16), $clone(new Range16.ptr(3973, 4048, 75), Range16), $clone(new Range16.ptr(4049, 4052, 1), Range16), $clone(new Range16.ptr(4057, 4058, 1), Range16), $clone(new Range16.ptr(4170, 4175, 1), Range16), $clone(new Range16.ptr(4347, 4960, 613), Range16), $clone(new Range16.ptr(4961, 4968, 1), Range16), $clone(new Range16.ptr(5120, 5742, 622), Range16), $clone(new Range16.ptr(5787, 5788, 1), Range16), $clone(new Range16.ptr(5867, 5869, 1), Range16), $clone(new Range16.ptr(5941, 5942, 1), Range16), $clone(new Range16.ptr(6100, 6102, 1), Range16), $clone(new Range16.ptr(6104, 6106, 1), Range16), $clone(new Range16.ptr(6144, 6154, 1), Range16), $clone(new Range16.ptr(6468, 6469, 1), Range16), $clone(new Range16.ptr(6686, 6687, 1), Range16), $clone(new Range16.ptr(6816, 6822, 1), Range16), $clone(new Range16.ptr(6824, 6829, 1), Range16), $clone(new Range16.ptr(7002, 7008, 1), Range16), $clone(new Range16.ptr(7164, 7167, 1), Range16), $clone(new Range16.ptr(7227, 7231, 1), Range16), $clone(new Range16.ptr(7294, 7295, 1), Range16), $clone(new Range16.ptr(7360, 7367, 1), Range16), $clone(new Range16.ptr(7379, 8208, 829), Range16), $clone(new Range16.ptr(8209, 8231, 1), Range16), $clone(new Range16.ptr(8240, 8259, 1), Range16), $clone(new Range16.ptr(8261, 8273, 1), Range16), $clone(new Range16.ptr(8275, 8286, 1), Range16), $clone(new Range16.ptr(8317, 8318, 1), Range16), $clone(new Range16.ptr(8333, 8334, 1), Range16), $clone(new Range16.ptr(8968, 8971, 1), Range16), $clone(new Range16.ptr(9001, 9002, 1), Range16), $clone(new Range16.ptr(10088, 10101, 1), Range16), $clone(new Range16.ptr(10181, 10182, 1), Range16), $clone(new Range16.ptr(10214, 10223, 1), Range16), $clone(new Range16.ptr(10627, 10648, 1), Range16), $clone(new Range16.ptr(10712, 10715, 1), Range16), $clone(new Range16.ptr(10748, 10749, 1), Range16), $clone(new Range16.ptr(11513, 11516, 1), Range16), $clone(new Range16.ptr(11518, 11519, 1), Range16), $clone(new Range16.ptr(11632, 11776, 144), Range16), $clone(new Range16.ptr(11777, 11822, 1), Range16), $clone(new Range16.ptr(11824, 11855, 1), Range16), $clone(new Range16.ptr(11858, 12289, 431), Range16), $clone(new Range16.ptr(12290, 12291, 1), Range16), $clone(new Range16.ptr(12296, 12305, 1), Range16), $clone(new Range16.ptr(12308, 12319, 1), Range16), $clone(new Range16.ptr(12336, 12349, 13), Range16), $clone(new Range16.ptr(12448, 12539, 91), Range16), $clone(new Range16.ptr(42238, 42239, 1), Range16), $clone(new Range16.ptr(42509, 42511, 1), Range16), $clone(new Range16.ptr(42611, 42622, 11), Range16), $clone(new Range16.ptr(42738, 42743, 1), Range16), $clone(new Range16.ptr(43124, 43127, 1), Range16), $clone(new Range16.ptr(43214, 43215, 1), Range16), $clone(new Range16.ptr(43256, 43258, 1), Range16), $clone(new Range16.ptr(43260, 43310, 50), Range16), $clone(new Range16.ptr(43311, 43359, 48), Range16), $clone(new Range16.ptr(43457, 43469, 1), Range16), $clone(new Range16.ptr(43486, 43487, 1), Range16), $clone(new Range16.ptr(43612, 43615, 1), Range16), $clone(new Range16.ptr(43742, 43743, 1), Range16), $clone(new Range16.ptr(43760, 43761, 1), Range16), $clone(new Range16.ptr(44011, 64830, 20819), Range16), $clone(new Range16.ptr(64831, 65040, 209), Range16), $clone(new Range16.ptr(65041, 65049, 1), Range16), $clone(new Range16.ptr(65072, 65106, 1), Range16), $clone(new Range16.ptr(65108, 65121, 1), Range16), $clone(new Range16.ptr(65123, 65128, 5), Range16), $clone(new Range16.ptr(65130, 65131, 1), Range16), $clone(new Range16.ptr(65281, 65283, 1), Range16), $clone(new Range16.ptr(65285, 65290, 1), Range16), $clone(new Range16.ptr(65292, 65295, 1), Range16), $clone(new Range16.ptr(65306, 65307, 1), Range16), $clone(new Range16.ptr(65311, 65312, 1), Range16), $clone(new Range16.ptr(65339, 65341, 1), Range16), $clone(new Range16.ptr(65343, 65371, 28), Range16), $clone(new Range16.ptr(65373, 65375, 2), Range16), $clone(new Range16.ptr(65376, 65381, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65792, 65794, 1), Range32), $clone(new Range32.ptr(66463, 66512, 49), Range32), $clone(new Range32.ptr(66927, 67671, 744), Range32), $clone(new Range32.ptr(67871, 67903, 32), Range32), $clone(new Range32.ptr(68176, 68184, 1), Range32), $clone(new Range32.ptr(68223, 68336, 113), Range32), $clone(new Range32.ptr(68337, 68342, 1), Range32), $clone(new Range32.ptr(68409, 68415, 1), Range32), $clone(new Range32.ptr(68505, 68508, 1), Range32), $clone(new Range32.ptr(69293, 69461, 168), Range32), $clone(new Range32.ptr(69462, 69465, 1), Range32), $clone(new Range32.ptr(69703, 69709, 1), Range32), $clone(new Range32.ptr(69819, 69820, 1), Range32), $clone(new Range32.ptr(69822, 69825, 1), Range32), $clone(new Range32.ptr(69952, 69955, 1), Range32), $clone(new Range32.ptr(70004, 70005, 1), Range32), $clone(new Range32.ptr(70085, 70088, 1), Range32), $clone(new Range32.ptr(70093, 70107, 14), Range32), $clone(new Range32.ptr(70109, 70111, 1), Range32), $clone(new Range32.ptr(70200, 70205, 1), Range32), $clone(new Range32.ptr(70313, 70731, 418), Range32), $clone(new Range32.ptr(70732, 70735, 1), Range32), $clone(new Range32.ptr(70746, 70747, 1), Range32), $clone(new Range32.ptr(70749, 70854, 105), Range32), $clone(new Range32.ptr(71105, 71127, 1), Range32), $clone(new Range32.ptr(71233, 71235, 1), Range32), $clone(new Range32.ptr(71264, 71276, 1), Range32), $clone(new Range32.ptr(71484, 71486, 1), Range32), $clone(new Range32.ptr(71739, 72004, 265), Range32), $clone(new Range32.ptr(72005, 72006, 1), Range32), $clone(new Range32.ptr(72162, 72255, 93), Range32), $clone(new Range32.ptr(72256, 72262, 1), Range32), $clone(new Range32.ptr(72346, 72348, 1), Range32), $clone(new Range32.ptr(72350, 72354, 1), Range32), $clone(new Range32.ptr(72769, 72773, 1), Range32), $clone(new Range32.ptr(72816, 72817, 1), Range32), $clone(new Range32.ptr(73463, 73464, 1), Range32), $clone(new Range32.ptr(73727, 74864, 1137), Range32), $clone(new Range32.ptr(74865, 74868, 1), Range32), $clone(new Range32.ptr(92782, 92783, 1), Range32), $clone(new Range32.ptr(92917, 92983, 66), Range32), $clone(new Range32.ptr(92984, 92987, 1), Range32), $clone(new Range32.ptr(92996, 93847, 851), Range32), $clone(new Range32.ptr(93848, 93850, 1), Range32), $clone(new Range32.ptr(94178, 113823, 19645), Range32), $clone(new Range32.ptr(121479, 121483, 1), Range32), $clone(new Range32.ptr(125278, 125279, 1), Range32)]), 11); + _No = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(178, 179, 1), Range16), $clone(new Range16.ptr(185, 188, 3), Range16), $clone(new Range16.ptr(189, 190, 1), Range16), $clone(new Range16.ptr(2548, 2553, 1), Range16), $clone(new Range16.ptr(2930, 2935, 1), Range16), $clone(new Range16.ptr(3056, 3058, 1), Range16), $clone(new Range16.ptr(3192, 3198, 1), Range16), $clone(new Range16.ptr(3416, 3422, 1), Range16), $clone(new Range16.ptr(3440, 3448, 1), Range16), $clone(new Range16.ptr(3882, 3891, 1), Range16), $clone(new Range16.ptr(4969, 4988, 1), Range16), $clone(new Range16.ptr(6128, 6137, 1), Range16), $clone(new Range16.ptr(6618, 8304, 1686), Range16), $clone(new Range16.ptr(8308, 8313, 1), Range16), $clone(new Range16.ptr(8320, 8329, 1), Range16), $clone(new Range16.ptr(8528, 8543, 1), Range16), $clone(new Range16.ptr(8585, 9312, 727), Range16), $clone(new Range16.ptr(9313, 9371, 1), Range16), $clone(new Range16.ptr(9450, 9471, 1), Range16), $clone(new Range16.ptr(10102, 10131, 1), Range16), $clone(new Range16.ptr(11517, 12690, 1173), Range16), $clone(new Range16.ptr(12691, 12693, 1), Range16), $clone(new Range16.ptr(12832, 12841, 1), Range16), $clone(new Range16.ptr(12872, 12879, 1), Range16), $clone(new Range16.ptr(12881, 12895, 1), Range16), $clone(new Range16.ptr(12928, 12937, 1), Range16), $clone(new Range16.ptr(12977, 12991, 1), Range16), $clone(new Range16.ptr(43056, 43061, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65799, 65843, 1), Range32), $clone(new Range32.ptr(65909, 65912, 1), Range32), $clone(new Range32.ptr(65930, 65931, 1), Range32), $clone(new Range32.ptr(66273, 66299, 1), Range32), $clone(new Range32.ptr(66336, 66339, 1), Range32), $clone(new Range32.ptr(67672, 67679, 1), Range32), $clone(new Range32.ptr(67705, 67711, 1), Range32), $clone(new Range32.ptr(67751, 67759, 1), Range32), $clone(new Range32.ptr(67835, 67839, 1), Range32), $clone(new Range32.ptr(67862, 67867, 1), Range32), $clone(new Range32.ptr(68028, 68029, 1), Range32), $clone(new Range32.ptr(68032, 68047, 1), Range32), $clone(new Range32.ptr(68050, 68095, 1), Range32), $clone(new Range32.ptr(68160, 68168, 1), Range32), $clone(new Range32.ptr(68221, 68222, 1), Range32), $clone(new Range32.ptr(68253, 68255, 1), Range32), $clone(new Range32.ptr(68331, 68335, 1), Range32), $clone(new Range32.ptr(68440, 68447, 1), Range32), $clone(new Range32.ptr(68472, 68479, 1), Range32), $clone(new Range32.ptr(68521, 68527, 1), Range32), $clone(new Range32.ptr(68858, 68863, 1), Range32), $clone(new Range32.ptr(69216, 69246, 1), Range32), $clone(new Range32.ptr(69405, 69414, 1), Range32), $clone(new Range32.ptr(69457, 69460, 1), Range32), $clone(new Range32.ptr(69573, 69579, 1), Range32), $clone(new Range32.ptr(69714, 69733, 1), Range32), $clone(new Range32.ptr(70113, 70132, 1), Range32), $clone(new Range32.ptr(71482, 71483, 1), Range32), $clone(new Range32.ptr(71914, 71922, 1), Range32), $clone(new Range32.ptr(72794, 72812, 1), Range32), $clone(new Range32.ptr(73664, 73684, 1), Range32), $clone(new Range32.ptr(93019, 93025, 1), Range32), $clone(new Range32.ptr(93824, 93846, 1), Range32), $clone(new Range32.ptr(119488, 119507, 1), Range32), $clone(new Range32.ptr(119520, 119539, 1), Range32), $clone(new Range32.ptr(119648, 119672, 1), Range32), $clone(new Range32.ptr(125127, 125135, 1), Range32), $clone(new Range32.ptr(126065, 126123, 1), Range32), $clone(new Range32.ptr(126125, 126127, 1), Range32), $clone(new Range32.ptr(126129, 126132, 1), Range32), $clone(new Range32.ptr(126209, 126253, 1), Range32), $clone(new Range32.ptr(126255, 126269, 1), Range32), $clone(new Range32.ptr(127232, 127244, 1), Range32)]), 3); + _P = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(33, 35, 1), Range16), $clone(new Range16.ptr(37, 42, 1), Range16), $clone(new Range16.ptr(44, 47, 1), Range16), $clone(new Range16.ptr(58, 59, 1), Range16), $clone(new Range16.ptr(63, 64, 1), Range16), $clone(new Range16.ptr(91, 93, 1), Range16), $clone(new Range16.ptr(95, 123, 28), Range16), $clone(new Range16.ptr(125, 161, 36), Range16), $clone(new Range16.ptr(167, 171, 4), Range16), $clone(new Range16.ptr(182, 183, 1), Range16), $clone(new Range16.ptr(187, 191, 4), Range16), $clone(new Range16.ptr(894, 903, 9), Range16), $clone(new Range16.ptr(1370, 1375, 1), Range16), $clone(new Range16.ptr(1417, 1418, 1), Range16), $clone(new Range16.ptr(1470, 1472, 2), Range16), $clone(new Range16.ptr(1475, 1478, 3), Range16), $clone(new Range16.ptr(1523, 1524, 1), Range16), $clone(new Range16.ptr(1545, 1546, 1), Range16), $clone(new Range16.ptr(1548, 1549, 1), Range16), $clone(new Range16.ptr(1563, 1565, 2), Range16), $clone(new Range16.ptr(1566, 1567, 1), Range16), $clone(new Range16.ptr(1642, 1645, 1), Range16), $clone(new Range16.ptr(1748, 1792, 44), Range16), $clone(new Range16.ptr(1793, 1805, 1), Range16), $clone(new Range16.ptr(2039, 2041, 1), Range16), $clone(new Range16.ptr(2096, 2110, 1), Range16), $clone(new Range16.ptr(2142, 2404, 262), Range16), $clone(new Range16.ptr(2405, 2416, 11), Range16), $clone(new Range16.ptr(2557, 2678, 121), Range16), $clone(new Range16.ptr(2800, 3191, 391), Range16), $clone(new Range16.ptr(3204, 3572, 368), Range16), $clone(new Range16.ptr(3663, 3674, 11), Range16), $clone(new Range16.ptr(3675, 3844, 169), Range16), $clone(new Range16.ptr(3845, 3858, 1), Range16), $clone(new Range16.ptr(3860, 3898, 38), Range16), $clone(new Range16.ptr(3899, 3901, 1), Range16), $clone(new Range16.ptr(3973, 4048, 75), Range16), $clone(new Range16.ptr(4049, 4052, 1), Range16), $clone(new Range16.ptr(4057, 4058, 1), Range16), $clone(new Range16.ptr(4170, 4175, 1), Range16), $clone(new Range16.ptr(4347, 4960, 613), Range16), $clone(new Range16.ptr(4961, 4968, 1), Range16), $clone(new Range16.ptr(5120, 5742, 622), Range16), $clone(new Range16.ptr(5787, 5788, 1), Range16), $clone(new Range16.ptr(5867, 5869, 1), Range16), $clone(new Range16.ptr(5941, 5942, 1), Range16), $clone(new Range16.ptr(6100, 6102, 1), Range16), $clone(new Range16.ptr(6104, 6106, 1), Range16), $clone(new Range16.ptr(6144, 6154, 1), Range16), $clone(new Range16.ptr(6468, 6469, 1), Range16), $clone(new Range16.ptr(6686, 6687, 1), Range16), $clone(new Range16.ptr(6816, 6822, 1), Range16), $clone(new Range16.ptr(6824, 6829, 1), Range16), $clone(new Range16.ptr(7002, 7008, 1), Range16), $clone(new Range16.ptr(7037, 7038, 1), Range16), $clone(new Range16.ptr(7164, 7167, 1), Range16), $clone(new Range16.ptr(7227, 7231, 1), Range16), $clone(new Range16.ptr(7294, 7295, 1), Range16), $clone(new Range16.ptr(7360, 7367, 1), Range16), $clone(new Range16.ptr(7379, 8208, 829), Range16), $clone(new Range16.ptr(8209, 8231, 1), Range16), $clone(new Range16.ptr(8240, 8259, 1), Range16), $clone(new Range16.ptr(8261, 8273, 1), Range16), $clone(new Range16.ptr(8275, 8286, 1), Range16), $clone(new Range16.ptr(8317, 8318, 1), Range16), $clone(new Range16.ptr(8333, 8334, 1), Range16), $clone(new Range16.ptr(8968, 8971, 1), Range16), $clone(new Range16.ptr(9001, 9002, 1), Range16), $clone(new Range16.ptr(10088, 10101, 1), Range16), $clone(new Range16.ptr(10181, 10182, 1), Range16), $clone(new Range16.ptr(10214, 10223, 1), Range16), $clone(new Range16.ptr(10627, 10648, 1), Range16), $clone(new Range16.ptr(10712, 10715, 1), Range16), $clone(new Range16.ptr(10748, 10749, 1), Range16), $clone(new Range16.ptr(11513, 11516, 1), Range16), $clone(new Range16.ptr(11518, 11519, 1), Range16), $clone(new Range16.ptr(11632, 11776, 144), Range16), $clone(new Range16.ptr(11777, 11822, 1), Range16), $clone(new Range16.ptr(11824, 11855, 1), Range16), $clone(new Range16.ptr(11858, 11869, 1), Range16), $clone(new Range16.ptr(12289, 12291, 1), Range16), $clone(new Range16.ptr(12296, 12305, 1), Range16), $clone(new Range16.ptr(12308, 12319, 1), Range16), $clone(new Range16.ptr(12336, 12349, 13), Range16), $clone(new Range16.ptr(12448, 12539, 91), Range16), $clone(new Range16.ptr(42238, 42239, 1), Range16), $clone(new Range16.ptr(42509, 42511, 1), Range16), $clone(new Range16.ptr(42611, 42622, 11), Range16), $clone(new Range16.ptr(42738, 42743, 1), Range16), $clone(new Range16.ptr(43124, 43127, 1), Range16), $clone(new Range16.ptr(43214, 43215, 1), Range16), $clone(new Range16.ptr(43256, 43258, 1), Range16), $clone(new Range16.ptr(43260, 43310, 50), Range16), $clone(new Range16.ptr(43311, 43359, 48), Range16), $clone(new Range16.ptr(43457, 43469, 1), Range16), $clone(new Range16.ptr(43486, 43487, 1), Range16), $clone(new Range16.ptr(43612, 43615, 1), Range16), $clone(new Range16.ptr(43742, 43743, 1), Range16), $clone(new Range16.ptr(43760, 43761, 1), Range16), $clone(new Range16.ptr(44011, 64830, 20819), Range16), $clone(new Range16.ptr(64831, 65040, 209), Range16), $clone(new Range16.ptr(65041, 65049, 1), Range16), $clone(new Range16.ptr(65072, 65106, 1), Range16), $clone(new Range16.ptr(65108, 65121, 1), Range16), $clone(new Range16.ptr(65123, 65128, 5), Range16), $clone(new Range16.ptr(65130, 65131, 1), Range16), $clone(new Range16.ptr(65281, 65283, 1), Range16), $clone(new Range16.ptr(65285, 65290, 1), Range16), $clone(new Range16.ptr(65292, 65295, 1), Range16), $clone(new Range16.ptr(65306, 65307, 1), Range16), $clone(new Range16.ptr(65311, 65312, 1), Range16), $clone(new Range16.ptr(65339, 65341, 1), Range16), $clone(new Range16.ptr(65343, 65371, 28), Range16), $clone(new Range16.ptr(65373, 65375, 2), Range16), $clone(new Range16.ptr(65376, 65381, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65792, 65794, 1), Range32), $clone(new Range32.ptr(66463, 66512, 49), Range32), $clone(new Range32.ptr(66927, 67671, 744), Range32), $clone(new Range32.ptr(67871, 67903, 32), Range32), $clone(new Range32.ptr(68176, 68184, 1), Range32), $clone(new Range32.ptr(68223, 68336, 113), Range32), $clone(new Range32.ptr(68337, 68342, 1), Range32), $clone(new Range32.ptr(68409, 68415, 1), Range32), $clone(new Range32.ptr(68505, 68508, 1), Range32), $clone(new Range32.ptr(69293, 69461, 168), Range32), $clone(new Range32.ptr(69462, 69465, 1), Range32), $clone(new Range32.ptr(69510, 69513, 1), Range32), $clone(new Range32.ptr(69703, 69709, 1), Range32), $clone(new Range32.ptr(69819, 69820, 1), Range32), $clone(new Range32.ptr(69822, 69825, 1), Range32), $clone(new Range32.ptr(69952, 69955, 1), Range32), $clone(new Range32.ptr(70004, 70005, 1), Range32), $clone(new Range32.ptr(70085, 70088, 1), Range32), $clone(new Range32.ptr(70093, 70107, 14), Range32), $clone(new Range32.ptr(70109, 70111, 1), Range32), $clone(new Range32.ptr(70200, 70205, 1), Range32), $clone(new Range32.ptr(70313, 70731, 418), Range32), $clone(new Range32.ptr(70732, 70735, 1), Range32), $clone(new Range32.ptr(70746, 70747, 1), Range32), $clone(new Range32.ptr(70749, 70854, 105), Range32), $clone(new Range32.ptr(71105, 71127, 1), Range32), $clone(new Range32.ptr(71233, 71235, 1), Range32), $clone(new Range32.ptr(71264, 71276, 1), Range32), $clone(new Range32.ptr(71353, 71484, 131), Range32), $clone(new Range32.ptr(71485, 71486, 1), Range32), $clone(new Range32.ptr(71739, 72004, 265), Range32), $clone(new Range32.ptr(72005, 72006, 1), Range32), $clone(new Range32.ptr(72162, 72255, 93), Range32), $clone(new Range32.ptr(72256, 72262, 1), Range32), $clone(new Range32.ptr(72346, 72348, 1), Range32), $clone(new Range32.ptr(72350, 72354, 1), Range32), $clone(new Range32.ptr(72448, 72457, 1), Range32), $clone(new Range32.ptr(72769, 72773, 1), Range32), $clone(new Range32.ptr(72816, 72817, 1), Range32), $clone(new Range32.ptr(73463, 73464, 1), Range32), $clone(new Range32.ptr(73539, 73551, 1), Range32), $clone(new Range32.ptr(73727, 74864, 1137), Range32), $clone(new Range32.ptr(74865, 74868, 1), Range32), $clone(new Range32.ptr(77809, 77810, 1), Range32), $clone(new Range32.ptr(92782, 92783, 1), Range32), $clone(new Range32.ptr(92917, 92983, 66), Range32), $clone(new Range32.ptr(92984, 92987, 1), Range32), $clone(new Range32.ptr(92996, 93847, 851), Range32), $clone(new Range32.ptr(93848, 93850, 1), Range32), $clone(new Range32.ptr(94178, 113823, 19645), Range32), $clone(new Range32.ptr(121479, 121483, 1), Range32), $clone(new Range32.ptr(125278, 125279, 1), Range32)]), 11); _Pc = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(95, 8255, 8160), Range16), $clone(new Range16.ptr(8256, 8276, 20), Range16), $clone(new Range16.ptr(65075, 65076, 1), Range16), $clone(new Range16.ptr(65101, 65103, 1), Range16), $clone(new Range16.ptr(65343, 65343, 1), Range16)]), sliceType$1.nil, 0); - _Pd = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(45, 1418, 1373), Range16), $clone(new Range16.ptr(1470, 5120, 3650), Range16), $clone(new Range16.ptr(6150, 8208, 2058), Range16), $clone(new Range16.ptr(8209, 8213, 1), Range16), $clone(new Range16.ptr(11799, 11802, 3), Range16), $clone(new Range16.ptr(11834, 11835, 1), Range16), $clone(new Range16.ptr(11840, 12316, 476), Range16), $clone(new Range16.ptr(12336, 12448, 112), Range16), $clone(new Range16.ptr(65073, 65074, 1), Range16), $clone(new Range16.ptr(65112, 65123, 11), Range16), $clone(new Range16.ptr(65293, 65293, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(69293, 69293, 1), Range32)]), 0); - _Pe = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(41, 93, 52), Range16), $clone(new Range16.ptr(125, 3899, 3774), Range16), $clone(new Range16.ptr(3901, 5788, 1887), Range16), $clone(new Range16.ptr(8262, 8318, 56), Range16), $clone(new Range16.ptr(8334, 8969, 635), Range16), $clone(new Range16.ptr(8971, 9002, 31), Range16), $clone(new Range16.ptr(10089, 10101, 2), Range16), $clone(new Range16.ptr(10182, 10215, 33), Range16), $clone(new Range16.ptr(10217, 10223, 2), Range16), $clone(new Range16.ptr(10628, 10648, 2), Range16), $clone(new Range16.ptr(10713, 10715, 2), Range16), $clone(new Range16.ptr(10749, 11811, 1062), Range16), $clone(new Range16.ptr(11813, 11817, 2), Range16), $clone(new Range16.ptr(12297, 12305, 2), Range16), $clone(new Range16.ptr(12309, 12315, 2), Range16), $clone(new Range16.ptr(12318, 12319, 1), Range16), $clone(new Range16.ptr(64830, 65048, 218), Range16), $clone(new Range16.ptr(65078, 65092, 2), Range16), $clone(new Range16.ptr(65096, 65114, 18), Range16), $clone(new Range16.ptr(65116, 65118, 2), Range16), $clone(new Range16.ptr(65289, 65341, 52), Range16), $clone(new Range16.ptr(65373, 65379, 3), Range16)]), sliceType$1.nil, 1); + _Pd = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(45, 1418, 1373), Range16), $clone(new Range16.ptr(1470, 5120, 3650), Range16), $clone(new Range16.ptr(6150, 8208, 2058), Range16), $clone(new Range16.ptr(8209, 8213, 1), Range16), $clone(new Range16.ptr(11799, 11802, 3), Range16), $clone(new Range16.ptr(11834, 11835, 1), Range16), $clone(new Range16.ptr(11840, 11869, 29), Range16), $clone(new Range16.ptr(12316, 12336, 20), Range16), $clone(new Range16.ptr(12448, 65073, 52625), Range16), $clone(new Range16.ptr(65074, 65112, 38), Range16), $clone(new Range16.ptr(65123, 65293, 170), Range16)]), new sliceType$1([$clone(new Range32.ptr(69293, 69293, 1), Range32)]), 0); + _Pe = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(41, 93, 52), Range16), $clone(new Range16.ptr(125, 3899, 3774), Range16), $clone(new Range16.ptr(3901, 5788, 1887), Range16), $clone(new Range16.ptr(8262, 8318, 56), Range16), $clone(new Range16.ptr(8334, 8969, 635), Range16), $clone(new Range16.ptr(8971, 9002, 31), Range16), $clone(new Range16.ptr(10089, 10101, 2), Range16), $clone(new Range16.ptr(10182, 10215, 33), Range16), $clone(new Range16.ptr(10217, 10223, 2), Range16), $clone(new Range16.ptr(10628, 10648, 2), Range16), $clone(new Range16.ptr(10713, 10715, 2), Range16), $clone(new Range16.ptr(10749, 11811, 1062), Range16), $clone(new Range16.ptr(11813, 11817, 2), Range16), $clone(new Range16.ptr(11862, 11868, 2), Range16), $clone(new Range16.ptr(12297, 12305, 2), Range16), $clone(new Range16.ptr(12309, 12315, 2), Range16), $clone(new Range16.ptr(12318, 12319, 1), Range16), $clone(new Range16.ptr(64830, 65048, 218), Range16), $clone(new Range16.ptr(65078, 65092, 2), Range16), $clone(new Range16.ptr(65096, 65114, 18), Range16), $clone(new Range16.ptr(65116, 65118, 2), Range16), $clone(new Range16.ptr(65289, 65341, 52), Range16), $clone(new Range16.ptr(65373, 65379, 3), Range16)]), sliceType$1.nil, 1); _Pf = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(187, 8217, 8030), Range16), $clone(new Range16.ptr(8221, 8250, 29), Range16), $clone(new Range16.ptr(11779, 11781, 2), Range16), $clone(new Range16.ptr(11786, 11789, 3), Range16), $clone(new Range16.ptr(11805, 11809, 4), Range16)]), sliceType$1.nil, 0); _Pi = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(171, 8216, 8045), Range16), $clone(new Range16.ptr(8219, 8220, 1), Range16), $clone(new Range16.ptr(8223, 8249, 26), Range16), $clone(new Range16.ptr(11778, 11780, 2), Range16), $clone(new Range16.ptr(11785, 11788, 3), Range16), $clone(new Range16.ptr(11804, 11808, 4), Range16)]), sliceType$1.nil, 0); - _Po = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(33, 35, 1), Range16), $clone(new Range16.ptr(37, 39, 1), Range16), $clone(new Range16.ptr(42, 46, 2), Range16), $clone(new Range16.ptr(47, 58, 11), Range16), $clone(new Range16.ptr(59, 63, 4), Range16), $clone(new Range16.ptr(64, 92, 28), Range16), $clone(new Range16.ptr(161, 167, 6), Range16), $clone(new Range16.ptr(182, 183, 1), Range16), $clone(new Range16.ptr(191, 894, 703), Range16), $clone(new Range16.ptr(903, 1370, 467), Range16), $clone(new Range16.ptr(1371, 1375, 1), Range16), $clone(new Range16.ptr(1417, 1472, 55), Range16), $clone(new Range16.ptr(1475, 1478, 3), Range16), $clone(new Range16.ptr(1523, 1524, 1), Range16), $clone(new Range16.ptr(1545, 1546, 1), Range16), $clone(new Range16.ptr(1548, 1549, 1), Range16), $clone(new Range16.ptr(1563, 1566, 3), Range16), $clone(new Range16.ptr(1567, 1642, 75), Range16), $clone(new Range16.ptr(1643, 1645, 1), Range16), $clone(new Range16.ptr(1748, 1792, 44), Range16), $clone(new Range16.ptr(1793, 1805, 1), Range16), $clone(new Range16.ptr(2039, 2041, 1), Range16), $clone(new Range16.ptr(2096, 2110, 1), Range16), $clone(new Range16.ptr(2142, 2404, 262), Range16), $clone(new Range16.ptr(2405, 2416, 11), Range16), $clone(new Range16.ptr(2557, 2678, 121), Range16), $clone(new Range16.ptr(2800, 3191, 391), Range16), $clone(new Range16.ptr(3204, 3572, 368), Range16), $clone(new Range16.ptr(3663, 3674, 11), Range16), $clone(new Range16.ptr(3675, 3844, 169), Range16), $clone(new Range16.ptr(3845, 3858, 1), Range16), $clone(new Range16.ptr(3860, 3973, 113), Range16), $clone(new Range16.ptr(4048, 4052, 1), Range16), $clone(new Range16.ptr(4057, 4058, 1), Range16), $clone(new Range16.ptr(4170, 4175, 1), Range16), $clone(new Range16.ptr(4347, 4960, 613), Range16), $clone(new Range16.ptr(4961, 4968, 1), Range16), $clone(new Range16.ptr(5742, 5867, 125), Range16), $clone(new Range16.ptr(5868, 5869, 1), Range16), $clone(new Range16.ptr(5941, 5942, 1), Range16), $clone(new Range16.ptr(6100, 6102, 1), Range16), $clone(new Range16.ptr(6104, 6106, 1), Range16), $clone(new Range16.ptr(6144, 6149, 1), Range16), $clone(new Range16.ptr(6151, 6154, 1), Range16), $clone(new Range16.ptr(6468, 6469, 1), Range16), $clone(new Range16.ptr(6686, 6687, 1), Range16), $clone(new Range16.ptr(6816, 6822, 1), Range16), $clone(new Range16.ptr(6824, 6829, 1), Range16), $clone(new Range16.ptr(7002, 7008, 1), Range16), $clone(new Range16.ptr(7164, 7167, 1), Range16), $clone(new Range16.ptr(7227, 7231, 1), Range16), $clone(new Range16.ptr(7294, 7295, 1), Range16), $clone(new Range16.ptr(7360, 7367, 1), Range16), $clone(new Range16.ptr(7379, 8214, 835), Range16), $clone(new Range16.ptr(8215, 8224, 9), Range16), $clone(new Range16.ptr(8225, 8231, 1), Range16), $clone(new Range16.ptr(8240, 8248, 1), Range16), $clone(new Range16.ptr(8251, 8254, 1), Range16), $clone(new Range16.ptr(8257, 8259, 1), Range16), $clone(new Range16.ptr(8263, 8273, 1), Range16), $clone(new Range16.ptr(8275, 8277, 2), Range16), $clone(new Range16.ptr(8278, 8286, 1), Range16), $clone(new Range16.ptr(11513, 11516, 1), Range16), $clone(new Range16.ptr(11518, 11519, 1), Range16), $clone(new Range16.ptr(11632, 11776, 144), Range16), $clone(new Range16.ptr(11777, 11782, 5), Range16), $clone(new Range16.ptr(11783, 11784, 1), Range16), $clone(new Range16.ptr(11787, 11790, 3), Range16), $clone(new Range16.ptr(11791, 11798, 1), Range16), $clone(new Range16.ptr(11800, 11801, 1), Range16), $clone(new Range16.ptr(11803, 11806, 3), Range16), $clone(new Range16.ptr(11807, 11818, 11), Range16), $clone(new Range16.ptr(11819, 11822, 1), Range16), $clone(new Range16.ptr(11824, 11833, 1), Range16), $clone(new Range16.ptr(11836, 11839, 1), Range16), $clone(new Range16.ptr(11841, 11843, 2), Range16), $clone(new Range16.ptr(11844, 11855, 1), Range16), $clone(new Range16.ptr(11858, 12289, 431), Range16), $clone(new Range16.ptr(12290, 12291, 1), Range16), $clone(new Range16.ptr(12349, 12539, 190), Range16), $clone(new Range16.ptr(42238, 42239, 1), Range16), $clone(new Range16.ptr(42509, 42511, 1), Range16), $clone(new Range16.ptr(42611, 42622, 11), Range16), $clone(new Range16.ptr(42738, 42743, 1), Range16), $clone(new Range16.ptr(43124, 43127, 1), Range16), $clone(new Range16.ptr(43214, 43215, 1), Range16), $clone(new Range16.ptr(43256, 43258, 1), Range16), $clone(new Range16.ptr(43260, 43310, 50), Range16), $clone(new Range16.ptr(43311, 43359, 48), Range16), $clone(new Range16.ptr(43457, 43469, 1), Range16), $clone(new Range16.ptr(43486, 43487, 1), Range16), $clone(new Range16.ptr(43612, 43615, 1), Range16), $clone(new Range16.ptr(43742, 43743, 1), Range16), $clone(new Range16.ptr(43760, 43761, 1), Range16), $clone(new Range16.ptr(44011, 65040, 21029), Range16), $clone(new Range16.ptr(65041, 65046, 1), Range16), $clone(new Range16.ptr(65049, 65072, 23), Range16), $clone(new Range16.ptr(65093, 65094, 1), Range16), $clone(new Range16.ptr(65097, 65100, 1), Range16), $clone(new Range16.ptr(65104, 65106, 1), Range16), $clone(new Range16.ptr(65108, 65111, 1), Range16), $clone(new Range16.ptr(65119, 65121, 1), Range16), $clone(new Range16.ptr(65128, 65130, 2), Range16), $clone(new Range16.ptr(65131, 65281, 150), Range16), $clone(new Range16.ptr(65282, 65283, 1), Range16), $clone(new Range16.ptr(65285, 65287, 1), Range16), $clone(new Range16.ptr(65290, 65294, 2), Range16), $clone(new Range16.ptr(65295, 65306, 11), Range16), $clone(new Range16.ptr(65307, 65311, 4), Range16), $clone(new Range16.ptr(65312, 65340, 28), Range16), $clone(new Range16.ptr(65377, 65380, 3), Range16), $clone(new Range16.ptr(65381, 65381, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65792, 65794, 1), Range32), $clone(new Range32.ptr(66463, 66512, 49), Range32), $clone(new Range32.ptr(66927, 67671, 744), Range32), $clone(new Range32.ptr(67871, 67903, 32), Range32), $clone(new Range32.ptr(68176, 68184, 1), Range32), $clone(new Range32.ptr(68223, 68336, 113), Range32), $clone(new Range32.ptr(68337, 68342, 1), Range32), $clone(new Range32.ptr(68409, 68415, 1), Range32), $clone(new Range32.ptr(68505, 68508, 1), Range32), $clone(new Range32.ptr(69461, 69465, 1), Range32), $clone(new Range32.ptr(69703, 69709, 1), Range32), $clone(new Range32.ptr(69819, 69820, 1), Range32), $clone(new Range32.ptr(69822, 69825, 1), Range32), $clone(new Range32.ptr(69952, 69955, 1), Range32), $clone(new Range32.ptr(70004, 70005, 1), Range32), $clone(new Range32.ptr(70085, 70088, 1), Range32), $clone(new Range32.ptr(70093, 70107, 14), Range32), $clone(new Range32.ptr(70109, 70111, 1), Range32), $clone(new Range32.ptr(70200, 70205, 1), Range32), $clone(new Range32.ptr(70313, 70731, 418), Range32), $clone(new Range32.ptr(70732, 70735, 1), Range32), $clone(new Range32.ptr(70746, 70747, 1), Range32), $clone(new Range32.ptr(70749, 70854, 105), Range32), $clone(new Range32.ptr(71105, 71127, 1), Range32), $clone(new Range32.ptr(71233, 71235, 1), Range32), $clone(new Range32.ptr(71264, 71276, 1), Range32), $clone(new Range32.ptr(71484, 71486, 1), Range32), $clone(new Range32.ptr(71739, 72004, 265), Range32), $clone(new Range32.ptr(72005, 72006, 1), Range32), $clone(new Range32.ptr(72162, 72255, 93), Range32), $clone(new Range32.ptr(72256, 72262, 1), Range32), $clone(new Range32.ptr(72346, 72348, 1), Range32), $clone(new Range32.ptr(72350, 72354, 1), Range32), $clone(new Range32.ptr(72769, 72773, 1), Range32), $clone(new Range32.ptr(72816, 72817, 1), Range32), $clone(new Range32.ptr(73463, 73464, 1), Range32), $clone(new Range32.ptr(73727, 74864, 1137), Range32), $clone(new Range32.ptr(74865, 74868, 1), Range32), $clone(new Range32.ptr(92782, 92783, 1), Range32), $clone(new Range32.ptr(92917, 92983, 66), Range32), $clone(new Range32.ptr(92984, 92987, 1), Range32), $clone(new Range32.ptr(92996, 93847, 851), Range32), $clone(new Range32.ptr(93848, 93850, 1), Range32), $clone(new Range32.ptr(94178, 113823, 19645), Range32), $clone(new Range32.ptr(121479, 121483, 1), Range32), $clone(new Range32.ptr(125278, 125279, 1), Range32)]), 8); - _Ps = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(40, 91, 51), Range16), $clone(new Range16.ptr(123, 3898, 3775), Range16), $clone(new Range16.ptr(3900, 5787, 1887), Range16), $clone(new Range16.ptr(8218, 8222, 4), Range16), $clone(new Range16.ptr(8261, 8317, 56), Range16), $clone(new Range16.ptr(8333, 8968, 635), Range16), $clone(new Range16.ptr(8970, 9001, 31), Range16), $clone(new Range16.ptr(10088, 10100, 2), Range16), $clone(new Range16.ptr(10181, 10214, 33), Range16), $clone(new Range16.ptr(10216, 10222, 2), Range16), $clone(new Range16.ptr(10627, 10647, 2), Range16), $clone(new Range16.ptr(10712, 10714, 2), Range16), $clone(new Range16.ptr(10748, 11810, 1062), Range16), $clone(new Range16.ptr(11812, 11816, 2), Range16), $clone(new Range16.ptr(11842, 12296, 454), Range16), $clone(new Range16.ptr(12298, 12304, 2), Range16), $clone(new Range16.ptr(12308, 12314, 2), Range16), $clone(new Range16.ptr(12317, 64831, 52514), Range16), $clone(new Range16.ptr(65047, 65077, 30), Range16), $clone(new Range16.ptr(65079, 65091, 2), Range16), $clone(new Range16.ptr(65095, 65113, 18), Range16), $clone(new Range16.ptr(65115, 65117, 2), Range16), $clone(new Range16.ptr(65288, 65339, 51), Range16), $clone(new Range16.ptr(65371, 65375, 4), Range16), $clone(new Range16.ptr(65378, 65378, 1), Range16)]), sliceType$1.nil, 1); - _S = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(36, 43, 7), Range16), $clone(new Range16.ptr(60, 62, 1), Range16), $clone(new Range16.ptr(94, 96, 2), Range16), $clone(new Range16.ptr(124, 126, 2), Range16), $clone(new Range16.ptr(162, 166, 1), Range16), $clone(new Range16.ptr(168, 169, 1), Range16), $clone(new Range16.ptr(172, 174, 2), Range16), $clone(new Range16.ptr(175, 177, 1), Range16), $clone(new Range16.ptr(180, 184, 4), Range16), $clone(new Range16.ptr(215, 247, 32), Range16), $clone(new Range16.ptr(706, 709, 1), Range16), $clone(new Range16.ptr(722, 735, 1), Range16), $clone(new Range16.ptr(741, 747, 1), Range16), $clone(new Range16.ptr(749, 751, 2), Range16), $clone(new Range16.ptr(752, 767, 1), Range16), $clone(new Range16.ptr(885, 900, 15), Range16), $clone(new Range16.ptr(901, 1014, 113), Range16), $clone(new Range16.ptr(1154, 1421, 267), Range16), $clone(new Range16.ptr(1422, 1423, 1), Range16), $clone(new Range16.ptr(1542, 1544, 1), Range16), $clone(new Range16.ptr(1547, 1550, 3), Range16), $clone(new Range16.ptr(1551, 1758, 207), Range16), $clone(new Range16.ptr(1769, 1789, 20), Range16), $clone(new Range16.ptr(1790, 2038, 248), Range16), $clone(new Range16.ptr(2046, 2047, 1), Range16), $clone(new Range16.ptr(2546, 2547, 1), Range16), $clone(new Range16.ptr(2554, 2555, 1), Range16), $clone(new Range16.ptr(2801, 2928, 127), Range16), $clone(new Range16.ptr(3059, 3066, 1), Range16), $clone(new Range16.ptr(3199, 3407, 208), Range16), $clone(new Range16.ptr(3449, 3647, 198), Range16), $clone(new Range16.ptr(3841, 3843, 1), Range16), $clone(new Range16.ptr(3859, 3861, 2), Range16), $clone(new Range16.ptr(3862, 3863, 1), Range16), $clone(new Range16.ptr(3866, 3871, 1), Range16), $clone(new Range16.ptr(3892, 3896, 2), Range16), $clone(new Range16.ptr(4030, 4037, 1), Range16), $clone(new Range16.ptr(4039, 4044, 1), Range16), $clone(new Range16.ptr(4046, 4047, 1), Range16), $clone(new Range16.ptr(4053, 4056, 1), Range16), $clone(new Range16.ptr(4254, 4255, 1), Range16), $clone(new Range16.ptr(5008, 5017, 1), Range16), $clone(new Range16.ptr(5741, 6107, 366), Range16), $clone(new Range16.ptr(6464, 6622, 158), Range16), $clone(new Range16.ptr(6623, 6655, 1), Range16), $clone(new Range16.ptr(7009, 7018, 1), Range16), $clone(new Range16.ptr(7028, 7036, 1), Range16), $clone(new Range16.ptr(8125, 8127, 2), Range16), $clone(new Range16.ptr(8128, 8129, 1), Range16), $clone(new Range16.ptr(8141, 8143, 1), Range16), $clone(new Range16.ptr(8157, 8159, 1), Range16), $clone(new Range16.ptr(8173, 8175, 1), Range16), $clone(new Range16.ptr(8189, 8190, 1), Range16), $clone(new Range16.ptr(8260, 8274, 14), Range16), $clone(new Range16.ptr(8314, 8316, 1), Range16), $clone(new Range16.ptr(8330, 8332, 1), Range16), $clone(new Range16.ptr(8352, 8383, 1), Range16), $clone(new Range16.ptr(8448, 8449, 1), Range16), $clone(new Range16.ptr(8451, 8454, 1), Range16), $clone(new Range16.ptr(8456, 8457, 1), Range16), $clone(new Range16.ptr(8468, 8470, 2), Range16), $clone(new Range16.ptr(8471, 8472, 1), Range16), $clone(new Range16.ptr(8478, 8483, 1), Range16), $clone(new Range16.ptr(8485, 8489, 2), Range16), $clone(new Range16.ptr(8494, 8506, 12), Range16), $clone(new Range16.ptr(8507, 8512, 5), Range16), $clone(new Range16.ptr(8513, 8516, 1), Range16), $clone(new Range16.ptr(8522, 8525, 1), Range16), $clone(new Range16.ptr(8527, 8586, 59), Range16), $clone(new Range16.ptr(8587, 8592, 5), Range16), $clone(new Range16.ptr(8593, 8967, 1), Range16), $clone(new Range16.ptr(8972, 9000, 1), Range16), $clone(new Range16.ptr(9003, 9254, 1), Range16), $clone(new Range16.ptr(9280, 9290, 1), Range16), $clone(new Range16.ptr(9372, 9449, 1), Range16), $clone(new Range16.ptr(9472, 10087, 1), Range16), $clone(new Range16.ptr(10132, 10180, 1), Range16), $clone(new Range16.ptr(10183, 10213, 1), Range16), $clone(new Range16.ptr(10224, 10626, 1), Range16), $clone(new Range16.ptr(10649, 10711, 1), Range16), $clone(new Range16.ptr(10716, 10747, 1), Range16), $clone(new Range16.ptr(10750, 11123, 1), Range16), $clone(new Range16.ptr(11126, 11157, 1), Range16), $clone(new Range16.ptr(11159, 11263, 1), Range16), $clone(new Range16.ptr(11493, 11498, 1), Range16), $clone(new Range16.ptr(11856, 11857, 1), Range16), $clone(new Range16.ptr(11904, 11929, 1), Range16), $clone(new Range16.ptr(11931, 12019, 1), Range16), $clone(new Range16.ptr(12032, 12245, 1), Range16), $clone(new Range16.ptr(12272, 12283, 1), Range16), $clone(new Range16.ptr(12292, 12306, 14), Range16), $clone(new Range16.ptr(12307, 12320, 13), Range16), $clone(new Range16.ptr(12342, 12343, 1), Range16), $clone(new Range16.ptr(12350, 12351, 1), Range16), $clone(new Range16.ptr(12443, 12444, 1), Range16), $clone(new Range16.ptr(12688, 12689, 1), Range16), $clone(new Range16.ptr(12694, 12703, 1), Range16), $clone(new Range16.ptr(12736, 12771, 1), Range16), $clone(new Range16.ptr(12800, 12830, 1), Range16), $clone(new Range16.ptr(12842, 12871, 1), Range16), $clone(new Range16.ptr(12880, 12896, 16), Range16), $clone(new Range16.ptr(12897, 12927, 1), Range16), $clone(new Range16.ptr(12938, 12976, 1), Range16), $clone(new Range16.ptr(12992, 13311, 1), Range16), $clone(new Range16.ptr(19904, 19967, 1), Range16), $clone(new Range16.ptr(42128, 42182, 1), Range16), $clone(new Range16.ptr(42752, 42774, 1), Range16), $clone(new Range16.ptr(42784, 42785, 1), Range16), $clone(new Range16.ptr(42889, 42890, 1), Range16), $clone(new Range16.ptr(43048, 43051, 1), Range16), $clone(new Range16.ptr(43062, 43065, 1), Range16), $clone(new Range16.ptr(43639, 43641, 1), Range16), $clone(new Range16.ptr(43867, 43882, 15), Range16), $clone(new Range16.ptr(43883, 64297, 20414), Range16), $clone(new Range16.ptr(64434, 64449, 1), Range16), $clone(new Range16.ptr(65020, 65021, 1), Range16), $clone(new Range16.ptr(65122, 65124, 2), Range16), $clone(new Range16.ptr(65125, 65126, 1), Range16), $clone(new Range16.ptr(65129, 65284, 155), Range16), $clone(new Range16.ptr(65291, 65308, 17), Range16), $clone(new Range16.ptr(65309, 65310, 1), Range16), $clone(new Range16.ptr(65342, 65344, 2), Range16), $clone(new Range16.ptr(65372, 65374, 2), Range16), $clone(new Range16.ptr(65504, 65510, 1), Range16), $clone(new Range16.ptr(65512, 65518, 1), Range16), $clone(new Range16.ptr(65532, 65533, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65847, 65855, 1), Range32), $clone(new Range32.ptr(65913, 65929, 1), Range32), $clone(new Range32.ptr(65932, 65934, 1), Range32), $clone(new Range32.ptr(65936, 65948, 1), Range32), $clone(new Range32.ptr(65952, 66000, 48), Range32), $clone(new Range32.ptr(66001, 66044, 1), Range32), $clone(new Range32.ptr(67703, 67704, 1), Range32), $clone(new Range32.ptr(68296, 71487, 3191), Range32), $clone(new Range32.ptr(73685, 73713, 1), Range32), $clone(new Range32.ptr(92988, 92991, 1), Range32), $clone(new Range32.ptr(92997, 113820, 20823), Range32), $clone(new Range32.ptr(118784, 119029, 1), Range32), $clone(new Range32.ptr(119040, 119078, 1), Range32), $clone(new Range32.ptr(119081, 119140, 1), Range32), $clone(new Range32.ptr(119146, 119148, 1), Range32), $clone(new Range32.ptr(119171, 119172, 1), Range32), $clone(new Range32.ptr(119180, 119209, 1), Range32), $clone(new Range32.ptr(119214, 119272, 1), Range32), $clone(new Range32.ptr(119296, 119361, 1), Range32), $clone(new Range32.ptr(119365, 119552, 187), Range32), $clone(new Range32.ptr(119553, 119638, 1), Range32), $clone(new Range32.ptr(120513, 120539, 26), Range32), $clone(new Range32.ptr(120571, 120597, 26), Range32), $clone(new Range32.ptr(120629, 120655, 26), Range32), $clone(new Range32.ptr(120687, 120713, 26), Range32), $clone(new Range32.ptr(120745, 120771, 26), Range32), $clone(new Range32.ptr(120832, 121343, 1), Range32), $clone(new Range32.ptr(121399, 121402, 1), Range32), $clone(new Range32.ptr(121453, 121460, 1), Range32), $clone(new Range32.ptr(121462, 121475, 1), Range32), $clone(new Range32.ptr(121477, 121478, 1), Range32), $clone(new Range32.ptr(123215, 123647, 432), Range32), $clone(new Range32.ptr(126124, 126128, 4), Range32), $clone(new Range32.ptr(126254, 126704, 450), Range32), $clone(new Range32.ptr(126705, 126976, 271), Range32), $clone(new Range32.ptr(126977, 127019, 1), Range32), $clone(new Range32.ptr(127024, 127123, 1), Range32), $clone(new Range32.ptr(127136, 127150, 1), Range32), $clone(new Range32.ptr(127153, 127167, 1), Range32), $clone(new Range32.ptr(127169, 127183, 1), Range32), $clone(new Range32.ptr(127185, 127221, 1), Range32), $clone(new Range32.ptr(127245, 127405, 1), Range32), $clone(new Range32.ptr(127462, 127490, 1), Range32), $clone(new Range32.ptr(127504, 127547, 1), Range32), $clone(new Range32.ptr(127552, 127560, 1), Range32), $clone(new Range32.ptr(127568, 127569, 1), Range32), $clone(new Range32.ptr(127584, 127589, 1), Range32), $clone(new Range32.ptr(127744, 128727, 1), Range32), $clone(new Range32.ptr(128736, 128748, 1), Range32), $clone(new Range32.ptr(128752, 128764, 1), Range32), $clone(new Range32.ptr(128768, 128883, 1), Range32), $clone(new Range32.ptr(128896, 128984, 1), Range32), $clone(new Range32.ptr(128992, 129003, 1), Range32), $clone(new Range32.ptr(129024, 129035, 1), Range32), $clone(new Range32.ptr(129040, 129095, 1), Range32), $clone(new Range32.ptr(129104, 129113, 1), Range32), $clone(new Range32.ptr(129120, 129159, 1), Range32), $clone(new Range32.ptr(129168, 129197, 1), Range32), $clone(new Range32.ptr(129200, 129201, 1), Range32), $clone(new Range32.ptr(129280, 129400, 1), Range32), $clone(new Range32.ptr(129402, 129483, 1), Range32), $clone(new Range32.ptr(129485, 129619, 1), Range32), $clone(new Range32.ptr(129632, 129645, 1), Range32), $clone(new Range32.ptr(129648, 129652, 1), Range32), $clone(new Range32.ptr(129656, 129658, 1), Range32), $clone(new Range32.ptr(129664, 129670, 1), Range32), $clone(new Range32.ptr(129680, 129704, 1), Range32), $clone(new Range32.ptr(129712, 129718, 1), Range32), $clone(new Range32.ptr(129728, 129730, 1), Range32), $clone(new Range32.ptr(129744, 129750, 1), Range32), $clone(new Range32.ptr(129792, 129938, 1), Range32), $clone(new Range32.ptr(129940, 129994, 1), Range32)]), 10); - _Sc = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(36, 162, 126), Range16), $clone(new Range16.ptr(163, 165, 1), Range16), $clone(new Range16.ptr(1423, 1547, 124), Range16), $clone(new Range16.ptr(2046, 2047, 1), Range16), $clone(new Range16.ptr(2546, 2547, 1), Range16), $clone(new Range16.ptr(2555, 2801, 246), Range16), $clone(new Range16.ptr(3065, 3647, 582), Range16), $clone(new Range16.ptr(6107, 8352, 2245), Range16), $clone(new Range16.ptr(8353, 8383, 1), Range16), $clone(new Range16.ptr(43064, 65020, 21956), Range16), $clone(new Range16.ptr(65129, 65284, 155), Range16), $clone(new Range16.ptr(65504, 65505, 1), Range16), $clone(new Range16.ptr(65509, 65510, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(73693, 73696, 1), Range32), $clone(new Range32.ptr(123647, 126128, 2481), Range32)]), 2); - _Sk = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(94, 96, 2), Range16), $clone(new Range16.ptr(168, 175, 7), Range16), $clone(new Range16.ptr(180, 184, 4), Range16), $clone(new Range16.ptr(706, 709, 1), Range16), $clone(new Range16.ptr(722, 735, 1), Range16), $clone(new Range16.ptr(741, 747, 1), Range16), $clone(new Range16.ptr(749, 751, 2), Range16), $clone(new Range16.ptr(752, 767, 1), Range16), $clone(new Range16.ptr(885, 900, 15), Range16), $clone(new Range16.ptr(901, 8125, 7224), Range16), $clone(new Range16.ptr(8127, 8129, 1), Range16), $clone(new Range16.ptr(8141, 8143, 1), Range16), $clone(new Range16.ptr(8157, 8159, 1), Range16), $clone(new Range16.ptr(8173, 8175, 1), Range16), $clone(new Range16.ptr(8189, 8190, 1), Range16), $clone(new Range16.ptr(12443, 12444, 1), Range16), $clone(new Range16.ptr(42752, 42774, 1), Range16), $clone(new Range16.ptr(42784, 42785, 1), Range16), $clone(new Range16.ptr(42889, 42890, 1), Range16), $clone(new Range16.ptr(43867, 43882, 15), Range16), $clone(new Range16.ptr(43883, 64434, 20551), Range16), $clone(new Range16.ptr(64435, 64449, 1), Range16), $clone(new Range16.ptr(65342, 65344, 2), Range16), $clone(new Range16.ptr(65507, 65507, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(127995, 127999, 1), Range32)]), 3); + _Po = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(33, 35, 1), Range16), $clone(new Range16.ptr(37, 39, 1), Range16), $clone(new Range16.ptr(42, 46, 2), Range16), $clone(new Range16.ptr(47, 58, 11), Range16), $clone(new Range16.ptr(59, 63, 4), Range16), $clone(new Range16.ptr(64, 92, 28), Range16), $clone(new Range16.ptr(161, 167, 6), Range16), $clone(new Range16.ptr(182, 183, 1), Range16), $clone(new Range16.ptr(191, 894, 703), Range16), $clone(new Range16.ptr(903, 1370, 467), Range16), $clone(new Range16.ptr(1371, 1375, 1), Range16), $clone(new Range16.ptr(1417, 1472, 55), Range16), $clone(new Range16.ptr(1475, 1478, 3), Range16), $clone(new Range16.ptr(1523, 1524, 1), Range16), $clone(new Range16.ptr(1545, 1546, 1), Range16), $clone(new Range16.ptr(1548, 1549, 1), Range16), $clone(new Range16.ptr(1563, 1565, 2), Range16), $clone(new Range16.ptr(1566, 1567, 1), Range16), $clone(new Range16.ptr(1642, 1645, 1), Range16), $clone(new Range16.ptr(1748, 1792, 44), Range16), $clone(new Range16.ptr(1793, 1805, 1), Range16), $clone(new Range16.ptr(2039, 2041, 1), Range16), $clone(new Range16.ptr(2096, 2110, 1), Range16), $clone(new Range16.ptr(2142, 2404, 262), Range16), $clone(new Range16.ptr(2405, 2416, 11), Range16), $clone(new Range16.ptr(2557, 2678, 121), Range16), $clone(new Range16.ptr(2800, 3191, 391), Range16), $clone(new Range16.ptr(3204, 3572, 368), Range16), $clone(new Range16.ptr(3663, 3674, 11), Range16), $clone(new Range16.ptr(3675, 3844, 169), Range16), $clone(new Range16.ptr(3845, 3858, 1), Range16), $clone(new Range16.ptr(3860, 3973, 113), Range16), $clone(new Range16.ptr(4048, 4052, 1), Range16), $clone(new Range16.ptr(4057, 4058, 1), Range16), $clone(new Range16.ptr(4170, 4175, 1), Range16), $clone(new Range16.ptr(4347, 4960, 613), Range16), $clone(new Range16.ptr(4961, 4968, 1), Range16), $clone(new Range16.ptr(5742, 5867, 125), Range16), $clone(new Range16.ptr(5868, 5869, 1), Range16), $clone(new Range16.ptr(5941, 5942, 1), Range16), $clone(new Range16.ptr(6100, 6102, 1), Range16), $clone(new Range16.ptr(6104, 6106, 1), Range16), $clone(new Range16.ptr(6144, 6149, 1), Range16), $clone(new Range16.ptr(6151, 6154, 1), Range16), $clone(new Range16.ptr(6468, 6469, 1), Range16), $clone(new Range16.ptr(6686, 6687, 1), Range16), $clone(new Range16.ptr(6816, 6822, 1), Range16), $clone(new Range16.ptr(6824, 6829, 1), Range16), $clone(new Range16.ptr(7002, 7008, 1), Range16), $clone(new Range16.ptr(7037, 7038, 1), Range16), $clone(new Range16.ptr(7164, 7167, 1), Range16), $clone(new Range16.ptr(7227, 7231, 1), Range16), $clone(new Range16.ptr(7294, 7295, 1), Range16), $clone(new Range16.ptr(7360, 7367, 1), Range16), $clone(new Range16.ptr(7379, 8214, 835), Range16), $clone(new Range16.ptr(8215, 8224, 9), Range16), $clone(new Range16.ptr(8225, 8231, 1), Range16), $clone(new Range16.ptr(8240, 8248, 1), Range16), $clone(new Range16.ptr(8251, 8254, 1), Range16), $clone(new Range16.ptr(8257, 8259, 1), Range16), $clone(new Range16.ptr(8263, 8273, 1), Range16), $clone(new Range16.ptr(8275, 8277, 2), Range16), $clone(new Range16.ptr(8278, 8286, 1), Range16), $clone(new Range16.ptr(11513, 11516, 1), Range16), $clone(new Range16.ptr(11518, 11519, 1), Range16), $clone(new Range16.ptr(11632, 11776, 144), Range16), $clone(new Range16.ptr(11777, 11782, 5), Range16), $clone(new Range16.ptr(11783, 11784, 1), Range16), $clone(new Range16.ptr(11787, 11790, 3), Range16), $clone(new Range16.ptr(11791, 11798, 1), Range16), $clone(new Range16.ptr(11800, 11801, 1), Range16), $clone(new Range16.ptr(11803, 11806, 3), Range16), $clone(new Range16.ptr(11807, 11818, 11), Range16), $clone(new Range16.ptr(11819, 11822, 1), Range16), $clone(new Range16.ptr(11824, 11833, 1), Range16), $clone(new Range16.ptr(11836, 11839, 1), Range16), $clone(new Range16.ptr(11841, 11843, 2), Range16), $clone(new Range16.ptr(11844, 11855, 1), Range16), $clone(new Range16.ptr(11858, 11860, 1), Range16), $clone(new Range16.ptr(12289, 12291, 1), Range16), $clone(new Range16.ptr(12349, 12539, 190), Range16), $clone(new Range16.ptr(42238, 42239, 1), Range16), $clone(new Range16.ptr(42509, 42511, 1), Range16), $clone(new Range16.ptr(42611, 42622, 11), Range16), $clone(new Range16.ptr(42738, 42743, 1), Range16), $clone(new Range16.ptr(43124, 43127, 1), Range16), $clone(new Range16.ptr(43214, 43215, 1), Range16), $clone(new Range16.ptr(43256, 43258, 1), Range16), $clone(new Range16.ptr(43260, 43310, 50), Range16), $clone(new Range16.ptr(43311, 43359, 48), Range16), $clone(new Range16.ptr(43457, 43469, 1), Range16), $clone(new Range16.ptr(43486, 43487, 1), Range16), $clone(new Range16.ptr(43612, 43615, 1), Range16), $clone(new Range16.ptr(43742, 43743, 1), Range16), $clone(new Range16.ptr(43760, 43761, 1), Range16), $clone(new Range16.ptr(44011, 65040, 21029), Range16), $clone(new Range16.ptr(65041, 65046, 1), Range16), $clone(new Range16.ptr(65049, 65072, 23), Range16), $clone(new Range16.ptr(65093, 65094, 1), Range16), $clone(new Range16.ptr(65097, 65100, 1), Range16), $clone(new Range16.ptr(65104, 65106, 1), Range16), $clone(new Range16.ptr(65108, 65111, 1), Range16), $clone(new Range16.ptr(65119, 65121, 1), Range16), $clone(new Range16.ptr(65128, 65130, 2), Range16), $clone(new Range16.ptr(65131, 65281, 150), Range16), $clone(new Range16.ptr(65282, 65283, 1), Range16), $clone(new Range16.ptr(65285, 65287, 1), Range16), $clone(new Range16.ptr(65290, 65294, 2), Range16), $clone(new Range16.ptr(65295, 65306, 11), Range16), $clone(new Range16.ptr(65307, 65311, 4), Range16), $clone(new Range16.ptr(65312, 65340, 28), Range16), $clone(new Range16.ptr(65377, 65380, 3), Range16), $clone(new Range16.ptr(65381, 65381, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65792, 65794, 1), Range32), $clone(new Range32.ptr(66463, 66512, 49), Range32), $clone(new Range32.ptr(66927, 67671, 744), Range32), $clone(new Range32.ptr(67871, 67903, 32), Range32), $clone(new Range32.ptr(68176, 68184, 1), Range32), $clone(new Range32.ptr(68223, 68336, 113), Range32), $clone(new Range32.ptr(68337, 68342, 1), Range32), $clone(new Range32.ptr(68409, 68415, 1), Range32), $clone(new Range32.ptr(68505, 68508, 1), Range32), $clone(new Range32.ptr(69461, 69465, 1), Range32), $clone(new Range32.ptr(69510, 69513, 1), Range32), $clone(new Range32.ptr(69703, 69709, 1), Range32), $clone(new Range32.ptr(69819, 69820, 1), Range32), $clone(new Range32.ptr(69822, 69825, 1), Range32), $clone(new Range32.ptr(69952, 69955, 1), Range32), $clone(new Range32.ptr(70004, 70005, 1), Range32), $clone(new Range32.ptr(70085, 70088, 1), Range32), $clone(new Range32.ptr(70093, 70107, 14), Range32), $clone(new Range32.ptr(70109, 70111, 1), Range32), $clone(new Range32.ptr(70200, 70205, 1), Range32), $clone(new Range32.ptr(70313, 70731, 418), Range32), $clone(new Range32.ptr(70732, 70735, 1), Range32), $clone(new Range32.ptr(70746, 70747, 1), Range32), $clone(new Range32.ptr(70749, 70854, 105), Range32), $clone(new Range32.ptr(71105, 71127, 1), Range32), $clone(new Range32.ptr(71233, 71235, 1), Range32), $clone(new Range32.ptr(71264, 71276, 1), Range32), $clone(new Range32.ptr(71353, 71484, 131), Range32), $clone(new Range32.ptr(71485, 71486, 1), Range32), $clone(new Range32.ptr(71739, 72004, 265), Range32), $clone(new Range32.ptr(72005, 72006, 1), Range32), $clone(new Range32.ptr(72162, 72255, 93), Range32), $clone(new Range32.ptr(72256, 72262, 1), Range32), $clone(new Range32.ptr(72346, 72348, 1), Range32), $clone(new Range32.ptr(72350, 72354, 1), Range32), $clone(new Range32.ptr(72448, 72457, 1), Range32), $clone(new Range32.ptr(72769, 72773, 1), Range32), $clone(new Range32.ptr(72816, 72817, 1), Range32), $clone(new Range32.ptr(73463, 73464, 1), Range32), $clone(new Range32.ptr(73539, 73551, 1), Range32), $clone(new Range32.ptr(73727, 74864, 1137), Range32), $clone(new Range32.ptr(74865, 74868, 1), Range32), $clone(new Range32.ptr(77809, 77810, 1), Range32), $clone(new Range32.ptr(92782, 92783, 1), Range32), $clone(new Range32.ptr(92917, 92983, 66), Range32), $clone(new Range32.ptr(92984, 92987, 1), Range32), $clone(new Range32.ptr(92996, 93847, 851), Range32), $clone(new Range32.ptr(93848, 93850, 1), Range32), $clone(new Range32.ptr(94178, 113823, 19645), Range32), $clone(new Range32.ptr(121479, 121483, 1), Range32), $clone(new Range32.ptr(125278, 125279, 1), Range32)]), 8); + _Ps = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(40, 91, 51), Range16), $clone(new Range16.ptr(123, 3898, 3775), Range16), $clone(new Range16.ptr(3900, 5787, 1887), Range16), $clone(new Range16.ptr(8218, 8222, 4), Range16), $clone(new Range16.ptr(8261, 8317, 56), Range16), $clone(new Range16.ptr(8333, 8968, 635), Range16), $clone(new Range16.ptr(8970, 9001, 31), Range16), $clone(new Range16.ptr(10088, 10100, 2), Range16), $clone(new Range16.ptr(10181, 10214, 33), Range16), $clone(new Range16.ptr(10216, 10222, 2), Range16), $clone(new Range16.ptr(10627, 10647, 2), Range16), $clone(new Range16.ptr(10712, 10714, 2), Range16), $clone(new Range16.ptr(10748, 11810, 1062), Range16), $clone(new Range16.ptr(11812, 11816, 2), Range16), $clone(new Range16.ptr(11842, 11861, 19), Range16), $clone(new Range16.ptr(11863, 11867, 2), Range16), $clone(new Range16.ptr(12296, 12304, 2), Range16), $clone(new Range16.ptr(12308, 12314, 2), Range16), $clone(new Range16.ptr(12317, 64831, 52514), Range16), $clone(new Range16.ptr(65047, 65077, 30), Range16), $clone(new Range16.ptr(65079, 65091, 2), Range16), $clone(new Range16.ptr(65095, 65113, 18), Range16), $clone(new Range16.ptr(65115, 65117, 2), Range16), $clone(new Range16.ptr(65288, 65339, 51), Range16), $clone(new Range16.ptr(65371, 65375, 4), Range16), $clone(new Range16.ptr(65378, 65378, 1), Range16)]), sliceType$1.nil, 1); + _S = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(36, 43, 7), Range16), $clone(new Range16.ptr(60, 62, 1), Range16), $clone(new Range16.ptr(94, 96, 2), Range16), $clone(new Range16.ptr(124, 126, 2), Range16), $clone(new Range16.ptr(162, 166, 1), Range16), $clone(new Range16.ptr(168, 169, 1), Range16), $clone(new Range16.ptr(172, 174, 2), Range16), $clone(new Range16.ptr(175, 177, 1), Range16), $clone(new Range16.ptr(180, 184, 4), Range16), $clone(new Range16.ptr(215, 247, 32), Range16), $clone(new Range16.ptr(706, 709, 1), Range16), $clone(new Range16.ptr(722, 735, 1), Range16), $clone(new Range16.ptr(741, 747, 1), Range16), $clone(new Range16.ptr(749, 751, 2), Range16), $clone(new Range16.ptr(752, 767, 1), Range16), $clone(new Range16.ptr(885, 900, 15), Range16), $clone(new Range16.ptr(901, 1014, 113), Range16), $clone(new Range16.ptr(1154, 1421, 267), Range16), $clone(new Range16.ptr(1422, 1423, 1), Range16), $clone(new Range16.ptr(1542, 1544, 1), Range16), $clone(new Range16.ptr(1547, 1550, 3), Range16), $clone(new Range16.ptr(1551, 1758, 207), Range16), $clone(new Range16.ptr(1769, 1789, 20), Range16), $clone(new Range16.ptr(1790, 2038, 248), Range16), $clone(new Range16.ptr(2046, 2047, 1), Range16), $clone(new Range16.ptr(2184, 2546, 362), Range16), $clone(new Range16.ptr(2547, 2554, 7), Range16), $clone(new Range16.ptr(2555, 2801, 246), Range16), $clone(new Range16.ptr(2928, 3059, 131), Range16), $clone(new Range16.ptr(3060, 3066, 1), Range16), $clone(new Range16.ptr(3199, 3407, 208), Range16), $clone(new Range16.ptr(3449, 3647, 198), Range16), $clone(new Range16.ptr(3841, 3843, 1), Range16), $clone(new Range16.ptr(3859, 3861, 2), Range16), $clone(new Range16.ptr(3862, 3863, 1), Range16), $clone(new Range16.ptr(3866, 3871, 1), Range16), $clone(new Range16.ptr(3892, 3896, 2), Range16), $clone(new Range16.ptr(4030, 4037, 1), Range16), $clone(new Range16.ptr(4039, 4044, 1), Range16), $clone(new Range16.ptr(4046, 4047, 1), Range16), $clone(new Range16.ptr(4053, 4056, 1), Range16), $clone(new Range16.ptr(4254, 4255, 1), Range16), $clone(new Range16.ptr(5008, 5017, 1), Range16), $clone(new Range16.ptr(5741, 6107, 366), Range16), $clone(new Range16.ptr(6464, 6622, 158), Range16), $clone(new Range16.ptr(6623, 6655, 1), Range16), $clone(new Range16.ptr(7009, 7018, 1), Range16), $clone(new Range16.ptr(7028, 7036, 1), Range16), $clone(new Range16.ptr(8125, 8127, 2), Range16), $clone(new Range16.ptr(8128, 8129, 1), Range16), $clone(new Range16.ptr(8141, 8143, 1), Range16), $clone(new Range16.ptr(8157, 8159, 1), Range16), $clone(new Range16.ptr(8173, 8175, 1), Range16), $clone(new Range16.ptr(8189, 8190, 1), Range16), $clone(new Range16.ptr(8260, 8274, 14), Range16), $clone(new Range16.ptr(8314, 8316, 1), Range16), $clone(new Range16.ptr(8330, 8332, 1), Range16), $clone(new Range16.ptr(8352, 8384, 1), Range16), $clone(new Range16.ptr(8448, 8449, 1), Range16), $clone(new Range16.ptr(8451, 8454, 1), Range16), $clone(new Range16.ptr(8456, 8457, 1), Range16), $clone(new Range16.ptr(8468, 8470, 2), Range16), $clone(new Range16.ptr(8471, 8472, 1), Range16), $clone(new Range16.ptr(8478, 8483, 1), Range16), $clone(new Range16.ptr(8485, 8489, 2), Range16), $clone(new Range16.ptr(8494, 8506, 12), Range16), $clone(new Range16.ptr(8507, 8512, 5), Range16), $clone(new Range16.ptr(8513, 8516, 1), Range16), $clone(new Range16.ptr(8522, 8525, 1), Range16), $clone(new Range16.ptr(8527, 8586, 59), Range16), $clone(new Range16.ptr(8587, 8592, 5), Range16), $clone(new Range16.ptr(8593, 8967, 1), Range16), $clone(new Range16.ptr(8972, 9000, 1), Range16), $clone(new Range16.ptr(9003, 9254, 1), Range16), $clone(new Range16.ptr(9280, 9290, 1), Range16), $clone(new Range16.ptr(9372, 9449, 1), Range16), $clone(new Range16.ptr(9472, 10087, 1), Range16), $clone(new Range16.ptr(10132, 10180, 1), Range16), $clone(new Range16.ptr(10183, 10213, 1), Range16), $clone(new Range16.ptr(10224, 10626, 1), Range16), $clone(new Range16.ptr(10649, 10711, 1), Range16), $clone(new Range16.ptr(10716, 10747, 1), Range16), $clone(new Range16.ptr(10750, 11123, 1), Range16), $clone(new Range16.ptr(11126, 11157, 1), Range16), $clone(new Range16.ptr(11159, 11263, 1), Range16), $clone(new Range16.ptr(11493, 11498, 1), Range16), $clone(new Range16.ptr(11856, 11857, 1), Range16), $clone(new Range16.ptr(11904, 11929, 1), Range16), $clone(new Range16.ptr(11931, 12019, 1), Range16), $clone(new Range16.ptr(12032, 12245, 1), Range16), $clone(new Range16.ptr(12272, 12283, 1), Range16), $clone(new Range16.ptr(12292, 12306, 14), Range16), $clone(new Range16.ptr(12307, 12320, 13), Range16), $clone(new Range16.ptr(12342, 12343, 1), Range16), $clone(new Range16.ptr(12350, 12351, 1), Range16), $clone(new Range16.ptr(12443, 12444, 1), Range16), $clone(new Range16.ptr(12688, 12689, 1), Range16), $clone(new Range16.ptr(12694, 12703, 1), Range16), $clone(new Range16.ptr(12736, 12771, 1), Range16), $clone(new Range16.ptr(12800, 12830, 1), Range16), $clone(new Range16.ptr(12842, 12871, 1), Range16), $clone(new Range16.ptr(12880, 12896, 16), Range16), $clone(new Range16.ptr(12897, 12927, 1), Range16), $clone(new Range16.ptr(12938, 12976, 1), Range16), $clone(new Range16.ptr(12992, 13311, 1), Range16), $clone(new Range16.ptr(19904, 19967, 1), Range16), $clone(new Range16.ptr(42128, 42182, 1), Range16), $clone(new Range16.ptr(42752, 42774, 1), Range16), $clone(new Range16.ptr(42784, 42785, 1), Range16), $clone(new Range16.ptr(42889, 42890, 1), Range16), $clone(new Range16.ptr(43048, 43051, 1), Range16), $clone(new Range16.ptr(43062, 43065, 1), Range16), $clone(new Range16.ptr(43639, 43641, 1), Range16), $clone(new Range16.ptr(43867, 43882, 15), Range16), $clone(new Range16.ptr(43883, 64297, 20414), Range16), $clone(new Range16.ptr(64434, 64450, 1), Range16), $clone(new Range16.ptr(64832, 64847, 1), Range16), $clone(new Range16.ptr(64975, 65020, 45), Range16), $clone(new Range16.ptr(65021, 65023, 1), Range16), $clone(new Range16.ptr(65122, 65124, 2), Range16), $clone(new Range16.ptr(65125, 65126, 1), Range16), $clone(new Range16.ptr(65129, 65284, 155), Range16), $clone(new Range16.ptr(65291, 65308, 17), Range16), $clone(new Range16.ptr(65309, 65310, 1), Range16), $clone(new Range16.ptr(65342, 65344, 2), Range16), $clone(new Range16.ptr(65372, 65374, 2), Range16), $clone(new Range16.ptr(65504, 65510, 1), Range16), $clone(new Range16.ptr(65512, 65518, 1), Range16), $clone(new Range16.ptr(65532, 65533, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65847, 65855, 1), Range32), $clone(new Range32.ptr(65913, 65929, 1), Range32), $clone(new Range32.ptr(65932, 65934, 1), Range32), $clone(new Range32.ptr(65936, 65948, 1), Range32), $clone(new Range32.ptr(65952, 66000, 48), Range32), $clone(new Range32.ptr(66001, 66044, 1), Range32), $clone(new Range32.ptr(67703, 67704, 1), Range32), $clone(new Range32.ptr(68296, 71487, 3191), Range32), $clone(new Range32.ptr(73685, 73713, 1), Range32), $clone(new Range32.ptr(92988, 92991, 1), Range32), $clone(new Range32.ptr(92997, 113820, 20823), Range32), $clone(new Range32.ptr(118608, 118723, 1), Range32), $clone(new Range32.ptr(118784, 119029, 1), Range32), $clone(new Range32.ptr(119040, 119078, 1), Range32), $clone(new Range32.ptr(119081, 119140, 1), Range32), $clone(new Range32.ptr(119146, 119148, 1), Range32), $clone(new Range32.ptr(119171, 119172, 1), Range32), $clone(new Range32.ptr(119180, 119209, 1), Range32), $clone(new Range32.ptr(119214, 119274, 1), Range32), $clone(new Range32.ptr(119296, 119361, 1), Range32), $clone(new Range32.ptr(119365, 119552, 187), Range32), $clone(new Range32.ptr(119553, 119638, 1), Range32), $clone(new Range32.ptr(120513, 120539, 26), Range32), $clone(new Range32.ptr(120571, 120597, 26), Range32), $clone(new Range32.ptr(120629, 120655, 26), Range32), $clone(new Range32.ptr(120687, 120713, 26), Range32), $clone(new Range32.ptr(120745, 120771, 26), Range32), $clone(new Range32.ptr(120832, 121343, 1), Range32), $clone(new Range32.ptr(121399, 121402, 1), Range32), $clone(new Range32.ptr(121453, 121460, 1), Range32), $clone(new Range32.ptr(121462, 121475, 1), Range32), $clone(new Range32.ptr(121477, 121478, 1), Range32), $clone(new Range32.ptr(123215, 123647, 432), Range32), $clone(new Range32.ptr(126124, 126128, 4), Range32), $clone(new Range32.ptr(126254, 126704, 450), Range32), $clone(new Range32.ptr(126705, 126976, 271), Range32), $clone(new Range32.ptr(126977, 127019, 1), Range32), $clone(new Range32.ptr(127024, 127123, 1), Range32), $clone(new Range32.ptr(127136, 127150, 1), Range32), $clone(new Range32.ptr(127153, 127167, 1), Range32), $clone(new Range32.ptr(127169, 127183, 1), Range32), $clone(new Range32.ptr(127185, 127221, 1), Range32), $clone(new Range32.ptr(127245, 127405, 1), Range32), $clone(new Range32.ptr(127462, 127490, 1), Range32), $clone(new Range32.ptr(127504, 127547, 1), Range32), $clone(new Range32.ptr(127552, 127560, 1), Range32), $clone(new Range32.ptr(127568, 127569, 1), Range32), $clone(new Range32.ptr(127584, 127589, 1), Range32), $clone(new Range32.ptr(127744, 128727, 1), Range32), $clone(new Range32.ptr(128732, 128748, 1), Range32), $clone(new Range32.ptr(128752, 128764, 1), Range32), $clone(new Range32.ptr(128768, 128886, 1), Range32), $clone(new Range32.ptr(128891, 128985, 1), Range32), $clone(new Range32.ptr(128992, 129003, 1), Range32), $clone(new Range32.ptr(129008, 129024, 16), Range32), $clone(new Range32.ptr(129025, 129035, 1), Range32), $clone(new Range32.ptr(129040, 129095, 1), Range32), $clone(new Range32.ptr(129104, 129113, 1), Range32), $clone(new Range32.ptr(129120, 129159, 1), Range32), $clone(new Range32.ptr(129168, 129197, 1), Range32), $clone(new Range32.ptr(129200, 129201, 1), Range32), $clone(new Range32.ptr(129280, 129619, 1), Range32), $clone(new Range32.ptr(129632, 129645, 1), Range32), $clone(new Range32.ptr(129648, 129660, 1), Range32), $clone(new Range32.ptr(129664, 129672, 1), Range32), $clone(new Range32.ptr(129680, 129725, 1), Range32), $clone(new Range32.ptr(129727, 129733, 1), Range32), $clone(new Range32.ptr(129742, 129755, 1), Range32), $clone(new Range32.ptr(129760, 129768, 1), Range32), $clone(new Range32.ptr(129776, 129784, 1), Range32), $clone(new Range32.ptr(129792, 129938, 1), Range32), $clone(new Range32.ptr(129940, 129994, 1), Range32)]), 10); + _Sc = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(36, 162, 126), Range16), $clone(new Range16.ptr(163, 165, 1), Range16), $clone(new Range16.ptr(1423, 1547, 124), Range16), $clone(new Range16.ptr(2046, 2047, 1), Range16), $clone(new Range16.ptr(2546, 2547, 1), Range16), $clone(new Range16.ptr(2555, 2801, 246), Range16), $clone(new Range16.ptr(3065, 3647, 582), Range16), $clone(new Range16.ptr(6107, 8352, 2245), Range16), $clone(new Range16.ptr(8353, 8384, 1), Range16), $clone(new Range16.ptr(43064, 65020, 21956), Range16), $clone(new Range16.ptr(65129, 65284, 155), Range16), $clone(new Range16.ptr(65504, 65505, 1), Range16), $clone(new Range16.ptr(65509, 65510, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(73693, 73696, 1), Range32), $clone(new Range32.ptr(123647, 126128, 2481), Range32)]), 2); + _Sk = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(94, 96, 2), Range16), $clone(new Range16.ptr(168, 175, 7), Range16), $clone(new Range16.ptr(180, 184, 4), Range16), $clone(new Range16.ptr(706, 709, 1), Range16), $clone(new Range16.ptr(722, 735, 1), Range16), $clone(new Range16.ptr(741, 747, 1), Range16), $clone(new Range16.ptr(749, 751, 2), Range16), $clone(new Range16.ptr(752, 767, 1), Range16), $clone(new Range16.ptr(885, 900, 15), Range16), $clone(new Range16.ptr(901, 2184, 1283), Range16), $clone(new Range16.ptr(8125, 8127, 2), Range16), $clone(new Range16.ptr(8128, 8129, 1), Range16), $clone(new Range16.ptr(8141, 8143, 1), Range16), $clone(new Range16.ptr(8157, 8159, 1), Range16), $clone(new Range16.ptr(8173, 8175, 1), Range16), $clone(new Range16.ptr(8189, 8190, 1), Range16), $clone(new Range16.ptr(12443, 12444, 1), Range16), $clone(new Range16.ptr(42752, 42774, 1), Range16), $clone(new Range16.ptr(42784, 42785, 1), Range16), $clone(new Range16.ptr(42889, 42890, 1), Range16), $clone(new Range16.ptr(43867, 43882, 15), Range16), $clone(new Range16.ptr(43883, 64434, 20551), Range16), $clone(new Range16.ptr(64435, 64450, 1), Range16), $clone(new Range16.ptr(65342, 65344, 2), Range16), $clone(new Range16.ptr(65507, 65507, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(127995, 127999, 1), Range32)]), 3); _Sm = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(43, 60, 17), Range16), $clone(new Range16.ptr(61, 62, 1), Range16), $clone(new Range16.ptr(124, 126, 2), Range16), $clone(new Range16.ptr(172, 177, 5), Range16), $clone(new Range16.ptr(215, 247, 32), Range16), $clone(new Range16.ptr(1014, 1542, 528), Range16), $clone(new Range16.ptr(1543, 1544, 1), Range16), $clone(new Range16.ptr(8260, 8274, 14), Range16), $clone(new Range16.ptr(8314, 8316, 1), Range16), $clone(new Range16.ptr(8330, 8332, 1), Range16), $clone(new Range16.ptr(8472, 8512, 40), Range16), $clone(new Range16.ptr(8513, 8516, 1), Range16), $clone(new Range16.ptr(8523, 8592, 69), Range16), $clone(new Range16.ptr(8593, 8596, 1), Range16), $clone(new Range16.ptr(8602, 8603, 1), Range16), $clone(new Range16.ptr(8608, 8614, 3), Range16), $clone(new Range16.ptr(8622, 8654, 32), Range16), $clone(new Range16.ptr(8655, 8658, 3), Range16), $clone(new Range16.ptr(8660, 8692, 32), Range16), $clone(new Range16.ptr(8693, 8959, 1), Range16), $clone(new Range16.ptr(8992, 8993, 1), Range16), $clone(new Range16.ptr(9084, 9115, 31), Range16), $clone(new Range16.ptr(9116, 9139, 1), Range16), $clone(new Range16.ptr(9180, 9185, 1), Range16), $clone(new Range16.ptr(9655, 9665, 10), Range16), $clone(new Range16.ptr(9720, 9727, 1), Range16), $clone(new Range16.ptr(9839, 10176, 337), Range16), $clone(new Range16.ptr(10177, 10180, 1), Range16), $clone(new Range16.ptr(10183, 10213, 1), Range16), $clone(new Range16.ptr(10224, 10239, 1), Range16), $clone(new Range16.ptr(10496, 10626, 1), Range16), $clone(new Range16.ptr(10649, 10711, 1), Range16), $clone(new Range16.ptr(10716, 10747, 1), Range16), $clone(new Range16.ptr(10750, 11007, 1), Range16), $clone(new Range16.ptr(11056, 11076, 1), Range16), $clone(new Range16.ptr(11079, 11084, 1), Range16), $clone(new Range16.ptr(64297, 65122, 825), Range16), $clone(new Range16.ptr(65124, 65126, 1), Range16), $clone(new Range16.ptr(65291, 65308, 17), Range16), $clone(new Range16.ptr(65309, 65310, 1), Range16), $clone(new Range16.ptr(65372, 65374, 2), Range16), $clone(new Range16.ptr(65506, 65513, 7), Range16), $clone(new Range16.ptr(65514, 65516, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(120513, 120539, 26), Range32), $clone(new Range32.ptr(120571, 120597, 26), Range32), $clone(new Range32.ptr(120629, 120655, 26), Range32), $clone(new Range32.ptr(120687, 120713, 26), Range32), $clone(new Range32.ptr(120745, 120771, 26), Range32), $clone(new Range32.ptr(126704, 126705, 1), Range32)]), 5); - _So = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(166, 169, 3), Range16), $clone(new Range16.ptr(174, 176, 2), Range16), $clone(new Range16.ptr(1154, 1421, 267), Range16), $clone(new Range16.ptr(1422, 1550, 128), Range16), $clone(new Range16.ptr(1551, 1758, 207), Range16), $clone(new Range16.ptr(1769, 1789, 20), Range16), $clone(new Range16.ptr(1790, 2038, 248), Range16), $clone(new Range16.ptr(2554, 2928, 374), Range16), $clone(new Range16.ptr(3059, 3064, 1), Range16), $clone(new Range16.ptr(3066, 3199, 133), Range16), $clone(new Range16.ptr(3407, 3449, 42), Range16), $clone(new Range16.ptr(3841, 3843, 1), Range16), $clone(new Range16.ptr(3859, 3861, 2), Range16), $clone(new Range16.ptr(3862, 3863, 1), Range16), $clone(new Range16.ptr(3866, 3871, 1), Range16), $clone(new Range16.ptr(3892, 3896, 2), Range16), $clone(new Range16.ptr(4030, 4037, 1), Range16), $clone(new Range16.ptr(4039, 4044, 1), Range16), $clone(new Range16.ptr(4046, 4047, 1), Range16), $clone(new Range16.ptr(4053, 4056, 1), Range16), $clone(new Range16.ptr(4254, 4255, 1), Range16), $clone(new Range16.ptr(5008, 5017, 1), Range16), $clone(new Range16.ptr(5741, 6464, 723), Range16), $clone(new Range16.ptr(6622, 6655, 1), Range16), $clone(new Range16.ptr(7009, 7018, 1), Range16), $clone(new Range16.ptr(7028, 7036, 1), Range16), $clone(new Range16.ptr(8448, 8449, 1), Range16), $clone(new Range16.ptr(8451, 8454, 1), Range16), $clone(new Range16.ptr(8456, 8457, 1), Range16), $clone(new Range16.ptr(8468, 8470, 2), Range16), $clone(new Range16.ptr(8471, 8478, 7), Range16), $clone(new Range16.ptr(8479, 8483, 1), Range16), $clone(new Range16.ptr(8485, 8489, 2), Range16), $clone(new Range16.ptr(8494, 8506, 12), Range16), $clone(new Range16.ptr(8507, 8522, 15), Range16), $clone(new Range16.ptr(8524, 8525, 1), Range16), $clone(new Range16.ptr(8527, 8586, 59), Range16), $clone(new Range16.ptr(8587, 8597, 10), Range16), $clone(new Range16.ptr(8598, 8601, 1), Range16), $clone(new Range16.ptr(8604, 8607, 1), Range16), $clone(new Range16.ptr(8609, 8610, 1), Range16), $clone(new Range16.ptr(8612, 8613, 1), Range16), $clone(new Range16.ptr(8615, 8621, 1), Range16), $clone(new Range16.ptr(8623, 8653, 1), Range16), $clone(new Range16.ptr(8656, 8657, 1), Range16), $clone(new Range16.ptr(8659, 8661, 2), Range16), $clone(new Range16.ptr(8662, 8691, 1), Range16), $clone(new Range16.ptr(8960, 8967, 1), Range16), $clone(new Range16.ptr(8972, 8991, 1), Range16), $clone(new Range16.ptr(8994, 9000, 1), Range16), $clone(new Range16.ptr(9003, 9083, 1), Range16), $clone(new Range16.ptr(9085, 9114, 1), Range16), $clone(new Range16.ptr(9140, 9179, 1), Range16), $clone(new Range16.ptr(9186, 9254, 1), Range16), $clone(new Range16.ptr(9280, 9290, 1), Range16), $clone(new Range16.ptr(9372, 9449, 1), Range16), $clone(new Range16.ptr(9472, 9654, 1), Range16), $clone(new Range16.ptr(9656, 9664, 1), Range16), $clone(new Range16.ptr(9666, 9719, 1), Range16), $clone(new Range16.ptr(9728, 9838, 1), Range16), $clone(new Range16.ptr(9840, 10087, 1), Range16), $clone(new Range16.ptr(10132, 10175, 1), Range16), $clone(new Range16.ptr(10240, 10495, 1), Range16), $clone(new Range16.ptr(11008, 11055, 1), Range16), $clone(new Range16.ptr(11077, 11078, 1), Range16), $clone(new Range16.ptr(11085, 11123, 1), Range16), $clone(new Range16.ptr(11126, 11157, 1), Range16), $clone(new Range16.ptr(11159, 11263, 1), Range16), $clone(new Range16.ptr(11493, 11498, 1), Range16), $clone(new Range16.ptr(11856, 11857, 1), Range16), $clone(new Range16.ptr(11904, 11929, 1), Range16), $clone(new Range16.ptr(11931, 12019, 1), Range16), $clone(new Range16.ptr(12032, 12245, 1), Range16), $clone(new Range16.ptr(12272, 12283, 1), Range16), $clone(new Range16.ptr(12292, 12306, 14), Range16), $clone(new Range16.ptr(12307, 12320, 13), Range16), $clone(new Range16.ptr(12342, 12343, 1), Range16), $clone(new Range16.ptr(12350, 12351, 1), Range16), $clone(new Range16.ptr(12688, 12689, 1), Range16), $clone(new Range16.ptr(12694, 12703, 1), Range16), $clone(new Range16.ptr(12736, 12771, 1), Range16), $clone(new Range16.ptr(12800, 12830, 1), Range16), $clone(new Range16.ptr(12842, 12871, 1), Range16), $clone(new Range16.ptr(12880, 12896, 16), Range16), $clone(new Range16.ptr(12897, 12927, 1), Range16), $clone(new Range16.ptr(12938, 12976, 1), Range16), $clone(new Range16.ptr(12992, 13311, 1), Range16), $clone(new Range16.ptr(19904, 19967, 1), Range16), $clone(new Range16.ptr(42128, 42182, 1), Range16), $clone(new Range16.ptr(43048, 43051, 1), Range16), $clone(new Range16.ptr(43062, 43063, 1), Range16), $clone(new Range16.ptr(43065, 43639, 574), Range16), $clone(new Range16.ptr(43640, 43641, 1), Range16), $clone(new Range16.ptr(65021, 65508, 487), Range16), $clone(new Range16.ptr(65512, 65517, 5), Range16), $clone(new Range16.ptr(65518, 65532, 14), Range16), $clone(new Range16.ptr(65533, 65533, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65847, 65855, 1), Range32), $clone(new Range32.ptr(65913, 65929, 1), Range32), $clone(new Range32.ptr(65932, 65934, 1), Range32), $clone(new Range32.ptr(65936, 65948, 1), Range32), $clone(new Range32.ptr(65952, 66000, 48), Range32), $clone(new Range32.ptr(66001, 66044, 1), Range32), $clone(new Range32.ptr(67703, 67704, 1), Range32), $clone(new Range32.ptr(68296, 71487, 3191), Range32), $clone(new Range32.ptr(73685, 73692, 1), Range32), $clone(new Range32.ptr(73697, 73713, 1), Range32), $clone(new Range32.ptr(92988, 92991, 1), Range32), $clone(new Range32.ptr(92997, 113820, 20823), Range32), $clone(new Range32.ptr(118784, 119029, 1), Range32), $clone(new Range32.ptr(119040, 119078, 1), Range32), $clone(new Range32.ptr(119081, 119140, 1), Range32), $clone(new Range32.ptr(119146, 119148, 1), Range32), $clone(new Range32.ptr(119171, 119172, 1), Range32), $clone(new Range32.ptr(119180, 119209, 1), Range32), $clone(new Range32.ptr(119214, 119272, 1), Range32), $clone(new Range32.ptr(119296, 119361, 1), Range32), $clone(new Range32.ptr(119365, 119552, 187), Range32), $clone(new Range32.ptr(119553, 119638, 1), Range32), $clone(new Range32.ptr(120832, 121343, 1), Range32), $clone(new Range32.ptr(121399, 121402, 1), Range32), $clone(new Range32.ptr(121453, 121460, 1), Range32), $clone(new Range32.ptr(121462, 121475, 1), Range32), $clone(new Range32.ptr(121477, 121478, 1), Range32), $clone(new Range32.ptr(123215, 126124, 2909), Range32), $clone(new Range32.ptr(126254, 126976, 722), Range32), $clone(new Range32.ptr(126977, 127019, 1), Range32), $clone(new Range32.ptr(127024, 127123, 1), Range32), $clone(new Range32.ptr(127136, 127150, 1), Range32), $clone(new Range32.ptr(127153, 127167, 1), Range32), $clone(new Range32.ptr(127169, 127183, 1), Range32), $clone(new Range32.ptr(127185, 127221, 1), Range32), $clone(new Range32.ptr(127245, 127405, 1), Range32), $clone(new Range32.ptr(127462, 127490, 1), Range32), $clone(new Range32.ptr(127504, 127547, 1), Range32), $clone(new Range32.ptr(127552, 127560, 1), Range32), $clone(new Range32.ptr(127568, 127569, 1), Range32), $clone(new Range32.ptr(127584, 127589, 1), Range32), $clone(new Range32.ptr(127744, 127994, 1), Range32), $clone(new Range32.ptr(128000, 128727, 1), Range32), $clone(new Range32.ptr(128736, 128748, 1), Range32), $clone(new Range32.ptr(128752, 128764, 1), Range32), $clone(new Range32.ptr(128768, 128883, 1), Range32), $clone(new Range32.ptr(128896, 128984, 1), Range32), $clone(new Range32.ptr(128992, 129003, 1), Range32), $clone(new Range32.ptr(129024, 129035, 1), Range32), $clone(new Range32.ptr(129040, 129095, 1), Range32), $clone(new Range32.ptr(129104, 129113, 1), Range32), $clone(new Range32.ptr(129120, 129159, 1), Range32), $clone(new Range32.ptr(129168, 129197, 1), Range32), $clone(new Range32.ptr(129200, 129201, 1), Range32), $clone(new Range32.ptr(129280, 129400, 1), Range32), $clone(new Range32.ptr(129402, 129483, 1), Range32), $clone(new Range32.ptr(129485, 129619, 1), Range32), $clone(new Range32.ptr(129632, 129645, 1), Range32), $clone(new Range32.ptr(129648, 129652, 1), Range32), $clone(new Range32.ptr(129656, 129658, 1), Range32), $clone(new Range32.ptr(129664, 129670, 1), Range32), $clone(new Range32.ptr(129680, 129704, 1), Range32), $clone(new Range32.ptr(129712, 129718, 1), Range32), $clone(new Range32.ptr(129728, 129730, 1), Range32), $clone(new Range32.ptr(129744, 129750, 1), Range32), $clone(new Range32.ptr(129792, 129938, 1), Range32), $clone(new Range32.ptr(129940, 129994, 1), Range32)]), 2); + _So = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(166, 169, 3), Range16), $clone(new Range16.ptr(174, 176, 2), Range16), $clone(new Range16.ptr(1154, 1421, 267), Range16), $clone(new Range16.ptr(1422, 1550, 128), Range16), $clone(new Range16.ptr(1551, 1758, 207), Range16), $clone(new Range16.ptr(1769, 1789, 20), Range16), $clone(new Range16.ptr(1790, 2038, 248), Range16), $clone(new Range16.ptr(2554, 2928, 374), Range16), $clone(new Range16.ptr(3059, 3064, 1), Range16), $clone(new Range16.ptr(3066, 3199, 133), Range16), $clone(new Range16.ptr(3407, 3449, 42), Range16), $clone(new Range16.ptr(3841, 3843, 1), Range16), $clone(new Range16.ptr(3859, 3861, 2), Range16), $clone(new Range16.ptr(3862, 3863, 1), Range16), $clone(new Range16.ptr(3866, 3871, 1), Range16), $clone(new Range16.ptr(3892, 3896, 2), Range16), $clone(new Range16.ptr(4030, 4037, 1), Range16), $clone(new Range16.ptr(4039, 4044, 1), Range16), $clone(new Range16.ptr(4046, 4047, 1), Range16), $clone(new Range16.ptr(4053, 4056, 1), Range16), $clone(new Range16.ptr(4254, 4255, 1), Range16), $clone(new Range16.ptr(5008, 5017, 1), Range16), $clone(new Range16.ptr(5741, 6464, 723), Range16), $clone(new Range16.ptr(6622, 6655, 1), Range16), $clone(new Range16.ptr(7009, 7018, 1), Range16), $clone(new Range16.ptr(7028, 7036, 1), Range16), $clone(new Range16.ptr(8448, 8449, 1), Range16), $clone(new Range16.ptr(8451, 8454, 1), Range16), $clone(new Range16.ptr(8456, 8457, 1), Range16), $clone(new Range16.ptr(8468, 8470, 2), Range16), $clone(new Range16.ptr(8471, 8478, 7), Range16), $clone(new Range16.ptr(8479, 8483, 1), Range16), $clone(new Range16.ptr(8485, 8489, 2), Range16), $clone(new Range16.ptr(8494, 8506, 12), Range16), $clone(new Range16.ptr(8507, 8522, 15), Range16), $clone(new Range16.ptr(8524, 8525, 1), Range16), $clone(new Range16.ptr(8527, 8586, 59), Range16), $clone(new Range16.ptr(8587, 8597, 10), Range16), $clone(new Range16.ptr(8598, 8601, 1), Range16), $clone(new Range16.ptr(8604, 8607, 1), Range16), $clone(new Range16.ptr(8609, 8610, 1), Range16), $clone(new Range16.ptr(8612, 8613, 1), Range16), $clone(new Range16.ptr(8615, 8621, 1), Range16), $clone(new Range16.ptr(8623, 8653, 1), Range16), $clone(new Range16.ptr(8656, 8657, 1), Range16), $clone(new Range16.ptr(8659, 8661, 2), Range16), $clone(new Range16.ptr(8662, 8691, 1), Range16), $clone(new Range16.ptr(8960, 8967, 1), Range16), $clone(new Range16.ptr(8972, 8991, 1), Range16), $clone(new Range16.ptr(8994, 9000, 1), Range16), $clone(new Range16.ptr(9003, 9083, 1), Range16), $clone(new Range16.ptr(9085, 9114, 1), Range16), $clone(new Range16.ptr(9140, 9179, 1), Range16), $clone(new Range16.ptr(9186, 9254, 1), Range16), $clone(new Range16.ptr(9280, 9290, 1), Range16), $clone(new Range16.ptr(9372, 9449, 1), Range16), $clone(new Range16.ptr(9472, 9654, 1), Range16), $clone(new Range16.ptr(9656, 9664, 1), Range16), $clone(new Range16.ptr(9666, 9719, 1), Range16), $clone(new Range16.ptr(9728, 9838, 1), Range16), $clone(new Range16.ptr(9840, 10087, 1), Range16), $clone(new Range16.ptr(10132, 10175, 1), Range16), $clone(new Range16.ptr(10240, 10495, 1), Range16), $clone(new Range16.ptr(11008, 11055, 1), Range16), $clone(new Range16.ptr(11077, 11078, 1), Range16), $clone(new Range16.ptr(11085, 11123, 1), Range16), $clone(new Range16.ptr(11126, 11157, 1), Range16), $clone(new Range16.ptr(11159, 11263, 1), Range16), $clone(new Range16.ptr(11493, 11498, 1), Range16), $clone(new Range16.ptr(11856, 11857, 1), Range16), $clone(new Range16.ptr(11904, 11929, 1), Range16), $clone(new Range16.ptr(11931, 12019, 1), Range16), $clone(new Range16.ptr(12032, 12245, 1), Range16), $clone(new Range16.ptr(12272, 12283, 1), Range16), $clone(new Range16.ptr(12292, 12306, 14), Range16), $clone(new Range16.ptr(12307, 12320, 13), Range16), $clone(new Range16.ptr(12342, 12343, 1), Range16), $clone(new Range16.ptr(12350, 12351, 1), Range16), $clone(new Range16.ptr(12688, 12689, 1), Range16), $clone(new Range16.ptr(12694, 12703, 1), Range16), $clone(new Range16.ptr(12736, 12771, 1), Range16), $clone(new Range16.ptr(12800, 12830, 1), Range16), $clone(new Range16.ptr(12842, 12871, 1), Range16), $clone(new Range16.ptr(12880, 12896, 16), Range16), $clone(new Range16.ptr(12897, 12927, 1), Range16), $clone(new Range16.ptr(12938, 12976, 1), Range16), $clone(new Range16.ptr(12992, 13311, 1), Range16), $clone(new Range16.ptr(19904, 19967, 1), Range16), $clone(new Range16.ptr(42128, 42182, 1), Range16), $clone(new Range16.ptr(43048, 43051, 1), Range16), $clone(new Range16.ptr(43062, 43063, 1), Range16), $clone(new Range16.ptr(43065, 43639, 574), Range16), $clone(new Range16.ptr(43640, 43641, 1), Range16), $clone(new Range16.ptr(64832, 64847, 1), Range16), $clone(new Range16.ptr(64975, 65021, 46), Range16), $clone(new Range16.ptr(65022, 65023, 1), Range16), $clone(new Range16.ptr(65508, 65512, 4), Range16), $clone(new Range16.ptr(65517, 65518, 1), Range16), $clone(new Range16.ptr(65532, 65533, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65847, 65855, 1), Range32), $clone(new Range32.ptr(65913, 65929, 1), Range32), $clone(new Range32.ptr(65932, 65934, 1), Range32), $clone(new Range32.ptr(65936, 65948, 1), Range32), $clone(new Range32.ptr(65952, 66000, 48), Range32), $clone(new Range32.ptr(66001, 66044, 1), Range32), $clone(new Range32.ptr(67703, 67704, 1), Range32), $clone(new Range32.ptr(68296, 71487, 3191), Range32), $clone(new Range32.ptr(73685, 73692, 1), Range32), $clone(new Range32.ptr(73697, 73713, 1), Range32), $clone(new Range32.ptr(92988, 92991, 1), Range32), $clone(new Range32.ptr(92997, 113820, 20823), Range32), $clone(new Range32.ptr(118608, 118723, 1), Range32), $clone(new Range32.ptr(118784, 119029, 1), Range32), $clone(new Range32.ptr(119040, 119078, 1), Range32), $clone(new Range32.ptr(119081, 119140, 1), Range32), $clone(new Range32.ptr(119146, 119148, 1), Range32), $clone(new Range32.ptr(119171, 119172, 1), Range32), $clone(new Range32.ptr(119180, 119209, 1), Range32), $clone(new Range32.ptr(119214, 119274, 1), Range32), $clone(new Range32.ptr(119296, 119361, 1), Range32), $clone(new Range32.ptr(119365, 119552, 187), Range32), $clone(new Range32.ptr(119553, 119638, 1), Range32), $clone(new Range32.ptr(120832, 121343, 1), Range32), $clone(new Range32.ptr(121399, 121402, 1), Range32), $clone(new Range32.ptr(121453, 121460, 1), Range32), $clone(new Range32.ptr(121462, 121475, 1), Range32), $clone(new Range32.ptr(121477, 121478, 1), Range32), $clone(new Range32.ptr(123215, 126124, 2909), Range32), $clone(new Range32.ptr(126254, 126976, 722), Range32), $clone(new Range32.ptr(126977, 127019, 1), Range32), $clone(new Range32.ptr(127024, 127123, 1), Range32), $clone(new Range32.ptr(127136, 127150, 1), Range32), $clone(new Range32.ptr(127153, 127167, 1), Range32), $clone(new Range32.ptr(127169, 127183, 1), Range32), $clone(new Range32.ptr(127185, 127221, 1), Range32), $clone(new Range32.ptr(127245, 127405, 1), Range32), $clone(new Range32.ptr(127462, 127490, 1), Range32), $clone(new Range32.ptr(127504, 127547, 1), Range32), $clone(new Range32.ptr(127552, 127560, 1), Range32), $clone(new Range32.ptr(127568, 127569, 1), Range32), $clone(new Range32.ptr(127584, 127589, 1), Range32), $clone(new Range32.ptr(127744, 127994, 1), Range32), $clone(new Range32.ptr(128000, 128727, 1), Range32), $clone(new Range32.ptr(128732, 128748, 1), Range32), $clone(new Range32.ptr(128752, 128764, 1), Range32), $clone(new Range32.ptr(128768, 128886, 1), Range32), $clone(new Range32.ptr(128891, 128985, 1), Range32), $clone(new Range32.ptr(128992, 129003, 1), Range32), $clone(new Range32.ptr(129008, 129024, 16), Range32), $clone(new Range32.ptr(129025, 129035, 1), Range32), $clone(new Range32.ptr(129040, 129095, 1), Range32), $clone(new Range32.ptr(129104, 129113, 1), Range32), $clone(new Range32.ptr(129120, 129159, 1), Range32), $clone(new Range32.ptr(129168, 129197, 1), Range32), $clone(new Range32.ptr(129200, 129201, 1), Range32), $clone(new Range32.ptr(129280, 129619, 1), Range32), $clone(new Range32.ptr(129632, 129645, 1), Range32), $clone(new Range32.ptr(129648, 129660, 1), Range32), $clone(new Range32.ptr(129664, 129672, 1), Range32), $clone(new Range32.ptr(129680, 129725, 1), Range32), $clone(new Range32.ptr(129727, 129733, 1), Range32), $clone(new Range32.ptr(129742, 129755, 1), Range32), $clone(new Range32.ptr(129760, 129768, 1), Range32), $clone(new Range32.ptr(129776, 129784, 1), Range32), $clone(new Range32.ptr(129792, 129938, 1), Range32), $clone(new Range32.ptr(129940, 129994, 1), Range32)]), 2); _Z = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(32, 160, 128), Range16), $clone(new Range16.ptr(5760, 8192, 2432), Range16), $clone(new Range16.ptr(8193, 8202, 1), Range16), $clone(new Range16.ptr(8232, 8233, 1), Range16), $clone(new Range16.ptr(8239, 8287, 48), Range16), $clone(new Range16.ptr(12288, 12288, 1), Range16)]), sliceType$1.nil, 1); _Zl = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(8232, 8232, 1), Range16)]), sliceType$1.nil, 0); _Zp = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(8233, 8233, 1), Range16)]), sliceType$1.nil, 0); @@ -12828,74 +12780,76 @@ $packages["unicode"] = (function() { $pkg.Zs = _Zs; $pkg.Categories = $makeMap($String.keyFor, [{ k: "C", v: $pkg.C }, { k: "Cc", v: $pkg.Cc }, { k: "Cf", v: $pkg.Cf }, { k: "Co", v: $pkg.Co }, { k: "Cs", v: $pkg.Cs }, { k: "L", v: $pkg.L }, { k: "Ll", v: $pkg.Ll }, { k: "Lm", v: $pkg.Lm }, { k: "Lo", v: $pkg.Lo }, { k: "Lt", v: $pkg.Lt }, { k: "Lu", v: $pkg.Lu }, { k: "M", v: $pkg.M }, { k: "Mc", v: $pkg.Mc }, { k: "Me", v: $pkg.Me }, { k: "Mn", v: $pkg.Mn }, { k: "N", v: $pkg.N }, { k: "Nd", v: $pkg.Nd }, { k: "Nl", v: $pkg.Nl }, { k: "No", v: $pkg.No }, { k: "P", v: $pkg.P }, { k: "Pc", v: $pkg.Pc }, { k: "Pd", v: $pkg.Pd }, { k: "Pe", v: $pkg.Pe }, { k: "Pf", v: $pkg.Pf }, { k: "Pi", v: $pkg.Pi }, { k: "Po", v: $pkg.Po }, { k: "Ps", v: $pkg.Ps }, { k: "S", v: $pkg.S }, { k: "Sc", v: $pkg.Sc }, { k: "Sk", v: $pkg.Sk }, { k: "Sm", v: $pkg.Sm }, { k: "So", v: $pkg.So }, { k: "Z", v: $pkg.Z }, { k: "Zl", v: $pkg.Zl }, { k: "Zp", v: $pkg.Zp }, { k: "Zs", v: $pkg.Zs }]); _Adlam = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(125184, 125259, 1), Range32), $clone(new Range32.ptr(125264, 125273, 1), Range32), $clone(new Range32.ptr(125278, 125279, 1), Range32)]), 0); - _Ahom = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(71424, 71450, 1), Range32), $clone(new Range32.ptr(71453, 71467, 1), Range32), $clone(new Range32.ptr(71472, 71487, 1), Range32)]), 0); + _Ahom = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(71424, 71450, 1), Range32), $clone(new Range32.ptr(71453, 71467, 1), Range32), $clone(new Range32.ptr(71472, 71494, 1), Range32)]), 0); _Anatolian_Hieroglyphs = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(82944, 83526, 1), Range32)]), 0); - _Arabic = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(1536, 1540, 1), Range16), $clone(new Range16.ptr(1542, 1547, 1), Range16), $clone(new Range16.ptr(1549, 1562, 1), Range16), $clone(new Range16.ptr(1564, 1568, 2), Range16), $clone(new Range16.ptr(1569, 1599, 1), Range16), $clone(new Range16.ptr(1601, 1610, 1), Range16), $clone(new Range16.ptr(1622, 1647, 1), Range16), $clone(new Range16.ptr(1649, 1756, 1), Range16), $clone(new Range16.ptr(1758, 1791, 1), Range16), $clone(new Range16.ptr(1872, 1919, 1), Range16), $clone(new Range16.ptr(2208, 2228, 1), Range16), $clone(new Range16.ptr(2230, 2247, 1), Range16), $clone(new Range16.ptr(2259, 2273, 1), Range16), $clone(new Range16.ptr(2275, 2303, 1), Range16), $clone(new Range16.ptr(64336, 64449, 1), Range16), $clone(new Range16.ptr(64467, 64829, 1), Range16), $clone(new Range16.ptr(64848, 64911, 1), Range16), $clone(new Range16.ptr(64914, 64967, 1), Range16), $clone(new Range16.ptr(65008, 65021, 1), Range16), $clone(new Range16.ptr(65136, 65140, 1), Range16), $clone(new Range16.ptr(65142, 65276, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(69216, 69246, 1), Range32), $clone(new Range32.ptr(126464, 126467, 1), Range32), $clone(new Range32.ptr(126469, 126495, 1), Range32), $clone(new Range32.ptr(126497, 126498, 1), Range32), $clone(new Range32.ptr(126500, 126503, 3), Range32), $clone(new Range32.ptr(126505, 126514, 1), Range32), $clone(new Range32.ptr(126516, 126519, 1), Range32), $clone(new Range32.ptr(126521, 126523, 2), Range32), $clone(new Range32.ptr(126530, 126535, 5), Range32), $clone(new Range32.ptr(126537, 126541, 2), Range32), $clone(new Range32.ptr(126542, 126543, 1), Range32), $clone(new Range32.ptr(126545, 126546, 1), Range32), $clone(new Range32.ptr(126548, 126551, 3), Range32), $clone(new Range32.ptr(126553, 126561, 2), Range32), $clone(new Range32.ptr(126562, 126564, 2), Range32), $clone(new Range32.ptr(126567, 126570, 1), Range32), $clone(new Range32.ptr(126572, 126578, 1), Range32), $clone(new Range32.ptr(126580, 126583, 1), Range32), $clone(new Range32.ptr(126585, 126588, 1), Range32), $clone(new Range32.ptr(126590, 126592, 2), Range32), $clone(new Range32.ptr(126593, 126601, 1), Range32), $clone(new Range32.ptr(126603, 126619, 1), Range32), $clone(new Range32.ptr(126625, 126627, 1), Range32), $clone(new Range32.ptr(126629, 126633, 1), Range32), $clone(new Range32.ptr(126635, 126651, 1), Range32), $clone(new Range32.ptr(126704, 126705, 1), Range32)]), 0); + _Arabic = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(1536, 1540, 1), Range16), $clone(new Range16.ptr(1542, 1547, 1), Range16), $clone(new Range16.ptr(1549, 1562, 1), Range16), $clone(new Range16.ptr(1564, 1566, 1), Range16), $clone(new Range16.ptr(1568, 1599, 1), Range16), $clone(new Range16.ptr(1601, 1610, 1), Range16), $clone(new Range16.ptr(1622, 1647, 1), Range16), $clone(new Range16.ptr(1649, 1756, 1), Range16), $clone(new Range16.ptr(1758, 1791, 1), Range16), $clone(new Range16.ptr(1872, 1919, 1), Range16), $clone(new Range16.ptr(2160, 2190, 1), Range16), $clone(new Range16.ptr(2192, 2193, 1), Range16), $clone(new Range16.ptr(2200, 2273, 1), Range16), $clone(new Range16.ptr(2275, 2303, 1), Range16), $clone(new Range16.ptr(64336, 64450, 1), Range16), $clone(new Range16.ptr(64467, 64829, 1), Range16), $clone(new Range16.ptr(64832, 64911, 1), Range16), $clone(new Range16.ptr(64914, 64967, 1), Range16), $clone(new Range16.ptr(64975, 65008, 33), Range16), $clone(new Range16.ptr(65009, 65023, 1), Range16), $clone(new Range16.ptr(65136, 65140, 1), Range16), $clone(new Range16.ptr(65142, 65276, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(69216, 69246, 1), Range32), $clone(new Range32.ptr(69373, 69375, 1), Range32), $clone(new Range32.ptr(126464, 126467, 1), Range32), $clone(new Range32.ptr(126469, 126495, 1), Range32), $clone(new Range32.ptr(126497, 126498, 1), Range32), $clone(new Range32.ptr(126500, 126503, 3), Range32), $clone(new Range32.ptr(126505, 126514, 1), Range32), $clone(new Range32.ptr(126516, 126519, 1), Range32), $clone(new Range32.ptr(126521, 126523, 2), Range32), $clone(new Range32.ptr(126530, 126535, 5), Range32), $clone(new Range32.ptr(126537, 126541, 2), Range32), $clone(new Range32.ptr(126542, 126543, 1), Range32), $clone(new Range32.ptr(126545, 126546, 1), Range32), $clone(new Range32.ptr(126548, 126551, 3), Range32), $clone(new Range32.ptr(126553, 126561, 2), Range32), $clone(new Range32.ptr(126562, 126564, 2), Range32), $clone(new Range32.ptr(126567, 126570, 1), Range32), $clone(new Range32.ptr(126572, 126578, 1), Range32), $clone(new Range32.ptr(126580, 126583, 1), Range32), $clone(new Range32.ptr(126585, 126588, 1), Range32), $clone(new Range32.ptr(126590, 126592, 2), Range32), $clone(new Range32.ptr(126593, 126601, 1), Range32), $clone(new Range32.ptr(126603, 126619, 1), Range32), $clone(new Range32.ptr(126625, 126627, 1), Range32), $clone(new Range32.ptr(126629, 126633, 1), Range32), $clone(new Range32.ptr(126635, 126651, 1), Range32), $clone(new Range32.ptr(126704, 126705, 1), Range32)]), 0); _Armenian = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(1329, 1366, 1), Range16), $clone(new Range16.ptr(1369, 1418, 1), Range16), $clone(new Range16.ptr(1421, 1423, 1), Range16), $clone(new Range16.ptr(64275, 64279, 1), Range16)]), sliceType$1.nil, 0); _Avestan = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(68352, 68405, 1), Range32), $clone(new Range32.ptr(68409, 68415, 1), Range32)]), 0); - _Balinese = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(6912, 6987, 1), Range16), $clone(new Range16.ptr(6992, 7036, 1), Range16)]), sliceType$1.nil, 0); + _Balinese = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(6912, 6988, 1), Range16), $clone(new Range16.ptr(6992, 7038, 1), Range16)]), sliceType$1.nil, 0); _Bamum = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(42656, 42743, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(92160, 92728, 1), Range32)]), 0); _Bassa_Vah = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(92880, 92909, 1), Range32), $clone(new Range32.ptr(92912, 92917, 1), Range32)]), 0); _Batak = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(7104, 7155, 1), Range16), $clone(new Range16.ptr(7164, 7167, 1), Range16)]), sliceType$1.nil, 0); _Bengali = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(2432, 2435, 1), Range16), $clone(new Range16.ptr(2437, 2444, 1), Range16), $clone(new Range16.ptr(2447, 2448, 1), Range16), $clone(new Range16.ptr(2451, 2472, 1), Range16), $clone(new Range16.ptr(2474, 2480, 1), Range16), $clone(new Range16.ptr(2482, 2486, 4), Range16), $clone(new Range16.ptr(2487, 2489, 1), Range16), $clone(new Range16.ptr(2492, 2500, 1), Range16), $clone(new Range16.ptr(2503, 2504, 1), Range16), $clone(new Range16.ptr(2507, 2510, 1), Range16), $clone(new Range16.ptr(2519, 2524, 5), Range16), $clone(new Range16.ptr(2525, 2527, 2), Range16), $clone(new Range16.ptr(2528, 2531, 1), Range16), $clone(new Range16.ptr(2534, 2558, 1), Range16)]), sliceType$1.nil, 0); _Bhaiksuki = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(72704, 72712, 1), Range32), $clone(new Range32.ptr(72714, 72758, 1), Range32), $clone(new Range32.ptr(72760, 72773, 1), Range32), $clone(new Range32.ptr(72784, 72812, 1), Range32)]), 0); _Bopomofo = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(746, 747, 1), Range16), $clone(new Range16.ptr(12549, 12591, 1), Range16), $clone(new Range16.ptr(12704, 12735, 1), Range16)]), sliceType$1.nil, 0); - _Brahmi = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(69632, 69709, 1), Range32), $clone(new Range32.ptr(69714, 69743, 1), Range32), $clone(new Range32.ptr(69759, 69759, 1), Range32)]), 0); + _Brahmi = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(69632, 69709, 1), Range32), $clone(new Range32.ptr(69714, 69749, 1), Range32), $clone(new Range32.ptr(69759, 69759, 1), Range32)]), 0); _Braille = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(10240, 10495, 1), Range16)]), sliceType$1.nil, 0); _Buginese = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(6656, 6683, 1), Range16), $clone(new Range16.ptr(6686, 6687, 1), Range16)]), sliceType$1.nil, 0); _Buhid = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(5952, 5971, 1), Range16)]), sliceType$1.nil, 0); - _Canadian_Aboriginal = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(5120, 5759, 1), Range16), $clone(new Range16.ptr(6320, 6389, 1), Range16)]), sliceType$1.nil, 0); + _Canadian_Aboriginal = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(5120, 5759, 1), Range16), $clone(new Range16.ptr(6320, 6389, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(72368, 72383, 1), Range32)]), 0); _Carian = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(66208, 66256, 1), Range32)]), 0); _Caucasian_Albanian = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(66864, 66915, 1), Range32), $clone(new Range32.ptr(66927, 66927, 1), Range32)]), 0); _Chakma = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(69888, 69940, 1), Range32), $clone(new Range32.ptr(69942, 69959, 1), Range32)]), 0); _Cham = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(43520, 43574, 1), Range16), $clone(new Range16.ptr(43584, 43597, 1), Range16), $clone(new Range16.ptr(43600, 43609, 1), Range16), $clone(new Range16.ptr(43612, 43615, 1), Range16)]), sliceType$1.nil, 0); _Cherokee = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(5024, 5109, 1), Range16), $clone(new Range16.ptr(5112, 5117, 1), Range16), $clone(new Range16.ptr(43888, 43967, 1), Range16)]), sliceType$1.nil, 0); _Chorasmian = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(69552, 69579, 1), Range32)]), 0); - _Common = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(0, 64, 1), Range16), $clone(new Range16.ptr(91, 96, 1), Range16), $clone(new Range16.ptr(123, 169, 1), Range16), $clone(new Range16.ptr(171, 185, 1), Range16), $clone(new Range16.ptr(187, 191, 1), Range16), $clone(new Range16.ptr(215, 247, 32), Range16), $clone(new Range16.ptr(697, 735, 1), Range16), $clone(new Range16.ptr(741, 745, 1), Range16), $clone(new Range16.ptr(748, 767, 1), Range16), $clone(new Range16.ptr(884, 894, 10), Range16), $clone(new Range16.ptr(901, 903, 2), Range16), $clone(new Range16.ptr(1541, 1548, 7), Range16), $clone(new Range16.ptr(1563, 1567, 4), Range16), $clone(new Range16.ptr(1600, 1757, 157), Range16), $clone(new Range16.ptr(2274, 2404, 130), Range16), $clone(new Range16.ptr(2405, 3647, 1242), Range16), $clone(new Range16.ptr(4053, 4056, 1), Range16), $clone(new Range16.ptr(4347, 5867, 1520), Range16), $clone(new Range16.ptr(5868, 5869, 1), Range16), $clone(new Range16.ptr(5941, 5942, 1), Range16), $clone(new Range16.ptr(6146, 6147, 1), Range16), $clone(new Range16.ptr(6149, 7379, 1230), Range16), $clone(new Range16.ptr(7393, 7401, 8), Range16), $clone(new Range16.ptr(7402, 7404, 1), Range16), $clone(new Range16.ptr(7406, 7411, 1), Range16), $clone(new Range16.ptr(7413, 7415, 1), Range16), $clone(new Range16.ptr(7418, 8192, 774), Range16), $clone(new Range16.ptr(8193, 8203, 1), Range16), $clone(new Range16.ptr(8206, 8292, 1), Range16), $clone(new Range16.ptr(8294, 8304, 1), Range16), $clone(new Range16.ptr(8308, 8318, 1), Range16), $clone(new Range16.ptr(8320, 8334, 1), Range16), $clone(new Range16.ptr(8352, 8383, 1), Range16), $clone(new Range16.ptr(8448, 8485, 1), Range16), $clone(new Range16.ptr(8487, 8489, 1), Range16), $clone(new Range16.ptr(8492, 8497, 1), Range16), $clone(new Range16.ptr(8499, 8525, 1), Range16), $clone(new Range16.ptr(8527, 8543, 1), Range16), $clone(new Range16.ptr(8585, 8587, 1), Range16), $clone(new Range16.ptr(8592, 9254, 1), Range16), $clone(new Range16.ptr(9280, 9290, 1), Range16), $clone(new Range16.ptr(9312, 10239, 1), Range16), $clone(new Range16.ptr(10496, 11123, 1), Range16), $clone(new Range16.ptr(11126, 11157, 1), Range16), $clone(new Range16.ptr(11159, 11263, 1), Range16), $clone(new Range16.ptr(11776, 11858, 1), Range16), $clone(new Range16.ptr(12272, 12283, 1), Range16), $clone(new Range16.ptr(12288, 12292, 1), Range16), $clone(new Range16.ptr(12294, 12296, 2), Range16), $clone(new Range16.ptr(12297, 12320, 1), Range16), $clone(new Range16.ptr(12336, 12343, 1), Range16), $clone(new Range16.ptr(12348, 12351, 1), Range16), $clone(new Range16.ptr(12443, 12444, 1), Range16), $clone(new Range16.ptr(12448, 12539, 91), Range16), $clone(new Range16.ptr(12540, 12688, 148), Range16), $clone(new Range16.ptr(12689, 12703, 1), Range16), $clone(new Range16.ptr(12736, 12771, 1), Range16), $clone(new Range16.ptr(12832, 12895, 1), Range16), $clone(new Range16.ptr(12927, 13007, 1), Range16), $clone(new Range16.ptr(13055, 13144, 89), Range16), $clone(new Range16.ptr(13145, 13311, 1), Range16), $clone(new Range16.ptr(19904, 19967, 1), Range16), $clone(new Range16.ptr(42752, 42785, 1), Range16), $clone(new Range16.ptr(42888, 42890, 1), Range16), $clone(new Range16.ptr(43056, 43065, 1), Range16), $clone(new Range16.ptr(43310, 43471, 161), Range16), $clone(new Range16.ptr(43867, 43882, 15), Range16), $clone(new Range16.ptr(43883, 64830, 20947), Range16), $clone(new Range16.ptr(64831, 65040, 209), Range16), $clone(new Range16.ptr(65041, 65049, 1), Range16), $clone(new Range16.ptr(65072, 65106, 1), Range16), $clone(new Range16.ptr(65108, 65126, 1), Range16), $clone(new Range16.ptr(65128, 65131, 1), Range16), $clone(new Range16.ptr(65279, 65281, 2), Range16), $clone(new Range16.ptr(65282, 65312, 1), Range16), $clone(new Range16.ptr(65339, 65344, 1), Range16), $clone(new Range16.ptr(65371, 65381, 1), Range16), $clone(new Range16.ptr(65392, 65438, 46), Range16), $clone(new Range16.ptr(65439, 65504, 65), Range16), $clone(new Range16.ptr(65505, 65510, 1), Range16), $clone(new Range16.ptr(65512, 65518, 1), Range16), $clone(new Range16.ptr(65529, 65533, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65792, 65794, 1), Range32), $clone(new Range32.ptr(65799, 65843, 1), Range32), $clone(new Range32.ptr(65847, 65855, 1), Range32), $clone(new Range32.ptr(65936, 65948, 1), Range32), $clone(new Range32.ptr(66000, 66044, 1), Range32), $clone(new Range32.ptr(66273, 66299, 1), Range32), $clone(new Range32.ptr(94178, 94179, 1), Range32), $clone(new Range32.ptr(113824, 113827, 1), Range32), $clone(new Range32.ptr(118784, 119029, 1), Range32), $clone(new Range32.ptr(119040, 119078, 1), Range32), $clone(new Range32.ptr(119081, 119142, 1), Range32), $clone(new Range32.ptr(119146, 119162, 1), Range32), $clone(new Range32.ptr(119171, 119172, 1), Range32), $clone(new Range32.ptr(119180, 119209, 1), Range32), $clone(new Range32.ptr(119214, 119272, 1), Range32), $clone(new Range32.ptr(119520, 119539, 1), Range32), $clone(new Range32.ptr(119552, 119638, 1), Range32), $clone(new Range32.ptr(119648, 119672, 1), Range32), $clone(new Range32.ptr(119808, 119892, 1), Range32), $clone(new Range32.ptr(119894, 119964, 1), Range32), $clone(new Range32.ptr(119966, 119967, 1), Range32), $clone(new Range32.ptr(119970, 119973, 3), Range32), $clone(new Range32.ptr(119974, 119977, 3), Range32), $clone(new Range32.ptr(119978, 119980, 1), Range32), $clone(new Range32.ptr(119982, 119993, 1), Range32), $clone(new Range32.ptr(119995, 119997, 2), Range32), $clone(new Range32.ptr(119998, 120003, 1), Range32), $clone(new Range32.ptr(120005, 120069, 1), Range32), $clone(new Range32.ptr(120071, 120074, 1), Range32), $clone(new Range32.ptr(120077, 120084, 1), Range32), $clone(new Range32.ptr(120086, 120092, 1), Range32), $clone(new Range32.ptr(120094, 120121, 1), Range32), $clone(new Range32.ptr(120123, 120126, 1), Range32), $clone(new Range32.ptr(120128, 120132, 1), Range32), $clone(new Range32.ptr(120134, 120138, 4), Range32), $clone(new Range32.ptr(120139, 120144, 1), Range32), $clone(new Range32.ptr(120146, 120485, 1), Range32), $clone(new Range32.ptr(120488, 120779, 1), Range32), $clone(new Range32.ptr(120782, 120831, 1), Range32), $clone(new Range32.ptr(126065, 126132, 1), Range32), $clone(new Range32.ptr(126209, 126269, 1), Range32), $clone(new Range32.ptr(126976, 127019, 1), Range32), $clone(new Range32.ptr(127024, 127123, 1), Range32), $clone(new Range32.ptr(127136, 127150, 1), Range32), $clone(new Range32.ptr(127153, 127167, 1), Range32), $clone(new Range32.ptr(127169, 127183, 1), Range32), $clone(new Range32.ptr(127185, 127221, 1), Range32), $clone(new Range32.ptr(127232, 127405, 1), Range32), $clone(new Range32.ptr(127462, 127487, 1), Range32), $clone(new Range32.ptr(127489, 127490, 1), Range32), $clone(new Range32.ptr(127504, 127547, 1), Range32), $clone(new Range32.ptr(127552, 127560, 1), Range32), $clone(new Range32.ptr(127568, 127569, 1), Range32), $clone(new Range32.ptr(127584, 127589, 1), Range32), $clone(new Range32.ptr(127744, 128727, 1), Range32), $clone(new Range32.ptr(128736, 128748, 1), Range32), $clone(new Range32.ptr(128752, 128764, 1), Range32), $clone(new Range32.ptr(128768, 128883, 1), Range32), $clone(new Range32.ptr(128896, 128984, 1), Range32), $clone(new Range32.ptr(128992, 129003, 1), Range32), $clone(new Range32.ptr(129024, 129035, 1), Range32), $clone(new Range32.ptr(129040, 129095, 1), Range32), $clone(new Range32.ptr(129104, 129113, 1), Range32), $clone(new Range32.ptr(129120, 129159, 1), Range32), $clone(new Range32.ptr(129168, 129197, 1), Range32), $clone(new Range32.ptr(129200, 129201, 1), Range32), $clone(new Range32.ptr(129280, 129400, 1), Range32), $clone(new Range32.ptr(129402, 129483, 1), Range32), $clone(new Range32.ptr(129485, 129619, 1), Range32), $clone(new Range32.ptr(129632, 129645, 1), Range32), $clone(new Range32.ptr(129648, 129652, 1), Range32), $clone(new Range32.ptr(129656, 129658, 1), Range32), $clone(new Range32.ptr(129664, 129670, 1), Range32), $clone(new Range32.ptr(129680, 129704, 1), Range32), $clone(new Range32.ptr(129712, 129718, 1), Range32), $clone(new Range32.ptr(129728, 129730, 1), Range32), $clone(new Range32.ptr(129744, 129750, 1), Range32), $clone(new Range32.ptr(129792, 129938, 1), Range32), $clone(new Range32.ptr(129940, 129994, 1), Range32), $clone(new Range32.ptr(130032, 130041, 1), Range32), $clone(new Range32.ptr(917505, 917536, 31), Range32), $clone(new Range32.ptr(917537, 917631, 1), Range32)]), 6); + _Common = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(0, 64, 1), Range16), $clone(new Range16.ptr(91, 96, 1), Range16), $clone(new Range16.ptr(123, 169, 1), Range16), $clone(new Range16.ptr(171, 185, 1), Range16), $clone(new Range16.ptr(187, 191, 1), Range16), $clone(new Range16.ptr(215, 247, 32), Range16), $clone(new Range16.ptr(697, 735, 1), Range16), $clone(new Range16.ptr(741, 745, 1), Range16), $clone(new Range16.ptr(748, 767, 1), Range16), $clone(new Range16.ptr(884, 894, 10), Range16), $clone(new Range16.ptr(901, 903, 2), Range16), $clone(new Range16.ptr(1541, 1548, 7), Range16), $clone(new Range16.ptr(1563, 1567, 4), Range16), $clone(new Range16.ptr(1600, 1757, 157), Range16), $clone(new Range16.ptr(2274, 2404, 130), Range16), $clone(new Range16.ptr(2405, 3647, 1242), Range16), $clone(new Range16.ptr(4053, 4056, 1), Range16), $clone(new Range16.ptr(4347, 5867, 1520), Range16), $clone(new Range16.ptr(5868, 5869, 1), Range16), $clone(new Range16.ptr(5941, 5942, 1), Range16), $clone(new Range16.ptr(6146, 6147, 1), Range16), $clone(new Range16.ptr(6149, 7379, 1230), Range16), $clone(new Range16.ptr(7393, 7401, 8), Range16), $clone(new Range16.ptr(7402, 7404, 1), Range16), $clone(new Range16.ptr(7406, 7411, 1), Range16), $clone(new Range16.ptr(7413, 7415, 1), Range16), $clone(new Range16.ptr(7418, 8192, 774), Range16), $clone(new Range16.ptr(8193, 8203, 1), Range16), $clone(new Range16.ptr(8206, 8292, 1), Range16), $clone(new Range16.ptr(8294, 8304, 1), Range16), $clone(new Range16.ptr(8308, 8318, 1), Range16), $clone(new Range16.ptr(8320, 8334, 1), Range16), $clone(new Range16.ptr(8352, 8384, 1), Range16), $clone(new Range16.ptr(8448, 8485, 1), Range16), $clone(new Range16.ptr(8487, 8489, 1), Range16), $clone(new Range16.ptr(8492, 8497, 1), Range16), $clone(new Range16.ptr(8499, 8525, 1), Range16), $clone(new Range16.ptr(8527, 8543, 1), Range16), $clone(new Range16.ptr(8585, 8587, 1), Range16), $clone(new Range16.ptr(8592, 9254, 1), Range16), $clone(new Range16.ptr(9280, 9290, 1), Range16), $clone(new Range16.ptr(9312, 10239, 1), Range16), $clone(new Range16.ptr(10496, 11123, 1), Range16), $clone(new Range16.ptr(11126, 11157, 1), Range16), $clone(new Range16.ptr(11159, 11263, 1), Range16), $clone(new Range16.ptr(11776, 11869, 1), Range16), $clone(new Range16.ptr(12272, 12283, 1), Range16), $clone(new Range16.ptr(12288, 12292, 1), Range16), $clone(new Range16.ptr(12294, 12296, 2), Range16), $clone(new Range16.ptr(12297, 12320, 1), Range16), $clone(new Range16.ptr(12336, 12343, 1), Range16), $clone(new Range16.ptr(12348, 12351, 1), Range16), $clone(new Range16.ptr(12443, 12444, 1), Range16), $clone(new Range16.ptr(12448, 12539, 91), Range16), $clone(new Range16.ptr(12540, 12688, 148), Range16), $clone(new Range16.ptr(12689, 12703, 1), Range16), $clone(new Range16.ptr(12736, 12771, 1), Range16), $clone(new Range16.ptr(12832, 12895, 1), Range16), $clone(new Range16.ptr(12927, 13007, 1), Range16), $clone(new Range16.ptr(13055, 13144, 89), Range16), $clone(new Range16.ptr(13145, 13311, 1), Range16), $clone(new Range16.ptr(19904, 19967, 1), Range16), $clone(new Range16.ptr(42752, 42785, 1), Range16), $clone(new Range16.ptr(42888, 42890, 1), Range16), $clone(new Range16.ptr(43056, 43065, 1), Range16), $clone(new Range16.ptr(43310, 43471, 161), Range16), $clone(new Range16.ptr(43867, 43882, 15), Range16), $clone(new Range16.ptr(43883, 64830, 20947), Range16), $clone(new Range16.ptr(64831, 65040, 209), Range16), $clone(new Range16.ptr(65041, 65049, 1), Range16), $clone(new Range16.ptr(65072, 65106, 1), Range16), $clone(new Range16.ptr(65108, 65126, 1), Range16), $clone(new Range16.ptr(65128, 65131, 1), Range16), $clone(new Range16.ptr(65279, 65281, 2), Range16), $clone(new Range16.ptr(65282, 65312, 1), Range16), $clone(new Range16.ptr(65339, 65344, 1), Range16), $clone(new Range16.ptr(65371, 65381, 1), Range16), $clone(new Range16.ptr(65392, 65438, 46), Range16), $clone(new Range16.ptr(65439, 65504, 65), Range16), $clone(new Range16.ptr(65505, 65510, 1), Range16), $clone(new Range16.ptr(65512, 65518, 1), Range16), $clone(new Range16.ptr(65529, 65533, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65792, 65794, 1), Range32), $clone(new Range32.ptr(65799, 65843, 1), Range32), $clone(new Range32.ptr(65847, 65855, 1), Range32), $clone(new Range32.ptr(65936, 65948, 1), Range32), $clone(new Range32.ptr(66000, 66044, 1), Range32), $clone(new Range32.ptr(66273, 66299, 1), Range32), $clone(new Range32.ptr(113824, 113827, 1), Range32), $clone(new Range32.ptr(118608, 118723, 1), Range32), $clone(new Range32.ptr(118784, 119029, 1), Range32), $clone(new Range32.ptr(119040, 119078, 1), Range32), $clone(new Range32.ptr(119081, 119142, 1), Range32), $clone(new Range32.ptr(119146, 119162, 1), Range32), $clone(new Range32.ptr(119171, 119172, 1), Range32), $clone(new Range32.ptr(119180, 119209, 1), Range32), $clone(new Range32.ptr(119214, 119274, 1), Range32), $clone(new Range32.ptr(119488, 119507, 1), Range32), $clone(new Range32.ptr(119520, 119539, 1), Range32), $clone(new Range32.ptr(119552, 119638, 1), Range32), $clone(new Range32.ptr(119648, 119672, 1), Range32), $clone(new Range32.ptr(119808, 119892, 1), Range32), $clone(new Range32.ptr(119894, 119964, 1), Range32), $clone(new Range32.ptr(119966, 119967, 1), Range32), $clone(new Range32.ptr(119970, 119973, 3), Range32), $clone(new Range32.ptr(119974, 119977, 3), Range32), $clone(new Range32.ptr(119978, 119980, 1), Range32), $clone(new Range32.ptr(119982, 119993, 1), Range32), $clone(new Range32.ptr(119995, 119997, 2), Range32), $clone(new Range32.ptr(119998, 120003, 1), Range32), $clone(new Range32.ptr(120005, 120069, 1), Range32), $clone(new Range32.ptr(120071, 120074, 1), Range32), $clone(new Range32.ptr(120077, 120084, 1), Range32), $clone(new Range32.ptr(120086, 120092, 1), Range32), $clone(new Range32.ptr(120094, 120121, 1), Range32), $clone(new Range32.ptr(120123, 120126, 1), Range32), $clone(new Range32.ptr(120128, 120132, 1), Range32), $clone(new Range32.ptr(120134, 120138, 4), Range32), $clone(new Range32.ptr(120139, 120144, 1), Range32), $clone(new Range32.ptr(120146, 120485, 1), Range32), $clone(new Range32.ptr(120488, 120779, 1), Range32), $clone(new Range32.ptr(120782, 120831, 1), Range32), $clone(new Range32.ptr(126065, 126132, 1), Range32), $clone(new Range32.ptr(126209, 126269, 1), Range32), $clone(new Range32.ptr(126976, 127019, 1), Range32), $clone(new Range32.ptr(127024, 127123, 1), Range32), $clone(new Range32.ptr(127136, 127150, 1), Range32), $clone(new Range32.ptr(127153, 127167, 1), Range32), $clone(new Range32.ptr(127169, 127183, 1), Range32), $clone(new Range32.ptr(127185, 127221, 1), Range32), $clone(new Range32.ptr(127232, 127405, 1), Range32), $clone(new Range32.ptr(127462, 127487, 1), Range32), $clone(new Range32.ptr(127489, 127490, 1), Range32), $clone(new Range32.ptr(127504, 127547, 1), Range32), $clone(new Range32.ptr(127552, 127560, 1), Range32), $clone(new Range32.ptr(127568, 127569, 1), Range32), $clone(new Range32.ptr(127584, 127589, 1), Range32), $clone(new Range32.ptr(127744, 128727, 1), Range32), $clone(new Range32.ptr(128732, 128748, 1), Range32), $clone(new Range32.ptr(128752, 128764, 1), Range32), $clone(new Range32.ptr(128768, 128886, 1), Range32), $clone(new Range32.ptr(128891, 128985, 1), Range32), $clone(new Range32.ptr(128992, 129003, 1), Range32), $clone(new Range32.ptr(129008, 129024, 16), Range32), $clone(new Range32.ptr(129025, 129035, 1), Range32), $clone(new Range32.ptr(129040, 129095, 1), Range32), $clone(new Range32.ptr(129104, 129113, 1), Range32), $clone(new Range32.ptr(129120, 129159, 1), Range32), $clone(new Range32.ptr(129168, 129197, 1), Range32), $clone(new Range32.ptr(129200, 129201, 1), Range32), $clone(new Range32.ptr(129280, 129619, 1), Range32), $clone(new Range32.ptr(129632, 129645, 1), Range32), $clone(new Range32.ptr(129648, 129660, 1), Range32), $clone(new Range32.ptr(129664, 129672, 1), Range32), $clone(new Range32.ptr(129680, 129725, 1), Range32), $clone(new Range32.ptr(129727, 129733, 1), Range32), $clone(new Range32.ptr(129742, 129755, 1), Range32), $clone(new Range32.ptr(129760, 129768, 1), Range32), $clone(new Range32.ptr(129776, 129784, 1), Range32), $clone(new Range32.ptr(129792, 129938, 1), Range32), $clone(new Range32.ptr(129940, 129994, 1), Range32), $clone(new Range32.ptr(130032, 130041, 1), Range32), $clone(new Range32.ptr(917505, 917536, 31), Range32), $clone(new Range32.ptr(917537, 917631, 1), Range32)]), 6); _Coptic = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(994, 1007, 1), Range16), $clone(new Range16.ptr(11392, 11507, 1), Range16), $clone(new Range16.ptr(11513, 11519, 1), Range16)]), sliceType$1.nil, 0); _Cuneiform = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(73728, 74649, 1), Range32), $clone(new Range32.ptr(74752, 74862, 1), Range32), $clone(new Range32.ptr(74864, 74868, 1), Range32), $clone(new Range32.ptr(74880, 75075, 1), Range32)]), 0); _Cypriot = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(67584, 67589, 1), Range32), $clone(new Range32.ptr(67592, 67594, 2), Range32), $clone(new Range32.ptr(67595, 67637, 1), Range32), $clone(new Range32.ptr(67639, 67640, 1), Range32), $clone(new Range32.ptr(67644, 67647, 3), Range32)]), 0); - _Cyrillic = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(1024, 1156, 1), Range16), $clone(new Range16.ptr(1159, 1327, 1), Range16), $clone(new Range16.ptr(7296, 7304, 1), Range16), $clone(new Range16.ptr(7467, 7544, 77), Range16), $clone(new Range16.ptr(11744, 11775, 1), Range16), $clone(new Range16.ptr(42560, 42655, 1), Range16), $clone(new Range16.ptr(65070, 65071, 1), Range16)]), sliceType$1.nil, 0); + _Cypro_Minoan = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(77712, 77810, 1), Range32)]), 0); + _Cyrillic = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(1024, 1156, 1), Range16), $clone(new Range16.ptr(1159, 1327, 1), Range16), $clone(new Range16.ptr(7296, 7304, 1), Range16), $clone(new Range16.ptr(7467, 7544, 77), Range16), $clone(new Range16.ptr(11744, 11775, 1), Range16), $clone(new Range16.ptr(42560, 42655, 1), Range16), $clone(new Range16.ptr(65070, 65071, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(122928, 122989, 1), Range32), $clone(new Range32.ptr(123023, 123023, 1), Range32)]), 0); _Deseret = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(66560, 66639, 1), Range32)]), 0); - _Devanagari = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(2304, 2384, 1), Range16), $clone(new Range16.ptr(2389, 2403, 1), Range16), $clone(new Range16.ptr(2406, 2431, 1), Range16), $clone(new Range16.ptr(43232, 43263, 1), Range16)]), sliceType$1.nil, 0); + _Devanagari = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(2304, 2384, 1), Range16), $clone(new Range16.ptr(2389, 2403, 1), Range16), $clone(new Range16.ptr(2406, 2431, 1), Range16), $clone(new Range16.ptr(43232, 43263, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(72448, 72457, 1), Range32)]), 0); _Dives_Akuru = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(71936, 71942, 1), Range32), $clone(new Range32.ptr(71945, 71948, 3), Range32), $clone(new Range32.ptr(71949, 71955, 1), Range32), $clone(new Range32.ptr(71957, 71958, 1), Range32), $clone(new Range32.ptr(71960, 71989, 1), Range32), $clone(new Range32.ptr(71991, 71992, 1), Range32), $clone(new Range32.ptr(71995, 72006, 1), Range32), $clone(new Range32.ptr(72016, 72025, 1), Range32)]), 0); _Dogra = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(71680, 71739, 1), Range32)]), 0); _Duployan = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(113664, 113770, 1), Range32), $clone(new Range32.ptr(113776, 113788, 1), Range32), $clone(new Range32.ptr(113792, 113800, 1), Range32), $clone(new Range32.ptr(113808, 113817, 1), Range32), $clone(new Range32.ptr(113820, 113823, 1), Range32)]), 0); - _Egyptian_Hieroglyphs = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(77824, 78894, 1), Range32), $clone(new Range32.ptr(78896, 78904, 1), Range32)]), 0); + _Egyptian_Hieroglyphs = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(77824, 78933, 1), Range32)]), 0); _Elbasan = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(66816, 66855, 1), Range32)]), 0); _Elymaic = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(69600, 69622, 1), Range32)]), 0); - _Ethiopic = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(4608, 4680, 1), Range16), $clone(new Range16.ptr(4682, 4685, 1), Range16), $clone(new Range16.ptr(4688, 4694, 1), Range16), $clone(new Range16.ptr(4696, 4698, 2), Range16), $clone(new Range16.ptr(4699, 4701, 1), Range16), $clone(new Range16.ptr(4704, 4744, 1), Range16), $clone(new Range16.ptr(4746, 4749, 1), Range16), $clone(new Range16.ptr(4752, 4784, 1), Range16), $clone(new Range16.ptr(4786, 4789, 1), Range16), $clone(new Range16.ptr(4792, 4798, 1), Range16), $clone(new Range16.ptr(4800, 4802, 2), Range16), $clone(new Range16.ptr(4803, 4805, 1), Range16), $clone(new Range16.ptr(4808, 4822, 1), Range16), $clone(new Range16.ptr(4824, 4880, 1), Range16), $clone(new Range16.ptr(4882, 4885, 1), Range16), $clone(new Range16.ptr(4888, 4954, 1), Range16), $clone(new Range16.ptr(4957, 4988, 1), Range16), $clone(new Range16.ptr(4992, 5017, 1), Range16), $clone(new Range16.ptr(11648, 11670, 1), Range16), $clone(new Range16.ptr(11680, 11686, 1), Range16), $clone(new Range16.ptr(11688, 11694, 1), Range16), $clone(new Range16.ptr(11696, 11702, 1), Range16), $clone(new Range16.ptr(11704, 11710, 1), Range16), $clone(new Range16.ptr(11712, 11718, 1), Range16), $clone(new Range16.ptr(11720, 11726, 1), Range16), $clone(new Range16.ptr(11728, 11734, 1), Range16), $clone(new Range16.ptr(11736, 11742, 1), Range16), $clone(new Range16.ptr(43777, 43782, 1), Range16), $clone(new Range16.ptr(43785, 43790, 1), Range16), $clone(new Range16.ptr(43793, 43798, 1), Range16), $clone(new Range16.ptr(43808, 43814, 1), Range16), $clone(new Range16.ptr(43816, 43822, 1), Range16)]), sliceType$1.nil, 0); + _Ethiopic = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(4608, 4680, 1), Range16), $clone(new Range16.ptr(4682, 4685, 1), Range16), $clone(new Range16.ptr(4688, 4694, 1), Range16), $clone(new Range16.ptr(4696, 4698, 2), Range16), $clone(new Range16.ptr(4699, 4701, 1), Range16), $clone(new Range16.ptr(4704, 4744, 1), Range16), $clone(new Range16.ptr(4746, 4749, 1), Range16), $clone(new Range16.ptr(4752, 4784, 1), Range16), $clone(new Range16.ptr(4786, 4789, 1), Range16), $clone(new Range16.ptr(4792, 4798, 1), Range16), $clone(new Range16.ptr(4800, 4802, 2), Range16), $clone(new Range16.ptr(4803, 4805, 1), Range16), $clone(new Range16.ptr(4808, 4822, 1), Range16), $clone(new Range16.ptr(4824, 4880, 1), Range16), $clone(new Range16.ptr(4882, 4885, 1), Range16), $clone(new Range16.ptr(4888, 4954, 1), Range16), $clone(new Range16.ptr(4957, 4988, 1), Range16), $clone(new Range16.ptr(4992, 5017, 1), Range16), $clone(new Range16.ptr(11648, 11670, 1), Range16), $clone(new Range16.ptr(11680, 11686, 1), Range16), $clone(new Range16.ptr(11688, 11694, 1), Range16), $clone(new Range16.ptr(11696, 11702, 1), Range16), $clone(new Range16.ptr(11704, 11710, 1), Range16), $clone(new Range16.ptr(11712, 11718, 1), Range16), $clone(new Range16.ptr(11720, 11726, 1), Range16), $clone(new Range16.ptr(11728, 11734, 1), Range16), $clone(new Range16.ptr(11736, 11742, 1), Range16), $clone(new Range16.ptr(43777, 43782, 1), Range16), $clone(new Range16.ptr(43785, 43790, 1), Range16), $clone(new Range16.ptr(43793, 43798, 1), Range16), $clone(new Range16.ptr(43808, 43814, 1), Range16), $clone(new Range16.ptr(43816, 43822, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(124896, 124902, 1), Range32), $clone(new Range32.ptr(124904, 124907, 1), Range32), $clone(new Range32.ptr(124909, 124910, 1), Range32), $clone(new Range32.ptr(124912, 124926, 1), Range32)]), 0); _Georgian = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(4256, 4293, 1), Range16), $clone(new Range16.ptr(4295, 4301, 6), Range16), $clone(new Range16.ptr(4304, 4346, 1), Range16), $clone(new Range16.ptr(4348, 4351, 1), Range16), $clone(new Range16.ptr(7312, 7354, 1), Range16), $clone(new Range16.ptr(7357, 7359, 1), Range16), $clone(new Range16.ptr(11520, 11557, 1), Range16), $clone(new Range16.ptr(11559, 11565, 6), Range16)]), sliceType$1.nil, 0); - _Glagolitic = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(11264, 11310, 1), Range16), $clone(new Range16.ptr(11312, 11358, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(122880, 122886, 1), Range32), $clone(new Range32.ptr(122888, 122904, 1), Range32), $clone(new Range32.ptr(122907, 122913, 1), Range32), $clone(new Range32.ptr(122915, 122916, 1), Range32), $clone(new Range32.ptr(122918, 122922, 1), Range32)]), 0); + _Glagolitic = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(11264, 11359, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(122880, 122886, 1), Range32), $clone(new Range32.ptr(122888, 122904, 1), Range32), $clone(new Range32.ptr(122907, 122913, 1), Range32), $clone(new Range32.ptr(122915, 122916, 1), Range32), $clone(new Range32.ptr(122918, 122922, 1), Range32)]), 0); _Gothic = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(66352, 66378, 1), Range32)]), 0); _Grantha = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(70400, 70403, 1), Range32), $clone(new Range32.ptr(70405, 70412, 1), Range32), $clone(new Range32.ptr(70415, 70416, 1), Range32), $clone(new Range32.ptr(70419, 70440, 1), Range32), $clone(new Range32.ptr(70442, 70448, 1), Range32), $clone(new Range32.ptr(70450, 70451, 1), Range32), $clone(new Range32.ptr(70453, 70457, 1), Range32), $clone(new Range32.ptr(70460, 70468, 1), Range32), $clone(new Range32.ptr(70471, 70472, 1), Range32), $clone(new Range32.ptr(70475, 70477, 1), Range32), $clone(new Range32.ptr(70480, 70487, 7), Range32), $clone(new Range32.ptr(70493, 70499, 1), Range32), $clone(new Range32.ptr(70502, 70508, 1), Range32), $clone(new Range32.ptr(70512, 70516, 1), Range32)]), 0); _Greek = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(880, 883, 1), Range16), $clone(new Range16.ptr(885, 887, 1), Range16), $clone(new Range16.ptr(890, 893, 1), Range16), $clone(new Range16.ptr(895, 900, 5), Range16), $clone(new Range16.ptr(902, 904, 2), Range16), $clone(new Range16.ptr(905, 906, 1), Range16), $clone(new Range16.ptr(908, 910, 2), Range16), $clone(new Range16.ptr(911, 929, 1), Range16), $clone(new Range16.ptr(931, 993, 1), Range16), $clone(new Range16.ptr(1008, 1023, 1), Range16), $clone(new Range16.ptr(7462, 7466, 1), Range16), $clone(new Range16.ptr(7517, 7521, 1), Range16), $clone(new Range16.ptr(7526, 7530, 1), Range16), $clone(new Range16.ptr(7615, 7936, 321), Range16), $clone(new Range16.ptr(7937, 7957, 1), Range16), $clone(new Range16.ptr(7960, 7965, 1), Range16), $clone(new Range16.ptr(7968, 8005, 1), Range16), $clone(new Range16.ptr(8008, 8013, 1), Range16), $clone(new Range16.ptr(8016, 8023, 1), Range16), $clone(new Range16.ptr(8025, 8031, 2), Range16), $clone(new Range16.ptr(8032, 8061, 1), Range16), $clone(new Range16.ptr(8064, 8116, 1), Range16), $clone(new Range16.ptr(8118, 8132, 1), Range16), $clone(new Range16.ptr(8134, 8147, 1), Range16), $clone(new Range16.ptr(8150, 8155, 1), Range16), $clone(new Range16.ptr(8157, 8175, 1), Range16), $clone(new Range16.ptr(8178, 8180, 1), Range16), $clone(new Range16.ptr(8182, 8190, 1), Range16), $clone(new Range16.ptr(8486, 43877, 35391), Range16)]), new sliceType$1([$clone(new Range32.ptr(65856, 65934, 1), Range32), $clone(new Range32.ptr(65952, 119296, 53344), Range32), $clone(new Range32.ptr(119297, 119365, 1), Range32)]), 0); _Gujarati = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(2689, 2691, 1), Range16), $clone(new Range16.ptr(2693, 2701, 1), Range16), $clone(new Range16.ptr(2703, 2705, 1), Range16), $clone(new Range16.ptr(2707, 2728, 1), Range16), $clone(new Range16.ptr(2730, 2736, 1), Range16), $clone(new Range16.ptr(2738, 2739, 1), Range16), $clone(new Range16.ptr(2741, 2745, 1), Range16), $clone(new Range16.ptr(2748, 2757, 1), Range16), $clone(new Range16.ptr(2759, 2761, 1), Range16), $clone(new Range16.ptr(2763, 2765, 1), Range16), $clone(new Range16.ptr(2768, 2784, 16), Range16), $clone(new Range16.ptr(2785, 2787, 1), Range16), $clone(new Range16.ptr(2790, 2801, 1), Range16), $clone(new Range16.ptr(2809, 2815, 1), Range16)]), sliceType$1.nil, 0); _Gunjala_Gondi = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(73056, 73061, 1), Range32), $clone(new Range32.ptr(73063, 73064, 1), Range32), $clone(new Range32.ptr(73066, 73102, 1), Range32), $clone(new Range32.ptr(73104, 73105, 1), Range32), $clone(new Range32.ptr(73107, 73112, 1), Range32), $clone(new Range32.ptr(73120, 73129, 1), Range32)]), 0); _Gurmukhi = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(2561, 2563, 1), Range16), $clone(new Range16.ptr(2565, 2570, 1), Range16), $clone(new Range16.ptr(2575, 2576, 1), Range16), $clone(new Range16.ptr(2579, 2600, 1), Range16), $clone(new Range16.ptr(2602, 2608, 1), Range16), $clone(new Range16.ptr(2610, 2611, 1), Range16), $clone(new Range16.ptr(2613, 2614, 1), Range16), $clone(new Range16.ptr(2616, 2617, 1), Range16), $clone(new Range16.ptr(2620, 2622, 2), Range16), $clone(new Range16.ptr(2623, 2626, 1), Range16), $clone(new Range16.ptr(2631, 2632, 1), Range16), $clone(new Range16.ptr(2635, 2637, 1), Range16), $clone(new Range16.ptr(2641, 2649, 8), Range16), $clone(new Range16.ptr(2650, 2652, 1), Range16), $clone(new Range16.ptr(2654, 2662, 8), Range16), $clone(new Range16.ptr(2663, 2678, 1), Range16)]), sliceType$1.nil, 0); - _Han = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(11904, 11929, 1), Range16), $clone(new Range16.ptr(11931, 12019, 1), Range16), $clone(new Range16.ptr(12032, 12245, 1), Range16), $clone(new Range16.ptr(12293, 12295, 2), Range16), $clone(new Range16.ptr(12321, 12329, 1), Range16), $clone(new Range16.ptr(12344, 12347, 1), Range16), $clone(new Range16.ptr(13312, 19903, 1), Range16), $clone(new Range16.ptr(19968, 40956, 1), Range16), $clone(new Range16.ptr(63744, 64109, 1), Range16), $clone(new Range16.ptr(64112, 64217, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(94192, 94193, 1), Range32), $clone(new Range32.ptr(131072, 173789, 1), Range32), $clone(new Range32.ptr(173824, 177972, 1), Range32), $clone(new Range32.ptr(177984, 178205, 1), Range32), $clone(new Range32.ptr(178208, 183969, 1), Range32), $clone(new Range32.ptr(183984, 191456, 1), Range32), $clone(new Range32.ptr(194560, 195101, 1), Range32), $clone(new Range32.ptr(196608, 201546, 1), Range32)]), 0); + _Han = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(11904, 11929, 1), Range16), $clone(new Range16.ptr(11931, 12019, 1), Range16), $clone(new Range16.ptr(12032, 12245, 1), Range16), $clone(new Range16.ptr(12293, 12295, 2), Range16), $clone(new Range16.ptr(12321, 12329, 1), Range16), $clone(new Range16.ptr(12344, 12347, 1), Range16), $clone(new Range16.ptr(13312, 19903, 1), Range16), $clone(new Range16.ptr(19968, 40959, 1), Range16), $clone(new Range16.ptr(63744, 64109, 1), Range16), $clone(new Range16.ptr(64112, 64217, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(94178, 94179, 1), Range32), $clone(new Range32.ptr(94192, 94193, 1), Range32), $clone(new Range32.ptr(131072, 173791, 1), Range32), $clone(new Range32.ptr(173824, 177977, 1), Range32), $clone(new Range32.ptr(177984, 178205, 1), Range32), $clone(new Range32.ptr(178208, 183969, 1), Range32), $clone(new Range32.ptr(183984, 191456, 1), Range32), $clone(new Range32.ptr(194560, 195101, 1), Range32), $clone(new Range32.ptr(196608, 201546, 1), Range32), $clone(new Range32.ptr(201552, 205743, 1), Range32)]), 0); _Hangul = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(4352, 4607, 1), Range16), $clone(new Range16.ptr(12334, 12335, 1), Range16), $clone(new Range16.ptr(12593, 12686, 1), Range16), $clone(new Range16.ptr(12800, 12830, 1), Range16), $clone(new Range16.ptr(12896, 12926, 1), Range16), $clone(new Range16.ptr(43360, 43388, 1), Range16), $clone(new Range16.ptr(44032, 55203, 1), Range16), $clone(new Range16.ptr(55216, 55238, 1), Range16), $clone(new Range16.ptr(55243, 55291, 1), Range16), $clone(new Range16.ptr(65440, 65470, 1), Range16), $clone(new Range16.ptr(65474, 65479, 1), Range16), $clone(new Range16.ptr(65482, 65487, 1), Range16), $clone(new Range16.ptr(65490, 65495, 1), Range16), $clone(new Range16.ptr(65498, 65500, 1), Range16)]), sliceType$1.nil, 0); _Hanifi_Rohingya = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(68864, 68903, 1), Range32), $clone(new Range32.ptr(68912, 68921, 1), Range32)]), 0); _Hanunoo = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(5920, 5940, 1), Range16)]), sliceType$1.nil, 0); _Hatran = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(67808, 67826, 1), Range32), $clone(new Range32.ptr(67828, 67829, 1), Range32), $clone(new Range32.ptr(67835, 67839, 1), Range32)]), 0); _Hebrew = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(1425, 1479, 1), Range16), $clone(new Range16.ptr(1488, 1514, 1), Range16), $clone(new Range16.ptr(1519, 1524, 1), Range16), $clone(new Range16.ptr(64285, 64310, 1), Range16), $clone(new Range16.ptr(64312, 64316, 1), Range16), $clone(new Range16.ptr(64318, 64320, 2), Range16), $clone(new Range16.ptr(64321, 64323, 2), Range16), $clone(new Range16.ptr(64324, 64326, 2), Range16), $clone(new Range16.ptr(64327, 64335, 1), Range16)]), sliceType$1.nil, 0); - _Hiragana = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(12353, 12438, 1), Range16), $clone(new Range16.ptr(12445, 12447, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(110593, 110878, 1), Range32), $clone(new Range32.ptr(110928, 110930, 1), Range32), $clone(new Range32.ptr(127488, 127488, 1), Range32)]), 0); + _Hiragana = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(12353, 12438, 1), Range16), $clone(new Range16.ptr(12445, 12447, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(110593, 110879, 1), Range32), $clone(new Range32.ptr(110898, 110928, 30), Range32), $clone(new Range32.ptr(110929, 110930, 1), Range32), $clone(new Range32.ptr(127488, 127488, 1), Range32)]), 0); _Imperial_Aramaic = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(67648, 67669, 1), Range32), $clone(new Range32.ptr(67671, 67679, 1), Range32)]), 0); - _Inherited = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(768, 879, 1), Range16), $clone(new Range16.ptr(1157, 1158, 1), Range16), $clone(new Range16.ptr(1611, 1621, 1), Range16), $clone(new Range16.ptr(1648, 2385, 737), Range16), $clone(new Range16.ptr(2386, 2388, 1), Range16), $clone(new Range16.ptr(6832, 6848, 1), Range16), $clone(new Range16.ptr(7376, 7378, 1), Range16), $clone(new Range16.ptr(7380, 7392, 1), Range16), $clone(new Range16.ptr(7394, 7400, 1), Range16), $clone(new Range16.ptr(7405, 7412, 7), Range16), $clone(new Range16.ptr(7416, 7417, 1), Range16), $clone(new Range16.ptr(7616, 7673, 1), Range16), $clone(new Range16.ptr(7675, 7679, 1), Range16), $clone(new Range16.ptr(8204, 8205, 1), Range16), $clone(new Range16.ptr(8400, 8432, 1), Range16), $clone(new Range16.ptr(12330, 12333, 1), Range16), $clone(new Range16.ptr(12441, 12442, 1), Range16), $clone(new Range16.ptr(65024, 65039, 1), Range16), $clone(new Range16.ptr(65056, 65069, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(66045, 66272, 227), Range32), $clone(new Range32.ptr(70459, 119143, 48684), Range32), $clone(new Range32.ptr(119144, 119145, 1), Range32), $clone(new Range32.ptr(119163, 119170, 1), Range32), $clone(new Range32.ptr(119173, 119179, 1), Range32), $clone(new Range32.ptr(119210, 119213, 1), Range32), $clone(new Range32.ptr(917760, 917999, 1), Range32)]), 0); + _Inherited = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(768, 879, 1), Range16), $clone(new Range16.ptr(1157, 1158, 1), Range16), $clone(new Range16.ptr(1611, 1621, 1), Range16), $clone(new Range16.ptr(1648, 2385, 737), Range16), $clone(new Range16.ptr(2386, 2388, 1), Range16), $clone(new Range16.ptr(6832, 6862, 1), Range16), $clone(new Range16.ptr(7376, 7378, 1), Range16), $clone(new Range16.ptr(7380, 7392, 1), Range16), $clone(new Range16.ptr(7394, 7400, 1), Range16), $clone(new Range16.ptr(7405, 7412, 7), Range16), $clone(new Range16.ptr(7416, 7417, 1), Range16), $clone(new Range16.ptr(7616, 7679, 1), Range16), $clone(new Range16.ptr(8204, 8205, 1), Range16), $clone(new Range16.ptr(8400, 8432, 1), Range16), $clone(new Range16.ptr(12330, 12333, 1), Range16), $clone(new Range16.ptr(12441, 12442, 1), Range16), $clone(new Range16.ptr(65024, 65039, 1), Range16), $clone(new Range16.ptr(65056, 65069, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(66045, 66272, 227), Range32), $clone(new Range32.ptr(70459, 118528, 48069), Range32), $clone(new Range32.ptr(118529, 118573, 1), Range32), $clone(new Range32.ptr(118576, 118598, 1), Range32), $clone(new Range32.ptr(119143, 119145, 1), Range32), $clone(new Range32.ptr(119163, 119170, 1), Range32), $clone(new Range32.ptr(119173, 119179, 1), Range32), $clone(new Range32.ptr(119210, 119213, 1), Range32), $clone(new Range32.ptr(917760, 917999, 1), Range32)]), 0); _Inscriptional_Pahlavi = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(68448, 68466, 1), Range32), $clone(new Range32.ptr(68472, 68479, 1), Range32)]), 0); _Inscriptional_Parthian = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(68416, 68437, 1), Range32), $clone(new Range32.ptr(68440, 68447, 1), Range32)]), 0); _Javanese = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(43392, 43469, 1), Range16), $clone(new Range16.ptr(43472, 43481, 1), Range16), $clone(new Range16.ptr(43486, 43487, 1), Range16)]), sliceType$1.nil, 0); - _Kaithi = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(69760, 69825, 1), Range32), $clone(new Range32.ptr(69837, 69837, 1), Range32)]), 0); - _Kannada = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(3200, 3212, 1), Range16), $clone(new Range16.ptr(3214, 3216, 1), Range16), $clone(new Range16.ptr(3218, 3240, 1), Range16), $clone(new Range16.ptr(3242, 3251, 1), Range16), $clone(new Range16.ptr(3253, 3257, 1), Range16), $clone(new Range16.ptr(3260, 3268, 1), Range16), $clone(new Range16.ptr(3270, 3272, 1), Range16), $clone(new Range16.ptr(3274, 3277, 1), Range16), $clone(new Range16.ptr(3285, 3286, 1), Range16), $clone(new Range16.ptr(3294, 3296, 2), Range16), $clone(new Range16.ptr(3297, 3299, 1), Range16), $clone(new Range16.ptr(3302, 3311, 1), Range16), $clone(new Range16.ptr(3313, 3314, 1), Range16)]), sliceType$1.nil, 0); - _Katakana = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(12449, 12538, 1), Range16), $clone(new Range16.ptr(12541, 12543, 1), Range16), $clone(new Range16.ptr(12784, 12799, 1), Range16), $clone(new Range16.ptr(13008, 13054, 1), Range16), $clone(new Range16.ptr(13056, 13143, 1), Range16), $clone(new Range16.ptr(65382, 65391, 1), Range16), $clone(new Range16.ptr(65393, 65437, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(110592, 110948, 356), Range32), $clone(new Range32.ptr(110949, 110951, 1), Range32)]), 0); + _Kaithi = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(69760, 69826, 1), Range32), $clone(new Range32.ptr(69837, 69837, 1), Range32)]), 0); + _Kannada = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(3200, 3212, 1), Range16), $clone(new Range16.ptr(3214, 3216, 1), Range16), $clone(new Range16.ptr(3218, 3240, 1), Range16), $clone(new Range16.ptr(3242, 3251, 1), Range16), $clone(new Range16.ptr(3253, 3257, 1), Range16), $clone(new Range16.ptr(3260, 3268, 1), Range16), $clone(new Range16.ptr(3270, 3272, 1), Range16), $clone(new Range16.ptr(3274, 3277, 1), Range16), $clone(new Range16.ptr(3285, 3286, 1), Range16), $clone(new Range16.ptr(3293, 3294, 1), Range16), $clone(new Range16.ptr(3296, 3299, 1), Range16), $clone(new Range16.ptr(3302, 3311, 1), Range16), $clone(new Range16.ptr(3313, 3315, 1), Range16)]), sliceType$1.nil, 0); + _Katakana = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(12449, 12538, 1), Range16), $clone(new Range16.ptr(12541, 12543, 1), Range16), $clone(new Range16.ptr(12784, 12799, 1), Range16), $clone(new Range16.ptr(13008, 13054, 1), Range16), $clone(new Range16.ptr(13056, 13143, 1), Range16), $clone(new Range16.ptr(65382, 65391, 1), Range16), $clone(new Range16.ptr(65393, 65437, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(110576, 110579, 1), Range32), $clone(new Range32.ptr(110581, 110587, 1), Range32), $clone(new Range32.ptr(110589, 110590, 1), Range32), $clone(new Range32.ptr(110592, 110880, 288), Range32), $clone(new Range32.ptr(110881, 110882, 1), Range32), $clone(new Range32.ptr(110933, 110948, 15), Range32), $clone(new Range32.ptr(110949, 110951, 1), Range32)]), 0); + _Kawi = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(73472, 73488, 1), Range32), $clone(new Range32.ptr(73490, 73530, 1), Range32), $clone(new Range32.ptr(73534, 73561, 1), Range32)]), 0); _Kayah_Li = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(43264, 43309, 1), Range16), $clone(new Range16.ptr(43311, 43311, 1), Range16)]), sliceType$1.nil, 0); _Kharoshthi = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(68096, 68099, 1), Range32), $clone(new Range32.ptr(68101, 68102, 1), Range32), $clone(new Range32.ptr(68108, 68115, 1), Range32), $clone(new Range32.ptr(68117, 68119, 1), Range32), $clone(new Range32.ptr(68121, 68149, 1), Range32), $clone(new Range32.ptr(68152, 68154, 1), Range32), $clone(new Range32.ptr(68159, 68168, 1), Range32), $clone(new Range32.ptr(68176, 68184, 1), Range32)]), 0); _Khitan_Small_Script = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(94180, 101120, 6940), Range32), $clone(new Range32.ptr(101121, 101589, 1), Range32)]), 0); _Khmer = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(6016, 6109, 1), Range16), $clone(new Range16.ptr(6112, 6121, 1), Range16), $clone(new Range16.ptr(6128, 6137, 1), Range16), $clone(new Range16.ptr(6624, 6655, 1), Range16)]), sliceType$1.nil, 0); - _Khojki = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(70144, 70161, 1), Range32), $clone(new Range32.ptr(70163, 70206, 1), Range32)]), 0); + _Khojki = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(70144, 70161, 1), Range32), $clone(new Range32.ptr(70163, 70209, 1), Range32)]), 0); _Khudawadi = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(70320, 70378, 1), Range32), $clone(new Range32.ptr(70384, 70393, 1), Range32)]), 0); - _Lao = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(3713, 3714, 1), Range16), $clone(new Range16.ptr(3716, 3718, 2), Range16), $clone(new Range16.ptr(3719, 3722, 1), Range16), $clone(new Range16.ptr(3724, 3747, 1), Range16), $clone(new Range16.ptr(3749, 3751, 2), Range16), $clone(new Range16.ptr(3752, 3773, 1), Range16), $clone(new Range16.ptr(3776, 3780, 1), Range16), $clone(new Range16.ptr(3782, 3784, 2), Range16), $clone(new Range16.ptr(3785, 3789, 1), Range16), $clone(new Range16.ptr(3792, 3801, 1), Range16), $clone(new Range16.ptr(3804, 3807, 1), Range16)]), sliceType$1.nil, 0); - _Latin = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(65, 90, 1), Range16), $clone(new Range16.ptr(97, 122, 1), Range16), $clone(new Range16.ptr(170, 186, 16), Range16), $clone(new Range16.ptr(192, 214, 1), Range16), $clone(new Range16.ptr(216, 246, 1), Range16), $clone(new Range16.ptr(248, 696, 1), Range16), $clone(new Range16.ptr(736, 740, 1), Range16), $clone(new Range16.ptr(7424, 7461, 1), Range16), $clone(new Range16.ptr(7468, 7516, 1), Range16), $clone(new Range16.ptr(7522, 7525, 1), Range16), $clone(new Range16.ptr(7531, 7543, 1), Range16), $clone(new Range16.ptr(7545, 7614, 1), Range16), $clone(new Range16.ptr(7680, 7935, 1), Range16), $clone(new Range16.ptr(8305, 8319, 14), Range16), $clone(new Range16.ptr(8336, 8348, 1), Range16), $clone(new Range16.ptr(8490, 8491, 1), Range16), $clone(new Range16.ptr(8498, 8526, 28), Range16), $clone(new Range16.ptr(8544, 8584, 1), Range16), $clone(new Range16.ptr(11360, 11391, 1), Range16), $clone(new Range16.ptr(42786, 42887, 1), Range16), $clone(new Range16.ptr(42891, 42943, 1), Range16), $clone(new Range16.ptr(42946, 42954, 1), Range16), $clone(new Range16.ptr(42997, 43007, 1), Range16), $clone(new Range16.ptr(43824, 43866, 1), Range16), $clone(new Range16.ptr(43868, 43876, 1), Range16), $clone(new Range16.ptr(43878, 43881, 1), Range16), $clone(new Range16.ptr(64256, 64262, 1), Range16), $clone(new Range16.ptr(65313, 65338, 1), Range16), $clone(new Range16.ptr(65345, 65370, 1), Range16)]), sliceType$1.nil, 5); + _Lao = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(3713, 3714, 1), Range16), $clone(new Range16.ptr(3716, 3718, 2), Range16), $clone(new Range16.ptr(3719, 3722, 1), Range16), $clone(new Range16.ptr(3724, 3747, 1), Range16), $clone(new Range16.ptr(3749, 3751, 2), Range16), $clone(new Range16.ptr(3752, 3773, 1), Range16), $clone(new Range16.ptr(3776, 3780, 1), Range16), $clone(new Range16.ptr(3782, 3784, 2), Range16), $clone(new Range16.ptr(3785, 3790, 1), Range16), $clone(new Range16.ptr(3792, 3801, 1), Range16), $clone(new Range16.ptr(3804, 3807, 1), Range16)]), sliceType$1.nil, 0); + _Latin = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(65, 90, 1), Range16), $clone(new Range16.ptr(97, 122, 1), Range16), $clone(new Range16.ptr(170, 186, 16), Range16), $clone(new Range16.ptr(192, 214, 1), Range16), $clone(new Range16.ptr(216, 246, 1), Range16), $clone(new Range16.ptr(248, 696, 1), Range16), $clone(new Range16.ptr(736, 740, 1), Range16), $clone(new Range16.ptr(7424, 7461, 1), Range16), $clone(new Range16.ptr(7468, 7516, 1), Range16), $clone(new Range16.ptr(7522, 7525, 1), Range16), $clone(new Range16.ptr(7531, 7543, 1), Range16), $clone(new Range16.ptr(7545, 7614, 1), Range16), $clone(new Range16.ptr(7680, 7935, 1), Range16), $clone(new Range16.ptr(8305, 8319, 14), Range16), $clone(new Range16.ptr(8336, 8348, 1), Range16), $clone(new Range16.ptr(8490, 8491, 1), Range16), $clone(new Range16.ptr(8498, 8526, 28), Range16), $clone(new Range16.ptr(8544, 8584, 1), Range16), $clone(new Range16.ptr(11360, 11391, 1), Range16), $clone(new Range16.ptr(42786, 42887, 1), Range16), $clone(new Range16.ptr(42891, 42954, 1), Range16), $clone(new Range16.ptr(42960, 42961, 1), Range16), $clone(new Range16.ptr(42963, 42965, 2), Range16), $clone(new Range16.ptr(42966, 42969, 1), Range16), $clone(new Range16.ptr(42994, 43007, 1), Range16), $clone(new Range16.ptr(43824, 43866, 1), Range16), $clone(new Range16.ptr(43868, 43876, 1), Range16), $clone(new Range16.ptr(43878, 43881, 1), Range16), $clone(new Range16.ptr(64256, 64262, 1), Range16), $clone(new Range16.ptr(65313, 65338, 1), Range16), $clone(new Range16.ptr(65345, 65370, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(67456, 67461, 1), Range32), $clone(new Range32.ptr(67463, 67504, 1), Range32), $clone(new Range32.ptr(67506, 67514, 1), Range32), $clone(new Range32.ptr(122624, 122654, 1), Range32), $clone(new Range32.ptr(122661, 122666, 1), Range32)]), 5); _Lepcha = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(7168, 7223, 1), Range16), $clone(new Range16.ptr(7227, 7241, 1), Range16), $clone(new Range16.ptr(7245, 7247, 1), Range16)]), sliceType$1.nil, 0); _Limbu = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(6400, 6430, 1), Range16), $clone(new Range16.ptr(6432, 6443, 1), Range16), $clone(new Range16.ptr(6448, 6459, 1), Range16), $clone(new Range16.ptr(6464, 6468, 4), Range16), $clone(new Range16.ptr(6469, 6479, 1), Range16)]), sliceType$1.nil, 0); _Linear_A = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(67072, 67382, 1), Range32), $clone(new Range32.ptr(67392, 67413, 1), Range32), $clone(new Range32.ptr(67424, 67431, 1), Range32)]), 0); @@ -12917,11 +12871,12 @@ $packages["unicode"] = (function() { _Meroitic_Hieroglyphs = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(67968, 67999, 1), Range32)]), 0); _Miao = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(93952, 94026, 1), Range32), $clone(new Range32.ptr(94031, 94087, 1), Range32), $clone(new Range32.ptr(94095, 94111, 1), Range32)]), 0); _Modi = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(71168, 71236, 1), Range32), $clone(new Range32.ptr(71248, 71257, 1), Range32)]), 0); - _Mongolian = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(6144, 6145, 1), Range16), $clone(new Range16.ptr(6148, 6150, 2), Range16), $clone(new Range16.ptr(6151, 6158, 1), Range16), $clone(new Range16.ptr(6160, 6169, 1), Range16), $clone(new Range16.ptr(6176, 6264, 1), Range16), $clone(new Range16.ptr(6272, 6314, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(71264, 71276, 1), Range32)]), 0); + _Mongolian = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(6144, 6145, 1), Range16), $clone(new Range16.ptr(6148, 6150, 2), Range16), $clone(new Range16.ptr(6151, 6169, 1), Range16), $clone(new Range16.ptr(6176, 6264, 1), Range16), $clone(new Range16.ptr(6272, 6314, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(71264, 71276, 1), Range32)]), 0); _Mro = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(92736, 92766, 1), Range32), $clone(new Range32.ptr(92768, 92777, 1), Range32), $clone(new Range32.ptr(92782, 92783, 1), Range32)]), 0); _Multani = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(70272, 70278, 1), Range32), $clone(new Range32.ptr(70280, 70282, 2), Range32), $clone(new Range32.ptr(70283, 70285, 1), Range32), $clone(new Range32.ptr(70287, 70301, 1), Range32), $clone(new Range32.ptr(70303, 70313, 1), Range32)]), 0); _Myanmar = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(4096, 4255, 1), Range16), $clone(new Range16.ptr(43488, 43518, 1), Range16), $clone(new Range16.ptr(43616, 43647, 1), Range16)]), sliceType$1.nil, 0); _Nabataean = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(67712, 67742, 1), Range32), $clone(new Range32.ptr(67751, 67759, 1), Range32)]), 0); + _Nag_Mundari = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(124112, 124153, 1), Range32)]), 0); _Nandinagari = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(72096, 72103, 1), Range32), $clone(new Range32.ptr(72106, 72151, 1), Range32), $clone(new Range32.ptr(72154, 72164, 1), Range32)]), 0); _New_Tai_Lue = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(6528, 6571, 1), Range16), $clone(new Range16.ptr(6576, 6601, 1), Range16), $clone(new Range16.ptr(6608, 6618, 1), Range16), $clone(new Range16.ptr(6622, 6623, 1), Range16)]), sliceType$1.nil, 0); _Newa = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(70656, 70747, 1), Range32), $clone(new Range32.ptr(70749, 70753, 1), Range32)]), 0); @@ -12938,6 +12893,7 @@ $packages["unicode"] = (function() { _Old_Sogdian = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(69376, 69415, 1), Range32)]), 0); _Old_South_Arabian = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(68192, 68223, 1), Range32)]), 0); _Old_Turkic = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(68608, 68680, 1), Range32)]), 0); + _Old_Uyghur = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(69488, 69513, 1), Range32)]), 0); _Oriya = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(2817, 2819, 1), Range16), $clone(new Range16.ptr(2821, 2828, 1), Range16), $clone(new Range16.ptr(2831, 2832, 1), Range16), $clone(new Range16.ptr(2835, 2856, 1), Range16), $clone(new Range16.ptr(2858, 2864, 1), Range16), $clone(new Range16.ptr(2866, 2867, 1), Range16), $clone(new Range16.ptr(2869, 2873, 1), Range16), $clone(new Range16.ptr(2876, 2884, 1), Range16), $clone(new Range16.ptr(2887, 2888, 1), Range16), $clone(new Range16.ptr(2891, 2893, 1), Range16), $clone(new Range16.ptr(2901, 2903, 1), Range16), $clone(new Range16.ptr(2908, 2909, 1), Range16), $clone(new Range16.ptr(2911, 2915, 1), Range16), $clone(new Range16.ptr(2918, 2935, 1), Range16)]), sliceType$1.nil, 0); _Osage = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(66736, 66771, 1), Range32), $clone(new Range32.ptr(66776, 66811, 1), Range32)]), 0); _Osmanya = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(66688, 66717, 1), Range32), $clone(new Range32.ptr(66720, 66729, 1), Range32)]), 0); @@ -12962,22 +12918,25 @@ $packages["unicode"] = (function() { _Sundanese = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(7040, 7103, 1), Range16), $clone(new Range16.ptr(7360, 7367, 1), Range16)]), sliceType$1.nil, 0); _Syloti_Nagri = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(43008, 43052, 1), Range16)]), sliceType$1.nil, 0); _Syriac = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(1792, 1805, 1), Range16), $clone(new Range16.ptr(1807, 1866, 1), Range16), $clone(new Range16.ptr(1869, 1871, 1), Range16), $clone(new Range16.ptr(2144, 2154, 1), Range16)]), sliceType$1.nil, 0); - _Tagalog = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(5888, 5900, 1), Range16), $clone(new Range16.ptr(5902, 5908, 1), Range16)]), sliceType$1.nil, 0); + _Tagalog = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(5888, 5909, 1), Range16), $clone(new Range16.ptr(5919, 5919, 1), Range16)]), sliceType$1.nil, 0); _Tagbanwa = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(5984, 5996, 1), Range16), $clone(new Range16.ptr(5998, 6000, 1), Range16), $clone(new Range16.ptr(6002, 6003, 1), Range16)]), sliceType$1.nil, 0); _Tai_Le = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(6480, 6509, 1), Range16), $clone(new Range16.ptr(6512, 6516, 1), Range16)]), sliceType$1.nil, 0); _Tai_Tham = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(6688, 6750, 1), Range16), $clone(new Range16.ptr(6752, 6780, 1), Range16), $clone(new Range16.ptr(6783, 6793, 1), Range16), $clone(new Range16.ptr(6800, 6809, 1), Range16), $clone(new Range16.ptr(6816, 6829, 1), Range16)]), sliceType$1.nil, 0); _Tai_Viet = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(43648, 43714, 1), Range16), $clone(new Range16.ptr(43739, 43743, 1), Range16)]), sliceType$1.nil, 0); - _Takri = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(71296, 71352, 1), Range32), $clone(new Range32.ptr(71360, 71369, 1), Range32)]), 0); + _Takri = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(71296, 71353, 1), Range32), $clone(new Range32.ptr(71360, 71369, 1), Range32)]), 0); _Tamil = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(2946, 2947, 1), Range16), $clone(new Range16.ptr(2949, 2954, 1), Range16), $clone(new Range16.ptr(2958, 2960, 1), Range16), $clone(new Range16.ptr(2962, 2965, 1), Range16), $clone(new Range16.ptr(2969, 2970, 1), Range16), $clone(new Range16.ptr(2972, 2974, 2), Range16), $clone(new Range16.ptr(2975, 2979, 4), Range16), $clone(new Range16.ptr(2980, 2984, 4), Range16), $clone(new Range16.ptr(2985, 2986, 1), Range16), $clone(new Range16.ptr(2990, 3001, 1), Range16), $clone(new Range16.ptr(3006, 3010, 1), Range16), $clone(new Range16.ptr(3014, 3016, 1), Range16), $clone(new Range16.ptr(3018, 3021, 1), Range16), $clone(new Range16.ptr(3024, 3031, 7), Range16), $clone(new Range16.ptr(3046, 3066, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(73664, 73713, 1), Range32), $clone(new Range32.ptr(73727, 73727, 1), Range32)]), 0); + _Tangsa = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(92784, 92862, 1), Range32), $clone(new Range32.ptr(92864, 92873, 1), Range32)]), 0); _Tangut = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(94176, 94208, 32), Range32), $clone(new Range32.ptr(94209, 100343, 1), Range32), $clone(new Range32.ptr(100352, 101119, 1), Range32), $clone(new Range32.ptr(101632, 101640, 1), Range32)]), 0); - _Telugu = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(3072, 3084, 1), Range16), $clone(new Range16.ptr(3086, 3088, 1), Range16), $clone(new Range16.ptr(3090, 3112, 1), Range16), $clone(new Range16.ptr(3114, 3129, 1), Range16), $clone(new Range16.ptr(3133, 3140, 1), Range16), $clone(new Range16.ptr(3142, 3144, 1), Range16), $clone(new Range16.ptr(3146, 3149, 1), Range16), $clone(new Range16.ptr(3157, 3158, 1), Range16), $clone(new Range16.ptr(3160, 3162, 1), Range16), $clone(new Range16.ptr(3168, 3171, 1), Range16), $clone(new Range16.ptr(3174, 3183, 1), Range16), $clone(new Range16.ptr(3191, 3199, 1), Range16)]), sliceType$1.nil, 0); + _Telugu = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(3072, 3084, 1), Range16), $clone(new Range16.ptr(3086, 3088, 1), Range16), $clone(new Range16.ptr(3090, 3112, 1), Range16), $clone(new Range16.ptr(3114, 3129, 1), Range16), $clone(new Range16.ptr(3132, 3140, 1), Range16), $clone(new Range16.ptr(3142, 3144, 1), Range16), $clone(new Range16.ptr(3146, 3149, 1), Range16), $clone(new Range16.ptr(3157, 3158, 1), Range16), $clone(new Range16.ptr(3160, 3162, 1), Range16), $clone(new Range16.ptr(3165, 3168, 3), Range16), $clone(new Range16.ptr(3169, 3171, 1), Range16), $clone(new Range16.ptr(3174, 3183, 1), Range16), $clone(new Range16.ptr(3191, 3199, 1), Range16)]), sliceType$1.nil, 0); _Thaana = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(1920, 1969, 1), Range16)]), sliceType$1.nil, 0); _Thai = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(3585, 3642, 1), Range16), $clone(new Range16.ptr(3648, 3675, 1), Range16)]), sliceType$1.nil, 0); _Tibetan = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(3840, 3911, 1), Range16), $clone(new Range16.ptr(3913, 3948, 1), Range16), $clone(new Range16.ptr(3953, 3991, 1), Range16), $clone(new Range16.ptr(3993, 4028, 1), Range16), $clone(new Range16.ptr(4030, 4044, 1), Range16), $clone(new Range16.ptr(4046, 4052, 1), Range16), $clone(new Range16.ptr(4057, 4058, 1), Range16)]), sliceType$1.nil, 0); _Tifinagh = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(11568, 11623, 1), Range16), $clone(new Range16.ptr(11631, 11632, 1), Range16), $clone(new Range16.ptr(11647, 11647, 1), Range16)]), sliceType$1.nil, 0); _Tirhuta = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(70784, 70855, 1), Range32), $clone(new Range32.ptr(70864, 70873, 1), Range32)]), 0); + _Toto = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(123536, 123566, 1), Range32)]), 0); _Ugaritic = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(66432, 66461, 1), Range32), $clone(new Range32.ptr(66463, 66463, 1), Range32)]), 0); _Vai = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(42240, 42539, 1), Range16)]), sliceType$1.nil, 0); + _Vithkuqi = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(66928, 66938, 1), Range32), $clone(new Range32.ptr(66940, 66954, 1), Range32), $clone(new Range32.ptr(66956, 66962, 1), Range32), $clone(new Range32.ptr(66964, 66965, 1), Range32), $clone(new Range32.ptr(66967, 66977, 1), Range32), $clone(new Range32.ptr(66979, 66993, 1), Range32), $clone(new Range32.ptr(66995, 67001, 1), Range32), $clone(new Range32.ptr(67003, 67004, 1), Range32)]), 0); _Wancho = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(123584, 123641, 1), Range32), $clone(new Range32.ptr(123647, 123647, 1), Range32)]), 0); _Warang_Citi = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(71840, 71922, 1), Range32), $clone(new Range32.ptr(71935, 71935, 1), Range32)]), 0); _Yezidi = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(69248, 69289, 1), Range32), $clone(new Range32.ptr(69291, 69293, 1), Range32), $clone(new Range32.ptr(69296, 69297, 1), Range32)]), 0); @@ -13011,6 +12970,7 @@ $packages["unicode"] = (function() { $pkg.Coptic = _Coptic; $pkg.Cuneiform = _Cuneiform; $pkg.Cypriot = _Cypriot; + $pkg.Cypro_Minoan = _Cypro_Minoan; $pkg.Cyrillic = _Cyrillic; $pkg.Deseret = _Deseret; $pkg.Devanagari = _Devanagari; @@ -13044,6 +13004,7 @@ $packages["unicode"] = (function() { $pkg.Kaithi = _Kaithi; $pkg.Kannada = _Kannada; $pkg.Katakana = _Katakana; + $pkg.Kawi = _Kawi; $pkg.Kayah_Li = _Kayah_Li; $pkg.Kharoshthi = _Kharoshthi; $pkg.Khitan_Small_Script = _Khitan_Small_Script; @@ -13078,6 +13039,7 @@ $packages["unicode"] = (function() { $pkg.Multani = _Multani; $pkg.Myanmar = _Myanmar; $pkg.Nabataean = _Nabataean; + $pkg.Nag_Mundari = _Nag_Mundari; $pkg.Nandinagari = _Nandinagari; $pkg.New_Tai_Lue = _New_Tai_Lue; $pkg.Newa = _Newa; @@ -13094,6 +13056,7 @@ $packages["unicode"] = (function() { $pkg.Old_Sogdian = _Old_Sogdian; $pkg.Old_South_Arabian = _Old_South_Arabian; $pkg.Old_Turkic = _Old_Turkic; + $pkg.Old_Uyghur = _Old_Uyghur; $pkg.Oriya = _Oriya; $pkg.Osage = _Osage; $pkg.Osmanya = _Osmanya; @@ -13125,6 +13088,7 @@ $packages["unicode"] = (function() { $pkg.Tai_Viet = _Tai_Viet; $pkg.Takri = _Takri; $pkg.Tamil = _Tamil; + $pkg.Tangsa = _Tangsa; $pkg.Tangut = _Tangut; $pkg.Telugu = _Telugu; $pkg.Thaana = _Thaana; @@ -13132,21 +13096,27 @@ $packages["unicode"] = (function() { $pkg.Tibetan = _Tibetan; $pkg.Tifinagh = _Tifinagh; $pkg.Tirhuta = _Tirhuta; + $pkg.Toto = _Toto; $pkg.Ugaritic = _Ugaritic; $pkg.Vai = _Vai; + $pkg.Vithkuqi = _Vithkuqi; $pkg.Wancho = _Wancho; $pkg.Warang_Citi = _Warang_Citi; $pkg.Yezidi = _Yezidi; $pkg.Yi = _Yi; $pkg.Zanabazar_Square = _Zanabazar_Square; - $pkg.Scripts = $makeMap($String.keyFor, [{ k: "Adlam", v: $pkg.Adlam }, { k: "Ahom", v: $pkg.Ahom }, { k: "Anatolian_Hieroglyphs", v: $pkg.Anatolian_Hieroglyphs }, { k: "Arabic", v: $pkg.Arabic }, { k: "Armenian", v: $pkg.Armenian }, { k: "Avestan", v: $pkg.Avestan }, { k: "Balinese", v: $pkg.Balinese }, { k: "Bamum", v: $pkg.Bamum }, { k: "Bassa_Vah", v: $pkg.Bassa_Vah }, { k: "Batak", v: $pkg.Batak }, { k: "Bengali", v: $pkg.Bengali }, { k: "Bhaiksuki", v: $pkg.Bhaiksuki }, { k: "Bopomofo", v: $pkg.Bopomofo }, { k: "Brahmi", v: $pkg.Brahmi }, { k: "Braille", v: $pkg.Braille }, { k: "Buginese", v: $pkg.Buginese }, { k: "Buhid", v: $pkg.Buhid }, { k: "Canadian_Aboriginal", v: $pkg.Canadian_Aboriginal }, { k: "Carian", v: $pkg.Carian }, { k: "Caucasian_Albanian", v: $pkg.Caucasian_Albanian }, { k: "Chakma", v: $pkg.Chakma }, { k: "Cham", v: $pkg.Cham }, { k: "Cherokee", v: $pkg.Cherokee }, { k: "Chorasmian", v: $pkg.Chorasmian }, { k: "Common", v: $pkg.Common }, { k: "Coptic", v: $pkg.Coptic }, { k: "Cuneiform", v: $pkg.Cuneiform }, { k: "Cypriot", v: $pkg.Cypriot }, { k: "Cyrillic", v: $pkg.Cyrillic }, { k: "Deseret", v: $pkg.Deseret }, { k: "Devanagari", v: $pkg.Devanagari }, { k: "Dives_Akuru", v: $pkg.Dives_Akuru }, { k: "Dogra", v: $pkg.Dogra }, { k: "Duployan", v: $pkg.Duployan }, { k: "Egyptian_Hieroglyphs", v: $pkg.Egyptian_Hieroglyphs }, { k: "Elbasan", v: $pkg.Elbasan }, { k: "Elymaic", v: $pkg.Elymaic }, { k: "Ethiopic", v: $pkg.Ethiopic }, { k: "Georgian", v: $pkg.Georgian }, { k: "Glagolitic", v: $pkg.Glagolitic }, { k: "Gothic", v: $pkg.Gothic }, { k: "Grantha", v: $pkg.Grantha }, { k: "Greek", v: $pkg.Greek }, { k: "Gujarati", v: $pkg.Gujarati }, { k: "Gunjala_Gondi", v: $pkg.Gunjala_Gondi }, { k: "Gurmukhi", v: $pkg.Gurmukhi }, { k: "Han", v: $pkg.Han }, { k: "Hangul", v: $pkg.Hangul }, { k: "Hanifi_Rohingya", v: $pkg.Hanifi_Rohingya }, { k: "Hanunoo", v: $pkg.Hanunoo }, { k: "Hatran", v: $pkg.Hatran }, { k: "Hebrew", v: $pkg.Hebrew }, { k: "Hiragana", v: $pkg.Hiragana }, { k: "Imperial_Aramaic", v: $pkg.Imperial_Aramaic }, { k: "Inherited", v: $pkg.Inherited }, { k: "Inscriptional_Pahlavi", v: $pkg.Inscriptional_Pahlavi }, { k: "Inscriptional_Parthian", v: $pkg.Inscriptional_Parthian }, { k: "Javanese", v: $pkg.Javanese }, { k: "Kaithi", v: $pkg.Kaithi }, { k: "Kannada", v: $pkg.Kannada }, { k: "Katakana", v: $pkg.Katakana }, { k: "Kayah_Li", v: $pkg.Kayah_Li }, { k: "Kharoshthi", v: $pkg.Kharoshthi }, { k: "Khitan_Small_Script", v: $pkg.Khitan_Small_Script }, { k: "Khmer", v: $pkg.Khmer }, { k: "Khojki", v: $pkg.Khojki }, { k: "Khudawadi", v: $pkg.Khudawadi }, { k: "Lao", v: $pkg.Lao }, { k: "Latin", v: $pkg.Latin }, { k: "Lepcha", v: $pkg.Lepcha }, { k: "Limbu", v: $pkg.Limbu }, { k: "Linear_A", v: $pkg.Linear_A }, { k: "Linear_B", v: $pkg.Linear_B }, { k: "Lisu", v: $pkg.Lisu }, { k: "Lycian", v: $pkg.Lycian }, { k: "Lydian", v: $pkg.Lydian }, { k: "Mahajani", v: $pkg.Mahajani }, { k: "Makasar", v: $pkg.Makasar }, { k: "Malayalam", v: $pkg.Malayalam }, { k: "Mandaic", v: $pkg.Mandaic }, { k: "Manichaean", v: $pkg.Manichaean }, { k: "Marchen", v: $pkg.Marchen }, { k: "Masaram_Gondi", v: $pkg.Masaram_Gondi }, { k: "Medefaidrin", v: $pkg.Medefaidrin }, { k: "Meetei_Mayek", v: $pkg.Meetei_Mayek }, { k: "Mende_Kikakui", v: $pkg.Mende_Kikakui }, { k: "Meroitic_Cursive", v: $pkg.Meroitic_Cursive }, { k: "Meroitic_Hieroglyphs", v: $pkg.Meroitic_Hieroglyphs }, { k: "Miao", v: $pkg.Miao }, { k: "Modi", v: $pkg.Modi }, { k: "Mongolian", v: $pkg.Mongolian }, { k: "Mro", v: $pkg.Mro }, { k: "Multani", v: $pkg.Multani }, { k: "Myanmar", v: $pkg.Myanmar }, { k: "Nabataean", v: $pkg.Nabataean }, { k: "Nandinagari", v: $pkg.Nandinagari }, { k: "New_Tai_Lue", v: $pkg.New_Tai_Lue }, { k: "Newa", v: $pkg.Newa }, { k: "Nko", v: $pkg.Nko }, { k: "Nushu", v: $pkg.Nushu }, { k: "Nyiakeng_Puachue_Hmong", v: $pkg.Nyiakeng_Puachue_Hmong }, { k: "Ogham", v: $pkg.Ogham }, { k: "Ol_Chiki", v: $pkg.Ol_Chiki }, { k: "Old_Hungarian", v: $pkg.Old_Hungarian }, { k: "Old_Italic", v: $pkg.Old_Italic }, { k: "Old_North_Arabian", v: $pkg.Old_North_Arabian }, { k: "Old_Permic", v: $pkg.Old_Permic }, { k: "Old_Persian", v: $pkg.Old_Persian }, { k: "Old_Sogdian", v: $pkg.Old_Sogdian }, { k: "Old_South_Arabian", v: $pkg.Old_South_Arabian }, { k: "Old_Turkic", v: $pkg.Old_Turkic }, { k: "Oriya", v: $pkg.Oriya }, { k: "Osage", v: $pkg.Osage }, { k: "Osmanya", v: $pkg.Osmanya }, { k: "Pahawh_Hmong", v: $pkg.Pahawh_Hmong }, { k: "Palmyrene", v: $pkg.Palmyrene }, { k: "Pau_Cin_Hau", v: $pkg.Pau_Cin_Hau }, { k: "Phags_Pa", v: $pkg.Phags_Pa }, { k: "Phoenician", v: $pkg.Phoenician }, { k: "Psalter_Pahlavi", v: $pkg.Psalter_Pahlavi }, { k: "Rejang", v: $pkg.Rejang }, { k: "Runic", v: $pkg.Runic }, { k: "Samaritan", v: $pkg.Samaritan }, { k: "Saurashtra", v: $pkg.Saurashtra }, { k: "Sharada", v: $pkg.Sharada }, { k: "Shavian", v: $pkg.Shavian }, { k: "Siddham", v: $pkg.Siddham }, { k: "SignWriting", v: $pkg.SignWriting }, { k: "Sinhala", v: $pkg.Sinhala }, { k: "Sogdian", v: $pkg.Sogdian }, { k: "Sora_Sompeng", v: $pkg.Sora_Sompeng }, { k: "Soyombo", v: $pkg.Soyombo }, { k: "Sundanese", v: $pkg.Sundanese }, { k: "Syloti_Nagri", v: $pkg.Syloti_Nagri }, { k: "Syriac", v: $pkg.Syriac }, { k: "Tagalog", v: $pkg.Tagalog }, { k: "Tagbanwa", v: $pkg.Tagbanwa }, { k: "Tai_Le", v: $pkg.Tai_Le }, { k: "Tai_Tham", v: $pkg.Tai_Tham }, { k: "Tai_Viet", v: $pkg.Tai_Viet }, { k: "Takri", v: $pkg.Takri }, { k: "Tamil", v: $pkg.Tamil }, { k: "Tangut", v: $pkg.Tangut }, { k: "Telugu", v: $pkg.Telugu }, { k: "Thaana", v: $pkg.Thaana }, { k: "Thai", v: $pkg.Thai }, { k: "Tibetan", v: $pkg.Tibetan }, { k: "Tifinagh", v: $pkg.Tifinagh }, { k: "Tirhuta", v: $pkg.Tirhuta }, { k: "Ugaritic", v: $pkg.Ugaritic }, { k: "Vai", v: $pkg.Vai }, { k: "Wancho", v: $pkg.Wancho }, { k: "Warang_Citi", v: $pkg.Warang_Citi }, { k: "Yezidi", v: $pkg.Yezidi }, { k: "Yi", v: $pkg.Yi }, { k: "Zanabazar_Square", v: $pkg.Zanabazar_Square }]); + $pkg.Scripts = $makeMap($String.keyFor, [{ k: "Adlam", v: $pkg.Adlam }, { k: "Ahom", v: $pkg.Ahom }, { k: "Anatolian_Hieroglyphs", v: $pkg.Anatolian_Hieroglyphs }, { k: "Arabic", v: $pkg.Arabic }, { k: "Armenian", v: $pkg.Armenian }, { k: "Avestan", v: $pkg.Avestan }, { k: "Balinese", v: $pkg.Balinese }, { k: "Bamum", v: $pkg.Bamum }, { k: "Bassa_Vah", v: $pkg.Bassa_Vah }, { k: "Batak", v: $pkg.Batak }, { k: "Bengali", v: $pkg.Bengali }, { k: "Bhaiksuki", v: $pkg.Bhaiksuki }, { k: "Bopomofo", v: $pkg.Bopomofo }, { k: "Brahmi", v: $pkg.Brahmi }, { k: "Braille", v: $pkg.Braille }, { k: "Buginese", v: $pkg.Buginese }, { k: "Buhid", v: $pkg.Buhid }, { k: "Canadian_Aboriginal", v: $pkg.Canadian_Aboriginal }, { k: "Carian", v: $pkg.Carian }, { k: "Caucasian_Albanian", v: $pkg.Caucasian_Albanian }, { k: "Chakma", v: $pkg.Chakma }, { k: "Cham", v: $pkg.Cham }, { k: "Cherokee", v: $pkg.Cherokee }, { k: "Chorasmian", v: $pkg.Chorasmian }, { k: "Common", v: $pkg.Common }, { k: "Coptic", v: $pkg.Coptic }, { k: "Cuneiform", v: $pkg.Cuneiform }, { k: "Cypriot", v: $pkg.Cypriot }, { k: "Cypro_Minoan", v: $pkg.Cypro_Minoan }, { k: "Cyrillic", v: $pkg.Cyrillic }, { k: "Deseret", v: $pkg.Deseret }, { k: "Devanagari", v: $pkg.Devanagari }, { k: "Dives_Akuru", v: $pkg.Dives_Akuru }, { k: "Dogra", v: $pkg.Dogra }, { k: "Duployan", v: $pkg.Duployan }, { k: "Egyptian_Hieroglyphs", v: $pkg.Egyptian_Hieroglyphs }, { k: "Elbasan", v: $pkg.Elbasan }, { k: "Elymaic", v: $pkg.Elymaic }, { k: "Ethiopic", v: $pkg.Ethiopic }, { k: "Georgian", v: $pkg.Georgian }, { k: "Glagolitic", v: $pkg.Glagolitic }, { k: "Gothic", v: $pkg.Gothic }, { k: "Grantha", v: $pkg.Grantha }, { k: "Greek", v: $pkg.Greek }, { k: "Gujarati", v: $pkg.Gujarati }, { k: "Gunjala_Gondi", v: $pkg.Gunjala_Gondi }, { k: "Gurmukhi", v: $pkg.Gurmukhi }, { k: "Han", v: $pkg.Han }, { k: "Hangul", v: $pkg.Hangul }, { k: "Hanifi_Rohingya", v: $pkg.Hanifi_Rohingya }, { k: "Hanunoo", v: $pkg.Hanunoo }, { k: "Hatran", v: $pkg.Hatran }, { k: "Hebrew", v: $pkg.Hebrew }, { k: "Hiragana", v: $pkg.Hiragana }, { k: "Imperial_Aramaic", v: $pkg.Imperial_Aramaic }, { k: "Inherited", v: $pkg.Inherited }, { k: "Inscriptional_Pahlavi", v: $pkg.Inscriptional_Pahlavi }, { k: "Inscriptional_Parthian", v: $pkg.Inscriptional_Parthian }, { k: "Javanese", v: $pkg.Javanese }, { k: "Kaithi", v: $pkg.Kaithi }, { k: "Kannada", v: $pkg.Kannada }, { k: "Katakana", v: $pkg.Katakana }, { k: "Kawi", v: $pkg.Kawi }, { k: "Kayah_Li", v: $pkg.Kayah_Li }, { k: "Kharoshthi", v: $pkg.Kharoshthi }, { k: "Khitan_Small_Script", v: $pkg.Khitan_Small_Script }, { k: "Khmer", v: $pkg.Khmer }, { k: "Khojki", v: $pkg.Khojki }, { k: "Khudawadi", v: $pkg.Khudawadi }, { k: "Lao", v: $pkg.Lao }, { k: "Latin", v: $pkg.Latin }, { k: "Lepcha", v: $pkg.Lepcha }, { k: "Limbu", v: $pkg.Limbu }, { k: "Linear_A", v: $pkg.Linear_A }, { k: "Linear_B", v: $pkg.Linear_B }, { k: "Lisu", v: $pkg.Lisu }, { k: "Lycian", v: $pkg.Lycian }, { k: "Lydian", v: $pkg.Lydian }, { k: "Mahajani", v: $pkg.Mahajani }, { k: "Makasar", v: $pkg.Makasar }, { k: "Malayalam", v: $pkg.Malayalam }, { k: "Mandaic", v: $pkg.Mandaic }, { k: "Manichaean", v: $pkg.Manichaean }, { k: "Marchen", v: $pkg.Marchen }, { k: "Masaram_Gondi", v: $pkg.Masaram_Gondi }, { k: "Medefaidrin", v: $pkg.Medefaidrin }, { k: "Meetei_Mayek", v: $pkg.Meetei_Mayek }, { k: "Mende_Kikakui", v: $pkg.Mende_Kikakui }, { k: "Meroitic_Cursive", v: $pkg.Meroitic_Cursive }, { k: "Meroitic_Hieroglyphs", v: $pkg.Meroitic_Hieroglyphs }, { k: "Miao", v: $pkg.Miao }, { k: "Modi", v: $pkg.Modi }, { k: "Mongolian", v: $pkg.Mongolian }, { k: "Mro", v: $pkg.Mro }, { k: "Multani", v: $pkg.Multani }, { k: "Myanmar", v: $pkg.Myanmar }, { k: "Nabataean", v: $pkg.Nabataean }, { k: "Nag_Mundari", v: $pkg.Nag_Mundari }, { k: "Nandinagari", v: $pkg.Nandinagari }, { k: "New_Tai_Lue", v: $pkg.New_Tai_Lue }, { k: "Newa", v: $pkg.Newa }, { k: "Nko", v: $pkg.Nko }, { k: "Nushu", v: $pkg.Nushu }, { k: "Nyiakeng_Puachue_Hmong", v: $pkg.Nyiakeng_Puachue_Hmong }, { k: "Ogham", v: $pkg.Ogham }, { k: "Ol_Chiki", v: $pkg.Ol_Chiki }, { k: "Old_Hungarian", v: $pkg.Old_Hungarian }, { k: "Old_Italic", v: $pkg.Old_Italic }, { k: "Old_North_Arabian", v: $pkg.Old_North_Arabian }, { k: "Old_Permic", v: $pkg.Old_Permic }, { k: "Old_Persian", v: $pkg.Old_Persian }, { k: "Old_Sogdian", v: $pkg.Old_Sogdian }, { k: "Old_South_Arabian", v: $pkg.Old_South_Arabian }, { k: "Old_Turkic", v: $pkg.Old_Turkic }, { k: "Old_Uyghur", v: $pkg.Old_Uyghur }, { k: "Oriya", v: $pkg.Oriya }, { k: "Osage", v: $pkg.Osage }, { k: "Osmanya", v: $pkg.Osmanya }, { k: "Pahawh_Hmong", v: $pkg.Pahawh_Hmong }, { k: "Palmyrene", v: $pkg.Palmyrene }, { k: "Pau_Cin_Hau", v: $pkg.Pau_Cin_Hau }, { k: "Phags_Pa", v: $pkg.Phags_Pa }, { k: "Phoenician", v: $pkg.Phoenician }, { k: "Psalter_Pahlavi", v: $pkg.Psalter_Pahlavi }, { k: "Rejang", v: $pkg.Rejang }, { k: "Runic", v: $pkg.Runic }, { k: "Samaritan", v: $pkg.Samaritan }, { k: "Saurashtra", v: $pkg.Saurashtra }, { k: "Sharada", v: $pkg.Sharada }, { k: "Shavian", v: $pkg.Shavian }, { k: "Siddham", v: $pkg.Siddham }, { k: "SignWriting", v: $pkg.SignWriting }, { k: "Sinhala", v: $pkg.Sinhala }, { k: "Sogdian", v: $pkg.Sogdian }, { k: "Sora_Sompeng", v: $pkg.Sora_Sompeng }, { k: "Soyombo", v: $pkg.Soyombo }, { k: "Sundanese", v: $pkg.Sundanese }, { k: "Syloti_Nagri", v: $pkg.Syloti_Nagri }, { k: "Syriac", v: $pkg.Syriac }, { k: "Tagalog", v: $pkg.Tagalog }, { k: "Tagbanwa", v: $pkg.Tagbanwa }, { k: "Tai_Le", v: $pkg.Tai_Le }, { k: "Tai_Tham", v: $pkg.Tai_Tham }, { k: "Tai_Viet", v: $pkg.Tai_Viet }, { k: "Takri", v: $pkg.Takri }, { k: "Tamil", v: $pkg.Tamil }, { k: "Tangsa", v: $pkg.Tangsa }, { k: "Tangut", v: $pkg.Tangut }, { k: "Telugu", v: $pkg.Telugu }, { k: "Thaana", v: $pkg.Thaana }, { k: "Thai", v: $pkg.Thai }, { k: "Tibetan", v: $pkg.Tibetan }, { k: "Tifinagh", v: $pkg.Tifinagh }, { k: "Tirhuta", v: $pkg.Tirhuta }, { k: "Toto", v: $pkg.Toto }, { k: "Ugaritic", v: $pkg.Ugaritic }, { k: "Vai", v: $pkg.Vai }, { k: "Vithkuqi", v: $pkg.Vithkuqi }, { k: "Wancho", v: $pkg.Wancho }, { k: "Warang_Citi", v: $pkg.Warang_Citi }, { k: "Yezidi", v: $pkg.Yezidi }, { k: "Yi", v: $pkg.Yi }, { k: "Zanabazar_Square", v: $pkg.Zanabazar_Square }]); _White_Space = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(9, 13, 1), Range16), $clone(new Range16.ptr(32, 133, 101), Range16), $clone(new Range16.ptr(160, 5760, 5600), Range16), $clone(new Range16.ptr(8192, 8202, 1), Range16), $clone(new Range16.ptr(8232, 8233, 1), Range16), $clone(new Range16.ptr(8239, 8287, 48), Range16), $clone(new Range16.ptr(12288, 12288, 1), Range16)]), sliceType$1.nil, 2); $pkg.White_Space = _White_Space; - caseOrbit = new sliceType$2([$clone(new foldPair.ptr(75, 107), foldPair), $clone(new foldPair.ptr(83, 115), foldPair), $clone(new foldPair.ptr(107, 8490), foldPair), $clone(new foldPair.ptr(115, 383), foldPair), $clone(new foldPair.ptr(181, 924), foldPair), $clone(new foldPair.ptr(197, 229), foldPair), $clone(new foldPair.ptr(223, 7838), foldPair), $clone(new foldPair.ptr(229, 8491), foldPair), $clone(new foldPair.ptr(304, 304), foldPair), $clone(new foldPair.ptr(305, 305), foldPair), $clone(new foldPair.ptr(383, 83), foldPair), $clone(new foldPair.ptr(452, 453), foldPair), $clone(new foldPair.ptr(453, 454), foldPair), $clone(new foldPair.ptr(454, 452), foldPair), $clone(new foldPair.ptr(455, 456), foldPair), $clone(new foldPair.ptr(456, 457), foldPair), $clone(new foldPair.ptr(457, 455), foldPair), $clone(new foldPair.ptr(458, 459), foldPair), $clone(new foldPair.ptr(459, 460), foldPair), $clone(new foldPair.ptr(460, 458), foldPair), $clone(new foldPair.ptr(497, 498), foldPair), $clone(new foldPair.ptr(498, 499), foldPair), $clone(new foldPair.ptr(499, 497), foldPair), $clone(new foldPair.ptr(837, 921), foldPair), $clone(new foldPair.ptr(914, 946), foldPair), $clone(new foldPair.ptr(917, 949), foldPair), $clone(new foldPair.ptr(920, 952), foldPair), $clone(new foldPair.ptr(921, 953), foldPair), $clone(new foldPair.ptr(922, 954), foldPair), $clone(new foldPair.ptr(924, 956), foldPair), $clone(new foldPair.ptr(928, 960), foldPair), $clone(new foldPair.ptr(929, 961), foldPair), $clone(new foldPair.ptr(931, 962), foldPair), $clone(new foldPair.ptr(934, 966), foldPair), $clone(new foldPair.ptr(937, 969), foldPair), $clone(new foldPair.ptr(946, 976), foldPair), $clone(new foldPair.ptr(949, 1013), foldPair), $clone(new foldPair.ptr(952, 977), foldPair), $clone(new foldPair.ptr(953, 8126), foldPair), $clone(new foldPair.ptr(954, 1008), foldPair), $clone(new foldPair.ptr(956, 181), foldPair), $clone(new foldPair.ptr(960, 982), foldPair), $clone(new foldPair.ptr(961, 1009), foldPair), $clone(new foldPair.ptr(962, 963), foldPair), $clone(new foldPair.ptr(963, 931), foldPair), $clone(new foldPair.ptr(966, 981), foldPair), $clone(new foldPair.ptr(969, 8486), foldPair), $clone(new foldPair.ptr(976, 914), foldPair), $clone(new foldPair.ptr(977, 1012), foldPair), $clone(new foldPair.ptr(981, 934), foldPair), $clone(new foldPair.ptr(982, 928), foldPair), $clone(new foldPair.ptr(1008, 922), foldPair), $clone(new foldPair.ptr(1009, 929), foldPair), $clone(new foldPair.ptr(1012, 920), foldPair), $clone(new foldPair.ptr(1013, 917), foldPair), $clone(new foldPair.ptr(1042, 1074), foldPair), $clone(new foldPair.ptr(1044, 1076), foldPair), $clone(new foldPair.ptr(1054, 1086), foldPair), $clone(new foldPair.ptr(1057, 1089), foldPair), $clone(new foldPair.ptr(1058, 1090), foldPair), $clone(new foldPair.ptr(1066, 1098), foldPair), $clone(new foldPair.ptr(1074, 7296), foldPair), $clone(new foldPair.ptr(1076, 7297), foldPair), $clone(new foldPair.ptr(1086, 7298), foldPair), $clone(new foldPair.ptr(1089, 7299), foldPair), $clone(new foldPair.ptr(1090, 7300), foldPair), $clone(new foldPair.ptr(1098, 7302), foldPair), $clone(new foldPair.ptr(1122, 1123), foldPair), $clone(new foldPair.ptr(1123, 7303), foldPair), $clone(new foldPair.ptr(7296, 1042), foldPair), $clone(new foldPair.ptr(7297, 1044), foldPair), $clone(new foldPair.ptr(7298, 1054), foldPair), $clone(new foldPair.ptr(7299, 1057), foldPair), $clone(new foldPair.ptr(7300, 7301), foldPair), $clone(new foldPair.ptr(7301, 1058), foldPair), $clone(new foldPair.ptr(7302, 1066), foldPair), $clone(new foldPair.ptr(7303, 1122), foldPair), $clone(new foldPair.ptr(7304, 42570), foldPair), $clone(new foldPair.ptr(7776, 7777), foldPair), $clone(new foldPair.ptr(7777, 7835), foldPair), $clone(new foldPair.ptr(7835, 7776), foldPair), $clone(new foldPair.ptr(7838, 223), foldPair), $clone(new foldPair.ptr(8126, 837), foldPair), $clone(new foldPair.ptr(8486, 937), foldPair), $clone(new foldPair.ptr(8490, 75), foldPair), $clone(new foldPair.ptr(8491, 197), foldPair), $clone(new foldPair.ptr(42570, 42571), foldPair), $clone(new foldPair.ptr(42571, 7304), foldPair)]); + _CaseRanges = new sliceType$2([$clone(new CaseRange.ptr(65, 90, $clone($toNativeArray($kindInt32, [0, 32, 0]), d)), CaseRange), $clone(new CaseRange.ptr(97, 122, $clone($toNativeArray($kindInt32, [-32, 0, -32]), d)), CaseRange), $clone(new CaseRange.ptr(181, 181, $clone($toNativeArray($kindInt32, [743, 0, 743]), d)), CaseRange), $clone(new CaseRange.ptr(192, 214, $clone($toNativeArray($kindInt32, [0, 32, 0]), d)), CaseRange), $clone(new CaseRange.ptr(216, 222, $clone($toNativeArray($kindInt32, [0, 32, 0]), d)), CaseRange), $clone(new CaseRange.ptr(224, 246, $clone($toNativeArray($kindInt32, [-32, 0, -32]), d)), CaseRange), $clone(new CaseRange.ptr(248, 254, $clone($toNativeArray($kindInt32, [-32, 0, -32]), d)), CaseRange), $clone(new CaseRange.ptr(255, 255, $clone($toNativeArray($kindInt32, [121, 0, 121]), d)), CaseRange), $clone(new CaseRange.ptr(256, 303, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(304, 304, $clone($toNativeArray($kindInt32, [0, -199, 0]), d)), CaseRange), $clone(new CaseRange.ptr(305, 305, $clone($toNativeArray($kindInt32, [-232, 0, -232]), d)), CaseRange), $clone(new CaseRange.ptr(306, 311, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(313, 328, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(330, 375, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(376, 376, $clone($toNativeArray($kindInt32, [0, -121, 0]), d)), CaseRange), $clone(new CaseRange.ptr(377, 382, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(383, 383, $clone($toNativeArray($kindInt32, [-300, 0, -300]), d)), CaseRange), $clone(new CaseRange.ptr(384, 384, $clone($toNativeArray($kindInt32, [195, 0, 195]), d)), CaseRange), $clone(new CaseRange.ptr(385, 385, $clone($toNativeArray($kindInt32, [0, 210, 0]), d)), CaseRange), $clone(new CaseRange.ptr(386, 389, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(390, 390, $clone($toNativeArray($kindInt32, [0, 206, 0]), d)), CaseRange), $clone(new CaseRange.ptr(391, 392, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(393, 394, $clone($toNativeArray($kindInt32, [0, 205, 0]), d)), CaseRange), $clone(new CaseRange.ptr(395, 396, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(398, 398, $clone($toNativeArray($kindInt32, [0, 79, 0]), d)), CaseRange), $clone(new CaseRange.ptr(399, 399, $clone($toNativeArray($kindInt32, [0, 202, 0]), d)), CaseRange), $clone(new CaseRange.ptr(400, 400, $clone($toNativeArray($kindInt32, [0, 203, 0]), d)), CaseRange), $clone(new CaseRange.ptr(401, 402, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(403, 403, $clone($toNativeArray($kindInt32, [0, 205, 0]), d)), CaseRange), $clone(new CaseRange.ptr(404, 404, $clone($toNativeArray($kindInt32, [0, 207, 0]), d)), CaseRange), $clone(new CaseRange.ptr(405, 405, $clone($toNativeArray($kindInt32, [97, 0, 97]), d)), CaseRange), $clone(new CaseRange.ptr(406, 406, $clone($toNativeArray($kindInt32, [0, 211, 0]), d)), CaseRange), $clone(new CaseRange.ptr(407, 407, $clone($toNativeArray($kindInt32, [0, 209, 0]), d)), CaseRange), $clone(new CaseRange.ptr(408, 409, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(410, 410, $clone($toNativeArray($kindInt32, [163, 0, 163]), d)), CaseRange), $clone(new CaseRange.ptr(412, 412, $clone($toNativeArray($kindInt32, [0, 211, 0]), d)), CaseRange), $clone(new CaseRange.ptr(413, 413, $clone($toNativeArray($kindInt32, [0, 213, 0]), d)), CaseRange), $clone(new CaseRange.ptr(414, 414, $clone($toNativeArray($kindInt32, [130, 0, 130]), d)), CaseRange), $clone(new CaseRange.ptr(415, 415, $clone($toNativeArray($kindInt32, [0, 214, 0]), d)), CaseRange), $clone(new CaseRange.ptr(416, 421, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(422, 422, $clone($toNativeArray($kindInt32, [0, 218, 0]), d)), CaseRange), $clone(new CaseRange.ptr(423, 424, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(425, 425, $clone($toNativeArray($kindInt32, [0, 218, 0]), d)), CaseRange), $clone(new CaseRange.ptr(428, 429, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(430, 430, $clone($toNativeArray($kindInt32, [0, 218, 0]), d)), CaseRange), $clone(new CaseRange.ptr(431, 432, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(433, 434, $clone($toNativeArray($kindInt32, [0, 217, 0]), d)), CaseRange), $clone(new CaseRange.ptr(435, 438, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(439, 439, $clone($toNativeArray($kindInt32, [0, 219, 0]), d)), CaseRange), $clone(new CaseRange.ptr(440, 441, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(444, 445, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(447, 447, $clone($toNativeArray($kindInt32, [56, 0, 56]), d)), CaseRange), $clone(new CaseRange.ptr(452, 452, $clone($toNativeArray($kindInt32, [0, 2, 1]), d)), CaseRange), $clone(new CaseRange.ptr(453, 453, $clone($toNativeArray($kindInt32, [-1, 1, 0]), d)), CaseRange), $clone(new CaseRange.ptr(454, 454, $clone($toNativeArray($kindInt32, [-2, 0, -1]), d)), CaseRange), $clone(new CaseRange.ptr(455, 455, $clone($toNativeArray($kindInt32, [0, 2, 1]), d)), CaseRange), $clone(new CaseRange.ptr(456, 456, $clone($toNativeArray($kindInt32, [-1, 1, 0]), d)), CaseRange), $clone(new CaseRange.ptr(457, 457, $clone($toNativeArray($kindInt32, [-2, 0, -1]), d)), CaseRange), $clone(new CaseRange.ptr(458, 458, $clone($toNativeArray($kindInt32, [0, 2, 1]), d)), CaseRange), $clone(new CaseRange.ptr(459, 459, $clone($toNativeArray($kindInt32, [-1, 1, 0]), d)), CaseRange), $clone(new CaseRange.ptr(460, 460, $clone($toNativeArray($kindInt32, [-2, 0, -1]), d)), CaseRange), $clone(new CaseRange.ptr(461, 476, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(477, 477, $clone($toNativeArray($kindInt32, [-79, 0, -79]), d)), CaseRange), $clone(new CaseRange.ptr(478, 495, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(497, 497, $clone($toNativeArray($kindInt32, [0, 2, 1]), d)), CaseRange), $clone(new CaseRange.ptr(498, 498, $clone($toNativeArray($kindInt32, [-1, 1, 0]), d)), CaseRange), $clone(new CaseRange.ptr(499, 499, $clone($toNativeArray($kindInt32, [-2, 0, -1]), d)), CaseRange), $clone(new CaseRange.ptr(500, 501, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(502, 502, $clone($toNativeArray($kindInt32, [0, -97, 0]), d)), CaseRange), $clone(new CaseRange.ptr(503, 503, $clone($toNativeArray($kindInt32, [0, -56, 0]), d)), CaseRange), $clone(new CaseRange.ptr(504, 543, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(544, 544, $clone($toNativeArray($kindInt32, [0, -130, 0]), d)), CaseRange), $clone(new CaseRange.ptr(546, 563, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(570, 570, $clone($toNativeArray($kindInt32, [0, 10795, 0]), d)), CaseRange), $clone(new CaseRange.ptr(571, 572, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(573, 573, $clone($toNativeArray($kindInt32, [0, -163, 0]), d)), CaseRange), $clone(new CaseRange.ptr(574, 574, $clone($toNativeArray($kindInt32, [0, 10792, 0]), d)), CaseRange), $clone(new CaseRange.ptr(575, 576, $clone($toNativeArray($kindInt32, [10815, 0, 10815]), d)), CaseRange), $clone(new CaseRange.ptr(577, 578, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(579, 579, $clone($toNativeArray($kindInt32, [0, -195, 0]), d)), CaseRange), $clone(new CaseRange.ptr(580, 580, $clone($toNativeArray($kindInt32, [0, 69, 0]), d)), CaseRange), $clone(new CaseRange.ptr(581, 581, $clone($toNativeArray($kindInt32, [0, 71, 0]), d)), CaseRange), $clone(new CaseRange.ptr(582, 591, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(592, 592, $clone($toNativeArray($kindInt32, [10783, 0, 10783]), d)), CaseRange), $clone(new CaseRange.ptr(593, 593, $clone($toNativeArray($kindInt32, [10780, 0, 10780]), d)), CaseRange), $clone(new CaseRange.ptr(594, 594, $clone($toNativeArray($kindInt32, [10782, 0, 10782]), d)), CaseRange), $clone(new CaseRange.ptr(595, 595, $clone($toNativeArray($kindInt32, [-210, 0, -210]), d)), CaseRange), $clone(new CaseRange.ptr(596, 596, $clone($toNativeArray($kindInt32, [-206, 0, -206]), d)), CaseRange), $clone(new CaseRange.ptr(598, 599, $clone($toNativeArray($kindInt32, [-205, 0, -205]), d)), CaseRange), $clone(new CaseRange.ptr(601, 601, $clone($toNativeArray($kindInt32, [-202, 0, -202]), d)), CaseRange), $clone(new CaseRange.ptr(603, 603, $clone($toNativeArray($kindInt32, [-203, 0, -203]), d)), CaseRange), $clone(new CaseRange.ptr(604, 604, $clone($toNativeArray($kindInt32, [42319, 0, 42319]), d)), CaseRange), $clone(new CaseRange.ptr(608, 608, $clone($toNativeArray($kindInt32, [-205, 0, -205]), d)), CaseRange), $clone(new CaseRange.ptr(609, 609, $clone($toNativeArray($kindInt32, [42315, 0, 42315]), d)), CaseRange), $clone(new CaseRange.ptr(611, 611, $clone($toNativeArray($kindInt32, [-207, 0, -207]), d)), CaseRange), $clone(new CaseRange.ptr(613, 613, $clone($toNativeArray($kindInt32, [42280, 0, 42280]), d)), CaseRange), $clone(new CaseRange.ptr(614, 614, $clone($toNativeArray($kindInt32, [42308, 0, 42308]), d)), CaseRange), $clone(new CaseRange.ptr(616, 616, $clone($toNativeArray($kindInt32, [-209, 0, -209]), d)), CaseRange), $clone(new CaseRange.ptr(617, 617, $clone($toNativeArray($kindInt32, [-211, 0, -211]), d)), CaseRange), $clone(new CaseRange.ptr(618, 618, $clone($toNativeArray($kindInt32, [42308, 0, 42308]), d)), CaseRange), $clone(new CaseRange.ptr(619, 619, $clone($toNativeArray($kindInt32, [10743, 0, 10743]), d)), CaseRange), $clone(new CaseRange.ptr(620, 620, $clone($toNativeArray($kindInt32, [42305, 0, 42305]), d)), CaseRange), $clone(new CaseRange.ptr(623, 623, $clone($toNativeArray($kindInt32, [-211, 0, -211]), d)), CaseRange), $clone(new CaseRange.ptr(625, 625, $clone($toNativeArray($kindInt32, [10749, 0, 10749]), d)), CaseRange), $clone(new CaseRange.ptr(626, 626, $clone($toNativeArray($kindInt32, [-213, 0, -213]), d)), CaseRange), $clone(new CaseRange.ptr(629, 629, $clone($toNativeArray($kindInt32, [-214, 0, -214]), d)), CaseRange), $clone(new CaseRange.ptr(637, 637, $clone($toNativeArray($kindInt32, [10727, 0, 10727]), d)), CaseRange), $clone(new CaseRange.ptr(640, 640, $clone($toNativeArray($kindInt32, [-218, 0, -218]), d)), CaseRange), $clone(new CaseRange.ptr(642, 642, $clone($toNativeArray($kindInt32, [42307, 0, 42307]), d)), CaseRange), $clone(new CaseRange.ptr(643, 643, $clone($toNativeArray($kindInt32, [-218, 0, -218]), d)), CaseRange), $clone(new CaseRange.ptr(647, 647, $clone($toNativeArray($kindInt32, [42282, 0, 42282]), d)), CaseRange), $clone(new CaseRange.ptr(648, 648, $clone($toNativeArray($kindInt32, [-218, 0, -218]), d)), CaseRange), $clone(new CaseRange.ptr(649, 649, $clone($toNativeArray($kindInt32, [-69, 0, -69]), d)), CaseRange), $clone(new CaseRange.ptr(650, 651, $clone($toNativeArray($kindInt32, [-217, 0, -217]), d)), CaseRange), $clone(new CaseRange.ptr(652, 652, $clone($toNativeArray($kindInt32, [-71, 0, -71]), d)), CaseRange), $clone(new CaseRange.ptr(658, 658, $clone($toNativeArray($kindInt32, [-219, 0, -219]), d)), CaseRange), $clone(new CaseRange.ptr(669, 669, $clone($toNativeArray($kindInt32, [42261, 0, 42261]), d)), CaseRange), $clone(new CaseRange.ptr(670, 670, $clone($toNativeArray($kindInt32, [42258, 0, 42258]), d)), CaseRange), $clone(new CaseRange.ptr(837, 837, $clone($toNativeArray($kindInt32, [84, 0, 84]), d)), CaseRange), $clone(new CaseRange.ptr(880, 883, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(886, 887, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(891, 893, $clone($toNativeArray($kindInt32, [130, 0, 130]), d)), CaseRange), $clone(new CaseRange.ptr(895, 895, $clone($toNativeArray($kindInt32, [0, 116, 0]), d)), CaseRange), $clone(new CaseRange.ptr(902, 902, $clone($toNativeArray($kindInt32, [0, 38, 0]), d)), CaseRange), $clone(new CaseRange.ptr(904, 906, $clone($toNativeArray($kindInt32, [0, 37, 0]), d)), CaseRange), $clone(new CaseRange.ptr(908, 908, $clone($toNativeArray($kindInt32, [0, 64, 0]), d)), CaseRange), $clone(new CaseRange.ptr(910, 911, $clone($toNativeArray($kindInt32, [0, 63, 0]), d)), CaseRange), $clone(new CaseRange.ptr(913, 929, $clone($toNativeArray($kindInt32, [0, 32, 0]), d)), CaseRange), $clone(new CaseRange.ptr(931, 939, $clone($toNativeArray($kindInt32, [0, 32, 0]), d)), CaseRange), $clone(new CaseRange.ptr(940, 940, $clone($toNativeArray($kindInt32, [-38, 0, -38]), d)), CaseRange), $clone(new CaseRange.ptr(941, 943, $clone($toNativeArray($kindInt32, [-37, 0, -37]), d)), CaseRange), $clone(new CaseRange.ptr(945, 961, $clone($toNativeArray($kindInt32, [-32, 0, -32]), d)), CaseRange), $clone(new CaseRange.ptr(962, 962, $clone($toNativeArray($kindInt32, [-31, 0, -31]), d)), CaseRange), $clone(new CaseRange.ptr(963, 971, $clone($toNativeArray($kindInt32, [-32, 0, -32]), d)), CaseRange), $clone(new CaseRange.ptr(972, 972, $clone($toNativeArray($kindInt32, [-64, 0, -64]), d)), CaseRange), $clone(new CaseRange.ptr(973, 974, $clone($toNativeArray($kindInt32, [-63, 0, -63]), d)), CaseRange), $clone(new CaseRange.ptr(975, 975, $clone($toNativeArray($kindInt32, [0, 8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(976, 976, $clone($toNativeArray($kindInt32, [-62, 0, -62]), d)), CaseRange), $clone(new CaseRange.ptr(977, 977, $clone($toNativeArray($kindInt32, [-57, 0, -57]), d)), CaseRange), $clone(new CaseRange.ptr(981, 981, $clone($toNativeArray($kindInt32, [-47, 0, -47]), d)), CaseRange), $clone(new CaseRange.ptr(982, 982, $clone($toNativeArray($kindInt32, [-54, 0, -54]), d)), CaseRange), $clone(new CaseRange.ptr(983, 983, $clone($toNativeArray($kindInt32, [-8, 0, -8]), d)), CaseRange), $clone(new CaseRange.ptr(984, 1007, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(1008, 1008, $clone($toNativeArray($kindInt32, [-86, 0, -86]), d)), CaseRange), $clone(new CaseRange.ptr(1009, 1009, $clone($toNativeArray($kindInt32, [-80, 0, -80]), d)), CaseRange), $clone(new CaseRange.ptr(1010, 1010, $clone($toNativeArray($kindInt32, [7, 0, 7]), d)), CaseRange), $clone(new CaseRange.ptr(1011, 1011, $clone($toNativeArray($kindInt32, [-116, 0, -116]), d)), CaseRange), $clone(new CaseRange.ptr(1012, 1012, $clone($toNativeArray($kindInt32, [0, -60, 0]), d)), CaseRange), $clone(new CaseRange.ptr(1013, 1013, $clone($toNativeArray($kindInt32, [-96, 0, -96]), d)), CaseRange), $clone(new CaseRange.ptr(1015, 1016, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(1017, 1017, $clone($toNativeArray($kindInt32, [0, -7, 0]), d)), CaseRange), $clone(new CaseRange.ptr(1018, 1019, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(1021, 1023, $clone($toNativeArray($kindInt32, [0, -130, 0]), d)), CaseRange), $clone(new CaseRange.ptr(1024, 1039, $clone($toNativeArray($kindInt32, [0, 80, 0]), d)), CaseRange), $clone(new CaseRange.ptr(1040, 1071, $clone($toNativeArray($kindInt32, [0, 32, 0]), d)), CaseRange), $clone(new CaseRange.ptr(1072, 1103, $clone($toNativeArray($kindInt32, [-32, 0, -32]), d)), CaseRange), $clone(new CaseRange.ptr(1104, 1119, $clone($toNativeArray($kindInt32, [-80, 0, -80]), d)), CaseRange), $clone(new CaseRange.ptr(1120, 1153, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(1162, 1215, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(1216, 1216, $clone($toNativeArray($kindInt32, [0, 15, 0]), d)), CaseRange), $clone(new CaseRange.ptr(1217, 1230, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(1231, 1231, $clone($toNativeArray($kindInt32, [-15, 0, -15]), d)), CaseRange), $clone(new CaseRange.ptr(1232, 1327, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(1329, 1366, $clone($toNativeArray($kindInt32, [0, 48, 0]), d)), CaseRange), $clone(new CaseRange.ptr(1377, 1414, $clone($toNativeArray($kindInt32, [-48, 0, -48]), d)), CaseRange), $clone(new CaseRange.ptr(4256, 4293, $clone($toNativeArray($kindInt32, [0, 7264, 0]), d)), CaseRange), $clone(new CaseRange.ptr(4295, 4295, $clone($toNativeArray($kindInt32, [0, 7264, 0]), d)), CaseRange), $clone(new CaseRange.ptr(4301, 4301, $clone($toNativeArray($kindInt32, [0, 7264, 0]), d)), CaseRange), $clone(new CaseRange.ptr(4304, 4346, $clone($toNativeArray($kindInt32, [3008, 0, 0]), d)), CaseRange), $clone(new CaseRange.ptr(4349, 4351, $clone($toNativeArray($kindInt32, [3008, 0, 0]), d)), CaseRange), $clone(new CaseRange.ptr(5024, 5103, $clone($toNativeArray($kindInt32, [0, 38864, 0]), d)), CaseRange), $clone(new CaseRange.ptr(5104, 5109, $clone($toNativeArray($kindInt32, [0, 8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(5112, 5117, $clone($toNativeArray($kindInt32, [-8, 0, -8]), d)), CaseRange), $clone(new CaseRange.ptr(7296, 7296, $clone($toNativeArray($kindInt32, [-6254, 0, -6254]), d)), CaseRange), $clone(new CaseRange.ptr(7297, 7297, $clone($toNativeArray($kindInt32, [-6253, 0, -6253]), d)), CaseRange), $clone(new CaseRange.ptr(7298, 7298, $clone($toNativeArray($kindInt32, [-6244, 0, -6244]), d)), CaseRange), $clone(new CaseRange.ptr(7299, 7300, $clone($toNativeArray($kindInt32, [-6242, 0, -6242]), d)), CaseRange), $clone(new CaseRange.ptr(7301, 7301, $clone($toNativeArray($kindInt32, [-6243, 0, -6243]), d)), CaseRange), $clone(new CaseRange.ptr(7302, 7302, $clone($toNativeArray($kindInt32, [-6236, 0, -6236]), d)), CaseRange), $clone(new CaseRange.ptr(7303, 7303, $clone($toNativeArray($kindInt32, [-6181, 0, -6181]), d)), CaseRange), $clone(new CaseRange.ptr(7304, 7304, $clone($toNativeArray($kindInt32, [35266, 0, 35266]), d)), CaseRange), $clone(new CaseRange.ptr(7312, 7354, $clone($toNativeArray($kindInt32, [0, -3008, 0]), d)), CaseRange), $clone(new CaseRange.ptr(7357, 7359, $clone($toNativeArray($kindInt32, [0, -3008, 0]), d)), CaseRange), $clone(new CaseRange.ptr(7545, 7545, $clone($toNativeArray($kindInt32, [35332, 0, 35332]), d)), CaseRange), $clone(new CaseRange.ptr(7549, 7549, $clone($toNativeArray($kindInt32, [3814, 0, 3814]), d)), CaseRange), $clone(new CaseRange.ptr(7566, 7566, $clone($toNativeArray($kindInt32, [35384, 0, 35384]), d)), CaseRange), $clone(new CaseRange.ptr(7680, 7829, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(7835, 7835, $clone($toNativeArray($kindInt32, [-59, 0, -59]), d)), CaseRange), $clone(new CaseRange.ptr(7838, 7838, $clone($toNativeArray($kindInt32, [0, -7615, 0]), d)), CaseRange), $clone(new CaseRange.ptr(7840, 7935, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(7936, 7943, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(7944, 7951, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(7952, 7957, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(7960, 7965, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(7968, 7975, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(7976, 7983, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(7984, 7991, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(7992, 7999, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8000, 8005, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8008, 8013, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8017, 8017, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8019, 8019, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8021, 8021, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8023, 8023, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8025, 8025, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8027, 8027, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8029, 8029, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8031, 8031, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8032, 8039, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8040, 8047, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8048, 8049, $clone($toNativeArray($kindInt32, [74, 0, 74]), d)), CaseRange), $clone(new CaseRange.ptr(8050, 8053, $clone($toNativeArray($kindInt32, [86, 0, 86]), d)), CaseRange), $clone(new CaseRange.ptr(8054, 8055, $clone($toNativeArray($kindInt32, [100, 0, 100]), d)), CaseRange), $clone(new CaseRange.ptr(8056, 8057, $clone($toNativeArray($kindInt32, [128, 0, 128]), d)), CaseRange), $clone(new CaseRange.ptr(8058, 8059, $clone($toNativeArray($kindInt32, [112, 0, 112]), d)), CaseRange), $clone(new CaseRange.ptr(8060, 8061, $clone($toNativeArray($kindInt32, [126, 0, 126]), d)), CaseRange), $clone(new CaseRange.ptr(8064, 8071, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8072, 8079, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8080, 8087, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8088, 8095, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8096, 8103, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8104, 8111, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8112, 8113, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8115, 8115, $clone($toNativeArray($kindInt32, [9, 0, 9]), d)), CaseRange), $clone(new CaseRange.ptr(8120, 8121, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8122, 8123, $clone($toNativeArray($kindInt32, [0, -74, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8124, 8124, $clone($toNativeArray($kindInt32, [0, -9, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8126, 8126, $clone($toNativeArray($kindInt32, [-7205, 0, -7205]), d)), CaseRange), $clone(new CaseRange.ptr(8131, 8131, $clone($toNativeArray($kindInt32, [9, 0, 9]), d)), CaseRange), $clone(new CaseRange.ptr(8136, 8139, $clone($toNativeArray($kindInt32, [0, -86, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8140, 8140, $clone($toNativeArray($kindInt32, [0, -9, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8144, 8145, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8152, 8153, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8154, 8155, $clone($toNativeArray($kindInt32, [0, -100, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8160, 8161, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8165, 8165, $clone($toNativeArray($kindInt32, [7, 0, 7]), d)), CaseRange), $clone(new CaseRange.ptr(8168, 8169, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8170, 8171, $clone($toNativeArray($kindInt32, [0, -112, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8172, 8172, $clone($toNativeArray($kindInt32, [0, -7, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8179, 8179, $clone($toNativeArray($kindInt32, [9, 0, 9]), d)), CaseRange), $clone(new CaseRange.ptr(8184, 8185, $clone($toNativeArray($kindInt32, [0, -128, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8186, 8187, $clone($toNativeArray($kindInt32, [0, -126, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8188, 8188, $clone($toNativeArray($kindInt32, [0, -9, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8486, 8486, $clone($toNativeArray($kindInt32, [0, -7517, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8490, 8490, $clone($toNativeArray($kindInt32, [0, -8383, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8491, 8491, $clone($toNativeArray($kindInt32, [0, -8262, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8498, 8498, $clone($toNativeArray($kindInt32, [0, 28, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8526, 8526, $clone($toNativeArray($kindInt32, [-28, 0, -28]), d)), CaseRange), $clone(new CaseRange.ptr(8544, 8559, $clone($toNativeArray($kindInt32, [0, 16, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8560, 8575, $clone($toNativeArray($kindInt32, [-16, 0, -16]), d)), CaseRange), $clone(new CaseRange.ptr(8579, 8580, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(9398, 9423, $clone($toNativeArray($kindInt32, [0, 26, 0]), d)), CaseRange), $clone(new CaseRange.ptr(9424, 9449, $clone($toNativeArray($kindInt32, [-26, 0, -26]), d)), CaseRange), $clone(new CaseRange.ptr(11264, 11311, $clone($toNativeArray($kindInt32, [0, 48, 0]), d)), CaseRange), $clone(new CaseRange.ptr(11312, 11359, $clone($toNativeArray($kindInt32, [-48, 0, -48]), d)), CaseRange), $clone(new CaseRange.ptr(11360, 11361, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(11362, 11362, $clone($toNativeArray($kindInt32, [0, -10743, 0]), d)), CaseRange), $clone(new CaseRange.ptr(11363, 11363, $clone($toNativeArray($kindInt32, [0, -3814, 0]), d)), CaseRange), $clone(new CaseRange.ptr(11364, 11364, $clone($toNativeArray($kindInt32, [0, -10727, 0]), d)), CaseRange), $clone(new CaseRange.ptr(11365, 11365, $clone($toNativeArray($kindInt32, [-10795, 0, -10795]), d)), CaseRange), $clone(new CaseRange.ptr(11366, 11366, $clone($toNativeArray($kindInt32, [-10792, 0, -10792]), d)), CaseRange), $clone(new CaseRange.ptr(11367, 11372, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(11373, 11373, $clone($toNativeArray($kindInt32, [0, -10780, 0]), d)), CaseRange), $clone(new CaseRange.ptr(11374, 11374, $clone($toNativeArray($kindInt32, [0, -10749, 0]), d)), CaseRange), $clone(new CaseRange.ptr(11375, 11375, $clone($toNativeArray($kindInt32, [0, -10783, 0]), d)), CaseRange), $clone(new CaseRange.ptr(11376, 11376, $clone($toNativeArray($kindInt32, [0, -10782, 0]), d)), CaseRange), $clone(new CaseRange.ptr(11378, 11379, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(11381, 11382, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(11390, 11391, $clone($toNativeArray($kindInt32, [0, -10815, 0]), d)), CaseRange), $clone(new CaseRange.ptr(11392, 11491, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(11499, 11502, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(11506, 11507, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(11520, 11557, $clone($toNativeArray($kindInt32, [-7264, 0, -7264]), d)), CaseRange), $clone(new CaseRange.ptr(11559, 11559, $clone($toNativeArray($kindInt32, [-7264, 0, -7264]), d)), CaseRange), $clone(new CaseRange.ptr(11565, 11565, $clone($toNativeArray($kindInt32, [-7264, 0, -7264]), d)), CaseRange), $clone(new CaseRange.ptr(42560, 42605, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42624, 42651, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42786, 42799, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42802, 42863, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42873, 42876, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42877, 42877, $clone($toNativeArray($kindInt32, [0, -35332, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42878, 42887, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42891, 42892, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42893, 42893, $clone($toNativeArray($kindInt32, [0, -42280, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42896, 42899, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42900, 42900, $clone($toNativeArray($kindInt32, [48, 0, 48]), d)), CaseRange), $clone(new CaseRange.ptr(42902, 42921, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42922, 42922, $clone($toNativeArray($kindInt32, [0, -42308, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42923, 42923, $clone($toNativeArray($kindInt32, [0, -42319, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42924, 42924, $clone($toNativeArray($kindInt32, [0, -42315, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42925, 42925, $clone($toNativeArray($kindInt32, [0, -42305, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42926, 42926, $clone($toNativeArray($kindInt32, [0, -42308, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42928, 42928, $clone($toNativeArray($kindInt32, [0, -42258, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42929, 42929, $clone($toNativeArray($kindInt32, [0, -42282, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42930, 42930, $clone($toNativeArray($kindInt32, [0, -42261, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42931, 42931, $clone($toNativeArray($kindInt32, [0, 928, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42932, 42947, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42948, 42948, $clone($toNativeArray($kindInt32, [0, -48, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42949, 42949, $clone($toNativeArray($kindInt32, [0, -42307, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42950, 42950, $clone($toNativeArray($kindInt32, [0, -35384, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42951, 42954, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42960, 42961, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42966, 42969, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42997, 42998, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(43859, 43859, $clone($toNativeArray($kindInt32, [-928, 0, -928]), d)), CaseRange), $clone(new CaseRange.ptr(43888, 43967, $clone($toNativeArray($kindInt32, [-38864, 0, -38864]), d)), CaseRange), $clone(new CaseRange.ptr(65313, 65338, $clone($toNativeArray($kindInt32, [0, 32, 0]), d)), CaseRange), $clone(new CaseRange.ptr(65345, 65370, $clone($toNativeArray($kindInt32, [-32, 0, -32]), d)), CaseRange), $clone(new CaseRange.ptr(66560, 66599, $clone($toNativeArray($kindInt32, [0, 40, 0]), d)), CaseRange), $clone(new CaseRange.ptr(66600, 66639, $clone($toNativeArray($kindInt32, [-40, 0, -40]), d)), CaseRange), $clone(new CaseRange.ptr(66736, 66771, $clone($toNativeArray($kindInt32, [0, 40, 0]), d)), CaseRange), $clone(new CaseRange.ptr(66776, 66811, $clone($toNativeArray($kindInt32, [-40, 0, -40]), d)), CaseRange), $clone(new CaseRange.ptr(66928, 66938, $clone($toNativeArray($kindInt32, [0, 39, 0]), d)), CaseRange), $clone(new CaseRange.ptr(66940, 66954, $clone($toNativeArray($kindInt32, [0, 39, 0]), d)), CaseRange), $clone(new CaseRange.ptr(66956, 66962, $clone($toNativeArray($kindInt32, [0, 39, 0]), d)), CaseRange), $clone(new CaseRange.ptr(66964, 66965, $clone($toNativeArray($kindInt32, [0, 39, 0]), d)), CaseRange), $clone(new CaseRange.ptr(66967, 66977, $clone($toNativeArray($kindInt32, [-39, 0, -39]), d)), CaseRange), $clone(new CaseRange.ptr(66979, 66993, $clone($toNativeArray($kindInt32, [-39, 0, -39]), d)), CaseRange), $clone(new CaseRange.ptr(66995, 67001, $clone($toNativeArray($kindInt32, [-39, 0, -39]), d)), CaseRange), $clone(new CaseRange.ptr(67003, 67004, $clone($toNativeArray($kindInt32, [-39, 0, -39]), d)), CaseRange), $clone(new CaseRange.ptr(68736, 68786, $clone($toNativeArray($kindInt32, [0, 64, 0]), d)), CaseRange), $clone(new CaseRange.ptr(68800, 68850, $clone($toNativeArray($kindInt32, [-64, 0, -64]), d)), CaseRange), $clone(new CaseRange.ptr(71840, 71871, $clone($toNativeArray($kindInt32, [0, 32, 0]), d)), CaseRange), $clone(new CaseRange.ptr(71872, 71903, $clone($toNativeArray($kindInt32, [-32, 0, -32]), d)), CaseRange), $clone(new CaseRange.ptr(93760, 93791, $clone($toNativeArray($kindInt32, [0, 32, 0]), d)), CaseRange), $clone(new CaseRange.ptr(93792, 93823, $clone($toNativeArray($kindInt32, [-32, 0, -32]), d)), CaseRange), $clone(new CaseRange.ptr(125184, 125217, $clone($toNativeArray($kindInt32, [0, 34, 0]), d)), CaseRange), $clone(new CaseRange.ptr(125218, 125251, $clone($toNativeArray($kindInt32, [-34, 0, -34]), d)), CaseRange)]); + $pkg.CaseRanges = _CaseRanges; + properties = $toNativeArray($kindUint8, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 144, 130, 130, 130, 136, 130, 130, 130, 130, 130, 130, 136, 130, 130, 130, 130, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 130, 130, 136, 136, 136, 130, 130, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 130, 130, 130, 136, 130, 136, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 130, 136, 130, 136, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 16, 130, 136, 136, 136, 136, 136, 130, 136, 136, 224, 130, 136, 0, 136, 136, 136, 136, 132, 132, 136, 192, 130, 130, 136, 132, 224, 130, 132, 132, 132, 130, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 136, 160, 160, 160, 160, 160, 160, 160, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 136, 192, 192, 192, 192, 192, 192, 192, 192]); + asciiFold = $toNativeArray($kindUint16, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 91, 92, 93, 94, 95, 96, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 8490, 76, 77, 78, 79, 80, 81, 82, 383, 84, 85, 86, 87, 88, 89, 90, 123, 124, 125, 126, 127]); + caseOrbit = new sliceType$3([$clone(new foldPair.ptr(75, 107), foldPair), $clone(new foldPair.ptr(83, 115), foldPair), $clone(new foldPair.ptr(107, 8490), foldPair), $clone(new foldPair.ptr(115, 383), foldPair), $clone(new foldPair.ptr(181, 924), foldPair), $clone(new foldPair.ptr(197, 229), foldPair), $clone(new foldPair.ptr(223, 7838), foldPair), $clone(new foldPair.ptr(229, 8491), foldPair), $clone(new foldPair.ptr(304, 304), foldPair), $clone(new foldPair.ptr(305, 305), foldPair), $clone(new foldPair.ptr(383, 83), foldPair), $clone(new foldPair.ptr(452, 453), foldPair), $clone(new foldPair.ptr(453, 454), foldPair), $clone(new foldPair.ptr(454, 452), foldPair), $clone(new foldPair.ptr(455, 456), foldPair), $clone(new foldPair.ptr(456, 457), foldPair), $clone(new foldPair.ptr(457, 455), foldPair), $clone(new foldPair.ptr(458, 459), foldPair), $clone(new foldPair.ptr(459, 460), foldPair), $clone(new foldPair.ptr(460, 458), foldPair), $clone(new foldPair.ptr(497, 498), foldPair), $clone(new foldPair.ptr(498, 499), foldPair), $clone(new foldPair.ptr(499, 497), foldPair), $clone(new foldPair.ptr(837, 921), foldPair), $clone(new foldPair.ptr(914, 946), foldPair), $clone(new foldPair.ptr(917, 949), foldPair), $clone(new foldPair.ptr(920, 952), foldPair), $clone(new foldPair.ptr(921, 953), foldPair), $clone(new foldPair.ptr(922, 954), foldPair), $clone(new foldPair.ptr(924, 956), foldPair), $clone(new foldPair.ptr(928, 960), foldPair), $clone(new foldPair.ptr(929, 961), foldPair), $clone(new foldPair.ptr(931, 962), foldPair), $clone(new foldPair.ptr(934, 966), foldPair), $clone(new foldPair.ptr(937, 969), foldPair), $clone(new foldPair.ptr(946, 976), foldPair), $clone(new foldPair.ptr(949, 1013), foldPair), $clone(new foldPair.ptr(952, 977), foldPair), $clone(new foldPair.ptr(953, 8126), foldPair), $clone(new foldPair.ptr(954, 1008), foldPair), $clone(new foldPair.ptr(956, 181), foldPair), $clone(new foldPair.ptr(960, 982), foldPair), $clone(new foldPair.ptr(961, 1009), foldPair), $clone(new foldPair.ptr(962, 963), foldPair), $clone(new foldPair.ptr(963, 931), foldPair), $clone(new foldPair.ptr(966, 981), foldPair), $clone(new foldPair.ptr(969, 8486), foldPair), $clone(new foldPair.ptr(976, 914), foldPair), $clone(new foldPair.ptr(977, 1012), foldPair), $clone(new foldPair.ptr(981, 934), foldPair), $clone(new foldPair.ptr(982, 928), foldPair), $clone(new foldPair.ptr(1008, 922), foldPair), $clone(new foldPair.ptr(1009, 929), foldPair), $clone(new foldPair.ptr(1012, 920), foldPair), $clone(new foldPair.ptr(1013, 917), foldPair), $clone(new foldPair.ptr(1042, 1074), foldPair), $clone(new foldPair.ptr(1044, 1076), foldPair), $clone(new foldPair.ptr(1054, 1086), foldPair), $clone(new foldPair.ptr(1057, 1089), foldPair), $clone(new foldPair.ptr(1058, 1090), foldPair), $clone(new foldPair.ptr(1066, 1098), foldPair), $clone(new foldPair.ptr(1074, 7296), foldPair), $clone(new foldPair.ptr(1076, 7297), foldPair), $clone(new foldPair.ptr(1086, 7298), foldPair), $clone(new foldPair.ptr(1089, 7299), foldPair), $clone(new foldPair.ptr(1090, 7300), foldPair), $clone(new foldPair.ptr(1098, 7302), foldPair), $clone(new foldPair.ptr(1122, 1123), foldPair), $clone(new foldPair.ptr(1123, 7303), foldPair), $clone(new foldPair.ptr(7296, 1042), foldPair), $clone(new foldPair.ptr(7297, 1044), foldPair), $clone(new foldPair.ptr(7298, 1054), foldPair), $clone(new foldPair.ptr(7299, 1057), foldPair), $clone(new foldPair.ptr(7300, 7301), foldPair), $clone(new foldPair.ptr(7301, 1058), foldPair), $clone(new foldPair.ptr(7302, 1066), foldPair), $clone(new foldPair.ptr(7303, 1122), foldPair), $clone(new foldPair.ptr(7304, 42570), foldPair), $clone(new foldPair.ptr(7776, 7777), foldPair), $clone(new foldPair.ptr(7777, 7835), foldPair), $clone(new foldPair.ptr(7835, 7776), foldPair), $clone(new foldPair.ptr(7838, 223), foldPair), $clone(new foldPair.ptr(8126, 837), foldPair), $clone(new foldPair.ptr(8486, 937), foldPair), $clone(new foldPair.ptr(8490, 75), foldPair), $clone(new foldPair.ptr(8491, 197), foldPair), $clone(new foldPair.ptr(42570, 42571), foldPair), $clone(new foldPair.ptr(42571, 7304), foldPair)]); foldL = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(837, 837, 1), Range16)]), sliceType$1.nil, 0); - foldLl = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(65, 90, 1), Range16), $clone(new Range16.ptr(192, 214, 1), Range16), $clone(new Range16.ptr(216, 222, 1), Range16), $clone(new Range16.ptr(256, 302, 2), Range16), $clone(new Range16.ptr(306, 310, 2), Range16), $clone(new Range16.ptr(313, 327, 2), Range16), $clone(new Range16.ptr(330, 376, 2), Range16), $clone(new Range16.ptr(377, 381, 2), Range16), $clone(new Range16.ptr(385, 386, 1), Range16), $clone(new Range16.ptr(388, 390, 2), Range16), $clone(new Range16.ptr(391, 393, 2), Range16), $clone(new Range16.ptr(394, 395, 1), Range16), $clone(new Range16.ptr(398, 401, 1), Range16), $clone(new Range16.ptr(403, 404, 1), Range16), $clone(new Range16.ptr(406, 408, 1), Range16), $clone(new Range16.ptr(412, 413, 1), Range16), $clone(new Range16.ptr(415, 416, 1), Range16), $clone(new Range16.ptr(418, 422, 2), Range16), $clone(new Range16.ptr(423, 425, 2), Range16), $clone(new Range16.ptr(428, 430, 2), Range16), $clone(new Range16.ptr(431, 433, 2), Range16), $clone(new Range16.ptr(434, 435, 1), Range16), $clone(new Range16.ptr(437, 439, 2), Range16), $clone(new Range16.ptr(440, 444, 4), Range16), $clone(new Range16.ptr(452, 453, 1), Range16), $clone(new Range16.ptr(455, 456, 1), Range16), $clone(new Range16.ptr(458, 459, 1), Range16), $clone(new Range16.ptr(461, 475, 2), Range16), $clone(new Range16.ptr(478, 494, 2), Range16), $clone(new Range16.ptr(497, 498, 1), Range16), $clone(new Range16.ptr(500, 502, 2), Range16), $clone(new Range16.ptr(503, 504, 1), Range16), $clone(new Range16.ptr(506, 562, 2), Range16), $clone(new Range16.ptr(570, 571, 1), Range16), $clone(new Range16.ptr(573, 574, 1), Range16), $clone(new Range16.ptr(577, 579, 2), Range16), $clone(new Range16.ptr(580, 582, 1), Range16), $clone(new Range16.ptr(584, 590, 2), Range16), $clone(new Range16.ptr(837, 880, 43), Range16), $clone(new Range16.ptr(882, 886, 4), Range16), $clone(new Range16.ptr(895, 902, 7), Range16), $clone(new Range16.ptr(904, 906, 1), Range16), $clone(new Range16.ptr(908, 910, 2), Range16), $clone(new Range16.ptr(911, 913, 2), Range16), $clone(new Range16.ptr(914, 929, 1), Range16), $clone(new Range16.ptr(931, 939, 1), Range16), $clone(new Range16.ptr(975, 984, 9), Range16), $clone(new Range16.ptr(986, 1006, 2), Range16), $clone(new Range16.ptr(1012, 1015, 3), Range16), $clone(new Range16.ptr(1017, 1018, 1), Range16), $clone(new Range16.ptr(1021, 1071, 1), Range16), $clone(new Range16.ptr(1120, 1152, 2), Range16), $clone(new Range16.ptr(1162, 1216, 2), Range16), $clone(new Range16.ptr(1217, 1229, 2), Range16), $clone(new Range16.ptr(1232, 1326, 2), Range16), $clone(new Range16.ptr(1329, 1366, 1), Range16), $clone(new Range16.ptr(4256, 4293, 1), Range16), $clone(new Range16.ptr(4295, 4301, 6), Range16), $clone(new Range16.ptr(5024, 5109, 1), Range16), $clone(new Range16.ptr(7312, 7354, 1), Range16), $clone(new Range16.ptr(7357, 7359, 1), Range16), $clone(new Range16.ptr(7680, 7828, 2), Range16), $clone(new Range16.ptr(7838, 7934, 2), Range16), $clone(new Range16.ptr(7944, 7951, 1), Range16), $clone(new Range16.ptr(7960, 7965, 1), Range16), $clone(new Range16.ptr(7976, 7983, 1), Range16), $clone(new Range16.ptr(7992, 7999, 1), Range16), $clone(new Range16.ptr(8008, 8013, 1), Range16), $clone(new Range16.ptr(8025, 8031, 2), Range16), $clone(new Range16.ptr(8040, 8047, 1), Range16), $clone(new Range16.ptr(8072, 8079, 1), Range16), $clone(new Range16.ptr(8088, 8095, 1), Range16), $clone(new Range16.ptr(8104, 8111, 1), Range16), $clone(new Range16.ptr(8120, 8124, 1), Range16), $clone(new Range16.ptr(8136, 8140, 1), Range16), $clone(new Range16.ptr(8152, 8155, 1), Range16), $clone(new Range16.ptr(8168, 8172, 1), Range16), $clone(new Range16.ptr(8184, 8188, 1), Range16), $clone(new Range16.ptr(8486, 8490, 4), Range16), $clone(new Range16.ptr(8491, 8498, 7), Range16), $clone(new Range16.ptr(8579, 11264, 2685), Range16), $clone(new Range16.ptr(11265, 11310, 1), Range16), $clone(new Range16.ptr(11360, 11362, 2), Range16), $clone(new Range16.ptr(11363, 11364, 1), Range16), $clone(new Range16.ptr(11367, 11373, 2), Range16), $clone(new Range16.ptr(11374, 11376, 1), Range16), $clone(new Range16.ptr(11378, 11381, 3), Range16), $clone(new Range16.ptr(11390, 11392, 1), Range16), $clone(new Range16.ptr(11394, 11490, 2), Range16), $clone(new Range16.ptr(11499, 11501, 2), Range16), $clone(new Range16.ptr(11506, 42560, 31054), Range16), $clone(new Range16.ptr(42562, 42604, 2), Range16), $clone(new Range16.ptr(42624, 42650, 2), Range16), $clone(new Range16.ptr(42786, 42798, 2), Range16), $clone(new Range16.ptr(42802, 42862, 2), Range16), $clone(new Range16.ptr(42873, 42877, 2), Range16), $clone(new Range16.ptr(42878, 42886, 2), Range16), $clone(new Range16.ptr(42891, 42893, 2), Range16), $clone(new Range16.ptr(42896, 42898, 2), Range16), $clone(new Range16.ptr(42902, 42922, 2), Range16), $clone(new Range16.ptr(42923, 42926, 1), Range16), $clone(new Range16.ptr(42928, 42932, 1), Range16), $clone(new Range16.ptr(42934, 42942, 2), Range16), $clone(new Range16.ptr(42946, 42948, 2), Range16), $clone(new Range16.ptr(42949, 42951, 1), Range16), $clone(new Range16.ptr(42953, 42997, 44), Range16), $clone(new Range16.ptr(65313, 65338, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(66560, 66599, 1), Range32), $clone(new Range32.ptr(66736, 66771, 1), Range32), $clone(new Range32.ptr(68736, 68786, 1), Range32), $clone(new Range32.ptr(71840, 71871, 1), Range32), $clone(new Range32.ptr(93760, 93791, 1), Range32), $clone(new Range32.ptr(125184, 125217, 1), Range32)]), 3); + foldLl = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(65, 90, 1), Range16), $clone(new Range16.ptr(192, 214, 1), Range16), $clone(new Range16.ptr(216, 222, 1), Range16), $clone(new Range16.ptr(256, 302, 2), Range16), $clone(new Range16.ptr(306, 310, 2), Range16), $clone(new Range16.ptr(313, 327, 2), Range16), $clone(new Range16.ptr(330, 376, 2), Range16), $clone(new Range16.ptr(377, 381, 2), Range16), $clone(new Range16.ptr(385, 386, 1), Range16), $clone(new Range16.ptr(388, 390, 2), Range16), $clone(new Range16.ptr(391, 393, 2), Range16), $clone(new Range16.ptr(394, 395, 1), Range16), $clone(new Range16.ptr(398, 401, 1), Range16), $clone(new Range16.ptr(403, 404, 1), Range16), $clone(new Range16.ptr(406, 408, 1), Range16), $clone(new Range16.ptr(412, 413, 1), Range16), $clone(new Range16.ptr(415, 416, 1), Range16), $clone(new Range16.ptr(418, 422, 2), Range16), $clone(new Range16.ptr(423, 425, 2), Range16), $clone(new Range16.ptr(428, 430, 2), Range16), $clone(new Range16.ptr(431, 433, 2), Range16), $clone(new Range16.ptr(434, 435, 1), Range16), $clone(new Range16.ptr(437, 439, 2), Range16), $clone(new Range16.ptr(440, 444, 4), Range16), $clone(new Range16.ptr(452, 453, 1), Range16), $clone(new Range16.ptr(455, 456, 1), Range16), $clone(new Range16.ptr(458, 459, 1), Range16), $clone(new Range16.ptr(461, 475, 2), Range16), $clone(new Range16.ptr(478, 494, 2), Range16), $clone(new Range16.ptr(497, 498, 1), Range16), $clone(new Range16.ptr(500, 502, 2), Range16), $clone(new Range16.ptr(503, 504, 1), Range16), $clone(new Range16.ptr(506, 562, 2), Range16), $clone(new Range16.ptr(570, 571, 1), Range16), $clone(new Range16.ptr(573, 574, 1), Range16), $clone(new Range16.ptr(577, 579, 2), Range16), $clone(new Range16.ptr(580, 582, 1), Range16), $clone(new Range16.ptr(584, 590, 2), Range16), $clone(new Range16.ptr(837, 880, 43), Range16), $clone(new Range16.ptr(882, 886, 4), Range16), $clone(new Range16.ptr(895, 902, 7), Range16), $clone(new Range16.ptr(904, 906, 1), Range16), $clone(new Range16.ptr(908, 910, 2), Range16), $clone(new Range16.ptr(911, 913, 2), Range16), $clone(new Range16.ptr(914, 929, 1), Range16), $clone(new Range16.ptr(931, 939, 1), Range16), $clone(new Range16.ptr(975, 984, 9), Range16), $clone(new Range16.ptr(986, 1006, 2), Range16), $clone(new Range16.ptr(1012, 1015, 3), Range16), $clone(new Range16.ptr(1017, 1018, 1), Range16), $clone(new Range16.ptr(1021, 1071, 1), Range16), $clone(new Range16.ptr(1120, 1152, 2), Range16), $clone(new Range16.ptr(1162, 1216, 2), Range16), $clone(new Range16.ptr(1217, 1229, 2), Range16), $clone(new Range16.ptr(1232, 1326, 2), Range16), $clone(new Range16.ptr(1329, 1366, 1), Range16), $clone(new Range16.ptr(4256, 4293, 1), Range16), $clone(new Range16.ptr(4295, 4301, 6), Range16), $clone(new Range16.ptr(5024, 5109, 1), Range16), $clone(new Range16.ptr(7312, 7354, 1), Range16), $clone(new Range16.ptr(7357, 7359, 1), Range16), $clone(new Range16.ptr(7680, 7828, 2), Range16), $clone(new Range16.ptr(7838, 7934, 2), Range16), $clone(new Range16.ptr(7944, 7951, 1), Range16), $clone(new Range16.ptr(7960, 7965, 1), Range16), $clone(new Range16.ptr(7976, 7983, 1), Range16), $clone(new Range16.ptr(7992, 7999, 1), Range16), $clone(new Range16.ptr(8008, 8013, 1), Range16), $clone(new Range16.ptr(8025, 8031, 2), Range16), $clone(new Range16.ptr(8040, 8047, 1), Range16), $clone(new Range16.ptr(8072, 8079, 1), Range16), $clone(new Range16.ptr(8088, 8095, 1), Range16), $clone(new Range16.ptr(8104, 8111, 1), Range16), $clone(new Range16.ptr(8120, 8124, 1), Range16), $clone(new Range16.ptr(8136, 8140, 1), Range16), $clone(new Range16.ptr(8152, 8155, 1), Range16), $clone(new Range16.ptr(8168, 8172, 1), Range16), $clone(new Range16.ptr(8184, 8188, 1), Range16), $clone(new Range16.ptr(8486, 8490, 4), Range16), $clone(new Range16.ptr(8491, 8498, 7), Range16), $clone(new Range16.ptr(8579, 11264, 2685), Range16), $clone(new Range16.ptr(11265, 11311, 1), Range16), $clone(new Range16.ptr(11360, 11362, 2), Range16), $clone(new Range16.ptr(11363, 11364, 1), Range16), $clone(new Range16.ptr(11367, 11373, 2), Range16), $clone(new Range16.ptr(11374, 11376, 1), Range16), $clone(new Range16.ptr(11378, 11381, 3), Range16), $clone(new Range16.ptr(11390, 11392, 1), Range16), $clone(new Range16.ptr(11394, 11490, 2), Range16), $clone(new Range16.ptr(11499, 11501, 2), Range16), $clone(new Range16.ptr(11506, 42560, 31054), Range16), $clone(new Range16.ptr(42562, 42604, 2), Range16), $clone(new Range16.ptr(42624, 42650, 2), Range16), $clone(new Range16.ptr(42786, 42798, 2), Range16), $clone(new Range16.ptr(42802, 42862, 2), Range16), $clone(new Range16.ptr(42873, 42877, 2), Range16), $clone(new Range16.ptr(42878, 42886, 2), Range16), $clone(new Range16.ptr(42891, 42893, 2), Range16), $clone(new Range16.ptr(42896, 42898, 2), Range16), $clone(new Range16.ptr(42902, 42922, 2), Range16), $clone(new Range16.ptr(42923, 42926, 1), Range16), $clone(new Range16.ptr(42928, 42932, 1), Range16), $clone(new Range16.ptr(42934, 42948, 2), Range16), $clone(new Range16.ptr(42949, 42951, 1), Range16), $clone(new Range16.ptr(42953, 42960, 7), Range16), $clone(new Range16.ptr(42966, 42968, 2), Range16), $clone(new Range16.ptr(42997, 65313, 22316), Range16), $clone(new Range16.ptr(65314, 65338, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(66560, 66599, 1), Range32), $clone(new Range32.ptr(66736, 66771, 1), Range32), $clone(new Range32.ptr(66928, 66938, 1), Range32), $clone(new Range32.ptr(66940, 66954, 1), Range32), $clone(new Range32.ptr(66956, 66962, 1), Range32), $clone(new Range32.ptr(66964, 66965, 1), Range32), $clone(new Range32.ptr(68736, 68786, 1), Range32), $clone(new Range32.ptr(71840, 71871, 1), Range32), $clone(new Range32.ptr(93760, 93791, 1), Range32), $clone(new Range32.ptr(125184, 125217, 1), Range32)]), 3); foldLt = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(452, 454, 2), Range16), $clone(new Range16.ptr(455, 457, 2), Range16), $clone(new Range16.ptr(458, 460, 2), Range16), $clone(new Range16.ptr(497, 499, 2), Range16), $clone(new Range16.ptr(8064, 8071, 1), Range16), $clone(new Range16.ptr(8080, 8087, 1), Range16), $clone(new Range16.ptr(8096, 8103, 1), Range16), $clone(new Range16.ptr(8115, 8131, 16), Range16), $clone(new Range16.ptr(8179, 8179, 1), Range16)]), sliceType$1.nil, 0); - foldLu = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(97, 122, 1), Range16), $clone(new Range16.ptr(181, 223, 42), Range16), $clone(new Range16.ptr(224, 246, 1), Range16), $clone(new Range16.ptr(248, 255, 1), Range16), $clone(new Range16.ptr(257, 303, 2), Range16), $clone(new Range16.ptr(307, 311, 2), Range16), $clone(new Range16.ptr(314, 328, 2), Range16), $clone(new Range16.ptr(331, 375, 2), Range16), $clone(new Range16.ptr(378, 382, 2), Range16), $clone(new Range16.ptr(383, 384, 1), Range16), $clone(new Range16.ptr(387, 389, 2), Range16), $clone(new Range16.ptr(392, 396, 4), Range16), $clone(new Range16.ptr(402, 405, 3), Range16), $clone(new Range16.ptr(409, 410, 1), Range16), $clone(new Range16.ptr(414, 417, 3), Range16), $clone(new Range16.ptr(419, 421, 2), Range16), $clone(new Range16.ptr(424, 429, 5), Range16), $clone(new Range16.ptr(432, 436, 4), Range16), $clone(new Range16.ptr(438, 441, 3), Range16), $clone(new Range16.ptr(445, 447, 2), Range16), $clone(new Range16.ptr(453, 454, 1), Range16), $clone(new Range16.ptr(456, 457, 1), Range16), $clone(new Range16.ptr(459, 460, 1), Range16), $clone(new Range16.ptr(462, 476, 2), Range16), $clone(new Range16.ptr(477, 495, 2), Range16), $clone(new Range16.ptr(498, 499, 1), Range16), $clone(new Range16.ptr(501, 505, 4), Range16), $clone(new Range16.ptr(507, 543, 2), Range16), $clone(new Range16.ptr(547, 563, 2), Range16), $clone(new Range16.ptr(572, 575, 3), Range16), $clone(new Range16.ptr(576, 578, 2), Range16), $clone(new Range16.ptr(583, 591, 2), Range16), $clone(new Range16.ptr(592, 596, 1), Range16), $clone(new Range16.ptr(598, 599, 1), Range16), $clone(new Range16.ptr(601, 603, 2), Range16), $clone(new Range16.ptr(604, 608, 4), Range16), $clone(new Range16.ptr(609, 613, 2), Range16), $clone(new Range16.ptr(614, 616, 2), Range16), $clone(new Range16.ptr(617, 620, 1), Range16), $clone(new Range16.ptr(623, 625, 2), Range16), $clone(new Range16.ptr(626, 629, 3), Range16), $clone(new Range16.ptr(637, 640, 3), Range16), $clone(new Range16.ptr(642, 643, 1), Range16), $clone(new Range16.ptr(647, 652, 1), Range16), $clone(new Range16.ptr(658, 669, 11), Range16), $clone(new Range16.ptr(670, 837, 167), Range16), $clone(new Range16.ptr(881, 883, 2), Range16), $clone(new Range16.ptr(887, 891, 4), Range16), $clone(new Range16.ptr(892, 893, 1), Range16), $clone(new Range16.ptr(940, 943, 1), Range16), $clone(new Range16.ptr(945, 974, 1), Range16), $clone(new Range16.ptr(976, 977, 1), Range16), $clone(new Range16.ptr(981, 983, 1), Range16), $clone(new Range16.ptr(985, 1007, 2), Range16), $clone(new Range16.ptr(1008, 1011, 1), Range16), $clone(new Range16.ptr(1013, 1019, 3), Range16), $clone(new Range16.ptr(1072, 1119, 1), Range16), $clone(new Range16.ptr(1121, 1153, 2), Range16), $clone(new Range16.ptr(1163, 1215, 2), Range16), $clone(new Range16.ptr(1218, 1230, 2), Range16), $clone(new Range16.ptr(1231, 1327, 2), Range16), $clone(new Range16.ptr(1377, 1414, 1), Range16), $clone(new Range16.ptr(4304, 4346, 1), Range16), $clone(new Range16.ptr(4349, 4351, 1), Range16), $clone(new Range16.ptr(5112, 5117, 1), Range16), $clone(new Range16.ptr(7296, 7304, 1), Range16), $clone(new Range16.ptr(7545, 7549, 4), Range16), $clone(new Range16.ptr(7566, 7681, 115), Range16), $clone(new Range16.ptr(7683, 7829, 2), Range16), $clone(new Range16.ptr(7835, 7841, 6), Range16), $clone(new Range16.ptr(7843, 7935, 2), Range16), $clone(new Range16.ptr(7936, 7943, 1), Range16), $clone(new Range16.ptr(7952, 7957, 1), Range16), $clone(new Range16.ptr(7968, 7975, 1), Range16), $clone(new Range16.ptr(7984, 7991, 1), Range16), $clone(new Range16.ptr(8000, 8005, 1), Range16), $clone(new Range16.ptr(8017, 8023, 2), Range16), $clone(new Range16.ptr(8032, 8039, 1), Range16), $clone(new Range16.ptr(8048, 8061, 1), Range16), $clone(new Range16.ptr(8112, 8113, 1), Range16), $clone(new Range16.ptr(8126, 8144, 18), Range16), $clone(new Range16.ptr(8145, 8160, 15), Range16), $clone(new Range16.ptr(8161, 8165, 4), Range16), $clone(new Range16.ptr(8526, 8580, 54), Range16), $clone(new Range16.ptr(11312, 11358, 1), Range16), $clone(new Range16.ptr(11361, 11365, 4), Range16), $clone(new Range16.ptr(11366, 11372, 2), Range16), $clone(new Range16.ptr(11379, 11382, 3), Range16), $clone(new Range16.ptr(11393, 11491, 2), Range16), $clone(new Range16.ptr(11500, 11502, 2), Range16), $clone(new Range16.ptr(11507, 11520, 13), Range16), $clone(new Range16.ptr(11521, 11557, 1), Range16), $clone(new Range16.ptr(11559, 11565, 6), Range16), $clone(new Range16.ptr(42561, 42605, 2), Range16), $clone(new Range16.ptr(42625, 42651, 2), Range16), $clone(new Range16.ptr(42787, 42799, 2), Range16), $clone(new Range16.ptr(42803, 42863, 2), Range16), $clone(new Range16.ptr(42874, 42876, 2), Range16), $clone(new Range16.ptr(42879, 42887, 2), Range16), $clone(new Range16.ptr(42892, 42897, 5), Range16), $clone(new Range16.ptr(42899, 42900, 1), Range16), $clone(new Range16.ptr(42903, 42921, 2), Range16), $clone(new Range16.ptr(42933, 42943, 2), Range16), $clone(new Range16.ptr(42947, 42952, 5), Range16), $clone(new Range16.ptr(42954, 42998, 44), Range16), $clone(new Range16.ptr(43859, 43888, 29), Range16), $clone(new Range16.ptr(43889, 43967, 1), Range16), $clone(new Range16.ptr(65345, 65370, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(66600, 66639, 1), Range32), $clone(new Range32.ptr(66776, 66811, 1), Range32), $clone(new Range32.ptr(68800, 68850, 1), Range32), $clone(new Range32.ptr(71872, 71903, 1), Range32), $clone(new Range32.ptr(93792, 93823, 1), Range32), $clone(new Range32.ptr(125218, 125251, 1), Range32)]), 4); + foldLu = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(97, 122, 1), Range16), $clone(new Range16.ptr(181, 223, 42), Range16), $clone(new Range16.ptr(224, 246, 1), Range16), $clone(new Range16.ptr(248, 255, 1), Range16), $clone(new Range16.ptr(257, 303, 2), Range16), $clone(new Range16.ptr(307, 311, 2), Range16), $clone(new Range16.ptr(314, 328, 2), Range16), $clone(new Range16.ptr(331, 375, 2), Range16), $clone(new Range16.ptr(378, 382, 2), Range16), $clone(new Range16.ptr(383, 384, 1), Range16), $clone(new Range16.ptr(387, 389, 2), Range16), $clone(new Range16.ptr(392, 396, 4), Range16), $clone(new Range16.ptr(402, 405, 3), Range16), $clone(new Range16.ptr(409, 410, 1), Range16), $clone(new Range16.ptr(414, 417, 3), Range16), $clone(new Range16.ptr(419, 421, 2), Range16), $clone(new Range16.ptr(424, 429, 5), Range16), $clone(new Range16.ptr(432, 436, 4), Range16), $clone(new Range16.ptr(438, 441, 3), Range16), $clone(new Range16.ptr(445, 447, 2), Range16), $clone(new Range16.ptr(453, 454, 1), Range16), $clone(new Range16.ptr(456, 457, 1), Range16), $clone(new Range16.ptr(459, 460, 1), Range16), $clone(new Range16.ptr(462, 476, 2), Range16), $clone(new Range16.ptr(477, 495, 2), Range16), $clone(new Range16.ptr(498, 499, 1), Range16), $clone(new Range16.ptr(501, 505, 4), Range16), $clone(new Range16.ptr(507, 543, 2), Range16), $clone(new Range16.ptr(547, 563, 2), Range16), $clone(new Range16.ptr(572, 575, 3), Range16), $clone(new Range16.ptr(576, 578, 2), Range16), $clone(new Range16.ptr(583, 591, 2), Range16), $clone(new Range16.ptr(592, 596, 1), Range16), $clone(new Range16.ptr(598, 599, 1), Range16), $clone(new Range16.ptr(601, 603, 2), Range16), $clone(new Range16.ptr(604, 608, 4), Range16), $clone(new Range16.ptr(609, 613, 2), Range16), $clone(new Range16.ptr(614, 616, 2), Range16), $clone(new Range16.ptr(617, 620, 1), Range16), $clone(new Range16.ptr(623, 625, 2), Range16), $clone(new Range16.ptr(626, 629, 3), Range16), $clone(new Range16.ptr(637, 640, 3), Range16), $clone(new Range16.ptr(642, 643, 1), Range16), $clone(new Range16.ptr(647, 652, 1), Range16), $clone(new Range16.ptr(658, 669, 11), Range16), $clone(new Range16.ptr(670, 837, 167), Range16), $clone(new Range16.ptr(881, 883, 2), Range16), $clone(new Range16.ptr(887, 891, 4), Range16), $clone(new Range16.ptr(892, 893, 1), Range16), $clone(new Range16.ptr(940, 943, 1), Range16), $clone(new Range16.ptr(945, 974, 1), Range16), $clone(new Range16.ptr(976, 977, 1), Range16), $clone(new Range16.ptr(981, 983, 1), Range16), $clone(new Range16.ptr(985, 1007, 2), Range16), $clone(new Range16.ptr(1008, 1011, 1), Range16), $clone(new Range16.ptr(1013, 1019, 3), Range16), $clone(new Range16.ptr(1072, 1119, 1), Range16), $clone(new Range16.ptr(1121, 1153, 2), Range16), $clone(new Range16.ptr(1163, 1215, 2), Range16), $clone(new Range16.ptr(1218, 1230, 2), Range16), $clone(new Range16.ptr(1231, 1327, 2), Range16), $clone(new Range16.ptr(1377, 1414, 1), Range16), $clone(new Range16.ptr(4304, 4346, 1), Range16), $clone(new Range16.ptr(4349, 4351, 1), Range16), $clone(new Range16.ptr(5112, 5117, 1), Range16), $clone(new Range16.ptr(7296, 7304, 1), Range16), $clone(new Range16.ptr(7545, 7549, 4), Range16), $clone(new Range16.ptr(7566, 7681, 115), Range16), $clone(new Range16.ptr(7683, 7829, 2), Range16), $clone(new Range16.ptr(7835, 7841, 6), Range16), $clone(new Range16.ptr(7843, 7935, 2), Range16), $clone(new Range16.ptr(7936, 7943, 1), Range16), $clone(new Range16.ptr(7952, 7957, 1), Range16), $clone(new Range16.ptr(7968, 7975, 1), Range16), $clone(new Range16.ptr(7984, 7991, 1), Range16), $clone(new Range16.ptr(8000, 8005, 1), Range16), $clone(new Range16.ptr(8017, 8023, 2), Range16), $clone(new Range16.ptr(8032, 8039, 1), Range16), $clone(new Range16.ptr(8048, 8061, 1), Range16), $clone(new Range16.ptr(8112, 8113, 1), Range16), $clone(new Range16.ptr(8126, 8144, 18), Range16), $clone(new Range16.ptr(8145, 8160, 15), Range16), $clone(new Range16.ptr(8161, 8165, 4), Range16), $clone(new Range16.ptr(8526, 8580, 54), Range16), $clone(new Range16.ptr(11312, 11359, 1), Range16), $clone(new Range16.ptr(11361, 11365, 4), Range16), $clone(new Range16.ptr(11366, 11372, 2), Range16), $clone(new Range16.ptr(11379, 11382, 3), Range16), $clone(new Range16.ptr(11393, 11491, 2), Range16), $clone(new Range16.ptr(11500, 11502, 2), Range16), $clone(new Range16.ptr(11507, 11520, 13), Range16), $clone(new Range16.ptr(11521, 11557, 1), Range16), $clone(new Range16.ptr(11559, 11565, 6), Range16), $clone(new Range16.ptr(42561, 42605, 2), Range16), $clone(new Range16.ptr(42625, 42651, 2), Range16), $clone(new Range16.ptr(42787, 42799, 2), Range16), $clone(new Range16.ptr(42803, 42863, 2), Range16), $clone(new Range16.ptr(42874, 42876, 2), Range16), $clone(new Range16.ptr(42879, 42887, 2), Range16), $clone(new Range16.ptr(42892, 42897, 5), Range16), $clone(new Range16.ptr(42899, 42900, 1), Range16), $clone(new Range16.ptr(42903, 42921, 2), Range16), $clone(new Range16.ptr(42933, 42947, 2), Range16), $clone(new Range16.ptr(42952, 42954, 2), Range16), $clone(new Range16.ptr(42961, 42967, 6), Range16), $clone(new Range16.ptr(42969, 42998, 29), Range16), $clone(new Range16.ptr(43859, 43888, 29), Range16), $clone(new Range16.ptr(43889, 43967, 1), Range16), $clone(new Range16.ptr(65345, 65370, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(66600, 66639, 1), Range32), $clone(new Range32.ptr(66776, 66811, 1), Range32), $clone(new Range32.ptr(66967, 66977, 1), Range32), $clone(new Range32.ptr(66979, 66993, 1), Range32), $clone(new Range32.ptr(66995, 67001, 1), Range32), $clone(new Range32.ptr(67003, 67004, 1), Range32), $clone(new Range32.ptr(68800, 68850, 1), Range32), $clone(new Range32.ptr(71872, 71903, 1), Range32), $clone(new Range32.ptr(93792, 93823, 1), Range32), $clone(new Range32.ptr(125218, 125251, 1), Range32)]), 4); foldM = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(921, 953, 32), Range16), $clone(new Range16.ptr(8126, 8126, 1), Range16)]), sliceType$1.nil, 0); foldMn = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(921, 953, 32), Range16), $clone(new Range16.ptr(8126, 8126, 1), Range16)]), sliceType$1.nil, 0); $pkg.FoldCategory = $makeMap($String.keyFor, [{ k: "L", v: foldL }, { k: "Ll", v: foldLl }, { k: "Lt", v: foldLt }, { k: "Lu", v: foldLu }, { k: "M", v: foldM }, { k: "Mn", v: foldMn }]); @@ -13154,10 +13124,6 @@ $packages["unicode"] = (function() { foldGreek = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(181, 837, 656), Range16)]), sliceType$1.nil, 0); foldInherited = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(921, 953, 32), Range16), $clone(new Range16.ptr(8126, 8126, 1), Range16)]), sliceType$1.nil, 0); $pkg.FoldScript = $makeMap($String.keyFor, [{ k: "Common", v: foldCommon }, { k: "Greek", v: foldGreek }, { k: "Inherited", v: foldInherited }]); - asciiFold = $toNativeArray($kindUint16, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 91, 92, 93, 94, 95, 96, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 8490, 76, 77, 78, 79, 80, 81, 82, 383, 84, 85, 86, 87, 88, 89, 90, 123, 124, 125, 126, 127]); - _CaseRanges = new sliceType$3([$clone(new CaseRange.ptr(65, 90, $clone($toNativeArray($kindInt32, [0, 32, 0]), d)), CaseRange), $clone(new CaseRange.ptr(97, 122, $clone($toNativeArray($kindInt32, [-32, 0, -32]), d)), CaseRange), $clone(new CaseRange.ptr(181, 181, $clone($toNativeArray($kindInt32, [743, 0, 743]), d)), CaseRange), $clone(new CaseRange.ptr(192, 214, $clone($toNativeArray($kindInt32, [0, 32, 0]), d)), CaseRange), $clone(new CaseRange.ptr(216, 222, $clone($toNativeArray($kindInt32, [0, 32, 0]), d)), CaseRange), $clone(new CaseRange.ptr(224, 246, $clone($toNativeArray($kindInt32, [-32, 0, -32]), d)), CaseRange), $clone(new CaseRange.ptr(248, 254, $clone($toNativeArray($kindInt32, [-32, 0, -32]), d)), CaseRange), $clone(new CaseRange.ptr(255, 255, $clone($toNativeArray($kindInt32, [121, 0, 121]), d)), CaseRange), $clone(new CaseRange.ptr(256, 303, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(304, 304, $clone($toNativeArray($kindInt32, [0, -199, 0]), d)), CaseRange), $clone(new CaseRange.ptr(305, 305, $clone($toNativeArray($kindInt32, [-232, 0, -232]), d)), CaseRange), $clone(new CaseRange.ptr(306, 311, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(313, 328, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(330, 375, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(376, 376, $clone($toNativeArray($kindInt32, [0, -121, 0]), d)), CaseRange), $clone(new CaseRange.ptr(377, 382, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(383, 383, $clone($toNativeArray($kindInt32, [-300, 0, -300]), d)), CaseRange), $clone(new CaseRange.ptr(384, 384, $clone($toNativeArray($kindInt32, [195, 0, 195]), d)), CaseRange), $clone(new CaseRange.ptr(385, 385, $clone($toNativeArray($kindInt32, [0, 210, 0]), d)), CaseRange), $clone(new CaseRange.ptr(386, 389, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(390, 390, $clone($toNativeArray($kindInt32, [0, 206, 0]), d)), CaseRange), $clone(new CaseRange.ptr(391, 392, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(393, 394, $clone($toNativeArray($kindInt32, [0, 205, 0]), d)), CaseRange), $clone(new CaseRange.ptr(395, 396, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(398, 398, $clone($toNativeArray($kindInt32, [0, 79, 0]), d)), CaseRange), $clone(new CaseRange.ptr(399, 399, $clone($toNativeArray($kindInt32, [0, 202, 0]), d)), CaseRange), $clone(new CaseRange.ptr(400, 400, $clone($toNativeArray($kindInt32, [0, 203, 0]), d)), CaseRange), $clone(new CaseRange.ptr(401, 402, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(403, 403, $clone($toNativeArray($kindInt32, [0, 205, 0]), d)), CaseRange), $clone(new CaseRange.ptr(404, 404, $clone($toNativeArray($kindInt32, [0, 207, 0]), d)), CaseRange), $clone(new CaseRange.ptr(405, 405, $clone($toNativeArray($kindInt32, [97, 0, 97]), d)), CaseRange), $clone(new CaseRange.ptr(406, 406, $clone($toNativeArray($kindInt32, [0, 211, 0]), d)), CaseRange), $clone(new CaseRange.ptr(407, 407, $clone($toNativeArray($kindInt32, [0, 209, 0]), d)), CaseRange), $clone(new CaseRange.ptr(408, 409, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(410, 410, $clone($toNativeArray($kindInt32, [163, 0, 163]), d)), CaseRange), $clone(new CaseRange.ptr(412, 412, $clone($toNativeArray($kindInt32, [0, 211, 0]), d)), CaseRange), $clone(new CaseRange.ptr(413, 413, $clone($toNativeArray($kindInt32, [0, 213, 0]), d)), CaseRange), $clone(new CaseRange.ptr(414, 414, $clone($toNativeArray($kindInt32, [130, 0, 130]), d)), CaseRange), $clone(new CaseRange.ptr(415, 415, $clone($toNativeArray($kindInt32, [0, 214, 0]), d)), CaseRange), $clone(new CaseRange.ptr(416, 421, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(422, 422, $clone($toNativeArray($kindInt32, [0, 218, 0]), d)), CaseRange), $clone(new CaseRange.ptr(423, 424, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(425, 425, $clone($toNativeArray($kindInt32, [0, 218, 0]), d)), CaseRange), $clone(new CaseRange.ptr(428, 429, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(430, 430, $clone($toNativeArray($kindInt32, [0, 218, 0]), d)), CaseRange), $clone(new CaseRange.ptr(431, 432, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(433, 434, $clone($toNativeArray($kindInt32, [0, 217, 0]), d)), CaseRange), $clone(new CaseRange.ptr(435, 438, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(439, 439, $clone($toNativeArray($kindInt32, [0, 219, 0]), d)), CaseRange), $clone(new CaseRange.ptr(440, 441, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(444, 445, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(447, 447, $clone($toNativeArray($kindInt32, [56, 0, 56]), d)), CaseRange), $clone(new CaseRange.ptr(452, 452, $clone($toNativeArray($kindInt32, [0, 2, 1]), d)), CaseRange), $clone(new CaseRange.ptr(453, 453, $clone($toNativeArray($kindInt32, [-1, 1, 0]), d)), CaseRange), $clone(new CaseRange.ptr(454, 454, $clone($toNativeArray($kindInt32, [-2, 0, -1]), d)), CaseRange), $clone(new CaseRange.ptr(455, 455, $clone($toNativeArray($kindInt32, [0, 2, 1]), d)), CaseRange), $clone(new CaseRange.ptr(456, 456, $clone($toNativeArray($kindInt32, [-1, 1, 0]), d)), CaseRange), $clone(new CaseRange.ptr(457, 457, $clone($toNativeArray($kindInt32, [-2, 0, -1]), d)), CaseRange), $clone(new CaseRange.ptr(458, 458, $clone($toNativeArray($kindInt32, [0, 2, 1]), d)), CaseRange), $clone(new CaseRange.ptr(459, 459, $clone($toNativeArray($kindInt32, [-1, 1, 0]), d)), CaseRange), $clone(new CaseRange.ptr(460, 460, $clone($toNativeArray($kindInt32, [-2, 0, -1]), d)), CaseRange), $clone(new CaseRange.ptr(461, 476, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(477, 477, $clone($toNativeArray($kindInt32, [-79, 0, -79]), d)), CaseRange), $clone(new CaseRange.ptr(478, 495, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(497, 497, $clone($toNativeArray($kindInt32, [0, 2, 1]), d)), CaseRange), $clone(new CaseRange.ptr(498, 498, $clone($toNativeArray($kindInt32, [-1, 1, 0]), d)), CaseRange), $clone(new CaseRange.ptr(499, 499, $clone($toNativeArray($kindInt32, [-2, 0, -1]), d)), CaseRange), $clone(new CaseRange.ptr(500, 501, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(502, 502, $clone($toNativeArray($kindInt32, [0, -97, 0]), d)), CaseRange), $clone(new CaseRange.ptr(503, 503, $clone($toNativeArray($kindInt32, [0, -56, 0]), d)), CaseRange), $clone(new CaseRange.ptr(504, 543, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(544, 544, $clone($toNativeArray($kindInt32, [0, -130, 0]), d)), CaseRange), $clone(new CaseRange.ptr(546, 563, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(570, 570, $clone($toNativeArray($kindInt32, [0, 10795, 0]), d)), CaseRange), $clone(new CaseRange.ptr(571, 572, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(573, 573, $clone($toNativeArray($kindInt32, [0, -163, 0]), d)), CaseRange), $clone(new CaseRange.ptr(574, 574, $clone($toNativeArray($kindInt32, [0, 10792, 0]), d)), CaseRange), $clone(new CaseRange.ptr(575, 576, $clone($toNativeArray($kindInt32, [10815, 0, 10815]), d)), CaseRange), $clone(new CaseRange.ptr(577, 578, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(579, 579, $clone($toNativeArray($kindInt32, [0, -195, 0]), d)), CaseRange), $clone(new CaseRange.ptr(580, 580, $clone($toNativeArray($kindInt32, [0, 69, 0]), d)), CaseRange), $clone(new CaseRange.ptr(581, 581, $clone($toNativeArray($kindInt32, [0, 71, 0]), d)), CaseRange), $clone(new CaseRange.ptr(582, 591, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(592, 592, $clone($toNativeArray($kindInt32, [10783, 0, 10783]), d)), CaseRange), $clone(new CaseRange.ptr(593, 593, $clone($toNativeArray($kindInt32, [10780, 0, 10780]), d)), CaseRange), $clone(new CaseRange.ptr(594, 594, $clone($toNativeArray($kindInt32, [10782, 0, 10782]), d)), CaseRange), $clone(new CaseRange.ptr(595, 595, $clone($toNativeArray($kindInt32, [-210, 0, -210]), d)), CaseRange), $clone(new CaseRange.ptr(596, 596, $clone($toNativeArray($kindInt32, [-206, 0, -206]), d)), CaseRange), $clone(new CaseRange.ptr(598, 599, $clone($toNativeArray($kindInt32, [-205, 0, -205]), d)), CaseRange), $clone(new CaseRange.ptr(601, 601, $clone($toNativeArray($kindInt32, [-202, 0, -202]), d)), CaseRange), $clone(new CaseRange.ptr(603, 603, $clone($toNativeArray($kindInt32, [-203, 0, -203]), d)), CaseRange), $clone(new CaseRange.ptr(604, 604, $clone($toNativeArray($kindInt32, [42319, 0, 42319]), d)), CaseRange), $clone(new CaseRange.ptr(608, 608, $clone($toNativeArray($kindInt32, [-205, 0, -205]), d)), CaseRange), $clone(new CaseRange.ptr(609, 609, $clone($toNativeArray($kindInt32, [42315, 0, 42315]), d)), CaseRange), $clone(new CaseRange.ptr(611, 611, $clone($toNativeArray($kindInt32, [-207, 0, -207]), d)), CaseRange), $clone(new CaseRange.ptr(613, 613, $clone($toNativeArray($kindInt32, [42280, 0, 42280]), d)), CaseRange), $clone(new CaseRange.ptr(614, 614, $clone($toNativeArray($kindInt32, [42308, 0, 42308]), d)), CaseRange), $clone(new CaseRange.ptr(616, 616, $clone($toNativeArray($kindInt32, [-209, 0, -209]), d)), CaseRange), $clone(new CaseRange.ptr(617, 617, $clone($toNativeArray($kindInt32, [-211, 0, -211]), d)), CaseRange), $clone(new CaseRange.ptr(618, 618, $clone($toNativeArray($kindInt32, [42308, 0, 42308]), d)), CaseRange), $clone(new CaseRange.ptr(619, 619, $clone($toNativeArray($kindInt32, [10743, 0, 10743]), d)), CaseRange), $clone(new CaseRange.ptr(620, 620, $clone($toNativeArray($kindInt32, [42305, 0, 42305]), d)), CaseRange), $clone(new CaseRange.ptr(623, 623, $clone($toNativeArray($kindInt32, [-211, 0, -211]), d)), CaseRange), $clone(new CaseRange.ptr(625, 625, $clone($toNativeArray($kindInt32, [10749, 0, 10749]), d)), CaseRange), $clone(new CaseRange.ptr(626, 626, $clone($toNativeArray($kindInt32, [-213, 0, -213]), d)), CaseRange), $clone(new CaseRange.ptr(629, 629, $clone($toNativeArray($kindInt32, [-214, 0, -214]), d)), CaseRange), $clone(new CaseRange.ptr(637, 637, $clone($toNativeArray($kindInt32, [10727, 0, 10727]), d)), CaseRange), $clone(new CaseRange.ptr(640, 640, $clone($toNativeArray($kindInt32, [-218, 0, -218]), d)), CaseRange), $clone(new CaseRange.ptr(642, 642, $clone($toNativeArray($kindInt32, [42307, 0, 42307]), d)), CaseRange), $clone(new CaseRange.ptr(643, 643, $clone($toNativeArray($kindInt32, [-218, 0, -218]), d)), CaseRange), $clone(new CaseRange.ptr(647, 647, $clone($toNativeArray($kindInt32, [42282, 0, 42282]), d)), CaseRange), $clone(new CaseRange.ptr(648, 648, $clone($toNativeArray($kindInt32, [-218, 0, -218]), d)), CaseRange), $clone(new CaseRange.ptr(649, 649, $clone($toNativeArray($kindInt32, [-69, 0, -69]), d)), CaseRange), $clone(new CaseRange.ptr(650, 651, $clone($toNativeArray($kindInt32, [-217, 0, -217]), d)), CaseRange), $clone(new CaseRange.ptr(652, 652, $clone($toNativeArray($kindInt32, [-71, 0, -71]), d)), CaseRange), $clone(new CaseRange.ptr(658, 658, $clone($toNativeArray($kindInt32, [-219, 0, -219]), d)), CaseRange), $clone(new CaseRange.ptr(669, 669, $clone($toNativeArray($kindInt32, [42261, 0, 42261]), d)), CaseRange), $clone(new CaseRange.ptr(670, 670, $clone($toNativeArray($kindInt32, [42258, 0, 42258]), d)), CaseRange), $clone(new CaseRange.ptr(837, 837, $clone($toNativeArray($kindInt32, [84, 0, 84]), d)), CaseRange), $clone(new CaseRange.ptr(880, 883, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(886, 887, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(891, 893, $clone($toNativeArray($kindInt32, [130, 0, 130]), d)), CaseRange), $clone(new CaseRange.ptr(895, 895, $clone($toNativeArray($kindInt32, [0, 116, 0]), d)), CaseRange), $clone(new CaseRange.ptr(902, 902, $clone($toNativeArray($kindInt32, [0, 38, 0]), d)), CaseRange), $clone(new CaseRange.ptr(904, 906, $clone($toNativeArray($kindInt32, [0, 37, 0]), d)), CaseRange), $clone(new CaseRange.ptr(908, 908, $clone($toNativeArray($kindInt32, [0, 64, 0]), d)), CaseRange), $clone(new CaseRange.ptr(910, 911, $clone($toNativeArray($kindInt32, [0, 63, 0]), d)), CaseRange), $clone(new CaseRange.ptr(913, 929, $clone($toNativeArray($kindInt32, [0, 32, 0]), d)), CaseRange), $clone(new CaseRange.ptr(931, 939, $clone($toNativeArray($kindInt32, [0, 32, 0]), d)), CaseRange), $clone(new CaseRange.ptr(940, 940, $clone($toNativeArray($kindInt32, [-38, 0, -38]), d)), CaseRange), $clone(new CaseRange.ptr(941, 943, $clone($toNativeArray($kindInt32, [-37, 0, -37]), d)), CaseRange), $clone(new CaseRange.ptr(945, 961, $clone($toNativeArray($kindInt32, [-32, 0, -32]), d)), CaseRange), $clone(new CaseRange.ptr(962, 962, $clone($toNativeArray($kindInt32, [-31, 0, -31]), d)), CaseRange), $clone(new CaseRange.ptr(963, 971, $clone($toNativeArray($kindInt32, [-32, 0, -32]), d)), CaseRange), $clone(new CaseRange.ptr(972, 972, $clone($toNativeArray($kindInt32, [-64, 0, -64]), d)), CaseRange), $clone(new CaseRange.ptr(973, 974, $clone($toNativeArray($kindInt32, [-63, 0, -63]), d)), CaseRange), $clone(new CaseRange.ptr(975, 975, $clone($toNativeArray($kindInt32, [0, 8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(976, 976, $clone($toNativeArray($kindInt32, [-62, 0, -62]), d)), CaseRange), $clone(new CaseRange.ptr(977, 977, $clone($toNativeArray($kindInt32, [-57, 0, -57]), d)), CaseRange), $clone(new CaseRange.ptr(981, 981, $clone($toNativeArray($kindInt32, [-47, 0, -47]), d)), CaseRange), $clone(new CaseRange.ptr(982, 982, $clone($toNativeArray($kindInt32, [-54, 0, -54]), d)), CaseRange), $clone(new CaseRange.ptr(983, 983, $clone($toNativeArray($kindInt32, [-8, 0, -8]), d)), CaseRange), $clone(new CaseRange.ptr(984, 1007, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(1008, 1008, $clone($toNativeArray($kindInt32, [-86, 0, -86]), d)), CaseRange), $clone(new CaseRange.ptr(1009, 1009, $clone($toNativeArray($kindInt32, [-80, 0, -80]), d)), CaseRange), $clone(new CaseRange.ptr(1010, 1010, $clone($toNativeArray($kindInt32, [7, 0, 7]), d)), CaseRange), $clone(new CaseRange.ptr(1011, 1011, $clone($toNativeArray($kindInt32, [-116, 0, -116]), d)), CaseRange), $clone(new CaseRange.ptr(1012, 1012, $clone($toNativeArray($kindInt32, [0, -60, 0]), d)), CaseRange), $clone(new CaseRange.ptr(1013, 1013, $clone($toNativeArray($kindInt32, [-96, 0, -96]), d)), CaseRange), $clone(new CaseRange.ptr(1015, 1016, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(1017, 1017, $clone($toNativeArray($kindInt32, [0, -7, 0]), d)), CaseRange), $clone(new CaseRange.ptr(1018, 1019, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(1021, 1023, $clone($toNativeArray($kindInt32, [0, -130, 0]), d)), CaseRange), $clone(new CaseRange.ptr(1024, 1039, $clone($toNativeArray($kindInt32, [0, 80, 0]), d)), CaseRange), $clone(new CaseRange.ptr(1040, 1071, $clone($toNativeArray($kindInt32, [0, 32, 0]), d)), CaseRange), $clone(new CaseRange.ptr(1072, 1103, $clone($toNativeArray($kindInt32, [-32, 0, -32]), d)), CaseRange), $clone(new CaseRange.ptr(1104, 1119, $clone($toNativeArray($kindInt32, [-80, 0, -80]), d)), CaseRange), $clone(new CaseRange.ptr(1120, 1153, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(1162, 1215, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(1216, 1216, $clone($toNativeArray($kindInt32, [0, 15, 0]), d)), CaseRange), $clone(new CaseRange.ptr(1217, 1230, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(1231, 1231, $clone($toNativeArray($kindInt32, [-15, 0, -15]), d)), CaseRange), $clone(new CaseRange.ptr(1232, 1327, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(1329, 1366, $clone($toNativeArray($kindInt32, [0, 48, 0]), d)), CaseRange), $clone(new CaseRange.ptr(1377, 1414, $clone($toNativeArray($kindInt32, [-48, 0, -48]), d)), CaseRange), $clone(new CaseRange.ptr(4256, 4293, $clone($toNativeArray($kindInt32, [0, 7264, 0]), d)), CaseRange), $clone(new CaseRange.ptr(4295, 4295, $clone($toNativeArray($kindInt32, [0, 7264, 0]), d)), CaseRange), $clone(new CaseRange.ptr(4301, 4301, $clone($toNativeArray($kindInt32, [0, 7264, 0]), d)), CaseRange), $clone(new CaseRange.ptr(4304, 4346, $clone($toNativeArray($kindInt32, [3008, 0, 0]), d)), CaseRange), $clone(new CaseRange.ptr(4349, 4351, $clone($toNativeArray($kindInt32, [3008, 0, 0]), d)), CaseRange), $clone(new CaseRange.ptr(5024, 5103, $clone($toNativeArray($kindInt32, [0, 38864, 0]), d)), CaseRange), $clone(new CaseRange.ptr(5104, 5109, $clone($toNativeArray($kindInt32, [0, 8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(5112, 5117, $clone($toNativeArray($kindInt32, [-8, 0, -8]), d)), CaseRange), $clone(new CaseRange.ptr(7296, 7296, $clone($toNativeArray($kindInt32, [-6254, 0, -6254]), d)), CaseRange), $clone(new CaseRange.ptr(7297, 7297, $clone($toNativeArray($kindInt32, [-6253, 0, -6253]), d)), CaseRange), $clone(new CaseRange.ptr(7298, 7298, $clone($toNativeArray($kindInt32, [-6244, 0, -6244]), d)), CaseRange), $clone(new CaseRange.ptr(7299, 7300, $clone($toNativeArray($kindInt32, [-6242, 0, -6242]), d)), CaseRange), $clone(new CaseRange.ptr(7301, 7301, $clone($toNativeArray($kindInt32, [-6243, 0, -6243]), d)), CaseRange), $clone(new CaseRange.ptr(7302, 7302, $clone($toNativeArray($kindInt32, [-6236, 0, -6236]), d)), CaseRange), $clone(new CaseRange.ptr(7303, 7303, $clone($toNativeArray($kindInt32, [-6181, 0, -6181]), d)), CaseRange), $clone(new CaseRange.ptr(7304, 7304, $clone($toNativeArray($kindInt32, [35266, 0, 35266]), d)), CaseRange), $clone(new CaseRange.ptr(7312, 7354, $clone($toNativeArray($kindInt32, [0, -3008, 0]), d)), CaseRange), $clone(new CaseRange.ptr(7357, 7359, $clone($toNativeArray($kindInt32, [0, -3008, 0]), d)), CaseRange), $clone(new CaseRange.ptr(7545, 7545, $clone($toNativeArray($kindInt32, [35332, 0, 35332]), d)), CaseRange), $clone(new CaseRange.ptr(7549, 7549, $clone($toNativeArray($kindInt32, [3814, 0, 3814]), d)), CaseRange), $clone(new CaseRange.ptr(7566, 7566, $clone($toNativeArray($kindInt32, [35384, 0, 35384]), d)), CaseRange), $clone(new CaseRange.ptr(7680, 7829, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(7835, 7835, $clone($toNativeArray($kindInt32, [-59, 0, -59]), d)), CaseRange), $clone(new CaseRange.ptr(7838, 7838, $clone($toNativeArray($kindInt32, [0, -7615, 0]), d)), CaseRange), $clone(new CaseRange.ptr(7840, 7935, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(7936, 7943, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(7944, 7951, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(7952, 7957, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(7960, 7965, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(7968, 7975, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(7976, 7983, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(7984, 7991, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(7992, 7999, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8000, 8005, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8008, 8013, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8017, 8017, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8019, 8019, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8021, 8021, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8023, 8023, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8025, 8025, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8027, 8027, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8029, 8029, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8031, 8031, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8032, 8039, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8040, 8047, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8048, 8049, $clone($toNativeArray($kindInt32, [74, 0, 74]), d)), CaseRange), $clone(new CaseRange.ptr(8050, 8053, $clone($toNativeArray($kindInt32, [86, 0, 86]), d)), CaseRange), $clone(new CaseRange.ptr(8054, 8055, $clone($toNativeArray($kindInt32, [100, 0, 100]), d)), CaseRange), $clone(new CaseRange.ptr(8056, 8057, $clone($toNativeArray($kindInt32, [128, 0, 128]), d)), CaseRange), $clone(new CaseRange.ptr(8058, 8059, $clone($toNativeArray($kindInt32, [112, 0, 112]), d)), CaseRange), $clone(new CaseRange.ptr(8060, 8061, $clone($toNativeArray($kindInt32, [126, 0, 126]), d)), CaseRange), $clone(new CaseRange.ptr(8064, 8071, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8072, 8079, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8080, 8087, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8088, 8095, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8096, 8103, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8104, 8111, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8112, 8113, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8115, 8115, $clone($toNativeArray($kindInt32, [9, 0, 9]), d)), CaseRange), $clone(new CaseRange.ptr(8120, 8121, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8122, 8123, $clone($toNativeArray($kindInt32, [0, -74, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8124, 8124, $clone($toNativeArray($kindInt32, [0, -9, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8126, 8126, $clone($toNativeArray($kindInt32, [-7205, 0, -7205]), d)), CaseRange), $clone(new CaseRange.ptr(8131, 8131, $clone($toNativeArray($kindInt32, [9, 0, 9]), d)), CaseRange), $clone(new CaseRange.ptr(8136, 8139, $clone($toNativeArray($kindInt32, [0, -86, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8140, 8140, $clone($toNativeArray($kindInt32, [0, -9, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8144, 8145, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8152, 8153, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8154, 8155, $clone($toNativeArray($kindInt32, [0, -100, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8160, 8161, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8165, 8165, $clone($toNativeArray($kindInt32, [7, 0, 7]), d)), CaseRange), $clone(new CaseRange.ptr(8168, 8169, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8170, 8171, $clone($toNativeArray($kindInt32, [0, -112, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8172, 8172, $clone($toNativeArray($kindInt32, [0, -7, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8179, 8179, $clone($toNativeArray($kindInt32, [9, 0, 9]), d)), CaseRange), $clone(new CaseRange.ptr(8184, 8185, $clone($toNativeArray($kindInt32, [0, -128, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8186, 8187, $clone($toNativeArray($kindInt32, [0, -126, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8188, 8188, $clone($toNativeArray($kindInt32, [0, -9, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8486, 8486, $clone($toNativeArray($kindInt32, [0, -7517, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8490, 8490, $clone($toNativeArray($kindInt32, [0, -8383, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8491, 8491, $clone($toNativeArray($kindInt32, [0, -8262, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8498, 8498, $clone($toNativeArray($kindInt32, [0, 28, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8526, 8526, $clone($toNativeArray($kindInt32, [-28, 0, -28]), d)), CaseRange), $clone(new CaseRange.ptr(8544, 8559, $clone($toNativeArray($kindInt32, [0, 16, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8560, 8575, $clone($toNativeArray($kindInt32, [-16, 0, -16]), d)), CaseRange), $clone(new CaseRange.ptr(8579, 8580, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(9398, 9423, $clone($toNativeArray($kindInt32, [0, 26, 0]), d)), CaseRange), $clone(new CaseRange.ptr(9424, 9449, $clone($toNativeArray($kindInt32, [-26, 0, -26]), d)), CaseRange), $clone(new CaseRange.ptr(11264, 11310, $clone($toNativeArray($kindInt32, [0, 48, 0]), d)), CaseRange), $clone(new CaseRange.ptr(11312, 11358, $clone($toNativeArray($kindInt32, [-48, 0, -48]), d)), CaseRange), $clone(new CaseRange.ptr(11360, 11361, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(11362, 11362, $clone($toNativeArray($kindInt32, [0, -10743, 0]), d)), CaseRange), $clone(new CaseRange.ptr(11363, 11363, $clone($toNativeArray($kindInt32, [0, -3814, 0]), d)), CaseRange), $clone(new CaseRange.ptr(11364, 11364, $clone($toNativeArray($kindInt32, [0, -10727, 0]), d)), CaseRange), $clone(new CaseRange.ptr(11365, 11365, $clone($toNativeArray($kindInt32, [-10795, 0, -10795]), d)), CaseRange), $clone(new CaseRange.ptr(11366, 11366, $clone($toNativeArray($kindInt32, [-10792, 0, -10792]), d)), CaseRange), $clone(new CaseRange.ptr(11367, 11372, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(11373, 11373, $clone($toNativeArray($kindInt32, [0, -10780, 0]), d)), CaseRange), $clone(new CaseRange.ptr(11374, 11374, $clone($toNativeArray($kindInt32, [0, -10749, 0]), d)), CaseRange), $clone(new CaseRange.ptr(11375, 11375, $clone($toNativeArray($kindInt32, [0, -10783, 0]), d)), CaseRange), $clone(new CaseRange.ptr(11376, 11376, $clone($toNativeArray($kindInt32, [0, -10782, 0]), d)), CaseRange), $clone(new CaseRange.ptr(11378, 11379, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(11381, 11382, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(11390, 11391, $clone($toNativeArray($kindInt32, [0, -10815, 0]), d)), CaseRange), $clone(new CaseRange.ptr(11392, 11491, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(11499, 11502, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(11506, 11507, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(11520, 11557, $clone($toNativeArray($kindInt32, [-7264, 0, -7264]), d)), CaseRange), $clone(new CaseRange.ptr(11559, 11559, $clone($toNativeArray($kindInt32, [-7264, 0, -7264]), d)), CaseRange), $clone(new CaseRange.ptr(11565, 11565, $clone($toNativeArray($kindInt32, [-7264, 0, -7264]), d)), CaseRange), $clone(new CaseRange.ptr(42560, 42605, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42624, 42651, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42786, 42799, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42802, 42863, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42873, 42876, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42877, 42877, $clone($toNativeArray($kindInt32, [0, -35332, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42878, 42887, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42891, 42892, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42893, 42893, $clone($toNativeArray($kindInt32, [0, -42280, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42896, 42899, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42900, 42900, $clone($toNativeArray($kindInt32, [48, 0, 48]), d)), CaseRange), $clone(new CaseRange.ptr(42902, 42921, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42922, 42922, $clone($toNativeArray($kindInt32, [0, -42308, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42923, 42923, $clone($toNativeArray($kindInt32, [0, -42319, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42924, 42924, $clone($toNativeArray($kindInt32, [0, -42315, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42925, 42925, $clone($toNativeArray($kindInt32, [0, -42305, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42926, 42926, $clone($toNativeArray($kindInt32, [0, -42308, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42928, 42928, $clone($toNativeArray($kindInt32, [0, -42258, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42929, 42929, $clone($toNativeArray($kindInt32, [0, -42282, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42930, 42930, $clone($toNativeArray($kindInt32, [0, -42261, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42931, 42931, $clone($toNativeArray($kindInt32, [0, 928, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42932, 42943, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42946, 42947, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42948, 42948, $clone($toNativeArray($kindInt32, [0, -48, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42949, 42949, $clone($toNativeArray($kindInt32, [0, -42307, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42950, 42950, $clone($toNativeArray($kindInt32, [0, -35384, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42951, 42954, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42997, 42998, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(43859, 43859, $clone($toNativeArray($kindInt32, [-928, 0, -928]), d)), CaseRange), $clone(new CaseRange.ptr(43888, 43967, $clone($toNativeArray($kindInt32, [-38864, 0, -38864]), d)), CaseRange), $clone(new CaseRange.ptr(65313, 65338, $clone($toNativeArray($kindInt32, [0, 32, 0]), d)), CaseRange), $clone(new CaseRange.ptr(65345, 65370, $clone($toNativeArray($kindInt32, [-32, 0, -32]), d)), CaseRange), $clone(new CaseRange.ptr(66560, 66599, $clone($toNativeArray($kindInt32, [0, 40, 0]), d)), CaseRange), $clone(new CaseRange.ptr(66600, 66639, $clone($toNativeArray($kindInt32, [-40, 0, -40]), d)), CaseRange), $clone(new CaseRange.ptr(66736, 66771, $clone($toNativeArray($kindInt32, [0, 40, 0]), d)), CaseRange), $clone(new CaseRange.ptr(66776, 66811, $clone($toNativeArray($kindInt32, [-40, 0, -40]), d)), CaseRange), $clone(new CaseRange.ptr(68736, 68786, $clone($toNativeArray($kindInt32, [0, 64, 0]), d)), CaseRange), $clone(new CaseRange.ptr(68800, 68850, $clone($toNativeArray($kindInt32, [-64, 0, -64]), d)), CaseRange), $clone(new CaseRange.ptr(71840, 71871, $clone($toNativeArray($kindInt32, [0, 32, 0]), d)), CaseRange), $clone(new CaseRange.ptr(71872, 71903, $clone($toNativeArray($kindInt32, [-32, 0, -32]), d)), CaseRange), $clone(new CaseRange.ptr(93760, 93791, $clone($toNativeArray($kindInt32, [0, 32, 0]), d)), CaseRange), $clone(new CaseRange.ptr(93792, 93823, $clone($toNativeArray($kindInt32, [-32, 0, -32]), d)), CaseRange), $clone(new CaseRange.ptr(125184, 125217, $clone($toNativeArray($kindInt32, [0, 34, 0]), d)), CaseRange), $clone(new CaseRange.ptr(125218, 125251, $clone($toNativeArray($kindInt32, [-34, 0, -34]), d)), CaseRange)]); - $pkg.CaseRanges = _CaseRanges; - properties = $toNativeArray($kindUint8, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 144, 130, 130, 130, 136, 130, 130, 130, 130, 130, 130, 136, 130, 130, 130, 130, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 130, 130, 136, 136, 136, 130, 130, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 130, 130, 130, 136, 130, 136, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 130, 136, 130, 136, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 16, 130, 136, 136, 136, 136, 136, 130, 136, 136, 224, 130, 136, 0, 136, 136, 136, 136, 132, 132, 136, 192, 130, 130, 136, 132, 224, 130, 132, 132, 132, 130, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 136, 160, 160, 160, 160, 160, 160, 160, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 136, 192, 192, 192, 192, 192, 192, 192, 192]); $pkg.GraphicRanges = new sliceType$4([$pkg.L, $pkg.M, $pkg.N, $pkg.P, $pkg.S, $pkg.Zs]); $pkg.PrintRanges = new sliceType$4([$pkg.L, $pkg.M, $pkg.N, $pkg.P, $pkg.S]); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; @@ -13166,7 +13132,7 @@ $packages["unicode"] = (function() { return $pkg; })(); $packages["reflect"] = (function() { - var $pkg = {}, $init, errors, js, abi, bytealg, goarch, itoa, math, runtime, strconv, sync, unicode, utf8, Value, flag, ValueError, emptyInterface, MapIter, Type, Kind, tflag, rtype, method, ChanDir, arrayType, chanType, imethod, interfaceType, mapType, ptrType, sliceType, structField, structType, Method, nameOff, typeOff, textOff, StructField, StructTag, fieldScan, uncommonType, funcType, name, nameData, hiter, arrayType$1, sliceType$1, sliceType$2, ptrType$2, sliceType$3, sliceType$4, sliceType$5, sliceType$6, ptrType$3, funcType$1, sliceType$8, arrayType$2, sliceType$9, ptrType$5, sliceType$10, ptrType$8, sliceType$12, ptrType$9, sliceType$13, ptrType$10, ptrType$11, sliceType$14, ptrType$12, ptrType$13, sliceType$16, sliceType$17, ptrType$17, structType$3, sliceType$18, ptrType$18, ptrType$19, sliceType$19, arrayType$7, sliceType$20, funcType$3, ptrType$22, arrayType$8, ptrType$23, funcType$4, funcType$5, ptrType$25, ptrType$26, zeroVal, nameOffList, typeOffList, bytesType, uint8Type, stringType, kindNames, initialized, nameMap, callHelper, jsObjectPtr, selectHelper, valueMethodName, copyVal, overflowFloat32, typesMustMatch, Append, MakeMap, MakeMapWithSize, Indirect, convertOp, makeFloat, makeFloat32, makeComplex, makeString, makeBytes, makeRunes, cvtInt, cvtUint, cvtFloatInt, cvtFloatUint, cvtIntFloat, cvtUintFloat, cvtFloat, cvtComplex, cvtIntString, cvtUintString, cvtBytesString, cvtStringBytes, cvtRunesString, cvtStringRunes, cvtT2I, cvtI2I, rtypeOf, PtrTo, PointerTo, implements$1, specialChannelAssignability, directlyAssignable, haveIdenticalType, haveIdenticalUnderlyingType, toType, ifaceIndir, init, New, jsType, reflectType, setKindType, newName, newMethodName, resolveReflectName, newTypeOff, internalStr, isWrapped, copyStruct, makeValue, MakeSlice, TypeOf, ValueOf, FuncOf, SliceOf, Zero, unsafe_New, makeInt, typedmemmove, makemap, keyFor, mapaccess, mapassign, mapdelete, mapaccess_faststr, mapassign_faststr, mapdelete_faststr, mapiterinit, mapiterkey, mapiterelem, mapiternext, maplen, cvtDirect, cvtSliceArrayPtr, cvtSliceArray, Copy, methodReceiver, valueInterface, ifaceE2I, makeMethodValue, wrapJsObject, unwrapJsObject, getJsTag, chanrecv, chansend, DeepEqual, deepValueEqualJs; + var $pkg = {}, $init, errors, js, abi, bytealg, goarch, itoa, math, runtime, strconv, sync, unicode, utf8, Value, flag, ValueError, MapIter, Type, Kind, rtype, ChanDir, interfaceType, mapType, ptrType, sliceType, structType, Method, StructField, StructTag, fieldScan, hiter, arrayType$1, structType$1, sliceType$1, sliceType$2, sliceType$3, sliceType$4, ptrType$2, funcType$1, sliceType$6, ptrType$4, arrayType$2, sliceType$7, ptrType$5, sliceType$8, ptrType$6, ptrType$7, ptrType$9, sliceType$10, ptrType$10, sliceType$11, ptrType$11, ptrType$12, sliceType$12, ptrType$13, sliceType$13, ptrType$14, sliceType$15, sliceType$16, funcType$3, sliceType$17, ptrType$18, ptrType$19, ptrType$20, sliceType$18, arrayType$4, sliceType$19, funcType$4, ptrType$24, arrayType$5, ptrType$25, zeroVal, dummy, bytesType, uint8Type, stringType, kindNames, callHelper, selectHelper, valueMethodName, copyVal, overflowFloat32, typesMustMatch, MakeMap, MakeMapWithSize, Indirect, convertOp, makeFloat, makeFloat32, makeComplex, makeString, makeBytes, makeRunes, cvtInt, cvtUint, cvtFloatInt, cvtFloatUint, cvtIntFloat, cvtUintFloat, cvtFloat, cvtComplex, cvtIntString, cvtUintString, cvtBytesString, cvtStringBytes, cvtRunesString, cvtStringRunes, cvtT2I, cvtI2I, escapes, nameOffFor, typeOffFor, pkgPathFor, nameFor, elem, PtrTo, PointerTo, ptrTo, implements$1, specialChannelAssignability, directlyAssignable, haveIdenticalType, haveIdenticalUnderlyingType, stringFor, toType, ifaceIndir, init, New, jsType, toAbiType, toRType, rtypeOf, pkgPath, makeValue, MakeSlice, TypeOf, ValueOf, FuncOf, SliceOf, Zero, unsafe_New, makeInt, typedmemmove, makemap, keyFor, mapaccess, mapassign, mapdelete, mapaccess_faststr, mapassign_faststr, mapdelete_faststr, mapiterinit, mapiterkey, mapiterelem, mapiternext, maplen, cvtDirect, cvtSliceArrayPtr, cvtSliceArray, Copy, methodReceiver, valueInterface, ifaceE2I, makeMethodValue, chanrecv, chansend, DeepEqual, deepValueEqualJs, noescape, toKindTypeExt; errors = $packages["errors"]; js = $packages["github.com/gopherjs/gopherjs/js"]; abi = $packages["internal/abi"]; @@ -13179,15 +13145,15 @@ $packages["reflect"] = (function() { sync = $packages["sync"]; unicode = $packages["unicode"]; utf8 = $packages["unicode/utf8"]; - Value = $newType(0, $kindStruct, "reflect.Value", true, "reflect", true, function(typ_, ptr_, flag_) { + Value = $newType(0, $kindStruct, "reflect.Value", true, "reflect", true, function(typ__, ptr_, flag_) { this.$val = this; if (arguments.length === 0) { - this.typ = ptrType$2.nil; + this.typ_ = ptrType$4.nil; this.ptr = 0; this.flag = 0; return; } - this.typ = typ_; + this.typ_ = typ__; this.ptr = ptr_; this.flag = flag_; }); @@ -13202,21 +13168,11 @@ $packages["reflect"] = (function() { this.Method = Method_; this.Kind = Kind_; }); - emptyInterface = $newType(0, $kindStruct, "reflect.emptyInterface", true, "reflect", false, function(typ_, word_) { - this.$val = this; - if (arguments.length === 0) { - this.typ = ptrType$2.nil; - this.word = 0; - return; - } - this.typ = typ_; - this.word = word_; - }); MapIter = $newType(0, $kindStruct, "reflect.MapIter", true, "reflect", true, function(m_, hiter_) { this.$val = this; if (arguments.length === 0) { - this.m = new Value.ptr(ptrType$2.nil, 0, 0); - this.hiter = new hiter.ptr($ifaceNil, null, null, 0, null); + this.m = new Value.ptr(ptrType$4.nil, 0, 0); + this.hiter = new hiter.ptr(ptrType$4.nil, null, null, 0, null); return; } this.m = m_; @@ -13224,165 +13180,54 @@ $packages["reflect"] = (function() { }); Type = $newType(8, $kindInterface, "reflect.Type", true, "reflect", true, null); Kind = $newType(4, $kindUint, "reflect.Kind", true, "reflect", true, null); - tflag = $newType(1, $kindUint8, "reflect.tflag", true, "reflect", false, null); - rtype = $newType(0, $kindStruct, "reflect.rtype", true, "reflect", false, function(size_, ptrdata_, hash_, tflag_, align_, fieldAlign_, kind_, equal_, gcdata_, str_, ptrToThis_) { + rtype = $newType(0, $kindStruct, "reflect.rtype", true, "reflect", false, function(t_) { this.$val = this; if (arguments.length === 0) { - this.size = 0; - this.ptrdata = 0; - this.hash = 0; - this.tflag = 0; - this.align = 0; - this.fieldAlign = 0; - this.kind = 0; - this.equal = $throwNilPointerError; - this.gcdata = ptrType$13.nil; - this.str = 0; - this.ptrToThis = 0; + this.t = new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, abi.NameOff.nil, abi.TypeOff.nil); return; } - this.size = size_; - this.ptrdata = ptrdata_; - this.hash = hash_; - this.tflag = tflag_; - this.align = align_; - this.fieldAlign = fieldAlign_; - this.kind = kind_; - this.equal = equal_; - this.gcdata = gcdata_; - this.str = str_; - this.ptrToThis = ptrToThis_; - }); - method = $newType(0, $kindStruct, "reflect.method", true, "reflect", false, function(name_, mtyp_, ifn_, tfn_) { - this.$val = this; - if (arguments.length === 0) { - this.name = 0; - this.mtyp = 0; - this.ifn = 0; - this.tfn = 0; - return; - } - this.name = name_; - this.mtyp = mtyp_; - this.ifn = ifn_; - this.tfn = tfn_; + this.t = t_; }); ChanDir = $newType(4, $kindInt, "reflect.ChanDir", true, "reflect", true, null); - arrayType = $newType(0, $kindStruct, "reflect.arrayType", true, "reflect", false, function(rtype_, elem_, slice_, len_) { + interfaceType = $newType(0, $kindStruct, "reflect.interfaceType", true, "reflect", false, function(InterfaceType_) { this.$val = this; if (arguments.length === 0) { - this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0); - this.elem = ptrType$2.nil; - this.slice = ptrType$2.nil; - this.len = 0; + this.InterfaceType = new abi.InterfaceType.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, abi.NameOff.nil, abi.TypeOff.nil), new abi.Name.ptr("", "", false, false, ""), sliceType$15.nil); return; } - this.rtype = rtype_; - this.elem = elem_; - this.slice = slice_; - this.len = len_; + this.InterfaceType = InterfaceType_; }); - chanType = $newType(0, $kindStruct, "reflect.chanType", true, "reflect", false, function(rtype_, elem_, dir_) { + mapType = $newType(0, $kindStruct, "reflect.mapType", true, "reflect", false, function(MapType_) { this.$val = this; if (arguments.length === 0) { - this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0); - this.elem = ptrType$2.nil; - this.dir = 0; + this.MapType = new abi.MapType.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, abi.NameOff.nil, abi.TypeOff.nil), ptrType$4.nil, ptrType$4.nil, ptrType$4.nil, $throwNilPointerError, 0, 0, 0, 0); return; } - this.rtype = rtype_; - this.elem = elem_; - this.dir = dir_; + this.MapType = MapType_; }); - imethod = $newType(0, $kindStruct, "reflect.imethod", true, "reflect", false, function(name_, typ_) { + ptrType = $newType(0, $kindStruct, "reflect.ptrType", true, "reflect", false, function(PtrType_) { this.$val = this; if (arguments.length === 0) { - this.name = 0; - this.typ = 0; + this.PtrType = new abi.PtrType.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, abi.NameOff.nil, abi.TypeOff.nil), ptrType$4.nil); return; } - this.name = name_; - this.typ = typ_; + this.PtrType = PtrType_; }); - interfaceType = $newType(0, $kindStruct, "reflect.interfaceType", true, "reflect", false, function(rtype_, pkgPath_, methods_) { + sliceType = $newType(0, $kindStruct, "reflect.sliceType", true, "reflect", false, function(SliceType_) { this.$val = this; if (arguments.length === 0) { - this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0); - this.pkgPath = new name.ptr(ptrType$13.nil); - this.methods = sliceType$16.nil; + this.SliceType = new abi.SliceType.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, abi.NameOff.nil, abi.TypeOff.nil), ptrType$4.nil); return; } - this.rtype = rtype_; - this.pkgPath = pkgPath_; - this.methods = methods_; + this.SliceType = SliceType_; }); - mapType = $newType(0, $kindStruct, "reflect.mapType", true, "reflect", false, function(rtype_, key_, elem_, bucket_, hasher_, keysize_, valuesize_, bucketsize_, flags_) { + structType = $newType(0, $kindStruct, "reflect.structType", true, "reflect", false, function(StructType_) { this.$val = this; if (arguments.length === 0) { - this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0); - this.key = ptrType$2.nil; - this.elem = ptrType$2.nil; - this.bucket = ptrType$2.nil; - this.hasher = $throwNilPointerError; - this.keysize = 0; - this.valuesize = 0; - this.bucketsize = 0; - this.flags = 0; + this.StructType = new abi.StructType.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, abi.NameOff.nil, abi.TypeOff.nil), new abi.Name.ptr("", "", false, false, ""), sliceType$16.nil); return; } - this.rtype = rtype_; - this.key = key_; - this.elem = elem_; - this.bucket = bucket_; - this.hasher = hasher_; - this.keysize = keysize_; - this.valuesize = valuesize_; - this.bucketsize = bucketsize_; - this.flags = flags_; - }); - ptrType = $newType(0, $kindStruct, "reflect.ptrType", true, "reflect", false, function(rtype_, elem_) { - this.$val = this; - if (arguments.length === 0) { - this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0); - this.elem = ptrType$2.nil; - return; - } - this.rtype = rtype_; - this.elem = elem_; - }); - sliceType = $newType(0, $kindStruct, "reflect.sliceType", true, "reflect", false, function(rtype_, elem_) { - this.$val = this; - if (arguments.length === 0) { - this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0); - this.elem = ptrType$2.nil; - return; - } - this.rtype = rtype_; - this.elem = elem_; - }); - structField = $newType(0, $kindStruct, "reflect.structField", true, "reflect", false, function(name_, typ_, offset_) { - this.$val = this; - if (arguments.length === 0) { - this.name = new name.ptr(ptrType$13.nil); - this.typ = ptrType$2.nil; - this.offset = 0; - return; - } - this.name = name_; - this.typ = typ_; - this.offset = offset_; - }); - structType = $newType(0, $kindStruct, "reflect.structType", true, "reflect", false, function(rtype_, pkgPath_, fields_) { - this.$val = this; - if (arguments.length === 0) { - this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0); - this.pkgPath = new name.ptr(ptrType$13.nil); - this.fields = sliceType$17.nil; - return; - } - this.rtype = rtype_; - this.pkgPath = pkgPath_; - this.fields = fields_; + this.StructType = StructType_; }); Method = $newType(0, $kindStruct, "reflect.Method", true, "reflect", true, function(Name_, PkgPath_, Type_, Func_, Index_) { this.$val = this; @@ -13390,7 +13235,7 @@ $packages["reflect"] = (function() { this.Name = ""; this.PkgPath = ""; this.Type = $ifaceNil; - this.Func = new Value.ptr(ptrType$2.nil, 0, 0); + this.Func = new Value.ptr(ptrType$4.nil, 0, 0); this.Index = 0; return; } @@ -13400,9 +13245,6 @@ $packages["reflect"] = (function() { this.Func = Func_; this.Index = Index_; }); - nameOff = $newType(4, $kindInt32, "reflect.nameOff", true, "reflect", false, null); - typeOff = $newType(4, $kindInt32, "reflect.typeOff", true, "reflect", false, null); - textOff = $newType(4, $kindInt32, "reflect.textOff", true, "reflect", false, null); StructField = $newType(0, $kindStruct, "reflect.StructField", true, "reflect", true, function(Name_, PkgPath_, Type_, Tag_, Offset_, Index_, Anonymous_) { this.$val = this; if (arguments.length === 0) { @@ -13411,7 +13253,7 @@ $packages["reflect"] = (function() { this.Type = $ifaceNil; this.Tag = ""; this.Offset = 0; - this.Index = sliceType$8.nil; + this.Index = sliceType$6.nil; this.Anonymous = false; return; } @@ -13427,73 +13269,17 @@ $packages["reflect"] = (function() { fieldScan = $newType(0, $kindStruct, "reflect.fieldScan", true, "reflect", false, function(typ_, index_) { this.$val = this; if (arguments.length === 0) { - this.typ = ptrType$12.nil; - this.index = sliceType$8.nil; + this.typ = ptrType$13.nil; + this.index = sliceType$6.nil; return; } this.typ = typ_; this.index = index_; }); - uncommonType = $newType(0, $kindStruct, "reflect.uncommonType", true, "reflect", false, function(pkgPath_, mcount_, xcount_, moff_, _methods_) { - this.$val = this; - if (arguments.length === 0) { - this.pkgPath = 0; - this.mcount = 0; - this.xcount = 0; - this.moff = 0; - this._methods = sliceType$13.nil; - return; - } - this.pkgPath = pkgPath_; - this.mcount = mcount_; - this.xcount = xcount_; - this.moff = moff_; - this._methods = _methods_; - }); - funcType = $newType(0, $kindStruct, "reflect.funcType", true, "reflect", false, function(rtype_, inCount_, outCount_, _in_, _out_) { - this.$val = this; - if (arguments.length === 0) { - this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0); - this.inCount = 0; - this.outCount = 0; - this._in = sliceType$3.nil; - this._out = sliceType$3.nil; - return; - } - this.rtype = rtype_; - this.inCount = inCount_; - this.outCount = outCount_; - this._in = _in_; - this._out = _out_; - }); - name = $newType(0, $kindStruct, "reflect.name", true, "reflect", false, function(bytes_) { - this.$val = this; - if (arguments.length === 0) { - this.bytes = ptrType$13.nil; - return; - } - this.bytes = bytes_; - }); - nameData = $newType(0, $kindStruct, "reflect.nameData", true, "reflect", false, function(name_, tag_, exported_, embedded_, pkgPath_) { - this.$val = this; - if (arguments.length === 0) { - this.name = ""; - this.tag = ""; - this.exported = false; - this.embedded = false; - this.pkgPath = ""; - return; - } - this.name = name_; - this.tag = tag_; - this.exported = exported_; - this.embedded = embedded_; - this.pkgPath = pkgPath_; - }); hiter = $newType(0, $kindStruct, "reflect.hiter", true, "reflect", false, function(t_, m_, keys_, i_, last_) { this.$val = this; if (arguments.length === 0) { - this.t = $ifaceNil; + this.t = ptrType$4.nil; this.m = null; this.keys = null; this.i = 0; @@ -13509,78 +13295,62 @@ $packages["reflect"] = (function() { $pkg.Value = Value; $pkg.flag = flag; $pkg.ValueError = ValueError; - $pkg.emptyInterface = emptyInterface; $pkg.MapIter = MapIter; $pkg.Type = Type; $pkg.Kind = Kind; - $pkg.tflag = tflag; $pkg.rtype = rtype; - $pkg.method = method; $pkg.ChanDir = ChanDir; - $pkg.arrayType = arrayType; - $pkg.chanType = chanType; - $pkg.imethod = imethod; $pkg.interfaceType = interfaceType; $pkg.mapType = mapType; $pkg.ptrType = ptrType; $pkg.sliceType = sliceType; - $pkg.structField = structField; $pkg.structType = structType; $pkg.Method = Method; - $pkg.nameOff = nameOff; - $pkg.typeOff = typeOff; - $pkg.textOff = textOff; $pkg.StructField = StructField; $pkg.StructTag = StructTag; $pkg.fieldScan = fieldScan; - $pkg.uncommonType = uncommonType; - $pkg.funcType = funcType; - $pkg.name = name; - $pkg.nameData = nameData; $pkg.hiter = hiter; $pkg.$finishSetup = function() { arrayType$1 = $arrayType($Uint8, 1024); + structType$1 = $structType("reflect", [{prop: "b", name: "b", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "x", name: "x", embedded: false, exported: false, typ: $emptyInterface, tag: ""}]); sliceType$1 = $sliceType(Type); - sliceType$2 = $sliceType(name); - ptrType$2 = $ptrType(rtype); - sliceType$3 = $sliceType(ptrType$2); - sliceType$4 = $sliceType($Uint8); - sliceType$5 = $sliceType($String); - sliceType$6 = $sliceType($emptyInterface); - ptrType$3 = $ptrType(js.Object); - funcType$1 = $funcType([sliceType$6], [ptrType$3], true); - sliceType$8 = $sliceType($Int); + sliceType$2 = $sliceType($Uint8); + sliceType$3 = $sliceType($String); + sliceType$4 = $sliceType($emptyInterface); + ptrType$2 = $ptrType(js.Object); + funcType$1 = $funcType([sliceType$4], [ptrType$2], true); + sliceType$6 = $sliceType($Int); + ptrType$4 = $ptrType(abi.Type); arrayType$2 = $arrayType($Uintptr, 5); - sliceType$9 = $sliceType($Uintptr); + sliceType$7 = $sliceType($Uintptr); ptrType$5 = $ptrType(runtime.Func); - sliceType$10 = $sliceType(Value); - ptrType$8 = $ptrType($UnsafePointer); - sliceType$12 = $sliceType($Int32); - ptrType$9 = $ptrType(uncommonType); - sliceType$13 = $sliceType(method); - ptrType$10 = $ptrType(interfaceType); - ptrType$11 = $ptrType(imethod); - sliceType$14 = $sliceType(fieldScan); - ptrType$12 = $ptrType(structType); - ptrType$13 = $ptrType($Uint8); - sliceType$16 = $sliceType(imethod); - sliceType$17 = $sliceType(structField); - ptrType$17 = $ptrType(nameData); - structType$3 = $structType("reflect", [{prop: "str", name: "str", embedded: false, exported: false, typ: $String, tag: ""}]); - sliceType$18 = $sliceType(ptrType$3); + sliceType$8 = $sliceType(Value); + ptrType$6 = $ptrType($UnsafePointer); + ptrType$7 = $ptrType(abi.Imethod); + ptrType$9 = $ptrType(rtype); + sliceType$10 = $sliceType($Int32); + ptrType$10 = $ptrType(abi.UncommonType); + sliceType$11 = $sliceType(abi.Method); + ptrType$11 = $ptrType(interfaceType); + ptrType$12 = $ptrType(abi.StructField); + sliceType$12 = $sliceType(fieldScan); + ptrType$13 = $ptrType(structType); + sliceType$13 = $sliceType(ptrType$4); + ptrType$14 = $ptrType($Uint8); + sliceType$15 = $sliceType(abi.Imethod); + sliceType$16 = $sliceType(abi.StructField); + funcType$3 = $funcType([$emptyInterface], [ptrType$2], false); + sliceType$17 = $sliceType(ptrType$2); ptrType$18 = $ptrType($String); - ptrType$19 = $ptrType(funcType); - sliceType$19 = $sliceType(sliceType$18); - arrayType$7 = $arrayType($UnsafePointer, 2); - sliceType$20 = $sliceType(arrayType$7); - funcType$3 = $funcType([$String], [$Bool], false); - ptrType$22 = $ptrType(MapIter); - arrayType$8 = $arrayType($Uintptr, 2); - ptrType$23 = $ptrType(ValueError); - funcType$4 = $funcType([$UnsafePointer, $UnsafePointer], [$Bool], false); - funcType$5 = $funcType([$UnsafePointer, $Uintptr], [$Uintptr], false); - ptrType$25 = $ptrType(structField); - ptrType$26 = $ptrType(hiter); + ptrType$19 = $ptrType(hiter); + ptrType$20 = $ptrType(abi.FuncType); + sliceType$18 = $sliceType(sliceType$17); + arrayType$4 = $arrayType($UnsafePointer, 2); + sliceType$19 = $sliceType(arrayType$4); + funcType$4 = $funcType([$String], [$Bool], false); + ptrType$24 = $ptrType(MapIter); + arrayType$5 = $arrayType($Uintptr, 2); + ptrType$25 = $ptrType(ValueError); flag.prototype.kind = function kind() { var f; f = this.$val; @@ -13596,10 +13366,16 @@ $packages["reflect"] = (function() { return 0; }; $ptrType(flag).prototype.ro = function(...$args) { return new flag(this.$get()).ro(...$args); }; + $ptrType(Value).prototype.typ = function typ() { + var v; + v = this; + return ($pointerOfStructConversion(noescape((v.typ_)), ptrType$4)); + }; + Value.prototype.typ = function(...$args) { return this.$val.typ(...$args); }; $ptrType(Value).prototype.pointer = function pointer() { var v; v = this; - if (!((v.typ.size === 4)) || !v.typ.pointers()) { + if (!(($clone(v, Value).typ().Size() === 4)) || !$clone(v, Value).typ().Pointers()) { $panic(new $String("can't call pointer on a non-pointer Value")); } if (!((((v.flag & 128) >>> 0) === 0))) { @@ -13617,10 +13393,10 @@ $packages["reflect"] = (function() { return "reflect: call of " + e.Method + " on " + new Kind(e.Kind).String() + " Value"; }; valueMethodName = function valueMethodName$1() { - var _tuple, frame, frames, methodName, more, n, name$1, pc; + var _tuple, frame, frames, methodName, more, n, name, pc; pc = arrayType$2.zero(); - n = runtime.Callers(1, new sliceType$9(pc)); - frames = runtime.CallersFrames($subslice(new sliceType$9(pc), 0, n)); + n = runtime.Callers(1, new sliceType$7(pc)); + frames = runtime.CallersFrames($subslice(new sliceType$7(pc), 0, n)); frame = new runtime.Frame.ptr(0, ptrType$5.nil, "", "", 0, 0); more = true; while (true) { @@ -13628,11 +13404,11 @@ $packages["reflect"] = (function() { _tuple = frames.Next(); runtime.Frame.copy(frame, _tuple[0]); more = _tuple[1]; - name$1 = frame.Function; - if (name$1.length > 14 && $substring(name$1, 0, 14) === "reflect.Value.") { - methodName = $substring(name$1, 14); + name = frame.Function; + if (name.length > 14 && $substring(name, 0, 14) === "reflect.Value.") { + methodName = $substring(name, 14); if (methodName.length > 0 && 65 <= methodName.charCodeAt(0) && methodName.charCodeAt(0) <= 90) { - return name$1; + return name; } } } @@ -13694,7 +13470,7 @@ $packages["reflect"] = (function() { $panic(new $String("reflect.Value.Addr of unaddressable value")); } fl = (v.flag & 96) >>> 0; - return new Value.ptr(v.typ.ptrTo(), v.ptr, (fl | 22) >>> 0); + return new Value.ptr(ptrTo($clone(v, Value).typ()), v.ptr, (fl | 22) >>> 0); }; Value.prototype.Addr = function(...$args) { return this.$val.Addr(...$args); }; $ptrType(Value).prototype.Bool = function Bool() { @@ -13713,31 +13489,22 @@ $packages["reflect"] = (function() { }; Value.prototype.panicNotBool = function(...$args) { return this.$val.panicNotBool(...$args); }; $ptrType(Value).prototype.Bytes = function Bytes() { - var {$24r, _r, v, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var v; v = this; - if (v.typ === bytesType) { - $s = -1; return (v.ptr).$get(); + if (v.typ_ === bytesType) { + return (v.ptr).$get(); } - _r = $clone(v, Value).bytesSlow(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Bytes, $c: true, $r, $24r, _r, v, $s};return $f; + return $clone(v, Value).bytesSlow(); }; Value.prototype.Bytes = function(...$args) { return this.$val.Bytes(...$args); }; $ptrType(Value).prototype.runes = function runes() { - var {_r, v, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var v; v = this; new flag(v.flag).mustBe(23); - _r = v.typ.Elem().Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - /* */ if (!((_r === 5))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!((_r === 5))) { */ case 1: + if (!(($clone(v, Value).typ().Elem().Kind() === 5))) { $panic(new $String("reflect.Value.Bytes of non-rune slice")); - /* } */ case 2: - $s = -1; return (v.ptr).$get(); - /* */ } return; } var $f = {$blk: runes, $c: true, $r, _r, v, $s};return $f; + } + return (v.ptr).$get(); }; Value.prototype.runes = function(...$args) { return this.$val.runes(...$args); }; $ptrType(Value).prototype.CanAddr = function CanAddr() { @@ -13801,133 +13568,88 @@ $packages["reflect"] = (function() { }; Value.prototype.Complex = function(...$args) { return this.$val.Complex(...$args); }; $ptrType(Value).prototype.FieldByIndex = function FieldByIndex(index) { - var {$24r, _i, _r, _r$1, _r$2, _r$3, _ref, _v, i, index, v, x, $s, $r, $c} = $restore(this, {index}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var _i, _ref, i, index, v, x; v = this; - /* */ if (index.$length === 1) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (index.$length === 1) { */ case 1: - _r = $clone(v, Value).Field((0 >= index.$length ? ($throwRuntimeError("index out of range"), undefined) : index.$array[index.$offset + 0])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 4; case 4: return $24r; - /* } */ case 2: + if (index.$length === 1) { + return $clone(v, Value).Field((0 >= index.$length ? ($throwRuntimeError("index out of range"), undefined) : index.$array[index.$offset + 0])); + } new flag(v.flag).mustBe(25); _ref = index; _i = 0; - /* while (true) { */ case 5: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 6; continue; } + while (true) { + if (!(_i < _ref.$length)) { break; } i = _i; x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - /* */ if (i > 0) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (i > 0) { */ case 7: - if (!($clone(v, Value).Kind() === 22)) { _v = false; $s = 11; continue s; } - _r$1 = v.typ.Elem().Kind(); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = _r$1 === 25; case 11: - /* */ if (_v) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (_v) { */ case 9: + if (i > 0) { + if (($clone(v, Value).Kind() === 22) && ($clone(v, Value).typ().Elem().Kind() === 25)) { if ($clone(v, Value).IsNil()) { $panic(new $String("reflect: indirection through nil pointer to embedded struct")); } - _r$2 = $clone(v, Value).Elem(); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - v = _r$2; - /* } */ case 10: - /* } */ case 8: - _r$3 = $clone(v, Value).Field(x); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - v = _r$3; + v = $clone(v, Value).Elem(); + } + } + v = $clone(v, Value).Field(x); _i++; - $s = 5; continue; - case 6: - $s = -1; return v; - /* */ } return; } var $f = {$blk: FieldByIndex, $c: true, $r, $24r, _i, _r, _r$1, _r$2, _r$3, _ref, _v, i, index, v, x, $s};return $f; + } + return v; }; Value.prototype.FieldByIndex = function(...$args) { return this.$val.FieldByIndex(...$args); }; $ptrType(Value).prototype.FieldByIndexErr = function FieldByIndexErr(index) { - var {$24r, $24r$1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _v, i, index, v, x, $s, $r, $c} = $restore(this, {index}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var _i, _ref, i, index, v, x; v = this; - /* */ if (index.$length === 1) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (index.$length === 1) { */ case 1: - _r = $clone(v, Value).Field((0 >= index.$length ? ($throwRuntimeError("index out of range"), undefined) : index.$array[index.$offset + 0])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = [_r, $ifaceNil]; - $s = 4; case 4: return $24r; - /* } */ case 2: + if (index.$length === 1) { + return [$clone(v, Value).Field((0 >= index.$length ? ($throwRuntimeError("index out of range"), undefined) : index.$array[index.$offset + 0])), $ifaceNil]; + } new flag(v.flag).mustBe(25); _ref = index; _i = 0; - /* while (true) { */ case 5: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 6; continue; } + while (true) { + if (!(_i < _ref.$length)) { break; } i = _i; x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - /* */ if (i > 0) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (i > 0) { */ case 7: - if (!($clone(v, Value).Kind() === 22)) { _v = false; $s = 11; continue s; } - _r$1 = v.typ.Elem().Kind(); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = _r$1 === 25; case 11: - /* */ if (_v) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (_v) { */ case 9: - /* */ if ($clone(v, Value).IsNil()) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if ($clone(v, Value).IsNil()) { */ case 13: - _r$2 = v.typ.Elem().Name(); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = errors.New("reflect: indirection through nil pointer to embedded struct field " + _r$2); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r$1 = [new Value.ptr(ptrType$2.nil, 0, 0), _r$3]; - $s = 17; case 17: return $24r$1; - /* } */ case 14: - _r$4 = $clone(v, Value).Elem(); /* */ $s = 18; case 18: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - v = _r$4; - /* } */ case 10: - /* } */ case 8: - _r$5 = $clone(v, Value).Field(x); /* */ $s = 19; case 19: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - v = _r$5; + if (i > 0) { + if (($clone(v, Value).Kind() === 22) && ($clone(v, Value).typ().Elem().Kind() === 25)) { + if ($clone(v, Value).IsNil()) { + return [new Value.ptr(ptrType$4.nil, 0, 0), errors.New("reflect: indirection through nil pointer to embedded struct field " + nameFor($clone(v, Value).typ().Elem()))]; + } + v = $clone(v, Value).Elem(); + } + } + v = $clone(v, Value).Field(x); _i++; - $s = 5; continue; - case 6: - $s = -1; return [v, $ifaceNil]; - /* */ } return; } var $f = {$blk: FieldByIndexErr, $c: true, $r, $24r, $24r$1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _v, i, index, v, x, $s};return $f; + } + return [v, $ifaceNil]; }; Value.prototype.FieldByIndexErr = function(...$args) { return this.$val.FieldByIndexErr(...$args); }; - $ptrType(Value).prototype.FieldByName = function FieldByName(name$1) { - var {$24r, _r, _r$1, _tuple, f, name$1, ok, v, $s, $r, $c} = $restore(this, {name$1}); + $ptrType(Value).prototype.FieldByName = function FieldByName(name) { + var {_r, _tuple, f, name, ok, v, $s, $r, $c} = $restore(this, {name}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: v = this; new flag(v.flag).mustBe(25); - _r = v.typ.FieldByName(name$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = toRType($clone(v, Value).typ()).FieldByName(name); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; f = $clone(_tuple[0], StructField); ok = _tuple[1]; - /* */ if (ok) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (ok) { */ case 2: - _r$1 = $clone(v, Value).FieldByIndex(f.Index); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 5; case 5: return $24r; - /* } */ case 3: - $s = -1; return new Value.ptr(ptrType$2.nil, 0, 0); - /* */ } return; } var $f = {$blk: FieldByName, $c: true, $r, $24r, _r, _r$1, _tuple, f, name$1, ok, v, $s};return $f; + if (ok) { + $s = -1; return $clone(v, Value).FieldByIndex(f.Index); + } + $s = -1; return new Value.ptr(ptrType$4.nil, 0, 0); + /* */ } return; } var $f = {$blk: FieldByName, $c: true, $r, _r, _tuple, f, name, ok, v, $s};return $f; }; Value.prototype.FieldByName = function(...$args) { return this.$val.FieldByName(...$args); }; $ptrType(Value).prototype.FieldByNameFunc = function FieldByNameFunc(match) { - var {$24r, _r, _r$1, _tuple, f, match, ok, v, $s, $r, $c} = $restore(this, {match}); + var {_r, _tuple, f, match, ok, v, $s, $r, $c} = $restore(this, {match}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: v = this; - _r = v.typ.FieldByNameFunc(match); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = toRType($clone(v, Value).typ()).FieldByNameFunc(match); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; f = $clone(_tuple[0], StructField); ok = _tuple[1]; - /* */ if (ok) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (ok) { */ case 2: - _r$1 = $clone(v, Value).FieldByIndex(f.Index); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 5; case 5: return $24r; - /* } */ case 3: - $s = -1; return new Value.ptr(ptrType$2.nil, 0, 0); - /* */ } return; } var $f = {$blk: FieldByNameFunc, $c: true, $r, $24r, _r, _r$1, _tuple, f, match, ok, v, $s};return $f; + if (ok) { + $s = -1; return $clone(v, Value).FieldByIndex(f.Index); + } + $s = -1; return new Value.ptr(ptrType$4.nil, 0, 0); + /* */ } return; } var $f = {$blk: FieldByNameFunc, $c: true, $r, _r, _tuple, f, match, ok, v, $s};return $f; }; Value.prototype.FieldByNameFunc = function(...$args) { return this.$val.FieldByNameFunc(...$args); }; $ptrType(Value).prototype.CanFloat = function CanFloat() { @@ -14013,7 +13735,7 @@ $packages["reflect"] = (function() { }; Value.prototype.IsValid = function(...$args) { return this.$val.IsValid(...$args); }; $ptrType(Value).prototype.IsZero = function IsZero() { - var {$24r, $24r$1, $24r$2, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, c, i, i$1, n, n$1, v, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {}); + var {$24r, $24r$1, _1, _r, _r$1, _r$2, _r$3, c, i, i$1, n, n$1, v, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: v = this; _1 = new flag(v.flag).kind(); @@ -14039,70 +13761,65 @@ $packages["reflect"] = (function() { c = $clone(v, Value).Complex(); $s = -1; return (x$3 = math.Float64bits(c.$real), (x$3.$high === 0 && x$3.$low === 0)) && (x$4 = math.Float64bits(c.$imag), (x$4.$high === 0 && x$4.$low === 0)); /* } else if (_1 === (17)) { */ case 7: - /* */ if (!(v.typ.equal === $throwNilPointerError) && v.typ.size <= 1024) { $s = 13; continue; } + /* */ if (!($clone(v, Value).typ().Equal === $throwNilPointerError) && $clone(v, Value).typ().Size() <= 1024) { $s = 13; continue; } /* */ $s = 14; continue; - /* if (!(v.typ.equal === $throwNilPointerError) && v.typ.size <= 1024) { */ case 13: + /* if (!($clone(v, Value).typ().Equal === $throwNilPointerError) && $clone(v, Value).typ().Size() <= 1024) { */ case 13: if (((v.flag & 128) >>> 0) === 0) { $s = -1; return v.ptr === 0; } - _r = v.typ.equal(v.ptr, ($sliceToNativeArray(new sliceType$4(zeroVal)))); /* */ $s = 15; case 15: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = $clone(v, Value).typ().Equal(noescape(v.ptr), ($sliceToNativeArray(new sliceType$2(zeroVal)))); /* */ $s = 15; case 15: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $24r = _r; $s = 16; case 16: return $24r; /* } */ case 14: - _r$1 = $clone(v, Value).Len(); /* */ $s = 17; case 17: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - n = _r$1; + n = $clone(v, Value).Len(); i = 0; - /* while (true) { */ case 18: - /* if (!(i < n)) { break; } */ if(!(i < n)) { $s = 19; continue; } - _r$2 = $clone(v, Value).Index(i); /* */ $s = 22; case 22: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = $clone(_r$2, Value).IsZero(); /* */ $s = 23; case 23: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (!_r$3) { $s = 20; continue; } - /* */ $s = 21; continue; - /* if (!_r$3) { */ case 20: + /* while (true) { */ case 17: + /* if (!(i < n)) { break; } */ if(!(i < n)) { $s = 18; continue; } + _r$1 = $clone($clone(v, Value).Index(i), Value).IsZero(); /* */ $s = 21; case 21: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (!_r$1) { */ case 19: $s = -1; return false; - /* } */ case 21: + /* } */ case 20: i = i + (1) >> 0; - $s = 18; continue; - case 19: + $s = 17; continue; + case 18: $s = -1; return true; /* } else if ((_1 === (18)) || (_1 === (19)) || (_1 === (20)) || (_1 === (21)) || (_1 === (22)) || (_1 === (23)) || (_1 === (26))) { */ case 8: $s = -1; return $clone(v, Value).IsNil(); /* } else if (_1 === (24)) { */ case 9: - _r$4 = $clone(v, Value).Len(); /* */ $s = 24; case 24: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $24r$1 = _r$4 === 0; - $s = 25; case 25: return $24r$1; + $s = -1; return $clone(v, Value).Len() === 0; /* } else if (_1 === (25)) { */ case 10: - /* */ if (!(v.typ.equal === $throwNilPointerError) && v.typ.size <= 1024) { $s = 26; continue; } - /* */ $s = 27; continue; - /* if (!(v.typ.equal === $throwNilPointerError) && v.typ.size <= 1024) { */ case 26: + /* */ if (!($clone(v, Value).typ().Equal === $throwNilPointerError) && $clone(v, Value).typ().Size() <= 1024) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (!($clone(v, Value).typ().Equal === $throwNilPointerError) && $clone(v, Value).typ().Size() <= 1024) { */ case 22: if (((v.flag & 128) >>> 0) === 0) { $s = -1; return v.ptr === 0; } - _r$5 = v.typ.equal(v.ptr, ($sliceToNativeArray(new sliceType$4(zeroVal)))); /* */ $s = 28; case 28: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - $24r$2 = _r$5; - $s = 29; case 29: return $24r$2; - /* } */ case 27: + _r$2 = $clone(v, Value).typ().Equal(noescape(v.ptr), ($sliceToNativeArray(new sliceType$2(zeroVal)))); /* */ $s = 24; case 24: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r$1 = _r$2; + $s = 25; case 25: return $24r$1; + /* } */ case 23: n$1 = $clone(v, Value).NumField(); i$1 = 0; - /* while (true) { */ case 30: - /* if (!(i$1 < n$1)) { break; } */ if(!(i$1 < n$1)) { $s = 31; continue; } - _r$6 = $clone(v, Value).Field(i$1); /* */ $s = 34; case 34: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _r$7 = $clone(_r$6, Value).IsZero(); /* */ $s = 35; case 35: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - /* */ if (!_r$7) { $s = 32; continue; } - /* */ $s = 33; continue; - /* if (!_r$7) { */ case 32: + /* while (true) { */ case 26: + /* if (!(i$1 < n$1)) { break; } */ if(!(i$1 < n$1)) { $s = 27; continue; } + _r$3 = $clone($clone(v, Value).Field(i$1), Value).IsZero(); /* */ $s = 30; case 30: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!_r$3) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (!_r$3) { */ case 28: $s = -1; return false; - /* } */ case 33: + /* } */ case 29: i$1 = i$1 + (1) >> 0; - $s = 30; continue; - case 31: + $s = 26; continue; + case 27: $s = -1; return true; /* } else { */ case 11: $panic(new ValueError.ptr("reflect.Value.IsZero", $clone(v, Value).Kind())); /* } */ case 12: case 1: $s = -1; return false; - /* */ } return; } var $f = {$blk: IsZero, $c: true, $r, $24r, $24r$1, $24r$2, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, c, i, i$1, n, n$1, v, x, x$1, x$2, x$3, x$4, $s};return $f; + /* */ } return; } var $f = {$blk: IsZero, $c: true, $r, $24r, $24r$1, _1, _r, _r$1, _r$2, _r$3, c, i, i$1, n, n$1, v, x, x$1, x$2, x$3, x$4, $s};return $f; }; Value.prototype.IsZero = function(...$args) { return this.$val.IsZero(...$args); }; $ptrType(Value).prototype.Kind = function Kind$1() { @@ -14112,105 +13829,96 @@ $packages["reflect"] = (function() { }; Value.prototype.Kind = function(...$args) { return this.$val.Kind(...$args); }; $ptrType(Value).prototype.MapIndex = function MapIndex(key) { - var {_r, e, fl, k, k$1, key, tt, typ, v, $s, $r, $c} = $restore(this, {key}); + var {_r, e, fl, k, k$1, key, tt, typ$1, v, $s, $r, $c} = $restore(this, {key}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: v = this; new flag(v.flag).mustBe(21); - tt = (v.typ.kindType); + tt = (toKindTypeExt($clone(v, Value).typ())); e = 0; - /* */ if ((tt.key === stringType || (new flag(key.flag).kind() === 24)) && tt.key === key.typ && tt.elem.size <= 128) { $s = 1; continue; } + /* */ if ((tt.MapType.Key === stringType || (new flag(key.flag).kind() === 24)) && tt.MapType.Key === $clone(key, Value).typ() && tt.MapType.Elem.Size() <= 128) { $s = 1; continue; } /* */ $s = 2; continue; - /* if ((tt.key === stringType || (new flag(key.flag).kind() === 24)) && tt.key === key.typ && tt.elem.size <= 128) { */ case 1: + /* if ((tt.MapType.Key === stringType || (new flag(key.flag).kind() === 24)) && tt.MapType.Key === $clone(key, Value).typ() && tt.MapType.Elem.Size() <= 128) { */ case 1: k = (key.ptr).$get(); - e = mapaccess_faststr(v.typ, $clone(v, Value).pointer(), k); + e = mapaccess_faststr($clone(v, Value).typ(), $clone(v, Value).pointer(), k); $s = 3; continue; /* } else { */ case 2: - _r = $clone(key, Value).assignTo("reflect.Value.MapIndex", tt.key, 0); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = $clone(key, Value).assignTo("reflect.Value.MapIndex", tt.MapType.Key, 0); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } key = _r; k$1 = 0; if (!((((key.flag & 128) >>> 0) === 0))) { k$1 = key.ptr; } else { - k$1 = ((key.$ptr_ptr || (key.$ptr_ptr = new ptrType$8(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, key)))); + k$1 = ((key.$ptr_ptr || (key.$ptr_ptr = new ptrType$6(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, key)))); } - e = mapaccess(v.typ, $clone(v, Value).pointer(), k$1); + e = mapaccess($clone(v, Value).typ(), $clone(v, Value).pointer(), k$1); /* } */ case 3: if (e === 0) { - $s = -1; return new Value.ptr(ptrType$2.nil, 0, 0); + $s = -1; return new Value.ptr(ptrType$4.nil, 0, 0); } - typ = tt.elem; + typ$1 = tt.MapType.Elem; fl = new flag((((v.flag | key.flag) >>> 0))).ro(); - fl = (fl | (((typ.Kind() >>> 0)))) >>> 0; - $s = -1; return copyVal(typ, fl, e); - /* */ } return; } var $f = {$blk: MapIndex, $c: true, $r, _r, e, fl, k, k$1, key, tt, typ, v, $s};return $f; + fl = (fl | (((typ$1.Kind() >>> 0)))) >>> 0; + $s = -1; return copyVal(typ$1, fl, e); + /* */ } return; } var $f = {$blk: MapIndex, $c: true, $r, _r, e, fl, k, k$1, key, tt, typ$1, v, $s};return $f; }; Value.prototype.MapIndex = function(...$args) { return this.$val.MapIndex(...$args); }; $ptrType(Value).prototype.MapKeys = function MapKeys() { - var {_r, a, fl, i, it, key, keyType, m, mlen, tt, v, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - it = [it]; + var a, fl, i, it, key, keyType, m, mlen, tt, v; v = this; new flag(v.flag).mustBe(21); - tt = (v.typ.kindType); - keyType = tt.key; + tt = (toKindTypeExt($clone(v, Value).typ())); + keyType = tt.MapType.Key; fl = (new flag(v.flag).ro() | ((keyType.Kind() >>> 0))) >>> 0; m = $clone(v, Value).pointer(); mlen = 0; if (!(m === 0)) { mlen = maplen(m); } - it[0] = new hiter.ptr($ifaceNil, null, null, 0, null); - mapiterinit(v.typ, m, it[0]); - a = $makeSlice(sliceType$10, mlen); + it = new hiter.ptr(ptrType$4.nil, null, null, 0, null); + mapiterinit($clone(v, Value).typ(), m, it); + a = $makeSlice(sliceType$8, mlen); i = 0; i = 0; - /* while (true) { */ case 1: - /* if (!(i < a.$length)) { break; } */ if(!(i < a.$length)) { $s = 2; continue; } - _r = mapiterkey(it[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - key = _r; + while (true) { + if (!(i < a.$length)) { break; } + key = mapiterkey(it); if (key === 0) { - /* break; */ $s = 2; continue; + break; } ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i] = copyVal(keyType, fl, key)); - mapiternext(it[0]); + mapiternext(it); i = i + (1) >> 0; - $s = 1; continue; - case 2: - $s = -1; return $subslice(a, 0, i); - /* */ } return; } var $f = {$blk: MapKeys, $c: true, $r, _r, a, fl, i, it, key, keyType, m, mlen, tt, v, $s};return $f; + } + return $subslice(a, 0, i); }; Value.prototype.MapKeys = function(...$args) { return this.$val.MapKeys(...$args); }; - $ptrType(hiter).prototype.initialized = function initialized$1() { + $ptrType(hiter).prototype.initialized = function initialized() { var h; h = this; - return !($interfaceIsEqual(h.t, $ifaceNil)); + return !(h.t === ptrType$4.nil); }; $ptrType(MapIter).prototype.Key = function Key() { - var {_r, iter, iterkey, ktype, t, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var iter, iterkey, ktype, t; iter = this; if (!iter.hiter.initialized()) { $panic(new $String("MapIter.Key called before Next")); } - _r = mapiterkey(iter.hiter); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - iterkey = _r; + iterkey = mapiterkey(iter.hiter); if (iterkey === 0) { $panic(new $String("MapIter.Key called on exhausted iterator")); } - t = (iter.m.typ.kindType); - ktype = t.key; - $s = -1; return copyVal(ktype, (new flag(iter.m.flag).ro() | ((ktype.Kind() >>> 0))) >>> 0, iterkey); - /* */ } return; } var $f = {$blk: Key, $c: true, $r, _r, iter, iterkey, ktype, t, $s};return $f; + t = (toKindTypeExt($clone(iter.m, Value).typ())); + ktype = t.MapType.Key; + return copyVal(ktype, (new flag(iter.m.flag).ro() | ((ktype.Kind() >>> 0))) >>> 0, iterkey); }; $ptrType(Value).prototype.SetIterKey = function SetIterKey(iter) { - var {_r, _r$1, iter, iterkey, key, ktype, t, target, v, $s, $r, $c} = $restore(this, {iter}); + var {_r, iter, iterkey, key, ktype, t, target, v, $s, $r, $c} = $restore(this, {iter}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: v = this; if (!iter.hiter.initialized()) { $panic(new $String("reflect: Value.SetIterKey called before Next")); } - _r = mapiterkey(iter.hiter); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - iterkey = _r; + iterkey = mapiterkey(iter.hiter); if (iterkey === 0) { $panic(new $String("reflect: Value.SetIterKey called on exhausted iterator")); } @@ -14219,43 +13927,39 @@ $packages["reflect"] = (function() { if (new flag(v.flag).kind() === 20) { target = v.ptr; } - t = (iter.m.typ.kindType); - ktype = t.key; + t = (toKindTypeExt($clone(iter.m, Value).typ())); + ktype = t.MapType.Key; new flag(iter.m.flag).mustBeExported(); key = new Value.ptr(ktype, iterkey, (((iter.m.flag | ((ktype.Kind() >>> 0))) >>> 0) | 128) >>> 0); - _r$1 = $clone(key, Value).assignTo("reflect.MapIter.SetKey", v.typ, target); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - key = _r$1; - typedmemmove(v.typ, v.ptr, key.ptr); + _r = $clone(key, Value).assignTo("reflect.MapIter.SetKey", $clone(v, Value).typ(), target); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + key = _r; + typedmemmove($clone(v, Value).typ(), v.ptr, key.ptr); $s = -1; return; - /* */ } return; } var $f = {$blk: SetIterKey, $c: true, $r, _r, _r$1, iter, iterkey, key, ktype, t, target, v, $s};return $f; + /* */ } return; } var $f = {$blk: SetIterKey, $c: true, $r, _r, iter, iterkey, key, ktype, t, target, v, $s};return $f; }; Value.prototype.SetIterKey = function(...$args) { return this.$val.SetIterKey(...$args); }; $ptrType(MapIter).prototype.Value = function Value$1() { - var {_r, iter, iterelem, t, vtype, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var iter, iterelem, t, vtype; iter = this; if (!iter.hiter.initialized()) { $panic(new $String("MapIter.Value called before Next")); } - _r = mapiterelem(iter.hiter); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - iterelem = _r; + iterelem = mapiterelem(iter.hiter); if (iterelem === 0) { $panic(new $String("MapIter.Value called on exhausted iterator")); } - t = (iter.m.typ.kindType); - vtype = t.elem; - $s = -1; return copyVal(vtype, (new flag(iter.m.flag).ro() | ((vtype.Kind() >>> 0))) >>> 0, iterelem); - /* */ } return; } var $f = {$blk: Value$1, $c: true, $r, _r, iter, iterelem, t, vtype, $s};return $f; + t = (toKindTypeExt($clone(iter.m, Value).typ())); + vtype = t.MapType.Elem; + return copyVal(vtype, (new flag(iter.m.flag).ro() | ((vtype.Kind() >>> 0))) >>> 0, iterelem); }; $ptrType(Value).prototype.SetIterValue = function SetIterValue(iter) { - var {_r, _r$1, elem, iter, iterelem, t, target, v, vtype, $s, $r, $c} = $restore(this, {iter}); + var {_r, elem$1, iter, iterelem, t, target, v, vtype, $s, $r, $c} = $restore(this, {iter}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: v = this; if (!iter.hiter.initialized()) { $panic(new $String("reflect: Value.SetIterValue called before Next")); } - _r = mapiterelem(iter.hiter); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - iterelem = _r; + iterelem = mapiterelem(iter.hiter); if (iterelem === 0) { $panic(new $String("reflect: Value.SetIterValue called on exhausted iterator")); } @@ -14264,42 +13968,32 @@ $packages["reflect"] = (function() { if (new flag(v.flag).kind() === 20) { target = v.ptr; } - t = (iter.m.typ.kindType); - vtype = t.elem; + t = (toKindTypeExt($clone(iter.m, Value).typ())); + vtype = t.MapType.Elem; new flag(iter.m.flag).mustBeExported(); - elem = new Value.ptr(vtype, iterelem, (((iter.m.flag | ((vtype.Kind() >>> 0))) >>> 0) | 128) >>> 0); - _r$1 = $clone(elem, Value).assignTo("reflect.MapIter.SetValue", v.typ, target); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - elem = _r$1; - typedmemmove(v.typ, v.ptr, elem.ptr); + elem$1 = new Value.ptr(vtype, iterelem, (((iter.m.flag | ((vtype.Kind() >>> 0))) >>> 0) | 128) >>> 0); + _r = $clone(elem$1, Value).assignTo("reflect.MapIter.SetValue", $clone(v, Value).typ(), target); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + elem$1 = _r; + typedmemmove($clone(v, Value).typ(), v.ptr, elem$1.ptr); $s = -1; return; - /* */ } return; } var $f = {$blk: SetIterValue, $c: true, $r, _r, _r$1, elem, iter, iterelem, t, target, v, vtype, $s};return $f; + /* */ } return; } var $f = {$blk: SetIterValue, $c: true, $r, _r, elem$1, iter, iterelem, t, target, v, vtype, $s};return $f; }; Value.prototype.SetIterValue = function(...$args) { return this.$val.SetIterValue(...$args); }; $ptrType(MapIter).prototype.Next = function Next() { - var {$24r, _r, _r$1, iter, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var iter; iter = this; if (!$clone(iter.m, Value).IsValid()) { $panic(new $String("MapIter.Next called on an iterator that does not have an associated map Value")); } - /* */ if (!iter.hiter.initialized()) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!iter.hiter.initialized()) { */ case 1: - mapiterinit(iter.m.typ, $clone(iter.m, Value).pointer(), iter.hiter); - $s = 3; continue; - /* } else { */ case 2: - _r = mapiterkey(iter.hiter); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - /* */ if (_r === 0) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_r === 0) { */ case 4: + if (!iter.hiter.initialized()) { + mapiterinit($clone(iter.m, Value).typ(), $clone(iter.m, Value).pointer(), iter.hiter); + } else { + if (mapiterkey(iter.hiter) === 0) { $panic(new $String("MapIter.Next called on exhausted iterator")); - /* } */ case 5: + } mapiternext(iter.hiter); - /* } */ case 3: - _r$1 = mapiterkey(iter.hiter); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = !(_r$1 === 0); - $s = 8; case 8: return $24r; - /* */ } return; } var $f = {$blk: Next, $c: true, $r, $24r, _r, _r$1, iter, $s};return $f; + } + return !(mapiterkey(iter.hiter) === 0); }; $ptrType(MapIter).prototype.Reset = function Reset(v) { var iter, v; @@ -14308,7 +14002,7 @@ $packages["reflect"] = (function() { new flag(v.flag).mustBe(21); } iter.m = v; - hiter.copy(iter.hiter, new hiter.ptr($ifaceNil, null, null, 0, null)); + hiter.copy(iter.hiter, new hiter.ptr(ptrType$4.nil, null, null, 0, null)); }; $ptrType(Value).prototype.MapRange = function MapRange() { var v; @@ -14316,7 +14010,7 @@ $packages["reflect"] = (function() { if (!((new flag(v.flag).kind() === 21))) { new flag(v.flag).panicNotMap(); } - return new MapIter.ptr($clone(v, Value), new hiter.ptr($ifaceNil, null, null, 0, null)); + return new MapIter.ptr($clone(v, Value), new hiter.ptr(ptrType$4.nil, null, null, 0, null)); }; Value.prototype.MapRange = function(...$args) { return this.$val.MapRange(...$args); }; flag.prototype.panicNotMap = function panicNotMap() { @@ -14325,72 +14019,72 @@ $packages["reflect"] = (function() { new flag(f).mustBe(21); }; $ptrType(flag).prototype.panicNotMap = function(...$args) { return new flag(this.$get()).panicNotMap(...$args); }; - copyVal = function copyVal$1(typ, fl, ptr) { - var c, fl, ptr, typ; - if (ifaceIndir(typ)) { - c = unsafe_New(typ); - typedmemmove(typ, c, ptr); - return new Value.ptr(typ, c, (fl | 128) >>> 0); + copyVal = function copyVal$1(typ$1, fl, ptr) { + var c, fl, ptr, typ$1; + if (typ$1.IfaceIndir()) { + c = unsafe_New(typ$1); + typedmemmove(typ$1, c, ptr); + return new Value.ptr(typ$1, c, (fl | 128) >>> 0); } - return new Value.ptr(typ, (ptr).$get(), fl); + return new Value.ptr(typ$1, (ptr).$get(), fl); }; $ptrType(Value).prototype.Method = function Method$1(i) { var fl, i, v; v = this; - if (v.typ === ptrType$2.nil) { + if ($clone(v, Value).typ() === ptrType$4.nil) { $panic(new ValueError.ptr("reflect.Value.Method", 0)); } - if (!((((v.flag & 512) >>> 0) === 0)) || ((i >>> 0)) >= ((v.typ.NumMethod() >>> 0))) { + if (!((((v.flag & 512) >>> 0) === 0)) || ((i >>> 0)) >= ((toRType($clone(v, Value).typ()).NumMethod() >>> 0))) { $panic(new $String("reflect: Method index out of range")); } - if ((v.typ.Kind() === 20) && $clone(v, Value).IsNil()) { + if (($clone(v, Value).typ().Kind() === 20) && $clone(v, Value).IsNil()) { $panic(new $String("reflect: Method on nil interface value")); } fl = (new flag(v.flag).ro() | (((v.flag & 128) >>> 0))) >>> 0; fl = (fl | (19)) >>> 0; fl = (fl | ((((((i >>> 0)) << 10 >>> 0) | 512) >>> 0))) >>> 0; - return new Value.ptr(v.typ, v.ptr, fl); + return new Value.ptr($clone(v, Value).typ(), v.ptr, fl); }; Value.prototype.Method = function(...$args) { return this.$val.Method(...$args); }; $ptrType(Value).prototype.NumMethod = function NumMethod() { var v; v = this; - if (v.typ === ptrType$2.nil) { + if ($clone(v, Value).typ() === ptrType$4.nil) { $panic(new ValueError.ptr("reflect.Value.NumMethod", 0)); } if (!((((v.flag & 512) >>> 0) === 0))) { return 0; } - return v.typ.NumMethod(); + return toRType($clone(v, Value).typ()).NumMethod(); }; Value.prototype.NumMethod = function(...$args) { return this.$val.NumMethod(...$args); }; - $ptrType(Value).prototype.MethodByName = function MethodByName(name$1) { - var {_r, _tuple, m, name$1, ok, v, $s, $r, $c} = $restore(this, {name$1}); + $ptrType(Value).prototype.MethodByName = function MethodByName(name) { + var {_r, _tuple, m, name, ok, v, $s, $r, $c} = $restore(this, {name}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: v = this; - if (v.typ === ptrType$2.nil) { + if ($clone(v, Value).typ() === ptrType$4.nil) { $panic(new ValueError.ptr("reflect.Value.MethodByName", 0)); } if (!((((v.flag & 512) >>> 0) === 0))) { - $s = -1; return new Value.ptr(ptrType$2.nil, 0, 0); + $s = -1; return new Value.ptr(ptrType$4.nil, 0, 0); } - _r = v.typ.MethodByName(name$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = toRType($clone(v, Value).typ()).MethodByName(name); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; m = $clone(_tuple[0], Method); ok = _tuple[1]; if (!ok) { - $s = -1; return new Value.ptr(ptrType$2.nil, 0, 0); + $s = -1; return new Value.ptr(ptrType$4.nil, 0, 0); } $s = -1; return $clone(v, Value).Method(m.Index); - /* */ } return; } var $f = {$blk: MethodByName, $c: true, $r, _r, _tuple, m, name$1, ok, v, $s};return $f; + /* */ } return; } var $f = {$blk: MethodByName, $c: true, $r, _r, _tuple, m, name, ok, v, $s};return $f; }; Value.prototype.MethodByName = function(...$args) { return this.$val.MethodByName(...$args); }; $ptrType(Value).prototype.NumField = function NumField() { var tt, v; v = this; new flag(v.flag).mustBe(25); - tt = (v.typ.kindType); - return tt.fields.$length; + tt = (toKindTypeExt($clone(v, Value).typ())); + return tt.StructType.Fields.$length; }; Value.prototype.NumField = function(...$args) { return this.$val.NumField(...$args); }; $ptrType(Value).prototype.OverflowComplex = function OverflowComplex(x) { @@ -14432,7 +14126,7 @@ $packages["reflect"] = (function() { k = new flag(v.flag).kind(); _1 = k; if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { - bitSize = $imul(v.typ.size, 8) >>> 0; + bitSize = $imul($clone(v, Value).typ().Size(), 8) >>> 0; trunc = $shiftRightInt64(($shiftLeft64(x, ((64 - bitSize >>> 0)))), ((64 - bitSize >>> 0))); return !((x.$high === trunc.$high && x.$low === trunc.$low)); } @@ -14445,7 +14139,7 @@ $packages["reflect"] = (function() { k = new flag(v.flag).kind(); _1 = k; if ((_1 === (7)) || (_1 === (12)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11))) { - bitSize = $imul(v.typ.size, 8) >>> 0; + bitSize = $imul(v.typ_.Size(), 8) >>> 0; trunc = $shiftRightUint64(($shiftLeft64(x, ((64 - bitSize >>> 0)))), ((64 - bitSize >>> 0))); return !((x.$high === trunc.$high && x.$low === trunc.$low)); } @@ -14455,7 +14149,7 @@ $packages["reflect"] = (function() { $ptrType(Value).prototype.Recv = function Recv() { var {$24r, _r, _tuple, ok, v, x, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = new Value.ptr(ptrType$2.nil, 0, 0); + x = new Value.ptr(ptrType$4.nil, 0, 0); ok = false; v = this; new flag(v.flag).mustBe(18); @@ -14472,14 +14166,14 @@ $packages["reflect"] = (function() { $ptrType(Value).prototype.recv = function recv(nb) { var {_r, _tuple, nb, ok, p, selected, t, tt, v, val, $s, $r, $c} = $restore(this, {nb}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - val = new Value.ptr(ptrType$2.nil, 0, 0); + val = new Value.ptr(ptrType$4.nil, 0, 0); ok = false; v = this; - tt = (v.typ.kindType); - if ((((tt.dir >> 0)) & 1) === 0) { + tt = ($clone(v, Value).typ().kindType); + if ((((tt.Dir >> 0)) & 1) === 0) { $panic(new $String("reflect: recv on send-only channel")); } - t = tt.elem; + t = tt.Elem; val = new Value.ptr(t, 0, ((t.Kind() >>> 0))); p = 0; if (ifaceIndir(t)) { @@ -14487,14 +14181,14 @@ $packages["reflect"] = (function() { val.ptr = p; val.flag = (val.flag | (128)) >>> 0; } else { - p = ((val.$ptr_ptr || (val.$ptr_ptr = new ptrType$8(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, val)))); + p = ((val.$ptr_ptr || (val.$ptr_ptr = new ptrType$6(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, val)))); } _r = chanrecv($clone(v, Value).pointer(), nb, p); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; selected = _tuple[0]; ok = _tuple[1]; if (!selected) { - val = new Value.ptr(ptrType$2.nil, 0, 0); + val = new Value.ptr(ptrType$4.nil, 0, 0); } $s = -1; return [val, ok]; /* */ } return; } var $f = {$blk: recv, $c: true, $r, _r, _tuple, nb, ok, p, selected, t, tt, v, val, $s};return $f; @@ -14517,18 +14211,18 @@ $packages["reflect"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: selected = false; v = this; - tt = (v.typ.kindType); - if ((((tt.dir >> 0)) & 2) === 0) { + tt = ($clone(v, Value).typ().kindType); + if ((((tt.Dir >> 0)) & 2) === 0) { $panic(new $String("reflect: send on recv-only channel")); } new flag(x.flag).mustBeExported(); - _r = $clone(x, Value).assignTo("reflect.Value.Send", tt.elem, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = $clone(x, Value).assignTo("reflect.Value.Send", tt.Elem, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } x = _r; p = 0; if (!((((x.flag & 128) >>> 0) === 0))) { p = x.ptr; } else { - p = ((x.$ptr_ptr || (x.$ptr_ptr = new ptrType$8(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, x)))); + p = ((x.$ptr_ptr || (x.$ptr_ptr = new ptrType$6(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, x)))); } _r$1 = chansend($clone(v, Value).pointer(), p, nb); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } selected = _r$1; @@ -14546,20 +14240,14 @@ $packages["reflect"] = (function() { }; Value.prototype.SetBool = function(...$args) { return this.$val.SetBool(...$args); }; $ptrType(Value).prototype.setRunes = function setRunes(x) { - var {_r, v, x, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var v, x; v = this; new flag(v.flag).mustBeAssignable(); new flag(v.flag).mustBe(23); - _r = v.typ.Elem().Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - /* */ if (!((_r === 5))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!((_r === 5))) { */ case 1: + if (!(($clone(v, Value).typ().Elem().Kind() === 5))) { $panic(new $String("reflect.Value.setRunes of non-rune slice")); - /* } */ case 2: + } (v.ptr).$set(x); - $s = -1; return; - /* */ } return; } var $f = {$blk: setRunes, $c: true, $r, _r, v, x, $s};return $f; }; Value.prototype.setRunes = function(...$args) { return this.$val.setRunes(...$args); }; $ptrType(Value).prototype.SetComplex = function SetComplex(x) { @@ -14613,58 +14301,58 @@ $packages["reflect"] = (function() { } }; Value.prototype.SetInt = function(...$args) { return this.$val.SetInt(...$args); }; - $ptrType(Value).prototype.SetMapIndex = function SetMapIndex(key, elem) { - var {_r, _r$1, _r$2, e, e$1, elem, k, k$1, key, tt, v, $s, $r, $c} = $restore(this, {key, elem}); + $ptrType(Value).prototype.SetMapIndex = function SetMapIndex(key, elem$1) { + var {_r, _r$1, _r$2, e, e$1, elem$1, k, k$1, key, tt, v, $s, $r, $c} = $restore(this, {key, elem$1}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: v = this; new flag(v.flag).mustBe(21); new flag(v.flag).mustBeExported(); new flag(key.flag).mustBeExported(); - tt = (v.typ.kindType); - /* */ if ((tt.key === stringType || (new flag(key.flag).kind() === 24)) && tt.key === key.typ && tt.elem.size <= 128) { $s = 1; continue; } + tt = (toKindTypeExt($clone(v, Value).typ())); + /* */ if ((tt.MapType.Key === stringType || (new flag(key.flag).kind() === 24)) && tt.MapType.Key === $clone(key, Value).typ() && tt.MapType.Elem.Size() <= 128) { $s = 1; continue; } /* */ $s = 2; continue; - /* if ((tt.key === stringType || (new flag(key.flag).kind() === 24)) && tt.key === key.typ && tt.elem.size <= 128) { */ case 1: + /* if ((tt.MapType.Key === stringType || (new flag(key.flag).kind() === 24)) && tt.MapType.Key === $clone(key, Value).typ() && tt.MapType.Elem.Size() <= 128) { */ case 1: k = (key.ptr).$get(); - if (elem.typ === ptrType$2.nil) { - mapdelete_faststr(v.typ, $clone(v, Value).pointer(), k); + if ($clone(elem$1, Value).typ() === ptrType$4.nil) { + mapdelete_faststr($clone(v, Value).typ(), $clone(v, Value).pointer(), k); $s = -1; return; } - new flag(elem.flag).mustBeExported(); - _r = $clone(elem, Value).assignTo("reflect.Value.SetMapIndex", tt.elem, 0); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - elem = _r; + new flag(elem$1.flag).mustBeExported(); + _r = $clone(elem$1, Value).assignTo("reflect.Value.SetMapIndex", tt.MapType.Elem, 0); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + elem$1 = _r; e = 0; - if (!((((elem.flag & 128) >>> 0) === 0))) { - e = elem.ptr; + if (!((((elem$1.flag & 128) >>> 0) === 0))) { + e = elem$1.ptr; } else { - e = ((elem.$ptr_ptr || (elem.$ptr_ptr = new ptrType$8(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, elem)))); + e = ((elem$1.$ptr_ptr || (elem$1.$ptr_ptr = new ptrType$6(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, elem$1)))); } - $r = mapassign_faststr(v.typ, $clone(v, Value).pointer(), k, e); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + mapassign_faststr($clone(v, Value).typ(), $clone(v, Value).pointer(), k, e); $s = -1; return; /* } */ case 2: - _r$1 = $clone(key, Value).assignTo("reflect.Value.SetMapIndex", tt.key, 0); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1 = $clone(key, Value).assignTo("reflect.Value.SetMapIndex", tt.MapType.Key, 0); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } key = _r$1; k$1 = 0; if (!((((key.flag & 128) >>> 0) === 0))) { k$1 = key.ptr; } else { - k$1 = ((key.$ptr_ptr || (key.$ptr_ptr = new ptrType$8(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, key)))); + k$1 = ((key.$ptr_ptr || (key.$ptr_ptr = new ptrType$6(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, key)))); } - if (elem.typ === ptrType$2.nil) { - mapdelete(v.typ, $clone(v, Value).pointer(), k$1); + if ($clone(elem$1, Value).typ() === ptrType$4.nil) { + mapdelete($clone(v, Value).typ(), $clone(v, Value).pointer(), k$1); $s = -1; return; } - new flag(elem.flag).mustBeExported(); - _r$2 = $clone(elem, Value).assignTo("reflect.Value.SetMapIndex", tt.elem, 0); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - elem = _r$2; + new flag(elem$1.flag).mustBeExported(); + _r$2 = $clone(elem$1, Value).assignTo("reflect.Value.SetMapIndex", tt.MapType.Elem, 0); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + elem$1 = _r$2; e$1 = 0; - if (!((((elem.flag & 128) >>> 0) === 0))) { - e$1 = elem.ptr; + if (!((((elem$1.flag & 128) >>> 0) === 0))) { + e$1 = elem$1.ptr; } else { - e$1 = ((elem.$ptr_ptr || (elem.$ptr_ptr = new ptrType$8(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, elem)))); + e$1 = ((elem$1.$ptr_ptr || (elem$1.$ptr_ptr = new ptrType$6(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, elem$1)))); } - $r = mapassign(v.typ, $clone(v, Value).pointer(), k$1, e$1); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + mapassign($clone(v, Value).typ(), $clone(v, Value).pointer(), k$1, e$1); $s = -1; return; - /* */ } return; } var $f = {$blk: SetMapIndex, $c: true, $r, _r, _r$1, _r$2, e, e$1, elem, k, k$1, key, tt, v, $s};return $f; + /* */ } return; } var $f = {$blk: SetMapIndex, $c: true, $r, _r, _r$1, _r$2, e, e$1, elem$1, k, k$1, key, tt, v, $s};return $f; }; Value.prototype.SetMapIndex = function(...$args) { return this.$val.SetMapIndex(...$args); }; $ptrType(Value).prototype.SetUint = function SetUint(x) { @@ -14735,7 +14423,7 @@ $packages["reflect"] = (function() { $ptrType(Value).prototype.TryRecv = function TryRecv() { var {$24r, _r, _tuple, ok, v, x, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = new Value.ptr(ptrType$2.nil, 0, 0); + x = new Value.ptr(ptrType$4.nil, 0, 0); ok = false; v = this; new flag(v.flag).mustBe(18); @@ -14761,39 +14449,31 @@ $packages["reflect"] = (function() { /* */ } return; } var $f = {$blk: TrySend, $c: true, $r, $24r, _r, v, x, $s};return $f; }; Value.prototype.TrySend = function(...$args) { return this.$val.TrySend(...$args); }; - $ptrType(Value).prototype.Type = function Type$1() { - var v; - v = this; - if (!((v.flag === 0)) && (((v.flag & 512) >>> 0) === 0)) { - return v.typ; - } - return $clone(v, Value).typeSlow(); - }; - Value.prototype.Type = function(...$args) { return this.$val.Type(...$args); }; $ptrType(Value).prototype.typeSlow = function typeSlow() { - var i, m, m$1, ms, tt, v, x; + var i, m, m$1, ms, tt, typ$1, v, x; v = this; if (v.flag === 0) { $panic(new ValueError.ptr("reflect.Value.Type", 0)); } + typ$1 = $clone(v, Value).typ(); if (((v.flag & 512) >>> 0) === 0) { - return v.typ; + return toRType($clone(v, Value).typ()); } i = ((v.flag >> 0)) >> 10 >> 0; - if (v.typ.Kind() === 20) { - tt = (v.typ.kindType); - if (((i >>> 0)) >= ((tt.methods.$length >>> 0))) { + if ($clone(v, Value).typ().Kind() === 20) { + tt = (toKindTypeExt(typ$1)); + if (((i >>> 0)) >= ((tt.InterfaceType.Methods.$length >>> 0))) { $panic(new $String("reflect: internal error: invalid method index")); } - m = (x = tt.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - return v.typ.typeOff(m.typ); + m = (x = tt.InterfaceType.Methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + i, ptrType$7))); + return toRType(typeOffFor(typ$1, m.Typ)); } - ms = v.typ.exportedMethods(); + ms = typ$1.ExportedMethods(); if (((i >>> 0)) >= ((ms.$length >>> 0))) { $panic(new $String("reflect: internal error: invalid method index")); } - m$1 = $clone(((i < 0 || i >= ms.$length) ? ($throwRuntimeError("index out of range"), undefined) : ms.$array[ms.$offset + i]), method); - return v.typ.typeOff(m$1.mtyp); + m$1 = $clone(((i < 0 || i >= ms.$length) ? ($throwRuntimeError("index out of range"), undefined) : ms.$array[ms.$offset + i]), abi.Method); + return toRType(typeOffFor(typ$1, m$1.Mtyp)); }; Value.prototype.typeSlow = function(...$args) { return this.$val.typeSlow(...$args); }; $ptrType(Value).prototype.CanUint = function CanUint() { @@ -14832,12 +14512,13 @@ $packages["reflect"] = (function() { $ptrType(Value).prototype.UnsafeAddr = function UnsafeAddr() { var v; v = this; - if (v.typ === ptrType$2.nil) { + if ($clone(v, Value).typ() === ptrType$4.nil) { $panic(new ValueError.ptr("reflect.Value.UnsafeAddr", 0)); } if (((v.flag & 256) >>> 0) === 0) { $panic(new $String("reflect.Value.UnsafeAddr of unaddressable value")); } + escapes(new $UnsafePointer(v.ptr)); return (v.ptr); }; Value.prototype.UnsafeAddr = function(...$args) { return this.$val.UnsafeAddr(...$args); }; @@ -14862,63 +14543,37 @@ $packages["reflect"] = (function() { $clone(v, Value).grow(n); }; Value.prototype.Grow = function(...$args) { return this.$val.Grow(...$args); }; - Append = function Append$1(s, x) { - var {_i, _r, _r$1, _r$2, _ref, i, n, s, v, x, $s, $r, $c} = $restore(this, {s, x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - new flag(s.flag).mustBe(23); - _r = $clone(s, Value).Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - n = _r; - _r$1 = $clone(s, Value).extendSlice(x.$length); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - s = _r$1; - _ref = x; - _i = 0; - /* while (true) { */ case 3: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } - i = _i; - v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$2 = $clone(s, Value).Index(n + i >> 0); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $r = $clone(_r$2, Value).Set($clone(v, Value)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 3; continue; - case 4: - $s = -1; return s; - /* */ } return; } var $f = {$blk: Append$1, $c: true, $r, _i, _r, _r$1, _r$2, _ref, i, n, s, v, x, $s};return $f; - }; - $pkg.Append = Append; - MakeMap = function MakeMap$1(typ) { - var {$24r, _r, typ, $s, $r, $c} = $restore(this, {typ}); + MakeMap = function MakeMap$1(typ$1) { + var {$24r, _r, typ$1, $s, $r, $c} = $restore(this, {typ$1}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = MakeMapWithSize(typ, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = MakeMapWithSize(typ$1, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $24r = _r; $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: MakeMap$1, $c: true, $r, $24r, _r, typ, $s};return $f; + /* */ } return; } var $f = {$blk: MakeMap$1, $c: true, $r, $24r, _r, typ$1, $s};return $f; }; $pkg.MakeMap = MakeMap; - MakeMapWithSize = function MakeMapWithSize$1(typ, n) { - var {_r, m, n, t, typ, $s, $r, $c} = $restore(this, {typ, n}); + MakeMapWithSize = function MakeMapWithSize$1(typ$1, n) { + var {_r, _r$1, m, n, t, typ$1, $s, $r, $c} = $restore(this, {typ$1, n}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = typ.Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = typ$1.Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (!((_r === 21))) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!((_r === 21))) { */ case 1: $panic(new $String("reflect.MakeMapWithSize of non-map type")); /* } */ case 2: - t = $assertType(typ, ptrType$2); + _r$1 = typ$1.common(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + t = _r$1; m = makemap(t, n); $s = -1; return new Value.ptr(t, m, 21); - /* */ } return; } var $f = {$blk: MakeMapWithSize$1, $c: true, $r, _r, m, n, t, typ, $s};return $f; + /* */ } return; } var $f = {$blk: MakeMapWithSize$1, $c: true, $r, _r, _r$1, m, n, t, typ$1, $s};return $f; }; $pkg.MakeMapWithSize = MakeMapWithSize; Indirect = function Indirect$1(v) { - var {$24r, _r, v, $s, $r, $c} = $restore(this, {v}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var v; if (!(($clone(v, Value).Kind() === 22))) { - $s = -1; return v; + return v; } - _r = $clone(v, Value).Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Indirect$1, $c: true, $r, $24r, _r, v, $s};return $f; + return $clone(v, Value).Elem(); }; $pkg.Indirect = Indirect; $ptrType(Value).prototype.Convert = function Convert(t) { @@ -14932,13 +14587,13 @@ $packages["reflect"] = (function() { v = _r; /* } */ case 2: _r$1 = t.common(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = convertOp(_r$1, v.typ); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2 = convertOp(_r$1, $clone(v, Value).typ()); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } op = _r$2; /* */ if (op === $throwNilPointerError) { $s = 6; continue; } /* */ $s = 7; continue; /* if (op === $throwNilPointerError) { */ case 6: _r$3 = t.String(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $panic(new $String("reflect.Value.Convert: value of type " + v.typ.String() + " cannot be converted to type " + _r$3)); + $panic(new $String("reflect.Value.Convert: value of type " + stringFor($clone(v, Value).typ()) + " cannot be converted to type " + _r$3)); /* } */ case 7: _r$4 = op($clone(v, Value), t); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } $24r = _r$4; @@ -14947,7 +14602,7 @@ $packages["reflect"] = (function() { }; Value.prototype.Convert = function(...$args) { return this.$val.Convert(...$args); }; $ptrType(Value).prototype.CanConvert = function CanConvert(t) { - var {_r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _v, _v$1, _v$2, n, t, v, vt, $s, $r, $c} = $restore(this, {t}); + var {_r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _v, _v$1, _v$2, n, t, v, vt, $s, $r, $c} = $restore(this, {t}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: v = this; vt = $clone(v, Value).Type(); @@ -14974,31 +14629,27 @@ $packages["reflect"] = (function() { /* */ $s = 7; continue; /* if (_v) { */ case 5: _r$7 = t.Len(); /* */ $s = 19; case 19: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _r$8 = $clone(v, Value).Len(); /* */ $s = 20; case 20: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - /* */ if (_r$7 > _r$8) { $s = 17; continue; } + /* */ if (_r$7 > $clone(v, Value).Len()) { $s = 17; continue; } /* */ $s = 18; continue; - /* if (_r$7 > _r$8) { */ case 17: + /* if (_r$7 > $clone(v, Value).Len()) { */ case 17: $s = -1; return false; /* } */ case 18: $s = 7; continue; /* } else if (_v$1) { */ case 6: - _r$9 = t.Elem(); /* */ $s = 21; case 21: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _r$10 = _r$9.Len(); /* */ $s = 22; case 22: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - n = _r$10; - _r$11 = $clone(v, Value).Len(); /* */ $s = 25; case 25: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - /* */ if (n > _r$11) { $s = 23; continue; } - /* */ $s = 24; continue; - /* if (n > _r$11) { */ case 23: + _r$8 = t.Elem(); /* */ $s = 20; case 20: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$9 = _r$8.Len(); /* */ $s = 21; case 21: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + n = _r$9; + if (n > $clone(v, Value).Len()) { $s = -1; return false; - /* } */ case 24: + } /* } */ case 7: case 4: $s = -1; return true; - /* */ } return; } var $f = {$blk: CanConvert, $c: true, $r, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _v, _v$1, _v$2, n, t, v, vt, $s};return $f; + /* */ } return; } var $f = {$blk: CanConvert, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _v, _v$1, _v$2, n, t, v, vt, $s};return $f; }; Value.prototype.CanConvert = function(...$args) { return this.$val.CanConvert(...$args); }; $ptrType(Value).prototype.Comparable = function Comparable() { - var {$24r, $24r$1, $24r$2, _1, _2, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, i, i$1, k, v, $s, $r, $c} = $restore(this, {}); + var {$24r, $24r$1, $24r$2, _1, _2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, i, i$1, k, v, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: v = this; k = $clone(v, Value).Kind(); @@ -15021,11 +14672,10 @@ $packages["reflect"] = (function() { /* while (true) { */ case 13: _r$2 = $clone(v, Value).Type().Len(); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } /* if (!(i < _r$2)) { break; } */ if(!(i < _r$2)) { $s = 14; continue; } - _r$3 = $clone(v, Value).Index(i); /* */ $s = 18; case 18: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$4 = $clone(_r$3, Value).Comparable(); /* */ $s = 19; case 19: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if (!_r$4) { $s = 16; continue; } + _r$3 = $clone($clone(v, Value).Index(i), Value).Comparable(); /* */ $s = 18; case 18: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!_r$3) { $s = 16; continue; } /* */ $s = 17; continue; - /* if (!_r$4) { */ case 16: + /* if (!_r$3) { */ case 16: $s = -1; return false; /* } */ case 17: i = i + (1) >> 0; @@ -15034,55 +14684,47 @@ $packages["reflect"] = (function() { $s = -1; return true; /* } */ case 12: case 8: - _r$5 = $clone(v, Value).Type().Comparable(); /* */ $s = 20; case 20: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - $24r = _r$5; - $s = 21; case 21: return $24r; + _r$4 = $clone(v, Value).Type().Comparable(); /* */ $s = 19; case 19: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r = _r$4; + $s = 20; case 20: return $24r; /* } else if (_1 === (20)) { */ case 4: - _r$6 = $clone(v, Value).Elem(); /* */ $s = 22; case 22: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _r$7 = $clone(_r$6, Value).Comparable(); /* */ $s = 23; case 23: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - $24r$1 = _r$7; - $s = 24; case 24: return $24r$1; + _r$5 = $clone($clone(v, Value).Elem(), Value).Comparable(); /* */ $s = 21; case 21: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $24r$1 = _r$5; + $s = 22; case 22: return $24r$1; /* } else if (_1 === (25)) { */ case 5: i$1 = 0; - /* while (true) { */ case 25: - /* if (!(i$1 < $clone(v, Value).NumField())) { break; } */ if(!(i$1 < $clone(v, Value).NumField())) { $s = 26; continue; } - _r$8 = $clone(v, Value).Field(i$1); /* */ $s = 29; case 29: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _r$9 = $clone(_r$8, Value).Comparable(); /* */ $s = 30; case 30: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - /* */ if (!_r$9) { $s = 27; continue; } - /* */ $s = 28; continue; - /* if (!_r$9) { */ case 27: + /* while (true) { */ case 23: + /* if (!(i$1 < $clone(v, Value).NumField())) { break; } */ if(!(i$1 < $clone(v, Value).NumField())) { $s = 24; continue; } + _r$6 = $clone($clone(v, Value).Field(i$1), Value).Comparable(); /* */ $s = 27; case 27: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + /* */ if (!_r$6) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (!_r$6) { */ case 25: $s = -1; return false; - /* } */ case 28: + /* } */ case 26: i$1 = i$1 + (1) >> 0; - $s = 25; continue; - case 26: + $s = 23; continue; + case 24: $s = -1; return true; /* } else { */ case 6: - _r$10 = $clone(v, Value).Type().Comparable(); /* */ $s = 31; case 31: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - $24r$2 = _r$10; - $s = 32; case 32: return $24r$2; + _r$7 = $clone(v, Value).Type().Comparable(); /* */ $s = 28; case 28: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $24r$2 = _r$7; + $s = 29; case 29: return $24r$2; /* } */ case 7: case 1: $s = -1; return false; - /* */ } return; } var $f = {$blk: Comparable, $c: true, $r, $24r, $24r$1, $24r$2, _1, _2, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, i, i$1, k, v, $s};return $f; + /* */ } return; } var $f = {$blk: Comparable, $c: true, $r, $24r, $24r$1, $24r$2, _1, _2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, i, i$1, k, v, $s};return $f; }; Value.prototype.Comparable = function(...$args) { return this.$val.Comparable(...$args); }; $ptrType(Value).prototype.Equal = function Equal(u) { - var {$24r, _1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, i, i$1, nf, u, v, vl, x, x$1, x$2, x$3, x$4, x$5, $s, $r, $c} = $restore(this, {u}); + var {$24r, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, i, i$1, nf, u, v, vl, x, x$1, x$2, x$3, x$4, x$5, $s, $r, $c} = $restore(this, {u}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: v = this; - /* */ if ($clone(v, Value).Kind() === 20) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if ($clone(v, Value).Kind() === 20) { */ case 1: - _r = $clone(v, Value).Elem(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - v = _r; - /* } */ case 2: - /* */ if ($clone(u, Value).Kind() === 20) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if ($clone(u, Value).Kind() === 20) { */ case 4: - _r$1 = $clone(u, Value).Elem(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - u = _r$1; - /* } */ case 5: + if ($clone(v, Value).Kind() === 20) { + v = $clone(v, Value).Elem(); + } + if ($clone(u, Value).Kind() === 20) { + u = $clone(u, Value).Elem(); + } if (!$clone(v, Value).IsValid() || !$clone(u, Value).IsValid()) { $s = -1; return $clone(v, Value).IsValid() === $clone(u, Value).IsValid(); } @@ -15090,297 +14732,229 @@ $packages["reflect"] = (function() { $s = -1; return false; } _1 = $clone(v, Value).Kind(); - /* */ if (_1 === (1)) { $s = 8; continue; } - /* */ if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { $s = 9; continue; } - /* */ if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { $s = 10; continue; } - /* */ if ((_1 === (13)) || (_1 === (14))) { $s = 11; continue; } - /* */ if ((_1 === (15)) || (_1 === (16))) { $s = 12; continue; } - /* */ if (_1 === (24)) { $s = 13; continue; } - /* */ if ((_1 === (18)) || (_1 === (22)) || (_1 === (26))) { $s = 14; continue; } - /* */ if (_1 === (17)) { $s = 15; continue; } - /* */ if (_1 === (25)) { $s = 16; continue; } - /* */ if ((_1 === (19)) || (_1 === (21)) || (_1 === (23))) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (_1 === (1)) { */ case 8: + /* */ if (_1 === (1)) { $s = 2; continue; } + /* */ if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { $s = 3; continue; } + /* */ if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { $s = 4; continue; } + /* */ if ((_1 === (13)) || (_1 === (14))) { $s = 5; continue; } + /* */ if ((_1 === (15)) || (_1 === (16))) { $s = 6; continue; } + /* */ if (_1 === (24)) { $s = 7; continue; } + /* */ if ((_1 === (18)) || (_1 === (22)) || (_1 === (26))) { $s = 8; continue; } + /* */ if (_1 === (17)) { $s = 9; continue; } + /* */ if (_1 === (25)) { $s = 10; continue; } + /* */ if ((_1 === (19)) || (_1 === (21)) || (_1 === (23))) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (_1 === (1)) { */ case 2: $s = -1; return $clone(v, Value).Bool() === $clone(u, Value).Bool(); - /* } else if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { */ case 9: + /* } else if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { */ case 3: $s = -1; return (x = $clone(v, Value).Int(), x$1 = $clone(u, Value).Int(), (x.$high === x$1.$high && x.$low === x$1.$low)); - /* } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { */ case 10: + /* } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { */ case 4: $s = -1; return (x$2 = $clone(v, Value).Uint(), x$3 = $clone(u, Value).Uint(), (x$2.$high === x$3.$high && x$2.$low === x$3.$low)); - /* } else if ((_1 === (13)) || (_1 === (14))) { */ case 11: + /* } else if ((_1 === (13)) || (_1 === (14))) { */ case 5: $s = -1; return $clone(v, Value).Float() === $clone(u, Value).Float(); - /* } else if ((_1 === (15)) || (_1 === (16))) { */ case 12: + /* } else if ((_1 === (15)) || (_1 === (16))) { */ case 6: $s = -1; return (x$4 = $clone(v, Value).Complex(), x$5 = $clone(u, Value).Complex(), (x$4.$real === x$5.$real && x$4.$imag === x$5.$imag)); - /* } else if (_1 === (24)) { */ case 13: - _r$2 = $clone(v, Value).String(); /* */ $s = 20; case 20: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = $clone(u, Value).String(); /* */ $s = 21; case 21: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r = _r$2 === _r$3; - $s = 22; case 22: return $24r; - /* } else if ((_1 === (18)) || (_1 === (22)) || (_1 === (26))) { */ case 14: + /* } else if (_1 === (24)) { */ case 7: + _r = $clone(v, Value).String(); /* */ $s = 14; case 14: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = $clone(u, Value).String(); /* */ $s = 15; case 15: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r === _r$1; + $s = 16; case 16: return $24r; + /* } else if ((_1 === (18)) || (_1 === (22)) || (_1 === (26))) { */ case 8: $s = -1; return $clone(v, Value).Pointer() === $clone(u, Value).Pointer(); - /* } else if (_1 === (17)) { */ case 15: - _r$4 = $clone(v, Value).Len(); /* */ $s = 23; case 23: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - vl = _r$4; - /* */ if (vl === 0) { $s = 24; continue; } - /* */ $s = 25; continue; - /* if (vl === 0) { */ case 24: - _r$5 = $clone(v, Value).Type().Elem(); /* */ $s = 28; case 28: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$6 = _r$5.Comparable(); /* */ $s = 29; case 29: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - /* */ if (!_r$6) { $s = 26; continue; } - /* */ $s = 27; continue; - /* if (!_r$6) { */ case 26: - /* break; */ $s = 7; continue; - /* } */ case 27: + /* } else if (_1 === (17)) { */ case 9: + vl = $clone(v, Value).Len(); + /* */ if (vl === 0) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (vl === 0) { */ case 17: + _r$2 = $clone(v, Value).Type().Elem(); /* */ $s = 21; case 21: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = _r$2.Comparable(); /* */ $s = 22; case 22: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!_r$3) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (!_r$3) { */ case 19: + /* break; */ $s = 1; continue; + /* } */ case 20: $s = -1; return true; - /* } */ case 25: + /* } */ case 18: i = 0; - /* while (true) { */ case 30: - /* if (!(i < vl)) { break; } */ if(!(i < vl)) { $s = 31; continue; } - _r$7 = $clone(v, Value).Index(i); /* */ $s = 34; case 34: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _r$8 = $clone(u, Value).Index(i); /* */ $s = 35; case 35: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _r$9 = $clone(_r$7, Value).Equal($clone(_r$8, Value)); /* */ $s = 36; case 36: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - /* */ if (!_r$9) { $s = 32; continue; } - /* */ $s = 33; continue; - /* if (!_r$9) { */ case 32: + /* while (true) { */ case 23: + /* if (!(i < vl)) { break; } */ if(!(i < vl)) { $s = 24; continue; } + _r$4 = $clone($clone(v, Value).Index(i), Value).Equal($clone($clone(u, Value).Index(i), Value)); /* */ $s = 27; case 27: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (!_r$4) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (!_r$4) { */ case 25: $s = -1; return false; - /* } */ case 33: + /* } */ case 26: i = i + (1) >> 0; - $s = 30; continue; - case 31: + $s = 23; continue; + case 24: $s = -1; return true; - /* } else if (_1 === (25)) { */ case 16: + /* } else if (_1 === (25)) { */ case 10: nf = $clone(v, Value).NumField(); i$1 = 0; - /* while (true) { */ case 37: - /* if (!(i$1 < nf)) { break; } */ if(!(i$1 < nf)) { $s = 38; continue; } - _r$10 = $clone(v, Value).Field(i$1); /* */ $s = 41; case 41: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _r$11 = $clone(u, Value).Field(i$1); /* */ $s = 42; case 42: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _r$12 = $clone(_r$10, Value).Equal($clone(_r$11, Value)); /* */ $s = 43; case 43: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - /* */ if (!_r$12) { $s = 39; continue; } - /* */ $s = 40; continue; - /* if (!_r$12) { */ case 39: + /* while (true) { */ case 28: + /* if (!(i$1 < nf)) { break; } */ if(!(i$1 < nf)) { $s = 29; continue; } + _r$5 = $clone($clone(v, Value).Field(i$1), Value).Equal($clone($clone(u, Value).Field(i$1), Value)); /* */ $s = 32; case 32: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (!_r$5) { $s = 30; continue; } + /* */ $s = 31; continue; + /* if (!_r$5) { */ case 30: $s = -1; return false; - /* } */ case 40: + /* } */ case 31: i$1 = i$1 + (1) >> 0; - $s = 37; continue; - case 38: + $s = 28; continue; + case 29: $s = -1; return true; - /* } else if ((_1 === (19)) || (_1 === (21)) || (_1 === (23))) { */ case 17: - /* break; */ $s = 7; continue; - $s = 19; continue; - /* } else { */ case 18: + /* } else if ((_1 === (19)) || (_1 === (21)) || (_1 === (23))) { */ case 11: + /* break; */ $s = 1; continue; + $s = 13; continue; + /* } else { */ case 12: $panic(new $String("reflect.Value.Equal: invalid Kind")); - /* } */ case 19: - case 7: - _r$13 = $clone(v, Value).Type().String(); /* */ $s = 44; case 44: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - $panic(new $String("reflect.Value.Equal: values of type " + _r$13 + " are not comparable")); + /* } */ case 13: + case 1: + _r$6 = $clone(v, Value).Type().String(); /* */ $s = 33; case 33: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $panic(new $String("reflect.Value.Equal: values of type " + _r$6 + " are not comparable")); $s = -1; return false; - /* */ } return; } var $f = {$blk: Equal, $c: true, $r, $24r, _1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, i, i$1, nf, u, v, vl, x, x$1, x$2, x$3, x$4, x$5, $s};return $f; + /* */ } return; } var $f = {$blk: Equal, $c: true, $r, $24r, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, i, i$1, nf, u, v, vl, x, x$1, x$2, x$3, x$4, x$5, $s};return $f; }; Value.prototype.Equal = function(...$args) { return this.$val.Equal(...$args); }; convertOp = function convertOp$1(dst, src) { - var {_1, _2, _3, _4, _5, _6, _7, _arg, _arg$1, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _v, _v$1, _v$2, _v$3, _v$4, _v$5, dst, src, $s, $r, $c} = $restore(this, {dst, src}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _1 = src.Kind(); - /* */ if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { $s = 2; continue; } - /* */ if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { $s = 3; continue; } - /* */ if ((_1 === (13)) || (_1 === (14))) { $s = 4; continue; } - /* */ if ((_1 === (15)) || (_1 === (16))) { $s = 5; continue; } - /* */ if (_1 === (24)) { $s = 6; continue; } - /* */ if (_1 === (23)) { $s = 7; continue; } - /* */ if (_1 === (18)) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { */ case 2: - _2 = dst.Kind(); - if ((_2 === (2)) || (_2 === (3)) || (_2 === (4)) || (_2 === (5)) || (_2 === (6)) || (_2 === (7)) || (_2 === (8)) || (_2 === (9)) || (_2 === (10)) || (_2 === (11)) || (_2 === (12))) { - $s = -1; return cvtInt; - } else if ((_2 === (13)) || (_2 === (14))) { - $s = -1; return cvtIntFloat; - } else if (_2 === (24)) { - $s = -1; return cvtIntString; - } - $s = 9; continue; - /* } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { */ case 3: - _3 = dst.Kind(); - if ((_3 === (2)) || (_3 === (3)) || (_3 === (4)) || (_3 === (5)) || (_3 === (6)) || (_3 === (7)) || (_3 === (8)) || (_3 === (9)) || (_3 === (10)) || (_3 === (11)) || (_3 === (12))) { - $s = -1; return cvtUint; - } else if ((_3 === (13)) || (_3 === (14))) { - $s = -1; return cvtUintFloat; - } else if (_3 === (24)) { - $s = -1; return cvtUintString; - } - $s = 9; continue; - /* } else if ((_1 === (13)) || (_1 === (14))) { */ case 4: - _4 = dst.Kind(); - if ((_4 === (2)) || (_4 === (3)) || (_4 === (4)) || (_4 === (5)) || (_4 === (6))) { - $s = -1; return cvtFloatInt; - } else if ((_4 === (7)) || (_4 === (8)) || (_4 === (9)) || (_4 === (10)) || (_4 === (11)) || (_4 === (12))) { - $s = -1; return cvtFloatUint; - } else if ((_4 === (13)) || (_4 === (14))) { - $s = -1; return cvtFloat; - } - $s = 9; continue; - /* } else if ((_1 === (15)) || (_1 === (16))) { */ case 5: - _5 = dst.Kind(); - if ((_5 === (15)) || (_5 === (16))) { - $s = -1; return cvtComplex; + var _1, _2, _3, _4, _5, _6, _7, dst, src; + _1 = ((src.Kind() >>> 0)); + if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { + _2 = ((dst.Kind() >>> 0)); + if ((_2 === (2)) || (_2 === (3)) || (_2 === (4)) || (_2 === (5)) || (_2 === (6)) || (_2 === (7)) || (_2 === (8)) || (_2 === (9)) || (_2 === (10)) || (_2 === (11)) || (_2 === (12))) { + return cvtInt; + } else if ((_2 === (13)) || (_2 === (14))) { + return cvtIntFloat; + } else if (_2 === (24)) { + return cvtIntString; + } + } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { + _3 = ((dst.Kind() >>> 0)); + if ((_3 === (2)) || (_3 === (3)) || (_3 === (4)) || (_3 === (5)) || (_3 === (6)) || (_3 === (7)) || (_3 === (8)) || (_3 === (9)) || (_3 === (10)) || (_3 === (11)) || (_3 === (12))) { + return cvtUint; + } else if ((_3 === (13)) || (_3 === (14))) { + return cvtUintFloat; + } else if (_3 === (24)) { + return cvtUintString; + } + } else if ((_1 === (13)) || (_1 === (14))) { + _4 = ((dst.Kind() >>> 0)); + if ((_4 === (2)) || (_4 === (3)) || (_4 === (4)) || (_4 === (5)) || (_4 === (6))) { + return cvtFloatInt; + } else if ((_4 === (7)) || (_4 === (8)) || (_4 === (9)) || (_4 === (10)) || (_4 === (11)) || (_4 === (12))) { + return cvtFloatUint; + } else if ((_4 === (13)) || (_4 === (14))) { + return cvtFloat; + } + } else if ((_1 === (15)) || (_1 === (16))) { + _5 = ((dst.Kind() >>> 0)); + if ((_5 === (15)) || (_5 === (16))) { + return cvtComplex; + } + } else if (_1 === (24)) { + if ((dst.Kind() === 23) && pkgPathFor(dst.Elem()) === "") { + _6 = ((dst.Elem().Kind() >>> 0)); + if (_6 === (8)) { + return cvtStringBytes; + } else if (_6 === (5)) { + return cvtStringRunes; } - $s = 9; continue; - /* } else if (_1 === (24)) { */ case 6: - if (!(dst.Kind() === 23)) { _v = false; $s = 12; continue s; } - _r = dst.Elem().PkgPath(); /* */ $s = 13; case 13: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _v = _r === ""; case 12: - /* */ if (_v) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (_v) { */ case 10: - _r$1 = dst.Elem().Kind(); /* */ $s = 15; case 15: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _6 = _r$1; - if (_6 === (8)) { - $s = -1; return cvtStringBytes; - } else if (_6 === (5)) { - $s = -1; return cvtStringRunes; - } - case 14: - /* } */ case 11: - $s = 9; continue; - /* } else if (_1 === (23)) { */ case 7: - if (!(dst.Kind() === 24)) { _v$1 = false; $s = 18; continue s; } - _r$2 = src.Elem().PkgPath(); /* */ $s = 19; case 19: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _v$1 = _r$2 === ""; case 18: - /* */ if (_v$1) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (_v$1) { */ case 16: - _r$3 = src.Elem().Kind(); /* */ $s = 21; case 21: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _7 = _r$3; - if (_7 === (8)) { - $s = -1; return cvtBytesString; - } else if (_7 === (5)) { - $s = -1; return cvtRunesString; - } - case 20: - /* } */ case 17: - if (!(dst.Kind() === 22)) { _v$3 = false; $s = 25; continue s; } - _r$4 = dst.Elem().Kind(); /* */ $s = 26; case 26: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _v$3 = _r$4 === 17; case 25: - if (!(_v$3)) { _v$2 = false; $s = 24; continue s; } - _r$5 = dst.Elem().Elem(); /* */ $s = 27; case 27: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _v$2 = $interfaceIsEqual(src.Elem(), _r$5); case 24: - /* */ if (_v$2) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if (_v$2) { */ case 22: - $s = -1; return cvtSliceArrayPtr; - /* } */ case 23: - if ((dst.Kind() === 17) && $interfaceIsEqual(src.Elem(), dst.Elem())) { - $s = -1; return cvtSliceArray; + } + } else if (_1 === (23)) { + if ((dst.Kind() === 24) && pkgPathFor(src.Elem()) === "") { + _7 = ((src.Elem().Kind() >>> 0)); + if (_7 === (8)) { + return cvtBytesString; + } else if (_7 === (5)) { + return cvtRunesString; } - $s = 9; continue; - /* } else if (_1 === (18)) { */ case 8: - if (!(dst.Kind() === 18)) { _v$4 = false; $s = 30; continue s; } - _r$6 = specialChannelAssignability(dst, src); /* */ $s = 31; case 31: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _v$4 = _r$6; case 30: - /* */ if (_v$4) { $s = 28; continue; } - /* */ $s = 29; continue; - /* if (_v$4) { */ case 28: - $s = -1; return cvtDirect; - /* } */ case 29: - /* } */ case 9: - case 1: - _r$7 = haveIdenticalUnderlyingType(dst, src, false); /* */ $s = 34; case 34: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - /* */ if (_r$7) { $s = 32; continue; } - /* */ $s = 33; continue; - /* if (_r$7) { */ case 32: - $s = -1; return cvtDirect; - /* } */ case 33: - if (!((dst.Kind() === 22) && dst.Name() === "" && (src.Kind() === 22) && src.Name() === "")) { _v$5 = false; $s = 37; continue s; } - _r$8 = dst.Elem().common(); /* */ $s = 38; case 38: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _arg = _r$8; - _r$9 = src.Elem().common(); /* */ $s = 39; case 39: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _arg$1 = _r$9; - _r$10 = haveIdenticalUnderlyingType(_arg, _arg$1, false); /* */ $s = 40; case 40: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _v$5 = _r$10; case 37: - /* */ if (_v$5) { $s = 35; continue; } - /* */ $s = 36; continue; - /* if (_v$5) { */ case 35: - $s = -1; return cvtDirect; - /* } */ case 36: + } + if ((dst.Kind() === 22) && (dst.Elem().Kind() === 17) && src.Elem() === dst.Elem().Elem()) { + return cvtSliceArrayPtr; + } + if ((dst.Kind() === 17) && src.Elem() === dst.Elem()) { + return cvtSliceArray; + } + } else if (_1 === (18)) { + if ((dst.Kind() === 18) && specialChannelAssignability(dst, src)) { + return cvtDirect; + } + } + if (haveIdenticalUnderlyingType(dst, src, false)) { + return cvtDirect; + } + if ((dst.Kind() === 22) && nameFor(dst) === "" && (src.Kind() === 22) && nameFor(src) === "" && haveIdenticalUnderlyingType(elem(dst), elem(src), false)) { + return cvtDirect; + } if (implements$1(dst, src)) { if (src.Kind() === 20) { - $s = -1; return cvtI2I; + return cvtI2I; } - $s = -1; return cvtT2I; + return cvtT2I; } - $s = -1; return $throwNilPointerError; - /* */ } return; } var $f = {$blk: convertOp$1, $c: true, $r, _1, _2, _3, _4, _5, _6, _7, _arg, _arg$1, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _v, _v$1, _v$2, _v$3, _v$4, _v$5, dst, src, $s};return $f; + return $throwNilPointerError; }; makeFloat = function makeFloat$1(f, v, t) { - var {_1, _r, f, ptr, t, typ, v, $s, $r, $c} = $restore(this, {f, v, t}); + var {_1, _r, f, ptr, t, typ$1, v, $s, $r, $c} = $restore(this, {f, v, t}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: _r = t.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - typ = _r; - ptr = unsafe_New(typ); - _1 = typ.size; + typ$1 = _r; + ptr = unsafe_New(typ$1); + _1 = typ$1.Size(); if (_1 === (4)) { (ptr).$set(($fround(v))); } else if (_1 === (8)) { (ptr).$set(v); } - $s = -1; return new Value.ptr(typ, ptr, (((f | 128) >>> 0) | ((typ.Kind() >>> 0))) >>> 0); - /* */ } return; } var $f = {$blk: makeFloat$1, $c: true, $r, _1, _r, f, ptr, t, typ, v, $s};return $f; + $s = -1; return new Value.ptr(typ$1, ptr, (((f | 128) >>> 0) | ((typ$1.Kind() >>> 0))) >>> 0); + /* */ } return; } var $f = {$blk: makeFloat$1, $c: true, $r, _1, _r, f, ptr, t, typ$1, v, $s};return $f; }; makeFloat32 = function makeFloat32$1(f, v, t) { - var {_r, f, ptr, t, typ, v, $s, $r, $c} = $restore(this, {f, v, t}); + var {_r, f, ptr, t, typ$1, v, $s, $r, $c} = $restore(this, {f, v, t}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: _r = t.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - typ = _r; - ptr = unsafe_New(typ); + typ$1 = _r; + ptr = unsafe_New(typ$1); (ptr).$set(v); - $s = -1; return new Value.ptr(typ, ptr, (((f | 128) >>> 0) | ((typ.Kind() >>> 0))) >>> 0); - /* */ } return; } var $f = {$blk: makeFloat32$1, $c: true, $r, _r, f, ptr, t, typ, v, $s};return $f; + $s = -1; return new Value.ptr(typ$1, ptr, (((f | 128) >>> 0) | ((typ$1.Kind() >>> 0))) >>> 0); + /* */ } return; } var $f = {$blk: makeFloat32$1, $c: true, $r, _r, f, ptr, t, typ$1, v, $s};return $f; }; makeComplex = function makeComplex$1(f, v, t) { - var {_1, _r, f, ptr, t, typ, v, $s, $r, $c} = $restore(this, {f, v, t}); + var {_1, _r, f, ptr, t, typ$1, v, $s, $r, $c} = $restore(this, {f, v, t}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: _r = t.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - typ = _r; - ptr = unsafe_New(typ); - _1 = typ.size; + typ$1 = _r; + ptr = unsafe_New(typ$1); + _1 = typ$1.Size(); if (_1 === (8)) { (ptr).$set((new $Complex64(v.$real, v.$imag))); } else if (_1 === (16)) { (ptr).$set(v); } - $s = -1; return new Value.ptr(typ, ptr, (((f | 128) >>> 0) | ((typ.Kind() >>> 0))) >>> 0); - /* */ } return; } var $f = {$blk: makeComplex$1, $c: true, $r, _1, _r, f, ptr, t, typ, v, $s};return $f; + $s = -1; return new Value.ptr(typ$1, ptr, (((f | 128) >>> 0) | ((typ$1.Kind() >>> 0))) >>> 0); + /* */ } return; } var $f = {$blk: makeComplex$1, $c: true, $r, _1, _r, f, ptr, t, typ$1, v, $s};return $f; }; makeString = function makeString$1(f, v, t) { - var {_r, f, ret, t, v, $s, $r, $c} = $restore(this, {f, v, t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = $clone(New(t), Value).Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - ret = _r; + var f, ret, t, v; + ret = $clone(New(t), Value).Elem(); $clone(ret, Value).SetString(v); ret.flag = (((ret.flag & ~256) >>> 0) | f) >>> 0; - $s = -1; return ret; - /* */ } return; } var $f = {$blk: makeString$1, $c: true, $r, _r, f, ret, t, v, $s};return $f; + return ret; }; makeBytes = function makeBytes$1(f, v, t) { - var {_r, f, ret, t, v, $s, $r, $c} = $restore(this, {f, v, t}); + var {f, ret, t, v, $s, $r, $c} = $restore(this, {f, v, t}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = $clone(New(t), Value).Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - ret = _r; - $r = $clone(ret, Value).SetBytes(v); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + ret = $clone(New(t), Value).Elem(); + $r = $clone(ret, Value).SetBytes(v); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } ret.flag = (((ret.flag & ~256) >>> 0) | f) >>> 0; $s = -1; return ret; - /* */ } return; } var $f = {$blk: makeBytes$1, $c: true, $r, _r, f, ret, t, v, $s};return $f; + /* */ } return; } var $f = {$blk: makeBytes$1, $c: true, $r, f, ret, t, v, $s};return $f; }; makeRunes = function makeRunes$1(f, v, t) { - var {_r, f, ret, t, v, $s, $r, $c} = $restore(this, {f, v, t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = $clone(New(t), Value).Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - ret = _r; - $r = $clone(ret, Value).setRunes(v); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + var f, ret, t, v; + ret = $clone(New(t), Value).Elem(); + $clone(ret, Value).setRunes(v); ret.flag = (((ret.flag & ~256) >>> 0) | f) >>> 0; - $s = -1; return ret; - /* */ } return; } var $f = {$blk: makeRunes$1, $c: true, $r, _r, f, ret, t, v, $s};return $f; + return ret; }; cvtInt = function cvtInt$1(v, t) { var {$24r, _r, t, v, x, $s, $r, $c} = $restore(this, {v, t}); @@ -15458,49 +15032,33 @@ $packages["reflect"] = (function() { /* */ } return; } var $f = {$blk: cvtComplex$1, $c: true, $r, $24r, _r, t, v, $s};return $f; }; cvtIntString = function cvtIntString$1(v, t) { - var {$24r, _r, s, t, v, x, x$1, $s, $r, $c} = $restore(this, {v, t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var s, t, v, x, x$1; s = "\xEF\xBF\xBD"; x = $clone(v, Value).Int(); if ((x$1 = (new $Int64(0, (((x.$low + ((x.$high >> 31) * 4294967296)) >> 0)))), (x$1.$high === x.$high && x$1.$low === x.$low))) { s = ($encodeRune((((x.$low + ((x.$high >> 31) * 4294967296)) >> 0)))); } - _r = makeString(new flag(v.flag).ro(), s, t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: cvtIntString$1, $c: true, $r, $24r, _r, s, t, v, x, x$1, $s};return $f; + return makeString(new flag(v.flag).ro(), s, t); }; cvtUintString = function cvtUintString$1(v, t) { - var {$24r, _r, s, t, v, x, x$1, $s, $r, $c} = $restore(this, {v, t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var s, t, v, x, x$1; s = "\xEF\xBF\xBD"; x = $clone(v, Value).Uint(); if ((x$1 = (new $Uint64(0, ((x.$low >> 0)))), (x$1.$high === x.$high && x$1.$low === x.$low))) { s = ($encodeRune(((x.$low >> 0)))); } - _r = makeString(new flag(v.flag).ro(), s, t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: cvtUintString$1, $c: true, $r, $24r, _r, s, t, v, x, x$1, $s};return $f; + return makeString(new flag(v.flag).ro(), s, t); }; cvtBytesString = function cvtBytesString$1(v, t) { - var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s, $r, $c} = $restore(this, {v, t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _arg = new flag(v.flag).ro(); - _r = $clone(v, Value).Bytes(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _arg$1 = ($bytesToString(_r)); - _arg$2 = t; - _r$1 = makeString(_arg, _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: cvtBytesString$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s};return $f; + var t, v; + return makeString(new flag(v.flag).ro(), ($bytesToString($clone(v, Value).Bytes())), t); }; cvtStringBytes = function cvtStringBytes$1(v, t) { var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s, $r, $c} = $restore(this, {v, t}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: _arg = new flag(v.flag).ro(); _r = $clone(v, Value).String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _arg$1 = (new sliceType$4($stringToBytes(_r))); + _arg$1 = (new sliceType$2($stringToBytes(_r))); _arg$2 = t; _r$1 = makeBytes(_arg, _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $24r = _r$1; @@ -15508,72 +15066,100 @@ $packages["reflect"] = (function() { /* */ } return; } var $f = {$blk: cvtStringBytes$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s};return $f; }; cvtRunesString = function cvtRunesString$1(v, t) { - var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s, $r, $c} = $restore(this, {v, t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _arg = new flag(v.flag).ro(); - _r = $clone(v, Value).runes(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _arg$1 = ($runesToString(_r)); - _arg$2 = t; - _r$1 = makeString(_arg, _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: cvtRunesString$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s};return $f; + var t, v; + return makeString(new flag(v.flag).ro(), ($runesToString($clone(v, Value).runes())), t); }; cvtStringRunes = function cvtStringRunes$1(v, t) { var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s, $r, $c} = $restore(this, {v, t}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: _arg = new flag(v.flag).ro(); _r = $clone(v, Value).String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _arg$1 = (new sliceType$12($stringToRunes(_r))); + _arg$1 = (new sliceType$10($stringToRunes(_r))); _arg$2 = t; _r$1 = makeRunes(_arg, _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $24r = _r$1; $s = 3; case 3: return $24r; /* */ } return; } var $f = {$blk: cvtStringRunes$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s};return $f; }; - cvtT2I = function cvtT2I$1(v, typ) { - var {$24r, _r, _r$1, _r$2, _r$3, _r$4, target, typ, v, x, $s, $r, $c} = $restore(this, {v, typ}); + cvtT2I = function cvtT2I$1(v, typ$1) { + var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, target, typ$1, v, x, $s, $r, $c} = $restore(this, {v, typ$1}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = typ.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = typ$1.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _r$1 = unsafe_New(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } target = _r$1; _r$2 = valueInterface($clone(v, Value), false); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } x = _r$2; - _r$3 = typ.NumMethod(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3 = typ$1.NumMethod(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } /* */ if (_r$3 === 0) { $s = 4; continue; } /* */ $s = 5; continue; /* if (_r$3 === 0) { */ case 4: (target).$set(x); $s = 6; continue; /* } else { */ case 5: - ifaceE2I($assertType(typ, ptrType$2), x, target); + _r$4 = typ$1.common(); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $r = ifaceE2I(_r$4, x, target); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 6: - _r$4 = typ.common(); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $24r = new Value.ptr(_r$4, target, (((new flag(v.flag).ro() | 128) >>> 0) | 20) >>> 0); - $s = 9; case 9: return $24r; - /* */ } return; } var $f = {$blk: cvtT2I$1, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, target, typ, v, x, $s};return $f; + _r$5 = typ$1.common(); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $24r = new Value.ptr(_r$5, target, (((new flag(v.flag).ro() | 128) >>> 0) | 20) >>> 0); + $s = 11; case 11: return $24r; + /* */ } return; } var $f = {$blk: cvtT2I$1, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, target, typ$1, v, x, $s};return $f; }; - cvtI2I = function cvtI2I$1(v, typ) { - var {$24r, _r, _r$1, _r$2, ret, typ, v, $s, $r, $c} = $restore(this, {v, typ}); + cvtI2I = function cvtI2I$1(v, typ$1) { + var {$24r, _r, ret, typ$1, v, $s, $r, $c} = $restore(this, {v, typ$1}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - /* */ if ($clone(v, Value).IsNil()) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if ($clone(v, Value).IsNil()) { */ case 1: - _r = Zero(typ); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - ret = _r; + if ($clone(v, Value).IsNil()) { + ret = Zero(typ$1); ret.flag = (ret.flag | (new flag(v.flag).ro())) >>> 0; $s = -1; return ret; - /* } */ case 2: - _r$1 = $clone(v, Value).Elem(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = cvtT2I($clone(_r$1, Value), typ); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 6; case 6: return $24r; - /* */ } return; } var $f = {$blk: cvtI2I$1, $c: true, $r, $24r, _r, _r$1, _r$2, ret, typ, v, $s};return $f; + } + _r = cvtT2I($clone($clone(v, Value).Elem(), Value), typ$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: cvtI2I$1, $c: true, $r, $24r, _r, ret, typ$1, v, $s};return $f; }; - $ptrType(structField).prototype.embedded = function embedded() { - var f; - f = this; - return $clone(f.name, name).embedded(); + escapes = function escapes$1(x) { + var x; + if (dummy.b) { + dummy.x = x; + } + }; + $ptrType(rtype).prototype.common = function common() { + var t; + t = this; + return t.t; + }; + $ptrType(rtype).prototype.uncommon = function uncommon() { + var t; + t = this; + return t.t.Uncommon(); + }; + $ptrType(interfaceType).prototype.nameOff = function nameOff(off) { + var off, t; + t = this; + return toRType(t.InterfaceType.Type).nameOff(off); + }; + nameOffFor = function nameOffFor$1(t, off) { + var off, t; + return toRType(t).nameOff(off); + }; + typeOffFor = function typeOffFor$1(t, off) { + var off, t; + return toRType(t).typeOff(off); + }; + $ptrType(interfaceType).prototype.typeOff = function typeOff(off) { + var off, t; + t = this; + return toRType(t.InterfaceType.Type).typeOff(off); + }; + $ptrType(interfaceType).prototype.common = function common$1() { + var t; + t = this; + return t.InterfaceType.Type; + }; + $ptrType(interfaceType).prototype.uncommon = function uncommon$1() { + var t; + t = this; + return t.InterfaceType.Type.Uncommon(); }; $ptrType(Method).prototype.IsExported = function IsExported() { var m; @@ -15590,92 +15176,78 @@ $packages["reflect"] = (function() { return "kind" + strconv.Itoa(((k >> 0))); }; $ptrType(Kind).prototype.String = function(...$args) { return new Kind(this.$get()).String(...$args); }; - $ptrType(rtype).prototype.String = function String$2() { - var s, t; - t = this; - s = $clone(t.nameOff(t.str), name).name(); - if (!((((t.tflag & 2) >>> 0) === 0))) { - return $substring(s, 1); - } - return s; - }; $ptrType(rtype).prototype.Size = function Size() { var t; t = this; - return t.size; + return t.t.Size(); }; $ptrType(rtype).prototype.Bits = function Bits() { var k, t; t = this; - if (t === ptrType$2.nil) { + if (t === ptrType$9.nil) { $panic(new $String("reflect: Bits of nil Type")); } k = t.Kind(); if (k < 2 || k > 16) { $panic(new $String("reflect: Bits of non-arithmetic Type " + t.String())); } - return $imul(((t.size >> 0)), 8); + return $imul(((t.t.Size_ >> 0)), 8); }; $ptrType(rtype).prototype.Align = function Align() { var t; t = this; - return ((t.align >> 0)); + return t.t.Align(); }; $ptrType(rtype).prototype.FieldAlign = function FieldAlign() { var t; t = this; - return ((t.fieldAlign >> 0)); + return t.t.FieldAlign(); }; $ptrType(rtype).prototype.Kind = function Kind$2() { var t; t = this; - return ((((t.kind & 31) >>> 0) >>> 0)); - }; - $ptrType(rtype).prototype.common = function common() { - var t; - t = this; - return t; + return ((t.t.Kind() >>> 0)); }; $ptrType(rtype).prototype.exportedMethods = function exportedMethods() { var t, ut; t = this; ut = t.uncommon(); - if (ut === ptrType$9.nil) { - return sliceType$13.nil; + if (ut === ptrType$10.nil) { + return sliceType$11.nil; } - return ut.exportedMethods(); + return ut.ExportedMethods(); }; $ptrType(rtype).prototype.NumMethod = function NumMethod$1() { var t, tt; t = this; if (t.Kind() === 20) { - tt = (t.kindType); + tt = (toKindTypeExt(t)); return tt.NumMethod(); } return t.exportedMethods().$length; }; - $ptrType(rtype).prototype.MethodByName = function MethodByName$1(name$1) { - var {$24r, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, h, i, j, m, methods, name$1, ok, t, tt, ut, $s, $r, $c} = $restore(this, {name$1}); + $ptrType(rtype).prototype.MethodByName = function MethodByName$1(name) { + var {$24r, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, h, i, j, m, methods, name, ok, t, tt, ut, $s, $r, $c} = $restore(this, {name}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$2.nil, 0, 0), 0); + m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$4.nil, 0, 0), 0); ok = false; t = this; if (t.Kind() === 20) { - tt = (t.kindType); - _tuple = tt.MethodByName(name$1); + tt = (toKindTypeExt(t)); + _tuple = tt.MethodByName(name); Method.copy(m, _tuple[0]); ok = _tuple[1]; $s = -1; return [m, ok]; } ut = t.uncommon(); - if (ut === ptrType$9.nil) { - _tmp = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$2.nil, 0, 0), 0); + if (ut === ptrType$10.nil) { + _tmp = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$4.nil, 0, 0), 0); _tmp$1 = false; Method.copy(m, _tmp); ok = _tmp$1; $s = -1; return [m, ok]; } - methods = ut.exportedMethods(); + methods = ut.ExportedMethods(); _tmp$2 = 0; _tmp$3 = methods.$length; i = _tmp$2; @@ -15683,15 +15255,15 @@ $packages["reflect"] = (function() { while (true) { if (!(i < j)) { break; } h = ((((((i + j >> 0) >>> 0)) >>> 1 >>> 0) >> 0)); - if (!($clone(t.nameOff(((h < 0 || h >= methods.$length) ? ($throwRuntimeError("index out of range"), undefined) : methods.$array[methods.$offset + h]).name), name).name() >= name$1)) { + if (!($clone(t.nameOff(((h < 0 || h >= methods.$length) ? ($throwRuntimeError("index out of range"), undefined) : methods.$array[methods.$offset + h]).Name), abi.Name).Name() >= name)) { i = h + 1 >> 0; } else { j = h; } } - /* */ if (i < methods.$length && name$1 === $clone(t.nameOff(((i < 0 || i >= methods.$length) ? ($throwRuntimeError("index out of range"), undefined) : methods.$array[methods.$offset + i]).name), name).name()) { $s = 1; continue; } + /* */ if (i < methods.$length && name === $clone(t.nameOff(((i < 0 || i >= methods.$length) ? ($throwRuntimeError("index out of range"), undefined) : methods.$array[methods.$offset + i]).Name), abi.Name).Name()) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (i < methods.$length && name$1 === $clone(t.nameOff(((i < 0 || i >= methods.$length) ? ($throwRuntimeError("index out of range"), undefined) : methods.$array[methods.$offset + i]).name), name).name()) { */ case 1: + /* if (i < methods.$length && name === $clone(t.nameOff(((i < 0 || i >= methods.$length) ? ($throwRuntimeError("index out of range"), undefined) : methods.$array[methods.$offset + i]).Name), abi.Name).Name()) { */ case 1: _r = t.Method(i); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tmp$4 = $clone(_r, Method); _tmp$5 = true; @@ -15700,34 +15272,33 @@ $packages["reflect"] = (function() { $24r = [m, ok]; $s = 4; case 4: return $24r; /* } */ case 2: - _tmp$6 = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$2.nil, 0, 0), 0); + _tmp$6 = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$4.nil, 0, 0), 0); _tmp$7 = false; Method.copy(m, _tmp$6); ok = _tmp$7; $s = -1; return [m, ok]; - /* */ } return; } var $f = {$blk: MethodByName$1, $c: true, $r, $24r, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, h, i, j, m, methods, name$1, ok, t, tt, ut, $s};return $f; + /* */ } return; } var $f = {$blk: MethodByName$1, $c: true, $r, $24r, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, h, i, j, m, methods, name, ok, t, tt, ut, $s};return $f; }; $ptrType(rtype).prototype.PkgPath = function PkgPath() { var t, ut; t = this; - if (((t.tflag & 4) >>> 0) === 0) { + if (((t.t.TFlag & 4) >>> 0) === 0) { return ""; } ut = t.uncommon(); - if (ut === ptrType$9.nil) { + if (ut === ptrType$10.nil) { return ""; } - return $clone(t.nameOff(ut.pkgPath), name).name(); + return $clone(t.nameOff(ut.PkgPath), abi.Name).Name(); }; - $ptrType(rtype).prototype.hasName = function hasName() { + pkgPathFor = function pkgPathFor$1(t) { var t; - t = this; - return !((((t.tflag & 4) >>> 0) === 0)); + return toRType(t).PkgPath(); }; $ptrType(rtype).prototype.Name = function Name() { var _1, i, s, sqBrackets, t; t = this; - if (!t.hasName()) { + if (!t.t.HasName()) { return ""; } s = t.String(); @@ -15745,6 +15316,10 @@ $packages["reflect"] = (function() { } return $substring(s, (i + 1 >> 0)); }; + nameFor = function nameFor$1(t) { + var t; + return toRType(t).Name(); + }; $ptrType(rtype).prototype.ChanDir = function ChanDir$1() { var t, tt; t = this; @@ -15752,38 +15327,20 @@ $packages["reflect"] = (function() { $panic(new $String("reflect: ChanDir of non-chan type " + t.String())); } tt = (t.kindType); - return ((tt.dir >> 0)); + return ((tt.Dir >> 0)); }; - $ptrType(rtype).prototype.IsVariadic = function IsVariadic() { - var t, tt; - t = this; - if (!((t.Kind() === 19))) { - $panic(new $String("reflect: IsVariadic of non-func type " + t.String())); + elem = function elem$1(t) { + var et, t; + et = t.Elem(); + if (!(et === ptrType$4.nil)) { + return et; } - tt = (t.kindType); - return !((((tt.outCount & 32768) >>> 0) === 0)); + $panic(new $String("reflect: Elem of invalid type " + stringFor(t))); }; $ptrType(rtype).prototype.Elem = function Elem() { - var _1, t, tt, tt$1, tt$2, tt$3, tt$4; + var t; t = this; - _1 = t.Kind(); - if (_1 === (17)) { - tt = (t.kindType); - return toType(tt.elem); - } else if (_1 === (18)) { - tt$1 = (t.kindType); - return toType(tt$1.elem); - } else if (_1 === (21)) { - tt$2 = (t.kindType); - return toType(tt$2.elem); - } else if (_1 === (22)) { - tt$3 = (t.kindType); - return toType(tt$3.elem); - } else if (_1 === (23)) { - tt$4 = (t.kindType); - return toType(tt$4.elem); - } - $panic(new $String("reflect: Elem of invalid type " + t.String())); + return toType(elem(t.common())); }; $ptrType(rtype).prototype.Field = function Field(i) { var i, t, tt; @@ -15791,7 +15348,7 @@ $packages["reflect"] = (function() { if (!((t.Kind() === 25))) { $panic(new $String("reflect: Field of non-struct type " + t.String())); } - tt = (t.kindType); + tt = (toKindTypeExt(t)); return tt.Field(i); }; $ptrType(rtype).prototype.FieldByIndex = function FieldByIndex$1(index) { @@ -15801,24 +15358,24 @@ $packages["reflect"] = (function() { if (!((t.Kind() === 25))) { $panic(new $String("reflect: FieldByIndex of non-struct type " + t.String())); } - tt = (t.kindType); + tt = (toKindTypeExt(t)); _r = tt.FieldByIndex(index); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $24r = _r; $s = 2; case 2: return $24r; /* */ } return; } var $f = {$blk: FieldByIndex$1, $c: true, $r, $24r, _r, index, t, tt, $s};return $f; }; - $ptrType(rtype).prototype.FieldByName = function FieldByName$1(name$1) { - var {$24r, _r, name$1, t, tt, $s, $r, $c} = $restore(this, {name$1}); + $ptrType(rtype).prototype.FieldByName = function FieldByName$1(name) { + var {$24r, _r, name, t, tt, $s, $r, $c} = $restore(this, {name}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: t = this; if (!((t.Kind() === 25))) { $panic(new $String("reflect: FieldByName of non-struct type " + t.String())); } - tt = (t.kindType); - _r = tt.FieldByName(name$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + tt = (toKindTypeExt(t)); + _r = tt.FieldByName(name); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $24r = _r; $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: FieldByName$1, $c: true, $r, $24r, _r, name$1, t, tt, $s};return $f; + /* */ } return; } var $f = {$blk: FieldByName$1, $c: true, $r, $24r, _r, name, t, tt, $s};return $f; }; $ptrType(rtype).prototype.FieldByNameFunc = function FieldByNameFunc$1(match) { var {$24r, _r, match, t, tt, $s, $r, $c} = $restore(this, {match}); @@ -15827,29 +15384,20 @@ $packages["reflect"] = (function() { if (!((t.Kind() === 25))) { $panic(new $String("reflect: FieldByNameFunc of non-struct type " + t.String())); } - tt = (t.kindType); + tt = (toKindTypeExt(t)); _r = tt.FieldByNameFunc(match); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $24r = _r; $s = 2; case 2: return $24r; /* */ } return; } var $f = {$blk: FieldByNameFunc$1, $c: true, $r, $24r, _r, match, t, tt, $s};return $f; }; - $ptrType(rtype).prototype.In = function In(i) { - var i, t, tt, x; - t = this; - if (!((t.Kind() === 19))) { - $panic(new $String("reflect: In of non-func type " + t.String())); - } - tt = (t.kindType); - return toType((x = tt.in$(), ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]))); - }; $ptrType(rtype).prototype.Key = function Key$1() { var t, tt; t = this; if (!((t.Kind() === 21))) { $panic(new $String("reflect: Key of non-map type " + t.String())); } - tt = (t.kindType); - return toType(tt.key); + tt = (toKindTypeExt(t)); + return toType(tt.MapType.Key); }; $ptrType(rtype).prototype.Len = function Len() { var t, tt; @@ -15858,7 +15406,7 @@ $packages["reflect"] = (function() { $panic(new $String("reflect: Len of non-array type " + t.String())); } tt = (t.kindType); - return ((tt.len >> 0)); + return ((tt.Len >> 0)); }; $ptrType(rtype).prototype.NumField = function NumField$1() { var t, tt; @@ -15866,8 +15414,17 @@ $packages["reflect"] = (function() { if (!((t.Kind() === 25))) { $panic(new $String("reflect: NumField of non-struct type " + t.String())); } + tt = (toKindTypeExt(t)); + return tt.StructType.Fields.$length; + }; + $ptrType(rtype).prototype.In = function In(i) { + var i, t, tt, x; + t = this; + if (!((t.Kind() === 19))) { + $panic(new $String("reflect: In of non-func type " + t.String())); + } tt = (t.kindType); - return tt.fields.$length; + return toType((x = tt.InSlice(), ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]))); }; $ptrType(rtype).prototype.NumIn = function NumIn() { var t, tt; @@ -15876,7 +15433,7 @@ $packages["reflect"] = (function() { $panic(new $String("reflect: NumIn of non-func type " + t.String())); } tt = (t.kindType); - return ((tt.inCount >> 0)); + return tt.NumIn(); }; $ptrType(rtype).prototype.NumOut = function NumOut() { var t, tt; @@ -15885,7 +15442,7 @@ $packages["reflect"] = (function() { $panic(new $String("reflect: NumOut of non-func type " + t.String())); } tt = (t.kindType); - return tt.out().$length; + return tt.NumOut(); }; $ptrType(rtype).prototype.Out = function Out(i) { var i, t, tt, x; @@ -15894,9 +15451,18 @@ $packages["reflect"] = (function() { $panic(new $String("reflect: Out of non-func type " + t.String())); } tt = (t.kindType); - return toType((x = tt.out(), ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]))); + return toType((x = tt.OutSlice(), ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]))); }; - ChanDir.prototype.String = function String$3() { + $ptrType(rtype).prototype.IsVariadic = function IsVariadic() { + var t, tt; + t = this; + if (!((t.Kind() === 19))) { + $panic(new $String("reflect: IsVariadic of non-func type " + t.String())); + } + tt = (t.kindType); + return tt.IsVariadic(); + }; + ChanDir.prototype.String = function String$2() { var _1, d; d = this.$val; _1 = d; @@ -15912,45 +15478,45 @@ $packages["reflect"] = (function() { $ptrType(ChanDir).prototype.String = function(...$args) { return new ChanDir(this.$get()).String(...$args); }; $ptrType(interfaceType).prototype.Method = function Method$2(i) { var i, m, p, pname, t, x; - m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$2.nil, 0, 0), 0); + m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$4.nil, 0, 0), 0); t = this; - if (i < 0 || i >= t.methods.$length) { + if (i < 0 || i >= t.InterfaceType.Methods.$length) { return m; } - p = (x = t.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - pname = $clone(t.rtype.nameOff(p.name), name); - m.Name = $clone(pname, name).name(); - if (!$clone(pname, name).isExported()) { - m.PkgPath = $clone(pname, name).pkgPath(); + p = (x = t.InterfaceType.Methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + i, ptrType$7))); + pname = $clone(t.nameOff(p.Name), abi.Name); + m.Name = $clone(pname, abi.Name).Name(); + if (!$clone(pname, abi.Name).IsExported()) { + m.PkgPath = pkgPath($clone(pname, abi.Name)); if (m.PkgPath === "") { - m.PkgPath = $clone(t.pkgPath, name).name(); + m.PkgPath = $clone(t.InterfaceType.PkgPath, abi.Name).Name(); } } - m.Type = toType(t.rtype.typeOff(p.typ)); + m.Type = toType(t.typeOff(p.Typ)); m.Index = i; return m; }; $ptrType(interfaceType).prototype.NumMethod = function NumMethod$2() { var t; t = this; - return t.methods.$length; + return t.InterfaceType.Methods.$length; }; - $ptrType(interfaceType).prototype.MethodByName = function MethodByName$2(name$1) { - var _i, _ref, _tmp, _tmp$1, i, m, name$1, ok, p, t, x; - m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$2.nil, 0, 0), 0); + $ptrType(interfaceType).prototype.MethodByName = function MethodByName$2(name) { + var _i, _ref, _tmp, _tmp$1, i, m, name, ok, p, t, x; + m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$4.nil, 0, 0), 0); ok = false; t = this; - if (t === ptrType$10.nil) { + if (t === ptrType$11.nil) { return [m, ok]; } - p = ptrType$11.nil; - _ref = t.methods; + p = ptrType$7.nil; + _ref = t.InterfaceType.Methods; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } i = _i; - p = (x = t.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - if ($clone(t.rtype.nameOff(p.name), name).name() === name$1) { + p = (x = t.InterfaceType.Methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + i, ptrType$7))); + if ($clone(t.nameOff(p.Name), abi.Name).Name() === name) { _tmp = $clone(t.Method(i), Method); _tmp$1 = true; Method.copy(m, _tmp); @@ -15976,7 +15542,7 @@ $packages["reflect"] = (function() { }; $ptrType(StructTag).prototype.Get = function(...$args) { return new StructTag(this.$get()).Get(...$args); }; StructTag.prototype.Lookup = function Lookup(key) { - var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, err, i, key, name$1, ok, qvalue, tag, value, value$1; + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, err, i, key, name, ok, qvalue, tag, value, value$1; value = ""; ok = false; tag = this.$val; @@ -15999,7 +15565,7 @@ $packages["reflect"] = (function() { if ((i === 0) || (i + 1 >> 0) >= tag.length || !((tag.charCodeAt(i) === 58)) || !((tag.charCodeAt((i + 1 >> 0)) === 34))) { break; } - name$1 = ($substring(tag, 0, i)); + name = ($substring(tag, 0, i)); tag = $substring(tag, (i + 1 >> 0)); i = 1; while (true) { @@ -16014,7 +15580,7 @@ $packages["reflect"] = (function() { } qvalue = ($substring(tag, 0, (i + 1 >> 0))); tag = $substring(tag, (i + 1 >> 0)); - if (key === name$1) { + if (key === name) { _tuple = strconv.Unquote(qvalue); value$1 = _tuple[0]; err = _tuple[1]; @@ -16037,32 +15603,32 @@ $packages["reflect"] = (function() { $ptrType(StructTag).prototype.Lookup = function(...$args) { return new StructTag(this.$get()).Lookup(...$args); }; $ptrType(structType).prototype.Field = function Field$1(i) { var f, i, p, t, tag, x; - f = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$8.nil, false); + f = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$6.nil, false); t = this; - if (i < 0 || i >= t.fields.$length) { + if (i < 0 || i >= t.StructType.Fields.$length) { $panic(new $String("reflect: Field index out of bounds")); } - p = (x = t.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - f.Type = toType(p.typ); - f.Name = $clone(p.name, name).name(); - f.Anonymous = p.embedded(); - if (!$clone(p.name, name).isExported()) { - f.PkgPath = $clone(t.pkgPath, name).name(); + p = (x = t.StructType.Fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + i, ptrType$12))); + f.Type = toType(p.Typ); + f.Name = $clone(p.Name, abi.Name).Name(); + f.Anonymous = p.Embedded(); + if (!$clone(p.Name, abi.Name).IsExported()) { + f.PkgPath = $clone(t.StructType.PkgPath, abi.Name).Name(); } - tag = $clone(p.name, name).tag(); + tag = $clone(p.Name, abi.Name).Tag(); if (!(tag === "")) { f.Tag = (tag); } - f.Offset = p.offset; - f.Index = new sliceType$8([i]); + f.Offset = p.Offset; + f.Index = new sliceType$6([i]); return f; }; $ptrType(structType).prototype.FieldByIndex = function FieldByIndex$2(index) { var {_i, _r, _r$1, _r$2, _r$3, _r$4, _ref, _v, f, ft, i, index, t, x, $s, $r, $c} = $restore(this, {index}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - f = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$8.nil, false); + f = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$6.nil, false); t = this; - f.Type = toType(t.rtype); + f.Type = toType(t.StructType.Type); _ref = index; _i = 0; /* while (true) { */ case 1: @@ -16095,15 +15661,15 @@ $packages["reflect"] = (function() { /* */ } return; } var $f = {$blk: FieldByIndex$2, $c: true, $r, _i, _r, _r$1, _r$2, _r$3, _r$4, _ref, _v, f, ft, i, index, t, x, $s};return $f; }; $ptrType(structType).prototype.FieldByNameFunc = function FieldByNameFunc$2(match) { - var {_entry, _entry$1, _entry$2, _entry$3, _i, _i$1, _key, _key$1, _key$2, _key$3, _r, _r$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, count, current, f, fname, i, index, match, next, nextCount, ntyp, ok, result, scan, styp, t, t$1, visited, x, $s, $r, $c} = $restore(this, {match}); + var {_entry, _entry$1, _entry$2, _entry$3, _i, _i$1, _key, _key$1, _key$2, _key$3, _r, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, count, current, f, fname, i, index, match, next, nextCount, ntyp, ok, result, scan, styp, t, t$1, visited, x, $s, $r, $c} = $restore(this, {match}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - result = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$8.nil, false); + result = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$6.nil, false); ok = false; t = this; - current = new sliceType$14([]); - next = new sliceType$14([$clone(new fieldScan.ptr(t, sliceType$8.nil), fieldScan)]); + current = new sliceType$12([]); + next = new sliceType$12([$clone(new fieldScan.ptr(t, sliceType$6.nil), fieldScan)]); nextCount = false; - visited = $makeMap(ptrType$12.keyFor, []); + visited = $makeMap(ptrType$13.keyFor, []); /* while (true) { */ case 1: /* if (!(next.$length > 0)) { break; } */ if(!(next.$length > 0)) { $s = 2; continue; } _tmp = next; @@ -16118,67 +15684,62 @@ $packages["reflect"] = (function() { /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } scan = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), fieldScan); t$1 = scan.typ; - if ((_entry = $mapIndex(visited,ptrType$12.keyFor(t$1)), _entry !== undefined ? _entry.v : false)) { + if ((_entry = $mapIndex(visited,ptrType$13.keyFor(t$1)), _entry !== undefined ? _entry.v : false)) { _i++; /* continue; */ $s = 3; continue; } - _key = t$1; (visited || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$12.keyFor(_key), { k: _key, v: true }); - _ref$1 = t$1.fields; + _key = t$1; (visited || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$13.keyFor(_key), { k: _key, v: true }); + _ref$1 = t$1.StructType.Fields; _i$1 = 0; /* while (true) { */ case 5: /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 6; continue; } i = _i$1; - f = (x = t$1.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - fname = $clone(f.name, name).name(); - ntyp = ptrType$2.nil; - /* */ if (f.embedded()) { $s = 7; continue; } + f = (x = t$1.StructType.Fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + i, ptrType$12))); + fname = $clone(f.Name, abi.Name).Name(); + ntyp = ptrType$4.nil; + if (f.Embedded()) { + ntyp = f.Typ; + if (ntyp.Kind() === 22) { + ntyp = ntyp.Elem(); + } + } + _r = match(fname); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 7; continue; } /* */ $s = 8; continue; - /* if (f.embedded()) { */ case 7: - ntyp = f.typ; - /* */ if (ntyp.Kind() === 22) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (ntyp.Kind() === 22) { */ case 9: - _r = ntyp.Elem().common(); /* */ $s = 11; case 11: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - ntyp = _r; - /* } */ case 10: - /* } */ case 8: - _r$1 = match(fname); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (_r$1) { */ case 12: - if ((_entry$1 = $mapIndex(count,ptrType$12.keyFor(t$1)), _entry$1 !== undefined ? _entry$1.v : 0) > 1 || ok) { - _tmp$2 = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$8.nil, false); + /* if (_r) { */ case 7: + if ((_entry$1 = $mapIndex(count,ptrType$13.keyFor(t$1)), _entry$1 !== undefined ? _entry$1.v : 0) > 1 || ok) { + _tmp$2 = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$6.nil, false); _tmp$3 = false; StructField.copy(result, _tmp$2); ok = _tmp$3; $s = -1; return [result, ok]; } StructField.copy(result, t$1.Field(i)); - result.Index = sliceType$8.nil; + result.Index = sliceType$6.nil; result.Index = $appendSlice(result.Index, scan.index); result.Index = $append(result.Index, i); ok = true; _i$1++; /* continue; */ $s = 5; continue; - /* } */ case 13: - if (ok || ntyp === ptrType$2.nil || !((ntyp.Kind() === 25))) { + /* } */ case 8: + if (ok || ntyp === ptrType$4.nil || !((ntyp.Kind() === 25))) { _i$1++; /* continue; */ $s = 5; continue; } - styp = (ntyp.kindType); - if ((_entry$2 = $mapIndex(nextCount,ptrType$12.keyFor(styp)), _entry$2 !== undefined ? _entry$2.v : 0) > 0) { - _key$1 = styp; (nextCount || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$12.keyFor(_key$1), { k: _key$1, v: 2 }); + styp = (toKindTypeExt(ntyp)); + if ((_entry$2 = $mapIndex(nextCount,ptrType$13.keyFor(styp)), _entry$2 !== undefined ? _entry$2.v : 0) > 0) { + _key$1 = styp; (nextCount || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$13.keyFor(_key$1), { k: _key$1, v: 2 }); _i$1++; /* continue; */ $s = 5; continue; } if (nextCount === false) { - nextCount = $makeMap(ptrType$12.keyFor, []); + nextCount = $makeMap(ptrType$13.keyFor, []); } - _key$2 = styp; (nextCount || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$12.keyFor(_key$2), { k: _key$2, v: 1 }); - if ((_entry$3 = $mapIndex(count,ptrType$12.keyFor(t$1)), _entry$3 !== undefined ? _entry$3.v : 0) > 1) { - _key$3 = styp; (nextCount || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$12.keyFor(_key$3), { k: _key$3, v: 2 }); + _key$2 = styp; (nextCount || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$13.keyFor(_key$2), { k: _key$2, v: 1 }); + if ((_entry$3 = $mapIndex(count,ptrType$13.keyFor(t$1)), _entry$3 !== undefined ? _entry$3.v : 0) > 1) { + _key$3 = styp; (nextCount || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$13.keyFor(_key$3), { k: _key$3, v: 2 }); } - index = sliceType$8.nil; + index = sliceType$6.nil; index = $appendSlice(index, scan.index); index = $append(index, i); next = $append(next, new fieldScan.ptr(styp, index)); @@ -16194,31 +15755,31 @@ $packages["reflect"] = (function() { $s = 1; continue; case 2: $s = -1; return [result, ok]; - /* */ } return; } var $f = {$blk: FieldByNameFunc$2, $c: true, $r, _entry, _entry$1, _entry$2, _entry$3, _i, _i$1, _key, _key$1, _key$2, _key$3, _r, _r$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, count, current, f, fname, i, index, match, next, nextCount, ntyp, ok, result, scan, styp, t, t$1, visited, x, $s};return $f; + /* */ } return; } var $f = {$blk: FieldByNameFunc$2, $c: true, $r, _entry, _entry$1, _entry$2, _entry$3, _i, _i$1, _key, _key$1, _key$2, _key$3, _r, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, count, current, f, fname, i, index, match, next, nextCount, ntyp, ok, result, scan, styp, t, t$1, visited, x, $s};return $f; }; - $ptrType(structType).prototype.FieldByName = function FieldByName$2(name$1) { - var {$24r, _i, _r, _ref, _tmp, _tmp$1, _tuple, f, hasEmbeds, i, name$1, present, t, tf, x, $s, $r, $c} = $restore(this, {name$1}); + $ptrType(structType).prototype.FieldByName = function FieldByName$2(name) { + var {$24r, _i, _r, _ref, _tmp, _tmp$1, _tuple, f, hasEmbeds, i, name, present, t, tf, x, $s, $r, $c} = $restore(this, {name}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - name$1 = [name$1]; - f = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$8.nil, false); + name = [name]; + f = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$6.nil, false); present = false; t = this; hasEmbeds = false; - if (!(name$1[0] === "")) { - _ref = t.fields; + if (!(name[0] === "")) { + _ref = t.StructType.Fields; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } i = _i; - tf = (x = t.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - if ($clone(tf.name, name).name() === name$1[0]) { + tf = (x = t.StructType.Fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + i, ptrType$12))); + if ($clone(tf.Name, abi.Name).Name() === name[0]) { _tmp = $clone(t.Field(i), StructField); _tmp$1 = true; StructField.copy(f, _tmp); present = _tmp$1; $s = -1; return [f, present]; } - if (tf.embedded()) { + if (tf.Embedded()) { hasEmbeds = true; } _i++; @@ -16227,21 +15788,16 @@ $packages["reflect"] = (function() { if (!hasEmbeds) { $s = -1; return [f, present]; } - _r = t.FieldByNameFunc((function(name$1) { return function structType·FieldByName·func1(s) { + _r = t.FieldByNameFunc((function(name) { return function structType·FieldByName·func1(s) { var s; - return s === name$1[0]; - }; })(name$1)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + return s === name[0]; + }; })(name)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; StructField.copy(f, _tuple[0]); present = _tuple[1]; $24r = [f, present]; $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: FieldByName$2, $c: true, $r, $24r, _i, _r, _ref, _tmp, _tmp$1, _tuple, f, hasEmbeds, i, name$1, present, t, tf, x, $s};return $f; - }; - rtypeOf = function rtypeOf$1(i) { - var eface, i; - eface = $clone(i, emptyInterface); - return eface.typ; + /* */ } return; } var $f = {$blk: FieldByName$2, $c: true, $r, $24r, _i, _r, _ref, _tmp, _tmp$1, _tuple, f, hasEmbeds, i, name, present, t, tf, x, $s};return $f; }; PtrTo = function PtrTo$1(t) { var t; @@ -16250,11 +15806,15 @@ $packages["reflect"] = (function() { $pkg.PtrTo = PtrTo; PointerTo = function PointerTo$1(t) { var t; - return $assertType(t, ptrType$2).ptrTo(); + return toRType($assertType(t, ptrType$9).ptrTo()); }; $pkg.PointerTo = PointerTo; + ptrTo = function ptrTo$1(t) { + var t; + return toRType(t).ptrTo(); + }; $ptrType(rtype).prototype.Implements = function Implements(u) { - var {_r, t, u, $s, $r, $c} = $restore(this, {u}); + var {$24r, _r, _r$1, _r$2, t, u, $s, $r, $c} = $restore(this, {u}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: t = this; if ($interfaceIsEqual(u, $ifaceNil)) { @@ -16266,63 +15826,65 @@ $packages["reflect"] = (function() { /* if (!((_r === 20))) { */ case 1: $panic(new $String("reflect: non-interface type passed to Type.Implements")); /* } */ case 2: - $s = -1; return implements$1($assertType(u, ptrType$2), t); - /* */ } return; } var $f = {$blk: Implements, $c: true, $r, _r, t, u, $s};return $f; + _r$1 = u.common(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = implements$1(_r$1, t.common()); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 6; case 6: return $24r; + /* */ } return; } var $f = {$blk: Implements, $c: true, $r, $24r, _r, _r$1, _r$2, t, u, $s};return $f; }; $ptrType(rtype).prototype.AssignableTo = function AssignableTo(u) { - var {$24r, _r, t, u, uu, $s, $r, $c} = $restore(this, {u}); + var {_r, t, u, uu, $s, $r, $c} = $restore(this, {u}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: t = this; if ($interfaceIsEqual(u, $ifaceNil)) { $panic(new $String("reflect: nil type passed to Type.AssignableTo")); } - uu = $assertType(u, ptrType$2); - _r = directlyAssignable(uu, t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r || implements$1(uu, t); - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: AssignableTo, $c: true, $r, $24r, _r, t, u, uu, $s};return $f; + _r = u.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + uu = _r; + $s = -1; return directlyAssignable(uu, t.common()) || implements$1(uu, t.common()); + /* */ } return; } var $f = {$blk: AssignableTo, $c: true, $r, _r, t, u, uu, $s};return $f; }; $ptrType(rtype).prototype.ConvertibleTo = function ConvertibleTo(u) { - var {$24r, _r, t, u, uu, $s, $r, $c} = $restore(this, {u}); + var {$24r, _r, _r$1, t, u, $s, $r, $c} = $restore(this, {u}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: t = this; if ($interfaceIsEqual(u, $ifaceNil)) { $panic(new $String("reflect: nil type passed to Type.ConvertibleTo")); } - uu = $assertType(u, ptrType$2); - _r = convertOp(uu, t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = !(_r === $throwNilPointerError); - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: ConvertibleTo, $c: true, $r, $24r, _r, t, u, uu, $s};return $f; + _r = u.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = convertOp(_r, t.common()); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = !(_r$1 === $throwNilPointerError); + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: ConvertibleTo, $c: true, $r, $24r, _r, _r$1, t, u, $s};return $f; }; implements$1 = function implements$2(T, V) { var T, V, i, i$1, j, j$1, t, tm, tm$1, tmName, tmName$1, tmPkgPath, tmPkgPath$1, v, v$1, vm, vm$1, vmName, vmName$1, vmPkgPath, vmPkgPath$1, vmethods, x, x$1, x$2; if (!((T.Kind() === 20))) { return false; } - t = (T.kindType); - if (t.methods.$length === 0) { + t = (toKindTypeExt(T)); + if (t.InterfaceType.Methods.$length === 0) { return true; } if (V.Kind() === 20) { - v = (V.kindType); + v = (toKindTypeExt(V)); i = 0; j = 0; while (true) { - if (!(j < v.methods.$length)) { break; } - tm = (x = t.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - tmName = $clone(t.rtype.nameOff(tm.name), name); - vm = (x$1 = v.methods, ((j < 0 || j >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + j])); - vmName = $clone(V.nameOff(vm.name), name); - if ($clone(vmName, name).name() === $clone(tmName, name).name() && V.typeOff(vm.typ) === t.rtype.typeOff(tm.typ)) { - if (!$clone(tmName, name).isExported()) { - tmPkgPath = $clone(tmName, name).pkgPath(); + if (!(j < v.InterfaceType.Methods.$length)) { break; } + tm = (x = t.InterfaceType.Methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + i, ptrType$7))); + tmName = $clone(t.nameOff(tm.Name), abi.Name); + vm = (x$1 = v.InterfaceType.Methods, ((j < 0 || j >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + j, ptrType$7))); + vmName = $clone(nameOffFor(V, vm.Name), abi.Name); + if ($clone(vmName, abi.Name).Name() === $clone(tmName, abi.Name).Name() && typeOffFor(V, vm.Typ) === t.typeOff(tm.Typ)) { + if (!$clone(tmName, abi.Name).IsExported()) { + tmPkgPath = pkgPath($clone(tmName, abi.Name)); if (tmPkgPath === "") { - tmPkgPath = $clone(t.pkgPath, name).name(); + tmPkgPath = $clone(t.InterfaceType.PkgPath, abi.Name).Name(); } - vmPkgPath = $clone(vmName, name).pkgPath(); + vmPkgPath = pkgPath($clone(vmName, abi.Name)); if (vmPkgPath === "") { - vmPkgPath = $clone(v.pkgPath, name).name(); + vmPkgPath = $clone(v.InterfaceType.PkgPath, abi.Name).Name(); } if (!(tmPkgPath === vmPkgPath)) { j = j + (1) >> 0; @@ -16330,7 +15892,7 @@ $packages["reflect"] = (function() { } } i = i + (1) >> 0; - if (i >= t.methods.$length) { + if (i >= t.InterfaceType.Methods.$length) { return true; } } @@ -16338,28 +15900,28 @@ $packages["reflect"] = (function() { } return false; } - v$1 = V.uncommon(); - if (v$1 === ptrType$9.nil) { + v$1 = V.Uncommon(); + if (v$1 === ptrType$10.nil) { return false; } i$1 = 0; - vmethods = v$1.methods(); + vmethods = v$1.Methods(); j$1 = 0; while (true) { - if (!(j$1 < ((v$1.mcount >> 0)))) { break; } - tm$1 = (x$2 = t.methods, ((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$1])); - tmName$1 = $clone(t.rtype.nameOff(tm$1.name), name); - vm$1 = $clone(((j$1 < 0 || j$1 >= vmethods.$length) ? ($throwRuntimeError("index out of range"), undefined) : vmethods.$array[vmethods.$offset + j$1]), method); - vmName$1 = $clone(V.nameOff(vm$1.name), name); - if ($clone(vmName$1, name).name() === $clone(tmName$1, name).name() && V.typeOff(vm$1.mtyp) === t.rtype.typeOff(tm$1.typ)) { - if (!$clone(tmName$1, name).isExported()) { - tmPkgPath$1 = $clone(tmName$1, name).pkgPath(); + if (!(j$1 < ((v$1.Mcount >> 0)))) { break; } + tm$1 = (x$2 = t.InterfaceType.Methods, ((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$2.$array, x$2.$offset + i$1, ptrType$7))); + tmName$1 = $clone(t.nameOff(tm$1.Name), abi.Name); + vm$1 = $clone(((j$1 < 0 || j$1 >= vmethods.$length) ? ($throwRuntimeError("index out of range"), undefined) : vmethods.$array[vmethods.$offset + j$1]), abi.Method); + vmName$1 = $clone(nameOffFor(V, vm$1.Name), abi.Name); + if ($clone(vmName$1, abi.Name).Name() === $clone(tmName$1, abi.Name).Name() && typeOffFor(V, vm$1.Mtyp) === t.typeOff(tm$1.Typ)) { + if (!$clone(tmName$1, abi.Name).IsExported()) { + tmPkgPath$1 = pkgPath($clone(tmName$1, abi.Name)); if (tmPkgPath$1 === "") { - tmPkgPath$1 = $clone(t.pkgPath, name).name(); + tmPkgPath$1 = $clone(t.InterfaceType.PkgPath, abi.Name).Name(); } - vmPkgPath$1 = $clone(vmName$1, name).pkgPath(); + vmPkgPath$1 = pkgPath($clone(vmName$1, abi.Name)); if (vmPkgPath$1 === "") { - vmPkgPath$1 = $clone(V.nameOff(v$1.pkgPath), name).name(); + vmPkgPath$1 = $clone(nameOffFor(V, v$1.PkgPath), abi.Name).Name(); } if (!(tmPkgPath$1 === vmPkgPath$1)) { j$1 = j$1 + (1) >> 0; @@ -16367,7 +15929,7 @@ $packages["reflect"] = (function() { } } i$1 = i$1 + (1) >> 0; - if (i$1 >= t.methods.$length) { + if (i$1 >= t.InterfaceType.Methods.$length) { return true; } } @@ -16376,512 +15938,224 @@ $packages["reflect"] = (function() { return false; }; specialChannelAssignability = function specialChannelAssignability$1(T, V) { - var {$24r, T, V, _r, _v, $s, $r, $c} = $restore(this, {T, V}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (!((V.ChanDir() === 3) && (T.Name() === "" || V.Name() === ""))) { _v = false; $s = 1; continue s; } - _r = haveIdenticalType(T.Elem(), V.Elem(), true); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _v = _r; case 1: - $24r = _v; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: specialChannelAssignability$1, $c: true, $r, $24r, T, V, _r, _v, $s};return $f; + var T, V; + return (V.ChanDir() === 3) && (nameFor(T) === "" || nameFor(V) === "") && haveIdenticalType(T.Elem(), V.Elem(), true); }; directlyAssignable = function directlyAssignable$1(T, V) { - var {$24r, T, V, _r, _r$1, _v, $s, $r, $c} = $restore(this, {T, V}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var T, V; if (T === V) { - $s = -1; return true; + return true; } - if (T.hasName() && V.hasName() || !((T.Kind() === V.Kind()))) { - $s = -1; return false; + if (T.HasName() && V.HasName() || !((T.Kind() === V.Kind()))) { + return false; } - if (!(T.Kind() === 18)) { _v = false; $s = 3; continue s; } - _r = specialChannelAssignability(T, V); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _v = _r; case 3: - /* */ if (_v) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (_v) { */ case 1: - $s = -1; return true; - /* } */ case 2: - _r$1 = haveIdenticalUnderlyingType(T, V, true); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 6; case 6: return $24r; - /* */ } return; } var $f = {$blk: directlyAssignable$1, $c: true, $r, $24r, T, V, _r, _r$1, _v, $s};return $f; + if ((T.Kind() === 18) && specialChannelAssignability(T, V)) { + return true; + } + return haveIdenticalUnderlyingType(T, V, true); }; haveIdenticalType = function haveIdenticalType$1(T, V, cmpTags) { - var {$24r, T, V, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _v, _v$1, cmpTags, $s, $r, $c} = $restore(this, {T, V, cmpTags}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var T, V, cmpTags; if (cmpTags) { - $s = -1; return $interfaceIsEqual(T, V); - } - _r = T.Name(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = V.Name(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - if (!(_r === _r$1)) { _v$1 = true; $s = 4; continue s; } - _r$2 = T.Kind(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = V.Kind(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _v$1 = !((_r$2 === _r$3)); case 4: - if (_v$1) { _v = true; $s = 3; continue s; } - _r$4 = T.PkgPath(); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$5 = V.PkgPath(); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _v = !(_r$4 === _r$5); case 3: - /* */ if (_v) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (_v) { */ case 1: - $s = -1; return false; - /* } */ case 2: - _r$6 = T.common(); /* */ $s = 11; case 11: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _arg = _r$6; - _r$7 = V.common(); /* */ $s = 12; case 12: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _arg$1 = _r$7; - _r$8 = haveIdenticalUnderlyingType(_arg, _arg$1, false); /* */ $s = 13; case 13: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - $24r = _r$8; - $s = 14; case 14: return $24r; - /* */ } return; } var $f = {$blk: haveIdenticalType$1, $c: true, $r, $24r, T, V, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _v, _v$1, cmpTags, $s};return $f; + return T === V; + } + if (!(nameFor(T) === nameFor(V)) || !((T.Kind() === V.Kind())) || !(pkgPathFor(T) === pkgPathFor(V))) { + return false; + } + return haveIdenticalUnderlyingType(T, V, false); }; haveIdenticalUnderlyingType = function haveIdenticalUnderlyingType$1(T, V, cmpTags) { - var {$24r, $24r$1, $24r$2, $24r$3, T, V, _1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _v, _v$1, _v$2, cmpTags, i, i$1, i$2, kind$1, t, t$1, t$2, tf, v, v$1, v$2, vf, x, x$1, $s, $r, $c} = $restore(this, {T, V, cmpTags}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var T, V, _1, _i, _ref, cmpTags, i, i$1, i$2, kind$1, t, t$1, t$2, tf, v, v$1, v$2, vf, x, x$1; if (T === V) { - $s = -1; return true; + return true; } - kind$1 = T.Kind(); - if (!((kind$1 === V.Kind()))) { - $s = -1; return false; + kind$1 = ((T.Kind() >>> 0)); + if (!((kind$1 === ((V.Kind() >>> 0))))) { + return false; } if (1 <= kind$1 && kind$1 <= 16 || (kind$1 === 24) || (kind$1 === 26)) { - $s = -1; return true; + return true; } - _1 = kind$1; - /* */ if (_1 === (17)) { $s = 2; continue; } - /* */ if (_1 === (18)) { $s = 3; continue; } - /* */ if (_1 === (19)) { $s = 4; continue; } - /* */ if (_1 === (20)) { $s = 5; continue; } - /* */ if (_1 === (21)) { $s = 6; continue; } - /* */ if ((_1 === (22)) || (_1 === (23))) { $s = 7; continue; } - /* */ if (_1 === (25)) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (_1 === (17)) { */ case 2: - if (!(T.Len() === V.Len())) { _v = false; $s = 10; continue s; } - _r = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 11; case 11: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _v = _r; case 10: - $24r = _v; - $s = 12; case 12: return $24r; - /* } else if (_1 === (18)) { */ case 3: - if (!(V.ChanDir() === T.ChanDir())) { _v$1 = false; $s = 13; continue s; } - _r$1 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v$1 = _r$1; case 13: - $24r$1 = _v$1; - $s = 15; case 15: return $24r$1; - /* } else if (_1 === (19)) { */ case 4: - t = (T.kindType); - v = (V.kindType); - if (!((t.outCount === v.outCount)) || !((t.inCount === v.inCount))) { - $s = -1; return false; + _1 = kind$1; + if (_1 === (17)) { + return (T.Len() === V.Len()) && haveIdenticalType(T.Elem(), V.Elem(), cmpTags); + } else if (_1 === (18)) { + return (V.ChanDir() === T.ChanDir()) && haveIdenticalType(T.Elem(), V.Elem(), cmpTags); + } else if (_1 === (19)) { + t = (T.kindType); + v = (V.kindType); + if (!((t.OutCount === v.OutCount)) || !((t.InCount === v.InCount))) { + return false; + } + i = 0; + while (true) { + if (!(i < t.NumIn())) { break; } + if (!haveIdenticalType(t.In(i), v.In(i), cmpTags)) { + return false; } - i = 0; - /* while (true) { */ case 16: - /* if (!(i < t.rtype.NumIn())) { break; } */ if(!(i < t.rtype.NumIn())) { $s = 17; continue; } - _r$2 = haveIdenticalType(t.rtype.In(i), v.rtype.In(i), cmpTags); /* */ $s = 20; case 20: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (!_r$2) { $s = 18; continue; } - /* */ $s = 19; continue; - /* if (!_r$2) { */ case 18: - $s = -1; return false; - /* } */ case 19: - i = i + (1) >> 0; - $s = 16; continue; - case 17: - i$1 = 0; - /* while (true) { */ case 21: - /* if (!(i$1 < t.rtype.NumOut())) { break; } */ if(!(i$1 < t.rtype.NumOut())) { $s = 22; continue; } - _r$3 = haveIdenticalType(t.rtype.Out(i$1), v.rtype.Out(i$1), cmpTags); /* */ $s = 25; case 25: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (!_r$3) { $s = 23; continue; } - /* */ $s = 24; continue; - /* if (!_r$3) { */ case 23: - $s = -1; return false; - /* } */ case 24: - i$1 = i$1 + (1) >> 0; - $s = 21; continue; - case 22: - $s = -1; return true; - /* } else if (_1 === (20)) { */ case 5: - t$1 = (T.kindType); - v$1 = (V.kindType); - if ((t$1.methods.$length === 0) && (v$1.methods.$length === 0)) { - $s = -1; return true; + i = i + (1) >> 0; + } + i$1 = 0; + while (true) { + if (!(i$1 < t.NumOut())) { break; } + if (!haveIdenticalType(t.Out(i$1), v.Out(i$1), cmpTags)) { + return false; } - $s = -1; return false; - /* } else if (_1 === (21)) { */ case 6: - _r$4 = haveIdenticalType(T.Key(), V.Key(), cmpTags); /* */ $s = 27; case 27: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - if (!(_r$4)) { _v$2 = false; $s = 26; continue s; } - _r$5 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 28; case 28: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _v$2 = _r$5; case 26: - $24r$2 = _v$2; - $s = 29; case 29: return $24r$2; - /* } else if ((_1 === (22)) || (_1 === (23))) { */ case 7: - _r$6 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 30; case 30: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - $24r$3 = _r$6; - $s = 31; case 31: return $24r$3; - /* } else if (_1 === (25)) { */ case 8: - t$2 = (T.kindType); - v$2 = (V.kindType); - if (!((t$2.fields.$length === v$2.fields.$length))) { - $s = -1; return false; + i$1 = i$1 + (1) >> 0; + } + return true; + } else if (_1 === (20)) { + t$1 = (toKindTypeExt(T)); + v$1 = (toKindTypeExt(V)); + if ((t$1.InterfaceType.Methods.$length === 0) && (v$1.InterfaceType.Methods.$length === 0)) { + return true; + } + return false; + } else if (_1 === (21)) { + return haveIdenticalType(T.Key(), V.Key(), cmpTags) && haveIdenticalType(T.Elem(), V.Elem(), cmpTags); + } else if ((_1 === (22)) || (_1 === (23))) { + return haveIdenticalType(T.Elem(), V.Elem(), cmpTags); + } else if (_1 === (25)) { + t$2 = (toKindTypeExt(T)); + v$2 = (toKindTypeExt(V)); + if (!((t$2.StructType.Fields.$length === v$2.StructType.Fields.$length))) { + return false; + } + if (!($clone(t$2.StructType.PkgPath, abi.Name).Name() === $clone(v$2.StructType.PkgPath, abi.Name).Name())) { + return false; + } + _ref = t$2.StructType.Fields; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i$2 = _i; + tf = (x = t$2.StructType.Fields, ((i$2 < 0 || i$2 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + i$2, ptrType$12))); + vf = (x$1 = v$2.StructType.Fields, ((i$2 < 0 || i$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + i$2, ptrType$12))); + if (!($clone(tf.Name, abi.Name).Name() === $clone(vf.Name, abi.Name).Name())) { + return false; } - if (!($clone(t$2.pkgPath, name).name() === $clone(v$2.pkgPath, name).name())) { - $s = -1; return false; + if (!haveIdenticalType(tf.Typ, vf.Typ, cmpTags)) { + return false; } - _ref = t$2.fields; - _i = 0; - /* while (true) { */ case 32: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 33; continue; } - i$2 = _i; - tf = (x = t$2.fields, ((i$2 < 0 || i$2 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i$2])); - vf = (x$1 = v$2.fields, ((i$2 < 0 || i$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$2])); - if (!($clone(tf.name, name).name() === $clone(vf.name, name).name())) { - $s = -1; return false; - } - _r$7 = haveIdenticalType(tf.typ, vf.typ, cmpTags); /* */ $s = 36; case 36: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - /* */ if (!_r$7) { $s = 34; continue; } - /* */ $s = 35; continue; - /* if (!_r$7) { */ case 34: - $s = -1; return false; - /* } */ case 35: - if (cmpTags && !($clone(tf.name, name).tag() === $clone(vf.name, name).tag())) { - $s = -1; return false; - } - if (!((tf.offset === vf.offset))) { - $s = -1; return false; - } - if (!(tf.embedded() === vf.embedded())) { - $s = -1; return false; - } - _i++; - $s = 32; continue; - case 33: - $s = -1; return true; - /* } */ case 9: - case 1: - $s = -1; return false; - /* */ } return; } var $f = {$blk: haveIdenticalUnderlyingType$1, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, T, V, _1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _v, _v$1, _v$2, cmpTags, i, i$1, i$2, kind$1, t, t$1, t$2, tf, v, v$1, v$2, vf, x, x$1, $s};return $f; + if (cmpTags && !($clone(tf.Name, abi.Name).Tag() === $clone(vf.Name, abi.Name).Tag())) { + return false; + } + if (!((tf.Offset === vf.Offset))) { + return false; + } + if (!(tf.Embedded() === vf.Embedded())) { + return false; + } + _i++; + } + return true; + } + return false; + }; + stringFor = function stringFor$1(t) { + var t; + return toRType(t).String(); }; toType = function toType$1(t) { var t; - if (t === ptrType$2.nil) { + if (t === ptrType$4.nil) { return $ifaceNil; } - return t; + return toRType(t); }; ifaceIndir = function ifaceIndir$1(t) { var t; - return ((t.kind & 32) >>> 0) === 0; + return ((t.Kind_ & 32) >>> 0) === 0; }; init = function init$1() { - var {used, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {}); + var {used, x, x$1, x$10, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: used = (function init·func1(i) { var i; }); - $r = used((x = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0), new x.constructor.elem(x))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$1 = new uncommonType.ptr(0, 0, 0, 0, sliceType$13.nil), new x$1.constructor.elem(x$1))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$2 = new method.ptr(0, 0, 0, 0), new x$2.constructor.elem(x$2))); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$3 = new arrayType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0), ptrType$2.nil, ptrType$2.nil, 0), new x$3.constructor.elem(x$3))); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$4 = new chanType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0), ptrType$2.nil, 0), new x$4.constructor.elem(x$4))); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$5 = new funcType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0), 0, 0, sliceType$3.nil, sliceType$3.nil), new x$5.constructor.elem(x$5))); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$6 = new interfaceType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0), new name.ptr(ptrType$13.nil), sliceType$16.nil), new x$6.constructor.elem(x$6))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$7 = new mapType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0), ptrType$2.nil, ptrType$2.nil, ptrType$2.nil, $throwNilPointerError, 0, 0, 0, 0), new x$7.constructor.elem(x$7))); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$8 = new ptrType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0), ptrType$2.nil), new x$8.constructor.elem(x$8))); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$9 = new sliceType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0), ptrType$2.nil), new x$9.constructor.elem(x$9))); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$10 = new structType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0), new name.ptr(ptrType$13.nil), sliceType$17.nil), new x$10.constructor.elem(x$10))); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$11 = new imethod.ptr(0, 0), new x$11.constructor.elem(x$11))); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$12 = new structField.ptr(new name.ptr(ptrType$13.nil), ptrType$2.nil, 0), new x$12.constructor.elem(x$12))); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - initialized = true; - uint8Type = $assertType(TypeOf(new $Uint8(0)), ptrType$2); - $s = -1; return; - /* */ } return; } var $f = {$blk: init$1, $c: true, $r, used, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; - }; - New = function New$1(typ) { - var fl, pt, ptr, t, typ; - if ($interfaceIsEqual(typ, $ifaceNil)) { + $r = used((x = new rtype.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, abi.NameOff.nil, abi.TypeOff.nil)), new x.constructor.elem(x))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$1 = new abi.UncommonType.ptr(abi.NameOff.nil, 0, 0, sliceType$11.nil), new x$1.constructor.elem(x$1))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$2 = new abi.ArrayType.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, abi.NameOff.nil, abi.TypeOff.nil), ptrType$4.nil, ptrType$4.nil, 0), new x$2.constructor.elem(x$2))); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$3 = new abi.ChanType.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, abi.NameOff.nil, abi.TypeOff.nil), ptrType$4.nil, 0), new x$3.constructor.elem(x$3))); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$4 = new abi.FuncType.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, abi.NameOff.nil, abi.TypeOff.nil), 0, 0, sliceType$13.nil, sliceType$13.nil), new x$4.constructor.elem(x$4))); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$5 = new interfaceType.ptr(new abi.InterfaceType.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, abi.NameOff.nil, abi.TypeOff.nil), new abi.Name.ptr("", "", false, false, ""), sliceType$15.nil)), new x$5.constructor.elem(x$5))); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$6 = new mapType.ptr(new abi.MapType.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, abi.NameOff.nil, abi.TypeOff.nil), ptrType$4.nil, ptrType$4.nil, ptrType$4.nil, $throwNilPointerError, 0, 0, 0, 0)), new x$6.constructor.elem(x$6))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$7 = new ptrType.ptr(new abi.PtrType.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, abi.NameOff.nil, abi.TypeOff.nil), ptrType$4.nil)), new x$7.constructor.elem(x$7))); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$8 = new sliceType.ptr(new abi.SliceType.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, abi.NameOff.nil, abi.TypeOff.nil), ptrType$4.nil)), new x$8.constructor.elem(x$8))); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$9 = new structType.ptr(new abi.StructType.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, abi.NameOff.nil, abi.TypeOff.nil), new abi.Name.ptr("", "", false, false, ""), sliceType$16.nil)), new x$9.constructor.elem(x$9))); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$10 = new abi.StructField.ptr(new abi.Name.ptr("", "", false, false, ""), ptrType$4.nil, 0), new x$10.constructor.elem(x$10))); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used(new funcType$3(toKindTypeExt)); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: init$1, $c: true, $r, used, x, x$1, x$10, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; + }; + New = function New$1(typ$1) { + var fl, pt, ptr, t, typ$1; + if ($interfaceIsEqual(typ$1, $ifaceNil)) { $panic(new $String("reflect: New(nil)")); } - t = $assertType(typ, ptrType$2); - pt = t.ptrTo(); + t = toAbiType(typ$1); + pt = t.PtrTo(); ptr = unsafe_New(t); fl = 22; return new Value.ptr(pt, ptr, fl); }; $pkg.New = New; - jsType = function jsType$1(typ) { - var typ; - return typ.jsType; - }; - reflectType = function reflectType$1(typ) { - var _1, _i, _i$1, _i$2, _i$3, _ref, _ref$1, _ref$2, _ref$3, dir, exported, exported$1, f, fields, i, i$1, i$2, i$3, i$4, i$5, imethods, in$1, m, m$1, m$2, methodSet, methods, out, outCount, params, reflectFields, reflectMethods, results, rt, typ, ut, xcount; - if (typ.reflectType === undefined) { - rt = new rtype.ptr(((($parseInt(typ.size) >> 0) >>> 0)), 0, 0, 0, 0, 0, ((($parseInt(typ.kind) >> 0) << 24 >>> 24)), $throwNilPointerError, ptrType$13.nil, resolveReflectName($clone(newName(internalStr(typ.string), "", !!(typ.exported), false), name)), 0); - rt.jsType = typ; - typ.reflectType = rt; - methodSet = $methodSet(typ); - if (!(($parseInt(methodSet.length) === 0)) || !!(typ.named)) { - rt.tflag = (rt.tflag | (1)) >>> 0; - if (!!(typ.named)) { - rt.tflag = (rt.tflag | (4)) >>> 0; - } - reflectMethods = sliceType$13.nil; - i = 0; - while (true) { - if (!(i < $parseInt(methodSet.length))) { break; } - m = methodSet[i]; - exported = internalStr(m.pkg) === ""; - if (!exported) { - i = i + (1) >> 0; - continue; - } - reflectMethods = $append(reflectMethods, new method.ptr(resolveReflectName($clone(newMethodName(m), name)), newTypeOff(reflectType(m.typ)), 0, 0)); - i = i + (1) >> 0; - } - xcount = ((reflectMethods.$length << 16 >>> 16)); - i$1 = 0; - while (true) { - if (!(i$1 < $parseInt(methodSet.length))) { break; } - m$1 = methodSet[i$1]; - exported$1 = internalStr(m$1.pkg) === ""; - if (exported$1) { - i$1 = i$1 + (1) >> 0; - continue; - } - reflectMethods = $append(reflectMethods, new method.ptr(resolveReflectName($clone(newMethodName(m$1), name)), newTypeOff(reflectType(m$1.typ)), 0, 0)); - i$1 = i$1 + (1) >> 0; - } - ut = new uncommonType.ptr(resolveReflectName($clone(newName(internalStr(typ.pkg), "", false, false), name)), (($parseInt(methodSet.length) << 16 >>> 16)), xcount, 0, reflectMethods); - ut.jsType = typ; - rt.uncommonType = ut; - } - _1 = rt.Kind(); - if (_1 === (17)) { - setKindType(rt, new arrayType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0), reflectType(typ.elem), ptrType$2.nil, ((($parseInt(typ.len) >> 0) >>> 0)))); - } else if (_1 === (18)) { - dir = 3; - if (!!(typ.sendOnly)) { - dir = 2; - } - if (!!(typ.recvOnly)) { - dir = 1; - } - setKindType(rt, new chanType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0), reflectType(typ.elem), ((dir >>> 0)))); - } else if (_1 === (19)) { - params = typ.params; - in$1 = $makeSlice(sliceType$3, $parseInt(params.length)); - _ref = in$1; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i$2 = _i; - ((i$2 < 0 || i$2 >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + i$2] = reflectType(params[i$2])); - _i++; - } - results = typ.results; - out = $makeSlice(sliceType$3, $parseInt(results.length)); - _ref$1 = out; - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - i$3 = _i$1; - ((i$3 < 0 || i$3 >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + i$3] = reflectType(results[i$3])); - _i$1++; - } - outCount = (($parseInt(results.length) << 16 >>> 16)); - if (!!(typ.variadic)) { - outCount = (outCount | (32768)) >>> 0; - } - setKindType(rt, new funcType.ptr($clone(rt, rtype), (($parseInt(params.length) << 16 >>> 16)), outCount, in$1, out)); - } else if (_1 === (20)) { - methods = typ.methods; - imethods = $makeSlice(sliceType$16, $parseInt(methods.length)); - _ref$2 = imethods; - _i$2 = 0; - while (true) { - if (!(_i$2 < _ref$2.$length)) { break; } - i$4 = _i$2; - m$2 = methods[i$4]; - imethod.copy(((i$4 < 0 || i$4 >= imethods.$length) ? ($throwRuntimeError("index out of range"), undefined) : imethods.$array[imethods.$offset + i$4]), new imethod.ptr(resolveReflectName($clone(newMethodName(m$2), name)), newTypeOff(reflectType(m$2.typ)))); - _i$2++; - } - setKindType(rt, new interfaceType.ptr($clone(rt, rtype), $clone(newName(internalStr(typ.pkg), "", false, false), name), imethods)); - } else if (_1 === (21)) { - setKindType(rt, new mapType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0), reflectType(typ.key), reflectType(typ.elem), ptrType$2.nil, $throwNilPointerError, 0, 0, 0, 0)); - } else if (_1 === (22)) { - setKindType(rt, new ptrType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0), reflectType(typ.elem))); - } else if (_1 === (23)) { - setKindType(rt, new sliceType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0), reflectType(typ.elem))); - } else if (_1 === (25)) { - fields = typ.fields; - reflectFields = $makeSlice(sliceType$17, $parseInt(fields.length)); - _ref$3 = reflectFields; - _i$3 = 0; - while (true) { - if (!(_i$3 < _ref$3.$length)) { break; } - i$5 = _i$3; - f = fields[i$5]; - structField.copy(((i$5 < 0 || i$5 >= reflectFields.$length) ? ($throwRuntimeError("index out of range"), undefined) : reflectFields.$array[reflectFields.$offset + i$5]), new structField.ptr($clone(newName(internalStr(f.name), internalStr(f.tag), !!(f.exported), !!(f.embedded)), name), reflectType(f.typ), ((i$5 >>> 0)))); - _i$3++; - } - setKindType(rt, new structType.ptr($clone(rt, rtype), $clone(newName(internalStr(typ.pkgPath), "", false, false), name), reflectFields)); - } - } - return ((typ.reflectType)); - }; - setKindType = function setKindType$1(rt, kindType) { - var kindType, rt; - rt.kindType = kindType; - kindType.rtype = rt; - }; - $ptrType(uncommonType).prototype.methods = function methods() { - var t; - t = this; - return t._methods; - }; - $ptrType(uncommonType).prototype.exportedMethods = function exportedMethods$1() { + jsType = function jsType$1(typ$1) { + var typ$1; + return toAbiType(typ$1).JsType(); + }; + toAbiType = function toAbiType$1(typ$1) { + var typ$1; + return $assertType(typ$1, ptrType$9).common(); + }; + toRType = function toRType$1(t) { + var jrt, rtyp, t; + jrt = t.rType; + if (!(jrt === undefined)) { + return ((jrt)); + } + rtyp = new rtype.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, abi.NameOff.nil, abi.TypeOff.nil)); + rtyp.t = t; + t.rType = rtyp; + rtyp.kindType = t.kindType; + return rtyp; + }; + $ptrType(rtype).prototype.String = function String$3() { var t; t = this; - return $subslice(t._methods, 0, t.xcount, t.xcount); - }; - $ptrType(rtype).prototype.uncommon = function uncommon() { - var obj, t; - t = this; - obj = t.uncommonType; - if (obj === undefined) { - return ptrType$9.nil; - } - return ((obj)); + return toAbiType(t).String(); }; - $ptrType(funcType).prototype.in$ = function in$1() { - var t; - t = this; - return t._in; - }; - $ptrType(funcType).prototype.out = function out() { - var t; - t = this; - return t._out; - }; - $ptrType(name).prototype.name = function name$1() { - var _entry, n, s; - s = ""; - n = this; - s = (_entry = $mapIndex(nameMap,ptrType$13.keyFor(n.bytes)), _entry !== undefined ? _entry.v : ptrType$17.nil).name; - return s; - }; - name.prototype.name = function(...$args) { return this.$val.name(...$args); }; - $ptrType(name).prototype.tag = function tag() { - var _entry, n, s; - s = ""; - n = this; - s = (_entry = $mapIndex(nameMap,ptrType$13.keyFor(n.bytes)), _entry !== undefined ? _entry.v : ptrType$17.nil).tag; - return s; - }; - name.prototype.tag = function(...$args) { return this.$val.tag(...$args); }; - $ptrType(name).prototype.pkgPath = function pkgPath() { - var _entry, n; - n = this; - return (_entry = $mapIndex(nameMap,ptrType$13.keyFor(n.bytes)), _entry !== undefined ? _entry.v : ptrType$17.nil).pkgPath; - }; - name.prototype.pkgPath = function(...$args) { return this.$val.pkgPath(...$args); }; - $ptrType(name).prototype.isExported = function isExported() { - var _entry, n; - n = this; - return (_entry = $mapIndex(nameMap,ptrType$13.keyFor(n.bytes)), _entry !== undefined ? _entry.v : ptrType$17.nil).exported; - }; - name.prototype.isExported = function(...$args) { return this.$val.isExported(...$args); }; - $ptrType(name).prototype.embedded = function embedded$1() { - var _entry, n; - n = this; - return (_entry = $mapIndex(nameMap,ptrType$13.keyFor(n.bytes)), _entry !== undefined ? _entry.v : ptrType$17.nil).embedded; - }; - name.prototype.embedded = function(...$args) { return this.$val.embedded(...$args); }; - newName = function newName$1(n, tag$1, exported, embedded$2) { - var _key, b, embedded$2, exported, n, tag$1; - b = $newDataPointer(0, ptrType$13); - _key = b; (nameMap || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$13.keyFor(_key), { k: _key, v: new nameData.ptr(n, tag$1, exported, embedded$2, "") }); - return new name.ptr(b); - }; - newMethodName = function newMethodName$1(m) { - var _key, b, m; - b = $newDataPointer(0, ptrType$13); - _key = b; (nameMap || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$13.keyFor(_key), { k: _key, v: new nameData.ptr(internalStr(m.name), "", internalStr(m.pkg) === "", false, internalStr(m.pkg)) }); - return new name.ptr(b); + rtypeOf = function rtypeOf$1(i) { + var i; + return abi.ReflectType(i.constructor); }; $ptrType(rtype).prototype.nameOff = function nameOff$1(off) { - var off, t, x; + var off, t; t = this; - return (x = ((off >> 0)), ((x < 0 || x >= nameOffList.$length) ? ($throwRuntimeError("index out of range"), undefined) : nameOffList.$array[nameOffList.$offset + x])); - }; - resolveReflectName = function resolveReflectName$1(n) { - var i, n; - i = nameOffList.$length; - nameOffList = $append(nameOffList, n); - return ((i >> 0)); + return toAbiType(t).NameOff(off); }; $ptrType(rtype).prototype.typeOff = function typeOff$1(off) { - var off, t, x; + var off, t; t = this; - return (x = ((off >> 0)), ((x < 0 || x >= typeOffList.$length) ? ($throwRuntimeError("index out of range"), undefined) : typeOffList.$array[typeOffList.$offset + x])); + return toAbiType(t).TypeOff(off); }; - newTypeOff = function newTypeOff$1(t) { - var i, t; - i = typeOffList.$length; - typeOffList = $append(typeOffList, t); - return ((i >> 0)); - }; - internalStr = function internalStr$1(strObj) { - var c, strObj; - c = new structType$3.ptr(""); - c.str = strObj; - return c.str; - }; - isWrapped = function isWrapped$1(typ) { - var typ; - return !!(jsType(typ).wrapped); - }; - copyStruct = function copyStruct$1(dst, src, typ) { - var dst, fields, i, prop, src, typ; - fields = jsType(typ).fields; - i = 0; - while (true) { - if (!(i < $parseInt(fields.length))) { break; } - prop = $internalize(fields[i].prop, $String); - dst[$externalize(prop, $String)] = src[$externalize(prop, $String)]; - i = i + (1) >> 0; - } + pkgPath = function pkgPath$1(n) { + var n; + return $clone(n, abi.Name).PkgPath(); }; makeValue = function makeValue$1(t, v, fl) { - var {$24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _v, _v$1, fl, rt, t, v, $s, $r, $c} = $restore(this, {t, v, fl}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = t.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - rt = _r; - _r$1 = t.Kind(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - if (_r$1 === 17) { _v$1 = true; $s = 5; continue s; } - _r$2 = t.Kind(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _v$1 = _r$2 === 25; case 5: - if (_v$1) { _v = true; $s = 4; continue s; } - _r$3 = t.Kind(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _v = _r$3 === 22; case 4: - /* */ if (_v) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (_v) { */ case 2: - _r$4 = t.Kind(); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $24r = new Value.ptr(rt, (v), (fl | ((_r$4 >>> 0))) >>> 0); - $s = 10; case 10: return $24r; - /* } */ case 3: - _r$5 = t.Kind(); /* */ $s = 11; case 11: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - $24r$1 = new Value.ptr(rt, ($newDataPointer(v, jsType(rt.ptrTo()))), (((fl | ((_r$5 >>> 0))) >>> 0) | 128) >>> 0); - $s = 12; case 12: return $24r$1; - /* */ } return; } var $f = {$blk: makeValue$1, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _v, _v$1, fl, rt, t, v, $s};return $f; + var _1, fl, t, v; + _1 = t.Kind(); + if ((_1 === (17)) || (_1 === (25)) || (_1 === (22))) { + return new Value.ptr(t, (v), (fl | ((t.Kind() >>> 0))) >>> 0); + } + return new Value.ptr(t, ($newDataPointer(v, t.JsPtrTo())), (((fl | ((t.Kind() >>> 0))) >>> 0) | 128) >>> 0); }; - MakeSlice = function MakeSlice$1(typ, len, cap) { - var {$24r, _r, _r$1, cap, len, typ, $s, $r, $c} = $restore(this, {typ, len, cap}); + MakeSlice = function MakeSlice$1(typ$1, len, cap) { + var {_r, cap, len, typ$1, $s, $r, $c} = $restore(this, {typ$1, len, cap}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - typ = [typ]; - _r = typ[0].Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + typ$1 = [typ$1]; + _r = typ$1[0].Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (!((_r === 23))) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!((_r === 23))) { */ case 1: @@ -16896,49 +16170,40 @@ $packages["reflect"] = (function() { if (len > cap) { $panic(new $String("reflect.MakeSlice: len > cap")); } - _r$1 = makeValue(typ[0], $makeSlice(jsType(typ[0]), len, cap, (function(typ) { return function MakeSlice·func1() { + $s = -1; return makeValue(toAbiType(typ$1[0]), $makeSlice(jsType(typ$1[0]), len, cap, (function(typ$1) { return function MakeSlice·func1() { var {$24r, _r$1, _r$2, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = typ[0].Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1 = typ$1[0].Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _r$2 = jsType(_r$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $24r = _r$2.zero(); $s = 3; case 3: return $24r; /* */ } return; } var $f = {$blk: MakeSlice·func1, $c: true, $r, $24r, _r$1, _r$2, $s};return $f; - }; })(typ)), 0); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 5; case 5: return $24r; - /* */ } return; } var $f = {$blk: MakeSlice$1, $c: true, $r, $24r, _r, _r$1, cap, len, typ, $s};return $f; + }; })(typ$1)), 0); + /* */ } return; } var $f = {$blk: MakeSlice$1, $c: true, $r, _r, cap, len, typ$1, $s};return $f; }; $pkg.MakeSlice = MakeSlice; TypeOf = function TypeOf$1(i) { var i; - if (!initialized) { - return new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0); - } if ($interfaceIsEqual(i, $ifaceNil)) { return $ifaceNil; } - return reflectType(i.constructor); + return toRType(rtypeOf(i)); }; $pkg.TypeOf = TypeOf; ValueOf = function ValueOf$1(i) { - var {$24r, _r, i, $s, $r, $c} = $restore(this, {i}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var i; if ($interfaceIsEqual(i, $ifaceNil)) { - $s = -1; return new Value.ptr(ptrType$2.nil, 0, 0); + return new Value.ptr(ptrType$4.nil, 0, 0); } - _r = makeValue(reflectType(i.constructor), i.$val, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: ValueOf$1, $c: true, $r, $24r, _r, i, $s};return $f; + return makeValue(rtypeOf(i), i.$val, 0); }; $pkg.ValueOf = ValueOf; - FuncOf = function FuncOf$1(in$2, out$1, variadic) { - var {_i, _i$1, _r, _ref, _ref$1, _v, _v$1, i, i$1, in$2, jsIn, jsOut, out$1, v, v$1, variadic, x, $s, $r, $c} = $restore(this, {in$2, out$1, variadic}); + FuncOf = function FuncOf$1(in$1, out, variadic) { + var {_i, _i$1, _r, _ref, _ref$1, _v, _v$1, i, i$1, in$1, jsIn, jsOut, out, v, v$1, variadic, x, $s, $r, $c} = $restore(this, {in$1, out, variadic}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if (!(variadic)) { _v = false; $s = 3; continue s; } - if (in$2.$length === 0) { _v$1 = true; $s = 4; continue s; } - _r = (x = in$2.$length - 1 >> 0, ((x < 0 || x >= in$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$2.$array[in$2.$offset + x])).Kind(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + if (in$1.$length === 0) { _v$1 = true; $s = 4; continue s; } + _r = (x = in$1.$length - 1 >> 0, ((x < 0 || x >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + x])).Kind(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _v$1 = !((_r === 23)); case 4: _v = _v$1; case 3: /* */ if (_v) { $s = 1; continue; } @@ -16946,8 +16211,8 @@ $packages["reflect"] = (function() { /* if (_v) { */ case 1: $panic(new $String("reflect.FuncOf: last arg of variadic func must be slice")); /* } */ case 2: - jsIn = $makeSlice(sliceType$18, in$2.$length); - _ref = in$2; + jsIn = $makeSlice(sliceType$17, in$1.$length); + _ref = in$1; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } @@ -16956,8 +16221,8 @@ $packages["reflect"] = (function() { ((i < 0 || i >= jsIn.$length) ? ($throwRuntimeError("index out of range"), undefined) : jsIn.$array[jsIn.$offset + i] = jsType(v)); _i++; } - jsOut = $makeSlice(sliceType$18, out$1.$length); - _ref$1 = out$1; + jsOut = $makeSlice(sliceType$17, out.$length); + _ref$1 = out; _i$1 = 0; while (true) { if (!(_i$1 < _ref$1.$length)) { break; } @@ -16966,47 +16231,36 @@ $packages["reflect"] = (function() { ((i$1 < 0 || i$1 >= jsOut.$length) ? ($throwRuntimeError("index out of range"), undefined) : jsOut.$array[jsOut.$offset + i$1] = jsType(v$1)); _i$1++; } - $s = -1; return reflectType($funcType($externalize(jsIn, sliceType$18), $externalize(jsOut, sliceType$18), $externalize(variadic, $Bool))); - /* */ } return; } var $f = {$blk: FuncOf$1, $c: true, $r, _i, _i$1, _r, _ref, _ref$1, _v, _v$1, i, i$1, in$2, jsIn, jsOut, out$1, v, v$1, variadic, x, $s};return $f; + $s = -1; return toRType(abi.ReflectType($funcType($externalize(jsIn, sliceType$17), $externalize(jsOut, sliceType$17), $externalize(variadic, $Bool)))); + /* */ } return; } var $f = {$blk: FuncOf$1, $c: true, $r, _i, _i$1, _r, _ref, _ref$1, _v, _v$1, i, i$1, in$1, jsIn, jsOut, out, v, v$1, variadic, x, $s};return $f; }; $pkg.FuncOf = FuncOf; - $ptrType(rtype).prototype.ptrTo = function ptrTo() { + $ptrType(rtype).prototype.ptrTo = function ptrTo$2() { var t; t = this; - return reflectType($ptrType(jsType(t))); + return abi.ReflectType($ptrType(jsType(t))); }; SliceOf = function SliceOf$1(t) { var t; - return reflectType($sliceType(jsType(t))); + return toRType(abi.ReflectType($sliceType(jsType(t)))); }; $pkg.SliceOf = SliceOf; - Zero = function Zero$1(typ) { - var {$24r, _r, typ, $s, $r, $c} = $restore(this, {typ}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = makeValue(typ, jsType(typ).zero(), 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Zero$1, $c: true, $r, $24r, _r, typ, $s};return $f; + Zero = function Zero$1(typ$1) { + var typ$1; + return makeValue(toAbiType(typ$1), jsType(typ$1).zero(), 0); }; $pkg.Zero = Zero; - unsafe_New = function unsafe_New$1(typ) { - var _1, typ; - _1 = typ.Kind(); - if (_1 === (25)) { - return (new (jsType(typ).ptr)()); - } else if (_1 === (17)) { - return (jsType(typ).zero()); - } else { - return ($newDataPointer(jsType(typ).zero(), jsType(typ.ptrTo()))); - } + unsafe_New = function unsafe_New$1(typ$1) { + var typ$1; + return abi.UnsafeNew(typ$1); }; makeInt = function makeInt$1(f, bits, t) { - var {_1, _r, bits, f, ptr, t, typ, $s, $r, $c} = $restore(this, {f, bits, t}); + var {_1, _r, bits, f, ptr, t, typ$1, $s, $r, $c} = $restore(this, {f, bits, t}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: _r = t.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - typ = _r; - ptr = unsafe_New(typ); - _1 = typ.Kind(); + typ$1 = _r; + ptr = unsafe_New(typ$1); + _1 = typ$1.Kind(); if (_1 === (3)) { (ptr).$set(((bits.$low << 24 >> 24))); } else if (_1 === (4)) { @@ -17024,12 +16278,12 @@ $packages["reflect"] = (function() { } else if (_1 === (11)) { (ptr).$set((bits)); } - $s = -1; return new Value.ptr(typ, ptr, (((f | 128) >>> 0) | ((typ.Kind() >>> 0))) >>> 0); - /* */ } return; } var $f = {$blk: makeInt$1, $c: true, $r, _1, _r, bits, f, ptr, t, typ, $s};return $f; + $s = -1; return new Value.ptr(typ$1, ptr, (((f | 128) >>> 0) | ((typ$1.Kind() >>> 0))) >>> 0); + /* */ } return; } var $f = {$blk: makeInt$1, $c: true, $r, _1, _r, bits, f, ptr, t, typ$1, $s};return $f; }; typedmemmove = function typedmemmove$1(t, dst, src) { var dst, src, t; - dst.$set(src.$get()); + abi.TypedMemMove(t, dst, src); }; makemap = function makemap$1(t, cap) { var cap, m, t; @@ -17043,7 +16297,7 @@ $packages["reflect"] = (function() { if (!(kv.$get === undefined)) { kv = kv.$get(); } - k = jsType(t.Key()).keyFor(kv); + k = t.Key().JsType().keyFor(kv); return [kv, k]; }; mapaccess = function mapaccess$1(t, m, key) { @@ -17057,30 +16311,24 @@ $packages["reflect"] = (function() { if (entry === undefined) { return 0; } - return ($newDataPointer(entry.v, jsType(PtrTo(t.Elem())))); + return ($newDataPointer(entry.v, t.Elem().JsPtrTo())); }; mapassign = function mapassign$1(t, m, key, val) { - var {_r, _tuple, entry, et, jsVal, k, key, kv, m, newVal, t, val, $s, $r, $c} = $restore(this, {t, m, key, val}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var _tuple, entry, et, jsVal, k, key, kv, m, newVal, t, val; _tuple = keyFor(t, key); kv = _tuple[0]; k = _tuple[1]; jsVal = val.$get(); et = t.Elem(); - _r = et.Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - /* */ if (_r === 25) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (_r === 25) { */ case 1: - newVal = jsType(et).zero(); - copyStruct(newVal, jsVal, et); + if (et.Kind() === 25) { + newVal = et.JsType().zero(); + abi.CopyStruct(newVal, jsVal, et); jsVal = newVal; - /* } */ case 2: + } entry = new ($global.Object)(); entry.k = kv; entry.v = jsVal; m.set(k, entry); - $s = -1; return; - /* */ } return; } var $f = {$blk: mapassign$1, $c: true, $r, _r, _tuple, entry, et, jsVal, k, key, kv, m, newVal, t, val, $s};return $f; }; mapdelete = function mapdelete$1(t, m, key) { var _tuple, k, key, m, t; @@ -17098,12 +16346,8 @@ $packages["reflect"] = (function() { return val; }; mapassign_faststr = function mapassign_faststr$1(t, m, key, val) { - var {key, m, t, val, $s, $r, $c} = $restore(this, {t, m, key, val}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - key = [key]; - $r = mapassign(t, m, ((key.$ptr || (key.$ptr = new ptrType$18(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, key)))), val); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: mapassign_faststr$1, $c: true, $r, key, m, t, val, $s};return $f; + var key, key$24ptr, m, t, val; + mapassign(t, m, ((key$24ptr || (key$24ptr = new ptrType$18(function() { return key; }, function($v) { key = $v; })))), val); }; mapdelete_faststr = function mapdelete_faststr$1(t, m, key) { var key, key$24ptr, m, t; @@ -17132,51 +16376,39 @@ $packages["reflect"] = (function() { keys = $global.Array.from(keysIter); } } - hiter.copy(it, new hiter.ptr(t, mapObj, keys, 0, null)); + hiter.copy((it === ptrType$19.nil && $throwNilPointerError(), it), new hiter.ptr(t, mapObj, keys, 0, null)); }; mapiterkey = function mapiterkey$1(it) { - var {$24r, _r, _r$1, _r$2, it, k, kv, $s, $r, $c} = $restore(this, {it}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var it, k, kv; kv = null; if (!(it.last === null)) { kv = it.last; } else { it.skipUntilValidKey(); if (it.i === $parseInt(it.keys.length)) { - $s = -1; return 0; + return 0; } k = it.keys[it.i]; kv = it.m.get(k); it.last = kv; } - _r = it.t.Key(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = PtrTo(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = jsType(_r$1); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = ($newDataPointer(kv.k, _r$2)); - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: mapiterkey$1, $c: true, $r, $24r, _r, _r$1, _r$2, it, k, kv, $s};return $f; + return ($newDataPointer(kv.k, it.t.Key().JsPtrTo())); }; mapiterelem = function mapiterelem$1(it) { - var {$24r, _r, _r$1, _r$2, it, k, kv, $s, $r, $c} = $restore(this, {it}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var it, k, kv; kv = null; if (!(it.last === null)) { kv = it.last; } else { it.skipUntilValidKey(); if (it.i === $parseInt(it.keys.length)) { - $s = -1; return 0; + return 0; } k = it.keys[it.i]; kv = it.m.get(k); it.last = kv; } - _r = it.t.Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = PtrTo(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = jsType(_r$1); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = ($newDataPointer(kv.v, _r$2)); - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: mapiterelem$1, $c: true, $r, $24r, _r, _r$1, _r$2, it, k, kv, $s};return $f; + return ($newDataPointer(kv.v, it.t.Elem().JsPtrTo())); }; mapiternext = function mapiternext$1(it) { var it; @@ -17187,79 +16419,77 @@ $packages["reflect"] = (function() { var m; return $parseInt(m.size) >> 0; }; - cvtDirect = function cvtDirect$1(v, typ) { - var {$24r, $24r$1, _1, _2, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, k, slice, srcVal, typ, v, val, $s, $r, $c} = $restore(this, {v, typ}); + cvtDirect = function cvtDirect$1(v, typ$1) { + var {$24r, _1, _2, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, k, slice, srcVal, typ$1, v, val, $s, $r, $c} = $restore(this, {v, typ$1}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: srcVal = $clone(v, Value).object(); - /* */ if (srcVal === jsType(v.typ).nil) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (srcVal === jsType(v.typ).nil) { */ case 1: - _r = makeValue(typ, jsType(typ).nil, v.flag); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 4; case 4: return $24r; - /* } */ case 2: + if (srcVal === $clone(v, Value).typ().JsType().nil) { + $s = -1; return makeValue(toAbiType(typ$1), jsType(typ$1).nil, v.flag); + } val = null; - _r$1 = typ.Kind(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - k = _r$1; + _r = typ$1.Kind(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + k = _r; _1 = k; - /* */ if (_1 === (23)) { $s = 7; continue; } - /* */ if (_1 === (22)) { $s = 8; continue; } - /* */ if (_1 === (25)) { $s = 9; continue; } - /* */ if ((_1 === (17)) || (_1 === (1)) || (_1 === (18)) || (_1 === (19)) || (_1 === (20)) || (_1 === (21)) || (_1 === (24)) || (_1 === (26))) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (_1 === (23)) { */ case 7: - slice = new (jsType(typ))(srcVal.$array); + /* */ if (_1 === (23)) { $s = 3; continue; } + /* */ if (_1 === (22)) { $s = 4; continue; } + /* */ if (_1 === (25)) { $s = 5; continue; } + /* */ if ((_1 === (17)) || (_1 === (1)) || (_1 === (18)) || (_1 === (19)) || (_1 === (20)) || (_1 === (21)) || (_1 === (24)) || (_1 === (26))) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (_1 === (23)) { */ case 3: + slice = new (jsType(typ$1))(srcVal.$array); slice.$offset = srcVal.$offset; slice.$length = srcVal.$length; slice.$capacity = srcVal.$capacity; - val = $newDataPointer(slice, jsType(PtrTo(typ))); - $s = 12; continue; - /* } else if (_1 === (22)) { */ case 8: - _r$2 = typ.Elem(); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = _r$2.Kind(); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _2 = _r$3; - /* */ if (_2 === (25)) { $s = 16; continue; } - /* */ if (_2 === (17)) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (_2 === (25)) { */ case 16: - _r$4 = typ.Elem(); /* */ $s = 22; case 22: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if ($interfaceIsEqual(_r$4, v.typ.Elem())) { $s = 20; continue; } - /* */ $s = 21; continue; - /* if ($interfaceIsEqual(_r$4, v.typ.Elem())) { */ case 20: + val = $newDataPointer(slice, jsType(PtrTo(typ$1))); + $s = 8; continue; + /* } else if (_1 === (22)) { */ case 4: + _r$1 = typ$1.Elem(); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = _r$1.Kind(); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _2 = _r$2; + /* */ if (_2 === (25)) { $s = 12; continue; } + /* */ if (_2 === (17)) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (_2 === (25)) { */ case 12: + _r$3 = typ$1.Elem(); /* */ $s = 18; case 18: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$4 = toAbiType(_r$3); /* */ $s = 19; case 19: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (_r$4 === $clone(v, Value).typ().Elem()) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (_r$4 === $clone(v, Value).typ().Elem()) { */ case 16: val = srcVal; - /* break; */ $s = 13; continue; - /* } */ case 21: - val = new (jsType(typ))(); + /* break; */ $s = 9; continue; + /* } */ case 17: + val = new (jsType(typ$1))(); _arg = val; _arg$1 = srcVal; - _r$5 = typ.Elem(); /* */ $s = 23; case 23: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _arg$2 = _r$5; - $r = copyStruct(_arg, _arg$1, _arg$2); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 19; continue; - /* } else if (_2 === (17)) { */ case 17: + _r$5 = typ$1.Elem(); /* */ $s = 20; case 20: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$6 = toAbiType(_r$5); /* */ $s = 21; case 21: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _arg$2 = _r$6; + $r = abi.CopyStruct(_arg, _arg$1, _arg$2); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 15; continue; + /* } else if (_2 === (17)) { */ case 13: val = srcVal; - $s = 19; continue; - /* } else { */ case 18: - val = new (jsType(typ))(srcVal.$get, srcVal.$set); - /* } */ case 19: - case 13: - $s = 12; continue; - /* } else if (_1 === (25)) { */ case 9: - val = new (jsType(typ).ptr)(); - copyStruct(val, srcVal, typ); - $s = 12; continue; - /* } else if ((_1 === (17)) || (_1 === (1)) || (_1 === (18)) || (_1 === (19)) || (_1 === (20)) || (_1 === (21)) || (_1 === (24)) || (_1 === (26))) { */ case 10: + $s = 15; continue; + /* } else { */ case 14: + val = new (jsType(typ$1))(srcVal.$get, srcVal.$set, srcVal.$target, srcVal.$index); + /* } */ case 15: + case 9: + $s = 8; continue; + /* } else if (_1 === (25)) { */ case 5: + val = new (jsType(typ$1).ptr)(); + abi.CopyStruct(val, srcVal, toAbiType(typ$1)); + $s = 8; continue; + /* } else if ((_1 === (17)) || (_1 === (1)) || (_1 === (18)) || (_1 === (19)) || (_1 === (20)) || (_1 === (21)) || (_1 === (24)) || (_1 === (26))) { */ case 6: val = v.ptr; - $s = 12; continue; - /* } else { */ case 11: + $s = 8; continue; + /* } else { */ case 7: $panic(new ValueError.ptr("reflect.Convert", k)); - /* } */ case 12: - case 5: - _r$6 = typ.common(); /* */ $s = 25; case 25: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _r$7 = typ.Kind(); /* */ $s = 26; case 26: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - $24r$1 = new Value.ptr(_r$6, (val), (((new flag(v.flag).ro() | ((v.flag & 128) >>> 0)) >>> 0) | ((_r$7 >>> 0))) >>> 0); - $s = 27; case 27: return $24r$1; - /* */ } return; } var $f = {$blk: cvtDirect$1, $c: true, $r, $24r, $24r$1, _1, _2, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, k, slice, srcVal, typ, v, val, $s};return $f; + /* } */ case 8: + case 1: + _r$7 = typ$1.common(); /* */ $s = 23; case 23: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$8 = typ$1.Kind(); /* */ $s = 24; case 24: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + $24r = new Value.ptr(_r$7, (val), (((new flag(v.flag).ro() | ((v.flag & 128) >>> 0)) >>> 0) | ((_r$8 >>> 0))) >>> 0); + $s = 25; case 25: return $24r; + /* */ } return; } var $f = {$blk: cvtDirect$1, $c: true, $r, $24r, _1, _2, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, k, slice, srcVal, typ$1, v, val, $s};return $f; }; cvtSliceArrayPtr = function cvtSliceArrayPtr$1(v, t) { var {$24r, _r, _r$1, _r$2, alen, array, slen, slice, t, v, $s, $r, $c} = $restore(this, {v, t}); @@ -17279,33 +16509,28 @@ $packages["reflect"] = (function() { /* */ } return; } var $f = {$blk: cvtSliceArrayPtr$1, $c: true, $r, $24r, _r, _r$1, _r$2, alen, array, slen, slice, t, v, $s};return $f; }; cvtSliceArray = function cvtSliceArray$1(v, t) { - var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, arr, dst, n, slice, t, v, $s, $r, $c} = $restore(this, {v, t}); + var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, arr, dst, n, slice, t, v, $s, $r, $c} = $restore(this, {v, t}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: _r = t.Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } n = _r; - _r$1 = $clone(v, Value).Len(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (n > _r$1) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (n > _r$1) { */ case 2: - _r$2 = $clone(v, Value).Len(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = itoa.Itoa(_r$2); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $panic(new $String("reflect: cannot convert slice with length " + _r$3 + " to array with length " + itoa.Itoa(n))); - /* } */ case 3: + if (n > $clone(v, Value).Len()) { + $panic(new $String("reflect: cannot convert slice with length " + itoa.Itoa($clone(v, Value).Len()) + " to array with length " + itoa.Itoa(n))); + } slice = $clone(v, Value).object(); - _r$4 = t.Elem(); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$5 = SliceOf(_r$4); /* */ $s = 8; case 8: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$6 = MakeSlice(_r$5, n, n); /* */ $s = 9; case 9: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _r$7 = $clone(_r$6, Value).object(); /* */ $s = 10; case 10: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - dst = _r$7; + _r$1 = t.Elem(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = SliceOf(_r$1); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = MakeSlice(_r$2, n, n); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$4 = $clone(_r$3, Value).object(); /* */ $s = 5; case 5: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + dst = _r$4; $copySlice(dst, slice); arr = dst.$array; - _r$8 = t.common(); /* */ $s = 11; case 11: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - $24r = new Value.ptr(_r$8, (arr), (((v.flag & ~287) >>> 0) | 17) >>> 0); - $s = 12; case 12: return $24r; - /* */ } return; } var $f = {$blk: cvtSliceArray$1, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, arr, dst, n, slice, t, v, $s};return $f; + _r$5 = t.common(); /* */ $s = 6; case 6: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $24r = new Value.ptr(_r$5, (arr), (((v.flag & ~287) >>> 0) | 17) >>> 0); + $s = 7; case 7: return $24r; + /* */ } return; } var $f = {$blk: cvtSliceArray$1, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, arr, dst, n, slice, t, v, $s};return $f; }; Copy = function Copy$1(dst, src) { - var {_r, _v, dk, dst, dstVal, sk, src, srcVal, stringCopy, $s, $r, $c} = $restore(this, {dst, src}); + var {dk, dst, dstVal, sk, src, srcVal, stringCopy, $s, $r, $c} = $restore(this, {dst, src}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: dk = new flag(dst.flag).kind(); if (!((dk === 17)) && !((dk === 23))) { @@ -17317,76 +16542,73 @@ $packages["reflect"] = (function() { new flag(dst.flag).mustBeExported(); sk = new flag(src.flag).kind(); stringCopy = false; - /* */ if (!((sk === 17)) && !((sk === 23))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!((sk === 17)) && !((sk === 23))) { */ case 1: - if (!(sk === 24)) { _v = false; $s = 3; continue s; } - _r = dst.typ.Elem().Kind(); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _v = _r === 8; case 3: - stringCopy = _v; + if (!((sk === 17)) && !((sk === 23))) { + stringCopy = (sk === 24) && ($clone(dst, Value).typ().Elem().Kind() === 8); if (!stringCopy) { $panic(new ValueError.ptr("reflect.Copy", sk)); } - /* } */ case 2: + } new flag(src.flag).mustBeExported(); - /* */ if (!stringCopy) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (!stringCopy) { */ case 5: - $r = typesMustMatch("reflect.Copy", dst.typ.Elem(), src.typ.Elem()); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 6: + /* */ if (!stringCopy) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!stringCopy) { */ case 1: + $r = typesMustMatch("reflect.Copy", toRType($clone(dst, Value).typ().Elem()), toRType($clone(src, Value).typ().Elem())); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: dstVal = $clone(dst, Value).object(); if (dk === 17) { - dstVal = new (jsType(SliceOf(dst.typ.Elem())))(dstVal); + dstVal = new (jsType(SliceOf(toRType($clone(dst, Value).typ().Elem()))))(dstVal); } srcVal = $clone(src, Value).object(); if (sk === 17) { - srcVal = new (jsType(SliceOf(src.typ.Elem())))(srcVal); + srcVal = new (jsType(SliceOf(toRType($clone(src, Value).typ().Elem()))))(srcVal); } if (stringCopy) { $s = -1; return $parseInt($copyString(dstVal, srcVal)) >> 0; } $s = -1; return $parseInt($copySlice(dstVal, srcVal)) >> 0; - /* */ } return; } var $f = {$blk: Copy$1, $c: true, $r, _r, _v, dk, dst, dstVal, sk, src, srcVal, stringCopy, $s};return $f; + /* */ } return; } var $f = {$blk: Copy$1, $c: true, $r, dk, dst, dstVal, sk, src, srcVal, stringCopy, $s};return $f; }; $pkg.Copy = Copy; - methodReceiver = function methodReceiver$1(op, v, i) { - var _, fn, i, m, m$1, ms, op, prop, rcvr, t, tt, v, x; - _ = ptrType$2.nil; - t = ptrType$19.nil; + methodReceiver = function methodReceiver$1(op, v, methodIndex) { + var fn, i, m, m$1, methodIndex, ms, op, prop, rcvr, rcvrtype, t, tt, v, x; + rcvrtype = ptrType$4.nil; + t = ptrType$20.nil; fn = 0; + i = methodIndex; prop = ""; - if (v.typ.Kind() === 20) { - tt = (v.typ.kindType); - if (i < 0 || i >= tt.methods.$length) { + if ($clone(v, Value).typ().Kind() === 20) { + tt = (toKindTypeExt($clone(v, Value).typ())); + if (i < 0 || i >= tt.InterfaceType.Methods.$length) { $panic(new $String("reflect: internal error: invalid method index")); } - m = (x = tt.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - if (!$clone(tt.rtype.nameOff(m.name), name).isExported()) { + m = (x = tt.InterfaceType.Methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + i, ptrType$7))); + if (!$clone(tt.InterfaceType.Type.NameOff(m.Name), abi.Name).IsExported()) { $panic(new $String("reflect: " + op + " of unexported method")); } - t = (tt.rtype.typeOff(m.typ).kindType); - prop = $clone(tt.rtype.nameOff(m.name), name).name(); + t = (tt.typeOff(m.Typ).kindType); + prop = $clone(tt.InterfaceType.Type.NameOff(m.Name), abi.Name).Name(); } else { - ms = v.typ.exportedMethods(); + rcvrtype = $clone(v, Value).typ(); + ms = $clone(v, Value).typ().ExportedMethods(); if (((i >>> 0)) >= ((ms.$length >>> 0))) { $panic(new $String("reflect: internal error: invalid method index")); } - m$1 = $clone(((i < 0 || i >= ms.$length) ? ($throwRuntimeError("index out of range"), undefined) : ms.$array[ms.$offset + i]), method); - if (!$clone(v.typ.nameOff(m$1.name), name).isExported()) { + m$1 = $clone(((i < 0 || i >= ms.$length) ? ($throwRuntimeError("index out of range"), undefined) : ms.$array[ms.$offset + i]), abi.Method); + if (!$clone($clone(v, Value).typ().NameOff(m$1.Name), abi.Name).IsExported()) { $panic(new $String("reflect: " + op + " of unexported method")); } - t = (v.typ.typeOff(m$1.mtyp).kindType); - prop = $internalize($methodSet(jsType(v.typ))[i].prop, $String); + t = ($clone(v, Value).typ().TypeOff(m$1.Mtyp).kindType); + prop = $internalize($methodSet($clone(v, Value).typ().JsType())[i].prop, $String); } rcvr = $clone(v, Value).object(); - if (isWrapped(v.typ)) { - rcvr = new (jsType(v.typ))(rcvr); + if ($clone(v, Value).typ().IsWrapped()) { + rcvr = new ($clone(v, Value).typ().JsType())(rcvr); } fn = (rcvr[$externalize(prop, $String)]); - return [_, t, fn]; + return [rcvrtype, t, fn]; }; valueInterface = function valueInterface$1(v, safe) { - var {_r, cv, safe, v, $s, $r, $c} = $restore(this, {v, safe}); + var {_r, cv, jsTyp, safe, v, $s, $r, $c} = $restore(this, {v, safe}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if (v.flag === 0) { $panic(new ValueError.ptr("reflect.Value.Interface", 0)); @@ -17400,20 +16622,21 @@ $packages["reflect"] = (function() { _r = makeMethodValue("Interface", $clone(v, Value)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } v = _r; /* } */ case 2: - if (isWrapped(v.typ)) { + if ($clone(v, Value).typ().IsWrapped()) { + jsTyp = $clone(v, Value).typ().JsType(); if (!((((v.flag & 128) >>> 0) === 0)) && ($clone(v, Value).Kind() === 25)) { - cv = jsType(v.typ).zero(); - copyStruct(cv, $clone(v, Value).object(), v.typ); - $s = -1; return ((new (jsType(v.typ))(cv))); + cv = jsTyp.zero(); + abi.CopyStruct(cv, $clone(v, Value).object(), $clone(v, Value).typ()); + $s = -1; return ((new (jsTyp)(cv))); } - $s = -1; return ((new (jsType(v.typ))($clone(v, Value).object()))); + $s = -1; return ((new (jsTyp)($clone(v, Value).object()))); } $s = -1; return (($clone(v, Value).object())); - /* */ } return; } var $f = {$blk: valueInterface$1, $c: true, $r, _r, cv, safe, v, $s};return $f; + /* */ } return; } var $f = {$blk: valueInterface$1, $c: true, $r, _r, cv, jsTyp, safe, v, $s};return $f; }; ifaceE2I = function ifaceE2I$1(t, src, dst) { var dst, src, t; - dst.$set(src); + abi.IfaceE2I(t, src, dst); }; makeMethodValue = function makeMethodValue$1(op, v) { var {$24r, _r, _tuple, fn, fv, op, rcvr, v, $s, $r, $c} = $restore(this, {op, v}); @@ -17426,137 +16649,100 @@ $packages["reflect"] = (function() { _tuple = methodReceiver(op, $clone(v, Value), ((v.flag >> 0)) >> 10 >> 0); fn[0] = _tuple[2]; rcvr[0] = $clone(v, Value).object(); - if (isWrapped(v.typ)) { - rcvr[0] = new (jsType(v.typ))(rcvr[0]); + if ($clone(v, Value).typ().IsWrapped()) { + rcvr[0] = new ($clone(v, Value).typ().JsType())(rcvr[0]); } fv = js.MakeFunc((function(fn, rcvr) { return function makeMethodValue·func1(this$1, arguments$1) { var arguments$1, this$1; - return new $jsObjectPtr(fn[0].apply(rcvr[0], $externalize(arguments$1, sliceType$18))); + return new $jsObjectPtr(fn[0].apply(rcvr[0], $externalize(arguments$1, sliceType$17))); }; })(fn, rcvr)); _r = $clone(v, Value).Type().common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $24r = new Value.ptr(_r, (fv), (new flag(v.flag).ro() | 19) >>> 0); $s = 2; case 2: return $24r; /* */ } return; } var $f = {$blk: makeMethodValue$1, $c: true, $r, $24r, _r, _tuple, fn, fv, op, rcvr, v, $s};return $f; }; - $ptrType(rtype).prototype.pointers = function pointers() { - var _1, t; - t = this; - _1 = t.Kind(); - if ((_1 === (22)) || (_1 === (21)) || (_1 === (18)) || (_1 === (19)) || (_1 === (25)) || (_1 === (17))) { - return true; - } else { - return false; - } - }; $ptrType(rtype).prototype.Comparable = function Comparable$1() { - var {$24r, _1, _r, _r$1, i, t, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var t; t = this; - _1 = t.Kind(); - /* */ if ((_1 === (19)) || (_1 === (23)) || (_1 === (21))) { $s = 2; continue; } - /* */ if (_1 === (17)) { $s = 3; continue; } - /* */ if (_1 === (25)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if ((_1 === (19)) || (_1 === (23)) || (_1 === (21))) { */ case 2: - $s = -1; return false; - /* } else if (_1 === (17)) { */ case 3: - _r = t.Elem().Comparable(); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 7; case 7: return $24r; - /* } else if (_1 === (25)) { */ case 4: - i = 0; - /* while (true) { */ case 8: - /* if (!(i < t.NumField())) { break; } */ if(!(i < t.NumField())) { $s = 9; continue; } - _r$1 = t.Field(i).Type.Comparable(); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (!_r$1) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (!_r$1) { */ case 10: - $s = -1; return false; - /* } */ case 11: - i = i + (1) >> 0; - $s = 8; continue; - case 9: - /* } */ case 5: - case 1: - $s = -1; return true; - /* */ } return; } var $f = {$blk: Comparable$1, $c: true, $r, $24r, _1, _r, _r$1, i, t, $s};return $f; + return toAbiType(t).Comparable(); }; $ptrType(rtype).prototype.Method = function Method$3(i) { - var {_i, _i$1, _r, _ref, _ref$1, arg, fl, fn, ft, i, in$2, m, methods$1, mt, mtyp, out$1, p, pname, prop, ret, t, tt, $s, $r, $c} = $restore(this, {i}); + var {_i, _i$1, _r, _ref, _ref$1, arg, fl, fn, ft, i, in$1, m, methods, mt, mtyp, out, p, pname, prop, ret, t, tt, $s, $r, $c} = $restore(this, {i}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: prop = [prop]; - m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$2.nil, 0, 0), 0); + m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$4.nil, 0, 0), 0); t = this; if (t.Kind() === 20) { - tt = (t.kindType); + tt = (toKindTypeExt(t)); Method.copy(m, tt.Method(i)); $s = -1; return m; } - methods$1 = t.exportedMethods(); - if (i < 0 || i >= methods$1.$length) { + methods = t.exportedMethods(); + if (i < 0 || i >= methods.$length) { $panic(new $String("reflect: Method index out of range")); } - p = $clone(((i < 0 || i >= methods$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : methods$1.$array[methods$1.$offset + i]), method); - pname = $clone(t.nameOff(p.name), name); - m.Name = $clone(pname, name).name(); + p = $clone(((i < 0 || i >= methods.$length) ? ($throwRuntimeError("index out of range"), undefined) : methods.$array[methods.$offset + i]), abi.Method); + pname = $clone(t.nameOff(p.Name), abi.Name); + m.Name = $clone(pname, abi.Name).Name(); fl = 19; - mtyp = t.typeOff(p.mtyp); + mtyp = t.typeOff(p.Mtyp); ft = (mtyp.kindType); - in$2 = $makeSlice(sliceType$1, 0, (1 + ft.in$().$length >> 0)); - in$2 = $append(in$2, t); - _ref = ft.in$(); + in$1 = $makeSlice(sliceType$1, 0, (1 + ft.NumIn() >> 0)); + in$1 = $append(in$1, t); + _ref = ft.InSlice(); _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - in$2 = $append(in$2, arg); + in$1 = $append(in$1, toRType(arg)); _i++; } - out$1 = $makeSlice(sliceType$1, 0, ft.out().$length); - _ref$1 = ft.out(); + out = $makeSlice(sliceType$1, 0, ft.NumOut()); + _ref$1 = ft.OutSlice(); _i$1 = 0; while (true) { if (!(_i$1 < _ref$1.$length)) { break; } ret = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - out$1 = $append(out$1, ret); + out = $append(out, toRType(ret)); _i$1++; } - _r = FuncOf(in$2, out$1, ft.rtype.IsVariadic()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = FuncOf(in$1, out, ft.IsVariadic()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } mt = _r; m.Type = mt; - prop[0] = $internalize($methodSet(t.jsType)[i].prop, $String); + prop[0] = $internalize($methodSet(jsType(t))[i].prop, $String); fn = js.MakeFunc((function(prop) { return function rtype·Method·func1(this$1, arguments$1) { var arguments$1, rcvr, this$1; rcvr = (0 >= arguments$1.$length ? ($throwRuntimeError("index out of range"), undefined) : arguments$1.$array[arguments$1.$offset + 0]); - return new $jsObjectPtr(rcvr[$externalize(prop[0], $String)].apply(rcvr, $externalize($subslice(arguments$1, 1), sliceType$18))); + return new $jsObjectPtr(rcvr[$externalize(prop[0], $String)].apply(rcvr, $externalize($subslice(arguments$1, 1), sliceType$17))); }; })(prop)); - m.Func = new Value.ptr($assertType(mt, ptrType$2), (fn), fl); + m.Func = new Value.ptr(toAbiType(mt), (fn), fl); m.Index = i; Method.copy(m, m); $s = -1; return m; - /* */ } return; } var $f = {$blk: Method$3, $c: true, $r, _i, _i$1, _r, _ref, _ref$1, arg, fl, fn, ft, i, in$2, m, methods$1, mt, mtyp, out$1, p, pname, prop, ret, t, tt, $s};return $f; + /* */ } return; } var $f = {$blk: Method$3, $c: true, $r, _i, _i$1, _r, _ref, _ref$1, arg, fl, fn, ft, i, in$1, m, methods, mt, mtyp, out, p, pname, prop, ret, t, tt, $s};return $f; }; $ptrType(Value).prototype.object = function object() { - var _1, newVal, v, val; + var _1, jsTyp, newVal, v, val; v = this; - if ((v.typ.Kind() === 17) || (v.typ.Kind() === 25)) { + if (($clone(v, Value).typ().Kind() === 17) || ($clone(v, Value).typ().Kind() === 25)) { return v.ptr; } + jsTyp = $clone(v, Value).typ().JsType(); if (!((((v.flag & 128) >>> 0) === 0))) { val = v.ptr.$get(); - if (!(val === $ifaceNil) && !(val.constructor === jsType(v.typ))) { + if (!(val === $ifaceNil) && !(val.constructor === jsTyp)) { switch (0) { default: - _1 = v.typ.Kind(); + _1 = $clone(v, Value).typ().Kind(); if ((_1 === (11)) || (_1 === (6))) { - val = new (jsType(v.typ))(val.$high, val.$low); + val = new (jsTyp)(val.$high, val.$low); } else if ((_1 === (15)) || (_1 === (16))) { - val = new (jsType(v.typ))(val.$real, val.$imag); + val = new (jsTyp)(val.$real, val.$imag); } else if (_1 === (23)) { if (val === val.constructor.nil) { - val = jsType(v.typ).nil; + val = jsTyp.nil; break; } - newVal = new (jsType(v.typ))(val.$array); + newVal = new (jsTyp)(val.$array); newVal.$offset = val.$offset; newVal.$length = val.$length; newVal.$capacity = val.$capacity; @@ -17570,7 +16756,7 @@ $packages["reflect"] = (function() { }; Value.prototype.object = function(...$args) { return this.$val.object(...$args); }; $ptrType(Value).prototype.assignTo = function assignTo(context, dst, target) { - var {_r, _r$1, _r$2, context, dst, fl, target, v, x, $s, $r, $c} = $restore(this, {context, dst, target}); + var {_r, _r$1, context, dst, fl, target, v, x, $s, $r, $c} = $restore(this, {context, dst, target}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: v = this; /* */ if (!((((v.flag & 512) >>> 0) === 0))) { $s = 1; continue; } @@ -17579,20 +16765,19 @@ $packages["reflect"] = (function() { _r = makeMethodValue(context, $clone(v, Value)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } v = _r; /* } */ case 2: - _r$1 = directlyAssignable(dst, v.typ); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 5; continue; } - /* */ if (implements$1(dst, v.typ)) { $s = 6; continue; } + /* */ if (directlyAssignable(dst, $clone(v, Value).typ())) { $s = 5; continue; } + /* */ if (implements$1(dst, $clone(v, Value).typ())) { $s = 6; continue; } /* */ $s = 7; continue; - /* if (_r$1) { */ case 5: + /* if (directlyAssignable(dst, $clone(v, Value).typ())) { */ case 5: fl = (((v.flag & 384) >>> 0) | new flag(v.flag).ro()) >>> 0; fl = (fl | (((dst.Kind() >>> 0)))) >>> 0; $s = -1; return new Value.ptr(dst, v.ptr, fl); - /* } else if (implements$1(dst, v.typ)) { */ case 6: + /* } else if (implements$1(dst, $clone(v, Value).typ())) { */ case 6: if (target === 0) { target = unsafe_New(dst); } - _r$2 = valueInterface($clone(v, Value), false); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - x = _r$2; + _r$1 = valueInterface($clone(v, Value), false); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + x = _r$1; if (dst.NumMethod() === 0) { (target).$set(x); } else { @@ -17601,16 +16786,16 @@ $packages["reflect"] = (function() { $s = -1; return new Value.ptr(dst, target, 148); /* } */ case 7: case 4: - $panic(new $String(context + ": value of type " + v.typ.String() + " is not assignable to type " + dst.String())); - $s = -1; return new Value.ptr(ptrType$2.nil, 0, 0); - /* */ } return; } var $f = {$blk: assignTo, $c: true, $r, _r, _r$1, _r$2, context, dst, fl, target, v, x, $s};return $f; + $panic(new $String(context + ": value of type " + $clone(v, Value).typ().String() + " is not assignable to type " + dst.String())); + $s = -1; return new Value.ptr(ptrType$4.nil, 0, 0); + /* */ } return; } var $f = {$blk: assignTo, $c: true, $r, _r, _r$1, context, dst, fl, target, v, x, $s};return $f; }; Value.prototype.assignTo = function(...$args) { return this.$val.assignTo(...$args); }; - $ptrType(Value).prototype.call = function call$2(op, in$2) { - var {$24r, _1, _arg, _arg$1, _arg$2, _arg$3, _i, _i$1, _i$2, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tmp, _tmp$1, _tuple, arg, argsArray, elem, fn, i, i$1, i$2, i$3, in$2, isSlice, m, n, nin, nout, op, origIn, rcvr, results, ret, slice, t, targ, v, x, x$1, x$2, xt, xt$1, $s, $r, $c} = $restore(this, {op, in$2}); + $ptrType(Value).prototype.call = function call$2(op, in$1) { + var {_1, _arg, _arg$1, _i, _i$1, _i$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _ref$1, _ref$2, _tmp, _tmp$1, _tuple, arg, argsArray, elem$2, fn, i, i$1, i$2, i$3, in$1, isSlice, m, n, nin, nout, op, origIn, rcvr, results, ret, slice, t, targ, v, x, x$1, x$2, xt, xt$1, $s, $r, $c} = $restore(this, {op, in$1}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: v = this; - t = ptrType$19.nil; + t = ptrType$20.nil; fn = 0; rcvr = null; if (!((((v.flag & 512) >>> 0) === 0))) { @@ -17618,11 +16803,11 @@ $packages["reflect"] = (function() { t = _tuple[1]; fn = _tuple[2]; rcvr = $clone(v, Value).object(); - if (isWrapped(v.typ)) { - rcvr = new (jsType(v.typ))(rcvr); + if ($clone(v, Value).typ().IsWrapped()) { + rcvr = new ($clone(v, Value).typ().JsType())(rcvr); } } else { - t = (v.typ.kindType); + t = ($clone(v, Value).typ().kindType); fn = ($clone(v, Value).object()); rcvr = undefined; } @@ -17630,29 +16815,29 @@ $packages["reflect"] = (function() { $panic(new $String("reflect.Value.Call: call of nil function")); } isSlice = op === "CallSlice"; - n = t.rtype.NumIn(); + n = t.NumIn(); if (isSlice) { - if (!t.rtype.IsVariadic()) { + if (!t.IsVariadic()) { $panic(new $String("reflect: CallSlice of non-variadic function")); } - if (in$2.$length < n) { + if (in$1.$length < n) { $panic(new $String("reflect: CallSlice with too few input arguments")); } - if (in$2.$length > n) { + if (in$1.$length > n) { $panic(new $String("reflect: CallSlice with too many input arguments")); } } else { - if (t.rtype.IsVariadic()) { + if (t.IsVariadic()) { n = n - (1) >> 0; } - if (in$2.$length < n) { + if (in$1.$length < n) { $panic(new $String("reflect: Call with too few input arguments")); } - if (!t.rtype.IsVariadic() && in$2.$length > n) { + if (!t.IsVariadic() && in$1.$length > n) { $panic(new $String("reflect: Call with too many input arguments")); } } - _ref = in$2; + _ref = in$1; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } @@ -17665,8 +16850,8 @@ $packages["reflect"] = (function() { i = 0; /* while (true) { */ case 1: /* if (!(i < n)) { break; } */ if(!(i < n)) { $s = 2; continue; } - _tmp = $clone(((i < 0 || i >= in$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$2.$array[in$2.$offset + i]), Value).Type(); - _tmp$1 = t.rtype.In(i); + _tmp = $clone(((i < 0 || i >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + i]), Value).Type(); + _tmp$1 = toRType(t.In(i)); xt = _tmp; targ = _tmp$1; _r = xt.AssignableTo(targ); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } @@ -17674,298 +16859,191 @@ $packages["reflect"] = (function() { /* */ $s = 4; continue; /* if (!_r) { */ case 3: _r$1 = xt.String(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = targ.String(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $panic(new $String("reflect: " + op + " using " + _r$1 + " as type " + _r$2)); + $panic(new $String("reflect: " + op + " using " + _r$1 + " as type " + targ.String())); /* } */ case 4: i = i + (1) >> 0; $s = 1; continue; case 2: - /* */ if (!isSlice && t.rtype.IsVariadic()) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (!isSlice && t.rtype.IsVariadic()) { */ case 8: - m = in$2.$length - n >> 0; - _r$3 = MakeSlice(t.rtype.In(n), m, m); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - slice = _r$3; - _r$4 = t.rtype.In(n).Elem(); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - elem = _r$4; + /* */ if (!isSlice && t.IsVariadic()) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!isSlice && t.IsVariadic()) { */ case 7: + m = in$1.$length - n >> 0; + _r$2 = MakeSlice(toRType(t.In(n)), m, m); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + slice = _r$2; + elem$2 = toRType(t.In(n).Elem()); i$1 = 0; - /* while (true) { */ case 12: - /* if (!(i$1 < m)) { break; } */ if(!(i$1 < m)) { $s = 13; continue; } - x$2 = (x$1 = n + i$1 >> 0, ((x$1 < 0 || x$1 >= in$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$2.$array[in$2.$offset + x$1])); + /* while (true) { */ case 10: + /* if (!(i$1 < m)) { break; } */ if(!(i$1 < m)) { $s = 11; continue; } + x$2 = (x$1 = n + i$1 >> 0, ((x$1 < 0 || x$1 >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + x$1])); xt$1 = $clone(x$2, Value).Type(); - _r$5 = xt$1.AssignableTo(elem); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* */ if (!_r$5) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (!_r$5) { */ case 14: - _r$6 = xt$1.String(); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _r$7 = elem.String(); /* */ $s = 18; case 18: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - $panic(new $String("reflect: cannot use " + _r$6 + " as type " + _r$7 + " in " + op)); - /* } */ case 15: - _r$8 = $clone(slice, Value).Index(i$1); /* */ $s = 19; case 19: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - $r = $clone(_r$8, Value).Set($clone(x$2, Value)); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$3 = xt$1.AssignableTo(elem$2); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!_r$3) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (!_r$3) { */ case 12: + _r$4 = xt$1.String(); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $panic(new $String("reflect: cannot use " + _r$4 + " as type " + elem$2.String() + " in " + op)); + /* } */ case 13: + $r = $clone($clone(slice, Value).Index(i$1), Value).Set($clone(x$2, Value)); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } i$1 = i$1 + (1) >> 0; - $s = 12; continue; - case 13: - origIn = in$2; - in$2 = $makeSlice(sliceType$10, (n + 1 >> 0)); - $copySlice($subslice(in$2, 0, n), origIn); - ((n < 0 || n >= in$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$2.$array[in$2.$offset + n] = slice); - /* } */ case 9: - nin = in$2.$length; - if (!((nin === t.rtype.NumIn()))) { + $s = 10; continue; + case 11: + origIn = in$1; + in$1 = $makeSlice(sliceType$8, (n + 1 >> 0)); + $copySlice($subslice(in$1, 0, n), origIn); + ((n < 0 || n >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + n] = slice); + /* } */ case 8: + nin = in$1.$length; + if (!((nin === t.NumIn()))) { $panic(new $String("reflect.Value.Call: wrong argument count")); } - nout = t.rtype.NumOut(); - argsArray = new ($global.Array)(t.rtype.NumIn()); - _ref$1 = in$2; + nout = t.NumOut(); + argsArray = new ($global.Array)(t.NumIn()); + _ref$1 = in$1; _i$1 = 0; - /* while (true) { */ case 21: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 22; continue; } + /* while (true) { */ case 17: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 18; continue; } i$2 = _i$1; arg = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - _arg = t.rtype.In(i$2); - _r$9 = t.rtype.In(i$2).common(); /* */ $s = 23; case 23: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _arg$1 = _r$9; - _arg$2 = 0; - _r$10 = $clone(arg, Value).assignTo("reflect.Value.Call", _arg$1, _arg$2); /* */ $s = 24; case 24: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _r$11 = $clone(_r$10, Value).object(); /* */ $s = 25; case 25: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _arg$3 = _r$11; - _r$12 = unwrapJsObject(_arg, _arg$3); /* */ $s = 26; case 26: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - argsArray[i$2] = _r$12; + _arg = t.In(i$2); + _r$5 = $clone(arg, Value).assignTo("reflect.Value.Call", t.In(i$2), 0); /* */ $s = 19; case 19: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$6 = $clone(_r$5, Value).object(); /* */ $s = 20; case 20: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _arg$1 = _r$6; + _r$7 = abi.UnwrapJsObject(_arg, _arg$1); /* */ $s = 21; case 21: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + argsArray[i$2] = _r$7; _i$1++; - $s = 21; continue; - case 22: - _r$13 = callHelper(new sliceType$6([new $jsObjectPtr(fn), new $jsObjectPtr(rcvr), new $jsObjectPtr(argsArray)])); /* */ $s = 27; case 27: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - results = _r$13; - _1 = nout; - /* */ if (_1 === (0)) { $s = 29; continue; } - /* */ if (_1 === (1)) { $s = 30; continue; } - /* */ $s = 31; continue; - /* if (_1 === (0)) { */ case 29: - $s = -1; return sliceType$10.nil; - /* } else if (_1 === (1)) { */ case 30: - _r$14 = makeValue(t.rtype.Out(0), wrapJsObject(t.rtype.Out(0), results), 0); /* */ $s = 33; case 33: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - $24r = new sliceType$10([$clone(_r$14, Value)]); - $s = 34; case 34: return $24r; - /* } else { */ case 31: - ret = $makeSlice(sliceType$10, nout); - _ref$2 = ret; - _i$2 = 0; - /* while (true) { */ case 35: - /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 36; continue; } - i$3 = _i$2; - _r$15 = makeValue(t.rtype.Out(i$3), wrapJsObject(t.rtype.Out(i$3), results[i$3]), 0); /* */ $s = 37; case 37: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - ((i$3 < 0 || i$3 >= ret.$length) ? ($throwRuntimeError("index out of range"), undefined) : ret.$array[ret.$offset + i$3] = _r$15); - _i$2++; - $s = 35; continue; - case 36: - $s = -1; return ret; - /* } */ case 32: - case 28: - $s = -1; return sliceType$10.nil; - /* */ } return; } var $f = {$blk: call$2, $c: true, $r, $24r, _1, _arg, _arg$1, _arg$2, _arg$3, _i, _i$1, _i$2, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tmp, _tmp$1, _tuple, arg, argsArray, elem, fn, i, i$1, i$2, i$3, in$2, isSlice, m, n, nin, nout, op, origIn, rcvr, results, ret, slice, t, targ, v, x, x$1, x$2, xt, xt$1, $s};return $f; + $s = 17; continue; + case 18: + _r$8 = callHelper(new sliceType$4([new $jsObjectPtr(fn), new $jsObjectPtr(rcvr), new $jsObjectPtr(argsArray)])); /* */ $s = 22; case 22: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + results = _r$8; + _1 = nout; + if (_1 === (0)) { + $s = -1; return sliceType$8.nil; + } else if (_1 === (1)) { + $s = -1; return new sliceType$8([$clone(makeValue(t.Out(0), abi.WrapJsObject(t.Out(0), results), 0), Value)]); + } else { + ret = $makeSlice(sliceType$8, nout); + _ref$2 = ret; + _i$2 = 0; + while (true) { + if (!(_i$2 < _ref$2.$length)) { break; } + i$3 = _i$2; + ((i$3 < 0 || i$3 >= ret.$length) ? ($throwRuntimeError("index out of range"), undefined) : ret.$array[ret.$offset + i$3] = makeValue(t.Out(i$3), abi.WrapJsObject(t.Out(i$3), results[i$3]), 0)); + _i$2++; + } + $s = -1; return ret; + } + $s = -1; return sliceType$8.nil; + /* */ } return; } var $f = {$blk: call$2, $c: true, $r, _1, _arg, _arg$1, _i, _i$1, _i$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _ref$1, _ref$2, _tmp, _tmp$1, _tuple, arg, argsArray, elem$2, fn, i, i$1, i$2, i$3, in$1, isSlice, m, n, nin, nout, op, origIn, rcvr, results, ret, slice, t, targ, v, x, x$1, x$2, xt, xt$1, $s};return $f; }; Value.prototype.call = function(...$args) { return this.$val.call(...$args); }; + $ptrType(Value).prototype.Type = function Type$1() { + var v; + v = this; + if (!((v.flag === 0)) && (((v.flag & 512) >>> 0) === 0)) { + return toRType(v.typ_); + } + return $clone(v, Value).typeSlow(); + }; + Value.prototype.Type = function(...$args) { return this.$val.Type(...$args); }; $ptrType(Value).prototype.Cap = function Cap() { - var {$24r, _1, _r, _r$1, k, v, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var _1, k, v; v = this; k = new flag(v.flag).kind(); - _1 = k; - /* */ if (_1 === (17)) { $s = 2; continue; } - /* */ if ((_1 === (18)) || (_1 === (23))) { $s = 3; continue; } - /* */ if (_1 === (22)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_1 === (17)) { */ case 2: - $s = -1; return v.typ.Len(); - /* } else if ((_1 === (18)) || (_1 === (23))) { */ case 3: - $s = -1; return $parseInt($clone(v, Value).object().$capacity) >> 0; - /* } else if (_1 === (22)) { */ case 4: - _r = v.typ.Elem().Kind(); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - /* */ if (_r === 17) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (_r === 17) { */ case 6: - _r$1 = v.typ.Elem().Len(); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 10; case 10: return $24r; - /* } */ case 7: - $panic(new $String("reflect: call of reflect.Value.Cap on ptr to non-array Value")); - /* } */ case 5: - case 1: + _1 = k; + if (_1 === (17)) { + return $clone(v, Value).typ().Len(); + } else if ((_1 === (18)) || (_1 === (23))) { + return $parseInt($clone(v, Value).object().$capacity) >> 0; + } else if (_1 === (22)) { + if ($clone(v, Value).typ().Elem().Kind() === 17) { + return $clone(v, Value).typ().Elem().Len(); + } + $panic(new $String("reflect: call of reflect.Value.Cap on ptr to non-array Value")); + } $panic(new ValueError.ptr("reflect.Value.Cap", k)); - $s = -1; return 0; - /* */ } return; } var $f = {$blk: Cap, $c: true, $r, $24r, _1, _r, _r$1, k, v, $s};return $f; }; Value.prototype.Cap = function(...$args) { return this.$val.Cap(...$args); }; - wrapJsObject = function wrapJsObject$1(typ, val) { - var typ, val; - if ($interfaceIsEqual(typ, jsObjectPtr)) { - return new (jsType(jsObjectPtr))(val); - } - return val; - }; - unwrapJsObject = function unwrapJsObject$1(typ, val) { - var typ, val; - if ($interfaceIsEqual(typ, jsObjectPtr)) { - return val.object; - } - return val; - }; $ptrType(Value).prototype.Elem = function Elem$1() { - var {$24r, _1, _r, fl, k, tt, typ, v, val, val$1, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var _1, fl, k, tt, typ$1, v, val, val$1; v = this; - k = new flag(v.flag).kind(); - _1 = k; - /* */ if (_1 === (20)) { $s = 2; continue; } - /* */ if (_1 === (22)) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (_1 === (20)) { */ case 2: - val = $clone(v, Value).object(); - if (val === $ifaceNil) { - $s = -1; return new Value.ptr(ptrType$2.nil, 0, 0); - } - typ = reflectType(val.constructor); - _r = makeValue(typ, val.$val, new flag(v.flag).ro()); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 7; case 7: return $24r; - /* } else if (_1 === (22)) { */ case 3: - if ($clone(v, Value).IsNil()) { - $s = -1; return new Value.ptr(ptrType$2.nil, 0, 0); - } - val$1 = $clone(v, Value).object(); - tt = (v.typ.kindType); - fl = (((((v.flag & 96) >>> 0) | 128) >>> 0) | 256) >>> 0; - fl = (fl | (((tt.elem.Kind() >>> 0)))) >>> 0; - $s = -1; return new Value.ptr(tt.elem, (wrapJsObject(tt.elem, val$1)), fl); - /* } else { */ case 4: - $panic(new ValueError.ptr("reflect.Value.Elem", k)); - /* } */ case 5: - case 1: - $s = -1; return new Value.ptr(ptrType$2.nil, 0, 0); - /* */ } return; } var $f = {$blk: Elem$1, $c: true, $r, $24r, _1, _r, fl, k, tt, typ, v, val, val$1, $s};return $f; + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (20)) { + val = $clone(v, Value).object(); + if (val === $ifaceNil) { + return new Value.ptr(ptrType$4.nil, 0, 0); + } + typ$1 = abi.ReflectType(val.constructor); + return makeValue(typ$1, val.$val, new flag(v.flag).ro()); + } else if (_1 === (22)) { + if ($clone(v, Value).IsNil()) { + return new Value.ptr(ptrType$4.nil, 0, 0); + } + val$1 = $clone(v, Value).object(); + tt = (toKindTypeExt($clone(v, Value).typ())); + fl = (((((v.flag & 96) >>> 0) | 128) >>> 0) | 256) >>> 0; + fl = (fl | (((tt.PtrType.Elem.Kind() >>> 0)))) >>> 0; + return new Value.ptr(tt.PtrType.Elem, (abi.WrapJsObject(tt.PtrType.Elem, val$1)), fl); + } else { + $panic(new ValueError.ptr("reflect.Value.Elem", k)); + } }; Value.prototype.Elem = function(...$args) { return this.$val.Elem(...$args); }; $ptrType(Value).prototype.Field = function Field$2(i) { - var {$24r, _r, _r$1, _r$2, field, fl, i, jsTag, o, prop, s, tag$1, tt, typ, v, x, x$1, $s, $r, $c} = $restore(this, {i}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - jsTag = [jsTag]; - prop = [prop]; - s = [s]; - typ = [typ]; + var field, fl, i, jsTag, o, prop, s, tag, tt, typ$1, v, x, x$1; v = this; if (!((new flag(v.flag).kind() === 25))) { $panic(new ValueError.ptr("reflect.Value.Field", new flag(v.flag).kind())); } - tt = (v.typ.kindType); - if (((i >>> 0)) >= ((tt.fields.$length >>> 0))) { + tt = (toKindTypeExt($clone(v, Value).typ())); + if (((i >>> 0)) >= ((tt.StructType.Fields.$length >>> 0))) { $panic(new $String("reflect: Field index out of range")); } - prop[0] = $internalize(jsType(v.typ).fields[i].prop, $String); - field = (x = tt.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - typ[0] = field.typ; - fl = (((v.flag & 416) >>> 0) | ((typ[0].Kind() >>> 0))) >>> 0; - if (!$clone(field.name, name).isExported()) { - if (field.embedded()) { + prop = $internalize($clone(v, Value).typ().JsType().fields[i].prop, $String); + field = (x = tt.StructType.Fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + i, ptrType$12))); + typ$1 = field.Typ; + fl = (((v.flag & 416) >>> 0) | ((typ$1.Kind() >>> 0))) >>> 0; + if (!$clone(field.Name, abi.Name).IsExported()) { + if (field.Embedded()) { fl = (fl | (64)) >>> 0; } else { fl = (fl | (32)) >>> 0; } } - tag$1 = $clone((x$1 = tt.fields, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])).name, name).tag(); - /* */ if (!(tag$1 === "") && !((i === 0))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(tag$1 === "") && !((i === 0))) { */ case 1: - jsTag[0] = getJsTag(tag$1); - /* */ if (!(jsTag[0] === "")) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!(jsTag[0] === "")) { */ case 3: - /* while (true) { */ case 5: + tag = $clone((x$1 = tt.StructType.Fields, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])).Name, abi.Name).Tag(); + if (!(tag === "") && !((i === 0))) { + jsTag = new StructTag((tag)).Get("js"); + if (!(jsTag === "")) { + while (true) { o = [o]; - _r = $clone(v, Value).Field(0); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - v = _r; - /* */ if (v.typ === jsObjectPtr) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (v.typ === jsObjectPtr) { */ case 8: + v = $clone(v, Value).Field(0); + if ($clone(v, Value).typ() === abi.JsObjectPtr) { o[0] = $clone(v, Value).object().object; - $s = -1; return new Value.ptr(typ[0], (new (jsType(PtrTo(typ[0])))((function(jsTag, o, prop, s, typ) { return function Value·Field·func1() { - return $internalize(o[0][$externalize(jsTag[0], $String)], jsType(typ[0])); - }; })(jsTag, o, prop, s, typ), (function(jsTag, o, prop, s, typ) { return function Value·Field·func2(x$2) { + return new Value.ptr(typ$1, (new (typ$1.JsPtrTo())((function(o) { return function Value·Field·func1() { + return $internalize(o[0][$externalize(jsTag, $String)], typ$1.JsType()); + }; })(o), (function(o) { return function Value·Field·func2(x$2) { var x$2; - o[0][$externalize(jsTag[0], $String)] = $externalize(x$2, jsType(typ[0])); - }; })(jsTag, o, prop, s, typ))), fl); - /* } */ case 9: - /* */ if (v.typ.Kind() === 22) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (v.typ.Kind() === 22) { */ case 10: - _r$1 = $clone(v, Value).Elem(); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - v = _r$1; - /* } */ case 11: - $s = 5; continue; - case 6: - /* } */ case 4: - /* } */ case 2: - s[0] = v.ptr; - /* */ if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { */ case 13: - $s = -1; return new Value.ptr(typ[0], (new (jsType(PtrTo(typ[0])))((function(jsTag, prop, s, typ) { return function Value·Field·func3() { - return wrapJsObject(typ[0], s[0][$externalize(prop[0], $String)]); - }; })(jsTag, prop, s, typ), (function(jsTag, prop, s, typ) { return function Value·Field·func4(x$2) { - var x$2; - s[0][$externalize(prop[0], $String)] = unwrapJsObject(typ[0], x$2); - }; })(jsTag, prop, s, typ))), fl); - /* } */ case 14: - _r$2 = makeValue(typ[0], wrapJsObject(typ[0], s[0][$externalize(prop[0], $String)]), fl); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 16; case 16: return $24r; - /* */ } return; } var $f = {$blk: Field$2, $c: true, $r, $24r, _r, _r$1, _r$2, field, fl, i, jsTag, o, prop, s, tag$1, tt, typ, v, x, x$1, $s};return $f; - }; - Value.prototype.Field = function(...$args) { return this.$val.Field(...$args); }; - getJsTag = function getJsTag$1(tag$1) { - var _tuple, i, name$2, qvalue, tag$1, value; - while (true) { - if (!(!(tag$1 === ""))) { break; } - i = 0; - while (true) { - if (!(i < tag$1.length && (tag$1.charCodeAt(i) === 32))) { break; } - i = i + (1) >> 0; - } - tag$1 = $substring(tag$1, i); - if (tag$1 === "") { - break; - } - i = 0; - while (true) { - if (!(i < tag$1.length && !((tag$1.charCodeAt(i) === 32)) && !((tag$1.charCodeAt(i) === 58)) && !((tag$1.charCodeAt(i) === 34)))) { break; } - i = i + (1) >> 0; - } - if ((i + 1 >> 0) >= tag$1.length || !((tag$1.charCodeAt(i) === 58)) || !((tag$1.charCodeAt((i + 1 >> 0)) === 34))) { - break; - } - name$2 = ($substring(tag$1, 0, i)); - tag$1 = $substring(tag$1, (i + 1 >> 0)); - i = 1; - while (true) { - if (!(i < tag$1.length && !((tag$1.charCodeAt(i) === 34)))) { break; } - if (tag$1.charCodeAt(i) === 92) { - i = i + (1) >> 0; + o[0][$externalize(jsTag, $String)] = $externalize(x$2, typ$1.JsType()); + }; })(o))), fl); + } + if ($clone(v, Value).typ().Kind() === 22) { + v = $clone(v, Value).Elem(); + } } - i = i + (1) >> 0; - } - if (i >= tag$1.length) { - break; - } - qvalue = ($substring(tag$1, 0, (i + 1 >> 0))); - tag$1 = $substring(tag$1, (i + 1 >> 0)); - if (name$2 === "js") { - _tuple = strconv.Unquote(qvalue); - value = _tuple[0]; - return value; } } - return ""; + s = v.ptr; + if (!((((fl & 128) >>> 0) === 0)) && !((typ$1.Kind() === 17)) && !((typ$1.Kind() === 25))) { + return new Value.ptr(typ$1, (new (typ$1.JsPtrTo())((function Value·Field·func3() { + return abi.WrapJsObject(typ$1, s[$externalize(prop, $String)]); + }), (function Value·Field·func4(x$2) { + var x$2; + s[$externalize(prop, $String)] = abi.UnwrapJsObject(typ$1, x$2); + }))), fl); + } + return makeValue(typ$1, abi.WrapJsObject(typ$1, s[$externalize(prop, $String)]), fl); }; + Value.prototype.Field = function(...$args) { return this.$val.Field(...$args); }; $ptrType(Value).prototype.UnsafePointer = function UnsafePointer() { var v; v = this; @@ -17990,109 +17068,84 @@ $packages["reflect"] = (function() { } }; Value.prototype.grow = function(...$args) { return this.$val.grow(...$args); }; - $ptrType(Value).prototype.extendSlice = function extendSlice(n) { - var {$24r, _r, _r$1, fl, n, newSlice, s, s2, sNil, v, v2, $s, $r, $c} = $restore(this, {n}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $ptrType(Value).prototype.Clear = function Clear() { + var _1, a, array, elem$2, i, length, mapObj, offset, st, v, zeroFn; v = this; - new flag(v.flag).mustBeExported(); - new flag(v.flag).mustBe(23); - s = $clone(v, Value).object(); - sNil = jsType(v.typ).nil; - fl = 151; - /* */ if (s === sNil && n <= 0) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (s === sNil && n <= 0) { */ case 1: - _r = makeValue(v.typ, wrapJsObject(v.typ, sNil), fl); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 4; case 4: return $24r; - /* } */ case 2: - newSlice = new (jsType(v.typ))(s.$array); - newSlice.$offset = s.$offset; - newSlice.$length = s.$length; - newSlice.$capacity = s.$capacity; - _r$1 = makeValue(v.typ, wrapJsObject(v.typ, newSlice), fl); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - v2 = _r$1; - $clone(v2, Value).grow(n); - s2 = $clone(v2, Value).object(); - s2.$length = ($parseInt(s2.$length) >> 0) + n >> 0; - $s = -1; return v2; - /* */ } return; } var $f = {$blk: extendSlice, $c: true, $r, $24r, _r, _r$1, fl, n, newSlice, s, s2, sNil, v, v2, $s};return $f; - }; - Value.prototype.extendSlice = function(...$args) { return this.$val.extendSlice(...$args); }; + _1 = $clone(v, Value).Kind(); + if (_1 === (23)) { + st = (toKindTypeExt($clone(v, Value).typ())); + elem$2 = st.SliceType.Elem; + zeroFn = elem$2.JsType().zero; + a = v.ptr.$get(); + offset = $parseInt(a.$offset) >> 0; + length = $parseInt(a.$length) >> 0; + array = a.$array; + i = 0; + while (true) { + if (!(i < length)) { break; } + array[(i + offset >> 0)] = zeroFn(); + i = i + (1) >> 0; + } + } else if (_1 === (21)) { + mapObj = v.ptr.$get(); + mapObj.clear(); + } else { + $panic(new ValueError.ptr("reflect.Value.Clear", $clone(v, Value).Kind())); + } + }; + Value.prototype.Clear = function(...$args) { return this.$val.Clear(...$args); }; $ptrType(Value).prototype.Index = function Index(i) { - var {$24r, $24r$1, _1, _r, _r$1, a, a$1, c, fl, fl$1, fl$2, i, k, s, str, tt, tt$1, typ, typ$1, v, $s, $r, $c} = $restore(this, {i}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - a = [a]; - a$1 = [a$1]; - c = [c]; - i = [i]; - typ = [typ]; - typ$1 = [typ$1]; + var _1, a, a$1, c, c$24ptr, fl, fl$1, fl$2, i, k, s, str, tt, tt$1, typ$1, typ$2, v; v = this; - k = new flag(v.flag).kind(); - _1 = k; - /* */ if (_1 === (17)) { $s = 2; continue; } - /* */ if (_1 === (23)) { $s = 3; continue; } - /* */ if (_1 === (24)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_1 === (17)) { */ case 2: - tt = (v.typ.kindType); - if (i[0] < 0 || i[0] > ((tt.len >> 0))) { - $panic(new $String("reflect: array index out of range")); - } - typ[0] = tt.elem; - fl = (((((v.flag & 384) >>> 0) | new flag(v.flag).ro()) >>> 0) | ((typ[0].Kind() >>> 0))) >>> 0; - a[0] = v.ptr; - /* */ if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { */ case 7: - $s = -1; return new Value.ptr(typ[0], (new (jsType(PtrTo(typ[0])))((function(a, a$1, c, i, typ, typ$1) { return function Value·Index·func1() { - return wrapJsObject(typ[0], a[0][i[0]]); - }; })(a, a$1, c, i, typ, typ$1), (function(a, a$1, c, i, typ, typ$1) { return function Value·Index·func2(x) { - var x; - a[0][i[0]] = unwrapJsObject(typ[0], x); - }; })(a, a$1, c, i, typ, typ$1))), fl); - /* } */ case 8: - _r = makeValue(typ[0], wrapJsObject(typ[0], a[0][i[0]]), fl); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 10; case 10: return $24r; - /* } else if (_1 === (23)) { */ case 3: - s = $clone(v, Value).object(); - if (i[0] < 0 || i[0] >= ($parseInt(s.$length) >> 0)) { - $panic(new $String("reflect: slice index out of range")); - } - tt$1 = (v.typ.kindType); - typ$1[0] = tt$1.elem; - fl$1 = (((384 | new flag(v.flag).ro()) >>> 0) | ((typ$1[0].Kind() >>> 0))) >>> 0; - i[0] = i[0] + (($parseInt(s.$offset) >> 0)) >> 0; - a$1[0] = s.$array; - /* */ if (!((((fl$1 & 128) >>> 0) === 0)) && !((typ$1[0].Kind() === 17)) && !((typ$1[0].Kind() === 25))) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (!((((fl$1 & 128) >>> 0) === 0)) && !((typ$1[0].Kind() === 17)) && !((typ$1[0].Kind() === 25))) { */ case 11: - $s = -1; return new Value.ptr(typ$1[0], (new (jsType(PtrTo(typ$1[0])))((function(a, a$1, c, i, typ, typ$1) { return function Value·Index·func3() { - return wrapJsObject(typ$1[0], a$1[0][i[0]]); - }; })(a, a$1, c, i, typ, typ$1), (function(a, a$1, c, i, typ, typ$1) { return function Value·Index·func4(x) { - var x; - a$1[0][i[0]] = unwrapJsObject(typ$1[0], x); - }; })(a, a$1, c, i, typ, typ$1))), fl$1); - /* } */ case 12: - _r$1 = makeValue(typ$1[0], wrapJsObject(typ$1[0], a$1[0][i[0]]), fl$1); /* */ $s = 13; case 13: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r$1 = _r$1; - $s = 14; case 14: return $24r$1; - /* } else if (_1 === (24)) { */ case 4: - str = (v.ptr).$get(); - if (i[0] < 0 || i[0] >= str.length) { - $panic(new $String("reflect: string index out of range")); - } - fl$2 = (((new flag(v.flag).ro() | 8) >>> 0) | 128) >>> 0; - c[0] = str.charCodeAt(i[0]); - $s = -1; return new Value.ptr(uint8Type, ((c.$ptr || (c.$ptr = new ptrType$13(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, c)))), fl$2); - /* } else { */ case 5: - $panic(new ValueError.ptr("reflect.Value.Index", k)); - /* } */ case 6: - case 1: - $s = -1; return new Value.ptr(ptrType$2.nil, 0, 0); - /* */ } return; } var $f = {$blk: Index, $c: true, $r, $24r, $24r$1, _1, _r, _r$1, a, a$1, c, fl, fl$1, fl$2, i, k, s, str, tt, tt$1, typ, typ$1, v, $s};return $f; + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (17)) { + tt = $clone(v, Value).typ().ArrayType(); + if (i < 0 || i > ((tt.Len >> 0))) { + $panic(new $String("reflect: array index out of range")); + } + typ$1 = tt.Elem; + fl = (((((v.flag & 384) >>> 0) | new flag(v.flag).ro()) >>> 0) | ((typ$1.Kind() >>> 0))) >>> 0; + a = v.ptr; + if (!((((fl & 128) >>> 0) === 0)) && !((typ$1.Kind() === 17)) && !((typ$1.Kind() === 25))) { + return new Value.ptr(typ$1, (new (typ$1.JsPtrTo())((function Value·Index·func1() { + return abi.WrapJsObject(typ$1, a[i]); + }), (function Value·Index·func2(x) { + var x; + a[i] = abi.UnwrapJsObject(typ$1, x); + }))), fl); + } + return makeValue(typ$1, abi.WrapJsObject(typ$1, a[i]), fl); + } else if (_1 === (23)) { + s = $clone(v, Value).object(); + if (i < 0 || i >= ($parseInt(s.$length) >> 0)) { + $panic(new $String("reflect: slice index out of range")); + } + tt$1 = (toKindTypeExt($clone(v, Value).typ())); + typ$2 = tt$1.SliceType.Elem; + fl$1 = (((384 | new flag(v.flag).ro()) >>> 0) | ((typ$2.Kind() >>> 0))) >>> 0; + i = i + (($parseInt(s.$offset) >> 0)) >> 0; + a$1 = s.$array; + if (!((((fl$1 & 128) >>> 0) === 0)) && !((typ$2.Kind() === 17)) && !((typ$2.Kind() === 25))) { + return new Value.ptr(typ$2, (new (typ$2.JsPtrTo())((function Value·Index·func3() { + return abi.WrapJsObject(typ$2, a$1[i]); + }), (function Value·Index·func4(x) { + var x; + a$1[i] = abi.UnwrapJsObject(typ$2, x); + }))), fl$1); + } + return makeValue(typ$2, abi.WrapJsObject(typ$2, a$1[i]), fl$1); + } else if (_1 === (24)) { + str = (v.ptr).$get(); + if (i < 0 || i >= str.length) { + $panic(new $String("reflect: string index out of range")); + } + fl$2 = (((new flag(v.flag).ro() | 8) >>> 0) | 128) >>> 0; + c = str.charCodeAt(i); + return new Value.ptr(uint8Type, ((c$24ptr || (c$24ptr = new ptrType$14(function() { return c; }, function($v) { c = $v; })))), fl$2); + } else { + $panic(new ValueError.ptr("reflect.Value.Index", k)); + } }; Value.prototype.Index = function(...$args) { return this.$val.Index(...$args); }; $ptrType(Value).prototype.InterfaceData = function InterfaceData() { @@ -18102,14 +17155,13 @@ $packages["reflect"] = (function() { }; Value.prototype.InterfaceData = function(...$args) { return this.$val.InterfaceData(...$args); }; $ptrType(Value).prototype.SetZero = function SetZero() { - var {_r, v, $s, $r, $c} = $restore(this, {}); + var {v, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: v = this; new flag(v.flag).mustBeAssignable(); - _r = Zero(v.typ); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $r = $clone(v, Value).Set($clone(_r, Value)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = $clone(v, Value).Set($clone(Zero(toRType($clone(v, Value).typ())), Value)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } var $f = {$blk: SetZero, $c: true, $r, _r, v, $s};return $f; + /* */ } return; } var $f = {$blk: SetZero, $c: true, $r, v, $s};return $f; }; Value.prototype.SetZero = function(...$args) { return this.$val.SetZero(...$args); }; $ptrType(Value).prototype.IsNil = function IsNil() { @@ -18118,7 +17170,7 @@ $packages["reflect"] = (function() { k = new flag(v.flag).kind(); _1 = k; if ((_1 === (22)) || (_1 === (23))) { - return $clone(v, Value).object() === jsType(v.typ).nil; + return $clone(v, Value).object() === $clone(v, Value).typ().JsType().nil; } else if (_1 === (18)) { return $clone(v, Value).object() === $chanNil; } else if (_1 === (19)) { @@ -18135,42 +17187,27 @@ $packages["reflect"] = (function() { }; Value.prototype.IsNil = function(...$args) { return this.$val.IsNil(...$args); }; $ptrType(Value).prototype.Len = function Len$1() { - var {$24r, _1, _r, _r$1, k, v, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var _1, elem$2, k, v; v = this; - k = new flag(v.flag).kind(); - _1 = k; - /* */ if ((_1 === (17)) || (_1 === (24))) { $s = 2; continue; } - /* */ if (_1 === (23)) { $s = 3; continue; } - /* */ if (_1 === (18)) { $s = 4; continue; } - /* */ if (_1 === (21)) { $s = 5; continue; } - /* */ if (_1 === (22)) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if ((_1 === (17)) || (_1 === (24))) { */ case 2: - $s = -1; return $parseInt($clone(v, Value).object().length); - /* } else if (_1 === (23)) { */ case 3: - $s = -1; return $parseInt($clone(v, Value).object().$length) >> 0; - /* } else if (_1 === (18)) { */ case 4: - $s = -1; return $parseInt($clone(v, Value).object().$buffer.length) >> 0; - /* } else if (_1 === (21)) { */ case 5: - $s = -1; return $parseInt($clone(v, Value).object().size) >> 0; - /* } else if (_1 === (22)) { */ case 6: - _r = v.typ.Elem().Kind(); /* */ $s = 11; case 11: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - /* */ if (_r === 17) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (_r === 17) { */ case 9: - _r$1 = v.typ.Elem().Len(); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 13; case 13: return $24r; - /* } */ case 10: - $panic(new $String("reflect: call of reflect.Value.Len on ptr to non-array Value")); - $s = 8; continue; - /* } else { */ case 7: - $panic(new ValueError.ptr("reflect.Value.Len", k)); - /* } */ case 8: - case 1: - $s = -1; return 0; - /* */ } return; } var $f = {$blk: Len$1, $c: true, $r, $24r, _1, _r, _r$1, k, v, $s};return $f; + k = new flag(v.flag).kind(); + _1 = k; + if ((_1 === (17)) || (_1 === (24))) { + return $parseInt($clone(v, Value).object().length); + } else if (_1 === (23)) { + return $parseInt($clone(v, Value).object().$length) >> 0; + } else if (_1 === (18)) { + return $parseInt($clone(v, Value).object().$buffer.length) >> 0; + } else if (_1 === (21)) { + return $parseInt($clone(v, Value).object().size) >> 0; + } else if (_1 === (22)) { + elem$2 = $clone(v, Value).typ().Elem(); + if (elem$2.Kind() === 17) { + return elem$2.Len(); + } + $panic(new $String("reflect: call of reflect.Value.Len on ptr to non-array Value")); + } else { + $panic(new ValueError.ptr("reflect.Value.Len", k)); + } }; Value.prototype.Len = function(...$args) { return this.$val.Len(...$args); }; $ptrType(Value).prototype.Pointer = function Pointer() { @@ -18204,17 +17241,17 @@ $packages["reflect"] = (function() { v = this; new flag(v.flag).mustBeAssignable(); new flag(x.flag).mustBeExported(); - _r = $clone(x, Value).assignTo("reflect.Set", v.typ, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = $clone(x, Value).assignTo("reflect.Set", $clone(v, Value).typ(), 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } x = _r; /* */ if (!((((v.flag & 128) >>> 0) === 0))) { $s = 2; continue; } /* */ $s = 3; continue; /* if (!((((v.flag & 128) >>> 0) === 0))) { */ case 2: - _1 = v.typ.Kind(); + _1 = $clone(v, Value).typ().Kind(); /* */ if ((_1 === (17)) || (_1 === (25))) { $s = 5; continue; } /* */ if (_1 === (20)) { $s = 6; continue; } /* */ $s = 7; continue; /* if ((_1 === (17)) || (_1 === (25))) { */ case 5: - jsType(v.typ).copy(v.ptr, x.ptr); + $clone(v, Value).typ().JsType().copy(v.ptr, x.ptr); $s = 8; continue; /* } else if (_1 === (20)) { */ case 6: _r$1 = valueInterface($clone(x, Value), false); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } @@ -18232,67 +17269,51 @@ $packages["reflect"] = (function() { }; Value.prototype.Set = function(...$args) { return this.$val.Set(...$args); }; $ptrType(Value).prototype.bytesSlow = function bytesSlow() { - var {_1, _r, _r$1, v, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var _1, v; v = this; - _1 = new flag(v.flag).kind(); - /* */ if (_1 === (23)) { $s = 2; continue; } - /* */ if (_1 === (17)) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (_1 === (23)) { */ case 2: - _r = v.typ.Elem().Kind(); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - /* */ if (!((_r === 8))) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (!((_r === 8))) { */ case 5: - $panic(new $String("reflect.Value.Bytes of non-byte slice")); - /* } */ case 6: - $s = -1; return (v.ptr).$get(); - /* } else if (_1 === (17)) { */ case 3: - _r$1 = v.typ.Elem().Kind(); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (!((_r$1 === 8))) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (!((_r$1 === 8))) { */ case 8: - $panic(new $String("reflect.Value.Bytes of non-byte array")); - /* } */ case 9: - if (!$clone(v, Value).CanAddr()) { - $panic(new $String("reflect.Value.Bytes of unaddressable byte array")); - } - $s = -1; return $assertType($internalize(v.ptr, $emptyInterface), sliceType$4); - /* } */ case 4: - case 1: + _1 = new flag(v.flag).kind(); + if (_1 === (23)) { + if (!(($clone(v, Value).typ().Elem().Kind() === 8))) { + $panic(new $String("reflect.Value.Bytes of non-byte slice")); + } + return (v.ptr).$get(); + } else if (_1 === (17)) { + if (!(($clone(v, Value).typ().Elem().Kind() === 8))) { + $panic(new $String("reflect.Value.Bytes of non-byte array")); + } + if (!$clone(v, Value).CanAddr()) { + $panic(new $String("reflect.Value.Bytes of unaddressable byte array")); + } + return $assertType($internalize(v.ptr, $emptyInterface), sliceType$2); + } $panic(new ValueError.ptr("reflect.Value.Bytes", new flag(v.flag).kind())); - $s = -1; return sliceType$4.nil; - /* */ } return; } var $f = {$blk: bytesSlow, $c: true, $r, _1, _r, _r$1, v, $s};return $f; }; Value.prototype.bytesSlow = function(...$args) { return this.$val.bytesSlow(...$args); }; $ptrType(Value).prototype.SetBytes = function SetBytes(x) { - var {_r, _r$1, _v, slice, typedSlice, v, x, $s, $r, $c} = $restore(this, {x}); + var {_r, _v, slice, typedSlice, v, x, $s, $r, $c} = $restore(this, {x}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: v = this; new flag(v.flag).mustBeAssignable(); new flag(v.flag).mustBe(23); - _r = v.typ.Elem().Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - /* */ if (!((_r === 8))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!((_r === 8))) { */ case 1: + if (!(($clone(v, Value).typ().Elem().Kind() === 8))) { $panic(new $String("reflect.Value.SetBytes of non-byte slice")); - /* } */ case 2: + } slice = x; - if (!(v.typ.Name() === "")) { _v = true; $s = 6; continue s; } - _r$1 = v.typ.Elem().Name(); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = !(_r$1 === ""); case 6: - /* */ if (_v) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_v) { */ case 4: - typedSlice = new (jsType(v.typ))(slice.$array); + if (!(toRType($clone(v, Value).typ()).Name() === "")) { _v = true; $s = 3; continue s; } + _r = toRType($clone(v, Value).typ()).Elem().Name(); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = !(_r === ""); case 3: + /* */ if (_v) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_v) { */ case 1: + typedSlice = new ($clone(v, Value).typ().JsType())(slice.$array); typedSlice.$offset = slice.$offset; typedSlice.$length = slice.$length; typedSlice.$capacity = slice.$capacity; slice = typedSlice; - /* } */ case 5: + /* } */ case 2: v.ptr.$set(slice); $s = -1; return; - /* */ } return; } var $f = {$blk: SetBytes, $c: true, $r, _r, _r$1, _v, slice, typedSlice, v, x, $s};return $f; + /* */ } return; } var $f = {$blk: SetBytes, $c: true, $r, _r, _v, slice, typedSlice, v, x, $s};return $f; }; Value.prototype.SetBytes = function(...$args) { return this.$val.SetBytes(...$args); }; $ptrType(Value).prototype.SetCap = function SetCap(n) { @@ -18304,7 +17325,7 @@ $packages["reflect"] = (function() { if (n < ($parseInt(s.$length) >> 0) || n > ($parseInt(s.$capacity) >> 0)) { $panic(new $String("reflect: slice capacity out of range in SetCap")); } - newSlice = new (jsType(v.typ))(s.$array); + newSlice = new ($clone(v, Value).typ().JsType())(s.$array); newSlice.$offset = s.$offset; newSlice.$length = s.$length; newSlice.$capacity = n; @@ -18320,7 +17341,7 @@ $packages["reflect"] = (function() { if (n < 0 || n > ($parseInt(s.$capacity) >> 0)) { $panic(new $String("reflect: slice length out of range in SetLen")); } - newSlice = new (jsType(v.typ))(s.$array); + newSlice = new ($clone(v, Value).typ().JsType())(s.$array); newSlice.$offset = s.$offset; newSlice.$length = n; newSlice.$capacity = s.$capacity; @@ -18328,11 +17349,11 @@ $packages["reflect"] = (function() { }; Value.prototype.SetLen = function(...$args) { return this.$val.SetLen(...$args); }; $ptrType(Value).prototype.Slice = function Slice(i, j) { - var {$24r, $24r$1, _1, _r, _r$1, cap, i, j, kind$1, s, str, tt, typ, v, $s, $r, $c} = $restore(this, {i, j}); + var {_1, _r, cap, i, j, kind$1, s, str, tt, typ$1, v, $s, $r, $c} = $restore(this, {i, j}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: v = this; cap = 0; - typ = $ifaceNil; + typ$1 = ptrType$4.nil; s = null; kind$1 = new flag(v.flag).kind(); _1 = kind$1; @@ -18344,13 +17365,14 @@ $packages["reflect"] = (function() { if (((v.flag & 256) >>> 0) === 0) { $panic(new $String("reflect.Value.Slice: slice of unaddressable array")); } - tt = (v.typ.kindType); - cap = ((tt.len >> 0)); - typ = SliceOf(tt.elem); - s = new (jsType(typ))($clone(v, Value).object()); + tt = ($clone(v, Value).typ().kindType); + cap = ((tt.Len >> 0)); + _r = SliceOf(toRType(tt.Elem)).common(); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + typ$1 = _r; + s = new (typ$1.JsType())($clone(v, Value).object()); $s = 6; continue; /* } else if (_1 === (23)) { */ case 3: - typ = v.typ; + typ$1 = $clone(v, Value).typ(); s = $clone(v, Value).object(); cap = $parseInt(s.$capacity) >> 0; $s = 6; continue; @@ -18359,9 +17381,7 @@ $packages["reflect"] = (function() { if (i < 0 || j < i || j > str.length) { $panic(new $String("reflect.Value.Slice: string slice index out of bounds")); } - _r = ValueOf(new $String($substring(str, i, j))); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 8; case 8: return $24r; + $s = -1; return ValueOf(new $String($substring(str, i, j))); /* } else { */ case 5: $panic(new ValueError.ptr("reflect.Value.Slice", kind$1)); /* } */ case 6: @@ -18369,43 +17389,46 @@ $packages["reflect"] = (function() { if (i < 0 || j < i || j > cap) { $panic(new $String("reflect.Value.Slice: slice index out of bounds")); } - _r$1 = makeValue(typ, $subslice(s, i, j), new flag(v.flag).ro()); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r$1 = _r$1; - $s = 10; case 10: return $24r$1; - /* */ } return; } var $f = {$blk: Slice, $c: true, $r, $24r, $24r$1, _1, _r, _r$1, cap, i, j, kind$1, s, str, tt, typ, v, $s};return $f; + $s = -1; return makeValue(typ$1, $subslice(s, i, j), new flag(v.flag).ro()); + /* */ } return; } var $f = {$blk: Slice, $c: true, $r, _1, _r, cap, i, j, kind$1, s, str, tt, typ$1, v, $s};return $f; }; Value.prototype.Slice = function(...$args) { return this.$val.Slice(...$args); }; $ptrType(Value).prototype.Slice3 = function Slice3(i, j, k) { - var {$24r, _1, _r, cap, i, j, k, kind$1, s, tt, typ, v, $s, $r, $c} = $restore(this, {i, j, k}); + var {_1, _r, cap, i, j, k, kind$1, s, tt, typ$1, v, $s, $r, $c} = $restore(this, {i, j, k}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: v = this; cap = 0; - typ = $ifaceNil; + typ$1 = ptrType$4.nil; s = null; - kind$1 = new flag(v.flag).kind(); - _1 = kind$1; - if (_1 === (17)) { - if (((v.flag & 256) >>> 0) === 0) { - $panic(new $String("reflect.Value.Slice: slice of unaddressable array")); - } - tt = (v.typ.kindType); - cap = ((tt.len >> 0)); - typ = SliceOf(tt.elem); - s = new (jsType(typ))($clone(v, Value).object()); - } else if (_1 === (23)) { - typ = v.typ; - s = $clone(v, Value).object(); - cap = $parseInt(s.$capacity) >> 0; - } else { - $panic(new ValueError.ptr("reflect.Value.Slice3", kind$1)); - } + kind$1 = new flag(v.flag).kind(); + _1 = kind$1; + /* */ if (_1 === (17)) { $s = 2; continue; } + /* */ if (_1 === (23)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_1 === (17)) { */ case 2: + if (((v.flag & 256) >>> 0) === 0) { + $panic(new $String("reflect.Value.Slice: slice of unaddressable array")); + } + tt = ($clone(v, Value).typ().kindType); + cap = ((tt.Len >> 0)); + _r = SliceOf(toRType(tt.Elem)).common(); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + typ$1 = _r; + s = new (typ$1.JsType())($clone(v, Value).object()); + $s = 5; continue; + /* } else if (_1 === (23)) { */ case 3: + typ$1 = $clone(v, Value).typ(); + s = $clone(v, Value).object(); + cap = $parseInt(s.$capacity) >> 0; + $s = 5; continue; + /* } else { */ case 4: + $panic(new ValueError.ptr("reflect.Value.Slice3", kind$1)); + /* } */ case 5: + case 1: if (i < 0 || j < i || k < j || k > cap) { $panic(new $String("reflect.Value.Slice3: slice index out of bounds")); } - _r = makeValue(typ, $subslice(s, i, j, k), new flag(v.flag).ro()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Slice3, $c: true, $r, $24r, _1, _r, cap, i, j, k, kind$1, s, tt, typ, v, $s};return $f; + $s = -1; return makeValue(typ$1, $subslice(s, i, j, k), new flag(v.flag).ro()); + /* */ } return; } var $f = {$blk: Slice3, $c: true, $r, _1, _r, cap, i, j, k, kind$1, s, tt, typ$1, v, $s};return $f; }; Value.prototype.Slice3 = function(...$args) { return this.$val.Slice3(...$args); }; $ptrType(Value).prototype.Close = function Close() { @@ -18421,11 +17444,11 @@ $packages["reflect"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: selected = false; received = false; - comms = new sliceType$19([new sliceType$18([ch])]); + comms = new sliceType$18([new sliceType$17([ch])]); if (nb) { - comms = $append(comms, new sliceType$18([])); + comms = $append(comms, new sliceType$17([])); } - _r = selectHelper(new sliceType$6([comms])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = selectHelper(new sliceType$4([comms])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } selectRes = _r; if (nb && (($parseInt(selectRes[0]) >> 0) === 1)) { _tmp = false; @@ -18446,11 +17469,11 @@ $packages["reflect"] = (function() { chansend = function chansend$1(ch, val, nb) { var {_r, ch, comms, nb, selectRes, val, $s, $r, $c} = $restore(this, {ch, val, nb}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - comms = new sliceType$19([new sliceType$18([ch, val.$get()])]); + comms = new sliceType$18([new sliceType$17([ch, val.$get()])]); if (nb) { - comms = $append(comms, new sliceType$18([])); + comms = $append(comms, new sliceType$17([])); } - _r = selectHelper(new sliceType$6([comms])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = selectHelper(new sliceType$4([comms])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } selectRes = _r; if (nb && (($parseInt(selectRes[0]) >> 0) === 1)) { $s = -1; return false; @@ -18459,7 +17482,7 @@ $packages["reflect"] = (function() { /* */ } return; } var $f = {$blk: chansend$1, $c: true, $r, _r, ch, comms, nb, selectRes, val, $s};return $f; }; DeepEqual = function DeepEqual$1(a1, a2) { - var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, a1, a2, i1, i2, $s, $r, $c} = $restore(this, {a1, a2}); + var {$24r, _r, a1, a2, i1, i2, $s, $r, $c} = $restore(this, {a1, a2}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: i1 = a1; i2 = a2; @@ -18469,19 +17492,14 @@ $packages["reflect"] = (function() { if (i1 === null || i2 === null || !(i1.constructor === i2.constructor)) { $s = -1; return false; } - _r = ValueOf(a1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _arg = $clone(_r, Value); - _r$1 = ValueOf(a2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _arg$1 = $clone(_r$1, Value); - _arg$2 = sliceType$20.nil; - _r$2 = deepValueEqualJs(_arg, _arg$1, _arg$2); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: DeepEqual$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, a1, a2, i1, i2, $s};return $f; + _r = deepValueEqualJs($clone(ValueOf(a1), Value), $clone(ValueOf(a2), Value), sliceType$19.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: DeepEqual$1, $c: true, $r, $24r, _r, a1, a2, i1, i2, $s};return $f; }; $pkg.DeepEqual = DeepEqual; deepValueEqualJs = function deepValueEqualJs$1(v1, v2, visited) { - var {$24r, $24r$1, $24r$2, _1, _2, _arg, _arg$1, _arg$10, _arg$11, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _i, _i$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _v, entry, i, i$1, k, keys, n, n$1, v1, v2, val1, val2, visited, $s, $r, $c} = $restore(this, {v1, v2, visited}); + var {$24r, $24r$1, $24r$2, _1, _2, _i, _i$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _ref$1, _v, entry, i, i$1, k, keys, n, n$1, v1, v2, val1, val2, visited, $s, $r, $c} = $restore(this, {v1, v2, visited}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if (!$clone(v1, Value).IsValid() || !$clone(v2, Value).IsValid()) { $s = -1; return !$clone(v1, Value).IsValid() && !$clone(v2, Value).IsValid(); @@ -18489,8 +17507,8 @@ $packages["reflect"] = (function() { if (!($interfaceIsEqual($clone(v1, Value).Type(), $clone(v2, Value).Type()))) { $s = -1; return false; } - if ($interfaceIsEqual($clone(v1, Value).Type(), jsObjectPtr)) { - $s = -1; return unwrapJsObject(jsObjectPtr, $clone(v1, Value).object()) === unwrapJsObject(jsObjectPtr, $clone(v2, Value).object()); + if ($clone(v1, Value).typ() === abi.JsObjectPtr) { + $s = -1; return abi.UnwrapJsObject(abi.JsObjectPtr, $clone(v1, Value).object()) === abi.UnwrapJsObject(abi.JsObjectPtr, $clone(v2, Value).object()); } _1 = $clone(v1, Value).Kind(); if ((_1 === (17)) || (_1 === (21)) || (_1 === (23)) || (_1 === (25))) { @@ -18498,7 +17516,7 @@ $packages["reflect"] = (function() { _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } - entry = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), arrayType$7); + entry = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), arrayType$4); if (v1.ptr === entry[0] && v2.ptr === entry[1]) { $s = -1; return true; } @@ -18524,72 +17542,48 @@ $packages["reflect"] = (function() { $s = -1; return true; } } - _r = $clone(v1, Value).Len(); /* */ $s = 10; case 10: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - n = _r; - _r$1 = $clone(v2, Value).Len(); /* */ $s = 13; case 13: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (!((n === _r$1))) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (!((n === _r$1))) { */ case 11: + n = $clone(v1, Value).Len(); + if (!((n === $clone(v2, Value).Len()))) { $s = -1; return false; - /* } */ case 12: + } i = 0; - /* while (true) { */ case 14: - /* if (!(i < n)) { break; } */ if(!(i < n)) { $s = 15; continue; } - _r$2 = $clone(v1, Value).Index(i); /* */ $s = 18; case 18: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _arg = $clone(_r$2, Value); - _r$3 = $clone(v2, Value).Index(i); /* */ $s = 19; case 19: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _arg$1 = $clone(_r$3, Value); - _arg$2 = visited; - _r$4 = deepValueEqualJs(_arg, _arg$1, _arg$2); /* */ $s = 20; case 20: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if (!_r$4) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (!_r$4) { */ case 16: + /* while (true) { */ case 10: + /* if (!(i < n)) { break; } */ if(!(i < n)) { $s = 11; continue; } + _r = deepValueEqualJs($clone($clone(v1, Value).Index(i), Value), $clone($clone(v2, Value).Index(i), Value), visited); /* */ $s = 14; case 14: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!_r) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (!_r) { */ case 12: $s = -1; return false; - /* } */ case 17: + /* } */ case 13: i = i + (1) >> 0; - $s = 14; continue; - case 15: + $s = 10; continue; + case 11: $s = -1; return true; /* } else if (_2 === (20)) { */ case 3: if ($clone(v1, Value).IsNil() || $clone(v2, Value).IsNil()) { $s = -1; return $clone(v1, Value).IsNil() && $clone(v2, Value).IsNil(); } - _r$5 = $clone(v1, Value).Elem(); /* */ $s = 21; case 21: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _arg$3 = $clone(_r$5, Value); - _r$6 = $clone(v2, Value).Elem(); /* */ $s = 22; case 22: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _arg$4 = $clone(_r$6, Value); - _arg$5 = visited; - _r$7 = deepValueEqualJs(_arg$3, _arg$4, _arg$5); /* */ $s = 23; case 23: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - $24r = _r$7; - $s = 24; case 24: return $24r; + _r$1 = deepValueEqualJs($clone($clone(v1, Value).Elem(), Value), $clone($clone(v2, Value).Elem(), Value), visited); /* */ $s = 15; case 15: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 16; case 16: return $24r; /* } else if (_2 === (22)) { */ case 4: - _r$8 = $clone(v1, Value).Elem(); /* */ $s = 25; case 25: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _arg$6 = $clone(_r$8, Value); - _r$9 = $clone(v2, Value).Elem(); /* */ $s = 26; case 26: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _arg$7 = $clone(_r$9, Value); - _arg$8 = visited; - _r$10 = deepValueEqualJs(_arg$6, _arg$7, _arg$8); /* */ $s = 27; case 27: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - $24r$1 = _r$10; - $s = 28; case 28: return $24r$1; + _r$2 = deepValueEqualJs($clone($clone(v1, Value).Elem(), Value), $clone($clone(v2, Value).Elem(), Value), visited); /* */ $s = 17; case 17: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r$1 = _r$2; + $s = 18; case 18: return $24r$1; /* } else if (_2 === (25)) { */ case 5: n$1 = $clone(v1, Value).NumField(); i$1 = 0; - /* while (true) { */ case 29: - /* if (!(i$1 < n$1)) { break; } */ if(!(i$1 < n$1)) { $s = 30; continue; } - _r$11 = $clone(v1, Value).Field(i$1); /* */ $s = 33; case 33: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _arg$9 = $clone(_r$11, Value); - _r$12 = $clone(v2, Value).Field(i$1); /* */ $s = 34; case 34: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _arg$10 = $clone(_r$12, Value); - _arg$11 = visited; - _r$13 = deepValueEqualJs(_arg$9, _arg$10, _arg$11); /* */ $s = 35; case 35: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - /* */ if (!_r$13) { $s = 31; continue; } - /* */ $s = 32; continue; - /* if (!_r$13) { */ case 31: + /* while (true) { */ case 19: + /* if (!(i$1 < n$1)) { break; } */ if(!(i$1 < n$1)) { $s = 20; continue; } + _r$3 = deepValueEqualJs($clone($clone(v1, Value).Field(i$1), Value), $clone($clone(v2, Value).Field(i$1), Value), visited); /* */ $s = 23; case 23: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!_r$3) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (!_r$3) { */ case 21: $s = -1; return false; - /* } */ case 32: + /* } */ case 22: i$1 = i$1 + (1) >> 0; - $s = 29; continue; - case 30: + $s = 19; continue; + case 20: $s = -1; return true; /* } else if (_2 === (21)) { */ case 6: if (!($clone(v1, Value).IsNil() === $clone(v2, Value).IsNil())) { @@ -18598,34 +17592,30 @@ $packages["reflect"] = (function() { if ($clone(v1, Value).object() === $clone(v2, Value).object()) { $s = -1; return true; } - _r$14 = $clone(v1, Value).MapKeys(); /* */ $s = 36; case 36: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - keys = _r$14; - _r$15 = $clone(v2, Value).Len(); /* */ $s = 39; case 39: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - /* */ if (!((keys.$length === _r$15))) { $s = 37; continue; } - /* */ $s = 38; continue; - /* if (!((keys.$length === _r$15))) { */ case 37: + keys = $clone(v1, Value).MapKeys(); + if (!((keys.$length === $clone(v2, Value).Len()))) { $s = -1; return false; - /* } */ case 38: + } _ref$1 = keys; _i$1 = 0; - /* while (true) { */ case 40: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 41; continue; } + /* while (true) { */ case 24: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 25; continue; } k = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - _r$16 = $clone(v1, Value).MapIndex($clone(k, Value)); /* */ $s = 42; case 42: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - val1 = _r$16; - _r$17 = $clone(v2, Value).MapIndex($clone(k, Value)); /* */ $s = 43; case 43: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - val2 = _r$17; - if (!$clone(val1, Value).IsValid() || !$clone(val2, Value).IsValid()) { _v = true; $s = 46; continue s; } - _r$18 = deepValueEqualJs($clone(val1, Value), $clone(val2, Value), visited); /* */ $s = 47; case 47: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - _v = !_r$18; case 46: - /* */ if (_v) { $s = 44; continue; } - /* */ $s = 45; continue; - /* if (_v) { */ case 44: + _r$4 = $clone(v1, Value).MapIndex($clone(k, Value)); /* */ $s = 26; case 26: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + val1 = _r$4; + _r$5 = $clone(v2, Value).MapIndex($clone(k, Value)); /* */ $s = 27; case 27: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + val2 = _r$5; + if (!$clone(val1, Value).IsValid() || !$clone(val2, Value).IsValid()) { _v = true; $s = 30; continue s; } + _r$6 = deepValueEqualJs($clone(val1, Value), $clone(val2, Value), visited); /* */ $s = 31; case 31: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _v = !_r$6; case 30: + /* */ if (_v) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (_v) { */ case 28: $s = -1; return false; - /* } */ case 45: + /* } */ case 29: _i$1++; - $s = 40; continue; - case 41: + $s = 24; continue; + case 25: $s = -1; return true; /* } else if (_2 === (19)) { */ case 7: $s = -1; return $clone(v1, Value).IsNil() && $clone(v2, Value).IsNil(); @@ -18633,53 +17623,84 @@ $packages["reflect"] = (function() { $s = -1; return $clone(v1, Value).object() === $clone(v2, Value).object(); /* } */ case 9: case 1: - _r$19 = valueInterface($clone(v1, Value), false); /* */ $s = 48; case 48: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - _r$20 = valueInterface($clone(v2, Value), false); /* */ $s = 49; case 49: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - $24r$2 = !!($interfaceIsEqual(_r$19, _r$20)); - $s = 50; case 50: return $24r$2; - /* */ } return; } var $f = {$blk: deepValueEqualJs$1, $c: true, $r, $24r, $24r$1, $24r$2, _1, _2, _arg, _arg$1, _arg$10, _arg$11, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _i, _i$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _v, entry, i, i$1, k, keys, n, n$1, v1, v2, val1, val2, visited, $s};return $f; + _r$7 = valueInterface($clone(v1, Value), false); /* */ $s = 32; case 32: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$8 = valueInterface($clone(v2, Value), false); /* */ $s = 33; case 33: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + $24r$2 = !!($interfaceIsEqual(_r$7, _r$8)); + $s = 34; case 34: return $24r$2; + /* */ } return; } var $f = {$blk: deepValueEqualJs$1, $c: true, $r, $24r, $24r$1, $24r$2, _1, _2, _i, _i$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _ref$1, _v, entry, i, i$1, k, keys, n, n$1, v1, v2, val1, val2, visited, $s};return $f; + }; + noescape = function noescape$1(p) { + var p; + return p; + }; + toKindTypeExt = function toKindTypeExt$1(src) { + var _1, _ref, abiTyp, ext, kindType, src, t, t$1, t$2; + abiTyp = ptrType$4.nil; + _ref = src; + if ($assertType(_ref, ptrType$9, true)[1]) { + t = _ref.$val; + abiTyp = t.common(); + } else if ($assertType(_ref, ptrType$4, true)[1]) { + t$1 = _ref.$val; + abiTyp = t$1; + } else { + t$2 = _ref; + $panic(new $String("unexpected type in toKindTypeExt")); + } + ext = abiTyp.kindTypeExt; + if (!(ext === undefined)) { + return ext; + } + kindType = abiTyp.kindType; + _1 = abiTyp.Kind(); + if (_1 === (20)) { + ext = new interfaceType.ptr(new abi.InterfaceType.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, abi.NameOff.nil, abi.TypeOff.nil), new abi.Name.ptr("", "", false, false, ""), sliceType$15.nil)); + ext.InterfaceType = kindType; + } else if (_1 === (21)) { + ext = new mapType.ptr(new abi.MapType.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, abi.NameOff.nil, abi.TypeOff.nil), ptrType$4.nil, ptrType$4.nil, ptrType$4.nil, $throwNilPointerError, 0, 0, 0, 0)); + ext.MapType = kindType; + } else if (_1 === (22)) { + ext = new ptrType.ptr(new abi.PtrType.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, abi.NameOff.nil, abi.TypeOff.nil), ptrType$4.nil)); + ext.PtrType = kindType; + } else if (_1 === (23)) { + ext = new sliceType.ptr(new abi.SliceType.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, abi.NameOff.nil, abi.TypeOff.nil), ptrType$4.nil)); + ext.SliceType = kindType; + } else if (_1 === (25)) { + ext = new structType.ptr(new abi.StructType.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, abi.NameOff.nil, abi.TypeOff.nil), new abi.Name.ptr("", "", false, false, ""), sliceType$16.nil)); + ext.StructType = kindType; + } else { + $panic(new $String("unexpected kind in toKindTypeExt")); + } + abiTyp.kindTypeExt = ext; + return ext; }; - Value.methods = [{prop: "pointer", name: "pointer", pkg: "reflect", typ: $funcType([], [$UnsafePointer], false)}, {prop: "Addr", name: "Addr", pkg: "", typ: $funcType([], [Value], false)}, {prop: "Bool", name: "Bool", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "panicNotBool", name: "panicNotBool", pkg: "reflect", typ: $funcType([], [], false)}, {prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType$4], false)}, {prop: "runes", name: "runes", pkg: "reflect", typ: $funcType([], [sliceType$12], false)}, {prop: "CanAddr", name: "CanAddr", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "CanSet", name: "CanSet", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Call", name: "Call", pkg: "", typ: $funcType([sliceType$10], [sliceType$10], false)}, {prop: "CallSlice", name: "CallSlice", pkg: "", typ: $funcType([sliceType$10], [sliceType$10], false)}, {prop: "capNonSlice", name: "capNonSlice", pkg: "reflect", typ: $funcType([], [$Int], false)}, {prop: "CanComplex", name: "CanComplex", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Complex", name: "Complex", pkg: "", typ: $funcType([], [$Complex128], false)}, {prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$8], [Value], false)}, {prop: "FieldByIndexErr", name: "FieldByIndexErr", pkg: "", typ: $funcType([sliceType$8], [Value, $error], false)}, {prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [Value], false)}, {prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$3], [Value], false)}, {prop: "CanFloat", name: "CanFloat", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Float", name: "Float", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "CanInt", name: "CanInt", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Int", name: "Int", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "CanInterface", name: "CanInterface", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Interface", name: "Interface", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "IsValid", name: "IsValid", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsZero", name: "IsZero", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "MapIndex", name: "MapIndex", pkg: "", typ: $funcType([Value], [Value], false)}, {prop: "MapKeys", name: "MapKeys", pkg: "", typ: $funcType([], [sliceType$10], false)}, {prop: "SetIterKey", name: "SetIterKey", pkg: "", typ: $funcType([ptrType$22], [], false)}, {prop: "SetIterValue", name: "SetIterValue", pkg: "", typ: $funcType([ptrType$22], [], false)}, {prop: "MapRange", name: "MapRange", pkg: "", typ: $funcType([], [ptrType$22], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Value], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Value], false)}, {prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "OverflowComplex", name: "OverflowComplex", pkg: "", typ: $funcType([$Complex128], [$Bool], false)}, {prop: "OverflowFloat", name: "OverflowFloat", pkg: "", typ: $funcType([$Float64], [$Bool], false)}, {prop: "OverflowInt", name: "OverflowInt", pkg: "", typ: $funcType([$Int64], [$Bool], false)}, {prop: "OverflowUint", name: "OverflowUint", pkg: "", typ: $funcType([$Uint64], [$Bool], false)}, {prop: "Recv", name: "Recv", pkg: "", typ: $funcType([], [Value, $Bool], false)}, {prop: "recv", name: "recv", pkg: "reflect", typ: $funcType([$Bool], [Value, $Bool], false)}, {prop: "Send", name: "Send", pkg: "", typ: $funcType([Value], [], false)}, {prop: "send", name: "send", pkg: "reflect", typ: $funcType([Value, $Bool], [$Bool], false)}, {prop: "SetBool", name: "SetBool", pkg: "", typ: $funcType([$Bool], [], false)}, {prop: "setRunes", name: "setRunes", pkg: "reflect", typ: $funcType([sliceType$12], [], false)}, {prop: "SetComplex", name: "SetComplex", pkg: "", typ: $funcType([$Complex128], [], false)}, {prop: "SetFloat", name: "SetFloat", pkg: "", typ: $funcType([$Float64], [], false)}, {prop: "SetInt", name: "SetInt", pkg: "", typ: $funcType([$Int64], [], false)}, {prop: "SetMapIndex", name: "SetMapIndex", pkg: "", typ: $funcType([Value, Value], [], false)}, {prop: "SetUint", name: "SetUint", pkg: "", typ: $funcType([$Uint64], [], false)}, {prop: "SetPointer", name: "SetPointer", pkg: "", typ: $funcType([$UnsafePointer], [], false)}, {prop: "SetString", name: "SetString", pkg: "", typ: $funcType([$String], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "stringNonString", name: "stringNonString", pkg: "reflect", typ: $funcType([], [$String], false)}, {prop: "TryRecv", name: "TryRecv", pkg: "", typ: $funcType([], [Value, $Bool], false)}, {prop: "TrySend", name: "TrySend", pkg: "", typ: $funcType([Value], [$Bool], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [Type], false)}, {prop: "typeSlow", name: "typeSlow", pkg: "reflect", typ: $funcType([], [Type], false)}, {prop: "CanUint", name: "CanUint", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Uint", name: "Uint", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "UnsafeAddr", name: "UnsafeAddr", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "Grow", name: "Grow", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Convert", name: "Convert", pkg: "", typ: $funcType([Type], [Value], false)}, {prop: "CanConvert", name: "CanConvert", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Equal", name: "Equal", pkg: "", typ: $funcType([Value], [$Bool], false)}, {prop: "object", name: "object", pkg: "reflect", typ: $funcType([], [ptrType$3], false)}, {prop: "assignTo", name: "assignTo", pkg: "reflect", typ: $funcType([$String, ptrType$2, $UnsafePointer], [Value], false)}, {prop: "call", name: "call", pkg: "reflect", typ: $funcType([$String, sliceType$10], [sliceType$10], false)}, {prop: "Cap", name: "Cap", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Value], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [Value], false)}, {prop: "UnsafePointer", name: "UnsafePointer", pkg: "", typ: $funcType([], [$UnsafePointer], false)}, {prop: "grow", name: "grow", pkg: "reflect", typ: $funcType([$Int], [], false)}, {prop: "extendSlice", name: "extendSlice", pkg: "reflect", typ: $funcType([$Int], [Value], false)}, {prop: "Index", name: "Index", pkg: "", typ: $funcType([$Int], [Value], false)}, {prop: "InterfaceData", name: "InterfaceData", pkg: "", typ: $funcType([], [arrayType$8], false)}, {prop: "SetZero", name: "SetZero", pkg: "", typ: $funcType([], [], false)}, {prop: "IsNil", name: "IsNil", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Pointer", name: "Pointer", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([Value], [], false)}, {prop: "bytesSlow", name: "bytesSlow", pkg: "reflect", typ: $funcType([], [sliceType$4], false)}, {prop: "SetBytes", name: "SetBytes", pkg: "", typ: $funcType([sliceType$4], [], false)}, {prop: "SetCap", name: "SetCap", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "SetLen", name: "SetLen", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Slice", name: "Slice", pkg: "", typ: $funcType([$Int, $Int], [Value], false)}, {prop: "Slice3", name: "Slice3", pkg: "", typ: $funcType([$Int, $Int, $Int], [Value], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [], false)}]; + Value.methods = [{prop: "typ", name: "typ", pkg: "reflect", typ: $funcType([], [ptrType$4], false)}, {prop: "pointer", name: "pointer", pkg: "reflect", typ: $funcType([], [$UnsafePointer], false)}, {prop: "Addr", name: "Addr", pkg: "", typ: $funcType([], [Value], false)}, {prop: "Bool", name: "Bool", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "panicNotBool", name: "panicNotBool", pkg: "reflect", typ: $funcType([], [], false)}, {prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType$2], false)}, {prop: "runes", name: "runes", pkg: "reflect", typ: $funcType([], [sliceType$10], false)}, {prop: "CanAddr", name: "CanAddr", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "CanSet", name: "CanSet", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Call", name: "Call", pkg: "", typ: $funcType([sliceType$8], [sliceType$8], false)}, {prop: "CallSlice", name: "CallSlice", pkg: "", typ: $funcType([sliceType$8], [sliceType$8], false)}, {prop: "capNonSlice", name: "capNonSlice", pkg: "reflect", typ: $funcType([], [$Int], false)}, {prop: "CanComplex", name: "CanComplex", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Complex", name: "Complex", pkg: "", typ: $funcType([], [$Complex128], false)}, {prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$6], [Value], false)}, {prop: "FieldByIndexErr", name: "FieldByIndexErr", pkg: "", typ: $funcType([sliceType$6], [Value, $error], false)}, {prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [Value], false)}, {prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$4], [Value], false)}, {prop: "CanFloat", name: "CanFloat", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Float", name: "Float", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "CanInt", name: "CanInt", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Int", name: "Int", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "CanInterface", name: "CanInterface", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Interface", name: "Interface", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "IsValid", name: "IsValid", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsZero", name: "IsZero", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "MapIndex", name: "MapIndex", pkg: "", typ: $funcType([Value], [Value], false)}, {prop: "MapKeys", name: "MapKeys", pkg: "", typ: $funcType([], [sliceType$8], false)}, {prop: "SetIterKey", name: "SetIterKey", pkg: "", typ: $funcType([ptrType$24], [], false)}, {prop: "SetIterValue", name: "SetIterValue", pkg: "", typ: $funcType([ptrType$24], [], false)}, {prop: "MapRange", name: "MapRange", pkg: "", typ: $funcType([], [ptrType$24], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Value], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Value], false)}, {prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "OverflowComplex", name: "OverflowComplex", pkg: "", typ: $funcType([$Complex128], [$Bool], false)}, {prop: "OverflowFloat", name: "OverflowFloat", pkg: "", typ: $funcType([$Float64], [$Bool], false)}, {prop: "OverflowInt", name: "OverflowInt", pkg: "", typ: $funcType([$Int64], [$Bool], false)}, {prop: "OverflowUint", name: "OverflowUint", pkg: "", typ: $funcType([$Uint64], [$Bool], false)}, {prop: "Recv", name: "Recv", pkg: "", typ: $funcType([], [Value, $Bool], false)}, {prop: "recv", name: "recv", pkg: "reflect", typ: $funcType([$Bool], [Value, $Bool], false)}, {prop: "Send", name: "Send", pkg: "", typ: $funcType([Value], [], false)}, {prop: "send", name: "send", pkg: "reflect", typ: $funcType([Value, $Bool], [$Bool], false)}, {prop: "SetBool", name: "SetBool", pkg: "", typ: $funcType([$Bool], [], false)}, {prop: "setRunes", name: "setRunes", pkg: "reflect", typ: $funcType([sliceType$10], [], false)}, {prop: "SetComplex", name: "SetComplex", pkg: "", typ: $funcType([$Complex128], [], false)}, {prop: "SetFloat", name: "SetFloat", pkg: "", typ: $funcType([$Float64], [], false)}, {prop: "SetInt", name: "SetInt", pkg: "", typ: $funcType([$Int64], [], false)}, {prop: "SetMapIndex", name: "SetMapIndex", pkg: "", typ: $funcType([Value, Value], [], false)}, {prop: "SetUint", name: "SetUint", pkg: "", typ: $funcType([$Uint64], [], false)}, {prop: "SetPointer", name: "SetPointer", pkg: "", typ: $funcType([$UnsafePointer], [], false)}, {prop: "SetString", name: "SetString", pkg: "", typ: $funcType([$String], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "stringNonString", name: "stringNonString", pkg: "reflect", typ: $funcType([], [$String], false)}, {prop: "TryRecv", name: "TryRecv", pkg: "", typ: $funcType([], [Value, $Bool], false)}, {prop: "TrySend", name: "TrySend", pkg: "", typ: $funcType([Value], [$Bool], false)}, {prop: "typeSlow", name: "typeSlow", pkg: "reflect", typ: $funcType([], [Type], false)}, {prop: "CanUint", name: "CanUint", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Uint", name: "Uint", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "UnsafeAddr", name: "UnsafeAddr", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "Grow", name: "Grow", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Convert", name: "Convert", pkg: "", typ: $funcType([Type], [Value], false)}, {prop: "CanConvert", name: "CanConvert", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Equal", name: "Equal", pkg: "", typ: $funcType([Value], [$Bool], false)}, {prop: "object", name: "object", pkg: "reflect", typ: $funcType([], [ptrType$2], false)}, {prop: "assignTo", name: "assignTo", pkg: "reflect", typ: $funcType([$String, ptrType$4, $UnsafePointer], [Value], false)}, {prop: "call", name: "call", pkg: "reflect", typ: $funcType([$String, sliceType$8], [sliceType$8], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Cap", name: "Cap", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Value], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [Value], false)}, {prop: "UnsafePointer", name: "UnsafePointer", pkg: "", typ: $funcType([], [$UnsafePointer], false)}, {prop: "grow", name: "grow", pkg: "reflect", typ: $funcType([$Int], [], false)}, {prop: "extendSlice", name: "extendSlice", pkg: "reflect", typ: $funcType([$Int], [Value], false)}, {prop: "Clear", name: "Clear", pkg: "", typ: $funcType([], [], false)}, {prop: "Index", name: "Index", pkg: "", typ: $funcType([$Int], [Value], false)}, {prop: "InterfaceData", name: "InterfaceData", pkg: "", typ: $funcType([], [arrayType$5], false)}, {prop: "SetZero", name: "SetZero", pkg: "", typ: $funcType([], [], false)}, {prop: "IsNil", name: "IsNil", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Pointer", name: "Pointer", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([Value], [], false)}, {prop: "bytesSlow", name: "bytesSlow", pkg: "reflect", typ: $funcType([], [sliceType$2], false)}, {prop: "SetBytes", name: "SetBytes", pkg: "", typ: $funcType([sliceType$2], [], false)}, {prop: "SetCap", name: "SetCap", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "SetLen", name: "SetLen", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Slice", name: "Slice", pkg: "", typ: $funcType([$Int, $Int], [Value], false)}, {prop: "Slice3", name: "Slice3", pkg: "", typ: $funcType([$Int, $Int, $Int], [Value], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [], false)}]; flag.methods = [{prop: "kind", name: "kind", pkg: "reflect", typ: $funcType([], [Kind], false)}, {prop: "ro", name: "ro", pkg: "reflect", typ: $funcType([], [flag], false)}, {prop: "mustBe", name: "mustBe", pkg: "reflect", typ: $funcType([Kind], [], false)}, {prop: "mustBeExported", name: "mustBeExported", pkg: "reflect", typ: $funcType([], [], false)}, {prop: "mustBeExportedSlow", name: "mustBeExportedSlow", pkg: "reflect", typ: $funcType([], [], false)}, {prop: "mustBeAssignable", name: "mustBeAssignable", pkg: "reflect", typ: $funcType([], [], false)}, {prop: "mustBeAssignableSlow", name: "mustBeAssignableSlow", pkg: "reflect", typ: $funcType([], [], false)}, {prop: "panicNotMap", name: "panicNotMap", pkg: "reflect", typ: $funcType([], [], false)}]; - ptrType$23.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$22.methods = [{prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Value], false)}, {prop: "Value", name: "Value", pkg: "", typ: $funcType([], [Value], false)}, {prop: "Next", name: "Next", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([Value], [], false)}]; + ptrType$25.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$24.methods = [{prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Value], false)}, {prop: "Value", name: "Value", pkg: "", typ: $funcType([], [Value], false)}, {prop: "Next", name: "Next", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([Value], [], false)}]; Kind.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$2.methods = [{prop: "textOff", name: "textOff", pkg: "reflect", typ: $funcType([textOff], [$UnsafePointer], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "Bits", name: "Bits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Align", name: "Align", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "FieldAlign", name: "FieldAlign", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "common", name: "common", pkg: "reflect", typ: $funcType([], [ptrType$2], false)}, {prop: "exportedMethods", name: "exportedMethods", pkg: "reflect", typ: $funcType([], [sliceType$13], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Method, $Bool], false)}, {prop: "PkgPath", name: "PkgPath", pkg: "", typ: $funcType([], [$String], false)}, {prop: "hasName", name: "hasName", pkg: "reflect", typ: $funcType([], [$Bool], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "ChanDir", name: "ChanDir", pkg: "", typ: $funcType([], [ChanDir], false)}, {prop: "IsVariadic", name: "IsVariadic", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [StructField], false)}, {prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$8], [StructField], false)}, {prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [StructField, $Bool], false)}, {prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$3], [StructField, $Bool], false)}, {prop: "In", name: "In", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumIn", name: "NumIn", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumOut", name: "NumOut", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Out", name: "Out", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "Implements", name: "Implements", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "AssignableTo", name: "AssignableTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "ConvertibleTo", name: "ConvertibleTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "gcSlice", name: "gcSlice", pkg: "reflect", typ: $funcType([$Uintptr, $Uintptr], [sliceType$4], false)}, {prop: "uncommon", name: "uncommon", pkg: "reflect", typ: $funcType([], [ptrType$9], false)}, {prop: "nameOff", name: "nameOff", pkg: "reflect", typ: $funcType([nameOff], [name], false)}, {prop: "typeOff", name: "typeOff", pkg: "reflect", typ: $funcType([typeOff], [ptrType$2], false)}, {prop: "ptrTo", name: "ptrTo", pkg: "reflect", typ: $funcType([], [ptrType$2], false)}, {prop: "pointers", name: "pointers", pkg: "reflect", typ: $funcType([], [$Bool], false)}, {prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Method], false)}]; + ptrType$9.methods = [{prop: "common", name: "common", pkg: "reflect", typ: $funcType([], [ptrType$4], false)}, {prop: "uncommon", name: "uncommon", pkg: "reflect", typ: $funcType([], [ptrType$10], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "Bits", name: "Bits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Align", name: "Align", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "FieldAlign", name: "FieldAlign", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "exportedMethods", name: "exportedMethods", pkg: "reflect", typ: $funcType([], [sliceType$11], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Method, $Bool], false)}, {prop: "PkgPath", name: "PkgPath", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "ChanDir", name: "ChanDir", pkg: "", typ: $funcType([], [ChanDir], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [StructField], false)}, {prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$6], [StructField], false)}, {prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [StructField, $Bool], false)}, {prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$4], [StructField, $Bool], false)}, {prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "In", name: "In", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "NumIn", name: "NumIn", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumOut", name: "NumOut", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Out", name: "Out", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "IsVariadic", name: "IsVariadic", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Implements", name: "Implements", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "AssignableTo", name: "AssignableTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "ConvertibleTo", name: "ConvertibleTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "nameOff", name: "nameOff", pkg: "reflect", typ: $funcType([abi.NameOff], [abi.Name], false)}, {prop: "typeOff", name: "typeOff", pkg: "reflect", typ: $funcType([abi.TypeOff], [ptrType$4], false)}, {prop: "textOff", name: "textOff", pkg: "reflect", typ: $funcType([abi.TextOff], [$UnsafePointer], false)}, {prop: "ptrTo", name: "ptrTo", pkg: "reflect", typ: $funcType([], [ptrType$4], false)}, {prop: "pointers", name: "pointers", pkg: "reflect", typ: $funcType([], [$Bool], false)}, {prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Method], false)}]; ChanDir.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$10.methods = [{prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Method], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Method, $Bool], false)}]; - ptrType$25.methods = [{prop: "embedded", name: "embedded", pkg: "reflect", typ: $funcType([], [$Bool], false)}]; - ptrType$12.methods = [{prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [StructField], false)}, {prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$8], [StructField], false)}, {prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$3], [StructField, $Bool], false)}, {prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [StructField, $Bool], false)}]; + ptrType$11.methods = [{prop: "nameOff", name: "nameOff", pkg: "reflect", typ: $funcType([abi.NameOff], [abi.Name], false)}, {prop: "typeOff", name: "typeOff", pkg: "reflect", typ: $funcType([abi.TypeOff], [ptrType$4], false)}, {prop: "common", name: "common", pkg: "reflect", typ: $funcType([], [ptrType$4], false)}, {prop: "uncommon", name: "uncommon", pkg: "reflect", typ: $funcType([], [ptrType$10], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Method], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Method, $Bool], false)}]; + ptrType$13.methods = [{prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [StructField], false)}, {prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$6], [StructField], false)}, {prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$4], [StructField, $Bool], false)}, {prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [StructField, $Bool], false)}]; Method.methods = [{prop: "IsExported", name: "IsExported", pkg: "", typ: $funcType([], [$Bool], false)}]; StructField.methods = [{prop: "IsExported", name: "IsExported", pkg: "", typ: $funcType([], [$Bool], false)}]; StructTag.methods = [{prop: "Get", name: "Get", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "Lookup", name: "Lookup", pkg: "", typ: $funcType([$String], [$String, $Bool], false)}]; - ptrType$9.methods = [{prop: "methods", name: "methods", pkg: "reflect", typ: $funcType([], [sliceType$13], false)}, {prop: "exportedMethods", name: "exportedMethods", pkg: "reflect", typ: $funcType([], [sliceType$13], false)}]; - ptrType$19.methods = [{prop: "in$", name: "in", pkg: "reflect", typ: $funcType([], [sliceType$3], false)}, {prop: "out", name: "out", pkg: "reflect", typ: $funcType([], [sliceType$3], false)}]; - name.methods = [{prop: "data", name: "data", pkg: "reflect", typ: $funcType([$Int, $String], [ptrType$13], false)}, {prop: "hasTag", name: "hasTag", pkg: "reflect", typ: $funcType([], [$Bool], false)}, {prop: "readVarint", name: "readVarint", pkg: "reflect", typ: $funcType([$Int], [$Int, $Int], false)}, {prop: "name", name: "name", pkg: "reflect", typ: $funcType([], [$String], false)}, {prop: "tag", name: "tag", pkg: "reflect", typ: $funcType([], [$String], false)}, {prop: "pkgPath", name: "pkgPath", pkg: "reflect", typ: $funcType([], [$String], false)}, {prop: "isExported", name: "isExported", pkg: "reflect", typ: $funcType([], [$Bool], false)}, {prop: "embedded", name: "embedded", pkg: "reflect", typ: $funcType([], [$Bool], false)}, {prop: "setPkgPath", name: "setPkgPath", pkg: "reflect", typ: $funcType([$String], [], false)}]; - ptrType$26.methods = [{prop: "initialized", name: "initialized", pkg: "reflect", typ: $funcType([], [$Bool], false)}, {prop: "skipUntilValidKey", name: "skipUntilValidKey", pkg: "reflect", typ: $funcType([], [], false)}]; - Value.init("reflect", [{prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "ptr", name: "ptr", embedded: false, exported: false, typ: $UnsafePointer, tag: ""}, {prop: "flag", name: "flag", embedded: true, exported: false, typ: flag, tag: ""}]); + ptrType$19.methods = [{prop: "initialized", name: "initialized", pkg: "reflect", typ: $funcType([], [$Bool], false)}, {prop: "skipUntilValidKey", name: "skipUntilValidKey", pkg: "reflect", typ: $funcType([], [], false)}]; + Value.init("reflect", [{prop: "typ_", name: "typ_", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "ptr", name: "ptr", embedded: false, exported: false, typ: $UnsafePointer, tag: ""}, {prop: "flag", name: "flag", embedded: true, exported: false, typ: flag, tag: ""}]); ValueError.init("", [{prop: "Method", name: "Method", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Kind", name: "Kind", embedded: false, exported: true, typ: Kind, tag: ""}]); - emptyInterface.init("reflect", [{prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "word", name: "word", embedded: false, exported: false, typ: $UnsafePointer, tag: ""}]); MapIter.init("reflect", [{prop: "m", name: "m", embedded: false, exported: false, typ: Value, tag: ""}, {prop: "hiter", name: "hiter", embedded: false, exported: false, typ: hiter, tag: ""}]); - Type.init([{prop: "Align", name: "Align", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "AssignableTo", name: "AssignableTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Bits", name: "Bits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "ChanDir", name: "ChanDir", pkg: "", typ: $funcType([], [ChanDir], false)}, {prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "ConvertibleTo", name: "ConvertibleTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [StructField], false)}, {prop: "FieldAlign", name: "FieldAlign", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$8], [StructField], false)}, {prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [StructField, $Bool], false)}, {prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$3], [StructField, $Bool], false)}, {prop: "Implements", name: "Implements", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "In", name: "In", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "IsVariadic", name: "IsVariadic", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Method], false)}, {prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Method, $Bool], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumIn", name: "NumIn", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumOut", name: "NumOut", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Out", name: "Out", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "PkgPath", name: "PkgPath", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "common", name: "common", pkg: "reflect", typ: $funcType([], [ptrType$2], false)}, {prop: "uncommon", name: "uncommon", pkg: "reflect", typ: $funcType([], [ptrType$9], false)}]); - rtype.init("reflect", [{prop: "size", name: "size", embedded: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "ptrdata", name: "ptrdata", embedded: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "hash", name: "hash", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "tflag", name: "tflag", embedded: false, exported: false, typ: tflag, tag: ""}, {prop: "align", name: "align", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "fieldAlign", name: "fieldAlign", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "kind", name: "kind", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "equal", name: "equal", embedded: false, exported: false, typ: funcType$4, tag: ""}, {prop: "gcdata", name: "gcdata", embedded: false, exported: false, typ: ptrType$13, tag: ""}, {prop: "str", name: "str", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "ptrToThis", name: "ptrToThis", embedded: false, exported: false, typ: typeOff, tag: ""}]); - method.init("reflect", [{prop: "name", name: "name", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "mtyp", name: "mtyp", embedded: false, exported: false, typ: typeOff, tag: ""}, {prop: "ifn", name: "ifn", embedded: false, exported: false, typ: textOff, tag: ""}, {prop: "tfn", name: "tfn", embedded: false, exported: false, typ: textOff, tag: ""}]); - arrayType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "slice", name: "slice", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "len", name: "len", embedded: false, exported: false, typ: $Uintptr, tag: ""}]); - chanType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "dir", name: "dir", embedded: false, exported: false, typ: $Uintptr, tag: ""}]); - imethod.init("reflect", [{prop: "name", name: "name", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: typeOff, tag: ""}]); - interfaceType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "pkgPath", name: "pkgPath", embedded: false, exported: false, typ: name, tag: ""}, {prop: "methods", name: "methods", embedded: false, exported: false, typ: sliceType$16, tag: ""}]); - mapType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "key", name: "key", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "bucket", name: "bucket", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "hasher", name: "hasher", embedded: false, exported: false, typ: funcType$5, tag: ""}, {prop: "keysize", name: "keysize", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "valuesize", name: "valuesize", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "bucketsize", name: "bucketsize", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "flags", name: "flags", embedded: false, exported: false, typ: $Uint32, tag: ""}]); - ptrType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$2, tag: ""}]); - sliceType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$2, tag: ""}]); - structField.init("reflect", [{prop: "name", name: "name", embedded: false, exported: false, typ: name, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "offset", name: "offset", embedded: false, exported: false, typ: $Uintptr, tag: ""}]); - structType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "pkgPath", name: "pkgPath", embedded: false, exported: false, typ: name, tag: ""}, {prop: "fields", name: "fields", embedded: false, exported: false, typ: sliceType$17, tag: ""}]); + Type.init([{prop: "Align", name: "Align", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "AssignableTo", name: "AssignableTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Bits", name: "Bits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "ChanDir", name: "ChanDir", pkg: "", typ: $funcType([], [ChanDir], false)}, {prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "ConvertibleTo", name: "ConvertibleTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [StructField], false)}, {prop: "FieldAlign", name: "FieldAlign", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$6], [StructField], false)}, {prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [StructField, $Bool], false)}, {prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$4], [StructField, $Bool], false)}, {prop: "Implements", name: "Implements", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "In", name: "In", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "IsVariadic", name: "IsVariadic", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Method], false)}, {prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Method, $Bool], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumIn", name: "NumIn", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumOut", name: "NumOut", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Out", name: "Out", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "PkgPath", name: "PkgPath", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "common", name: "common", pkg: "reflect", typ: $funcType([], [ptrType$4], false)}, {prop: "uncommon", name: "uncommon", pkg: "reflect", typ: $funcType([], [ptrType$10], false)}]); + rtype.init("reflect", [{prop: "t", name: "t", embedded: false, exported: false, typ: abi.Type, tag: ""}]); + interfaceType.init("", [{prop: "InterfaceType", name: "InterfaceType", embedded: true, exported: true, typ: abi.InterfaceType, tag: ""}]); + mapType.init("", [{prop: "MapType", name: "MapType", embedded: true, exported: true, typ: abi.MapType, tag: ""}]); + ptrType.init("", [{prop: "PtrType", name: "PtrType", embedded: true, exported: true, typ: abi.PtrType, tag: ""}]); + sliceType.init("", [{prop: "SliceType", name: "SliceType", embedded: true, exported: true, typ: abi.SliceType, tag: ""}]); + structType.init("", [{prop: "StructType", name: "StructType", embedded: true, exported: true, typ: abi.StructType, tag: ""}]); Method.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "PkgPath", name: "PkgPath", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: Type, tag: ""}, {prop: "Func", name: "Func", embedded: false, exported: true, typ: Value, tag: ""}, {prop: "Index", name: "Index", embedded: false, exported: true, typ: $Int, tag: ""}]); - StructField.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "PkgPath", name: "PkgPath", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: Type, tag: ""}, {prop: "Tag", name: "Tag", embedded: false, exported: true, typ: StructTag, tag: ""}, {prop: "Offset", name: "Offset", embedded: false, exported: true, typ: $Uintptr, tag: ""}, {prop: "Index", name: "Index", embedded: false, exported: true, typ: sliceType$8, tag: ""}, {prop: "Anonymous", name: "Anonymous", embedded: false, exported: true, typ: $Bool, tag: ""}]); - fieldScan.init("reflect", [{prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType$12, tag: ""}, {prop: "index", name: "index", embedded: false, exported: false, typ: sliceType$8, tag: ""}]); - uncommonType.init("reflect", [{prop: "pkgPath", name: "pkgPath", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "mcount", name: "mcount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "xcount", name: "xcount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "moff", name: "moff", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "_methods", name: "_methods", embedded: false, exported: false, typ: sliceType$13, tag: ""}]); - funcType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: "reflect:\"func\""}, {prop: "inCount", name: "inCount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "outCount", name: "outCount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "_in", name: "_in", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "_out", name: "_out", embedded: false, exported: false, typ: sliceType$3, tag: ""}]); - name.init("reflect", [{prop: "bytes", name: "bytes", embedded: false, exported: false, typ: ptrType$13, tag: ""}]); - nameData.init("reflect", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "tag", name: "tag", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "exported", name: "exported", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "embedded", name: "embedded", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "pkgPath", name: "pkgPath", embedded: false, exported: false, typ: $String, tag: ""}]); - hiter.init("reflect", [{prop: "t", name: "t", embedded: false, exported: false, typ: Type, tag: ""}, {prop: "m", name: "m", embedded: false, exported: false, typ: ptrType$3, tag: ""}, {prop: "keys", name: "keys", embedded: false, exported: false, typ: ptrType$3, tag: ""}, {prop: "i", name: "i", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "last", name: "last", embedded: false, exported: false, typ: ptrType$3, tag: ""}]); + StructField.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "PkgPath", name: "PkgPath", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: Type, tag: ""}, {prop: "Tag", name: "Tag", embedded: false, exported: true, typ: StructTag, tag: ""}, {prop: "Offset", name: "Offset", embedded: false, exported: true, typ: $Uintptr, tag: ""}, {prop: "Index", name: "Index", embedded: false, exported: true, typ: sliceType$6, tag: ""}, {prop: "Anonymous", name: "Anonymous", embedded: false, exported: true, typ: $Bool, tag: ""}]); + fieldScan.init("reflect", [{prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType$13, tag: ""}, {prop: "index", name: "index", embedded: false, exported: false, typ: sliceType$6, tag: ""}]); + hiter.init("reflect", [{prop: "t", name: "t", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "m", name: "m", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "keys", name: "keys", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "i", name: "i", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "last", name: "last", embedded: false, exported: false, typ: ptrType$2, tag: ""}]); }; $init = function() { $pkg.$init = function() {}; @@ -18697,16 +17718,12 @@ $packages["reflect"] = (function() { $r = unicode.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = utf8.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } zeroVal = arrayType$1.zero(); - nameOffList = sliceType$2.nil; - typeOffList = sliceType$3.nil; - bytesType = rtypeOf((sliceType$4.nil)); + dummy = new structType$1.ptr(false, $ifaceNil); + bytesType = rtypeOf((sliceType$2.nil)); uint8Type = rtypeOf(new $Uint8(0)); stringType = rtypeOf(new $String("")); - kindNames = new sliceType$5(["invalid", "bool", "int", "int8", "int16", "int32", "int64", "uint", "uint8", "uint16", "uint32", "uint64", "uintptr", "float32", "float64", "complex64", "complex128", "array", "chan", "func", "interface", "map", "ptr", "slice", "string", "struct", "unsafe.Pointer"]); - initialized = false; - nameMap = new $global.Map(); + kindNames = new sliceType$3(["invalid", "bool", "int", "int8", "int16", "int32", "int64", "uint", "uint8", "uint16", "uint32", "uint64", "uintptr", "float32", "float64", "complex64", "complex128", "array", "chan", "func", "interface", "map", "ptr", "slice", "string", "struct", "unsafe.Pointer"]); callHelper = $assertType($internalize($call, $emptyInterface), funcType$1); - jsObjectPtr = reflectType($jsObjectPtr); selectHelper = $assertType($internalize($select, $emptyInterface), funcType$1); $r = init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; @@ -19981,17 +18998,15 @@ $packages["sort"] = (function() { }; $pkg.Stable = Stable; Slice = function Slice$1(x, less) { - var {_r, _r$1, length, less, limit, rv, swap, x, $s, $r, $c} = $restore(this, {x, less}); + var {length, less, limit, rv, swap, x, $s, $r, $c} = $restore(this, {x, less}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = reflectlite.ValueOf(x); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - rv = $clone(_r, reflectlite.Value); - _r$1 = reflectlite.Swapper(x); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - swap = _r$1; + rv = $clone(reflectlite.ValueOf(x), reflectlite.Value); + swap = reflectlite.Swapper(x); length = $clone(rv, reflectlite.Value).Len(); limit = bits.Len(((length >>> 0))); - $r = pdqsort_func($clone(new lessSwap.ptr(less, swap), lessSwap), 0, length, limit); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = pdqsort_func($clone(new lessSwap.ptr(less, swap), lessSwap), 0, length, limit); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } var $f = {$blk: Slice$1, $c: true, $r, _r, _r$1, length, less, limit, rv, swap, x, $s};return $f; + /* */ } return; } var $f = {$blk: Slice$1, $c: true, $r, length, less, limit, rv, swap, x, $s};return $f; }; $pkg.Slice = Slice; Search = function Search$1(n, f) { @@ -20129,7 +19144,7 @@ $packages["internal/fmtsort"] = (function() { (x$7 = o.Value, ((j < 0 || j >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + j] = _tmp$3)); }; Sort = function Sort$1(mapValue) { - var {_r, _r$1, _r$2, _r$3, _r$4, iter, key, mapValue, n, sorted, value, $s, $r, $c} = $restore(this, {mapValue}); + var {_r, iter, key, mapValue, n, sorted, value, $s, $r, $c} = $restore(this, {mapValue}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: _r = $clone(mapValue, reflect.Value).Type().Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (!((_r === 21))) { $s = 1; continue; } @@ -20137,28 +19152,23 @@ $packages["internal/fmtsort"] = (function() { /* if (!((_r === 21))) { */ case 1: $s = -1; return ptrType.nil; /* } */ case 2: - _r$1 = $clone(mapValue, reflect.Value).Len(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - n = _r$1; + n = $clone(mapValue, reflect.Value).Len(); key = $makeSlice(sliceType, 0, n); value = $makeSlice(sliceType, 0, n); iter = $clone(mapValue, reflect.Value).MapRange(); - /* while (true) { */ case 5: - _r$2 = iter.Next(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* if (!(_r$2)) { break; } */ if(!(_r$2)) { $s = 6; continue; } - _r$3 = iter.Key(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - key = $append(key, _r$3); - _r$4 = iter.Value(); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - value = $append(value, _r$4); - $s = 5; continue; - case 6: + while (true) { + if (!(iter.Next())) { break; } + key = $append(key, iter.Key()); + value = $append(value, iter.Value()); + } sorted = new SortedMap.ptr(key, value); - $r = sort.Stable(sorted); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sort.Stable(sorted); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return sorted; - /* */ } return; } var $f = {$blk: Sort$1, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, iter, key, mapValue, n, sorted, value, $s};return $f; + /* */ } return; } var $f = {$blk: Sort$1, $c: true, $r, _r, iter, key, mapValue, n, sorted, value, $s};return $f; }; $pkg.Sort = Sort; compare = function compare$1(aVal, bVal) { - var {$24r, _1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, a, a$1, a$2, a$3, a$4, a$5, aType, aVal, ap, b, b$1, b$2, b$3, b$4, b$5, bType, bVal, bp, c, c$1, c$2, c$3, c$4, c$5, i, i$1, ok, ok$1, $s, $r, $c} = $restore(this, {aVal, bVal}); + var {$24r, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, a, a$1, a$2, a$3, a$4, a$5, aType, aVal, ap, b, b$1, b$2, b$3, b$4, b$5, bType, bVal, bp, c, c$1, c$2, c$3, c$4, c$5, i, i$1, ok, ok$1, $s, $r, $c} = $restore(this, {aVal, bVal}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: _tmp = $clone(aVal, reflect.Value).Type(); _tmp$1 = $clone(bVal, reflect.Value).Type(); @@ -20282,12 +19292,8 @@ $packages["internal/fmtsort"] = (function() { i = 0; /* while (true) { */ case 17: /* if (!(i < $clone(aVal, reflect.Value).NumField())) { break; } */ if(!(i < $clone(aVal, reflect.Value).NumField())) { $s = 18; continue; } - _r$2 = $clone(aVal, reflect.Value).Field(i); /* */ $s = 19; case 19: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _arg = $clone(_r$2, reflect.Value); - _r$3 = $clone(bVal, reflect.Value).Field(i); /* */ $s = 20; case 20: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _arg$1 = $clone(_r$3, reflect.Value); - _r$4 = compare(_arg, _arg$1); /* */ $s = 21; case 21: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - c$2 = _r$4; + _r$2 = compare($clone($clone(aVal, reflect.Value).Field(i), reflect.Value), $clone($clone(bVal, reflect.Value).Field(i), reflect.Value)); /* */ $s = 19; case 19: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + c$2 = _r$2; if (!((c$2 === 0))) { $s = -1; return c$2; } @@ -20297,21 +19303,16 @@ $packages["internal/fmtsort"] = (function() { $s = -1; return 0; /* } else if (_1 === (17)) { */ case 11: i$1 = 0; - /* while (true) { */ case 22: - _r$5 = $clone(aVal, reflect.Value).Len(); /* */ $s = 24; case 24: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* if (!(i$1 < _r$5)) { break; } */ if(!(i$1 < _r$5)) { $s = 23; continue; } - _r$6 = $clone(aVal, reflect.Value).Index(i$1); /* */ $s = 25; case 25: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _arg$2 = $clone(_r$6, reflect.Value); - _r$7 = $clone(bVal, reflect.Value).Index(i$1); /* */ $s = 26; case 26: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _arg$3 = $clone(_r$7, reflect.Value); - _r$8 = compare(_arg$2, _arg$3); /* */ $s = 27; case 27: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - c$3 = _r$8; + /* while (true) { */ case 20: + /* if (!(i$1 < $clone(aVal, reflect.Value).Len())) { break; } */ if(!(i$1 < $clone(aVal, reflect.Value).Len())) { $s = 21; continue; } + _r$3 = compare($clone($clone(aVal, reflect.Value).Index(i$1), reflect.Value), $clone($clone(bVal, reflect.Value).Index(i$1), reflect.Value)); /* */ $s = 22; case 22: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + c$3 = _r$3; if (!((c$3 === 0))) { $s = -1; return c$3; } i$1 = i$1 + (1) >> 0; - $s = 22; continue; - case 23: + $s = 20; continue; + case 21: $s = -1; return 0; /* } else if (_1 === (20)) { */ case 12: _tuple$1 = nilCompare($clone(aVal, reflect.Value), $clone(bVal, reflect.Value)); @@ -20320,33 +19321,21 @@ $packages["internal/fmtsort"] = (function() { if (ok$1) { $s = -1; return c$4; } - _r$9 = $clone(aVal, reflect.Value).Elem(); /* */ $s = 28; case 28: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _r$10 = $clone(_r$9, reflect.Value).Type(); /* */ $s = 29; case 29: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _r$11 = reflect.ValueOf(_r$10); /* */ $s = 30; case 30: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _arg$4 = $clone(_r$11, reflect.Value); - _r$12 = $clone(bVal, reflect.Value).Elem(); /* */ $s = 31; case 31: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _r$13 = $clone(_r$12, reflect.Value).Type(); /* */ $s = 32; case 32: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - _r$14 = reflect.ValueOf(_r$13); /* */ $s = 33; case 33: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - _arg$5 = $clone(_r$14, reflect.Value); - _r$15 = compare(_arg$4, _arg$5); /* */ $s = 34; case 34: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - c$5 = _r$15; + _r$4 = compare($clone(reflect.ValueOf($clone($clone(aVal, reflect.Value).Elem(), reflect.Value).Type()), reflect.Value), $clone(reflect.ValueOf($clone($clone(bVal, reflect.Value).Elem(), reflect.Value).Type()), reflect.Value)); /* */ $s = 23; case 23: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + c$5 = _r$4; if (!((c$5 === 0))) { $s = -1; return c$5; } - _r$16 = $clone(aVal, reflect.Value).Elem(); /* */ $s = 35; case 35: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - _arg$6 = $clone(_r$16, reflect.Value); - _r$17 = $clone(bVal, reflect.Value).Elem(); /* */ $s = 36; case 36: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - _arg$7 = $clone(_r$17, reflect.Value); - _r$18 = compare(_arg$6, _arg$7); /* */ $s = 37; case 37: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - $24r = _r$18; - $s = 38; case 38: return $24r; + _r$5 = compare($clone($clone(aVal, reflect.Value).Elem(), reflect.Value), $clone($clone(bVal, reflect.Value).Elem(), reflect.Value)); /* */ $s = 24; case 24: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $24r = _r$5; + $s = 25; case 25: return $24r; /* } else { */ case 13: - _r$19 = aType.String(); /* */ $s = 39; case 39: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - $panic(new $String("bad type in compare: " + _r$19)); + _r$6 = aType.String(); /* */ $s = 26; case 26: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $panic(new $String("bad type in compare: " + _r$6)); /* } */ case 14: case 1: $s = -1; return 0; - /* */ } return; } var $f = {$blk: compare$1, $c: true, $r, $24r, _1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, a, a$1, a$2, a$3, a$4, a$5, aType, aVal, ap, b, b$1, b$2, b$3, b$4, b$5, bType, bVal, bp, c, c$1, c$2, c$3, c$4, c$5, i, i$1, ok, ok$1, $s};return $f; + /* */ } return; } var $f = {$blk: compare$1, $c: true, $r, $24r, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, a, a$1, a$2, a$3, a$4, a$5, aType, aVal, ap, b, b$1, b$2, b$3, b$4, b$5, bType, bVal, bp, c, c$1, c$2, c$3, c$4, c$5, i, i$1, ok, ok$1, $s};return $f; }; nilCompare = function nilCompare$1(aVal, bVal) { var aVal, bVal; @@ -21344,9 +20333,6 @@ $packages["io"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: b = $makeSlice(sliceType$1, 0, 512); /* while (true) { */ case 1: - if (b.$length === b.$capacity) { - b = $subslice($append(b, 0), 0, b.$length); - } _r = r.Read($subslice(b, b.$length, b.$capacity)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; n = _tuple[0]; @@ -21358,6 +20344,9 @@ $packages["io"] = (function() { } $s = -1; return [b, err]; } + if (b.$length === b.$capacity) { + b = $subslice($append(b, 0), 0, b.$length); + } $s = 1; continue; case 2: $s = -1; return [sliceType$1.nil, $ifaceNil]; @@ -21923,7 +20912,7 @@ $packages["syscall/js"] = (function() { return $pkg; })(); $packages["syscall"] = (function() { - var $pkg = {}, $init, errors, bytealg, itoa, oserror, runtime, sync, js, Errno, Signal, Stat_t, WaitStatus, Rusage, ProcAttr, SysProcAttr, Iovec, Timeval, Sockaddr, SockaddrInet4, SockaddrInet6, SockaddrUnix, RawConn, jsFile, callResult, arrayType, sliceType, arrayType$1, sliceType$1, sliceType$2, ptrType, funcType, arrayType$2, ptrType$2, sliceType$4, ptrType$3, ptrType$5, arrayType$3, arrayType$4, funcType$1, funcType$2, filesMu, envOnce, envLock, env, errorstr, errEAGAIN, errEINVAL, errENOENT, errnoByCode, signals, jsProcess, jsFS, constants, uint8Array, nodeWRONLY, nodeRDWR, nodeCREATE, nodeTRUNC, nodeAPPEND, nodeEXCL, files, envs, faketimeWrite, errnoErr, Getwd, Kill, StartProcess, Wait4, Bind, StopIO, Accept, Recvfrom, Sendto, Recvmsg, SendmsgN, SetsockoptInt, SetReadDeadline, SetWriteDeadline, Shutdown, SetNonblock, runtime_envs, setStat, Exit, fsCall, fdToFile, Open, Close, CloseOnExec, ReadDirent, Stat, Lstat, Fstat, Unlink, Rmdir, Chmod, Fchmod, Fchown, Ftruncate, Getcwd, Chdir, Fchdir, Readlink, Fsync, Read, Write, Pread, Pwrite, Seek, Dup, Pipe, checkPath, recoverErr, mapJSError, copyenv, Getenv, Environ; + var $pkg = {}, $init, errors, bytealg, itoa, oserror, runtime, sync, js, Errno, Signal, Stat_t, WaitStatus, Rusage, ProcAttr, SysProcAttr, Iovec, Timeval, Sockaddr, SockaddrInet4, SockaddrInet6, SockaddrUnix, RawConn, jsFile, callResult, arrayType, sliceType, arrayType$1, sliceType$1, sliceType$2, ptrType, funcType, arrayType$2, ptrType$2, sliceType$4, ptrType$3, ptrType$5, arrayType$3, arrayType$4, funcType$1, funcType$2, filesMu, envOnce, envLock, env, errorstr, errEAGAIN, errEINVAL, errENOENT, errnoByCode, signals, jsProcess, jsFS, constants, uint8Array, nodeWRONLY, nodeRDWR, nodeCREATE, nodeTRUNC, nodeAPPEND, nodeEXCL, files, envs, faketimeWrite, errnoErr, Getwd, Kill, StartProcess, Wait4, Bind, StopIO, Accept, Recvfrom, Sendto, Recvmsg, SendmsgN, SetsockoptInt, SetReadDeadline, SetWriteDeadline, Shutdown, SetNonblock, runtime_envs, setStat, Exit, fsCall, fdToFile, Open, Close, CloseOnExec, ReadDirent, Stat, Lstat, Fstat, Unlink, Rmdir, Chmod, Fchmod, Fchown, Ftruncate, Getcwd, Chdir, Fchdir, Readlink, Fsync, Read, Write, Pread, Pwrite, Seek, Dup, checkPath, recoverErr, mapJSError, copyenv, Getenv, Environ; errors = $packages["errors"]; bytealg = $packages["internal/bytealg"]; itoa = $packages["internal/itoa"]; @@ -22139,6 +21128,8 @@ $packages["syscall"] = (function() { return (e === 17) || (e === 39); } else if ($interfaceIsEqual(_1, (oserror.ErrNotExist))) { return e === 2; + } else if ($interfaceIsEqual(_1, (errors.ErrUnsupported))) { + return (e === 38) || (e === 95) || (e === 95); } return false; }; @@ -22987,11 +21978,6 @@ $packages["syscall"] = (function() { return [0, new Errno(38)]; }; $pkg.Dup = Dup; - Pipe = function Pipe$1(fd) { - var fd; - return new Errno(38); - }; - $pkg.Pipe = Pipe; checkPath = function checkPath$1(path) { var i, path; if (path === "") { @@ -23191,20 +22177,9 @@ $packages["syscall"] = (function() { return $pkg; })(); $packages["internal/syscall/unix"] = (function() { - var $pkg = {}, $init, syscall, IsNonblock, HasNonblockFlag, RecvfromInet4, RecvfromInet6, SendtoInet4, SendtoInet6, SendmsgNInet4, SendmsgNInet6, RecvmsgInet4, RecvmsgInet6; + var $pkg = {}, $init, syscall, HasNonblockFlag, RecvfromInet4, RecvfromInet6, SendtoInet4, SendtoInet6, SendmsgNInet4, SendmsgNInet6, RecvmsgInet4, RecvmsgInet6, Fcntl; syscall = $packages["syscall"]; $pkg.$finishSetup = function() { - IsNonblock = function IsNonblock$1(fd) { - var _tmp, _tmp$1, err, fd, nonblocking; - nonblocking = false; - err = $ifaceNil; - _tmp = false; - _tmp$1 = $ifaceNil; - nonblocking = _tmp; - err = _tmp$1; - return [nonblocking, err]; - }; - $pkg.IsNonblock = IsNonblock; HasNonblockFlag = function HasNonblockFlag$1(flag) { var flag; return false; @@ -23296,6 +22271,11 @@ $packages["internal/syscall/unix"] = (function() { return [n, oobn, recvflags, err]; }; $pkg.RecvmsgInet6 = RecvmsgInet6; + Fcntl = function Fcntl$1(fd, cmd, arg) { + var arg, cmd, fd; + return [0, new syscall.Errno(38)]; + }; + $pkg.Fcntl = Fcntl; }; $init = function() { $pkg.$init = function() {}; @@ -23624,7 +22604,7 @@ $packages["github.com/gopherjs/gopherjs/nosync"] = (function() { return $pkg; })(); $packages["time"] = (function() { - var $pkg = {}, $init, errors, js, nosync, runtime, syscall, Location, zone, zoneTrans, ruleKind, rule, Time, Month, Weekday, Duration, Timer, runtimeTimer, ParseError, sliceType, sliceType$1, ptrType, ptrType$1, sliceType$2, sliceType$3, sliceType$4, arrayType$2, chanType, funcType, structType, arrayType$3, ptrType$4, chanType$1, ptrType$6, funcType$1, ptrType$7, ptrType$8, localLoc, localLoc$24ptr, localOnce, unnamedFixedZones, unnamedFixedZonesOnce, badData, utcLoc, utcLoc$24ptr, errLocation, daysBefore, startNano, x, _r, zoneSources, std0x, longDayNames, shortDayNames, shortMonthNames, longMonthNames, atoiError, errBad, errLeadingInt, FixedZone, fixedZone, tzset, tzsetName, tzsetOffset, tzsetRule, tzsetNum, tzruleTime, absWeekday, absClock, fmtFrac, fmtInt, lessThanHalf, Since, Until, absDate, daysIn, daysSinceEpoch, runtimeNano, Now, unixTime, Unix, isLeap, norm, Date, div, when, NewTimer, sendTime, AfterFunc, goFunc, initLocal, itoa, init, now, Sleep, startTimer, stopTimer, modTimer, resetTimer, parseRFC3339 = [], parseStrictRFC3339, startsWithLowerCase, nextStdChunk, match, lookup, appendInt, atoi = [], stdFracSecond, digitsLen, separator, appendNano, newParseError, cloneString, quote, isDigit = [], getnum, getnum3, cutspace, skip, Parse, parse, parseTimeZone, parseGMT, parseSignedOffset, commaOrPeriod, parseNanoseconds = [], leadingInt = []; + var $pkg = {}, $init, errors, js, nosync, runtime, syscall, Location, zone, zoneTrans, ruleKind, rule, Time, Month, Weekday, Duration, Timer, runtimeTimer, ParseError, sliceType, sliceType$1, ptrType, ptrType$1, sliceType$2, sliceType$3, sliceType$4, arrayType$2, ptrType$3, chanType, funcType, structType, arrayType$3, chanType$1, ptrType$6, funcType$1, ptrType$7, ptrType$8, localLoc, localLoc$24ptr, localOnce, unnamedFixedZones, unnamedFixedZonesOnce, errBadData, utcLoc, utcLoc$24ptr, errLocation, daysBefore, startNano, x, _r, zoneSources, std0x, longDayNames, shortDayNames, shortMonthNames, longMonthNames, errAtoi, errBad, errLeadingInt, FixedZone, fixedZone, tzset, tzsetName, tzsetOffset, tzsetRule, tzsetNum, tzruleTime, absWeekday, absClock, fmtFrac, fmtInt, lessThanHalf, Since, Until, absDate, daysIn, daysSinceEpoch, runtimeNano, Now, unixTime, Unix, isLeap, norm, Date, div, when, NewTimer, sendTime, AfterFunc, goFunc, initLocal, itoa, init, now, Sleep, startTimer, stopTimer, modTimer, resetTimer, parseRFC3339 = [], parseStrictRFC3339, startsWithLowerCase, nextStdChunk, match, lookup, appendInt, atoi = [], stdFracSecond, digitsLen, separator, appendNano, newParseError, cloneString, quote, isDigit = [], getnum, getnum3, cutspace, skip, Parse, parse, parseTimeZone, parseGMT, parseSignedOffset, commaOrPeriod, parseNanoseconds = [], leadingInt = []; errors = $packages["errors"]; js = $packages["github.com/gopherjs/gopherjs/js"]; nosync = $packages["github.com/gopherjs/gopherjs/nosync"]; @@ -23777,11 +22757,11 @@ $packages["time"] = (function() { sliceType$3 = $sliceType($String); sliceType$4 = $sliceType($Uint8); arrayType$2 = $arrayType($Uint8, 32); + ptrType$3 = $ptrType(Time); chanType = $chanType(Time, false, false); funcType = $funcType([], [], false); structType = $structType("", []); arrayType$3 = $arrayType($Uint8, 64); - ptrType$4 = $ptrType(Time); chanType$1 = $chanType(Time, false, true); ptrType$6 = $ptrType(Timer); funcType$1 = $funcType([$emptyInterface, $Uintptr], [], false); @@ -23837,7 +22817,7 @@ $packages["time"] = (function() { fixedZone = function fixedZone$1(name, offset) { var l, name, offset, x$1; l = new Location.ptr(name, new sliceType([$clone(new zone.ptr(name, offset, false), zone)]), new sliceType$1([$clone(new zoneTrans.ptr(new $Int64(-2147483648, 0), 0, false, false), zoneTrans)]), "", new $Int64(-2147483648, 0), new $Int64(2147483647, 4294967295), ptrType.nil); - l.cacheZone = (x$1 = l.zone, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])); + l.cacheZone = (x$1 = l.zone, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + 0, ptrType))); return l; }; $ptrType(Location).prototype.lookup = function lookup$1(sec) { @@ -23869,7 +22849,7 @@ $packages["time"] = (function() { $s = -1; return [name, offset, start, end, isDST]; } if ((l.tx.$length === 0) || (x$3 = (x$4 = l.tx, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])).when, (sec.$high < x$3.$high || (sec.$high === x$3.$high && sec.$low < x$3.$low)))) { - zone$2 = (x$5 = l.zone, x$6 = l.lookupFirstZone(), ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$6])); + zone$2 = (x$5 = l.zone, x$6 = l.lookupFirstZone(), ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$5.$array, x$5.$offset + x$6, ptrType))); name = zone$2.name; offset = zone$2.offset; start = new $Int64(-2147483648, 0); @@ -23896,7 +22876,7 @@ $packages["time"] = (function() { lo = m; } } - zone$3 = (x$8 = l.zone, x$9 = ((lo < 0 || lo >= tx.$length) ? ($throwRuntimeError("index out of range"), undefined) : tx.$array[tx.$offset + lo]).index, ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + x$9])); + zone$3 = (x$8 = l.zone, x$9 = ((lo < 0 || lo >= tx.$length) ? ($throwRuntimeError("index out of range"), undefined) : tx.$array[tx.$offset + lo]).index, ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$8.$array, x$8.$offset + x$9, ptrType))); name = zone$3.name; offset = zone$3.offset; start = ((lo < 0 || lo >= tx.$length) ? ($throwRuntimeError("index out of range"), undefined) : tx.$array[tx.$offset + lo]).when; @@ -24536,7 +23516,7 @@ $packages["time"] = (function() { /* while (true) { */ case 2: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } i = _i; - zone$1 = (x$1 = l.zone, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])); + zone$1 = (x$1 = l.zone, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + i, ptrType))); /* */ if (zone$1.name === name) { $s = 4; continue; } /* */ $s = 5; continue; /* if (zone$1.name === name) { */ case 4: @@ -24560,7 +23540,7 @@ $packages["time"] = (function() { while (true) { if (!(_i$1 < _ref$1.$length)) { break; } i$1 = _i$1; - zone$2 = (x$3 = l.zone, ((i$1 < 0 || i$1 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + i$1])); + zone$2 = (x$3 = l.zone, ((i$1 < 0 || i$1 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$3.$array, x$3.$offset + i$1, ptrType))); if (zone$2.name === name) { _tmp$2 = zone$2.offset; _tmp$3 = true; @@ -25535,7 +24515,7 @@ $packages["time"] = (function() { if (version === 2) { offset = offset + ((((2 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 2]) >> 0))) >> 0; } - Time.copy(t, new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$1.nil)); + Time.copy((t === ptrType$3.nil && $throwNilPointerError(), t), new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$1.nil)); t.wall = (new $Uint64(0, nsec$1)); t.ext = sec$1; /* */ if (offset === -60) { $s = 1; continue; } @@ -25616,7 +24596,7 @@ $packages["time"] = (function() { err = $ifaceNil; _r$1 = parseStrictRFC3339(data); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple = _r$1; - Time.copy(t, _tuple[0]); + Time.copy((t === ptrType$3.nil && $throwNilPointerError(), t), _tuple[0]); err = _tuple[1]; $s = -1; return err; /* */ } return; } var $f = {$blk: UnmarshalJSON, $c: true, $r, _r$1, _tuple, data, err, t, x$1, $s};return $f; @@ -25649,7 +24629,7 @@ $packages["time"] = (function() { err = $ifaceNil; _r$1 = parseStrictRFC3339(data); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple = _r$1; - Time.copy(t, _tuple[0]); + Time.copy((t === ptrType$3.nil && $throwNilPointerError(), t), _tuple[0]); err = _tuple[1]; $s = -1; return err; /* */ } return; } var $f = {$blk: UnmarshalText, $c: true, $r, _r$1, _tuple, data, err, t, $s};return $f; @@ -26833,7 +25813,7 @@ $packages["time"] = (function() { x$1 = ((q.$low >> 0)); if (!($interfaceIsEqual(err, $ifaceNil)) || rem.length > 0) { _tmp = 0; - _tmp$1 = atoiError; + _tmp$1 = errAtoi; x$1 = _tmp; err = _tmp$1; return [x$1, err]; @@ -26863,7 +25843,7 @@ $packages["time"] = (function() { x$1 = ((q.$low >> 0)); if (!($interfaceIsEqual(err, $ifaceNil)) || rem.$length > 0) { _tmp = 0; - _tmp$1 = atoiError; + _tmp$1 = errAtoi; x$1 = _tmp; err = _tmp$1; return [x$1, err]; @@ -28221,7 +27201,7 @@ $packages["time"] = (function() { }; ptrType$1.methods = [{prop: "get", name: "get", pkg: "time", typ: $funcType([], [ptrType$1], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "lookup", name: "lookup", pkg: "time", typ: $funcType([$Int64], [$String, $Int, $Int64, $Int64, $Bool], false)}, {prop: "lookupFirstZone", name: "lookupFirstZone", pkg: "time", typ: $funcType([], [$Int], false)}, {prop: "firstZoneUsed", name: "firstZoneUsed", pkg: "time", typ: $funcType([], [$Bool], false)}, {prop: "lookupName", name: "lookupName", pkg: "time", typ: $funcType([$String, $Int64], [$Int, $Bool], false)}]; Time.methods = [{prop: "After", name: "After", pkg: "", typ: $funcType([Time], [$Bool], false)}, {prop: "Before", name: "Before", pkg: "", typ: $funcType([Time], [$Bool], false)}, {prop: "Compare", name: "Compare", pkg: "", typ: $funcType([Time], [$Int], false)}, {prop: "Equal", name: "Equal", pkg: "", typ: $funcType([Time], [$Bool], false)}, {prop: "IsZero", name: "IsZero", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "abs", name: "abs", pkg: "time", typ: $funcType([], [$Uint64], false)}, {prop: "locabs", name: "locabs", pkg: "time", typ: $funcType([], [$String, $Int, $Uint64], false)}, {prop: "Date", name: "Date", pkg: "", typ: $funcType([], [$Int, Month, $Int], false)}, {prop: "Year", name: "Year", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Month", name: "Month", pkg: "", typ: $funcType([], [Month], false)}, {prop: "Day", name: "Day", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Weekday", name: "Weekday", pkg: "", typ: $funcType([], [Weekday], false)}, {prop: "ISOWeek", name: "ISOWeek", pkg: "", typ: $funcType([], [$Int, $Int], false)}, {prop: "Clock", name: "Clock", pkg: "", typ: $funcType([], [$Int, $Int, $Int], false)}, {prop: "Hour", name: "Hour", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Minute", name: "Minute", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Second", name: "Second", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Nanosecond", name: "Nanosecond", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "YearDay", name: "YearDay", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([Duration], [Time], false)}, {prop: "Sub", name: "Sub", pkg: "", typ: $funcType([Time], [Duration], false)}, {prop: "AddDate", name: "AddDate", pkg: "", typ: $funcType([$Int, $Int, $Int], [Time], false)}, {prop: "date", name: "date", pkg: "time", typ: $funcType([$Bool], [$Int, Month, $Int, $Int], false)}, {prop: "UTC", name: "UTC", pkg: "", typ: $funcType([], [Time], false)}, {prop: "Local", name: "Local", pkg: "", typ: $funcType([], [Time], false)}, {prop: "In", name: "In", pkg: "", typ: $funcType([ptrType$1], [Time], false)}, {prop: "Location", name: "Location", pkg: "", typ: $funcType([], [ptrType$1], false)}, {prop: "Zone", name: "Zone", pkg: "", typ: $funcType([], [$String, $Int], false)}, {prop: "ZoneBounds", name: "ZoneBounds", pkg: "", typ: $funcType([], [Time, Time], false)}, {prop: "Unix", name: "Unix", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "UnixMilli", name: "UnixMilli", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "UnixMicro", name: "UnixMicro", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "UnixNano", name: "UnixNano", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "MarshalBinary", name: "MarshalBinary", pkg: "", typ: $funcType([], [sliceType$4, $error], false)}, {prop: "GobEncode", name: "GobEncode", pkg: "", typ: $funcType([], [sliceType$4, $error], false)}, {prop: "MarshalJSON", name: "MarshalJSON", pkg: "", typ: $funcType([], [sliceType$4, $error], false)}, {prop: "MarshalText", name: "MarshalText", pkg: "", typ: $funcType([], [sliceType$4, $error], false)}, {prop: "IsDST", name: "IsDST", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Truncate", name: "Truncate", pkg: "", typ: $funcType([Duration], [Time], false)}, {prop: "Round", name: "Round", pkg: "", typ: $funcType([Duration], [Time], false)}, {prop: "appendFormatRFC3339", name: "appendFormatRFC3339", pkg: "time", typ: $funcType([sliceType$4, $Bool], [sliceType$4], false)}, {prop: "appendStrictRFC3339", name: "appendStrictRFC3339", pkg: "time", typ: $funcType([sliceType$4], [sliceType$4, $error], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Format", name: "Format", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "AppendFormat", name: "AppendFormat", pkg: "", typ: $funcType([sliceType$4, $String], [sliceType$4], false)}, {prop: "appendFormat", name: "appendFormat", pkg: "time", typ: $funcType([sliceType$4, $String], [sliceType$4], false)}]; - ptrType$4.methods = [{prop: "nsec", name: "nsec", pkg: "time", typ: $funcType([], [$Int32], false)}, {prop: "sec", name: "sec", pkg: "time", typ: $funcType([], [$Int64], false)}, {prop: "unixSec", name: "unixSec", pkg: "time", typ: $funcType([], [$Int64], false)}, {prop: "addSec", name: "addSec", pkg: "time", typ: $funcType([$Int64], [], false)}, {prop: "setLoc", name: "setLoc", pkg: "time", typ: $funcType([ptrType$1], [], false)}, {prop: "stripMono", name: "stripMono", pkg: "time", typ: $funcType([], [], false)}, {prop: "setMono", name: "setMono", pkg: "time", typ: $funcType([$Int64], [], false)}, {prop: "mono", name: "mono", pkg: "time", typ: $funcType([], [$Int64], false)}, {prop: "UnmarshalBinary", name: "UnmarshalBinary", pkg: "", typ: $funcType([sliceType$4], [$error], false)}, {prop: "GobDecode", name: "GobDecode", pkg: "", typ: $funcType([sliceType$4], [$error], false)}, {prop: "UnmarshalJSON", name: "UnmarshalJSON", pkg: "", typ: $funcType([sliceType$4], [$error], false)}, {prop: "UnmarshalText", name: "UnmarshalText", pkg: "", typ: $funcType([sliceType$4], [$error], false)}]; + ptrType$3.methods = [{prop: "nsec", name: "nsec", pkg: "time", typ: $funcType([], [$Int32], false)}, {prop: "sec", name: "sec", pkg: "time", typ: $funcType([], [$Int64], false)}, {prop: "unixSec", name: "unixSec", pkg: "time", typ: $funcType([], [$Int64], false)}, {prop: "addSec", name: "addSec", pkg: "time", typ: $funcType([$Int64], [], false)}, {prop: "setLoc", name: "setLoc", pkg: "time", typ: $funcType([ptrType$1], [], false)}, {prop: "stripMono", name: "stripMono", pkg: "time", typ: $funcType([], [], false)}, {prop: "setMono", name: "setMono", pkg: "time", typ: $funcType([$Int64], [], false)}, {prop: "mono", name: "mono", pkg: "time", typ: $funcType([], [$Int64], false)}, {prop: "UnmarshalBinary", name: "UnmarshalBinary", pkg: "", typ: $funcType([sliceType$4], [$error], false)}, {prop: "GobDecode", name: "GobDecode", pkg: "", typ: $funcType([sliceType$4], [$error], false)}, {prop: "UnmarshalJSON", name: "UnmarshalJSON", pkg: "", typ: $funcType([sliceType$4], [$error], false)}, {prop: "UnmarshalText", name: "UnmarshalText", pkg: "", typ: $funcType([sliceType$4], [$error], false)}]; Month.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; Weekday.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; Duration.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Nanoseconds", name: "Nanoseconds", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Microseconds", name: "Microseconds", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Milliseconds", name: "Milliseconds", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Seconds", name: "Seconds", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Minutes", name: "Minutes", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Hours", name: "Hours", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Truncate", name: "Truncate", pkg: "", typ: $funcType([Duration], [Duration], false)}, {prop: "Round", name: "Round", pkg: "", typ: $funcType([Duration], [Duration], false)}, {prop: "Abs", name: "Abs", pkg: "", typ: $funcType([], [Duration], false)}]; @@ -28251,7 +27231,7 @@ $packages["time"] = (function() { localOnce = new nosync.Once.ptr(false, false); unnamedFixedZones = sliceType$2.nil; unnamedFixedZonesOnce = new nosync.Once.ptr(false, false); - badData = errors.New("malformed time zone information"); + errBadData = errors.New("malformed time zone information"); utcLoc = new Location.ptr("UTC", sliceType.nil, sliceType$1.nil, "", new $Int64(0, 0), new $Int64(0, 0), ptrType.nil); $pkg.UTC = utcLoc; $pkg.Local = localLoc; @@ -28265,7 +27245,7 @@ $packages["time"] = (function() { shortDayNames = new sliceType$3(["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]); shortMonthNames = new sliceType$3(["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]); longMonthNames = new sliceType$3(["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]); - atoiError = errors.New("time: invalid number"); + errAtoi = errors.New("time: invalid number"); errBad = errors.New("bad value for field"); errLeadingInt = errors.New("time: bad [0-9]*"); init(); @@ -28275,20 +27255,28 @@ $packages["time"] = (function() { return $pkg; })(); $packages["internal/poll"] = (function() { - var $pkg = {}, $init, errors, unix, io, atomic, syscall, time, FD, pollDesc, fdMutex, errNetClosing, DeadlineExceededError, ptrType, ptrType$1, ptrType$2, ptrType$3, sliceType, sliceType$1, ptrType$4, ptrType$5, ptrType$6, ptrType$7, funcType, funcType$1, ptrType$8, ptrType$9, ptrType$10, tryDupCloexec, tryDupCloexec$24ptr, accept, runtime_Semacquire, runtime_Semrelease, DupCloseOnExec, dupCloseOnExecOld, ignoringEINTRIO, ignoringEINTR, setDeadlineImpl, errClosing, fcntl; + var $pkg = {}, $init, errors, unix, io, atomic, syscall, time, SysFile, FD, pollDesc, fdMutex, errNetClosing, DeadlineExceededError, ptrType, ptrType$1, ptrType$2, ptrType$3, sliceType, sliceType$1, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, funcType, funcType$1, ptrType$9, ptrType$10, dupCloexecUnsupported, accept, runtime_Semacquire, runtime_Semrelease, dupCloseOnExecOld, DupCloseOnExec, ignoringEINTRIO, ignoringEINTR, setDeadlineImpl, errClosing; errors = $packages["errors"]; unix = $packages["internal/syscall/unix"]; io = $packages["io"]; atomic = $packages["sync/atomic"]; syscall = $packages["syscall"]; time = $packages["time"]; - FD = $newType(0, $kindStruct, "poll.FD", true, "internal/poll", true, function(fdmu_, Sysfd_, pd_, iovecs_, csema_, isBlocking_, IsStream_, ZeroReadIsEOF_, isFile_) { + SysFile = $newType(0, $kindStruct, "poll.SysFile", true, "internal/poll", true, function(iovecs_) { + this.$val = this; + if (arguments.length === 0) { + this.iovecs = ptrType$4.nil; + return; + } + this.iovecs = iovecs_; + }); + FD = $newType(0, $kindStruct, "poll.FD", true, "internal/poll", true, function(fdmu_, Sysfd_, SysFile_, pd_, csema_, isBlocking_, IsStream_, ZeroReadIsEOF_, isFile_) { this.$val = this; if (arguments.length === 0) { this.fdmu = new fdMutex.ptr(new $Uint64(0, 0), 0, 0); this.Sysfd = 0; - this.pd = new pollDesc.ptr(ptrType$2.nil, false); - this.iovecs = ptrType$4.nil; + this.SysFile = new SysFile.ptr(ptrType$4.nil); + this.pd = new pollDesc.ptr(ptrType.nil, false); this.csema = 0; this.isBlocking = 0; this.IsStream = false; @@ -28298,8 +27286,8 @@ $packages["internal/poll"] = (function() { } this.fdmu = fdmu_; this.Sysfd = Sysfd_; + this.SysFile = SysFile_; this.pd = pd_; - this.iovecs = iovecs_; this.csema = csema_; this.isBlocking = isBlocking_; this.IsStream = IsStream_; @@ -28309,7 +27297,7 @@ $packages["internal/poll"] = (function() { pollDesc = $newType(0, $kindStruct, "poll.pollDesc", true, "internal/poll", false, function(fd_, closing_) { this.$val = this; if (arguments.length === 0) { - this.fd = ptrType$2.nil; + this.fd = ptrType.nil; this.closing = false; return; } @@ -28330,26 +27318,27 @@ $packages["internal/poll"] = (function() { }); errNetClosing = $newType(0, $kindStruct, "poll.errNetClosing", true, "internal/poll", false, function() { this.$val = this; }); DeadlineExceededError = $newType(0, $kindStruct, "poll.DeadlineExceededError", true, "internal/poll", true, function() { this.$val = this; }); + $pkg.SysFile = SysFile; $pkg.FD = FD; $pkg.pollDesc = pollDesc; $pkg.fdMutex = fdMutex; $pkg.errNetClosing = errNetClosing; $pkg.DeadlineExceededError = DeadlineExceededError; $pkg.$finishSetup = function() { - ptrType = $ptrType($Uint32); - ptrType$1 = $ptrType($Int32); - ptrType$2 = $ptrType(FD); + ptrType = $ptrType(FD); + ptrType$1 = $ptrType($Uint32); + ptrType$2 = $ptrType(fdMutex); ptrType$3 = $ptrType($Uint64); sliceType = $sliceType($Uint8); sliceType$1 = $sliceType(syscall.Iovec); ptrType$4 = $ptrType(sliceType$1); - ptrType$5 = $ptrType(syscall.SockaddrInet4); - ptrType$6 = $ptrType(syscall.SockaddrInet6); - ptrType$7 = $ptrType(syscall.Stat_t); + ptrType$5 = $ptrType(SysFile); + ptrType$6 = $ptrType(syscall.SockaddrInet4); + ptrType$7 = $ptrType(syscall.SockaddrInet6); + ptrType$8 = $ptrType(syscall.Stat_t); funcType = $funcType([$Uintptr], [$Bool], false); funcType$1 = $funcType([$Uintptr], [], false); - ptrType$8 = $ptrType(pollDesc); - ptrType$9 = $ptrType(fdMutex); + ptrType$9 = $ptrType(pollDesc); ptrType$10 = $ptrType(DeadlineExceededError); accept = function accept$1(s) { var {_r, _r$1, _tuple, err, ns, s, sa, $s, $r, $c} = $restore(this, {s}); @@ -28382,9 +27371,99 @@ $packages["internal/poll"] = (function() { runtime_Semrelease = function() { $throwRuntimeError("native function not implemented: internal/poll.runtime_Semrelease"); }; + $ptrType(SysFile).prototype.init = function init() { + var s; + s = this; + }; + $ptrType(SysFile).prototype.destroy = function destroy(fd) { + var {$24r, _r, fd, s, $s, $r, $c} = $restore(this, {fd}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + _r = $pkg.CloseFunc(fd); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: destroy, $c: true, $r, $24r, _r, fd, s, $s};return $f; + }; + dupCloseOnExecOld = function dupCloseOnExecOld$1(fd) { + var {$24r, $24r$1, _tuple, err, fd, newfd, $s, $deferred, $r, $c} = $restore(this, {fd}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + $r = syscall.ForkLock.RLock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(syscall.ForkLock, "RUnlock"), []]); + _tuple = syscall.Dup(fd); + newfd = _tuple[0]; + err = _tuple[1]; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2: + $24r = [-1, "dup", err]; + $s = 4; case 4: return $24r; + /* } */ case 3: + syscall.CloseOnExec(newfd); + $24r$1 = [newfd, "", $ifaceNil]; + $s = 5; case 5: return $24r$1; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, "", $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: dupCloseOnExecOld$1, $c: true, $r, $24r, $24r$1, _tuple, err, fd, newfd, $s, $deferred};return $f; } } + }; + $ptrType(FD).prototype.Fchdir = function Fchdir() { + var {$24r, _r, err, fd, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + _r = syscall.Fchdir(fd.Sysfd); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Fchdir, $c: true, $r, $24r, _r, err, fd, $s, $deferred};return $f; } } + }; + $ptrType(FD).prototype.ReadDirent = function ReadDirent(buf) { + var {$24r, _r, _tuple, buf, err, err$1, fd, n, $s, $deferred, $r, $c} = $restore(this, {buf}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, err]; + } + $deferred.push([$methodVal(fd, "decref"), []]); + /* while (true) { */ case 1: + _r = ignoringEINTRIO(syscall.ReadDirent, fd.Sysfd, buf); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err$1 = _tuple[1]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + n = 0; + if ($interfaceIsEqual(err$1, new syscall.Errno(11)) && fd.pd.pollable()) { + err$1 = fd.pd.waitRead(fd.isFile); + if ($interfaceIsEqual(err$1, $ifaceNil)) { + /* continue; */ $s = 1; continue; + } + } + } + $24r = [n, err$1]; + $s = 4; case 4: return $24r; + case 2: + $s = -1; return [0, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: ReadDirent, $c: true, $r, $24r, _r, _tuple, buf, err, err$1, fd, n, $s, $deferred};return $f; } } + }; + $ptrType(FD).prototype.Seek = function Seek(offset, whence) { + var {$24r, _r, err, fd, offset, whence, $s, $deferred, $r, $c} = $restore(this, {offset, whence}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [new $Int64(0, 0), err]; + } + $deferred.push([$methodVal(fd, "decref"), []]); + _r = syscall.Seek(fd.Sysfd, offset, whence); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [new $Int64(0, 0), $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Seek, $c: true, $r, $24r, _r, err, fd, offset, whence, $s, $deferred};return $f; } } + }; $ptrType(FD).prototype.Init = function Init(net, pollable) { var err, fd, net, pollable; fd = this; + fd.SysFile.init(); if (net === "file") { fd.isFile = true; } @@ -28398,17 +27477,17 @@ $packages["internal/poll"] = (function() { } return err; }; - $ptrType(FD).prototype.destroy = function destroy() { + $ptrType(FD).prototype.destroy = function destroy$1() { var {_r, err, fd, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: fd = this; fd.pd.close(); - _r = $pkg.CloseFunc(fd.Sysfd); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = fd.SysFile.destroy(fd.Sysfd); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; fd.Sysfd = -1; - $r = runtime_Semrelease((fd.$ptr_csema || (fd.$ptr_csema = new ptrType(function() { return this.$target.csema; }, function($v) { this.$target.csema = $v; }, fd)))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime_Semrelease((fd === ptrType.nil && $throwNilPointerError(), (fd.$ptr_csema || (fd.$ptr_csema = new ptrType$1(function() { return this.$target.csema; }, function($v) { this.$target.csema = $v; }, fd))))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return err; - /* */ } return; } var $f = {$blk: destroy, $c: true, $r, _r, err, fd, $s};return $f; + /* */ } return; } var $f = {$blk: destroy$1, $c: true, $r, _r, err, fd, $s};return $f; }; $ptrType(FD).prototype.Close = function Close() { var {_r, _r$1, err, fd, $s, $r, $c} = $restore(this, {}); @@ -28426,7 +27505,7 @@ $packages["internal/poll"] = (function() { /* */ if (fd.isBlocking === 0) { $s = 5; continue; } /* */ $s = 6; continue; /* if (fd.isBlocking === 0) { */ case 5: - $r = runtime_Semacquire((fd.$ptr_csema || (fd.$ptr_csema = new ptrType(function() { return this.$target.csema; }, function($v) { this.$target.csema = $v; }, fd)))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime_Semacquire((fd === ptrType.nil && $throwNilPointerError(), (fd.$ptr_csema || (fd.$ptr_csema = new ptrType$1(function() { return this.$target.csema; }, function($v) { this.$target.csema = $v; }, fd))))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 6: $s = -1; return err; /* */ } return; } var $f = {$blk: Close, $c: true, $r, _r, _r$1, err, fd, $s};return $f; @@ -28440,7 +27519,7 @@ $packages["internal/poll"] = (function() { $s = -1; return err; } $deferred.push([$methodVal(fd, "decref"), []]); - atomic.StoreUint32((fd.$ptr_isBlocking || (fd.$ptr_isBlocking = new ptrType(function() { return this.$target.isBlocking; }, function($v) { this.$target.isBlocking = $v; }, fd))), 1); + atomic.StoreUint32((fd === ptrType.nil && $throwNilPointerError(), (fd.$ptr_isBlocking || (fd.$ptr_isBlocking = new ptrType$1(function() { return this.$target.isBlocking; }, function($v) { this.$target.isBlocking = $v; }, fd)))), 1); $24r = syscall.SetNonblock(fd.Sysfd, false); $s = 1; case 1: return $24r; /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: SetBlocking, $c: true, $r, $24r, err, fd, $s, $deferred};return $f; } } @@ -29171,49 +28250,6 @@ $packages["internal/poll"] = (function() { $s = -1; return [0, $ifaceNil, "", $ifaceNil]; /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil, "", $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Accept, $c: true, $r, $24r, $24r$1, $24r$2, _1, _r, _r$1, _tuple, err, err$1, err$2, errcall, fd, rsa, s, $s, $deferred};return $f; } } }; - $ptrType(FD).prototype.Seek = function Seek(offset, whence) { - var {$24r, _r, err, fd, offset, whence, $s, $deferred, $r, $c} = $restore(this, {offset, whence}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - fd = this; - err = fd.incref(); - if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [new $Int64(0, 0), err]; - } - $deferred.push([$methodVal(fd, "decref"), []]); - _r = syscall.Seek(fd.Sysfd, offset, whence); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return [new $Int64(0, 0), $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Seek, $c: true, $r, $24r, _r, err, fd, offset, whence, $s, $deferred};return $f; } } - }; - $ptrType(FD).prototype.ReadDirent = function ReadDirent(buf) { - var {$24r, _r, _tuple, buf, err, err$1, fd, n, $s, $deferred, $r, $c} = $restore(this, {buf}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - fd = this; - err = fd.incref(); - if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [0, err]; - } - $deferred.push([$methodVal(fd, "decref"), []]); - /* while (true) { */ case 1: - _r = ignoringEINTRIO(syscall.ReadDirent, fd.Sysfd, buf); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - n = _tuple[0]; - err$1 = _tuple[1]; - if (!($interfaceIsEqual(err$1, $ifaceNil))) { - n = 0; - if ($interfaceIsEqual(err$1, new syscall.Errno(11)) && fd.pd.pollable()) { - err$1 = fd.pd.waitRead(fd.isFile); - if ($interfaceIsEqual(err$1, $ifaceNil)) { - /* continue; */ $s = 1; continue; - } - } - } - $24r = [n, err$1]; - $s = 4; case 4: return $24r; - case 2: - $s = -1; return [0, $ifaceNil]; - /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: ReadDirent, $c: true, $r, $24r, _r, _tuple, buf, err, err$1, fd, n, $s, $deferred};return $f; } } - }; $ptrType(FD).prototype.Fchmod = function Fchmod(mode) { var {$24r, _r, err, fd, mode, $s, $deferred, $r, $c} = $restore(this, {mode}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); @@ -29237,20 +28273,6 @@ $packages["internal/poll"] = (function() { $s = 2; case 2: return $24r; /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Fchmod, $c: true, $r, $24r, _r, err, fd, mode, $s, $deferred};return $f; } } }; - $ptrType(FD).prototype.Fchdir = function Fchdir() { - var {$24r, _r, err, fd, $s, $deferred, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - fd = this; - err = fd.incref(); - if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return err; - } - $deferred.push([$methodVal(fd, "decref"), []]); - _r = syscall.Fchdir(fd.Sysfd); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Fchdir, $c: true, $r, $24r, _r, err, fd, $s, $deferred};return $f; } } - }; $ptrType(FD).prototype.Fstat = function Fstat(s) { var {$24r, _r, err, fd, s, $s, $deferred, $r, $c} = $restore(this, {s}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); @@ -29275,47 +28297,28 @@ $packages["internal/poll"] = (function() { /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Fstat, $c: true, $r, $24r, _r, err, fd, s, $s, $deferred};return $f; } } }; DupCloseOnExec = function DupCloseOnExec$1(fd) { - var {$24r, _1, _r, _tuple, e1, fd, r0, $s, $r, $c} = $restore(this, {fd}); + var {$24r, _1, _r, _tuple, err, fd, r0, $s, $r, $c} = $restore(this, {fd}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (true && (atomic.LoadInt32((tryDupCloexec$24ptr || (tryDupCloexec$24ptr = new ptrType$1(function() { return tryDupCloexec; }, function($v) { tryDupCloexec = $v; })))) === 1)) { - _tuple = fcntl(fd, 1, 0); + if (true && !dupCloexecUnsupported.Load()) { + _tuple = unix.Fcntl(fd, 1, 0); r0 = _tuple[0]; - e1 = _tuple[1]; - if ($interfaceIsEqual(e1, $ifaceNil)) { + err = _tuple[1]; + if ($interfaceIsEqual(err, $ifaceNil)) { $s = -1; return [r0, "", $ifaceNil]; } - _1 = $assertType(e1, syscall.Errno); - if ((_1 === (22)) || (_1 === (38))) { - atomic.StoreInt32((tryDupCloexec$24ptr || (tryDupCloexec$24ptr = new ptrType$1(function() { return tryDupCloexec; }, function($v) { tryDupCloexec = $v; }))), 0); + _1 = err; + if ($interfaceIsEqual(_1, new syscall.Errno((22))) || $interfaceIsEqual(_1, new syscall.Errno((38)))) { + dupCloexecUnsupported.Store(true); } else { - $s = -1; return [-1, "fcntl", e1]; + $s = -1; return [-1, "fcntl", err]; } } _r = dupCloseOnExecOld(fd); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $24r = _r; $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: DupCloseOnExec$1, $c: true, $r, $24r, _1, _r, _tuple, e1, fd, r0, $s};return $f; + /* */ } return; } var $f = {$blk: DupCloseOnExec$1, $c: true, $r, $24r, _1, _r, _tuple, err, fd, r0, $s};return $f; }; $pkg.DupCloseOnExec = DupCloseOnExec; - dupCloseOnExecOld = function dupCloseOnExecOld$1(fd) { - var {$24r, $24r$1, _tuple, err, fd, newfd, $s, $deferred, $r, $c} = $restore(this, {fd}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - $r = syscall.ForkLock.RLock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(syscall.ForkLock, "RUnlock"), []]); - _tuple = syscall.Dup(fd); - newfd = _tuple[0]; - err = _tuple[1]; - /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2: - $24r = [-1, "dup", err]; - $s = 4; case 4: return $24r; - /* } */ case 3: - syscall.CloseOnExec(newfd); - $24r$1 = [newfd, "", $ifaceNil]; - $s = 5; case 5: return $24r$1; - /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, "", $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: dupCloseOnExecOld$1, $c: true, $r, $24r, $24r$1, _tuple, err, fd, newfd, $s, $deferred};return $f; } } - }; $ptrType(FD).prototype.Dup = function Dup() { var {$24r, _r, err, fd, $s, $deferred, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); @@ -29536,7 +28539,7 @@ $packages["internal/poll"] = (function() { $s = -1; return $ifaceNil; /* */ } return; } var $f = {$blk: ignoringEINTR$1, $c: true, $r, _r, err, fn, $s};return $f; }; - $ptrType(pollDesc).prototype.init = function init(fd) { + $ptrType(pollDesc).prototype.init = function init$1(fd) { var fd, pd; pd = this; pd.fd = fd; @@ -29550,7 +28553,7 @@ $packages["internal/poll"] = (function() { var pd; pd = this; pd.closing = true; - if (!(pd.fd === ptrType$2.nil)) { + if (!(pd.fd === ptrType.nil)) { syscall.StopIO(pd.fd.Sysfd); } }; @@ -29654,7 +28657,7 @@ $packages["internal/poll"] = (function() { var mu, new$1, old, x, x$1; mu = this; while (true) { - old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))); + old = atomic.LoadUint64((mu === ptrType$2.nil && $throwNilPointerError(), (mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))))); if (!((x = new $Uint64(old.$high & 0, (old.$low & 1) >>> 0), (x.$high === 0 && x.$low === 0)))) { return false; } @@ -29662,7 +28665,7 @@ $packages["internal/poll"] = (function() { if ((x$1 = new $Uint64(new$1.$high & 0, (new$1.$low & 8388600) >>> 0), (x$1.$high === 0 && x$1.$low === 0))) { $panic(new $String("too many concurrent operations on a single file or socket (max 1048575)")); } - if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { + if (atomic.CompareAndSwapUint64((mu === ptrType$2.nil && $throwNilPointerError(), (mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))), old, new$1)) { return true; } } @@ -29672,7 +28675,7 @@ $packages["internal/poll"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: mu = this; /* while (true) { */ case 1: - old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))); + old = atomic.LoadUint64((mu === ptrType$2.nil && $throwNilPointerError(), (mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))))); if (!((x = new $Uint64(old.$high & 0, (old.$low & 1) >>> 0), (x.$high === 0 && x.$low === 0)))) { $s = -1; return false; } @@ -29681,19 +28684,19 @@ $packages["internal/poll"] = (function() { $panic(new $String("too many concurrent operations on a single file or socket (max 1048575)")); } new$1 = (x$3 = new $Uint64(2147483647, 4286578688), new $Uint64(new$1.$high & ~x$3.$high, (new$1.$low & ~x$3.$low) >>> 0)); - /* */ if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { $s = 3; continue; } + /* */ if (atomic.CompareAndSwapUint64((mu === ptrType$2.nil && $throwNilPointerError(), (mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))), old, new$1)) { $s = 3; continue; } /* */ $s = 4; continue; - /* if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { */ case 3: + /* if (atomic.CompareAndSwapUint64((mu === ptrType$2.nil && $throwNilPointerError(), (mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))), old, new$1)) { */ case 3: /* while (true) { */ case 5: /* if (!(!((x$4 = new $Uint64(old.$high & 2047, (old.$low & 4286578688) >>> 0), (x$4.$high === 0 && x$4.$low === 0))))) { break; } */ if(!(!((x$4 = new $Uint64(old.$high & 2047, (old.$low & 4286578688) >>> 0), (x$4.$high === 0 && x$4.$low === 0))))) { $s = 6; continue; } old = (x$5 = new $Uint64(0, 8388608), new $Uint64(old.$high - x$5.$high, old.$low - x$5.$low)); - $r = runtime_Semrelease((mu.$ptr_rsema || (mu.$ptr_rsema = new ptrType(function() { return this.$target.rsema; }, function($v) { this.$target.rsema = $v; }, mu)))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime_Semrelease((mu === ptrType$2.nil && $throwNilPointerError(), (mu.$ptr_rsema || (mu.$ptr_rsema = new ptrType$1(function() { return this.$target.rsema; }, function($v) { this.$target.rsema = $v; }, mu))))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 5; continue; case 6: /* while (true) { */ case 8: /* if (!(!((x$6 = new $Uint64(old.$high & 2147481600, (old.$low & 0) >>> 0), (x$6.$high === 0 && x$6.$low === 0))))) { break; } */ if(!(!((x$6 = new $Uint64(old.$high & 2147481600, (old.$low & 0) >>> 0), (x$6.$high === 0 && x$6.$low === 0))))) { $s = 9; continue; } old = (x$7 = new $Uint64(2048, 0), new $Uint64(old.$high - x$7.$high, old.$low - x$7.$low)); - $r = runtime_Semrelease((mu.$ptr_wsema || (mu.$ptr_wsema = new ptrType(function() { return this.$target.wsema; }, function($v) { this.$target.wsema = $v; }, mu)))); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime_Semrelease((mu === ptrType$2.nil && $throwNilPointerError(), (mu.$ptr_wsema || (mu.$ptr_wsema = new ptrType$1(function() { return this.$target.wsema; }, function($v) { this.$target.wsema = $v; }, mu))))); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 8; continue; case 9: $s = -1; return true; @@ -29707,12 +28710,12 @@ $packages["internal/poll"] = (function() { var mu, new$1, old, x, x$1; mu = this; while (true) { - old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))); + old = atomic.LoadUint64((mu === ptrType$2.nil && $throwNilPointerError(), (mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))))); if ((x = new $Uint64(old.$high & 0, (old.$low & 8388600) >>> 0), (x.$high === 0 && x.$low === 0))) { $panic(new $String("inconsistent poll.fdMutex")); } new$1 = new $Uint64(old.$high - 0, old.$low - 8); - if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { + if (atomic.CompareAndSwapUint64((mu === ptrType$2.nil && $throwNilPointerError(), (mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))), old, new$1)) { return (x$1 = new $Uint64(new$1.$high & 0, (new$1.$low & 8388601) >>> 0), (x$1.$high === 0 && x$1.$low === 1)); } } @@ -29727,20 +28730,20 @@ $packages["internal/poll"] = (function() { mutexBit = _tmp; mutexWait = _tmp$1; mutexMask = _tmp$2; - mutexSema = ptrType.nil; + mutexSema = ptrType$1.nil; if (read) { mutexBit = new $Uint64(0, 2); mutexWait = new $Uint64(0, 8388608); mutexMask = new $Uint64(2047, 4286578688); - mutexSema = (mu.$ptr_rsema || (mu.$ptr_rsema = new ptrType(function() { return this.$target.rsema; }, function($v) { this.$target.rsema = $v; }, mu))); + mutexSema = (mu === ptrType$2.nil && $throwNilPointerError(), (mu.$ptr_rsema || (mu.$ptr_rsema = new ptrType$1(function() { return this.$target.rsema; }, function($v) { this.$target.rsema = $v; }, mu)))); } else { mutexBit = new $Uint64(0, 4); mutexWait = new $Uint64(2048, 0); mutexMask = new $Uint64(2147481600, 0); - mutexSema = (mu.$ptr_wsema || (mu.$ptr_wsema = new ptrType(function() { return this.$target.wsema; }, function($v) { this.$target.wsema = $v; }, mu))); + mutexSema = (mu === ptrType$2.nil && $throwNilPointerError(), (mu.$ptr_wsema || (mu.$ptr_wsema = new ptrType$1(function() { return this.$target.wsema; }, function($v) { this.$target.wsema = $v; }, mu)))); } /* while (true) { */ case 1: - old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))); + old = atomic.LoadUint64((mu === ptrType$2.nil && $throwNilPointerError(), (mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))))); if (!((x = new $Uint64(old.$high & 0, (old.$low & 1) >>> 0), (x.$high === 0 && x.$low === 0)))) { $s = -1; return false; } @@ -29756,9 +28759,9 @@ $packages["internal/poll"] = (function() { $panic(new $String("too many concurrent operations on a single file or socket (max 1048575)")); } } - /* */ if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { $s = 3; continue; } + /* */ if (atomic.CompareAndSwapUint64((mu === ptrType$2.nil && $throwNilPointerError(), (mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))), old, new$1)) { $s = 3; continue; } /* */ $s = 4; continue; - /* if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { */ case 3: + /* if (atomic.CompareAndSwapUint64((mu === ptrType$2.nil && $throwNilPointerError(), (mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))), old, new$1)) { */ case 3: if ((x$5 = new $Uint64(old.$high & mutexBit.$high, (old.$low & mutexBit.$low) >>> 0), (x$5.$high === 0 && x$5.$low === 0))) { $s = -1; return true; } @@ -29779,20 +28782,20 @@ $packages["internal/poll"] = (function() { mutexBit = _tmp; mutexWait = _tmp$1; mutexMask = _tmp$2; - mutexSema = ptrType.nil; + mutexSema = ptrType$1.nil; if (read) { mutexBit = new $Uint64(0, 2); mutexWait = new $Uint64(0, 8388608); mutexMask = new $Uint64(2047, 4286578688); - mutexSema = (mu.$ptr_rsema || (mu.$ptr_rsema = new ptrType(function() { return this.$target.rsema; }, function($v) { this.$target.rsema = $v; }, mu))); + mutexSema = (mu === ptrType$2.nil && $throwNilPointerError(), (mu.$ptr_rsema || (mu.$ptr_rsema = new ptrType$1(function() { return this.$target.rsema; }, function($v) { this.$target.rsema = $v; }, mu)))); } else { mutexBit = new $Uint64(0, 4); mutexWait = new $Uint64(2048, 0); mutexMask = new $Uint64(2147481600, 0); - mutexSema = (mu.$ptr_wsema || (mu.$ptr_wsema = new ptrType(function() { return this.$target.wsema; }, function($v) { this.$target.wsema = $v; }, mu))); + mutexSema = (mu === ptrType$2.nil && $throwNilPointerError(), (mu.$ptr_wsema || (mu.$ptr_wsema = new ptrType$1(function() { return this.$target.wsema; }, function($v) { this.$target.wsema = $v; }, mu)))); } /* while (true) { */ case 1: - old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))); + old = atomic.LoadUint64((mu === ptrType$2.nil && $throwNilPointerError(), (mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))))); if ((x = new $Uint64(old.$high & mutexBit.$high, (old.$low & mutexBit.$low) >>> 0), (x.$high === 0 && x.$low === 0)) || (x$1 = new $Uint64(old.$high & 0, (old.$low & 8388600) >>> 0), (x$1.$high === 0 && x$1.$low === 0))) { $panic(new $String("inconsistent poll.fdMutex")); } @@ -29800,9 +28803,9 @@ $packages["internal/poll"] = (function() { if (!((x$3 = new $Uint64(old.$high & mutexMask.$high, (old.$low & mutexMask.$low) >>> 0), (x$3.$high === 0 && x$3.$low === 0)))) { new$1 = (x$4 = mutexWait, new $Uint64(new$1.$high - x$4.$high, new$1.$low - x$4.$low)); } - /* */ if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { $s = 3; continue; } + /* */ if (atomic.CompareAndSwapUint64((mu === ptrType$2.nil && $throwNilPointerError(), (mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))), old, new$1)) { $s = 3; continue; } /* */ $s = 4; continue; - /* if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { */ case 3: + /* if (atomic.CompareAndSwapUint64((mu === ptrType$2.nil && $throwNilPointerError(), (mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))), old, new$1)) { */ case 3: /* */ if (!((x$5 = new $Uint64(old.$high & mutexMask.$high, (old.$low & mutexMask.$low) >>> 0), (x$5.$high === 0 && x$5.$low === 0)))) { $s = 5; continue; } /* */ $s = 6; continue; /* if (!((x$5 = new $Uint64(old.$high & mutexMask.$high, (old.$low & mutexMask.$low) >>> 0), (x$5.$high === 0 && x$5.$low === 0)))) { */ case 5: @@ -29953,17 +28956,15 @@ $packages["internal/poll"] = (function() { e = this; return true; }; - fcntl = function fcntl$1(fd, cmd, arg) { - var arg, cmd, fd; - return [0, new syscall.Errno(38)]; - }; - ptrType$2.methods = [{prop: "Init", name: "Init", pkg: "", typ: $funcType([$String, $Bool], [$error], false)}, {prop: "destroy", name: "destroy", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "SetBlocking", name: "SetBlocking", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "Pread", name: "Pread", pkg: "", typ: $funcType([sliceType, $Int64], [$Int, $error], false)}, {prop: "ReadFrom", name: "ReadFrom", pkg: "", typ: $funcType([sliceType], [$Int, syscall.Sockaddr, $error], false)}, {prop: "ReadFromInet4", name: "ReadFromInet4", pkg: "", typ: $funcType([sliceType, ptrType$5], [$Int, $error], false)}, {prop: "ReadFromInet6", name: "ReadFromInet6", pkg: "", typ: $funcType([sliceType, ptrType$6], [$Int, $error], false)}, {prop: "ReadMsg", name: "ReadMsg", pkg: "", typ: $funcType([sliceType, sliceType, $Int], [$Int, $Int, $Int, syscall.Sockaddr, $error], false)}, {prop: "ReadMsgInet4", name: "ReadMsgInet4", pkg: "", typ: $funcType([sliceType, sliceType, $Int, ptrType$5], [$Int, $Int, $Int, $error], false)}, {prop: "ReadMsgInet6", name: "ReadMsgInet6", pkg: "", typ: $funcType([sliceType, sliceType, $Int, ptrType$6], [$Int, $Int, $Int, $error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "Pwrite", name: "Pwrite", pkg: "", typ: $funcType([sliceType, $Int64], [$Int, $error], false)}, {prop: "WriteToInet4", name: "WriteToInet4", pkg: "", typ: $funcType([sliceType, ptrType$5], [$Int, $error], false)}, {prop: "WriteToInet6", name: "WriteToInet6", pkg: "", typ: $funcType([sliceType, ptrType$6], [$Int, $error], false)}, {prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([sliceType, syscall.Sockaddr], [$Int, $error], false)}, {prop: "WriteMsg", name: "WriteMsg", pkg: "", typ: $funcType([sliceType, sliceType, syscall.Sockaddr], [$Int, $Int, $error], false)}, {prop: "WriteMsgInet4", name: "WriteMsgInet4", pkg: "", typ: $funcType([sliceType, sliceType, ptrType$5], [$Int, $Int, $error], false)}, {prop: "WriteMsgInet6", name: "WriteMsgInet6", pkg: "", typ: $funcType([sliceType, sliceType, ptrType$6], [$Int, $Int, $error], false)}, {prop: "Accept", name: "Accept", pkg: "", typ: $funcType([], [$Int, syscall.Sockaddr, $String, $error], false)}, {prop: "Seek", name: "Seek", pkg: "", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "ReadDirent", name: "ReadDirent", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "Fchmod", name: "Fchmod", pkg: "", typ: $funcType([$Uint32], [$error], false)}, {prop: "Fchdir", name: "Fchdir", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Fstat", name: "Fstat", pkg: "", typ: $funcType([ptrType$7], [$error], false)}, {prop: "Dup", name: "Dup", pkg: "", typ: $funcType([], [$Int, $String, $error], false)}, {prop: "WaitWrite", name: "WaitWrite", pkg: "", typ: $funcType([], [$error], false)}, {prop: "WriteOnce", name: "WriteOnce", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "RawRead", name: "RawRead", pkg: "", typ: $funcType([funcType], [$error], false)}, {prop: "RawWrite", name: "RawWrite", pkg: "", typ: $funcType([funcType], [$error], false)}, {prop: "eofError", name: "eofError", pkg: "internal/poll", typ: $funcType([$Int, $error], [$error], false)}, {prop: "Shutdown", name: "Shutdown", pkg: "", typ: $funcType([$Int], [$error], false)}, {prop: "Fchown", name: "Fchown", pkg: "", typ: $funcType([$Int, $Int], [$error], false)}, {prop: "Ftruncate", name: "Ftruncate", pkg: "", typ: $funcType([$Int64], [$error], false)}, {prop: "RawControl", name: "RawControl", pkg: "", typ: $funcType([funcType$1], [$error], false)}, {prop: "SetDeadline", name: "SetDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetReadDeadline", name: "SetReadDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetWriteDeadline", name: "SetWriteDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "incref", name: "incref", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "decref", name: "decref", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "readLock", name: "readLock", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "readUnlock", name: "readUnlock", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "writeLock", name: "writeLock", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "writeUnlock", name: "writeUnlock", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "Fsync", name: "Fsync", pkg: "", typ: $funcType([], [$error], false)}]; - ptrType$8.methods = [{prop: "init", name: "init", pkg: "internal/poll", typ: $funcType([ptrType$2], [$error], false)}, {prop: "close", name: "close", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "evict", name: "evict", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "prepare", name: "prepare", pkg: "internal/poll", typ: $funcType([$Int, $Bool], [$error], false)}, {prop: "prepareRead", name: "prepareRead", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false)}, {prop: "prepareWrite", name: "prepareWrite", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false)}, {prop: "wait", name: "wait", pkg: "internal/poll", typ: $funcType([$Int, $Bool], [$error], false)}, {prop: "waitRead", name: "waitRead", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false)}, {prop: "waitWrite", name: "waitWrite", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false)}, {prop: "waitCanceled", name: "waitCanceled", pkg: "internal/poll", typ: $funcType([$Int], [], false)}, {prop: "pollable", name: "pollable", pkg: "internal/poll", typ: $funcType([], [$Bool], false)}]; - ptrType$9.methods = [{prop: "incref", name: "incref", pkg: "internal/poll", typ: $funcType([], [$Bool], false)}, {prop: "increfAndClose", name: "increfAndClose", pkg: "internal/poll", typ: $funcType([], [$Bool], false)}, {prop: "decref", name: "decref", pkg: "internal/poll", typ: $funcType([], [$Bool], false)}, {prop: "rwlock", name: "rwlock", pkg: "internal/poll", typ: $funcType([$Bool], [$Bool], false)}, {prop: "rwunlock", name: "rwunlock", pkg: "internal/poll", typ: $funcType([$Bool], [$Bool], false)}]; + ptrType$5.methods = [{prop: "init", name: "init", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "destroy", name: "destroy", pkg: "internal/poll", typ: $funcType([$Int], [$error], false)}]; + ptrType.methods = [{prop: "Fchdir", name: "Fchdir", pkg: "", typ: $funcType([], [$error], false)}, {prop: "ReadDirent", name: "ReadDirent", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "Seek", name: "Seek", pkg: "", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "Init", name: "Init", pkg: "", typ: $funcType([$String, $Bool], [$error], false)}, {prop: "destroy", name: "destroy", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "SetBlocking", name: "SetBlocking", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "Pread", name: "Pread", pkg: "", typ: $funcType([sliceType, $Int64], [$Int, $error], false)}, {prop: "ReadFrom", name: "ReadFrom", pkg: "", typ: $funcType([sliceType], [$Int, syscall.Sockaddr, $error], false)}, {prop: "ReadFromInet4", name: "ReadFromInet4", pkg: "", typ: $funcType([sliceType, ptrType$6], [$Int, $error], false)}, {prop: "ReadFromInet6", name: "ReadFromInet6", pkg: "", typ: $funcType([sliceType, ptrType$7], [$Int, $error], false)}, {prop: "ReadMsg", name: "ReadMsg", pkg: "", typ: $funcType([sliceType, sliceType, $Int], [$Int, $Int, $Int, syscall.Sockaddr, $error], false)}, {prop: "ReadMsgInet4", name: "ReadMsgInet4", pkg: "", typ: $funcType([sliceType, sliceType, $Int, ptrType$6], [$Int, $Int, $Int, $error], false)}, {prop: "ReadMsgInet6", name: "ReadMsgInet6", pkg: "", typ: $funcType([sliceType, sliceType, $Int, ptrType$7], [$Int, $Int, $Int, $error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "Pwrite", name: "Pwrite", pkg: "", typ: $funcType([sliceType, $Int64], [$Int, $error], false)}, {prop: "WriteToInet4", name: "WriteToInet4", pkg: "", typ: $funcType([sliceType, ptrType$6], [$Int, $error], false)}, {prop: "WriteToInet6", name: "WriteToInet6", pkg: "", typ: $funcType([sliceType, ptrType$7], [$Int, $error], false)}, {prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([sliceType, syscall.Sockaddr], [$Int, $error], false)}, {prop: "WriteMsg", name: "WriteMsg", pkg: "", typ: $funcType([sliceType, sliceType, syscall.Sockaddr], [$Int, $Int, $error], false)}, {prop: "WriteMsgInet4", name: "WriteMsgInet4", pkg: "", typ: $funcType([sliceType, sliceType, ptrType$6], [$Int, $Int, $error], false)}, {prop: "WriteMsgInet6", name: "WriteMsgInet6", pkg: "", typ: $funcType([sliceType, sliceType, ptrType$7], [$Int, $Int, $error], false)}, {prop: "Accept", name: "Accept", pkg: "", typ: $funcType([], [$Int, syscall.Sockaddr, $String, $error], false)}, {prop: "Fchmod", name: "Fchmod", pkg: "", typ: $funcType([$Uint32], [$error], false)}, {prop: "Fstat", name: "Fstat", pkg: "", typ: $funcType([ptrType$8], [$error], false)}, {prop: "Dup", name: "Dup", pkg: "", typ: $funcType([], [$Int, $String, $error], false)}, {prop: "WaitWrite", name: "WaitWrite", pkg: "", typ: $funcType([], [$error], false)}, {prop: "WriteOnce", name: "WriteOnce", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "RawRead", name: "RawRead", pkg: "", typ: $funcType([funcType], [$error], false)}, {prop: "RawWrite", name: "RawWrite", pkg: "", typ: $funcType([funcType], [$error], false)}, {prop: "eofError", name: "eofError", pkg: "internal/poll", typ: $funcType([$Int, $error], [$error], false)}, {prop: "Shutdown", name: "Shutdown", pkg: "", typ: $funcType([$Int], [$error], false)}, {prop: "Fchown", name: "Fchown", pkg: "", typ: $funcType([$Int, $Int], [$error], false)}, {prop: "Ftruncate", name: "Ftruncate", pkg: "", typ: $funcType([$Int64], [$error], false)}, {prop: "RawControl", name: "RawControl", pkg: "", typ: $funcType([funcType$1], [$error], false)}, {prop: "SetDeadline", name: "SetDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetReadDeadline", name: "SetReadDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetWriteDeadline", name: "SetWriteDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "incref", name: "incref", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "decref", name: "decref", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "readLock", name: "readLock", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "readUnlock", name: "readUnlock", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "writeLock", name: "writeLock", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "writeUnlock", name: "writeUnlock", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "Fsync", name: "Fsync", pkg: "", typ: $funcType([], [$error], false)}]; + ptrType$9.methods = [{prop: "init", name: "init", pkg: "internal/poll", typ: $funcType([ptrType], [$error], false)}, {prop: "close", name: "close", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "evict", name: "evict", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "prepare", name: "prepare", pkg: "internal/poll", typ: $funcType([$Int, $Bool], [$error], false)}, {prop: "prepareRead", name: "prepareRead", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false)}, {prop: "prepareWrite", name: "prepareWrite", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false)}, {prop: "wait", name: "wait", pkg: "internal/poll", typ: $funcType([$Int, $Bool], [$error], false)}, {prop: "waitRead", name: "waitRead", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false)}, {prop: "waitWrite", name: "waitWrite", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false)}, {prop: "waitCanceled", name: "waitCanceled", pkg: "internal/poll", typ: $funcType([$Int], [], false)}, {prop: "pollable", name: "pollable", pkg: "internal/poll", typ: $funcType([], [$Bool], false)}]; + ptrType$2.methods = [{prop: "incref", name: "incref", pkg: "internal/poll", typ: $funcType([], [$Bool], false)}, {prop: "increfAndClose", name: "increfAndClose", pkg: "internal/poll", typ: $funcType([], [$Bool], false)}, {prop: "decref", name: "decref", pkg: "internal/poll", typ: $funcType([], [$Bool], false)}, {prop: "rwlock", name: "rwlock", pkg: "internal/poll", typ: $funcType([$Bool], [$Bool], false)}, {prop: "rwunlock", name: "rwunlock", pkg: "internal/poll", typ: $funcType([$Bool], [$Bool], false)}]; errNetClosing.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false)}]; ptrType$10.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false)}]; - FD.init("internal/poll", [{prop: "fdmu", name: "fdmu", embedded: false, exported: false, typ: fdMutex, tag: ""}, {prop: "Sysfd", name: "Sysfd", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "pd", name: "pd", embedded: false, exported: false, typ: pollDesc, tag: ""}, {prop: "iovecs", name: "iovecs", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "csema", name: "csema", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "isBlocking", name: "isBlocking", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "IsStream", name: "IsStream", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "ZeroReadIsEOF", name: "ZeroReadIsEOF", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "isFile", name: "isFile", embedded: false, exported: false, typ: $Bool, tag: ""}]); - pollDesc.init("internal/poll", [{prop: "fd", name: "fd", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "closing", name: "closing", embedded: false, exported: false, typ: $Bool, tag: ""}]); + SysFile.init("internal/poll", [{prop: "iovecs", name: "iovecs", embedded: false, exported: false, typ: ptrType$4, tag: ""}]); + FD.init("internal/poll", [{prop: "fdmu", name: "fdmu", embedded: false, exported: false, typ: fdMutex, tag: ""}, {prop: "Sysfd", name: "Sysfd", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "SysFile", name: "SysFile", embedded: true, exported: true, typ: SysFile, tag: ""}, {prop: "pd", name: "pd", embedded: false, exported: false, typ: pollDesc, tag: ""}, {prop: "csema", name: "csema", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "isBlocking", name: "isBlocking", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "IsStream", name: "IsStream", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "ZeroReadIsEOF", name: "ZeroReadIsEOF", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "isFile", name: "isFile", embedded: false, exported: false, typ: $Bool, tag: ""}]); + pollDesc.init("internal/poll", [{prop: "fd", name: "fd", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "closing", name: "closing", embedded: false, exported: false, typ: $Bool, tag: ""}]); fdMutex.init("internal/poll", [{prop: "state", name: "state", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "rsema", name: "rsema", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "wsema", name: "wsema", embedded: false, exported: false, typ: $Uint32, tag: ""}]); errNetClosing.init("", []); DeadlineExceededError.init("", []); @@ -29981,9 +28982,9 @@ $packages["internal/poll"] = (function() { $r = atomic.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = syscall.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = time.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + dupCloexecUnsupported = new atomic.Bool.ptr(new atomic.noCopy.ptr(), 0); $pkg.CloseFunc = syscall.Close; $pkg.AcceptFunc = syscall.Accept; - tryDupCloexec = 1; $pkg.ErrNetClosing = new errNetClosing.ptr(); $pkg.ErrFileClosing = errors.New("use of closed file"); $pkg.ErrNoDeadline = errors.New("file type does not support deadline"); @@ -30336,7 +29337,7 @@ $packages["path"] = (function() { return $pkg; })(); $packages["io/fs"] = (function() { - var $pkg = {}, $init, errors, oserror, io, path, sort, time, utf8, dirInfo, File, DirEntry, FileInfo, FileMode, PathError, ptrType, sliceType$2, arrayType, interfaceType, FileInfoToDirEntry, ValidPath, errInvalid, errPermission, errExist, errNotExist, errClosed; + var $pkg = {}, $init, errors, oserror, io, path, sort, time, utf8, dirInfo, File, DirEntry, FileInfo, FileMode, PathError, ptrType, sliceType$2, arrayType, interfaceType, arrayType$1, FileInfoToDirEntry, ValidPath, errInvalid, errPermission, errExist, errNotExist, errClosed, FormatFileInfo, FormatDirEntry; errors = $packages["errors"]; oserror = $packages["internal/oserror"]; io = $packages["io"]; @@ -30379,6 +29380,7 @@ $packages["io/fs"] = (function() { sliceType$2 = $sliceType($Uint8); arrayType = $arrayType($Uint8, 32); interfaceType = $interfaceType([{prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}]); + arrayType$1 = $arrayType($Uint8, 20); $ptrType(dirInfo).prototype.IsDir = function IsDir$1() { var {$24r, _r, di, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: @@ -30416,6 +29418,16 @@ $packages["io/fs"] = (function() { /* */ } return; } var $f = {$blk: Name$1, $c: true, $r, $24r, _r, di, $s};return $f; }; dirInfo.prototype.Name = function(...$args) { return this.$val.Name(...$args); }; + $ptrType(dirInfo).prototype.String = function String$1() { + var {$24r, _r, di, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + di = this; + _r = FormatDirEntry(new di.constructor.elem(di)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$1, $c: true, $r, $24r, _r, di, $s};return $f; + }; + dirInfo.prototype.String = function(...$args) { return this.$val.String(...$args); }; FileInfoToDirEntry = function FileInfoToDirEntry$1(info) { var info, x; if ($interfaceIsEqual(info, $ifaceNil)) { @@ -30464,7 +29476,7 @@ $packages["io/fs"] = (function() { errClosed = function errClosed$1() { return oserror.ErrClosed; }; - FileMode.prototype.String = function String() { + FileMode.prototype.String = function String$2() { var _i, _i$1, _ref, _ref$1, _rune, _rune$1, buf, c, c$1, i, i$1, m, w, y, y$1; m = this.$val; buf = arrayType.zero(); @@ -30556,7 +29568,80 @@ $packages["io/fs"] = (function() { $s = 3; case 3: return $24r; /* */ } return; } var $f = {$blk: Timeout, $c: true, $r, $24r, _r, _tuple, _v, e, ok, t, $s};return $f; }; - dirInfo.methods = [{prop: "IsDir", name: "IsDir", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [FileMode], false)}, {prop: "Info", name: "Info", pkg: "", typ: $funcType([], [FileInfo, $error], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}]; + FormatFileInfo = function FormatFileInfo$1(info) { + var {_arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, b, buf, i, info, name, q, size, usize, x, x$1, x$2, $s, $r, $c} = $restore(this, {info}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = info.Name(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + name = _r; + b = $makeSlice(sliceType$2, 0, (40 + name.length >> 0)); + _arg = b; + _r$1 = info.Mode(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = new FileMode(_r$1).String(); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg$1 = _r$2; + b = $appendSlice(_arg, _arg$1); + b = $append(b, 32); + _r$3 = info.Size(); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + size = _r$3; + usize = new $Uint64(0, 0); + if ((size.$high > 0 || (size.$high === 0 && size.$low >= 0))) { + usize = (new $Uint64(size.$high, size.$low)); + } else { + b = $append(b, 45); + usize = ((x = new $Int64(-size.$high, -size.$low), new $Uint64(x.$high, x.$low))); + } + buf = arrayType$1.zero(); + i = 19; + while (true) { + if (!((usize.$high > 0 || (usize.$high === 0 && usize.$low >= 10)))) { break; } + q = $div64(usize, new $Uint64(0, 10), false); + ((i < 0 || i >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i] = (((x$1 = new $Uint64(0 + usize.$high, 48 + usize.$low), x$2 = $mul64(q, new $Uint64(0, 10)), new $Uint64(x$1.$high - x$2.$high, x$1.$low - x$2.$low)).$low << 24 >>> 24))); + i = i - (1) >> 0; + usize = q; + } + ((i < 0 || i >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i] = ((new $Uint64(0 + usize.$high, 48 + usize.$low).$low << 24 >>> 24))); + b = $appendSlice(b, $subslice(new sliceType$2(buf), i)); + b = $append(b, 32); + _arg$2 = b; + _r$4 = info.ModTime(); /* */ $s = 5; case 5: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$5 = $clone(_r$4, time.Time).Format("2006-01-02 15:04:05"); /* */ $s = 6; case 6: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _arg$3 = _r$5; + b = $appendSlice(_arg$2, _arg$3); + b = $append(b, 32); + b = $appendSlice(b, name); + _r$6 = info.IsDir(); /* */ $s = 9; case 9: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + /* */ if (_r$6) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (_r$6) { */ case 7: + b = $append(b, 47); + /* } */ case 8: + $s = -1; return ($bytesToString(b)); + /* */ } return; } var $f = {$blk: FormatFileInfo$1, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, b, buf, i, info, name, q, size, usize, x, x$1, x$2, $s};return $f; + }; + $pkg.FormatFileInfo = FormatFileInfo; + FormatDirEntry = function FormatDirEntry$1(dir) { + var {_r, _r$1, _r$2, _r$3, b, dir, mode, name, $s, $r, $c} = $restore(this, {dir}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = dir.Name(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + name = _r; + b = $makeSlice(sliceType$2, 0, (5 + name.length >> 0)); + _r$1 = dir.Type(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = new FileMode(_r$1).String(); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + mode = _r$2; + mode = $substring(mode, 0, (mode.length - 9 >> 0)); + b = $appendSlice(b, mode); + b = $append(b, 32); + b = $appendSlice(b, name); + _r$3 = dir.IsDir(); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_r$3) { */ case 4: + b = $append(b, 47); + /* } */ case 5: + $s = -1; return ($bytesToString(b)); + /* */ } return; } var $f = {$blk: FormatDirEntry$1, $c: true, $r, _r, _r$1, _r$2, _r$3, b, dir, mode, name, $s};return $f; + }; + $pkg.FormatDirEntry = FormatDirEntry; + dirInfo.methods = [{prop: "IsDir", name: "IsDir", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [FileMode], false)}, {prop: "Info", name: "Info", pkg: "", typ: $funcType([], [FileInfo, $error], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; FileMode.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "IsDir", name: "IsDir", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsRegular", name: "IsRegular", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Perm", name: "Perm", pkg: "", typ: $funcType([], [FileMode], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [FileMode], false)}]; ptrType.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Unwrap", name: "Unwrap", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}]; dirInfo.init("io/fs", [{prop: "fileInfo", name: "fileInfo", embedded: false, exported: false, typ: FileInfo, tag: ""}]); @@ -30588,7 +29673,7 @@ $packages["io/fs"] = (function() { return $pkg; })(); $packages["os"] = (function() { - var $pkg = {}, $init, errors, js, itoa, poll, safefilepath, execenv, unix, testlog, io, fs, runtime, sort, sync, atomic, syscall, time, fileStat, File, rawConn, file, unixDirent, LinkError, onlyWriter, ProcessState, Process, ProcAttr, Signal, timeout, SyscallError, dirInfo, readdirMode, sliceType, structType, sliceType$1, sliceType$2, ptrType, ptrType$1, ptrType$2, arrayType, ptrType$3, ptrType$5, arrayType$1, sliceType$3, ptrType$6, sliceType$4, ptrType$7, ptrType$8, ptrType$9, funcType, ptrType$10, ptrType$11, ptrType$12, ptrType$13, ptrType$14, ptrType$15, sliceType$6, funcType$1, ptrType$16, ptrType$17, sliceType$7, sliceType$8, funcType$2, funcType$3, ptrType$18, ptrType$19, sliceType$9, getwdCache, testingForceReadDirLstat, errPatternHasSeparator, errWriteAtInAppendMode, lstat, dirBufPool, _r, _r$1, _r$2, sameFile, SameFile, nextRandom, CreateTemp, prefixAndSuffix, joinPath, lastIndex, uitox, statNolog, lstatNolog, fillFileStatFromSys, Stat, Lstat, newRawConn, init, Exit, Pipe, IsPathSeparator, basename, runtime_args, init$1, runtime_beforeExit, fastrand, Getwd, fixLongPath, NewFile, net_newUnixFile, newFile, epipecheck, openFileNolog, Remove, tempDir, Readlink, newUnixDirent, sigpipe, syscallMode, chmod, ignoringEINTR, genericReadFrom, setStickyBit, Open, OpenFile, fixCount, TempDir, Chmod, ReadFile, startProcess, newProcess, StartProcess, errNoDeadline, errDeadlineExceeded, NewSyscallError, IsExist, IsNotExist, underlyingErrorIs, underlyingError, Getenv, LookupEnv, Environ, direntIno, direntReclen, direntNamlen, direntType, readInt, readIntBE, readIntLE, ReadDir; + var $pkg = {}, $init, errors, js, itoa, poll, safefilepath, execenv, unix, testlog, io, fs, runtime, sort, sync, atomic, syscall, time, fileStat, File, rawConn, file, unixDirent, LinkError, fileWithoutReadFrom, ProcessState, Process, ProcAttr, Signal, timeout, SyscallError, dirInfo, readdirMode, sliceType, structType, sliceType$1, sliceType$2, ptrType, ptrType$1, ptrType$2, arrayType, ptrType$3, ptrType$5, sliceType$3, ptrType$6, ptrType$7, ptrType$8, ptrType$9, funcType, sliceType$5, ptrType$10, ptrType$11, ptrType$12, ptrType$13, ptrType$14, ptrType$15, sliceType$6, funcType$1, ptrType$16, ptrType$17, sliceType$7, funcType$2, funcType$3, ptrType$18, ptrType$19, sliceType$8, getwdCache, testingForceReadDirLstat, errPatternHasSeparator, errWriteAtInAppendMode, lstat, checkWrapErr, dirBufPool, _r, _r$1, _r$2, sameFile, SameFile, nextRandom, CreateTemp, prefixAndSuffix, joinPath, lastIndex, uitox, statNolog, lstatNolog, fillFileStatFromSys, Stat, Lstat, newRawConn, init, Exit, Pipe, IsPathSeparator, basename, runtime_args, init$1, runtime_beforeExit, fastrand, Getwd, fixLongPath, NewFile, net_newUnixFile, newFile, sigpipe, epipecheck, openFileNolog, Remove, tempDir, Readlink, newUnixDirent, syscallMode, chmod, ignoringEINTR, open, genericReadFrom, setStickyBit, Open, OpenFile, fixCount, TempDir, Chmod, ReadFile, startProcess, newProcess, StartProcess, errNoDeadline, errDeadlineExceeded, NewSyscallError, IsExist, IsNotExist, underlyingErrorIs, underlyingError, Getenv, LookupEnv, Environ, direntIno, direntReclen, direntNamlen, direntType, readInt, readIntBE, readIntLE, ReadDir; errors = $packages["errors"]; js = $packages["github.com/gopherjs/gopherjs/js"]; itoa = $packages["internal/itoa"]; @@ -30640,7 +29725,7 @@ $packages["os"] = (function() { file = $newType(0, $kindStruct, "os.file", true, "os", false, function(pfd_, name_, dirinfo_, nonblock_, stdoutOrErr_, appendMode_) { this.$val = this; if (arguments.length === 0) { - this.pfd = new poll.FD.ptr(new poll.fdMutex.ptr(new $Uint64(0, 0), 0, 0), 0, new poll.pollDesc.ptr(ptrType$6.nil, false), ptrType$7.nil, 0, 0, false, false, false); + this.pfd = new poll.FD.ptr(new poll.fdMutex.ptr(new $Uint64(0, 0), 0, 0), 0, new poll.SysFile.ptr(ptrType$6.nil), new poll.pollDesc.ptr(ptrType$7.nil, false), 0, 0, false, false, false); this.name = ""; this.dirinfo = ptrType$8.nil; this.nonblock = false; @@ -30683,13 +29768,13 @@ $packages["os"] = (function() { this.New = New_; this.Err = Err_; }); - onlyWriter = $newType(0, $kindStruct, "os.onlyWriter", true, "os", false, function(Writer_) { + fileWithoutReadFrom = $newType(0, $kindStruct, "os.fileWithoutReadFrom", true, "os", false, function(File_) { this.$val = this; if (arguments.length === 0) { - this.Writer = $ifaceNil; + this.File = ptrType$2.nil; return; } - this.Writer = Writer_; + this.File = File_; }); ProcessState = $newType(0, $kindStruct, "os.ProcessState", true, "os", true, function(pid_, status_, rusage_) { this.$val = this; @@ -30722,7 +29807,7 @@ $packages["os"] = (function() { if (arguments.length === 0) { this.Dir = ""; this.Env = sliceType.nil; - this.Files = sliceType$9.nil; + this.Files = sliceType$8.nil; this.Sys = ptrType$15.nil; return; } @@ -30762,7 +29847,7 @@ $packages["os"] = (function() { $pkg.file = file; $pkg.unixDirent = unixDirent; $pkg.LinkError = LinkError; - $pkg.onlyWriter = onlyWriter; + $pkg.fileWithoutReadFrom = fileWithoutReadFrom; $pkg.ProcessState = ProcessState; $pkg.Process = Process; $pkg.ProcAttr = ProcAttr; @@ -30782,14 +29867,13 @@ $packages["os"] = (function() { arrayType = $arrayType($Uint8, 20); ptrType$3 = $ptrType(time.Location); ptrType$5 = $ptrType(fs.PathError); - arrayType$1 = $arrayType($Int, 2); - sliceType$3 = $sliceType($Int); - ptrType$6 = $ptrType(poll.FD); - sliceType$4 = $sliceType(syscall.Iovec); - ptrType$7 = $ptrType(sliceType$4); + sliceType$3 = $sliceType(syscall.Iovec); + ptrType$6 = $ptrType(sliceType$3); + ptrType$7 = $ptrType(poll.FD); ptrType$8 = $ptrType(dirInfo); ptrType$9 = $ptrType(file); funcType = $funcType([ptrType$9], [$error], false); + sliceType$5 = $sliceType(fs.DirEntry); ptrType$10 = $ptrType(ProcessState); ptrType$11 = $ptrType(syscall.WaitStatus); ptrType$12 = $ptrType(syscall.Rusage); @@ -30800,13 +29884,12 @@ $packages["os"] = (function() { funcType$1 = $funcType([ptrType$13], [$error], false); ptrType$16 = $ptrType(LinkError); ptrType$17 = $ptrType(SyscallError); - sliceType$7 = $sliceType(fs.DirEntry); - sliceType$8 = $sliceType(fs.FileInfo); + sliceType$7 = $sliceType(fs.FileInfo); funcType$2 = $funcType([$Uintptr], [], false); funcType$3 = $funcType([$Uintptr], [$Bool], false); ptrType$18 = $ptrType(rawConn); ptrType$19 = $ptrType(unixDirent); - sliceType$9 = $sliceType(ptrType$2); + sliceType$8 = $sliceType(ptrType$2); $ptrType(Process).prototype.blockUntilWaitable = function blockUntilWaitable() { var p; p = this; @@ -31180,40 +30263,17 @@ $packages["os"] = (function() { }; $pkg.Exit = Exit; Pipe = function Pipe$1() { - var {$24r, _r$3, _r$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, e, err, p, r, w, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var _tmp, _tmp$1, _tmp$2, err, r, w; r = ptrType$2.nil; w = ptrType$2.nil; err = $ifaceNil; - p = arrayType$1.zero(); - $r = syscall.ForkLock.RLock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - e = syscall.Pipe($subslice(new sliceType$3(p), 0)); - /* */ if (!($interfaceIsEqual(e, $ifaceNil))) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!($interfaceIsEqual(e, $ifaceNil))) { */ case 2: - $r = syscall.ForkLock.RUnlock(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _tmp = ptrType$2.nil; - _tmp$1 = ptrType$2.nil; - _tmp$2 = NewSyscallError("pipe", e); - r = _tmp; - w = _tmp$1; - err = _tmp$2; - $s = -1; return [r, w, err]; - /* } */ case 3: - syscall.CloseOnExec(p[0]); - syscall.CloseOnExec(p[1]); - $r = syscall.ForkLock.RUnlock(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$3 = newFile(((p[0] >>> 0)), "|0", 2); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tmp$3 = _r$3; - _r$4 = newFile(((p[1] >>> 0)), "|1", 2); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _tmp$4 = _r$4; - _tmp$5 = $ifaceNil; - r = _tmp$3; - w = _tmp$4; - err = _tmp$5; - $24r = [r, w, err]; - $s = 8; case 8: return $24r; - /* */ } return; } var $f = {$blk: Pipe$1, $c: true, $r, $24r, _r$3, _r$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, e, err, p, r, w, $s};return $f; + _tmp = ptrType$2.nil; + _tmp$1 = ptrType$2.nil; + _tmp$2 = NewSyscallError("pipe", new syscall.Errno(38)); + r = _tmp; + w = _tmp$1; + err = _tmp$2; + return [r, w, err]; }; $pkg.Pipe = Pipe; IsPathSeparator = function IsPathSeparator$1(c) { @@ -31483,24 +30543,36 @@ $packages["os"] = (function() { /* */ } return; } var $f = {$blk: Fd, $c: true, $r, _r$3, f, $s};return $f; }; NewFile = function NewFile$1(fd, name) { - var {$24r, _r$3, _tuple, err, fd, kind, name, nb, $s, $r, $c} = $restore(this, {fd, name}); + var {_r$3, _tuple, appendMode, err, f, fd, fdi, flags, kind, name, $s, $r, $c} = $restore(this, {fd, name}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + fdi = ((fd >> 0)); + if (fdi < 0) { + $s = -1; return ptrType$2.nil; + } kind = 0; - _tuple = unix.IsNonblock(((fd >> 0))); - nb = _tuple[0]; + appendMode = false; + _tuple = unix.Fcntl(fdi, 3, 0); + flags = _tuple[0]; err = _tuple[1]; - if ($interfaceIsEqual(err, $ifaceNil) && nb) { - kind = 3; + if ($interfaceIsEqual(err, $ifaceNil)) { + if (unix.HasNonblockFlag(flags)) { + kind = 3; + } + appendMode = !(((flags & 1024) === 0)); } - _r$3 = newFile(fd, name, kind); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r = _r$3; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: NewFile$1, $c: true, $r, $24r, _r$3, _tuple, err, fd, kind, name, nb, $s};return $f; + _r$3 = newFile(fdi, name, kind); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + f = _r$3; + f.file.appendMode = appendMode; + $s = -1; return f; + /* */ } return; } var $f = {$blk: NewFile$1, $c: true, $r, _r$3, _tuple, appendMode, err, f, fd, fdi, flags, kind, name, $s};return $f; }; $pkg.NewFile = NewFile; net_newUnixFile = function net_newUnixFile$1(fd, name) { var {_r$3, f, fd, name, $s, $r, $c} = $restore(this, {fd, name}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (fd < 0) { + $panic(new $String("invalid FD")); + } _r$3 = newFile(fd, name, 3); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } f = _r$3; f.file.nonblock = true; @@ -31508,15 +30580,11 @@ $packages["os"] = (function() { /* */ } return; } var $f = {$blk: net_newUnixFile$1, $c: true, $r, _r$3, f, fd, name, $s};return $f; }; newFile = function newFile$1(fd, name, kind) { - var {_1, _r$3, clearNonBlock, err, err$1, err$2, f, fd, fdi, kind, name, pollErr, pollable, st, typ, $s, $r, $c} = $restore(this, {fd, name, kind}); + var {_1, _r$3, clearNonBlock, err, err$1, err$2, f, fd, kind, name, pollErr, pollable, st, typ, $s, $r, $c} = $restore(this, {fd, name, kind}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - fdi = [fdi]; + fd = [fd]; st = [st]; - fdi[0] = ((fd >> 0)); - if (fdi[0] < 0) { - $s = -1; return ptrType$2.nil; - } - f = new File.ptr(new file.ptr($clone(new poll.FD.ptr(new poll.fdMutex.ptr(new $Uint64(0, 0), 0, 0), fdi[0], new poll.pollDesc.ptr(ptrType$6.nil, false), ptrType$7.nil, 0, 0, true, true, false), poll.FD), name, ptrType$8.nil, false, (fdi[0] === 1) || (fdi[0] === 2), false)); + f = new File.ptr(new file.ptr($clone(new poll.FD.ptr(new poll.fdMutex.ptr(new $Uint64(0, 0), 0, 0), fd[0], new poll.SysFile.ptr(ptrType$6.nil), new poll.pollDesc.ptr(ptrType$7.nil, false), 0, 0, true, true, false), poll.FD), name, ptrType$8.nil, false, (fd[0] === 1) || (fd[0] === 2), false)); pollable = (kind === 1) || (kind === 2) || (kind === 3); /* */ if (kind === 1) { $s = 1; continue; } /* */ $s = 2; continue; @@ -31526,14 +30594,14 @@ $packages["os"] = (function() { /* */ $s = 5; continue; /* if (_1 === ("darwin") || _1 === ("ios") || _1 === ("dragonfly") || _1 === ("freebsd") || _1 === ("netbsd") || _1 === ("openbsd")) { */ case 4: st[0] = new syscall.Stat_t.ptr(new $Int64(0, 0), new $Uint64(0, 0), 0, 0, 0, 0, new $Int64(0, 0), new $Int64(0, 0), 0, 0, new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0)); - _r$3 = ignoringEINTR((function(fdi, st) { return function newFile·func1() { + _r$3 = ignoringEINTR((function(fd, st) { return function newFile·func1() { var {$24r, _r$3, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$3 = syscall.Fstat(fdi[0], st[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3 = syscall.Fstat(fd[0], st[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } $24r = _r$3; $s = 2; case 2: return $24r; /* */ } return; } var $f = {$blk: newFile·func1, $c: true, $r, $24r, _r$3, $s};return $f; - }; })(fdi, st)); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + }; })(fd, st)); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } err = _r$3; typ = (st[0].Mode & 126976) >>> 0; if ($interfaceIsEqual(err, $ifaceNil) && ((typ === 32768) || (typ === 16384))) { @@ -31549,7 +30617,7 @@ $packages["os"] = (function() { if (pollable) { if (kind === 3) { } else { - err$1 = syscall.SetNonblock(fdi[0], true); + err$1 = syscall.SetNonblock(fd[0], true); if ($interfaceIsEqual(err$1, $ifaceNil)) { f.file.nonblock = true; clearNonBlock = true; @@ -31560,15 +30628,18 @@ $packages["os"] = (function() { } pollErr = f.file.pfd.Init("file", pollable); if (!($interfaceIsEqual(pollErr, $ifaceNil)) && clearNonBlock) { - err$2 = syscall.SetNonblock(fdi[0], false); + err$2 = syscall.SetNonblock(fd[0], false); if ($interfaceIsEqual(err$2, $ifaceNil)) { f.file.nonblock = false; } } runtime.SetFinalizer(f.file, new funcType($methodExpr(ptrType$9, "close"))); $s = -1; return f; - /* */ } return; } var $f = {$blk: newFile$1, $c: true, $r, _1, _r$3, clearNonBlock, err, err$1, err$2, f, fd, fdi, kind, name, pollErr, pollable, st, typ, $s};return $f; + /* */ } return; } var $f = {$blk: newFile$1, $c: true, $r, _1, _r$3, clearNonBlock, err, err$1, err$2, f, fd, kind, name, pollErr, pollable, st, typ, $s};return $f; }; + sigpipe = function() { + $throwRuntimeError("native function not implemented: os.sigpipe"); + }; epipecheck = function epipecheck$1(file$1, e) { var {e, file$1, $s, $r, $c} = $restore(this, {file$1, e}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: @@ -31581,7 +30652,7 @@ $packages["os"] = (function() { /* */ } return; } var $f = {$blk: epipecheck$1, $c: true, $r, e, file$1, $s};return $f; }; openFileNolog = function openFileNolog$1(name, flag, perm) { - var {$24r, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, e, err, flag, kind, name, perm, r, setSticky, $s, $r, $c} = $restore(this, {name, flag, perm}); + var {_r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, e, err, f, flag, kind, name, perm, r, s, setSticky, $s, $r, $c} = $restore(this, {name, flag, perm}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: setSticky = false; /* */ if (true && !(((flag & 64) === 0)) && !((((perm & 1048576) >>> 0) === 0))) { $s = 1; continue; } @@ -31595,12 +30666,14 @@ $packages["os"] = (function() { } /* } */ case 2: r = 0; + s = new poll.SysFile.ptr(ptrType$6.nil); /* while (true) { */ case 4: e = $ifaceNil; - _r$4 = syscall.Open(name, flag | 0, syscallMode(perm)); /* */ $s = 6; case 6: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4 = open(name, flag | 0, syscallMode(perm)); /* */ $s = 6; case 6: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _tuple$1 = _r$4; r = _tuple$1[0]; - e = _tuple$1[1]; + poll.SysFile.copy(s, _tuple$1[1]); + e = _tuple$1[2]; if ($interfaceIsEqual(e, $ifaceNil)) { /* break; */ $s = 5; continue; } @@ -31622,10 +30695,11 @@ $packages["os"] = (function() { if (unix.HasNonblockFlag(flag)) { kind = 3; } - _r$6 = newFile(((r >>> 0)), name, kind); /* */ $s = 10; case 10: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - $24r = [_r$6, $ifaceNil]; - $s = 11; case 11: return $24r; - /* */ } return; } var $f = {$blk: openFileNolog$1, $c: true, $r, $24r, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, e, err, flag, kind, name, perm, r, setSticky, $s};return $f; + _r$6 = newFile(r, name, kind); /* */ $s = 10; case 10: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + f = _r$6; + poll.SysFile.copy(f.file.pfd.SysFile, s); + $s = -1; return [f, $ifaceNil]; + /* */ } return; } var $f = {$blk: openFileNolog$1, $c: true, $r, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, e, err, f, flag, kind, name, perm, r, s, setSticky, $s};return $f; }; $ptrType(file).prototype.close = function close() { var {_r$3, e, err, file$1, $s, $r, $c} = $restore(this, {}); @@ -31787,6 +30861,15 @@ $packages["os"] = (function() { $s = 2; case 2: return $24r; /* */ } return; } var $f = {$blk: Info, $c: true, $r, $24r, _r$3, d, $s};return $f; }; + $ptrType(unixDirent).prototype.String = function String() { + var {$24r, _r$3, d, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + d = this; + _r$3 = fs.FormatDirEntry(d); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String, $c: true, $r, $24r, _r$3, d, $s};return $f; + }; newUnixDirent = function newUnixDirent$1(parent, name, typ) { var {_r$3, _r$4, _r$5, _tuple, err, info, name, parent, typ, ude, $s, $r, $c} = $restore(this, {parent, name, typ}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: @@ -31808,9 +30891,6 @@ $packages["os"] = (function() { $s = -1; return [ude, $ifaceNil]; /* */ } return; } var $f = {$blk: newUnixDirent$1, $c: true, $r, _r$3, _r$4, _r$5, _tuple, err, info, name, parent, typ, ude, $s};return $f; }; - sigpipe = function() { - $throwRuntimeError("native function not implemented: os.sigpipe"); - }; $ptrType(File).prototype.Close = function Close() { var {$24r, _r$3, f, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: @@ -31932,7 +31012,7 @@ $packages["os"] = (function() { /* */ } return; } var $f = {$blk: chmod$1, $c: true, $r, _r$3, e, longName, mode, name, $s};return $f; }; $ptrType(File).prototype.chmod = function chmod$2(mode) { - var {_r$3, e, err, f, mode, $s, $r, $c} = $restore(this, {mode}); + var {$24r, _r$3, _r$4, e, err, f, mode, $s, $r, $c} = $restore(this, {mode}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: f = this; err = f.checkValid("chmod"); @@ -31941,14 +31021,18 @@ $packages["os"] = (function() { } _r$3 = f.file.pfd.Fchmod(syscallMode(mode)); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } e = _r$3; - if (!($interfaceIsEqual(e, $ifaceNil))) { - $s = -1; return f.wrapErr("chmod", e); - } + /* */ if (!($interfaceIsEqual(e, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(e, $ifaceNil))) { */ case 2: + _r$4 = f.wrapErr("chmod", e); /* */ $s = 4; case 4: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r = _r$4; + $s = 5; case 5: return $24r; + /* } */ case 3: $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: chmod$2, $c: true, $r, _r$3, e, err, f, mode, $s};return $f; + /* */ } return; } var $f = {$blk: chmod$2, $c: true, $r, $24r, _r$3, _r$4, e, err, f, mode, $s};return $f; }; $ptrType(File).prototype.Chown = function Chown$2(uid, gid) { - var {_r$3, e, err, f, gid, uid, $s, $r, $c} = $restore(this, {uid, gid}); + var {$24r, _r$3, _r$4, e, err, f, gid, uid, $s, $r, $c} = $restore(this, {uid, gid}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: f = this; err = f.checkValid("chown"); @@ -31957,14 +31041,18 @@ $packages["os"] = (function() { } _r$3 = f.file.pfd.Fchown(uid, gid); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } e = _r$3; - if (!($interfaceIsEqual(e, $ifaceNil))) { - $s = -1; return f.wrapErr("chown", e); - } + /* */ if (!($interfaceIsEqual(e, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(e, $ifaceNil))) { */ case 2: + _r$4 = f.wrapErr("chown", e); /* */ $s = 4; case 4: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r = _r$4; + $s = 5; case 5: return $24r; + /* } */ case 3: $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: Chown$2, $c: true, $r, _r$3, e, err, f, gid, uid, $s};return $f; + /* */ } return; } var $f = {$blk: Chown$2, $c: true, $r, $24r, _r$3, _r$4, e, err, f, gid, uid, $s};return $f; }; $ptrType(File).prototype.Truncate = function Truncate$2(size) { - var {_r$3, e, err, f, size, $s, $r, $c} = $restore(this, {size}); + var {$24r, _r$3, _r$4, e, err, f, size, $s, $r, $c} = $restore(this, {size}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: f = this; err = f.checkValid("truncate"); @@ -31973,14 +31061,18 @@ $packages["os"] = (function() { } _r$3 = f.file.pfd.Ftruncate(size); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } e = _r$3; - if (!($interfaceIsEqual(e, $ifaceNil))) { - $s = -1; return f.wrapErr("truncate", e); - } + /* */ if (!($interfaceIsEqual(e, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(e, $ifaceNil))) { */ case 2: + _r$4 = f.wrapErr("truncate", e); /* */ $s = 4; case 4: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r = _r$4; + $s = 5; case 5: return $24r; + /* } */ case 3: $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: Truncate$2, $c: true, $r, _r$3, e, err, f, size, $s};return $f; + /* */ } return; } var $f = {$blk: Truncate$2, $c: true, $r, $24r, _r$3, _r$4, e, err, f, size, $s};return $f; }; $ptrType(File).prototype.Sync = function Sync() { - var {_r$3, e, err, f, $s, $r, $c} = $restore(this, {}); + var {$24r, _r$3, _r$4, e, err, f, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: f = this; err = f.checkValid("sync"); @@ -31989,14 +31081,18 @@ $packages["os"] = (function() { } _r$3 = f.file.pfd.Fsync(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } e = _r$3; - if (!($interfaceIsEqual(e, $ifaceNil))) { - $s = -1; return f.wrapErr("sync", e); - } + /* */ if (!($interfaceIsEqual(e, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(e, $ifaceNil))) { */ case 2: + _r$4 = f.wrapErr("sync", e); /* */ $s = 4; case 4: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r = _r$4; + $s = 5; case 5: return $24r; + /* } */ case 3: $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: Sync, $c: true, $r, _r$3, e, err, f, $s};return $f; + /* */ } return; } var $f = {$blk: Sync, $c: true, $r, $24r, _r$3, _r$4, e, err, f, $s};return $f; }; $ptrType(File).prototype.Chdir = function Chdir$1() { - var {_r$3, e, err, f, $s, $r, $c} = $restore(this, {}); + var {$24r, _r$3, _r$4, e, err, f, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: f = this; err = f.checkValid("chdir"); @@ -32005,11 +31101,15 @@ $packages["os"] = (function() { } _r$3 = f.file.pfd.Fchdir(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } e = _r$3; - if (!($interfaceIsEqual(e, $ifaceNil))) { - $s = -1; return f.wrapErr("chdir", e); - } + /* */ if (!($interfaceIsEqual(e, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(e, $ifaceNil))) { */ case 2: + _r$4 = f.wrapErr("chdir", e); /* */ $s = 4; case 4: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r = _r$4; + $s = 5; case 5: return $24r; + /* } */ case 3: $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: Chdir$1, $c: true, $r, _r$3, e, err, f, $s};return $f; + /* */ } return; } var $f = {$blk: Chdir$1, $c: true, $r, $24r, _r$3, _r$4, e, err, f, $s};return $f; }; $ptrType(File).prototype.setDeadline = function setDeadline(t) { var {$24r, _r$3, err, f, t, $s, $r, $c} = $restore(this, {t}); @@ -32072,6 +31172,16 @@ $packages["os"] = (function() { $s = -1; return $ifaceNil; /* */ } return; } var $f = {$blk: ignoringEINTR$1, $c: true, $r, _r$3, err, fn, $s};return $f; }; + open = function open$1(path, flag, perm) { + var {_r$3, _tuple, err, fd, flag, path, perm, $s, $r, $c} = $restore(this, {path, flag, perm}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$3 = syscall.Open(path, flag, perm); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + fd = _tuple[0]; + err = _tuple[1]; + $s = -1; return [fd, new poll.SysFile.ptr(ptrType$6.nil), err]; + /* */ } return; } var $f = {$blk: open$1, $c: true, $r, _r$3, _tuple, err, fd, flag, path, perm, $s};return $f; + }; $ptrType(File).prototype.Name = function Name$2() { var f; f = this; @@ -32092,7 +31202,7 @@ $packages["os"] = (function() { return e.Err; }; $ptrType(File).prototype.Read = function Read$1(b) { - var {_r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, n, $s, $r, $c} = $restore(this, {b}); + var {$24r, _r$3, _r$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, n, $s, $r, $c} = $restore(this, {b}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: n = 0; err = $ifaceNil; @@ -32110,14 +31220,16 @@ $packages["os"] = (function() { n = _tuple[0]; e = _tuple[1]; _tmp$2 = n; - _tmp$3 = f.wrapErr("read", e); + _r$4 = f.wrapErr("read", e); /* */ $s = 2; case 2: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tmp$3 = _r$4; n = _tmp$2; err = _tmp$3; - $s = -1; return [n, err]; - /* */ } return; } var $f = {$blk: Read$1, $c: true, $r, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, n, $s};return $f; + $24r = [n, err]; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: Read$1, $c: true, $r, $24r, _r$3, _r$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, n, $s};return $f; }; $ptrType(File).prototype.ReadAt = function ReadAt(b, off) { - var {_r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, m, n, off, x, $s, $r, $c} = $restore(this, {b, off}); + var {_r$3, _r$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, m, n, off, x, $s, $r, $c} = $restore(this, {b, off}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: n = 0; err = $ifaceNil; @@ -32143,20 +31255,23 @@ $packages["os"] = (function() { _tuple = _r$3; m = _tuple[0]; e = _tuple[1]; - if (!($interfaceIsEqual(e, $ifaceNil))) { - err = f.wrapErr("read", e); + /* */ if (!($interfaceIsEqual(e, $ifaceNil))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!($interfaceIsEqual(e, $ifaceNil))) { */ case 4: + _r$4 = f.wrapErr("read", e); /* */ $s = 6; case 6: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + err = _r$4; /* break; */ $s = 2; continue; - } + /* } */ case 5: n = n + (m) >> 0; b = $subslice(b, m); off = (x = (new $Int64(0, m)), new $Int64(off.$high + x.$high, off.$low + x.$low)); $s = 1; continue; case 2: $s = -1; return [n, err]; - /* */ } return; } var $f = {$blk: ReadAt, $c: true, $r, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, m, n, off, x, $s};return $f; + /* */ } return; } var $f = {$blk: ReadAt, $c: true, $r, _r$3, _r$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, m, n, off, x, $s};return $f; }; $ptrType(File).prototype.ReadFrom = function ReadFrom(r) { - var {$24r, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, e, err, err$1, f, handled, n, r, $s, $r, $c} = $restore(this, {r}); + var {$24r, $24r$1, _r$3, _r$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, e, err, err$1, f, handled, n, r, $s, $r, $c} = $restore(this, {r}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: n = new $Int64(0, 0); err = $ifaceNil; @@ -32184,22 +31299,29 @@ $packages["os"] = (function() { $s = 4; case 4: return $24r; /* } */ case 2: _tmp$2 = n; - _tmp$3 = f.wrapErr("write", e); + _r$4 = f.wrapErr("write", e); /* */ $s = 5; case 5: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tmp$3 = _r$4; n = _tmp$2; err = _tmp$3; - $s = -1; return [n, err]; - /* */ } return; } var $f = {$blk: ReadFrom, $c: true, $r, $24r, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, e, err, err$1, f, handled, n, r, $s};return $f; + $24r$1 = [n, err]; + $s = 6; case 6: return $24r$1; + /* */ } return; } var $f = {$blk: ReadFrom, $c: true, $r, $24r, $24r$1, _r$3, _r$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, e, err, err$1, f, handled, n, r, $s};return $f; }; genericReadFrom = function genericReadFrom$1(f, r) { var {$24r, _r$3, f, r, x, $s, $r, $c} = $restore(this, {f, r}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$3 = io.Copy((x = new onlyWriter.ptr(f), new x.constructor.elem(x)), r); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3 = io.Copy((x = new fileWithoutReadFrom.ptr(f), new x.constructor.elem(x)), r); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } $24r = _r$3; $s = 2; case 2: return $24r; /* */ } return; } var $f = {$blk: genericReadFrom$1, $c: true, $r, $24r, _r$3, f, r, x, $s};return $f; }; + $ptrType(fileWithoutReadFrom).prototype.ReadFrom = function ReadFrom$1(param) { + var param; + $panic(new $String("unreachable")); + }; + fileWithoutReadFrom.prototype.ReadFrom = function(...$args) { return this.$val.ReadFrom(...$args); }; $ptrType(File).prototype.Write = function Write$1(b) { - var {_r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, n, $s, $r, $c} = $restore(this, {b}); + var {_r$3, _r$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, n, $s, $r, $c} = $restore(this, {b}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: n = 0; err = $ifaceNil; @@ -32223,18 +31345,21 @@ $packages["os"] = (function() { err = io.ErrShortWrite; } $r = epipecheck(f, e); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (!($interfaceIsEqual(e, $ifaceNil))) { - err = f.wrapErr("write", e); - } + /* */ if (!($interfaceIsEqual(e, $ifaceNil))) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!($interfaceIsEqual(e, $ifaceNil))) { */ case 3: + _r$4 = f.wrapErr("write", e); /* */ $s = 5; case 5: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + err = _r$4; + /* } */ case 4: _tmp$2 = n; _tmp$3 = err; n = _tmp$2; err = _tmp$3; $s = -1; return [n, err]; - /* */ } return; } var $f = {$blk: Write$1, $c: true, $r, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, n, $s};return $f; + /* */ } return; } var $f = {$blk: Write$1, $c: true, $r, _r$3, _r$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, n, $s};return $f; }; $ptrType(File).prototype.WriteAt = function WriteAt(b, off) { - var {_r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, b, e, err, err$1, f, m, n, off, x, $s, $r, $c} = $restore(this, {b, off}); + var {_r$3, _r$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, b, e, err, err$1, f, m, n, off, x, $s, $r, $c} = $restore(this, {b, off}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: n = 0; err = $ifaceNil; @@ -32267,20 +31392,23 @@ $packages["os"] = (function() { _tuple = _r$3; m = _tuple[0]; e = _tuple[1]; - if (!($interfaceIsEqual(e, $ifaceNil))) { - err = f.wrapErr("write", e); + /* */ if (!($interfaceIsEqual(e, $ifaceNil))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!($interfaceIsEqual(e, $ifaceNil))) { */ case 4: + _r$4 = f.wrapErr("write", e); /* */ $s = 6; case 6: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + err = _r$4; /* break; */ $s = 2; continue; - } + /* } */ case 5: n = n + (m) >> 0; b = $subslice(b, m); off = (x = (new $Int64(0, m)), new $Int64(off.$high + x.$high, off.$low + x.$low)); $s = 1; continue; case 2: $s = -1; return [n, err]; - /* */ } return; } var $f = {$blk: WriteAt, $c: true, $r, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, b, e, err, err$1, f, m, n, off, x, $s};return $f; + /* */ } return; } var $f = {$blk: WriteAt, $c: true, $r, _r$3, _r$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, b, e, err, err$1, f, m, n, off, x, $s};return $f; }; $ptrType(File).prototype.Seek = function Seek(offset, whence) { - var {_r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, e, err, err$1, f, offset, r, ret, whence, $s, $r, $c} = $restore(this, {offset, whence}); + var {$24r, _r$3, _r$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, e, err, err$1, f, offset, r, ret, whence, $s, $r, $c} = $restore(this, {offset, whence}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: ret = new $Int64(0, 0); err = $ifaceNil; @@ -32300,19 +31428,23 @@ $packages["os"] = (function() { if ($interfaceIsEqual(e, $ifaceNil) && !(f.file.dirinfo === ptrType$8.nil) && !((r.$high === 0 && r.$low === 0))) { e = new syscall.Errno(21); } - if (!($interfaceIsEqual(e, $ifaceNil))) { + /* */ if (!($interfaceIsEqual(e, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(e, $ifaceNil))) { */ case 2: _tmp$2 = new $Int64(0, 0); - _tmp$3 = f.wrapErr("seek", e); + _r$4 = f.wrapErr("seek", e); /* */ $s = 4; case 4: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tmp$3 = _r$4; ret = _tmp$2; err = _tmp$3; - $s = -1; return [ret, err]; - } + $24r = [ret, err]; + $s = 5; case 5: return $24r; + /* } */ case 3: _tmp$4 = r; _tmp$5 = $ifaceNil; ret = _tmp$4; err = _tmp$5; $s = -1; return [ret, err]; - /* */ } return; } var $f = {$blk: Seek, $c: true, $r, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, e, err, err$1, f, offset, r, ret, whence, $s};return $f; + /* */ } return; } var $f = {$blk: Seek, $c: true, $r, $24r, _r$3, _r$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, e, err, err$1, f, offset, r, ret, whence, $s};return $f; }; setStickyBit = function setStickyBit$1(name) { var {$24r, _arg, _arg$1, _r$3, _r$4, _r$5, _tuple, err, fi, name, $s, $r, $c} = $restore(this, {name}); @@ -32365,15 +31497,27 @@ $packages["os"] = (function() { return [n, err]; }; $ptrType(File).prototype.wrapErr = function wrapErr(op, err) { - var err, f, op; + var {_r$3, _r$4, _v, err, f, op, $s, $r, $c} = $restore(this, {op, err}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: f = this; if ($interfaceIsEqual(err, $ifaceNil) || $interfaceIsEqual(err, io.EOF)) { - return err; + $s = -1; return err; } - if ($interfaceIsEqual(err, poll.ErrFileClosing)) { + /* */ if ($interfaceIsEqual(err, poll.ErrFileClosing)) { $s = 1; continue; } + if (!(checkWrapErr)) { _v = false; $s = 4; continue s; } + _r$3 = errors.Is(err, poll.ErrFileClosing); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v = _r$3; case 4: + /* */ if (_v) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if ($interfaceIsEqual(err, poll.ErrFileClosing)) { */ case 1: err = $pkg.ErrClosed; - } - return new fs.PathError.ptr(op, f.file.name, err); + $s = 3; continue; + /* } else if (_v) { */ case 2: + _r$4 = err.Error(); /* */ $s = 6; case 6: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $panic(new $String("unexpected error wrapping poll.ErrFileClosing: " + _r$4)); + /* } */ case 3: + $s = -1; return new fs.PathError.ptr(op, f.file.name, err); + /* */ } return; } var $f = {$blk: wrapErr, $c: true, $r, _r$3, _r$4, _v, err, f, op, $s};return $f; }; TempDir = function TempDir$1() { var {$24r, _r$3, $s, $r, $c} = $restore(this, {}); @@ -32439,7 +31583,7 @@ $packages["os"] = (function() { _returncast = newRawConn(f); return [_returncast[0], _returncast[1]]; }; - ReadFile = function ReadFile$1(name) { + ReadFile = function ReadFile$2(name) { var {$24r, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, _tuple$2, d, data, err, err$1, err$2, f, info, n, name, size, size64, x, $s, $deferred, $r, $c} = $restore(this, {name}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); _r$3 = Open(name); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } @@ -32491,7 +31635,7 @@ $packages["os"] = (function() { $s = 6; continue; case 7: $s = -1; return [sliceType$2.nil, $ifaceNil]; - /* */ } return; } } catch(err) { $err = err; $s = -1; return [sliceType$2.nil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: ReadFile$1, $c: true, $r, $24r, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, _tuple$2, d, data, err, err$1, err$2, f, info, n, name, size, size64, x, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; return [sliceType$2.nil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: ReadFile$2, $c: true, $r, $24r, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, _tuple$2, d, data, err, err$1, err$2, f, info, n, name, size, size64, x, $s, $deferred};return $f; } } }; $pkg.ReadFile = ReadFile; $ptrType(Process).prototype.wait = function wait() { @@ -32718,7 +31862,7 @@ $packages["os"] = (function() { p = this; return p.rusage; }; - $ptrType(ProcessState).prototype.String = function String() { + $ptrType(ProcessState).prototype.String = function String$1() { var code, p, res, status; p = this; if (p === ptrType$10.nil) { @@ -32986,8 +32130,8 @@ $packages["os"] = (function() { var {_i, _r$3, _r$4, _r$5, _r$6, _ref, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, buf, c, d, de, dirents, err, err$1, err$2, errno, f, i, info, infos, ino, mode, n, name, names, namlen, ok, rec, reclen, x, x$1, x$2, $s, $r, $c} = $restore(this, {n, mode}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: names = sliceType.nil; - dirents = sliceType$7.nil; - infos = sliceType$8.nil; + dirents = sliceType$5.nil; + infos = sliceType$7.nil; err = $ifaceNil; f = this; /* */ if (f.file.dirinfo === ptrType$8.nil) { $s = 1; continue; } @@ -33043,7 +32187,7 @@ $packages["os"] = (function() { if (!ok) { /* break; */ $s = 5; continue; } - if ((ino.$high === 0 && ino.$low === 0)) { + if ((ino.$high === 0 && ino.$low === 0) && true) { /* continue; */ $s = 4; continue; } _tuple$3 = direntNamlen(rec); @@ -33088,7 +32232,7 @@ $packages["os"] = (function() { if (!($interfaceIsEqual(err$1, $ifaceNil))) { _tmp$4 = sliceType.nil; _tmp$5 = dirents; - _tmp$6 = sliceType$8.nil; + _tmp$6 = sliceType$7.nil; _tmp$7 = err$1; names = _tmp$4; dirents = _tmp$5; @@ -33108,7 +32252,7 @@ $packages["os"] = (function() { } if (!($interfaceIsEqual(err$2, $ifaceNil))) { _tmp$8 = sliceType.nil; - _tmp$9 = sliceType$7.nil; + _tmp$9 = sliceType$5.nil; _tmp$10 = infos; _tmp$11 = err$2; names = _tmp$8; @@ -33123,8 +32267,8 @@ $packages["os"] = (function() { case 5: if (n > 0 && (((names.$length + dirents.$length >> 0) + infos.$length >> 0) === 0)) { _tmp$12 = sliceType.nil; - _tmp$13 = sliceType$7.nil; - _tmp$14 = sliceType$8.nil; + _tmp$13 = sliceType$5.nil; + _tmp$14 = sliceType$7.nil; _tmp$15 = io.EOF; names = _tmp$12; dirents = _tmp$13; @@ -33208,14 +32352,14 @@ $packages["os"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: f = this; if (f === ptrType$2.nil) { - $s = -1; return [sliceType$8.nil, $pkg.ErrInvalid]; + $s = -1; return [sliceType$7.nil, $pkg.ErrInvalid]; } _r$3 = f.readdir(n, 2); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _tuple = _r$3; infos = _tuple[2]; err = _tuple[3]; - if (infos === sliceType$8.nil) { - infos = new sliceType$8([]); + if (infos === sliceType$7.nil) { + infos = new sliceType$7([]); } $s = -1; return [infos, err]; /* */ } return; } var $f = {$blk: Readdir, $c: true, $r, _r$3, _tuple, err, f, infos, n, $s};return $f; @@ -33247,24 +32391,24 @@ $packages["os"] = (function() { $s = -1; return [names, err]; /* */ } return; } var $f = {$blk: Readdirnames, $c: true, $r, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, err, f, n, names, $s};return $f; }; - $ptrType(File).prototype.ReadDir = function ReadDir$1(n) { + $ptrType(File).prototype.ReadDir = function ReadDir$2(n) { var {_r$3, _tuple, dirents, err, f, n, $s, $r, $c} = $restore(this, {n}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: f = this; if (f === ptrType$2.nil) { - $s = -1; return [sliceType$7.nil, $pkg.ErrInvalid]; + $s = -1; return [sliceType$5.nil, $pkg.ErrInvalid]; } _r$3 = f.readdir(n, 1); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _tuple = _r$3; dirents = _tuple[1]; err = _tuple[3]; - if (dirents === sliceType$7.nil) { - dirents = new sliceType$7([]); + if (dirents === sliceType$5.nil) { + dirents = new sliceType$5([]); } $s = -1; return [dirents, err]; - /* */ } return; } var $f = {$blk: ReadDir$1, $c: true, $r, _r$3, _tuple, dirents, err, f, n, $s};return $f; + /* */ } return; } var $f = {$blk: ReadDir$2, $c: true, $r, _r$3, _tuple, dirents, err, f, n, $s};return $f; }; - ReadDir = function ReadDir$2(name) { + ReadDir = function ReadDir$3(name) { var {$24r, _r$3, _r$4, _tuple, _tuple$1, dirs, err, f, name, $s, $deferred, $r, $c} = $restore(this, {name}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); dirs = [dirs]; @@ -33273,7 +32417,7 @@ $packages["os"] = (function() { f = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [sliceType$7.nil, err]; + $s = -1; return [sliceType$5.nil, err]; } $deferred.push([$methodVal(f, "Close"), []]); _r$4 = f.ReadDir(-1); /* */ $s = 2; case 2: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } @@ -33291,15 +32435,16 @@ $packages["os"] = (function() { }; })(dirs)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $24r = [dirs[0], err]; $s = 4; case 4: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return [sliceType$7.nil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: ReadDir$2, $c: true, $r, $24r, _r$3, _r$4, _tuple, _tuple$1, dirs, err, f, name, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; return [sliceType$5.nil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: ReadDir$3, $c: true, $r, $24r, _r$3, _r$4, _tuple, _tuple$1, dirs, err, f, name, $s, $deferred};return $f; } } }; $pkg.ReadDir = ReadDir; ptrType$1.methods = [{prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Mode", name: "Mode", pkg: "", typ: $funcType([], [fs.FileMode], false)}, {prop: "ModTime", name: "ModTime", pkg: "", typ: $funcType([], [time.Time], false)}, {prop: "Sys", name: "Sys", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "IsDir", name: "IsDir", pkg: "", typ: $funcType([], [$Bool], false)}]; - ptrType$2.methods = [{prop: "Stat", name: "Stat", pkg: "", typ: $funcType([], [fs.FileInfo, $error], false)}, {prop: "readFrom", name: "readFrom", pkg: "os", typ: $funcType([io.Reader], [$Int64, $Bool, $error], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}, {prop: "Fd", name: "Fd", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "seek", name: "seek", pkg: "os", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "read", name: "read", pkg: "os", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "pread", name: "pread", pkg: "os", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "write", name: "write", pkg: "os", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "pwrite", name: "pwrite", pkg: "os", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "chmod", name: "chmod", pkg: "os", typ: $funcType([fs.FileMode], [$error], false)}, {prop: "Chown", name: "Chown", pkg: "", typ: $funcType([$Int, $Int], [$error], false)}, {prop: "Truncate", name: "Truncate", pkg: "", typ: $funcType([$Int64], [$error], false)}, {prop: "Sync", name: "Sync", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Chdir", name: "Chdir", pkg: "", typ: $funcType([], [$error], false)}, {prop: "setDeadline", name: "setDeadline", pkg: "os", typ: $funcType([time.Time], [$error], false)}, {prop: "setReadDeadline", name: "setReadDeadline", pkg: "os", typ: $funcType([time.Time], [$error], false)}, {prop: "setWriteDeadline", name: "setWriteDeadline", pkg: "os", typ: $funcType([time.Time], [$error], false)}, {prop: "checkValid", name: "checkValid", pkg: "os", typ: $funcType([$String], [$error], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "ReadAt", name: "ReadAt", pkg: "", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "ReadFrom", name: "ReadFrom", pkg: "", typ: $funcType([io.Reader], [$Int64, $error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "WriteAt", name: "WriteAt", pkg: "", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "Seek", name: "Seek", pkg: "", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "wrapErr", name: "wrapErr", pkg: "os", typ: $funcType([$String, $error], [$error], false)}, {prop: "Chmod", name: "Chmod", pkg: "", typ: $funcType([fs.FileMode], [$error], false)}, {prop: "SetDeadline", name: "SetDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetReadDeadline", name: "SetReadDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetWriteDeadline", name: "SetWriteDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SyscallConn", name: "SyscallConn", pkg: "", typ: $funcType([], [syscall.RawConn, $error], false)}, {prop: "readdir", name: "readdir", pkg: "os", typ: $funcType([$Int, readdirMode], [sliceType, sliceType$7, sliceType$8, $error], false)}, {prop: "Readdir", name: "Readdir", pkg: "", typ: $funcType([$Int], [sliceType$8, $error], false)}, {prop: "Readdirnames", name: "Readdirnames", pkg: "", typ: $funcType([$Int], [sliceType, $error], false)}, {prop: "ReadDir", name: "ReadDir", pkg: "", typ: $funcType([$Int], [sliceType$7, $error], false)}]; + ptrType$2.methods = [{prop: "Stat", name: "Stat", pkg: "", typ: $funcType([], [fs.FileInfo, $error], false)}, {prop: "readFrom", name: "readFrom", pkg: "os", typ: $funcType([io.Reader], [$Int64, $Bool, $error], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}, {prop: "Fd", name: "Fd", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "seek", name: "seek", pkg: "os", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "read", name: "read", pkg: "os", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "pread", name: "pread", pkg: "os", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "write", name: "write", pkg: "os", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "pwrite", name: "pwrite", pkg: "os", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "chmod", name: "chmod", pkg: "os", typ: $funcType([fs.FileMode], [$error], false)}, {prop: "Chown", name: "Chown", pkg: "", typ: $funcType([$Int, $Int], [$error], false)}, {prop: "Truncate", name: "Truncate", pkg: "", typ: $funcType([$Int64], [$error], false)}, {prop: "Sync", name: "Sync", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Chdir", name: "Chdir", pkg: "", typ: $funcType([], [$error], false)}, {prop: "setDeadline", name: "setDeadline", pkg: "os", typ: $funcType([time.Time], [$error], false)}, {prop: "setReadDeadline", name: "setReadDeadline", pkg: "os", typ: $funcType([time.Time], [$error], false)}, {prop: "setWriteDeadline", name: "setWriteDeadline", pkg: "os", typ: $funcType([time.Time], [$error], false)}, {prop: "checkValid", name: "checkValid", pkg: "os", typ: $funcType([$String], [$error], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "ReadAt", name: "ReadAt", pkg: "", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "ReadFrom", name: "ReadFrom", pkg: "", typ: $funcType([io.Reader], [$Int64, $error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "WriteAt", name: "WriteAt", pkg: "", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "Seek", name: "Seek", pkg: "", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "wrapErr", name: "wrapErr", pkg: "os", typ: $funcType([$String, $error], [$error], false)}, {prop: "Chmod", name: "Chmod", pkg: "", typ: $funcType([fs.FileMode], [$error], false)}, {prop: "SetDeadline", name: "SetDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetReadDeadline", name: "SetReadDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetWriteDeadline", name: "SetWriteDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SyscallConn", name: "SyscallConn", pkg: "", typ: $funcType([], [syscall.RawConn, $error], false)}, {prop: "readdir", name: "readdir", pkg: "os", typ: $funcType([$Int, readdirMode], [sliceType, sliceType$5, sliceType$7, $error], false)}, {prop: "Readdir", name: "Readdir", pkg: "", typ: $funcType([$Int], [sliceType$7, $error], false)}, {prop: "Readdirnames", name: "Readdirnames", pkg: "", typ: $funcType([$Int], [sliceType, $error], false)}, {prop: "ReadDir", name: "ReadDir", pkg: "", typ: $funcType([$Int], [sliceType$5, $error], false)}]; ptrType$18.methods = [{prop: "Control", name: "Control", pkg: "", typ: $funcType([funcType$2], [$error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([funcType$3], [$error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([funcType$3], [$error], false)}]; ptrType$9.methods = [{prop: "close", name: "close", pkg: "os", typ: $funcType([], [$error], false)}]; - ptrType$19.methods = [{prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "IsDir", name: "IsDir", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [fs.FileMode], false)}, {prop: "Info", name: "Info", pkg: "", typ: $funcType([], [fs.FileInfo, $error], false)}]; + ptrType$19.methods = [{prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "IsDir", name: "IsDir", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [fs.FileMode], false)}, {prop: "Info", name: "Info", pkg: "", typ: $funcType([], [fs.FileInfo, $error], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; ptrType$16.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Unwrap", name: "Unwrap", pkg: "", typ: $funcType([], [$error], false)}]; + fileWithoutReadFrom.methods = [{prop: "ReadFrom", name: "ReadFrom", pkg: "", typ: $funcType([fileWithoutReadFrom], [], false)}]; ptrType$10.methods = [{prop: "userTime", name: "userTime", pkg: "os", typ: $funcType([], [time.Duration], false)}, {prop: "systemTime", name: "systemTime", pkg: "os", typ: $funcType([], [time.Duration], false)}, {prop: "Pid", name: "Pid", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "exited", name: "exited", pkg: "os", typ: $funcType([], [$Bool], false)}, {prop: "success", name: "success", pkg: "os", typ: $funcType([], [$Bool], false)}, {prop: "sys", name: "sys", pkg: "os", typ: $funcType([], [$emptyInterface], false)}, {prop: "sysUsage", name: "sysUsage", pkg: "os", typ: $funcType([], [$emptyInterface], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "ExitCode", name: "ExitCode", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "UserTime", name: "UserTime", pkg: "", typ: $funcType([], [time.Duration], false)}, {prop: "SystemTime", name: "SystemTime", pkg: "", typ: $funcType([], [time.Duration], false)}, {prop: "Exited", name: "Exited", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Success", name: "Success", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Sys", name: "Sys", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "SysUsage", name: "SysUsage", pkg: "", typ: $funcType([], [$emptyInterface], false)}]; ptrType$13.methods = [{prop: "blockUntilWaitable", name: "blockUntilWaitable", pkg: "os", typ: $funcType([], [$Bool, $error], false)}, {prop: "wait", name: "wait", pkg: "os", typ: $funcType([], [ptrType$10, $error], false)}, {prop: "signal", name: "signal", pkg: "os", typ: $funcType([Signal], [$error], false)}, {prop: "release", name: "release", pkg: "os", typ: $funcType([], [$error], false)}, {prop: "kill", name: "kill", pkg: "os", typ: $funcType([], [$error], false)}, {prop: "setDone", name: "setDone", pkg: "os", typ: $funcType([], [], false)}, {prop: "done", name: "done", pkg: "os", typ: $funcType([], [$Bool], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Kill", name: "Kill", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Wait", name: "Wait", pkg: "", typ: $funcType([], [ptrType$10, $error], false)}, {prop: "Signal", name: "Signal", pkg: "", typ: $funcType([Signal], [$error], false)}]; ptrType$17.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Unwrap", name: "Unwrap", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}]; @@ -33310,10 +32455,10 @@ $packages["os"] = (function() { file.init("os", [{prop: "pfd", name: "pfd", embedded: false, exported: false, typ: poll.FD, tag: ""}, {prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "dirinfo", name: "dirinfo", embedded: false, exported: false, typ: ptrType$8, tag: ""}, {prop: "nonblock", name: "nonblock", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "stdoutOrErr", name: "stdoutOrErr", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "appendMode", name: "appendMode", embedded: false, exported: false, typ: $Bool, tag: ""}]); unixDirent.init("os", [{prop: "parent", name: "parent", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: fs.FileMode, tag: ""}, {prop: "info", name: "info", embedded: false, exported: false, typ: fs.FileInfo, tag: ""}]); LinkError.init("", [{prop: "Op", name: "Op", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Old", name: "Old", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "New", name: "New", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Err", name: "Err", embedded: false, exported: true, typ: $error, tag: ""}]); - onlyWriter.init("", [{prop: "Writer", name: "Writer", embedded: true, exported: true, typ: io.Writer, tag: ""}]); + fileWithoutReadFrom.init("", [{prop: "File", name: "File", embedded: true, exported: true, typ: ptrType$2, tag: ""}]); ProcessState.init("os", [{prop: "pid", name: "pid", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "status", name: "status", embedded: false, exported: false, typ: syscall.WaitStatus, tag: ""}, {prop: "rusage", name: "rusage", embedded: false, exported: false, typ: ptrType$12, tag: ""}]); Process.init("os", [{prop: "Pid", name: "Pid", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "handle", name: "handle", embedded: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "isdone", name: "isdone", embedded: false, exported: false, typ: atomic.Bool, tag: ""}, {prop: "sigMu", name: "sigMu", embedded: false, exported: false, typ: sync.RWMutex, tag: ""}]); - ProcAttr.init("", [{prop: "Dir", name: "Dir", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Env", name: "Env", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "Files", name: "Files", embedded: false, exported: true, typ: sliceType$9, tag: ""}, {prop: "Sys", name: "Sys", embedded: false, exported: true, typ: ptrType$15, tag: ""}]); + ProcAttr.init("", [{prop: "Dir", name: "Dir", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Env", name: "Env", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "Files", name: "Files", embedded: false, exported: true, typ: sliceType$8, tag: ""}, {prop: "Sys", name: "Sys", embedded: false, exported: true, typ: ptrType$15, tag: ""}]); Signal.init([{prop: "Signal", name: "Signal", pkg: "", typ: $funcType([], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]); timeout.init([{prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}]); SyscallError.init("", [{prop: "Syscall", name: "Syscall", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Err", name: "Err", embedded: false, exported: true, typ: $error, tag: ""}]); @@ -33348,6 +32493,7 @@ $packages["os"] = (function() { errPatternHasSeparator = errors.New("pattern contains path separator"); errWriteAtInAppendMode = errors.New("os: invalid use of WriteAt on file opened with O_APPEND"); lstat = Lstat; + checkWrapErr = false; $pkg.Kill = new syscall.Signal(3); $pkg.ErrProcessDone = errors.New("os: process already finished"); $pkg.ErrInvalid = fs.ErrInvalid; @@ -33375,7 +32521,7 @@ $packages["os"] = (function() { return $pkg; })(); $packages["fmt"] = (function() { - var $pkg = {}, $init, errors, fmtsort, io, math, os, reflect, sort, strconv, sync, utf8, ScanState, Scanner, stringReader, scanError, ss, ssave, readRune, State, Formatter, Stringer, GoStringer, buffer, pp, fmtFlags, fmt, wrapError, wrapErrors, arrayType, sliceType, sliceType$1, ptrType, ptrType$1, arrayType$1, sliceType$2, ptrType$2, ptrType$3, sliceType$3, ptrType$4, arrayType$2, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, ptrType$11, ptrType$12, ptrType$13, ptrType$14, ptrType$15, ptrType$16, ptrType$17, ptrType$18, ptrType$19, ptrType$20, ptrType$21, ptrType$22, ptrType$23, ptrType$24, arrayType$4, sliceType$4, funcType, ptrType$25, ptrType$26, ptrType$27, ptrType$28, space, ssFree, complexError, boolError, ppFree, Sscan, Fscan, isSpace, notSpace, newScanState, indexRune, hasX, hexDigit, errorHandler, newPrinter, Fprintf, Printf, Sprintf, Appendf, Fprint, Print, Sprint, Fprintln, Println, Sprintln, getField, tooLarge, parsenum, intFromArg, parseArgNumber, Errorf; + var $pkg = {}, $init, errors, fmtsort, io, math, os, reflect, sort, strconv, sync, utf8, ScanState, Scanner, stringReader, scanError, ss, ssave, readRune, State, Formatter, Stringer, GoStringer, buffer, pp, fmtFlags, fmt, wrapError, wrapErrors, arrayType, sliceType, sliceType$1, ptrType, ptrType$1, arrayType$1, sliceType$2, ptrType$2, ptrType$3, sliceType$3, ptrType$4, arrayType$2, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, ptrType$11, ptrType$12, ptrType$13, ptrType$14, ptrType$15, ptrType$16, ptrType$17, ptrType$18, ptrType$19, ptrType$20, ptrType$21, ptrType$22, ptrType$23, ptrType$24, arrayType$4, sliceType$4, funcType, ptrType$25, ptrType$26, ptrType$27, ptrType$28, space, ssFree, errComplex, errBool, ppFree, Sscan, Fscan, isSpace, notSpace, newScanState, indexRune, hasX, hexDigit, errorHandler, newPrinter, Fprintf, Printf, Sprintf, Appendf, Fprint, Print, Sprint, Append, Fprintln, Println, Sprintln, Appendln, getField, tooLarge, parsenum, intFromArg, parseArgNumber, Errorf; errors = $packages["errors"]; fmtsort = $packages["internal/fmtsort"]; io = $packages["io"]; @@ -33559,7 +32705,7 @@ $packages["fmt"] = (function() { arrayType = $arrayType($Uint16, 2); sliceType = $sliceType(arrayType); sliceType$1 = $sliceType($emptyInterface); - ptrType = $ptrType(reflect.rtype); + ptrType = $ptrType($packages["internal/abi"].Type); ptrType$1 = $ptrType(buffer); arrayType$1 = $arrayType($Uint8, 68); sliceType$2 = $sliceType($Int); @@ -33613,7 +32759,7 @@ $packages["fmt"] = (function() { str = [str]; n = 0; err = $ifaceNil; - _r = Fscan(((_ptr = (str.$ptr || (str.$ptr = new ptrType$3(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, str))), new ptrType$2(function() { return _ptr.$get(); }, function($v) { _ptr.$set($v); }, _ptr.$target))), a); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = Fscan(((_ptr = (str.$ptr || (str.$ptr = new ptrType$3(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, str))), new ptrType$2(function() { return _ptr.$get(); }, function($v) { _ptr.$set($v); }, _ptr.$target, _ptr.$index))), a); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; n = _tuple[0]; err = _tuple[1]; @@ -33998,7 +33144,7 @@ $packages["fmt"] = (function() { _r$2; /* break; */ $s = 5; continue; /* } */ case 8: - (s.$ptr_buf || (s.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, s))).writeRune(r); + (s === ptrType$4.nil && $throwNilPointerError(), (s.$ptr_buf || (s.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, s)))).writeRune(r); $s = 4; continue; case 5: $s = -1; return $convertSliceType(s.buf, sliceType$3); @@ -34031,7 +33177,7 @@ $packages["fmt"] = (function() { } if (indexRune(ok, r) >= 0) { if (accept) { - (s.$ptr_buf || (s.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, s))).writeRune(r); + (s === ptrType$4.nil && $throwNilPointerError(), (s.$ptr_buf || (s.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, s)))).writeRune(r); } $s = -1; return true; } @@ -34130,7 +33276,7 @@ $packages["fmt"] = (function() { /* */ if (_v) { $s = 10; continue; } /* */ $s = 11; continue; /* if (_v) { */ case 10: - s.error(boolError); + s.error(errBool); /* } */ case 11: $s = -1; return true; /* } else if ((_1 === (102)) || (_1 === (70))) { */ case 8: @@ -34147,7 +33293,7 @@ $packages["fmt"] = (function() { /* */ if (_v$2) { $s = 17; continue; } /* */ $s = 18; continue; /* if (_v$2) { */ case 17: - s.error(boolError); + s.error(errBool); /* } */ case 18: $s = -1; return false; /* } */ case 9: @@ -34486,7 +33632,7 @@ $packages["fmt"] = (function() { /* */ if (!_r$2) { $s = 3; continue; } /* */ $s = 4; continue; /* if (!_r$2) { */ case 3: - s.error(complexError); + s.error(errComplex); /* } */ case 4: imagSign = ($bytesToString(s.buf)); _r$3 = s.floatToken(); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } @@ -34495,7 +33641,7 @@ $packages["fmt"] = (function() { /* */ if (!_r$4) { $s = 7; continue; } /* */ $s = 8; continue; /* if (!_r$4) { */ case 7: - s.error(complexError); + s.error(errComplex); /* } */ case 8: if (!(parens)) { _v = false; $s = 12; continue s; } _r$5 = s.accept(")"); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } @@ -34503,7 +33649,7 @@ $packages["fmt"] = (function() { /* */ if (_v) { $s = 10; continue; } /* */ $s = 11; continue; /* if (_v) { */ case 10: - s.error(complexError); + s.error(errComplex); /* } */ case 11: _tmp = real; _tmp$1 = imagSign + imag; @@ -34630,22 +33776,22 @@ $packages["fmt"] = (function() { if (r === quote) { /* break; */ $s = 9; continue; } - (s.$ptr_buf || (s.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, s))).writeRune(r); + (s === ptrType$4.nil && $throwNilPointerError(), (s.$ptr_buf || (s.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, s)))).writeRune(r); $s = 8; continue; case 9: $s = -1; return ($bytesToString(s.buf)); /* } else if (_1 === (34)) { */ case 5: - (s.$ptr_buf || (s.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, s))).writeByte(34); + (s === ptrType$4.nil && $throwNilPointerError(), (s.$ptr_buf || (s.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, s)))).writeByte(34); /* while (true) { */ case 11: _r$2 = s.mustReadRune(); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } r$1 = _r$2; - (s.$ptr_buf || (s.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, s))).writeRune(r$1); + (s === ptrType$4.nil && $throwNilPointerError(), (s.$ptr_buf || (s.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, s)))).writeRune(r$1); /* */ if (r$1 === 92) { $s = 14; continue; } /* */ if (r$1 === 34) { $s = 15; continue; } /* */ $s = 16; continue; /* if (r$1 === 92) { */ case 14: _r$3 = s.mustReadRune(); /* */ $s = 17; case 17: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $r = (s.$ptr_buf || (s.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, s))).writeRune(_r$3); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = (s === ptrType$4.nil && $throwNilPointerError(), (s.$ptr_buf || (s.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, s)))).writeRune(_r$3); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 16; continue; /* } else if (r$1 === 34) { */ case 15: /* break; */ $s = 12; continue; @@ -34729,7 +33875,7 @@ $packages["fmt"] = (function() { if (!ok) { /* break; */ $s = 3; continue; } - (s.$ptr_buf || (s.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, s))).writeByte(b); + (s === ptrType$4.nil && $throwNilPointerError(), (s.$ptr_buf || (s.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, s)))).writeByte(b); $s = 2; continue; case 3: if (s.buf.$length === 0) { @@ -34740,7 +33886,7 @@ $packages["fmt"] = (function() { /* */ } return; } var $f = {$blk: hexString, $c: true, $r, _r, _tuple, b, ok, s, $s};return $f; }; $ptrType(ss).prototype.scanOne = function scanOne(verb, arg) { - var {_1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, arg, err, i, ok, ptr, s, str, typ, v, v$1, v$10, v$11, v$12, v$13, v$14, v$15, v$16, v$17, v$18, v$19, v$2, v$20, v$3, v$4, v$5, v$6, v$7, v$8, v$9, val, verb, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {verb, arg}); + var {_1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, arg, err, i, ok, ptr, s, str, typ, v, v$1, v$10, v$11, v$12, v$13, v$14, v$15, v$16, v$17, v$18, v$19, v$2, v$20, v$3, v$4, v$5, v$6, v$7, v$8, v$9, val, verb, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {verb, arg}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: s = this; s.buf = $subslice(s.buf, 0, 0); @@ -34887,97 +34033,93 @@ $packages["fmt"] = (function() { $s = 23; continue; /* } else { */ case 22: v$19 = _ref; - _r$21 = reflect.ValueOf(v$19); /* */ $s = 52; case 52: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } - val = _r$21; + val = reflect.ValueOf(v$19); ptr = val; - /* */ if (!(($clone(ptr, reflect.Value).Kind() === 22))) { $s = 53; continue; } - /* */ $s = 54; continue; - /* if (!(($clone(ptr, reflect.Value).Kind() === 22))) { */ case 53: - _r$22 = $clone(val, reflect.Value).Type().String(); /* */ $s = 55; case 55: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - $r = s.errorString("type not a pointer: " + _r$22); /* */ $s = 56; case 56: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!(($clone(ptr, reflect.Value).Kind() === 22))) { $s = 52; continue; } + /* */ $s = 53; continue; + /* if (!(($clone(ptr, reflect.Value).Kind() === 22))) { */ case 52: + _r$21 = $clone(val, reflect.Value).Type().String(); /* */ $s = 54; case 54: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + $r = s.errorString("type not a pointer: " + _r$21); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* } */ case 54: - _r$23 = $clone(ptr, reflect.Value).Elem(); /* */ $s = 58; case 58: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - v$20 = _r$23; + /* } */ case 53: + v$20 = $clone(ptr, reflect.Value).Elem(); _1 = $clone(v$20, reflect.Value).Kind(); - /* */ if (_1 === (1)) { $s = 59; continue; } - /* */ if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { $s = 60; continue; } - /* */ if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { $s = 61; continue; } - /* */ if (_1 === (24)) { $s = 62; continue; } - /* */ if (_1 === (23)) { $s = 63; continue; } - /* */ if ((_1 === (13)) || (_1 === (14))) { $s = 64; continue; } - /* */ if ((_1 === (15)) || (_1 === (16))) { $s = 65; continue; } - /* */ $s = 66; continue; - /* if (_1 === (1)) { */ case 59: - _r$24 = s.scanBool(verb); /* */ $s = 68; case 68: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - $r = $clone(v$20, reflect.Value).SetBool(_r$24); /* */ $s = 69; case 69: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 67; continue; - /* } else if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { */ case 60: + /* */ if (_1 === (1)) { $s = 57; continue; } + /* */ if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { $s = 58; continue; } + /* */ if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { $s = 59; continue; } + /* */ if (_1 === (24)) { $s = 60; continue; } + /* */ if (_1 === (23)) { $s = 61; continue; } + /* */ if ((_1 === (13)) || (_1 === (14))) { $s = 62; continue; } + /* */ if ((_1 === (15)) || (_1 === (16))) { $s = 63; continue; } + /* */ $s = 64; continue; + /* if (_1 === (1)) { */ case 57: + _r$22 = s.scanBool(verb); /* */ $s = 66; case 66: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + $r = $clone(v$20, reflect.Value).SetBool(_r$22); /* */ $s = 67; case 67: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 65; continue; + /* } else if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { */ case 58: _arg = verb; - _r$25 = $clone(v$20, reflect.Value).Type().Bits(); /* */ $s = 70; case 70: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - _arg$1 = _r$25; - _r$26 = s.scanInt(_arg, _arg$1); /* */ $s = 71; case 71: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - $r = $clone(v$20, reflect.Value).SetInt(_r$26); /* */ $s = 72; case 72: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 67; continue; - /* } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { */ case 61: + _r$23 = $clone(v$20, reflect.Value).Type().Bits(); /* */ $s = 68; case 68: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + _arg$1 = _r$23; + _r$24 = s.scanInt(_arg, _arg$1); /* */ $s = 69; case 69: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + $r = $clone(v$20, reflect.Value).SetInt(_r$24); /* */ $s = 70; case 70: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 65; continue; + /* } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { */ case 59: _arg$2 = verb; - _r$27 = $clone(v$20, reflect.Value).Type().Bits(); /* */ $s = 73; case 73: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - _arg$3 = _r$27; - _r$28 = s.scanUint(_arg$2, _arg$3); /* */ $s = 74; case 74: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - $r = $clone(v$20, reflect.Value).SetUint(_r$28); /* */ $s = 75; case 75: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 67; continue; - /* } else if (_1 === (24)) { */ case 62: - _r$29 = s.convertString(verb); /* */ $s = 76; case 76: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } - $r = $clone(v$20, reflect.Value).SetString(_r$29); /* */ $s = 77; case 77: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 67; continue; - /* } else if (_1 === (23)) { */ case 63: + _r$25 = $clone(v$20, reflect.Value).Type().Bits(); /* */ $s = 71; case 71: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _arg$3 = _r$25; + _r$26 = s.scanUint(_arg$2, _arg$3); /* */ $s = 72; case 72: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + $r = $clone(v$20, reflect.Value).SetUint(_r$26); /* */ $s = 73; case 73: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 65; continue; + /* } else if (_1 === (24)) { */ case 60: + _r$27 = s.convertString(verb); /* */ $s = 74; case 74: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + $r = $clone(v$20, reflect.Value).SetString(_r$27); /* */ $s = 75; case 75: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 65; continue; + /* } else if (_1 === (23)) { */ case 61: typ = $clone(v$20, reflect.Value).Type(); - _r$30 = typ.Elem(); /* */ $s = 80; case 80: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } - _r$31 = _r$30.Kind(); /* */ $s = 81; case 81: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } - /* */ if (!((_r$31 === 8))) { $s = 78; continue; } - /* */ $s = 79; continue; - /* if (!((_r$31 === 8))) { */ case 78: - _r$32 = $clone(val, reflect.Value).Type().String(); /* */ $s = 82; case 82: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } - $r = s.errorString("can't scan type: " + _r$32); /* */ $s = 83; case 83: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 79: - _r$33 = s.convertString(verb); /* */ $s = 84; case 84: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } - str = _r$33; - _r$34 = reflect.MakeSlice(typ, str.length, str.length); /* */ $s = 85; case 85: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } - $r = $clone(v$20, reflect.Value).Set($clone(_r$34, reflect.Value)); /* */ $s = 86; case 86: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$28 = typ.Elem(); /* */ $s = 78; case 78: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + _r$29 = _r$28.Kind(); /* */ $s = 79; case 79: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + /* */ if (!((_r$29 === 8))) { $s = 76; continue; } + /* */ $s = 77; continue; + /* if (!((_r$29 === 8))) { */ case 76: + _r$30 = $clone(val, reflect.Value).Type().String(); /* */ $s = 80; case 80: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } + $r = s.errorString("can't scan type: " + _r$30); /* */ $s = 81; case 81: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 77: + _r$31 = s.convertString(verb); /* */ $s = 82; case 82: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } + str = _r$31; + _r$32 = reflect.MakeSlice(typ, str.length, str.length); /* */ $s = 83; case 83: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } + $r = $clone(v$20, reflect.Value).Set($clone(_r$32, reflect.Value)); /* */ $s = 84; case 84: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } i = 0; - /* while (true) { */ case 87: - /* if (!(i < str.length)) { break; } */ if(!(i < str.length)) { $s = 88; continue; } - _r$35 = $clone(v$20, reflect.Value).Index(i); /* */ $s = 89; case 89: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } - $r = $clone(_r$35, reflect.Value).SetUint((new $Uint64(0, str.charCodeAt(i)))); /* */ $s = 90; case 90: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + while (true) { + if (!(i < str.length)) { break; } + $clone($clone(v$20, reflect.Value).Index(i), reflect.Value).SetUint((new $Uint64(0, str.charCodeAt(i)))); i = i + (1) >> 0; - $s = 87; continue; - case 88: - $s = 67; continue; - /* } else if ((_1 === (13)) || (_1 === (14))) { */ case 64: - $r = s.SkipSpace(); /* */ $s = 91; case 91: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = s.notEOF(); /* */ $s = 92; case 92: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$36 = s.floatToken(); /* */ $s = 93; case 93: if($c) { $c = false; _r$36 = _r$36.$blk(); } if (_r$36 && _r$36.$blk !== undefined) { break s; } - _arg$4 = _r$36; - _r$37 = $clone(v$20, reflect.Value).Type().Bits(); /* */ $s = 94; case 94: if($c) { $c = false; _r$37 = _r$37.$blk(); } if (_r$37 && _r$37.$blk !== undefined) { break s; } - _arg$5 = _r$37; - _r$38 = s.convertFloat(_arg$4, _arg$5); /* */ $s = 95; case 95: if($c) { $c = false; _r$38 = _r$38.$blk(); } if (_r$38 && _r$38.$blk !== undefined) { break s; } - $r = $clone(v$20, reflect.Value).SetFloat(_r$38); /* */ $s = 96; case 96: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 67; continue; - /* } else if ((_1 === (15)) || (_1 === (16))) { */ case 65: + } + $s = 65; continue; + /* } else if ((_1 === (13)) || (_1 === (14))) { */ case 62: + $r = s.SkipSpace(); /* */ $s = 85; case 85: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = s.notEOF(); /* */ $s = 86; case 86: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$33 = s.floatToken(); /* */ $s = 87; case 87: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } + _arg$4 = _r$33; + _r$34 = $clone(v$20, reflect.Value).Type().Bits(); /* */ $s = 88; case 88: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } + _arg$5 = _r$34; + _r$35 = s.convertFloat(_arg$4, _arg$5); /* */ $s = 89; case 89: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } + $r = $clone(v$20, reflect.Value).SetFloat(_r$35); /* */ $s = 90; case 90: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 65; continue; + /* } else if ((_1 === (15)) || (_1 === (16))) { */ case 63: _arg$6 = verb; - _r$39 = $clone(v$20, reflect.Value).Type().Bits(); /* */ $s = 97; case 97: if($c) { $c = false; _r$39 = _r$39.$blk(); } if (_r$39 && _r$39.$blk !== undefined) { break s; } - _arg$7 = _r$39; - _r$40 = s.scanComplex(_arg$6, _arg$7); /* */ $s = 98; case 98: if($c) { $c = false; _r$40 = _r$40.$blk(); } if (_r$40 && _r$40.$blk !== undefined) { break s; } - $r = $clone(v$20, reflect.Value).SetComplex(_r$40); /* */ $s = 99; case 99: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 67; continue; - /* } else { */ case 66: - _r$41 = $clone(val, reflect.Value).Type().String(); /* */ $s = 100; case 100: if($c) { $c = false; _r$41 = _r$41.$blk(); } if (_r$41 && _r$41.$blk !== undefined) { break s; } - $r = s.errorString("can't scan type: " + _r$41); /* */ $s = 101; case 101: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 67: - case 57: + _r$36 = $clone(v$20, reflect.Value).Type().Bits(); /* */ $s = 91; case 91: if($c) { $c = false; _r$36 = _r$36.$blk(); } if (_r$36 && _r$36.$blk !== undefined) { break s; } + _arg$7 = _r$36; + _r$37 = s.scanComplex(_arg$6, _arg$7); /* */ $s = 92; case 92: if($c) { $c = false; _r$37 = _r$37.$blk(); } if (_r$37 && _r$37.$blk !== undefined) { break s; } + $r = $clone(v$20, reflect.Value).SetComplex(_r$37); /* */ $s = 93; case 93: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 65; continue; + /* } else { */ case 64: + _r$38 = $clone(val, reflect.Value).Type().String(); /* */ $s = 94; case 94: if($c) { $c = false; _r$38 = _r$38.$blk(); } if (_r$38 && _r$38.$blk !== undefined) { break s; } + $r = s.errorString("can't scan type: " + _r$38); /* */ $s = 95; case 95: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 65: + case 56: /* } */ case 23: $s = -1; return; - /* */ } return; } var $f = {$blk: scanOne, $c: true, $r, _1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, arg, err, i, ok, ptr, s, str, typ, v, v$1, v$10, v$11, v$12, v$13, v$14, v$15, v$16, v$17, v$18, v$19, v$2, v$20, v$3, v$4, v$5, v$6, v$7, v$8, v$9, val, verb, x, x$1, x$2, x$3, x$4, $s};return $f; + /* */ } return; } var $f = {$blk: scanOne, $c: true, $r, _1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, arg, err, i, ok, ptr, s, str, typ, v, v$1, v$10, v$11, v$12, v$13, v$14, v$15, v$16, v$17, v$18, v$19, v$2, v$20, v$3, v$4, v$5, v$6, v$7, v$8, v$9, val, verb, x, x$1, x$2, x$3, x$4, $s};return $f; }; errorHandler = function errorHandler$1(errp) { var _tuple, _tuple$1, e, eof, errp, ok, ok$1, se; @@ -35065,7 +34207,7 @@ $packages["fmt"] = (function() { p.panicking = false; p.erroring = false; p.wrapErrs = false; - p.fmt.init((p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))); + p.fmt.init((p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))))); $s = -1; return p; /* */ } return; } var $f = {$blk: newPrinter$1, $c: true, $r, _r, p, $s};return $f; }; @@ -35129,7 +34271,7 @@ $packages["fmt"] = (function() { ret = 0; err = $ifaceNil; p = this; - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).write(b); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).write(b); _tmp = b.$length; _tmp$1 = $ifaceNil; ret = _tmp; @@ -35141,7 +34283,7 @@ $packages["fmt"] = (function() { ret = 0; err = $ifaceNil; p = this; - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(s); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(s); _tmp = s.length; _tmp$1 = $ifaceNil; ret = _tmp; @@ -35246,6 +34388,18 @@ $packages["fmt"] = (function() { /* */ } return; } var $f = {$blk: Sprint$1, $c: true, $r, _r, a, p, s, $s};return $f; }; $pkg.Sprint = Sprint; + Append = function Append$1(b, a) { + var {_r, a, b, p, $s, $r, $c} = $restore(this, {b, a}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = newPrinter(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + p = _r; + $r = p.doPrint(a); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + b = $appendSlice(b, $convertSliceType(p.buf, sliceType$3)); + p.free(); + $s = -1; return b; + /* */ } return; } var $f = {$blk: Append$1, $c: true, $r, _r, a, b, p, $s};return $f; + }; + $pkg.Append = Append; Fprintln = function Fprintln$1(w, a) { var {_r, _r$1, _tuple, a, err, n, p, w, $s, $r, $c} = $restore(this, {w, a}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: @@ -35289,19 +34443,25 @@ $packages["fmt"] = (function() { /* */ } return; } var $f = {$blk: Sprintln$1, $c: true, $r, _r, a, p, s, $s};return $f; }; $pkg.Sprintln = Sprintln; - getField = function getField$1(v, i) { - var {_r, _r$1, i, v, val, $s, $r, $c} = $restore(this, {v, i}); + Appendln = function Appendln$1(b, a) { + var {_r, a, b, p, $s, $r, $c} = $restore(this, {b, a}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = $clone(v, reflect.Value).Field(i); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - val = _r; - /* */ if (($clone(val, reflect.Value).Kind() === 20) && !$clone(val, reflect.Value).IsNil()) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (($clone(val, reflect.Value).Kind() === 20) && !$clone(val, reflect.Value).IsNil()) { */ case 2: - _r$1 = $clone(val, reflect.Value).Elem(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - val = _r$1; - /* } */ case 3: - $s = -1; return val; - /* */ } return; } var $f = {$blk: getField$1, $c: true, $r, _r, _r$1, i, v, val, $s};return $f; + _r = newPrinter(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + p = _r; + $r = p.doPrintln(a); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + b = $appendSlice(b, $convertSliceType(p.buf, sliceType$3)); + p.free(); + $s = -1; return b; + /* */ } return; } var $f = {$blk: Appendln$1, $c: true, $r, _r, a, b, p, $s};return $f; + }; + $pkg.Appendln = Appendln; + getField = function getField$1(v, i) { + var i, v, val; + val = $clone(v, reflect.Value).Field(i); + if (($clone(val, reflect.Value).Kind() === 20) && !$clone(val, reflect.Value).IsNil()) { + val = $clone(val, reflect.Value).Elem(); + } + return val; }; tooLarge = function tooLarge$1(x) { var x; @@ -35344,13 +34504,13 @@ $packages["fmt"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; if (!$clone(v, reflect.Value).IsValid()) { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(""); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(""); $s = -1; return; } - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(63); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(63); _r = $clone(v, reflect.Value).Type().String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(_r); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(63); + $r = (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(_r); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(63); $s = -1; return; /* */ } return; } var $f = {$blk: unknownType, $c: true, $r, _r, p, v, $s};return $f; }; @@ -35359,29 +34519,29 @@ $packages["fmt"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; p.erroring = true; - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("%!"); - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeRune(verb); - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(40); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString("%!"); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeRune(verb); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(40); /* */ if (!($interfaceIsEqual(p.arg, $ifaceNil))) { $s = 2; continue; } /* */ if ($clone(p.value, reflect.Value).IsValid()) { $s = 3; continue; } /* */ $s = 4; continue; /* if (!($interfaceIsEqual(p.arg, $ifaceNil))) { */ case 2: _r = reflect.TypeOf(p.arg).String(); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(_r); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(61); + $r = (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(_r); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(61); $r = p.printArg(p.arg, 118); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 5; continue; /* } else if ($clone(p.value, reflect.Value).IsValid()) { */ case 3: _r$1 = $clone(p.value, reflect.Value).Type().String(); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(_r$1); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(61); + $r = (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(_r$1); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(61); $r = p.printValue($clone(p.value, reflect.Value), 118, 0); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 5; continue; /* } else { */ case 4: - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(""); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(""); /* } */ case 5: case 1: - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(41); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(41); p.erroring = false; $s = -1; return; /* */ } return; } var $f = {$blk: badVerb, $c: true, $r, _r, _r$1, p, verb, $s};return $f; @@ -35502,11 +34662,11 @@ $packages["fmt"] = (function() { /* */ $s = 3; continue; /* if ((_1 === (118)) || (_1 === (98)) || (_1 === (103)) || (_1 === (71)) || (_1 === (120)) || (_1 === (88)) || (_1 === (102)) || (_1 === (70)) || (_1 === (101)) || (_1 === (69))) { */ case 2: oldPlus = p.fmt.fmtFlags.plus; - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(40); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(40); $r = p.fmtFloat(v.$real, (_q = size / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), verb); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } p.fmt.fmtFlags.plus = true; $r = p.fmtFloat(v.$imag, (_q$1 = size / 2, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")), verb); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("i)"); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString("i)"); p.fmt.fmtFlags.plus = oldPlus; $s = 4; continue; /* } else { */ case 3: @@ -35554,7 +34714,7 @@ $packages["fmt"] = (function() { /* */ } return; } var $f = {$blk: fmtString, $c: true, $r, _1, p, v, verb, $s};return $f; }; $ptrType(pp).prototype.fmtBytes = function fmtBytes(v, verb, typeString) { - var {_1, _i, _i$1, _r, _ref, _ref$1, c, c$1, i, i$1, p, typeString, v, verb, $s, $r, $c} = $restore(this, {v, verb, typeString}); + var {_1, _i, _i$1, _ref, _ref$1, c, c$1, i, i$1, p, typeString, v, verb, $s, $r, $c} = $restore(this, {v, verb, typeString}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; _1 = verb; @@ -35566,12 +34726,12 @@ $packages["fmt"] = (function() { /* */ $s = 7; continue; /* if ((_1 === (118)) || (_1 === (100))) { */ case 2: if (p.fmt.fmtFlags.sharpV) { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(typeString); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(typeString); if (v === sliceType$3.nil) { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("(nil)"); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString("(nil)"); $s = -1; return; } - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(123); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(123); _ref = v; _i = 0; while (true) { @@ -35579,14 +34739,14 @@ $packages["fmt"] = (function() { i = _i; c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); if (i > 0) { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(", "); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(", "); } p.fmt0x64((new $Uint64(0, c)), true); _i++; } - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(125); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(125); } else { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(91); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(91); _ref$1 = v; _i$1 = 0; while (true) { @@ -35594,12 +34754,12 @@ $packages["fmt"] = (function() { i$1 = _i$1; c$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); if (i$1 > 0) { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(32); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(32); } p.fmt.fmtInteger((new $Uint64(0, c$1)), 10, false, verb, "0123456789abcdefx"); _i$1++; } - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(93); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(93); } $s = 8; continue; /* } else if (_1 === (115)) { */ case 3: @@ -35615,12 +34775,11 @@ $packages["fmt"] = (function() { p.fmt.fmtQ(($bytesToString(v))); $s = 8; continue; /* } else { */ case 7: - _r = reflect.ValueOf(v); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $r = p.printValue($clone(_r, reflect.Value), verb, 0); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.printValue($clone(reflect.ValueOf(v), reflect.Value), verb, 0); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 8: case 1: $s = -1; return; - /* */ } return; } var $f = {$blk: fmtBytes, $c: true, $r, _1, _i, _i$1, _r, _ref, _ref$1, c, c$1, i, i$1, p, typeString, v, verb, $s};return $f; + /* */ } return; } var $f = {$blk: fmtBytes, $c: true, $r, _1, _i, _i$1, _ref, _ref$1, c, c$1, i, i$1, p, typeString, v, verb, $s};return $f; }; $ptrType(pp).prototype.fmtPointer = function fmtPointer(value, verb) { var {_1, _2, _r, p, u, value, verb, $s, $r, $c} = $restore(this, {value, verb}); @@ -35647,16 +34806,16 @@ $packages["fmt"] = (function() { /* */ if (p.fmt.fmtFlags.sharpV) { $s = 12; continue; } /* */ $s = 13; continue; /* if (p.fmt.fmtFlags.sharpV) { */ case 12: - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(40); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(40); _r = $clone(value, reflect.Value).Type().String(); /* */ $s = 15; case 15: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(_r); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(")("); + $r = (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(_r); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(")("); if (u === 0) { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("nil"); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString("nil"); } else { p.fmt0x64((new $Uint64(0, u.constructor === Number ? u : 1)), true); } - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(41); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(41); $s = 14; continue; /* } else { */ case 13: if (u === 0) { @@ -35680,17 +34839,16 @@ $packages["fmt"] = (function() { /* */ } return; } var $f = {$blk: fmtPointer, $c: true, $r, _1, _2, _r, p, u, value, verb, $s};return $f; }; $ptrType(pp).prototype.catchPanic = function catchPanic(arg, verb, method) { - var {_r, arg, err, method, oldFlags, p, v, verb, $s, $r, $c} = $restore(this, {arg, verb, method}); + var {arg, err, method, oldFlags, p, v, verb, $s, $r, $c} = $restore(this, {arg, verb, method}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; err = $recover(); /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 1: - _r = reflect.ValueOf(arg); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - v = _r; + v = reflect.ValueOf(arg); if (($clone(v, reflect.Value).Kind() === 22) && $clone(v, reflect.Value).IsNil()) { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(""); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(""); $s = -1; return; } if (p.panicking) { @@ -35698,19 +34856,19 @@ $packages["fmt"] = (function() { } oldFlags = $clone(p.fmt.fmtFlags, fmtFlags); p.fmt.clearflags(); - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("%!"); - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeRune(verb); - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("(PANIC="); - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(method); - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(" method: "); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString("%!"); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeRune(verb); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString("(PANIC="); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(method); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(" method: "); p.panicking = true; - $r = p.printArg(err, 118); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.printArg(err, 118); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } p.panicking = false; - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(41); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(41); fmtFlags.copy(p.fmt.fmtFlags, oldFlags); /* } */ case 2: $s = -1; return; - /* */ } return; } var $f = {$blk: catchPanic, $c: true, $r, _r, arg, err, method, oldFlags, p, v, verb, $s};return $f; + /* */ } return; } var $f = {$blk: catchPanic, $c: true, $r, arg, err, method, oldFlags, p, v, verb, $s};return $f; }; $ptrType(pp).prototype.handleMethods = function handleMethods(verb) { var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, _1, _r, _r$1, _r$2, _ref, _tuple, _tuple$1, _tuple$2, formatter, handled, ok, ok$1, ok$2, p, stringer, v, v$1, verb, $s, $deferred, $r, $c} = $restore(this, {verb}); @@ -35798,7 +34956,7 @@ $packages["fmt"] = (function() { /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return handled; } if($curGoroutine.asleep) { var $f = {$blk: handleMethods, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, _1, _r, _r$1, _r$2, _ref, _tuple, _tuple$1, _tuple$2, formatter, handled, ok, ok$1, ok$2, p, stringer, v, v$1, verb, $s, $deferred};return $f; } } }; $ptrType(pp).prototype.printArg = function printArg(arg, verb) { - var {_1, _2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, arg, f, f$1, f$10, f$11, f$12, f$13, f$14, f$15, f$16, f$17, f$18, f$19, f$2, f$3, f$4, f$5, f$6, f$7, f$8, f$9, p, verb, $s, $r, $c} = $restore(this, {arg, verb}); + var {_1, _2, _r, _r$1, _r$2, _r$3, _ref, arg, f, f$1, f$10, f$11, f$12, f$13, f$14, f$15, f$16, f$17, f$18, f$19, f$2, f$3, f$4, f$5, f$6, f$7, f$8, f$9, p, verb, $s, $r, $c} = $restore(this, {arg, verb}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; p.arg = arg; @@ -35827,135 +34985,133 @@ $packages["fmt"] = (function() { $r = p.fmt.fmtS(_r); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* } else if (_2 === (112)) { */ case 10: - _r$1 = reflect.ValueOf(arg); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $r = p.fmtPointer($clone(_r$1, reflect.Value), 112); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.fmtPointer($clone(reflect.ValueOf(arg), reflect.Value), 112); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* } */ case 11: case 8: _ref = arg; - /* */ if ($assertType(_ref, $Bool, true)[1]) { $s = 16; continue; } - /* */ if ($assertType(_ref, $Float32, true)[1]) { $s = 17; continue; } - /* */ if ($assertType(_ref, $Float64, true)[1]) { $s = 18; continue; } - /* */ if ($assertType(_ref, $Complex64, true)[1]) { $s = 19; continue; } - /* */ if ($assertType(_ref, $Complex128, true)[1]) { $s = 20; continue; } - /* */ if ($assertType(_ref, $Int, true)[1]) { $s = 21; continue; } - /* */ if ($assertType(_ref, $Int8, true)[1]) { $s = 22; continue; } - /* */ if ($assertType(_ref, $Int16, true)[1]) { $s = 23; continue; } - /* */ if ($assertType(_ref, $Int32, true)[1]) { $s = 24; continue; } - /* */ if ($assertType(_ref, $Int64, true)[1]) { $s = 25; continue; } - /* */ if ($assertType(_ref, $Uint, true)[1]) { $s = 26; continue; } - /* */ if ($assertType(_ref, $Uint8, true)[1]) { $s = 27; continue; } - /* */ if ($assertType(_ref, $Uint16, true)[1]) { $s = 28; continue; } - /* */ if ($assertType(_ref, $Uint32, true)[1]) { $s = 29; continue; } - /* */ if ($assertType(_ref, $Uint64, true)[1]) { $s = 30; continue; } - /* */ if ($assertType(_ref, $Uintptr, true)[1]) { $s = 31; continue; } - /* */ if ($assertType(_ref, $String, true)[1]) { $s = 32; continue; } - /* */ if ($assertType(_ref, sliceType$3, true)[1]) { $s = 33; continue; } - /* */ if ($assertType(_ref, reflect.Value, true)[1]) { $s = 34; continue; } - /* */ $s = 35; continue; - /* if ($assertType(_ref, $Bool, true)[1]) { */ case 16: + /* */ if ($assertType(_ref, $Bool, true)[1]) { $s = 15; continue; } + /* */ if ($assertType(_ref, $Float32, true)[1]) { $s = 16; continue; } + /* */ if ($assertType(_ref, $Float64, true)[1]) { $s = 17; continue; } + /* */ if ($assertType(_ref, $Complex64, true)[1]) { $s = 18; continue; } + /* */ if ($assertType(_ref, $Complex128, true)[1]) { $s = 19; continue; } + /* */ if ($assertType(_ref, $Int, true)[1]) { $s = 20; continue; } + /* */ if ($assertType(_ref, $Int8, true)[1]) { $s = 21; continue; } + /* */ if ($assertType(_ref, $Int16, true)[1]) { $s = 22; continue; } + /* */ if ($assertType(_ref, $Int32, true)[1]) { $s = 23; continue; } + /* */ if ($assertType(_ref, $Int64, true)[1]) { $s = 24; continue; } + /* */ if ($assertType(_ref, $Uint, true)[1]) { $s = 25; continue; } + /* */ if ($assertType(_ref, $Uint8, true)[1]) { $s = 26; continue; } + /* */ if ($assertType(_ref, $Uint16, true)[1]) { $s = 27; continue; } + /* */ if ($assertType(_ref, $Uint32, true)[1]) { $s = 28; continue; } + /* */ if ($assertType(_ref, $Uint64, true)[1]) { $s = 29; continue; } + /* */ if ($assertType(_ref, $Uintptr, true)[1]) { $s = 30; continue; } + /* */ if ($assertType(_ref, $String, true)[1]) { $s = 31; continue; } + /* */ if ($assertType(_ref, sliceType$3, true)[1]) { $s = 32; continue; } + /* */ if ($assertType(_ref, reflect.Value, true)[1]) { $s = 33; continue; } + /* */ $s = 34; continue; + /* if ($assertType(_ref, $Bool, true)[1]) { */ case 15: f = _ref.$val; - $r = p.fmtBool(f, verb); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 36; continue; - /* } else if ($assertType(_ref, $Float32, true)[1]) { */ case 17: + $r = p.fmtBool(f, verb); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 35; continue; + /* } else if ($assertType(_ref, $Float32, true)[1]) { */ case 16: f$1 = _ref.$val; - $r = p.fmtFloat((f$1), 32, verb); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 36; continue; - /* } else if ($assertType(_ref, $Float64, true)[1]) { */ case 18: + $r = p.fmtFloat((f$1), 32, verb); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 35; continue; + /* } else if ($assertType(_ref, $Float64, true)[1]) { */ case 17: f$2 = _ref.$val; - $r = p.fmtFloat(f$2, 64, verb); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 36; continue; - /* } else if ($assertType(_ref, $Complex64, true)[1]) { */ case 19: + $r = p.fmtFloat(f$2, 64, verb); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 35; continue; + /* } else if ($assertType(_ref, $Complex64, true)[1]) { */ case 18: f$3 = _ref.$val; - $r = p.fmtComplex((new $Complex128(f$3.$real, f$3.$imag)), 64, verb); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 36; continue; - /* } else if ($assertType(_ref, $Complex128, true)[1]) { */ case 20: + $r = p.fmtComplex((new $Complex128(f$3.$real, f$3.$imag)), 64, verb); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 35; continue; + /* } else if ($assertType(_ref, $Complex128, true)[1]) { */ case 19: f$4 = _ref.$val; - $r = p.fmtComplex(f$4, 128, verb); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 36; continue; - /* } else if ($assertType(_ref, $Int, true)[1]) { */ case 21: + $r = p.fmtComplex(f$4, 128, verb); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 35; continue; + /* } else if ($assertType(_ref, $Int, true)[1]) { */ case 20: f$5 = _ref.$val; - $r = p.fmtInteger((new $Uint64(0, f$5)), true, verb); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 36; continue; - /* } else if ($assertType(_ref, $Int8, true)[1]) { */ case 22: + $r = p.fmtInteger((new $Uint64(0, f$5)), true, verb); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 35; continue; + /* } else if ($assertType(_ref, $Int8, true)[1]) { */ case 21: f$6 = _ref.$val; - $r = p.fmtInteger((new $Uint64(0, f$6)), true, verb); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 36; continue; - /* } else if ($assertType(_ref, $Int16, true)[1]) { */ case 23: + $r = p.fmtInteger((new $Uint64(0, f$6)), true, verb); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 35; continue; + /* } else if ($assertType(_ref, $Int16, true)[1]) { */ case 22: f$7 = _ref.$val; - $r = p.fmtInteger((new $Uint64(0, f$7)), true, verb); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 36; continue; - /* } else if ($assertType(_ref, $Int32, true)[1]) { */ case 24: + $r = p.fmtInteger((new $Uint64(0, f$7)), true, verb); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 35; continue; + /* } else if ($assertType(_ref, $Int32, true)[1]) { */ case 23: f$8 = _ref.$val; - $r = p.fmtInteger((new $Uint64(0, f$8)), true, verb); /* */ $s = 45; case 45: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 36; continue; - /* } else if ($assertType(_ref, $Int64, true)[1]) { */ case 25: + $r = p.fmtInteger((new $Uint64(0, f$8)), true, verb); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 35; continue; + /* } else if ($assertType(_ref, $Int64, true)[1]) { */ case 24: f$9 = _ref.$val; - $r = p.fmtInteger((new $Uint64(f$9.$high, f$9.$low)), true, verb); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 36; continue; - /* } else if ($assertType(_ref, $Uint, true)[1]) { */ case 26: + $r = p.fmtInteger((new $Uint64(f$9.$high, f$9.$low)), true, verb); /* */ $s = 45; case 45: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 35; continue; + /* } else if ($assertType(_ref, $Uint, true)[1]) { */ case 25: f$10 = _ref.$val; - $r = p.fmtInteger((new $Uint64(0, f$10)), false, verb); /* */ $s = 47; case 47: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 36; continue; - /* } else if ($assertType(_ref, $Uint8, true)[1]) { */ case 27: + $r = p.fmtInteger((new $Uint64(0, f$10)), false, verb); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 35; continue; + /* } else if ($assertType(_ref, $Uint8, true)[1]) { */ case 26: f$11 = _ref.$val; - $r = p.fmtInteger((new $Uint64(0, f$11)), false, verb); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 36; continue; - /* } else if ($assertType(_ref, $Uint16, true)[1]) { */ case 28: + $r = p.fmtInteger((new $Uint64(0, f$11)), false, verb); /* */ $s = 47; case 47: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 35; continue; + /* } else if ($assertType(_ref, $Uint16, true)[1]) { */ case 27: f$12 = _ref.$val; - $r = p.fmtInteger((new $Uint64(0, f$12)), false, verb); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 36; continue; - /* } else if ($assertType(_ref, $Uint32, true)[1]) { */ case 29: + $r = p.fmtInteger((new $Uint64(0, f$12)), false, verb); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 35; continue; + /* } else if ($assertType(_ref, $Uint32, true)[1]) { */ case 28: f$13 = _ref.$val; - $r = p.fmtInteger((new $Uint64(0, f$13)), false, verb); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 36; continue; - /* } else if ($assertType(_ref, $Uint64, true)[1]) { */ case 30: + $r = p.fmtInteger((new $Uint64(0, f$13)), false, verb); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 35; continue; + /* } else if ($assertType(_ref, $Uint64, true)[1]) { */ case 29: f$14 = _ref.$val; - $r = p.fmtInteger(f$14, false, verb); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 36; continue; - /* } else if ($assertType(_ref, $Uintptr, true)[1]) { */ case 31: + $r = p.fmtInteger(f$14, false, verb); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 35; continue; + /* } else if ($assertType(_ref, $Uintptr, true)[1]) { */ case 30: f$15 = _ref.$val; - $r = p.fmtInteger((new $Uint64(0, f$15.constructor === Number ? f$15 : 1)), false, verb); /* */ $s = 52; case 52: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 36; continue; - /* } else if ($assertType(_ref, $String, true)[1]) { */ case 32: + $r = p.fmtInteger((new $Uint64(0, f$15.constructor === Number ? f$15 : 1)), false, verb); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 35; continue; + /* } else if ($assertType(_ref, $String, true)[1]) { */ case 31: f$16 = _ref.$val; - $r = p.fmtString(f$16, verb); /* */ $s = 53; case 53: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 36; continue; - /* } else if ($assertType(_ref, sliceType$3, true)[1]) { */ case 33: + $r = p.fmtString(f$16, verb); /* */ $s = 52; case 52: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 35; continue; + /* } else if ($assertType(_ref, sliceType$3, true)[1]) { */ case 32: f$17 = _ref.$val; - $r = p.fmtBytes(f$17, verb, "[]byte"); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 36; continue; - /* } else if ($assertType(_ref, reflect.Value, true)[1]) { */ case 34: + $r = p.fmtBytes(f$17, verb, "[]byte"); /* */ $s = 53; case 53: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 35; continue; + /* } else if ($assertType(_ref, reflect.Value, true)[1]) { */ case 33: f$18 = _ref.$val; - /* */ if ($clone(f$18, reflect.Value).IsValid() && $clone(f$18, reflect.Value).CanInterface()) { $s = 55; continue; } - /* */ $s = 56; continue; - /* if ($clone(f$18, reflect.Value).IsValid() && $clone(f$18, reflect.Value).CanInterface()) { */ case 55: - _r$2 = $clone(f$18, reflect.Value).Interface(); /* */ $s = 57; case 57: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - p.arg = _r$2; - _r$3 = p.handleMethods(verb); /* */ $s = 60; case 60: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (_r$3) { $s = 58; continue; } - /* */ $s = 59; continue; - /* if (_r$3) { */ case 58: + /* */ if ($clone(f$18, reflect.Value).IsValid() && $clone(f$18, reflect.Value).CanInterface()) { $s = 54; continue; } + /* */ $s = 55; continue; + /* if ($clone(f$18, reflect.Value).IsValid() && $clone(f$18, reflect.Value).CanInterface()) { */ case 54: + _r$1 = $clone(f$18, reflect.Value).Interface(); /* */ $s = 56; case 56: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + p.arg = _r$1; + _r$2 = p.handleMethods(verb); /* */ $s = 59; case 59: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (_r$2) { $s = 57; continue; } + /* */ $s = 58; continue; + /* if (_r$2) { */ case 57: $s = -1; return; - /* } */ case 59: - /* } */ case 56: - $r = p.printValue($clone(f$18, reflect.Value), verb, 0); /* */ $s = 61; case 61: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 36; continue; - /* } else { */ case 35: + /* } */ case 58: + /* } */ case 55: + $r = p.printValue($clone(f$18, reflect.Value), verb, 0); /* */ $s = 60; case 60: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 35; continue; + /* } else { */ case 34: f$19 = _ref; - _r$4 = p.handleMethods(verb); /* */ $s = 64; case 64: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if (!_r$4) { $s = 62; continue; } - /* */ $s = 63; continue; - /* if (!_r$4) { */ case 62: - _r$5 = reflect.ValueOf(f$19); /* */ $s = 65; case 65: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - $r = p.printValue($clone(_r$5, reflect.Value), verb, 0); /* */ $s = 66; case 66: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 63: - /* } */ case 36: + _r$3 = p.handleMethods(verb); /* */ $s = 63; case 63: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!_r$3) { $s = 61; continue; } + /* */ $s = 62; continue; + /* if (!_r$3) { */ case 61: + $r = p.printValue($clone(reflect.ValueOf(f$19), reflect.Value), verb, 0); /* */ $s = 64; case 64: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 62: + /* } */ case 35: $s = -1; return; - /* */ } return; } var $f = {$blk: printArg, $c: true, $r, _1, _2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, arg, f, f$1, f$10, f$11, f$12, f$13, f$14, f$15, f$16, f$17, f$18, f$19, f$2, f$3, f$4, f$5, f$6, f$7, f$8, f$9, p, verb, $s};return $f; + /* */ } return; } var $f = {$blk: printArg, $c: true, $r, _1, _2, _r, _r$1, _r$2, _r$3, _ref, arg, f, f$1, f$10, f$11, f$12, f$13, f$14, f$15, f$16, f$17, f$18, f$19, f$2, f$3, f$4, f$5, f$6, f$7, f$8, f$9, p, verb, $s};return $f; }; $ptrType(pp).prototype.printValue = function printValue(value, verb, depth) { - var {_1, _2, _3, _4, _arg, _arg$1, _arg$2, _arg$3, _i, _i$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, a, bytes, depth, f, i, i$1, i$2, i$3, i$4, key, name, p, sorted, t, value, value$1, verb, x, x$1, $s, $r, $c} = $restore(this, {value, verb, depth}); + var {_1, _2, _3, _4, _arg, _arg$1, _arg$2, _i, _i$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, a, bytes, depth, f, i, i$1, i$2, i$3, i$4, key, name, p, sorted, t, value, value$1, verb, x, x$1, $s, $r, $c} = $restore(this, {value, verb, depth}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; /* */ if (depth > 0 && $clone(value, reflect.Value).IsValid() && $clone(value, reflect.Value).CanInterface()) { $s = 1; continue; } @@ -35994,14 +35150,14 @@ $packages["fmt"] = (function() { /* */ if (depth === 0) { $s = 25; continue; } /* */ $s = 26; continue; /* if (depth === 0) { */ case 25: - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(""); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(""); $s = 27; continue; /* } else { */ case 26: _2 = verb; /* */ if (_2 === (118)) { $s = 29; continue; } /* */ $s = 30; continue; /* if (_2 === (118)) { */ case 29: - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(""); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(""); $s = 31; continue; /* } else { */ case 30: $r = p.badVerb(verb); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } @@ -36039,15 +35195,15 @@ $packages["fmt"] = (function() { /* */ $s = 43; continue; /* if (p.fmt.fmtFlags.sharpV) { */ case 42: _r$3 = $clone(f, reflect.Value).Type().String(); /* */ $s = 45; case 45: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(_r$3); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(_r$3); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } if ($clone(f, reflect.Value).IsNil()) { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("(nil)"); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString("(nil)"); $s = -1; return; } - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(123); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(123); $s = 44; continue; /* } else { */ case 43: - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("map["); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString("map["); /* } */ case 44: _r$4 = fmtsort.Sort($clone(f, reflect.Value)); /* */ $s = 47; case 47: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } sorted = _r$4; @@ -36059,21 +35215,21 @@ $packages["fmt"] = (function() { key = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); if (i > 0) { if (p.fmt.fmtFlags.sharpV) { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(", "); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(", "); } else { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(32); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(32); } } $r = p.printValue($clone(key, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(58); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(58); $r = p.printValue($clone((x$1 = sorted.Value, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])), reflect.Value), verb, depth + 1 >> 0); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _i++; $s = 48; continue; case 49: if (p.fmt.fmtFlags.sharpV) { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(125); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(125); } else { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(93); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(93); } $s = 24; continue; /* } else if (_1 === (25)) { */ case 18: @@ -36081,17 +35237,17 @@ $packages["fmt"] = (function() { /* */ $s = 53; continue; /* if (p.fmt.fmtFlags.sharpV) { */ case 52: _r$5 = $clone(f, reflect.Value).Type().String(); /* */ $s = 54; case 54: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(_r$5); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(_r$5); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 53: - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(123); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(123); i$1 = 0; /* while (true) { */ case 56: /* if (!(i$1 < $clone(f, reflect.Value).NumField())) { break; } */ if(!(i$1 < $clone(f, reflect.Value).NumField())) { $s = 57; continue; } if (i$1 > 0) { if (p.fmt.fmtFlags.sharpV) { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(", "); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(", "); } else { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(32); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(32); } } /* */ if (p.fmt.fmtFlags.plusV || p.fmt.fmtFlags.sharpV) { $s = 58; continue; } @@ -36100,199 +35256,177 @@ $packages["fmt"] = (function() { _r$6 = $clone(f, reflect.Value).Type().Field(i$1); /* */ $s = 60; case 60: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } name = _r$6.Name; if (!(name === "")) { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(name); - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(58); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(name); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(58); } /* } */ case 59: - _r$7 = getField($clone(f, reflect.Value), i$1); /* */ $s = 61; case 61: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - $r = p.printValue($clone(_r$7, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 62; case 62: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.printValue($clone(getField($clone(f, reflect.Value), i$1), reflect.Value), verb, depth + 1 >> 0); /* */ $s = 61; case 61: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } i$1 = i$1 + (1) >> 0; $s = 56; continue; case 57: - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(125); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(125); $s = 24; continue; /* } else if (_1 === (20)) { */ case 19: - _r$8 = $clone(f, reflect.Value).Elem(); /* */ $s = 63; case 63: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - value$1 = _r$8; - /* */ if (!$clone(value$1, reflect.Value).IsValid()) { $s = 64; continue; } - /* */ $s = 65; continue; - /* if (!$clone(value$1, reflect.Value).IsValid()) { */ case 64: - /* */ if (p.fmt.fmtFlags.sharpV) { $s = 67; continue; } - /* */ $s = 68; continue; - /* if (p.fmt.fmtFlags.sharpV) { */ case 67: - _r$9 = $clone(f, reflect.Value).Type().String(); /* */ $s = 70; case 70: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(_r$9); /* */ $s = 71; case 71: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("(nil)"); - $s = 69; continue; - /* } else { */ case 68: - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(""); - /* } */ case 69: - $s = 66; continue; - /* } else { */ case 65: - $r = p.printValue($clone(value$1, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 72; case 72: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 66: + value$1 = $clone(f, reflect.Value).Elem(); + /* */ if (!$clone(value$1, reflect.Value).IsValid()) { $s = 62; continue; } + /* */ $s = 63; continue; + /* if (!$clone(value$1, reflect.Value).IsValid()) { */ case 62: + /* */ if (p.fmt.fmtFlags.sharpV) { $s = 65; continue; } + /* */ $s = 66; continue; + /* if (p.fmt.fmtFlags.sharpV) { */ case 65: + _r$7 = $clone(f, reflect.Value).Type().String(); /* */ $s = 68; case 68: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $r = (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(_r$7); /* */ $s = 69; case 69: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString("(nil)"); + $s = 67; continue; + /* } else { */ case 66: + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(""); + /* } */ case 67: + $s = 64; continue; + /* } else { */ case 63: + $r = p.printValue($clone(value$1, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 70; case 70: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 64: $s = 24; continue; /* } else if ((_1 === (17)) || (_1 === (23))) { */ case 20: _3 = verb; - /* */ if ((_3 === (115)) || (_3 === (113)) || (_3 === (120)) || (_3 === (88))) { $s = 74; continue; } - /* */ $s = 75; continue; - /* if ((_3 === (115)) || (_3 === (113)) || (_3 === (120)) || (_3 === (88))) { */ case 74: + /* */ if ((_3 === (115)) || (_3 === (113)) || (_3 === (120)) || (_3 === (88))) { $s = 72; continue; } + /* */ $s = 73; continue; + /* if ((_3 === (115)) || (_3 === (113)) || (_3 === (120)) || (_3 === (88))) { */ case 72: t = $clone(f, reflect.Value).Type(); - _r$10 = t.Elem(); /* */ $s = 78; case 78: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _r$11 = _r$10.Kind(); /* */ $s = 79; case 79: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - /* */ if (_r$11 === 8) { $s = 76; continue; } - /* */ $s = 77; continue; - /* if (_r$11 === 8) { */ case 76: + _r$8 = t.Elem(); /* */ $s = 76; case 76: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$9 = _r$8.Kind(); /* */ $s = 77; case 77: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + /* */ if (_r$9 === 8) { $s = 74; continue; } + /* */ $s = 75; continue; + /* if (_r$9 === 8) { */ case 74: bytes = sliceType$3.nil; - /* */ if ($clone(f, reflect.Value).Kind() === 23) { $s = 80; continue; } - /* */ if ($clone(f, reflect.Value).CanAddr()) { $s = 81; continue; } - /* */ $s = 82; continue; - /* if ($clone(f, reflect.Value).Kind() === 23) { */ case 80: - _r$12 = $clone(f, reflect.Value).Bytes(); /* */ $s = 84; case 84: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - bytes = _r$12; - $s = 83; continue; - /* } else if ($clone(f, reflect.Value).CanAddr()) { */ case 81: - _r$13 = $clone(f, reflect.Value).Len(); /* */ $s = 85; case 85: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - _arg = _r$13; - _r$14 = $clone(f, reflect.Value).Slice(0, _arg); /* */ $s = 86; case 86: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - _r$15 = $clone(_r$14, reflect.Value).Bytes(); /* */ $s = 87; case 87: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - bytes = _r$15; - $s = 83; continue; - /* } else { */ case 82: - _r$16 = $clone(f, reflect.Value).Len(); /* */ $s = 88; case 88: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - bytes = $makeSlice(sliceType$3, _r$16); + /* */ if ($clone(f, reflect.Value).Kind() === 23) { $s = 78; continue; } + /* */ if ($clone(f, reflect.Value).CanAddr()) { $s = 79; continue; } + /* */ $s = 80; continue; + /* if ($clone(f, reflect.Value).Kind() === 23) { */ case 78: + bytes = $clone(f, reflect.Value).Bytes(); + $s = 81; continue; + /* } else if ($clone(f, reflect.Value).CanAddr()) { */ case 79: + _r$10 = $clone(f, reflect.Value).Slice(0, $clone(f, reflect.Value).Len()); /* */ $s = 82; case 82: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$11 = $clone(_r$10, reflect.Value).Bytes(); /* */ $s = 83; case 83: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + bytes = _r$11; + $s = 81; continue; + /* } else { */ case 80: + bytes = $makeSlice(sliceType$3, $clone(f, reflect.Value).Len()); _ref$1 = bytes; _i$1 = 0; - /* while (true) { */ case 89: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 90; continue; } + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } i$2 = _i$1; - _r$17 = $clone(f, reflect.Value).Index(i$2); /* */ $s = 91; case 91: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - _r$18 = $clone(_r$17, reflect.Value).Uint(); /* */ $s = 92; case 92: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - ((i$2 < 0 || i$2 >= bytes.$length) ? ($throwRuntimeError("index out of range"), undefined) : bytes.$array[bytes.$offset + i$2] = ((_r$18.$low << 24 >>> 24))); + ((i$2 < 0 || i$2 >= bytes.$length) ? ($throwRuntimeError("index out of range"), undefined) : bytes.$array[bytes.$offset + i$2] = (($clone($clone(f, reflect.Value).Index(i$2), reflect.Value).Uint().$low << 24 >>> 24))); _i$1++; - $s = 89; continue; - case 90: - /* } */ case 83: - _arg$1 = bytes; - _arg$2 = verb; - _r$19 = t.String(); /* */ $s = 93; case 93: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - _arg$3 = _r$19; - $r = p.fmtBytes(_arg$1, _arg$2, _arg$3); /* */ $s = 94; case 94: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + } + /* } */ case 81: + _arg = bytes; + _arg$1 = verb; + _r$12 = t.String(); /* */ $s = 84; case 84: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _arg$2 = _r$12; + $r = p.fmtBytes(_arg, _arg$1, _arg$2); /* */ $s = 85; case 85: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* } */ case 77: - /* } */ case 75: - case 73: - /* */ if (p.fmt.fmtFlags.sharpV) { $s = 95; continue; } - /* */ $s = 96; continue; - /* if (p.fmt.fmtFlags.sharpV) { */ case 95: - _r$20 = $clone(f, reflect.Value).Type().String(); /* */ $s = 98; case 98: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(_r$20); /* */ $s = 99; case 99: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 75: + /* } */ case 73: + case 71: + /* */ if (p.fmt.fmtFlags.sharpV) { $s = 86; continue; } + /* */ $s = 87; continue; + /* if (p.fmt.fmtFlags.sharpV) { */ case 86: + _r$13 = $clone(f, reflect.Value).Type().String(); /* */ $s = 89; case 89: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + $r = (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(_r$13); /* */ $s = 90; case 90: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } if (($clone(f, reflect.Value).Kind() === 23) && $clone(f, reflect.Value).IsNil()) { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("(nil)"); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString("(nil)"); $s = -1; return; } - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(123); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(123); i$3 = 0; - /* while (true) { */ case 100: - _r$21 = $clone(f, reflect.Value).Len(); /* */ $s = 102; case 102: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } - /* if (!(i$3 < _r$21)) { break; } */ if(!(i$3 < _r$21)) { $s = 101; continue; } + /* while (true) { */ case 91: + /* if (!(i$3 < $clone(f, reflect.Value).Len())) { break; } */ if(!(i$3 < $clone(f, reflect.Value).Len())) { $s = 92; continue; } if (i$3 > 0) { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(", "); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(", "); } - _r$22 = $clone(f, reflect.Value).Index(i$3); /* */ $s = 103; case 103: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - $r = p.printValue($clone(_r$22, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 104; case 104: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.printValue($clone($clone(f, reflect.Value).Index(i$3), reflect.Value), verb, depth + 1 >> 0); /* */ $s = 93; case 93: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } i$3 = i$3 + (1) >> 0; - $s = 100; continue; - case 101: - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(125); - $s = 97; continue; - /* } else { */ case 96: - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(91); + $s = 91; continue; + case 92: + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(125); + $s = 88; continue; + /* } else { */ case 87: + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(91); i$4 = 0; - /* while (true) { */ case 105: - _r$23 = $clone(f, reflect.Value).Len(); /* */ $s = 107; case 107: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - /* if (!(i$4 < _r$23)) { break; } */ if(!(i$4 < _r$23)) { $s = 106; continue; } + /* while (true) { */ case 94: + /* if (!(i$4 < $clone(f, reflect.Value).Len())) { break; } */ if(!(i$4 < $clone(f, reflect.Value).Len())) { $s = 95; continue; } if (i$4 > 0) { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(32); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(32); } - _r$24 = $clone(f, reflect.Value).Index(i$4); /* */ $s = 108; case 108: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - $r = p.printValue($clone(_r$24, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 109; case 109: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.printValue($clone($clone(f, reflect.Value).Index(i$4), reflect.Value), verb, depth + 1 >> 0); /* */ $s = 96; case 96: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } i$4 = i$4 + (1) >> 0; - $s = 105; continue; - case 106: - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(93); - /* } */ case 97: + $s = 94; continue; + case 95: + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(93); + /* } */ case 88: $s = 24; continue; /* } else if (_1 === (22)) { */ case 21: - /* */ if ((depth === 0) && !(($clone(f, reflect.Value).Pointer() === 0))) { $s = 110; continue; } - /* */ $s = 111; continue; - /* if ((depth === 0) && !(($clone(f, reflect.Value).Pointer() === 0))) { */ case 110: - _r$25 = $clone(f, reflect.Value).Elem(); /* */ $s = 113; case 113: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - a = _r$25; + /* */ if ((depth === 0) && !(($clone(f, reflect.Value).Pointer() === 0))) { $s = 97; continue; } + /* */ $s = 98; continue; + /* if ((depth === 0) && !(($clone(f, reflect.Value).Pointer() === 0))) { */ case 97: + a = $clone(f, reflect.Value).Elem(); _4 = $clone(a, reflect.Value).Kind(); - /* */ if ((_4 === (17)) || (_4 === (23)) || (_4 === (25)) || (_4 === (21))) { $s = 114; continue; } - /* */ $s = 115; continue; - /* if ((_4 === (17)) || (_4 === (23)) || (_4 === (25)) || (_4 === (21))) { */ case 114: - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(38); - $r = p.printValue($clone(a, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 116; case 116: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if ((_4 === (17)) || (_4 === (23)) || (_4 === (25)) || (_4 === (21))) { $s = 100; continue; } + /* */ $s = 101; continue; + /* if ((_4 === (17)) || (_4 === (23)) || (_4 === (25)) || (_4 === (21))) { */ case 100: + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(38); + $r = p.printValue($clone(a, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 102; case 102: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* } */ case 115: - case 112: - /* } */ case 111: - $r = p.fmtPointer($clone(f, reflect.Value), verb); /* */ $s = 117; case 117: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 101: + case 99: + /* } */ case 98: + $r = p.fmtPointer($clone(f, reflect.Value), verb); /* */ $s = 103; case 103: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 24; continue; /* } else if ((_1 === (18)) || (_1 === (19)) || (_1 === (26))) { */ case 22: - $r = p.fmtPointer($clone(f, reflect.Value), verb); /* */ $s = 118; case 118: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.fmtPointer($clone(f, reflect.Value), verb); /* */ $s = 104; case 104: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 24; continue; /* } else { */ case 23: - $r = p.unknownType($clone(f, reflect.Value)); /* */ $s = 119; case 119: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.unknownType($clone(f, reflect.Value)); /* */ $s = 105; case 105: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 24: case 7: $s = -1; return; - /* */ } return; } var $f = {$blk: printValue, $c: true, $r, _1, _2, _3, _4, _arg, _arg$1, _arg$2, _arg$3, _i, _i$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, a, bytes, depth, f, i, i$1, i$2, i$3, i$4, key, name, p, sorted, t, value, value$1, verb, x, x$1, $s};return $f; + /* */ } return; } var $f = {$blk: printValue, $c: true, $r, _1, _2, _3, _4, _arg, _arg$1, _arg$2, _i, _i$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, a, bytes, depth, f, i, i$1, i$2, i$3, i$4, key, name, p, sorted, t, value, value$1, verb, x, x$1, $s};return $f; }; intFromArg = function intFromArg$1(a, argNum) { - var {_1, _r, _tuple, a, argNum, isInt, n, n$1, newArgNum, num, v, x, x$1, x$2, $s, $r, $c} = $restore(this, {a, argNum}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var _1, _tuple, a, argNum, isInt, n, n$1, newArgNum, num, v, x, x$1, x$2; num = 0; isInt = false; newArgNum = 0; newArgNum = argNum; - /* */ if (argNum < a.$length) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (argNum < a.$length) { */ case 1: + if (argNum < a.$length) { _tuple = $assertType(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), $Int, true); num = _tuple[0]; isInt = _tuple[1]; - /* */ if (!isInt) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!isInt) { */ case 3: - _r = reflect.ValueOf(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum])); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - v = _r; - _1 = $clone(v, reflect.Value).Kind(); - if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { - n = $clone(v, reflect.Value).Int(); - if ((x = (new $Int64(0, (((n.$low + ((n.$high >> 31) * 4294967296)) >> 0)))), (x.$high === n.$high && x.$low === n.$low))) { - num = (((n.$low + ((n.$high >> 31) * 4294967296)) >> 0)); - isInt = true; - } - } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { - n$1 = $clone(v, reflect.Value).Uint(); - if ((x$1 = (new $Int64(n$1.$high, n$1.$low)), (x$1.$high > 0 || (x$1.$high === 0 && x$1.$low >= 0))) && (x$2 = (new $Uint64(0, ((n$1.$low >> 0)))), (x$2.$high === n$1.$high && x$2.$low === n$1.$low))) { - num = ((n$1.$low >> 0)); - isInt = true; - } + if (!isInt) { + v = reflect.ValueOf(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum])); + _1 = $clone(v, reflect.Value).Kind(); + if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { + n = $clone(v, reflect.Value).Int(); + if ((x = (new $Int64(0, (((n.$low + ((n.$high >> 31) * 4294967296)) >> 0)))), (x.$high === n.$high && x.$low === n.$low))) { + num = (((n.$low + ((n.$high >> 31) * 4294967296)) >> 0)); + isInt = true; } - case 5: - /* } */ case 4: + } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { + n$1 = $clone(v, reflect.Value).Uint(); + if ((x$1 = (new $Int64(n$1.$high, n$1.$low)), (x$1.$high > 0 || (x$1.$high === 0 && x$1.$low >= 0))) && (x$2 = (new $Uint64(0, ((n$1.$low >> 0)))), (x$2.$high === n$1.$high && x$2.$low === n$1.$low))) { + num = ((n$1.$low >> 0)); + isInt = true; + } + } + } newArgNum = argNum + 1 >> 0; if (tooLarge(num)) { num = 0; isInt = false; } - /* } */ case 2: - $s = -1; return [num, isInt, newArgNum]; - /* */ } return; } var $f = {$blk: intFromArg$1, $c: true, $r, _1, _r, _tuple, a, argNum, isInt, n, n$1, newArgNum, num, v, x, x$1, x$2, $s};return $f; + } + return [num, isInt, newArgNum]; }; parseArgNumber = function parseArgNumber$1(format) { var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, format, i, index, newi, ok, ok$1, wid, width; @@ -36384,19 +35518,19 @@ $packages["fmt"] = (function() { $ptrType(pp).prototype.badArgNum = function badArgNum(verb) { var p, verb; p = this; - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("%!"); - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeRune(verb); - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("(BADINDEX)"); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString("%!"); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeRune(verb); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString("(BADINDEX)"); }; $ptrType(pp).prototype.missingArg = function missingArg(verb) { var p, verb; p = this; - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("%!"); - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeRune(verb); - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("(MISSING)"); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString("%!"); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeRune(verb); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString("(MISSING)"); }; $ptrType(pp).prototype.doPrintf = function doPrintf(format, a) { - var {_1, _2, _i, _r, _r$1, _r$2, _ref, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, a, afterIndex, arg, argNum, c, end, format, i, i$1, lasti, p, size, verb, $s, $r, $c} = $restore(this, {format, a}); + var {_1, _2, _i, _r, _ref, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, a, afterIndex, arg, argNum, c, end, format, i, i$1, lasti, p, size, verb, $s, $r, $c} = $restore(this, {format, a}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; end = format.length; @@ -36413,7 +35547,7 @@ $packages["fmt"] = (function() { i = i + (1) >> 0; } if (i > lasti) { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString($substring(format, lasti, i)); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString($substring(format, lasti, i)); } if (i >= end) { /* break; */ $s = 2; continue; @@ -36478,17 +35612,14 @@ $packages["fmt"] = (function() { argNum = _tuple[0]; i = _tuple[1]; afterIndex = _tuple[2]; - /* */ if (i < end && (format.charCodeAt(i) === 42)) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (i < end && (format.charCodeAt(i) === 42)) { */ case 16: + if (i < end && (format.charCodeAt(i) === 42)) { i = i + (1) >> 0; - _r = intFromArg(a, argNum); /* */ $s = 19; case 19: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple$1 = _r; + _tuple$1 = intFromArg(a, argNum); p.fmt.wid = _tuple$1[0]; p.fmt.fmtFlags.widPresent = _tuple$1[1]; argNum = _tuple$1[2]; if (!p.fmt.fmtFlags.widPresent) { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("%!(BADWIDTH)"); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString("%!(BADWIDTH)"); } if (p.fmt.wid < 0) { p.fmt.wid = -p.fmt.wid; @@ -36496,8 +35627,7 @@ $packages["fmt"] = (function() { p.fmt.fmtFlags.zero = false; } afterIndex = false; - $s = 18; continue; - /* } else { */ case 17: + } else { _tuple$2 = parsenum(format, i, end); p.fmt.wid = _tuple$2[0]; p.fmt.fmtFlags.widPresent = _tuple$2[1]; @@ -36505,10 +35635,8 @@ $packages["fmt"] = (function() { if (afterIndex && p.fmt.fmtFlags.widPresent) { p.goodArgNum = false; } - /* } */ case 18: - /* */ if ((i + 1 >> 0) < end && (format.charCodeAt(i) === 46)) { $s = 20; continue; } - /* */ $s = 21; continue; - /* if ((i + 1 >> 0) < end && (format.charCodeAt(i) === 46)) { */ case 20: + } + if ((i + 1 >> 0) < end && (format.charCodeAt(i) === 46)) { i = i + (1) >> 0; if (afterIndex) { p.goodArgNum = false; @@ -36517,12 +35645,9 @@ $packages["fmt"] = (function() { argNum = _tuple$3[0]; i = _tuple$3[1]; afterIndex = _tuple$3[2]; - /* */ if (i < end && (format.charCodeAt(i) === 42)) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if (i < end && (format.charCodeAt(i) === 42)) { */ case 22: + if (i < end && (format.charCodeAt(i) === 42)) { i = i + (1) >> 0; - _r$1 = intFromArg(a, argNum); /* */ $s = 25; case 25: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$4 = _r$1; + _tuple$4 = intFromArg(a, argNum); p.fmt.prec = _tuple$4[0]; p.fmt.fmtFlags.precPresent = _tuple$4[1]; argNum = _tuple$4[2]; @@ -36531,11 +35656,10 @@ $packages["fmt"] = (function() { p.fmt.fmtFlags.precPresent = false; } if (!p.fmt.fmtFlags.precPresent) { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("%!(BADPREC)"); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString("%!(BADPREC)"); } afterIndex = false; - $s = 24; continue; - /* } else { */ case 23: + } else { _tuple$5 = parsenum(format, i, end); p.fmt.prec = _tuple$5[0]; p.fmt.fmtFlags.precPresent = _tuple$5[1]; @@ -36544,8 +35668,8 @@ $packages["fmt"] = (function() { p.fmt.prec = 0; p.fmt.fmtFlags.precPresent = true; } - /* } */ case 24: - /* } */ case 21: + } + } if (!afterIndex) { _tuple$6 = p.argNumber(argNum, format, i, a.$length); argNum = _tuple$6[0]; @@ -36553,7 +35677,7 @@ $packages["fmt"] = (function() { afterIndex = _tuple$6[2]; } if (i >= end) { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("%!(NOVERB)"); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString("%!(NOVERB)"); /* break; */ $s = 2; continue; } _tmp = ((format.charCodeAt(i) >> 0)); @@ -36566,77 +35690,77 @@ $packages["fmt"] = (function() { size = _tuple$7[1]; } i = i + (size) >> 0; - /* */ if ((verb === 37)) { $s = 27; continue; } - /* */ if (!p.goodArgNum) { $s = 28; continue; } - /* */ if (argNum >= a.$length) { $s = 29; continue; } - /* */ if ((verb === 119)) { $s = 30; continue; } - /* */ if ((verb === 118)) { $s = 31; continue; } - /* */ $s = 32; continue; - /* if ((verb === 37)) { */ case 27: - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(37); - $s = 33; continue; - /* } else if (!p.goodArgNum) { */ case 28: + /* */ if ((verb === 37)) { $s = 17; continue; } + /* */ if (!p.goodArgNum) { $s = 18; continue; } + /* */ if (argNum >= a.$length) { $s = 19; continue; } + /* */ if ((verb === 119)) { $s = 20; continue; } + /* */ if ((verb === 118)) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if ((verb === 37)) { */ case 17: + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(37); + $s = 23; continue; + /* } else if (!p.goodArgNum) { */ case 18: p.badArgNum(verb); - $s = 33; continue; - /* } else if (argNum >= a.$length) { */ case 29: + $s = 23; continue; + /* } else if (argNum >= a.$length) { */ case 19: p.missingArg(verb); - $s = 33; continue; - /* } else if ((verb === 119)) { */ case 30: + $s = 23; continue; + /* } else if ((verb === 119)) { */ case 20: p.wrappedErrs = $append(p.wrappedErrs, argNum); p.fmt.fmtFlags.sharpV = p.fmt.fmtFlags.sharp; p.fmt.fmtFlags.sharp = false; p.fmt.fmtFlags.plusV = p.fmt.fmtFlags.plus; p.fmt.fmtFlags.plus = false; - $r = p.printArg(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), verb); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.printArg(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), verb); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } argNum = argNum + (1) >> 0; - $s = 33; continue; - /* } else if ((verb === 118)) { */ case 31: + $s = 23; continue; + /* } else if ((verb === 118)) { */ case 21: p.fmt.fmtFlags.sharpV = p.fmt.fmtFlags.sharp; p.fmt.fmtFlags.sharp = false; p.fmt.fmtFlags.plusV = p.fmt.fmtFlags.plus; p.fmt.fmtFlags.plus = false; - $r = p.printArg(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), verb); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.printArg(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), verb); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } argNum = argNum + (1) >> 0; - $s = 33; continue; - /* } else { */ case 32: - $r = p.printArg(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), verb); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 23; continue; + /* } else { */ case 22: + $r = p.printArg(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), verb); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } argNum = argNum + (1) >> 0; - /* } */ case 33: - case 26: + /* } */ case 23: + case 16: $s = 1; continue; case 2: - /* */ if (!p.reordered && argNum < a.$length) { $s = 37; continue; } - /* */ $s = 38; continue; - /* if (!p.reordered && argNum < a.$length) { */ case 37: + /* */ if (!p.reordered && argNum < a.$length) { $s = 27; continue; } + /* */ $s = 28; continue; + /* if (!p.reordered && argNum < a.$length) { */ case 27: p.fmt.clearflags(); - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("%!(EXTRA "); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString("%!(EXTRA "); _ref = $subslice(a, argNum); _i = 0; - /* while (true) { */ case 39: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 40; continue; } + /* while (true) { */ case 29: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 30; continue; } i$1 = _i; arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); if (i$1 > 0) { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(", "); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(", "); } - /* */ if ($interfaceIsEqual(arg, $ifaceNil)) { $s = 41; continue; } - /* */ $s = 42; continue; - /* if ($interfaceIsEqual(arg, $ifaceNil)) { */ case 41: - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(""); - $s = 43; continue; - /* } else { */ case 42: - _r$2 = reflect.TypeOf(arg).String(); /* */ $s = 44; case 44: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(_r$2); /* */ $s = 45; case 45: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(61); - $r = p.printArg(arg, 118); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 43: + /* */ if ($interfaceIsEqual(arg, $ifaceNil)) { $s = 31; continue; } + /* */ $s = 32; continue; + /* if ($interfaceIsEqual(arg, $ifaceNil)) { */ case 31: + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(""); + $s = 33; continue; + /* } else { */ case 32: + _r = reflect.TypeOf(arg).String(); /* */ $s = 34; case 34: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(_r); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(61); + $r = p.printArg(arg, 118); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 33: _i++; - $s = 39; continue; - case 40: - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(41); - /* } */ case 38: + $s = 29; continue; + case 30: + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(41); + /* } */ case 28: $s = -1; return; - /* */ } return; } var $f = {$blk: doPrintf, $c: true, $r, _1, _2, _i, _r, _r$1, _r$2, _ref, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, a, afterIndex, arg, argNum, c, end, format, i, i$1, lasti, p, size, verb, $s};return $f; + /* */ } return; } var $f = {$blk: doPrintf, $c: true, $r, _1, _2, _i, _r, _ref, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, a, afterIndex, arg, argNum, c, end, format, i, i$1, lasti, p, size, verb, $s};return $f; }; $ptrType(pp).prototype.doPrint = function doPrint(a) { var {_i, _r, _ref, _v, a, arg, argNum, isString, p, prevString, $s, $r, $c} = $restore(this, {a}); @@ -36654,7 +35778,7 @@ $packages["fmt"] = (function() { _v = _r === 24; case 3: isString = _v; if (argNum > 0 && !isString && !prevString) { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(32); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(32); } $r = p.printArg(arg, 118); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } prevString = isString; @@ -36675,13 +35799,13 @@ $packages["fmt"] = (function() { argNum = _i; arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); if (argNum > 0) { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(32); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(32); } $r = p.printArg(arg, 118); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _i++; $s = 1; continue; case 2: - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(10); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(10); $s = -1; return; /* */ } return; } var $f = {$blk: doPrintln, $c: true, $r, _i, _ref, a, arg, argNum, p, $s};return $f; }; @@ -37296,8 +36420,8 @@ $packages["fmt"] = (function() { ssFree = new sync.Pool.ptr(sliceType$1.nil, (function func1() { return new ss.ptr($ifaceNil, buffer.nil, 0, false, new ssave.ptr(false, false, false, 0, 0, 0)); })); - complexError = errors.New("syntax error scanning complex number"); - boolError = errors.New("syntax error scanning boolean"); + errComplex = errors.New("syntax error scanning complex number"); + errBool = errors.New("syntax error scanning boolean"); ppFree = new sync.Pool.ptr(sliceType$1.nil, (function func2() { return new pp.ptr(buffer.nil, $ifaceNil, new reflect.Value.ptr(ptrType.nil, 0, 0), new fmt.ptr(ptrType$1.nil, new fmtFlags.ptr(false, false, false, false, false, false, false, false, false), 0, 0, arrayType$1.zero()), false, false, false, false, false, sliceType$2.nil); })); @@ -37402,7 +36526,7 @@ $packages["github.com/gopherjs/gopherjs/compiler/errlist"] = (function() { return $pkg; })(); $packages["bytes"] = (function() { - var $pkg = {}, $init, errors, bytealg, io, unicode, utf8, Reader, asciiSet, Buffer, readOp, sliceType, arrayType, ptrType, arrayType$1, ptrType$1, ptrType$2, asciiSpace, errNegativeRead, errUnreadByte, NewReader, IndexByte, Equal, Compare, Count, Contains, ContainsAny, LastIndexByte, IndexRune, IndexAny, HasPrefix, HasSuffix, Repeat, TrimLeftFunc, TrimRightFunc, TrimFunc, TrimPrefix, indexFunc, lastIndexFunc, makeASCIISet, containsRune, TrimLeft, trimLeftByte, trimLeftASCII, trimLeftUnicode, TrimRight, trimRightByte, trimRightASCII, trimRightUnicode, TrimSpace, EqualFold, Index, Cut, Clone, growSlice, NewBuffer, NewBufferString; + var $pkg = {}, $init, errors, bytealg, io, unicode, utf8, Reader, asciiSet, Buffer, readOp, ptrType, sliceType, arrayType, ptrType$1, arrayType$1, ptrType$2, asciiSpace, errNegativeRead, errUnreadByte, NewReader, IndexByte, Equal, Compare, Count, Contains, ContainsAny, LastIndexByte, IndexRune, IndexAny, HasPrefix, HasSuffix, Repeat, TrimLeftFunc, TrimRightFunc, TrimFunc, TrimPrefix, indexFunc, lastIndexFunc, makeASCIISet, containsRune, TrimLeft, trimLeftByte, trimLeftASCII, trimLeftUnicode, TrimRight, trimRightByte, trimRightASCII, trimRightUnicode, TrimSpace, Index, Cut, Clone, growSlice, NewBuffer, NewBufferString; errors = $packages["errors"]; bytealg = $packages["internal/bytealg"]; io = $packages["io"]; @@ -37439,12 +36563,12 @@ $packages["bytes"] = (function() { $pkg.Buffer = Buffer; $pkg.readOp = readOp; $pkg.$finishSetup = function() { + ptrType = $ptrType(Reader); sliceType = $sliceType($Uint8); arrayType = $arrayType($Uint8, 4); - ptrType = $ptrType(asciiSet); + ptrType$1 = $ptrType(asciiSet); arrayType$1 = $arrayType($Uint32, 8); - ptrType$1 = $ptrType(Buffer); - ptrType$2 = $ptrType(Reader); + ptrType$2 = $ptrType(Buffer); $ptrType(Reader).prototype.Len = function Len() { var r, x, x$1, x$2, x$3, x$4; r = this; @@ -37622,7 +36746,7 @@ $packages["bytes"] = (function() { $ptrType(Reader).prototype.Reset = function Reset(b) { var b, r; r = this; - Reader.copy(r, new Reader.ptr(b, new $Int64(0, 0), -1)); + Reader.copy((r === ptrType.nil && $throwNilPointerError(), r), new Reader.ptr(b, new $Int64(0, 0), -1)); }; NewReader = function NewReader$1(b) { var b; @@ -37802,7 +36926,7 @@ $packages["bytes"] = (function() { if (!(_i$1 < _ref$1.$length)) { break; } i = _i$1; c = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - if (new ptrType(as).contains(c)) { + if (new ptrType$1(as).contains(c)) { return i; } _i$1++; @@ -37875,13 +36999,14 @@ $packages["bytes"] = (function() { } if (count < 0) { $panic(new $String("bytes: negative Repeat count")); - } else if (!(((_q = ($imul(b.$length, count)) / count, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) === b.$length))) { - $panic(new $String("bytes: Repeat count causes overflow")); } + if (b.$length >= (_q = 2147483647 / count, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))) { + $panic(new $String("bytes: Repeat output length overflow")); + } + n = $imul(b.$length, count); if (b.$length === 0) { return new sliceType([]); } - n = $imul(b.$length, count); chunkMax = n; if (chunkMax > 8192) { chunkMax = $imul((_q$1 = 8192 / b.$length, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")), b.$length); @@ -37889,10 +37014,10 @@ $packages["bytes"] = (function() { chunkMax = b.$length; } } - nb = $makeSlice(sliceType, n); + nb = bytealg.MakeNoZero(n); bp = $copySlice(nb, b); while (true) { - if (!(bp < nb.$length)) { break; } + if (!(bp < n)) { break; } chunk = bp; if (chunk > chunkMax) { chunk = chunkMax; @@ -38028,7 +37153,7 @@ $packages["bytes"] = (function() { $ptrType(asciiSet).prototype.contains = function contains(c) { var _q, _r, as, c, x, x$1, y; as = this.$val; - return !((((((x = as, x$1 = (_q = c / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")), ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])) & (((y = ((_r = c % 32, _r === _r ? _r : $throwRuntimeError("integer divide by zero"))), y < 32 ? (1 << y) : 0) >>> 0))) >>> 0)) === 0)); + return !((((((x = (as === ptrType$1.nil && $throwNilPointerError(), as), x$1 = (_q = c / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")), ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])) & (((y = ((_r = c % 32, _r === _r ? _r : $throwRuntimeError("integer divide by zero"))), y < 32 ? (1 << y) : 0) >>> 0))) >>> 0)) === 0)); }; containsRune = function containsRune$1(s, r) { var _i, _ref, _rune, c, r, s; @@ -38080,7 +37205,7 @@ $packages["bytes"] = (function() { var as, s; while (true) { if (!(s.$length > 0)) { break; } - if (!new ptrType(as).contains((0 >= s.$length ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + 0]))) { + if (!new ptrType$1(as).contains((0 >= s.$length ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + 0]))) { break; } s = $subslice(s, 1); @@ -38142,7 +37267,7 @@ $packages["bytes"] = (function() { var as, s, x; while (true) { if (!(s.$length > 0)) { break; } - if (!new ptrType(as).contains((x = s.$length - 1 >> 0, ((x < 0 || x >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + x])))) { + if (!new ptrType$1(as).contains((x = s.$length - 1 >> 0, ((x < 0 || x >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + x])))) { break; } s = $subslice(s, 0, (s.$length - 1 >> 0)); @@ -38213,102 +37338,6 @@ $packages["bytes"] = (function() { /* */ } return; } var $f = {$blk: TrimSpace$1, $c: true, $r, $24r, $24r$1, _r, _r$1, c, c$1, s, start, stop, x, $s};return $f; }; $pkg.TrimSpace = TrimSpace; - EqualFold = function EqualFold$1(s, t) { - var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, i, r, r$1, r$2, s, size, size$1, sr, sr$1, t, tr, tr$1, $s; - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - i = 0; - /* while (true) { */ case 1: - /* if (!(i < s.$length && i < t.$length)) { break; } */ if(!(i < s.$length && i < t.$length)) { $s = 2; continue; } - sr = ((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i]); - tr = ((i < 0 || i >= t.$length) ? ($throwRuntimeError("index out of range"), undefined) : t.$array[t.$offset + i]); - /* */ if (((sr | tr) >>> 0) >= 128) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (((sr | tr) >>> 0) >= 128) { */ case 3: - /* goto hasUnicode */ $s = 5; continue; - /* } */ case 4: - if (tr === sr) { - i = i + (1) >> 0; - /* continue; */ $s = 1; continue; - } - if (tr < sr) { - _tmp = sr; - _tmp$1 = tr; - tr = _tmp; - sr = _tmp$1; - } - if (65 <= sr && sr <= 90 && (tr === ((sr + 97 << 24 >>> 24) - 65 << 24 >>> 24))) { - i = i + (1) >> 0; - /* continue; */ $s = 1; continue; - } - $s = -1; return false; - case 2: - $s = -1; return s.$length === t.$length; - /* hasUnicode: */ case 5: - s = $subslice(s, i); - t = $subslice(t, i); - while (true) { - if (!(!((s.$length === 0)) && !((t.$length === 0)))) { break; } - _tmp$2 = 0; - _tmp$3 = 0; - sr$1 = _tmp$2; - tr$1 = _tmp$3; - if ((0 >= s.$length ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + 0]) < 128) { - _tmp$4 = (((0 >= s.$length ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + 0]) >> 0)); - _tmp$5 = $subslice(s, 1); - sr$1 = _tmp$4; - s = _tmp$5; - } else { - _tuple = utf8.DecodeRune(s); - r = _tuple[0]; - size = _tuple[1]; - _tmp$6 = r; - _tmp$7 = $subslice(s, size); - sr$1 = _tmp$6; - s = _tmp$7; - } - if ((0 >= t.$length ? ($throwRuntimeError("index out of range"), undefined) : t.$array[t.$offset + 0]) < 128) { - _tmp$8 = (((0 >= t.$length ? ($throwRuntimeError("index out of range"), undefined) : t.$array[t.$offset + 0]) >> 0)); - _tmp$9 = $subslice(t, 1); - tr$1 = _tmp$8; - t = _tmp$9; - } else { - _tuple$1 = utf8.DecodeRune(t); - r$1 = _tuple$1[0]; - size$1 = _tuple$1[1]; - _tmp$10 = r$1; - _tmp$11 = $subslice(t, size$1); - tr$1 = _tmp$10; - t = _tmp$11; - } - if (tr$1 === sr$1) { - continue; - } - if (tr$1 < sr$1) { - _tmp$12 = sr$1; - _tmp$13 = tr$1; - tr$1 = _tmp$12; - sr$1 = _tmp$13; - } - if (tr$1 < 128) { - if (65 <= sr$1 && sr$1 <= 90 && (tr$1 === ((sr$1 + 97 >> 0) - 65 >> 0))) { - continue; - } - $s = -1; return false; - } - r$2 = unicode.SimpleFold(sr$1); - while (true) { - if (!(!((r$2 === sr$1)) && r$2 < tr$1)) { break; } - r$2 = unicode.SimpleFold(r$2); - } - if (r$2 === tr$1) { - continue; - } - $s = -1; return false; - } - $s = -1; return s.$length === t.$length; - /* */ } return; } - }; - $pkg.EqualFold = EqualFold; Index = function Index$1(s, sep) { var c0, c0$1, c1, c1$1, fails, fails$1, i, i$1, j, n, o, o$1, r, s, sep, t, t$1, x, x$1; n = sep.$length; @@ -38423,10 +37452,15 @@ $packages["bytes"] = (function() { b = this; return $subslice(b.buf, b.off); }; + $ptrType(Buffer).prototype.AvailableBuffer = function AvailableBuffer() { + var b; + b = this; + return $subslice(b.buf, b.buf.$length); + }; $ptrType(Buffer).prototype.String = function String() { var b; b = this; - if (b === ptrType$1.nil) { + if (b === ptrType$2.nil) { return ""; } return ($bytesToString($subslice(b.buf, b.off))); @@ -38446,6 +37480,11 @@ $packages["bytes"] = (function() { b = this; return b.buf.$capacity; }; + $ptrType(Buffer).prototype.Available = function Available() { + var b; + b = this; + return b.buf.$capacity - b.buf.$length >> 0; + }; $ptrType(Buffer).prototype.Truncate = function Truncate(n) { var b, n; b = this; @@ -38871,9 +37910,9 @@ $packages["bytes"] = (function() { return new Buffer.ptr((new sliceType($stringToBytes(s))), 0, 0); }; $pkg.NewBufferString = NewBufferString; - ptrType$2.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "ReadAt", name: "ReadAt", pkg: "", typ: $funcType([sliceType, $Int64], [$Int, $error], false)}, {prop: "ReadByte", name: "ReadByte", pkg: "", typ: $funcType([], [$Uint8, $error], false)}, {prop: "UnreadByte", name: "UnreadByte", pkg: "", typ: $funcType([], [$error], false)}, {prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}, {prop: "UnreadRune", name: "UnreadRune", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Seek", name: "Seek", pkg: "", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([io.Writer], [$Int64, $error], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([sliceType], [], false)}]; - ptrType.methods = [{prop: "contains", name: "contains", pkg: "bytes", typ: $funcType([$Uint8], [$Bool], false)}]; - ptrType$1.methods = [{prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "empty", name: "empty", pkg: "bytes", typ: $funcType([], [$Bool], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Cap", name: "Cap", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Truncate", name: "Truncate", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}, {prop: "tryGrowByReslice", name: "tryGrowByReslice", pkg: "bytes", typ: $funcType([$Int], [$Int, $Bool], false)}, {prop: "grow", name: "grow", pkg: "bytes", typ: $funcType([$Int], [$Int], false)}, {prop: "Grow", name: "Grow", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}, {prop: "ReadFrom", name: "ReadFrom", pkg: "", typ: $funcType([io.Reader], [$Int64, $error], false)}, {prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([io.Writer], [$Int64, $error], false)}, {prop: "WriteByte", name: "WriteByte", pkg: "", typ: $funcType([$Uint8], [$error], false)}, {prop: "WriteRune", name: "WriteRune", pkg: "", typ: $funcType([$Int32], [$Int, $error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "Next", name: "Next", pkg: "", typ: $funcType([$Int], [sliceType], false)}, {prop: "ReadByte", name: "ReadByte", pkg: "", typ: $funcType([], [$Uint8, $error], false)}, {prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}, {prop: "UnreadRune", name: "UnreadRune", pkg: "", typ: $funcType([], [$error], false)}, {prop: "UnreadByte", name: "UnreadByte", pkg: "", typ: $funcType([], [$error], false)}, {prop: "ReadBytes", name: "ReadBytes", pkg: "", typ: $funcType([$Uint8], [sliceType, $error], false)}, {prop: "readSlice", name: "readSlice", pkg: "bytes", typ: $funcType([$Uint8], [sliceType, $error], false)}, {prop: "ReadString", name: "ReadString", pkg: "", typ: $funcType([$Uint8], [$String, $error], false)}]; + ptrType.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "ReadAt", name: "ReadAt", pkg: "", typ: $funcType([sliceType, $Int64], [$Int, $error], false)}, {prop: "ReadByte", name: "ReadByte", pkg: "", typ: $funcType([], [$Uint8, $error], false)}, {prop: "UnreadByte", name: "UnreadByte", pkg: "", typ: $funcType([], [$error], false)}, {prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}, {prop: "UnreadRune", name: "UnreadRune", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Seek", name: "Seek", pkg: "", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([io.Writer], [$Int64, $error], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([sliceType], [], false)}]; + ptrType$1.methods = [{prop: "contains", name: "contains", pkg: "bytes", typ: $funcType([$Uint8], [$Bool], false)}]; + ptrType$2.methods = [{prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "AvailableBuffer", name: "AvailableBuffer", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "empty", name: "empty", pkg: "bytes", typ: $funcType([], [$Bool], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Cap", name: "Cap", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Available", name: "Available", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Truncate", name: "Truncate", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}, {prop: "tryGrowByReslice", name: "tryGrowByReslice", pkg: "bytes", typ: $funcType([$Int], [$Int, $Bool], false)}, {prop: "grow", name: "grow", pkg: "bytes", typ: $funcType([$Int], [$Int], false)}, {prop: "Grow", name: "Grow", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}, {prop: "ReadFrom", name: "ReadFrom", pkg: "", typ: $funcType([io.Reader], [$Int64, $error], false)}, {prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([io.Writer], [$Int64, $error], false)}, {prop: "WriteByte", name: "WriteByte", pkg: "", typ: $funcType([$Uint8], [$error], false)}, {prop: "WriteRune", name: "WriteRune", pkg: "", typ: $funcType([$Int32], [$Int, $error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "Next", name: "Next", pkg: "", typ: $funcType([$Int], [sliceType], false)}, {prop: "ReadByte", name: "ReadByte", pkg: "", typ: $funcType([], [$Uint8, $error], false)}, {prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}, {prop: "UnreadRune", name: "UnreadRune", pkg: "", typ: $funcType([], [$error], false)}, {prop: "UnreadByte", name: "UnreadByte", pkg: "", typ: $funcType([], [$error], false)}, {prop: "ReadBytes", name: "ReadBytes", pkg: "", typ: $funcType([$Uint8], [sliceType, $error], false)}, {prop: "readSlice", name: "readSlice", pkg: "bytes", typ: $funcType([$Uint8], [sliceType, $error], false)}, {prop: "ReadString", name: "ReadString", pkg: "", typ: $funcType([$Uint8], [$String, $error], false)}]; Reader.init("bytes", [{prop: "s", name: "s", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "i", name: "i", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "prevRune", name: "prevRune", embedded: false, exported: false, typ: $Int, tag: ""}]); asciiSet.init($Uint32, 8); Buffer.init("bytes", [{prop: "buf", name: "buf", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "off", name: "off", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastRead", name: "lastRead", embedded: false, exported: false, typ: readOp, tag: ""}]); @@ -38896,9 +37935,10 @@ $packages["bytes"] = (function() { return $pkg; })(); $packages["strings"] = (function() { - var $pkg = {}, $init, errors, js, io, sync, unicode, utf8, asciiSet, stringFinder, Replacer, replacer, trieNode, genericReplacer, appendSliceWriter, stringWriter, singleStringReplacer, byteReplacer, byteStringReplacer, Reader, Builder, span, sliceType, ptrType, sliceType$1, ptrType$1, sliceType$2, arrayType, arrayType$1, sliceType$3, arrayType$2, ptrType$2, arrayType$3, ptrType$3, sliceType$4, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, asciiSpace, explode, Contains, ContainsAny, ContainsRune, IndexRune, IndexAny, LastIndexAny, LastIndexByte, genSplit, SplitN, Split, Fields, FieldsFunc, Join, HasPrefix, HasSuffix, Map, ToUpper, ToLower, TrimLeftFunc, TrimRightFunc, TrimFunc, IndexFunc, indexFunc, lastIndexFunc, makeASCIISet, Trim, TrimLeft, trimLeftByte, trimLeftASCII, trimLeftUnicode, TrimRight, trimRightByte, trimRightASCII, trimRightUnicode, TrimSpace, TrimPrefix, TrimSuffix, Replace, ReplaceAll, EqualFold, Cut, CutPrefix, makeStringFinder, longestCommonSuffix, max, NewReplacer, makeGenericReplacer, getStringWriter, makeSingleStringReplacer, NewReader, IndexByte, Index, LastIndex, Count, Repeat; + var $pkg = {}, $init, errors, js, bytealg, io, sync, unicode, utf8, asciiSet, stringFinder, Replacer, replacer, trieNode, genericReplacer, appendSliceWriter, stringWriter, singleStringReplacer, byteReplacer, byteStringReplacer, Reader, Builder, span, sliceType, ptrType, sliceType$1, ptrType$1, sliceType$2, arrayType, arrayType$1, sliceType$3, arrayType$2, ptrType$2, arrayType$3, ptrType$3, sliceType$4, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, asciiSpace, explode, Contains, ContainsAny, ContainsRune, IndexRune, IndexAny, LastIndexAny, LastIndexByte, genSplit, SplitN, Split, Fields, FieldsFunc, Join, HasPrefix, HasSuffix, Map, ToUpper, ToLower, TrimLeftFunc, TrimRightFunc, TrimFunc, IndexFunc, indexFunc, lastIndexFunc, makeASCIISet, Trim, TrimLeft, trimLeftByte, trimLeftASCII, trimLeftUnicode, TrimRight, trimRightByte, trimRightASCII, trimRightUnicode, TrimSpace, TrimPrefix, TrimSuffix, Replace, ReplaceAll, EqualFold, Cut, CutPrefix, makeStringFinder, longestCommonSuffix, max, NewReplacer, makeGenericReplacer, getStringWriter, makeSingleStringReplacer, NewReader, IndexByte, Index, LastIndex, Count, Repeat; errors = $packages["errors"]; js = $packages["github.com/gopherjs/gopherjs/js"]; + bytealg = $packages["internal/bytealg"]; io = $packages["io"]; sync = $packages["sync"]; unicode = $packages["unicode"]; @@ -39049,11 +38089,11 @@ $packages["strings"] = (function() { sliceType$4 = $sliceType(ptrType$3); ptrType$4 = $ptrType(appendSliceWriter); ptrType$5 = $ptrType(stringFinder); - ptrType$6 = $ptrType(Replacer); - ptrType$7 = $ptrType(genericReplacer); - ptrType$8 = $ptrType(singleStringReplacer); - ptrType$9 = $ptrType(byteStringReplacer); - ptrType$10 = $ptrType(Reader); + ptrType$6 = $ptrType(Reader); + ptrType$7 = $ptrType(Replacer); + ptrType$8 = $ptrType(genericReplacer); + ptrType$9 = $ptrType(singleStringReplacer); + ptrType$10 = $ptrType(byteStringReplacer); explode = function explode$1(s, n) { var _tuple, a, i, l, n, s, size, x; l = utf8.RuneCountInString(s); @@ -39375,31 +38415,42 @@ $packages["strings"] = (function() { }; $pkg.FieldsFunc = FieldsFunc; Join = function Join$1(elems, sep) { - var _1, _i, _ref, b, elems, i, n, s, sep; + var _1, _i, _i$1, _q, _ref, _ref$1, b, elem, elems, n, s, sep; _1 = elems.$length; if (_1 === (0)) { return ""; } else if (_1 === (1)) { return (0 >= elems.$length ? ($throwRuntimeError("index out of range"), undefined) : elems.$array[elems.$offset + 0]); } - n = $imul(sep.length, ((elems.$length - 1 >> 0))); - i = 0; + n = 0; + if (sep.length > 0) { + if (sep.length >= (_q = 2147483647 / ((elems.$length - 1 >> 0)), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))) { + $panic(new $String("strings: Join output length overflow")); + } + n = n + (($imul(sep.length, ((elems.$length - 1 >> 0))))) >> 0; + } + _ref = elems; + _i = 0; while (true) { - if (!(i < elems.$length)) { break; } - n = n + (((i < 0 || i >= elems.$length) ? ($throwRuntimeError("index out of range"), undefined) : elems.$array[elems.$offset + i]).length) >> 0; - i = i + (1) >> 0; + if (!(_i < _ref.$length)) { break; } + elem = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (elem.length > (2147483647 - n >> 0)) { + $panic(new $String("strings: Join output length overflow")); + } + n = n + (elem.length) >> 0; + _i++; } b = new Builder.ptr(ptrType$1.nil, sliceType$2.nil); b.Grow(n); b.WriteString((0 >= elems.$length ? ($throwRuntimeError("index out of range"), undefined) : elems.$array[elems.$offset + 0])); - _ref = $subslice(elems, 1); - _i = 0; + _ref$1 = $subslice(elems, 1); + _i$1 = 0; while (true) { - if (!(_i < _ref.$length)) { break; } - s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!(_i$1 < _ref$1.$length)) { break; } + s = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); b.WriteString(sep); b.WriteString(s); - _i++; + _i$1++; } return b.String(); }; @@ -39694,7 +38745,7 @@ $packages["strings"] = (function() { $ptrType(asciiSet).prototype.contains = function contains(c) { var _q, _r, as, c, x, x$1, y; as = this.$val; - return !((((((x = as, x$1 = (_q = c / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")), ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])) & (((y = ((_r = c % 32, _r === _r ? _r : $throwRuntimeError("integer divide by zero"))), y < 32 ? (1 << y) : 0) >>> 0))) >>> 0)) === 0)); + return !((((((x = (as === ptrType.nil && $throwNilPointerError(), as), x$1 = (_q = c / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")), ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])) & (((y = ((_r = c % 32, _r === _r ? _r : $throwRuntimeError("integer divide by zero"))), y < 32 ? (1 << y) : 0) >>> 0))) >>> 0)) === 0)); }; Trim = function Trim$1(s, cutset) { var _tuple, as, cutset, ok, s; @@ -40549,11 +39600,11 @@ $packages["strings"] = (function() { while (true) { if (!(i < s.length)) { break; } b = s.charCodeAt(i); - if (!(((x = r, ((b < 0 || b >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[b])) === b))) { + if (!(((x = (r === ptrType$2.nil && $throwNilPointerError(), r), ((b < 0 || b >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[b])) === b))) { if (buf === sliceType$2.nil) { buf = (new sliceType$2($stringToBytes(s))); } - ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = (x$1 = r, ((b < 0 || b >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[b]))); + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = (x$1 = (r === ptrType$2.nil && $throwNilPointerError(), r), ((b < 0 || b >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[b]))); } i = i + (1) >> 0; } @@ -40574,7 +39625,7 @@ $packages["strings"] = (function() { /* while (true) { */ case 1: /* if (!(i < s.length)) { break; } */ if(!(i < s.length)) { $s = 2; continue; } b = s.charCodeAt(i); - if ((x = r, ((b < 0 || b >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[b])) === b) { + if ((x = (r === ptrType$2.nil && $throwNilPointerError(), r), ((b < 0 || b >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[b])) === b) { i = i + (1) >> 0; /* continue; */ $s = 1; continue; } @@ -40920,7 +39971,7 @@ $packages["strings"] = (function() { $ptrType(Reader).prototype.Reset = function Reset(s) { var r, s; r = this; - Reader.copy(r, new Reader.ptr(s, new $Int64(0, 0), -1)); + Reader.copy((r === ptrType$6.nil && $throwNilPointerError(), r), new Reader.ptr(s, new $Int64(0, 0), -1)); }; NewReader = function NewReader$1(s) { var s; @@ -41025,7 +40076,7 @@ $packages["strings"] = (function() { $ptrType(Builder).prototype.grow = function grow(n) { var b, buf, n; b = this; - buf = $makeSlice(sliceType$2, b.buf.$length, (($imul(2, b.buf.$capacity)) + n >> 0)); + buf = $subslice(bytealg.MakeNoZero(($imul(2, b.buf.$capacity)) + n >> 0), 0, b.buf.$length); $copySlice(buf, b.buf); b.buf = buf; }; @@ -41071,15 +40122,15 @@ $packages["strings"] = (function() { }; ptrType.methods = [{prop: "contains", name: "contains", pkg: "strings", typ: $funcType([$Uint8], [$Bool], false)}]; ptrType$5.methods = [{prop: "next", name: "next", pkg: "strings", typ: $funcType([$String], [$Int], false)}]; - ptrType$6.methods = [{prop: "buildOnce", name: "buildOnce", pkg: "strings", typ: $funcType([], [], false)}, {prop: "build", name: "build", pkg: "strings", typ: $funcType([], [replacer], false)}, {prop: "Replace", name: "Replace", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([io.Writer, $String], [$Int, $error], false)}]; - ptrType$3.methods = [{prop: "add", name: "add", pkg: "strings", typ: $funcType([$String, $String, $Int, ptrType$7], [], false)}]; - ptrType$7.methods = [{prop: "lookup", name: "lookup", pkg: "strings", typ: $funcType([$String, $Bool], [$String, $Int, $Bool], false)}, {prop: "Replace", name: "Replace", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([io.Writer, $String], [$Int, $error], false)}]; + ptrType$7.methods = [{prop: "buildOnce", name: "buildOnce", pkg: "strings", typ: $funcType([], [], false)}, {prop: "build", name: "build", pkg: "strings", typ: $funcType([], [replacer], false)}, {prop: "Replace", name: "Replace", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([io.Writer, $String], [$Int, $error], false)}]; + ptrType$3.methods = [{prop: "add", name: "add", pkg: "strings", typ: $funcType([$String, $String, $Int, ptrType$8], [], false)}]; + ptrType$8.methods = [{prop: "lookup", name: "lookup", pkg: "strings", typ: $funcType([$String, $Bool], [$String, $Int, $Bool], false)}, {prop: "Replace", name: "Replace", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([io.Writer, $String], [$Int, $error], false)}]; ptrType$4.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}]; stringWriter.methods = [{prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}]; - ptrType$8.methods = [{prop: "Replace", name: "Replace", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([io.Writer, $String], [$Int, $error], false)}]; - ptrType$2.methods = [{prop: "Replace", name: "Replace", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([io.Writer, $String], [$Int, $error], false)}]; ptrType$9.methods = [{prop: "Replace", name: "Replace", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([io.Writer, $String], [$Int, $error], false)}]; - ptrType$10.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "ReadAt", name: "ReadAt", pkg: "", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "ReadByte", name: "ReadByte", pkg: "", typ: $funcType([], [$Uint8, $error], false)}, {prop: "UnreadByte", name: "UnreadByte", pkg: "", typ: $funcType([], [$error], false)}, {prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}, {prop: "UnreadRune", name: "UnreadRune", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Seek", name: "Seek", pkg: "", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([io.Writer], [$Int64, $error], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([$String], [], false)}]; + ptrType$2.methods = [{prop: "Replace", name: "Replace", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([io.Writer, $String], [$Int, $error], false)}]; + ptrType$10.methods = [{prop: "Replace", name: "Replace", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([io.Writer, $String], [$Int, $error], false)}]; + ptrType$6.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "ReadAt", name: "ReadAt", pkg: "", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "ReadByte", name: "ReadByte", pkg: "", typ: $funcType([], [$Uint8, $error], false)}, {prop: "UnreadByte", name: "UnreadByte", pkg: "", typ: $funcType([], [$error], false)}, {prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}, {prop: "UnreadRune", name: "UnreadRune", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Seek", name: "Seek", pkg: "", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([io.Writer], [$Int64, $error], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([$String], [], false)}]; ptrType$1.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "copyCheck", name: "copyCheck", pkg: "strings", typ: $funcType([], [], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Cap", name: "Cap", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}, {prop: "grow", name: "grow", pkg: "strings", typ: $funcType([$Int], [], false)}, {prop: "Grow", name: "Grow", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "WriteByte", name: "WriteByte", pkg: "", typ: $funcType([$Uint8], [$error], false)}, {prop: "WriteRune", name: "WriteRune", pkg: "", typ: $funcType([$Int32], [$Int, $error], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}]; asciiSet.init($Uint32, 8); stringFinder.init("strings", [{prop: "pattern", name: "pattern", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "badCharSkip", name: "badCharSkip", embedded: false, exported: false, typ: arrayType$1, tag: ""}, {prop: "goodSuffixSkip", name: "goodSuffixSkip", embedded: false, exported: false, typ: sliceType$3, tag: ""}]); @@ -41101,10 +40152,11 @@ $packages["strings"] = (function() { /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = js.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = io.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = sync.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = unicode.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = utf8.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = bytealg.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unicode.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } asciiSpace = $toNativeArray($kindUint8, [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; @@ -41443,6 +40495,9 @@ $packages["bufio"] = (function() { $ptrType(Reader).prototype.Reset = function Reset(r) { var b, r; b = this; + if ($interfaceIsEqual(b, r)) { + return; + } if (b.buf === sliceType.nil) { b.buf = $makeSlice(sliceType, 4096); } @@ -41451,7 +40506,7 @@ $packages["bufio"] = (function() { $ptrType(Reader).prototype.reset = function reset(buf, r) { var b, buf, r; b = this; - Reader.copy(b, new Reader.ptr(buf, r, 0, 0, $ifaceNil, -1, -1)); + Reader.copy((b === ptrType.nil && $throwNilPointerError(), b), new Reader.ptr(buf, r, 0, 0, $ifaceNil, -1, -1)); }; $ptrType(Reader).prototype.fill = function fill() { var {_r, _tuple, b, err, i, n, $s, $r, $c} = $restore(this, {}); @@ -42044,6 +41099,9 @@ $packages["bufio"] = (function() { $ptrType(Writer).prototype.Reset = function Reset$1(w) { var b, w; b = this; + if ($interfaceIsEqual(b, w)) { + return; + } if (b.buf === sliceType.nil) { b.buf = $makeSlice(sliceType, 4096); } @@ -42398,7 +41456,7 @@ $packages["bufio"] = (function() { return $pkg; })(); $packages["compress/flate"] = (function() { - var $pkg = {}, $init, bufio, errors, fmt, io, math, bits, sort, strconv, sync, token, CorruptInputError, InternalError, Resetter, huffmanDecoder, Reader, decompressor, hcode, huffmanEncoder, literalNode, levelInfo, byLiteral, byFreq, huffmanBitWriter, dictDecoder, tableEntry, deflateFast, compressionLevel, compressor, dictWriter, Writer, arrayType, sliceType, sliceType$1, ptrType, sliceType$2, sliceType$3, arrayType$1, ptrType$1, sliceType$4, ptrType$2, sliceType$5, arrayType$2, arrayType$3, ptrType$3, arrayType$4, ptrType$4, arrayType$5, sliceType$6, sliceType$7, arrayType$6, arrayType$7, arrayType$8, arrayType$9, sliceType$8, ptrType$5, ptrType$6, arrayType$10, arrayType$11, arrayType$12, sliceType$9, ptrType$7, sliceType$10, ptrType$8, sliceType$11, ptrType$9, ptrType$10, arrayType$13, arrayType$14, arrayType$15, ptrType$11, ptrType$12, funcType, ptrType$15, ptrType$16, funcType$1, funcType$2, funcType$3, fixedOnce, fixedHuffmanDecoder, fixedHuffmanDecoder$24ptr, huffOffset, lengthCodes, offsetCodes, codeOrder, fixedLiteralEncoding, fixedOffsetEncoding, lengthExtraBits, lengthBase, offsetExtraBits, offsetBase, codegenOrder, levels, errWriterClosed, literalToken, matchToken, lengthCode, offsetCode, noEOF, makeReader, fixedHuffmanDecoderInit, NewReader, maxNode, newHuffmanEncoder, generateFixedLiteralEncoding, generateFixedOffsetEncoding, reverseBits, newHuffmanBitWriter, init, histogram, load32, load64, hash, newDeflateFast, emitLiteral, hash4, bulkHash4, matchLen, NewWriter; + var $pkg = {}, $init, bufio, errors, fmt, io, math, bits, sort, strconv, sync, token, CorruptInputError, InternalError, Resetter, huffmanDecoder, Reader, decompressor, hcode, huffmanEncoder, literalNode, levelInfo, byLiteral, byFreq, huffmanBitWriter, dictDecoder, tableEntry, deflateFast, compressionLevel, compressor, dictWriter, Writer, arrayType, sliceType, sliceType$1, ptrType, sliceType$2, sliceType$3, ptrType$1, arrayType$1, sliceType$4, arrayType$2, ptrType$2, ptrType$3, sliceType$5, ptrType$4, arrayType$3, arrayType$4, ptrType$5, arrayType$5, sliceType$6, sliceType$7, arrayType$6, arrayType$7, arrayType$8, arrayType$9, ptrType$6, sliceType$8, ptrType$7, ptrType$8, ptrType$9, ptrType$10, arrayType$10, arrayType$11, ptrType$11, arrayType$12, sliceType$9, ptrType$12, sliceType$10, ptrType$13, sliceType$11, ptrType$14, ptrType$15, arrayType$13, arrayType$14, arrayType$15, ptrType$16, ptrType$17, funcType, funcType$1, funcType$2, funcType$3, fixedOnce, fixedHuffmanDecoder, fixedHuffmanDecoder$24ptr, huffOffset, lengthCodes, offsetCodes, codeOrder, fixedLiteralEncoding, fixedOffsetEncoding, lengthExtraBits, lengthBase, offsetExtraBits, offsetBase, codegenOrder, levels, errWriterClosed, literalToken, matchToken, lengthCode, offsetCode, noEOF, fixedHuffmanDecoderInit, NewReader, maxNode, newHuffmanEncoder, generateFixedLiteralEncoding, generateFixedOffsetEncoding, reverseBits, newHuffmanBitWriter, init, histogram, load32, load64, hash, newDeflateFast, emitLiteral, hash4, bulkHash4, matchLen, NewWriter; bufio = $packages["bufio"]; errors = $packages["errors"]; fmt = $packages["fmt"]; @@ -42427,22 +41485,23 @@ $packages["compress/flate"] = (function() { this.linkMask = linkMask_; }); Reader = $newType(8, $kindInterface, "flate.Reader", true, "compress/flate", true, null); - decompressor = $newType(0, $kindStruct, "flate.decompressor", true, "compress/flate", false, function(r_, roffset_, b_, nb_, h1_, h2_, bits_, codebits_, dict_, buf_, step_, stepState_, final$12_, err_, toRead_, hl_, hd_, copyLen_, copyDist_) { + decompressor = $newType(0, $kindStruct, "flate.decompressor", true, "compress/flate", false, function(r_, rBuf_, roffset_, b_, nb_, h1_, h2_, bits_, codebits_, dict_, buf_, step_, stepState_, final$13_, err_, toRead_, hl_, hd_, copyLen_, copyDist_) { this.$val = this; if (arguments.length === 0) { this.r = $ifaceNil; + this.rBuf = ptrType$4.nil; this.roffset = new $Int64(0, 0); this.b = 0; this.nb = 0; this.h1 = new huffmanDecoder.ptr(0, arrayType.zero(), sliceType$1.nil, 0); this.h2 = new huffmanDecoder.ptr(0, arrayType.zero(), sliceType$1.nil, 0); - this.bits = ptrType$3.nil; - this.codebits = ptrType$4.nil; + this.bits = ptrType$2.nil; + this.codebits = ptrType$5.nil; this.dict = new dictDecoder.ptr(sliceType$5.nil, 0, 0, false); this.buf = arrayType$5.zero(); this.step = $throwNilPointerError; this.stepState = 0; - this.final$12 = false; + this.final$13 = false; this.err = $ifaceNil; this.toRead = sliceType$5.nil; this.hl = ptrType$1.nil; @@ -42452,6 +41511,7 @@ $packages["compress/flate"] = (function() { return; } this.r = r_; + this.rBuf = rBuf_; this.roffset = roffset_; this.b = b_; this.nb = nb_; @@ -42463,7 +41523,7 @@ $packages["compress/flate"] = (function() { this.buf = buf_; this.step = step_; this.stepState = stepState_; - this.final$12 = final$12_; + this.final$13 = final$13_; this.err = err_; this.toRead = toRead_; this.hl = hl_; @@ -42615,12 +41675,12 @@ $packages["compress/flate"] = (function() { this.$val = this; if (arguments.length === 0) { this.compressionLevel = new compressionLevel.ptr(0, 0, 0, 0, 0, 0); - this.w = ptrType$9.nil; + this.w = ptrType$14.nil; this.bulkHasher = $throwNilPointerError; this.fill = $throwNilPointerError; this.step = $throwNilPointerError; this.sync = false; - this.bestSpeed = ptrType$10.nil; + this.bestSpeed = ptrType$15.nil; this.chainHead = 0; this.hashHead = arrayType$13.zero(); this.hashPrev = arrayType$14.zero(); @@ -42672,7 +41732,7 @@ $packages["compress/flate"] = (function() { Writer = $newType(0, $kindStruct, "flate.Writer", true, "compress/flate", true, function(d_, dict_) { this.$val = this; if (arguments.length === 0) { - this.d = new compressor.ptr(new compressionLevel.ptr(0, 0, 0, 0, 0, 0), ptrType$9.nil, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, false, ptrType$10.nil, 0, arrayType$13.zero(), arrayType$14.zero(), 0, 0, sliceType$5.nil, 0, 0, false, sliceType$10.nil, 0, 0, 0, $ifaceNil, arrayType$15.zero()); + this.d = new compressor.ptr(new compressionLevel.ptr(0, 0, 0, 0, 0, 0), ptrType$14.nil, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, false, ptrType$15.nil, 0, arrayType$13.zero(), arrayType$14.zero(), 0, 0, sliceType$5.nil, 0, 0, false, sliceType$10.nil, 0, 0, 0, $ifaceNil, arrayType$15.zero()); this.dict = sliceType$5.nil; return; } @@ -42707,16 +41767,17 @@ $packages["compress/flate"] = (function() { ptrType = $ptrType(huffmanEncoder); sliceType$2 = $sliceType($Int8); sliceType$3 = $sliceType(compressionLevel); - arrayType$1 = $arrayType($Int, 16); ptrType$1 = $ptrType(huffmanDecoder); + arrayType$1 = $arrayType($Int, 16); sliceType$4 = $sliceType($Int); - ptrType$2 = $ptrType(decompressor); + arrayType$2 = $arrayType($Int, 316); + ptrType$2 = $ptrType(arrayType$2); + ptrType$3 = $ptrType(decompressor); sliceType$5 = $sliceType($Uint8); - arrayType$2 = $arrayType($Int, 288); - arrayType$3 = $arrayType($Int, 316); - ptrType$3 = $ptrType(arrayType$3); + ptrType$4 = $ptrType(bufio.Reader); + arrayType$3 = $arrayType($Int, 288); arrayType$4 = $arrayType($Int, 19); - ptrType$4 = $ptrType(arrayType$4); + ptrType$5 = $ptrType(arrayType$4); arrayType$5 = $arrayType($Uint8, 4); sliceType$6 = $sliceType(hcode); sliceType$7 = $sliceType(literalNode); @@ -42724,30 +41785,32 @@ $packages["compress/flate"] = (function() { arrayType$7 = $arrayType(levelInfo, 16); arrayType$8 = $arrayType($Int32, 16); arrayType$9 = $arrayType(arrayType$8, 16); + ptrType$6 = $ptrType(levelInfo); sliceType$8 = $sliceType($Int32); - ptrType$5 = $ptrType(byLiteral); - ptrType$6 = $ptrType(byFreq); + ptrType$7 = $ptrType(arrayType$8); + ptrType$8 = $ptrType(byLiteral); + ptrType$9 = $ptrType(hcode); + ptrType$10 = $ptrType(byFreq); arrayType$10 = $arrayType($Uint8, 248); arrayType$11 = $arrayType($Int32, 19); + ptrType$11 = $ptrType(dictDecoder); arrayType$12 = $arrayType(tableEntry, 16384); sliceType$9 = $sliceType(tableEntry); - ptrType$7 = $ptrType($Uint32); + ptrType$12 = $ptrType($Uint32); sliceType$10 = $sliceType(token); - ptrType$8 = $ptrType(compressor); + ptrType$13 = $ptrType(compressor); sliceType$11 = $sliceType($emptyInterface); - ptrType$9 = $ptrType(huffmanBitWriter); - ptrType$10 = $ptrType(deflateFast); + ptrType$14 = $ptrType(huffmanBitWriter); + ptrType$15 = $ptrType(deflateFast); arrayType$13 = $arrayType($Uint32, 131072); arrayType$14 = $arrayType($Uint32, 32768); arrayType$15 = $arrayType($Uint32, 257); - ptrType$11 = $ptrType(Writer); - ptrType$12 = $ptrType(dictWriter); - funcType = $funcType([ptrType$2], [], false); - ptrType$15 = $ptrType(hcode); - ptrType$16 = $ptrType(dictDecoder); + ptrType$16 = $ptrType(Writer); + ptrType$17 = $ptrType(dictWriter); + funcType = $funcType([ptrType$3], [], false); funcType$1 = $funcType([sliceType$5, sliceType], [], false); - funcType$2 = $funcType([ptrType$8, sliceType$5], [$Int], false); - funcType$3 = $funcType([ptrType$8], [], false); + funcType$2 = $funcType([ptrType$13, sliceType$5], [$Int], false); + funcType$3 = $funcType([ptrType$13], [], false); literalToken = function literalToken$1(literal) { var literal; return (((0 + literal >>> 0) >>> 0)); @@ -42804,7 +41867,7 @@ $packages["compress/flate"] = (function() { var _i, _i$1, _i$2, _i$3, _i$4, _r, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tmp, _tmp$1, chunk, chunk$1, chunk$2, code, code$1, count, h, i, i$1, i$2, j, j$1, lengths, link, linktab, linktab$1, max, min, n, n$1, nextcode, numLinks, off, off$1, off$2, reverse, reverse$1, value, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, y, y$1, y$2, y$3, y$4; h = this; if (!((h.min === 0))) { - huffmanDecoder.copy(h, new huffmanDecoder.ptr(0, arrayType.zero(), sliceType$1.nil, 0)); + huffmanDecoder.copy((h === ptrType$1.nil && $throwNilPointerError(), h), new huffmanDecoder.ptr(0, arrayType.zero(), sliceType$1.nil, 0)); } count = arrayType$1.zero(); _tmp = 0; @@ -42959,7 +42022,7 @@ $packages["compress/flate"] = (function() { } $s = 1; continue; case 2: - f.final$12 = ((f.b & 1) >>> 0) === 1; + f.final$13 = ((f.b & 1) >>> 0) === 1; f.b = (y = (1), y < 32 ? (f.b >>> y) : 0) >>> 0; typ = (f.b & 3) >>> 0; f.b = (y$1 = (2), y$1 < 32 ? (f.b >>> y$1) : 0) >>> 0; @@ -43028,7 +42091,7 @@ $packages["compress/flate"] = (function() { return f.err; }; $ptrType(decompressor).prototype.readHuffman = function readHuffman() { - var {_1, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tuple, b, err, err$1, err$2, err$3, f, i, i$1, i$2, j, n, nb, nclen, ndist, nlit, rep, x, x$1, x$10, x$11, x$12, x$13, x$14, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, y, y$1, y$2, y$3, y$4, y$5, $s, $r, $c} = $restore(this, {}); + var {_1, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tuple, b, err, err$1, err$2, err$3, f, i, i$1, i$2, j, n, nb, nclen, ndist, nlit, rep, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, y, y$1, y$2, y$3, y$4, y$5, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: f = this; /* while (true) { */ case 1: @@ -43108,7 +42171,7 @@ $packages["compress/flate"] = (function() { if (i$2 === 0) { $s = -1; return ((x$9 = f.roffset, new CorruptInputError(x$9.$high, x$9.$low))); } - b = (x$10 = f.bits, x$11 = i$2 - 1 >> 0, ((x$11 < 0 || x$11 >= x$10.length) ? ($throwRuntimeError("index out of range"), undefined) : x$10[x$11])); + b = (x$10 = (x$11 = f.bits, (x$11 === ptrType$2.nil && $throwNilPointerError(), x$11)), x$12 = i$2 - 1 >> 0, ((x$12 < 0 || x$12 >= x$10.length) ? ($throwRuntimeError("index out of range"), undefined) : x$10[x$12])); } else if (_1 === (17)) { rep = 3; nb = 3; @@ -43133,25 +42196,25 @@ $packages["compress/flate"] = (function() { f.b = (y$5 = (nb), y$5 < 32 ? (f.b >>> y$5) : 0) >>> 0; f.nb = f.nb - (nb) >>> 0; if ((i$2 + rep >> 0) > n) { - $s = -1; return ((x$12 = f.roffset, new CorruptInputError(x$12.$high, x$12.$low))); + $s = -1; return ((x$13 = f.roffset, new CorruptInputError(x$13.$high, x$13.$low))); } j = 0; while (true) { if (!(j < rep)) { break; } - (x$13 = f.bits, x$13.nilCheck, ((i$2 < 0 || i$2 >= x$13.length) ? ($throwRuntimeError("index out of range"), undefined) : x$13[i$2] = b)); + (x$14 = f.bits, x$14.nilCheck, ((i$2 < 0 || i$2 >= x$14.length) ? ($throwRuntimeError("index out of range"), undefined) : x$14[i$2] = b)); i$2 = i$2 + (1) >> 0; j = j + (1) >> 0; } $s = 9; continue; case 10: if (!f.h1.init($subslice(new sliceType$4(f.bits), 0, nlit)) || !f.h2.init($subslice(new sliceType$4(f.bits), nlit, (nlit + ndist >> 0)))) { - $s = -1; return ((x$14 = f.roffset, new CorruptInputError(x$14.$high, x$14.$low))); + $s = -1; return ((x$15 = f.roffset, new CorruptInputError(x$15.$high, x$15.$low))); } - if (f.h1.min < f.bits[256]) { - f.h1.min = f.bits[256]; + if (f.h1.min < (x$16 = f.bits, (x$16 === ptrType$2.nil && $throwNilPointerError(), x$16))[256]) { + f.h1.min = (x$17 = f.bits, (x$17 === ptrType$2.nil && $throwNilPointerError(), x$17))[256]; } $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: readHuffman, $c: true, $r, _1, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tuple, b, err, err$1, err$2, err$3, f, i, i$1, i$2, j, n, nb, nclen, ndist, nlit, rep, x, x$1, x$10, x$11, x$12, x$13, x$14, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, y, y$1, y$2, y$3, y$4, y$5, $s};return $f; + /* */ } return; } var $f = {$blk: readHuffman, $c: true, $r, _1, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tuple, b, err, err$1, err$2, err$3, f, i, i$1, i$2, j, n, nb, nclen, ndist, nlit, rep, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, y, y$1, y$2, y$3, y$4, y$5, $s};return $f; }; $ptrType(decompressor).prototype.huffmanBlock = function huffmanBlock() { var {_1, _r, _r$1, _r$2, _r$3, _r$4, _tmp, _tmp$1, _tuple, _tuple$1, cnt, dist, err, extra, f, length$1, n, nb, v, x, x$1, x$2, y, y$1, y$2, y$3, y$4, y$5, y$6, $s, $r, $c} = $restore(this, {}); @@ -43193,7 +42256,7 @@ $packages["compress/flate"] = (function() { f.dict.writeByte(((v << 24 >>> 24))); if (f.dict.availWrite() === 0) { f.toRead = f.dict.readFlush(); - f.step = $methodExpr(ptrType$2, "huffmanBlock"); + f.step = $methodExpr(ptrType$3, "huffmanBlock"); f.stepState = 0; $s = -1; return; } @@ -43326,7 +42389,7 @@ $packages["compress/flate"] = (function() { f.copyLen = f.copyLen - (cnt) >> 0; if ((f.dict.availWrite() === 0) || f.copyLen > 0) { f.toRead = f.dict.readFlush(); - f.step = $methodExpr(ptrType$2, "huffmanBlock"); + f.step = $methodExpr(ptrType$3, "huffmanBlock"); f.stepState = 1; $s = -1; return; } @@ -43386,7 +42449,7 @@ $packages["compress/flate"] = (function() { } if ((f.dict.availWrite() === 0) || f.copyLen > 0) { f.toRead = f.dict.readFlush(); - f.step = $methodExpr(ptrType$2, "copyData"); + f.step = $methodExpr(ptrType$3, "copyData"); $s = -1; return; } f.finishBlock(); @@ -43396,13 +42459,13 @@ $packages["compress/flate"] = (function() { $ptrType(decompressor).prototype.finishBlock = function finishBlock() { var f; f = this; - if (f.final$12) { + if (f.final$13) { if (f.dict.availRead() > 0) { f.toRead = f.dict.readFlush(); } f.err = io.EOF; } - f.step = $methodExpr(ptrType$2, "nextBlock"); + f.step = $methodExpr(ptrType$3, "nextBlock"); }; noEOF = function noEOF$1(e) { var e; @@ -43476,22 +42539,30 @@ $packages["compress/flate"] = (function() { $s = -1; return [0, $ifaceNil]; /* */ } return; } var $f = {$blk: huffSym, $c: true, $r, _r, _tmp, _tmp$1, _tuple, b, c, chunk, err, f, h, n, nb, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, y, y$1, $s};return $f; }; - makeReader = function makeReader$1(r) { - var _tuple, ok, r, rr; + $ptrType(decompressor).prototype.makeReader = function makeReader(r) { + var _tuple, f, ok, r, rr; + f = this; _tuple = $assertType(r, Reader, true); rr = _tuple[0]; ok = _tuple[1]; if (ok) { - return rr; + f.rBuf = ptrType$4.nil; + f.r = rr; + return; + } + if (!(f.rBuf === ptrType$4.nil)) { + f.rBuf.Reset(r); + } else { + f.rBuf = bufio.NewReader(r); } - return bufio.NewReader(r); + f.r = f.rBuf; }; fixedHuffmanDecoderInit = function fixedHuffmanDecoderInit$1() { var {$s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: $r = fixedOnce.Do((function fixedHuffmanDecoderInit·func1() { var bits$1, i, i$1, i$2, i$3; - bits$1 = arrayType$2.zero(); + bits$1 = arrayType$3.zero(); i = 0; while (true) { if (!(i < 144)) { break; } @@ -43524,7 +42595,8 @@ $packages["compress/flate"] = (function() { $ptrType(decompressor).prototype.Reset = function Reset(r, dict) { var dict, f, r; f = this; - decompressor.copy(f, new decompressor.ptr(makeReader(r), new $Int64(0, 0), 0, 0, new huffmanDecoder.ptr(0, arrayType.zero(), sliceType$1.nil, 0), new huffmanDecoder.ptr(0, arrayType.zero(), sliceType$1.nil, 0), f.bits, f.codebits, $clone(f.dict, dictDecoder), arrayType$5.zero(), $methodExpr(ptrType$2, "nextBlock"), 0, false, $ifaceNil, sliceType$5.nil, ptrType$1.nil, ptrType$1.nil, 0, 0)); + decompressor.copy((f === ptrType$3.nil && $throwNilPointerError(), f), new decompressor.ptr($ifaceNil, f.rBuf, new $Int64(0, 0), 0, 0, new huffmanDecoder.ptr(0, arrayType.zero(), sliceType$1.nil, 0), new huffmanDecoder.ptr(0, arrayType.zero(), sliceType$1.nil, 0), f.bits, f.codebits, $clone(f.dict, dictDecoder), arrayType$5.zero(), $methodExpr(ptrType$3, "nextBlock"), 0, false, $ifaceNil, sliceType$5.nil, ptrType$1.nil, ptrType$1.nil, 0, 0)); + f.makeReader(r); f.dict.init(32768, dict); return $ifaceNil; }; @@ -43533,11 +42605,11 @@ $packages["compress/flate"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: f = [f]; $r = fixedHuffmanDecoderInit(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - f[0] = new decompressor.ptr($ifaceNil, new $Int64(0, 0), 0, 0, new huffmanDecoder.ptr(0, arrayType.zero(), sliceType$1.nil, 0), new huffmanDecoder.ptr(0, arrayType.zero(), sliceType$1.nil, 0), ptrType$3.nil, ptrType$4.nil, new dictDecoder.ptr(sliceType$5.nil, 0, 0, false), arrayType$5.zero(), $throwNilPointerError, 0, false, $ifaceNil, sliceType$5.nil, ptrType$1.nil, ptrType$1.nil, 0, 0); - f[0].r = makeReader(r); - f[0].bits = arrayType$3.zero(); + f[0] = new decompressor.ptr($ifaceNil, ptrType$4.nil, new $Int64(0, 0), 0, 0, new huffmanDecoder.ptr(0, arrayType.zero(), sliceType$1.nil, 0), new huffmanDecoder.ptr(0, arrayType.zero(), sliceType$1.nil, 0), ptrType$2.nil, ptrType$5.nil, new dictDecoder.ptr(sliceType$5.nil, 0, 0, false), arrayType$5.zero(), $throwNilPointerError, 0, false, $ifaceNil, sliceType$5.nil, ptrType$1.nil, ptrType$1.nil, 0, 0); + f[0].makeReader(r); + f[0].bits = arrayType$2.zero(); f[0].codebits = arrayType$4.zero(); - f[0].step = $methodExpr(ptrType$2, "nextBlock"); + f[0].step = $methodExpr(ptrType$3, "nextBlock"); f[0].dict.init(32768, sliceType$5.nil); $s = -1; return f[0]; /* */ } return; } var $f = {$blk: NewReader$1, $c: true, $r, f, r, $s};return $f; @@ -43642,7 +42714,7 @@ $packages["compress/flate"] = (function() { ((maxBits < 0 || maxBits >= levels$1.length) ? ($throwRuntimeError("index out of range"), undefined) : levels$1[maxBits]).needed = ($imul(2, n)) - 4 >> 0; level$1 = maxBits; while (true) { - l = ((level$1 < 0 || level$1 >= levels$1.length) ? ($throwRuntimeError("index out of range"), undefined) : levels$1[level$1]); + l = ((level$1 < 0 || level$1 >= levels$1.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(levels$1, level$1, ptrType$6)); if ((l.nextPairFreq === 2147483647) && (l.nextCharFreq === 2147483647)) { l.needed = 0; (x$1 = level$1 + 1 >> 0, ((x$1 < 0 || x$1 >= levels$1.length) ? ($throwRuntimeError("index out of range"), undefined) : levels$1[x$1])).nextPairFreq = 2147483647; @@ -43679,11 +42751,11 @@ $packages["compress/flate"] = (function() { } bitCount = $subslice(new sliceType$8(h.bitCount), 0, (maxBits + 1 >> 0)); bits$1 = 1; - counts = ((maxBits < 0 || maxBits >= leafCounts.length) ? ($throwRuntimeError("index out of range"), undefined) : leafCounts[maxBits]); + counts = ((maxBits < 0 || maxBits >= leafCounts.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(leafCounts, maxBits, ptrType$7)); level$2 = maxBits; while (true) { if (!(level$2 > 0)) { break; } - ((bits$1 < 0 || bits$1 >= bitCount.$length) ? ($throwRuntimeError("index out of range"), undefined) : bitCount.$array[bitCount.$offset + bits$1] = ((x$9 = counts, ((level$2 < 0 || level$2 >= x$9.length) ? ($throwRuntimeError("index out of range"), undefined) : x$9[level$2])) - (x$10 = counts, x$11 = level$2 - 1 >> 0, ((x$11 < 0 || x$11 >= x$10.length) ? ($throwRuntimeError("index out of range"), undefined) : x$10[x$11])) >> 0)); + ((bits$1 < 0 || bits$1 >= bitCount.$length) ? ($throwRuntimeError("index out of range"), undefined) : bitCount.$array[bitCount.$offset + bits$1] = ((x$9 = (counts === ptrType$7.nil && $throwNilPointerError(), counts), ((level$2 < 0 || level$2 >= x$9.length) ? ($throwRuntimeError("index out of range"), undefined) : x$9[level$2])) - (x$10 = (counts === ptrType$7.nil && $throwNilPointerError(), counts), x$11 = level$2 - 1 >> 0, ((x$11 < 0 || x$11 >= x$10.length) ? ($throwRuntimeError("index out of range"), undefined) : x$10[x$11])) >> 0)); bits$1 = bits$1 + (1) >> 0; level$2 = level$2 - (1) >> 0; } @@ -43706,7 +42778,7 @@ $packages["compress/flate"] = (function() { /* continue; */ $s = 1; continue; } chunk = $subslice(list, (list.$length - ((bits$1 >> 0)) >> 0)); - $r = (h.$ptr_lns || (h.$ptr_lns = new ptrType$5(function() { return this.$target.lns; }, function($v) { this.$target.lns = $v; }, h))).sort(chunk); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = (h === ptrType.nil && $throwNilPointerError(), (h.$ptr_lns || (h.$ptr_lns = new ptrType$8(function() { return this.$target.lns; }, function($v) { this.$target.lns = $v; }, h)))).sort(chunk); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _ref$1 = chunk; _i$1 = 0; while (true) { @@ -43754,12 +42826,12 @@ $packages["compress/flate"] = (function() { if (!(_i$1 < _ref$1.$length)) { break; } i$1 = _i$1; node = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), literalNode); - (x$1 = h.codes, x$2 = node.literal, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])).set(((i$1 << 16 >>> 16)), 1); + (x$1 = h.codes, x$2 = node.literal, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + x$2, ptrType$9))).set(((i$1 << 16 >>> 16)), 1); _i$1++; } $s = -1; return; } - $r = (h.$ptr_lfs || (h.$ptr_lfs = new ptrType$6(function() { return this.$target.lfs; }, function($v) { this.$target.lfs = $v; }, h))).sort(list); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = (h === ptrType.nil && $throwNilPointerError(), (h.$ptr_lfs || (h.$ptr_lfs = new ptrType$10(function() { return this.$target.lfs; }, function($v) { this.$target.lfs = $v; }, h)))).sort(list); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } bitCount = h.bitCounts(list, maxBits); $r = h.assignEncodingAndSize(bitCount, list); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; @@ -44509,7 +43581,7 @@ $packages["compress/flate"] = (function() { $ptrType(dictDecoder).prototype.init = function init$3(size, dict) { var dd, dict, size; dd = this; - dictDecoder.copy(dd, new dictDecoder.ptr(dd.hist, 0, 0, false)); + dictDecoder.copy((dd === ptrType$11.nil && $throwNilPointerError(), dd), new dictDecoder.ptr(dd.hist, 0, 0, false)); if (dd.hist.$capacity < size) { dd.hist = $makeSlice(sliceType$5, size); } @@ -44890,7 +43962,7 @@ $packages["compress/flate"] = (function() { /* */ } return; } var $f = {$blk: writeBlock$1, $c: true, $r, d, index, tokens, window, $s};return $f; }; $ptrType(compressor).prototype.fillWindow = function fillWindow(b) { - var {_i, _q, _ref, b, d, di, dst, dstSize, end, hh, i, index, j, loops, n, toCheck, val, x, x$1, $s, $r, $c} = $restore(this, {b}); + var {_i, _q, _ref, b, d, di, dst, dstSize, end, hh, i, index, j, loops, n, toCheck, val, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {b}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: d = this; if (d.compressionLevel.level < 2) { @@ -44927,8 +43999,8 @@ $packages["compress/flate"] = (function() { i = _i; val = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); di = i + index >> 0; - hh = $indexPtr(d.hashHead, ((val & 131071) >>> 0), ptrType$7); - (x = d.hashPrev, x$1 = di & 32767, ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1] = hh.$get())); + hh = (x = d.hashHead, x$1 = (val & 131071) >>> 0, ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x, x$1, ptrType$12))); + (x$2 = d.hashPrev, x$3 = di & 32767, ((x$3 < 0 || x$3 >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[x$3] = hh.$get())); hh.$set((((di + d.hashOffset >> 0) >>> 0))); _i++; } @@ -44938,7 +44010,7 @@ $packages["compress/flate"] = (function() { d.windowEnd = n; d.index = n; $s = -1; return; - /* */ } return; } var $f = {$blk: fillWindow, $c: true, $r, _i, _q, _ref, b, d, di, dst, dstSize, end, hh, i, index, j, loops, n, toCheck, val, x, x$1, $s};return $f; + /* */ } return; } var $f = {$blk: fillWindow, $c: true, $r, _i, _q, _ref, b, d, di, dst, dstSize, end, hh, i, index, j, loops, n, toCheck, val, x, x$1, x$2, x$3, $s};return $f; }; $ptrType(compressor).prototype.findMatch = function findMatch(pos, prevHead, prevLength, lookahead) { var d, i, length$1, lookahead, minIndex, minMatchLook, n, nice, offset$1, ok, pos, prevHead, prevLength, tries, wEnd, wPos, win, x, x$1, x$2, x$3, x$4; @@ -45098,7 +44170,7 @@ $packages["compress/flate"] = (function() { d.bulkHasher = bulkHash4; }; $ptrType(compressor).prototype.deflate = function deflate() { - var {_r, _r$1, _r$2, _tuple, d, hash$2, hash$3, hh, hh$1, i, index, lookahead, minIndex, newIndex, newLength, newOffset, ok, prevLength, prevOffset, x, x$1, x$2, x$3, x$4, x$5, x$6, $s, $r, $c} = $restore(this, {}); + var {_r, _r$1, _r$2, _tuple, d, hash$2, hash$3, hh, hh$1, i, index, lookahead, minIndex, newIndex, newLength, newOffset, ok, prevLength, prevOffset, x, x$1, x$10, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: d = this; if ((d.windowEnd - d.index >> 0) < 262 && !d.sync) { @@ -45141,9 +44213,9 @@ $packages["compress/flate"] = (function() { /* } */ case 4: if (d.index < d.maxInsertIndex) { hash$2 = hash4($subslice(d.window, d.index, (d.index + 4 >> 0))); - hh = $indexPtr(d.hashHead, ((hash$2 & 131071) >>> 0), ptrType$7); + hh = (x$2 = d.hashHead, x$3 = (hash$2 & 131071) >>> 0, ((x$3 < 0 || x$3 >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$2, x$3, ptrType$12))); d.chainHead = ((hh.$get() >> 0)); - (x$2 = d.hashPrev, x$3 = d.index & 32767, ((x$3 < 0 || x$3 >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[x$3] = ((d.chainHead >>> 0)))); + (x$4 = d.hashPrev, x$5 = d.index & 32767, ((x$5 < 0 || x$5 >= x$4.length) ? ($throwRuntimeError("index out of range"), undefined) : x$4[x$5] = ((d.chainHead >>> 0)))); hh.$set((((d.index + d.hashOffset >> 0) >>> 0))); } prevLength = d.length; @@ -45185,8 +44257,8 @@ $packages["compress/flate"] = (function() { if (!(index < newIndex)) { break; } if (index < d.maxInsertIndex) { hash$3 = hash4($subslice(d.window, index, (index + 4 >> 0))); - hh$1 = $indexPtr(d.hashHead, ((hash$3 & 131071) >>> 0), ptrType$7); - (x$4 = d.hashPrev, x$5 = index & 32767, ((x$5 < 0 || x$5 >= x$4.length) ? ($throwRuntimeError("index out of range"), undefined) : x$4[x$5] = hh$1.$get())); + hh$1 = (x$6 = d.hashHead, x$7 = (hash$3 & 131071) >>> 0, ((x$7 < 0 || x$7 >= x$6.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$6, x$7, ptrType$12))); + (x$8 = d.hashPrev, x$9 = index & 32767, ((x$9 < 0 || x$9 >= x$8.length) ? ($throwRuntimeError("index out of range"), undefined) : x$8[x$9] = hh$1.$get())); hh$1.$set((((index + d.hashOffset >> 0) >>> 0))); } index = index + (1) >> 0; @@ -45218,7 +44290,7 @@ $packages["compress/flate"] = (function() { if (!((d.compressionLevel.fastSkipHashing === 2147483647))) { i = d.index; } - d.tokens = $append(d.tokens, literalToken((((x$6 = d.window, ((i < 0 || i >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + i])) >>> 0)))); + d.tokens = $append(d.tokens, literalToken((((x$10 = d.window, ((i < 0 || i >= x$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + i])) >>> 0)))); /* */ if (d.tokens.$length === 16384) { $s = 18; continue; } /* */ $s = 19; continue; /* if (d.tokens.$length === 16384) { */ case 18: @@ -45238,7 +44310,7 @@ $packages["compress/flate"] = (function() { $s = 1; continue; case 2: $s = -1; return; - /* */ } return; } var $f = {$blk: deflate, $c: true, $r, _r, _r$1, _r$2, _tuple, d, hash$2, hash$3, hh, hh$1, i, index, lookahead, minIndex, newIndex, newLength, newOffset, ok, prevLength, prevOffset, x, x$1, x$2, x$3, x$4, x$5, x$6, $s};return $f; + /* */ } return; } var $f = {$blk: deflate, $c: true, $r, _r, _r$1, _r$2, _tuple, d, hash$2, hash$3, hh, hh$1, i, index, lookahead, minIndex, newIndex, newLength, newOffset, ok, prevLength, prevOffset, x, x$1, x$10, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; }; $ptrType(compressor).prototype.fillStore = function fillStore(b) { var b, d, n; @@ -45343,19 +44415,19 @@ $packages["compress/flate"] = (function() { /* */ $s = 7; continue; /* if ((level === 0)) { */ case 2: d.window = $makeSlice(sliceType$5, 65535); - d.fill = $methodExpr(ptrType$8, "fillStore"); - d.step = $methodExpr(ptrType$8, "store"); + d.fill = $methodExpr(ptrType$13, "fillStore"); + d.step = $methodExpr(ptrType$13, "store"); $s = 8; continue; /* } else if ((level === -2)) { */ case 3: d.window = $makeSlice(sliceType$5, 65535); - d.fill = $methodExpr(ptrType$8, "fillStore"); - d.step = $methodExpr(ptrType$8, "storeHuff"); + d.fill = $methodExpr(ptrType$13, "fillStore"); + d.step = $methodExpr(ptrType$13, "storeHuff"); $s = 8; continue; /* } else if ((level === 1)) { */ case 4: compressionLevel.copy(d.compressionLevel, ((level < 0 || level >= levels.$length) ? ($throwRuntimeError("index out of range"), undefined) : levels.$array[levels.$offset + level])); d.window = $makeSlice(sliceType$5, 65535); - d.fill = $methodExpr(ptrType$8, "fillStore"); - d.step = $methodExpr(ptrType$8, "encSpeed"); + d.fill = $methodExpr(ptrType$13, "fillStore"); + d.step = $methodExpr(ptrType$13, "encSpeed"); d.bestSpeed = newDeflateFast(); d.tokens = $makeSlice(sliceType$10, 65535); $s = 8; continue; @@ -45363,14 +44435,14 @@ $packages["compress/flate"] = (function() { level = 6; compressionLevel.copy(d.compressionLevel, ((level < 0 || level >= levels.$length) ? ($throwRuntimeError("index out of range"), undefined) : levels.$array[levels.$offset + level])); d.initDeflate(); - d.fill = $methodExpr(ptrType$8, "fillDeflate"); - d.step = $methodExpr(ptrType$8, "deflate"); + d.fill = $methodExpr(ptrType$13, "fillDeflate"); + d.step = $methodExpr(ptrType$13, "deflate"); $s = 8; continue; /* } else if (2 <= level && level <= 9) { */ case 6: compressionLevel.copy(d.compressionLevel, ((level < 0 || level >= levels.$length) ? ($throwRuntimeError("index out of range"), undefined) : levels.$array[levels.$offset + level])); d.initDeflate(); - d.fill = $methodExpr(ptrType$8, "fillDeflate"); - d.step = $methodExpr(ptrType$8, "deflate"); + d.fill = $methodExpr(ptrType$13, "fillDeflate"); + d.step = $methodExpr(ptrType$13, "deflate"); $s = 8; continue; /* } else { */ case 7: _r = fmt.Errorf("flate: invalid compression level %d: want value in range [-2, 9]", new sliceType$11([new $Int(level)])); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } @@ -45460,11 +44532,11 @@ $packages["compress/flate"] = (function() { var {_r, dw, err, level, w, $s, $r, $c} = $restore(this, {w, level}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: dw = [dw]; - dw[0] = new Writer.ptr(new compressor.ptr(new compressionLevel.ptr(0, 0, 0, 0, 0, 0), ptrType$9.nil, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, false, ptrType$10.nil, 0, arrayType$13.zero(), arrayType$14.zero(), 0, 0, sliceType$5.nil, 0, 0, false, sliceType$10.nil, 0, 0, 0, $ifaceNil, arrayType$15.zero()), sliceType$5.nil); + dw[0] = new Writer.ptr(new compressor.ptr(new compressionLevel.ptr(0, 0, 0, 0, 0, 0), ptrType$14.nil, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, false, ptrType$15.nil, 0, arrayType$13.zero(), arrayType$14.zero(), 0, 0, sliceType$5.nil, 0, 0, false, sliceType$10.nil, 0, 0, 0, $ifaceNil, arrayType$15.zero()), sliceType$5.nil); _r = dw[0].d.init(w, level); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [ptrType$11.nil, err]; + $s = -1; return [ptrType$16.nil, err]; } $s = -1; return [dw[0], $ifaceNil]; /* */ } return; } var $f = {$blk: NewWriter$1, $c: true, $r, _r, dw, err, level, w, $s};return $f; @@ -45520,7 +44592,7 @@ $packages["compress/flate"] = (function() { var {_tuple, dst, dw, ok, w, $s, $r, $c} = $restore(this, {dst}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: w = this; - _tuple = $assertType(w.d.w.writer, ptrType$12, true); + _tuple = $assertType(w.d.w.writer, ptrType$17, true); dw = _tuple[0]; ok = _tuple[1]; /* */ if (ok) { $s = 1; continue; } @@ -45540,23 +44612,23 @@ $packages["compress/flate"] = (function() { CorruptInputError.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; InternalError.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; ptrType$1.methods = [{prop: "init", name: "init", pkg: "compress/flate", typ: $funcType([sliceType$4], [$Bool], false)}]; - ptrType$2.methods = [{prop: "nextBlock", name: "nextBlock", pkg: "compress/flate", typ: $funcType([], [], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$5], [$Int, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "readHuffman", name: "readHuffman", pkg: "compress/flate", typ: $funcType([], [$error], false)}, {prop: "huffmanBlock", name: "huffmanBlock", pkg: "compress/flate", typ: $funcType([], [], false)}, {prop: "dataBlock", name: "dataBlock", pkg: "compress/flate", typ: $funcType([], [], false)}, {prop: "copyData", name: "copyData", pkg: "compress/flate", typ: $funcType([], [], false)}, {prop: "finishBlock", name: "finishBlock", pkg: "compress/flate", typ: $funcType([], [], false)}, {prop: "moreBits", name: "moreBits", pkg: "compress/flate", typ: $funcType([], [$error], false)}, {prop: "huffSym", name: "huffSym", pkg: "compress/flate", typ: $funcType([ptrType$1], [$Int, $error], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([io.Reader, sliceType$5], [$error], false)}]; - ptrType$15.methods = [{prop: "set", name: "set", pkg: "compress/flate", typ: $funcType([$Uint16, $Uint16], [], false)}]; + ptrType$3.methods = [{prop: "nextBlock", name: "nextBlock", pkg: "compress/flate", typ: $funcType([], [], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$5], [$Int, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "readHuffman", name: "readHuffman", pkg: "compress/flate", typ: $funcType([], [$error], false)}, {prop: "huffmanBlock", name: "huffmanBlock", pkg: "compress/flate", typ: $funcType([], [], false)}, {prop: "dataBlock", name: "dataBlock", pkg: "compress/flate", typ: $funcType([], [], false)}, {prop: "copyData", name: "copyData", pkg: "compress/flate", typ: $funcType([], [], false)}, {prop: "finishBlock", name: "finishBlock", pkg: "compress/flate", typ: $funcType([], [], false)}, {prop: "moreBits", name: "moreBits", pkg: "compress/flate", typ: $funcType([], [$error], false)}, {prop: "huffSym", name: "huffSym", pkg: "compress/flate", typ: $funcType([ptrType$1], [$Int, $error], false)}, {prop: "makeReader", name: "makeReader", pkg: "compress/flate", typ: $funcType([io.Reader], [], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([io.Reader, sliceType$5], [$error], false)}]; + ptrType$9.methods = [{prop: "set", name: "set", pkg: "compress/flate", typ: $funcType([$Uint16, $Uint16], [], false)}]; ptrType.methods = [{prop: "bitLength", name: "bitLength", pkg: "compress/flate", typ: $funcType([sliceType$8], [$Int], false)}, {prop: "bitCounts", name: "bitCounts", pkg: "compress/flate", typ: $funcType([sliceType$7, $Int32], [sliceType$8], false)}, {prop: "assignEncodingAndSize", name: "assignEncodingAndSize", pkg: "compress/flate", typ: $funcType([sliceType$8, sliceType$7], [], false)}, {prop: "generate", name: "generate", pkg: "compress/flate", typ: $funcType([sliceType$8, $Int32], [], false)}]; byLiteral.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}]; - ptrType$5.methods = [{prop: "sort", name: "sort", pkg: "compress/flate", typ: $funcType([sliceType$7], [], false)}]; + ptrType$8.methods = [{prop: "sort", name: "sort", pkg: "compress/flate", typ: $funcType([sliceType$7], [], false)}]; byFreq.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}]; - ptrType$6.methods = [{prop: "sort", name: "sort", pkg: "compress/flate", typ: $funcType([sliceType$7], [], false)}]; - ptrType$9.methods = [{prop: "reset", name: "reset", pkg: "compress/flate", typ: $funcType([io.Writer], [], false)}, {prop: "flush", name: "flush", pkg: "compress/flate", typ: $funcType([], [], false)}, {prop: "write", name: "write", pkg: "compress/flate", typ: $funcType([sliceType$5], [], false)}, {prop: "writeBits", name: "writeBits", pkg: "compress/flate", typ: $funcType([$Int32, $Uint], [], false)}, {prop: "writeBytes", name: "writeBytes", pkg: "compress/flate", typ: $funcType([sliceType$5], [], false)}, {prop: "generateCodegen", name: "generateCodegen", pkg: "compress/flate", typ: $funcType([$Int, $Int, ptrType, ptrType], [], false)}, {prop: "dynamicSize", name: "dynamicSize", pkg: "compress/flate", typ: $funcType([ptrType, ptrType, $Int], [$Int, $Int], false)}, {prop: "fixedSize", name: "fixedSize", pkg: "compress/flate", typ: $funcType([$Int], [$Int], false)}, {prop: "storedSize", name: "storedSize", pkg: "compress/flate", typ: $funcType([sliceType$5], [$Int, $Bool], false)}, {prop: "writeCode", name: "writeCode", pkg: "compress/flate", typ: $funcType([hcode], [], false)}, {prop: "writeDynamicHeader", name: "writeDynamicHeader", pkg: "compress/flate", typ: $funcType([$Int, $Int, $Int, $Bool], [], false)}, {prop: "writeStoredHeader", name: "writeStoredHeader", pkg: "compress/flate", typ: $funcType([$Int, $Bool], [], false)}, {prop: "writeFixedHeader", name: "writeFixedHeader", pkg: "compress/flate", typ: $funcType([$Bool], [], false)}, {prop: "writeBlock", name: "writeBlock", pkg: "compress/flate", typ: $funcType([sliceType$10, $Bool, sliceType$5], [], false)}, {prop: "writeBlockDynamic", name: "writeBlockDynamic", pkg: "compress/flate", typ: $funcType([sliceType$10, $Bool, sliceType$5], [], false)}, {prop: "indexTokens", name: "indexTokens", pkg: "compress/flate", typ: $funcType([sliceType$10], [$Int, $Int], false)}, {prop: "writeTokens", name: "writeTokens", pkg: "compress/flate", typ: $funcType([sliceType$10, sliceType$6, sliceType$6], [], false)}, {prop: "writeBlockHuff", name: "writeBlockHuff", pkg: "compress/flate", typ: $funcType([$Bool, sliceType$5], [], false)}]; - ptrType$16.methods = [{prop: "init", name: "init", pkg: "compress/flate", typ: $funcType([$Int, sliceType$5], [], false)}, {prop: "histSize", name: "histSize", pkg: "compress/flate", typ: $funcType([], [$Int], false)}, {prop: "availRead", name: "availRead", pkg: "compress/flate", typ: $funcType([], [$Int], false)}, {prop: "availWrite", name: "availWrite", pkg: "compress/flate", typ: $funcType([], [$Int], false)}, {prop: "writeSlice", name: "writeSlice", pkg: "compress/flate", typ: $funcType([], [sliceType$5], false)}, {prop: "writeMark", name: "writeMark", pkg: "compress/flate", typ: $funcType([$Int], [], false)}, {prop: "writeByte", name: "writeByte", pkg: "compress/flate", typ: $funcType([$Uint8], [], false)}, {prop: "writeCopy", name: "writeCopy", pkg: "compress/flate", typ: $funcType([$Int, $Int], [$Int], false)}, {prop: "tryWriteCopy", name: "tryWriteCopy", pkg: "compress/flate", typ: $funcType([$Int, $Int], [$Int], false)}, {prop: "readFlush", name: "readFlush", pkg: "compress/flate", typ: $funcType([], [sliceType$5], false)}]; - ptrType$10.methods = [{prop: "encode", name: "encode", pkg: "compress/flate", typ: $funcType([sliceType$10, sliceType$5], [sliceType$10], false)}, {prop: "matchLen", name: "matchLen", pkg: "compress/flate", typ: $funcType([$Int32, $Int32, sliceType$5], [$Int32], false)}, {prop: "reset", name: "reset", pkg: "compress/flate", typ: $funcType([], [], false)}, {prop: "shiftOffsets", name: "shiftOffsets", pkg: "compress/flate", typ: $funcType([], [], false)}]; - ptrType$8.methods = [{prop: "fillDeflate", name: "fillDeflate", pkg: "compress/flate", typ: $funcType([sliceType$5], [$Int], false)}, {prop: "writeBlock", name: "writeBlock", pkg: "compress/flate", typ: $funcType([sliceType$10, $Int], [$error], false)}, {prop: "fillWindow", name: "fillWindow", pkg: "compress/flate", typ: $funcType([sliceType$5], [], false)}, {prop: "findMatch", name: "findMatch", pkg: "compress/flate", typ: $funcType([$Int, $Int, $Int, $Int], [$Int, $Int, $Bool], false)}, {prop: "writeStoredBlock", name: "writeStoredBlock", pkg: "compress/flate", typ: $funcType([sliceType$5], [$error], false)}, {prop: "encSpeed", name: "encSpeed", pkg: "compress/flate", typ: $funcType([], [], false)}, {prop: "initDeflate", name: "initDeflate", pkg: "compress/flate", typ: $funcType([], [], false)}, {prop: "deflate", name: "deflate", pkg: "compress/flate", typ: $funcType([], [], false)}, {prop: "fillStore", name: "fillStore", pkg: "compress/flate", typ: $funcType([sliceType$5], [$Int], false)}, {prop: "store", name: "store", pkg: "compress/flate", typ: $funcType([], [], false)}, {prop: "storeHuff", name: "storeHuff", pkg: "compress/flate", typ: $funcType([], [], false)}, {prop: "write", name: "write", pkg: "compress/flate", typ: $funcType([sliceType$5], [$Int, $error], false)}, {prop: "syncFlush", name: "syncFlush", pkg: "compress/flate", typ: $funcType([], [$error], false)}, {prop: "init", name: "init", pkg: "compress/flate", typ: $funcType([io.Writer, $Int], [$error], false)}, {prop: "reset", name: "reset", pkg: "compress/flate", typ: $funcType([io.Writer], [], false)}, {prop: "close", name: "close", pkg: "compress/flate", typ: $funcType([], [$error], false)}]; - ptrType$12.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$5], [$Int, $error], false)}]; - ptrType$11.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$5], [$Int, $error], false)}, {prop: "Flush", name: "Flush", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([io.Writer], [], false)}]; + ptrType$10.methods = [{prop: "sort", name: "sort", pkg: "compress/flate", typ: $funcType([sliceType$7], [], false)}]; + ptrType$14.methods = [{prop: "reset", name: "reset", pkg: "compress/flate", typ: $funcType([io.Writer], [], false)}, {prop: "flush", name: "flush", pkg: "compress/flate", typ: $funcType([], [], false)}, {prop: "write", name: "write", pkg: "compress/flate", typ: $funcType([sliceType$5], [], false)}, {prop: "writeBits", name: "writeBits", pkg: "compress/flate", typ: $funcType([$Int32, $Uint], [], false)}, {prop: "writeBytes", name: "writeBytes", pkg: "compress/flate", typ: $funcType([sliceType$5], [], false)}, {prop: "generateCodegen", name: "generateCodegen", pkg: "compress/flate", typ: $funcType([$Int, $Int, ptrType, ptrType], [], false)}, {prop: "dynamicSize", name: "dynamicSize", pkg: "compress/flate", typ: $funcType([ptrType, ptrType, $Int], [$Int, $Int], false)}, {prop: "fixedSize", name: "fixedSize", pkg: "compress/flate", typ: $funcType([$Int], [$Int], false)}, {prop: "storedSize", name: "storedSize", pkg: "compress/flate", typ: $funcType([sliceType$5], [$Int, $Bool], false)}, {prop: "writeCode", name: "writeCode", pkg: "compress/flate", typ: $funcType([hcode], [], false)}, {prop: "writeDynamicHeader", name: "writeDynamicHeader", pkg: "compress/flate", typ: $funcType([$Int, $Int, $Int, $Bool], [], false)}, {prop: "writeStoredHeader", name: "writeStoredHeader", pkg: "compress/flate", typ: $funcType([$Int, $Bool], [], false)}, {prop: "writeFixedHeader", name: "writeFixedHeader", pkg: "compress/flate", typ: $funcType([$Bool], [], false)}, {prop: "writeBlock", name: "writeBlock", pkg: "compress/flate", typ: $funcType([sliceType$10, $Bool, sliceType$5], [], false)}, {prop: "writeBlockDynamic", name: "writeBlockDynamic", pkg: "compress/flate", typ: $funcType([sliceType$10, $Bool, sliceType$5], [], false)}, {prop: "indexTokens", name: "indexTokens", pkg: "compress/flate", typ: $funcType([sliceType$10], [$Int, $Int], false)}, {prop: "writeTokens", name: "writeTokens", pkg: "compress/flate", typ: $funcType([sliceType$10, sliceType$6, sliceType$6], [], false)}, {prop: "writeBlockHuff", name: "writeBlockHuff", pkg: "compress/flate", typ: $funcType([$Bool, sliceType$5], [], false)}]; + ptrType$11.methods = [{prop: "init", name: "init", pkg: "compress/flate", typ: $funcType([$Int, sliceType$5], [], false)}, {prop: "histSize", name: "histSize", pkg: "compress/flate", typ: $funcType([], [$Int], false)}, {prop: "availRead", name: "availRead", pkg: "compress/flate", typ: $funcType([], [$Int], false)}, {prop: "availWrite", name: "availWrite", pkg: "compress/flate", typ: $funcType([], [$Int], false)}, {prop: "writeSlice", name: "writeSlice", pkg: "compress/flate", typ: $funcType([], [sliceType$5], false)}, {prop: "writeMark", name: "writeMark", pkg: "compress/flate", typ: $funcType([$Int], [], false)}, {prop: "writeByte", name: "writeByte", pkg: "compress/flate", typ: $funcType([$Uint8], [], false)}, {prop: "writeCopy", name: "writeCopy", pkg: "compress/flate", typ: $funcType([$Int, $Int], [$Int], false)}, {prop: "tryWriteCopy", name: "tryWriteCopy", pkg: "compress/flate", typ: $funcType([$Int, $Int], [$Int], false)}, {prop: "readFlush", name: "readFlush", pkg: "compress/flate", typ: $funcType([], [sliceType$5], false)}]; + ptrType$15.methods = [{prop: "encode", name: "encode", pkg: "compress/flate", typ: $funcType([sliceType$10, sliceType$5], [sliceType$10], false)}, {prop: "matchLen", name: "matchLen", pkg: "compress/flate", typ: $funcType([$Int32, $Int32, sliceType$5], [$Int32], false)}, {prop: "reset", name: "reset", pkg: "compress/flate", typ: $funcType([], [], false)}, {prop: "shiftOffsets", name: "shiftOffsets", pkg: "compress/flate", typ: $funcType([], [], false)}]; + ptrType$13.methods = [{prop: "fillDeflate", name: "fillDeflate", pkg: "compress/flate", typ: $funcType([sliceType$5], [$Int], false)}, {prop: "writeBlock", name: "writeBlock", pkg: "compress/flate", typ: $funcType([sliceType$10, $Int], [$error], false)}, {prop: "fillWindow", name: "fillWindow", pkg: "compress/flate", typ: $funcType([sliceType$5], [], false)}, {prop: "findMatch", name: "findMatch", pkg: "compress/flate", typ: $funcType([$Int, $Int, $Int, $Int], [$Int, $Int, $Bool], false)}, {prop: "writeStoredBlock", name: "writeStoredBlock", pkg: "compress/flate", typ: $funcType([sliceType$5], [$error], false)}, {prop: "encSpeed", name: "encSpeed", pkg: "compress/flate", typ: $funcType([], [], false)}, {prop: "initDeflate", name: "initDeflate", pkg: "compress/flate", typ: $funcType([], [], false)}, {prop: "deflate", name: "deflate", pkg: "compress/flate", typ: $funcType([], [], false)}, {prop: "fillStore", name: "fillStore", pkg: "compress/flate", typ: $funcType([sliceType$5], [$Int], false)}, {prop: "store", name: "store", pkg: "compress/flate", typ: $funcType([], [], false)}, {prop: "storeHuff", name: "storeHuff", pkg: "compress/flate", typ: $funcType([], [], false)}, {prop: "write", name: "write", pkg: "compress/flate", typ: $funcType([sliceType$5], [$Int, $error], false)}, {prop: "syncFlush", name: "syncFlush", pkg: "compress/flate", typ: $funcType([], [$error], false)}, {prop: "init", name: "init", pkg: "compress/flate", typ: $funcType([io.Writer, $Int], [$error], false)}, {prop: "reset", name: "reset", pkg: "compress/flate", typ: $funcType([io.Writer], [], false)}, {prop: "close", name: "close", pkg: "compress/flate", typ: $funcType([], [$error], false)}]; + ptrType$17.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$5], [$Int, $error], false)}]; + ptrType$16.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$5], [$Int, $error], false)}, {prop: "Flush", name: "Flush", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([io.Writer], [], false)}]; Resetter.init([{prop: "Reset", name: "Reset", pkg: "", typ: $funcType([io.Reader, sliceType$5], [$error], false)}]); huffmanDecoder.init("compress/flate", [{prop: "min", name: "min", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "chunks", name: "chunks", embedded: false, exported: false, typ: arrayType, tag: ""}, {prop: "links", name: "links", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "linkMask", name: "linkMask", embedded: false, exported: false, typ: $Uint32, tag: ""}]); Reader.init([{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$5], [$Int, $error], false)}, {prop: "ReadByte", name: "ReadByte", pkg: "", typ: $funcType([], [$Uint8, $error], false)}]); - decompressor.init("compress/flate", [{prop: "r", name: "r", embedded: false, exported: false, typ: Reader, tag: ""}, {prop: "roffset", name: "roffset", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "b", name: "b", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "nb", name: "nb", embedded: false, exported: false, typ: $Uint, tag: ""}, {prop: "h1", name: "h1", embedded: false, exported: false, typ: huffmanDecoder, tag: ""}, {prop: "h2", name: "h2", embedded: false, exported: false, typ: huffmanDecoder, tag: ""}, {prop: "bits", name: "bits", embedded: false, exported: false, typ: ptrType$3, tag: ""}, {prop: "codebits", name: "codebits", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "dict", name: "dict", embedded: false, exported: false, typ: dictDecoder, tag: ""}, {prop: "buf", name: "buf", embedded: false, exported: false, typ: arrayType$5, tag: ""}, {prop: "step", name: "step", embedded: false, exported: false, typ: funcType, tag: ""}, {prop: "stepState", name: "stepState", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "final$12", name: "final", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "toRead", name: "toRead", embedded: false, exported: false, typ: sliceType$5, tag: ""}, {prop: "hl", name: "hl", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "hd", name: "hd", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "copyLen", name: "copyLen", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "copyDist", name: "copyDist", embedded: false, exported: false, typ: $Int, tag: ""}]); + decompressor.init("compress/flate", [{prop: "r", name: "r", embedded: false, exported: false, typ: Reader, tag: ""}, {prop: "rBuf", name: "rBuf", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "roffset", name: "roffset", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "b", name: "b", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "nb", name: "nb", embedded: false, exported: false, typ: $Uint, tag: ""}, {prop: "h1", name: "h1", embedded: false, exported: false, typ: huffmanDecoder, tag: ""}, {prop: "h2", name: "h2", embedded: false, exported: false, typ: huffmanDecoder, tag: ""}, {prop: "bits", name: "bits", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "codebits", name: "codebits", embedded: false, exported: false, typ: ptrType$5, tag: ""}, {prop: "dict", name: "dict", embedded: false, exported: false, typ: dictDecoder, tag: ""}, {prop: "buf", name: "buf", embedded: false, exported: false, typ: arrayType$5, tag: ""}, {prop: "step", name: "step", embedded: false, exported: false, typ: funcType, tag: ""}, {prop: "stepState", name: "stepState", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "final$13", name: "final", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "toRead", name: "toRead", embedded: false, exported: false, typ: sliceType$5, tag: ""}, {prop: "hl", name: "hl", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "hd", name: "hd", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "copyLen", name: "copyLen", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "copyDist", name: "copyDist", embedded: false, exported: false, typ: $Int, tag: ""}]); hcode.init("compress/flate", [{prop: "code", name: "code", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "len", name: "len", embedded: false, exported: false, typ: $Uint16, tag: ""}]); huffmanEncoder.init("compress/flate", [{prop: "codes", name: "codes", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "freqcache", name: "freqcache", embedded: false, exported: false, typ: sliceType$7, tag: ""}, {prop: "bitCount", name: "bitCount", embedded: false, exported: false, typ: arrayType$6, tag: ""}, {prop: "lns", name: "lns", embedded: false, exported: false, typ: byLiteral, tag: ""}, {prop: "lfs", name: "lfs", embedded: false, exported: false, typ: byFreq, tag: ""}]); literalNode.init("compress/flate", [{prop: "literal", name: "literal", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "freq", name: "freq", embedded: false, exported: false, typ: $Int32, tag: ""}]); @@ -45568,7 +44640,7 @@ $packages["compress/flate"] = (function() { tableEntry.init("compress/flate", [{prop: "val", name: "val", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "offset", name: "offset", embedded: false, exported: false, typ: $Int32, tag: ""}]); deflateFast.init("compress/flate", [{prop: "table", name: "table", embedded: false, exported: false, typ: arrayType$12, tag: ""}, {prop: "prev", name: "prev", embedded: false, exported: false, typ: sliceType$5, tag: ""}, {prop: "cur", name: "cur", embedded: false, exported: false, typ: $Int32, tag: ""}]); compressionLevel.init("compress/flate", [{prop: "level", name: "level", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "good", name: "good", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lazy", name: "lazy", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "nice", name: "nice", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "chain", name: "chain", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "fastSkipHashing", name: "fastSkipHashing", embedded: false, exported: false, typ: $Int, tag: ""}]); - compressor.init("compress/flate", [{prop: "compressionLevel", name: "compressionLevel", embedded: true, exported: false, typ: compressionLevel, tag: ""}, {prop: "w", name: "w", embedded: false, exported: false, typ: ptrType$9, tag: ""}, {prop: "bulkHasher", name: "bulkHasher", embedded: false, exported: false, typ: funcType$1, tag: ""}, {prop: "fill", name: "fill", embedded: false, exported: false, typ: funcType$2, tag: ""}, {prop: "step", name: "step", embedded: false, exported: false, typ: funcType$3, tag: ""}, {prop: "sync", name: "sync", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "bestSpeed", name: "bestSpeed", embedded: false, exported: false, typ: ptrType$10, tag: ""}, {prop: "chainHead", name: "chainHead", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "hashHead", name: "hashHead", embedded: false, exported: false, typ: arrayType$13, tag: ""}, {prop: "hashPrev", name: "hashPrev", embedded: false, exported: false, typ: arrayType$14, tag: ""}, {prop: "hashOffset", name: "hashOffset", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "index", name: "index", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "window", name: "window", embedded: false, exported: false, typ: sliceType$5, tag: ""}, {prop: "windowEnd", name: "windowEnd", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "blockStart", name: "blockStart", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "byteAvailable", name: "byteAvailable", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "tokens", name: "tokens", embedded: false, exported: false, typ: sliceType$10, tag: ""}, {prop: "length", name: "length", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "offset", name: "offset", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "maxInsertIndex", name: "maxInsertIndex", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "hashMatch", name: "hashMatch", embedded: false, exported: false, typ: arrayType$15, tag: ""}]); + compressor.init("compress/flate", [{prop: "compressionLevel", name: "compressionLevel", embedded: true, exported: false, typ: compressionLevel, tag: ""}, {prop: "w", name: "w", embedded: false, exported: false, typ: ptrType$14, tag: ""}, {prop: "bulkHasher", name: "bulkHasher", embedded: false, exported: false, typ: funcType$1, tag: ""}, {prop: "fill", name: "fill", embedded: false, exported: false, typ: funcType$2, tag: ""}, {prop: "step", name: "step", embedded: false, exported: false, typ: funcType$3, tag: ""}, {prop: "sync", name: "sync", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "bestSpeed", name: "bestSpeed", embedded: false, exported: false, typ: ptrType$15, tag: ""}, {prop: "chainHead", name: "chainHead", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "hashHead", name: "hashHead", embedded: false, exported: false, typ: arrayType$13, tag: ""}, {prop: "hashPrev", name: "hashPrev", embedded: false, exported: false, typ: arrayType$14, tag: ""}, {prop: "hashOffset", name: "hashOffset", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "index", name: "index", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "window", name: "window", embedded: false, exported: false, typ: sliceType$5, tag: ""}, {prop: "windowEnd", name: "windowEnd", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "blockStart", name: "blockStart", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "byteAvailable", name: "byteAvailable", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "tokens", name: "tokens", embedded: false, exported: false, typ: sliceType$10, tag: ""}, {prop: "length", name: "length", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "offset", name: "offset", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "maxInsertIndex", name: "maxInsertIndex", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "hashMatch", name: "hashMatch", embedded: false, exported: false, typ: arrayType$15, tag: ""}]); dictWriter.init("compress/flate", [{prop: "w", name: "w", embedded: false, exported: false, typ: io.Writer, tag: ""}]); Writer.init("compress/flate", [{prop: "d", name: "d", embedded: false, exported: false, typ: compressor, tag: ""}, {prop: "dict", name: "dict", embedded: false, exported: false, typ: sliceType$5, tag: ""}]); }; @@ -45606,7 +44678,7 @@ $packages["compress/flate"] = (function() { return $pkg; })(); $packages["encoding/binary"] = (function() { - var $pkg = {}, $init, errors, io, math, reflect, sync, littleEndian, bigEndian, sliceType, overflow; + var $pkg = {}, $init, errors, io, math, reflect, sync, littleEndian, bigEndian, sliceType, errOverflow; errors = $packages["errors"]; io = $packages["io"]; math = $packages["math"]; @@ -45773,7 +44845,7 @@ $packages["encoding/binary"] = (function() { $r = sync.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $pkg.LittleEndian = new littleEndian.ptr(); $pkg.BigEndian = new bigEndian.ptr(); - overflow = errors.New("binary: varint overflows a 64-bit integer"); + errOverflow = errors.New("binary: varint overflows a 64-bit integer"); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; @@ -45856,7 +44928,7 @@ $packages["hash/crc32"] = (function() { while (true) { if (!(_i < _ref.$length)) { break; } v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - crc = ((x = tab, x$1 = (((crc << 24 >>> 24)) ^ v) << 24 >>> 24, ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])) ^ ((crc >>> 8 >>> 0))) >>> 0; + crc = ((x = (tab === ptrType.nil && $throwNilPointerError(), tab), x$1 = (((crc << 24 >>> 24)) ^ v) << 24 >>> 24, ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])) ^ ((crc >>> 8 >>> 0))) >>> 0; _i++; } return ~crc >>> 0; @@ -45864,16 +44936,16 @@ $packages["hash/crc32"] = (function() { slicingMakeTable = function slicingMakeTable$1(poly) { var crc, i, j, poly, t, x, x$1, x$2, x$3, x$4; t = arrayType$1.zero(); - simplePopulateTable(poly, t[0]); + simplePopulateTable(poly, $indexPtr(t, 0, ptrType)); i = 0; while (true) { if (!(i < 256)) { break; } - crc = (x = t[0], ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i])); + crc = (x = (t === ptrType$1.nil && $throwNilPointerError(), t)[0], ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i])); j = 1; while (true) { if (!(j < 8)) { break; } - crc = ((x$1 = t[0], x$2 = (crc & 255) >>> 0, ((x$2 < 0 || x$2 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$2])) ^ ((crc >>> 8 >>> 0))) >>> 0; - (x$3 = (x$4 = t, ((j < 0 || j >= x$4.length) ? ($throwRuntimeError("index out of range"), undefined) : x$4[j])), ((i < 0 || i >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[i] = crc)); + crc = ((x$1 = (t === ptrType$1.nil && $throwNilPointerError(), t)[0], x$2 = (crc & 255) >>> 0, ((x$2 < 0 || x$2 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$2])) ^ ((crc >>> 8 >>> 0))) >>> 0; + (x$3 = (x$4 = (t === ptrType$1.nil && $throwNilPointerError(), t), ((j < 0 || j >= x$4.length) ? ($throwRuntimeError("index out of range"), undefined) : x$4[j])), ((i < 0 || i >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[i] = crc)); j = j + (1) >> 0; } i = i + (1) >> 0; @@ -45887,7 +44959,7 @@ $packages["hash/crc32"] = (function() { while (true) { if (!(p.$length > 8)) { break; } crc = (crc ^ ((((((((((0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0]) >>> 0)) | ((((1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1]) >>> 0)) << 8 >>> 0)) >>> 0) | ((((2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2]) >>> 0)) << 16 >>> 0)) >>> 0) | ((((3 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 3]) >>> 0)) << 24 >>> 0)) >>> 0))) >>> 0; - crc = ((((((((((((((x = tab[0], x$1 = (7 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 7]), ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])) ^ (x$2 = tab[1], x$3 = (6 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 6]), ((x$3 < 0 || x$3 >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[x$3]))) >>> 0) ^ (x$4 = tab[2], x$5 = (5 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 5]), ((x$5 < 0 || x$5 >= x$4.length) ? ($throwRuntimeError("index out of range"), undefined) : x$4[x$5]))) >>> 0) ^ (x$6 = tab[3], x$7 = (4 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 4]), ((x$7 < 0 || x$7 >= x$6.length) ? ($throwRuntimeError("index out of range"), undefined) : x$6[x$7]))) >>> 0) ^ (x$8 = tab[4], x$9 = crc >>> 24 >>> 0, ((x$9 < 0 || x$9 >= x$8.length) ? ($throwRuntimeError("index out of range"), undefined) : x$8[x$9]))) >>> 0) ^ (x$10 = tab[5], x$11 = (((crc >>> 16 >>> 0)) & 255) >>> 0, ((x$11 < 0 || x$11 >= x$10.length) ? ($throwRuntimeError("index out of range"), undefined) : x$10[x$11]))) >>> 0) ^ (x$12 = tab[6], x$13 = (((crc >>> 8 >>> 0)) & 255) >>> 0, ((x$13 < 0 || x$13 >= x$12.length) ? ($throwRuntimeError("index out of range"), undefined) : x$12[x$13]))) >>> 0) ^ (x$14 = tab[7], x$15 = (crc & 255) >>> 0, ((x$15 < 0 || x$15 >= x$14.length) ? ($throwRuntimeError("index out of range"), undefined) : x$14[x$15]))) >>> 0; + crc = ((((((((((((((x = (tab === ptrType$1.nil && $throwNilPointerError(), tab)[0], x$1 = (7 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 7]), ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])) ^ (x$2 = (tab === ptrType$1.nil && $throwNilPointerError(), tab)[1], x$3 = (6 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 6]), ((x$3 < 0 || x$3 >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[x$3]))) >>> 0) ^ (x$4 = (tab === ptrType$1.nil && $throwNilPointerError(), tab)[2], x$5 = (5 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 5]), ((x$5 < 0 || x$5 >= x$4.length) ? ($throwRuntimeError("index out of range"), undefined) : x$4[x$5]))) >>> 0) ^ (x$6 = (tab === ptrType$1.nil && $throwNilPointerError(), tab)[3], x$7 = (4 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 4]), ((x$7 < 0 || x$7 >= x$6.length) ? ($throwRuntimeError("index out of range"), undefined) : x$6[x$7]))) >>> 0) ^ (x$8 = (tab === ptrType$1.nil && $throwNilPointerError(), tab)[4], x$9 = crc >>> 24 >>> 0, ((x$9 < 0 || x$9 >= x$8.length) ? ($throwRuntimeError("index out of range"), undefined) : x$8[x$9]))) >>> 0) ^ (x$10 = (tab === ptrType$1.nil && $throwNilPointerError(), tab)[5], x$11 = (((crc >>> 16 >>> 0)) & 255) >>> 0, ((x$11 < 0 || x$11 >= x$10.length) ? ($throwRuntimeError("index out of range"), undefined) : x$10[x$11]))) >>> 0) ^ (x$12 = (tab === ptrType$1.nil && $throwNilPointerError(), tab)[6], x$13 = (((crc >>> 8 >>> 0)) & 255) >>> 0, ((x$13 < 0 || x$13 >= x$12.length) ? ($throwRuntimeError("index out of range"), undefined) : x$12[x$13]))) >>> 0) ^ (x$14 = (tab === ptrType$1.nil && $throwNilPointerError(), tab)[7], x$15 = (crc & 255) >>> 0, ((x$15 < 0 || x$15 >= x$14.length) ? ($throwRuntimeError("index out of range"), undefined) : x$14[x$15]))) >>> 0; p = $subslice(p, 8); } crc = ~crc >>> 0; @@ -45895,7 +44967,7 @@ $packages["hash/crc32"] = (function() { if (p.$length === 0) { return crc; } - return simpleUpdate(crc, tab[0], p); + return simpleUpdate(crc, $indexPtr(tab, 0, ptrType), p); }; ieeeInit = function ieeeInit$1() { if (archAvailableIEEE()) { @@ -46056,7 +45128,7 @@ $packages["compress/gzip"] = (function() { var {_r, _tuple, _tuple$1, ok, r, rr, z, $s, $r, $c} = $restore(this, {r}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: z = this; - Reader.copy(z, new Reader.ptr(new Header.ptr("", sliceType$1.nil, new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$1.nil), "", 0), $ifaceNil, z.decompressor, 0, 0, arrayType$1.zero(), $ifaceNil, true)); + Reader.copy((z === ptrType$3.nil && $throwNilPointerError(), z), new Reader.ptr(new Header.ptr("", sliceType$1.nil, new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$1.nil), "", 0), $ifaceNil, z.decompressor, 0, 0, arrayType$1.zero(), $ifaceNil, true)); _tuple = $assertType(r, flate.Reader, true); rr = _tuple[0]; ok = _tuple[1]; @@ -46485,7 +45557,7 @@ $packages["internal/saferio"] = (function() { return $pkg; })(); $packages["encoding/gob"] = (function() { - var $pkg = {}, $init, bufio, encoding, binary, errors, fmt, nosync, saferio, io, math, bits, os, reflect, atomic, unicode, utf8, userTypeInfo, typeId, gobType, CommonType, arrayType, gobEncoderType, mapType, sliceType, fieldType, structType, wireType, typeInfo, GobEncoder, GobDecoder, gobError, Encoder, encHelper, encoderState, encBuffer, encOp, encInstr, encEngine, Decoder, decHelper, decoderState, decBuffer, decOp, decInstr, decEngine, emptyStruct, ptrType, ptrType$1, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, ptrType$11, sliceType$1, ptrType$12, ptrType$13, ptrType$14, ptrType$15, structType$1, ptrType$16, structType$2, ptrType$17, structType$3, ptrType$18, structType$4, ptrType$19, structType$5, ptrType$20, structType$6, ptrType$21, structType$7, ptrType$22, ptrType$23, ptrType$24, ptrType$25, ptrType$26, ptrType$27, sliceType$2, arrayType$1, ptrType$28, sliceType$3, ptrType$29, ptrType$30, mapType$1, ptrType$31, sliceType$4, sliceType$5, sliceType$6, sliceType$7, sliceType$8, sliceType$9, sliceType$10, sliceType$11, sliceType$12, sliceType$13, sliceType$14, sliceType$15, sliceType$16, sliceType$17, sliceType$18, sliceType$19, sliceType$20, ptrType$32, ptrType$33, ptrType$34, arrayType$2, ptrType$35, ptrType$36, sliceType$21, ptrType$37, ptrType$38, ptrType$39, ptrType$40, ptrType$41, sliceType$22, ptrType$42, ptrType$43, sliceType$23, ptrType$44, ptrType$45, ptrType$46, ptrType$47, ptrType$48, ptrType$49, ptrType$50, ptrType$51, ptrType$52, ptrType$53, ptrType$54, ptrType$55, ptrType$56, ptrType$57, ptrType$58, ptrType$59, mapType$2, ptrType$60, mapType$3, mapType$4, mapType$5, mapType$6, mapType$7, mapType$8, ptrType$61, userTypeCache, nextId, typeLock, builtinIdToType, wireTypeUserInfo, typeInfoMap, nameToConcreteType, concreteTypeToName, noValue, gobEncoderInterfaceType, _r, gobDecoderInterfaceType, _r$1, binaryMarshalerInterfaceType, _r$2, binaryUnmarshalerInterfaceType, _r$3, textMarshalerInterfaceType, _r$4, textUnmarshalerInterfaceType, _r$5, types, idToType, tBool, _r$6, tInt, _r$7, tUint, _r$8, tFloat, _r$9, tBytes, _r$10, tString, _r$11, tComplex, _r$12, tInterface, _r$13, tReserved7, _r$14, tReserved6, _r$15, tReserved5, _r$16, tReserved4, _r$17, tReserved3, _r$18, tReserved2, _r$19, tReserved1, _r$20, tWireType, x, _r$21, spaceForLength, encBufferPool, encOpTable, encArrayHelper, encSliceHelper, errBadCount, errBadUint, errBadType, errRange, decOpTable, decIgnoreOpMap, maxIgnoreNestingDepth, emptyStructType, x$1, decArrayHelper, decSliceHelper, validUserType, implementsInterface, userType, setTypeId, init, newArrayType, newGobEncoderType, newMapType, newSliceType, newStructType, newTypeObject, isExported, isSent, getBaseType, getType, checkId, bootstrapType, lookupTypeInfo, getTypeInfo, buildTypeInfo, mustGetTypeInfo, RegisterName, Register, registerBasics, errorf, error_, catchError, NewEncoder, encIndirect, encBool, encInt, encUint, floatBits, encFloat, encComplex, encUint8Array, encString, encStructTerminator, valid, encodeReflectValue, isZero, encOpFor, gobEncodeOpFor, compileEnc, getEncEngine, buildEncEngine, encBoolArray, encBoolSlice, encComplex64Array, encComplex64Slice, encComplex128Array, encComplex128Slice, encFloat32Array, encFloat32Slice, encFloat64Array, encFloat64Slice, encIntArray, encIntSlice, encInt16Array, encInt16Slice, encInt32Array, encInt32Slice, encInt64Array, encInt64Slice, encInt8Array, encInt8Slice, encStringArray, encStringSlice, encUintArray, encUintSlice, encUint16Array, encUint16Slice, encUint32Array, encUint32Slice, encUint64Array, encUint64Slice, encUintptrArray, encUintptrSlice, NewDecoder, toInt, overflow, decodeUintReader, ignoreUint, ignoreTwoUints, decAlloc, decBool, decInt8, decUint8, decInt16, decUint16, decInt32, decUint32, decInt64, decUint64, float64FromBits, float32FromBits, decFloat32, decFloat64, decComplex64, decComplex128, decUint8Slice, decString, ignoreUint8Array, decodeIntoValue, init$1, allocValue, decBoolArray, decBoolSlice, decComplex64Array, decComplex64Slice, decComplex128Array, decComplex128Slice, decFloat32Array, decFloat32Slice, decFloat64Array, decFloat64Slice, decIntArray, decIntSlice, decInt16Array, decInt16Slice, decInt32Array, decInt32Slice, decInt64Array, decInt64Slice, decInt8Array, decInt8Slice, decStringArray, decStringSlice, decUintArray, decUintSlice, decUint16Array, decUint16Slice, decUint32Array, decUint32Slice, decUint64Array, decUint64Slice, decUintptrArray, decUintptrSlice, growSlice = []; + var $pkg = {}, $init, bufio, encoding, binary, errors, fmt, nosync, saferio, io, math, bits, os, reflect, atomic, unicode, utf8, userTypeInfo, typeId, gobType, CommonType, arrayType, gobEncoderType, mapType, sliceType, fieldType, structType, wireType, typeInfo, GobEncoder, GobDecoder, gobError, Encoder, encHelper, encoderState, encBuffer, encOp, encInstr, encEngine, Decoder, decHelper, decoderState, decBuffer, decOp, decInstr, decEngine, emptyStruct, arrayType$1, ptrType, ptrType$1, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, sliceType$1, ptrType$9, ptrType$10, ptrType$11, ptrType$12, sliceType$2, ptrType$13, ptrType$14, ptrType$15, ptrType$16, structType$1, ptrType$17, structType$2, ptrType$18, structType$3, ptrType$19, structType$4, ptrType$20, structType$5, ptrType$21, structType$6, ptrType$22, structType$7, ptrType$23, sliceType$3, arrayType$2, ptrType$24, ptrType$25, ptrType$26, ptrType$27, ptrType$28, ptrType$29, ptrType$30, sliceType$4, ptrType$31, ptrType$32, mapType$1, ptrType$33, sliceType$5, sliceType$6, sliceType$7, sliceType$8, sliceType$9, sliceType$10, sliceType$11, sliceType$12, sliceType$13, sliceType$14, sliceType$15, sliceType$16, sliceType$17, sliceType$18, sliceType$19, sliceType$20, sliceType$21, ptrType$34, ptrType$35, ptrType$36, arrayType$3, ptrType$37, ptrType$38, sliceType$22, ptrType$39, ptrType$40, ptrType$41, ptrType$42, ptrType$43, ptrType$44, ptrType$45, ptrType$46, sliceType$23, ptrType$47, ptrType$48, ptrType$49, ptrType$50, ptrType$51, ptrType$52, ptrType$53, ptrType$54, ptrType$55, ptrType$56, ptrType$57, ptrType$58, ptrType$59, ptrType$60, ptrType$61, ptrType$62, ptrType$63, mapType$2, mapType$3, mapType$4, mapType$5, mapType$6, mapType$7, mapType$8, userTypeCache, typeLock, builtinIdToTypeSlice, wireTypeUserInfo, typeInfoMap, nameToConcreteType, concreteTypeToName, noValue, gobEncoderInterfaceType, _r, gobDecoderInterfaceType, _r$1, binaryMarshalerInterfaceType, _r$2, binaryUnmarshalerInterfaceType, _r$3, textMarshalerInterfaceType, _r$4, textUnmarshalerInterfaceType, _r$5, wireTypeType, _r$6, types, idToTypeSlice, tBool, _r$7, tInt, _r$8, tUint, _r$9, tFloat, _r$10, tBytes, _r$11, tString, _r$12, tComplex, _r$13, tInterface, _r$14, tReserved7, _r$15, tReserved6, _r$16, tReserved5, _r$17, tReserved4, _r$18, tReserved3, _r$19, tReserved2, _r$20, tReserved1, _r$21, typeInfoMapInit, tWireType, _r$22, spaceForLength, encBufferPool, encOpTable, encArrayHelper, encSliceHelper, errBadCount, errBadUint, errBadType, errRange, decOpTable, decIgnoreOpMap, maxIgnoreNestingDepth, emptyStructType, _r$23, decArrayHelper, decSliceHelper, validUserType, implementsInterface, userType, idToType, builtinIdToType, setTypeId, init, newArrayType, newGobEncoderType, newMapType, newSliceType, newStructType, newTypeObject, isExported, isSent, getBaseType, getType, checkId, bootstrapType, lookupTypeInfo, getTypeInfo, buildTypeInfo, mustGetTypeInfo, RegisterName, Register, registerBasics, init$1, errorf, error_, catchError, NewEncoder, encIndirect, encBool, encInt, encUint, floatBits, encFloat, encComplex, encUint8Array, encString, encStructTerminator, valid, encodeReflectValue, encOpFor, gobEncodeOpFor, compileEnc, getEncEngine, buildEncEngine, encBoolArray, encBoolSlice, encComplex64Array, encComplex64Slice, encComplex128Array, encComplex128Slice, encFloat32Array, encFloat32Slice, encFloat64Array, encFloat64Slice, encIntArray, encIntSlice, encInt16Array, encInt16Slice, encInt32Array, encInt32Slice, encInt64Array, encInt64Slice, encInt8Array, encInt8Slice, encStringArray, encStringSlice, encUintArray, encUintSlice, encUint16Array, encUint16Slice, encUint32Array, encUint32Slice, encUint64Array, encUint64Slice, encUintptrArray, encUintptrSlice, NewDecoder, toInt, overflow, decodeUintReader, ignoreUint, ignoreTwoUints, decAlloc, decBool, decInt8, decUint8, decInt16, decUint16, decInt32, decUint32, decInt64, decUint64, float64FromBits, float32FromBits, decFloat32, decFloat64, decComplex64, decComplex128, decUint8Slice, decString, ignoreUint8Array, decodeIntoValue, init$2, allocValue, decBoolArray, decBoolSlice, decComplex64Array, decComplex64Slice, decComplex128Array, decComplex128Slice, decFloat32Array, decFloat32Slice, decFloat64Array, decFloat64Slice, decIntArray, decIntSlice, decInt16Array, decInt16Slice, decInt32Array, decInt32Slice, decInt64Array, decInt64Slice, decInt8Array, decInt8Slice, decStringArray, decStringSlice, decUintArray, decUintSlice, decUint16Array, decUint16Slice, decUint32Array, decUint32Slice, decUint64Array, decUint64Slice, decUintptrArray, decUintptrSlice, growSlice = []; bufio = $packages["bufio"]; encoding = $packages["encoding"]; binary = $packages["encoding/binary"]; @@ -46589,7 +45661,7 @@ $packages["encoding/gob"] = (function() { this.$val = this; if (arguments.length === 0) { this.CommonType = new CommonType.ptr("", 0); - this.Field = sliceType$3.nil; + this.Field = sliceType$4.nil; return; } this.CommonType = CommonType_; @@ -46598,13 +45670,13 @@ $packages["encoding/gob"] = (function() { wireType = $newType(0, $kindStruct, "gob.wireType", true, "encoding/gob", false, function(ArrayT_, SliceT_, StructT_, MapT_, GobEncoderT_, BinaryMarshalerT_, TextMarshalerT_) { this.$val = this; if (arguments.length === 0) { - this.ArrayT = ptrType$23.nil; - this.SliceT = ptrType$24.nil; - this.StructT = ptrType$25.nil; - this.MapT = ptrType$26.nil; - this.GobEncoderT = ptrType$27.nil; - this.BinaryMarshalerT = ptrType$27.nil; - this.TextMarshalerT = ptrType$27.nil; + this.ArrayT = ptrType$25.nil; + this.SliceT = ptrType$27.nil; + this.StructT = ptrType$28.nil; + this.MapT = ptrType$30.nil; + this.GobEncoderT = ptrType$31.nil; + this.BinaryMarshalerT = ptrType$31.nil; + this.TextMarshalerT = ptrType$31.nil; return; } this.ArrayT = ArrayT_; @@ -46620,8 +45692,8 @@ $packages["encoding/gob"] = (function() { if (arguments.length === 0) { this.id = 0; this.encInit = new nosync.Mutex.ptr(false, false, false, false, 0); - this.encoder = new atomic.Pointer[0 /* encoding/gob.encEngine */].ptr(ptrType$31.nil); - this.wire = ptrType$29.nil; + this.encoder = new atomic.Pointer[0 /* encoding/gob.encEngine */].ptr(ptrType$33.nil); + this.wire = new wireType.ptr(ptrType$25.nil, ptrType$27.nil, ptrType$28.nil, ptrType$30.nil, ptrType$31.nil, ptrType$31.nil, ptrType$31.nil); return; } this.id = id_; @@ -46643,11 +45715,11 @@ $packages["encoding/gob"] = (function() { this.$val = this; if (arguments.length === 0) { this.mutex = new nosync.Mutex.ptr(false, false, false, false, 0); - this.w = sliceType$20.nil; + this.w = sliceType$21.nil; this.sent = false; - this.countState = ptrType$32.nil; - this.freeList = ptrType$32.nil; - this.byteBuf = new encBuffer.ptr(sliceType$1.nil, arrayType$1.zero()); + this.countState = ptrType$34.nil; + this.freeList = ptrType$34.nil; + this.byteBuf = new encBuffer.ptr(sliceType$2.nil, arrayType$2.zero()); this.err = $ifaceNil; return; } @@ -46663,12 +45735,12 @@ $packages["encoding/gob"] = (function() { encoderState = $newType(0, $kindStruct, "gob.encoderState", true, "encoding/gob", false, function(enc_, b_, sendZero_, fieldnum_, buf_, next_) { this.$val = this; if (arguments.length === 0) { - this.enc = ptrType$33.nil; - this.b = ptrType$34.nil; + this.enc = ptrType$35.nil; + this.b = ptrType$36.nil; this.sendZero = false; this.fieldnum = 0; - this.buf = arrayType$2.zero(); - this.next = ptrType$32.nil; + this.buf = arrayType$3.zero(); + this.next = ptrType$34.nil; return; } this.enc = enc_; @@ -46681,8 +45753,8 @@ $packages["encoding/gob"] = (function() { encBuffer = $newType(0, $kindStruct, "gob.encBuffer", true, "encoding/gob", false, function(data_, scratch_) { this.$val = this; if (arguments.length === 0) { - this.data = sliceType$1.nil; - this.scratch = arrayType$1.zero(); + this.data = sliceType$2.nil; + this.scratch = arrayType$2.zero(); return; } this.data = data_; @@ -46694,7 +45766,7 @@ $packages["encoding/gob"] = (function() { if (arguments.length === 0) { this.op = $throwNilPointerError; this.field = 0; - this.index = sliceType$4.nil; + this.index = sliceType$5.nil; this.indir = 0; return; } @@ -46706,7 +45778,7 @@ $packages["encoding/gob"] = (function() { encEngine = $newType(0, $kindStruct, "gob.encEngine", true, "encoding/gob", false, function(instr_) { this.$val = this; if (arguments.length === 0) { - this.instr = sliceType$21.nil; + this.instr = sliceType$22.nil; return; } this.instr = instr_; @@ -46716,12 +45788,12 @@ $packages["encoding/gob"] = (function() { if (arguments.length === 0) { this.mutex = new nosync.Mutex.ptr(false, false, false, false, 0); this.r = $ifaceNil; - this.buf = new decBuffer.ptr(sliceType$1.nil, 0); + this.buf = new decBuffer.ptr(sliceType$2.nil, 0); this.wireType = false; this.decoderCache = false; this.ignorerCache = false; - this.freeList = ptrType$38.nil; - this.countBuf = sliceType$1.nil; + this.freeList = ptrType$40.nil; + this.countBuf = sliceType$2.nil; this.err = $ifaceNil; return; } @@ -46739,10 +45811,10 @@ $packages["encoding/gob"] = (function() { decoderState = $newType(0, $kindStruct, "gob.decoderState", true, "encoding/gob", false, function(dec_, b_, fieldnum_, next_) { this.$val = this; if (arguments.length === 0) { - this.dec = ptrType$39.nil; - this.b = ptrType$40.nil; + this.dec = ptrType$41.nil; + this.b = ptrType$42.nil; this.fieldnum = 0; - this.next = ptrType$38.nil; + this.next = ptrType$40.nil; return; } this.dec = dec_; @@ -46753,7 +45825,7 @@ $packages["encoding/gob"] = (function() { decBuffer = $newType(0, $kindStruct, "gob.decBuffer", true, "encoding/gob", false, function(data_, offset_) { this.$val = this; if (arguments.length === 0) { - this.data = sliceType$1.nil; + this.data = sliceType$2.nil; this.offset = 0; return; } @@ -46766,7 +45838,7 @@ $packages["encoding/gob"] = (function() { if (arguments.length === 0) { this.op = $throwNilPointerError; this.field = 0; - this.index = sliceType$4.nil; + this.index = sliceType$5.nil; this.ovfl = $ifaceNil; return; } @@ -46817,110 +45889,113 @@ $packages["encoding/gob"] = (function() { $pkg.decEngine = decEngine; $pkg.emptyStruct = emptyStruct; $pkg.$finishSetup = function() { + arrayType$1 = $arrayType(gobType, 64); ptrType = $ptrType(userTypeInfo); - ptrType$1 = $ptrType(reflect.rtype); + ptrType$1 = $ptrType($packages["internal/abi"].Type); ptrType$2 = $ptrType(GobEncoder); ptrType$3 = $ptrType(GobDecoder); ptrType$4 = $ptrType(encoding.BinaryMarshaler); ptrType$5 = $ptrType(encoding.BinaryUnmarshaler); ptrType$6 = $ptrType(encoding.TextMarshaler); ptrType$7 = $ptrType(encoding.TextUnmarshaler); - ptrType$8 = $ptrType($Bool); - ptrType$9 = $ptrType($Int); - ptrType$10 = $ptrType($Uint); - ptrType$11 = $ptrType($Float64); - sliceType$1 = $sliceType($Uint8); - ptrType$12 = $ptrType(sliceType$1); - ptrType$13 = $ptrType($String); - ptrType$14 = $ptrType($Complex128); - ptrType$15 = $ptrType($emptyInterface); + ptrType$8 = $ptrType(wireType); + sliceType$1 = $sliceType(gobType); + ptrType$9 = $ptrType($Bool); + ptrType$10 = $ptrType($Int); + ptrType$11 = $ptrType($Uint); + ptrType$12 = $ptrType($Float64); + sliceType$2 = $sliceType($Uint8); + ptrType$13 = $ptrType(sliceType$2); + ptrType$14 = $ptrType($String); + ptrType$15 = $ptrType($Complex128); + ptrType$16 = $ptrType($emptyInterface); structType$1 = $structType("encoding/gob", [{prop: "r7", name: "r7", embedded: false, exported: false, typ: $Int, tag: ""}]); - ptrType$16 = $ptrType(structType$1); + ptrType$17 = $ptrType(structType$1); structType$2 = $structType("encoding/gob", [{prop: "r6", name: "r6", embedded: false, exported: false, typ: $Int, tag: ""}]); - ptrType$17 = $ptrType(structType$2); + ptrType$18 = $ptrType(structType$2); structType$3 = $structType("encoding/gob", [{prop: "r5", name: "r5", embedded: false, exported: false, typ: $Int, tag: ""}]); - ptrType$18 = $ptrType(structType$3); + ptrType$19 = $ptrType(structType$3); structType$4 = $structType("encoding/gob", [{prop: "r4", name: "r4", embedded: false, exported: false, typ: $Int, tag: ""}]); - ptrType$19 = $ptrType(structType$4); + ptrType$20 = $ptrType(structType$4); structType$5 = $structType("encoding/gob", [{prop: "r3", name: "r3", embedded: false, exported: false, typ: $Int, tag: ""}]); - ptrType$20 = $ptrType(structType$5); + ptrType$21 = $ptrType(structType$5); structType$6 = $structType("encoding/gob", [{prop: "r2", name: "r2", embedded: false, exported: false, typ: $Int, tag: ""}]); - ptrType$21 = $ptrType(structType$6); + ptrType$22 = $ptrType(structType$6); structType$7 = $structType("encoding/gob", [{prop: "r1", name: "r1", embedded: false, exported: false, typ: $Int, tag: ""}]); - ptrType$22 = $ptrType(structType$7); - ptrType$23 = $ptrType(arrayType); - ptrType$24 = $ptrType(sliceType); - ptrType$25 = $ptrType(structType); - ptrType$26 = $ptrType(mapType); - ptrType$27 = $ptrType(gobEncoderType); - sliceType$2 = $sliceType($emptyInterface); - arrayType$1 = $arrayType($Uint8, 64); - ptrType$28 = $ptrType(fieldType); - sliceType$3 = $sliceType(ptrType$28); - ptrType$29 = $ptrType(wireType); - ptrType$30 = $ptrType(typeInfo); - mapType$1 = $mapType(reflect.Type, ptrType$30); - ptrType$31 = $ptrType(encEngine); - sliceType$4 = $sliceType($Int); - sliceType$5 = $sliceType($Int8); - sliceType$6 = $sliceType($Int16); - sliceType$7 = $sliceType($Int32); - sliceType$8 = $sliceType($Int64); - sliceType$9 = $sliceType($Uint); - sliceType$10 = $sliceType($Uint16); - sliceType$11 = $sliceType($Uint32); - sliceType$12 = $sliceType($Uint64); - sliceType$13 = $sliceType($Float32); - sliceType$14 = $sliceType($Float64); - sliceType$15 = $sliceType($Complex64); - sliceType$16 = $sliceType($Complex128); - sliceType$17 = $sliceType($Uintptr); - sliceType$18 = $sliceType($Bool); - sliceType$19 = $sliceType($String); - sliceType$20 = $sliceType(io.Writer); - ptrType$32 = $ptrType(encoderState); - ptrType$33 = $ptrType(Encoder); - ptrType$34 = $ptrType(encBuffer); - arrayType$2 = $arrayType($Uint8, 9); - ptrType$35 = $ptrType(encInstr); - ptrType$36 = $ptrType(encOp); - sliceType$21 = $sliceType(encInstr); - ptrType$37 = $ptrType($error); - ptrType$38 = $ptrType(decoderState); - ptrType$39 = $ptrType(Decoder); - ptrType$40 = $ptrType(decBuffer); - ptrType$41 = $ptrType($Uint8); - sliceType$22 = $sliceType(reflect.Value); - ptrType$42 = $ptrType(decOp); - ptrType$43 = $ptrType(decEngine); + ptrType$23 = $ptrType(structType$7); + sliceType$3 = $sliceType($emptyInterface); + arrayType$2 = $arrayType($Uint8, 64); + ptrType$24 = $ptrType(emptyStruct); + ptrType$25 = $ptrType(arrayType); + ptrType$26 = $ptrType(CommonType); + ptrType$27 = $ptrType(sliceType); + ptrType$28 = $ptrType(structType); + ptrType$29 = $ptrType(fieldType); + ptrType$30 = $ptrType(mapType); + sliceType$4 = $sliceType(fieldType); + ptrType$31 = $ptrType(gobEncoderType); + ptrType$32 = $ptrType(typeInfo); + mapType$1 = $mapType(reflect.Type, ptrType$32); + ptrType$33 = $ptrType(encEngine); + sliceType$5 = $sliceType($Int); + sliceType$6 = $sliceType($Int8); + sliceType$7 = $sliceType($Int16); + sliceType$8 = $sliceType($Int32); + sliceType$9 = $sliceType($Int64); + sliceType$10 = $sliceType($Uint); + sliceType$11 = $sliceType($Uint16); + sliceType$12 = $sliceType($Uint32); + sliceType$13 = $sliceType($Uint64); + sliceType$14 = $sliceType($Float32); + sliceType$15 = $sliceType($Float64); + sliceType$16 = $sliceType($Complex64); + sliceType$17 = $sliceType($Complex128); + sliceType$18 = $sliceType($Uintptr); + sliceType$19 = $sliceType($Bool); + sliceType$20 = $sliceType($String); + sliceType$21 = $sliceType(io.Writer); + ptrType$34 = $ptrType(encoderState); + ptrType$35 = $ptrType(Encoder); + ptrType$36 = $ptrType(encBuffer); + arrayType$3 = $arrayType($Uint8, 9); + ptrType$37 = $ptrType(encInstr); + ptrType$38 = $ptrType(encOp); + sliceType$22 = $sliceType(encInstr); + ptrType$39 = $ptrType($error); + ptrType$40 = $ptrType(decoderState); + ptrType$41 = $ptrType(Decoder); + ptrType$42 = $ptrType(decBuffer); + ptrType$43 = $ptrType($Uint8); + ptrType$44 = $ptrType(decInstr); + ptrType$45 = $ptrType(decOp); + ptrType$46 = $ptrType(decEngine); sliceType$23 = $sliceType(decInstr); - ptrType$44 = $ptrType(ptrType$43); - ptrType$45 = $ptrType(sliceType$18); - ptrType$46 = $ptrType(sliceType$15); - ptrType$47 = $ptrType(sliceType$16); - ptrType$48 = $ptrType(sliceType$13); - ptrType$49 = $ptrType(sliceType$14); - ptrType$50 = $ptrType(sliceType$4); - ptrType$51 = $ptrType(sliceType$6); - ptrType$52 = $ptrType(sliceType$7); - ptrType$53 = $ptrType(sliceType$8); - ptrType$54 = $ptrType(sliceType$5); - ptrType$55 = $ptrType(sliceType$9); - ptrType$56 = $ptrType(sliceType$10); - ptrType$57 = $ptrType(sliceType$11); - ptrType$58 = $ptrType(sliceType$12); - ptrType$59 = $ptrType(sliceType$17); + ptrType$47 = $ptrType(ptrType$46); + ptrType$48 = $ptrType(sliceType$19); + ptrType$49 = $ptrType(sliceType$16); + ptrType$50 = $ptrType(sliceType$17); + ptrType$51 = $ptrType(sliceType$14); + ptrType$52 = $ptrType(sliceType$15); + ptrType$53 = $ptrType(sliceType$5); + ptrType$54 = $ptrType(sliceType$7); + ptrType$55 = $ptrType(sliceType$8); + ptrType$56 = $ptrType(sliceType$9); + ptrType$57 = $ptrType(sliceType$6); + ptrType$58 = $ptrType(sliceType$20); + ptrType$59 = $ptrType(sliceType$10); + ptrType$60 = $ptrType(sliceType$11); + ptrType$61 = $ptrType(sliceType$12); + ptrType$62 = $ptrType(sliceType$13); + ptrType$63 = $ptrType(sliceType$18); mapType$2 = $mapType(typeId, $Bool); - ptrType$60 = $ptrType(CommonType); mapType$3 = $mapType(reflect.Type, typeId); - mapType$4 = $mapType(reflect.Type, ptrType$42); - mapType$5 = $mapType(typeId, ptrType$42); - mapType$6 = $mapType(typeId, ptrType$29); - mapType$7 = $mapType(typeId, ptrType$44); + mapType$4 = $mapType(reflect.Type, ptrType$45); + mapType$5 = $mapType(typeId, ptrType$45); + mapType$6 = $mapType(typeId, ptrType$8); + mapType$7 = $mapType(typeId, ptrType$47); mapType$8 = $mapType(reflect.Type, mapType$7); - ptrType$61 = $ptrType(decInstr); validUserType = function validUserType$1(rt) { - var {$24r, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, indir, indir$1, indir$2, indir$3, ok, ok$1, ok$2, ok$3, ok$4, pt, rt, slowpoke, ui, ui$1, ut, $s, $r, $c} = $restore(this, {rt}); + var {$24r, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _r$32, _r$33, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, indir, indir$1, indir$2, indir$3, ok, ok$1, ok$2, ok$3, ok$4, pt, rt, slowpoke, ui, ui$1, ut, $s, $r, $c} = $restore(this, {rt}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: _tuple = userTypeCache.Load(rt); ui = _tuple[0]; @@ -46934,33 +46009,33 @@ $packages["encoding/gob"] = (function() { slowpoke = ut.base; /* while (true) { */ case 1: pt = ut.base; - _r$22 = pt.Kind(); /* */ $s = 5; case 5: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - /* */ if (!((_r$22 === 22))) { $s = 3; continue; } + _r$24 = pt.Kind(); /* */ $s = 5; case 5: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + /* */ if (!((_r$24 === 22))) { $s = 3; continue; } /* */ $s = 4; continue; - /* if (!((_r$22 === 22))) { */ case 3: + /* if (!((_r$24 === 22))) { */ case 3: /* break; */ $s = 2; continue; /* } */ case 4: - _r$23 = pt.Elem(); /* */ $s = 6; case 6: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - ut.base = _r$23; + _r$25 = pt.Elem(); /* */ $s = 6; case 6: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + ut.base = _r$25; /* */ if ($interfaceIsEqual(ut.base, slowpoke)) { $s = 7; continue; } /* */ $s = 8; continue; /* if ($interfaceIsEqual(ut.base, slowpoke)) { */ case 7: - _r$24 = ut.base.String(); /* */ $s = 9; case 9: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - _r$25 = errors.New("can't represent recursive pointer type " + _r$24); /* */ $s = 10; case 10: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - $24r = [ptrType.nil, _r$25]; + _r$26 = ut.base.String(); /* */ $s = 9; case 9: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + _r$27 = errors.New("can't represent recursive pointer type " + _r$26); /* */ $s = 10; case 10: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + $24r = [ptrType.nil, _r$27]; $s = 11; case 11: return $24r; /* } */ case 8: - /* */ if ((_r$26 = ut.indir % 2, _r$26 === _r$26 ? _r$26 : $throwRuntimeError("integer divide by zero")) === 0) { $s = 12; continue; } + /* */ if ((_r$28 = ut.indir % 2, _r$28 === _r$28 ? _r$28 : $throwRuntimeError("integer divide by zero")) === 0) { $s = 12; continue; } /* */ $s = 13; continue; - /* if ((_r$26 = ut.indir % 2, _r$26 === _r$26 ? _r$26 : $throwRuntimeError("integer divide by zero")) === 0) { */ case 12: - _r$27 = slowpoke.Elem(); /* */ $s = 14; case 14: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - slowpoke = _r$27; + /* if ((_r$28 = ut.indir % 2, _r$28 === _r$28 ? _r$28 : $throwRuntimeError("integer divide by zero")) === 0) { */ case 12: + _r$29 = slowpoke.Elem(); /* */ $s = 14; case 14: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + slowpoke = _r$29; /* } */ case 13: ut.indir = ut.indir + (1) >> 0; $s = 1; continue; case 2: - _r$28 = implementsInterface(ut.user, gobEncoderInterfaceType); /* */ $s = 15; case 15: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - _tuple$1 = _r$28; + _r$30 = implementsInterface(ut.user, gobEncoderInterfaceType); /* */ $s = 15; case 15: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } + _tuple$1 = _r$30; ok$1 = _tuple$1[0]; indir = _tuple$1[1]; /* */ if (ok$1) { $s = 16; continue; } @@ -46972,8 +46047,8 @@ $packages["encoding/gob"] = (function() { ut.encIndir = _tmp$1; $s = 18; continue; /* } else { */ case 17: - _r$29 = implementsInterface(ut.user, binaryMarshalerInterfaceType); /* */ $s = 19; case 19: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } - _tuple$2 = _r$29; + _r$31 = implementsInterface(ut.user, binaryMarshalerInterfaceType); /* */ $s = 19; case 19: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } + _tuple$2 = _r$31; ok$2 = _tuple$2[0]; indir$1 = _tuple$2[1]; if (ok$2) { @@ -46983,8 +46058,8 @@ $packages["encoding/gob"] = (function() { ut.encIndir = _tmp$3; } /* } */ case 18: - _r$30 = implementsInterface(ut.user, gobDecoderInterfaceType); /* */ $s = 20; case 20: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } - _tuple$3 = _r$30; + _r$32 = implementsInterface(ut.user, gobDecoderInterfaceType); /* */ $s = 20; case 20: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } + _tuple$3 = _r$32; ok$3 = _tuple$3[0]; indir$2 = _tuple$3[1]; /* */ if (ok$3) { $s = 21; continue; } @@ -46996,8 +46071,8 @@ $packages["encoding/gob"] = (function() { ut.decIndir = _tmp$5; $s = 23; continue; /* } else { */ case 22: - _r$31 = implementsInterface(ut.user, binaryUnmarshalerInterfaceType); /* */ $s = 24; case 24: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } - _tuple$4 = _r$31; + _r$33 = implementsInterface(ut.user, binaryUnmarshalerInterfaceType); /* */ $s = 24; case 24: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } + _tuple$4 = _r$33; ok$4 = _tuple$4[0]; indir$3 = _tuple$4[1]; if (ok$4) { @@ -47010,10 +46085,10 @@ $packages["encoding/gob"] = (function() { _tuple$5 = userTypeCache.LoadOrStore(rt, ut); ui$1 = _tuple$5[0]; $s = -1; return [$assertType(ui$1, ptrType), $ifaceNil]; - /* */ } return; } var $f = {$blk: validUserType$1, $c: true, $r, $24r, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, indir, indir$1, indir$2, indir$3, ok, ok$1, ok$2, ok$3, ok$4, pt, rt, slowpoke, ui, ui$1, ut, $s};return $f; + /* */ } return; } var $f = {$blk: validUserType$1, $c: true, $r, $24r, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _r$32, _r$33, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, indir, indir$1, indir$2, indir$3, ok, ok$1, ok$2, ok$3, ok$4, pt, rt, slowpoke, ui, ui$1, ut, $s};return $f; }; implementsInterface = function implementsInterface$1(typ, gobEncDecType) { - var {_r$22, _r$23, _r$24, _r$25, _r$26, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, gobEncDecType, indir, p, rt, success, typ, $s, $r, $c} = $restore(this, {typ, gobEncDecType}); + var {_r$24, _r$25, _r$26, _r$27, _r$28, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, gobEncDecType, indir, p, rt, success, typ, $s, $r, $c} = $restore(this, {typ, gobEncDecType}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: success = false; indir = 0; @@ -47022,10 +46097,10 @@ $packages["encoding/gob"] = (function() { } rt = typ; /* while (true) { */ case 1: - _r$22 = rt.Implements(gobEncDecType); /* */ $s = 5; case 5: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - /* */ if (_r$22) { $s = 3; continue; } + _r$24 = rt.Implements(gobEncDecType); /* */ $s = 5; case 5: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + /* */ if (_r$24) { $s = 3; continue; } /* */ $s = 4; continue; - /* if (_r$22) { */ case 3: + /* if (_r$24) { */ case 3: _tmp = true; _tmp$1 = indir; success = _tmp; @@ -47033,10 +46108,10 @@ $packages["encoding/gob"] = (function() { $s = -1; return [success, indir]; /* } */ case 4: p = rt; - _r$23 = p.Kind(); /* */ $s = 8; case 8: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - /* */ if (_r$23 === 22) { $s = 6; continue; } + _r$25 = p.Kind(); /* */ $s = 8; case 8: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + /* */ if (_r$25 === 22) { $s = 6; continue; } /* */ $s = 7; continue; - /* if (_r$23 === 22) { */ case 6: + /* if (_r$25 === 22) { */ case 6: indir = indir + (1) << 24 >> 24; if (indir > 100) { _tmp$2 = false; @@ -47045,20 +46120,20 @@ $packages["encoding/gob"] = (function() { indir = _tmp$3; $s = -1; return [success, indir]; } - _r$24 = p.Elem(); /* */ $s = 9; case 9: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - rt = _r$24; + _r$26 = p.Elem(); /* */ $s = 9; case 9: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + rt = _r$26; /* continue; */ $s = 1; continue; /* } */ case 7: /* break; */ $s = 2; continue; case 2: - _r$25 = typ.Kind(); /* */ $s = 12; case 12: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - /* */ if (!((_r$25 === 22))) { $s = 10; continue; } + _r$27 = typ.Kind(); /* */ $s = 12; case 12: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + /* */ if (!((_r$27 === 22))) { $s = 10; continue; } /* */ $s = 11; continue; - /* if (!((_r$25 === 22))) { */ case 10: - _r$26 = reflect.PointerTo(typ).Implements(gobEncDecType); /* */ $s = 15; case 15: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - /* */ if (_r$26) { $s = 13; continue; } + /* if (!((_r$27 === 22))) { */ case 10: + _r$28 = reflect.PointerTo(typ).Implements(gobEncDecType); /* */ $s = 15; case 15: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + /* */ if (_r$28) { $s = 13; continue; } /* */ $s = 14; continue; - /* if (_r$26) { */ case 13: + /* if (_r$28) { */ case 13: _tmp$4 = true; _tmp$5 = -1; success = _tmp$4; @@ -47071,69 +46146,83 @@ $packages["encoding/gob"] = (function() { success = _tmp$6; indir = _tmp$7; $s = -1; return [success, indir]; - /* */ } return; } var $f = {$blk: implementsInterface$1, $c: true, $r, _r$22, _r$23, _r$24, _r$25, _r$26, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, gobEncDecType, indir, p, rt, success, typ, $s};return $f; + /* */ } return; } var $f = {$blk: implementsInterface$1, $c: true, $r, _r$24, _r$25, _r$26, _r$27, _r$28, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, gobEncDecType, indir, p, rt, success, typ, $s};return $f; }; userType = function userType$1(rt) { - var {_r$22, _tuple, err, rt, ut, $s, $r, $c} = $restore(this, {rt}); + var {_r$24, _tuple, err, rt, ut, $s, $r, $c} = $restore(this, {rt}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$22 = validUserType(rt); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = _r$22; + _r$24 = validUserType(rt); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = _r$24; ut = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { error_(err); } $s = -1; return ut; - /* */ } return; } var $f = {$blk: userType$1, $c: true, $r, _r$22, _tuple, err, rt, ut, $s};return $f; + /* */ } return; } var $f = {$blk: userType$1, $c: true, $r, _r$24, _tuple, err, rt, ut, $s};return $f; + }; + idToType = function idToType$1(id) { + var id; + if (id < 0 || ((id >> 0)) >= idToTypeSlice.$length) { + return $ifaceNil; + } + return ((id < 0 || id >= idToTypeSlice.$length) ? ($throwRuntimeError("index out of range"), undefined) : idToTypeSlice.$array[idToTypeSlice.$offset + id]); + }; + builtinIdToType = function builtinIdToType$1(id) { + var id; + if (id < 0 || ((id >> 0)) >= 64) { + return $ifaceNil; + } + return ((id < 0 || id >= builtinIdToTypeSlice.length) ? ($throwRuntimeError("index out of range"), undefined) : builtinIdToTypeSlice[id]); }; setTypeId = function setTypeId$1(typ) { - var {_key, _r$22, typ, $s, $r, $c} = $restore(this, {typ}); + var {_r$24, nextId, typ, $s, $r, $c} = $restore(this, {typ}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$22 = typ.id(); /* */ $s = 3; case 3: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - /* */ if (!((_r$22 === 0))) { $s = 1; continue; } + _r$24 = typ.id(); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + /* */ if (!((_r$24 === 0))) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (!((_r$22 === 0))) { */ case 1: + /* if (!((_r$24 === 0))) { */ case 1: $s = -1; return; /* } */ case 2: - nextId = nextId + (1) >> 0; + nextId = ((idToTypeSlice.$length >> 0)); $r = typ.setId(nextId); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _key = nextId; (idToType || $throwRuntimeError("assignment to entry in nil map")).set(typeId.keyFor(_key), { k: _key, v: typ }); + idToTypeSlice = $append(idToTypeSlice, typ); $s = -1; return; - /* */ } return; } var $f = {$blk: setTypeId$1, $c: true, $r, _key, _r$22, typ, $s};return $f; + /* */ } return; } var $f = {$blk: setTypeId$1, $c: true, $r, _r$24, nextId, typ, $s};return $f; }; typeId.prototype.gobType = function gobType$1() { - var _entry, t; + var t; t = this.$val; if (t === 0) { return $ifaceNil; } - return (_entry = $mapIndex(idToType,typeId.keyFor(t)), _entry !== undefined ? _entry.v : $ifaceNil); + return idToType(t); }; $ptrType(typeId).prototype.gobType = function(...$args) { return new typeId(this.$get()).gobType(...$args); }; typeId.prototype.string = function string() { - var {$24r, _r$22, t, $s, $r, $c} = $restore(this, {}); + var {$24r, _r$24, t, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: t = this.$val; if ($interfaceIsEqual(new typeId(t).gobType(), $ifaceNil)) { $s = -1; return ""; } - _r$22 = new typeId(t).gobType().string(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - $24r = _r$22; + _r$24 = new typeId(t).gobType().string(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + $24r = _r$24; $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: string, $c: true, $r, $24r, _r$22, t, $s};return $f; + /* */ } return; } var $f = {$blk: string, $c: true, $r, $24r, _r$24, t, $s};return $f; }; $ptrType(typeId).prototype.string = function(...$args) { return new typeId(this.$get()).string(...$args); }; typeId.prototype.name = function name() { - var {$24r, _r$22, t, $s, $r, $c} = $restore(this, {}); + var {$24r, _r$24, t, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: t = this.$val; if ($interfaceIsEqual(new typeId(t).gobType(), $ifaceNil)) { $s = -1; return ""; } - _r$22 = new typeId(t).gobType().name(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - $24r = _r$22; + _r$24 = new typeId(t).gobType().name(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + $24r = _r$24; $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: name, $c: true, $r, $24r, _r$22, t, $s};return $f; + /* */ } return; } var $f = {$blk: name, $c: true, $r, $24r, _r$24, t, $s};return $f; }; $ptrType(typeId).prototype.name = function(...$args) { return new typeId(this.$get()).name(...$args); }; $ptrType(CommonType).prototype.id = function id() { @@ -47161,77 +46250,67 @@ $packages["encoding/gob"] = (function() { t = this; return t.Name; }; - init = function init$2() { - var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _entry, _i, _key, _key$1, _keys, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _ref, _size, k, v, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r, $c} = $restore(this, {}); + init = function init$3() { + var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, nextId, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: $r = checkId(16, tWireType); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$22 = mustGetTypeInfo(reflect.TypeOf((x$2 = new arrayType.ptr(new CommonType.ptr("", 0), 0, 0), new x$2.constructor.elem(x$2)))); /* */ $s = 2; case 2: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _arg = _r$22.id; - $r = checkId(17, _arg); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$23 = mustGetTypeInfo(reflect.TypeOf((x$3 = new CommonType.ptr("", 0), new x$3.constructor.elem(x$3)))); /* */ $s = 4; case 4: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _arg$1 = _r$23.id; - $r = checkId(18, _arg$1); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$24 = mustGetTypeInfo(reflect.TypeOf((x$4 = new sliceType.ptr(new CommonType.ptr("", 0), 0), new x$4.constructor.elem(x$4)))); /* */ $s = 6; case 6: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - _arg$2 = _r$24.id; - $r = checkId(19, _arg$2); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$25 = mustGetTypeInfo(reflect.TypeOf((x$5 = new structType.ptr(new CommonType.ptr("", 0), sliceType$3.nil), new x$5.constructor.elem(x$5)))); /* */ $s = 8; case 8: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - _arg$3 = _r$25.id; - $r = checkId(20, _arg$3); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$26 = mustGetTypeInfo(reflect.TypeOf((x$6 = new fieldType.ptr("", 0), new x$6.constructor.elem(x$6)))); /* */ $s = 10; case 10: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - _arg$4 = _r$26.id; - $r = checkId(21, _arg$4); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$27 = mustGetTypeInfo(reflect.TypeOf((x$7 = new mapType.ptr(new CommonType.ptr("", 0), 0, 0), new x$7.constructor.elem(x$7)))); /* */ $s = 12; case 12: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - _arg$5 = _r$27.id; - $r = checkId(23, _arg$5); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - builtinIdToType = new $global.Map(); - _ref = idToType; - _i = 0; - _keys = _ref ? _ref.keys() : undefined; - _size = _ref ? _ref.size : 0; - while (true) { - if (!(_i < _size)) { break; } - _key = _keys.next().value; - _entry = _ref.get(_key); - if (_entry === undefined) { - _i++; - continue; - } - k = _entry.k; - v = _entry.v; - _key$1 = k; (builtinIdToType || $throwRuntimeError("assignment to entry in nil map")).set(typeId.keyFor(_key$1), { k: _key$1, v: v }); - _i++; - } - /* */ if (nextId > 64) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (nextId > 64) { */ case 14: - _r$28 = fmt.Sprintln(new sliceType$2([new $String("nextId too large:"), new typeId(nextId)])); /* */ $s = 16; case 16: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - $panic(new $String(_r$28)); - /* } */ case 15: - nextId = 64; - $r = registerBasics(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$29 = userType(reflect.TypeOf((ptrType$29.nil))); /* */ $s = 18; case 18: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } - wireTypeUserInfo = _r$29; + _r$24 = reflect.TypeOf((ptrType$25.nil)).Elem(); /* */ $s = 2; case 2: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _r$25 = mustGetTypeInfo(_r$24); /* */ $s = 3; case 3: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _arg = _r$25.id; + $r = checkId(17, _arg); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$26 = reflect.TypeOf((ptrType$26.nil)).Elem(); /* */ $s = 5; case 5: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + _r$27 = mustGetTypeInfo(_r$26); /* */ $s = 6; case 6: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + _arg$1 = _r$27.id; + $r = checkId(18, _arg$1); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$28 = reflect.TypeOf((ptrType$27.nil)).Elem(); /* */ $s = 8; case 8: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + _r$29 = mustGetTypeInfo(_r$28); /* */ $s = 9; case 9: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + _arg$2 = _r$29.id; + $r = checkId(19, _arg$2); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$30 = reflect.TypeOf((ptrType$28.nil)).Elem(); /* */ $s = 11; case 11: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } + _r$31 = mustGetTypeInfo(_r$30); /* */ $s = 12; case 12: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } + _arg$3 = _r$31.id; + $r = checkId(20, _arg$3); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$32 = reflect.TypeOf((ptrType$29.nil)).Elem(); /* */ $s = 14; case 14: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } + _r$33 = mustGetTypeInfo(_r$32); /* */ $s = 15; case 15: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } + _arg$4 = _r$33.id; + $r = checkId(21, _arg$4); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$34 = reflect.TypeOf((ptrType$30.nil)).Elem(); /* */ $s = 17; case 17: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } + _r$35 = mustGetTypeInfo(_r$34); /* */ $s = 18; case 18: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } + _arg$5 = _r$35.id; + $r = checkId(23, _arg$5); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $copySlice(new sliceType$1(builtinIdToTypeSlice), idToTypeSlice); + nextId = idToTypeSlice.$length; + /* */ if (nextId > 64) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (nextId > 64) { */ case 20: + _r$36 = fmt.Sprintln(new sliceType$3([new $String("nextId too large:"), new $Int(nextId)])); /* */ $s = 22; case 22: if($c) { $c = false; _r$36 = _r$36.$blk(); } if (_r$36 && _r$36.$blk !== undefined) { break s; } + $panic(new $String(_r$36)); + /* } */ case 21: + idToTypeSlice = $subslice(idToTypeSlice, 0, 64); + $r = registerBasics(); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$37 = userType(wireTypeType); /* */ $s = 24; case 24: if($c) { $c = false; _r$37 = _r$37.$blk(); } if (_r$37 && _r$37.$blk !== undefined) { break s; } + wireTypeUserInfo = _r$37; $s = -1; return; - /* */ } return; } var $f = {$blk: init$2, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _entry, _i, _key, _key$1, _keys, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _ref, _size, k, v, x$2, x$3, x$4, x$5, x$6, x$7, $s};return $f; + /* */ } return; } var $f = {$blk: init$3, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, nextId, $s};return $f; }; newArrayType = function newArrayType$1(name$2) { var a, name$2; a = new arrayType.ptr($clone(new CommonType.ptr(name$2, 0), CommonType), 0, 0); return a; }; - $ptrType(arrayType).prototype.init = function init$3(elem, len) { - var {_r$22, a, elem, len, $s, $r, $c} = $restore(this, {elem, len}); + $ptrType(arrayType).prototype.init = function init$4(elem, len) { + var {_r$24, a, elem, len, $s, $r, $c} = $restore(this, {elem, len}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: a = this; $r = setTypeId(a); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$22 = elem.id(); /* */ $s = 2; case 2: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - a.Elem = _r$22; + _r$24 = elem.id(); /* */ $s = 2; case 2: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + a.Elem = _r$24; a.Len = len; $s = -1; return; - /* */ } return; } var $f = {$blk: init$3, $c: true, $r, _r$22, a, elem, len, $s};return $f; + /* */ } return; } var $f = {$blk: init$4, $c: true, $r, _r$24, a, elem, len, $s};return $f; }; $ptrType(arrayType).prototype.safeString = function safeString$1(seen) { - var {$24r, _arg, _arg$1, _entry, _key, _r$22, _r$23, a, seen, $s, $r, $c} = $restore(this, {seen}); + var {$24r, _arg, _arg$1, _entry, _key, _r$24, _r$25, a, seen, $s, $r, $c} = $restore(this, {seen}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: a = this; if ((_entry = $mapIndex(seen,typeId.keyFor(a.CommonType.Id)), _entry !== undefined ? _entry.v : false)) { @@ -47239,21 +46318,21 @@ $packages["encoding/gob"] = (function() { } _key = a.CommonType.Id; (seen || $throwRuntimeError("assignment to entry in nil map")).set(typeId.keyFor(_key), { k: _key, v: true }); _arg = new $Int(a.Len); - _r$22 = new typeId(a.Elem).gobType().safeString(seen); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _arg$1 = new $String(_r$22); - _r$23 = fmt.Sprintf("[%d]%s", new sliceType$2([_arg, _arg$1])); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - $24r = _r$23; + _r$24 = new typeId(a.Elem).gobType().safeString(seen); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _arg$1 = new $String(_r$24); + _r$25 = fmt.Sprintf("[%d]%s", new sliceType$3([_arg, _arg$1])); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $24r = _r$25; $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: safeString$1, $c: true, $r, $24r, _arg, _arg$1, _entry, _key, _r$22, _r$23, a, seen, $s};return $f; + /* */ } return; } var $f = {$blk: safeString$1, $c: true, $r, $24r, _arg, _arg$1, _entry, _key, _r$24, _r$25, a, seen, $s};return $f; }; $ptrType(arrayType).prototype.string = function string$2() { - var {$24r, _r$22, a, $s, $r, $c} = $restore(this, {}); + var {$24r, _r$24, a, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: a = this; - _r$22 = a.safeString(new $global.Map()); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - $24r = _r$22; + _r$24 = a.safeString(new $global.Map()); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + $24r = _r$24; $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: string$2, $c: true, $r, $24r, _r$22, a, $s};return $f; + /* */ } return; } var $f = {$blk: string$2, $c: true, $r, $24r, _r$24, a, $s};return $f; }; newGobEncoderType = function newGobEncoderType$1(name$2) { var {g, name$2, $s, $r, $c} = $restore(this, {name$2}); @@ -47278,94 +46357,94 @@ $packages["encoding/gob"] = (function() { m = new mapType.ptr($clone(new CommonType.ptr(name$2, 0), CommonType), 0, 0); return m; }; - $ptrType(mapType).prototype.init = function init$4(key, elem) { - var {_r$22, _r$23, elem, key, m, $s, $r, $c} = $restore(this, {key, elem}); + $ptrType(mapType).prototype.init = function init$5(key, elem) { + var {_r$24, _r$25, elem, key, m, $s, $r, $c} = $restore(this, {key, elem}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: m = this; $r = setTypeId(m); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$22 = key.id(); /* */ $s = 2; case 2: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - m.Key = _r$22; - _r$23 = elem.id(); /* */ $s = 3; case 3: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - m.Elem = _r$23; + _r$24 = key.id(); /* */ $s = 2; case 2: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + m.Key = _r$24; + _r$25 = elem.id(); /* */ $s = 3; case 3: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + m.Elem = _r$25; $s = -1; return; - /* */ } return; } var $f = {$blk: init$4, $c: true, $r, _r$22, _r$23, elem, key, m, $s};return $f; + /* */ } return; } var $f = {$blk: init$5, $c: true, $r, _r$24, _r$25, elem, key, m, $s};return $f; }; $ptrType(mapType).prototype.safeString = function safeString$3(seen) { - var {$24r, _entry, _key, _r$22, _r$23, _r$24, elem, key, m, seen, $s, $r, $c} = $restore(this, {seen}); + var {$24r, _entry, _key, _r$24, _r$25, _r$26, elem, key, m, seen, $s, $r, $c} = $restore(this, {seen}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: m = this; if ((_entry = $mapIndex(seen,typeId.keyFor(m.CommonType.Id)), _entry !== undefined ? _entry.v : false)) { $s = -1; return m.CommonType.Name; } _key = m.CommonType.Id; (seen || $throwRuntimeError("assignment to entry in nil map")).set(typeId.keyFor(_key), { k: _key, v: true }); - _r$22 = new typeId(m.Key).gobType().safeString(seen); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - key = _r$22; - _r$23 = new typeId(m.Elem).gobType().safeString(seen); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - elem = _r$23; - _r$24 = fmt.Sprintf("map[%s]%s", new sliceType$2([new $String(key), new $String(elem)])); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - $24r = _r$24; + _r$24 = new typeId(m.Key).gobType().safeString(seen); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + key = _r$24; + _r$25 = new typeId(m.Elem).gobType().safeString(seen); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + elem = _r$25; + _r$26 = fmt.Sprintf("map[%s]%s", new sliceType$3([new $String(key), new $String(elem)])); /* */ $s = 3; case 3: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + $24r = _r$26; $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: safeString$3, $c: true, $r, $24r, _entry, _key, _r$22, _r$23, _r$24, elem, key, m, seen, $s};return $f; + /* */ } return; } var $f = {$blk: safeString$3, $c: true, $r, $24r, _entry, _key, _r$24, _r$25, _r$26, elem, key, m, seen, $s};return $f; }; $ptrType(mapType).prototype.string = function string$4() { - var {$24r, _r$22, m, $s, $r, $c} = $restore(this, {}); + var {$24r, _r$24, m, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: m = this; - _r$22 = m.safeString(new $global.Map()); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - $24r = _r$22; + _r$24 = m.safeString(new $global.Map()); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + $24r = _r$24; $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: string$4, $c: true, $r, $24r, _r$22, m, $s};return $f; + /* */ } return; } var $f = {$blk: string$4, $c: true, $r, $24r, _r$24, m, $s};return $f; }; newSliceType = function newSliceType$1(name$2) { var name$2, s; s = new sliceType.ptr($clone(new CommonType.ptr(name$2, 0), CommonType), 0); return s; }; - $ptrType(sliceType).prototype.init = function init$5(elem) { - var {_r$22, _r$23, elem, s, $s, $r, $c} = $restore(this, {elem}); + $ptrType(sliceType).prototype.init = function init$6(elem) { + var {_r$24, _r$25, elem, s, $s, $r, $c} = $restore(this, {elem}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: s = this; $r = setTypeId(s); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$22 = elem.id(); /* */ $s = 4; case 4: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - /* */ if (_r$22 === 0) { $s = 2; continue; } + _r$24 = elem.id(); /* */ $s = 4; case 4: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + /* */ if (_r$24 === 0) { $s = 2; continue; } /* */ $s = 3; continue; - /* if (_r$22 === 0) { */ case 2: + /* if (_r$24 === 0) { */ case 2: $r = setTypeId(elem); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 3: - _r$23 = elem.id(); /* */ $s = 6; case 6: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - s.Elem = _r$23; + _r$25 = elem.id(); /* */ $s = 6; case 6: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + s.Elem = _r$25; $s = -1; return; - /* */ } return; } var $f = {$blk: init$5, $c: true, $r, _r$22, _r$23, elem, s, $s};return $f; + /* */ } return; } var $f = {$blk: init$6, $c: true, $r, _r$24, _r$25, elem, s, $s};return $f; }; $ptrType(sliceType).prototype.safeString = function safeString$4(seen) { - var {$24r, _arg, _entry, _key, _r$22, _r$23, s, seen, $s, $r, $c} = $restore(this, {seen}); + var {$24r, _arg, _entry, _key, _r$24, _r$25, s, seen, $s, $r, $c} = $restore(this, {seen}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: s = this; if ((_entry = $mapIndex(seen,typeId.keyFor(s.CommonType.Id)), _entry !== undefined ? _entry.v : false)) { $s = -1; return s.CommonType.Name; } _key = s.CommonType.Id; (seen || $throwRuntimeError("assignment to entry in nil map")).set(typeId.keyFor(_key), { k: _key, v: true }); - _r$22 = new typeId(s.Elem).gobType().safeString(seen); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _arg = new $String(_r$22); - _r$23 = fmt.Sprintf("[]%s", new sliceType$2([_arg])); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - $24r = _r$23; + _r$24 = new typeId(s.Elem).gobType().safeString(seen); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _arg = new $String(_r$24); + _r$25 = fmt.Sprintf("[]%s", new sliceType$3([_arg])); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $24r = _r$25; $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: safeString$4, $c: true, $r, $24r, _arg, _entry, _key, _r$22, _r$23, s, seen, $s};return $f; + /* */ } return; } var $f = {$blk: safeString$4, $c: true, $r, $24r, _arg, _entry, _key, _r$24, _r$25, s, seen, $s};return $f; }; $ptrType(sliceType).prototype.string = function string$5() { - var {$24r, _r$22, s, $s, $r, $c} = $restore(this, {}); + var {$24r, _r$24, s, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: s = this; - _r$22 = s.safeString(new $global.Map()); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - $24r = _r$22; + _r$24 = s.safeString(new $global.Map()); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + $24r = _r$24; $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: string$5, $c: true, $r, $24r, _r$22, s, $s};return $f; + /* */ } return; } var $f = {$blk: string$5, $c: true, $r, $24r, _r$24, s, $s};return $f; }; $ptrType(structType).prototype.safeString = function safeString$5(seen) { - var {_arg, _arg$1, _entry, _i, _key, _r$22, _r$23, _ref, _tuple, f, ok, s, seen, str, $s, $r, $c} = $restore(this, {seen}); + var {_arg, _arg$1, _entry, _i, _key, _r$24, _r$25, _ref, _tuple, f, ok, s, seen, str, $s, $r, $c} = $restore(this, {seen}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: s = this; - if (s === ptrType$25.nil) { + if (s === ptrType$28.nil) { $s = -1; return ""; } _tuple = (_entry = $mapIndex(seen,typeId.keyFor(s.CommonType.Id)), _entry !== undefined ? [_entry.v, true] : [false, false]); @@ -47379,46 +46458,46 @@ $packages["encoding/gob"] = (function() { _i = 0; /* while (true) { */ case 1: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + f = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), fieldType); _arg = new $String(f.Name); - _r$22 = new typeId(f.Id).gobType().safeString(seen); /* */ $s = 3; case 3: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _arg$1 = new $String(_r$22); - _r$23 = fmt.Sprintf("%s %s; ", new sliceType$2([_arg, _arg$1])); /* */ $s = 4; case 4: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - str = str + (_r$23); + _r$24 = new typeId(f.Id).gobType().safeString(seen); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _arg$1 = new $String(_r$24); + _r$25 = fmt.Sprintf("%s %s; ", new sliceType$3([_arg, _arg$1])); /* */ $s = 4; case 4: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + str = str + (_r$25); _i++; $s = 1; continue; case 2: str = str + ("}"); $s = -1; return str; - /* */ } return; } var $f = {$blk: safeString$5, $c: true, $r, _arg, _arg$1, _entry, _i, _key, _r$22, _r$23, _ref, _tuple, f, ok, s, seen, str, $s};return $f; + /* */ } return; } var $f = {$blk: safeString$5, $c: true, $r, _arg, _arg$1, _entry, _i, _key, _r$24, _r$25, _ref, _tuple, f, ok, s, seen, str, $s};return $f; }; $ptrType(structType).prototype.string = function string$6() { - var {$24r, _r$22, s, $s, $r, $c} = $restore(this, {}); + var {$24r, _r$24, s, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: s = this; - _r$22 = s.safeString(new $global.Map()); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - $24r = _r$22; + _r$24 = s.safeString(new $global.Map()); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + $24r = _r$24; $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: string$6, $c: true, $r, $24r, _r$22, s, $s};return $f; + /* */ } return; } var $f = {$blk: string$6, $c: true, $r, $24r, _r$24, s, $s};return $f; }; newStructType = function newStructType$1(name$2) { var {name$2, s, $s, $r, $c} = $restore(this, {name$2}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - s = new structType.ptr($clone(new CommonType.ptr(name$2, 0), CommonType), sliceType$3.nil); + s = new structType.ptr($clone(new CommonType.ptr(name$2, 0), CommonType), sliceType$4.nil); $r = setTypeId(s); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return s; /* */ } return; } var $f = {$blk: newStructType$1, $c: true, $r, name$2, s, $s};return $f; }; newTypeObject = function newTypeObject$1(name$2, ut, rt) { - var {$24r, $24r$1, _1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _key, _key$1, _key$2, _key$3, _key$4, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, at, err, err$1, f, gt, i, mt, name$2, rt, st, st$1, t, t$1, tname, typ, type0, type1, ut, $s, $deferred, $r, $c} = $restore(this, {name$2, ut, rt}); + var {$24r, $24r$1, _1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _key, _key$1, _key$2, _key$3, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _r$50, _r$51, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, at, err, err$1, f, gt, i, mt, name$2, rt, st, st$1, t, t$1, tname, typ, type0, type1, ut, x, $s, $deferred, $r, $c} = $restore(this, {name$2, ut, rt}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); err = [err]; rt = [rt]; /* */ if (!((ut.externalEnc === 0))) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!((ut.externalEnc === 0))) { */ case 1: - _r$22 = newGobEncoderType(name$2); /* */ $s = 3; case 3: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - $24r = [_r$22, $ifaceNil]; + _r$24 = newGobEncoderType(name$2); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + $24r = [_r$24, $ifaceNil]; $s = 4; case 4: return $24r; /* } */ case 2: err[0] = $ifaceNil; @@ -47432,8 +46511,8 @@ $packages["encoding/gob"] = (function() { } }; })(err, rt), []]); t = rt[0]; - _r$23 = t.Kind(); /* */ $s = 6; case 6: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _1 = _r$23; + _r$25 = t.Kind(); /* */ $s = 6; case 6: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _1 = _r$25; /* */ if (_1 === (1)) { $s = 7; continue; } /* */ if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { $s = 8; continue; } /* */ if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { $s = 9; continue; } @@ -47463,36 +46542,36 @@ $packages["encoding/gob"] = (function() { /* } else if (_1 === (17)) { */ case 14: at = newArrayType(name$2); _key = rt[0]; (types || $throwRuntimeError("assignment to entry in nil map")).set(reflect.Type.keyFor(_key), { k: _key, v: at }); - _r$24 = t.Elem(); /* */ $s = 20; case 20: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - _arg = _r$24; - _r$25 = getBaseType("", _arg); /* */ $s = 21; case 21: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - _tuple = _r$25; + _r$26 = t.Elem(); /* */ $s = 20; case 20: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + _arg = _r$26; + _r$27 = getBaseType("", _arg); /* */ $s = 21; case 21: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + _tuple = _r$27; type0 = _tuple[0]; err[0] = _tuple[1]; if (!($interfaceIsEqual(err[0], $ifaceNil))) { $s = -1; return [$ifaceNil, err[0]]; } _arg$1 = type0; - _r$26 = t.Len(); /* */ $s = 22; case 22: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - _arg$2 = _r$26; + _r$28 = t.Len(); /* */ $s = 22; case 22: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + _arg$2 = _r$28; $r = at.init(_arg$1, _arg$2); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return [at, $ifaceNil]; /* } else if (_1 === (21)) { */ case 15: mt = newMapType(name$2); _key$1 = rt[0]; (types || $throwRuntimeError("assignment to entry in nil map")).set(reflect.Type.keyFor(_key$1), { k: _key$1, v: mt }); - _r$27 = t.Key(); /* */ $s = 24; case 24: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - _arg$3 = _r$27; - _r$28 = getBaseType("", _arg$3); /* */ $s = 25; case 25: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - _tuple$1 = _r$28; + _r$29 = t.Key(); /* */ $s = 24; case 24: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + _arg$3 = _r$29; + _r$30 = getBaseType("", _arg$3); /* */ $s = 25; case 25: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } + _tuple$1 = _r$30; type0 = _tuple$1[0]; err[0] = _tuple$1[1]; if (!($interfaceIsEqual(err[0], $ifaceNil))) { $s = -1; return [$ifaceNil, err[0]]; } - _r$29 = t.Elem(); /* */ $s = 26; case 26: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } - _arg$4 = _r$29; - _r$30 = getBaseType("", _arg$4); /* */ $s = 27; case 27: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } - _tuple$2 = _r$30; + _r$31 = t.Elem(); /* */ $s = 26; case 26: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } + _arg$4 = _r$31; + _r$32 = getBaseType("", _arg$4); /* */ $s = 27; case 27: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } + _tuple$2 = _r$32; type1 = _tuple$2[0]; err[0] = _tuple$2[1]; if (!($interfaceIsEqual(err[0], $ifaceNil))) { @@ -47501,22 +46580,22 @@ $packages["encoding/gob"] = (function() { $r = mt.init(type0, type1); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return [mt, $ifaceNil]; /* } else if (_1 === (23)) { */ case 16: - _r$31 = t.Elem(); /* */ $s = 31; case 31: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } - _r$32 = _r$31.Kind(); /* */ $s = 32; case 32: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } - /* */ if (_r$32 === 8) { $s = 29; continue; } + _r$33 = t.Elem(); /* */ $s = 31; case 31: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } + _r$34 = _r$33.Kind(); /* */ $s = 32; case 32: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } + /* */ if (_r$34 === 8) { $s = 29; continue; } /* */ $s = 30; continue; - /* if (_r$32 === 8) { */ case 29: + /* if (_r$34 === 8) { */ case 29: $s = -1; return [new typeId(tBytes).gobType(), $ifaceNil]; /* } */ case 30: st = newSliceType(name$2); _key$2 = rt[0]; (types || $throwRuntimeError("assignment to entry in nil map")).set(reflect.Type.keyFor(_key$2), { k: _key$2, v: st }); - _r$33 = t.Elem(); /* */ $s = 33; case 33: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } - _r$34 = _r$33.Name(); /* */ $s = 34; case 34: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } - _arg$5 = _r$34; - _r$35 = t.Elem(); /* */ $s = 35; case 35: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } - _arg$6 = _r$35; - _r$36 = getBaseType(_arg$5, _arg$6); /* */ $s = 36; case 36: if($c) { $c = false; _r$36 = _r$36.$blk(); } if (_r$36 && _r$36.$blk !== undefined) { break s; } - _tuple$3 = _r$36; + _r$35 = t.Elem(); /* */ $s = 33; case 33: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } + _r$36 = _r$35.Name(); /* */ $s = 34; case 34: if($c) { $c = false; _r$36 = _r$36.$blk(); } if (_r$36 && _r$36.$blk !== undefined) { break s; } + _arg$5 = _r$36; + _r$37 = t.Elem(); /* */ $s = 35; case 35: if($c) { $c = false; _r$37 = _r$37.$blk(); } if (_r$37 && _r$37.$blk !== undefined) { break s; } + _arg$6 = _r$37; + _r$38 = getBaseType(_arg$5, _arg$6); /* */ $s = 36; case 36: if($c) { $c = false; _r$38 = _r$38.$blk(); } if (_r$38 && _r$38.$blk !== undefined) { break s; } + _tuple$3 = _r$38; type0 = _tuple$3[0]; err[0] = _tuple$3[1]; if (!($interfaceIsEqual(err[0], $ifaceNil))) { @@ -47525,64 +46604,64 @@ $packages["encoding/gob"] = (function() { $r = st.init(type0); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return [st, $ifaceNil]; /* } else if (_1 === (25)) { */ case 17: - _r$37 = newStructType(name$2); /* */ $s = 38; case 38: if($c) { $c = false; _r$37 = _r$37.$blk(); } if (_r$37 && _r$37.$blk !== undefined) { break s; } - st$1 = _r$37; + _r$39 = newStructType(name$2); /* */ $s = 38; case 38: if($c) { $c = false; _r$39 = _r$39.$blk(); } if (_r$39 && _r$39.$blk !== undefined) { break s; } + st$1 = _r$39; _key$3 = rt[0]; (types || $throwRuntimeError("assignment to entry in nil map")).set(reflect.Type.keyFor(_key$3), { k: _key$3, v: st$1 }); - _key$4 = st$1.CommonType.id(); (idToType || $throwRuntimeError("assignment to entry in nil map")).set(typeId.keyFor(_key$4), { k: _key$4, v: st$1 }); + (x = st$1.CommonType.id(), ((x < 0 || x >= idToTypeSlice.$length) ? ($throwRuntimeError("index out of range"), undefined) : idToTypeSlice.$array[idToTypeSlice.$offset + x] = st$1)); i = 0; /* while (true) { */ case 39: - _r$38 = t.NumField(); /* */ $s = 41; case 41: if($c) { $c = false; _r$38 = _r$38.$blk(); } if (_r$38 && _r$38.$blk !== undefined) { break s; } - /* if (!(i < _r$38)) { break; } */ if(!(i < _r$38)) { $s = 40; continue; } + _r$40 = t.NumField(); /* */ $s = 41; case 41: if($c) { $c = false; _r$40 = _r$40.$blk(); } if (_r$40 && _r$40.$blk !== undefined) { break s; } + /* if (!(i < _r$40)) { break; } */ if(!(i < _r$40)) { $s = 40; continue; } f = [f]; - _r$39 = t.Field(i); /* */ $s = 42; case 42: if($c) { $c = false; _r$39 = _r$39.$blk(); } if (_r$39 && _r$39.$blk !== undefined) { break s; } - f[0] = $clone(_r$39, reflect.StructField); - _r$40 = isSent(f[0]); /* */ $s = 45; case 45: if($c) { $c = false; _r$40 = _r$40.$blk(); } if (_r$40 && _r$40.$blk !== undefined) { break s; } - /* */ if (!_r$40) { $s = 43; continue; } + _r$41 = t.Field(i); /* */ $s = 42; case 42: if($c) { $c = false; _r$41 = _r$41.$blk(); } if (_r$41 && _r$41.$blk !== undefined) { break s; } + f[0] = $clone(_r$41, reflect.StructField); + _r$42 = isSent(f[0]); /* */ $s = 45; case 45: if($c) { $c = false; _r$42 = _r$42.$blk(); } if (_r$42 && _r$42.$blk !== undefined) { break s; } + /* */ if (!_r$42) { $s = 43; continue; } /* */ $s = 44; continue; - /* if (!_r$40) { */ case 43: + /* if (!_r$42) { */ case 43: i = i + (1) >> 0; /* continue; */ $s = 39; continue; /* } */ case 44: - _r$41 = userType(f[0].Type); /* */ $s = 46; case 46: if($c) { $c = false; _r$41 = _r$41.$blk(); } if (_r$41 && _r$41.$blk !== undefined) { break s; } - typ = _r$41.base; - _r$42 = typ.Name(); /* */ $s = 47; case 47: if($c) { $c = false; _r$42 = _r$42.$blk(); } if (_r$42 && _r$42.$blk !== undefined) { break s; } - tname = _r$42; + _r$43 = userType(f[0].Type); /* */ $s = 46; case 46: if($c) { $c = false; _r$43 = _r$43.$blk(); } if (_r$43 && _r$43.$blk !== undefined) { break s; } + typ = _r$43.base; + _r$44 = typ.Name(); /* */ $s = 47; case 47: if($c) { $c = false; _r$44 = _r$44.$blk(); } if (_r$44 && _r$44.$blk !== undefined) { break s; } + tname = _r$44; /* */ if (tname === "") { $s = 48; continue; } /* */ $s = 49; continue; /* if (tname === "") { */ case 48: - _r$43 = userType(f[0].Type); /* */ $s = 50; case 50: if($c) { $c = false; _r$43 = _r$43.$blk(); } if (_r$43 && _r$43.$blk !== undefined) { break s; } - t$1 = _r$43.base; - _r$44 = t$1.String(); /* */ $s = 51; case 51: if($c) { $c = false; _r$44 = _r$44.$blk(); } if (_r$44 && _r$44.$blk !== undefined) { break s; } - tname = _r$44; + _r$45 = userType(f[0].Type); /* */ $s = 50; case 50: if($c) { $c = false; _r$45 = _r$45.$blk(); } if (_r$45 && _r$45.$blk !== undefined) { break s; } + t$1 = _r$45.base; + _r$46 = t$1.String(); /* */ $s = 51; case 51: if($c) { $c = false; _r$46 = _r$46.$blk(); } if (_r$46 && _r$46.$blk !== undefined) { break s; } + tname = _r$46; /* } */ case 49: - _r$45 = getBaseType(tname, f[0].Type); /* */ $s = 52; case 52: if($c) { $c = false; _r$45 = _r$45.$blk(); } if (_r$45 && _r$45.$blk !== undefined) { break s; } - _tuple$4 = _r$45; + _r$47 = getBaseType(tname, f[0].Type); /* */ $s = 52; case 52: if($c) { $c = false; _r$47 = _r$47.$blk(); } if (_r$47 && _r$47.$blk !== undefined) { break s; } + _tuple$4 = _r$47; gt = _tuple$4[0]; err$1 = _tuple$4[1]; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [$ifaceNil, err$1]; } - _r$46 = gt.id(); /* */ $s = 55; case 55: if($c) { $c = false; _r$46 = _r$46.$blk(); } if (_r$46 && _r$46.$blk !== undefined) { break s; } - /* */ if (_r$46 === 0) { $s = 53; continue; } + _r$48 = gt.id(); /* */ $s = 55; case 55: if($c) { $c = false; _r$48 = _r$48.$blk(); } if (_r$48 && _r$48.$blk !== undefined) { break s; } + /* */ if (_r$48 === 0) { $s = 53; continue; } /* */ $s = 54; continue; - /* if (_r$46 === 0) { */ case 53: + /* if (_r$48 === 0) { */ case 53: $r = setTypeId(gt); /* */ $s = 56; case 56: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 54: - _r$47 = gt.id(); /* */ $s = 57; case 57: if($c) { $c = false; _r$47 = _r$47.$blk(); } if (_r$47 && _r$47.$blk !== undefined) { break s; } - st$1.Field = $append(st$1.Field, new fieldType.ptr(f[0].Name, _r$47)); + _r$49 = gt.id(); /* */ $s = 57; case 57: if($c) { $c = false; _r$49 = _r$49.$blk(); } if (_r$49 && _r$49.$blk !== undefined) { break s; } + st$1.Field = $append(st$1.Field, new fieldType.ptr(f[0].Name, _r$49)); i = i + (1) >> 0; $s = 39; continue; case 40: $s = -1; return [st$1, $ifaceNil]; /* } else { */ case 18: - _r$48 = rt[0].String(); /* */ $s = 58; case 58: if($c) { $c = false; _r$48 = _r$48.$blk(); } if (_r$48 && _r$48.$blk !== undefined) { break s; } - _r$49 = errors.New("gob NewTypeObject can't handle type: " + _r$48); /* */ $s = 59; case 59: if($c) { $c = false; _r$49 = _r$49.$blk(); } if (_r$49 && _r$49.$blk !== undefined) { break s; } - $24r$1 = [$ifaceNil, _r$49]; + _r$50 = rt[0].String(); /* */ $s = 58; case 58: if($c) { $c = false; _r$50 = _r$50.$blk(); } if (_r$50 && _r$50.$blk !== undefined) { break s; } + _r$51 = errors.New("gob NewTypeObject can't handle type: " + _r$50); /* */ $s = 59; case 59: if($c) { $c = false; _r$51 = _r$51.$blk(); } if (_r$51 && _r$51.$blk !== undefined) { break s; } + $24r$1 = [$ifaceNil, _r$51]; $s = 60; case 60: return $24r$1; /* } */ case 19: case 5: $s = -1; return [$ifaceNil, $ifaceNil]; - /* */ } return; } } catch(err) { $err = err; $s = -1; return [$ifaceNil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: newTypeObject$1, $c: true, $r, $24r, $24r$1, _1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _key, _key$1, _key$2, _key$3, _key$4, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, at, err, err$1, f, gt, i, mt, name$2, rt, st, st$1, t, t$1, tname, typ, type0, type1, ut, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; return [$ifaceNil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: newTypeObject$1, $c: true, $r, $24r, $24r$1, _1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _key, _key$1, _key$2, _key$3, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _r$50, _r$51, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, at, err, err$1, f, gt, i, mt, name$2, rt, st, st$1, t, t$1, tname, typ, type0, type1, ut, x, $s, $deferred};return $f; } } }; isExported = function isExported$1(name$2) { var _tuple, name$2, rune; @@ -47591,43 +46670,43 @@ $packages["encoding/gob"] = (function() { return unicode.IsUpper(rune); }; isSent = function isSent$1(field) { - var {_r$22, _r$23, _r$24, _r$25, _v, field, typ, $s, $r, $c} = $restore(this, {field}); + var {_r$24, _r$25, _r$26, _r$27, _v, field, typ, $s, $r, $c} = $restore(this, {field}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if (!isExported(field.Name)) { $s = -1; return false; } typ = field.Type; /* while (true) { */ case 1: - _r$22 = typ.Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - /* if (!(_r$22 === 22)) { break; } */ if(!(_r$22 === 22)) { $s = 2; continue; } - _r$23 = typ.Elem(); /* */ $s = 4; case 4: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - typ = _r$23; + _r$24 = typ.Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + /* if (!(_r$24 === 22)) { break; } */ if(!(_r$24 === 22)) { $s = 2; continue; } + _r$25 = typ.Elem(); /* */ $s = 4; case 4: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + typ = _r$25; $s = 1; continue; case 2: - _r$24 = typ.Kind(); /* */ $s = 8; case 8: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - if (_r$24 === 18) { _v = true; $s = 7; continue s; } - _r$25 = typ.Kind(); /* */ $s = 9; case 9: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - _v = _r$25 === 19; case 7: + _r$26 = typ.Kind(); /* */ $s = 8; case 8: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + if (_r$26 === 18) { _v = true; $s = 7; continue s; } + _r$27 = typ.Kind(); /* */ $s = 9; case 9: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + _v = _r$27 === 19; case 7: /* */ if (_v) { $s = 5; continue; } /* */ $s = 6; continue; /* if (_v) { */ case 5: $s = -1; return false; /* } */ case 6: $s = -1; return true; - /* */ } return; } var $f = {$blk: isSent$1, $c: true, $r, _r$22, _r$23, _r$24, _r$25, _v, field, typ, $s};return $f; + /* */ } return; } var $f = {$blk: isSent$1, $c: true, $r, _r$24, _r$25, _r$26, _r$27, _v, field, typ, $s};return $f; }; getBaseType = function getBaseType$1(name$2, rt) { - var {$24r, _r$22, _r$23, name$2, rt, ut, $s, $r, $c} = $restore(this, {name$2, rt}); + var {$24r, _r$24, _r$25, name$2, rt, ut, $s, $r, $c} = $restore(this, {name$2, rt}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$22 = userType(rt); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - ut = _r$22; - _r$23 = getType(name$2, ut, ut.base); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - $24r = _r$23; + _r$24 = userType(rt); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + ut = _r$24; + _r$25 = getType(name$2, ut, ut.base); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $24r = _r$25; $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: getBaseType$1, $c: true, $r, $24r, _r$22, _r$23, name$2, rt, ut, $s};return $f; + /* */ } return; } var $f = {$blk: getBaseType$1, $c: true, $r, $24r, _r$24, _r$25, name$2, rt, ut, $s};return $f; }; getType = function getType$1(name$2, ut, rt) { - var {_entry, _key, _r$22, _tuple, _tuple$1, err, name$2, present, rt, typ, ut, $s, $r, $c} = $restore(this, {name$2, ut, rt}); + var {_entry, _key, _r$24, _tuple, _tuple$1, err, name$2, present, rt, typ, ut, $s, $r, $c} = $restore(this, {name$2, ut, rt}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: _tuple = (_entry = $mapIndex(types,reflect.Type.keyFor(rt)), _entry !== undefined ? [_entry.v, true] : [$ifaceNil, false]); typ = _tuple[0]; @@ -47635,230 +46714,236 @@ $packages["encoding/gob"] = (function() { if (present) { $s = -1; return [typ, $ifaceNil]; } - _r$22 = newTypeObject(name$2, ut, rt); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple$1 = _r$22; + _r$24 = newTypeObject(name$2, ut, rt); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple$1 = _r$24; typ = _tuple$1[0]; err = _tuple$1[1]; if ($interfaceIsEqual(err, $ifaceNil)) { _key = rt; (types || $throwRuntimeError("assignment to entry in nil map")).set(reflect.Type.keyFor(_key), { k: _key, v: typ }); } $s = -1; return [typ, err]; - /* */ } return; } var $f = {$blk: getType$1, $c: true, $r, _entry, _key, _r$22, _tuple, _tuple$1, err, name$2, present, rt, typ, ut, $s};return $f; + /* */ } return; } var $f = {$blk: getType$1, $c: true, $r, _entry, _key, _r$24, _tuple, _tuple$1, err, name$2, present, rt, typ, ut, $s};return $f; }; checkId = function checkId$1(want, got) { - var {_r$22, _r$23, _r$24, _r$25, got, want, $s, $r, $c} = $restore(this, {want, got}); + var {_r$24, _r$25, _r$26, _r$27, got, want, $s, $r, $c} = $restore(this, {want, got}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: /* */ if (!((want === got))) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!((want === got))) { */ case 1: - _r$22 = fmt.Fprintf(os.Stderr, "checkId: %d should be %d\n", new sliceType$2([new $Int(((got >> 0))), new $Int(((want >> 0)))])); /* */ $s = 3; case 3: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _r$22; - _r$23 = new typeId(got).name(); /* */ $s = 4; case 4: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _r$24 = new typeId(got).string(); /* */ $s = 5; case 5: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - _r$25 = new typeId(want).string(); /* */ $s = 6; case 6: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - $panic(new $String("bootstrap type wrong id: " + _r$23 + " " + _r$24 + " not " + _r$25)); + _r$24 = fmt.Fprintf(os.Stderr, "checkId: %d should be %d\n", new sliceType$3([new $Int(((got >> 0))), new $Int(((want >> 0)))])); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _r$24; + _r$25 = new typeId(got).name(); /* */ $s = 4; case 4: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _r$26 = new typeId(got).string(); /* */ $s = 5; case 5: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + _r$27 = new typeId(want).string(); /* */ $s = 6; case 6: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + $panic(new $String("bootstrap type wrong id: " + _r$25 + " " + _r$26 + " not " + _r$27)); /* } */ case 2: $s = -1; return; - /* */ } return; } var $f = {$blk: checkId$1, $c: true, $r, _r$22, _r$23, _r$24, _r$25, got, want, $s};return $f; + /* */ } return; } var $f = {$blk: checkId$1, $c: true, $r, _r$24, _r$25, _r$26, _r$27, got, want, $s};return $f; }; - bootstrapType = function bootstrapType$1(name$2, e, expect) { - var {_entry, _key, _r$22, _r$23, _r$24, _tuple, e, expect, name$2, present, rt, typ, $s, $r, $c} = $restore(this, {name$2, e, expect}); + bootstrapType = function bootstrapType$1(name$2, e) { + var {_entry, _key, _r$24, _r$25, _tuple, e, name$2, present, rt, typ, $s, $r, $c} = $restore(this, {name$2, e}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$22 = reflect.TypeOf(e).Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - rt = _r$22; + _r$24 = reflect.TypeOf(e).Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + rt = _r$24; _tuple = (_entry = $mapIndex(types,reflect.Type.keyFor(rt)), _entry !== undefined ? [_entry.v, true] : [$ifaceNil, false]); present = _tuple[1]; /* */ if (present) { $s = 2; continue; } /* */ $s = 3; continue; /* if (present) { */ case 2: - _r$23 = rt.String(); /* */ $s = 4; case 4: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - $panic(new $String("bootstrap type already present: " + name$2 + ", " + _r$23)); + _r$25 = rt.String(); /* */ $s = 4; case 4: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $panic(new $String("bootstrap type already present: " + name$2 + ", " + _r$25)); /* } */ case 3: typ = new CommonType.ptr(name$2, 0); _key = rt; (types || $throwRuntimeError("assignment to entry in nil map")).set(reflect.Type.keyFor(_key), { k: _key, v: typ }); $r = setTypeId(typ); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = checkId(expect, nextId); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$24 = userType(rt); /* */ $s = 7; case 7: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - _r$24; - $s = -1; return nextId; - /* */ } return; } var $f = {$blk: bootstrapType$1, $c: true, $r, _entry, _key, _r$22, _r$23, _r$24, _tuple, e, expect, name$2, present, rt, typ, $s};return $f; + $s = -1; return typ.id(); + /* */ } return; } var $f = {$blk: bootstrapType$1, $c: true, $r, _entry, _key, _r$24, _r$25, _tuple, e, name$2, present, rt, typ, $s};return $f; }; $ptrType(wireType).prototype.string = function string$7() { var w; w = this; - if (w === ptrType$29.nil) { + if (w === ptrType$8.nil) { return "unknown type"; } - if (!(w.ArrayT === ptrType$23.nil)) { + if (!(w.ArrayT === ptrType$25.nil)) { return w.ArrayT.CommonType.Name; - } else if (!(w.SliceT === ptrType$24.nil)) { + } else if (!(w.SliceT === ptrType$27.nil)) { return w.SliceT.CommonType.Name; - } else if (!(w.StructT === ptrType$25.nil)) { + } else if (!(w.StructT === ptrType$28.nil)) { return w.StructT.CommonType.Name; - } else if (!(w.MapT === ptrType$26.nil)) { + } else if (!(w.MapT === ptrType$30.nil)) { return w.MapT.CommonType.Name; - } else if (!(w.GobEncoderT === ptrType$27.nil)) { + } else if (!(w.GobEncoderT === ptrType$31.nil)) { return w.GobEncoderT.CommonType.Name; - } else if (!(w.BinaryMarshalerT === ptrType$27.nil)) { + } else if (!(w.BinaryMarshalerT === ptrType$31.nil)) { return w.BinaryMarshalerT.CommonType.Name; - } else if (!(w.TextMarshalerT === ptrType$27.nil)) { + } else if (!(w.TextMarshalerT === ptrType$31.nil)) { return w.TextMarshalerT.CommonType.Name; } return "unknown type"; }; lookupTypeInfo = function lookupTypeInfo$1(rt) { - var _entry, _tuple, m, rt; + var _entry, _entry$1, _tuple, m, m$1, rt; + m = typeInfoMapInit; + if (!(m === false)) { + return (_entry = $mapIndex(m,reflect.Type.keyFor(rt)), _entry !== undefined ? _entry.v : ptrType$32.nil); + } _tuple = $assertType(typeInfoMap.Load(), mapType$1, true); - m = _tuple[0]; - return (_entry = $mapIndex(m,reflect.Type.keyFor(rt)), _entry !== undefined ? _entry.v : ptrType$30.nil); + m$1 = _tuple[0]; + return (_entry$1 = $mapIndex(m$1,reflect.Type.keyFor(rt)), _entry$1 !== undefined ? _entry$1.v : ptrType$32.nil); }; getTypeInfo = function getTypeInfo$1(ut) { - var {$24r, _r$22, info, rt, ut, $s, $r, $c} = $restore(this, {ut}); + var {$24r, _r$24, info, rt, ut, $s, $r, $c} = $restore(this, {ut}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: rt = ut.base; if (!((ut.externalEnc === 0))) { rt = ut.user; } info = lookupTypeInfo(rt); - if (!(info === ptrType$30.nil)) { + if (!(info === ptrType$32.nil)) { $s = -1; return [info, $ifaceNil]; } - _r$22 = buildTypeInfo(ut, rt); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - $24r = _r$22; + _r$24 = buildTypeInfo(ut, rt); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + $24r = _r$24; $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: getTypeInfo$1, $c: true, $r, $24r, _r$22, info, rt, ut, $s};return $f; + /* */ } return; } var $f = {$blk: getTypeInfo$1, $c: true, $r, $24r, _r$24, info, rt, ut, $s};return $f; }; buildTypeInfo = function buildTypeInfo$1(ut, rt) { - var {_1, _2, _entry, _i, _key, _key$1, _key$2, _keys, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _ref, _size, _tuple, _tuple$1, _tuple$2, err, err$1, gt, gt$1, info, info$1, k, m, newm, rt, t, typ, userType$2, ut, v, $s, $deferred, $r, $c} = $restore(this, {ut, rt}); + var {_1, _2, _entry, _i, _key, _key$1, _key$2, _key$3, _keys, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _r$32, _r$33, _ref, _size, _tuple, _tuple$1, _tuple$2, err, err$1, gt, gt$1, info, info$1, k, m, m$1, newm, rt, t, typ, userType$2, ut, v, x, $s, $deferred, $r, $c} = $restore(this, {ut, rt}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); typeLock.Lock(); $deferred.push([$methodVal(typeLock, "Unlock"), []]); info = lookupTypeInfo(rt); - if (!(info === ptrType$30.nil)) { + if (!(info === ptrType$32.nil)) { $s = -1; return [info, $ifaceNil]; } - _r$22 = rt.Name(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _r$23 = getBaseType(_r$22, rt); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _tuple = _r$23; + _r$24 = rt.Name(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _r$25 = getBaseType(_r$24, rt); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _tuple = _r$25; gt = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [ptrType$30.nil, err]; + $s = -1; return [ptrType$32.nil, err]; } - _r$24 = gt.id(); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - info$1 = new typeInfo.ptr(_r$24, new nosync.Mutex.ptr(false, false, false, false, 0), new atomic.Pointer[0 /* encoding/gob.encEngine */].ptr(ptrType$31.nil), ptrType$29.nil); + _r$26 = gt.id(); /* */ $s = 3; case 3: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + info$1 = new typeInfo.ptr(_r$26, new nosync.Mutex.ptr(false, false, false, false, 0), new atomic.Pointer[0 /* encoding/gob.encEngine */].ptr(ptrType$33.nil), new wireType.ptr(ptrType$25.nil, ptrType$27.nil, ptrType$28.nil, ptrType$30.nil, ptrType$31.nil, ptrType$31.nil, ptrType$31.nil)); /* */ if (!((ut.externalEnc === 0))) { $s = 4; continue; } /* */ $s = 5; continue; /* if (!((ut.externalEnc === 0))) { */ case 4: - _r$25 = rt.Name(); /* */ $s = 7; case 7: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - _r$26 = getType(_r$25, ut, rt); /* */ $s = 8; case 8: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - _tuple$1 = _r$26; + _r$27 = rt.Name(); /* */ $s = 7; case 7: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + _r$28 = getType(_r$27, ut, rt); /* */ $s = 8; case 8: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + _tuple$1 = _r$28; userType$2 = _tuple$1[0]; err$1 = _tuple$1[1]; if (!($interfaceIsEqual(err$1, $ifaceNil))) { - $s = -1; return [ptrType$30.nil, err$1]; + $s = -1; return [ptrType$32.nil, err$1]; } - _r$27 = userType$2.id(); /* */ $s = 9; case 9: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - _r$28 = new typeId(_r$27).gobType(); /* */ $s = 10; case 10: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - gt$1 = $assertType(_r$28, ptrType$27); + _r$29 = userType$2.id(); /* */ $s = 9; case 9: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + _r$30 = new typeId(_r$29).gobType(); /* */ $s = 10; case 10: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } + gt$1 = $assertType(_r$30, ptrType$31); _1 = ut.externalEnc; if (_1 === (1)) { - info$1.wire = new wireType.ptr(ptrType$23.nil, ptrType$24.nil, ptrType$25.nil, ptrType$26.nil, gt$1, ptrType$27.nil, ptrType$27.nil); + info$1.wire.GobEncoderT = gt$1; } else if (_1 === (2)) { - info$1.wire = new wireType.ptr(ptrType$23.nil, ptrType$24.nil, ptrType$25.nil, ptrType$26.nil, ptrType$27.nil, gt$1, ptrType$27.nil); + info$1.wire.BinaryMarshalerT = gt$1; } else if (_1 === (3)) { - info$1.wire = new wireType.ptr(ptrType$23.nil, ptrType$24.nil, ptrType$25.nil, ptrType$26.nil, ptrType$27.nil, ptrType$27.nil, gt$1); + info$1.wire.TextMarshalerT = gt$1; } rt = ut.user; $s = 6; continue; /* } else { */ case 5: t = new typeId(info$1.id).gobType(); typ = rt; - _r$29 = typ.Kind(); /* */ $s = 12; case 12: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } - _2 = _r$29; + _r$31 = typ.Kind(); /* */ $s = 12; case 12: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } + _2 = _r$31; /* */ if (_2 === (17)) { $s = 13; continue; } /* */ if (_2 === (21)) { $s = 14; continue; } /* */ if (_2 === (23)) { $s = 15; continue; } /* */ if (_2 === (25)) { $s = 16; continue; } /* */ $s = 17; continue; /* if (_2 === (17)) { */ case 13: - info$1.wire = new wireType.ptr($assertType(t, ptrType$23), ptrType$24.nil, ptrType$25.nil, ptrType$26.nil, ptrType$27.nil, ptrType$27.nil, ptrType$27.nil); + info$1.wire.ArrayT = $assertType(t, ptrType$25); $s = 17; continue; /* } else if (_2 === (21)) { */ case 14: - info$1.wire = new wireType.ptr(ptrType$23.nil, ptrType$24.nil, ptrType$25.nil, $assertType(t, ptrType$26), ptrType$27.nil, ptrType$27.nil, ptrType$27.nil); + info$1.wire.MapT = $assertType(t, ptrType$30); $s = 17; continue; /* } else if (_2 === (23)) { */ case 15: - _r$30 = typ.Elem(); /* */ $s = 20; case 20: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } - _r$31 = _r$30.Kind(); /* */ $s = 21; case 21: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } - /* */ if (!((_r$31 === 8))) { $s = 18; continue; } + _r$32 = typ.Elem(); /* */ $s = 20; case 20: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } + _r$33 = _r$32.Kind(); /* */ $s = 21; case 21: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } + /* */ if (!((_r$33 === 8))) { $s = 18; continue; } /* */ $s = 19; continue; - /* if (!((_r$31 === 8))) { */ case 18: - info$1.wire = new wireType.ptr(ptrType$23.nil, $assertType(t, ptrType$24), ptrType$25.nil, ptrType$26.nil, ptrType$27.nil, ptrType$27.nil, ptrType$27.nil); + /* if (!((_r$33 === 8))) { */ case 18: + info$1.wire.SliceT = $assertType(t, ptrType$27); /* } */ case 19: $s = 17; continue; /* } else if (_2 === (25)) { */ case 16: - info$1.wire = new wireType.ptr(ptrType$23.nil, ptrType$24.nil, $assertType(t, ptrType$25), ptrType$26.nil, ptrType$27.nil, ptrType$27.nil, ptrType$27.nil); + info$1.wire.StructT = $assertType(t, ptrType$28); /* } */ case 17: case 11: /* } */ case 6: - newm = new $global.Map(); + m = typeInfoMapInit; + if (!(m === false)) { + _key = rt; (m || $throwRuntimeError("assignment to entry in nil map")).set(reflect.Type.keyFor(_key), { k: _key, v: info$1 }); + $s = -1; return [info$1, $ifaceNil]; + } _tuple$2 = $assertType(typeInfoMap.Load(), mapType$1, true); - m = _tuple$2[0]; - _ref = m; + m$1 = _tuple$2[0]; + newm = (x = (m$1 ? m$1.size : 0), ((x < 0 || x > 2147483647) ? $throwRuntimeError("makemap: size out of range") : new $global.Map())); + _ref = m$1; _i = 0; _keys = _ref ? _ref.keys() : undefined; _size = _ref ? _ref.size : 0; while (true) { if (!(_i < _size)) { break; } - _key = _keys.next().value; - _entry = _ref.get(_key); + _key$1 = _keys.next().value; + _entry = _ref.get(_key$1); if (_entry === undefined) { _i++; continue; } k = _entry.k; v = _entry.v; - _key$1 = k; (newm || $throwRuntimeError("assignment to entry in nil map")).set(reflect.Type.keyFor(_key$1), { k: _key$1, v: v }); + _key$2 = k; (newm || $throwRuntimeError("assignment to entry in nil map")).set(reflect.Type.keyFor(_key$2), { k: _key$2, v: v }); _i++; } - _key$2 = rt; (newm || $throwRuntimeError("assignment to entry in nil map")).set(reflect.Type.keyFor(_key$2), { k: _key$2, v: info$1 }); + _key$3 = rt; (newm || $throwRuntimeError("assignment to entry in nil map")).set(reflect.Type.keyFor(_key$3), { k: _key$3, v: info$1 }); typeInfoMap.Store(new mapType$1(newm)); $s = -1; return [info$1, $ifaceNil]; - /* */ } return; } } catch(err) { $err = err; $s = -1; return [ptrType$30.nil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: buildTypeInfo$1, $c: true, $r, _1, _2, _entry, _i, _key, _key$1, _key$2, _keys, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _ref, _size, _tuple, _tuple$1, _tuple$2, err, err$1, gt, gt$1, info, info$1, k, m, newm, rt, t, typ, userType$2, ut, v, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; return [ptrType$32.nil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: buildTypeInfo$1, $c: true, $r, _1, _2, _entry, _i, _key, _key$1, _key$2, _key$3, _keys, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _r$32, _r$33, _ref, _size, _tuple, _tuple$1, _tuple$2, err, err$1, gt, gt$1, info, info$1, k, m, m$1, newm, rt, t, typ, userType$2, ut, v, x, $s, $deferred};return $f; } } }; mustGetTypeInfo = function mustGetTypeInfo$1(rt) { - var {_r$22, _r$23, _r$24, _tuple, err, rt, t, $s, $r, $c} = $restore(this, {rt}); + var {_r$24, _r$25, _r$26, _tuple, err, rt, t, $s, $r, $c} = $restore(this, {rt}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$22 = userType(rt); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _r$23 = getTypeInfo(_r$22); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _tuple = _r$23; + _r$24 = userType(rt); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _r$25 = getTypeInfo(_r$24); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _tuple = _r$25; t = _tuple[0]; err = _tuple[1]; /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 3; continue; } /* */ $s = 4; continue; /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 3: - _r$24 = err.Error(); /* */ $s = 5; case 5: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - $panic(new $String("getTypeInfo: " + _r$24)); + _r$26 = err.Error(); /* */ $s = 5; case 5: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + $panic(new $String("getTypeInfo: " + _r$26)); /* } */ case 4: $s = -1; return t; - /* */ } return; } var $f = {$blk: mustGetTypeInfo$1, $c: true, $r, _r$22, _r$23, _r$24, _tuple, err, rt, t, $s};return $f; + /* */ } return; } var $f = {$blk: mustGetTypeInfo$1, $c: true, $r, _r$24, _r$25, _r$26, _tuple, err, rt, t, $s};return $f; }; RegisterName = function RegisterName$1(name$2, value) { - var {_r$22, _r$23, _r$24, _tuple, _tuple$1, dup, dup$1, n, name$2, t, ut, value, $s, $r, $c} = $restore(this, {name$2, value}); + var {_r$24, _r$25, _r$26, _tuple, _tuple$1, dup, dup$1, n, name$2, t, ut, value, $s, $r, $c} = $restore(this, {name$2, value}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if (name$2 === "") { $panic(new $String("attempt to register empty name")); } - _r$22 = userType(reflect.TypeOf(value)); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - ut = _r$22; + _r$24 = userType(reflect.TypeOf(value)); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + ut = _r$24; _tuple = nameToConcreteType.LoadOrStore(new $String(name$2), reflect.TypeOf(value)); t = _tuple[0]; dup = _tuple[1]; /* */ if (dup && !($interfaceIsEqual(t, ut.user))) { $s = 2; continue; } /* */ $s = 3; continue; /* if (dup && !($interfaceIsEqual(t, ut.user))) { */ case 2: - _r$23 = fmt.Sprintf("gob: registering duplicate types for %q: %s != %s", new sliceType$2([new $String(name$2), t, ut.user])); /* */ $s = 4; case 4: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - $panic(new $String(_r$23)); + _r$25 = fmt.Sprintf("gob: registering duplicate types for %q: %s != %s", new sliceType$3([new $String(name$2), t, ut.user])); /* */ $s = 4; case 4: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $panic(new $String(_r$25)); /* } */ case 3: _tuple$1 = concreteTypeToName.LoadOrStore(ut.base, new $String(name$2)); n = _tuple$1[0]; @@ -47867,53 +46952,53 @@ $packages["encoding/gob"] = (function() { /* */ $s = 6; continue; /* if (dup$1 && !($interfaceIsEqual(n, new $String(name$2)))) { */ case 5: nameToConcreteType.Delete(new $String(name$2)); - _r$24 = fmt.Sprintf("gob: registering duplicate names for %s: %q != %q", new sliceType$2([ut.user, n, new $String(name$2)])); /* */ $s = 7; case 7: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - $panic(new $String(_r$24)); + _r$26 = fmt.Sprintf("gob: registering duplicate names for %s: %q != %q", new sliceType$3([ut.user, n, new $String(name$2)])); /* */ $s = 7; case 7: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + $panic(new $String(_r$26)); /* } */ case 6: $s = -1; return; - /* */ } return; } var $f = {$blk: RegisterName$1, $c: true, $r, _r$22, _r$23, _r$24, _tuple, _tuple$1, dup, dup$1, n, name$2, t, ut, value, $s};return $f; + /* */ } return; } var $f = {$blk: RegisterName$1, $c: true, $r, _r$24, _r$25, _r$26, _tuple, _tuple$1, dup, dup$1, n, name$2, t, ut, value, $s};return $f; }; $pkg.RegisterName = RegisterName; Register = function Register$1(value) { - var {_r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, name$2, pt, rt, star, value, $s, $r, $c} = $restore(this, {value}); + var {_r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, name$2, pt, rt, star, value, $s, $r, $c} = $restore(this, {value}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: rt = reflect.TypeOf(value); - _r$22 = rt.String(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - name$2 = _r$22; + _r$24 = rt.String(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + name$2 = _r$24; star = ""; - _r$23 = rt.Name(); /* */ $s = 4; case 4: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - /* */ if (_r$23 === "") { $s = 2; continue; } + _r$25 = rt.Name(); /* */ $s = 4; case 4: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + /* */ if (_r$25 === "") { $s = 2; continue; } /* */ $s = 3; continue; - /* if (_r$23 === "") { */ case 2: + /* if (_r$25 === "") { */ case 2: pt = rt; - _r$24 = pt.Kind(); /* */ $s = 7; case 7: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - /* */ if (_r$24 === 22) { $s = 5; continue; } + _r$26 = pt.Kind(); /* */ $s = 7; case 7: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + /* */ if (_r$26 === 22) { $s = 5; continue; } /* */ $s = 6; continue; - /* if (_r$24 === 22) { */ case 5: + /* if (_r$26 === 22) { */ case 5: star = "*"; rt = pt; /* } */ case 6: /* } */ case 3: - _r$25 = rt.Name(); /* */ $s = 10; case 10: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - /* */ if (!(_r$25 === "")) { $s = 8; continue; } + _r$27 = rt.Name(); /* */ $s = 10; case 10: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + /* */ if (!(_r$27 === "")) { $s = 8; continue; } /* */ $s = 9; continue; - /* if (!(_r$25 === "")) { */ case 8: - _r$26 = rt.PkgPath(); /* */ $s = 14; case 14: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - /* */ if (_r$26 === "") { $s = 11; continue; } + /* if (!(_r$27 === "")) { */ case 8: + _r$28 = rt.PkgPath(); /* */ $s = 14; case 14: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + /* */ if (_r$28 === "") { $s = 11; continue; } /* */ $s = 12; continue; - /* if (_r$26 === "") { */ case 11: - _r$27 = rt.Name(); /* */ $s = 15; case 15: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - name$2 = star + _r$27; + /* if (_r$28 === "") { */ case 11: + _r$29 = rt.Name(); /* */ $s = 15; case 15: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + name$2 = star + _r$29; $s = 13; continue; /* } else { */ case 12: - _r$28 = rt.PkgPath(); /* */ $s = 16; case 16: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - _r$29 = rt.Name(); /* */ $s = 17; case 17: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } - name$2 = star + _r$28 + "." + _r$29; + _r$30 = rt.PkgPath(); /* */ $s = 16; case 16: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } + _r$31 = rt.Name(); /* */ $s = 17; case 17: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } + name$2 = star + _r$30 + "." + _r$31; /* } */ case 13: /* } */ case 9: $r = RegisterName(name$2, value); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } var $f = {$blk: Register$1, $c: true, $r, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, name$2, pt, rt, star, value, $s};return $f; + /* */ } return; } var $f = {$blk: Register$1, $c: true, $r, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, name$2, pt, rt, star, value, $s};return $f; }; $pkg.Register = Register; registerBasics = function registerBasics$1() { @@ -47936,38 +47021,42 @@ $packages["encoding/gob"] = (function() { $r = Register(new $Uintptr(0)); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = Register(new $Bool(false)); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = Register(new $String("")); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = Register((sliceType$1.nil)); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = Register((sliceType$4.nil)); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = Register((sliceType$5.nil)); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = Register((sliceType$6.nil)); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = Register((sliceType$7.nil)); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = Register((sliceType$8.nil)); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = Register((sliceType$9.nil)); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = Register((sliceType$1.nil)); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = Register((sliceType$10.nil)); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = Register((sliceType$11.nil)); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = Register((sliceType$12.nil)); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = Register((sliceType$13.nil)); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = Register((sliceType$14.nil)); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = Register((sliceType$15.nil)); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = Register((sliceType$16.nil)); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = Register((sliceType$17.nil)); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = Register((sliceType$18.nil)); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = Register((sliceType$19.nil)); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register((sliceType$2.nil)); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register((sliceType$5.nil)); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register((sliceType$6.nil)); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register((sliceType$7.nil)); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register((sliceType$8.nil)); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register((sliceType$9.nil)); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register((sliceType$10.nil)); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register((sliceType$2.nil)); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register((sliceType$11.nil)); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register((sliceType$12.nil)); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register((sliceType$13.nil)); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register((sliceType$14.nil)); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register((sliceType$15.nil)); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register((sliceType$16.nil)); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register((sliceType$17.nil)); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register((sliceType$18.nil)); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register((sliceType$19.nil)); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = Register((sliceType$20.nil)); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* */ } return; } var $f = {$blk: registerBasics$1, $c: true, $r, $s};return $f; }; + init$1 = function init$7() { + typeInfoMap.Store(new mapType$1(typeInfoMapInit)); + typeInfoMapInit = false; + }; errorf = function errorf$1(format, args) { - var {_r$22, args, format, $s, $r, $c} = $restore(this, {format, args}); + var {_r$24, args, format, $s, $r, $c} = $restore(this, {format, args}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$22 = fmt.Errorf("gob: " + format, args); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - $r = error_(_r$22); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$24 = fmt.Errorf("gob: " + format, args); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + $r = error_(_r$24); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } var $f = {$blk: errorf$1, $c: true, $r, _r$22, args, format, $s};return $f; + /* */ } return; } var $f = {$blk: errorf$1, $c: true, $r, _r$24, args, format, $s};return $f; }; error_ = function error_$1(err) { - var err, x$2; - $panic((x$2 = new gobError.ptr(err), new x$2.constructor.elem(x$2))); + var err, x; + $panic((x = new gobError.ptr(err), new x.constructor.elem(x))); }; catchError = function catchError$1(err) { var _tuple, e, err, ge, ok; @@ -47984,17 +47073,17 @@ $packages["encoding/gob"] = (function() { }; NewEncoder = function NewEncoder$1(w) { var enc, w; - enc = new Encoder.ptr(new nosync.Mutex.ptr(false, false, false, false, 0), sliceType$20.nil, false, ptrType$32.nil, ptrType$32.nil, new encBuffer.ptr(sliceType$1.nil, arrayType$1.zero()), $ifaceNil); - enc.w = new sliceType$20([w]); + enc = new Encoder.ptr(new nosync.Mutex.ptr(false, false, false, false, 0), sliceType$21.nil, false, ptrType$34.nil, ptrType$34.nil, new encBuffer.ptr(sliceType$2.nil, arrayType$2.zero()), $ifaceNil); + enc.w = new sliceType$21([w]); enc.sent = new $global.Map(); - enc.countState = enc.newEncoderState(new encBuffer.ptr(sliceType$1.nil, arrayType$1.zero())); + enc.countState = enc.newEncoderState(new encBuffer.ptr(sliceType$2.nil, arrayType$2.zero())); return enc; }; $pkg.NewEncoder = NewEncoder; $ptrType(Encoder).prototype.writer = function writer() { - var enc, x$2, x$3; + var enc, x, x$1; enc = this; - return (x$2 = enc.w, x$3 = enc.w.$length - 1 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])); + return (x = enc.w, x$1 = enc.w.$length - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); }; $ptrType(Encoder).prototype.pushWriter = function pushWriter(w) { var enc, w; @@ -48014,7 +47103,7 @@ $packages["encoding/gob"] = (function() { } }; $ptrType(Encoder).prototype.writeMessage = function writeMessage(w, b) { - var {_r$22, _tuple, b, enc, err, message, messageLen, offset, w, $s, $r, $c} = $restore(this, {w, b}); + var {_r$24, _tuple, b, enc, err, message, messageLen, offset, w, $s, $r, $c} = $restore(this, {w, b}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: enc = this; message = b.Bytes(); @@ -48027,8 +47116,8 @@ $packages["encoding/gob"] = (function() { enc.countState.encodeUint((new $Uint64(0, messageLen))); offset = 9 - enc.countState.b.Len() >> 0; $copySlice($subslice(message, offset), enc.countState.b.Bytes()); - _r$22 = w.Write($subslice(message, offset)); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = _r$22; + _r$24 = w.Write($subslice(message, offset)); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = _r$24; err = _tuple[1]; b.Reset(); b.Write(spaceForLength); @@ -48036,10 +47125,10 @@ $packages["encoding/gob"] = (function() { enc.setError(err); } $s = -1; return; - /* */ } return; } var $f = {$blk: writeMessage, $c: true, $r, _r$22, _tuple, b, enc, err, message, messageLen, offset, w, $s};return $f; + /* */ } return; } var $f = {$blk: writeMessage, $c: true, $r, _r$24, _tuple, b, enc, err, message, messageLen, offset, w, $s};return $f; }; $ptrType(Encoder).prototype.sendActualType = function sendActualType(w, state, ut, actual) { - var {_1, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _entry, _key, _key$1, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _tuple, _tuple$1, actual, alreadySent, enc, err, i, info, sent, st, state, ut, w, x$2, $s, $r, $c} = $restore(this, {w, state, ut, actual}); + var {_1, _arg, _arg$1, _arg$10, _arg$11, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _entry, _key, _key$1, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _tuple, _tuple$1, actual, alreadySent, enc, err, i, info, sent, st, state, ut, w, x, x$1, $s, $r, $c} = $restore(this, {w, state, ut, actual}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: sent = false; enc = this; @@ -48049,21 +47138,17 @@ $packages["encoding/gob"] = (function() { sent = false; $s = -1; return sent; } - _r$22 = getTypeInfo(ut); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple$1 = _r$22; + _r$24 = getTypeInfo(ut); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple$1 = _r$24; info = _tuple$1[0]; err = _tuple$1[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { enc.setError(err); $s = -1; return sent; } - state.encodeInt((x$2 = (new $Int64(0, info.id)), new $Int64(-x$2.$high, -x$2.$low))); - _arg = state.b; - _r$23 = reflect.ValueOf(info.wire); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _arg$1 = $clone(_r$23, reflect.Value); - _arg$2 = wireTypeUserInfo; - $r = enc.encode(_arg, _arg$1, _arg$2); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = enc.writeMessage(w, state.b); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + state.encodeInt((x = (new $Int64(0, info.id)), new $Int64(-x.$high, -x.$low))); + $r = enc.encode(state.b, $clone(reflect.ValueOf((x$1 = info.wire, new x$1.constructor.elem(x$1))), reflect.Value), wireTypeUserInfo); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = enc.writeMessage(w, state.b); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } if (!($interfaceIsEqual(enc.err, $ifaceNil))) { $s = -1; return sent; } @@ -48072,78 +47157,78 @@ $packages["encoding/gob"] = (function() { _key$1 = ut.user; (enc.sent || $throwRuntimeError("assignment to entry in nil map")).set(reflect.Type.keyFor(_key$1), { k: _key$1, v: info.id }); } st = actual; - _r$24 = st.Kind(); /* */ $s = 6; case 6: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - _1 = _r$24; - /* */ if (_1 === (25)) { $s = 7; continue; } - /* */ if ((_1 === (17)) || (_1 === (23))) { $s = 8; continue; } - /* */ if (_1 === (21)) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (_1 === (25)) { */ case 7: + _r$25 = st.Kind(); /* */ $s = 5; case 5: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _1 = _r$25; + /* */ if (_1 === (25)) { $s = 6; continue; } + /* */ if ((_1 === (17)) || (_1 === (23))) { $s = 7; continue; } + /* */ if (_1 === (21)) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (_1 === (25)) { */ case 6: i = 0; - /* while (true) { */ case 11: - _r$25 = st.NumField(); /* */ $s = 13; case 13: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - /* if (!(i < _r$25)) { break; } */ if(!(i < _r$25)) { $s = 12; continue; } - _r$26 = st.Field(i); /* */ $s = 16; case 16: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - _r$27 = isExported(_r$26.Name); /* */ $s = 17; case 17: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - /* */ if (_r$27) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (_r$27) { */ case 14: - _arg$3 = w; - _arg$4 = state; - _r$28 = st.Field(i); /* */ $s = 18; case 18: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - _arg$5 = _r$28.Type; - _r$29 = enc.sendType(_arg$3, _arg$4, _arg$5); /* */ $s = 19; case 19: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } - _r$29; - /* } */ case 15: + /* while (true) { */ case 10: + _r$26 = st.NumField(); /* */ $s = 12; case 12: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + /* if (!(i < _r$26)) { break; } */ if(!(i < _r$26)) { $s = 11; continue; } + _r$27 = st.Field(i); /* */ $s = 15; case 15: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + _r$28 = isExported(_r$27.Name); /* */ $s = 16; case 16: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + /* */ if (_r$28) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (_r$28) { */ case 13: + _arg = w; + _arg$1 = state; + _r$29 = st.Field(i); /* */ $s = 17; case 17: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + _arg$2 = _r$29.Type; + _r$30 = enc.sendType(_arg, _arg$1, _arg$2); /* */ $s = 18; case 18: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } + _r$30; + /* } */ case 14: i = i + (1) >> 0; - $s = 11; continue; - case 12: $s = 10; continue; - /* } else if ((_1 === (17)) || (_1 === (23))) { */ case 8: + case 11: + $s = 9; continue; + /* } else if ((_1 === (17)) || (_1 === (23))) { */ case 7: + _arg$3 = w; + _arg$4 = state; + _r$31 = st.Elem(); /* */ $s = 19; case 19: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } + _arg$5 = _r$31; + _r$32 = enc.sendType(_arg$3, _arg$4, _arg$5); /* */ $s = 20; case 20: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } + _r$32; + $s = 9; continue; + /* } else if (_1 === (21)) { */ case 8: _arg$6 = w; _arg$7 = state; - _r$30 = st.Elem(); /* */ $s = 20; case 20: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } - _arg$8 = _r$30; - _r$31 = enc.sendType(_arg$6, _arg$7, _arg$8); /* */ $s = 21; case 21: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } - _r$31; - $s = 10; continue; - /* } else if (_1 === (21)) { */ case 9: + _r$33 = st.Key(); /* */ $s = 21; case 21: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } + _arg$8 = _r$33; + _r$34 = enc.sendType(_arg$6, _arg$7, _arg$8); /* */ $s = 22; case 22: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } + _r$34; _arg$9 = w; _arg$10 = state; - _r$32 = st.Key(); /* */ $s = 22; case 22: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } - _arg$11 = _r$32; - _r$33 = enc.sendType(_arg$9, _arg$10, _arg$11); /* */ $s = 23; case 23: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } - _r$33; - _arg$12 = w; - _arg$13 = state; - _r$34 = st.Elem(); /* */ $s = 24; case 24: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } - _arg$14 = _r$34; - _r$35 = enc.sendType(_arg$12, _arg$13, _arg$14); /* */ $s = 25; case 25: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } - _r$35; - /* } */ case 10: - case 5: + _r$35 = st.Elem(); /* */ $s = 23; case 23: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } + _arg$11 = _r$35; + _r$36 = enc.sendType(_arg$9, _arg$10, _arg$11); /* */ $s = 24; case 24: if($c) { $c = false; _r$36 = _r$36.$blk(); } if (_r$36 && _r$36.$blk !== undefined) { break s; } + _r$36; + /* } */ case 9: + case 4: sent = true; $s = -1; return sent; - /* */ } return; } var $f = {$blk: sendActualType, $c: true, $r, _1, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _entry, _key, _key$1, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _tuple, _tuple$1, actual, alreadySent, enc, err, i, info, sent, st, state, ut, w, x$2, $s};return $f; + /* */ } return; } var $f = {$blk: sendActualType, $c: true, $r, _1, _arg, _arg$1, _arg$10, _arg$11, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _entry, _key, _key$1, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _tuple, _tuple$1, actual, alreadySent, enc, err, i, info, sent, st, state, ut, w, x, x$1, $s};return $f; }; $ptrType(Encoder).prototype.sendType = function sendType(w, state, origt) { - var {$24r, $24r$1, _1, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, enc, origt, rt, sent, state, ut, w, $s, $r, $c} = $restore(this, {w, state, origt}); + var {$24r, $24r$1, _1, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, enc, origt, rt, sent, state, ut, w, $s, $r, $c} = $restore(this, {w, state, origt}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: sent = false; enc = this; - _r$22 = userType(origt); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - ut = _r$22; + _r$24 = userType(origt); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + ut = _r$24; /* */ if (!((ut.externalEnc === 0))) { $s = 2; continue; } /* */ $s = 3; continue; /* if (!((ut.externalEnc === 0))) { */ case 2: - _r$23 = enc.sendActualType(w, state, ut, ut.base); /* */ $s = 4; case 4: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - sent = _r$23; + _r$25 = enc.sendActualType(w, state, ut, ut.base); /* */ $s = 4; case 4: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + sent = _r$25; $24r = sent; $s = 5; case 5: return $24r; /* } */ case 3: rt = ut.base; - _r$24 = rt.Kind(); /* */ $s = 7; case 7: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - _1 = _r$24; + _r$26 = rt.Kind(); /* */ $s = 7; case 7: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + _1 = _r$26; /* */ if (_1 === (23)) { $s = 8; continue; } /* */ if (_1 === (17)) { $s = 9; continue; } /* */ if (_1 === (21)) { $s = 10; continue; } @@ -48151,11 +47236,11 @@ $packages["encoding/gob"] = (function() { /* */ if ((_1 === (18)) || (_1 === (19))) { $s = 12; continue; } /* */ $s = 13; continue; /* if (_1 === (23)) { */ case 8: - _r$25 = rt.Elem(); /* */ $s = 17; case 17: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - _r$26 = _r$25.Kind(); /* */ $s = 18; case 18: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - /* */ if (_r$26 === 8) { $s = 15; continue; } + _r$27 = rt.Elem(); /* */ $s = 17; case 17: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + _r$28 = _r$27.Kind(); /* */ $s = 18; case 18: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + /* */ if (_r$28 === 8) { $s = 15; continue; } /* */ $s = 16; continue; - /* if (_r$26 === 8) { */ case 15: + /* if (_r$28 === 8) { */ case 15: $s = -1; return sent; /* } */ case 16: /* break; */ $s = 6; continue; @@ -48175,24 +47260,23 @@ $packages["encoding/gob"] = (function() { $s = -1; return sent; /* } */ case 14: case 6: - _r$27 = enc.sendActualType(w, state, ut, ut.base); /* */ $s = 19; case 19: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - sent = _r$27; + _r$29 = enc.sendActualType(w, state, ut, ut.base); /* */ $s = 19; case 19: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + sent = _r$29; $24r$1 = sent; $s = 20; case 20: return $24r$1; - /* */ } return; } var $f = {$blk: sendType, $c: true, $r, $24r, $24r$1, _1, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, enc, origt, rt, sent, state, ut, w, $s};return $f; + /* */ } return; } var $f = {$blk: sendType, $c: true, $r, $24r, $24r$1, _1, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, enc, origt, rt, sent, state, ut, w, $s};return $f; }; $ptrType(Encoder).prototype.Encode = function Encode(e) { - var {$24r, _r$22, _r$23, e, enc, $s, $r, $c} = $restore(this, {e}); + var {$24r, _r$24, e, enc, $s, $r, $c} = $restore(this, {e}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: enc = this; - _r$22 = reflect.ValueOf(e); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _r$23 = enc.EncodeValue($clone(_r$22, reflect.Value)); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - $24r = _r$23; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: Encode, $c: true, $r, $24r, _r$22, _r$23, e, enc, $s};return $f; + _r$24 = enc.EncodeValue($clone(reflect.ValueOf(e), reflect.Value)); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + $24r = _r$24; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Encode, $c: true, $r, $24r, _r$24, e, enc, $s};return $f; }; $ptrType(Encoder).prototype.sendTypeDescriptor = function sendTypeDescriptor(w, state, ut) { - var {_entry, _key, _r$22, _r$23, _tuple, _tuple$1, alreadySent, enc, err, info, rt, sent, state, ut, w, $s, $r, $c} = $restore(this, {w, state, ut}); + var {_entry, _key, _r$24, _r$25, _tuple, _tuple$1, alreadySent, enc, err, info, rt, sent, state, ut, w, $s, $r, $c} = $restore(this, {w, state, ut}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: enc = this; rt = ut.base; @@ -48204,16 +47288,16 @@ $packages["encoding/gob"] = (function() { /* */ if (!alreadySent) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!alreadySent) { */ case 1: - _r$22 = enc.sendType(w, state, rt); /* */ $s = 3; case 3: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - sent = _r$22; + _r$24 = enc.sendType(w, state, rt); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + sent = _r$24; if (!($interfaceIsEqual(enc.err, $ifaceNil))) { $s = -1; return; } /* */ if (!sent) { $s = 4; continue; } /* */ $s = 5; continue; /* if (!sent) { */ case 4: - _r$23 = getTypeInfo(ut); /* */ $s = 6; case 6: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _tuple$1 = _r$23; + _r$25 = getTypeInfo(ut); /* */ $s = 6; case 6: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _tuple$1 = _r$25; info = _tuple$1[0]; err = _tuple$1[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { @@ -48224,7 +47308,7 @@ $packages["encoding/gob"] = (function() { /* } */ case 5: /* } */ case 2: $s = -1; return; - /* */ } return; } var $f = {$blk: sendTypeDescriptor, $c: true, $r, _entry, _key, _r$22, _r$23, _tuple, _tuple$1, alreadySent, enc, err, info, rt, sent, state, ut, w, $s};return $f; + /* */ } return; } var $f = {$blk: sendTypeDescriptor, $c: true, $r, _entry, _key, _r$24, _r$25, _tuple, _tuple$1, alreadySent, enc, err, info, rt, sent, state, ut, w, $s};return $f; }; $ptrType(Encoder).prototype.sendTypeId = function sendTypeId(state, ut) { var _entry, enc, state, ut; @@ -48232,7 +47316,7 @@ $packages["encoding/gob"] = (function() { state.encodeInt((new $Int64(0, (_entry = $mapIndex(enc.sent,reflect.Type.keyFor(ut.base)), _entry !== undefined ? _entry.v : 0)))); }; $ptrType(Encoder).prototype.EncodeValue = function EncodeValue(value) { - var {_r$22, _r$23, _tuple, enc, err, state, ut, value, $s, $deferred, $r, $c} = $restore(this, {value}); + var {_r$24, _r$25, _tuple, enc, err, state, ut, value, $s, $deferred, $r, $c} = $restore(this, {value}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); enc = this; if ($clone(value, reflect.Value).Kind() === 0) { @@ -48241,14 +47325,14 @@ $packages["encoding/gob"] = (function() { /* */ if (($clone(value, reflect.Value).Kind() === 22) && $clone(value, reflect.Value).IsNil()) { $s = 1; continue; } /* */ $s = 2; continue; /* if (($clone(value, reflect.Value).Kind() === 22) && $clone(value, reflect.Value).IsNil()) { */ case 1: - _r$22 = $clone(value, reflect.Value).Type().String(); /* */ $s = 3; case 3: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - $panic(new $String("gob: cannot encode nil pointer of type " + _r$22)); + _r$24 = $clone(value, reflect.Value).Type().String(); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + $panic(new $String("gob: cannot encode nil pointer of type " + _r$24)); /* } */ case 2: enc.mutex.Lock(); $deferred.push([$methodVal(enc.mutex, "Unlock"), []]); enc.w = $subslice(enc.w, 0, 1); - _r$23 = validUserType($clone(value, reflect.Value).Type()); /* */ $s = 4; case 4: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _tuple = _r$23; + _r$25 = validUserType($clone(value, reflect.Value).Type()); /* */ $s = 4; case 4: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _tuple = _r$25; ut = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { @@ -48271,7 +47355,7 @@ $packages["encoding/gob"] = (function() { /* } */ case 8: enc.freeEncoderState(state); $s = -1; return enc.err; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: EncodeValue, $c: true, $r, _r$22, _r$23, _tuple, enc, err, state, ut, value, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: EncodeValue, $c: true, $r, _r$24, _r$25, _tuple, enc, err, state, ut, value, $s, $deferred};return $f; } } }; $ptrType(encBuffer).prototype.writeByte = function writeByte(c) { var c, e; @@ -48303,7 +47387,7 @@ $packages["encoding/gob"] = (function() { var e; e = this; if (e.data.$length >= 1073741824) { - e.data = $subslice(new sliceType$1(e.scratch), 0, 0); + e.data = $subslice(new sliceType$2(e.scratch), 0, 0); } else { e.data = $subslice(e.data, 0, 0); } @@ -48312,8 +47396,8 @@ $packages["encoding/gob"] = (function() { var b, e, enc; enc = this; e = enc.freeList; - if (e === ptrType$32.nil) { - e = new encoderState.ptr(ptrType$33.nil, ptrType$34.nil, false, 0, arrayType$2.zero(), ptrType$32.nil); + if (e === ptrType$34.nil) { + e = new encoderState.ptr(ptrType$35.nil, ptrType$36.nil, false, 0, arrayType$3.zero(), ptrType$34.nil); e.enc = enc; } else { enc.freeList = e.next; @@ -48322,7 +47406,7 @@ $packages["encoding/gob"] = (function() { e.fieldnum = 0; e.b = b; if (b.data.$length === 0) { - b.data = $subslice(new sliceType$1(b.scratch), 0, 0); + b.data = $subslice(new sliceType$2(b.scratch), 0, 0); } return e; }; @@ -48332,52 +47416,48 @@ $packages["encoding/gob"] = (function() { e.next = enc.freeList; enc.freeList = e; }; - $ptrType(encoderState).prototype.encodeUint = function encodeUint(x$2) { - var bc, state, x$2, x$3; + $ptrType(encoderState).prototype.encodeUint = function encodeUint(x) { + var bc, state, x, x$1; state = this; - if ((x$2.$high < 0 || (x$2.$high === 0 && x$2.$low <= 127))) { - state.b.writeByte(((x$2.$low << 24 >>> 24))); + if ((x.$high < 0 || (x.$high === 0 && x.$low <= 127))) { + state.b.writeByte(((x.$low << 24 >>> 24))); return; } - $clone(binary.BigEndian, binary.bigEndian).PutUint64($subslice(new sliceType$1(state.buf), 1), x$2); - bc = bits.LeadingZeros64(x$2) >> 3 >> 0; - (x$3 = state.buf, ((bc < 0 || bc >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[bc] = (((bc - 8 >> 0) << 24 >>> 24)))); - state.b.Write($subslice(new sliceType$1(state.buf), bc, 9)); + $clone(binary.BigEndian, binary.bigEndian).PutUint64($subslice(new sliceType$2(state.buf), 1), x); + bc = bits.LeadingZeros64(x) >> 3 >> 0; + (x$1 = state.buf, ((bc < 0 || bc >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[bc] = (((bc - 8 >> 0) << 24 >>> 24)))); + state.b.Write($subslice(new sliceType$2(state.buf), bc, 9)); }; $ptrType(encoderState).prototype.encodeInt = function encodeInt(i) { - var i, state, x$2, x$3, x$4, x$5; + var i, state, x, x$1, x$2, x$3; state = this; - x$2 = new $Uint64(0, 0); + x = new $Uint64(0, 0); if ((i.$high < 0 || (i.$high === 0 && i.$low < 0))) { - x$2 = (x$3 = ((x$4 = $shiftLeft64(new $Int64(~i.$high, ~i.$low >>> 0), 1), new $Uint64(x$4.$high, x$4.$low))), new $Uint64(x$3.$high | 0, (x$3.$low | 1) >>> 0)); + x = (x$1 = ((x$2 = $shiftLeft64(new $Int64(~i.$high, ~i.$low >>> 0), 1), new $Uint64(x$2.$high, x$2.$low))), new $Uint64(x$1.$high | 0, (x$1.$low | 1) >>> 0)); } else { - x$2 = ((x$5 = $shiftLeft64(i, 1), new $Uint64(x$5.$high, x$5.$low))); + x = ((x$3 = $shiftLeft64(i, 1), new $Uint64(x$3.$high, x$3.$low))); } - state.encodeUint(x$2); + state.encodeUint(x); }; $ptrType(encoderState).prototype.update = function update(instr) { var instr, state; state = this; - if (!(instr === ptrType$35.nil)) { + if (!(instr === ptrType$37.nil)) { state.encodeUint((new $Uint64(0, (instr.field - state.fieldnum >> 0)))); state.fieldnum = instr.field; } }; encIndirect = function encIndirect$1(pv, indir) { - var {_r$22, indir, pv, $s, $r, $c} = $restore(this, {pv, indir}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - /* while (true) { */ case 1: - /* if (!(indir > 0)) { break; } */ if(!(indir > 0)) { $s = 2; continue; } + var indir, pv; + while (true) { + if (!(indir > 0)) { break; } if ($clone(pv, reflect.Value).IsNil()) { - /* break; */ $s = 2; continue; + break; } - _r$22 = $clone(pv, reflect.Value).Elem(); /* */ $s = 3; case 3: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - pv = _r$22; + pv = $clone(pv, reflect.Value).Elem(); indir = indir - (1) >> 0; - $s = 1; continue; - case 2: - $s = -1; return pv; - /* */ } return; } var $f = {$blk: encIndirect$1, $c: true, $r, _r$22, indir, pv, $s};return $f; + } + return pv; }; encBool = function encBool$1(i, state, v) { var b, i, state, v; @@ -48433,30 +47513,26 @@ $packages["encoding/gob"] = (function() { } }; encUint8Array = function encUint8Array$1(i, state, v) { - var {_r$22, b, i, state, v, $s, $r, $c} = $restore(this, {i, state, v}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$22 = $clone(v, reflect.Value).Bytes(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - b = _r$22; + var b, i, state, v; + b = $clone(v, reflect.Value).Bytes(); if (b.$length > 0 || state.sendZero) { state.update(i); state.encodeUint((new $Uint64(0, b.$length))); state.b.Write(b); } - $s = -1; return; - /* */ } return; } var $f = {$blk: encUint8Array$1, $c: true, $r, _r$22, b, i, state, v, $s};return $f; }; encString = function encString$1(i, state, v) { - var {_r$22, i, s, state, v, $s, $r, $c} = $restore(this, {i, state, v}); + var {_r$24, i, s, state, v, $s, $r, $c} = $restore(this, {i, state, v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$22 = $clone(v, reflect.Value).String(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - s = _r$22; + _r$24 = $clone(v, reflect.Value).String(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + s = _r$24; if (s.length > 0 || state.sendZero) { state.update(i); state.encodeUint((new $Uint64(0, s.length))); state.b.WriteString(s); } $s = -1; return; - /* */ } return; } var $f = {$blk: encString$1, $c: true, $r, _r$22, i, s, state, v, $s};return $f; + /* */ } return; } var $f = {$blk: encString$1, $c: true, $r, _r$24, i, s, state, v, $s};return $f; }; encStructTerminator = function encStructTerminator$1(i, state, v) { var i, state, v; @@ -48473,30 +47549,27 @@ $packages["encoding/gob"] = (function() { return true; }; $ptrType(Encoder).prototype.encodeSingle = function encodeSingle(b, engine, value) { - var {_r$22, b, enc, engine, instr, state, value, x$2, $s, $deferred, $r, $c} = $restore(this, {b, engine, value}); + var {b, enc, engine, instr, state, value, x, $s, $deferred, $r, $c} = $restore(this, {b, engine, value}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); enc = this; state = enc.newEncoderState(b); $deferred.push([$methodVal(enc, "freeEncoderState"), [state]]); state.fieldnum = 0; state.sendZero = true; - instr = (x$2 = engine.instr, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])); - /* */ if (instr.indir > 0) { $s = 1; continue; } + instr = (x = engine.instr, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + 0, ptrType$37))); + if (instr.indir > 0) { + value = encIndirect($clone(value, reflect.Value), instr.indir); + } + /* */ if (valid($clone(value, reflect.Value))) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (instr.indir > 0) { */ case 1: - _r$22 = encIndirect($clone(value, reflect.Value), instr.indir); /* */ $s = 3; case 3: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - value = _r$22; + /* if (valid($clone(value, reflect.Value))) { */ case 1: + $r = instr.op(instr, state, $clone(value, reflect.Value)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 2: - /* */ if (valid($clone(value, reflect.Value))) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (valid($clone(value, reflect.Value))) { */ case 4: - $r = instr.op(instr, state, $clone(value, reflect.Value)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 5: $s = -1; return; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: encodeSingle, $c: true, $r, _r$22, b, enc, engine, instr, state, value, x$2, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: encodeSingle, $c: true, $r, b, enc, engine, instr, state, value, x, $s, $deferred};return $f; } } }; $ptrType(Encoder).prototype.encodeStruct = function encodeStruct(b, engine, value) { - var {_r$22, _r$23, b, enc, engine, field, i, instr, state, value, x$2, $s, $deferred, $r, $c} = $restore(this, {b, engine, value}); + var {b, enc, engine, field, i, instr, state, value, x, $s, $deferred, $r, $c} = $restore(this, {b, engine, value}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); enc = this; if (!valid($clone(value, reflect.Value))) { @@ -48508,34 +47581,30 @@ $packages["encoding/gob"] = (function() { i = 0; /* while (true) { */ case 1: /* if (!(i < engine.instr.$length)) { break; } */ if(!(i < engine.instr.$length)) { $s = 2; continue; } - instr = (x$2 = engine.instr, ((i < 0 || i >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i])); + instr = (x = engine.instr, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + i, ptrType$37))); /* */ if (i >= $clone(value, reflect.Value).NumField()) { $s = 3; continue; } /* */ $s = 4; continue; /* if (i >= $clone(value, reflect.Value).NumField()) { */ case 3: $r = instr.op(instr, state, $clone(new reflect.Value.ptr(ptrType$1.nil, 0, 0), reflect.Value)); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* break; */ $s = 2; continue; /* } */ case 4: - _r$22 = $clone(value, reflect.Value).FieldByIndex(instr.index); /* */ $s = 6; case 6: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - field = _r$22; - /* */ if (instr.indir > 0) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (instr.indir > 0) { */ case 7: - _r$23 = encIndirect($clone(field, reflect.Value), instr.indir); /* */ $s = 9; case 9: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - field = _r$23; + field = $clone(value, reflect.Value).FieldByIndex(instr.index); + if (instr.indir > 0) { + field = encIndirect($clone(field, reflect.Value), instr.indir); if (!valid($clone(field, reflect.Value))) { i = i + (1) >> 0; /* continue; */ $s = 1; continue; } - /* } */ case 8: - $r = instr.op(instr, state, $clone(field, reflect.Value)); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + } + $r = instr.op(instr, state, $clone(field, reflect.Value)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } i = i + (1) >> 0; $s = 1; continue; case 2: $s = -1; return; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: encodeStruct, $c: true, $r, _r$22, _r$23, b, enc, engine, field, i, instr, state, value, x$2, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: encodeStruct, $c: true, $r, b, enc, engine, field, i, instr, state, value, x, $s, $deferred};return $f; } } }; $ptrType(Encoder).prototype.encodeArray = function encodeArray(b, value, op, elemIndir, length, helper) { - var {_r$22, _r$23, _r$24, _v, b, elem, elemIndir, enc, helper, i, length, op, state, value, $s, $deferred, $r, $c} = $restore(this, {b, value, op, elemIndir, length, helper}); + var {_r$24, _v, b, elem, elemIndir, enc, helper, i, length, op, state, value, $s, $deferred, $r, $c} = $restore(this, {b, value, op, elemIndir, length, helper}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); enc = this; state = enc.newEncoderState(b); @@ -48544,8 +47613,8 @@ $packages["encoding/gob"] = (function() { state.sendZero = true; state.encodeUint((new $Uint64(0, length))); if (!(!(helper === $throwNilPointerError))) { _v = false; $s = 3; continue s; } - _r$22 = helper(state, $clone(value, reflect.Value)); /* */ $s = 4; case 4: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _v = _r$22; case 3: + _r$24 = helper(state, $clone(value, reflect.Value)); /* */ $s = 4; case 4: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _v = _r$24; case 3: /* */ if (_v) { $s = 1; continue; } /* */ $s = 2; continue; /* if (_v) { */ case 1: @@ -48554,91 +47623,71 @@ $packages["encoding/gob"] = (function() { i = 0; /* while (true) { */ case 5: /* if (!(i < length)) { break; } */ if(!(i < length)) { $s = 6; continue; } - _r$23 = $clone(value, reflect.Value).Index(i); /* */ $s = 7; case 7: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - elem = _r$23; - /* */ if (elemIndir > 0) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (elemIndir > 0) { */ case 8: - _r$24 = encIndirect($clone(elem, reflect.Value), elemIndir); /* */ $s = 10; case 10: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - elem = _r$24; - /* */ if (!valid($clone(elem, reflect.Value))) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (!valid($clone(elem, reflect.Value))) { */ case 11: - $r = errorf("encodeArray: nil element", sliceType$2.nil); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 12: - /* } */ case 9: - $r = op(ptrType$35.nil, state, $clone(elem, reflect.Value)); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + elem = $clone(value, reflect.Value).Index(i); + /* */ if (elemIndir > 0) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (elemIndir > 0) { */ case 7: + elem = encIndirect($clone(elem, reflect.Value), elemIndir); + /* */ if (!valid($clone(elem, reflect.Value))) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!valid($clone(elem, reflect.Value))) { */ case 9: + $r = errorf("encodeArray: nil element", sliceType$3.nil); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 10: + /* } */ case 8: + $r = op(ptrType$37.nil, state, $clone(elem, reflect.Value)); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } i = i + (1) >> 0; $s = 5; continue; case 6: $s = -1; return; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: encodeArray, $c: true, $r, _r$22, _r$23, _r$24, _v, b, elem, elemIndir, enc, helper, i, length, op, state, value, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: encodeArray, $c: true, $r, _r$24, _v, b, elem, elemIndir, enc, helper, i, length, op, state, value, $s, $deferred};return $f; } } }; encodeReflectValue = function encodeReflectValue$1(state, v, op, indir) { - var {_r$22, i, indir, op, state, v, $s, $r, $c} = $restore(this, {state, v, op, indir}); + var {i, indir, op, state, v, $s, $r, $c} = $restore(this, {state, v, op, indir}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: i = 0; - /* while (true) { */ case 1: - /* if (!(i < indir && $clone(v, reflect.Value).IsValid())) { break; } */ if(!(i < indir && $clone(v, reflect.Value).IsValid())) { $s = 2; continue; } - _r$22 = reflect.Indirect($clone(v, reflect.Value)); /* */ $s = 3; case 3: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - v = _r$22; + while (true) { + if (!(i < indir && $clone(v, reflect.Value).IsValid())) { break; } + v = reflect.Indirect($clone(v, reflect.Value)); i = i + (1) >> 0; - $s = 1; continue; - case 2: - /* */ if (!$clone(v, reflect.Value).IsValid()) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (!$clone(v, reflect.Value).IsValid()) { */ case 4: - $r = errorf("encodeReflectValue: nil element", sliceType$2.nil); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 5: - $r = op(ptrType$35.nil, state, $clone(v, reflect.Value)); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + } + /* */ if (!$clone(v, reflect.Value).IsValid()) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!$clone(v, reflect.Value).IsValid()) { */ case 1: + $r = errorf("encodeReflectValue: nil element", sliceType$3.nil); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $r = op(ptrType$37.nil, state, $clone(v, reflect.Value)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } var $f = {$blk: encodeReflectValue$1, $c: true, $r, _r$22, i, indir, op, state, v, $s};return $f; + /* */ } return; } var $f = {$blk: encodeReflectValue$1, $c: true, $r, i, indir, op, state, v, $s};return $f; }; $ptrType(Encoder).prototype.encodeMap = function encodeMap(b, mv, keyOp, elemOp, keyIndir, elemIndir) { - var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _r$22, _r$23, _r$24, _r$25, b, elemIndir, elemOp, enc, keyIndir, keyOp, mi, mv, state, $s, $r, $c} = $restore(this, {b, mv, keyOp, elemOp, keyIndir, elemIndir}); + var {b, elemIndir, elemOp, enc, keyIndir, keyOp, mi, mv, state, $s, $r, $c} = $restore(this, {b, mv, keyOp, elemOp, keyIndir, elemIndir}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: enc = this; state = enc.newEncoderState(b); state.fieldnum = -1; state.sendZero = true; - _r$22 = $clone(mv, reflect.Value).Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - $r = state.encodeUint((new $Uint64(0, _r$22))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + state.encodeUint((new $Uint64(0, $clone(mv, reflect.Value).Len()))); mi = $clone(mv, reflect.Value).MapRange(); - /* while (true) { */ case 3: - _r$23 = mi.Next(); /* */ $s = 5; case 5: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - /* if (!(_r$23)) { break; } */ if(!(_r$23)) { $s = 4; continue; } - _arg = state; - _r$24 = mi.Key(); /* */ $s = 6; case 6: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - _arg$1 = $clone(_r$24, reflect.Value); - _arg$2 = keyOp; - _arg$3 = keyIndir; - $r = encodeReflectValue(_arg, _arg$1, _arg$2, _arg$3); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _arg$4 = state; - _r$25 = mi.Value(); /* */ $s = 8; case 8: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - _arg$5 = $clone(_r$25, reflect.Value); - _arg$6 = elemOp; - _arg$7 = elemIndir; - $r = encodeReflectValue(_arg$4, _arg$5, _arg$6, _arg$7); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 3; continue; - case 4: + /* while (true) { */ case 1: + /* if (!(mi.Next())) { break; } */ if(!(mi.Next())) { $s = 2; continue; } + $r = encodeReflectValue(state, $clone(mi.Key(), reflect.Value), keyOp, keyIndir); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = encodeReflectValue(state, $clone(mi.Value(), reflect.Value), elemOp, elemIndir); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 1; continue; + case 2: enc.freeEncoderState(state); $s = -1; return; - /* */ } return; } var $f = {$blk: encodeMap, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _r$22, _r$23, _r$24, _r$25, b, elemIndir, elemOp, enc, keyIndir, keyOp, mi, mv, state, $s};return $f; + /* */ } return; } var $f = {$blk: encodeMap, $c: true, $r, b, elemIndir, elemOp, enc, keyIndir, keyOp, mi, mv, state, $s};return $f; }; $ptrType(Encoder).prototype.encodeInterface = function encodeInterface(b, iv) { - var {_arg, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _tuple, b, data, elem, enc, iv, name$2, namei, ok, state, ut, $s, $r, $c} = $restore(this, {b, iv}); + var {_r$24, _r$25, _tuple, b, data, elem, enc, iv, name$2, namei, ok, state, ut, $s, $r, $c} = $restore(this, {b, iv}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: enc = this; - _r$22 = $clone(iv, reflect.Value).Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - elem = _r$22; - /* */ if (($clone(elem, reflect.Value).Kind() === 22) && $clone(elem, reflect.Value).IsNil()) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (($clone(elem, reflect.Value).Kind() === 22) && $clone(elem, reflect.Value).IsNil()) { */ case 2: - _r$23 = $clone(iv, reflect.Value).Elem(); /* */ $s = 4; case 4: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _r$24 = $clone(_r$23, reflect.Value).Type(); /* */ $s = 5; case 5: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - _arg = _r$24; - $r = errorf("gob: cannot encode nil pointer of type %s inside interface", new sliceType$2([_arg])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 3: + elem = $clone(iv, reflect.Value).Elem(); + /* */ if (($clone(elem, reflect.Value).Kind() === 22) && $clone(elem, reflect.Value).IsNil()) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (($clone(elem, reflect.Value).Kind() === 22) && $clone(elem, reflect.Value).IsNil()) { */ case 1: + $r = errorf("gob: cannot encode nil pointer of type %s inside interface", new sliceType$3([$clone($clone(iv, reflect.Value).Elem(), reflect.Value).Type()])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: state = enc.newEncoderState(b); state.fieldnum = -1; state.sendZero = true; @@ -48646,33 +47695,31 @@ $packages["encoding/gob"] = (function() { state.encodeUint(new $Uint64(0, 0)); $s = -1; return; } - _r$25 = $clone(iv, reflect.Value).Elem(); /* */ $s = 7; case 7: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - _r$26 = $clone(_r$25, reflect.Value).Type(); /* */ $s = 8; case 8: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - _r$27 = userType(_r$26); /* */ $s = 9; case 9: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - ut = _r$27; + _r$24 = userType($clone($clone(iv, reflect.Value).Elem(), reflect.Value).Type()); /* */ $s = 4; case 4: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + ut = _r$24; _tuple = concreteTypeToName.Load(ut.base); namei = _tuple[0]; ok = _tuple[1]; - /* */ if (!ok) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (!ok) { */ case 10: - $r = errorf("type not registered for interface: %s", new sliceType$2([ut.base])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 11: + /* */ if (!ok) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!ok) { */ case 5: + $r = errorf("type not registered for interface: %s", new sliceType$3([ut.base])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: name$2 = $assertType(namei, $String); state.encodeUint((new $Uint64(0, name$2.length))); state.b.WriteString(name$2); - $r = enc.sendTypeDescriptor(enc.writer(), state, ut); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = enc.sendTypeDescriptor(enc.writer(), state, ut); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } enc.sendTypeId(state, ut); enc.pushWriter(b); - _r$28 = encBufferPool.Get(); /* */ $s = 14; case 14: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - data = $assertType(_r$28, ptrType$34); + _r$25 = encBufferPool.Get(); /* */ $s = 9; case 9: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + data = $assertType(_r$25, ptrType$36); data.Write(spaceForLength); - $r = enc.encode(data, $clone(elem, reflect.Value), ut); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = enc.encode(data, $clone(elem, reflect.Value), ut); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } if (!($interfaceIsEqual(enc.err, $ifaceNil))) { error_(enc.err); } enc.popWriter(); - $r = enc.writeMessage(b, data); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = enc.writeMessage(b, data); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } data.Reset(); encBufferPool.Put(data); if (!($interfaceIsEqual(enc.err, $ifaceNil))) { @@ -48680,81 +47727,13 @@ $packages["encoding/gob"] = (function() { } enc.freeEncoderState(state); $s = -1; return; - /* */ } return; } var $f = {$blk: encodeInterface, $c: true, $r, _arg, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _tuple, b, data, elem, enc, iv, name$2, namei, ok, state, ut, $s};return $f; - }; - isZero = function isZero$1(val) { - var {$24r, _1, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, i, i$1, val, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {val}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _1 = $clone(val, reflect.Value).Kind(); - /* */ if (_1 === (17)) { $s = 2; continue; } - /* */ if ((_1 === (21)) || (_1 === (23)) || (_1 === (24))) { $s = 3; continue; } - /* */ if (_1 === (1)) { $s = 4; continue; } - /* */ if ((_1 === (15)) || (_1 === (16))) { $s = 5; continue; } - /* */ if ((_1 === (18)) || (_1 === (19)) || (_1 === (20)) || (_1 === (22))) { $s = 6; continue; } - /* */ if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { $s = 7; continue; } - /* */ if ((_1 === (13)) || (_1 === (14))) { $s = 8; continue; } - /* */ if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { $s = 9; continue; } - /* */ if (_1 === (25)) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (_1 === (17)) { */ case 2: - i = 0; - /* while (true) { */ case 12: - _r$22 = $clone(val, reflect.Value).Len(); /* */ $s = 14; case 14: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - /* if (!(i < _r$22)) { break; } */ if(!(i < _r$22)) { $s = 13; continue; } - _r$23 = $clone(val, reflect.Value).Index(i); /* */ $s = 17; case 17: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _r$24 = isZero($clone(_r$23, reflect.Value)); /* */ $s = 18; case 18: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - /* */ if (!_r$24) { $s = 15; continue; } - /* */ $s = 16; continue; - /* if (!_r$24) { */ case 15: - $s = -1; return false; - /* } */ case 16: - i = i + (1) >> 0; - $s = 12; continue; - case 13: - $s = -1; return true; - /* } else if ((_1 === (21)) || (_1 === (23)) || (_1 === (24))) { */ case 3: - _r$25 = $clone(val, reflect.Value).Len(); /* */ $s = 19; case 19: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - $24r = _r$25 === 0; - $s = 20; case 20: return $24r; - /* } else if (_1 === (1)) { */ case 4: - $s = -1; return !$clone(val, reflect.Value).Bool(); - /* } else if ((_1 === (15)) || (_1 === (16))) { */ case 5: - $s = -1; return (x$2 = $clone(val, reflect.Value).Complex(), (x$2.$real === 0 && x$2.$imag === 0)); - /* } else if ((_1 === (18)) || (_1 === (19)) || (_1 === (20)) || (_1 === (22))) { */ case 6: - $s = -1; return $clone(val, reflect.Value).IsNil(); - /* } else if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { */ case 7: - $s = -1; return (x$3 = $clone(val, reflect.Value).Int(), (x$3.$high === 0 && x$3.$low === 0)); - /* } else if ((_1 === (13)) || (_1 === (14))) { */ case 8: - $s = -1; return $clone(val, reflect.Value).Float() === 0; - /* } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { */ case 9: - $s = -1; return (x$4 = $clone(val, reflect.Value).Uint(), (x$4.$high === 0 && x$4.$low === 0)); - /* } else if (_1 === (25)) { */ case 10: - i$1 = 0; - /* while (true) { */ case 21: - /* if (!(i$1 < $clone(val, reflect.Value).NumField())) { break; } */ if(!(i$1 < $clone(val, reflect.Value).NumField())) { $s = 22; continue; } - _r$26 = $clone(val, reflect.Value).Field(i$1); /* */ $s = 25; case 25: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - _r$27 = isZero($clone(_r$26, reflect.Value)); /* */ $s = 26; case 26: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - /* */ if (!_r$27) { $s = 23; continue; } - /* */ $s = 24; continue; - /* if (!_r$27) { */ case 23: - $s = -1; return false; - /* } */ case 24: - i$1 = i$1 + (1) >> 0; - $s = 21; continue; - case 22: - $s = -1; return true; - /* } */ case 11: - case 1: - _r$28 = $clone(val, reflect.Value).Type().String(); /* */ $s = 27; case 27: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - $panic(new $String("unknown type in isZero " + _r$28)); - $s = -1; return false; - /* */ } return; } var $f = {$blk: isZero$1, $c: true, $r, $24r, _1, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, i, i$1, val, x$2, x$3, x$4, $s};return $f; + /* */ } return; } var $f = {$blk: encodeInterface, $c: true, $r, _r$24, _r$25, _tuple, b, data, elem, enc, iv, name$2, namei, ok, state, ut, $s};return $f; }; $ptrType(Encoder).prototype.encodeGobEncoder = function encodeGobEncoder(b, ut, v) { - var {_1, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _tuple, _tuple$1, _tuple$2, b, data, enc, err, state, ut, v, $s, $r, $c} = $restore(this, {b, ut, v}); + var {_1, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _tuple, _tuple$1, _tuple$2, b, data, enc, err, state, ut, v, $s, $r, $c} = $restore(this, {b, ut, v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: enc = this; - data = sliceType$1.nil; + data = sliceType$2.nil; err = $ifaceNil; _1 = ut.externalEnc; /* */ if (_1 === (1)) { $s = 2; continue; } @@ -48762,23 +47741,23 @@ $packages["encoding/gob"] = (function() { /* */ if (_1 === (3)) { $s = 4; continue; } /* */ $s = 5; continue; /* if (_1 === (1)) { */ case 2: - _r$22 = $clone(v, reflect.Value).Interface(); /* */ $s = 6; case 6: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _r$23 = $assertType(_r$22, GobEncoder).GobEncode(); /* */ $s = 7; case 7: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _tuple = _r$23; + _r$24 = $clone(v, reflect.Value).Interface(); /* */ $s = 6; case 6: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _r$25 = $assertType(_r$24, GobEncoder).GobEncode(); /* */ $s = 7; case 7: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _tuple = _r$25; data = _tuple[0]; err = _tuple[1]; $s = 5; continue; /* } else if (_1 === (2)) { */ case 3: - _r$24 = $clone(v, reflect.Value).Interface(); /* */ $s = 8; case 8: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - _r$25 = $assertType(_r$24, encoding.BinaryMarshaler).MarshalBinary(); /* */ $s = 9; case 9: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - _tuple$1 = _r$25; + _r$26 = $clone(v, reflect.Value).Interface(); /* */ $s = 8; case 8: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + _r$27 = $assertType(_r$26, encoding.BinaryMarshaler).MarshalBinary(); /* */ $s = 9; case 9: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + _tuple$1 = _r$27; data = _tuple$1[0]; err = _tuple$1[1]; $s = 5; continue; /* } else if (_1 === (3)) { */ case 4: - _r$26 = $clone(v, reflect.Value).Interface(); /* */ $s = 10; case 10: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - _r$27 = $assertType(_r$26, encoding.TextMarshaler).MarshalText(); /* */ $s = 11; case 11: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - _tuple$2 = _r$27; + _r$28 = $clone(v, reflect.Value).Interface(); /* */ $s = 10; case 10: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + _r$29 = $assertType(_r$28, encoding.TextMarshaler).MarshalText(); /* */ $s = 11; case 11: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + _tuple$2 = _r$29; data = _tuple$2[0]; err = _tuple$2[1]; /* } */ case 5: @@ -48792,10 +47771,10 @@ $packages["encoding/gob"] = (function() { state.b.Write(data); enc.freeEncoderState(state); $s = -1; return; - /* */ } return; } var $f = {$blk: encodeGobEncoder, $c: true, $r, _1, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _tuple, _tuple$1, _tuple$2, b, data, enc, err, state, ut, v, $s};return $f; + /* */ } return; } var $f = {$blk: encodeGobEncoder, $c: true, $r, _1, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _tuple, _tuple$1, _tuple$2, b, data, enc, err, state, ut, v, $s};return $f; }; encOpFor = function encOpFor$1(rt, inProgress, building) { - var {$24r, _1, _entry, _entry$1, _entry$2, _key, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$40, _r$41, _r$42, _tuple, _tuple$1, _tuple$2, _tuple$3, building, elemIndir, elemIndir$1, elemIndir$2, elemOp, elemOp$1, elemOp$2, helper, helper$1, inProgress, indir, info, k, keyIndir, keyOp, op, opPtr, rt, t, typ, ut, $s, $r, $c} = $restore(this, {rt, inProgress, building}); + var {$24r, _1, _entry, _entry$1, _entry$2, _key, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$40, _r$41, _r$42, _r$43, _r$44, _tuple, _tuple$1, _tuple$2, _tuple$3, building, elemIndir, elemIndir$1, elemIndir$2, elemOp, elemOp$1, elemOp$2, helper, helper$1, inProgress, indir, info, k, keyIndir, keyOp, op, opPtr, rt, t, typ, ut, $s, $r, $c} = $restore(this, {rt, inProgress, building}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: elemIndir = [elemIndir]; elemIndir$1 = [elemIndir$1]; @@ -48809,23 +47788,23 @@ $packages["encoding/gob"] = (function() { keyIndir = [keyIndir]; keyOp = [keyOp]; op = [op]; - _r$22 = userType(rt); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - ut = _r$22; + _r$24 = userType(rt); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + ut = _r$24; /* */ if (!((ut.externalEnc === 0))) { $s = 2; continue; } /* */ $s = 3; continue; /* if (!((ut.externalEnc === 0))) { */ case 2: - _r$23 = gobEncodeOpFor(ut); /* */ $s = 4; case 4: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - $24r = _r$23; + _r$25 = gobEncodeOpFor(ut); /* */ $s = 4; case 4: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $24r = _r$25; $s = 5; case 5: return $24r; /* } */ case 3: - opPtr = (_entry = $mapIndex(inProgress,reflect.Type.keyFor(rt)), _entry !== undefined ? _entry.v : ptrType$36.nil); - if (!(opPtr === ptrType$36.nil)) { + opPtr = (_entry = $mapIndex(inProgress,reflect.Type.keyFor(rt)), _entry !== undefined ? _entry.v : ptrType$38.nil); + if (!(opPtr === ptrType$38.nil)) { $s = -1; return [opPtr, ut.indir]; } typ = ut.base; indir = ut.indir; - _r$24 = typ.Kind(); /* */ $s = 6; case 6: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - k = _r$24; + _r$26 = typ.Kind(); /* */ $s = 6; case 6: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + k = _r$26; op[0] = $throwNilPointerError; if (((k >> 0)) < 25) { op[0] = ((k < 0 || k >= encOpTable.length) ? ($throwRuntimeError("index out of range"), undefined) : encOpTable[k]); @@ -48833,10 +47812,10 @@ $packages["encoding/gob"] = (function() { /* */ if (op[0] === $throwNilPointerError) { $s = 7; continue; } /* */ $s = 8; continue; /* if (op[0] === $throwNilPointerError) { */ case 7: - _key = rt; (inProgress || $throwRuntimeError("assignment to entry in nil map")).set(reflect.Type.keyFor(_key), { k: _key, v: (op.$ptr || (op.$ptr = new ptrType$36(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, op))) }); + _key = rt; (inProgress || $throwRuntimeError("assignment to entry in nil map")).set(reflect.Type.keyFor(_key), { k: _key, v: (op.$ptr || (op.$ptr = new ptrType$38(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, op))) }); t = typ; - _r$25 = t.Kind(); /* */ $s = 10; case 10: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - _1 = _r$25; + _r$27 = t.Kind(); /* */ $s = 10; case 10: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + _1 = _r$27; /* */ if (_1 === (23)) { $s = 11; continue; } /* */ if (_1 === (17)) { $s = 12; continue; } /* */ if (_1 === (21)) { $s = 13; continue; } @@ -48844,80 +47823,61 @@ $packages["encoding/gob"] = (function() { /* */ if (_1 === (20)) { $s = 15; continue; } /* */ $s = 16; continue; /* if (_1 === (23)) { */ case 11: - _r$26 = t.Elem(); /* */ $s = 19; case 19: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - _r$27 = _r$26.Kind(); /* */ $s = 20; case 20: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - /* */ if (_r$27 === 8) { $s = 17; continue; } + _r$28 = t.Elem(); /* */ $s = 19; case 19: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + _r$29 = _r$28.Kind(); /* */ $s = 20; case 20: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + /* */ if (_r$29 === 8) { $s = 17; continue; } /* */ $s = 18; continue; - /* if (_r$27 === 8) { */ case 17: + /* if (_r$29 === 8) { */ case 17: op[0] = encUint8Array; /* break; */ $s = 9; continue; /* } */ case 18: - _r$28 = t.Elem(); /* */ $s = 21; case 21: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - _r$29 = encOpFor(_r$28, inProgress, building); /* */ $s = 22; case 22: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } - _tuple = _r$29; + _r$30 = t.Elem(); /* */ $s = 21; case 21: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } + _r$31 = encOpFor(_r$30, inProgress, building); /* */ $s = 22; case 22: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } + _tuple = _r$31; elemOp[0] = _tuple[0]; elemIndir[0] = _tuple[1]; - _r$30 = t.Elem(); /* */ $s = 23; case 23: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } - _r$31 = _r$30.Kind(); /* */ $s = 24; case 24: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } - helper[0] = (_entry$1 = $mapIndex(encSliceHelper,reflect.Kind.keyFor(_r$31)), _entry$1 !== undefined ? _entry$1.v : $throwNilPointerError); + _r$32 = t.Elem(); /* */ $s = 23; case 23: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } + _r$33 = _r$32.Kind(); /* */ $s = 24; case 24: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } + helper[0] = (_entry$1 = $mapIndex(encSliceHelper,reflect.Kind.keyFor(_r$33)), _entry$1 !== undefined ? _entry$1.v : $throwNilPointerError); op[0] = (function(elemIndir, elemIndir$1, elemIndir$2, elemOp, elemOp$1, elemOp$2, helper, helper$1, info, keyIndir, keyOp, op) { return function encOpFor·func1(i, state, slice) { - var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _r$32, _r$33, _v, i, slice, state, $s, $r, $c} = $restore(this, {i, state, slice}); + var {i, slice, state, $s, $r, $c} = $restore(this, {i, state, slice}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (!(!state.sendZero)) { _v = false; $s = 3; continue s; } - _r$32 = $clone(slice, reflect.Value).Len(); /* */ $s = 4; case 4: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } - _v = _r$32 === 0; case 3: - /* */ if (_v) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (_v) { */ case 1: + if (!state.sendZero && ($clone(slice, reflect.Value).Len() === 0)) { $s = -1; return; - /* } */ case 2: + } state.update(i); - _arg = state.b; - _arg$1 = $clone(slice, reflect.Value); - _arg$2 = elemOp[0].$get(); - _arg$3 = elemIndir[0]; - _r$33 = $clone(slice, reflect.Value).Len(); /* */ $s = 5; case 5: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } - _arg$4 = _r$33; - _arg$5 = helper[0]; - $r = state.enc.encodeArray(_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = state.enc.encodeArray(state.b, $clone(slice, reflect.Value), elemOp[0].$get(), elemIndir[0], $clone(slice, reflect.Value).Len(), helper[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } var $f = {$blk: encOpFor·func1, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _r$32, _r$33, _v, i, slice, state, $s};return $f; + /* */ } return; } var $f = {$blk: encOpFor·func1, $c: true, $r, i, slice, state, $s};return $f; }; })(elemIndir, elemIndir$1, elemIndir$2, elemOp, elemOp$1, elemOp$2, helper, helper$1, info, keyIndir, keyOp, op); $s = 16; continue; /* } else if (_1 === (17)) { */ case 12: - _r$32 = t.Elem(); /* */ $s = 25; case 25: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } - _r$33 = encOpFor(_r$32, inProgress, building); /* */ $s = 26; case 26: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } - _tuple$1 = _r$33; + _r$34 = t.Elem(); /* */ $s = 25; case 25: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } + _r$35 = encOpFor(_r$34, inProgress, building); /* */ $s = 26; case 26: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } + _tuple$1 = _r$35; elemOp$1[0] = _tuple$1[0]; elemIndir$1[0] = _tuple$1[1]; - _r$34 = t.Elem(); /* */ $s = 27; case 27: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } - _r$35 = _r$34.Kind(); /* */ $s = 28; case 28: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } - helper$1[0] = (_entry$2 = $mapIndex(encArrayHelper,reflect.Kind.keyFor(_r$35)), _entry$2 !== undefined ? _entry$2.v : $throwNilPointerError); + _r$36 = t.Elem(); /* */ $s = 27; case 27: if($c) { $c = false; _r$36 = _r$36.$blk(); } if (_r$36 && _r$36.$blk !== undefined) { break s; } + _r$37 = _r$36.Kind(); /* */ $s = 28; case 28: if($c) { $c = false; _r$37 = _r$37.$blk(); } if (_r$37 && _r$37.$blk !== undefined) { break s; } + helper$1[0] = (_entry$2 = $mapIndex(encArrayHelper,reflect.Kind.keyFor(_r$37)), _entry$2 !== undefined ? _entry$2.v : $throwNilPointerError); op[0] = (function(elemIndir, elemIndir$1, elemIndir$2, elemOp, elemOp$1, elemOp$2, helper, helper$1, info, keyIndir, keyOp, op) { return function encOpFor·func2(i, state, array) { - var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _r$36, array, i, state, $s, $r, $c} = $restore(this, {i, state, array}); + var {array, i, state, $s, $r, $c} = $restore(this, {i, state, array}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: state.update(i); - _arg = state.b; - _arg$1 = $clone(array, reflect.Value); - _arg$2 = elemOp$1[0].$get(); - _arg$3 = elemIndir$1[0]; - _r$36 = $clone(array, reflect.Value).Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r$36 = _r$36.$blk(); } if (_r$36 && _r$36.$blk !== undefined) { break s; } - _arg$4 = _r$36; - _arg$5 = helper$1[0]; - $r = state.enc.encodeArray(_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = state.enc.encodeArray(state.b, $clone(array, reflect.Value), elemOp$1[0].$get(), elemIndir$1[0], $clone(array, reflect.Value).Len(), helper$1[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } var $f = {$blk: encOpFor·func2, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _r$36, array, i, state, $s};return $f; + /* */ } return; } var $f = {$blk: encOpFor·func2, $c: true, $r, array, i, state, $s};return $f; }; })(elemIndir, elemIndir$1, elemIndir$2, elemOp, elemOp$1, elemOp$2, helper, helper$1, info, keyIndir, keyOp, op); $s = 16; continue; /* } else if (_1 === (21)) { */ case 13: - _r$36 = t.Key(); /* */ $s = 29; case 29: if($c) { $c = false; _r$36 = _r$36.$blk(); } if (_r$36 && _r$36.$blk !== undefined) { break s; } - _r$37 = encOpFor(_r$36, inProgress, building); /* */ $s = 30; case 30: if($c) { $c = false; _r$37 = _r$37.$blk(); } if (_r$37 && _r$37.$blk !== undefined) { break s; } - _tuple$2 = _r$37; + _r$38 = t.Key(); /* */ $s = 29; case 29: if($c) { $c = false; _r$38 = _r$38.$blk(); } if (_r$38 && _r$38.$blk !== undefined) { break s; } + _r$39 = encOpFor(_r$38, inProgress, building); /* */ $s = 30; case 30: if($c) { $c = false; _r$39 = _r$39.$blk(); } if (_r$39 && _r$39.$blk !== undefined) { break s; } + _tuple$2 = _r$39; keyOp[0] = _tuple$2[0]; keyIndir[0] = _tuple$2[1]; - _r$38 = t.Elem(); /* */ $s = 31; case 31: if($c) { $c = false; _r$38 = _r$38.$blk(); } if (_r$38 && _r$38.$blk !== undefined) { break s; } - _r$39 = encOpFor(_r$38, inProgress, building); /* */ $s = 32; case 32: if($c) { $c = false; _r$39 = _r$39.$blk(); } if (_r$39 && _r$39.$blk !== undefined) { break s; } - _tuple$3 = _r$39; + _r$40 = t.Elem(); /* */ $s = 31; case 31: if($c) { $c = false; _r$40 = _r$40.$blk(); } if (_r$40 && _r$40.$blk !== undefined) { break s; } + _r$41 = encOpFor(_r$40, inProgress, building); /* */ $s = 32; case 32: if($c) { $c = false; _r$41 = _r$41.$blk(); } if (_r$41 && _r$41.$blk !== undefined) { break s; } + _tuple$3 = _r$41; elemOp$2[0] = _tuple$3[0]; elemIndir$2[0] = _tuple$3[1]; op[0] = (function(elemIndir, elemIndir$1, elemIndir$2, elemOp, elemOp$1, elemOp$2, helper, helper$1, info, keyIndir, keyOp, op) { return function encOpFor·func3(i, state, mv) { @@ -48933,11 +47893,11 @@ $packages["encoding/gob"] = (function() { }; })(elemIndir, elemIndir$1, elemIndir$2, elemOp, elemOp$1, elemOp$2, helper, helper$1, info, keyIndir, keyOp, op); $s = 16; continue; /* } else if (_1 === (25)) { */ case 14: - _r$40 = userType(typ); /* */ $s = 33; case 33: if($c) { $c = false; _r$40 = _r$40.$blk(); } if (_r$40 && _r$40.$blk !== undefined) { break s; } - _r$41 = getEncEngine(_r$40, building); /* */ $s = 34; case 34: if($c) { $c = false; _r$41 = _r$41.$blk(); } if (_r$41 && _r$41.$blk !== undefined) { break s; } - _r$41; - _r$42 = mustGetTypeInfo(typ); /* */ $s = 35; case 35: if($c) { $c = false; _r$42 = _r$42.$blk(); } if (_r$42 && _r$42.$blk !== undefined) { break s; } - info[0] = _r$42; + _r$42 = userType(typ); /* */ $s = 33; case 33: if($c) { $c = false; _r$42 = _r$42.$blk(); } if (_r$42 && _r$42.$blk !== undefined) { break s; } + _r$43 = getEncEngine(_r$42, building); /* */ $s = 34; case 34: if($c) { $c = false; _r$43 = _r$43.$blk(); } if (_r$43 && _r$43.$blk !== undefined) { break s; } + _r$43; + _r$44 = mustGetTypeInfo(typ); /* */ $s = 35; case 35: if($c) { $c = false; _r$44 = _r$44.$blk(); } if (_r$44 && _r$44.$blk !== undefined) { break s; } + info[0] = _r$44; op[0] = (function(elemIndir, elemIndir$1, elemIndir$2, elemOp, elemOp$1, elemOp$2, helper, helper$1, info, keyIndir, keyOp, op) { return function encOpFor·func4(i, state, sv) { var {enc, i, state, sv, $s, $r, $c} = $restore(this, {i, state, sv}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: @@ -48966,13 +47926,13 @@ $packages["encoding/gob"] = (function() { /* */ if (op[0] === $throwNilPointerError) { $s = 36; continue; } /* */ $s = 37; continue; /* if (op[0] === $throwNilPointerError) { */ case 36: - $r = errorf("can't happen: encode type %s", new sliceType$2([rt])); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errorf("can't happen: encode type %s", new sliceType$3([rt])); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 37: - $s = -1; return [(op.$ptr || (op.$ptr = new ptrType$36(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, op))), indir]; - /* */ } return; } var $f = {$blk: encOpFor$1, $c: true, $r, $24r, _1, _entry, _entry$1, _entry$2, _key, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$40, _r$41, _r$42, _tuple, _tuple$1, _tuple$2, _tuple$3, building, elemIndir, elemIndir$1, elemIndir$2, elemOp, elemOp$1, elemOp$2, helper, helper$1, inProgress, indir, info, k, keyIndir, keyOp, op, opPtr, rt, t, typ, ut, $s};return $f; + $s = -1; return [(op.$ptr || (op.$ptr = new ptrType$38(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, op))), indir]; + /* */ } return; } var $f = {$blk: encOpFor$1, $c: true, $r, $24r, _1, _entry, _entry$1, _entry$2, _key, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$40, _r$41, _r$42, _r$43, _r$44, _tuple, _tuple$1, _tuple$2, _tuple$3, building, elemIndir, elemIndir$1, elemIndir$2, elemOp, elemOp$1, elemOp$2, helper, helper$1, inProgress, indir, info, k, keyIndir, keyOp, op, opPtr, rt, t, typ, ut, $s};return $f; }; gobEncodeOpFor = function gobEncodeOpFor$1(ut) { - var {_r$22, i, op, rt, ut, $s, $r, $c} = $restore(this, {ut}); + var {_r$24, i, op, rt, ut, $s, $r, $c} = $restore(this, {ut}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: op = [op]; rt = [rt]; @@ -48988,15 +47948,15 @@ $packages["encoding/gob"] = (function() { i = 0; /* while (true) { */ case 4: /* if (!(i < ut[0].encIndir)) { break; } */ if(!(i < ut[0].encIndir)) { $s = 5; continue; } - _r$22 = rt[0].Elem(); /* */ $s = 6; case 6: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - rt[0] = _r$22; + _r$24 = rt[0].Elem(); /* */ $s = 6; case 6: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + rt[0] = _r$24; i = i + (1) << 24 >> 24; $s = 4; continue; case 5: /* } */ case 3: op[0] = $throwNilPointerError; op[0] = (function(op, rt, ut) { return function gobEncodeOpFor·func1(i$1, state, v) { - var {_r$23, _v, i$1, state, v, $s, $r, $c} = $restore(this, {i$1, state, v}); + var {_r$25, _v, i$1, state, v, $s, $r, $c} = $restore(this, {i$1, state, v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: /* */ if (ut[0].encIndir === -1) { $s = 1; continue; } /* */ $s = 2; continue; @@ -49004,13 +47964,13 @@ $packages["encoding/gob"] = (function() { /* */ if (!$clone(v, reflect.Value).CanAddr()) { $s = 3; continue; } /* */ $s = 4; continue; /* if (!$clone(v, reflect.Value).CanAddr()) { */ case 3: - $r = errorf("unaddressable value of type %s", new sliceType$2([rt[0]])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errorf("unaddressable value of type %s", new sliceType$3([rt[0]])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 4: v = $clone(v, reflect.Value).Addr(); /* } */ case 2: if (!(!state.sendZero)) { _v = false; $s = 8; continue s; } - _r$23 = isZero($clone(v, reflect.Value)); /* */ $s = 9; case 9: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _v = _r$23; case 8: + _r$25 = $clone(v, reflect.Value).IsZero(); /* */ $s = 9; case 9: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _v = _r$25; case 8: /* */ if (_v) { $s = 6; continue; } /* */ $s = 7; continue; /* if (_v) { */ case 6: @@ -49019,24 +47979,24 @@ $packages["encoding/gob"] = (function() { state.update(i$1); $r = state.enc.encodeGobEncoder(state.b, ut[0], $clone(v, reflect.Value)); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } var $f = {$blk: gobEncodeOpFor·func1, $c: true, $r, _r$23, _v, i$1, state, v, $s};return $f; + /* */ } return; } var $f = {$blk: gobEncodeOpFor·func1, $c: true, $r, _r$25, _v, i$1, state, v, $s};return $f; }; })(op, rt, ut); - $s = -1; return [(op.$ptr || (op.$ptr = new ptrType$36(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, op))), ((ut[0].encIndir >> 0))]; - /* */ } return; } var $f = {$blk: gobEncodeOpFor$1, $c: true, $r, _r$22, i, op, rt, ut, $s};return $f; + $s = -1; return [(op.$ptr || (op.$ptr = new ptrType$38(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, op))), ((ut[0].encIndir >> 0))]; + /* */ } return; } var $f = {$blk: gobEncodeOpFor$1, $c: true, $r, _r$24, i, op, rt, ut, $s};return $f; }; compileEnc = function compileEnc$1(ut, building) { - var {_r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _tmp, _tmp$1, _tuple, _tuple$1, _v, building, engine, f, fieldNum, indir, indir$1, op, op$1, rt, seen, srt, ut, wireFieldNum, x$2, $s, $r, $c} = $restore(this, {ut, building}); + var {_r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _tmp, _tmp$1, _tuple, _tuple$1, _v, building, engine, f, fieldNum, indir, indir$1, op, op$1, rt, seen, srt, ut, wireFieldNum, x, $s, $r, $c} = $restore(this, {ut, building}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: srt = ut.base; - engine = new encEngine.ptr(sliceType$21.nil); + engine = new encEngine.ptr(sliceType$22.nil); seen = new $global.Map(); rt = ut.base; if (!((ut.externalEnc === 0))) { rt = ut.user; } if (!(ut.externalEnc === 0)) { _v = false; $s = 4; continue s; } - _r$22 = srt.Kind(); /* */ $s = 5; case 5: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _v = _r$22 === 25; case 4: + _r$24 = srt.Kind(); /* */ $s = 5; case 5: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _v = _r$24 === 25; case 4: /* */ if (_v) { $s = 1; continue; } /* */ $s = 2; continue; /* if (_v) { */ case 1: @@ -49045,20 +48005,20 @@ $packages["encoding/gob"] = (function() { fieldNum = _tmp; wireFieldNum = _tmp$1; /* while (true) { */ case 6: - _r$23 = srt.NumField(); /* */ $s = 8; case 8: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - /* if (!(fieldNum < _r$23)) { break; } */ if(!(fieldNum < _r$23)) { $s = 7; continue; } + _r$25 = srt.NumField(); /* */ $s = 8; case 8: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + /* if (!(fieldNum < _r$25)) { break; } */ if(!(fieldNum < _r$25)) { $s = 7; continue; } f = [f]; - _r$24 = srt.Field(fieldNum); /* */ $s = 9; case 9: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - f[0] = $clone(_r$24, reflect.StructField); - _r$25 = isSent(f[0]); /* */ $s = 12; case 12: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - /* */ if (!_r$25) { $s = 10; continue; } + _r$26 = srt.Field(fieldNum); /* */ $s = 9; case 9: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + f[0] = $clone(_r$26, reflect.StructField); + _r$27 = isSent(f[0]); /* */ $s = 12; case 12: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + /* */ if (!_r$27) { $s = 10; continue; } /* */ $s = 11; continue; - /* if (!_r$25) { */ case 10: + /* if (!_r$27) { */ case 10: fieldNum = fieldNum + (1) >> 0; /* continue; */ $s = 6; continue; /* } */ case 11: - _r$26 = encOpFor(f[0].Type, seen, building); /* */ $s = 13; case 13: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - _tuple = _r$26; + _r$28 = encOpFor(f[0].Type, seen, building); /* */ $s = 13; case 13: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + _tuple = _r$28; op = _tuple[0]; indir = _tuple[1]; engine.instr = $append(engine.instr, new encInstr.ptr(op.$get(), wireFieldNum, f[0].Index, indir)); @@ -49066,122 +48026,118 @@ $packages["encoding/gob"] = (function() { fieldNum = fieldNum + (1) >> 0; $s = 6; continue; case 7: - _r$27 = srt.NumField(); /* */ $s = 16; case 16: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - /* */ if (_r$27 > 0 && (engine.instr.$length === 0)) { $s = 14; continue; } + _r$29 = srt.NumField(); /* */ $s = 16; case 16: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + /* */ if (_r$29 > 0 && (engine.instr.$length === 0)) { $s = 14; continue; } /* */ $s = 15; continue; - /* if (_r$27 > 0 && (engine.instr.$length === 0)) { */ case 14: - $r = errorf("type %s has no exported fields", new sliceType$2([rt])); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* if (_r$29 > 0 && (engine.instr.$length === 0)) { */ case 14: + $r = errorf("type %s has no exported fields", new sliceType$3([rt])); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 15: - engine.instr = $append(engine.instr, new encInstr.ptr(encStructTerminator, 0, sliceType$4.nil, 0)); + engine.instr = $append(engine.instr, new encInstr.ptr(encStructTerminator, 0, sliceType$5.nil, 0)); $s = 3; continue; /* } else { */ case 2: - engine.instr = $makeSlice(sliceType$21, 1); - _r$28 = encOpFor(rt, seen, building); /* */ $s = 18; case 18: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - _tuple$1 = _r$28; + engine.instr = $makeSlice(sliceType$22, 1); + _r$30 = encOpFor(rt, seen, building); /* */ $s = 18; case 18: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } + _tuple$1 = _r$30; op$1 = _tuple$1[0]; indir$1 = _tuple$1[1]; - encInstr.copy((x$2 = engine.instr, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])), new encInstr.ptr(op$1.$get(), 0, sliceType$4.nil, indir$1)); + encInstr.copy((x = engine.instr, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])), new encInstr.ptr(op$1.$get(), 0, sliceType$5.nil, indir$1)); /* } */ case 3: $s = -1; return engine; - /* */ } return; } var $f = {$blk: compileEnc$1, $c: true, $r, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _tmp, _tmp$1, _tuple, _tuple$1, _v, building, engine, f, fieldNum, indir, indir$1, op, op$1, rt, seen, srt, ut, wireFieldNum, x$2, $s};return $f; + /* */ } return; } var $f = {$blk: compileEnc$1, $c: true, $r, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _tmp, _tmp$1, _tuple, _tuple$1, _v, building, engine, f, fieldNum, indir, indir$1, op, op$1, rt, seen, srt, ut, wireFieldNum, x, $s};return $f; }; getEncEngine = function getEncEngine$1(ut, building) { - var {_r$22, _r$23, _tuple, building, enc, err, info, ut, $s, $r, $c} = $restore(this, {ut, building}); + var {_r$24, _r$25, _tuple, building, enc, err, info, ut, $s, $r, $c} = $restore(this, {ut, building}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$22 = getTypeInfo(ut); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = _r$22; + _r$24 = getTypeInfo(ut); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = _r$24; info = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { error_(err); } enc = info.encoder.Load(); - /* */ if (enc === ptrType$31.nil) { $s = 2; continue; } + /* */ if (enc === ptrType$33.nil) { $s = 2; continue; } /* */ $s = 3; continue; - /* if (enc === ptrType$31.nil) { */ case 2: - _r$23 = buildEncEngine(info, ut, building); /* */ $s = 4; case 4: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - enc = _r$23; + /* if (enc === ptrType$33.nil) { */ case 2: + _r$25 = buildEncEngine(info, ut, building); /* */ $s = 4; case 4: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + enc = _r$25; /* } */ case 3: $s = -1; return enc; - /* */ } return; } var $f = {$blk: getEncEngine$1, $c: true, $r, _r$22, _r$23, _tuple, building, enc, err, info, ut, $s};return $f; + /* */ } return; } var $f = {$blk: getEncEngine$1, $c: true, $r, _r$24, _r$25, _tuple, building, enc, err, info, ut, $s};return $f; }; buildEncEngine = function buildEncEngine$1(info, ut, building) { - var {_entry, _key, _r$22, building, enc, info, ut, $s, $deferred, $r, $c} = $restore(this, {info, ut, building}); + var {_entry, _key, _r$24, building, enc, info, ut, $s, $deferred, $r, $c} = $restore(this, {info, ut, building}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - if (!(building === false) && (_entry = $mapIndex(building,ptrType$30.keyFor(info)), _entry !== undefined ? _entry.v : false)) { - $s = -1; return ptrType$31.nil; + if (!(building === false) && (_entry = $mapIndex(building,ptrType$32.keyFor(info)), _entry !== undefined ? _entry.v : false)) { + $s = -1; return ptrType$33.nil; } info.encInit.Lock(); $deferred.push([$methodVal(info.encInit, "Unlock"), []]); enc = info.encoder.Load(); - /* */ if (enc === ptrType$31.nil) { $s = 1; continue; } + /* */ if (enc === ptrType$33.nil) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (enc === ptrType$31.nil) { */ case 1: + /* if (enc === ptrType$33.nil) { */ case 1: if (building === false) { building = new $global.Map(); } - _key = info; (building || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$30.keyFor(_key), { k: _key, v: true }); - _r$22 = compileEnc(ut, building); /* */ $s = 3; case 3: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - enc = _r$22; + _key = info; (building || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$32.keyFor(_key), { k: _key, v: true }); + _r$24 = compileEnc(ut, building); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + enc = _r$24; info.encoder.Store(enc); /* } */ case 2: $s = -1; return enc; - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$31.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: buildEncEngine$1, $c: true, $r, _entry, _key, _r$22, building, enc, info, ut, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$33.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: buildEncEngine$1, $c: true, $r, _entry, _key, _r$24, building, enc, info, ut, $s, $deferred};return $f; } } }; $ptrType(Encoder).prototype.encode = function encode(b, value, ut) { - var {_r$22, _r$23, _r$24, _v, b, enc, engine, i, indir, ut, value, $s, $deferred, $r, $c} = $restore(this, {b, value, ut}); + var {_r$24, _r$25, _v, b, enc, engine, i, indir, ut, value, $s, $deferred, $r, $c} = $restore(this, {b, value, ut}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); enc = this; - $deferred.push([catchError, [(enc.$ptr_err || (enc.$ptr_err = new ptrType$37(function() { return this.$target.err; }, function($v) { this.$target.err = $v; }, enc)))]]); - _r$22 = getEncEngine(ut, false); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - engine = _r$22; + $deferred.push([catchError, [(enc === ptrType$35.nil && $throwNilPointerError(), (enc.$ptr_err || (enc.$ptr_err = new ptrType$39(function() { return this.$target.err; }, function($v) { this.$target.err = $v; }, enc))))]]); + _r$24 = getEncEngine(ut, false); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + engine = _r$24; indir = ut.indir; if (!((ut.externalEnc === 0))) { indir = ((ut.encIndir >> 0)); } i = 0; - /* while (true) { */ case 2: - /* if (!(i < indir)) { break; } */ if(!(i < indir)) { $s = 3; continue; } - _r$23 = reflect.Indirect($clone(value, reflect.Value)); /* */ $s = 4; case 4: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - value = _r$23; + while (true) { + if (!(i < indir)) { break; } + value = reflect.Indirect($clone(value, reflect.Value)); i = i + (1) >> 0; - $s = 2; continue; - case 3: - if (!(ut.externalEnc === 0)) { _v = false; $s = 8; continue s; } - _r$24 = $clone(value, reflect.Value).Type().Kind(); /* */ $s = 9; case 9: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - _v = _r$24 === 25; case 8: - /* */ if (_v) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (_v) { */ case 5: - $r = enc.encodeStruct(b, engine, $clone(value, reflect.Value)); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 7; continue; - /* } else { */ case 6: - $r = enc.encodeSingle(b, engine, $clone(value, reflect.Value)); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 7: + } + if (!(ut.externalEnc === 0)) { _v = false; $s = 5; continue s; } + _r$25 = $clone(value, reflect.Value).Type().Kind(); /* */ $s = 6; case 6: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _v = _r$25 === 25; case 5: + /* */ if (_v) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (_v) { */ case 2: + $r = enc.encodeStruct(b, engine, $clone(value, reflect.Value)); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 4; continue; + /* } else { */ case 3: + $r = enc.encodeSingle(b, engine, $clone(value, reflect.Value)); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 4: $s = -1; return; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: encode, $c: true, $r, _r$22, _r$23, _r$24, _v, b, enc, engine, i, indir, ut, value, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: encode, $c: true, $r, _r$24, _r$25, _v, b, enc, engine, i, indir, ut, value, $s, $deferred};return $f; } } }; encBoolArray = function encBoolArray$1(state, v) { - var {$24r, _arg, _arg$1, _arg$2, _r$22, _r$23, _r$24, state, v, $s, $r, $c} = $restore(this, {state, v}); + var {$24r, _arg, _arg$1, _r$24, _r$25, state, v, $s, $r, $c} = $restore(this, {state, v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if (!$clone(v, reflect.Value).CanAddr()) { $s = -1; return false; } _arg = state; - _r$22 = $clone(v, reflect.Value).Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _arg$1 = _r$22; - _r$23 = $clone(v, reflect.Value).Slice(0, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _arg$2 = $clone(_r$23, reflect.Value); - _r$24 = encBoolSlice(_arg, _arg$2); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - $24r = _r$24; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: encBoolArray$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r$22, _r$23, _r$24, state, v, $s};return $f; + _r$24 = $clone(v, reflect.Value).Slice(0, $clone(v, reflect.Value).Len()); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _arg$1 = $clone(_r$24, reflect.Value); + _r$25 = encBoolSlice(_arg, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $24r = _r$25; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: encBoolArray$1, $c: true, $r, $24r, _arg, _arg$1, _r$24, _r$25, state, v, $s};return $f; }; encBoolSlice = function encBoolSlice$1(state, v) { - var {_i, _r$22, _ref, _tuple, ok, slice, state, v, x$2, $s, $r, $c} = $restore(this, {state, v}); + var {_i, _r$24, _ref, _tuple, ok, slice, state, v, x, $s, $r, $c} = $restore(this, {state, v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$22 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = $assertType(_r$22, sliceType$18, true); + _r$24 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = $assertType(_r$24, sliceType$19, true); slice = _tuple[0]; ok = _tuple[1]; if (!ok) { @@ -49191,9 +48147,9 @@ $packages["encoding/gob"] = (function() { _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } - x$2 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (!(x$2 === false) || state.sendZero) { - if (x$2) { + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!(x === false) || state.sendZero) { + if (x) { state.encodeUint(new $Uint64(0, 1)); } else { state.encodeUint(new $Uint64(0, 0)); @@ -49202,29 +48158,27 @@ $packages["encoding/gob"] = (function() { _i++; } $s = -1; return true; - /* */ } return; } var $f = {$blk: encBoolSlice$1, $c: true, $r, _i, _r$22, _ref, _tuple, ok, slice, state, v, x$2, $s};return $f; + /* */ } return; } var $f = {$blk: encBoolSlice$1, $c: true, $r, _i, _r$24, _ref, _tuple, ok, slice, state, v, x, $s};return $f; }; encComplex64Array = function encComplex64Array$1(state, v) { - var {$24r, _arg, _arg$1, _arg$2, _r$22, _r$23, _r$24, state, v, $s, $r, $c} = $restore(this, {state, v}); + var {$24r, _arg, _arg$1, _r$24, _r$25, state, v, $s, $r, $c} = $restore(this, {state, v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if (!$clone(v, reflect.Value).CanAddr()) { $s = -1; return false; } _arg = state; - _r$22 = $clone(v, reflect.Value).Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _arg$1 = _r$22; - _r$23 = $clone(v, reflect.Value).Slice(0, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _arg$2 = $clone(_r$23, reflect.Value); - _r$24 = encComplex64Slice(_arg, _arg$2); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - $24r = _r$24; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: encComplex64Array$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r$22, _r$23, _r$24, state, v, $s};return $f; + _r$24 = $clone(v, reflect.Value).Slice(0, $clone(v, reflect.Value).Len()); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _arg$1 = $clone(_r$24, reflect.Value); + _r$25 = encComplex64Slice(_arg, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $24r = _r$25; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: encComplex64Array$1, $c: true, $r, $24r, _arg, _arg$1, _r$24, _r$25, state, v, $s};return $f; }; encComplex64Slice = function encComplex64Slice$1(state, v) { - var {_i, _r$22, _ref, _tuple, ipart, ok, rpart, slice, state, v, x$2, $s, $r, $c} = $restore(this, {state, v}); + var {_i, _r$24, _ref, _tuple, ipart, ok, rpart, slice, state, v, x, $s, $r, $c} = $restore(this, {state, v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$22 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = $assertType(_r$22, sliceType$15, true); + _r$24 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = $assertType(_r$24, sliceType$16, true); slice = _tuple[0]; ok = _tuple[1]; if (!ok) { @@ -49234,39 +48188,37 @@ $packages["encoding/gob"] = (function() { _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } - x$2 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (!((x$2.$real === 0 && x$2.$imag === 0)) || state.sendZero) { - rpart = floatBits((x$2.$real)); - ipart = floatBits((x$2.$imag)); + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!((x.$real === 0 && x.$imag === 0)) || state.sendZero) { + rpart = floatBits((x.$real)); + ipart = floatBits((x.$imag)); state.encodeUint(rpart); state.encodeUint(ipart); } _i++; } $s = -1; return true; - /* */ } return; } var $f = {$blk: encComplex64Slice$1, $c: true, $r, _i, _r$22, _ref, _tuple, ipart, ok, rpart, slice, state, v, x$2, $s};return $f; + /* */ } return; } var $f = {$blk: encComplex64Slice$1, $c: true, $r, _i, _r$24, _ref, _tuple, ipart, ok, rpart, slice, state, v, x, $s};return $f; }; encComplex128Array = function encComplex128Array$1(state, v) { - var {$24r, _arg, _arg$1, _arg$2, _r$22, _r$23, _r$24, state, v, $s, $r, $c} = $restore(this, {state, v}); + var {$24r, _arg, _arg$1, _r$24, _r$25, state, v, $s, $r, $c} = $restore(this, {state, v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if (!$clone(v, reflect.Value).CanAddr()) { $s = -1; return false; } _arg = state; - _r$22 = $clone(v, reflect.Value).Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _arg$1 = _r$22; - _r$23 = $clone(v, reflect.Value).Slice(0, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _arg$2 = $clone(_r$23, reflect.Value); - _r$24 = encComplex128Slice(_arg, _arg$2); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - $24r = _r$24; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: encComplex128Array$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r$22, _r$23, _r$24, state, v, $s};return $f; + _r$24 = $clone(v, reflect.Value).Slice(0, $clone(v, reflect.Value).Len()); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _arg$1 = $clone(_r$24, reflect.Value); + _r$25 = encComplex128Slice(_arg, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $24r = _r$25; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: encComplex128Array$1, $c: true, $r, $24r, _arg, _arg$1, _r$24, _r$25, state, v, $s};return $f; }; encComplex128Slice = function encComplex128Slice$1(state, v) { - var {_i, _r$22, _ref, _tuple, ipart, ok, rpart, slice, state, v, x$2, $s, $r, $c} = $restore(this, {state, v}); + var {_i, _r$24, _ref, _tuple, ipart, ok, rpart, slice, state, v, x, $s, $r, $c} = $restore(this, {state, v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$22 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = $assertType(_r$22, sliceType$16, true); + _r$24 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = $assertType(_r$24, sliceType$17, true); slice = _tuple[0]; ok = _tuple[1]; if (!ok) { @@ -49276,39 +48228,37 @@ $packages["encoding/gob"] = (function() { _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } - x$2 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (!((x$2.$real === 0 && x$2.$imag === 0)) || state.sendZero) { - rpart = floatBits(x$2.$real); - ipart = floatBits(x$2.$imag); + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!((x.$real === 0 && x.$imag === 0)) || state.sendZero) { + rpart = floatBits(x.$real); + ipart = floatBits(x.$imag); state.encodeUint(rpart); state.encodeUint(ipart); } _i++; } $s = -1; return true; - /* */ } return; } var $f = {$blk: encComplex128Slice$1, $c: true, $r, _i, _r$22, _ref, _tuple, ipart, ok, rpart, slice, state, v, x$2, $s};return $f; + /* */ } return; } var $f = {$blk: encComplex128Slice$1, $c: true, $r, _i, _r$24, _ref, _tuple, ipart, ok, rpart, slice, state, v, x, $s};return $f; }; encFloat32Array = function encFloat32Array$1(state, v) { - var {$24r, _arg, _arg$1, _arg$2, _r$22, _r$23, _r$24, state, v, $s, $r, $c} = $restore(this, {state, v}); + var {$24r, _arg, _arg$1, _r$24, _r$25, state, v, $s, $r, $c} = $restore(this, {state, v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if (!$clone(v, reflect.Value).CanAddr()) { $s = -1; return false; } _arg = state; - _r$22 = $clone(v, reflect.Value).Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _arg$1 = _r$22; - _r$23 = $clone(v, reflect.Value).Slice(0, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _arg$2 = $clone(_r$23, reflect.Value); - _r$24 = encFloat32Slice(_arg, _arg$2); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - $24r = _r$24; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: encFloat32Array$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r$22, _r$23, _r$24, state, v, $s};return $f; + _r$24 = $clone(v, reflect.Value).Slice(0, $clone(v, reflect.Value).Len()); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _arg$1 = $clone(_r$24, reflect.Value); + _r$25 = encFloat32Slice(_arg, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $24r = _r$25; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: encFloat32Array$1, $c: true, $r, $24r, _arg, _arg$1, _r$24, _r$25, state, v, $s};return $f; }; encFloat32Slice = function encFloat32Slice$1(state, v) { - var {_i, _r$22, _ref, _tuple, bits$1, ok, slice, state, v, x$2, $s, $r, $c} = $restore(this, {state, v}); + var {_i, _r$24, _ref, _tuple, bits$1, ok, slice, state, v, x, $s, $r, $c} = $restore(this, {state, v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$22 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = $assertType(_r$22, sliceType$13, true); + _r$24 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = $assertType(_r$24, sliceType$14, true); slice = _tuple[0]; ok = _tuple[1]; if (!ok) { @@ -49318,37 +48268,35 @@ $packages["encoding/gob"] = (function() { _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } - x$2 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (!((x$2 === 0)) || state.sendZero) { - bits$1 = floatBits((x$2)); + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!((x === 0)) || state.sendZero) { + bits$1 = floatBits((x)); state.encodeUint(bits$1); } _i++; } $s = -1; return true; - /* */ } return; } var $f = {$blk: encFloat32Slice$1, $c: true, $r, _i, _r$22, _ref, _tuple, bits$1, ok, slice, state, v, x$2, $s};return $f; + /* */ } return; } var $f = {$blk: encFloat32Slice$1, $c: true, $r, _i, _r$24, _ref, _tuple, bits$1, ok, slice, state, v, x, $s};return $f; }; encFloat64Array = function encFloat64Array$1(state, v) { - var {$24r, _arg, _arg$1, _arg$2, _r$22, _r$23, _r$24, state, v, $s, $r, $c} = $restore(this, {state, v}); + var {$24r, _arg, _arg$1, _r$24, _r$25, state, v, $s, $r, $c} = $restore(this, {state, v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if (!$clone(v, reflect.Value).CanAddr()) { $s = -1; return false; } _arg = state; - _r$22 = $clone(v, reflect.Value).Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _arg$1 = _r$22; - _r$23 = $clone(v, reflect.Value).Slice(0, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _arg$2 = $clone(_r$23, reflect.Value); - _r$24 = encFloat64Slice(_arg, _arg$2); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - $24r = _r$24; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: encFloat64Array$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r$22, _r$23, _r$24, state, v, $s};return $f; + _r$24 = $clone(v, reflect.Value).Slice(0, $clone(v, reflect.Value).Len()); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _arg$1 = $clone(_r$24, reflect.Value); + _r$25 = encFloat64Slice(_arg, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $24r = _r$25; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: encFloat64Array$1, $c: true, $r, $24r, _arg, _arg$1, _r$24, _r$25, state, v, $s};return $f; }; encFloat64Slice = function encFloat64Slice$1(state, v) { - var {_i, _r$22, _ref, _tuple, bits$1, ok, slice, state, v, x$2, $s, $r, $c} = $restore(this, {state, v}); + var {_i, _r$24, _ref, _tuple, bits$1, ok, slice, state, v, x, $s, $r, $c} = $restore(this, {state, v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$22 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = $assertType(_r$22, sliceType$14, true); + _r$24 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = $assertType(_r$24, sliceType$15, true); slice = _tuple[0]; ok = _tuple[1]; if (!ok) { @@ -49358,37 +48306,35 @@ $packages["encoding/gob"] = (function() { _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } - x$2 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (!((x$2 === 0)) || state.sendZero) { - bits$1 = floatBits(x$2); + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!((x === 0)) || state.sendZero) { + bits$1 = floatBits(x); state.encodeUint(bits$1); } _i++; } $s = -1; return true; - /* */ } return; } var $f = {$blk: encFloat64Slice$1, $c: true, $r, _i, _r$22, _ref, _tuple, bits$1, ok, slice, state, v, x$2, $s};return $f; + /* */ } return; } var $f = {$blk: encFloat64Slice$1, $c: true, $r, _i, _r$24, _ref, _tuple, bits$1, ok, slice, state, v, x, $s};return $f; }; encIntArray = function encIntArray$1(state, v) { - var {$24r, _arg, _arg$1, _arg$2, _r$22, _r$23, _r$24, state, v, $s, $r, $c} = $restore(this, {state, v}); + var {$24r, _arg, _arg$1, _r$24, _r$25, state, v, $s, $r, $c} = $restore(this, {state, v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if (!$clone(v, reflect.Value).CanAddr()) { $s = -1; return false; } _arg = state; - _r$22 = $clone(v, reflect.Value).Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _arg$1 = _r$22; - _r$23 = $clone(v, reflect.Value).Slice(0, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _arg$2 = $clone(_r$23, reflect.Value); - _r$24 = encIntSlice(_arg, _arg$2); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - $24r = _r$24; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: encIntArray$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r$22, _r$23, _r$24, state, v, $s};return $f; + _r$24 = $clone(v, reflect.Value).Slice(0, $clone(v, reflect.Value).Len()); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _arg$1 = $clone(_r$24, reflect.Value); + _r$25 = encIntSlice(_arg, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $24r = _r$25; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: encIntArray$1, $c: true, $r, $24r, _arg, _arg$1, _r$24, _r$25, state, v, $s};return $f; }; encIntSlice = function encIntSlice$1(state, v) { - var {_i, _r$22, _ref, _tuple, ok, slice, state, v, x$2, $s, $r, $c} = $restore(this, {state, v}); + var {_i, _r$24, _ref, _tuple, ok, slice, state, v, x, $s, $r, $c} = $restore(this, {state, v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$22 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = $assertType(_r$22, sliceType$4, true); + _r$24 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = $assertType(_r$24, sliceType$5, true); slice = _tuple[0]; ok = _tuple[1]; if (!ok) { @@ -49398,36 +48344,34 @@ $packages["encoding/gob"] = (function() { _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } - x$2 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (!((x$2 === 0)) || state.sendZero) { - state.encodeInt((new $Int64(0, x$2))); + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!((x === 0)) || state.sendZero) { + state.encodeInt((new $Int64(0, x))); } _i++; } $s = -1; return true; - /* */ } return; } var $f = {$blk: encIntSlice$1, $c: true, $r, _i, _r$22, _ref, _tuple, ok, slice, state, v, x$2, $s};return $f; + /* */ } return; } var $f = {$blk: encIntSlice$1, $c: true, $r, _i, _r$24, _ref, _tuple, ok, slice, state, v, x, $s};return $f; }; encInt16Array = function encInt16Array$1(state, v) { - var {$24r, _arg, _arg$1, _arg$2, _r$22, _r$23, _r$24, state, v, $s, $r, $c} = $restore(this, {state, v}); + var {$24r, _arg, _arg$1, _r$24, _r$25, state, v, $s, $r, $c} = $restore(this, {state, v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if (!$clone(v, reflect.Value).CanAddr()) { $s = -1; return false; } _arg = state; - _r$22 = $clone(v, reflect.Value).Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _arg$1 = _r$22; - _r$23 = $clone(v, reflect.Value).Slice(0, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _arg$2 = $clone(_r$23, reflect.Value); - _r$24 = encInt16Slice(_arg, _arg$2); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - $24r = _r$24; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: encInt16Array$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r$22, _r$23, _r$24, state, v, $s};return $f; + _r$24 = $clone(v, reflect.Value).Slice(0, $clone(v, reflect.Value).Len()); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _arg$1 = $clone(_r$24, reflect.Value); + _r$25 = encInt16Slice(_arg, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $24r = _r$25; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: encInt16Array$1, $c: true, $r, $24r, _arg, _arg$1, _r$24, _r$25, state, v, $s};return $f; }; encInt16Slice = function encInt16Slice$1(state, v) { - var {_i, _r$22, _ref, _tuple, ok, slice, state, v, x$2, $s, $r, $c} = $restore(this, {state, v}); + var {_i, _r$24, _ref, _tuple, ok, slice, state, v, x, $s, $r, $c} = $restore(this, {state, v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$22 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = $assertType(_r$22, sliceType$6, true); + _r$24 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = $assertType(_r$24, sliceType$7, true); slice = _tuple[0]; ok = _tuple[1]; if (!ok) { @@ -49437,36 +48381,34 @@ $packages["encoding/gob"] = (function() { _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } - x$2 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (!((x$2 === 0)) || state.sendZero) { - state.encodeInt((new $Int64(0, x$2))); + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!((x === 0)) || state.sendZero) { + state.encodeInt((new $Int64(0, x))); } _i++; } $s = -1; return true; - /* */ } return; } var $f = {$blk: encInt16Slice$1, $c: true, $r, _i, _r$22, _ref, _tuple, ok, slice, state, v, x$2, $s};return $f; + /* */ } return; } var $f = {$blk: encInt16Slice$1, $c: true, $r, _i, _r$24, _ref, _tuple, ok, slice, state, v, x, $s};return $f; }; encInt32Array = function encInt32Array$1(state, v) { - var {$24r, _arg, _arg$1, _arg$2, _r$22, _r$23, _r$24, state, v, $s, $r, $c} = $restore(this, {state, v}); + var {$24r, _arg, _arg$1, _r$24, _r$25, state, v, $s, $r, $c} = $restore(this, {state, v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if (!$clone(v, reflect.Value).CanAddr()) { $s = -1; return false; } _arg = state; - _r$22 = $clone(v, reflect.Value).Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _arg$1 = _r$22; - _r$23 = $clone(v, reflect.Value).Slice(0, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _arg$2 = $clone(_r$23, reflect.Value); - _r$24 = encInt32Slice(_arg, _arg$2); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - $24r = _r$24; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: encInt32Array$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r$22, _r$23, _r$24, state, v, $s};return $f; + _r$24 = $clone(v, reflect.Value).Slice(0, $clone(v, reflect.Value).Len()); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _arg$1 = $clone(_r$24, reflect.Value); + _r$25 = encInt32Slice(_arg, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $24r = _r$25; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: encInt32Array$1, $c: true, $r, $24r, _arg, _arg$1, _r$24, _r$25, state, v, $s};return $f; }; encInt32Slice = function encInt32Slice$1(state, v) { - var {_i, _r$22, _ref, _tuple, ok, slice, state, v, x$2, $s, $r, $c} = $restore(this, {state, v}); + var {_i, _r$24, _ref, _tuple, ok, slice, state, v, x, $s, $r, $c} = $restore(this, {state, v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$22 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = $assertType(_r$22, sliceType$7, true); + _r$24 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = $assertType(_r$24, sliceType$8, true); slice = _tuple[0]; ok = _tuple[1]; if (!ok) { @@ -49476,36 +48418,34 @@ $packages["encoding/gob"] = (function() { _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } - x$2 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (!((x$2 === 0)) || state.sendZero) { - state.encodeInt((new $Int64(0, x$2))); + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!((x === 0)) || state.sendZero) { + state.encodeInt((new $Int64(0, x))); } _i++; } $s = -1; return true; - /* */ } return; } var $f = {$blk: encInt32Slice$1, $c: true, $r, _i, _r$22, _ref, _tuple, ok, slice, state, v, x$2, $s};return $f; + /* */ } return; } var $f = {$blk: encInt32Slice$1, $c: true, $r, _i, _r$24, _ref, _tuple, ok, slice, state, v, x, $s};return $f; }; encInt64Array = function encInt64Array$1(state, v) { - var {$24r, _arg, _arg$1, _arg$2, _r$22, _r$23, _r$24, state, v, $s, $r, $c} = $restore(this, {state, v}); + var {$24r, _arg, _arg$1, _r$24, _r$25, state, v, $s, $r, $c} = $restore(this, {state, v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if (!$clone(v, reflect.Value).CanAddr()) { $s = -1; return false; } _arg = state; - _r$22 = $clone(v, reflect.Value).Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _arg$1 = _r$22; - _r$23 = $clone(v, reflect.Value).Slice(0, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _arg$2 = $clone(_r$23, reflect.Value); - _r$24 = encInt64Slice(_arg, _arg$2); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - $24r = _r$24; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: encInt64Array$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r$22, _r$23, _r$24, state, v, $s};return $f; + _r$24 = $clone(v, reflect.Value).Slice(0, $clone(v, reflect.Value).Len()); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _arg$1 = $clone(_r$24, reflect.Value); + _r$25 = encInt64Slice(_arg, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $24r = _r$25; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: encInt64Array$1, $c: true, $r, $24r, _arg, _arg$1, _r$24, _r$25, state, v, $s};return $f; }; encInt64Slice = function encInt64Slice$1(state, v) { - var {_i, _r$22, _ref, _tuple, ok, slice, state, v, x$2, $s, $r, $c} = $restore(this, {state, v}); + var {_i, _r$24, _ref, _tuple, ok, slice, state, v, x, $s, $r, $c} = $restore(this, {state, v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$22 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = $assertType(_r$22, sliceType$8, true); + _r$24 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = $assertType(_r$24, sliceType$9, true); slice = _tuple[0]; ok = _tuple[1]; if (!ok) { @@ -49515,36 +48455,34 @@ $packages["encoding/gob"] = (function() { _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } - x$2 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (!((x$2.$high === 0 && x$2.$low === 0)) || state.sendZero) { - state.encodeInt(x$2); + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!((x.$high === 0 && x.$low === 0)) || state.sendZero) { + state.encodeInt(x); } _i++; } $s = -1; return true; - /* */ } return; } var $f = {$blk: encInt64Slice$1, $c: true, $r, _i, _r$22, _ref, _tuple, ok, slice, state, v, x$2, $s};return $f; + /* */ } return; } var $f = {$blk: encInt64Slice$1, $c: true, $r, _i, _r$24, _ref, _tuple, ok, slice, state, v, x, $s};return $f; }; encInt8Array = function encInt8Array$1(state, v) { - var {$24r, _arg, _arg$1, _arg$2, _r$22, _r$23, _r$24, state, v, $s, $r, $c} = $restore(this, {state, v}); + var {$24r, _arg, _arg$1, _r$24, _r$25, state, v, $s, $r, $c} = $restore(this, {state, v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if (!$clone(v, reflect.Value).CanAddr()) { $s = -1; return false; } _arg = state; - _r$22 = $clone(v, reflect.Value).Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _arg$1 = _r$22; - _r$23 = $clone(v, reflect.Value).Slice(0, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _arg$2 = $clone(_r$23, reflect.Value); - _r$24 = encInt8Slice(_arg, _arg$2); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - $24r = _r$24; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: encInt8Array$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r$22, _r$23, _r$24, state, v, $s};return $f; + _r$24 = $clone(v, reflect.Value).Slice(0, $clone(v, reflect.Value).Len()); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _arg$1 = $clone(_r$24, reflect.Value); + _r$25 = encInt8Slice(_arg, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $24r = _r$25; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: encInt8Array$1, $c: true, $r, $24r, _arg, _arg$1, _r$24, _r$25, state, v, $s};return $f; }; encInt8Slice = function encInt8Slice$1(state, v) { - var {_i, _r$22, _ref, _tuple, ok, slice, state, v, x$2, $s, $r, $c} = $restore(this, {state, v}); + var {_i, _r$24, _ref, _tuple, ok, slice, state, v, x, $s, $r, $c} = $restore(this, {state, v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$22 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = $assertType(_r$22, sliceType$5, true); + _r$24 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = $assertType(_r$24, sliceType$6, true); slice = _tuple[0]; ok = _tuple[1]; if (!ok) { @@ -49554,36 +48492,34 @@ $packages["encoding/gob"] = (function() { _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } - x$2 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (!((x$2 === 0)) || state.sendZero) { - state.encodeInt((new $Int64(0, x$2))); + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!((x === 0)) || state.sendZero) { + state.encodeInt((new $Int64(0, x))); } _i++; } $s = -1; return true; - /* */ } return; } var $f = {$blk: encInt8Slice$1, $c: true, $r, _i, _r$22, _ref, _tuple, ok, slice, state, v, x$2, $s};return $f; + /* */ } return; } var $f = {$blk: encInt8Slice$1, $c: true, $r, _i, _r$24, _ref, _tuple, ok, slice, state, v, x, $s};return $f; }; encStringArray = function encStringArray$1(state, v) { - var {$24r, _arg, _arg$1, _arg$2, _r$22, _r$23, _r$24, state, v, $s, $r, $c} = $restore(this, {state, v}); + var {$24r, _arg, _arg$1, _r$24, _r$25, state, v, $s, $r, $c} = $restore(this, {state, v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if (!$clone(v, reflect.Value).CanAddr()) { $s = -1; return false; } _arg = state; - _r$22 = $clone(v, reflect.Value).Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _arg$1 = _r$22; - _r$23 = $clone(v, reflect.Value).Slice(0, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _arg$2 = $clone(_r$23, reflect.Value); - _r$24 = encStringSlice(_arg, _arg$2); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - $24r = _r$24; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: encStringArray$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r$22, _r$23, _r$24, state, v, $s};return $f; + _r$24 = $clone(v, reflect.Value).Slice(0, $clone(v, reflect.Value).Len()); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _arg$1 = $clone(_r$24, reflect.Value); + _r$25 = encStringSlice(_arg, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $24r = _r$25; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: encStringArray$1, $c: true, $r, $24r, _arg, _arg$1, _r$24, _r$25, state, v, $s};return $f; }; encStringSlice = function encStringSlice$1(state, v) { - var {_i, _r$22, _ref, _tuple, ok, slice, state, v, x$2, $s, $r, $c} = $restore(this, {state, v}); + var {_i, _r$24, _ref, _tuple, ok, slice, state, v, x, $s, $r, $c} = $restore(this, {state, v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$22 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = $assertType(_r$22, sliceType$19, true); + _r$24 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = $assertType(_r$24, sliceType$20, true); slice = _tuple[0]; ok = _tuple[1]; if (!ok) { @@ -49593,37 +48529,35 @@ $packages["encoding/gob"] = (function() { _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } - x$2 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (!(x$2 === "") || state.sendZero) { - state.encodeUint((new $Uint64(0, x$2.length))); - state.b.WriteString(x$2); + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!(x === "") || state.sendZero) { + state.encodeUint((new $Uint64(0, x.length))); + state.b.WriteString(x); } _i++; } $s = -1; return true; - /* */ } return; } var $f = {$blk: encStringSlice$1, $c: true, $r, _i, _r$22, _ref, _tuple, ok, slice, state, v, x$2, $s};return $f; + /* */ } return; } var $f = {$blk: encStringSlice$1, $c: true, $r, _i, _r$24, _ref, _tuple, ok, slice, state, v, x, $s};return $f; }; encUintArray = function encUintArray$1(state, v) { - var {$24r, _arg, _arg$1, _arg$2, _r$22, _r$23, _r$24, state, v, $s, $r, $c} = $restore(this, {state, v}); + var {$24r, _arg, _arg$1, _r$24, _r$25, state, v, $s, $r, $c} = $restore(this, {state, v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if (!$clone(v, reflect.Value).CanAddr()) { $s = -1; return false; } _arg = state; - _r$22 = $clone(v, reflect.Value).Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _arg$1 = _r$22; - _r$23 = $clone(v, reflect.Value).Slice(0, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _arg$2 = $clone(_r$23, reflect.Value); - _r$24 = encUintSlice(_arg, _arg$2); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - $24r = _r$24; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: encUintArray$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r$22, _r$23, _r$24, state, v, $s};return $f; + _r$24 = $clone(v, reflect.Value).Slice(0, $clone(v, reflect.Value).Len()); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _arg$1 = $clone(_r$24, reflect.Value); + _r$25 = encUintSlice(_arg, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $24r = _r$25; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: encUintArray$1, $c: true, $r, $24r, _arg, _arg$1, _r$24, _r$25, state, v, $s};return $f; }; encUintSlice = function encUintSlice$1(state, v) { - var {_i, _r$22, _ref, _tuple, ok, slice, state, v, x$2, $s, $r, $c} = $restore(this, {state, v}); + var {_i, _r$24, _ref, _tuple, ok, slice, state, v, x, $s, $r, $c} = $restore(this, {state, v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$22 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = $assertType(_r$22, sliceType$9, true); + _r$24 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = $assertType(_r$24, sliceType$10, true); slice = _tuple[0]; ok = _tuple[1]; if (!ok) { @@ -49633,36 +48567,34 @@ $packages["encoding/gob"] = (function() { _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } - x$2 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (!((x$2 === 0)) || state.sendZero) { - state.encodeUint((new $Uint64(0, x$2))); + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!((x === 0)) || state.sendZero) { + state.encodeUint((new $Uint64(0, x))); } _i++; } $s = -1; return true; - /* */ } return; } var $f = {$blk: encUintSlice$1, $c: true, $r, _i, _r$22, _ref, _tuple, ok, slice, state, v, x$2, $s};return $f; + /* */ } return; } var $f = {$blk: encUintSlice$1, $c: true, $r, _i, _r$24, _ref, _tuple, ok, slice, state, v, x, $s};return $f; }; encUint16Array = function encUint16Array$1(state, v) { - var {$24r, _arg, _arg$1, _arg$2, _r$22, _r$23, _r$24, state, v, $s, $r, $c} = $restore(this, {state, v}); + var {$24r, _arg, _arg$1, _r$24, _r$25, state, v, $s, $r, $c} = $restore(this, {state, v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if (!$clone(v, reflect.Value).CanAddr()) { $s = -1; return false; } _arg = state; - _r$22 = $clone(v, reflect.Value).Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _arg$1 = _r$22; - _r$23 = $clone(v, reflect.Value).Slice(0, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _arg$2 = $clone(_r$23, reflect.Value); - _r$24 = encUint16Slice(_arg, _arg$2); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - $24r = _r$24; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: encUint16Array$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r$22, _r$23, _r$24, state, v, $s};return $f; + _r$24 = $clone(v, reflect.Value).Slice(0, $clone(v, reflect.Value).Len()); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _arg$1 = $clone(_r$24, reflect.Value); + _r$25 = encUint16Slice(_arg, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $24r = _r$25; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: encUint16Array$1, $c: true, $r, $24r, _arg, _arg$1, _r$24, _r$25, state, v, $s};return $f; }; encUint16Slice = function encUint16Slice$1(state, v) { - var {_i, _r$22, _ref, _tuple, ok, slice, state, v, x$2, $s, $r, $c} = $restore(this, {state, v}); + var {_i, _r$24, _ref, _tuple, ok, slice, state, v, x, $s, $r, $c} = $restore(this, {state, v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$22 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = $assertType(_r$22, sliceType$10, true); + _r$24 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = $assertType(_r$24, sliceType$11, true); slice = _tuple[0]; ok = _tuple[1]; if (!ok) { @@ -49672,36 +48604,34 @@ $packages["encoding/gob"] = (function() { _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } - x$2 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (!((x$2 === 0)) || state.sendZero) { - state.encodeUint((new $Uint64(0, x$2))); + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!((x === 0)) || state.sendZero) { + state.encodeUint((new $Uint64(0, x))); } _i++; } $s = -1; return true; - /* */ } return; } var $f = {$blk: encUint16Slice$1, $c: true, $r, _i, _r$22, _ref, _tuple, ok, slice, state, v, x$2, $s};return $f; + /* */ } return; } var $f = {$blk: encUint16Slice$1, $c: true, $r, _i, _r$24, _ref, _tuple, ok, slice, state, v, x, $s};return $f; }; encUint32Array = function encUint32Array$1(state, v) { - var {$24r, _arg, _arg$1, _arg$2, _r$22, _r$23, _r$24, state, v, $s, $r, $c} = $restore(this, {state, v}); + var {$24r, _arg, _arg$1, _r$24, _r$25, state, v, $s, $r, $c} = $restore(this, {state, v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if (!$clone(v, reflect.Value).CanAddr()) { $s = -1; return false; } _arg = state; - _r$22 = $clone(v, reflect.Value).Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _arg$1 = _r$22; - _r$23 = $clone(v, reflect.Value).Slice(0, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _arg$2 = $clone(_r$23, reflect.Value); - _r$24 = encUint32Slice(_arg, _arg$2); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - $24r = _r$24; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: encUint32Array$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r$22, _r$23, _r$24, state, v, $s};return $f; + _r$24 = $clone(v, reflect.Value).Slice(0, $clone(v, reflect.Value).Len()); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _arg$1 = $clone(_r$24, reflect.Value); + _r$25 = encUint32Slice(_arg, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $24r = _r$25; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: encUint32Array$1, $c: true, $r, $24r, _arg, _arg$1, _r$24, _r$25, state, v, $s};return $f; }; encUint32Slice = function encUint32Slice$1(state, v) { - var {_i, _r$22, _ref, _tuple, ok, slice, state, v, x$2, $s, $r, $c} = $restore(this, {state, v}); + var {_i, _r$24, _ref, _tuple, ok, slice, state, v, x, $s, $r, $c} = $restore(this, {state, v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$22 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = $assertType(_r$22, sliceType$11, true); + _r$24 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = $assertType(_r$24, sliceType$12, true); slice = _tuple[0]; ok = _tuple[1]; if (!ok) { @@ -49711,36 +48641,34 @@ $packages["encoding/gob"] = (function() { _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } - x$2 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (!((x$2 === 0)) || state.sendZero) { - state.encodeUint((new $Uint64(0, x$2))); + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!((x === 0)) || state.sendZero) { + state.encodeUint((new $Uint64(0, x))); } _i++; } $s = -1; return true; - /* */ } return; } var $f = {$blk: encUint32Slice$1, $c: true, $r, _i, _r$22, _ref, _tuple, ok, slice, state, v, x$2, $s};return $f; + /* */ } return; } var $f = {$blk: encUint32Slice$1, $c: true, $r, _i, _r$24, _ref, _tuple, ok, slice, state, v, x, $s};return $f; }; encUint64Array = function encUint64Array$1(state, v) { - var {$24r, _arg, _arg$1, _arg$2, _r$22, _r$23, _r$24, state, v, $s, $r, $c} = $restore(this, {state, v}); + var {$24r, _arg, _arg$1, _r$24, _r$25, state, v, $s, $r, $c} = $restore(this, {state, v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if (!$clone(v, reflect.Value).CanAddr()) { $s = -1; return false; } _arg = state; - _r$22 = $clone(v, reflect.Value).Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _arg$1 = _r$22; - _r$23 = $clone(v, reflect.Value).Slice(0, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _arg$2 = $clone(_r$23, reflect.Value); - _r$24 = encUint64Slice(_arg, _arg$2); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - $24r = _r$24; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: encUint64Array$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r$22, _r$23, _r$24, state, v, $s};return $f; + _r$24 = $clone(v, reflect.Value).Slice(0, $clone(v, reflect.Value).Len()); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _arg$1 = $clone(_r$24, reflect.Value); + _r$25 = encUint64Slice(_arg, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $24r = _r$25; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: encUint64Array$1, $c: true, $r, $24r, _arg, _arg$1, _r$24, _r$25, state, v, $s};return $f; }; encUint64Slice = function encUint64Slice$1(state, v) { - var {_i, _r$22, _ref, _tuple, ok, slice, state, v, x$2, $s, $r, $c} = $restore(this, {state, v}); + var {_i, _r$24, _ref, _tuple, ok, slice, state, v, x, $s, $r, $c} = $restore(this, {state, v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$22 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = $assertType(_r$22, sliceType$12, true); + _r$24 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = $assertType(_r$24, sliceType$13, true); slice = _tuple[0]; ok = _tuple[1]; if (!ok) { @@ -49750,36 +48678,34 @@ $packages["encoding/gob"] = (function() { _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } - x$2 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (!((x$2.$high === 0 && x$2.$low === 0)) || state.sendZero) { - state.encodeUint(x$2); + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!((x.$high === 0 && x.$low === 0)) || state.sendZero) { + state.encodeUint(x); } _i++; } $s = -1; return true; - /* */ } return; } var $f = {$blk: encUint64Slice$1, $c: true, $r, _i, _r$22, _ref, _tuple, ok, slice, state, v, x$2, $s};return $f; + /* */ } return; } var $f = {$blk: encUint64Slice$1, $c: true, $r, _i, _r$24, _ref, _tuple, ok, slice, state, v, x, $s};return $f; }; encUintptrArray = function encUintptrArray$1(state, v) { - var {$24r, _arg, _arg$1, _arg$2, _r$22, _r$23, _r$24, state, v, $s, $r, $c} = $restore(this, {state, v}); + var {$24r, _arg, _arg$1, _r$24, _r$25, state, v, $s, $r, $c} = $restore(this, {state, v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if (!$clone(v, reflect.Value).CanAddr()) { $s = -1; return false; } _arg = state; - _r$22 = $clone(v, reflect.Value).Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _arg$1 = _r$22; - _r$23 = $clone(v, reflect.Value).Slice(0, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _arg$2 = $clone(_r$23, reflect.Value); - _r$24 = encUintptrSlice(_arg, _arg$2); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - $24r = _r$24; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: encUintptrArray$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r$22, _r$23, _r$24, state, v, $s};return $f; + _r$24 = $clone(v, reflect.Value).Slice(0, $clone(v, reflect.Value).Len()); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _arg$1 = $clone(_r$24, reflect.Value); + _r$25 = encUintptrSlice(_arg, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $24r = _r$25; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: encUintptrArray$1, $c: true, $r, $24r, _arg, _arg$1, _r$24, _r$25, state, v, $s};return $f; }; encUintptrSlice = function encUintptrSlice$1(state, v) { - var {_i, _r$22, _ref, _tuple, ok, slice, state, v, x$2, $s, $r, $c} = $restore(this, {state, v}); + var {_i, _r$24, _ref, _tuple, ok, slice, state, v, x, $s, $r, $c} = $restore(this, {state, v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$22 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = $assertType(_r$22, sliceType$17, true); + _r$24 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = $assertType(_r$24, sliceType$18, true); slice = _tuple[0]; ok = _tuple[1]; if (!ok) { @@ -49789,18 +48715,18 @@ $packages["encoding/gob"] = (function() { _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } - x$2 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (!((x$2 === 0)) || state.sendZero) { - state.encodeUint((new $Uint64(0, x$2.constructor === Number ? x$2 : 1))); + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!((x === 0)) || state.sendZero) { + state.encodeUint((new $Uint64(0, x.constructor === Number ? x : 1))); } _i++; } $s = -1; return true; - /* */ } return; } var $f = {$blk: encUintptrSlice$1, $c: true, $r, _i, _r$22, _ref, _tuple, ok, slice, state, v, x$2, $s};return $f; + /* */ } return; } var $f = {$blk: encUintptrSlice$1, $c: true, $r, _i, _r$24, _ref, _tuple, ok, slice, state, v, x, $s};return $f; }; NewDecoder = function NewDecoder$1(r) { var _tuple, dec, ok, r; - dec = new Decoder.ptr(new nosync.Mutex.ptr(false, false, false, false, 0), $ifaceNil, new decBuffer.ptr(sliceType$1.nil, 0), false, false, false, ptrType$38.nil, sliceType$1.nil, $ifaceNil); + dec = new Decoder.ptr(new nosync.Mutex.ptr(false, false, false, false, 0), $ifaceNil, new decBuffer.ptr(sliceType$2.nil, 0), false, false, false, ptrType$40.nil, sliceType$2.nil, $ifaceNil); _tuple = $assertType(r, io.ByteReader, true); ok = _tuple[1]; if (!ok) { @@ -49810,36 +48736,33 @@ $packages["encoding/gob"] = (function() { dec.wireType = new $global.Map(); dec.decoderCache = new $global.Map(); dec.ignorerCache = new $global.Map(); - dec.countBuf = $makeSlice(sliceType$1, 9); + dec.countBuf = $makeSlice(sliceType$2, 9); return dec; }; $pkg.NewDecoder = NewDecoder; $ptrType(Decoder).prototype.recvType = function recvType(id$1) { - var {_arg, _arg$1, _entry, _key, _r$22, dec, id$1, wire, $s, $r, $c} = $restore(this, {id$1}); + var {_entry, _key, dec, id$1, wire, $s, $r, $c} = $restore(this, {id$1}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: dec = this; - if (id$1 < 64 || !((_entry = $mapIndex(dec.wireType,typeId.keyFor(id$1)), _entry !== undefined ? _entry.v : ptrType$29.nil) === ptrType$29.nil)) { + if (id$1 < 64 || !((_entry = $mapIndex(dec.wireType,typeId.keyFor(id$1)), _entry !== undefined ? _entry.v : ptrType$8.nil) === ptrType$8.nil)) { dec.err = errors.New("gob: duplicate type received"); $s = -1; return; } - wire = new wireType.ptr(ptrType$23.nil, ptrType$24.nil, ptrType$25.nil, ptrType$26.nil, ptrType$27.nil, ptrType$27.nil, ptrType$27.nil); - _arg = tWireType; - _r$22 = reflect.ValueOf(wire); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _arg$1 = $clone(_r$22, reflect.Value); - $r = dec.decodeValue(_arg, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + wire = new wireType.ptr(ptrType$25.nil, ptrType$27.nil, ptrType$28.nil, ptrType$30.nil, ptrType$31.nil, ptrType$31.nil, ptrType$31.nil); + $r = dec.decodeValue(tWireType, $clone(reflect.ValueOf(wire), reflect.Value)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } if (!($interfaceIsEqual(dec.err, $ifaceNil))) { $s = -1; return; } _key = id$1; (dec.wireType || $throwRuntimeError("assignment to entry in nil map")).set(typeId.keyFor(_key), { k: _key, v: wire }); $s = -1; return; - /* */ } return; } var $f = {$blk: recvType, $c: true, $r, _arg, _arg$1, _entry, _key, _r$22, dec, id$1, wire, $s};return $f; + /* */ } return; } var $f = {$blk: recvType, $c: true, $r, _entry, _key, dec, id$1, wire, $s};return $f; }; $ptrType(Decoder).prototype.recvMessage = function recvMessage() { - var {_r$22, _tuple, dec, err, nbytes, $s, $r, $c} = $restore(this, {}); + var {_r$24, _tuple, dec, err, nbytes, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: dec = this; - _r$22 = decodeUintReader(dec.r, dec.countBuf); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = _r$22; + _r$24 = decodeUintReader(dec.r, dec.countBuf); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = _r$24; nbytes = _tuple[0]; err = _tuple[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { @@ -49852,18 +48775,18 @@ $packages["encoding/gob"] = (function() { } $r = dec.readMessage(((nbytes.$low >> 0))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return $interfaceIsEqual(dec.err, $ifaceNil); - /* */ } return; } var $f = {$blk: recvMessage, $c: true, $r, _r$22, _tuple, dec, err, nbytes, $s};return $f; + /* */ } return; } var $f = {$blk: recvMessage, $c: true, $r, _r$24, _tuple, dec, err, nbytes, $s};return $f; }; $ptrType(Decoder).prototype.readMessage = function readMessage(nbytes) { - var {_r$22, _tuple, buf, dec, nbytes, $s, $r, $c} = $restore(this, {nbytes}); + var {_r$24, _tuple, buf, dec, nbytes, $s, $r, $c} = $restore(this, {nbytes}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: dec = this; if (!((dec.buf.Len() === 0))) { $panic(new $String("non-empty decoder buffer")); } - buf = sliceType$1.nil; - _r$22 = saferio.ReadData(dec.r, (new $Uint64(0, nbytes))); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = _r$22; + buf = sliceType$2.nil; + _r$24 = saferio.ReadData(dec.r, (new $Uint64(0, nbytes))); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = _r$24; buf = _tuple[0]; dec.err = _tuple[1]; dec.buf.SetBytes(buf); @@ -49871,46 +48794,46 @@ $packages["encoding/gob"] = (function() { dec.err = io.ErrUnexpectedEOF; } $s = -1; return; - /* */ } return; } var $f = {$blk: readMessage, $c: true, $r, _r$22, _tuple, buf, dec, nbytes, $s};return $f; + /* */ } return; } var $f = {$blk: readMessage, $c: true, $r, _r$24, _tuple, buf, dec, nbytes, $s};return $f; }; - toInt = function toInt$1(x$2) { - var i, x$2, x$3, x$4; - i = ((x$3 = $shiftRightUint64(x$2, 1), new $Int64(x$3.$high, x$3.$low))); - if (!((x$4 = new $Uint64(x$2.$high & 0, (x$2.$low & 1) >>> 0), (x$4.$high === 0 && x$4.$low === 0)))) { + toInt = function toInt$1(x) { + var i, x, x$1, x$2; + i = ((x$1 = $shiftRightUint64(x, 1), new $Int64(x$1.$high, x$1.$low))); + if (!((x$2 = new $Uint64(x.$high & 0, (x.$low & 1) >>> 0), (x$2.$high === 0 && x$2.$low === 0)))) { i = new $Int64(~i.$high, ~i.$low >>> 0); } return i; }; $ptrType(Decoder).prototype.nextInt = function nextInt() { - var {_r$22, _tuple, dec, err, n, $s, $r, $c} = $restore(this, {}); + var {_r$24, _tuple, dec, err, n, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: dec = this; - _r$22 = decodeUintReader(dec.buf, dec.countBuf); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = _r$22; + _r$24 = decodeUintReader(dec.buf, dec.countBuf); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = _r$24; n = _tuple[0]; err = _tuple[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { dec.err = err; } $s = -1; return toInt(n); - /* */ } return; } var $f = {$blk: nextInt, $c: true, $r, _r$22, _tuple, dec, err, n, $s};return $f; + /* */ } return; } var $f = {$blk: nextInt, $c: true, $r, _r$24, _tuple, dec, err, n, $s};return $f; }; $ptrType(Decoder).prototype.nextUint = function nextUint() { - var {_r$22, _tuple, dec, err, n, $s, $r, $c} = $restore(this, {}); + var {_r$24, _tuple, dec, err, n, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: dec = this; - _r$22 = decodeUintReader(dec.buf, dec.countBuf); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = _r$22; + _r$24 = decodeUintReader(dec.buf, dec.countBuf); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = _r$24; n = _tuple[0]; err = _tuple[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { dec.err = err; } $s = -1; return n; - /* */ } return; } var $f = {$blk: nextUint, $c: true, $r, _r$22, _tuple, dec, err, n, $s};return $f; + /* */ } return; } var $f = {$blk: nextUint, $c: true, $r, _r$24, _tuple, dec, err, n, $s};return $f; }; $ptrType(Decoder).prototype.decodeTypeSequence = function decodeTypeSequence(isInterface) { - var {_r$22, _r$23, _r$24, dec, firstMessage, id$1, isInterface, x$2, $s, $r, $c} = $restore(this, {isInterface}); + var {_r$24, _r$25, _r$26, dec, firstMessage, id$1, isInterface, x, $s, $r, $c} = $restore(this, {isInterface}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: dec = this; firstMessage = true; @@ -49919,18 +48842,18 @@ $packages["encoding/gob"] = (function() { /* */ if (dec.buf.Len() === 0) { $s = 3; continue; } /* */ $s = 4; continue; /* if (dec.buf.Len() === 0) { */ case 3: - _r$22 = dec.recvMessage(); /* */ $s = 7; case 7: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - /* */ if (!_r$22) { $s = 5; continue; } + _r$24 = dec.recvMessage(); /* */ $s = 7; case 7: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + /* */ if (!_r$24) { $s = 5; continue; } /* */ $s = 6; continue; - /* if (!_r$22) { */ case 5: + /* if (!_r$24) { */ case 5: if (!firstMessage && $interfaceIsEqual(dec.err, io.EOF)) { dec.err = io.ErrUnexpectedEOF; } /* break; */ $s = 2; continue; /* } */ case 6: /* } */ case 4: - _r$23 = dec.nextInt(); /* */ $s = 8; case 8: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - id$1 = (((x$2 = _r$23, x$2.$low + ((x$2.$high >> 31) * 4294967296)) >> 0)); + _r$25 = dec.nextInt(); /* */ $s = 8; case 8: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + id$1 = (((x = _r$25, x.$low + ((x.$high >> 31) * 4294967296)) >> 0)); if (id$1 >= 0) { $s = -1; return id$1; } @@ -49945,42 +48868,41 @@ $packages["encoding/gob"] = (function() { dec.err = errors.New("extra data in buffer"); /* break; */ $s = 2; continue; } - _r$24 = dec.nextUint(); /* */ $s = 12; case 12: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - _r$24; + _r$26 = dec.nextUint(); /* */ $s = 12; case 12: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + _r$26; /* } */ case 11: firstMessage = false; $s = 1; continue; case 2: $s = -1; return -1; - /* */ } return; } var $f = {$blk: decodeTypeSequence, $c: true, $r, _r$22, _r$23, _r$24, dec, firstMessage, id$1, isInterface, x$2, $s};return $f; + /* */ } return; } var $f = {$blk: decodeTypeSequence, $c: true, $r, _r$24, _r$25, _r$26, dec, firstMessage, id$1, isInterface, x, $s};return $f; }; $ptrType(Decoder).prototype.Decode = function Decode(e) { - var {$24r, $24r$1, _r$22, _r$23, _r$24, _r$25, dec, e, value, $s, $r, $c} = $restore(this, {e}); + var {$24r, $24r$1, _r$24, _r$25, _r$26, dec, e, value, $s, $r, $c} = $restore(this, {e}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: dec = this; /* */ if ($interfaceIsEqual(e, $ifaceNil)) { $s = 1; continue; } /* */ $s = 2; continue; /* if ($interfaceIsEqual(e, $ifaceNil)) { */ case 1: - _r$22 = dec.DecodeValue($clone(new reflect.Value.ptr(ptrType$1.nil, 0, 0), reflect.Value)); /* */ $s = 3; case 3: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - $24r = _r$22; + _r$24 = dec.DecodeValue($clone(new reflect.Value.ptr(ptrType$1.nil, 0, 0), reflect.Value)); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + $24r = _r$24; $s = 4; case 4: return $24r; /* } */ case 2: - _r$23 = reflect.ValueOf(e); /* */ $s = 5; case 5: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - value = _r$23; - _r$24 = $clone(value, reflect.Value).Type().Kind(); /* */ $s = 8; case 8: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - /* */ if (!((_r$24 === 22))) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (!((_r$24 === 22))) { */ case 6: + value = reflect.ValueOf(e); + _r$25 = $clone(value, reflect.Value).Type().Kind(); /* */ $s = 7; case 7: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + /* */ if (!((_r$25 === 22))) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!((_r$25 === 22))) { */ case 5: dec.err = errors.New("gob: attempt to decode into a non-pointer"); $s = -1; return dec.err; - /* } */ case 7: - _r$25 = dec.DecodeValue($clone(value, reflect.Value)); /* */ $s = 9; case 9: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - $24r$1 = _r$25; - $s = 10; case 10: return $24r$1; - /* */ } return; } var $f = {$blk: Decode, $c: true, $r, $24r, $24r$1, _r$22, _r$23, _r$24, _r$25, dec, e, value, $s};return $f; + /* } */ case 6: + _r$26 = dec.DecodeValue($clone(value, reflect.Value)); /* */ $s = 8; case 8: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + $24r$1 = _r$26; + $s = 9; case 9: return $24r$1; + /* */ } return; } var $f = {$blk: Decode, $c: true, $r, $24r, $24r$1, _r$24, _r$25, _r$26, dec, e, value, $s};return $f; }; $ptrType(Decoder).prototype.DecodeValue = function DecodeValue(v) { - var {_r$22, dec, id$1, v, $s, $deferred, $r, $c} = $restore(this, {v}); + var {_r$24, dec, id$1, v, $s, $deferred, $r, $c} = $restore(this, {v}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); dec = this; if ($clone(v, reflect.Value).IsValid()) { @@ -49993,15 +48915,15 @@ $packages["encoding/gob"] = (function() { $deferred.push([$methodVal(dec.mutex, "Unlock"), []]); dec.buf.Reset(); dec.err = $ifaceNil; - _r$22 = dec.decodeTypeSequence(false); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - id$1 = _r$22; + _r$24 = dec.decodeTypeSequence(false); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + id$1 = _r$24; /* */ if ($interfaceIsEqual(dec.err, $ifaceNil)) { $s = 2; continue; } /* */ $s = 3; continue; /* if ($interfaceIsEqual(dec.err, $ifaceNil)) { */ case 2: $r = dec.decodeValue(id$1, $clone(v, reflect.Value)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 3: $s = -1; return dec.err; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: DecodeValue, $c: true, $r, _r$22, dec, id$1, v, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: DecodeValue, $c: true, $r, _r$24, dec, id$1, v, $s, $deferred};return $f; } } }; $ptrType(decBuffer).prototype.Read = function Read(p) { var d, n, p; @@ -50022,12 +48944,12 @@ $packages["encoding/gob"] = (function() { d.offset = d.offset + (n) >> 0; }; $ptrType(decBuffer).prototype.ReadByte = function ReadByte() { - var c, d, x$2, x$3; + var c, d, x, x$1; d = this; if (d.offset >= d.data.$length) { return [0, io.EOF]; } - c = (x$2 = d.data, x$3 = d.offset, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])); + c = (x = d.data, x$1 = d.offset, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); d.offset = d.offset + (1) >> 0; return [c, $ifaceNil]; }; @@ -50057,8 +48979,8 @@ $packages["encoding/gob"] = (function() { var buf, d, dec; dec = this; d = dec.freeList; - if (d === ptrType$38.nil) { - d = new decoderState.ptr(ptrType$39.nil, ptrType$40.nil, 0, ptrType$38.nil); + if (d === ptrType$40.nil) { + d = new decoderState.ptr(ptrType$41.nil, ptrType$42.nil, 0, ptrType$40.nil); d.dec = dec; } else { dec.freeList = d.next; @@ -50077,60 +48999,60 @@ $packages["encoding/gob"] = (function() { return errors.New("value for \"" + name$2 + "\" out of range"); }; decodeUintReader = function decodeUintReader$1(r, buf) { - var {_i, _r$22, _r$23, _ref, _tmp, _tmp$1, _tmp$2, _tuple, _tuple$1, b, b$1, buf, err, n, r, width, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {r, buf}); + var {_i, _r$24, _r$25, _ref, _tmp, _tmp$1, _tmp$2, _tuple, _tuple$1, b, b$1, buf, err, n, r, width, x, x$1, x$2, $s, $r, $c} = $restore(this, {r, buf}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x$2 = new $Uint64(0, 0); + x = new $Uint64(0, 0); width = 0; err = $ifaceNil; width = 1; - _r$22 = io.ReadFull(r, $subslice(buf, 0, width)); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = _r$22; + _r$24 = io.ReadFull(r, $subslice(buf, 0, width)); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = _r$24; n = _tuple[0]; err = _tuple[1]; if (n === 0) { - $s = -1; return [x$2, width, err]; + $s = -1; return [x, width, err]; } b = (0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]); if (b <= 127) { _tmp = (new $Uint64(0, b)); _tmp$1 = width; _tmp$2 = $ifaceNil; - x$2 = _tmp; + x = _tmp; width = _tmp$1; err = _tmp$2; - $s = -1; return [x$2, width, err]; + $s = -1; return [x, width, err]; } n = -((((b << 24 >> 24)) >> 0)); if (n > 8) { err = errBadUint; - $s = -1; return [x$2, width, err]; + $s = -1; return [x, width, err]; } - _r$23 = io.ReadFull(r, $subslice(buf, 0, n)); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _tuple$1 = _r$23; + _r$25 = io.ReadFull(r, $subslice(buf, 0, n)); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _tuple$1 = _r$25; width = _tuple$1[0]; err = _tuple$1[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { if ($interfaceIsEqual(err, io.EOF)) { err = io.ErrUnexpectedEOF; } - $s = -1; return [x$2, width, err]; + $s = -1; return [x, width, err]; } _ref = $subslice(buf, 0, width); _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } b$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - x$2 = (x$3 = $shiftLeft64(x$2, 8), x$4 = (new $Uint64(0, b$1)), new $Uint64(x$3.$high | x$4.$high, (x$3.$low | x$4.$low) >>> 0)); + x = (x$1 = $shiftLeft64(x, 8), x$2 = (new $Uint64(0, b$1)), new $Uint64(x$1.$high | x$2.$high, (x$1.$low | x$2.$low) >>> 0)); _i++; } width = width + (1) >> 0; - $s = -1; return [x$2, width, err]; - /* */ } return; } var $f = {$blk: decodeUintReader$1, $c: true, $r, _i, _r$22, _r$23, _ref, _tmp, _tmp$1, _tmp$2, _tuple, _tuple$1, b, b$1, buf, err, n, r, width, x$2, x$3, x$4, $s};return $f; + $s = -1; return [x, width, err]; + /* */ } return; } var $f = {$blk: decodeUintReader$1, $c: true, $r, _i, _r$24, _r$25, _ref, _tmp, _tmp$1, _tmp$2, _tuple, _tuple$1, b, b$1, buf, err, n, r, width, x, x$1, x$2, $s};return $f; }; $ptrType(decoderState).prototype.decodeUint = function decodeUint() { - var {_i, _ref, _tuple, b, b$1, buf, err, n, state, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {}); + var {_i, _ref, _tuple, b, b$1, buf, err, n, state, x, x$1, x$2, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x$2 = new $Uint64(0, 0); + x = new $Uint64(0, 0); state = this; _tuple = state.b.ReadByte(); b = _tuple[0]; @@ -50139,8 +49061,8 @@ $packages["encoding/gob"] = (function() { error_(err); } if (b <= 127) { - x$2 = (new $Uint64(0, b)); - $s = -1; return x$2; + x = (new $Uint64(0, b)); + $s = -1; return x; } n = -((((b << 24 >> 24)) >> 0)); if (n > 8) { @@ -50150,179 +49072,178 @@ $packages["encoding/gob"] = (function() { /* */ if (buf.$length < n) { $s = 1; continue; } /* */ $s = 2; continue; /* if (buf.$length < n) { */ case 1: - $r = errorf("invalid uint data length %d: exceeds input size %d", new sliceType$2([new $Int(n), new $Int(buf.$length)])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errorf("invalid uint data length %d: exceeds input size %d", new sliceType$3([new $Int(n), new $Int(buf.$length)])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 2: _ref = $subslice(buf, 0, n); _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } b$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - x$2 = (x$3 = $shiftLeft64(x$2, 8), x$4 = (new $Uint64(0, b$1)), new $Uint64(x$3.$high | x$4.$high, (x$3.$low | x$4.$low) >>> 0)); + x = (x$1 = $shiftLeft64(x, 8), x$2 = (new $Uint64(0, b$1)), new $Uint64(x$1.$high | x$2.$high, (x$1.$low | x$2.$low) >>> 0)); _i++; } state.b.Drop(n); - x$2 = x$2; - $s = -1; return x$2; - /* */ } return; } var $f = {$blk: decodeUint, $c: true, $r, _i, _ref, _tuple, b, b$1, buf, err, n, state, x$2, x$3, x$4, $s};return $f; + x = x; + $s = -1; return x; + /* */ } return; } var $f = {$blk: decodeUint, $c: true, $r, _i, _ref, _tuple, b, b$1, buf, err, n, state, x, x$1, x$2, $s};return $f; }; $ptrType(decoderState).prototype.decodeInt = function decodeInt() { - var {_r$22, state, x$2, x$3, x$4, x$5, x$6, $s, $r, $c} = $restore(this, {}); + var {_r$24, state, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: state = this; - _r$22 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - x$2 = _r$22; - if (!((x$3 = new $Uint64(x$2.$high & 0, (x$2.$low & 1) >>> 0), (x$3.$high === 0 && x$3.$low === 0)))) { - $s = -1; return (x$4 = ((x$5 = $shiftRightUint64(x$2, 1), new $Int64(x$5.$high, x$5.$low))), new $Int64(~x$4.$high, ~x$4.$low >>> 0)); + _r$24 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + x = _r$24; + if (!((x$1 = new $Uint64(x.$high & 0, (x.$low & 1) >>> 0), (x$1.$high === 0 && x$1.$low === 0)))) { + $s = -1; return (x$2 = ((x$3 = $shiftRightUint64(x, 1), new $Int64(x$3.$high, x$3.$low))), new $Int64(~x$2.$high, ~x$2.$low >>> 0)); } - $s = -1; return ((x$6 = $shiftRightUint64(x$2, 1), new $Int64(x$6.$high, x$6.$low))); - /* */ } return; } var $f = {$blk: decodeInt, $c: true, $r, _r$22, state, x$2, x$3, x$4, x$5, x$6, $s};return $f; + $s = -1; return ((x$4 = $shiftRightUint64(x, 1), new $Int64(x$4.$high, x$4.$low))); + /* */ } return; } var $f = {$blk: decodeInt, $c: true, $r, _r$24, state, x, x$1, x$2, x$3, x$4, $s};return $f; }; $ptrType(decoderState).prototype.getLength = function getLength() { - var {_r$22, n, state, $s, $r, $c} = $restore(this, {}); + var {_r$24, n, state, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: state = this; - _r$22 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - n = ((_r$22.$low >> 0)); + _r$24 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + n = ((_r$24.$low >> 0)); if (n < 0 || state.b.Len() < n || 1073741824 <= n) { $s = -1; return [0, false]; } $s = -1; return [n, true]; - /* */ } return; } var $f = {$blk: getLength, $c: true, $r, _r$22, n, state, $s};return $f; + /* */ } return; } var $f = {$blk: getLength, $c: true, $r, _r$24, n, state, $s};return $f; }; ignoreUint = function ignoreUint$1(i, state, v) { - var {_r$22, i, state, v, $s, $r, $c} = $restore(this, {i, state, v}); + var {_r$24, i, state, v, $s, $r, $c} = $restore(this, {i, state, v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$22 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _r$22; + _r$24 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _r$24; $s = -1; return; - /* */ } return; } var $f = {$blk: ignoreUint$1, $c: true, $r, _r$22, i, state, v, $s};return $f; + /* */ } return; } var $f = {$blk: ignoreUint$1, $c: true, $r, _r$24, i, state, v, $s};return $f; }; ignoreTwoUints = function ignoreTwoUints$1(i, state, v) { - var {_r$22, _r$23, i, state, v, $s, $r, $c} = $restore(this, {i, state, v}); + var {_r$24, _r$25, i, state, v, $s, $r, $c} = $restore(this, {i, state, v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$22 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _r$22; - _r$23 = state.decodeUint(); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _r$23; + _r$24 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _r$24; + _r$25 = state.decodeUint(); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _r$25; $s = -1; return; - /* */ } return; } var $f = {$blk: ignoreTwoUints$1, $c: true, $r, _r$22, _r$23, i, state, v, $s};return $f; + /* */ } return; } var $f = {$blk: ignoreTwoUints$1, $c: true, $r, _r$24, _r$25, i, state, v, $s};return $f; }; decAlloc = function decAlloc$1(v) { - var {_r$22, _r$23, _r$24, v, $s, $r, $c} = $restore(this, {v}); + var {_r$24, _r$25, v, $s, $r, $c} = $restore(this, {v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: /* while (true) { */ case 1: /* if (!($clone(v, reflect.Value).Kind() === 22)) { break; } */ if(!($clone(v, reflect.Value).Kind() === 22)) { $s = 2; continue; } /* */ if ($clone(v, reflect.Value).IsNil()) { $s = 3; continue; } /* */ $s = 4; continue; /* if ($clone(v, reflect.Value).IsNil()) { */ case 3: - _r$22 = $clone(v, reflect.Value).Type().Elem(); /* */ $s = 5; case 5: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _r$23 = reflect.New(_r$22); /* */ $s = 6; case 6: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - $r = $clone(v, reflect.Value).Set($clone(_r$23, reflect.Value)); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$24 = $clone(v, reflect.Value).Type().Elem(); /* */ $s = 5; case 5: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _r$25 = reflect.New(_r$24); /* */ $s = 6; case 6: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $r = $clone(v, reflect.Value).Set($clone(_r$25, reflect.Value)); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 4: - _r$24 = $clone(v, reflect.Value).Elem(); /* */ $s = 8; case 8: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - v = _r$24; + v = $clone(v, reflect.Value).Elem(); $s = 1; continue; case 2: $s = -1; return v; - /* */ } return; } var $f = {$blk: decAlloc$1, $c: true, $r, _r$22, _r$23, _r$24, v, $s};return $f; + /* */ } return; } var $f = {$blk: decAlloc$1, $c: true, $r, _r$24, _r$25, v, $s};return $f; }; decBool = function decBool$1(i, state, value) { - var {_r$22, i, state, value, x$2, $s, $r, $c} = $restore(this, {i, state, value}); + var {_r$24, i, state, value, x, $s, $r, $c} = $restore(this, {i, state, value}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$22 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - $r = $clone(value, reflect.Value).SetBool(!((x$2 = _r$22, (x$2.$high === 0 && x$2.$low === 0)))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$24 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + $r = $clone(value, reflect.Value).SetBool(!((x = _r$24, (x.$high === 0 && x.$low === 0)))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } var $f = {$blk: decBool$1, $c: true, $r, _r$22, i, state, value, x$2, $s};return $f; + /* */ } return; } var $f = {$blk: decBool$1, $c: true, $r, _r$24, i, state, value, x, $s};return $f; }; decInt8 = function decInt8$1(i, state, value) { - var {_r$22, i, state, v, value, $s, $r, $c} = $restore(this, {i, state, value}); + var {_r$24, i, state, v, value, $s, $r, $c} = $restore(this, {i, state, value}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$22 = state.decodeInt(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - v = _r$22; + _r$24 = state.decodeInt(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + v = _r$24; if ((v.$high < -1 || (v.$high === -1 && v.$low < 4294967168)) || (0 < v.$high || (0 === v.$high && 127 < v.$low))) { error_(i.ovfl); } $clone(value, reflect.Value).SetInt(v); $s = -1; return; - /* */ } return; } var $f = {$blk: decInt8$1, $c: true, $r, _r$22, i, state, v, value, $s};return $f; + /* */ } return; } var $f = {$blk: decInt8$1, $c: true, $r, _r$24, i, state, v, value, $s};return $f; }; decUint8 = function decUint8$1(i, state, value) { - var {_r$22, i, state, v, value, $s, $r, $c} = $restore(this, {i, state, value}); + var {_r$24, i, state, v, value, $s, $r, $c} = $restore(this, {i, state, value}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$22 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - v = _r$22; + _r$24 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + v = _r$24; if ((0 < v.$high || (0 === v.$high && 255 < v.$low))) { error_(i.ovfl); } $clone(value, reflect.Value).SetUint(v); $s = -1; return; - /* */ } return; } var $f = {$blk: decUint8$1, $c: true, $r, _r$22, i, state, v, value, $s};return $f; + /* */ } return; } var $f = {$blk: decUint8$1, $c: true, $r, _r$24, i, state, v, value, $s};return $f; }; decInt16 = function decInt16$1(i, state, value) { - var {_r$22, i, state, v, value, $s, $r, $c} = $restore(this, {i, state, value}); + var {_r$24, i, state, v, value, $s, $r, $c} = $restore(this, {i, state, value}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$22 = state.decodeInt(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - v = _r$22; + _r$24 = state.decodeInt(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + v = _r$24; if ((v.$high < -1 || (v.$high === -1 && v.$low < 4294934528)) || (0 < v.$high || (0 === v.$high && 32767 < v.$low))) { error_(i.ovfl); } $clone(value, reflect.Value).SetInt(v); $s = -1; return; - /* */ } return; } var $f = {$blk: decInt16$1, $c: true, $r, _r$22, i, state, v, value, $s};return $f; + /* */ } return; } var $f = {$blk: decInt16$1, $c: true, $r, _r$24, i, state, v, value, $s};return $f; }; decUint16 = function decUint16$1(i, state, value) { - var {_r$22, i, state, v, value, $s, $r, $c} = $restore(this, {i, state, value}); + var {_r$24, i, state, v, value, $s, $r, $c} = $restore(this, {i, state, value}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$22 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - v = _r$22; + _r$24 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + v = _r$24; if ((0 < v.$high || (0 === v.$high && 65535 < v.$low))) { error_(i.ovfl); } $clone(value, reflect.Value).SetUint(v); $s = -1; return; - /* */ } return; } var $f = {$blk: decUint16$1, $c: true, $r, _r$22, i, state, v, value, $s};return $f; + /* */ } return; } var $f = {$blk: decUint16$1, $c: true, $r, _r$24, i, state, v, value, $s};return $f; }; decInt32 = function decInt32$1(i, state, value) { - var {_r$22, i, state, v, value, $s, $r, $c} = $restore(this, {i, state, value}); + var {_r$24, i, state, v, value, $s, $r, $c} = $restore(this, {i, state, value}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$22 = state.decodeInt(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - v = _r$22; + _r$24 = state.decodeInt(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + v = _r$24; if ((v.$high < -1 || (v.$high === -1 && v.$low < 2147483648)) || (0 < v.$high || (0 === v.$high && 2147483647 < v.$low))) { error_(i.ovfl); } $clone(value, reflect.Value).SetInt(v); $s = -1; return; - /* */ } return; } var $f = {$blk: decInt32$1, $c: true, $r, _r$22, i, state, v, value, $s};return $f; + /* */ } return; } var $f = {$blk: decInt32$1, $c: true, $r, _r$24, i, state, v, value, $s};return $f; }; decUint32 = function decUint32$1(i, state, value) { - var {_r$22, i, state, v, value, $s, $r, $c} = $restore(this, {i, state, value}); + var {_r$24, i, state, v, value, $s, $r, $c} = $restore(this, {i, state, value}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$22 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - v = _r$22; + _r$24 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + v = _r$24; if ((0 < v.$high || (0 === v.$high && 4294967295 < v.$low))) { error_(i.ovfl); } $clone(value, reflect.Value).SetUint(v); $s = -1; return; - /* */ } return; } var $f = {$blk: decUint32$1, $c: true, $r, _r$22, i, state, v, value, $s};return $f; + /* */ } return; } var $f = {$blk: decUint32$1, $c: true, $r, _r$24, i, state, v, value, $s};return $f; }; decInt64 = function decInt64$1(i, state, value) { - var {_r$22, i, state, v, value, $s, $r, $c} = $restore(this, {i, state, value}); + var {_r$24, i, state, v, value, $s, $r, $c} = $restore(this, {i, state, value}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$22 = state.decodeInt(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - v = _r$22; + _r$24 = state.decodeInt(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + v = _r$24; $clone(value, reflect.Value).SetInt(v); $s = -1; return; - /* */ } return; } var $f = {$blk: decInt64$1, $c: true, $r, _r$22, i, state, v, value, $s};return $f; + /* */ } return; } var $f = {$blk: decInt64$1, $c: true, $r, _r$24, i, state, v, value, $s};return $f; }; decUint64 = function decUint64$1(i, state, value) { - var {_r$22, i, state, v, value, $s, $r, $c} = $restore(this, {i, state, value}); + var {_r$24, i, state, v, value, $s, $r, $c} = $restore(this, {i, state, value}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$22 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - v = _r$22; + _r$24 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + v = _r$24; $clone(value, reflect.Value).SetUint(v); $s = -1; return; - /* */ } return; } var $f = {$blk: decUint64$1, $c: true, $r, _r$22, i, state, v, value, $s};return $f; + /* */ } return; } var $f = {$blk: decUint64$1, $c: true, $r, _r$24, i, state, v, value, $s};return $f; }; float64FromBits = function float64FromBits$1(u) { var u, v; @@ -50342,190 +49263,177 @@ $packages["encoding/gob"] = (function() { return v; }; decFloat32 = function decFloat32$1(i, state, value) { - var {_r$22, _r$23, i, state, value, $s, $r, $c} = $restore(this, {i, state, value}); + var {_r$24, _r$25, i, state, value, $s, $r, $c} = $restore(this, {i, state, value}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$22 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _r$23 = float32FromBits(_r$22, i.ovfl); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - $r = $clone(value, reflect.Value).SetFloat(_r$23); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$24 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _r$25 = float32FromBits(_r$24, i.ovfl); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $r = $clone(value, reflect.Value).SetFloat(_r$25); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } var $f = {$blk: decFloat32$1, $c: true, $r, _r$22, _r$23, i, state, value, $s};return $f; + /* */ } return; } var $f = {$blk: decFloat32$1, $c: true, $r, _r$24, _r$25, i, state, value, $s};return $f; }; decFloat64 = function decFloat64$1(i, state, value) { - var {_r$22, _r$23, i, state, value, $s, $r, $c} = $restore(this, {i, state, value}); + var {_r$24, _r$25, i, state, value, $s, $r, $c} = $restore(this, {i, state, value}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$22 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _r$23 = float64FromBits(_r$22); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - $r = $clone(value, reflect.Value).SetFloat(_r$23); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$24 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _r$25 = float64FromBits(_r$24); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $r = $clone(value, reflect.Value).SetFloat(_r$25); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } var $f = {$blk: decFloat64$1, $c: true, $r, _r$22, _r$23, i, state, value, $s};return $f; + /* */ } return; } var $f = {$blk: decFloat64$1, $c: true, $r, _r$24, _r$25, i, state, value, $s};return $f; }; decComplex64 = function decComplex64$1(i, state, value) { - var {_r$22, _r$23, _r$24, _r$25, i, imag, real, state, value, $s, $r, $c} = $restore(this, {i, state, value}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$22 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _r$23 = float32FromBits(_r$22, i.ovfl); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - real = _r$23; - _r$24 = state.decodeUint(); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - _r$25 = float32FromBits(_r$24, i.ovfl); /* */ $s = 4; case 4: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - imag = _r$25; + var {_r$24, _r$25, _r$26, _r$27, i, imag, real, state, value, $s, $r, $c} = $restore(this, {i, state, value}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$24 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _r$25 = float32FromBits(_r$24, i.ovfl); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + real = _r$25; + _r$26 = state.decodeUint(); /* */ $s = 3; case 3: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + _r$27 = float32FromBits(_r$26, i.ovfl); /* */ $s = 4; case 4: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + imag = _r$27; $clone(value, reflect.Value).SetComplex(new $Complex128(real, imag)); $s = -1; return; - /* */ } return; } var $f = {$blk: decComplex64$1, $c: true, $r, _r$22, _r$23, _r$24, _r$25, i, imag, real, state, value, $s};return $f; + /* */ } return; } var $f = {$blk: decComplex64$1, $c: true, $r, _r$24, _r$25, _r$26, _r$27, i, imag, real, state, value, $s};return $f; }; decComplex128 = function decComplex128$1(i, state, value) { - var {_r$22, _r$23, _r$24, _r$25, i, imag, real, state, value, $s, $r, $c} = $restore(this, {i, state, value}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$22 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _r$23 = float64FromBits(_r$22); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - real = _r$23; - _r$24 = state.decodeUint(); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - _r$25 = float64FromBits(_r$24); /* */ $s = 4; case 4: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - imag = _r$25; + var {_r$24, _r$25, _r$26, _r$27, i, imag, real, state, value, $s, $r, $c} = $restore(this, {i, state, value}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$24 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _r$25 = float64FromBits(_r$24); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + real = _r$25; + _r$26 = state.decodeUint(); /* */ $s = 3; case 3: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + _r$27 = float64FromBits(_r$26); /* */ $s = 4; case 4: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + imag = _r$27; $clone(value, reflect.Value).SetComplex(new $Complex128(real, imag)); $s = -1; return; - /* */ } return; } var $f = {$blk: decComplex128$1, $c: true, $r, _r$22, _r$23, _r$24, _r$25, i, imag, real, state, value, $s};return $f; + /* */ } return; } var $f = {$blk: decComplex128$1, $c: true, $r, _r$24, _r$25, _r$26, _r$27, i, imag, real, state, value, $s};return $f; }; decUint8Slice = function decUint8Slice$1(i, state, value) { - var {_arg, _arg$1, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _r$32, _r$33, _r$34, _tuple, _tuple$1, _tuple$2, err, err$1, i, i$1, ln, n, ok, safe, state, sub, value, $s, $r, $c} = $restore(this, {i, state, value}); + var {_r$24, _r$25, _r$26, _r$27, _tuple, _tuple$1, _tuple$2, err, err$1, i, i$1, ln, n, ok, safe, state, sub, value, $s, $r, $c} = $restore(this, {i, state, value}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$22 = state.getLength(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = _r$22; + _r$24 = state.getLength(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = _r$24; n = _tuple[0]; ok = _tuple[1]; /* */ if (!ok) { $s = 2; continue; } /* */ $s = 3; continue; /* if (!ok) { */ case 2: - $r = errorf("bad %s slice length: %d", new sliceType$2([$clone(value, reflect.Value).Type(), new $Int(n)])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errorf("bad %s slice length: %d", new sliceType$3([$clone(value, reflect.Value).Type(), new $Int(n)])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 3: - _r$23 = $clone(value, reflect.Value).Cap(); /* */ $s = 8; case 8: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - /* */ if (_r$23 < n) { $s = 5; continue; } + /* */ if ($clone(value, reflect.Value).Cap() < n) { $s = 5; continue; } /* */ $s = 6; continue; - /* if (_r$23 < n) { */ case 5: - _r$24 = saferio.SliceCap((ptrType$41.nil), (new $Uint64(0, n))); /* */ $s = 9; case 9: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - safe = _r$24; - /* */ if (safe < 0) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (safe < 0) { */ case 10: - $r = errorf("%s slice too big: %d elements", new sliceType$2([$clone(value, reflect.Value).Type(), new $Int(n)])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 11: - _r$25 = reflect.MakeSlice($clone(value, reflect.Value).Type(), safe, safe); /* */ $s = 13; case 13: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - $r = $clone(value, reflect.Value).Set($clone(_r$25, reflect.Value)); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* if ($clone(value, reflect.Value).Cap() < n) { */ case 5: + _r$25 = saferio.SliceCap((ptrType$43.nil), (new $Uint64(0, n))); /* */ $s = 8; case 8: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + safe = _r$25; + /* */ if (safe < 0) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (safe < 0) { */ case 9: + $r = errorf("%s slice too big: %d elements", new sliceType$3([$clone(value, reflect.Value).Type(), new $Int(n)])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 10: + _r$26 = reflect.MakeSlice($clone(value, reflect.Value).Type(), safe, safe); /* */ $s = 12; case 12: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + $r = $clone(value, reflect.Value).Set($clone(_r$26, reflect.Value)); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } ln = safe; i$1 = 0; - /* while (true) { */ case 15: - /* if (!(i$1 < n)) { break; } */ if(!(i$1 < n)) { $s = 16; continue; } - /* */ if (i$1 >= ln) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (i$1 >= ln) { */ case 17: - _arg = $clone(value, reflect.Value); - _r$26 = $clone(value, reflect.Value).Type().Elem(); /* */ $s = 19; case 19: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - _r$27 = reflect.Zero(_r$26); /* */ $s = 20; case 20: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - _arg$1 = $clone(_r$27, reflect.Value); - _r$28 = reflect.Append(_arg, new sliceType$22([_arg$1])); /* */ $s = 21; case 21: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - $r = $clone(value, reflect.Value).Set($clone(_r$28, reflect.Value)); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 18: - _r$29 = $clone(value, reflect.Value).Cap(); /* */ $s = 23; case 23: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } - ln = _r$29; + /* while (true) { */ case 14: + /* if (!(i$1 < n)) { break; } */ if(!(i$1 < n)) { $s = 15; continue; } + if (i$1 >= ln) { + $clone(value, reflect.Value).Grow(1); + } + ln = $clone(value, reflect.Value).Cap(); if (ln > n) { ln = n; } $clone(value, reflect.Value).SetLen(ln); - _r$30 = $clone(value, reflect.Value).Slice(i$1, ln); /* */ $s = 24; case 24: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } - sub = _r$30; - _r$31 = $clone(sub, reflect.Value).Bytes(); /* */ $s = 25; case 25: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } - _r$32 = state.b.Read(_r$31); /* */ $s = 26; case 26: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } - _tuple$1 = _r$32; + _r$27 = $clone(value, reflect.Value).Slice(i$1, ln); /* */ $s = 16; case 16: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + sub = _r$27; + _tuple$1 = state.b.Read($clone(sub, reflect.Value).Bytes()); err = _tuple$1[1]; - /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 27; continue; } - /* */ $s = 28; continue; - /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 27: - $r = errorf("error decoding []byte at %d: %s", new sliceType$2([err, new $Int(i$1)])); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 28: + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 17: + $r = errorf("error decoding []byte at %d: %s", new sliceType$3([err, new $Int(i$1)])); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 18: i$1 = ln; - $s = 15; continue; - case 16: + $s = 14; continue; + case 15: $s = 7; continue; /* } else { */ case 6: $clone(value, reflect.Value).SetLen(n); - _r$33 = $clone(value, reflect.Value).Bytes(); /* */ $s = 30; case 30: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } - _r$34 = state.b.Read(_r$33); /* */ $s = 31; case 31: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } - _tuple$2 = _r$34; + _tuple$2 = state.b.Read($clone(value, reflect.Value).Bytes()); err$1 = _tuple$2[1]; - /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 32; continue; } - /* */ $s = 33; continue; - /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 32: - $r = errorf("error decoding []byte: %s", new sliceType$2([err$1])); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 33: + /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 20: + $r = errorf("error decoding []byte: %s", new sliceType$3([err$1])); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 21: /* } */ case 7: $s = -1; return; - /* */ } return; } var $f = {$blk: decUint8Slice$1, $c: true, $r, _arg, _arg$1, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _r$32, _r$33, _r$34, _tuple, _tuple$1, _tuple$2, err, err$1, i, i$1, ln, n, ok, safe, state, sub, value, $s};return $f; + /* */ } return; } var $f = {$blk: decUint8Slice$1, $c: true, $r, _r$24, _r$25, _r$26, _r$27, _tuple, _tuple$1, _tuple$2, err, err$1, i, i$1, ln, n, ok, safe, state, sub, value, $s};return $f; }; decString = function decString$1(i, state, value) { - var {_r$22, _tuple, data, i, n, ok, s, state, value, $s, $r, $c} = $restore(this, {i, state, value}); + var {_r$24, _tuple, data, i, n, ok, s, state, value, $s, $r, $c} = $restore(this, {i, state, value}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$22 = state.getLength(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = _r$22; + _r$24 = state.getLength(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = _r$24; n = _tuple[0]; ok = _tuple[1]; /* */ if (!ok) { $s = 2; continue; } /* */ $s = 3; continue; /* if (!ok) { */ case 2: - $r = errorf("bad %s slice length: %d", new sliceType$2([$clone(value, reflect.Value).Type(), new $Int(n)])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errorf("bad %s slice length: %d", new sliceType$3([$clone(value, reflect.Value).Type(), new $Int(n)])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 3: data = state.b.Bytes(); /* */ if (data.$length < n) { $s = 5; continue; } /* */ $s = 6; continue; /* if (data.$length < n) { */ case 5: - $r = errorf("invalid string length %d: exceeds input size %d", new sliceType$2([new $Int(n), new $Int(data.$length)])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errorf("invalid string length %d: exceeds input size %d", new sliceType$3([new $Int(n), new $Int(data.$length)])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 6: s = ($bytesToString($subslice(data, 0, n))); state.b.Drop(n); $clone(value, reflect.Value).SetString(s); $s = -1; return; - /* */ } return; } var $f = {$blk: decString$1, $c: true, $r, _r$22, _tuple, data, i, n, ok, s, state, value, $s};return $f; + /* */ } return; } var $f = {$blk: decString$1, $c: true, $r, _r$24, _tuple, data, i, n, ok, s, state, value, $s};return $f; }; ignoreUint8Array = function ignoreUint8Array$1(i, state, value) { - var {_r$22, _tuple, bn, i, n, ok, state, value, $s, $r, $c} = $restore(this, {i, state, value}); + var {_r$24, _tuple, bn, i, n, ok, state, value, $s, $r, $c} = $restore(this, {i, state, value}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$22 = state.getLength(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = _r$22; + _r$24 = state.getLength(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = _r$24; n = _tuple[0]; ok = _tuple[1]; /* */ if (!ok) { $s = 2; continue; } /* */ $s = 3; continue; /* if (!ok) { */ case 2: - $r = errorf("slice length too large", sliceType$2.nil); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errorf("slice length too large", sliceType$3.nil); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 3: bn = state.b.Len(); /* */ if (bn < n) { $s = 5; continue; } /* */ $s = 6; continue; /* if (bn < n) { */ case 5: - $r = errorf("invalid slice length %d: exceeds input size %d", new sliceType$2([new $Int(n), new $Int(bn)])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errorf("invalid slice length %d: exceeds input size %d", new sliceType$3([new $Int(n), new $Int(bn)])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 6: state.b.Drop(n); $s = -1; return; - /* */ } return; } var $f = {$blk: ignoreUint8Array$1, $c: true, $r, _r$22, _tuple, bn, i, n, ok, state, value, $s};return $f; + /* */ } return; } var $f = {$blk: ignoreUint8Array$1, $c: true, $r, _r$24, _tuple, bn, i, n, ok, state, value, $s};return $f; }; $ptrType(Decoder).prototype.decodeSingle = function decodeSingle(engine, value) { - var {_r$22, dec, engine, instr, state, value, x$2, x$3, $s, $deferred, $r, $c} = $restore(this, {engine, value}); + var {_r$24, dec, engine, instr, state, value, x, x$1, $s, $deferred, $r, $c} = $restore(this, {engine, value}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); dec = this; state = dec.newDecoderState(dec.buf); $deferred.push([$methodVal(dec, "freeDecoderState"), [state]]); state.fieldnum = 0; - _r$22 = state.decodeUint(); /* */ $s = 3; case 3: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - /* */ if (!((x$2 = _r$22, (x$2.$high === 0 && x$2.$low === 0)))) { $s = 1; continue; } + _r$24 = state.decodeUint(); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + /* */ if (!((x = _r$24, (x.$high === 0 && x.$low === 0)))) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (!((x$2 = _r$22, (x$2.$high === 0 && x$2.$low === 0)))) { */ case 1: - $r = errorf("decode: corrupted data: non-zero delta for singleton", sliceType$2.nil); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* if (!((x = _r$24, (x.$high === 0 && x.$low === 0)))) { */ case 1: + $r = errorf("decode: corrupted data: non-zero delta for singleton", sliceType$3.nil); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 2: - instr = (x$3 = engine.instr, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])); + instr = (x$1 = engine.instr, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + 0, ptrType$44))); $r = instr.op(instr, state, $clone(value, reflect.Value)); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: decodeSingle, $c: true, $r, _r$22, dec, engine, instr, state, value, x$2, x$3, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: decodeSingle, $c: true, $r, _r$24, dec, engine, instr, state, value, x, x$1, $s, $deferred};return $f; } } }; $ptrType(Decoder).prototype.decodeStruct = function decodeStruct(engine, value) { - var {_r$22, _r$23, _r$24, dec, delta, engine, field, fieldnum, instr, state, value, x$2, $s, $deferred, $r, $c} = $restore(this, {engine, value}); + var {_r$24, _r$25, dec, delta, engine, field, fieldnum, instr, state, value, x, $s, $deferred, $r, $c} = $restore(this, {engine, value}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); dec = this; state = dec.newDecoderState(dec.buf); @@ -50533,12 +49441,12 @@ $packages["encoding/gob"] = (function() { state.fieldnum = -1; /* while (true) { */ case 1: /* if (!(state.b.Len() > 0)) { break; } */ if(!(state.b.Len() > 0)) { $s = 2; continue; } - _r$22 = state.decodeUint(); /* */ $s = 3; case 3: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - delta = ((_r$22.$low >> 0)); + _r$24 = state.decodeUint(); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + delta = ((_r$24.$low >> 0)); /* */ if (delta < 0) { $s = 4; continue; } /* */ $s = 5; continue; /* if (delta < 0) { */ case 4: - $r = errorf("decode: corrupted data: negative delta", sliceType$2.nil); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errorf("decode: corrupted data: negative delta", sliceType$3.nil); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 5: if (delta === 0) { /* break; */ $s = 2; continue; @@ -50547,29 +49455,28 @@ $packages["encoding/gob"] = (function() { error_(errRange); } fieldnum = state.fieldnum + delta >> 0; - instr = (x$2 = engine.instr, ((fieldnum < 0 || fieldnum >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + fieldnum])); + instr = (x = engine.instr, ((fieldnum < 0 || fieldnum >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + fieldnum, ptrType$44))); field = new reflect.Value.ptr(ptrType$1.nil, 0, 0); - /* */ if (!(instr.index === sliceType$4.nil)) { $s = 7; continue; } + /* */ if (!(instr.index === sliceType$5.nil)) { $s = 7; continue; } /* */ $s = 8; continue; - /* if (!(instr.index === sliceType$4.nil)) { */ case 7: - _r$23 = $clone(value, reflect.Value).FieldByIndex(instr.index); /* */ $s = 9; case 9: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - field = _r$23; - /* */ if ($clone(field, reflect.Value).Kind() === 22) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if ($clone(field, reflect.Value).Kind() === 22) { */ case 10: - _r$24 = decAlloc($clone(field, reflect.Value)); /* */ $s = 12; case 12: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - field = _r$24; - /* } */ case 11: + /* if (!(instr.index === sliceType$5.nil)) { */ case 7: + field = $clone(value, reflect.Value).FieldByIndex(instr.index); + /* */ if ($clone(field, reflect.Value).Kind() === 22) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if ($clone(field, reflect.Value).Kind() === 22) { */ case 9: + _r$25 = decAlloc($clone(field, reflect.Value)); /* */ $s = 11; case 11: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + field = _r$25; + /* } */ case 10: /* } */ case 8: - $r = instr.op(instr, state, $clone(field, reflect.Value)); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = instr.op(instr, state, $clone(field, reflect.Value)); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } state.fieldnum = fieldnum; $s = 1; continue; case 2: $s = -1; return; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: decodeStruct, $c: true, $r, _r$22, _r$23, _r$24, dec, delta, engine, field, fieldnum, instr, state, value, x$2, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: decodeStruct, $c: true, $r, _r$24, _r$25, dec, delta, engine, field, fieldnum, instr, state, value, x, $s, $deferred};return $f; } } }; $ptrType(Decoder).prototype.ignoreStruct = function ignoreStruct(engine) { - var {_r$22, dec, delta, engine, fieldnum, instr, state, x$2, $s, $deferred, $r, $c} = $restore(this, {engine}); + var {_r$24, dec, delta, engine, fieldnum, instr, state, x, $s, $deferred, $r, $c} = $restore(this, {engine}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); dec = this; state = dec.newDecoderState(dec.buf); @@ -50577,12 +49484,12 @@ $packages["encoding/gob"] = (function() { state.fieldnum = -1; /* while (true) { */ case 1: /* if (!(state.b.Len() > 0)) { break; } */ if(!(state.b.Len() > 0)) { $s = 2; continue; } - _r$22 = state.decodeUint(); /* */ $s = 3; case 3: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - delta = ((_r$22.$low >> 0)); + _r$24 = state.decodeUint(); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + delta = ((_r$24.$low >> 0)); /* */ if (delta < 0) { $s = 4; continue; } /* */ $s = 5; continue; /* if (delta < 0) { */ case 4: - $r = errorf("ignore decode: corrupted data: negative delta", sliceType$2.nil); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errorf("ignore decode: corrupted data: negative delta", sliceType$3.nil); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 5: if (delta === 0) { /* break; */ $s = 2; continue; @@ -50591,194 +49498,164 @@ $packages["encoding/gob"] = (function() { if (fieldnum >= engine.instr.$length) { error_(errRange); } - instr = (x$2 = engine.instr, ((fieldnum < 0 || fieldnum >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + fieldnum])); + instr = (x = engine.instr, ((fieldnum < 0 || fieldnum >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + fieldnum, ptrType$44))); $r = instr.op(instr, state, $clone(noValue, reflect.Value)); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } state.fieldnum = fieldnum; $s = 1; continue; case 2: $s = -1; return; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: ignoreStruct, $c: true, $r, _r$22, dec, delta, engine, fieldnum, instr, state, x$2, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: ignoreStruct, $c: true, $r, _r$24, dec, delta, engine, fieldnum, instr, state, x, $s, $deferred};return $f; } } }; $ptrType(Decoder).prototype.ignoreSingle = function ignoreSingle(engine) { - var {_r$22, dec, delta, engine, instr, state, x$2, $s, $deferred, $r, $c} = $restore(this, {engine}); + var {_r$24, dec, delta, engine, instr, state, x, $s, $deferred, $r, $c} = $restore(this, {engine}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); dec = this; state = dec.newDecoderState(dec.buf); $deferred.push([$methodVal(dec, "freeDecoderState"), [state]]); state.fieldnum = 0; - _r$22 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - delta = ((_r$22.$low >> 0)); + _r$24 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + delta = ((_r$24.$low >> 0)); /* */ if (!((delta === 0))) { $s = 2; continue; } /* */ $s = 3; continue; /* if (!((delta === 0))) { */ case 2: - $r = errorf("decode: corrupted data: non-zero delta for singleton", sliceType$2.nil); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errorf("decode: corrupted data: non-zero delta for singleton", sliceType$3.nil); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 3: - instr = (x$2 = engine.instr, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])); + instr = (x = engine.instr, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + 0, ptrType$44))); $r = instr.op(instr, state, $clone(noValue, reflect.Value)); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: ignoreSingle, $c: true, $r, _r$22, dec, delta, engine, instr, state, x$2, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: ignoreSingle, $c: true, $r, _r$24, dec, delta, engine, instr, state, x, $s, $deferred};return $f; } } }; $ptrType(Decoder).prototype.decodeArrayHelper = function decodeArrayHelper(state, value, elemOp, length, ovfl, helper) { - var {_arg, _arg$1, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _v, cp, dec, elemOp, helper, i, instr, isPtr, length, ln, ovfl, state, v, value, $s, $r, $c} = $restore(this, {state, value, elemOp, length, ovfl, helper}); + var {_r$24, _r$25, _r$26, _r$27, _v, cp, dec, elemOp, helper, i, instr, isPtr, length, ln, ovfl, state, v, value, $s, $r, $c} = $restore(this, {state, value, elemOp, length, ovfl, helper}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: dec = this; if (!(!(helper === $throwNilPointerError))) { _v = false; $s = 3; continue s; } - _r$22 = helper(state, $clone(value, reflect.Value), length, ovfl); /* */ $s = 4; case 4: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _v = _r$22; case 3: + _r$24 = helper(state, $clone(value, reflect.Value), length, ovfl); /* */ $s = 4; case 4: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _v = _r$24; case 3: /* */ if (_v) { $s = 1; continue; } /* */ $s = 2; continue; /* if (_v) { */ case 1: $s = -1; return; /* } */ case 2: - instr = new decInstr.ptr(elemOp, 0, sliceType$4.nil, ovfl); - _r$23 = $clone(value, reflect.Value).Type().Elem(); /* */ $s = 5; case 5: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _r$24 = _r$23.Kind(); /* */ $s = 6; case 6: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - isPtr = _r$24 === 22; - _r$25 = $clone(value, reflect.Value).Len(); /* */ $s = 7; case 7: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - ln = _r$25; + instr = new decInstr.ptr(elemOp, 0, sliceType$5.nil, ovfl); + _r$25 = $clone(value, reflect.Value).Type().Elem(); /* */ $s = 5; case 5: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _r$26 = _r$25.Kind(); /* */ $s = 6; case 6: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + isPtr = _r$26 === 22; + ln = $clone(value, reflect.Value).Len(); i = 0; - /* while (true) { */ case 8: - /* if (!(i < length)) { break; } */ if(!(i < length)) { $s = 9; continue; } - /* */ if (state.b.Len() === 0) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (state.b.Len() === 0) { */ case 10: - $r = errorf("decoding array or slice: length exceeds input size (%d elements)", new sliceType$2([new $Int(length)])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 11: - /* */ if (i >= ln) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (i >= ln) { */ case 13: - _arg = $clone(value, reflect.Value); - _r$26 = $clone(value, reflect.Value).Type().Elem(); /* */ $s = 15; case 15: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - _r$27 = reflect.Zero(_r$26); /* */ $s = 16; case 16: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - _arg$1 = $clone(_r$27, reflect.Value); - _r$28 = reflect.Append(_arg, new sliceType$22([_arg$1])); /* */ $s = 17; case 17: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - $r = $clone(value, reflect.Value).Set($clone(_r$28, reflect.Value)); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$29 = $clone(value, reflect.Value).Cap(); /* */ $s = 19; case 19: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } - cp = _r$29; + /* while (true) { */ case 7: + /* if (!(i < length)) { break; } */ if(!(i < length)) { $s = 8; continue; } + /* */ if (state.b.Len() === 0) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (state.b.Len() === 0) { */ case 9: + $r = errorf("decoding array or slice: length exceeds input size (%d elements)", new sliceType$3([new $Int(length)])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 10: + if (i >= ln) { + $clone(value, reflect.Value).Grow(1); + cp = $clone(value, reflect.Value).Cap(); if (cp > length) { cp = length; } $clone(value, reflect.Value).SetLen(cp); ln = cp; - /* } */ case 14: - _r$30 = $clone(value, reflect.Value).Index(i); /* */ $s = 20; case 20: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } - v = _r$30; - /* */ if (isPtr) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if (isPtr) { */ case 21: - _r$31 = decAlloc($clone(v, reflect.Value)); /* */ $s = 23; case 23: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } - v = _r$31; - /* } */ case 22: - $r = elemOp(instr, state, $clone(v, reflect.Value)); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + } + v = $clone(value, reflect.Value).Index(i); + /* */ if (isPtr) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (isPtr) { */ case 12: + _r$27 = decAlloc($clone(v, reflect.Value)); /* */ $s = 14; case 14: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + v = _r$27; + /* } */ case 13: + $r = elemOp(instr, state, $clone(v, reflect.Value)); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } i = i + (1) >> 0; - $s = 8; continue; - case 9: + $s = 7; continue; + case 8: $s = -1; return; - /* */ } return; } var $f = {$blk: decodeArrayHelper, $c: true, $r, _arg, _arg$1, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _v, cp, dec, elemOp, helper, i, instr, isPtr, length, ln, ovfl, state, v, value, $s};return $f; + /* */ } return; } var $f = {$blk: decodeArrayHelper, $c: true, $r, _r$24, _r$25, _r$26, _r$27, _v, cp, dec, elemOp, helper, i, instr, isPtr, length, ln, ovfl, state, v, value, $s};return $f; }; $ptrType(Decoder).prototype.decodeArray = function decodeArray(state, value, elemOp, length, ovfl, helper) { - var {_r$22, dec, elemOp, helper, length, n, ovfl, state, value, x$2, $s, $r, $c} = $restore(this, {state, value, elemOp, length, ovfl, helper}); + var {_r$24, dec, elemOp, helper, length, n, ovfl, state, value, x, $s, $r, $c} = $restore(this, {state, value, elemOp, length, ovfl, helper}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: dec = this; - _r$22 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - n = _r$22; - /* */ if (!((x$2 = (new $Uint64(0, length)), (n.$high === x$2.$high && n.$low === x$2.$low)))) { $s = 2; continue; } + _r$24 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + n = _r$24; + /* */ if (!((x = (new $Uint64(0, length)), (n.$high === x.$high && n.$low === x.$low)))) { $s = 2; continue; } /* */ $s = 3; continue; - /* if (!((x$2 = (new $Uint64(0, length)), (n.$high === x$2.$high && n.$low === x$2.$low)))) { */ case 2: - $r = errorf("length mismatch in decodeArray", sliceType$2.nil); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* if (!((x = (new $Uint64(0, length)), (n.$high === x.$high && n.$low === x.$low)))) { */ case 2: + $r = errorf("length mismatch in decodeArray", sliceType$3.nil); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 3: $r = dec.decodeArrayHelper(state, $clone(value, reflect.Value), elemOp, length, ovfl, helper); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } var $f = {$blk: decodeArray, $c: true, $r, _r$22, dec, elemOp, helper, length, n, ovfl, state, value, x$2, $s};return $f; + /* */ } return; } var $f = {$blk: decodeArray, $c: true, $r, _r$24, dec, elemOp, helper, length, n, ovfl, state, value, x, $s};return $f; }; decodeIntoValue = function decodeIntoValue$1(state, op, isPtr, value, instr) { - var {_r$22, instr, isPtr, op, state, v, value, $s, $r, $c} = $restore(this, {state, op, isPtr, value, instr}); + var {_r$24, instr, isPtr, op, state, v, value, $s, $r, $c} = $restore(this, {state, op, isPtr, value, instr}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: v = value; /* */ if (isPtr) { $s = 1; continue; } /* */ $s = 2; continue; /* if (isPtr) { */ case 1: - _r$22 = decAlloc($clone(value, reflect.Value)); /* */ $s = 3; case 3: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - v = _r$22; + _r$24 = decAlloc($clone(value, reflect.Value)); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + v = _r$24; /* } */ case 2: $r = op(instr, state, $clone(v, reflect.Value)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return value; - /* */ } return; } var $f = {$blk: decodeIntoValue$1, $c: true, $r, _r$22, instr, isPtr, op, state, v, value, $s};return $f; + /* */ } return; } var $f = {$blk: decodeIntoValue$1, $c: true, $r, _r$24, instr, isPtr, op, state, v, value, $s};return $f; }; $ptrType(Decoder).prototype.decodeMap = function decodeMap(mtyp, state, value, keyOp, elemOp, ovfl) { - var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$40, _r$41, dec, elem, elemInstr, elemIsPtr, elemOp, elemP, elemZ, i, key, keyInstr, keyIsPtr, keyOp, keyP, keyZ, mtyp, n, ovfl, state, value, $s, $r, $c} = $restore(this, {mtyp, state, value, keyOp, elemOp, ovfl}); + var {_r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, dec, elem, elemInstr, elemIsPtr, elemOp, elemP, i, key, keyInstr, keyIsPtr, keyOp, keyP, mtyp, n, ovfl, state, value, $s, $r, $c} = $restore(this, {mtyp, state, value, keyOp, elemOp, ovfl}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: dec = this; - _r$22 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - n = ((_r$22.$low >> 0)); + _r$24 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + n = ((_r$24.$low >> 0)); /* */ if ($clone(value, reflect.Value).IsNil()) { $s = 2; continue; } /* */ $s = 3; continue; /* if ($clone(value, reflect.Value).IsNil()) { */ case 2: - _r$23 = reflect.MakeMapWithSize(mtyp, n); /* */ $s = 4; case 4: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - $r = $clone(value, reflect.Value).Set($clone(_r$23, reflect.Value)); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$25 = reflect.MakeMapWithSize(mtyp, n); /* */ $s = 4; case 4: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $r = $clone(value, reflect.Value).Set($clone(_r$25, reflect.Value)); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 3: - _r$24 = mtyp.Key(); /* */ $s = 6; case 6: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - _r$25 = _r$24.Kind(); /* */ $s = 7; case 7: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - keyIsPtr = _r$25 === 22; - _r$26 = mtyp.Elem(); /* */ $s = 8; case 8: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - _r$27 = _r$26.Kind(); /* */ $s = 9; case 9: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - elemIsPtr = _r$27 === 22; - keyInstr = new decInstr.ptr(keyOp, 0, sliceType$4.nil, ovfl); - elemInstr = new decInstr.ptr(elemOp, 0, sliceType$4.nil, ovfl); - _r$28 = mtyp.Key(); /* */ $s = 10; case 10: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - _r$29 = reflect.New(_r$28); /* */ $s = 11; case 11: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } - keyP = _r$29; - _r$30 = mtyp.Key(); /* */ $s = 12; case 12: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } - _r$31 = reflect.Zero(_r$30); /* */ $s = 13; case 13: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } - keyZ = _r$31; - _r$32 = mtyp.Elem(); /* */ $s = 14; case 14: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } - _r$33 = reflect.New(_r$32); /* */ $s = 15; case 15: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } + _r$26 = mtyp.Key(); /* */ $s = 6; case 6: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + _r$27 = _r$26.Kind(); /* */ $s = 7; case 7: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + keyIsPtr = _r$27 === 22; + _r$28 = mtyp.Elem(); /* */ $s = 8; case 8: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + _r$29 = _r$28.Kind(); /* */ $s = 9; case 9: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + elemIsPtr = _r$29 === 22; + keyInstr = new decInstr.ptr(keyOp, 0, sliceType$5.nil, ovfl); + elemInstr = new decInstr.ptr(elemOp, 0, sliceType$5.nil, ovfl); + _r$30 = mtyp.Key(); /* */ $s = 10; case 10: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } + _r$31 = reflect.New(_r$30); /* */ $s = 11; case 11: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } + keyP = _r$31; + _r$32 = mtyp.Elem(); /* */ $s = 12; case 12: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } + _r$33 = reflect.New(_r$32); /* */ $s = 13; case 13: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } elemP = _r$33; - _r$34 = mtyp.Elem(); /* */ $s = 16; case 16: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } - _r$35 = reflect.Zero(_r$34); /* */ $s = 17; case 17: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } - elemZ = _r$35; i = 0; - /* while (true) { */ case 18: - /* if (!(i < n)) { break; } */ if(!(i < n)) { $s = 19; continue; } - _arg = state; - _arg$1 = keyOp; - _arg$2 = keyIsPtr; - _r$36 = $clone(keyP, reflect.Value).Elem(); /* */ $s = 20; case 20: if($c) { $c = false; _r$36 = _r$36.$blk(); } if (_r$36 && _r$36.$blk !== undefined) { break s; } - _arg$3 = $clone(_r$36, reflect.Value); - _arg$4 = keyInstr; - _r$37 = decodeIntoValue(_arg, _arg$1, _arg$2, _arg$3, _arg$4); /* */ $s = 21; case 21: if($c) { $c = false; _r$37 = _r$37.$blk(); } if (_r$37 && _r$37.$blk !== undefined) { break s; } - key = _r$37; - _arg$5 = state; - _arg$6 = elemOp; - _arg$7 = elemIsPtr; - _r$38 = $clone(elemP, reflect.Value).Elem(); /* */ $s = 22; case 22: if($c) { $c = false; _r$38 = _r$38.$blk(); } if (_r$38 && _r$38.$blk !== undefined) { break s; } - _arg$8 = $clone(_r$38, reflect.Value); - _arg$9 = elemInstr; - _r$39 = decodeIntoValue(_arg$5, _arg$6, _arg$7, _arg$8, _arg$9); /* */ $s = 23; case 23: if($c) { $c = false; _r$39 = _r$39.$blk(); } if (_r$39 && _r$39.$blk !== undefined) { break s; } - elem = _r$39; - $r = $clone(value, reflect.Value).SetMapIndex($clone(key, reflect.Value), $clone(elem, reflect.Value)); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$40 = $clone(keyP, reflect.Value).Elem(); /* */ $s = 25; case 25: if($c) { $c = false; _r$40 = _r$40.$blk(); } if (_r$40 && _r$40.$blk !== undefined) { break s; } - $r = $clone(_r$40, reflect.Value).Set($clone(keyZ, reflect.Value)); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$41 = $clone(elemP, reflect.Value).Elem(); /* */ $s = 27; case 27: if($c) { $c = false; _r$41 = _r$41.$blk(); } if (_r$41 && _r$41.$blk !== undefined) { break s; } - $r = $clone(_r$41, reflect.Value).Set($clone(elemZ, reflect.Value)); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* while (true) { */ case 14: + /* if (!(i < n)) { break; } */ if(!(i < n)) { $s = 15; continue; } + _r$34 = decodeIntoValue(state, keyOp, keyIsPtr, $clone($clone(keyP, reflect.Value).Elem(), reflect.Value), keyInstr); /* */ $s = 16; case 16: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } + key = _r$34; + _r$35 = decodeIntoValue(state, elemOp, elemIsPtr, $clone($clone(elemP, reflect.Value).Elem(), reflect.Value), elemInstr); /* */ $s = 17; case 17: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } + elem = _r$35; + $r = $clone(value, reflect.Value).SetMapIndex($clone(key, reflect.Value), $clone(elem, reflect.Value)); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = $clone($clone(keyP, reflect.Value).Elem(), reflect.Value).SetZero(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = $clone($clone(elemP, reflect.Value).Elem(), reflect.Value).SetZero(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } i = i + (1) >> 0; - $s = 18; continue; - case 19: + $s = 14; continue; + case 15: $s = -1; return; - /* */ } return; } var $f = {$blk: decodeMap, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$40, _r$41, dec, elem, elemInstr, elemIsPtr, elemOp, elemP, elemZ, i, key, keyInstr, keyIsPtr, keyOp, keyP, keyZ, mtyp, n, ovfl, state, value, $s};return $f; + /* */ } return; } var $f = {$blk: decodeMap, $c: true, $r, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, dec, elem, elemInstr, elemIsPtr, elemOp, elemP, i, key, keyInstr, keyIsPtr, keyOp, keyP, mtyp, n, ovfl, state, value, $s};return $f; }; $ptrType(Decoder).prototype.ignoreArrayHelper = function ignoreArrayHelper(state, elemOp, length) { var {dec, elemOp, i, instr, length, state, $s, $r, $c} = $restore(this, {state, elemOp, length}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: dec = this; - instr = new decInstr.ptr(elemOp, 0, sliceType$4.nil, errors.New("no error")); + instr = new decInstr.ptr(elemOp, 0, sliceType$5.nil, errors.New("no error")); i = 0; /* while (true) { */ case 1: /* if (!(i < length)) { break; } */ if(!(i < length)) { $s = 2; continue; } /* */ if (state.b.Len() === 0) { $s = 3; continue; } /* */ $s = 4; continue; /* if (state.b.Len() === 0) { */ case 3: - $r = errorf("decoding array or slice: length exceeds input size (%d elements)", new sliceType$2([new $Int(length)])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errorf("decoding array or slice: length exceeds input size (%d elements)", new sliceType$3([new $Int(length)])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 4: $r = elemOp(instr, state, $clone(noValue, reflect.Value)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } i = i + (1) >> 0; @@ -50788,28 +49665,28 @@ $packages["encoding/gob"] = (function() { /* */ } return; } var $f = {$blk: ignoreArrayHelper, $c: true, $r, dec, elemOp, i, instr, length, state, $s};return $f; }; $ptrType(Decoder).prototype.ignoreArray = function ignoreArray(state, elemOp, length) { - var {_r$22, dec, elemOp, length, n, state, x$2, $s, $r, $c} = $restore(this, {state, elemOp, length}); + var {_r$24, dec, elemOp, length, n, state, x, $s, $r, $c} = $restore(this, {state, elemOp, length}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: dec = this; - _r$22 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - n = _r$22; - /* */ if (!((x$2 = (new $Uint64(0, length)), (n.$high === x$2.$high && n.$low === x$2.$low)))) { $s = 2; continue; } + _r$24 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + n = _r$24; + /* */ if (!((x = (new $Uint64(0, length)), (n.$high === x.$high && n.$low === x.$low)))) { $s = 2; continue; } /* */ $s = 3; continue; - /* if (!((x$2 = (new $Uint64(0, length)), (n.$high === x$2.$high && n.$low === x$2.$low)))) { */ case 2: - $r = errorf("length mismatch in ignoreArray", sliceType$2.nil); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* if (!((x = (new $Uint64(0, length)), (n.$high === x.$high && n.$low === x.$low)))) { */ case 2: + $r = errorf("length mismatch in ignoreArray", sliceType$3.nil); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 3: $r = dec.ignoreArrayHelper(state, elemOp, length); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } var $f = {$blk: ignoreArray, $c: true, $r, _r$22, dec, elemOp, length, n, state, x$2, $s};return $f; + /* */ } return; } var $f = {$blk: ignoreArray, $c: true, $r, _r$24, dec, elemOp, length, n, state, x, $s};return $f; }; $ptrType(Decoder).prototype.ignoreMap = function ignoreMap(state, keyOp, elemOp) { - var {_r$22, dec, elemInstr, elemOp, i, keyInstr, keyOp, n, state, $s, $r, $c} = $restore(this, {state, keyOp, elemOp}); + var {_r$24, dec, elemInstr, elemOp, i, keyInstr, keyOp, n, state, $s, $r, $c} = $restore(this, {state, keyOp, elemOp}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: dec = this; - _r$22 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - n = ((_r$22.$low >> 0)); - keyInstr = new decInstr.ptr(keyOp, 0, sliceType$4.nil, errors.New("no error")); - elemInstr = new decInstr.ptr(elemOp, 0, sliceType$4.nil, errors.New("no error")); + _r$24 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + n = ((_r$24.$low >> 0)); + keyInstr = new decInstr.ptr(keyOp, 0, sliceType$5.nil, errors.New("no error")); + elemInstr = new decInstr.ptr(elemOp, 0, sliceType$5.nil, errors.New("no error")); i = 0; /* while (true) { */ case 2: /* if (!(i < n)) { break; } */ if(!(i < n)) { $s = 3; continue; } @@ -50819,85 +49696,84 @@ $packages["encoding/gob"] = (function() { $s = 2; continue; case 3: $s = -1; return; - /* */ } return; } var $f = {$blk: ignoreMap, $c: true, $r, _r$22, dec, elemInstr, elemOp, i, keyInstr, keyOp, n, state, $s};return $f; + /* */ } return; } var $f = {$blk: ignoreMap, $c: true, $r, _r$24, dec, elemInstr, elemOp, i, keyInstr, keyOp, n, state, $s};return $f; }; $ptrType(Decoder).prototype.decodeSlice = function decodeSlice(state, value, elemOp, ovfl, helper) { - var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _r$32, _r$33, dec, elemOp, helper, n, nBytes, ovfl, safe, size, state, typ, u, value, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {state, value, elemOp, ovfl, helper}); + var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _r$32, _r$33, _r$34, dec, elemOp, helper, n, nBytes, ovfl, safe, size, state, typ, u, value, x, x$1, x$2, $s, $r, $c} = $restore(this, {state, value, elemOp, ovfl, helper}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: dec = this; - _r$22 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - u = _r$22; + _r$24 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + u = _r$24; typ = $clone(value, reflect.Value).Type(); - _r$23 = typ.Elem(); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _r$24 = _r$23.Size(); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - size = ((x$2 = _r$24, new $Uint64(0, x$2.constructor === Number ? x$2 : 1))); + _r$25 = typ.Elem(); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _r$26 = _r$25.Size(); /* */ $s = 3; case 3: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + size = ((x = _r$26, new $Uint64(0, x.constructor === Number ? x : 1))); nBytes = $mul64(u, size); n = ((u.$low >> 0)); - /* */ if (n < 0 || !((x$3 = (new $Uint64(0, n)), (x$3.$high === u.$high && x$3.$low === u.$low))) || (nBytes.$high > 0 || (nBytes.$high === 0 && nBytes.$low > 1073741824)) || ((size.$high > 0 || (size.$high === 0 && size.$low > 0)) && !((x$4 = $div64(nBytes, size, false), (x$4.$high === u.$high && x$4.$low === u.$low))))) { $s = 4; continue; } + /* */ if (n < 0 || !((x$1 = (new $Uint64(0, n)), (x$1.$high === u.$high && x$1.$low === u.$low))) || (nBytes.$high > 0 || (nBytes.$high === 0 && nBytes.$low > 1073741824)) || ((size.$high > 0 || (size.$high === 0 && size.$low > 0)) && !((x$2 = $div64(nBytes, size, false), (x$2.$high === u.$high && x$2.$low === u.$low))))) { $s = 4; continue; } /* */ $s = 5; continue; - /* if (n < 0 || !((x$3 = (new $Uint64(0, n)), (x$3.$high === u.$high && x$3.$low === u.$low))) || (nBytes.$high > 0 || (nBytes.$high === 0 && nBytes.$low > 1073741824)) || ((size.$high > 0 || (size.$high === 0 && size.$low > 0)) && !((x$4 = $div64(nBytes, size, false), (x$4.$high === u.$high && x$4.$low === u.$low))))) { */ case 4: - _r$25 = typ.Elem(); /* */ $s = 6; case 6: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - _arg = _r$25; + /* if (n < 0 || !((x$1 = (new $Uint64(0, n)), (x$1.$high === u.$high && x$1.$low === u.$low))) || (nBytes.$high > 0 || (nBytes.$high === 0 && nBytes.$low > 1073741824)) || ((size.$high > 0 || (size.$high === 0 && size.$low > 0)) && !((x$2 = $div64(nBytes, size, false), (x$2.$high === u.$high && x$2.$low === u.$low))))) { */ case 4: + _r$27 = typ.Elem(); /* */ $s = 6; case 6: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + _arg = _r$27; _arg$1 = u; _arg$2 = size; - $r = errorf("%s slice too big: %d elements of %d bytes", new sliceType$2([_arg, _arg$1, _arg$2])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errorf("%s slice too big: %d elements of %d bytes", new sliceType$3([_arg, _arg$1, _arg$2])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 5: - _r$26 = $clone(value, reflect.Value).Cap(); /* */ $s = 11; case 11: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - /* */ if (_r$26 < n) { $s = 8; continue; } + /* */ if ($clone(value, reflect.Value).Cap() < n) { $s = 8; continue; } /* */ $s = 9; continue; - /* if (_r$26 < n) { */ case 8: - _r$27 = typ.Elem(); /* */ $s = 12; case 12: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - _r$28 = reflect.PtrTo(_r$27); /* */ $s = 13; case 13: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - _r$29 = reflect.Zero(_r$28); /* */ $s = 14; case 14: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } - _r$30 = $clone(_r$29, reflect.Value).Interface(); /* */ $s = 15; case 15: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } - _r$31 = saferio.SliceCap(_r$30, (new $Uint64(0, n))); /* */ $s = 16; case 16: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } - safe = _r$31; - /* */ if (safe < 0) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (safe < 0) { */ case 17: - _r$32 = typ.Elem(); /* */ $s = 19; case 19: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } - _arg$3 = _r$32; + /* if ($clone(value, reflect.Value).Cap() < n) { */ case 8: + _r$28 = typ.Elem(); /* */ $s = 11; case 11: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + _r$29 = reflect.PtrTo(_r$28); /* */ $s = 12; case 12: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + _r$30 = reflect.Zero(_r$29); /* */ $s = 13; case 13: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } + _r$31 = $clone(_r$30, reflect.Value).Interface(); /* */ $s = 14; case 14: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } + _r$32 = saferio.SliceCap(_r$31, (new $Uint64(0, n))); /* */ $s = 15; case 15: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } + safe = _r$32; + /* */ if (safe < 0) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (safe < 0) { */ case 16: + _r$33 = typ.Elem(); /* */ $s = 18; case 18: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } + _arg$3 = _r$33; _arg$4 = u; _arg$5 = size; - $r = errorf("%s slice too big: %d elements of %d bytes", new sliceType$2([_arg$3, _arg$4, _arg$5])); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 18: - _r$33 = reflect.MakeSlice(typ, safe, safe); /* */ $s = 21; case 21: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } - $r = $clone(value, reflect.Value).Set($clone(_r$33, reflect.Value)); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errorf("%s slice too big: %d elements of %d bytes", new sliceType$3([_arg$3, _arg$4, _arg$5])); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 17: + _r$34 = reflect.MakeSlice(typ, safe, safe); /* */ $s = 20; case 20: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } + $r = $clone(value, reflect.Value).Set($clone(_r$34, reflect.Value)); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 10; continue; /* } else { */ case 9: $clone(value, reflect.Value).SetLen(n); /* } */ case 10: - $r = dec.decodeArrayHelper(state, $clone(value, reflect.Value), elemOp, n, ovfl, helper); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = dec.decodeArrayHelper(state, $clone(value, reflect.Value), elemOp, n, ovfl, helper); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } var $f = {$blk: decodeSlice, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _r$32, _r$33, dec, elemOp, helper, n, nBytes, ovfl, safe, size, state, typ, u, value, x$2, x$3, x$4, $s};return $f; + /* */ } return; } var $f = {$blk: decodeSlice, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _r$32, _r$33, _r$34, dec, elemOp, helper, n, nBytes, ovfl, safe, size, state, typ, u, value, x, x$1, x$2, $s};return $f; }; $ptrType(Decoder).prototype.ignoreSlice = function ignoreSlice(state, elemOp) { - var {_arg, _arg$1, _arg$2, _r$22, dec, elemOp, state, $s, $r, $c} = $restore(this, {state, elemOp}); + var {_arg, _arg$1, _arg$2, _r$24, dec, elemOp, state, $s, $r, $c} = $restore(this, {state, elemOp}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: dec = this; _arg = state; _arg$1 = elemOp; - _r$22 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _arg$2 = ((_r$22.$low >> 0)); + _r$24 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _arg$2 = ((_r$24.$low >> 0)); $r = dec.ignoreArrayHelper(_arg, _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } var $f = {$blk: ignoreSlice, $c: true, $r, _arg, _arg$1, _arg$2, _r$22, dec, elemOp, state, $s};return $f; + /* */ } return; } var $f = {$blk: ignoreSlice, $c: true, $r, _arg, _arg$1, _arg$2, _r$24, dec, elemOp, state, $s};return $f; }; $ptrType(Decoder).prototype.decodeInterface = function decodeInterface(ityp, state, value) { - var {_r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _tuple, concreteId, dec, ityp, n, name$2, nr, ok, state, typ, typi, v, value, x$2, $s, $r, $c} = $restore(this, {ityp, state, value}); + var {_r$24, _r$25, _r$26, _r$27, _tuple, concreteId, dec, ityp, n, name$2, nr, ok, state, typ, typi, v, value, x, $s, $r, $c} = $restore(this, {ityp, state, value}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: dec = this; - _r$22 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - nr = _r$22; + _r$24 = state.decodeUint(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + nr = _r$24; /* */ if ((nr.$high > 0 || (nr.$high === 0 && nr.$low > 2147483648))) { $s = 2; continue; } /* */ $s = 3; continue; /* if ((nr.$high > 0 || (nr.$high === 0 && nr.$low > 2147483648))) { */ case 2: - $r = errorf("invalid type name length %d", new sliceType$2([nr])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errorf("invalid type name length %d", new sliceType$3([nr])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 3: - /* */ if ((x$2 = (new $Uint64(0, state.b.Len())), (nr.$high > x$2.$high || (nr.$high === x$2.$high && nr.$low > x$2.$low)))) { $s = 5; continue; } + /* */ if ((x = (new $Uint64(0, state.b.Len())), (nr.$high > x.$high || (nr.$high === x.$high && nr.$low > x.$low)))) { $s = 5; continue; } /* */ $s = 6; continue; - /* if ((x$2 = (new $Uint64(0, state.b.Len())), (nr.$high > x$2.$high || (nr.$high === x$2.$high && nr.$low > x$2.$low)))) { */ case 5: - $r = errorf("invalid type name length %d: exceeds input size", new sliceType$2([nr])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* if ((x = (new $Uint64(0, state.b.Len())), (nr.$high > x.$high || (nr.$high === x.$high && nr.$low > x.$low)))) { */ case 5: + $r = errorf("invalid type name length %d: exceeds input size", new sliceType$3([nr])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 6: n = ((nr.$low >> 0)); name$2 = $subslice(state.b.Bytes(), 0, n); @@ -50905,103 +49781,101 @@ $packages["encoding/gob"] = (function() { /* */ if (name$2.$length === 0) { $s = 8; continue; } /* */ $s = 9; continue; /* if (name$2.$length === 0) { */ case 8: - _r$23 = reflect.Zero($clone(value, reflect.Value).Type()); /* */ $s = 10; case 10: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - $r = $clone(value, reflect.Value).Set($clone(_r$23, reflect.Value)); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = $clone(value, reflect.Value).SetZero(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* } */ case 9: - /* */ if (name$2.$length > 1024) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (name$2.$length > 1024) { */ case 12: - $r = errorf("name too long (%d bytes): %.20q...", new sliceType$2([new $Int(name$2.$length), name$2])); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 13: + /* */ if (name$2.$length > 1024) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (name$2.$length > 1024) { */ case 11: + $r = errorf("name too long (%d bytes): %.20q...", new sliceType$3([new $Int(name$2.$length), name$2])); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 12: _tuple = nameToConcreteType.Load(new $String(($bytesToString(name$2)))); typi = _tuple[0]; ok = _tuple[1]; - /* */ if (!ok) { $s = 15; continue; } - /* */ $s = 16; continue; - /* if (!ok) { */ case 15: - $r = errorf("name not registered for interface: %q", new sliceType$2([name$2])); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 16: + /* */ if (!ok) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (!ok) { */ case 14: + $r = errorf("name not registered for interface: %q", new sliceType$3([name$2])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 15: typ = $assertType(typi, reflect.Type); - _r$24 = dec.decodeTypeSequence(true); /* */ $s = 18; case 18: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - concreteId = _r$24; + _r$25 = dec.decodeTypeSequence(true); /* */ $s = 17; case 17: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + concreteId = _r$25; if (concreteId < 0) { error_(dec.err); } - _r$25 = state.decodeUint(); /* */ $s = 19; case 19: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - _r$25; - _r$26 = allocValue(typ); /* */ $s = 20; case 20: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - v = _r$26; - $r = dec.decodeValue(concreteId, $clone(v, reflect.Value)); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$26 = state.decodeUint(); /* */ $s = 18; case 18: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + _r$26; + v = allocValue(typ); + $r = dec.decodeValue(concreteId, $clone(v, reflect.Value)); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } if (!($interfaceIsEqual(dec.err, $ifaceNil))) { error_(dec.err); } - _r$27 = typ.AssignableTo(ityp); /* */ $s = 24; case 24: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - /* */ if (!_r$27) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if (!_r$27) { */ case 22: - $r = errorf("%s is not assignable to type %s", new sliceType$2([typ, ityp])); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 23: - $r = $clone(value, reflect.Value).Set($clone(v, reflect.Value)); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$27 = typ.AssignableTo(ityp); /* */ $s = 22; case 22: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + /* */ if (!_r$27) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (!_r$27) { */ case 20: + $r = errorf("%s is not assignable to type %s", new sliceType$3([typ, ityp])); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 21: + $r = $clone(value, reflect.Value).Set($clone(v, reflect.Value)); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } var $f = {$blk: decodeInterface, $c: true, $r, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _tuple, concreteId, dec, ityp, n, name$2, nr, ok, state, typ, typi, v, value, x$2, $s};return $f; + /* */ } return; } var $f = {$blk: decodeInterface, $c: true, $r, _r$24, _r$25, _r$26, _r$27, _tuple, concreteId, dec, ityp, n, name$2, nr, ok, state, typ, typi, v, value, x, $s};return $f; }; $ptrType(Decoder).prototype.ignoreInterface = function ignoreInterface(state) { - var {_r$22, _r$23, _r$24, _tuple, _tuple$1, bn, dec, id$1, n, ok, state, $s, $r, $c} = $restore(this, {state}); + var {_r$24, _r$25, _r$26, _tuple, _tuple$1, bn, dec, id$1, n, ok, state, $s, $r, $c} = $restore(this, {state}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: dec = this; - _r$22 = state.getLength(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = _r$22; + _r$24 = state.getLength(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = _r$24; n = _tuple[0]; ok = _tuple[1]; /* */ if (!ok) { $s = 2; continue; } /* */ $s = 3; continue; /* if (!ok) { */ case 2: - $r = errorf("bad interface encoding: name too large for buffer", sliceType$2.nil); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errorf("bad interface encoding: name too large for buffer", sliceType$3.nil); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 3: bn = state.b.Len(); /* */ if (bn < n) { $s = 5; continue; } /* */ $s = 6; continue; /* if (bn < n) { */ case 5: - $r = errorf("invalid interface value length %d: exceeds input size %d", new sliceType$2([new $Int(n), new $Int(bn)])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errorf("invalid interface value length %d: exceeds input size %d", new sliceType$3([new $Int(n), new $Int(bn)])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 6: state.b.Drop(n); - _r$23 = dec.decodeTypeSequence(true); /* */ $s = 8; case 8: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - id$1 = _r$23; + _r$25 = dec.decodeTypeSequence(true); /* */ $s = 8; case 8: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + id$1 = _r$25; if (id$1 < 0) { error_(dec.err); } - _r$24 = state.getLength(); /* */ $s = 9; case 9: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - _tuple$1 = _r$24; + _r$26 = state.getLength(); /* */ $s = 9; case 9: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + _tuple$1 = _r$26; n = _tuple$1[0]; ok = _tuple$1[1]; /* */ if (!ok) { $s = 10; continue; } /* */ $s = 11; continue; /* if (!ok) { */ case 10: - $r = errorf("bad interface encoding: data length too large for buffer", sliceType$2.nil); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errorf("bad interface encoding: data length too large for buffer", sliceType$3.nil); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 11: state.b.Drop(n); $s = -1; return; - /* */ } return; } var $f = {$blk: ignoreInterface, $c: true, $r, _r$22, _r$23, _r$24, _tuple, _tuple$1, bn, dec, id$1, n, ok, state, $s};return $f; + /* */ } return; } var $f = {$blk: ignoreInterface, $c: true, $r, _r$24, _r$25, _r$26, _tuple, _tuple$1, bn, dec, id$1, n, ok, state, $s};return $f; }; $ptrType(Decoder).prototype.decodeGobDecoder = function decodeGobDecoder(ut, state, value) { - var {_1, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _tuple, b, dec, err, n, ok, state, ut, value, $s, $r, $c} = $restore(this, {ut, state, value}); + var {_1, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _tuple, b, dec, err, n, ok, state, ut, value, $s, $r, $c} = $restore(this, {ut, state, value}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: dec = this; - _r$22 = state.getLength(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = _r$22; + _r$24 = state.getLength(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = _r$24; n = _tuple[0]; ok = _tuple[1]; /* */ if (!ok) { $s = 2; continue; } /* */ $s = 3; continue; /* if (!ok) { */ case 2: - $r = errorf("GobDecoder: length too large for buffer", sliceType$2.nil); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errorf("GobDecoder: length too large for buffer", sliceType$3.nil); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 3: b = state.b.Bytes(); /* */ if (b.$length < n) { $s = 5; continue; } /* */ $s = 6; continue; /* if (b.$length < n) { */ case 5: - $r = errorf("GobDecoder: invalid data length %d: exceeds input size %d", new sliceType$2([new $Int(n), new $Int(b.$length)])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errorf("GobDecoder: invalid data length %d: exceeds input size %d", new sliceType$3([new $Int(n), new $Int(b.$length)])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 6: b = $subslice(b, 0, n); state.b.Drop(n); @@ -51012,52 +49886,52 @@ $packages["encoding/gob"] = (function() { /* */ if (_1 === (3)) { $s = 11; continue; } /* */ $s = 12; continue; /* if (_1 === (1)) { */ case 9: - _r$23 = $clone(value, reflect.Value).Interface(); /* */ $s = 13; case 13: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _r$24 = $assertType(_r$23, GobDecoder).GobDecode(b); /* */ $s = 14; case 14: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - err = _r$24; + _r$25 = $clone(value, reflect.Value).Interface(); /* */ $s = 13; case 13: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _r$26 = $assertType(_r$25, GobDecoder).GobDecode(b); /* */ $s = 14; case 14: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + err = _r$26; $s = 12; continue; /* } else if (_1 === (2)) { */ case 10: - _r$25 = $clone(value, reflect.Value).Interface(); /* */ $s = 15; case 15: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - _r$26 = $assertType(_r$25, encoding.BinaryUnmarshaler).UnmarshalBinary(b); /* */ $s = 16; case 16: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - err = _r$26; + _r$27 = $clone(value, reflect.Value).Interface(); /* */ $s = 15; case 15: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + _r$28 = $assertType(_r$27, encoding.BinaryUnmarshaler).UnmarshalBinary(b); /* */ $s = 16; case 16: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + err = _r$28; $s = 12; continue; /* } else if (_1 === (3)) { */ case 11: - _r$27 = $clone(value, reflect.Value).Interface(); /* */ $s = 17; case 17: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - _r$28 = $assertType(_r$27, encoding.TextUnmarshaler).UnmarshalText(b); /* */ $s = 18; case 18: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - err = _r$28; + _r$29 = $clone(value, reflect.Value).Interface(); /* */ $s = 17; case 17: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + _r$30 = $assertType(_r$29, encoding.TextUnmarshaler).UnmarshalText(b); /* */ $s = 18; case 18: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } + err = _r$30; /* } */ case 12: case 8: if (!($interfaceIsEqual(err, $ifaceNil))) { error_(err); } $s = -1; return; - /* */ } return; } var $f = {$blk: decodeGobDecoder, $c: true, $r, _1, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _tuple, b, dec, err, n, ok, state, ut, value, $s};return $f; + /* */ } return; } var $f = {$blk: decodeGobDecoder, $c: true, $r, _1, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _tuple, b, dec, err, n, ok, state, ut, value, $s};return $f; }; $ptrType(Decoder).prototype.ignoreGobDecoder = function ignoreGobDecoder(state) { - var {_r$22, _tuple, bn, dec, n, ok, state, $s, $r, $c} = $restore(this, {state}); + var {_r$24, _tuple, bn, dec, n, ok, state, $s, $r, $c} = $restore(this, {state}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: dec = this; - _r$22 = state.getLength(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = _r$22; + _r$24 = state.getLength(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = _r$24; n = _tuple[0]; ok = _tuple[1]; /* */ if (!ok) { $s = 2; continue; } /* */ $s = 3; continue; /* if (!ok) { */ case 2: - $r = errorf("GobDecoder: length too large for buffer", sliceType$2.nil); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errorf("GobDecoder: length too large for buffer", sliceType$3.nil); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 3: bn = state.b.Len(); /* */ if (bn < n) { $s = 5; continue; } /* */ $s = 6; continue; /* if (bn < n) { */ case 5: - $r = errorf("GobDecoder: invalid data length %d: exceeds input size %d", new sliceType$2([new $Int(n), new $Int(bn)])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errorf("GobDecoder: invalid data length %d: exceeds input size %d", new sliceType$3([new $Int(n), new $Int(bn)])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 6: state.b.Drop(n); $s = -1; return; - /* */ } return; } var $f = {$blk: ignoreGobDecoder, $c: true, $r, _r$22, _tuple, bn, dec, n, ok, state, $s};return $f; + /* */ } return; } var $f = {$blk: ignoreGobDecoder, $c: true, $r, _r$24, _tuple, bn, dec, n, ok, state, $s};return $f; }; $ptrType(Decoder).prototype.decOpFor = function decOpFor(wireId, rt, name$2, inProgress) { - var {$24r, _1, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _entry$6, _entry$7, _key, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$40, _r$41, _tuple, _tuple$1, dec, elemId, elemId$1, elemId$2, elemOp, elemOp$1, elemOp$2, enginePtr, err, helper, helper$1, inProgress, k, keyId, keyOp, name$2, ok, op, opPtr, ovfl, ovfl$1, ovfl$2, rt, t, tt, typ, ut, ut$1, wireId, $s, $r, $c} = $restore(this, {wireId, rt, name$2, inProgress}); + var {$24r, _1, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _entry$6, _key, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$40, _r$41, _r$42, _r$43, _tuple, dec, elemId, elemId$1, elemId$2, elemOp, elemOp$1, elemOp$2, enginePtr, err, helper, helper$1, inProgress, k, keyId, keyOp, name$2, op, opPtr, ovfl, ovfl$1, ovfl$2, rt, t, tt, typ, ut, ut$1, wireId, $s, $r, $c} = $restore(this, {wireId, rt, name$2, inProgress}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: dec = [dec]; elemOp = [elemOp]; @@ -51073,33 +49947,33 @@ $packages["encoding/gob"] = (function() { ovfl$2 = [ovfl$2]; t = [t]; dec[0] = this; - _r$22 = userType(rt); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - ut = _r$22; + _r$24 = userType(rt); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + ut = _r$24; /* */ if (!((ut.externalDec === 0))) { $s = 2; continue; } /* */ $s = 3; continue; /* if (!((ut.externalDec === 0))) { */ case 2: - _r$23 = dec[0].gobDecodeOpFor(ut); /* */ $s = 4; case 4: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - $24r = _r$23; + _r$25 = dec[0].gobDecodeOpFor(ut); /* */ $s = 4; case 4: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $24r = _r$25; $s = 5; case 5: return $24r; /* } */ case 3: - opPtr = (_entry = $mapIndex(inProgress,reflect.Type.keyFor(rt)), _entry !== undefined ? _entry.v : ptrType$42.nil); - if (!(opPtr === ptrType$42.nil)) { + opPtr = (_entry = $mapIndex(inProgress,reflect.Type.keyFor(rt)), _entry !== undefined ? _entry.v : ptrType$45.nil); + if (!(opPtr === ptrType$45.nil)) { $s = -1; return opPtr; } typ = ut.base; op[0] = $throwNilPointerError; - _r$24 = typ.Kind(); /* */ $s = 6; case 6: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - k = _r$24; + _r$26 = typ.Kind(); /* */ $s = 6; case 6: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + k = _r$26; if (((k >> 0)) < 25) { op[0] = ((k < 0 || k >= decOpTable.length) ? ($throwRuntimeError("index out of range"), undefined) : decOpTable[k]); } /* */ if (op[0] === $throwNilPointerError) { $s = 7; continue; } /* */ $s = 8; continue; /* if (op[0] === $throwNilPointerError) { */ case 7: - _key = rt; (inProgress || $throwRuntimeError("assignment to entry in nil map")).set(reflect.Type.keyFor(_key), { k: _key, v: (op.$ptr || (op.$ptr = new ptrType$42(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, op))) }); + _key = rt; (inProgress || $throwRuntimeError("assignment to entry in nil map")).set(reflect.Type.keyFor(_key), { k: _key, v: (op.$ptr || (op.$ptr = new ptrType$45(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, op))) }); t[0] = typ; - _r$25 = t[0].Kind(); /* */ $s = 10; case 10: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - _1 = _r$25; + _r$27 = t[0].Kind(); /* */ $s = 10; case 10: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + _1 = _r$27; /* */ if (_1 === (17)) { $s = 11; continue; } /* */ if (_1 === (21)) { $s = 12; continue; } /* */ if (_1 === (23)) { $s = 13; continue; } @@ -51108,50 +49982,50 @@ $packages["encoding/gob"] = (function() { /* */ $s = 16; continue; /* if (_1 === (17)) { */ case 11: name$2 = "element of " + name$2; - elemId = (_entry$1 = $mapIndex(dec[0].wireType,typeId.keyFor(wireId)), _entry$1 !== undefined ? _entry$1.v : ptrType$29.nil).ArrayT.Elem; + elemId = (_entry$1 = $mapIndex(dec[0].wireType,typeId.keyFor(wireId)), _entry$1 !== undefined ? _entry$1.v : ptrType$8.nil).ArrayT.Elem; _arg = elemId; - _r$26 = t[0].Elem(); /* */ $s = 17; case 17: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - _arg$1 = _r$26; + _r$28 = t[0].Elem(); /* */ $s = 17; case 17: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + _arg$1 = _r$28; _arg$2 = name$2; _arg$3 = inProgress; - _r$27 = dec[0].decOpFor(_arg, _arg$1, _arg$2, _arg$3); /* */ $s = 18; case 18: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - elemOp[0] = _r$27; + _r$29 = dec[0].decOpFor(_arg, _arg$1, _arg$2, _arg$3); /* */ $s = 18; case 18: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + elemOp[0] = _r$29; ovfl[0] = overflow(name$2); - _r$28 = t[0].Elem(); /* */ $s = 19; case 19: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - _r$29 = _r$28.Kind(); /* */ $s = 20; case 20: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } - helper[0] = (_entry$2 = $mapIndex(decArrayHelper,reflect.Kind.keyFor(_r$29)), _entry$2 !== undefined ? _entry$2.v : $throwNilPointerError); + _r$30 = t[0].Elem(); /* */ $s = 19; case 19: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } + _r$31 = _r$30.Kind(); /* */ $s = 20; case 20: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } + helper[0] = (_entry$2 = $mapIndex(decArrayHelper,reflect.Kind.keyFor(_r$31)), _entry$2 !== undefined ? _entry$2.v : $throwNilPointerError); op[0] = (function(dec, elemOp, elemOp$1, elemOp$2, enginePtr, helper, helper$1, keyOp, op, ovfl, ovfl$1, ovfl$2, t) { return function Decoder·decOpFor·func1(i, state, value) { - var {_arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r$30, i, state, value, $s, $r, $c} = $restore(this, {i, state, value}); + var {_arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r$32, i, state, value, $s, $r, $c} = $restore(this, {i, state, value}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: _arg$4 = state; _arg$5 = $clone(value, reflect.Value); _arg$6 = elemOp[0].$get(); - _r$30 = t[0].Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } - _arg$7 = _r$30; + _r$32 = t[0].Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } + _arg$7 = _r$32; _arg$8 = ovfl[0]; _arg$9 = helper[0]; $r = state.dec.decodeArray(_arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } var $f = {$blk: Decoder·decOpFor·func1, $c: true, $r, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r$30, i, state, value, $s};return $f; + /* */ } return; } var $f = {$blk: Decoder·decOpFor·func1, $c: true, $r, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r$32, i, state, value, $s};return $f; }; })(dec, elemOp, elemOp$1, elemOp$2, enginePtr, helper, helper$1, keyOp, op, ovfl, ovfl$1, ovfl$2, t); $s = 16; continue; /* } else if (_1 === (21)) { */ case 12: - keyId = (_entry$3 = $mapIndex(dec[0].wireType,typeId.keyFor(wireId)), _entry$3 !== undefined ? _entry$3.v : ptrType$29.nil).MapT.Key; - elemId$1 = (_entry$4 = $mapIndex(dec[0].wireType,typeId.keyFor(wireId)), _entry$4 !== undefined ? _entry$4.v : ptrType$29.nil).MapT.Elem; + keyId = (_entry$3 = $mapIndex(dec[0].wireType,typeId.keyFor(wireId)), _entry$3 !== undefined ? _entry$3.v : ptrType$8.nil).MapT.Key; + elemId$1 = (_entry$4 = $mapIndex(dec[0].wireType,typeId.keyFor(wireId)), _entry$4 !== undefined ? _entry$4.v : ptrType$8.nil).MapT.Elem; _arg$4 = keyId; - _r$30 = t[0].Key(); /* */ $s = 21; case 21: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } - _arg$5 = _r$30; + _r$32 = t[0].Key(); /* */ $s = 21; case 21: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } + _arg$5 = _r$32; _arg$6 = "key of " + name$2; _arg$7 = inProgress; - _r$31 = dec[0].decOpFor(_arg$4, _arg$5, _arg$6, _arg$7); /* */ $s = 22; case 22: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } - keyOp[0] = _r$31; + _r$33 = dec[0].decOpFor(_arg$4, _arg$5, _arg$6, _arg$7); /* */ $s = 22; case 22: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } + keyOp[0] = _r$33; _arg$8 = elemId$1; - _r$32 = t[0].Elem(); /* */ $s = 23; case 23: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } - _arg$9 = _r$32; + _r$34 = t[0].Elem(); /* */ $s = 23; case 23: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } + _arg$9 = _r$34; _arg$10 = "element of " + name$2; _arg$11 = inProgress; - _r$33 = dec[0].decOpFor(_arg$8, _arg$9, _arg$10, _arg$11); /* */ $s = 24; case 24: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } - elemOp$1[0] = _r$33; + _r$35 = dec[0].decOpFor(_arg$8, _arg$9, _arg$10, _arg$11); /* */ $s = 24; case 24: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } + elemOp$1[0] = _r$35; ovfl$1[0] = overflow(name$2); op[0] = (function(dec, elemOp, elemOp$1, elemOp$2, enginePtr, helper, helper$1, keyOp, op, ovfl, ovfl$1, ovfl$2, t) { return function Decoder·decOpFor·func2(i, state, value) { var {i, state, value, $s, $r, $c} = $restore(this, {i, state, value}); @@ -51163,34 +50037,32 @@ $packages["encoding/gob"] = (function() { $s = 16; continue; /* } else if (_1 === (23)) { */ case 13: name$2 = "element of " + name$2; - _r$34 = t[0].Elem(); /* */ $s = 27; case 27: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } - _r$35 = _r$34.Kind(); /* */ $s = 28; case 28: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } - /* */ if (_r$35 === 8) { $s = 25; continue; } + _r$36 = t[0].Elem(); /* */ $s = 27; case 27: if($c) { $c = false; _r$36 = _r$36.$blk(); } if (_r$36 && _r$36.$blk !== undefined) { break s; } + _r$37 = _r$36.Kind(); /* */ $s = 28; case 28: if($c) { $c = false; _r$37 = _r$37.$blk(); } if (_r$37 && _r$37.$blk !== undefined) { break s; } + /* */ if (_r$37 === 8) { $s = 25; continue; } /* */ $s = 26; continue; - /* if (_r$35 === 8) { */ case 25: + /* if (_r$37 === 8) { */ case 25: op[0] = decUint8Slice; /* break; */ $s = 9; continue; /* } */ case 26: elemId$2 = 0; - _tuple = (_entry$5 = $mapIndex(builtinIdToType,typeId.keyFor(wireId)), _entry$5 !== undefined ? [_entry$5.v, true] : [$ifaceNil, false]); - tt = _tuple[0]; - ok = _tuple[1]; - if (ok) { - elemId$2 = $assertType(tt, ptrType$24).Elem; + tt = builtinIdToType(wireId); + if (!($interfaceIsEqual(tt, $ifaceNil))) { + elemId$2 = $assertType(tt, ptrType$27).Elem; } else { - elemId$2 = (_entry$6 = $mapIndex(dec[0].wireType,typeId.keyFor(wireId)), _entry$6 !== undefined ? _entry$6.v : ptrType$29.nil).SliceT.Elem; + elemId$2 = (_entry$5 = $mapIndex(dec[0].wireType,typeId.keyFor(wireId)), _entry$5 !== undefined ? _entry$5.v : ptrType$8.nil).SliceT.Elem; } _arg$12 = elemId$2; - _r$36 = t[0].Elem(); /* */ $s = 29; case 29: if($c) { $c = false; _r$36 = _r$36.$blk(); } if (_r$36 && _r$36.$blk !== undefined) { break s; } - _arg$13 = _r$36; + _r$38 = t[0].Elem(); /* */ $s = 29; case 29: if($c) { $c = false; _r$38 = _r$38.$blk(); } if (_r$38 && _r$38.$blk !== undefined) { break s; } + _arg$13 = _r$38; _arg$14 = name$2; _arg$15 = inProgress; - _r$37 = dec[0].decOpFor(_arg$12, _arg$13, _arg$14, _arg$15); /* */ $s = 30; case 30: if($c) { $c = false; _r$37 = _r$37.$blk(); } if (_r$37 && _r$37.$blk !== undefined) { break s; } - elemOp$2[0] = _r$37; + _r$39 = dec[0].decOpFor(_arg$12, _arg$13, _arg$14, _arg$15); /* */ $s = 30; case 30: if($c) { $c = false; _r$39 = _r$39.$blk(); } if (_r$39 && _r$39.$blk !== undefined) { break s; } + elemOp$2[0] = _r$39; ovfl$2[0] = overflow(name$2); - _r$38 = t[0].Elem(); /* */ $s = 31; case 31: if($c) { $c = false; _r$38 = _r$38.$blk(); } if (_r$38 && _r$38.$blk !== undefined) { break s; } - _r$39 = _r$38.Kind(); /* */ $s = 32; case 32: if($c) { $c = false; _r$39 = _r$39.$blk(); } if (_r$39 && _r$39.$blk !== undefined) { break s; } - helper$1[0] = (_entry$7 = $mapIndex(decSliceHelper,reflect.Kind.keyFor(_r$39)), _entry$7 !== undefined ? _entry$7.v : $throwNilPointerError); + _r$40 = t[0].Elem(); /* */ $s = 31; case 31: if($c) { $c = false; _r$40 = _r$40.$blk(); } if (_r$40 && _r$40.$blk !== undefined) { break s; } + _r$41 = _r$40.Kind(); /* */ $s = 32; case 32: if($c) { $c = false; _r$41 = _r$41.$blk(); } if (_r$41 && _r$41.$blk !== undefined) { break s; } + helper$1[0] = (_entry$6 = $mapIndex(decSliceHelper,reflect.Kind.keyFor(_r$41)), _entry$6 !== undefined ? _entry$6.v : $throwNilPointerError); op[0] = (function(dec, elemOp, elemOp$1, elemOp$2, enginePtr, helper, helper$1, keyOp, op, ovfl, ovfl$1, ovfl$2, t) { return function Decoder·decOpFor·func3(i, state, value) { var {i, state, value, $s, $r, $c} = $restore(this, {i, state, value}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: @@ -51200,12 +50072,12 @@ $packages["encoding/gob"] = (function() { }; })(dec, elemOp, elemOp$1, elemOp$2, enginePtr, helper, helper$1, keyOp, op, ovfl, ovfl$1, ovfl$2, t); $s = 16; continue; /* } else if (_1 === (25)) { */ case 14: - _r$40 = userType(typ); /* */ $s = 33; case 33: if($c) { $c = false; _r$40 = _r$40.$blk(); } if (_r$40 && _r$40.$blk !== undefined) { break s; } - ut$1 = _r$40; - _r$41 = dec[0].getDecEnginePtr(wireId, ut$1); /* */ $s = 34; case 34: if($c) { $c = false; _r$41 = _r$41.$blk(); } if (_r$41 && _r$41.$blk !== undefined) { break s; } - _tuple$1 = _r$41; - enginePtr[0] = _tuple$1[0]; - err = _tuple$1[1]; + _r$42 = userType(typ); /* */ $s = 33; case 33: if($c) { $c = false; _r$42 = _r$42.$blk(); } if (_r$42 && _r$42.$blk !== undefined) { break s; } + ut$1 = _r$42; + _r$43 = dec[0].getDecEnginePtr(wireId, ut$1); /* */ $s = 34; case 34: if($c) { $c = false; _r$43 = _r$43.$blk(); } if (_r$43 && _r$43.$blk !== undefined) { break s; } + _tuple = _r$43; + enginePtr[0] = _tuple[0]; + err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { error_(err); } @@ -51231,13 +50103,13 @@ $packages["encoding/gob"] = (function() { /* */ if (op[0] === $throwNilPointerError) { $s = 35; continue; } /* */ $s = 36; continue; /* if (op[0] === $throwNilPointerError) { */ case 35: - $r = errorf("decode can't handle type %s", new sliceType$2([rt])); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errorf("decode can't handle type %s", new sliceType$3([rt])); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 36: - $s = -1; return (op.$ptr || (op.$ptr = new ptrType$42(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, op))); - /* */ } return; } var $f = {$blk: decOpFor, $c: true, $r, $24r, _1, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _entry$6, _entry$7, _key, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$40, _r$41, _tuple, _tuple$1, dec, elemId, elemId$1, elemId$2, elemOp, elemOp$1, elemOp$2, enginePtr, err, helper, helper$1, inProgress, k, keyId, keyOp, name$2, ok, op, opPtr, ovfl, ovfl$1, ovfl$2, rt, t, tt, typ, ut, ut$1, wireId, $s};return $f; + $s = -1; return (op.$ptr || (op.$ptr = new ptrType$45(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, op))); + /* */ } return; } var $f = {$blk: decOpFor, $c: true, $r, $24r, _1, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _entry$6, _key, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$40, _r$41, _r$42, _r$43, _tuple, dec, elemId, elemId$1, elemId$2, elemOp, elemOp$1, elemOp$2, enginePtr, err, helper, helper$1, inProgress, k, keyId, keyOp, name$2, op, opPtr, ovfl, ovfl$1, ovfl$2, rt, t, tt, typ, ut, ut$1, wireId, $s};return $f; }; $ptrType(Decoder).prototype.decIgnoreOpFor = function decIgnoreOpFor(wireId, inProgress, depth) { - var {_arg, _arg$1, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _key, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _tuple, _tuple$1, dec, depth, elemId, elemId$1, elemId$2, elemOp, elemOp$1, elemOp$2, enginePtr, err, inProgress, keyId, keyOp, ok, op, opPtr, wire, wireId, $s, $r, $c} = $restore(this, {wireId, inProgress, depth}); + var {_arg, _arg$1, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _key, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _tuple, _tuple$1, dec, depth, elemId, elemId$1, elemId$2, elemOp, elemOp$1, elemOp$2, enginePtr, err, inProgress, keyId, keyOp, ok, op, opPtr, wire, wireId, $s, $r, $c} = $restore(this, {wireId, inProgress, depth}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: elemOp = [elemOp]; elemOp$1 = [elemOp$1]; @@ -51250,8 +50122,8 @@ $packages["encoding/gob"] = (function() { if (depth > maxIgnoreNestingDepth) { error_(errors.New("invalid nesting depth")); } - opPtr = (_entry = $mapIndex(inProgress,typeId.keyFor(wireId)), _entry !== undefined ? _entry.v : ptrType$42.nil); - if (!(opPtr === ptrType$42.nil)) { + opPtr = (_entry = $mapIndex(inProgress,typeId.keyFor(wireId)), _entry !== undefined ? _entry.v : ptrType$45.nil); + if (!(opPtr === ptrType$45.nil)) { $s = -1; return opPtr; } _tuple = (_entry$1 = $mapIndex(decIgnoreOpMap,typeId.keyFor(wireId)), _entry$1 !== undefined ? [_entry$1.v, true] : [$throwNilPointerError, false]); @@ -51260,7 +50132,7 @@ $packages["encoding/gob"] = (function() { /* */ if (!ok) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!ok) { */ case 1: - _key = wireId; (inProgress || $throwRuntimeError("assignment to entry in nil map")).set(typeId.keyFor(_key), { k: _key, v: (op.$ptr || (op.$ptr = new ptrType$42(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, op))) }); + _key = wireId; (inProgress || $throwRuntimeError("assignment to entry in nil map")).set(typeId.keyFor(_key), { k: _key, v: (op.$ptr || (op.$ptr = new ptrType$45(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, op))) }); /* */ if (wireId === tInterface) { $s = 3; continue; } /* */ $s = 4; continue; /* if (wireId === tInterface) { */ case 3: @@ -51271,25 +50143,25 @@ $packages["encoding/gob"] = (function() { $s = -1; return; /* */ } return; } var $f = {$blk: Decoder·decIgnoreOpFor·func1, $c: true, $r, i, state, value, $s};return $f; }; })(elemOp, elemOp$1, elemOp$2, enginePtr, keyOp, op, wire); - $s = -1; return (op.$ptr || (op.$ptr = new ptrType$42(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, op))); + $s = -1; return (op.$ptr || (op.$ptr = new ptrType$45(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, op))); /* } */ case 4: - wire[0] = (_entry$2 = $mapIndex(dec.wireType,typeId.keyFor(wireId)), _entry$2 !== undefined ? _entry$2.v : ptrType$29.nil); - /* */ if (wire[0] === ptrType$29.nil) { $s = 6; continue; } - /* */ if (!(wire[0].ArrayT === ptrType$23.nil)) { $s = 7; continue; } - /* */ if (!(wire[0].MapT === ptrType$26.nil)) { $s = 8; continue; } - /* */ if (!(wire[0].SliceT === ptrType$24.nil)) { $s = 9; continue; } - /* */ if (!(wire[0].StructT === ptrType$25.nil)) { $s = 10; continue; } - /* */ if ((!(wire[0].GobEncoderT === ptrType$27.nil)) || (!(wire[0].BinaryMarshalerT === ptrType$27.nil)) || (!(wire[0].TextMarshalerT === ptrType$27.nil))) { $s = 11; continue; } + wire[0] = (_entry$2 = $mapIndex(dec.wireType,typeId.keyFor(wireId)), _entry$2 !== undefined ? _entry$2.v : ptrType$8.nil); + /* */ if (wire[0] === ptrType$8.nil) { $s = 6; continue; } + /* */ if (!(wire[0].ArrayT === ptrType$25.nil)) { $s = 7; continue; } + /* */ if (!(wire[0].MapT === ptrType$30.nil)) { $s = 8; continue; } + /* */ if (!(wire[0].SliceT === ptrType$27.nil)) { $s = 9; continue; } + /* */ if (!(wire[0].StructT === ptrType$28.nil)) { $s = 10; continue; } + /* */ if ((!(wire[0].GobEncoderT === ptrType$31.nil)) || (!(wire[0].BinaryMarshalerT === ptrType$31.nil)) || (!(wire[0].TextMarshalerT === ptrType$31.nil))) { $s = 11; continue; } /* */ $s = 12; continue; - /* if (wire[0] === ptrType$29.nil) { */ case 6: - _r$22 = new typeId(wireId).string(); /* */ $s = 13; case 13: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _arg = new $String(_r$22); - $r = errorf("bad data: undefined type %s", new sliceType$2([_arg])); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* if (wire[0] === ptrType$8.nil) { */ case 6: + _r$24 = new typeId(wireId).string(); /* */ $s = 13; case 13: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _arg = new $String(_r$24); + $r = errorf("bad data: undefined type %s", new sliceType$3([_arg])); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 12; continue; - /* } else if (!(wire[0].ArrayT === ptrType$23.nil)) { */ case 7: + /* } else if (!(wire[0].ArrayT === ptrType$25.nil)) { */ case 7: elemId = wire[0].ArrayT.Elem; - _r$23 = dec.decIgnoreOpFor(elemId, inProgress, depth + 1 >> 0); /* */ $s = 15; case 15: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - elemOp[0] = _r$23; + _r$25 = dec.decIgnoreOpFor(elemId, inProgress, depth + 1 >> 0); /* */ $s = 15; case 15: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + elemOp[0] = _r$25; op[0] = (function(elemOp, elemOp$1, elemOp$2, enginePtr, keyOp, op, wire) { return function Decoder·decIgnoreOpFor·func2(i, state, value) { var {i, state, value, $s, $r, $c} = $restore(this, {i, state, value}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: @@ -51298,13 +50170,13 @@ $packages["encoding/gob"] = (function() { /* */ } return; } var $f = {$blk: Decoder·decIgnoreOpFor·func2, $c: true, $r, i, state, value, $s};return $f; }; })(elemOp, elemOp$1, elemOp$2, enginePtr, keyOp, op, wire); $s = 12; continue; - /* } else if (!(wire[0].MapT === ptrType$26.nil)) { */ case 8: - keyId = (_entry$3 = $mapIndex(dec.wireType,typeId.keyFor(wireId)), _entry$3 !== undefined ? _entry$3.v : ptrType$29.nil).MapT.Key; - elemId$1 = (_entry$4 = $mapIndex(dec.wireType,typeId.keyFor(wireId)), _entry$4 !== undefined ? _entry$4.v : ptrType$29.nil).MapT.Elem; - _r$24 = dec.decIgnoreOpFor(keyId, inProgress, depth + 1 >> 0); /* */ $s = 16; case 16: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - keyOp[0] = _r$24; - _r$25 = dec.decIgnoreOpFor(elemId$1, inProgress, depth + 1 >> 0); /* */ $s = 17; case 17: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - elemOp$1[0] = _r$25; + /* } else if (!(wire[0].MapT === ptrType$30.nil)) { */ case 8: + keyId = (_entry$3 = $mapIndex(dec.wireType,typeId.keyFor(wireId)), _entry$3 !== undefined ? _entry$3.v : ptrType$8.nil).MapT.Key; + elemId$1 = (_entry$4 = $mapIndex(dec.wireType,typeId.keyFor(wireId)), _entry$4 !== undefined ? _entry$4.v : ptrType$8.nil).MapT.Elem; + _r$26 = dec.decIgnoreOpFor(keyId, inProgress, depth + 1 >> 0); /* */ $s = 16; case 16: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + keyOp[0] = _r$26; + _r$27 = dec.decIgnoreOpFor(elemId$1, inProgress, depth + 1 >> 0); /* */ $s = 17; case 17: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + elemOp$1[0] = _r$27; op[0] = (function(elemOp, elemOp$1, elemOp$2, enginePtr, keyOp, op, wire) { return function Decoder·decIgnoreOpFor·func3(i, state, value) { var {i, state, value, $s, $r, $c} = $restore(this, {i, state, value}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: @@ -51313,10 +50185,10 @@ $packages["encoding/gob"] = (function() { /* */ } return; } var $f = {$blk: Decoder·decIgnoreOpFor·func3, $c: true, $r, i, state, value, $s};return $f; }; })(elemOp, elemOp$1, elemOp$2, enginePtr, keyOp, op, wire); $s = 12; continue; - /* } else if (!(wire[0].SliceT === ptrType$24.nil)) { */ case 9: + /* } else if (!(wire[0].SliceT === ptrType$27.nil)) { */ case 9: elemId$2 = wire[0].SliceT.Elem; - _r$26 = dec.decIgnoreOpFor(elemId$2, inProgress, depth + 1 >> 0); /* */ $s = 18; case 18: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - elemOp$2[0] = _r$26; + _r$28 = dec.decIgnoreOpFor(elemId$2, inProgress, depth + 1 >> 0); /* */ $s = 18; case 18: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + elemOp$2[0] = _r$28; op[0] = (function(elemOp, elemOp$1, elemOp$2, enginePtr, keyOp, op, wire) { return function Decoder·decIgnoreOpFor·func4(i, state, value) { var {i, state, value, $s, $r, $c} = $restore(this, {i, state, value}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: @@ -51325,9 +50197,9 @@ $packages["encoding/gob"] = (function() { /* */ } return; } var $f = {$blk: Decoder·decIgnoreOpFor·func4, $c: true, $r, i, state, value, $s};return $f; }; })(elemOp, elemOp$1, elemOp$2, enginePtr, keyOp, op, wire); $s = 12; continue; - /* } else if (!(wire[0].StructT === ptrType$25.nil)) { */ case 10: - _r$27 = dec.getIgnoreEnginePtr(wireId); /* */ $s = 19; case 19: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - _tuple$1 = _r$27; + /* } else if (!(wire[0].StructT === ptrType$28.nil)) { */ case 10: + _r$29 = dec.getIgnoreEnginePtr(wireId); /* */ $s = 19; case 19: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + _tuple$1 = _r$29; enginePtr[0] = _tuple$1[0]; err = _tuple$1[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { @@ -51341,7 +50213,7 @@ $packages["encoding/gob"] = (function() { /* */ } return; } var $f = {$blk: Decoder·decIgnoreOpFor·func5, $c: true, $r, i, state, value, $s};return $f; }; })(elemOp, elemOp$1, elemOp$2, enginePtr, keyOp, op, wire); $s = 12; continue; - /* } else if ((!(wire[0].GobEncoderT === ptrType$27.nil)) || (!(wire[0].BinaryMarshalerT === ptrType$27.nil)) || (!(wire[0].TextMarshalerT === ptrType$27.nil))) { */ case 11: + /* } else if ((!(wire[0].GobEncoderT === ptrType$31.nil)) || (!(wire[0].BinaryMarshalerT === ptrType$31.nil)) || (!(wire[0].TextMarshalerT === ptrType$31.nil))) { */ case 11: op[0] = (function(elemOp, elemOp$1, elemOp$2, enginePtr, keyOp, op, wire) { return function Decoder·decIgnoreOpFor·func6(i, state, value) { var {i, state, value, $s, $r, $c} = $restore(this, {i, state, value}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: @@ -51355,15 +50227,15 @@ $packages["encoding/gob"] = (function() { /* */ if (op[0] === $throwNilPointerError) { $s = 20; continue; } /* */ $s = 21; continue; /* if (op[0] === $throwNilPointerError) { */ case 20: - _r$28 = new typeId(wireId).string(); /* */ $s = 22; case 22: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - _arg$1 = new $String(_r$28); - $r = errorf("bad data: ignore can't handle type %s", new sliceType$2([_arg$1])); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$30 = new typeId(wireId).string(); /* */ $s = 22; case 22: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } + _arg$1 = new $String(_r$30); + $r = errorf("bad data: ignore can't handle type %s", new sliceType$3([_arg$1])); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 21: - $s = -1; return (op.$ptr || (op.$ptr = new ptrType$42(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, op))); - /* */ } return; } var $f = {$blk: decIgnoreOpFor, $c: true, $r, _arg, _arg$1, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _key, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _tuple, _tuple$1, dec, depth, elemId, elemId$1, elemId$2, elemOp, elemOp$1, elemOp$2, enginePtr, err, inProgress, keyId, keyOp, ok, op, opPtr, wire, wireId, $s};return $f; + $s = -1; return (op.$ptr || (op.$ptr = new ptrType$45(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, op))); + /* */ } return; } var $f = {$blk: decIgnoreOpFor, $c: true, $r, _arg, _arg$1, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _key, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _tuple, _tuple$1, dec, depth, elemId, elemId$1, elemId$2, elemOp, elemOp$1, elemOp$2, enginePtr, err, inProgress, keyId, keyOp, ok, op, opPtr, wire, wireId, $s};return $f; }; $ptrType(Decoder).prototype.gobDecodeOpFor = function gobDecodeOpFor(ut) { - var {_r$22, dec, i, op, rcvrType, ut, $s, $r, $c} = $restore(this, {ut}); + var {_r$24, dec, i, op, rcvrType, ut, $s, $r, $c} = $restore(this, {ut}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: op = [op]; rcvrType = [rcvrType]; @@ -51380,19 +50252,19 @@ $packages["encoding/gob"] = (function() { i = 0; /* while (true) { */ case 4: /* if (!(i < ut[0].decIndir)) { break; } */ if(!(i < ut[0].decIndir)) { $s = 5; continue; } - _r$22 = rcvrType[0].Elem(); /* */ $s = 6; case 6: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - rcvrType[0] = _r$22; + _r$24 = rcvrType[0].Elem(); /* */ $s = 6; case 6: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + rcvrType[0] = _r$24; i = i + (1) << 24 >> 24; $s = 4; continue; case 5: /* } */ case 3: op[0] = $throwNilPointerError; op[0] = (function(op, rcvrType, ut) { return function Decoder·gobDecodeOpFor·func1(i$1, state, value) { - var {_r$23, _v, i$1, state, value, $s, $r, $c} = $restore(this, {i$1, state, value}); + var {_r$25, _v, i$1, state, value, $s, $r, $c} = $restore(this, {i$1, state, value}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if (!(!(($clone(value, reflect.Value).Kind() === 22)))) { _v = false; $s = 3; continue s; } - _r$23 = rcvrType[0].Kind(); /* */ $s = 4; case 4: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _v = _r$23 === 22; case 3: + _r$25 = rcvrType[0].Kind(); /* */ $s = 4; case 4: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _v = _r$25 === 22; case 3: /* */ if (_v) { $s = 1; continue; } /* */ $s = 2; continue; /* if (_v) { */ case 1: @@ -51400,13 +50272,13 @@ $packages["encoding/gob"] = (function() { /* } */ case 2: $r = state.dec.decodeGobDecoder(ut[0], state, $clone(value, reflect.Value)); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } var $f = {$blk: Decoder·gobDecodeOpFor·func1, $c: true, $r, _r$23, _v, i$1, state, value, $s};return $f; + /* */ } return; } var $f = {$blk: Decoder·gobDecodeOpFor·func1, $c: true, $r, _r$25, _v, i$1, state, value, $s};return $f; }; })(op, rcvrType, ut); - $s = -1; return (op.$ptr || (op.$ptr = new ptrType$42(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, op))); - /* */ } return; } var $f = {$blk: gobDecodeOpFor, $c: true, $r, _r$22, dec, i, op, rcvrType, ut, $s};return $f; + $s = -1; return (op.$ptr || (op.$ptr = new ptrType$45(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, op))); + /* */ } return; } var $f = {$blk: gobDecodeOpFor, $c: true, $r, _r$24, dec, i, op, rcvrType, ut, $s};return $f; }; $ptrType(Decoder).prototype.compatibleType = function compatibleType(fr, fw, inProgress) { - var {$24r, $24r$1, $24r$2, MapType, _1, _entry, _entry$1, _entry$2, _key, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _tuple, _tuple$1, _tuple$2, _tuple$3, _v, _v$1, _v$2, array, dec, elem, fr, fw, inProgress, ok, ok$1, ok$2, rhs, sw, t, tt, ut, wire, $s, $r, $c} = $restore(this, {fr, fw, inProgress}); + var {$24r, $24r$1, $24r$2, MapType, _1, _entry, _entry$1, _key, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _tuple, _tuple$1, _tuple$2, _v, _v$1, _v$2, array, dec, elem, fr, fw, inProgress, ok, ok$1, rhs, sw, t, tt, ut, wire, $s, $r, $c} = $restore(this, {fr, fw, inProgress}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: dec = this; _tuple = (_entry = $mapIndex(inProgress,reflect.Type.keyFor(fr)), _entry !== undefined ? [_entry.v, true] : [0, false]); @@ -51416,20 +50288,20 @@ $packages["encoding/gob"] = (function() { $s = -1; return rhs === fw; } _key = fr; (inProgress || $throwRuntimeError("assignment to entry in nil map")).set(reflect.Type.keyFor(_key), { k: _key, v: fw }); - _r$22 = userType(fr); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - ut = _r$22; - _tuple$1 = (_entry$1 = $mapIndex(dec.wireType,typeId.keyFor(fw)), _entry$1 !== undefined ? [_entry$1.v, true] : [ptrType$29.nil, false]); + _r$24 = userType(fr); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + ut = _r$24; + _tuple$1 = (_entry$1 = $mapIndex(dec.wireType,typeId.keyFor(fw)), _entry$1 !== undefined ? [_entry$1.v, true] : [ptrType$8.nil, false]); wire = _tuple$1[0]; ok$1 = _tuple$1[1]; - if (!(((ut.externalDec === 1)) === (ok$1 && !(wire.GobEncoderT === ptrType$27.nil))) || !(((ut.externalDec === 2)) === (ok$1 && !(wire.BinaryMarshalerT === ptrType$27.nil))) || !(((ut.externalDec === 3)) === (ok$1 && !(wire.TextMarshalerT === ptrType$27.nil)))) { + if (!(((ut.externalDec === 1)) === (ok$1 && !(wire.GobEncoderT === ptrType$31.nil))) || !(((ut.externalDec === 2)) === (ok$1 && !(wire.BinaryMarshalerT === ptrType$31.nil))) || !(((ut.externalDec === 3)) === (ok$1 && !(wire.TextMarshalerT === ptrType$31.nil)))) { $s = -1; return false; } if (!((ut.externalDec === 0))) { $s = -1; return true; } t = ut.base; - _r$23 = t.Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _1 = _r$23; + _r$25 = t.Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _1 = _r$25; /* */ if (_1 === (1)) { $s = 4; continue; } /* */ if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { $s = 5; continue; } /* */ if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { $s = 6; continue; } @@ -51457,54 +50329,52 @@ $packages["encoding/gob"] = (function() { /* } else if (_1 === (20)) { */ case 10: $s = -1; return fw === tInterface; /* } else if (_1 === (17)) { */ case 11: - if (!ok$1 || wire.ArrayT === ptrType$23.nil) { + if (!ok$1 || wire.ArrayT === ptrType$25.nil) { $s = -1; return false; } array = wire.ArrayT; - _r$24 = t.Len(); /* */ $s = 18; case 18: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - if (!(_r$24 === array.Len)) { _v = false; $s = 17; continue s; } - _r$25 = t.Elem(); /* */ $s = 19; case 19: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - _r$26 = dec.compatibleType(_r$25, array.Elem, inProgress); /* */ $s = 20; case 20: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - _v = _r$26; case 17: + _r$26 = t.Len(); /* */ $s = 18; case 18: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + if (!(_r$26 === array.Len)) { _v = false; $s = 17; continue s; } + _r$27 = t.Elem(); /* */ $s = 19; case 19: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + _r$28 = dec.compatibleType(_r$27, array.Elem, inProgress); /* */ $s = 20; case 20: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + _v = _r$28; case 17: $24r = _v; $s = 21; case 21: return $24r; /* } else if (_1 === (21)) { */ case 12: - if (!ok$1 || wire.MapT === ptrType$26.nil) { + if (!ok$1 || wire.MapT === ptrType$30.nil) { $s = -1; return false; } MapType = wire.MapT; - _r$27 = t.Key(); /* */ $s = 23; case 23: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - _r$28 = dec.compatibleType(_r$27, MapType.Key, inProgress); /* */ $s = 24; case 24: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - if (!(_r$28)) { _v$1 = false; $s = 22; continue s; } - _r$29 = t.Elem(); /* */ $s = 25; case 25: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } - _r$30 = dec.compatibleType(_r$29, MapType.Elem, inProgress); /* */ $s = 26; case 26: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } - _v$1 = _r$30; case 22: + _r$29 = t.Key(); /* */ $s = 23; case 23: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + _r$30 = dec.compatibleType(_r$29, MapType.Key, inProgress); /* */ $s = 24; case 24: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } + if (!(_r$30)) { _v$1 = false; $s = 22; continue s; } + _r$31 = t.Elem(); /* */ $s = 25; case 25: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } + _r$32 = dec.compatibleType(_r$31, MapType.Elem, inProgress); /* */ $s = 26; case 26: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } + _v$1 = _r$32; case 22: $24r$1 = _v$1; $s = 27; case 27: return $24r$1; /* } else if (_1 === (23)) { */ case 13: - _r$31 = t.Elem(); /* */ $s = 30; case 30: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } - _r$32 = _r$31.Kind(); /* */ $s = 31; case 31: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } - /* */ if (_r$32 === 8) { $s = 28; continue; } + _r$33 = t.Elem(); /* */ $s = 30; case 30: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } + _r$34 = _r$33.Kind(); /* */ $s = 31; case 31: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } + /* */ if (_r$34 === 8) { $s = 28; continue; } /* */ $s = 29; continue; - /* if (_r$32 === 8) { */ case 28: + /* if (_r$34 === 8) { */ case 28: $s = -1; return fw === tBytes; /* } */ case 29: - sw = ptrType$24.nil; - _tuple$2 = (_entry$2 = $mapIndex(builtinIdToType,typeId.keyFor(fw)), _entry$2 !== undefined ? [_entry$2.v, true] : [$ifaceNil, false]); - tt = _tuple$2[0]; - ok$2 = _tuple$2[1]; - if (ok$2) { - _tuple$3 = $assertType(tt, ptrType$24, true); - sw = _tuple$3[0]; - } else if (!(wire === ptrType$29.nil)) { + sw = ptrType$27.nil; + tt = builtinIdToType(fw); + if (!($interfaceIsEqual(tt, $ifaceNil))) { + _tuple$2 = $assertType(tt, ptrType$27, true); + sw = _tuple$2[0]; + } else if (!(wire === ptrType$8.nil)) { sw = wire.SliceT; } - _r$33 = t.Elem(); /* */ $s = 32; case 32: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } - _r$34 = userType(_r$33); /* */ $s = 33; case 33: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } - elem = _r$34.base; - if (!(!(sw === ptrType$24.nil))) { _v$2 = false; $s = 34; continue s; } - _r$35 = dec.compatibleType(elem, sw.Elem, inProgress); /* */ $s = 35; case 35: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } - _v$2 = _r$35; case 34: + _r$35 = t.Elem(); /* */ $s = 32; case 32: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } + _r$36 = userType(_r$35); /* */ $s = 33; case 33: if($c) { $c = false; _r$36 = _r$36.$blk(); } if (_r$36 && _r$36.$blk !== undefined) { break s; } + elem = _r$36.base; + if (!(!(sw === ptrType$27.nil))) { _v$2 = false; $s = 34; continue s; } + _r$37 = dec.compatibleType(elem, sw.Elem, inProgress); /* */ $s = 35; case 35: if($c) { $c = false; _r$37 = _r$37.$blk(); } if (_r$37 && _r$37.$blk !== undefined) { break s; } + _v$2 = _r$37; case 34: $24r$2 = _v$2; $s = 36; case 36: return $24r$2; /* } else if (_1 === (25)) { */ case 14: @@ -51514,121 +50384,119 @@ $packages["encoding/gob"] = (function() { /* } */ case 16: case 2: $s = -1; return false; - /* */ } return; } var $f = {$blk: compatibleType, $c: true, $r, $24r, $24r$1, $24r$2, MapType, _1, _entry, _entry$1, _entry$2, _key, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _tuple, _tuple$1, _tuple$2, _tuple$3, _v, _v$1, _v$2, array, dec, elem, fr, fw, inProgress, ok, ok$1, ok$2, rhs, sw, t, tt, ut, wire, $s};return $f; + /* */ } return; } var $f = {$blk: compatibleType, $c: true, $r, $24r, $24r$1, $24r$2, MapType, _1, _entry, _entry$1, _key, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _tuple, _tuple$1, _tuple$2, _v, _v$1, _v$2, array, dec, elem, fr, fw, inProgress, ok, ok$1, rhs, sw, t, tt, ut, wire, $s};return $f; }; $ptrType(Decoder).prototype.typeString = function typeString(remoteId) { - var {$24r, _entry, _entry$1, _r$22, dec, remoteId, t, $s, $deferred, $r, $c} = $restore(this, {remoteId}); + var {$24r, _entry, _r$24, dec, remoteId, t, $s, $deferred, $r, $c} = $restore(this, {remoteId}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); dec = this; typeLock.Lock(); $deferred.push([$methodVal(typeLock, "Unlock"), []]); - t = (_entry = $mapIndex(idToType,typeId.keyFor(remoteId)), _entry !== undefined ? _entry.v : $ifaceNil); + t = idToType(remoteId); /* */ if (!($interfaceIsEqual(t, $ifaceNil))) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!($interfaceIsEqual(t, $ifaceNil))) { */ case 1: - _r$22 = t.string(); /* */ $s = 3; case 3: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - $24r = _r$22; + _r$24 = t.string(); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + $24r = _r$24; $s = 4; case 4: return $24r; /* } */ case 2: - $s = -1; return (_entry$1 = $mapIndex(dec.wireType,typeId.keyFor(remoteId)), _entry$1 !== undefined ? _entry$1.v : ptrType$29.nil).string(); - /* */ } return; } } catch(err) { $err = err; $s = -1; return ""; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: typeString, $c: true, $r, $24r, _entry, _entry$1, _r$22, dec, remoteId, t, $s, $deferred};return $f; } } + $s = -1; return (_entry = $mapIndex(dec.wireType,typeId.keyFor(remoteId)), _entry !== undefined ? _entry.v : ptrType$8.nil).string(); + /* */ } return; } } catch(err) { $err = err; $s = -1; return ""; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: typeString, $c: true, $r, $24r, _entry, _r$24, dec, remoteId, t, $s, $deferred};return $f; } } }; $ptrType(Decoder).prototype.compileSingle = function compileSingle(remoteId, ut) { - var {_r$22, _r$23, _r$24, _r$25, _r$26, _tmp, _tmp$1, _tmp$2, _tmp$3, dec, engine, err, name$2, op, ovfl, remoteId, remoteType, rt, ut, x$2, $s, $r, $c} = $restore(this, {remoteId, ut}); + var {_r$24, _r$25, _r$26, _r$27, _r$28, _tmp, _tmp$1, _tmp$2, _tmp$3, dec, engine, err, name$2, op, ovfl, remoteId, remoteType, rt, ut, x, $s, $r, $c} = $restore(this, {remoteId, ut}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - engine = ptrType$43.nil; + engine = ptrType$46.nil; err = $ifaceNil; dec = this; rt = ut.user; engine = new decEngine.ptr(sliceType$23.nil, 0); engine.instr = $makeSlice(sliceType$23, 1); - _r$22 = rt.String(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - name$2 = _r$22; - _r$23 = dec.compatibleType(rt, remoteId, new $global.Map()); /* */ $s = 4; case 4: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - /* */ if (!_r$23) { $s = 2; continue; } + _r$24 = rt.String(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + name$2 = _r$24; + _r$25 = dec.compatibleType(rt, remoteId, new $global.Map()); /* */ $s = 4; case 4: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + /* */ if (!_r$25) { $s = 2; continue; } /* */ $s = 3; continue; - /* if (!_r$23) { */ case 2: - _r$24 = dec.typeString(remoteId); /* */ $s = 5; case 5: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - remoteType = _r$24; - _r$25 = ut.base.Kind(); /* */ $s = 8; case 8: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - /* */ if ((_r$25 === 20) && !((remoteId === tInterface))) { $s = 6; continue; } + /* if (!_r$25) { */ case 2: + _r$26 = dec.typeString(remoteId); /* */ $s = 5; case 5: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + remoteType = _r$26; + _r$27 = ut.base.Kind(); /* */ $s = 8; case 8: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + /* */ if ((_r$27 === 20) && !((remoteId === tInterface))) { $s = 6; continue; } /* */ $s = 7; continue; - /* if ((_r$25 === 20) && !((remoteId === tInterface))) { */ case 6: - _tmp = ptrType$43.nil; + /* if ((_r$27 === 20) && !((remoteId === tInterface))) { */ case 6: + _tmp = ptrType$46.nil; _tmp$1 = errors.New("gob: local interface type " + name$2 + " can only be decoded from remote interface type; received concrete type " + remoteType); engine = _tmp; err = _tmp$1; $s = -1; return [engine, err]; /* } */ case 7: - _tmp$2 = ptrType$43.nil; + _tmp$2 = ptrType$46.nil; _tmp$3 = errors.New("gob: decoding into local type " + name$2 + ", received remote type " + remoteType); engine = _tmp$2; err = _tmp$3; $s = -1; return [engine, err]; /* } */ case 3: - _r$26 = dec.decOpFor(remoteId, rt, name$2, new $global.Map()); /* */ $s = 9; case 9: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - op = _r$26; + _r$28 = dec.decOpFor(remoteId, rt, name$2, new $global.Map()); /* */ $s = 9; case 9: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + op = _r$28; ovfl = errors.New("value for \"" + name$2 + "\" out of range"); - decInstr.copy((x$2 = engine.instr, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])), new decInstr.ptr(op.$get(), 0, sliceType$4.nil, ovfl)); + decInstr.copy((x = engine.instr, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])), new decInstr.ptr(op.$get(), 0, sliceType$5.nil, ovfl)); engine.numInstr = 1; $s = -1; return [engine, err]; - /* */ } return; } var $f = {$blk: compileSingle, $c: true, $r, _r$22, _r$23, _r$24, _r$25, _r$26, _tmp, _tmp$1, _tmp$2, _tmp$3, dec, engine, err, name$2, op, ovfl, remoteId, remoteType, rt, ut, x$2, $s};return $f; + /* */ } return; } var $f = {$blk: compileSingle, $c: true, $r, _r$24, _r$25, _r$26, _r$27, _r$28, _tmp, _tmp$1, _tmp$2, _tmp$3, dec, engine, err, name$2, op, ovfl, remoteId, remoteType, rt, ut, x, $s};return $f; }; $ptrType(Decoder).prototype.compileIgnoreSingle = function compileIgnoreSingle(remoteId) { - var {_r$22, _r$23, _r$24, dec, engine, op, ovfl, remoteId, x$2, $s, $r, $c} = $restore(this, {remoteId}); + var {_r$24, _r$25, _r$26, dec, engine, op, ovfl, remoteId, x, $s, $r, $c} = $restore(this, {remoteId}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: dec = this; engine = new decEngine.ptr(sliceType$23.nil, 0); engine.instr = $makeSlice(sliceType$23, 1); - _r$22 = dec.decIgnoreOpFor(remoteId, new $global.Map(), 0); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - op = _r$22; - _r$23 = dec.typeString(remoteId); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _r$24 = overflow(_r$23); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - ovfl = _r$24; - decInstr.copy((x$2 = engine.instr, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])), new decInstr.ptr(op.$get(), 0, sliceType$4.nil, ovfl)); + _r$24 = dec.decIgnoreOpFor(remoteId, new $global.Map(), 0); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + op = _r$24; + _r$25 = dec.typeString(remoteId); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _r$26 = overflow(_r$25); /* */ $s = 3; case 3: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + ovfl = _r$26; + decInstr.copy((x = engine.instr, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])), new decInstr.ptr(op.$get(), 0, sliceType$5.nil, ovfl)); engine.numInstr = 1; $s = -1; return engine; - /* */ } return; } var $f = {$blk: compileIgnoreSingle, $c: true, $r, _r$22, _r$23, _r$24, dec, engine, op, ovfl, remoteId, x$2, $s};return $f; + /* */ } return; } var $f = {$blk: compileIgnoreSingle, $c: true, $r, _r$24, _r$25, _r$26, dec, engine, op, ovfl, remoteId, x, $s};return $f; }; $ptrType(Decoder).prototype.compileDec = function compileDec(remoteId, ut) { - var {$24r, _entry, _entry$1, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _tuple, _tuple$1, _tuple$2, _tuple$3, dec, engine, err, fieldnum, localField, ok, op, op$1, ovfl, present, remoteId, rt, seen, srt, t, ut, wire, wireField, wireStruct, x$2, x$3, x$4, $s, $deferred, $r, $c} = $restore(this, {remoteId, ut}); + var {$24r, _entry, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _tuple, _tuple$1, _tuple$2, dec, engine, err, fieldnum, localField, op, op$1, ovfl, present, remoteId, rt, seen, srt, t, ut, wire, wireField, wireStruct, x, x$1, x$2, $s, $deferred, $r, $c} = $restore(this, {remoteId, ut}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); err = [err]; - engine = ptrType$43.nil; + engine = ptrType$46.nil; err[0] = $ifaceNil; dec = this; - $deferred.push([catchError, [(err.$ptr || (err.$ptr = new ptrType$37(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, err)))]]); + $deferred.push([catchError, [(err.$ptr || (err.$ptr = new ptrType$39(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, err)))]]); rt = ut.base; srt = rt; - _r$22 = srt.Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - /* */ if (!((_r$22 === 25)) || !((ut.externalDec === 0))) { $s = 1; continue; } + _r$24 = srt.Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + /* */ if (!((_r$24 === 25)) || !((ut.externalDec === 0))) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (!((_r$22 === 25)) || !((ut.externalDec === 0))) { */ case 1: - _r$23 = dec.compileSingle(remoteId, ut); /* */ $s = 4; case 4: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _tuple = _r$23; + /* if (!((_r$24 === 25)) || !((ut.externalDec === 0))) { */ case 1: + _r$25 = dec.compileSingle(remoteId, ut); /* */ $s = 4; case 4: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _tuple = _r$25; engine = _tuple[0]; err[0] = _tuple[1]; $24r = [engine, err[0]]; $s = 5; case 5: return $24r; /* } */ case 2: - wireStruct = ptrType$25.nil; - _tuple$1 = (_entry = $mapIndex(builtinIdToType,typeId.keyFor(remoteId)), _entry !== undefined ? [_entry.v, true] : [$ifaceNil, false]); - t = _tuple$1[0]; - ok = _tuple$1[1]; - if (ok) { - _tuple$2 = $assertType(t, ptrType$25, true); - wireStruct = _tuple$2[0]; + wireStruct = ptrType$28.nil; + t = builtinIdToType(remoteId); + if (!($interfaceIsEqual(t, $ifaceNil))) { + _tuple$1 = $assertType(t, ptrType$28, true); + wireStruct = _tuple$1[0]; } else { - wire = (_entry$1 = $mapIndex(dec.wireType,typeId.keyFor(remoteId)), _entry$1 !== undefined ? _entry$1.v : ptrType$29.nil); - if (wire === ptrType$29.nil) { + wire = (_entry = $mapIndex(dec.wireType,typeId.keyFor(remoteId)), _entry !== undefined ? _entry.v : ptrType$8.nil); + if (wire === ptrType$8.nil) { error_(errBadType); } wireStruct = wire.StructT; } - /* */ if (wireStruct === ptrType$25.nil) { $s = 6; continue; } + /* */ if (wireStruct === ptrType$28.nil) { $s = 6; continue; } /* */ $s = 7; continue; - /* if (wireStruct === ptrType$25.nil) { */ case 6: - $r = errorf("type mismatch in decoder: want struct type %s; got non-struct", new sliceType$2([rt])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* if (wireStruct === ptrType$28.nil) { */ case 6: + $r = errorf("type mismatch in decoder: want struct type %s; got non-struct", new sliceType$3([rt])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 7: engine = new decEngine.ptr(sliceType$23.nil, 0); engine.instr = $makeSlice(sliceType$23, wireStruct.Field.$length); @@ -51636,46 +50504,46 @@ $packages["encoding/gob"] = (function() { fieldnum = 0; /* while (true) { */ case 9: /* if (!(fieldnum < wireStruct.Field.$length)) { break; } */ if(!(fieldnum < wireStruct.Field.$length)) { $s = 10; continue; } - wireField = (x$2 = wireStruct.Field, ((fieldnum < 0 || fieldnum >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + fieldnum])); + wireField = $clone((x = wireStruct.Field, ((fieldnum < 0 || fieldnum >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + fieldnum])), fieldType); /* */ if (wireField.Name === "") { $s = 11; continue; } /* */ $s = 12; continue; /* if (wireField.Name === "") { */ case 11: - $r = errorf("empty name for remote field of type %s", new sliceType$2([new $String(wireStruct.CommonType.Name)])); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errorf("empty name for remote field of type %s", new sliceType$3([new $String(wireStruct.CommonType.Name)])); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 12: ovfl = overflow(wireField.Name); - _r$24 = srt.FieldByName(wireField.Name); /* */ $s = 14; case 14: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - _tuple$3 = _r$24; - localField = $clone(_tuple$3[0], reflect.StructField); - present = _tuple$3[1]; + _r$26 = srt.FieldByName(wireField.Name); /* */ $s = 14; case 14: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + _tuple$2 = _r$26; + localField = $clone(_tuple$2[0], reflect.StructField); + present = _tuple$2[1]; /* */ if (!present || !isExported(wireField.Name)) { $s = 15; continue; } /* */ $s = 16; continue; /* if (!present || !isExported(wireField.Name)) { */ case 15: - _r$25 = dec.decIgnoreOpFor(wireField.Id, new $global.Map(), 0); /* */ $s = 17; case 17: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - op = _r$25; - decInstr.copy((x$3 = engine.instr, ((fieldnum < 0 || fieldnum >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + fieldnum])), new decInstr.ptr(op.$get(), fieldnum, sliceType$4.nil, ovfl)); + _r$27 = dec.decIgnoreOpFor(wireField.Id, new $global.Map(), 0); /* */ $s = 17; case 17: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + op = _r$27; + decInstr.copy((x$1 = engine.instr, ((fieldnum < 0 || fieldnum >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + fieldnum])), new decInstr.ptr(op.$get(), fieldnum, sliceType$5.nil, ovfl)); fieldnum = fieldnum + (1) >> 0; /* continue; */ $s = 9; continue; /* } */ case 16: - _r$26 = dec.compatibleType(localField.Type, wireField.Id, new $global.Map()); /* */ $s = 20; case 20: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - /* */ if (!_r$26) { $s = 18; continue; } + _r$28 = dec.compatibleType(localField.Type, wireField.Id, new $global.Map()); /* */ $s = 20; case 20: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + /* */ if (!_r$28) { $s = 18; continue; } /* */ $s = 19; continue; - /* if (!_r$26) { */ case 18: - $r = errorf("wrong type (%s) for received field %s.%s", new sliceType$2([localField.Type, new $String(wireStruct.CommonType.Name), new $String(wireField.Name)])); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* if (!_r$28) { */ case 18: + $r = errorf("wrong type (%s) for received field %s.%s", new sliceType$3([localField.Type, new $String(wireStruct.CommonType.Name), new $String(wireField.Name)])); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 19: - _r$27 = dec.decOpFor(wireField.Id, localField.Type, localField.Name, seen); /* */ $s = 22; case 22: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - op$1 = _r$27; - decInstr.copy((x$4 = engine.instr, ((fieldnum < 0 || fieldnum >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + fieldnum])), new decInstr.ptr(op$1.$get(), fieldnum, localField.Index, ovfl)); + _r$29 = dec.decOpFor(wireField.Id, localField.Type, localField.Name, seen); /* */ $s = 22; case 22: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + op$1 = _r$29; + decInstr.copy((x$2 = engine.instr, ((fieldnum < 0 || fieldnum >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + fieldnum])), new decInstr.ptr(op$1.$get(), fieldnum, localField.Index, ovfl)); engine.numInstr = engine.numInstr + (1) >> 0; fieldnum = fieldnum + (1) >> 0; $s = 9; continue; case 10: $s = -1; return [engine, err[0]]; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [engine, err[0]]; } if($curGoroutine.asleep) { var $f = {$blk: compileDec, $c: true, $r, $24r, _entry, _entry$1, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _tuple, _tuple$1, _tuple$2, _tuple$3, dec, engine, err, fieldnum, localField, ok, op, op$1, ovfl, present, remoteId, rt, seen, srt, t, ut, wire, wireField, wireStruct, x$2, x$3, x$4, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [engine, err[0]]; } if($curGoroutine.asleep) { var $f = {$blk: compileDec, $c: true, $r, $24r, _entry, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _tuple, _tuple$1, _tuple$2, dec, engine, err, fieldnum, localField, op, op$1, ovfl, present, remoteId, rt, seen, srt, t, ut, wire, wireField, wireStruct, x, x$1, x$2, $s, $deferred};return $f; } } }; $ptrType(Decoder).prototype.getDecEnginePtr = function getDecEnginePtr(remoteId, ut) { - var {_entry, _entry$1, _key, _key$1, _r$22, _tuple, _tuple$1, _tuple$2, dec, decoderMap, enginePtr, err, ok, remoteId, rt, ut, $s, $r, $c} = $restore(this, {remoteId, ut}); + var {_entry, _entry$1, _key, _key$1, _r$24, _tuple, _tuple$1, _tuple$2, dec, decoderMap, enginePtr, err, ok, remoteId, rt, ut, $s, $r, $c} = $restore(this, {remoteId, ut}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - enginePtr = ptrType$44.nil; + enginePtr = ptrType$47.nil; err = $ifaceNil; dec = this; rt = ut.user; @@ -51686,16 +50554,16 @@ $packages["encoding/gob"] = (function() { decoderMap = new $global.Map(); _key = rt; (dec.decoderCache || $throwRuntimeError("assignment to entry in nil map")).set(reflect.Type.keyFor(_key), { k: _key, v: decoderMap }); } - _tuple$1 = (_entry$1 = $mapIndex(decoderMap,typeId.keyFor(remoteId)), _entry$1 !== undefined ? [_entry$1.v, true] : [ptrType$44.nil, false]); + _tuple$1 = (_entry$1 = $mapIndex(decoderMap,typeId.keyFor(remoteId)), _entry$1 !== undefined ? [_entry$1.v, true] : [ptrType$47.nil, false]); enginePtr = _tuple$1[0]; ok = _tuple$1[1]; /* */ if (!ok) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!ok) { */ case 1: - enginePtr = $newDataPointer(ptrType$43.nil, ptrType$44); + enginePtr = $newDataPointer(ptrType$46.nil, ptrType$47); _key$1 = remoteId; (decoderMap || $throwRuntimeError("assignment to entry in nil map")).set(typeId.keyFor(_key$1), { k: _key$1, v: enginePtr }); - _r$22 = dec.compileDec(remoteId, ut); /* */ $s = 3; case 3: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple$2 = _r$22; + _r$24 = dec.compileDec(remoteId, ut); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple$2 = _r$24; enginePtr.$set(_tuple$2[0]); err = _tuple$2[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { @@ -51703,86 +50571,86 @@ $packages["encoding/gob"] = (function() { } /* } */ case 2: $s = -1; return [enginePtr, err]; - /* */ } return; } var $f = {$blk: getDecEnginePtr, $c: true, $r, _entry, _entry$1, _key, _key$1, _r$22, _tuple, _tuple$1, _tuple$2, dec, decoderMap, enginePtr, err, ok, remoteId, rt, ut, $s};return $f; + /* */ } return; } var $f = {$blk: getDecEnginePtr, $c: true, $r, _entry, _entry$1, _key, _key$1, _r$24, _tuple, _tuple$1, _tuple$2, dec, decoderMap, enginePtr, err, ok, remoteId, rt, ut, $s};return $f; }; $ptrType(Decoder).prototype.getIgnoreEnginePtr = function getIgnoreEnginePtr(wireId) { - var {_arg, _arg$1, _entry, _entry$1, _key, _r$22, _r$23, _r$24, _tuple, _tuple$1, dec, enginePtr, err, ok, wire, wireId, $s, $r, $c} = $restore(this, {wireId}); + var {_arg, _arg$1, _entry, _entry$1, _key, _r$24, _r$25, _r$26, _tuple, _tuple$1, dec, enginePtr, err, ok, wire, wireId, $s, $r, $c} = $restore(this, {wireId}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - enginePtr = ptrType$44.nil; + enginePtr = ptrType$47.nil; err = $ifaceNil; dec = this; ok = false; - _tuple = (_entry = $mapIndex(dec.ignorerCache,typeId.keyFor(wireId)), _entry !== undefined ? [_entry.v, true] : [ptrType$44.nil, false]); + _tuple = (_entry = $mapIndex(dec.ignorerCache,typeId.keyFor(wireId)), _entry !== undefined ? [_entry.v, true] : [ptrType$47.nil, false]); enginePtr = _tuple[0]; ok = _tuple[1]; /* */ if (!ok) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!ok) { */ case 1: - enginePtr = $newDataPointer(ptrType$43.nil, ptrType$44); + enginePtr = $newDataPointer(ptrType$46.nil, ptrType$47); _key = wireId; (dec.ignorerCache || $throwRuntimeError("assignment to entry in nil map")).set(typeId.keyFor(_key), { k: _key, v: enginePtr }); - wire = (_entry$1 = $mapIndex(dec.wireType,typeId.keyFor(wireId)), _entry$1 !== undefined ? _entry$1.v : ptrType$29.nil); - /* */ if (!(wire === ptrType$29.nil) && !(wire.StructT === ptrType$25.nil)) { $s = 3; continue; } + wire = (_entry$1 = $mapIndex(dec.wireType,typeId.keyFor(wireId)), _entry$1 !== undefined ? _entry$1.v : ptrType$8.nil); + /* */ if (!(wire === ptrType$8.nil) && !(wire.StructT === ptrType$28.nil)) { $s = 3; continue; } /* */ $s = 4; continue; - /* if (!(wire === ptrType$29.nil) && !(wire.StructT === ptrType$25.nil)) { */ case 3: + /* if (!(wire === ptrType$8.nil) && !(wire.StructT === ptrType$28.nil)) { */ case 3: _arg = wireId; - _r$22 = userType(emptyStructType); /* */ $s = 6; case 6: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _arg$1 = _r$22; - _r$23 = dec.compileDec(_arg, _arg$1); /* */ $s = 7; case 7: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _tuple$1 = _r$23; + _r$24 = userType(emptyStructType); /* */ $s = 6; case 6: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _arg$1 = _r$24; + _r$25 = dec.compileDec(_arg, _arg$1); /* */ $s = 7; case 7: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _tuple$1 = _r$25; enginePtr.$set(_tuple$1[0]); err = _tuple$1[1]; $s = 5; continue; /* } else { */ case 4: - _r$24 = dec.compileIgnoreSingle(wireId); /* */ $s = 8; case 8: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - enginePtr.$set(_r$24); + _r$26 = dec.compileIgnoreSingle(wireId); /* */ $s = 8; case 8: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + enginePtr.$set(_r$26); /* } */ case 5: if (!($interfaceIsEqual(err, $ifaceNil))) { $mapDelete(dec.ignorerCache, typeId.keyFor(wireId)); } /* } */ case 2: $s = -1; return [enginePtr, err]; - /* */ } return; } var $f = {$blk: getIgnoreEnginePtr, $c: true, $r, _arg, _arg$1, _entry, _entry$1, _key, _r$22, _r$23, _r$24, _tuple, _tuple$1, dec, enginePtr, err, ok, wire, wireId, $s};return $f; + /* */ } return; } var $f = {$blk: getIgnoreEnginePtr, $c: true, $r, _arg, _arg$1, _entry, _entry$1, _key, _r$24, _r$25, _r$26, _tuple, _tuple$1, dec, enginePtr, err, ok, wire, wireId, $s};return $f; }; $ptrType(Decoder).prototype.decodeValue = function decodeValue(wireId, value) { - var {_entry, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _tuple, _v, base, dec, engine, enginePtr, name$2, st, ut, value, wireId, wt, $s, $deferred, $r, $c} = $restore(this, {wireId, value}); + var {_entry, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _tuple, _v, base, dec, engine, enginePtr, name$2, st, ut, value, wireId, wt, $s, $deferred, $r, $c} = $restore(this, {wireId, value}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); dec = this; - $deferred.push([catchError, [(dec.$ptr_err || (dec.$ptr_err = new ptrType$37(function() { return this.$target.err; }, function($v) { this.$target.err = $v; }, dec)))]]); + $deferred.push([catchError, [(dec === ptrType$41.nil && $throwNilPointerError(), (dec.$ptr_err || (dec.$ptr_err = new ptrType$39(function() { return this.$target.err; }, function($v) { this.$target.err = $v; }, dec))))]]); /* */ if (!$clone(value, reflect.Value).IsValid()) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!$clone(value, reflect.Value).IsValid()) { */ case 1: $r = dec.decodeIgnoredValue(wireId); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* } */ case 2: - _r$22 = userType($clone(value, reflect.Value).Type()); /* */ $s = 4; case 4: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - ut = _r$22; + _r$24 = userType($clone(value, reflect.Value).Type()); /* */ $s = 4; case 4: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + ut = _r$24; base = ut.base; - enginePtr = ptrType$44.nil; - _r$23 = dec.getDecEnginePtr(wireId, ut); /* */ $s = 5; case 5: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _tuple = _r$23; + enginePtr = ptrType$47.nil; + _r$25 = dec.getDecEnginePtr(wireId, ut); /* */ $s = 5; case 5: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _tuple = _r$25; enginePtr = _tuple[0]; dec.err = _tuple[1]; if (!($interfaceIsEqual(dec.err, $ifaceNil))) { $s = -1; return; } - _r$24 = decAlloc($clone(value, reflect.Value)); /* */ $s = 6; case 6: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - value = _r$24; + _r$26 = decAlloc($clone(value, reflect.Value)); /* */ $s = 6; case 6: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + value = _r$26; engine = enginePtr.$get(); st = base; - _r$25 = st.Kind(); /* */ $s = 10; case 10: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - /* */ if ((_r$25 === 25) && (ut.externalDec === 0)) { $s = 7; continue; } + _r$27 = st.Kind(); /* */ $s = 10; case 10: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + /* */ if ((_r$27 === 25) && (ut.externalDec === 0)) { $s = 7; continue; } /* */ $s = 8; continue; - /* if ((_r$25 === 25) && (ut.externalDec === 0)) { */ case 7: - wt = (_entry = $mapIndex(dec.wireType,typeId.keyFor(wireId)), _entry !== undefined ? _entry.v : ptrType$29.nil); + /* if ((_r$27 === 25) && (ut.externalDec === 0)) { */ case 7: + wt = (_entry = $mapIndex(dec.wireType,typeId.keyFor(wireId)), _entry !== undefined ? _entry.v : ptrType$8.nil); if (!(engine.numInstr === 0)) { _v = false; $s = 13; continue s; } - _r$26 = st.NumField(); /* */ $s = 14; case 14: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - _v = _r$26 > 0; case 13: - /* */ if (_v && !(wt === ptrType$29.nil) && wt.StructT.Field.$length > 0) { $s = 11; continue; } + _r$28 = st.NumField(); /* */ $s = 14; case 14: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + _v = _r$28 > 0; case 13: + /* */ if (_v && !(wt === ptrType$8.nil) && wt.StructT.Field.$length > 0) { $s = 11; continue; } /* */ $s = 12; continue; - /* if (_v && !(wt === ptrType$29.nil) && wt.StructT.Field.$length > 0) { */ case 11: - _r$27 = base.Name(); /* */ $s = 15; case 15: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - name$2 = _r$27; - $r = errorf("type mismatch: no fields matched compiling decoder for %s", new sliceType$2([new $String(name$2)])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* if (_v && !(wt === ptrType$8.nil) && wt.StructT.Field.$length > 0) { */ case 11: + _r$29 = base.Name(); /* */ $s = 15; case 15: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + name$2 = _r$29; + $r = errorf("type mismatch: no fields matched compiling decoder for %s", new sliceType$3([new $String(name$2)])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 12: $r = dec.decodeStruct(engine, $clone(value, reflect.Value)); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 9; continue; @@ -51790,33 +50658,33 @@ $packages["encoding/gob"] = (function() { $r = dec.decodeSingle(engine, $clone(value, reflect.Value)); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 9: $s = -1; return; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: decodeValue, $c: true, $r, _entry, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _tuple, _v, base, dec, engine, enginePtr, name$2, st, ut, value, wireId, wt, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: decodeValue, $c: true, $r, _entry, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _tuple, _v, base, dec, engine, enginePtr, name$2, st, ut, value, wireId, wt, $s, $deferred};return $f; } } }; $ptrType(Decoder).prototype.decodeIgnoredValue = function decodeIgnoredValue(wireId) { - var {_entry, _r$22, _tuple, dec, enginePtr, wire, wireId, $s, $r, $c} = $restore(this, {wireId}); + var {_entry, _r$24, _tuple, dec, enginePtr, wire, wireId, $s, $r, $c} = $restore(this, {wireId}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: dec = this; - enginePtr = ptrType$44.nil; - _r$22 = dec.getIgnoreEnginePtr(wireId); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = _r$22; + enginePtr = ptrType$47.nil; + _r$24 = dec.getIgnoreEnginePtr(wireId); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = _r$24; enginePtr = _tuple[0]; dec.err = _tuple[1]; if (!($interfaceIsEqual(dec.err, $ifaceNil))) { $s = -1; return; } - wire = (_entry = $mapIndex(dec.wireType,typeId.keyFor(wireId)), _entry !== undefined ? _entry.v : ptrType$29.nil); - /* */ if (!(wire === ptrType$29.nil) && !(wire.StructT === ptrType$25.nil)) { $s = 2; continue; } + wire = (_entry = $mapIndex(dec.wireType,typeId.keyFor(wireId)), _entry !== undefined ? _entry.v : ptrType$8.nil); + /* */ if (!(wire === ptrType$8.nil) && !(wire.StructT === ptrType$28.nil)) { $s = 2; continue; } /* */ $s = 3; continue; - /* if (!(wire === ptrType$29.nil) && !(wire.StructT === ptrType$25.nil)) { */ case 2: + /* if (!(wire === ptrType$8.nil) && !(wire.StructT === ptrType$28.nil)) { */ case 2: $r = dec.ignoreStruct(enginePtr.$get()); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 4; continue; /* } else { */ case 3: $r = dec.ignoreSingle(enginePtr.$get()); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 4: $s = -1; return; - /* */ } return; } var $f = {$blk: decodeIgnoredValue, $c: true, $r, _entry, _r$22, _tuple, dec, enginePtr, wire, wireId, $s};return $f; + /* */ } return; } var $f = {$blk: decodeIgnoredValue, $c: true, $r, _entry, _r$24, _tuple, dec, enginePtr, wire, wireId, $s};return $f; }; - init$1 = function init$6() { + init$2 = function init$8() { var _1, _2, _tmp, _tmp$1, iop, uop; _tmp = $throwNilPointerError; _tmp$1 = $throwNilPointerError; @@ -51845,37 +50713,31 @@ $packages["encoding/gob"] = (function() { decOpTable[12] = uop; }; allocValue = function allocValue$1(t) { - var {$24r, _r$22, t, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$22 = $clone(reflect.New(t), reflect.Value).Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - $24r = _r$22; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: allocValue$1, $c: true, $r, $24r, _r$22, t, $s};return $f; + var t; + return $clone(reflect.New(t), reflect.Value).Elem(); }; decBoolArray = function decBoolArray$1(state, v, length, ovfl) { - var {$24r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r$22, _r$23, _r$24, length, ovfl, state, v, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); + var {$24r, _arg, _arg$1, _arg$2, _arg$3, _r$24, _r$25, length, ovfl, state, v, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if (!$clone(v, reflect.Value).CanAddr()) { $s = -1; return false; } _arg = state; - _r$22 = $clone(v, reflect.Value).Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _arg$1 = _r$22; - _r$23 = $clone(v, reflect.Value).Slice(0, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _arg$2 = $clone(_r$23, reflect.Value); - _arg$3 = length; - _arg$4 = ovfl; - _r$24 = decBoolSlice(_arg, _arg$2, _arg$3, _arg$4); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - $24r = _r$24; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: decBoolArray$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r$22, _r$23, _r$24, length, ovfl, state, v, $s};return $f; + _r$24 = $clone(v, reflect.Value).Slice(0, $clone(v, reflect.Value).Len()); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _arg$1 = $clone(_r$24, reflect.Value); + _arg$2 = length; + _arg$3 = ovfl; + _r$25 = decBoolSlice(_arg, _arg$1, _arg$2, _arg$3); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $24r = _r$25; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: decBoolArray$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _arg$3, _r$24, _r$25, length, ovfl, state, v, $s};return $f; }; decBoolSlice = function decBoolSlice$1(state, v, length, ovfl) { - var {_r$22, _r$23, _tuple, i, length, ok, ovfl, slice, state, v, x$2, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); + var {_r$24, _r$25, _tuple, i, length, ok, ovfl, slice, state, v, x, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: slice = [slice]; - _r$22 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = $assertType(_r$22, sliceType$18, true); + _r$24 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = $assertType(_r$24, sliceType$19, true); slice[0] = _tuple[0]; ok = _tuple[1]; if (!ok) { @@ -51887,45 +50749,43 @@ $packages["encoding/gob"] = (function() { /* */ if (state.b.Len() === 0) { $s = 4; continue; } /* */ $s = 5; continue; /* if (state.b.Len() === 0) { */ case 4: - $r = errorf("decoding bool array or slice: length exceeds input size (%d elements)", new sliceType$2([new $Int(length)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errorf("decoding bool array or slice: length exceeds input size (%d elements)", new sliceType$3([new $Int(length)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 5: /* */ if (i >= slice[0].$length) { $s = 7; continue; } /* */ $s = 8; continue; /* if (i >= slice[0].$length) { */ case 7: - $r = growSlice[0 /* bool */]($clone(v, reflect.Value), (slice.$ptr || (slice.$ptr = new ptrType$45(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, slice))), length); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = growSlice[0 /* bool */]($clone(v, reflect.Value), (slice.$ptr || (slice.$ptr = new ptrType$48(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, slice))), length); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 8: - _r$23 = state.decodeUint(); /* */ $s = 10; case 10: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - ((i < 0 || i >= slice[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : slice[0].$array[slice[0].$offset + i] = !((x$2 = _r$23, (x$2.$high === 0 && x$2.$low === 0)))); + _r$25 = state.decodeUint(); /* */ $s = 10; case 10: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + ((i < 0 || i >= slice[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : slice[0].$array[slice[0].$offset + i] = !((x = _r$25, (x.$high === 0 && x.$low === 0)))); i = i + (1) >> 0; $s = 2; continue; case 3: $s = -1; return true; - /* */ } return; } var $f = {$blk: decBoolSlice$1, $c: true, $r, _r$22, _r$23, _tuple, i, length, ok, ovfl, slice, state, v, x$2, $s};return $f; + /* */ } return; } var $f = {$blk: decBoolSlice$1, $c: true, $r, _r$24, _r$25, _tuple, i, length, ok, ovfl, slice, state, v, x, $s};return $f; }; decComplex64Array = function decComplex64Array$1(state, v, length, ovfl) { - var {$24r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r$22, _r$23, _r$24, length, ovfl, state, v, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); + var {$24r, _arg, _arg$1, _arg$2, _arg$3, _r$24, _r$25, length, ovfl, state, v, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if (!$clone(v, reflect.Value).CanAddr()) { $s = -1; return false; } _arg = state; - _r$22 = $clone(v, reflect.Value).Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _arg$1 = _r$22; - _r$23 = $clone(v, reflect.Value).Slice(0, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _arg$2 = $clone(_r$23, reflect.Value); - _arg$3 = length; - _arg$4 = ovfl; - _r$24 = decComplex64Slice(_arg, _arg$2, _arg$3, _arg$4); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - $24r = _r$24; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: decComplex64Array$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r$22, _r$23, _r$24, length, ovfl, state, v, $s};return $f; + _r$24 = $clone(v, reflect.Value).Slice(0, $clone(v, reflect.Value).Len()); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _arg$1 = $clone(_r$24, reflect.Value); + _arg$2 = length; + _arg$3 = ovfl; + _r$25 = decComplex64Slice(_arg, _arg$1, _arg$2, _arg$3); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $24r = _r$25; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: decComplex64Array$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _arg$3, _r$24, _r$25, length, ovfl, state, v, $s};return $f; }; decComplex64Slice = function decComplex64Slice$1(state, v, length, ovfl) { - var {_r$22, _r$23, _r$24, _r$25, _r$26, _tuple, i, imag, length, ok, ovfl, real, slice, state, v, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); + var {_r$24, _r$25, _r$26, _r$27, _r$28, _tuple, i, imag, length, ok, ovfl, real, slice, state, v, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: slice = [slice]; - _r$22 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = $assertType(_r$22, sliceType$15, true); + _r$24 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = $assertType(_r$24, sliceType$16, true); slice[0] = _tuple[0]; ok = _tuple[1]; if (!ok) { @@ -51937,50 +50797,48 @@ $packages["encoding/gob"] = (function() { /* */ if (state.b.Len() === 0) { $s = 4; continue; } /* */ $s = 5; continue; /* if (state.b.Len() === 0) { */ case 4: - $r = errorf("decoding complex64 array or slice: length exceeds input size (%d elements)", new sliceType$2([new $Int(length)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errorf("decoding complex64 array or slice: length exceeds input size (%d elements)", new sliceType$3([new $Int(length)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 5: /* */ if (i >= slice[0].$length) { $s = 7; continue; } /* */ $s = 8; continue; /* if (i >= slice[0].$length) { */ case 7: - $r = growSlice[1 /* complex64 */]($clone(v, reflect.Value), (slice.$ptr || (slice.$ptr = new ptrType$46(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, slice))), length); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = growSlice[1 /* complex64 */]($clone(v, reflect.Value), (slice.$ptr || (slice.$ptr = new ptrType$49(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, slice))), length); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 8: - _r$23 = state.decodeUint(); /* */ $s = 10; case 10: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _r$24 = float32FromBits(_r$23, ovfl); /* */ $s = 11; case 11: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - real = _r$24; - _r$25 = state.decodeUint(); /* */ $s = 12; case 12: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - _r$26 = float32FromBits(_r$25, ovfl); /* */ $s = 13; case 13: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - imag = _r$26; + _r$25 = state.decodeUint(); /* */ $s = 10; case 10: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _r$26 = float32FromBits(_r$25, ovfl); /* */ $s = 11; case 11: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + real = _r$26; + _r$27 = state.decodeUint(); /* */ $s = 12; case 12: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + _r$28 = float32FromBits(_r$27, ovfl); /* */ $s = 13; case 13: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + imag = _r$28; ((i < 0 || i >= slice[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : slice[0].$array[slice[0].$offset + i] = new $Complex64(($fround(real)), ($fround(imag)))); i = i + (1) >> 0; $s = 2; continue; case 3: $s = -1; return true; - /* */ } return; } var $f = {$blk: decComplex64Slice$1, $c: true, $r, _r$22, _r$23, _r$24, _r$25, _r$26, _tuple, i, imag, length, ok, ovfl, real, slice, state, v, $s};return $f; + /* */ } return; } var $f = {$blk: decComplex64Slice$1, $c: true, $r, _r$24, _r$25, _r$26, _r$27, _r$28, _tuple, i, imag, length, ok, ovfl, real, slice, state, v, $s};return $f; }; decComplex128Array = function decComplex128Array$1(state, v, length, ovfl) { - var {$24r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r$22, _r$23, _r$24, length, ovfl, state, v, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); + var {$24r, _arg, _arg$1, _arg$2, _arg$3, _r$24, _r$25, length, ovfl, state, v, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if (!$clone(v, reflect.Value).CanAddr()) { $s = -1; return false; } _arg = state; - _r$22 = $clone(v, reflect.Value).Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _arg$1 = _r$22; - _r$23 = $clone(v, reflect.Value).Slice(0, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _arg$2 = $clone(_r$23, reflect.Value); - _arg$3 = length; - _arg$4 = ovfl; - _r$24 = decComplex128Slice(_arg, _arg$2, _arg$3, _arg$4); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - $24r = _r$24; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: decComplex128Array$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r$22, _r$23, _r$24, length, ovfl, state, v, $s};return $f; + _r$24 = $clone(v, reflect.Value).Slice(0, $clone(v, reflect.Value).Len()); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _arg$1 = $clone(_r$24, reflect.Value); + _arg$2 = length; + _arg$3 = ovfl; + _r$25 = decComplex128Slice(_arg, _arg$1, _arg$2, _arg$3); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $24r = _r$25; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: decComplex128Array$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _arg$3, _r$24, _r$25, length, ovfl, state, v, $s};return $f; }; decComplex128Slice = function decComplex128Slice$1(state, v, length, ovfl) { - var {_r$22, _r$23, _r$24, _r$25, _r$26, _tuple, i, imag, length, ok, ovfl, real, slice, state, v, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); + var {_r$24, _r$25, _r$26, _r$27, _r$28, _tuple, i, imag, length, ok, ovfl, real, slice, state, v, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: slice = [slice]; - _r$22 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = $assertType(_r$22, sliceType$16, true); + _r$24 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = $assertType(_r$24, sliceType$17, true); slice[0] = _tuple[0]; ok = _tuple[1]; if (!ok) { @@ -51992,50 +50850,48 @@ $packages["encoding/gob"] = (function() { /* */ if (state.b.Len() === 0) { $s = 4; continue; } /* */ $s = 5; continue; /* if (state.b.Len() === 0) { */ case 4: - $r = errorf("decoding complex128 array or slice: length exceeds input size (%d elements)", new sliceType$2([new $Int(length)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errorf("decoding complex128 array or slice: length exceeds input size (%d elements)", new sliceType$3([new $Int(length)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 5: /* */ if (i >= slice[0].$length) { $s = 7; continue; } /* */ $s = 8; continue; /* if (i >= slice[0].$length) { */ case 7: - $r = growSlice[2 /* complex128 */]($clone(v, reflect.Value), (slice.$ptr || (slice.$ptr = new ptrType$47(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, slice))), length); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = growSlice[2 /* complex128 */]($clone(v, reflect.Value), (slice.$ptr || (slice.$ptr = new ptrType$50(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, slice))), length); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 8: - _r$23 = state.decodeUint(); /* */ $s = 10; case 10: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _r$24 = float64FromBits(_r$23); /* */ $s = 11; case 11: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - real = _r$24; - _r$25 = state.decodeUint(); /* */ $s = 12; case 12: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - _r$26 = float64FromBits(_r$25); /* */ $s = 13; case 13: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - imag = _r$26; + _r$25 = state.decodeUint(); /* */ $s = 10; case 10: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _r$26 = float64FromBits(_r$25); /* */ $s = 11; case 11: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + real = _r$26; + _r$27 = state.decodeUint(); /* */ $s = 12; case 12: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + _r$28 = float64FromBits(_r$27); /* */ $s = 13; case 13: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + imag = _r$28; ((i < 0 || i >= slice[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : slice[0].$array[slice[0].$offset + i] = new $Complex128(real, imag)); i = i + (1) >> 0; $s = 2; continue; case 3: $s = -1; return true; - /* */ } return; } var $f = {$blk: decComplex128Slice$1, $c: true, $r, _r$22, _r$23, _r$24, _r$25, _r$26, _tuple, i, imag, length, ok, ovfl, real, slice, state, v, $s};return $f; + /* */ } return; } var $f = {$blk: decComplex128Slice$1, $c: true, $r, _r$24, _r$25, _r$26, _r$27, _r$28, _tuple, i, imag, length, ok, ovfl, real, slice, state, v, $s};return $f; }; decFloat32Array = function decFloat32Array$1(state, v, length, ovfl) { - var {$24r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r$22, _r$23, _r$24, length, ovfl, state, v, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); + var {$24r, _arg, _arg$1, _arg$2, _arg$3, _r$24, _r$25, length, ovfl, state, v, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if (!$clone(v, reflect.Value).CanAddr()) { $s = -1; return false; } _arg = state; - _r$22 = $clone(v, reflect.Value).Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _arg$1 = _r$22; - _r$23 = $clone(v, reflect.Value).Slice(0, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _arg$2 = $clone(_r$23, reflect.Value); - _arg$3 = length; - _arg$4 = ovfl; - _r$24 = decFloat32Slice(_arg, _arg$2, _arg$3, _arg$4); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - $24r = _r$24; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: decFloat32Array$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r$22, _r$23, _r$24, length, ovfl, state, v, $s};return $f; + _r$24 = $clone(v, reflect.Value).Slice(0, $clone(v, reflect.Value).Len()); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _arg$1 = $clone(_r$24, reflect.Value); + _arg$2 = length; + _arg$3 = ovfl; + _r$25 = decFloat32Slice(_arg, _arg$1, _arg$2, _arg$3); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $24r = _r$25; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: decFloat32Array$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _arg$3, _r$24, _r$25, length, ovfl, state, v, $s};return $f; }; decFloat32Slice = function decFloat32Slice$1(state, v, length, ovfl) { - var {_r$22, _r$23, _r$24, _tuple, i, length, ok, ovfl, slice, state, v, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); + var {_r$24, _r$25, _r$26, _tuple, i, length, ok, ovfl, slice, state, v, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: slice = [slice]; - _r$22 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = $assertType(_r$22, sliceType$13, true); + _r$24 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = $assertType(_r$24, sliceType$14, true); slice[0] = _tuple[0]; ok = _tuple[1]; if (!ok) { @@ -52047,46 +50903,44 @@ $packages["encoding/gob"] = (function() { /* */ if (state.b.Len() === 0) { $s = 4; continue; } /* */ $s = 5; continue; /* if (state.b.Len() === 0) { */ case 4: - $r = errorf("decoding float32 array or slice: length exceeds input size (%d elements)", new sliceType$2([new $Int(length)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errorf("decoding float32 array or slice: length exceeds input size (%d elements)", new sliceType$3([new $Int(length)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 5: /* */ if (i >= slice[0].$length) { $s = 7; continue; } /* */ $s = 8; continue; /* if (i >= slice[0].$length) { */ case 7: - $r = growSlice[3 /* float32 */]($clone(v, reflect.Value), (slice.$ptr || (slice.$ptr = new ptrType$48(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, slice))), length); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = growSlice[3 /* float32 */]($clone(v, reflect.Value), (slice.$ptr || (slice.$ptr = new ptrType$51(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, slice))), length); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 8: - _r$23 = state.decodeUint(); /* */ $s = 10; case 10: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _r$24 = float32FromBits(_r$23, ovfl); /* */ $s = 11; case 11: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - ((i < 0 || i >= slice[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : slice[0].$array[slice[0].$offset + i] = ($fround(_r$24))); + _r$25 = state.decodeUint(); /* */ $s = 10; case 10: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _r$26 = float32FromBits(_r$25, ovfl); /* */ $s = 11; case 11: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + ((i < 0 || i >= slice[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : slice[0].$array[slice[0].$offset + i] = ($fround(_r$26))); i = i + (1) >> 0; $s = 2; continue; case 3: $s = -1; return true; - /* */ } return; } var $f = {$blk: decFloat32Slice$1, $c: true, $r, _r$22, _r$23, _r$24, _tuple, i, length, ok, ovfl, slice, state, v, $s};return $f; + /* */ } return; } var $f = {$blk: decFloat32Slice$1, $c: true, $r, _r$24, _r$25, _r$26, _tuple, i, length, ok, ovfl, slice, state, v, $s};return $f; }; decFloat64Array = function decFloat64Array$1(state, v, length, ovfl) { - var {$24r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r$22, _r$23, _r$24, length, ovfl, state, v, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); + var {$24r, _arg, _arg$1, _arg$2, _arg$3, _r$24, _r$25, length, ovfl, state, v, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if (!$clone(v, reflect.Value).CanAddr()) { $s = -1; return false; } _arg = state; - _r$22 = $clone(v, reflect.Value).Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _arg$1 = _r$22; - _r$23 = $clone(v, reflect.Value).Slice(0, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _arg$2 = $clone(_r$23, reflect.Value); - _arg$3 = length; - _arg$4 = ovfl; - _r$24 = decFloat64Slice(_arg, _arg$2, _arg$3, _arg$4); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - $24r = _r$24; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: decFloat64Array$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r$22, _r$23, _r$24, length, ovfl, state, v, $s};return $f; + _r$24 = $clone(v, reflect.Value).Slice(0, $clone(v, reflect.Value).Len()); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _arg$1 = $clone(_r$24, reflect.Value); + _arg$2 = length; + _arg$3 = ovfl; + _r$25 = decFloat64Slice(_arg, _arg$1, _arg$2, _arg$3); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $24r = _r$25; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: decFloat64Array$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _arg$3, _r$24, _r$25, length, ovfl, state, v, $s};return $f; }; decFloat64Slice = function decFloat64Slice$1(state, v, length, ovfl) { - var {_r$22, _r$23, _r$24, _tuple, i, length, ok, ovfl, slice, state, v, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); + var {_r$24, _r$25, _r$26, _tuple, i, length, ok, ovfl, slice, state, v, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: slice = [slice]; - _r$22 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = $assertType(_r$22, sliceType$14, true); + _r$24 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = $assertType(_r$24, sliceType$15, true); slice[0] = _tuple[0]; ok = _tuple[1]; if (!ok) { @@ -52098,46 +50952,44 @@ $packages["encoding/gob"] = (function() { /* */ if (state.b.Len() === 0) { $s = 4; continue; } /* */ $s = 5; continue; /* if (state.b.Len() === 0) { */ case 4: - $r = errorf("decoding float64 array or slice: length exceeds input size (%d elements)", new sliceType$2([new $Int(length)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errorf("decoding float64 array or slice: length exceeds input size (%d elements)", new sliceType$3([new $Int(length)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 5: /* */ if (i >= slice[0].$length) { $s = 7; continue; } /* */ $s = 8; continue; /* if (i >= slice[0].$length) { */ case 7: - $r = growSlice[4 /* float64 */]($clone(v, reflect.Value), (slice.$ptr || (slice.$ptr = new ptrType$49(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, slice))), length); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = growSlice[4 /* float64 */]($clone(v, reflect.Value), (slice.$ptr || (slice.$ptr = new ptrType$52(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, slice))), length); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 8: - _r$23 = state.decodeUint(); /* */ $s = 10; case 10: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _r$24 = float64FromBits(_r$23); /* */ $s = 11; case 11: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - ((i < 0 || i >= slice[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : slice[0].$array[slice[0].$offset + i] = _r$24); + _r$25 = state.decodeUint(); /* */ $s = 10; case 10: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _r$26 = float64FromBits(_r$25); /* */ $s = 11; case 11: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + ((i < 0 || i >= slice[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : slice[0].$array[slice[0].$offset + i] = _r$26); i = i + (1) >> 0; $s = 2; continue; case 3: $s = -1; return true; - /* */ } return; } var $f = {$blk: decFloat64Slice$1, $c: true, $r, _r$22, _r$23, _r$24, _tuple, i, length, ok, ovfl, slice, state, v, $s};return $f; + /* */ } return; } var $f = {$blk: decFloat64Slice$1, $c: true, $r, _r$24, _r$25, _r$26, _tuple, i, length, ok, ovfl, slice, state, v, $s};return $f; }; decIntArray = function decIntArray$1(state, v, length, ovfl) { - var {$24r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r$22, _r$23, _r$24, length, ovfl, state, v, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); + var {$24r, _arg, _arg$1, _arg$2, _arg$3, _r$24, _r$25, length, ovfl, state, v, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if (!$clone(v, reflect.Value).CanAddr()) { $s = -1; return false; } _arg = state; - _r$22 = $clone(v, reflect.Value).Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _arg$1 = _r$22; - _r$23 = $clone(v, reflect.Value).Slice(0, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _arg$2 = $clone(_r$23, reflect.Value); - _arg$3 = length; - _arg$4 = ovfl; - _r$24 = decIntSlice(_arg, _arg$2, _arg$3, _arg$4); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - $24r = _r$24; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: decIntArray$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r$22, _r$23, _r$24, length, ovfl, state, v, $s};return $f; + _r$24 = $clone(v, reflect.Value).Slice(0, $clone(v, reflect.Value).Len()); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _arg$1 = $clone(_r$24, reflect.Value); + _arg$2 = length; + _arg$3 = ovfl; + _r$25 = decIntSlice(_arg, _arg$1, _arg$2, _arg$3); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $24r = _r$25; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: decIntArray$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _arg$3, _r$24, _r$25, length, ovfl, state, v, $s};return $f; }; decIntSlice = function decIntSlice$1(state, v, length, ovfl) { - var {_r$22, _r$23, _tuple, i, length, ok, ovfl, slice, state, v, x$2, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); + var {_r$24, _r$25, _tuple, i, length, ok, ovfl, slice, state, v, x, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: slice = [slice]; - _r$22 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = $assertType(_r$22, sliceType$4, true); + _r$24 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = $assertType(_r$24, sliceType$5, true); slice[0] = _tuple[0]; ok = _tuple[1]; if (!ok) { @@ -52149,49 +51001,47 @@ $packages["encoding/gob"] = (function() { /* */ if (state.b.Len() === 0) { $s = 4; continue; } /* */ $s = 5; continue; /* if (state.b.Len() === 0) { */ case 4: - $r = errorf("decoding int array or slice: length exceeds input size (%d elements)", new sliceType$2([new $Int(length)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errorf("decoding int array or slice: length exceeds input size (%d elements)", new sliceType$3([new $Int(length)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 5: /* */ if (i >= slice[0].$length) { $s = 7; continue; } /* */ $s = 8; continue; /* if (i >= slice[0].$length) { */ case 7: - $r = growSlice[5 /* int */]($clone(v, reflect.Value), (slice.$ptr || (slice.$ptr = new ptrType$50(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, slice))), length); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = growSlice[5 /* int */]($clone(v, reflect.Value), (slice.$ptr || (slice.$ptr = new ptrType$53(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, slice))), length); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 8: - _r$23 = state.decodeInt(); /* */ $s = 10; case 10: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - x$2 = _r$23; - if ((x$2.$high < -1 || (x$2.$high === -1 && x$2.$low < 2147483648)) || (0 < x$2.$high || (0 === x$2.$high && 2147483647 < x$2.$low))) { + _r$25 = state.decodeInt(); /* */ $s = 10; case 10: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + x = _r$25; + if ((x.$high < -1 || (x.$high === -1 && x.$low < 2147483648)) || (0 < x.$high || (0 === x.$high && 2147483647 < x.$low))) { error_(ovfl); } - ((i < 0 || i >= slice[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : slice[0].$array[slice[0].$offset + i] = (((x$2.$low + ((x$2.$high >> 31) * 4294967296)) >> 0))); + ((i < 0 || i >= slice[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : slice[0].$array[slice[0].$offset + i] = (((x.$low + ((x.$high >> 31) * 4294967296)) >> 0))); i = i + (1) >> 0; $s = 2; continue; case 3: $s = -1; return true; - /* */ } return; } var $f = {$blk: decIntSlice$1, $c: true, $r, _r$22, _r$23, _tuple, i, length, ok, ovfl, slice, state, v, x$2, $s};return $f; + /* */ } return; } var $f = {$blk: decIntSlice$1, $c: true, $r, _r$24, _r$25, _tuple, i, length, ok, ovfl, slice, state, v, x, $s};return $f; }; decInt16Array = function decInt16Array$1(state, v, length, ovfl) { - var {$24r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r$22, _r$23, _r$24, length, ovfl, state, v, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); + var {$24r, _arg, _arg$1, _arg$2, _arg$3, _r$24, _r$25, length, ovfl, state, v, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if (!$clone(v, reflect.Value).CanAddr()) { $s = -1; return false; } _arg = state; - _r$22 = $clone(v, reflect.Value).Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _arg$1 = _r$22; - _r$23 = $clone(v, reflect.Value).Slice(0, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _arg$2 = $clone(_r$23, reflect.Value); - _arg$3 = length; - _arg$4 = ovfl; - _r$24 = decInt16Slice(_arg, _arg$2, _arg$3, _arg$4); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - $24r = _r$24; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: decInt16Array$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r$22, _r$23, _r$24, length, ovfl, state, v, $s};return $f; + _r$24 = $clone(v, reflect.Value).Slice(0, $clone(v, reflect.Value).Len()); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _arg$1 = $clone(_r$24, reflect.Value); + _arg$2 = length; + _arg$3 = ovfl; + _r$25 = decInt16Slice(_arg, _arg$1, _arg$2, _arg$3); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $24r = _r$25; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: decInt16Array$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _arg$3, _r$24, _r$25, length, ovfl, state, v, $s};return $f; }; decInt16Slice = function decInt16Slice$1(state, v, length, ovfl) { - var {_r$22, _r$23, _tuple, i, length, ok, ovfl, slice, state, v, x$2, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); + var {_r$24, _r$25, _tuple, i, length, ok, ovfl, slice, state, v, x, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: slice = [slice]; - _r$22 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = $assertType(_r$22, sliceType$6, true); + _r$24 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = $assertType(_r$24, sliceType$7, true); slice[0] = _tuple[0]; ok = _tuple[1]; if (!ok) { @@ -52203,49 +51053,47 @@ $packages["encoding/gob"] = (function() { /* */ if (state.b.Len() === 0) { $s = 4; continue; } /* */ $s = 5; continue; /* if (state.b.Len() === 0) { */ case 4: - $r = errorf("decoding int16 array or slice: length exceeds input size (%d elements)", new sliceType$2([new $Int(length)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errorf("decoding int16 array or slice: length exceeds input size (%d elements)", new sliceType$3([new $Int(length)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 5: /* */ if (i >= slice[0].$length) { $s = 7; continue; } /* */ $s = 8; continue; /* if (i >= slice[0].$length) { */ case 7: - $r = growSlice[6 /* int16 */]($clone(v, reflect.Value), (slice.$ptr || (slice.$ptr = new ptrType$51(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, slice))), length); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = growSlice[6 /* int16 */]($clone(v, reflect.Value), (slice.$ptr || (slice.$ptr = new ptrType$54(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, slice))), length); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 8: - _r$23 = state.decodeInt(); /* */ $s = 10; case 10: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - x$2 = _r$23; - if ((x$2.$high < -1 || (x$2.$high === -1 && x$2.$low < 4294934528)) || (0 < x$2.$high || (0 === x$2.$high && 32767 < x$2.$low))) { + _r$25 = state.decodeInt(); /* */ $s = 10; case 10: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + x = _r$25; + if ((x.$high < -1 || (x.$high === -1 && x.$low < 4294934528)) || (0 < x.$high || (0 === x.$high && 32767 < x.$low))) { error_(ovfl); } - ((i < 0 || i >= slice[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : slice[0].$array[slice[0].$offset + i] = (((x$2.$low + ((x$2.$high >> 31) * 4294967296)) << 16 >> 16))); + ((i < 0 || i >= slice[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : slice[0].$array[slice[0].$offset + i] = (((x.$low + ((x.$high >> 31) * 4294967296)) << 16 >> 16))); i = i + (1) >> 0; $s = 2; continue; case 3: $s = -1; return true; - /* */ } return; } var $f = {$blk: decInt16Slice$1, $c: true, $r, _r$22, _r$23, _tuple, i, length, ok, ovfl, slice, state, v, x$2, $s};return $f; + /* */ } return; } var $f = {$blk: decInt16Slice$1, $c: true, $r, _r$24, _r$25, _tuple, i, length, ok, ovfl, slice, state, v, x, $s};return $f; }; decInt32Array = function decInt32Array$1(state, v, length, ovfl) { - var {$24r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r$22, _r$23, _r$24, length, ovfl, state, v, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); + var {$24r, _arg, _arg$1, _arg$2, _arg$3, _r$24, _r$25, length, ovfl, state, v, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if (!$clone(v, reflect.Value).CanAddr()) { $s = -1; return false; } _arg = state; - _r$22 = $clone(v, reflect.Value).Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _arg$1 = _r$22; - _r$23 = $clone(v, reflect.Value).Slice(0, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _arg$2 = $clone(_r$23, reflect.Value); - _arg$3 = length; - _arg$4 = ovfl; - _r$24 = decInt32Slice(_arg, _arg$2, _arg$3, _arg$4); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - $24r = _r$24; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: decInt32Array$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r$22, _r$23, _r$24, length, ovfl, state, v, $s};return $f; + _r$24 = $clone(v, reflect.Value).Slice(0, $clone(v, reflect.Value).Len()); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _arg$1 = $clone(_r$24, reflect.Value); + _arg$2 = length; + _arg$3 = ovfl; + _r$25 = decInt32Slice(_arg, _arg$1, _arg$2, _arg$3); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $24r = _r$25; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: decInt32Array$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _arg$3, _r$24, _r$25, length, ovfl, state, v, $s};return $f; }; decInt32Slice = function decInt32Slice$1(state, v, length, ovfl) { - var {_r$22, _r$23, _tuple, i, length, ok, ovfl, slice, state, v, x$2, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); + var {_r$24, _r$25, _tuple, i, length, ok, ovfl, slice, state, v, x, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: slice = [slice]; - _r$22 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = $assertType(_r$22, sliceType$7, true); + _r$24 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = $assertType(_r$24, sliceType$8, true); slice[0] = _tuple[0]; ok = _tuple[1]; if (!ok) { @@ -52257,49 +51105,47 @@ $packages["encoding/gob"] = (function() { /* */ if (state.b.Len() === 0) { $s = 4; continue; } /* */ $s = 5; continue; /* if (state.b.Len() === 0) { */ case 4: - $r = errorf("decoding int32 array or slice: length exceeds input size (%d elements)", new sliceType$2([new $Int(length)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errorf("decoding int32 array or slice: length exceeds input size (%d elements)", new sliceType$3([new $Int(length)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 5: /* */ if (i >= slice[0].$length) { $s = 7; continue; } /* */ $s = 8; continue; /* if (i >= slice[0].$length) { */ case 7: - $r = growSlice[7 /* int32 */]($clone(v, reflect.Value), (slice.$ptr || (slice.$ptr = new ptrType$52(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, slice))), length); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = growSlice[7 /* int32 */]($clone(v, reflect.Value), (slice.$ptr || (slice.$ptr = new ptrType$55(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, slice))), length); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 8: - _r$23 = state.decodeInt(); /* */ $s = 10; case 10: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - x$2 = _r$23; - if ((x$2.$high < -1 || (x$2.$high === -1 && x$2.$low < 2147483648)) || (0 < x$2.$high || (0 === x$2.$high && 2147483647 < x$2.$low))) { + _r$25 = state.decodeInt(); /* */ $s = 10; case 10: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + x = _r$25; + if ((x.$high < -1 || (x.$high === -1 && x.$low < 2147483648)) || (0 < x.$high || (0 === x.$high && 2147483647 < x.$low))) { error_(ovfl); } - ((i < 0 || i >= slice[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : slice[0].$array[slice[0].$offset + i] = (((x$2.$low + ((x$2.$high >> 31) * 4294967296)) >> 0))); + ((i < 0 || i >= slice[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : slice[0].$array[slice[0].$offset + i] = (((x.$low + ((x.$high >> 31) * 4294967296)) >> 0))); i = i + (1) >> 0; $s = 2; continue; case 3: $s = -1; return true; - /* */ } return; } var $f = {$blk: decInt32Slice$1, $c: true, $r, _r$22, _r$23, _tuple, i, length, ok, ovfl, slice, state, v, x$2, $s};return $f; + /* */ } return; } var $f = {$blk: decInt32Slice$1, $c: true, $r, _r$24, _r$25, _tuple, i, length, ok, ovfl, slice, state, v, x, $s};return $f; }; decInt64Array = function decInt64Array$1(state, v, length, ovfl) { - var {$24r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r$22, _r$23, _r$24, length, ovfl, state, v, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); + var {$24r, _arg, _arg$1, _arg$2, _arg$3, _r$24, _r$25, length, ovfl, state, v, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if (!$clone(v, reflect.Value).CanAddr()) { $s = -1; return false; } _arg = state; - _r$22 = $clone(v, reflect.Value).Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _arg$1 = _r$22; - _r$23 = $clone(v, reflect.Value).Slice(0, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _arg$2 = $clone(_r$23, reflect.Value); - _arg$3 = length; - _arg$4 = ovfl; - _r$24 = decInt64Slice(_arg, _arg$2, _arg$3, _arg$4); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - $24r = _r$24; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: decInt64Array$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r$22, _r$23, _r$24, length, ovfl, state, v, $s};return $f; + _r$24 = $clone(v, reflect.Value).Slice(0, $clone(v, reflect.Value).Len()); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _arg$1 = $clone(_r$24, reflect.Value); + _arg$2 = length; + _arg$3 = ovfl; + _r$25 = decInt64Slice(_arg, _arg$1, _arg$2, _arg$3); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $24r = _r$25; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: decInt64Array$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _arg$3, _r$24, _r$25, length, ovfl, state, v, $s};return $f; }; decInt64Slice = function decInt64Slice$1(state, v, length, ovfl) { - var {_r$22, _r$23, _tuple, i, length, ok, ovfl, slice, state, v, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); + var {_r$24, _r$25, _tuple, i, length, ok, ovfl, slice, state, v, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: slice = [slice]; - _r$22 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = $assertType(_r$22, sliceType$8, true); + _r$24 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = $assertType(_r$24, sliceType$9, true); slice[0] = _tuple[0]; ok = _tuple[1]; if (!ok) { @@ -52311,45 +51157,43 @@ $packages["encoding/gob"] = (function() { /* */ if (state.b.Len() === 0) { $s = 4; continue; } /* */ $s = 5; continue; /* if (state.b.Len() === 0) { */ case 4: - $r = errorf("decoding int64 array or slice: length exceeds input size (%d elements)", new sliceType$2([new $Int(length)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errorf("decoding int64 array or slice: length exceeds input size (%d elements)", new sliceType$3([new $Int(length)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 5: /* */ if (i >= slice[0].$length) { $s = 7; continue; } /* */ $s = 8; continue; /* if (i >= slice[0].$length) { */ case 7: - $r = growSlice[8 /* int64 */]($clone(v, reflect.Value), (slice.$ptr || (slice.$ptr = new ptrType$53(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, slice))), length); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = growSlice[8 /* int64 */]($clone(v, reflect.Value), (slice.$ptr || (slice.$ptr = new ptrType$56(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, slice))), length); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 8: - _r$23 = state.decodeInt(); /* */ $s = 10; case 10: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - ((i < 0 || i >= slice[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : slice[0].$array[slice[0].$offset + i] = _r$23); + _r$25 = state.decodeInt(); /* */ $s = 10; case 10: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + ((i < 0 || i >= slice[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : slice[0].$array[slice[0].$offset + i] = _r$25); i = i + (1) >> 0; $s = 2; continue; case 3: $s = -1; return true; - /* */ } return; } var $f = {$blk: decInt64Slice$1, $c: true, $r, _r$22, _r$23, _tuple, i, length, ok, ovfl, slice, state, v, $s};return $f; + /* */ } return; } var $f = {$blk: decInt64Slice$1, $c: true, $r, _r$24, _r$25, _tuple, i, length, ok, ovfl, slice, state, v, $s};return $f; }; decInt8Array = function decInt8Array$1(state, v, length, ovfl) { - var {$24r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r$22, _r$23, _r$24, length, ovfl, state, v, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); + var {$24r, _arg, _arg$1, _arg$2, _arg$3, _r$24, _r$25, length, ovfl, state, v, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if (!$clone(v, reflect.Value).CanAddr()) { $s = -1; return false; } _arg = state; - _r$22 = $clone(v, reflect.Value).Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _arg$1 = _r$22; - _r$23 = $clone(v, reflect.Value).Slice(0, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _arg$2 = $clone(_r$23, reflect.Value); - _arg$3 = length; - _arg$4 = ovfl; - _r$24 = decInt8Slice(_arg, _arg$2, _arg$3, _arg$4); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - $24r = _r$24; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: decInt8Array$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r$22, _r$23, _r$24, length, ovfl, state, v, $s};return $f; + _r$24 = $clone(v, reflect.Value).Slice(0, $clone(v, reflect.Value).Len()); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _arg$1 = $clone(_r$24, reflect.Value); + _arg$2 = length; + _arg$3 = ovfl; + _r$25 = decInt8Slice(_arg, _arg$1, _arg$2, _arg$3); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $24r = _r$25; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: decInt8Array$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _arg$3, _r$24, _r$25, length, ovfl, state, v, $s};return $f; }; decInt8Slice = function decInt8Slice$1(state, v, length, ovfl) { - var {_r$22, _r$23, _tuple, i, length, ok, ovfl, slice, state, v, x$2, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); + var {_r$24, _r$25, _tuple, i, length, ok, ovfl, slice, state, v, x, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: slice = [slice]; - _r$22 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = $assertType(_r$22, sliceType$5, true); + _r$24 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = $assertType(_r$24, sliceType$6, true); slice[0] = _tuple[0]; ok = _tuple[1]; if (!ok) { @@ -52361,49 +51205,48 @@ $packages["encoding/gob"] = (function() { /* */ if (state.b.Len() === 0) { $s = 4; continue; } /* */ $s = 5; continue; /* if (state.b.Len() === 0) { */ case 4: - $r = errorf("decoding int8 array or slice: length exceeds input size (%d elements)", new sliceType$2([new $Int(length)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errorf("decoding int8 array or slice: length exceeds input size (%d elements)", new sliceType$3([new $Int(length)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 5: /* */ if (i >= slice[0].$length) { $s = 7; continue; } /* */ $s = 8; continue; /* if (i >= slice[0].$length) { */ case 7: - $r = growSlice[9 /* int8 */]($clone(v, reflect.Value), (slice.$ptr || (slice.$ptr = new ptrType$54(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, slice))), length); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = growSlice[9 /* int8 */]($clone(v, reflect.Value), (slice.$ptr || (slice.$ptr = new ptrType$57(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, slice))), length); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 8: - _r$23 = state.decodeInt(); /* */ $s = 10; case 10: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - x$2 = _r$23; - if ((x$2.$high < -1 || (x$2.$high === -1 && x$2.$low < 4294967168)) || (0 < x$2.$high || (0 === x$2.$high && 127 < x$2.$low))) { + _r$25 = state.decodeInt(); /* */ $s = 10; case 10: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + x = _r$25; + if ((x.$high < -1 || (x.$high === -1 && x.$low < 4294967168)) || (0 < x.$high || (0 === x.$high && 127 < x.$low))) { error_(ovfl); } - ((i < 0 || i >= slice[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : slice[0].$array[slice[0].$offset + i] = (((x$2.$low + ((x$2.$high >> 31) * 4294967296)) << 24 >> 24))); + ((i < 0 || i >= slice[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : slice[0].$array[slice[0].$offset + i] = (((x.$low + ((x.$high >> 31) * 4294967296)) << 24 >> 24))); i = i + (1) >> 0; $s = 2; continue; case 3: $s = -1; return true; - /* */ } return; } var $f = {$blk: decInt8Slice$1, $c: true, $r, _r$22, _r$23, _tuple, i, length, ok, ovfl, slice, state, v, x$2, $s};return $f; + /* */ } return; } var $f = {$blk: decInt8Slice$1, $c: true, $r, _r$24, _r$25, _tuple, i, length, ok, ovfl, slice, state, v, x, $s};return $f; }; decStringArray = function decStringArray$1(state, v, length, ovfl) { - var {$24r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r$22, _r$23, _r$24, length, ovfl, state, v, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); + var {$24r, _arg, _arg$1, _arg$2, _arg$3, _r$24, _r$25, length, ovfl, state, v, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if (!$clone(v, reflect.Value).CanAddr()) { $s = -1; return false; } _arg = state; - _r$22 = $clone(v, reflect.Value).Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _arg$1 = _r$22; - _r$23 = $clone(v, reflect.Value).Slice(0, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _arg$2 = $clone(_r$23, reflect.Value); - _arg$3 = length; - _arg$4 = ovfl; - _r$24 = decStringSlice(_arg, _arg$2, _arg$3, _arg$4); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - $24r = _r$24; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: decStringArray$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r$22, _r$23, _r$24, length, ovfl, state, v, $s};return $f; + _r$24 = $clone(v, reflect.Value).Slice(0, $clone(v, reflect.Value).Len()); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _arg$1 = $clone(_r$24, reflect.Value); + _arg$2 = length; + _arg$3 = ovfl; + _r$25 = decStringSlice(_arg, _arg$1, _arg$2, _arg$3); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $24r = _r$25; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: decStringArray$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _arg$3, _r$24, _r$25, length, ovfl, state, v, $s};return $f; }; decStringSlice = function decStringSlice$1(state, v, length, ovfl) { - var {_r$22, _r$23, _tuple, data, i, length, n, ok, ovfl, slice, state, u, v, x$2, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); + var {_r$24, _r$25, _tuple, data, i, length, n, ok, ovfl, slice, state, u, v, x, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$22 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = $assertType(_r$22, sliceType$19, true); - slice = _tuple[0]; + slice = [slice]; + _r$24 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = $assertType(_r$24, sliceType$20, true); + slice[0] = _tuple[0]; ok = _tuple[1]; if (!ok) { $s = -1; return false; @@ -52414,59 +51257,62 @@ $packages["encoding/gob"] = (function() { /* */ if (state.b.Len() === 0) { $s = 4; continue; } /* */ $s = 5; continue; /* if (state.b.Len() === 0) { */ case 4: - $r = errorf("decoding string array or slice: length exceeds input size (%d elements)", new sliceType$2([new $Int(length)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errorf("decoding string array or slice: length exceeds input size (%d elements)", new sliceType$3([new $Int(length)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 5: - _r$23 = state.decodeUint(); /* */ $s = 7; case 7: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - u = _r$23; + /* */ if (i >= slice[0].$length) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (i >= slice[0].$length) { */ case 7: + $r = growSlice[10 /* string */]($clone(v, reflect.Value), (slice.$ptr || (slice.$ptr = new ptrType$58(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, slice))), length); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 8: + _r$25 = state.decodeUint(); /* */ $s = 10; case 10: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + u = _r$25; n = ((u.$low >> 0)); - /* */ if (n < 0 || !((x$2 = (new $Uint64(0, n)), (x$2.$high === u.$high && x$2.$low === u.$low))) || n > state.b.Len()) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (n < 0 || !((x$2 = (new $Uint64(0, n)), (x$2.$high === u.$high && x$2.$low === u.$low))) || n > state.b.Len()) { */ case 8: - $r = errorf("length of string exceeds input size (%d bytes)", new sliceType$2([u])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 9: - /* */ if (n > state.b.Len()) { $s = 11; continue; } + /* */ if (n < 0 || !((x = (new $Uint64(0, n)), (x.$high === u.$high && x.$low === u.$low))) || n > state.b.Len()) { $s = 11; continue; } /* */ $s = 12; continue; - /* if (n > state.b.Len()) { */ case 11: - $r = errorf("string data too long for buffer: %d", new sliceType$2([new $Int(n)])); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* if (n < 0 || !((x = (new $Uint64(0, n)), (x.$high === u.$high && x.$low === u.$low))) || n > state.b.Len()) { */ case 11: + $r = errorf("length of string exceeds input size (%d bytes)", new sliceType$3([u])); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 12: - data = state.b.Bytes(); - /* */ if (data.$length < n) { $s = 14; continue; } + /* */ if (n > state.b.Len()) { $s = 14; continue; } /* */ $s = 15; continue; - /* if (data.$length < n) { */ case 14: - $r = errorf("invalid string length %d: exceeds input size %d", new sliceType$2([new $Int(n), new $Int(data.$length)])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* if (n > state.b.Len()) { */ case 14: + $r = errorf("string data too long for buffer: %d", new sliceType$3([new $Int(n)])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 15: - ((i < 0 || i >= slice.$length) ? ($throwRuntimeError("index out of range"), undefined) : slice.$array[slice.$offset + i] = ($bytesToString($subslice(data, 0, n)))); + data = state.b.Bytes(); + /* */ if (data.$length < n) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (data.$length < n) { */ case 17: + $r = errorf("invalid string length %d: exceeds input size %d", new sliceType$3([new $Int(n), new $Int(data.$length)])); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 18: + ((i < 0 || i >= slice[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : slice[0].$array[slice[0].$offset + i] = ($bytesToString($subslice(data, 0, n)))); state.b.Drop(n); i = i + (1) >> 0; $s = 2; continue; case 3: $s = -1; return true; - /* */ } return; } var $f = {$blk: decStringSlice$1, $c: true, $r, _r$22, _r$23, _tuple, data, i, length, n, ok, ovfl, slice, state, u, v, x$2, $s};return $f; + /* */ } return; } var $f = {$blk: decStringSlice$1, $c: true, $r, _r$24, _r$25, _tuple, data, i, length, n, ok, ovfl, slice, state, u, v, x, $s};return $f; }; decUintArray = function decUintArray$1(state, v, length, ovfl) { - var {$24r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r$22, _r$23, _r$24, length, ovfl, state, v, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); + var {$24r, _arg, _arg$1, _arg$2, _arg$3, _r$24, _r$25, length, ovfl, state, v, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if (!$clone(v, reflect.Value).CanAddr()) { $s = -1; return false; } _arg = state; - _r$22 = $clone(v, reflect.Value).Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _arg$1 = _r$22; - _r$23 = $clone(v, reflect.Value).Slice(0, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _arg$2 = $clone(_r$23, reflect.Value); - _arg$3 = length; - _arg$4 = ovfl; - _r$24 = decUintSlice(_arg, _arg$2, _arg$3, _arg$4); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - $24r = _r$24; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: decUintArray$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r$22, _r$23, _r$24, length, ovfl, state, v, $s};return $f; + _r$24 = $clone(v, reflect.Value).Slice(0, $clone(v, reflect.Value).Len()); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _arg$1 = $clone(_r$24, reflect.Value); + _arg$2 = length; + _arg$3 = ovfl; + _r$25 = decUintSlice(_arg, _arg$1, _arg$2, _arg$3); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $24r = _r$25; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: decUintArray$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _arg$3, _r$24, _r$25, length, ovfl, state, v, $s};return $f; }; decUintSlice = function decUintSlice$1(state, v, length, ovfl) { - var {_r$22, _r$23, _tuple, i, length, ok, ovfl, slice, state, v, x$2, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); + var {_r$24, _r$25, _tuple, i, length, ok, ovfl, slice, state, v, x, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: slice = [slice]; - _r$22 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = $assertType(_r$22, sliceType$9, true); + _r$24 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = $assertType(_r$24, sliceType$10, true); slice[0] = _tuple[0]; ok = _tuple[1]; if (!ok) { @@ -52478,46 +51324,44 @@ $packages["encoding/gob"] = (function() { /* */ if (state.b.Len() === 0) { $s = 4; continue; } /* */ $s = 5; continue; /* if (state.b.Len() === 0) { */ case 4: - $r = errorf("decoding uint array or slice: length exceeds input size (%d elements)", new sliceType$2([new $Int(length)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errorf("decoding uint array or slice: length exceeds input size (%d elements)", new sliceType$3([new $Int(length)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 5: /* */ if (i >= slice[0].$length) { $s = 7; continue; } /* */ $s = 8; continue; /* if (i >= slice[0].$length) { */ case 7: - $r = growSlice[10 /* uint */]($clone(v, reflect.Value), (slice.$ptr || (slice.$ptr = new ptrType$55(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, slice))), length); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = growSlice[11 /* uint */]($clone(v, reflect.Value), (slice.$ptr || (slice.$ptr = new ptrType$59(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, slice))), length); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 8: - _r$23 = state.decodeUint(); /* */ $s = 10; case 10: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - x$2 = _r$23; - ((i < 0 || i >= slice[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : slice[0].$array[slice[0].$offset + i] = ((x$2.$low >>> 0))); + _r$25 = state.decodeUint(); /* */ $s = 10; case 10: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + x = _r$25; + ((i < 0 || i >= slice[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : slice[0].$array[slice[0].$offset + i] = ((x.$low >>> 0))); i = i + (1) >> 0; $s = 2; continue; case 3: $s = -1; return true; - /* */ } return; } var $f = {$blk: decUintSlice$1, $c: true, $r, _r$22, _r$23, _tuple, i, length, ok, ovfl, slice, state, v, x$2, $s};return $f; + /* */ } return; } var $f = {$blk: decUintSlice$1, $c: true, $r, _r$24, _r$25, _tuple, i, length, ok, ovfl, slice, state, v, x, $s};return $f; }; decUint16Array = function decUint16Array$1(state, v, length, ovfl) { - var {$24r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r$22, _r$23, _r$24, length, ovfl, state, v, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); + var {$24r, _arg, _arg$1, _arg$2, _arg$3, _r$24, _r$25, length, ovfl, state, v, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if (!$clone(v, reflect.Value).CanAddr()) { $s = -1; return false; } _arg = state; - _r$22 = $clone(v, reflect.Value).Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _arg$1 = _r$22; - _r$23 = $clone(v, reflect.Value).Slice(0, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _arg$2 = $clone(_r$23, reflect.Value); - _arg$3 = length; - _arg$4 = ovfl; - _r$24 = decUint16Slice(_arg, _arg$2, _arg$3, _arg$4); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - $24r = _r$24; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: decUint16Array$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r$22, _r$23, _r$24, length, ovfl, state, v, $s};return $f; + _r$24 = $clone(v, reflect.Value).Slice(0, $clone(v, reflect.Value).Len()); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _arg$1 = $clone(_r$24, reflect.Value); + _arg$2 = length; + _arg$3 = ovfl; + _r$25 = decUint16Slice(_arg, _arg$1, _arg$2, _arg$3); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $24r = _r$25; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: decUint16Array$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _arg$3, _r$24, _r$25, length, ovfl, state, v, $s};return $f; }; decUint16Slice = function decUint16Slice$1(state, v, length, ovfl) { - var {_r$22, _r$23, _tuple, i, length, ok, ovfl, slice, state, v, x$2, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); + var {_r$24, _r$25, _tuple, i, length, ok, ovfl, slice, state, v, x, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: slice = [slice]; - _r$22 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = $assertType(_r$22, sliceType$10, true); + _r$24 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = $assertType(_r$24, sliceType$11, true); slice[0] = _tuple[0]; ok = _tuple[1]; if (!ok) { @@ -52529,49 +51373,47 @@ $packages["encoding/gob"] = (function() { /* */ if (state.b.Len() === 0) { $s = 4; continue; } /* */ $s = 5; continue; /* if (state.b.Len() === 0) { */ case 4: - $r = errorf("decoding uint16 array or slice: length exceeds input size (%d elements)", new sliceType$2([new $Int(length)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errorf("decoding uint16 array or slice: length exceeds input size (%d elements)", new sliceType$3([new $Int(length)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 5: /* */ if (i >= slice[0].$length) { $s = 7; continue; } /* */ $s = 8; continue; /* if (i >= slice[0].$length) { */ case 7: - $r = growSlice[11 /* uint16 */]($clone(v, reflect.Value), (slice.$ptr || (slice.$ptr = new ptrType$56(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, slice))), length); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = growSlice[12 /* uint16 */]($clone(v, reflect.Value), (slice.$ptr || (slice.$ptr = new ptrType$60(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, slice))), length); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 8: - _r$23 = state.decodeUint(); /* */ $s = 10; case 10: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - x$2 = _r$23; - if ((0 < x$2.$high || (0 === x$2.$high && 65535 < x$2.$low))) { + _r$25 = state.decodeUint(); /* */ $s = 10; case 10: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + x = _r$25; + if ((0 < x.$high || (0 === x.$high && 65535 < x.$low))) { error_(ovfl); } - ((i < 0 || i >= slice[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : slice[0].$array[slice[0].$offset + i] = ((x$2.$low << 16 >>> 16))); + ((i < 0 || i >= slice[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : slice[0].$array[slice[0].$offset + i] = ((x.$low << 16 >>> 16))); i = i + (1) >> 0; $s = 2; continue; case 3: $s = -1; return true; - /* */ } return; } var $f = {$blk: decUint16Slice$1, $c: true, $r, _r$22, _r$23, _tuple, i, length, ok, ovfl, slice, state, v, x$2, $s};return $f; + /* */ } return; } var $f = {$blk: decUint16Slice$1, $c: true, $r, _r$24, _r$25, _tuple, i, length, ok, ovfl, slice, state, v, x, $s};return $f; }; decUint32Array = function decUint32Array$1(state, v, length, ovfl) { - var {$24r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r$22, _r$23, _r$24, length, ovfl, state, v, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); + var {$24r, _arg, _arg$1, _arg$2, _arg$3, _r$24, _r$25, length, ovfl, state, v, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if (!$clone(v, reflect.Value).CanAddr()) { $s = -1; return false; } _arg = state; - _r$22 = $clone(v, reflect.Value).Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _arg$1 = _r$22; - _r$23 = $clone(v, reflect.Value).Slice(0, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _arg$2 = $clone(_r$23, reflect.Value); - _arg$3 = length; - _arg$4 = ovfl; - _r$24 = decUint32Slice(_arg, _arg$2, _arg$3, _arg$4); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - $24r = _r$24; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: decUint32Array$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r$22, _r$23, _r$24, length, ovfl, state, v, $s};return $f; + _r$24 = $clone(v, reflect.Value).Slice(0, $clone(v, reflect.Value).Len()); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _arg$1 = $clone(_r$24, reflect.Value); + _arg$2 = length; + _arg$3 = ovfl; + _r$25 = decUint32Slice(_arg, _arg$1, _arg$2, _arg$3); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $24r = _r$25; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: decUint32Array$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _arg$3, _r$24, _r$25, length, ovfl, state, v, $s};return $f; }; decUint32Slice = function decUint32Slice$1(state, v, length, ovfl) { - var {_r$22, _r$23, _tuple, i, length, ok, ovfl, slice, state, v, x$2, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); + var {_r$24, _r$25, _tuple, i, length, ok, ovfl, slice, state, v, x, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: slice = [slice]; - _r$22 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = $assertType(_r$22, sliceType$11, true); + _r$24 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = $assertType(_r$24, sliceType$12, true); slice[0] = _tuple[0]; ok = _tuple[1]; if (!ok) { @@ -52583,49 +51425,47 @@ $packages["encoding/gob"] = (function() { /* */ if (state.b.Len() === 0) { $s = 4; continue; } /* */ $s = 5; continue; /* if (state.b.Len() === 0) { */ case 4: - $r = errorf("decoding uint32 array or slice: length exceeds input size (%d elements)", new sliceType$2([new $Int(length)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errorf("decoding uint32 array or slice: length exceeds input size (%d elements)", new sliceType$3([new $Int(length)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 5: /* */ if (i >= slice[0].$length) { $s = 7; continue; } /* */ $s = 8; continue; /* if (i >= slice[0].$length) { */ case 7: - $r = growSlice[12 /* uint32 */]($clone(v, reflect.Value), (slice.$ptr || (slice.$ptr = new ptrType$57(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, slice))), length); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = growSlice[13 /* uint32 */]($clone(v, reflect.Value), (slice.$ptr || (slice.$ptr = new ptrType$61(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, slice))), length); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 8: - _r$23 = state.decodeUint(); /* */ $s = 10; case 10: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - x$2 = _r$23; - if ((0 < x$2.$high || (0 === x$2.$high && 4294967295 < x$2.$low))) { + _r$25 = state.decodeUint(); /* */ $s = 10; case 10: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + x = _r$25; + if ((0 < x.$high || (0 === x.$high && 4294967295 < x.$low))) { error_(ovfl); } - ((i < 0 || i >= slice[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : slice[0].$array[slice[0].$offset + i] = ((x$2.$low >>> 0))); + ((i < 0 || i >= slice[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : slice[0].$array[slice[0].$offset + i] = ((x.$low >>> 0))); i = i + (1) >> 0; $s = 2; continue; case 3: $s = -1; return true; - /* */ } return; } var $f = {$blk: decUint32Slice$1, $c: true, $r, _r$22, _r$23, _tuple, i, length, ok, ovfl, slice, state, v, x$2, $s};return $f; + /* */ } return; } var $f = {$blk: decUint32Slice$1, $c: true, $r, _r$24, _r$25, _tuple, i, length, ok, ovfl, slice, state, v, x, $s};return $f; }; decUint64Array = function decUint64Array$1(state, v, length, ovfl) { - var {$24r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r$22, _r$23, _r$24, length, ovfl, state, v, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); + var {$24r, _arg, _arg$1, _arg$2, _arg$3, _r$24, _r$25, length, ovfl, state, v, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if (!$clone(v, reflect.Value).CanAddr()) { $s = -1; return false; } _arg = state; - _r$22 = $clone(v, reflect.Value).Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _arg$1 = _r$22; - _r$23 = $clone(v, reflect.Value).Slice(0, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _arg$2 = $clone(_r$23, reflect.Value); - _arg$3 = length; - _arg$4 = ovfl; - _r$24 = decUint64Slice(_arg, _arg$2, _arg$3, _arg$4); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - $24r = _r$24; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: decUint64Array$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r$22, _r$23, _r$24, length, ovfl, state, v, $s};return $f; + _r$24 = $clone(v, reflect.Value).Slice(0, $clone(v, reflect.Value).Len()); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _arg$1 = $clone(_r$24, reflect.Value); + _arg$2 = length; + _arg$3 = ovfl; + _r$25 = decUint64Slice(_arg, _arg$1, _arg$2, _arg$3); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $24r = _r$25; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: decUint64Array$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _arg$3, _r$24, _r$25, length, ovfl, state, v, $s};return $f; }; decUint64Slice = function decUint64Slice$1(state, v, length, ovfl) { - var {_r$22, _r$23, _tuple, i, length, ok, ovfl, slice, state, v, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); + var {_r$24, _r$25, _tuple, i, length, ok, ovfl, slice, state, v, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: slice = [slice]; - _r$22 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = $assertType(_r$22, sliceType$12, true); + _r$24 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = $assertType(_r$24, sliceType$13, true); slice[0] = _tuple[0]; ok = _tuple[1]; if (!ok) { @@ -52637,45 +51477,43 @@ $packages["encoding/gob"] = (function() { /* */ if (state.b.Len() === 0) { $s = 4; continue; } /* */ $s = 5; continue; /* if (state.b.Len() === 0) { */ case 4: - $r = errorf("decoding uint64 array or slice: length exceeds input size (%d elements)", new sliceType$2([new $Int(length)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errorf("decoding uint64 array or slice: length exceeds input size (%d elements)", new sliceType$3([new $Int(length)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 5: /* */ if (i >= slice[0].$length) { $s = 7; continue; } /* */ $s = 8; continue; /* if (i >= slice[0].$length) { */ case 7: - $r = growSlice[13 /* uint64 */]($clone(v, reflect.Value), (slice.$ptr || (slice.$ptr = new ptrType$58(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, slice))), length); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = growSlice[14 /* uint64 */]($clone(v, reflect.Value), (slice.$ptr || (slice.$ptr = new ptrType$62(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, slice))), length); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 8: - _r$23 = state.decodeUint(); /* */ $s = 10; case 10: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - ((i < 0 || i >= slice[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : slice[0].$array[slice[0].$offset + i] = _r$23); + _r$25 = state.decodeUint(); /* */ $s = 10; case 10: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + ((i < 0 || i >= slice[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : slice[0].$array[slice[0].$offset + i] = _r$25); i = i + (1) >> 0; $s = 2; continue; case 3: $s = -1; return true; - /* */ } return; } var $f = {$blk: decUint64Slice$1, $c: true, $r, _r$22, _r$23, _tuple, i, length, ok, ovfl, slice, state, v, $s};return $f; + /* */ } return; } var $f = {$blk: decUint64Slice$1, $c: true, $r, _r$24, _r$25, _tuple, i, length, ok, ovfl, slice, state, v, $s};return $f; }; decUintptrArray = function decUintptrArray$1(state, v, length, ovfl) { - var {$24r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r$22, _r$23, _r$24, length, ovfl, state, v, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); + var {$24r, _arg, _arg$1, _arg$2, _arg$3, _r$24, _r$25, length, ovfl, state, v, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if (!$clone(v, reflect.Value).CanAddr()) { $s = -1; return false; } _arg = state; - _r$22 = $clone(v, reflect.Value).Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _arg$1 = _r$22; - _r$23 = $clone(v, reflect.Value).Slice(0, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _arg$2 = $clone(_r$23, reflect.Value); - _arg$3 = length; - _arg$4 = ovfl; - _r$24 = decUintptrSlice(_arg, _arg$2, _arg$3, _arg$4); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - $24r = _r$24; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: decUintptrArray$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r$22, _r$23, _r$24, length, ovfl, state, v, $s};return $f; + _r$24 = $clone(v, reflect.Value).Slice(0, $clone(v, reflect.Value).Len()); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _arg$1 = $clone(_r$24, reflect.Value); + _arg$2 = length; + _arg$3 = ovfl; + _r$25 = decUintptrSlice(_arg, _arg$1, _arg$2, _arg$3); /* */ $s = 2; case 2: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $24r = _r$25; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: decUintptrArray$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _arg$3, _r$24, _r$25, length, ovfl, state, v, $s};return $f; }; decUintptrSlice = function decUintptrSlice$1(state, v, length, ovfl) { - var {_r$22, _r$23, _tuple, i, length, ok, ovfl, slice, state, v, x$2, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); + var {_r$24, _r$25, _tuple, i, length, ok, ovfl, slice, state, v, x, $s, $r, $c} = $restore(this, {state, v, length, ovfl}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: slice = [slice]; - _r$22 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple = $assertType(_r$22, sliceType$17, true); + _r$24 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple = $assertType(_r$24, sliceType$18, true); slice[0] = _tuple[0]; ok = _tuple[1]; if (!ok) { @@ -52687,27 +51525,27 @@ $packages["encoding/gob"] = (function() { /* */ if (state.b.Len() === 0) { $s = 4; continue; } /* */ $s = 5; continue; /* if (state.b.Len() === 0) { */ case 4: - $r = errorf("decoding uintptr array or slice: length exceeds input size (%d elements)", new sliceType$2([new $Int(length)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errorf("decoding uintptr array or slice: length exceeds input size (%d elements)", new sliceType$3([new $Int(length)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 5: /* */ if (i >= slice[0].$length) { $s = 7; continue; } /* */ $s = 8; continue; /* if (i >= slice[0].$length) { */ case 7: - $r = growSlice[14 /* uintptr */]($clone(v, reflect.Value), (slice.$ptr || (slice.$ptr = new ptrType$59(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, slice))), length); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = growSlice[15 /* uintptr */]($clone(v, reflect.Value), (slice.$ptr || (slice.$ptr = new ptrType$63(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, slice))), length); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 8: - _r$23 = state.decodeUint(); /* */ $s = 10; case 10: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - x$2 = _r$23; - if ((0 < x$2.$high || (0 === x$2.$high && 4294967295 < x$2.$low))) { + _r$25 = state.decodeUint(); /* */ $s = 10; case 10: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + x = _r$25; + if ((0 < x.$high || (0 === x.$high && 4294967295 < x.$low))) { error_(ovfl); } - ((i < 0 || i >= slice[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : slice[0].$array[slice[0].$offset + i] = ((x$2.$low >>> 0))); + ((i < 0 || i >= slice[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : slice[0].$array[slice[0].$offset + i] = ((x.$low >>> 0))); i = i + (1) >> 0; $s = 2; continue; case 3: $s = -1; return true; - /* */ } return; } var $f = {$blk: decUintptrSlice$1, $c: true, $r, _r$22, _r$23, _tuple, i, length, ok, ovfl, slice, state, v, x$2, $s};return $f; + /* */ } return; } var $f = {$blk: decUintptrSlice$1, $c: true, $r, _r$24, _r$25, _tuple, i, length, ok, ovfl, slice, state, v, x, $s};return $f; }; growSlice[0 /* bool */] = function growSlice$1(v, ps, length) { - var {_r$22, cp, length, ps, s, v, zero, $s, $r, $c} = $restore(this, {v, ps, length}); + var {cp, length, ps, s, v, zero, $s, $r, $c} = $restore(this, {v, ps, length}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: zero = false; s = ps.$get(); @@ -52717,14 +51555,13 @@ $packages["encoding/gob"] = (function() { cp = length; } s = $subslice(s, 0, cp); - _r$22 = reflect.ValueOf(s); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - $r = $clone(v, reflect.Value).Set($clone(_r$22, reflect.Value)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = $clone(v, reflect.Value).Set($clone(reflect.ValueOf(s), reflect.Value)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } ps.$set(s); $s = -1; return; - /* */ } return; } var $f = {$blk: growSlice$1, $c: true, $r, _r$22, cp, length, ps, s, v, zero, $s};return $f; + /* */ } return; } var $f = {$blk: growSlice$1, $c: true, $r, cp, length, ps, s, v, zero, $s};return $f; }; growSlice[1 /* complex64 */] = function growSlice$2(v, ps, length) { - var {_r$22, cp, length, ps, s, v, zero, $s, $r, $c} = $restore(this, {v, ps, length}); + var {cp, length, ps, s, v, zero, $s, $r, $c} = $restore(this, {v, ps, length}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: zero = new $Complex64(0, 0); s = ps.$get(); @@ -52734,14 +51571,13 @@ $packages["encoding/gob"] = (function() { cp = length; } s = $subslice(s, 0, cp); - _r$22 = reflect.ValueOf(s); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - $r = $clone(v, reflect.Value).Set($clone(_r$22, reflect.Value)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = $clone(v, reflect.Value).Set($clone(reflect.ValueOf(s), reflect.Value)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } ps.$set(s); $s = -1; return; - /* */ } return; } var $f = {$blk: growSlice$2, $c: true, $r, _r$22, cp, length, ps, s, v, zero, $s};return $f; + /* */ } return; } var $f = {$blk: growSlice$2, $c: true, $r, cp, length, ps, s, v, zero, $s};return $f; }; growSlice[2 /* complex128 */] = function growSlice$3(v, ps, length) { - var {_r$22, cp, length, ps, s, v, zero, $s, $r, $c} = $restore(this, {v, ps, length}); + var {cp, length, ps, s, v, zero, $s, $r, $c} = $restore(this, {v, ps, length}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: zero = new $Complex128(0, 0); s = ps.$get(); @@ -52751,14 +51587,13 @@ $packages["encoding/gob"] = (function() { cp = length; } s = $subslice(s, 0, cp); - _r$22 = reflect.ValueOf(s); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - $r = $clone(v, reflect.Value).Set($clone(_r$22, reflect.Value)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = $clone(v, reflect.Value).Set($clone(reflect.ValueOf(s), reflect.Value)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } ps.$set(s); $s = -1; return; - /* */ } return; } var $f = {$blk: growSlice$3, $c: true, $r, _r$22, cp, length, ps, s, v, zero, $s};return $f; + /* */ } return; } var $f = {$blk: growSlice$3, $c: true, $r, cp, length, ps, s, v, zero, $s};return $f; }; growSlice[3 /* float32 */] = function growSlice$4(v, ps, length) { - var {_r$22, cp, length, ps, s, v, zero, $s, $r, $c} = $restore(this, {v, ps, length}); + var {cp, length, ps, s, v, zero, $s, $r, $c} = $restore(this, {v, ps, length}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: zero = 0; s = ps.$get(); @@ -52768,14 +51603,13 @@ $packages["encoding/gob"] = (function() { cp = length; } s = $subslice(s, 0, cp); - _r$22 = reflect.ValueOf(s); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - $r = $clone(v, reflect.Value).Set($clone(_r$22, reflect.Value)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = $clone(v, reflect.Value).Set($clone(reflect.ValueOf(s), reflect.Value)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } ps.$set(s); $s = -1; return; - /* */ } return; } var $f = {$blk: growSlice$4, $c: true, $r, _r$22, cp, length, ps, s, v, zero, $s};return $f; + /* */ } return; } var $f = {$blk: growSlice$4, $c: true, $r, cp, length, ps, s, v, zero, $s};return $f; }; growSlice[4 /* float64 */] = function growSlice$5(v, ps, length) { - var {_r$22, cp, length, ps, s, v, zero, $s, $r, $c} = $restore(this, {v, ps, length}); + var {cp, length, ps, s, v, zero, $s, $r, $c} = $restore(this, {v, ps, length}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: zero = 0; s = ps.$get(); @@ -52785,14 +51619,13 @@ $packages["encoding/gob"] = (function() { cp = length; } s = $subslice(s, 0, cp); - _r$22 = reflect.ValueOf(s); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - $r = $clone(v, reflect.Value).Set($clone(_r$22, reflect.Value)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = $clone(v, reflect.Value).Set($clone(reflect.ValueOf(s), reflect.Value)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } ps.$set(s); $s = -1; return; - /* */ } return; } var $f = {$blk: growSlice$5, $c: true, $r, _r$22, cp, length, ps, s, v, zero, $s};return $f; + /* */ } return; } var $f = {$blk: growSlice$5, $c: true, $r, cp, length, ps, s, v, zero, $s};return $f; }; growSlice[5 /* int */] = function growSlice$6(v, ps, length) { - var {_r$22, cp, length, ps, s, v, zero, $s, $r, $c} = $restore(this, {v, ps, length}); + var {cp, length, ps, s, v, zero, $s, $r, $c} = $restore(this, {v, ps, length}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: zero = 0; s = ps.$get(); @@ -52802,14 +51635,13 @@ $packages["encoding/gob"] = (function() { cp = length; } s = $subslice(s, 0, cp); - _r$22 = reflect.ValueOf(s); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - $r = $clone(v, reflect.Value).Set($clone(_r$22, reflect.Value)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = $clone(v, reflect.Value).Set($clone(reflect.ValueOf(s), reflect.Value)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } ps.$set(s); $s = -1; return; - /* */ } return; } var $f = {$blk: growSlice$6, $c: true, $r, _r$22, cp, length, ps, s, v, zero, $s};return $f; + /* */ } return; } var $f = {$blk: growSlice$6, $c: true, $r, cp, length, ps, s, v, zero, $s};return $f; }; growSlice[6 /* int16 */] = function growSlice$7(v, ps, length) { - var {_r$22, cp, length, ps, s, v, zero, $s, $r, $c} = $restore(this, {v, ps, length}); + var {cp, length, ps, s, v, zero, $s, $r, $c} = $restore(this, {v, ps, length}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: zero = 0; s = ps.$get(); @@ -52819,14 +51651,13 @@ $packages["encoding/gob"] = (function() { cp = length; } s = $subslice(s, 0, cp); - _r$22 = reflect.ValueOf(s); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - $r = $clone(v, reflect.Value).Set($clone(_r$22, reflect.Value)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = $clone(v, reflect.Value).Set($clone(reflect.ValueOf(s), reflect.Value)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } ps.$set(s); $s = -1; return; - /* */ } return; } var $f = {$blk: growSlice$7, $c: true, $r, _r$22, cp, length, ps, s, v, zero, $s};return $f; + /* */ } return; } var $f = {$blk: growSlice$7, $c: true, $r, cp, length, ps, s, v, zero, $s};return $f; }; growSlice[7 /* int32 */] = function growSlice$8(v, ps, length) { - var {_r$22, cp, length, ps, s, v, zero, $s, $r, $c} = $restore(this, {v, ps, length}); + var {cp, length, ps, s, v, zero, $s, $r, $c} = $restore(this, {v, ps, length}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: zero = 0; s = ps.$get(); @@ -52836,14 +51667,13 @@ $packages["encoding/gob"] = (function() { cp = length; } s = $subslice(s, 0, cp); - _r$22 = reflect.ValueOf(s); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - $r = $clone(v, reflect.Value).Set($clone(_r$22, reflect.Value)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = $clone(v, reflect.Value).Set($clone(reflect.ValueOf(s), reflect.Value)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } ps.$set(s); $s = -1; return; - /* */ } return; } var $f = {$blk: growSlice$8, $c: true, $r, _r$22, cp, length, ps, s, v, zero, $s};return $f; + /* */ } return; } var $f = {$blk: growSlice$8, $c: true, $r, cp, length, ps, s, v, zero, $s};return $f; }; growSlice[8 /* int64 */] = function growSlice$9(v, ps, length) { - var {_r$22, cp, length, ps, s, v, zero, $s, $r, $c} = $restore(this, {v, ps, length}); + var {cp, length, ps, s, v, zero, $s, $r, $c} = $restore(this, {v, ps, length}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: zero = new $Int64(0, 0); s = ps.$get(); @@ -52853,14 +51683,13 @@ $packages["encoding/gob"] = (function() { cp = length; } s = $subslice(s, 0, cp); - _r$22 = reflect.ValueOf(s); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - $r = $clone(v, reflect.Value).Set($clone(_r$22, reflect.Value)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = $clone(v, reflect.Value).Set($clone(reflect.ValueOf(s), reflect.Value)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } ps.$set(s); $s = -1; return; - /* */ } return; } var $f = {$blk: growSlice$9, $c: true, $r, _r$22, cp, length, ps, s, v, zero, $s};return $f; + /* */ } return; } var $f = {$blk: growSlice$9, $c: true, $r, cp, length, ps, s, v, zero, $s};return $f; }; growSlice[9 /* int8 */] = function growSlice$10(v, ps, length) { - var {_r$22, cp, length, ps, s, v, zero, $s, $r, $c} = $restore(this, {v, ps, length}); + var {cp, length, ps, s, v, zero, $s, $r, $c} = $restore(this, {v, ps, length}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: zero = 0; s = ps.$get(); @@ -52870,14 +51699,29 @@ $packages["encoding/gob"] = (function() { cp = length; } s = $subslice(s, 0, cp); - _r$22 = reflect.ValueOf(s); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - $r = $clone(v, reflect.Value).Set($clone(_r$22, reflect.Value)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = $clone(v, reflect.Value).Set($clone(reflect.ValueOf(s), reflect.Value)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } ps.$set(s); $s = -1; return; - /* */ } return; } var $f = {$blk: growSlice$10, $c: true, $r, _r$22, cp, length, ps, s, v, zero, $s};return $f; + /* */ } return; } var $f = {$blk: growSlice$10, $c: true, $r, cp, length, ps, s, v, zero, $s};return $f; }; - growSlice[10 /* uint */] = function growSlice$11(v, ps, length) { - var {_r$22, cp, length, ps, s, v, zero, $s, $r, $c} = $restore(this, {v, ps, length}); + growSlice[10 /* string */] = function growSlice$11(v, ps, length) { + var {cp, length, ps, s, v, zero, $s, $r, $c} = $restore(this, {v, ps, length}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + zero = ""; + s = ps.$get(); + s = $append(s, zero); + cp = s.$capacity; + if (cp > length) { + cp = length; + } + s = $subslice(s, 0, cp); + $r = $clone(v, reflect.Value).Set($clone(reflect.ValueOf(s), reflect.Value)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + ps.$set(s); + $s = -1; return; + /* */ } return; } var $f = {$blk: growSlice$11, $c: true, $r, cp, length, ps, s, v, zero, $s};return $f; + }; + growSlice[11 /* uint */] = function growSlice$12(v, ps, length) { + var {cp, length, ps, s, v, zero, $s, $r, $c} = $restore(this, {v, ps, length}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: zero = 0; s = ps.$get(); @@ -52887,14 +51731,13 @@ $packages["encoding/gob"] = (function() { cp = length; } s = $subslice(s, 0, cp); - _r$22 = reflect.ValueOf(s); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - $r = $clone(v, reflect.Value).Set($clone(_r$22, reflect.Value)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = $clone(v, reflect.Value).Set($clone(reflect.ValueOf(s), reflect.Value)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } ps.$set(s); $s = -1; return; - /* */ } return; } var $f = {$blk: growSlice$11, $c: true, $r, _r$22, cp, length, ps, s, v, zero, $s};return $f; + /* */ } return; } var $f = {$blk: growSlice$12, $c: true, $r, cp, length, ps, s, v, zero, $s};return $f; }; - growSlice[11 /* uint16 */] = function growSlice$12(v, ps, length) { - var {_r$22, cp, length, ps, s, v, zero, $s, $r, $c} = $restore(this, {v, ps, length}); + growSlice[12 /* uint16 */] = function growSlice$13(v, ps, length) { + var {cp, length, ps, s, v, zero, $s, $r, $c} = $restore(this, {v, ps, length}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: zero = 0; s = ps.$get(); @@ -52904,14 +51747,13 @@ $packages["encoding/gob"] = (function() { cp = length; } s = $subslice(s, 0, cp); - _r$22 = reflect.ValueOf(s); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - $r = $clone(v, reflect.Value).Set($clone(_r$22, reflect.Value)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = $clone(v, reflect.Value).Set($clone(reflect.ValueOf(s), reflect.Value)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } ps.$set(s); $s = -1; return; - /* */ } return; } var $f = {$blk: growSlice$12, $c: true, $r, _r$22, cp, length, ps, s, v, zero, $s};return $f; + /* */ } return; } var $f = {$blk: growSlice$13, $c: true, $r, cp, length, ps, s, v, zero, $s};return $f; }; - growSlice[12 /* uint32 */] = function growSlice$13(v, ps, length) { - var {_r$22, cp, length, ps, s, v, zero, $s, $r, $c} = $restore(this, {v, ps, length}); + growSlice[13 /* uint32 */] = function growSlice$14(v, ps, length) { + var {cp, length, ps, s, v, zero, $s, $r, $c} = $restore(this, {v, ps, length}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: zero = 0; s = ps.$get(); @@ -52921,14 +51763,13 @@ $packages["encoding/gob"] = (function() { cp = length; } s = $subslice(s, 0, cp); - _r$22 = reflect.ValueOf(s); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - $r = $clone(v, reflect.Value).Set($clone(_r$22, reflect.Value)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = $clone(v, reflect.Value).Set($clone(reflect.ValueOf(s), reflect.Value)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } ps.$set(s); $s = -1; return; - /* */ } return; } var $f = {$blk: growSlice$13, $c: true, $r, _r$22, cp, length, ps, s, v, zero, $s};return $f; + /* */ } return; } var $f = {$blk: growSlice$14, $c: true, $r, cp, length, ps, s, v, zero, $s};return $f; }; - growSlice[13 /* uint64 */] = function growSlice$14(v, ps, length) { - var {_r$22, cp, length, ps, s, v, zero, $s, $r, $c} = $restore(this, {v, ps, length}); + growSlice[14 /* uint64 */] = function growSlice$15(v, ps, length) { + var {cp, length, ps, s, v, zero, $s, $r, $c} = $restore(this, {v, ps, length}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: zero = new $Uint64(0, 0); s = ps.$get(); @@ -52938,14 +51779,13 @@ $packages["encoding/gob"] = (function() { cp = length; } s = $subslice(s, 0, cp); - _r$22 = reflect.ValueOf(s); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - $r = $clone(v, reflect.Value).Set($clone(_r$22, reflect.Value)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = $clone(v, reflect.Value).Set($clone(reflect.ValueOf(s), reflect.Value)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } ps.$set(s); $s = -1; return; - /* */ } return; } var $f = {$blk: growSlice$14, $c: true, $r, _r$22, cp, length, ps, s, v, zero, $s};return $f; + /* */ } return; } var $f = {$blk: growSlice$15, $c: true, $r, cp, length, ps, s, v, zero, $s};return $f; }; - growSlice[14 /* uintptr */] = function growSlice$15(v, ps, length) { - var {_r$22, cp, length, ps, s, v, zero, $s, $r, $c} = $restore(this, {v, ps, length}); + growSlice[15 /* uintptr */] = function growSlice$16(v, ps, length) { + var {cp, length, ps, s, v, zero, $s, $r, $c} = $restore(this, {v, ps, length}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: zero = 0; s = ps.$get(); @@ -52955,26 +51795,25 @@ $packages["encoding/gob"] = (function() { cp = length; } s = $subslice(s, 0, cp); - _r$22 = reflect.ValueOf(s); /* */ $s = 1; case 1: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - $r = $clone(v, reflect.Value).Set($clone(_r$22, reflect.Value)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = $clone(v, reflect.Value).Set($clone(reflect.ValueOf(s), reflect.Value)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } ps.$set(s); $s = -1; return; - /* */ } return; } var $f = {$blk: growSlice$15, $c: true, $r, _r$22, cp, length, ps, s, v, zero, $s};return $f; + /* */ } return; } var $f = {$blk: growSlice$16, $c: true, $r, cp, length, ps, s, v, zero, $s};return $f; }; typeId.methods = [{prop: "gobType", name: "gobType", pkg: "encoding/gob", typ: $funcType([], [gobType], false)}, {prop: "string", name: "string", pkg: "encoding/gob", typ: $funcType([], [$String], false)}, {prop: "name", name: "name", pkg: "encoding/gob", typ: $funcType([], [$String], false)}]; - ptrType$60.methods = [{prop: "id", name: "id", pkg: "encoding/gob", typ: $funcType([], [typeId], false)}, {prop: "setId", name: "setId", pkg: "encoding/gob", typ: $funcType([typeId], [], false)}, {prop: "string", name: "string", pkg: "encoding/gob", typ: $funcType([], [$String], false)}, {prop: "safeString", name: "safeString", pkg: "encoding/gob", typ: $funcType([mapType$2], [$String], false)}, {prop: "name", name: "name", pkg: "encoding/gob", typ: $funcType([], [$String], false)}]; - ptrType$23.methods = [{prop: "init", name: "init", pkg: "encoding/gob", typ: $funcType([gobType, $Int], [], false)}, {prop: "safeString", name: "safeString", pkg: "encoding/gob", typ: $funcType([mapType$2], [$String], false)}, {prop: "string", name: "string", pkg: "encoding/gob", typ: $funcType([], [$String], false)}]; - ptrType$27.methods = [{prop: "safeString", name: "safeString", pkg: "encoding/gob", typ: $funcType([mapType$2], [$String], false)}, {prop: "string", name: "string", pkg: "encoding/gob", typ: $funcType([], [$String], false)}]; - ptrType$26.methods = [{prop: "init", name: "init", pkg: "encoding/gob", typ: $funcType([gobType, gobType], [], false)}, {prop: "safeString", name: "safeString", pkg: "encoding/gob", typ: $funcType([mapType$2], [$String], false)}, {prop: "string", name: "string", pkg: "encoding/gob", typ: $funcType([], [$String], false)}]; - ptrType$24.methods = [{prop: "init", name: "init", pkg: "encoding/gob", typ: $funcType([gobType], [], false)}, {prop: "safeString", name: "safeString", pkg: "encoding/gob", typ: $funcType([mapType$2], [$String], false)}, {prop: "string", name: "string", pkg: "encoding/gob", typ: $funcType([], [$String], false)}]; - ptrType$25.methods = [{prop: "safeString", name: "safeString", pkg: "encoding/gob", typ: $funcType([mapType$2], [$String], false)}, {prop: "string", name: "string", pkg: "encoding/gob", typ: $funcType([], [$String], false)}]; - ptrType$29.methods = [{prop: "string", name: "string", pkg: "encoding/gob", typ: $funcType([], [$String], false)}]; - ptrType$33.methods = [{prop: "writer", name: "writer", pkg: "encoding/gob", typ: $funcType([], [io.Writer], false)}, {prop: "pushWriter", name: "pushWriter", pkg: "encoding/gob", typ: $funcType([io.Writer], [], false)}, {prop: "popWriter", name: "popWriter", pkg: "encoding/gob", typ: $funcType([], [], false)}, {prop: "setError", name: "setError", pkg: "encoding/gob", typ: $funcType([$error], [], false)}, {prop: "writeMessage", name: "writeMessage", pkg: "encoding/gob", typ: $funcType([io.Writer, ptrType$34], [], false)}, {prop: "sendActualType", name: "sendActualType", pkg: "encoding/gob", typ: $funcType([io.Writer, ptrType$32, ptrType, reflect.Type], [$Bool], false)}, {prop: "sendType", name: "sendType", pkg: "encoding/gob", typ: $funcType([io.Writer, ptrType$32, reflect.Type], [$Bool], false)}, {prop: "Encode", name: "Encode", pkg: "", typ: $funcType([$emptyInterface], [$error], false)}, {prop: "sendTypeDescriptor", name: "sendTypeDescriptor", pkg: "encoding/gob", typ: $funcType([io.Writer, ptrType$32, ptrType], [], false)}, {prop: "sendTypeId", name: "sendTypeId", pkg: "encoding/gob", typ: $funcType([ptrType$32, ptrType], [], false)}, {prop: "EncodeValue", name: "EncodeValue", pkg: "", typ: $funcType([reflect.Value], [$error], false)}, {prop: "newEncoderState", name: "newEncoderState", pkg: "encoding/gob", typ: $funcType([ptrType$34], [ptrType$32], false)}, {prop: "freeEncoderState", name: "freeEncoderState", pkg: "encoding/gob", typ: $funcType([ptrType$32], [], false)}, {prop: "encodeSingle", name: "encodeSingle", pkg: "encoding/gob", typ: $funcType([ptrType$34, ptrType$31, reflect.Value], [], false)}, {prop: "encodeStruct", name: "encodeStruct", pkg: "encoding/gob", typ: $funcType([ptrType$34, ptrType$31, reflect.Value], [], false)}, {prop: "encodeArray", name: "encodeArray", pkg: "encoding/gob", typ: $funcType([ptrType$34, reflect.Value, encOp, $Int, $Int, encHelper], [], false)}, {prop: "encodeMap", name: "encodeMap", pkg: "encoding/gob", typ: $funcType([ptrType$34, reflect.Value, encOp, encOp, $Int, $Int], [], false)}, {prop: "encodeInterface", name: "encodeInterface", pkg: "encoding/gob", typ: $funcType([ptrType$34, reflect.Value], [], false)}, {prop: "encodeGobEncoder", name: "encodeGobEncoder", pkg: "encoding/gob", typ: $funcType([ptrType$34, ptrType, reflect.Value], [], false)}, {prop: "encode", name: "encode", pkg: "encoding/gob", typ: $funcType([ptrType$34, reflect.Value, ptrType], [], false)}]; - ptrType$32.methods = [{prop: "encodeUint", name: "encodeUint", pkg: "encoding/gob", typ: $funcType([$Uint64], [], false)}, {prop: "encodeInt", name: "encodeInt", pkg: "encoding/gob", typ: $funcType([$Int64], [], false)}, {prop: "update", name: "update", pkg: "encoding/gob", typ: $funcType([ptrType$35], [], false)}]; - ptrType$34.methods = [{prop: "writeByte", name: "writeByte", pkg: "encoding/gob", typ: $funcType([$Uint8], [], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}]; - ptrType$39.methods = [{prop: "recvType", name: "recvType", pkg: "encoding/gob", typ: $funcType([typeId], [], false)}, {prop: "recvMessage", name: "recvMessage", pkg: "encoding/gob", typ: $funcType([], [$Bool], false)}, {prop: "readMessage", name: "readMessage", pkg: "encoding/gob", typ: $funcType([$Int], [], false)}, {prop: "nextInt", name: "nextInt", pkg: "encoding/gob", typ: $funcType([], [$Int64], false)}, {prop: "nextUint", name: "nextUint", pkg: "encoding/gob", typ: $funcType([], [$Uint64], false)}, {prop: "decodeTypeSequence", name: "decodeTypeSequence", pkg: "encoding/gob", typ: $funcType([$Bool], [typeId], false)}, {prop: "Decode", name: "Decode", pkg: "", typ: $funcType([$emptyInterface], [$error], false)}, {prop: "DecodeValue", name: "DecodeValue", pkg: "", typ: $funcType([reflect.Value], [$error], false)}, {prop: "newDecoderState", name: "newDecoderState", pkg: "encoding/gob", typ: $funcType([ptrType$40], [ptrType$38], false)}, {prop: "freeDecoderState", name: "freeDecoderState", pkg: "encoding/gob", typ: $funcType([ptrType$38], [], false)}, {prop: "decodeSingle", name: "decodeSingle", pkg: "encoding/gob", typ: $funcType([ptrType$43, reflect.Value], [], false)}, {prop: "decodeStruct", name: "decodeStruct", pkg: "encoding/gob", typ: $funcType([ptrType$43, reflect.Value], [], false)}, {prop: "ignoreStruct", name: "ignoreStruct", pkg: "encoding/gob", typ: $funcType([ptrType$43], [], false)}, {prop: "ignoreSingle", name: "ignoreSingle", pkg: "encoding/gob", typ: $funcType([ptrType$43], [], false)}, {prop: "decodeArrayHelper", name: "decodeArrayHelper", pkg: "encoding/gob", typ: $funcType([ptrType$38, reflect.Value, decOp, $Int, $error, decHelper], [], false)}, {prop: "decodeArray", name: "decodeArray", pkg: "encoding/gob", typ: $funcType([ptrType$38, reflect.Value, decOp, $Int, $error, decHelper], [], false)}, {prop: "decodeMap", name: "decodeMap", pkg: "encoding/gob", typ: $funcType([reflect.Type, ptrType$38, reflect.Value, decOp, decOp, $error], [], false)}, {prop: "ignoreArrayHelper", name: "ignoreArrayHelper", pkg: "encoding/gob", typ: $funcType([ptrType$38, decOp, $Int], [], false)}, {prop: "ignoreArray", name: "ignoreArray", pkg: "encoding/gob", typ: $funcType([ptrType$38, decOp, $Int], [], false)}, {prop: "ignoreMap", name: "ignoreMap", pkg: "encoding/gob", typ: $funcType([ptrType$38, decOp, decOp], [], false)}, {prop: "decodeSlice", name: "decodeSlice", pkg: "encoding/gob", typ: $funcType([ptrType$38, reflect.Value, decOp, $error, decHelper], [], false)}, {prop: "ignoreSlice", name: "ignoreSlice", pkg: "encoding/gob", typ: $funcType([ptrType$38, decOp], [], false)}, {prop: "decodeInterface", name: "decodeInterface", pkg: "encoding/gob", typ: $funcType([reflect.Type, ptrType$38, reflect.Value], [], false)}, {prop: "ignoreInterface", name: "ignoreInterface", pkg: "encoding/gob", typ: $funcType([ptrType$38], [], false)}, {prop: "decodeGobDecoder", name: "decodeGobDecoder", pkg: "encoding/gob", typ: $funcType([ptrType, ptrType$38, reflect.Value], [], false)}, {prop: "ignoreGobDecoder", name: "ignoreGobDecoder", pkg: "encoding/gob", typ: $funcType([ptrType$38], [], false)}, {prop: "decOpFor", name: "decOpFor", pkg: "encoding/gob", typ: $funcType([typeId, reflect.Type, $String, mapType$4], [ptrType$42], false)}, {prop: "decIgnoreOpFor", name: "decIgnoreOpFor", pkg: "encoding/gob", typ: $funcType([typeId, mapType$5, $Int], [ptrType$42], false)}, {prop: "gobDecodeOpFor", name: "gobDecodeOpFor", pkg: "encoding/gob", typ: $funcType([ptrType], [ptrType$42], false)}, {prop: "compatibleType", name: "compatibleType", pkg: "encoding/gob", typ: $funcType([reflect.Type, typeId, mapType$3], [$Bool], false)}, {prop: "typeString", name: "typeString", pkg: "encoding/gob", typ: $funcType([typeId], [$String], false)}, {prop: "compileSingle", name: "compileSingle", pkg: "encoding/gob", typ: $funcType([typeId, ptrType], [ptrType$43, $error], false)}, {prop: "compileIgnoreSingle", name: "compileIgnoreSingle", pkg: "encoding/gob", typ: $funcType([typeId], [ptrType$43], false)}, {prop: "compileDec", name: "compileDec", pkg: "encoding/gob", typ: $funcType([typeId, ptrType], [ptrType$43, $error], false)}, {prop: "getDecEnginePtr", name: "getDecEnginePtr", pkg: "encoding/gob", typ: $funcType([typeId, ptrType], [ptrType$44, $error], false)}, {prop: "getIgnoreEnginePtr", name: "getIgnoreEnginePtr", pkg: "encoding/gob", typ: $funcType([typeId], [ptrType$44, $error], false)}, {prop: "decodeValue", name: "decodeValue", pkg: "encoding/gob", typ: $funcType([typeId, reflect.Value], [], false)}, {prop: "decodeIgnoredValue", name: "decodeIgnoredValue", pkg: "encoding/gob", typ: $funcType([typeId], [], false)}]; - ptrType$38.methods = [{prop: "decodeUint", name: "decodeUint", pkg: "encoding/gob", typ: $funcType([], [$Uint64], false)}, {prop: "decodeInt", name: "decodeInt", pkg: "encoding/gob", typ: $funcType([], [$Int64], false)}, {prop: "getLength", name: "getLength", pkg: "encoding/gob", typ: $funcType([], [$Int, $Bool], false)}]; - ptrType$40.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "Drop", name: "Drop", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "ReadByte", name: "ReadByte", pkg: "", typ: $funcType([], [$Uint8, $error], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "SetBytes", name: "SetBytes", pkg: "", typ: $funcType([sliceType$1], [], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}]; + ptrType$26.methods = [{prop: "id", name: "id", pkg: "encoding/gob", typ: $funcType([], [typeId], false)}, {prop: "setId", name: "setId", pkg: "encoding/gob", typ: $funcType([typeId], [], false)}, {prop: "string", name: "string", pkg: "encoding/gob", typ: $funcType([], [$String], false)}, {prop: "safeString", name: "safeString", pkg: "encoding/gob", typ: $funcType([mapType$2], [$String], false)}, {prop: "name", name: "name", pkg: "encoding/gob", typ: $funcType([], [$String], false)}]; + ptrType$25.methods = [{prop: "init", name: "init", pkg: "encoding/gob", typ: $funcType([gobType, $Int], [], false)}, {prop: "safeString", name: "safeString", pkg: "encoding/gob", typ: $funcType([mapType$2], [$String], false)}, {prop: "string", name: "string", pkg: "encoding/gob", typ: $funcType([], [$String], false)}]; + ptrType$31.methods = [{prop: "safeString", name: "safeString", pkg: "encoding/gob", typ: $funcType([mapType$2], [$String], false)}, {prop: "string", name: "string", pkg: "encoding/gob", typ: $funcType([], [$String], false)}]; + ptrType$30.methods = [{prop: "init", name: "init", pkg: "encoding/gob", typ: $funcType([gobType, gobType], [], false)}, {prop: "safeString", name: "safeString", pkg: "encoding/gob", typ: $funcType([mapType$2], [$String], false)}, {prop: "string", name: "string", pkg: "encoding/gob", typ: $funcType([], [$String], false)}]; + ptrType$27.methods = [{prop: "init", name: "init", pkg: "encoding/gob", typ: $funcType([gobType], [], false)}, {prop: "safeString", name: "safeString", pkg: "encoding/gob", typ: $funcType([mapType$2], [$String], false)}, {prop: "string", name: "string", pkg: "encoding/gob", typ: $funcType([], [$String], false)}]; + ptrType$28.methods = [{prop: "safeString", name: "safeString", pkg: "encoding/gob", typ: $funcType([mapType$2], [$String], false)}, {prop: "string", name: "string", pkg: "encoding/gob", typ: $funcType([], [$String], false)}]; + ptrType$8.methods = [{prop: "string", name: "string", pkg: "encoding/gob", typ: $funcType([], [$String], false)}]; + ptrType$35.methods = [{prop: "writer", name: "writer", pkg: "encoding/gob", typ: $funcType([], [io.Writer], false)}, {prop: "pushWriter", name: "pushWriter", pkg: "encoding/gob", typ: $funcType([io.Writer], [], false)}, {prop: "popWriter", name: "popWriter", pkg: "encoding/gob", typ: $funcType([], [], false)}, {prop: "setError", name: "setError", pkg: "encoding/gob", typ: $funcType([$error], [], false)}, {prop: "writeMessage", name: "writeMessage", pkg: "encoding/gob", typ: $funcType([io.Writer, ptrType$36], [], false)}, {prop: "sendActualType", name: "sendActualType", pkg: "encoding/gob", typ: $funcType([io.Writer, ptrType$34, ptrType, reflect.Type], [$Bool], false)}, {prop: "sendType", name: "sendType", pkg: "encoding/gob", typ: $funcType([io.Writer, ptrType$34, reflect.Type], [$Bool], false)}, {prop: "Encode", name: "Encode", pkg: "", typ: $funcType([$emptyInterface], [$error], false)}, {prop: "sendTypeDescriptor", name: "sendTypeDescriptor", pkg: "encoding/gob", typ: $funcType([io.Writer, ptrType$34, ptrType], [], false)}, {prop: "sendTypeId", name: "sendTypeId", pkg: "encoding/gob", typ: $funcType([ptrType$34, ptrType], [], false)}, {prop: "EncodeValue", name: "EncodeValue", pkg: "", typ: $funcType([reflect.Value], [$error], false)}, {prop: "newEncoderState", name: "newEncoderState", pkg: "encoding/gob", typ: $funcType([ptrType$36], [ptrType$34], false)}, {prop: "freeEncoderState", name: "freeEncoderState", pkg: "encoding/gob", typ: $funcType([ptrType$34], [], false)}, {prop: "encodeSingle", name: "encodeSingle", pkg: "encoding/gob", typ: $funcType([ptrType$36, ptrType$33, reflect.Value], [], false)}, {prop: "encodeStruct", name: "encodeStruct", pkg: "encoding/gob", typ: $funcType([ptrType$36, ptrType$33, reflect.Value], [], false)}, {prop: "encodeArray", name: "encodeArray", pkg: "encoding/gob", typ: $funcType([ptrType$36, reflect.Value, encOp, $Int, $Int, encHelper], [], false)}, {prop: "encodeMap", name: "encodeMap", pkg: "encoding/gob", typ: $funcType([ptrType$36, reflect.Value, encOp, encOp, $Int, $Int], [], false)}, {prop: "encodeInterface", name: "encodeInterface", pkg: "encoding/gob", typ: $funcType([ptrType$36, reflect.Value], [], false)}, {prop: "encodeGobEncoder", name: "encodeGobEncoder", pkg: "encoding/gob", typ: $funcType([ptrType$36, ptrType, reflect.Value], [], false)}, {prop: "encode", name: "encode", pkg: "encoding/gob", typ: $funcType([ptrType$36, reflect.Value, ptrType], [], false)}]; + ptrType$34.methods = [{prop: "encodeUint", name: "encodeUint", pkg: "encoding/gob", typ: $funcType([$Uint64], [], false)}, {prop: "encodeInt", name: "encodeInt", pkg: "encoding/gob", typ: $funcType([$Int64], [], false)}, {prop: "update", name: "update", pkg: "encoding/gob", typ: $funcType([ptrType$37], [], false)}]; + ptrType$36.methods = [{prop: "writeByte", name: "writeByte", pkg: "encoding/gob", typ: $funcType([$Uint8], [], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType$2], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}]; + ptrType$41.methods = [{prop: "recvType", name: "recvType", pkg: "encoding/gob", typ: $funcType([typeId], [], false)}, {prop: "recvMessage", name: "recvMessage", pkg: "encoding/gob", typ: $funcType([], [$Bool], false)}, {prop: "readMessage", name: "readMessage", pkg: "encoding/gob", typ: $funcType([$Int], [], false)}, {prop: "nextInt", name: "nextInt", pkg: "encoding/gob", typ: $funcType([], [$Int64], false)}, {prop: "nextUint", name: "nextUint", pkg: "encoding/gob", typ: $funcType([], [$Uint64], false)}, {prop: "decodeTypeSequence", name: "decodeTypeSequence", pkg: "encoding/gob", typ: $funcType([$Bool], [typeId], false)}, {prop: "Decode", name: "Decode", pkg: "", typ: $funcType([$emptyInterface], [$error], false)}, {prop: "DecodeValue", name: "DecodeValue", pkg: "", typ: $funcType([reflect.Value], [$error], false)}, {prop: "newDecoderState", name: "newDecoderState", pkg: "encoding/gob", typ: $funcType([ptrType$42], [ptrType$40], false)}, {prop: "freeDecoderState", name: "freeDecoderState", pkg: "encoding/gob", typ: $funcType([ptrType$40], [], false)}, {prop: "decodeSingle", name: "decodeSingle", pkg: "encoding/gob", typ: $funcType([ptrType$46, reflect.Value], [], false)}, {prop: "decodeStruct", name: "decodeStruct", pkg: "encoding/gob", typ: $funcType([ptrType$46, reflect.Value], [], false)}, {prop: "ignoreStruct", name: "ignoreStruct", pkg: "encoding/gob", typ: $funcType([ptrType$46], [], false)}, {prop: "ignoreSingle", name: "ignoreSingle", pkg: "encoding/gob", typ: $funcType([ptrType$46], [], false)}, {prop: "decodeArrayHelper", name: "decodeArrayHelper", pkg: "encoding/gob", typ: $funcType([ptrType$40, reflect.Value, decOp, $Int, $error, decHelper], [], false)}, {prop: "decodeArray", name: "decodeArray", pkg: "encoding/gob", typ: $funcType([ptrType$40, reflect.Value, decOp, $Int, $error, decHelper], [], false)}, {prop: "decodeMap", name: "decodeMap", pkg: "encoding/gob", typ: $funcType([reflect.Type, ptrType$40, reflect.Value, decOp, decOp, $error], [], false)}, {prop: "ignoreArrayHelper", name: "ignoreArrayHelper", pkg: "encoding/gob", typ: $funcType([ptrType$40, decOp, $Int], [], false)}, {prop: "ignoreArray", name: "ignoreArray", pkg: "encoding/gob", typ: $funcType([ptrType$40, decOp, $Int], [], false)}, {prop: "ignoreMap", name: "ignoreMap", pkg: "encoding/gob", typ: $funcType([ptrType$40, decOp, decOp], [], false)}, {prop: "decodeSlice", name: "decodeSlice", pkg: "encoding/gob", typ: $funcType([ptrType$40, reflect.Value, decOp, $error, decHelper], [], false)}, {prop: "ignoreSlice", name: "ignoreSlice", pkg: "encoding/gob", typ: $funcType([ptrType$40, decOp], [], false)}, {prop: "decodeInterface", name: "decodeInterface", pkg: "encoding/gob", typ: $funcType([reflect.Type, ptrType$40, reflect.Value], [], false)}, {prop: "ignoreInterface", name: "ignoreInterface", pkg: "encoding/gob", typ: $funcType([ptrType$40], [], false)}, {prop: "decodeGobDecoder", name: "decodeGobDecoder", pkg: "encoding/gob", typ: $funcType([ptrType, ptrType$40, reflect.Value], [], false)}, {prop: "ignoreGobDecoder", name: "ignoreGobDecoder", pkg: "encoding/gob", typ: $funcType([ptrType$40], [], false)}, {prop: "decOpFor", name: "decOpFor", pkg: "encoding/gob", typ: $funcType([typeId, reflect.Type, $String, mapType$4], [ptrType$45], false)}, {prop: "decIgnoreOpFor", name: "decIgnoreOpFor", pkg: "encoding/gob", typ: $funcType([typeId, mapType$5, $Int], [ptrType$45], false)}, {prop: "gobDecodeOpFor", name: "gobDecodeOpFor", pkg: "encoding/gob", typ: $funcType([ptrType], [ptrType$45], false)}, {prop: "compatibleType", name: "compatibleType", pkg: "encoding/gob", typ: $funcType([reflect.Type, typeId, mapType$3], [$Bool], false)}, {prop: "typeString", name: "typeString", pkg: "encoding/gob", typ: $funcType([typeId], [$String], false)}, {prop: "compileSingle", name: "compileSingle", pkg: "encoding/gob", typ: $funcType([typeId, ptrType], [ptrType$46, $error], false)}, {prop: "compileIgnoreSingle", name: "compileIgnoreSingle", pkg: "encoding/gob", typ: $funcType([typeId], [ptrType$46], false)}, {prop: "compileDec", name: "compileDec", pkg: "encoding/gob", typ: $funcType([typeId, ptrType], [ptrType$46, $error], false)}, {prop: "getDecEnginePtr", name: "getDecEnginePtr", pkg: "encoding/gob", typ: $funcType([typeId, ptrType], [ptrType$47, $error], false)}, {prop: "getIgnoreEnginePtr", name: "getIgnoreEnginePtr", pkg: "encoding/gob", typ: $funcType([typeId], [ptrType$47, $error], false)}, {prop: "decodeValue", name: "decodeValue", pkg: "encoding/gob", typ: $funcType([typeId, reflect.Value], [], false)}, {prop: "decodeIgnoredValue", name: "decodeIgnoredValue", pkg: "encoding/gob", typ: $funcType([typeId], [], false)}]; + ptrType$40.methods = [{prop: "decodeUint", name: "decodeUint", pkg: "encoding/gob", typ: $funcType([], [$Uint64], false)}, {prop: "decodeInt", name: "decodeInt", pkg: "encoding/gob", typ: $funcType([], [$Int64], false)}, {prop: "getLength", name: "getLength", pkg: "encoding/gob", typ: $funcType([], [$Int, $Bool], false)}]; + ptrType$42.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "Drop", name: "Drop", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "ReadByte", name: "ReadByte", pkg: "", typ: $funcType([], [$Uint8, $error], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType$2], false)}, {prop: "SetBytes", name: "SetBytes", pkg: "", typ: $funcType([sliceType$2], [], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}]; userTypeInfo.init("encoding/gob", [{prop: "user", name: "user", embedded: false, exported: false, typ: reflect.Type, tag: ""}, {prop: "base", name: "base", embedded: false, exported: false, typ: reflect.Type, tag: ""}, {prop: "indir", name: "indir", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "externalEnc", name: "externalEnc", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "externalDec", name: "externalDec", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "encIndir", name: "encIndir", embedded: false, exported: false, typ: $Int8, tag: ""}, {prop: "decIndir", name: "decIndir", embedded: false, exported: false, typ: $Int8, tag: ""}]); gobType.init([{prop: "id", name: "id", pkg: "encoding/gob", typ: $funcType([], [typeId], false)}, {prop: "name", name: "name", pkg: "encoding/gob", typ: $funcType([], [$String], false)}, {prop: "safeString", name: "safeString", pkg: "encoding/gob", typ: $funcType([mapType$2], [$String], false)}, {prop: "setId", name: "setId", pkg: "encoding/gob", typ: $funcType([typeId], [], false)}, {prop: "string", name: "string", pkg: "encoding/gob", typ: $funcType([], [$String], false)}]); CommonType.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Id", name: "Id", embedded: false, exported: true, typ: typeId, tag: ""}]); @@ -52983,25 +51822,25 @@ $packages["encoding/gob"] = (function() { mapType.init("", [{prop: "CommonType", name: "CommonType", embedded: true, exported: true, typ: CommonType, tag: ""}, {prop: "Key", name: "Key", embedded: false, exported: true, typ: typeId, tag: ""}, {prop: "Elem", name: "Elem", embedded: false, exported: true, typ: typeId, tag: ""}]); sliceType.init("", [{prop: "CommonType", name: "CommonType", embedded: true, exported: true, typ: CommonType, tag: ""}, {prop: "Elem", name: "Elem", embedded: false, exported: true, typ: typeId, tag: ""}]); fieldType.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Id", name: "Id", embedded: false, exported: true, typ: typeId, tag: ""}]); - structType.init("", [{prop: "CommonType", name: "CommonType", embedded: true, exported: true, typ: CommonType, tag: ""}, {prop: "Field", name: "Field", embedded: false, exported: true, typ: sliceType$3, tag: ""}]); - wireType.init("", [{prop: "ArrayT", name: "ArrayT", embedded: false, exported: true, typ: ptrType$23, tag: ""}, {prop: "SliceT", name: "SliceT", embedded: false, exported: true, typ: ptrType$24, tag: ""}, {prop: "StructT", name: "StructT", embedded: false, exported: true, typ: ptrType$25, tag: ""}, {prop: "MapT", name: "MapT", embedded: false, exported: true, typ: ptrType$26, tag: ""}, {prop: "GobEncoderT", name: "GobEncoderT", embedded: false, exported: true, typ: ptrType$27, tag: ""}, {prop: "BinaryMarshalerT", name: "BinaryMarshalerT", embedded: false, exported: true, typ: ptrType$27, tag: ""}, {prop: "TextMarshalerT", name: "TextMarshalerT", embedded: false, exported: true, typ: ptrType$27, tag: ""}]); - typeInfo.init("encoding/gob", [{prop: "id", name: "id", embedded: false, exported: false, typ: typeId, tag: ""}, {prop: "encInit", name: "encInit", embedded: false, exported: false, typ: nosync.Mutex, tag: ""}, {prop: "encoder", name: "encoder", embedded: false, exported: false, typ: atomic.Pointer[0 /* encoding/gob.encEngine */], tag: ""}, {prop: "wire", name: "wire", embedded: false, exported: false, typ: ptrType$29, tag: ""}]); - GobEncoder.init([{prop: "GobEncode", name: "GobEncode", pkg: "", typ: $funcType([], [sliceType$1, $error], false)}]); - GobDecoder.init([{prop: "GobDecode", name: "GobDecode", pkg: "", typ: $funcType([sliceType$1], [$error], false)}]); + structType.init("", [{prop: "CommonType", name: "CommonType", embedded: true, exported: true, typ: CommonType, tag: ""}, {prop: "Field", name: "Field", embedded: false, exported: true, typ: sliceType$4, tag: ""}]); + wireType.init("", [{prop: "ArrayT", name: "ArrayT", embedded: false, exported: true, typ: ptrType$25, tag: ""}, {prop: "SliceT", name: "SliceT", embedded: false, exported: true, typ: ptrType$27, tag: ""}, {prop: "StructT", name: "StructT", embedded: false, exported: true, typ: ptrType$28, tag: ""}, {prop: "MapT", name: "MapT", embedded: false, exported: true, typ: ptrType$30, tag: ""}, {prop: "GobEncoderT", name: "GobEncoderT", embedded: false, exported: true, typ: ptrType$31, tag: ""}, {prop: "BinaryMarshalerT", name: "BinaryMarshalerT", embedded: false, exported: true, typ: ptrType$31, tag: ""}, {prop: "TextMarshalerT", name: "TextMarshalerT", embedded: false, exported: true, typ: ptrType$31, tag: ""}]); + typeInfo.init("encoding/gob", [{prop: "id", name: "id", embedded: false, exported: false, typ: typeId, tag: ""}, {prop: "encInit", name: "encInit", embedded: false, exported: false, typ: nosync.Mutex, tag: ""}, {prop: "encoder", name: "encoder", embedded: false, exported: false, typ: atomic.Pointer[0 /* encoding/gob.encEngine */], tag: ""}, {prop: "wire", name: "wire", embedded: false, exported: false, typ: wireType, tag: ""}]); + GobEncoder.init([{prop: "GobEncode", name: "GobEncode", pkg: "", typ: $funcType([], [sliceType$2, $error], false)}]); + GobDecoder.init([{prop: "GobDecode", name: "GobDecode", pkg: "", typ: $funcType([sliceType$2], [$error], false)}]); gobError.init("encoding/gob", [{prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}]); - Encoder.init("encoding/gob", [{prop: "mutex", name: "mutex", embedded: false, exported: false, typ: nosync.Mutex, tag: ""}, {prop: "w", name: "w", embedded: false, exported: false, typ: sliceType$20, tag: ""}, {prop: "sent", name: "sent", embedded: false, exported: false, typ: mapType$3, tag: ""}, {prop: "countState", name: "countState", embedded: false, exported: false, typ: ptrType$32, tag: ""}, {prop: "freeList", name: "freeList", embedded: false, exported: false, typ: ptrType$32, tag: ""}, {prop: "byteBuf", name: "byteBuf", embedded: false, exported: false, typ: encBuffer, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}]); - encHelper.init([ptrType$32, reflect.Value], [$Bool], false); - encoderState.init("encoding/gob", [{prop: "enc", name: "enc", embedded: false, exported: false, typ: ptrType$33, tag: ""}, {prop: "b", name: "b", embedded: false, exported: false, typ: ptrType$34, tag: ""}, {prop: "sendZero", name: "sendZero", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "fieldnum", name: "fieldnum", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "buf", name: "buf", embedded: false, exported: false, typ: arrayType$2, tag: ""}, {prop: "next", name: "next", embedded: false, exported: false, typ: ptrType$32, tag: ""}]); - encBuffer.init("encoding/gob", [{prop: "data", name: "data", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "scratch", name: "scratch", embedded: false, exported: false, typ: arrayType$1, tag: ""}]); - encOp.init([ptrType$35, ptrType$32, reflect.Value], [], false); - encInstr.init("encoding/gob", [{prop: "op", name: "op", embedded: false, exported: false, typ: encOp, tag: ""}, {prop: "field", name: "field", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "index", name: "index", embedded: false, exported: false, typ: sliceType$4, tag: ""}, {prop: "indir", name: "indir", embedded: false, exported: false, typ: $Int, tag: ""}]); - encEngine.init("encoding/gob", [{prop: "instr", name: "instr", embedded: false, exported: false, typ: sliceType$21, tag: ""}]); - Decoder.init("encoding/gob", [{prop: "mutex", name: "mutex", embedded: false, exported: false, typ: nosync.Mutex, tag: ""}, {prop: "r", name: "r", embedded: false, exported: false, typ: io.Reader, tag: ""}, {prop: "buf", name: "buf", embedded: false, exported: false, typ: decBuffer, tag: ""}, {prop: "wireType", name: "wireType", embedded: false, exported: false, typ: mapType$6, tag: ""}, {prop: "decoderCache", name: "decoderCache", embedded: false, exported: false, typ: mapType$8, tag: ""}, {prop: "ignorerCache", name: "ignorerCache", embedded: false, exported: false, typ: mapType$7, tag: ""}, {prop: "freeList", name: "freeList", embedded: false, exported: false, typ: ptrType$38, tag: ""}, {prop: "countBuf", name: "countBuf", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}]); - decHelper.init([ptrType$38, reflect.Value, $Int, $error], [$Bool], false); - decoderState.init("encoding/gob", [{prop: "dec", name: "dec", embedded: false, exported: false, typ: ptrType$39, tag: ""}, {prop: "b", name: "b", embedded: false, exported: false, typ: ptrType$40, tag: ""}, {prop: "fieldnum", name: "fieldnum", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "next", name: "next", embedded: false, exported: false, typ: ptrType$38, tag: ""}]); - decBuffer.init("encoding/gob", [{prop: "data", name: "data", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "offset", name: "offset", embedded: false, exported: false, typ: $Int, tag: ""}]); - decOp.init([ptrType$61, ptrType$38, reflect.Value], [], false); - decInstr.init("encoding/gob", [{prop: "op", name: "op", embedded: false, exported: false, typ: decOp, tag: ""}, {prop: "field", name: "field", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "index", name: "index", embedded: false, exported: false, typ: sliceType$4, tag: ""}, {prop: "ovfl", name: "ovfl", embedded: false, exported: false, typ: $error, tag: ""}]); + Encoder.init("encoding/gob", [{prop: "mutex", name: "mutex", embedded: false, exported: false, typ: nosync.Mutex, tag: ""}, {prop: "w", name: "w", embedded: false, exported: false, typ: sliceType$21, tag: ""}, {prop: "sent", name: "sent", embedded: false, exported: false, typ: mapType$3, tag: ""}, {prop: "countState", name: "countState", embedded: false, exported: false, typ: ptrType$34, tag: ""}, {prop: "freeList", name: "freeList", embedded: false, exported: false, typ: ptrType$34, tag: ""}, {prop: "byteBuf", name: "byteBuf", embedded: false, exported: false, typ: encBuffer, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}]); + encHelper.init([ptrType$34, reflect.Value], [$Bool], false); + encoderState.init("encoding/gob", [{prop: "enc", name: "enc", embedded: false, exported: false, typ: ptrType$35, tag: ""}, {prop: "b", name: "b", embedded: false, exported: false, typ: ptrType$36, tag: ""}, {prop: "sendZero", name: "sendZero", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "fieldnum", name: "fieldnum", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "buf", name: "buf", embedded: false, exported: false, typ: arrayType$3, tag: ""}, {prop: "next", name: "next", embedded: false, exported: false, typ: ptrType$34, tag: ""}]); + encBuffer.init("encoding/gob", [{prop: "data", name: "data", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "scratch", name: "scratch", embedded: false, exported: false, typ: arrayType$2, tag: ""}]); + encOp.init([ptrType$37, ptrType$34, reflect.Value], [], false); + encInstr.init("encoding/gob", [{prop: "op", name: "op", embedded: false, exported: false, typ: encOp, tag: ""}, {prop: "field", name: "field", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "index", name: "index", embedded: false, exported: false, typ: sliceType$5, tag: ""}, {prop: "indir", name: "indir", embedded: false, exported: false, typ: $Int, tag: ""}]); + encEngine.init("encoding/gob", [{prop: "instr", name: "instr", embedded: false, exported: false, typ: sliceType$22, tag: ""}]); + Decoder.init("encoding/gob", [{prop: "mutex", name: "mutex", embedded: false, exported: false, typ: nosync.Mutex, tag: ""}, {prop: "r", name: "r", embedded: false, exported: false, typ: io.Reader, tag: ""}, {prop: "buf", name: "buf", embedded: false, exported: false, typ: decBuffer, tag: ""}, {prop: "wireType", name: "wireType", embedded: false, exported: false, typ: mapType$6, tag: ""}, {prop: "decoderCache", name: "decoderCache", embedded: false, exported: false, typ: mapType$8, tag: ""}, {prop: "ignorerCache", name: "ignorerCache", embedded: false, exported: false, typ: mapType$7, tag: ""}, {prop: "freeList", name: "freeList", embedded: false, exported: false, typ: ptrType$40, tag: ""}, {prop: "countBuf", name: "countBuf", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}]); + decHelper.init([ptrType$40, reflect.Value, $Int, $error], [$Bool], false); + decoderState.init("encoding/gob", [{prop: "dec", name: "dec", embedded: false, exported: false, typ: ptrType$41, tag: ""}, {prop: "b", name: "b", embedded: false, exported: false, typ: ptrType$42, tag: ""}, {prop: "fieldnum", name: "fieldnum", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "next", name: "next", embedded: false, exported: false, typ: ptrType$40, tag: ""}]); + decBuffer.init("encoding/gob", [{prop: "data", name: "data", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "offset", name: "offset", embedded: false, exported: false, typ: $Int, tag: ""}]); + decOp.init([ptrType$44, ptrType$40, reflect.Value], [], false); + decInstr.init("encoding/gob", [{prop: "op", name: "op", embedded: false, exported: false, typ: decOp, tag: ""}, {prop: "field", name: "field", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "index", name: "index", embedded: false, exported: false, typ: sliceType$5, tag: ""}, {prop: "ovfl", name: "ovfl", embedded: false, exported: false, typ: $error, tag: ""}]); decEngine.init("encoding/gob", [{prop: "instr", name: "instr", embedded: false, exported: false, typ: sliceType$23, tag: ""}, {prop: "numInstr", name: "numInstr", embedded: false, exported: false, typ: $Int, tag: ""}]); emptyStruct.init("", []); }; @@ -53024,9 +51863,8 @@ $packages["encoding/gob"] = (function() { $r = unicode.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = utf8.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } userTypeCache = new nosync.Map.ptr(false); - nextId = 0; typeLock = new nosync.Mutex.ptr(false, false, false, false, 0); - builtinIdToType = false; + builtinIdToTypeSlice = arrayType$1.zero(); wireTypeUserInfo = ptrType.nil; typeInfoMap = new atomic.Value.ptr($ifaceNil); nameToConcreteType = new nosync.Map.ptr(false); @@ -53044,45 +51882,48 @@ $packages["encoding/gob"] = (function() { textMarshalerInterfaceType = _r$4; _r$5 = reflect.TypeOf((ptrType$7.nil)).Elem(); /* */ $s = 21; case 21: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } textUnmarshalerInterfaceType = _r$5; + _r$6 = reflect.TypeOf((ptrType$8.nil)).Elem(); /* */ $s = 22; case 22: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + wireTypeType = _r$6; types = new $global.Map(); - idToType = new $global.Map(); - _r$6 = bootstrapType("bool", (ptrType$8.nil), 1); /* */ $s = 22; case 22: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - tBool = _r$6; - _r$7 = bootstrapType("int", (ptrType$9.nil), 2); /* */ $s = 23; case 23: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - tInt = _r$7; - _r$8 = bootstrapType("uint", (ptrType$10.nil), 3); /* */ $s = 24; case 24: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - tUint = _r$8; - _r$9 = bootstrapType("float", (ptrType$11.nil), 4); /* */ $s = 25; case 25: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - tFloat = _r$9; - _r$10 = bootstrapType("bytes", (ptrType$12.nil), 5); /* */ $s = 26; case 26: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - tBytes = _r$10; - _r$11 = bootstrapType("string", (ptrType$13.nil), 6); /* */ $s = 27; case 27: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - tString = _r$11; - _r$12 = bootstrapType("complex", (ptrType$14.nil), 7); /* */ $s = 28; case 28: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - tComplex = _r$12; - _r$13 = bootstrapType("interface", (ptrType$15.nil), 8); /* */ $s = 29; case 29: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - tInterface = _r$13; - _r$14 = bootstrapType("_reserved1", (ptrType$16.nil), 9); /* */ $s = 30; case 30: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - tReserved7 = _r$14; - _r$15 = bootstrapType("_reserved1", (ptrType$17.nil), 10); /* */ $s = 31; case 31: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - tReserved6 = _r$15; - _r$16 = bootstrapType("_reserved1", (ptrType$18.nil), 11); /* */ $s = 32; case 32: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - tReserved5 = _r$16; - _r$17 = bootstrapType("_reserved1", (ptrType$19.nil), 12); /* */ $s = 33; case 33: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - tReserved4 = _r$17; - _r$18 = bootstrapType("_reserved1", (ptrType$20.nil), 13); /* */ $s = 34; case 34: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - tReserved3 = _r$18; - _r$19 = bootstrapType("_reserved1", (ptrType$21.nil), 14); /* */ $s = 35; case 35: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - tReserved2 = _r$19; - _r$20 = bootstrapType("_reserved1", (ptrType$22.nil), 15); /* */ $s = 36; case 36: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - tReserved1 = _r$20; - _r$21 = mustGetTypeInfo(reflect.TypeOf((x = new wireType.ptr(ptrType$23.nil, ptrType$24.nil, ptrType$25.nil, ptrType$26.nil, ptrType$27.nil, ptrType$27.nil, ptrType$27.nil), new x.constructor.elem(x)))); /* */ $s = 37; case 37: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } - tWireType = _r$21.id; - spaceForLength = $makeSlice(sliceType$1, 9); - encBufferPool = new nosync.Pool.ptr(sliceType$2.nil, (function func1() { + idToTypeSlice = $makeSlice(sliceType$1, 1, 64); + _r$7 = bootstrapType("bool", (ptrType$9.nil)); /* */ $s = 23; case 23: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + tBool = _r$7; + _r$8 = bootstrapType("int", (ptrType$10.nil)); /* */ $s = 24; case 24: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + tInt = _r$8; + _r$9 = bootstrapType("uint", (ptrType$11.nil)); /* */ $s = 25; case 25: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + tUint = _r$9; + _r$10 = bootstrapType("float", (ptrType$12.nil)); /* */ $s = 26; case 26: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + tFloat = _r$10; + _r$11 = bootstrapType("bytes", (ptrType$13.nil)); /* */ $s = 27; case 27: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + tBytes = _r$11; + _r$12 = bootstrapType("string", (ptrType$14.nil)); /* */ $s = 28; case 28: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + tString = _r$12; + _r$13 = bootstrapType("complex", (ptrType$15.nil)); /* */ $s = 29; case 29: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + tComplex = _r$13; + _r$14 = bootstrapType("interface", (ptrType$16.nil)); /* */ $s = 30; case 30: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + tInterface = _r$14; + _r$15 = bootstrapType("_reserved1", (ptrType$17.nil)); /* */ $s = 31; case 31: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + tReserved7 = _r$15; + _r$16 = bootstrapType("_reserved1", (ptrType$18.nil)); /* */ $s = 32; case 32: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + tReserved6 = _r$16; + _r$17 = bootstrapType("_reserved1", (ptrType$19.nil)); /* */ $s = 33; case 33: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + tReserved5 = _r$17; + _r$18 = bootstrapType("_reserved1", (ptrType$20.nil)); /* */ $s = 34; case 34: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + tReserved4 = _r$18; + _r$19 = bootstrapType("_reserved1", (ptrType$21.nil)); /* */ $s = 35; case 35: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + tReserved3 = _r$19; + _r$20 = bootstrapType("_reserved1", (ptrType$22.nil)); /* */ $s = 36; case 36: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + tReserved2 = _r$20; + _r$21 = bootstrapType("_reserved1", (ptrType$23.nil)); /* */ $s = 37; case 37: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + tReserved1 = _r$21; + typeInfoMapInit = new $global.Map(); + _r$22 = mustGetTypeInfo(wireTypeType); /* */ $s = 38; case 38: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + tWireType = _r$22.id; + spaceForLength = $makeSlice(sliceType$2, 9); + encBufferPool = new nosync.Pool.ptr(sliceType$3.nil, (function func1() { var e; - e = new encBuffer.ptr(sliceType$1.nil, arrayType$1.zero()); - e.data = $subslice(new sliceType$1(e.scratch), 0, 0); + e = new encBuffer.ptr(sliceType$2.nil, arrayType$2.zero()); + e.data = $subslice(new sliceType$2(e.scratch), 0, 0); return e; })); encOpTable = $toNativeArray($kindFunc, [$throwNilPointerError, encBool, encInt, encInt, encInt, encInt, encInt, encUint, encUint, encUint, encUint, encUint, encUint, encFloat, encFloat, encComplex, encComplex, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, encString]); @@ -53095,18 +51936,20 @@ $packages["encoding/gob"] = (function() { decOpTable = $toNativeArray($kindFunc, [$throwNilPointerError, decBool, $throwNilPointerError, decInt8, decInt16, decInt32, decInt64, $throwNilPointerError, decUint8, decUint16, decUint32, decUint64, $throwNilPointerError, decFloat32, decFloat64, decComplex64, decComplex128, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, decString]); decIgnoreOpMap = $makeMap(typeId.keyFor, [{ k: tBool, v: ignoreUint }, { k: tInt, v: ignoreUint }, { k: tUint, v: ignoreUint }, { k: tFloat, v: ignoreUint }, { k: tBytes, v: ignoreUint8Array }, { k: tString, v: ignoreUint8Array }, { k: tComplex, v: ignoreTwoUints }]); maxIgnoreNestingDepth = 10000; - emptyStructType = reflect.TypeOf((x$1 = new emptyStruct.ptr(), new x$1.constructor.elem(x$1))); + _r$23 = reflect.TypeOf((ptrType$24.nil)).Elem(); /* */ $s = 39; case 39: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + emptyStructType = _r$23; decArrayHelper = $makeMap(reflect.Kind.keyFor, [{ k: 1, v: decBoolArray }, { k: 15, v: decComplex64Array }, { k: 16, v: decComplex128Array }, { k: 13, v: decFloat32Array }, { k: 14, v: decFloat64Array }, { k: 2, v: decIntArray }, { k: 4, v: decInt16Array }, { k: 5, v: decInt32Array }, { k: 6, v: decInt64Array }, { k: 3, v: decInt8Array }, { k: 24, v: decStringArray }, { k: 7, v: decUintArray }, { k: 9, v: decUint16Array }, { k: 10, v: decUint32Array }, { k: 11, v: decUint64Array }, { k: 12, v: decUintptrArray }]); decSliceHelper = $makeMap(reflect.Kind.keyFor, [{ k: 1, v: decBoolSlice }, { k: 15, v: decComplex64Slice }, { k: 16, v: decComplex128Slice }, { k: 13, v: decFloat32Slice }, { k: 14, v: decFloat64Slice }, { k: 2, v: decIntSlice }, { k: 4, v: decInt16Slice }, { k: 5, v: decInt32Slice }, { k: 6, v: decInt64Slice }, { k: 3, v: decInt8Slice }, { k: 24, v: decStringSlice }, { k: 7, v: decUintSlice }, { k: 9, v: decUint16Slice }, { k: 10, v: decUint32Slice }, { k: 11, v: decUint64Slice }, { k: 12, v: decUintptrSlice }]); - $r = init(); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = init(); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } init$1(); + init$2(); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $packages["go/token"] = (function() { - var $pkg = {}, $init, fmt, nosync, sort, strconv, atomic, unicode, utf8, Token, serializedFile, serializedFileSet, Position, Pos, File, lineInfo, FileSet, sliceType, ptrType, sliceType$1, sliceType$2, sliceType$3, sliceType$4, ptrType$1, ptrType$2, sliceType$5, funcType, funcType$1, ptrType$3, keywords, tokens, init, Lookup, IsExported, searchLineInfos, NewFileSet, searchFiles, searchInts; + var $pkg = {}, $init, fmt, nosync, sort, strconv, atomic, unicode, utf8, Token, serializedFile, serializedFileSet, Position, Pos, File, lineInfo, FileSet, sliceType, ptrType, sliceType$1, ptrType$1, sliceType$2, sliceType$3, sliceType$4, ptrType$2, ptrType$3, ptrType$4, sliceType$5, funcType, funcType$1, ptrType$5, keywords, tokens, init, Lookup, IsExported, searchLineInfos, NewFileSet, searchFiles, searchInts; fmt = $packages["fmt"]; nosync = $packages["github.com/gopherjs/gopherjs/nosync"]; sort = $packages["sort"]; @@ -53214,15 +52057,17 @@ $packages["go/token"] = (function() { sliceType = $sliceType(serializedFile); ptrType = $ptrType(File); sliceType$1 = $sliceType(ptrType); + ptrType$1 = $ptrType(serializedFile); sliceType$2 = $sliceType($Int); sliceType$3 = $sliceType(lineInfo); sliceType$4 = $sliceType($emptyInterface); - ptrType$1 = $ptrType(ptrType); - ptrType$2 = $ptrType(Position); + ptrType$2 = $ptrType(lineInfo); + ptrType$3 = $ptrType(ptrType); + ptrType$4 = $ptrType(Position); sliceType$5 = $sliceType($Uint8); funcType = $funcType([$emptyInterface], [$error], false); funcType$1 = $funcType([ptrType], [$Bool], false); - ptrType$3 = $ptrType(FileSet); + ptrType$5 = $ptrType(FileSet); Token.prototype.String = function String() { var s, tok; tok = this.$val; @@ -53317,7 +52162,7 @@ $packages["go/token"] = (function() { i = 0; while (true) { if (!(i < ss[0].Files.$length)) { break; } - f = (x = ss[0].Files, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + f = (x = ss[0].Files, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + i, ptrType$1))); ((i < 0 || i >= files.$length) ? ($throwRuntimeError("index out of range"), undefined) : files.$array[files.$offset + i] = new File.ptr(f.Name, f.Base, f.Size, new nosync.Mutex.ptr(false, false, false, false, 0), f.Lines, f.Infos)); i = i + (1) >> 0; } @@ -53359,7 +52204,7 @@ $packages["go/token"] = (function() { return pos.Line > 0; }; $ptrType(Position).prototype.String = function String$1() { - var {_r, _r$1, pos, s, $s, $r, $c} = $restore(this, {}); + var {_r, pos, s, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: pos = this; s = pos.Filename; @@ -53369,20 +52214,19 @@ $packages["go/token"] = (function() { if (!(s === "")) { s = s + (":"); } - _r = fmt.Sprintf("%d", new sliceType$4([new $Int(pos.Line)])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - s = s + (_r); - /* */ if (!((pos.Column === 0))) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (!((pos.Column === 0))) { */ case 4: - _r$1 = fmt.Sprintf(":%d", new sliceType$4([new $Int(pos.Column)])); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - s = s + (_r$1); - /* } */ case 5: + s = s + (strconv.Itoa(pos.Line)); + /* */ if (!((pos.Column === 0))) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!((pos.Column === 0))) { */ case 3: + _r = fmt.Sprintf(":%d", new sliceType$4([new $Int(pos.Column)])); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + s = s + (_r); + /* } */ case 4: /* } */ case 2: if (s === "") { s = "-"; } $s = -1; return s; - /* */ } return; } var $f = {$blk: String$1, $c: true, $r, _r, _r$1, pos, s, $s};return $f; + /* */ } return; } var $f = {$blk: String$1, $c: true, $r, _r, pos, s, $s};return $f; }; Position.prototype.String = function(...$args) { return this.$val.String(...$args); }; Pos.prototype.IsValid = function IsValid$1() { @@ -53447,6 +52291,14 @@ $packages["go/token"] = (function() { $s = -1; return; /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: MergeLine, $c: true, $r, _r, _r$1, f, line, $s, $deferred};return $f; } } }; + $ptrType(File).prototype.Lines = function Lines() { + var f, lines; + f = this; + f.mutex.Lock(); + lines = f.lines; + f.mutex.Unlock(); + return lines; + }; $ptrType(File).prototype.SetLines = function SetLines(lines) { var _i, _ref, f, i, lines, offset, size, x; f = this; @@ -53597,7 +52449,7 @@ $packages["go/token"] = (function() { _r = searchLineInfos(f.infos, offset); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } i$1 = _r; if (i$1 >= 0) { - alt = (x$1 = f.infos, ((i$1 < 0 || i$1 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$1])); + alt = (x$1 = f.infos, ((i$1 < 0 || i$1 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + i$1, ptrType$2))); filename = alt.Filename; i$2 = searchInts(f.lines, alt.Offset); if (i$2 >= 0) { @@ -53707,7 +52559,7 @@ $packages["go/token"] = (function() { /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: AddFile, $c: true, $r, _r, _r$1, base, f, filename, s, size, $s, $deferred};return $f; } } }; $ptrType(FileSet).prototype.RemoveFile = function RemoveFile(file) { - var {_r, file, i, last, s, x, x$1, $s, $deferred, $r, $c} = $restore(this, {file}); + var {_r, file, i, last, s, x, x$1, x$2, $s, $deferred, $r, $c} = $restore(this, {file}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); s = this; s.last.CompareAndSwap(file, ptrType.nil); @@ -53716,12 +52568,12 @@ $packages["go/token"] = (function() { _r = searchFiles(s.files, file.base); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } i = _r; if (i >= 0 && (x = s.files, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])) === file) { - last = (x$1 = s.files, $indexPtr(x$1.$array, x$1.$offset + (s.files.$length - 1 >> 0), ptrType$1)); + last = (x$1 = s.files, x$2 = s.files.$length - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + x$2, ptrType$3))); s.files = $appendSlice($subslice(s.files, 0, i), $subslice(s.files, (i + 1 >> 0))); last.$set(ptrType.nil); } $s = -1; return; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: RemoveFile, $c: true, $r, _r, file, i, last, s, x, x$1, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: RemoveFile, $c: true, $r, _r, file, i, last, s, x, x$1, x$2, $s, $deferred};return $f; } } }; $ptrType(FileSet).prototype.Iterate = function Iterate(f) { var {_r, _v, f, file, i, s, x, $s, $r, $c} = $restore(this, {f}); @@ -53850,10 +52702,10 @@ $packages["go/token"] = (function() { }; Token.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Precedence", name: "Precedence", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "IsLiteral", name: "IsLiteral", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsOperator", name: "IsOperator", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsKeyword", name: "IsKeyword", pkg: "", typ: $funcType([], [$Bool], false)}]; Position.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$2.methods = [{prop: "IsValid", name: "IsValid", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$4.methods = [{prop: "IsValid", name: "IsValid", pkg: "", typ: $funcType([], [$Bool], false)}]; Pos.methods = [{prop: "IsValid", name: "IsValid", pkg: "", typ: $funcType([], [$Bool], false)}]; - ptrType.methods = [{prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Base", name: "Base", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "LineCount", name: "LineCount", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "AddLine", name: "AddLine", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "MergeLine", name: "MergeLine", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "SetLines", name: "SetLines", pkg: "", typ: $funcType([sliceType$2], [$Bool], false)}, {prop: "SetLinesForContent", name: "SetLinesForContent", pkg: "", typ: $funcType([sliceType$5], [], false)}, {prop: "LineStart", name: "LineStart", pkg: "", typ: $funcType([$Int], [Pos], false)}, {prop: "AddLineInfo", name: "AddLineInfo", pkg: "", typ: $funcType([$Int, $String, $Int], [], false)}, {prop: "AddLineColumnInfo", name: "AddLineColumnInfo", pkg: "", typ: $funcType([$Int, $String, $Int, $Int], [], false)}, {prop: "Pos", name: "Pos", pkg: "", typ: $funcType([$Int], [Pos], false)}, {prop: "Offset", name: "Offset", pkg: "", typ: $funcType([Pos], [$Int], false)}, {prop: "Line", name: "Line", pkg: "", typ: $funcType([Pos], [$Int], false)}, {prop: "unpack", name: "unpack", pkg: "go/token", typ: $funcType([$Int, $Bool], [$String, $Int, $Int], false)}, {prop: "position", name: "position", pkg: "go/token", typ: $funcType([Pos, $Bool], [Position], false)}, {prop: "PositionFor", name: "PositionFor", pkg: "", typ: $funcType([Pos, $Bool], [Position], false)}, {prop: "Position", name: "Position", pkg: "", typ: $funcType([Pos], [Position], false)}]; - ptrType$3.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([funcType], [$error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([funcType], [$error], false)}, {prop: "Base", name: "Base", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "AddFile", name: "AddFile", pkg: "", typ: $funcType([$String, $Int, $Int], [ptrType], false)}, {prop: "RemoveFile", name: "RemoveFile", pkg: "", typ: $funcType([ptrType], [], false)}, {prop: "Iterate", name: "Iterate", pkg: "", typ: $funcType([funcType$1], [], false)}, {prop: "file", name: "file", pkg: "go/token", typ: $funcType([Pos], [ptrType], false)}, {prop: "File", name: "File", pkg: "", typ: $funcType([Pos], [ptrType], false)}, {prop: "PositionFor", name: "PositionFor", pkg: "", typ: $funcType([Pos, $Bool], [Position], false)}, {prop: "Position", name: "Position", pkg: "", typ: $funcType([Pos], [Position], false)}]; + ptrType.methods = [{prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Base", name: "Base", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "LineCount", name: "LineCount", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "AddLine", name: "AddLine", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "MergeLine", name: "MergeLine", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Lines", name: "Lines", pkg: "", typ: $funcType([], [sliceType$2], false)}, {prop: "SetLines", name: "SetLines", pkg: "", typ: $funcType([sliceType$2], [$Bool], false)}, {prop: "SetLinesForContent", name: "SetLinesForContent", pkg: "", typ: $funcType([sliceType$5], [], false)}, {prop: "LineStart", name: "LineStart", pkg: "", typ: $funcType([$Int], [Pos], false)}, {prop: "AddLineInfo", name: "AddLineInfo", pkg: "", typ: $funcType([$Int, $String, $Int], [], false)}, {prop: "AddLineColumnInfo", name: "AddLineColumnInfo", pkg: "", typ: $funcType([$Int, $String, $Int, $Int], [], false)}, {prop: "Pos", name: "Pos", pkg: "", typ: $funcType([$Int], [Pos], false)}, {prop: "Offset", name: "Offset", pkg: "", typ: $funcType([Pos], [$Int], false)}, {prop: "Line", name: "Line", pkg: "", typ: $funcType([Pos], [$Int], false)}, {prop: "unpack", name: "unpack", pkg: "go/token", typ: $funcType([$Int, $Bool], [$String, $Int, $Int], false)}, {prop: "position", name: "position", pkg: "go/token", typ: $funcType([Pos, $Bool], [Position], false)}, {prop: "PositionFor", name: "PositionFor", pkg: "", typ: $funcType([Pos, $Bool], [Position], false)}, {prop: "Position", name: "Position", pkg: "", typ: $funcType([Pos], [Position], false)}]; + ptrType$5.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([funcType], [$error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([funcType], [$error], false)}, {prop: "Base", name: "Base", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "AddFile", name: "AddFile", pkg: "", typ: $funcType([$String, $Int, $Int], [ptrType], false)}, {prop: "RemoveFile", name: "RemoveFile", pkg: "", typ: $funcType([ptrType], [], false)}, {prop: "Iterate", name: "Iterate", pkg: "", typ: $funcType([funcType$1], [], false)}, {prop: "file", name: "file", pkg: "go/token", typ: $funcType([Pos], [ptrType], false)}, {prop: "File", name: "File", pkg: "", typ: $funcType([Pos], [ptrType], false)}, {prop: "PositionFor", name: "PositionFor", pkg: "", typ: $funcType([Pos, $Bool], [Position], false)}, {prop: "Position", name: "Position", pkg: "", typ: $funcType([Pos], [Position], false)}]; serializedFile.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Base", name: "Base", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Size", name: "Size", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Lines", name: "Lines", embedded: false, exported: true, typ: sliceType$2, tag: ""}, {prop: "Infos", name: "Infos", embedded: false, exported: true, typ: sliceType$3, tag: ""}]); serializedFileSet.init("", [{prop: "Base", name: "Base", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Files", name: "Files", embedded: false, exported: true, typ: sliceType, tag: ""}]); Position.init("", [{prop: "Filename", name: "Filename", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Offset", name: "Offset", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Line", name: "Line", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Column", name: "Column", embedded: false, exported: true, typ: $Int, tag: ""}]); @@ -54022,6 +52874,8 @@ $packages["path/filepath"] = (function() { } else if (link.length > 0 && os.IsPathSeparator(link.charCodeAt(0))) { dest = $substring(link, 0, 1); end = 1; + vol = $substring(link, 0, 1); + volLen = 1; } else { r$1 = 0; r$1 = dest.length - 1 >> 0; @@ -54611,9 +53465,9 @@ $packages["go/scanner"] = (function() { _tmp$5 = n; line = _tmp$4; col = _tmp$5; - /* */ if ((col === 0) || col > 1073741823) { $s = 7; continue; } + /* */ if ((col === 0) || col > 1073741824) { $s = 7; continue; } /* */ $s = 8; continue; - /* if ((col === 0) || col > 1073741823) { */ case 7: + /* if ((col === 0) || col > 1073741824) { */ case 7: $r = s.error(offs + i2 >> 0, "invalid column number: " + ($bytesToString($subslice(text, i2)))); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* } */ case 8: @@ -54622,9 +53476,9 @@ $packages["go/scanner"] = (function() { /* } else { */ case 5: line = n; /* } */ case 6: - /* */ if ((line === 0) || line > 1073741823) { $s = 10; continue; } + /* */ if ((line === 0) || line > 1073741824) { $s = 10; continue; } /* */ $s = 11; continue; - /* if ((line === 0) || line > 1073741823) { */ case 10: + /* if ((line === 0) || line > 1073741824) { */ case 10: $r = s.error(offs + i >> 0, "invalid line number: " + ($bytesToString($subslice(text, i)))); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* } */ case 11: @@ -55657,7 +54511,7 @@ $packages["go/scanner"] = (function() { return $pkg; })(); $packages["go/ast"] = (function() { - var $pkg = {}, $init, bytes, fmt, scanner, token, io, os, reflect, sort, strconv, strings, Visitor, inspector, Scope, Object, ObjKind, FieldFilter, printer, localError, Node, Expr, Stmt, Decl, Comment, CommentGroup, Field, FieldList, BadExpr, Ident, Ellipsis, BasicLit, FuncLit, CompositeLit, ParenExpr, SelectorExpr, IndexExpr, IndexListExpr, SliceExpr, TypeAssertExpr, CallExpr, StarExpr, UnaryExpr, BinaryExpr, KeyValueExpr, ChanDir, ArrayType, StructType, FuncType, InterfaceType, MapType, ChanType, BadStmt, DeclStmt, EmptyStmt, LabeledStmt, ExprStmt, SendStmt, IncDecStmt, AssignStmt, GoStmt, DeferStmt, ReturnStmt, BranchStmt, BlockStmt, IfStmt, CaseClause, SwitchStmt, TypeSwitchStmt, CommClause, SelectStmt, ForStmt, RangeStmt, Spec, ImportSpec, ValueSpec, TypeSpec, BadDecl, GenDecl, FuncDecl, File, Package, sliceType, ptrType, ptrType$1, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, ptrType$11, ptrType$12, ptrType$13, ptrType$14, ptrType$15, ptrType$16, ptrType$17, ptrType$18, ptrType$19, ptrType$20, ptrType$21, ptrType$22, ptrType$23, ptrType$24, ptrType$25, ptrType$26, ptrType$27, ptrType$28, ptrType$29, ptrType$30, ptrType$31, ptrType$32, ptrType$33, ptrType$34, ptrType$35, ptrType$36, ptrType$37, ptrType$38, ptrType$39, ptrType$40, ptrType$41, ptrType$42, ptrType$43, ptrType$44, ptrType$45, ptrType$46, ptrType$47, ptrType$48, ptrType$49, ptrType$50, ptrType$51, ptrType$52, ptrType$53, ptrType$54, ptrType$55, sliceType$1, ptrType$56, ptrType$57, ptrType$58, ptrType$60, sliceType$3, sliceType$5, sliceType$6, sliceType$7, sliceType$8, sliceType$9, mapType, ptrType$63, mapType$1, sliceType$11, sliceType$12, sliceType$13, sliceType$14, mapType$2, objKindStrings, indent, walkIdentList, walkExprList, walkStmtList, walkDeclList, Walk, Inspect, NewScope, NewObj, NotNilFilter, Fprint, fprint, isWhitespace, stripTrailingWhitespace, isDirective, NewIdent, IsExported; + var $pkg = {}, $init, bytes, fmt, scanner, token, io, os, reflect, sort, strconv, strings, Visitor, inspector, Scope, Object, ObjKind, FieldFilter, printer, localError, Node, Expr, Stmt, Decl, Comment, CommentGroup, Field, FieldList, BadExpr, Ident, Ellipsis, BasicLit, FuncLit, CompositeLit, ParenExpr, SelectorExpr, IndexExpr, IndexListExpr, SliceExpr, TypeAssertExpr, CallExpr, StarExpr, UnaryExpr, BinaryExpr, KeyValueExpr, ChanDir, ArrayType, StructType, FuncType, InterfaceType, MapType, ChanType, BadStmt, DeclStmt, EmptyStmt, LabeledStmt, ExprStmt, SendStmt, IncDecStmt, AssignStmt, GoStmt, DeferStmt, ReturnStmt, BranchStmt, BlockStmt, IfStmt, CaseClause, SwitchStmt, TypeSwitchStmt, CommClause, SelectStmt, ForStmt, RangeStmt, Spec, ImportSpec, ValueSpec, TypeSpec, BadDecl, GenDecl, FuncDecl, File, Package, sliceType, ptrType, ptrType$1, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, ptrType$11, ptrType$12, ptrType$13, ptrType$14, ptrType$15, ptrType$16, ptrType$17, ptrType$18, ptrType$19, ptrType$20, ptrType$21, ptrType$22, ptrType$23, ptrType$24, ptrType$25, ptrType$26, ptrType$27, ptrType$28, ptrType$29, ptrType$30, ptrType$31, ptrType$32, ptrType$33, ptrType$34, ptrType$35, ptrType$36, ptrType$37, ptrType$38, ptrType$39, ptrType$40, ptrType$41, ptrType$42, ptrType$43, ptrType$44, ptrType$45, ptrType$46, ptrType$47, ptrType$48, ptrType$49, ptrType$50, ptrType$51, ptrType$52, ptrType$53, ptrType$54, ptrType$55, sliceType$1, ptrType$56, ptrType$57, ptrType$58, ptrType$61, sliceType$3, sliceType$5, sliceType$6, sliceType$7, sliceType$8, sliceType$9, mapType, ptrType$63, mapType$1, sliceType$11, sliceType$12, sliceType$13, sliceType$14, mapType$2, objKindStrings, indent, walkIdentList, walkExprList, walkStmtList, walkDeclList, Walk, Inspect, NewScope, NewObj, NotNilFilter, Fprint, fprint, isWhitespace, stripTrailingWhitespace, isDirective, NewIdent, IsExported; bytes = $packages["bytes"]; fmt = $packages["fmt"]; scanner = $packages["go/scanner"]; @@ -55702,7 +54556,7 @@ $packages["go/ast"] = (function() { this.$val = this; if (arguments.length === 0) { this.output = $ifaceNil; - this.fset = ptrType$60.nil; + this.fset = ptrType$61.nil; this.filter = $throwNilPointerError; this.ptrmap = false; this.indent = 0; @@ -56426,7 +55280,7 @@ $packages["go/ast"] = (function() { this.Type = Type_; this.Body = Body_; }); - File = $newType(0, $kindStruct, "ast.File", true, "go/ast", true, function(Doc_, Package_, Name_, Decls_, FileStart_, FileEnd_, Scope_, Imports_, Unresolved_, Comments_) { + File = $newType(0, $kindStruct, "ast.File", true, "go/ast", true, function(Doc_, Package_, Name_, Decls_, FileStart_, FileEnd_, Scope_, Imports_, Unresolved_, Comments_, GoVersion_) { this.$val = this; if (arguments.length === 0) { this.Doc = ptrType$1.nil; @@ -56439,6 +55293,7 @@ $packages["go/ast"] = (function() { this.Imports = sliceType$8.nil; this.Unresolved = sliceType$9.nil; this.Comments = sliceType$3.nil; + this.GoVersion = ""; return; } this.Doc = Doc_; @@ -56451,6 +55306,7 @@ $packages["go/ast"] = (function() { this.Imports = Imports_; this.Unresolved = Unresolved_; this.Comments = Comments_; + this.GoVersion = GoVersion_; }); Package = $newType(0, $kindStruct, "ast.Package", true, "go/ast", true, function(Name_, Scope_, Imports_, Files_) { this.$val = this; @@ -56598,7 +55454,7 @@ $packages["go/ast"] = (function() { ptrType$56 = $ptrType(Object); ptrType$57 = $ptrType(strings.Builder); ptrType$58 = $ptrType(Scope); - ptrType$60 = $ptrType(token.FileSet); + ptrType$61 = $ptrType(token.FileSet); sliceType$3 = $sliceType(ptrType$1); sliceType$5 = $sliceType($String); sliceType$6 = $sliceType(ptrType); @@ -57402,7 +56258,7 @@ $packages["go/ast"] = (function() { }; $pkg.Fprint = Fprint; fprint = function fprint$1(w, fset, x, f) { - var {_r, err, f, fset, p, w, x, $s, $deferred, $r, $c} = $restore(this, {w, fset, x, f}); + var {err, f, fset, p, w, x, $s, $deferred, $r, $c} = $restore(this, {w, fset, x, f}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); err = [err]; err[0] = $ifaceNil; @@ -57420,11 +56276,10 @@ $packages["go/ast"] = (function() { $r = p.printf("nil\n", sliceType$1.nil); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return err[0]; /* } */ case 2: - _r = reflect.ValueOf(x); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $r = p.print($clone(_r, reflect.Value)); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.printf("\n", sliceType$1.nil); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print($clone(reflect.ValueOf(x), reflect.Value)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.printf("\n", sliceType$1.nil); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return err[0]; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return err[0]; } if($curGoroutine.asleep) { var $f = {$blk: fprint$1, $c: true, $r, _r, err, f, fset, p, w, x, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return err[0]; } if($curGoroutine.asleep) { var $f = {$blk: fprint$1, $c: true, $r, err, f, fset, p, w, x, $s, $deferred};return $f; } } }; $ptrType(printer).prototype.Write = function Write(data) { var {_i, _r, _r$1, _r$2, _r$3, _ref, _tuple, _tuple$1, _tuple$2, _tuple$3, b, data, err, i, j, m, n, p, $s, $r, $c} = $restore(this, {data}); @@ -57503,7 +56358,7 @@ $packages["go/ast"] = (function() { /* */ } return; } var $f = {$blk: printf, $c: true, $r, _r, _tuple, args, err, format, p, x, $s};return $f; }; $ptrType(printer).prototype.print = function print(x) { - var {_1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _entry, _i, _key, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _v, exists, first, i, i$1, i$2, key, line, n, n$1, n$2, name, ok, p, ptr, s, t, v, v$1, v$2, value, x, x$1, $s, $r, $c} = $restore(this, {x}); + var {_1, _arg, _entry, _i, _key, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _v, exists, first, i, i$1, i$2, key, line, n, n$1, n$2, name, ok, p, ptr, s, t, v, v$1, v$2, value, x, x$1, $s, $r, $c} = $restore(this, {x}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; /* */ if (!NotNilFilter("", $clone(x, reflect.Value))) { $s = 1; continue; } @@ -57521,190 +56376,173 @@ $packages["go/ast"] = (function() { /* */ if (_1 === (25)) { $s = 10; continue; } /* */ $s = 11; continue; /* if (_1 === (20)) { */ case 5: - _r = $clone(x, reflect.Value).Elem(); /* */ $s = 13; case 13: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $r = p.print($clone(_r, reflect.Value)); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print($clone($clone(x, reflect.Value).Elem(), reflect.Value)); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 12; continue; /* } else if (_1 === (21)) { */ case 6: - _arg = $clone(x, reflect.Value).Type(); - _r$1 = $clone(x, reflect.Value).Len(); /* */ $s = 15; case 15: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _arg$1 = new $Int(_r$1); - $r = p.printf("%s (len = %d) {", new sliceType$1([_arg, _arg$1])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$2 = $clone(x, reflect.Value).Len(); /* */ $s = 19; case 19: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (_r$2 > 0) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (_r$2 > 0) { */ case 17: + $r = p.printf("%s (len = %d) {", new sliceType$1([$clone(x, reflect.Value).Type(), new $Int($clone(x, reflect.Value).Len())])); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if ($clone(x, reflect.Value).Len() > 0) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if ($clone(x, reflect.Value).Len() > 0) { */ case 15: p.indent = p.indent + (1) >> 0; - $r = p.printf("\n", sliceType$1.nil); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$3 = $clone(x, reflect.Value).MapKeys(); /* */ $s = 21; case 21: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _ref = _r$3; + $r = p.printf("\n", sliceType$1.nil); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _ref = $clone(x, reflect.Value).MapKeys(); _i = 0; - /* while (true) { */ case 22: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 23; continue; } + /* while (true) { */ case 18: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 19; continue; } key = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - $r = p.print($clone(key, reflect.Value)); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.printf(": ", sliceType$1.nil); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$4 = $clone(x, reflect.Value).MapIndex($clone(key, reflect.Value)); /* */ $s = 26; case 26: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $r = p.print($clone(_r$4, reflect.Value)); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.printf("\n", sliceType$1.nil); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print($clone(key, reflect.Value)); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.printf(": ", sliceType$1.nil); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r = $clone(x, reflect.Value).MapIndex($clone(key, reflect.Value)); /* */ $s = 22; case 22: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = p.print($clone(_r, reflect.Value)); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.printf("\n", sliceType$1.nil); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _i++; - $s = 22; continue; - case 23: + $s = 18; continue; + case 19: p.indent = p.indent - (1) >> 0; - /* } */ case 18: - $r = p.printf("}", sliceType$1.nil); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 16: + $r = p.printf("}", sliceType$1.nil); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 12; continue; /* } else if (_1 === (22)) { */ case 7: - $r = p.printf("*", sliceType$1.nil); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$5 = $clone(x, reflect.Value).Interface(); /* */ $s = 31; case 31: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - ptr = _r$5; + $r = p.printf("*", sliceType$1.nil); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = $clone(x, reflect.Value).Interface(); /* */ $s = 27; case 27: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + ptr = _r$1; _tuple = (_entry = $mapIndex(p.ptrmap,$emptyInterface.keyFor(ptr)), _entry !== undefined ? [_entry.v, true] : [0, false]); line = _tuple[0]; exists = _tuple[1]; - /* */ if (exists) { $s = 32; continue; } - /* */ $s = 33; continue; - /* if (exists) { */ case 32: - $r = p.printf("(obj @ %d)", new sliceType$1([new $Int(line)])); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 34; continue; - /* } else { */ case 33: + /* */ if (exists) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (exists) { */ case 28: + $r = p.printf("(obj @ %d)", new sliceType$1([new $Int(line)])); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 30; continue; + /* } else { */ case 29: _key = ptr; (p.ptrmap || $throwRuntimeError("assignment to entry in nil map")).set($emptyInterface.keyFor(_key), { k: _key, v: p.line }); - _r$6 = $clone(x, reflect.Value).Elem(); /* */ $s = 36; case 36: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - $r = p.print($clone(_r$6, reflect.Value)); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 34: + $r = p.print($clone($clone(x, reflect.Value).Elem(), reflect.Value)); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 30: $s = 12; continue; /* } else if (_1 === (17)) { */ case 8: - $r = p.printf("%s {", new sliceType$1([$clone(x, reflect.Value).Type()])); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$7 = $clone(x, reflect.Value).Len(); /* */ $s = 41; case 41: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - /* */ if (_r$7 > 0) { $s = 39; continue; } - /* */ $s = 40; continue; - /* if (_r$7 > 0) { */ case 39: + $r = p.printf("%s {", new sliceType$1([$clone(x, reflect.Value).Type()])); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if ($clone(x, reflect.Value).Len() > 0) { $s = 34; continue; } + /* */ $s = 35; continue; + /* if ($clone(x, reflect.Value).Len() > 0) { */ case 34: p.indent = p.indent + (1) >> 0; - $r = p.printf("\n", sliceType$1.nil); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.printf("\n", sliceType$1.nil); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _tmp = 0; - _r$8 = $clone(x, reflect.Value).Len(); /* */ $s = 43; case 43: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _tmp$1 = _r$8; + _tmp$1 = $clone(x, reflect.Value).Len(); i = _tmp; n = _tmp$1; - /* while (true) { */ case 44: - /* if (!(i < n)) { break; } */ if(!(i < n)) { $s = 45; continue; } - $r = p.printf("%d: ", new sliceType$1([new $Int(i)])); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$9 = $clone(x, reflect.Value).Index(i); /* */ $s = 47; case 47: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - $r = p.print($clone(_r$9, reflect.Value)); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.printf("\n", sliceType$1.nil); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* while (true) { */ case 37: + /* if (!(i < n)) { break; } */ if(!(i < n)) { $s = 38; continue; } + $r = p.printf("%d: ", new sliceType$1([new $Int(i)])); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print($clone($clone(x, reflect.Value).Index(i), reflect.Value)); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.printf("\n", sliceType$1.nil); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } i = i + (1) >> 0; - $s = 44; continue; - case 45: + $s = 37; continue; + case 38: p.indent = p.indent - (1) >> 0; - /* } */ case 40: - $r = p.printf("}", sliceType$1.nil); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 35: + $r = p.printf("}", sliceType$1.nil); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 12; continue; /* } else if (_1 === (23)) { */ case 9: - _r$10 = $clone(x, reflect.Value).Interface(); /* */ $s = 51; case 51: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _tuple$1 = $assertType(_r$10, sliceType, true); + _r$2 = $clone(x, reflect.Value).Interface(); /* */ $s = 43; case 43: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$1 = $assertType(_r$2, sliceType, true); s = _tuple$1[0]; ok = _tuple$1[1]; - /* */ if (ok) { $s = 52; continue; } - /* */ $s = 53; continue; - /* if (ok) { */ case 52: - $r = p.printf("%#q", new sliceType$1([s])); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (ok) { $s = 44; continue; } + /* */ $s = 45; continue; + /* if (ok) { */ case 44: + $r = p.printf("%#q", new sliceType$1([s])); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* } */ case 53: - _arg$2 = $clone(x, reflect.Value).Type(); - _r$11 = $clone(x, reflect.Value).Len(); /* */ $s = 55; case 55: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _arg$3 = new $Int(_r$11); - $r = p.printf("%s (len = %d) {", new sliceType$1([_arg$2, _arg$3])); /* */ $s = 56; case 56: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$12 = $clone(x, reflect.Value).Len(); /* */ $s = 59; case 59: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - /* */ if (_r$12 > 0) { $s = 57; continue; } - /* */ $s = 58; continue; - /* if (_r$12 > 0) { */ case 57: + /* } */ case 45: + $r = p.printf("%s (len = %d) {", new sliceType$1([$clone(x, reflect.Value).Type(), new $Int($clone(x, reflect.Value).Len())])); /* */ $s = 47; case 47: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if ($clone(x, reflect.Value).Len() > 0) { $s = 48; continue; } + /* */ $s = 49; continue; + /* if ($clone(x, reflect.Value).Len() > 0) { */ case 48: p.indent = p.indent + (1) >> 0; - $r = p.printf("\n", sliceType$1.nil); /* */ $s = 60; case 60: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.printf("\n", sliceType$1.nil); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _tmp$2 = 0; - _r$13 = $clone(x, reflect.Value).Len(); /* */ $s = 61; case 61: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - _tmp$3 = _r$13; + _tmp$3 = $clone(x, reflect.Value).Len(); i$1 = _tmp$2; n$1 = _tmp$3; - /* while (true) { */ case 62: - /* if (!(i$1 < n$1)) { break; } */ if(!(i$1 < n$1)) { $s = 63; continue; } - $r = p.printf("%d: ", new sliceType$1([new $Int(i$1)])); /* */ $s = 64; case 64: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$14 = $clone(x, reflect.Value).Index(i$1); /* */ $s = 65; case 65: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - $r = p.print($clone(_r$14, reflect.Value)); /* */ $s = 66; case 66: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.printf("\n", sliceType$1.nil); /* */ $s = 67; case 67: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* while (true) { */ case 51: + /* if (!(i$1 < n$1)) { break; } */ if(!(i$1 < n$1)) { $s = 52; continue; } + $r = p.printf("%d: ", new sliceType$1([new $Int(i$1)])); /* */ $s = 53; case 53: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print($clone($clone(x, reflect.Value).Index(i$1), reflect.Value)); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.printf("\n", sliceType$1.nil); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } i$1 = i$1 + (1) >> 0; - $s = 62; continue; - case 63: + $s = 51; continue; + case 52: p.indent = p.indent - (1) >> 0; - /* } */ case 58: - $r = p.printf("}", sliceType$1.nil); /* */ $s = 68; case 68: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 49: + $r = p.printf("}", sliceType$1.nil); /* */ $s = 56; case 56: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 12; continue; /* } else if (_1 === (25)) { */ case 10: t = $clone(x, reflect.Value).Type(); - $r = p.printf("%s {", new sliceType$1([t])); /* */ $s = 69; case 69: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.printf("%s {", new sliceType$1([t])); /* */ $s = 57; case 57: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } p.indent = p.indent + (1) >> 0; first = true; _tmp$4 = 0; - _r$15 = t.NumField(); /* */ $s = 70; case 70: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - _tmp$5 = _r$15; + _r$3 = t.NumField(); /* */ $s = 58; case 58: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tmp$5 = _r$3; i$2 = _tmp$4; n$2 = _tmp$5; - /* while (true) { */ case 71: - /* if (!(i$2 < n$2)) { break; } */ if(!(i$2 < n$2)) { $s = 72; continue; } - _r$16 = t.Field(i$2); /* */ $s = 73; case 73: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - name = _r$16.Name; - /* */ if (IsExported(name)) { $s = 74; continue; } - /* */ $s = 75; continue; - /* if (IsExported(name)) { */ case 74: - _r$17 = $clone(x, reflect.Value).Field(i$2); /* */ $s = 76; case 76: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - value = _r$17; - if (p.filter === $throwNilPointerError) { _v = true; $s = 79; continue s; } - _r$18 = p.filter(name, $clone(value, reflect.Value)); /* */ $s = 80; case 80: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - _v = _r$18; case 79: - /* */ if (_v) { $s = 77; continue; } - /* */ $s = 78; continue; - /* if (_v) { */ case 77: - /* */ if (first) { $s = 81; continue; } - /* */ $s = 82; continue; - /* if (first) { */ case 81: - $r = p.printf("\n", sliceType$1.nil); /* */ $s = 83; case 83: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* while (true) { */ case 59: + /* if (!(i$2 < n$2)) { break; } */ if(!(i$2 < n$2)) { $s = 60; continue; } + _r$4 = t.Field(i$2); /* */ $s = 61; case 61: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + name = _r$4.Name; + /* */ if (IsExported(name)) { $s = 62; continue; } + /* */ $s = 63; continue; + /* if (IsExported(name)) { */ case 62: + value = $clone(x, reflect.Value).Field(i$2); + if (p.filter === $throwNilPointerError) { _v = true; $s = 66; continue s; } + _r$5 = p.filter(name, $clone(value, reflect.Value)); /* */ $s = 67; case 67: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _v = _r$5; case 66: + /* */ if (_v) { $s = 64; continue; } + /* */ $s = 65; continue; + /* if (_v) { */ case 64: + /* */ if (first) { $s = 68; continue; } + /* */ $s = 69; continue; + /* if (first) { */ case 68: + $r = p.printf("\n", sliceType$1.nil); /* */ $s = 70; case 70: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } first = false; - /* } */ case 82: - $r = p.printf("%s: ", new sliceType$1([new $String(name)])); /* */ $s = 84; case 84: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print($clone(value, reflect.Value)); /* */ $s = 85; case 85: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.printf("\n", sliceType$1.nil); /* */ $s = 86; case 86: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 78: - /* } */ case 75: + /* } */ case 69: + $r = p.printf("%s: ", new sliceType$1([new $String(name)])); /* */ $s = 71; case 71: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print($clone(value, reflect.Value)); /* */ $s = 72; case 72: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.printf("\n", sliceType$1.nil); /* */ $s = 73; case 73: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 65: + /* } */ case 63: i$2 = i$2 + (1) >> 0; - $s = 71; continue; - case 72: + $s = 59; continue; + case 60: p.indent = p.indent - (1) >> 0; - $r = p.printf("}", sliceType$1.nil); /* */ $s = 87; case 87: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.printf("}", sliceType$1.nil); /* */ $s = 74; case 74: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 12; continue; /* } else { */ case 11: - _r$19 = $clone(x, reflect.Value).Interface(); /* */ $s = 88; case 88: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - v = _r$19; + _r$6 = $clone(x, reflect.Value).Interface(); /* */ $s = 75; case 75: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + v = _r$6; _ref$1 = v; - /* */ if ($assertType(_ref$1, $String, true)[1]) { $s = 89; continue; } - /* */ if ($assertType(_ref$1, token.Pos, true)[1]) { $s = 90; continue; } - /* */ $s = 91; continue; - /* if ($assertType(_ref$1, $String, true)[1]) { */ case 89: + /* */ if ($assertType(_ref$1, $String, true)[1]) { $s = 76; continue; } + /* */ if ($assertType(_ref$1, token.Pos, true)[1]) { $s = 77; continue; } + /* */ $s = 78; continue; + /* if ($assertType(_ref$1, $String, true)[1]) { */ case 76: v$1 = _ref$1.$val; - $r = p.printf("%q", new sliceType$1([new $String(v$1)])); /* */ $s = 92; case 92: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.printf("%q", new sliceType$1([new $String(v$1)])); /* */ $s = 79; case 79: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* } else if ($assertType(_ref$1, token.Pos, true)[1]) { */ case 90: + /* } else if ($assertType(_ref$1, token.Pos, true)[1]) { */ case 77: v$2 = _ref$1.$val; - /* */ if (!(p.fset === ptrType$60.nil)) { $s = 93; continue; } - /* */ $s = 94; continue; - /* if (!(p.fset === ptrType$60.nil)) { */ case 93: - _r$20 = p.fset.Position(v$2); /* */ $s = 95; case 95: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - _arg$4 = (x$1 = _r$20, new x$1.constructor.elem(x$1)); - $r = p.printf("%s", new sliceType$1([_arg$4])); /* */ $s = 96; case 96: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!(p.fset === ptrType$61.nil)) { $s = 80; continue; } + /* */ $s = 81; continue; + /* if (!(p.fset === ptrType$61.nil)) { */ case 80: + _r$7 = p.fset.Position(v$2); /* */ $s = 82; case 82: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _arg = (x$1 = _r$7, new x$1.constructor.elem(x$1)); + $r = p.printf("%s", new sliceType$1([_arg])); /* */ $s = 83; case 83: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* } */ case 94: - /* } */ case 91: - $r = p.printf("%v", new sliceType$1([v])); /* */ $s = 97; case 97: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 81: + /* } */ case 78: + $r = p.printf("%v", new sliceType$1([v])); /* */ $s = 84; case 84: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 12: case 4: $s = -1; return; - /* */ } return; } var $f = {$blk: print, $c: true, $r, _1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _entry, _i, _key, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _v, exists, first, i, i$1, i$2, key, line, n, n$1, n$2, name, ok, p, ptr, s, t, v, v$1, v$2, value, x, x$1, $s};return $f; + /* */ } return; } var $f = {$blk: print, $c: true, $r, _1, _arg, _entry, _i, _key, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _v, exists, first, i, i$1, i$2, key, line, n, n$1, n$2, name, ok, p, ptr, s, t, v, v$1, v$2, value, x, x$1, $s};return $f; }; $ptrType(Comment).prototype.Pos = function Pos$1() { var c; @@ -58825,7 +57663,7 @@ $packages["go/ast"] = (function() { Scope.init("", [{prop: "Outer", name: "Outer", embedded: false, exported: true, typ: ptrType$58, tag: ""}, {prop: "Objects", name: "Objects", embedded: false, exported: true, typ: mapType, tag: ""}]); Object.init("", [{prop: "Kind", name: "Kind", embedded: false, exported: true, typ: ObjKind, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Decl", name: "Decl", embedded: false, exported: true, typ: $emptyInterface, tag: ""}, {prop: "Data", name: "Data", embedded: false, exported: true, typ: $emptyInterface, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: $emptyInterface, tag: ""}]); FieldFilter.init([$String, reflect.Value], [$Bool], false); - printer.init("go/ast", [{prop: "output", name: "output", embedded: false, exported: false, typ: io.Writer, tag: ""}, {prop: "fset", name: "fset", embedded: false, exported: false, typ: ptrType$60, tag: ""}, {prop: "filter", name: "filter", embedded: false, exported: false, typ: FieldFilter, tag: ""}, {prop: "ptrmap", name: "ptrmap", embedded: false, exported: false, typ: mapType$1, tag: ""}, {prop: "indent", name: "indent", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "last", name: "last", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "line", name: "line", embedded: false, exported: false, typ: $Int, tag: ""}]); + printer.init("go/ast", [{prop: "output", name: "output", embedded: false, exported: false, typ: io.Writer, tag: ""}, {prop: "fset", name: "fset", embedded: false, exported: false, typ: ptrType$61, tag: ""}, {prop: "filter", name: "filter", embedded: false, exported: false, typ: FieldFilter, tag: ""}, {prop: "ptrmap", name: "ptrmap", embedded: false, exported: false, typ: mapType$1, tag: ""}, {prop: "indent", name: "indent", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "last", name: "last", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "line", name: "line", embedded: false, exported: false, typ: $Int, tag: ""}]); localError.init("go/ast", [{prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}]); Node.init([{prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}]); Expr.init([{prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "exprNode", name: "exprNode", pkg: "go/ast", typ: $funcType([], [], false)}]); @@ -58886,7 +57724,7 @@ $packages["go/ast"] = (function() { BadDecl.init("", [{prop: "From", name: "From", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "To", name: "To", embedded: false, exported: true, typ: token.Pos, tag: ""}]); GenDecl.init("", [{prop: "Doc", name: "Doc", embedded: false, exported: true, typ: ptrType$1, tag: ""}, {prop: "TokPos", name: "TokPos", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Tok", name: "Tok", embedded: false, exported: true, typ: token.Token, tag: ""}, {prop: "Lparen", name: "Lparen", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Specs", name: "Specs", embedded: false, exported: true, typ: sliceType$14, tag: ""}, {prop: "Rparen", name: "Rparen", embedded: false, exported: true, typ: token.Pos, tag: ""}]); FuncDecl.init("", [{prop: "Doc", name: "Doc", embedded: false, exported: true, typ: ptrType$1, tag: ""}, {prop: "Recv", name: "Recv", embedded: false, exported: true, typ: ptrType$3, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: ptrType$5, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: ptrType$23, tag: ""}, {prop: "Body", name: "Body", embedded: false, exported: true, typ: ptrType$39, tag: ""}]); - File.init("", [{prop: "Doc", name: "Doc", embedded: false, exported: true, typ: ptrType$1, tag: ""}, {prop: "Package", name: "Package", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: ptrType$5, tag: ""}, {prop: "Decls", name: "Decls", embedded: false, exported: true, typ: sliceType$7, tag: ""}, {prop: "FileStart", name: "FileStart", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "FileEnd", name: "FileEnd", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Scope", name: "Scope", embedded: false, exported: true, typ: ptrType$58, tag: ""}, {prop: "Imports", name: "Imports", embedded: false, exported: true, typ: sliceType$8, tag: ""}, {prop: "Unresolved", name: "Unresolved", embedded: false, exported: true, typ: sliceType$9, tag: ""}, {prop: "Comments", name: "Comments", embedded: false, exported: true, typ: sliceType$3, tag: ""}]); + File.init("", [{prop: "Doc", name: "Doc", embedded: false, exported: true, typ: ptrType$1, tag: ""}, {prop: "Package", name: "Package", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: ptrType$5, tag: ""}, {prop: "Decls", name: "Decls", embedded: false, exported: true, typ: sliceType$7, tag: ""}, {prop: "FileStart", name: "FileStart", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "FileEnd", name: "FileEnd", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Scope", name: "Scope", embedded: false, exported: true, typ: ptrType$58, tag: ""}, {prop: "Imports", name: "Imports", embedded: false, exported: true, typ: sliceType$8, tag: ""}, {prop: "Unresolved", name: "Unresolved", embedded: false, exported: true, typ: sliceType$9, tag: ""}, {prop: "Comments", name: "Comments", embedded: false, exported: true, typ: sliceType$3, tag: ""}, {prop: "GoVersion", name: "GoVersion", embedded: false, exported: true, typ: $String, tag: ""}]); Package.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Scope", name: "Scope", embedded: false, exported: true, typ: ptrType$58, tag: ""}, {prop: "Imports", name: "Imports", embedded: false, exported: true, typ: mapType, tag: ""}, {prop: "Files", name: "Files", embedded: false, exported: true, typ: mapType$2, tag: ""}]); }; $init = function() { @@ -59023,85 +57861,925 @@ $packages["container/heap"] = (function() { $pkg.$init = $init; return $pkg; })(); +$packages["internal/bisect"] = (function() { + var $pkg = {}, $init, runtime, sync, atomic, Matcher, atomicPointerDedup, cond, Writer, parseError, dedup, ptrType, sliceType, ptrType$1, ptrType$2, ptrType$3, ptrType$4, sliceType$1, sliceType$2, arrayType, arrayType$1, sliceType$3, arrayType$2, arrayType$3, arrayType$4, arrayType$5, arrayType$6, sliceType$4, sliceType$5, sliceType$6, sliceType$7, sliceType$8, sliceType$9, sliceType$10, ptrType$5, ptrType$6, ptrType$7, mapType, New, printFileLine, appendFileLine, PrintMarker, printStack, AppendMarker, Hash, fnv, fnvString, fnvUint64, fnvUint32; + runtime = $packages["runtime"]; + sync = $packages["sync"]; + atomic = $packages["sync/atomic"]; + Matcher = $newType(0, $kindStruct, "bisect.Matcher", true, "internal/bisect", true, function(verbose_, quiet_, enable_, list_, dedup_) { + this.$val = this; + if (arguments.length === 0) { + this.verbose = false; + this.quiet = false; + this.enable = false; + this.list = sliceType.nil; + this.dedup = new atomicPointerDedup.ptr(0); + return; + } + this.verbose = verbose_; + this.quiet = quiet_; + this.enable = enable_; + this.list = list_; + this.dedup = dedup_; + }); + atomicPointerDedup = $newType(0, $kindStruct, "bisect.atomicPointerDedup", true, "internal/bisect", false, function(p_) { + this.$val = this; + if (arguments.length === 0) { + this.p = 0; + return; + } + this.p = p_; + }); + cond = $newType(0, $kindStruct, "bisect.cond", true, "internal/bisect", false, function(mask_, bits_, result_) { + this.$val = this; + if (arguments.length === 0) { + this.mask = new $Uint64(0, 0); + this.bits = new $Uint64(0, 0); + this.result = false; + return; + } + this.mask = mask_; + this.bits = bits_; + this.result = result_; + }); + Writer = $newType(8, $kindInterface, "bisect.Writer", true, "internal/bisect", true, null); + parseError = $newType(0, $kindStruct, "bisect.parseError", true, "internal/bisect", false, function(text_) { + this.$val = this; + if (arguments.length === 0) { + this.text = ""; + return; + } + this.text = text_; + }); + dedup = $newType(0, $kindStruct, "bisect.dedup", true, "internal/bisect", false, function(recent_, mu_, m_) { + this.$val = this; + if (arguments.length === 0) { + this.recent = arrayType$3.zero(); + this.mu = new sync.Mutex.ptr(0, 0); + this.m = false; + return; + } + this.recent = recent_; + this.mu = mu_; + this.m = m_; + }); + $pkg.Matcher = Matcher; + $pkg.atomicPointerDedup = atomicPointerDedup; + $pkg.cond = cond; + $pkg.Writer = Writer; + $pkg.parseError = parseError; + $pkg.dedup = dedup; + $pkg.$finishSetup = function() { + ptrType = $ptrType(Matcher); + sliceType = $sliceType(cond); + ptrType$1 = $ptrType(dedup); + ptrType$2 = $ptrType(atomicPointerDedup); + ptrType$3 = $ptrType($UnsafePointer); + ptrType$4 = $ptrType(cond); + sliceType$1 = $sliceType($emptyInterface); + sliceType$2 = $sliceType($Uint8); + arrayType = $arrayType($Uint8, 24); + arrayType$1 = $arrayType($Uintptr, 16); + sliceType$3 = $sliceType($Uintptr); + arrayType$2 = $arrayType($Uint64, 4); + arrayType$3 = $arrayType(arrayType$2, 128); + arrayType$4 = $arrayType($Uint8, 50); + arrayType$5 = $arrayType($Uint8, 100); + arrayType$6 = $arrayType($Uint8, 33); + sliceType$4 = $sliceType($String); + sliceType$5 = $sliceType($Int); + sliceType$6 = $sliceType($Uint); + sliceType$7 = $sliceType($Int32); + sliceType$8 = $sliceType($Uint32); + sliceType$9 = $sliceType($Int64); + sliceType$10 = $sliceType($Uint64); + ptrType$5 = $ptrType(arrayType$2); + ptrType$6 = $ptrType($Uint64); + ptrType$7 = $ptrType(parseError); + mapType = $mapType($Uint64, $Bool); + New = function New$1(pattern) { + var _1, bits, c, i, m, mask, n, p, pattern, result, start, wid, x, x$1, x$2, x$3; + if (pattern === "") { + return [ptrType.nil, $ifaceNil]; + } + m = new Matcher.ptr(false, false, false, sliceType.nil, new atomicPointerDedup.ptr(0)); + p = pattern; + if (p.length > 0 && (p.charCodeAt(0) === 113)) { + m.quiet = true; + p = $substring(p, 1); + if (p === "") { + return [ptrType.nil, new parseError.ptr("invalid pattern syntax: " + pattern)]; + } + } + while (true) { + if (!(p.length > 0 && (p.charCodeAt(0) === 118))) { break; } + m.verbose = true; + m.quiet = false; + p = $substring(p, 1); + if (p === "") { + return [ptrType.nil, new parseError.ptr("invalid pattern syntax: " + pattern)]; + } + } + m.enable = true; + while (true) { + if (!(p.length > 0 && (p.charCodeAt(0) === 33))) { break; } + m.enable = !m.enable; + p = $substring(p, 1); + if (p === "") { + return [ptrType.nil, new parseError.ptr("invalid pattern syntax: " + pattern)]; + } + } + if (p === "n") { + m.enable = !m.enable; + p = "y"; + } + result = true; + bits = new $Uint64(0, 0); + start = 0; + wid = 1; + i = 0; + while (true) { + if (!(i <= p.length)) { break; } + c = 45; + if (i < p.length) { + c = p.charCodeAt(i); + } + if ((i === start) && (wid === 1) && (c === 120)) { + start = i + 1 >> 0; + wid = 4; + i = i + (1) >> 0; + continue; + } + _1 = c; + if ((_1 === (50)) || (_1 === (51)) || (_1 === (52)) || (_1 === (53)) || (_1 === (54)) || (_1 === (55)) || (_1 === (56)) || (_1 === (57))) { + if (!((wid === 4))) { + return [ptrType.nil, new parseError.ptr("invalid pattern syntax: " + pattern)]; + } + bits = $shiftLeft64(bits, (wid)); + bits = (x = (new $Uint64(0, (c - 48 << 24 >>> 24))), new $Uint64(bits.$high | x.$high, (bits.$low | x.$low) >>> 0)); + } else if ((_1 === (48)) || (_1 === (49))) { + bits = $shiftLeft64(bits, (wid)); + bits = (x$1 = (new $Uint64(0, (c - 48 << 24 >>> 24))), new $Uint64(bits.$high | x$1.$high, (bits.$low | x$1.$low) >>> 0)); + } else if ((_1 === (97)) || (_1 === (98)) || (_1 === (99)) || (_1 === (100)) || (_1 === (101)) || (_1 === (102)) || (_1 === (65)) || (_1 === (66)) || (_1 === (67)) || (_1 === (68)) || (_1 === (69)) || (_1 === (70))) { + if (!((wid === 4))) { + return [ptrType.nil, new parseError.ptr("invalid pattern syntax: " + pattern)]; + } + bits = $shiftLeft64(bits, (4)); + bits = (x$2 = (new $Uint64(0, ((((c & ~32) << 24 >>> 24) - 65 << 24 >>> 24) + 10 << 24 >>> 24))), new $Uint64(bits.$high | x$2.$high, (bits.$low | x$2.$low) >>> 0)); + } else if (_1 === (121)) { + if ((i + 1 >> 0) < p.length && ((p.charCodeAt((i + 1 >> 0)) === 48) || (p.charCodeAt((i + 1 >> 0)) === 49))) { + return [ptrType.nil, new parseError.ptr("invalid pattern syntax: " + pattern)]; + } + bits = new $Uint64(0, 0); + } else if ((_1 === (43)) || (_1 === (45))) { + if ((c === 43) && result === false) { + return [ptrType.nil, new parseError.ptr("invalid pattern syntax (+ after -): " + pattern)]; + } + if (i > 0) { + n = $imul(((i - start >> 0)), wid); + if (n > 64) { + return [ptrType.nil, new parseError.ptr("pattern bits too long: " + pattern)]; + } + if (n <= 0) { + return [ptrType.nil, new parseError.ptr("invalid pattern syntax: " + pattern)]; + } + if (p.charCodeAt(start) === 121) { + n = 0; + } + mask = (x$3 = $shiftLeft64(new $Uint64(0, 1), n), new $Uint64(x$3.$high - 0, x$3.$low - 1)); + m.list = $append(m.list, new cond.ptr(mask, bits, result)); + } else if (c === 45) { + m.list = $append(m.list, new cond.ptr(new $Uint64(0, 0), new $Uint64(0, 0), true)); + } + bits = new $Uint64(0, 0); + result = c === 43; + start = i + 1 >> 0; + wid = 1; + } else { + return [ptrType.nil, new parseError.ptr("invalid pattern syntax: " + pattern)]; + } + i = i + (1) >> 0; + } + return [m, $ifaceNil]; + }; + $pkg.New = New; + $ptrType(atomicPointerDedup).prototype.Load = function Load() { + var p; + p = this; + return ($pointerOfStructConversion(atomic.LoadPointer((p === ptrType$2.nil && $throwNilPointerError(), (p.$ptr_p || (p.$ptr_p = new ptrType$3(function() { return this.$target.p; }, function($v) { this.$target.p = $v; }, p))))), ptrType$1)); + }; + $ptrType(atomicPointerDedup).prototype.CompareAndSwap = function CompareAndSwap(old, new$1) { + var new$1, old, p; + p = this; + return atomic.CompareAndSwapPointer((p === ptrType$2.nil && $throwNilPointerError(), (p.$ptr_p || (p.$ptr_p = new ptrType$3(function() { return this.$target.p; }, function($v) { this.$target.p = $v; }, p)))), (old), (new$1)); + }; + $ptrType(Matcher).prototype.MarkerOnly = function MarkerOnly() { + var m; + m = this; + return !m.verbose; + }; + $ptrType(Matcher).prototype.ShouldEnable = function ShouldEnable(id) { + var id, m; + m = this; + if (m === ptrType.nil) { + return true; + } + return m.matchResult(id) === m.enable; + }; + $ptrType(Matcher).prototype.ShouldPrint = function ShouldPrint(id) { + var id, m; + m = this; + if (m === ptrType.nil || m.quiet) { + return false; + } + return m.matchResult(id); + }; + $ptrType(Matcher).prototype.matchResult = function matchResult(id) { + var c, i, id, m, x, x$1, x$2, x$3; + m = this; + i = m.list.$length - 1 >> 0; + while (true) { + if (!(i >= 0)) { break; } + c = (x = m.list, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + i, ptrType$4))); + if ((x$1 = (x$2 = c.mask, new $Uint64(id.$high & x$2.$high, (id.$low & x$2.$low) >>> 0)), x$3 = c.bits, (x$1.$high === x$3.$high && x$1.$low === x$3.$low))) { + return c.result; + } + i = i - (1) >> 0; + } + return false; + }; + $ptrType(Matcher).prototype.FileLine = function FileLine(w, file, line) { + var {$24r, _r, file, line, m, w, $s, $r, $c} = $restore(this, {w, file, line}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + m = this; + if (m === ptrType.nil) { + $s = -1; return true; + } + _r = m.fileLine(w, file, line); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: FileLine, $c: true, $r, $24r, _r, file, line, m, w, $s};return $f; + }; + $ptrType(Matcher).prototype.fileLine = function fileLine(w, file, line) { + var {_r, _r$1, file, h, line, m, w, $s, $r, $c} = $restore(this, {w, file, line}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + m = this; + h = Hash(new sliceType$1([new $String(file), new $Int(line)])); + /* */ if (m.ShouldPrint(h)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (m.ShouldPrint(h)) { */ case 1: + /* */ if (m.MarkerOnly()) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (m.MarkerOnly()) { */ case 3: + _r = PrintMarker(w, h); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + $s = 5; continue; + /* } else { */ case 4: + _r$1 = printFileLine(w, h, file, line); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + /* } */ case 5: + /* } */ case 2: + $s = -1; return m.ShouldEnable(h); + /* */ } return; } var $f = {$blk: fileLine, $c: true, $r, _r, _r$1, file, h, line, m, w, $s};return $f; + }; + printFileLine = function printFileLine$1(w, h, file, line) { + var {_r, _tuple, b, err, file, h, line, w, $s, $r, $c} = $restore(this, {w, h, file, line}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + b = $makeSlice(sliceType$2, 0, ((40 + file.length >> 0) + 24 >> 0)); + b = AppendMarker(b, h); + b = appendFileLine(b, file, line); + b = $append(b, 10); + _r = w.Write(b); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + err = _tuple[1]; + $s = -1; return err; + /* */ } return; } var $f = {$blk: printFileLine$1, $c: true, $r, _r, _tuple, b, err, file, h, line, w, $s};return $f; + }; + appendFileLine = function appendFileLine$1(dst, file, line) { + var _q, _r, buf, dst, file, i, line, u; + dst = $appendSlice(dst, file); + dst = $append(dst, 58); + u = ((line >>> 0)); + if (line < 0) { + dst = $append(dst, 45); + u = -u >>> 0; + } + buf = arrayType.zero(); + i = 24; + while (true) { + if (!((i === 24) || u > 0)) { break; } + i = i - (1) >> 0; + ((i < 0 || i >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i] = (48 + (((_r = u % 10, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) << 24 >>> 24)); + u = (_q = u / (10), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + } + dst = $appendSlice(dst, $subslice(new sliceType$2(buf), i)); + return dst; + }; + $ptrType(Matcher).prototype.Stack = function Stack(w) { + var {$24r, _r, m, w, $s, $r, $c} = $restore(this, {w}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + m = this; + if (m === ptrType.nil) { + $s = -1; return true; + } + _r = m.stack(w); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Stack, $c: true, $r, $24r, _r, m, w, $s};return $f; + }; + $ptrType(Matcher).prototype.stack = function stack(w) { + var {_i, _i$1, _r, _r$1, _r$2, _ref, _ref$1, base, d, h, i, i$1, m, n, stk, w, $s, $r, $c} = $restore(this, {w}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + m = this; + stk = arrayType$1.zero(); + n = runtime.Callers(2, new sliceType$3(stk)); + if (n <= 1) { + $s = -1; return false; + } + base = stk[0]; + _ref = $subslice(new sliceType$3(stk), 0, n); + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + ((i < 0 || i >= stk.length) ? ($throwRuntimeError("index out of range"), undefined) : stk[i] = (((i < 0 || i >= stk.length) ? ($throwRuntimeError("index out of range"), undefined) : stk[i]) - (base) >>> 0)); + _i++; + } + h = Hash(new sliceType$1([$subslice(new sliceType$3(stk), 0, n)])); + /* */ if (m.ShouldPrint(h)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (m.ShouldPrint(h)) { */ case 1: + d = ptrType$1.nil; + while (true) { + d = m.dedup.Load(); + if (!(d === ptrType$1.nil)) { + break; + } + d = new dedup.ptr(arrayType$3.zero(), new sync.Mutex.ptr(0, 0), false); + if (m.dedup.CompareAndSwap(ptrType$1.nil, d)) { + break; + } + } + /* */ if (m.MarkerOnly()) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (m.MarkerOnly()) { */ case 3: + /* */ if (!d.seenLossy(h)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (!d.seenLossy(h)) { */ case 6: + _r = PrintMarker(w, h); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + /* } */ case 7: + $s = 5; continue; + /* } else { */ case 4: + _r$1 = d.seen(h); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!_r$1) { */ case 9: + _ref$1 = $subslice(new sliceType$3(stk), 0, n); + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i$1 = _i$1; + ((i$1 < 0 || i$1 >= stk.length) ? ($throwRuntimeError("index out of range"), undefined) : stk[i$1] = (((i$1 < 0 || i$1 >= stk.length) ? ($throwRuntimeError("index out of range"), undefined) : stk[i$1]) + (base) >>> 0)); + _i$1++; + } + _r$2 = printStack(w, h, $subslice(new sliceType$3(stk), 1, n)); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + /* } */ case 10: + /* } */ case 5: + /* } */ case 2: + $s = -1; return m.ShouldEnable(h); + /* */ } return; } var $f = {$blk: stack, $c: true, $r, _i, _i$1, _r, _r$1, _r$2, _ref, _ref$1, base, d, h, i, i$1, m, n, stk, w, $s};return $f; + }; + PrintMarker = function PrintMarker$1(w, h) { + var {_r, _tuple, b, buf, err, h, w, $s, $r, $c} = $restore(this, {w, h}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + buf = arrayType$4.zero(); + b = AppendMarker(new sliceType$2(buf), h); + b = $append(b, 10); + _r = w.Write(b); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + err = _tuple[1]; + $s = -1; return err; + /* */ } return; } var $f = {$blk: PrintMarker$1, $c: true, $r, _r, _tuple, b, buf, err, h, w, $s};return $f; + }; + $pkg.PrintMarker = PrintMarker; + printStack = function printStack$1(w, h, stk) { + var {_r, _tuple, _tuple$1, buf, err, f, frames, h, more, prefix, prefixBuf, stk, w, $s, $r, $c} = $restore(this, {w, h, stk}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + buf = $makeSlice(sliceType$2, 0, 2048); + prefixBuf = arrayType$5.zero(); + prefix = AppendMarker($subslice(new sliceType$2(prefixBuf), 0, 0), h); + frames = runtime.CallersFrames(stk); + while (true) { + _tuple = frames.Next(); + f = $clone(_tuple[0], runtime.Frame); + more = _tuple[1]; + buf = $appendSlice(buf, prefix); + buf = $appendSlice(buf, f.Func.Name()); + buf = $appendSlice(buf, "()\n"); + buf = $appendSlice(buf, prefix); + buf = $append(buf, 9); + buf = appendFileLine(buf, f.File, f.Line); + buf = $append(buf, 10); + if (!more) { + break; + } + } + buf = $appendSlice(buf, prefix); + buf = $append(buf, 10); + _r = w.Write(buf); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple$1 = _r; + err = _tuple$1[1]; + $s = -1; return err; + /* */ } return; } var $f = {$blk: printStack$1, $c: true, $r, _r, _tuple, _tuple$1, buf, err, f, frames, h, more, prefix, prefixBuf, stk, w, $s};return $f; + }; + AppendMarker = function AppendMarker$1(dst, id) { + var buf, dst, i, id, x; + buf = arrayType$6.zero(); + $copyString(new sliceType$2(buf), "[bisect-match 0x"); + i = 0; + while (true) { + if (!(i < 16)) { break; } + (x = 16 + i >> 0, ((x < 0 || x >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[x] = "0123456789abcdef".charCodeAt($flatten64($shiftRightUint64(id, 60))))); + id = $shiftLeft64(id, (4)); + i = i + (1) >> 0; + } + buf[32] = 93; + return $appendSlice(dst, new sliceType$2(buf)); + }; + $pkg.AppendMarker = AppendMarker; + Hash = function Hash$1(data) { + var _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _i$8, _i$9, _ref, _ref$1, _ref$10, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _ref$9, data, h, v, v$1, v$10, v$11, v$12, v$13, v$14, v$15, v$16, v$17, v$18, v$19, v$2, v$3, v$4, v$5, v$6, v$7, v$8, v$9, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8; + h = new $Uint64(3421674724, 2216829733); + _ref = data; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _ref$1 = v; + if ($assertType(_ref$1, $String, true)[1]) { + v$2 = _ref$1.$val; + h = fnvString(h, v$2); + } else if ($assertType(_ref$1, $Uint8, true)[1]) { + v$3 = _ref$1.$val; + h = fnv(h, v$3); + } else if ($assertType(_ref$1, $Int, true)[1]) { + v$4 = _ref$1.$val; + h = fnvUint64(h, (new $Uint64(0, v$4))); + } else if ($assertType(_ref$1, $Uint, true)[1]) { + v$5 = _ref$1.$val; + h = fnvUint64(h, (new $Uint64(0, v$5))); + } else if ($assertType(_ref$1, $Int32, true)[1]) { + v$6 = _ref$1.$val; + h = fnvUint32(h, ((v$6 >>> 0))); + } else if ($assertType(_ref$1, $Uint32, true)[1]) { + v$7 = _ref$1.$val; + h = fnvUint32(h, v$7); + } else if ($assertType(_ref$1, $Int64, true)[1]) { + v$8 = _ref$1.$val; + h = fnvUint64(h, (new $Uint64(v$8.$high, v$8.$low))); + } else if ($assertType(_ref$1, $Uint64, true)[1]) { + v$9 = _ref$1.$val; + h = fnvUint64(h, v$9); + } else if ($assertType(_ref$1, $Uintptr, true)[1]) { + v$10 = _ref$1.$val; + h = fnvUint64(h, (new $Uint64(0, v$10.constructor === Number ? v$10 : 1))); + } else if ($assertType(_ref$1, sliceType$4, true)[1]) { + v$11 = _ref$1.$val; + _ref$2 = v$11; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$2.$length)) { break; } + x = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); + h = fnvString(h, x); + _i$1++; + } + } else if ($assertType(_ref$1, sliceType$2, true)[1]) { + v$12 = _ref$1.$val; + _ref$3 = v$12; + _i$2 = 0; + while (true) { + if (!(_i$2 < _ref$3.$length)) { break; } + x$1 = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]); + h = fnv(h, x$1); + _i$2++; + } + } else if ($assertType(_ref$1, sliceType$5, true)[1]) { + v$13 = _ref$1.$val; + _ref$4 = v$13; + _i$3 = 0; + while (true) { + if (!(_i$3 < _ref$4.$length)) { break; } + x$2 = ((_i$3 < 0 || _i$3 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$3]); + h = fnvUint64(h, (new $Uint64(0, x$2))); + _i$3++; + } + } else if ($assertType(_ref$1, sliceType$6, true)[1]) { + v$14 = _ref$1.$val; + _ref$5 = v$14; + _i$4 = 0; + while (true) { + if (!(_i$4 < _ref$5.$length)) { break; } + x$3 = ((_i$4 < 0 || _i$4 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$4]); + h = fnvUint64(h, (new $Uint64(0, x$3))); + _i$4++; + } + } else if ($assertType(_ref$1, sliceType$7, true)[1]) { + v$15 = _ref$1.$val; + _ref$6 = v$15; + _i$5 = 0; + while (true) { + if (!(_i$5 < _ref$6.$length)) { break; } + x$4 = ((_i$5 < 0 || _i$5 >= _ref$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$6.$array[_ref$6.$offset + _i$5]); + h = fnvUint32(h, ((x$4 >>> 0))); + _i$5++; + } + } else if ($assertType(_ref$1, sliceType$8, true)[1]) { + v$16 = _ref$1.$val; + _ref$7 = v$16; + _i$6 = 0; + while (true) { + if (!(_i$6 < _ref$7.$length)) { break; } + x$5 = ((_i$6 < 0 || _i$6 >= _ref$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$7.$array[_ref$7.$offset + _i$6]); + h = fnvUint32(h, x$5); + _i$6++; + } + } else if ($assertType(_ref$1, sliceType$9, true)[1]) { + v$17 = _ref$1.$val; + _ref$8 = v$17; + _i$7 = 0; + while (true) { + if (!(_i$7 < _ref$8.$length)) { break; } + x$6 = ((_i$7 < 0 || _i$7 >= _ref$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$8.$array[_ref$8.$offset + _i$7]); + h = fnvUint64(h, (new $Uint64(x$6.$high, x$6.$low))); + _i$7++; + } + } else if ($assertType(_ref$1, sliceType$10, true)[1]) { + v$18 = _ref$1.$val; + _ref$9 = v$18; + _i$8 = 0; + while (true) { + if (!(_i$8 < _ref$9.$length)) { break; } + x$7 = ((_i$8 < 0 || _i$8 >= _ref$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$9.$array[_ref$9.$offset + _i$8]); + h = fnvUint64(h, x$7); + _i$8++; + } + } else if ($assertType(_ref$1, sliceType$3, true)[1]) { + v$19 = _ref$1.$val; + _ref$10 = v$19; + _i$9 = 0; + while (true) { + if (!(_i$9 < _ref$10.$length)) { break; } + x$8 = ((_i$9 < 0 || _i$9 >= _ref$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$10.$array[_ref$10.$offset + _i$9]); + h = fnvUint64(h, (new $Uint64(0, x$8.constructor === Number ? x$8 : 1))); + _i$9++; + } + } else { + v$1 = _ref$1; + $panic(new $String("bisect.Hash: unexpected argument type")); + } + _i++; + } + return h; + }; + $pkg.Hash = Hash; + $ptrType(parseError).prototype.Error = function Error() { + var e; + e = this; + return e.text; + }; + fnv = function fnv$1(h, x) { + var h, x, x$1; + h = (x$1 = (new $Uint64(0, x)), new $Uint64(h.$high ^ x$1.$high, (h.$low ^ x$1.$low) >>> 0)); + h = $mul64(h, (new $Uint64(256, 435))); + return h; + }; + fnvString = function fnvString$1(h, x) { + var h, i, x, x$1; + i = 0; + while (true) { + if (!(i < x.length)) { break; } + h = (x$1 = (new $Uint64(0, x.charCodeAt(i))), new $Uint64(h.$high ^ x$1.$high, (h.$low ^ x$1.$low) >>> 0)); + h = $mul64(h, (new $Uint64(256, 435))); + i = i + (1) >> 0; + } + return h; + }; + fnvUint64 = function fnvUint64$1(h, x) { + var h, i, x, x$1; + i = 0; + while (true) { + if (!(i < 8)) { break; } + h = (x$1 = (new $Uint64(x.$high & 0, (x.$low & 255) >>> 0)), new $Uint64(h.$high ^ x$1.$high, (h.$low ^ x$1.$low) >>> 0)); + x = $shiftRightUint64(x, (8)); + h = $mul64(h, (new $Uint64(256, 435))); + i = i + (1) >> 0; + } + return h; + }; + fnvUint32 = function fnvUint32$1(h, x) { + var h, i, x, x$1, y; + i = 0; + while (true) { + if (!(i < 4)) { break; } + h = (x$1 = (new $Uint64(0, ((x & 255) >>> 0))), new $Uint64(h.$high ^ x$1.$high, (h.$low ^ x$1.$low) >>> 0)); + x = (y = (8), y < 32 ? (x >>> y) : 0) >>> 0; + h = $mul64(h, (new $Uint64(256, 435))); + i = i + (1) >> 0; + } + return h; + }; + $ptrType(dedup).prototype.seen = function seen(h) { + var {_entry, _key, d, h, seen$1, $s, $r, $c} = $restore(this, {h}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + d = this; + $r = d.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (d.m === false) { + d.m = new $global.Map(); + } + seen$1 = (_entry = $mapIndex(d.m,$Uint64.keyFor(h)), _entry !== undefined ? _entry.v : false); + _key = h; (d.m || $throwRuntimeError("assignment to entry in nil map")).set($Uint64.keyFor(_key), { k: _key, v: true }); + $r = d.mu.Unlock(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return seen$1; + /* */ } return; } var $f = {$blk: seen, $c: true, $r, _entry, _key, d, h, seen$1, $s};return $f; + }; + $ptrType(dedup).prototype.seenLossy = function seenLossy(h) { + var _i, _r, _r$1, _ref, cache, ch, d, h, i, x, x$1, x$2, x$3, x$4, x$5; + d = this; + cache = (x = d.recent, x$1 = (_r = ((h.$low >>> 0)) % 128, _r === _r ? _r : $throwRuntimeError("integer divide by zero")), ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x, x$1, ptrType$5))); + i = 0; + while (true) { + if (!(i < 4)) { break; } + if ((x$2 = atomic.LoadUint64(((i < 0 || i >= cache.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(cache, i, ptrType$6))), (x$2.$high === h.$high && x$2.$low === h.$low))) { + return true; + } + i = i + (1) >> 0; + } + ch = new $Uint64(3421674724, 2216829733); + _ref = cache; + _i = 0; + while (true) { + if (!(_i < 4)) { break; } + x$4 = (x$3 = (_ref === ptrType$5.nil && $throwNilPointerError(), _ref), ((_i < 0 || _i >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[_i])); + ch = fnvUint64(ch, x$4); + _i++; + } + atomic.StoreUint64((x$5 = (_r$1 = ((ch.$low >>> 0)) % 4, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")), ((x$5 < 0 || x$5 >= cache.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(cache, x$5, ptrType$6))), h); + return false; + }; + ptrType.methods = [{prop: "MarkerOnly", name: "MarkerOnly", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "ShouldEnable", name: "ShouldEnable", pkg: "", typ: $funcType([$Uint64], [$Bool], false)}, {prop: "ShouldPrint", name: "ShouldPrint", pkg: "", typ: $funcType([$Uint64], [$Bool], false)}, {prop: "matchResult", name: "matchResult", pkg: "internal/bisect", typ: $funcType([$Uint64], [$Bool], false)}, {prop: "FileLine", name: "FileLine", pkg: "", typ: $funcType([Writer, $String, $Int], [$Bool], false)}, {prop: "fileLine", name: "fileLine", pkg: "internal/bisect", typ: $funcType([Writer, $String, $Int], [$Bool], false)}, {prop: "Stack", name: "Stack", pkg: "", typ: $funcType([Writer], [$Bool], false)}, {prop: "stack", name: "stack", pkg: "internal/bisect", typ: $funcType([Writer], [$Bool], false)}]; + ptrType$2.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [ptrType$1], false)}, {prop: "CompareAndSwap", name: "CompareAndSwap", pkg: "", typ: $funcType([ptrType$1, ptrType$1], [$Bool], false)}]; + ptrType$7.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$1.methods = [{prop: "seen", name: "seen", pkg: "internal/bisect", typ: $funcType([$Uint64], [$Bool], false)}, {prop: "seenLossy", name: "seenLossy", pkg: "internal/bisect", typ: $funcType([$Uint64], [$Bool], false)}]; + Matcher.init("internal/bisect", [{prop: "verbose", name: "verbose", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "quiet", name: "quiet", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "enable", name: "enable", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "list", name: "list", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "dedup", name: "dedup", embedded: false, exported: false, typ: atomicPointerDedup, tag: ""}]); + atomicPointerDedup.init("internal/bisect", [{prop: "p", name: "p", embedded: false, exported: false, typ: $UnsafePointer, tag: ""}]); + cond.init("internal/bisect", [{prop: "mask", name: "mask", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "bits", name: "bits", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "result", name: "result", embedded: false, exported: false, typ: $Bool, tag: ""}]); + Writer.init([{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}]); + parseError.init("internal/bisect", [{prop: "text", name: "text", embedded: false, exported: false, typ: $String, tag: ""}]); + dedup.init("internal/bisect", [{prop: "recent", name: "recent", embedded: false, exported: false, typ: arrayType$3, tag: ""}, {prop: "mu", name: "mu", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "m", name: "m", embedded: false, exported: false, typ: mapType, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = runtime.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = atomic.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["internal/godebugs"] = (function() { + var $pkg = {}, $init, Info, sliceType, ptrType, Lookup; + Info = $newType(0, $kindStruct, "godebugs.Info", true, "internal/godebugs", true, function(Name_, Package_, Changed_, Old_, Opaque_) { + this.$val = this; + if (arguments.length === 0) { + this.Name = ""; + this.Package = ""; + this.Changed = 0; + this.Old = ""; + this.Opaque = false; + return; + } + this.Name = Name_; + this.Package = Package_; + this.Changed = Changed_; + this.Old = Old_; + this.Opaque = Opaque_; + }); + $pkg.Info = Info; + $pkg.$finishSetup = function() { + sliceType = $sliceType(Info); + ptrType = $ptrType(Info); + Lookup = function Lookup$1(name) { + var hi, lo, m, mid, name; + lo = 0; + hi = $pkg.All.$length; + while (true) { + if (!(lo < hi)) { break; } + m = lo + (((hi - lo >> 0)) >> 1 >> 0) >> 0; + mid = ((m < 0 || m >= $pkg.All.$length) ? ($throwRuntimeError("index out of range"), undefined) : $pkg.All.$array[$pkg.All.$offset + m]).Name; + if (name === mid) { + return ((m < 0 || m >= $pkg.All.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr($pkg.All.$array, $pkg.All.$offset + m, ptrType)); + } + if (name < mid) { + hi = m; + } else { + lo = m + 1 >> 0; + } + } + return ptrType.nil; + }; + $pkg.Lookup = Lookup; + Info.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Package", name: "Package", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Changed", name: "Changed", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Old", name: "Old", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Opaque", name: "Opaque", embedded: false, exported: true, typ: $Bool, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $pkg.All = new sliceType([$clone(new Info.ptr("execerrdot", "os/exec", 0, "", false), Info), $clone(new Info.ptr("gocachehash", "cmd/go", 0, "", false), Info), $clone(new Info.ptr("gocachetest", "cmd/go", 0, "", false), Info), $clone(new Info.ptr("gocacheverify", "cmd/go", 0, "", false), Info), $clone(new Info.ptr("http2client", "net/http", 0, "", false), Info), $clone(new Info.ptr("http2debug", "net/http", 0, "", true), Info), $clone(new Info.ptr("http2server", "net/http", 0, "", false), Info), $clone(new Info.ptr("installgoroot", "go/build", 0, "", false), Info), $clone(new Info.ptr("jstmpllitinterp", "html/template", 0, "", false), Info), $clone(new Info.ptr("multipartmaxheaders", "mime/multipart", 0, "", false), Info), $clone(new Info.ptr("multipartmaxparts", "mime/multipart", 0, "", false), Info), $clone(new Info.ptr("multipathtcp", "net", 0, "", false), Info), $clone(new Info.ptr("netdns", "net", 0, "", true), Info), $clone(new Info.ptr("netedns0", "net", 19, "0", false), Info), $clone(new Info.ptr("panicnil", "runtime", 21, "1", false), Info), $clone(new Info.ptr("randautoseed", "math/rand", 0, "", false), Info), $clone(new Info.ptr("tarinsecurepath", "archive/tar", 0, "", false), Info), $clone(new Info.ptr("tlsmaxrsasize", "crypto/tls", 0, "", false), Info), $clone(new Info.ptr("x509sha1", "crypto/x509", 0, "", false), Info), $clone(new Info.ptr("x509usefallbackroots", "crypto/x509", 0, "", false), Info), $clone(new Info.ptr("zipinsecurepath", "archive/zip", 0, "", false), Info)]); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); $packages["internal/godebug"] = (function() { - var $pkg = {}, $init, sync, atomic, Setting, ptrType, ptrType$1, ptrType$2, ptrType$3, cache, empty, empty$24ptr, updateMu, setUpdate, New, init, update, parse; + var $pkg = {}, $init, bisect, godebugs, sync, atomic, Setting, setting, value, runtimeStderr, ptrType, ptrType$1, ptrType$2, ptrType$3, ptrType$4, ptrType$5, sliceType, ptrType$6, cache, empty, empty$24ptr, updateMu, stderr, stderr$24ptr, setUpdate, registerMetric, setNewIncNonDefault, New, lookup, init, newIncNonDefault, update, parse, write; + bisect = $packages["internal/bisect"]; + godebugs = $packages["internal/godebugs"]; sync = $packages["sync"]; atomic = $packages["sync/atomic"]; - Setting = $newType(0, $kindStruct, "godebug.Setting", true, "internal/godebug", true, function(name_, once_, value_) { + Setting = $newType(0, $kindStruct, "godebug.Setting", true, "internal/godebug", true, function(name_, once_, setting_) { this.$val = this; if (arguments.length === 0) { this.name = ""; this.once = new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0)); - this.value = ptrType$1.nil; + this.setting = ptrType$2.nil; return; } this.name = name_; this.once = once_; + this.setting = setting_; + }); + setting = $newType(0, $kindStruct, "godebug.setting", true, "internal/godebug", false, function(value_, nonDefaultOnce_, nonDefault_, info_) { + this.$val = this; + if (arguments.length === 0) { + this.value = new atomic.Pointer[10 /* internal/godebug.value */].ptr(ptrType$4.nil); + this.nonDefaultOnce = new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0)); + this.nonDefault = new atomic.Uint64.ptr(new atomic.noCopy.ptr(), new atomic.align64.ptr(), new $Uint64(0, 0)); + this.info = ptrType$3.nil; + return; + } this.value = value_; + this.nonDefaultOnce = nonDefaultOnce_; + this.nonDefault = nonDefault_; + this.info = info_; + }); + value = $newType(0, $kindStruct, "godebug.value", true, "internal/godebug", false, function(text_, bisect_) { + this.$val = this; + if (arguments.length === 0) { + this.text = ""; + this.bisect = ptrType$1.nil; + return; + } + this.text = text_; + this.bisect = bisect_; }); + runtimeStderr = $newType(0, $kindStruct, "godebug.runtimeStderr", true, "internal/godebug", false, function() { this.$val = this; }); $pkg.Setting = Setting; + $pkg.setting = setting; + $pkg.value = value; + $pkg.runtimeStderr = runtimeStderr; $pkg.$finishSetup = function() { ptrType = $ptrType(sync.readOnly); - ptrType$1 = $ptrType(atomic.Pointer[10 /* string */]); - ptrType$2 = $ptrType($String); - ptrType$3 = $ptrType(Setting); + ptrType$1 = $ptrType(bisect.Matcher); + ptrType$2 = $ptrType(setting); + ptrType$3 = $ptrType(godebugs.Info); + ptrType$4 = $ptrType(value); + ptrType$5 = $ptrType(Setting); + sliceType = $sliceType($Uint8); + ptrType$6 = $ptrType(runtimeStderr); setUpdate = function() { $throwRuntimeError("native function not implemented: internal/godebug.setUpdate"); }; + registerMetric = function registerMetric$1(name, read) { + var name, read; + }; + setNewIncNonDefault = function setNewIncNonDefault$1(newIncNonDefault$1) { + var newIncNonDefault$1; + }; New = function New$1(name) { var name; - return new Setting.ptr(name, new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0)), ptrType$1.nil); + return new Setting.ptr(name, new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0)), ptrType$2.nil); }; $pkg.New = New; $ptrType(Setting).prototype.Name = function Name() { var s; s = this; + if (!(s.name === "") && (s.name.charCodeAt(0) === 35)) { + return $substring(s.name, 1); + } return s.name; }; + $ptrType(Setting).prototype.Undocumented = function Undocumented() { + var s; + s = this; + return !(s.name === "") && (s.name.charCodeAt(0) === 35); + }; $ptrType(Setting).prototype.String = function String() { var {$24r, _r, s, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: s = this; _r = s.Value(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = s.name + "=" + _r; + $24r = s.Name() + "=" + _r; $s = 2; case 2: return $24r; /* */ } return; } var $f = {$blk: String, $c: true, $r, $24r, _r, s, $s};return $f; }; - $ptrType(Setting).prototype.Value = function Value() { + $ptrType(Setting).prototype.IncNonDefault = function IncNonDefault() { var {s, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + $r = s.setting.nonDefaultOnce.Do($methodVal(s, "register")); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + s.setting.nonDefault.Add(new $Uint64(0, 1)); + $s = -1; return; + /* */ } return; } var $f = {$blk: IncNonDefault, $c: true, $r, s, $s};return $f; + }; + $ptrType(Setting).prototype.register = function register() { + var s; + s = this; + if (s.setting.info === ptrType$3.nil || s.setting.info.Opaque) { + $panic(new $String("godebug: unexpected IncNonDefault of " + s.name)); + } + registerMetric("/godebug/non-default-behavior/" + s.Name() + ":events", $methodVal(s.setting.nonDefault, "Load")); + }; + $ptrType(Setting).prototype.Value = function Value() { + var {_r, _v, s, v, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: s = [s]; s[0] = this; $r = s[0].once.Do((function(s) { return function Setting·Value·func1() { - var {_r, _r$1, _tuple, _tuple$1, ok, p, v, $s, $r, $c} = $restore(this, {}); + var {_r, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = cache.Load(new $String(s[0].name)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - v = _tuple[0]; - ok = _tuple[1]; - /* */ if (!ok) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!ok) { */ case 2: - p = new atomic.Pointer[10 /* string */].ptr(ptrType$2.nil); - p.Store((empty$24ptr || (empty$24ptr = new ptrType$2(function() { return empty; }, function($v) { empty = $v; })))); - _r$1 = cache.LoadOrStore(new $String(s[0].name), p); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$1 = _r$1; - v = _tuple$1[0]; - /* } */ case 3: - s[0].value = $assertType(v, ptrType$1); + _r = lookup(s[0].Name()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + s[0].setting = _r; + if (s[0].setting.info === ptrType$3.nil && !s[0].Undocumented()) { + $panic(new $String("godebug: Value of name not listed in godebugs.All: " + s[0].name)); + } $s = -1; return; - /* */ } return; } var $f = {$blk: Setting·Value·func1, $c: true, $r, _r, _r$1, _tuple, _tuple$1, ok, p, v, $s};return $f; + /* */ } return; } var $f = {$blk: Setting·Value·func1, $c: true, $r, _r, $s};return $f; }; })(s)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return s[0].value.Load().$get(); - /* */ } return; } var $f = {$blk: Value, $c: true, $r, s, $s};return $f; + v = $clone((x = s[0].setting.value.Load(), (x === ptrType$4.nil && $throwNilPointerError(), x)), value); + if (!(!(v.bisect === ptrType$1.nil))) { _v = false; $s = 4; continue s; } + _r = v.bisect.Stack(stderr); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = !_r; case 4: + /* */ if (_v) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (_v) { */ case 2: + $s = -1; return ""; + /* } */ case 3: + $s = -1; return v.text; + /* */ } return; } var $f = {$blk: Value, $c: true, $r, _r, _v, s, v, x, $s};return $f; + }; + lookup = function lookup$1(name) { + var {_r, _r$1, _tuple, _tuple$1, loaded, name, ok, s, v, v$1, $s, $r, $c} = $restore(this, {name}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = cache.Load(new $String(name)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + v = _tuple[0]; + ok = _tuple[1]; + if (ok) { + $s = -1; return $assertType(v, ptrType$2); + } + s = new setting.ptr(new atomic.Pointer[10 /* internal/godebug.value */].ptr(ptrType$4.nil), new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0)), new atomic.Uint64.ptr(new atomic.noCopy.ptr(), new atomic.align64.ptr(), new $Uint64(0, 0)), ptrType$3.nil); + s.info = godebugs.Lookup(name); + s.value.Store(empty); + _r$1 = cache.LoadOrStore(new $String(name), s); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + v$1 = _tuple$1[0]; + loaded = _tuple$1[1]; + if (loaded) { + $s = -1; return $assertType(v$1, ptrType$2); + } + $s = -1; return s; + /* */ } return; } var $f = {$blk: lookup$1, $c: true, $r, _r, _r$1, _tuple, _tuple$1, loaded, name, ok, s, v, v$1, $s};return $f; }; init = function init$1() { var {$s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: $r = setUpdate(update); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + setNewIncNonDefault(newIncNonDefault); $s = -1; return; /* */ } return; } var $f = {$blk: init$1, $c: true, $r, $s};return $f; }; + newIncNonDefault = function newIncNonDefault$1(name) { + var {_r, name, s, $s, $r, $c} = $restore(this, {name}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = New(name); + _r = s.Value(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + $s = -1; return $methodVal(s, "IncNonDefault"); + /* */ } return; } var $f = {$blk: newIncNonDefault$1, $c: true, $r, _r, name, s, $s};return $f; + }; update = function update$1(def, env) { var {def, did, env, $s, $deferred, $r, $c} = $restore(this, {def, env}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); @@ -59111,10 +58789,10 @@ $packages["internal/godebug"] = (function() { did[0] = new $global.Map(); $r = parse(did[0], env); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = parse(did[0], def); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = cache.Range((function(did) { return function update·func1(name, v) { - var _entry, name, v; + $r = cache.Range((function(did) { return function update·func1(name, s) { + var _entry, name, s; if (!(_entry = $mapIndex(did[0],$String.keyFor($assertType(name, $String))), _entry !== undefined ? _entry.v : false)) { - $assertType(v, ptrType$1).Store((empty$24ptr || (empty$24ptr = new ptrType$2(function() { return empty; }, function($v) { empty = $v; })))); + $assertType(s, ptrType$2).value.Store(empty); } return true; }; })(did)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } @@ -59122,14 +58800,13 @@ $packages["internal/godebug"] = (function() { /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: update$1, $c: true, $r, def, did, env, $s, $deferred};return $f; } } }; parse = function parse$1(did, s) { - var {_entry, _key, _r, _r$1, _tmp, _tmp$1, _tuple, _tuple$1, did, end, eq, i, name, ok, p, s, v, value, $s, $r, $c} = $restore(this, {did, s}); + var {_entry, _key, _r, _tmp, _tmp$1, _tuple, arg, did, end, eq, i, j, name, s, v, $s, $r, $c} = $restore(this, {did, s}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: end = s.length; eq = -1; i = end - 1 >> 0; /* while (true) { */ case 1: /* if (!(i >= -1)) { break; } */ if(!(i >= -1)) { $s = 2; continue; } - value = [value]; /* */ if ((i === -1) || (s.charCodeAt(i) === 44)) { $s = 3; continue; } /* */ if (s.charCodeAt(i) === 61) { $s = 4; continue; } /* */ $s = 5; continue; @@ -59140,25 +58817,25 @@ $packages["internal/godebug"] = (function() { _tmp = $substring(s, (i + 1 >> 0), eq); _tmp$1 = $substring(s, (eq + 1 >> 0), end); name = _tmp; - value[0] = _tmp$1; + arg = _tmp$1; /* */ if (!(_entry = $mapIndex(did,$String.keyFor(name)), _entry !== undefined ? _entry.v : false)) { $s = 8; continue; } /* */ $s = 9; continue; /* if (!(_entry = $mapIndex(did,$String.keyFor(name)), _entry !== undefined ? _entry.v : false)) { */ case 8: _key = name; (did || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: true }); - _r = cache.Load(new $String(name)); /* */ $s = 10; case 10: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - v = _tuple[0]; - ok = _tuple[1]; - /* */ if (!ok) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (!ok) { */ case 11: - p = new atomic.Pointer[10 /* string */].ptr(ptrType$2.nil); - p.Store((empty$24ptr || (empty$24ptr = new ptrType$2(function() { return empty; }, function($v) { empty = $v; })))); - _r$1 = cache.LoadOrStore(new $String(name), p); /* */ $s = 13; case 13: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$1 = _r$1; - v = _tuple$1[0]; - /* } */ case 12: - $assertType(v, ptrType$1).Store((value.$ptr || (value.$ptr = new ptrType$2(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, value)))); + v = new value.ptr(arg, ptrType$1.nil); + j = 0; + while (true) { + if (!(j < arg.length)) { break; } + if (arg.charCodeAt(j) === 35) { + v.text = $substring(arg, 0, j); + _tuple = bisect.New($substring(arg, (j + 1 >> 0))); + v.bisect = _tuple[0]; + break; + } + j = j + (1) >> 0; + } + _r = lookup(name); /* */ $s = 10; case 10: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = _r.value.Store(v); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 9: /* } */ case 7: eq = -1; @@ -59171,33 +58848,57 @@ $packages["internal/godebug"] = (function() { $s = 1; continue; case 2: $s = -1; return; - /* */ } return; } var $f = {$blk: parse$1, $c: true, $r, _entry, _key, _r, _r$1, _tmp, _tmp$1, _tuple, _tuple$1, did, end, eq, i, name, ok, p, s, v, value, $s};return $f; + /* */ } return; } var $f = {$blk: parse$1, $c: true, $r, _entry, _key, _r, _tmp, _tmp$1, _tuple, arg, did, end, eq, i, j, name, s, v, $s};return $f; + }; + $ptrType(runtimeStderr).prototype.Write = function Write(b) { + var {_r, b, $s, $r, $c} = $restore(this, {b}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + /* */ if (b.$length > 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (b.$length > 0) { */ case 1: + _r = write(2, ($sliceToNativeArray(b)), ((b.$length >> 0))); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + /* } */ case 2: + $s = -1; return [b.$length, $ifaceNil]; + /* */ } return; } var $f = {$blk: Write, $c: true, $r, _r, b, $s};return $f; }; - ptrType$3.methods = [{prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Value", name: "Value", pkg: "", typ: $funcType([], [$String], false)}]; - Setting.init("internal/godebug", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "once", name: "once", embedded: false, exported: false, typ: sync.Once, tag: ""}, {prop: "value", name: "value", embedded: false, exported: false, typ: ptrType$1, tag: ""}]); + write = function() { + $throwRuntimeError("native function not implemented: internal/godebug.write"); + }; + ptrType$5.methods = [{prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Undocumented", name: "Undocumented", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "IncNonDefault", name: "IncNonDefault", pkg: "", typ: $funcType([], [], false)}, {prop: "register", name: "register", pkg: "internal/godebug", typ: $funcType([], [], false)}, {prop: "Value", name: "Value", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$6.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}]; + Setting.init("internal/godebug", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "once", name: "once", embedded: false, exported: false, typ: sync.Once, tag: ""}, {prop: "setting", name: "setting", embedded: true, exported: false, typ: ptrType$2, tag: ""}]); + setting.init("internal/godebug", [{prop: "value", name: "value", embedded: false, exported: false, typ: atomic.Pointer[10 /* internal/godebug.value */], tag: ""}, {prop: "nonDefaultOnce", name: "nonDefaultOnce", embedded: false, exported: false, typ: sync.Once, tag: ""}, {prop: "nonDefault", name: "nonDefault", embedded: false, exported: false, typ: atomic.Uint64, tag: ""}, {prop: "info", name: "info", embedded: false, exported: false, typ: ptrType$3, tag: ""}]); + value.init("internal/godebug", [{prop: "text", name: "text", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "bisect", name: "bisect", embedded: false, exported: false, typ: ptrType$1, tag: ""}]); + runtimeStderr.init("", []); $pkg.$initLinknames = function() { setUpdate = $linknames["runtime.godebug_setUpdate"]; + write = $linknames["runtime.write"]; }; }; $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: - $r = sync.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = atomic.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - cache = new sync.Map.ptr(new sync.Mutex.ptr(0, 0), new atomic.Pointer[20 /* sync.readOnly */].ptr(ptrType.nil), false, 0); - empty = ""; + $r = bisect.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = godebugs.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = atomic.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + cache = new sync.Map.ptr(new sync.Mutex.ptr(0, 0), new atomic.Pointer[30 /* sync.readOnly */].ptr(ptrType.nil), false, 0); + empty = new value.ptr("", ptrType$1.nil); updateMu = new sync.Mutex.ptr(0, 0); - $r = init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + stderr = new runtimeStderr.ptr(); + $r = init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $packages["math/rand"] = (function() { - var $pkg = {}, $init, nosync, godebug, math, rngSource, Source, Source64, Rand, lockedSource, ptrType, ptrType$1, arrayType, ptrType$3, ptrType$4, sliceType, ptrType$5, funcType, sliceType$1, rngCooked, globalRand, randautoseed, kn, wn, fn, ke, we, fe, seedrand, NewSource, newSource, New, read, Seed, Intn, Float64, Read, absInt32, fastrand64; + var $pkg = {}, $init, nosync, godebug, math, atomic, rngSource, Source, Source64, Rand, fastSource, lockedSource, ptrType, arrayType, ptrType$2, ptrType$3, sliceType, ptrType$4, ptrType$5, ptrType$6, funcType, sliceType$1, globalRandGenerator, rngCooked, randautoseed, kn, wn, fn, ke, we, fe, seedrand, NewSource, newSource, New, read, globalRand, Seed, Intn, Float64, Read, absInt32, fastrand64; nosync = $packages["github.com/gopherjs/gopherjs/nosync"]; godebug = $packages["internal/godebug"]; math = $packages["math"]; + atomic = $packages["sync/atomic"]; rngSource = $newType(0, $kindStruct, "rand.rngSource", true, "math/rand", false, function(tap_, feed_, vec_) { this.$val = this; if (arguments.length === 0) { @@ -59226,11 +58927,19 @@ $packages["math/rand"] = (function() { this.readVal = readVal_; this.readPos = readPos_; }); + fastSource = $newType(0, $kindStruct, "rand.fastSource", true, "math/rand", false, function(mu_) { + this.$val = this; + if (arguments.length === 0) { + this.mu = new nosync.Mutex.ptr(false, false, false, false, 0); + return; + } + this.mu = mu_; + }); lockedSource = $newType(0, $kindStruct, "rand.lockedSource", true, "math/rand", false, function(lk_, s_) { this.$val = this; if (arguments.length === 0) { this.lk = new nosync.Mutex.ptr(false, false, false, false, 0); - this.s = ptrType.nil; + this.s = ptrType$6.nil; return; } this.lk = lk_; @@ -59240,15 +58949,17 @@ $packages["math/rand"] = (function() { $pkg.Source = Source; $pkg.Source64 = Source64; $pkg.Rand = Rand; + $pkg.fastSource = fastSource; $pkg.lockedSource = lockedSource; $pkg.$finishSetup = function() { - ptrType = $ptrType(rngSource); - ptrType$1 = $ptrType(Rand); + ptrType = $ptrType(Rand); arrayType = $arrayType($Int64, 607); - ptrType$3 = $ptrType(lockedSource); - ptrType$4 = $ptrType($Int8); + ptrType$2 = $ptrType(lockedSource); + ptrType$3 = $ptrType($Int8); sliceType = $sliceType($Int); + ptrType$4 = $ptrType(fastSource); ptrType$5 = $ptrType($Int64); + ptrType$6 = $ptrType(rngSource); funcType = $funcType([$Int, $Int], [], false); sliceType$1 = $sliceType($Uint8); seedrand = function seedrand$1(x) { @@ -59333,11 +59044,11 @@ $packages["math/rand"] = (function() { var {_tuple, lk, ok, r, seed, $s, $r, $c} = $restore(this, {seed}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: r = this; - _tuple = $assertType(r.src, ptrType$3, true); + _tuple = $assertType(r.src, ptrType$2, true); lk = _tuple[0]; ok = _tuple[1]; if (ok) { - lk.seedPos(seed, (r.$ptr_readPos || (r.$ptr_readPos = new ptrType$4(function() { return this.$target.readPos; }, function($v) { this.$target.readPos = $v; }, r)))); + lk.seedPos(seed, (r === ptrType.nil && $throwNilPointerError(), (r.$ptr_readPos || (r.$ptr_readPos = new ptrType$3(function() { return this.$target.readPos; }, function($v) { this.$target.readPos = $v; }, r))))); $s = -1; return; } $r = r.src.Seed(seed); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } @@ -59569,31 +59280,39 @@ $packages["math/rand"] = (function() { /* */ } return; } var $f = {$blk: Shuffle$1, $c: true, $r, _r, _r$1, i, j, j$1, n, r, swap, x, $s};return $f; }; $ptrType(Rand).prototype.Read = function Read$1(p) { - var {$24r, $24r$1, _r, _r$1, _tuple, _tuple$1, _tuple$2, err, lk, n, ok, p, r, $s, $r, $c} = $restore(this, {p}); + var {$24r, $24r$1, $24r$2, _r, _r$1, _r$2, _ref, _tuple, _tuple$1, _tuple$2, err, n, p, r, src, src$1, $s, $r, $c} = $restore(this, {p}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: n = 0; err = $ifaceNil; r = this; - _tuple = $assertType(r.src, ptrType$3, true); - lk = _tuple[0]; - ok = _tuple[1]; - /* */ if (ok) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (ok) { */ case 1: - _r = lk.read(p, (r.$ptr_readVal || (r.$ptr_readVal = new ptrType$5(function() { return this.$target.readVal; }, function($v) { this.$target.readVal = $v; }, r))), (r.$ptr_readPos || (r.$ptr_readPos = new ptrType$4(function() { return this.$target.readPos; }, function($v) { this.$target.readPos = $v; }, r)))); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple$1 = _r; + _ref = r.src; + /* */ if ($assertType(_ref, ptrType$2, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if ($assertType(_ref, ptrType$2, true)[1]) { */ case 1: + src = _ref.$val; + _r = src.read(p, (r === ptrType.nil && $throwNilPointerError(), (r.$ptr_readVal || (r.$ptr_readVal = new ptrType$5(function() { return this.$target.readVal; }, function($v) { this.$target.readVal = $v; }, r)))), (r === ptrType.nil && $throwNilPointerError(), (r.$ptr_readPos || (r.$ptr_readPos = new ptrType$3(function() { return this.$target.readPos; }, function($v) { this.$target.readPos = $v; }, r))))); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err = _tuple[1]; + $24r = [n, err]; + $s = 5; case 5: return $24r; + /* } else if ($assertType(_ref, ptrType$4, true)[1]) { */ case 2: + src$1 = _ref.$val; + _r$1 = src$1.read(p, (r === ptrType.nil && $throwNilPointerError(), (r.$ptr_readVal || (r.$ptr_readVal = new ptrType$5(function() { return this.$target.readVal; }, function($v) { this.$target.readVal = $v; }, r)))), (r === ptrType.nil && $throwNilPointerError(), (r.$ptr_readPos || (r.$ptr_readPos = new ptrType$3(function() { return this.$target.readPos; }, function($v) { this.$target.readPos = $v; }, r))))); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; n = _tuple$1[0]; err = _tuple$1[1]; - $24r = [n, err]; - $s = 4; case 4: return $24r; - /* } */ case 2: - _r$1 = read(p, r.src, (r.$ptr_readVal || (r.$ptr_readVal = new ptrType$5(function() { return this.$target.readVal; }, function($v) { this.$target.readVal = $v; }, r))), (r.$ptr_readPos || (r.$ptr_readPos = new ptrType$4(function() { return this.$target.readPos; }, function($v) { this.$target.readPos = $v; }, r)))); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$2 = _r$1; + $24r$1 = [n, err]; + $s = 7; case 7: return $24r$1; + /* } */ case 3: + _r$2 = read(p, r.src, (r === ptrType.nil && $throwNilPointerError(), (r.$ptr_readVal || (r.$ptr_readVal = new ptrType$5(function() { return this.$target.readVal; }, function($v) { this.$target.readVal = $v; }, r)))), (r === ptrType.nil && $throwNilPointerError(), (r.$ptr_readPos || (r.$ptr_readPos = new ptrType$3(function() { return this.$target.readPos; }, function($v) { this.$target.readPos = $v; }, r))))); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$2 = _r$2; n = _tuple$2[0]; err = _tuple$2[1]; - $24r$1 = [n, err]; - $s = 6; case 6: return $24r$1; - /* */ } return; } var $f = {$blk: Read$1, $c: true, $r, $24r, $24r$1, _r, _r$1, _tuple, _tuple$1, _tuple$2, err, lk, n, ok, p, r, $s};return $f; + $24r$2 = [n, err]; + $s = 9; case 9: return $24r$2; + /* */ } return; } var $f = {$blk: Read$1, $c: true, $r, $24r, $24r$1, $24r$2, _r, _r$1, _r$2, _ref, _tuple, _tuple$1, _tuple$2, err, n, p, r, src, src$1, $s};return $f; }; read = function read$1(p, src, readVal, readPos) { var {_r, _tuple, err, n, p, pos, readPos, readVal, rng, src, val, $s, $r, $c} = $restore(this, {p, src, readVal, readPos}); @@ -59602,7 +59321,7 @@ $packages["math/rand"] = (function() { err = $ifaceNil; pos = readPos.$get(); val = readVal.$get(); - _tuple = $assertType(src, ptrType, true); + _tuple = $assertType(src, ptrType$6, true); rng = _tuple[0]; n = 0; /* while (true) { */ case 1: @@ -59610,9 +59329,9 @@ $packages["math/rand"] = (function() { /* */ if (pos === 0) { $s = 3; continue; } /* */ $s = 4; continue; /* if (pos === 0) { */ case 3: - /* */ if (!(rng === ptrType.nil)) { $s = 5; continue; } + /* */ if (!(rng === ptrType$6.nil)) { $s = 5; continue; } /* */ $s = 6; continue; - /* if (!(rng === ptrType.nil)) { */ case 5: + /* if (!(rng === ptrType$6.nil)) { */ case 5: val = rng.Int63(); $s = 7; continue; /* } else { */ case 6: @@ -59632,96 +59351,147 @@ $packages["math/rand"] = (function() { $s = -1; return [n, err]; /* */ } return; } var $f = {$blk: read$1, $c: true, $r, _r, _tuple, err, n, p, pos, readPos, readVal, rng, src, val, $s};return $f; }; - Seed = function Seed$3(seed) { - var {seed, $s, $r, $c} = $restore(this, {seed}); + globalRand = function globalRand$1() { + var {_r, r, r$1, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = globalRand.Seed(seed); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: Seed$3, $c: true, $r, seed, $s};return $f; + r = globalRandGenerator.Load(); + if (!(r === ptrType.nil)) { + $s = -1; return r; + } + r$1 = ptrType.nil; + _r = randautoseed.Value(); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r === "0") { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r === "0") { */ case 1: + $r = randautoseed.IncNonDefault(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + r$1 = New(new lockedSource.ptr(new nosync.Mutex.ptr(false, false, false, false, 0), ptrType$6.nil)); + $r = r$1.Seed(new $Int64(0, 1)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 3; continue; + /* } else { */ case 2: + r$1 = new Rand.ptr(new fastSource.ptr(new nosync.Mutex.ptr(false, false, false, false, 0)), new fastSource.ptr(new nosync.Mutex.ptr(false, false, false, false, 0)), new $Int64(0, 0), 0); + /* } */ case 3: + if (!globalRandGenerator.CompareAndSwap(ptrType.nil, r$1)) { + $s = -1; return globalRandGenerator.Load(); + } + $s = -1; return r$1; + /* */ } return; } var $f = {$blk: globalRand$1, $c: true, $r, _r, r, r$1, $s};return $f; }; - $pkg.Seed = Seed; - Intn = function Intn$2(n) { - var {$24r, _r, n, $s, $r, $c} = $restore(this, {n}); + $ptrType(fastSource).prototype.Int63 = function Int63$3() { + var {$24r, _r, x, x$1, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = globalRand.Intn(n); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; + _r = fastrand64(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = ((x = (x$1 = _r, new $Uint64(x$1.$high & 2147483647, (x$1.$low & 4294967295) >>> 0)), new $Int64(x.$high, x.$low))); $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Intn$2, $c: true, $r, $24r, _r, n, $s};return $f; + /* */ } return; } var $f = {$blk: Int63$3, $c: true, $r, $24r, _r, x, x$1, $s};return $f; }; - $pkg.Intn = Intn; - Float64 = function Float64$2() { + $ptrType(fastSource).prototype.Seed = function Seed$3(param) { + var param; + $panic(new $String("internal error: call to fastSource.Seed")); + }; + $ptrType(fastSource).prototype.Uint64 = function Uint64$4() { var {$24r, _r, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = globalRand.Float64(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = fastrand64(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $24r = _r; $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Float64$2, $c: true, $r, $24r, _r, $s};return $f; + /* */ } return; } var $f = {$blk: Uint64$4, $c: true, $r, $24r, _r, $s};return $f; }; - $pkg.Float64 = Float64; - Read = function Read$2(p) { - var {$24r, _r, _tuple, err, n, p, $s, $r, $c} = $restore(this, {p}); + $ptrType(fastSource).prototype.read = function read$2(p, readVal, readPos) { + var {_r, _tuple, err, fs, n, p, readPos, readVal, $s, $r, $c} = $restore(this, {p, readVal, readPos}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: n = 0; err = $ifaceNil; - _r = globalRand.Read(p); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + fs = this; + fs.mu.Lock(); + _r = read(p, fs, readVal, readPos); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; n = _tuple[0]; err = _tuple[1]; - $24r = [n, err]; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Read$2, $c: true, $r, $24r, _r, _tuple, err, n, p, $s};return $f; + fs.mu.Unlock(); + $s = -1; return [n, err]; + /* */ } return; } var $f = {$blk: read$2, $c: true, $r, _r, _tuple, err, fs, n, p, readPos, readVal, $s};return $f; }; - $pkg.Read = Read; - $ptrType(lockedSource).prototype.source = function source() { - var {_r, _r$1, r, seed, x, $s, $r, $c} = $restore(this, {}); + Seed = function Seed$4(seed) { + var {_tuple, ok, orig, r, seed, $s, $r, $c} = $restore(this, {seed}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - r = this; - /* */ if (r.s === ptrType.nil) { $s = 1; continue; } + orig = globalRandGenerator.Load(); + /* */ if (!(orig === ptrType.nil)) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (r.s === ptrType.nil) { */ case 1: - seed = new $Int64(0, 0); - _r = randautoseed.Value(); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - /* */ if (_r === "0") { $s = 3; continue; } + /* if (!(orig === ptrType.nil)) { */ case 1: + _tuple = $assertType(orig.src, ptrType$2, true); + ok = _tuple[1]; + /* */ if (ok) { $s = 3; continue; } /* */ $s = 4; continue; - /* if (_r === "0") { */ case 3: - seed = new $Int64(0, 1); - $s = 5; continue; - /* } else { */ case 4: - _r$1 = fastrand64(); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - seed = ((x = _r$1, new $Int64(x.$high, x.$low))); - /* } */ case 5: - r.s = newSource(seed); + /* if (ok) { */ case 3: + $r = orig.Seed(seed); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 4: /* } */ case 2: - $s = -1; return r.s; - /* */ } return; } var $f = {$blk: source, $c: true, $r, _r, _r$1, r, seed, x, $s};return $f; + r = New(new lockedSource.ptr(new nosync.Mutex.ptr(false, false, false, false, 0), ptrType$6.nil)); + $r = r.Seed(seed); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!globalRandGenerator.CompareAndSwap(orig, r)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!globalRandGenerator.CompareAndSwap(orig, r)) { */ case 7: + $r = Seed(seed); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 8: + $s = -1; return; + /* */ } return; } var $f = {$blk: Seed$4, $c: true, $r, _tuple, ok, orig, r, seed, $s};return $f; + }; + $pkg.Seed = Seed; + Intn = function Intn$2(n) { + var {$24r, _r, _r$1, n, $s, $r, $c} = $restore(this, {n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = globalRand(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = _r.Intn(n); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: Intn$2, $c: true, $r, $24r, _r, _r$1, n, $s};return $f; + }; + $pkg.Intn = Intn; + Float64 = function Float64$2() { + var {$24r, _r, _r$1, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = globalRand(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = _r.Float64(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: Float64$2, $c: true, $r, $24r, _r, _r$1, $s};return $f; }; - $ptrType(lockedSource).prototype.Int63 = function Int63$4() { - var {_r, _r$1, n, r, $s, $r, $c} = $restore(this, {}); + $pkg.Float64 = Float64; + Read = function Read$2(p) { + var {$24r, _r, _r$1, _tuple, err, n, p, $s, $r, $c} = $restore(this, {p}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + _r = globalRand(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = _r.Read(p); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + n = _tuple[0]; + err = _tuple[1]; + $24r = [n, err]; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: Read$2, $c: true, $r, $24r, _r, _r$1, _tuple, err, n, p, $s};return $f; + }; + $pkg.Read = Read; + $ptrType(lockedSource).prototype.Int63 = function Int63$5() { + var n, r; n = new $Int64(0, 0); r = this; r.lk.Lock(); - _r = r.source(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = _r.Int63(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - n = _r$1; + n = r.s.Int63(); r.lk.Unlock(); - $s = -1; return n; - /* */ } return; } var $f = {$blk: Int63$4, $c: true, $r, _r, _r$1, n, r, $s};return $f; + return n; }; - $ptrType(lockedSource).prototype.Uint64 = function Uint64$5() { - var {_r, _r$1, n, r, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $ptrType(lockedSource).prototype.Uint64 = function Uint64$6() { + var n, r; n = new $Uint64(0, 0); r = this; r.lk.Lock(); - _r = r.source(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = _r.Uint64(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - n = _r$1; + n = r.s.Uint64(); r.lk.Unlock(); - $s = -1; return n; - /* */ } return; } var $f = {$blk: Uint64$5, $c: true, $r, _r, _r$1, n, r, $s};return $f; + return n; }; - $ptrType(lockedSource).prototype.Seed = function Seed$4(seed) { + $ptrType(lockedSource).prototype.Seed = function Seed$5(seed) { var r, seed; r = this; r.lk.Lock(); @@ -59739,31 +59509,26 @@ $packages["math/rand"] = (function() { $ptrType(lockedSource).prototype.seed = function seed(seed$1) { var r, seed$1; r = this; - if (r.s === ptrType.nil) { + if (r.s === ptrType$6.nil) { r.s = newSource(seed$1); } else { r.s.Seed(seed$1); } }; - $ptrType(lockedSource).prototype.read = function read$2(p, readVal, readPos) { - var {_arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _tuple, err, n, p, r, readPos, readVal, $s, $r, $c} = $restore(this, {p, readVal, readPos}); + $ptrType(lockedSource).prototype.read = function read$3(p, readVal, readPos) { + var {_r, _tuple, err, n, p, r, readPos, readVal, $s, $r, $c} = $restore(this, {p, readVal, readPos}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: n = 0; err = $ifaceNil; r = this; r.lk.Lock(); - _arg = p; - _r = r.source(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _arg$1 = _r; - _arg$2 = readVal; - _arg$3 = readPos; - _r$1 = read(_arg, _arg$1, _arg$2, _arg$3); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; + _r = read(p, r.s, readVal, readPos); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; n = _tuple[0]; err = _tuple[1]; r.lk.Unlock(); $s = -1; return [n, err]; - /* */ } return; } var $f = {$blk: read$2, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _tuple, err, n, p, r, readPos, readVal, $s};return $f; + /* */ } return; } var $f = {$blk: read$3, $c: true, $r, _r, _tuple, err, n, p, r, readPos, readVal, $s};return $f; }; absInt32 = function absInt32$1(i) { var i; @@ -59849,14 +59614,16 @@ $packages["math/rand"] = (function() { $s = -1; return 0; /* */ } return; } var $f = {$blk: ExpFloat64$2, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, i, j, r, x, x$1, $s};return $f; }; - ptrType.methods = [{prop: "Seed", name: "Seed", pkg: "", typ: $funcType([$Int64], [], false)}, {prop: "Int63", name: "Int63", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([], [$Uint64], false)}]; - ptrType$1.methods = [{prop: "Seed", name: "Seed", pkg: "", typ: $funcType([$Int64], [], false)}, {prop: "Int63", name: "Int63", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Uint32", name: "Uint32", pkg: "", typ: $funcType([], [$Uint32], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "Int31", name: "Int31", pkg: "", typ: $funcType([], [$Int32], false)}, {prop: "Int", name: "Int", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Int63n", name: "Int63n", pkg: "", typ: $funcType([$Int64], [$Int64], false)}, {prop: "Int31n", name: "Int31n", pkg: "", typ: $funcType([$Int32], [$Int32], false)}, {prop: "int31n", name: "int31n", pkg: "math/rand", typ: $funcType([$Int32], [$Int32], false)}, {prop: "Intn", name: "Intn", pkg: "", typ: $funcType([$Int], [$Int], false)}, {prop: "Float64", name: "Float64", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Float32", name: "Float32", pkg: "", typ: $funcType([], [$Float32], false)}, {prop: "Perm", name: "Perm", pkg: "", typ: $funcType([$Int], [sliceType], false)}, {prop: "Shuffle", name: "Shuffle", pkg: "", typ: $funcType([$Int, funcType], [], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "NormFloat64", name: "NormFloat64", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "ExpFloat64", name: "ExpFloat64", pkg: "", typ: $funcType([], [$Float64], false)}]; - ptrType$3.methods = [{prop: "source", name: "source", pkg: "math/rand", typ: $funcType([], [ptrType], false)}, {prop: "Int63", name: "Int63", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "Seed", name: "Seed", pkg: "", typ: $funcType([$Int64], [], false)}, {prop: "seedPos", name: "seedPos", pkg: "math/rand", typ: $funcType([$Int64, ptrType$4], [], false)}, {prop: "seed", name: "seed", pkg: "math/rand", typ: $funcType([$Int64], [], false)}, {prop: "read", name: "read", pkg: "math/rand", typ: $funcType([sliceType$1, ptrType$5, ptrType$4], [$Int, $error], false)}]; + ptrType$6.methods = [{prop: "Seed", name: "Seed", pkg: "", typ: $funcType([$Int64], [], false)}, {prop: "Int63", name: "Int63", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([], [$Uint64], false)}]; + ptrType.methods = [{prop: "Seed", name: "Seed", pkg: "", typ: $funcType([$Int64], [], false)}, {prop: "Int63", name: "Int63", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Uint32", name: "Uint32", pkg: "", typ: $funcType([], [$Uint32], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "Int31", name: "Int31", pkg: "", typ: $funcType([], [$Int32], false)}, {prop: "Int", name: "Int", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Int63n", name: "Int63n", pkg: "", typ: $funcType([$Int64], [$Int64], false)}, {prop: "Int31n", name: "Int31n", pkg: "", typ: $funcType([$Int32], [$Int32], false)}, {prop: "int31n", name: "int31n", pkg: "math/rand", typ: $funcType([$Int32], [$Int32], false)}, {prop: "Intn", name: "Intn", pkg: "", typ: $funcType([$Int], [$Int], false)}, {prop: "Float64", name: "Float64", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Float32", name: "Float32", pkg: "", typ: $funcType([], [$Float32], false)}, {prop: "Perm", name: "Perm", pkg: "", typ: $funcType([$Int], [sliceType], false)}, {prop: "Shuffle", name: "Shuffle", pkg: "", typ: $funcType([$Int, funcType], [], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "NormFloat64", name: "NormFloat64", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "ExpFloat64", name: "ExpFloat64", pkg: "", typ: $funcType([], [$Float64], false)}]; + ptrType$4.methods = [{prop: "Int63", name: "Int63", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Seed", name: "Seed", pkg: "", typ: $funcType([$Int64], [], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "read", name: "read", pkg: "math/rand", typ: $funcType([sliceType$1, ptrType$5, ptrType$3], [$Int, $error], false)}]; + ptrType$2.methods = [{prop: "Int63", name: "Int63", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "Seed", name: "Seed", pkg: "", typ: $funcType([$Int64], [], false)}, {prop: "seedPos", name: "seedPos", pkg: "math/rand", typ: $funcType([$Int64, ptrType$3], [], false)}, {prop: "seed", name: "seed", pkg: "math/rand", typ: $funcType([$Int64], [], false)}, {prop: "read", name: "read", pkg: "math/rand", typ: $funcType([sliceType$1, ptrType$5, ptrType$3], [$Int, $error], false)}]; rngSource.init("math/rand", [{prop: "tap", name: "tap", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "feed", name: "feed", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "vec", name: "vec", embedded: false, exported: false, typ: arrayType, tag: ""}]); Source.init([{prop: "Int63", name: "Int63", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Seed", name: "Seed", pkg: "", typ: $funcType([$Int64], [], false)}]); Source64.init([{prop: "Int63", name: "Int63", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Seed", name: "Seed", pkg: "", typ: $funcType([$Int64], [], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([], [$Uint64], false)}]); Rand.init("math/rand", [{prop: "src", name: "src", embedded: false, exported: false, typ: Source, tag: ""}, {prop: "s64", name: "s64", embedded: false, exported: false, typ: Source64, tag: ""}, {prop: "readVal", name: "readVal", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "readPos", name: "readPos", embedded: false, exported: false, typ: $Int8, tag: ""}]); - lockedSource.init("math/rand", [{prop: "lk", name: "lk", embedded: false, exported: false, typ: nosync.Mutex, tag: ""}, {prop: "s", name: "s", embedded: false, exported: false, typ: ptrType, tag: ""}]); + fastSource.init("math/rand", [{prop: "mu", name: "mu", embedded: false, exported: false, typ: nosync.Mutex, tag: ""}]); + lockedSource.init("math/rand", [{prop: "lk", name: "lk", embedded: false, exported: false, typ: nosync.Mutex, tag: ""}, {prop: "s", name: "s", embedded: false, exported: false, typ: ptrType$6, tag: ""}]); $pkg.$initLinknames = function() { fastrand64 = $linknames["runtime.fastrand64"]; }; @@ -59867,8 +59634,9 @@ $packages["math/rand"] = (function() { $r = nosync.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = godebug.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = math.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = atomic.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + globalRandGenerator = new atomic.Pointer[20 /* math/rand.Rand */].ptr(ptrType.nil); rngCooked = $toNativeArray($kindInt64, [new $Int64(-973649357, 3952672746), new $Int64(-1065661887, 3130416987), new $Int64(324977939, 3414273807), new $Int64(1241840476, 2806224363), new $Int64(-1477934308, 1997590414), new $Int64(2103305448, 2402795971), new $Int64(1663160183, 1140819369), new $Int64(1120601685, 1788868961), new $Int64(1848035537, 1089001426), new $Int64(1235702047, 873593504), new $Int64(1911387977, 581324885), new $Int64(-1654874170, 1609182556), new $Int64(1069394745, 1241596776), new $Int64(1895445337, 1771189259), new $Int64(-1374618802, 3467012610), new $Int64(-140526423, 2344407434), new $Int64(-1745367887, 782467244), new $Int64(26335124, 3404933915), new $Int64(1063924276, 618867887), new $Int64(-968700782, 520164395), new $Int64(-1591572833, 1341358184), new $Int64(-1515085039, 665794848), new $Int64(1527227641, 3183648150), new $Int64(1781176124, 696329606), new $Int64(1789146075, 4151988961), new $Int64(-2087444114, 998951326), new $Int64(-612324923, 1364957564), new $Int64(63173359, 4090230633), new $Int64(-1498029007, 4009697548), new $Int64(248009524, 2569622517), new $Int64(778703922, 3742421481), new $Int64(-1109106023, 1506914633), new $Int64(1738099768, 1983412561), new $Int64(236311649, 1436266083), new $Int64(-1111517500, 3922894967), new $Int64(-1336974714, 1792680179), new $Int64(563141142, 1188796351), new $Int64(1349617468, 405968250), new $Int64(1044074554, 433754187), new $Int64(870549669, 4073162024), new $Int64(-1094251604, 433121399), new $Int64(2451824, 4162580594), new $Int64(-137262572, 4132415622), new $Int64(-1536231048, 3033822028), new $Int64(2016407895, 824682382), new $Int64(2366218, 3583765414), new $Int64(-624604839, 535386927), new $Int64(1637219058, 2286693689), new $Int64(1453075389, 2968466525), new $Int64(193683513, 1351410206), new $Int64(-283806096, 1412813499), new $Int64(492736522, 4126267639), new $Int64(512765208, 2105529399), new $Int64(2132966268, 2413882233), new $Int64(947457634, 32226200), new $Int64(1149341356, 2032329073), new $Int64(106485445, 1356518208), new $Int64(-2067810156, 3430061722), new $Int64(-1484435135, 3820169661), new $Int64(-1665985194, 2981816134), new $Int64(1017155588, 4184371017), new $Int64(206574701, 2119206761), new $Int64(-852109057, 2472200560), new $Int64(-560457548, 2853524696), new $Int64(1307803389, 1681119904), new $Int64(-174986835, 95608918), new $Int64(392686347, 3690479145), new $Int64(-1205570926, 1397922290), new $Int64(-1159314025, 1516129515), new $Int64(-320178155, 1547420459), new $Int64(1311333971, 1470949486), new $Int64(-1953469798, 1336785672), new $Int64(-45086614, 4131677129), new $Int64(-1392278100, 4246329084), new $Int64(-1142500187, 3788585631), new $Int64(-66478285, 3080389532), new $Int64(-646438364, 2215402037), new $Int64(391002300, 1171593935), new $Int64(1408774047, 1423855166), new $Int64(-519177718, 2276716302), new $Int64(-368453140, 2068027241), new $Int64(1369359303, 3427553297), new $Int64(189241615, 3289637845), new $Int64(1057480830, 3486407650), new $Int64(-1512910664, 3071877822), new $Int64(1159653919, 3363620705), new $Int64(-934256930, 4159821533), new $Int64(-76621938, 1894661), new $Int64(-674493898, 1156868282), new $Int64(348271067, 776219088), new $Int64(-501428838, 2425634259), new $Int64(1716021749, 680510161), new $Int64(-574263456, 1310101429), new $Int64(1095885995, 2964454134), new $Int64(-325695512, 3467098407), new $Int64(1990672920, 2109628894), new $Int64(-2139648704, 1232604732), new $Int64(-1838070714, 3261916179), new $Int64(1699175360, 434597899), new $Int64(235436061, 1624796439), new $Int64(-1626402839, 3589632480), new $Int64(1198416575, 864579159), new $Int64(-1938748161, 1380889830), new $Int64(619206309, 2654509477), new $Int64(1419738251, 1468209306), new $Int64(-1744284772, 100794388), new $Int64(-1191421458, 2991674471), new $Int64(-208666741, 2224662036), new $Int64(-173659161, 977097250), new $Int64(1351320195, 726419512), new $Int64(-183459897, 1747974366), new $Int64(-753095183, 1556430604), new $Int64(-1049492215, 1080776742), new $Int64(-385846958, 280794874), new $Int64(117767733, 919835643), new $Int64(-967009426, 3434019658), new $Int64(-1951414480, 2461941785), new $Int64(133215641, 3615001066), new $Int64(417204809, 3103414427), new $Int64(790056561, 3380809712), new $Int64(-1267681408, 2724693469), new $Int64(547796833, 598827710), new $Int64(-1846559452, 3452273442), new $Int64(-75778224, 649274915), new $Int64(-801301329, 2585724112), new $Int64(-1510934263, 3165579553), new $Int64(1185578221, 2635894283), new $Int64(-52910178, 2053289721), new $Int64(985976581, 3169337108), new $Int64(1170569632, 144717764), new $Int64(1079216270, 1383666384), new $Int64(-124804942, 681540375), new $Int64(1375448925, 537050586), new $Int64(-1964768344, 315246468), new $Int64(226402871, 849323088), new $Int64(-885062465, 45543944), new $Int64(-946445250, 2319052083), new $Int64(-40708194, 3613090841), new $Int64(560472520, 2992171180), new $Int64(-381863169, 2068244785), new $Int64(917538188, 4239862634), new $Int64(-1369555809, 3892253031), new $Int64(720683925, 958186149), new $Int64(-423297785, 1877702262), new $Int64(1357886971, 837674867), new $Int64(1837048883, 1507589294), new $Int64(1905518400, 873336795), new $Int64(-1879761037, 2764496274), new $Int64(-1806480530, 4196182374), new $Int64(-1066765755, 550964545), new $Int64(818747069, 420611474), new $Int64(-1924830376, 204265180), new $Int64(1549974541, 1787046383), new $Int64(1215581865, 3102292318), new $Int64(418321538, 1552199393), new $Int64(1243493047, 980542004), new $Int64(267284263, 3293718720), new $Int64(1179528763, 3771917473), new $Int64(599484404, 2195808264), new $Int64(252818753, 3894702887), new $Int64(-1367475956, 2099949527), new $Int64(1424094358, 338442522), new $Int64(490737398, 637158004), new $Int64(-1727621530, 281976339), new $Int64(574970164, 3619802330), new $Int64(-431930823, 3084554784), new $Int64(-1264611183, 4129772886), new $Int64(-2104399043, 1680378557), new $Int64(-1621962591, 3339087776), new $Int64(1680500332, 4220317857), new $Int64(-1935828963, 2959322499), new $Int64(1675600481, 1488354890), new $Int64(-834863562, 3958162143), new $Int64(-1226511573, 2773705983), new $Int64(1876039582, 225908689), new $Int64(-1183735113, 908216283), new $Int64(-605696219, 3574646075), new $Int64(-1827723091, 1936937569), new $Int64(1519770881, 75492235), new $Int64(816689472, 1935193178), new $Int64(2142521206, 2018250883), new $Int64(455141620, 3943126022), new $Int64(-601399488, 3066544345), new $Int64(1932392669, 2793082663), new $Int64(-1239009361, 3297036421), new $Int64(1640597065, 2206987825), new $Int64(-553246738, 807894872), new $Int64(-1781325307, 766252117), new $Int64(2060649606, 3833114345), new $Int64(845619743, 1255067973), new $Int64(1201145605, 741697208), new $Int64(-1476242608, 2810093753), new $Int64(1109032642, 4229340371), new $Int64(1462188720, 1361684224), new $Int64(-1159399429, 1906263026), new $Int64(475781207, 3904421704), new $Int64(-623537128, 1769075545), new $Int64(1062308525, 2621599764), new $Int64(1279509432, 3431891480), new $Int64(-1742751146, 1871896503), new $Int64(128756421, 1412808876), new $Int64(1605404688, 952876175), new $Int64(-230443691, 1824438899), new $Int64(1662295856, 1005035476), new $Int64(-156574141, 527508597), new $Int64(1288873303, 3066806859), new $Int64(565995893, 3244940914), new $Int64(-889746188, 209092916), new $Int64(-247669406, 1242699167), new $Int64(-713830396, 456723774), new $Int64(1776978905, 1001252870), new $Int64(1468772157, 2026725874), new $Int64(857254202, 2137562569), new $Int64(765939740, 3183366709), new $Int64(1533887628, 2612072960), new $Int64(56977098, 1727148468), new $Int64(-1197583895, 3803658212), new $Int64(1883670356, 479946959), new $Int64(685713571, 1562982345), new $Int64(-1946242443, 1766109365), new $Int64(700596547, 3257093788), new $Int64(-184714929, 2365720207), new $Int64(93384808, 3742754173), new $Int64(-458385235, 2878193673), new $Int64(1096135042, 2174002182), new $Int64(-834260953, 3573511231), new $Int64(-754572527, 1760299077), new $Int64(-1375627191, 2260779833), new $Int64(-866019274, 1452805722), new $Int64(-1229671918, 2940011802), new $Int64(1890251082, 1886183802), new $Int64(893897673, 2514369088), new $Int64(1644345561, 3924317791), new $Int64(-1974867432, 500935732), new $Int64(1403501753, 676580929), new $Int64(-1565912283, 1184984890), new $Int64(-691968413, 1271474274), new $Int64(-1828754738, 3163791473), new $Int64(2051027584, 2842487377), new $Int64(1511537551, 2170968612), new $Int64(573262976, 3535856740), new $Int64(-2053227187, 1488599718), new $Int64(-1180531831, 3408913763), new $Int64(-2086531912, 2501050084), new $Int64(-875130448, 1639124157), new $Int64(-2009482504, 4088176393), new $Int64(1574896563, 3989947576), new $Int64(-165243708, 3414355209), new $Int64(-792329287, 2275136352), new $Int64(-2057774345, 2151835223), new $Int64(-931144933, 1654534827), new $Int64(-679921451, 377892833), new $Int64(-482716010, 660204544), new $Int64(85706799, 390828249), new $Int64(-1422172693, 3402783878), new $Int64(-1468634160, 3717936603), new $Int64(1113532086, 2211058823), new $Int64(1564224320, 2692150867), new $Int64(1952770442, 1928910388), new $Int64(788716862, 3931011137), new $Int64(1083670504, 1112701047), new $Int64(-68150572, 2452299106), new $Int64(-896164822, 2337204777), new $Int64(1774877857, 273889282), new $Int64(1798719843, 1462008793), new $Int64(2138834788, 1554494002), new $Int64(-1194967131, 182675323), new $Int64(-1598554764, 1882802136), new $Int64(589279648, 3700220025), new $Int64(381039426, 3083431543), new $Int64(-851859191, 3622207527), new $Int64(338126939, 432729309), new $Int64(-1667470126, 2391914317), new $Int64(-1849558151, 235747924), new $Int64(2120733629, 3088823825), new $Int64(-745079795, 2314658321), new $Int64(1165929723, 2957634338), new $Int64(501323675, 4117056981), new $Int64(1564699815, 1482500298), new $Int64(-740826490, 840489337), new $Int64(799522364, 3483178565), new $Int64(532129761, 2074004656), new $Int64(724246478, 3643392642), new $Int64(-665153481, 1583624461), new $Int64(-885822954, 287473085), new $Int64(1667835381, 3136843981), new $Int64(1138806821, 1266970974), new $Int64(135185781, 1998688839), new $Int64(392094735, 1492900209), new $Int64(1031326774, 1538112737), new $Int64(-2070568842, 2207265429), new $Int64(-1886797613, 963263315), new $Int64(1671145500, 2295892134), new $Int64(1068469660, 2002560897), new $Int64(-356250305, 1369254035), new $Int64(33436120, 3353312708), new $Int64(57507843, 947771099), new $Int64(-1945755145, 1747061399), new $Int64(1507240140, 2047354631), new $Int64(720000810, 4165367136), new $Int64(479265078, 3388864963), new $Int64(-952181250, 286492130), new $Int64(2045622690, 2795735007), new $Int64(-715730566, 3703961339), new $Int64(-148436487, 1797825479), new $Int64(1429039600, 1116589674), new $Int64(-1665420098, 2593309206), new $Int64(1329049334, 3404995677), new $Int64(-750579440, 3453462936), new $Int64(1014767077, 3016498634), new $Int64(75698599, 1650371545), new $Int64(1592007860, 212344364), new $Int64(1127766888, 3843932156), new $Int64(-748019856, 3573129983), new $Int64(-890581831, 665897820), new $Int64(1071492673, 1675628772), new $Int64(243225682, 2831752928), new $Int64(2120298836, 1486294219), new $Int64(-1954407413, 268782709), new $Int64(-1002123503, 4186179080), new $Int64(624342951, 1613720397), new $Int64(857179861, 2703686015), new $Int64(-911618704, 2205342611), new $Int64(-672703993, 1411666394), new $Int64(-1528454899, 677744900), new $Int64(-1876628533, 4172867247), new $Int64(135494707, 2163418403), new $Int64(849547544, 2841526879), new $Int64(-1117516959, 1082141470), new $Int64(-1770111792, 4046134367), new $Int64(51415528, 2142943655), new $Int64(-249824333, 3124627521), new $Int64(998228909, 219992939), new $Int64(-1078790951, 1756846531), new $Int64(1283749206, 1225118210), new $Int64(-525858006, 1647770243), new $Int64(-2035959705, 444807907), new $Int64(2036369448, 3952076173), new $Int64(53201823, 1461839639), new $Int64(315761893, 3699250910), new $Int64(702974850, 1373688981), new $Int64(734022261, 147523747), new $Int64(-2047330906, 1211276581), new $Int64(1294440951, 2548832680), new $Int64(1144696256, 1995631888), new $Int64(-1992983070, 2011457303), new $Int64(-1351022674, 3057425772), new $Int64(667839456, 81484597), new $Int64(-1681980888, 3646681560), new $Int64(-1372462725, 635548515), new $Int64(602489502, 2508044581), new $Int64(-1794220117, 1014917157), new $Int64(719992433, 3214891315), new $Int64(-1294799037, 959582252), new $Int64(226415134, 3347040449), new $Int64(-362868096, 4102971975), new $Int64(397887437, 4078022210), new $Int64(-536803826, 2851767182), new $Int64(-1398321012, 1540160644), new $Int64(-1549098876, 1057290595), new $Int64(-112592988, 3907769253), new $Int64(579300318, 4248952684), new $Int64(-1054576049, 132554364), new $Int64(-1085862414, 1029351092), new $Int64(697840928, 2583007416), new $Int64(298619124, 1486185789), new $Int64(55905697, 2871589073), new $Int64(2017643612, 723203291), new $Int64(146250550, 2494333952), new $Int64(-1082993397, 2230939180), new $Int64(-1804568072, 3943232912), new $Int64(1768732449, 2181367922), new $Int64(-729261111, 2889274791), new $Int64(1824032949, 2046728161), new $Int64(1653899792, 1376052477), new $Int64(1022327048, 381236993), new $Int64(-1113097690, 3188942166), new $Int64(-74480109, 350070824), new $Int64(144881592, 61758415), new $Int64(-741824226, 3492950336), new $Int64(-2030042720, 3093818430), new $Int64(-453590535, 2962480613), new $Int64(-1912050708, 3154871160), new $Int64(-1636478569, 3228564679), new $Int64(610731502, 888276216), new $Int64(-946702974, 3574998604), new $Int64(-1277068380, 1967526716), new $Int64(-1556147941, 1554691298), new $Int64(-1573024234, 339944798), new $Int64(1223764147, 1154515356), new $Int64(1825645307, 967516237), new $Int64(1546195135, 596588202), new $Int64(-1867600880, 3764362170), new $Int64(-1655392592, 266611402), new $Int64(-393255880, 2047856075), new $Int64(-1000726433, 21444105), new $Int64(-949424754, 3065563181), new $Int64(-232418803, 1140663212), new $Int64(633187674, 2323741028), new $Int64(2126290159, 3103873707), new $Int64(1008658319, 2766828349), new $Int64(-485587503, 1970872996), new $Int64(1628585413, 3766615585), new $Int64(-595148528, 2036813414), new $Int64(-1994877121, 3105536507), new $Int64(13954645, 3396176938), new $Int64(-721402003, 1377154485), new $Int64(-61839181, 3807014186), new $Int64(543009040, 3710110597), new $Int64(-1751425519, 916420443), new $Int64(734556788, 2103831255), new $Int64(-1766161494, 717331943), new $Int64(-1574598896, 3550505941), new $Int64(45939673, 378749927), new $Int64(-1997615719, 611017331), new $Int64(592130075, 758907650), new $Int64(1012992349, 154266815), new $Int64(-1040454942, 1407468696), new $Int64(-1678191250, 970098704), new $Int64(-285057486, 1971660656), new $Int64(998365243, 3332747885), new $Int64(1947089649, 1935189867), new $Int64(1510248801, 203520055), new $Int64(-1305165746, 3916463034), new $Int64(-388598655, 3474113316), new $Int64(1036101639, 316544223), new $Int64(-1773744891, 1650844677), new $Int64(-907191419, 4267565603), new $Int64(-1070275024, 2501167616), new $Int64(-1520651863, 3929401789), new $Int64(-2091360852, 337170252), new $Int64(-960502090, 2061966842), new $Int64(-304190848, 2508461464), new $Int64(-1941471116, 2791377107), new $Int64(1240791848, 1227227588), new $Int64(1813978778, 1709681848), new $Int64(1153692192, 3768820575), new $Int64(-1002297449, 2887126398), new $Int64(-1447111334, 296561685), new $Int64(700300844, 3729960077), new $Int64(-1572311344, 372833036), new $Int64(2078875613, 2409779288), new $Int64(1829161290, 555274064), new $Int64(-1105595719, 4239804901), new $Int64(1839403216, 3723486978), new $Int64(-1649093095, 2145871984), new $Int64(-1582765715, 3565480803), new $Int64(-1568653827, 2197313814), new $Int64(974785092, 3613674566), new $Int64(438638731, 3042093666), new $Int64(-96556264, 3324034321), new $Int64(869420878, 3708873369), new $Int64(946682149, 1698090092), new $Int64(1618900382, 4213940712), new $Int64(-1843479747, 2087477361), new $Int64(-1766167800, 2407950639), new $Int64(-1296225558, 3942568569), new $Int64(-1223900450, 4088074412), new $Int64(723260036, 2964773675), new $Int64(-673921829, 1539178386), new $Int64(1062961552, 2694849566), new $Int64(460977733, 2120273838), new $Int64(-1604570740, 2484608657), new $Int64(880846449, 2956190677), new $Int64(1970902366, 4223313749), new $Int64(662161910, 3502682327), new $Int64(705634754, 4133891139), new $Int64(-1031359300, 1166449596), new $Int64(1038247601, 3362705993), new $Int64(93734798, 3892921029), new $Int64(1876124043, 786869787), new $Int64(1057490746, 1046342263), new $Int64(242763728, 493777327), new $Int64(-853573201, 3304827646), new $Int64(616460742, 125356352), new $Int64(499300063, 74094113), new $Int64(-795586925, 2500816079), new $Int64(-490248444, 514015239), new $Int64(1377565129, 543520454), new $Int64(-2039776725, 3614531153), new $Int64(2056746300, 2356753985), new $Int64(1390062617, 2018141668), new $Int64(131272971, 2087974891), new $Int64(-1502927041, 3166972343), new $Int64(372256200, 1517638666), new $Int64(-935275664, 173466846), new $Int64(-695774461, 4241513471), new $Int64(-1413550842, 2783126920), new $Int64(1972004134, 4167264826), new $Int64(29260506, 3907395640), new $Int64(-910901561, 1539634186), new $Int64(-595957298, 178241987), new $Int64(-113277636, 182168164), new $Int64(-1102530459, 2386154934), new $Int64(1379126408, 4077374341), new $Int64(-2114679722, 1732699140), new $Int64(-421057745, 1041306002), new $Int64(1860414813, 2068001749), new $Int64(1005320202, 3208962910), new $Int64(844054010, 697710380), new $Int64(-1509359403, 2228431183), new $Int64(-810313977, 3554678728), new $Int64(-750989047, 173470263), new $Int64(-85886265, 3848297795), new $Int64(-926936977, 246236185), new $Int64(-1984190461, 2066374846), new $Int64(1771673660, 312890749), new $Int64(703378057, 3573310289), new $Int64(-598851901, 143166754), new $Int64(613554316, 2081511079), new $Int64(1197802104, 486038032), new $Int64(-1906483789, 2982218564), new $Int64(364901986, 1000939191), new $Int64(1902782651, 2750454885), new $Int64(-671844857, 3375313137), new $Int64(-1643868040, 881302957), new $Int64(-1508784745, 2514186393), new $Int64(-1703622845, 360024739), new $Int64(1399671872, 292500025), new $Int64(1381210821, 2276300752), new $Int64(521803381, 4069087683), new $Int64(-1938982667, 1637778212), new $Int64(720490469, 1676670893), new $Int64(1067262482, 3855174429), new $Int64(2114075974, 2067248671), new $Int64(-89426259, 2884561259), new $Int64(-805741095, 2456511185), new $Int64(983726246, 561175414), new $Int64(-1719489563, 432588903), new $Int64(885133709, 4059399550), new $Int64(-93096266, 1075014784), new $Int64(-1733832628, 2728058415), new $Int64(1839142064, 1299703678), new $Int64(1262333188, 2347583393), new $Int64(1285481956, 2468164145), new $Int64(-1158354011, 1140014346), new $Int64(2033889184, 1936972070), new $Int64(-1737578993, 3870530098), new $Int64(-484494257, 1717789158), new $Int64(-232997156, 1153452491), new $Int64(-990424416, 3948827651), new $Int64(-1357145630, 2101413152), new $Int64(1495744672, 3854091229), new $Int64(83644069, 4215565463), new $Int64(-1385277313, 1202710438), new $Int64(-564909037, 2072216740), new $Int64(705690639, 2066751068), new $Int64(-2113583312, 173902580), new $Int64(-741983806, 142459001), new $Int64(172391592, 1889151926), new $Int64(-498943125, 3034199774), new $Int64(1618587731, 516490102), new $Int64(93114264, 3692577783), new $Int64(-2078821353, 2953948865), new $Int64(-320938673, 4041040923), new $Int64(-1942517976, 592046130), new $Int64(-705643640, 384297211), new $Int64(-2051649464, 265863924), new $Int64(2101717619, 1333136237), new $Int64(1499611781, 1406273556), new $Int64(1074670496, 426305476), new $Int64(125704633, 2750898176), new $Int64(488068495, 1633944332), new $Int64(2037723464, 3236349343), new $Int64(-1703423246, 4013676611), new $Int64(1718532237, 2265047407), new $Int64(1433593806, 875071080), new $Int64(-343047503, 1418843655), new $Int64(2009228711, 451657300), new $Int64(1229446621, 1866374663), new $Int64(1653472867, 1551455622), new $Int64(577191481, 3560962459), new $Int64(1669204077, 3347903778), new $Int64(-298327194, 2675874918), new $Int64(-1831355577, 2762991672), new $Int64(530492383, 3689068477), new $Int64(844089962, 4071997905), new $Int64(1508155730, 1381702441), new $Int64(2089931018, 2373284878), new $Int64(-864267462, 2143983064), new $Int64(308739063, 1938207195), new $Int64(1754949306, 1188152253), new $Int64(1272345009, 615870490), new $Int64(742653194, 2662252621), new $Int64(1477718295, 3839976789), new $Int64(-2091334213, 306752547), new $Int64(-1426688067, 2162363077), new $Int64(-57052633, 2767224719), new $Int64(-1471624099, 2628837712), new $Int64(1678405918, 2967771969), new $Int64(1694285728, 499792248), new $Int64(-1744131281, 4285253508), new $Int64(962357072, 2856511070), new $Int64(679471692, 2526409716), new $Int64(-1793706473, 1240875658), new $Int64(-914893422, 2577342868), new $Int64(-1001298215, 4136853496), new $Int64(-1477114974, 2403540137), new $Int64(1372824515, 1371410668), new $Int64(-176562048, 371758825), new $Int64(-441063112, 1528834084), new $Int64(-71688630, 1504757260), new $Int64(-1461820072, 699052551), new $Int64(-505543539, 3347789870), new $Int64(1951619734, 3430604759), new $Int64(2119672219, 1935601723), new $Int64(966789690, 834676166)]); - globalRand = New(new lockedSource.ptr(new nosync.Mutex.ptr(false, false, false, false, 0), ptrType.nil)); randautoseed = godebug.New("randautoseed"); kn = $toNativeArray($kindUint32, [1991057938, 0, 1611602771, 1826899878, 1918584482, 1969227037, 2001281515, 2023368125, 2039498179, 2051788381, 2061460127, 2069267110, 2075699398, 2081089314, 2085670119, 2089610331, 2093034710, 2096037586, 2098691595, 2101053571, 2103168620, 2105072996, 2106796166, 2108362327, 2109791536, 2111100552, 2112303493, 2113412330, 2114437283, 2115387130, 2116269447, 2117090813, 2117856962, 2118572919, 2119243101, 2119871411, 2120461303, 2121015852, 2121537798, 2122029592, 2122493434, 2122931299, 2123344971, 2123736059, 2124106020, 2124456175, 2124787725, 2125101763, 2125399283, 2125681194, 2125948325, 2126201433, 2126441213, 2126668298, 2126883268, 2127086657, 2127278949, 2127460589, 2127631985, 2127793506, 2127945490, 2128088244, 2128222044, 2128347141, 2128463758, 2128572095, 2128672327, 2128764606, 2128849065, 2128925811, 2128994934, 2129056501, 2129110560, 2129157136, 2129196237, 2129227847, 2129251929, 2129268426, 2129277255, 2129278312, 2129271467, 2129256561, 2129233410, 2129201800, 2129161480, 2129112170, 2129053545, 2128985244, 2128906855, 2128817916, 2128717911, 2128606255, 2128482298, 2128345305, 2128194452, 2128028813, 2127847342, 2127648860, 2127432031, 2127195339, 2126937058, 2126655214, 2126347546, 2126011445, 2125643893, 2125241376, 2124799783, 2124314271, 2123779094, 2123187386, 2122530867, 2121799464, 2120980787, 2120059418, 2119015917, 2117825402, 2116455471, 2114863093, 2112989789, 2110753906, 2108037662, 2104664315, 2100355223, 2094642347, 2086670106, 2074676188, 2054300022, 2010539237]); wn = $toNativeArray($kindFloat32, [1.7290404663583558e-09, 1.2680928529462676e-10, 1.689751810696194e-10, 1.9862687883343e-10, 2.223243117382978e-10, 2.4244936613904144e-10, 2.601613091623989e-10, 2.761198769629658e-10, 2.9073962681813725e-10, 3.042996965518796e-10, 3.169979556627567e-10, 3.289802041894774e-10, 3.4035738116777736e-10, 3.5121602848242617e-10, 3.61625090983253e-10, 3.7164057942185025e-10, 3.813085680537398e-10, 3.906675816178762e-10, 3.997501218933053e-10, 4.0858399996679395e-10, 4.1719308563337165e-10, 4.255982233303257e-10, 4.3381759295968436e-10, 4.4186720948857783e-10, 4.497613115272969e-10, 4.57512583373898e-10, 4.6513240481438345e-10, 4.726310454117311e-10, 4.800177477726209e-10, 4.873009773476156e-10, 4.944885056978876e-10, 5.015873272284921e-10, 5.086040477664255e-10, 5.155446070048697e-10, 5.224146670812502e-10, 5.292193350214802e-10, 5.359634958068682e-10, 5.426517013518151e-10, 5.492881705038144e-10, 5.558769555769061e-10, 5.624218868405251e-10, 5.689264614971989e-10, 5.75394121238304e-10, 5.818281967329142e-10, 5.882316855831959e-10, 5.946076964136182e-10, 6.009590047817426e-10, 6.072883862451306e-10, 6.135985053390414e-10, 6.19892026598734e-10, 6.261713370037114e-10, 6.324390455780815e-10, 6.386973727678935e-10, 6.449488165749528e-10, 6.511955974453087e-10, 6.574400468473129e-10, 6.636843297158634e-10, 6.699307220081607e-10, 6.761814441702541e-10, 6.824387166481927e-10, 6.887046488657234e-10, 6.949815167800466e-10, 7.012714853260604e-10, 7.075767749498141e-10, 7.13899661608508e-10, 7.202424212593428e-10, 7.266072743483676e-10, 7.329966078550854e-10, 7.394128087589991e-10, 7.458582640396116e-10, 7.523354716987285e-10, 7.588469852493063e-10, 7.653954137154528e-10, 7.719834771435785e-10, 7.786139510912449e-10, 7.852897221383159e-10, 7.920137878869582e-10, 7.987892014504894e-10, 8.056192379868321e-10, 8.125072836762115e-10, 8.194568912323064e-10, 8.264716688799467e-10, 8.3355555791087e-10, 8.407127216614185e-10, 8.479473234679347e-10, 8.552640262671218e-10, 8.626675485068347e-10, 8.701631637464402e-10, 8.777562010564566e-10, 8.854524335966119e-10, 8.932581896381464e-10, 9.011799639857543e-10, 9.092249730890956e-10, 9.174008219758889e-10, 9.25715837318819e-10, 9.341788453909317e-10, 9.42799727177146e-10, 9.515889187738935e-10, 9.605578554783278e-10, 9.697193048552322e-10, 9.790869226478094e-10, 9.886760299337993e-10, 9.985036131254788e-10, 1.008588212947359e-09, 1.0189509236369076e-09, 1.0296150598776421e-09, 1.040606933955246e-09, 1.0519566329136865e-09, 1.0636980185552147e-09, 1.0758701707302976e-09, 1.0885182755160372e-09, 1.101694735439196e-09, 1.115461056855338e-09, 1.1298901814171813e-09, 1.1450695946990663e-09, 1.1611052119775422e-09, 1.178127595480305e-09, 1.1962995039027646e-09, 1.2158286599728285e-09, 1.2369856250415978e-09, 1.2601323318151003e-09, 1.2857697129220469e-09, 1.3146201904845611e-09, 1.3477839955200466e-09, 1.3870635751089821e-09, 1.43574030442295e-09, 1.5008658760251592e-09, 1.6030947680434338e-09]); @@ -60154,7 +59922,7 @@ $packages["math/big"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: z = this; if (buf.$length === 0) { - Rat.copy(z, new Rat.ptr(new Int.ptr(false, nat.nil), new Int.ptr(false, nat.nil))); + Rat.copy((z === ptrType$1.nil && $throwNilPointerError(), z), new Rat.ptr(new Int.ptr(false, nat.nil), new Int.ptr(false, nat.nil))); $s = -1; return $ifaceNil; } if (buf.$length < 5) { @@ -62533,8 +62301,8 @@ $packages["math/big"] = (function() { /* */ } return; } var $f = {$blk: karatsuba$1, $c: true, $r, _tmp, _tmp$1, _tmp$2, _tmp$3, n, n2, p, r, s, x, x0, x1, xd, y, y0, y1, yd, z, $s};return $f; }; alias = function alias$1(x, y) { - var x, x$1, x$2, y; - return x.$capacity > 0 && y.$capacity > 0 && (x$1 = $subslice(x, 0, x.$capacity), $indexPtr(x$1.$array, x$1.$offset + (x.$capacity - 1 >> 0), ptrType$4)) === (x$2 = $subslice(y, 0, y.$capacity), $indexPtr(x$2.$array, x$2.$offset + (y.$capacity - 1 >> 0), ptrType$4)); + var x, x$1, x$2, x$3, x$4, y; + return x.$capacity > 0 && y.$capacity > 0 && (x$1 = $subslice(x, 0, x.$capacity), x$2 = x.$capacity - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + x$2, ptrType$4))) === (x$3 = $subslice(y, 0, y.$capacity), x$4 = y.$capacity - 1 >> 0, ((x$4 < 0 || x$4 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$3.$array, x$3.$offset + x$4, ptrType$4))); }; addAt = function addAt$1(z, x, i) { var {_r, c, i, j, n, x, z, $s, $r, $c} = $restore(this, {z, x, i}); @@ -62863,7 +62631,7 @@ $packages["math/big"] = (function() { $ptrType(nat).prototype.isPow2 = function(...$args) { return this.$get().isPow2(...$args); }; same = function same$1(x, y) { var x, y; - return (x.$length === y.$length) && x.$length > 0 && $indexPtr(x.$array, x.$offset + 0, ptrType$4) === $indexPtr(y.$array, y.$offset + 0, ptrType$4); + return (x.$length === y.$length) && x.$length > 0 && (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + 0, ptrType$4)) === (0 >= y.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(y.$array, y.$offset + 0, ptrType$4)); }; nat.prototype.shl = function shl(x, s) { var _q, _r, m, n, s, x, z; @@ -63715,7 +63483,7 @@ $packages["math/big"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: z = this; if (buf.$length === 0) { - Int.copy(z, new Int.ptr(false, nat.nil)); + Int.copy((z === ptrType$2.nil && $throwNilPointerError(), z), new Int.ptr(false, nat.nil)); $s = -1; return $ifaceNil; } b = (0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]); @@ -64506,6 +64274,27 @@ $packages["math/big"] = (function() { x = this; return !x.neg && x.abs.$length <= 2; }; + $ptrType(Int).prototype.Float64 = function Float64$1() { + var {$24r, _r, _r$1, f, n, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + n = x.abs.bitLen(); + if (n === 0) { + $s = -1; return [0, 0]; + } + if (n <= 53 || n < 64 && (n - ((x.abs.trailingZeroBits() >> 0)) >> 0) <= 53) { + f = ($flatten64(low64(x.abs))); + if (x.neg) { + f = -f; + } + $s = -1; return [f, 0]; + } + _r = new Float.ptr(0, 0, 0, 0, false, nat.nil, 0).SetInt(x); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = _r.Float64(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: Float64$1, $c: true, $r, $24r, _r, _r$1, f, n, x, $s};return $f; + }; $ptrType(Int).prototype.SetString = function SetString$1(s, base) { var {$24r, _r, base, s, z, $s, $r, $c} = $restore(this, {s, base}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: @@ -64759,12 +64548,12 @@ $packages["math/big"] = (function() { _tuple = _r; q = _tuple[0]; r = _tuple[1]; - _tmp = $clone(B, Int); - _tmp$1 = $clone(r, Int); - _tmp$2 = $clone(A, Int); - Int.copy(A, _tmp); - Int.copy(B, _tmp$1); - Int.copy(r, _tmp$2); + _tmp = $clone((B === ptrType$2.nil && $throwNilPointerError(), B), Int); + _tmp$1 = $clone((r === ptrType$2.nil && $throwNilPointerError(), r), Int); + _tmp$2 = $clone((A === ptrType$2.nil && $throwNilPointerError(), A), Int); + Int.copy((A === ptrType$2.nil && $throwNilPointerError(), A), _tmp); + Int.copy((B === ptrType$2.nil && $throwNilPointerError(), B), _tmp$1); + Int.copy((r === ptrType$2.nil && $throwNilPointerError(), r), _tmp$2); /* */ if (extended) { $s = 2; continue; } /* */ $s = 3; continue; /* if (extended) { */ case 2: @@ -64932,12 +64721,12 @@ $packages["math/big"] = (function() { _r$7; /* } */ case 25: if (!(x === ptrType$2.nil)) { - Int.copy(x, Ua); + Int.copy((x === ptrType$2.nil && $throwNilPointerError(), x), (Ua === ptrType$2.nil && $throwNilPointerError(), Ua)); if (negA) { x.neg = !x.neg; } } - Int.copy(z, A); + Int.copy((z === ptrType$2.nil && $throwNilPointerError(), z), (A === ptrType$2.nil && $throwNilPointerError(), A)); $s = -1; return z; /* */ } return; } var $f = {$blk: lehmerGCD, $c: true, $r, A, B, Ua, Ub, _q, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, a, aWord, b, bWord, even, even$1, extended, negA, q, q$1, r, r$1, s, t, u0, u1, ua, ub, v0, v1, va, vb, x, x$1, x$2, x$3, y, z, $s};return $f; }; @@ -65976,11 +65765,11 @@ $packages["math/big"] = (function() { return [buf, $ifaceNil]; }; $ptrType(Float).prototype.GobDecode = function GobDecode$2(buf) { - var {$24r, _r, _r$1, b, buf, oldMode, oldPrec, z, $s, $r, $c} = $restore(this, {buf}); + var {$24r, _r, _r$1, _r$2, b, buf, msg, oldMode, oldPrec, z, $s, $r, $c} = $restore(this, {buf}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: z = this; if (buf.$length === 0) { - Float.copy(z, new Float.ptr(0, 0, 0, 0, false, nat.nil, 0)); + Float.copy((z === ptrType.nil && $throwNilPointerError(), z), new Float.ptr(0, 0, 0, 0, false, nat.nil, 0)); $s = -1; return $ifaceNil; } if (buf.$length < 6) { @@ -66015,8 +65804,13 @@ $packages["math/big"] = (function() { _r$1 = z.SetPrec(((oldPrec >>> 0))); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _r$1; /* } */ case 6: + _r$2 = z.validate0(); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + msg = _r$2; + if (!(msg === "")) { + $s = -1; return errors.New("Float.GobDecode: " + msg); + } $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: GobDecode$2, $c: true, $r, $24r, _r, _r$1, b, buf, oldMode, oldPrec, z, $s};return $f; + /* */ } return; } var $f = {$blk: GobDecode$2, $c: true, $r, $24r, _r, _r$1, _r$2, b, buf, msg, oldMode, oldPrec, z, $s};return $f; }; $ptrType(Float).prototype.MarshalText = function MarshalText$2() { var {$24r, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, buf, err, text, x, $s, $r, $c} = $restore(this, {}); @@ -66461,18 +66255,30 @@ $packages["math/big"] = (function() { /* */ } return; } var $f = {$blk: IsInt$1, $c: true, $r, x, $s};return $f; }; $ptrType(Float).prototype.validate = function validate() { - var {_arg, _arg$1, _r, _r$1, m, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {}); + var {_r, msg, x, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: x = this; if (true) { $panic(new $String("validate called but debugFloat is not set")); } + _r = x.validate0(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + msg = _r; + if (!(msg === "")) { + $panic(new $String(msg)); + } + $s = -1; return; + /* */ } return; } var $f = {$blk: validate, $c: true, $r, _r, msg, x, $s};return $f; + }; + $ptrType(Float).prototype.validate0 = function validate0() { + var {$24r, _arg, _arg$1, _r, _r$1, m, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; if (!((x.form === 1))) { - $s = -1; return; + $s = -1; return ""; } m = x.mant.$length; if (m === 0) { - $panic(new $String("nonzero finite number with empty mantissa")); + $s = -1; return "nonzero finite number with empty mantissa"; } /* */ if ((((x$1 = x.mant, x$2 = m - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])) & 2147483648) >>> 0) === 0) { $s = 1; continue; } /* */ $s = 2; continue; @@ -66481,13 +66287,14 @@ $packages["math/big"] = (function() { _r = x.Text(112, 0); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _arg$1 = new $String(_r); _r$1 = fmt.Sprintf("msb not set in last word %#x of %s", new sliceType([_arg, _arg$1])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $panic(new $String(_r$1)); + $24r = _r$1; + $s = 5; case 5: return $24r; /* } */ case 2: if (x.prec === 0) { - $panic(new $String("zero precision finite number")); + $s = -1; return "zero precision finite number"; } - $s = -1; return; - /* */ } return; } var $f = {$blk: validate, $c: true, $r, _arg, _arg$1, _r, _r$1, m, x, x$1, x$2, x$3, x$4, $s};return $f; + $s = -1; return ""; + /* */ } return; } var $f = {$blk: validate0, $c: true, $r, $24r, _arg, _arg$1, _r, _r$1, m, x, x$1, x$2, x$3, x$4, $s};return $f; }; $ptrType(Float).prototype.round = function round(sbit) { var {_1, _index, _q, _r, bits$1, inc, lsb, m, n, ntz, r, rbit, sbit, x, x$1, x$2, x$3, x$4, y, z, $s, $r, $c} = $restore(this, {sbit}); @@ -66971,7 +66778,7 @@ $packages["math/big"] = (function() { $s = -1; return [0, 0]; /* */ } return; } var $f = {$blk: Float32$1, $c: true, $r, _1, _r, _tmp, _tmp$1, _tmp$2, bexp, e, mant, p, r, sign, x, y, z, z$1, $s};return $f; }; - $ptrType(Float).prototype.Float64 = function Float64$1() { + $ptrType(Float).prototype.Float64 = function Float64$2() { var {_1, _r, _tmp, _tmp$1, _tmp$2, bexp, e, mant, p, r, sign, x, x$1, x$2, z, z$1, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: x = this; @@ -67047,7 +66854,7 @@ $packages["math/big"] = (function() { case 4: $panic(new $String("unreachable")); $s = -1; return [0, 0]; - /* */ } return; } var $f = {$blk: Float64$1, $c: true, $r, _1, _r, _tmp, _tmp$1, _tmp$2, bexp, e, mant, p, r, sign, x, x$1, x$2, z, z$1, $s};return $f; + /* */ } return; } var $f = {$blk: Float64$2, $c: true, $r, _1, _r, _tmp, _tmp$1, _tmp$2, bexp, e, mant, p, r, sign, x, x$1, x$2, z, z$1, $s};return $f; }; $ptrType(Float).prototype.Int = function Int$1(z) { var {_1, acc, allBits, exp$1, x, z, $s, $r, $c} = $restore(this, {z}); @@ -68153,8 +67960,8 @@ $packages["math/big"] = (function() { ptrType$1.methods = [{prop: "GobEncode", name: "GobEncode", pkg: "", typ: $funcType([], [sliceType$1, $error], false)}, {prop: "GobDecode", name: "GobDecode", pkg: "", typ: $funcType([sliceType$1], [$error], false)}, {prop: "MarshalText", name: "MarshalText", pkg: "", typ: $funcType([], [sliceType$1, $error], false)}, {prop: "UnmarshalText", name: "UnmarshalText", pkg: "", typ: $funcType([sliceType$1], [$error], false)}, {prop: "Scan", name: "Scan", pkg: "", typ: $funcType([fmt.ScanState, $Int32], [$error], false)}, {prop: "SetString", name: "SetString", pkg: "", typ: $funcType([$String], [ptrType$1, $Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "marshal", name: "marshal", pkg: "math/big", typ: $funcType([], [sliceType$1], false)}, {prop: "RatString", name: "RatString", pkg: "", typ: $funcType([], [$String], false)}, {prop: "FloatString", name: "FloatString", pkg: "", typ: $funcType([$Int], [$String], false)}, {prop: "SetFloat64", name: "SetFloat64", pkg: "", typ: $funcType([$Float64], [ptrType$1], false)}, {prop: "Float32", name: "Float32", pkg: "", typ: $funcType([], [$Float32, $Bool], false)}, {prop: "Float64", name: "Float64", pkg: "", typ: $funcType([], [$Float64, $Bool], false)}, {prop: "SetFrac", name: "SetFrac", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$1], false)}, {prop: "SetFrac64", name: "SetFrac64", pkg: "", typ: $funcType([$Int64, $Int64], [ptrType$1], false)}, {prop: "SetInt", name: "SetInt", pkg: "", typ: $funcType([ptrType$2], [ptrType$1], false)}, {prop: "SetInt64", name: "SetInt64", pkg: "", typ: $funcType([$Int64], [ptrType$1], false)}, {prop: "SetUint64", name: "SetUint64", pkg: "", typ: $funcType([$Uint64], [ptrType$1], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([ptrType$1], [ptrType$1], false)}, {prop: "Abs", name: "Abs", pkg: "", typ: $funcType([ptrType$1], [ptrType$1], false)}, {prop: "Neg", name: "Neg", pkg: "", typ: $funcType([ptrType$1], [ptrType$1], false)}, {prop: "Inv", name: "Inv", pkg: "", typ: $funcType([ptrType$1], [ptrType$1], false)}, {prop: "Sign", name: "Sign", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "IsInt", name: "IsInt", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Num", name: "Num", pkg: "", typ: $funcType([], [ptrType$2], false)}, {prop: "Denom", name: "Denom", pkg: "", typ: $funcType([], [ptrType$2], false)}, {prop: "norm", name: "norm", pkg: "math/big", typ: $funcType([], [ptrType$1], false)}, {prop: "Cmp", name: "Cmp", pkg: "", typ: $funcType([ptrType$1], [$Int], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([ptrType$1, ptrType$1], [ptrType$1], false)}, {prop: "Sub", name: "Sub", pkg: "", typ: $funcType([ptrType$1, ptrType$1], [ptrType$1], false)}, {prop: "Mul", name: "Mul", pkg: "", typ: $funcType([ptrType$1, ptrType$1], [ptrType$1], false)}, {prop: "Quo", name: "Quo", pkg: "", typ: $funcType([ptrType$1, ptrType$1], [ptrType$1], false)}]; nat.methods = [{prop: "probablyPrimeMillerRabin", name: "probablyPrimeMillerRabin", pkg: "math/big", typ: $funcType([$Int, $Bool], [$Bool], false)}, {prop: "probablyPrimeLucas", name: "probablyPrimeLucas", pkg: "math/big", typ: $funcType([], [$Bool], false)}, {prop: "rem", name: "rem", pkg: "math/big", typ: $funcType([nat, nat], [nat], false)}, {prop: "div", name: "div", pkg: "math/big", typ: $funcType([nat, nat, nat], [nat, nat], false)}, {prop: "divW", name: "divW", pkg: "math/big", typ: $funcType([nat, Word], [nat, Word], false)}, {prop: "modW", name: "modW", pkg: "math/big", typ: $funcType([Word], [Word], false)}, {prop: "divLarge", name: "divLarge", pkg: "math/big", typ: $funcType([nat, nat, nat], [nat, nat], false)}, {prop: "divBasic", name: "divBasic", pkg: "math/big", typ: $funcType([nat, nat], [], false)}, {prop: "divRecursive", name: "divRecursive", pkg: "math/big", typ: $funcType([nat, nat], [], false)}, {prop: "divRecursiveStep", name: "divRecursiveStep", pkg: "math/big", typ: $funcType([nat, nat, $Int, ptrType$3, sliceType$3], [], false)}, {prop: "scan", name: "scan", pkg: "math/big", typ: $funcType([io.ByteScanner, $Int, $Bool], [nat, $Int, $Int, $error], false)}, {prop: "utoa", name: "utoa", pkg: "math/big", typ: $funcType([$Int], [sliceType$1], false)}, {prop: "itoa", name: "itoa", pkg: "math/big", typ: $funcType([$Bool, $Int], [sliceType$1], false)}, {prop: "convertWords", name: "convertWords", pkg: "math/big", typ: $funcType([sliceType$1, Word, $Int, Word, sliceType$4], [], false)}, {prop: "expWW", name: "expWW", pkg: "math/big", typ: $funcType([Word, Word], [nat], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "clear", name: "clear", pkg: "math/big", typ: $funcType([], [], false)}, {prop: "norm", name: "norm", pkg: "math/big", typ: $funcType([], [nat], false)}, {prop: "make", name: "make", pkg: "math/big", typ: $funcType([$Int], [nat], false)}, {prop: "setWord", name: "setWord", pkg: "math/big", typ: $funcType([Word], [nat], false)}, {prop: "setUint64", name: "setUint64", pkg: "math/big", typ: $funcType([$Uint64], [nat], false)}, {prop: "set", name: "set", pkg: "math/big", typ: $funcType([nat], [nat], false)}, {prop: "add", name: "add", pkg: "math/big", typ: $funcType([nat, nat], [nat], false)}, {prop: "sub", name: "sub", pkg: "math/big", typ: $funcType([nat, nat], [nat], false)}, {prop: "cmp", name: "cmp", pkg: "math/big", typ: $funcType([nat], [$Int], false)}, {prop: "mulAddWW", name: "mulAddWW", pkg: "math/big", typ: $funcType([nat, Word, Word], [nat], false)}, {prop: "montgomery", name: "montgomery", pkg: "math/big", typ: $funcType([nat, nat, nat, Word, $Int], [nat], false)}, {prop: "mul", name: "mul", pkg: "math/big", typ: $funcType([nat, nat], [nat], false)}, {prop: "sqr", name: "sqr", pkg: "math/big", typ: $funcType([nat], [nat], false)}, {prop: "mulRange", name: "mulRange", pkg: "math/big", typ: $funcType([$Uint64, $Uint64], [nat], false)}, {prop: "bitLen", name: "bitLen", pkg: "math/big", typ: $funcType([], [$Int], false)}, {prop: "trailingZeroBits", name: "trailingZeroBits", pkg: "math/big", typ: $funcType([], [$Uint], false)}, {prop: "isPow2", name: "isPow2", pkg: "math/big", typ: $funcType([], [$Uint, $Bool], false)}, {prop: "shl", name: "shl", pkg: "math/big", typ: $funcType([nat, $Uint], [nat], false)}, {prop: "shr", name: "shr", pkg: "math/big", typ: $funcType([nat, $Uint], [nat], false)}, {prop: "setBit", name: "setBit", pkg: "math/big", typ: $funcType([nat, $Uint, $Uint], [nat], false)}, {prop: "bit", name: "bit", pkg: "math/big", typ: $funcType([$Uint], [$Uint], false)}, {prop: "sticky", name: "sticky", pkg: "math/big", typ: $funcType([$Uint], [$Uint], false)}, {prop: "and", name: "and", pkg: "math/big", typ: $funcType([nat, nat], [nat], false)}, {prop: "trunc", name: "trunc", pkg: "math/big", typ: $funcType([nat, $Uint], [nat], false)}, {prop: "andNot", name: "andNot", pkg: "math/big", typ: $funcType([nat, nat], [nat], false)}, {prop: "or", name: "or", pkg: "math/big", typ: $funcType([nat, nat], [nat], false)}, {prop: "xor", name: "xor", pkg: "math/big", typ: $funcType([nat, nat], [nat], false)}, {prop: "random", name: "random", pkg: "math/big", typ: $funcType([ptrType$5, nat, $Int], [nat], false)}, {prop: "expNN", name: "expNN", pkg: "math/big", typ: $funcType([nat, nat, nat, $Bool], [nat], false)}, {prop: "expNNMontgomeryEven", name: "expNNMontgomeryEven", pkg: "math/big", typ: $funcType([nat, nat, nat], [nat], false)}, {prop: "expNNWindowed", name: "expNNWindowed", pkg: "math/big", typ: $funcType([nat, nat, $Uint], [nat], false)}, {prop: "expNNMontgomery", name: "expNNMontgomery", pkg: "math/big", typ: $funcType([nat, nat, nat], [nat], false)}, {prop: "bytes", name: "bytes", pkg: "math/big", typ: $funcType([sliceType$1], [$Int], false)}, {prop: "setBytes", name: "setBytes", pkg: "math/big", typ: $funcType([sliceType$1], [nat], false)}, {prop: "sqrt", name: "sqrt", pkg: "math/big", typ: $funcType([nat], [nat], false)}, {prop: "subMod2N", name: "subMod2N", pkg: "math/big", typ: $funcType([nat, nat, $Uint], [nat], false)}, {prop: "modInverse", name: "modInverse", pkg: "math/big", typ: $funcType([nat, nat], [nat], false)}]; byteReader.methods = [{prop: "ReadByte", name: "ReadByte", pkg: "", typ: $funcType([], [$Uint8, $error], false)}, {prop: "UnreadByte", name: "UnreadByte", pkg: "", typ: $funcType([], [$error], false)}]; - ptrType$2.methods = [{prop: "scaleDenom", name: "scaleDenom", pkg: "math/big", typ: $funcType([ptrType$2, nat], [], false)}, {prop: "ProbablyPrime", name: "ProbablyPrime", pkg: "", typ: $funcType([$Int], [$Bool], false)}, {prop: "GobEncode", name: "GobEncode", pkg: "", typ: $funcType([], [sliceType$1, $error], false)}, {prop: "GobDecode", name: "GobDecode", pkg: "", typ: $funcType([sliceType$1], [$error], false)}, {prop: "MarshalText", name: "MarshalText", pkg: "", typ: $funcType([], [sliceType$1, $error], false)}, {prop: "UnmarshalText", name: "UnmarshalText", pkg: "", typ: $funcType([sliceType$1], [$error], false)}, {prop: "MarshalJSON", name: "MarshalJSON", pkg: "", typ: $funcType([], [sliceType$1, $error], false)}, {prop: "UnmarshalJSON", name: "UnmarshalJSON", pkg: "", typ: $funcType([sliceType$1], [$error], false)}, {prop: "Text", name: "Text", pkg: "", typ: $funcType([$Int], [$String], false)}, {prop: "Append", name: "Append", pkg: "", typ: $funcType([sliceType$1, $Int], [sliceType$1], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Format", name: "Format", pkg: "", typ: $funcType([fmt.State, $Int32], [], false)}, {prop: "scan", name: "scan", pkg: "math/big", typ: $funcType([io.ByteScanner, $Int], [ptrType$2, $Int, $error], false)}, {prop: "Scan", name: "Scan", pkg: "", typ: $funcType([fmt.ScanState, $Int32], [$error], false)}, {prop: "Sign", name: "Sign", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "SetInt64", name: "SetInt64", pkg: "", typ: $funcType([$Int64], [ptrType$2], false)}, {prop: "SetUint64", name: "SetUint64", pkg: "", typ: $funcType([$Uint64], [ptrType$2], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([ptrType$2], [ptrType$2], false)}, {prop: "Bits", name: "Bits", pkg: "", typ: $funcType([], [sliceType$2], false)}, {prop: "SetBits", name: "SetBits", pkg: "", typ: $funcType([sliceType$2], [ptrType$2], false)}, {prop: "Abs", name: "Abs", pkg: "", typ: $funcType([ptrType$2], [ptrType$2], false)}, {prop: "Neg", name: "Neg", pkg: "", typ: $funcType([ptrType$2], [ptrType$2], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "Sub", name: "Sub", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "Mul", name: "Mul", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "MulRange", name: "MulRange", pkg: "", typ: $funcType([$Int64, $Int64], [ptrType$2], false)}, {prop: "Binomial", name: "Binomial", pkg: "", typ: $funcType([$Int64, $Int64], [ptrType$2], false)}, {prop: "Quo", name: "Quo", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "Rem", name: "Rem", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "QuoRem", name: "QuoRem", pkg: "", typ: $funcType([ptrType$2, ptrType$2, ptrType$2], [ptrType$2, ptrType$2], false)}, {prop: "Div", name: "Div", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "Mod", name: "Mod", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "DivMod", name: "DivMod", pkg: "", typ: $funcType([ptrType$2, ptrType$2, ptrType$2], [ptrType$2, ptrType$2], false)}, {prop: "Cmp", name: "Cmp", pkg: "", typ: $funcType([ptrType$2], [$Int], false)}, {prop: "CmpAbs", name: "CmpAbs", pkg: "", typ: $funcType([ptrType$2], [$Int], false)}, {prop: "Int64", name: "Int64", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "IsInt64", name: "IsInt64", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsUint64", name: "IsUint64", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "SetString", name: "SetString", pkg: "", typ: $funcType([$String, $Int], [ptrType$2, $Bool], false)}, {prop: "setFromScanner", name: "setFromScanner", pkg: "math/big", typ: $funcType([io.ByteScanner, $Int], [ptrType$2, $Bool], false)}, {prop: "SetBytes", name: "SetBytes", pkg: "", typ: $funcType([sliceType$1], [ptrType$2], false)}, {prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "FillBytes", name: "FillBytes", pkg: "", typ: $funcType([sliceType$1], [sliceType$1], false)}, {prop: "BitLen", name: "BitLen", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "TrailingZeroBits", name: "TrailingZeroBits", pkg: "", typ: $funcType([], [$Uint], false)}, {prop: "Exp", name: "Exp", pkg: "", typ: $funcType([ptrType$2, ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "expSlow", name: "expSlow", pkg: "math/big", typ: $funcType([ptrType$2, ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "exp", name: "exp", pkg: "math/big", typ: $funcType([ptrType$2, ptrType$2, ptrType$2, $Bool], [ptrType$2], false)}, {prop: "GCD", name: "GCD", pkg: "", typ: $funcType([ptrType$2, ptrType$2, ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "lehmerGCD", name: "lehmerGCD", pkg: "math/big", typ: $funcType([ptrType$2, ptrType$2, ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "Rand", name: "Rand", pkg: "", typ: $funcType([ptrType$5, ptrType$2], [ptrType$2], false)}, {prop: "ModInverse", name: "ModInverse", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "modSqrt3Mod4Prime", name: "modSqrt3Mod4Prime", pkg: "math/big", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "modSqrt5Mod8Prime", name: "modSqrt5Mod8Prime", pkg: "math/big", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "modSqrtTonelliShanks", name: "modSqrtTonelliShanks", pkg: "math/big", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "ModSqrt", name: "ModSqrt", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "Lsh", name: "Lsh", pkg: "", typ: $funcType([ptrType$2, $Uint], [ptrType$2], false)}, {prop: "Rsh", name: "Rsh", pkg: "", typ: $funcType([ptrType$2, $Uint], [ptrType$2], false)}, {prop: "Bit", name: "Bit", pkg: "", typ: $funcType([$Int], [$Uint], false)}, {prop: "SetBit", name: "SetBit", pkg: "", typ: $funcType([ptrType$2, $Int, $Uint], [ptrType$2], false)}, {prop: "And", name: "And", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "AndNot", name: "AndNot", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "Or", name: "Or", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "Xor", name: "Xor", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "Not", name: "Not", pkg: "", typ: $funcType([ptrType$2], [ptrType$2], false)}, {prop: "Sqrt", name: "Sqrt", pkg: "", typ: $funcType([ptrType$2], [ptrType$2], false)}]; - ptrType.methods = [{prop: "Sqrt", name: "Sqrt", pkg: "", typ: $funcType([ptrType], [ptrType], false)}, {prop: "sqrtInverse", name: "sqrtInverse", pkg: "math/big", typ: $funcType([ptrType], [], false)}, {prop: "Text", name: "Text", pkg: "", typ: $funcType([$Uint8, $Int], [$String], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Append", name: "Append", pkg: "", typ: $funcType([sliceType$1, $Uint8, $Int], [sliceType$1], false)}, {prop: "fmtB", name: "fmtB", pkg: "math/big", typ: $funcType([sliceType$1], [sliceType$1], false)}, {prop: "fmtX", name: "fmtX", pkg: "math/big", typ: $funcType([sliceType$1, $Int], [sliceType$1], false)}, {prop: "fmtP", name: "fmtP", pkg: "math/big", typ: $funcType([sliceType$1], [sliceType$1], false)}, {prop: "Format", name: "Format", pkg: "", typ: $funcType([fmt.State, $Int32], [], false)}, {prop: "GobEncode", name: "GobEncode", pkg: "", typ: $funcType([], [sliceType$1, $error], false)}, {prop: "GobDecode", name: "GobDecode", pkg: "", typ: $funcType([sliceType$1], [$error], false)}, {prop: "MarshalText", name: "MarshalText", pkg: "", typ: $funcType([], [sliceType$1, $error], false)}, {prop: "UnmarshalText", name: "UnmarshalText", pkg: "", typ: $funcType([sliceType$1], [$error], false)}, {prop: "SetString", name: "SetString", pkg: "", typ: $funcType([$String], [ptrType, $Bool], false)}, {prop: "scan", name: "scan", pkg: "math/big", typ: $funcType([io.ByteScanner, $Int], [ptrType, $Int, $error], false)}, {prop: "pow5", name: "pow5", pkg: "math/big", typ: $funcType([$Uint64], [ptrType], false)}, {prop: "Parse", name: "Parse", pkg: "", typ: $funcType([$String, $Int], [ptrType, $Int, $error], false)}, {prop: "Scan", name: "Scan", pkg: "", typ: $funcType([fmt.ScanState, $Int32], [$error], false)}, {prop: "SetPrec", name: "SetPrec", pkg: "", typ: $funcType([$Uint], [ptrType], false)}, {prop: "SetMode", name: "SetMode", pkg: "", typ: $funcType([RoundingMode], [ptrType], false)}, {prop: "Prec", name: "Prec", pkg: "", typ: $funcType([], [$Uint], false)}, {prop: "MinPrec", name: "MinPrec", pkg: "", typ: $funcType([], [$Uint], false)}, {prop: "Mode", name: "Mode", pkg: "", typ: $funcType([], [RoundingMode], false)}, {prop: "Acc", name: "Acc", pkg: "", typ: $funcType([], [Accuracy], false)}, {prop: "Sign", name: "Sign", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "MantExp", name: "MantExp", pkg: "", typ: $funcType([ptrType], [$Int], false)}, {prop: "setExpAndRound", name: "setExpAndRound", pkg: "math/big", typ: $funcType([$Int64, $Uint], [], false)}, {prop: "SetMantExp", name: "SetMantExp", pkg: "", typ: $funcType([ptrType, $Int], [ptrType], false)}, {prop: "Signbit", name: "Signbit", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsInf", name: "IsInf", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsInt", name: "IsInt", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "validate", name: "validate", pkg: "math/big", typ: $funcType([], [], false)}, {prop: "round", name: "round", pkg: "math/big", typ: $funcType([$Uint], [], false)}, {prop: "setBits64", name: "setBits64", pkg: "math/big", typ: $funcType([$Bool, $Uint64], [ptrType], false)}, {prop: "SetUint64", name: "SetUint64", pkg: "", typ: $funcType([$Uint64], [ptrType], false)}, {prop: "SetInt64", name: "SetInt64", pkg: "", typ: $funcType([$Int64], [ptrType], false)}, {prop: "SetFloat64", name: "SetFloat64", pkg: "", typ: $funcType([$Float64], [ptrType], false)}, {prop: "SetInt", name: "SetInt", pkg: "", typ: $funcType([ptrType$2], [ptrType], false)}, {prop: "SetRat", name: "SetRat", pkg: "", typ: $funcType([ptrType$1], [ptrType], false)}, {prop: "SetInf", name: "SetInf", pkg: "", typ: $funcType([$Bool], [ptrType], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([ptrType], [ptrType], false)}, {prop: "Copy", name: "Copy", pkg: "", typ: $funcType([ptrType], [ptrType], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([], [$Uint64, Accuracy], false)}, {prop: "Int64", name: "Int64", pkg: "", typ: $funcType([], [$Int64, Accuracy], false)}, {prop: "Float32", name: "Float32", pkg: "", typ: $funcType([], [$Float32, Accuracy], false)}, {prop: "Float64", name: "Float64", pkg: "", typ: $funcType([], [$Float64, Accuracy], false)}, {prop: "Int", name: "Int", pkg: "", typ: $funcType([ptrType$2], [ptrType$2, Accuracy], false)}, {prop: "Rat", name: "Rat", pkg: "", typ: $funcType([ptrType$1], [ptrType$1, Accuracy], false)}, {prop: "Abs", name: "Abs", pkg: "", typ: $funcType([ptrType], [ptrType], false)}, {prop: "Neg", name: "Neg", pkg: "", typ: $funcType([ptrType], [ptrType], false)}, {prop: "uadd", name: "uadd", pkg: "math/big", typ: $funcType([ptrType, ptrType], [], false)}, {prop: "usub", name: "usub", pkg: "math/big", typ: $funcType([ptrType, ptrType], [], false)}, {prop: "umul", name: "umul", pkg: "math/big", typ: $funcType([ptrType, ptrType], [], false)}, {prop: "uquo", name: "uquo", pkg: "math/big", typ: $funcType([ptrType, ptrType], [], false)}, {prop: "ucmp", name: "ucmp", pkg: "math/big", typ: $funcType([ptrType], [$Int], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([ptrType, ptrType], [ptrType], false)}, {prop: "Sub", name: "Sub", pkg: "", typ: $funcType([ptrType, ptrType], [ptrType], false)}, {prop: "Mul", name: "Mul", pkg: "", typ: $funcType([ptrType, ptrType], [ptrType], false)}, {prop: "Quo", name: "Quo", pkg: "", typ: $funcType([ptrType, ptrType], [ptrType], false)}, {prop: "Cmp", name: "Cmp", pkg: "", typ: $funcType([ptrType], [$Int], false)}, {prop: "ord", name: "ord", pkg: "math/big", typ: $funcType([], [$Int], false)}]; + ptrType$2.methods = [{prop: "scaleDenom", name: "scaleDenom", pkg: "math/big", typ: $funcType([ptrType$2, nat], [], false)}, {prop: "ProbablyPrime", name: "ProbablyPrime", pkg: "", typ: $funcType([$Int], [$Bool], false)}, {prop: "GobEncode", name: "GobEncode", pkg: "", typ: $funcType([], [sliceType$1, $error], false)}, {prop: "GobDecode", name: "GobDecode", pkg: "", typ: $funcType([sliceType$1], [$error], false)}, {prop: "MarshalText", name: "MarshalText", pkg: "", typ: $funcType([], [sliceType$1, $error], false)}, {prop: "UnmarshalText", name: "UnmarshalText", pkg: "", typ: $funcType([sliceType$1], [$error], false)}, {prop: "MarshalJSON", name: "MarshalJSON", pkg: "", typ: $funcType([], [sliceType$1, $error], false)}, {prop: "UnmarshalJSON", name: "UnmarshalJSON", pkg: "", typ: $funcType([sliceType$1], [$error], false)}, {prop: "Text", name: "Text", pkg: "", typ: $funcType([$Int], [$String], false)}, {prop: "Append", name: "Append", pkg: "", typ: $funcType([sliceType$1, $Int], [sliceType$1], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Format", name: "Format", pkg: "", typ: $funcType([fmt.State, $Int32], [], false)}, {prop: "scan", name: "scan", pkg: "math/big", typ: $funcType([io.ByteScanner, $Int], [ptrType$2, $Int, $error], false)}, {prop: "Scan", name: "Scan", pkg: "", typ: $funcType([fmt.ScanState, $Int32], [$error], false)}, {prop: "Sign", name: "Sign", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "SetInt64", name: "SetInt64", pkg: "", typ: $funcType([$Int64], [ptrType$2], false)}, {prop: "SetUint64", name: "SetUint64", pkg: "", typ: $funcType([$Uint64], [ptrType$2], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([ptrType$2], [ptrType$2], false)}, {prop: "Bits", name: "Bits", pkg: "", typ: $funcType([], [sliceType$2], false)}, {prop: "SetBits", name: "SetBits", pkg: "", typ: $funcType([sliceType$2], [ptrType$2], false)}, {prop: "Abs", name: "Abs", pkg: "", typ: $funcType([ptrType$2], [ptrType$2], false)}, {prop: "Neg", name: "Neg", pkg: "", typ: $funcType([ptrType$2], [ptrType$2], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "Sub", name: "Sub", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "Mul", name: "Mul", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "MulRange", name: "MulRange", pkg: "", typ: $funcType([$Int64, $Int64], [ptrType$2], false)}, {prop: "Binomial", name: "Binomial", pkg: "", typ: $funcType([$Int64, $Int64], [ptrType$2], false)}, {prop: "Quo", name: "Quo", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "Rem", name: "Rem", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "QuoRem", name: "QuoRem", pkg: "", typ: $funcType([ptrType$2, ptrType$2, ptrType$2], [ptrType$2, ptrType$2], false)}, {prop: "Div", name: "Div", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "Mod", name: "Mod", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "DivMod", name: "DivMod", pkg: "", typ: $funcType([ptrType$2, ptrType$2, ptrType$2], [ptrType$2, ptrType$2], false)}, {prop: "Cmp", name: "Cmp", pkg: "", typ: $funcType([ptrType$2], [$Int], false)}, {prop: "CmpAbs", name: "CmpAbs", pkg: "", typ: $funcType([ptrType$2], [$Int], false)}, {prop: "Int64", name: "Int64", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "IsInt64", name: "IsInt64", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsUint64", name: "IsUint64", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Float64", name: "Float64", pkg: "", typ: $funcType([], [$Float64, Accuracy], false)}, {prop: "SetString", name: "SetString", pkg: "", typ: $funcType([$String, $Int], [ptrType$2, $Bool], false)}, {prop: "setFromScanner", name: "setFromScanner", pkg: "math/big", typ: $funcType([io.ByteScanner, $Int], [ptrType$2, $Bool], false)}, {prop: "SetBytes", name: "SetBytes", pkg: "", typ: $funcType([sliceType$1], [ptrType$2], false)}, {prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "FillBytes", name: "FillBytes", pkg: "", typ: $funcType([sliceType$1], [sliceType$1], false)}, {prop: "BitLen", name: "BitLen", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "TrailingZeroBits", name: "TrailingZeroBits", pkg: "", typ: $funcType([], [$Uint], false)}, {prop: "Exp", name: "Exp", pkg: "", typ: $funcType([ptrType$2, ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "expSlow", name: "expSlow", pkg: "math/big", typ: $funcType([ptrType$2, ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "exp", name: "exp", pkg: "math/big", typ: $funcType([ptrType$2, ptrType$2, ptrType$2, $Bool], [ptrType$2], false)}, {prop: "GCD", name: "GCD", pkg: "", typ: $funcType([ptrType$2, ptrType$2, ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "lehmerGCD", name: "lehmerGCD", pkg: "math/big", typ: $funcType([ptrType$2, ptrType$2, ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "Rand", name: "Rand", pkg: "", typ: $funcType([ptrType$5, ptrType$2], [ptrType$2], false)}, {prop: "ModInverse", name: "ModInverse", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "modSqrt3Mod4Prime", name: "modSqrt3Mod4Prime", pkg: "math/big", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "modSqrt5Mod8Prime", name: "modSqrt5Mod8Prime", pkg: "math/big", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "modSqrtTonelliShanks", name: "modSqrtTonelliShanks", pkg: "math/big", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "ModSqrt", name: "ModSqrt", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "Lsh", name: "Lsh", pkg: "", typ: $funcType([ptrType$2, $Uint], [ptrType$2], false)}, {prop: "Rsh", name: "Rsh", pkg: "", typ: $funcType([ptrType$2, $Uint], [ptrType$2], false)}, {prop: "Bit", name: "Bit", pkg: "", typ: $funcType([$Int], [$Uint], false)}, {prop: "SetBit", name: "SetBit", pkg: "", typ: $funcType([ptrType$2, $Int, $Uint], [ptrType$2], false)}, {prop: "And", name: "And", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "AndNot", name: "AndNot", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "Or", name: "Or", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "Xor", name: "Xor", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "Not", name: "Not", pkg: "", typ: $funcType([ptrType$2], [ptrType$2], false)}, {prop: "Sqrt", name: "Sqrt", pkg: "", typ: $funcType([ptrType$2], [ptrType$2], false)}]; + ptrType.methods = [{prop: "Sqrt", name: "Sqrt", pkg: "", typ: $funcType([ptrType], [ptrType], false)}, {prop: "sqrtInverse", name: "sqrtInverse", pkg: "math/big", typ: $funcType([ptrType], [], false)}, {prop: "Text", name: "Text", pkg: "", typ: $funcType([$Uint8, $Int], [$String], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Append", name: "Append", pkg: "", typ: $funcType([sliceType$1, $Uint8, $Int], [sliceType$1], false)}, {prop: "fmtB", name: "fmtB", pkg: "math/big", typ: $funcType([sliceType$1], [sliceType$1], false)}, {prop: "fmtX", name: "fmtX", pkg: "math/big", typ: $funcType([sliceType$1, $Int], [sliceType$1], false)}, {prop: "fmtP", name: "fmtP", pkg: "math/big", typ: $funcType([sliceType$1], [sliceType$1], false)}, {prop: "Format", name: "Format", pkg: "", typ: $funcType([fmt.State, $Int32], [], false)}, {prop: "GobEncode", name: "GobEncode", pkg: "", typ: $funcType([], [sliceType$1, $error], false)}, {prop: "GobDecode", name: "GobDecode", pkg: "", typ: $funcType([sliceType$1], [$error], false)}, {prop: "MarshalText", name: "MarshalText", pkg: "", typ: $funcType([], [sliceType$1, $error], false)}, {prop: "UnmarshalText", name: "UnmarshalText", pkg: "", typ: $funcType([sliceType$1], [$error], false)}, {prop: "SetString", name: "SetString", pkg: "", typ: $funcType([$String], [ptrType, $Bool], false)}, {prop: "scan", name: "scan", pkg: "math/big", typ: $funcType([io.ByteScanner, $Int], [ptrType, $Int, $error], false)}, {prop: "pow5", name: "pow5", pkg: "math/big", typ: $funcType([$Uint64], [ptrType], false)}, {prop: "Parse", name: "Parse", pkg: "", typ: $funcType([$String, $Int], [ptrType, $Int, $error], false)}, {prop: "Scan", name: "Scan", pkg: "", typ: $funcType([fmt.ScanState, $Int32], [$error], false)}, {prop: "SetPrec", name: "SetPrec", pkg: "", typ: $funcType([$Uint], [ptrType], false)}, {prop: "SetMode", name: "SetMode", pkg: "", typ: $funcType([RoundingMode], [ptrType], false)}, {prop: "Prec", name: "Prec", pkg: "", typ: $funcType([], [$Uint], false)}, {prop: "MinPrec", name: "MinPrec", pkg: "", typ: $funcType([], [$Uint], false)}, {prop: "Mode", name: "Mode", pkg: "", typ: $funcType([], [RoundingMode], false)}, {prop: "Acc", name: "Acc", pkg: "", typ: $funcType([], [Accuracy], false)}, {prop: "Sign", name: "Sign", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "MantExp", name: "MantExp", pkg: "", typ: $funcType([ptrType], [$Int], false)}, {prop: "setExpAndRound", name: "setExpAndRound", pkg: "math/big", typ: $funcType([$Int64, $Uint], [], false)}, {prop: "SetMantExp", name: "SetMantExp", pkg: "", typ: $funcType([ptrType, $Int], [ptrType], false)}, {prop: "Signbit", name: "Signbit", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsInf", name: "IsInf", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsInt", name: "IsInt", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "validate", name: "validate", pkg: "math/big", typ: $funcType([], [], false)}, {prop: "validate0", name: "validate0", pkg: "math/big", typ: $funcType([], [$String], false)}, {prop: "round", name: "round", pkg: "math/big", typ: $funcType([$Uint], [], false)}, {prop: "setBits64", name: "setBits64", pkg: "math/big", typ: $funcType([$Bool, $Uint64], [ptrType], false)}, {prop: "SetUint64", name: "SetUint64", pkg: "", typ: $funcType([$Uint64], [ptrType], false)}, {prop: "SetInt64", name: "SetInt64", pkg: "", typ: $funcType([$Int64], [ptrType], false)}, {prop: "SetFloat64", name: "SetFloat64", pkg: "", typ: $funcType([$Float64], [ptrType], false)}, {prop: "SetInt", name: "SetInt", pkg: "", typ: $funcType([ptrType$2], [ptrType], false)}, {prop: "SetRat", name: "SetRat", pkg: "", typ: $funcType([ptrType$1], [ptrType], false)}, {prop: "SetInf", name: "SetInf", pkg: "", typ: $funcType([$Bool], [ptrType], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([ptrType], [ptrType], false)}, {prop: "Copy", name: "Copy", pkg: "", typ: $funcType([ptrType], [ptrType], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([], [$Uint64, Accuracy], false)}, {prop: "Int64", name: "Int64", pkg: "", typ: $funcType([], [$Int64, Accuracy], false)}, {prop: "Float32", name: "Float32", pkg: "", typ: $funcType([], [$Float32, Accuracy], false)}, {prop: "Float64", name: "Float64", pkg: "", typ: $funcType([], [$Float64, Accuracy], false)}, {prop: "Int", name: "Int", pkg: "", typ: $funcType([ptrType$2], [ptrType$2, Accuracy], false)}, {prop: "Rat", name: "Rat", pkg: "", typ: $funcType([ptrType$1], [ptrType$1, Accuracy], false)}, {prop: "Abs", name: "Abs", pkg: "", typ: $funcType([ptrType], [ptrType], false)}, {prop: "Neg", name: "Neg", pkg: "", typ: $funcType([ptrType], [ptrType], false)}, {prop: "uadd", name: "uadd", pkg: "math/big", typ: $funcType([ptrType, ptrType], [], false)}, {prop: "usub", name: "usub", pkg: "math/big", typ: $funcType([ptrType, ptrType], [], false)}, {prop: "umul", name: "umul", pkg: "math/big", typ: $funcType([ptrType, ptrType], [], false)}, {prop: "uquo", name: "uquo", pkg: "math/big", typ: $funcType([ptrType, ptrType], [], false)}, {prop: "ucmp", name: "ucmp", pkg: "math/big", typ: $funcType([ptrType], [$Int], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([ptrType, ptrType], [ptrType], false)}, {prop: "Sub", name: "Sub", pkg: "", typ: $funcType([ptrType, ptrType], [ptrType], false)}, {prop: "Mul", name: "Mul", pkg: "", typ: $funcType([ptrType, ptrType], [ptrType], false)}, {prop: "Quo", name: "Quo", pkg: "", typ: $funcType([ptrType, ptrType], [ptrType], false)}, {prop: "Cmp", name: "Cmp", pkg: "", typ: $funcType([ptrType], [$Int], false)}, {prop: "ord", name: "ord", pkg: "math/big", typ: $funcType([], [$Int], false)}]; ErrNaN.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; RoundingMode.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; Accuracy.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; @@ -70238,12 +70045,899 @@ $packages["go/internal/typeparams"] = (function() { $pkg.$init = $init; return $pkg; })(); +$packages["go/build/constraint"] = (function() { + var $pkg = {}, $init, errors, strconv, strings, unicode, utf8, Expr, TagExpr, NotExpr, AndExpr, OrExpr, SyntaxError, exprParser, ptrType, ptrType$1, ptrType$2, ptrType$3, ptrType$4, sliceType, sliceType$1, sliceType$2, sliceType$3, funcType, ptrType$5, errNotConstraint, errComplex, GoVersion, minVersion, stringsCut, andVersion, orVersion, tag, not, andArg, and, orArg, or, Parse, IsGoBuild, splitGoBuild, parseExpr, IsPlusBuild, splitPlusBuild, parsePlusBuildExpr, isValidTag, PlusBuildLines, pushNot, appendSplitAnd, appendSplitOr; + errors = $packages["errors"]; + strconv = $packages["strconv"]; + strings = $packages["strings"]; + unicode = $packages["unicode"]; + utf8 = $packages["unicode/utf8"]; + Expr = $newType(8, $kindInterface, "constraint.Expr", true, "go/build/constraint", true, null); + TagExpr = $newType(0, $kindStruct, "constraint.TagExpr", true, "go/build/constraint", true, function(Tag_) { + this.$val = this; + if (arguments.length === 0) { + this.Tag = ""; + return; + } + this.Tag = Tag_; + }); + NotExpr = $newType(0, $kindStruct, "constraint.NotExpr", true, "go/build/constraint", true, function(X_) { + this.$val = this; + if (arguments.length === 0) { + this.X = $ifaceNil; + return; + } + this.X = X_; + }); + AndExpr = $newType(0, $kindStruct, "constraint.AndExpr", true, "go/build/constraint", true, function(X_, Y_) { + this.$val = this; + if (arguments.length === 0) { + this.X = $ifaceNil; + this.Y = $ifaceNil; + return; + } + this.X = X_; + this.Y = Y_; + }); + OrExpr = $newType(0, $kindStruct, "constraint.OrExpr", true, "go/build/constraint", true, function(X_, Y_) { + this.$val = this; + if (arguments.length === 0) { + this.X = $ifaceNil; + this.Y = $ifaceNil; + return; + } + this.X = X_; + this.Y = Y_; + }); + SyntaxError = $newType(0, $kindStruct, "constraint.SyntaxError", true, "go/build/constraint", true, function(Offset_, Err_) { + this.$val = this; + if (arguments.length === 0) { + this.Offset = 0; + this.Err = ""; + return; + } + this.Offset = Offset_; + this.Err = Err_; + }); + exprParser = $newType(0, $kindStruct, "constraint.exprParser", true, "go/build/constraint", false, function(s_, i_, tok_, isTag_, pos_) { + this.$val = this; + if (arguments.length === 0) { + this.s = ""; + this.i = 0; + this.tok = ""; + this.isTag = false; + this.pos = 0; + return; + } + this.s = s_; + this.i = i_; + this.tok = tok_; + this.isTag = isTag_; + this.pos = pos_; + }); + $pkg.Expr = Expr; + $pkg.TagExpr = TagExpr; + $pkg.NotExpr = NotExpr; + $pkg.AndExpr = AndExpr; + $pkg.OrExpr = OrExpr; + $pkg.SyntaxError = SyntaxError; + $pkg.exprParser = exprParser; + $pkg.$finishSetup = function() { + ptrType = $ptrType(AndExpr); + ptrType$1 = $ptrType(OrExpr); + ptrType$2 = $ptrType(NotExpr); + ptrType$3 = $ptrType(TagExpr); + ptrType$4 = $ptrType(SyntaxError); + sliceType = $sliceType(Expr); + sliceType$1 = $sliceType(sliceType); + sliceType$2 = $sliceType(sliceType$1); + sliceType$3 = $sliceType($String); + funcType = $funcType([$String], [$Bool], false); + ptrType$5 = $ptrType(exprParser); + GoVersion = function GoVersion$1(x) { + var {_r, v, x, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = minVersion(x, 1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + v = _r; + if (v < 0) { + $s = -1; return ""; + } + if (v === 0) { + $s = -1; return "go1"; + } + $s = -1; return "go1." + strconv.Itoa(v); + /* */ } return; } var $f = {$blk: GoVersion$1, $c: true, $r, _r, v, x, $s};return $f; + }; + $pkg.GoVersion = GoVersion; + minVersion = function minVersion$1(z, sign) { + var {$24r, $24r$1, $24r$2, _arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _tuple, _tuple$1, err, n, op, op$1, sign, v, z, z$1, z$2, z$3, z$4, z$5, $s, $r, $c} = $restore(this, {z, sign}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref = z; + /* */ if ($assertType(_ref, ptrType, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$1, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$2, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$3, true)[1]) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ($assertType(_ref, ptrType, true)[1]) { */ case 1: + z$2 = _ref.$val; + op = andVersion; + if (sign < 0) { + op = orVersion; + } + _r = minVersion(z$2.X, sign); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg = _r; + _r$1 = minVersion(z$2.Y, sign); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg$1 = _r$1; + _r$2 = op(_arg, _arg$1); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 10; case 10: return $24r; + /* } else if ($assertType(_ref, ptrType$1, true)[1]) { */ case 2: + z$3 = _ref.$val; + op$1 = orVersion; + if (sign < 0) { + op$1 = andVersion; + } + _r$3 = minVersion(z$3.X, sign); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _arg$2 = _r$3; + _r$4 = minVersion(z$3.Y, sign); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _arg$3 = _r$4; + _r$5 = op$1(_arg$2, _arg$3); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $24r$1 = _r$5; + $s = 14; case 14: return $24r$1; + /* } else if ($assertType(_ref, ptrType$2, true)[1]) { */ case 3: + z$4 = _ref.$val; + _r$6 = minVersion(z$4.X, -sign); /* */ $s = 15; case 15: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $24r$2 = _r$6; + $s = 16; case 16: return $24r$2; + /* } else if ($assertType(_ref, ptrType$3, true)[1]) { */ case 4: + z$5 = _ref.$val; + if (sign < 0) { + $s = -1; return -1; + } + if (z$5.Tag === "go1") { + $s = -1; return 0; + } + _tuple = stringsCut(z$5.Tag, "go1."); + v = _tuple[1]; + _tuple$1 = strconv.Atoi(v); + n = _tuple$1[0]; + err = _tuple$1[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return -1; + } + $s = -1; return n; + /* } else { */ case 5: + z$1 = _ref; + $s = -1; return -1; + /* } */ case 6: + $s = -1; return 0; + /* */ } return; } var $f = {$blk: minVersion$1, $c: true, $r, $24r, $24r$1, $24r$2, _arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _tuple, _tuple$1, err, n, op, op$1, sign, v, z, z$1, z$2, z$3, z$4, z$5, $s};return $f; + }; + stringsCut = function stringsCut$1(s, sep) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, after, before, found, i, s, sep; + before = ""; + after = ""; + found = false; + i = strings.Index(s, sep); + if (i >= 0) { + _tmp = $substring(s, 0, i); + _tmp$1 = $substring(s, (i + sep.length >> 0)); + _tmp$2 = true; + before = _tmp; + after = _tmp$1; + found = _tmp$2; + return [before, after, found]; + } + _tmp$3 = s; + _tmp$4 = ""; + _tmp$5 = false; + before = _tmp$3; + after = _tmp$4; + found = _tmp$5; + return [before, after, found]; + }; + andVersion = function andVersion$1(x, y) { + var x, y; + if (x > y) { + return x; + } + return y; + }; + orVersion = function orVersion$1(x, y) { + var x, y; + if (x < y) { + return x; + } + return y; + }; + $ptrType(TagExpr).prototype.Eval = function Eval(ok) { + var {$24r, _r, ok, x, $s, $r, $c} = $restore(this, {ok}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r = ok(x.Tag); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Eval, $c: true, $r, $24r, _r, ok, x, $s};return $f; + }; + $ptrType(TagExpr).prototype.String = function String() { + var x; + x = this; + return x.Tag; + }; + tag = function tag$1(tag$2) { + var tag$2; + return new TagExpr.ptr(tag$2); + }; + $ptrType(NotExpr).prototype.Eval = function Eval$1(ok) { + var {$24r, _r, ok, x, $s, $r, $c} = $restore(this, {ok}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r = x.X.Eval(ok); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = !_r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Eval$1, $c: true, $r, $24r, _r, ok, x, $s};return $f; + }; + $ptrType(NotExpr).prototype.String = function String$1() { + var {_r, _ref, s, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r = x.X.String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + s = _r; + _ref = x.X; + if ($assertType(_ref, ptrType, true)[1] || $assertType(_ref, ptrType$1, true)[1]) { + s = "(" + s + ")"; + } + $s = -1; return "!" + s; + /* */ } return; } var $f = {$blk: String$1, $c: true, $r, _r, _ref, s, x, $s};return $f; + }; + not = function not$1(x) { + var x; + return new NotExpr.ptr(x); + }; + $ptrType(AndExpr).prototype.Eval = function Eval$2(ok) { + var {_r, _r$1, ok, x, xok, yok, $s, $r, $c} = $restore(this, {ok}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r = x.X.Eval(ok); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + xok = _r; + _r$1 = x.Y.Eval(ok); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + yok = _r$1; + $s = -1; return xok && yok; + /* */ } return; } var $f = {$blk: Eval$2, $c: true, $r, _r, _r$1, ok, x, xok, yok, $s};return $f; + }; + $ptrType(AndExpr).prototype.String = function String$2() { + var {$24r, _r, _r$1, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r = andArg(x.X); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = andArg(x.Y); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r + " && " + _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: String$2, $c: true, $r, $24r, _r, _r$1, x, $s};return $f; + }; + andArg = function andArg$1(x) { + var {_r, _tuple, ok, s, x, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = x.String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + s = _r; + _tuple = $assertType(x, ptrType$1, true); + ok = _tuple[1]; + if (ok) { + s = "(" + s + ")"; + } + $s = -1; return s; + /* */ } return; } var $f = {$blk: andArg$1, $c: true, $r, _r, _tuple, ok, s, x, $s};return $f; + }; + and = function and$1(x, y) { + var x, y; + return new AndExpr.ptr(x, y); + }; + $ptrType(OrExpr).prototype.Eval = function Eval$3(ok) { + var {_r, _r$1, ok, x, xok, yok, $s, $r, $c} = $restore(this, {ok}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r = x.X.Eval(ok); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + xok = _r; + _r$1 = x.Y.Eval(ok); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + yok = _r$1; + $s = -1; return xok || yok; + /* */ } return; } var $f = {$blk: Eval$3, $c: true, $r, _r, _r$1, ok, x, xok, yok, $s};return $f; + }; + $ptrType(OrExpr).prototype.String = function String$3() { + var {$24r, _r, _r$1, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r = orArg(x.X); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = orArg(x.Y); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r + " || " + _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: String$3, $c: true, $r, $24r, _r, _r$1, x, $s};return $f; + }; + orArg = function orArg$1(x) { + var {_r, _tuple, ok, s, x, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = x.String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + s = _r; + _tuple = $assertType(x, ptrType, true); + ok = _tuple[1]; + if (ok) { + s = "(" + s + ")"; + } + $s = -1; return s; + /* */ } return; } var $f = {$blk: orArg$1, $c: true, $r, _r, _tuple, ok, s, x, $s};return $f; + }; + or = function or$1(x, y) { + var x, y; + return new OrExpr.ptr(x, y); + }; + $ptrType(SyntaxError).prototype.Error = function Error() { + var e; + e = this; + return e.Err; + }; + Parse = function Parse$1(line) { + var {$24r, _r, _r$1, _r$2, _tuple, _tuple$1, line, ok, ok$1, text, text$1, $s, $r, $c} = $restore(this, {line}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = splitGoBuild(line); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + text = _tuple[0]; + ok = _tuple[1]; + if (ok) { + $s = -1; return parseExpr(text); + } + _r$1 = splitPlusBuild(line); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + text$1 = _tuple$1[0]; + ok$1 = _tuple$1[1]; + /* */ if (ok$1) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (ok$1) { */ case 3: + _r$2 = parsePlusBuildExpr(text$1); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = [_r$2, $ifaceNil]; + $s = 6; case 6: return $24r; + /* } */ case 4: + $s = -1; return [$ifaceNil, errNotConstraint]; + /* */ } return; } var $f = {$blk: Parse$1, $c: true, $r, $24r, _r, _r$1, _r$2, _tuple, _tuple$1, line, ok, ok$1, text, text$1, $s};return $f; + }; + $pkg.Parse = Parse; + IsGoBuild = function IsGoBuild$1(line) { + var {_r, _tuple, line, ok, $s, $r, $c} = $restore(this, {line}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = splitGoBuild(line); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + ok = _tuple[1]; + $s = -1; return ok; + /* */ } return; } var $f = {$blk: IsGoBuild$1, $c: true, $r, _r, _tuple, line, ok, $s};return $f; + }; + $pkg.IsGoBuild = IsGoBuild; + splitGoBuild = function splitGoBuild$1(line) { + var {_r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, expr, line, ok, trim, $s, $r, $c} = $restore(this, {line}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + expr = ""; + ok = false; + if (line.length > 0 && (line.charCodeAt((line.length - 1 >> 0)) === 10)) { + line = $substring(line, 0, (line.length - 1 >> 0)); + } + if (strings.Contains(line, "\n")) { + _tmp = ""; + _tmp$1 = false; + expr = _tmp; + ok = _tmp$1; + $s = -1; return [expr, ok]; + } + if (!strings.HasPrefix(line, "//go:build")) { + _tmp$2 = ""; + _tmp$3 = false; + expr = _tmp$2; + ok = _tmp$3; + $s = -1; return [expr, ok]; + } + _r = strings.TrimSpace(line); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + line = _r; + line = $substring(line, 10); + _r$1 = strings.TrimSpace(line); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + trim = _r$1; + if ((line.length === trim.length) && !(line === "")) { + _tmp$4 = ""; + _tmp$5 = false; + expr = _tmp$4; + ok = _tmp$5; + $s = -1; return [expr, ok]; + } + _tmp$6 = trim; + _tmp$7 = true; + expr = _tmp$6; + ok = _tmp$7; + $s = -1; return [expr, ok]; + /* */ } return; } var $f = {$blk: splitGoBuild$1, $c: true, $r, _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, expr, line, ok, trim, $s};return $f; + }; + parseExpr = function parseExpr$1(text) { + var _tmp, _tmp$1, err, p, text, x, $deferred; + /* */ var $err = null; try { $deferred = []; $curGoroutine.deferStack.push($deferred); + x = $ifaceNil; + err = $ifaceNil; + $deferred.push([(function parseExpr·func1() { + var _tuple, e, e$1, ok; + e = $recover(); + if (!($interfaceIsEqual(e, $ifaceNil))) { + _tuple = $assertType(e, ptrType$4, true); + e$1 = _tuple[0]; + ok = _tuple[1]; + if (ok) { + err = e$1; + return; + } + $panic(e); + } + }), []]); + p = new exprParser.ptr(text, 0, "", false, 0); + x = p.or(); + if (!(p.tok === "")) { + $panic(new SyntaxError.ptr(p.pos, "unexpected token " + p.tok)); + } + _tmp = x; + _tmp$1 = $ifaceNil; + x = _tmp; + err = _tmp$1; + return [x, err]; + /* */ } catch(err) { $err = err; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [x, err]; } } + }; + $ptrType(exprParser).prototype.or = function or$2() { + var p, x; + p = this; + x = p.and(); + while (true) { + if (!(p.tok === "||")) { break; } + x = or(x, p.and()); + } + return x; + }; + $ptrType(exprParser).prototype.and = function and$2() { + var p, x; + p = this; + x = p.not(); + while (true) { + if (!(p.tok === "&&")) { break; } + x = and(x, p.not()); + } + return x; + }; + $ptrType(exprParser).prototype.not = function not$2() { + var p; + p = this; + p.lex(); + if (p.tok === "!") { + p.lex(); + if (p.tok === "!") { + $panic(new SyntaxError.ptr(p.pos, "double negation not allowed")); + } + return not(p.atom()); + } + return p.atom(); + }; + $ptrType(exprParser).prototype.atom = function atom() { + var p, pos, tok, x, $deferred; + /* */ var $err = null; try { $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + if (p.tok === "(") { + pos = p.pos; + $deferred.push([(function exprParser·atom·func1() { + var _tuple, e, e$1, ok; + e = $recover(); + if (!($interfaceIsEqual(e, $ifaceNil))) { + _tuple = $assertType(e, ptrType$4, true); + e$1 = _tuple[0]; + ok = _tuple[1]; + if (ok && e$1.Err === "unexpected end of expression") { + e$1.Err = "missing close paren"; + } + $panic(e); + } + }), []]); + x = p.or(); + if (!(p.tok === ")")) { + $panic(new SyntaxError.ptr(pos, "missing close paren")); + } + p.lex(); + return x; + } + if (!p.isTag) { + if (p.tok === "") { + $panic(new SyntaxError.ptr(p.pos, "unexpected end of expression")); + } + $panic(new SyntaxError.ptr(p.pos, "unexpected token " + p.tok)); + } + tok = p.tok; + p.lex(); + return tag(tok); + /* */ } catch(err) { $err = err; return $ifaceNil; } finally { $callDeferred($deferred, $err); } + }; + $ptrType(exprParser).prototype.lex = function lex() { + var _1, _i, _ref, _rune, _tuple, c, c$1, i, p, tag$2; + p = this; + p.isTag = false; + while (true) { + if (!(p.i < p.s.length && ((p.s.charCodeAt(p.i) === 32) || (p.s.charCodeAt(p.i) === 9)))) { break; } + p.i = p.i + (1) >> 0; + } + if (p.i >= p.s.length) { + p.tok = ""; + p.pos = p.i; + return; + } + _1 = p.s.charCodeAt(p.i); + if ((_1 === (40)) || (_1 === (41)) || (_1 === (33))) { + p.pos = p.i; + p.i = p.i + (1) >> 0; + p.tok = $substring(p.s, p.pos, p.i); + return; + } else if ((_1 === (38)) || (_1 === (124))) { + if ((p.i + 1 >> 0) >= p.s.length || !((p.s.charCodeAt((p.i + 1 >> 0)) === p.s.charCodeAt(p.i)))) { + $panic(new SyntaxError.ptr(p.i, "invalid syntax at " + ($encodeRune(((p.s.charCodeAt(p.i) >> 0)))))); + } + p.pos = p.i; + p.i = p.i + (2) >> 0; + p.tok = $substring(p.s, p.pos, p.i); + return; + } + tag$2 = $substring(p.s, p.i); + _ref = tag$2; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + i = _i; + c = _rune[0]; + if (!unicode.IsLetter(c) && !unicode.IsDigit(c) && !((c === 95)) && !((c === 46))) { + tag$2 = $substring(tag$2, 0, i); + break; + } + _i += _rune[1]; + } + if (tag$2 === "") { + _tuple = utf8.DecodeRuneInString($substring(p.s, p.i)); + c$1 = _tuple[0]; + $panic(new SyntaxError.ptr(p.i, "invalid syntax at " + ($encodeRune(c$1)))); + } + p.pos = p.i; + p.i = p.i + (tag$2.length) >> 0; + p.tok = $substring(p.s, p.pos, p.i); + p.isTag = true; + }; + IsPlusBuild = function IsPlusBuild$1(line) { + var {_r, _tuple, line, ok, $s, $r, $c} = $restore(this, {line}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = splitPlusBuild(line); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + ok = _tuple[1]; + $s = -1; return ok; + /* */ } return; } var $f = {$blk: IsPlusBuild$1, $c: true, $r, _r, _tuple, line, ok, $s};return $f; + }; + $pkg.IsPlusBuild = IsPlusBuild; + splitPlusBuild = function splitPlusBuild$1(line) { + var {_r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, expr, line, ok, trim, $s, $r, $c} = $restore(this, {line}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + expr = ""; + ok = false; + if (line.length > 0 && (line.charCodeAt((line.length - 1 >> 0)) === 10)) { + line = $substring(line, 0, (line.length - 1 >> 0)); + } + if (strings.Contains(line, "\n")) { + _tmp = ""; + _tmp$1 = false; + expr = _tmp; + ok = _tmp$1; + $s = -1; return [expr, ok]; + } + if (!strings.HasPrefix(line, "//")) { + _tmp$2 = ""; + _tmp$3 = false; + expr = _tmp$2; + ok = _tmp$3; + $s = -1; return [expr, ok]; + } + line = $substring(line, 2); + _r = strings.TrimSpace(line); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + line = _r; + if (!strings.HasPrefix(line, "+build")) { + _tmp$4 = ""; + _tmp$5 = false; + expr = _tmp$4; + ok = _tmp$5; + $s = -1; return [expr, ok]; + } + line = $substring(line, 6); + _r$1 = strings.TrimSpace(line); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + trim = _r$1; + if ((line.length === trim.length) && !(line === "")) { + _tmp$6 = ""; + _tmp$7 = false; + expr = _tmp$6; + ok = _tmp$7; + $s = -1; return [expr, ok]; + } + _tmp$8 = trim; + _tmp$9 = true; + expr = _tmp$8; + ok = _tmp$9; + $s = -1; return [expr, ok]; + /* */ } return; } var $f = {$blk: splitPlusBuild$1, $c: true, $r, _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, expr, line, ok, trim, $s};return $f; + }; + parsePlusBuildExpr = function parsePlusBuildExpr$1(text) { + var {_i, _i$1, _r, _ref, _ref$1, clause, lit, neg, text, x, y, z, $s, $r, $c} = $restore(this, {text}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = $ifaceNil; + _r = strings.Fields(text); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _ref = _r; + _i = 0; + /* while (true) { */ case 2: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } + clause = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + y = $ifaceNil; + _ref$1 = strings.Split(clause, ","); + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + lit = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + z = $ifaceNil; + neg = false; + if (strings.HasPrefix(lit, "!!") || lit === "!") { + z = tag("ignore"); + } else { + if (strings.HasPrefix(lit, "!")) { + neg = true; + lit = $substring(lit, 1); + } + if (isValidTag(lit)) { + z = tag(lit); + } else { + z = tag("ignore"); + } + if (neg) { + z = not(z); + } + } + if ($interfaceIsEqual(y, $ifaceNil)) { + y = z; + } else { + y = and(y, z); + } + _i$1++; + } + if ($interfaceIsEqual(x, $ifaceNil)) { + x = y; + } else { + x = or(x, y); + } + _i++; + $s = 2; continue; + case 3: + if ($interfaceIsEqual(x, $ifaceNil)) { + x = tag("ignore"); + } + $s = -1; return x; + /* */ } return; } var $f = {$blk: parsePlusBuildExpr$1, $c: true, $r, _i, _i$1, _r, _ref, _ref$1, clause, lit, neg, text, x, y, z, $s};return $f; + }; + isValidTag = function isValidTag$1(word) { + var _i, _ref, _rune, c, word; + if (word === "") { + return false; + } + _ref = word; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + c = _rune[0]; + if (!unicode.IsLetter(c) && !unicode.IsDigit(c) && !((c === 95)) && !((c === 46))) { + return false; + } + _i += _rune[1]; + } + return true; + }; + PlusBuildLines = function PlusBuildLines$1(x) { + var {_i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _r, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, and$3, and$4, ands, clause, i, line, lines, lit, lit$1, lits, lits$1, maxOr, or$3, or$4, or$5, or$6, split, x, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = pushNot(x, false); + split = sliceType$2.nil; + _ref = appendSplitAnd(sliceType.nil, x); + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + or$3 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + ands = sliceType$1.nil; + _ref$1 = appendSplitOr(sliceType.nil, or$3); + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + and$3 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + lits = sliceType.nil; + _ref$2 = appendSplitAnd(sliceType.nil, and$3); + _i$2 = 0; + while (true) { + if (!(_i$2 < _ref$2.$length)) { break; } + lit = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); + _ref$3 = lit; + if ($assertType(_ref$3, ptrType$3, true)[1] || $assertType(_ref$3, ptrType$2, true)[1]) { + lits = $append(lits, lit); + } else { + $s = -1; return [sliceType$3.nil, errComplex]; + } + _i$2++; + } + ands = $append(ands, lits); + _i$1++; + } + split = $append(split, ands); + _i++; + } + maxOr = 0; + _ref$4 = split; + _i$3 = 0; + while (true) { + if (!(_i$3 < _ref$4.$length)) { break; } + or$4 = ((_i$3 < 0 || _i$3 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$3]); + if (maxOr < or$4.$length) { + maxOr = or$4.$length; + } + _i$3++; + } + if (maxOr === 1) { + lits$1 = sliceType.nil; + _ref$5 = split; + _i$4 = 0; + while (true) { + if (!(_i$4 < _ref$5.$length)) { break; } + or$5 = ((_i$4 < 0 || _i$4 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$4]); + lits$1 = $appendSlice(lits$1, (0 >= or$5.$length ? ($throwRuntimeError("index out of range"), undefined) : or$5.$array[or$5.$offset + 0])); + _i$4++; + } + split = new sliceType$2([new sliceType$1([lits$1])]); + } + lines = sliceType$3.nil; + _ref$6 = split; + _i$5 = 0; + /* while (true) { */ case 1: + /* if (!(_i$5 < _ref$6.$length)) { break; } */ if(!(_i$5 < _ref$6.$length)) { $s = 2; continue; } + or$6 = ((_i$5 < 0 || _i$5 >= _ref$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$6.$array[_ref$6.$offset + _i$5]); + line = "// +build"; + _ref$7 = or$6; + _i$6 = 0; + /* while (true) { */ case 3: + /* if (!(_i$6 < _ref$7.$length)) { break; } */ if(!(_i$6 < _ref$7.$length)) { $s = 4; continue; } + and$4 = ((_i$6 < 0 || _i$6 >= _ref$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$7.$array[_ref$7.$offset + _i$6]); + clause = ""; + _ref$8 = and$4; + _i$7 = 0; + /* while (true) { */ case 5: + /* if (!(_i$7 < _ref$8.$length)) { break; } */ if(!(_i$7 < _ref$8.$length)) { $s = 6; continue; } + i = _i$7; + lit$1 = ((_i$7 < 0 || _i$7 >= _ref$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$8.$array[_ref$8.$offset + _i$7]); + if (i > 0) { + clause = clause + (","); + } + _r = lit$1.String(); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + clause = clause + (_r); + _i$7++; + $s = 5; continue; + case 6: + line = line + (" " + clause); + _i$6++; + $s = 3; continue; + case 4: + lines = $append(lines, line); + _i$5++; + $s = 1; continue; + case 2: + $s = -1; return [lines, $ifaceNil]; + /* */ } return; } var $f = {$blk: PlusBuildLines$1, $c: true, $r, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _r, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, and$3, and$4, ands, clause, i, line, lines, lit, lit$1, lits, lits$1, maxOr, or$3, or$4, or$5, or$6, split, x, $s};return $f; + }; + $pkg.PlusBuildLines = PlusBuildLines; + pushNot = function pushNot$1(x, not$3) { + var _ref, _tuple, not$3, ok, x, x$1, x$2, x$3, x$4, x$5, x1, x1$1, y1, y1$1; + _ref = x; + if ($assertType(_ref, ptrType$2, true)[1]) { + x$2 = _ref.$val; + _tuple = $assertType(x$2.X, ptrType$3, true); + ok = _tuple[1]; + if (ok && !not$3) { + return x$2; + } + return pushNot(x$2.X, !not$3); + } else if ($assertType(_ref, ptrType$3, true)[1]) { + x$3 = _ref.$val; + if (not$3) { + return new NotExpr.ptr(x$3); + } + return x$3; + } else if ($assertType(_ref, ptrType, true)[1]) { + x$4 = _ref.$val; + x1 = pushNot(x$4.X, not$3); + y1 = pushNot(x$4.Y, not$3); + if (not$3) { + return or(x1, y1); + } + if ($interfaceIsEqual(x1, x$4.X) && $interfaceIsEqual(y1, x$4.Y)) { + return x$4; + } + return and(x1, y1); + } else if ($assertType(_ref, ptrType$1, true)[1]) { + x$5 = _ref.$val; + x1$1 = pushNot(x$5.X, not$3); + y1$1 = pushNot(x$5.Y, not$3); + if (not$3) { + return and(x1$1, y1$1); + } + if ($interfaceIsEqual(x1$1, x$5.X) && $interfaceIsEqual(y1$1, x$5.Y)) { + return x$5; + } + return or(x1$1, y1$1); + } else { + x$1 = _ref; + return x$1; + } + }; + appendSplitAnd = function appendSplitAnd$1(list, x) { + var _tuple, list, ok, x, x$1; + _tuple = $assertType(x, ptrType, true); + x$1 = _tuple[0]; + ok = _tuple[1]; + if (ok) { + list = appendSplitAnd(list, x$1.X); + list = appendSplitAnd(list, x$1.Y); + return list; + } + return $append(list, x); + }; + appendSplitOr = function appendSplitOr$1(list, x) { + var _tuple, list, ok, x, x$1; + _tuple = $assertType(x, ptrType$1, true); + x$1 = _tuple[0]; + ok = _tuple[1]; + if (ok) { + list = appendSplitOr(list, x$1.X); + list = appendSplitOr(list, x$1.Y); + return list; + } + return $append(list, x); + }; + ptrType$3.methods = [{prop: "isExpr", name: "isExpr", pkg: "go/build/constraint", typ: $funcType([], [], false)}, {prop: "Eval", name: "Eval", pkg: "", typ: $funcType([funcType], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$2.methods = [{prop: "isExpr", name: "isExpr", pkg: "go/build/constraint", typ: $funcType([], [], false)}, {prop: "Eval", name: "Eval", pkg: "", typ: $funcType([funcType], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType.methods = [{prop: "isExpr", name: "isExpr", pkg: "go/build/constraint", typ: $funcType([], [], false)}, {prop: "Eval", name: "Eval", pkg: "", typ: $funcType([funcType], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$1.methods = [{prop: "isExpr", name: "isExpr", pkg: "go/build/constraint", typ: $funcType([], [], false)}, {prop: "Eval", name: "Eval", pkg: "", typ: $funcType([funcType], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$4.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$5.methods = [{prop: "or", name: "or", pkg: "go/build/constraint", typ: $funcType([], [Expr], false)}, {prop: "and", name: "and", pkg: "go/build/constraint", typ: $funcType([], [Expr], false)}, {prop: "not", name: "not", pkg: "go/build/constraint", typ: $funcType([], [Expr], false)}, {prop: "atom", name: "atom", pkg: "go/build/constraint", typ: $funcType([], [Expr], false)}, {prop: "lex", name: "lex", pkg: "go/build/constraint", typ: $funcType([], [], false)}]; + Expr.init([{prop: "Eval", name: "Eval", pkg: "", typ: $funcType([funcType], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "isExpr", name: "isExpr", pkg: "go/build/constraint", typ: $funcType([], [], false)}]); + TagExpr.init("", [{prop: "Tag", name: "Tag", embedded: false, exported: true, typ: $String, tag: ""}]); + NotExpr.init("", [{prop: "X", name: "X", embedded: false, exported: true, typ: Expr, tag: ""}]); + AndExpr.init("", [{prop: "X", name: "X", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Y", name: "Y", embedded: false, exported: true, typ: Expr, tag: ""}]); + OrExpr.init("", [{prop: "X", name: "X", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Y", name: "Y", embedded: false, exported: true, typ: Expr, tag: ""}]); + SyntaxError.init("", [{prop: "Offset", name: "Offset", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Err", name: "Err", embedded: false, exported: true, typ: $String, tag: ""}]); + exprParser.init("go/build/constraint", [{prop: "s", name: "s", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "i", name: "i", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "tok", name: "tok", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "isTag", name: "isTag", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: $Int, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unicode.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + errNotConstraint = errors.New("not a build constraint"); + errComplex = errors.New("expression too complex for // +build lines"); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); $packages["go/parser"] = (function() { - var $pkg = {}, $init, bytes, errors, fmt, ast, typeparams, scanner, token, io, fs, os, filepath, strings, resolver, parser, bailout, field, parseSpecFunction, Mode, ptrType, ptrType$1, ptrType$2, sliceType, sliceType$1, ptrType$3, interfaceType, sliceType$2, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, ptrType$11, ptrType$12, ptrType$13, ptrType$14, ptrType$15, ptrType$16, ptrType$17, ptrType$18, ptrType$19, ptrType$20, ptrType$21, ptrType$22, ptrType$23, ptrType$24, sliceType$3, ptrType$25, ptrType$26, ptrType$27, ptrType$28, ptrType$29, ptrType$30, ptrType$31, ptrType$32, ptrType$33, sliceType$4, ptrType$34, ptrType$35, ptrType$36, sliceType$5, ptrType$37, sliceType$6, ptrType$38, ptrType$39, sliceType$7, arrayType, arrayType$1, ptrType$40, ptrType$41, ptrType$42, ptrType$43, ptrType$44, structType, ptrType$45, ptrType$46, ptrType$47, sliceType$8, ptrType$48, sliceType$9, ptrType$49, sliceType$10, sliceType$11, sliceType$12, ptrType$50, ptrType$51, ptrType$53, funcType, mapType, ptrType$54, unresolved, stmtStart, declStart, exprEnd, resolveFile, trace, un, incNestLev, decNestLev, assert, unparen, isTypeSwitchAssert, extractName, isTypeElem, readSource, ParseFile; + var $pkg = {}, $init, bytes, errors, fmt, ast, constraint, typeparams, scanner, token, io, fs, os, filepath, strings, resolver, parser, bailout, field, parseSpecFunction, Mode, ptrType, ptrType$1, ptrType$2, sliceType, sliceType$1, ptrType$3, interfaceType, sliceType$2, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, ptrType$11, ptrType$12, ptrType$13, ptrType$14, ptrType$15, ptrType$16, ptrType$17, ptrType$18, ptrType$19, ptrType$20, ptrType$21, ptrType$22, ptrType$23, ptrType$24, sliceType$3, ptrType$25, ptrType$26, ptrType$27, ptrType$28, ptrType$29, ptrType$30, ptrType$31, ptrType$32, ptrType$33, ptrType$34, sliceType$4, ptrType$35, ptrType$36, ptrType$37, sliceType$5, ptrType$38, sliceType$6, ptrType$39, ptrType$40, ptrType$41, sliceType$7, arrayType, arrayType$1, ptrType$42, ptrType$43, ptrType$44, ptrType$45, ptrType$46, structType, ptrType$47, ptrType$48, ptrType$49, sliceType$8, ptrType$50, sliceType$9, ptrType$51, sliceType$10, sliceType$11, sliceType$12, ptrType$52, ptrType$53, ptrType$55, funcType, mapType, unresolved, stmtStart, declStart, exprEnd, resolveFile, trace, un, incNestLev, decNestLev, assert, unparen, isTypeSwitchAssert, extractName, isTypeElem, readSource, ParseFile; bytes = $packages["bytes"]; errors = $packages["errors"]; fmt = $packages["fmt"]; ast = $packages["go/ast"]; + constraint = $packages["go/build/constraint"]; typeparams = $packages["go/internal/typeparams"]; scanner = $packages["go/scanner"]; token = $packages["go/token"]; @@ -70274,7 +70968,7 @@ $packages["go/parser"] = (function() { this.labelScope = labelScope_; this.targetStack = targetStack_; }); - parser = $newType(0, $kindStruct, "parser.parser", true, "go/parser", false, function(file_, errors_, scanner_, mode_, trace_, indent_, comments_, leadComment_, lineComment_, pos_, tok_, lit_, syncPos_, syncCnt_, exprLev_, inRhs_, imports_, nestLev_) { + parser = $newType(0, $kindStruct, "parser.parser", true, "go/parser", false, function(file_, errors_, scanner_, mode_, trace_, indent_, comments_, leadComment_, lineComment_, top_, goVersion_, pos_, tok_, lit_, syncPos_, syncCnt_, exprLev_, inRhs_, imports_, nestLev_) { this.$val = this; if (arguments.length === 0) { this.file = ptrType$1.nil; @@ -70284,8 +70978,10 @@ $packages["go/parser"] = (function() { this.trace = false; this.indent = 0; this.comments = sliceType$11.nil; - this.leadComment = ptrType$33.nil; - this.lineComment = ptrType$33.nil; + this.leadComment = ptrType$34.nil; + this.lineComment = ptrType$34.nil; + this.top = false; + this.goVersion = ""; this.pos = 0; this.tok = 0; this.lit = ""; @@ -70306,6 +71002,8 @@ $packages["go/parser"] = (function() { this.comments = comments_; this.leadComment = leadComment_; this.lineComment = lineComment_; + this.top = top_; + this.goVersion = goVersion_; this.pos = pos_; this.tok = tok_; this.lit = lit_; @@ -70381,43 +71079,44 @@ $packages["go/parser"] = (function() { ptrType$28 = $ptrType(ast.StarExpr); ptrType$29 = $ptrType(ast.IndexExpr); ptrType$30 = $ptrType(ast.IndexListExpr); - ptrType$31 = $ptrType(scanner.ErrorList); - ptrType$32 = $ptrType(ast.Comment); - ptrType$33 = $ptrType(ast.CommentGroup); - sliceType$4 = $sliceType(ptrType$32); - ptrType$34 = $ptrType(ast.ArrayType); - ptrType$35 = $ptrType(ast.BasicLit); - ptrType$36 = $ptrType(ast.Field); - sliceType$5 = $sliceType(ptrType$36); - ptrType$37 = $ptrType(ast.Ellipsis); + ptrType$31 = $ptrType(parser); + ptrType$32 = $ptrType(scanner.ErrorList); + ptrType$33 = $ptrType(ast.Comment); + ptrType$34 = $ptrType(ast.CommentGroup); + sliceType$4 = $sliceType(ptrType$33); + ptrType$35 = $ptrType(ast.ArrayType); + ptrType$36 = $ptrType(ast.BasicLit); + ptrType$37 = $ptrType(ast.Field); + sliceType$5 = $sliceType(ptrType$37); + ptrType$38 = $ptrType(ast.Ellipsis); sliceType$6 = $sliceType(field); - ptrType$38 = $ptrType(ast.MapType); - ptrType$39 = $ptrType(ast.ChanType); + ptrType$39 = $ptrType(field); + ptrType$40 = $ptrType(ast.MapType); + ptrType$41 = $ptrType(ast.ChanType); sliceType$7 = $sliceType(ast.Stmt); arrayType = $arrayType(ast.Expr, 3); arrayType$1 = $arrayType(token.Pos, 2); - ptrType$40 = $ptrType(ast.CallExpr); - ptrType$41 = $ptrType(ast.ParenExpr); - ptrType$42 = $ptrType(ast.BadExpr); - ptrType$43 = $ptrType(ast.ReturnStmt); - ptrType$44 = $ptrType(ast.ExprStmt); + ptrType$42 = $ptrType(ast.CallExpr); + ptrType$43 = $ptrType(ast.ParenExpr); + ptrType$44 = $ptrType(ast.BadExpr); + ptrType$45 = $ptrType(ast.ReturnStmt); + ptrType$46 = $ptrType(ast.ExprStmt); structType = $structType("go/parser", [{prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "lit", name: "lit", embedded: false, exported: false, typ: $String, tag: ""}]); - ptrType$45 = $ptrType(ast.TypeAssertExpr); - ptrType$46 = $ptrType(ast.UnaryExpr); - ptrType$47 = $ptrType(ast.BinaryExpr); + ptrType$47 = $ptrType(ast.TypeAssertExpr); + ptrType$48 = $ptrType(ast.UnaryExpr); + ptrType$49 = $ptrType(ast.BinaryExpr); sliceType$8 = $sliceType(ast.Spec); - ptrType$48 = $ptrType(ast.File); + ptrType$50 = $ptrType(ast.File); sliceType$9 = $sliceType(ast.Decl); - ptrType$49 = $ptrType(ast.ImportSpec); - sliceType$10 = $sliceType(ptrType$49); - sliceType$11 = $sliceType(ptrType$33); + ptrType$51 = $ptrType(ast.ImportSpec); + sliceType$10 = $sliceType(ptrType$51); + sliceType$11 = $sliceType(ptrType$34); sliceType$12 = $sliceType($Uint8); - ptrType$50 = $ptrType(bytes.Buffer); - ptrType$51 = $ptrType(token.FileSet); - ptrType$53 = $ptrType(resolver); + ptrType$52 = $ptrType(bytes.Buffer); + ptrType$53 = $ptrType(token.FileSet); + ptrType$55 = $ptrType(resolver); funcType = $funcType([token.Pos, $String], [], false); mapType = $mapType(token.Token, $Bool); - ptrType$54 = $ptrType(parser); resolveFile = function resolveFile$1(file, handle, declErr) { var {_i, _i$1, _r, _ref, _ref$1, decl, declErr, file, handle, i, ident, pkgScope, pos, r, x, $s, $r, $c} = $restore(this, {file, handle, declErr}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: @@ -71286,26 +71985,23 @@ $packages["go/parser"] = (function() { /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: walkBody, $c: true, $r, body, r, $s, $deferred};return $f; } } }; $ptrType(parser).prototype.init = function init(fset, filename, src, mode) { - var {_r, eh, filename, fset, m, mode, p, src, $s, $r, $c} = $restore(this, {fset, filename, src, mode}); + var {_r, eh, filename, fset, mode, p, src, $s, $r, $c} = $restore(this, {fset, filename, src, mode}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = [p]; p[0] = this; _r = fset.AddFile(filename, -1, src.$length); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } p[0].file = _r; - m = 0; - if (!((((mode & 4) >>> 0) === 0))) { - m = 1; - } eh = (function(p) { return function parser·init·func1(pos, msg) { var msg, pos; - (p[0].$ptr_errors || (p[0].$ptr_errors = new ptrType$31(function() { return this.$target.errors; }, function($v) { this.$target.errors = $v; }, p[0]))).Add($clone(pos, token.Position), msg); + (p[0] === ptrType$31.nil && $throwNilPointerError(), (p[0].$ptr_errors || (p[0].$ptr_errors = new ptrType$32(function() { return this.$target.errors; }, function($v) { this.$target.errors = $v; }, p[0])))).Add($clone(pos, token.Position), msg); }; })(p); - $r = p[0].scanner.Init(p[0].file, src, eh, m); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p[0].scanner.Init(p[0].file, src, eh, 1); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + p[0].top = true; p[0].mode = mode; p[0].trace = !((((mode & 8) >>> 0) === 0)); $r = p[0].next(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } var $f = {$blk: init, $c: true, $r, _r, eh, filename, fset, m, mode, p, src, $s};return $f; + /* */ } return; } var $f = {$blk: init, $c: true, $r, _r, eh, filename, fset, mode, p, src, $s};return $f; }; $ptrType(parser).prototype.printTrace = function printTrace(a) { var {_r, _r$1, _r$2, _r$3, _r$4, a, i, p, pos, $s, $r, $c} = $restore(this, {a}); @@ -71364,7 +72060,7 @@ $packages["go/parser"] = (function() { p.nestLev = p.nestLev - (1) >> 0; }; $ptrType(parser).prototype.next0 = function next0() { - var {_r, _tuple, p, s, $s, $r, $c} = $restore(this, {}); + var {_r, _r$1, _r$2, _tuple, _tuple$1, err, p, s, x, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; /* */ if (p.trace && new token.Pos(p.pos).IsValid()) { $s = 1; continue; } @@ -71385,18 +72081,45 @@ $packages["go/parser"] = (function() { /* } */ case 7: case 3: /* } */ case 2: - _r = p.scanner.Scan(); /* */ $s = 11; case 11: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - p.pos = _tuple[0]; - p.tok = _tuple[1]; - p.lit = _tuple[2]; + /* while (true) { */ case 11: + _r = p.scanner.Scan(); /* */ $s = 13; case 13: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + p.pos = _tuple[0]; + p.tok = _tuple[1]; + p.lit = _tuple[2]; + /* */ if (p.tok === 2) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (p.tok === 2) { */ case 14: + /* */ if (p.top && strings.HasPrefix(p.lit, "//go:build")) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (p.top && strings.HasPrefix(p.lit, "//go:build")) { */ case 17: + _r$1 = constraint.Parse(p.lit); /* */ $s = 19; case 19: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + x = _tuple$1[0]; + err = _tuple$1[1]; + /* */ if ($interfaceIsEqual(err, $ifaceNil)) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if ($interfaceIsEqual(err, $ifaceNil)) { */ case 20: + _r$2 = constraint.GoVersion(x); /* */ $s = 22; case 22: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + p.goVersion = _r$2; + /* } */ case 21: + /* } */ case 18: + if (((p.mode & 4) >>> 0) === 0) { + /* continue; */ $s = 11; continue; + } + $s = 16; continue; + /* } else { */ case 15: + p.top = false; + /* } */ case 16: + /* break; */ $s = 12; continue; + case 12: $s = -1; return; - /* */ } return; } var $f = {$blk: next0, $c: true, $r, _r, _tuple, p, s, $s};return $f; + /* */ } return; } var $f = {$blk: next0, $c: true, $r, _r, _r$1, _r$2, _tuple, _tuple$1, err, p, s, x, $s};return $f; }; $ptrType(parser).prototype.consumeComment = function consumeComment() { var {_r, comment, endline, i, p, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - comment = ptrType$32.nil; + comment = ptrType$33.nil; endline = 0; p = this; _r = p.file.Line(p.pos); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } @@ -71419,7 +72142,7 @@ $packages["go/parser"] = (function() { $ptrType(parser).prototype.consumeCommentGroup = function consumeCommentGroup(n) { var {_r, _r$1, _r$2, _tuple, _v, comment, comments, endline, list, n, p, $s, $r, $c} = $restore(this, {n}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - comments = ptrType$33.nil; + comments = ptrType$34.nil; endline = 0; p = this; list = sliceType$4.nil; @@ -71430,7 +72153,7 @@ $packages["go/parser"] = (function() { _r$1 = p.file.Line(p.pos); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _v = _r$1 <= (endline + n >> 0); case 4: /* if (!(_v)) { break; } */ if(!(_v)) { $s = 3; continue; } - comment = ptrType$32.nil; + comment = ptrType$33.nil; _r$2 = p.consumeComment(); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _tuple = _r$2; comment = _tuple[0]; @@ -71447,14 +72170,14 @@ $packages["go/parser"] = (function() { var {_r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, comment, endline, p, prev, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; - p.leadComment = ptrType$33.nil; - p.lineComment = ptrType$33.nil; + p.leadComment = ptrType$34.nil; + p.lineComment = ptrType$34.nil; prev = p.pos; $r = p.next0(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* */ if (p.tok === 2) { $s = 2; continue; } /* */ $s = 3; continue; /* if (p.tok === 2) { */ case 2: - comment = ptrType$33.nil; + comment = ptrType$34.nil; endline = 0; _r = p.file.Line(p.pos); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _r$1 = p.file.Line(prev); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } @@ -71516,7 +72239,7 @@ $packages["go/parser"] = (function() { $panic((x$2 = new bailout.ptr(0, ""), new x$2.constructor.elem(x$2))); } /* } */ case 6: - (p.$ptr_errors || (p.$ptr_errors = new ptrType$31(function() { return this.$target.errors; }, function($v) { this.$target.errors = $v; }, p))).Add($clone(epos, token.Position), msg); + (p === ptrType$31.nil && $throwNilPointerError(), (p.$ptr_errors || (p.$ptr_errors = new ptrType$32(function() { return this.$target.errors; }, function($v) { this.$target.errors = $v; }, p)))).Add($clone(epos, token.Position), msg); $s = -1; return; /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: error, $c: true, $r, _r, _r$1, epos, msg, n, p, pos, x, x$1, x$2, $s, $deferred};return $f; } } }; @@ -71587,7 +72310,7 @@ $packages["go/parser"] = (function() { $ptrType(parser).prototype.expectSemi = function expectSemi() { var {_1, comment, p, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - comment = ptrType$33.nil; + comment = ptrType$34.nil; p = this; /* */ if (!((p.tok === 54)) && !((p.tok === 56))) { $s = 1; continue; } /* */ $s = 2; continue; @@ -71629,7 +72352,7 @@ $packages["go/parser"] = (function() { /* } */ case 7: case 3: /* } */ case 2: - comment = ptrType$33.nil; + comment = ptrType$34.nil; $s = -1; return comment; /* */ } return; } var $f = {$blk: expectSemi, $c: true, $r, _1, comment, p, $s};return $f; }; @@ -71894,7 +72617,7 @@ $packages["go/parser"] = (function() { elt = _r$3; $24r = new ast.ArrayType.ptr(lbrack, len, elt); $s = 17; case 17: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$34.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseArrayType, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, elt, lbrack, len, p, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$35.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseArrayType, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, elt, lbrack, len, p, $s, $deferred};return $f; } } }; $ptrType(parser).prototype.parseArrayFieldOrTypeInstance = function parseArrayFieldOrTypeInstance(x) { var {$24r, $24r$1, $24r$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, args, comma, elt, elt$1, lbrack, p, rbrack, trailingComma, x, $s, $deferred, $r, $c} = $restore(this, {x}); @@ -72069,7 +72792,7 @@ $packages["go/parser"] = (function() { typ = new ast.BadExpr.ptr(pos, p.pos); /* } */ case 9: case 4: - tag = ptrType$35.nil; + tag = ptrType$36.nil; /* */ if (p.tok === 9) { $s = 50; continue; } /* */ $s = 51; continue; /* if (p.tok === 9) { */ case 50: @@ -72081,7 +72804,7 @@ $packages["go/parser"] = (function() { field$1 = new ast.Field.ptr(doc, names, typ, tag, comment); $24r = field$1; $s = 54; case 54: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$36.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseFieldDecl, $c: true, $r, $24r, _1, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, comment, doc, field$1, name, names, p, pos, star, star$1, tag, typ, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$37.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseFieldDecl, $c: true, $r, $24r, _1, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, comment, doc, field$1, name, names, p, pos, star, star$1, tag, typ, $s, $deferred};return $f; } } }; $ptrType(parser).prototype.parseStructType = function parseStructType() { var {$24r, _r, _r$1, _r$2, _r$3, _r$4, lbrace, list, p, pos, rbrace, $s, $deferred, $r, $c} = $restore(this, {}); @@ -72144,7 +72867,7 @@ $packages["go/parser"] = (function() { elt = _r$2; $24r = new ast.Ellipsis.ptr(pos, elt); $s = 6; case 6: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$37.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseDotsType, $c: true, $r, $24r, _r, _r$1, _r$2, elt, p, pos, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$38.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseDotsType, $c: true, $r, $24r, _r, _r$1, _r$2, elt, p, pos, $s, $deferred};return $f; } } }; $ptrType(parser).prototype.parseParamDecl = function parseParamDecl(name, typeSetsOK) { var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, _1, _2, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, f, name, p, ptok, typeSetsOK, $s, $deferred, $r, $c} = $restore(this, {name, typeSetsOK}); @@ -72331,7 +73054,7 @@ $packages["go/parser"] = (function() { i = 0; while (true) { if (!(i < list.$length)) { break; } - par$1 = ((i < 0 || i >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + i]); + par$1 = ((i < 0 || i >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(list.$array, list.$offset + i, ptrType$39)); typ$1 = par$1.name; if (!(typ$1 === ptrType$2.nil)) { par$1.typ = typ$1; @@ -72352,7 +73075,7 @@ $packages["go/parser"] = (function() { i$1 = list.$length - 1 >> 0; /* while (true) { */ case 26: /* if (!(i$1 >= 0)) { break; } */ if(!(i$1 >= 0)) { $s = 27; continue; } - par$2 = ((i$1 < 0 || i$1 >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + i$1]); + par$2 = ((i$1 < 0 || i$1 >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(list.$array, list.$offset + i$1, ptrType$39)); /* */ if (!($interfaceIsEqual(par$2.typ, $ifaceNil))) { $s = 28; continue; } /* */ if (!($interfaceIsEqual(typ$2, $ifaceNil))) { $s = 29; continue; } /* */ $s = 30; continue; @@ -72403,7 +73126,7 @@ $packages["go/parser"] = (function() { if (!(_i < _ref.$length)) { break; } par$3 = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), field); assert(!($interfaceIsEqual(par$3.typ, $ifaceNil)), "nil type in unnamed parameter list"); - params[0] = $append(params[0], new ast.Field.ptr(ptrType$33.nil, sliceType.nil, par$3.typ, ptrType$35.nil, ptrType$33.nil)); + params[0] = $append(params[0], new ast.Field.ptr(ptrType$34.nil, sliceType.nil, par$3.typ, ptrType$36.nil, ptrType$34.nil)); _i++; } $24r$1 = params[0]; @@ -72414,7 +73137,7 @@ $packages["go/parser"] = (function() { addParams = (function(names, params, typ) { return function parser·parseParameterList·func1() { var field$1; assert(!($interfaceIsEqual(typ[0], $ifaceNil)), "nil type in named parameter list"); - field$1 = new ast.Field.ptr(ptrType$33.nil, names[0], typ[0], ptrType$35.nil, ptrType$33.nil); + field$1 = new ast.Field.ptr(ptrType$34.nil, names[0], typ[0], ptrType$36.nil, ptrType$34.nil); params[0] = $append(params[0], field$1); names[0] = sliceType.nil; }; })(names, params, typ); @@ -72516,7 +73239,7 @@ $packages["go/parser"] = (function() { /* */ $s = 10; continue; /* if (!($interfaceIsEqual(typ, $ifaceNil))) { */ case 9: list = $makeSlice(sliceType$5, 1); - (0 >= list.$length ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + 0] = new ast.Field.ptr(ptrType$33.nil, sliceType.nil, typ, ptrType$35.nil, ptrType$33.nil)); + (0 >= list.$length ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + 0] = new ast.Field.ptr(ptrType$34.nil, sliceType.nil, typ, ptrType$36.nil, ptrType$34.nil)); $24r$1 = new ast.FieldList.ptr(0, list, 0); $s = 11; case 11: return $24r$1; /* } */ case 10: @@ -72651,9 +73374,9 @@ $packages["go/parser"] = (function() { typ = _r$13; /* } */ case 38: /* } */ case 7: - $24r = new ast.Field.ptr(doc, idents, typ, ptrType$35.nil, ptrType$33.nil); + $24r = new ast.Field.ptr(doc, idents, typ, ptrType$36.nil, ptrType$34.nil); $s = 40; case 40: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$36.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseMethodSpec, $c: true, $r, $24r, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, doc, ident, idents, lbrack, list, name0, p, params, params$1, rbrack, results, results$1, typ, x, x$1, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$37.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseMethodSpec, $c: true, $r, $24r, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, doc, ident, idents, lbrack, list, name0, p, params, params$1, rbrack, results, results$1, typ, x, x$1, $s, $deferred};return $f; } } }; $ptrType(parser).prototype.embeddedElem = function embeddedElem(x) { var {$24r, _r, _r$1, _r$2, p, t, x, $s, $deferred, $r, $c} = $restore(this, {x}); @@ -72761,7 +73484,7 @@ $packages["go/parser"] = (function() { typ = _r$6; _r$7 = p.expectSemi(); /* */ $s = 19; case 19: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } comment = _r$7; - list = $append(list, new ast.Field.ptr(ptrType$33.nil, sliceType.nil, typ, ptrType$35.nil, comment)); + list = $append(list, new ast.Field.ptr(ptrType$34.nil, sliceType.nil, typ, ptrType$36.nil, comment)); $s = 12; continue; /* } else { */ case 11: _r$8 = p.tryIdentOrType(); /* */ $s = 20; case 20: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } @@ -72773,7 +73496,7 @@ $packages["go/parser"] = (function() { typ$1 = _r$9; _r$10 = p.expectSemi(); /* */ $s = 25; case 25: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } comment$1 = _r$10; - list = $append(list, new ast.Field.ptr(ptrType$33.nil, sliceType.nil, typ$1, ptrType$35.nil, comment$1)); + list = $append(list, new ast.Field.ptr(ptrType$34.nil, sliceType.nil, typ$1, ptrType$36.nil, comment$1)); $s = 23; continue; /* } else { */ case 22: /* break parseElements; */ $s = 7; continue s; @@ -72810,7 +73533,7 @@ $packages["go/parser"] = (function() { value = _r$5; $24r = new ast.MapType.ptr(pos, key, value); $s = 9; case 9: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$38.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseMapType, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, key, p, pos, value, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$40.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseMapType, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, key, p, pos, value, $s, $deferred};return $f; } } }; $ptrType(parser).prototype.parseChanType = function parseChanType() { var {$24r, _r, _r$1, _r$2, _r$3, arrow, dir, p, pos, value, $s, $deferred, $r, $c} = $restore(this, {}); @@ -72848,7 +73571,7 @@ $packages["go/parser"] = (function() { value = _r$3; $24r = new ast.ChanType.ptr(pos, arrow, dir, value); $s = 14; case 14: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$39.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseChanType, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, arrow, dir, p, pos, value, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$41.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseChanType, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, arrow, dir, p, pos, value, $s, $deferred};return $f; } } }; $ptrType(parser).prototype.parseTypeInstance = function parseTypeInstance(typ) { var {$24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, closing, list, opening, p, typ, $s, $deferred, $r, $c} = $restore(this, {typ}); @@ -73295,7 +74018,7 @@ $packages["go/parser"] = (function() { rparen = _r$4; $24r = new ast.CallExpr.ptr(fun, lparen, list, ellipsis, rparen); $s = 16; case 16: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$40.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseCallOrConversion, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, ellipsis, fun, list, lparen, p, rparen, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$42.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseCallOrConversion, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, ellipsis, fun, list, lparen, p, rparen, $s, $deferred};return $f; } } }; $ptrType(parser).prototype.parseValue = function parseValue() { var {$24r, $24r$1, _r, _r$1, _r$2, p, x, $s, $deferred, $r, $c} = $restore(this, {}); @@ -73401,7 +74124,7 @@ $packages["go/parser"] = (function() { }; unparen = function unparen$1(x) { var _tuple, isParen, p, x; - _tuple = $assertType(x, ptrType$41, true); + _tuple = $assertType(x, ptrType$43, true); p = _tuple[0]; isParen = _tuple[1]; if (isParen) { @@ -73479,11 +74202,11 @@ $packages["go/parser"] = (function() { /* } else if (_1 === (51)) { */ case 14: t = unparen(x); _ref = t; - /* */ if ($assertType(_ref, ptrType$42, true)[1] || $assertType(_ref, ptrType$2, true)[1] || $assertType(_ref, ptrType$5, true)[1]) { $s = 31; continue; } + /* */ if ($assertType(_ref, ptrType$44, true)[1] || $assertType(_ref, ptrType$2, true)[1] || $assertType(_ref, ptrType$5, true)[1]) { $s = 31; continue; } /* */ if ($assertType(_ref, ptrType$29, true)[1] || $assertType(_ref, ptrType$30, true)[1]) { $s = 32; continue; } - /* */ if ($assertType(_ref, ptrType$34, true)[1] || $assertType(_ref, ptrType$6, true)[1] || $assertType(_ref, ptrType$38, true)[1]) { $s = 33; continue; } + /* */ if ($assertType(_ref, ptrType$35, true)[1] || $assertType(_ref, ptrType$6, true)[1] || $assertType(_ref, ptrType$40, true)[1]) { $s = 33; continue; } /* */ $s = 34; continue; - /* if ($assertType(_ref, ptrType$42, true)[1] || $assertType(_ref, ptrType$2, true)[1] || $assertType(_ref, ptrType$5, true)[1]) { */ case 31: + /* if ($assertType(_ref, ptrType$44, true)[1] || $assertType(_ref, ptrType$2, true)[1] || $assertType(_ref, ptrType$5, true)[1]) { */ case 31: /* */ if (p[0].exprLev < 0) { $s = 36; continue; } /* */ $s = 37; continue; /* if (p[0].exprLev < 0) { */ case 36: @@ -73499,7 +74222,7 @@ $packages["go/parser"] = (function() { $s = 41; case 41: return $24r$1; /* } */ case 40: $s = 35; continue; - /* } else if ($assertType(_ref, ptrType$34, true)[1] || $assertType(_ref, ptrType$6, true)[1] || $assertType(_ref, ptrType$38, true)[1]) { */ case 33: + /* } else if ($assertType(_ref, ptrType$35, true)[1] || $assertType(_ref, ptrType$6, true)[1] || $assertType(_ref, ptrType$40, true)[1]) { */ case 33: $s = 35; continue; /* } else { */ case 34: $24r$2 = x; @@ -73557,7 +74280,7 @@ $packages["go/parser"] = (function() { $r = p.next(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _r$3 = p.parseUnaryExpr(); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } x$1 = _r$3; - _tuple = $assertType(x$1, ptrType$39, true); + _tuple = $assertType(x$1, ptrType$41, true); typ = _tuple[0]; ok = _tuple[1]; /* */ if (ok) { $s = 15; continue; } @@ -73581,7 +74304,7 @@ $packages["go/parser"] = (function() { _tmp$6 = 2; dir = _tmp$5; typ.Dir = _tmp$6; - _tuple$1 = $assertType(typ.Value, ptrType$39, true); + _tuple$1 = $assertType(typ.Value, ptrType$41, true); typ = _tuple$1[0]; ok = _tuple$1[1]; $s = 17; continue; @@ -73796,13 +74519,13 @@ $packages["go/parser"] = (function() { $r = p.error(_arg, _arg$1); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } x = t; /* } */ case 3: - _tuple = $assertType(x, ptrType$40, true); + _tuple = $assertType(x, ptrType$42, true); call = _tuple[0]; isCall = _tuple[1]; if (isCall) { $s = -1; return call; } - _tuple$1 = $assertType(x, ptrType$42, true); + _tuple$1 = $assertType(x, ptrType$44, true); isBad = _tuple$1[1]; /* */ if (!isBad) { $s = 7; continue; } /* */ $s = 8; continue; @@ -73814,7 +74537,7 @@ $packages["go/parser"] = (function() { _arg$3 = _r$5; $r = p.error(_arg$2, _arg$3); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 8: - $s = -1; return ptrType$40.nil; + $s = -1; return ptrType$42.nil; /* */ } return; } var $f = {$blk: parseCallExpr, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, call, callType, isBad, isCall, p, t, x, $s};return $f; }; $ptrType(parser).prototype.parseGoStmt = function parseGoStmt() { @@ -73833,9 +74556,9 @@ $packages["go/parser"] = (function() { call = _r$2; _r$3 = p.expectSemi(); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _r$3; - /* */ if (call === ptrType$40.nil) { $s = 7; continue; } + /* */ if (call === ptrType$42.nil) { $s = 7; continue; } /* */ $s = 8; continue; - /* if (call === ptrType$40.nil) { */ case 7: + /* if (call === ptrType$42.nil) { */ case 7: $24r = new ast.BadStmt.ptr(pos, pos + 2 >> 0); $s = 9; case 9: return $24r; /* } */ case 8: @@ -73859,9 +74582,9 @@ $packages["go/parser"] = (function() { call = _r$2; _r$3 = p.expectSemi(); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _r$3; - /* */ if (call === ptrType$40.nil) { $s = 7; continue; } + /* */ if (call === ptrType$42.nil) { $s = 7; continue; } /* */ $s = 8; continue; - /* if (call === ptrType$40.nil) { */ case 7: + /* if (call === ptrType$42.nil) { */ case 7: $24r = new ast.BadStmt.ptr(pos, pos + 5 >> 0); $s = 9; case 9: return $24r; /* } */ case 8: @@ -73893,7 +74616,7 @@ $packages["go/parser"] = (function() { _r$3; $24r = new ast.ReturnStmt.ptr(pos, x); $s = 9; case 9: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$43.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseReturnStmt, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, p, pos, x, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$45.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseReturnStmt, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, p, pos, x, $s, $deferred};return $f; } } }; $ptrType(parser).prototype.parseBranchStmt = function parseBranchStmt(tok) { var {$24r, _r, _r$1, _r$2, _r$3, label, p, pos, tok, $s, $deferred, $r, $c} = $restore(this, {tok}); @@ -73927,7 +74650,7 @@ $packages["go/parser"] = (function() { if ($interfaceIsEqual(s, $ifaceNil)) { $s = -1; return $ifaceNil; } - _tuple = $assertType(s, ptrType$44, true); + _tuple = $assertType(s, ptrType$46, true); es = _tuple[0]; isExpr = _tuple[1]; if (isExpr) { @@ -74117,7 +74840,7 @@ $packages["go/parser"] = (function() { }; isTypeSwitchAssert = function isTypeSwitchAssert$1(x) { var _tuple, a, ok, x; - _tuple = $assertType(x, ptrType$45, true); + _tuple = $assertType(x, ptrType$47, true); a = _tuple[0]; ok = _tuple[1]; return ok && $interfaceIsEqual(a.Type, $ifaceNil); @@ -74127,10 +74850,10 @@ $packages["go/parser"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; _ref = s; - /* */ if ($assertType(_ref, ptrType$44, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$46, true)[1]) { $s = 1; continue; } /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 2; continue; } /* */ $s = 3; continue; - /* if ($assertType(_ref, ptrType$44, true)[1]) { */ case 1: + /* if ($assertType(_ref, ptrType$46, true)[1]) { */ case 1: t = _ref.$val; $s = -1; return isTypeSwitchAssert(t.X); /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 2: @@ -74435,7 +75158,7 @@ $packages["go/parser"] = (function() { $s = 39; case 39: return $24r; /* } */ case 34: case 29: - x$6 = $assertType((x$5 = as.Rhs, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0])), ptrType$46).X; + x$6 = $assertType((x$5 = as.Rhs, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0])), ptrType$48).X; _r$12 = (x$7 = as.Rhs, (0 >= x$7.$length ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + 0])).Pos(); /* */ $s = 40; case 40: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } $24r$1 = new ast.RangeStmt.ptr(pos, key, value, as.TokPos, as.Tok, _r$12, x$6, body); $s = 41; case 41: return $24r$1; @@ -74692,7 +75415,7 @@ $packages["go/parser"] = (function() { /* } */ case 2: _r$1 = p.parseIdent(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } name = _r$1; - spec = new ast.TypeSpec.ptr(doc, name, ptrType$27.nil, 0, $ifaceNil, ptrType$33.nil); + spec = new ast.TypeSpec.ptr(doc, name, ptrType$27.nil, 0, $ifaceNil, ptrType$34.nil); /* */ if (p.tok === 50) { $s = 5; continue; } /* */ $s = 6; continue; /* if (p.tok === 50) { */ case 5: @@ -74753,7 +75476,7 @@ $packages["go/parser"] = (function() { if ($assertType(_ref, ptrType$2, true)[1]) { x$1 = _ref.$val; return [x$1, $ifaceNil]; - } else if ($assertType(_ref, ptrType$47, true)[1]) { + } else if ($assertType(_ref, ptrType$49, true)[1]) { x$2 = _ref.$val; _1 = x$2.Op; if (_1 === (14)) { @@ -74767,12 +75490,12 @@ $packages["go/parser"] = (function() { name$1 = _tuple$1[0]; lhs = _tuple$1[1]; if (!(name$1 === ptrType$2.nil) && !($interfaceIsEqual(lhs, $ifaceNil))) { - op = $clone(x$2, ast.BinaryExpr); + op = $clone((x$2 === ptrType$49.nil && $throwNilPointerError(), x$2), ast.BinaryExpr); op.X = lhs; return [name$1, op]; } } - } else if ($assertType(_ref, ptrType$40, true)[1]) { + } else if ($assertType(_ref, ptrType$42, true)[1]) { x$3 = _ref.$val; _tuple$2 = $assertType(x$3.Fun, ptrType$2, true); name$2 = _tuple$2[0]; @@ -74787,16 +75510,16 @@ $packages["go/parser"] = (function() { isTypeElem = function isTypeElem$1(x) { var _ref, x, x$1, x$2, x$3, x$4; _ref = x; - if ($assertType(_ref, ptrType$34, true)[1] || $assertType(_ref, ptrType$6, true)[1] || $assertType(_ref, ptrType$7, true)[1] || $assertType(_ref, ptrType$9, true)[1] || $assertType(_ref, ptrType$38, true)[1] || $assertType(_ref, ptrType$39, true)[1]) { + if ($assertType(_ref, ptrType$35, true)[1] || $assertType(_ref, ptrType$6, true)[1] || $assertType(_ref, ptrType$7, true)[1] || $assertType(_ref, ptrType$9, true)[1] || $assertType(_ref, ptrType$40, true)[1] || $assertType(_ref, ptrType$41, true)[1]) { x$1 = _ref; return true; - } else if ($assertType(_ref, ptrType$47, true)[1]) { + } else if ($assertType(_ref, ptrType$49, true)[1]) { x$2 = _ref.$val; return isTypeElem(x$2.X) || isTypeElem(x$2.Y); - } else if ($assertType(_ref, ptrType$46, true)[1]) { + } else if ($assertType(_ref, ptrType$48, true)[1]) { x$3 = _ref.$val; return x$3.Op === 88; - } else if ($assertType(_ref, ptrType$41, true)[1]) { + } else if ($assertType(_ref, ptrType$43, true)[1]) { x$4 = _ref.$val; return isTypeElem(x$4.X); } @@ -74839,7 +75562,7 @@ $packages["go/parser"] = (function() { _r$4; $s = 7; continue; /* } else { */ case 6: - _r$5 = f(ptrType$33.nil, keyword, 0); /* */ $s = 14; case 14: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$5 = f(ptrType$34.nil, keyword, 0); /* */ $s = 14; case 14: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } list = $append(list, _r$5); /* } */ case 7: $24r = new ast.GenDecl.ptr(doc, pos, keyword, lparen, list, rparen); @@ -74970,7 +75693,7 @@ $packages["go/parser"] = (function() { /* */ if (!((p.errors.Len() === 0))) { $s = 4; continue; } /* */ $s = 5; continue; /* if (!((p.errors.Len() === 0))) { */ case 4: - $24r = ptrType$48.nil; + $24r = ptrType$50.nil; $s = 6; case 6: return $24r; /* } */ case 5: doc = p.leadComment; @@ -74988,7 +75711,7 @@ $packages["go/parser"] = (function() { /* */ if (!((p.errors.Len() === 0))) { $s = 13; continue; } /* */ $s = 14; continue; /* if (!((p.errors.Len() === 0))) { */ case 13: - $24r$1 = ptrType$48.nil; + $24r$1 = ptrType$50.nil; $s = 15; case 15: return $24r$1; /* } */ case 14: decls = sliceType$9.nil; @@ -75019,7 +75742,7 @@ $packages["go/parser"] = (function() { case 24: /* } */ case 22: /* } */ case 17: - f = new ast.File.ptr(doc, pos, ident, decls, ((p.file.Base() >> 0)), (((p.file.Base() + p.file.Size() >> 0) >> 0)), ptrType.nil, p.imports, sliceType.nil, p.comments); + f = new ast.File.ptr(doc, pos, ident, decls, ((p.file.Base() >> 0)), (((p.file.Base() + p.file.Size() >> 0) >> 0)), ptrType.nil, p.imports, sliceType.nil, p.comments, p.goVersion); declErr = $throwNilPointerError; if (!((((p.mode & 16) >>> 0) === 0))) { declErr = $methodVal(p, "error"); @@ -75031,7 +75754,7 @@ $packages["go/parser"] = (function() { /* } */ case 30: $24r$2 = f; $s = 32; case 32: return $24r$2; - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$48.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseFile, $c: true, $r, $24r, $24r$1, $24r$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, declErr, decls, doc, f, ident, p, pos, prev, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$50.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseFile, $c: true, $r, $24r, $24r$1, $24r$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, declErr, decls, doc, f, ident, p, pos, prev, $s, $deferred};return $f; } } }; readSource = function readSource$1(filename, src) { var {$24r, $24r$1, _r, _r$1, _ref, filename, s, s$1, s$2, s$3, src, $s, $r, $c} = $restore(this, {filename, src}); @@ -75042,7 +75765,7 @@ $packages["go/parser"] = (function() { _ref = src; /* */ if ($assertType(_ref, $String, true)[1]) { $s = 3; continue; } /* */ if ($assertType(_ref, sliceType$12, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$50, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$52, true)[1]) { $s = 5; continue; } /* */ if ($assertType(_ref, io.Reader, true)[1]) { $s = 6; continue; } /* */ $s = 7; continue; /* if ($assertType(_ref, $String, true)[1]) { */ case 3: @@ -75051,9 +75774,9 @@ $packages["go/parser"] = (function() { /* } else if ($assertType(_ref, sliceType$12, true)[1]) { */ case 4: s$1 = _ref.$val; $s = -1; return [s$1, $ifaceNil]; - /* } else if ($assertType(_ref, ptrType$50, true)[1]) { */ case 5: + /* } else if ($assertType(_ref, ptrType$52, true)[1]) { */ case 5: s$2 = _ref.$val; - if (!(s$2 === ptrType$50.nil)) { + if (!(s$2 === ptrType$52.nil)) { $s = -1; return [s$2.Bytes(), $ifaceNil]; } $s = 7; continue; @@ -75076,9 +75799,9 @@ $packages["go/parser"] = (function() { err = [err]; f = [f]; p = [p]; - f[0] = ptrType$48.nil; + f[0] = ptrType$50.nil; err[0] = $ifaceNil; - if (fset === ptrType$51.nil) { + if (fset === ptrType$53.nil) { $panic(new $String("parser.ParseFile: no token.FileSet provided (fset == nil)")); } _r = readSource(filename, src); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } @@ -75086,13 +75809,13 @@ $packages["go/parser"] = (function() { text = _tuple[0]; err[0] = _tuple[1]; if (!($interfaceIsEqual(err[0], $ifaceNil))) { - _tmp = ptrType$48.nil; + _tmp = ptrType$50.nil; _tmp$1 = err[0]; f[0] = _tmp; err[0] = _tmp$1; $s = -1; return [f[0], err[0]]; } - p[0] = new parser.ptr(ptrType$1.nil, scanner.ErrorList.nil, new scanner.Scanner.ptr(ptrType$1.nil, "", sliceType$12.nil, $throwNilPointerError, 0, 0, 0, 0, 0, false, 0, 0), 0, false, 0, sliceType$11.nil, ptrType$33.nil, ptrType$33.nil, 0, 0, "", 0, 0, 0, false, sliceType$10.nil, 0); + p[0] = new parser.ptr(ptrType$1.nil, scanner.ErrorList.nil, new scanner.Scanner.ptr(ptrType$1.nil, "", sliceType$12.nil, $throwNilPointerError, 0, 0, 0, 0, 0, false, 0, 0), 0, false, 0, sliceType$11.nil, ptrType$34.nil, ptrType$34.nil, false, "", 0, 0, "", 0, 0, 0, false, sliceType$10.nil, 0); $deferred.push([(function(err, f, p) { return function ParseFile·func1() { var {_r$1, _tuple$1, bail, e, ok, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: @@ -75111,11 +75834,11 @@ $packages["go/parser"] = (function() { $s = 5; continue; /* } else if (!(bail.msg === "")) { */ case 4: _r$1 = p[0].file.Position(bail.pos); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $r = (p[0].$ptr_errors || (p[0].$ptr_errors = new ptrType$31(function() { return this.$target.errors; }, function($v) { this.$target.errors = $v; }, p[0]))).Add($clone(_r$1, token.Position), bail.msg); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = (p[0].$ptr_errors || (p[0].$ptr_errors = new ptrType$32(function() { return this.$target.errors; }, function($v) { this.$target.errors = $v; }, p[0]))).Add($clone(_r$1, token.Position), bail.msg); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 5: /* } */ case 2: - if (f[0] === ptrType$48.nil) { - f[0] = new ast.File.ptr(ptrType$33.nil, 0, new ast.Ident.ptr(0, "", ptrType$3.nil), sliceType$9.nil, 0, 0, ast.NewScope(ptrType.nil), sliceType$10.nil, sliceType.nil, sliceType$11.nil); + if (f[0] === ptrType$50.nil) { + f[0] = new ast.File.ptr(ptrType$34.nil, 0, new ast.Ident.ptr(0, "", ptrType$3.nil), sliceType$9.nil, 0, 0, ast.NewScope(ptrType.nil), sliceType$10.nil, sliceType.nil, sliceType$11.nil, ""); } $r = p[0].errors.Sort(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } err[0] = p[0].errors.Err(); @@ -75130,13 +75853,13 @@ $packages["go/parser"] = (function() { /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [f[0], err[0]]; } if($curGoroutine.asleep) { var $f = {$blk: ParseFile$1, $c: true, $r, $24r, _r, _r$1, _tmp, _tmp$1, _tuple, err, f, filename, fset, mode, p, src, text, $s, $deferred};return $f; } } }; $pkg.ParseFile = ParseFile; - ptrType$53.methods = [{prop: "trace", name: "trace", pkg: "go/parser", typ: $funcType([$String, sliceType$2], [], true)}, {prop: "sprintf", name: "sprintf", pkg: "go/parser", typ: $funcType([$String, sliceType$2], [$String], true)}, {prop: "openScope", name: "openScope", pkg: "go/parser", typ: $funcType([token.Pos], [], false)}, {prop: "closeScope", name: "closeScope", pkg: "go/parser", typ: $funcType([], [], false)}, {prop: "openLabelScope", name: "openLabelScope", pkg: "go/parser", typ: $funcType([], [], false)}, {prop: "closeLabelScope", name: "closeLabelScope", pkg: "go/parser", typ: $funcType([], [], false)}, {prop: "declare", name: "declare", pkg: "go/parser", typ: $funcType([$emptyInterface, $emptyInterface, ptrType, ast.ObjKind, sliceType], [], true)}, {prop: "shortVarDecl", name: "shortVarDecl", pkg: "go/parser", typ: $funcType([ptrType$11], [], false)}, {prop: "resolve", name: "resolve", pkg: "go/parser", typ: $funcType([ptrType$2, $Bool], [], false)}, {prop: "walkExprs", name: "walkExprs", pkg: "go/parser", typ: $funcType([sliceType$3], [], false)}, {prop: "walkLHS", name: "walkLHS", pkg: "go/parser", typ: $funcType([sliceType$3], [], false)}, {prop: "walkStmts", name: "walkStmts", pkg: "go/parser", typ: $funcType([sliceType$7], [], false)}, {prop: "Visit", name: "Visit", pkg: "", typ: $funcType([ast.Node], [ast.Visitor], false)}, {prop: "walkFuncType", name: "walkFuncType", pkg: "go/parser", typ: $funcType([ptrType$7], [], false)}, {prop: "resolveList", name: "resolveList", pkg: "go/parser", typ: $funcType([ptrType$27], [], false)}, {prop: "declareList", name: "declareList", pkg: "go/parser", typ: $funcType([ptrType$27, ast.ObjKind], [], false)}, {prop: "walkRecv", name: "walkRecv", pkg: "go/parser", typ: $funcType([ptrType$27], [], false)}, {prop: "walkFieldList", name: "walkFieldList", pkg: "go/parser", typ: $funcType([ptrType$27, ast.ObjKind], [], false)}, {prop: "walkTParams", name: "walkTParams", pkg: "go/parser", typ: $funcType([ptrType$27], [], false)}, {prop: "walkBody", name: "walkBody", pkg: "go/parser", typ: $funcType([ptrType$13], [], false)}]; - ptrType$54.methods = [{prop: "init", name: "init", pkg: "go/parser", typ: $funcType([ptrType$51, $String, sliceType$12, Mode], [], false)}, {prop: "printTrace", name: "printTrace", pkg: "go/parser", typ: $funcType([sliceType$2], [], true)}, {prop: "next0", name: "next0", pkg: "go/parser", typ: $funcType([], [], false)}, {prop: "consumeComment", name: "consumeComment", pkg: "go/parser", typ: $funcType([], [ptrType$32, $Int], false)}, {prop: "consumeCommentGroup", name: "consumeCommentGroup", pkg: "go/parser", typ: $funcType([$Int], [ptrType$33, $Int], false)}, {prop: "next", name: "next", pkg: "go/parser", typ: $funcType([], [], false)}, {prop: "error", name: "error", pkg: "go/parser", typ: $funcType([token.Pos, $String], [], false)}, {prop: "errorExpected", name: "errorExpected", pkg: "go/parser", typ: $funcType([token.Pos, $String], [], false)}, {prop: "expect", name: "expect", pkg: "go/parser", typ: $funcType([token.Token], [token.Pos], false)}, {prop: "expect2", name: "expect2", pkg: "go/parser", typ: $funcType([token.Token], [token.Pos], false)}, {prop: "expectClosing", name: "expectClosing", pkg: "go/parser", typ: $funcType([token.Token, $String], [token.Pos], false)}, {prop: "expectSemi", name: "expectSemi", pkg: "go/parser", typ: $funcType([], [ptrType$33], false)}, {prop: "atComma", name: "atComma", pkg: "go/parser", typ: $funcType([$String, token.Token], [$Bool], false)}, {prop: "advance", name: "advance", pkg: "go/parser", typ: $funcType([mapType], [], false)}, {prop: "safePos", name: "safePos", pkg: "go/parser", typ: $funcType([token.Pos], [token.Pos], false)}, {prop: "parseIdent", name: "parseIdent", pkg: "go/parser", typ: $funcType([], [ptrType$2], false)}, {prop: "parseIdentList", name: "parseIdentList", pkg: "go/parser", typ: $funcType([], [sliceType], false)}, {prop: "parseExprList", name: "parseExprList", pkg: "go/parser", typ: $funcType([], [sliceType$3], false)}, {prop: "parseList", name: "parseList", pkg: "go/parser", typ: $funcType([$Bool], [sliceType$3], false)}, {prop: "parseType", name: "parseType", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseQualifiedIdent", name: "parseQualifiedIdent", pkg: "go/parser", typ: $funcType([ptrType$2], [ast.Expr], false)}, {prop: "parseTypeName", name: "parseTypeName", pkg: "go/parser", typ: $funcType([ptrType$2], [ast.Expr], false)}, {prop: "parseArrayType", name: "parseArrayType", pkg: "go/parser", typ: $funcType([token.Pos, ast.Expr], [ptrType$34], false)}, {prop: "parseArrayFieldOrTypeInstance", name: "parseArrayFieldOrTypeInstance", pkg: "go/parser", typ: $funcType([ptrType$2], [ptrType$2, ast.Expr], false)}, {prop: "parseFieldDecl", name: "parseFieldDecl", pkg: "go/parser", typ: $funcType([], [ptrType$36], false)}, {prop: "parseStructType", name: "parseStructType", pkg: "go/parser", typ: $funcType([], [ptrType$6], false)}, {prop: "parsePointerType", name: "parsePointerType", pkg: "go/parser", typ: $funcType([], [ptrType$28], false)}, {prop: "parseDotsType", name: "parseDotsType", pkg: "go/parser", typ: $funcType([], [ptrType$37], false)}, {prop: "parseParamDecl", name: "parseParamDecl", pkg: "go/parser", typ: $funcType([ptrType$2, $Bool], [field], false)}, {prop: "parseParameterList", name: "parseParameterList", pkg: "go/parser", typ: $funcType([ptrType$2, ast.Expr, token.Token], [sliceType$5], false)}, {prop: "parseParameters", name: "parseParameters", pkg: "go/parser", typ: $funcType([$Bool], [ptrType$27, ptrType$27], false)}, {prop: "parseResult", name: "parseResult", pkg: "go/parser", typ: $funcType([], [ptrType$27], false)}, {prop: "parseFuncType", name: "parseFuncType", pkg: "go/parser", typ: $funcType([], [ptrType$7], false)}, {prop: "parseMethodSpec", name: "parseMethodSpec", pkg: "go/parser", typ: $funcType([], [ptrType$36], false)}, {prop: "embeddedElem", name: "embeddedElem", pkg: "go/parser", typ: $funcType([ast.Expr], [ast.Expr], false)}, {prop: "embeddedTerm", name: "embeddedTerm", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseInterfaceType", name: "parseInterfaceType", pkg: "go/parser", typ: $funcType([], [ptrType$9], false)}, {prop: "parseMapType", name: "parseMapType", pkg: "go/parser", typ: $funcType([], [ptrType$38], false)}, {prop: "parseChanType", name: "parseChanType", pkg: "go/parser", typ: $funcType([], [ptrType$39], false)}, {prop: "parseTypeInstance", name: "parseTypeInstance", pkg: "go/parser", typ: $funcType([ast.Expr], [ast.Expr], false)}, {prop: "tryIdentOrType", name: "tryIdentOrType", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseStmtList", name: "parseStmtList", pkg: "go/parser", typ: $funcType([], [sliceType$7], false)}, {prop: "parseBody", name: "parseBody", pkg: "go/parser", typ: $funcType([], [ptrType$13], false)}, {prop: "parseBlockStmt", name: "parseBlockStmt", pkg: "go/parser", typ: $funcType([], [ptrType$13], false)}, {prop: "parseFuncTypeOrLit", name: "parseFuncTypeOrLit", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseOperand", name: "parseOperand", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseSelector", name: "parseSelector", pkg: "go/parser", typ: $funcType([ast.Expr], [ast.Expr], false)}, {prop: "parseTypeAssertion", name: "parseTypeAssertion", pkg: "go/parser", typ: $funcType([ast.Expr], [ast.Expr], false)}, {prop: "parseIndexOrSliceOrInstance", name: "parseIndexOrSliceOrInstance", pkg: "go/parser", typ: $funcType([ast.Expr], [ast.Expr], false)}, {prop: "parseCallOrConversion", name: "parseCallOrConversion", pkg: "go/parser", typ: $funcType([ast.Expr], [ptrType$40], false)}, {prop: "parseValue", name: "parseValue", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseElement", name: "parseElement", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseElementList", name: "parseElementList", pkg: "go/parser", typ: $funcType([], [sliceType$3], false)}, {prop: "parseLiteralValue", name: "parseLiteralValue", pkg: "go/parser", typ: $funcType([ast.Expr], [ast.Expr], false)}, {prop: "parsePrimaryExpr", name: "parsePrimaryExpr", pkg: "go/parser", typ: $funcType([ast.Expr], [ast.Expr], false)}, {prop: "parseUnaryExpr", name: "parseUnaryExpr", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "tokPrec", name: "tokPrec", pkg: "go/parser", typ: $funcType([], [token.Token, $Int], false)}, {prop: "parseBinaryExpr", name: "parseBinaryExpr", pkg: "go/parser", typ: $funcType([ast.Expr, $Int], [ast.Expr], false)}, {prop: "parseExpr", name: "parseExpr", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseRhs", name: "parseRhs", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseSimpleStmt", name: "parseSimpleStmt", pkg: "go/parser", typ: $funcType([$Int], [ast.Stmt, $Bool], false)}, {prop: "parseCallExpr", name: "parseCallExpr", pkg: "go/parser", typ: $funcType([$String], [ptrType$40], false)}, {prop: "parseGoStmt", name: "parseGoStmt", pkg: "go/parser", typ: $funcType([], [ast.Stmt], false)}, {prop: "parseDeferStmt", name: "parseDeferStmt", pkg: "go/parser", typ: $funcType([], [ast.Stmt], false)}, {prop: "parseReturnStmt", name: "parseReturnStmt", pkg: "go/parser", typ: $funcType([], [ptrType$43], false)}, {prop: "parseBranchStmt", name: "parseBranchStmt", pkg: "go/parser", typ: $funcType([token.Token], [ptrType$12], false)}, {prop: "makeExpr", name: "makeExpr", pkg: "go/parser", typ: $funcType([ast.Stmt, $String], [ast.Expr], false)}, {prop: "parseIfHeader", name: "parseIfHeader", pkg: "go/parser", typ: $funcType([], [ast.Stmt, ast.Expr], false)}, {prop: "parseIfStmt", name: "parseIfStmt", pkg: "go/parser", typ: $funcType([], [ptrType$14], false)}, {prop: "parseCaseClause", name: "parseCaseClause", pkg: "go/parser", typ: $funcType([], [ptrType$15], false)}, {prop: "isTypeSwitchGuard", name: "isTypeSwitchGuard", pkg: "go/parser", typ: $funcType([ast.Stmt], [$Bool], false)}, {prop: "parseSwitchStmt", name: "parseSwitchStmt", pkg: "go/parser", typ: $funcType([], [ast.Stmt], false)}, {prop: "parseCommClause", name: "parseCommClause", pkg: "go/parser", typ: $funcType([], [ptrType$18], false)}, {prop: "parseSelectStmt", name: "parseSelectStmt", pkg: "go/parser", typ: $funcType([], [ptrType$19], false)}, {prop: "parseForStmt", name: "parseForStmt", pkg: "go/parser", typ: $funcType([], [ast.Stmt], false)}, {prop: "parseStmt", name: "parseStmt", pkg: "go/parser", typ: $funcType([], [ast.Stmt], false)}, {prop: "parseImportSpec", name: "parseImportSpec", pkg: "go/parser", typ: $funcType([ptrType$33, token.Token, $Int], [ast.Spec], false)}, {prop: "parseValueSpec", name: "parseValueSpec", pkg: "go/parser", typ: $funcType([ptrType$33, token.Token, $Int], [ast.Spec], false)}, {prop: "parseGenericType", name: "parseGenericType", pkg: "go/parser", typ: $funcType([ptrType$26, token.Pos, ptrType$2, ast.Expr], [], false)}, {prop: "parseTypeSpec", name: "parseTypeSpec", pkg: "go/parser", typ: $funcType([ptrType$33, token.Token, $Int], [ast.Spec], false)}, {prop: "parseGenDecl", name: "parseGenDecl", pkg: "go/parser", typ: $funcType([token.Token, parseSpecFunction], [ptrType$22], false)}, {prop: "parseFuncDecl", name: "parseFuncDecl", pkg: "go/parser", typ: $funcType([], [ptrType$23], false)}, {prop: "parseDecl", name: "parseDecl", pkg: "go/parser", typ: $funcType([mapType], [ast.Decl], false)}, {prop: "parseFile", name: "parseFile", pkg: "go/parser", typ: $funcType([], [ptrType$48], false)}]; + ptrType$55.methods = [{prop: "trace", name: "trace", pkg: "go/parser", typ: $funcType([$String, sliceType$2], [], true)}, {prop: "sprintf", name: "sprintf", pkg: "go/parser", typ: $funcType([$String, sliceType$2], [$String], true)}, {prop: "openScope", name: "openScope", pkg: "go/parser", typ: $funcType([token.Pos], [], false)}, {prop: "closeScope", name: "closeScope", pkg: "go/parser", typ: $funcType([], [], false)}, {prop: "openLabelScope", name: "openLabelScope", pkg: "go/parser", typ: $funcType([], [], false)}, {prop: "closeLabelScope", name: "closeLabelScope", pkg: "go/parser", typ: $funcType([], [], false)}, {prop: "declare", name: "declare", pkg: "go/parser", typ: $funcType([$emptyInterface, $emptyInterface, ptrType, ast.ObjKind, sliceType], [], true)}, {prop: "shortVarDecl", name: "shortVarDecl", pkg: "go/parser", typ: $funcType([ptrType$11], [], false)}, {prop: "resolve", name: "resolve", pkg: "go/parser", typ: $funcType([ptrType$2, $Bool], [], false)}, {prop: "walkExprs", name: "walkExprs", pkg: "go/parser", typ: $funcType([sliceType$3], [], false)}, {prop: "walkLHS", name: "walkLHS", pkg: "go/parser", typ: $funcType([sliceType$3], [], false)}, {prop: "walkStmts", name: "walkStmts", pkg: "go/parser", typ: $funcType([sliceType$7], [], false)}, {prop: "Visit", name: "Visit", pkg: "", typ: $funcType([ast.Node], [ast.Visitor], false)}, {prop: "walkFuncType", name: "walkFuncType", pkg: "go/parser", typ: $funcType([ptrType$7], [], false)}, {prop: "resolveList", name: "resolveList", pkg: "go/parser", typ: $funcType([ptrType$27], [], false)}, {prop: "declareList", name: "declareList", pkg: "go/parser", typ: $funcType([ptrType$27, ast.ObjKind], [], false)}, {prop: "walkRecv", name: "walkRecv", pkg: "go/parser", typ: $funcType([ptrType$27], [], false)}, {prop: "walkFieldList", name: "walkFieldList", pkg: "go/parser", typ: $funcType([ptrType$27, ast.ObjKind], [], false)}, {prop: "walkTParams", name: "walkTParams", pkg: "go/parser", typ: $funcType([ptrType$27], [], false)}, {prop: "walkBody", name: "walkBody", pkg: "go/parser", typ: $funcType([ptrType$13], [], false)}]; + ptrType$31.methods = [{prop: "init", name: "init", pkg: "go/parser", typ: $funcType([ptrType$53, $String, sliceType$12, Mode], [], false)}, {prop: "printTrace", name: "printTrace", pkg: "go/parser", typ: $funcType([sliceType$2], [], true)}, {prop: "next0", name: "next0", pkg: "go/parser", typ: $funcType([], [], false)}, {prop: "consumeComment", name: "consumeComment", pkg: "go/parser", typ: $funcType([], [ptrType$33, $Int], false)}, {prop: "consumeCommentGroup", name: "consumeCommentGroup", pkg: "go/parser", typ: $funcType([$Int], [ptrType$34, $Int], false)}, {prop: "next", name: "next", pkg: "go/parser", typ: $funcType([], [], false)}, {prop: "error", name: "error", pkg: "go/parser", typ: $funcType([token.Pos, $String], [], false)}, {prop: "errorExpected", name: "errorExpected", pkg: "go/parser", typ: $funcType([token.Pos, $String], [], false)}, {prop: "expect", name: "expect", pkg: "go/parser", typ: $funcType([token.Token], [token.Pos], false)}, {prop: "expect2", name: "expect2", pkg: "go/parser", typ: $funcType([token.Token], [token.Pos], false)}, {prop: "expectClosing", name: "expectClosing", pkg: "go/parser", typ: $funcType([token.Token, $String], [token.Pos], false)}, {prop: "expectSemi", name: "expectSemi", pkg: "go/parser", typ: $funcType([], [ptrType$34], false)}, {prop: "atComma", name: "atComma", pkg: "go/parser", typ: $funcType([$String, token.Token], [$Bool], false)}, {prop: "advance", name: "advance", pkg: "go/parser", typ: $funcType([mapType], [], false)}, {prop: "safePos", name: "safePos", pkg: "go/parser", typ: $funcType([token.Pos], [token.Pos], false)}, {prop: "parseIdent", name: "parseIdent", pkg: "go/parser", typ: $funcType([], [ptrType$2], false)}, {prop: "parseIdentList", name: "parseIdentList", pkg: "go/parser", typ: $funcType([], [sliceType], false)}, {prop: "parseExprList", name: "parseExprList", pkg: "go/parser", typ: $funcType([], [sliceType$3], false)}, {prop: "parseList", name: "parseList", pkg: "go/parser", typ: $funcType([$Bool], [sliceType$3], false)}, {prop: "parseType", name: "parseType", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseQualifiedIdent", name: "parseQualifiedIdent", pkg: "go/parser", typ: $funcType([ptrType$2], [ast.Expr], false)}, {prop: "parseTypeName", name: "parseTypeName", pkg: "go/parser", typ: $funcType([ptrType$2], [ast.Expr], false)}, {prop: "parseArrayType", name: "parseArrayType", pkg: "go/parser", typ: $funcType([token.Pos, ast.Expr], [ptrType$35], false)}, {prop: "parseArrayFieldOrTypeInstance", name: "parseArrayFieldOrTypeInstance", pkg: "go/parser", typ: $funcType([ptrType$2], [ptrType$2, ast.Expr], false)}, {prop: "parseFieldDecl", name: "parseFieldDecl", pkg: "go/parser", typ: $funcType([], [ptrType$37], false)}, {prop: "parseStructType", name: "parseStructType", pkg: "go/parser", typ: $funcType([], [ptrType$6], false)}, {prop: "parsePointerType", name: "parsePointerType", pkg: "go/parser", typ: $funcType([], [ptrType$28], false)}, {prop: "parseDotsType", name: "parseDotsType", pkg: "go/parser", typ: $funcType([], [ptrType$38], false)}, {prop: "parseParamDecl", name: "parseParamDecl", pkg: "go/parser", typ: $funcType([ptrType$2, $Bool], [field], false)}, {prop: "parseParameterList", name: "parseParameterList", pkg: "go/parser", typ: $funcType([ptrType$2, ast.Expr, token.Token], [sliceType$5], false)}, {prop: "parseParameters", name: "parseParameters", pkg: "go/parser", typ: $funcType([$Bool], [ptrType$27, ptrType$27], false)}, {prop: "parseResult", name: "parseResult", pkg: "go/parser", typ: $funcType([], [ptrType$27], false)}, {prop: "parseFuncType", name: "parseFuncType", pkg: "go/parser", typ: $funcType([], [ptrType$7], false)}, {prop: "parseMethodSpec", name: "parseMethodSpec", pkg: "go/parser", typ: $funcType([], [ptrType$37], false)}, {prop: "embeddedElem", name: "embeddedElem", pkg: "go/parser", typ: $funcType([ast.Expr], [ast.Expr], false)}, {prop: "embeddedTerm", name: "embeddedTerm", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseInterfaceType", name: "parseInterfaceType", pkg: "go/parser", typ: $funcType([], [ptrType$9], false)}, {prop: "parseMapType", name: "parseMapType", pkg: "go/parser", typ: $funcType([], [ptrType$40], false)}, {prop: "parseChanType", name: "parseChanType", pkg: "go/parser", typ: $funcType([], [ptrType$41], false)}, {prop: "parseTypeInstance", name: "parseTypeInstance", pkg: "go/parser", typ: $funcType([ast.Expr], [ast.Expr], false)}, {prop: "tryIdentOrType", name: "tryIdentOrType", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseStmtList", name: "parseStmtList", pkg: "go/parser", typ: $funcType([], [sliceType$7], false)}, {prop: "parseBody", name: "parseBody", pkg: "go/parser", typ: $funcType([], [ptrType$13], false)}, {prop: "parseBlockStmt", name: "parseBlockStmt", pkg: "go/parser", typ: $funcType([], [ptrType$13], false)}, {prop: "parseFuncTypeOrLit", name: "parseFuncTypeOrLit", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseOperand", name: "parseOperand", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseSelector", name: "parseSelector", pkg: "go/parser", typ: $funcType([ast.Expr], [ast.Expr], false)}, {prop: "parseTypeAssertion", name: "parseTypeAssertion", pkg: "go/parser", typ: $funcType([ast.Expr], [ast.Expr], false)}, {prop: "parseIndexOrSliceOrInstance", name: "parseIndexOrSliceOrInstance", pkg: "go/parser", typ: $funcType([ast.Expr], [ast.Expr], false)}, {prop: "parseCallOrConversion", name: "parseCallOrConversion", pkg: "go/parser", typ: $funcType([ast.Expr], [ptrType$42], false)}, {prop: "parseValue", name: "parseValue", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseElement", name: "parseElement", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseElementList", name: "parseElementList", pkg: "go/parser", typ: $funcType([], [sliceType$3], false)}, {prop: "parseLiteralValue", name: "parseLiteralValue", pkg: "go/parser", typ: $funcType([ast.Expr], [ast.Expr], false)}, {prop: "parsePrimaryExpr", name: "parsePrimaryExpr", pkg: "go/parser", typ: $funcType([ast.Expr], [ast.Expr], false)}, {prop: "parseUnaryExpr", name: "parseUnaryExpr", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "tokPrec", name: "tokPrec", pkg: "go/parser", typ: $funcType([], [token.Token, $Int], false)}, {prop: "parseBinaryExpr", name: "parseBinaryExpr", pkg: "go/parser", typ: $funcType([ast.Expr, $Int], [ast.Expr], false)}, {prop: "parseExpr", name: "parseExpr", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseRhs", name: "parseRhs", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseSimpleStmt", name: "parseSimpleStmt", pkg: "go/parser", typ: $funcType([$Int], [ast.Stmt, $Bool], false)}, {prop: "parseCallExpr", name: "parseCallExpr", pkg: "go/parser", typ: $funcType([$String], [ptrType$42], false)}, {prop: "parseGoStmt", name: "parseGoStmt", pkg: "go/parser", typ: $funcType([], [ast.Stmt], false)}, {prop: "parseDeferStmt", name: "parseDeferStmt", pkg: "go/parser", typ: $funcType([], [ast.Stmt], false)}, {prop: "parseReturnStmt", name: "parseReturnStmt", pkg: "go/parser", typ: $funcType([], [ptrType$45], false)}, {prop: "parseBranchStmt", name: "parseBranchStmt", pkg: "go/parser", typ: $funcType([token.Token], [ptrType$12], false)}, {prop: "makeExpr", name: "makeExpr", pkg: "go/parser", typ: $funcType([ast.Stmt, $String], [ast.Expr], false)}, {prop: "parseIfHeader", name: "parseIfHeader", pkg: "go/parser", typ: $funcType([], [ast.Stmt, ast.Expr], false)}, {prop: "parseIfStmt", name: "parseIfStmt", pkg: "go/parser", typ: $funcType([], [ptrType$14], false)}, {prop: "parseCaseClause", name: "parseCaseClause", pkg: "go/parser", typ: $funcType([], [ptrType$15], false)}, {prop: "isTypeSwitchGuard", name: "isTypeSwitchGuard", pkg: "go/parser", typ: $funcType([ast.Stmt], [$Bool], false)}, {prop: "parseSwitchStmt", name: "parseSwitchStmt", pkg: "go/parser", typ: $funcType([], [ast.Stmt], false)}, {prop: "parseCommClause", name: "parseCommClause", pkg: "go/parser", typ: $funcType([], [ptrType$18], false)}, {prop: "parseSelectStmt", name: "parseSelectStmt", pkg: "go/parser", typ: $funcType([], [ptrType$19], false)}, {prop: "parseForStmt", name: "parseForStmt", pkg: "go/parser", typ: $funcType([], [ast.Stmt], false)}, {prop: "parseStmt", name: "parseStmt", pkg: "go/parser", typ: $funcType([], [ast.Stmt], false)}, {prop: "parseImportSpec", name: "parseImportSpec", pkg: "go/parser", typ: $funcType([ptrType$34, token.Token, $Int], [ast.Spec], false)}, {prop: "parseValueSpec", name: "parseValueSpec", pkg: "go/parser", typ: $funcType([ptrType$34, token.Token, $Int], [ast.Spec], false)}, {prop: "parseGenericType", name: "parseGenericType", pkg: "go/parser", typ: $funcType([ptrType$26, token.Pos, ptrType$2, ast.Expr], [], false)}, {prop: "parseTypeSpec", name: "parseTypeSpec", pkg: "go/parser", typ: $funcType([ptrType$34, token.Token, $Int], [ast.Spec], false)}, {prop: "parseGenDecl", name: "parseGenDecl", pkg: "go/parser", typ: $funcType([token.Token, parseSpecFunction], [ptrType$22], false)}, {prop: "parseFuncDecl", name: "parseFuncDecl", pkg: "go/parser", typ: $funcType([], [ptrType$23], false)}, {prop: "parseDecl", name: "parseDecl", pkg: "go/parser", typ: $funcType([mapType], [ast.Decl], false)}, {prop: "parseFile", name: "parseFile", pkg: "go/parser", typ: $funcType([], [ptrType$50], false)}]; resolver.init("go/parser", [{prop: "handle", name: "handle", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "declErr", name: "declErr", embedded: false, exported: false, typ: funcType, tag: ""}, {prop: "pkgScope", name: "pkgScope", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "topScope", name: "topScope", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "unresolved", name: "unresolved", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "depth", name: "depth", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "labelScope", name: "labelScope", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "targetStack", name: "targetStack", embedded: false, exported: false, typ: sliceType$1, tag: ""}]); - parser.init("go/parser", [{prop: "file", name: "file", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "errors", name: "errors", embedded: false, exported: false, typ: scanner.ErrorList, tag: ""}, {prop: "scanner", name: "scanner", embedded: false, exported: false, typ: scanner.Scanner, tag: ""}, {prop: "mode", name: "mode", embedded: false, exported: false, typ: Mode, tag: ""}, {prop: "trace", name: "trace", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "indent", name: "indent", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "comments", name: "comments", embedded: false, exported: false, typ: sliceType$11, tag: ""}, {prop: "leadComment", name: "leadComment", embedded: false, exported: false, typ: ptrType$33, tag: ""}, {prop: "lineComment", name: "lineComment", embedded: false, exported: false, typ: ptrType$33, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "tok", name: "tok", embedded: false, exported: false, typ: token.Token, tag: ""}, {prop: "lit", name: "lit", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "syncPos", name: "syncPos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "syncCnt", name: "syncCnt", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "exprLev", name: "exprLev", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "inRhs", name: "inRhs", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "imports", name: "imports", embedded: false, exported: false, typ: sliceType$10, tag: ""}, {prop: "nestLev", name: "nestLev", embedded: false, exported: false, typ: $Int, tag: ""}]); + parser.init("go/parser", [{prop: "file", name: "file", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "errors", name: "errors", embedded: false, exported: false, typ: scanner.ErrorList, tag: ""}, {prop: "scanner", name: "scanner", embedded: false, exported: false, typ: scanner.Scanner, tag: ""}, {prop: "mode", name: "mode", embedded: false, exported: false, typ: Mode, tag: ""}, {prop: "trace", name: "trace", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "indent", name: "indent", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "comments", name: "comments", embedded: false, exported: false, typ: sliceType$11, tag: ""}, {prop: "leadComment", name: "leadComment", embedded: false, exported: false, typ: ptrType$34, tag: ""}, {prop: "lineComment", name: "lineComment", embedded: false, exported: false, typ: ptrType$34, tag: ""}, {prop: "top", name: "top", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "goVersion", name: "goVersion", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "tok", name: "tok", embedded: false, exported: false, typ: token.Token, tag: ""}, {prop: "lit", name: "lit", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "syncPos", name: "syncPos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "syncCnt", name: "syncCnt", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "exprLev", name: "exprLev", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "inRhs", name: "inRhs", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "imports", name: "imports", embedded: false, exported: false, typ: sliceType$10, tag: ""}, {prop: "nestLev", name: "nestLev", embedded: false, exported: false, typ: $Int, tag: ""}]); bailout.init("go/parser", [{prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "msg", name: "msg", embedded: false, exported: false, typ: $String, tag: ""}]); field.init("go/parser", [{prop: "name", name: "name", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: ast.Expr, tag: ""}]); - parseSpecFunction.init([ptrType$33, token.Token, $Int], [ast.Spec], false); + parseSpecFunction.init([ptrType$34, token.Token, $Int], [ast.Spec], false); }; $init = function() { $pkg.$init = function() {}; @@ -75145,14 +75868,15 @@ $packages["go/parser"] = (function() { $r = errors.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = fmt.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = ast.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = typeparams.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = scanner.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = token.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = io.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = fs.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = os.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = filepath.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = strings.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = constraint.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = typeparams.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = scanner.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = token.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fs.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = os.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = filepath.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } unresolved = new ast.Object.ptr(0, "", $ifaceNil, $ifaceNil, $ifaceNil); stmtStart = $makeMap(token.Token.keyFor, [{ k: 61, v: true }, { k: 64, v: true }, { k: 65, v: true }, { k: 67, v: true }, { k: 69, v: true }, { k: 70, v: true }, { k: 72, v: true }, { k: 73, v: true }, { k: 74, v: true }, { k: 80, v: true }, { k: 81, v: true }, { k: 83, v: true }, { k: 84, v: true }, { k: 85, v: true }]); declStart = $makeMap(token.Token.keyFor, [{ k: 75, v: true }, { k: 64, v: true }, { k: 84, v: true }, { k: 85, v: true }]); @@ -75162,6851 +75886,214 @@ $packages["go/parser"] = (function() { $pkg.$init = $init; return $pkg; })(); +$packages["internal/goversion"] = (function() { + var $pkg = {}, $init; + $pkg.$finishSetup = function() { + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); $packages["internal/types/errors"] = (function() { - var $pkg = {}, $init, Code; + var $pkg = {}, $init, strconv, Code, _Code_index_1, _Code_index_2, _Code_index_3, _Code_index_4, _Code_index_5; + strconv = $packages["strconv"]; Code = $newType(4, $kindInt, "errors.Code", true, "internal/types/errors", true, null); $pkg.Code = Code; $pkg.$finishSetup = function() { + Code.prototype.String = function String() { + var i, x, x$1, x$2, x$3, x$4; + i = this.$val; + if ((i === -1)) { + return "InvalidSyntaxTree"; + } else if (1 <= i && i <= 28) { + i = i - (1) >> 0; + return $substring("TestBlankPkgNameMismatchedPkgNameInvalidPkgUseBadImportPathBrokenImportImportCRenamedUnusedImportInvalidInitCycleDuplicateDeclInvalidDeclCycleInvalidTypeCycleInvalidConstInitInvalidConstValInvalidConstTypeUntypedNilUseWrongAssignCountUnassignableOperandNoNewVarMultiValAssignOpInvalidIfaceAssignInvalidChanAssignIncompatibleAssignUnaddressableFieldAssignNotATypeInvalidArrayLenBlankIfaceMethodIncomparableMapKey", ((i < 0 || i >= _Code_index_1.length) ? ($throwRuntimeError("index out of range"), undefined) : _Code_index_1[i]), (x = i + 1 >> 0, ((x < 0 || x >= _Code_index_1.length) ? ($throwRuntimeError("index out of range"), undefined) : _Code_index_1[x]))); + } else if (30 <= i && i <= 79) { + i = i - (30) >> 0; + return $substring("InvalidPtrEmbedBadRecvInvalidRecvDuplicateFieldAndMethodDuplicateMethodInvalidBlankInvalidIotaMissingInitBodyInvalidInitSigInvalidInitDeclInvalidMainDeclTooManyValuesNotAnExprTruncatedFloatNumericOverflowUndefinedOpMismatchedTypesDivByZeroNonNumericIncDecUnaddressableOperandInvalidIndirectionNonIndexableOperandInvalidIndexSwappedSliceIndicesNonSliceableOperandInvalidSliceExprInvalidShiftCountInvalidShiftOperandInvalidReceiveInvalidSendDuplicateLitKeyMissingLitKeyInvalidLitIndexOversizeArrayLitMixedStructLitInvalidStructLitMissingLitFieldDuplicateLitFieldUnexportedLitFieldInvalidLitFieldUntypedLitInvalidLitAmbiguousSelectorUndeclaredImportedNameUnexportedNameUndeclaredNameMissingFieldOrMethodBadDotDotDotSyntaxNonVariadicDotDotDotMisplacedDotDotDot", ((i < 0 || i >= _Code_index_2.length) ? ($throwRuntimeError("index out of range"), undefined) : _Code_index_2[i]), (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= _Code_index_2.length) ? ($throwRuntimeError("index out of range"), undefined) : _Code_index_2[x$1]))); + } else if (81 <= i && i <= 106) { + i = i - (81) >> 0; + return $substring("InvalidDotDotDotUncalledBuiltinInvalidAppendInvalidCapInvalidCloseInvalidCopyInvalidComplexInvalidDeleteInvalidImagInvalidLenSwappedMakeArgsInvalidMakeInvalidRealInvalidAssertImpossibleAssertInvalidConversionInvalidUntypedConversionBadOffsetofSyntaxInvalidOffsetofUnusedExprUnusedVarMissingReturnWrongResultCountOutOfScopeResultInvalidCondInvalidPostDecl", ((i < 0 || i >= _Code_index_3.length) ? ($throwRuntimeError("index out of range"), undefined) : _Code_index_3[i]), (x$2 = i + 1 >> 0, ((x$2 < 0 || x$2 >= _Code_index_3.length) ? ($throwRuntimeError("index out of range"), undefined) : _Code_index_3[x$2]))); + } else if (108 <= i && i <= 146) { + i = i - (108) >> 0; + return $substring("InvalidIterVarInvalidRangeExprMisplacedBreakMisplacedContinueMisplacedFallthroughDuplicateCaseDuplicateDefaultBadTypeKeywordInvalidTypeSwitchInvalidExprSwitchInvalidSelectCaseUndeclaredLabelDuplicateLabelMisplacedLabelUnusedLabelJumpOverDeclJumpIntoBlockInvalidMethodExprWrongArgCountInvalidCallUnusedResultsInvalidDeferInvalidGoBadDeclRepeatedDeclInvalidUnsafeAddInvalidUnsafeSliceUnsupportedFeatureNotAGenericTypeWrongTypeArgCountCannotInferTypeArgsInvalidTypeArgInvalidInstanceCycleInvalidUnionMisplacedConstraintIfaceInvalidMethodTypeParamsMisplacedTypeParamInvalidUnsafeSliceDataInvalidUnsafeString", ((i < 0 || i >= _Code_index_4.length) ? ($throwRuntimeError("index out of range"), undefined) : _Code_index_4[i]), (x$3 = i + 1 >> 0, ((x$3 < 0 || x$3 >= _Code_index_4.length) ? ($throwRuntimeError("index out of range"), undefined) : _Code_index_4[x$3]))); + } else if (148 <= i && i <= 150) { + i = i - (148) >> 0; + return $substring("InvalidClearTypeTooLargeInvalidMinMaxOperand", ((i < 0 || i >= _Code_index_5.length) ? ($throwRuntimeError("index out of range"), undefined) : _Code_index_5[i]), (x$4 = i + 1 >> 0, ((x$4 < 0 || x$4 >= _Code_index_5.length) ? ($throwRuntimeError("index out of range"), undefined) : _Code_index_5[x$4]))); + } else { + return "Code(" + strconv.FormatInt((new $Int64(0, i)), 10) + ")"; + } + }; + $ptrType(Code).prototype.String = function(...$args) { return new Code(this.$get()).String(...$args); }; + Code.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; }; $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = strconv.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _Code_index_1 = $toNativeArray($kindUint16, [0, 4, 16, 33, 46, 59, 71, 85, 97, 113, 126, 142, 158, 174, 189, 205, 218, 234, 253, 261, 277, 295, 312, 330, 354, 362, 377, 393, 411]); + _Code_index_2 = $toNativeArray($kindUint16, [0, 15, 22, 33, 56, 71, 83, 94, 109, 123, 138, 153, 166, 175, 189, 204, 215, 230, 239, 255, 275, 293, 312, 324, 343, 362, 378, 395, 414, 428, 439, 454, 467, 482, 498, 512, 528, 543, 560, 578, 593, 603, 613, 630, 652, 666, 680, 700, 718, 738, 756]); + _Code_index_3 = $toNativeArray($kindUint16, [0, 16, 31, 44, 54, 66, 77, 91, 104, 115, 125, 140, 151, 162, 175, 191, 208, 232, 249, 264, 274, 283, 296, 312, 328, 339, 354]); + _Code_index_4 = $toNativeArray($kindUint16, [0, 14, 30, 44, 61, 81, 94, 110, 124, 141, 158, 175, 190, 204, 218, 229, 241, 254, 271, 284, 295, 308, 320, 329, 336, 348, 364, 382, 400, 415, 432, 451, 465, 485, 497, 521, 544, 562, 584, 603]); + _Code_index_5 = $toNativeArray($kindUint8, [0, 12, 24, 44]); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); -$packages["regexp/syntax"] = (function() { - var $pkg = {}, $init, sort, strconv, strings, unicode, utf8, Regexp, Op, Prog, InstOp, EmptyOp, Inst, Error, ErrorCode, Flags, parser, charGroup, ranges, patchList, frag, compiler, sliceType, sliceType$1, sliceType$2, sliceType$3, ptrType, sliceType$4, arrayType, arrayType$1, ptrType$1, sliceType$5, ptrType$2, ptrType$3, ptrType$4, sliceType$6, ptrType$5, ptrType$6, ptrType$7, mapType, mapType$1, ptrType$8, instOpNames, code1, code2, code3, perlGroup, code4, code5, code6, code7, code8, code9, code10, code11, code12, code13, code14, code15, code16, code17, posixGroup, anyTable, _Op_index_0, anyRuneNotNL, anyRune, simplify1, writeRegexp, escape, IsWordChar, bw, dumpProg, u32, dumpInst, minFoldRune, repeatIsValid, cleanAlt, literalRegexp, Parse, parse, isValidCaptureName, isCharClass, matchRune, mergeCharClass, unicodeTable, cleanClass, appendLiteral, appendRange, appendFoldedRange, appendClass, appendFoldedClass, appendNegatedClass, appendTable, appendNegatedTable, negateClass, checkUTF8, nextRune, isalnum, unhex, makePatchList, Compile; +$packages["go/types"] = (function() { + var $pkg = {}, $init, bytes, heap, errors, fmt, ast, constant, typeparams, parser, token, goversion, errors$1, io, math, runtime, sort, strconv, strings, sync, atomic, unicode, utf8, version, builtinId, Union, Term, unifier, unifyMode, typeParamsById, term, Qualifier, typeWriter, _TypeSet, byUniqueMethodName, TypeParam, TypeParamList, TypeList, Type, Tuple, termlist, substMap, subster, Struct, stmtContext, valueMap, valueType, Slice, Sizes, StdSizes, Signature, SelectionKind, Selection, Scope, lazyObject, declInfo, inSourceOrder, ifacePair, comparer, Pointer, Package, operandMode, operand, objset, Object, object, color, PkgName, Const, TypeName, Var, Func, Label, Builtin, Nil, Named, instance, namedState, monoGraph, monoVertex, monoEdge, MethodSet, methodSet, Map, embeddedType, instanceLookup, block, Interface, dependency, graphNode, nodeSet, nodeQueue, tpWalker, cycleFinder, opPredicates, exprKind, error_, errorDesc, positioner, posSpan, atPos, decl, importDecl, constDecl, varDecl, typeDecl, funcDecl, Context, ctxtEntry, exprInfo, environment, importKey, dotImportKey, action, actionDesc, Checker, cleaner, bailout, Chan, ChanDir, BasicKind, BasicInfo, Basic, Array, Error, ArgumentError, Importer, ImportMode, ImporterFrom, Config, Info, TypeAndValue, Instance, Initializer, methodInfo, ptrType, ptrType$1, ptrType$2, sliceType, ptrType$3, sliceType$1, ptrType$4, sliceType$2, structType, structType$1, ptrType$5, ptrType$6, sliceType$3, sliceType$4, ptrType$7, ptrType$8, sliceType$5, ptrType$9, ptrType$10, sliceType$6, ptrType$11, ptrType$12, ptrType$13, ptrType$14, ptrType$15, sliceType$7, sliceType$8, ptrType$16, ptrType$17, sliceType$9, ptrType$18, ptrType$19, sliceType$10, ptrType$20, sliceType$11, ptrType$21, ptrType$22, ptrType$23, ptrType$24, ptrType$25, sliceType$12, ptrType$26, ptrType$27, ptrType$28, ptrType$29, ptrType$30, ptrType$31, ptrType$32, ptrType$33, ptrType$34, ptrType$35, ptrType$36, ptrType$37, ptrType$38, ptrType$39, ptrType$40, ptrType$41, ptrType$42, ptrType$43, ptrType$44, ptrType$45, ptrType$46, ptrType$47, ptrType$48, sliceType$13, ptrType$49, ptrType$50, ptrType$51, ptrType$52, ptrType$53, arrayType, ptrType$54, ptrType$55, ptrType$56, ptrType$57, sliceType$14, sliceType$15, ptrType$58, ptrType$59, ptrType$60, sliceType$16, ptrType$61, ptrType$62, sliceType$17, ptrType$63, ptrType$64, ptrType$65, ptrType$66, ptrType$67, ptrType$68, ptrType$69, ptrType$70, ptrType$71, ptrType$72, ptrType$73, ptrType$74, ptrType$75, ptrType$76, ptrType$77, ptrType$78, ptrType$79, ptrType$80, ptrType$81, ptrType$82, ptrType$83, sliceType$18, ptrType$84, ptrType$85, sliceType$19, ptrType$86, ptrType$87, ptrType$88, ptrType$89, sliceType$20, ptrType$90, ptrType$91, sliceType$21, sliceType$22, sliceType$23, ptrType$92, ptrType$93, ptrType$94, sliceType$24, sliceType$25, arrayType$1, ptrType$95, sliceType$26, ptrType$96, sliceType$27, ptrType$97, ptrType$98, ptrType$99, sliceType$28, arrayType$2, ptrType$100, ptrType$101, ptrType$102, ptrType$103, ptrType$104, sliceType$29, ptrType$105, sliceType$30, ptrType$106, ptrType$107, sliceType$31, ptrType$108, ptrType$109, ptrType$110, ptrType$111, ptrType$112, ptrType$113, sliceType$32, sliceType$33, sliceType$34, ptrType$114, ptrType$115, ptrType$116, ptrType$117, sliceType$35, sliceType$36, sliceType$37, sliceType$38, sliceType$39, sliceType$40, funcType$1, sliceType$41, sliceType$42, ptrType$118, mapType, ptrType$119, ptrType$120, mapType$1, funcType$2, funcType$3, ptrType$121, funcType$4, funcType$5, mapType$2, mapType$3, ptrType$122, funcType$6, ptrType$123, mapType$4, mapType$5, ptrType$124, ptrType$125, mapType$6, mapType$7, ptrType$126, ptrType$127, mapType$8, mapType$9, ptrType$128, mapType$10, mapType$11, funcType$7, sliceType$43, funcType$8, funcType$9, mapType$12, mapType$13, mapType$14, mapType$15, mapType$16, mapType$17, mapType$18, mapType$19, mapType$20, mapType$21, mapType$22, mapType$23, ptrType$129, funcType$10, mapType$24, mapType$25, mapType$26, mapType$27, mapType$28, mapType$29, universeIota, universeByte, universeRune, universeAny, universeError, universeComparable, invalidTypeSet, invalidTypeSet$24ptr, lastID, lastID$24ptr, emptyMethodSet, emptyMethodSet$24ptr, unaryOpPredicates, binaryOpPredicates, nopos, go0_0, go1_9, go1_13, go1_14, go1_17, go1_18, go1_20, go1_21, aliases, predeclaredConsts, predeclaredFuncs, allTermlist, topTypeSet, topTypeSet$24ptr, basicSizes, gcArchSizes, operandModeString, emptyInterface, emptyInterface$24ptr, gccgoArchSizes, stdSizes, op2str1, op2str2, errBadCgo, cgoPrefixes, parseGoVersion, makeObjList, cmpPos, defPredeclaredTypes, defPredeclaredConsts, defPredeclaredNil, defPredeclaredFuncs, init, def, NewUnion, NewTerm, parseUnion, parseTilde, overlappingTerm, flattenUnion, newUnifier, asInterface, under, coreType, coreString, match, goTypeName, RelativeTo, TypeString, WriteType, WriteSignature, newTypeWriter, newTypeHasher, subscript, computeInterfaceTypeSet, intersectTermLists, sortMethods, assertSortedMethods, computeUnionTypeSet, nextID, NewTypeParam, newTypeList, bindTParams, NewTuple, makeSubstMap, makeRenameMap, substVar, substFunc, replaceRecvType, NewStruct, embeddedFieldIdent, trimTrailingEmptyStmts, assignOp, goVal, rangeKeyVal, NewSlice, _IsSyncAtomicAlign64, SizesFor, align, NewSignatureType, SelectionString, NewScope, resolve, hasBreak, hasBreakList, validatedImportPath, dir, isBoolean, isInteger, isUnsigned, isFloat, isComplex, isNumeric, isString, isIntegerOrFloat, isConstType, isBasic, allBoolean, allInteger, allUnsigned, allNumeric, allString, allOrdered, allNumericOrString, allBasic, hasName, isTypeLit, isTyped, isUntyped, IsInterface, isNonTypeParamInterface, isTypeParam, hasEmptyTypeset, isGeneric, Comparable, comparable, hasNil, indenticalOrigin, identicalInstance, Default, maxType, NewPointer, NewPackage, operandString, isExported, Id, colorFor, NewPkgName, NewConst, NewTypeName, NewVar, NewParam, NewField, NewFunc, NewLabel, newBuiltin, writeObject, packagePrefix, ObjectString, writeFuncName, NewNamed, safeUnderlying, NewMethodSet, NewMap, LookupFieldOrMethod, lookupFieldOrMethodImpl, consolidateMultiples, lookupType, isInterfacePtr, deref, derefStructPtr, concat, fieldIndex, lookupMethod, NewInterfaceType, Instantiate, mentions, findPath, dependencyGraph, containsNil, typeParamsString, isParameterized, coreTerm, killCycles, tparamIndex, ExprString, WriteExpr, writeSigExpr, writeFieldList, writeIdentList, writeExprList, init$1, opName, underIs, isShift, isComparison, init$2, keyVal, assert, unreachable, sprintf, newErrorf, inNode, spanOf, stripAnnotations, pathString, firstInSrc, isUintptr, isUnsafePointer, isPointer, isBytesOrRunes, NewContext, representableConst, fitsFloat32, roundFloat32, fitsFloat64, roundFloat64, NewChecker, instantiatedIdent, NewChan, hasVarSize, makeSig, arrayPtrDeref, unparen, operandTypes, varTypes, measure, NewArray, Identical, IdenticalIgnoreTags; + bytes = $packages["bytes"]; + heap = $packages["container/heap"]; + errors = $packages["errors"]; + fmt = $packages["fmt"]; + ast = $packages["go/ast"]; + constant = $packages["go/constant"]; + typeparams = $packages["go/internal/typeparams"]; + parser = $packages["go/parser"]; + token = $packages["go/token"]; + goversion = $packages["internal/goversion"]; + errors$1 = $packages["internal/types/errors"]; + io = $packages["io"]; + math = $packages["math"]; + runtime = $packages["runtime"]; sort = $packages["sort"]; strconv = $packages["strconv"]; strings = $packages["strings"]; + sync = $packages["sync"]; + atomic = $packages["sync/atomic"]; unicode = $packages["unicode"]; utf8 = $packages["unicode/utf8"]; - Regexp = $newType(0, $kindStruct, "syntax.Regexp", true, "regexp/syntax", true, function(Op_, Flags_, Sub_, Sub0_, Rune_, Rune0_, Min_, Max_, Cap_, Name_) { + version = $newType(0, $kindStruct, "types.version", true, "go/types", false, function(major_, minor_) { this.$val = this; if (arguments.length === 0) { - this.Op = 0; - this.Flags = 0; - this.Sub = sliceType$4.nil; - this.Sub0 = arrayType.zero(); - this.Rune = sliceType$1.nil; - this.Rune0 = arrayType$1.zero(); - this.Min = 0; - this.Max = 0; - this.Cap = 0; - this.Name = ""; + this.major = 0; + this.minor = 0; return; } - this.Op = Op_; - this.Flags = Flags_; - this.Sub = Sub_; - this.Sub0 = Sub0_; - this.Rune = Rune_; - this.Rune0 = Rune0_; - this.Min = Min_; - this.Max = Max_; - this.Cap = Cap_; - this.Name = Name_; + this.major = major_; + this.minor = minor_; }); - Op = $newType(1, $kindUint8, "syntax.Op", true, "regexp/syntax", true, null); - Prog = $newType(0, $kindStruct, "syntax.Prog", true, "regexp/syntax", true, function(Inst_, Start_, NumCap_) { + builtinId = $newType(4, $kindInt, "types.builtinId", true, "go/types", false, null); + Union = $newType(0, $kindStruct, "types.Union", true, "go/types", true, function(terms_) { this.$val = this; if (arguments.length === 0) { - this.Inst = sliceType$6.nil; - this.Start = 0; - this.NumCap = 0; + this.terms = sliceType$11.nil; return; } - this.Inst = Inst_; - this.Start = Start_; - this.NumCap = NumCap_; + this.terms = terms_; }); - InstOp = $newType(1, $kindUint8, "syntax.InstOp", true, "regexp/syntax", true, null); - EmptyOp = $newType(1, $kindUint8, "syntax.EmptyOp", true, "regexp/syntax", true, null); - Inst = $newType(0, $kindStruct, "syntax.Inst", true, "regexp/syntax", true, function(Op_, Out_, Arg_, Rune_) { + Term = $newType(0, $kindStruct, "types.Term", true, "go/types", true, function(tilde_, typ_) { this.$val = this; if (arguments.length === 0) { - this.Op = 0; - this.Out = 0; - this.Arg = 0; - this.Rune = sliceType$1.nil; + this.tilde = false; + this.typ = $ifaceNil; return; } - this.Op = Op_; - this.Out = Out_; - this.Arg = Arg_; - this.Rune = Rune_; + this.tilde = tilde_; + this.typ = typ_; }); - Error = $newType(0, $kindStruct, "syntax.Error", true, "regexp/syntax", true, function(Code_, Expr_) { + unifier = $newType(0, $kindStruct, "types.unifier", true, "go/types", false, function(handles_, depth_, enableInterfaceInference_) { this.$val = this; if (arguments.length === 0) { - this.Code = ""; - this.Expr = ""; + this.handles = false; + this.depth = 0; + this.enableInterfaceInference = false; return; } - this.Code = Code_; - this.Expr = Expr_; + this.handles = handles_; + this.depth = depth_; + this.enableInterfaceInference = enableInterfaceInference_; }); - ErrorCode = $newType(8, $kindString, "syntax.ErrorCode", true, "regexp/syntax", true, null); - Flags = $newType(2, $kindUint16, "syntax.Flags", true, "regexp/syntax", true, null); - parser = $newType(0, $kindStruct, "syntax.parser", true, "regexp/syntax", false, function(flags_, stack_, free_, numCap_, wholeRegexp_, tmpClass_, numRegexp_, numRunes_, repeats_, height_, size_) { + unifyMode = $newType(4, $kindUint, "types.unifyMode", true, "go/types", false, null); + typeParamsById = $newType(12, $kindSlice, "types.typeParamsById", true, "go/types", false, null); + term = $newType(0, $kindStruct, "types.term", true, "go/types", false, function(tilde_, typ_) { this.$val = this; if (arguments.length === 0) { - this.flags = 0; - this.stack = sliceType$4.nil; - this.free = ptrType.nil; - this.numCap = 0; - this.wholeRegexp = ""; - this.tmpClass = sliceType$1.nil; - this.numRegexp = 0; - this.numRunes = 0; - this.repeats = new $Int64(0, 0); - this.height = false; - this.size = false; + this.tilde = false; + this.typ = $ifaceNil; return; } - this.flags = flags_; - this.stack = stack_; - this.free = free_; - this.numCap = numCap_; - this.wholeRegexp = wholeRegexp_; - this.tmpClass = tmpClass_; - this.numRegexp = numRegexp_; - this.numRunes = numRunes_; - this.repeats = repeats_; - this.height = height_; - this.size = size_; + this.tilde = tilde_; + this.typ = typ_; }); - charGroup = $newType(0, $kindStruct, "syntax.charGroup", true, "regexp/syntax", false, function(sign_, class$1_) { + Qualifier = $newType(4, $kindFunc, "types.Qualifier", true, "go/types", true, null); + typeWriter = $newType(0, $kindStruct, "types.typeWriter", true, "go/types", false, function(buf_, seen_, qf_, ctxt_, tparams_, paramNames_, tpSubscripts_, pkgInfo_) { this.$val = this; if (arguments.length === 0) { - this.sign = 0; - this.class$1 = sliceType$1.nil; + this.buf = ptrType$119.nil; + this.seen = false; + this.qf = $throwNilPointerError; + this.ctxt = ptrType$52.nil; + this.tparams = ptrType$49.nil; + this.paramNames = false; + this.tpSubscripts = false; + this.pkgInfo = false; return; } - this.sign = sign_; - this.class$1 = class$1_; + this.buf = buf_; + this.seen = seen_; + this.qf = qf_; + this.ctxt = ctxt_; + this.tparams = tparams_; + this.paramNames = paramNames_; + this.tpSubscripts = tpSubscripts_; + this.pkgInfo = pkgInfo_; }); - ranges = $newType(0, $kindStruct, "syntax.ranges", true, "regexp/syntax", false, function(p_) { + _TypeSet = $newType(0, $kindStruct, "types._TypeSet", true, "go/types", false, function(methods_, terms_, comparable_) { this.$val = this; if (arguments.length === 0) { - this.p = ptrType$2.nil; + this.methods = sliceType.nil; + this.terms = termlist.nil; + this.comparable = false; return; } - this.p = p_; + this.methods = methods_; + this.terms = terms_; + this.comparable = comparable_; }); - patchList = $newType(0, $kindStruct, "syntax.patchList", true, "regexp/syntax", false, function(head_, tail_) { + byUniqueMethodName = $newType(12, $kindSlice, "types.byUniqueMethodName", true, "go/types", false, null); + TypeParam = $newType(0, $kindStruct, "types.TypeParam", true, "go/types", true, function(check_, id_, obj_, index_, bound_) { this.$val = this; if (arguments.length === 0) { - this.head = 0; - this.tail = 0; + this.check = ptrType$6.nil; + this.id = new $Uint64(0, 0); + this.obj = ptrType$18.nil; + this.index = 0; + this.bound = $ifaceNil; return; } - this.head = head_; - this.tail = tail_; + this.check = check_; + this.id = id_; + this.obj = obj_; + this.index = index_; + this.bound = bound_; }); - frag = $newType(0, $kindStruct, "syntax.frag", true, "regexp/syntax", false, function(i_, out_, nullable_) { + TypeParamList = $newType(0, $kindStruct, "types.TypeParamList", true, "go/types", true, function(tparams_) { this.$val = this; if (arguments.length === 0) { - this.i = 0; - this.out = new patchList.ptr(0, 0); - this.nullable = false; + this.tparams = sliceType$8.nil; return; } - this.i = i_; - this.out = out_; - this.nullable = nullable_; + this.tparams = tparams_; }); - compiler = $newType(0, $kindStruct, "syntax.compiler", true, "regexp/syntax", false, function(p_) { + TypeList = $newType(0, $kindStruct, "types.TypeList", true, "go/types", true, function(types_) { this.$val = this; if (arguments.length === 0) { - this.p = ptrType$4.nil; + this.types = sliceType$3.nil; return; } - this.p = p_; - }); - $pkg.Regexp = Regexp; - $pkg.Op = Op; - $pkg.Prog = Prog; - $pkg.InstOp = InstOp; - $pkg.EmptyOp = EmptyOp; - $pkg.Inst = Inst; - $pkg.Error = Error; - $pkg.ErrorCode = ErrorCode; - $pkg.Flags = Flags; - $pkg.parser = parser; - $pkg.charGroup = charGroup; - $pkg.ranges = ranges; - $pkg.patchList = patchList; - $pkg.frag = frag; - $pkg.compiler = compiler; - $pkg.$finishSetup = function() { - sliceType = $sliceType($String); - sliceType$1 = $sliceType($Int32); - sliceType$2 = $sliceType(unicode.Range16); - sliceType$3 = $sliceType(unicode.Range32); - ptrType = $ptrType(Regexp); - sliceType$4 = $sliceType(ptrType); - arrayType = $arrayType(ptrType, 1); - arrayType$1 = $arrayType($Int32, 2); - ptrType$1 = $ptrType(strings.Builder); - sliceType$5 = $sliceType($Uint8); - ptrType$2 = $ptrType(sliceType$1); - ptrType$3 = $ptrType(unicode.RangeTable); - ptrType$4 = $ptrType(Prog); - sliceType$6 = $sliceType(Inst); - ptrType$5 = $ptrType(Inst); - ptrType$6 = $ptrType(Error); - ptrType$7 = $ptrType(parser); - mapType = $mapType(ptrType, $Int); - mapType$1 = $mapType(ptrType, $Int64); - ptrType$8 = $ptrType(compiler); - $ptrType(Regexp).prototype.Simplify = function Simplify() { - var _1, _i, _ref, i, i$1, i$2, i$3, nre, nre$1, nre2, nsub, prefix, re, sub, sub$1, sub$2, suffix, x, x$1; - re = this; - if (re === ptrType.nil) { - return ptrType.nil; - } - _1 = re.Op; - if ((_1 === (13)) || (_1 === (18)) || (_1 === (19))) { - nre = re; - _ref = re.Sub; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - nsub = sub.Simplify(); - if (nre === re && !(nsub === sub)) { - nre = new Regexp.ptr(0, 0, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, ""); - Regexp.copy(nre, re); - nre.Rune = sliceType$1.nil; - nre.Sub = $appendSlice($subslice(new sliceType$4(nre.Sub0), 0, 0), $subslice(re.Sub, 0, i)); - } - if (!(nre === re)) { - nre.Sub = $append(nre.Sub, nsub); - } - _i++; - } - return nre; - } else if ((_1 === (14)) || (_1 === (15)) || (_1 === (16))) { - sub$1 = (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).Simplify(); - return simplify1(re.Op, re.Flags, sub$1, re); - } else if (_1 === (17)) { - if ((re.Min === 0) && (re.Max === 0)) { - return new Regexp.ptr(2, 0, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, ""); - } - sub$2 = (x$1 = re.Sub, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])).Simplify(); - if (re.Max === -1) { - if (re.Min === 0) { - return simplify1(14, re.Flags, sub$2, ptrType.nil); - } - if (re.Min === 1) { - return simplify1(15, re.Flags, sub$2, ptrType.nil); - } - nre$1 = new Regexp.ptr(18, 0, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, ""); - nre$1.Sub = $subslice(new sliceType$4(nre$1.Sub0), 0, 0); - i$1 = 0; - while (true) { - if (!(i$1 < (re.Min - 1 >> 0))) { break; } - nre$1.Sub = $append(nre$1.Sub, sub$2); - i$1 = i$1 + (1) >> 0; - } - nre$1.Sub = $append(nre$1.Sub, simplify1(15, re.Flags, sub$2, ptrType.nil)); - return nre$1; - } - if ((re.Min === 1) && (re.Max === 1)) { - return sub$2; - } - prefix = ptrType.nil; - if (re.Min > 0) { - prefix = new Regexp.ptr(18, 0, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, ""); - prefix.Sub = $subslice(new sliceType$4(prefix.Sub0), 0, 0); - i$2 = 0; - while (true) { - if (!(i$2 < re.Min)) { break; } - prefix.Sub = $append(prefix.Sub, sub$2); - i$2 = i$2 + (1) >> 0; - } - } - if (re.Max > re.Min) { - suffix = simplify1(16, re.Flags, sub$2, ptrType.nil); - i$3 = re.Min + 1 >> 0; - while (true) { - if (!(i$3 < re.Max)) { break; } - nre2 = new Regexp.ptr(18, 0, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, ""); - nre2.Sub = $append($subslice(new sliceType$4(nre2.Sub0), 0, 0), sub$2, suffix); - suffix = simplify1(16, re.Flags, nre2, ptrType.nil); - i$3 = i$3 + (1) >> 0; - } - if (prefix === ptrType.nil) { - return suffix; - } - prefix.Sub = $append(prefix.Sub, suffix); - } - if (!(prefix === ptrType.nil)) { - return prefix; - } - return new Regexp.ptr(1, 0, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, ""); - } - return re; - }; - simplify1 = function simplify1$1(op, flags, sub, re) { - var flags, op, re, sub, x; - if (sub.Op === 2) { - return sub; - } - if ((op === sub.Op) && (((flags & 32) >>> 0) === ((sub.Flags & 32) >>> 0))) { - return sub; - } - if (!(re === ptrType.nil) && (re.Op === op) && (((re.Flags & 32) >>> 0) === ((flags & 32) >>> 0)) && sub === (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))) { - return re; - } - re = new Regexp.ptr(op, flags, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, ""); - re.Sub = $append($subslice(new sliceType$4(re.Sub0), 0, 0), sub); - return re; - }; - $ptrType(Regexp).prototype.Equal = function Equal(y) { - var _1, _i, _i$1, _ref, _ref$1, i, i$1, r, sub, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, y; - x = this; - if (x === ptrType.nil || y === ptrType.nil) { - return x === y; - } - if (!((x.Op === y.Op))) { - return false; - } - _1 = x.Op; - if (_1 === (10)) { - if (!((((x.Flags & 256) >>> 0) === ((y.Flags & 256) >>> 0)))) { - return false; - } - } else if ((_1 === (3)) || (_1 === (4))) { - if (!((x.Rune.$length === y.Rune.$length))) { - return false; - } - _ref = x.Rune; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - r = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (!((r === (x$1 = y.Rune, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i]))))) { - return false; - } - _i++; - } - } else if ((_1 === (19)) || (_1 === (18))) { - if (!((x.Sub.$length === y.Sub.$length))) { - return false; - } - _ref$1 = x.Sub; - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - i$1 = _i$1; - sub = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - if (!sub.Equal((x$2 = y.Sub, ((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$1])))) { - return false; - } - _i$1++; - } - } else if ((_1 === (14)) || (_1 === (15)) || (_1 === (16))) { - if (!((((x.Flags & 32) >>> 0) === ((y.Flags & 32) >>> 0))) || !(x$3 = x.Sub, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])).Equal((x$4 = y.Sub, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])))) { - return false; - } - } else if (_1 === (17)) { - if (!((((x.Flags & 32) >>> 0) === ((y.Flags & 32) >>> 0))) || !((x.Min === y.Min)) || !((x.Max === y.Max)) || !(x$5 = x.Sub, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0])).Equal((x$6 = y.Sub, (0 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + 0])))) { - return false; - } - } else if (_1 === (13)) { - if (!((x.Cap === y.Cap)) || !(x.Name === y.Name) || !(x$7 = x.Sub, (0 >= x$7.$length ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + 0])).Equal((x$8 = y.Sub, (0 >= x$8.$length ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + 0])))) { - return false; - } - } - return true; - }; - writeRegexp = function writeRegexp$1(b, re) { - var _1, _2, _i, _i$1, _i$2, _r, _ref, _ref$1, _ref$2, _tmp, _tmp$1, _tmp$2, _tmp$3, b, hi, hi$1, i, i$1, i$2, lo, lo$1, r, re, sub, sub$1, sub$2, x, x$1, x$10, x$11, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; - switch (0) { default: - _1 = re.Op; - if (_1 === (1)) { - b.WriteString("[^\\x00-\\x{10FFFF}]"); - } else if (_1 === (2)) { - b.WriteString("(?:)"); - } else if (_1 === (3)) { - if (!((((re.Flags & 1) >>> 0) === 0))) { - b.WriteString("(?i:"); - } - _ref = re.Rune; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - r = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - escape(b, r, false); - _i++; - } - if (!((((re.Flags & 1) >>> 0) === 0))) { - b.WriteString(")"); - } - } else if (_1 === (4)) { - if (!(((_r = re.Rune.$length % 2, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) === 0))) { - b.WriteString("[invalid char class]"); - break; - } - b.WriteRune(91); - if (re.Rune.$length === 0) { - b.WriteString("^\\x00-\\x{10FFFF}"); - } else if (((x = re.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) === 0) && ((x$1 = re.Rune, x$2 = re.Rune.$length - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])) === 1114111) && re.Rune.$length > 2) { - b.WriteRune(94); - i = 1; - while (true) { - if (!(i < (re.Rune.$length - 1 >> 0))) { break; } - _tmp = (x$3 = re.Rune, ((i < 0 || i >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + i])) + 1 >> 0; - _tmp$1 = (x$4 = re.Rune, x$5 = i + 1 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])) - 1 >> 0; - lo = _tmp; - hi = _tmp$1; - escape(b, lo, lo === 45); - if (!((lo === hi))) { - b.WriteRune(45); - escape(b, hi, hi === 45); - } - i = i + (2) >> 0; - } - } else { - i$1 = 0; - while (true) { - if (!(i$1 < re.Rune.$length)) { break; } - _tmp$2 = (x$6 = re.Rune, ((i$1 < 0 || i$1 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + i$1])); - _tmp$3 = (x$7 = re.Rune, x$8 = i$1 + 1 >> 0, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8])); - lo$1 = _tmp$2; - hi$1 = _tmp$3; - escape(b, lo$1, lo$1 === 45); - if (!((lo$1 === hi$1))) { - b.WriteRune(45); - escape(b, hi$1, hi$1 === 45); - } - i$1 = i$1 + (2) >> 0; - } - } - b.WriteRune(93); - } else if (_1 === (5)) { - b.WriteString("(?-s:.)"); - } else if (_1 === (6)) { - b.WriteString("(?s:.)"); - } else if (_1 === (7)) { - b.WriteString("(?m:^)"); - } else if (_1 === (8)) { - b.WriteString("(?m:$)"); - } else if (_1 === (9)) { - b.WriteString("\\A"); - } else if (_1 === (10)) { - if (!((((re.Flags & 256) >>> 0) === 0))) { - b.WriteString("(?-m:$)"); - } else { - b.WriteString("\\z"); - } - } else if (_1 === (11)) { - b.WriteString("\\b"); - } else if (_1 === (12)) { - b.WriteString("\\B"); - } else if (_1 === (13)) { - if (!(re.Name === "")) { - b.WriteString("(?P<"); - b.WriteString(re.Name); - b.WriteRune(62); - } else { - b.WriteRune(40); - } - if (!(((x$9 = re.Sub, (0 >= x$9.$length ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + 0])).Op === 2))) { - writeRegexp(b, (x$10 = re.Sub, (0 >= x$10.$length ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + 0]))); - } - b.WriteRune(41); - } else if ((_1 === (14)) || (_1 === (15)) || (_1 === (16)) || (_1 === (17))) { - sub = (x$11 = re.Sub, (0 >= x$11.$length ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + 0])); - if (sub.Op > 13 || (sub.Op === 3) && sub.Rune.$length > 1) { - b.WriteString("(?:"); - writeRegexp(b, sub); - b.WriteString(")"); - } else { - writeRegexp(b, sub); - } - _2 = re.Op; - if (_2 === (14)) { - b.WriteRune(42); - } else if (_2 === (15)) { - b.WriteRune(43); - } else if (_2 === (16)) { - b.WriteRune(63); - } else if (_2 === (17)) { - b.WriteRune(123); - b.WriteString(strconv.Itoa(re.Min)); - if (!((re.Max === re.Min))) { - b.WriteRune(44); - if (re.Max >= 0) { - b.WriteString(strconv.Itoa(re.Max)); - } - } - b.WriteRune(125); - } - if (!((((re.Flags & 32) >>> 0) === 0))) { - b.WriteRune(63); - } - } else if (_1 === (18)) { - _ref$1 = re.Sub; - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - sub$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - if (sub$1.Op === 19) { - b.WriteString("(?:"); - writeRegexp(b, sub$1); - b.WriteString(")"); - } else { - writeRegexp(b, sub$1); - } - _i$1++; - } - } else if (_1 === (19)) { - _ref$2 = re.Sub; - _i$2 = 0; - while (true) { - if (!(_i$2 < _ref$2.$length)) { break; } - i$2 = _i$2; - sub$2 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); - if (i$2 > 0) { - b.WriteRune(124); - } - writeRegexp(b, sub$2); - _i$2++; - } - } else { - b.WriteString("> 0))) + ">"); - } - } - }; - $ptrType(Regexp).prototype.String = function String() { - var b, re; - re = this; - b = new strings.Builder.ptr(ptrType$1.nil, sliceType$5.nil); - writeRegexp(b, re); - return b.String(); - }; - escape = function escape$1(b, r, force) { - var _1, b, force, r, s; - if (unicode.IsPrint(r)) { - if (strings.ContainsRune("\\.+*?()|[]{}^$", r) || force) { - b.WriteRune(92); - } - b.WriteRune(r); - return; - } - switch (0) { default: - _1 = r; - if (_1 === (7)) { - b.WriteString("\\a"); - } else if (_1 === (12)) { - b.WriteString("\\f"); - } else if (_1 === (10)) { - b.WriteString("\\n"); - } else if (_1 === (13)) { - b.WriteString("\\r"); - } else if (_1 === (9)) { - b.WriteString("\\t"); - } else if (_1 === (11)) { - b.WriteString("\\v"); - } else { - if (r < 256) { - b.WriteString("\\x"); - s = strconv.FormatInt((new $Int64(0, r)), 16); - if (s.length === 1) { - b.WriteRune(48); - } - b.WriteString(s); - break; - } - b.WriteString("\\x{"); - b.WriteString(strconv.FormatInt((new $Int64(0, r)), 16)); - b.WriteString("}"); - } - } - }; - $ptrType(Regexp).prototype.MaxCap = function MaxCap() { - var _i, _ref, m, n, re, sub; - re = this; - m = 0; - if (re.Op === 13) { - m = re.Cap; - } - _ref = re.Sub; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - n = sub.MaxCap(); - if (m < n) { - m = n; - } - _i++; - } - return m; - }; - $ptrType(Regexp).prototype.CapNames = function CapNames() { - var names, re; - re = this; - names = $makeSlice(sliceType, (re.MaxCap() + 1 >> 0)); - re.capNames(names); - return names; - }; - $ptrType(Regexp).prototype.capNames = function capNames(names) { - var _i, _ref, names, re, sub, x; - re = this; - if (re.Op === 13) { - (x = re.Cap, ((x < 0 || x >= names.$length) ? ($throwRuntimeError("index out of range"), undefined) : names.$array[names.$offset + x] = re.Name)); - } - _ref = re.Sub; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - sub.capNames(names); - _i++; - } - }; - InstOp.prototype.String = function String$1() { - var i; - i = this.$val; - if (((i >>> 0)) >= ((instOpNames.$length >>> 0))) { - return ""; - } - return ((i < 0 || i >= instOpNames.$length) ? ($throwRuntimeError("index out of range"), undefined) : instOpNames.$array[instOpNames.$offset + i]); - }; - $ptrType(InstOp).prototype.String = function(...$args) { return new InstOp(this.$get()).String(...$args); }; - IsWordChar = function IsWordChar$1(r) { - var r; - return 65 <= r && r <= 90 || 97 <= r && r <= 122 || 48 <= r && r <= 57 || (r === 95); - }; - $pkg.IsWordChar = IsWordChar; - $ptrType(Prog).prototype.String = function String$2() { - var b, p; - p = this; - b = new strings.Builder.ptr(ptrType$1.nil, sliceType$5.nil); - dumpProg(b, p); - return b.String(); - }; - $ptrType(Prog).prototype.skipNop = function skipNop(pc) { - var i, p, pc, x, x$1, x$2; - p = this; - i = (x = p.Inst, ((pc < 0 || pc >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pc])); - while (true) { - if (!((i.Op === 6) || (i.Op === 2))) { break; } - i = (x$1 = p.Inst, x$2 = i.Out, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])); - } - return i; - }; - $ptrType(Inst).prototype.op = function op() { - var _1, i, op$1; - i = this; - op$1 = i.Op; - _1 = op$1; - if ((_1 === (8)) || (_1 === (9)) || (_1 === (10))) { - op$1 = 7; - } - return op$1; - }; - $ptrType(Prog).prototype.Prefix = function Prefix() { - var _tmp, _tmp$1, _tmp$2, _tmp$3, buf, complete, i, p, prefix, x, x$1; - prefix = ""; - complete = false; - p = this; - i = p.skipNop(((p.Start >>> 0))); - if (!((i.op() === 7)) || !((i.Rune.$length === 1))) { - _tmp = ""; - _tmp$1 = i.Op === 4; - prefix = _tmp; - complete = _tmp$1; - return [prefix, complete]; - } - buf = new strings.Builder.ptr(ptrType$1.nil, sliceType$5.nil); - while (true) { - if (!((i.op() === 7) && (i.Rune.$length === 1) && (((((i.Arg << 16 >>> 16)) & 1) >>> 0) === 0) && !(((x = i.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) === 65533)))) { break; } - buf.WriteRune((x$1 = i.Rune, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0]))); - i = p.skipNop(i.Out); - } - _tmp$2 = buf.String(); - _tmp$3 = i.Op === 4; - prefix = _tmp$2; - complete = _tmp$3; - return [prefix, complete]; - }; - $ptrType(Prog).prototype.StartCond = function StartCond() { - var _1, flag, i, p, pc, x, x$1; - p = this; - flag = 0; - pc = ((p.Start >>> 0)); - i = (x = p.Inst, ((pc < 0 || pc >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pc])); - Loop: - while (true) { - _1 = i.Op; - if (_1 === (3)) { - flag = (flag | (((i.Arg << 24 >>> 24)))) >>> 0; - } else if (_1 === (5)) { - return 255; - } else if ((_1 === (2)) || (_1 === (6))) { - } else { - break Loop; - } - pc = i.Out; - i = (x$1 = p.Inst, ((pc < 0 || pc >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + pc])); - } - return flag; - }; - $ptrType(Inst).prototype.MatchRune = function MatchRune(r) { - var i, r; - i = this; - return !((i.MatchRunePos(r) === -1)); - }; - $ptrType(Inst).prototype.MatchRunePos = function MatchRunePos(r) { - var _1, _q, _q$1, _q$2, c, hi, i, j, lo, m, r, r0, r1, rune, x, x$1, x$2; - i = this; - rune = i.Rune; - _1 = rune.$length; - if (_1 === (0)) { - return -1; - } else if (_1 === (1)) { - r0 = (0 >= rune.$length ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + 0]); - if (r === r0) { - return 0; - } - if (!((((((i.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { - r1 = unicode.SimpleFold(r0); - while (true) { - if (!(!((r1 === r0)))) { break; } - if (r === r1) { - return 0; - } - r1 = unicode.SimpleFold(r1); - } - } - return -1; - } else if (_1 === (2)) { - if (r >= (0 >= rune.$length ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + 0]) && r <= (1 >= rune.$length ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + 1])) { - return 0; - } - return -1; - } else if ((_1 === (4)) || (_1 === (6)) || (_1 === (8))) { - j = 0; - while (true) { - if (!(j < rune.$length)) { break; } - if (r < ((j < 0 || j >= rune.$length) ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + j])) { - return -1; - } - if (r <= (x = j + 1 >> 0, ((x < 0 || x >= rune.$length) ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + x]))) { - return (_q = j / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); - } - j = j + (2) >> 0; - } - return -1; - } - lo = 0; - hi = (_q$1 = rune.$length / 2, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")); - while (true) { - if (!(lo < hi)) { break; } - m = lo + (_q$2 = ((hi - lo >> 0)) / 2, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero")) >> 0; - c = (x$1 = $imul(2, m), ((x$1 < 0 || x$1 >= rune.$length) ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + x$1])); - if (c <= r) { - if (r <= (x$2 = ($imul(2, m)) + 1 >> 0, ((x$2 < 0 || x$2 >= rune.$length) ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + x$2]))) { - return m; - } - lo = m + 1 >> 0; - } else { - hi = m; - } - } - return -1; - }; - $ptrType(Inst).prototype.MatchEmptyWidth = function MatchEmptyWidth(before, after) { - var _1, after, before, i; - i = this; - _1 = ((i.Arg << 24 >>> 24)); - if (_1 === (1)) { - return (before === 10) || (before === -1); - } else if (_1 === (2)) { - return (after === 10) || (after === -1); - } else if (_1 === (4)) { - return before === -1; - } else if (_1 === (8)) { - return after === -1; - } else if (_1 === (16)) { - return !(IsWordChar(before) === IsWordChar(after)); - } else if (_1 === (32)) { - return IsWordChar(before) === IsWordChar(after); - } - $panic(new $String("unknown empty width arg")); - }; - $ptrType(Inst).prototype.String = function String$3() { - var b, i; - i = this; - b = new strings.Builder.ptr(ptrType$1.nil, sliceType$5.nil); - dumpInst(b, i); - return b.String(); - }; - bw = function bw$1(b, args) { - var _i, _ref, args, b, s; - _ref = args; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - b.WriteString(s); - _i++; - } - }; - dumpProg = function dumpProg$1(b, p) { - var _i, _ref, b, i, j, p, pc, x; - _ref = p.Inst; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - j = _i; - i = (x = p.Inst, ((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + j])); - pc = strconv.Itoa(j); - if (pc.length < 3) { - b.WriteString($substring(" ", pc.length)); - } - if (j === p.Start) { - pc = pc + ("*"); - } - bw(b, new sliceType([pc, "\t"])); - dumpInst(b, i); - bw(b, new sliceType(["\n"])); - _i++; - } - }; - u32 = function u32$1(i) { - var i; - return strconv.FormatUint((new $Uint64(0, i)), 10); - }; - dumpInst = function dumpInst$1(b, i) { - var _1, b, i; - _1 = i.Op; - if (_1 === (0)) { - bw(b, new sliceType(["alt -> ", u32(i.Out), ", ", u32(i.Arg)])); - } else if (_1 === (1)) { - bw(b, new sliceType(["altmatch -> ", u32(i.Out), ", ", u32(i.Arg)])); - } else if (_1 === (2)) { - bw(b, new sliceType(["cap ", u32(i.Arg), " -> ", u32(i.Out)])); - } else if (_1 === (3)) { - bw(b, new sliceType(["empty ", u32(i.Arg), " -> ", u32(i.Out)])); - } else if (_1 === (4)) { - bw(b, new sliceType(["match"])); - } else if (_1 === (5)) { - bw(b, new sliceType(["fail"])); - } else if (_1 === (6)) { - bw(b, new sliceType(["nop -> ", u32(i.Out)])); - } else if (_1 === (7)) { - if (i.Rune === sliceType$1.nil) { - bw(b, new sliceType(["rune "])); - } - bw(b, new sliceType(["rune ", strconv.QuoteToASCII(($runesToString(i.Rune)))])); - if (!((((((i.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { - bw(b, new sliceType(["/i"])); - } - bw(b, new sliceType([" -> ", u32(i.Out)])); - } else if (_1 === (8)) { - bw(b, new sliceType(["rune1 ", strconv.QuoteToASCII(($runesToString(i.Rune))), " -> ", u32(i.Out)])); - } else if (_1 === (9)) { - bw(b, new sliceType(["any -> ", u32(i.Out)])); - } else if (_1 === (10)) { - bw(b, new sliceType(["anynotnl -> ", u32(i.Out)])); - } - }; - $ptrType(Error).prototype.Error = function Error$1() { - var e; - e = this; - return "error parsing regexp: " + new ErrorCode(e.Code).String() + ": `" + e.Expr + "`"; - }; - ErrorCode.prototype.String = function String$4() { - var e; - e = this.$val; - return (e); - }; - $ptrType(ErrorCode).prototype.String = function(...$args) { return new ErrorCode(this.$get()).String(...$args); }; - $ptrType(parser).prototype.newRegexp = function newRegexp(op$1) { - var op$1, p, re; - p = this; - re = p.free; - if (!(re === ptrType.nil)) { - p.free = re.Sub0[0]; - Regexp.copy(re, new Regexp.ptr(0, 0, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, "")); - } else { - re = new Regexp.ptr(0, 0, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, ""); - p.numRegexp = p.numRegexp + (1) >> 0; - } - re.Op = op$1; - return re; - }; - $ptrType(parser).prototype.reuse = function reuse(re) { - var p, re; - p = this; - if (!(p.height === false)) { - $mapDelete(p.height, ptrType.keyFor(re)); - } - re.Sub0[0] = p.free; - p.free = re; - }; - $ptrType(parser).prototype.checkLimits = function checkLimits(re) { - var p, re; - p = this; - if (p.numRunes > 33554432) { - $panic(new ErrorCode("expression too large")); - } - p.checkSize(re); - p.checkHeight(re); - }; - $ptrType(parser).prototype.checkSize = function checkSize(re) { - var _i, _ref, n, p, re, re$1, x, x$1, x$2, x$3, x$4, x$5; - p = this; - if (p.size === false) { - if ((x = p.repeats, (x.$high === 0 && x.$low === 0))) { - p.repeats = new $Int64(0, 1); - } - if (re.Op === 17) { - n = re.Max; - if (n === -1) { - n = re.Min; - } - if (n <= 0) { - n = 1; - } - if ((x$1 = (new $Int64(0, n)), x$2 = $div64(new $Int64(0, 3355443), p.repeats, false), (x$1.$high > x$2.$high || (x$1.$high === x$2.$high && x$1.$low > x$2.$low)))) { - p.repeats = new $Int64(0, 3355443); - } else { - p.repeats = $mul64(p.repeats, ((new $Int64(0, n)))); - } - } - if ((x$3 = (new $Int64(0, p.numRegexp)), x$4 = $div64(new $Int64(0, 3355443), p.repeats, false), (x$3.$high < x$4.$high || (x$3.$high === x$4.$high && x$3.$low < x$4.$low)))) { - return; - } - p.size = new $global.Map(); - _ref = p.stack; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - re$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - p.checkSize(re$1); - _i++; - } - } - if ((x$5 = p.calcSize(re, true), (x$5.$high > 0 || (x$5.$high === 0 && x$5.$low > 3355443)))) { - $panic(new ErrorCode("expression too large")); - } - }; - $ptrType(parser).prototype.calcSize = function calcSize(re, force) { - var _1, _entry, _i, _i$1, _key, _ref, _ref$1, _tuple, force, ok, p, re, size, size$1, sub, sub$1, sub$2, x, x$1, x$10, x$11, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; - p = this; - if (!force) { - _tuple = (_entry = $mapIndex(p.size,ptrType.keyFor(re)), _entry !== undefined ? [_entry.v, true] : [new $Int64(0, 0), false]); - size = _tuple[0]; - ok = _tuple[1]; - if (ok) { - return size; - } - } - size$1 = new $Int64(0, 0); - switch (0) { default: - _1 = re.Op; - if (_1 === (3)) { - size$1 = (new $Int64(0, re.Rune.$length)); - } else if ((_1 === (13)) || (_1 === (14))) { - size$1 = (x = p.calcSize((x$1 = re.Sub, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])), false), new $Int64(0 + x.$high, 2 + x.$low)); - } else if ((_1 === (15)) || (_1 === (16))) { - size$1 = (x$2 = p.calcSize((x$3 = re.Sub, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])), false), new $Int64(0 + x$2.$high, 1 + x$2.$low)); - } else if (_1 === (18)) { - _ref = re.Sub; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - size$1 = (x$4 = p.calcSize(sub, false), new $Int64(size$1.$high + x$4.$high, size$1.$low + x$4.$low)); - _i++; - } - } else if (_1 === (19)) { - _ref$1 = re.Sub; - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - sub$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - size$1 = (x$5 = p.calcSize(sub$1, false), new $Int64(size$1.$high + x$5.$high, size$1.$low + x$5.$low)); - _i$1++; - } - if (re.Sub.$length > 1) { - size$1 = (x$6 = (x$7 = (new $Int64(0, re.Sub.$length)), new $Int64(x$7.$high - 0, x$7.$low - 1)), new $Int64(size$1.$high + x$6.$high, size$1.$low + x$6.$low)); - } - } else if (_1 === (17)) { - sub$2 = p.calcSize((x$8 = re.Sub, (0 >= x$8.$length ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + 0])), false); - if (re.Max === -1) { - if (re.Min === 0) { - size$1 = new $Int64(0 + sub$2.$high, 2 + sub$2.$low); - } else { - size$1 = (x$9 = $mul64((new $Int64(0, re.Min)), sub$2), new $Int64(0 + x$9.$high, 1 + x$9.$low)); - } - break; - } - size$1 = (x$10 = $mul64((new $Int64(0, re.Max)), sub$2), x$11 = (new $Int64(0, (re.Max - re.Min >> 0))), new $Int64(x$10.$high + x$11.$high, x$10.$low + x$11.$low)); - } - } - if ((size$1.$high < 0 || (size$1.$high === 0 && size$1.$low < 1))) { - size$1 = new $Int64(0, 1); - } - _key = re; (p.size || $throwRuntimeError("assignment to entry in nil map")).set(ptrType.keyFor(_key), { k: _key, v: size$1 }); - return size$1; - }; - $ptrType(parser).prototype.checkHeight = function checkHeight(re) { - var _i, _ref, p, re, re$1; - p = this; - if (p.numRegexp < 1000) { - return; - } - if (p.height === false) { - p.height = new $global.Map(); - _ref = p.stack; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - re$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - p.checkHeight(re$1); - _i++; - } - } - if (p.calcHeight(re, true) > 1000) { - $panic(new ErrorCode("expression nests too deeply")); - } - }; - $ptrType(parser).prototype.calcHeight = function calcHeight(re, force) { - var _entry, _i, _key, _ref, _tuple, force, h, h$1, hsub, ok, p, re, sub; - p = this; - if (!force) { - _tuple = (_entry = $mapIndex(p.height,ptrType.keyFor(re)), _entry !== undefined ? [_entry.v, true] : [0, false]); - h = _tuple[0]; - ok = _tuple[1]; - if (ok) { - return h; - } - } - h$1 = 1; - _ref = re.Sub; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - hsub = p.calcHeight(sub, false); - if (h$1 < (1 + hsub >> 0)) { - h$1 = 1 + hsub >> 0; - } - _i++; - } - _key = re; (p.height || $throwRuntimeError("assignment to entry in nil map")).set(ptrType.keyFor(_key), { k: _key, v: h$1 }); - return h$1; - }; - $ptrType(parser).prototype.push = function push(re) { - var p, re, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; - p = this; - p.numRunes = p.numRunes + (re.Rune.$length) >> 0; - if ((re.Op === 4) && (re.Rune.$length === 2) && ((x = re.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) === (x$1 = re.Rune, (1 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 1])))) { - if (p.maybeConcat((x$16 = re.Rune, (0 >= x$16.$length ? ($throwRuntimeError("index out of range"), undefined) : x$16.$array[x$16.$offset + 0])), (p.flags & ~1) << 16 >>> 16)) { - return ptrType.nil; - } - re.Op = 3; - re.Rune = $subslice(re.Rune, 0, 1); - re.Flags = (p.flags & ~1) << 16 >>> 16; - } else if ((re.Op === 4) && (re.Rune.$length === 4) && ((x$2 = re.Rune, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])) === (x$3 = re.Rune, (1 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 1]))) && ((x$4 = re.Rune, (2 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 2])) === (x$5 = re.Rune, (3 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 3]))) && (unicode.SimpleFold((x$6 = re.Rune, (0 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + 0]))) === (x$7 = re.Rune, (2 >= x$7.$length ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + 2]))) && (unicode.SimpleFold((x$8 = re.Rune, (2 >= x$8.$length ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + 2]))) === (x$9 = re.Rune, (0 >= x$9.$length ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + 0]))) || (re.Op === 4) && (re.Rune.$length === 2) && (((x$10 = re.Rune, (0 >= x$10.$length ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + 0])) + 1 >> 0) === (x$11 = re.Rune, (1 >= x$11.$length ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + 1]))) && (unicode.SimpleFold((x$12 = re.Rune, (0 >= x$12.$length ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + 0]))) === (x$13 = re.Rune, (1 >= x$13.$length ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + 1]))) && (unicode.SimpleFold((x$14 = re.Rune, (1 >= x$14.$length ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + 1]))) === (x$15 = re.Rune, (0 >= x$15.$length ? ($throwRuntimeError("index out of range"), undefined) : x$15.$array[x$15.$offset + 0])))) { - if (p.maybeConcat((x$17 = re.Rune, (0 >= x$17.$length ? ($throwRuntimeError("index out of range"), undefined) : x$17.$array[x$17.$offset + 0])), (p.flags | 1) >>> 0)) { - return ptrType.nil; - } - re.Op = 3; - re.Rune = $subslice(re.Rune, 0, 1); - re.Flags = (p.flags | 1) >>> 0; - } else { - p.maybeConcat(-1, 0); - } - p.stack = $append(p.stack, re); - p.checkLimits(re); - return re; - }; - $ptrType(parser).prototype.maybeConcat = function maybeConcat(r, flags) { - var flags, n, p, r, re1, re2, x, x$1, x$2, x$3, x$4; - p = this; - n = p.stack.$length; - if (n < 2) { - return false; - } - re1 = (x = p.stack, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); - re2 = (x$2 = p.stack, x$3 = n - 2 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])); - if (!((re1.Op === 3)) || !((re2.Op === 3)) || !((((re1.Flags & 1) >>> 0) === ((re2.Flags & 1) >>> 0)))) { - return false; - } - re2.Rune = $appendSlice(re2.Rune, re1.Rune); - if (r >= 0) { - re1.Rune = $subslice(new sliceType$1(re1.Rune0), 0, 1); - (x$4 = re1.Rune, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0] = r)); - re1.Flags = flags; - return true; - } - p.stack = $subslice(p.stack, 0, (n - 1 >> 0)); - p.reuse(re1); - return false; - }; - $ptrType(parser).prototype.literal = function literal(r) { - var p, r, re; - p = this; - re = p.newRegexp(3); - re.Flags = p.flags; - if (!((((p.flags & 1) >>> 0) === 0))) { - r = minFoldRune(r); - } - re.Rune0[0] = r; - re.Rune = $subslice(new sliceType$1(re.Rune0), 0, 1); - p.push(re); - }; - minFoldRune = function minFoldRune$1(r) { - var min, r, r0; - if (r < 65 || r > 125251) { - return r; - } - min = r; - r0 = r; - r = unicode.SimpleFold(r); - while (true) { - if (!(!((r === r0)))) { break; } - if (min > r) { - min = r; - } - r = unicode.SimpleFold(r); - } - return min; - }; - $ptrType(parser).prototype.op = function op$1(op$2) { - var op$2, p, re; - p = this; - re = p.newRegexp(op$2); - re.Flags = p.flags; - return p.push(re); - }; - $ptrType(parser).prototype.repeat = function repeat(op$2, min, max, before, after, lastRepeat) { - var after, before, flags, lastRepeat, max, min, n, op$2, p, re, sub, x, x$1, x$2, x$3, x$4; - p = this; - flags = p.flags; - if (!((((p.flags & 64) >>> 0) === 0))) { - if (after.length > 0 && (after.charCodeAt(0) === 63)) { - after = $substring(after, 1); - flags = (flags ^ (32)) << 16 >>> 16; - } - if (!(lastRepeat === "")) { - return ["", new Error.ptr("invalid nested repetition operator", $substring(lastRepeat, 0, (lastRepeat.length - after.length >> 0)))]; - } - } - n = p.stack.$length; - if (n === 0) { - return ["", new Error.ptr("missing argument to repetition operator", $substring(before, 0, (before.length - after.length >> 0)))]; - } - sub = (x = p.stack, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); - if (sub.Op >= 128) { - return ["", new Error.ptr("missing argument to repetition operator", $substring(before, 0, (before.length - after.length >> 0)))]; - } - re = p.newRegexp(op$2); - re.Min = min; - re.Max = max; - re.Flags = flags; - re.Sub = $subslice(new sliceType$4(re.Sub0), 0, 1); - (x$2 = re.Sub, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0] = sub)); - (x$3 = p.stack, x$4 = n - 1 >> 0, ((x$4 < 0 || x$4 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + x$4] = re)); - p.checkLimits(re); - if ((op$2 === 17) && (min >= 2 || max >= 2) && !repeatIsValid(re, 1000)) { - return ["", new Error.ptr("invalid repeat count", $substring(before, 0, (before.length - after.length >> 0)))]; - } - return [after, $ifaceNil]; - }; - repeatIsValid = function repeatIsValid$1(re, n) { - var _i, _q, _ref, m, n, re, sub; - if (re.Op === 17) { - m = re.Max; - if (m === 0) { - return true; - } - if (m < 0) { - m = re.Min; - } - if (m > n) { - return false; - } - if (m > 0) { - n = (_q = n / (m), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); - } - } - _ref = re.Sub; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (!repeatIsValid(sub, n)) { - return false; - } - _i++; - } - return true; - }; - $ptrType(parser).prototype.concat = function concat() { - var {$24r, _r, _r$1, i, p, subs, x, x$1, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - p.maybeConcat(-1, 0); - i = p.stack.$length; - while (true) { - if (!(i > 0 && (x = p.stack, x$1 = i - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Op < 128)) { break; } - i = i - (1) >> 0; - } - subs = $subslice(p.stack, i); - p.stack = $subslice(p.stack, 0, i); - if (subs.$length === 0) { - $s = -1; return p.push(p.newRegexp(2)); - } - _r = p.collapse(subs, 18); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = p.push(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: concat, $c: true, $r, $24r, _r, _r$1, i, p, subs, x, x$1, $s};return $f; - }; - $ptrType(parser).prototype.alternate = function alternate() { - var {$24r, _r, _r$1, i, p, subs, x, x$1, x$2, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - i = p.stack.$length; - while (true) { - if (!(i > 0 && (x = p.stack, x$1 = i - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Op < 128)) { break; } - i = i - (1) >> 0; - } - subs = $subslice(p.stack, i); - p.stack = $subslice(p.stack, 0, i); - /* */ if (subs.$length > 0) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (subs.$length > 0) { */ case 1: - $r = cleanAlt((x$2 = subs.$length - 1 >> 0, ((x$2 < 0 || x$2 >= subs.$length) ? ($throwRuntimeError("index out of range"), undefined) : subs.$array[subs.$offset + x$2]))); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - if (subs.$length === 0) { - $s = -1; return p.push(p.newRegexp(1)); - } - _r = p.collapse(subs, 19); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = p.push(_r); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 6; case 6: return $24r; - /* */ } return; } var $f = {$blk: alternate, $c: true, $r, $24r, _r, _r$1, i, p, subs, x, x$1, x$2, $s};return $f; - }; - cleanAlt = function cleanAlt$1(re) { - var {_1, _r, re, x, x$1, x$2, x$3, x$4, x$5, $s, $r, $c} = $restore(this, {re}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _1 = re.Op; - /* */ if (_1 === (4)) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (_1 === (4)) { */ case 2: - _r = cleanClass((re.$ptr_Rune || (re.$ptr_Rune = new ptrType$2(function() { return this.$target.Rune; }, function($v) { this.$target.Rune = $v; }, re)))); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - re.Rune = _r; - if ((re.Rune.$length === 2) && ((x = re.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) === 0) && ((x$1 = re.Rune, (1 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 1])) === 1114111)) { - re.Rune = sliceType$1.nil; - re.Op = 6; - $s = -1; return; - } - if ((re.Rune.$length === 4) && ((x$2 = re.Rune, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])) === 0) && ((x$3 = re.Rune, (1 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 1])) === 9) && ((x$4 = re.Rune, (2 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 2])) === 11) && ((x$5 = re.Rune, (3 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 3])) === 1114111)) { - re.Rune = sliceType$1.nil; - re.Op = 5; - $s = -1; return; - } - if ((re.Rune.$capacity - re.Rune.$length >> 0) > 100) { - re.Rune = $appendSlice($subslice(new sliceType$1(re.Rune0), 0, 0), re.Rune); - } - /* } */ case 3: - case 1: - $s = -1; return; - /* */ } return; } var $f = {$blk: cleanAlt$1, $c: true, $r, _1, _r, re, x, x$1, x$2, x$3, x$4, x$5, $s};return $f; - }; - $ptrType(parser).prototype.collapse = function collapse(subs, op$2) { - var {_i, _r, _ref, old, op$2, p, re, sub, subs, x, $s, $r, $c} = $restore(this, {subs, op$2}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - if (subs.$length === 1) { - $s = -1; return (0 >= subs.$length ? ($throwRuntimeError("index out of range"), undefined) : subs.$array[subs.$offset + 0]); - } - re = p.newRegexp(op$2); - re.Sub = $subslice(new sliceType$4(re.Sub0), 0, 0); - _ref = subs; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (sub.Op === op$2) { - re.Sub = $appendSlice(re.Sub, sub.Sub); - p.reuse(sub); - } else { - re.Sub = $append(re.Sub, sub); - } - _i++; - } - /* */ if (op$2 === 19) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (op$2 === 19) { */ case 1: - _r = p.factor(re.Sub); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - re.Sub = _r; - if (re.Sub.$length === 1) { - old = re; - re = (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); - p.reuse(old); - } - /* } */ case 2: - $s = -1; return re; - /* */ } return; } var $f = {$blk: collapse, $c: true, $r, _i, _r, _ref, old, op$2, p, re, sub, subs, x, $s};return $f; - }; - $ptrType(parser).prototype.factor = function factor(sub) { - var {_i, _r, _r$1, _ref, _tmp, _tmp$1, _tuple, first, i, i$1, i$2, i$3, ifirst, iflags, istr, j, j$1, j$2, j$3, max, out, p, prefix, prefix$1, re, re$1, reuse$1, same, start, str, strflags, sub, suffix, suffix$1, x, x$1, $s, $r, $c} = $restore(this, {sub}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - if (sub.$length < 2) { - $s = -1; return sub; - } - str = sliceType$1.nil; - strflags = 0; - start = 0; - out = $subslice(sub, 0, 0); - i = 0; - /* while (true) { */ case 1: - /* if (!(i <= sub.$length)) { break; } */ if(!(i <= sub.$length)) { $s = 2; continue; } - istr = sliceType$1.nil; - iflags = 0; - if (i < sub.$length) { - _tuple = p.leadingString(((i < 0 || i >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i])); - istr = _tuple[0]; - iflags = _tuple[1]; - if (iflags === strflags) { - same = 0; - while (true) { - if (!(same < str.$length && same < istr.$length && (((same < 0 || same >= str.$length) ? ($throwRuntimeError("index out of range"), undefined) : str.$array[str.$offset + same]) === ((same < 0 || same >= istr.$length) ? ($throwRuntimeError("index out of range"), undefined) : istr.$array[istr.$offset + same])))) { break; } - same = same + (1) >> 0; - } - if (same > 0) { - str = $subslice(str, 0, same); - i = i + (1) >> 0; - /* continue; */ $s = 1; continue; - } - } - } - /* */ if (i === start) { $s = 3; continue; } - /* */ if (i === (start + 1 >> 0)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (i === start) { */ case 3: - $s = 6; continue; - /* } else if (i === (start + 1 >> 0)) { */ case 4: - out = $append(out, ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start])); - $s = 6; continue; - /* } else { */ case 5: - prefix = p.newRegexp(3); - prefix.Flags = strflags; - prefix.Rune = $appendSlice($subslice(prefix.Rune, 0, 0), str); - j = start; - while (true) { - if (!(j < i)) { break; } - ((j < 0 || j >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j] = p.removeLeadingString(((j < 0 || j >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j]), str.$length)); - p.checkLimits(((j < 0 || j >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j])); - j = j + (1) >> 0; - } - _r = p.collapse($subslice(sub, start, i), 19); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - suffix = _r; - re = p.newRegexp(18); - re.Sub = $append($subslice(re.Sub, 0, 0), prefix, suffix); - out = $append(out, re); - /* } */ case 6: - start = i; - str = istr; - strflags = iflags; - i = i + (1) >> 0; - $s = 1; continue; - case 2: - sub = out; - start = 0; - out = $subslice(sub, 0, 0); - first = ptrType.nil; - i$1 = 0; - /* while (true) { */ case 8: - /* if (!(i$1 <= sub.$length)) { break; } */ if(!(i$1 <= sub.$length)) { $s = 9; continue; } - ifirst = ptrType.nil; - if (i$1 < sub.$length) { - ifirst = p.leadingRegexp(((i$1 < 0 || i$1 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i$1])); - if (!(first === ptrType.nil) && first.Equal(ifirst) && (isCharClass(first) || ((first.Op === 17) && (first.Min === first.Max) && isCharClass((x = first.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])))))) { - i$1 = i$1 + (1) >> 0; - /* continue; */ $s = 8; continue; - } - } - /* */ if (i$1 === start) { $s = 10; continue; } - /* */ if (i$1 === (start + 1 >> 0)) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (i$1 === start) { */ case 10: - $s = 13; continue; - /* } else if (i$1 === (start + 1 >> 0)) { */ case 11: - out = $append(out, ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start])); - $s = 13; continue; - /* } else { */ case 12: - prefix$1 = first; - j$1 = start; - while (true) { - if (!(j$1 < i$1)) { break; } - reuse$1 = !((j$1 === start)); - ((j$1 < 0 || j$1 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$1] = p.removeLeadingRegexp(((j$1 < 0 || j$1 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$1]), reuse$1)); - p.checkLimits(((j$1 < 0 || j$1 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$1])); - j$1 = j$1 + (1) >> 0; - } - _r$1 = p.collapse($subslice(sub, start, i$1), 19); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - suffix$1 = _r$1; - re$1 = p.newRegexp(18); - re$1.Sub = $append($subslice(re$1.Sub, 0, 0), prefix$1, suffix$1); - out = $append(out, re$1); - /* } */ case 13: - start = i$1; - first = ifirst; - i$1 = i$1 + (1) >> 0; - $s = 8; continue; - case 9: - sub = out; - start = 0; - out = $subslice(sub, 0, 0); - i$2 = 0; - /* while (true) { */ case 15: - /* if (!(i$2 <= sub.$length)) { break; } */ if(!(i$2 <= sub.$length)) { $s = 16; continue; } - if (i$2 < sub.$length && isCharClass(((i$2 < 0 || i$2 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i$2]))) { - i$2 = i$2 + (1) >> 0; - /* continue; */ $s = 15; continue; - } - /* */ if (i$2 === start) { $s = 17; continue; } - /* */ if (i$2 === (start + 1 >> 0)) { $s = 18; continue; } - /* */ $s = 19; continue; - /* if (i$2 === start) { */ case 17: - $s = 20; continue; - /* } else if (i$2 === (start + 1 >> 0)) { */ case 18: - out = $append(out, ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start])); - $s = 20; continue; - /* } else { */ case 19: - max = start; - j$2 = start + 1 >> 0; - while (true) { - if (!(j$2 < i$2)) { break; } - if (((max < 0 || max >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + max]).Op < ((j$2 < 0 || j$2 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$2]).Op || (((max < 0 || max >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + max]).Op === ((j$2 < 0 || j$2 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$2]).Op) && ((max < 0 || max >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + max]).Rune.$length < ((j$2 < 0 || j$2 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$2]).Rune.$length) { - max = j$2; - } - j$2 = j$2 + (1) >> 0; - } - _tmp = ((max < 0 || max >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + max]); - _tmp$1 = ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start]); - ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start] = _tmp); - ((max < 0 || max >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + max] = _tmp$1); - j$3 = start + 1 >> 0; - while (true) { - if (!(j$3 < i$2)) { break; } - mergeCharClass(((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start]), ((j$3 < 0 || j$3 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$3])); - p.reuse(((j$3 < 0 || j$3 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$3])); - j$3 = j$3 + (1) >> 0; - } - $r = cleanAlt(((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start])); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - out = $append(out, ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start])); - /* } */ case 20: - if (i$2 < sub.$length) { - out = $append(out, ((i$2 < 0 || i$2 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i$2])); - } - start = i$2 + 1 >> 0; - i$2 = i$2 + (1) >> 0; - $s = 15; continue; - case 16: - sub = out; - start = 0; - out = $subslice(sub, 0, 0); - _ref = sub; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i$3 = _i; - if ((i$3 + 1 >> 0) < sub.$length && (((i$3 < 0 || i$3 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i$3]).Op === 2) && ((x$1 = i$3 + 1 >> 0, ((x$1 < 0 || x$1 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + x$1])).Op === 2)) { - _i++; - continue; - } - out = $append(out, ((i$3 < 0 || i$3 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i$3])); - _i++; - } - sub = out; - $s = -1; return sub; - /* */ } return; } var $f = {$blk: factor, $c: true, $r, _i, _r, _r$1, _ref, _tmp, _tmp$1, _tuple, first, i, i$1, i$2, i$3, ifirst, iflags, istr, j, j$1, j$2, j$3, max, out, p, prefix, prefix$1, re, re$1, reuse$1, same, start, str, strflags, sub, suffix, suffix$1, x, x$1, $s};return $f; - }; - $ptrType(parser).prototype.leadingString = function leadingString(re) { - var p, re, x; - p = this; - if ((re.Op === 18) && re.Sub.$length > 0) { - re = (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); - } - if (!((re.Op === 3))) { - return [sliceType$1.nil, 0]; - } - return [re.Rune, (re.Flags & 1) >>> 0]; - }; - $ptrType(parser).prototype.removeLeadingString = function removeLeadingString(re, n) { - var _1, n, old, p, re, sub, x, x$1, x$2; - p = this; - if ((re.Op === 18) && re.Sub.$length > 0) { - sub = (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); - sub = p.removeLeadingString(sub, n); - (x$1 = re.Sub, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0] = sub)); - if (sub.Op === 2) { - p.reuse(sub); - _1 = re.Sub.$length; - if ((_1 === (0)) || (_1 === (1))) { - re.Op = 2; - re.Sub = sliceType$4.nil; - } else if (_1 === (2)) { - old = re; - re = (x$2 = re.Sub, (1 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 1])); - p.reuse(old); - } else { - $copySlice(re.Sub, $subslice(re.Sub, 1)); - re.Sub = $subslice(re.Sub, 0, (re.Sub.$length - 1 >> 0)); - } - } - return re; - } - if (re.Op === 3) { - re.Rune = $subslice(re.Rune, 0, $copySlice(re.Rune, $subslice(re.Rune, n))); - if (re.Rune.$length === 0) { - re.Op = 2; - } - } - return re; - }; - $ptrType(parser).prototype.leadingRegexp = function leadingRegexp(re) { - var p, re, sub, x; - p = this; - if (re.Op === 2) { - return ptrType.nil; - } - if ((re.Op === 18) && re.Sub.$length > 0) { - sub = (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); - if (sub.Op === 2) { - return ptrType.nil; - } - return sub; - } - return re; - }; - $ptrType(parser).prototype.removeLeadingRegexp = function removeLeadingRegexp(re, reuse$1) { - var _1, old, p, re, reuse$1, x, x$1; - p = this; - if ((re.Op === 18) && re.Sub.$length > 0) { - if (reuse$1) { - p.reuse((x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))); - } - re.Sub = $subslice(re.Sub, 0, $copySlice(re.Sub, $subslice(re.Sub, 1))); - _1 = re.Sub.$length; - if (_1 === (0)) { - re.Op = 2; - re.Sub = sliceType$4.nil; - } else if (_1 === (1)) { - old = re; - re = (x$1 = re.Sub, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])); - p.reuse(old); - } - return re; - } - if (reuse$1) { - p.reuse(re); - } - return p.newRegexp(2); - }; - literalRegexp = function literalRegexp$1(s, flags) { - var _i, _ref, _rune, c, flags, re, s; - re = new Regexp.ptr(3, 0, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, ""); - re.Flags = flags; - re.Rune = $subslice(new sliceType$1(re.Rune0), 0, 0); - _ref = s; - _i = 0; - while (true) { - if (!(_i < _ref.length)) { break; } - _rune = $decodeRune(_ref, _i); - c = _rune[0]; - if (re.Rune.$length >= re.Rune.$capacity) { - re.Rune = (new sliceType$1($stringToRunes(s))); - break; - } - re.Rune = $append(re.Rune, c); - _i += _rune[1]; - } - return re; - }; - Parse = function Parse$1(s, flags) { - var {$24r, _r, flags, s, $s, $r, $c} = $restore(this, {s, flags}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = parse(s, flags); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Parse$1, $c: true, $r, $24r, _r, flags, s, $s};return $f; - }; - $pkg.Parse = Parse; - parse = function parse$1(s, flags) { - var {_, _2, _3, _4, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _struct, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$10, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, after, after$1, before, before$1, c, c$1, err, err$1, err$2, err$3, flags, lastRepeat, lit, max, min, n, ok, op$2, p, r, r$1, re, repeat$1, rest, rest$1, rest$2, s, t, x, $s, $deferred, $r, $c} = $restore(this, {s, flags}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - err = [err]; - s = [s]; - _ = ptrType.nil; - err[0] = $ifaceNil; - $deferred.push([(function(err, s) { return function parse·func1() { - var _1, r; - r = $recover(); - _1 = r; - if ($interfaceIsEqual(_1, $ifaceNil)) { - } else if ($interfaceIsEqual(_1, new ErrorCode(("expression too large")))) { - err[0] = new Error.ptr("expression too large", s[0]); - } else if ($interfaceIsEqual(_1, new ErrorCode(("expression nests too deeply")))) { - err[0] = new Error.ptr("expression nests too deeply", s[0]); - } else { - $panic(r); - } - }; })(err, s), []]); - if (!((((flags & 2) >>> 0) === 0))) { - err$1 = checkUTF8(s[0]); - if (!($interfaceIsEqual(err$1, $ifaceNil))) { - _tmp = ptrType.nil; - _tmp$1 = err$1; - _ = _tmp; - err[0] = _tmp$1; - $s = -1; return [_, err[0]]; - } - _tmp$2 = literalRegexp(s[0], flags); - _tmp$3 = $ifaceNil; - _ = _tmp$2; - err[0] = _tmp$3; - $s = -1; return [_, err[0]]; - } - p = new parser.ptr(0, sliceType$4.nil, ptrType.nil, 0, "", sliceType$1.nil, 0, 0, new $Int64(0, 0), false, false); - c = 0; - op$2 = 0; - lastRepeat = ""; - p.flags = flags; - p.wholeRegexp = s[0]; - t = s[0]; - /* while (true) { */ case 1: - /* if (!(!(t === ""))) { break; } */ if(!(!(t === ""))) { $s = 2; continue; } - repeat$1 = ""; - _2 = t.charCodeAt(0); - /* */ if (_2 === (40)) { $s = 4; continue; } - /* */ if (_2 === (124)) { $s = 5; continue; } - /* */ if (_2 === (41)) { $s = 6; continue; } - /* */ if (_2 === (94)) { $s = 7; continue; } - /* */ if (_2 === (36)) { $s = 8; continue; } - /* */ if (_2 === (46)) { $s = 9; continue; } - /* */ if (_2 === (91)) { $s = 10; continue; } - /* */ if ((_2 === (42)) || (_2 === (43)) || (_2 === (63))) { $s = 11; continue; } - /* */ if (_2 === (123)) { $s = 12; continue; } - /* */ if (_2 === (92)) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (_2 === (40)) { */ case 4: - if (!((((p.flags & 64) >>> 0) === 0)) && t.length >= 2 && (t.charCodeAt(1) === 63)) { - _tuple = p.parsePerlFlags(t); - t = _tuple[0]; - err[0] = _tuple[1]; - if (!($interfaceIsEqual(err[0], $ifaceNil))) { - _tmp$4 = ptrType.nil; - _tmp$5 = err[0]; - _ = _tmp$4; - err[0] = _tmp$5; - $s = -1; return [_, err[0]]; - } - /* break; */ $s = 3; continue; - } - p.numCap = p.numCap + (1) >> 0; - p.op(128).Cap = p.numCap; - t = $substring(t, 1); - $s = 15; continue; - /* } else if (_2 === (124)) { */ case 5: - _r = p.parseVerticalBar(); /* */ $s = 16; case 16: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - err[0] = _r; - if (!($interfaceIsEqual(err[0], $ifaceNil))) { - _tmp$6 = ptrType.nil; - _tmp$7 = err[0]; - _ = _tmp$6; - err[0] = _tmp$7; - $s = -1; return [_, err[0]]; - } - t = $substring(t, 1); - $s = 15; continue; - /* } else if (_2 === (41)) { */ case 6: - _r$1 = p.parseRightParen(); /* */ $s = 17; case 17: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - err[0] = _r$1; - if (!($interfaceIsEqual(err[0], $ifaceNil))) { - _tmp$8 = ptrType.nil; - _tmp$9 = err[0]; - _ = _tmp$8; - err[0] = _tmp$9; - $s = -1; return [_, err[0]]; - } - t = $substring(t, 1); - $s = 15; continue; - /* } else if (_2 === (94)) { */ case 7: - if (!((((p.flags & 16) >>> 0) === 0))) { - p.op(9); - } else { - p.op(7); - } - t = $substring(t, 1); - $s = 15; continue; - /* } else if (_2 === (36)) { */ case 8: - if (!((((p.flags & 16) >>> 0) === 0))) { - _struct = p.op(10); - _struct.Flags = (_struct.Flags | (256)) >>> 0; - } else { - p.op(8); - } - t = $substring(t, 1); - $s = 15; continue; - /* } else if (_2 === (46)) { */ case 9: - if (!((((p.flags & 8) >>> 0) === 0))) { - p.op(6); - } else { - p.op(5); - } - t = $substring(t, 1); - $s = 15; continue; - /* } else if (_2 === (91)) { */ case 10: - _r$2 = p.parseClass(t); /* */ $s = 18; case 18: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple$1 = _r$2; - t = _tuple$1[0]; - err[0] = _tuple$1[1]; - if (!($interfaceIsEqual(err[0], $ifaceNil))) { - _tmp$10 = ptrType.nil; - _tmp$11 = err[0]; - _ = _tmp$10; - err[0] = _tmp$11; - $s = -1; return [_, err[0]]; - } - $s = 15; continue; - /* } else if ((_2 === (42)) || (_2 === (43)) || (_2 === (63))) { */ case 11: - before = t; - _3 = t.charCodeAt(0); - if (_3 === (42)) { - op$2 = 14; - } else if (_3 === (43)) { - op$2 = 15; - } else if (_3 === (63)) { - op$2 = 16; - } - after = $substring(t, 1); - _tuple$2 = p.repeat(op$2, 0, 0, before, after, lastRepeat); - after = _tuple$2[0]; - err[0] = _tuple$2[1]; - if (!($interfaceIsEqual(err[0], $ifaceNil))) { - _tmp$12 = ptrType.nil; - _tmp$13 = err[0]; - _ = _tmp$12; - err[0] = _tmp$13; - $s = -1; return [_, err[0]]; - } - repeat$1 = before; - t = after; - $s = 15; continue; - /* } else if (_2 === (123)) { */ case 12: - op$2 = 17; - before$1 = t; - _tuple$3 = p.parseRepeat(t); - min = _tuple$3[0]; - max = _tuple$3[1]; - after$1 = _tuple$3[2]; - ok = _tuple$3[3]; - if (!ok) { - p.literal(123); - t = $substring(t, 1); - /* break; */ $s = 3; continue; - } - if (min < 0 || min > 1000 || max > 1000 || max >= 0 && min > max) { - _tmp$14 = ptrType.nil; - _tmp$15 = new Error.ptr("invalid repeat count", $substring(before$1, 0, (before$1.length - after$1.length >> 0))); - _ = _tmp$14; - err[0] = _tmp$15; - $s = -1; return [_, err[0]]; - } - _tuple$4 = p.repeat(op$2, min, max, before$1, after$1, lastRepeat); - after$1 = _tuple$4[0]; - err[0] = _tuple$4[1]; - if (!($interfaceIsEqual(err[0], $ifaceNil))) { - _tmp$16 = ptrType.nil; - _tmp$17 = err[0]; - _ = _tmp$16; - err[0] = _tmp$17; - $s = -1; return [_, err[0]]; - } - repeat$1 = before$1; - t = after$1; - $s = 15; continue; - /* } else if (_2 === (92)) { */ case 13: - if (!((((p.flags & 64) >>> 0) === 0)) && t.length >= 2) { - _4 = t.charCodeAt(1); - if (_4 === (65)) { - p.op(9); - t = $substring(t, 2); - /* break BigSwitch; */ $s = 3; continue s; - } else if (_4 === (98)) { - p.op(11); - t = $substring(t, 2); - /* break BigSwitch; */ $s = 3; continue s; - } else if (_4 === (66)) { - p.op(12); - t = $substring(t, 2); - /* break BigSwitch; */ $s = 3; continue s; - } else if (_4 === (67)) { - _tmp$18 = ptrType.nil; - _tmp$19 = new Error.ptr("invalid escape sequence", $substring(t, 0, 2)); - _ = _tmp$18; - err[0] = _tmp$19; - $s = -1; return [_, err[0]]; - } else if (_4 === (81)) { - lit = ""; - _tuple$5 = strings.Cut($substring(t, 2), "\\E"); - lit = _tuple$5[0]; - t = _tuple$5[1]; - while (true) { - if (!(!(lit === ""))) { break; } - _tuple$6 = nextRune(lit); - c$1 = _tuple$6[0]; - rest = _tuple$6[1]; - err$2 = _tuple$6[2]; - if (!($interfaceIsEqual(err$2, $ifaceNil))) { - _tmp$20 = ptrType.nil; - _tmp$21 = err$2; - _ = _tmp$20; - err[0] = _tmp$21; - $s = -1; return [_, err[0]]; - } - p.literal(c$1); - lit = rest; - } - /* break BigSwitch; */ $s = 3; continue s; - } else if (_4 === (122)) { - p.op(10); - t = $substring(t, 2); - /* break BigSwitch; */ $s = 3; continue s; - } - } - re = p.newRegexp(4); - re.Flags = p.flags; - /* */ if (t.length >= 2 && ((t.charCodeAt(1) === 112) || (t.charCodeAt(1) === 80))) { $s = 19; continue; } - /* */ $s = 20; continue; - /* if (t.length >= 2 && ((t.charCodeAt(1) === 112) || (t.charCodeAt(1) === 80))) { */ case 19: - _r$3 = p.parseUnicodeClass(t, $subslice(new sliceType$1(re.Rune0), 0, 0)); /* */ $s = 21; case 21: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple$7 = _r$3; - r = _tuple$7[0]; - rest$1 = _tuple$7[1]; - err$3 = _tuple$7[2]; - if (!($interfaceIsEqual(err$3, $ifaceNil))) { - _tmp$22 = ptrType.nil; - _tmp$23 = err$3; - _ = _tmp$22; - err[0] = _tmp$23; - $s = -1; return [_, err[0]]; - } - if (!(r === sliceType$1.nil)) { - re.Rune = r; - t = rest$1; - p.push(re); - /* break BigSwitch; */ $s = 3; continue s; - } - /* } */ case 20: - _r$4 = p.parsePerlClassEscape(t, $subslice(new sliceType$1(re.Rune0), 0, 0)); /* */ $s = 22; case 22: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _tuple$8 = _r$4; - r$1 = _tuple$8[0]; - rest$2 = _tuple$8[1]; - if (!(r$1 === sliceType$1.nil)) { - re.Rune = r$1; - t = rest$2; - p.push(re); - /* break BigSwitch; */ $s = 3; continue s; - } - p.reuse(re); - _tuple$9 = p.parseEscape(t); - c = _tuple$9[0]; - t = _tuple$9[1]; - err[0] = _tuple$9[2]; - if (!($interfaceIsEqual(err[0], $ifaceNil))) { - _tmp$24 = ptrType.nil; - _tmp$25 = err[0]; - _ = _tmp$24; - err[0] = _tmp$25; - $s = -1; return [_, err[0]]; - } - p.literal(c); - $s = 15; continue; - /* } else { */ case 14: - _tuple$10 = nextRune(t); - c = _tuple$10[0]; - t = _tuple$10[1]; - err[0] = _tuple$10[2]; - if (!($interfaceIsEqual(err[0], $ifaceNil))) { - _tmp$26 = ptrType.nil; - _tmp$27 = err[0]; - _ = _tmp$26; - err[0] = _tmp$27; - $s = -1; return [_, err[0]]; - } - p.literal(c); - /* } */ case 15: - case 3: - lastRepeat = repeat$1; - $s = 1; continue; - case 2: - _r$5 = p.concat(); /* */ $s = 23; case 23: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$5; - _r$6 = p.swapVerticalBar(); /* */ $s = 26; case 26: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - /* */ if (_r$6) { $s = 24; continue; } - /* */ $s = 25; continue; - /* if (_r$6) { */ case 24: - p.stack = $subslice(p.stack, 0, (p.stack.$length - 1 >> 0)); - /* } */ case 25: - _r$7 = p.alternate(); /* */ $s = 27; case 27: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _r$7; - n = p.stack.$length; - if (!((n === 1))) { - _tmp$28 = ptrType.nil; - _tmp$29 = new Error.ptr("missing closing )", s[0]); - _ = _tmp$28; - err[0] = _tmp$29; - $s = -1; return [_, err[0]]; - } - _tmp$30 = (x = p.stack, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); - _tmp$31 = $ifaceNil; - _ = _tmp$30; - err[0] = _tmp$31; - $s = -1; return [_, err[0]]; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [_, err[0]]; } if($curGoroutine.asleep) { var $f = {$blk: parse$1, $c: true, $r, _, _2, _3, _4, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _struct, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$10, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, after, after$1, before, before$1, c, c$1, err, err$1, err$2, err$3, flags, lastRepeat, lit, max, min, n, ok, op$2, p, r, r$1, re, repeat$1, rest, rest$1, rest$2, s, t, x, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseRepeat = function parseRepeat(s) { - var _tuple, _tuple$1, max, min, ok, ok1, p, rest, s; - min = 0; - max = 0; - rest = ""; - ok = false; - p = this; - if (s === "" || !((s.charCodeAt(0) === 123))) { - return [min, max, rest, ok]; - } - s = $substring(s, 1); - ok1 = false; - _tuple = p.parseInt(s); - min = _tuple[0]; - s = _tuple[1]; - ok1 = _tuple[2]; - if (!ok1) { - return [min, max, rest, ok]; - } - if (s === "") { - return [min, max, rest, ok]; - } - if (!((s.charCodeAt(0) === 44))) { - max = min; - } else { - s = $substring(s, 1); - if (s === "") { - return [min, max, rest, ok]; - } - if (s.charCodeAt(0) === 125) { - max = -1; - } else { - _tuple$1 = p.parseInt(s); - max = _tuple$1[0]; - s = _tuple$1[1]; - ok1 = _tuple$1[2]; - if (!ok1) { - return [min, max, rest, ok]; - } else if (max < 0) { - min = -1; - } - } - } - if (s === "" || !((s.charCodeAt(0) === 125))) { - return [min, max, rest, ok]; - } - rest = $substring(s, 1); - ok = true; - return [min, max, rest, ok]; - }; - $ptrType(parser).prototype.parsePerlFlags = function parsePerlFlags(s) { - var _1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, c, capture, end, err, flags, name, p, re, rest, s, sawFlag, sign, t; - rest = ""; - err = $ifaceNil; - p = this; - t = s; - if (t.length > 4 && (t.charCodeAt(2) === 80) && (t.charCodeAt(3) === 60)) { - end = strings.IndexRune(t, 62); - if (end < 0) { - err = checkUTF8(t); - if (!($interfaceIsEqual(err, $ifaceNil))) { - _tmp = ""; - _tmp$1 = err; - rest = _tmp; - err = _tmp$1; - return [rest, err]; - } - _tmp$2 = ""; - _tmp$3 = new Error.ptr("invalid named capture", s); - rest = _tmp$2; - err = _tmp$3; - return [rest, err]; - } - capture = $substring(t, 0, (end + 1 >> 0)); - name = $substring(t, 4, end); - err = checkUTF8(name); - if (!($interfaceIsEqual(err, $ifaceNil))) { - _tmp$4 = ""; - _tmp$5 = err; - rest = _tmp$4; - err = _tmp$5; - return [rest, err]; - } - if (!isValidCaptureName(name)) { - _tmp$6 = ""; - _tmp$7 = new Error.ptr("invalid named capture", capture); - rest = _tmp$6; - err = _tmp$7; - return [rest, err]; - } - p.numCap = p.numCap + (1) >> 0; - re = p.op(128); - re.Cap = p.numCap; - re.Name = name; - _tmp$8 = $substring(t, (end + 1 >> 0)); - _tmp$9 = $ifaceNil; - rest = _tmp$8; - err = _tmp$9; - return [rest, err]; - } - c = 0; - t = $substring(t, 2); - flags = p.flags; - sign = 1; - sawFlag = false; - Loop: - while (true) { - if (!(!(t === ""))) { break; } - _tuple = nextRune(t); - c = _tuple[0]; - t = _tuple[1]; - err = _tuple[2]; - if (!($interfaceIsEqual(err, $ifaceNil))) { - _tmp$10 = ""; - _tmp$11 = err; - rest = _tmp$10; - err = _tmp$11; - return [rest, err]; - } - _1 = c; - if (_1 === (105)) { - flags = (flags | (1)) >>> 0; - sawFlag = true; - } else if (_1 === (109)) { - flags = (flags & ~(16)) << 16 >>> 16; - sawFlag = true; - } else if (_1 === (115)) { - flags = (flags | (8)) >>> 0; - sawFlag = true; - } else if (_1 === (85)) { - flags = (flags | (32)) >>> 0; - sawFlag = true; - } else if (_1 === (45)) { - if (sign < 0) { - break Loop; - } - sign = -1; - flags = ~flags << 16 >>> 16; - sawFlag = false; - } else if ((_1 === (58)) || (_1 === (41))) { - if (sign < 0) { - if (!sawFlag) { - break Loop; - } - flags = ~flags << 16 >>> 16; - } - if (c === 58) { - p.op(128); - } - p.flags = flags; - _tmp$12 = t; - _tmp$13 = $ifaceNil; - rest = _tmp$12; - err = _tmp$13; - return [rest, err]; - } else { - break Loop; - } - } - _tmp$14 = ""; - _tmp$15 = new Error.ptr("invalid or unsupported Perl syntax", $substring(s, 0, (s.length - t.length >> 0))); - rest = _tmp$14; - err = _tmp$15; - return [rest, err]; - }; - isValidCaptureName = function isValidCaptureName$1(name) { - var _i, _ref, _rune, c, name; - if (name === "") { - return false; - } - _ref = name; - _i = 0; - while (true) { - if (!(_i < _ref.length)) { break; } - _rune = $decodeRune(_ref, _i); - c = _rune[0]; - if (!((c === 95)) && !isalnum(c)) { - return false; - } - _i += _rune[1]; - } - return true; - }; - $ptrType(parser).prototype.parseInt = function parseInt(s) { - var i, n, ok, p, rest, s, t; - n = 0; - rest = ""; - ok = false; - p = this; - if (s === "" || s.charCodeAt(0) < 48 || 57 < s.charCodeAt(0)) { - return [n, rest, ok]; - } - if (s.length >= 2 && (s.charCodeAt(0) === 48) && 48 <= s.charCodeAt(1) && s.charCodeAt(1) <= 57) { - return [n, rest, ok]; - } - t = s; - while (true) { - if (!(!(s === "") && 48 <= s.charCodeAt(0) && s.charCodeAt(0) <= 57)) { break; } - s = $substring(s, 1); - } - rest = s; - ok = true; - t = $substring(t, 0, (t.length - s.length >> 0)); - i = 0; - while (true) { - if (!(i < t.length)) { break; } - if (n >= 100000000) { - n = -1; - break; - } - n = (($imul(n, 10)) + ((t.charCodeAt(i) >> 0)) >> 0) - 48 >> 0; - i = i + (1) >> 0; - } - return [n, rest, ok]; - }; - isCharClass = function isCharClass$1(re) { - var re; - return (re.Op === 3) && (re.Rune.$length === 1) || (re.Op === 4) || (re.Op === 5) || (re.Op === 6); - }; - matchRune = function matchRune$1(re, r) { - var _1, i, r, re, x, x$1, x$2, x$3; - _1 = re.Op; - if (_1 === (3)) { - return (re.Rune.$length === 1) && ((x = re.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) === r); - } else if (_1 === (4)) { - i = 0; - while (true) { - if (!(i < re.Rune.$length)) { break; } - if ((x$1 = re.Rune, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])) <= r && r <= (x$2 = re.Rune, x$3 = i + 1 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3]))) { - return true; - } - i = i + (2) >> 0; - } - return false; - } else if (_1 === (5)) { - return !((r === 10)); - } else if (_1 === (6)) { - return true; - } - return false; - }; - $ptrType(parser).prototype.parseVerticalBar = function parseVerticalBar() { - var {_r, _r$1, p, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - _r = p.concat(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r; - _r$1 = p.swapVerticalBar(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (!_r$1) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!_r$1) { */ case 2: - p.op(129); - /* } */ case 3: - $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: parseVerticalBar, $c: true, $r, _r, _r$1, p, $s};return $f; - }; - mergeCharClass = function mergeCharClass$1(dst, src) { - var _1, dst, src, x, x$1, x$2, x$3, x$4; - switch (0) { default: - _1 = dst.Op; - if (_1 === (6)) { - } else if (_1 === (5)) { - if (matchRune(src, 10)) { - dst.Op = 6; - } - } else if (_1 === (4)) { - if (src.Op === 3) { - dst.Rune = appendLiteral(dst.Rune, (x = src.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])), src.Flags); - } else { - dst.Rune = appendClass(dst.Rune, src.Rune); - } - } else if (_1 === (3)) { - if (((x$1 = src.Rune, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])) === (x$2 = dst.Rune, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0]))) && (src.Flags === dst.Flags)) { - break; - } - dst.Op = 4; - dst.Rune = appendLiteral($subslice(dst.Rune, 0, 0), (x$3 = dst.Rune, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])), dst.Flags); - dst.Rune = appendLiteral(dst.Rune, (x$4 = src.Rune, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])), src.Flags); - } - } - }; - $ptrType(parser).prototype.swapVerticalBar = function swapVerticalBar() { - var {_tmp, _tmp$1, n, p, re1, re1$1, re2, re3, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - n = p.stack.$length; - if (n >= 3 && ((x = p.stack, x$1 = n - 2 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Op === 129) && isCharClass((x$2 = p.stack, x$3 = n - 1 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3]))) && isCharClass((x$4 = p.stack, x$5 = n - 3 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])))) { - re1 = (x$6 = p.stack, x$7 = n - 1 >> 0, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])); - re3 = (x$8 = p.stack, x$9 = n - 3 >> 0, ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + x$9])); - if (re1.Op > re3.Op) { - _tmp = re3; - _tmp$1 = re1; - re1 = _tmp; - re3 = _tmp$1; - (x$10 = p.stack, x$11 = n - 3 >> 0, ((x$11 < 0 || x$11 >= x$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + x$11] = re3)); - } - mergeCharClass(re3, re1); - p.reuse(re1); - p.stack = $subslice(p.stack, 0, (n - 1 >> 0)); - $s = -1; return true; - } - /* */ if (n >= 2) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (n >= 2) { */ case 1: - re1$1 = (x$12 = p.stack, x$13 = n - 1 >> 0, ((x$13 < 0 || x$13 >= x$12.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + x$13])); - re2 = (x$14 = p.stack, x$15 = n - 2 >> 0, ((x$15 < 0 || x$15 >= x$14.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + x$15])); - /* */ if (re2.Op === 129) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (re2.Op === 129) { */ case 3: - /* */ if (n >= 3) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (n >= 3) { */ case 5: - $r = cleanAlt((x$16 = p.stack, x$17 = n - 3 >> 0, ((x$17 < 0 || x$17 >= x$16.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$16.$array[x$16.$offset + x$17]))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 6: - (x$18 = p.stack, x$19 = n - 2 >> 0, ((x$19 < 0 || x$19 >= x$18.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$18.$array[x$18.$offset + x$19] = re1$1)); - (x$20 = p.stack, x$21 = n - 1 >> 0, ((x$21 < 0 || x$21 >= x$20.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$20.$array[x$20.$offset + x$21] = re2)); - $s = -1; return true; - /* } */ case 4: - /* } */ case 2: - $s = -1; return false; - /* */ } return; } var $f = {$blk: swapVerticalBar, $c: true, $r, _tmp, _tmp$1, n, p, re1, re1$1, re2, re3, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; - }; - $ptrType(parser).prototype.parseRightParen = function parseRightParen() { - var {_r, _r$1, _r$2, n, p, re1, re2, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - _r = p.concat(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r; - _r$1 = p.swapVerticalBar(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (_r$1) { */ case 2: - p.stack = $subslice(p.stack, 0, (p.stack.$length - 1 >> 0)); - /* } */ case 3: - _r$2 = p.alternate(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - n = p.stack.$length; - if (n < 2) { - $s = -1; return new Error.ptr("unexpected )", p.wholeRegexp); - } - re1 = (x = p.stack, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); - re2 = (x$2 = p.stack, x$3 = n - 2 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])); - p.stack = $subslice(p.stack, 0, (n - 2 >> 0)); - if (!((re2.Op === 128))) { - $s = -1; return new Error.ptr("unexpected )", p.wholeRegexp); - } - p.flags = re2.Flags; - if (re2.Cap === 0) { - p.push(re1); - } else { - re2.Op = 13; - re2.Sub = $subslice(new sliceType$4(re2.Sub0), 0, 1); - (x$4 = re2.Sub, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0] = re1)); - p.push(re2); - } - $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: parseRightParen, $c: true, $r, _r, _r$1, _r$2, n, p, re1, re2, x, x$1, x$2, x$3, x$4, $s};return $f; - }; - $ptrType(parser).prototype.parseEscape = function parseEscape(s) { - var _1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$32, _tmp$33, _tmp$34, _tmp$35, _tmp$36, _tmp$37, _tmp$38, _tmp$39, _tmp$4, _tmp$40, _tmp$41, _tmp$42, _tmp$43, _tmp$44, _tmp$45, _tmp$46, _tmp$47, _tmp$48, _tmp$49, _tmp$5, _tmp$50, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, c, err, i, nhex, p, r, rest, s, t, v, x, y; - r = 0; - rest = ""; - err = $ifaceNil; - p = this; - t = $substring(s, 1); - if (t === "") { - _tmp = 0; - _tmp$1 = ""; - _tmp$2 = new Error.ptr("trailing backslash at end of expression", ""); - r = _tmp; - rest = _tmp$1; - err = _tmp$2; - return [r, rest, err]; - } - _tuple = nextRune(t); - c = _tuple[0]; - t = _tuple[1]; - err = _tuple[2]; - if (!($interfaceIsEqual(err, $ifaceNil))) { - _tmp$3 = 0; - _tmp$4 = ""; - _tmp$5 = err; - r = _tmp$3; - rest = _tmp$4; - err = _tmp$5; - return [r, rest, err]; - } - Switch: - switch (0) { default: - _1 = c; - if ((_1 === (49)) || (_1 === (50)) || (_1 === (51)) || (_1 === (52)) || (_1 === (53)) || (_1 === (54)) || (_1 === (55))) { - if (t === "" || t.charCodeAt(0) < 48 || t.charCodeAt(0) > 55) { - break; - } - r = c - 48 >> 0; - i = 1; - while (true) { - if (!(i < 3)) { break; } - if (t === "" || t.charCodeAt(0) < 48 || t.charCodeAt(0) > 55) { - break; - } - r = (($imul(r, 8)) + ((t.charCodeAt(0) >> 0)) >> 0) - 48 >> 0; - t = $substring(t, 1); - i = i + (1) >> 0; - } - _tmp$6 = r; - _tmp$7 = t; - _tmp$8 = $ifaceNil; - r = _tmp$6; - rest = _tmp$7; - err = _tmp$8; - return [r, rest, err]; - } else if (_1 === (48)) { - r = c - 48 >> 0; - i = 1; - while (true) { - if (!(i < 3)) { break; } - if (t === "" || t.charCodeAt(0) < 48 || t.charCodeAt(0) > 55) { - break; - } - r = (($imul(r, 8)) + ((t.charCodeAt(0) >> 0)) >> 0) - 48 >> 0; - t = $substring(t, 1); - i = i + (1) >> 0; - } - _tmp$9 = r; - _tmp$10 = t; - _tmp$11 = $ifaceNil; - r = _tmp$9; - rest = _tmp$10; - err = _tmp$11; - return [r, rest, err]; - } else if (_1 === (120)) { - if (t === "") { - break; - } - _tuple$1 = nextRune(t); - c = _tuple$1[0]; - t = _tuple$1[1]; - err = _tuple$1[2]; - if (!($interfaceIsEqual(err, $ifaceNil))) { - _tmp$12 = 0; - _tmp$13 = ""; - _tmp$14 = err; - r = _tmp$12; - rest = _tmp$13; - err = _tmp$14; - return [r, rest, err]; - } - if (c === 123) { - nhex = 0; - r = 0; - while (true) { - if (t === "") { - break Switch; - } - _tuple$2 = nextRune(t); - c = _tuple$2[0]; - t = _tuple$2[1]; - err = _tuple$2[2]; - if (!($interfaceIsEqual(err, $ifaceNil))) { - _tmp$15 = 0; - _tmp$16 = ""; - _tmp$17 = err; - r = _tmp$15; - rest = _tmp$16; - err = _tmp$17; - return [r, rest, err]; - } - if (c === 125) { - break; - } - v = unhex(c); - if (v < 0) { - break Switch; - } - r = ($imul(r, 16)) + v >> 0; - if (r > 1114111) { - break Switch; - } - nhex = nhex + (1) >> 0; - } - if (nhex === 0) { - break Switch; - } - _tmp$18 = r; - _tmp$19 = t; - _tmp$20 = $ifaceNil; - r = _tmp$18; - rest = _tmp$19; - err = _tmp$20; - return [r, rest, err]; - } - x = unhex(c); - _tuple$3 = nextRune(t); - c = _tuple$3[0]; - t = _tuple$3[1]; - err = _tuple$3[2]; - if (!($interfaceIsEqual(err, $ifaceNil))) { - _tmp$21 = 0; - _tmp$22 = ""; - _tmp$23 = err; - r = _tmp$21; - rest = _tmp$22; - err = _tmp$23; - return [r, rest, err]; - } - y = unhex(c); - if (x < 0 || y < 0) { - break; - } - _tmp$24 = ($imul(x, 16)) + y >> 0; - _tmp$25 = t; - _tmp$26 = $ifaceNil; - r = _tmp$24; - rest = _tmp$25; - err = _tmp$26; - return [r, rest, err]; - } else if (_1 === (97)) { - _tmp$27 = 7; - _tmp$28 = t; - _tmp$29 = err; - r = _tmp$27; - rest = _tmp$28; - err = _tmp$29; - return [r, rest, err]; - } else if (_1 === (102)) { - _tmp$30 = 12; - _tmp$31 = t; - _tmp$32 = err; - r = _tmp$30; - rest = _tmp$31; - err = _tmp$32; - return [r, rest, err]; - } else if (_1 === (110)) { - _tmp$33 = 10; - _tmp$34 = t; - _tmp$35 = err; - r = _tmp$33; - rest = _tmp$34; - err = _tmp$35; - return [r, rest, err]; - } else if (_1 === (114)) { - _tmp$36 = 13; - _tmp$37 = t; - _tmp$38 = err; - r = _tmp$36; - rest = _tmp$37; - err = _tmp$38; - return [r, rest, err]; - } else if (_1 === (116)) { - _tmp$39 = 9; - _tmp$40 = t; - _tmp$41 = err; - r = _tmp$39; - rest = _tmp$40; - err = _tmp$41; - return [r, rest, err]; - } else if (_1 === (118)) { - _tmp$42 = 11; - _tmp$43 = t; - _tmp$44 = err; - r = _tmp$42; - rest = _tmp$43; - err = _tmp$44; - return [r, rest, err]; - } else if (c < 128 && !isalnum(c)) { - _tmp$45 = c; - _tmp$46 = t; - _tmp$47 = $ifaceNil; - r = _tmp$45; - rest = _tmp$46; - err = _tmp$47; - return [r, rest, err]; - } - } - _tmp$48 = 0; - _tmp$49 = ""; - _tmp$50 = new Error.ptr("invalid escape sequence", $substring(s, 0, (s.length - t.length >> 0))); - r = _tmp$48; - rest = _tmp$49; - err = _tmp$50; - return [r, rest, err]; - }; - $ptrType(parser).prototype.parseClassChar = function parseClassChar(s, wholeClass) { - var _tmp, _tmp$1, _tmp$2, _tuple, _tuple$1, err, p, r, rest, s, wholeClass; - r = 0; - rest = ""; - err = $ifaceNil; - p = this; - if (s === "") { - _tmp = 0; - _tmp$1 = ""; - _tmp$2 = new Error.ptr("missing closing ]", wholeClass); - r = _tmp; - rest = _tmp$1; - err = _tmp$2; - return [r, rest, err]; - } - if (s.charCodeAt(0) === 92) { - _tuple = p.parseEscape(s); - r = _tuple[0]; - rest = _tuple[1]; - err = _tuple[2]; - return [r, rest, err]; - } - _tuple$1 = nextRune(s); - r = _tuple$1[0]; - rest = _tuple$1[1]; - err = _tuple$1[2]; - return [r, rest, err]; - }; - $ptrType(parser).prototype.parsePerlClassEscape = function parsePerlClassEscape(s, r) { - var {$24r, _entry, _r, _tmp, _tmp$1, g, out, p, r, rest, s, $s, $r, $c} = $restore(this, {s, r}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - out = sliceType$1.nil; - rest = ""; - p = this; - if ((((p.flags & 64) >>> 0) === 0) || s.length < 2 || !((s.charCodeAt(0) === 92))) { - $s = -1; return [out, rest]; - } - g = $clone((_entry = $mapIndex(perlGroup,$String.keyFor($substring(s, 0, 2))), _entry !== undefined ? _entry.v : new charGroup.ptr(0, sliceType$1.nil)), charGroup); - if (g.sign === 0) { - $s = -1; return [out, rest]; - } - _r = p.appendGroup(r, $clone(g, charGroup)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tmp = _r; - _tmp$1 = $substring(s, 2); - out = _tmp; - rest = _tmp$1; - $24r = [out, rest]; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: parsePerlClassEscape, $c: true, $r, $24r, _entry, _r, _tmp, _tmp$1, g, out, p, r, rest, s, $s};return $f; - }; - $ptrType(parser).prototype.parseNamedClass = function parseNamedClass(s, r) { - var {$24r, _entry, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, err, g, i, name, out, p, r, rest, s, $s, $r, $c} = $restore(this, {s, r}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - out = sliceType$1.nil; - rest = ""; - err = $ifaceNil; - p = this; - if (s.length < 2 || !((s.charCodeAt(0) === 91)) || !((s.charCodeAt(1) === 58))) { - $s = -1; return [out, rest, err]; - } - i = strings.Index($substring(s, 2), ":]"); - if (i < 0) { - $s = -1; return [out, rest, err]; - } - i = i + (2) >> 0; - _tmp = $substring(s, 0, (i + 2 >> 0)); - _tmp$1 = $substring(s, (i + 2 >> 0)); - name = _tmp; - s = _tmp$1; - g = $clone((_entry = $mapIndex(posixGroup,$String.keyFor(name)), _entry !== undefined ? _entry.v : new charGroup.ptr(0, sliceType$1.nil)), charGroup); - if (g.sign === 0) { - _tmp$2 = sliceType$1.nil; - _tmp$3 = ""; - _tmp$4 = new Error.ptr("invalid character class range", name); - out = _tmp$2; - rest = _tmp$3; - err = _tmp$4; - $s = -1; return [out, rest, err]; - } - _r = p.appendGroup(r, $clone(g, charGroup)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tmp$5 = _r; - _tmp$6 = s; - _tmp$7 = $ifaceNil; - out = _tmp$5; - rest = _tmp$6; - err = _tmp$7; - $24r = [out, rest, err]; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: parseNamedClass, $c: true, $r, $24r, _entry, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, err, g, i, name, out, p, r, rest, s, $s};return $f; - }; - $ptrType(parser).prototype.appendGroup = function appendGroup(r, g) { - var {_r, g, p, r, tmp, $s, $r, $c} = $restore(this, {r, g}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - /* */ if (((p.flags & 1) >>> 0) === 0) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (((p.flags & 1) >>> 0) === 0) { */ case 1: - if (g.sign < 0) { - r = appendNegatedClass(r, g.class$1); - } else { - r = appendClass(r, g.class$1); - } - $s = 3; continue; - /* } else { */ case 2: - tmp = $subslice(p.tmpClass, 0, 0); - tmp = appendFoldedClass(tmp, g.class$1); - p.tmpClass = tmp; - _r = cleanClass((p.$ptr_tmpClass || (p.$ptr_tmpClass = new ptrType$2(function() { return this.$target.tmpClass; }, function($v) { this.$target.tmpClass = $v; }, p)))); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - tmp = _r; - if (g.sign < 0) { - r = appendNegatedClass(r, tmp); - } else { - r = appendClass(r, tmp); - } - /* } */ case 3: - $s = -1; return r; - /* */ } return; } var $f = {$blk: appendGroup, $c: true, $r, _r, g, p, r, tmp, $s};return $f; - }; - unicodeTable = function unicodeTable$1(name) { - var _entry, _entry$1, _entry$2, _entry$3, name, t, t$1; - if (name === "Any") { - return [anyTable, anyTable]; - } - t = (_entry = $mapIndex(unicode.Categories,$String.keyFor(name)), _entry !== undefined ? _entry.v : ptrType$3.nil); - if (!(t === ptrType$3.nil)) { - return [t, (_entry$1 = $mapIndex(unicode.FoldCategory,$String.keyFor(name)), _entry$1 !== undefined ? _entry$1.v : ptrType$3.nil)]; - } - t$1 = (_entry$2 = $mapIndex(unicode.Scripts,$String.keyFor(name)), _entry$2 !== undefined ? _entry$2.v : ptrType$3.nil); - if (!(t$1 === ptrType$3.nil)) { - return [t$1, (_entry$3 = $mapIndex(unicode.FoldScript,$String.keyFor(name)), _entry$3 !== undefined ? _entry$3.v : ptrType$3.nil)]; - } - return [ptrType$3.nil, ptrType$3.nil]; - }; - $ptrType(parser).prototype.parseUnicodeClass = function parseUnicodeClass(s, r) { - var {_r, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, c, end, err, fold, name, out, p, r, rest, s, seq, sign, t, tab, tmp, $s, $r, $c} = $restore(this, {s, r}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - out = sliceType$1.nil; - rest = ""; - err = $ifaceNil; - p = this; - if ((((p.flags & 128) >>> 0) === 0) || s.length < 2 || !((s.charCodeAt(0) === 92)) || !((s.charCodeAt(1) === 112)) && !((s.charCodeAt(1) === 80))) { - $s = -1; return [out, rest, err]; - } - sign = 1; - if (s.charCodeAt(1) === 80) { - sign = -1; - } - t = $substring(s, 2); - _tuple = nextRune(t); - c = _tuple[0]; - t = _tuple[1]; - err = _tuple[2]; - if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [out, rest, err]; - } - _tmp = ""; - _tmp$1 = ""; - seq = _tmp; - name = _tmp$1; - if (!((c === 123))) { - seq = $substring(s, 0, (s.length - t.length >> 0)); - name = $substring(seq, 2); - } else { - end = strings.IndexRune(s, 125); - if (end < 0) { - err = checkUTF8(s); - if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [out, rest, err]; - } - _tmp$2 = sliceType$1.nil; - _tmp$3 = ""; - _tmp$4 = new Error.ptr("invalid character class range", s); - out = _tmp$2; - rest = _tmp$3; - err = _tmp$4; - $s = -1; return [out, rest, err]; - } - _tmp$5 = $substring(s, 0, (end + 1 >> 0)); - _tmp$6 = $substring(s, (end + 1 >> 0)); - seq = _tmp$5; - t = _tmp$6; - name = $substring(s, 3, end); - err = checkUTF8(name); - if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [out, rest, err]; - } - } - if (!(name === "") && (name.charCodeAt(0) === 94)) { - sign = -sign; - name = $substring(name, 1); - } - _tuple$1 = unicodeTable(name); - tab = _tuple$1[0]; - fold = _tuple$1[1]; - if (tab === ptrType$3.nil) { - _tmp$7 = sliceType$1.nil; - _tmp$8 = ""; - _tmp$9 = new Error.ptr("invalid character class range", seq); - out = _tmp$7; - rest = _tmp$8; - err = _tmp$9; - $s = -1; return [out, rest, err]; - } - /* */ if ((((p.flags & 1) >>> 0) === 0) || fold === ptrType$3.nil) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if ((((p.flags & 1) >>> 0) === 0) || fold === ptrType$3.nil) { */ case 1: - if (sign > 0) { - r = appendTable(r, tab); - } else { - r = appendNegatedTable(r, tab); - } - $s = 3; continue; - /* } else { */ case 2: - tmp = $subslice(p.tmpClass, 0, 0); - tmp = appendTable(tmp, tab); - tmp = appendTable(tmp, fold); - p.tmpClass = tmp; - _r = cleanClass((p.$ptr_tmpClass || (p.$ptr_tmpClass = new ptrType$2(function() { return this.$target.tmpClass; }, function($v) { this.$target.tmpClass = $v; }, p)))); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - tmp = _r; - if (sign > 0) { - r = appendClass(r, tmp); - } else { - r = appendNegatedClass(r, tmp); - } - /* } */ case 3: - _tmp$10 = r; - _tmp$11 = t; - _tmp$12 = $ifaceNil; - out = _tmp$10; - rest = _tmp$11; - err = _tmp$12; - $s = -1; return [out, rest, err]; - /* */ } return; } var $f = {$blk: parseUnicodeClass, $c: true, $r, _r, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, c, end, err, fold, name, out, p, r, rest, s, seq, sign, t, tab, tmp, $s};return $f; - }; - $ptrType(parser).prototype.parseClass = function parseClass(s) { - var {_r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, class$1, err, err$1, err$2, first, hi, lo, nclass, nclass$1, nclass$2, nt, nt$1, nt$2, p, re, rest, rng, s, sign, size, t, $s, $r, $c} = $restore(this, {s}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - rest = ""; - err = $ifaceNil; - p = this; - t = $substring(s, 1); - re = p.newRegexp(4); - re.Flags = p.flags; - re.Rune = $subslice(new sliceType$1(re.Rune0), 0, 0); - sign = 1; - if (!(t === "") && (t.charCodeAt(0) === 94)) { - sign = -1; - t = $substring(t, 1); - if (((p.flags & 4) >>> 0) === 0) { - re.Rune = $append(re.Rune, 10, 10); - } - } - class$1 = re.Rune; - first = true; - /* while (true) { */ case 1: - /* if (!(t === "" || !((t.charCodeAt(0) === 93)) || first)) { break; } */ if(!(t === "" || !((t.charCodeAt(0) === 93)) || first)) { $s = 2; continue; } - if (!(t === "") && (t.charCodeAt(0) === 45) && (((p.flags & 64) >>> 0) === 0) && !first && ((t.length === 1) || !((t.charCodeAt(1) === 93)))) { - _tuple = utf8.DecodeRuneInString($substring(t, 1)); - size = _tuple[1]; - _tmp = ""; - _tmp$1 = new Error.ptr("invalid character class range", $substring(t, 0, (1 + size >> 0))); - rest = _tmp; - err = _tmp$1; - $s = -1; return [rest, err]; - } - first = false; - /* */ if (t.length > 2 && (t.charCodeAt(0) === 91) && (t.charCodeAt(1) === 58)) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (t.length > 2 && (t.charCodeAt(0) === 91) && (t.charCodeAt(1) === 58)) { */ case 3: - _r = p.parseNamedClass(t, class$1); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple$1 = _r; - nclass = _tuple$1[0]; - nt = _tuple$1[1]; - err$1 = _tuple$1[2]; - if (!($interfaceIsEqual(err$1, $ifaceNil))) { - _tmp$2 = ""; - _tmp$3 = err$1; - rest = _tmp$2; - err = _tmp$3; - $s = -1; return [rest, err]; - } - if (!(nclass === sliceType$1.nil)) { - _tmp$4 = nclass; - _tmp$5 = nt; - class$1 = _tmp$4; - t = _tmp$5; - /* continue; */ $s = 1; continue; - } - /* } */ case 4: - _r$1 = p.parseUnicodeClass(t, class$1); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$2 = _r$1; - nclass$1 = _tuple$2[0]; - nt$1 = _tuple$2[1]; - err$2 = _tuple$2[2]; - if (!($interfaceIsEqual(err$2, $ifaceNil))) { - _tmp$6 = ""; - _tmp$7 = err$2; - rest = _tmp$6; - err = _tmp$7; - $s = -1; return [rest, err]; - } - if (!(nclass$1 === sliceType$1.nil)) { - _tmp$8 = nclass$1; - _tmp$9 = nt$1; - class$1 = _tmp$8; - t = _tmp$9; - /* continue; */ $s = 1; continue; - } - _r$2 = p.parsePerlClassEscape(t, class$1); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple$3 = _r$2; - nclass$2 = _tuple$3[0]; - nt$2 = _tuple$3[1]; - if (!(nclass$2 === sliceType$1.nil)) { - _tmp$10 = nclass$2; - _tmp$11 = nt$2; - class$1 = _tmp$10; - t = _tmp$11; - /* continue; */ $s = 1; continue; - } - rng = t; - _tmp$12 = 0; - _tmp$13 = 0; - lo = _tmp$12; - hi = _tmp$13; - _tuple$4 = p.parseClassChar(t, s); - lo = _tuple$4[0]; - t = _tuple$4[1]; - err$2 = _tuple$4[2]; - if (!($interfaceIsEqual(err$2, $ifaceNil))) { - _tmp$14 = ""; - _tmp$15 = err$2; - rest = _tmp$14; - err = _tmp$15; - $s = -1; return [rest, err]; - } - hi = lo; - if (t.length >= 2 && (t.charCodeAt(0) === 45) && !((t.charCodeAt(1) === 93))) { - t = $substring(t, 1); - _tuple$5 = p.parseClassChar(t, s); - hi = _tuple$5[0]; - t = _tuple$5[1]; - err$2 = _tuple$5[2]; - if (!($interfaceIsEqual(err$2, $ifaceNil))) { - _tmp$16 = ""; - _tmp$17 = err$2; - rest = _tmp$16; - err = _tmp$17; - $s = -1; return [rest, err]; - } - if (hi < lo) { - rng = $substring(rng, 0, (rng.length - t.length >> 0)); - _tmp$18 = ""; - _tmp$19 = new Error.ptr("invalid character class range", rng); - rest = _tmp$18; - err = _tmp$19; - $s = -1; return [rest, err]; - } - } - if (((p.flags & 1) >>> 0) === 0) { - class$1 = appendRange(class$1, lo, hi); - } else { - class$1 = appendFoldedRange(class$1, lo, hi); - } - $s = 1; continue; - case 2: - t = $substring(t, 1); - re.Rune = class$1; - _r$3 = cleanClass((re.$ptr_Rune || (re.$ptr_Rune = new ptrType$2(function() { return this.$target.Rune; }, function($v) { this.$target.Rune = $v; }, re)))); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - class$1 = _r$3; - if (sign < 0) { - class$1 = negateClass(class$1); - } - re.Rune = class$1; - p.push(re); - _tmp$20 = t; - _tmp$21 = $ifaceNil; - rest = _tmp$20; - err = _tmp$21; - $s = -1; return [rest, err]; - /* */ } return; } var $f = {$blk: parseClass, $c: true, $r, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, class$1, err, err$1, err$2, first, hi, lo, nclass, nclass$1, nclass$2, nt, nt$1, nt$2, p, re, rest, rng, s, sign, size, t, $s};return $f; - }; - cleanClass = function cleanClass$1(rp) { - var {_tmp, _tmp$1, hi, i, lo, r, rp, w, x, x$1, x$2, x$3, x$4, x$5, $s, $r, $c} = $restore(this, {rp}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = sort.Sort((x = new ranges.ptr(rp), new x.constructor.elem(x))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - r = rp.$get(); - if (r.$length < 2) { - $s = -1; return r; - } - w = 2; - i = 2; - while (true) { - if (!(i < r.$length)) { break; } - _tmp = ((i < 0 || i >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + i]); - _tmp$1 = (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$1])); - lo = _tmp; - hi = _tmp$1; - if (lo <= ((x$2 = w - 1 >> 0, ((x$2 < 0 || x$2 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$2])) + 1 >> 0)) { - if (hi > (x$3 = w - 1 >> 0, ((x$3 < 0 || x$3 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$3]))) { - (x$4 = w - 1 >> 0, ((x$4 < 0 || x$4 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$4] = hi)); - } - i = i + (2) >> 0; - continue; - } - ((w < 0 || w >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + w] = lo); - (x$5 = w + 1 >> 0, ((x$5 < 0 || x$5 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$5] = hi)); - w = w + (2) >> 0; - i = i + (2) >> 0; - } - $s = -1; return $subslice(r, 0, w); - /* */ } return; } var $f = {$blk: cleanClass$1, $c: true, $r, _tmp, _tmp$1, hi, i, lo, r, rp, w, x, x$1, x$2, x$3, x$4, x$5, $s};return $f; - }; - appendLiteral = function appendLiteral$1(r, x, flags) { - var flags, r, x; - if (!((((flags & 1) >>> 0) === 0))) { - return appendFoldedRange(r, x, x); - } - return appendRange(r, x, x); - }; - appendRange = function appendRange$1(r, lo, hi) { - var _tmp, _tmp$1, hi, i, lo, n, r, rhi, rlo, x, x$1, x$2, x$3; - n = r.$length; - i = 2; - while (true) { - if (!(i <= 4)) { break; } - if (n >= i) { - _tmp = (x = n - i >> 0, ((x < 0 || x >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x])); - _tmp$1 = (x$1 = (n - i >> 0) + 1 >> 0, ((x$1 < 0 || x$1 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$1])); - rlo = _tmp; - rhi = _tmp$1; - if (lo <= (rhi + 1 >> 0) && rlo <= (hi + 1 >> 0)) { - if (lo < rlo) { - (x$2 = n - i >> 0, ((x$2 < 0 || x$2 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$2] = lo)); - } - if (hi > rhi) { - (x$3 = (n - i >> 0) + 1 >> 0, ((x$3 < 0 || x$3 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$3] = hi)); - } - return r; - } - } - i = i + (2) >> 0; - } - return $append(r, lo, hi); - }; - appendFoldedRange = function appendFoldedRange$1(r, lo, hi) { - var c, f, hi, lo, r; - if (lo <= 65 && hi >= 125251) { - return appendRange(r, lo, hi); - } - if (hi < 65 || lo > 125251) { - return appendRange(r, lo, hi); - } - if (lo < 65) { - r = appendRange(r, lo, 64); - lo = 65; - } - if (hi > 125251) { - r = appendRange(r, 125252, hi); - hi = 125251; - } - c = lo; - while (true) { - if (!(c <= hi)) { break; } - r = appendRange(r, c, c); - f = unicode.SimpleFold(c); - while (true) { - if (!(!((f === c)))) { break; } - r = appendRange(r, f, f); - f = unicode.SimpleFold(f); - } - c = c + (1) >> 0; - } - return r; - }; - appendClass = function appendClass$1(r, x) { - var i, r, x, x$1; - i = 0; - while (true) { - if (!(i < x.$length)) { break; } - r = appendRange(r, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]), (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1]))); - i = i + (2) >> 0; - } - return r; - }; - appendFoldedClass = function appendFoldedClass$1(r, x) { - var i, r, x, x$1; - i = 0; - while (true) { - if (!(i < x.$length)) { break; } - r = appendFoldedRange(r, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]), (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1]))); - i = i + (2) >> 0; - } - return r; - }; - appendNegatedClass = function appendNegatedClass$1(r, x) { - var _tmp, _tmp$1, hi, i, lo, nextLo, r, x, x$1; - nextLo = 0; - i = 0; - while (true) { - if (!(i < x.$length)) { break; } - _tmp = ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]); - _tmp$1 = (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); - lo = _tmp; - hi = _tmp$1; - if (nextLo <= (lo - 1 >> 0)) { - r = appendRange(r, nextLo, lo - 1 >> 0); - } - nextLo = hi + 1 >> 0; - i = i + (2) >> 0; - } - if (nextLo <= 1114111) { - r = appendRange(r, nextLo, 1114111); - } - return r; - }; - appendTable = function appendTable$1(r, x) { - var _i, _i$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, c, c$1, hi, hi$1, lo, lo$1, r, stride, stride$1, x, xr, xr$1; - _ref = x.R16; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - xr = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), unicode.Range16); - _tmp = ((xr.Lo >> 0)); - _tmp$1 = ((xr.Hi >> 0)); - _tmp$2 = ((xr.Stride >> 0)); - lo = _tmp; - hi = _tmp$1; - stride = _tmp$2; - if (stride === 1) { - r = appendRange(r, lo, hi); - _i++; - continue; - } - c = lo; - while (true) { - if (!(c <= hi)) { break; } - r = appendRange(r, c, c); - c = c + (stride) >> 0; - } - _i++; - } - _ref$1 = x.R32; - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - xr$1 = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), unicode.Range32); - _tmp$3 = ((xr$1.Lo >> 0)); - _tmp$4 = ((xr$1.Hi >> 0)); - _tmp$5 = ((xr$1.Stride >> 0)); - lo$1 = _tmp$3; - hi$1 = _tmp$4; - stride$1 = _tmp$5; - if (stride$1 === 1) { - r = appendRange(r, lo$1, hi$1); - _i$1++; - continue; - } - c$1 = lo$1; - while (true) { - if (!(c$1 <= hi$1)) { break; } - r = appendRange(r, c$1, c$1); - c$1 = c$1 + (stride$1) >> 0; - } - _i$1++; - } - return r; - }; - appendNegatedTable = function appendNegatedTable$1(r, x) { - var _i, _i$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, c, c$1, hi, hi$1, lo, lo$1, nextLo, r, stride, stride$1, x, xr, xr$1; - nextLo = 0; - _ref = x.R16; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - xr = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), unicode.Range16); - _tmp = ((xr.Lo >> 0)); - _tmp$1 = ((xr.Hi >> 0)); - _tmp$2 = ((xr.Stride >> 0)); - lo = _tmp; - hi = _tmp$1; - stride = _tmp$2; - if (stride === 1) { - if (nextLo <= (lo - 1 >> 0)) { - r = appendRange(r, nextLo, lo - 1 >> 0); - } - nextLo = hi + 1 >> 0; - _i++; - continue; - } - c = lo; - while (true) { - if (!(c <= hi)) { break; } - if (nextLo <= (c - 1 >> 0)) { - r = appendRange(r, nextLo, c - 1 >> 0); - } - nextLo = c + 1 >> 0; - c = c + (stride) >> 0; - } - _i++; - } - _ref$1 = x.R32; - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - xr$1 = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), unicode.Range32); - _tmp$3 = ((xr$1.Lo >> 0)); - _tmp$4 = ((xr$1.Hi >> 0)); - _tmp$5 = ((xr$1.Stride >> 0)); - lo$1 = _tmp$3; - hi$1 = _tmp$4; - stride$1 = _tmp$5; - if (stride$1 === 1) { - if (nextLo <= (lo$1 - 1 >> 0)) { - r = appendRange(r, nextLo, lo$1 - 1 >> 0); - } - nextLo = hi$1 + 1 >> 0; - _i$1++; - continue; - } - c$1 = lo$1; - while (true) { - if (!(c$1 <= hi$1)) { break; } - if (nextLo <= (c$1 - 1 >> 0)) { - r = appendRange(r, nextLo, c$1 - 1 >> 0); - } - nextLo = c$1 + 1 >> 0; - c$1 = c$1 + (stride$1) >> 0; - } - _i$1++; - } - if (nextLo <= 1114111) { - r = appendRange(r, nextLo, 1114111); - } - return r; - }; - negateClass = function negateClass$1(r) { - var _tmp, _tmp$1, hi, i, lo, nextLo, r, w, x, x$1; - nextLo = 0; - w = 0; - i = 0; - while (true) { - if (!(i < r.$length)) { break; } - _tmp = ((i < 0 || i >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + i]); - _tmp$1 = (x = i + 1 >> 0, ((x < 0 || x >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x])); - lo = _tmp; - hi = _tmp$1; - if (nextLo <= (lo - 1 >> 0)) { - ((w < 0 || w >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + w] = nextLo); - (x$1 = w + 1 >> 0, ((x$1 < 0 || x$1 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$1] = (lo - 1 >> 0))); - w = w + (2) >> 0; - } - nextLo = hi + 1 >> 0; - i = i + (2) >> 0; - } - r = $subslice(r, 0, w); - if (nextLo <= 1114111) { - r = $append(r, nextLo, 1114111); - } - return r; - }; - $ptrType(ranges).prototype.Less = function Less(i, j) { - var i, j, p, ra, x, x$1; - ra = this; - p = ra.p.$get(); - i = $imul(i, (2)); - j = $imul(j, (2)); - return ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]) < ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]) || (((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]) === ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j])) && (x = i + 1 >> 0, ((x < 0 || x >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x])) > (x$1 = j + 1 >> 0, ((x$1 < 0 || x$1 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$1])); - }; - ranges.prototype.Less = function(...$args) { return this.$val.Less(...$args); }; - $ptrType(ranges).prototype.Len = function Len() { - var _q, ra; - ra = this; - return (_q = ra.p.$get().$length / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); - }; - ranges.prototype.Len = function(...$args) { return this.$val.Len(...$args); }; - $ptrType(ranges).prototype.Swap = function Swap(i, j) { - var _tmp, _tmp$1, _tmp$2, _tmp$3, i, j, p, ra, x, x$1, x$2, x$3; - ra = this; - p = ra.p.$get(); - i = $imul(i, (2)); - j = $imul(j, (2)); - _tmp = ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]); - _tmp$1 = (x = j + 1 >> 0, ((x < 0 || x >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x])); - _tmp$2 = ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]); - _tmp$3 = (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$1])); - ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i] = _tmp); - (x$2 = i + 1 >> 0, ((x$2 < 0 || x$2 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$2] = _tmp$1)); - ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j] = _tmp$2); - (x$3 = j + 1 >> 0, ((x$3 < 0 || x$3 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$3] = _tmp$3)); - }; - ranges.prototype.Swap = function(...$args) { return this.$val.Swap(...$args); }; - checkUTF8 = function checkUTF8$1(s) { - var _tuple, rune, s, size; - while (true) { - if (!(!(s === ""))) { break; } - _tuple = utf8.DecodeRuneInString(s); - rune = _tuple[0]; - size = _tuple[1]; - if ((rune === 65533) && (size === 1)) { - return new Error.ptr("invalid UTF-8", s); - } - s = $substring(s, size); - } - return $ifaceNil; - }; - nextRune = function nextRune$1(s) { - var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, c, err, s, size, t; - c = 0; - t = ""; - err = $ifaceNil; - _tuple = utf8.DecodeRuneInString(s); - c = _tuple[0]; - size = _tuple[1]; - if ((c === 65533) && (size === 1)) { - _tmp = 0; - _tmp$1 = ""; - _tmp$2 = new Error.ptr("invalid UTF-8", s); - c = _tmp; - t = _tmp$1; - err = _tmp$2; - return [c, t, err]; - } - _tmp$3 = c; - _tmp$4 = $substring(s, size); - _tmp$5 = $ifaceNil; - c = _tmp$3; - t = _tmp$4; - err = _tmp$5; - return [c, t, err]; - }; - isalnum = function isalnum$1(c) { - var c; - return 48 <= c && c <= 57 || 65 <= c && c <= 90 || 97 <= c && c <= 122; - }; - unhex = function unhex$1(c) { - var c; - if (48 <= c && c <= 57) { - return c - 48 >> 0; - } - if (97 <= c && c <= 102) { - return (c - 97 >> 0) + 10 >> 0; - } - if (65 <= c && c <= 70) { - return (c - 65 >> 0) + 10 >> 0; - } - return -1; - }; - Op.prototype.String = function String$5() { - var i, x; - i = this.$val; - if (1 <= i && i <= 19) { - i = i - (1) << 24 >>> 24; - return $substring("NoMatchEmptyMatchLiteralCharClassAnyCharNotNLAnyCharBeginLineEndLineBeginTextEndTextWordBoundaryNoWordBoundaryCaptureStarPlusQuestRepeatConcatAlternate", ((i < 0 || i >= _Op_index_0.length) ? ($throwRuntimeError("index out of range"), undefined) : _Op_index_0[i]), (x = i + 1 << 24 >>> 24, ((x < 0 || x >= _Op_index_0.length) ? ($throwRuntimeError("index out of range"), undefined) : _Op_index_0[x]))); - } else if ((i === 128)) { - return "opPseudo"; - } else { - return "Op(" + strconv.FormatInt((new $Int64(0, i)), 10) + ")"; - } - }; - $ptrType(Op).prototype.String = function(...$args) { return new Op(this.$get()).String(...$args); }; - makePatchList = function makePatchList$1(n) { - var n; - return new patchList.ptr(n, n); - }; - $ptrType(patchList).prototype.patch = function patch(p, val) { - var head, i, l, p, val, x, x$1; - l = this; - head = l.head; - while (true) { - if (!(!((head === 0)))) { break; } - i = (x = p.Inst, x$1 = head >>> 1 >>> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); - if (((head & 1) >>> 0) === 0) { - head = i.Out; - i.Out = val; - } else { - head = i.Arg; - i.Arg = val; - } - } - }; - patchList.prototype.patch = function(...$args) { return this.$val.patch(...$args); }; - $ptrType(patchList).prototype.append = function append(p, l2) { - var i, l1, l2, p, x, x$1; - l1 = this; - if (l1.head === 0) { - return l2; - } - if (l2.head === 0) { - return l1; - } - i = (x = p.Inst, x$1 = l1.tail >>> 1 >>> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); - if (((l1.tail & 1) >>> 0) === 0) { - i.Out = l2.head; - } else { - i.Arg = l2.head; - } - return new patchList.ptr(l1.head, l2.tail); - }; - patchList.prototype.append = function(...$args) { return this.$val.append(...$args); }; - Compile = function Compile$1(re) { - var c, f, re; - c = new compiler.ptr(ptrType$4.nil); - c.init(); - f = $clone(c.compile(re), frag); - $clone(f.out, patchList).patch(c.p, c.inst(4).i); - c.p.Start = ((f.i >> 0)); - return [c.p, $ifaceNil]; - }; - $pkg.Compile = Compile; - $ptrType(compiler).prototype.init = function init() { - var c; - c = this; - c.p = new Prog.ptr(sliceType$6.nil, 0, 0); - c.p.NumCap = 2; - c.inst(5); - }; - $ptrType(compiler).prototype.compile = function compile(re) { - var _1, _i, _i$1, _i$2, _ref, _ref$1, _ref$2, bra, c, f, f$1, f$2, f1, i, j, ket, re, sub, sub$1, sub$2, x, x$1, x$2, x$3; - c = this; - _1 = re.Op; - if (_1 === (1)) { - return c.fail(); - } else if (_1 === (2)) { - return c.nop(); - } else if (_1 === (3)) { - if (re.Rune.$length === 0) { - return c.nop(); - } - f = new frag.ptr(0, new patchList.ptr(0, 0), false); - _ref = re.Rune; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - j = _i; - f1 = $clone(c.rune($subslice(re.Rune, j, (j + 1 >> 0)), re.Flags), frag); - if (j === 0) { - frag.copy(f, f1); - } else { - frag.copy(f, c.cat($clone(f, frag), $clone(f1, frag))); - } - _i++; - } - return f; - } else if (_1 === (4)) { - return c.rune(re.Rune, re.Flags); - } else if (_1 === (5)) { - return c.rune(anyRuneNotNL, 0); - } else if (_1 === (6)) { - return c.rune(anyRune, 0); - } else if (_1 === (7)) { - return c.empty(1); - } else if (_1 === (8)) { - return c.empty(2); - } else if (_1 === (9)) { - return c.empty(4); - } else if (_1 === (10)) { - return c.empty(8); - } else if (_1 === (11)) { - return c.empty(16); - } else if (_1 === (12)) { - return c.empty(32); - } else if (_1 === (13)) { - bra = $clone(c.cap((((re.Cap << 1 >> 0) >>> 0))), frag); - sub = $clone(c.compile((x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))), frag); - ket = $clone(c.cap(((((re.Cap << 1 >> 0) | 1) >>> 0))), frag); - return c.cat($clone(c.cat($clone(bra, frag), $clone(sub, frag)), frag), $clone(ket, frag)); - } else if (_1 === (14)) { - return c.star($clone(c.compile((x$1 = re.Sub, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0]))), frag), !((((re.Flags & 32) >>> 0) === 0))); - } else if (_1 === (15)) { - return c.plus($clone(c.compile((x$2 = re.Sub, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0]))), frag), !((((re.Flags & 32) >>> 0) === 0))); - } else if (_1 === (16)) { - return c.quest($clone(c.compile((x$3 = re.Sub, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0]))), frag), !((((re.Flags & 32) >>> 0) === 0))); - } else if (_1 === (18)) { - if (re.Sub.$length === 0) { - return c.nop(); - } - f$1 = new frag.ptr(0, new patchList.ptr(0, 0), false); - _ref$1 = re.Sub; - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - i = _i$1; - sub$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - if (i === 0) { - frag.copy(f$1, c.compile(sub$1)); - } else { - frag.copy(f$1, c.cat($clone(f$1, frag), $clone(c.compile(sub$1), frag))); - } - _i$1++; - } - return f$1; - } else if (_1 === (19)) { - f$2 = new frag.ptr(0, new patchList.ptr(0, 0), false); - _ref$2 = re.Sub; - _i$2 = 0; - while (true) { - if (!(_i$2 < _ref$2.$length)) { break; } - sub$2 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); - frag.copy(f$2, c.alt($clone(f$2, frag), $clone(c.compile(sub$2), frag))); - _i$2++; - } - return f$2; - } - $panic(new $String("regexp: unhandled case in compile")); - }; - $ptrType(compiler).prototype.inst = function inst(op$2) { - var c, f, op$2; - c = this; - f = new frag.ptr(((c.p.Inst.$length >>> 0)), new patchList.ptr(0, 0), true); - c.p.Inst = $append(c.p.Inst, new Inst.ptr(op$2, 0, 0, sliceType$1.nil)); - return f; - }; - $ptrType(compiler).prototype.nop = function nop() { - var c, f; - c = this; - f = $clone(c.inst(6), frag); - patchList.copy(f.out, makePatchList(f.i << 1 >>> 0)); - return f; - }; - $ptrType(compiler).prototype.fail = function fail() { - var c; - c = this; - return new frag.ptr(0, new patchList.ptr(0, 0), false); - }; - $ptrType(compiler).prototype.cap = function cap(arg) { - var arg, c, f, x, x$1; - c = this; - f = $clone(c.inst(2), frag); - patchList.copy(f.out, makePatchList(f.i << 1 >>> 0)); - (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Arg = arg; - if (c.p.NumCap < (((arg >> 0)) + 1 >> 0)) { - c.p.NumCap = ((arg >> 0)) + 1 >> 0; - } - return f; - }; - $ptrType(compiler).prototype.cat = function cat(f1, f2) { - var c, f1, f2; - c = this; - if ((f1.i === 0) || (f2.i === 0)) { - return new frag.ptr(0, new patchList.ptr(0, 0), false); - } - $clone(f1.out, patchList).patch(c.p, f2.i); - return new frag.ptr(f1.i, $clone(f2.out, patchList), f1.nullable && f2.nullable); - }; - $ptrType(compiler).prototype.alt = function alt(f1, f2) { - var c, f, f1, f2, i, x, x$1; - c = this; - if (f1.i === 0) { - return f2; - } - if (f2.i === 0) { - return f1; - } - f = $clone(c.inst(0), frag); - i = (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); - i.Out = f1.i; - i.Arg = f2.i; - patchList.copy(f.out, $clone(f1.out, patchList).append(c.p, $clone(f2.out, patchList))); - f.nullable = f1.nullable || f2.nullable; - return f; - }; - $ptrType(compiler).prototype.quest = function quest(f1, nongreedy) { - var c, f, f1, i, nongreedy, x, x$1; - c = this; - f = $clone(c.inst(0), frag); - i = (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); - if (nongreedy) { - i.Arg = f1.i; - patchList.copy(f.out, makePatchList(f.i << 1 >>> 0)); - } else { - i.Out = f1.i; - patchList.copy(f.out, makePatchList(((f.i << 1 >>> 0) | 1) >>> 0)); - } - patchList.copy(f.out, $clone(f.out, patchList).append(c.p, $clone(f1.out, patchList))); - return f; - }; - $ptrType(compiler).prototype.loop = function loop(f1, nongreedy) { - var c, f, f1, i, nongreedy, x, x$1; - c = this; - f = $clone(c.inst(0), frag); - i = (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); - if (nongreedy) { - i.Arg = f1.i; - patchList.copy(f.out, makePatchList(f.i << 1 >>> 0)); - } else { - i.Out = f1.i; - patchList.copy(f.out, makePatchList(((f.i << 1 >>> 0) | 1) >>> 0)); - } - $clone(f1.out, patchList).patch(c.p, f.i); - return f; - }; - $ptrType(compiler).prototype.star = function star(f1, nongreedy) { - var c, f1, nongreedy; - c = this; - if (f1.nullable) { - return c.quest($clone(c.plus($clone(f1, frag), nongreedy), frag), nongreedy); - } - return c.loop($clone(f1, frag), nongreedy); - }; - $ptrType(compiler).prototype.plus = function plus(f1, nongreedy) { - var c, f1, nongreedy; - c = this; - return new frag.ptr(f1.i, $clone(c.loop($clone(f1, frag), nongreedy).out, patchList), f1.nullable); - }; - $ptrType(compiler).prototype.empty = function empty(op$2) { - var c, f, op$2, x, x$1; - c = this; - f = $clone(c.inst(3), frag); - (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Arg = ((op$2 >>> 0)); - patchList.copy(f.out, makePatchList(f.i << 1 >>> 0)); - return f; - }; - $ptrType(compiler).prototype.rune = function rune(r, flags) { - var c, f, flags, i, r, x, x$1; - c = this; - f = $clone(c.inst(7), frag); - f.nullable = false; - i = (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); - i.Rune = r; - flags = (flags & (1)) >>> 0; - if (!((r.$length === 1)) || (unicode.SimpleFold((0 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 0])) === (0 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 0]))) { - flags = (flags & ~(1)) << 16 >>> 16; - } - i.Arg = ((flags >>> 0)); - patchList.copy(f.out, makePatchList(f.i << 1 >>> 0)); - if ((((flags & 1) >>> 0) === 0) && ((r.$length === 1) || (r.$length === 2) && ((0 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 0]) === (1 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 1])))) { - i.Op = 8; - } else if ((r.$length === 2) && ((0 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 0]) === 0) && ((1 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 1]) === 1114111)) { - i.Op = 9; - } else if ((r.$length === 4) && ((0 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 0]) === 0) && ((1 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 1]) === 9) && ((2 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 2]) === 11) && ((3 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 3]) === 1114111)) { - i.Op = 10; - } - return f; - }; - ptrType.methods = [{prop: "Simplify", name: "Simplify", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "Equal", name: "Equal", pkg: "", typ: $funcType([ptrType], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "MaxCap", name: "MaxCap", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "CapNames", name: "CapNames", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "capNames", name: "capNames", pkg: "regexp/syntax", typ: $funcType([sliceType], [], false)}]; - Op.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$4.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "skipNop", name: "skipNop", pkg: "regexp/syntax", typ: $funcType([$Uint32], [ptrType$5], false)}, {prop: "Prefix", name: "Prefix", pkg: "", typ: $funcType([], [$String, $Bool], false)}, {prop: "StartCond", name: "StartCond", pkg: "", typ: $funcType([], [EmptyOp], false)}]; - InstOp.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$5.methods = [{prop: "op", name: "op", pkg: "regexp/syntax", typ: $funcType([], [InstOp], false)}, {prop: "MatchRune", name: "MatchRune", pkg: "", typ: $funcType([$Int32], [$Bool], false)}, {prop: "MatchRunePos", name: "MatchRunePos", pkg: "", typ: $funcType([$Int32], [$Int], false)}, {prop: "MatchEmptyWidth", name: "MatchEmptyWidth", pkg: "", typ: $funcType([$Int32, $Int32], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$6.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; - ErrorCode.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$7.methods = [{prop: "newRegexp", name: "newRegexp", pkg: "regexp/syntax", typ: $funcType([Op], [ptrType], false)}, {prop: "reuse", name: "reuse", pkg: "regexp/syntax", typ: $funcType([ptrType], [], false)}, {prop: "checkLimits", name: "checkLimits", pkg: "regexp/syntax", typ: $funcType([ptrType], [], false)}, {prop: "checkSize", name: "checkSize", pkg: "regexp/syntax", typ: $funcType([ptrType], [], false)}, {prop: "calcSize", name: "calcSize", pkg: "regexp/syntax", typ: $funcType([ptrType, $Bool], [$Int64], false)}, {prop: "checkHeight", name: "checkHeight", pkg: "regexp/syntax", typ: $funcType([ptrType], [], false)}, {prop: "calcHeight", name: "calcHeight", pkg: "regexp/syntax", typ: $funcType([ptrType, $Bool], [$Int], false)}, {prop: "push", name: "push", pkg: "regexp/syntax", typ: $funcType([ptrType], [ptrType], false)}, {prop: "maybeConcat", name: "maybeConcat", pkg: "regexp/syntax", typ: $funcType([$Int32, Flags], [$Bool], false)}, {prop: "literal", name: "literal", pkg: "regexp/syntax", typ: $funcType([$Int32], [], false)}, {prop: "op", name: "op", pkg: "regexp/syntax", typ: $funcType([Op], [ptrType], false)}, {prop: "repeat", name: "repeat", pkg: "regexp/syntax", typ: $funcType([Op, $Int, $Int, $String, $String, $String], [$String, $error], false)}, {prop: "concat", name: "concat", pkg: "regexp/syntax", typ: $funcType([], [ptrType], false)}, {prop: "alternate", name: "alternate", pkg: "regexp/syntax", typ: $funcType([], [ptrType], false)}, {prop: "collapse", name: "collapse", pkg: "regexp/syntax", typ: $funcType([sliceType$4, Op], [ptrType], false)}, {prop: "factor", name: "factor", pkg: "regexp/syntax", typ: $funcType([sliceType$4], [sliceType$4], false)}, {prop: "leadingString", name: "leadingString", pkg: "regexp/syntax", typ: $funcType([ptrType], [sliceType$1, Flags], false)}, {prop: "removeLeadingString", name: "removeLeadingString", pkg: "regexp/syntax", typ: $funcType([ptrType, $Int], [ptrType], false)}, {prop: "leadingRegexp", name: "leadingRegexp", pkg: "regexp/syntax", typ: $funcType([ptrType], [ptrType], false)}, {prop: "removeLeadingRegexp", name: "removeLeadingRegexp", pkg: "regexp/syntax", typ: $funcType([ptrType, $Bool], [ptrType], false)}, {prop: "parseRepeat", name: "parseRepeat", pkg: "regexp/syntax", typ: $funcType([$String], [$Int, $Int, $String, $Bool], false)}, {prop: "parsePerlFlags", name: "parsePerlFlags", pkg: "regexp/syntax", typ: $funcType([$String], [$String, $error], false)}, {prop: "parseInt", name: "parseInt", pkg: "regexp/syntax", typ: $funcType([$String], [$Int, $String, $Bool], false)}, {prop: "parseVerticalBar", name: "parseVerticalBar", pkg: "regexp/syntax", typ: $funcType([], [$error], false)}, {prop: "swapVerticalBar", name: "swapVerticalBar", pkg: "regexp/syntax", typ: $funcType([], [$Bool], false)}, {prop: "parseRightParen", name: "parseRightParen", pkg: "regexp/syntax", typ: $funcType([], [$error], false)}, {prop: "parseEscape", name: "parseEscape", pkg: "regexp/syntax", typ: $funcType([$String], [$Int32, $String, $error], false)}, {prop: "parseClassChar", name: "parseClassChar", pkg: "regexp/syntax", typ: $funcType([$String, $String], [$Int32, $String, $error], false)}, {prop: "parsePerlClassEscape", name: "parsePerlClassEscape", pkg: "regexp/syntax", typ: $funcType([$String, sliceType$1], [sliceType$1, $String], false)}, {prop: "parseNamedClass", name: "parseNamedClass", pkg: "regexp/syntax", typ: $funcType([$String, sliceType$1], [sliceType$1, $String, $error], false)}, {prop: "appendGroup", name: "appendGroup", pkg: "regexp/syntax", typ: $funcType([sliceType$1, charGroup], [sliceType$1], false)}, {prop: "parseUnicodeClass", name: "parseUnicodeClass", pkg: "regexp/syntax", typ: $funcType([$String, sliceType$1], [sliceType$1, $String, $error], false)}, {prop: "parseClass", name: "parseClass", pkg: "regexp/syntax", typ: $funcType([$String], [$String, $error], false)}]; - ranges.methods = [{prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}]; - patchList.methods = [{prop: "patch", name: "patch", pkg: "regexp/syntax", typ: $funcType([ptrType$4, $Uint32], [], false)}, {prop: "append", name: "append", pkg: "regexp/syntax", typ: $funcType([ptrType$4, patchList], [patchList], false)}]; - ptrType$8.methods = [{prop: "init", name: "init", pkg: "regexp/syntax", typ: $funcType([], [], false)}, {prop: "compile", name: "compile", pkg: "regexp/syntax", typ: $funcType([ptrType], [frag], false)}, {prop: "inst", name: "inst", pkg: "regexp/syntax", typ: $funcType([InstOp], [frag], false)}, {prop: "nop", name: "nop", pkg: "regexp/syntax", typ: $funcType([], [frag], false)}, {prop: "fail", name: "fail", pkg: "regexp/syntax", typ: $funcType([], [frag], false)}, {prop: "cap", name: "cap", pkg: "regexp/syntax", typ: $funcType([$Uint32], [frag], false)}, {prop: "cat", name: "cat", pkg: "regexp/syntax", typ: $funcType([frag, frag], [frag], false)}, {prop: "alt", name: "alt", pkg: "regexp/syntax", typ: $funcType([frag, frag], [frag], false)}, {prop: "quest", name: "quest", pkg: "regexp/syntax", typ: $funcType([frag, $Bool], [frag], false)}, {prop: "loop", name: "loop", pkg: "regexp/syntax", typ: $funcType([frag, $Bool], [frag], false)}, {prop: "star", name: "star", pkg: "regexp/syntax", typ: $funcType([frag, $Bool], [frag], false)}, {prop: "plus", name: "plus", pkg: "regexp/syntax", typ: $funcType([frag, $Bool], [frag], false)}, {prop: "empty", name: "empty", pkg: "regexp/syntax", typ: $funcType([EmptyOp], [frag], false)}, {prop: "rune", name: "rune", pkg: "regexp/syntax", typ: $funcType([sliceType$1, Flags], [frag], false)}]; - Regexp.init("", [{prop: "Op", name: "Op", embedded: false, exported: true, typ: Op, tag: ""}, {prop: "Flags", name: "Flags", embedded: false, exported: true, typ: Flags, tag: ""}, {prop: "Sub", name: "Sub", embedded: false, exported: true, typ: sliceType$4, tag: ""}, {prop: "Sub0", name: "Sub0", embedded: false, exported: true, typ: arrayType, tag: ""}, {prop: "Rune", name: "Rune", embedded: false, exported: true, typ: sliceType$1, tag: ""}, {prop: "Rune0", name: "Rune0", embedded: false, exported: true, typ: arrayType$1, tag: ""}, {prop: "Min", name: "Min", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Max", name: "Max", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Cap", name: "Cap", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}]); - Prog.init("", [{prop: "Inst", name: "Inst", embedded: false, exported: true, typ: sliceType$6, tag: ""}, {prop: "Start", name: "Start", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "NumCap", name: "NumCap", embedded: false, exported: true, typ: $Int, tag: ""}]); - Inst.init("", [{prop: "Op", name: "Op", embedded: false, exported: true, typ: InstOp, tag: ""}, {prop: "Out", name: "Out", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Arg", name: "Arg", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Rune", name: "Rune", embedded: false, exported: true, typ: sliceType$1, tag: ""}]); - Error.init("", [{prop: "Code", name: "Code", embedded: false, exported: true, typ: ErrorCode, tag: ""}, {prop: "Expr", name: "Expr", embedded: false, exported: true, typ: $String, tag: ""}]); - parser.init("regexp/syntax", [{prop: "flags", name: "flags", embedded: false, exported: false, typ: Flags, tag: ""}, {prop: "stack", name: "stack", embedded: false, exported: false, typ: sliceType$4, tag: ""}, {prop: "free", name: "free", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "numCap", name: "numCap", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "wholeRegexp", name: "wholeRegexp", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "tmpClass", name: "tmpClass", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "numRegexp", name: "numRegexp", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "numRunes", name: "numRunes", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "repeats", name: "repeats", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "height", name: "height", embedded: false, exported: false, typ: mapType, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: mapType$1, tag: ""}]); - charGroup.init("regexp/syntax", [{prop: "sign", name: "sign", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "class$1", name: "class", embedded: false, exported: false, typ: sliceType$1, tag: ""}]); - ranges.init("regexp/syntax", [{prop: "p", name: "p", embedded: false, exported: false, typ: ptrType$2, tag: ""}]); - patchList.init("regexp/syntax", [{prop: "head", name: "head", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "tail", name: "tail", embedded: false, exported: false, typ: $Uint32, tag: ""}]); - frag.init("regexp/syntax", [{prop: "i", name: "i", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "out", name: "out", embedded: false, exported: false, typ: patchList, tag: ""}, {prop: "nullable", name: "nullable", embedded: false, exported: false, typ: $Bool, tag: ""}]); - compiler.init("regexp/syntax", [{prop: "p", name: "p", embedded: false, exported: false, typ: ptrType$4, tag: ""}]); - }; - $init = function() { - $pkg.$init = function() {}; - /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: - $r = sort.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = strconv.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = strings.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = unicode.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = utf8.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - instOpNames = new sliceType(["InstAlt", "InstAltMatch", "InstCapture", "InstEmptyWidth", "InstMatch", "InstFail", "InstNop", "InstRune", "InstRune1", "InstRuneAny", "InstRuneAnyNotNL"]); - code1 = new sliceType$1([48, 57]); - code2 = new sliceType$1([9, 10, 12, 13, 32, 32]); - code3 = new sliceType$1([48, 57, 65, 90, 95, 95, 97, 122]); - perlGroup = $makeMap($String.keyFor, [{ k: "\\d", v: $clone(new charGroup.ptr(1, code1), charGroup) }, { k: "\\D", v: $clone(new charGroup.ptr(-1, code1), charGroup) }, { k: "\\s", v: $clone(new charGroup.ptr(1, code2), charGroup) }, { k: "\\S", v: $clone(new charGroup.ptr(-1, code2), charGroup) }, { k: "\\w", v: $clone(new charGroup.ptr(1, code3), charGroup) }, { k: "\\W", v: $clone(new charGroup.ptr(-1, code3), charGroup) }]); - code4 = new sliceType$1([48, 57, 65, 90, 97, 122]); - code5 = new sliceType$1([65, 90, 97, 122]); - code6 = new sliceType$1([0, 127]); - code7 = new sliceType$1([9, 9, 32, 32]); - code8 = new sliceType$1([0, 31, 127, 127]); - code9 = new sliceType$1([48, 57]); - code10 = new sliceType$1([33, 126]); - code11 = new sliceType$1([97, 122]); - code12 = new sliceType$1([32, 126]); - code13 = new sliceType$1([33, 47, 58, 64, 91, 96, 123, 126]); - code14 = new sliceType$1([9, 13, 32, 32]); - code15 = new sliceType$1([65, 90]); - code16 = new sliceType$1([48, 57, 65, 90, 95, 95, 97, 122]); - code17 = new sliceType$1([48, 57, 65, 70, 97, 102]); - posixGroup = $makeMap($String.keyFor, [{ k: "[:alnum:]", v: $clone(new charGroup.ptr(1, code4), charGroup) }, { k: "[:^alnum:]", v: $clone(new charGroup.ptr(-1, code4), charGroup) }, { k: "[:alpha:]", v: $clone(new charGroup.ptr(1, code5), charGroup) }, { k: "[:^alpha:]", v: $clone(new charGroup.ptr(-1, code5), charGroup) }, { k: "[:ascii:]", v: $clone(new charGroup.ptr(1, code6), charGroup) }, { k: "[:^ascii:]", v: $clone(new charGroup.ptr(-1, code6), charGroup) }, { k: "[:blank:]", v: $clone(new charGroup.ptr(1, code7), charGroup) }, { k: "[:^blank:]", v: $clone(new charGroup.ptr(-1, code7), charGroup) }, { k: "[:cntrl:]", v: $clone(new charGroup.ptr(1, code8), charGroup) }, { k: "[:^cntrl:]", v: $clone(new charGroup.ptr(-1, code8), charGroup) }, { k: "[:digit:]", v: $clone(new charGroup.ptr(1, code9), charGroup) }, { k: "[:^digit:]", v: $clone(new charGroup.ptr(-1, code9), charGroup) }, { k: "[:graph:]", v: $clone(new charGroup.ptr(1, code10), charGroup) }, { k: "[:^graph:]", v: $clone(new charGroup.ptr(-1, code10), charGroup) }, { k: "[:lower:]", v: $clone(new charGroup.ptr(1, code11), charGroup) }, { k: "[:^lower:]", v: $clone(new charGroup.ptr(-1, code11), charGroup) }, { k: "[:print:]", v: $clone(new charGroup.ptr(1, code12), charGroup) }, { k: "[:^print:]", v: $clone(new charGroup.ptr(-1, code12), charGroup) }, { k: "[:punct:]", v: $clone(new charGroup.ptr(1, code13), charGroup) }, { k: "[:^punct:]", v: $clone(new charGroup.ptr(-1, code13), charGroup) }, { k: "[:space:]", v: $clone(new charGroup.ptr(1, code14), charGroup) }, { k: "[:^space:]", v: $clone(new charGroup.ptr(-1, code14), charGroup) }, { k: "[:upper:]", v: $clone(new charGroup.ptr(1, code15), charGroup) }, { k: "[:^upper:]", v: $clone(new charGroup.ptr(-1, code15), charGroup) }, { k: "[:word:]", v: $clone(new charGroup.ptr(1, code16), charGroup) }, { k: "[:^word:]", v: $clone(new charGroup.ptr(-1, code16), charGroup) }, { k: "[:xdigit:]", v: $clone(new charGroup.ptr(1, code17), charGroup) }, { k: "[:^xdigit:]", v: $clone(new charGroup.ptr(-1, code17), charGroup) }]); - anyTable = new unicode.RangeTable.ptr(new sliceType$2([$clone(new unicode.Range16.ptr(0, 65535, 1), unicode.Range16)]), new sliceType$3([$clone(new unicode.Range32.ptr(65536, 1114111, 1), unicode.Range32)]), 0); - _Op_index_0 = $toNativeArray($kindUint8, [0, 7, 17, 24, 33, 45, 52, 61, 68, 77, 84, 96, 110, 117, 121, 125, 130, 136, 142, 151]); - anyRuneNotNL = new sliceType$1([0, 9, 11, 1114111]); - anyRune = new sliceType$1([0, 1114111]); - /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; - }; - $pkg.$init = $init; - return $pkg; -})(); -$packages["regexp"] = (function() { - var $pkg = {}, $init, bytes, nosync, io, syntax, sort, strconv, strings, unicode, utf8, Regexp, input, inputString, inputBytes, inputReader, onePassProg, onePassInst, queueOnePass, runeSlice, queue, entry, thread, machine, inputs, lazyFlag, onePassMachine, job, bitState, sliceType, arrayType, arrayType$1, arrayType$2, sliceType$1, sliceType$2, ptrType, ptrType$1, ptrType$2, sliceType$3, sliceType$4, ptrType$3, sliceType$5, ptrType$4, sliceType$6, sliceType$7, arrayType$3, arrayType$4, sliceType$8, sliceType$9, sliceType$10, sliceType$11, ptrType$5, ptrType$6, ptrType$7, sliceType$12, ptrType$8, sliceType$13, ptrType$9, sliceType$14, ptrType$10, ptrType$11, ptrType$12, ptrType$13, sliceType$15, funcType, funcType$1, funcType$2, funcType$3, ptrType$14, ptrType$15, ptrType$16, ptrType$17, ptrType$18, matchPool, specialBytes, onePassPool, arrayNoInts, bitStatePool, matchSize, noRune, noNext, anyRuneNotNL, anyRune, Compile, compile, minInputLen, MustCompile, quote, special, init, QuoteMeta, extract, onePassPrefix, onePassNext, iop, newQueue, mergeRuneSets, cleanupOnePass, onePassCopy, makeOnePass, compileOnePass, newLazyFlag, newOnePassMachine, freeOnePassMachine, newBitState, freeBitState, maxBitStateLen, shouldBacktrack; - bytes = $packages["bytes"]; - nosync = $packages["github.com/gopherjs/gopherjs/nosync"]; - io = $packages["io"]; - syntax = $packages["regexp/syntax"]; - sort = $packages["sort"]; - strconv = $packages["strconv"]; - strings = $packages["strings"]; - unicode = $packages["unicode"]; - utf8 = $packages["unicode/utf8"]; - Regexp = $newType(0, $kindStruct, "regexp.Regexp", true, "regexp", true, function(expr_, prog_, onepass_, numSubexp_, maxBitStateLen_, subexpNames_, prefix_, prefixBytes_, prefixRune_, prefixEnd_, mpool_, matchcap_, prefixComplete_, cond_, minInputLen_, longest_) { - this.$val = this; - if (arguments.length === 0) { - this.expr = ""; - this.prog = ptrType$1.nil; - this.onepass = ptrType$2.nil; - this.numSubexp = 0; - this.maxBitStateLen = 0; - this.subexpNames = sliceType$3.nil; - this.prefix = ""; - this.prefixBytes = sliceType$4.nil; - this.prefixRune = 0; - this.prefixEnd = 0; - this.mpool = 0; - this.matchcap = 0; - this.prefixComplete = false; - this.cond = 0; - this.minInputLen = 0; - this.longest = false; - return; - } - this.expr = expr_; - this.prog = prog_; - this.onepass = onepass_; - this.numSubexp = numSubexp_; - this.maxBitStateLen = maxBitStateLen_; - this.subexpNames = subexpNames_; - this.prefix = prefix_; - this.prefixBytes = prefixBytes_; - this.prefixRune = prefixRune_; - this.prefixEnd = prefixEnd_; - this.mpool = mpool_; - this.matchcap = matchcap_; - this.prefixComplete = prefixComplete_; - this.cond = cond_; - this.minInputLen = minInputLen_; - this.longest = longest_; - }); - input = $newType(8, $kindInterface, "regexp.input", true, "regexp", false, null); - inputString = $newType(0, $kindStruct, "regexp.inputString", true, "regexp", false, function(str_) { - this.$val = this; - if (arguments.length === 0) { - this.str = ""; - return; - } - this.str = str_; - }); - inputBytes = $newType(0, $kindStruct, "regexp.inputBytes", true, "regexp", false, function(str_) { - this.$val = this; - if (arguments.length === 0) { - this.str = sliceType$4.nil; - return; - } - this.str = str_; - }); - inputReader = $newType(0, $kindStruct, "regexp.inputReader", true, "regexp", false, function(r_, atEOT_, pos_) { - this.$val = this; - if (arguments.length === 0) { - this.r = $ifaceNil; - this.atEOT = false; - this.pos = 0; - return; - } - this.r = r_; - this.atEOT = atEOT_; - this.pos = pos_; - }); - onePassProg = $newType(0, $kindStruct, "regexp.onePassProg", true, "regexp", false, function(Inst_, Start_, NumCap_) { - this.$val = this; - if (arguments.length === 0) { - this.Inst = sliceType$12.nil; - this.Start = 0; - this.NumCap = 0; - return; - } - this.Inst = Inst_; - this.Start = Start_; - this.NumCap = NumCap_; - }); - onePassInst = $newType(0, $kindStruct, "regexp.onePassInst", true, "regexp", false, function(Inst_, Next_) { - this.$val = this; - if (arguments.length === 0) { - this.Inst = new syntax.Inst.ptr(0, 0, 0, sliceType$1.nil); - this.Next = sliceType$2.nil; - return; - } - this.Inst = Inst_; - this.Next = Next_; - }); - queueOnePass = $newType(0, $kindStruct, "regexp.queueOnePass", true, "regexp", false, function(sparse_, dense_, size_, nextIndex_) { - this.$val = this; - if (arguments.length === 0) { - this.sparse = sliceType$2.nil; - this.dense = sliceType$2.nil; - this.size = 0; - this.nextIndex = 0; - return; - } - this.sparse = sparse_; - this.dense = dense_; - this.size = size_; - this.nextIndex = nextIndex_; - }); - runeSlice = $newType(12, $kindSlice, "regexp.runeSlice", true, "regexp", false, null); - queue = $newType(0, $kindStruct, "regexp.queue", true, "regexp", false, function(sparse_, dense_) { - this.$val = this; - if (arguments.length === 0) { - this.sparse = sliceType$2.nil; - this.dense = sliceType$5.nil; - return; - } - this.sparse = sparse_; - this.dense = dense_; - }); - entry = $newType(0, $kindStruct, "regexp.entry", true, "regexp", false, function(pc_, t_) { - this.$val = this; - if (arguments.length === 0) { - this.pc = 0; - this.t = ptrType$4.nil; - return; - } - this.pc = pc_; - this.t = t_; - }); - thread = $newType(0, $kindStruct, "regexp.thread", true, "regexp", false, function(inst_, cap_) { - this.$val = this; - if (arguments.length === 0) { - this.inst = ptrType$10.nil; - this.cap = sliceType$7.nil; - return; - } - this.inst = inst_; - this.cap = cap_; - }); - machine = $newType(0, $kindStruct, "regexp.machine", true, "regexp", false, function(re_, p_, q0_, q1_, pool_, matched_, matchcap_, inputs_) { - this.$val = this; - if (arguments.length === 0) { - this.re = ptrType.nil; - this.p = ptrType$1.nil; - this.q0 = new queue.ptr(sliceType$2.nil, sliceType$5.nil); - this.q1 = new queue.ptr(sliceType$2.nil, sliceType$5.nil); - this.pool = sliceType$6.nil; - this.matched = false; - this.matchcap = sliceType$7.nil; - this.inputs = new inputs.ptr(new inputBytes.ptr(sliceType$4.nil), new inputString.ptr(""), new inputReader.ptr($ifaceNil, false, 0)); - return; - } - this.re = re_; - this.p = p_; - this.q0 = q0_; - this.q1 = q1_; - this.pool = pool_; - this.matched = matched_; - this.matchcap = matchcap_; - this.inputs = inputs_; - }); - inputs = $newType(0, $kindStruct, "regexp.inputs", true, "regexp", false, function(bytes_, string_, reader_) { - this.$val = this; - if (arguments.length === 0) { - this.bytes = new inputBytes.ptr(sliceType$4.nil); - this.string = new inputString.ptr(""); - this.reader = new inputReader.ptr($ifaceNil, false, 0); - return; - } - this.bytes = bytes_; - this.string = string_; - this.reader = reader_; - }); - lazyFlag = $newType(8, $kindUint64, "regexp.lazyFlag", true, "regexp", false, null); - onePassMachine = $newType(0, $kindStruct, "regexp.onePassMachine", true, "regexp", false, function(inputs_, matchcap_) { - this.$val = this; - if (arguments.length === 0) { - this.inputs = new inputs.ptr(new inputBytes.ptr(sliceType$4.nil), new inputString.ptr(""), new inputReader.ptr($ifaceNil, false, 0)); - this.matchcap = sliceType$7.nil; - return; - } - this.inputs = inputs_; - this.matchcap = matchcap_; - }); - job = $newType(0, $kindStruct, "regexp.job", true, "regexp", false, function(pc_, arg_, pos_) { - this.$val = this; - if (arguments.length === 0) { - this.pc = 0; - this.arg = false; - this.pos = 0; - return; - } - this.pc = pc_; - this.arg = arg_; - this.pos = pos_; - }); - bitState = $newType(0, $kindStruct, "regexp.bitState", true, "regexp", false, function(end_, cap_, matchcap_, jobs_, visited_, inputs_) { - this.$val = this; - if (arguments.length === 0) { - this.end = 0; - this.cap = sliceType$7.nil; - this.matchcap = sliceType$7.nil; - this.jobs = sliceType$15.nil; - this.visited = sliceType$2.nil; - this.inputs = new inputs.ptr(new inputBytes.ptr(sliceType$4.nil), new inputString.ptr(""), new inputReader.ptr($ifaceNil, false, 0)); - return; - } - this.end = end_; - this.cap = cap_; - this.matchcap = matchcap_; - this.jobs = jobs_; - this.visited = visited_; - this.inputs = inputs_; - }); - $pkg.Regexp = Regexp; - $pkg.input = input; - $pkg.inputString = inputString; - $pkg.inputBytes = inputBytes; - $pkg.inputReader = inputReader; - $pkg.onePassProg = onePassProg; - $pkg.onePassInst = onePassInst; - $pkg.queueOnePass = queueOnePass; - $pkg.runeSlice = runeSlice; - $pkg.queue = queue; - $pkg.entry = entry; - $pkg.thread = thread; - $pkg.machine = machine; - $pkg.inputs = inputs; - $pkg.lazyFlag = lazyFlag; - $pkg.onePassMachine = onePassMachine; - $pkg.job = job; - $pkg.bitState = bitState; - $pkg.$finishSetup = function() { - sliceType = $sliceType($emptyInterface); - arrayType = $arrayType(nosync.Pool, 5); - arrayType$1 = $arrayType($Uint8, 16); - arrayType$2 = $arrayType($Int, 0); - sliceType$1 = $sliceType($Int32); - sliceType$2 = $sliceType($Uint32); - ptrType = $ptrType(Regexp); - ptrType$1 = $ptrType(syntax.Prog); - ptrType$2 = $ptrType(onePassProg); - sliceType$3 = $sliceType($String); - sliceType$4 = $sliceType($Uint8); - ptrType$3 = $ptrType(machine); - sliceType$5 = $sliceType(entry); - ptrType$4 = $ptrType(thread); - sliceType$6 = $sliceType(ptrType$4); - sliceType$7 = $sliceType($Int); - arrayType$3 = $arrayType($Int, 2); - arrayType$4 = $arrayType($Int, 4); - sliceType$8 = $sliceType(sliceType$4); - sliceType$9 = $sliceType(sliceType$7); - sliceType$10 = $sliceType(sliceType$8); - sliceType$11 = $sliceType(sliceType$3); - ptrType$5 = $ptrType(strings.Builder); - ptrType$6 = $ptrType(queueOnePass); - ptrType$7 = $ptrType($Int); - sliceType$12 = $sliceType(onePassInst); - ptrType$8 = $ptrType($Uint32); - sliceType$13 = $sliceType(sliceType$1); - ptrType$9 = $ptrType(sliceType$1); - sliceType$14 = $sliceType($Bool); - ptrType$10 = $ptrType(syntax.Inst); - ptrType$11 = $ptrType(lazyFlag); - ptrType$12 = $ptrType(onePassMachine); - ptrType$13 = $ptrType(bitState); - sliceType$15 = $sliceType(job); - funcType = $funcType([$String], [$String], false); - funcType$1 = $funcType([sliceType$4, sliceType$7], [sliceType$4], false); - funcType$2 = $funcType([sliceType$4], [sliceType$4], false); - funcType$3 = $funcType([sliceType$7], [], false); - ptrType$14 = $ptrType(inputString); - ptrType$15 = $ptrType(inputBytes); - ptrType$16 = $ptrType(inputReader); - ptrType$17 = $ptrType(queue); - ptrType$18 = $ptrType(inputs); - $ptrType(Regexp).prototype.String = function String() { - var re; - re = this; - return re.expr; - }; - $ptrType(Regexp).prototype.Copy = function Copy() { - var re, re2; - re = this; - re2 = $clone(re, Regexp); - return re2; - }; - Compile = function Compile$1(expr) { - var {$24r, _r, expr, $s, $r, $c} = $restore(this, {expr}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = compile(expr, 212, false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Compile$1, $c: true, $r, $24r, _r, expr, $s};return $f; - }; - $pkg.Compile = Compile; - $ptrType(Regexp).prototype.Longest = function Longest() { - var re; - re = this; - re.longest = true; - }; - compile = function compile$1(expr, mode, longest) { - var {_r, _r$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, capNames, err, expr, i, longest, matchcap, maxCap, mode, n, prog, re, regexp, $s, $r, $c} = $restore(this, {expr, mode, longest}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = syntax.Parse(expr, mode); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - re = _tuple[0]; - err = _tuple[1]; - if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [ptrType.nil, err]; - } - maxCap = re.MaxCap(); - capNames = re.CapNames(); - re = re.Simplify(); - _tuple$1 = syntax.Compile(re); - prog = _tuple$1[0]; - err = _tuple$1[1]; - if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [ptrType.nil, err]; - } - matchcap = prog.NumCap; - if (matchcap < 2) { - matchcap = 2; - } - _r$1 = compileOnePass(prog); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - regexp = new Regexp.ptr(expr, prog, _r$1, maxCap, 0, capNames, "", sliceType$4.nil, 0, 0, 0, matchcap, false, prog.StartCond(), minInputLen(re), longest); - if (regexp.onepass === ptrType$2.nil) { - _tuple$2 = prog.Prefix(); - regexp.prefix = _tuple$2[0]; - regexp.prefixComplete = _tuple$2[1]; - regexp.maxBitStateLen = maxBitStateLen(prog); - } else { - _tuple$3 = onePassPrefix(prog); - regexp.prefix = _tuple$3[0]; - regexp.prefixComplete = _tuple$3[1]; - regexp.prefixEnd = _tuple$3[2]; - } - if (!(regexp.prefix === "")) { - regexp.prefixBytes = (new sliceType$4($stringToBytes(regexp.prefix))); - _tuple$4 = utf8.DecodeRuneInString(regexp.prefix); - regexp.prefixRune = _tuple$4[0]; - } - n = prog.Inst.$length; - i = 0; - while (true) { - if (!(!((((i < 0 || i >= matchSize.length) ? ($throwRuntimeError("index out of range"), undefined) : matchSize[i]) === 0)) && ((i < 0 || i >= matchSize.length) ? ($throwRuntimeError("index out of range"), undefined) : matchSize[i]) < n)) { break; } - i = i + (1) >> 0; - } - regexp.mpool = i; - $s = -1; return [regexp, $ifaceNil]; - /* */ } return; } var $f = {$blk: compile$1, $c: true, $r, _r, _r$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, capNames, err, expr, i, longest, matchcap, maxCap, mode, n, prog, re, regexp, $s};return $f; - }; - $ptrType(Regexp).prototype.get = function get() { - var {_i, _r, _ref, _tuple, m, n, ok, re, t, x, x$1, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - re = this; - _r = (x = re.mpool, ((x < 0 || x >= matchPool.length) ? ($throwRuntimeError("index out of range"), undefined) : matchPool[x])).Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = $assertType(_r, ptrType$3, true); - m = _tuple[0]; - ok = _tuple[1]; - if (!ok) { - m = new machine.ptr(ptrType.nil, ptrType$1.nil, new queue.ptr(sliceType$2.nil, sliceType$5.nil), new queue.ptr(sliceType$2.nil, sliceType$5.nil), sliceType$6.nil, false, sliceType$7.nil, new inputs.ptr(new inputBytes.ptr(sliceType$4.nil), new inputString.ptr(""), new inputReader.ptr($ifaceNil, false, 0))); - } - m.re = re; - m.p = re.prog; - if (m.matchcap.$capacity < re.matchcap) { - m.matchcap = $makeSlice(sliceType$7, re.matchcap); - _ref = m.pool; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - t.cap = $makeSlice(sliceType$7, re.matchcap); - _i++; - } - } - n = (x$1 = re.mpool, ((x$1 < 0 || x$1 >= matchSize.length) ? ($throwRuntimeError("index out of range"), undefined) : matchSize[x$1])); - if (n === 0) { - n = re.prog.Inst.$length; - } - if (m.q0.sparse.$length < n) { - queue.copy(m.q0, new queue.ptr($makeSlice(sliceType$2, n), $makeSlice(sliceType$5, 0, n))); - queue.copy(m.q1, new queue.ptr($makeSlice(sliceType$2, n), $makeSlice(sliceType$5, 0, n))); - } - $s = -1; return m; - /* */ } return; } var $f = {$blk: get, $c: true, $r, _i, _r, _ref, _tuple, m, n, ok, re, t, x, x$1, $s};return $f; - }; - $ptrType(Regexp).prototype.put = function put(m) { - var m, re, x; - re = this; - m.re = ptrType.nil; - m.p = ptrType$1.nil; - m.inputs.clear(); - (x = re.mpool, ((x < 0 || x >= matchPool.length) ? ($throwRuntimeError("index out of range"), undefined) : matchPool[x])).Put(m); - }; - minInputLen = function minInputLen$1(re) { - var _1, _i, _i$1, _i$2, _ref, _ref$1, _ref$2, l, l$1, l$2, lnext, r, re, sub, sub$1, x, x$1, x$2; - _1 = re.Op; - if ((_1 === (6)) || (_1 === (5)) || (_1 === (4))) { - return 1; - } else if (_1 === (3)) { - l = 0; - _ref = re.Rune; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - r = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (r === 65533) { - l = l + (1) >> 0; - } else { - l = l + (utf8.RuneLen(r)) >> 0; - } - _i++; - } - return l; - } else if ((_1 === (13)) || (_1 === (15))) { - return minInputLen((x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))); - } else if (_1 === (17)) { - return $imul(re.Min, minInputLen((x$1 = re.Sub, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])))); - } else if (_1 === (18)) { - l$1 = 0; - _ref$1 = re.Sub; - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - sub = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - l$1 = l$1 + (minInputLen(sub)) >> 0; - _i$1++; - } - return l$1; - } else if (_1 === (19)) { - l$2 = minInputLen((x$2 = re.Sub, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0]))); - lnext = 0; - _ref$2 = $subslice(re.Sub, 1); - _i$2 = 0; - while (true) { - if (!(_i$2 < _ref$2.$length)) { break; } - sub$1 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); - lnext = minInputLen(sub$1); - if (lnext < l$2) { - l$2 = lnext; - } - _i$2++; - } - return l$2; - } else { - return 0; - } - }; - MustCompile = function MustCompile$1(str) { - var {_r, _r$1, _tuple, err, regexp, str, $s, $r, $c} = $restore(this, {str}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = Compile(str); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - regexp = _tuple[0]; - err = _tuple[1]; - /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2: - _r$1 = err.Error(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $panic(new $String("regexp: Compile(" + quote(str) + "): " + _r$1)); - /* } */ case 3: - $s = -1; return regexp; - /* */ } return; } var $f = {$blk: MustCompile$1, $c: true, $r, _r, _r$1, _tuple, err, regexp, str, $s};return $f; - }; - $pkg.MustCompile = MustCompile; - quote = function quote$1(s) { - var s; - if (strconv.CanBackquote(s)) { - return "`" + s + "`"; - } - return strconv.Quote(s); - }; - $ptrType(Regexp).prototype.NumSubexp = function NumSubexp() { - var re; - re = this; - return re.numSubexp; - }; - $ptrType(Regexp).prototype.SubexpNames = function SubexpNames() { - var re; - re = this; - return re.subexpNames; - }; - $ptrType(Regexp).prototype.SubexpIndex = function SubexpIndex(name) { - var _i, _ref, i, name, re, s; - re = this; - if (!(name === "")) { - _ref = re.subexpNames; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (name === s) { - return i; - } - _i++; - } - } - return -1; - }; - $ptrType(inputString).prototype.step = function step(pos) { - var c, i, pos; - i = this; - if (pos < i.str.length) { - c = i.str.charCodeAt(pos); - if (c < 128) { - return [((c >> 0)), 1]; - } - return utf8.DecodeRuneInString($substring(i.str, pos)); - } - return [-1, 0]; - }; - $ptrType(inputString).prototype.canCheckPrefix = function canCheckPrefix() { - var i; - i = this; - return true; - }; - $ptrType(inputString).prototype.hasPrefix = function hasPrefix(re) { - var i, re; - i = this; - return strings.HasPrefix(i.str, re.prefix); - }; - $ptrType(inputString).prototype.index = function index(re, pos) { - var i, pos, re; - i = this; - return strings.Index($substring(i.str, pos), re.prefix); - }; - $ptrType(inputString).prototype.context = function context(pos) { - var _tmp, _tmp$1, _tuple, _tuple$1, i, pos, r1, r2; - i = this; - _tmp = -1; - _tmp$1 = -1; - r1 = _tmp; - r2 = _tmp$1; - if ((((pos - 1 >> 0) >>> 0)) < ((i.str.length >>> 0))) { - r1 = ((i.str.charCodeAt((pos - 1 >> 0)) >> 0)); - if (r1 >= 128) { - _tuple = utf8.DecodeLastRuneInString($substring(i.str, 0, pos)); - r1 = _tuple[0]; - } - } - if (((pos >>> 0)) < ((i.str.length >>> 0))) { - r2 = ((i.str.charCodeAt(pos) >> 0)); - if (r2 >= 128) { - _tuple$1 = utf8.DecodeRuneInString($substring(i.str, pos)); - r2 = _tuple$1[0]; - } - } - return newLazyFlag(r1, r2); - }; - $ptrType(inputBytes).prototype.step = function step$1(pos) { - var c, i, pos, x; - i = this; - if (pos < i.str.$length) { - c = (x = i.str, ((pos < 0 || pos >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pos])); - if (c < 128) { - return [((c >> 0)), 1]; - } - return utf8.DecodeRune($subslice(i.str, pos)); - } - return [-1, 0]; - }; - $ptrType(inputBytes).prototype.canCheckPrefix = function canCheckPrefix$1() { - var i; - i = this; - return true; - }; - $ptrType(inputBytes).prototype.hasPrefix = function hasPrefix$1(re) { - var i, re; - i = this; - return bytes.HasPrefix(i.str, re.prefixBytes); - }; - $ptrType(inputBytes).prototype.index = function index$1(re, pos) { - var i, pos, re; - i = this; - return bytes.Index($subslice(i.str, pos), re.prefixBytes); - }; - $ptrType(inputBytes).prototype.context = function context$1(pos) { - var _tmp, _tmp$1, _tuple, _tuple$1, i, pos, r1, r2, x, x$1, x$2; - i = this; - _tmp = -1; - _tmp$1 = -1; - r1 = _tmp; - r2 = _tmp$1; - if ((((pos - 1 >> 0) >>> 0)) < ((i.str.$length >>> 0))) { - r1 = (((x = i.str, x$1 = pos - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])) >> 0)); - if (r1 >= 128) { - _tuple = utf8.DecodeLastRune($subslice(i.str, 0, pos)); - r1 = _tuple[0]; - } - } - if (((pos >>> 0)) < ((i.str.$length >>> 0))) { - r2 = (((x$2 = i.str, ((pos < 0 || pos >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + pos])) >> 0)); - if (r2 >= 128) { - _tuple$1 = utf8.DecodeRune($subslice(i.str, pos)); - r2 = _tuple$1[0]; - } - } - return newLazyFlag(r1, r2); - }; - $ptrType(inputReader).prototype.step = function step$2(pos) { - var {_r, _tuple, err, i, pos, r, w, $s, $r, $c} = $restore(this, {pos}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - i = this; - if (!i.atEOT && !((pos === i.pos))) { - $s = -1; return [-1, 0]; - } - _r = i.r.ReadRune(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - r = _tuple[0]; - w = _tuple[1]; - err = _tuple[2]; - if (!($interfaceIsEqual(err, $ifaceNil))) { - i.atEOT = true; - $s = -1; return [-1, 0]; - } - i.pos = i.pos + (w) >> 0; - $s = -1; return [r, w]; - /* */ } return; } var $f = {$blk: step$2, $c: true, $r, _r, _tuple, err, i, pos, r, w, $s};return $f; - }; - $ptrType(inputReader).prototype.canCheckPrefix = function canCheckPrefix$2() { - var i; - i = this; - return false; - }; - $ptrType(inputReader).prototype.hasPrefix = function hasPrefix$2(re) { - var i, re; - i = this; - return false; - }; - $ptrType(inputReader).prototype.index = function index$2(re, pos) { - var i, pos, re; - i = this; - return -1; - }; - $ptrType(inputReader).prototype.context = function context$2(pos) { - var i, pos; - i = this; - return new lazyFlag(0, 0); - }; - $ptrType(Regexp).prototype.LiteralPrefix = function LiteralPrefix() { - var _tmp, _tmp$1, complete, prefix, re; - prefix = ""; - complete = false; - re = this; - _tmp = re.prefix; - _tmp$1 = re.prefixComplete; - prefix = _tmp; - complete = _tmp$1; - return [prefix, complete]; - }; - $ptrType(Regexp).prototype.MatchReader = function MatchReader$1(r) { - var {$24r, _r, r, re, $s, $r, $c} = $restore(this, {r}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - re = this; - _r = re.doMatch(r, sliceType$4.nil, ""); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: MatchReader$1, $c: true, $r, $24r, _r, r, re, $s};return $f; - }; - $ptrType(Regexp).prototype.MatchString = function MatchString$1(s) { - var {$24r, _r, re, s, $s, $r, $c} = $restore(this, {s}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - re = this; - _r = re.doMatch($ifaceNil, sliceType$4.nil, s); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: MatchString$1, $c: true, $r, $24r, _r, re, s, $s};return $f; - }; - $ptrType(Regexp).prototype.Match = function Match$1(b) { - var {$24r, _r, b, re, $s, $r, $c} = $restore(this, {b}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - re = this; - _r = re.doMatch($ifaceNil, b, ""); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Match$1, $c: true, $r, $24r, _r, b, re, $s};return $f; - }; - $ptrType(Regexp).prototype.ReplaceAllString = function ReplaceAllString(src, repl) { - var {_r, b, n, re, repl, src, $s, $r, $c} = $restore(this, {src, repl}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - re = [re]; - repl = [repl]; - src = [src]; - re[0] = this; - n = 2; - if (strings.Contains(repl[0], "$")) { - n = $imul(2, ((re[0].numSubexp + 1 >> 0))); - } - _r = re[0].replaceAll(sliceType$4.nil, src[0], n, (function(re, repl, src) { return function Regexp·ReplaceAllString·func1(dst, match) { - var dst, match; - return re[0].expand(dst, repl[0], sliceType$4.nil, src[0], match); - }; })(re, repl, src)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - b = _r; - $s = -1; return ($bytesToString(b)); - /* */ } return; } var $f = {$blk: ReplaceAllString, $c: true, $r, _r, b, n, re, repl, src, $s};return $f; - }; - $ptrType(Regexp).prototype.ReplaceAllLiteralString = function ReplaceAllLiteralString(src, repl) { - var {$24r, _r, re, repl, src, $s, $r, $c} = $restore(this, {src, repl}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - repl = [repl]; - re = this; - _r = re.replaceAll(sliceType$4.nil, src, 2, (function(repl) { return function Regexp·ReplaceAllLiteralString·func1(dst, match) { - var dst, match; - return $appendSlice(dst, repl[0]); - }; })(repl)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = ($bytesToString(_r)); - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: ReplaceAllLiteralString, $c: true, $r, $24r, _r, re, repl, src, $s};return $f; - }; - $ptrType(Regexp).prototype.ReplaceAllStringFunc = function ReplaceAllStringFunc(src, repl) { - var {_r, b, re, repl, src, $s, $r, $c} = $restore(this, {src, repl}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - repl = [repl]; - src = [src]; - re = this; - _r = re.replaceAll(sliceType$4.nil, src[0], 2, (function(repl, src) { return function Regexp·ReplaceAllStringFunc·func1(dst, match) { - var {$24r, _arg, _arg$1, _r, dst, match, $s, $r, $c} = $restore(this, {dst, match}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _arg = dst; - _r = repl[0]($substring(src[0], (0 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 0]), (1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _arg$1 = _r; - $24r = $appendSlice(_arg, _arg$1); - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Regexp·ReplaceAllStringFunc·func1, $c: true, $r, $24r, _arg, _arg$1, _r, dst, match, $s};return $f; - }; })(repl, src)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - b = _r; - $s = -1; return ($bytesToString(b)); - /* */ } return; } var $f = {$blk: ReplaceAllStringFunc, $c: true, $r, _r, b, re, repl, src, $s};return $f; - }; - $ptrType(Regexp).prototype.replaceAll = function replaceAll(bsrc, src, nmatch, repl) { - var {_r, _r$1, _tuple, _tuple$1, a, bsrc, buf, dstCap, endPos, lastMatchEnd, nmatch, re, repl, searchPos, src, width, $s, $r, $c} = $restore(this, {bsrc, src, nmatch, repl}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - re = this; - lastMatchEnd = 0; - searchPos = 0; - buf = sliceType$4.nil; - endPos = 0; - if (!(bsrc === sliceType$4.nil)) { - endPos = bsrc.$length; - } else { - endPos = src.length; - } - if (nmatch > re.prog.NumCap) { - nmatch = re.prog.NumCap; - } - dstCap = arrayType$3.zero(); - /* while (true) { */ case 1: - /* if (!(searchPos <= endPos)) { break; } */ if(!(searchPos <= endPos)) { $s = 2; continue; } - _r = re.doExecute($ifaceNil, bsrc, src, searchPos, nmatch, $subslice(new sliceType$7(dstCap), 0, 0)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - a = _r; - if (a.$length === 0) { - /* break; */ $s = 2; continue; - } - if (!(bsrc === sliceType$4.nil)) { - buf = $appendSlice(buf, $subslice(bsrc, lastMatchEnd, (0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]))); - } else { - buf = $appendSlice(buf, $substring(src, lastMatchEnd, (0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]))); - } - /* */ if ((1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1]) > lastMatchEnd || ((0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]) === 0)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if ((1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1]) > lastMatchEnd || ((0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]) === 0)) { */ case 4: - _r$1 = repl(buf, a); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - buf = _r$1; - /* } */ case 5: - lastMatchEnd = (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1]); - width = 0; - if (!(bsrc === sliceType$4.nil)) { - _tuple = utf8.DecodeRune($subslice(bsrc, searchPos)); - width = _tuple[1]; - } else { - _tuple$1 = utf8.DecodeRuneInString($substring(src, searchPos)); - width = _tuple$1[1]; - } - if ((searchPos + width >> 0) > (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1])) { - searchPos = searchPos + (width) >> 0; - } else if ((searchPos + 1 >> 0) > (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1])) { - searchPos = searchPos + (1) >> 0; - } else { - searchPos = (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1]); - } - $s = 1; continue; - case 2: - if (!(bsrc === sliceType$4.nil)) { - buf = $appendSlice(buf, $subslice(bsrc, lastMatchEnd)); - } else { - buf = $appendSlice(buf, $substring(src, lastMatchEnd)); - } - $s = -1; return buf; - /* */ } return; } var $f = {$blk: replaceAll, $c: true, $r, _r, _r$1, _tuple, _tuple$1, a, bsrc, buf, dstCap, endPos, lastMatchEnd, nmatch, re, repl, searchPos, src, width, $s};return $f; - }; - $ptrType(Regexp).prototype.ReplaceAll = function ReplaceAll(src, repl) { - var {_r, b, n, re, repl, src, srepl, $s, $r, $c} = $restore(this, {src, repl}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - re = [re]; - repl = [repl]; - src = [src]; - srepl = [srepl]; - re[0] = this; - n = 2; - if (bytes.IndexByte(repl[0], 36) >= 0) { - n = $imul(2, ((re[0].numSubexp + 1 >> 0))); - } - srepl[0] = ""; - _r = re[0].replaceAll(src[0], "", n, (function(re, repl, src, srepl) { return function Regexp·ReplaceAll·func1(dst, match) { - var dst, match; - if (!((srepl[0].length === repl[0].$length))) { - srepl[0] = ($bytesToString(repl[0])); - } - return re[0].expand(dst, srepl[0], src[0], "", match); - }; })(re, repl, src, srepl)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - b = _r; - $s = -1; return b; - /* */ } return; } var $f = {$blk: ReplaceAll, $c: true, $r, _r, b, n, re, repl, src, srepl, $s};return $f; - }; - $ptrType(Regexp).prototype.ReplaceAllLiteral = function ReplaceAllLiteral(src, repl) { - var {$24r, _r, re, repl, src, $s, $r, $c} = $restore(this, {src, repl}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - repl = [repl]; - re = this; - _r = re.replaceAll(src, "", 2, (function(repl) { return function Regexp·ReplaceAllLiteral·func1(dst, match) { - var dst, match; - return $appendSlice(dst, repl[0]); - }; })(repl)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: ReplaceAllLiteral, $c: true, $r, $24r, _r, re, repl, src, $s};return $f; - }; - $ptrType(Regexp).prototype.ReplaceAllFunc = function ReplaceAllFunc(src, repl) { - var {$24r, _r, re, repl, src, $s, $r, $c} = $restore(this, {src, repl}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - repl = [repl]; - src = [src]; - re = this; - _r = re.replaceAll(src[0], "", 2, (function(repl, src) { return function Regexp·ReplaceAllFunc·func1(dst, match) { - var {$24r, _arg, _arg$1, _r, dst, match, $s, $r, $c} = $restore(this, {dst, match}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _arg = dst; - _r = repl[0]($subslice(src[0], (0 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 0]), (1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _arg$1 = _r; - $24r = $appendSlice(_arg, _arg$1); - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Regexp·ReplaceAllFunc·func1, $c: true, $r, $24r, _arg, _arg$1, _r, dst, match, $s};return $f; - }; })(repl, src)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: ReplaceAllFunc, $c: true, $r, $24r, _r, re, repl, src, $s};return $f; - }; - special = function special$1(b) { - var _q, _r, b, x, y; - return b < 128 && !(((((x = (_r = b % 16, _r === _r ? _r : $throwRuntimeError("integer divide by zero")), ((x < 0 || x >= specialBytes.length) ? ($throwRuntimeError("index out of range"), undefined) : specialBytes[x])) & (((y = ((_q = b / 16, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero"))), y < 32 ? (1 << y) : 0) << 24 >>> 24))) >>> 0) === 0)); - }; - init = function init$1() { - var _i, _index, _q, _r, _ref, b, y; - _ref = (new sliceType$4($stringToBytes("\\.+*?()|[]{}^$"))); - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - b = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _index = (_r = b % 16, _r === _r ? _r : $throwRuntimeError("integer divide by zero")); - ((_index < 0 || _index >= specialBytes.length) ? ($throwRuntimeError("index out of range"), undefined) : specialBytes[_index] = ((((_index < 0 || _index >= specialBytes.length) ? ($throwRuntimeError("index out of range"), undefined) : specialBytes[_index]) | (((y = ((_q = b / 16, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero"))), y < 32 ? (1 << y) : 0) << 24 >>> 24))) >>> 0)); - _i++; - } - }; - QuoteMeta = function QuoteMeta$1(s) { - var b, i, j, s; - i = 0; - i = 0; - while (true) { - if (!(i < s.length)) { break; } - if (special(s.charCodeAt(i))) { - break; - } - i = i + (1) >> 0; - } - if (i >= s.length) { - return s; - } - b = $makeSlice(sliceType$4, (($imul(2, s.length)) - i >> 0)); - $copyString(b, $substring(s, 0, i)); - j = i; - while (true) { - if (!(i < s.length)) { break; } - if (special(s.charCodeAt(i))) { - ((j < 0 || j >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + j] = 92); - j = j + (1) >> 0; - } - ((j < 0 || j >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + j] = s.charCodeAt(i)); - j = j + (1) >> 0; - i = i + (1) >> 0; - } - return ($bytesToString($subslice(b, 0, j))); - }; - $pkg.QuoteMeta = QuoteMeta; - $ptrType(Regexp).prototype.pad = function pad(a) { - var a, n, re; - re = this; - if (a === sliceType$7.nil) { - return sliceType$7.nil; - } - n = $imul(((1 + re.numSubexp >> 0)), 2); - while (true) { - if (!(a.$length < n)) { break; } - a = $append(a, -1); - } - return a; - }; - $ptrType(Regexp).prototype.allMatches = function allMatches(s, b, n, deliver) { - var {_r, _tmp, _tmp$1, _tmp$2, _tuple, _tuple$1, accept, b, deliver, end, i, ib, is, matches, n, pos, prevMatchEnd, re, s, width, $s, $r, $c} = $restore(this, {s, b, n, deliver}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - re = this; - end = 0; - if (b === sliceType$4.nil) { - end = s.length; - } else { - end = b.$length; - } - _tmp = 0; - _tmp$1 = 0; - _tmp$2 = -1; - pos = _tmp; - i = _tmp$1; - prevMatchEnd = _tmp$2; - /* while (true) { */ case 1: - /* if (!(i < n && pos <= end)) { break; } */ if(!(i < n && pos <= end)) { $s = 2; continue; } - _r = re.doExecute($ifaceNil, b, s, pos, re.prog.NumCap, sliceType$7.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - matches = _r; - if (matches.$length === 0) { - /* break; */ $s = 2; continue; - } - accept = true; - if ((1 >= matches.$length ? ($throwRuntimeError("index out of range"), undefined) : matches.$array[matches.$offset + 1]) === pos) { - if ((0 >= matches.$length ? ($throwRuntimeError("index out of range"), undefined) : matches.$array[matches.$offset + 0]) === prevMatchEnd) { - accept = false; - } - width = 0; - if (b === sliceType$4.nil) { - is = new inputString.ptr(s); - _tuple = is.step(pos); - width = _tuple[1]; - } else { - ib = new inputBytes.ptr(b); - _tuple$1 = ib.step(pos); - width = _tuple$1[1]; - } - if (width > 0) { - pos = pos + (width) >> 0; - } else { - pos = end + 1 >> 0; - } - } else { - pos = (1 >= matches.$length ? ($throwRuntimeError("index out of range"), undefined) : matches.$array[matches.$offset + 1]); - } - prevMatchEnd = (1 >= matches.$length ? ($throwRuntimeError("index out of range"), undefined) : matches.$array[matches.$offset + 1]); - /* */ if (accept) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (accept) { */ case 4: - $r = deliver(re.pad(matches)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - i = i + (1) >> 0; - /* } */ case 5: - $s = 1; continue; - case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: allMatches, $c: true, $r, _r, _tmp, _tmp$1, _tmp$2, _tuple, _tuple$1, accept, b, deliver, end, i, ib, is, matches, n, pos, prevMatchEnd, re, s, width, $s};return $f; - }; - $ptrType(Regexp).prototype.Find = function Find(b) { - var {_r, a, b, dstCap, re, $s, $r, $c} = $restore(this, {b}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - re = this; - dstCap = arrayType$3.zero(); - _r = re.doExecute($ifaceNil, b, "", 0, 2, $subslice(new sliceType$7(dstCap), 0, 0)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - a = _r; - if (a === sliceType$7.nil) { - $s = -1; return sliceType$4.nil; - } - $s = -1; return $subslice(b, (0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]), (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1]), (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1])); - /* */ } return; } var $f = {$blk: Find, $c: true, $r, _r, a, b, dstCap, re, $s};return $f; - }; - $ptrType(Regexp).prototype.FindIndex = function FindIndex(b) { - var {_r, a, b, loc, re, $s, $r, $c} = $restore(this, {b}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - loc = sliceType$7.nil; - re = this; - _r = re.doExecute($ifaceNil, b, "", 0, 2, sliceType$7.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - a = _r; - if (a === sliceType$7.nil) { - loc = sliceType$7.nil; - $s = -1; return loc; - } - loc = $subslice(a, 0, 2); - $s = -1; return loc; - /* */ } return; } var $f = {$blk: FindIndex, $c: true, $r, _r, a, b, loc, re, $s};return $f; - }; - $ptrType(Regexp).prototype.FindString = function FindString(s) { - var {_r, a, dstCap, re, s, $s, $r, $c} = $restore(this, {s}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - re = this; - dstCap = arrayType$3.zero(); - _r = re.doExecute($ifaceNil, sliceType$4.nil, s, 0, 2, $subslice(new sliceType$7(dstCap), 0, 0)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - a = _r; - if (a === sliceType$7.nil) { - $s = -1; return ""; - } - $s = -1; return $substring(s, (0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]), (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1])); - /* */ } return; } var $f = {$blk: FindString, $c: true, $r, _r, a, dstCap, re, s, $s};return $f; - }; - $ptrType(Regexp).prototype.FindStringIndex = function FindStringIndex(s) { - var {_r, a, loc, re, s, $s, $r, $c} = $restore(this, {s}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - loc = sliceType$7.nil; - re = this; - _r = re.doExecute($ifaceNil, sliceType$4.nil, s, 0, 2, sliceType$7.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - a = _r; - if (a === sliceType$7.nil) { - loc = sliceType$7.nil; - $s = -1; return loc; - } - loc = $subslice(a, 0, 2); - $s = -1; return loc; - /* */ } return; } var $f = {$blk: FindStringIndex, $c: true, $r, _r, a, loc, re, s, $s};return $f; - }; - $ptrType(Regexp).prototype.FindReaderIndex = function FindReaderIndex(r) { - var {_r, a, loc, r, re, $s, $r, $c} = $restore(this, {r}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - loc = sliceType$7.nil; - re = this; - _r = re.doExecute(r, sliceType$4.nil, "", 0, 2, sliceType$7.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - a = _r; - if (a === sliceType$7.nil) { - loc = sliceType$7.nil; - $s = -1; return loc; - } - loc = $subslice(a, 0, 2); - $s = -1; return loc; - /* */ } return; } var $f = {$blk: FindReaderIndex, $c: true, $r, _r, a, loc, r, re, $s};return $f; - }; - $ptrType(Regexp).prototype.FindSubmatch = function FindSubmatch(b) { - var {_i, _r, _ref, a, b, dstCap, i, re, ret, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {b}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - re = this; - dstCap = arrayType$4.zero(); - _r = re.doExecute($ifaceNil, b, "", 0, re.prog.NumCap, $subslice(new sliceType$7(dstCap), 0, 0)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - a = _r; - if (a === sliceType$7.nil) { - $s = -1; return sliceType$8.nil; - } - ret = $makeSlice(sliceType$8, (1 + re.numSubexp >> 0)); - _ref = ret; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - if (($imul(2, i)) < a.$length && (x = $imul(2, i), ((x < 0 || x >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x])) >= 0) { - ((i < 0 || i >= ret.$length) ? ($throwRuntimeError("index out of range"), undefined) : ret.$array[ret.$offset + i] = $subslice(b, (x$1 = $imul(2, i), ((x$1 < 0 || x$1 >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x$1])), (x$2 = ($imul(2, i)) + 1 >> 0, ((x$2 < 0 || x$2 >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x$2])), (x$3 = ($imul(2, i)) + 1 >> 0, ((x$3 < 0 || x$3 >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x$3])))); - } - _i++; - } - $s = -1; return ret; - /* */ } return; } var $f = {$blk: FindSubmatch, $c: true, $r, _i, _r, _ref, a, b, dstCap, i, re, ret, x, x$1, x$2, x$3, $s};return $f; - }; - $ptrType(Regexp).prototype.Expand = function Expand(dst, template, src, match) { - var dst, match, re, src, template; - re = this; - return re.expand(dst, ($bytesToString(template)), src, "", match); - }; - $ptrType(Regexp).prototype.ExpandString = function ExpandString(dst, template, src, match) { - var dst, match, re, src, template; - re = this; - return re.expand(dst, template, sliceType$4.nil, src, match); - }; - $ptrType(Regexp).prototype.expand = function expand(dst, template, bsrc, src, match) { - var _i, _ref, _tuple, _tuple$1, after, before, bsrc, dst, i, match, name, namei, num, ok, re, rest, src, template, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; - re = this; - while (true) { - if (!(template.length > 0)) { break; } - _tuple = strings.Cut(template, "$"); - before = _tuple[0]; - after = _tuple[1]; - ok = _tuple[2]; - if (!ok) { - break; - } - dst = $appendSlice(dst, before); - template = after; - if (!(template === "") && (template.charCodeAt(0) === 36)) { - dst = $append(dst, 36); - template = $substring(template, 1); - continue; - } - _tuple$1 = extract(template); - name = _tuple$1[0]; - num = _tuple$1[1]; - rest = _tuple$1[2]; - ok = _tuple$1[3]; - if (!ok) { - dst = $append(dst, 36); - continue; - } - template = rest; - if (num >= 0) { - if ((($imul(2, num)) + 1 >> 0) < match.$length && (x = $imul(2, num), ((x < 0 || x >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x])) >= 0) { - if (!(bsrc === sliceType$4.nil)) { - dst = $appendSlice(dst, $subslice(bsrc, (x$1 = $imul(2, num), ((x$1 < 0 || x$1 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$1])), (x$2 = ($imul(2, num)) + 1 >> 0, ((x$2 < 0 || x$2 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$2])))); - } else { - dst = $appendSlice(dst, $substring(src, (x$3 = $imul(2, num), ((x$3 < 0 || x$3 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$3])), (x$4 = ($imul(2, num)) + 1 >> 0, ((x$4 < 0 || x$4 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$4])))); - } - } - } else { - _ref = re.subexpNames; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - namei = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (name === namei && (($imul(2, i)) + 1 >> 0) < match.$length && (x$5 = $imul(2, i), ((x$5 < 0 || x$5 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$5])) >= 0) { - if (!(bsrc === sliceType$4.nil)) { - dst = $appendSlice(dst, $subslice(bsrc, (x$6 = $imul(2, i), ((x$6 < 0 || x$6 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$6])), (x$7 = ($imul(2, i)) + 1 >> 0, ((x$7 < 0 || x$7 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$7])))); - } else { - dst = $appendSlice(dst, $substring(src, (x$8 = $imul(2, i), ((x$8 < 0 || x$8 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$8])), (x$9 = ($imul(2, i)) + 1 >> 0, ((x$9 < 0 || x$9 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$9])))); - } - break; - } - _i++; - } - } - } - dst = $appendSlice(dst, template); - return dst; - }; - extract = function extract$1(str) { - var _tuple, brace, i, i$1, name, num, ok, rest, rune, size, str; - name = ""; - num = 0; - rest = ""; - ok = false; - if (str === "") { - return [name, num, rest, ok]; - } - brace = false; - if (str.charCodeAt(0) === 123) { - brace = true; - str = $substring(str, 1); - } - i = 0; - while (true) { - if (!(i < str.length)) { break; } - _tuple = utf8.DecodeRuneInString($substring(str, i)); - rune = _tuple[0]; - size = _tuple[1]; - if (!unicode.IsLetter(rune) && !unicode.IsDigit(rune) && !((rune === 95))) { - break; - } - i = i + (size) >> 0; - } - if (i === 0) { - return [name, num, rest, ok]; - } - name = $substring(str, 0, i); - if (brace) { - if (i >= str.length || !((str.charCodeAt(i) === 125))) { - return [name, num, rest, ok]; - } - i = i + (1) >> 0; - } - num = 0; - i$1 = 0; - while (true) { - if (!(i$1 < name.length)) { break; } - if (name.charCodeAt(i$1) < 48 || 57 < name.charCodeAt(i$1) || num >= 100000000) { - num = -1; - break; - } - num = (($imul(num, 10)) + ((name.charCodeAt(i$1) >> 0)) >> 0) - 48 >> 0; - i$1 = i$1 + (1) >> 0; - } - if ((name.charCodeAt(0) === 48) && name.length > 1) { - num = -1; - } - rest = $substring(str, i); - ok = true; - return [name, num, rest, ok]; - }; - $ptrType(Regexp).prototype.FindSubmatchIndex = function FindSubmatchIndex(b) { - var {$24r, _r, _r$1, b, re, $s, $r, $c} = $restore(this, {b}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - re = this; - _r = re.doExecute($ifaceNil, b, "", 0, re.prog.NumCap, sliceType$7.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = re.pad(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: FindSubmatchIndex, $c: true, $r, $24r, _r, _r$1, b, re, $s};return $f; - }; - $ptrType(Regexp).prototype.FindStringSubmatch = function FindStringSubmatch(s) { - var {_i, _r, _ref, a, dstCap, i, re, ret, s, x, x$1, x$2, $s, $r, $c} = $restore(this, {s}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - re = this; - dstCap = arrayType$4.zero(); - _r = re.doExecute($ifaceNil, sliceType$4.nil, s, 0, re.prog.NumCap, $subslice(new sliceType$7(dstCap), 0, 0)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - a = _r; - if (a === sliceType$7.nil) { - $s = -1; return sliceType$3.nil; - } - ret = $makeSlice(sliceType$3, (1 + re.numSubexp >> 0)); - _ref = ret; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - if (($imul(2, i)) < a.$length && (x = $imul(2, i), ((x < 0 || x >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x])) >= 0) { - ((i < 0 || i >= ret.$length) ? ($throwRuntimeError("index out of range"), undefined) : ret.$array[ret.$offset + i] = $substring(s, (x$1 = $imul(2, i), ((x$1 < 0 || x$1 >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x$1])), (x$2 = ($imul(2, i)) + 1 >> 0, ((x$2 < 0 || x$2 >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x$2])))); - } - _i++; - } - $s = -1; return ret; - /* */ } return; } var $f = {$blk: FindStringSubmatch, $c: true, $r, _i, _r, _ref, a, dstCap, i, re, ret, s, x, x$1, x$2, $s};return $f; - }; - $ptrType(Regexp).prototype.FindStringSubmatchIndex = function FindStringSubmatchIndex(s) { - var {$24r, _r, _r$1, re, s, $s, $r, $c} = $restore(this, {s}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - re = this; - _r = re.doExecute($ifaceNil, sliceType$4.nil, s, 0, re.prog.NumCap, sliceType$7.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = re.pad(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: FindStringSubmatchIndex, $c: true, $r, $24r, _r, _r$1, re, s, $s};return $f; - }; - $ptrType(Regexp).prototype.FindReaderSubmatchIndex = function FindReaderSubmatchIndex(r) { - var {$24r, _r, _r$1, r, re, $s, $r, $c} = $restore(this, {r}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - re = this; - _r = re.doExecute(r, sliceType$4.nil, "", 0, re.prog.NumCap, sliceType$7.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = re.pad(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: FindReaderSubmatchIndex, $c: true, $r, $24r, _r, _r$1, r, re, $s};return $f; - }; - $ptrType(Regexp).prototype.FindAll = function FindAll(b, n) { - var {b, n, re, result, $s, $r, $c} = $restore(this, {b, n}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - b = [b]; - result = [result]; - re = this; - if (n < 0) { - n = b[0].$length + 1 >> 0; - } - result[0] = sliceType$8.nil; - $r = re.allMatches("", b[0], n, (function(b, result) { return function Regexp·FindAll·func1(match) { - var match; - if (result[0] === sliceType$8.nil) { - result[0] = $makeSlice(sliceType$8, 0, 10); - } - result[0] = $append(result[0], $subslice(b[0], (0 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 0]), (1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]), (1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]))); - }; })(b, result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return result[0]; - /* */ } return; } var $f = {$blk: FindAll, $c: true, $r, b, n, re, result, $s};return $f; - }; - $ptrType(Regexp).prototype.FindAllIndex = function FindAllIndex(b, n) { - var {b, n, re, result, $s, $r, $c} = $restore(this, {b, n}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - result = [result]; - re = this; - if (n < 0) { - n = b.$length + 1 >> 0; - } - result[0] = sliceType$9.nil; - $r = re.allMatches("", b, n, (function(result) { return function Regexp·FindAllIndex·func1(match) { - var match; - if (result[0] === sliceType$9.nil) { - result[0] = $makeSlice(sliceType$9, 0, 10); - } - result[0] = $append(result[0], $subslice(match, 0, 2)); - }; })(result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return result[0]; - /* */ } return; } var $f = {$blk: FindAllIndex, $c: true, $r, b, n, re, result, $s};return $f; - }; - $ptrType(Regexp).prototype.FindAllString = function FindAllString(s, n) { - var {n, re, result, s, $s, $r, $c} = $restore(this, {s, n}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - result = [result]; - s = [s]; - re = this; - if (n < 0) { - n = s[0].length + 1 >> 0; - } - result[0] = sliceType$3.nil; - $r = re.allMatches(s[0], sliceType$4.nil, n, (function(result, s) { return function Regexp·FindAllString·func1(match) { - var match; - if (result[0] === sliceType$3.nil) { - result[0] = $makeSlice(sliceType$3, 0, 10); - } - result[0] = $append(result[0], $substring(s[0], (0 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 0]), (1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]))); - }; })(result, s)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return result[0]; - /* */ } return; } var $f = {$blk: FindAllString, $c: true, $r, n, re, result, s, $s};return $f; - }; - $ptrType(Regexp).prototype.FindAllStringIndex = function FindAllStringIndex(s, n) { - var {n, re, result, s, $s, $r, $c} = $restore(this, {s, n}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - result = [result]; - re = this; - if (n < 0) { - n = s.length + 1 >> 0; - } - result[0] = sliceType$9.nil; - $r = re.allMatches(s, sliceType$4.nil, n, (function(result) { return function Regexp·FindAllStringIndex·func1(match) { - var match; - if (result[0] === sliceType$9.nil) { - result[0] = $makeSlice(sliceType$9, 0, 10); - } - result[0] = $append(result[0], $subslice(match, 0, 2)); - }; })(result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return result[0]; - /* */ } return; } var $f = {$blk: FindAllStringIndex, $c: true, $r, n, re, result, s, $s};return $f; - }; - $ptrType(Regexp).prototype.FindAllSubmatch = function FindAllSubmatch(b, n) { - var {b, n, re, result, $s, $r, $c} = $restore(this, {b, n}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - b = [b]; - result = [result]; - re = this; - if (n < 0) { - n = b[0].$length + 1 >> 0; - } - result[0] = sliceType$10.nil; - $r = re.allMatches("", b[0], n, (function(b, result) { return function Regexp·FindAllSubmatch·func1(match) { - var _i, _q, _ref, j, match, slice, x, x$1, x$2, x$3; - if (result[0] === sliceType$10.nil) { - result[0] = $makeSlice(sliceType$10, 0, 10); - } - slice = $makeSlice(sliceType$8, (_q = match.$length / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))); - _ref = slice; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - j = _i; - if ((x = $imul(2, j), ((x < 0 || x >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x])) >= 0) { - ((j < 0 || j >= slice.$length) ? ($throwRuntimeError("index out of range"), undefined) : slice.$array[slice.$offset + j] = $subslice(b[0], (x$1 = $imul(2, j), ((x$1 < 0 || x$1 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$1])), (x$2 = ($imul(2, j)) + 1 >> 0, ((x$2 < 0 || x$2 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$2])), (x$3 = ($imul(2, j)) + 1 >> 0, ((x$3 < 0 || x$3 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$3])))); - } - _i++; - } - result[0] = $append(result[0], slice); - }; })(b, result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return result[0]; - /* */ } return; } var $f = {$blk: FindAllSubmatch, $c: true, $r, b, n, re, result, $s};return $f; - }; - $ptrType(Regexp).prototype.FindAllSubmatchIndex = function FindAllSubmatchIndex(b, n) { - var {b, n, re, result, $s, $r, $c} = $restore(this, {b, n}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - result = [result]; - re = this; - if (n < 0) { - n = b.$length + 1 >> 0; - } - result[0] = sliceType$9.nil; - $r = re.allMatches("", b, n, (function(result) { return function Regexp·FindAllSubmatchIndex·func1(match) { - var match; - if (result[0] === sliceType$9.nil) { - result[0] = $makeSlice(sliceType$9, 0, 10); - } - result[0] = $append(result[0], match); - }; })(result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return result[0]; - /* */ } return; } var $f = {$blk: FindAllSubmatchIndex, $c: true, $r, b, n, re, result, $s};return $f; - }; - $ptrType(Regexp).prototype.FindAllStringSubmatch = function FindAllStringSubmatch(s, n) { - var {n, re, result, s, $s, $r, $c} = $restore(this, {s, n}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - result = [result]; - s = [s]; - re = this; - if (n < 0) { - n = s[0].length + 1 >> 0; - } - result[0] = sliceType$11.nil; - $r = re.allMatches(s[0], sliceType$4.nil, n, (function(result, s) { return function Regexp·FindAllStringSubmatch·func1(match) { - var _i, _q, _ref, j, match, slice, x, x$1, x$2; - if (result[0] === sliceType$11.nil) { - result[0] = $makeSlice(sliceType$11, 0, 10); - } - slice = $makeSlice(sliceType$3, (_q = match.$length / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))); - _ref = slice; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - j = _i; - if ((x = $imul(2, j), ((x < 0 || x >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x])) >= 0) { - ((j < 0 || j >= slice.$length) ? ($throwRuntimeError("index out of range"), undefined) : slice.$array[slice.$offset + j] = $substring(s[0], (x$1 = $imul(2, j), ((x$1 < 0 || x$1 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$1])), (x$2 = ($imul(2, j)) + 1 >> 0, ((x$2 < 0 || x$2 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$2])))); - } - _i++; - } - result[0] = $append(result[0], slice); - }; })(result, s)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return result[0]; - /* */ } return; } var $f = {$blk: FindAllStringSubmatch, $c: true, $r, n, re, result, s, $s};return $f; - }; - $ptrType(Regexp).prototype.FindAllStringSubmatchIndex = function FindAllStringSubmatchIndex(s, n) { - var {n, re, result, s, $s, $r, $c} = $restore(this, {s, n}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - result = [result]; - re = this; - if (n < 0) { - n = s.length + 1 >> 0; - } - result[0] = sliceType$9.nil; - $r = re.allMatches(s, sliceType$4.nil, n, (function(result) { return function Regexp·FindAllStringSubmatchIndex·func1(match) { - var match; - if (result[0] === sliceType$9.nil) { - result[0] = $makeSlice(sliceType$9, 0, 10); - } - result[0] = $append(result[0], match); - }; })(result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return result[0]; - /* */ } return; } var $f = {$blk: FindAllStringSubmatchIndex, $c: true, $r, n, re, result, s, $s};return $f; - }; - $ptrType(Regexp).prototype.Split = function Split(s, n) { - var {_i, _r, _ref, beg, end, match, matches, n, re, s, strings$1, $s, $r, $c} = $restore(this, {s, n}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - re = this; - if (n === 0) { - $s = -1; return sliceType$3.nil; - } - if (re.expr.length > 0 && (s.length === 0)) { - $s = -1; return new sliceType$3([""]); - } - _r = re.FindAllStringIndex(s, n); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - matches = _r; - strings$1 = $makeSlice(sliceType$3, 0, matches.$length); - beg = 0; - end = 0; - _ref = matches; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - match = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (n > 0 && strings$1.$length >= (n - 1 >> 0)) { - break; - } - end = (0 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 0]); - if (!(((1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]) === 0))) { - strings$1 = $append(strings$1, $substring(s, beg, end)); - } - beg = (1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]); - _i++; - } - if (!((end === s.length))) { - strings$1 = $append(strings$1, $substring(s, beg)); - } - $s = -1; return strings$1; - /* */ } return; } var $f = {$blk: Split, $c: true, $r, _i, _r, _ref, beg, end, match, matches, n, re, s, strings$1, $s};return $f; - }; - onePassPrefix = function onePassPrefix$1(p) { - var _tmp, _tmp$1, _tmp$10, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, buf, complete, i, p, pc, prefix, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; - prefix = ""; - complete = false; - pc = 0; - i = (x = p.Inst, x$1 = p.Start, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); - if (!((i.Op === 3)) || ((((((i.Arg << 24 >>> 24))) & 4) >>> 0) === 0)) { - _tmp = ""; - _tmp$1 = i.Op === 4; - _tmp$2 = ((p.Start >>> 0)); - prefix = _tmp; - complete = _tmp$1; - pc = _tmp$2; - return [prefix, complete, pc]; - } - pc = i.Out; - i = (x$2 = p.Inst, ((pc < 0 || pc >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + pc])); - while (true) { - if (!(i.Op === 6)) { break; } - pc = i.Out; - i = (x$3 = p.Inst, ((pc < 0 || pc >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + pc])); - } - if (!((iop(i) === 7)) || !((i.Rune.$length === 1))) { - _tmp$3 = ""; - _tmp$4 = i.Op === 4; - _tmp$5 = ((p.Start >>> 0)); - prefix = _tmp$3; - complete = _tmp$4; - pc = _tmp$5; - return [prefix, complete, pc]; - } - buf = new strings.Builder.ptr(ptrType$5.nil, sliceType$4.nil); - while (true) { - if (!((iop(i) === 7) && (i.Rune.$length === 1) && (((((i.Arg << 16 >>> 16)) & 1) >>> 0) === 0) && !(((x$4 = i.Rune, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])) === 65533)))) { break; } - buf.WriteRune((x$5 = i.Rune, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0]))); - _tmp$6 = i.Out; - _tmp$7 = (x$6 = p.Inst, x$7 = i.Out, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])); - pc = _tmp$6; - i = _tmp$7; - } - if ((i.Op === 3) && !((((((i.Arg << 24 >>> 24)) & 8) >>> 0) === 0)) && ((x$8 = p.Inst, x$9 = i.Out, ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + x$9])).Op === 4)) { - complete = true; - } - _tmp$8 = buf.String(); - _tmp$9 = complete; - _tmp$10 = pc; - prefix = _tmp$8; - complete = _tmp$9; - pc = _tmp$10; - return [prefix, complete, pc]; - }; - onePassNext = function onePassNext$1(i, r) { - var i, next, r, x; - next = i.Inst.MatchRunePos(r); - if (next >= 0) { - return (x = i.Next, ((next < 0 || next >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + next])); - } - if (i.Inst.Op === 1) { - return i.Inst.Out; - } - return 0; - }; - iop = function iop$1(i) { - var _1, i, op; - op = i.Op; - _1 = op; - if ((_1 === (8)) || (_1 === (9)) || (_1 === (10))) { - op = 7; - } - return op; - }; - $ptrType(queueOnePass).prototype.empty = function empty() { - var q; - q = this; - return q.nextIndex >= q.size; - }; - $ptrType(queueOnePass).prototype.next = function next() { - var n, q, x, x$1; - n = 0; - q = this; - n = (x = q.dense, x$1 = q.nextIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); - q.nextIndex = q.nextIndex + (1) >>> 0; - return n; - }; - $ptrType(queueOnePass).prototype.clear = function clear() { - var q; - q = this; - q.size = 0; - q.nextIndex = 0; - }; - $ptrType(queueOnePass).prototype.contains = function contains(u) { - var q, u, x, x$1, x$2, x$3; - q = this; - if (u >= ((q.sparse.$length >>> 0))) { - return false; - } - return (x = q.sparse, ((u < 0 || u >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + u])) < q.size && ((x$1 = q.dense, x$2 = (x$3 = q.sparse, ((u < 0 || u >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + u])), ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])) === u); - }; - $ptrType(queueOnePass).prototype.insert = function insert(u) { - var q, u; - q = this; - if (!q.contains(u)) { - q.insertNew(u); - } - }; - $ptrType(queueOnePass).prototype.insertNew = function insertNew(u) { - var q, u, x, x$1, x$2; - q = this; - if (u >= ((q.sparse.$length >>> 0))) { - return; - } - (x = q.sparse, ((u < 0 || u >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + u] = q.size)); - (x$1 = q.dense, x$2 = q.size, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2] = u)); - q.size = q.size + (1) >>> 0; - }; - newQueue = function newQueue$1(size) { - var q, size; - q = ptrType$6.nil; - q = new queueOnePass.ptr($makeSlice(sliceType$2, size), $makeSlice(sliceType$2, size), 0, 0); - return q; - }; - mergeRuneSets = function mergeRuneSets$1(leftRunes, rightRunes, leftPC, rightPC) { - var {_r, _r$1, _r$2, _r$3, _tmp, _tmp$1, extend, ix, leftLen, leftPC, leftRunes, lx, merged, next$1, ok, rightLen, rightPC, rightRunes, rx, x, x$1, $s, $deferred, $r, $c} = $restore(this, {leftRunes, rightRunes, leftPC, rightPC}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - ix = [ix]; - lx = [lx]; - merged = [merged]; - next$1 = [next$1]; - ok = [ok]; - rx = [rx]; - leftLen = leftRunes.$get().$length; - rightLen = rightRunes.$get().$length; - if (!(((leftLen & 1) === 0)) || !(((rightLen & 1) === 0))) { - $panic(new $String("mergeRuneSets odd length []rune")); - } - _tmp = 0; - _tmp$1 = 0; - lx[0] = _tmp; - rx[0] = _tmp$1; - merged[0] = $makeSlice(sliceType$1, 0); - next$1[0] = $makeSlice(sliceType$2, 0); - ok[0] = true; - $deferred.push([(function(ix, lx, merged, next$1, ok, rx) { return function mergeRuneSets·func1() { - if (!ok[0]) { - merged[0] = sliceType$1.nil; - next$1[0] = sliceType$2.nil; - } - }; })(ix, lx, merged, next$1, ok, rx), []]); - ix[0] = -1; - extend = (function(ix, lx, merged, next$1, ok, rx) { return function mergeRuneSets·func2(newLow, newArray, pc) { - var newArray, newLow, pc, x, x$1, x$2, x$3, x$4, x$5; - if (ix[0] > 0 && (x = newArray.$get(), x$1 = newLow.$get(), ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])) <= ((ix[0] < 0 || ix[0] >= merged[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : merged[0].$array[merged[0].$offset + ix[0]])) { - return false; - } - merged[0] = $append(merged[0], (x$2 = newArray.$get(), x$3 = newLow.$get(), ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])), (x$4 = newArray.$get(), x$5 = newLow.$get() + 1 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5]))); - newLow.$set(newLow.$get() + (2) >> 0); - ix[0] = ix[0] + (2) >> 0; - next$1[0] = $append(next$1[0], pc); - return true; - }; })(ix, lx, merged, next$1, ok, rx); - /* while (true) { */ case 1: - /* if (!(lx[0] < leftLen || rx[0] < rightLen)) { break; } */ if(!(lx[0] < leftLen || rx[0] < rightLen)) { $s = 2; continue; } - /* */ if (rx[0] >= rightLen) { $s = 4; continue; } - /* */ if (lx[0] >= leftLen) { $s = 5; continue; } - /* */ if ((x = rightRunes.$get(), ((rx[0] < 0 || rx[0] >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + rx[0]])) < (x$1 = leftRunes.$get(), ((lx[0] < 0 || lx[0] >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + lx[0]]))) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (rx[0] >= rightLen) { */ case 4: - _r = extend((lx.$ptr || (lx.$ptr = new ptrType$7(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, lx))), leftRunes, leftPC); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - ok[0] = _r; - $s = 8; continue; - /* } else if (lx[0] >= leftLen) { */ case 5: - _r$1 = extend((rx.$ptr || (rx.$ptr = new ptrType$7(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, rx))), rightRunes, rightPC); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - ok[0] = _r$1; - $s = 8; continue; - /* } else if ((x = rightRunes.$get(), ((rx[0] < 0 || rx[0] >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + rx[0]])) < (x$1 = leftRunes.$get(), ((lx[0] < 0 || lx[0] >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + lx[0]]))) { */ case 6: - _r$2 = extend((rx.$ptr || (rx.$ptr = new ptrType$7(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, rx))), rightRunes, rightPC); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - ok[0] = _r$2; - $s = 8; continue; - /* } else { */ case 7: - _r$3 = extend((lx.$ptr || (lx.$ptr = new ptrType$7(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, lx))), leftRunes, leftPC); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - ok[0] = _r$3; - /* } */ case 8: - case 3: - if (!ok[0]) { - $s = -1; return [noRune, noNext]; - } - $s = 1; continue; - case 2: - $s = -1; return [merged[0], next$1[0]]; - /* */ } return; } } catch(err) { $err = err; $s = -1; return [sliceType$1.nil, sliceType$2.nil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: mergeRuneSets$1, $c: true, $r, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, extend, ix, leftLen, leftPC, leftRunes, lx, merged, next$1, ok, rightLen, rightPC, rightRunes, rx, x, x$1, $s, $deferred};return $f; } } - }; - cleanupOnePass = function cleanupOnePass$1(prog, original) { - var _1, _i, _ref, instOriginal, ix, original, prog, x, x$1, x$2; - _ref = original.Inst; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - ix = _i; - instOriginal = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), syntax.Inst); - _1 = instOriginal.Op; - if ((_1 === (0)) || (_1 === (1)) || (_1 === (7))) { - } else if ((_1 === (2)) || (_1 === (3)) || (_1 === (6)) || (_1 === (4)) || (_1 === (5))) { - (x = prog.Inst, ((ix < 0 || ix >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + ix])).Next = sliceType$2.nil; - } else if ((_1 === (8)) || (_1 === (9)) || (_1 === (10))) { - (x$1 = prog.Inst, ((ix < 0 || ix >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + ix])).Next = sliceType$2.nil; - onePassInst.copy((x$2 = prog.Inst, ((ix < 0 || ix >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + ix])), new onePassInst.ptr($clone(instOriginal, syntax.Inst), sliceType$2.nil)); - } - _i++; - } - }; - onePassCopy = function onePassCopy$1(prog) { - var _1, _i, _i$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, i, inst, instAlt, instOther, p, p_A_Alt, p_A_Other, p_B_Alt, p_B_Other, patch, pc, prog, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; - p = new onePassProg.ptr($makeSlice(sliceType$12, prog.Inst.$length), prog.Start, prog.NumCap); - _ref = prog.Inst; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - inst = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), syntax.Inst); - onePassInst.copy((x = p.Inst, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])), new onePassInst.ptr($clone(inst, syntax.Inst), sliceType$2.nil)); - _i++; - } - _ref$1 = p.Inst; - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - pc = _i$1; - _1 = (x$1 = p.Inst, ((pc < 0 || pc >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + pc])).Inst.Op; - if ((_1 === (0)) || (_1 === (1))) { - p_A_Other = (x$2 = (x$3 = p.Inst, ((pc < 0 || pc >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + pc])), (x$2.$ptr_Out || (x$2.$ptr_Out = new ptrType$8(function() { return this.$target.Inst.Out; }, function($v) { this.$target.Inst.Out = $v; }, x$2)))); - p_A_Alt = (x$4 = (x$5 = p.Inst, ((pc < 0 || pc >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + pc])), (x$4.$ptr_Arg || (x$4.$ptr_Arg = new ptrType$8(function() { return this.$target.Inst.Arg; }, function($v) { this.$target.Inst.Arg = $v; }, x$4)))); - instAlt = $clone((x$6 = p.Inst, x$7 = p_A_Alt.$get(), ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])), onePassInst); - if (!((instAlt.Inst.Op === 0) || (instAlt.Inst.Op === 1))) { - _tmp = p_A_Other; - _tmp$1 = p_A_Alt; - p_A_Alt = _tmp; - p_A_Other = _tmp$1; - onePassInst.copy(instAlt, (x$8 = p.Inst, x$9 = p_A_Alt.$get(), ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + x$9]))); - if (!((instAlt.Inst.Op === 0) || (instAlt.Inst.Op === 1))) { - _i$1++; - continue; - } - } - instOther = $clone((x$10 = p.Inst, x$11 = p_A_Other.$get(), ((x$11 < 0 || x$11 >= x$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + x$11])), onePassInst); - if ((instOther.Inst.Op === 0) || (instOther.Inst.Op === 1)) { - _i$1++; - continue; - } - p_B_Alt = (x$12 = (x$13 = p.Inst, x$14 = p_A_Alt.$get(), ((x$14 < 0 || x$14 >= x$13.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + x$14])), (x$12.$ptr_Out || (x$12.$ptr_Out = new ptrType$8(function() { return this.$target.Inst.Out; }, function($v) { this.$target.Inst.Out = $v; }, x$12)))); - p_B_Other = (x$15 = (x$16 = p.Inst, x$17 = p_A_Alt.$get(), ((x$17 < 0 || x$17 >= x$16.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$16.$array[x$16.$offset + x$17])), (x$15.$ptr_Arg || (x$15.$ptr_Arg = new ptrType$8(function() { return this.$target.Inst.Arg; }, function($v) { this.$target.Inst.Arg = $v; }, x$15)))); - patch = false; - if (instAlt.Inst.Out === ((pc >>> 0))) { - patch = true; - } else if (instAlt.Inst.Arg === ((pc >>> 0))) { - patch = true; - _tmp$2 = p_B_Other; - _tmp$3 = p_B_Alt; - p_B_Alt = _tmp$2; - p_B_Other = _tmp$3; - } - if (patch) { - p_B_Alt.$set(p_A_Other.$get()); - } - if (p_A_Other.$get() === p_B_Alt.$get()) { - p_A_Alt.$set(p_B_Other.$get()); - } - } else { - _i$1++; - continue; - } - _i$1++; - } - return p; - }; - runeSlice.prototype.Len = function Len() { - var p; - p = this; - return p.$length; - }; - $ptrType(runeSlice).prototype.Len = function(...$args) { return this.$get().Len(...$args); }; - runeSlice.prototype.Less = function Less(i, j) { - var i, j, p; - p = this; - return ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]) < ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]); - }; - $ptrType(runeSlice).prototype.Less = function(...$args) { return this.$get().Less(...$args); }; - runeSlice.prototype.Swap = function Swap(i, j) { - var _tmp, _tmp$1, i, j, p; - p = this; - _tmp = ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]); - _tmp$1 = ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]); - ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i] = _tmp); - ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j] = _tmp$1); - }; - $ptrType(runeSlice).prototype.Swap = function(...$args) { return this.$get().Swap(...$args); }; - makeOnePass = function makeOnePass$1(p) { - var {_i, _r, _ref, check, i, instQueue, m, onePassRunes, p, pc, visitQueue, x, $s, $r, $c} = $restore(this, {p}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = [check]; - instQueue = [instQueue]; - onePassRunes = [onePassRunes]; - p = [p]; - visitQueue = [visitQueue]; - if (p[0].Inst.$length >= 1000) { - $s = -1; return ptrType$2.nil; - } - instQueue[0] = newQueue(p[0].Inst.$length); - visitQueue[0] = newQueue(p[0].Inst.$length); - check[0] = $throwNilPointerError; - onePassRunes[0] = $makeSlice(sliceType$13, p[0].Inst.$length); - check[0] = (function(check, instQueue, onePassRunes, p, visitQueue) { return function makeOnePass·func1(pc, m) { - var {_1, _i, _i$1, _i$2, _i$3, _i$4, _q, _q$1, _q$2, _q$3, _q$4, _r, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _v, i, i$1, i$2, i$3, i$4, inst, m, matchArg, matchOut, ok, pc, r0, r0$1, r1, r1$1, runes, runes$1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {pc, m}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - ok = false; - ok = true; - inst = (x = p[0].Inst, ((pc < 0 || pc >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pc])); - if (visitQueue[0].contains(pc)) { - $s = -1; return ok; - } - visitQueue[0].insert(pc); - _1 = inst.Inst.Op; - /* */ if ((_1 === (0)) || (_1 === (1))) { $s = 2; continue; } - /* */ if ((_1 === (2)) || (_1 === (6))) { $s = 3; continue; } - /* */ if (_1 === (3)) { $s = 4; continue; } - /* */ if ((_1 === (4)) || (_1 === (5))) { $s = 5; continue; } - /* */ if (_1 === (7)) { $s = 6; continue; } - /* */ if (_1 === (8)) { $s = 7; continue; } - /* */ if (_1 === (9)) { $s = 8; continue; } - /* */ if (_1 === (10)) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if ((_1 === (0)) || (_1 === (1))) { */ case 2: - _r = check[0](inst.Inst.Out, m); /* */ $s = 12; case 12: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - if (!(_r)) { _v = false; $s = 11; continue s; } - _r$1 = check[0](inst.Inst.Arg, m); /* */ $s = 13; case 13: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = _r$1; case 11: - ok = _v; - matchOut = (x$1 = inst.Inst.Out, ((x$1 < 0 || x$1 >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + x$1])); - matchArg = (x$2 = inst.Inst.Arg, ((x$2 < 0 || x$2 >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + x$2])); - if (matchOut && matchArg) { - ok = false; - /* break; */ $s = 1; continue; - } - if (matchArg) { - _tmp = inst.Inst.Arg; - _tmp$1 = inst.Inst.Out; - inst.Inst.Out = _tmp; - inst.Inst.Arg = _tmp$1; - _tmp$2 = matchArg; - _tmp$3 = matchOut; - matchOut = _tmp$2; - matchArg = _tmp$3; - } - if (matchOut) { - ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = true); - inst.Inst.Op = 1; - } - _r$2 = mergeRuneSets($indexPtr(onePassRunes[0].$array, onePassRunes[0].$offset + inst.Inst.Out, ptrType$9), $indexPtr(onePassRunes[0].$array, onePassRunes[0].$offset + inst.Inst.Arg, ptrType$9), inst.Inst.Out, inst.Inst.Arg); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple = _r$2; - ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = _tuple[0]); - inst.Next = _tuple[1]; - if (inst.Next.$length > 0 && ((x$3 = inst.Next, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])) === 4294967295)) { - ok = false; - /* break; */ $s = 1; continue; - } - $s = 10; continue; - /* } else if ((_1 === (2)) || (_1 === (6))) { */ case 3: - _r$3 = check[0](inst.Inst.Out, m); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - ok = _r$3; - ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = (x$4 = inst.Inst.Out, ((x$4 < 0 || x$4 >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + x$4]))); - ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = $appendSlice(new sliceType$1([]), (x$5 = inst.Inst.Out, ((x$5 < 0 || x$5 >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + x$5])))); - inst.Next = $makeSlice(sliceType$2, ((_q = ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc]).$length / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0)); - _ref = inst.Next; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - (x$6 = inst.Next, ((i < 0 || i >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + i] = inst.Inst.Out)); - _i++; - } - $s = 10; continue; - /* } else if (_1 === (3)) { */ case 4: - _r$4 = check[0](inst.Inst.Out, m); /* */ $s = 16; case 16: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - ok = _r$4; - ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = (x$7 = inst.Inst.Out, ((x$7 < 0 || x$7 >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + x$7]))); - ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = $appendSlice(new sliceType$1([]), (x$8 = inst.Inst.Out, ((x$8 < 0 || x$8 >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + x$8])))); - inst.Next = $makeSlice(sliceType$2, ((_q$1 = ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc]).$length / 2, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0)); - _ref$1 = inst.Next; - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - i$1 = _i$1; - (x$9 = inst.Next, ((i$1 < 0 || i$1 >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + i$1] = inst.Inst.Out)); - _i$1++; - } - $s = 10; continue; - /* } else if ((_1 === (4)) || (_1 === (5))) { */ case 5: - ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = (inst.Inst.Op === 4)); - $s = 10; continue; - /* } else if (_1 === (7)) { */ case 6: - ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = false); - if (inst.Next.$length > 0) { - /* break; */ $s = 1; continue; - } - instQueue[0].insert(inst.Inst.Out); - if (inst.Inst.Rune.$length === 0) { - ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = new sliceType$1([])); - inst.Next = new sliceType$2([inst.Inst.Out]); - /* break; */ $s = 1; continue; - } - runes = $makeSlice(sliceType$1, 0); - /* */ if ((inst.Inst.Rune.$length === 1) && !((((((inst.Inst.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if ((inst.Inst.Rune.$length === 1) && !((((((inst.Inst.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { */ case 17: - r0 = (x$10 = inst.Inst.Rune, (0 >= x$10.$length ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + 0])); - runes = $append(runes, r0, r0); - r1 = unicode.SimpleFold(r0); - while (true) { - if (!(!((r1 === r0)))) { break; } - runes = $append(runes, r1, r1); - r1 = unicode.SimpleFold(r1); - } - $r = sort.Sort(($convertSliceType(runes, runeSlice))); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 19; continue; - /* } else { */ case 18: - runes = $appendSlice(runes, inst.Inst.Rune); - /* } */ case 19: - ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = runes); - inst.Next = $makeSlice(sliceType$2, ((_q$2 = ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc]).$length / 2, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0)); - _ref$2 = inst.Next; - _i$2 = 0; - while (true) { - if (!(_i$2 < _ref$2.$length)) { break; } - i$2 = _i$2; - (x$11 = inst.Next, ((i$2 < 0 || i$2 >= x$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + i$2] = inst.Inst.Out)); - _i$2++; - } - inst.Inst.Op = 7; - $s = 10; continue; - /* } else if (_1 === (8)) { */ case 7: - ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = false); - if (inst.Next.$length > 0) { - /* break; */ $s = 1; continue; - } - instQueue[0].insert(inst.Inst.Out); - runes$1 = new sliceType$1([]); - /* */ if (!((((((inst.Inst.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if (!((((((inst.Inst.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { */ case 21: - r0$1 = (x$12 = inst.Inst.Rune, (0 >= x$12.$length ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + 0])); - runes$1 = $append(runes$1, r0$1, r0$1); - r1$1 = unicode.SimpleFold(r0$1); - while (true) { - if (!(!((r1$1 === r0$1)))) { break; } - runes$1 = $append(runes$1, r1$1, r1$1); - r1$1 = unicode.SimpleFold(r1$1); - } - $r = sort.Sort(($convertSliceType(runes$1, runeSlice))); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 23; continue; - /* } else { */ case 22: - runes$1 = $append(runes$1, (x$13 = inst.Inst.Rune, (0 >= x$13.$length ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + 0])), (x$14 = inst.Inst.Rune, (0 >= x$14.$length ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + 0]))); - /* } */ case 23: - ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = runes$1); - inst.Next = $makeSlice(sliceType$2, ((_q$3 = ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc]).$length / 2, (_q$3 === _q$3 && _q$3 !== 1/0 && _q$3 !== -1/0) ? _q$3 >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0)); - _ref$3 = inst.Next; - _i$3 = 0; - while (true) { - if (!(_i$3 < _ref$3.$length)) { break; } - i$3 = _i$3; - (x$15 = inst.Next, ((i$3 < 0 || i$3 >= x$15.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$15.$array[x$15.$offset + i$3] = inst.Inst.Out)); - _i$3++; - } - inst.Inst.Op = 7; - $s = 10; continue; - /* } else if (_1 === (9)) { */ case 8: - ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = false); - if (inst.Next.$length > 0) { - /* break; */ $s = 1; continue; - } - instQueue[0].insert(inst.Inst.Out); - ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = $appendSlice(new sliceType$1([]), anyRune)); - inst.Next = new sliceType$2([inst.Inst.Out]); - $s = 10; continue; - /* } else if (_1 === (10)) { */ case 9: - ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = false); - if (inst.Next.$length > 0) { - /* break; */ $s = 1; continue; - } - instQueue[0].insert(inst.Inst.Out); - ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = $appendSlice(new sliceType$1([]), anyRuneNotNL)); - inst.Next = $makeSlice(sliceType$2, ((_q$4 = ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc]).$length / 2, (_q$4 === _q$4 && _q$4 !== 1/0 && _q$4 !== -1/0) ? _q$4 >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0)); - _ref$4 = inst.Next; - _i$4 = 0; - while (true) { - if (!(_i$4 < _ref$4.$length)) { break; } - i$4 = _i$4; - (x$16 = inst.Next, ((i$4 < 0 || i$4 >= x$16.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$16.$array[x$16.$offset + i$4] = inst.Inst.Out)); - _i$4++; - } - /* } */ case 10: - case 1: - $s = -1; return ok; - /* */ } return; } var $f = {$blk: makeOnePass·func1, $c: true, $r, _1, _i, _i$1, _i$2, _i$3, _i$4, _q, _q$1, _q$2, _q$3, _q$4, _r, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _v, i, i$1, i$2, i$3, i$4, inst, m, matchArg, matchOut, ok, pc, r0, r0$1, r1, r1$1, runes, runes$1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; - }; })(check, instQueue, onePassRunes, p, visitQueue); - instQueue[0].clear(); - instQueue[0].insert(((p[0].Start >>> 0))); - m = $makeSlice(sliceType$14, p[0].Inst.$length); - /* while (true) { */ case 1: - /* if (!(!instQueue[0].empty())) { break; } */ if(!(!instQueue[0].empty())) { $s = 2; continue; } - visitQueue[0].clear(); - pc = instQueue[0].next(); - _r = check[0](pc, m); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - /* */ if (!_r) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!_r) { */ case 3: - p[0] = ptrType$2.nil; - /* break; */ $s = 2; continue; - /* } */ case 4: - $s = 1; continue; - case 2: - if (!(p[0] === ptrType$2.nil)) { - _ref = p[0].Inst; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - (x = p[0].Inst, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])).Inst.Rune = ((i < 0 || i >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + i]); - _i++; - } - } - $s = -1; return p[0]; - /* */ } return; } var $f = {$blk: makeOnePass$1, $c: true, $r, _i, _r, _ref, check, i, instQueue, m, onePassRunes, p, pc, visitQueue, x, $s};return $f; - }; - compileOnePass = function compileOnePass$1(prog) { - var {_1, _i, _r, _ref, inst, opOut, p, prog, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r, $c} = $restore(this, {prog}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = ptrType$2.nil; - if (prog.Start === 0) { - p = ptrType$2.nil; - $s = -1; return p; - } - if (!(((x = prog.Inst, x$1 = prog.Start, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Op === 3)) || !(((((((x$2 = prog.Inst, x$3 = prog.Start, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])).Arg << 24 >>> 24)) & 4) >>> 0) === 4))) { - p = ptrType$2.nil; - $s = -1; return p; - } - _ref = prog.Inst; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - inst = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), syntax.Inst); - opOut = (x$4 = prog.Inst, x$5 = inst.Out, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])).Op; - _1 = inst.Op; - if ((_1 === (0)) || (_1 === (1))) { - if ((opOut === 4) || ((x$6 = prog.Inst, x$7 = inst.Arg, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])).Op === 4)) { - p = ptrType$2.nil; - $s = -1; return p; - } - } else if (_1 === (3)) { - if (opOut === 4) { - if (((((inst.Arg << 24 >>> 24)) & 8) >>> 0) === 8) { - _i++; - continue; - } - p = ptrType$2.nil; - $s = -1; return p; - } - } else if (opOut === 4) { - p = ptrType$2.nil; - $s = -1; return p; - } - _i++; - } - p = onePassCopy(prog); - _r = makeOnePass(p); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - p = _r; - if (!(p === ptrType$2.nil)) { - cleanupOnePass(p, prog); - } - p = p; - $s = -1; return p; - /* */ } return; } var $f = {$blk: compileOnePass$1, $c: true, $r, _1, _i, _r, _ref, inst, opOut, p, prog, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s};return $f; - }; - $ptrType(inputs).prototype.newBytes = function newBytes(b) { - var b, i; - i = this; - i.bytes.str = b; - return i.bytes; - }; - $ptrType(inputs).prototype.newString = function newString(s) { - var i, s; - i = this; - i.string.str = s; - return i.string; - }; - $ptrType(inputs).prototype.newReader = function newReader(r) { - var i, r; - i = this; - i.reader.r = r; - i.reader.atEOT = false; - i.reader.pos = 0; - return i.reader; - }; - $ptrType(inputs).prototype.clear = function clear$1() { - var i; - i = this; - if (!(i.bytes.str === sliceType$4.nil)) { - i.bytes.str = sliceType$4.nil; - } else if (!($interfaceIsEqual(i.reader.r, $ifaceNil))) { - i.reader.r = $ifaceNil; - } else { - i.string.str = ""; - } - }; - $ptrType(inputs).prototype.init = function init$2(r, b, s) { - var b, i, r, s; - i = this; - if (!($interfaceIsEqual(r, $ifaceNil))) { - return [i.newReader(r), 0]; - } - if (!(b === sliceType$4.nil)) { - return [i.newBytes(b), b.$length]; - } - return [i.newString(s), s.length]; - }; - $ptrType(machine).prototype.init = function init$3(ncap) { - var _i, _ref, m, ncap, t; - m = this; - _ref = m.pool; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - t.cap = $subslice(t.cap, 0, ncap); - _i++; - } - m.matchcap = $subslice(m.matchcap, 0, ncap); - }; - $ptrType(machine).prototype.alloc = function alloc(i) { - var i, m, n, t, x, x$1; - m = this; - t = ptrType$4.nil; - n = m.pool.$length; - if (n > 0) { - t = (x = m.pool, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); - m.pool = $subslice(m.pool, 0, (n - 1 >> 0)); - } else { - t = new thread.ptr(ptrType$10.nil, sliceType$7.nil); - t.cap = $makeSlice(sliceType$7, m.matchcap.$length, m.matchcap.$capacity); - } - t.inst = i; - return t; - }; - newLazyFlag = function newLazyFlag$1(r1, r2) { - var r1, r2, x, x$1, x$2; - return ((x = (x$1 = $shiftLeft64((new $Uint64(0, r1)), 32), x$2 = (new $Uint64(0, ((r2 >>> 0)))), new $Uint64(x$1.$high | x$2.$high, (x$1.$low | x$2.$low) >>> 0)), new lazyFlag(x.$high, x.$low))); - }; - lazyFlag.prototype.match = function match(op) { - var f, op, r1, r2; - f = this; - if (op === 0) { - return true; - } - r1 = (($shiftRightUint64(f, 32).$low >> 0)); - if (!((((op & 1) >>> 0) === 0))) { - if (!((r1 === 10)) && r1 >= 0) { - return false; - } - op = (op & ~(1)) << 24 >>> 24; - } - if (!((((op & 4) >>> 0) === 0))) { - if (r1 >= 0) { - return false; - } - op = (op & ~(4)) << 24 >>> 24; - } - if (op === 0) { - return true; - } - r2 = ((f.$low >> 0)); - if (!((((op & 2) >>> 0) === 0))) { - if (!((r2 === 10)) && r2 >= 0) { - return false; - } - op = (op & ~(2)) << 24 >>> 24; - } - if (!((((op & 8) >>> 0) === 0))) { - if (r2 >= 0) { - return false; - } - op = (op & ~(8)) << 24 >>> 24; - } - if (op === 0) { - return true; - } - if (!(syntax.IsWordChar(r1) === syntax.IsWordChar(r2))) { - op = (op & ~(16)) << 24 >>> 24; - } else { - op = (op & ~(32)) << 24 >>> 24; - } - return op === 0; - }; - $ptrType(lazyFlag).prototype.match = function(...$args) { return this.$get().match(...$args); }; - $ptrType(machine).prototype.match = function match$1(i, pos) { - var {_i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _v, advance, flag, i, i$1, m, nextq, pos, r, r1, runq, startCond, width, width1, x, x$1, $s, $r, $c} = $restore(this, {i, pos}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - flag = [flag]; - m = this; - startCond = m.re.cond; - if (startCond === 255) { - $s = -1; return false; - } - m.matched = false; - _ref = m.matchcap; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i$1 = _i; - (x = m.matchcap, ((i$1 < 0 || i$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i$1] = -1)); - _i++; - } - _tmp = m.q0; - _tmp$1 = m.q1; - runq = _tmp; - nextq = _tmp$1; - _tmp$2 = -1; - _tmp$3 = -1; - r = _tmp$2; - r1 = _tmp$3; - _tmp$4 = 0; - _tmp$5 = 0; - width = _tmp$4; - width1 = _tmp$5; - _r = i.step(pos); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - r = _tuple[0]; - width = _tuple[1]; - /* */ if (!((r === -1))) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!((r === -1))) { */ case 2: - _r$1 = i.step(pos + width >> 0); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$1 = _r$1; - r1 = _tuple$1[0]; - width1 = _tuple$1[1]; - /* } */ case 3: - flag[0] = new lazyFlag(0, 0); - /* */ if (pos === 0) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (pos === 0) { */ case 5: - flag[0] = newLazyFlag(-1, r); - $s = 7; continue; - /* } else { */ case 6: - _r$2 = i.context(pos); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - flag[0] = _r$2; - /* } */ case 7: - /* while (true) { */ case 9: - /* */ if (runq.dense.$length === 0) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (runq.dense.$length === 0) { */ case 11: - if (!((((startCond & 4) >>> 0) === 0)) && !((pos === 0))) { - /* break; */ $s = 10; continue; - } - if (m.matched) { - /* break; */ $s = 10; continue; - } - if (!(m.re.prefix.length > 0 && !((r1 === m.re.prefixRune)))) { _v = false; $s = 15; continue s; } - _r$3 = i.canCheckPrefix(); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _v = _r$3; case 15: - /* */ if (_v) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (_v) { */ case 13: - _r$4 = i.index(m.re, pos); /* */ $s = 17; case 17: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - advance = _r$4; - if (advance < 0) { - /* break; */ $s = 10; continue; - } - pos = pos + (advance) >> 0; - _r$5 = i.step(pos); /* */ $s = 18; case 18: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _tuple$2 = _r$5; - r = _tuple$2[0]; - width = _tuple$2[1]; - _r$6 = i.step(pos + width >> 0); /* */ $s = 19; case 19: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _tuple$3 = _r$6; - r1 = _tuple$3[0]; - width1 = _tuple$3[1]; - /* } */ case 14: - /* } */ case 12: - if (!m.matched) { - if (m.matchcap.$length > 0) { - (x$1 = m.matchcap, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0] = pos)); - } - m.add(runq, ((m.p.Start >>> 0)), pos, m.matchcap, (flag.$ptr || (flag.$ptr = new ptrType$11(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, flag))), ptrType$4.nil); - } - flag[0] = newLazyFlag(r, r1); - m.step(runq, nextq, pos, pos + width >> 0, r, (flag.$ptr || (flag.$ptr = new ptrType$11(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, flag)))); - if (width === 0) { - /* break; */ $s = 10; continue; - } - if ((m.matchcap.$length === 0) && m.matched) { - /* break; */ $s = 10; continue; - } - pos = pos + (width) >> 0; - _tmp$6 = r1; - _tmp$7 = width1; - r = _tmp$6; - width = _tmp$7; - /* */ if (!((r === -1))) { $s = 20; continue; } - /* */ $s = 21; continue; - /* if (!((r === -1))) { */ case 20: - _r$7 = i.step(pos + width >> 0); /* */ $s = 22; case 22: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _tuple$4 = _r$7; - r1 = _tuple$4[0]; - width1 = _tuple$4[1]; - /* } */ case 21: - _tmp$8 = nextq; - _tmp$9 = runq; - runq = _tmp$8; - nextq = _tmp$9; - $s = 9; continue; - case 10: - m.clear(nextq); - $s = -1; return m.matched; - /* */ } return; } var $f = {$blk: match$1, $c: true, $r, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _v, advance, flag, i, i$1, m, nextq, pos, r, r1, runq, startCond, width, width1, x, x$1, $s};return $f; - }; - $ptrType(machine).prototype.clear = function clear$2(q) { - var _i, _ref, d, m, q; - m = this; - _ref = q.dense; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - d = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), entry); - if (!(d.t === ptrType$4.nil)) { - m.pool = $append(m.pool, d.t); - } - _i++; - } - q.dense = $subslice(q.dense, 0, 0); - }; - $ptrType(machine).prototype.step = function step$3(runq, nextq, pos, nextPos, c, nextCond) { - var _1, _i, _ref, add, c, d, d$1, i, j, longest, m, nextCond, nextPos, nextq, pos, runq, t, x, x$1, x$2, x$3, x$4, x$5; - m = this; - longest = m.re.longest; - j = 0; - while (true) { - if (!(j < runq.dense.$length)) { break; } - d = (x = runq.dense, ((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + j])); - t = d.t; - if (t === ptrType$4.nil) { - j = j + (1) >> 0; - continue; - } - if (longest && m.matched && t.cap.$length > 0 && (x$1 = m.matchcap, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])) < (x$2 = t.cap, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0]))) { - m.pool = $append(m.pool, t); - j = j + (1) >> 0; - continue; - } - i = t.inst; - add = false; - _1 = i.Op; - if (_1 === (4)) { - if (t.cap.$length > 0 && (!longest || !m.matched || (x$3 = m.matchcap, (1 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 1])) < pos)) { - (x$4 = t.cap, (1 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 1] = pos)); - $copySlice(m.matchcap, t.cap); - } - if (!longest) { - _ref = $subslice(runq.dense, (j + 1 >> 0)); - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - d$1 = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), entry); - if (!(d$1.t === ptrType$4.nil)) { - m.pool = $append(m.pool, d$1.t); - } - _i++; - } - runq.dense = $subslice(runq.dense, 0, 0); - } - m.matched = true; - } else if (_1 === (7)) { - add = i.MatchRune(c); - } else if (_1 === (8)) { - add = c === (x$5 = i.Rune, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0])); - } else if (_1 === (9)) { - add = true; - } else if (_1 === (10)) { - add = !((c === 10)); - } else { - $panic(new $String("bad inst")); - } - if (add) { - t = m.add(nextq, i.Out, nextPos, t.cap, nextCond, t); - } - if (!(t === ptrType$4.nil)) { - m.pool = $append(m.pool, t); - } - j = j + (1) >> 0; - } - runq.dense = $subslice(runq.dense, 0, 0); - }; - $ptrType(machine).prototype.add = function add(q, pc, pos, cap, cond, t) { - var _1, cap, cond, d, i, j, j$1, m, opos, pc, pos, q, t, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, $s; - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - m = this; - /* Again: */ case 1: - if (pc === 0) { - $s = -1; return t; - } - j = (x = q.sparse, ((pc < 0 || pc >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pc])); - if (j < ((q.dense.$length >>> 0)) && ((x$1 = q.dense, ((j < 0 || j >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + j])).pc === pc)) { - $s = -1; return t; - } - j$1 = q.dense.$length; - q.dense = $subslice(q.dense, 0, (j$1 + 1 >> 0)); - d = (x$2 = q.dense, ((j$1 < 0 || j$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + j$1])); - d.t = ptrType$4.nil; - d.pc = pc; - (x$3 = q.sparse, ((pc < 0 || pc >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + pc] = ((j$1 >>> 0)))); - i = (x$4 = m.p.Inst, ((pc < 0 || pc >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + pc])); - _1 = i.Op; - /* */ if (_1 === (5)) { $s = 3; continue; } - /* */ if ((_1 === (0)) || (_1 === (1))) { $s = 4; continue; } - /* */ if (_1 === (3)) { $s = 5; continue; } - /* */ if (_1 === (6)) { $s = 6; continue; } - /* */ if (_1 === (2)) { $s = 7; continue; } - /* */ if ((_1 === (4)) || (_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10))) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (_1 === (5)) { */ case 3: - $s = 10; continue; - /* } else if ((_1 === (0)) || (_1 === (1))) { */ case 4: - t = m.add(q, i.Out, pos, cap, cond, t); - pc = i.Arg; - /* goto Again */ $s = 1; continue; - $s = 10; continue; - /* } else if (_1 === (3)) { */ case 5: - /* */ if (cond.match(((i.Arg << 24 >>> 24)))) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (cond.match(((i.Arg << 24 >>> 24)))) { */ case 11: - pc = i.Out; - /* goto Again */ $s = 1; continue; - /* } */ case 12: - $s = 10; continue; - /* } else if (_1 === (6)) { */ case 6: - pc = i.Out; - /* goto Again */ $s = 1; continue; - $s = 10; continue; - /* } else if (_1 === (2)) { */ case 7: - /* */ if (((i.Arg >> 0)) < cap.$length) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (((i.Arg >> 0)) < cap.$length) { */ case 13: - opos = (x$5 = i.Arg, ((x$5 < 0 || x$5 >= cap.$length) ? ($throwRuntimeError("index out of range"), undefined) : cap.$array[cap.$offset + x$5])); - (x$6 = i.Arg, ((x$6 < 0 || x$6 >= cap.$length) ? ($throwRuntimeError("index out of range"), undefined) : cap.$array[cap.$offset + x$6] = pos)); - m.add(q, i.Out, pos, cap, cond, ptrType$4.nil); - (x$7 = i.Arg, ((x$7 < 0 || x$7 >= cap.$length) ? ($throwRuntimeError("index out of range"), undefined) : cap.$array[cap.$offset + x$7] = opos)); - $s = 15; continue; - /* } else { */ case 14: - pc = i.Out; - /* goto Again */ $s = 1; continue; - /* } */ case 15: - $s = 10; continue; - /* } else if ((_1 === (4)) || (_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10))) { */ case 8: - if (t === ptrType$4.nil) { - t = m.alloc(i); - } else { - t.inst = i; - } - if (cap.$length > 0 && !((x$8 = t.cap, $indexPtr(x$8.$array, x$8.$offset + 0, ptrType$7)) === $indexPtr(cap.$array, cap.$offset + 0, ptrType$7))) { - $copySlice(t.cap, cap); - } - d.t = t; - t = ptrType$4.nil; - $s = 10; continue; - /* } else { */ case 9: - $panic(new $String("unhandled")); - /* } */ case 10: - case 2: - $s = -1; return t; - /* */ } return; } - }; - newOnePassMachine = function newOnePassMachine$1() { - var {_r, _tuple, m, ok, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = onePassPool.Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = $assertType(_r, ptrType$12, true); - m = _tuple[0]; - ok = _tuple[1]; - if (!ok) { - m = new onePassMachine.ptr(new inputs.ptr(new inputBytes.ptr(sliceType$4.nil), new inputString.ptr(""), new inputReader.ptr($ifaceNil, false, 0)), sliceType$7.nil); - } - $s = -1; return m; - /* */ } return; } var $f = {$blk: newOnePassMachine$1, $c: true, $r, _r, _tuple, m, ok, $s};return $f; - }; - freeOnePassMachine = function freeOnePassMachine$1(m) { - var m; - m.inputs.clear(); - onePassPool.Put(m); - }; - $ptrType(Regexp).prototype.doOnePass = function doOnePass(ir, ib, is, pos, ncap, dstCap) { - var {_1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _v, dstCap, flag, i, i$1, ib, inst, ir, is, m, matched, ncap, pc, pos, r, r1, re, startCond, width, width1, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r, $c} = $restore(this, {ir, ib, is, pos, ncap, dstCap}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - re = this; - startCond = re.cond; - if (startCond === 255) { - $s = -1; return sliceType$7.nil; - } - _r = newOnePassMachine(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - m = _r; - if (m.matchcap.$capacity < ncap) { - m.matchcap = $makeSlice(sliceType$7, ncap); - } else { - m.matchcap = $subslice(m.matchcap, 0, ncap); - } - matched = false; - _ref = m.matchcap; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - (x = m.matchcap, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i] = -1)); - _i++; - } - _tuple = m.inputs.init(ir, ib, is); - i$1 = _tuple[0]; - _tmp = -1; - _tmp$1 = -1; - r = _tmp; - r1 = _tmp$1; - _tmp$2 = 0; - _tmp$3 = 0; - width = _tmp$2; - width1 = _tmp$3; - _r$1 = i$1.step(pos); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$1 = _r$1; - r = _tuple$1[0]; - width = _tuple$1[1]; - /* */ if (!((r === -1))) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!((r === -1))) { */ case 3: - _r$2 = i$1.step(pos + width >> 0); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple$2 = _r$2; - r1 = _tuple$2[0]; - width1 = _tuple$2[1]; - /* } */ case 4: - flag = new lazyFlag(0, 0); - /* */ if (pos === 0) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (pos === 0) { */ case 6: - flag = newLazyFlag(-1, r); - $s = 8; continue; - /* } else { */ case 7: - _r$3 = i$1.context(pos); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - flag = _r$3; - /* } */ case 8: - pc = re.onepass.Start; - inst = (x$1 = re.onepass.Inst, ((pc < 0 || pc >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + pc])); - if (!((pos === 0) && flag.match(((inst.Inst.Arg << 24 >>> 24))) && re.prefix.length > 0)) { _v = false; $s = 12; continue s; } - _r$4 = i$1.canCheckPrefix(); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _v = _r$4; case 12: - /* */ if (_v) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (_v) { */ case 10: - _r$5 = i$1.hasPrefix(re); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* */ if (!_r$5) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (!_r$5) { */ case 14: - /* goto Return */ $s = 17; continue; - /* } */ case 15: - pos = pos + (re.prefix.length) >> 0; - _r$6 = i$1.step(pos); /* */ $s = 18; case 18: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _tuple$3 = _r$6; - r = _tuple$3[0]; - width = _tuple$3[1]; - _r$7 = i$1.step(pos + width >> 0); /* */ $s = 19; case 19: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _tuple$4 = _r$7; - r1 = _tuple$4[0]; - width1 = _tuple$4[1]; - _r$8 = i$1.context(pos); /* */ $s = 20; case 20: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - flag = _r$8; - pc = ((re.prefixEnd >> 0)); - /* } */ case 11: - /* while (true) { */ case 21: - inst = (x$2 = re.onepass.Inst, ((pc < 0 || pc >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + pc])); - pc = ((inst.Inst.Out >> 0)); - _1 = inst.Inst.Op; - /* */ if (_1 === (4)) { $s = 24; continue; } - /* */ if (_1 === (7)) { $s = 25; continue; } - /* */ if (_1 === (8)) { $s = 26; continue; } - /* */ if (_1 === (9)) { $s = 27; continue; } - /* */ if (_1 === (10)) { $s = 28; continue; } - /* */ if ((_1 === (0)) || (_1 === (1))) { $s = 29; continue; } - /* */ if (_1 === (5)) { $s = 30; continue; } - /* */ if (_1 === (6)) { $s = 31; continue; } - /* */ if (_1 === (3)) { $s = 32; continue; } - /* */ if (_1 === (2)) { $s = 33; continue; } - /* */ $s = 34; continue; - /* if (_1 === (4)) { */ case 24: - matched = true; - if (m.matchcap.$length > 0) { - (x$3 = m.matchcap, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0] = 0)); - (x$4 = m.matchcap, (1 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 1] = pos)); - } - /* goto Return */ $s = 17; continue; - $s = 35; continue; - /* } else if (_1 === (7)) { */ case 25: - /* */ if (!inst.Inst.MatchRune(r)) { $s = 36; continue; } - /* */ $s = 37; continue; - /* if (!inst.Inst.MatchRune(r)) { */ case 36: - /* goto Return */ $s = 17; continue; - /* } */ case 37: - $s = 35; continue; - /* } else if (_1 === (8)) { */ case 26: - /* */ if (!((r === (x$5 = inst.Inst.Rune, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0]))))) { $s = 38; continue; } - /* */ $s = 39; continue; - /* if (!((r === (x$5 = inst.Inst.Rune, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0]))))) { */ case 38: - /* goto Return */ $s = 17; continue; - /* } */ case 39: - $s = 35; continue; - /* } else if (_1 === (9)) { */ case 27: - $s = 35; continue; - /* } else if (_1 === (10)) { */ case 28: - /* */ if (r === 10) { $s = 40; continue; } - /* */ $s = 41; continue; - /* if (r === 10) { */ case 40: - /* goto Return */ $s = 17; continue; - /* } */ case 41: - $s = 35; continue; - /* } else if ((_1 === (0)) || (_1 === (1))) { */ case 29: - pc = ((onePassNext(inst, r) >> 0)); - /* continue; */ $s = 21; continue; - $s = 35; continue; - /* } else if (_1 === (5)) { */ case 30: - /* goto Return */ $s = 17; continue; - $s = 35; continue; - /* } else if (_1 === (6)) { */ case 31: - /* continue; */ $s = 21; continue; - $s = 35; continue; - /* } else if (_1 === (3)) { */ case 32: - /* */ if (!flag.match(((inst.Inst.Arg << 24 >>> 24)))) { $s = 42; continue; } - /* */ $s = 43; continue; - /* if (!flag.match(((inst.Inst.Arg << 24 >>> 24)))) { */ case 42: - /* goto Return */ $s = 17; continue; - /* } */ case 43: - /* continue; */ $s = 21; continue; - $s = 35; continue; - /* } else if (_1 === (2)) { */ case 33: - if (((inst.Inst.Arg >> 0)) < m.matchcap.$length) { - (x$6 = m.matchcap, x$7 = inst.Inst.Arg, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7] = pos)); - } - /* continue; */ $s = 21; continue; - $s = 35; continue; - /* } else { */ case 34: - $panic(new $String("bad inst")); - /* } */ case 35: - case 23: - if (width === 0) { - /* break; */ $s = 22; continue; - } - flag = newLazyFlag(r, r1); - pos = pos + (width) >> 0; - _tmp$4 = r1; - _tmp$5 = width1; - r = _tmp$4; - width = _tmp$5; - /* */ if (!((r === -1))) { $s = 44; continue; } - /* */ $s = 45; continue; - /* if (!((r === -1))) { */ case 44: - _r$9 = i$1.step(pos + width >> 0); /* */ $s = 46; case 46: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _tuple$5 = _r$9; - r1 = _tuple$5[0]; - width1 = _tuple$5[1]; - /* } */ case 45: - $s = 21; continue; - case 22: - /* Return: */ case 17: - if (!matched) { - freeOnePassMachine(m); - $s = -1; return sliceType$7.nil; - } - dstCap = $appendSlice(dstCap, m.matchcap); - freeOnePassMachine(m); - $s = -1; return dstCap; - /* */ } return; } var $f = {$blk: doOnePass, $c: true, $r, _1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _v, dstCap, flag, i, i$1, ib, inst, ir, is, m, matched, ncap, pc, pos, r, r1, re, startCond, width, width1, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s};return $f; - }; - $ptrType(Regexp).prototype.doMatch = function doMatch(r, b, s) { - var {$24r, _r, b, r, re, s, $s, $r, $c} = $restore(this, {r, b, s}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - re = this; - _r = re.doExecute(r, b, s, 0, 0, sliceType$7.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = !(_r === sliceType$7.nil); - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: doMatch, $c: true, $r, $24r, _r, b, r, re, s, $s};return $f; - }; - $ptrType(Regexp).prototype.doExecute = function doExecute(r, b, s, pos, ncap, dstCap) { - var {$24r, $24r$1, _r, _r$1, _r$2, _r$3, _tuple, b, dstCap, i, m, ncap, pos, r, re, s, $s, $r, $c} = $restore(this, {r, b, s, pos, ncap, dstCap}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - re = this; - if (dstCap === sliceType$7.nil) { - dstCap = $subslice(new sliceType$7(arrayNoInts), 0, 0, 0); - } - if ($interfaceIsEqual(r, $ifaceNil) && (b.$length + s.length >> 0) < re.minInputLen) { - $s = -1; return sliceType$7.nil; - } - /* */ if (!(re.onepass === ptrType$2.nil)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(re.onepass === ptrType$2.nil)) { */ case 1: - _r = re.doOnePass(r, b, s, pos, ncap, dstCap); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 4; case 4: return $24r; - /* } */ case 2: - /* */ if ($interfaceIsEqual(r, $ifaceNil) && (b.$length + s.length >> 0) < re.maxBitStateLen) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if ($interfaceIsEqual(r, $ifaceNil) && (b.$length + s.length >> 0) < re.maxBitStateLen) { */ case 5: - _r$1 = re.backtrack(b, s, pos, ncap, dstCap); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r$1 = _r$1; - $s = 8; case 8: return $24r$1; - /* } */ case 6: - _r$2 = re.get(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - m = _r$2; - _tuple = m.inputs.init(r, b, s); - i = _tuple[0]; - m.init(ncap); - _r$3 = m.match(i, pos); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (!_r$3) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (!_r$3) { */ case 10: - re.put(m); - $s = -1; return sliceType$7.nil; - /* } */ case 11: - dstCap = $appendSlice(dstCap, m.matchcap); - re.put(m); - $s = -1; return dstCap; - /* */ } return; } var $f = {$blk: doExecute, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _r$3, _tuple, b, dstCap, i, m, ncap, pos, r, re, s, $s};return $f; - }; - newBitState = function newBitState$1() { - var {_r, _tuple, b, ok, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = bitStatePool.Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = $assertType(_r, ptrType$13, true); - b = _tuple[0]; - ok = _tuple[1]; - if (!ok) { - b = new bitState.ptr(0, sliceType$7.nil, sliceType$7.nil, sliceType$15.nil, sliceType$2.nil, new inputs.ptr(new inputBytes.ptr(sliceType$4.nil), new inputString.ptr(""), new inputReader.ptr($ifaceNil, false, 0))); - } - $s = -1; return b; - /* */ } return; } var $f = {$blk: newBitState$1, $c: true, $r, _r, _tuple, b, ok, $s};return $f; - }; - freeBitState = function freeBitState$1(b) { - var b; - b.inputs.clear(); - bitStatePool.Put(b); - }; - maxBitStateLen = function maxBitStateLen$1(prog) { - var _q, prog; - if (!shouldBacktrack(prog)) { - return 0; - } - return (_q = 262144 / prog.Inst.$length, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); - }; - shouldBacktrack = function shouldBacktrack$1(prog) { - var prog; - return prog.Inst.$length <= 500; - }; - $ptrType(bitState).prototype.reset = function reset(prog, end, ncap) { - var _i, _i$1, _i$2, _q, _ref, _ref$1, _ref$2, b, end, i, i$1, i$2, ncap, prog, visitedSize, x, x$1, x$2; - b = this; - b.end = end; - if (b.jobs.$capacity === 0) { - b.jobs = $makeSlice(sliceType$15, 0, 256); - } else { - b.jobs = $subslice(b.jobs, 0, 0); - } - visitedSize = (_q = (((($imul(prog.Inst.$length, ((end + 1 >> 0)))) + 32 >> 0) - 1 >> 0)) / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); - if (b.visited.$capacity < visitedSize) { - b.visited = $makeSlice(sliceType$2, visitedSize, 8192); - } else { - b.visited = $subslice(b.visited, 0, visitedSize); - _ref = b.visited; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - (x = b.visited, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i] = 0)); - _i++; - } - } - if (b.cap.$capacity < ncap) { - b.cap = $makeSlice(sliceType$7, ncap); - } else { - b.cap = $subslice(b.cap, 0, ncap); - } - _ref$1 = b.cap; - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - i$1 = _i$1; - (x$1 = b.cap, ((i$1 < 0 || i$1 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$1] = -1)); - _i$1++; - } - if (b.matchcap.$capacity < ncap) { - b.matchcap = $makeSlice(sliceType$7, ncap); - } else { - b.matchcap = $subslice(b.matchcap, 0, ncap); - } - _ref$2 = b.matchcap; - _i$2 = 0; - while (true) { - if (!(_i$2 < _ref$2.$length)) { break; } - i$2 = _i$2; - (x$2 = b.matchcap, ((i$2 < 0 || i$2 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$2] = -1)); - _i$2++; - } - }; - $ptrType(bitState).prototype.shouldVisit = function shouldVisit(pc, pos) { - var _index, _q, _q$1, b, n, pc, pos, x, x$1, x$2, x$3, y, y$1; - b = this; - n = (((($imul(((pc >> 0)), ((b.end + 1 >> 0)))) + pos >> 0) >>> 0)); - if (!(((((x = b.visited, x$1 = (_q = n / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")), ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])) & (((y = (((n & 31) >>> 0)), y < 32 ? (1 << y) : 0) >>> 0))) >>> 0) === 0))) { - return false; - } - _index = (_q$1 = n / 32, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero")); - (x$3 = b.visited, ((_index < 0 || _index >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + _index] = (((x$2 = b.visited, ((_index < 0 || _index >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + _index])) | (((y$1 = (((n & 31) >>> 0)), y$1 < 32 ? (1 << y$1) : 0) >>> 0))) >>> 0))); - return true; - }; - $ptrType(bitState).prototype.push = function push(re, pc, pos, arg) { - var arg, b, pc, pos, re, x; - b = this; - if (!(((x = re.prog.Inst, ((pc < 0 || pc >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pc])).Op === 5)) && (arg || b.shouldVisit(pc, pos))) { - b.jobs = $append(b.jobs, new job.ptr(pc, arg, pos)); - } - }; - $ptrType(Regexp).prototype.tryBacktrack = function tryBacktrack(b, i, pc, pos) { - var {_1, _2, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, _tuple$2, _tuple$3, arg, b, flag, i, inst, l, longest, old, pc, pc$1, pos, pos$1, r, r$1, r$2, r$3, re, width, width$1, width$2, width$3, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {b, i, pc, pos}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - re = this; - longest = re.longest; - b.push(re, pc, pos, false); - /* while (true) { */ case 1: - /* if (!(b.jobs.$length > 0)) { break; } */ if(!(b.jobs.$length > 0)) { $s = 2; continue; } - l = b.jobs.$length - 1 >> 0; - pc$1 = (x = b.jobs, ((l < 0 || l >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + l])).pc; - pos$1 = (x$1 = b.jobs, ((l < 0 || l >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + l])).pos; - arg = (x$2 = b.jobs, ((l < 0 || l >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + l])).arg; - b.jobs = $subslice(b.jobs, 0, l); - /* goto Skip */ $s = 3; continue; - /* CheckAndLoop: */ case 4: - if (!b.shouldVisit(pc$1, pos$1)) { - /* continue; */ $s = 1; continue; - } - /* Skip: */ case 3: - inst = (x$3 = re.prog.Inst, ((pc$1 < 0 || pc$1 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + pc$1])); - _1 = inst.Op; - /* */ if (_1 === (5)) { $s = 6; continue; } - /* */ if (_1 === (0)) { $s = 7; continue; } - /* */ if (_1 === (1)) { $s = 8; continue; } - /* */ if (_1 === (7)) { $s = 9; continue; } - /* */ if (_1 === (8)) { $s = 10; continue; } - /* */ if (_1 === (10)) { $s = 11; continue; } - /* */ if (_1 === (9)) { $s = 12; continue; } - /* */ if (_1 === (2)) { $s = 13; continue; } - /* */ if (_1 === (3)) { $s = 14; continue; } - /* */ if (_1 === (6)) { $s = 15; continue; } - /* */ if (_1 === (4)) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (_1 === (5)) { */ case 6: - $panic(new $String("unexpected InstFail")); - $s = 18; continue; - /* } else if (_1 === (0)) { */ case 7: - /* */ if (arg) { $s = 19; continue; } - /* */ $s = 20; continue; - /* if (arg) { */ case 19: - arg = false; - pc$1 = inst.Arg; - /* goto CheckAndLoop */ $s = 4; continue; - $s = 21; continue; - /* } else { */ case 20: - b.push(re, pc$1, pos$1, true); - pc$1 = inst.Out; - /* goto CheckAndLoop */ $s = 4; continue; - /* } */ case 21: - $s = 18; continue; - /* } else if (_1 === (1)) { */ case 8: - _2 = (x$4 = re.prog.Inst, x$5 = inst.Out, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])).Op; - /* */ if ((_2 === (7)) || (_2 === (8)) || (_2 === (9)) || (_2 === (10))) { $s = 23; continue; } - /* */ $s = 24; continue; - /* if ((_2 === (7)) || (_2 === (8)) || (_2 === (9)) || (_2 === (10))) { */ case 23: - b.push(re, inst.Arg, pos$1, false); - pc$1 = inst.Arg; - pos$1 = b.end; - /* goto CheckAndLoop */ $s = 4; continue; - /* } */ case 24: - case 22: - b.push(re, inst.Out, b.end, false); - pc$1 = inst.Out; - /* goto CheckAndLoop */ $s = 4; continue; - $s = 18; continue; - /* } else if (_1 === (7)) { */ case 9: - _r = i.step(pos$1); /* */ $s = 25; case 25: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - r = _tuple[0]; - width = _tuple[1]; - if (!inst.MatchRune(r)) { - /* continue; */ $s = 1; continue; - } - pos$1 = pos$1 + (width) >> 0; - pc$1 = inst.Out; - /* goto CheckAndLoop */ $s = 4; continue; - $s = 18; continue; - /* } else if (_1 === (8)) { */ case 10: - _r$1 = i.step(pos$1); /* */ $s = 26; case 26: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$1 = _r$1; - r$1 = _tuple$1[0]; - width$1 = _tuple$1[1]; - if (!((r$1 === (x$6 = inst.Rune, (0 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + 0]))))) { - /* continue; */ $s = 1; continue; - } - pos$1 = pos$1 + (width$1) >> 0; - pc$1 = inst.Out; - /* goto CheckAndLoop */ $s = 4; continue; - $s = 18; continue; - /* } else if (_1 === (10)) { */ case 11: - _r$2 = i.step(pos$1); /* */ $s = 27; case 27: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple$2 = _r$2; - r$2 = _tuple$2[0]; - width$2 = _tuple$2[1]; - if ((r$2 === 10) || (r$2 === -1)) { - /* continue; */ $s = 1; continue; - } - pos$1 = pos$1 + (width$2) >> 0; - pc$1 = inst.Out; - /* goto CheckAndLoop */ $s = 4; continue; - $s = 18; continue; - /* } else if (_1 === (9)) { */ case 12: - _r$3 = i.step(pos$1); /* */ $s = 28; case 28: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple$3 = _r$3; - r$3 = _tuple$3[0]; - width$3 = _tuple$3[1]; - if (r$3 === -1) { - /* continue; */ $s = 1; continue; - } - pos$1 = pos$1 + (width$3) >> 0; - pc$1 = inst.Out; - /* goto CheckAndLoop */ $s = 4; continue; - $s = 18; continue; - /* } else if (_1 === (2)) { */ case 13: - /* */ if (arg) { $s = 29; continue; } - /* */ $s = 30; continue; - /* if (arg) { */ case 29: - (x$7 = b.cap, x$8 = inst.Arg, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8] = pos$1)); - /* continue; */ $s = 1; continue; - $s = 31; continue; - /* } else { */ case 30: - if (inst.Arg < ((b.cap.$length >>> 0))) { - b.push(re, pc$1, (x$9 = b.cap, x$10 = inst.Arg, ((x$10 < 0 || x$10 >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + x$10])), true); - (x$11 = b.cap, x$12 = inst.Arg, ((x$12 < 0 || x$12 >= x$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + x$12] = pos$1)); - } - pc$1 = inst.Out; - /* goto CheckAndLoop */ $s = 4; continue; - /* } */ case 31: - $s = 18; continue; - /* } else if (_1 === (3)) { */ case 14: - _r$4 = i.context(pos$1); /* */ $s = 32; case 32: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - flag = _r$4; - if (!flag.match(((inst.Arg << 24 >>> 24)))) { - /* continue; */ $s = 1; continue; - } - pc$1 = inst.Out; - /* goto CheckAndLoop */ $s = 4; continue; - $s = 18; continue; - /* } else if (_1 === (6)) { */ case 15: - pc$1 = inst.Out; - /* goto CheckAndLoop */ $s = 4; continue; - $s = 18; continue; - /* } else if (_1 === (4)) { */ case 16: - if (b.cap.$length === 0) { - $s = -1; return true; - } - if (b.cap.$length > 1) { - (x$13 = b.cap, (1 >= x$13.$length ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + 1] = pos$1)); - } - old = (x$14 = b.matchcap, (1 >= x$14.$length ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + 1])); - if ((old === -1) || (longest && pos$1 > 0 && pos$1 > old)) { - $copySlice(b.matchcap, b.cap); - } - if (!longest) { - $s = -1; return true; - } - if (pos$1 === b.end) { - $s = -1; return true; - } - /* continue; */ $s = 1; continue; - $s = 18; continue; - /* } else { */ case 17: - $panic(new $String("bad inst")); - /* } */ case 18: - case 5: - $s = 1; continue; - case 2: - $s = -1; return longest && b.matchcap.$length > 1 && (x$15 = b.matchcap, (1 >= x$15.$length ? ($throwRuntimeError("index out of range"), undefined) : x$15.$array[x$15.$offset + 1])) >= 0; - /* */ } return; } var $f = {$blk: tryBacktrack, $c: true, $r, _1, _2, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, _tuple$2, _tuple$3, arg, b, flag, i, inst, l, longest, old, pc, pc$1, pos, pos$1, r, r$1, r$2, r$3, re, width, width$1, width$2, width$3, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; - }; - $ptrType(Regexp).prototype.backtrack = function backtrack(ib, is, pos, ncap, dstCap) { - var {_r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, advance, b, dstCap, end, i, ib, is, ncap, pos, re, startCond, width, x, x$1, $s, $r, $c} = $restore(this, {ib, is, pos, ncap, dstCap}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - re = this; - startCond = re.cond; - if (startCond === 255) { - $s = -1; return sliceType$7.nil; - } - if (!((((startCond & 4) >>> 0) === 0)) && !((pos === 0))) { - $s = -1; return sliceType$7.nil; - } - _r = newBitState(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - b = _r; - _tuple = b.inputs.init($ifaceNil, ib, is); - i = _tuple[0]; - end = _tuple[1]; - b.reset(re.prog, end, ncap); - /* */ if (!((((startCond & 4) >>> 0) === 0))) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!((((startCond & 4) >>> 0) === 0))) { */ case 2: - if (b.cap.$length > 0) { - (x = b.cap, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0] = pos)); - } - _r$1 = re.tryBacktrack(b, i, ((re.prog.Start >>> 0)), pos); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (!_r$1) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (!_r$1) { */ case 5: - freeBitState(b); - $s = -1; return sliceType$7.nil; - /* } */ case 6: - $s = 4; continue; - /* } else { */ case 3: - width = -1; - /* while (true) { */ case 8: - /* if (!(pos <= end && !((width === 0)))) { break; } */ if(!(pos <= end && !((width === 0)))) { $s = 9; continue; } - /* */ if (re.prefix.length > 0) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (re.prefix.length > 0) { */ case 10: - _r$2 = i.index(re, pos); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - advance = _r$2; - if (advance < 0) { - freeBitState(b); - $s = -1; return sliceType$7.nil; - } - pos = pos + (advance) >> 0; - /* } */ case 11: - if (b.cap.$length > 0) { - (x$1 = b.cap, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0] = pos)); - } - _r$3 = re.tryBacktrack(b, i, ((re.prog.Start >>> 0)), pos); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (_r$3) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (_r$3) { */ case 13: - /* goto Match */ $s = 16; continue; - /* } */ case 14: - _r$4 = i.step(pos); /* */ $s = 17; case 17: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _tuple$1 = _r$4; - width = _tuple$1[1]; - pos = pos + (width) >> 0; - $s = 8; continue; - case 9: - freeBitState(b); - $s = -1; return sliceType$7.nil; - /* } */ case 4: - /* Match: */ case 16: - dstCap = $appendSlice(dstCap, b.matchcap); - freeBitState(b); - $s = -1; return dstCap; - /* */ } return; } var $f = {$blk: backtrack, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, advance, b, dstCap, end, i, ib, is, ncap, pos, re, startCond, width, x, x$1, $s};return $f; - }; - ptrType.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Copy", name: "Copy", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "Longest", name: "Longest", pkg: "", typ: $funcType([], [], false)}, {prop: "get", name: "get", pkg: "regexp", typ: $funcType([], [ptrType$3], false)}, {prop: "put", name: "put", pkg: "regexp", typ: $funcType([ptrType$3], [], false)}, {prop: "NumSubexp", name: "NumSubexp", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "SubexpNames", name: "SubexpNames", pkg: "", typ: $funcType([], [sliceType$3], false)}, {prop: "SubexpIndex", name: "SubexpIndex", pkg: "", typ: $funcType([$String], [$Int], false)}, {prop: "LiteralPrefix", name: "LiteralPrefix", pkg: "", typ: $funcType([], [$String, $Bool], false)}, {prop: "MatchReader", name: "MatchReader", pkg: "", typ: $funcType([io.RuneReader], [$Bool], false)}, {prop: "MatchString", name: "MatchString", pkg: "", typ: $funcType([$String], [$Bool], false)}, {prop: "Match", name: "Match", pkg: "", typ: $funcType([sliceType$4], [$Bool], false)}, {prop: "ReplaceAllString", name: "ReplaceAllString", pkg: "", typ: $funcType([$String, $String], [$String], false)}, {prop: "ReplaceAllLiteralString", name: "ReplaceAllLiteralString", pkg: "", typ: $funcType([$String, $String], [$String], false)}, {prop: "ReplaceAllStringFunc", name: "ReplaceAllStringFunc", pkg: "", typ: $funcType([$String, funcType], [$String], false)}, {prop: "replaceAll", name: "replaceAll", pkg: "regexp", typ: $funcType([sliceType$4, $String, $Int, funcType$1], [sliceType$4], false)}, {prop: "ReplaceAll", name: "ReplaceAll", pkg: "", typ: $funcType([sliceType$4, sliceType$4], [sliceType$4], false)}, {prop: "ReplaceAllLiteral", name: "ReplaceAllLiteral", pkg: "", typ: $funcType([sliceType$4, sliceType$4], [sliceType$4], false)}, {prop: "ReplaceAllFunc", name: "ReplaceAllFunc", pkg: "", typ: $funcType([sliceType$4, funcType$2], [sliceType$4], false)}, {prop: "pad", name: "pad", pkg: "regexp", typ: $funcType([sliceType$7], [sliceType$7], false)}, {prop: "allMatches", name: "allMatches", pkg: "regexp", typ: $funcType([$String, sliceType$4, $Int, funcType$3], [], false)}, {prop: "Find", name: "Find", pkg: "", typ: $funcType([sliceType$4], [sliceType$4], false)}, {prop: "FindIndex", name: "FindIndex", pkg: "", typ: $funcType([sliceType$4], [sliceType$7], false)}, {prop: "FindString", name: "FindString", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "FindStringIndex", name: "FindStringIndex", pkg: "", typ: $funcType([$String], [sliceType$7], false)}, {prop: "FindReaderIndex", name: "FindReaderIndex", pkg: "", typ: $funcType([io.RuneReader], [sliceType$7], false)}, {prop: "FindSubmatch", name: "FindSubmatch", pkg: "", typ: $funcType([sliceType$4], [sliceType$8], false)}, {prop: "Expand", name: "Expand", pkg: "", typ: $funcType([sliceType$4, sliceType$4, sliceType$4, sliceType$7], [sliceType$4], false)}, {prop: "ExpandString", name: "ExpandString", pkg: "", typ: $funcType([sliceType$4, $String, $String, sliceType$7], [sliceType$4], false)}, {prop: "expand", name: "expand", pkg: "regexp", typ: $funcType([sliceType$4, $String, sliceType$4, $String, sliceType$7], [sliceType$4], false)}, {prop: "FindSubmatchIndex", name: "FindSubmatchIndex", pkg: "", typ: $funcType([sliceType$4], [sliceType$7], false)}, {prop: "FindStringSubmatch", name: "FindStringSubmatch", pkg: "", typ: $funcType([$String], [sliceType$3], false)}, {prop: "FindStringSubmatchIndex", name: "FindStringSubmatchIndex", pkg: "", typ: $funcType([$String], [sliceType$7], false)}, {prop: "FindReaderSubmatchIndex", name: "FindReaderSubmatchIndex", pkg: "", typ: $funcType([io.RuneReader], [sliceType$7], false)}, {prop: "FindAll", name: "FindAll", pkg: "", typ: $funcType([sliceType$4, $Int], [sliceType$8], false)}, {prop: "FindAllIndex", name: "FindAllIndex", pkg: "", typ: $funcType([sliceType$4, $Int], [sliceType$9], false)}, {prop: "FindAllString", name: "FindAllString", pkg: "", typ: $funcType([$String, $Int], [sliceType$3], false)}, {prop: "FindAllStringIndex", name: "FindAllStringIndex", pkg: "", typ: $funcType([$String, $Int], [sliceType$9], false)}, {prop: "FindAllSubmatch", name: "FindAllSubmatch", pkg: "", typ: $funcType([sliceType$4, $Int], [sliceType$10], false)}, {prop: "FindAllSubmatchIndex", name: "FindAllSubmatchIndex", pkg: "", typ: $funcType([sliceType$4, $Int], [sliceType$9], false)}, {prop: "FindAllStringSubmatch", name: "FindAllStringSubmatch", pkg: "", typ: $funcType([$String, $Int], [sliceType$11], false)}, {prop: "FindAllStringSubmatchIndex", name: "FindAllStringSubmatchIndex", pkg: "", typ: $funcType([$String, $Int], [sliceType$9], false)}, {prop: "Split", name: "Split", pkg: "", typ: $funcType([$String, $Int], [sliceType$3], false)}, {prop: "doOnePass", name: "doOnePass", pkg: "regexp", typ: $funcType([io.RuneReader, sliceType$4, $String, $Int, $Int, sliceType$7], [sliceType$7], false)}, {prop: "doMatch", name: "doMatch", pkg: "regexp", typ: $funcType([io.RuneReader, sliceType$4, $String], [$Bool], false)}, {prop: "doExecute", name: "doExecute", pkg: "regexp", typ: $funcType([io.RuneReader, sliceType$4, $String, $Int, $Int, sliceType$7], [sliceType$7], false)}, {prop: "tryBacktrack", name: "tryBacktrack", pkg: "regexp", typ: $funcType([ptrType$13, input, $Uint32, $Int], [$Bool], false)}, {prop: "backtrack", name: "backtrack", pkg: "regexp", typ: $funcType([sliceType$4, $String, $Int, $Int, sliceType$7], [sliceType$7], false)}]; - ptrType$14.methods = [{prop: "step", name: "step", pkg: "regexp", typ: $funcType([$Int], [$Int32, $Int], false)}, {prop: "canCheckPrefix", name: "canCheckPrefix", pkg: "regexp", typ: $funcType([], [$Bool], false)}, {prop: "hasPrefix", name: "hasPrefix", pkg: "regexp", typ: $funcType([ptrType], [$Bool], false)}, {prop: "index", name: "index", pkg: "regexp", typ: $funcType([ptrType, $Int], [$Int], false)}, {prop: "context", name: "context", pkg: "regexp", typ: $funcType([$Int], [lazyFlag], false)}]; - ptrType$15.methods = [{prop: "step", name: "step", pkg: "regexp", typ: $funcType([$Int], [$Int32, $Int], false)}, {prop: "canCheckPrefix", name: "canCheckPrefix", pkg: "regexp", typ: $funcType([], [$Bool], false)}, {prop: "hasPrefix", name: "hasPrefix", pkg: "regexp", typ: $funcType([ptrType], [$Bool], false)}, {prop: "index", name: "index", pkg: "regexp", typ: $funcType([ptrType, $Int], [$Int], false)}, {prop: "context", name: "context", pkg: "regexp", typ: $funcType([$Int], [lazyFlag], false)}]; - ptrType$16.methods = [{prop: "step", name: "step", pkg: "regexp", typ: $funcType([$Int], [$Int32, $Int], false)}, {prop: "canCheckPrefix", name: "canCheckPrefix", pkg: "regexp", typ: $funcType([], [$Bool], false)}, {prop: "hasPrefix", name: "hasPrefix", pkg: "regexp", typ: $funcType([ptrType], [$Bool], false)}, {prop: "index", name: "index", pkg: "regexp", typ: $funcType([ptrType, $Int], [$Int], false)}, {prop: "context", name: "context", pkg: "regexp", typ: $funcType([$Int], [lazyFlag], false)}]; - ptrType$6.methods = [{prop: "empty", name: "empty", pkg: "regexp", typ: $funcType([], [$Bool], false)}, {prop: "next", name: "next", pkg: "regexp", typ: $funcType([], [$Uint32], false)}, {prop: "clear", name: "clear", pkg: "regexp", typ: $funcType([], [], false)}, {prop: "contains", name: "contains", pkg: "regexp", typ: $funcType([$Uint32], [$Bool], false)}, {prop: "insert", name: "insert", pkg: "regexp", typ: $funcType([$Uint32], [], false)}, {prop: "insertNew", name: "insertNew", pkg: "regexp", typ: $funcType([$Uint32], [], false)}]; - runeSlice.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}]; - ptrType$3.methods = [{prop: "init", name: "init", pkg: "regexp", typ: $funcType([$Int], [], false)}, {prop: "alloc", name: "alloc", pkg: "regexp", typ: $funcType([ptrType$10], [ptrType$4], false)}, {prop: "match", name: "match", pkg: "regexp", typ: $funcType([input, $Int], [$Bool], false)}, {prop: "clear", name: "clear", pkg: "regexp", typ: $funcType([ptrType$17], [], false)}, {prop: "step", name: "step", pkg: "regexp", typ: $funcType([ptrType$17, ptrType$17, $Int, $Int, $Int32, ptrType$11], [], false)}, {prop: "add", name: "add", pkg: "regexp", typ: $funcType([ptrType$17, $Uint32, $Int, sliceType$7, ptrType$11, ptrType$4], [ptrType$4], false)}]; - ptrType$18.methods = [{prop: "newBytes", name: "newBytes", pkg: "regexp", typ: $funcType([sliceType$4], [input], false)}, {prop: "newString", name: "newString", pkg: "regexp", typ: $funcType([$String], [input], false)}, {prop: "newReader", name: "newReader", pkg: "regexp", typ: $funcType([io.RuneReader], [input], false)}, {prop: "clear", name: "clear", pkg: "regexp", typ: $funcType([], [], false)}, {prop: "init", name: "init", pkg: "regexp", typ: $funcType([io.RuneReader, sliceType$4, $String], [input, $Int], false)}]; - lazyFlag.methods = [{prop: "match", name: "match", pkg: "regexp", typ: $funcType([syntax.EmptyOp], [$Bool], false)}]; - ptrType$13.methods = [{prop: "reset", name: "reset", pkg: "regexp", typ: $funcType([ptrType$1, $Int, $Int], [], false)}, {prop: "shouldVisit", name: "shouldVisit", pkg: "regexp", typ: $funcType([$Uint32, $Int], [$Bool], false)}, {prop: "push", name: "push", pkg: "regexp", typ: $funcType([ptrType, $Uint32, $Int, $Bool], [], false)}]; - Regexp.init("regexp", [{prop: "expr", name: "expr", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "prog", name: "prog", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "onepass", name: "onepass", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "numSubexp", name: "numSubexp", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "maxBitStateLen", name: "maxBitStateLen", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "subexpNames", name: "subexpNames", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "prefix", name: "prefix", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "prefixBytes", name: "prefixBytes", embedded: false, exported: false, typ: sliceType$4, tag: ""}, {prop: "prefixRune", name: "prefixRune", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "prefixEnd", name: "prefixEnd", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "mpool", name: "mpool", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "matchcap", name: "matchcap", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "prefixComplete", name: "prefixComplete", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "cond", name: "cond", embedded: false, exported: false, typ: syntax.EmptyOp, tag: ""}, {prop: "minInputLen", name: "minInputLen", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "longest", name: "longest", embedded: false, exported: false, typ: $Bool, tag: ""}]); - input.init([{prop: "canCheckPrefix", name: "canCheckPrefix", pkg: "regexp", typ: $funcType([], [$Bool], false)}, {prop: "context", name: "context", pkg: "regexp", typ: $funcType([$Int], [lazyFlag], false)}, {prop: "hasPrefix", name: "hasPrefix", pkg: "regexp", typ: $funcType([ptrType], [$Bool], false)}, {prop: "index", name: "index", pkg: "regexp", typ: $funcType([ptrType, $Int], [$Int], false)}, {prop: "step", name: "step", pkg: "regexp", typ: $funcType([$Int], [$Int32, $Int], false)}]); - inputString.init("regexp", [{prop: "str", name: "str", embedded: false, exported: false, typ: $String, tag: ""}]); - inputBytes.init("regexp", [{prop: "str", name: "str", embedded: false, exported: false, typ: sliceType$4, tag: ""}]); - inputReader.init("regexp", [{prop: "r", name: "r", embedded: false, exported: false, typ: io.RuneReader, tag: ""}, {prop: "atEOT", name: "atEOT", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: $Int, tag: ""}]); - onePassProg.init("", [{prop: "Inst", name: "Inst", embedded: false, exported: true, typ: sliceType$12, tag: ""}, {prop: "Start", name: "Start", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "NumCap", name: "NumCap", embedded: false, exported: true, typ: $Int, tag: ""}]); - onePassInst.init("", [{prop: "Inst", name: "Inst", embedded: true, exported: true, typ: syntax.Inst, tag: ""}, {prop: "Next", name: "Next", embedded: false, exported: true, typ: sliceType$2, tag: ""}]); - queueOnePass.init("regexp", [{prop: "sparse", name: "sparse", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "dense", name: "dense", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "nextIndex", name: "nextIndex", embedded: false, exported: false, typ: $Uint32, tag: ""}]); - runeSlice.init($Int32); - queue.init("regexp", [{prop: "sparse", name: "sparse", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "dense", name: "dense", embedded: false, exported: false, typ: sliceType$5, tag: ""}]); - entry.init("regexp", [{prop: "pc", name: "pc", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "t", name: "t", embedded: false, exported: false, typ: ptrType$4, tag: ""}]); - thread.init("regexp", [{prop: "inst", name: "inst", embedded: false, exported: false, typ: ptrType$10, tag: ""}, {prop: "cap", name: "cap", embedded: false, exported: false, typ: sliceType$7, tag: ""}]); - machine.init("regexp", [{prop: "re", name: "re", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "p", name: "p", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "q0", name: "q0", embedded: false, exported: false, typ: queue, tag: ""}, {prop: "q1", name: "q1", embedded: false, exported: false, typ: queue, tag: ""}, {prop: "pool", name: "pool", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "matched", name: "matched", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "matchcap", name: "matchcap", embedded: false, exported: false, typ: sliceType$7, tag: ""}, {prop: "inputs", name: "inputs", embedded: false, exported: false, typ: inputs, tag: ""}]); - inputs.init("regexp", [{prop: "bytes", name: "bytes", embedded: false, exported: false, typ: inputBytes, tag: ""}, {prop: "string", name: "string", embedded: false, exported: false, typ: inputString, tag: ""}, {prop: "reader", name: "reader", embedded: false, exported: false, typ: inputReader, tag: ""}]); - onePassMachine.init("regexp", [{prop: "inputs", name: "inputs", embedded: false, exported: false, typ: inputs, tag: ""}, {prop: "matchcap", name: "matchcap", embedded: false, exported: false, typ: sliceType$7, tag: ""}]); - job.init("regexp", [{prop: "pc", name: "pc", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "arg", name: "arg", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: $Int, tag: ""}]); - bitState.init("regexp", [{prop: "end", name: "end", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "cap", name: "cap", embedded: false, exported: false, typ: sliceType$7, tag: ""}, {prop: "matchcap", name: "matchcap", embedded: false, exported: false, typ: sliceType$7, tag: ""}, {prop: "jobs", name: "jobs", embedded: false, exported: false, typ: sliceType$15, tag: ""}, {prop: "visited", name: "visited", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "inputs", name: "inputs", embedded: false, exported: false, typ: inputs, tag: ""}]); - }; - $init = function() { - $pkg.$init = function() {}; - /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: - $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = nosync.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = io.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = syntax.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = sort.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = strconv.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = strings.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = unicode.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = utf8.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - matchPool = arrayType.zero(); - specialBytes = arrayType$1.zero(); - onePassPool = new nosync.Pool.ptr(sliceType.nil, $throwNilPointerError); - arrayNoInts = arrayType$2.zero(); - bitStatePool = new nosync.Pool.ptr(sliceType.nil, $throwNilPointerError); - matchSize = $toNativeArray($kindInt, [128, 512, 2048, 16384, 0]); - noRune = new sliceType$1([]); - noNext = new sliceType$2([4294967295]); - anyRuneNotNL = new sliceType$1([0, 9, 11, 1114111]); - anyRune = new sliceType$1([0, 1114111]); - init(); - /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; - }; - $pkg.$init = $init; - return $pkg; -})(); -$packages["go/types"] = (function() { - var $pkg = {}, $init, bytes, heap, errors, fmt, ast, constant, typeparams, parser, token, errors$1, io, math, regexp, runtime, sort, strconv, strings, sync, atomic, unicode, utf8, version, builtinId, Union, Term, unifier, tparamsList, term, Qualifier, typeWriter, _TypeSet, byUniqueMethodName, TypeParam, TypeParamList, TypeList, Type, Tuple, termlist, substMap, subster, Struct, stmtContext, valueMap, valueType, Slice, Sizes, StdSizes, Signature, SelectionKind, Selection, Scope, lazyObject, declInfo, inSourceOrder, ifacePair, Pointer, Package, operandMode, operand, objset, Object, object, color, PkgName, Const, TypeName, Var, Func, Label, Builtin, Nil, Named, instance, namedState, monoGraph, monoVertex, monoEdge, MethodSet, methodSet, Map, embeddedType, instanceLookup, block, Interface, dependency, graphNode, nodeSet, nodeQueue, tpWalker, cycleFinder, opPredicates, exprKind, error_, errorDesc, positioner, posSpan, atPos, decl, importDecl, constDecl, varDecl, typeDecl, funcDecl, Context, ctxtEntry, exprInfo, environment, importKey, dotImportKey, action, actionDesc, Checker, cleaner, bailout, Chan, ChanDir, BasicKind, BasicInfo, Basic, Array, Error, ArgumentError, Importer, ImportMode, ImporterFrom, Config, Info, TypeAndValue, Instance, Initializer, methodInfo, ptrType, ptrType$1, ptrType$2, sliceType, ptrType$3, sliceType$1, ptrType$4, ptrType$5, sliceType$2, sliceType$3, ptrType$6, ptrType$7, structType, structType$1, ptrType$8, sliceType$4, sliceType$5, sliceType$6, ptrType$9, sliceType$7, ptrType$10, ptrType$11, ptrType$12, ptrType$13, ptrType$14, sliceType$8, sliceType$9, ptrType$15, ptrType$16, sliceType$10, ptrType$17, ptrType$18, sliceType$11, ptrType$19, sliceType$12, ptrType$20, ptrType$21, ptrType$22, sliceType$13, ptrType$23, ptrType$24, sliceType$14, ptrType$25, ptrType$26, ptrType$27, ptrType$28, ptrType$29, ptrType$30, ptrType$31, ptrType$32, ptrType$33, ptrType$34, ptrType$35, ptrType$36, ptrType$37, ptrType$38, ptrType$39, ptrType$40, ptrType$41, ptrType$42, ptrType$43, ptrType$44, ptrType$45, ptrType$46, ptrType$47, ptrType$48, ptrType$49, ptrType$50, ptrType$51, ptrType$52, arrayType, ptrType$53, ptrType$54, ptrType$55, ptrType$56, sliceType$15, sliceType$16, ptrType$57, ptrType$58, ptrType$59, sliceType$17, ptrType$60, ptrType$61, sliceType$18, ptrType$62, ptrType$63, ptrType$64, ptrType$65, ptrType$66, ptrType$67, ptrType$68, ptrType$69, ptrType$70, ptrType$71, ptrType$72, ptrType$73, ptrType$74, ptrType$75, ptrType$76, ptrType$77, ptrType$78, ptrType$79, ptrType$80, ptrType$81, ptrType$82, sliceType$19, ptrType$83, ptrType$84, sliceType$20, ptrType$85, ptrType$86, ptrType$87, ptrType$88, sliceType$21, ptrType$89, ptrType$90, sliceType$22, sliceType$23, sliceType$24, ptrType$91, sliceType$25, arrayType$1, ptrType$92, sliceType$26, ptrType$93, sliceType$27, ptrType$94, ptrType$95, ptrType$96, sliceType$28, sliceType$29, arrayType$2, ptrType$97, ptrType$98, ptrType$99, ptrType$100, ptrType$101, ptrType$102, sliceType$30, ptrType$103, sliceType$31, ptrType$104, ptrType$105, ptrType$106, ptrType$107, ptrType$108, sliceType$32, sliceType$33, sliceType$34, ptrType$109, ptrType$110, ptrType$111, sliceType$35, sliceType$36, sliceType$37, sliceType$38, sliceType$39, sliceType$40, funcType$1, ptrType$112, sliceType$41, arrayType$3, ptrType$113, ptrType$114, ptrType$115, mapType, funcType$2, funcType$3, ptrType$116, funcType$4, funcType$5, mapType$1, mapType$2, ptrType$117, funcType$6, ptrType$118, mapType$3, mapType$4, ptrType$119, ptrType$120, mapType$5, mapType$6, ptrType$121, ptrType$122, mapType$7, mapType$8, ptrType$123, mapType$9, ptrType$124, mapType$10, sliceType$42, funcType$7, funcType$8, mapType$11, mapType$12, mapType$13, mapType$14, mapType$15, mapType$16, mapType$17, mapType$18, mapType$19, mapType$20, mapType$21, ptrType$125, funcType$9, mapType$22, mapType$23, mapType$24, mapType$25, mapType$26, mapType$27, universeIota, universeByte, universeRune, universeAny, universeError, universeComparable, invalidTypeSet, invalidTypeSet$24ptr, lastID, lastID$24ptr, emptyMethodSet, emptyMethodSet$24ptr, unaryOpPredicates, binaryOpPredicates, goVersionRx, _r, allTermlist, topTypeSet, topTypeSet$24ptr, gcArchSizes, operandModeString, emptyInterface, emptyInterface$24ptr, gccgoArchSizes, stdSizes, op2str1, op2str2, predeclaredFuncs, errBadCgo, cgoPrefixes, basicSizes, predeclaredConsts, aliases, parseGoVersion, makeObjList, defPredeclaredTypes, defPredeclaredConsts, defPredeclaredNil, defPredeclaredFuncs, init, def, NewUnion, NewTerm, parseUnion, parseTilde, overlappingTerm, flattenUnion, newUnifier, tparamIndex, goTypeName, RelativeTo, TypeString, WriteType, WriteSignature, newTypeWriter, newTypeHasher, subscript, computeInterfaceTypeSet, intersectTermLists, sortMethods, assertSortedMethods, computeUnionTypeSet, nextID, NewTypeParam, newTypeList, bindTParams, under, coreType, coreString, match, NewTuple, makeSubstMap, makeRenameMap, substVar, substFunc, replaceRecvType, NewStruct, embeddedFieldIdent, trimTrailingEmptyStmts, assignOp, goVal, rangeKeyVal, NewSlice, isSyncAtomicAlign64, SizesFor, align, NewSignatureType, SelectionString, NewScope, resolve, hasBreak, hasBreakList, validatedImportPath, dir, isBoolean, isInteger, isUnsigned, isFloat, isComplex, isNumeric, isString, isIntegerOrFloat, isConstType, isBasic, allBoolean, allInteger, allUnsigned, allNumeric, allString, allOrdered, allNumericOrString, allBasic, hasName, isTyped, isUntyped, IsInterface, isNonTypeParamInterface, isTypeParam, hasEmptyTypeset, isGeneric, Comparable, comparable, hasNil, identical, identicalInstance, Default, NewPointer, NewPackage, operandString, Id, colorFor, NewPkgName, NewConst, NewTypeName, NewVar, NewParam, NewField, NewFunc, NewLabel, newBuiltin, writeObject, packagePrefix, ObjectString, writeFuncName, NewNamed, safeUnderlying, NewMethodSet, NewMap, LookupFieldOrMethod, lookupFieldOrMethod, consolidateMultiples, lookupType, isInterfacePtr, deref, derefStructPtr, concat, fieldIndex, lookupMethod, NewInterfaceType, Instantiate, mentions, findPath, dependencyGraph, typeParamsString, isParameterized, coreTerm, ExprString, WriteExpr, writeSigExpr, writeFieldList, writeIdentList, writeExprList, init$1, opName, underIs, isShift, isComparison, fitsFloat32, roundFloat32, fitsFloat64, roundFloat64, representableConst, init$2, keyVal, assert, unreachable, sprintf, newErrorf, inNode, spanOf, stripAnnotations, pathString, firstInSrc, isUintptr, isUnsafePointer, isPointer, isBytesOrRunes, NewContext, NewChecker, instantiatedIdent, NewChan, hasVarSize, makeSig, arrayPtrDeref, unparen, operandTypes, varTypes, measure, NewArray, Identical, IdenticalIgnoreTags; - bytes = $packages["bytes"]; - heap = $packages["container/heap"]; - errors = $packages["errors"]; - fmt = $packages["fmt"]; - ast = $packages["go/ast"]; - constant = $packages["go/constant"]; - typeparams = $packages["go/internal/typeparams"]; - parser = $packages["go/parser"]; - token = $packages["go/token"]; - errors$1 = $packages["internal/types/errors"]; - io = $packages["io"]; - math = $packages["math"]; - regexp = $packages["regexp"]; - runtime = $packages["runtime"]; - sort = $packages["sort"]; - strconv = $packages["strconv"]; - strings = $packages["strings"]; - sync = $packages["sync"]; - atomic = $packages["sync/atomic"]; - unicode = $packages["unicode"]; - utf8 = $packages["unicode/utf8"]; - version = $newType(0, $kindStruct, "types.version", true, "go/types", false, function(major_, minor_) { - this.$val = this; - if (arguments.length === 0) { - this.major = 0; - this.minor = 0; - return; - } - this.major = major_; - this.minor = minor_; - }); - builtinId = $newType(4, $kindInt, "types.builtinId", true, "go/types", false, null); - Union = $newType(0, $kindStruct, "types.Union", true, "go/types", true, function(terms_) { - this.$val = this; - if (arguments.length === 0) { - this.terms = sliceType$12.nil; - return; - } - this.terms = terms_; - }); - Term = $newType(0, $kindStruct, "types.Term", true, "go/types", true, function(tilde_, typ_) { - this.$val = this; - if (arguments.length === 0) { - this.tilde = false; - this.typ = $ifaceNil; - return; - } - this.tilde = tilde_; - this.typ = typ_; - }); - unifier = $newType(0, $kindStruct, "types.unifier", true, "go/types", false, function(exact_, x_, y_, types_, depth_) { - this.$val = this; - if (arguments.length === 0) { - this.exact = false; - this.x = new tparamsList.ptr(ptrType$22.nil, sliceType$9.nil, sliceType$13.nil); - this.y = new tparamsList.ptr(ptrType$22.nil, sliceType$9.nil, sliceType$13.nil); - this.types = sliceType$2.nil; - this.depth = 0; - return; - } - this.exact = exact_; - this.x = x_; - this.y = y_; - this.types = types_; - this.depth = depth_; - }); - tparamsList = $newType(0, $kindStruct, "types.tparamsList", true, "go/types", false, function(unifier_, tparams_, indices_) { - this.$val = this; - if (arguments.length === 0) { - this.unifier = ptrType$22.nil; - this.tparams = sliceType$9.nil; - this.indices = sliceType$13.nil; - return; - } - this.unifier = unifier_; - this.tparams = tparams_; - this.indices = indices_; - }); - term = $newType(0, $kindStruct, "types.term", true, "go/types", false, function(tilde_, typ_) { - this.$val = this; - if (arguments.length === 0) { - this.tilde = false; - this.typ = $ifaceNil; - return; - } - this.tilde = tilde_; - this.typ = typ_; - }); - Qualifier = $newType(4, $kindFunc, "types.Qualifier", true, "go/types", true, null); - typeWriter = $newType(0, $kindStruct, "types.typeWriter", true, "go/types", false, function(buf_, seen_, qf_, ctxt_, tparams_, paramNames_, tpSubscripts_, pkgInfo_) { - this.$val = this; - if (arguments.length === 0) { - this.buf = ptrType$114.nil; - this.seen = false; - this.qf = $throwNilPointerError; - this.ctxt = ptrType$51.nil; - this.tparams = ptrType$48.nil; - this.paramNames = false; - this.tpSubscripts = false; - this.pkgInfo = false; - return; - } - this.buf = buf_; - this.seen = seen_; - this.qf = qf_; - this.ctxt = ctxt_; - this.tparams = tparams_; - this.paramNames = paramNames_; - this.tpSubscripts = tpSubscripts_; - this.pkgInfo = pkgInfo_; - }); - _TypeSet = $newType(0, $kindStruct, "types._TypeSet", true, "go/types", false, function(methods_, terms_, comparable_) { - this.$val = this; - if (arguments.length === 0) { - this.methods = sliceType.nil; - this.terms = termlist.nil; - this.comparable = false; - return; - } - this.methods = methods_; - this.terms = terms_; - this.comparable = comparable_; - }); - byUniqueMethodName = $newType(12, $kindSlice, "types.byUniqueMethodName", true, "go/types", false, null); - TypeParam = $newType(0, $kindStruct, "types.TypeParam", true, "go/types", true, function(check_, id_, obj_, index_, bound_) { - this.$val = this; - if (arguments.length === 0) { - this.check = ptrType$5.nil; - this.id = new $Uint64(0, 0); - this.obj = ptrType$17.nil; - this.index = 0; - this.bound = $ifaceNil; - return; - } - this.check = check_; - this.id = id_; - this.obj = obj_; - this.index = index_; - this.bound = bound_; - }); - TypeParamList = $newType(0, $kindStruct, "types.TypeParamList", true, "go/types", true, function(tparams_) { - this.$val = this; - if (arguments.length === 0) { - this.tparams = sliceType$9.nil; - return; - } - this.tparams = tparams_; - }); - TypeList = $newType(0, $kindStruct, "types.TypeList", true, "go/types", true, function(types_) { - this.$val = this; - if (arguments.length === 0) { - this.types = sliceType$2.nil; - return; - } - this.types = types_; + this.types = types_; }); Type = $newType(8, $kindInterface, "types.Type", true, "go/types", true, null); Tuple = $newType(0, $kindStruct, "types.Tuple", true, "go/types", true, function(vars_) { this.$val = this; if (arguments.length === 0) { - this.vars = sliceType$10.nil; + this.vars = sliceType$9.nil; return; } this.vars = vars_; @@ -82018,9 +76105,9 @@ $packages["go/types"] = (function() { if (arguments.length === 0) { this.pos = 0; this.smap = false; - this.check = ptrType$5.nil; - this.expanding = ptrType$9.nil; - this.ctxt = ptrType$51.nil; + this.check = ptrType$6.nil; + this.expanding = ptrType$10.nil; + this.ctxt = ptrType$52.nil; return; } this.pos = pos_; @@ -82032,8 +76119,8 @@ $packages["go/types"] = (function() { Struct = $newType(0, $kindStruct, "types.Struct", true, "go/types", true, function(fields_, tags_) { this.$val = this; if (arguments.length === 0) { - this.fields = sliceType$10.nil; - this.tags = sliceType$5.nil; + this.fields = sliceType$9.nil; + this.tags = sliceType$13.nil; return; } this.fields = fields_; @@ -82073,12 +76160,12 @@ $packages["go/types"] = (function() { Signature = $newType(0, $kindStruct, "types.Signature", true, "go/types", true, function(rparams_, tparams_, scope_, recv_, params_, results_, variadic_) { this.$val = this; if (arguments.length === 0) { - this.rparams = ptrType$48.nil; - this.tparams = ptrType$48.nil; + this.rparams = ptrType$49.nil; + this.tparams = ptrType$49.nil; this.scope = ptrType.nil; - this.recv = ptrType$16.nil; - this.params = ptrType$15.nil; - this.results = ptrType$15.nil; + this.recv = ptrType$17.nil; + this.params = ptrType$16.nil; + this.results = ptrType$16.nil; this.variadic = false; return; } @@ -82097,7 +76184,7 @@ $packages["go/types"] = (function() { this.kind = 0; this.recv = $ifaceNil; this.obj = $ifaceNil; - this.index = sliceType$13.nil; + this.index = sliceType$24.nil; this.indirect = false; return; } @@ -82111,7 +76198,7 @@ $packages["go/types"] = (function() { this.$val = this; if (arguments.length === 0) { this.parent = ptrType.nil; - this.children = sliceType$20.nil; + this.children = sliceType$19.nil; this.number = 0; this.elems = false; this.pos = 0; @@ -82147,12 +76234,12 @@ $packages["go/types"] = (function() { this.$val = this; if (arguments.length === 0) { this.file = ptrType.nil; - this.lhs = sliceType$10.nil; + this.lhs = sliceType$9.nil; this.vtyp = $ifaceNil; this.init = $ifaceNil; this.inherited = false; this.tdecl = ptrType$90.nil; - this.fdecl = ptrType$87.nil; + this.fdecl = ptrType$88.nil; this.deps = false; return; } @@ -82169,15 +76256,25 @@ $packages["go/types"] = (function() { ifacePair = $newType(0, $kindStruct, "types.ifacePair", true, "go/types", false, function(x_, y_, prev_) { this.$val = this; if (arguments.length === 0) { - this.x = ptrType$13.nil; - this.y = ptrType$13.nil; - this.prev = ptrType$23.nil; + this.x = ptrType$14.nil; + this.y = ptrType$14.nil; + this.prev = ptrType$24.nil; return; } this.x = x_; this.y = y_; this.prev = prev_; }); + comparer = $newType(0, $kindStruct, "types.comparer", true, "go/types", false, function(ignoreTags_, ignoreInvalids_) { + this.$val = this; + if (arguments.length === 0) { + this.ignoreTags = false; + this.ignoreInvalids = false; + return; + } + this.ignoreTags = ignoreTags_; + this.ignoreInvalids = ignoreInvalids_; + }); Pointer = $newType(0, $kindStruct, "types.Pointer", true, "go/types", true, function(base_) { this.$val = this; if (arguments.length === 0) { @@ -82186,25 +76283,27 @@ $packages["go/types"] = (function() { } this.base = base_; }); - Package = $newType(0, $kindStruct, "types.Package", true, "go/types", true, function(path_, name_, scope_, complete_, imports_, fake_, cgo_) { + Package = $newType(0, $kindStruct, "types.Package", true, "go/types", true, function(path_, name_, scope_, imports_, complete_, fake_, cgo_, goVersion_) { this.$val = this; if (arguments.length === 0) { this.path = ""; this.name = ""; this.scope = ptrType.nil; + this.imports = sliceType$23.nil; this.complete = false; - this.imports = sliceType$24.nil; this.fake = false; this.cgo = false; + this.goVersion = ""; return; } this.path = path_; this.name = name_; this.scope = scope_; - this.complete = complete_; this.imports = imports_; + this.complete = complete_; this.fake = fake_; this.cgo = cgo_; + this.goVersion = goVersion_; }); operandMode = $newType(1, $kindUint8, "types.operandMode", true, "go/types", false, null); operand = $newType(0, $kindStruct, "types.operand", true, "go/types", false, function(mode_, expr_, typ_, val_, id_) { @@ -82285,7 +76384,7 @@ $packages["go/types"] = (function() { this.embedded = false; this.isField = false; this.used = false; - this.origin = ptrType$16.nil; + this.origin = ptrType$17.nil; return; } this.object = object_; @@ -82337,14 +76436,14 @@ $packages["go/types"] = (function() { Named = $newType(0, $kindStruct, "types.Named", true, "go/types", true, function(check_, obj_, fromRHS_, inst_, mu_, state__, underlying_, tparams_, methods_, loader_) { this.$val = this; if (arguments.length === 0) { - this.check = ptrType$5.nil; - this.obj = ptrType$17.nil; + this.check = ptrType$6.nil; + this.obj = ptrType$18.nil; this.fromRHS = $ifaceNil; - this.inst = ptrType$52.nil; + this.inst = ptrType$53.nil; this.mu = new sync.Mutex.ptr(0, 0); this.state_ = 0; this.underlying = $ifaceNil; - this.tparams = ptrType$48.nil; + this.tparams = ptrType$49.nil; this.methods = sliceType.nil; this.loader = $throwNilPointerError; return; @@ -82363,10 +76462,10 @@ $packages["go/types"] = (function() { instance = $newType(0, $kindStruct, "types.instance", true, "go/types", false, function(orig_, targs_, expandedMethods_, ctxt_) { this.$val = this; if (arguments.length === 0) { - this.orig = ptrType$9.nil; - this.targs = ptrType$56.nil; + this.orig = ptrType$10.nil; + this.targs = ptrType$57.nil; this.expandedMethods = 0; - this.ctxt = ptrType$51.nil; + this.ctxt = ptrType$52.nil; return; } this.orig = orig_; @@ -82395,7 +76494,7 @@ $packages["go/types"] = (function() { this.weight = 0; this.pre = 0; this.len = 0; - this.obj = ptrType$17.nil; + this.obj = ptrType$18.nil; return; } this.weight = weight_; @@ -82442,7 +76541,7 @@ $packages["go/types"] = (function() { this.$val = this; if (arguments.length === 0) { this.typ = $ifaceNil; - this.index = sliceType$13.nil; + this.index = sliceType$24.nil; this.indirect = false; this.multiples = false; return; @@ -82465,8 +76564,8 @@ $packages["go/types"] = (function() { block = $newType(0, $kindStruct, "types.block", true, "go/types", false, function(parent_, lstmt_, labels_) { this.$val = this; if (arguments.length === 0) { - this.parent = ptrType$92.nil; - this.lstmt = ptrType$65.nil; + this.parent = ptrType$95.nil; + this.lstmt = ptrType$66.nil; this.labels = false; return; } @@ -82477,13 +76576,13 @@ $packages["go/types"] = (function() { Interface = $newType(0, $kindStruct, "types.Interface", true, "go/types", true, function(check_, methods_, embeddeds_, embedPos_, implicit_, complete_, tset_) { this.$val = this; if (arguments.length === 0) { - this.check = ptrType$5.nil; + this.check = ptrType$6.nil; this.methods = sliceType.nil; - this.embeddeds = sliceType$2.nil; - this.embedPos = ptrType$6.nil; + this.embeddeds = sliceType$3.nil; + this.embedPos = ptrType$7.nil; this.implicit = false; this.complete = false; - this.tset = ptrType$7.nil; + this.tset = ptrType$8.nil; return; } this.check = check_; @@ -82513,26 +76612,26 @@ $packages["go/types"] = (function() { }); nodeSet = $newType(4, $kindMap, "types.nodeSet", true, "go/types", false, null); nodeQueue = $newType(12, $kindSlice, "types.nodeQueue", true, "go/types", false, null); - tpWalker = $newType(0, $kindStruct, "types.tpWalker", true, "go/types", false, function(seen_, tparams_) { + tpWalker = $newType(0, $kindStruct, "types.tpWalker", true, "go/types", false, function(tparams_, seen_) { this.$val = this; if (arguments.length === 0) { + this.tparams = sliceType$8.nil; this.seen = false; - this.tparams = sliceType$9.nil; return; } - this.seen = seen_; this.tparams = tparams_; + this.seen = seen_; }); - cycleFinder = $newType(0, $kindStruct, "types.cycleFinder", true, "go/types", false, function(tparams_, types_, seen_) { + cycleFinder = $newType(0, $kindStruct, "types.cycleFinder", true, "go/types", false, function(tparams_, inferred_, seen_) { this.$val = this; if (arguments.length === 0) { - this.tparams = sliceType$9.nil; - this.types = sliceType$2.nil; + this.tparams = sliceType$8.nil; + this.inferred = sliceType$3.nil; this.seen = false; return; } this.tparams = tparams_; - this.types = types_; + this.inferred = inferred_; this.seen = seen_; }); opPredicates = $newType(4, $kindMap, "types.opPredicates", true, "go/types", false, null); @@ -82554,7 +76653,7 @@ $packages["go/types"] = (function() { if (arguments.length === 0) { this.posn = $ifaceNil; this.format = ""; - this.args = sliceType$6.nil; + this.args = sliceType$5.nil; return; } this.posn = posn_; @@ -82579,7 +76678,7 @@ $packages["go/types"] = (function() { importDecl = $newType(0, $kindStruct, "types.importDecl", true, "go/types", false, function(spec_) { this.$val = this; if (arguments.length === 0) { - this.spec = ptrType$106.nil; + this.spec = ptrType$111.nil; return; } this.spec = spec_; @@ -82587,10 +76686,10 @@ $packages["go/types"] = (function() { constDecl = $newType(0, $kindStruct, "types.constDecl", true, "go/types", false, function(spec_, iota_, typ_, init_, inherited_) { this.$val = this; if (arguments.length === 0) { - this.spec = ptrType$88.nil; + this.spec = ptrType$89.nil; this.iota = 0; this.typ = $ifaceNil; - this.init = sliceType$11.nil; + this.init = sliceType$10.nil; this.inherited = false; return; } @@ -82603,7 +76702,7 @@ $packages["go/types"] = (function() { varDecl = $newType(0, $kindStruct, "types.varDecl", true, "go/types", false, function(spec_) { this.$val = this; if (arguments.length === 0) { - this.spec = ptrType$88.nil; + this.spec = ptrType$89.nil; return; } this.spec = spec_; @@ -82619,7 +76718,7 @@ $packages["go/types"] = (function() { funcDecl = $newType(0, $kindStruct, "types.funcDecl", true, "go/types", false, function(decl_) { this.$val = this; if (arguments.length === 0) { - this.decl = ptrType$87.nil; + this.decl = ptrType$88.nil; return; } this.decl = decl_; @@ -82642,7 +76741,7 @@ $packages["go/types"] = (function() { this.$val = this; if (arguments.length === 0) { this.orig = $ifaceNil; - this.targs = sliceType$2.nil; + this.targs = sliceType$3.nil; this.instance = $ifaceNil; return; } @@ -82655,7 +76754,7 @@ $packages["go/types"] = (function() { if (arguments.length === 0) { this.isLhs = false; this.mode = 0; - this.typ = ptrType$8.nil; + this.typ = ptrType$4.nil; this.val = $ifaceNil; return; } @@ -82667,13 +76766,13 @@ $packages["go/types"] = (function() { environment = $newType(0, $kindStruct, "types.environment", true, "go/types", false, function(decl_, scope_, pos_, iota_, errpos_, inTParamList_, sig_, isPanic_, hasLabel_, hasCallOrRecv_) { this.$val = this; if (arguments.length === 0) { - this.decl = ptrType$58.nil; + this.decl = ptrType$59.nil; this.scope = ptrType.nil; this.pos = 0; this.iota = $ifaceNil; this.errpos = $ifaceNil; this.inTParamList = false; - this.sig = ptrType$27.nil; + this.sig = ptrType$29.nil; this.isPanic = false; this.hasLabel = false; this.hasCallOrRecv = false; @@ -82714,7 +76813,7 @@ $packages["go/types"] = (function() { this.$val = this; if (arguments.length === 0) { this.f = $throwNilPointerError; - this.desc = ptrType$109.nil; + this.desc = ptrType$114.nil; return; } this.f = f_; @@ -82725,21 +76824,21 @@ $packages["go/types"] = (function() { if (arguments.length === 0) { this.pos = $ifaceNil; this.format = ""; - this.args = sliceType$6.nil; + this.args = sliceType$5.nil; return; } this.pos = pos_; this.format = format_; this.args = args_; }); - Checker = $newType(0, $kindStruct, "types.Checker", true, "go/types", true, function(conf_, ctxt_, fset_, pkg_, Info_, version_, nextID_, objMap_, impMap_, valids_, pkgPathMap_, seenPkgMap_, files_, imports_, dotImportMap_, recvTParamMap_, brokenAliases_, unionTypeSets_, mono_, firstErr_, methods_, untyped_, delayed_, objPath_, cleaners_, environment_, indent_) { + Checker = $newType(0, $kindStruct, "types.Checker", true, "go/types", true, function(conf_, ctxt_, fset_, pkg_, Info_, version_, nextID_, objMap_, impMap_, valids_, pkgPathMap_, seenPkgMap_, files_, posVers_, imports_, dotImportMap_, recvTParamMap_, brokenAliases_, unionTypeSets_, mono_, firstErr_, methods_, untyped_, delayed_, objPath_, cleaners_, environment_, indent_) { this.$val = this; if (arguments.length === 0) { - this.conf = ptrType$101.nil; - this.ctxt = ptrType$51.nil; - this.fset = ptrType$24.nil; + this.conf = ptrType$106.nil; + this.ctxt = ptrType$52.nil; + this.fset = ptrType$25.nil; this.pkg = ptrType$1.nil; - this.Info = ptrType$110.nil; + this.Info = ptrType$116.nil; this.version = new version.ptr(0, 0); this.nextID = new $Uint64(0, 0); this.objMap = false; @@ -82748,6 +76847,7 @@ $packages["go/types"] = (function() { this.pkgPathMap = false; this.seenPkgMap = false; this.files = sliceType$35.nil; + this.posVers = false; this.imports = sliceType$36.nil; this.dotImportMap = false; this.recvTParamMap = false; @@ -82758,9 +76858,9 @@ $packages["go/types"] = (function() { this.methods = false; this.untyped = false; this.delayed = sliceType$39.nil; - this.objPath = sliceType$8.nil; + this.objPath = sliceType$7.nil; this.cleaners = sliceType$40.nil; - this.environment = new environment.ptr(ptrType$58.nil, ptrType.nil, 0, $ifaceNil, $ifaceNil, false, ptrType$27.nil, false, false, false); + this.environment = new environment.ptr(ptrType$59.nil, ptrType.nil, 0, $ifaceNil, $ifaceNil, false, ptrType$29.nil, false, false, false); this.indent = 0; return; } @@ -82777,6 +76877,7 @@ $packages["go/types"] = (function() { this.pkgPathMap = pkgPathMap_; this.seenPkgMap = seenPkgMap_; this.files = files_; + this.posVers = posVers_; this.imports = imports_; this.dotImportMap = dotImportMap_; this.recvTParamMap = recvTParamMap_; @@ -82832,7 +76933,7 @@ $packages["go/types"] = (function() { Error = $newType(0, $kindStruct, "types.Error", true, "go/types", true, function(Fset_, Pos_, Msg_, Soft_, go116code_, go116start_, go116end_) { this.$val = this; if (arguments.length === 0) { - this.Fset = ptrType$24.nil; + this.Fset = ptrType$25.nil; this.Pos = 0; this.Msg = ""; this.Soft = false; @@ -82862,19 +76963,20 @@ $packages["go/types"] = (function() { Importer = $newType(8, $kindInterface, "types.Importer", true, "go/types", true, null); ImportMode = $newType(4, $kindInt, "types.ImportMode", true, "go/types", true, null); ImporterFrom = $newType(8, $kindInterface, "types.ImporterFrom", true, "go/types", true, null); - Config = $newType(0, $kindStruct, "types.Config", true, "go/types", true, function(Context_, GoVersion_, IgnoreFuncBodies_, FakeImportC_, go115UsesCgo_, Error_, Importer_, Sizes_, DisableUnusedImportCheck_, oldComparableSemantics_) { + Config = $newType(0, $kindStruct, "types.Config", true, "go/types", true, function(Context_, GoVersion_, IgnoreFuncBodies_, FakeImportC_, go115UsesCgo_, _Trace_, Error_, Importer_, Sizes_, DisableUnusedImportCheck_, _ErrorURL_) { this.$val = this; if (arguments.length === 0) { - this.Context = ptrType$51.nil; + this.Context = ptrType$52.nil; this.GoVersion = ""; this.IgnoreFuncBodies = false; this.FakeImportC = false; this.go115UsesCgo = false; + this._Trace = false; this.Error = $throwNilPointerError; this.Importer = $ifaceNil; this.Sizes = $ifaceNil; this.DisableUnusedImportCheck = false; - this.oldComparableSemantics = false; + this._ErrorURL = ""; return; } this.Context = Context_; @@ -82882,11 +76984,12 @@ $packages["go/types"] = (function() { this.IgnoreFuncBodies = IgnoreFuncBodies_; this.FakeImportC = FakeImportC_; this.go115UsesCgo = go115UsesCgo_; + this._Trace = _Trace_; this.Error = Error_; this.Importer = Importer_; this.Sizes = Sizes_; this.DisableUnusedImportCheck = DisableUnusedImportCheck_; - this.oldComparableSemantics = oldComparableSemantics_; + this._ErrorURL = _ErrorURL_; }); Info = $newType(0, $kindStruct, "types.Info", true, "go/types", true, function(Types_, Instances_, Defs_, Uses_, Implicits_, Selections_, Scopes_, InitOrder_) { this.$val = this; @@ -82925,7 +77028,7 @@ $packages["go/types"] = (function() { Instance = $newType(0, $kindStruct, "types.Instance", true, "go/types", true, function(TypeArgs_, Type_) { this.$val = this; if (arguments.length === 0) { - this.TypeArgs = ptrType$56.nil; + this.TypeArgs = ptrType$57.nil; this.Type = $ifaceNil; return; } @@ -82935,7 +77038,7 @@ $packages["go/types"] = (function() { Initializer = $newType(0, $kindStruct, "types.Initializer", true, "go/types", true, function(Lhs_, Rhs_) { this.$val = this; if (arguments.length === 0) { - this.Lhs = sliceType$10.nil; + this.Lhs = sliceType$9.nil; this.Rhs = $ifaceNil; return; } @@ -82947,7 +77050,7 @@ $packages["go/types"] = (function() { if (arguments.length === 0) { this.obj = ptrType$2.nil; this.ptr = false; - this.recv = ptrType$30.nil; + this.recv = ptrType$31.nil; return; } this.obj = obj_; @@ -82959,7 +77062,8 @@ $packages["go/types"] = (function() { $pkg.Union = Union; $pkg.Term = Term; $pkg.unifier = unifier; - $pkg.tparamsList = tparamsList; + $pkg.unifyMode = unifyMode; + $pkg.typeParamsById = typeParamsById; $pkg.term = term; $pkg.Qualifier = Qualifier; $pkg.typeWriter = typeWriter; @@ -82988,6 +77092,7 @@ $packages["go/types"] = (function() { $pkg.declInfo = declInfo; $pkg.inSourceOrder = inSourceOrder; $pkg.ifacePair = ifacePair; + $pkg.comparer = comparer; $pkg.Pointer = Pointer; $pkg.Package = Package; $pkg.operandMode = operandMode; @@ -83071,24568 +77176,32325 @@ $packages["go/types"] = (function() { sliceType = $sliceType(ptrType$2); ptrType$3 = $ptrType(Selection); sliceType$1 = $sliceType(ptrType$3); - ptrType$4 = $ptrType(term); - ptrType$5 = $ptrType(Checker); - sliceType$2 = $sliceType(Type); - sliceType$3 = $sliceType(token.Pos); - ptrType$6 = $ptrType(sliceType$3); - ptrType$7 = $ptrType(_TypeSet); - structType = $structType("go/types", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "nargs", name: "nargs", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "variadic", name: "variadic", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "kind", name: "kind", embedded: false, exported: false, typ: exprKind, tag: ""}]); - structType$1 = $structType("go/types", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "kind", name: "kind", embedded: false, exported: false, typ: BasicKind, tag: ""}, {prop: "val", name: "val", embedded: false, exported: false, typ: constant.Value, tag: ""}]); - ptrType$8 = $ptrType(Basic); - sliceType$4 = $sliceType(ptrType$8); - sliceType$5 = $sliceType($String); - sliceType$6 = $sliceType($emptyInterface); - ptrType$9 = $ptrType(Named); - sliceType$7 = $sliceType(ptrType$9); - ptrType$10 = $ptrType(Array); - ptrType$11 = $ptrType(Struct); - ptrType$12 = $ptrType(Union); - ptrType$13 = $ptrType(Interface); - ptrType$14 = $ptrType(TypeParam); - sliceType$8 = $sliceType(Object); - sliceType$9 = $sliceType(ptrType$14); - ptrType$15 = $ptrType(Tuple); - ptrType$16 = $ptrType(Var); - sliceType$10 = $sliceType(ptrType$16); - ptrType$17 = $ptrType(TypeName); - ptrType$18 = $ptrType(Builtin); - sliceType$11 = $sliceType(ast.Expr); - ptrType$19 = $ptrType(Term); - sliceType$12 = $sliceType(ptrType$19); - ptrType$20 = $ptrType(ast.UnaryExpr); - ptrType$21 = $ptrType(ast.BinaryExpr); - ptrType$22 = $ptrType(unifier); - sliceType$13 = $sliceType($Int); - ptrType$23 = $ptrType(ifacePair); - ptrType$24 = $ptrType(token.FileSet); - sliceType$14 = $sliceType($Uint8); - ptrType$25 = $ptrType(Slice); - ptrType$26 = $ptrType(Pointer); - ptrType$27 = $ptrType(Signature); - ptrType$28 = $ptrType(Map); - ptrType$29 = $ptrType(Chan); - ptrType$30 = $ptrType(ast.Ident); - ptrType$31 = $ptrType(PkgName); - ptrType$32 = $ptrType(Const); - ptrType$33 = $ptrType(Nil); - ptrType$34 = $ptrType($String); - ptrType$35 = $ptrType(ast.BadExpr); - ptrType$36 = $ptrType(ast.SelectorExpr); - ptrType$37 = $ptrType(ast.IndexExpr); - ptrType$38 = $ptrType(ast.IndexListExpr); - ptrType$39 = $ptrType(ast.ParenExpr); - ptrType$40 = $ptrType(ast.ArrayType); - ptrType$41 = $ptrType(ast.Ellipsis); - ptrType$42 = $ptrType(ast.StructType); - ptrType$43 = $ptrType(ast.StarExpr); - ptrType$44 = $ptrType(ast.FuncType); - ptrType$45 = $ptrType(ast.InterfaceType); - ptrType$46 = $ptrType(ast.MapType); - ptrType$47 = $ptrType(ast.ChanType); - ptrType$48 = $ptrType(TypeParamList); - ptrType$49 = $ptrType(ast.FieldList); - ptrType$50 = $ptrType(constant.Value); - ptrType$51 = $ptrType(Context); - ptrType$52 = $ptrType(instance); + ptrType$4 = $ptrType(Basic); + sliceType$2 = $sliceType(ptrType$4); + structType = $structType("go/types", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "kind", name: "kind", embedded: false, exported: false, typ: BasicKind, tag: ""}, {prop: "val", name: "val", embedded: false, exported: false, typ: constant.Value, tag: ""}]); + structType$1 = $structType("go/types", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "nargs", name: "nargs", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "variadic", name: "variadic", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "kind", name: "kind", embedded: false, exported: false, typ: exprKind, tag: ""}]); + ptrType$5 = $ptrType(term); + ptrType$6 = $ptrType(Checker); + sliceType$3 = $sliceType(Type); + sliceType$4 = $sliceType(token.Pos); + ptrType$7 = $ptrType(sliceType$4); + ptrType$8 = $ptrType(_TypeSet); + sliceType$5 = $sliceType($emptyInterface); + ptrType$9 = $ptrType(token.File); + ptrType$10 = $ptrType(Named); + sliceType$6 = $sliceType(ptrType$10); + ptrType$11 = $ptrType(Array); + ptrType$12 = $ptrType(Struct); + ptrType$13 = $ptrType(Union); + ptrType$14 = $ptrType(Interface); + ptrType$15 = $ptrType(TypeParam); + sliceType$7 = $sliceType(Object); + sliceType$8 = $sliceType(ptrType$15); + ptrType$16 = $ptrType(Tuple); + ptrType$17 = $ptrType(Var); + sliceType$9 = $sliceType(ptrType$17); + ptrType$18 = $ptrType(TypeName); + ptrType$19 = $ptrType(Builtin); + sliceType$10 = $sliceType(ast.Expr); + ptrType$20 = $ptrType(Term); + sliceType$11 = $sliceType(ptrType$20); + ptrType$21 = $ptrType(ast.UnaryExpr); + ptrType$22 = $ptrType(ast.BinaryExpr); + ptrType$23 = $ptrType(Type); + ptrType$24 = $ptrType(ifacePair); + ptrType$25 = $ptrType(token.FileSet); + sliceType$12 = $sliceType($Uint8); + ptrType$26 = $ptrType(Chan); + ptrType$27 = $ptrType(Slice); + ptrType$28 = $ptrType(Pointer); + ptrType$29 = $ptrType(Signature); + ptrType$30 = $ptrType(Map); + ptrType$31 = $ptrType(ast.Ident); + ptrType$32 = $ptrType(PkgName); + ptrType$33 = $ptrType(Const); + ptrType$34 = $ptrType(Nil); + ptrType$35 = $ptrType($String); + ptrType$36 = $ptrType(ast.BadExpr); + ptrType$37 = $ptrType(ast.SelectorExpr); + ptrType$38 = $ptrType(ast.IndexExpr); + ptrType$39 = $ptrType(ast.IndexListExpr); + ptrType$40 = $ptrType(ast.ParenExpr); + ptrType$41 = $ptrType(ast.ArrayType); + ptrType$42 = $ptrType(ast.Ellipsis); + ptrType$43 = $ptrType(ast.StructType); + ptrType$44 = $ptrType(ast.StarExpr); + ptrType$45 = $ptrType(ast.FuncType); + ptrType$46 = $ptrType(ast.InterfaceType); + ptrType$47 = $ptrType(ast.MapType); + ptrType$48 = $ptrType(ast.ChanType); + sliceType$13 = $sliceType($String); + ptrType$49 = $ptrType(TypeParamList); + ptrType$50 = $ptrType(ast.FieldList); + ptrType$51 = $ptrType(constant.Value); + ptrType$52 = $ptrType(Context); + ptrType$53 = $ptrType(instance); arrayType = $arrayType($Uint8, 96); - ptrType$53 = $ptrType(strings.Builder); - ptrType$54 = $ptrType(objset); - ptrType$55 = $ptrType($Uint32); - ptrType$56 = $ptrType(TypeList); - sliceType$15 = $sliceType($Bool); - sliceType$16 = $sliceType(ptrType$4); - ptrType$57 = $ptrType(ast.BasicLit); - ptrType$58 = $ptrType(declInfo); - ptrType$59 = $ptrType(ast.EmptyStmt); - sliceType$17 = $sliceType(ast.Stmt); - ptrType$60 = $ptrType(ast.CaseClause); - ptrType$61 = $ptrType(ast.CommClause); - sliceType$18 = $sliceType(valueType); - ptrType$62 = $ptrType(operand); - ptrType$63 = $ptrType(ast.BadStmt); - ptrType$64 = $ptrType(ast.DeclStmt); - ptrType$65 = $ptrType(ast.LabeledStmt); - ptrType$66 = $ptrType(ast.ExprStmt); - ptrType$67 = $ptrType(ast.SendStmt); - ptrType$68 = $ptrType(ast.IncDecStmt); - ptrType$69 = $ptrType(ast.AssignStmt); - ptrType$70 = $ptrType(ast.GoStmt); - ptrType$71 = $ptrType(ast.DeferStmt); - ptrType$72 = $ptrType(ast.ReturnStmt); - ptrType$73 = $ptrType(ast.BranchStmt); - ptrType$74 = $ptrType(ast.BlockStmt); - ptrType$75 = $ptrType(ast.IfStmt); - ptrType$76 = $ptrType(ast.SwitchStmt); - ptrType$77 = $ptrType(ast.TypeSwitchStmt); - ptrType$78 = $ptrType(ast.SelectStmt); - ptrType$79 = $ptrType(ast.ForStmt); - ptrType$80 = $ptrType(ast.RangeStmt); - ptrType$81 = $ptrType(ast.Object); - ptrType$82 = $ptrType(ast.TypeAssertExpr); - sliceType$19 = $sliceType($Int64); - ptrType$83 = $ptrType(StdSizes); - ptrType$84 = $ptrType(ptrType$48); - sliceType$20 = $sliceType(ptrType); - ptrType$85 = $ptrType(lazyObject); - ptrType$86 = $ptrType(ast.CallExpr); - ptrType$87 = $ptrType(ast.FuncDecl); - ptrType$88 = $ptrType(ast.ValueSpec); - sliceType$21 = $sliceType(methodInfo); - ptrType$89 = $ptrType(token.File); + ptrType$54 = $ptrType(strings.Builder); + ptrType$55 = $ptrType(objset); + ptrType$56 = $ptrType($Uint32); + ptrType$57 = $ptrType(TypeList); + sliceType$14 = $sliceType($Bool); + sliceType$15 = $sliceType(ptrType$5); + ptrType$58 = $ptrType(ast.BasicLit); + ptrType$59 = $ptrType(declInfo); + ptrType$60 = $ptrType(ast.EmptyStmt); + sliceType$16 = $sliceType(ast.Stmt); + ptrType$61 = $ptrType(ast.CaseClause); + ptrType$62 = $ptrType(ast.CommClause); + sliceType$17 = $sliceType(valueType); + ptrType$63 = $ptrType(operand); + ptrType$64 = $ptrType(ast.BadStmt); + ptrType$65 = $ptrType(ast.DeclStmt); + ptrType$66 = $ptrType(ast.LabeledStmt); + ptrType$67 = $ptrType(ast.ExprStmt); + ptrType$68 = $ptrType(ast.SendStmt); + ptrType$69 = $ptrType(ast.IncDecStmt); + ptrType$70 = $ptrType(ast.AssignStmt); + ptrType$71 = $ptrType(ast.GoStmt); + ptrType$72 = $ptrType(ast.DeferStmt); + ptrType$73 = $ptrType(ast.ReturnStmt); + ptrType$74 = $ptrType(ast.BranchStmt); + ptrType$75 = $ptrType(ast.BlockStmt); + ptrType$76 = $ptrType(ast.IfStmt); + ptrType$77 = $ptrType(ast.SwitchStmt); + ptrType$78 = $ptrType(ast.TypeSwitchStmt); + ptrType$79 = $ptrType(ast.SelectStmt); + ptrType$80 = $ptrType(ast.ForStmt); + ptrType$81 = $ptrType(ast.RangeStmt); + ptrType$82 = $ptrType(ast.Object); + ptrType$83 = $ptrType(ast.TypeAssertExpr); + sliceType$18 = $sliceType($Int64); + ptrType$84 = $ptrType(StdSizes); + ptrType$85 = $ptrType(ptrType$49); + sliceType$19 = $sliceType(ptrType); + ptrType$86 = $ptrType(lazyObject); + ptrType$87 = $ptrType(ast.CallExpr); + ptrType$88 = $ptrType(ast.FuncDecl); + ptrType$89 = $ptrType(ast.ValueSpec); + sliceType$20 = $sliceType(methodInfo); ptrType$90 = $ptrType(ast.TypeSpec); - sliceType$22 = $sliceType(ptrType$30); - sliceType$23 = $sliceType(ptrType$17); - sliceType$24 = $sliceType(ptrType$1); - ptrType$91 = $ptrType(Label); + ptrType$91 = $ptrType(methodInfo); + sliceType$21 = $sliceType(ptrType$31); + sliceType$22 = $sliceType(ptrType$18); + sliceType$23 = $sliceType(ptrType$1); + ptrType$92 = $ptrType(object); + ptrType$93 = $ptrType(Label); + ptrType$94 = $ptrType(monoVertex); + sliceType$24 = $sliceType($Int); sliceType$25 = $sliceType(embeddedType); - arrayType$1 = $arrayType(ptrType$9, 3); - ptrType$92 = $ptrType(block); - sliceType$26 = $sliceType(ptrType$73); - ptrType$93 = $ptrType(ast.GenDecl); - sliceType$27 = $sliceType(ptrType$51); - ptrType$94 = $ptrType(nodeQueue); - ptrType$95 = $ptrType(graphNode); - ptrType$96 = $ptrType(nodeSet); - sliceType$28 = $sliceType(ptrType$95); - sliceType$29 = $sliceType(ptrType$62); + arrayType$1 = $arrayType(ptrType$10, 3); + ptrType$95 = $ptrType(block); + sliceType$26 = $sliceType(ptrType$74); + ptrType$96 = $ptrType(ast.GenDecl); + sliceType$27 = $sliceType(ptrType$52); + ptrType$97 = $ptrType(nodeQueue); + ptrType$98 = $ptrType(graphNode); + ptrType$99 = $ptrType(nodeSet); + sliceType$28 = $sliceType(ptrType$98); arrayType$2 = $arrayType($Int64, 3); - ptrType$97 = $ptrType(ast.KeyValueExpr); - ptrType$98 = $ptrType(ast.FuncLit); - ptrType$99 = $ptrType(ast.CompositeLit); - ptrType$100 = $ptrType(ast.SliceExpr); - ptrType$101 = $ptrType(Config); - ptrType$102 = $ptrType(Initializer); - sliceType$30 = $sliceType(ptrType$102); - ptrType$103 = $ptrType($error); + ptrType$100 = $ptrType(ast.KeyValueExpr); + ptrType$101 = $ptrType(ast.FuncLit); + ptrType$102 = $ptrType(ast.CompositeLit); + ptrType$103 = $ptrType(ast.SliceExpr); + ptrType$104 = $ptrType(typeparams.IndexExpr); + sliceType$29 = $sliceType(ptrType$63); + ptrType$105 = $ptrType(Initializer); + sliceType$30 = $sliceType(ptrType$105); + ptrType$106 = $ptrType(Config); + ptrType$107 = $ptrType($error); sliceType$31 = $sliceType(errorDesc); - ptrType$104 = $ptrType(error_); - ptrType$105 = $ptrType(ast.BadDecl); - ptrType$106 = $ptrType(ast.ImportSpec); - ptrType$107 = $ptrType(ast.CommentGroup); - ptrType$108 = $ptrType(ast.Field); - sliceType$32 = $sliceType(ptrType$108); - sliceType$33 = $sliceType(ptrType$32); + ptrType$108 = $ptrType(errorDesc); + ptrType$109 = $ptrType(error_); + ptrType$110 = $ptrType(ast.BadDecl); + ptrType$111 = $ptrType(ast.ImportSpec); + ptrType$112 = $ptrType(ast.CommentGroup); + ptrType$113 = $ptrType(ast.Field); + sliceType$32 = $sliceType(ptrType$113); + sliceType$33 = $sliceType(ptrType$33); sliceType$34 = $sliceType(ctxtEntry); - ptrType$109 = $ptrType(actionDesc); - ptrType$110 = $ptrType(Info); - ptrType$111 = $ptrType(ast.File); - sliceType$35 = $sliceType(ptrType$111); - sliceType$36 = $sliceType(ptrType$31); + ptrType$114 = $ptrType(actionDesc); + ptrType$115 = $ptrType(action); + ptrType$116 = $ptrType(Info); + ptrType$117 = $ptrType(ast.File); + sliceType$35 = $sliceType(ptrType$117); + sliceType$36 = $sliceType(ptrType$32); sliceType$37 = $sliceType(monoVertex); sliceType$38 = $sliceType(monoEdge); sliceType$39 = $sliceType(action); sliceType$40 = $sliceType(cleaner); funcType$1 = $funcType([], [], false); - ptrType$112 = $ptrType(typeparams.IndexExpr); - sliceType$41 = $sliceType(operand); - arrayType$3 = $arrayType(Type, 2); - ptrType$113 = $ptrType(tparamsList); - ptrType$114 = $ptrType(bytes.Buffer); - ptrType$115 = $ptrType(typeWriter); - mapType = $mapType(Type, $Bool); - funcType$2 = $funcType([ptrType$4], [$Bool], false); + sliceType$41 = $sliceType(sliceType$3); + sliceType$42 = $sliceType(sliceType$10); + ptrType$118 = $ptrType(unifier); + mapType = $mapType(ptrType$15, ptrType$23); + ptrType$119 = $ptrType(bytes.Buffer); + ptrType$120 = $ptrType(typeWriter); + mapType$1 = $mapType(Type, $Bool); + funcType$2 = $funcType([ptrType$5], [$Bool], false); funcType$3 = $funcType([Type], [$Bool], false); - ptrType$116 = $ptrType(subster); + ptrType$121 = $ptrType(subster); funcType$4 = $funcType([], [Object], false); funcType$5 = $funcType([Object, Object], [], false); - mapType$1 = $mapType($String, Object); - mapType$2 = $mapType(Object, $Bool); - ptrType$117 = $ptrType(object); - funcType$6 = $funcType([ptrType$9], [sliceType$9, Type, sliceType], false); - ptrType$118 = $ptrType(monoGraph); - mapType$3 = $mapType(ptrType$14, ptrType$14); - mapType$4 = $mapType(ptrType$17, $Int); - ptrType$119 = $ptrType(MethodSet); - ptrType$120 = $ptrType(instanceLookup); - mapType$5 = $mapType(ptrType$9, sliceType$7); - mapType$6 = $mapType($String, ptrType$65); - ptrType$121 = $ptrType(tpWalker); - ptrType$122 = $ptrType(cycleFinder); - mapType$7 = $mapType($String, sliceType$34); - mapType$8 = $mapType(Type, $Int); - ptrType$123 = $ptrType(environment); - mapType$9 = $mapType(ptrType$86, $Bool); - ptrType$124 = $ptrType(action); - mapType$10 = $mapType(Type, ast.Expr); - sliceType$42 = $sliceType(ast.Decl); - funcType$7 = $funcType([decl], [], false); - funcType$8 = $funcType([Type], [Type], false); - mapType$11 = $mapType(Object, ptrType$58); - mapType$12 = $mapType(importKey, ptrType$1); - mapType$13 = $mapType($String, $Bool); - mapType$14 = $mapType($String, mapType$13); - mapType$15 = $mapType(ptrType$1, $Bool); - mapType$16 = $mapType(dotImportKey, ptrType$31); - mapType$17 = $mapType(ptrType$30, ptrType$14); - mapType$18 = $mapType(ptrType$17, $Bool); - mapType$19 = $mapType(ptrType$12, ptrType$7); - mapType$20 = $mapType(ptrType$17, sliceType); - mapType$21 = $mapType(ast.Expr, exprInfo); - ptrType$125 = $ptrType(ArgumentError); - funcType$9 = $funcType([$error], [], false); - mapType$22 = $mapType(ast.Expr, TypeAndValue); - mapType$23 = $mapType(ptrType$30, Instance); - mapType$24 = $mapType(ptrType$30, Object); - mapType$25 = $mapType(ast.Node, Object); - mapType$26 = $mapType(ptrType$36, ptrType$3); - mapType$27 = $mapType(ast.Node, ptrType); + mapType$2 = $mapType($String, Object); + mapType$3 = $mapType(Object, $Bool); + ptrType$122 = $ptrType(comparer); + funcType$6 = $funcType([ptrType$10], [sliceType$8, Type, sliceType], false); + ptrType$123 = $ptrType(monoGraph); + mapType$4 = $mapType(ptrType$15, ptrType$15); + mapType$5 = $mapType(ptrType$18, $Int); + ptrType$124 = $ptrType(MethodSet); + ptrType$125 = $ptrType(instanceLookup); + mapType$6 = $mapType(ptrType$10, sliceType$6); + mapType$7 = $mapType($String, ptrType$66); + ptrType$126 = $ptrType(tpWalker); + ptrType$127 = $ptrType(cycleFinder); + mapType$8 = $mapType($String, sliceType$34); + mapType$9 = $mapType(Type, $Int); + ptrType$128 = $ptrType(environment); + mapType$10 = $mapType(ptrType$87, $Bool); + mapType$11 = $mapType(Type, ast.Expr); + funcType$7 = $funcType([Type, Type], [$Bool], false); + sliceType$43 = $sliceType(ast.Decl); + funcType$8 = $funcType([decl], [], false); + funcType$9 = $funcType([Type], [Type], false); + mapType$12 = $mapType(Object, ptrType$59); + mapType$13 = $mapType(importKey, ptrType$1); + mapType$14 = $mapType($String, $Bool); + mapType$15 = $mapType($String, mapType$14); + mapType$16 = $mapType(ptrType$1, $Bool); + mapType$17 = $mapType(ptrType$9, version); + mapType$18 = $mapType(dotImportKey, ptrType$32); + mapType$19 = $mapType(ptrType$31, ptrType$15); + mapType$20 = $mapType(ptrType$18, $Bool); + mapType$21 = $mapType(ptrType$13, ptrType$8); + mapType$22 = $mapType(ptrType$18, sliceType); + mapType$23 = $mapType(ast.Expr, exprInfo); + ptrType$129 = $ptrType(ArgumentError); + funcType$10 = $funcType([$error], [], false); + mapType$24 = $mapType(ast.Expr, TypeAndValue); + mapType$25 = $mapType(ptrType$31, Instance); + mapType$26 = $mapType(ptrType$31, Object); + mapType$27 = $mapType(ast.Node, Object); + mapType$28 = $mapType(ptrType$37, ptrType$3); + mapType$29 = $mapType(ast.Node, ptrType); + $ptrType(version).prototype.String = function String() { + var {$24r, _r, v, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + v = this; + _r = fmt.Sprintf("go%d.%d", new sliceType$5([new $Int(v.major), new $Int(v.minor)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String, $c: true, $r, $24r, _r, v, $s};return $f; + }; + version.prototype.String = function(...$args) { return this.$val.String(...$args); }; + $ptrType(version).prototype.equal = function equal(u) { + var u, v; + v = this; + return (v.major === u.major) && (v.minor === u.minor); + }; + version.prototype.equal = function(...$args) { return this.$val.equal(...$args); }; + $ptrType(version).prototype.before = function before(u) { + var u, v; + v = this; + return v.major < u.major || (v.major === u.major) && v.minor < u.minor; + }; + version.prototype.before = function(...$args) { return this.$val.before(...$args); }; + $ptrType(version).prototype.after = function after(u) { + var u, v; + v = this; + return v.major > u.major || (v.major === u.major) && v.minor > u.minor; + }; + version.prototype.after = function(...$args) { return this.$val.after(...$args); }; + parseGoVersion = function parseGoVersion$1(s) { + var {$24r, $24r$1, $24r$2, $24r$3, _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, _tuple$2, _tuple$3, bad, err, i, s, v, $s, $r, $c} = $restore(this, {s}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = [s]; + v = new version.ptr(0, 0); + err = $ifaceNil; + bad = (function(s) { return function parseGoVersion·func1() { + var {$24r, _r, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = fmt.Errorf("invalid Go version syntax %q", new sliceType$5([new $String(s[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = [new version.ptr(0, 0), _r]; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: parseGoVersion·func1, $c: true, $r, $24r, _r, $s};return $f; + }; })(s); + if (s[0] === "") { + $s = -1; return [v, err]; + } + /* */ if (!strings.HasPrefix(s[0], "go")) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!strings.HasPrefix(s[0], "go")) { */ case 1: + _r = bad(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + version.copy(v, _tuple[0]); + err = _tuple[1]; + $24r = [v, err]; + $s = 4; case 4: return $24r; + /* } */ case 2: + s[0] = $substring(s[0], 2); + i = 0; + /* while (true) { */ case 5: + /* if (!(i < s[0].length && 48 <= s[0].charCodeAt(i) && s[0].charCodeAt(i) <= 57)) { break; } */ if(!(i < s[0].length && 48 <= s[0].charCodeAt(i) && s[0].charCodeAt(i) <= 57)) { $s = 6; continue; } + /* */ if (i >= 10 || (i === 0) && (s[0].charCodeAt(i) === 48)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (i >= 10 || (i === 0) && (s[0].charCodeAt(i) === 48)) { */ case 7: + _r$1 = bad(); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + version.copy(v, _tuple$1[0]); + err = _tuple$1[1]; + $24r$1 = [v, err]; + $s = 10; case 10: return $24r$1; + /* } */ case 8: + v.major = (($imul(10, v.major)) + ((s[0].charCodeAt(i) >> 0)) >> 0) - 48 >> 0; + i = i + (1) >> 0; + $s = 5; continue; + case 6: + if (i > 0 && (i === s[0].length)) { + $s = -1; return [v, err]; + } + /* */ if ((i === 0) || !((s[0].charCodeAt(i) === 46))) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if ((i === 0) || !((s[0].charCodeAt(i) === 46))) { */ case 11: + _r$2 = bad(); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$2 = _r$2; + version.copy(v, _tuple$2[0]); + err = _tuple$2[1]; + $24r$2 = [v, err]; + $s = 14; case 14: return $24r$2; + /* } */ case 12: + s[0] = $substring(s[0], (i + 1 >> 0)); + if (s[0] === "0") { + $s = -1; return [v, err]; + } + i = 0; + /* while (true) { */ case 15: + /* if (!(i < s[0].length && 48 <= s[0].charCodeAt(i) && s[0].charCodeAt(i) <= 57)) { break; } */ if(!(i < s[0].length && 48 <= s[0].charCodeAt(i) && s[0].charCodeAt(i) <= 57)) { $s = 16; continue; } + /* */ if (i >= 10 || (i === 0) && (s[0].charCodeAt(i) === 48)) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (i >= 10 || (i === 0) && (s[0].charCodeAt(i) === 48)) { */ case 17: + _r$3 = bad(); /* */ $s = 19; case 19: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$3 = _r$3; + version.copy(v, _tuple$3[0]); + err = _tuple$3[1]; + $24r$3 = [v, err]; + $s = 20; case 20: return $24r$3; + /* } */ case 18: + v.minor = (($imul(10, v.minor)) + ((s[0].charCodeAt(i) >> 0)) >> 0) - 48 >> 0; + i = i + (1) >> 0; + $s = 15; continue; + case 16: + $s = -1; return [v, err]; + /* */ } return; } var $f = {$blk: parseGoVersion$1, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, _tuple$2, _tuple$3, bad, err, i, s, v, $s};return $f; + }; $ptrType(Checker).prototype.langCompat = function langCompat(lit) { - var {check, lit, radix, s, $s, $r, $c} = $restore(this, {lit}); + var {_r, _v, check, lit, radix, s, $s, $r, $c} = $restore(this, {lit}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + s = lit.Value; + if (s.length <= 2) { _v = true; $s = 3; continue s; } + _r = check.allowVersion(check.pkg, lit, $clone(go1_13, version)); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r; case 3: + /* */ if (_v) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_v) { */ case 1: + $s = -1; return; + /* } */ case 2: + /* */ if (strings.Contains(s, "_")) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (strings.Contains(s, "_")) { */ case 5: + $r = check.versionErrorf(lit, $clone(go1_13, version), "underscores in numeric literals", sliceType$5.nil); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 6: + if (!((s.charCodeAt(0) === 48))) { + $s = -1; return; + } + radix = s.charCodeAt(1); + /* */ if ((radix === 98) || (radix === 66)) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if ((radix === 98) || (radix === 66)) { */ case 8: + $r = check.versionErrorf(lit, $clone(go1_13, version), "binary literals", sliceType$5.nil); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 9: + /* */ if ((radix === 111) || (radix === 79)) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if ((radix === 111) || (radix === 79)) { */ case 11: + $r = check.versionErrorf(lit, $clone(go1_13, version), "0o/0O-style octal literals", sliceType$5.nil); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 12: + /* */ if (!((lit.Kind === 5)) && ((radix === 120) || (radix === 88))) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (!((lit.Kind === 5)) && ((radix === 120) || (radix === 88))) { */ case 14: + $r = check.versionErrorf(lit, $clone(go1_13, version), "hexadecimal floating-point literals", sliceType$5.nil); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 15: + $s = -1; return; + /* */ } return; } var $f = {$blk: langCompat, $c: true, $r, _r, _v, check, lit, radix, s, $s};return $f; + }; + $ptrType(Checker).prototype.allowVersion = function allowVersion(pkg, at, v) { + var {_entry, _r, _r$1, _tuple, at, check, ok, pkg, src, v, $s, $r, $c} = $restore(this, {pkg, at, v}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + if (!(pkg === check.pkg)) { + $s = -1; return true; + } + /* */ if (!(check.posVers === false)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(check.posVers === false)) { */ case 1: + _r = at.Pos(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = check.fset.File(_r); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = (_entry = $mapIndex(check.posVers,ptrType$9.keyFor(_r$1)), _entry !== undefined ? [_entry.v, true] : [new version.ptr(0, 0), false]); + src = $clone(_tuple[0], version); + ok = _tuple[1]; + if (ok && src.major >= 1) { + $s = -1; return !$clone(src, version).before($clone(v, version)); + } + /* } */ case 2: + $s = -1; return $clone(check.version, version).equal($clone(go0_0, version)) || !$clone(check.version, version).before($clone(v, version)); + /* */ } return; } var $f = {$blk: allowVersion, $c: true, $r, _entry, _r, _r$1, _tuple, at, check, ok, pkg, src, v, $s};return $f; + }; + $ptrType(Checker).prototype.verifyVersionf = function verifyVersionf(at, v, format, args) { + var {_r, args, at, check, format, v, $s, $r, $c} = $restore(this, {at, v, format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _r = check.allowVersion(check.pkg, at, $clone(v, version)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!_r) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!_r) { */ case 1: + $r = check.versionErrorf(at, $clone(v, version), format, args); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; + /* } */ case 2: + $s = -1; return true; + /* */ } return; } var $f = {$blk: verifyVersionf, $c: true, $r, _r, args, at, check, format, v, $s};return $f; + }; + $ptrType(Checker).prototype.validType = function validType(typ) { + var {_r, check, typ, $s, $r, $c} = $restore(this, {typ}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _r = check.validType0(typ, sliceType$6.nil, sliceType$6.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + $s = -1; return; + /* */ } return; } var $f = {$blk: validType, $c: true, $r, _r, check, typ, $s};return $f; + }; + $ptrType(Checker).prototype.validType0 = function validType0(typ, nest, path) { + var {$24r, $24r$1, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, check, e, etyp, f, i, inst, nest, p, path, start, t, t$1, t$2, t$3, t$4, t$5, t$6, t$7, targ, tparam, typ, x, $s, $r, $c} = $restore(this, {typ, nest, path}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _ref = typ; + /* */ if (_ref === $ifaceNil) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$12, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$15, true)[1]) { $s = 7; continue; } + /* */ $s = 8; continue; + /* switch (0) { default: if (_ref === $ifaceNil) { */ case 1: + t = _ref; + if (false) { + $panic(new $String("validType0(nil)")); + } + $s = 8; continue; + /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 2: + t$1 = _ref.$val; + _r = check.validType0(t$1.elem, nest, path); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 10; case 10: return $24r; + /* } else if ($assertType(_ref, ptrType$12, true)[1]) { */ case 3: + t$2 = _ref.$val; + _ref$1 = t$2.fields; + _i = 0; + /* while (true) { */ case 11: + /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 12; continue; } + f = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + _r$1 = check.validType0(f.object.typ, nest, path); /* */ $s = 15; case 15: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (!_r$1) { */ case 13: + $s = -1; return false; + /* } */ case 14: + _i++; + $s = 11; continue; + case 12: + $s = 8; continue; + /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 4: + t$3 = _ref.$val; + _ref$2 = t$3.terms; + _i$1 = 0; + /* while (true) { */ case 16: + /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 17; continue; } + t$7 = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); + _r$2 = check.validType0(t$7.typ, nest, path); /* */ $s = 20; case 20: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (!_r$2) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (!_r$2) { */ case 18: + $s = -1; return false; + /* } */ case 19: + _i$1++; + $s = 16; continue; + case 17: + $s = 8; continue; + /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 5: + t$4 = _ref.$val; + _ref$3 = t$4.embeddeds; + _i$2 = 0; + /* while (true) { */ case 21: + /* if (!(_i$2 < _ref$3.$length)) { break; } */ if(!(_i$2 < _ref$3.$length)) { $s = 22; continue; } + etyp = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]); + _r$3 = check.validType0(etyp, nest, path); /* */ $s = 25; case 25: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!_r$3) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (!_r$3) { */ case 23: + $s = -1; return false; + /* } */ case 24: + _i$2++; + $s = 21; continue; + case 22: + $s = 8; continue; + /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 6: + t$5 = _ref.$val; + _r$4 = check.valids.lookup(t$5); /* */ $s = 28; case 28: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (!(_r$4 === ptrType$10.nil)) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (!(_r$4 === ptrType$10.nil)) { */ case 26: + /* break; */ $s = 8; continue; + /* } */ case 27: + _r$5 = t$5.Underlying(); /* */ $s = 31; case 31: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if ($interfaceIsEqual(_r$5, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if ($interfaceIsEqual(_r$5, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { */ case 29: + $s = -1; return false; + /* } */ case 30: + _ref$4 = nest; + _i$3 = 0; + /* while (true) { */ case 32: + /* if (!(_i$3 < _ref$4.$length)) { break; } */ if(!(_i$3 < _ref$4.$length)) { $s = 33; continue; } + e = ((_i$3 < 0 || _i$3 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$3]); + _r$6 = Identical(e, t$5); /* */ $s = 36; case 36: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + /* */ if (_r$6) { $s = 34; continue; } + /* */ $s = 35; continue; + /* if (_r$6) { */ case 34: + $r = assert(t$5.obj.object.pkg === check.pkg); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = assert(t$5.Origin().obj.object.pkg === check.pkg); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + t$5.underlying = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + t$5.Origin().underlying = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + _ref$5 = path; + _i$4 = 0; + /* while (true) { */ case 39: + /* if (!(_i$4 < _ref$5.$length)) { break; } */ if(!(_i$4 < _ref$5.$length)) { $s = 40; continue; } + start = _i$4; + p = ((_i$4 < 0 || _i$4 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$4]); + _r$7 = Identical(p, t$5); /* */ $s = 43; case 43: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + /* */ if (_r$7) { $s = 41; continue; } + /* */ $s = 42; continue; + /* if (_r$7) { */ case 41: + $r = check.cycleError(makeObjList($subslice(path, start))); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; + /* } */ case 42: + _i$4++; + $s = 39; continue; + case 40: + $panic(new $String("cycle start not found")); + /* } */ case 35: + _i$3++; + $s = 32; continue; + case 33: + _r$8 = check.validType0(t$5.Origin().fromRHS, $append(nest, t$5), $append(path, t$5)); /* */ $s = 47; case 47: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + /* */ if (!_r$8) { $s = 45; continue; } + /* */ $s = 46; continue; + /* if (!_r$8) { */ case 45: + $s = -1; return false; + /* } */ case 46: + check.valids.add(t$5); + $s = 8; continue; + /* } else if ($assertType(_ref, ptrType$15, true)[1]) { */ case 7: + t$6 = _ref.$val; + /* */ if (nest.$length > 0) { $s = 48; continue; } + /* */ $s = 49; continue; + /* if (nest.$length > 0) { */ case 48: + inst = (x = nest.$length - 1 >> 0, ((x < 0 || x >= nest.$length) ? ($throwRuntimeError("index out of range"), undefined) : nest.$array[nest.$offset + x])); + _r$9 = inst.TypeParams(); /* */ $s = 50; case 50: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$10 = _r$9.list(); /* */ $s = 51; case 51: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _ref$6 = _r$10; + _i$5 = 0; + /* while (true) { */ case 52: + /* if (!(_i$5 < _ref$6.$length)) { break; } */ if(!(_i$5 < _ref$6.$length)) { $s = 53; continue; } + i = _i$5; + tparam = ((_i$5 < 0 || _i$5 >= _ref$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$6.$array[_ref$6.$offset + _i$5]); + /* */ if (t$6 === tparam && i < inst.TypeArgs().Len()) { $s = 54; continue; } + /* */ $s = 55; continue; + /* if (t$6 === tparam && i < inst.TypeArgs().Len()) { */ case 54: + targ = inst.TypeArgs().At(i); + _r$11 = check.validType0(targ, $subslice(nest, 0, (nest.$length - 1 >> 0)), path); /* */ $s = 56; case 56: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + $24r$1 = _r$11; + $s = 57; case 57: return $24r$1; + /* } */ case 55: + _i$5++; + $s = 52; continue; + case 53: + /* } */ case 49: + /* } } */ case 8: + $s = -1; return true; + /* */ } return; } var $f = {$blk: validType0, $c: true, $r, $24r, $24r$1, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, check, e, etyp, f, i, inst, nest, p, path, start, t, t$1, t$2, t$3, t$4, t$5, t$6, t$7, targ, tparam, typ, x, $s};return $f; + }; + makeObjList = function makeObjList$1(tlist) { + var _i, _ref, i, olist, t, tlist; + olist = $makeSlice(sliceType$7, tlist.$length); + _ref = tlist; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + ((i < 0 || i >= olist.$length) ? ($throwRuntimeError("index out of range"), undefined) : olist.$array[olist.$offset + i] = t.obj); + _i++; + } + return olist; + }; + cmpPos = function cmpPos$1(p, q) { + var p, q; + return (((p - q >> 0) >> 0)); + }; + defPredeclaredTypes = function defPredeclaredTypes$1() { + var {_i, _i$1, _r, _r$1, _ref, _ref$1, err, ityp, ityp$1, obj, obj$1, recv, res, sig, t, t$1, typ, typ$1, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref = $pkg.Typ; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = def(NewTypeName(nopos, ptrType$1.nil, t.name, t)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + _ref$1 = aliases; + _i$1 = 0; + /* while (true) { */ case 4: + /* if (!(_i$1 < 2)) { break; } */ if(!(_i$1 < 2)) { $s = 5; continue; } + t$1 = ((_i$1 < 0 || _i$1 >= _ref$1.length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1[_i$1]); + $r = def(NewTypeName(nopos, ptrType$1.nil, t$1.name, t$1)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + $s = 4; continue; + case 5: + $r = def(NewTypeName(nopos, ptrType$1.nil, "any", new Interface.ptr(ptrType$6.nil, sliceType.nil, sliceType$3.nil, ptrType$7.nil, false, true, topTypeSet))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + obj = NewTypeName(nopos, ptrType$1.nil, "error", $ifaceNil); + $r = obj.object.setColor(1); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + typ = NewNamed(obj, $ifaceNil, sliceType.nil); + recv = NewVar(nopos, ptrType$1.nil, "", typ); + res = NewVar(nopos, ptrType$1.nil, "", (17 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 17])); + _r = NewSignatureType(recv, sliceType$8.nil, sliceType$8.nil, ptrType$16.nil, NewTuple(new sliceType$9([res])), false); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + sig = _r; + err = NewFunc(nopos, ptrType$1.nil, "Error", sig); + ityp = new Interface.ptr(ptrType$6.nil, new sliceType([err]), sliceType$3.nil, ptrType$7.nil, false, true, ptrType$8.nil); + _r$1 = computeInterfaceTypeSet(ptrType$6.nil, nopos, ityp); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + $r = typ.SetUnderlying(ityp); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = def(obj); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + obj$1 = NewTypeName(nopos, ptrType$1.nil, "comparable", $ifaceNil); + $r = obj$1.object.setColor(1); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + typ$1 = NewNamed(obj$1, $ifaceNil, sliceType.nil); + ityp$1 = new Interface.ptr(ptrType$6.nil, sliceType.nil, sliceType$3.nil, ptrType$7.nil, false, true, new _TypeSet.ptr(sliceType.nil, allTermlist, true)); + $r = typ$1.SetUnderlying(ityp$1); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = def(obj$1); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: defPredeclaredTypes$1, $c: true, $r, _i, _i$1, _r, _r$1, _ref, _ref$1, err, ityp, ityp$1, obj, obj$1, recv, res, sig, t, t$1, typ, typ$1, $s};return $f; + }; + defPredeclaredConsts = function defPredeclaredConsts$1() { + var {_i, _ref, c, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref = predeclaredConsts; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < 3)) { break; } */ if(!(_i < 3)) { $s = 2; continue; } + c = $clone(((_i < 0 || _i >= _ref.length) ? ($throwRuntimeError("index out of range"), undefined) : _ref[_i]), structType); + $r = def(NewConst(nopos, ptrType$1.nil, c.name, (x = c.kind, ((x < 0 || x >= $pkg.Typ.$length) ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + x])), c.val)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: defPredeclaredConsts$1, $c: true, $r, _i, _ref, c, x, $s};return $f; + }; + defPredeclaredNil = function defPredeclaredNil$1() { + var {$s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = def(new Nil.ptr($clone(new object.ptr(ptrType.nil, 0, ptrType$1.nil, "nil", (25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25]), 0, 1, 0), object))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: defPredeclaredNil$1, $c: true, $r, $s};return $f; + }; + defPredeclaredFuncs = function defPredeclaredFuncs$1() { + var {_i, _ref, i, id, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref = predeclaredFuncs; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < 28)) { break; } */ if(!(_i < 28)) { $s = 2; continue; } + i = _i; + id = ((i >> 0)); + if ((id === 26) || (id === 27)) { + _i++; + /* continue; */ $s = 1; continue; + } + $r = def(newBuiltin(id)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: defPredeclaredFuncs$1, $c: true, $r, _i, _ref, i, id, $s};return $f; + }; + init = function init$3() { + var {_r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $pkg.Universe = NewScope(ptrType.nil, nopos, nopos, "universe"); + _r = NewPackage("unsafe", "unsafe"); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $pkg.Unsafe = _r; + $pkg.Unsafe.complete = true; + $r = defPredeclaredTypes(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = defPredeclaredConsts(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = defPredeclaredNil(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = defPredeclaredFuncs(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = $pkg.Universe.Lookup("iota"); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + universeIota = _r$1; + _r$2 = $pkg.Universe.Lookup("byte"); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = _r$2.Type(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + universeByte = _r$3; + _r$4 = $pkg.Universe.Lookup("rune"); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$5 = _r$4.Type(); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + universeRune = _r$5; + _r$6 = $pkg.Universe.Lookup("any"); /* */ $s = 11; case 11: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + universeAny = _r$6; + _r$7 = $pkg.Universe.Lookup("error"); /* */ $s = 12; case 12: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$8 = _r$7.Type(); /* */ $s = 13; case 13: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + universeError = _r$8; + _r$9 = $pkg.Universe.Lookup("comparable"); /* */ $s = 14; case 14: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + universeComparable = _r$9; + $s = -1; return; + /* */ } return; } var $f = {$blk: init$3, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, $s};return $f; + }; + def = function def$1(obj) { + var {_r, _r$1, _r$2, _r$3, _r$4, _ref, _tuple, name, obj, obj$1, obj$2, obj$3, scope, typ, $s, $r, $c} = $restore(this, {obj}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = obj.color(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = assert(_r === 1); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = obj.Name(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + name = _r$1; + if (strings.Contains(name, " ")) { + $s = -1; return; + } + _r$2 = obj.Type(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = $assertType(_r$2, ptrType$10, true); + typ = _tuple[0]; + if (!(typ === ptrType$10.nil)) { + typ.obj = $assertType(obj, ptrType$18); + } + scope = $pkg.Universe; + _r$3 = obj.Exported(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_r$3) { */ case 5: + scope = $pkg.Unsafe.scope; + _ref = obj; + if ($assertType(_ref, ptrType$18, true)[1]) { + obj$1 = _ref.$val; + obj$1.object.pkg = $pkg.Unsafe; + } else if ($assertType(_ref, ptrType$19, true)[1]) { + obj$2 = _ref.$val; + obj$2.object.pkg = $pkg.Unsafe; + } else { + obj$3 = _ref; + unreachable(); + } + /* } */ case 6: + _r$4 = scope.Insert(obj); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (!($interfaceIsEqual(_r$4, $ifaceNil))) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!($interfaceIsEqual(_r$4, $ifaceNil))) { */ case 8: + $panic(new $String("double declaration of predeclared identifier")); + /* } */ case 9: + $s = -1; return; + /* */ } return; } var $f = {$blk: def$1, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _ref, _tuple, name, obj, obj$1, obj$2, obj$3, scope, typ, $s};return $f; + }; + NewUnion = function NewUnion$1(terms) { + var terms; + if (terms.$length === 0) { + $panic(new $String("empty union")); + } + return new Union.ptr(terms); + }; + $pkg.NewUnion = NewUnion; + $ptrType(Union).prototype.Len = function Len() { + var u; + u = this; + return u.terms.$length; + }; + $ptrType(Union).prototype.Term = function Term$1(i) { + var i, u, x; + u = this; + return (x = u.terms, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + }; + $ptrType(Union).prototype.Underlying = function Underlying() { + var u; + u = this; + return u; + }; + $ptrType(Union).prototype.String = function String$1() { + var {$24r, _r, u, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + u = this; + _r = TypeString(u, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$1, $c: true, $r, $24r, _r, u, $s};return $f; + }; + NewTerm = function NewTerm$1(tilde, typ) { + var tilde, typ; + return new Term.ptr(tilde, typ); + }; + $pkg.NewTerm = NewTerm; + $ptrType(Term).prototype.Tilde = function Tilde() { + var t; + t = this; + return t.tilde; + }; + $ptrType(Term).prototype.Type = function Type$1() { + var t; + t = this; + return t.typ; + }; + $ptrType(Term).prototype.String = function String$2() { + var {$24r, _r, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r = ($pointerOfStructConversion(t, ptrType$5)).String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$2, $c: true, $r, $24r, _r, t, $s};return $f; + }; + parseUnion = function parseUnion$1(check, uexpr) { + var {_i, _r, _ref, _tuple, blist, check, i, term$1, terms, tlist, u, uexpr, x, x$1, $s, $r, $c} = $restore(this, {check, uexpr}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = [check]; + terms = [terms]; + tlist = [tlist]; + _tuple = flattenUnion(sliceType$10.nil, uexpr); + blist = _tuple[0]; + tlist[0] = _tuple[1]; + $r = assert(blist.$length === (tlist[0].$length - 1 >> 0)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + terms[0] = sliceType$11.nil; + u = $ifaceNil; + _ref = tlist[0]; + _i = 0; + /* while (true) { */ case 2: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } + i = _i; + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r = parseTilde(check[0], x); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + term$1 = _r; + if ((tlist[0].$length === 1) && !term$1.tilde) { + $s = -1; return term$1.typ; + } + /* */ if (terms[0].$length >= 100) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (terms[0].$length >= 100) { */ case 5: + /* */ if (!($interfaceIsEqual(u, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!($interfaceIsEqual(u, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { */ case 8: + $r = check[0].errorf(x, 141, "cannot handle more than %d union terms (implementation limitation)", new sliceType$5([new $Int(100)])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + u = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + /* } */ case 9: + $s = 7; continue; + /* } else { */ case 6: + terms[0] = $append(terms[0], term$1); + u = new Union.ptr(terms[0]); + /* } */ case 7: + /* */ if (i > 0) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (i > 0) { */ case 11: + $r = check[0].recordTypeAndValue((x$1 = i - 1 >> 0, ((x$1 < 0 || x$1 >= blist.$length) ? ($throwRuntimeError("index out of range"), undefined) : blist.$array[blist.$offset + x$1])), 3, u, $ifaceNil); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 12: + _i++; + $s = 2; continue; + case 3: + if ($interfaceIsEqual(u, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { + $s = -1; return u; + } + check[0].later((function(check, terms, tlist) { return function parseUnion·func1() { + var {_i$1, _r$1, _r$2, _r$3, _r$4, _r$5, _ref$1, _tuple$1, f, i$1, j, t, tset, u$1, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref$1 = terms[0]; + _i$1 = 0; + /* while (true) { */ case 1: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 2; continue; } + i$1 = _i$1; + t = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + if ($interfaceIsEqual(t.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { + _i$1++; + /* continue; */ $s = 1; continue; + } + _r$1 = under(t.typ); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + u$1 = _r$1; + _tuple$1 = $assertType(u$1, ptrType$14, true); + f = _tuple$1[0]; + /* */ if (t.tilde) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (t.tilde) { */ case 4: + /* */ if (!(f === ptrType$14.nil)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (!(f === ptrType$14.nil)) { */ case 6: + $r = check[0].errorf(((i$1 < 0 || i$1 >= tlist[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : tlist[0].$array[tlist[0].$offset + i$1]), 141, "invalid use of ~ (%s is an interface)", new sliceType$5([t.typ])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + /* continue; */ $s = 1; continue; + /* } */ case 7: + _r$2 = Identical(u$1, t.typ); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (!_r$2) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!_r$2) { */ case 9: + $r = check[0].errorf(((i$1 < 0 || i$1 >= tlist[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : tlist[0].$array[tlist[0].$offset + i$1]), 141, "invalid use of ~ (underlying type of %s is %s)", new sliceType$5([t.typ, u$1])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + /* continue; */ $s = 1; continue; + /* } */ case 10: + /* } */ case 5: + /* */ if (!(f === ptrType$14.nil)) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (!(f === ptrType$14.nil)) { */ case 13: + _r$3 = f.typeSet(); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + tset = _r$3; + /* */ if (!((tset.NumMethods() === 0))) { $s = 17; continue; } + _r$4 = universeComparable.Type(); /* */ $s = 21; case 21: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if ($interfaceIsEqual(t.typ, _r$4)) { $s = 18; continue; } + /* */ if (tset.comparable) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (!((tset.NumMethods() === 0))) { */ case 17: + $r = check[0].errorf(((i$1 < 0 || i$1 >= tlist[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : tlist[0].$array[tlist[0].$offset + i$1]), 141, "cannot use %s in union (%s contains methods)", new sliceType$5([t, t])); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 20; continue; + /* } else if ($interfaceIsEqual(t.typ, _r$4)) { */ case 18: + $r = check[0].error(((i$1 < 0 || i$1 >= tlist[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : tlist[0].$array[tlist[0].$offset + i$1]), 141, "cannot use comparable in union"); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 20; continue; + /* } else if (tset.comparable) { */ case 19: + $r = check[0].errorf(((i$1 < 0 || i$1 >= tlist[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : tlist[0].$array[tlist[0].$offset + i$1]), 141, "cannot use %s in union (%s embeds comparable)", new sliceType$5([t, t])); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 20: + case 16: + _i$1++; + /* continue; */ $s = 1; continue; + /* } */ case 14: + _r$5 = overlappingTerm($subslice(terms[0], 0, i$1), t); /* */ $s = 25; case 25: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + j = _r$5; + /* */ if (j >= 0) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (j >= 0) { */ case 26: + $r = check[0].softErrorf(((i$1 < 0 || i$1 >= tlist[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : tlist[0].$array[tlist[0].$offset + i$1]), 141, "overlapping terms %s and %s", new sliceType$5([t, ((j < 0 || j >= terms[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : terms[0].$array[terms[0].$offset + j])])); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 27: + _i$1++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: parseUnion·func1, $c: true, $r, _i$1, _r$1, _r$2, _r$3, _r$4, _r$5, _ref$1, _tuple$1, f, i$1, j, t, tset, u$1, $s};return $f; + }; })(check, terms, tlist)).describef(uexpr, "check term validity %s", new sliceType$5([uexpr])); + $s = -1; return u; + /* */ } return; } var $f = {$blk: parseUnion$1, $c: true, $r, _i, _r, _ref, _tuple, blist, check, i, term$1, terms, tlist, u, uexpr, x, x$1, $s};return $f; + }; + parseTilde = function parseTilde$1(check, tx) { + var {_r, _tuple, check, op, term$1, tilde, tx, typ, x, $s, $r, $c} = $restore(this, {check, tx}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = tx; + tilde = false; + _tuple = $assertType(x, ptrType$21, true); + op = _tuple[0]; + if (!(op === ptrType$21.nil) && (op.Op === 88)) { + x = op.X; + tilde = true; + } + _r = check.typ(x); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + typ = _r; + /* */ if (isTypeParam(typ)) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (isTypeParam(typ)) { */ case 2: + /* */ if (tilde) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (tilde) { */ case 4: + $r = check.errorf(x, 144, "type in term %s cannot be a type parameter", new sliceType$5([tx])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 6; continue; + /* } else { */ case 5: + $r = check.error(x, 144, "term cannot be a type parameter"); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + /* } */ case 3: + term$1 = NewTerm(tilde, typ); + /* */ if (tilde) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (tilde) { */ case 9: + $r = check.recordTypeAndValue(tx, 3, new Union.ptr(new sliceType$11([term$1])), $ifaceNil); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 10: + $s = -1; return term$1; + /* */ } return; } var $f = {$blk: parseTilde$1, $c: true, $r, _r, _tuple, check, op, term$1, tilde, tx, typ, x, $s};return $f; + }; + overlappingTerm = function overlappingTerm$1(terms, y) { + var {_i, _r, _r$1, _r$2, _ref, i, terms, x, y, $s, $r, $c} = $restore(this, {terms, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = IsInterface(y.typ); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = assert(!_r); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _ref = terms; + _i = 0; + /* while (true) { */ case 3: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } + i = _i; + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r$1 = IsInterface(x.typ); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_r$1) { */ case 5: + _i++; + /* continue; */ $s = 3; continue; + /* } */ case 6: + if (false) { + if (x === ptrType$20.nil || $interfaceIsEqual(x.typ, $ifaceNil) || y === ptrType$20.nil || $interfaceIsEqual(y.typ, $ifaceNil)) { + $panic(new $String("empty or top union term")); + } + } + _r$2 = ($pointerOfStructConversion(x, ptrType$5)).disjoint(($pointerOfStructConversion(y, ptrType$5))); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (!_r$2) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!_r$2) { */ case 8: + $s = -1; return i; + /* } */ case 9: + _i++; + $s = 3; continue; + case 4: + $s = -1; return -1; + /* */ } return; } var $f = {$blk: overlappingTerm$1, $c: true, $r, _i, _r, _r$1, _r$2, _ref, i, terms, x, y, $s};return $f; + }; + flattenUnion = function flattenUnion$1(list, x) { + var _tmp, _tmp$1, _tuple, _tuple$1, blist, list, o, tlist, x; + blist = sliceType$10.nil; + tlist = sliceType$10.nil; + _tuple = $assertType(x, ptrType$22, true); + o = _tuple[0]; + if (!(o === ptrType$22.nil) && (o.Op === 18)) { + _tuple$1 = flattenUnion(list, o.X); + blist = _tuple$1[0]; + tlist = _tuple$1[1]; + blist = $append(blist, o); + x = o.Y; + } + _tmp = blist; + _tmp$1 = $append(tlist, x); + blist = _tmp; + tlist = _tmp$1; + return [blist, tlist]; + }; + newUnifier = function newUnifier$1(tparams, targs, enableInterfaceInference) { + var {_i, _key, _ref, enableInterfaceInference, handles, i, t, targs, tparams, x, x$1, $s, $r, $c} = $restore(this, {tparams, targs, enableInterfaceInference}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = assert(tparams.$length >= targs.$length); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + handles = (x = tparams.$length, ((x < 0 || x > 2147483647) ? $throwRuntimeError("makemap: size out of range") : new $global.Map())); + _ref = tparams; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + t = [t]; + i = _i; + x$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + t[0] = $ifaceNil; + if (i < targs.$length) { + t[0] = ((i < 0 || i >= targs.$length) ? ($throwRuntimeError("index out of range"), undefined) : targs.$array[targs.$offset + i]); + } + _key = x$1; (handles || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$15.keyFor(_key), { k: _key, v: (t.$ptr || (t.$ptr = new ptrType$23(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, t))) }); + _i++; + } + $s = -1; return new unifier.ptr(handles, 0, enableInterfaceInference); + /* */ } return; } var $f = {$blk: newUnifier$1, $c: true, $r, _i, _key, _ref, enableInterfaceInference, handles, i, t, targs, tparams, x, x$1, $s};return $f; + }; + unifyMode.prototype.String = function String$3() { + var {$24r, _1, _r, m, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + m = this.$val; + _1 = m; + if (_1 === (0)) { + $s = -1; return "inexact"; + } else if (_1 === (1)) { + $s = -1; return "assign"; + } else if (_1 === (2)) { + $s = -1; return "exact"; + } else if (_1 === (3)) { + $s = -1; return "assign, exact"; + } + _r = fmt.Sprintf("mode %d", new sliceType$5([new unifyMode(m)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$3, $c: true, $r, $24r, _1, _r, m, $s};return $f; + }; + $ptrType(unifyMode).prototype.String = function(...$args) { return new unifyMode(this.$get()).String(...$args); }; + $ptrType(unifier).prototype.unify = function unify(x, y, mode) { + var {$24r, _r, mode, u, x, y, $s, $r, $c} = $restore(this, {x, y, mode}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + u = this; + _r = u.nify(x, y, mode, ptrType$24.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: unify, $c: true, $r, $24r, _r, mode, u, x, y, $s};return $f; + }; + $ptrType(unifier).prototype.tracef = function tracef(format, args) { + var {_r, _r$1, args, format, u, $s, $r, $c} = $restore(this, {format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + u = this; + _r = sprintf(ptrType$25.nil, $throwNilPointerError, true, format, args); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = fmt.Println(new sliceType$5([new $String(strings.Repeat(". ", u.depth) + _r)])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + $s = -1; return; + /* */ } return; } var $f = {$blk: tracef, $c: true, $r, _r, _r$1, args, format, u, $s};return $f; + }; + $ptrType(unifier).prototype.String = function String$4() { + var {_entry, _i, _i$1, _key, _keys, _ref, _ref$1, _size, buf, i, i$1, tpar, tparams, u, w, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + buf = [buf]; + u = this; + tparams = $makeSlice(typeParamsById, (u.handles ? u.handles.size : 0)); + i = 0; + _ref = u.handles; + _i = 0; + _keys = _ref ? _ref.keys() : undefined; + _size = _ref ? _ref.size : 0; + while (true) { + if (!(_i < _size)) { break; } + _key = _keys.next().value; + _entry = _ref.get(_key); + if (_entry === undefined) { + _i++; + continue; + } + tpar = _entry.k; + ((i < 0 || i >= tparams.$length) ? ($throwRuntimeError("index out of range"), undefined) : tparams.$array[tparams.$offset + i] = tpar); + i = i + (1) >> 0; + _i++; + } + $r = sort.Sort(tparams); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + buf[0] = new bytes.Buffer.ptr(sliceType$12.nil, 0, 0); + w = newTypeWriter(buf[0], $throwNilPointerError); + w.byte$(91); + _ref$1 = tparams; + _i$1 = 0; + /* while (true) { */ case 2: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 3; continue; } + i$1 = _i$1; + x = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + if (i$1 > 0) { + w.string(", "); + } + $r = w.typ(x); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + w.string(": "); + $r = w.typ(u.at(x)); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + $s = 2; continue; + case 3: + w.byte$(93); + $s = -1; return buf[0].String(); + /* */ } return; } var $f = {$blk: String$4, $c: true, $r, _entry, _i, _i$1, _key, _keys, _ref, _ref$1, _size, buf, i, i$1, tpar, tparams, u, w, x, $s};return $f; + }; + typeParamsById.prototype.Len = function Len$1() { + var s; + s = this; + return s.$length; + }; + $ptrType(typeParamsById).prototype.Len = function(...$args) { return this.$get().Len(...$args); }; + typeParamsById.prototype.Less = function Less(i, j) { + var i, j, s, x, x$1; + s = this; + return (x = ((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i]).id, x$1 = ((j < 0 || j >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + j]).id, (x.$high < x$1.$high || (x.$high === x$1.$high && x.$low < x$1.$low))); + }; + $ptrType(typeParamsById).prototype.Less = function(...$args) { return this.$get().Less(...$args); }; + typeParamsById.prototype.Swap = function Swap(i, j) { + var _tmp, _tmp$1, i, j, s; + s = this; + _tmp = ((j < 0 || j >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + j]); + _tmp$1 = ((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i]); + ((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i] = _tmp); + ((j < 0 || j >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + j] = _tmp$1); + }; + $ptrType(typeParamsById).prototype.Swap = function(...$args) { return this.$get().Swap(...$args); }; + $ptrType(unifier).prototype.join = function join(x, y) { + var {_entry, _entry$1, _tmp, _tmp$1, hx, hy, u, x, y, $s, $r, $c} = $restore(this, {x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + u = this; + /* */ if (false) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (false) { */ case 1: + $r = u.tracef("%s \xE2\x87\x84 %s", new sliceType$5([x, y])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + _tmp = (_entry = $mapIndex(u.handles,ptrType$15.keyFor(x)), _entry !== undefined ? _entry.v : ptrType$23.nil); + _tmp$1 = (_entry$1 = $mapIndex(u.handles,ptrType$15.keyFor(y)), _entry$1 !== undefined ? _entry$1.v : ptrType$23.nil); + hx = _tmp; + hy = _tmp$1; + /* */ if (hx === hy) { $s = 5; continue; } + /* */ if (!($interfaceIsEqual(hx.$get(), $ifaceNil)) && !($interfaceIsEqual(hy.$get(), $ifaceNil))) { $s = 6; continue; } + /* */ if (!($interfaceIsEqual(hx.$get(), $ifaceNil))) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (hx === hy) { */ case 5: + $s = 9; continue; + /* } else if (!($interfaceIsEqual(hx.$get(), $ifaceNil)) && !($interfaceIsEqual(hy.$get(), $ifaceNil))) { */ case 6: + $s = -1; return false; + /* } else if (!($interfaceIsEqual(hx.$get(), $ifaceNil))) { */ case 7: + $r = u.setHandle(y, hx); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 9; continue; + /* } else { */ case 8: + $r = u.setHandle(x, hy); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 9: + case 4: + $s = -1; return true; + /* */ } return; } var $f = {$blk: join, $c: true, $r, _entry, _entry$1, _tmp, _tmp$1, hx, hy, u, x, y, $s};return $f; + }; + $ptrType(unifier).prototype.asTypeParam = function asTypeParam(x) { + var _entry, _tuple, _tuple$1, found, u, x, x$1; + u = this; + _tuple = $assertType(x, ptrType$15, true); + x$1 = _tuple[0]; + if (!(x$1 === ptrType$15.nil)) { + _tuple$1 = (_entry = $mapIndex(u.handles,ptrType$15.keyFor(x$1)), _entry !== undefined ? [_entry.v, true] : [ptrType$23.nil, false]); + found = _tuple$1[1]; + if (found) { + return x$1; + } + } + return ptrType$15.nil; + }; + $ptrType(unifier).prototype.setHandle = function setHandle(x, h) { + var {_entry, _entry$1, _i, _key, _key$1, _keys, _ref, _size, h, hx, hy, u, x, y, $s, $r, $c} = $restore(this, {x, h}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + u = this; + hx = (_entry = $mapIndex(u.handles,ptrType$15.keyFor(x)), _entry !== undefined ? _entry.v : ptrType$23.nil); + $r = assert(!(hx === ptrType$23.nil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _ref = u.handles; + _i = 0; + _keys = _ref ? _ref.keys() : undefined; + _size = _ref ? _ref.size : 0; + while (true) { + if (!(_i < _size)) { break; } + _key = _keys.next().value; + _entry$1 = _ref.get(_key); + if (_entry$1 === undefined) { + _i++; + continue; + } + y = _entry$1.k; + hy = _entry$1.v; + if (hy === hx) { + _key$1 = y; (u.handles || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$15.keyFor(_key$1), { k: _key$1, v: h }); + } + _i++; + } + $s = -1; return; + /* */ } return; } var $f = {$blk: setHandle, $c: true, $r, _entry, _entry$1, _i, _key, _key$1, _keys, _ref, _size, h, hx, hy, u, x, y, $s};return $f; + }; + $ptrType(unifier).prototype.at = function at(x) { + var _entry, u, x; + u = this; + return (_entry = $mapIndex(u.handles,ptrType$15.keyFor(x)), _entry !== undefined ? _entry.v : ptrType$23.nil).$get(); + }; + $ptrType(unifier).prototype.set = function set(x, t) { + var {_entry, t, u, x, $s, $r, $c} = $restore(this, {x, t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + u = this; + $r = assert(!($interfaceIsEqual(t, $ifaceNil))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (false) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (false) { */ case 2: + $r = u.tracef("%s \xE2\x9E\x9E %s", new sliceType$5([x, t])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 3: + (_entry = $mapIndex(u.handles,ptrType$15.keyFor(x)), _entry !== undefined ? _entry.v : ptrType$23.nil).$set(t); + $s = -1; return; + /* */ } return; } var $f = {$blk: set, $c: true, $r, _entry, t, u, x, $s};return $f; + }; + $ptrType(unifier).prototype.unknowns = function unknowns() { + var _entry, _i, _key, _keys, _ref, _size, h, n, u; + u = this; + n = 0; + _ref = u.handles; + _i = 0; + _keys = _ref ? _ref.keys() : undefined; + _size = _ref ? _ref.size : 0; + while (true) { + if (!(_i < _size)) { break; } + _key = _keys.next().value; + _entry = _ref.get(_key); + if (_entry === undefined) { + _i++; + continue; + } + h = _entry.v; + if ($interfaceIsEqual(h.$get(), $ifaceNil)) { + n = n + (1) >> 0; + } + _i++; + } + return n; + }; + $ptrType(unifier).prototype.inferred = function inferred(tparams) { + var _i, _ref, i, list, tparams, u, x; + u = this; + list = $makeSlice(sliceType$3, tparams.$length); + _ref = tparams; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + ((i < 0 || i >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + i] = u.at(x)); + _i++; + } + return list; + }; + asInterface = function asInterface$1(x) { + var {_r, _tuple, _tuple$1, i, ok, x, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + i = ptrType$14.nil; + _tuple = $assertType(x, ptrType$15, true); + ok = _tuple[1]; + /* */ if (!ok) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!ok) { */ case 1: + _r = under(x); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple$1 = $assertType(_r, ptrType$14, true); + i = _tuple$1[0]; + /* } */ case 2: + i = i; + $s = -1; return i; + /* */ } return; } var $f = {$blk: asInterface$1, $c: true, $r, _r, _tuple, _tuple$1, i, ok, x, $s};return $f; + }; + $ptrType(unifier).prototype.nify = function nify(x, y, mode, p) { + var {$24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$13, $24r$14, $24r$15, $24r$16, $24r$17, $24r$18, $24r$19, $24r$2, $24r$20, $24r$21, $24r$22, $24r$23, $24r$24, $24r$25, $24r$26, $24r$27, $24r$28, $24r$29, $24r$3, $24r$30, $24r$31, $24r$32, $24r$33, $24r$34, $24r$35, $24r$36, $24r$37, $24r$38, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _entry, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _key, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, _v$10, _v$2, _v$3, _v$4, _v$5, _v$6, _v$7, _v$8, _v$9, a, b, cx, emode, f, f$1, g, g$1, i, i$1, i$2, i$3, mode, ny, obj, ok, ok$1, ok$10, ok$11, ok$2, ok$3, ok$4, ok$5, ok$6, ok$7, ok$8, ok$9, p, px, py, q, q$1, result, u, v, w, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$3, x$4, x$5, x$6, x$7, x$8, x$9, xarg, xargs, xi, xi$1, xm, xm$1, xmethods, xmethods$1, xn, xset, xset$1, y, y$1, y$10, y$11, y$2, y$3, y$4, y$5, y$6, y$7, y$8, y$9, yargs, yc, yi, yi$1, ym, ym$1, ym$2, ymap, ymethods, yn, yset, yset$1, $s, $deferred, $r, $c} = $restore(this, {x, y, mode, p}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + result = [result]; + u = [u]; + x = [x]; + y = [y]; + result[0] = false; + u[0] = this; + u[0].depth = u[0].depth + (1) >> 0; + /* */ if (false) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (false) { */ case 1: + $r = u[0].tracef("%s \xE2\x89\xA1 %s\t// %s", new sliceType$5([x[0], y[0], new unifyMode(mode)])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $deferred.push([(function(result, u, x, y) { return function unifier·nify·func1() { + var {$s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + /* */ if (false && !result[0]) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (false && !result[0]) { */ case 1: + $r = u[0].tracef("%s \xE2\x89\xA2 %s", new sliceType$5([x[0], y[0]])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + u[0].depth = u[0].depth - (1) >> 0; + $s = -1; return; + /* */ } return; } var $f = {$blk: unifier·nify·func1, $c: true, $r, $s};return $f; + }; })(result, u, x, y), []]); + /* */ if ($interfaceIsEqual(x[0], y[0])) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ($interfaceIsEqual(x[0], y[0])) { */ case 4: + result[0] = true; + $24r = result[0]; + $s = 6; case 6: return $24r; + /* } */ case 5: + /* */ if (u[0].depth > 50) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (u[0].depth > 50) { */ case 7: + /* */ if (false) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (false) { */ case 9: + $r = u[0].tracef("depth %d >= %d", new sliceType$5([new $Int(u[0].depth), new $Int(50)])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 10: + if (true) { + $panic(new $String("unification reached recursion depth limit")); + } + result[0] = false; + $24r$1 = result[0]; + $s = 12; case 12: return $24r$1; + /* } */ case 8: + _tuple = $assertType(x[0], ptrType$10, true); + ok = _tuple[1]; + /* */ if (ok || !(u[0].asTypeParam(y[0]) === ptrType$15.nil)) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (ok || !(u[0].asTypeParam(y[0]) === ptrType$15.nil)) { */ case 13: + /* */ if (false) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (false) { */ case 15: + $r = u[0].tracef("%s \xE2\x89\xA1 %s\t// swap", new sliceType$5([y[0], x[0]])); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 16: + _tmp = y[0]; + _tmp$1 = x[0]; + x[0] = _tmp; + y[0] = _tmp$1; + /* } */ case 14: + _tuple$1 = $assertType(y[0], ptrType$10, true); + ny = _tuple$1[0]; + if (!((((mode & 2) >>> 0) === 0) && !(ny === ptrType$10.nil) && isTypeLit(x[0]))) { _v = false; $s = 20; continue s; } + if (!(u[0].enableInterfaceInference)) { _v$1 = false; $s = 21; continue s; } + _r = IsInterface(x[0]); /* */ $s = 22; case 22: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v$1 = _r; case 21: + _v = !(_v$1); case 20: + /* */ if (_v) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (_v) { */ case 18: + /* */ if (false) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (false) { */ case 23: + $r = u[0].tracef("%s \xE2\x89\xA1 under %s", new sliceType$5([x[0], ny])); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 24: + _r$1 = ny.under(); /* */ $s = 26; case 26: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + y[0] = _r$1; + $r = assert(!isTypeParam(y[0])); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if ($interfaceIsEqual(x[0], y[0])) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if ($interfaceIsEqual(x[0], y[0])) { */ case 28: + result[0] = true; + $24r$2 = result[0]; + $s = 30; case 30: return $24r$2; + /* } */ case 29: + /* } */ case 19: + _tmp$2 = u[0].asTypeParam(x[0]); + _tmp$3 = u[0].asTypeParam(y[0]); + px = _tmp$2; + py = _tmp$3; + /* */ if (!(px === ptrType$15.nil) && !(py === ptrType$15.nil)) { $s = 32; continue; } + /* */ if (!(px === ptrType$15.nil)) { $s = 33; continue; } + /* */ $s = 34; continue; + /* if (!(px === ptrType$15.nil) && !(py === ptrType$15.nil)) { */ case 32: + _r$2 = u[0].join(px, py); /* */ $s = 37; case 37: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (_r$2) { $s = 35; continue; } + /* */ $s = 36; continue; + /* if (_r$2) { */ case 35: + result[0] = true; + $24r$3 = result[0]; + $s = 38; case 38: return $24r$3; + /* } */ case 36: + _r$3 = u[0].nify(u[0].at(px), u[0].at(py), mode, p); /* */ $s = 39; case 39: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + result[0] = _r$3; + $24r$4 = result[0]; + $s = 40; case 40: return $24r$4; + /* } else if (!(px === ptrType$15.nil)) { */ case 33: + x$1 = u[0].at(px); + /* */ if (!($interfaceIsEqual(x$1, $ifaceNil))) { $s = 41; continue; } + /* */ $s = 42; continue; + /* if (!($interfaceIsEqual(x$1, $ifaceNil))) { */ case 41: + _r$4 = u[0].nify(x$1, y[0], mode, p); /* */ $s = 45; case 45: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (_r$4) { $s = 43; continue; } + /* */ $s = 44; continue; + /* if (_r$4) { */ case 43: + _r$5 = asInterface(x$1); /* */ $s = 46; case 46: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + xi = _r$5; + _r$6 = asInterface(y[0]); /* */ $s = 47; case 47: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + yi = _r$6; + _tuple$2 = $assertType(x$1, ptrType$10, true); + xn = _tuple$2[1]; + _tuple$3 = $assertType(y[0], ptrType$10, true); + yn = _tuple$3[1]; + /* */ if (!(xi === ptrType$14.nil) && !(yi === ptrType$14.nil)) { $s = 48; continue; } + /* */ if (!(xi === ptrType$14.nil) || !(yi === ptrType$14.nil)) { $s = 49; continue; } + /* */ $s = 50; continue; + /* if (!(xi === ptrType$14.nil) && !(yi === ptrType$14.nil)) { */ case 48: + /* */ if (xn && yn) { $s = 51; continue; } + /* */ $s = 52; continue; + /* if (xn && yn) { */ case 51: + _r$7 = Identical(x$1, y[0]); /* */ $s = 53; case 53: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + result[0] = _r$7; + $24r$5 = result[0]; + $s = 54; case 54: return $24r$5; + /* } */ case 52: + _r$8 = xi.typeSet(); /* */ $s = 57; case 57: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$9 = yi.typeSet(); /* */ $s = 58; case 58: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + /* */ if (!((_r$8.methods.$length === _r$9.methods.$length))) { $s = 55; continue; } + /* */ $s = 56; continue; + /* if (!((_r$8.methods.$length === _r$9.methods.$length))) { */ case 55: + result[0] = false; + $24r$6 = result[0]; + $s = 59; case 59: return $24r$6; + /* } */ case 56: + $s = 50; continue; + /* } else if (!(xi === ptrType$14.nil) || !(yi === ptrType$14.nil)) { */ case 49: + result[0] = false; + $24r$7 = result[0]; + $s = 60; case 60: return $24r$7; + /* } */ case 50: + /* */ if (((mode & 2) >>> 0) === 0) { $s = 61; continue; } + /* */ $s = 62; continue; + /* if (((mode & 2) >>> 0) === 0) { */ case 61: + /* */ if (xn) { $s = 64; continue; } + /* */ if (yn) { $s = 65; continue; } + /* */ $s = 66; continue; + /* if (xn) { */ case 64: + $s = 67; continue; + /* } else if (yn) { */ case 65: + $r = u[0].set(px, y[0]); /* */ $s = 68; case 68: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 67; continue; + /* } else { */ case 66: + _r$10 = under(y[0]); /* */ $s = 69; case 69: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _tuple$4 = $assertType(_r$10, ptrType$26, true); + yc = _tuple$4[0]; + /* */ if (!(yc === ptrType$26.nil) && !((yc.dir === 0))) { $s = 70; continue; } + /* */ $s = 71; continue; + /* if (!(yc === ptrType$26.nil) && !((yc.dir === 0))) { */ case 70: + $r = u[0].set(px, y[0]); /* */ $s = 72; case 72: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 71: + /* } */ case 67: + case 63: + /* } */ case 62: + result[0] = true; + $24r$8 = result[0]; + $s = 73; case 73: return $24r$8; + /* } */ case 44: + result[0] = false; + $24r$9 = result[0]; + $s = 74; case 74: return $24r$9; + /* } */ case 42: + $r = u[0].set(px, y[0]); /* */ $s = 75; case 75: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + result[0] = true; + $24r$10 = result[0]; + $s = 76; case 76: return $24r$10; + /* } */ case 34: + case 31: + $r = assert(!($interfaceIsEqual(x[0], y[0]))); /* */ $s = 77; case 77: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + emode = mode; + if (!((((mode & 1) >>> 0) === 0))) { + emode = (emode | (2)) >>> 0; + } + /* */ if (u[0].enableInterfaceInference && (((mode & 2) >>> 0) === 0)) { $s = 78; continue; } + /* */ $s = 79; continue; + /* if (u[0].enableInterfaceInference && (((mode & 2) >>> 0) === 0)) { */ case 78: + _r$11 = asInterface(x[0]); /* */ $s = 80; case 80: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + xi$1 = _r$11; + _r$12 = asInterface(y[0]); /* */ $s = 81; case 81: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + yi$1 = _r$12; + /* */ if (!(xi$1 === ptrType$14.nil) && !(yi$1 === ptrType$14.nil)) { $s = 82; continue; } + /* */ $s = 83; continue; + /* if (!(xi$1 === ptrType$14.nil) && !(yi$1 === ptrType$14.nil)) { */ case 82: + _r$13 = xi$1.typeSet(); /* */ $s = 84; case 84: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + xset = _r$13; + _r$14 = yi$1.typeSet(); /* */ $s = 85; case 85: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + yset = _r$14; + /* */ if (!(xset.comparable === yset.comparable)) { $s = 86; continue; } + /* */ $s = 87; continue; + /* if (!(xset.comparable === yset.comparable)) { */ case 86: + result[0] = false; + $24r$11 = result[0]; + $s = 88; case 88: return $24r$11; + /* } */ case 87: + _r$15 = xset.terms.equal(yset.terms); /* */ $s = 91; case 91: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + /* */ if (!_r$15) { $s = 89; continue; } + /* */ $s = 90; continue; + /* if (!_r$15) { */ case 89: + result[0] = false; + $24r$12 = result[0]; + $s = 92; case 92: return $24r$12; + /* } */ case 90: + q = new ifacePair.ptr(xi$1, yi$1, p); + /* while (true) { */ case 93: + /* if (!(!(p === ptrType$24.nil))) { break; } */ if(!(!(p === ptrType$24.nil))) { $s = 94; continue; } + /* */ if (p.identical(q)) { $s = 95; continue; } + /* */ $s = 96; continue; + /* if (p.identical(q)) { */ case 95: + result[0] = true; + $24r$13 = result[0]; + $s = 97; case 97: return $24r$13; + /* } */ case 96: + p = p.prev; + $s = 93; continue; + case 94: + xmethods = xset.methods; + ymethods = yset.methods; + if (xmethods.$length > ymethods.$length) { + _tmp$4 = ymethods; + _tmp$5 = xmethods; + xmethods = _tmp$4; + ymethods = _tmp$5; + } + ymap = (x$2 = ymethods.$length, ((x$2 < 0 || x$2 > 2147483647) ? $throwRuntimeError("makemap: size out of range") : new $global.Map())); + _ref = ymethods; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + ym = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _key = ym.object.Id(); (ymap || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: ym }); + _i++; + } + _ref$1 = xmethods; + _i$1 = 0; + /* while (true) { */ case 98: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 99; continue; } + xm = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + ym$1 = (_entry = $mapIndex(ymap,$String.keyFor(xm.object.Id())), _entry !== undefined ? _entry.v : ptrType$2.nil); + if (ym$1 === ptrType$2.nil) { _v$2 = true; $s = 102; continue s; } + _r$16 = u[0].nify(xm.object.typ, ym$1.object.typ, 2, p); /* */ $s = 103; case 103: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + _v$2 = !_r$16; case 102: + /* */ if (_v$2) { $s = 100; continue; } + /* */ $s = 101; continue; + /* if (_v$2) { */ case 100: + result[0] = false; + $24r$14 = result[0]; + $s = 104; case 104: return $24r$14; + /* } */ case 101: + _i$1++; + $s = 98; continue; + case 99: + result[0] = true; + $24r$15 = result[0]; + $s = 105; case 105: return $24r$15; + /* } */ case 83: + if (!(yi$1 === ptrType$14.nil)) { + xi$1 = yi$1; + y[0] = x[0]; + } + /* */ if (!(xi$1 === ptrType$14.nil)) { $s = 106; continue; } + /* */ $s = 107; continue; + /* if (!(xi$1 === ptrType$14.nil)) { */ case 106: + _r$17 = xi$1.typeSet(); /* */ $s = 108; case 108: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + xmethods$1 = _r$17.methods; + _ref$2 = xmethods$1; + _i$2 = 0; + /* while (true) { */ case 109: + /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 110; continue; } + xm$1 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); + _r$18 = LookupFieldOrMethod(y[0], false, xm$1.object.pkg, xm$1.object.name); /* */ $s = 111; case 111: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + _tuple$5 = _r$18; + obj = _tuple$5[0]; + _tuple$6 = $assertType(obj, ptrType$2, true); + ym$2 = _tuple$6[0]; + if (ym$2 === ptrType$2.nil) { _v$3 = true; $s = 114; continue s; } + _r$19 = u[0].nify(xm$1.object.typ, ym$2.object.typ, 2, p); /* */ $s = 115; case 115: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + _v$3 = !_r$19; case 114: + /* */ if (_v$3) { $s = 112; continue; } + /* */ $s = 113; continue; + /* if (_v$3) { */ case 112: + result[0] = false; + $24r$16 = result[0]; + $s = 116; case 116: return $24r$16; + /* } */ case 113: + _i$2++; + $s = 109; continue; + case 110: + result[0] = true; + $24r$17 = result[0]; + $s = 117; case 117: return $24r$17; + /* } */ case 107: + /* } */ case 79: + /* */ if (isTypeParam(y[0])) { $s = 118; continue; } + /* */ $s = 119; continue; + /* if (isTypeParam(y[0])) { */ case 118: + /* */ if (false) { $s = 120; continue; } + /* */ $s = 121; continue; + /* if (false) { */ case 120: + $r = u[0].tracef("%s \xE2\x89\xA1 %s\t// swap", new sliceType$5([y[0], x[0]])); /* */ $s = 122; case 122: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 121: + _tmp$6 = y[0]; + _tmp$7 = x[0]; + x[0] = _tmp$6; + y[0] = _tmp$7; + /* } */ case 119: + _ref$3 = x[0]; + /* */ if ($assertType(_ref$3, ptrType$4, true)[1]) { $s = 123; continue; } + /* */ if ($assertType(_ref$3, ptrType$11, true)[1]) { $s = 124; continue; } + /* */ if ($assertType(_ref$3, ptrType$27, true)[1]) { $s = 125; continue; } + /* */ if ($assertType(_ref$3, ptrType$12, true)[1]) { $s = 126; continue; } + /* */ if ($assertType(_ref$3, ptrType$28, true)[1]) { $s = 127; continue; } + /* */ if ($assertType(_ref$3, ptrType$16, true)[1]) { $s = 128; continue; } + /* */ if ($assertType(_ref$3, ptrType$29, true)[1]) { $s = 129; continue; } + /* */ if ($assertType(_ref$3, ptrType$14, true)[1]) { $s = 130; continue; } + /* */ if ($assertType(_ref$3, ptrType$30, true)[1]) { $s = 131; continue; } + /* */ if ($assertType(_ref$3, ptrType$26, true)[1]) { $s = 132; continue; } + /* */ if ($assertType(_ref$3, ptrType$10, true)[1]) { $s = 133; continue; } + /* */ if ($assertType(_ref$3, ptrType$15, true)[1]) { $s = 134; continue; } + /* */ if (_ref$3 === $ifaceNil) { $s = 135; continue; } + /* */ $s = 136; continue; + /* if ($assertType(_ref$3, ptrType$4, true)[1]) { */ case 123: + x$3 = _ref$3.$val; + _tuple$7 = $assertType(y[0], ptrType$4, true); + y$1 = _tuple$7[0]; + ok$1 = _tuple$7[1]; + /* */ if (ok$1) { $s = 138; continue; } + /* */ $s = 139; continue; + /* if (ok$1) { */ case 138: + result[0] = x$3.kind === y$1.kind; + $24r$18 = result[0]; + $s = 140; case 140: return $24r$18; + /* } */ case 139: + $s = 137; continue; + /* } else if ($assertType(_ref$3, ptrType$11, true)[1]) { */ case 124: + x$4 = _ref$3.$val; + _tuple$8 = $assertType(y[0], ptrType$11, true); + y$2 = _tuple$8[0]; + ok$2 = _tuple$8[1]; + /* */ if (ok$2) { $s = 141; continue; } + /* */ $s = 142; continue; + /* if (ok$2) { */ case 141: + if (!((x$17 = x$4.len, (x$17.$high < 0 || (x$17.$high === 0 && x$17.$low < 0))) || (x$18 = y$2.len, (x$18.$high < 0 || (x$18.$high === 0 && x$18.$low < 0))) || (x$19 = x$4.len, x$20 = y$2.len, (x$19.$high === x$20.$high && x$19.$low === x$20.$low)))) { _v$4 = false; $s = 143; continue s; } + _r$20 = u[0].nify(x$4.elem, y$2.elem, emode, p); /* */ $s = 144; case 144: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + _v$4 = _r$20; case 143: + result[0] = _v$4; + $24r$19 = result[0]; + $s = 145; case 145: return $24r$19; + /* } */ case 142: + $s = 137; continue; + /* } else if ($assertType(_ref$3, ptrType$27, true)[1]) { */ case 125: + x$5 = _ref$3.$val; + _tuple$9 = $assertType(y[0], ptrType$27, true); + y$3 = _tuple$9[0]; + ok$3 = _tuple$9[1]; + /* */ if (ok$3) { $s = 146; continue; } + /* */ $s = 147; continue; + /* if (ok$3) { */ case 146: + _r$21 = u[0].nify(x$5.elem, y$3.elem, emode, p); /* */ $s = 148; case 148: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + result[0] = _r$21; + $24r$20 = result[0]; + $s = 149; case 149: return $24r$20; + /* } */ case 147: + $s = 137; continue; + /* } else if ($assertType(_ref$3, ptrType$12, true)[1]) { */ case 126: + x$6 = _ref$3.$val; + _tuple$10 = $assertType(y[0], ptrType$12, true); + y$4 = _tuple$10[0]; + ok$4 = _tuple$10[1]; + /* */ if (ok$4) { $s = 150; continue; } + /* */ $s = 151; continue; + /* if (ok$4) { */ case 150: + /* */ if (x$6.NumFields() === y$4.NumFields()) { $s = 152; continue; } + /* */ $s = 153; continue; + /* if (x$6.NumFields() === y$4.NumFields()) { */ case 152: + _ref$4 = x$6.fields; + _i$3 = 0; + /* while (true) { */ case 154: + /* if (!(_i$3 < _ref$4.$length)) { break; } */ if(!(_i$3 < _ref$4.$length)) { $s = 155; continue; } + i = _i$3; + f = ((_i$3 < 0 || _i$3 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$3]); + g = (x$21 = y$4.fields, ((i < 0 || i >= x$21.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$21.$array[x$21.$offset + i])); + if (!(f.embedded === g.embedded) || !(x$6.Tag(i) === y$4.Tag(i)) || !f.object.sameId(g.object.pkg, g.object.name)) { _v$5 = true; $s = 158; continue s; } + _r$22 = u[0].nify(f.object.typ, g.object.typ, emode, p); /* */ $s = 159; case 159: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + _v$5 = !_r$22; case 158: + /* */ if (_v$5) { $s = 156; continue; } + /* */ $s = 157; continue; + /* if (_v$5) { */ case 156: + result[0] = false; + $24r$21 = result[0]; + $s = 160; case 160: return $24r$21; + /* } */ case 157: + _i$3++; + $s = 154; continue; + case 155: + result[0] = true; + $24r$22 = result[0]; + $s = 161; case 161: return $24r$22; + /* } */ case 153: + /* } */ case 151: + $s = 137; continue; + /* } else if ($assertType(_ref$3, ptrType$28, true)[1]) { */ case 127: + x$7 = _ref$3.$val; + _tuple$11 = $assertType(y[0], ptrType$28, true); + y$5 = _tuple$11[0]; + ok$5 = _tuple$11[1]; + /* */ if (ok$5) { $s = 162; continue; } + /* */ $s = 163; continue; + /* if (ok$5) { */ case 162: + _r$23 = u[0].nify(x$7.base, y$5.base, emode, p); /* */ $s = 164; case 164: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + result[0] = _r$23; + $24r$23 = result[0]; + $s = 165; case 165: return $24r$23; + /* } */ case 163: + $s = 137; continue; + /* } else if ($assertType(_ref$3, ptrType$16, true)[1]) { */ case 128: + x$8 = _ref$3.$val; + _tuple$12 = $assertType(y[0], ptrType$16, true); + y$6 = _tuple$12[0]; + ok$6 = _tuple$12[1]; + /* */ if (ok$6) { $s = 166; continue; } + /* */ $s = 167; continue; + /* if (ok$6) { */ case 166: + /* */ if (x$8.Len() === y$6.Len()) { $s = 168; continue; } + /* */ $s = 169; continue; + /* if (x$8.Len() === y$6.Len()) { */ case 168: + /* */ if (!(x$8 === ptrType$16.nil)) { $s = 170; continue; } + /* */ $s = 171; continue; + /* if (!(x$8 === ptrType$16.nil)) { */ case 170: + _ref$5 = x$8.vars; + _i$4 = 0; + /* while (true) { */ case 172: + /* if (!(_i$4 < _ref$5.$length)) { break; } */ if(!(_i$4 < _ref$5.$length)) { $s = 173; continue; } + i$1 = _i$4; + v = ((_i$4 < 0 || _i$4 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$4]); + w = (x$22 = y$6.vars, ((i$1 < 0 || i$1 >= x$22.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$22.$array[x$22.$offset + i$1])); + _r$24 = u[0].nify(v.object.typ, w.object.typ, mode, p); /* */ $s = 176; case 176: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + /* */ if (!_r$24) { $s = 174; continue; } + /* */ $s = 175; continue; + /* if (!_r$24) { */ case 174: + result[0] = false; + $24r$24 = result[0]; + $s = 177; case 177: return $24r$24; + /* } */ case 175: + _i$4++; + $s = 172; continue; + case 173: + /* } */ case 171: + result[0] = true; + $24r$25 = result[0]; + $s = 178; case 178: return $24r$25; + /* } */ case 169: + /* } */ case 167: + $s = 137; continue; + /* } else if ($assertType(_ref$3, ptrType$29, true)[1]) { */ case 129: + x$9 = _ref$3.$val; + _tuple$13 = $assertType(y[0], ptrType$29, true); + y$7 = _tuple$13[0]; + ok$7 = _tuple$13[1]; + /* */ if (ok$7) { $s = 179; continue; } + /* */ $s = 180; continue; + /* if (ok$7) { */ case 179: + if (!(x$9.variadic === y$7.variadic)) { _v$7 = false; $s = 182; continue s; } + _r$25 = u[0].nify(x$9.params, y$7.params, emode, p); /* */ $s = 183; case 183: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _v$7 = _r$25; case 182: + if (!(_v$7)) { _v$6 = false; $s = 181; continue s; } + _r$26 = u[0].nify(x$9.results, y$7.results, emode, p); /* */ $s = 184; case 184: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + _v$6 = _r$26; case 181: + result[0] = _v$6; + $24r$26 = result[0]; + $s = 185; case 185: return $24r$26; + /* } */ case 180: + $s = 137; continue; + /* } else if ($assertType(_ref$3, ptrType$14, true)[1]) { */ case 130: + x$10 = _ref$3.$val; + $r = assert(!u[0].enableInterfaceInference || !((((mode & 2) >>> 0) === 0))); /* */ $s = 186; case 186: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tuple$14 = $assertType(y[0], ptrType$14, true); + y$8 = _tuple$14[0]; + ok$8 = _tuple$14[1]; + /* */ if (ok$8) { $s = 187; continue; } + /* */ $s = 188; continue; + /* if (ok$8) { */ case 187: + _r$27 = x$10.typeSet(); /* */ $s = 189; case 189: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + xset$1 = _r$27; + _r$28 = y$8.typeSet(); /* */ $s = 190; case 190: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + yset$1 = _r$28; + /* */ if (!(xset$1.comparable === yset$1.comparable)) { $s = 191; continue; } + /* */ $s = 192; continue; + /* if (!(xset$1.comparable === yset$1.comparable)) { */ case 191: + result[0] = false; + $24r$27 = result[0]; + $s = 193; case 193: return $24r$27; + /* } */ case 192: + _r$29 = xset$1.terms.equal(yset$1.terms); /* */ $s = 196; case 196: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + /* */ if (!_r$29) { $s = 194; continue; } + /* */ $s = 195; continue; + /* if (!_r$29) { */ case 194: + result[0] = false; + $24r$28 = result[0]; + $s = 197; case 197: return $24r$28; + /* } */ case 195: + a = xset$1.methods; + b = yset$1.methods; + /* */ if (a.$length === b.$length) { $s = 198; continue; } + /* */ $s = 199; continue; + /* if (a.$length === b.$length) { */ case 198: + q$1 = new ifacePair.ptr(x$10, y$8, p); + /* while (true) { */ case 200: + /* if (!(!(p === ptrType$24.nil))) { break; } */ if(!(!(p === ptrType$24.nil))) { $s = 201; continue; } + /* */ if (p.identical(q$1)) { $s = 202; continue; } + /* */ $s = 203; continue; + /* if (p.identical(q$1)) { */ case 202: + result[0] = true; + $24r$29 = result[0]; + $s = 204; case 204: return $24r$29; + /* } */ case 203: + p = p.prev; + $s = 200; continue; + case 201: + /* */ if (false) { $s = 205; continue; } + /* */ $s = 206; continue; + /* if (false) { */ case 205: + $r = assertSortedMethods(a); /* */ $s = 207; case 207: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = assertSortedMethods(b); /* */ $s = 208; case 208: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 206: + _ref$6 = a; + _i$5 = 0; + /* while (true) { */ case 209: + /* if (!(_i$5 < _ref$6.$length)) { break; } */ if(!(_i$5 < _ref$6.$length)) { $s = 210; continue; } + i$2 = _i$5; + f$1 = ((_i$5 < 0 || _i$5 >= _ref$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$6.$array[_ref$6.$offset + _i$5]); + g$1 = ((i$2 < 0 || i$2 >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i$2]); + if (!(f$1.object.Id() === g$1.object.Id())) { _v$8 = true; $s = 213; continue s; } + _r$30 = u[0].nify(f$1.object.typ, g$1.object.typ, 2, q$1); /* */ $s = 214; case 214: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } + _v$8 = !_r$30; case 213: + /* */ if (_v$8) { $s = 211; continue; } + /* */ $s = 212; continue; + /* if (_v$8) { */ case 211: + result[0] = false; + $24r$30 = result[0]; + $s = 215; case 215: return $24r$30; + /* } */ case 212: + _i$5++; + $s = 209; continue; + case 210: + result[0] = true; + $24r$31 = result[0]; + $s = 216; case 216: return $24r$31; + /* } */ case 199: + /* } */ case 188: + $s = 137; continue; + /* } else if ($assertType(_ref$3, ptrType$30, true)[1]) { */ case 131: + x$11 = _ref$3.$val; + _tuple$15 = $assertType(y[0], ptrType$30, true); + y$9 = _tuple$15[0]; + ok$9 = _tuple$15[1]; + /* */ if (ok$9) { $s = 217; continue; } + /* */ $s = 218; continue; + /* if (ok$9) { */ case 217: + _r$31 = u[0].nify(x$11.key, y$9.key, emode, p); /* */ $s = 220; case 220: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } + if (!(_r$31)) { _v$9 = false; $s = 219; continue s; } + _r$32 = u[0].nify(x$11.elem, y$9.elem, emode, p); /* */ $s = 221; case 221: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } + _v$9 = _r$32; case 219: + result[0] = _v$9; + $24r$32 = result[0]; + $s = 222; case 222: return $24r$32; + /* } */ case 218: + $s = 137; continue; + /* } else if ($assertType(_ref$3, ptrType$26, true)[1]) { */ case 132: + x$12 = _ref$3.$val; + _tuple$16 = $assertType(y[0], ptrType$26, true); + y$10 = _tuple$16[0]; + ok$10 = _tuple$16[1]; + /* */ if (ok$10) { $s = 223; continue; } + /* */ $s = 224; continue; + /* if (ok$10) { */ case 223: + if (!((((mode & 2) >>> 0) === 0) || (x$12.dir === y$10.dir))) { _v$10 = false; $s = 225; continue s; } + _r$33 = u[0].nify(x$12.elem, y$10.elem, emode, p); /* */ $s = 226; case 226: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } + _v$10 = _r$33; case 225: + result[0] = _v$10; + $24r$33 = result[0]; + $s = 227; case 227: return $24r$33; + /* } */ case 224: + $s = 137; continue; + /* } else if ($assertType(_ref$3, ptrType$10, true)[1]) { */ case 133: + x$13 = _ref$3.$val; + _tuple$17 = $assertType(y[0], ptrType$10, true); + y$11 = _tuple$17[0]; + ok$11 = _tuple$17[1]; + /* */ if (ok$11) { $s = 228; continue; } + /* */ $s = 229; continue; + /* if (ok$11) { */ case 228: + xargs = x$13.TypeArgs().list(); + yargs = y$11.TypeArgs().list(); + /* */ if (!((xargs.$length === yargs.$length))) { $s = 230; continue; } + /* */ $s = 231; continue; + /* if (!((xargs.$length === yargs.$length))) { */ case 230: + result[0] = false; + $24r$34 = result[0]; + $s = 232; case 232: return $24r$34; + /* } */ case 231: + _ref$7 = xargs; + _i$6 = 0; + /* while (true) { */ case 233: + /* if (!(_i$6 < _ref$7.$length)) { break; } */ if(!(_i$6 < _ref$7.$length)) { $s = 234; continue; } + i$3 = _i$6; + xarg = ((_i$6 < 0 || _i$6 >= _ref$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$7.$array[_ref$7.$offset + _i$6]); + _r$34 = u[0].nify(xarg, ((i$3 < 0 || i$3 >= yargs.$length) ? ($throwRuntimeError("index out of range"), undefined) : yargs.$array[yargs.$offset + i$3]), mode, p); /* */ $s = 237; case 237: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } + /* */ if (!_r$34) { $s = 235; continue; } + /* */ $s = 236; continue; + /* if (!_r$34) { */ case 235: + result[0] = false; + $24r$35 = result[0]; + $s = 238; case 238: return $24r$35; + /* } */ case 236: + _i$6++; + $s = 233; continue; + case 234: + result[0] = indenticalOrigin(x$13, y$11); + $24r$36 = result[0]; + $s = 239; case 239: return $24r$36; + /* } */ case 229: + $s = 137; continue; + /* } else if ($assertType(_ref$3, ptrType$15, true)[1]) { */ case 134: + x$14 = _ref$3.$val; + /* */ if (false) { $s = 240; continue; } + /* */ $s = 241; continue; + /* if (false) { */ case 240: + $r = assert(u[0].asTypeParam(x$14) === ptrType$15.nil); /* */ $s = 242; case 242: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 241: + /* */ if (true) { $s = 243; continue; } + /* */ $s = 244; continue; + /* if (true) { */ case 243: + _r$35 = coreType(x$14); /* */ $s = 245; case 245: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } + cx = _r$35; + /* */ if (!($interfaceIsEqual(cx, $ifaceNil))) { $s = 246; continue; } + /* */ $s = 247; continue; + /* if (!($interfaceIsEqual(cx, $ifaceNil))) { */ case 246: + /* */ if (false) { $s = 248; continue; } + /* */ $s = 249; continue; + /* if (false) { */ case 248: + $r = u[0].tracef("core %s \xE2\x89\xA1 %s", new sliceType$5([x$14, y[0]])); /* */ $s = 250; case 250: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 249: + _r$36 = u[0].nify(cx, y[0], 1, p); /* */ $s = 251; case 251: if($c) { $c = false; _r$36 = _r$36.$blk(); } if (_r$36 && _r$36.$blk !== undefined) { break s; } + result[0] = _r$36; + $24r$37 = result[0]; + $s = 252; case 252: return $24r$37; + /* } */ case 247: + /* } */ case 244: + $s = 137; continue; + /* } else if (_ref$3 === $ifaceNil) { */ case 135: + x$15 = _ref$3; + $s = 137; continue; + /* } else { */ case 136: + x$16 = _ref$3; + _r$37 = sprintf(ptrType$25.nil, $throwNilPointerError, true, "u.nify(%s, %s, %d)", new sliceType$5([x$16, y[0], new unifyMode(mode)])); /* */ $s = 253; case 253: if($c) { $c = false; _r$37 = _r$37.$blk(); } if (_r$37 && _r$37.$blk !== undefined) { break s; } + $panic(new $String(_r$37)); + /* } */ case 137: + result[0] = false; + $24r$38 = result[0]; + $s = 254; case 254: return $24r$38; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return result[0]; } if($curGoroutine.asleep) { var $f = {$blk: nify, $c: true, $r, $24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$13, $24r$14, $24r$15, $24r$16, $24r$17, $24r$18, $24r$19, $24r$2, $24r$20, $24r$21, $24r$22, $24r$23, $24r$24, $24r$25, $24r$26, $24r$27, $24r$28, $24r$29, $24r$3, $24r$30, $24r$31, $24r$32, $24r$33, $24r$34, $24r$35, $24r$36, $24r$37, $24r$38, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _entry, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _key, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, _v$10, _v$2, _v$3, _v$4, _v$5, _v$6, _v$7, _v$8, _v$9, a, b, cx, emode, f, f$1, g, g$1, i, i$1, i$2, i$3, mode, ny, obj, ok, ok$1, ok$10, ok$11, ok$2, ok$3, ok$4, ok$5, ok$6, ok$7, ok$8, ok$9, p, px, py, q, q$1, result, u, v, w, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$3, x$4, x$5, x$6, x$7, x$8, x$9, xarg, xargs, xi, xi$1, xm, xm$1, xmethods, xmethods$1, xn, xset, xset$1, y, y$1, y$10, y$11, y$2, y$3, y$4, y$5, y$6, y$7, y$8, y$9, yargs, yc, yi, yi$1, ym, ym$1, ym$2, ymap, ymethods, yn, yset, yset$1, $s, $deferred};return $f; } } + }; + under = function under$1(t) { + var {$24r, $24r$1, _r, _r$1, _tuple, t, t$1, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _tuple = $assertType(t, ptrType$10, true); + t$1 = _tuple[0]; + /* */ if (!(t$1 === ptrType$10.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(t$1 === ptrType$10.nil)) { */ case 1: + _r = t$1.under(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; + /* } */ case 2: + _r$1 = t.Underlying(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r$1 = _r$1; + $s = 6; case 6: return $24r$1; + /* */ } return; } var $f = {$blk: under$1, $c: true, $r, $24r, $24r$1, _r, _r$1, _tuple, t, t$1, $s};return $f; + }; + coreType = function coreType$1(t) { + var {$24r, _r, _r$1, _tuple, su, t, tpar, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + su = [su]; + _tuple = $assertType(t, ptrType$15, true); + tpar = _tuple[0]; + /* */ if (tpar === ptrType$15.nil) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (tpar === ptrType$15.nil) { */ case 1: + _r = under(t); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; + /* } */ case 2: + su[0] = $ifaceNil; + _r$1 = tpar.underIs((function(su) { return function coreType·func1(u) { + var {_r$1, u, $s, $r, $c} = $restore(this, {u}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if ($interfaceIsEqual(u, $ifaceNil)) { + $s = -1; return false; + } + /* */ if (!($interfaceIsEqual(su[0], $ifaceNil))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!($interfaceIsEqual(su[0], $ifaceNil))) { */ case 1: + _r$1 = match(su[0], u); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + u = _r$1; + if ($interfaceIsEqual(u, $ifaceNil)) { + $s = -1; return false; + } + /* } */ case 2: + su[0] = u; + $s = -1; return true; + /* */ } return; } var $f = {$blk: coreType·func1, $c: true, $r, _r$1, u, $s};return $f; + }; })(su)); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_r$1) { */ case 5: + $s = -1; return su[0]; + /* } */ case 6: + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: coreType$1, $c: true, $r, $24r, _r, _r$1, _tuple, su, t, tpar, $s};return $f; + }; + coreString = function coreString$1(t) { + var {$24r, _r, _r$1, _tuple, hasString, su, t, tpar, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + hasString = [hasString]; + su = [su]; + _tuple = $assertType(t, ptrType$15, true); + tpar = _tuple[0]; + /* */ if (tpar === ptrType$15.nil) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (tpar === ptrType$15.nil) { */ case 1: + _r = under(t); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; + /* } */ case 2: + su[0] = $ifaceNil; + hasString[0] = false; + _r$1 = tpar.underIs((function(hasString, su) { return function coreString·func1(u) { + var {_r$1, _r$2, u, $s, $r, $c} = $restore(this, {u}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if ($interfaceIsEqual(u, $ifaceNil)) { + $s = -1; return false; + } + _r$1 = isString(u); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r$1) { */ case 1: + u = NewSlice(universeByte); + hasString[0] = true; + /* } */ case 2: + /* */ if (!($interfaceIsEqual(su[0], $ifaceNil))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!($interfaceIsEqual(su[0], $ifaceNil))) { */ case 4: + _r$2 = match(su[0], u); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + u = _r$2; + if ($interfaceIsEqual(u, $ifaceNil)) { + $s = -1; return false; + } + /* } */ case 5: + su[0] = u; + $s = -1; return true; + /* */ } return; } var $f = {$blk: coreString·func1, $c: true, $r, _r$1, _r$2, u, $s};return $f; + }; })(hasString, su)); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_r$1) { */ case 5: + if (hasString[0]) { + $s = -1; return (17 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 17]); + } + $s = -1; return su[0]; + /* } */ case 6: + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: coreString$1, $c: true, $r, $24r, _r, _r$1, _tuple, hasString, su, t, tpar, $s};return $f; + }; + match = function match$1(x, y) { + var {_r, _r$1, _tuple, _tuple$1, _v, x, x$1, y, y$1, $s, $r, $c} = $restore(this, {x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = Identical(x, y); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r) { */ case 1: + $s = -1; return x; + /* } */ case 2: + _tuple = $assertType(x, ptrType$26, true); + x$1 = _tuple[0]; + /* */ if (!(x$1 === ptrType$26.nil)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!(x$1 === ptrType$26.nil)) { */ case 4: + _tuple$1 = $assertType(y, ptrType$26, true); + y$1 = _tuple$1[0]; + if (!(!(y$1 === ptrType$26.nil))) { _v = false; $s = 8; continue s; } + _r$1 = Identical(x$1.elem, y$1.elem); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = _r$1; case 8: + /* */ if (_v) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (_v) { */ case 6: + if ((x$1.dir === 0)) { + $s = -1; return y$1; + } else if ((y$1.dir === 0)) { + $s = -1; return x$1; + } + /* } */ case 7: + /* } */ case 5: + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: match$1, $c: true, $r, _r, _r$1, _tuple, _tuple$1, _v, x, x$1, y, y$1, $s};return $f; + }; + $ptrType(Checker).prototype.ident = function ident(x, e, def$2, wantType) { + var {_1, _entry, _entry$1, _r, _r$1, _r$2, _r$3, _r$4, _ref, _tuple, _tuple$1, check, def$2, e, gotType, obj, obj$1, obj$2, obj$3, obj$4, obj$5, obj$6, obj$7, obj$8, pkgName, scope, tpar, typ, wantType, x, $s, $r, $c} = $restore(this, {x, e, def$2, wantType}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + x.mode = 0; + x.expr = e; + _r = check.environment.scope.LookupParent(e.Name, check.environment.pos); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + scope = _tuple[0]; + obj = _tuple[1]; + _1 = obj; + /* */ if ($interfaceIsEqual(_1, $ifaceNil)) { $s = 3; continue; } + /* */ if ($interfaceIsEqual(_1, (universeAny)) || $interfaceIsEqual(_1, (universeComparable))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ($interfaceIsEqual(_1, $ifaceNil)) { */ case 3: + /* */ if (e.Name === "_") { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (e.Name === "_") { */ case 6: + tpar = (_entry = $mapIndex(check.recvTParamMap,ptrType$31.keyFor(e)), _entry !== undefined ? _entry.v : ptrType$15.nil); + /* */ if (!(tpar === ptrType$15.nil)) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!(tpar === ptrType$15.nil)) { */ case 9: + x.mode = 3; + x.typ = tpar; + $s = 11; continue; + /* } else { */ case 10: + $r = check.error(e, 35, "cannot use _ as value or type"); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 11: + $s = 8; continue; + /* } else { */ case 7: + $r = check.errorf(e, 75, "undefined: %s", new sliceType$5([new $String(e.Name)])); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 8: + $s = -1; return; + /* } else if ($interfaceIsEqual(_1, (universeAny)) || $interfaceIsEqual(_1, (universeComparable))) { */ case 4: + _r$1 = check.verifyVersionf(e, $clone(go1_18, version), "predeclared %s", new sliceType$5([new $String(e.Name)])); /* */ $s = 16; case 16: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (!_r$1) { */ case 14: + $s = -1; return; + /* } */ case 15: + /* } */ case 5: + case 2: + $r = check.recordUse(e, obj); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = obj.Type(); /* */ $s = 18; case 18: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + typ = _r$2; + _tuple$1 = $assertType(obj, ptrType$18, true); + gotType = _tuple$1[1]; + /* */ if ($interfaceIsEqual(typ, $ifaceNil) || gotType && wantType) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if ($interfaceIsEqual(typ, $ifaceNil) || gotType && wantType) { */ case 19: + $r = check.objDecl(obj, def$2); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$3 = obj.Type(); /* */ $s = 22; case 22: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + typ = _r$3; + /* } */ case 20: + $r = assert(!($interfaceIsEqual(typ, $ifaceNil))); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$4 = obj.Name(); /* */ $s = 24; case 24: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + pkgName = (_entry$1 = $mapIndex(check.dotImportMap,dotImportKey.keyFor(new dotImportKey.ptr(scope, _r$4))), _entry$1 !== undefined ? _entry$1.v : ptrType$32.nil); + if (!(pkgName === ptrType$32.nil)) { + pkgName.used = true; + } + _ref = obj; + /* */ if ($assertType(_ref, ptrType$32, true)[1]) { $s = 25; continue; } + /* */ if ($assertType(_ref, ptrType$33, true)[1]) { $s = 26; continue; } + /* */ if ($assertType(_ref, ptrType$18, true)[1]) { $s = 27; continue; } + /* */ if ($assertType(_ref, ptrType$17, true)[1]) { $s = 28; continue; } + /* */ if ($assertType(_ref, ptrType$2, true)[1]) { $s = 29; continue; } + /* */ if ($assertType(_ref, ptrType$19, true)[1]) { $s = 30; continue; } + /* */ if ($assertType(_ref, ptrType$34, true)[1]) { $s = 31; continue; } + /* */ $s = 32; continue; + /* if ($assertType(_ref, ptrType$32, true)[1]) { */ case 25: + obj$1 = _ref.$val; + $r = check.errorf(e, 4, "use of package %s not in selector", new sliceType$5([new $String(obj$1.object.name)])); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } else if ($assertType(_ref, ptrType$33, true)[1]) { */ case 26: + obj$2 = _ref.$val; + check.addDeclDep(obj$2); + if ($interfaceIsEqual(typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { + $s = -1; return; + } + /* */ if ($interfaceIsEqual(obj$2, universeIota)) { $s = 35; continue; } + /* */ $s = 36; continue; + /* if ($interfaceIsEqual(obj$2, universeIota)) { */ case 35: + /* */ if ($interfaceIsEqual(check.environment.iota, $ifaceNil)) { $s = 38; continue; } + /* */ $s = 39; continue; + /* if ($interfaceIsEqual(check.environment.iota, $ifaceNil)) { */ case 38: + $r = check.error(e, 36, "cannot use iota outside constant declaration"); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 39: + x.val = check.environment.iota; + $s = 37; continue; + /* } else { */ case 36: + x.val = obj$2.val; + /* } */ case 37: + $r = assert(!($interfaceIsEqual(x.val, $ifaceNil))); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 4; + $s = 33; continue; + /* } else if ($assertType(_ref, ptrType$18, true)[1]) { */ case 27: + obj$3 = _ref.$val; + /* */ if (check.isBrokenAlias(obj$3)) { $s = 42; continue; } + /* */ $s = 43; continue; + /* if (check.isBrokenAlias(obj$3)) { */ case 42: + $r = check.errorf(e, 11, "invalid use of type alias %s in recursive type (see go.dev/issue/50729)", new sliceType$5([new $String(obj$3.object.name)])); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 43: + x.mode = 3; + $s = 33; continue; + /* } else if ($assertType(_ref, ptrType$17, true)[1]) { */ case 28: + obj$4 = _ref.$val; + if (obj$4.object.pkg === check.pkg) { + obj$4.used = true; + } + check.addDeclDep(obj$4); + if ($interfaceIsEqual(typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { + $s = -1; return; + } + x.mode = 5; + $s = 33; continue; + /* } else if ($assertType(_ref, ptrType$2, true)[1]) { */ case 29: + obj$5 = _ref.$val; + check.addDeclDep(obj$5); + x.mode = 7; + $s = 33; continue; + /* } else if ($assertType(_ref, ptrType$19, true)[1]) { */ case 30: + obj$6 = _ref.$val; + x.id = obj$6.id; + x.mode = 2; + $s = 33; continue; + /* } else if ($assertType(_ref, ptrType$34, true)[1]) { */ case 31: + obj$7 = _ref.$val; + x.mode = 7; + $s = 33; continue; + /* } else { */ case 32: + obj$8 = _ref; + unreachable(); + /* } */ case 33: + x.typ = typ; + $s = -1; return; + /* */ } return; } var $f = {$blk: ident, $c: true, $r, _1, _entry, _entry$1, _r, _r$1, _r$2, _r$3, _r$4, _ref, _tuple, _tuple$1, check, def$2, e, gotType, obj, obj$1, obj$2, obj$3, obj$4, obj$5, obj$6, obj$7, obj$8, pkgName, scope, tpar, typ, wantType, x, $s};return $f; + }; + $ptrType(Checker).prototype.typ = function typ(e) { + var {$24r, _r, check, e, $s, $r, $c} = $restore(this, {e}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _r = check.definedType(e, ptrType$10.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: typ, $c: true, $r, $24r, _r, check, e, $s};return $f; + }; + $ptrType(Checker).prototype.varType = function varType(e) { + var {_r, check, e, typ$1, $s, $r, $c} = $restore(this, {e}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _r = check.definedType(e, ptrType$10.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + typ$1 = _r; + check.validVarType(e, typ$1); + $s = -1; return typ$1; + /* */ } return; } var $f = {$blk: varType, $c: true, $r, _r, check, e, typ$1, $s};return $f; + }; + $ptrType(Checker).prototype.validVarType = function validVarType(e, typ$1) { + var check, e, typ$1; + check = this; + if (isTypeParam(typ$1)) { + return; + } + check.later((function Checker·validVarType·func1() { + var {_arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, t, tset, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = under(typ$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = $assertType(_r, ptrType$14, true); + t = _tuple[0]; + /* */ if (!(t === ptrType$14.nil)) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!(t === ptrType$14.nil)) { */ case 2: + _arg = check; + _r$1 = e.Pos(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg$1 = _r$1; + _arg$2 = t; + _r$2 = computeInterfaceTypeSet(_arg, _arg$1, _arg$2); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + tset = _r$2; + /* */ if (!tset.IsMethodSet()) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (!tset.IsMethodSet()) { */ case 6: + /* */ if (tset.comparable) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (tset.comparable) { */ case 8: + $r = check.softErrorf(e, 142, "cannot use type %s outside a type constraint: interface is (or embeds) comparable", new sliceType$5([typ$1])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 10; continue; + /* } else { */ case 9: + $r = check.softErrorf(e, 142, "cannot use type %s outside a type constraint: interface contains type constraints", new sliceType$5([typ$1])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 10: + /* } */ case 7: + /* } */ case 3: + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·validVarType·func1, $c: true, $r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, t, tset, $s};return $f; + })).describef(e, "check var type %s", new sliceType$5([typ$1])); + }; + $ptrType(Checker).prototype.definedType = function definedType(e, def$2) { + var {_r, _r$1, check, def$2, e, typ$1, $s, $r, $c} = $restore(this, {e, def$2}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _r = check.typInternal(e, def$2); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + typ$1 = _r; + $r = assert(isTyped(typ$1)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = isGeneric(typ$1); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_r$1) { */ case 3: + $r = check.errorf(e, 137, "cannot use generic type %s without instantiation", new sliceType$5([typ$1])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + typ$1 = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + /* } */ case 4: + $r = check.recordTypeAndValue(e, 3, typ$1, $ifaceNil); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return typ$1; + /* */ } return; } var $f = {$blk: definedType, $c: true, $r, _r, _r$1, check, def$2, e, typ$1, $s};return $f; + }; + $ptrType(Checker).prototype.genericType = function genericType(e, cause) { + var {_r, _r$1, _r$2, _v, cause, check, e, typ$1, $s, $r, $c} = $restore(this, {e, cause}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _r = check.typInternal(e, ptrType$10.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + typ$1 = _r; + $r = assert(isTyped(typ$1)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (!(!($interfaceIsEqual(typ$1, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))))) { _v = false; $s = 5; continue s; } + _r$1 = isGeneric(typ$1); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = !_r$1; case 5: + /* */ if (_v) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_v) { */ case 3: + /* */ if (!(cause === ptrType$35.nil)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!(cause === ptrType$35.nil)) { */ case 7: + _r$2 = check.sprintf("%s is not a generic type", new sliceType$5([typ$1])); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + cause.$set(_r$2); + /* } */ case 8: + typ$1 = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + /* } */ case 4: + $r = check.recordTypeAndValue(e, 3, typ$1, $ifaceNil); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return typ$1; + /* */ } return; } var $f = {$blk: genericType, $c: true, $r, _r, _r$1, _r$2, _v, cause, check, e, typ$1, $s};return $f; + }; + goTypeName = function goTypeName$1(typ$1) { + var {$24r, _r, _r$1, typ$1, $s, $r, $c} = $restore(this, {typ$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = fmt.Sprintf("%T", new sliceType$5([typ$1])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = strings.ReplaceAll(_r, "types.", ""); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: goTypeName$1, $c: true, $r, $24r, _r, _r$1, typ$1, $s};return $f; + }; + $ptrType(Checker).prototype.typInternal = function typInternal(e0, def$2) { + var {$24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, T, _1, _2, _3, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, check, def$2, dir$1, e, e$1, e$10, e$11, e$12, e$13, e$2, e$3, e$4, e$5, e$6, e$7, e$8, e$9, e0, ix, ok, typ$1, typ$10, typ$11, typ$2, typ$3, typ$4, typ$5, typ$6, typ$7, typ$8, typ$9, x, x$1, x$2, x$3, $s, $deferred, $r, $c} = $restore(this, {e0, def$2}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + T = [T]; + check = [check]; + e = [e]; + e0 = [e0]; + typ$1 = [typ$1]; + x = [x]; + x$1 = [x$1]; + T[0] = $ifaceNil; + check[0] = this; + /* */ if (check[0].conf._Trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (check[0].conf._Trace) { */ case 1: + _r = e0[0].Pos(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = check[0].trace(_r, "-- type %s", new sliceType$5([e0[0]])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + check[0].indent = check[0].indent + (1) >> 0; + $deferred.push([(function(T, check, e, e0, typ$1, x, x$1) { return function Checker·typInternal·func1() { + var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _r$1, _r$2, _r$3, _r$4, _r$5, under$2, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check[0].indent = check[0].indent - (1) >> 0; + under$2 = $ifaceNil; + /* */ if (!($interfaceIsEqual(T[0], $ifaceNil))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!($interfaceIsEqual(T[0], $ifaceNil))) { */ case 1: + _r$1 = safeUnderlying(T[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + under$2 = _r$1; + /* } */ case 2: + /* */ if ($interfaceIsEqual(T[0], under$2)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ($interfaceIsEqual(T[0], under$2)) { */ case 4: + _r$2 = e0[0].Pos(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg = _r$2; + _arg$1 = T[0]; + _r$3 = goTypeName(T[0]); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _arg$2 = new $String(_r$3); + $r = check[0].trace(_arg, "=> %s // %s", new sliceType$5([_arg$1, _arg$2])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 6; continue; + /* } else { */ case 5: + _r$4 = e0[0].Pos(); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _arg$3 = _r$4; + _arg$4 = T[0]; + _arg$5 = under$2; + _r$5 = goTypeName(T[0]); /* */ $s = 11; case 11: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _arg$6 = new $String(_r$5); + $r = check[0].trace(_arg$3, "=> %s (under = %s) // %s", new sliceType$5([_arg$4, _arg$5, _arg$6])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·typInternal·func1, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _r$1, _r$2, _r$3, _r$4, _r$5, under$2, $s};return $f; + }; })(T, check, e, e0, typ$1, x, x$1), []]); + /* } */ case 2: + _ref = e0[0]; + /* */ if ($assertType(_ref, ptrType$36, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$31, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$37, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref, ptrType$38, true)[1] || $assertType(_ref, ptrType$39, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref, ptrType$40, true)[1]) { $s = 9; continue; } + /* */ if ($assertType(_ref, ptrType$41, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref, ptrType$42, true)[1]) { $s = 11; continue; } + /* */ if ($assertType(_ref, ptrType$43, true)[1]) { $s = 12; continue; } + /* */ if ($assertType(_ref, ptrType$44, true)[1]) { $s = 13; continue; } + /* */ if ($assertType(_ref, ptrType$45, true)[1]) { $s = 14; continue; } + /* */ if ($assertType(_ref, ptrType$46, true)[1]) { $s = 15; continue; } + /* */ if ($assertType(_ref, ptrType$47, true)[1]) { $s = 16; continue; } + /* */ if ($assertType(_ref, ptrType$48, true)[1]) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if ($assertType(_ref, ptrType$36, true)[1]) { */ case 5: + e$1 = _ref.$val; + $s = 19; continue; + /* } else if ($assertType(_ref, ptrType$31, true)[1]) { */ case 6: + e$2 = _ref.$val; + x[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + $r = check[0].ident(x[0], e$2, def$2, true); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _1 = x[0].mode; + /* */ if (_1 === (3)) { $s = 22; continue; } + /* */ if (_1 === (0)) { $s = 23; continue; } + /* */ if (_1 === (1)) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (_1 === (3)) { */ case 22: + typ$2 = x[0].typ; + def$2.setUnderlying(typ$2); + T[0] = typ$2; + $24r = T[0]; + $s = 27; case 27: return $24r; + /* } else if (_1 === (0)) { */ case 23: + $s = 26; continue; + /* } else if (_1 === (1)) { */ case 24: + $r = check[0].errorf(x[0], 25, "%s used as type", new sliceType$5([x[0]])); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 26; continue; + /* } else { */ case 25: + $r = check[0].errorf(x[0], 25, "%s is not a type", new sliceType$5([x[0]])); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 26: + case 21: + $s = 19; continue; + /* } else if ($assertType(_ref, ptrType$37, true)[1]) { */ case 7: + e$3 = _ref.$val; + x$1[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + $r = check[0].selector(x$1[0], e$3, def$2, true); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _2 = x$1[0].mode; + /* */ if (_2 === (3)) { $s = 32; continue; } + /* */ if (_2 === (0)) { $s = 33; continue; } + /* */ if (_2 === (1)) { $s = 34; continue; } + /* */ $s = 35; continue; + /* if (_2 === (3)) { */ case 32: + typ$3 = x$1[0].typ; + def$2.setUnderlying(typ$3); + T[0] = typ$3; + $24r$1 = T[0]; + $s = 37; case 37: return $24r$1; + /* } else if (_2 === (0)) { */ case 33: + $s = 36; continue; + /* } else if (_2 === (1)) { */ case 34: + $r = check[0].errorf(x$1[0], 25, "%s used as type", new sliceType$5([x$1[0]])); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else { */ case 35: + $r = check[0].errorf(x$1[0], 25, "%s is not a type", new sliceType$5([x$1[0]])); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 36: + case 31: + $s = 19; continue; + /* } else if ($assertType(_ref, ptrType$38, true)[1] || $assertType(_ref, ptrType$39, true)[1]) { */ case 8: + e$4 = _ref; + ix = typeparams.UnpackIndexExpr(e$4); + _r$1 = inNode(e$4, ix.IndexListExpr.Lbrack); /* */ $s = 40; case 40: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = check[0].verifyVersionf((x$2 = _r$1, new x$2.constructor.elem(x$2)), $clone(go1_18, version), "type instantiation", sliceType$5.nil); /* */ $s = 41; case 41: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + _r$3 = check[0].instantiatedType(ix, def$2); /* */ $s = 42; case 42: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + T[0] = _r$3; + $24r$2 = T[0]; + $s = 43; case 43: return $24r$2; + /* } else if ($assertType(_ref, ptrType$40, true)[1]) { */ case 9: + e$5 = _ref.$val; + _r$4 = check[0].definedType(e$5.X, def$2); /* */ $s = 44; case 44: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + T[0] = _r$4; + $24r$3 = T[0]; + $s = 45; case 45: return $24r$3; + /* } else if ($assertType(_ref, ptrType$41, true)[1]) { */ case 10: + e$6 = _ref.$val; + /* */ if ($interfaceIsEqual(e$6.Len, $ifaceNil)) { $s = 46; continue; } + /* */ $s = 47; continue; + /* if ($interfaceIsEqual(e$6.Len, $ifaceNil)) { */ case 46: + typ$4 = new Slice.ptr($ifaceNil); + def$2.setUnderlying(typ$4); + _r$5 = check[0].varType(e$6.Elt); /* */ $s = 48; case 48: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + typ$4.elem = _r$5; + T[0] = typ$4; + $24r$4 = T[0]; + $s = 49; case 49: return $24r$4; + /* } */ case 47: + typ$5 = new Array.ptr(new $Int64(0, 0), $ifaceNil); + def$2.setUnderlying(typ$5); + _tuple = $assertType(e$6.Len, ptrType$42, true); + ok = _tuple[1]; + /* */ if (ok) { $s = 50; continue; } + /* */ $s = 51; continue; + /* if (ok) { */ case 50: + $r = check[0].error(e$6.Len, 77, "invalid use of [...] array (outside a composite literal)"); /* */ $s = 53; case 53: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + typ$5.len = new $Int64(-1, 4294967295); + $s = 52; continue; + /* } else { */ case 51: + _r$6 = check[0].arrayLength(e$6.Len); /* */ $s = 54; case 54: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + typ$5.len = _r$6; + /* } */ case 52: + _r$7 = check[0].varType(e$6.Elt); /* */ $s = 55; case 55: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + typ$5.elem = _r$7; + /* */ if ((x$3 = typ$5.len, (x$3.$high > 0 || (x$3.$high === 0 && x$3.$low >= 0)))) { $s = 56; continue; } + /* */ $s = 57; continue; + /* if ((x$3 = typ$5.len, (x$3.$high > 0 || (x$3.$high === 0 && x$3.$low >= 0)))) { */ case 56: + T[0] = typ$5; + $24r$5 = T[0]; + $s = 58; case 58: return $24r$5; + /* } */ case 57: + $s = 19; continue; + /* } else if ($assertType(_ref, ptrType$42, true)[1]) { */ case 11: + e$7 = _ref.$val; + $r = check[0].error(e$7, 81, "invalid use of '...'"); /* */ $s = 59; case 59: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$8 = check[0].use(new sliceType$10([e$7.Elt])); /* */ $s = 60; case 60: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$8; + $s = 19; continue; + /* } else if ($assertType(_ref, ptrType$43, true)[1]) { */ case 12: + e$8 = _ref.$val; + typ$6 = new Struct.ptr(sliceType$9.nil, sliceType$13.nil); + def$2.setUnderlying(typ$6); + $r = check[0].structType(typ$6, e$8); /* */ $s = 61; case 61: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + T[0] = typ$6; + $24r$6 = T[0]; + $s = 62; case 62: return $24r$6; + /* } else if ($assertType(_ref, ptrType$44, true)[1]) { */ case 13: + e$9 = _ref.$val; + typ$7 = new Pointer.ptr($ifaceNil); + typ$7.base = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + def$2.setUnderlying(typ$7); + _r$9 = check[0].varType(e$9.X); /* */ $s = 63; case 63: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + typ$7.base = _r$9; + T[0] = typ$7; + $24r$7 = T[0]; + $s = 64; case 64: return $24r$7; + /* } else if ($assertType(_ref, ptrType$45, true)[1]) { */ case 14: + e$10 = _ref.$val; + typ$8 = new Signature.ptr(ptrType$49.nil, ptrType$49.nil, ptrType.nil, ptrType$17.nil, ptrType$16.nil, ptrType$16.nil, false); + def$2.setUnderlying(typ$8); + $r = check[0].funcType(typ$8, ptrType$50.nil, e$10); /* */ $s = 65; case 65: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + T[0] = typ$8; + $24r$8 = T[0]; + $s = 66; case 66: return $24r$8; + /* } else if ($assertType(_ref, ptrType$46, true)[1]) { */ case 15: + e$11 = _ref.$val; + typ$9 = check[0].newInterface(); + def$2.setUnderlying(typ$9); + $r = check[0].interfaceType(typ$9, e$11, def$2); /* */ $s = 67; case 67: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + T[0] = typ$9; + $24r$9 = T[0]; + $s = 68; case 68: return $24r$9; + /* } else if ($assertType(_ref, ptrType$47, true)[1]) { */ case 16: + e[0] = _ref.$val; + typ$1[0] = new Map.ptr($ifaceNil, $ifaceNil); + def$2.setUnderlying(typ$1[0]); + _r$10 = check[0].varType(e[0].Key); /* */ $s = 69; case 69: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + typ$1[0].key = _r$10; + _r$11 = check[0].varType(e[0].Value); /* */ $s = 70; case 70: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + typ$1[0].elem = _r$11; + check[0].later((function(T, check, e, e0, typ$1, x, x$1) { return function Checker·typInternal·func2() { + var {_r$12, why, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$12 = Comparable(typ$1[0].key); /* */ $s = 3; case 3: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + /* */ if (!_r$12) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!_r$12) { */ case 1: + why = ""; + if (isTypeParam(typ$1[0].key)) { + why = " (missing comparable constraint)"; + } + $r = check[0].errorf(e[0].Key, 28, "invalid map key type %s%s", new sliceType$5([typ$1[0].key, new $String(why)])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·typInternal·func2, $c: true, $r, _r$12, why, $s};return $f; + }; })(T, check, e, e0, typ$1, x, x$1)).describef(e[0].Key, "check map key %s", new sliceType$5([typ$1[0].key])); + T[0] = typ$1[0]; + $24r$10 = T[0]; + $s = 71; case 71: return $24r$10; + /* } else if ($assertType(_ref, ptrType$48, true)[1]) { */ case 17: + e$12 = _ref.$val; + typ$10 = new Chan.ptr(0, $ifaceNil); + def$2.setUnderlying(typ$10); + dir$1 = 0; + _3 = e$12.Dir; + /* */ if (_3 === (3)) { $s = 73; continue; } + /* */ if (_3 === (1)) { $s = 74; continue; } + /* */ if (_3 === (2)) { $s = 75; continue; } + /* */ $s = 76; continue; + /* if (_3 === (3)) { */ case 73: + $s = 77; continue; + /* } else if (_3 === (1)) { */ case 74: + dir$1 = 1; + $s = 77; continue; + /* } else if (_3 === (2)) { */ case 75: + dir$1 = 2; + $s = 77; continue; + /* } else { */ case 76: + $r = check[0].errorf(e$12, -1, "unknown channel direction %d", new sliceType$5([new ast.ChanDir(e$12.Dir)])); /* */ $s = 78; case 78: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 77: + case 72: + typ$10.dir = dir$1; + _r$12 = check[0].varType(e$12.Value); /* */ $s = 79; case 79: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + typ$10.elem = _r$12; + T[0] = typ$10; + $24r$11 = T[0]; + $s = 80; case 80: return $24r$11; + /* } else { */ case 18: + e$13 = _ref; + $r = check[0].errorf(e0[0], 25, "%s is not a type", new sliceType$5([e0[0]])); /* */ $s = 81; case 81: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$13 = check[0].use(new sliceType$10([e0[0]])); /* */ $s = 82; case 82: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _r$13; + /* } */ case 19: + typ$11 = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + def$2.setUnderlying(typ$11); + T[0] = typ$11; + $24r$12 = T[0]; + $s = 83; case 83: return $24r$12; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return T[0]; } if($curGoroutine.asleep) { var $f = {$blk: typInternal, $c: true, $r, $24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, T, _1, _2, _3, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, check, def$2, dir$1, e, e$1, e$10, e$11, e$12, e$13, e$2, e$3, e$4, e$5, e$6, e$7, e$8, e$9, e0, ix, ok, typ$1, typ$10, typ$11, typ$2, typ$3, typ$4, typ$5, typ$6, typ$7, typ$8, typ$9, x, x$1, x$2, x$3, $s, $deferred};return $f; } } + }; + $ptrType(Checker).prototype.instantiatedType = function instantiatedType(ix, def$2) { + var {$24r, $24r$1, $24r$2, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, cause, check, def$2, gtyp, inst, ix, orig, res, targs, $s, $deferred, $r, $c} = $restore(this, {ix, def$2}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + cause = [cause]; + check = [check]; + inst = [inst]; + ix = [ix]; + res = [res]; + res[0] = $ifaceNil; + check[0] = this; + /* */ if (check[0].conf._Trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (check[0].conf._Trace) { */ case 1: + _r = ix[0].IndexListExpr.Pos(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = check[0].trace(_r, "-- instantiating type %s with %s", new sliceType$5([ix[0].IndexListExpr.X, ix[0].IndexListExpr.Indices])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + check[0].indent = check[0].indent + (1) >> 0; + $deferred.push([(function(cause, check, inst, ix, res) { return function Checker·instantiatedType·func1() { + var {_r$1, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check[0].indent = check[0].indent - (1) >> 0; + _r$1 = ix[0].IndexListExpr.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $r = check[0].trace(_r$1, "=> %s", new sliceType$5([res[0]])); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·instantiatedType·func1, $c: true, $r, _r$1, $s};return $f; + }; })(cause, check, inst, ix, res), []]); + /* } */ case 2: + cause[0] = ""; + _r$1 = check[0].genericType(ix[0].IndexListExpr.X, (cause.$ptr || (cause.$ptr = new ptrType$35(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, cause)))); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + gtyp = _r$1; + /* */ if (!(cause[0] === "")) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (!(cause[0] === "")) { */ case 6: + $r = check[0].errorf(ix[0].Orig, 136, "invalid operation: %s (%s)", new sliceType$5([ix[0].Orig, new $String(cause[0])])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 7: + /* */ if ($interfaceIsEqual(gtyp, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if ($interfaceIsEqual(gtyp, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { */ case 9: + res[0] = gtyp; + $24r = res[0]; + $s = 11; case 11: return $24r; + /* } */ case 10: + _tuple = $assertType(gtyp, ptrType$10, true); + orig = _tuple[0]; + /* */ if (orig === ptrType$10.nil) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (orig === ptrType$10.nil) { */ case 12: + _r$2 = ix[0].IndexListExpr.Pos(); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg = new token.Pos(_r$2); + _arg$1 = gtyp; + _r$3 = fmt.Sprintf("%v: cannot instantiate %v", new sliceType$5([_arg, _arg$1])); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $panic(new $String(_r$3)); + /* } */ case 13: + _r$4 = check[0].typeList(ix[0].IndexListExpr.Indices); /* */ $s = 16; case 16: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + targs = _r$4; + /* */ if (targs === sliceType$3.nil) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (targs === sliceType$3.nil) { */ case 17: + def$2.setUnderlying((0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])); + res[0] = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + $24r$1 = res[0]; + $s = 19; case 19: return $24r$1; + /* } */ case 18: + _r$5 = ix[0].IndexListExpr.Pos(); /* */ $s = 20; case 20: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$6 = check[0].instance(_r$5, orig, targs, ptrType$10.nil, check[0].context()); /* */ $s = 21; case 21: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + inst[0] = $assertType(_r$6, ptrType$10); + def$2.setUnderlying(inst[0]); + check[0].later((function(cause, check, inst, ix, res) { return function Checker·instantiatedType·func2() { + var {_arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$20, _r$7, _r$8, _r$9, _tuple$1, err, i, pos, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = check[0].recordInstance(ix[0].Orig, inst[0].TypeArgs().list(), inst[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$7 = ix[0].IndexListExpr.Pos(); /* */ $s = 4; case 4: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _arg$2 = _r$7; + _r$8 = inst[0].TypeParams(); /* */ $s = 5; case 5: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$9 = _r$8.Len(); /* */ $s = 6; case 6: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _arg$3 = _r$9; + _arg$4 = inst[0].TypeArgs().Len(); + _r$10 = check[0].validateTArgLen(_arg$2, _arg$3, _arg$4); /* */ $s = 7; case 7: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + /* */ if (_r$10) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (_r$10) { */ case 2: + _r$11 = ix[0].IndexListExpr.Pos(); /* */ $s = 8; case 8: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _arg$5 = _r$11; + _r$12 = inst[0].TypeParams(); /* */ $s = 9; case 9: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _r$13 = _r$12.list(); /* */ $s = 10; case 10: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _arg$6 = _r$13; + _arg$7 = inst[0].TypeArgs().list(); + _arg$8 = check[0].context(); + _r$14 = check[0].verify(_arg$5, _arg$6, _arg$7, _arg$8); /* */ $s = 11; case 11: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _tuple$1 = _r$14; + i = _tuple$1[0]; + err = _tuple$1[1]; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 12: + _r$15 = ix[0].IndexListExpr.Pos(); /* */ $s = 15; case 15: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + pos = _r$15; + /* */ if (i < ix[0].IndexListExpr.Indices.$length) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (i < ix[0].IndexListExpr.Indices.$length) { */ case 16: + _r$16 = (x = ix[0].IndexListExpr.Indices, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])).Pos(); /* */ $s = 18; case 18: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + pos = _r$16; + /* } */ case 17: + _arg$9 = new atPos(((pos >> 0))); + _r$17 = err.Error(); /* */ $s = 19; case 19: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + _arg$10 = _r$17; + $r = check[0].softErrorf(_arg$9, 139, _arg$10, sliceType$5.nil); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 14; continue; + /* } else { */ case 13: + _arg$11 = check[0].pkg; + _r$18 = ix[0].IndexListExpr.Pos(); /* */ $s = 21; case 21: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + _arg$12 = _r$18; + _r$19 = inst[0].TypeParams(); /* */ $s = 22; case 22: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + _r$20 = _r$19.list(); /* */ $s = 23; case 23: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + _arg$13 = _r$20; + _arg$14 = inst[0].TypeArgs().list(); + _arg$15 = ix[0].IndexListExpr.Indices; + $r = check[0].mono.recordInstance(_arg$11, _arg$12, _arg$13, _arg$14, _arg$15); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 14: + /* } */ case 3: + $r = check[0].validType(inst[0]); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·instantiatedType·func2, $c: true, $r, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$20, _r$7, _r$8, _r$9, _tuple$1, err, i, pos, x, $s};return $f; + }; })(cause, check, inst, ix, res)).describef(ix[0], "resolve instance %s", new sliceType$5([inst[0]])); + res[0] = inst[0]; + $24r$2 = res[0]; + $s = 22; case 22: return $24r$2; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return res[0]; } if($curGoroutine.asleep) { var $f = {$blk: instantiatedType, $c: true, $r, $24r, $24r$1, $24r$2, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, cause, check, def$2, gtyp, inst, ix, orig, res, targs, $s, $deferred};return $f; } } + }; + $ptrType(Checker).prototype.arrayLength = function arrayLength(e) { + var {_r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, _tuple$2, _v, check, e, msg, n, name, obj, ok, ok$1, val, x, $s, $r, $c} = $restore(this, {e}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = [x]; + check = this; + _tuple = $assertType(e, ptrType$31, true); + name = _tuple[0]; + /* */ if (!(name === ptrType$31.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(name === ptrType$31.nil)) { */ case 1: + _r = check.environment.lookup(name.Name); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + obj = _r; + /* */ if ($interfaceIsEqual(obj, $ifaceNil)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ($interfaceIsEqual(obj, $ifaceNil)) { */ case 4: + $r = check.errorf(name, 26, "undefined array length %s or missing type constraint", new sliceType$5([new $String(name.Name)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return new $Int64(-1, 4294967295); + /* } */ case 5: + _tuple$1 = $assertType(obj, ptrType$33, true); + ok = _tuple$1[1]; + /* */ if (!ok) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!ok) { */ case 7: + $r = check.errorf(name, 26, "invalid array length %s", new sliceType$5([new $String(name.Name)])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return new $Int64(-1, 4294967295); + /* } */ case 8: + /* } */ case 2: + x[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + $r = check.expr($ifaceNil, x[0], e); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!((x[0].mode === 4))) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (!((x[0].mode === 4))) { */ case 11: + /* */ if (!((x[0].mode === 0))) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (!((x[0].mode === 0))) { */ case 13: + $r = check.errorf(x[0], 26, "array length %s must be constant", new sliceType$5([x[0]])); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 14: + $s = -1; return new $Int64(-1, 4294967295); + /* } */ case 12: + if (isUntyped(x[0].typ)) { _v = true; $s = 18; continue s; } + _r$1 = isInteger(x[0].typ); /* */ $s = 19; case 19: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = _r$1; case 18: + /* */ if (_v) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (_v) { */ case 16: + _r$2 = constant.ToInt(x[0].val); /* */ $s = 20; case 20: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + val = _r$2; + _r$3 = val.Kind(); /* */ $s = 23; case 23: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3 === 3) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (_r$3 === 3) { */ case 21: + _r$4 = representableConst(val, check, (2 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 2]), ptrType$51.nil); /* */ $s = 26; case 26: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (_r$4) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (_r$4) { */ case 24: + _r$5 = constant.Int64Val(val); /* */ $s = 27; case 27: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$2 = _r$5; + n = _tuple$2[0]; + ok$1 = _tuple$2[1]; + if (ok$1 && (n.$high > 0 || (n.$high === 0 && n.$low >= 0))) { + $s = -1; return n; + } + /* } */ case 25: + /* } */ case 22: + /* } */ case 17: + msg = ""; + _r$6 = isInteger(x[0].typ); /* */ $s = 31; case 31: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + /* */ if (_r$6) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (_r$6) { */ case 28: + msg = "invalid array length %s"; + $s = 30; continue; + /* } else { */ case 29: + msg = "array length %s must be integer"; + /* } */ case 30: + $r = check.errorf(x[0], 26, msg, new sliceType$5([x[0]])); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return new $Int64(-1, 4294967295); + /* */ } return; } var $f = {$blk: arrayLength, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, _tuple$2, _v, check, e, msg, n, name, obj, ok, ok$1, val, x, $s};return $f; + }; + $ptrType(Checker).prototype.typeList = function typeList(list) { + var {_i, _r, _ref, check, i, list, res, t, x, $s, $r, $c} = $restore(this, {list}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + res = $makeSlice(sliceType$3, list.$length); + _ref = list; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r = check.varType(x); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + t = _r; + if ($interfaceIsEqual(t, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { + res = sliceType$3.nil; + } + if (!(res === sliceType$3.nil)) { + ((i < 0 || i >= res.$length) ? ($throwRuntimeError("index out of range"), undefined) : res.$array[res.$offset + i] = t); + } + _i++; + $s = 1; continue; + case 2: + $s = -1; return res; + /* */ } return; } var $f = {$blk: typeList, $c: true, $r, _i, _r, _ref, check, i, list, res, t, x, $s};return $f; + }; + $ptrType(term).prototype.String = function String$5() { + var {$24r, $24r$1, _r, _r$1, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + /* */ if (x === ptrType$5.nil) { $s = 2; continue; } + /* */ if ($interfaceIsEqual(x.typ, $ifaceNil)) { $s = 3; continue; } + /* */ if (x.tilde) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (x === ptrType$5.nil) { */ case 2: + $s = -1; return "\xE2\x88\x85"; + /* } else if ($interfaceIsEqual(x.typ, $ifaceNil)) { */ case 3: + $s = -1; return "\xF0\x9D\x93\xA4"; + /* } else if (x.tilde) { */ case 4: + _r = x.typ.String(); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = "~" + _r; + $s = 8; case 8: return $24r; + /* } else { */ case 5: + _r$1 = x.typ.String(); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r$1 = _r$1; + $s = 10; case 10: return $24r$1; + /* } */ case 6: + case 1: + $s = -1; return ""; + /* */ } return; } var $f = {$blk: String$5, $c: true, $r, $24r, $24r$1, _r, _r$1, x, $s};return $f; + }; + $ptrType(term).prototype.union = function union(y) { + var {_, _$1, _r, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, x, y, $s, $r, $c} = $restore(this, {y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ = ptrType$5.nil; + _$1 = ptrType$5.nil; + x = this; + if (x === ptrType$5.nil && y === ptrType$5.nil) { + _tmp = ptrType$5.nil; + _tmp$1 = ptrType$5.nil; + _ = _tmp; + _$1 = _tmp$1; + $s = -1; return [_, _$1]; + } else if (x === ptrType$5.nil) { + _tmp$2 = y; + _tmp$3 = ptrType$5.nil; + _ = _tmp$2; + _$1 = _tmp$3; + $s = -1; return [_, _$1]; + } else if (y === ptrType$5.nil) { + _tmp$4 = x; + _tmp$5 = ptrType$5.nil; + _ = _tmp$4; + _$1 = _tmp$5; + $s = -1; return [_, _$1]; + } else if ($interfaceIsEqual(x.typ, $ifaceNil)) { + _tmp$6 = x; + _tmp$7 = ptrType$5.nil; + _ = _tmp$6; + _$1 = _tmp$7; + $s = -1; return [_, _$1]; + } else if ($interfaceIsEqual(y.typ, $ifaceNil)) { + _tmp$8 = y; + _tmp$9 = ptrType$5.nil; + _ = _tmp$8; + _$1 = _tmp$9; + $s = -1; return [_, _$1]; + } + _r = x.disjoint(y); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r) { */ case 1: + _tmp$10 = x; + _tmp$11 = y; + _ = _tmp$10; + _$1 = _tmp$11; + $s = -1; return [_, _$1]; + /* } */ case 2: + if (x.tilde || !y.tilde) { + _tmp$12 = x; + _tmp$13 = ptrType$5.nil; + _ = _tmp$12; + _$1 = _tmp$13; + $s = -1; return [_, _$1]; + } + _tmp$14 = y; + _tmp$15 = ptrType$5.nil; + _ = _tmp$14; + _$1 = _tmp$15; + $s = -1; return [_, _$1]; + /* */ } return; } var $f = {$blk: union, $c: true, $r, _, _$1, _r, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, x, y, $s};return $f; + }; + $ptrType(term).prototype.intersect = function intersect(y) { + var {_r, x, y, $s, $r, $c} = $restore(this, {y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + if (x === ptrType$5.nil || y === ptrType$5.nil) { + $s = -1; return ptrType$5.nil; + } else if ($interfaceIsEqual(x.typ, $ifaceNil)) { + $s = -1; return y; + } else if ($interfaceIsEqual(y.typ, $ifaceNil)) { + $s = -1; return x; + } + _r = x.disjoint(y); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r) { */ case 1: + $s = -1; return ptrType$5.nil; + /* } */ case 2: + if (!x.tilde || y.tilde) { + $s = -1; return x; + } + $s = -1; return y; + /* */ } return; } var $f = {$blk: intersect, $c: true, $r, _r, x, y, $s};return $f; + }; + $ptrType(term).prototype.includes = function includes(t) { + var {$24r, _r, _r$1, t, u, x, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + if (x === ptrType$5.nil) { + $s = -1; return false; + } else if ($interfaceIsEqual(x.typ, $ifaceNil)) { + $s = -1; return true; + } + u = t; + /* */ if (x.tilde) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (x.tilde) { */ case 1: + _r = under(u); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + u = _r; + /* } */ case 2: + _r$1 = Identical(x.typ, u); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 5; case 5: return $24r; + /* */ } return; } var $f = {$blk: includes, $c: true, $r, $24r, _r, _r$1, t, u, x, $s};return $f; + }; + $ptrType(term).prototype.subsetOf = function subsetOf(y) { + var {_r, x, y, $s, $r, $c} = $restore(this, {y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + if (x === ptrType$5.nil) { + $s = -1; return true; + } else if (y === ptrType$5.nil) { + $s = -1; return false; + } else if ($interfaceIsEqual(y.typ, $ifaceNil)) { + $s = -1; return true; + } else if ($interfaceIsEqual(x.typ, $ifaceNil)) { + $s = -1; return false; + } + _r = x.disjoint(y); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r) { */ case 1: + $s = -1; return false; + /* } */ case 2: + $s = -1; return !x.tilde || y.tilde; + /* */ } return; } var $f = {$blk: subsetOf, $c: true, $r, _r, x, y, $s};return $f; + }; + $ptrType(term).prototype.disjoint = function disjoint(y) { + var {$24r, _r, _r$1, _r$2, ux, uy, x, y, $s, $r, $c} = $restore(this, {y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + if (false && ($interfaceIsEqual(x.typ, $ifaceNil) || $interfaceIsEqual(y.typ, $ifaceNil))) { + $panic(new $String("invalid argument(s)")); + } + ux = x.typ; + /* */ if (y.tilde) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (y.tilde) { */ case 1: + _r = under(ux); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + ux = _r; + /* } */ case 2: + uy = y.typ; + /* */ if (x.tilde) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (x.tilde) { */ case 4: + _r$1 = under(uy); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + uy = _r$1; + /* } */ case 5: + _r$2 = Identical(ux, uy); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = !_r$2; + $s = 8; case 8: return $24r; + /* */ } return; } var $f = {$blk: disjoint, $c: true, $r, $24r, _r, _r$1, _r$2, ux, uy, x, y, $s};return $f; + }; + RelativeTo = function RelativeTo$1(pkg) { + var pkg; + if (pkg === ptrType$1.nil) { + return $throwNilPointerError; + } + return (function RelativeTo·func1(other) { + var other; + if (pkg === other) { + return ""; + } + return other.Path(); + }); + }; + $pkg.RelativeTo = RelativeTo; + TypeString = function TypeString$1(typ$1, qf) { + var {buf, qf, typ$1, $s, $r, $c} = $restore(this, {typ$1, qf}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + buf = [buf]; + buf[0] = new bytes.Buffer.ptr(sliceType$12.nil, 0, 0); + $r = WriteType(buf[0], typ$1, qf); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return buf[0].String(); + /* */ } return; } var $f = {$blk: TypeString$1, $c: true, $r, buf, qf, typ$1, $s};return $f; + }; + $pkg.TypeString = TypeString; + WriteType = function WriteType$1(buf, typ$1, qf) { + var {buf, qf, typ$1, $s, $r, $c} = $restore(this, {buf, typ$1, qf}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = newTypeWriter(buf, qf).typ(typ$1); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: WriteType$1, $c: true, $r, buf, qf, typ$1, $s};return $f; + }; + $pkg.WriteType = WriteType; + WriteSignature = function WriteSignature$1(buf, sig, qf) { + var {buf, qf, sig, $s, $r, $c} = $restore(this, {buf, sig, qf}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = newTypeWriter(buf, qf).signature(sig); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: WriteSignature$1, $c: true, $r, buf, qf, sig, $s};return $f; + }; + $pkg.WriteSignature = WriteSignature; + newTypeWriter = function newTypeWriter$1(buf, qf) { + var buf, qf; + return new typeWriter.ptr(buf, new $global.Map(), qf, ptrType$52.nil, ptrType$49.nil, true, false, false); + }; + newTypeHasher = function newTypeHasher$1(buf, ctxt) { + var {buf, ctxt, $s, $r, $c} = $restore(this, {buf, ctxt}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = assert(!(ctxt === ptrType$52.nil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return new typeWriter.ptr(buf, new $global.Map(), $throwNilPointerError, ctxt, ptrType$49.nil, false, false, false); + /* */ } return; } var $f = {$blk: newTypeHasher$1, $c: true, $r, buf, ctxt, $s};return $f; + }; + $ptrType(typeWriter).prototype.byte$ = function byte$1(b) { + var b, w; + w = this; + if (!(w.ctxt === ptrType$52.nil)) { + if (b === 32) { + b = 35; + } + w.buf.WriteByte(b); + return; + } + w.buf.WriteByte(b); + if ((b === 44) || (b === 59)) { + w.buf.WriteByte(32); + } + }; + $ptrType(typeWriter).prototype.string = function string(s) { + var s, w; + w = this; + w.buf.WriteString(s); + }; + $ptrType(typeWriter).prototype.error = function error(msg) { + var msg, w; + w = this; + if (!(w.ctxt === ptrType$52.nil)) { + $panic(new $String(msg)); + } + w.buf.WriteString("<" + msg + ">"); + }; + $ptrType(typeWriter).prototype.typ = function typ$1(typ$2) { + var {_1, _arg, _arg$1, _entry, _i, _i$1, _i$2, _i$3, _key, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tuple, _tuple$1, _v, _v$1, c, f, first, i, i$1, i$2, m, obj, parens, pkgAnnotate, s, t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, tag, typ$2, typ$3, w, x, $s, $deferred, $r, $c} = $restore(this, {typ$2}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + w = this; + /* */ if ((_entry = $mapIndex(w.seen,Type.keyFor(typ$2)), _entry !== undefined ? _entry.v : false)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ((_entry = $mapIndex(w.seen,Type.keyFor(typ$2)), _entry !== undefined ? _entry.v : false)) { */ case 1: + _r = goTypeName(typ$2); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = w.error("cycle to " + _r); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 2: + _key = typ$2; (w.seen || $throwRuntimeError("assignment to entry in nil map")).set(Type.keyFor(_key), { k: _key, v: true }); + $deferred.push([function(_arg, _arg$1) { $mapDelete(_arg, Type.keyFor(_arg$1)); }, [w.seen, typ$2]]); + _ref = typ$2; + /* */ if (_ref === $ifaceNil) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref, ptrType$12, true)[1]) { $s = 9; continue; } + /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref, ptrType$16, true)[1]) { $s = 11; continue; } + /* */ if ($assertType(_ref, ptrType$29, true)[1]) { $s = 12; continue; } + /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 13; continue; } + /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 14; continue; } + /* */ if ($assertType(_ref, ptrType$30, true)[1]) { $s = 15; continue; } + /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 16; continue; } + /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 17; continue; } + /* */ if ($assertType(_ref, ptrType$15, true)[1]) { $s = 18; continue; } + /* */ $s = 19; continue; + /* switch (0) { default: if (_ref === $ifaceNil) { */ case 5: + t = _ref; + w.error("nil"); + $s = 20; continue; + /* } else if ($assertType(_ref, ptrType$4, true)[1]) { */ case 6: + t$1 = _ref.$val; + /* */ if (token.IsExported(t$1.name)) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (token.IsExported(t$1.name)) { */ case 21: + _r$1 = $pkg.Unsafe.scope.Lookup(t$1.name); /* */ $s = 23; case 23: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = $assertType(_r$1, ptrType$18, true); + obj = _tuple[0]; + /* */ if (!(obj === ptrType$18.nil)) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (!(obj === ptrType$18.nil)) { */ case 24: + $r = w.typeName(obj); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* break; */ $s = 20; continue; + /* } */ case 25: + /* } */ case 22: + w.string(t$1.name); + $s = 20; continue; + /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 7: + t$2 = _ref.$val; + w.byte$(91); + w.string(strconv.FormatInt(t$2.len, 10)); + w.byte$(93); + $r = w.typ(t$2.elem); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 20; continue; + /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 8: + t$3 = _ref.$val; + w.string("[]"); + $r = w.typ(t$3.elem); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 20; continue; + /* } else if ($assertType(_ref, ptrType$12, true)[1]) { */ case 9: + t$4 = _ref.$val; + w.string("struct{"); + _ref$1 = t$4.fields; + _i = 0; + /* while (true) { */ case 29: + /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 30; continue; } + i = _i; + f = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + if (i > 0) { + w.byte$(59); + } + pkgAnnotate = false; + if (w.qf === $throwNilPointerError && w.pkgInfo && !token.IsExported(f.object.name)) { + pkgAnnotate = true; + w.pkgInfo = false; + } + if (!f.embedded) { + w.string(f.object.name); + w.byte$(32); + } + $r = w.typ(f.object.typ); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (pkgAnnotate) { + w.string(" /* package "); + w.string(f.object.pkg.Path()); + w.string(" */ "); + } + tag = t$4.Tag(i); + if (!(tag === "")) { + w.byte$(32); + w.string(strconv.Quote(tag)); + } + _i++; + $s = 29; continue; + case 30: + w.byte$(125); + $s = 20; continue; + /* } else if ($assertType(_ref, ptrType$28, true)[1]) { */ case 10: + t$5 = _ref.$val; + w.byte$(42); + $r = w.typ(t$5.base); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 20; continue; + /* } else if ($assertType(_ref, ptrType$16, true)[1]) { */ case 11: + t$6 = _ref.$val; + $r = w.tuple(t$6, false); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 20; continue; + /* } else if ($assertType(_ref, ptrType$29, true)[1]) { */ case 12: + t$7 = _ref.$val; + w.string("func"); + $r = w.signature(t$7); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 20; continue; + /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 13: + t$8 = _ref.$val; + if (t$8.Len() === 0) { + w.error("empty union"); + /* break; */ $s = 20; continue; + } + _ref$2 = t$8.terms; + _i$1 = 0; + /* while (true) { */ case 35: + /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 36; continue; } + i$1 = _i$1; + t$15 = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); + if (i$1 > 0) { + w.string(" | "); + } + if (t$15.tilde) { + w.byte$(126); + } + $r = w.typ(t$15.typ); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + $s = 35; continue; + case 36: + $s = 20; continue; + /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 14: + t$9 = _ref.$val; + /* */ if (w.ctxt === ptrType$52.nil) { $s = 38; continue; } + /* */ $s = 39; continue; + /* if (w.ctxt === ptrType$52.nil) { */ case 38: + _r$2 = universeAny.Type(); /* */ $s = 42; case 42: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if ($interfaceIsEqual(t$9, _r$2)) { $s = 40; continue; } + /* */ $s = 41; continue; + /* if ($interfaceIsEqual(t$9, _r$2)) { */ case 40: + w.string("any"); + /* break; */ $s = 20; continue; + /* } */ case 41: + _r$3 = universeComparable.Type(); /* */ $s = 45; case 45: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if ($interfaceIsEqual(t$9, $assertType(_r$3, ptrType$10).underlying)) { $s = 43; continue; } + /* */ $s = 44; continue; + /* if ($interfaceIsEqual(t$9, $assertType(_r$3, ptrType$10).underlying)) { */ case 43: + w.string("interface{comparable}"); + /* break; */ $s = 20; continue; + /* } */ case 44: + /* } */ case 39: + /* */ if (t$9.implicit) { $s = 46; continue; } + /* */ $s = 47; continue; + /* if (t$9.implicit) { */ case 46: + /* */ if ((t$9.methods.$length === 0) && (t$9.embeddeds.$length === 1)) { $s = 48; continue; } + /* */ $s = 49; continue; + /* if ((t$9.methods.$length === 0) && (t$9.embeddeds.$length === 1)) { */ case 48: + $r = w.typ((x = t$9.embeddeds, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* break; */ $s = 20; continue; + /* } */ case 49: + w.string("/* implicit */ "); + /* } */ case 47: + w.string("interface{"); + first = true; + /* */ if (!(w.ctxt === ptrType$52.nil)) { $s = 51; continue; } + /* */ $s = 52; continue; + /* if (!(w.ctxt === ptrType$52.nil)) { */ case 51: + _r$4 = t$9.typeSet(); /* */ $s = 54; case 54: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $r = w.typeSet(_r$4); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 53; continue; + /* } else { */ case 52: + _ref$3 = t$9.methods; + _i$2 = 0; + /* while (true) { */ case 56: + /* if (!(_i$2 < _ref$3.$length)) { break; } */ if(!(_i$2 < _ref$3.$length)) { $s = 57; continue; } + m = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]); + if (!first) { + w.byte$(59); + } + first = false; + w.string(m.object.name); + $r = w.signature($assertType(m.object.typ, ptrType$29)); /* */ $s = 58; case 58: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$2++; + $s = 56; continue; + case 57: + _ref$4 = t$9.embeddeds; + _i$3 = 0; + /* while (true) { */ case 59: + /* if (!(_i$3 < _ref$4.$length)) { break; } */ if(!(_i$3 < _ref$4.$length)) { $s = 60; continue; } + typ$3 = ((_i$3 < 0 || _i$3 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$3]); + if (!first) { + w.byte$(59); + } + first = false; + $r = w.typ(typ$3); /* */ $s = 61; case 61: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$3++; + $s = 59; continue; + case 60: + /* } */ case 53: + w.byte$(125); + $s = 20; continue; + /* } else if ($assertType(_ref, ptrType$30, true)[1]) { */ case 15: + t$10 = _ref.$val; + w.string("map["); + $r = w.typ(t$10.key); /* */ $s = 62; case 62: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + w.byte$(93); + $r = w.typ(t$10.elem); /* */ $s = 63; case 63: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 20; continue; + /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 16: + t$11 = _ref.$val; + s = ""; + parens = false; + _1 = t$11.dir; + if (_1 === (0)) { + s = "chan "; + _tuple$1 = $assertType(t$11.elem, ptrType$26, true); + c = _tuple$1[0]; + if (!(c === ptrType$26.nil) && (c.dir === 2)) { + parens = true; + } + } else if (_1 === (1)) { + s = "chan<- "; + } else if (_1 === (2)) { + s = "<-chan "; + } else { + w.error("unknown channel direction"); + } + w.string(s); + if (parens) { + w.byte$(40); + } + $r = w.typ(t$11.elem); /* */ $s = 64; case 64: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (parens) { + w.byte$(41); + } + $s = 20; continue; + /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 17: + t$12 = _ref.$val; + /* */ if (!(w.ctxt === ptrType$52.nil)) { $s = 65; continue; } + /* */ $s = 66; continue; + /* if (!(w.ctxt === ptrType$52.nil)) { */ case 65: + _r$5 = w.ctxt.getID(t$12); /* */ $s = 67; case 67: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$6 = strconv.Itoa(_r$5); /* */ $s = 68; case 68: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $r = w.string(_r$6); /* */ $s = 69; case 69: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 66: + $r = w.typeName(t$12.obj); /* */ $s = 70; case 70: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!(t$12.inst === ptrType$53.nil)) { $s = 71; continue; } + if (!(w.ctxt === ptrType$52.nil)) { _v = false; $s = 74; continue s; } + _r$7 = t$12.TypeParams(); /* */ $s = 75; case 75: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$8 = _r$7.Len(); /* */ $s = 76; case 76: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _v = !((_r$8 === 0)); case 74: + /* */ if (_v) { $s = 72; continue; } + /* */ $s = 73; continue; + /* if (!(t$12.inst === ptrType$53.nil)) { */ case 71: + $r = w.typeList(t$12.inst.targs.list()); /* */ $s = 77; case 77: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 73; continue; + /* } else if (_v) { */ case 72: + _r$9 = t$12.TypeParams(); /* */ $s = 78; case 78: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$10 = _r$9.list(); /* */ $s = 79; case 79: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + $r = w.tParamList(_r$10); /* */ $s = 80; case 80: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 73: + $s = 20; continue; + /* } else if ($assertType(_ref, ptrType$15, true)[1]) { */ case 18: + t$13 = _ref.$val; + if (t$13.obj === ptrType$18.nil) { + w.error("unnamed type parameter"); + /* break; */ $s = 20; continue; + } + i$2 = tparamIndex(w.tparams.list(), t$13); + /* */ if (i$2 >= 0) { $s = 81; continue; } + /* */ $s = 82; continue; + /* if (i$2 >= 0) { */ case 81: + _r$11 = fmt.Sprintf("$%d", new sliceType$5([new $Int(i$2)])); /* */ $s = 84; case 84: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + $r = w.string(_r$11); /* */ $s = 85; case 85: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 83; continue; + /* } else { */ case 82: + w.string(t$13.obj.object.name); + if (w.tpSubscripts || !(w.ctxt === ptrType$52.nil)) { + w.string(subscript(t$13.id)); + } + if (!(w.ctxt === ptrType$52.nil)) { _v$1 = false; $s = 88; continue s; } + _r$12 = $pkg.Universe.Lookup(t$13.obj.object.name); /* */ $s = 89; case 89: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _v$1 = !($interfaceIsEqual(_r$12, $ifaceNil)); case 88: + /* */ if (_v$1) { $s = 86; continue; } + /* */ $s = 87; continue; + /* if (_v$1) { */ case 86: + w.string("/* type parameter */"); + /* } */ case 87: + /* } */ case 83: + $s = 20; continue; + /* } else { */ case 19: + t$14 = _ref; + _r$13 = t$14.String(); /* */ $s = 90; case 90: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + $r = w.string(_r$13); /* */ $s = 91; case 91: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } } */ case 20: + $s = -1; return; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: typ$1, $c: true, $r, _1, _arg, _arg$1, _entry, _i, _i$1, _i$2, _i$3, _key, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tuple, _tuple$1, _v, _v$1, c, f, first, i, i$1, i$2, m, obj, parens, pkgAnnotate, s, t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, tag, typ$2, typ$3, w, x, $s, $deferred};return $f; } } + }; + $ptrType(typeWriter).prototype.typeSet = function typeSet(s) { + var {_i, _i$1, _r, _r$1, _ref, _ref$1, buf, first, m, s, term$1, termHashes, w, $s, $r, $c} = $restore(this, {s}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + w = this; + $r = assert(!(w.ctxt === ptrType$52.nil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + first = true; + _ref = s.methods; + _i = 0; + /* while (true) { */ case 2: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } + m = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!first) { + w.byte$(59); + } + first = false; + w.string(m.object.name); + $r = w.signature($assertType(m.object.typ, ptrType$29)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 2; continue; + case 3: + /* */ if (s.terms.isAll()) { $s = 6; continue; } + /* */ if (s.terms.isEmpty()) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (s.terms.isAll()) { */ case 6: + $s = 9; continue; + /* } else if (s.terms.isEmpty()) { */ case 7: + _r = s.terms.String(); /* */ $s = 10; case 10: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = w.string(_r); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 9; continue; + /* } else { */ case 8: + termHashes = sliceType$13.nil; + _ref$1 = s.terms; + _i$1 = 0; + /* while (true) { */ case 12: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 13; continue; } + buf = [buf]; + term$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + buf[0] = new bytes.Buffer.ptr(sliceType$12.nil, 0, 0); + if (term$1.tilde) { + buf[0].WriteByte(126); + } + _r$1 = newTypeHasher(buf[0], w.ctxt); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $r = _r$1.typ(term$1.typ); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + termHashes = $append(termHashes, buf[0].String()); + _i$1++; + $s = 12; continue; + case 13: + $r = sort.Strings(termHashes); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (!first) { + w.byte$(59); + } + w.string(strings.Join(termHashes, "|")); + /* } */ case 9: + case 5: + $s = -1; return; + /* */ } return; } var $f = {$blk: typeSet, $c: true, $r, _i, _i$1, _r, _r$1, _ref, _ref$1, buf, first, m, s, term$1, termHashes, w, $s};return $f; + }; + $ptrType(typeWriter).prototype.typeList = function typeList$1(list) { + var {_i, _ref, i, list, typ$2, w, $s, $r, $c} = $restore(this, {list}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + w = this; + w.byte$(91); + _ref = list; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + typ$2 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (i > 0) { + w.byte$(44); + } + $r = w.typ(typ$2); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + w.byte$(93); + $s = -1; return; + /* */ } return; } var $f = {$blk: typeList$1, $c: true, $r, _i, _ref, i, list, typ$2, w, $s};return $f; + }; + $ptrType(typeWriter).prototype.tParamList = function tParamList(list) { + var {_i, _ref, i, list, prev, tpar, w, $s, $r, $c} = $restore(this, {list}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + w = this; + w.byte$(91); + prev = $ifaceNil; + _ref = list; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + tpar = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (tpar === ptrType$15.nil) { + w.error("nil type parameter"); + _i++; + /* continue; */ $s = 1; continue; + } + /* */ if (i > 0) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (i > 0) { */ case 3: + /* */ if (!($interfaceIsEqual(tpar.bound, prev))) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!($interfaceIsEqual(tpar.bound, prev))) { */ case 5: + w.byte$(32); + $r = w.typ(prev); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + w.byte$(44); + /* } */ case 4: + prev = tpar.bound; + $r = w.typ(tpar); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + /* */ if (!($interfaceIsEqual(prev, $ifaceNil))) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!($interfaceIsEqual(prev, $ifaceNil))) { */ case 9: + w.byte$(32); + $r = w.typ(prev); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 10: + w.byte$(93); + $s = -1; return; + /* */ } return; } var $f = {$blk: tParamList, $c: true, $r, _i, _ref, i, list, prev, tpar, w, $s};return $f; + }; + $ptrType(typeWriter).prototype.typeName = function typeName(obj) { + var {_r, obj, w, $s, $r, $c} = $restore(this, {obj}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + w = this; + _r = packagePrefix(obj.object.pkg, w.qf); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = w.string(_r); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + w.string(obj.object.name); + $s = -1; return; + /* */ } return; } var $f = {$blk: typeName, $c: true, $r, _r, obj, w, $s};return $f; + }; + $ptrType(typeWriter).prototype.tuple = function tuple(tup, variadic) { + var {_i, _r, _ref, _tuple, _tuple$1, i, ok, s, t, tup, typ$2, v, variadic, w, $s, $r, $c} = $restore(this, {tup, variadic}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + w = this; + w.byte$(40); + /* */ if (!(tup === ptrType$16.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(tup === ptrType$16.nil)) { */ case 1: + _ref = tup.vars; + _i = 0; + /* while (true) { */ case 3: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } + i = _i; + v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (i > 0) { + w.byte$(44); + } + if (w.ctxt === ptrType$52.nil && !(v.object.name === "") && w.paramNames) { + w.string(v.object.name); + w.byte$(32); + } + typ$2 = v.object.typ; + /* */ if (variadic && (i === (tup.vars.$length - 1 >> 0))) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (variadic && (i === (tup.vars.$length - 1 >> 0))) { */ case 5: + _tuple = $assertType(typ$2, ptrType$27, true); + s = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (ok) { */ case 7: + w.string("..."); + typ$2 = s.elem; + $s = 9; continue; + /* } else { */ case 8: + _r = under(typ$2); /* */ $s = 10; case 10: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple$1 = $assertType(_r, ptrType$4, true); + t = _tuple$1[0]; + if (t === ptrType$4.nil || !((t.kind === 17))) { + w.error("expected string type"); + _i++; + /* continue; */ $s = 3; continue; + } + $r = w.typ(typ$2); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + w.string("..."); + _i++; + /* continue; */ $s = 3; continue; + /* } */ case 9: + /* } */ case 6: + $r = w.typ(typ$2); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 3; continue; + case 4: + /* } */ case 2: + w.byte$(41); + $s = -1; return; + /* */ } return; } var $f = {$blk: tuple, $c: true, $r, _i, _r, _ref, _tuple, _tuple$1, i, ok, s, t, tup, typ$2, v, variadic, w, $s};return $f; + }; + $ptrType(typeWriter).prototype.signature = function signature(sig) { + var {n, sig, w, x, x$1, $s, $deferred, $r, $c} = $restore(this, {sig}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + w = [w]; + w[0] = this; + /* */ if (!((sig.TypeParams().Len() === 0))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((sig.TypeParams().Len() === 0))) { */ case 1: + /* */ if (!(w[0].ctxt === ptrType$52.nil)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!(w[0].ctxt === ptrType$52.nil)) { */ case 3: + $r = assert(w[0].tparams === ptrType$49.nil); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + w[0].tparams = sig.TypeParams(); + $deferred.push([(function(w) { return function typeWriter·signature·func1() { + w[0].tparams = ptrType$49.nil; + }; })(w), []]); + /* } */ case 4: + $r = w[0].tParamList(sig.TypeParams().list()); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $r = w[0].tuple(sig.params, sig.variadic); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + n = sig.results.Len(); + if (n === 0) { + $s = -1; return; + } + w[0].byte$(32); + /* */ if ((n === 1) && (!(w[0].ctxt === ptrType$52.nil) || (x = sig.results.vars, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).object.name === "")) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if ((n === 1) && (!(w[0].ctxt === ptrType$52.nil) || (x = sig.results.vars, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).object.name === "")) { */ case 8: + $r = w[0].typ((x$1 = sig.results.vars, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])).object.typ); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 9: + $r = w[0].tuple(sig.results, false); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: signature, $c: true, $r, n, sig, w, x, x$1, $s, $deferred};return $f; } } + }; + subscript = function subscript$1(x) { + var buf, i, x; + buf = arrayType.zero(); + i = 96; + while (true) { + i = i - (3) >> 0; + utf8.EncodeRune($subslice(new sliceType$12(buf), i), 8320 + (($div64(x, new $Uint64(0, 10), true).$low >> 0)) >> 0); + x = $div64(x, (new $Uint64(0, 10)), false); + if ((x.$high === 0 && x.$low === 0)) { + break; + } + } + return ($bytesToString($subslice(new sliceType$12(buf), i))); + }; + $ptrType(_TypeSet).prototype.IsEmpty = function IsEmpty() { + var s; + s = this; + return s.terms.isEmpty(); + }; + $ptrType(_TypeSet).prototype.IsAll = function IsAll() { + var s; + s = this; + return s.IsMethodSet() && (s.methods.$length === 0); + }; + $ptrType(_TypeSet).prototype.IsMethodSet = function IsMethodSet() { + var s; + s = this; + return !s.comparable && s.terms.isAll(); + }; + $ptrType(_TypeSet).prototype.IsComparable = function IsComparable(seen) { + var {$24r, _r, s, seen, $s, $r, $c} = $restore(this, {seen}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + seen = [seen]; + s = this; + if (s.terms.isAll()) { + $s = -1; return s.comparable; + } + _r = s.is((function(seen) { return function _TypeSet·IsComparable·func1(t) { + var {$24r, _r, _v, t, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (!(!(t === ptrType$5.nil))) { _v = false; $s = 1; continue s; } + _r = comparable(t.typ, false, seen[0], $throwNilPointerError); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r; case 1: + $24r = _v; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: _TypeSet·IsComparable·func1, $c: true, $r, $24r, _r, _v, t, $s};return $f; + }; })(seen)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: IsComparable, $c: true, $r, $24r, _r, s, seen, $s};return $f; + }; + $ptrType(_TypeSet).prototype.NumMethods = function NumMethods() { + var s; + s = this; + return s.methods.$length; + }; + $ptrType(_TypeSet).prototype.Method = function Method(i) { + var i, s, x; + s = this; + return (x = s.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + }; + $ptrType(_TypeSet).prototype.LookupMethod = function LookupMethod(pkg, name, foldCase) { + var foldCase, name, pkg, s; + s = this; + return lookupMethod(s.methods, pkg, name, foldCase); + }; + $ptrType(_TypeSet).prototype.String = function String$6() { + var {_i, _r, _r$1, _r$2, _r$3, _ref, buf, hasMethods, hasTerms, i, m, s, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + if (s.IsEmpty()) { + $s = -1; return "\xE2\x88\x85"; + } else if (s.IsAll()) { + $s = -1; return "\xF0\x9D\x93\xA4"; + } + hasMethods = s.methods.$length > 0; + hasTerms = s.hasTerms(); + buf = new strings.Builder.ptr(ptrType$54.nil, sliceType$12.nil); + buf.WriteByte(123); + if (s.comparable) { + buf.WriteString("comparable"); + if (hasMethods || hasTerms) { + buf.WriteString("; "); + } + } + _ref = s.methods; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + m = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (i > 0) { + buf.WriteString("; "); + } + _r = m.String(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = buf.WriteString(_r); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + _i++; + $s = 1; continue; + case 2: + if (hasMethods && hasTerms) { + buf.WriteString("; "); + } + /* */ if (hasTerms) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (hasTerms) { */ case 5: + _r$2 = s.terms.String(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = buf.WriteString(_r$2); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + /* } */ case 6: + buf.WriteString("}"); + $s = -1; return buf.String(); + /* */ } return; } var $f = {$blk: String$6, $c: true, $r, _i, _r, _r$1, _r$2, _r$3, _ref, buf, hasMethods, hasTerms, i, m, s, $s};return $f; + }; + $ptrType(_TypeSet).prototype.hasTerms = function hasTerms() { + var s; + s = this; + return !s.terms.isEmpty() && !s.terms.isAll(); + }; + $ptrType(_TypeSet).prototype.subsetOf = function subsetOf$1(s2) { + var {$24r, _r, s1, s2, $s, $r, $c} = $restore(this, {s2}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s1 = this; + _r = s1.terms.subsetOf(s2.terms); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: subsetOf$1, $c: true, $r, $24r, _r, s1, s2, $s};return $f; + }; + $ptrType(_TypeSet).prototype.is = function is(f) { + var {$24r, _i, _r, _r$1, _ref, f, s, t, $s, $r, $c} = $restore(this, {f}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + /* */ if (!s.hasTerms()) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!s.hasTerms()) { */ case 1: + _r = f(ptrType$5.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; + /* } */ case 2: + _ref = s.terms; + _i = 0; + /* while (true) { */ case 5: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 6; continue; } + t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = assert(!($interfaceIsEqual(t.typ, $ifaceNil))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = f(t); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!_r$1) { */ case 8: + $s = -1; return false; + /* } */ case 9: + _i++; + $s = 5; continue; + case 6: + $s = -1; return true; + /* */ } return; } var $f = {$blk: is, $c: true, $r, $24r, _i, _r, _r$1, _ref, f, s, t, $s};return $f; + }; + $ptrType(_TypeSet).prototype.underIs = function underIs$1(f) { + var {$24r, _arg, _arg$1, _i, _r, _r$1, _r$2, _r$3, _r$4, _ref, f, s, t, u, $s, $r, $c} = $restore(this, {f}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + /* */ if (!s.hasTerms()) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!s.hasTerms()) { */ case 1: + _r = f($ifaceNil); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; + /* } */ case 2: + _ref = s.terms; + _i = 0; + /* while (true) { */ case 5: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 6; continue; } + t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = assert(!($interfaceIsEqual(t.typ, $ifaceNil))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + u = t.typ; + /* */ if (!t.tilde) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!t.tilde) { */ case 8: + _r$1 = under(u); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + u = _r$1; + /* } */ case 9: + /* */ if (false) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (false) { */ case 11: + _arg = u; + _r$2 = under(u); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg$1 = _r$2; + _r$3 = Identical(_arg, _arg$1); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $r = assert(_r$3); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 12: + _r$4 = f(u); /* */ $s = 18; case 18: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (!_r$4) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (!_r$4) { */ case 16: + $s = -1; return false; + /* } */ case 17: + _i++; + $s = 5; continue; + case 6: + $s = -1; return true; + /* */ } return; } var $f = {$blk: underIs$1, $c: true, $r, $24r, _arg, _arg$1, _i, _r, _r$1, _r$2, _r$3, _r$4, _ref, f, s, t, u, $s};return $f; + }; + computeInterfaceTypeSet = function computeInterfaceTypeSet$1(check, pos, ityp) { + var {$24r, _i, _i$1, _i$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _ref$1, _ref$2, _ref$3, _tuple, _v, _v$1, _v$2, _v$3, addMethod, allComparable, allMethods, allTerms, check, comparable$1, i, ityp, m, m$1, mpos, pos, pos$1, seen, terms, tset, tset$1, typ$2, u, u$1, u$2, unionSets, x, x$1, $s, $deferred, $r, $c} = $restore(this, {check, pos, ityp}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + allMethods = [allMethods]; + check = [check]; + ityp = [ityp]; + mpos = [mpos]; + pos = [pos]; + seen = [seen]; + if (!(ityp[0].tset === ptrType$8.nil)) { + $s = -1; return ityp[0].tset; + } + if (!ityp[0].complete) { + $s = -1; return topTypeSet; + } + /* */ if (!(check[0] === ptrType$6.nil) && check[0].conf._Trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(check[0] === ptrType$6.nil) && check[0].conf._Trace) { */ case 1: + if (!new token.Pos(pos[0]).IsValid() && ityp[0].methods.$length > 0) { + pos[0] = (x = ityp[0].methods, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).object.pos; + } + $r = check[0].trace(pos[0], "-- type set for %s", new sliceType$5([ityp[0]])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + check[0].indent = check[0].indent + (1) >> 0; + $deferred.push([(function(allMethods, check, ityp, mpos, pos, seen) { return function computeInterfaceTypeSet·func1() { + var {_arg, _arg$1, _r, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check[0].indent = check[0].indent - (1) >> 0; + _arg = pos[0]; + _r = ityp[0].typeSet(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = _r; + $r = check[0].trace(_arg, "=> %s ", new sliceType$5([_arg$1])); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: computeInterfaceTypeSet·func1, $c: true, $r, _arg, _arg$1, _r, $s};return $f; + }; })(allMethods, check, ityp, mpos, pos, seen), []]); + /* } */ case 2: + ityp[0].tset = new _TypeSet.ptr(sliceType.nil, allTermlist, false); + unionSets = false; + if (!(check[0] === ptrType$6.nil)) { + if (check[0].unionTypeSets === false) { + check[0].unionTypeSets = new $global.Map(); + } + unionSets = check[0].unionTypeSets; + } else { + unionSets = new $global.Map(); + } + seen[0] = false; + allMethods[0] = sliceType.nil; + mpos[0] = new $global.Map(); + addMethod = (function(allMethods, check, ityp, mpos, pos, seen) { return function computeInterfaceTypeSet·func2(pos$1, m, explicit) { + var {_entry, _key, _r, explicit, m, other, pos$1, $s, $r, $c} = $restore(this, {pos$1, m, explicit}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + m = [m]; + other = [other]; + pos$1 = [pos$1]; + _r = (seen.$ptr || (seen.$ptr = new ptrType$55(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, seen))).insert(m[0]); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + other[0] = _r; + /* */ if ($interfaceIsEqual(other[0], $ifaceNil)) { $s = 3; continue; } + /* */ if (explicit) { $s = 4; continue; } + /* */ if (!(check[0] === ptrType$6.nil)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if ($interfaceIsEqual(other[0], $ifaceNil)) { */ case 3: + allMethods[0] = $append(allMethods[0], m[0]); + _key = m[0]; (mpos[0] || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$2.keyFor(_key), { k: _key, v: pos$1[0] }); + $s = 6; continue; + /* } else if (explicit) { */ case 4: + /* */ if (!(check[0] === ptrType$6.nil)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!(check[0] === ptrType$6.nil)) { */ case 7: + $r = check[0].errorf(new atPos(((pos$1[0] >> 0))), 10, "duplicate method %s", new sliceType$5([new $String(m[0].object.name)])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].errorf(new atPos((((_entry = $mapIndex(mpos[0],ptrType$2.keyFor($assertType(other[0], ptrType$2))), _entry !== undefined ? _entry.v : 0) >> 0))), 10, "\tother declaration of %s", new sliceType$5([new $String(m[0].object.name)])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 8: + $s = 6; continue; + /* } else if (!(check[0] === ptrType$6.nil)) { */ case 5: + check[0].later((function(allMethods, check, ityp, m, mpos, other, pos, pos$1, seen) { return function computeInterfaceTypeSet·func2·func1() { + var {_arg, _arg$1, _entry$1, _r$1, _r$2, _r$3, _v, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = check[0].allowVersion(m[0].object.pkg, new atPos(((pos$1[0] >> 0))), $clone(go1_14, version)); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + if (!_r$1) { _v = true; $s = 3; continue s; } + _arg = m[0].object.typ; + _r$2 = other[0].Type(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg$1 = _r$2; + _r$3 = Identical(_arg, _arg$1); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v = !_r$3; case 3: + /* */ if (_v) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_v) { */ case 1: + $r = check[0].errorf(new atPos(((pos$1[0] >> 0))), 10, "duplicate method %s", new sliceType$5([new $String(m[0].object.name)])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].errorf(new atPos((((_entry$1 = $mapIndex(mpos[0],ptrType$2.keyFor($assertType(other[0], ptrType$2))), _entry$1 !== undefined ? _entry$1.v : 0) >> 0))), 10, "\tother declaration of %s", new sliceType$5([new $String(m[0].object.name)])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: computeInterfaceTypeSet·func2·func1, $c: true, $r, _arg, _arg$1, _entry$1, _r$1, _r$2, _r$3, _v, $s};return $f; + }; })(allMethods, check, ityp, m, mpos, other, pos, pos$1, seen)).describef(new atPos(((pos$1[0] >> 0))), "duplicate method check for %s", new sliceType$5([new $String(m[0].object.name)])); + /* } */ case 6: + case 1: + $s = -1; return; + /* */ } return; } var $f = {$blk: computeInterfaceTypeSet·func2, $c: true, $r, _entry, _key, _r, explicit, m, other, pos$1, $s};return $f; + }; })(allMethods, check, ityp, mpos, pos, seen); + _ref = ityp[0].methods; + _i = 0; + /* while (true) { */ case 4: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 5; continue; } + m = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = addMethod(m.object.pos, m, true); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 4; continue; + case 5: + allTerms = allTermlist; + allComparable = false; + _ref$1 = ityp[0].embeddeds; + _i$1 = 0; + /* while (true) { */ case 7: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 8; continue; } + i = _i$1; + typ$2 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + pos$1 = 0; + if (!(ityp[0].embedPos === ptrType$7.nil)) { + pos$1 = (x$1 = ityp[0].embedPos.$get(), ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])); + } + comparable$1 = false; + terms = termlist.nil; + _r = under(typ$2); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _ref$2 = _r; + /* */ if ($assertType(_ref$2, ptrType$14, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref$2, ptrType$13, true)[1]) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if ($assertType(_ref$2, ptrType$14, true)[1]) { */ case 10: + u = _ref$2.$val; + $r = assert(!isTypeParam(typ$2)); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = computeInterfaceTypeSet(check[0], pos$1, u); /* */ $s = 15; case 15: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + tset = _r$1; + if (!(new token.Pos(pos$1).IsValid() && !(check[0] === ptrType$6.nil))) { _v$1 = false; $s = 19; continue s; } + _r$2 = check[0].isImportedConstraint(typ$2); /* */ $s = 20; case 20: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v$1 = _r$2; case 19: + if (!(_v$1)) { _v = false; $s = 18; continue s; } + _r$3 = check[0].verifyVersionf(new atPos(((pos$1 >> 0))), $clone(go1_18, version), "embedding constraint interface %s", new sliceType$5([typ$2])); /* */ $s = 21; case 21: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v = !_r$3; case 18: + /* */ if (_v) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (_v) { */ case 16: + _i$1++; + /* continue; */ $s = 7; continue; + /* } */ case 17: + comparable$1 = tset.comparable; + _ref$3 = tset.methods; + _i$2 = 0; + /* while (true) { */ case 22: + /* if (!(_i$2 < _ref$3.$length)) { break; } */ if(!(_i$2 < _ref$3.$length)) { $s = 23; continue; } + m$1 = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]); + $r = addMethod(pos$1, m$1, false); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$2++; + $s = 22; continue; + case 23: + terms = tset.terms; + $s = 13; continue; + /* } else if ($assertType(_ref$2, ptrType$13, true)[1]) { */ case 11: + u$1 = _ref$2.$val; + if (!(new token.Pos(pos$1).IsValid() && !(check[0] === ptrType$6.nil))) { _v$2 = false; $s = 27; continue s; } + _r$4 = check[0].verifyVersionf(new atPos(((pos$1 >> 0))), $clone(go1_18, version), "embedding interface element %s", new sliceType$5([u$1])); /* */ $s = 28; case 28: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _v$2 = !_r$4; case 27: + /* */ if (_v$2) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (_v$2) { */ case 25: + _i$1++; + /* continue; */ $s = 7; continue; + /* } */ case 26: + _r$5 = computeUnionTypeSet(check[0], unionSets, pos$1, u$1); /* */ $s = 29; case 29: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + tset$1 = _r$5; + if (tset$1 === invalidTypeSet) { + _i$1++; + /* continue; */ $s = 7; continue; + } + $r = assert(!tset$1.comparable); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = assert(tset$1.methods.$length === 0); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + terms = tset$1.terms; + $s = 13; continue; + /* } else { */ case 12: + u$2 = _ref$2; + if ($interfaceIsEqual(u$2, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { + _i$1++; + /* continue; */ $s = 7; continue; + } + if (!(new token.Pos(pos$1).IsValid() && !(check[0] === ptrType$6.nil))) { _v$3 = false; $s = 34; continue s; } + _r$6 = check[0].verifyVersionf(new atPos(((pos$1 >> 0))), $clone(go1_18, version), "embedding non-interface type %s", new sliceType$5([typ$2])); /* */ $s = 35; case 35: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _v$3 = !_r$6; case 34: + /* */ if (_v$3) { $s = 32; continue; } + /* */ $s = 33; continue; + /* if (_v$3) { */ case 32: + _i$1++; + /* continue; */ $s = 7; continue; + /* } */ case 33: + terms = new termlist([new term.ptr(false, typ$2)]); + /* } */ case 13: + _r$7 = intersectTermLists(allTerms, allComparable, terms, comparable$1); /* */ $s = 36; case 36: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _tuple = _r$7; + allTerms = _tuple[0]; + allComparable = _tuple[1]; + _i$1++; + $s = 7; continue; + case 8: + ityp[0].tset.comparable = allComparable; + /* */ if (!((allMethods[0].$length === 0))) { $s = 37; continue; } + /* */ $s = 38; continue; + /* if (!((allMethods[0].$length === 0))) { */ case 37: + $r = sortMethods(allMethods[0]); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + ityp[0].tset.methods = allMethods[0]; + /* } */ case 38: + ityp[0].tset.terms = allTerms; + $24r = ityp[0].tset; + $s = 40; case 40: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$8.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: computeInterfaceTypeSet$1, $c: true, $r, $24r, _i, _i$1, _i$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _ref$1, _ref$2, _ref$3, _tuple, _v, _v$1, _v$2, _v$3, addMethod, allComparable, allMethods, allTerms, check, comparable$1, i, ityp, m, m$1, mpos, pos, pos$1, seen, terms, tset, tset$1, typ$2, u, u$1, u$2, unionSets, x, x$1, $s, $deferred};return $f; } } + }; + intersectTermLists = function intersectTermLists$1(xterms, xcomp, yterms, ycomp) { + var {_i, _r, _r$1, _ref, comp, i, t, terms, xcomp, xterms, ycomp, yterms, $s, $r, $c} = $restore(this, {xterms, xcomp, yterms, ycomp}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = xterms.intersect(yterms); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + terms = _r; + comp = xcomp || ycomp; + /* */ if (comp && !terms.isAll()) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (comp && !terms.isAll()) { */ case 2: + i = 0; + _ref = terms; + _i = 0; + /* while (true) { */ case 4: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 5; continue; } + t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = assert(!($interfaceIsEqual(t.typ, $ifaceNil))); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = comparable(t.typ, false, false, $throwNilPointerError); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (_r$1) { */ case 7: + ((i < 0 || i >= terms.$length) ? ($throwRuntimeError("index out of range"), undefined) : terms.$array[terms.$offset + i] = t); + i = i + (1) >> 0; + /* } */ case 8: + _i++; + $s = 4; continue; + case 5: + terms = $subslice(terms, 0, i); + if (!terms.isAll()) { + comp = false; + } + /* } */ case 3: + $r = assert(!comp || terms.isAll()); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return [terms, comp]; + /* */ } return; } var $f = {$blk: intersectTermLists$1, $c: true, $r, _i, _r, _r$1, _ref, comp, i, t, terms, xcomp, xterms, ycomp, yterms, $s};return $f; + }; + sortMethods = function sortMethods$1(list) { + var {list, $s, $r, $c} = $restore(this, {list}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = sort.Sort(($convertSliceType(list, byUniqueMethodName))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: sortMethods$1, $c: true, $r, list, $s};return $f; + }; + assertSortedMethods = function assertSortedMethods$1(list) { + var {_r, list, $s, $r, $c} = $restore(this, {list}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (true) { + $panic(new $String("assertSortedMethods called outside debug mode")); + } + _r = sort.IsSorted(($convertSliceType(list, byUniqueMethodName))); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!_r) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!_r) { */ case 1: + $panic(new $String("methods not sorted")); + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: assertSortedMethods$1, $c: true, $r, _r, list, $s};return $f; + }; + byUniqueMethodName.prototype.Len = function Len$2() { + var a; + a = this; + return a.$length; + }; + $ptrType(byUniqueMethodName).prototype.Len = function(...$args) { return this.$get().Len(...$args); }; + byUniqueMethodName.prototype.Less = function Less$1(i, j) { + var a, i, j; + a = this; + return ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i]).object.less(((j < 0 || j >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + j]).object); + }; + $ptrType(byUniqueMethodName).prototype.Less = function(...$args) { return this.$get().Less(...$args); }; + byUniqueMethodName.prototype.Swap = function Swap$1(i, j) { + var _tmp, _tmp$1, a, i, j; + a = this; + _tmp = ((j < 0 || j >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + j]); + _tmp$1 = ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i]); + ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i] = _tmp); + ((j < 0 || j >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + j] = _tmp$1); + }; + $ptrType(byUniqueMethodName).prototype.Swap = function(...$args) { return this.$get().Swap(...$args); }; + computeUnionTypeSet = function computeUnionTypeSet$1(check, unionSets, pos, utyp) { + var {_entry, _entry$1, _entry$2, _entry$3, _i, _key, _key$1, _r, _r$1, _r$2, _r$3, _ref, _tuple, _tuple$1, _v, allTerms, check, pos, t, terms, tset, u, ui, unionSets, utyp, $s, $r, $c} = $restore(this, {check, unionSets, pos, utyp}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _tuple = (_entry = $mapIndex(unionSets,ptrType$13.keyFor(utyp)), _entry !== undefined ? [_entry.v, true] : [ptrType$8.nil, false]); + tset = _tuple[0]; + if (!(tset === ptrType$8.nil)) { + $s = -1; return tset; + } + _key = utyp; (unionSets || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$13.keyFor(_key), { k: _key, v: new _TypeSet.ptr(sliceType.nil, termlist.nil, false) }); + allTerms = termlist.nil; + _ref = utyp.terms; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + terms = termlist.nil; + _r = under(t.typ); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + u = _r; + _tuple$1 = $assertType(u, ptrType$14, true); + ui = _tuple$1[0]; + /* */ if (!(ui === ptrType$14.nil)) { $s = 4; continue; } + /* */ if ($interfaceIsEqual(u, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!(ui === ptrType$14.nil)) { */ case 4: + $r = assert(!isTypeParam(t.typ)); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = computeInterfaceTypeSet(check, pos, ui); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + terms = _r$1.terms; + $s = 7; continue; + /* } else if ($interfaceIsEqual(u, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { */ case 5: + _i++; + /* continue; */ $s = 1; continue; + $s = 7; continue; + /* } else { */ case 6: + if (!(t.tilde)) { _v = false; $s = 12; continue s; } + _r$2 = Identical(t.typ, u); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v = !_r$2; case 12: + /* */ if (_v) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (_v) { */ case 10: + t = ptrType$20.nil; + /* } */ case 11: + terms = new termlist([($pointerOfStructConversion(t, ptrType$5))]); + /* } */ case 7: + _r$3 = allTerms.union(terms); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + allTerms = _r$3; + /* */ if (allTerms.$length > 100) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (allTerms.$length > 100) { */ case 15: + /* */ if (!(check === ptrType$6.nil)) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (!(check === ptrType$6.nil)) { */ case 17: + $r = check.errorf(new atPos(((pos >> 0))), 141, "cannot handle more than %d union terms (implementation limitation)", new sliceType$5([new $Int(100)])); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 18: + _key$1 = utyp; (unionSets || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$13.keyFor(_key$1), { k: _key$1, v: invalidTypeSet }); + $s = -1; return (_entry$1 = $mapIndex(unionSets,ptrType$13.keyFor(utyp)), _entry$1 !== undefined ? _entry$1.v : ptrType$8.nil); + /* } */ case 16: + _i++; + $s = 1; continue; + case 2: + (_entry$2 = $mapIndex(unionSets,ptrType$13.keyFor(utyp)), _entry$2 !== undefined ? _entry$2.v : ptrType$8.nil).terms = allTerms; + $s = -1; return (_entry$3 = $mapIndex(unionSets,ptrType$13.keyFor(utyp)), _entry$3 !== undefined ? _entry$3.v : ptrType$8.nil); + /* */ } return; } var $f = {$blk: computeUnionTypeSet$1, $c: true, $r, _entry, _entry$1, _entry$2, _entry$3, _i, _key, _key$1, _r, _r$1, _r$2, _r$3, _ref, _tuple, _tuple$1, _v, allTerms, check, pos, t, terms, tset, u, ui, unionSets, utyp, $s};return $f; + }; + nextID = function nextID$1() { + return (new $Uint64(0, atomic.AddUint32((lastID$24ptr || (lastID$24ptr = new ptrType$56(function() { return lastID; }, function($v) { lastID = $v; }))), 1))); + }; + NewTypeParam = function NewTypeParam$1(obj, constraint) { + var {$24r, _r, constraint, obj, $s, $r, $c} = $restore(this, {obj, constraint}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = (ptrType$6.nil).newTypeParam(obj, constraint); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: NewTypeParam$1, $c: true, $r, $24r, _r, constraint, obj, $s};return $f; + }; + $pkg.NewTypeParam = NewTypeParam; + $ptrType(Checker).prototype.newTypeParam = function newTypeParam(obj, constraint) { + var {_r, check, constraint, id, obj, typ$2, x, x$1, $s, $r, $c} = $restore(this, {obj, constraint}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + id = nextID(); + if (!(check === ptrType$6.nil)) { + check.nextID = (x = check.nextID, x$1 = new $Uint64(0, 1), new $Uint64(x.$high + x$1.$high, x.$low + x$1.$low)); + id = check.nextID; + } + typ$2 = new TypeParam.ptr(check, id, obj, -1, constraint); + if ($interfaceIsEqual(obj.object.typ, $ifaceNil)) { + obj.object.typ = typ$2; + } + /* */ if (!(check === ptrType$6.nil)) { $s = 1; continue; } + /* */ if (!($interfaceIsEqual(constraint, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!(check === ptrType$6.nil)) { */ case 1: + check.needsCleanup(typ$2); + $s = 3; continue; + /* } else if (!($interfaceIsEqual(constraint, $ifaceNil))) { */ case 2: + _r = typ$2.iface(); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + /* } */ case 3: + $s = -1; return typ$2; + /* */ } return; } var $f = {$blk: newTypeParam, $c: true, $r, _r, check, constraint, id, obj, typ$2, x, x$1, $s};return $f; + }; + $ptrType(TypeParam).prototype.Obj = function Obj() { + var t; + t = this; + return t.obj; + }; + $ptrType(TypeParam).prototype.Index = function Index() { + var t; + t = this; + return t.index; + }; + $ptrType(TypeParam).prototype.Constraint = function Constraint() { + var t; + t = this; + return t.bound; + }; + $ptrType(TypeParam).prototype.SetConstraint = function SetConstraint(bound) { + var {_r, bound, t, $s, $r, $c} = $restore(this, {bound}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + if ($interfaceIsEqual(bound, $ifaceNil)) { + $panic(new $String("nil constraint")); + } + t.bound = bound; + _r = t.iface(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + $s = -1; return; + /* */ } return; } var $f = {$blk: SetConstraint, $c: true, $r, _r, bound, t, $s};return $f; + }; + $ptrType(TypeParam).prototype.Underlying = function Underlying$1() { + var {$24r, _r, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r = t.iface(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Underlying$1, $c: true, $r, $24r, _r, t, $s};return $f; + }; + $ptrType(TypeParam).prototype.String = function String$7() { + var {$24r, _r, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r = TypeString(t, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$7, $c: true, $r, $24r, _r, t, $s};return $f; + }; + $ptrType(TypeParam).prototype.cleanup = function cleanup() { + var {_r, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r = t.iface(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + t.check = ptrType$6.nil; + $s = -1; return; + /* */ } return; } var $f = {$blk: cleanup, $c: true, $r, _r, t, $s};return $f; + }; + $ptrType(TypeParam).prototype.iface = function iface() { + var {_r, _r$1, _r$2, _ref, _tuple, bound, ityp, n, pos, t, u, u$1, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + bound = t.bound; + ityp = ptrType$14.nil; + _r = under(bound); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _ref = _r; + /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if ($assertType(_ref, ptrType$4, true)[1]) { */ case 2: + u = _ref.$val; + if (u === (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])) { + $s = -1; return emptyInterface; + } + $s = 4; continue; + /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 3: + u$1 = _ref.$val; + if (isTypeParam(bound)) { + $s = -1; return emptyInterface; + } + ityp = u$1; + /* } */ case 4: + /* */ if (ityp === ptrType$14.nil) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (ityp === ptrType$14.nil) { */ case 5: + _r$1 = NewInterfaceType(sliceType.nil, new sliceType$3([bound])); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + ityp = _r$1; + ityp.implicit = true; + t.bound = ityp; + /* } */ case 6: + /* */ if (ityp.tset === ptrType$8.nil) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (ityp.tset === ptrType$8.nil) { */ case 8: + pos = t.obj.object.pos; + _tuple = $assertType(bound, ptrType$10, true); + n = _tuple[0]; + if (!(n === ptrType$10.nil)) { + pos = n.obj.object.pos; + } + _r$2 = computeInterfaceTypeSet(t.check, pos, ityp); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + /* } */ case 9: + $s = -1; return ityp; + /* */ } return; } var $f = {$blk: iface, $c: true, $r, _r, _r$1, _r$2, _ref, _tuple, bound, ityp, n, pos, t, u, u$1, $s};return $f; + }; + $ptrType(TypeParam).prototype.is = function is$1(f) { + var {$24r, _r, _r$1, _r$2, f, t, $s, $r, $c} = $restore(this, {f}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r = t.iface(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = _r.typeSet(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = _r$1.is(f); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 4; case 4: return $24r; + /* */ } return; } var $f = {$blk: is$1, $c: true, $r, $24r, _r, _r$1, _r$2, f, t, $s};return $f; + }; + $ptrType(TypeParam).prototype.underIs = function underIs$2(f) { + var {$24r, _r, _r$1, _r$2, f, t, $s, $r, $c} = $restore(this, {f}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r = t.iface(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = _r.typeSet(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = _r$1.underIs(f); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 4; case 4: return $24r; + /* */ } return; } var $f = {$blk: underIs$2, $c: true, $r, $24r, _r, _r$1, _r$2, f, t, $s};return $f; + }; + $ptrType(TypeParamList).prototype.Len = function Len$3() { + var l; + l = this; + return l.list().$length; + }; + $ptrType(TypeParamList).prototype.At = function At(i) { + var i, l, x; + l = this; + return (x = l.tparams, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + }; + $ptrType(TypeParamList).prototype.list = function list() { + var l; + l = this; + if (l === ptrType$49.nil) { + return sliceType$8.nil; + } + return l.tparams; + }; + newTypeList = function newTypeList$1(list$1) { + var list$1; + if (list$1.$length === 0) { + return ptrType$57.nil; + } + return new TypeList.ptr(list$1); + }; + $ptrType(TypeList).prototype.Len = function Len$4() { + var l; + l = this; + return l.list().$length; + }; + $ptrType(TypeList).prototype.At = function At$1(i) { + var i, l, x; + l = this; + return (x = l.types, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + }; + $ptrType(TypeList).prototype.list = function list$1() { + var l; + l = this; + if (l === ptrType$57.nil) { + return sliceType$3.nil; + } + return l.types; + }; + bindTParams = function bindTParams$1(list$2) { + var _i, _ref, i, list$2, typ$2; + if (list$2.$length === 0) { + return ptrType$49.nil; + } + _ref = list$2; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + typ$2 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (typ$2.index >= 0) { + $panic(new $String("type parameter bound more than once")); + } + typ$2.index = i; + _i++; + } + return new TypeParamList.ptr(list$2); + }; + NewTuple = function NewTuple$1(x) { + var x; + if (x.$length > 0) { + return new Tuple.ptr(x); + } + return ptrType$16.nil; + }; + $pkg.NewTuple = NewTuple; + $ptrType(Tuple).prototype.Len = function Len$5() { + var t; + t = this; + if (!(t === ptrType$16.nil)) { + return t.vars.$length; + } + return 0; + }; + $ptrType(Tuple).prototype.At = function At$2(i) { + var i, t, x; + t = this; + return (x = t.vars, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + }; + $ptrType(Tuple).prototype.Underlying = function Underlying$2() { + var t; + t = this; + return t; + }; + $ptrType(Tuple).prototype.String = function String$8() { + var {$24r, _r, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r = TypeString(t, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$8, $c: true, $r, $24r, _r, t, $s};return $f; + }; + termlist.prototype.String = function String$9() { + var {_i, _r, _r$1, _ref, buf, i, x, xl, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + xl = this; + if (xl.$length === 0) { + $s = -1; return "\xE2\x88\x85"; + } + buf = new strings.Builder.ptr(ptrType$54.nil, sliceType$12.nil); + _ref = xl; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (i > 0) { + buf.WriteString(" | "); + } + _r = x.String(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = buf.WriteString(_r); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + _i++; + $s = 1; continue; + case 2: + $s = -1; return buf.String(); + /* */ } return; } var $f = {$blk: String$9, $c: true, $r, _i, _r, _r$1, _ref, buf, i, x, xl, $s};return $f; + }; + $ptrType(termlist).prototype.String = function(...$args) { return this.$get().String(...$args); }; + termlist.prototype.isEmpty = function isEmpty() { + var _i, _ref, x, xl; + xl = this; + _ref = xl; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!(x === ptrType$5.nil)) { + return false; + } + _i++; + } + return true; + }; + $ptrType(termlist).prototype.isEmpty = function(...$args) { return this.$get().isEmpty(...$args); }; + termlist.prototype.isAll = function isAll() { + var _i, _ref, x, xl; + xl = this; + _ref = xl; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!(x === ptrType$5.nil) && $interfaceIsEqual(x.typ, $ifaceNil)) { + return true; + } + _i++; + } + return false; + }; + $ptrType(termlist).prototype.isAll = function(...$args) { return this.$get().isAll(...$args); }; + termlist.prototype.norm = function norm() { + var {_i, _r, _ref, _tuple, i, j, rl, u1, u2, used, xi, xj, xl, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + xl = this; + used = $makeSlice(sliceType$14, xl.$length); + rl = termlist.nil; + _ref = xl; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + xi = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (xi === ptrType$5.nil || ((i < 0 || i >= used.$length) ? ($throwRuntimeError("index out of range"), undefined) : used.$array[used.$offset + i])) { + _i++; + /* continue; */ $s = 1; continue; + } + j = i + 1 >> 0; + /* while (true) { */ case 3: + /* if (!(j < xl.$length)) { break; } */ if(!(j < xl.$length)) { $s = 4; continue; } + xj = ((j < 0 || j >= xl.$length) ? ($throwRuntimeError("index out of range"), undefined) : xl.$array[xl.$offset + j]); + if (xj === ptrType$5.nil || ((j < 0 || j >= used.$length) ? ($throwRuntimeError("index out of range"), undefined) : used.$array[used.$offset + j])) { + j = j + (1) >> 0; + /* continue; */ $s = 3; continue; + } + _r = xi.union(xj); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + u1 = _tuple[0]; + u2 = _tuple[1]; + if (u2 === ptrType$5.nil) { + if ($interfaceIsEqual(u1.typ, $ifaceNil)) { + $s = -1; return allTermlist; + } + xi = u1; + ((j < 0 || j >= used.$length) ? ($throwRuntimeError("index out of range"), undefined) : used.$array[used.$offset + j] = true); + } + j = j + (1) >> 0; + $s = 3; continue; + case 4: + rl = $append(rl, xi); + _i++; + $s = 1; continue; + case 2: + $s = -1; return rl; + /* */ } return; } var $f = {$blk: norm, $c: true, $r, _i, _r, _ref, _tuple, i, j, rl, u1, u2, used, xi, xj, xl, $s};return $f; + }; + $ptrType(termlist).prototype.norm = function(...$args) { return this.$get().norm(...$args); }; + termlist.prototype.union = function union$1(yl) { + var {$24r, _r, xl, yl, $s, $r, $c} = $restore(this, {yl}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + xl = this; + _r = $appendSlice(xl, $convertSliceType(yl, sliceType$15)).norm(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: union$1, $c: true, $r, $24r, _r, xl, yl, $s};return $f; + }; + $ptrType(termlist).prototype.union = function(...$args) { return this.$get().union(...$args); }; + termlist.prototype.intersect = function intersect$1(yl) { + var {$24r, _i, _i$1, _r, _r$1, _ref, _ref$1, r, rl, x, xl, y, yl, $s, $r, $c} = $restore(this, {yl}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + xl = this; + if (xl.isEmpty() || yl.isEmpty()) { + $s = -1; return termlist.nil; + } + rl = termlist.nil; + _ref = xl; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _ref$1 = yl; + _i$1 = 0; + /* while (true) { */ case 3: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 4; continue; } + y = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + _r = x.intersect(y); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + r = _r; + if (!(r === ptrType$5.nil)) { + rl = $append(rl, r); + } + _i$1++; + $s = 3; continue; + case 4: + _i++; + $s = 1; continue; + case 2: + _r$1 = rl.norm(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 7; case 7: return $24r; + /* */ } return; } var $f = {$blk: intersect$1, $c: true, $r, $24r, _i, _i$1, _r, _r$1, _ref, _ref$1, r, rl, x, xl, y, yl, $s};return $f; + }; + $ptrType(termlist).prototype.intersect = function(...$args) { return this.$get().intersect(...$args); }; + termlist.prototype.equal = function equal$2(yl) { + var {$24r, _r, _r$1, _v, xl, yl, $s, $r, $c} = $restore(this, {yl}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + xl = this; + _r = xl.subsetOf(yl); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + if (!(_r)) { _v = false; $s = 1; continue s; } + _r$1 = yl.subsetOf(xl); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = _r$1; case 1: + $24r = _v; + $s = 4; case 4: return $24r; + /* */ } return; } var $f = {$blk: equal$2, $c: true, $r, $24r, _r, _r$1, _v, xl, yl, $s};return $f; + }; + $ptrType(termlist).prototype.equal = function(...$args) { return this.$get().equal(...$args); }; + termlist.prototype.includes = function includes$1(t) { + var {_i, _r, _ref, t, x, xl, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + xl = this; + _ref = xl; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r = x.includes(t); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_r) { */ case 3: + $s = -1; return true; + /* } */ case 4: + _i++; + $s = 1; continue; + case 2: + $s = -1; return false; + /* */ } return; } var $f = {$blk: includes$1, $c: true, $r, _i, _r, _ref, t, x, xl, $s};return $f; + }; + $ptrType(termlist).prototype.includes = function(...$args) { return this.$get().includes(...$args); }; + termlist.prototype.supersetOf = function supersetOf(y) { + var {_i, _r, _ref, x, xl, y, $s, $r, $c} = $restore(this, {y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + xl = this; + _ref = xl; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r = y.subsetOf(x); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_r) { */ case 3: + $s = -1; return true; + /* } */ case 4: + _i++; + $s = 1; continue; + case 2: + $s = -1; return false; + /* */ } return; } var $f = {$blk: supersetOf, $c: true, $r, _i, _r, _ref, x, xl, y, $s};return $f; + }; + $ptrType(termlist).prototype.supersetOf = function(...$args) { return this.$get().supersetOf(...$args); }; + termlist.prototype.subsetOf = function subsetOf$2(yl) { + var {_i, _r, _ref, x, xl, yl, $s, $r, $c} = $restore(this, {yl}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + xl = this; + if (yl.isEmpty()) { + $s = -1; return xl.isEmpty(); + } + _ref = xl; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r = yl.supersetOf(x); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!_r) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!_r) { */ case 3: + $s = -1; return false; + /* } */ case 4: + _i++; + $s = 1; continue; + case 2: + $s = -1; return true; + /* */ } return; } var $f = {$blk: subsetOf$2, $c: true, $r, _i, _r, _ref, x, xl, yl, $s};return $f; + }; + $ptrType(termlist).prototype.subsetOf = function(...$args) { return this.$get().subsetOf(...$args); }; + makeSubstMap = function makeSubstMap$1(tpars, targs) { + var {_i, _key, _ref, i, proj, targs, tpar, tpars, x, $s, $r, $c} = $restore(this, {tpars, targs}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = assert(tpars.$length === targs.$length); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + proj = (x = tpars.$length, ((x < 0 || x > 2147483647) ? $throwRuntimeError("makemap: size out of range") : new $global.Map())); + _ref = tpars; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + tpar = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _key = tpar; (proj || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$15.keyFor(_key), { k: _key, v: ((i < 0 || i >= targs.$length) ? ($throwRuntimeError("index out of range"), undefined) : targs.$array[targs.$offset + i]) }); + _i++; + } + $s = -1; return proj; + /* */ } return; } var $f = {$blk: makeSubstMap$1, $c: true, $r, _i, _key, _ref, i, proj, targs, tpar, tpars, x, $s};return $f; + }; + makeRenameMap = function makeRenameMap$1(from, to) { + var {_i, _key, _ref, from, i, proj, to, tpar, x, $s, $r, $c} = $restore(this, {from, to}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = assert(from.$length === to.$length); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + proj = (x = from.$length, ((x < 0 || x > 2147483647) ? $throwRuntimeError("makemap: size out of range") : new $global.Map())); + _ref = from; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + tpar = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _key = tpar; (proj || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$15.keyFor(_key), { k: _key, v: ((i < 0 || i >= to.$length) ? ($throwRuntimeError("index out of range"), undefined) : to.$array[to.$offset + i]) }); + _i++; + } + $s = -1; return proj; + /* */ } return; } var $f = {$blk: makeRenameMap$1, $c: true, $r, _i, _key, _ref, from, i, proj, to, tpar, x, $s};return $f; + }; + substMap.prototype.empty = function empty() { + var m; + m = this.$val; + return (m ? m.size : 0) === 0; + }; + $ptrType(substMap).prototype.empty = function(...$args) { return new substMap(this.$get()).empty(...$args); }; + substMap.prototype.lookup = function lookup(tpar) { + var _entry, m, t, tpar; + m = this.$val; + t = (_entry = $mapIndex(m,ptrType$15.keyFor(tpar)), _entry !== undefined ? _entry.v : $ifaceNil); + if (!($interfaceIsEqual(t, $ifaceNil))) { + return t; + } + return tpar; + }; + $ptrType(substMap).prototype.lookup = function(...$args) { return new substMap(this.$get()).lookup(...$args); }; + $ptrType(Checker).prototype.subst = function subst(pos, typ$2, smap, expanding, ctxt) { + var {$24r, _r, _ref, check, ctxt, expanding, pos, smap, subst$1, t, t$1, typ$2, $s, $r, $c} = $restore(this, {pos, typ$2, smap, expanding, ctxt}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + $r = assert(!(expanding === ptrType$10.nil) || !(ctxt === ptrType$52.nil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (new substMap(smap).empty()) { + $s = -1; return typ$2; + } + _ref = typ$2; + if ($assertType(_ref, ptrType$4, true)[1]) { + t = _ref.$val; + $s = -1; return typ$2; + } else if ($assertType(_ref, ptrType$15, true)[1]) { + t$1 = _ref.$val; + $s = -1; return new substMap(smap).lookup(t$1); + } + subst$1 = new subster.ptr(pos, smap, check, expanding, ctxt); + _r = subst$1.typ(typ$2); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: subst, $c: true, $r, $24r, _r, _ref, check, ctxt, expanding, pos, smap, subst$1, t, t$1, typ$2, $s};return $f; + }; + $ptrType(subster).prototype.typ = function typ$2(typ$3) { + var {$24r, $24r$1, _i, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, base, copied, copied$1, dump, ecopied, elem, elem$1, elem$2, elem$3, embeddeds, fields, i, iface$1, key, mcopied, methods, n, newTArgs, new_targ, orig, params, recv, results, s, subst$1, t, t$1, t$10, t$11, t$12, t$13, t$14, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, targ, terms, typ$3, $s, $deferred, $r, $c} = $restore(this, {typ$3}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + subst$1 = [subst$1]; + subst$1[0] = this; + _ref = typ$3; + /* */ if (_ref === $ifaceNil) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$12, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$16, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref, ptrType$29, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 9; continue; } + /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref, ptrType$30, true)[1]) { $s = 11; continue; } + /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 12; continue; } + /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 13; continue; } + /* */ if ($assertType(_ref, ptrType$15, true)[1]) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (_ref === $ifaceNil) { */ case 1: + t = _ref; + $panic(new $String("nil typ")); + $s = 16; continue; + /* } else if ($assertType(_ref, ptrType$4, true)[1]) { */ case 2: + t$1 = _ref.$val; + $s = 16; continue; + /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 3: + t$2 = _ref.$val; + _r = subst$1[0].typOrNil(t$2.elem); /* */ $s = 17; case 17: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + elem = _r; + if (!($interfaceIsEqual(elem, t$2.elem))) { + $s = -1; return new Array.ptr(t$2.len, elem); + } + $s = 16; continue; + /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 4: + t$3 = _ref.$val; + _r$1 = subst$1[0].typOrNil(t$3.elem); /* */ $s = 18; case 18: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + elem$1 = _r$1; + if (!($interfaceIsEqual(elem$1, t$3.elem))) { + $s = -1; return new Slice.ptr(elem$1); + } + $s = 16; continue; + /* } else if ($assertType(_ref, ptrType$12, true)[1]) { */ case 5: + t$4 = _ref.$val; + _r$2 = subst$1[0].varList(t$4.fields); /* */ $s = 19; case 19: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = _r$2; + fields = _tuple[0]; + copied = _tuple[1]; + if (copied) { + s = new Struct.ptr(fields, t$4.tags); + s.markComplete(); + $s = -1; return s; + } + $s = 16; continue; + /* } else if ($assertType(_ref, ptrType$28, true)[1]) { */ case 6: + t$5 = _ref.$val; + _r$3 = subst$1[0].typ(t$5.base); /* */ $s = 20; case 20: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + base = _r$3; + if (!($interfaceIsEqual(base, t$5.base))) { + $s = -1; return new Pointer.ptr(base); + } + $s = 16; continue; + /* } else if ($assertType(_ref, ptrType$16, true)[1]) { */ case 7: + t$6 = _ref.$val; + _r$4 = subst$1[0].tuple(t$6); /* */ $s = 21; case 21: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r = _r$4; + $s = 22; case 22: return $24r; + /* } else if ($assertType(_ref, ptrType$29, true)[1]) { */ case 8: + t$7 = _ref.$val; + recv = t$7.recv; + _r$5 = subst$1[0].tuple(t$7.params); /* */ $s = 23; case 23: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + params = _r$5; + _r$6 = subst$1[0].tuple(t$7.results); /* */ $s = 24; case 24: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + results = _r$6; + if (!(params === t$7.params) || !(results === t$7.results)) { + $s = -1; return new Signature.ptr(t$7.rparams, t$7.tparams, ptrType.nil, recv, params, results, t$7.variadic); + } + $s = 16; continue; + /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 9: + t$8 = _ref.$val; + _r$7 = subst$1[0].termlist(t$8.terms); /* */ $s = 25; case 25: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _tuple$1 = _r$7; + terms = _tuple$1[0]; + copied$1 = _tuple$1[1]; + if (copied$1) { + $s = -1; return new Union.ptr(terms); + } + $s = 16; continue; + /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 10: + t$9 = _ref.$val; + _r$8 = subst$1[0].funcList(t$9.methods); /* */ $s = 26; case 26: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _tuple$2 = _r$8; + methods = _tuple$2[0]; + mcopied = _tuple$2[1]; + _r$9 = subst$1[0].typeList(t$9.embeddeds); /* */ $s = 27; case 27: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _tuple$3 = _r$9; + embeddeds = _tuple$3[0]; + ecopied = _tuple$3[1]; + if (mcopied || ecopied) { + iface$1 = subst$1[0].check.newInterface(); + iface$1.embeddeds = embeddeds; + iface$1.embedPos = t$9.embedPos; + iface$1.implicit = t$9.implicit; + iface$1.complete = t$9.complete; + _tuple$4 = replaceRecvType(methods, t$9, iface$1); + iface$1.methods = _tuple$4[0]; + $s = -1; return iface$1; + } + $s = 16; continue; + /* } else if ($assertType(_ref, ptrType$30, true)[1]) { */ case 11: + t$10 = _ref.$val; + _r$10 = subst$1[0].typ(t$10.key); /* */ $s = 28; case 28: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + key = _r$10; + _r$11 = subst$1[0].typ(t$10.elem); /* */ $s = 29; case 29: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + elem$2 = _r$11; + if (!($interfaceIsEqual(key, t$10.key)) || !($interfaceIsEqual(elem$2, t$10.elem))) { + $s = -1; return new Map.ptr(key, elem$2); + } + $s = 16; continue; + /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 12: + t$11 = _ref.$val; + _r$12 = subst$1[0].typ(t$11.elem); /* */ $s = 30; case 30: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + elem$3 = _r$12; + if (!($interfaceIsEqual(elem$3, t$11.elem))) { + $s = -1; return new Chan.ptr(t$11.dir, elem$3); + } + $s = 16; continue; + /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 13: + t$12 = _ref.$val; + dump = (function(subst$1) { return function subster·typ·func1(param, param$1) { + var param, param$1; + }; })(subst$1); + /* */ if (!(subst$1[0].check === ptrType$6.nil) && subst$1[0].check.conf._Trace) { $s = 31; continue; } + /* */ $s = 32; continue; + /* if (!(subst$1[0].check === ptrType$6.nil) && subst$1[0].check.conf._Trace) { */ case 31: + subst$1[0].check.indent = subst$1[0].check.indent + (1) >> 0; + $deferred.push([(function(subst$1) { return function subster·typ·func2() { + subst$1[0].check.indent = subst$1[0].check.indent - (1) >> 0; + }; })(subst$1), []]); + dump = (function(subst$1) { return function subster·typ·func3(format, args) { + var {args, format, $s, $r, $c} = $restore(this, {format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = subst$1[0].check.trace(subst$1[0].pos, format, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: subster·typ·func3, $c: true, $r, args, format, $s};return $f; + }; })(subst$1); + /* } */ case 32: + orig = t$12.Origin(); + _r$13 = orig.TypeParams(); /* */ $s = 33; case 33: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _r$14 = _r$13.Len(); /* */ $s = 34; case 34: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + n = _r$14; + /* */ if (n === 0) { $s = 35; continue; } + /* */ $s = 36; continue; + /* if (n === 0) { */ case 35: + $r = dump(">>> %s is not parameterized", new sliceType$5([t$12])); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return t$12; + /* } */ case 36: + newTArgs = sliceType$3.nil; + if (!((t$12.TypeArgs().Len() === n))) { + $s = -1; return (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + } + $r = dump(">>> %s already instantiated", new sliceType$5([t$12])); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _ref$1 = t$12.TypeArgs().list(); + _i = 0; + /* while (true) { */ case 39: + /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 40; continue; } + i = _i; + targ = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + $r = dump(">>> %d targ = %s", new sliceType$5([new $Int(i), targ])); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$15 = subst$1[0].typ(targ); /* */ $s = 42; case 42: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + new_targ = _r$15; + /* */ if (!($interfaceIsEqual(new_targ, targ))) { $s = 43; continue; } + /* */ $s = 44; continue; + /* if (!($interfaceIsEqual(new_targ, targ))) { */ case 43: + $r = dump(">>> substituted %d targ %s => %s", new sliceType$5([new $Int(i), targ, new_targ])); /* */ $s = 45; case 45: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (newTArgs === sliceType$3.nil) { + newTArgs = $makeSlice(sliceType$3, n); + $copySlice(newTArgs, t$12.TypeArgs().list()); + } + ((i < 0 || i >= newTArgs.$length) ? ($throwRuntimeError("index out of range"), undefined) : newTArgs.$array[newTArgs.$offset + i] = new_targ); + /* } */ case 44: + _i++; + $s = 39; continue; + case 40: + /* */ if (newTArgs === sliceType$3.nil) { $s = 46; continue; } + /* */ $s = 47; continue; + /* if (newTArgs === sliceType$3.nil) { */ case 46: + $r = dump(">>> nothing to substitute in %s", new sliceType$5([t$12])); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return t$12; + /* } */ case 47: + _r$16 = subst$1[0].check.instance(subst$1[0].pos, orig, newTArgs, subst$1[0].expanding, subst$1[0].ctxt); /* */ $s = 49; case 49: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + $24r$1 = _r$16; + $s = 50; case 50: return $24r$1; + /* } else if ($assertType(_ref, ptrType$15, true)[1]) { */ case 14: + t$13 = _ref.$val; + $s = -1; return new substMap(subst$1[0].smap).lookup(t$13); + /* } else { */ case 15: + t$14 = _ref; + unreachable(); + /* } */ case 16: + $s = -1; return typ$3; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: typ$2, $c: true, $r, $24r, $24r$1, _i, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, base, copied, copied$1, dump, ecopied, elem, elem$1, elem$2, elem$3, embeddeds, fields, i, iface$1, key, mcopied, methods, n, newTArgs, new_targ, orig, params, recv, results, s, subst$1, t, t$1, t$10, t$11, t$12, t$13, t$14, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, targ, terms, typ$3, $s, $deferred};return $f; } } + }; + $ptrType(subster).prototype.typOrNil = function typOrNil(typ$3) { + var {$24r, _r, subst$1, typ$3, $s, $r, $c} = $restore(this, {typ$3}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + subst$1 = this; + if ($interfaceIsEqual(typ$3, $ifaceNil)) { + $s = -1; return (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + } + _r = subst$1.typ(typ$3); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: typOrNil, $c: true, $r, $24r, _r, subst$1, typ$3, $s};return $f; + }; + $ptrType(subster).prototype.var_ = function var_(v) { + var {_r, subst$1, typ$3, v, $s, $r, $c} = $restore(this, {v}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + subst$1 = this; + /* */ if (!(v === ptrType$17.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(v === ptrType$17.nil)) { */ case 1: + _r = subst$1.typ(v.object.typ); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + typ$3 = _r; + if (!($interfaceIsEqual(typ$3, v.object.typ))) { + $s = -1; return substVar(v, typ$3); + } + /* } */ case 2: + $s = -1; return v; + /* */ } return; } var $f = {$blk: var_, $c: true, $r, _r, subst$1, typ$3, v, $s};return $f; + }; + substVar = function substVar$1(v, typ$3) { + var copy, typ$3, v; + copy = $clone((v === ptrType$17.nil && $throwNilPointerError(), v), Var); + copy.object.typ = typ$3; + copy.origin = v.Origin(); + return copy; + }; + $ptrType(subster).prototype.tuple = function tuple$1(t) { + var {_r, _tuple, copied, subst$1, t, vars, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + subst$1 = this; + /* */ if (!(t === ptrType$16.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(t === ptrType$16.nil)) { */ case 1: + _r = subst$1.varList(t.vars); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + vars = _tuple[0]; + copied = _tuple[1]; + if (copied) { + $s = -1; return new Tuple.ptr(vars); + } + /* } */ case 2: + $s = -1; return t; + /* */ } return; } var $f = {$blk: tuple$1, $c: true, $r, _r, _tuple, copied, subst$1, t, vars, $s};return $f; + }; + $ptrType(subster).prototype.varList = function varList(in$1) { + var {_i, _r, _ref, copied, i, in$1, new$1, out, subst$1, v, w, $s, $r, $c} = $restore(this, {in$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + out = sliceType$9.nil; + copied = false; + subst$1 = this; + out = in$1; + _ref = in$1; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r = subst$1.var_(v); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + w = _r; + if (!(w === v)) { + if (!copied) { + new$1 = $makeSlice(sliceType$9, in$1.$length); + $copySlice(new$1, out); + out = new$1; + copied = true; + } + ((i < 0 || i >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + i] = w); + } + _i++; + $s = 1; continue; + case 2: + $s = -1; return [out, copied]; + /* */ } return; } var $f = {$blk: varList, $c: true, $r, _i, _r, _ref, copied, i, in$1, new$1, out, subst$1, v, w, $s};return $f; + }; + $ptrType(subster).prototype.func_ = function func_(f) { + var {_r, f, subst$1, typ$3, $s, $r, $c} = $restore(this, {f}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + subst$1 = this; + /* */ if (!(f === ptrType$2.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(f === ptrType$2.nil)) { */ case 1: + _r = subst$1.typ(f.object.typ); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + typ$3 = _r; + if (!($interfaceIsEqual(typ$3, f.object.typ))) { + $s = -1; return substFunc(f, typ$3); + } + /* } */ case 2: + $s = -1; return f; + /* */ } return; } var $f = {$blk: func_, $c: true, $r, _r, f, subst$1, typ$3, $s};return $f; + }; + substFunc = function substFunc$1(f, typ$3) { + var copy, f, typ$3; + copy = $clone((f === ptrType$2.nil && $throwNilPointerError(), f), Func); + copy.object.typ = typ$3; + copy.origin = f.Origin(); + return copy; + }; + $ptrType(subster).prototype.funcList = function funcList(in$1) { + var {_i, _r, _ref, copied, f, g, i, in$1, new$1, out, subst$1, $s, $r, $c} = $restore(this, {in$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + out = sliceType.nil; + copied = false; + subst$1 = this; + out = in$1; + _ref = in$1; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r = subst$1.func_(f); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + g = _r; + if (!(g === f)) { + if (!copied) { + new$1 = $makeSlice(sliceType, in$1.$length); + $copySlice(new$1, out); + out = new$1; + copied = true; + } + ((i < 0 || i >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + i] = g); + } + _i++; + $s = 1; continue; + case 2: + $s = -1; return [out, copied]; + /* */ } return; } var $f = {$blk: funcList, $c: true, $r, _i, _r, _ref, copied, f, g, i, in$1, new$1, out, subst$1, $s};return $f; + }; + $ptrType(subster).prototype.typeList = function typeList$2(in$1) { + var {_i, _r, _ref, copied, i, in$1, new$1, out, subst$1, t, u, $s, $r, $c} = $restore(this, {in$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + out = sliceType$3.nil; + copied = false; + subst$1 = this; + out = in$1; + _ref = in$1; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r = subst$1.typ(t); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + u = _r; + if (!($interfaceIsEqual(u, t))) { + if (!copied) { + new$1 = $makeSlice(sliceType$3, in$1.$length); + $copySlice(new$1, out); + out = new$1; + copied = true; + } + ((i < 0 || i >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + i] = u); + } + _i++; + $s = 1; continue; + case 2: + $s = -1; return [out, copied]; + /* */ } return; } var $f = {$blk: typeList$2, $c: true, $r, _i, _r, _ref, copied, i, in$1, new$1, out, subst$1, t, u, $s};return $f; + }; + $ptrType(subster).prototype.termlist = function termlist$1(in$1) { + var {_i, _r, _ref, copied, i, in$1, new$1, out, subst$1, t, u, $s, $r, $c} = $restore(this, {in$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + out = sliceType$11.nil; + copied = false; + subst$1 = this; + out = in$1; + _ref = in$1; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r = subst$1.typ(t.typ); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + u = _r; + if (!($interfaceIsEqual(u, t.typ))) { + if (!copied) { + new$1 = $makeSlice(sliceType$11, in$1.$length); + $copySlice(new$1, out); + out = new$1; + copied = true; + } + ((i < 0 || i >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + i] = NewTerm(t.tilde, u)); + } + _i++; + $s = 1; continue; + case 2: + $s = -1; return [out, copied]; + /* */ } return; } var $f = {$blk: termlist$1, $c: true, $r, _i, _r, _ref, copied, i, in$1, new$1, out, subst$1, t, u, $s};return $f; + }; + replaceRecvType = function replaceRecvType$1(in$1, old, new$1) { + var _i, _ref, copied, i, in$1, method, new$1, newsig, old, out, sig; + out = sliceType.nil; + copied = false; + out = in$1; + _ref = in$1; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + newsig = [newsig]; + i = _i; + method = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + sig = $assertType(method.object.Type(), ptrType$29); + if (!(sig.recv === ptrType$17.nil) && $interfaceIsEqual(sig.recv.object.Type(), old)) { + if (!copied) { + out = $makeSlice(sliceType, in$1.$length); + $copySlice(out, in$1); + copied = true; + } + newsig[0] = $clone((sig === ptrType$29.nil && $throwNilPointerError(), sig), Signature); + newsig[0].recv = substVar(sig.recv, new$1); + ((i < 0 || i >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + i] = substFunc(method, newsig[0])); + } + _i++; + } + return [out, copied]; + }; + NewStruct = function NewStruct$1(fields, tags) { + var {_i, _r, _ref, _v, f, fields, fset, fset$24ptr, s, tags, $s, $r, $c} = $restore(this, {fields, tags}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + fset = false; + _ref = fields; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!(!(f.object.name === "_"))) { _v = false; $s = 5; continue s; } + _r = (fset$24ptr || (fset$24ptr = new ptrType$55(function() { return fset; }, function($v) { fset = $v; }))).insert(f); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = !($interfaceIsEqual(_r, $ifaceNil)); case 5: + /* */ if (_v) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_v) { */ case 3: + $panic(new $String("multiple fields with the same name")); + /* } */ case 4: + _i++; + $s = 1; continue; + case 2: + if (tags.$length > fields.$length) { + $panic(new $String("more tags than fields")); + } + s = new Struct.ptr(fields, tags); + s.markComplete(); + $s = -1; return s; + /* */ } return; } var $f = {$blk: NewStruct$1, $c: true, $r, _i, _r, _ref, _v, f, fields, fset, fset$24ptr, s, tags, $s};return $f; + }; + $pkg.NewStruct = NewStruct; + $ptrType(Struct).prototype.NumFields = function NumFields() { + var s; + s = this; + return s.fields.$length; + }; + $ptrType(Struct).prototype.Field = function Field(i) { + var i, s, x; + s = this; + return (x = s.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + }; + $ptrType(Struct).prototype.Tag = function Tag(i) { + var i, s, x; + s = this; + if (i < s.tags.$length) { + return (x = s.tags, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + } + return ""; + }; + $ptrType(Struct).prototype.Underlying = function Underlying$3() { + var t; + t = this; + return t; + }; + $ptrType(Struct).prototype.String = function String$10() { + var {$24r, _r, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r = TypeString(t, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$10, $c: true, $r, $24r, _r, t, $s};return $f; + }; + $ptrType(Struct).prototype.markComplete = function markComplete() { + var s; + s = this; + if (s.fields === sliceType$9.nil) { + s.fields = $makeSlice(sliceType$9, 0); + } + }; + $ptrType(Checker).prototype.structType = function structType$2(styp, e) { + var {_i, _i$1, _r, _r$1, _r$2, _ref, _ref$1, add, addInvalid, check, e, embeddedPos, embeddedTyp, f, fields, fset, list$2, name, name$1, pos, styp, tag, tags, typ$3, $s, $r, $c} = $restore(this, {styp, e}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + add = [add]; + check = [check]; + fields = [fields]; + fset = [fset]; + tag = [tag]; + tags = [tags]; + typ$3 = [typ$3]; + check[0] = this; + list$2 = e.Fields; + if (list$2 === ptrType$50.nil) { + styp.markComplete(); + $s = -1; return; + } + fields[0] = sliceType$9.nil; + tags[0] = sliceType$13.nil; + fset[0] = false; + typ$3[0] = $ifaceNil; + tag[0] = ""; + add[0] = (function(add, check, fields, fset, tag, tags, typ$3) { return function Checker·structType·func1(ident$1, embedded, pos) { + var {_r, _v, embedded, fld, ident$1, name, pos, $s, $r, $c} = $restore(this, {ident$1, embedded, pos}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (!(tag[0] === "") && tags[0] === sliceType$13.nil) { + tags[0] = $makeSlice(sliceType$13, fields[0].$length); + } + if (!(tags[0] === sliceType$13.nil)) { + tags[0] = $append(tags[0], tag[0]); + } + name = ident$1.Name; + fld = NewField(pos, check[0].pkg, name, typ$3[0], embedded); + if (name === "_") { _v = true; $s = 3; continue s; } + _r = check[0].declareInSet((fset.$ptr || (fset.$ptr = new ptrType$55(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, fset))), pos, fld); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r; case 3: + /* */ if (_v) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_v) { */ case 1: + fields[0] = $append(fields[0], fld); + $r = check[0].recordDef(ident$1, fld); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·structType·func1, $c: true, $r, _r, _v, embedded, fld, ident$1, name, pos, $s};return $f; + }; })(add, check, fields, fset, tag, tags, typ$3); + addInvalid = (function(add, check, fields, fset, tag, tags, typ$3) { return function Checker·structType·func2(ident$1, pos) { + var {ident$1, pos, $s, $r, $c} = $restore(this, {ident$1, pos}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + typ$3[0] = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + tag[0] = ""; + $r = add[0](ident$1, true, pos); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·structType·func2, $c: true, $r, ident$1, pos, $s};return $f; + }; })(add, check, fields, fset, tag, tags, typ$3); + _ref = list$2.List; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + embeddedPos = [embeddedPos]; + embeddedTyp = [embeddedTyp]; + f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r = check[0].varType(f.Type); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + typ$3[0] = _r; + _r$1 = check[0].tag(f.Tag); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + tag[0] = _r$1; + /* */ if (f.Names.$length > 0) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (f.Names.$length > 0) { */ case 5: + _ref$1 = f.Names; + _i$1 = 0; + /* while (true) { */ case 8: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 9; continue; } + name = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + $r = add[0](name, false, name.Pos()); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + $s = 8; continue; + case 9: + $s = 7; continue; + /* } else { */ case 6: + _r$2 = f.Type.Pos(); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + pos = _r$2; + name$1 = embeddedFieldIdent(f.Type); + /* */ if (name$1 === ptrType$31.nil) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (name$1 === ptrType$31.nil) { */ case 12: + $r = check[0].errorf(f.Type, -1, "embedded field type %s has no name", new sliceType$5([f.Type])); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + name$1 = ast.NewIdent("_"); + name$1.NamePos = pos; + $r = addInvalid(name$1, pos); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* continue; */ $s = 1; continue; + /* } */ case 13: + $r = add[0](name$1, true, name$1.Pos()); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + embeddedTyp[0] = typ$3[0]; + embeddedPos[0] = f.Type; + check[0].later((function(add, check, embeddedPos, embeddedTyp, fields, fset, tag, tags, typ$3) { return function Checker·structType·func3() { + var {_r$3, _ref$2, _tuple, isPtr, t, u, u$1, u$2, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _tuple = deref(embeddedTyp[0]); + t = _tuple[0]; + isPtr = _tuple[1]; + _r$3 = under(t); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _ref$2 = _r$3; + /* */ if ($assertType(_ref$2, ptrType$4, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref$2, ptrType$28, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref$2, ptrType$14, true)[1]) { $s = 4; continue; } + /* */ $s = 5; continue; + /* switch (0) { default: if ($assertType(_ref$2, ptrType$4, true)[1]) { */ case 2: + u = _ref$2.$val; + if ($interfaceIsEqual(t, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { + $s = -1; return; + } + /* */ if (u.kind === 18) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (u.kind === 18) { */ case 6: + $r = check[0].error(embeddedPos[0], 30, "embedded field type cannot be unsafe.Pointer"); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 7: + $s = 5; continue; + /* } else if ($assertType(_ref$2, ptrType$28, true)[1]) { */ case 3: + u$1 = _ref$2.$val; + $r = check[0].error(embeddedPos[0], 30, "embedded field type cannot be a pointer"); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 5; continue; + /* } else if ($assertType(_ref$2, ptrType$14, true)[1]) { */ case 4: + u$2 = _ref$2.$val; + /* */ if (isTypeParam(t)) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (isTypeParam(t)) { */ case 10: + $r = check[0].error(embeddedPos[0], 144, "embedded field type cannot be a (pointer to a) type parameter"); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* break; */ $s = 5; continue; + /* } */ case 11: + /* */ if (isPtr) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (isPtr) { */ case 13: + $r = check[0].error(embeddedPos[0], 30, "embedded field type cannot be a pointer to an interface"); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 14: + /* } } */ case 5: + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·structType·func3, $c: true, $r, _r$3, _ref$2, _tuple, isPtr, t, u, u$1, u$2, $s};return $f; + }; })(add, check, embeddedPos, embeddedTyp, fields, fset, tag, tags, typ$3)).describef(embeddedPos[0], "check embedded type %s", new sliceType$5([embeddedTyp[0]])); + /* } */ case 7: + _i++; + $s = 1; continue; + case 2: + styp.fields = fields[0]; + styp.tags = tags[0]; + styp.markComplete(); + $s = -1; return; + /* */ } return; } var $f = {$blk: structType$2, $c: true, $r, _i, _i$1, _r, _r$1, _r$2, _ref, _ref$1, add, addInvalid, check, e, embeddedPos, embeddedTyp, f, fields, fset, list$2, name, name$1, pos, styp, tag, tags, typ$3, $s};return $f; + }; + embeddedFieldIdent = function embeddedFieldIdent$1(e) { + var _ref, _tuple, e, e$1, e$2, e$3, e$4, e$5, ok; + _ref = e; + if ($assertType(_ref, ptrType$31, true)[1]) { + e$1 = _ref.$val; + return e$1; + } else if ($assertType(_ref, ptrType$44, true)[1]) { + e$2 = _ref.$val; + _tuple = $assertType(e$2.X, ptrType$44, true); + ok = _tuple[1]; + if (!ok) { + return embeddedFieldIdent(e$2.X); + } + } else if ($assertType(_ref, ptrType$37, true)[1]) { + e$3 = _ref.$val; + return e$3.Sel; + } else if ($assertType(_ref, ptrType$38, true)[1]) { + e$4 = _ref.$val; + return embeddedFieldIdent(e$4.X); + } else if ($assertType(_ref, ptrType$39, true)[1]) { + e$5 = _ref.$val; + return embeddedFieldIdent(e$5.X); + } + return ptrType$31.nil; + }; + $ptrType(Checker).prototype.declareInSet = function declareInSet(oset, pos, obj) { + var {_arg, _arg$1, _r, _r$1, alt, check, obj, oset, pos, $s, $r, $c} = $restore(this, {oset, pos, obj}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _r = oset.insert(obj); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + alt = _r; + /* */ if (!($interfaceIsEqual(alt, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(alt, $ifaceNil))) { */ case 2: + _arg = new atPos(((pos >> 0))); + _r$1 = obj.Name(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg$1 = new $String(_r$1); + $r = check.errorf(_arg, 10, "%s redeclared", new sliceType$5([_arg$1])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.reportAltDecl(alt); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; + /* } */ case 3: + $s = -1; return true; + /* */ } return; } var $f = {$blk: declareInSet, $c: true, $r, _arg, _arg$1, _r, _r$1, alt, check, obj, oset, pos, $s};return $f; + }; + $ptrType(Checker).prototype.tag = function tag(t) { + var {_tuple, check, err, t, val, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + /* */ if (!(t === ptrType$58.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(t === ptrType$58.nil)) { */ case 1: + if (t.Kind === 9) { + _tuple = strconv.Unquote(t.Value); + val = _tuple[0]; + err = _tuple[1]; + if ($interfaceIsEqual(err, $ifaceNil)) { + $s = -1; return val; + } + } + $r = check.errorf(t, -1, "incorrect tag syntax: %q", new sliceType$5([new $String(t.Value)])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $s = -1; return ""; + /* */ } return; } var $f = {$blk: tag, $c: true, $r, _tuple, check, err, t, val, $s};return $f; + }; + $ptrType(Checker).prototype.funcBody = function funcBody(decl$1, name, sig, body, iota) { + var {_r, body, check, decl$1, iota, name, sig, $s, $deferred, $r, $c} = $restore(this, {decl$1, name, sig, body, iota}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + check = [check]; + check[0] = this; + if (check[0].conf.IgnoreFuncBodies) { + $panic(new $String("function body not ignored")); + } + /* */ if (check[0].conf._Trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (check[0].conf._Trace) { */ case 1: + $r = check[0].trace(body.Pos(), "-- %s: %s", new sliceType$5([new $String(name), sig])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + sig.scope.pos = body.Pos(); + _r = body.End(); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + sig.scope.end = _r; + $deferred.push([(function(check) { return function Checker·funcBody·func1(env, indent) { + var env, indent; + environment.copy(check[0].environment, env); + check[0].indent = indent; + }; })(check), [$clone(check[0].environment, environment), check[0].indent]]); + environment.copy(check[0].environment, new environment.ptr(decl$1, sig.scope, 0, iota, $ifaceNil, false, sig, false, false, false)); + check[0].indent = 0; + $r = check[0].stmtList(0, body.List); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (check[0].environment.hasLabel) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (check[0].environment.hasLabel) { */ case 6: + $r = check[0].labels(body); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 7: + /* */ if (sig.results.Len() > 0 && !check[0].isTerminating(body, "")) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (sig.results.Len() > 0 && !check[0].isTerminating(body, "")) { */ case 9: + $r = check[0].error(new atPos(((body.Rbrace >> 0))), 102, "missing return"); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 10: + $r = check[0].usage(sig.scope); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: funcBody, $c: true, $r, _r, body, check, decl$1, iota, name, sig, $s, $deferred};return $f; } } + }; + $ptrType(Checker).prototype.usage = function usage(scope) { + var {_entry, _i, _i$1, _i$2, _key, _keys, _r, _ref, _ref$1, _ref$2, _size, _tuple, check, elem, name, scope, scope$1, unused, v, v$1, $s, $r, $c} = $restore(this, {scope}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + unused = [unused]; + check = this; + unused[0] = sliceType$9.nil; + _ref = scope.elems; + _i = 0; + _keys = _ref ? _ref.keys() : undefined; + _size = _ref ? _ref.size : 0; + /* while (true) { */ case 1: + /* if (!(_i < _size)) { break; } */ if(!(_i < _size)) { $s = 2; continue; } + _key = _keys.next().value; + _entry = _ref.get(_key); + if (_entry === undefined) { + _i++; + /* continue; */ $s = 1; continue; + } + name = _entry.k; + elem = _entry.v; + _r = resolve(name, elem); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + elem = _r; + _tuple = $assertType(elem, ptrType$17, true); + v = _tuple[0]; + if (!(v === ptrType$17.nil) && !v.used) { + unused[0] = $append(unused[0], v); + } + _i++; + $s = 1; continue; + case 2: + $r = sort.Slice(unused[0], (function(unused) { return function Checker·usage·func1(i, j) { + var i, j; + return cmpPos(((i < 0 || i >= unused[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : unused[0].$array[unused[0].$offset + i]).object.pos, ((j < 0 || j >= unused[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : unused[0].$array[unused[0].$offset + j]).object.pos) < 0; + }; })(unused)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _ref$1 = unused[0]; + _i$1 = 0; + /* while (true) { */ case 5: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 6; continue; } + v$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + $r = check.softErrorf(v$1, 101, "%s declared and not used", new sliceType$5([new $String(v$1.object.name)])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + $s = 5; continue; + case 6: + _ref$2 = scope.children; + _i$2 = 0; + /* while (true) { */ case 8: + /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 9; continue; } + scope$1 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); + /* */ if (!scope$1.isFunc) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (!scope$1.isFunc) { */ case 10: + $r = check.usage(scope$1); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 11: + _i$2++; + $s = 8; continue; + case 9: + $s = -1; return; + /* */ } return; } var $f = {$blk: usage, $c: true, $r, _entry, _i, _i$1, _i$2, _key, _keys, _r, _ref, _ref$1, _ref$2, _size, _tuple, check, elem, name, scope, scope$1, unused, v, v$1, $s};return $f; + }; + $ptrType(Checker).prototype.simpleStmt = function simpleStmt(s) { + var {check, s, $s, $r, $c} = $restore(this, {s}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + /* */ if (!($interfaceIsEqual(s, $ifaceNil))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!($interfaceIsEqual(s, $ifaceNil))) { */ case 1: + $r = check.stmt(0, s); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: simpleStmt, $c: true, $r, check, s, $s};return $f; + }; + trimTrailingEmptyStmts = function trimTrailingEmptyStmts$1(list$2) { + var _tuple, i, list$2, ok, x; + i = list$2.$length; + while (true) { + if (!(i > 0)) { break; } + _tuple = $assertType((x = i - 1 >> 0, ((x < 0 || x >= list$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : list$2.$array[list$2.$offset + x])), ptrType$60, true); + ok = _tuple[1]; + if (!ok) { + return $subslice(list$2, 0, i); + } + i = i - (1) >> 0; + } + return sliceType$16.nil; + }; + $ptrType(Checker).prototype.stmtList = function stmtList(ctxt, list$2) { + var {_i, _ref, check, ctxt, i, inner, inner$1, list$2, ok, s, $s, $r, $c} = $restore(this, {ctxt, list$2}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + ok = !((((ctxt & 4) >>> 0) === 0)); + inner = (ctxt & ~4) >>> 0; + list$2 = trimTrailingEmptyStmts(list$2); + _ref = list$2; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + inner$1 = inner; + if (ok && ((i + 1 >> 0) === list$2.$length)) { + inner$1 = (inner$1 | (4)) >>> 0; + } + $r = check.stmt(inner$1, s); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: stmtList, $c: true, $r, _i, _ref, check, ctxt, i, inner, inner$1, list$2, ok, s, $s};return $f; + }; + $ptrType(Checker).prototype.multipleDefaults = function multipleDefaults(list$2) { + var {_arg, _arg$1, _i, _r, _r$1, _ref, _ref$1, c, c$1, c$2, check, d, first, list$2, s, x, $s, $r, $c} = $restore(this, {list$2}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + first = $ifaceNil; + _ref = list$2; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + d = $ifaceNil; + _ref$1 = s; + /* */ if ($assertType(_ref$1, ptrType$61, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref$1, ptrType$62, true)[1]) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ($assertType(_ref$1, ptrType$61, true)[1]) { */ case 3: + c = _ref$1.$val; + if (c.List.$length === 0) { + d = s; + } + $s = 6; continue; + /* } else if ($assertType(_ref$1, ptrType$62, true)[1]) { */ case 4: + c$1 = _ref$1.$val; + if ($interfaceIsEqual(c$1.Comm, $ifaceNil)) { + d = s; + } + $s = 6; continue; + /* } else { */ case 5: + c$2 = _ref$1; + $r = check.error(s, -1, "case/communication clause expected"); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + /* */ if (!($interfaceIsEqual(d, $ifaceNil))) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!($interfaceIsEqual(d, $ifaceNil))) { */ case 8: + /* */ if (!($interfaceIsEqual(first, $ifaceNil))) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (!($interfaceIsEqual(first, $ifaceNil))) { */ case 10: + _arg = d; + _r = first.Pos(); /* */ $s = 13; case 13: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = check.fset.Position(_r); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg$1 = (x = _r$1, new x.constructor.elem(x)); + $r = check.errorf(_arg, 114, "multiple defaults (first at %s)", new sliceType$5([_arg$1])); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 12; continue; + /* } else { */ case 11: + first = d; + /* } */ case 12: + /* } */ case 9: + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: multipleDefaults, $c: true, $r, _arg, _arg$1, _i, _r, _r$1, _ref, _ref$1, c, c$1, c$2, check, d, first, list$2, s, x, $s};return $f; + }; + $ptrType(Checker).prototype.openScope = function openScope(node, comment) { + var {_arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$2, check, comment, node, scope, $s, $r, $c} = $restore(this, {node, comment}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _arg = check.environment.scope; + _r = node.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = _r; + _r$1 = node.End(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg$2 = _r$1; + _arg$3 = comment; + _r$2 = NewScope(_arg, _arg$1, _arg$2, _arg$3); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + scope = _r$2; + $r = check.recordScope(node, scope); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + check.environment.scope = scope; + $s = -1; return; + /* */ } return; } var $f = {$blk: openScope, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$2, check, comment, node, scope, $s};return $f; + }; + $ptrType(Checker).prototype.closeScope = function closeScope() { + var check; + check = this; + check.environment.scope = check.environment.scope.Parent(); + }; + assignOp = function assignOp$1(op) { + var op; + if (23 <= op && op <= 33) { + return op + -11 >> 0; + } + return 0; + }; + $ptrType(Checker).prototype.suspendedCall = function suspendedCall(keyword, call) { + var {_1, _r, call, check, code, keyword, msg, x, $s, $r, $c} = $restore(this, {keyword, call}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = [x]; + check = this; + x[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + msg = ""; + code = 0; + _r = check.rawExpr($ifaceNil, x[0], call, $ifaceNil, false); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _1 = _r; + if (_1 === (0)) { + msg = "requires function call, not conversion"; + code = 129; + if (keyword === "go") { + code = 130; + } + } else if (_1 === (1)) { + msg = "discards result of"; + code = 128; + } else if (_1 === (2)) { + $s = -1; return; + } else { + unreachable(); + } + case 1: + $r = check.errorf(x[0], code, "%s %s %s", new sliceType$5([new $String(keyword), new $String(msg), x[0]])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: suspendedCall, $c: true, $r, _1, _r, call, check, code, keyword, msg, x, $s};return $f; + }; + goVal = function goVal$1(val) { + var {$24r, _1, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, _tuple$2, ok, ok$1, ok$2, val, x, x$1, x$2, $s, $r, $c} = $restore(this, {val}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if ($interfaceIsEqual(val, $ifaceNil)) { + $s = -1; return $ifaceNil; + } + _r = val.Kind(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _1 = _r; + /* */ if (_1 === (3)) { $s = 3; continue; } + /* */ if (_1 === (4)) { $s = 4; continue; } + /* */ if (_1 === (2)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_1 === (3)) { */ case 3: + _r$1 = constant.Int64Val(val); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + x = _tuple[0]; + ok = _tuple[1]; + if (ok) { + $s = -1; return x; + } + _r$2 = constant.Uint64Val(val); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$1 = _r$2; + x$1 = _tuple$1[0]; + ok$1 = _tuple$1[1]; + if (ok$1) { + $s = -1; return x$1; + } + $s = 6; continue; + /* } else if (_1 === (4)) { */ case 4: + _r$3 = constant.Float64Val(val); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$2 = _r$3; + x$2 = _tuple$2[0]; + ok$2 = _tuple$2[1]; + if (ok$2) { + $s = -1; return new $Float64(x$2); + } + $s = 6; continue; + /* } else if (_1 === (2)) { */ case 5: + _r$4 = constant.StringVal(val); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r = new $String(_r$4); + $s = 11; case 11: return $24r; + /* } */ case 6: + case 1: + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: goVal$1, $c: true, $r, $24r, _1, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, _tuple$2, ok, ok$1, ok$2, val, x, x$1, x$2, $s};return $f; + }; + $ptrType(Checker).prototype.caseValues = function caseValues(x, values, seen) { + var {_entry, _entry$1, _i, _i$1, _key, _r, _r$1, _r$2, _ref, _ref$1, check, e, res, seen, v, val, values, vt, x, $s, $r, $c} = $restore(this, {x, values, seen}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _ref = values; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + res = [res]; + v = [v]; + e = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + v[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + $r = check.expr($ifaceNil, v[0], e); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if ((x.mode === 0) || (v[0].mode === 0)) { + _i++; + /* continue L; */ $s = 1; continue s; + } + $r = check.convertUntyped(v[0], x.typ); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (v[0].mode === 0) { + _i++; + /* continue L; */ $s = 1; continue s; + } + res[0] = $clone(v[0], operand); + $r = check.comparison(res[0], x, 39, true); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (res[0].mode === 0) { + _i++; + /* continue L; */ $s = 1; continue s; + } + if (!((v[0].mode === 4))) { + _i++; + /* continue L; */ $s = 1; continue s; + } + _r = goVal(v[0].val); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + val = _r; + /* */ if (!($interfaceIsEqual(val, $ifaceNil))) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!($interfaceIsEqual(val, $ifaceNil))) { */ case 7: + _ref$1 = (_entry = $mapIndex(seen,$emptyInterface.keyFor(val)), _entry !== undefined ? _entry.v : sliceType$17.nil); + _i$1 = 0; + /* while (true) { */ case 9: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 10; continue; } + vt = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), valueType); + _r$1 = Identical(v[0].typ, vt.typ); /* */ $s = 13; case 13: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (_r$1) { */ case 11: + $r = check.errorf(v[0], 113, "duplicate case %s in expression switch", new sliceType$5([v[0]])); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.error(new atPos(((vt.pos >> 0))), 113, "\tprevious case"); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* continue L; */ $s = 1; continue s; + /* } */ case 12: + _i$1++; + $s = 9; continue; + case 10: + _r$2 = v[0].Pos(); /* */ $s = 16; case 16: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _key = val; (seen || $throwRuntimeError("assignment to entry in nil map")).set($emptyInterface.keyFor(_key), { k: _key, v: $append((_entry$1 = $mapIndex(seen,$emptyInterface.keyFor(val)), _entry$1 !== undefined ? _entry$1.v : sliceType$17.nil), new valueType.ptr(_r$2, v[0].typ)) }); + /* } */ case 8: + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: caseValues, $c: true, $r, _entry, _entry$1, _i, _i$1, _key, _r, _r$1, _r$2, _ref, _ref$1, check, e, res, seen, v, val, values, vt, x, $s};return $f; + }; + $ptrType(Checker).prototype.isNil = function isNil(e) { + var {_r, _tuple, _tuple$1, check, e, name, ok, $s, $r, $c} = $restore(this, {e}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _tuple = $assertType(unparen(e), ptrType$31, true); + name = _tuple[0]; + /* */ if (!(name === ptrType$31.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(name === ptrType$31.nil)) { */ case 1: + _r = check.environment.lookup(name.Name); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple$1 = $assertType(_r, ptrType$34, true); + ok = _tuple$1[1]; + $s = -1; return ok; + /* } */ case 2: + $s = -1; return false; + /* */ } return; } var $f = {$blk: isNil, $c: true, $r, _r, _tuple, _tuple$1, check, e, name, ok, $s};return $f; + }; + $ptrType(Checker).prototype.caseTypes = function caseTypes(x, types, seen) { + var {T, Ts, _entry, _i, _i$1, _key, _key$1, _keys, _r, _r$1, _r$2, _r$3, _ref, _ref$1, _size, _v, _v$1, check, dummy, e, other, seen, t, types, x, $s, $r, $c} = $restore(this, {x, types, seen}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + dummy = [dummy]; + T = $ifaceNil; + check = this; + dummy[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + _ref = types; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + e = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r = check.isNil(e); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_r) { */ case 3: + T = $ifaceNil; + $r = check.expr($ifaceNil, dummy[0], e); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 5; continue; + /* } else { */ case 4: + _r$1 = check.varType(e); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + T = _r$1; + if ($interfaceIsEqual(T, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { + _i++; + /* continue L; */ $s = 1; continue s; + } + /* } */ case 5: + _ref$1 = seen; + _i$1 = 0; + _keys = _ref$1 ? _ref$1.keys() : undefined; + _size = _ref$1 ? _ref$1.size : 0; + /* while (true) { */ case 9: + /* if (!(_i$1 < _size)) { break; } */ if(!(_i$1 < _size)) { $s = 10; continue; } + _key = _keys.next().value; + _entry = _ref$1.get(_key); + if (_entry === undefined) { + _i$1++; + /* continue; */ $s = 9; continue; + } + t = _entry.k; + other = _entry.v; + if ($interfaceIsEqual(T, $ifaceNil) && $interfaceIsEqual(t, $ifaceNil)) { _v = true; $s = 13; continue s; } + if (!(!($interfaceIsEqual(T, $ifaceNil)) && !($interfaceIsEqual(t, $ifaceNil)))) { _v$1 = false; $s = 14; continue s; } + _r$2 = Identical(T, t); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v$1 = _r$2; case 14: + _v = _v$1; case 13: + /* */ if (_v) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (_v) { */ case 11: + Ts = "nil"; + /* */ if (!($interfaceIsEqual(T, $ifaceNil))) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (!($interfaceIsEqual(T, $ifaceNil))) { */ case 16: + _r$3 = TypeString(T, $methodVal(check, "qualifier")); /* */ $s = 18; case 18: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + Ts = _r$3; + /* } */ case 17: + $r = check.errorf(e, 113, "duplicate case %s in type switch", new sliceType$5([new $String(Ts)])); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.error(other, 113, "\tprevious case"); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* continue L; */ $s = 1; continue s; + /* } */ case 12: + _i$1++; + $s = 9; continue; + case 10: + _key$1 = T; (seen || $throwRuntimeError("assignment to entry in nil map")).set(Type.keyFor(_key$1), { k: _key$1, v: e }); + /* */ if (!(x === ptrType$63.nil) && !($interfaceIsEqual(T, $ifaceNil))) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (!(x === ptrType$63.nil) && !($interfaceIsEqual(T, $ifaceNil))) { */ case 21: + $r = check.typeAssertion(e, x, T, true); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 22: + _i++; + $s = 1; continue; + case 2: + $s = -1; return T; + /* */ } return; } var $f = {$blk: caseTypes, $c: true, $r, T, Ts, _entry, _i, _i$1, _key, _key$1, _keys, _r, _r$1, _r$2, _r$3, _ref, _ref$1, _size, _v, _v$1, check, dummy, e, other, seen, t, types, x, $s};return $f; + }; + $ptrType(Checker).prototype.stmt = function stmt(ctxt, s) { + var {T, Y, _1, _2, _3, _4, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$10, _ref$11, _ref$12, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _ref$9, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, _tuple$10, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, _v$2, _v$3, alt, c, cause, ch, check, clause, clause$1, clause$2, code, ctxt, expr, guard, guard$1, guard$2, i, i$1, i$2, ident$1, inner, inner$1, key, kind, lhs, lhs$1, lhs$2, lhs$3, lhs$4, lhsVars, msg, msg$1, n, name, obj, obj$1, obj$2, obj$3, ok, op, op$1, res, rhs, rhs$1, rhs$2, s, s$1, s$10, s$11, s$12, s$13, s$14, s$15, s$16, s$17, s$18, s$19, s$2, s$20, s$21, s$22, s$23, s$24, s$25, s$3, s$4, s$5, s$6, s$7, s$8, s$9, scopePos, scopePos$1, seen, seen$1, sx, t, t$1, typ$3, typ$4, u, u$1, uch, used, v, val, val$1, valid, vars, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $deferred, $r, $c} = $restore(this, {ctxt, s}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + ch = [ch]; + check = [check]; + val = [val]; + x = [x]; + x$1 = [x$1]; + x$2 = [x$2]; + x$3 = [x$3]; + x$4 = [x$4]; + x$5 = [x$5]; + x$6 = [x$6]; + x$7 = [x$7]; + check[0] = this; + /* */ if (false) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (false) { */ case 1: + $deferred.push([(function(ch, check, val, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7) { return function Checker·stmt·func1(scope) { + var {p, scope, $s, $r, $c} = $restore(this, {scope}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = $recover(); + if (!($interfaceIsEqual(p, $ifaceNil))) { + $panic(p); + } + $r = assert(scope === check[0].environment.scope); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·stmt·func1, $c: true, $r, p, scope, $s};return $f; + }; })(ch, check, val, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7), [check[0].environment.scope]]); + /* } */ case 2: + $deferred.push([$methodVal(check[0], "processDelayed"), [check[0].delayed.$length]]); + inner = (ctxt & ~28) >>> 0; + _ref = s; + /* */ if ($assertType(_ref, ptrType$64, true)[1] || $assertType(_ref, ptrType$60, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$65, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$66, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$67, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$68, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref, ptrType$69, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref, ptrType$70, true)[1]) { $s = 9; continue; } + /* */ if ($assertType(_ref, ptrType$71, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref, ptrType$72, true)[1]) { $s = 11; continue; } + /* */ if ($assertType(_ref, ptrType$73, true)[1]) { $s = 12; continue; } + /* */ if ($assertType(_ref, ptrType$74, true)[1]) { $s = 13; continue; } + /* */ if ($assertType(_ref, ptrType$75, true)[1]) { $s = 14; continue; } + /* */ if ($assertType(_ref, ptrType$76, true)[1]) { $s = 15; continue; } + /* */ if ($assertType(_ref, ptrType$77, true)[1]) { $s = 16; continue; } + /* */ if ($assertType(_ref, ptrType$78, true)[1]) { $s = 17; continue; } + /* */ if ($assertType(_ref, ptrType$79, true)[1]) { $s = 18; continue; } + /* */ if ($assertType(_ref, ptrType$80, true)[1]) { $s = 19; continue; } + /* */ if ($assertType(_ref, ptrType$81, true)[1]) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if ($assertType(_ref, ptrType$64, true)[1] || $assertType(_ref, ptrType$60, true)[1]) { */ case 3: + s$1 = _ref; + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$65, true)[1]) { */ case 4: + s$2 = _ref.$val; + $r = check[0].declStmt(s$2.Decl); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$66, true)[1]) { */ case 5: + s$3 = _ref.$val; + check[0].environment.hasLabel = true; + $r = check[0].stmt(ctxt, s$3.Stmt); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$67, true)[1]) { */ case 6: + s$4 = _ref.$val; + x[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + _r = check[0].rawExpr($ifaceNil, x[0], s$4.X, $ifaceNil, false); /* */ $s = 25; case 25: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + kind = _r; + msg = ""; + code = 0; + _1 = x[0].mode; + /* */ if (_1 === (2)) { $s = 27; continue; } + /* */ if (_1 === (3)) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (_1 === (2)) { */ case 27: + msg = "must be called"; + code = 82; + $s = 30; continue; + /* } else if (_1 === (3)) { */ case 28: + msg = "is not an expression"; + code = 42; + $s = 30; continue; + /* } else { */ case 29: + /* */ if (kind === 2) { $s = 31; continue; } + /* */ $s = 32; continue; + /* if (kind === 2) { */ case 31: + $s = 33; case 33: return; + /* } */ case 32: + msg = "is not used"; + code = 100; + /* } */ case 30: + case 26: + $r = check[0].errorf(x[0], code, "%s %s", new sliceType$5([x[0], new $String(msg)])); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$68, true)[1]) { */ case 7: + s$5 = _ref.$val; + _tmp = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + _tmp$1 = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + ch[0] = $clone(_tmp, operand); + val[0] = $clone(_tmp$1, operand); + $r = check[0].expr($ifaceNil, ch[0], s$5.Chan); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].expr($ifaceNil, val[0], s$5.Value); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if ((ch[0].mode === 0) || (val[0].mode === 0)) { $s = 37; continue; } + /* */ $s = 38; continue; + /* if ((ch[0].mode === 0) || (val[0].mode === 0)) { */ case 37: + $s = 39; case 39: return; + /* } */ case 38: + _r$1 = coreType(ch[0].typ); /* */ $s = 40; case 40: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + u = _r$1; + /* */ if ($interfaceIsEqual(u, $ifaceNil)) { $s = 41; continue; } + /* */ $s = 42; continue; + /* if ($interfaceIsEqual(u, $ifaceNil)) { */ case 41: + _r$2 = inNode(s$5, s$5.Arrow); /* */ $s = 43; case 43: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $r = check[0].errorf((x$8 = _r$2, new x$8.constructor.elem(x$8)), 59, "invalid operation: cannot send to %s: no core type", new sliceType$5([ch[0]])); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 45; case 45: return; + /* } */ case 42: + _tuple = $assertType(u, ptrType$26, true); + uch = _tuple[0]; + /* */ if (uch === ptrType$26.nil) { $s = 46; continue; } + /* */ $s = 47; continue; + /* if (uch === ptrType$26.nil) { */ case 46: + _r$3 = inNode(s$5, s$5.Arrow); /* */ $s = 48; case 48: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $r = check[0].errorf((x$9 = _r$3, new x$9.constructor.elem(x$9)), 59, "invalid operation: cannot send to non-channel %s", new sliceType$5([ch[0]])); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 50; case 50: return; + /* } */ case 47: + /* */ if (uch.dir === 2) { $s = 51; continue; } + /* */ $s = 52; continue; + /* if (uch.dir === 2) { */ case 51: + _r$4 = inNode(s$5, s$5.Arrow); /* */ $s = 53; case 53: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $r = check[0].errorf((x$10 = _r$4, new x$10.constructor.elem(x$10)), 59, "invalid operation: cannot send to receive-only channel %s", new sliceType$5([ch[0]])); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 55; case 55: return; + /* } */ case 52: + $r = check[0].assignment(val[0], uch.elem, "send"); /* */ $s = 56; case 56: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$69, true)[1]) { */ case 8: + s$6 = _ref.$val; + op = 0; + _2 = s$6.Tok; + /* */ if (_2 === (37)) { $s = 58; continue; } + /* */ if (_2 === (38)) { $s = 59; continue; } + /* */ $s = 60; continue; + /* if (_2 === (37)) { */ case 58: + op = 12; + $s = 61; continue; + /* } else if (_2 === (38)) { */ case 59: + op = 13; + $s = 61; continue; + /* } else { */ case 60: + _r$5 = inNode(s$6, s$6.TokPos); /* */ $s = 62; case 62: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $r = check[0].errorf((x$11 = _r$5, new x$11.constructor.elem(x$11)), -1, "unknown inc/dec operation %s", new sliceType$5([new token.Token(s$6.Tok)])); /* */ $s = 63; case 63: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 64; case 64: return; + /* } */ case 61: + case 57: + x$1[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + $r = check[0].expr($ifaceNil, x$1[0], s$6.X); /* */ $s = 65; case 65: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (x$1[0].mode === 0) { $s = 66; continue; } + /* */ $s = 67; continue; + /* if (x$1[0].mode === 0) { */ case 66: + $s = 68; case 68: return; + /* } */ case 67: + _r$6 = allNumeric(x$1[0].typ); /* */ $s = 71; case 71: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + /* */ if (!_r$6) { $s = 69; continue; } + /* */ $s = 70; continue; + /* if (!_r$6) { */ case 69: + $r = check[0].errorf(s$6.X, 48, "invalid operation: %s%s (non-numeric type %s)", new sliceType$5([s$6.X, new token.Token(s$6.Tok), x$1[0].typ])); /* */ $s = 72; case 72: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 73; case 73: return; + /* } */ case 70: + _r$7 = s$6.X.Pos(); /* */ $s = 74; case 74: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + Y = new ast.BasicLit.ptr(_r$7, 5, "1"); + $r = check[0].binary(x$1[0], $ifaceNil, s$6.X, Y, op, s$6.TokPos); /* */ $s = 75; case 75: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (x$1[0].mode === 0) { $s = 76; continue; } + /* */ $s = 77; continue; + /* if (x$1[0].mode === 0) { */ case 76: + $s = 78; case 78: return; + /* } */ case 77: + $r = check[0].assignVar(s$6.X, $ifaceNil, x$1[0]); /* */ $s = 79; case 79: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$70, true)[1]) { */ case 9: + s$7 = _ref.$val; + _3 = s$7.Tok; + /* */ if ((_3 === (42)) || (_3 === (47))) { $s = 81; continue; } + /* */ $s = 82; continue; + /* if ((_3 === (42)) || (_3 === (47))) { */ case 81: + /* */ if (s$7.Lhs.$length === 0) { $s = 84; continue; } + /* */ $s = 85; continue; + /* if (s$7.Lhs.$length === 0) { */ case 84: + $r = check[0].error(s$7, -1, "missing lhs in assignment"); /* */ $s = 86; case 86: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 87; case 87: return; + /* } */ case 85: + /* */ if (s$7.Tok === 47) { $s = 88; continue; } + /* */ $s = 89; continue; + /* if (s$7.Tok === 47) { */ case 88: + _r$8 = inNode(s$7, s$7.TokPos); /* */ $s = 91; case 91: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + $r = check[0].shortVarDecl((x$12 = _r$8, new x$12.constructor.elem(x$12)), s$7.Lhs, s$7.Rhs); /* */ $s = 92; case 92: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 90; continue; + /* } else { */ case 89: + $r = check[0].assignVars(s$7.Lhs, s$7.Rhs); /* */ $s = 93; case 93: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 90: + $s = 83; continue; + /* } else { */ case 82: + /* */ if (!((s$7.Lhs.$length === 1)) || !((s$7.Rhs.$length === 1))) { $s = 94; continue; } + /* */ $s = 95; continue; + /* if (!((s$7.Lhs.$length === 1)) || !((s$7.Rhs.$length === 1))) { */ case 94: + _r$9 = inNode(s$7, s$7.TokPos); /* */ $s = 96; case 96: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + $r = check[0].errorf((x$13 = _r$9, new x$13.constructor.elem(x$13)), 20, "assignment operation %s requires single-valued expressions", new sliceType$5([new token.Token(s$7.Tok)])); /* */ $s = 97; case 97: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 98; case 98: return; + /* } */ case 95: + op$1 = assignOp(s$7.Tok); + /* */ if (op$1 === 0) { $s = 99; continue; } + /* */ $s = 100; continue; + /* if (op$1 === 0) { */ case 99: + $r = check[0].errorf(new atPos(((s$7.TokPos >> 0))), -1, "unknown assignment operation %s", new sliceType$5([new token.Token(s$7.Tok)])); /* */ $s = 101; case 101: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 102; case 102: return; + /* } */ case 100: + x$2[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + $r = check[0].binary(x$2[0], $ifaceNil, (x$14 = s$7.Lhs, (0 >= x$14.$length ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + 0])), (x$15 = s$7.Rhs, (0 >= x$15.$length ? ($throwRuntimeError("index out of range"), undefined) : x$15.$array[x$15.$offset + 0])), op$1, s$7.TokPos); /* */ $s = 103; case 103: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (x$2[0].mode === 0) { $s = 104; continue; } + /* */ $s = 105; continue; + /* if (x$2[0].mode === 0) { */ case 104: + $s = 106; case 106: return; + /* } */ case 105: + $r = check[0].assignVar((x$16 = s$7.Lhs, (0 >= x$16.$length ? ($throwRuntimeError("index out of range"), undefined) : x$16.$array[x$16.$offset + 0])), $ifaceNil, x$2[0]); /* */ $s = 107; case 107: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 83: + case 80: + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$71, true)[1]) { */ case 10: + s$8 = _ref.$val; + $r = check[0].suspendedCall("go", s$8.Call); /* */ $s = 108; case 108: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$72, true)[1]) { */ case 11: + s$9 = _ref.$val; + $r = check[0].suspendedCall("defer", s$9.Call); /* */ $s = 109; case 109: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$73, true)[1]) { */ case 12: + s$10 = _ref.$val; + res = check[0].environment.sig.results; + /* */ if ((s$10.Results.$length === 0) && res.Len() > 0 && !((x$17 = res.vars, (0 >= x$17.$length ? ($throwRuntimeError("index out of range"), undefined) : x$17.$array[x$17.$offset + 0])).object.name === "")) { $s = 110; continue; } + /* */ $s = 111; continue; + /* if ((s$10.Results.$length === 0) && res.Len() > 0 && !((x$17 = res.vars, (0 >= x$17.$length ? ($throwRuntimeError("index out of range"), undefined) : x$17.$array[x$17.$offset + 0])).object.name === "")) { */ case 110: + _ref$1 = res.vars; + _i = 0; + /* while (true) { */ case 113: + /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 114; continue; } + obj = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + _r$10 = check[0].environment.lookup(obj.object.name); /* */ $s = 115; case 115: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + alt = _r$10; + /* */ if (!($interfaceIsEqual(alt, $ifaceNil)) && !($interfaceIsEqual(alt, obj))) { $s = 116; continue; } + /* */ $s = 117; continue; + /* if (!($interfaceIsEqual(alt, $ifaceNil)) && !($interfaceIsEqual(alt, obj))) { */ case 116: + $r = check[0].errorf(s$10, 104, "result parameter %s not in scope at return", new sliceType$5([new $String(obj.object.name)])); /* */ $s = 118; case 118: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].errorf(alt, 104, "\tinner declaration of %s", new sliceType$5([obj])); /* */ $s = 119; case 119: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 117: + _i++; + $s = 113; continue; + case 114: + $s = 112; continue; + /* } else { */ case 111: + lhs = sliceType$9.nil; + if (res.Len() > 0) { + lhs = res.vars; + } + $r = check[0].initVars(lhs, s$10.Results, s$10); /* */ $s = 120; case 120: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 112: + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$74, true)[1]) { */ case 13: + s$11 = _ref.$val; + /* */ if (!(s$11.Label === ptrType$31.nil)) { $s = 121; continue; } + /* */ $s = 122; continue; + /* if (!(s$11.Label === ptrType$31.nil)) { */ case 121: + check[0].environment.hasLabel = true; + $s = 123; case 123: return; + /* } */ case 122: + _4 = s$11.Tok; + /* */ if (_4 === (61)) { $s = 125; continue; } + /* */ if (_4 === (65)) { $s = 126; continue; } + /* */ if (_4 === (69)) { $s = 127; continue; } + /* */ $s = 128; continue; + /* if (_4 === (61)) { */ case 125: + /* */ if (((ctxt & 1) >>> 0) === 0) { $s = 130; continue; } + /* */ $s = 131; continue; + /* if (((ctxt & 1) >>> 0) === 0) { */ case 130: + $r = check[0].error(s$11, 110, "break not in for, switch, or select statement"); /* */ $s = 132; case 132: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 131: + $s = 129; continue; + /* } else if (_4 === (65)) { */ case 126: + /* */ if (((ctxt & 2) >>> 0) === 0) { $s = 133; continue; } + /* */ $s = 134; continue; + /* if (((ctxt & 2) >>> 0) === 0) { */ case 133: + $r = check[0].error(s$11, 111, "continue not in for statement"); /* */ $s = 135; case 135: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 134: + $s = 129; continue; + /* } else if (_4 === (69)) { */ case 127: + /* */ if (((ctxt & 4) >>> 0) === 0) { $s = 136; continue; } + /* */ $s = 137; continue; + /* if (((ctxt & 4) >>> 0) === 0) { */ case 136: + msg$1 = ""; + if (!((((ctxt & 8) >>> 0) === 0))) { + msg$1 = "cannot fallthrough final case in switch"; + } else if (!((((ctxt & 16) >>> 0) === 0))) { + msg$1 = "cannot fallthrough in type switch"; + } else { + msg$1 = "fallthrough statement out of place"; + } + $r = check[0].error(s$11, 112, msg$1); /* */ $s = 138; case 138: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 137: + $s = 129; continue; + /* } else { */ case 128: + $r = check[0].errorf(s$11, -1, "branch statement: %s", new sliceType$5([new token.Token(s$11.Tok)])); /* */ $s = 139; case 139: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 129: + case 124: + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$75, true)[1]) { */ case 14: + s$12 = _ref.$val; + $r = check[0].openScope(s$12, "block"); /* */ $s = 140; case 140: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(check[0], "closeScope"), []]); + $r = check[0].stmtList(inner, s$12.List); /* */ $s = 141; case 141: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$76, true)[1]) { */ case 15: + s$13 = _ref.$val; + $r = check[0].openScope(s$13, "if"); /* */ $s = 142; case 142: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(check[0], "closeScope"), []]); + $r = check[0].simpleStmt(s$13.Init); /* */ $s = 143; case 143: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x$3[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + $r = check[0].expr($ifaceNil, x$3[0], s$13.Cond); /* */ $s = 144; case 144: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (!(!((x$3[0].mode === 0)))) { _v = false; $s = 147; continue s; } + _r$11 = allBoolean(x$3[0].typ); /* */ $s = 148; case 148: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _v = !_r$11; case 147: + /* */ if (_v) { $s = 145; continue; } + /* */ $s = 146; continue; + /* if (_v) { */ case 145: + $r = check[0].error(s$13.Cond, 105, "non-boolean condition in if statement"); /* */ $s = 149; case 149: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 146: + $r = check[0].stmt(inner, s$13.Body); /* */ $s = 150; case 150: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _ref$2 = s$13.Else; + /* */ if (_ref$2 === $ifaceNil || $assertType(_ref$2, ptrType$64, true)[1]) { $s = 151; continue; } + /* */ if ($assertType(_ref$2, ptrType$76, true)[1] || $assertType(_ref$2, ptrType$75, true)[1]) { $s = 152; continue; } + /* */ $s = 153; continue; + /* if (_ref$2 === $ifaceNil || $assertType(_ref$2, ptrType$64, true)[1]) { */ case 151: + $s = 154; continue; + /* } else if ($assertType(_ref$2, ptrType$76, true)[1] || $assertType(_ref$2, ptrType$75, true)[1]) { */ case 152: + $r = check[0].stmt(inner, s$13.Else); /* */ $s = 155; case 155: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 154; continue; + /* } else { */ case 153: + $r = check[0].error(s$13.Else, -1, "invalid else branch in if statement"); /* */ $s = 156; case 156: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 154: + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$77, true)[1]) { */ case 16: + s$14 = _ref.$val; + inner = (inner | (1)) >>> 0; + $r = check[0].openScope(s$14, "switch"); /* */ $s = 157; case 157: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(check[0], "closeScope"), []]); + $r = check[0].simpleStmt(s$14.Init); /* */ $s = 158; case 158: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x$4[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + /* */ if (!($interfaceIsEqual(s$14.Tag, $ifaceNil))) { $s = 159; continue; } + /* */ $s = 160; continue; + /* if (!($interfaceIsEqual(s$14.Tag, $ifaceNil))) { */ case 159: + $r = check[0].expr($ifaceNil, x$4[0], s$14.Tag); /* */ $s = 162; case 162: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].assignment(x$4[0], $ifaceNil, "switch expression"); /* */ $s = 163; case 163: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (!(!((x$4[0].mode === 0)))) { _v$2 = false; $s = 167; continue s; } + _r$12 = Comparable(x$4[0].typ); /* */ $s = 168; case 168: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _v$2 = !_r$12; case 167: + if (!(_v$2)) { _v$1 = false; $s = 166; continue s; } + _r$13 = hasNil(x$4[0].typ); /* */ $s = 169; case 169: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _v$1 = !_r$13; case 166: + /* */ if (_v$1) { $s = 164; continue; } + /* */ $s = 165; continue; + /* if (_v$1) { */ case 164: + $r = check[0].errorf(x$4[0], 117, "cannot switch on %s (%s is not comparable)", new sliceType$5([x$4[0], x$4[0].typ])); /* */ $s = 170; case 170: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x$4[0].mode = 0; + /* } */ case 165: + $s = 161; continue; + /* } else { */ case 160: + x$4[0].mode = 4; + x$4[0].typ = (1 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 1]); + x$4[0].val = constant.MakeBool(true); + x$4[0].expr = new ast.Ident.ptr(s$14.Body.Lbrace, "true", ptrType$82.nil); + /* } */ case 161: + $r = check[0].multipleDefaults(s$14.Body.List); /* */ $s = 171; case 171: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + seen = new $global.Map(); + _ref$3 = s$14.Body.List; + _i$1 = 0; + /* while (true) { */ case 172: + /* if (!(_i$1 < _ref$3.$length)) { break; } */ if(!(_i$1 < _ref$3.$length)) { $s = 173; continue; } + i = _i$1; + c = ((_i$1 < 0 || _i$1 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$1]); + _tuple$1 = $assertType(c, ptrType$61, true); + clause = _tuple$1[0]; + /* */ if (clause === ptrType$61.nil) { $s = 174; continue; } + /* */ $s = 175; continue; + /* if (clause === ptrType$61.nil) { */ case 174: + $r = check[0].error(c, -1, "incorrect expression switch case"); /* */ $s = 176; case 176: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + /* continue; */ $s = 172; continue; + /* } */ case 175: + $r = check[0].caseValues(x$4[0], clause.List, seen); /* */ $s = 177; case 177: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].openScope(clause, "case"); /* */ $s = 178; case 178: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + inner$1 = inner; + if ((i + 1 >> 0) < s$14.Body.List.$length) { + inner$1 = (inner$1 | (4)) >>> 0; + } else { + inner$1 = (inner$1 | (8)) >>> 0; + } + $r = check[0].stmtList(inner$1, clause.Body); /* */ $s = 179; case 179: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + check[0].closeScope(); + _i$1++; + $s = 172; continue; + case 173: + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$78, true)[1]) { */ case 17: + s$15 = _ref.$val; + inner = (inner | (17)) >>> 0; + $r = check[0].openScope(s$15, "type switch"); /* */ $s = 180; case 180: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(check[0], "closeScope"), []]); + $r = check[0].simpleStmt(s$15.Init); /* */ $s = 181; case 181: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + lhs$1 = ptrType$31.nil; + rhs = $ifaceNil; + _ref$4 = s$15.Assign; + /* */ if ($assertType(_ref$4, ptrType$67, true)[1]) { $s = 182; continue; } + /* */ if ($assertType(_ref$4, ptrType$70, true)[1]) { $s = 183; continue; } + /* */ $s = 184; continue; + /* if ($assertType(_ref$4, ptrType$67, true)[1]) { */ case 182: + guard = _ref$4.$val; + rhs = guard.X; + $s = 185; continue; + /* } else if ($assertType(_ref$4, ptrType$70, true)[1]) { */ case 183: + guard$1 = _ref$4.$val; + /* */ if (!((guard$1.Lhs.$length === 1)) || !((guard$1.Tok === 47)) || !((guard$1.Rhs.$length === 1))) { $s = 186; continue; } + /* */ $s = 187; continue; + /* if (!((guard$1.Lhs.$length === 1)) || !((guard$1.Tok === 47)) || !((guard$1.Rhs.$length === 1))) { */ case 186: + $r = check[0].error(s$15, -1, "incorrect form of type switch guard"); /* */ $s = 188; case 188: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 189; case 189: return; + /* } */ case 187: + _tuple$2 = $assertType((x$18 = guard$1.Lhs, (0 >= x$18.$length ? ($throwRuntimeError("index out of range"), undefined) : x$18.$array[x$18.$offset + 0])), ptrType$31, true); + lhs$1 = _tuple$2[0]; + /* */ if (lhs$1 === ptrType$31.nil) { $s = 190; continue; } + /* */ $s = 191; continue; + /* if (lhs$1 === ptrType$31.nil) { */ case 190: + $r = check[0].error(s$15, -1, "incorrect form of type switch guard"); /* */ $s = 192; case 192: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 193; case 193: return; + /* } */ case 191: + /* */ if (lhs$1.Name === "_") { $s = 194; continue; } + /* */ $s = 195; continue; + /* if (lhs$1.Name === "_") { */ case 194: + $r = check[0].softErrorf(lhs$1, 19, "no new variable on left side of :=", sliceType$5.nil); /* */ $s = 197; case 197: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + lhs$1 = ptrType$31.nil; + $s = 196; continue; + /* } else { */ case 195: + $r = check[0].recordDef(lhs$1, $ifaceNil); /* */ $s = 198; case 198: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 196: + rhs = (x$19 = guard$1.Rhs, (0 >= x$19.$length ? ($throwRuntimeError("index out of range"), undefined) : x$19.$array[x$19.$offset + 0])); + $s = 185; continue; + /* } else { */ case 184: + guard$2 = _ref$4; + $r = check[0].error(s$15, -1, "incorrect form of type switch guard"); /* */ $s = 199; case 199: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 200; case 200: return; + /* } */ case 185: + _tuple$3 = $assertType(rhs, ptrType$83, true); + expr = _tuple$3[0]; + /* */ if (expr === ptrType$83.nil || !($interfaceIsEqual(expr.Type, $ifaceNil))) { $s = 201; continue; } + /* */ $s = 202; continue; + /* if (expr === ptrType$83.nil || !($interfaceIsEqual(expr.Type, $ifaceNil))) { */ case 201: + $r = check[0].error(s$15, -1, "incorrect form of type switch guard"); /* */ $s = 203; case 203: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 204; case 204: return; + /* } */ case 202: + x$5[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + $r = check[0].expr($ifaceNil, x$5[0], expr.X); /* */ $s = 205; case 205: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (x$5[0].mode === 0) { $s = 206; continue; } + /* */ $s = 207; continue; + /* if (x$5[0].mode === 0) { */ case 206: + $s = 208; case 208: return; + /* } */ case 207: + sx = ptrType$63.nil; + /* */ if (isTypeParam(x$5[0].typ)) { $s = 209; continue; } + /* */ $s = 210; continue; + /* if (isTypeParam(x$5[0].typ)) { */ case 209: + $r = check[0].errorf(x$5[0], 116, "cannot use type switch on type parameter value %s", new sliceType$5([x$5[0]])); /* */ $s = 212; case 212: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 211; continue; + /* } else { */ case 210: + _r$14 = under(x$5[0].typ); /* */ $s = 213; case 213: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _tuple$4 = $assertType(_r$14, ptrType$14, true); + ok = _tuple$4[1]; + /* */ if (ok) { $s = 214; continue; } + /* */ $s = 215; continue; + /* if (ok) { */ case 214: + sx = x$5[0]; + $s = 216; continue; + /* } else { */ case 215: + $r = check[0].errorf(x$5[0], 116, "%s is not an interface", new sliceType$5([x$5[0]])); /* */ $s = 217; case 217: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 216: + /* } */ case 211: + $r = check[0].multipleDefaults(s$15.Body.List); /* */ $s = 218; case 218: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + lhsVars = sliceType$9.nil; + seen$1 = new $global.Map(); + _ref$5 = s$15.Body.List; + _i$2 = 0; + /* while (true) { */ case 219: + /* if (!(_i$2 < _ref$5.$length)) { break; } */ if(!(_i$2 < _ref$5.$length)) { $s = 220; continue; } + s$20 = ((_i$2 < 0 || _i$2 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$2]); + _tuple$5 = $assertType(s$20, ptrType$61, true); + clause$1 = _tuple$5[0]; + /* */ if (clause$1 === ptrType$61.nil) { $s = 221; continue; } + /* */ $s = 222; continue; + /* if (clause$1 === ptrType$61.nil) { */ case 221: + $r = check[0].error(s$20, -1, "incorrect type switch case"); /* */ $s = 223; case 223: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$2++; + /* continue; */ $s = 219; continue; + /* } */ case 222: + _r$15 = check[0].caseTypes(sx, clause$1.List, seen$1); /* */ $s = 224; case 224: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + T = _r$15; + $r = check[0].openScope(clause$1, "case"); /* */ $s = 225; case 225: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!(lhs$1 === ptrType$31.nil)) { $s = 226; continue; } + /* */ $s = 227; continue; + /* if (!(lhs$1 === ptrType$31.nil)) { */ case 226: + if (!((clause$1.List.$length === 1)) || $interfaceIsEqual(T, $ifaceNil)) { + T = x$5[0].typ; + } + obj$1 = NewVar(lhs$1.Pos(), check[0].pkg, lhs$1.Name, T); + scopePos = clause$1.Pos() + 7 >> 0; + n = clause$1.List.$length; + /* */ if (n > 0) { $s = 228; continue; } + /* */ $s = 229; continue; + /* if (n > 0) { */ case 228: + _r$16 = (x$20 = clause$1.List, x$21 = n - 1 >> 0, ((x$21 < 0 || x$21 >= x$20.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$20.$array[x$20.$offset + x$21])).End(); /* */ $s = 230; case 230: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + scopePos = _r$16; + /* } */ case 229: + $r = check[0].declare(check[0].environment.scope, ptrType$31.nil, obj$1, scopePos); /* */ $s = 231; case 231: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].recordImplicit(clause$1, obj$1); /* */ $s = 232; case 232: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + lhsVars = $append(lhsVars, obj$1); + /* } */ case 227: + $r = check[0].stmtList(inner, clause$1.Body); /* */ $s = 233; case 233: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + check[0].closeScope(); + _i$2++; + $s = 219; continue; + case 220: + /* */ if (!(lhs$1 === ptrType$31.nil)) { $s = 234; continue; } + /* */ $s = 235; continue; + /* if (!(lhs$1 === ptrType$31.nil)) { */ case 234: + used = false; + _ref$6 = lhsVars; + _i$3 = 0; + while (true) { + if (!(_i$3 < _ref$6.$length)) { break; } + v = ((_i$3 < 0 || _i$3 >= _ref$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$6.$array[_ref$6.$offset + _i$3]); + if (v.used) { + used = true; + } + v.used = true; + _i$3++; + } + /* */ if (!used) { $s = 236; continue; } + /* */ $s = 237; continue; + /* if (!used) { */ case 236: + $r = check[0].softErrorf(lhs$1, 101, "%s declared and not used", new sliceType$5([new $String(lhs$1.Name)])); /* */ $s = 238; case 238: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 237: + /* } */ case 235: + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$79, true)[1]) { */ case 18: + s$16 = _ref.$val; + inner = (inner | (1)) >>> 0; + $r = check[0].multipleDefaults(s$16.Body.List); /* */ $s = 239; case 239: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _ref$7 = s$16.Body.List; + _i$4 = 0; + /* while (true) { */ case 240: + /* if (!(_i$4 < _ref$7.$length)) { break; } */ if(!(_i$4 < _ref$7.$length)) { $s = 241; continue; } + s$21 = ((_i$4 < 0 || _i$4 >= _ref$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$7.$array[_ref$7.$offset + _i$4]); + _tuple$6 = $assertType(s$21, ptrType$62, true); + clause$2 = _tuple$6[0]; + if (clause$2 === ptrType$62.nil) { + _i$4++; + /* continue; */ $s = 240; continue; + } + valid = false; + rhs$1 = $ifaceNil; + _ref$8 = clause$2.Comm; + if (_ref$8 === $ifaceNil || $assertType(_ref$8, ptrType$68, true)[1]) { + s$22 = _ref$8; + valid = true; + } else if ($assertType(_ref$8, ptrType$70, true)[1]) { + s$23 = _ref$8.$val; + if (s$23.Rhs.$length === 1) { + rhs$1 = (x$22 = s$23.Rhs, (0 >= x$22.$length ? ($throwRuntimeError("index out of range"), undefined) : x$22.$array[x$22.$offset + 0])); + } + } else if ($assertType(_ref$8, ptrType$67, true)[1]) { + s$24 = _ref$8.$val; + rhs$1 = s$24.X; + } + if (!($interfaceIsEqual(rhs$1, $ifaceNil))) { + _tuple$7 = $assertType(unparen(rhs$1), ptrType$21, true); + x$23 = _tuple$7[0]; + if (!(x$23 === ptrType$21.nil) && (x$23.Op === 36)) { + valid = true; + } + } + /* */ if (!valid) { $s = 242; continue; } + /* */ $s = 243; continue; + /* if (!valid) { */ case 242: + $r = check[0].error(clause$2.Comm, 118, "select case must be send or receive (possibly with assignment)"); /* */ $s = 244; case 244: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$4++; + /* continue; */ $s = 240; continue; + /* } */ case 243: + $r = check[0].openScope(s$21, "case"); /* */ $s = 245; case 245: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!($interfaceIsEqual(clause$2.Comm, $ifaceNil))) { $s = 246; continue; } + /* */ $s = 247; continue; + /* if (!($interfaceIsEqual(clause$2.Comm, $ifaceNil))) { */ case 246: + $r = check[0].stmt(inner, clause$2.Comm); /* */ $s = 248; case 248: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 247: + $r = check[0].stmtList(inner, clause$2.Body); /* */ $s = 249; case 249: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + check[0].closeScope(); + _i$4++; + $s = 240; continue; + case 241: + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$80, true)[1]) { */ case 19: + s$17 = _ref.$val; + inner = (inner | (3)) >>> 0; + $r = check[0].openScope(s$17, "for"); /* */ $s = 250; case 250: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(check[0], "closeScope"), []]); + $r = check[0].simpleStmt(s$17.Init); /* */ $s = 251; case 251: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!($interfaceIsEqual(s$17.Cond, $ifaceNil))) { $s = 252; continue; } + /* */ $s = 253; continue; + /* if (!($interfaceIsEqual(s$17.Cond, $ifaceNil))) { */ case 252: + x$6[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + $r = check[0].expr($ifaceNil, x$6[0], s$17.Cond); /* */ $s = 254; case 254: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (!(!((x$6[0].mode === 0)))) { _v$3 = false; $s = 257; continue s; } + _r$17 = allBoolean(x$6[0].typ); /* */ $s = 258; case 258: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + _v$3 = !_r$17; case 257: + /* */ if (_v$3) { $s = 255; continue; } + /* */ $s = 256; continue; + /* if (_v$3) { */ case 255: + $r = check[0].error(s$17.Cond, 105, "non-boolean condition in for statement"); /* */ $s = 259; case 259: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 256: + /* } */ case 253: + $r = check[0].simpleStmt(s$17.Post); /* */ $s = 260; case 260: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tuple$8 = $assertType(s$17.Post, ptrType$70, true); + s$25 = _tuple$8[0]; + /* */ if (!(s$25 === ptrType$70.nil) && (s$25.Tok === 47)) { $s = 261; continue; } + /* */ $s = 262; continue; + /* if (!(s$25 === ptrType$70.nil) && (s$25.Tok === 47)) { */ case 261: + $r = check[0].softErrorf(s$25, 106, "cannot declare in post statement", sliceType$5.nil); /* */ $s = 263; case 263: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$18 = check[0].use(s$25.Lhs); /* */ $s = 264; case 264: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + _r$18; + /* } */ case 262: + $r = check[0].stmt(inner, s$17.Body); /* */ $s = 265; case 265: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$81, true)[1]) { */ case 20: + s$18 = _ref.$val; + inner = (inner | (3)) >>> 0; + x$7[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + $r = check[0].expr($ifaceNil, x$7[0], s$18.X); /* */ $s = 266; case 266: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tmp$2 = $ifaceNil; + _tmp$3 = $ifaceNil; + key = _tmp$2; + val$1 = _tmp$3; + /* */ if (!((x$7[0].mode === 0))) { $s = 267; continue; } + /* */ $s = 268; continue; + /* if (!((x$7[0].mode === 0))) { */ case 267: + cause = ""; + _r$19 = coreType(x$7[0].typ); /* */ $s = 269; case 269: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + u$1 = _r$19; + _ref$9 = u$1; + /* */ if (_ref$9 === $ifaceNil) { $s = 270; continue; } + /* */ if ($assertType(_ref$9, ptrType$26, true)[1]) { $s = 271; continue; } + /* */ $s = 272; continue; + /* if (_ref$9 === $ifaceNil) { */ case 270: + t = _ref$9; + _r$20 = check[0].sprintf("%s has no core type", new sliceType$5([x$7[0].typ])); /* */ $s = 273; case 273: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + cause = _r$20; + $s = 272; continue; + /* } else if ($assertType(_ref$9, ptrType$26, true)[1]) { */ case 271: + t$1 = _ref$9.$val; + /* */ if (!($interfaceIsEqual(s$18.Value, $ifaceNil))) { $s = 274; continue; } + /* */ $s = 275; continue; + /* if (!($interfaceIsEqual(s$18.Value, $ifaceNil))) { */ case 274: + $r = check[0].softErrorf(s$18.Value, 108, "range over %s permits only one iteration variable", new sliceType$5([x$7[0]])); /* */ $s = 276; case 276: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 275: + if (t$1.dir === 1) { + cause = "receive from send-only channel"; + } + /* } */ case 272: + _r$21 = rangeKeyVal(u$1); /* */ $s = 277; case 277: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + _tuple$9 = _r$21; + key = _tuple$9[0]; + val$1 = _tuple$9[1]; + /* */ if ($interfaceIsEqual(key, $ifaceNil) || !(cause === "")) { $s = 278; continue; } + /* */ $s = 279; continue; + /* if ($interfaceIsEqual(key, $ifaceNil) || !(cause === "")) { */ case 278: + /* */ if (cause === "") { $s = 280; continue; } + /* */ $s = 281; continue; + /* if (cause === "") { */ case 280: + $r = check[0].softErrorf(x$7[0], 109, "cannot range over %s", new sliceType$5([x$7[0]])); /* */ $s = 283; case 283: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 282; continue; + /* } else { */ case 281: + $r = check[0].softErrorf(x$7[0], 109, "cannot range over %s (%s)", new sliceType$5([x$7[0], new $String(cause)])); /* */ $s = 284; case 284: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 282: + /* } */ case 279: + /* } */ case 268: + $r = check[0].openScope(s$18, "range"); /* */ $s = 285; case 285: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(check[0], "closeScope"), []]); + lhs$2 = $toNativeArray($kindInterface, [s$18.Key, s$18.Value]); + rhs$2 = $toNativeArray($kindInterface, [key, val$1]); + /* */ if (s$18.Tok === 47) { $s = 286; continue; } + /* */ $s = 287; continue; + /* if (s$18.Tok === 47) { */ case 286: + vars = sliceType$9.nil; + _ref$10 = lhs$2; + _i$5 = 0; + /* while (true) { */ case 289: + /* if (!(_i$5 < 2)) { break; } */ if(!(_i$5 < 2)) { $s = 290; continue; } + i$1 = _i$5; + lhs$3 = ((_i$5 < 0 || _i$5 >= _ref$10.length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$10[_i$5]); + if ($interfaceIsEqual(lhs$3, $ifaceNil)) { + _i$5++; + /* continue; */ $s = 289; continue; + } + obj$2 = ptrType$17.nil; + _tuple$10 = $assertType(lhs$3, ptrType$31, true); + ident$1 = _tuple$10[0]; + /* */ if (!(ident$1 === ptrType$31.nil)) { $s = 291; continue; } + /* */ $s = 292; continue; + /* if (!(ident$1 === ptrType$31.nil)) { */ case 291: + name = ident$1.Name; + obj$2 = NewVar(ident$1.Pos(), check[0].pkg, name, $ifaceNil); + $r = check[0].recordDef(ident$1, obj$2); /* */ $s = 294; case 294: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (!(name === "_")) { + vars = $append(vars, obj$2); + } + $s = 293; continue; + /* } else { */ case 292: + $r = check[0].errorf(lhs$3, -1, "cannot declare %s", new sliceType$5([lhs$3])); /* */ $s = 295; case 295: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$22 = lhs$3.Pos(); /* */ $s = 296; case 296: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + _r$23 = NewVar(_r$22, check[0].pkg, "_", $ifaceNil); /* */ $s = 297; case 297: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + obj$2 = _r$23; + /* } */ case 293: + typ$3 = ((i$1 < 0 || i$1 >= rhs$2.length) ? ($throwRuntimeError("index out of range"), undefined) : rhs$2[i$1]); + /* */ if (!($interfaceIsEqual(typ$3, $ifaceNil))) { $s = 298; continue; } + /* */ $s = 299; continue; + /* if (!($interfaceIsEqual(typ$3, $ifaceNil))) { */ case 298: + x$7[0].mode = 7; + x$7[0].expr = lhs$3; + x$7[0].typ = typ$3; + $r = check[0].initVar(obj$2, x$7[0], "range clause"); /* */ $s = 301; case 301: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 300; continue; + /* } else { */ case 299: + obj$2.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + obj$2.used = true; + /* } */ case 300: + _i$5++; + $s = 289; continue; + case 290: + /* */ if (vars.$length > 0) { $s = 302; continue; } + /* */ $s = 303; continue; + /* if (vars.$length > 0) { */ case 302: + scopePos$1 = s$18.Body.Pos(); + _ref$11 = vars; + _i$6 = 0; + /* while (true) { */ case 305: + /* if (!(_i$6 < _ref$11.$length)) { break; } */ if(!(_i$6 < _ref$11.$length)) { $s = 306; continue; } + obj$3 = ((_i$6 < 0 || _i$6 >= _ref$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$11.$array[_ref$11.$offset + _i$6]); + $r = check[0].declare(check[0].environment.scope, ptrType$31.nil, obj$3, scopePos$1); /* */ $s = 307; case 307: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$6++; + $s = 305; continue; + case 306: + $s = 304; continue; + /* } else { */ case 303: + _r$24 = inNode(s$18, s$18.TokPos); /* */ $s = 308; case 308: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + $r = check[0].error((x$24 = _r$24, new x$24.constructor.elem(x$24)), 19, "no new variables on left side of :="); /* */ $s = 309; case 309: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 304: + $s = 288; continue; + /* } else { */ case 287: + _ref$12 = lhs$2; + _i$7 = 0; + /* while (true) { */ case 310: + /* if (!(_i$7 < 2)) { break; } */ if(!(_i$7 < 2)) { $s = 311; continue; } + i$2 = _i$7; + lhs$4 = ((_i$7 < 0 || _i$7 >= _ref$12.length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$12[_i$7]); + if ($interfaceIsEqual(lhs$4, $ifaceNil)) { + _i$7++; + /* continue; */ $s = 310; continue; + } + typ$4 = ((i$2 < 0 || i$2 >= rhs$2.length) ? ($throwRuntimeError("index out of range"), undefined) : rhs$2[i$2]); + /* */ if (!($interfaceIsEqual(typ$4, $ifaceNil))) { $s = 312; continue; } + /* */ $s = 313; continue; + /* if (!($interfaceIsEqual(typ$4, $ifaceNil))) { */ case 312: + x$7[0].mode = 7; + x$7[0].expr = lhs$4; + x$7[0].typ = typ$4; + $r = check[0].assignVar(lhs$4, $ifaceNil, x$7[0]); /* */ $s = 314; case 314: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 313: + _i$7++; + $s = 310; continue; + case 311: + /* } */ case 288: + $r = check[0].stmt(inner, s$18.Body); /* */ $s = 315; case 315: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 22; continue; + /* } else { */ case 21: + s$19 = _ref; + $r = check[0].error(s$19, -1, "invalid statement"); /* */ $s = 316; case 316: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 22: + $s = -1; return; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: stmt, $c: true, $r, T, Y, _1, _2, _3, _4, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$10, _ref$11, _ref$12, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _ref$9, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, _tuple$10, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, _v$2, _v$3, alt, c, cause, ch, check, clause, clause$1, clause$2, code, ctxt, expr, guard, guard$1, guard$2, i, i$1, i$2, ident$1, inner, inner$1, key, kind, lhs, lhs$1, lhs$2, lhs$3, lhs$4, lhsVars, msg, msg$1, n, name, obj, obj$1, obj$2, obj$3, ok, op, op$1, res, rhs, rhs$1, rhs$2, s, s$1, s$10, s$11, s$12, s$13, s$14, s$15, s$16, s$17, s$18, s$19, s$2, s$20, s$21, s$22, s$23, s$24, s$25, s$3, s$4, s$5, s$6, s$7, s$8, s$9, scopePos, scopePos$1, seen, seen$1, sx, t, t$1, typ$3, typ$4, u, u$1, uch, used, v, val, val$1, valid, vars, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $deferred};return $f; } } + }; + rangeKeyVal = function rangeKeyVal$1(typ$3) { + var {_r, _r$1, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, key, typ$3, typ$4, typ$5, typ$6, typ$7, typ$8, val, $s, $r, $c} = $restore(this, {typ$3}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + key = $ifaceNil; + val = $ifaceNil; + _r = arrayPtrDeref(typ$3); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _ref = _r; + /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$30, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if ($assertType(_ref, ptrType$4, true)[1]) { */ case 2: + typ$4 = _ref.$val; + _r$1 = isString(typ$4); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (_r$1) { */ case 8: + _tmp = (2 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 2]); + _tmp$1 = universeRune; + key = _tmp; + val = _tmp$1; + $s = -1; return [key, val]; + /* } */ case 9: + $s = 7; continue; + /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 3: + typ$5 = _ref.$val; + _tmp$2 = (2 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 2]); + _tmp$3 = typ$5.elem; + key = _tmp$2; + val = _tmp$3; + $s = -1; return [key, val]; + /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 4: + typ$6 = _ref.$val; + _tmp$4 = (2 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 2]); + _tmp$5 = typ$6.elem; + key = _tmp$4; + val = _tmp$5; + $s = -1; return [key, val]; + /* } else if ($assertType(_ref, ptrType$30, true)[1]) { */ case 5: + typ$7 = _ref.$val; + _tmp$6 = typ$7.key; + _tmp$7 = typ$7.elem; + key = _tmp$6; + val = _tmp$7; + $s = -1; return [key, val]; + /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 6: + typ$8 = _ref.$val; + _tmp$8 = typ$8.elem; + _tmp$9 = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + key = _tmp$8; + val = _tmp$9; + $s = -1; return [key, val]; + /* } */ case 7: + $s = -1; return [key, val]; + /* */ } return; } var $f = {$blk: rangeKeyVal$1, $c: true, $r, _r, _r$1, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, key, typ$3, typ$4, typ$5, typ$6, typ$7, typ$8, val, $s};return $f; + }; + NewSlice = function NewSlice$1(elem) { + var elem; + return new Slice.ptr(elem); + }; + $pkg.NewSlice = NewSlice; + $ptrType(Slice).prototype.Elem = function Elem() { + var s; + s = this; + return s.elem; + }; + $ptrType(Slice).prototype.Underlying = function Underlying$4() { + var s; + s = this; + return s; + }; + $ptrType(Slice).prototype.String = function String$11() { + var {$24r, _r, s, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + _r = TypeString(s, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$11, $c: true, $r, $24r, _r, s, $s};return $f; + }; + $ptrType(StdSizes).prototype.Alignof = function Alignof(T) { + var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, T, _i, _r, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, a, a$1, f, max, result, s, t, t$1, t$2, t$3, t$4, x, $s, $deferred, $r, $c} = $restore(this, {T}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + result = [result]; + result[0] = new $Int64(0, 0); + s = this; + $deferred.push([(function(result) { return function StdSizes·Alignof·func1() { + var {$s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = assert((result[0].$high > 0 || (result[0].$high === 0 && result[0].$low >= 1))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: StdSizes·Alignof·func1, $c: true, $r, $s};return $f; + }; })(result), []]); + _r = under(T); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _ref = _r; + /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$12, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$27, true)[1] || $assertType(_ref, ptrType$14, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$15, true)[1] || $assertType(_ref, ptrType$13, true)[1]) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if ($assertType(_ref, ptrType$11, true)[1]) { */ case 2: + t = _ref.$val; + _r$1 = s.Alignof(t.elem); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + result[0] = _r$1; + $24r = result[0]; + $s = 9; case 9: return $24r; + /* } else if ($assertType(_ref, ptrType$12, true)[1]) { */ case 3: + t$1 = _ref.$val; + /* */ if ((t$1.fields.$length === 0) && _IsSyncAtomicAlign64(T)) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if ((t$1.fields.$length === 0) && _IsSyncAtomicAlign64(T)) { */ case 10: + result[0] = new $Int64(0, 8); + $24r$1 = result[0]; + $s = 12; case 12: return $24r$1; + /* } */ case 11: + max = new $Int64(0, 1); + _ref$1 = t$1.fields; + _i = 0; + /* while (true) { */ case 13: + /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 14; continue; } + f = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + _r$2 = s.Alignof(f.object.typ); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + a = _r$2; + if ((a.$high > max.$high || (a.$high === max.$high && a.$low > max.$low))) { + max = a; + } + _i++; + $s = 13; continue; + case 14: + result[0] = max; + $24r$2 = result[0]; + $s = 16; case 16: return $24r$2; + /* } else if ($assertType(_ref, ptrType$27, true)[1] || $assertType(_ref, ptrType$14, true)[1]) { */ case 4: + t$2 = _ref; + $r = assert(!isTypeParam(T)); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + result[0] = s.WordSize; + $24r$3 = result[0]; + $s = 18; case 18: return $24r$3; + /* } else if ($assertType(_ref, ptrType$4, true)[1]) { */ case 5: + t$3 = _ref.$val; + /* */ if (!(((t$3.Info() & 32) === 0))) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (!(((t$3.Info() & 32) === 0))) { */ case 19: + result[0] = s.WordSize; + $24r$4 = result[0]; + $s = 21; case 21: return $24r$4; + /* } */ case 20: + $s = 7; continue; + /* } else if ($assertType(_ref, ptrType$15, true)[1] || $assertType(_ref, ptrType$13, true)[1]) { */ case 6: + t$4 = _ref; + unreachable(); + /* } */ case 7: + _r$3 = s.Sizeof(T); /* */ $s = 22; case 22: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + a$1 = _r$3; + /* */ if ((a$1.$high < 0 || (a$1.$high === 0 && a$1.$low < 1))) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if ((a$1.$high < 0 || (a$1.$high === 0 && a$1.$low < 1))) { */ case 23: + result[0] = new $Int64(0, 1); + $24r$5 = result[0]; + $s = 25; case 25: return $24r$5; + /* } */ case 24: + _r$4 = isComplex(T); /* */ $s = 28; case 28: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (_r$4) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (_r$4) { */ case 26: + a$1 = $div64(a$1, (new $Int64(0, 2)), false); + /* } */ case 27: + /* */ if ((x = s.MaxAlign, (a$1.$high > x.$high || (a$1.$high === x.$high && a$1.$low > x.$low)))) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if ((x = s.MaxAlign, (a$1.$high > x.$high || (a$1.$high === x.$high && a$1.$low > x.$low)))) { */ case 29: + result[0] = s.MaxAlign; + $24r$6 = result[0]; + $s = 31; case 31: return $24r$6; + /* } */ case 30: + result[0] = a$1; + $24r$7 = result[0]; + $s = 32; case 32: return $24r$7; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return result[0]; } if($curGoroutine.asleep) { var $f = {$blk: Alignof, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, T, _i, _r, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, a, a$1, f, max, result, s, t, t$1, t$2, t$3, t$4, x, $s, $deferred};return $f; } } + }; + _IsSyncAtomicAlign64 = function _IsSyncAtomicAlign64$1(T) { + var T, _tuple, named, obj, ok; + _tuple = $assertType(T, ptrType$10, true); + named = _tuple[0]; + ok = _tuple[1]; + if (!ok) { + return false; + } + obj = named.Obj(); + return obj.object.Name() === "align64" && !(obj.object.Pkg() === ptrType$1.nil) && (obj.object.Pkg().Path() === "sync/atomic" || obj.object.Pkg().Path() === "runtime/internal/atomic"); + }; + $ptrType(StdSizes).prototype.Offsetsof = function Offsetsof(fields) { + var {_i, _r, _r$1, _r$2, _ref, a, d, f, fields, i, offs, offsets, s, x, $s, $r, $c} = $restore(this, {fields}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + offsets = $makeSlice(sliceType$18, fields.$length); + offs = new $Int64(0, 0); + _ref = fields; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if ((offs.$high < 0 || (offs.$high === 0 && offs.$low < 0))) { + ((i < 0 || i >= offsets.$length) ? ($throwRuntimeError("index out of range"), undefined) : offsets.$array[offsets.$offset + i] = new $Int64(-1, 4294967295)); + _i++; + /* continue; */ $s = 1; continue; + } + _r = s.Alignof(f.object.typ); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + a = _r; + _r$1 = align(offs, a); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + offs = _r$1; + ((i < 0 || i >= offsets.$length) ? ($throwRuntimeError("index out of range"), undefined) : offsets.$array[offsets.$offset + i] = offs); + _r$2 = s.Sizeof(f.object.typ); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + d = _r$2; + if ((d.$high > 0 || (d.$high === 0 && d.$low >= 0)) && (offs.$high > 0 || (offs.$high === 0 && offs.$low >= 0))) { + offs = (x = d, new $Int64(offs.$high + x.$high, offs.$low + x.$low)); + } else { + offs = new $Int64(-1, 4294967295); + } + _i++; + $s = 1; continue; + case 2: + $s = -1; return offsets; + /* */ } return; } var $f = {$blk: Offsetsof, $c: true, $r, _i, _r, _r$1, _r$2, _ref, a, d, f, fields, i, offs, offsets, s, x, $s};return $f; + }; + $ptrType(StdSizes).prototype.Sizeof = function Sizeof(T) { + var {T, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, a, ea, esize, k, n, n$1, n1, offs, offsets, s, s$1, size, t, t$1, t$2, t$3, t$4, t$5, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {T}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + _r = under(T); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _ref = _r; + /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$12, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$15, true)[1] || $assertType(_ref, ptrType$13, true)[1]) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if ($assertType(_ref, ptrType$4, true)[1]) { */ case 2: + t = _ref.$val; + $r = assert(isTyped(T)); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + k = t.kind; + if (((k >> 0)) < 17) { + s$1 = ((k < 0 || k >= basicSizes.length) ? ($throwRuntimeError("index out of range"), undefined) : basicSizes[k]); + if (s$1 > 0) { + $s = -1; return (new $Int64(0, s$1)); + } + } + if (k === 17) { + $s = -1; return $mul64(s.WordSize, new $Int64(0, 2)); + } + $s = 8; continue; + /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 3: + t$1 = _ref.$val; + n = t$1.len; + if ((n.$high < 0 || (n.$high === 0 && n.$low <= 0))) { + $s = -1; return new $Int64(0, 0); + } + _r$1 = s.Sizeof(t$1.elem); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + esize = _r$1; + if ((esize.$high < 0 || (esize.$high === 0 && esize.$low < 0))) { + $s = -1; return new $Int64(-1, 4294967295); + } + if ((esize.$high === 0 && esize.$low === 0)) { + $s = -1; return new $Int64(0, 0); + } + _r$2 = s.Alignof(t$1.elem); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + a = _r$2; + _r$3 = align(esize, a); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + ea = _r$3; + if ((ea.$high < 0 || (ea.$high === 0 && ea.$low < 0))) { + $s = -1; return new $Int64(-1, 4294967295); + } + n1 = new $Int64(n.$high - 0, n.$low - 1); + if ((n1.$high > 0 || (n1.$high === 0 && n1.$low > 0)) && (x = $div64(new $Int64(2147483647, 4294967295), n1, false), (ea.$high > x.$high || (ea.$high === x.$high && ea.$low > x.$low)))) { + $s = -1; return new $Int64(-1, 4294967295); + } + $s = -1; return (x$1 = $mul64(ea, n1), new $Int64(x$1.$high + esize.$high, x$1.$low + esize.$low)); + /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 4: + t$2 = _ref.$val; + $s = -1; return $mul64(s.WordSize, new $Int64(0, 3)); + /* } else if ($assertType(_ref, ptrType$12, true)[1]) { */ case 5: + t$3 = _ref.$val; + n$1 = t$3.NumFields(); + if (n$1 === 0) { + $s = -1; return new $Int64(0, 0); + } + _r$4 = s.Offsetsof(t$3.fields); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + offsets = _r$4; + offs = (x$2 = n$1 - 1 >> 0, ((x$2 < 0 || x$2 >= offsets.$length) ? ($throwRuntimeError("index out of range"), undefined) : offsets.$array[offsets.$offset + x$2])); + _r$5 = s.Sizeof((x$3 = t$3.fields, x$4 = n$1 - 1 >> 0, ((x$4 < 0 || x$4 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + x$4])).object.typ); /* */ $s = 14; case 14: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + size = _r$5; + if ((offs.$high < 0 || (offs.$high === 0 && offs.$low < 0)) || (size.$high < 0 || (size.$high === 0 && size.$low < 0))) { + $s = -1; return new $Int64(-1, 4294967295); + } + $s = -1; return new $Int64(offs.$high + size.$high, offs.$low + size.$low); + /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 6: + t$4 = _ref.$val; + $r = assert(!isTypeParam(T)); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return $mul64(s.WordSize, new $Int64(0, 2)); + /* } else if ($assertType(_ref, ptrType$15, true)[1] || $assertType(_ref, ptrType$13, true)[1]) { */ case 7: + t$5 = _ref; + unreachable(); + /* } */ case 8: + $s = -1; return s.WordSize; + /* */ } return; } var $f = {$blk: Sizeof, $c: true, $r, T, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, a, ea, esize, k, n, n$1, n1, offs, offsets, s, s$1, size, t, t$1, t$2, t$3, t$4, t$5, x, x$1, x$2, x$3, x$4, $s};return $f; + }; + SizesFor = function SizesFor$1(compiler, arch) { + var _1, _entry, _tuple, arch, compiler, m, ok, s; + m = false; + _1 = compiler; + if (_1 === ("gc")) { + m = gcArchSizes; + } else if (_1 === ("gccgo")) { + m = gccgoArchSizes; + } else { + return $ifaceNil; + } + _tuple = (_entry = $mapIndex(m,$String.keyFor(arch)), _entry !== undefined ? [_entry.v, true] : [ptrType$84.nil, false]); + s = _tuple[0]; + ok = _tuple[1]; + if (!ok) { + return $ifaceNil; + } + return s; + }; + $pkg.SizesFor = SizesFor; + $ptrType(Config).prototype.alignof = function alignof(T) { + var {T, _r, a, conf, f, $s, $r, $c} = $restore(this, {T}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + conf = this; + f = $methodVal(stdSizes, "Alignof"); + if (!($interfaceIsEqual(conf.Sizes, $ifaceNil))) { + f = $methodVal(conf.Sizes, "Alignof"); + } + _r = f(T); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + a = _r; + if ((a.$high > 0 || (a.$high === 0 && a.$low >= 1))) { + $s = -1; return a; + } + $panic(new $String("implementation of alignof returned an alignment < 1")); + $s = -1; return new $Int64(0, 0); + /* */ } return; } var $f = {$blk: alignof, $c: true, $r, T, _r, a, conf, f, $s};return $f; + }; + $ptrType(Config).prototype.offsetsof = function offsetsof(T) { + var {T, _r, conf, f, offsets, $s, $r, $c} = $restore(this, {T}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + conf = this; + offsets = sliceType$18.nil; + /* */ if (T.NumFields() > 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (T.NumFields() > 0) { */ case 1: + f = $methodVal(stdSizes, "Offsetsof"); + if (!($interfaceIsEqual(conf.Sizes, $ifaceNil))) { + f = $methodVal(conf.Sizes, "Offsetsof"); + } + _r = f(T.fields); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + offsets = _r; + if (!((offsets.$length === T.NumFields()))) { + $panic(new $String("implementation of offsetsof returned the wrong number of offsets")); + } + /* } */ case 2: + $s = -1; return offsets; + /* */ } return; } var $f = {$blk: offsetsof, $c: true, $r, T, _r, conf, f, offsets, $s};return $f; + }; + $ptrType(Config).prototype.offsetof = function offsetof(T, index) { + var {T, _i, _r, _r$1, _ref, conf, d, i, index, offs, s, x, x$1, x$2, $s, $r, $c} = $restore(this, {T, index}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + conf = this; + offs = new $Int64(0, 0); + _ref = index; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r = under(T); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + s = $assertType(_r, ptrType$12); + _r$1 = conf.offsetsof(s); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + d = (x = _r$1, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + if ((d.$high < 0 || (d.$high === 0 && d.$low < 0))) { + $s = -1; return new $Int64(-1, 4294967295); + } + offs = (x$1 = d, new $Int64(offs.$high + x$1.$high, offs.$low + x$1.$low)); + if ((offs.$high < 0 || (offs.$high === 0 && offs.$low < 0))) { + $s = -1; return new $Int64(-1, 4294967295); + } + T = (x$2 = s.fields, ((i < 0 || i >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i])).object.typ; + _i++; + $s = 1; continue; + case 2: + $s = -1; return offs; + /* */ } return; } var $f = {$blk: offsetof, $c: true, $r, T, _i, _r, _r$1, _ref, conf, d, i, index, offs, s, x, x$1, x$2, $s};return $f; + }; + $ptrType(Config).prototype.sizeof = function sizeof(T) { + var {$24r, T, _r, conf, f, $s, $r, $c} = $restore(this, {T}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + conf = this; + f = $methodVal(stdSizes, "Sizeof"); + if (!($interfaceIsEqual(conf.Sizes, $ifaceNil))) { + f = $methodVal(conf.Sizes, "Sizeof"); + } + _r = f(T); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: sizeof, $c: true, $r, $24r, T, _r, conf, f, $s};return $f; + }; + align = function align$1(x, a) { + var {a, x, x$1, x$2, x$3, x$4, x$5, $s, $r, $c} = $restore(this, {x, a}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = assert((x.$high > 0 || (x.$high === 0 && x.$low >= 0)) && (0 < a.$high || (0 === a.$high && 1 <= a.$low)) && (a.$high < 0 || (a.$high === 0 && a.$low <= 8)) && (x$1 = (x$2 = new $Int64(a.$high - 0, a.$low - 1), new $Int64(a.$high & x$2.$high, (a.$low & x$2.$low) >>> 0)), (x$1.$high === 0 && x$1.$low === 0))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return (x$3 = (x$4 = new $Int64(x.$high + a.$high, x.$low + a.$low), new $Int64(x$4.$high - 0, x$4.$low - 1)), x$5 = new $Int64(a.$high - 0, a.$low - 1), new $Int64(x$3.$high & ~x$5.$high, (x$3.$low & ~x$5.$low) >>> 0)); + /* */ } return; } var $f = {$blk: align$1, $c: true, $r, a, x, x$1, x$2, x$3, x$4, x$5, $s};return $f; + }; + NewSignatureType = function NewSignatureType$1(recv, recvTypeParams, typeParams, params, results, variadic) { + var {_arg, _r, _r$1, _r$2, _r$3, _tuple, _v, core, n, ok, params, recv, recvTypeParams, results, sig, typeParams, variadic, $s, $r, $c} = $restore(this, {recv, recvTypeParams, typeParams, params, results, variadic}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + /* */ if (variadic) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (variadic) { */ case 1: + n = params.Len(); + if (n === 0) { + $panic(new $String("variadic function must have at least one parameter")); + } + _r = coreString(params.At(n - 1 >> 0).object.typ); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + core = _r; + _tuple = $assertType(core, ptrType$27, true); + ok = _tuple[1]; + if (!(!ok)) { _v = false; $s = 6; continue s; } + _r$1 = isString(core); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = !_r$1; case 6: + /* */ if (_v) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_v) { */ case 4: + _r$2 = core.String(); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg = new $String(_r$2); + _r$3 = fmt.Sprintf("got %s, want variadic parameter with unnamed slice type or string as core type", new sliceType$5([_arg])); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $panic(new $String(_r$3)); + /* } */ case 5: + /* } */ case 2: + sig = new Signature.ptr(ptrType$49.nil, ptrType$49.nil, ptrType.nil, recv, params, results, variadic); + if (!((recvTypeParams.$length === 0))) { + if (recv === ptrType$17.nil) { + $panic(new $String("function with receiver type parameters must have a receiver")); + } + sig.rparams = bindTParams(recvTypeParams); + } + if (!((typeParams.$length === 0))) { + if (!(recv === ptrType$17.nil)) { + $panic(new $String("function with type parameters cannot have a receiver")); + } + sig.tparams = bindTParams(typeParams); + } + $s = -1; return sig; + /* */ } return; } var $f = {$blk: NewSignatureType$1, $c: true, $r, _arg, _r, _r$1, _r$2, _r$3, _tuple, _v, core, n, ok, params, recv, recvTypeParams, results, sig, typeParams, variadic, $s};return $f; + }; + $pkg.NewSignatureType = NewSignatureType; + $ptrType(Signature).prototype.Recv = function Recv() { + var s; + s = this; + return s.recv; + }; + $ptrType(Signature).prototype.TypeParams = function TypeParams() { + var s; + s = this; + return s.tparams; + }; + $ptrType(Signature).prototype.RecvTypeParams = function RecvTypeParams() { + var s; + s = this; + return s.rparams; + }; + $ptrType(Signature).prototype.Params = function Params() { + var s; + s = this; + return s.params; + }; + $ptrType(Signature).prototype.Results = function Results() { + var s; + s = this; + return s.results; + }; + $ptrType(Signature).prototype.Variadic = function Variadic() { + var s; + s = this; + return s.variadic; + }; + $ptrType(Signature).prototype.Underlying = function Underlying$5() { + var t; + t = this; + return t; + }; + $ptrType(Signature).prototype.String = function String$12() { + var {$24r, _r, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r = TypeString(t, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$12, $c: true, $r, $24r, _r, t, $s};return $f; + }; + $ptrType(Checker).prototype.funcType = function funcType(sig, recvPar, ftyp) { + var {_1, _i, _i$1, _key, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, check, ftyp, got, i, i$1, p, params, recv, recv$1, recvList, recvPar, recvTPar, recvTParams, results, rname, rparams, scope, sig, smap, tpar, tparams, variadic, x, x$1, $s, $deferred, $r, $c} = $restore(this, {sig, recvPar, ftyp}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + check = [check]; + recv = [recv]; + sig = [sig]; + check[0] = this; + $r = check[0].openScope(ftyp, "function"); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + check[0].environment.scope.isFunc = true; + $r = check[0].recordScope(ftyp, check[0].environment.scope); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + sig[0].scope = check[0].environment.scope; + $deferred.push([$methodVal(check[0], "closeScope"), []]); + /* */ if (!(recvPar === ptrType$50.nil) && recvPar.List.$length > 0) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!(recvPar === ptrType$50.nil) && recvPar.List.$length > 0) { */ case 3: + _r = check[0].unpackRecv((x = recvPar.List, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).Type, true); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + rname = _tuple[1]; + rparams = _tuple[2]; + /* */ if (rparams.$length > 0) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (rparams.$length > 0) { */ case 6: + _r$1 = check[0].declareTypeParams(sliceType$8.nil, rparams); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + tparams = _r$1; + sig[0].rparams = bindTParams(tparams); + _ref = rparams; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + p = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (p.Name === "_") { + if (check[0].recvTParamMap === false) { + check[0].recvTParamMap = new $global.Map(); + } + _key = p; (check[0].recvTParamMap || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$31.keyFor(_key), { k: _key, v: ((i < 0 || i >= tparams.$length) ? ($throwRuntimeError("index out of range"), undefined) : tparams.$array[tparams.$offset + i]) }); + } + _i++; + } + recvTParams = sliceType$8.nil; + /* */ if (!(rname === ptrType$31.nil)) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!(rname === ptrType$31.nil)) { */ case 9: + _r$2 = check[0].genericType(rname, ptrType$35.nil); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$1 = $assertType(_r$2, ptrType$10, true); + recv$1 = _tuple$1[0]; + /* */ if (!(recv$1 === ptrType$10.nil)) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (!(recv$1 === ptrType$10.nil)) { */ case 12: + _r$3 = recv$1.TypeParams(); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$4 = _r$3.list(); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + recvTParams = _r$4; + /* } */ case 13: + /* } */ case 10: + /* */ if (tparams.$length === recvTParams.$length) { $s = 16; continue; } + /* */ if (tparams.$length < recvTParams.$length) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (tparams.$length === recvTParams.$length) { */ case 16: + _r$5 = makeRenameMap(recvTParams, tparams); /* */ $s = 19; case 19: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + smap = _r$5; + _ref$1 = tparams; + _i$1 = 0; + /* while (true) { */ case 20: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 21; continue; } + i$1 = _i$1; + tpar = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + recvTPar = ((i$1 < 0 || i$1 >= recvTParams.$length) ? ($throwRuntimeError("index out of range"), undefined) : recvTParams.$array[recvTParams.$offset + i$1]); + check[0].mono.recordCanon(tpar, recvTPar); + _r$6 = check[0].subst(tpar.obj.object.pos, recvTPar.bound, smap, ptrType$10.nil, check[0].context()); /* */ $s = 22; case 22: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + tpar.bound = _r$6; + _i$1++; + $s = 20; continue; + case 21: + $s = 18; continue; + /* } else if (tparams.$length < recvTParams.$length) { */ case 17: + _r$7 = measure(tparams.$length, "type parameter"); /* */ $s = 23; case 23: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + got = _r$7; + $r = check[0].errorf(recvPar, 31, "got %s, but receiver base type declares %d", new sliceType$5([new $String(got), new $Int(recvTParams.$length)])); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 18: + /* } */ case 7: + /* } */ case 4: + /* */ if (!(ftyp.TypeParams === ptrType$50.nil)) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (!(ftyp.TypeParams === ptrType$50.nil)) { */ case 25: + $r = check[0].collectTypeParams((sig[0] === ptrType$29.nil && $throwNilPointerError(), (sig[0].$ptr_tparams || (sig[0].$ptr_tparams = new ptrType$85(function() { return this.$target.tparams; }, function($v) { this.$target.tparams = $v; }, sig[0])))), ftyp.TypeParams); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!(recvPar === ptrType$50.nil)) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (!(recvPar === ptrType$50.nil)) { */ case 28: + $r = check[0].error(ftyp.TypeParams, 143, "methods cannot have type parameters"); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 29: + /* } */ case 26: + scope = NewScope(check[0].environment.scope, nopos, nopos, "function body (temp. scope)"); + _r$8 = check[0].collectParams(scope, recvPar, false); /* */ $s = 31; case 31: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _tuple$2 = _r$8; + recvList = _tuple$2[0]; + _r$9 = check[0].collectParams(scope, ftyp.Params, true); /* */ $s = 32; case 32: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _tuple$3 = _r$9; + params = _tuple$3[0]; + variadic = _tuple$3[1]; + _r$10 = check[0].collectParams(scope, ftyp.Results, false); /* */ $s = 33; case 33: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _tuple$4 = _r$10; + results = _tuple$4[0]; + $r = scope.squash((function(check, recv, sig) { return function Checker·funcType·func1(obj, alt) { + var {_arg, _arg$1, _r$11, alt, obj, $s, $r, $c} = $restore(this, {obj, alt}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _arg = obj; + _r$11 = obj.Name(); /* */ $s = 1; case 1: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _arg$1 = new $String(_r$11); + $r = check[0].errorf(_arg, 10, "%s redeclared in this block", new sliceType$5([_arg$1])); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].reportAltDecl(alt); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·funcType·func1, $c: true, $r, _arg, _arg$1, _r$11, alt, obj, $s};return $f; + }; })(check, recv, sig)); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!(recvPar === ptrType$50.nil)) { $s = 35; continue; } + /* */ $s = 36; continue; + /* if (!(recvPar === ptrType$50.nil)) { */ case 35: + recv[0] = ptrType$17.nil; + _1 = recvList.$length; + /* */ if (_1 === (0)) { $s = 38; continue; } + /* */ if (_1 === (1)) { $s = 39; continue; } + /* */ $s = 40; continue; + /* if (_1 === (0)) { */ case 38: + recv[0] = NewParam(nopos, ptrType$1.nil, "", (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])); + $s = 41; continue; + /* } else if (_1 === (1)) { */ case 39: + recv[0] = (0 >= recvList.$length ? ($throwRuntimeError("index out of range"), undefined) : recvList.$array[recvList.$offset + 0]); + $s = 41; continue; + /* } else { */ case 40: + $r = check[0].error((x$1 = recvList.$length - 1 >> 0, ((x$1 < 0 || x$1 >= recvList.$length) ? ($throwRuntimeError("index out of range"), undefined) : recvList.$array[recvList.$offset + x$1])), 32, "method has multiple receivers"); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + recv[0] = (0 >= recvList.$length ? ($throwRuntimeError("index out of range"), undefined) : recvList.$array[recvList.$offset + 0]); + /* } */ case 41: + case 37: + sig[0].recv = recv[0]; + check[0].later((function(check, recv, sig) { return function Checker·funcType·func2() { + var {T, T$1, T$2, _r$11, _ref$2, _ref$3, _tuple$5, cause, rtyp, u, u$1, u$2, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _tuple$5 = deref(recv[0].object.typ); + rtyp = _tuple$5[0]; + if ($interfaceIsEqual(rtyp, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { + $s = -1; return; + } + _ref$2 = rtyp; + /* */ if ($assertType(_ref$2, ptrType$10, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref$2, ptrType$4, true)[1]) { $s = 2; continue; } + /* */ $s = 3; continue; + /* switch (0) { default: if ($assertType(_ref$2, ptrType$10, true)[1]) { */ case 1: + T = _ref$2.$val; + /* */ if (!(T.TypeArgs() === ptrType$57.nil) && sig[0].RecvTypeParams() === ptrType$49.nil) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!(T.TypeArgs() === ptrType$57.nil) && sig[0].RecvTypeParams() === ptrType$49.nil) { */ case 5: + $r = check[0].errorf(recv[0], 32, "cannot define new methods on instantiated type %s", new sliceType$5([rtyp])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* break; */ $s = 4; continue; + /* } */ case 6: + /* */ if (!(T.obj.object.pkg === check[0].pkg)) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!(T.obj.object.pkg === check[0].pkg)) { */ case 8: + $r = check[0].errorf(recv[0], 32, "cannot define new methods on non-local type %s", new sliceType$5([rtyp])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* break; */ $s = 4; continue; + /* } */ case 9: + cause = ""; + _r$11 = T.under(); /* */ $s = 11; case 11: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _ref$3 = _r$11; + /* */ if ($assertType(_ref$3, ptrType$4, true)[1]) { $s = 12; continue; } + /* */ if ($assertType(_ref$3, ptrType$28, true)[1] || $assertType(_ref$3, ptrType$14, true)[1]) { $s = 13; continue; } + /* */ if ($assertType(_ref$3, ptrType$15, true)[1]) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if ($assertType(_ref$3, ptrType$4, true)[1]) { */ case 12: + u = _ref$3.$val; + if (u.kind === 18) { + cause = "unsafe.Pointer"; + } + $s = 15; continue; + /* } else if ($assertType(_ref$3, ptrType$28, true)[1] || $assertType(_ref$3, ptrType$14, true)[1]) { */ case 13: + u$1 = _ref$3; + cause = "pointer or interface type"; + $s = 15; continue; + /* } else if ($assertType(_ref$3, ptrType$15, true)[1]) { */ case 14: + u$2 = _ref$3.$val; + unreachable(); + /* } */ case 15: + /* */ if (!(cause === "")) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (!(cause === "")) { */ case 16: + $r = check[0].errorf(recv[0], 32, "invalid receiver type %s (%s)", new sliceType$5([rtyp, new $String(cause)])); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 17: + $s = 4; continue; + /* } else if ($assertType(_ref$2, ptrType$4, true)[1]) { */ case 2: + T$1 = _ref$2.$val; + $r = check[0].errorf(recv[0], 32, "cannot define new methods on non-local type %s", new sliceType$5([rtyp])); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 4; continue; + /* } else { */ case 3: + T$2 = _ref$2; + $r = check[0].errorf(recv[0], 32, "invalid receiver type %s", new sliceType$5([recv[0].object.typ])); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } } */ case 4: + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·funcType·func2, $c: true, $r, T, T$1, T$2, _r$11, _ref$2, _ref$3, _tuple$5, cause, rtyp, u, u$1, u$2, $s};return $f; + }; })(check, recv, sig)).describef(recv[0], "validate receiver %s", new sliceType$5([recv[0]])); + /* } */ case 36: + sig[0].params = NewTuple(params); + sig[0].results = NewTuple(results); + sig[0].variadic = variadic; + $s = -1; return; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: funcType, $c: true, $r, _1, _i, _i$1, _key, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, check, ftyp, got, i, i$1, p, params, recv, recv$1, recvList, recvPar, recvTPar, recvTParams, results, rname, rparams, scope, sig, smap, tpar, tparams, variadic, x, x$1, $s, $deferred};return $f; } } + }; + $ptrType(Checker).prototype.collectParams = function collectParams(scope, list$2, variadicOk) { + var {_i, _i$1, _r, _r$1, _r$2, _ref, _ref$1, _tmp, _tmp$1, _tuple, anonymous, check, field, ftype, i, last, list$2, name, named, par, par$1, params, scope, t, typ$3, variadic, variadicOk, x, x$1, x$2, $s, $r, $c} = $restore(this, {scope, list$2, variadicOk}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + params = sliceType$9.nil; + variadic = false; + check = this; + if (list$2 === ptrType$50.nil) { + $s = -1; return [params, variadic]; + } + _tmp = false; + _tmp$1 = false; + named = _tmp; + anonymous = _tmp$1; + _ref = list$2.List; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + field = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + ftype = field.Type; + _tuple = $assertType(ftype, ptrType$42, true); + t = _tuple[0]; + /* */ if (!(t === ptrType$42.nil)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!(t === ptrType$42.nil)) { */ case 3: + ftype = t.Elt; + /* */ if (variadicOk && (i === (list$2.List.$length - 1 >> 0)) && field.Names.$length <= 1) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (variadicOk && (i === (list$2.List.$length - 1 >> 0)) && field.Names.$length <= 1) { */ case 5: + variadic = true; + $s = 7; continue; + /* } else { */ case 6: + $r = check.softErrorf(t, 79, "can only use ... with final parameter in list", sliceType$5.nil); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 7: + /* } */ case 4: + _r = check.varType(ftype); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + typ$3 = _r; + /* */ if (field.Names.$length > 0) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (field.Names.$length > 0) { */ case 10: + _ref$1 = field.Names; + _i$1 = 0; + /* while (true) { */ case 13: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 14; continue; } + name = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + /* */ if (name.Name === "") { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (name.Name === "") { */ case 15: + $r = check.error(name, -1, "anonymous parameter"); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 16: + par = NewParam(name.Pos(), check.pkg, name.Name, typ$3); + $r = check.declare(scope, name, par, scope.pos); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + params = $append(params, par); + _i$1++; + $s = 13; continue; + case 14: + named = true; + $s = 12; continue; + /* } else { */ case 11: + _r$1 = ftype.Pos(); /* */ $s = 19; case 19: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = NewParam(_r$1, check.pkg, "", typ$3); /* */ $s = 20; case 20: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + par$1 = _r$2; + $r = check.recordImplicit(field, par$1); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + params = $append(params, par$1); + anonymous = true; + /* } */ case 12: + _i++; + $s = 1; continue; + case 2: + /* */ if (named && anonymous) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (named && anonymous) { */ case 22: + $r = check.error(list$2, -1, "list contains both named and anonymous parameters"); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 23: + /* */ if (variadic) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (variadic) { */ case 25: + last = (x = params.$length - 1 >> 0, ((x < 0 || x >= params.$length) ? ($throwRuntimeError("index out of range"), undefined) : params.$array[params.$offset + x])); + last.object.typ = new Slice.ptr(last.object.typ); + $r = check.recordTypeAndValue((x$1 = list$2.List, x$2 = list$2.List.$length - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])).Type, 3, last.object.typ, $ifaceNil); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 26: + $s = -1; return [params, variadic]; + /* */ } return; } var $f = {$blk: collectParams, $c: true, $r, _i, _i$1, _r, _r$1, _r$2, _ref, _ref$1, _tmp, _tmp$1, _tuple, anonymous, check, field, ftype, i, last, list$2, name, named, par, par$1, params, scope, t, typ$3, variadic, variadicOk, x, x$1, x$2, $s};return $f; + }; + $ptrType(Selection).prototype.Kind = function Kind() { + var s; + s = this; + return s.kind; + }; + $ptrType(Selection).prototype.Recv = function Recv$1() { + var s; + s = this; + return s.recv; + }; + $ptrType(Selection).prototype.Obj = function Obj$1() { + var s; + s = this; + return s.obj; + }; + $ptrType(Selection).prototype.Type = function Type$2() { + var {$24r, _1, _r, arg0, params, recv, s, sig, sig$1, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + arg0 = [arg0]; + recv = [recv]; + sig = [sig]; + sig$1 = [sig$1]; + s = this; + _1 = s.kind; + if (_1 === (1)) { + sig[0] = $clone((x = $assertType($assertType(s.obj, ptrType$2).object.typ, ptrType$29), (x === ptrType$29.nil && $throwNilPointerError(), x)), Signature); + recv[0] = $clone((x$1 = sig[0].recv, (x$1 === ptrType$17.nil && $throwNilPointerError(), x$1)), Var); + recv[0].object.typ = s.recv; + sig[0].recv = recv[0]; + $s = -1; return sig[0]; + } else if (_1 === (2)) { + sig$1[0] = $clone((x$2 = $assertType($assertType(s.obj, ptrType$2).object.typ, ptrType$29), (x$2 === ptrType$29.nil && $throwNilPointerError(), x$2)), Signature); + arg0[0] = $clone((x$3 = sig$1[0].recv, (x$3 === ptrType$17.nil && $throwNilPointerError(), x$3)), Var); + sig$1[0].recv = ptrType$17.nil; + arg0[0].object.typ = s.recv; + params = sliceType$9.nil; + if (!(sig$1[0].params === ptrType$16.nil)) { + params = sig$1[0].params.vars; + } + sig$1[0].params = NewTuple($appendSlice(new sliceType$9([arg0[0]]), params)); + $s = -1; return sig$1[0]; + } + _r = s.obj.Type(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Type$2, $c: true, $r, $24r, _1, _r, arg0, params, recv, s, sig, sig$1, x, x$1, x$2, x$3, $s};return $f; + }; + $ptrType(Selection).prototype.Index = function Index$1() { + var s; + s = this; + return s.index; + }; + $ptrType(Selection).prototype.Indirect = function Indirect() { + var s; + s = this; + return s.indirect; + }; + $ptrType(Selection).prototype.String = function String$13() { + var {$24r, _r, s, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + _r = SelectionString(s, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$13, $c: true, $r, $24r, _r, s, $s};return $f; + }; + SelectionString = function SelectionString$1(s, qf) { + var {T, _1, _arg, _arg$1, _r, _r$1, _r$2, buf, k, qf, s, $s, $r, $c} = $restore(this, {s, qf}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + buf = [buf]; + k = ""; + _1 = s.kind; + if (_1 === (0)) { + k = "field "; + } else if (_1 === (1)) { + k = "method "; + } else if (_1 === (2)) { + k = "method expr "; + } else { + unreachable(); + } + buf[0] = new bytes.Buffer.ptr(sliceType$12.nil, 0, 0); + buf[0].WriteString(k); + buf[0].WriteByte(40); + $r = WriteType(buf[0], s.Recv(), qf); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _arg = buf[0]; + _r = s.obj.Name(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = new $String(_r); + _r$1 = fmt.Fprintf(_arg, ") %s", new sliceType$5([_arg$1])); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + _r$2 = s.Type(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + T = _r$2; + /* */ if (s.kind === 0) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (s.kind === 0) { */ case 5: + buf[0].WriteByte(32); + $r = WriteType(buf[0], T, qf); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 7; continue; + /* } else { */ case 6: + $r = WriteSignature(buf[0], $assertType(T, ptrType$29), qf); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 7: + $s = -1; return buf[0].String(); + /* */ } return; } var $f = {$blk: SelectionString$1, $c: true, $r, T, _1, _arg, _arg$1, _r, _r$1, _r$2, buf, k, qf, s, $s};return $f; + }; + $pkg.SelectionString = SelectionString; + NewScope = function NewScope$1(parent, pos, end, comment) { + var comment, end, parent, pos, s; + s = new Scope.ptr(parent, sliceType$19.nil, 0, false, pos, end, comment, false); + if (!(parent === ptrType.nil) && !(parent === $pkg.Universe)) { + parent.children = $append(parent.children, s); + s.number = parent.children.$length; + } + return s; + }; + $pkg.NewScope = NewScope; + $ptrType(Scope).prototype.Parent = function Parent() { + var s; + s = this; + return s.parent; + }; + $ptrType(Scope).prototype.Len = function Len$6() { + var s; + s = this; + return (s.elems ? s.elems.size : 0); + }; + $ptrType(Scope).prototype.Names = function Names() { + var {_entry, _i, _key, _keys, _ref, _size, i, name, names, s, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + names = $makeSlice(sliceType$13, (s.elems ? s.elems.size : 0)); + i = 0; + _ref = s.elems; + _i = 0; + _keys = _ref ? _ref.keys() : undefined; + _size = _ref ? _ref.size : 0; + while (true) { + if (!(_i < _size)) { break; } + _key = _keys.next().value; + _entry = _ref.get(_key); + if (_entry === undefined) { + _i++; + continue; + } + name = _entry.k; + ((i < 0 || i >= names.$length) ? ($throwRuntimeError("index out of range"), undefined) : names.$array[names.$offset + i] = name); + i = i + (1) >> 0; + _i++; + } + $r = sort.Strings(names); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return names; + /* */ } return; } var $f = {$blk: Names, $c: true, $r, _entry, _i, _key, _keys, _ref, _size, i, name, names, s, $s};return $f; + }; + $ptrType(Scope).prototype.NumChildren = function NumChildren() { + var s; + s = this; + return s.children.$length; + }; + $ptrType(Scope).prototype.Child = function Child(i) { + var i, s, x; + s = this; + return (x = s.children, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + }; + $ptrType(Scope).prototype.Lookup = function Lookup(name) { + var {$24r, _entry, _r, name, s, $s, $r, $c} = $restore(this, {name}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + _r = resolve(name, (_entry = $mapIndex(s.elems,$String.keyFor(name)), _entry !== undefined ? _entry.v : $ifaceNil)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Lookup, $c: true, $r, $24r, _entry, _r, name, s, $s};return $f; + }; + $ptrType(Scope).prototype.LookupParent = function LookupParent(name, pos) { + var {_r, _r$1, _r$2, _v, _v$1, name, obj, pos, s, $s, $r, $c} = $restore(this, {name, pos}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + /* while (true) { */ case 1: + /* if (!(!(s === ptrType.nil))) { break; } */ if(!(!(s === ptrType.nil))) { $s = 2; continue; } + _r = s.Lookup(name); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + obj = _r; + if (!(!($interfaceIsEqual(obj, $ifaceNil)))) { _v = false; $s = 6; continue s; } + if (!new token.Pos(pos).IsValid()) { _v$1 = true; $s = 7; continue s; } + _r$1 = obj.scopePos(); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = cmpPos(_r$1, pos); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v$1 = _r$2 <= 0; case 7: + _v = _v$1; case 6: + /* */ if (_v) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_v) { */ case 4: + $s = -1; return [s, obj]; + /* } */ case 5: + s = s.parent; + $s = 1; continue; + case 2: + $s = -1; return [ptrType.nil, $ifaceNil]; + /* */ } return; } var $f = {$blk: LookupParent, $c: true, $r, _r, _r$1, _r$2, _v, _v$1, name, obj, pos, s, $s};return $f; + }; + $ptrType(Scope).prototype.Insert = function Insert(obj) { + var {_r, _r$1, _r$2, alt, name, obj, s, $s, $r, $c} = $restore(this, {obj}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + _r = obj.Name(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + name = _r; + _r$1 = s.Lookup(name); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + alt = _r$1; + if (!($interfaceIsEqual(alt, $ifaceNil))) { + $s = -1; return alt; + } + s.insert(name, obj); + _r$2 = obj.Parent(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (_r$2 === ptrType.nil) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_r$2 === ptrType.nil) { */ case 3: + $r = obj.setParent(s); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 4: + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: Insert, $c: true, $r, _r, _r$1, _r$2, alt, name, obj, s, $s};return $f; + }; + $ptrType(Scope).prototype.insert = function insert(name, obj) { + var _key, name, obj, s; + s = this; + if (s.elems === false) { + s.elems = new $global.Map(); + } + _key = name; (s.elems || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: obj }); + }; + $ptrType(Scope).prototype.squash = function squash(err) { + var {_entry, _i, _i$1, _key, _keys, _r, _r$1, _ref, _ref$1, _size, alt, ch, err, i, j, k, name, obj, p, s, x, x$1, $s, $r, $c} = $restore(this, {err}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + p = s.parent; + $r = assert(!(p === ptrType.nil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _ref = s.elems; + _i = 0; + _keys = _ref ? _ref.keys() : undefined; + _size = _ref ? _ref.size : 0; + /* while (true) { */ case 2: + /* if (!(_i < _size)) { break; } */ if(!(_i < _size)) { $s = 3; continue; } + _key = _keys.next().value; + _entry = _ref.get(_key); + if (_entry === undefined) { + _i++; + /* continue; */ $s = 2; continue; + } + name = _entry.k; + obj = _entry.v; + _r = resolve(name, obj); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + obj = _r; + $r = obj.setParent(ptrType.nil); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = p.Insert(obj); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + alt = _r$1; + /* */ if (!($interfaceIsEqual(alt, $ifaceNil))) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!($interfaceIsEqual(alt, $ifaceNil))) { */ case 7: + $r = err(obj, alt); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 8: + _i++; + $s = 2; continue; + case 3: + j = -1; + _ref$1 = p.children; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i = _i$1; + ch = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + if (ch === s) { + j = i; + break; + } + _i$1++; + } + $r = assert(j >= 0); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + k = p.children.$length - 1 >> 0; + (x$1 = p.children, ((j < 0 || j >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + j] = (x = p.children, ((k < 0 || k >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + k])))); + p.children = $subslice(p.children, 0, k); + p.children = $appendSlice(p.children, s.children); + s.children = sliceType$19.nil; + s.elems = false; + $s = -1; return; + /* */ } return; } var $f = {$blk: squash, $c: true, $r, _entry, _i, _i$1, _key, _keys, _r, _r$1, _ref, _ref$1, _size, alt, ch, err, i, j, k, name, obj, p, s, x, x$1, $s};return $f; + }; + $ptrType(Scope).prototype.Pos = function Pos() { + var s; + s = this; + return s.pos; + }; + $ptrType(Scope).prototype.End = function End() { + var s; + s = this; + return s.end; + }; + $ptrType(Scope).prototype.Contains = function Contains(pos) { + var pos, s; + s = this; + return cmpPos(s.pos, pos) <= 0 && cmpPos(pos, s.end) < 0; + }; + $ptrType(Scope).prototype.Innermost = function Innermost(pos) { + var _i, _i$1, _ref, _ref$1, inner, pos, s, s$1, s$2; + s = this; + if (s.parent === $pkg.Universe) { + _ref = s.children; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + s$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + inner = s$1.Innermost(pos); + if (!(inner === ptrType.nil)) { + return inner; + } + _i++; + } + } + if (s.Contains(pos)) { + _ref$1 = s.children; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + s$2 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + if (s$2.Contains(pos)) { + return s$2.Innermost(pos); + } + _i$1++; + } + return s; + } + return ptrType.nil; + }; + $ptrType(Scope).prototype.WriteTo = function WriteTo(w, n, recurse) { + var {_arg, _arg$1, _arg$2, _i, _i$1, _r, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, indn, indn1, n, name, recurse, s, s$1, w, $s, $r, $c} = $restore(this, {w, n, recurse}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + indn = strings.Repeat(". ", n); + _r = fmt.Fprintf(w, "%s%s scope %p {\n", new sliceType$5([new $String(indn), new $String(s.comment), s])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + indn1 = indn + ". "; + _r$1 = s.Names(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _ref = _r$1; + _i = 0; + /* while (true) { */ case 3: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } + name = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _arg = w; + _arg$1 = new $String(indn1); + _r$2 = s.Lookup(name); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg$2 = _r$2; + _r$3 = fmt.Fprintf(_arg, "%s%s\n", new sliceType$5([_arg$1, _arg$2])); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + _i++; + $s = 3; continue; + case 4: + /* */ if (recurse) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (recurse) { */ case 7: + _ref$1 = s.children; + _i$1 = 0; + /* while (true) { */ case 9: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 10; continue; } + s$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + $r = s$1.WriteTo(w, n + 1 >> 0, recurse); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + $s = 9; continue; + case 10: + /* } */ case 8: + _r$4 = fmt.Fprintf(w, "%s}\n", new sliceType$5([new $String(indn)])); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4; + $s = -1; return; + /* */ } return; } var $f = {$blk: WriteTo, $c: true, $r, _arg, _arg$1, _arg$2, _i, _i$1, _r, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, indn, indn1, n, name, recurse, s, s$1, w, $s};return $f; + }; + $ptrType(Scope).prototype.String = function String$14() { + var {buf, s, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + buf = [buf]; + s = this; + buf[0] = new strings.Builder.ptr(ptrType$54.nil, sliceType$12.nil); + $r = s.WriteTo(buf[0], 0, false); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return buf[0].String(); + /* */ } return; } var $f = {$blk: String$14, $c: true, $r, buf, s, $s};return $f; + }; + resolve = function resolve$1(name, obj) { + var {_tuple, lazy, name, obj, ok, $s, $r, $c} = $restore(this, {name, obj}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + lazy = [lazy]; + name = [name]; + _tuple = $assertType(obj, ptrType$86, true); + lazy[0] = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (ok) { */ case 1: + $r = lazy[0].once.Do((function(lazy, name) { return function resolve·func1() { + var {_r, _r$1, _r$2, _tuple$1, obj$1, ok$1, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = lazy[0].resolve(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + obj$1 = _r; + _tuple$1 = $assertType(obj$1, ptrType$86, true); + ok$1 = _tuple$1[1]; + if (ok$1) { + $panic(new $String("recursive lazy object")); + } + _r$1 = obj$1.Name(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!(_r$1 === name[0])) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!(_r$1 === name[0])) { */ case 2: + $panic(new $String("lazy object has unexpected name")); + /* } */ case 3: + _r$2 = obj$1.Parent(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (_r$2 === ptrType.nil) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_r$2 === ptrType.nil) { */ case 5: + $r = obj$1.setParent(lazy[0].parent); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + lazy[0].obj = obj$1; + $s = -1; return; + /* */ } return; } var $f = {$blk: resolve·func1, $c: true, $r, _r, _r$1, _r$2, _tuple$1, obj$1, ok$1, $s};return $f; + }; })(lazy, name)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + obj = lazy[0].obj; + /* } */ case 2: + $s = -1; return obj; + /* */ } return; } var $f = {$blk: resolve$1, $c: true, $r, _tuple, lazy, name, obj, ok, $s};return $f; + }; + $ptrType(lazyObject).prototype.Parent = function Parent$1() { + $panic(new $String("unreachable")); + }; + $ptrType(lazyObject).prototype.Pos = function Pos$1() { + $panic(new $String("unreachable")); + }; + $ptrType(lazyObject).prototype.Pkg = function Pkg() { + $panic(new $String("unreachable")); + }; + $ptrType(lazyObject).prototype.Name = function Name() { + $panic(new $String("unreachable")); + }; + $ptrType(lazyObject).prototype.Type = function Type$3() { + $panic(new $String("unreachable")); + }; + $ptrType(lazyObject).prototype.Exported = function Exported() { + $panic(new $String("unreachable")); + }; + $ptrType(lazyObject).prototype.Id = function Id$1() { + $panic(new $String("unreachable")); + }; + $ptrType(lazyObject).prototype.String = function String$15() { + $panic(new $String("unreachable")); + }; + $ptrType(lazyObject).prototype.order = function order() { + $panic(new $String("unreachable")); + }; + $ptrType(lazyObject).prototype.color = function color$1() { + $panic(new $String("unreachable")); + }; + $ptrType(lazyObject).prototype.setOrder = function setOrder(param) { + var param; + $panic(new $String("unreachable")); + }; + $ptrType(lazyObject).prototype.setColor = function setColor(color$2) { + var color$2; + $panic(new $String("unreachable")); + }; + $ptrType(lazyObject).prototype.setParent = function setParent(param) { + var param; + $panic(new $String("unreachable")); + }; + $ptrType(lazyObject).prototype.sameId = function sameId(pkg, name) { + var name, pkg; + $panic(new $String("unreachable")); + }; + $ptrType(lazyObject).prototype.scopePos = function scopePos() { + $panic(new $String("unreachable")); + }; + $ptrType(lazyObject).prototype.setScopePos = function setScopePos(pos) { + var pos; + $panic(new $String("unreachable")); + }; + $ptrType(Checker).prototype.isTerminating = function isTerminating(s, label) { + var _entry, _i, _ref, _ref$1, _tuple, call, cc, check, label, ok, s, s$1, s$10, s$11, s$12, s$13, s$2, s$3, s$4, s$5, s$6, s$7, s$8, s$9; + check = this; + _ref = s; + if ($assertType(_ref, ptrType$64, true)[1] || $assertType(_ref, ptrType$65, true)[1] || $assertType(_ref, ptrType$60, true)[1] || $assertType(_ref, ptrType$68, true)[1] || $assertType(_ref, ptrType$69, true)[1] || $assertType(_ref, ptrType$70, true)[1] || $assertType(_ref, ptrType$71, true)[1] || $assertType(_ref, ptrType$72, true)[1] || $assertType(_ref, ptrType$81, true)[1]) { + s$2 = _ref; + } else if ($assertType(_ref, ptrType$66, true)[1]) { + s$3 = _ref.$val; + return check.isTerminating(s$3.Stmt, s$3.Label.Name); + } else if ($assertType(_ref, ptrType$67, true)[1]) { + s$4 = _ref.$val; + _tuple = $assertType(unparen(s$4.X), ptrType$87, true); + call = _tuple[0]; + ok = _tuple[1]; + if (ok && (_entry = $mapIndex(check.environment.isPanic,ptrType$87.keyFor(call)), _entry !== undefined ? _entry.v : false)) { + return true; + } + } else if ($assertType(_ref, ptrType$73, true)[1]) { + s$5 = _ref.$val; + return true; + } else if ($assertType(_ref, ptrType$74, true)[1]) { + s$6 = _ref.$val; + if ((s$6.Tok === 73) || (s$6.Tok === 69)) { + return true; + } + } else if ($assertType(_ref, ptrType$75, true)[1]) { + s$7 = _ref.$val; + return check.isTerminatingList(s$7.List, ""); + } else if ($assertType(_ref, ptrType$76, true)[1]) { + s$8 = _ref.$val; + if (!($interfaceIsEqual(s$8.Else, $ifaceNil)) && check.isTerminating(s$8.Body, "") && check.isTerminating(s$8.Else, "")) { + return true; + } + } else if ($assertType(_ref, ptrType$77, true)[1]) { + s$9 = _ref.$val; + return check.isTerminatingSwitch(s$9.Body, label); + } else if ($assertType(_ref, ptrType$78, true)[1]) { + s$10 = _ref.$val; + return check.isTerminatingSwitch(s$10.Body, label); + } else if ($assertType(_ref, ptrType$79, true)[1]) { + s$11 = _ref.$val; + _ref$1 = s$11.Body.List; + _i = 0; + while (true) { + if (!(_i < _ref$1.$length)) { break; } + s$13 = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + cc = $assertType(s$13, ptrType$62); + if (!check.isTerminatingList(cc.Body, "") || hasBreakList(cc.Body, label, true)) { + return false; + } + _i++; + } + return true; + } else if ($assertType(_ref, ptrType$80, true)[1]) { + s$12 = _ref.$val; + if ($interfaceIsEqual(s$12.Cond, $ifaceNil) && !hasBreak(s$12.Body, label, true)) { + return true; + } + } else { + s$1 = _ref; + unreachable(); + } + return false; + }; + $ptrType(Checker).prototype.isTerminatingList = function isTerminatingList(list$2, label) { + var _tuple, check, i, label, list$2, ok; + check = this; + i = list$2.$length - 1 >> 0; + while (true) { + if (!(i >= 0)) { break; } + _tuple = $assertType(((i < 0 || i >= list$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : list$2.$array[list$2.$offset + i]), ptrType$60, true); + ok = _tuple[1]; + if (!ok) { + return check.isTerminating(((i < 0 || i >= list$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : list$2.$array[list$2.$offset + i]), label); + } + i = i - (1) >> 0; + } + return false; + }; + $ptrType(Checker).prototype.isTerminatingSwitch = function isTerminatingSwitch(body, label) { + var _i, _ref, body, cc, check, hasDefault, label, s; + check = this; + hasDefault = false; + _ref = body.List; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + cc = $assertType(s, ptrType$61); + if (cc.List === sliceType$10.nil) { + hasDefault = true; + } + if (!check.isTerminatingList(cc.Body, "") || hasBreakList(cc.Body, label, true)) { + return false; + } + _i++; + } + return hasDefault; + }; + hasBreak = function hasBreak$1(s, label, implicit) { + var _ref, implicit, label, s, s$1, s$10, s$11, s$12, s$13, s$2, s$3, s$4, s$5, s$6, s$7, s$8, s$9; + _ref = s; + if ($assertType(_ref, ptrType$64, true)[1] || $assertType(_ref, ptrType$65, true)[1] || $assertType(_ref, ptrType$60, true)[1] || $assertType(_ref, ptrType$67, true)[1] || $assertType(_ref, ptrType$68, true)[1] || $assertType(_ref, ptrType$69, true)[1] || $assertType(_ref, ptrType$70, true)[1] || $assertType(_ref, ptrType$71, true)[1] || $assertType(_ref, ptrType$72, true)[1] || $assertType(_ref, ptrType$73, true)[1]) { + s$2 = _ref; + } else if ($assertType(_ref, ptrType$66, true)[1]) { + s$3 = _ref.$val; + return hasBreak(s$3.Stmt, label, implicit); + } else if ($assertType(_ref, ptrType$74, true)[1]) { + s$4 = _ref.$val; + if (s$4.Tok === 61) { + if (s$4.Label === ptrType$31.nil) { + return implicit; + } + if (s$4.Label.Name === label) { + return true; + } + } + } else if ($assertType(_ref, ptrType$75, true)[1]) { + s$5 = _ref.$val; + return hasBreakList(s$5.List, label, implicit); + } else if ($assertType(_ref, ptrType$76, true)[1]) { + s$6 = _ref.$val; + if (hasBreak(s$6.Body, label, implicit) || !($interfaceIsEqual(s$6.Else, $ifaceNil)) && hasBreak(s$6.Else, label, implicit)) { + return true; + } + } else if ($assertType(_ref, ptrType$61, true)[1]) { + s$7 = _ref.$val; + return hasBreakList(s$7.Body, label, implicit); + } else if ($assertType(_ref, ptrType$77, true)[1]) { + s$8 = _ref.$val; + if (!(label === "") && hasBreak(s$8.Body, label, false)) { + return true; + } + } else if ($assertType(_ref, ptrType$78, true)[1]) { + s$9 = _ref.$val; + if (!(label === "") && hasBreak(s$9.Body, label, false)) { + return true; + } + } else if ($assertType(_ref, ptrType$62, true)[1]) { + s$10 = _ref.$val; + return hasBreakList(s$10.Body, label, implicit); + } else if ($assertType(_ref, ptrType$79, true)[1]) { + s$11 = _ref.$val; + if (!(label === "") && hasBreak(s$11.Body, label, false)) { + return true; + } + } else if ($assertType(_ref, ptrType$80, true)[1]) { + s$12 = _ref.$val; + if (!(label === "") && hasBreak(s$12.Body, label, false)) { + return true; + } + } else if ($assertType(_ref, ptrType$81, true)[1]) { + s$13 = _ref.$val; + if (!(label === "") && hasBreak(s$13.Body, label, false)) { + return true; + } + } else { + s$1 = _ref; + unreachable(); + } + return false; + }; + hasBreakList = function hasBreakList$1(list$2, label, implicit) { + var _i, _ref, implicit, label, list$2, s; + _ref = list$2; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (hasBreak(s, label, implicit)) { + return true; + } + _i++; + } + return false; + }; + $ptrType(declInfo).prototype.hasInitializer = function hasInitializer() { + var d; + d = this; + return !($interfaceIsEqual(d.init, $ifaceNil)) || !(d.fdecl === ptrType$88.nil) && !(d.fdecl.Body === ptrType$75.nil); + }; + $ptrType(declInfo).prototype.addDep = function addDep(obj) { + var _key, d, m, obj; + d = this; + m = d.deps; + if (m === false) { + m = new $global.Map(); + d.deps = m; + } + _key = obj; (m || $throwRuntimeError("assignment to entry in nil map")).set(Object.keyFor(_key), { k: _key, v: true }); + }; + $ptrType(Checker).prototype.arityMatch = function arityMatch(s, init$4) { + var {_arg, _arg$1, _r, check, init$4, l, n, n$1, r, s, x, x$1, x$2, $s, $r, $c} = $restore(this, {s, init$4}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + l = s.Names.$length; + r = s.Values.$length; + if (!(init$4 === ptrType$89.nil)) { + r = init$4.Values.$length; + } + /* */ if (init$4 === ptrType$89.nil && (r === 0)) { $s = 2; continue; } + /* */ if (l < r) { $s = 3; continue; } + /* */ if (l > r && (!(init$4 === ptrType$89.nil) || !((r === 1)))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (init$4 === ptrType$89.nil && (r === 0)) { */ case 2: + /* */ if ($interfaceIsEqual(s.Type, $ifaceNil)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if ($interfaceIsEqual(s.Type, $ifaceNil)) { */ case 6: + $r = check.error(s, 17, "missing type or init expr"); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 7: + $s = 5; continue; + /* } else if (l < r) { */ case 3: + /* */ if (l < s.Values.$length) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (l < s.Values.$length) { */ case 9: + n = (x = s.Values, ((l < 0 || l >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + l])); + $r = check.errorf(n, 17, "extra init expr %s", new sliceType$5([n])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 11; continue; + /* } else { */ case 10: + _arg = s; + _r = check.fset.Position(init$4.Pos()); /* */ $s = 13; case 13: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = (x$1 = _r, new x$1.constructor.elem(x$1)); + $r = check.errorf(_arg, 17, "extra init expr at %s", new sliceType$5([_arg$1])); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 11: + $s = 5; continue; + /* } else if (l > r && (!(init$4 === ptrType$89.nil) || !((r === 1)))) { */ case 4: + n$1 = (x$2 = s.Names, ((r < 0 || r >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + r])); + $r = check.errorf(n$1, 17, "missing init expr for %s", new sliceType$5([n$1])); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 5: + case 1: + $s = -1; return; + /* */ } return; } var $f = {$blk: arityMatch, $c: true, $r, _arg, _arg$1, _r, check, init$4, l, n, n$1, r, s, x, x$1, x$2, $s};return $f; + }; + validatedImportPath = function validatedImportPath$1(path) { + var {$24r, $24r$1, _i, _r, _r$1, _ref, _rune, _tuple, err, path, r, s, $s, $r, $c} = $restore(this, {path}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _tuple = strconv.Unquote(path); + s = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return ["", err]; + } + /* */ if (s === "") { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (s === "") { */ case 1: + _r = fmt.Errorf("empty string", sliceType$5.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = ["", _r]; + $s = 4; case 4: return $24r; + /* } */ case 2: + _ref = s; + _i = 0; + /* while (true) { */ case 5: + /* if (!(_i < _ref.length)) { break; } */ if(!(_i < _ref.length)) { $s = 6; continue; } + _rune = $decodeRune(_ref, _i); + r = _rune[0]; + /* */ if (!unicode.IsGraphic(r) || unicode.IsSpace(r) || strings.ContainsRune("!\"#$%&'()*,:;<=>?[\\]^{|}`\xEF\xBF\xBD", r)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!unicode.IsGraphic(r) || unicode.IsSpace(r) || strings.ContainsRune("!\"#$%&'()*,:;<=>?[\\]^{|}`\xEF\xBF\xBD", r)) { */ case 7: + _r$1 = fmt.Errorf("invalid character %#U", new sliceType$5([new $Int32(r)])); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r$1 = [s, _r$1]; + $s = 10; case 10: return $24r$1; + /* } */ case 8: + _i += _rune[1]; + $s = 5; continue; + case 6: + $s = -1; return [s, $ifaceNil]; + /* */ } return; } var $f = {$blk: validatedImportPath$1, $c: true, $r, $24r, $24r$1, _i, _r, _r$1, _ref, _rune, _tuple, err, path, r, s, $s};return $f; + }; + $ptrType(Checker).prototype.declarePkgObj = function declarePkgObj(ident$1, obj, d) { + var {_key, _r, check, d, ident$1, obj, $s, $r, $c} = $restore(this, {ident$1, obj, d}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _r = obj.Name(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = assert(ident$1.Name === _r); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (ident$1.Name === "init") { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (ident$1.Name === "init") { */ case 3: + $r = check.error(ident$1, 39, "cannot declare init - must be func"); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 4: + /* */ if (ident$1.Name === "main" && check.pkg.name === "main") { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (ident$1.Name === "main" && check.pkg.name === "main") { */ case 6: + $r = check.error(ident$1, 40, "cannot declare main - must be func"); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 7: + $r = check.declare(check.pkg.scope, ident$1, obj, nopos); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _key = obj; (check.objMap || $throwRuntimeError("assignment to entry in nil map")).set(Object.keyFor(_key), { k: _key, v: d }); + $r = obj.setOrder((((check.objMap ? check.objMap.size : 0) >>> 0))); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: declarePkgObj, $c: true, $r, _key, _r, check, d, ident$1, obj, $s};return $f; + }; + $ptrType(Checker).prototype.filename = function filename(fileNo) { + var {$24r, $24r$1, _r, _r$1, _r$2, check, file, fileNo, pos, x, $s, $r, $c} = $restore(this, {fileNo}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + file = (x = check.files, ((fileNo < 0 || fileNo >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + fileNo])); + pos = file.Pos(); + /* */ if (new token.Pos(pos).IsValid()) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (new token.Pos(pos).IsValid()) { */ case 1: + _r = check.fset.File(pos); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = _r.Name(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 5; case 5: return $24r; + /* } */ case 2: + _r$2 = fmt.Sprintf("file[%d]", new sliceType$5([new $Int(fileNo)])); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r$1 = _r$2; + $s = 7; case 7: return $24r$1; + /* */ } return; } var $f = {$blk: filename, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, check, file, fileNo, pos, x, $s};return $f; + }; + $ptrType(Checker).prototype.importPackage = function importPackage(at$1, path, dir$1) { + var {_entry, _key, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, _tuple$1, _tuple$2, at$1, check, dir$1, err, i, i$1, imp, importer, importerFrom, key, name, ok, path, $s, $r, $c} = $restore(this, {at$1, path, dir$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + key = new importKey.ptr(path, dir$1); + imp = (_entry = $mapIndex(check.impMap,importKey.keyFor(key)), _entry !== undefined ? _entry.v : ptrType$1.nil); + if (!(imp === ptrType$1.nil)) { + $s = -1; return imp; + } + /* */ if (path === "C" && (check.conf.FakeImportC || check.conf.go115UsesCgo)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (path === "C" && (check.conf.FakeImportC || check.conf.go115UsesCgo)) { */ case 1: + _r = NewPackage("C", "C"); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + imp = _r; + imp.fake = true; + imp.cgo = check.conf.go115UsesCgo; + $s = 3; continue; + /* } else { */ case 2: + err = $ifaceNil; + importer = check.conf.Importer; + /* */ if ($interfaceIsEqual(importer, $ifaceNil)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if ($interfaceIsEqual(importer, $ifaceNil)) { */ case 5: + _r$1 = fmt.Errorf("Config.Importer not installed", sliceType$5.nil); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + err = _r$1; + $s = 7; continue; + /* } else { */ case 6: + _tuple = $assertType(importer, ImporterFrom, true); + importerFrom = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (ok) { */ case 9: + _r$2 = importerFrom.ImportFrom(path, dir$1, 0); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$1 = _r$2; + imp = _tuple$1[0]; + err = _tuple$1[1]; + /* */ if (imp === ptrType$1.nil && $interfaceIsEqual(err, $ifaceNil)) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (imp === ptrType$1.nil && $interfaceIsEqual(err, $ifaceNil)) { */ case 13: + _r$3 = fmt.Errorf("Config.Importer.ImportFrom(%s, %s, 0) returned nil but no error", new sliceType$5([new $String(path), new $String(dir$1)])); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + err = _r$3; + /* } */ case 14: + $s = 11; continue; + /* } else { */ case 10: + _r$4 = importer.Import(path); /* */ $s = 16; case 16: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$2 = _r$4; + imp = _tuple$2[0]; + err = _tuple$2[1]; + /* */ if (imp === ptrType$1.nil && $interfaceIsEqual(err, $ifaceNil)) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (imp === ptrType$1.nil && $interfaceIsEqual(err, $ifaceNil)) { */ case 17: + _r$5 = fmt.Errorf("Config.Importer.Import(%s) returned nil but no error", new sliceType$5([new $String(path)])); /* */ $s = 19; case 19: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + err = _r$5; + /* } */ case 18: + /* } */ case 11: + /* } */ case 7: + /* */ if ($interfaceIsEqual(err, $ifaceNil) && !(imp === ptrType$1.nil) && (imp.name === "_" || imp.name === "")) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if ($interfaceIsEqual(err, $ifaceNil) && !(imp === ptrType$1.nil) && (imp.name === "_" || imp.name === "")) { */ case 20: + _r$6 = fmt.Errorf("invalid package name: %q", new sliceType$5([new $String(imp.name)])); /* */ $s = 22; case 22: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + err = _r$6; + imp = ptrType$1.nil; + /* } */ case 21: + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 23: + $r = check.errorf(at$1, 6, "could not import %s (%s)", new sliceType$5([new $String(path), err])); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (imp === ptrType$1.nil) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (imp === ptrType$1.nil) { */ case 26: + name = path; + i = name.length; + if (i > 0 && (name.charCodeAt((i - 1 >> 0)) === 47)) { + name = $substring(name, 0, (i - 1 >> 0)); + } + i$1 = strings.LastIndex(name, "/"); + if (i$1 >= 0) { + name = $substring(name, (i$1 + 1 >> 0)); + } + _r$7 = NewPackage(path, name); /* */ $s = 28; case 28: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + imp = _r$7; + /* } */ case 27: + imp.fake = true; + /* } */ case 24: + /* } */ case 3: + if (imp.complete || imp.fake) { + _key = $clone(key, importKey); (check.impMap || $throwRuntimeError("assignment to entry in nil map")).set(importKey.keyFor(_key), { k: _key, v: imp }); + if (!(check.pkgPathMap === false)) { + check.markImports(imp); + } + $s = -1; return imp; + } + $s = -1; return ptrType$1.nil; + /* */ } return; } var $f = {$blk: importPackage, $c: true, $r, _entry, _key, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, _tuple$1, _tuple$2, at$1, check, dir$1, err, i, i$1, imp, importer, importerFrom, key, name, ok, path, $s};return $f; + }; + $ptrType(Checker).prototype.collectObjects = function collectObjects() { + var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _entry, _entry$1, _i, _i$1, _i$2, _i$3, _i$4, _key, _key$1, _key$2, _keys, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _size, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, alt, base, check, end, f, file, fileDir, fileNo, fileScope, fileScopes, i, imp, m, methods, name, obj, ok, pkg, pkg$1, pkgImports, pos, ptr, scope, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - s = lit.Value; - if (s.length <= 2 || check.allowVersion(check.pkg, 1, 13)) { - $s = -1; return; + check = [check]; + methods = [methods]; + pkg = [pkg]; + pkgImports = [pkgImports]; + check[0] = this; + pkg[0] = check[0].pkg; + pkgImports[0] = new $global.Map(); + _ref = pkg[0].imports; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + imp = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _key = imp; (pkgImports[0] || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$1.keyFor(_key), { k: _key, v: true }); + _i++; } - /* */ if (strings.Contains(s, "_")) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (strings.Contains(s, "_")) { */ case 1: - $r = check.error(lit, 135, "underscores in numeric literals requires go1.13 or later"); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 2: - if (!((s.charCodeAt(0) === 48))) { + methods[0] = sliceType$20.nil; + fileScopes = sliceType$19.nil; + _ref$1 = check[0].files; + _i$1 = 0; + /* while (true) { */ case 1: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 2; continue; } + fileDir = [fileDir]; + fileScope = [fileScope]; + fileNo = _i$1; + file = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + $r = check[0].recordDef(file.Name, $ifaceNil); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tmp = file.Pos(); + _r = file.End(); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tmp$1 = _r; + pos = _tmp; + end = _tmp$1; + _r$1 = check[0].fset.File(file.Pos()); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + f = _r$1; + if (!(f === ptrType$9.nil)) { + _tmp$2 = ((f.Base() >> 0)); + _tmp$3 = (((f.Base() + f.Size() >> 0) >> 0)); + pos = _tmp$2; + end = _tmp$3; + } + _arg = pkg[0].scope; + _arg$1 = pos; + _arg$2 = end; + _r$2 = check[0].filename(fileNo); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg$3 = _r$2; + _r$3 = NewScope(_arg, _arg$1, _arg$2, _arg$3); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + fileScope[0] = _r$3; + fileScopes = $append(fileScopes, fileScope[0]); + $r = check[0].recordScope(file, fileScope[0]); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$4 = check[0].fset.Position(file.Name.Pos()); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$5 = dir(_r$4.Filename); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + fileDir[0] = _r$5; + $r = check[0].walkDecls(file.Decls, (function(check, fileDir, fileScope, methods, pkg, pkgImports) { return function Checker·collectObjects·func1(d) { + var {_arg$4, _arg$5, _entry, _entry$1, _i$2, _i$3, _i$4, _key$1, _key$2, _key$3, _key$4, _keys, _r$10, _r$11, _r$12, _r$6, _r$7, _r$8, _r$9, _ref$2, _ref$3, _ref$4, _ref$5, _size, _tuple, _tuple$1, _v, _v$1, alt, code, d, d$1, d$2, d$3, d$4, d$5, d$6, d1, di, err, hasTParamError, i, i$1, imp$1, info, init$4, init$5, lhs, name, name$1, name$2, name$3, name$4, obj, obj$1, obj$2, obj$3, obj$4, path, pkgName, ptr, recv, t, x, x$1, x$2, x$3, x$4, x$5, x$6, $s, $r, $c} = $restore(this, {d}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref$2 = d; + /* */ if ($assertType(_ref$2, importDecl, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref$2, constDecl, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref$2, varDecl, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref$2, typeDecl, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref$2, funcDecl, true)[1]) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if ($assertType(_ref$2, importDecl, true)[1]) { */ case 1: + d$1 = $clone(_ref$2.$val, importDecl); + if (d$1.spec.Path.Value === "") { + $s = -1; return; + } + _r$6 = validatedImportPath(d$1.spec.Path.Value); /* */ $s = 7; case 7: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _tuple = _r$6; + path = _tuple[0]; + err = _tuple[1]; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 8: + $r = check[0].errorf(d$1.spec.Path, 5, "invalid import path (%s)", new sliceType$5([err])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 9: + _r$7 = check[0].importPackage(d$1.spec.Path, path, fileDir[0]); /* */ $s = 11; case 11: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + imp$1 = _r$7; + if (imp$1 === ptrType$1.nil) { + $s = -1; return; + } + name = imp$1.name; + /* */ if (!(d$1.spec.Name === ptrType$31.nil)) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (!(d$1.spec.Name === ptrType$31.nil)) { */ case 12: + name = d$1.spec.Name.Name; + /* */ if (path === "C") { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (path === "C") { */ case 14: + $r = check[0].error(d$1.spec.Name, 7, "cannot rename import \"C\""); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 15: + /* } */ case 13: + /* */ if (name === "init") { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (name === "init") { */ case 17: + $r = check[0].error(d$1.spec, 39, "cannot import package as init - init must be a func"); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 18: + if (!(_entry = $mapIndex(pkgImports[0],ptrType$1.keyFor(imp$1)), _entry !== undefined ? _entry.v : false)) { + _key$1 = imp$1; (pkgImports[0] || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$1.keyFor(_key$1), { k: _key$1, v: true }); + pkg[0].imports = $append(pkg[0].imports, imp$1); + } + pkgName = NewPkgName(d$1.spec.Pos(), pkg[0], name, imp$1); + /* */ if (!(d$1.spec.Name === ptrType$31.nil)) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (!(d$1.spec.Name === ptrType$31.nil)) { */ case 20: + $r = check[0].recordDef(d$1.spec.Name, pkgName); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 22; continue; + /* } else { */ case 21: + $r = check[0].recordImplicit(d$1.spec, pkgName); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 22: + if (imp$1.fake) { + pkgName.used = true; + } + check[0].imports = $append(check[0].imports, pkgName); + /* */ if (name === ".") { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (name === ".") { */ case 25: + if (check[0].dotImportMap === false) { + check[0].dotImportMap = new $global.Map(); + } + _ref$3 = imp$1.scope.elems; + _i$2 = 0; + _keys = _ref$3 ? _ref$3.keys() : undefined; + _size = _ref$3 ? _ref$3.size : 0; + /* while (true) { */ case 28: + /* if (!(_i$2 < _size)) { break; } */ if(!(_i$2 < _size)) { $s = 29; continue; } + _key$2 = _keys.next().value; + _entry$1 = _ref$3.get(_key$2); + if (_entry$1 === undefined) { + _i$2++; + /* continue; */ $s = 28; continue; + } + name$1 = _entry$1.k; + obj = _entry$1.v; + /* */ if (token.IsExported(name$1)) { $s = 30; continue; } + /* */ $s = 31; continue; + /* if (token.IsExported(name$1)) { */ case 30: + _r$8 = fileScope[0].Lookup(name$1); /* */ $s = 32; case 32: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + alt = _r$8; + /* */ if (!($interfaceIsEqual(alt, $ifaceNil))) { $s = 33; continue; } + /* */ $s = 34; continue; + /* if (!($interfaceIsEqual(alt, $ifaceNil))) { */ case 33: + _arg$4 = d$1.spec.Name; + _r$9 = alt.Name(); /* */ $s = 36; case 36: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _arg$5 = new $String(_r$9); + $r = check[0].errorf(_arg$4, 10, "%s redeclared in this block", new sliceType$5([_arg$5])); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].reportAltDecl(alt); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 35; continue; + /* } else { */ case 34: + fileScope[0].insert(name$1, obj); + _key$3 = $clone(new dotImportKey.ptr(fileScope[0], name$1), dotImportKey); (check[0].dotImportMap || $throwRuntimeError("assignment to entry in nil map")).set(dotImportKey.keyFor(_key$3), { k: _key$3, v: pkgName }); + /* } */ case 35: + /* } */ case 31: + _i$2++; + $s = 28; continue; + case 29: + $s = 27; continue; + /* } else { */ case 26: + $r = check[0].declare(fileScope[0], ptrType$31.nil, pkgName, nopos); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 27: + $s = 6; continue; + /* } else if ($assertType(_ref$2, constDecl, true)[1]) { */ case 2: + d$2 = $clone(_ref$2.$val, constDecl); + _ref$4 = d$2.spec.Names; + _i$3 = 0; + /* while (true) { */ case 40: + /* if (!(_i$3 < _ref$4.$length)) { break; } */ if(!(_i$3 < _ref$4.$length)) { $s = 41; continue; } + i = _i$3; + name$2 = ((_i$3 < 0 || _i$3 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$3]); + obj$1 = NewConst(name$2.Pos(), pkg[0], name$2.Name, $ifaceNil, constant.MakeInt64((new $Int64(0, d$2.iota)))); + init$4 = $ifaceNil; + if (i < d$2.init.$length) { + init$4 = (x = d$2.init, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + } + d$6 = new declInfo.ptr(fileScope[0], sliceType$9.nil, d$2.typ, init$4, d$2.inherited, ptrType$90.nil, ptrType$88.nil, false); + $r = check[0].declarePkgObj(name$2, obj$1, d$6); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$3++; + $s = 40; continue; + case 41: + $s = 6; continue; + /* } else if ($assertType(_ref$2, varDecl, true)[1]) { */ case 3: + d$3 = $clone(_ref$2.$val, varDecl); + lhs = $makeSlice(sliceType$9, d$3.spec.Names.$length); + d1 = ptrType$59.nil; + if (d$3.spec.Values.$length === 1) { + d1 = new declInfo.ptr(fileScope[0], lhs, d$3.spec.Type, (x$1 = d$3.spec.Values, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])), false, ptrType$90.nil, ptrType$88.nil, false); + } + _ref$5 = d$3.spec.Names; + _i$4 = 0; + /* while (true) { */ case 43: + /* if (!(_i$4 < _ref$5.$length)) { break; } */ if(!(_i$4 < _ref$5.$length)) { $s = 44; continue; } + i$1 = _i$4; + name$3 = ((_i$4 < 0 || _i$4 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$4]); + obj$2 = NewVar(name$3.Pos(), pkg[0], name$3.Name, $ifaceNil); + ((i$1 < 0 || i$1 >= lhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : lhs.$array[lhs.$offset + i$1] = obj$2); + di = d1; + if (di === ptrType$59.nil) { + init$5 = $ifaceNil; + if (i$1 < d$3.spec.Values.$length) { + init$5 = (x$2 = d$3.spec.Values, ((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$1])); + } + di = new declInfo.ptr(fileScope[0], sliceType$9.nil, d$3.spec.Type, init$5, false, ptrType$90.nil, ptrType$88.nil, false); + } + $r = check[0].declarePkgObj(name$3, obj$2, di); /* */ $s = 45; case 45: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$4++; + $s = 43; continue; + case 44: + $s = 6; continue; + /* } else if ($assertType(_ref$2, typeDecl, true)[1]) { */ case 4: + d$4 = $clone(_ref$2.$val, typeDecl); + if (!(!((d$4.spec.TypeParams.NumFields() === 0)))) { _v = false; $s = 46; continue s; } + _r$10 = check[0].verifyVersionf((x$3 = d$4.spec.TypeParams.List, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])), $clone(go1_18, version), "type parameter", sliceType$5.nil); /* */ $s = 47; case 47: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _v = _r$10; case 46: + $unused(_v); + obj$3 = NewTypeName(d$4.spec.Name.Pos(), pkg[0], d$4.spec.Name.Name, $ifaceNil); + $r = check[0].declarePkgObj(d$4.spec.Name, obj$3, new declInfo.ptr(fileScope[0], sliceType$9.nil, $ifaceNil, $ifaceNil, false, d$4.spec, ptrType$88.nil, false)); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 6; continue; + /* } else if ($assertType(_ref$2, funcDecl, true)[1]) { */ case 5: + d$5 = $clone(_ref$2.$val, funcDecl); + name$4 = d$5.decl.Name.Name; + obj$4 = NewFunc(d$5.decl.Name.Pos(), pkg[0], name$4, ptrType$29.nil); + hasTParamError = false; + /* */ if (d$5.decl.Recv.NumFields() === 0) { $s = 49; continue; } + /* */ $s = 50; continue; + /* if (d$5.decl.Recv.NumFields() === 0) { */ case 49: + /* */ if (!(d$5.decl.Recv === ptrType$50.nil)) { $s = 52; continue; } + /* */ $s = 53; continue; + /* if (!(d$5.decl.Recv === ptrType$50.nil)) { */ case 52: + $r = check[0].error(d$5.decl.Recv, 31, "method has no receiver"); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 53: + /* */ if (name$4 === "init" || (name$4 === "main" && check[0].pkg.name === "main")) { $s = 55; continue; } + /* */ $s = 56; continue; + /* if (name$4 === "init" || (name$4 === "main" && check[0].pkg.name === "main")) { */ case 55: + code = 39; + if (name$4 === "main") { + code = 40; + } + /* */ if (!((d$5.decl.Type.TypeParams.NumFields() === 0))) { $s = 57; continue; } + /* */ $s = 58; continue; + /* if (!((d$5.decl.Type.TypeParams.NumFields() === 0))) { */ case 57: + $r = check[0].softErrorf((x$4 = d$5.decl.Type.TypeParams.List, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])), code, "func %s must have no type parameters", new sliceType$5([new $String(name$4)])); /* */ $s = 59; case 59: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + hasTParamError = true; + /* } */ case 58: + t = d$5.decl.Type; + /* */ if (!((t.Params.NumFields() === 0)) || !(t.Results === ptrType$50.nil)) { $s = 60; continue; } + /* */ $s = 61; continue; + /* if (!((t.Params.NumFields() === 0)) || !(t.Results === ptrType$50.nil)) { */ case 60: + $r = check[0].softErrorf(d$5.decl.Name, code, "func %s must have no arguments and no return values", new sliceType$5([new $String(name$4)])); /* */ $s = 62; case 62: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 61: + /* } */ case 56: + /* */ if (name$4 === "init") { $s = 63; continue; } + /* */ $s = 64; continue; + /* if (name$4 === "init") { */ case 63: + obj$4.object.parent = pkg[0].scope; + $r = check[0].recordDef(d$5.decl.Name, obj$4); /* */ $s = 66; case 66: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (d$5.decl.Body === ptrType$75.nil) { $s = 67; continue; } + /* */ $s = 68; continue; + /* if (d$5.decl.Body === ptrType$75.nil) { */ case 67: + $r = check[0].softErrorf(obj$4, 37, "missing function body", sliceType$5.nil); /* */ $s = 69; case 69: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 68: + $s = 65; continue; + /* } else { */ case 64: + $r = check[0].declare(pkg[0].scope, d$5.decl.Name, obj$4, nopos); /* */ $s = 70; case 70: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 65: + $s = 51; continue; + /* } else { */ case 50: + _r$11 = check[0].unpackRecv((x$5 = d$5.decl.Recv.List, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0])).Type, false); /* */ $s = 71; case 71: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _tuple$1 = _r$11; + ptr = _tuple$1[0]; + recv = _tuple$1[1]; + if (!(recv === ptrType$31.nil) && !(name$4 === "_")) { + methods[0] = $append(methods[0], new methodInfo.ptr(obj$4, ptr, recv)); + } + $r = check[0].recordDef(d$5.decl.Name, obj$4); /* */ $s = 72; case 72: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 51: + if (!(!((d$5.decl.Type.TypeParams.NumFields() === 0)) && !hasTParamError)) { _v$1 = false; $s = 73; continue s; } + _r$12 = check[0].verifyVersionf((x$6 = d$5.decl.Type.TypeParams.List, (0 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + 0])), $clone(go1_18, version), "type parameter", sliceType$5.nil); /* */ $s = 74; case 74: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _v$1 = _r$12; case 73: + $unused(_v$1); + info = new declInfo.ptr(fileScope[0], sliceType$9.nil, $ifaceNil, $ifaceNil, false, ptrType$90.nil, d$5.decl, false); + _key$4 = obj$4; (check[0].objMap || $throwRuntimeError("assignment to entry in nil map")).set(Object.keyFor(_key$4), { k: _key$4, v: info }); + $r = obj$4.object.setOrder((((check[0].objMap ? check[0].objMap.size : 0) >>> 0))); /* */ $s = 75; case 75: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·collectObjects·func1, $c: true, $r, _arg$4, _arg$5, _entry, _entry$1, _i$2, _i$3, _i$4, _key$1, _key$2, _key$3, _key$4, _keys, _r$10, _r$11, _r$12, _r$6, _r$7, _r$8, _r$9, _ref$2, _ref$3, _ref$4, _ref$5, _size, _tuple, _tuple$1, _v, _v$1, alt, code, d, d$1, d$2, d$3, d$4, d$5, d$6, d1, di, err, hasTParamError, i, i$1, imp$1, info, init$4, init$5, lhs, name, name$1, name$2, name$3, name$4, obj, obj$1, obj$2, obj$3, obj$4, path, pkgName, ptr, recv, t, x, x$1, x$2, x$3, x$4, x$5, x$6, $s};return $f; + }; })(check, fileDir, fileScope, methods, pkg, pkgImports)); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + $s = 1; continue; + case 2: + _ref$2 = fileScopes; + _i$2 = 0; + /* while (true) { */ case 12: + /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 13; continue; } + scope = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); + _ref$3 = scope.elems; + _i$3 = 0; + _keys = _ref$3 ? _ref$3.keys() : undefined; + _size = _ref$3 ? _ref$3.size : 0; + /* while (true) { */ case 14: + /* if (!(_i$3 < _size)) { break; } */ if(!(_i$3 < _size)) { $s = 15; continue; } + _key$1 = _keys.next().value; + _entry = _ref$3.get(_key$1); + if (_entry === undefined) { + _i$3++; + /* continue; */ $s = 14; continue; + } + name = _entry.k; + obj = _entry.v; + _r$6 = pkg[0].scope.Lookup(name); /* */ $s = 16; case 16: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + alt = _r$6; + /* */ if (!($interfaceIsEqual(alt, $ifaceNil))) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (!($interfaceIsEqual(alt, $ifaceNil))) { */ case 17: + _r$7 = resolve(name, obj); /* */ $s = 19; case 19: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + obj = _r$7; + _tuple = $assertType(obj, ptrType$32, true); + pkg$1 = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (ok) { */ case 20: + _arg$4 = alt; + _r$8 = alt.Name(); /* */ $s = 23; case 23: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _arg$5 = new $String(_r$8); + _arg$6 = pkg$1.Imported(); + $r = check[0].errorf(_arg$4, 10, "%s already declared through import of %s", new sliceType$5([_arg$5, _arg$6])); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].reportAltDecl(pkg$1); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 22; continue; + /* } else { */ case 21: + _arg$7 = alt; + _r$9 = alt.Name(); /* */ $s = 26; case 26: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _arg$8 = new $String(_r$9); + _r$10 = obj.Pkg(); /* */ $s = 27; case 27: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _arg$9 = _r$10; + $r = check[0].errorf(_arg$7, 10, "%s already declared through dot-import of %s", new sliceType$5([_arg$8, _arg$9])); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].reportAltDecl(obj); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 22: + /* } */ case 18: + _i$3++; + $s = 14; continue; + case 15: + _i$2++; + $s = 12; continue; + case 13: + if (methods[0] === sliceType$20.nil) { $s = -1; return; } - radix = s.charCodeAt(1); - /* */ if ((radix === 98) || (radix === 66)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if ((radix === 98) || (radix === 66)) { */ case 4: - $r = check.error(lit, 135, "binary literals requires go1.13 or later"); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 5: - /* */ if ((radix === 111) || (radix === 79)) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if ((radix === 111) || (radix === 79)) { */ case 7: - $r = check.error(lit, 135, "0o/0O-style octal literals requires go1.13 or later"); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 8: - /* */ if (!((lit.Kind === 5)) && ((radix === 120) || (radix === 88))) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (!((lit.Kind === 5)) && ((radix === 120) || (radix === 88))) { */ case 10: - $r = check.error(lit, 135, "hexadecimal floating-point literals requires go1.13 or later"); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 11: + check[0].methods = new $global.Map(); + _ref$4 = methods[0]; + _i$4 = 0; + /* while (true) { */ case 30: + /* if (!(_i$4 < _ref$4.$length)) { break; } */ if(!(_i$4 < _ref$4.$length)) { $s = 31; continue; } + i = _i$4; + m = ((i < 0 || i >= methods[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(methods[0].$array, methods[0].$offset + i, ptrType$91)); + _r$11 = check[0].resolveBaseTypeName(m.ptr, m.recv, fileScopes); /* */ $s = 32; case 32: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _tuple$1 = _r$11; + ptr = _tuple$1[0]; + base = _tuple$1[1]; + if (!(base === ptrType$18.nil)) { + m.obj.hasPtrRecv_ = ptr; + _key$2 = base; (check[0].methods || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$18.keyFor(_key$2), { k: _key$2, v: $append((_entry$1 = $mapIndex(check[0].methods,ptrType$18.keyFor(base)), _entry$1 !== undefined ? _entry$1.v : sliceType.nil), m.obj) }); + } + _i$4++; + $s = 30; continue; + case 31: $s = -1; return; - /* */ } return; } var $f = {$blk: langCompat, $c: true, $r, check, lit, radix, s, $s};return $f; + /* */ } return; } var $f = {$blk: collectObjects, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _entry, _entry$1, _i, _i$1, _i$2, _i$3, _i$4, _key, _key$1, _key$2, _keys, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _size, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, alt, base, check, end, f, file, fileDir, fileNo, fileScope, fileScopes, i, imp, m, methods, name, obj, ok, pkg, pkg$1, pkgImports, pos, ptr, scope, $s};return $f; }; - $ptrType(Checker).prototype.allowVersion = function allowVersion(pkg, major, minor) { - var _tmp, _tmp$1, check, ma, major, mi, minor, pkg; - check = this; - if (!(pkg === check.pkg)) { - return true; - } - _tmp = check.version.major; - _tmp$1 = check.version.minor; - ma = _tmp; - mi = _tmp$1; - return (ma === 0) && (mi === 0) || ma > major || (ma === major) && mi >= minor; - }; - parseGoVersion = function parseGoVersion$1(s) { - var {_r$1, _r$2, _tuple, _tuple$1, err, matches, s, v, $s, $r, $c} = $restore(this, {s}); + $ptrType(Checker).prototype.unpackRecv = function unpackRecv(rtyp, unpackParams) { + var {_i, _r, _ref, _ref$1, _ref$2, _ref$3, _tuple, arg, arg$1, arg$2, arg$3, arg$4, check, ix, name, par, ptr, rname, rtyp, t, t$1, t$2, tparams, unpackParams, $s, $r, $c} = $restore(this, {rtyp, unpackParams}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - v = new version.ptr(0, 0); - err = $ifaceNil; - if (s === "") { - $s = -1; return [v, err]; + ptr = false; + rname = ptrType$31.nil; + tparams = sliceType$21.nil; + check = this; + L: + while (true) { + _ref = rtyp; + if ($assertType(_ref, ptrType$40, true)[1]) { + t = _ref.$val; + rtyp = t.X; + } else if ($assertType(_ref, ptrType$44, true)[1]) { + t$1 = _ref.$val; + ptr = true; + rtyp = t$1.X; + } else { + t$2 = _ref; + break L; + } } - _r$1 = goVersionRx.FindStringSubmatch(s); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - matches = _r$1; - /* */ if (matches === sliceType$5.nil) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (matches === sliceType$5.nil) { */ case 2: - _r$2 = fmt.Errorf("should be something like \"go1.12\"", sliceType$6.nil); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - err = _r$2; - $s = -1; return [v, err]; - /* } */ case 3: - _tuple = strconv.Atoi((1 >= matches.$length ? ($throwRuntimeError("index out of range"), undefined) : matches.$array[matches.$offset + 1])); - v.major = _tuple[0]; - err = _tuple[1]; - if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [v, err]; + _ref$1 = rtyp; + /* */ if ($assertType(_ref$1, ptrType$38, true)[1] || $assertType(_ref$1, ptrType$39, true)[1]) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ($assertType(_ref$1, ptrType$38, true)[1] || $assertType(_ref$1, ptrType$39, true)[1]) { */ case 1: + ix = typeparams.UnpackIndexExpr(rtyp); + rtyp = ix.IndexListExpr.X; + /* */ if (unpackParams) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (unpackParams) { */ case 3: + _ref$2 = ix.IndexListExpr.Indices; + _i = 0; + /* while (true) { */ case 5: + /* if (!(_i < _ref$2.$length)) { break; } */ if(!(_i < _ref$2.$length)) { $s = 6; continue; } + arg = ((_i < 0 || _i >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i]); + par = ptrType$31.nil; + _ref$3 = arg; + /* */ if ($assertType(_ref$3, ptrType$31, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref$3, ptrType$36, true)[1]) { $s = 8; continue; } + /* */ if (_ref$3 === $ifaceNil) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if ($assertType(_ref$3, ptrType$31, true)[1]) { */ case 7: + arg$1 = _ref$3.$val; + par = arg$1; + $s = 11; continue; + /* } else if ($assertType(_ref$3, ptrType$36, true)[1]) { */ case 8: + arg$2 = _ref$3.$val; + $s = 11; continue; + /* } else if (_ref$3 === $ifaceNil) { */ case 9: + arg$3 = _ref$3; + $r = check.error(ix.Orig, -1, "parameterized receiver contains nil parameters"); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 11; continue; + /* } else { */ case 10: + arg$4 = _ref$3; + $r = check.errorf(arg$4, 131, "receiver type parameter %s must be an identifier", new sliceType$5([arg$4])); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 11: + /* */ if (par === ptrType$31.nil) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (par === ptrType$31.nil) { */ case 14: + _r = arg.Pos(); /* */ $s = 16; case 16: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + par = new ast.Ident.ptr(_r, "_", ptrType$82.nil); + /* } */ case 15: + tparams = $append(tparams, par); + _i++; + $s = 5; continue; + case 6: + /* } */ case 4: + /* } */ case 2: + _tuple = $assertType(rtyp, ptrType$31, true); + name = _tuple[0]; + if (!(name === ptrType$31.nil)) { + rname = name; } - _tuple$1 = strconv.Atoi((2 >= matches.$length ? ($throwRuntimeError("index out of range"), undefined) : matches.$array[matches.$offset + 2])); - v.minor = _tuple$1[0]; - err = _tuple$1[1]; - $s = -1; return [v, err]; - /* */ } return; } var $f = {$blk: parseGoVersion$1, $c: true, $r, _r$1, _r$2, _tuple, _tuple$1, err, matches, s, v, $s};return $f; + $s = -1; return [ptr, rname, tparams]; + /* */ } return; } var $f = {$blk: unpackRecv, $c: true, $r, _i, _r, _ref, _ref$1, _ref$2, _ref$3, _tuple, arg, arg$1, arg$2, arg$3, arg$4, check, ix, name, par, ptr, rname, rtyp, t, t$1, t$2, tparams, unpackParams, $s};return $f; }; - $ptrType(Checker).prototype.validType = function validType(typ) { - var {_r$1, check, typ, $s, $r, $c} = $restore(this, {typ}); + $ptrType(Checker).prototype.resolveBaseTypeName = function resolveBaseTypeName(seenPtr, typ$3, fileScopes) { + var {_entry, _entry$1, _i, _key, _r, _r$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, base, check, fileScopes, ident$1, name, obj, obj$1, pexpr, pname, ptr, scope, seen, seenPtr, tdecl, tname, typ$3, typ$4, typ$5, typ$6, $s, $r, $c} = $restore(this, {seenPtr, typ$3, fileScopes}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + ptr = false; + base = ptrType$18.nil; check = this; - _r$1 = check.validType0(typ, sliceType$7.nil, sliceType$7.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - $s = -1; return; - /* */ } return; } var $f = {$blk: validType, $c: true, $r, _r$1, check, typ, $s};return $f; + ptr = seenPtr; + seen = false; + /* while (true) { */ case 1: + typ$3 = unparen(typ$3); + _tuple = $assertType(typ$3, ptrType$44, true); + pexpr = _tuple[0]; + if (!(pexpr === ptrType$44.nil)) { + if (ptr) { + _tmp = false; + _tmp$1 = ptrType$18.nil; + ptr = _tmp; + base = _tmp$1; + $s = -1; return [ptr, base]; + } + ptr = true; + typ$3 = unparen(pexpr.X); + } + name = ""; + _ref = typ$3; + /* */ if ($assertType(_ref, ptrType$31, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$37, true)[1]) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ($assertType(_ref, ptrType$31, true)[1]) { */ case 3: + typ$4 = _ref.$val; + name = typ$4.Name; + $s = 6; continue; + /* } else if ($assertType(_ref, ptrType$37, true)[1]) { */ case 4: + typ$5 = _ref.$val; + _tuple$1 = $assertType(typ$5.X, ptrType$31, true); + ident$1 = _tuple$1[0]; + /* */ if (!(ident$1 === ptrType$31.nil) && ident$1.Name === "C") { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!(ident$1 === ptrType$31.nil) && ident$1.Name === "C") { */ case 7: + obj = $ifaceNil; + _ref$1 = fileScopes; + _i = 0; + /* while (true) { */ case 9: + /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 10; continue; } + scope = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + /* */ if (scope.Contains(ident$1.Pos())) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (scope.Contains(ident$1.Pos())) { */ case 11: + _r = scope.Lookup(ident$1.Name); /* */ $s = 13; case 13: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + obj = _r; + /* } */ case 12: + _i++; + $s = 9; continue; + case 10: + _tuple$2 = $assertType(obj, ptrType$32, true); + pname = _tuple$2[0]; + if (!(pname === ptrType$32.nil)) { + if (pname.imported.cgo) { + name = "_Ctype_" + typ$5.Sel.Name; + } + } + /* } */ case 8: + if (name === "") { + _tmp$2 = false; + _tmp$3 = ptrType$18.nil; + ptr = _tmp$2; + base = _tmp$3; + $s = -1; return [ptr, base]; + } + $s = 6; continue; + /* } else { */ case 5: + typ$6 = _ref; + _tmp$4 = false; + _tmp$5 = ptrType$18.nil; + ptr = _tmp$4; + base = _tmp$5; + $s = -1; return [ptr, base]; + /* } */ case 6: + _r$1 = check.pkg.scope.Lookup(name); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + obj$1 = _r$1; + if ($interfaceIsEqual(obj$1, $ifaceNil)) { + _tmp$6 = false; + _tmp$7 = ptrType$18.nil; + ptr = _tmp$6; + base = _tmp$7; + $s = -1; return [ptr, base]; + } + _tuple$3 = $assertType(obj$1, ptrType$18, true); + tname = _tuple$3[0]; + if (tname === ptrType$18.nil) { + _tmp$8 = false; + _tmp$9 = ptrType$18.nil; + ptr = _tmp$8; + base = _tmp$9; + $s = -1; return [ptr, base]; + } + if ((_entry = $mapIndex(seen,ptrType$18.keyFor(tname)), _entry !== undefined ? _entry.v : false)) { + _tmp$10 = false; + _tmp$11 = ptrType$18.nil; + ptr = _tmp$10; + base = _tmp$11; + $s = -1; return [ptr, base]; + } + tdecl = (_entry$1 = $mapIndex(check.objMap,Object.keyFor(tname)), _entry$1 !== undefined ? _entry$1.v : ptrType$59.nil).tdecl; + if (!new token.Pos(tdecl.Assign).IsValid()) { + _tmp$12 = ptr; + _tmp$13 = tname; + ptr = _tmp$12; + base = _tmp$13; + $s = -1; return [ptr, base]; + } + typ$3 = tdecl.Type; + if (seen === false) { + seen = new $global.Map(); + } + _key = tname; (seen || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$18.keyFor(_key), { k: _key, v: true }); + $s = 1; continue; + case 2: + $s = -1; return [ptr, base]; + /* */ } return; } var $f = {$blk: resolveBaseTypeName, $c: true, $r, _entry, _entry$1, _i, _key, _r, _r$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, base, check, fileScopes, ident$1, name, obj, obj$1, pexpr, pname, ptr, scope, seen, seenPtr, tdecl, tname, typ$3, typ$4, typ$5, typ$6, $s};return $f; }; - $ptrType(Checker).prototype.validType0 = function validType0(typ, nest, path) { - var {$24r, $24r$1, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, check, e, etyp, f, i, inst, nest, p, path, start, t, t$1, t$2, t$3, t$4, t$5, t$6, t$7, targ, tparam, typ, x, $s, $r, $c} = $restore(this, {typ, nest, path}); + $ptrType(Checker).prototype.packageObjects = function packageObjects() { + var {_entry, _entry$1, _i, _i$1, _i$2, _i$3, _i$4, _key, _keys, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _size, _tuple, _tuple$1, aliasList, check, i, obj, obj$1, obj$2, obj$3, obj$4, obj$5, objList, othersList, tname, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: check = this; - _ref = typ; - /* */ if (_ref === $ifaceNil) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$12, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 7; continue; } - /* */ $s = 8; continue; - /* switch (0) { default: if (_ref === $ifaceNil) { */ case 1: - t = _ref; - if (false) { - $panic(new $String("validType0(nil)")); - } - $s = 8; continue; - /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 2: - t$1 = _ref.$val; - _r$1 = check.validType0(t$1.elem, nest, path); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 10; case 10: return $24r; - /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 3: - t$2 = _ref.$val; - _ref$1 = t$2.fields; - _i = 0; - /* while (true) { */ case 11: - /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 12; continue; } - f = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); - _r$2 = check.validType0(f.object.typ, nest, path); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (!_r$2) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (!_r$2) { */ case 13: - $s = -1; return false; - /* } */ case 14: - _i++; - $s = 11; continue; - case 12: - $s = 8; continue; - /* } else if ($assertType(_ref, ptrType$12, true)[1]) { */ case 4: - t$3 = _ref.$val; - _ref$2 = t$3.terms; - _i$1 = 0; - /* while (true) { */ case 16: - /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 17; continue; } - t$7 = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); - _r$3 = check.validType0(t$7.typ, nest, path); /* */ $s = 20; case 20: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (!_r$3) { $s = 18; continue; } - /* */ $s = 19; continue; - /* if (!_r$3) { */ case 18: - $s = -1; return false; - /* } */ case 19: - _i$1++; - $s = 16; continue; - case 17: - $s = 8; continue; - /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 5: - t$4 = _ref.$val; - _ref$3 = t$4.embeddeds; - _i$2 = 0; - /* while (true) { */ case 21: - /* if (!(_i$2 < _ref$3.$length)) { break; } */ if(!(_i$2 < _ref$3.$length)) { $s = 22; continue; } - etyp = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]); - _r$4 = check.validType0(etyp, nest, path); /* */ $s = 25; case 25: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if (!_r$4) { $s = 23; continue; } - /* */ $s = 24; continue; - /* if (!_r$4) { */ case 23: - $s = -1; return false; - /* } */ case 24: - _i$2++; - $s = 21; continue; - case 22: - $s = 8; continue; - /* } else if ($assertType(_ref, ptrType$9, true)[1]) { */ case 6: - t$5 = _ref.$val; - _r$5 = check.valids.lookup(t$5); /* */ $s = 28; case 28: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* */ if (!(_r$5 === ptrType$9.nil)) { $s = 26; continue; } - /* */ $s = 27; continue; - /* if (!(_r$5 === ptrType$9.nil)) { */ case 26: - /* break; */ $s = 8; continue; - /* } */ case 27: - _r$6 = t$5.Underlying(); /* */ $s = 31; case 31: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - /* */ if ($interfaceIsEqual(_r$6, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { $s = 29; continue; } - /* */ $s = 30; continue; - /* if ($interfaceIsEqual(_r$6, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { */ case 29: - $s = -1; return false; - /* } */ case 30: - _ref$4 = nest; - _i$3 = 0; - /* while (true) { */ case 32: - /* if (!(_i$3 < _ref$4.$length)) { break; } */ if(!(_i$3 < _ref$4.$length)) { $s = 33; continue; } - e = ((_i$3 < 0 || _i$3 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$3]); - _r$7 = Identical(e, t$5); /* */ $s = 36; case 36: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - /* */ if (_r$7) { $s = 34; continue; } - /* */ $s = 35; continue; - /* if (_r$7) { */ case 34: - $r = assert(t$5.obj.object.pkg === check.pkg); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = assert(t$5.Origin().obj.object.pkg === check.pkg); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - t$5.underlying = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - t$5.Origin().underlying = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - _ref$5 = path; - _i$4 = 0; - /* while (true) { */ case 39: - /* if (!(_i$4 < _ref$5.$length)) { break; } */ if(!(_i$4 < _ref$5.$length)) { $s = 40; continue; } - start = _i$4; - p = ((_i$4 < 0 || _i$4 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$4]); - _r$8 = Identical(p, t$5); /* */ $s = 43; case 43: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - /* */ if (_r$8) { $s = 41; continue; } - /* */ $s = 42; continue; - /* if (_r$8) { */ case 41: - $r = check.cycleError(makeObjList($subslice(path, start))); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return false; - /* } */ case 42: - _i$4++; - $s = 39; continue; - case 40: - $panic(new $String("cycle start not found")); - /* } */ case 35: - _i$3++; - $s = 32; continue; - case 33: - _r$9 = check.validType0(t$5.Origin().fromRHS, $append(nest, t$5), $append(path, t$5)); /* */ $s = 47; case 47: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - /* */ if (!_r$9) { $s = 45; continue; } - /* */ $s = 46; continue; - /* if (!_r$9) { */ case 45: - $s = -1; return false; - /* } */ case 46: - check.valids.add(t$5); - $s = 8; continue; - /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 7: - t$6 = _ref.$val; - /* */ if (nest.$length > 0) { $s = 48; continue; } - /* */ $s = 49; continue; - /* if (nest.$length > 0) { */ case 48: - inst = (x = nest.$length - 1 >> 0, ((x < 0 || x >= nest.$length) ? ($throwRuntimeError("index out of range"), undefined) : nest.$array[nest.$offset + x])); - _r$10 = inst.TypeParams(); /* */ $s = 50; case 50: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _r$11 = _r$10.list(); /* */ $s = 51; case 51: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _ref$6 = _r$11; - _i$5 = 0; - /* while (true) { */ case 52: - /* if (!(_i$5 < _ref$6.$length)) { break; } */ if(!(_i$5 < _ref$6.$length)) { $s = 53; continue; } - i = _i$5; - tparam = ((_i$5 < 0 || _i$5 >= _ref$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$6.$array[_ref$6.$offset + _i$5]); - /* */ if (t$6 === tparam && i < inst.TypeArgs().Len()) { $s = 54; continue; } - /* */ $s = 55; continue; - /* if (t$6 === tparam && i < inst.TypeArgs().Len()) { */ case 54: - targ = inst.TypeArgs().At(i); - _r$12 = check.validType0(targ, $subslice(nest, 0, (nest.$length - 1 >> 0)), path); /* */ $s = 56; case 56: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - $24r$1 = _r$12; - $s = 57; case 57: return $24r$1; - /* } */ case 55: - _i$5++; - $s = 52; continue; - case 53: - /* } */ case 49: - /* } } */ case 8: - $s = -1; return true; - /* */ } return; } var $f = {$blk: validType0, $c: true, $r, $24r, $24r$1, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, check, e, etyp, f, i, inst, nest, p, path, start, t, t$1, t$2, t$3, t$4, t$5, t$6, t$7, targ, tparam, typ, x, $s};return $f; - }; - makeObjList = function makeObjList$1(tlist) { - var _i, _ref, i, olist, t, tlist; - olist = $makeSlice(sliceType$8, tlist.$length); - _ref = tlist; + objList = $makeSlice(sliceType$7, (check.objMap ? check.objMap.size : 0)); + i = 0; + _ref = check.objMap; _i = 0; + _keys = _ref ? _ref.keys() : undefined; + _size = _ref ? _ref.size : 0; while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - ((i < 0 || i >= olist.$length) ? ($throwRuntimeError("index out of range"), undefined) : olist.$array[olist.$offset + i] = t.obj); + if (!(_i < _size)) { break; } + _key = _keys.next().value; + _entry = _ref.get(_key); + if (_entry === undefined) { + _i++; + continue; + } + obj = _entry.k; + ((i < 0 || i >= objList.$length) ? ($throwRuntimeError("index out of range"), undefined) : objList.$array[objList.$offset + i] = obj); + i = i + (1) >> 0; _i++; } - return olist; - }; - defPredeclaredTypes = function defPredeclaredTypes$1() { - var {_i, _i$1, _r$1, _r$2, _ref, _ref$1, err, ityp, ityp$1, obj, obj$1, recv, res, sig, t, t$1, typ, typ$1, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ref = $pkg.Typ; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - $r = def(NewTypeName(0, ptrType$1.nil, t.name, t)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 1; continue; - case 2: - _ref$1 = aliases; + $r = sort.Sort(($convertSliceType(objList, inSourceOrder))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _ref$1 = objList; _i$1 = 0; - /* while (true) { */ case 4: - /* if (!(_i$1 < 2)) { break; } */ if(!(_i$1 < 2)) { $s = 5; continue; } - t$1 = ((_i$1 < 0 || _i$1 >= _ref$1.length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1[_i$1]); - $r = def(NewTypeName(0, ptrType$1.nil, t$1.name, t$1)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* while (true) { */ case 2: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 3; continue; } + obj$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + _tuple = $assertType(obj$1, ptrType$18, true); + obj$2 = _tuple[0]; + /* */ if (!(obj$2 === ptrType$18.nil) && !($interfaceIsEqual(obj$2.object.typ, $ifaceNil))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!(obj$2 === ptrType$18.nil) && !($interfaceIsEqual(obj$2.object.typ, $ifaceNil))) { */ case 4: + $r = check.collectMethods(obj$2); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 5: _i$1++; - $s = 4; continue; - case 5: - $r = def(NewTypeName(0, ptrType$1.nil, "any", new Interface.ptr(ptrType$5.nil, sliceType.nil, sliceType$2.nil, ptrType$6.nil, false, true, topTypeSet))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - obj = NewTypeName(0, ptrType$1.nil, "error", $ifaceNil); - $r = obj.object.setColor(1); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - typ = NewNamed(obj, $ifaceNil, sliceType.nil); - recv = NewVar(0, ptrType$1.nil, "", typ); - res = NewVar(0, ptrType$1.nil, "", (17 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 17])); - _r$1 = NewSignatureType(recv, sliceType$9.nil, sliceType$9.nil, ptrType$15.nil, NewTuple(new sliceType$10([res])), false); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - sig = _r$1; - err = NewFunc(0, ptrType$1.nil, "Error", sig); - ityp = new Interface.ptr(ptrType$5.nil, new sliceType([err]), sliceType$2.nil, ptrType$6.nil, false, true, ptrType$7.nil); - _r$2 = computeInterfaceTypeSet(ptrType$5.nil, 0, ityp); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - $r = typ.SetUnderlying(ityp); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = def(obj); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - obj$1 = NewTypeName(0, ptrType$1.nil, "comparable", $ifaceNil); - $r = obj$1.object.setColor(1); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - typ$1 = NewNamed(obj$1, $ifaceNil, sliceType.nil); - ityp$1 = new Interface.ptr(ptrType$5.nil, sliceType.nil, sliceType$2.nil, ptrType$6.nil, false, true, new _TypeSet.ptr(sliceType.nil, allTermlist, true)); - $r = typ$1.SetUnderlying(ityp$1); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = def(obj$1); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 2; continue; + case 3: + aliasList = sliceType$22.nil; + othersList = sliceType$7.nil; + _ref$2 = objList; + _i$2 = 0; + /* while (true) { */ case 7: + /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 8; continue; } + obj$3 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); + _tuple$1 = $assertType(obj$3, ptrType$18, true); + tname = _tuple$1[0]; + /* */ if (!(tname === ptrType$18.nil)) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!(tname === ptrType$18.nil)) { */ case 9: + /* */ if (new token.Pos((_entry$1 = $mapIndex(check.objMap,Object.keyFor(tname)), _entry$1 !== undefined ? _entry$1.v : ptrType$59.nil).tdecl.Assign).IsValid()) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (new token.Pos((_entry$1 = $mapIndex(check.objMap,Object.keyFor(tname)), _entry$1 !== undefined ? _entry$1.v : ptrType$59.nil).tdecl.Assign).IsValid()) { */ case 12: + aliasList = $append(aliasList, tname); + $s = 14; continue; + /* } else { */ case 13: + $r = check.objDecl(obj$3, ptrType$10.nil); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 14: + $s = 11; continue; + /* } else { */ case 10: + othersList = $append(othersList, obj$3); + /* } */ case 11: + _i$2++; + $s = 7; continue; + case 8: + _ref$3 = aliasList; + _i$3 = 0; + /* while (true) { */ case 16: + /* if (!(_i$3 < _ref$3.$length)) { break; } */ if(!(_i$3 < _ref$3.$length)) { $s = 17; continue; } + obj$4 = ((_i$3 < 0 || _i$3 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$3]); + $r = check.objDecl(obj$4, ptrType$10.nil); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$3++; + $s = 16; continue; + case 17: + _ref$4 = othersList; + _i$4 = 0; + /* while (true) { */ case 19: + /* if (!(_i$4 < _ref$4.$length)) { break; } */ if(!(_i$4 < _ref$4.$length)) { $s = 20; continue; } + obj$5 = ((_i$4 < 0 || _i$4 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$4]); + $r = check.objDecl(obj$5, ptrType$10.nil); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$4++; + $s = 19; continue; + case 20: + check.methods = false; $s = -1; return; - /* */ } return; } var $f = {$blk: defPredeclaredTypes$1, $c: true, $r, _i, _i$1, _r$1, _r$2, _ref, _ref$1, err, ityp, ityp$1, obj, obj$1, recv, res, sig, t, t$1, typ, typ$1, $s};return $f; + /* */ } return; } var $f = {$blk: packageObjects, $c: true, $r, _entry, _entry$1, _i, _i$1, _i$2, _i$3, _i$4, _key, _keys, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _size, _tuple, _tuple$1, aliasList, check, i, obj, obj$1, obj$2, obj$3, obj$4, obj$5, objList, othersList, tname, $s};return $f; }; - defPredeclaredConsts = function defPredeclaredConsts$1() { - var {_i, _ref, c, x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ref = predeclaredConsts; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < 3)) { break; } */ if(!(_i < 3)) { $s = 2; continue; } - c = $clone(((_i < 0 || _i >= _ref.length) ? ($throwRuntimeError("index out of range"), undefined) : _ref[_i]), structType$1); - $r = def(NewConst(0, ptrType$1.nil, c.name, (x = c.kind, ((x < 0 || x >= $pkg.Typ.$length) ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + x])), c.val)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 1; continue; - case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: defPredeclaredConsts$1, $c: true, $r, _i, _ref, c, x, $s};return $f; + inSourceOrder.prototype.Len = function Len$7() { + var a; + a = this; + return a.$length; }; - defPredeclaredNil = function defPredeclaredNil$1() { - var {$s, $r, $c} = $restore(this, {}); + $ptrType(inSourceOrder).prototype.Len = function(...$args) { return this.$get().Len(...$args); }; + inSourceOrder.prototype.Less = function Less$2(i, j) { + var {$24r, _r, _r$1, a, i, j, $s, $r, $c} = $restore(this, {i, j}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = def(new Nil.ptr($clone(new object.ptr(ptrType.nil, 0, ptrType$1.nil, "nil", (25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25]), 0, 1, 0), object))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: defPredeclaredNil$1, $c: true, $r, $s};return $f; + a = this; + _r = ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i]).order(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = ((j < 0 || j >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + j]).order(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r < _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: Less$2, $c: true, $r, $24r, _r, _r$1, a, i, j, $s};return $f; }; - defPredeclaredFuncs = function defPredeclaredFuncs$1() { - var {_i, _ref, i, id, $s, $r, $c} = $restore(this, {}); + $ptrType(inSourceOrder).prototype.Less = function(...$args) { return this.$get().Less(...$args); }; + inSourceOrder.prototype.Swap = function Swap$2(i, j) { + var _tmp, _tmp$1, a, i, j; + a = this; + _tmp = ((j < 0 || j >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + j]); + _tmp$1 = ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i]); + ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i] = _tmp); + ((j < 0 || j >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + j] = _tmp$1); + }; + $ptrType(inSourceOrder).prototype.Swap = function(...$args) { return this.$get().Swap(...$args); }; + $ptrType(Checker).prototype.unusedImports = function unusedImports() { + var {_i, _ref, check, obj, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ref = predeclaredFuncs; + check = this; + if (check.conf.IgnoreFuncBodies) { + $s = -1; return; + } + _ref = check.imports; _i = 0; /* while (true) { */ case 1: - /* if (!(_i < 26)) { break; } */ if(!(_i < 26)) { $s = 2; continue; } - i = _i; - id = ((i >> 0)); - if ((id === 24) || (id === 25)) { - _i++; - /* continue; */ $s = 1; continue; - } - $r = def(newBuiltin(id)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + obj = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + /* */ if (!obj.used && !(obj.object.name === "_")) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!obj.used && !(obj.object.name === "_")) { */ case 3: + $r = check.errorUnusedPkg(obj); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 4: _i++; $s = 1; continue; case 2: $s = -1; return; - /* */ } return; } var $f = {$blk: defPredeclaredFuncs$1, $c: true, $r, _i, _ref, i, id, $s};return $f; - }; - init = function init$3() { - var {_r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $pkg.Universe = NewScope(ptrType.nil, 0, 0, "universe"); - _r$1 = NewPackage("unsafe", "unsafe"); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $pkg.Unsafe = _r$1; - $pkg.Unsafe.complete = true; - $r = defPredeclaredTypes(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = defPredeclaredConsts(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = defPredeclaredNil(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = defPredeclaredFuncs(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$2 = $pkg.Universe.Lookup("iota"); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - universeIota = _r$2; - _r$3 = $pkg.Universe.Lookup("byte"); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$4 = _r$3.Type(); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - universeByte = _r$4; - _r$5 = $pkg.Universe.Lookup("rune"); /* */ $s = 9; case 9: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$6 = _r$5.Type(); /* */ $s = 10; case 10: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - universeRune = _r$6; - _r$7 = $pkg.Universe.Lookup("any"); /* */ $s = 11; case 11: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - universeAny = _r$7; - _r$8 = $pkg.Universe.Lookup("error"); /* */ $s = 12; case 12: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _r$9 = _r$8.Type(); /* */ $s = 13; case 13: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - universeError = _r$9; - _r$10 = $pkg.Universe.Lookup("comparable"); /* */ $s = 14; case 14: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - universeComparable = _r$10; - $s = -1; return; - /* */ } return; } var $f = {$blk: init$3, $c: true, $r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, $s};return $f; + /* */ } return; } var $f = {$blk: unusedImports, $c: true, $r, _i, _ref, check, obj, $s};return $f; }; - def = function def$1(obj) { - var {_r$1, _r$2, _r$3, _r$4, _r$5, _ref, _tuple, name, obj, obj$1, obj$2, obj$3, scope, typ, $s, $r, $c} = $restore(this, {obj}); + $ptrType(Checker).prototype.errorUnusedPkg = function errorUnusedPkg(obj) { + var {check, elem, i, obj, path, $s, $r, $c} = $restore(this, {obj}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = obj.color(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $r = assert(_r$1 === 1); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$2 = obj.Name(); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - name = _r$2; - if (strings.Contains(name, " ")) { - $s = -1; return; - } - _r$3 = obj.Type(); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple = $assertType(_r$3, ptrType$9, true); - typ = _tuple[0]; - if (!(typ === ptrType$9.nil)) { - typ.obj = $assertType(obj, ptrType$17); + check = this; + path = obj.imported.path; + elem = path; + i = strings.LastIndex(elem, "/"); + if (i >= 0) { + elem = $substring(elem, (i + 1 >> 0)); } - scope = $pkg.Universe; - _r$4 = obj.Exported(); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if (_r$4) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (_r$4) { */ case 5: - scope = $pkg.Unsafe.scope; - _ref = obj; - if ($assertType(_ref, ptrType$17, true)[1]) { - obj$1 = _ref.$val; - obj$1.object.pkg = $pkg.Unsafe; - } else if ($assertType(_ref, ptrType$18, true)[1]) { - obj$2 = _ref.$val; - obj$2.object.pkg = $pkg.Unsafe; - } else { - obj$3 = _ref; - unreachable(); - } - /* } */ case 6: - _r$5 = scope.Insert(obj); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* */ if (!($interfaceIsEqual(_r$5, $ifaceNil))) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (!($interfaceIsEqual(_r$5, $ifaceNil))) { */ case 8: - $panic(new $String("double declaration of predeclared identifier")); - /* } */ case 9: + /* */ if (obj.object.name === "" || obj.object.name === "." || obj.object.name === elem) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (obj.object.name === "" || obj.object.name === "." || obj.object.name === elem) { */ case 1: + $r = check.softErrorf(obj, 8, "%q imported and not used", new sliceType$5([new $String(path)])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 3; continue; + /* } else { */ case 2: + $r = check.softErrorf(obj, 8, "%q imported as %s and not used", new sliceType$5([new $String(path), new $String(obj.object.name)])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 3: $s = -1; return; - /* */ } return; } var $f = {$blk: def$1, $c: true, $r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _tuple, name, obj, obj$1, obj$2, obj$3, scope, typ, $s};return $f; + /* */ } return; } var $f = {$blk: errorUnusedPkg, $c: true, $r, check, elem, i, obj, path, $s};return $f; }; - NewUnion = function NewUnion$1(terms) { - var terms; - if (terms.$length === 0) { - $panic(new $String("empty union")); + dir = function dir$1(path) { + var i, path; + i = strings.LastIndexAny(path, "/\\"); + if (i > 0) { + return $substring(path, 0, i); } - return new Union.ptr(terms); - }; - $pkg.NewUnion = NewUnion; - $ptrType(Union).prototype.Len = function Len() { - var u; - u = this; - return u.terms.$length; + return "."; }; - $ptrType(Union).prototype.Term = function Term$1(i) { - var i, u, x; - u = this; - return (x = u.terms, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + isBoolean = function isBoolean$1(t) { + var {$24r, _r, t, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = isBasic(t, 1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: isBoolean$1, $c: true, $r, $24r, _r, t, $s};return $f; }; - $ptrType(Union).prototype.Underlying = function Underlying() { - var u; - u = this; - return u; + isInteger = function isInteger$1(t) { + var {$24r, _r, t, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = isBasic(t, 2); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: isInteger$1, $c: true, $r, $24r, _r, t, $s};return $f; }; - $ptrType(Union).prototype.String = function String() { - var {$24r, _r$1, u, $s, $r, $c} = $restore(this, {}); + isUnsigned = function isUnsigned$1(t) { + var {$24r, _r, t, $s, $r, $c} = $restore(this, {t}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - u = this; - _r$1 = TypeString(u, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; + _r = isBasic(t, 4); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String, $c: true, $r, $24r, _r$1, u, $s};return $f; + /* */ } return; } var $f = {$blk: isUnsigned$1, $c: true, $r, $24r, _r, t, $s};return $f; }; - NewTerm = function NewTerm$1(tilde, typ) { - var tilde, typ; - return new Term.ptr(tilde, typ); + isFloat = function isFloat$1(t) { + var {$24r, _r, t, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = isBasic(t, 8); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: isFloat$1, $c: true, $r, $24r, _r, t, $s};return $f; }; - $pkg.NewTerm = NewTerm; - $ptrType(Term).prototype.Tilde = function Tilde() { - var t; - t = this; - return t.tilde; + isComplex = function isComplex$1(t) { + var {$24r, _r, t, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = isBasic(t, 16); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: isComplex$1, $c: true, $r, $24r, _r, t, $s};return $f; }; - $ptrType(Term).prototype.Type = function Type$1() { - var t; - t = this; - return t.typ; + isNumeric = function isNumeric$1(t) { + var {$24r, _r, t, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = isBasic(t, 26); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: isNumeric$1, $c: true, $r, $24r, _r, t, $s};return $f; }; - $ptrType(Term).prototype.String = function String$1() { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); + isString = function isString$1(t) { + var {$24r, _r, t, $s, $r, $c} = $restore(this, {t}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = ($pointerOfStructConversion(t, ptrType$4)).String(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; + _r = isBasic(t, 32); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$1, $c: true, $r, $24r, _r$1, t, $s};return $f; + /* */ } return; } var $f = {$blk: isString$1, $c: true, $r, $24r, _r, t, $s};return $f; }; - parseUnion = function parseUnion$1(check, uexpr) { - var {_i, _r$1, _ref, _tuple, blist, check, i, term$1, terms, tlist, u, uexpr, x, x$1, $s, $r, $c} = $restore(this, {check, uexpr}); + isIntegerOrFloat = function isIntegerOrFloat$1(t) { + var {$24r, _r, t, $s, $r, $c} = $restore(this, {t}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = [check]; - terms = [terms]; - tlist = [tlist]; - _tuple = flattenUnion(sliceType$11.nil, uexpr); - blist = _tuple[0]; - tlist[0] = _tuple[1]; - $r = assert(blist.$length === (tlist[0].$length - 1 >> 0)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - terms[0] = sliceType$12.nil; - u = $ifaceNil; - _ref = tlist[0]; - _i = 0; - /* while (true) { */ case 2: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } - i = _i; - x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$1 = parseTilde(check[0], x); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - term$1 = _r$1; - if ((tlist[0].$length === 1) && !term$1.tilde) { - $s = -1; return term$1.typ; - } - /* */ if (terms[0].$length >= 100) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (terms[0].$length >= 100) { */ case 5: - /* */ if (!($interfaceIsEqual(u, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (!($interfaceIsEqual(u, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { */ case 8: - $r = check[0].errorf(x, 141, "cannot handle more than %d union terms (implementation limitation)", new sliceType$6([new $Int(100)])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - u = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - /* } */ case 9: - $s = 7; continue; - /* } else { */ case 6: - terms[0] = $append(terms[0], term$1); - u = new Union.ptr(terms[0]); - /* } */ case 7: - /* */ if (i > 0) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (i > 0) { */ case 11: - $r = check[0].recordTypeAndValue((x$1 = i - 1 >> 0, ((x$1 < 0 || x$1 >= blist.$length) ? ($throwRuntimeError("index out of range"), undefined) : blist.$array[blist.$offset + x$1])), 3, u, $ifaceNil); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 12: - _i++; - $s = 2; continue; - case 3: - if ($interfaceIsEqual(u, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { - $s = -1; return u; - } - check[0].later((function(check, terms, tlist) { return function parseUnion·func1() { - var {_i$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref$1, _tuple$1, f, i$1, j, t, tset, u$1, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ref$1 = terms[0]; - _i$1 = 0; - /* while (true) { */ case 1: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 2; continue; } - i$1 = _i$1; - t = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - if ($interfaceIsEqual(t.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { - _i$1++; - /* continue; */ $s = 1; continue; - } - _r$2 = under(t.typ); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - u$1 = _r$2; - _tuple$1 = $assertType(u$1, ptrType$13, true); - f = _tuple$1[0]; - /* */ if (t.tilde) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (t.tilde) { */ case 4: - /* */ if (!(f === ptrType$13.nil)) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (!(f === ptrType$13.nil)) { */ case 6: - $r = check[0].errorf(((i$1 < 0 || i$1 >= tlist[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : tlist[0].$array[tlist[0].$offset + i$1]), 141, "invalid use of ~ (%s is an interface)", new sliceType$6([t.typ])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$1++; - /* continue; */ $s = 1; continue; - /* } */ case 7: - _r$3 = Identical(u$1, t.typ); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (!_r$3) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (!_r$3) { */ case 9: - $r = check[0].errorf(((i$1 < 0 || i$1 >= tlist[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : tlist[0].$array[tlist[0].$offset + i$1]), 141, "invalid use of ~ (underlying type of %s is %s)", new sliceType$6([t.typ, u$1])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$1++; - /* continue; */ $s = 1; continue; - /* } */ case 10: - /* } */ case 5: - /* */ if (!(f === ptrType$13.nil)) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (!(f === ptrType$13.nil)) { */ case 13: - _r$4 = f.typeSet(); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - tset = _r$4; - /* */ if (!((tset.NumMethods() === 0))) { $s = 17; continue; } - _r$5 = universeComparable.Type(); /* */ $s = 21; case 21: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* */ if ($interfaceIsEqual(t.typ, _r$5)) { $s = 18; continue; } - /* */ if (tset.comparable) { $s = 19; continue; } - /* */ $s = 20; continue; - /* if (!((tset.NumMethods() === 0))) { */ case 17: - $r = check[0].errorf(((i$1 < 0 || i$1 >= tlist[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : tlist[0].$array[tlist[0].$offset + i$1]), 141, "cannot use %s in union (%s contains methods)", new sliceType$6([t, t])); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 20; continue; - /* } else if ($interfaceIsEqual(t.typ, _r$5)) { */ case 18: - $r = check[0].error(((i$1 < 0 || i$1 >= tlist[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : tlist[0].$array[tlist[0].$offset + i$1]), 141, "cannot use comparable in union"); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 20; continue; - /* } else if (tset.comparable) { */ case 19: - $r = check[0].errorf(((i$1 < 0 || i$1 >= tlist[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : tlist[0].$array[tlist[0].$offset + i$1]), 141, "cannot use %s in union (%s embeds comparable)", new sliceType$6([t, t])); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 20: - case 16: - _i$1++; - /* continue; */ $s = 1; continue; - /* } */ case 14: - _r$6 = overlappingTerm($subslice(terms[0], 0, i$1), t); /* */ $s = 25; case 25: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - j = _r$6; - /* */ if (j >= 0) { $s = 26; continue; } - /* */ $s = 27; continue; - /* if (j >= 0) { */ case 26: - $r = check[0].softErrorf(((i$1 < 0 || i$1 >= tlist[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : tlist[0].$array[tlist[0].$offset + i$1]), 141, "overlapping terms %s and %s", new sliceType$6([t, ((j < 0 || j >= terms[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : terms[0].$array[terms[0].$offset + j])])); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 27: - _i$1++; - $s = 1; continue; - case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: parseUnion·func1, $c: true, $r, _i$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref$1, _tuple$1, f, i$1, j, t, tset, u$1, $s};return $f; - }; })(check, terms, tlist)).describef(uexpr, "check term validity %s", new sliceType$6([uexpr])); - $s = -1; return u; - /* */ } return; } var $f = {$blk: parseUnion$1, $c: true, $r, _i, _r$1, _ref, _tuple, blist, check, i, term$1, terms, tlist, u, uexpr, x, x$1, $s};return $f; + _r = isBasic(t, 10); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: isIntegerOrFloat$1, $c: true, $r, $24r, _r, t, $s};return $f; }; - parseTilde = function parseTilde$1(check, tx) { - var {_r$1, _tuple, check, op, term$1, tilde, tx, typ, x, $s, $r, $c} = $restore(this, {check, tx}); + isConstType = function isConstType$1(t) { + var {$24r, _r, t, $s, $r, $c} = $restore(this, {t}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = tx; - tilde = false; - _tuple = $assertType(x, ptrType$20, true); - op = _tuple[0]; - if (!(op === ptrType$20.nil) && (op.Op === 88)) { - x = op.X; - tilde = true; - } - _r$1 = check.typ(x); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - typ = _r$1; - /* */ if (isTypeParam(typ)) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (isTypeParam(typ)) { */ case 2: - /* */ if (tilde) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (tilde) { */ case 4: - $r = check.errorf(x, 144, "type in term %s cannot be a type parameter", new sliceType$6([tx])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 6; continue; - /* } else { */ case 5: - $r = check.error(x, 144, "term cannot be a type parameter"); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 6: - typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - /* } */ case 3: - term$1 = NewTerm(tilde, typ); - /* */ if (tilde) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (tilde) { */ case 9: - $r = check.recordTypeAndValue(tx, 3, new Union.ptr(new sliceType$12([term$1])), $ifaceNil); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 10: - $s = -1; return term$1; - /* */ } return; } var $f = {$blk: parseTilde$1, $c: true, $r, _r$1, _tuple, check, op, term$1, tilde, tx, typ, x, $s};return $f; + _r = isBasic(t, 59); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: isConstType$1, $c: true, $r, $24r, _r, t, $s};return $f; }; - overlappingTerm = function overlappingTerm$1(terms, y) { - var {_i, _r$1, _r$2, _r$3, _ref, i, terms, x, y, $s, $r, $c} = $restore(this, {terms, y}); + isBasic = function isBasic$1(t, info) { + var {_r, _tuple, info, t, u, $s, $r, $c} = $restore(this, {t, info}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = IsInterface(y.typ); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $r = assert(!_r$1); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _ref = terms; - _i = 0; - /* while (true) { */ case 3: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } - i = _i; - x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$2 = IsInterface(x.typ); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (_r$2) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (_r$2) { */ case 5: - _i++; - /* continue; */ $s = 3; continue; - /* } */ case 6: - if (false) { - if (x === ptrType$19.nil || $interfaceIsEqual(x.typ, $ifaceNil) || y === ptrType$19.nil || $interfaceIsEqual(y.typ, $ifaceNil)) { - $panic(new $String("empty or top union term")); - } - } - _r$3 = ($pointerOfStructConversion(x, ptrType$4)).disjoint(($pointerOfStructConversion(y, ptrType$4))); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (!_r$3) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (!_r$3) { */ case 8: - $s = -1; return i; - /* } */ case 9: - _i++; - $s = 3; continue; - case 4: - $s = -1; return -1; - /* */ } return; } var $f = {$blk: overlappingTerm$1, $c: true, $r, _i, _r$1, _r$2, _r$3, _ref, i, terms, x, y, $s};return $f; + _r = under(t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = $assertType(_r, ptrType$4, true); + u = _tuple[0]; + $s = -1; return !(u === ptrType$4.nil) && !(((u.info & info) === 0)); + /* */ } return; } var $f = {$blk: isBasic$1, $c: true, $r, _r, _tuple, info, t, u, $s};return $f; }; - flattenUnion = function flattenUnion$1(list, x) { - var _tmp, _tmp$1, _tuple, _tuple$1, blist, list, o, tlist, x; - blist = sliceType$11.nil; - tlist = sliceType$11.nil; - _tuple = $assertType(x, ptrType$21, true); - o = _tuple[0]; - if (!(o === ptrType$21.nil) && (o.Op === 18)) { - _tuple$1 = flattenUnion(list, o.X); - blist = _tuple$1[0]; - tlist = _tuple$1[1]; - blist = $append(blist, o); - x = o.Y; - } - _tmp = blist; - _tmp$1 = $append(tlist, x); - blist = _tmp; - tlist = _tmp$1; - return [blist, tlist]; + allBoolean = function allBoolean$1(t) { + var {$24r, _r, t, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = allBasic(t, 1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: allBoolean$1, $c: true, $r, $24r, _r, t, $s};return $f; }; - newUnifier = function newUnifier$1(exact) { - var exact, u; - u = new unifier.ptr(exact, new tparamsList.ptr(ptrType$22.nil, sliceType$9.nil, sliceType$13.nil), new tparamsList.ptr(ptrType$22.nil, sliceType$9.nil, sliceType$13.nil), sliceType$2.nil, 0); - u.x.unifier = u; - u.y.unifier = u; - return u; + allInteger = function allInteger$1(t) { + var {$24r, _r, t, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = allBasic(t, 2); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: allInteger$1, $c: true, $r, $24r, _r, t, $s};return $f; }; - $ptrType(unifier).prototype.unify = function unify(x, y) { - var {$24r, _r$1, u, x, y, $s, $r, $c} = $restore(this, {x, y}); + allUnsigned = function allUnsigned$1(t) { + var {$24r, _r, t, $s, $r, $c} = $restore(this, {t}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - u = this; - _r$1 = u.nify(x, y, ptrType$23.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; + _r = allBasic(t, 4); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: unify, $c: true, $r, $24r, _r$1, u, x, y, $s};return $f; + /* */ } return; } var $f = {$blk: allUnsigned$1, $c: true, $r, $24r, _r, t, $s};return $f; }; - $ptrType(unifier).prototype.tracef = function tracef(format, args) { - var {_r$1, _r$2, args, format, u, $s, $r, $c} = $restore(this, {format, args}); + allNumeric = function allNumeric$1(t) { + var {$24r, _r, t, $s, $r, $c} = $restore(this, {t}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - u = this; - _r$1 = sprintf(ptrType$24.nil, $throwNilPointerError, true, format, args); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = fmt.Println(new sliceType$6([new $String(strings.Repeat(". ", u.depth) + _r$1)])); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - $s = -1; return; - /* */ } return; } var $f = {$blk: tracef, $c: true, $r, _r$1, _r$2, args, format, u, $s};return $f; + _r = allBasic(t, 26); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: allNumeric$1, $c: true, $r, $24r, _r, t, $s};return $f; }; - $ptrType(tparamsList).prototype.String = function String$2() { - var {_i, _ref, buf, d, i, tpar, w, $s, $r, $c} = $restore(this, {}); + allString = function allString$1(t) { + var {$24r, _r, t, $s, $r, $c} = $restore(this, {t}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - buf = [buf]; - d = this; - buf[0] = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); - w = newTypeWriter(buf[0], $throwNilPointerError); - w.byte$(91); - _ref = d.tparams; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - tpar = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (i > 0) { - w.string(", "); - } - $r = w.typ(tpar); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - w.string(": "); - $r = w.typ(d.at(i)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 1; continue; - case 2: - w.byte$(93); - $s = -1; return buf[0].String(); - /* */ } return; } var $f = {$blk: String$2, $c: true, $r, _i, _ref, buf, d, i, tpar, w, $s};return $f; + _r = allBasic(t, 32); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: allString$1, $c: true, $r, $24r, _r, t, $s};return $f; + }; + allOrdered = function allOrdered$1(t) { + var {$24r, _r, t, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = allBasic(t, 42); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: allOrdered$1, $c: true, $r, $24r, _r, t, $s};return $f; }; - $ptrType(tparamsList).prototype.init = function init$4(tparams) { - var {_i, _ref, d, i, tpar, tparams, $s, $r, $c} = $restore(this, {tparams}); + allNumericOrString = function allNumericOrString$1(t) { + var {$24r, _r, t, $s, $r, $c} = $restore(this, {t}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - d = this; - if (tparams.$length === 0) { - $s = -1; return; - } - /* */ if (false) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (false) { */ case 1: - _ref = tparams; - _i = 0; - /* while (true) { */ case 3: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } - i = _i; - tpar = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - $r = assert(i === tpar.index); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 3; continue; - case 4: - /* } */ case 2: - d.tparams = tparams; - d.indices = $makeSlice(sliceType$13, tparams.$length); - $s = -1; return; - /* */ } return; } var $f = {$blk: init$4, $c: true, $r, _i, _ref, d, i, tpar, tparams, $s};return $f; + _r = allBasic(t, 58); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: allNumericOrString$1, $c: true, $r, $24r, _r, t, $s};return $f; }; - $ptrType(unifier).prototype.join = function join(i, j) { - var {i, j, ti, tj, u, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r, $c} = $restore(this, {i, j}); + allBasic = function allBasic$1(t, info) { + var {$24r, $24r$1, _r, _r$1, _tuple, info, t, tpar, $s, $r, $c} = $restore(this, {t, info}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - u = this; - /* */ if (false) { $s = 1; continue; } + info = [info]; + _tuple = $assertType(t, ptrType$15, true); + tpar = _tuple[0]; + /* */ if (!(tpar === ptrType$15.nil)) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (false) { */ case 1: - $r = u.tracef("%s \xE2\x87\x84 %s", new sliceType$6([(x = u.x.tparams, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])), (x$1 = u.y.tparams, ((j < 0 || j >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + j]))])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* if (!(tpar === ptrType$15.nil)) { */ case 1: + _r = tpar.is((function(info) { return function allBasic·func1(t$1) { + var {$24r, _r, _v, t$1, $s, $r, $c} = $restore(this, {t$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (!(!(t$1 === ptrType$5.nil))) { _v = false; $s = 1; continue s; } + _r = isBasic(t$1.typ, info[0]); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r; case 1: + $24r = _v; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: allBasic·func1, $c: true, $r, $24r, _r, _v, t$1, $s};return $f; + }; })(info)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; /* } */ case 2: - ti = (x$2 = u.x.indices, ((i < 0 || i >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i])); - tj = (x$3 = u.y.indices, ((j < 0 || j >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + j])); - /* */ if ((ti === 0) && (tj === 0)) { $s = 5; continue; } - /* */ if ((ti === 0)) { $s = 6; continue; } - /* */ if ((tj === 0)) { $s = 7; continue; } - /* */ if ((ti === tj)) { $s = 8; continue; } - /* */ if (ti > 0 && tj > 0) { $s = 9; continue; } - /* */ if (ti > 0) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if ((ti === 0) && (tj === 0)) { */ case 5: - u.types = $append(u.types, $ifaceNil); - (x$4 = u.x.indices, ((i < 0 || i >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + i] = -u.types.$length)); - (x$5 = u.y.indices, ((j < 0 || j >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + j] = -u.types.$length)); - $s = 12; continue; - /* } else if ((ti === 0)) { */ case 6: - (x$6 = u.x.indices, ((i < 0 || i >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + i] = tj)); - $s = 12; continue; - /* } else if ((tj === 0)) { */ case 7: - (x$7 = u.y.indices, ((j < 0 || j >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + j] = ti)); - $s = 12; continue; - /* } else if ((ti === tj)) { */ case 8: - /* break; */ $s = 4; continue; - $s = 12; continue; - /* } else if (ti > 0 && tj > 0) { */ case 9: - $s = -1; return false; - /* } else if (ti > 0) { */ case 10: - $r = u.y.setIndex(j, ti); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 12; continue; - /* } else { */ case 11: - $r = u.x.setIndex(i, tj); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 12: - case 4: - $s = -1; return true; - /* */ } return; } var $f = {$blk: join, $c: true, $r, i, j, ti, tj, u, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s};return $f; + _r$1 = isBasic(t, info[0]); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r$1 = _r$1; + $s = 6; case 6: return $24r$1; + /* */ } return; } var $f = {$blk: allBasic$1, $c: true, $r, $24r, $24r$1, _r, _r$1, _tuple, info, t, tpar, $s};return $f; }; - $ptrType(tparamsList).prototype.index = function index(typ) { - var _tuple, d, ok, tpar, typ; - d = this; - _tuple = $assertType(typ, ptrType$14, true); - tpar = _tuple[0]; - ok = _tuple[1]; - if (ok) { - return tparamIndex(d.tparams, tpar); + hasName = function hasName$1(t) { + var _ref, t; + _ref = t; + if ($assertType(_ref, ptrType$4, true)[1] || $assertType(_ref, ptrType$10, true)[1] || $assertType(_ref, ptrType$15, true)[1]) { + return true; } - return -1; + return false; }; - tparamIndex = function tparamIndex$1(list, tpar) { - var i, list, tpar; - i = tpar.index; - if (0 <= i && i < list.$length && ((i < 0 || i >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + i]) === tpar) { - return i; + isTypeLit = function isTypeLit$1(t) { + var _ref, t; + _ref = t; + if ($assertType(_ref, ptrType$10, true)[1] || $assertType(_ref, ptrType$15, true)[1]) { + return false; } - return -1; + return true; }; - $ptrType(tparamsList).prototype.setIndex = function setIndex(i, tj) { - var {_i, _ref, d, i, k, ti, tj, tk, x, x$1, $s, $r, $c} = $restore(this, {i, tj}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - d = this; - ti = (x = d.indices, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - $r = assert(!((ti === 0)) && !((tj === 0))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _ref = d.indices; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - k = _i; - tk = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (tk === ti) { - (x$1 = d.indices, ((k < 0 || k >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + k] = tj)); - } - _i++; - } - $s = -1; return; - /* */ } return; } var $f = {$blk: setIndex, $c: true, $r, _i, _ref, d, i, k, ti, tj, tk, x, x$1, $s};return $f; + isTyped = function isTyped$1(t) { + var _tuple, b, t; + _tuple = $assertType(t, ptrType$4, true); + b = _tuple[0]; + return b === ptrType$4.nil || ((b.info & 64) === 0); }; - $ptrType(tparamsList).prototype.at = function at(i) { - var d, i, ti, x, x$1, x$2; - d = this; - ti = (x = d.indices, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - if (ti > 0) { - return (x$1 = d.unifier.types, x$2 = ti - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])); - } - return $ifaceNil; + isUntyped = function isUntyped$1(t) { + var t; + return !isTyped(t); }; - $ptrType(tparamsList).prototype.set = function set(i, typ) { - var {d, i, ti, typ, u, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {i, typ}); + IsInterface = function IsInterface$1(t) { + var {_r, _tuple, ok, t, $s, $r, $c} = $restore(this, {t}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - d = this; - $r = assert(!($interfaceIsEqual(typ, $ifaceNil))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - u = d.unifier; - /* */ if (false) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (false) { */ case 2: - $r = u.tracef("%s \xE2\x9E\x9E %s", new sliceType$6([(x = d.tparams, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])), typ])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 3: - ti = (x$1 = d.indices, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])); - /* */ if (ti < 0) { $s = 6; continue; } - /* */ if ((ti === 0)) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (ti < 0) { */ case 6: - (x$2 = u.types, x$3 = -ti - 1 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3] = typ)); - $r = d.setIndex(i, -ti); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 9; continue; - /* } else if ((ti === 0)) { */ case 7: - u.types = $append(u.types, typ); - (x$4 = d.indices, ((i < 0 || i >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + i] = u.types.$length)); - $s = 9; continue; - /* } else { */ case 8: - $panic(new $String("type already set")); - /* } */ case 9: - case 5: - $s = -1; return; - /* */ } return; } var $f = {$blk: set, $c: true, $r, d, i, ti, typ, u, x, x$1, x$2, x$3, x$4, $s};return $f; - }; - $ptrType(tparamsList).prototype.unknowns = function unknowns() { - var _i, _ref, d, n, ti; - d = this; - n = 0; - _ref = d.indices; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - ti = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (ti <= 0) { - n = n + (1) >> 0; - } - _i++; - } - return n; - }; - $ptrType(tparamsList).prototype.types = function types() { - var _i, _ref, d, i, index$1, list, t; - list = sliceType$2.nil; - index$1 = 0; - d = this; - list = $makeSlice(sliceType$2, d.tparams.$length); - index$1 = -1; - _ref = d.tparams; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - t = d.at(i); - ((i < 0 || i >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + i] = t); - if (index$1 < 0 && $interfaceIsEqual(t, $ifaceNil)) { - index$1 = i; - } - _i++; - } - return [list, index$1]; + _r = under(t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = $assertType(_r, ptrType$14, true); + ok = _tuple[1]; + $s = -1; return ok; + /* */ } return; } var $f = {$blk: IsInterface$1, $c: true, $r, _r, _tuple, ok, t, $s};return $f; }; - $ptrType(unifier).prototype.nifyEq = function nifyEq(x, y, p) { - var {$24r, _r$1, _v, p, u, x, y, $s, $r, $c} = $restore(this, {x, y, p}); + $pkg.IsInterface = IsInterface; + isNonTypeParamInterface = function isNonTypeParamInterface$1(t) { + var {$24r, _r, _v, t, $s, $r, $c} = $restore(this, {t}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - u = this; - if ($interfaceIsEqual(x, y)) { _v = true; $s = 1; continue s; } - _r$1 = u.nify(x, y, p); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = _r$1; case 1: + if (!(!isTypeParam(t))) { _v = false; $s = 1; continue s; } + _r = IsInterface(t); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r; case 1: $24r = _v; $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: nifyEq, $c: true, $r, $24r, _r$1, _v, p, u, x, y, $s};return $f; + /* */ } return; } var $f = {$blk: isNonTypeParamInterface$1, $c: true, $r, $24r, _r, _v, t, $s};return $f; }; - $ptrType(unifier).prototype.nify = function nify(x, y, p) { - var {$24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$13, $24r$14, $24r$15, $24r$16, $24r$17, $24r$18, $24r$19, $24r$2, $24r$20, $24r$21, $24r$22, $24r$23, $24r$24, $24r$25, $24r$26, $24r$27, $24r$28, $24r$29, $24r$3, $24r$30, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _arg, _arg$1, _arg$2, _i, _i$1, _i$2, _i$3, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, _v$2, _v$3, _v$4, _v$5, _v$6, a, b, cx, cy, f, f$1, g, g$1, i, i$1, i$2, i$3, i$4, j, nx, ny, ok, ok$1, ok$10, ok$2, ok$3, ok$4, ok$5, ok$6, ok$7, ok$8, ok$9, p, q, result, tx, ty, u, v, w, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9, xargs, xset, y, y$1, y$10, y$11, y$2, y$3, y$4, y$5, y$6, y$7, y$8, y$9, yargs, yset, $s, $deferred, $r, $c} = $restore(this, {x, y, p}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - result = [result]; - u = [u]; - x = [x]; - y = [y]; - result[0] = false; - u[0] = this; - /* */ if (false) { $s = 1; continue; } + isTypeParam = function isTypeParam$1(t) { + var _tuple, ok, t; + _tuple = $assertType(t, ptrType$15, true); + ok = _tuple[1]; + return ok; + }; + hasEmptyTypeset = function hasEmptyTypeset$1(t) { + var {_r, _tuple, _tuple$1, iface$1, t, tpar, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _tuple = $assertType(t, ptrType$15, true); + tpar = _tuple[0]; + /* */ if (!(tpar === ptrType$15.nil) && !($interfaceIsEqual(tpar.bound, $ifaceNil))) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (false) { */ case 1: - $r = u[0].tracef("%s \xE2\x89\xA1 %s", new sliceType$6([x[0], y[0]])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* if (!(tpar === ptrType$15.nil) && !($interfaceIsEqual(tpar.bound, $ifaceNil))) { */ case 1: + _r = safeUnderlying(tpar.bound); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple$1 = $assertType(_r, ptrType$14, true); + iface$1 = _tuple$1[0]; + $s = -1; return !(iface$1 === ptrType$14.nil) && !(iface$1.tset === ptrType$8.nil) && iface$1.tset.IsEmpty(); /* } */ case 2: - /* */ if (u[0].depth >= 50) { $s = 4; continue; } + $s = -1; return false; + /* */ } return; } var $f = {$blk: hasEmptyTypeset$1, $c: true, $r, _r, _tuple, _tuple$1, iface$1, t, tpar, $s};return $f; + }; + isGeneric = function isGeneric$1(t) { + var {$24r, _r, _r$1, _tuple, _v, named, t, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _tuple = $assertType(t, ptrType$10, true); + named = _tuple[0]; + if (!(!(named === ptrType$10.nil) && !(named.obj === ptrType$18.nil) && named.inst === ptrType$53.nil)) { _v = false; $s = 1; continue s; } + _r = named.TypeParams(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = _r.Len(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = _r$1 > 0; case 1: + $24r = _v; + $s = 4; case 4: return $24r; + /* */ } return; } var $f = {$blk: isGeneric$1, $c: true, $r, $24r, _r, _r$1, _tuple, _v, named, t, $s};return $f; + }; + Comparable = function Comparable$1(T) { + var {$24r, T, _r, $s, $r, $c} = $restore(this, {T}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = comparable(T, true, false, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Comparable$1, $c: true, $r, $24r, T, _r, $s};return $f; + }; + $pkg.Comparable = Comparable; + comparable = function comparable$1(T, dynamic, seen, reportf) { + var {T, _entry, _i, _key, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, _v, dynamic, f, reportf, seen, t, t$1, t$2, t$3, t$4, $s, $r, $c} = $restore(this, {T, dynamic, seen, reportf}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if ((_entry = $mapIndex(seen,Type.keyFor(T)), _entry !== undefined ? _entry.v : false)) { + $s = -1; return true; + } + if (seen === false) { + seen = new $global.Map(); + } + _key = T; (seen || $throwRuntimeError("assignment to entry in nil map")).set(Type.keyFor(_key), { k: _key, v: true }); + _r = under(T); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _ref = _r; + /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$28, true)[1] || $assertType(_ref, ptrType$26, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$12, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if ($assertType(_ref, ptrType$4, true)[1]) { */ case 2: + t = _ref.$val; + $s = -1; return !((t.kind === 25)); + /* } else if ($assertType(_ref, ptrType$28, true)[1] || $assertType(_ref, ptrType$26, true)[1]) { */ case 3: + t$1 = _ref; + $s = -1; return true; + /* } else if ($assertType(_ref, ptrType$12, true)[1]) { */ case 4: + t$2 = _ref.$val; + _ref$1 = t$2.fields; + _i = 0; + /* while (true) { */ case 8: + /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 9; continue; } + f = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + _r$1 = comparable(f.object.typ, dynamic, seen, $throwNilPointerError); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (!_r$1) { */ case 10: + /* */ if (!(reportf === $throwNilPointerError)) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (!(reportf === $throwNilPointerError)) { */ case 13: + $r = reportf("struct containing %s cannot be compared", new sliceType$5([f.object.typ])); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 14: + $s = -1; return false; + /* } */ case 11: + _i++; + $s = 8; continue; + case 9: + $s = -1; return true; + /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 5: + t$3 = _ref.$val; + _r$2 = comparable(t$3.elem, dynamic, seen, $throwNilPointerError); /* */ $s = 18; case 18: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (!_r$2) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (!_r$2) { */ case 16: + /* */ if (!(reportf === $throwNilPointerError)) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (!(reportf === $throwNilPointerError)) { */ case 19: + $r = reportf("%s cannot be compared", new sliceType$5([t$3])); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 20: + $s = -1; return false; + /* } */ case 17: + $s = -1; return true; + /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 6: + t$4 = _ref.$val; + if (dynamic && !isTypeParam(T)) { _v = true; $s = 24; continue s; } + _r$3 = t$4.typeSet(); /* */ $s = 25; case 25: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$4 = _r$3.IsComparable(seen); /* */ $s = 26; case 26: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _v = _r$4; case 24: + /* */ if (_v) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (_v) { */ case 22: + $s = -1; return true; + /* } */ case 23: + /* */ if (!(reportf === $throwNilPointerError)) { $s = 27; continue; } + /* */ $s = 28; continue; + /* if (!(reportf === $throwNilPointerError)) { */ case 27: + _r$5 = t$4.typeSet(); /* */ $s = 32; case 32: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$6 = _r$5.IsEmpty(); /* */ $s = 33; case 33: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + /* */ if (_r$6) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if (_r$6) { */ case 29: + $r = reportf("empty type set", sliceType$5.nil); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 31; continue; + /* } else { */ case 30: + $r = reportf("incomparable types in type set", sliceType$5.nil); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 31: + /* } */ case 28: + /* } */ case 7: + $s = -1; return false; + /* */ } return; } var $f = {$blk: comparable$1, $c: true, $r, T, _entry, _i, _key, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, _v, dynamic, f, reportf, seen, t, t$1, t$2, t$3, t$4, $s};return $f; + }; + hasNil = function hasNil$1(t) { + var {$24r, _r, _r$1, _r$2, _ref, _v, t, u, u$1, u$2, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = under(t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _ref = _r; + /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$27, true)[1] || $assertType(_ref, ptrType$28, true)[1] || $assertType(_ref, ptrType$29, true)[1] || $assertType(_ref, ptrType$30, true)[1] || $assertType(_ref, ptrType$26, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 4; continue; } /* */ $s = 5; continue; - /* if (u[0].depth >= 50) { */ case 4: - /* */ if (false) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (false) { */ case 6: - $r = u[0].tracef("depth %d >= %d", new sliceType$6([new $Int(u[0].depth), new $Int(50)])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 7: - if (true) { - $panic(new $String("unification reached recursion depth limit")); - } - result[0] = false; - $s = -1; return result[0]; + /* if ($assertType(_ref, ptrType$4, true)[1]) { */ case 2: + u = _ref.$val; + $s = -1; return u.kind === 18; + /* } else if ($assertType(_ref, ptrType$27, true)[1] || $assertType(_ref, ptrType$28, true)[1] || $assertType(_ref, ptrType$29, true)[1] || $assertType(_ref, ptrType$30, true)[1] || $assertType(_ref, ptrType$26, true)[1]) { */ case 3: + u$1 = _ref; + $s = -1; return true; + /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 4: + u$2 = _ref.$val; + if (!isTypeParam(t)) { _v = true; $s = 6; continue s; } + _r$1 = u$2.typeSet(); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = _r$1.underIs((function hasNil·func1(u$3) { + var {$24r, _r$2, _v$1, u$3, $s, $r, $c} = $restore(this, {u$3}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (!(!($interfaceIsEqual(u$3, $ifaceNil)))) { _v$1 = false; $s = 1; continue s; } + _r$2 = hasNil(u$3); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v$1 = _r$2; case 1: + $24r = _v$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: hasNil·func1, $c: true, $r, $24r, _r$2, _v$1, u$3, $s};return $f; + })); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v = _r$2; case 6: + $24r = _v; + $s = 9; case 9: return $24r; /* } */ case 5: - u[0].depth = u[0].depth + (1) >> 0; - $deferred.push([(function(result, u, x, y) { return function unifier·nify·func1() { - var {$s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - u[0].depth = u[0].depth - (1) >> 0; - /* */ if (false && !result[0]) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (false && !result[0]) { */ case 1: - $r = u[0].tracef("%s \xE2\x89\xA2 %s", new sliceType$6([x[0], y[0]])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: unifier·nify·func1, $c: true, $r, $s};return $f; - }; })(result, u, x, y), []]); - /* */ if (!u[0].exact) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (!u[0].exact) { */ case 9: - _tuple = $assertType(x[0], ptrType$9, true); - nx = _tuple[0]; - /* */ if (!(nx === ptrType$9.nil) && !hasName(y[0])) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (!(nx === ptrType$9.nil) && !hasName(y[0])) { */ case 11: - /* */ if (false) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (false) { */ case 14: - $r = u[0].tracef("under %s \xE2\x89\xA1 %s", new sliceType$6([nx, y[0]])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 15: - _r$1 = nx.under(); /* */ $s = 17; case 17: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = u[0].nify(_r$1, y[0], p); /* */ $s = 18; case 18: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - result[0] = _r$2; - $24r = result[0]; - $s = 19; case 19: return $24r; - /* } else { */ case 12: - _tuple$1 = $assertType(y[0], ptrType$9, true); - ny = _tuple$1[0]; - /* */ if (!(ny === ptrType$9.nil) && !hasName(x[0])) { $s = 20; continue; } - /* */ $s = 21; continue; - /* if (!(ny === ptrType$9.nil) && !hasName(x[0])) { */ case 20: - /* */ if (false) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if (false) { */ case 22: - $r = u[0].tracef("%s \xE2\x89\xA1 under %s", new sliceType$6([x[0], ny])); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 23: - _arg = x[0]; - _r$3 = ny.under(); /* */ $s = 25; case 25: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _arg$1 = _r$3; - _arg$2 = p; - _r$4 = u[0].nify(_arg, _arg$1, _arg$2); /* */ $s = 26; case 26: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - result[0] = _r$4; - $24r$1 = result[0]; - $s = 27; case 27: return $24r$1; - /* } */ case 21: - /* } */ case 13: - /* } */ case 10: - _tmp = u[0].x.index(x[0]); - _tmp$1 = u[0].y.index(y[0]); - i = _tmp; - j = _tmp$1; - /* */ if (i >= 0 && j >= 0) { $s = 29; continue; } - /* */ if (i >= 0) { $s = 30; continue; } - /* */ if (j >= 0) { $s = 31; continue; } - /* */ $s = 32; continue; - /* if (i >= 0 && j >= 0) { */ case 29: - _r$5 = u[0].join(i, j); /* */ $s = 35; case 35: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* */ if (_r$5) { $s = 33; continue; } - /* */ $s = 34; continue; - /* if (_r$5) { */ case 33: - result[0] = true; - $24r$2 = result[0]; - $s = 36; case 36: return $24r$2; - /* } */ case 34: - _r$6 = u[0].nifyEq(u[0].x.at(i), u[0].y.at(j), p); /* */ $s = 37; case 37: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - result[0] = _r$6; - $24r$3 = result[0]; - $s = 38; case 38: return $24r$3; - /* } else if (i >= 0) { */ case 30: - tx = u[0].x.at(i); - /* */ if (!($interfaceIsEqual(tx, $ifaceNil))) { $s = 39; continue; } - /* */ $s = 40; continue; - /* if (!($interfaceIsEqual(tx, $ifaceNil))) { */ case 39: - _r$7 = u[0].nifyEq(tx, y[0], p); /* */ $s = 41; case 41: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - result[0] = _r$7; - $24r$4 = result[0]; - $s = 42; case 42: return $24r$4; - /* } */ case 40: - $r = u[0].x.set(i, y[0]); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - result[0] = true; - $24r$5 = result[0]; - $s = 44; case 44: return $24r$5; - /* } else if (j >= 0) { */ case 31: - ty = u[0].y.at(j); - /* */ if (!($interfaceIsEqual(ty, $ifaceNil))) { $s = 45; continue; } - /* */ $s = 46; continue; - /* if (!($interfaceIsEqual(ty, $ifaceNil))) { */ case 45: - _r$8 = u[0].nifyEq(x[0], ty, p); /* */ $s = 47; case 47: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - result[0] = _r$8; - $24r$6 = result[0]; - $s = 48; case 48: return $24r$6; - /* } */ case 46: - $r = u[0].y.set(j, x[0]); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - result[0] = true; - $24r$7 = result[0]; - $s = 50; case 50: return $24r$7; - /* } */ case 32: - case 28: - /* */ if (true && !u[0].exact) { $s = 51; continue; } - /* */ $s = 52; continue; - /* if (true && !u[0].exact) { */ case 51: - /* */ if (isTypeParam(x[0]) && !hasName(y[0])) { $s = 53; continue; } - /* */ if (isTypeParam(y[0]) && !hasName(x[0])) { $s = 54; continue; } - /* */ $s = 55; continue; - /* if (isTypeParam(x[0]) && !hasName(y[0])) { */ case 53: - _r$9 = coreType(x[0]); /* */ $s = 56; case 56: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - cx = _r$9; - /* */ if (!($interfaceIsEqual(cx, $ifaceNil))) { $s = 57; continue; } - /* */ $s = 58; continue; - /* if (!($interfaceIsEqual(cx, $ifaceNil))) { */ case 57: - /* */ if (false) { $s = 59; continue; } - /* */ $s = 60; continue; - /* if (false) { */ case 59: - $r = u[0].tracef("core %s \xE2\x89\xA1 %s", new sliceType$6([x[0], y[0]])); /* */ $s = 61; case 61: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 60: - _r$10 = u[0].nify(cx, y[0], p); /* */ $s = 62; case 62: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - result[0] = _r$10; - $24r$8 = result[0]; - $s = 63; case 63: return $24r$8; - /* } */ case 58: - $s = 55; continue; - /* } else if (isTypeParam(y[0]) && !hasName(x[0])) { */ case 54: - _r$11 = coreType(y[0]); /* */ $s = 64; case 64: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - cy = _r$11; - /* */ if (!($interfaceIsEqual(cy, $ifaceNil))) { $s = 65; continue; } - /* */ $s = 66; continue; - /* if (!($interfaceIsEqual(cy, $ifaceNil))) { */ case 65: - /* */ if (false) { $s = 67; continue; } - /* */ $s = 68; continue; - /* if (false) { */ case 67: - $r = u[0].tracef("%s \xE2\x89\xA1 core %s", new sliceType$6([x[0], y[0]])); /* */ $s = 69; case 69: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 68: - _r$12 = u[0].nify(x[0], cy, p); /* */ $s = 70; case 70: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - result[0] = _r$12; - $24r$9 = result[0]; - $s = 71; case 71: return $24r$9; - /* } */ case 66: - /* } */ case 55: - /* } */ case 52: - _ref = x[0]; - /* */ if ($assertType(_ref, ptrType$8, true)[1]) { $s = 72; continue; } - /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 73; continue; } - /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 74; continue; } - /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 75; continue; } - /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 76; continue; } - /* */ if ($assertType(_ref, ptrType$15, true)[1]) { $s = 77; continue; } - /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 78; continue; } - /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 79; continue; } - /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 80; continue; } - /* */ if ($assertType(_ref, ptrType$29, true)[1]) { $s = 81; continue; } - /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 82; continue; } - /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 83; continue; } - /* */ if (_ref === $ifaceNil) { $s = 84; continue; } - /* */ $s = 85; continue; - /* if ($assertType(_ref, ptrType$8, true)[1]) { */ case 72: + $s = -1; return false; + /* */ } return; } var $f = {$blk: hasNil$1, $c: true, $r, $24r, _r, _r$1, _r$2, _ref, _v, t, u, u$1, u$2, $s};return $f; + }; + $ptrType(ifacePair).prototype.identical = function identical(q) { + var p, q; + p = this; + return p.x === q.x && p.y === q.y || p.x === q.y && p.y === q.x; + }; + $ptrType(comparer).prototype.identical = function identical$1(x, y, p) { + var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, _v$2, _v$3, _v$4, _v$5, _v$6, a, b, c, check, ctxt, f, f$1, g, g$1, i, i$1, i$2, i$3, i$4, i$5, ok, ok$1, ok$2, ok$3, ok$4, ok$5, ok$6, ok$7, ok$8, ok$9, p, q, smap, targs, unionSets, v, w, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9, xarg, xargs, xset, xset$1, xtparam, xtparams, y, y$1, y$10, y$11, y$12, y$2, y$3, y$4, y$5, y$6, y$7, y$8, y$9, yargs, ybound, yparams, yresults, yset, yset$1, ytparams, $s, $r, $c} = $restore(this, {x, y, p}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + c = this; + if ($interfaceIsEqual(x, y)) { + $s = -1; return true; + } + if (c.ignoreInvalids && ($interfaceIsEqual(x, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])) || $interfaceIsEqual(y, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { + $s = -1; return true; + } + _ref = x; + /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$12, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$16, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$29, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 9; continue; } + /* */ if ($assertType(_ref, ptrType$30, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 11; continue; } + /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 12; continue; } + /* */ if ($assertType(_ref, ptrType$15, true)[1]) { $s = 13; continue; } + /* */ if (_ref === $ifaceNil) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if ($assertType(_ref, ptrType$4, true)[1]) { */ case 1: x$1 = _ref.$val; - _tuple$2 = $assertType(y[0], ptrType$8, true); - y$1 = _tuple$2[0]; - ok = _tuple$2[1]; - /* */ if (ok) { $s = 87; continue; } - /* */ $s = 88; continue; - /* if (ok) { */ case 87: - result[0] = x$1.kind === y$1.kind; - $24r$10 = result[0]; - $s = 89; case 89: return $24r$10; - /* } */ case 88: - $s = 86; continue; - /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 73: + _tuple = $assertType(y, ptrType$4, true); + y$1 = _tuple[0]; + ok = _tuple[1]; + if (ok) { + $s = -1; return x$1.kind === y$1.kind; + } + $s = 16; continue; + /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 2: x$2 = _ref.$val; - _tuple$3 = $assertType(y[0], ptrType$10, true); - y$2 = _tuple$3[0]; - ok$1 = _tuple$3[1]; - /* */ if (ok$1) { $s = 90; continue; } - /* */ $s = 91; continue; - /* if (ok$1) { */ case 90: - if (!((x$15 = x$2.len, (x$15.$high < 0 || (x$15.$high === 0 && x$15.$low < 0))) || (x$16 = y$2.len, (x$16.$high < 0 || (x$16.$high === 0 && x$16.$low < 0))) || (x$17 = x$2.len, x$18 = y$2.len, (x$17.$high === x$18.$high && x$17.$low === x$18.$low)))) { _v = false; $s = 92; continue s; } - _r$13 = u[0].nify(x$2.elem, y$2.elem, p); /* */ $s = 93; case 93: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - _v = _r$13; case 92: - result[0] = _v; - $24r$11 = result[0]; - $s = 94; case 94: return $24r$11; - /* } */ case 91: - $s = 86; continue; - /* } else if ($assertType(_ref, ptrType$25, true)[1]) { */ case 74: + _tuple$1 = $assertType(y, ptrType$11, true); + y$2 = _tuple$1[0]; + ok$1 = _tuple$1[1]; + /* */ if (ok$1) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (ok$1) { */ case 17: + if (!((x$16 = x$2.len, (x$16.$high < 0 || (x$16.$high === 0 && x$16.$low < 0))) || (x$17 = y$2.len, (x$17.$high < 0 || (x$17.$high === 0 && x$17.$low < 0))) || (x$18 = x$2.len, x$19 = y$2.len, (x$18.$high === x$19.$high && x$18.$low === x$19.$low)))) { _v = false; $s = 19; continue s; } + _r = c.identical(x$2.elem, y$2.elem, p); /* */ $s = 20; case 20: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r; case 19: + $24r = _v; + $s = 21; case 21: return $24r; + /* } */ case 18: + $s = 16; continue; + /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 3: x$3 = _ref.$val; - _tuple$4 = $assertType(y[0], ptrType$25, true); - y$3 = _tuple$4[0]; - ok$2 = _tuple$4[1]; - /* */ if (ok$2) { $s = 95; continue; } - /* */ $s = 96; continue; - /* if (ok$2) { */ case 95: - _r$14 = u[0].nify(x$3.elem, y$3.elem, p); /* */ $s = 97; case 97: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - result[0] = _r$14; - $24r$12 = result[0]; - $s = 98; case 98: return $24r$12; - /* } */ case 96: - $s = 86; continue; - /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 75: + _tuple$2 = $assertType(y, ptrType$27, true); + y$3 = _tuple$2[0]; + ok$2 = _tuple$2[1]; + /* */ if (ok$2) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (ok$2) { */ case 22: + _r$1 = c.identical(x$3.elem, y$3.elem, p); /* */ $s = 24; case 24: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r$1 = _r$1; + $s = 25; case 25: return $24r$1; + /* } */ case 23: + $s = 16; continue; + /* } else if ($assertType(_ref, ptrType$12, true)[1]) { */ case 4: x$4 = _ref.$val; - _tuple$5 = $assertType(y[0], ptrType$11, true); - y$4 = _tuple$5[0]; - ok$3 = _tuple$5[1]; - /* */ if (ok$3) { $s = 99; continue; } - /* */ $s = 100; continue; - /* if (ok$3) { */ case 99: - /* */ if (x$4.NumFields() === y$4.NumFields()) { $s = 101; continue; } - /* */ $s = 102; continue; - /* if (x$4.NumFields() === y$4.NumFields()) { */ case 101: + _tuple$3 = $assertType(y, ptrType$12, true); + y$4 = _tuple$3[0]; + ok$3 = _tuple$3[1]; + /* */ if (ok$3) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (ok$3) { */ case 26: + /* */ if (x$4.NumFields() === y$4.NumFields()) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (x$4.NumFields() === y$4.NumFields()) { */ case 28: _ref$1 = x$4.fields; _i = 0; - /* while (true) { */ case 103: - /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 104; continue; } - i$1 = _i; + /* while (true) { */ case 30: + /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 31; continue; } + i = _i; f = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); - g = (x$19 = y$4.fields, ((i$1 < 0 || i$1 >= x$19.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$19.$array[x$19.$offset + i$1])); - if (!(f.embedded === g.embedded) || !(x$4.Tag(i$1) === y$4.Tag(i$1)) || !f.object.sameId(g.object.pkg, g.object.name)) { _v$1 = true; $s = 107; continue s; } - _r$15 = u[0].nify(f.object.typ, g.object.typ, p); /* */ $s = 108; case 108: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - _v$1 = !_r$15; case 107: - /* */ if (_v$1) { $s = 105; continue; } - /* */ $s = 106; continue; - /* if (_v$1) { */ case 105: - result[0] = false; - $24r$13 = result[0]; - $s = 109; case 109: return $24r$13; - /* } */ case 106: + g = (x$20 = y$4.fields, ((i < 0 || i >= x$20.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$20.$array[x$20.$offset + i])); + if (!(f.embedded === g.embedded) || !c.ignoreTags && !(x$4.Tag(i) === y$4.Tag(i)) || !f.object.sameId(g.object.pkg, g.object.name)) { _v$1 = true; $s = 34; continue s; } + _r$2 = c.identical(f.object.typ, g.object.typ, p); /* */ $s = 35; case 35: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v$1 = !_r$2; case 34: + /* */ if (_v$1) { $s = 32; continue; } + /* */ $s = 33; continue; + /* if (_v$1) { */ case 32: + $s = -1; return false; + /* } */ case 33: _i++; - $s = 103; continue; - case 104: - result[0] = true; - $24r$14 = result[0]; - $s = 110; case 110: return $24r$14; - /* } */ case 102: - /* } */ case 100: - $s = 86; continue; - /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 76: + $s = 30; continue; + case 31: + $s = -1; return true; + /* } */ case 29: + /* } */ case 27: + $s = 16; continue; + /* } else if ($assertType(_ref, ptrType$28, true)[1]) { */ case 5: x$5 = _ref.$val; - _tuple$6 = $assertType(y[0], ptrType$26, true); - y$5 = _tuple$6[0]; - ok$4 = _tuple$6[1]; - /* */ if (ok$4) { $s = 111; continue; } - /* */ $s = 112; continue; - /* if (ok$4) { */ case 111: - _r$16 = u[0].nify(x$5.base, y$5.base, p); /* */ $s = 113; case 113: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - result[0] = _r$16; - $24r$15 = result[0]; - $s = 114; case 114: return $24r$15; - /* } */ case 112: - $s = 86; continue; - /* } else if ($assertType(_ref, ptrType$15, true)[1]) { */ case 77: + _tuple$4 = $assertType(y, ptrType$28, true); + y$5 = _tuple$4[0]; + ok$4 = _tuple$4[1]; + /* */ if (ok$4) { $s = 36; continue; } + /* */ $s = 37; continue; + /* if (ok$4) { */ case 36: + _r$3 = c.identical(x$5.base, y$5.base, p); /* */ $s = 38; case 38: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r$2 = _r$3; + $s = 39; case 39: return $24r$2; + /* } */ case 37: + $s = 16; continue; + /* } else if ($assertType(_ref, ptrType$16, true)[1]) { */ case 6: x$6 = _ref.$val; - _tuple$7 = $assertType(y[0], ptrType$15, true); - y$6 = _tuple$7[0]; - ok$5 = _tuple$7[1]; - /* */ if (ok$5) { $s = 115; continue; } - /* */ $s = 116; continue; - /* if (ok$5) { */ case 115: - /* */ if (x$6.Len() === y$6.Len()) { $s = 117; continue; } - /* */ $s = 118; continue; - /* if (x$6.Len() === y$6.Len()) { */ case 117: - /* */ if (!(x$6 === ptrType$15.nil)) { $s = 119; continue; } - /* */ $s = 120; continue; - /* if (!(x$6 === ptrType$15.nil)) { */ case 119: + _tuple$5 = $assertType(y, ptrType$16, true); + y$6 = _tuple$5[0]; + ok$5 = _tuple$5[1]; + /* */ if (ok$5) { $s = 40; continue; } + /* */ $s = 41; continue; + /* if (ok$5) { */ case 40: + /* */ if (x$6.Len() === y$6.Len()) { $s = 42; continue; } + /* */ $s = 43; continue; + /* if (x$6.Len() === y$6.Len()) { */ case 42: + /* */ if (!(x$6 === ptrType$16.nil)) { $s = 44; continue; } + /* */ $s = 45; continue; + /* if (!(x$6 === ptrType$16.nil)) { */ case 44: _ref$2 = x$6.vars; _i$1 = 0; - /* while (true) { */ case 121: - /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 122; continue; } - i$2 = _i$1; + /* while (true) { */ case 46: + /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 47; continue; } + i$1 = _i$1; v = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); - w = (x$20 = y$6.vars, ((i$2 < 0 || i$2 >= x$20.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$20.$array[x$20.$offset + i$2])); - _r$17 = u[0].nify(v.object.typ, w.object.typ, p); /* */ $s = 125; case 125: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - /* */ if (!_r$17) { $s = 123; continue; } - /* */ $s = 124; continue; - /* if (!_r$17) { */ case 123: - result[0] = false; - $24r$16 = result[0]; - $s = 126; case 126: return $24r$16; - /* } */ case 124: + w = (x$21 = y$6.vars, ((i$1 < 0 || i$1 >= x$21.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$21.$array[x$21.$offset + i$1])); + _r$4 = c.identical(v.object.typ, w.object.typ, p); /* */ $s = 50; case 50: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (!_r$4) { $s = 48; continue; } + /* */ $s = 49; continue; + /* if (!_r$4) { */ case 48: + $s = -1; return false; + /* } */ case 49: _i$1++; - $s = 121; continue; - case 122: - /* } */ case 120: - result[0] = true; - $24r$17 = result[0]; - $s = 127; case 127: return $24r$17; - /* } */ case 118: - /* } */ case 116: - $s = 86; continue; - /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 78: + $s = 46; continue; + case 47: + /* } */ case 45: + $s = -1; return true; + /* } */ case 43: + /* } */ case 41: + $s = 16; continue; + /* } else if ($assertType(_ref, ptrType$29, true)[1]) { */ case 7: x$7 = _ref.$val; - _tuple$8 = $assertType(y[0], ptrType$27, true); - y$7 = _tuple$8[0]; - ok$6 = _tuple$8[1]; - /* */ if (ok$6) { $s = 128; continue; } - /* */ $s = 129; continue; - /* if (ok$6) { */ case 128: - if (!(x$7.variadic === y$7.variadic)) { _v$3 = false; $s = 131; continue s; } - _r$18 = u[0].nify(x$7.params, y$7.params, p); /* */ $s = 132; case 132: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - _v$3 = _r$18; case 131: - if (!(_v$3)) { _v$2 = false; $s = 130; continue s; } - _r$19 = u[0].nify(x$7.results, y$7.results, p); /* */ $s = 133; case 133: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - _v$2 = _r$19; case 130: - result[0] = _v$2; - $24r$18 = result[0]; - $s = 134; case 134: return $24r$18; - /* } */ case 129: - $s = 86; continue; - /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 79: - x$8 = _ref.$val; - _tuple$9 = $assertType(y[0], ptrType$13, true); - y$8 = _tuple$9[0]; - ok$7 = _tuple$9[1]; - /* */ if (ok$7) { $s = 135; continue; } - /* */ $s = 136; continue; - /* if (ok$7) { */ case 135: - _r$20 = x$8.typeSet(); /* */ $s = 137; case 137: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - xset = _r$20; - _r$21 = y$8.typeSet(); /* */ $s = 138; case 138: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } - yset = _r$21; - /* */ if (!(xset.comparable === yset.comparable)) { $s = 139; continue; } - /* */ $s = 140; continue; - /* if (!(xset.comparable === yset.comparable)) { */ case 139: - result[0] = false; - $24r$19 = result[0]; - $s = 141; case 141: return $24r$19; - /* } */ case 140: - _r$22 = xset.terms.equal(yset.terms); /* */ $s = 144; case 144: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - /* */ if (!_r$22) { $s = 142; continue; } - /* */ $s = 143; continue; - /* if (!_r$22) { */ case 142: - result[0] = false; - $24r$20 = result[0]; - $s = 145; case 145: return $24r$20; - /* } */ case 143: - a = xset.methods; - b = yset.methods; - /* */ if (a.$length === b.$length) { $s = 146; continue; } - /* */ $s = 147; continue; - /* if (a.$length === b.$length) { */ case 146: - q = new ifacePair.ptr(x$8, y$8, p); - /* while (true) { */ case 148: - /* if (!(!(p === ptrType$23.nil))) { break; } */ if(!(!(p === ptrType$23.nil))) { $s = 149; continue; } - /* */ if (p.identical(q)) { $s = 150; continue; } - /* */ $s = 151; continue; - /* if (p.identical(q)) { */ case 150: - result[0] = true; - $24r$21 = result[0]; - $s = 152; case 152: return $24r$21; - /* } */ case 151: - p = p.prev; - $s = 148; continue; - case 149: - /* */ if (false) { $s = 153; continue; } - /* */ $s = 154; continue; - /* if (false) { */ case 153: - $r = assertSortedMethods(a); /* */ $s = 155; case 155: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = assertSortedMethods(b); /* */ $s = 156; case 156: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 154: - _ref$3 = a; - _i$2 = 0; - /* while (true) { */ case 157: - /* if (!(_i$2 < _ref$3.$length)) { break; } */ if(!(_i$2 < _ref$3.$length)) { $s = 158; continue; } - i$3 = _i$2; - f$1 = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]); - g$1 = ((i$3 < 0 || i$3 >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i$3]); - if (!(f$1.object.Id() === g$1.object.Id())) { _v$4 = true; $s = 161; continue s; } - _r$23 = u[0].nify(f$1.object.typ, g$1.object.typ, q); /* */ $s = 162; case 162: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _v$4 = !_r$23; case 161: - /* */ if (_v$4) { $s = 159; continue; } - /* */ $s = 160; continue; - /* if (_v$4) { */ case 159: - result[0] = false; - $24r$22 = result[0]; - $s = 163; case 163: return $24r$22; - /* } */ case 160: - _i$2++; - $s = 157; continue; - case 158: - result[0] = true; - $24r$23 = result[0]; - $s = 164; case 164: return $24r$23; - /* } */ case 147: - /* } */ case 136: - $s = 86; continue; - /* } else if ($assertType(_ref, ptrType$28, true)[1]) { */ case 80: - x$9 = _ref.$val; - _tuple$10 = $assertType(y[0], ptrType$28, true); - y$9 = _tuple$10[0]; - ok$8 = _tuple$10[1]; - /* */ if (ok$8) { $s = 165; continue; } - /* */ $s = 166; continue; - /* if (ok$8) { */ case 165: - _r$24 = u[0].nify(x$9.key, y$9.key, p); /* */ $s = 168; case 168: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - if (!(_r$24)) { _v$5 = false; $s = 167; continue s; } - _r$25 = u[0].nify(x$9.elem, y$9.elem, p); /* */ $s = 169; case 169: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - _v$5 = _r$25; case 167: - result[0] = _v$5; - $24r$24 = result[0]; - $s = 170; case 170: return $24r$24; - /* } */ case 166: - $s = 86; continue; - /* } else if ($assertType(_ref, ptrType$29, true)[1]) { */ case 81: - x$10 = _ref.$val; - _tuple$11 = $assertType(y[0], ptrType$29, true); - y$10 = _tuple$11[0]; - ok$9 = _tuple$11[1]; - /* */ if (ok$9) { $s = 171; continue; } - /* */ $s = 172; continue; - /* if (ok$9) { */ case 171: - if (!(!u[0].exact || (x$10.dir === y$10.dir))) { _v$6 = false; $s = 173; continue s; } - _r$26 = u[0].nify(x$10.elem, y$10.elem, p); /* */ $s = 174; case 174: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - _v$6 = _r$26; case 173: - result[0] = _v$6; - $24r$25 = result[0]; - $s = 175; case 175: return $24r$25; - /* } */ case 172: - $s = 86; continue; - /* } else if ($assertType(_ref, ptrType$9, true)[1]) { */ case 82: - x$11 = _ref.$val; - _tuple$12 = $assertType(y[0], ptrType$9, true); - y$11 = _tuple$12[0]; - ok$10 = _tuple$12[1]; - /* */ if (ok$10) { $s = 176; continue; } - /* */ $s = 177; continue; - /* if (ok$10) { */ case 176: - xargs = x$11.TypeArgs().list(); - yargs = y$11.TypeArgs().list(); - /* */ if (!((xargs.$length === yargs.$length))) { $s = 178; continue; } - /* */ $s = 179; continue; - /* if (!((xargs.$length === yargs.$length))) { */ case 178: - result[0] = false; - $24r$26 = result[0]; - $s = 180; case 180: return $24r$26; - /* } */ case 179: - /* */ if (x$11.obj.object.pkg === y$11.obj.object.pkg && x$11.obj.object.name === y$11.obj.object.name) { $s = 181; continue; } - /* */ $s = 182; continue; - /* if (x$11.obj.object.pkg === y$11.obj.object.pkg && x$11.obj.object.name === y$11.obj.object.name) { */ case 181: - _ref$4 = xargs; - _i$3 = 0; - /* while (true) { */ case 183: - /* if (!(_i$3 < _ref$4.$length)) { break; } */ if(!(_i$3 < _ref$4.$length)) { $s = 184; continue; } - i$4 = _i$3; - x$21 = ((_i$3 < 0 || _i$3 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$3]); - _r$27 = u[0].nify(x$21, ((i$4 < 0 || i$4 >= yargs.$length) ? ($throwRuntimeError("index out of range"), undefined) : yargs.$array[yargs.$offset + i$4]), p); /* */ $s = 187; case 187: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - /* */ if (!_r$27) { $s = 185; continue; } - /* */ $s = 186; continue; - /* if (!_r$27) { */ case 185: - result[0] = false; - $24r$27 = result[0]; - $s = 188; case 188: return $24r$27; - /* } */ case 186: - _i$3++; - $s = 183; continue; - case 184: - result[0] = true; - $24r$28 = result[0]; - $s = 189; case 189: return $24r$28; - /* } */ case 182: - /* } */ case 177: - $s = 86; continue; - /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 83: - x$12 = _ref.$val; - result[0] = $interfaceIsEqual(x$12, y[0]); - $24r$29 = result[0]; - $s = 190; case 190: return $24r$29; - /* } else if (_ref === $ifaceNil) { */ case 84: - x$13 = _ref; - $s = 86; continue; - /* } else { */ case 85: - x$14 = _ref; - _r$28 = sprintf(ptrType$24.nil, $throwNilPointerError, true, "u.nify(%s, %s), u.x.tparams = %s", new sliceType$6([x$14, y[0], u[0].x.tparams])); /* */ $s = 191; case 191: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - $panic(new $String(_r$28)); - /* } */ case 86: - result[0] = false; - $24r$30 = result[0]; - $s = 192; case 192: return $24r$30; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return result[0]; } if($curGoroutine.asleep) { var $f = {$blk: nify, $c: true, $r, $24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$13, $24r$14, $24r$15, $24r$16, $24r$17, $24r$18, $24r$19, $24r$2, $24r$20, $24r$21, $24r$22, $24r$23, $24r$24, $24r$25, $24r$26, $24r$27, $24r$28, $24r$29, $24r$3, $24r$30, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _arg, _arg$1, _arg$2, _i, _i$1, _i$2, _i$3, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, _v$2, _v$3, _v$4, _v$5, _v$6, a, b, cx, cy, f, f$1, g, g$1, i, i$1, i$2, i$3, i$4, j, nx, ny, ok, ok$1, ok$10, ok$2, ok$3, ok$4, ok$5, ok$6, ok$7, ok$8, ok$9, p, q, result, tx, ty, u, v, w, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9, xargs, xset, y, y$1, y$10, y$11, y$2, y$3, y$4, y$5, y$6, y$7, y$8, y$9, yargs, yset, $s, $deferred};return $f; } } - }; - $ptrType(Checker).prototype.ident = function ident(x, e, def$2, wantType) { - var {_1, _entry, _entry$1, _r$1, _r$2, _r$3, _r$4, _ref, _tuple, _tuple$1, check, def$2, e, gotType, obj, obj$1, obj$2, obj$3, obj$4, obj$5, obj$6, obj$7, obj$8, pkgName, scope, tpar, typ, wantType, x, $s, $r, $c} = $restore(this, {x, e, def$2, wantType}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - x.mode = 0; - x.expr = e; - _r$1 = check.environment.scope.LookupParent(e.Name, check.environment.pos); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - scope = _tuple[0]; - obj = _tuple[1]; - _1 = obj; - /* */ if ($interfaceIsEqual(_1, $ifaceNil)) { $s = 3; continue; } - /* */ if ($interfaceIsEqual(_1, (universeAny)) || $interfaceIsEqual(_1, (universeComparable))) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if ($interfaceIsEqual(_1, $ifaceNil)) { */ case 3: - /* */ if (e.Name === "_") { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (e.Name === "_") { */ case 6: - tpar = (_entry = $mapIndex(check.recvTParamMap,ptrType$30.keyFor(e)), _entry !== undefined ? _entry.v : ptrType$14.nil); - /* */ if (!(tpar === ptrType$14.nil)) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (!(tpar === ptrType$14.nil)) { */ case 9: - x.mode = 3; - x.typ = tpar; - $s = 11; continue; - /* } else { */ case 10: - $r = check.error(e, 35, "cannot use _ as value or type"); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 11: - $s = 8; continue; - /* } else { */ case 7: - $r = check.errorf(e, 75, "undefined: %s", new sliceType$6([new $String(e.Name)])); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 8: - $s = -1; return; - /* } else if ($interfaceIsEqual(_1, (universeAny)) || $interfaceIsEqual(_1, (universeComparable))) { */ case 4: - /* */ if (!check.allowVersion(check.pkg, 1, 18)) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (!check.allowVersion(check.pkg, 1, 18)) { */ case 14: - $r = check.versionErrorf(e, "go1.18", "predeclared %s", new sliceType$6([new $String(e.Name)])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 15: - /* } */ case 5: - case 2: - $r = check.recordUse(e, obj); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$2 = obj.Type(); /* */ $s = 18; case 18: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - typ = _r$2; - _tuple$1 = $assertType(obj, ptrType$17, true); - gotType = _tuple$1[1]; - /* */ if ($interfaceIsEqual(typ, $ifaceNil) || gotType && wantType) { $s = 19; continue; } - /* */ $s = 20; continue; - /* if ($interfaceIsEqual(typ, $ifaceNil) || gotType && wantType) { */ case 19: - $r = check.objDecl(obj, def$2); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$3 = obj.Type(); /* */ $s = 22; case 22: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - typ = _r$3; - /* } */ case 20: - $r = assert(!($interfaceIsEqual(typ, $ifaceNil))); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$4 = obj.Name(); /* */ $s = 24; case 24: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - pkgName = (_entry$1 = $mapIndex(check.dotImportMap,dotImportKey.keyFor(new dotImportKey.ptr(scope, _r$4))), _entry$1 !== undefined ? _entry$1.v : ptrType$31.nil); - if (!(pkgName === ptrType$31.nil)) { - pkgName.used = true; - } - _ref = obj; - /* */ if ($assertType(_ref, ptrType$31, true)[1]) { $s = 25; continue; } - /* */ if ($assertType(_ref, ptrType$32, true)[1]) { $s = 26; continue; } - /* */ if ($assertType(_ref, ptrType$17, true)[1]) { $s = 27; continue; } - /* */ if ($assertType(_ref, ptrType$16, true)[1]) { $s = 28; continue; } - /* */ if ($assertType(_ref, ptrType$2, true)[1]) { $s = 29; continue; } - /* */ if ($assertType(_ref, ptrType$18, true)[1]) { $s = 30; continue; } - /* */ if ($assertType(_ref, ptrType$33, true)[1]) { $s = 31; continue; } - /* */ $s = 32; continue; - /* if ($assertType(_ref, ptrType$31, true)[1]) { */ case 25: - obj$1 = _ref.$val; - $r = check.errorf(e, 4, "use of package %s not in selector", new sliceType$6([new $String(obj$1.object.name)])); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } else if ($assertType(_ref, ptrType$32, true)[1]) { */ case 26: - obj$2 = _ref.$val; - check.addDeclDep(obj$2); - if ($interfaceIsEqual(typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { - $s = -1; return; - } - /* */ if ($interfaceIsEqual(obj$2, universeIota)) { $s = 35; continue; } - /* */ $s = 36; continue; - /* if ($interfaceIsEqual(obj$2, universeIota)) { */ case 35: - /* */ if ($interfaceIsEqual(check.environment.iota, $ifaceNil)) { $s = 38; continue; } - /* */ $s = 39; continue; - /* if ($interfaceIsEqual(check.environment.iota, $ifaceNil)) { */ case 38: - $r = check.error(e, 36, "cannot use iota outside constant declaration"); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 39: - x.val = check.environment.iota; - $s = 37; continue; - /* } else { */ case 36: - x.val = obj$2.val; - /* } */ case 37: - $r = assert(!($interfaceIsEqual(x.val, $ifaceNil))); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 4; - $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$17, true)[1]) { */ case 27: - obj$3 = _ref.$val; - /* */ if (check.isBrokenAlias(obj$3)) { $s = 42; continue; } - /* */ $s = 43; continue; - /* if (check.isBrokenAlias(obj$3)) { */ case 42: - $r = check.errorf(e, 11, "invalid use of type alias %s in recursive type (see issue #50729)", new sliceType$6([new $String(obj$3.object.name)])); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 43: - x.mode = 3; - $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$16, true)[1]) { */ case 28: - obj$4 = _ref.$val; - if (obj$4.object.pkg === check.pkg) { - obj$4.used = true; + _tuple$6 = $assertType(y, ptrType$29, true); + y$7 = _tuple$6[0]; + if (y$7 === ptrType$29.nil) { + $s = -1; return false; } - check.addDeclDep(obj$4); - if ($interfaceIsEqual(typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { - $s = -1; return; + if (!((x$7.TypeParams().Len() === y$7.TypeParams().Len()))) { + $s = -1; return false; } - x.mode = 5; - $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$2, true)[1]) { */ case 29: - obj$5 = _ref.$val; - check.addDeclDep(obj$5); - x.mode = 7; - $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$18, true)[1]) { */ case 30: - obj$6 = _ref.$val; - x.id = obj$6.id; - x.mode = 2; - $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$33, true)[1]) { */ case 31: - obj$7 = _ref.$val; - x.mode = 7; - $s = 33; continue; - /* } else { */ case 32: - obj$8 = _ref; - unreachable(); - /* } */ case 33: - x.typ = typ; - $s = -1; return; - /* */ } return; } var $f = {$blk: ident, $c: true, $r, _1, _entry, _entry$1, _r$1, _r$2, _r$3, _r$4, _ref, _tuple, _tuple$1, check, def$2, e, gotType, obj, obj$1, obj$2, obj$3, obj$4, obj$5, obj$6, obj$7, obj$8, pkgName, scope, tpar, typ, wantType, x, $s};return $f; - }; - $ptrType(Checker).prototype.typ = function typ(e) { - var {$24r, _r$1, check, e, $s, $r, $c} = $restore(this, {e}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = check.definedType(e, ptrType$9.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: typ, $c: true, $r, $24r, _r$1, check, e, $s};return $f; - }; - $ptrType(Checker).prototype.varType = function varType(e) { - var {_r$1, check, e, typ$1, $s, $r, $c} = $restore(this, {e}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = check.definedType(e, ptrType$9.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - typ$1 = _r$1; - check.validVarType(e, typ$1); - $s = -1; return typ$1; - /* */ } return; } var $f = {$blk: varType, $c: true, $r, _r$1, check, e, typ$1, $s};return $f; - }; - $ptrType(Checker).prototype.validVarType = function validVarType(e, typ$1) { - var check, e, typ$1; - check = this; - if (isTypeParam(typ$1)) { - return; - } - check.later((function Checker·validVarType·func1() { - var {_arg, _arg$1, _arg$2, _r$1, _r$2, _r$3, _tuple, t, tset, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = under(typ$1); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = $assertType(_r$1, ptrType$13, true); - t = _tuple[0]; - /* */ if (!(t === ptrType$13.nil)) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!(t === ptrType$13.nil)) { */ case 2: - _arg = check; - _r$2 = e.Pos(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _arg$1 = _r$2; - _arg$2 = t; - _r$3 = computeInterfaceTypeSet(_arg, _arg$1, _arg$2); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - tset = _r$3; - /* */ if (!tset.IsMethodSet()) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (!tset.IsMethodSet()) { */ case 6: - /* */ if (tset.comparable) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (tset.comparable) { */ case 8: - $r = check.softErrorf(e, 142, "cannot use type %s outside a type constraint: interface is (or embeds) comparable", new sliceType$6([typ$1])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 10; continue; - /* } else { */ case 9: - $r = check.softErrorf(e, 142, "cannot use type %s outside a type constraint: interface contains type constraints", new sliceType$6([typ$1])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 10: - /* } */ case 7: - /* } */ case 3: - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·validVarType·func1, $c: true, $r, _arg, _arg$1, _arg$2, _r$1, _r$2, _r$3, _tuple, t, tset, $s};return $f; - })).describef(e, "check var type %s", new sliceType$6([typ$1])); - }; - $ptrType(Checker).prototype.definedType = function definedType(e, def$2) { - var {_r$1, _r$2, check, def$2, e, typ$1, $s, $r, $c} = $restore(this, {e, def$2}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = check.typInternal(e, def$2); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - typ$1 = _r$1; - $r = assert(isTyped(typ$1)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$2 = isGeneric(typ$1); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (_r$2) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (_r$2) { */ case 3: - $r = check.errorf(e, 137, "cannot use generic type %s without instantiation", new sliceType$6([typ$1])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - typ$1 = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - /* } */ case 4: - $r = check.recordTypeAndValue(e, 3, typ$1, $ifaceNil); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return typ$1; - /* */ } return; } var $f = {$blk: definedType, $c: true, $r, _r$1, _r$2, check, def$2, e, typ$1, $s};return $f; - }; - $ptrType(Checker).prototype.genericType = function genericType(e, cause) { - var {_r$1, _r$2, _r$3, _v, cause, check, e, typ$1, $s, $r, $c} = $restore(this, {e, cause}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = check.typInternal(e, ptrType$9.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - typ$1 = _r$1; - $r = assert(isTyped(typ$1)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (!(!($interfaceIsEqual(typ$1, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))))) { _v = false; $s = 5; continue s; } - _r$2 = isGeneric(typ$1); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _v = !_r$2; case 5: - /* */ if (_v) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (_v) { */ case 3: - /* */ if (!(cause === ptrType$34.nil)) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (!(cause === ptrType$34.nil)) { */ case 7: - _r$3 = check.sprintf("%s is not a generic type", new sliceType$6([typ$1])); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - cause.$set(_r$3); - /* } */ case 8: - typ$1 = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - /* } */ case 4: - $r = check.recordTypeAndValue(e, 3, typ$1, $ifaceNil); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return typ$1; - /* */ } return; } var $f = {$blk: genericType, $c: true, $r, _r$1, _r$2, _r$3, _v, cause, check, e, typ$1, $s};return $f; - }; - goTypeName = function goTypeName$1(typ$1) { - var {$24r, _r$1, _r$2, typ$1, $s, $r, $c} = $restore(this, {typ$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = fmt.Sprintf("%T", new sliceType$6([typ$1])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = strings.ReplaceAll(_r$1, "types.", ""); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: goTypeName$1, $c: true, $r, $24r, _r$1, _r$2, typ$1, $s};return $f; - }; - $ptrType(Checker).prototype.typInternal = function typInternal(e0, def$2) { - var {$24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, T, _1, _2, _3, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, check, def$2, dir$1, e, e$1, e$10, e$11, e$12, e$13, e$2, e$3, e$4, e$5, e$6, e$7, e$8, e$9, e0, ix, ok, typ$1, typ$10, typ$11, typ$2, typ$3, typ$4, typ$5, typ$6, typ$7, typ$8, typ$9, x, x$1, x$2, x$3, $s, $deferred, $r, $c} = $restore(this, {e0, def$2}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - T = [T]; - check = [check]; - e = [e]; - e0 = [e0]; - typ$1 = [typ$1]; - x = [x]; - x$1 = [x$1]; - T[0] = $ifaceNil; - check[0] = this; - /* */ if (false) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (false) { */ case 1: - _r$1 = e0[0].Pos(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $r = check[0].trace(_r$1, "-- type %s", new sliceType$6([e0[0]])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - check[0].indent = check[0].indent + (1) >> 0; - $deferred.push([(function(T, check, e, e0, typ$1, x, x$1) { return function Checker·typInternal·func1() { - var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _r$2, _r$3, _r$4, _r$5, _r$6, under$1, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check[0].indent = check[0].indent - (1) >> 0; - under$1 = $ifaceNil; - /* */ if (!($interfaceIsEqual(T[0], $ifaceNil))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!($interfaceIsEqual(T[0], $ifaceNil))) { */ case 1: - _r$2 = safeUnderlying(T[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - under$1 = _r$2; - /* } */ case 2: - /* */ if ($interfaceIsEqual(T[0], under$1)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if ($interfaceIsEqual(T[0], under$1)) { */ case 4: - _r$3 = e0[0].Pos(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _arg = _r$3; - _arg$1 = T[0]; - _r$4 = goTypeName(T[0]); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _arg$2 = new $String(_r$4); - $r = check[0].trace(_arg, "=> %s // %s", new sliceType$6([_arg$1, _arg$2])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 6; continue; - /* } else { */ case 5: - _r$5 = e0[0].Pos(); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _arg$3 = _r$5; - _arg$4 = T[0]; - _arg$5 = under$1; - _r$6 = goTypeName(T[0]); /* */ $s = 11; case 11: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _arg$6 = new $String(_r$6); - $r = check[0].trace(_arg$3, "=> %s (under = %s) // %s", new sliceType$6([_arg$4, _arg$5, _arg$6])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 6: - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·typInternal·func1, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _r$2, _r$3, _r$4, _r$5, _r$6, under$1, $s};return $f; - }; })(T, check, e, e0, typ$1, x, x$1), []]); - /* } */ case 2: - _ref = e0[0]; - /* */ if ($assertType(_ref, ptrType$35, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$30, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType$36, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref, ptrType$37, true)[1] || $assertType(_ref, ptrType$38, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref, ptrType$39, true)[1]) { $s = 9; continue; } - /* */ if ($assertType(_ref, ptrType$40, true)[1]) { $s = 10; continue; } - /* */ if ($assertType(_ref, ptrType$41, true)[1]) { $s = 11; continue; } - /* */ if ($assertType(_ref, ptrType$42, true)[1]) { $s = 12; continue; } - /* */ if ($assertType(_ref, ptrType$43, true)[1]) { $s = 13; continue; } - /* */ if ($assertType(_ref, ptrType$44, true)[1]) { $s = 14; continue; } - /* */ if ($assertType(_ref, ptrType$45, true)[1]) { $s = 15; continue; } - /* */ if ($assertType(_ref, ptrType$46, true)[1]) { $s = 16; continue; } - /* */ if ($assertType(_ref, ptrType$47, true)[1]) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if ($assertType(_ref, ptrType$35, true)[1]) { */ case 5: - e$1 = _ref.$val; - $s = 19; continue; - /* } else if ($assertType(_ref, ptrType$30, true)[1]) { */ case 6: - e$2 = _ref.$val; - x[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = check[0].ident(x[0], e$2, def$2, true); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _1 = x[0].mode; - /* */ if (_1 === (3)) { $s = 22; continue; } - /* */ if (_1 === (0)) { $s = 23; continue; } - /* */ if (_1 === (1)) { $s = 24; continue; } - /* */ $s = 25; continue; - /* if (_1 === (3)) { */ case 22: - typ$2 = x[0].typ; - def$2.setUnderlying(typ$2); - T[0] = typ$2; - $24r = T[0]; - $s = 27; case 27: return $24r; - /* } else if (_1 === (0)) { */ case 23: - $s = 26; continue; - /* } else if (_1 === (1)) { */ case 24: - $r = check[0].errorf(x[0], 25, "%s used as type", new sliceType$6([x[0]])); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 26; continue; - /* } else { */ case 25: - $r = check[0].errorf(x[0], 25, "%s is not a type", new sliceType$6([x[0]])); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 26: - case 21: - $s = 19; continue; - /* } else if ($assertType(_ref, ptrType$36, true)[1]) { */ case 7: - e$3 = _ref.$val; - x$1[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = check[0].selector(x$1[0], e$3, def$2, true); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _2 = x$1[0].mode; - /* */ if (_2 === (3)) { $s = 32; continue; } - /* */ if (_2 === (0)) { $s = 33; continue; } - /* */ if (_2 === (1)) { $s = 34; continue; } - /* */ $s = 35; continue; - /* if (_2 === (3)) { */ case 32: - typ$3 = x$1[0].typ; - def$2.setUnderlying(typ$3); - T[0] = typ$3; - $24r$1 = T[0]; - $s = 37; case 37: return $24r$1; - /* } else if (_2 === (0)) { */ case 33: - $s = 36; continue; - /* } else if (_2 === (1)) { */ case 34: - $r = check[0].errorf(x$1[0], 25, "%s used as type", new sliceType$6([x$1[0]])); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 36; continue; - /* } else { */ case 35: - $r = check[0].errorf(x$1[0], 25, "%s is not a type", new sliceType$6([x$1[0]])); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 36: - case 31: - $s = 19; continue; - /* } else if ($assertType(_ref, ptrType$37, true)[1] || $assertType(_ref, ptrType$38, true)[1]) { */ case 8: - e$4 = _ref; - ix = typeparams.UnpackIndexExpr(e$4); - /* */ if (!check[0].allowVersion(check[0].pkg, 1, 18)) { $s = 40; continue; } - /* */ $s = 41; continue; - /* if (!check[0].allowVersion(check[0].pkg, 1, 18)) { */ case 40: - _r$2 = inNode(e$4, ix.IndexListExpr.Lbrack); /* */ $s = 42; case 42: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $r = check[0].softErrorf((x$2 = _r$2, new x$2.constructor.elem(x$2)), 135, "type instantiation requires go1.18 or later", sliceType$6.nil); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 41: - _r$3 = check[0].instantiatedType(ix, def$2); /* */ $s = 44; case 44: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - T[0] = _r$3; - $24r$2 = T[0]; - $s = 45; case 45: return $24r$2; - /* } else if ($assertType(_ref, ptrType$39, true)[1]) { */ case 9: - e$5 = _ref.$val; - _r$4 = check[0].definedType(e$5.X, def$2); /* */ $s = 46; case 46: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - T[0] = _r$4; - $24r$3 = T[0]; - $s = 47; case 47: return $24r$3; - /* } else if ($assertType(_ref, ptrType$40, true)[1]) { */ case 10: - e$6 = _ref.$val; - /* */ if ($interfaceIsEqual(e$6.Len, $ifaceNil)) { $s = 48; continue; } - /* */ $s = 49; continue; - /* if ($interfaceIsEqual(e$6.Len, $ifaceNil)) { */ case 48: - typ$4 = new Slice.ptr($ifaceNil); - def$2.setUnderlying(typ$4); - _r$5 = check[0].varType(e$6.Elt); /* */ $s = 50; case 50: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - typ$4.elem = _r$5; - T[0] = typ$4; - $24r$4 = T[0]; - $s = 51; case 51: return $24r$4; - /* } */ case 49: - typ$5 = new Array.ptr(new $Int64(0, 0), $ifaceNil); - def$2.setUnderlying(typ$5); - _tuple = $assertType(e$6.Len, ptrType$41, true); - ok = _tuple[1]; - /* */ if (ok) { $s = 52; continue; } - /* */ $s = 53; continue; - /* if (ok) { */ case 52: - $r = check[0].error(e$6.Len, 77, "invalid use of [...] array (outside a composite literal)"); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - typ$5.len = new $Int64(-1, 4294967295); + yparams = y$7.params; + yresults = y$7.results; + /* */ if (x$7.TypeParams().Len() > 0) { $s = 51; continue; } + /* */ $s = 52; continue; + /* if (x$7.TypeParams().Len() > 0) { */ case 51: + xtparams = x$7.TypeParams().list(); + ytparams = y$7.TypeParams().list(); + targs = sliceType$3.nil; + _ref$3 = xtparams; + _i$2 = 0; + while (true) { + if (!(_i$2 < _ref$3.$length)) { break; } + i$2 = _i$2; + targs = $append(targs, x$7.TypeParams().At(i$2)); + _i$2++; + } + _r$5 = makeSubstMap(ytparams, targs); /* */ $s = 53; case 53: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + smap = _r$5; + check = ptrType$6.nil; + ctxt = NewContext(); + _ref$4 = xtparams; + _i$3 = 0; + /* while (true) { */ case 54: + /* if (!(_i$3 < _ref$4.$length)) { break; } */ if(!(_i$3 < _ref$4.$length)) { $s = 55; continue; } + i$3 = _i$3; + xtparam = ((_i$3 < 0 || _i$3 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$3]); + _r$6 = check.subst(nopos, ((i$3 < 0 || i$3 >= ytparams.$length) ? ($throwRuntimeError("index out of range"), undefined) : ytparams.$array[ytparams.$offset + i$3]).bound, smap, ptrType$10.nil, ctxt); /* */ $s = 56; case 56: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + ybound = _r$6; + _r$7 = c.identical(xtparam.bound, ybound, p); /* */ $s = 59; case 59: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + /* */ if (!_r$7) { $s = 57; continue; } + /* */ $s = 58; continue; + /* if (!_r$7) { */ case 57: + $s = -1; return false; + /* } */ case 58: + _i$3++; $s = 54; continue; - /* } else { */ case 53: - _r$6 = check[0].arrayLength(e$6.Len); /* */ $s = 56; case 56: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - typ$5.len = _r$6; - /* } */ case 54: - _r$7 = check[0].varType(e$6.Elt); /* */ $s = 57; case 57: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - typ$5.elem = _r$7; - /* */ if ((x$3 = typ$5.len, (x$3.$high > 0 || (x$3.$high === 0 && x$3.$low >= 0)))) { $s = 58; continue; } - /* */ $s = 59; continue; - /* if ((x$3 = typ$5.len, (x$3.$high > 0 || (x$3.$high === 0 && x$3.$low >= 0)))) { */ case 58: - T[0] = typ$5; - $24r$5 = T[0]; - $s = 60; case 60: return $24r$5; - /* } */ case 59: - $s = 19; continue; - /* } else if ($assertType(_ref, ptrType$41, true)[1]) { */ case 11: - e$7 = _ref.$val; - $r = check[0].error(e$7, 81, "invalid use of '...'"); /* */ $s = 61; case 61: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].use(new sliceType$11([e$7.Elt])); /* */ $s = 62; case 62: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 19; continue; - /* } else if ($assertType(_ref, ptrType$42, true)[1]) { */ case 12: - e$8 = _ref.$val; - typ$6 = new Struct.ptr(sliceType$10.nil, sliceType$5.nil); - def$2.setUnderlying(typ$6); - $r = check[0].structType(typ$6, e$8); /* */ $s = 63; case 63: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - T[0] = typ$6; - $24r$6 = T[0]; - $s = 64; case 64: return $24r$6; - /* } else if ($assertType(_ref, ptrType$43, true)[1]) { */ case 13: - e$9 = _ref.$val; - typ$7 = new Pointer.ptr($ifaceNil); - typ$7.base = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - def$2.setUnderlying(typ$7); - _r$8 = check[0].varType(e$9.X); /* */ $s = 65; case 65: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - typ$7.base = _r$8; - T[0] = typ$7; - $24r$7 = T[0]; - $s = 66; case 66: return $24r$7; - /* } else if ($assertType(_ref, ptrType$44, true)[1]) { */ case 14: - e$10 = _ref.$val; - typ$8 = new Signature.ptr(ptrType$48.nil, ptrType$48.nil, ptrType.nil, ptrType$16.nil, ptrType$15.nil, ptrType$15.nil, false); - def$2.setUnderlying(typ$8); - $r = check[0].funcType(typ$8, ptrType$49.nil, e$10); /* */ $s = 67; case 67: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - T[0] = typ$8; - $24r$8 = T[0]; - $s = 68; case 68: return $24r$8; - /* } else if ($assertType(_ref, ptrType$45, true)[1]) { */ case 15: - e$11 = _ref.$val; - typ$9 = check[0].newInterface(); - def$2.setUnderlying(typ$9); - $r = check[0].interfaceType(typ$9, e$11, def$2); /* */ $s = 69; case 69: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - T[0] = typ$9; - $24r$9 = T[0]; - $s = 70; case 70: return $24r$9; - /* } else if ($assertType(_ref, ptrType$46, true)[1]) { */ case 16: - e[0] = _ref.$val; - typ$1[0] = new Map.ptr($ifaceNil, $ifaceNil); - def$2.setUnderlying(typ$1[0]); - _r$9 = check[0].varType(e[0].Key); /* */ $s = 71; case 71: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - typ$1[0].key = _r$9; - _r$10 = check[0].varType(e[0].Value); /* */ $s = 72; case 72: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - typ$1[0].elem = _r$10; - check[0].later((function(T, check, e, e0, typ$1, x, x$1) { return function Checker·typInternal·func2() { - var {_r$11, why, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$11 = Comparable(typ$1[0].key); /* */ $s = 3; case 3: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - /* */ if (!_r$11) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!_r$11) { */ case 1: - why = ""; - if (isTypeParam(typ$1[0].key)) { - why = " (missing comparable constraint)"; - } - $r = check[0].errorf(e[0].Key, 28, "invalid map key type %s%s", new sliceType$6([typ$1[0].key, new $String(why)])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·typInternal·func2, $c: true, $r, _r$11, why, $s};return $f; - }; })(T, check, e, e0, typ$1, x, x$1)).describef(e[0].Key, "check map key %s", new sliceType$6([typ$1[0].key])); - T[0] = typ$1[0]; - $24r$10 = T[0]; - $s = 73; case 73: return $24r$10; - /* } else if ($assertType(_ref, ptrType$47, true)[1]) { */ case 17: - e$12 = _ref.$val; - typ$10 = new Chan.ptr(0, $ifaceNil); - def$2.setUnderlying(typ$10); - dir$1 = 0; - _3 = e$12.Dir; - /* */ if (_3 === (3)) { $s = 75; continue; } - /* */ if (_3 === (1)) { $s = 76; continue; } - /* */ if (_3 === (2)) { $s = 77; continue; } - /* */ $s = 78; continue; - /* if (_3 === (3)) { */ case 75: - $s = 79; continue; - /* } else if (_3 === (1)) { */ case 76: - dir$1 = 1; - $s = 79; continue; - /* } else if (_3 === (2)) { */ case 77: - dir$1 = 2; - $s = 79; continue; - /* } else { */ case 78: - $r = check[0].errorf(e$12, -1, "unknown channel direction %d", new sliceType$6([new ast.ChanDir(e$12.Dir)])); /* */ $s = 80; case 80: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 79: - case 74: - typ$10.dir = dir$1; - _r$11 = check[0].varType(e$12.Value); /* */ $s = 81; case 81: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - typ$10.elem = _r$11; - T[0] = typ$10; - $24r$11 = T[0]; - $s = 82; case 82: return $24r$11; - /* } else { */ case 18: - e$13 = _ref; - $r = check[0].errorf(e0[0], 25, "%s is not a type", new sliceType$6([e0[0]])); /* */ $s = 83; case 83: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].use(new sliceType$11([e0[0]])); /* */ $s = 84; case 84: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 19: - typ$11 = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - def$2.setUnderlying(typ$11); - T[0] = typ$11; - $24r$12 = T[0]; - $s = 85; case 85: return $24r$12; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return T[0]; } if($curGoroutine.asleep) { var $f = {$blk: typInternal, $c: true, $r, $24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, T, _1, _2, _3, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, check, def$2, dir$1, e, e$1, e$10, e$11, e$12, e$13, e$2, e$3, e$4, e$5, e$6, e$7, e$8, e$9, e0, ix, ok, typ$1, typ$10, typ$11, typ$2, typ$3, typ$4, typ$5, typ$6, typ$7, typ$8, typ$9, x, x$1, x$2, x$3, $s, $deferred};return $f; } } - }; - $ptrType(Checker).prototype.instantiatedType = function instantiatedType(ix, def$2) { - var {$24r, $24r$1, $24r$2, _arg, _arg$1, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, cause, check, def$2, gtyp, inst, ix, orig, res, targs, $s, $deferred, $r, $c} = $restore(this, {ix, def$2}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - cause = [cause]; - check = [check]; - inst = [inst]; - ix = [ix]; - res = [res]; - res[0] = $ifaceNil; - check[0] = this; - /* */ if (false) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (false) { */ case 1: - _r$1 = ix[0].IndexListExpr.Pos(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $r = check[0].trace(_r$1, "-- instantiating type %s with %s", new sliceType$6([ix[0].IndexListExpr.X, ix[0].IndexListExpr.Indices])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - check[0].indent = check[0].indent + (1) >> 0; - $deferred.push([(function(cause, check, inst, ix, res) { return function Checker·instantiatedType·func1() { - var {_r$2, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check[0].indent = check[0].indent - (1) >> 0; - _r$2 = ix[0].IndexListExpr.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $r = check[0].trace(_r$2, "=> %s", new sliceType$6([res[0]])); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·instantiatedType·func1, $c: true, $r, _r$2, $s};return $f; - }; })(cause, check, inst, ix, res), []]); - /* } */ case 2: - cause[0] = ""; - _r$2 = check[0].genericType(ix[0].IndexListExpr.X, (cause.$ptr || (cause.$ptr = new ptrType$34(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, cause)))); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - gtyp = _r$2; - /* */ if (!(cause[0] === "")) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (!(cause[0] === "")) { */ case 6: - $r = check[0].errorf(ix[0].Orig, 136, "invalid operation: %s (%s)", new sliceType$6([ix[0].Orig, new $String(cause[0])])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 7: - /* */ if ($interfaceIsEqual(gtyp, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if ($interfaceIsEqual(gtyp, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { */ case 9: - res[0] = gtyp; - $24r = res[0]; - $s = 11; case 11: return $24r; - /* } */ case 10: - _tuple = $assertType(gtyp, ptrType$9, true); - orig = _tuple[0]; - /* */ if (orig === ptrType$9.nil) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (orig === ptrType$9.nil) { */ case 12: - _r$3 = ix[0].IndexListExpr.Pos(); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _arg = new token.Pos(_r$3); - _arg$1 = gtyp; - _r$4 = fmt.Sprintf("%v: cannot instantiate %v", new sliceType$6([_arg, _arg$1])); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $panic(new $String(_r$4)); - /* } */ case 13: - _r$5 = check[0].typeList(ix[0].IndexListExpr.Indices); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - targs = _r$5; - /* */ if (targs === sliceType$2.nil) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (targs === sliceType$2.nil) { */ case 17: - def$2.setUnderlying((0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])); - res[0] = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - $24r$1 = res[0]; - $s = 19; case 19: return $24r$1; - /* } */ case 18: - _r$6 = ix[0].IndexListExpr.Pos(); /* */ $s = 20; case 20: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _r$7 = check[0].instance(_r$6, orig, targs, ptrType$9.nil, check[0].context()); /* */ $s = 21; case 21: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - inst[0] = $assertType(_r$7, ptrType$9); - def$2.setUnderlying(inst[0]); - check[0].later((function(cause, check, inst, ix, res) { return function Checker·instantiatedType·func2() { - var {_arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$20, _r$21, _r$8, _r$9, _tuple$1, err, i, pos, x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = check[0].recordInstance(ix[0].Orig, inst[0].TypeArgs().list(), inst[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$8 = ix[0].IndexListExpr.Pos(); /* */ $s = 4; case 4: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _arg$2 = _r$8; - _r$9 = inst[0].TypeParams(); /* */ $s = 5; case 5: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _r$10 = _r$9.Len(); /* */ $s = 6; case 6: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _arg$3 = _r$10; - _arg$4 = inst[0].TypeArgs().Len(); - _r$11 = check[0].validateTArgLen(_arg$2, _arg$3, _arg$4); /* */ $s = 7; case 7: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - /* */ if (_r$11) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (_r$11) { */ case 2: - _r$12 = ix[0].IndexListExpr.Pos(); /* */ $s = 8; case 8: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _arg$5 = _r$12; - _r$13 = inst[0].TypeParams(); /* */ $s = 9; case 9: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - _r$14 = _r$13.list(); /* */ $s = 10; case 10: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - _arg$6 = _r$14; - _arg$7 = inst[0].TypeArgs().list(); - _arg$8 = check[0].context(); - _r$15 = check[0].verify(_arg$5, _arg$6, _arg$7, _arg$8); /* */ $s = 11; case 11: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - _tuple$1 = _r$15; - i = _tuple$1[0]; - err = _tuple$1[1]; - /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 12: - _r$16 = ix[0].IndexListExpr.Pos(); /* */ $s = 15; case 15: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - pos = _r$16; - /* */ if (i < ix[0].IndexListExpr.Indices.$length) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (i < ix[0].IndexListExpr.Indices.$length) { */ case 16: - _r$17 = (x = ix[0].IndexListExpr.Indices, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])).Pos(); /* */ $s = 18; case 18: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - pos = _r$17; - /* } */ case 17: - _arg$9 = new atPos(((pos >> 0))); - _r$18 = err.Error(); /* */ $s = 19; case 19: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - _arg$10 = _r$18; - $r = check[0].softErrorf(_arg$9, 139, _arg$10, sliceType$6.nil); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 14; continue; - /* } else { */ case 13: - _arg$11 = check[0].pkg; - _r$19 = ix[0].IndexListExpr.Pos(); /* */ $s = 21; case 21: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - _arg$12 = _r$19; - _r$20 = inst[0].TypeParams(); /* */ $s = 22; case 22: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - _r$21 = _r$20.list(); /* */ $s = 23; case 23: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } - _arg$13 = _r$21; - _arg$14 = inst[0].TypeArgs().list(); - _arg$15 = ix[0].IndexListExpr.Indices; - $r = check[0].mono.recordInstance(_arg$11, _arg$12, _arg$13, _arg$14, _arg$15); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 14: - /* } */ case 3: - $r = check[0].validType(inst[0]); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·instantiatedType·func2, $c: true, $r, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$20, _r$21, _r$8, _r$9, _tuple$1, err, i, pos, x, $s};return $f; - }; })(cause, check, inst, ix, res)).describef(ix[0], "resolve instance %s", new sliceType$6([inst[0]])); - res[0] = inst[0]; - $24r$2 = res[0]; - $s = 22; case 22: return $24r$2; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return res[0]; } if($curGoroutine.asleep) { var $f = {$blk: instantiatedType, $c: true, $r, $24r, $24r$1, $24r$2, _arg, _arg$1, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, cause, check, def$2, gtyp, inst, ix, orig, res, targs, $s, $deferred};return $f; } } - }; - $ptrType(Checker).prototype.arrayLength = function arrayLength(e) { - var {_r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, _tuple$2, _v, check, e, n, name, obj, ok, ok$1, val, x, $s, $r, $c} = $restore(this, {e}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = [x]; - check = this; - _tuple = $assertType(e, ptrType$30, true); - name = _tuple[0]; - /* */ if (!(name === ptrType$30.nil)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(name === ptrType$30.nil)) { */ case 1: - _r$1 = check.environment.lookup(name.Name); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - obj = _r$1; - /* */ if ($interfaceIsEqual(obj, $ifaceNil)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if ($interfaceIsEqual(obj, $ifaceNil)) { */ case 4: - $r = check.errorf(name, 26, "undefined array length %s or missing type constraint", new sliceType$6([new $String(name.Name)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return new $Int64(-1, 4294967295); - /* } */ case 5: - _tuple$1 = $assertType(obj, ptrType$32, true); - ok = _tuple$1[1]; - /* */ if (!ok) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (!ok) { */ case 7: - $r = check.errorf(name, 26, "invalid array length %s", new sliceType$6([new $String(name.Name)])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return new $Int64(-1, 4294967295); - /* } */ case 8: - /* } */ case 2: - x[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = check.expr(x[0], e); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!((x[0].mode === 4))) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (!((x[0].mode === 4))) { */ case 11: - /* */ if (!((x[0].mode === 0))) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (!((x[0].mode === 0))) { */ case 13: - $r = check.errorf(x[0], 26, "array length %s must be constant", new sliceType$6([x[0]])); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 14: - $s = -1; return new $Int64(-1, 4294967295); - /* } */ case 12: - if (isUntyped(x[0].typ)) { _v = true; $s = 18; continue s; } - _r$2 = isInteger(x[0].typ); /* */ $s = 19; case 19: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _v = _r$2; case 18: - /* */ if (_v) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (_v) { */ case 16: - _r$3 = constant.ToInt(x[0].val); /* */ $s = 20; case 20: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - val = _r$3; - _r$4 = val.Kind(); /* */ $s = 23; case 23: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if (_r$4 === 3) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if (_r$4 === 3) { */ case 21: - _r$5 = representableConst(val, check, (2 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 2]), ptrType$50.nil); /* */ $s = 26; case 26: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* */ if (_r$5) { $s = 24; continue; } - /* */ $s = 25; continue; - /* if (_r$5) { */ case 24: - _r$6 = constant.Int64Val(val); /* */ $s = 27; case 27: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _tuple$2 = _r$6; - n = _tuple$2[0]; - ok$1 = _tuple$2[1]; - if (ok$1 && (n.$high > 0 || (n.$high === 0 && n.$low >= 0))) { - $s = -1; return n; + case 55: + _r$8 = check.subst(nopos, y$7.params, smap, ptrType$10.nil, ctxt); /* */ $s = 60; case 60: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + yparams = $assertType(_r$8, ptrType$16); + _r$9 = check.subst(nopos, y$7.results, smap, ptrType$10.nil, ctxt); /* */ $s = 61; case 61: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + yresults = $assertType(_r$9, ptrType$16); + /* } */ case 52: + if (!(x$7.variadic === y$7.variadic)) { _v$3 = false; $s = 63; continue s; } + _r$10 = c.identical(x$7.params, yparams, p); /* */ $s = 64; case 64: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _v$3 = _r$10; case 63: + if (!(_v$3)) { _v$2 = false; $s = 62; continue s; } + _r$11 = c.identical(x$7.results, yresults, p); /* */ $s = 65; case 65: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _v$2 = _r$11; case 62: + $24r$3 = _v$2; + $s = 66; case 66: return $24r$3; + /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 8: + x$8 = _ref.$val; + _tuple$7 = $assertType(y, ptrType$13, true); + y$8 = _tuple$7[0]; + /* */ if (!(y$8 === ptrType$13.nil)) { $s = 67; continue; } + /* */ $s = 68; continue; + /* if (!(y$8 === ptrType$13.nil)) { */ case 67: + unionSets = new $global.Map(); + _r$12 = computeUnionTypeSet(ptrType$6.nil, unionSets, nopos, x$8); /* */ $s = 69; case 69: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + xset = _r$12; + _r$13 = computeUnionTypeSet(ptrType$6.nil, unionSets, nopos, y$8); /* */ $s = 70; case 70: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + yset = _r$13; + _r$14 = xset.terms.equal(yset.terms); /* */ $s = 71; case 71: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + $24r$4 = _r$14; + $s = 72; case 72: return $24r$4; + /* } */ case 68: + $s = 16; continue; + /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 9: + x$9 = _ref.$val; + _tuple$8 = $assertType(y, ptrType$14, true); + y$9 = _tuple$8[0]; + ok$6 = _tuple$8[1]; + /* */ if (ok$6) { $s = 73; continue; } + /* */ $s = 74; continue; + /* if (ok$6) { */ case 73: + _r$15 = x$9.typeSet(); /* */ $s = 75; case 75: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + xset$1 = _r$15; + _r$16 = y$9.typeSet(); /* */ $s = 76; case 76: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + yset$1 = _r$16; + if (!(xset$1.comparable === yset$1.comparable)) { + $s = -1; return false; + } + _r$17 = xset$1.terms.equal(yset$1.terms); /* */ $s = 79; case 79: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + /* */ if (!_r$17) { $s = 77; continue; } + /* */ $s = 78; continue; + /* if (!_r$17) { */ case 77: + $s = -1; return false; + /* } */ case 78: + a = xset$1.methods; + b = yset$1.methods; + /* */ if (a.$length === b.$length) { $s = 80; continue; } + /* */ $s = 81; continue; + /* if (a.$length === b.$length) { */ case 80: + q = new ifacePair.ptr(x$9, y$9, p); + while (true) { + if (!(!(p === ptrType$24.nil))) { break; } + if (p.identical(q)) { + $s = -1; return true; + } + p = p.prev; } - $r = check.errorf(x[0], 26, "invalid array length %s", new sliceType$6([x[0]])); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return new $Int64(-1, 4294967295); - /* } */ case 25: - /* } */ case 22: - /* } */ case 17: - $r = check.errorf(x[0], 26, "array length %s must be integer", new sliceType$6([x[0]])); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return new $Int64(-1, 4294967295); - /* */ } return; } var $f = {$blk: arrayLength, $c: true, $r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, _tuple$2, _v, check, e, n, name, obj, ok, ok$1, val, x, $s};return $f; + /* */ if (false) { $s = 82; continue; } + /* */ $s = 83; continue; + /* if (false) { */ case 82: + $r = assertSortedMethods(a); /* */ $s = 84; case 84: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = assertSortedMethods(b); /* */ $s = 85; case 85: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 83: + _ref$5 = a; + _i$4 = 0; + /* while (true) { */ case 86: + /* if (!(_i$4 < _ref$5.$length)) { break; } */ if(!(_i$4 < _ref$5.$length)) { $s = 87; continue; } + i$4 = _i$4; + f$1 = ((_i$4 < 0 || _i$4 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$4]); + g$1 = ((i$4 < 0 || i$4 >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i$4]); + if (!(f$1.object.Id() === g$1.object.Id())) { _v$4 = true; $s = 90; continue s; } + _r$18 = c.identical(f$1.object.typ, g$1.object.typ, q); /* */ $s = 91; case 91: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + _v$4 = !_r$18; case 90: + /* */ if (_v$4) { $s = 88; continue; } + /* */ $s = 89; continue; + /* if (_v$4) { */ case 88: + $s = -1; return false; + /* } */ case 89: + _i$4++; + $s = 86; continue; + case 87: + $s = -1; return true; + /* } */ case 81: + /* } */ case 74: + $s = 16; continue; + /* } else if ($assertType(_ref, ptrType$30, true)[1]) { */ case 10: + x$10 = _ref.$val; + _tuple$9 = $assertType(y, ptrType$30, true); + y$10 = _tuple$9[0]; + ok$7 = _tuple$9[1]; + /* */ if (ok$7) { $s = 92; continue; } + /* */ $s = 93; continue; + /* if (ok$7) { */ case 92: + _r$19 = c.identical(x$10.key, y$10.key, p); /* */ $s = 95; case 95: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + if (!(_r$19)) { _v$5 = false; $s = 94; continue s; } + _r$20 = c.identical(x$10.elem, y$10.elem, p); /* */ $s = 96; case 96: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + _v$5 = _r$20; case 94: + $24r$5 = _v$5; + $s = 97; case 97: return $24r$5; + /* } */ case 93: + $s = 16; continue; + /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 11: + x$11 = _ref.$val; + _tuple$10 = $assertType(y, ptrType$26, true); + y$11 = _tuple$10[0]; + ok$8 = _tuple$10[1]; + /* */ if (ok$8) { $s = 98; continue; } + /* */ $s = 99; continue; + /* if (ok$8) { */ case 98: + if (!(x$11.dir === y$11.dir)) { _v$6 = false; $s = 100; continue s; } + _r$21 = c.identical(x$11.elem, y$11.elem, p); /* */ $s = 101; case 101: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + _v$6 = _r$21; case 100: + $24r$6 = _v$6; + $s = 102; case 102: return $24r$6; + /* } */ case 99: + $s = 16; continue; + /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 12: + x$12 = _ref.$val; + _tuple$11 = $assertType(y, ptrType$10, true); + y$12 = _tuple$11[0]; + ok$9 = _tuple$11[1]; + /* */ if (ok$9) { $s = 103; continue; } + /* */ $s = 104; continue; + /* if (ok$9) { */ case 103: + xargs = x$12.TypeArgs().list(); + yargs = y$12.TypeArgs().list(); + if (!((xargs.$length === yargs.$length))) { + $s = -1; return false; + } + _ref$6 = xargs; + _i$5 = 0; + /* while (true) { */ case 105: + /* if (!(_i$5 < _ref$6.$length)) { break; } */ if(!(_i$5 < _ref$6.$length)) { $s = 106; continue; } + i$5 = _i$5; + xarg = ((_i$5 < 0 || _i$5 >= _ref$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$6.$array[_ref$6.$offset + _i$5]); + _r$22 = Identical(xarg, ((i$5 < 0 || i$5 >= yargs.$length) ? ($throwRuntimeError("index out of range"), undefined) : yargs.$array[yargs.$offset + i$5])); /* */ $s = 109; case 109: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + /* */ if (!_r$22) { $s = 107; continue; } + /* */ $s = 108; continue; + /* if (!_r$22) { */ case 107: + $s = -1; return false; + /* } */ case 108: + _i$5++; + $s = 105; continue; + case 106: + $s = -1; return indenticalOrigin(x$12, y$12); + /* } */ case 104: + $s = 16; continue; + /* } else if ($assertType(_ref, ptrType$15, true)[1]) { */ case 13: + x$13 = _ref.$val; + $s = 16; continue; + /* } else if (_ref === $ifaceNil) { */ case 14: + x$14 = _ref; + $s = 16; continue; + /* } else { */ case 15: + x$15 = _ref; + unreachable(); + /* } */ case 16: + $s = -1; return false; + /* */ } return; } var $f = {$blk: identical$1, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, _v$2, _v$3, _v$4, _v$5, _v$6, a, b, c, check, ctxt, f, f$1, g, g$1, i, i$1, i$2, i$3, i$4, i$5, ok, ok$1, ok$2, ok$3, ok$4, ok$5, ok$6, ok$7, ok$8, ok$9, p, q, smap, targs, unionSets, v, w, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9, xarg, xargs, xset, xset$1, xtparam, xtparams, y, y$1, y$10, y$11, y$12, y$2, y$3, y$4, y$5, y$6, y$7, y$8, y$9, yargs, ybound, yparams, yresults, yset, yset$1, ytparams, $s};return $f; }; - $ptrType(Checker).prototype.typeList = function typeList(list) { - var {_i, _r$1, _ref, check, i, list, res, t, x, $s, $r, $c} = $restore(this, {list}); + indenticalOrigin = function indenticalOrigin$1(x, y) { + var x, y; + return x.Origin().obj === y.Origin().obj; + }; + identicalInstance = function identicalInstance$1(xorig, xargs, yorig, yargs) { + var {$24r, _i, _r, _r$1, _ref, i, xa, xargs, xorig, yargs, yorig, $s, $r, $c} = $restore(this, {xorig, xargs, yorig, yargs}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - res = $makeSlice(sliceType$2, list.$length); - _ref = list; + if (!((xargs.$length === yargs.$length))) { + $s = -1; return false; + } + _ref = xargs; _i = 0; /* while (true) { */ case 1: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } i = _i; - x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$1 = check.varType(x); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - t = _r$1; - if ($interfaceIsEqual(t, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { - res = sliceType$2.nil; - } - if (!(res === sliceType$2.nil)) { - ((i < 0 || i >= res.$length) ? ($throwRuntimeError("index out of range"), undefined) : res.$array[res.$offset + i] = t); - } + xa = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r = Identical(xa, ((i < 0 || i >= yargs.$length) ? ($throwRuntimeError("index out of range"), undefined) : yargs.$array[yargs.$offset + i])); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!_r) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!_r) { */ case 3: + $s = -1; return false; + /* } */ case 4: _i++; $s = 1; continue; case 2: - $s = -1; return res; - /* */ } return; } var $f = {$blk: typeList, $c: true, $r, _i, _r$1, _ref, check, i, list, res, t, x, $s};return $f; - }; - $ptrType(term).prototype.String = function String$3() { - var {$24r, $24r$1, _r$1, _r$2, x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - /* */ if (x === ptrType$4.nil) { $s = 2; continue; } - /* */ if ($interfaceIsEqual(x.typ, $ifaceNil)) { $s = 3; continue; } - /* */ if (x.tilde) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (x === ptrType$4.nil) { */ case 2: - $s = -1; return "\xE2\x88\x85"; - /* } else if ($interfaceIsEqual(x.typ, $ifaceNil)) { */ case 3: - $s = -1; return "\xF0\x9D\x93\xA4"; - /* } else if (x.tilde) { */ case 4: - _r$1 = x.typ.String(); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = "~" + _r$1; - $s = 8; case 8: return $24r; - /* } else { */ case 5: - _r$2 = x.typ.String(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r$1 = _r$2; - $s = 10; case 10: return $24r$1; - /* } */ case 6: - case 1: - $s = -1; return ""; - /* */ } return; } var $f = {$blk: String$3, $c: true, $r, $24r, $24r$1, _r$1, _r$2, x, $s};return $f; + _r$1 = Identical(xorig, yorig); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 7; case 7: return $24r; + /* */ } return; } var $f = {$blk: identicalInstance$1, $c: true, $r, $24r, _i, _r, _r$1, _ref, i, xa, xargs, xorig, yargs, yorig, $s};return $f; }; - $ptrType(term).prototype.union = function union(y) { - var {_, _$1, _r$1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, x, y, $s, $r, $c} = $restore(this, {y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ = ptrType$4.nil; - _$1 = ptrType$4.nil; - x = this; - if (x === ptrType$4.nil && y === ptrType$4.nil) { - _tmp = ptrType$4.nil; - _tmp$1 = ptrType$4.nil; - _ = _tmp; - _$1 = _tmp$1; - $s = -1; return [_, _$1]; - } else if (x === ptrType$4.nil) { - _tmp$2 = y; - _tmp$3 = ptrType$4.nil; - _ = _tmp$2; - _$1 = _tmp$3; - $s = -1; return [_, _$1]; - } else if (y === ptrType$4.nil) { - _tmp$4 = x; - _tmp$5 = ptrType$4.nil; - _ = _tmp$4; - _$1 = _tmp$5; - $s = -1; return [_, _$1]; - } else if ($interfaceIsEqual(x.typ, $ifaceNil)) { - _tmp$6 = x; - _tmp$7 = ptrType$4.nil; - _ = _tmp$6; - _$1 = _tmp$7; - $s = -1; return [_, _$1]; - } else if ($interfaceIsEqual(y.typ, $ifaceNil)) { - _tmp$8 = y; - _tmp$9 = ptrType$4.nil; - _ = _tmp$8; - _$1 = _tmp$9; - $s = -1; return [_, _$1]; - } - _r$1 = x.disjoint(y); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (_r$1) { */ case 1: - _tmp$10 = x; - _tmp$11 = y; - _ = _tmp$10; - _$1 = _tmp$11; - $s = -1; return [_, _$1]; - /* } */ case 2: - if (x.tilde || !y.tilde) { - _tmp$12 = x; - _tmp$13 = ptrType$4.nil; - _ = _tmp$12; - _$1 = _tmp$13; - $s = -1; return [_, _$1]; + Default = function Default$1(t) { + var _1, _tuple, ok, t, t$1; + _tuple = $assertType(t, ptrType$4, true); + t$1 = _tuple[0]; + ok = _tuple[1]; + if (ok) { + _1 = t$1.kind; + if (_1 === (19)) { + return (1 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 1]); + } else if (_1 === (20)) { + return (2 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 2]); + } else if (_1 === (21)) { + return universeRune; + } else if (_1 === (22)) { + return (14 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 14]); + } else if (_1 === (23)) { + return (16 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 16]); + } else if (_1 === (24)) { + return (17 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 17]); + } } - _tmp$14 = y; - _tmp$15 = ptrType$4.nil; - _ = _tmp$14; - _$1 = _tmp$15; - $s = -1; return [_, _$1]; - /* */ } return; } var $f = {$blk: union, $c: true, $r, _, _$1, _r$1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, x, y, $s};return $f; + return t; }; - $ptrType(term).prototype.intersect = function intersect(y) { - var {_r$1, x, y, $s, $r, $c} = $restore(this, {y}); + $pkg.Default = Default; + maxType = function maxType$1(x, y) { + var {_r, _r$1, _v, _v$1, x, y, $s, $r, $c} = $restore(this, {x, y}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - if (x === ptrType$4.nil || y === ptrType$4.nil) { - $s = -1; return ptrType$4.nil; - } else if ($interfaceIsEqual(x.typ, $ifaceNil)) { - $s = -1; return y; - } else if ($interfaceIsEqual(y.typ, $ifaceNil)) { + if ($interfaceIsEqual(x, y)) { $s = -1; return x; } - _r$1 = x.disjoint(y); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 1; continue; } + if (!(isUntyped(x) && isUntyped(y))) { _v$1 = false; $s = 4; continue s; } + _r = isNumeric(x); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v$1 = _r; case 4: + if (!(_v$1)) { _v = false; $s = 3; continue s; } + _r$1 = isNumeric(y); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = _r$1; case 3: + /* */ if (_v) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (_r$1) { */ case 1: - $s = -1; return ptrType$4.nil; + /* if (_v) { */ case 1: + if ($assertType(x, ptrType$4).kind > $assertType(y, ptrType$4).kind) { + $s = -1; return x; + } + $s = -1; return y; /* } */ case 2: - if (!x.tilde || y.tilde) { - $s = -1; return x; - } - $s = -1; return y; - /* */ } return; } var $f = {$blk: intersect, $c: true, $r, _r$1, x, y, $s};return $f; + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: maxType$1, $c: true, $r, _r, _r$1, _v, _v$1, x, y, $s};return $f; }; - $ptrType(term).prototype.includes = function includes(t) { - var {$24r, _r$1, _r$2, t, u, x, $s, $r, $c} = $restore(this, {t}); + NewPointer = function NewPointer$1(elem) { + var elem; + return new Pointer.ptr(elem); + }; + $pkg.NewPointer = NewPointer; + $ptrType(Pointer).prototype.Elem = function Elem$1() { + var p; + p = this; + return p.base; + }; + $ptrType(Pointer).prototype.Underlying = function Underlying$6() { + var p; + p = this; + return p; + }; + $ptrType(Pointer).prototype.String = function String$16() { + var {$24r, _r, p, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - if (x === ptrType$4.nil) { - $s = -1; return false; - } else if ($interfaceIsEqual(x.typ, $ifaceNil)) { - $s = -1; return true; + p = this; + _r = TypeString(p, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$16, $c: true, $r, $24r, _r, p, $s};return $f; + }; + NewPackage = function NewPackage$1(path, name) { + var {_arg, _arg$1, _arg$2, _arg$3, _r, _r$1, name, path, scope, $s, $r, $c} = $restore(this, {path, name}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _arg = $pkg.Universe; + _arg$1 = nopos; + _arg$2 = nopos; + _r = fmt.Sprintf("package %q", new sliceType$5([new $String(path)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$3 = _r; + _r$1 = NewScope(_arg, _arg$1, _arg$2, _arg$3); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + scope = _r$1; + $s = -1; return new Package.ptr(path, name, scope, sliceType$23.nil, false, false, false, ""); + /* */ } return; } var $f = {$blk: NewPackage$1, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _r, _r$1, name, path, scope, $s};return $f; + }; + $pkg.NewPackage = NewPackage; + $ptrType(Package).prototype.Path = function Path() { + var pkg; + pkg = this; + return pkg.path; + }; + $ptrType(Package).prototype.Name = function Name$1() { + var pkg; + pkg = this; + return pkg.name; + }; + $ptrType(Package).prototype.SetName = function SetName(name) { + var name, pkg; + pkg = this; + pkg.name = name; + }; + $ptrType(Package).prototype.GoVersion = function GoVersion() { + var pkg; + pkg = this; + return pkg.goVersion; + }; + $ptrType(Package).prototype.Scope = function Scope$1() { + var pkg; + pkg = this; + if (!(pkg === ptrType$1.nil)) { + return pkg.scope; } - u = t; - /* */ if (x.tilde) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (x.tilde) { */ case 1: - _r$1 = under(u); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - u = _r$1; - /* } */ case 2: - _r$2 = Identical(x.typ, u); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 5; case 5: return $24r; - /* */ } return; } var $f = {$blk: includes, $c: true, $r, $24r, _r$1, _r$2, t, u, x, $s};return $f; + return $pkg.Universe; }; - $ptrType(term).prototype.subsetOf = function subsetOf(y) { - var {_r$1, x, y, $s, $r, $c} = $restore(this, {y}); + $ptrType(Package).prototype.Complete = function Complete() { + var pkg; + pkg = this; + return pkg.complete; + }; + $ptrType(Package).prototype.MarkComplete = function MarkComplete() { + var pkg; + pkg = this; + pkg.complete = true; + }; + $ptrType(Package).prototype.Imports = function Imports() { + var pkg; + pkg = this; + return pkg.imports; + }; + $ptrType(Package).prototype.SetImports = function SetImports(list$2) { + var list$2, pkg; + pkg = this; + pkg.imports = list$2; + }; + $ptrType(Package).prototype.String = function String$17() { + var {$24r, _r, pkg, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + pkg = this; + _r = fmt.Sprintf("package %s (%q)", new sliceType$5([new $String(pkg.name), new $String(pkg.path)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$17, $c: true, $r, $24r, _r, pkg, $s};return $f; + }; + $ptrType(operand).prototype.Pos = function Pos$2() { + var {$24r, _r, x, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: x = this; - if (x === ptrType$4.nil) { - $s = -1; return true; - } else if (y === ptrType$4.nil) { - $s = -1; return false; - } else if ($interfaceIsEqual(y.typ, $ifaceNil)) { - $s = -1; return true; - } else if ($interfaceIsEqual(x.typ, $ifaceNil)) { - $s = -1; return false; + if ($interfaceIsEqual(x.expr, $ifaceNil)) { + $s = -1; return nopos; } - _r$1 = x.disjoint(y); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (_r$1) { */ case 1: - $s = -1; return false; - /* } */ case 2: - $s = -1; return !x.tilde || y.tilde; - /* */ } return; } var $f = {$blk: subsetOf, $c: true, $r, _r$1, x, y, $s};return $f; + _r = x.expr.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Pos$2, $c: true, $r, $24r, _r, x, $s};return $f; }; - $ptrType(term).prototype.disjoint = function disjoint(y) { - var {$24r, _r$1, _r$2, _r$3, ux, uy, x, y, $s, $r, $c} = $restore(this, {y}); + operandString = function operandString$1(x, qf) { + var {_1, _2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, buf, expr, hasType, intro, qf, s, tpar, x, x$1, x$2, $s, $r, $c} = $restore(this, {x, qf}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - if (false && ($interfaceIsEqual(x.typ, $ifaceNil) || $interfaceIsEqual(y.typ, $ifaceNil))) { - $panic(new $String("invalid argument(s)")); + buf = [buf]; + if ((x.mode === 7) && $interfaceIsEqual(x.typ, (25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25]))) { + $s = -1; return "nil"; } - ux = x.typ; - /* */ if (y.tilde) { $s = 1; continue; } + buf[0] = new bytes.Buffer.ptr(sliceType$12.nil, 0, 0); + expr = ""; + /* */ if (!($interfaceIsEqual(x.expr, $ifaceNil))) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (y.tilde) { */ case 1: - _r$1 = under(ux); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - ux = _r$1; - /* } */ case 2: - uy = y.typ; - /* */ if (x.tilde) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (x.tilde) { */ case 4: - _r$2 = under(uy); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - uy = _r$2; - /* } */ case 5: - _r$3 = Identical(ux, uy); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r = !_r$3; - $s = 8; case 8: return $24r; - /* */ } return; } var $f = {$blk: disjoint, $c: true, $r, $24r, _r$1, _r$2, _r$3, ux, uy, x, y, $s};return $f; - }; - RelativeTo = function RelativeTo$1(pkg) { - var pkg; - if (pkg === ptrType$1.nil) { - return $throwNilPointerError; + /* if (!($interfaceIsEqual(x.expr, $ifaceNil))) { */ case 1: + _r = ExprString(x.expr); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + expr = _r; + $s = 3; continue; + /* } else { */ case 2: + _1 = x.mode; + /* */ if (_1 === (2)) { $s = 6; continue; } + /* */ if (_1 === (3)) { $s = 7; continue; } + /* */ if (_1 === (4)) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (_1 === (2)) { */ case 6: + expr = (x$1 = x.id, ((x$1 < 0 || x$1 >= predeclaredFuncs.length) ? ($throwRuntimeError("index out of range"), undefined) : predeclaredFuncs[x$1])).name; + $s = 9; continue; + /* } else if (_1 === (3)) { */ case 7: + _r$1 = TypeString(x.typ, qf); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + expr = _r$1; + $s = 9; continue; + /* } else if (_1 === (4)) { */ case 8: + _r$2 = x.val.String(); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + expr = _r$2; + /* } */ case 9: + case 5: + /* } */ case 3: + if (!(expr === "")) { + buf[0].WriteString(expr); + buf[0].WriteString(" ("); } - return (function RelativeTo·func1(other) { - var other; - if (pkg === other) { - return ""; + hasType = false; + switch (0) { default: + _2 = x.mode; + if ((_2 === (0)) || (_2 === (1)) || (_2 === (2)) || (_2 === (3))) { + } else if (!($interfaceIsEqual(x.typ, $ifaceNil))) { + if (isUntyped(x.typ)) { + buf[0].WriteString($assertType(x.typ, ptrType$4).name); + buf[0].WriteByte(32); + break; } - return other.Path(); - }); - }; - $pkg.RelativeTo = RelativeTo; - TypeString = function TypeString$1(typ$1, qf) { - var {buf, qf, typ$1, $s, $r, $c} = $restore(this, {typ$1, qf}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - buf = [buf]; - buf[0] = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); - $r = WriteType(buf[0], typ$1, qf); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + hasType = true; + } + } + buf[0].WriteString((x$2 = x.mode, ((x$2 < 0 || x$2 >= operandModeString.length) ? ($throwRuntimeError("index out of range"), undefined) : operandModeString[x$2]))); + /* */ if (x.mode === 4) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (x.mode === 4) { */ case 12: + _r$3 = x.val.String(); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + s = _r$3; + if (!(s === expr)) { + buf[0].WriteByte(32); + buf[0].WriteString(s); + } + /* } */ case 13: + /* */ if (hasType) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (hasType) { */ case 15: + /* */ if (!($interfaceIsEqual(x.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (!($interfaceIsEqual(x.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { */ case 17: + intro = ""; + _r$4 = isGeneric(x.typ); /* */ $s = 23; case 23: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (_r$4) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (_r$4) { */ case 20: + intro = " of generic type "; + $s = 22; continue; + /* } else { */ case 21: + intro = " of type "; + /* } */ case 22: + buf[0].WriteString(intro); + $r = WriteType(buf[0], x.typ, qf); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tuple = $assertType(x.typ, ptrType$15, true); + tpar = _tuple[0]; + /* */ if (!(tpar === ptrType$15.nil)) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (!(tpar === ptrType$15.nil)) { */ case 25: + buf[0].WriteString(" constrained by "); + $r = WriteType(buf[0], tpar.bound, qf); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$5 = hasEmptyTypeset(tpar); /* */ $s = 30; case 30: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (_r$5) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (_r$5) { */ case 28: + buf[0].WriteString(" with empty type set"); + /* } */ case 29: + /* } */ case 26: + $s = 19; continue; + /* } else { */ case 18: + buf[0].WriteString(" with invalid type"); + /* } */ case 19: + /* } */ case 16: + if (!(expr === "")) { + buf[0].WriteByte(41); + } $s = -1; return buf[0].String(); - /* */ } return; } var $f = {$blk: TypeString$1, $c: true, $r, buf, qf, typ$1, $s};return $f; + /* */ } return; } var $f = {$blk: operandString$1, $c: true, $r, _1, _2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, buf, expr, hasType, intro, qf, s, tpar, x, x$1, x$2, $s};return $f; }; - $pkg.TypeString = TypeString; - WriteType = function WriteType$1(buf, typ$1, qf) { - var {buf, qf, typ$1, $s, $r, $c} = $restore(this, {buf, typ$1, qf}); + $ptrType(operand).prototype.String = function String$18() { + var {$24r, _r, x, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = newTypeWriter(buf, qf).typ(typ$1); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: WriteType$1, $c: true, $r, buf, qf, typ$1, $s};return $f; + x = this; + _r = operandString(x, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$18, $c: true, $r, $24r, _r, x, $s};return $f; }; - $pkg.WriteType = WriteType; - WriteSignature = function WriteSignature$1(buf, sig, qf) { - var {buf, qf, sig, $s, $r, $c} = $restore(this, {buf, sig, qf}); + $ptrType(operand).prototype.setConst = function setConst(tok, lit) { + var {_1, _r, _r$1, kind, lit, tok, val, x, $s, $r, $c} = $restore(this, {tok, lit}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = newTypeWriter(buf, qf).signature(sig); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x = this; + kind = 0; + _1 = tok; + if (_1 === (5)) { + kind = 20; + } else if (_1 === (6)) { + kind = 22; + } else if (_1 === (7)) { + kind = 23; + } else if (_1 === (8)) { + kind = 21; + } else if (_1 === (9)) { + kind = 24; + } else { + unreachable(); + } + _r = constant.MakeFromLiteral(lit, tok, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + val = _r; + _r$1 = val.Kind(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1 === 0) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (_r$1 === 0) { */ case 2: + x.mode = 0; + x.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + $s = -1; return; + /* } */ case 3: + x.mode = 4; + x.typ = ((kind < 0 || kind >= $pkg.Typ.$length) ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + kind]); + x.val = val; $s = -1; return; - /* */ } return; } var $f = {$blk: WriteSignature$1, $c: true, $r, buf, qf, sig, $s};return $f; + /* */ } return; } var $f = {$blk: setConst, $c: true, $r, _1, _r, _r$1, kind, lit, tok, val, x, $s};return $f; }; - $pkg.WriteSignature = WriteSignature; - newTypeWriter = function newTypeWriter$1(buf, qf) { - var buf, qf; - return new typeWriter.ptr(buf, new $global.Map(), qf, ptrType$51.nil, ptrType$48.nil, true, false, false); + $ptrType(operand).prototype.isNil = function isNil$1() { + var x; + x = this; + return (x.mode === 7) && $interfaceIsEqual(x.typ, (25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25])); }; - newTypeHasher = function newTypeHasher$1(buf, ctxt) { - var {buf, ctxt, $s, $r, $c} = $restore(this, {buf, ctxt}); + $ptrType(operand).prototype.assignableTo = function assignableTo(check, T, cause) { + var {$24r, T, Tc, Tp, Tu, V, Vc, Vi, Vp, Vu, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _v, _v$1, cause, check, code, code$1, errorf, newType, ok, ok$1, ok$2, ok$3, ok$4, x, x$1, $s, $r, $c} = $restore(this, {check, T, cause}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = assert(!(ctxt === ptrType$51.nil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return new typeWriter.ptr(buf, new $global.Map(), $throwNilPointerError, ctxt, ptrType$48.nil, false, false, false); - /* */ } return; } var $f = {$blk: newTypeHasher$1, $c: true, $r, buf, ctxt, $s};return $f; - }; - $ptrType(typeWriter).prototype.byte$ = function byte$1(b) { - var b, w; - w = this; - if (!(w.ctxt === ptrType$51.nil)) { - if (b === 32) { - b = 35; - } - w.buf.WriteByte(b); - return; - } - w.buf.WriteByte(b); - if ((b === 44) || (b === 59)) { - w.buf.WriteByte(32); - } - }; - $ptrType(typeWriter).prototype.string = function string(s) { - var s, w; - w = this; - w.buf.WriteString(s); - }; - $ptrType(typeWriter).prototype.error = function error(msg) { - var msg, w; - w = this; - if (!(w.ctxt === ptrType$51.nil)) { - $panic(new $String(msg)); + T = [T]; + Tp = [Tp]; + Vp = [Vp]; + cause = [cause]; + check = [check]; + code = [code]; + code$1 = [code$1]; + errorf = [errorf]; + ok = [ok]; + ok$1 = [ok$1]; + x = [x]; + x$1 = [x$1]; + x[0] = this; + if ((x[0].mode === 0) || $interfaceIsEqual(T[0], (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { + $s = -1; return [true, 0]; } - w.buf.WriteString("<" + msg + ">"); - }; - $ptrType(typeWriter).prototype.typ = function typ$1(typ$2) { - var {_1, _arg, _arg$1, _entry, _i, _i$1, _i$2, _i$3, _key, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tuple, _tuple$1, _v, c, f, first, i, i$1, i$2, m, obj, parens, pkgAnnotate, s, t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, tag, typ$2, typ$3, w, x, $s, $deferred, $r, $c} = $restore(this, {typ$2}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - w = this; - /* */ if ((_entry = $mapIndex(w.seen,Type.keyFor(typ$2)), _entry !== undefined ? _entry.v : false)) { $s = 1; continue; } + V = x[0].typ; + _r = Identical(V, T[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 1; continue; } /* */ $s = 2; continue; - /* if ((_entry = $mapIndex(w.seen,Type.keyFor(typ$2)), _entry !== undefined ? _entry.v : false)) { */ case 1: - _r$1 = goTypeName(typ$2); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $r = w.error("cycle to " + _r$1); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; + /* if (_r) { */ case 1: + $s = -1; return [true, 0]; /* } */ case 2: - _key = typ$2; (w.seen || $throwRuntimeError("assignment to entry in nil map")).set(Type.keyFor(_key), { k: _key, v: true }); - $deferred.push([function(_arg, _arg$1) { $mapDelete(_arg, Type.keyFor(_arg$1)); }, [w.seen, typ$2]]); - _ref = typ$2; - /* */ if (_ref === $ifaceNil) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$8, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 9; continue; } - /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 10; continue; } - /* */ if ($assertType(_ref, ptrType$15, true)[1]) { $s = 11; continue; } - /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 12; continue; } - /* */ if ($assertType(_ref, ptrType$12, true)[1]) { $s = 13; continue; } - /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 14; continue; } - /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 15; continue; } - /* */ if ($assertType(_ref, ptrType$29, true)[1]) { $s = 16; continue; } - /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 17; continue; } - /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 18; continue; } - /* */ $s = 19; continue; - /* switch (0) { default: if (_ref === $ifaceNil) { */ case 5: - t = _ref; - w.error("nil"); - $s = 20; continue; - /* } else if ($assertType(_ref, ptrType$8, true)[1]) { */ case 6: - t$1 = _ref.$val; - /* */ if (token.IsExported(t$1.name)) { $s = 21; continue; } + _r$1 = under(V); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + Vu = _r$1; + _r$2 = under(T[0]); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + Tu = _r$2; + _tuple = $assertType(V, ptrType$15, true); + Vp[0] = _tuple[0]; + _tuple$1 = $assertType(T[0], ptrType$15, true); + Tp[0] = _tuple$1[0]; + /* */ if (isUntyped(Vu)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (isUntyped(Vu)) { */ case 6: + $r = assert(Vp[0] === ptrType$15.nil); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!(Tp[0] === ptrType$15.nil)) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!(Tp[0] === ptrType$15.nil)) { */ case 9: + _r$3 = Tp[0].is((function(T, Tp, Vp, cause, check, code, code$1, errorf, ok, ok$1, x, x$1) { return function operand·assignableTo·func1(t) { + var {_r$3, _tuple$2, newType, t, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (t === ptrType$5.nil) { + $s = -1; return false; + } + _r$3 = check[0].implicitTypeAndValue(x[0], t.typ); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$2 = _r$3; + newType = _tuple$2[0]; + $s = -1; return !($interfaceIsEqual(newType, $ifaceNil)); + /* */ } return; } var $f = {$blk: operand·assignableTo·func1, $c: true, $r, _r$3, _tuple$2, newType, t, $s};return $f; + }; })(T, Tp, Vp, cause, check, code, code$1, errorf, ok, ok$1, x, x$1)); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = [_r$3, 23]; + $s = 12; case 12: return $24r; + /* } */ case 10: + _r$4 = check[0].implicitTypeAndValue(x[0], T[0]); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$2 = _r$4; + newType = _tuple$2[0]; + $s = -1; return [!($interfaceIsEqual(newType, $ifaceNil)), 23]; + /* } */ case 7: + _r$5 = Identical(Vu, Tu); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (_r$5 && (!hasName(V) || !hasName(T[0])) && Vp[0] === ptrType$15.nil && Tp[0] === ptrType$15.nil) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (_r$5 && (!hasName(V) || !hasName(T[0])) && Vp[0] === ptrType$15.nil && Tp[0] === ptrType$15.nil) { */ case 14: + $s = -1; return [true, 0]; + /* } */ case 15: + _tuple$3 = $assertType(Tu, ptrType$14, true); + ok$2 = _tuple$3[1]; + if (ok$2 && Tp[0] === ptrType$15.nil) { _v = true; $s = 19; continue s; } + _r$6 = isInterfacePtr(Tu); /* */ $s = 20; case 20: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _v = _r$6; case 19: + /* */ if (_v) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (_v) { */ case 17: + _r$7 = x[0].Pos(); /* */ $s = 23; case 23: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$8 = check[0].implements$(_r$7, V, T[0], false, cause[0]); /* */ $s = 24; case 24: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + /* */ if (_r$8) { $s = 21; continue; } /* */ $s = 22; continue; - /* if (token.IsExported(t$1.name)) { */ case 21: - _r$2 = $pkg.Unsafe.scope.Lookup(t$1.name); /* */ $s = 23; case 23: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple = $assertType(_r$2, ptrType$17, true); - obj = _tuple[0]; - /* */ if (!(obj === ptrType$17.nil)) { $s = 24; continue; } - /* */ $s = 25; continue; - /* if (!(obj === ptrType$17.nil)) { */ case 24: - $r = w.typeName(obj); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* break; */ $s = 20; continue; - /* } */ case 25: + /* if (_r$8) { */ case 21: + $s = -1; return [true, 0]; /* } */ case 22: - w.string(t$1.name); - $s = 20; continue; - /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 7: - t$2 = _ref.$val; - w.byte$(91); - w.string(strconv.FormatInt(t$2.len, 10)); - w.byte$(93); - $r = w.typ(t$2.elem); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 20; continue; - /* } else if ($assertType(_ref, ptrType$25, true)[1]) { */ case 8: - t$3 = _ref.$val; - w.string("[]"); - $r = w.typ(t$3.elem); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 20; continue; - /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 9: - t$4 = _ref.$val; - w.string("struct{"); - _ref$1 = t$4.fields; - _i = 0; - /* while (true) { */ case 29: - /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 30; continue; } - i = _i; - f = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); - if (i > 0) { - w.byte$(59); - } - pkgAnnotate = false; - if (w.qf === $throwNilPointerError && w.pkgInfo && !token.IsExported(f.object.name)) { - pkgAnnotate = true; - w.pkgInfo = false; - } - if (!f.embedded) { - w.string(f.object.name); - w.byte$(32); - } - $r = w.typ(f.object.typ); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (pkgAnnotate) { - w.string(" /* package "); - w.string(f.object.pkg.Path()); - w.string(" */ "); - } - tag = t$4.Tag(i); - if (!(tag === "")) { - w.byte$(32); - w.string(strconv.Quote(tag)); - } - _i++; - $s = 29; continue; - case 30: - w.byte$(125); - $s = 20; continue; - /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 10: - t$5 = _ref.$val; - w.byte$(42); - $r = w.typ(t$5.base); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 20; continue; - /* } else if ($assertType(_ref, ptrType$15, true)[1]) { */ case 11: - t$6 = _ref.$val; - $r = w.tuple(t$6, false); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 20; continue; - /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 12: - t$7 = _ref.$val; - w.string("func"); - $r = w.signature(t$7); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 20; continue; - /* } else if ($assertType(_ref, ptrType$12, true)[1]) { */ case 13: - t$8 = _ref.$val; - if (t$8.Len() === 0) { - w.error("empty union"); - /* break; */ $s = 20; continue; + if (Vp[0] === ptrType$15.nil) { + $s = -1; return [false, 21]; } - _ref$2 = t$8.terms; - _i$1 = 0; - /* while (true) { */ case 35: - /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 36; continue; } - i$1 = _i$1; - t$15 = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); - if (i$1 > 0) { - w.string(" | "); - } - if (t$15.tilde) { - w.byte$(126); + if (!(cause[0] === ptrType$35.nil)) { + cause[0].$set(""); + } + /* } */ case 18: + _tuple$4 = $assertType(Vu, ptrType$14, true); + Vi = _tuple$4[0]; + /* */ if (!(Vi === ptrType$14.nil) && Vp[0] === ptrType$15.nil) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (!(Vi === ptrType$14.nil) && Vp[0] === ptrType$15.nil) { */ case 25: + _r$9 = x[0].Pos(); /* */ $s = 29; case 29: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$10 = check[0].implements$(_r$9, T[0], V, false, ptrType$35.nil); /* */ $s = 30; case 30: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + /* */ if (_r$10) { $s = 27; continue; } + /* */ $s = 28; continue; + /* if (_r$10) { */ case 27: + if (!(cause[0] === ptrType$35.nil)) { + cause[0].$set("need type assertion"); } - $r = w.typ(t$15.typ); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$1++; - $s = 35; continue; - case 36: - $s = 20; continue; - /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 14: - t$9 = _ref.$val; - /* */ if (w.ctxt === ptrType$51.nil) { $s = 38; continue; } - /* */ $s = 39; continue; - /* if (w.ctxt === ptrType$51.nil) { */ case 38: - _r$3 = universeAny.Type(); /* */ $s = 42; case 42: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if ($interfaceIsEqual(t$9, _r$3)) { $s = 40; continue; } - /* */ $s = 41; continue; - /* if ($interfaceIsEqual(t$9, _r$3)) { */ case 40: - w.string("any"); - /* break; */ $s = 20; continue; - /* } */ case 41: - _r$4 = universeComparable.Type(); /* */ $s = 45; case 45: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if ($interfaceIsEqual(t$9, $assertType(_r$4, ptrType$9).underlying)) { $s = 43; continue; } - /* */ $s = 44; continue; - /* if ($interfaceIsEqual(t$9, $assertType(_r$4, ptrType$9).underlying)) { */ case 43: - w.string("interface{comparable}"); - /* break; */ $s = 20; continue; - /* } */ case 44: - /* } */ case 39: - /* */ if (t$9.implicit) { $s = 46; continue; } - /* */ $s = 47; continue; - /* if (t$9.implicit) { */ case 46: - /* */ if ((t$9.methods.$length === 0) && (t$9.embeddeds.$length === 1)) { $s = 48; continue; } - /* */ $s = 49; continue; - /* if ((t$9.methods.$length === 0) && (t$9.embeddeds.$length === 1)) { */ case 48: - $r = w.typ((x = t$9.embeddeds, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* break; */ $s = 20; continue; - /* } */ case 49: - w.string("/* implicit */ "); - /* } */ case 47: - w.string("interface{"); - first = true; - /* */ if (!(w.ctxt === ptrType$51.nil)) { $s = 51; continue; } - /* */ $s = 52; continue; - /* if (!(w.ctxt === ptrType$51.nil)) { */ case 51: - _r$5 = t$9.typeSet(); /* */ $s = 54; case 54: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - $r = w.typeSet(_r$5); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 53; continue; - /* } else { */ case 52: - _ref$3 = t$9.methods; - _i$2 = 0; - /* while (true) { */ case 56: - /* if (!(_i$2 < _ref$3.$length)) { break; } */ if(!(_i$2 < _ref$3.$length)) { $s = 57; continue; } - m = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]); - if (!first) { - w.byte$(59); + $s = -1; return [false, 23]; + /* } */ case 28: + /* } */ case 26: + _tuple$5 = $assertType(Vu, ptrType$26, true); + Vc = _tuple$5[0]; + ok$3 = _tuple$5[1]; + /* */ if (ok$3 && (Vc.dir === 0)) { $s = 31; continue; } + /* */ $s = 32; continue; + /* if (ok$3 && (Vc.dir === 0)) { */ case 31: + _tuple$6 = $assertType(Tu, ptrType$26, true); + Tc = _tuple$6[0]; + ok$4 = _tuple$6[1]; + if (!(ok$4)) { _v$1 = false; $s = 35; continue s; } + _r$11 = Identical(Vc.elem, Tc.elem); /* */ $s = 36; case 36: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _v$1 = _r$11; case 35: + /* */ if (_v$1) { $s = 33; continue; } + /* */ $s = 34; continue; + /* if (_v$1) { */ case 33: + $s = -1; return [!hasName(V) || !hasName(T[0]), 22]; + /* } */ case 34: + /* } */ case 32: + if (Vp[0] === ptrType$15.nil && Tp[0] === ptrType$15.nil) { + $s = -1; return [false, 23]; + } + errorf[0] = (function(T, Tp, Vp, cause, check, code, code$1, errorf, ok, ok$1, x, x$1) { return function operand·assignableTo·func2(format, args) { + var {_r$12, args, format, msg, $s, $r, $c} = $restore(this, {format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + /* */ if (!(check[0] === ptrType$6.nil) && !(cause[0] === ptrType$35.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(check[0] === ptrType$6.nil) && !(cause[0] === ptrType$35.nil)) { */ case 1: + _r$12 = check[0].sprintf(format, args); /* */ $s = 3; case 3: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + msg = _r$12; + if (!(cause[0].$get() === "")) { + msg = msg + ("\n\t" + cause[0].$get()); } - first = false; - w.string(m.object.name); - $r = w.signature($assertType(m.object.typ, ptrType$27)); /* */ $s = 58; case 58: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$2++; - $s = 56; continue; - case 57: - _ref$4 = t$9.embeddeds; - _i$3 = 0; - /* while (true) { */ case 59: - /* if (!(_i$3 < _ref$4.$length)) { break; } */ if(!(_i$3 < _ref$4.$length)) { $s = 60; continue; } - typ$3 = ((_i$3 < 0 || _i$3 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$3]); - if (!first) { - w.byte$(59); + cause[0].$set(msg); + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: operand·assignableTo·func2, $c: true, $r, _r$12, args, format, msg, $s};return $f; + }; })(T, Tp, Vp, cause, check, code, code$1, errorf, ok, ok$1, x, x$1); + /* */ if (!hasName(V) && !(Tp[0] === ptrType$15.nil)) { $s = 37; continue; } + /* */ $s = 38; continue; + /* if (!hasName(V) && !(Tp[0] === ptrType$15.nil)) { */ case 37: + ok[0] = false; + code[0] = 23; + _r$12 = Tp[0].is((function(T, Tp, Vp, cause, check, code, code$1, errorf, ok, ok$1, x, x$1) { return function operand·assignableTo·func3(T$1) { + var {T$1, _r$12, _tuple$7, $s, $r, $c} = $restore(this, {T$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (T$1 === ptrType$5.nil) { + $s = -1; return false; } - first = false; - $r = w.typ(typ$3); /* */ $s = 61; case 61: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$3++; - $s = 59; continue; - case 60: - /* } */ case 53: - w.byte$(125); - $s = 20; continue; - /* } else if ($assertType(_ref, ptrType$28, true)[1]) { */ case 15: - t$10 = _ref.$val; - w.string("map["); - $r = w.typ(t$10.key); /* */ $s = 62; case 62: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - w.byte$(93); - $r = w.typ(t$10.elem); /* */ $s = 63; case 63: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 20; continue; - /* } else if ($assertType(_ref, ptrType$29, true)[1]) { */ case 16: - t$11 = _ref.$val; - s = ""; - parens = false; - _1 = t$11.dir; - if (_1 === (0)) { - s = "chan "; - _tuple$1 = $assertType(t$11.elem, ptrType$29, true); - c = _tuple$1[0]; - if (!(c === ptrType$29.nil) && (c.dir === 2)) { - parens = true; - } - } else if (_1 === (1)) { - s = "chan<- "; - } else if (_1 === (2)) { - s = "<-chan "; - } else { - w.error("unknown channel direction"); - } - w.string(s); - if (parens) { - w.byte$(40); - } - $r = w.typ(t$11.elem); /* */ $s = 64; case 64: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (parens) { - w.byte$(41); - } - $s = 20; continue; - /* } else if ($assertType(_ref, ptrType$9, true)[1]) { */ case 17: - t$12 = _ref.$val; - /* */ if (!(w.ctxt === ptrType$51.nil)) { $s = 65; continue; } - /* */ $s = 66; continue; - /* if (!(w.ctxt === ptrType$51.nil)) { */ case 65: - _r$6 = w.ctxt.getID(t$12); /* */ $s = 67; case 67: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _r$7 = strconv.Itoa(_r$6); /* */ $s = 68; case 68: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - $r = w.string(_r$7); /* */ $s = 69; case 69: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 66: - $r = w.typeName(t$12.obj); /* */ $s = 70; case 70: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!(t$12.inst === ptrType$52.nil)) { $s = 71; continue; } - if (!(w.ctxt === ptrType$51.nil)) { _v = false; $s = 74; continue s; } - _r$8 = t$12.TypeParams(); /* */ $s = 75; case 75: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _r$9 = _r$8.Len(); /* */ $s = 76; case 76: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _v = !((_r$9 === 0)); case 74: - /* */ if (_v) { $s = 72; continue; } - /* */ $s = 73; continue; - /* if (!(t$12.inst === ptrType$52.nil)) { */ case 71: - $r = w.typeList(t$12.inst.targs.list()); /* */ $s = 77; case 77: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 73; continue; - /* } else if (_v) { */ case 72: - _r$10 = t$12.TypeParams(); /* */ $s = 78; case 78: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _r$11 = _r$10.list(); /* */ $s = 79; case 79: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - $r = w.tParamList(_r$11); /* */ $s = 80; case 80: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 73: - $s = 20; continue; - /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 18: - t$13 = _ref.$val; - if (t$13.obj === ptrType$17.nil) { - w.error("unnamed type parameter"); - /* break; */ $s = 20; continue; - } - i$2 = tparamIndex(w.tparams.list(), t$13); - /* */ if (i$2 >= 0) { $s = 81; continue; } - /* */ $s = 82; continue; - /* if (i$2 >= 0) { */ case 81: - _r$12 = fmt.Sprintf("$%d", new sliceType$6([new $Int(i$2)])); /* */ $s = 84; case 84: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - $r = w.string(_r$12); /* */ $s = 85; case 85: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 83; continue; - /* } else { */ case 82: - w.string(t$13.obj.object.name); - if (w.tpSubscripts || !(w.ctxt === ptrType$51.nil)) { - w.string(subscript(t$13.id)); - } - /* } */ case 83: - $s = 20; continue; - /* } else { */ case 19: - t$14 = _ref; - _r$13 = t$14.String(); /* */ $s = 86; case 86: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - $r = w.string(_r$13); /* */ $s = 87; case 87: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } } */ case 20: - $s = -1; return; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: typ$1, $c: true, $r, _1, _arg, _arg$1, _entry, _i, _i$1, _i$2, _i$3, _key, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tuple, _tuple$1, _v, c, f, first, i, i$1, i$2, m, obj, parens, pkgAnnotate, s, t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, tag, typ$2, typ$3, w, x, $s, $deferred};return $f; } } - }; - $ptrType(typeWriter).prototype.typeSet = function typeSet(s) { - var {_i, _i$1, _r$1, _r$2, _ref, _ref$1, buf, first, m, s, term$1, termHashes, w, $s, $r, $c} = $restore(this, {s}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - w = this; - $r = assert(!(w.ctxt === ptrType$51.nil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - first = true; - _ref = s.methods; - _i = 0; - /* while (true) { */ case 2: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } - m = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (!first) { - w.byte$(59); - } - first = false; - w.string(m.object.name); - $r = w.signature($assertType(m.object.typ, ptrType$27)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 2; continue; - case 3: - /* */ if (s.terms.isAll()) { $s = 6; continue; } - /* */ if (s.terms.isEmpty()) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (s.terms.isAll()) { */ case 6: - $s = 9; continue; - /* } else if (s.terms.isEmpty()) { */ case 7: - _r$1 = s.terms.String(); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $r = w.string(_r$1); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 9; continue; - /* } else { */ case 8: - termHashes = sliceType$5.nil; - _ref$1 = s.terms; - _i$1 = 0; - /* while (true) { */ case 12: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 13; continue; } - buf = [buf]; - term$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - buf[0] = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); - if (term$1.tilde) { - buf[0].WriteByte(126); + _r$12 = x[0].assignableTo(check[0], T$1.typ, cause[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _tuple$7 = _r$12; + ok[0] = _tuple$7[0]; + code[0] = _tuple$7[1]; + /* */ if (!ok[0]) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!ok[0]) { */ case 2: + $r = errorf[0]("cannot assign %s to %s (in %s)", new sliceType$5([x[0].typ, T$1.typ, Tp[0]])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; + /* } */ case 3: + $s = -1; return true; + /* */ } return; } var $f = {$blk: operand·assignableTo·func3, $c: true, $r, T$1, _r$12, _tuple$7, $s};return $f; + }; })(T, Tp, Vp, cause, check, code, code$1, errorf, ok, ok$1, x, x$1)); /* */ $s = 39; case 39: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _r$12; + $s = -1; return [ok[0], code[0]]; + /* } */ case 38: + /* */ if (!(Vp[0] === ptrType$15.nil) && !hasName(T[0])) { $s = 40; continue; } + /* */ $s = 41; continue; + /* if (!(Vp[0] === ptrType$15.nil) && !hasName(T[0])) { */ case 40: + x$1[0] = $clone((x[0] === ptrType$63.nil && $throwNilPointerError(), x[0]), operand); + ok$1[0] = false; + code$1[0] = 23; + _r$13 = Vp[0].is((function(T, Tp, Vp, cause, check, code, code$1, errorf, ok, ok$1, x, x$1) { return function operand·assignableTo·func4(V$1) { + var {V$1, _r$13, _tuple$7, $s, $r, $c} = $restore(this, {V$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (V$1 === ptrType$5.nil) { + $s = -1; return false; } - _r$2 = newTypeHasher(buf[0], w.ctxt); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $r = _r$2.typ(term$1.typ); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - termHashes = $append(termHashes, buf[0].String()); - _i$1++; - $s = 12; continue; - case 13: - $r = sort.Strings(termHashes); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (!first) { - w.byte$(59); - } - w.string(strings.Join(termHashes, "|")); - /* } */ case 9: - case 5: - $s = -1; return; - /* */ } return; } var $f = {$blk: typeSet, $c: true, $r, _i, _i$1, _r$1, _r$2, _ref, _ref$1, buf, first, m, s, term$1, termHashes, w, $s};return $f; + x$1[0].typ = V$1.typ; + _r$13 = x$1[0].assignableTo(check[0], T[0], cause[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _tuple$7 = _r$13; + ok$1[0] = _tuple$7[0]; + code$1[0] = _tuple$7[1]; + /* */ if (!ok$1[0]) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!ok$1[0]) { */ case 2: + $r = errorf[0]("cannot assign %s (in %s) to %s", new sliceType$5([V$1.typ, Vp[0], T[0]])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; + /* } */ case 3: + $s = -1; return true; + /* */ } return; } var $f = {$blk: operand·assignableTo·func4, $c: true, $r, V$1, _r$13, _tuple$7, $s};return $f; + }; })(T, Tp, Vp, cause, check, code, code$1, errorf, ok, ok$1, x, x$1)); /* */ $s = 42; case 42: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _r$13; + $s = -1; return [ok$1[0], code$1[0]]; + /* } */ case 41: + $s = -1; return [false, 23]; + /* */ } return; } var $f = {$blk: assignableTo, $c: true, $r, $24r, T, Tc, Tp, Tu, V, Vc, Vi, Vp, Vu, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _v, _v$1, cause, check, code, code$1, errorf, newType, ok, ok$1, ok$2, ok$3, ok$4, x, x$1, $s};return $f; }; - $ptrType(typeWriter).prototype.typeList = function typeList$1(list) { - var {_i, _ref, i, list, typ$2, w, $s, $r, $c} = $restore(this, {list}); + $ptrType(objset).prototype.insert = function insert$1(obj) { + var {_entry, _key, _r, alt, id, obj, s, $s, $r, $c} = $restore(this, {obj}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - w = this; - w.byte$(91); - _ref = list; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - typ$2 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (i > 0) { - w.byte$(44); - } - $r = w.typ(typ$2); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 1; continue; - case 2: - w.byte$(93); - $s = -1; return; - /* */ } return; } var $f = {$blk: typeList$1, $c: true, $r, _i, _ref, i, list, typ$2, w, $s};return $f; + s = this; + _r = obj.Id(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + id = _r; + alt = (_entry = $mapIndex((s.$get()),$String.keyFor(id)), _entry !== undefined ? _entry.v : $ifaceNil); + if (!($interfaceIsEqual(alt, $ifaceNil))) { + $s = -1; return alt; + } + if (s.$get() === false) { + s.$set(new $global.Map()); + } + _key = id; (s.$get() || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: obj }); + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: insert$1, $c: true, $r, _entry, _key, _r, alt, id, obj, s, $s};return $f; + }; + isExported = function isExported$1(name) { + var _tuple, ch, name; + _tuple = utf8.DecodeRuneInString(name); + ch = _tuple[0]; + return unicode.IsUpper(ch); + }; + Id = function Id$2(pkg, name) { + var name, path, pkg; + if (isExported(name)) { + return name; + } + path = "_"; + if (!(pkg === ptrType$1.nil) && !(pkg.path === "")) { + path = pkg.path; + } + return path + "." + name; + }; + $pkg.Id = Id; + color.prototype.String = function String$19() { + var _1, c; + c = this.$val; + _1 = c; + if (_1 === (0)) { + return "white"; + } else if (_1 === (1)) { + return "black"; + } else { + return "grey"; + } + }; + $ptrType(color).prototype.String = function(...$args) { return new color(this.$get()).String(...$args); }; + colorFor = function colorFor$1(t) { + var t; + if (!($interfaceIsEqual(t, $ifaceNil))) { + return 1; + } + return 0; + }; + $ptrType(object).prototype.Parent = function Parent$2() { + var obj; + obj = this; + return obj.parent; + }; + $ptrType(object).prototype.Pos = function Pos$3() { + var obj; + obj = this; + return obj.pos; + }; + $ptrType(object).prototype.Pkg = function Pkg$1() { + var obj; + obj = this; + return obj.pkg; + }; + $ptrType(object).prototype.Name = function Name$2() { + var obj; + obj = this; + return obj.name; + }; + $ptrType(object).prototype.Type = function Type$4() { + var obj; + obj = this; + return obj.typ; + }; + $ptrType(object).prototype.Exported = function Exported$1() { + var obj; + obj = this; + return isExported(obj.name); + }; + $ptrType(object).prototype.Id = function Id$3() { + var obj; + obj = this; + return Id(obj.pkg, obj.name); + }; + $ptrType(object).prototype.String = function String$20() { + var obj; + obj = this; + $panic(new $String("abstract")); + }; + $ptrType(object).prototype.order = function order$1() { + var obj; + obj = this; + return obj.order_; + }; + $ptrType(object).prototype.color = function color$2() { + var obj; + obj = this; + return obj.color_; + }; + $ptrType(object).prototype.scopePos = function scopePos$1() { + var obj; + obj = this; + return obj.scopePos_; }; - $ptrType(typeWriter).prototype.tParamList = function tParamList(list) { - var {_i, _ref, i, list, prev, tpar, w, $s, $r, $c} = $restore(this, {list}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - w = this; - w.byte$(91); - prev = $ifaceNil; - _ref = list; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - tpar = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (tpar === ptrType$14.nil) { - w.error("nil type parameter"); - _i++; - /* continue; */ $s = 1; continue; - } - /* */ if (i > 0) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (i > 0) { */ case 3: - /* */ if (!($interfaceIsEqual(tpar.bound, prev))) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (!($interfaceIsEqual(tpar.bound, prev))) { */ case 5: - w.byte$(32); - $r = w.typ(prev); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 6: - w.byte$(44); - /* } */ case 4: - prev = tpar.bound; - $r = w.typ(tpar); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 1; continue; - case 2: - /* */ if (!($interfaceIsEqual(prev, $ifaceNil))) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (!($interfaceIsEqual(prev, $ifaceNil))) { */ case 9: - w.byte$(32); - $r = w.typ(prev); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 10: - w.byte$(93); - $s = -1; return; - /* */ } return; } var $f = {$blk: tParamList, $c: true, $r, _i, _ref, i, list, prev, tpar, w, $s};return $f; + $ptrType(object).prototype.setParent = function setParent$1(parent) { + var obj, parent; + obj = this; + obj.parent = parent; }; - $ptrType(typeWriter).prototype.typeName = function typeName(obj) { - var {_r$1, obj, w, $s, $r, $c} = $restore(this, {obj}); + $ptrType(object).prototype.setOrder = function setOrder$1(order$2) { + var {obj, order$2, $s, $r, $c} = $restore(this, {order$2}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - w = this; - _r$1 = packagePrefix(obj.object.pkg, w.qf); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $r = w.string(_r$1); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - w.string(obj.object.name); + obj = this; + $r = assert(order$2 > 0); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + obj.order_ = order$2; $s = -1; return; - /* */ } return; } var $f = {$blk: typeName, $c: true, $r, _r$1, obj, w, $s};return $f; + /* */ } return; } var $f = {$blk: setOrder$1, $c: true, $r, obj, order$2, $s};return $f; }; - $ptrType(typeWriter).prototype.tuple = function tuple(tup, variadic) { - var {_i, _r$1, _ref, _tuple, _tuple$1, i, ok, s, t, tup, typ$2, v, variadic, w, $s, $r, $c} = $restore(this, {tup, variadic}); + $ptrType(object).prototype.setColor = function setColor$1(color$3) { + var {color$3, obj, $s, $r, $c} = $restore(this, {color$3}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - w = this; - w.byte$(40); - /* */ if (!(tup === ptrType$15.nil)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(tup === ptrType$15.nil)) { */ case 1: - _ref = tup.vars; - _i = 0; - /* while (true) { */ case 3: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } - i = _i; - v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (i > 0) { - w.byte$(44); - } - if (w.ctxt === ptrType$51.nil && !(v.object.name === "") && w.paramNames) { - w.string(v.object.name); - w.byte$(32); - } - typ$2 = v.object.typ; - /* */ if (variadic && (i === (tup.vars.$length - 1 >> 0))) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (variadic && (i === (tup.vars.$length - 1 >> 0))) { */ case 5: - _tuple = $assertType(typ$2, ptrType$25, true); - s = _tuple[0]; - ok = _tuple[1]; - /* */ if (ok) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (ok) { */ case 7: - w.string("..."); - typ$2 = s.elem; - $s = 9; continue; - /* } else { */ case 8: - _r$1 = under(typ$2); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$1 = $assertType(_r$1, ptrType$8, true); - t = _tuple$1[0]; - if (t === ptrType$8.nil || !((t.kind === 17))) { - w.error("expected string type"); - _i++; - /* continue; */ $s = 3; continue; - } - $r = w.typ(typ$2); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - w.string("..."); - _i++; - /* continue; */ $s = 3; continue; - /* } */ case 9: - /* } */ case 6: - $r = w.typ(typ$2); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 3; continue; - case 4: - /* } */ case 2: - w.byte$(41); + obj = this; + $r = assert(!((color$3 === 0))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + obj.color_ = color$3; $s = -1; return; - /* */ } return; } var $f = {$blk: tuple, $c: true, $r, _i, _r$1, _ref, _tuple, _tuple$1, i, ok, s, t, tup, typ$2, v, variadic, w, $s};return $f; + /* */ } return; } var $f = {$blk: setColor$1, $c: true, $r, color$3, obj, $s};return $f; }; - $ptrType(typeWriter).prototype.signature = function signature(sig) { - var {n, sig, w, x, x$1, $s, $deferred, $r, $c} = $restore(this, {sig}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - w = [w]; - w[0] = this; - /* */ if (!((sig.TypeParams().Len() === 0))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!((sig.TypeParams().Len() === 0))) { */ case 1: - /* */ if (!(w[0].ctxt === ptrType$51.nil)) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!(w[0].ctxt === ptrType$51.nil)) { */ case 3: - $r = assert(w[0].tparams === ptrType$48.nil); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - w[0].tparams = sig.TypeParams(); - $deferred.push([(function(w) { return function typeWriter·signature·func1() { - w[0].tparams = ptrType$48.nil; - }; })(w), []]); - /* } */ case 4: - $r = w[0].tParamList(sig.TypeParams().list()); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - $r = w[0].tuple(sig.params, sig.variadic); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - n = sig.results.Len(); - if (n === 0) { - $s = -1; return; - } - w[0].byte$(32); - /* */ if ((n === 1) && (!(w[0].ctxt === ptrType$51.nil) || (x = sig.results.vars, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).object.name === "")) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if ((n === 1) && (!(w[0].ctxt === ptrType$51.nil) || (x = sig.results.vars, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).object.name === "")) { */ case 8: - $r = w[0].typ((x$1 = sig.results.vars, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])).object.typ); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 9: - $r = w[0].tuple(sig.results, false); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: signature, $c: true, $r, n, sig, w, x, x$1, $s, $deferred};return $f; } } + $ptrType(object).prototype.setScopePos = function setScopePos$1(pos) { + var obj, pos; + obj = this; + obj.scopePos_ = pos; }; - subscript = function subscript$1(x) { - var buf, i, x; - buf = arrayType.zero(); - i = 96; - while (true) { - i = i - (3) >> 0; - utf8.EncodeRune($subslice(new sliceType$14(buf), i), 8320 + (($div64(x, new $Uint64(0, 10), true).$low >> 0)) >> 0); - x = $div64(x, (new $Uint64(0, 10)), false); - if ((x.$high === 0 && x.$low === 0)) { - break; - } + $ptrType(object).prototype.sameId = function sameId$1(pkg, name) { + var name, obj, pkg; + obj = this; + if (!(name === obj.name)) { + return false; } - return ($bytesToString($subslice(new sliceType$14(buf), i))); - }; - $ptrType(_TypeSet).prototype.IsEmpty = function IsEmpty() { - var s; - s = this; - return s.terms.isEmpty(); + if (obj.Exported()) { + return true; + } + if (pkg === ptrType$1.nil || obj.pkg === ptrType$1.nil) { + return pkg === obj.pkg; + } + return pkg.path === obj.pkg.path; }; - $ptrType(_TypeSet).prototype.IsAll = function IsAll() { - var s; - s = this; - return s.IsMethodSet() && (s.methods.$length === 0); + $ptrType(object).prototype.less = function less(b) { + var a, b, ea, eb; + a = this; + if (a === b) { + return false; + } + if (a === ptrType$92.nil) { + return true; + } + if (b === ptrType$92.nil) { + return false; + } + ea = isExported(a.name); + eb = isExported(b.name); + if (!(ea === eb)) { + return ea; + } + if (!(a.name === b.name)) { + return a.name < b.name; + } + if (!ea) { + return a.pkg.path < b.pkg.path; + } + return false; }; - $ptrType(_TypeSet).prototype.IsMethodSet = function IsMethodSet() { - var s; - s = this; - return !s.comparable && s.terms.isAll(); + NewPkgName = function NewPkgName$1(pos, pkg, name, imported) { + var imported, name, pkg, pos; + return new PkgName.ptr($clone(new object.ptr(ptrType.nil, pos, pkg, name, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]), 0, 1, nopos), object), imported, false); }; - $ptrType(_TypeSet).prototype.IsComparable = function IsComparable(seen) { - var {$24r, _r$1, s, seen, $s, $r, $c} = $restore(this, {seen}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - seen = [seen]; - s = this; - if (s.terms.isAll()) { - $s = -1; return s.comparable; - } - _r$1 = s.is((function(seen) { return function _TypeSet·IsComparable·func1(t) { - var {$24r, _r$1, _v, t, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (!(!(t === ptrType$4.nil))) { _v = false; $s = 1; continue s; } - _r$1 = comparable(t.typ, false, seen[0], $throwNilPointerError); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = _r$1; case 1: - $24r = _v; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: _TypeSet·IsComparable·func1, $c: true, $r, $24r, _r$1, _v, t, $s};return $f; - }; })(seen)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: IsComparable, $c: true, $r, $24r, _r$1, s, seen, $s};return $f; + $pkg.NewPkgName = NewPkgName; + $ptrType(PkgName).prototype.Imported = function Imported() { + var obj; + obj = this; + return obj.imported; }; - $ptrType(_TypeSet).prototype.NumMethods = function NumMethods() { - var s; - s = this; - return s.methods.$length; + NewConst = function NewConst$1(pos, pkg, name, typ$3, val) { + var name, pkg, pos, typ$3, val; + return new Const.ptr($clone(new object.ptr(ptrType.nil, pos, pkg, name, typ$3, 0, colorFor(typ$3), nopos), object), val); }; - $ptrType(_TypeSet).prototype.Method = function Method(i) { - var i, s, x; - s = this; - return (x = s.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + $pkg.NewConst = NewConst; + $ptrType(Const).prototype.Val = function Val() { + var obj; + obj = this; + return obj.val; }; - $ptrType(_TypeSet).prototype.LookupMethod = function LookupMethod(pkg, name, foldCase) { - var foldCase, name, pkg, s; - s = this; - return lookupMethod(s.methods, pkg, name, foldCase); + NewTypeName = function NewTypeName$1(pos, pkg, name, typ$3) { + var name, pkg, pos, typ$3; + return new TypeName.ptr($clone(new object.ptr(ptrType.nil, pos, pkg, name, typ$3, 0, colorFor(typ$3), nopos), object)); }; - $ptrType(_TypeSet).prototype.String = function String$4() { - var {_i, _r$1, _r$2, _r$3, _r$4, _ref, buf, hasMethods, hasTerms, i, m, s, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - s = this; - if (s.IsEmpty()) { - $s = -1; return "\xE2\x88\x85"; - } else if (s.IsAll()) { - $s = -1; return "\xF0\x9D\x93\xA4"; - } - hasMethods = s.methods.$length > 0; - hasTerms = s.hasTerms(); - buf = new strings.Builder.ptr(ptrType$53.nil, sliceType$14.nil); - buf.WriteByte(123); - if (s.comparable) { - buf.WriteString("comparable"); - if (hasMethods || hasTerms) { - buf.WriteString("; "); - } - } - _ref = s.methods; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - m = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (i > 0) { - buf.WriteString("; "); + $pkg.NewTypeName = NewTypeName; + $ptrType(TypeName).prototype.IsAlias = function IsAlias() { + var _ref, obj, t, t$1, t$2, t$3, t$4; + obj = this; + _ref = obj.object.typ; + if (_ref === $ifaceNil) { + t = _ref; + return false; + } else if ($assertType(_ref, ptrType$4, true)[1]) { + t$1 = _ref.$val; + if (obj.object.pkg === $pkg.Unsafe) { + return false; } - _r$1 = m.String(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = buf.WriteString(_r$1); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - _i++; - $s = 1; continue; - case 2: - if (hasMethods && hasTerms) { - buf.WriteString("; "); + return !(obj.object.pkg === ptrType$1.nil) || !(t$1.name === obj.object.name) || $interfaceIsEqual(t$1, universeByte) || $interfaceIsEqual(t$1, universeRune); + } else if ($assertType(_ref, ptrType$10, true)[1]) { + t$2 = _ref.$val; + return !(obj === t$2.obj); + } else if ($assertType(_ref, ptrType$15, true)[1]) { + t$3 = _ref.$val; + return !(obj === t$3.obj); + } else { + t$4 = _ref; + return true; } - /* */ if (hasTerms) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (hasTerms) { */ case 5: - _r$3 = s.terms.String(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$4 = buf.WriteString(_r$3); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$4; - /* } */ case 6: - buf.WriteString("}"); - $s = -1; return buf.String(); - /* */ } return; } var $f = {$blk: String$4, $c: true, $r, _i, _r$1, _r$2, _r$3, _r$4, _ref, buf, hasMethods, hasTerms, i, m, s, $s};return $f; }; - $ptrType(_TypeSet).prototype.hasTerms = function hasTerms() { - var s; - s = this; - return !s.terms.isEmpty() && !s.terms.isAll(); + NewVar = function NewVar$1(pos, pkg, name, typ$3) { + var name, pkg, pos, typ$3; + return new Var.ptr($clone(new object.ptr(ptrType.nil, pos, pkg, name, typ$3, 0, colorFor(typ$3), nopos), object), false, false, false, ptrType$17.nil); }; - $ptrType(_TypeSet).prototype.subsetOf = function subsetOf$1(s2) { - var {$24r, _r$1, s1, s2, $s, $r, $c} = $restore(this, {s2}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - s1 = this; - _r$1 = s1.terms.subsetOf(s2.terms); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: subsetOf$1, $c: true, $r, $24r, _r$1, s1, s2, $s};return $f; + $pkg.NewVar = NewVar; + NewParam = function NewParam$1(pos, pkg, name, typ$3) { + var name, pkg, pos, typ$3; + return new Var.ptr($clone(new object.ptr(ptrType.nil, pos, pkg, name, typ$3, 0, colorFor(typ$3), nopos), object), false, false, true, ptrType$17.nil); }; - $ptrType(_TypeSet).prototype.is = function is(f) { - var {$24r, _i, _r$1, _r$2, _ref, f, s, t, $s, $r, $c} = $restore(this, {f}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - s = this; - /* */ if (!s.hasTerms()) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!s.hasTerms()) { */ case 1: - _r$1 = f(ptrType$4.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 4; case 4: return $24r; - /* } */ case 2: - _ref = s.terms; - _i = 0; - /* while (true) { */ case 5: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 6; continue; } - t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - $r = assert(!($interfaceIsEqual(t.typ, $ifaceNil))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$2 = f(t); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (!_r$2) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (!_r$2) { */ case 8: - $s = -1; return false; - /* } */ case 9: - _i++; - $s = 5; continue; - case 6: - $s = -1; return true; - /* */ } return; } var $f = {$blk: is, $c: true, $r, $24r, _i, _r$1, _r$2, _ref, f, s, t, $s};return $f; + $pkg.NewParam = NewParam; + NewField = function NewField$1(pos, pkg, name, typ$3, embedded) { + var embedded, name, pkg, pos, typ$3; + return new Var.ptr($clone(new object.ptr(ptrType.nil, pos, pkg, name, typ$3, 0, colorFor(typ$3), nopos), object), embedded, true, false, ptrType$17.nil); }; - $ptrType(_TypeSet).prototype.underIs = function underIs$1(f) { - var {$24r, _arg, _arg$1, _i, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, f, s, t, u, $s, $r, $c} = $restore(this, {f}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - s = this; - /* */ if (!s.hasTerms()) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!s.hasTerms()) { */ case 1: - _r$1 = f($ifaceNil); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 4; case 4: return $24r; - /* } */ case 2: - _ref = s.terms; - _i = 0; - /* while (true) { */ case 5: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 6; continue; } - t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - $r = assert(!($interfaceIsEqual(t.typ, $ifaceNil))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - u = t.typ; - /* */ if (!t.tilde) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (!t.tilde) { */ case 8: - _r$2 = under(u); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - u = _r$2; - /* } */ case 9: - /* */ if (false) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (false) { */ case 11: - _arg = u; - _r$3 = under(u); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _arg$1 = _r$3; - _r$4 = Identical(_arg, _arg$1); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $r = assert(_r$4); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 12: - _r$5 = f(u); /* */ $s = 18; case 18: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* */ if (!_r$5) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (!_r$5) { */ case 16: - $s = -1; return false; - /* } */ case 17: - _i++; - $s = 5; continue; - case 6: - $s = -1; return true; - /* */ } return; } var $f = {$blk: underIs$1, $c: true, $r, $24r, _arg, _arg$1, _i, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, f, s, t, u, $s};return $f; + $pkg.NewField = NewField; + $ptrType(Var).prototype.Anonymous = function Anonymous() { + var obj; + obj = this; + return obj.embedded; }; - computeInterfaceTypeSet = function computeInterfaceTypeSet$1(check, pos, ityp) { - var {$24r, _i, _i$1, _i$2, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _ref$2, _ref$3, _tuple, _v, addMethod, allComparable, allMethods, allTerms, check, comparable$1, i, ityp, m, m$1, mpos, pos, pos$1, seen, terms, tset, tset$1, typ$2, u, u$1, u$2, unionSets, x, x$1, $s, $deferred, $r, $c} = $restore(this, {check, pos, ityp}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - allMethods = [allMethods]; - check = [check]; - ityp = [ityp]; - mpos = [mpos]; - pos = [pos]; - seen = [seen]; - if (!(ityp[0].tset === ptrType$7.nil)) { - $s = -1; return ityp[0].tset; - } - if (!ityp[0].complete) { - $s = -1; return topTypeSet; + $ptrType(Var).prototype.Embedded = function Embedded() { + var obj; + obj = this; + return obj.embedded; + }; + $ptrType(Var).prototype.IsField = function IsField() { + var obj; + obj = this; + return obj.isField; + }; + $ptrType(Var).prototype.Origin = function Origin() { + var obj; + obj = this; + if (!(obj.origin === ptrType$17.nil)) { + return obj.origin; } - /* */ if (!(check[0] === ptrType$5.nil) && false) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(check[0] === ptrType$5.nil) && false) { */ case 1: - if (!new token.Pos(pos[0]).IsValid() && ityp[0].methods.$length > 0) { - pos[0] = (x = ityp[0].methods, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).object.pos; - } - $r = check[0].trace(pos[0], "-- type set for %s", new sliceType$6([ityp[0]])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - check[0].indent = check[0].indent + (1) >> 0; - $deferred.push([(function(allMethods, check, ityp, mpos, pos, seen) { return function computeInterfaceTypeSet·func1() { - var {_arg, _arg$1, _r$1, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check[0].indent = check[0].indent - (1) >> 0; - _arg = pos[0]; - _r$1 = ityp[0].typeSet(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _arg$1 = _r$1; - $r = check[0].trace(_arg, "=> %s ", new sliceType$6([_arg$1])); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: computeInterfaceTypeSet·func1, $c: true, $r, _arg, _arg$1, _r$1, $s};return $f; - }; })(allMethods, check, ityp, mpos, pos, seen), []]); - /* } */ case 2: - ityp[0].tset = new _TypeSet.ptr(sliceType.nil, allTermlist, false); - unionSets = false; - if (!(check[0] === ptrType$5.nil)) { - if (check[0].unionTypeSets === false) { - check[0].unionTypeSets = new $global.Map(); - } - unionSets = check[0].unionTypeSets; - } else { - unionSets = new $global.Map(); + return obj; + }; + NewFunc = function NewFunc$1(pos, pkg, name, sig) { + var name, pkg, pos, sig, typ$3; + typ$3 = $ifaceNil; + if (!(sig === ptrType$29.nil)) { + typ$3 = sig; } - seen[0] = false; - allMethods[0] = sliceType.nil; - mpos[0] = new $global.Map(); - addMethod = (function(allMethods, check, ityp, mpos, pos, seen) { return function computeInterfaceTypeSet·func2(pos$1, m, explicit) { - var {_entry, _key, _r$1, explicit, m, other, pos$1, $s, $r, $c} = $restore(this, {pos$1, m, explicit}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - m = [m]; - other = [other]; - pos$1 = [pos$1]; - _r$1 = (seen.$ptr || (seen.$ptr = new ptrType$54(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, seen))).insert(m[0]); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - other[0] = _r$1; - /* */ if ($interfaceIsEqual(other[0], $ifaceNil)) { $s = 3; continue; } - /* */ if (explicit) { $s = 4; continue; } - /* */ if (!(check[0] === ptrType$5.nil)) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if ($interfaceIsEqual(other[0], $ifaceNil)) { */ case 3: - allMethods[0] = $append(allMethods[0], m[0]); - _key = m[0]; (mpos[0] || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$2.keyFor(_key), { k: _key, v: pos$1[0] }); - $s = 6; continue; - /* } else if (explicit) { */ case 4: - /* */ if (!(check[0] === ptrType$5.nil)) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (!(check[0] === ptrType$5.nil)) { */ case 7: - $r = check[0].errorf(new atPos(((pos$1[0] >> 0))), 10, "duplicate method %s", new sliceType$6([new $String(m[0].object.name)])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].errorf(new atPos((((_entry = $mapIndex(mpos[0],ptrType$2.keyFor($assertType(other[0], ptrType$2))), _entry !== undefined ? _entry.v : 0) >> 0))), 10, "\tother declaration of %s", new sliceType$6([new $String(m[0].object.name)])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 8: - $s = 6; continue; - /* } else if (!(check[0] === ptrType$5.nil)) { */ case 5: - check[0].later((function(allMethods, check, ityp, m, mpos, other, pos, pos$1, seen) { return function computeInterfaceTypeSet·func2·func1() { - var {_arg, _arg$1, _entry$1, _r$2, _r$3, _v, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (!check[0].allowVersion(m[0].object.pkg, 1, 14)) { _v = true; $s = 3; continue s; } - _arg = m[0].object.typ; - _r$2 = other[0].Type(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _arg$1 = _r$2; - _r$3 = Identical(_arg, _arg$1); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _v = !_r$3; case 3: - /* */ if (_v) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (_v) { */ case 1: - $r = check[0].errorf(new atPos(((pos$1[0] >> 0))), 10, "duplicate method %s", new sliceType$6([new $String(m[0].object.name)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].errorf(new atPos((((_entry$1 = $mapIndex(mpos[0],ptrType$2.keyFor($assertType(other[0], ptrType$2))), _entry$1 !== undefined ? _entry$1.v : 0) >> 0))), 10, "\tother declaration of %s", new sliceType$6([new $String(m[0].object.name)])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: computeInterfaceTypeSet·func2·func1, $c: true, $r, _arg, _arg$1, _entry$1, _r$2, _r$3, _v, $s};return $f; - }; })(allMethods, check, ityp, m, mpos, other, pos, pos$1, seen)).describef(new atPos(((pos$1[0] >> 0))), "duplicate method check for %s", new sliceType$6([new $String(m[0].object.name)])); - /* } */ case 6: - case 1: - $s = -1; return; - /* */ } return; } var $f = {$blk: computeInterfaceTypeSet·func2, $c: true, $r, _entry, _key, _r$1, explicit, m, other, pos$1, $s};return $f; - }; })(allMethods, check, ityp, mpos, pos, seen); - _ref = ityp[0].methods; - _i = 0; - /* while (true) { */ case 4: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 5; continue; } - m = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - $r = addMethod(m.object.pos, m, true); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 4; continue; - case 5: - allTerms = allTermlist; - allComparable = false; - _ref$1 = ityp[0].embeddeds; - _i$1 = 0; - /* while (true) { */ case 7: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 8; continue; } - i = _i$1; - typ$2 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - pos$1 = 0; - if (!(ityp[0].embedPos === ptrType$6.nil)) { - pos$1 = (x$1 = ityp[0].embedPos.$get(), ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])); - } - comparable$1 = false; - terms = termlist.nil; - _r$1 = under(typ$2); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _ref$2 = _r$1; - /* */ if ($assertType(_ref$2, ptrType$13, true)[1]) { $s = 10; continue; } - /* */ if ($assertType(_ref$2, ptrType$12, true)[1]) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if ($assertType(_ref$2, ptrType$13, true)[1]) { */ case 10: - u = _ref$2.$val; - $r = assert(!isTypeParam(typ$2)); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$2 = computeInterfaceTypeSet(check[0], pos$1, u); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - tset = _r$2; - if (!(!(check[0] === ptrType$5.nil))) { _v = false; $s = 18; continue s; } - _r$3 = check[0].isImportedConstraint(typ$2); /* */ $s = 19; case 19: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _v = _r$3; case 18: - /* */ if (_v && !check[0].allowVersion(check[0].pkg, 1, 18)) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (_v && !check[0].allowVersion(check[0].pkg, 1, 18)) { */ case 16: - $r = check[0].errorf(new atPos(((pos$1 >> 0))), 135, "embedding constraint interface %s requires go1.18 or later", new sliceType$6([typ$2])); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$1++; - /* continue; */ $s = 7; continue; - /* } */ case 17: - comparable$1 = tset.comparable; - _ref$3 = tset.methods; - _i$2 = 0; - /* while (true) { */ case 21: - /* if (!(_i$2 < _ref$3.$length)) { break; } */ if(!(_i$2 < _ref$3.$length)) { $s = 22; continue; } - m$1 = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]); - $r = addMethod(pos$1, m$1, false); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$2++; - $s = 21; continue; - case 22: - terms = tset.terms; - $s = 13; continue; - /* } else if ($assertType(_ref$2, ptrType$12, true)[1]) { */ case 11: - u$1 = _ref$2.$val; - /* */ if (!(check[0] === ptrType$5.nil) && !check[0].allowVersion(check[0].pkg, 1, 18)) { $s = 24; continue; } - /* */ $s = 25; continue; - /* if (!(check[0] === ptrType$5.nil) && !check[0].allowVersion(check[0].pkg, 1, 18)) { */ case 24: - $r = check[0].errorf(new atPos(((pos$1 >> 0))), 135, "embedding interface element %s requires go1.18 or later", new sliceType$6([u$1])); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$1++; - /* continue; */ $s = 7; continue; - /* } */ case 25: - _r$4 = computeUnionTypeSet(check[0], unionSets, pos$1, u$1); /* */ $s = 27; case 27: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - tset$1 = _r$4; - if (tset$1 === invalidTypeSet) { - _i$1++; - /* continue; */ $s = 7; continue; - } - $r = assert(!tset$1.comparable); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = assert(tset$1.methods.$length === 0); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - terms = tset$1.terms; - $s = 13; continue; - /* } else { */ case 12: - u$2 = _ref$2; - if ($interfaceIsEqual(u$2, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { - _i$1++; - /* continue; */ $s = 7; continue; - } - /* */ if (!(check[0] === ptrType$5.nil) && !check[0].allowVersion(check[0].pkg, 1, 18)) { $s = 30; continue; } - /* */ $s = 31; continue; - /* if (!(check[0] === ptrType$5.nil) && !check[0].allowVersion(check[0].pkg, 1, 18)) { */ case 30: - $r = check[0].errorf(new atPos(((pos$1 >> 0))), 135, "embedding non-interface type %s requires go1.18 or later", new sliceType$6([typ$2])); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$1++; - /* continue; */ $s = 7; continue; - /* } */ case 31: - terms = new termlist([new term.ptr(false, typ$2)]); - /* } */ case 13: - _r$5 = intersectTermLists(allTerms, allComparable, terms, comparable$1); /* */ $s = 33; case 33: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _tuple = _r$5; - allTerms = _tuple[0]; - allComparable = _tuple[1]; - _i$1++; - $s = 7; continue; - case 8: - ityp[0].embedPos = ptrType$6.nil; - ityp[0].tset.comparable = allComparable; - /* */ if (!((allMethods[0].$length === 0))) { $s = 34; continue; } - /* */ $s = 35; continue; - /* if (!((allMethods[0].$length === 0))) { */ case 34: - $r = sortMethods(allMethods[0]); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - ityp[0].tset.methods = allMethods[0]; - /* } */ case 35: - ityp[0].tset.terms = allTerms; - $24r = ityp[0].tset; - $s = 37; case 37: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$7.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: computeInterfaceTypeSet$1, $c: true, $r, $24r, _i, _i$1, _i$2, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _ref$2, _ref$3, _tuple, _v, addMethod, allComparable, allMethods, allTerms, check, comparable$1, i, ityp, m, m$1, mpos, pos, pos$1, seen, terms, tset, tset$1, typ$2, u, u$1, u$2, unionSets, x, x$1, $s, $deferred};return $f; } } + return new Func.ptr($clone(new object.ptr(ptrType.nil, pos, pkg, name, typ$3, 0, colorFor(typ$3), nopos), object), false, ptrType$2.nil); }; - intersectTermLists = function intersectTermLists$1(xterms, xcomp, yterms, ycomp) { - var {_i, _r$1, _r$2, _ref, comp, i, t, terms, xcomp, xterms, ycomp, yterms, $s, $r, $c} = $restore(this, {xterms, xcomp, yterms, ycomp}); + $pkg.NewFunc = NewFunc; + $ptrType(Func).prototype.FullName = function FullName() { + var {buf, obj, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = xterms.intersect(yterms); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - terms = _r$1; - comp = xcomp || ycomp; - /* */ if (comp && !terms.isAll()) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (comp && !terms.isAll()) { */ case 2: - i = 0; - _ref = terms; - _i = 0; - /* while (true) { */ case 4: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 5; continue; } - t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - $r = assert(!($interfaceIsEqual(t.typ, $ifaceNil))); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$2 = comparable(t.typ, false, false, $throwNilPointerError); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (_r$2) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (_r$2) { */ case 7: - ((i < 0 || i >= terms.$length) ? ($throwRuntimeError("index out of range"), undefined) : terms.$array[terms.$offset + i] = t); - i = i + (1) >> 0; - /* } */ case 8: - _i++; - $s = 4; continue; - case 5: - terms = $subslice(terms, 0, i); - if (!terms.isAll()) { - comp = false; - } - /* } */ case 3: - $r = assert(!comp || terms.isAll()); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return [terms, comp]; - /* */ } return; } var $f = {$blk: intersectTermLists$1, $c: true, $r, _i, _r$1, _r$2, _ref, comp, i, t, terms, xcomp, xterms, ycomp, yterms, $s};return $f; + buf = [buf]; + obj = this; + buf[0] = new bytes.Buffer.ptr(sliceType$12.nil, 0, 0); + $r = writeFuncName(buf[0], obj, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return buf[0].String(); + /* */ } return; } var $f = {$blk: FullName, $c: true, $r, buf, obj, $s};return $f; }; - sortMethods = function sortMethods$1(list) { - var {list, $s, $r, $c} = $restore(this, {list}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = sort.Sort(($convertSliceType(list, byUniqueMethodName))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: sortMethods$1, $c: true, $r, list, $s};return $f; + $ptrType(Func).prototype.Scope = function Scope$2() { + var obj; + obj = this; + return $assertType(obj.object.typ, ptrType$29).scope; }; - assertSortedMethods = function assertSortedMethods$1(list) { - var {_r$1, list, $s, $r, $c} = $restore(this, {list}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (true) { - $panic(new $String("assertSortedMethods called outside debug mode")); + $ptrType(Func).prototype.Origin = function Origin$1() { + var obj; + obj = this; + if (!(obj.origin === ptrType$2.nil)) { + return obj.origin; } - _r$1 = sort.IsSorted(($convertSliceType(list, byUniqueMethodName))); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (!_r$1) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!_r$1) { */ case 1: - $panic(new $String("methods not sorted")); - /* } */ case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: assertSortedMethods$1, $c: true, $r, _r$1, list, $s};return $f; + return obj; }; - byUniqueMethodName.prototype.Len = function Len$1() { - var a; - a = this; - return a.$length; + $ptrType(Func).prototype.hasPtrRecv = function hasPtrRecv() { + var _tuple, _tuple$1, isPtr, obj, sig; + obj = this; + _tuple = $assertType(obj.object.typ, ptrType$29, true); + sig = _tuple[0]; + if (!(sig === ptrType$29.nil) && !(sig.recv === ptrType$17.nil)) { + _tuple$1 = deref(sig.recv.object.typ); + isPtr = _tuple$1[1]; + return isPtr; + } + return obj.hasPtrRecv_; }; - $ptrType(byUniqueMethodName).prototype.Len = function(...$args) { return this.$get().Len(...$args); }; - byUniqueMethodName.prototype.Less = function Less(i, j) { - var a, i, j; - a = this; - return ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i]).object.Id() < ((j < 0 || j >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + j]).object.Id(); + NewLabel = function NewLabel$1(pos, pkg, name) { + var name, pkg, pos; + return new Label.ptr($clone(new object.ptr(ptrType.nil, pos, pkg, name, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]), 0, 1, 0), object), false); }; - $ptrType(byUniqueMethodName).prototype.Less = function(...$args) { return this.$get().Less(...$args); }; - byUniqueMethodName.prototype.Swap = function Swap(i, j) { - var _tmp, _tmp$1, a, i, j; - a = this; - _tmp = ((j < 0 || j >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + j]); - _tmp$1 = ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i]); - ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i] = _tmp); - ((j < 0 || j >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + j] = _tmp$1); + $pkg.NewLabel = NewLabel; + newBuiltin = function newBuiltin$1(id) { + var id; + return new Builtin.ptr($clone(new object.ptr(ptrType.nil, 0, ptrType$1.nil, ((id < 0 || id >= predeclaredFuncs.length) ? ($throwRuntimeError("index out of range"), undefined) : predeclaredFuncs[id]).name, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]), 0, 1, 0), object), id); }; - $ptrType(byUniqueMethodName).prototype.Swap = function(...$args) { return this.$get().Swap(...$args); }; - computeUnionTypeSet = function computeUnionTypeSet$1(check, unionSets, pos, utyp) { - var {_entry, _entry$1, _entry$2, _entry$3, _i, _key, _key$1, _r$1, _r$2, _r$3, _r$4, _ref, _tuple, _tuple$1, _v, allTerms, check, pos, t, terms, tset, u, ui, unionSets, utyp, $s, $r, $c} = $restore(this, {check, unionSets, pos, utyp}); + writeObject = function writeObject$1(buf, obj, qf) { + var {_r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _v, buf, obj, obj$1, obj$2, obj$3, obj$4, obj$5, obj$6, obj$7, obj$8, obj$9, path, qf, t, t$1, t$2, tname, typ$3, $s, $r, $c} = $restore(this, {buf, obj, qf}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _tuple = (_entry = $mapIndex(unionSets,ptrType$12.keyFor(utyp)), _entry !== undefined ? [_entry.v, true] : [ptrType$7.nil, false]); - tset = _tuple[0]; - if (!(tset === ptrType$7.nil)) { - $s = -1; return tset; + tname = ptrType$18.nil; + _r = obj.Type(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + typ$3 = _r; + _ref = obj; + /* */ if ($assertType(_ref, ptrType$32, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$33, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$18, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$17, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$2, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$93, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref, ptrType$19, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref, ptrType$34, true)[1]) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if ($assertType(_ref, ptrType$32, true)[1]) { */ case 2: + obj$1 = _ref.$val; + _r$1 = fmt.Fprintf(buf, "package %s", new sliceType$5([new $String(obj$1.object.Name())])); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + path = obj$1.imported.path; + /* */ if (!(path === "") && !(path === obj$1.object.name)) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (!(path === "") && !(path === obj$1.object.name)) { */ case 13: + _r$2 = fmt.Fprintf(buf, " (%q)", new sliceType$5([new $String(path)])); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + /* } */ case 14: + $s = -1; return; + /* } else if ($assertType(_ref, ptrType$33, true)[1]) { */ case 3: + obj$2 = _ref.$val; + buf.WriteString("const"); + $s = 11; continue; + /* } else if ($assertType(_ref, ptrType$18, true)[1]) { */ case 4: + obj$3 = _ref.$val; + tname = obj$3; + buf.WriteString("type"); + if (isTypeParam(typ$3)) { + buf.WriteString(" parameter"); + } + $s = 11; continue; + /* } else if ($assertType(_ref, ptrType$17, true)[1]) { */ case 5: + obj$4 = _ref.$val; + if (obj$4.isField) { + buf.WriteString("field"); + } else { + buf.WriteString("var"); + } + $s = 11; continue; + /* } else if ($assertType(_ref, ptrType$2, true)[1]) { */ case 6: + obj$5 = _ref.$val; + buf.WriteString("func "); + $r = writeFuncName(buf, obj$5, qf); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!($interfaceIsEqual(typ$3, $ifaceNil))) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (!($interfaceIsEqual(typ$3, $ifaceNil))) { */ case 17: + $r = WriteSignature(buf, $assertType(typ$3, ptrType$29), qf); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 18: + $s = -1; return; + /* } else if ($assertType(_ref, ptrType$93, true)[1]) { */ case 7: + obj$6 = _ref.$val; + buf.WriteString("label"); + typ$3 = $ifaceNil; + $s = 11; continue; + /* } else if ($assertType(_ref, ptrType$19, true)[1]) { */ case 8: + obj$7 = _ref.$val; + buf.WriteString("builtin"); + typ$3 = $ifaceNil; + $s = 11; continue; + /* } else if ($assertType(_ref, ptrType$34, true)[1]) { */ case 9: + obj$8 = _ref.$val; + buf.WriteString("nil"); + $s = -1; return; + /* } else { */ case 10: + obj$9 = _ref; + _r$3 = fmt.Sprintf("writeObject(%T)", new sliceType$5([obj$9])); /* */ $s = 20; case 20: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $panic(new $String(_r$3)); + /* } */ case 11: + buf.WriteByte(32); + _r$4 = obj.Pkg(); /* */ $s = 24; case 24: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + if (!(!(_r$4 === ptrType$1.nil))) { _v = false; $s = 23; continue s; } + _r$5 = obj.Pkg(); /* */ $s = 25; case 25: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$6 = obj.Name(); /* */ $s = 26; case 26: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$7 = _r$5.scope.Lookup(_r$6); /* */ $s = 27; case 27: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _v = $interfaceIsEqual(_r$7, obj); case 23: + /* */ if (_v) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (_v) { */ case 21: + _r$8 = obj.Pkg(); /* */ $s = 28; case 28: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$9 = packagePrefix(_r$8, qf); /* */ $s = 29; case 29: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$10 = buf.WriteString(_r$9); /* */ $s = 30; case 30: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$10; + /* } */ case 22: + _r$11 = obj.Name(); /* */ $s = 31; case 31: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _r$12 = buf.WriteString(_r$11); /* */ $s = 32; case 32: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _r$12; + if ($interfaceIsEqual(typ$3, $ifaceNil)) { + $s = -1; return; } - _key = utyp; (unionSets || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$12.keyFor(_key), { k: _key, v: new _TypeSet.ptr(sliceType.nil, termlist.nil, false) }); - allTerms = termlist.nil; - _ref = utyp.terms; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - terms = termlist.nil; - _r$1 = under(t.typ); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - u = _r$1; - _tuple$1 = $assertType(u, ptrType$13, true); - ui = _tuple$1[0]; - /* */ if (!(ui === ptrType$13.nil)) { $s = 4; continue; } - /* */ if ($interfaceIsEqual(u, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (!(ui === ptrType$13.nil)) { */ case 4: - $r = assert(!isTypeParam(t.typ)); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$2 = computeInterfaceTypeSet(check, pos, ui); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - terms = _r$2.terms; - $s = 7; continue; - /* } else if ($interfaceIsEqual(u, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { */ case 5: - _i++; - /* continue; */ $s = 1; continue; - $s = 7; continue; - /* } else { */ case 6: - if (!(t.tilde)) { _v = false; $s = 12; continue s; } - _r$3 = Identical(t.typ, u); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _v = !_r$3; case 12: - /* */ if (_v) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (_v) { */ case 10: - t = ptrType$19.nil; - /* } */ case 11: - terms = new termlist([($pointerOfStructConversion(t, ptrType$4))]); - /* } */ case 7: - _r$4 = allTerms.union(terms); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - allTerms = _r$4; - /* */ if (allTerms.$length > 100) { $s = 15; continue; } - /* */ $s = 16; continue; - /* if (allTerms.$length > 100) { */ case 15: - /* */ if (!(check === ptrType$5.nil)) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (!(check === ptrType$5.nil)) { */ case 17: - $r = check.errorf(new atPos(((pos >> 0))), 141, "cannot handle more than %d union terms (implementation limitation)", new sliceType$6([new $Int(100)])); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 18: - _key$1 = utyp; (unionSets || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$12.keyFor(_key$1), { k: _key$1, v: invalidTypeSet }); - $s = -1; return (_entry$1 = $mapIndex(unionSets,ptrType$12.keyFor(utyp)), _entry$1 !== undefined ? _entry$1.v : ptrType$7.nil); - /* } */ case 16: - _i++; - $s = 1; continue; - case 2: - (_entry$2 = $mapIndex(unionSets,ptrType$12.keyFor(utyp)), _entry$2 !== undefined ? _entry$2.v : ptrType$7.nil).terms = allTerms; - $s = -1; return (_entry$3 = $mapIndex(unionSets,ptrType$12.keyFor(utyp)), _entry$3 !== undefined ? _entry$3.v : ptrType$7.nil); - /* */ } return; } var $f = {$blk: computeUnionTypeSet$1, $c: true, $r, _entry, _entry$1, _entry$2, _entry$3, _i, _key, _key$1, _r$1, _r$2, _r$3, _r$4, _ref, _tuple, _tuple$1, _v, allTerms, check, pos, t, terms, tset, u, ui, unionSets, utyp, $s};return $f; - }; - nextID = function nextID$1() { - return (new $Uint64(0, atomic.AddUint32((lastID$24ptr || (lastID$24ptr = new ptrType$55(function() { return lastID; }, function($v) { lastID = $v; }))), 1))); - }; - NewTypeParam = function NewTypeParam$1(obj, constraint) { - var {$24r, _r$1, constraint, obj, $s, $r, $c} = $restore(this, {obj, constraint}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = (ptrType$5.nil).newTypeParam(obj, constraint); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: NewTypeParam$1, $c: true, $r, $24r, _r$1, constraint, obj, $s};return $f; + /* */ if (!(tname === ptrType$18.nil)) { $s = 33; continue; } + /* */ $s = 34; continue; + /* if (!(tname === ptrType$18.nil)) { */ case 33: + _ref$1 = typ$3; + /* */ if ($assertType(_ref$1, ptrType$4, true)[1]) { $s = 35; continue; } + /* */ if ($assertType(_ref$1, ptrType$10, true)[1]) { $s = 36; continue; } + /* */ $s = 37; continue; + /* if ($assertType(_ref$1, ptrType$4, true)[1]) { */ case 35: + t = _ref$1.$val; + $s = -1; return; + /* } else if ($assertType(_ref$1, ptrType$10, true)[1]) { */ case 36: + t$1 = _ref$1.$val; + _r$13 = t$1.TypeParams(); /* */ $s = 40; case 40: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _r$14 = _r$13.Len(); /* */ $s = 41; case 41: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + /* */ if (_r$14 > 0) { $s = 38; continue; } + /* */ $s = 39; continue; + /* if (_r$14 > 0) { */ case 38: + _r$15 = t$1.TypeParams(); /* */ $s = 42; case 42: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + _r$16 = _r$15.list(); /* */ $s = 43; case 43: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + $r = newTypeWriter(buf, qf).tParamList(_r$16); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 39: + /* } */ case 37: + /* */ if (tname.IsAlias()) { $s = 45; continue; } + /* */ $s = 46; continue; + /* if (tname.IsAlias()) { */ case 45: + buf.WriteString(" ="); + $s = 47; continue; + /* } else { */ case 46: + _tuple = $assertType(typ$3, ptrType$15, true); + t$2 = _tuple[0]; + /* */ if (!(t$2 === ptrType$15.nil)) { $s = 48; continue; } + /* */ $s = 49; continue; + /* if (!(t$2 === ptrType$15.nil)) { */ case 48: + typ$3 = t$2.bound; + $s = 50; continue; + /* } else { */ case 49: + _r$17 = under(typ$3); /* */ $s = 51; case 51: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + typ$3 = _r$17; + /* } */ case 50: + /* } */ case 47: + /* } */ case 34: + /* */ if ($interfaceIsEqual(obj, universeAny)) { $s = 52; continue; } + /* */ $s = 53; continue; + /* if ($interfaceIsEqual(obj, universeAny)) { */ case 52: + _r$18 = Identical(typ$3, emptyInterface); /* */ $s = 54; case 54: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + $r = assert(_r$18); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + typ$3 = emptyInterface; + /* } */ case 53: + buf.WriteByte(32); + $r = WriteType(buf, typ$3, qf); /* */ $s = 56; case 56: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: writeObject$1, $c: true, $r, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _v, buf, obj, obj$1, obj$2, obj$3, obj$4, obj$5, obj$6, obj$7, obj$8, obj$9, path, qf, t, t$1, t$2, tname, typ$3, $s};return $f; }; - $pkg.NewTypeParam = NewTypeParam; - $ptrType(Checker).prototype.newTypeParam = function newTypeParam(obj, constraint) { - var {_r$1, check, constraint, id, obj, typ$2, x, x$1, $s, $r, $c} = $restore(this, {obj, constraint}); + packagePrefix = function packagePrefix$1(pkg, qf) { + var {_r, pkg, qf, s, $s, $r, $c} = $restore(this, {pkg, qf}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - id = nextID(); - if (!(check === ptrType$5.nil)) { - check.nextID = (x = check.nextID, x$1 = new $Uint64(0, 1), new $Uint64(x.$high + x$1.$high, x.$low + x$1.$low)); - id = check.nextID; - } - typ$2 = new TypeParam.ptr(check, id, obj, -1, constraint); - if ($interfaceIsEqual(obj.object.typ, $ifaceNil)) { - obj.object.typ = typ$2; + if (pkg === ptrType$1.nil) { + $s = -1; return ""; } - /* */ if (!(check === ptrType$5.nil)) { $s = 1; continue; } - /* */ if (!($interfaceIsEqual(constraint, $ifaceNil))) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!(check === ptrType$5.nil)) { */ case 1: - check.needsCleanup(typ$2); + s = ""; + /* */ if (!(qf === $throwNilPointerError)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(qf === $throwNilPointerError)) { */ case 1: + _r = qf(pkg); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + s = _r; $s = 3; continue; - /* } else if (!($interfaceIsEqual(constraint, $ifaceNil))) { */ case 2: - _r$1 = typ$2.iface(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; + /* } else { */ case 2: + s = pkg.Path(); /* } */ case 3: - $s = -1; return typ$2; - /* */ } return; } var $f = {$blk: newTypeParam, $c: true, $r, _r$1, check, constraint, id, obj, typ$2, x, x$1, $s};return $f; - }; - $ptrType(TypeParam).prototype.Index = function Index() { - var t; - t = this; - return t.index; + if (!(s === "")) { + s = s + ("."); + } + $s = -1; return s; + /* */ } return; } var $f = {$blk: packagePrefix$1, $c: true, $r, _r, pkg, qf, s, $s};return $f; }; - $ptrType(TypeParam).prototype.Obj = function Obj() { - var t; - t = this; - return t.obj; + ObjectString = function ObjectString$1(obj, qf) { + var {buf, obj, qf, $s, $r, $c} = $restore(this, {obj, qf}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + buf = [buf]; + buf[0] = new bytes.Buffer.ptr(sliceType$12.nil, 0, 0); + $r = writeObject(buf[0], obj, qf); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return buf[0].String(); + /* */ } return; } var $f = {$blk: ObjectString$1, $c: true, $r, buf, obj, qf, $s};return $f; }; - $ptrType(TypeParam).prototype.Constraint = function Constraint() { - var t; - t = this; - return t.bound; + $pkg.ObjectString = ObjectString; + $ptrType(PkgName).prototype.String = function String$21() { + var {$24r, _r, obj, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + obj = this; + _r = ObjectString(obj, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$21, $c: true, $r, $24r, _r, obj, $s};return $f; }; - $ptrType(TypeParam).prototype.SetConstraint = function SetConstraint(bound) { - var {_r$1, bound, t, $s, $r, $c} = $restore(this, {bound}); + $ptrType(Const).prototype.String = function String$22() { + var {$24r, _r, obj, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - if ($interfaceIsEqual(bound, $ifaceNil)) { - $panic(new $String("nil constraint")); - } - t.bound = bound; - _r$1 = t.iface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - $s = -1; return; - /* */ } return; } var $f = {$blk: SetConstraint, $c: true, $r, _r$1, bound, t, $s};return $f; + obj = this; + _r = ObjectString(obj, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$22, $c: true, $r, $24r, _r, obj, $s};return $f; }; - $ptrType(TypeParam).prototype.Underlying = function Underlying$1() { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); + $ptrType(TypeName).prototype.String = function String$23() { + var {$24r, _r, obj, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = t.iface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; + obj = this; + _r = ObjectString(obj, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Underlying$1, $c: true, $r, $24r, _r$1, t, $s};return $f; + /* */ } return; } var $f = {$blk: String$23, $c: true, $r, $24r, _r, obj, $s};return $f; }; - $ptrType(TypeParam).prototype.String = function String$5() { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); + $ptrType(Var).prototype.String = function String$24() { + var {$24r, _r, obj, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = TypeString(t, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; + obj = this; + _r = ObjectString(obj, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$5, $c: true, $r, $24r, _r$1, t, $s};return $f; + /* */ } return; } var $f = {$blk: String$24, $c: true, $r, $24r, _r, obj, $s};return $f; }; - $ptrType(TypeParam).prototype.cleanup = function cleanup() { - var {_r$1, t, $s, $r, $c} = $restore(this, {}); + $ptrType(Func).prototype.String = function String$25() { + var {$24r, _r, obj, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = t.iface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - t.check = ptrType$5.nil; - $s = -1; return; - /* */ } return; } var $f = {$blk: cleanup, $c: true, $r, _r$1, t, $s};return $f; + obj = this; + _r = ObjectString(obj, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$25, $c: true, $r, $24r, _r, obj, $s};return $f; }; - $ptrType(TypeParam).prototype.iface = function iface() { - var {_r$1, _r$2, _r$3, _ref, _tuple, bound, ityp, n, pos, t, u, u$1, $s, $r, $c} = $restore(this, {}); + $ptrType(Label).prototype.String = function String$26() { + var {$24r, _r, obj, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - bound = t.bound; - ityp = ptrType$13.nil; - _r$1 = under(bound); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _ref = _r$1; - /* */ if ($assertType(_ref, ptrType$8, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if ($assertType(_ref, ptrType$8, true)[1]) { */ case 2: - u = _ref.$val; - if (u === (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])) { - $s = -1; return emptyInterface; - } - $s = 4; continue; - /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 3: - u$1 = _ref.$val; - if (isTypeParam(bound)) { - $s = -1; return emptyInterface; - } - ityp = u$1; - /* } */ case 4: - /* */ if (ityp === ptrType$13.nil) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (ityp === ptrType$13.nil) { */ case 5: - _r$2 = NewInterfaceType(sliceType.nil, new sliceType$2([bound])); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - ityp = _r$2; - ityp.implicit = true; - t.bound = ityp; - /* } */ case 6: - /* */ if (ityp.tset === ptrType$7.nil) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (ityp.tset === ptrType$7.nil) { */ case 8: - pos = t.obj.object.pos; - _tuple = $assertType(bound, ptrType$9, true); - n = _tuple[0]; - if (!(n === ptrType$9.nil)) { - pos = n.obj.object.pos; - } - _r$3 = computeInterfaceTypeSet(t.check, pos, ityp); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$3; - /* } */ case 9: - $s = -1; return ityp; - /* */ } return; } var $f = {$blk: iface, $c: true, $r, _r$1, _r$2, _r$3, _ref, _tuple, bound, ityp, n, pos, t, u, u$1, $s};return $f; + obj = this; + _r = ObjectString(obj, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$26, $c: true, $r, $24r, _r, obj, $s};return $f; }; - $ptrType(TypeParam).prototype.is = function is$1(f) { - var {$24r, _r$1, _r$2, _r$3, f, t, $s, $r, $c} = $restore(this, {f}); + $ptrType(Builtin).prototype.String = function String$27() { + var {$24r, _r, obj, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = t.iface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = _r$1.typeSet(); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = _r$2.is(f); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r = _r$3; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: is$1, $c: true, $r, $24r, _r$1, _r$2, _r$3, f, t, $s};return $f; + obj = this; + _r = ObjectString(obj, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$27, $c: true, $r, $24r, _r, obj, $s};return $f; }; - $ptrType(TypeParam).prototype.underIs = function underIs$2(f) { - var {$24r, _r$1, _r$2, _r$3, f, t, $s, $r, $c} = $restore(this, {f}); + $ptrType(Nil).prototype.String = function String$28() { + var {$24r, _r, obj, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = t.iface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = _r$1.typeSet(); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = _r$2.underIs(f); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r = _r$3; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: underIs$2, $c: true, $r, $24r, _r$1, _r$2, _r$3, f, t, $s};return $f; + obj = this; + _r = ObjectString(obj, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$28, $c: true, $r, $24r, _r, obj, $s};return $f; }; - $ptrType(TypeParamList).prototype.Len = function Len$2() { - var l; - l = this; - return l.list().$length; + writeFuncName = function writeFuncName$1(buf, f, qf) { + var {_r, _r$1, _tuple, buf, f, ok, qf, recv, sig, $s, $r, $c} = $restore(this, {buf, f, qf}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + /* */ if (!($interfaceIsEqual(f.object.typ, $ifaceNil))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!($interfaceIsEqual(f.object.typ, $ifaceNil))) { */ case 1: + sig = $assertType(f.object.typ, ptrType$29); + recv = sig.Recv(); + /* */ if (!(recv === ptrType$17.nil)) { $s = 3; continue; } + /* */ if (!(f.object.pkg === ptrType$1.nil)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!(recv === ptrType$17.nil)) { */ case 3: + buf.WriteByte(40); + _tuple = $assertType(recv.object.Type(), ptrType$14, true); + ok = _tuple[1]; + /* */ if (ok) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (ok) { */ case 6: + buf.WriteString("interface"); + $s = 8; continue; + /* } else { */ case 7: + $r = WriteType(buf, recv.object.Type(), qf); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 8: + buf.WriteByte(41); + buf.WriteByte(46); + $s = 5; continue; + /* } else if (!(f.object.pkg === ptrType$1.nil)) { */ case 4: + _r = packagePrefix(f.object.pkg, qf); /* */ $s = 10; case 10: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = buf.WriteString(_r); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + /* } */ case 5: + /* } */ case 2: + buf.WriteString(f.object.name); + $s = -1; return; + /* */ } return; } var $f = {$blk: writeFuncName$1, $c: true, $r, _r, _r$1, _tuple, buf, f, ok, qf, recv, sig, $s};return $f; }; - $ptrType(TypeParamList).prototype.At = function At(i) { - var i, l, x; - l = this; - return (x = l.tparams, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + NewNamed = function NewNamed$1(obj, underlying, methods) { + var _tuple, methods, obj, ok, underlying; + _tuple = $assertType(underlying, ptrType$10, true); + ok = _tuple[1]; + if (ok) { + $panic(new $String("underlying type must not be *Named")); + } + return (ptrType$6.nil).newNamed(obj, underlying, methods); }; - $ptrType(TypeParamList).prototype.list = function list() { - var l; - l = this; - if (l === ptrType$48.nil) { - return sliceType$9.nil; + $pkg.NewNamed = NewNamed; + $ptrType(Named).prototype.resolve = function resolve$2() { + var {$24r, $24r$1, $24r$2, _r, _r$1, _r$2, _tuple, methods, n, orig, tparams, underlying, underlying$1, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + n = this; + if (n.state() >= 1) { + $s = -1; return n; } - return l.tparams; + $r = n.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(n.mu, "Unlock"), []]); + /* */ if (n.state() >= 1) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (n.state() >= 1) { */ case 2: + $24r = n; + $s = 4; case 4: return $24r; + /* } */ case 3: + /* */ if (!(n.inst === ptrType$53.nil)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!(n.inst === ptrType$53.nil)) { */ case 5: + $r = assert($interfaceIsEqual(n.underlying, $ifaceNil)); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = assert(n.loader === $throwNilPointerError); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + orig = n.inst.orig; + _r = orig.resolve(); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + _r$1 = n.expandUnderlying(); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + underlying = _r$1; + n.tparams = orig.tparams; + n.underlying = underlying; + n.fromRHS = orig.fromRHS; + if (orig.methods.$length === 0) { + n.setState(2); + n.inst.ctxt = ptrType$52.nil; + } else { + n.setState(1); + } + $24r$1 = n; + $s = 11; case 11: return $24r$1; + /* } */ case 6: + /* */ if (!(n.loader === $throwNilPointerError)) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (!(n.loader === $throwNilPointerError)) { */ case 12: + $r = assert($interfaceIsEqual(n.underlying, $ifaceNil)); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = assert(n.TypeArgs().Len() === 0); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = n.loader(n); /* */ $s = 16; case 16: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = _r$2; + tparams = _tuple[0]; + underlying$1 = _tuple[1]; + methods = _tuple[2]; + n.tparams = bindTParams(tparams); + n.underlying = underlying$1; + n.fromRHS = underlying$1; + n.methods = methods; + n.loader = $throwNilPointerError; + /* } */ case 13: + n.setState(2); + $24r$2 = n; + $s = 17; case 17: return $24r$2; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$10.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: resolve$2, $c: true, $r, $24r, $24r$1, $24r$2, _r, _r$1, _r$2, _tuple, methods, n, orig, tparams, underlying, underlying$1, $s, $deferred};return $f; } } }; - newTypeList = function newTypeList$1(list$1) { - var list$1; - if (list$1.$length === 0) { - return ptrType$56.nil; + $ptrType(Named).prototype.state = function state() { + var n; + n = this; + return ((atomic.LoadUint32((n === ptrType$10.nil && $throwNilPointerError(), (n.$ptr_state_ || (n.$ptr_state_ = new ptrType$56(function() { return this.$target.state_; }, function($v) { this.$target.state_ = $v; }, n))))) >>> 0)); + }; + $ptrType(Named).prototype.setState = function setState(state$1) { + var n, state$1; + n = this; + atomic.StoreUint32((n === ptrType$10.nil && $throwNilPointerError(), (n.$ptr_state_ || (n.$ptr_state_ = new ptrType$56(function() { return this.$target.state_; }, function($v) { this.$target.state_ = $v; }, n)))), ((state$1 >>> 0))); + }; + $ptrType(Checker).prototype.newNamed = function newNamed(obj, underlying, methods) { + var check, methods, obj, typ$3, underlying; + check = this; + typ$3 = new Named.ptr(check, obj, underlying, ptrType$53.nil, new sync.Mutex.ptr(0, 0), 0, underlying, ptrType$49.nil, methods, $throwNilPointerError); + if ($interfaceIsEqual(obj.object.typ, $ifaceNil)) { + obj.object.typ = typ$3; } - return new TypeList.ptr(list$1); + if (!(check === ptrType$6.nil)) { + check.needsCleanup(typ$3); + } + return typ$3; }; - $ptrType(TypeList).prototype.Len = function Len$3() { - var l; - l = this; - return l.list().$length; + $ptrType(Checker).prototype.newNamedInstance = function newNamedInstance(pos, orig, targs, expanding) { + var {check, expanding, inst, obj, orig, pos, targs, typ$3, $s, $r, $c} = $restore(this, {pos, orig, targs, expanding}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + $r = assert(targs.$length > 0); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + obj = NewTypeName(pos, orig.obj.object.pkg, orig.obj.object.name, $ifaceNil); + inst = new instance.ptr(orig, newTypeList(targs), 0, ptrType$52.nil); + if (!(expanding === ptrType$10.nil) && expanding.Obj().object.pkg === obj.object.pkg) { + inst.ctxt = expanding.inst.ctxt; + } + typ$3 = new Named.ptr(check, obj, $ifaceNil, inst, new sync.Mutex.ptr(0, 0), 0, $ifaceNil, ptrType$49.nil, sliceType.nil, $throwNilPointerError); + obj.object.typ = typ$3; + if (!(check === ptrType$6.nil)) { + check.needsCleanup(typ$3); + } + $s = -1; return typ$3; + /* */ } return; } var $f = {$blk: newNamedInstance, $c: true, $r, check, expanding, inst, obj, orig, pos, targs, typ$3, $s};return $f; }; - $ptrType(TypeList).prototype.At = function At$1(i) { - var i, l, x; - l = this; - return (x = l.types, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + $ptrType(Named).prototype.cleanup = function cleanup$1() { + var {_r, _ref, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + $r = assert(t.inst === ptrType$53.nil || t.inst.orig.inst === ptrType$53.nil); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _ref = t.underlying; + /* */ if (_ref === $ifaceNil) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_ref === $ifaceNil) { */ case 2: + if (t.TypeArgs().Len() === 0) { + $panic(new $String("nil underlying")); + } + $s = 4; continue; + /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 3: + _r = t.under(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + /* } */ case 4: + t.check = ptrType$6.nil; + $s = -1; return; + /* */ } return; } var $f = {$blk: cleanup$1, $c: true, $r, _r, _ref, t, $s};return $f; }; - $ptrType(TypeList).prototype.list = function list$1() { - var l; - l = this; - if (l === ptrType$56.nil) { - return sliceType$2.nil; + $ptrType(Named).prototype.Obj = function Obj$2() { + var t; + t = this; + if (t.inst === ptrType$53.nil) { + return t.obj; } - return l.types; + return t.inst.orig.obj; }; - bindTParams = function bindTParams$1(list$2) { - var _i, _ref, i, list$2, typ$2; - if (list$2.$length === 0) { - return ptrType$48.nil; - } - _ref = list$2; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - typ$2 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (typ$2.index >= 0) { - $panic(new $String("type parameter bound more than once")); - } - typ$2.index = i; - _i++; + $ptrType(Named).prototype.Origin = function Origin$2() { + var t; + t = this; + if (t.inst === ptrType$53.nil) { + return t; } - return new TypeParamList.ptr(list$2); + return t.inst.orig; }; - under = function under$1(t) { - var {$24r, $24r$1, _r$1, _r$2, _tuple, t, t$1, $s, $r, $c} = $restore(this, {t}); + $ptrType(Named).prototype.TypeParams = function TypeParams$1() { + var {$24r, _r, t, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _tuple = $assertType(t, ptrType$9, true); - t$1 = _tuple[0]; - /* */ if (!(t$1 === ptrType$9.nil)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(t$1 === ptrType$9.nil)) { */ case 1: - _r$1 = t$1.under(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 4; case 4: return $24r; - /* } */ case 2: - _r$2 = t.Underlying(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r$1 = _r$2; - $s = 6; case 6: return $24r$1; - /* */ } return; } var $f = {$blk: under$1, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _tuple, t, t$1, $s};return $f; + t = this; + _r = t.resolve(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r.tparams; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: TypeParams$1, $c: true, $r, $24r, _r, t, $s};return $f; }; - coreType = function coreType$1(t) { - var {$24r, _r$1, _r$2, _tuple, su, t, tpar, $s, $r, $c} = $restore(this, {t}); + $ptrType(Named).prototype.SetTypeParams = function SetTypeParams(tparams) { + var {_r, t, tparams, $s, $r, $c} = $restore(this, {tparams}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - su = [su]; - _tuple = $assertType(t, ptrType$14, true); - tpar = _tuple[0]; - /* */ if (tpar === ptrType$14.nil) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (tpar === ptrType$14.nil) { */ case 1: - _r$1 = under(t); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 4; case 4: return $24r; - /* } */ case 2: - su[0] = $ifaceNil; - _r$2 = tpar.underIs((function(su) { return function coreType·func1(u) { - var {_r$2, u, $s, $r, $c} = $restore(this, {u}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if ($interfaceIsEqual(u, $ifaceNil)) { - $s = -1; return false; - } - /* */ if (!($interfaceIsEqual(su[0], $ifaceNil))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!($interfaceIsEqual(su[0], $ifaceNil))) { */ case 1: - _r$2 = match(su[0], u); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - u = _r$2; - if ($interfaceIsEqual(u, $ifaceNil)) { - $s = -1; return false; - } - /* } */ case 2: - su[0] = u; - $s = -1; return true; - /* */ } return; } var $f = {$blk: coreType·func1, $c: true, $r, _r$2, u, $s};return $f; - }; })(su)); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (_r$2) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (_r$2) { */ case 5: - $s = -1; return su[0]; - /* } */ case 6: - $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: coreType$1, $c: true, $r, $24r, _r$1, _r$2, _tuple, su, t, tpar, $s};return $f; + t = this; + $r = assert(t.inst === ptrType$53.nil); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r = t.resolve(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r.tparams = bindTParams(tparams); + $s = -1; return; + /* */ } return; } var $f = {$blk: SetTypeParams, $c: true, $r, _r, t, tparams, $s};return $f; }; - coreString = function coreString$1(t) { - var {$24r, _r$1, _r$2, _tuple, hasString, su, t, tpar, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - hasString = [hasString]; - su = [su]; - _tuple = $assertType(t, ptrType$14, true); - tpar = _tuple[0]; - /* */ if (tpar === ptrType$14.nil) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (tpar === ptrType$14.nil) { */ case 1: - _r$1 = under(t); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 4; case 4: return $24r; - /* } */ case 2: - su[0] = $ifaceNil; - hasString[0] = false; - _r$2 = tpar.underIs((function(hasString, su) { return function coreString·func1(u) { - var {_r$2, _r$3, u, $s, $r, $c} = $restore(this, {u}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if ($interfaceIsEqual(u, $ifaceNil)) { - $s = -1; return false; - } - _r$2 = isString(u); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (_r$2) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (_r$2) { */ case 1: - u = NewSlice(universeByte); - hasString[0] = true; - /* } */ case 2: - /* */ if (!($interfaceIsEqual(su[0], $ifaceNil))) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (!($interfaceIsEqual(su[0], $ifaceNil))) { */ case 4: - _r$3 = match(su[0], u); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - u = _r$3; - if ($interfaceIsEqual(u, $ifaceNil)) { - $s = -1; return false; - } - /* } */ case 5: - su[0] = u; - $s = -1; return true; - /* */ } return; } var $f = {$blk: coreString·func1, $c: true, $r, _r$2, _r$3, u, $s};return $f; - }; })(hasString, su)); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (_r$2) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (_r$2) { */ case 5: - if (hasString[0]) { - $s = -1; return (17 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 17]); - } - $s = -1; return su[0]; - /* } */ case 6: - $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: coreString$1, $c: true, $r, $24r, _r$1, _r$2, _tuple, hasString, su, t, tpar, $s};return $f; + $ptrType(Named).prototype.TypeArgs = function TypeArgs() { + var t; + t = this; + if (t.inst === ptrType$53.nil) { + return ptrType$57.nil; + } + return t.inst.targs; }; - match = function match$1(x, y) { - var {_r$1, _r$2, _tuple, _tuple$1, _v, x, x$1, y, y$1, $s, $r, $c} = $restore(this, {x, y}); + $ptrType(Named).prototype.NumMethods = function NumMethods$1() { + var {$24r, _r, t, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = Identical(x, y); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (_r$1) { */ case 1: - $s = -1; return x; - /* } */ case 2: - _tuple = $assertType(x, ptrType$29, true); - x$1 = _tuple[0]; - /* */ if (!(x$1 === ptrType$29.nil)) { $s = 4; continue; } + t = this; + _r = t.Origin().resolve(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r.methods.$length; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: NumMethods$1, $c: true, $r, $24r, _r, t, $s};return $f; + }; + $ptrType(Named).prototype.Method = function Method$1(i) { + var {$24r, _r, _r$1, i, orig, t, x, x$1, x$2, x$3, $s, $deferred, $r, $c} = $restore(this, {i}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + t = this; + _r = t.resolve(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + if (t.state() >= 2) { + $s = -1; return (x = t.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + } + $r = assert(!(t.inst === ptrType$53.nil)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + orig = t.inst.orig; + $r = t.mu.Lock(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(t.mu, "Unlock"), []]); + /* */ if (!((t.methods.$length === orig.methods.$length))) { $s = 4; continue; } /* */ $s = 5; continue; - /* if (!(x$1 === ptrType$29.nil)) { */ case 4: - _tuple$1 = $assertType(y, ptrType$29, true); - y$1 = _tuple$1[0]; - if (!(!(y$1 === ptrType$29.nil))) { _v = false; $s = 8; continue s; } - _r$2 = Identical(x$1.elem, y$1.elem); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _v = _r$2; case 8: - /* */ if (_v) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (_v) { */ case 6: - if ((x$1.dir === 0)) { - $s = -1; return y$1; - } else if ((y$1.dir === 0)) { - $s = -1; return x$1; - } - /* } */ case 7: + /* if (!((t.methods.$length === orig.methods.$length))) { */ case 4: + $r = assert(t.methods.$length === 0); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + t.methods = $makeSlice(sliceType, orig.methods.$length); /* } */ case 5: - $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: match$1, $c: true, $r, _r$1, _r$2, _tuple, _tuple$1, _v, x, x$1, y, y$1, $s};return $f; + /* */ if ((x$1 = t.methods, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])) === ptrType$2.nil) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if ((x$1 = t.methods, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])) === ptrType$2.nil) { */ case 7: + $r = assert(!(t.inst.ctxt === ptrType$52.nil)); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = t.expandMethod(i); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + (x$2 = t.methods, ((i < 0 || i >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i] = _r$1)); + t.inst.expandedMethods = t.inst.expandedMethods + (1) >> 0; + if (t.inst.expandedMethods === orig.methods.$length) { + t.setState(2); + t.inst.ctxt = ptrType$52.nil; + } + /* } */ case 8: + $24r = (x$3 = t.methods, ((i < 0 || i >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + i])); + $s = 11; case 11: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$2.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Method$1, $c: true, $r, $24r, _r, _r$1, i, orig, t, x, x$1, x$2, x$3, $s, $deferred};return $f; } } }; - NewTuple = function NewTuple$1(x) { - var x; - if (x.$length > 0) { - return new Tuple.ptr(x); + $ptrType(Named).prototype.expandMethod = function expandMethod(i) { + var {_r, _r$1, _r$2, _tuple, check, copy, ctxt, i, origSig, origm, rbase, rtyp, sig, smap, t, $s, $r, $c} = $restore(this, {i}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + copy = [copy]; + t = this; + _r = t.inst.orig.Method(i); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + origm = _r; + $r = assert(!(origm === ptrType$2.nil)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + check = t.check; + /* */ if (!(check === ptrType$6.nil)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!(check === ptrType$6.nil)) { */ case 3: + $r = check.objDecl(origm, ptrType$10.nil); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 4: + origSig = $assertType(origm.object.typ, ptrType$29); + _tuple = deref(origSig.Recv().object.Type()); + rbase = _tuple[0]; + if ($interfaceIsEqual(rbase, t)) { + $s = -1; return origm; } - return ptrType$15.nil; + sig = origSig; + /* */ if (origSig.RecvTypeParams().Len() === t.inst.targs.Len()) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (origSig.RecvTypeParams().Len() === t.inst.targs.Len()) { */ case 6: + _r$1 = makeSubstMap(origSig.RecvTypeParams().list(), t.inst.targs.list()); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + smap = _r$1; + ctxt = ptrType$52.nil; + if (!(check === ptrType$6.nil)) { + ctxt = check.context(); + } + _r$2 = check.subst(origm.object.pos, origSig, smap, t, ctxt); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + sig = $assertType(_r$2, ptrType$29); + /* } */ case 7: + if (sig === origSig) { + copy[0] = $clone((origSig === ptrType$29.nil && $throwNilPointerError(), origSig), Signature); + sig = copy[0]; + } + rtyp = $ifaceNil; + if (origm.hasPtrRecv()) { + rtyp = NewPointer(t); + } else { + rtyp = t; + } + sig.recv = substVar(origSig.recv, rtyp); + $s = -1; return substFunc(origm, sig); + /* */ } return; } var $f = {$blk: expandMethod, $c: true, $r, _r, _r$1, _r$2, _tuple, check, copy, ctxt, i, origSig, origm, rbase, rtyp, sig, smap, t, $s};return $f; }; - $pkg.NewTuple = NewTuple; - $ptrType(Tuple).prototype.Len = function Len$4() { - var t; + $ptrType(Named).prototype.SetUnderlying = function SetUnderlying(underlying) { + var {_r, _tuple, ok, t, underlying, $s, $r, $c} = $restore(this, {underlying}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: t = this; - if (!(t === ptrType$15.nil)) { - return t.vars.$length; + $r = assert(t.inst === ptrType$53.nil); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if ($interfaceIsEqual(underlying, $ifaceNil)) { + $panic(new $String("underlying type must not be nil")); } - return 0; + _tuple = $assertType(underlying, ptrType$10, true); + ok = _tuple[1]; + if (ok) { + $panic(new $String("underlying type must not be *Named")); + } + _r = t.resolve(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r.underlying = underlying; + if ($interfaceIsEqual(t.fromRHS, $ifaceNil)) { + t.fromRHS = underlying; + } + $s = -1; return; + /* */ } return; } var $f = {$blk: SetUnderlying, $c: true, $r, _r, _tuple, ok, t, underlying, $s};return $f; }; - $ptrType(Tuple).prototype.At = function At$2(i) { - var i, t, x; + $ptrType(Named).prototype.AddMethod = function AddMethod(m) { + var {_r, _tuple, i, m, t, $s, $r, $c} = $restore(this, {m}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: t = this; - return (x = t.vars, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + $r = assert(t.inst === ptrType$53.nil); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r = t.resolve(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + _tuple = lookupMethod(t.methods, m.object.pkg, m.object.name, false); + i = _tuple[0]; + if (i < 0) { + t.methods = $append(t.methods, m); + } + $s = -1; return; + /* */ } return; } var $f = {$blk: AddMethod, $c: true, $r, _r, _tuple, i, m, t, $s};return $f; }; - $ptrType(Tuple).prototype.Underlying = function Underlying$2() { - var t; + $ptrType(Named).prototype.Underlying = function Underlying$7() { + var {$24r, _r, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: t = this; - return t; + _r = t.resolve(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r.underlying; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Underlying$7, $c: true, $r, $24r, _r, t, $s};return $f; }; - $ptrType(Tuple).prototype.String = function String$6() { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); + $ptrType(Named).prototype.String = function String$29() { + var {$24r, _r, t, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: t = this; - _r$1 = TypeString(t, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; + _r = TypeString(t, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$6, $c: true, $r, $24r, _r$1, t, $s};return $f; + /* */ } return; } var $f = {$blk: String$29, $c: true, $r, $24r, _r, t, $s};return $f; }; - termlist.prototype.String = function String$7() { - var {_i, _r$1, _r$2, _ref, buf, i, x, xl, $s, $r, $c} = $restore(this, {}); + $ptrType(Named).prototype.under = function under$2() { + var {_entry, _entry$1, _i, _key, _key$1, _keys, _r, _r$1, _ref, _ref$1, _ref$2, _size, _tuple, check, i, n, n$1, n0, n1, ok, path, seen, u, u1, u1$1, u1$2, u1$3, u1$4, u1$5, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - xl = this; - if (xl.$length === 0) { - $s = -1; return "\xE2\x88\x85"; + n0 = this; + _r = n0.Underlying(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + u = _r; + n1 = ptrType$10.nil; + _ref = u; + if (_ref === $ifaceNil) { + u1 = _ref; + $panic(new $String("nil underlying")); + } else if ($assertType(_ref, ptrType$10, true)[1]) { + u1$2 = _ref.$val; + n1 = u1$2; + } else { + u1$1 = _ref; + $s = -1; return u; } - buf = new strings.Builder.ptr(ptrType$53.nil, sliceType$14.nil); - _ref = xl; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (i > 0) { - buf.WriteString(" | "); + if (n0.check === ptrType$6.nil) { + $panic(new $String("Named.check == nil but type is incomplete")); + } + check = n0.check; + n = n0; + seen = new $global.Map(); + path = sliceType$7.nil; + /* while (true) { */ case 2: + _key = n; (seen || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$10.keyFor(_key), { k: _key, v: (seen ? seen.size : 0) }); + path = $append(path, n.obj); + n = n1; + _tuple = (_entry = $mapIndex(seen,ptrType$10.keyFor(n)), _entry !== undefined ? [_entry.v, true] : [0, false]); + i = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (ok) { */ case 4: + $r = check.cycleError($subslice(path, i)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + u = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + /* break; */ $s = 3; continue; + /* } */ case 5: + _r$1 = n.Underlying(); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + u = _r$1; + _ref$1 = u; + if (_ref$1 === $ifaceNil) { + u1$3 = _ref$1; + u = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + /* break loop; */ $s = 3; continue s; + } else if ($assertType(_ref$1, ptrType$10, true)[1]) { + u1$5 = _ref$1.$val; + n1 = u1$5; + } else { + u1$4 = _ref$1; + /* break loop; */ $s = 3; continue s; } - _r$1 = x.String(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = buf.WriteString(_r$1); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - _i++; - $s = 1; continue; - case 2: - $s = -1; return buf.String(); - /* */ } return; } var $f = {$blk: String$7, $c: true, $r, _i, _r$1, _r$2, _ref, buf, i, x, xl, $s};return $f; - }; - $ptrType(termlist).prototype.String = function(...$args) { return this.$get().String(...$args); }; - termlist.prototype.isEmpty = function isEmpty() { - var _i, _ref, x, xl; - xl = this; - _ref = xl; + $s = 2; continue; + case 3: + _ref$2 = seen; _i = 0; + _keys = _ref$2 ? _ref$2.keys() : undefined; + _size = _ref$2 ? _ref$2.size : 0; while (true) { - if (!(_i < _ref.$length)) { break; } - x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (!(x === ptrType$4.nil)) { - return false; + if (!(_i < _size)) { break; } + _key$1 = _keys.next().value; + _entry$1 = _ref$2.get(_key$1); + if (_entry$1 === undefined) { + _i++; + continue; + } + n$1 = _entry$1.k; + if (!(n$1.obj.object.pkg === check.pkg)) { + $panic(new $String("imported type with unresolved underlying type")); } + n$1.underlying = u; _i++; } - return true; + $s = -1; return u; + /* */ } return; } var $f = {$blk: under$2, $c: true, $r, _entry, _entry$1, _i, _key, _key$1, _keys, _r, _r$1, _ref, _ref$1, _ref$2, _size, _tuple, check, i, n, n$1, n0, n1, ok, path, seen, u, u1, u1$1, u1$2, u1$3, u1$4, u1$5, $s};return $f; }; - $ptrType(termlist).prototype.isEmpty = function(...$args) { return this.$get().isEmpty(...$args); }; - termlist.prototype.isAll = function isAll() { - var _i, _ref, x, xl; - xl = this; - _ref = xl; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (!(x === ptrType$4.nil) && $interfaceIsEqual(x.typ, $ifaceNil)) { - return true; - } - _i++; + $ptrType(Named).prototype.setUnderlying = function setUnderlying(typ$3) { + var n, typ$3; + n = this; + if (!(n === ptrType$10.nil)) { + n.underlying = typ$3; } - return false; }; - $ptrType(termlist).prototype.isAll = function(...$args) { return this.$get().isAll(...$args); }; - termlist.prototype.norm = function norm() { - var {_i, _r$1, _ref, _tuple, i, j, rl, u1, u2, used, xi, xj, xl, $s, $r, $c} = $restore(this, {}); + $ptrType(Named).prototype.lookupMethod = function lookupMethod$1(pkg, name, foldCase) { + var {$24r, _r, _r$1, _tuple, foldCase, i, n, name, pkg, $s, $r, $c} = $restore(this, {pkg, name, foldCase}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - xl = this; - used = $makeSlice(sliceType$15, xl.$length); - rl = termlist.nil; - _ref = xl; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - xi = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (xi === ptrType$4.nil || ((i < 0 || i >= used.$length) ? ($throwRuntimeError("index out of range"), undefined) : used.$array[used.$offset + i])) { - _i++; - /* continue; */ $s = 1; continue; - } - j = i + 1 >> 0; - /* while (true) { */ case 3: - /* if (!(j < xl.$length)) { break; } */ if(!(j < xl.$length)) { $s = 4; continue; } - xj = ((j < 0 || j >= xl.$length) ? ($throwRuntimeError("index out of range"), undefined) : xl.$array[xl.$offset + j]); - if (xj === ptrType$4.nil || ((j < 0 || j >= used.$length) ? ($throwRuntimeError("index out of range"), undefined) : used.$array[used.$offset + j])) { - j = j + (1) >> 0; - /* continue; */ $s = 3; continue; - } - _r$1 = xi.union(xj); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - u1 = _tuple[0]; - u2 = _tuple[1]; - if (u2 === ptrType$4.nil) { - if ($interfaceIsEqual(u1.typ, $ifaceNil)) { - $s = -1; return allTermlist; - } - xi = u1; - ((j < 0 || j >= used.$length) ? ($throwRuntimeError("index out of range"), undefined) : used.$array[used.$offset + j] = true); + n = this; + _r = n.resolve(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + _tuple = lookupMethod(n.Origin().methods, pkg, name, foldCase); + i = _tuple[0]; + if (i < 0) { + $s = -1; return [-1, ptrType$2.nil]; + } + _r$1 = n.Method(i); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = [i, _r$1]; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: lookupMethod$1, $c: true, $r, $24r, _r, _r$1, _tuple, foldCase, i, n, name, pkg, $s};return $f; + }; + $ptrType(Checker).prototype.context = function context() { + var check; + check = this; + if (check.ctxt === ptrType$52.nil) { + check.ctxt = NewContext(); + } + return check.ctxt; + }; + $ptrType(Named).prototype.expandUnderlying = function expandUnderlying() { + var {$24r, $24r$1, _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, _tuple$2, check, copied, ctxt, h, iface$1, methods, n, n2, old, orig, smap, targs, underlying, unexpanded, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + check = [check]; + n = [n]; + n[0] = this; + check[0] = n[0].check; + /* */ if (!(check[0] === ptrType$6.nil) && check[0].conf._Trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(check[0] === ptrType$6.nil) && check[0].conf._Trace) { */ case 1: + $r = check[0].trace(n[0].obj.object.pos, "-- Named.expandUnderlying %s", new sliceType$5([n[0]])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + check[0].indent = check[0].indent + (1) >> 0; + $deferred.push([(function(check, n) { return function Named·expandUnderlying·func1() { + var {$s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check[0].indent = check[0].indent - (1) >> 0; + $r = check[0].trace(n[0].obj.object.pos, "=> %s (tparams = %s, under = %s)", new sliceType$5([n[0], n[0].tparams.list(), n[0].underlying])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Named·expandUnderlying·func1, $c: true, $r, $s};return $f; + }; })(check, n), []]); + /* } */ case 2: + $r = assert(!($interfaceIsEqual(n[0].inst.orig.underlying, $ifaceNil))); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (n[0].inst.ctxt === ptrType$52.nil) { + n[0].inst.ctxt = NewContext(); + } + orig = n[0].inst.orig; + targs = n[0].inst.targs; + _tuple = $assertType(orig.underlying, ptrType$10, true); + unexpanded = _tuple[1]; + /* */ if (unexpanded) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (unexpanded) { */ case 5: + $r = assert(!(check[0] === ptrType$6.nil)); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + /* */ if (!((orig.tparams.Len() === targs.Len()))) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!((orig.tparams.Len() === targs.Len()))) { */ case 8: + $24r = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + $s = 10; case 10: return $24r; + /* } */ case 9: + _r = n[0].inst.ctxt.instanceHash(orig, targs.list()); /* */ $s = 11; case 11: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + h = _r; + _r$1 = n[0].inst.ctxt.update(h, orig, n[0].TypeArgs().list(), n[0]); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + n2 = _r$1; + $r = assert($interfaceIsEqual(n[0], n2)); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = makeSubstMap(orig.tparams.list(), targs.list()); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + smap = _r$2; + ctxt = ptrType$52.nil; + if (!(check[0] === ptrType$6.nil)) { + ctxt = check[0].context(); + } + _r$3 = n[0].check.subst(n[0].obj.object.pos, orig.underlying, smap, n[0], ctxt); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + underlying = _r$3; + _tuple$1 = $assertType(underlying, ptrType$14, true); + iface$1 = _tuple$1[0]; + if (!(iface$1 === ptrType$14.nil)) { + _tuple$2 = replaceRecvType(iface$1.methods, orig, n[0]); + methods = _tuple$2[0]; + copied = _tuple$2[1]; + if (copied) { + if ($interfaceIsEqual(iface$1, orig.underlying)) { + old = iface$1; + iface$1 = check[0].newInterface(); + iface$1.embeddeds = old.embeddeds; + iface$1.complete = old.complete; + iface$1.implicit = old.implicit; + underlying = iface$1; } - j = j + (1) >> 0; - $s = 3; continue; - case 4: - rl = $append(rl, xi); - _i++; - $s = 1; continue; - case 2: - $s = -1; return rl; - /* */ } return; } var $f = {$blk: norm, $c: true, $r, _i, _r$1, _ref, _tuple, i, j, rl, u1, u2, used, xi, xj, xl, $s};return $f; + iface$1.methods = methods; + } + } + $24r$1 = underlying; + $s = 16; case 16: return $24r$1; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: expandUnderlying, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, _tuple$2, check, copied, ctxt, h, iface$1, methods, n, n2, old, orig, smap, targs, underlying, unexpanded, $s, $deferred};return $f; } } }; - $ptrType(termlist).prototype.norm = function(...$args) { return this.$get().norm(...$args); }; - termlist.prototype.union = function union$1(yl) { - var {$24r, _r$1, xl, yl, $s, $r, $c} = $restore(this, {yl}); + safeUnderlying = function safeUnderlying$1(typ$3) { + var {$24r, _r, _tuple, t, typ$3, $s, $r, $c} = $restore(this, {typ$3}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - xl = this; - _r$1 = $appendSlice(xl, $convertSliceType(yl, sliceType$16)).norm(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; + _tuple = $assertType(typ$3, ptrType$10, true); + t = _tuple[0]; + if (!(t === ptrType$10.nil)) { + $s = -1; return t.underlying; + } + _r = typ$3.Underlying(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: union$1, $c: true, $r, $24r, _r$1, xl, yl, $s};return $f; + /* */ } return; } var $f = {$blk: safeUnderlying$1, $c: true, $r, $24r, _r, _tuple, t, typ$3, $s};return $f; }; - $ptrType(termlist).prototype.union = function(...$args) { return this.$get().union(...$args); }; - termlist.prototype.intersect = function intersect$1(yl) { - var {$24r, _i, _i$1, _r$1, _r$2, _ref, _ref$1, r, rl, x, xl, y, yl, $s, $r, $c} = $restore(this, {yl}); + $ptrType(Checker).prototype.monomorph = function monomorph() { + var {_i, _ref, again, check, dst, edge, i, src, w, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - xl = this; - if (xl.isEmpty() || yl.isEmpty()) { - $s = -1; return termlist.nil; - } - rl = termlist.nil; - _ref = xl; - _i = 0; + check = this; + again = true; /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _ref$1 = yl; - _i$1 = 0; + /* if (!(again)) { break; } */ if(!(again)) { $s = 2; continue; } + again = false; + _ref = check.mono.edges; + _i = 0; /* while (true) { */ case 3: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 4; continue; } - y = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - _r$1 = x.intersect(y); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - r = _r$1; - if (!(r === ptrType$4.nil)) { - rl = $append(rl, r); + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } + i = _i; + edge = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), monoEdge); + src = (x = check.mono.vertices, x$1 = edge.src, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + x$1, ptrType$94))); + dst = (x$2 = check.mono.vertices, x$3 = edge.dst, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$2.$array, x$2.$offset + x$3, ptrType$94))); + w = src.weight + edge.weight >> 0; + if (w <= dst.weight) { + _i++; + /* continue; */ $s = 3; continue; } - _i$1++; + dst.pre = i; + dst.len = src.len + 1 >> 0; + /* */ if (dst.len === check.mono.vertices.$length) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (dst.len === check.mono.vertices.$length) { */ case 5: + $r = check.reportInstanceLoop(edge.dst); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 6: + dst.weight = w; + again = true; + _i++; $s = 3; continue; case 4: - _i++; $s = 1; continue; case 2: - _r$2 = rl.norm(); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 7; case 7: return $24r; - /* */ } return; } var $f = {$blk: intersect$1, $c: true, $r, $24r, _i, _i$1, _r$1, _r$2, _ref, _ref$1, r, rl, x, xl, y, yl, $s};return $f; - }; - $ptrType(termlist).prototype.intersect = function(...$args) { return this.$get().intersect(...$args); }; - termlist.prototype.equal = function equal$1(yl) { - var {$24r, _r$1, _r$2, _v, xl, yl, $s, $r, $c} = $restore(this, {yl}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - xl = this; - _r$1 = xl.subsetOf(yl); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - if (!(_r$1)) { _v = false; $s = 1; continue s; } - _r$2 = yl.subsetOf(xl); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _v = _r$2; case 1: - $24r = _v; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: equal$1, $c: true, $r, $24r, _r$1, _r$2, _v, xl, yl, $s};return $f; + $s = -1; return; + /* */ } return; } var $f = {$blk: monomorph, $c: true, $r, _i, _ref, again, check, dst, edge, i, src, w, x, x$1, x$2, x$3, $s};return $f; }; - $ptrType(termlist).prototype.equal = function(...$args) { return this.$get().equal(...$args); }; - termlist.prototype.includes = function includes$1(t) { - var {_i, _r$1, _ref, t, x, xl, $s, $r, $c} = $restore(this, {t}); + $ptrType(Checker).prototype.reportInstanceLoop = function reportInstanceLoop(v) { + var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _i, _r, _r$1, _ref, _ref$1, check, edge, obj, obj0, qf, seen, stack, v, v$1, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, $s, $r, $c} = $restore(this, {v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - xl = this; - _ref = xl; + check = this; + stack = sliceType$24.nil; + seen = $makeSlice(sliceType$14, check.mono.vertices.$length); + while (true) { + if (!(!((v < 0 || v >= seen.$length) ? ($throwRuntimeError("index out of range"), undefined) : seen.$array[seen.$offset + v]))) { break; } + stack = $append(stack, v); + ((v < 0 || v >= seen.$length) ? ($throwRuntimeError("index out of range"), undefined) : seen.$array[seen.$offset + v] = true); + v = (x = check.mono.edges, x$1 = (x$2 = check.mono.vertices, ((v < 0 || v >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + v])).pre, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).src; + } + while (true) { + if (!(!(((0 >= stack.$length ? ($throwRuntimeError("index out of range"), undefined) : stack.$array[stack.$offset + 0]) === v)))) { break; } + stack = $subslice(stack, 1); + } + obj0 = (x$3 = check.mono.vertices, ((v < 0 || v >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + v])).obj; + $r = check.error(obj0, 140, "instantiation cycle:"); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + qf = RelativeTo(check.pkg); + _ref = stack; _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$1 = x.includes(t); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (_r$1) { */ case 3: - $s = -1; return true; - /* } */ case 4: + /* while (true) { */ case 2: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } + v$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + edge = $clone((x$4 = check.mono.edges, x$5 = (x$6 = check.mono.vertices, ((v$1 < 0 || v$1 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + v$1])).pre, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])), monoEdge); + obj = (x$7 = check.mono.vertices, x$8 = edge.dst, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8])).obj; + _ref$1 = obj.object.Type(); + /* */ if ($assertType(_ref$1, ptrType$10, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref$1, ptrType$15, true)[1]) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if ($assertType(_ref$1, ptrType$10, true)[1]) { */ case 4: + _arg = new atPos(((edge.pos >> 0))); + _arg$1 = new $String(obj.object.Name()); + _r = TypeString(edge.typ, qf); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$2 = new $String(_r); + $r = check.errorf(_arg, 140, "\t%s implicitly parameterized by %s", new sliceType$5([_arg$1, _arg$2])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 7; continue; + /* } else if ($assertType(_ref$1, ptrType$15, true)[1]) { */ case 5: + _arg$3 = new atPos(((edge.pos >> 0))); + _arg$4 = new $String(obj.object.Name()); + _r$1 = TypeString(edge.typ, qf); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg$5 = new $String(_r$1); + $r = check.errorf(_arg$3, 140, "\t%s instantiated as %s", new sliceType$5([_arg$4, _arg$5])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 7; continue; + /* } else { */ case 6: + $panic(new $String("unexpected type")); + /* } */ case 7: _i++; - $s = 1; continue; - case 2: - $s = -1; return false; - /* */ } return; } var $f = {$blk: includes$1, $c: true, $r, _i, _r$1, _ref, t, x, xl, $s};return $f; + $s = 2; continue; + case 3: + $s = -1; return; + /* */ } return; } var $f = {$blk: reportInstanceLoop, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _i, _r, _r$1, _ref, _ref$1, check, edge, obj, obj0, qf, seen, stack, v, v$1, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, $s};return $f; }; - $ptrType(termlist).prototype.includes = function(...$args) { return this.$get().includes(...$args); }; - termlist.prototype.supersetOf = function supersetOf(y) { - var {_i, _r$1, _ref, x, xl, y, $s, $r, $c} = $restore(this, {y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - xl = this; - _ref = xl; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$1 = y.subsetOf(x); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (_r$1) { */ case 3: - $s = -1; return true; - /* } */ case 4: - _i++; - $s = 1; continue; - case 2: - $s = -1; return false; - /* */ } return; } var $f = {$blk: supersetOf, $c: true, $r, _i, _r$1, _ref, x, xl, y, $s};return $f; + $ptrType(monoGraph).prototype.recordCanon = function recordCanon(mpar, tpar) { + var _key, mpar, tpar, w; + w = this; + if (w.canon === false) { + w.canon = new $global.Map(); + } + _key = mpar; (w.canon || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$15.keyFor(_key), { k: _key, v: tpar }); }; - $ptrType(termlist).prototype.supersetOf = function(...$args) { return this.$get().supersetOf(...$args); }; - termlist.prototype.subsetOf = function subsetOf$2(yl) { - var {_i, _r$1, _ref, x, xl, yl, $s, $r, $c} = $restore(this, {yl}); + $ptrType(monoGraph).prototype.recordInstance = function recordInstance(pkg, pos, tparams, targs, xlist) { + var {_i, _r, _ref, i, pkg, pos, pos$1, targs, tpar, tparams, w, xlist, $s, $r, $c} = $restore(this, {pkg, pos, tparams, targs, xlist}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - xl = this; - if (yl.isEmpty()) { - $s = -1; return xl.isEmpty(); - } - _ref = xl; + w = this; + _ref = tparams; _i = 0; /* while (true) { */ case 1: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$1 = yl.supersetOf(x); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (!_r$1) { $s = 3; continue; } + i = _i; + tpar = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + pos$1 = pos; + /* */ if (i < xlist.$length) { $s = 3; continue; } /* */ $s = 4; continue; - /* if (!_r$1) { */ case 3: - $s = -1; return false; + /* if (i < xlist.$length) { */ case 3: + _r = ((i < 0 || i >= xlist.$length) ? ($throwRuntimeError("index out of range"), undefined) : xlist.$array[xlist.$offset + i]).Pos(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + pos$1 = _r; /* } */ case 4: + $r = w.assign(pkg, pos$1, tpar, ((i < 0 || i >= targs.$length) ? ($throwRuntimeError("index out of range"), undefined) : targs.$array[targs.$offset + i])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _i++; $s = 1; continue; case 2: - $s = -1; return true; - /* */ } return; } var $f = {$blk: subsetOf$2, $c: true, $r, _i, _r$1, _ref, x, xl, yl, $s};return $f; - }; - $ptrType(termlist).prototype.subsetOf = function(...$args) { return this.$get().subsetOf(...$args); }; - makeSubstMap = function makeSubstMap$1(tpars, targs) { - var {_i, _key, _ref, i, proj, targs, tpar, tpars, x, $s, $r, $c} = $restore(this, {tpars, targs}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = assert(tpars.$length === targs.$length); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - proj = (x = tpars.$length, ((x < 0 || x > 2147483647) ? $throwRuntimeError("makemap: size out of range") : new $global.Map())); - _ref = tpars; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - tpar = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _key = tpar; (proj || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$14.keyFor(_key), { k: _key, v: ((i < 0 || i >= targs.$length) ? ($throwRuntimeError("index out of range"), undefined) : targs.$array[targs.$offset + i]) }); - _i++; - } - $s = -1; return proj; - /* */ } return; } var $f = {$blk: makeSubstMap$1, $c: true, $r, _i, _key, _ref, i, proj, targs, tpar, tpars, x, $s};return $f; + $s = -1; return; + /* */ } return; } var $f = {$blk: recordInstance, $c: true, $r, _i, _r, _ref, i, pkg, pos, pos$1, targs, tpar, tparams, w, xlist, $s};return $f; }; - makeRenameMap = function makeRenameMap$1(from, to) { - var {_i, _key, _ref, from, i, proj, to, tpar, x, $s, $r, $c} = $restore(this, {from, to}); + $ptrType(monoGraph).prototype.assign = function assign(pkg, pos, tpar, targ) { + var {do$1, flow, pkg, pos, targ, tpar, w, $s, $r, $c} = $restore(this, {pkg, pos, tpar, targ}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = assert(from.$length === to.$length); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - proj = (x = from.$length, ((x < 0 || x > 2147483647) ? $throwRuntimeError("makemap: size out of range") : new $global.Map())); - _ref = from; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - tpar = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _key = tpar; (proj || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$14.keyFor(_key), { k: _key, v: ((i < 0 || i >= to.$length) ? ($throwRuntimeError("index out of range"), undefined) : to.$array[to.$offset + i]) }); - _i++; + do$1 = [do$1]; + flow = [flow]; + pkg = [pkg]; + pos = [pos]; + targ = [targ]; + tpar = [tpar]; + w = [w]; + w[0] = this; + if (!(tpar[0].Obj().object.Pkg() === pkg[0])) { + $s = -1; return; } - $s = -1; return proj; - /* */ } return; } var $f = {$blk: makeRenameMap$1, $c: true, $r, _i, _key, _ref, from, i, proj, to, tpar, x, $s};return $f; - }; - substMap.prototype.empty = function empty() { - var m; - m = this.$val; - return (m ? m.size : 0) === 0; + flow[0] = (function(do$1, flow, pkg, pos, targ, tpar, w) { return function monoGraph·assign·func1(src, typ$3) { + var src, typ$3, weight; + weight = 1; + if ($interfaceIsEqual(typ$3, targ[0])) { + weight = 0; + } + w[0].addEdge(w[0].typeParamVertex(tpar[0]), src, weight, pos[0], targ[0]); + }; })(do$1, flow, pkg, pos, targ, tpar, w); + do$1[0] = $throwNilPointerError; + do$1[0] = (function(do$1, flow, pkg, pos, targ, tpar, w) { return function monoGraph·assign·func2(typ$3) { + var {_r, _r$1, _r$2, _ref, i, i$1, i$2, src, targs, tuple$2, typ$10, typ$11, typ$12, typ$13, typ$14, typ$15, typ$3, typ$4, typ$5, typ$6, typ$7, typ$8, typ$9, $s, $r, $c} = $restore(this, {typ$3}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref = typ$3; + /* */ if ($assertType(_ref, ptrType$15, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$30, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 9; continue; } + /* */ if ($assertType(_ref, ptrType$29, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref, ptrType$12, true)[1]) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if ($assertType(_ref, ptrType$15, true)[1]) { */ case 1: + typ$5 = _ref.$val; + $r = assert(typ$5.Obj().object.Pkg() === pkg[0]); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = flow[0](w[0].typeParamVertex(typ$5), typ$5); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 13; continue; + /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 2: + typ$6 = _ref.$val; + src = w[0].localNamedVertex(pkg[0], typ$6.Origin()); + /* */ if (src >= 0) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (src >= 0) { */ case 16: + $r = flow[0](src, typ$6); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 17: + targs = typ$6.TypeArgs(); + i = 0; + /* while (true) { */ case 19: + /* if (!(i < targs.Len())) { break; } */ if(!(i < targs.Len())) { $s = 20; continue; } + $r = do$1[0](targs.At(i)); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i + (1) >> 0; + $s = 19; continue; + case 20: + $s = 13; continue; + /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 3: + typ$7 = _ref.$val; + $r = do$1[0](typ$7.Elem()); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 13; continue; + /* } else if ($assertType(_ref, ptrType$4, true)[1]) { */ case 4: + typ$8 = _ref.$val; + $s = 13; continue; + /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 5: + typ$9 = _ref.$val; + $r = do$1[0](typ$9.Elem()); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 13; continue; + /* } else if ($assertType(_ref, ptrType$30, true)[1]) { */ case 6: + typ$10 = _ref.$val; + $r = do$1[0](typ$10.Key()); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = do$1[0](typ$10.Elem()); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 13; continue; + /* } else if ($assertType(_ref, ptrType$28, true)[1]) { */ case 7: + typ$11 = _ref.$val; + $r = do$1[0](typ$11.Elem()); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 13; continue; + /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 8: + typ$12 = _ref.$val; + $r = do$1[0](typ$12.Elem()); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 13; continue; + /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 9: + typ$13 = _ref.$val; + i$1 = 0; + /* while (true) { */ case 28: + _r = typ$13.NumMethods(); /* */ $s = 30; case 30: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* if (!(i$1 < _r)) { break; } */ if(!(i$1 < _r)) { $s = 29; continue; } + _r$1 = typ$13.Method(i$1); /* */ $s = 31; case 31: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = _r$1.object.Type(); /* */ $s = 32; case 32: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $r = do$1[0](_r$2); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i$1 = i$1 + (1) >> 0; + $s = 28; continue; + case 29: + $s = 13; continue; + /* } else if ($assertType(_ref, ptrType$29, true)[1]) { */ case 10: + typ$14 = _ref.$val; + tuple$2 = (function(do$1, flow, pkg, pos, targ, tpar, w) { return function monoGraph·assign·func2·func1(tup) { + var {i$2, tup, $s, $r, $c} = $restore(this, {tup}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + i$2 = 0; + /* while (true) { */ case 1: + /* if (!(i$2 < tup.Len())) { break; } */ if(!(i$2 < tup.Len())) { $s = 2; continue; } + $r = do$1[0](tup.At(i$2).object.Type()); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i$2 = i$2 + (1) >> 0; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: monoGraph·assign·func2·func1, $c: true, $r, i$2, tup, $s};return $f; + }; })(do$1, flow, pkg, pos, targ, tpar, w); + $r = tuple$2(typ$14.Params()); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = tuple$2(typ$14.Results()); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 13; continue; + /* } else if ($assertType(_ref, ptrType$12, true)[1]) { */ case 11: + typ$15 = _ref.$val; + i$2 = 0; + /* while (true) { */ case 36: + /* if (!(i$2 < typ$15.NumFields())) { break; } */ if(!(i$2 < typ$15.NumFields())) { $s = 37; continue; } + $r = do$1[0](typ$15.Field(i$2).object.Type()); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i$2 = i$2 + (1) >> 0; + $s = 36; continue; + case 37: + $s = 13; continue; + /* } else { */ case 12: + typ$4 = _ref; + $panic(new $String("unexpected type")); + /* } */ case 13: + $s = -1; return; + /* */ } return; } var $f = {$blk: monoGraph·assign·func2, $c: true, $r, _r, _r$1, _r$2, _ref, i, i$1, i$2, src, targs, tuple$2, typ$10, typ$11, typ$12, typ$13, typ$14, typ$15, typ$3, typ$4, typ$5, typ$6, typ$7, typ$8, typ$9, $s};return $f; + }; })(do$1, flow, pkg, pos, targ, tpar, w); + $r = do$1[0](targ[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: assign, $c: true, $r, do$1, flow, pkg, pos, targ, tpar, w, $s};return $f; }; - $ptrType(substMap).prototype.empty = function(...$args) { return new substMap(this.$get()).empty(...$args); }; - substMap.prototype.lookup = function lookup(tpar) { - var _entry, m, t, tpar; - m = this.$val; - t = (_entry = $mapIndex(m,ptrType$14.keyFor(tpar)), _entry !== undefined ? _entry.v : $ifaceNil); - if (!($interfaceIsEqual(t, $ifaceNil))) { - return t; + $ptrType(monoGraph).prototype.localNamedVertex = function localNamedVertex(pkg, named) { + var _entry, _entry$1, _i, _key, _key$1, _keys, _ref, _size, _tuple, _tuple$1, _tuple$2, elem, elem$1, idx, idx$1, named, obj, ok, ok$1, ok$2, pkg, root, scope, tpar, w; + w = this; + obj = named.Obj(); + if (!(obj.object.Pkg() === pkg)) { + return -1; } - return tpar; - }; - $ptrType(substMap).prototype.lookup = function(...$args) { return new substMap(this.$get()).lookup(...$args); }; - $ptrType(Checker).prototype.subst = function subst(pos, typ$2, smap, expanding, ctxt) { - var {$24r, _r$1, _ref, check, ctxt, expanding, pos, smap, subst$1, t, t$1, typ$2, $s, $r, $c} = $restore(this, {pos, typ$2, smap, expanding, ctxt}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - $r = assert(!(expanding === ptrType$9.nil) || !(ctxt === ptrType$51.nil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (new substMap(smap).empty()) { - $s = -1; return typ$2; + root = pkg.Scope(); + if (obj.object.Parent() === root) { + return -1; } - _ref = typ$2; - if ($assertType(_ref, ptrType$8, true)[1]) { - t = _ref.$val; - $s = -1; return typ$2; - } else if ($assertType(_ref, ptrType$14, true)[1]) { - t$1 = _ref.$val; - $s = -1; return new substMap(smap).lookup(t$1); + _tuple = (_entry = $mapIndex(w.nameIdx,ptrType$18.keyFor(obj)), _entry !== undefined ? [_entry.v, true] : [0, false]); + idx = _tuple[0]; + ok = _tuple[1]; + if (ok) { + return idx; } - subst$1 = new subster.ptr(pos, smap, check, expanding, ctxt); - _r$1 = subst$1.typ(typ$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: subst, $c: true, $r, $24r, _r$1, _ref, check, ctxt, expanding, pos, smap, subst$1, t, t$1, typ$2, $s};return $f; - }; - $ptrType(subster).prototype.typ = function typ$2(typ$3) { - var {$24r, $24r$1, _i, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, base, copied, copied$1, dump, ecopied, elem, elem$1, elem$2, elem$3, embeddeds, fields, i, iface$1, key, mcopied, methods, n, newTArgs, new_targ, orig, params, recv, results, s, subst$1, t, t$1, t$10, t$11, t$12, t$13, t$14, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, targ, terms, typ$3, $s, $deferred, $r, $c} = $restore(this, {typ$3}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - subst$1 = [subst$1]; - subst$1[0] = this; - _ref = typ$3; - /* */ if (_ref === $ifaceNil) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$8, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType$15, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref, ptrType$12, true)[1]) { $s = 9; continue; } - /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 10; continue; } - /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 11; continue; } - /* */ if ($assertType(_ref, ptrType$29, true)[1]) { $s = 12; continue; } - /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 13; continue; } - /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (_ref === $ifaceNil) { */ case 1: - t = _ref; - $panic(new $String("nil typ")); - $s = 16; continue; - /* } else if ($assertType(_ref, ptrType$8, true)[1]) { */ case 2: - t$1 = _ref.$val; - $s = 16; continue; - /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 3: - t$2 = _ref.$val; - _r$1 = subst$1[0].typOrNil(t$2.elem); /* */ $s = 17; case 17: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - elem = _r$1; - if (!($interfaceIsEqual(elem, t$2.elem))) { - $s = -1; return new Array.ptr(t$2.len, elem); - } - $s = 16; continue; - /* } else if ($assertType(_ref, ptrType$25, true)[1]) { */ case 4: - t$3 = _ref.$val; - _r$2 = subst$1[0].typOrNil(t$3.elem); /* */ $s = 18; case 18: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - elem$1 = _r$2; - if (!($interfaceIsEqual(elem$1, t$3.elem))) { - $s = -1; return new Slice.ptr(elem$1); - } - $s = 16; continue; - /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 5: - t$4 = _ref.$val; - _r$3 = subst$1[0].varList(t$4.fields); /* */ $s = 19; case 19: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple = _r$3; - fields = _tuple[0]; - copied = _tuple[1]; - if (copied) { - s = new Struct.ptr(fields, t$4.tags); - s.markComplete(); - $s = -1; return s; - } - $s = 16; continue; - /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 6: - t$5 = _ref.$val; - _r$4 = subst$1[0].typ(t$5.base); /* */ $s = 20; case 20: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - base = _r$4; - if (!($interfaceIsEqual(base, t$5.base))) { - $s = -1; return new Pointer.ptr(base); - } - $s = 16; continue; - /* } else if ($assertType(_ref, ptrType$15, true)[1]) { */ case 7: - t$6 = _ref.$val; - _r$5 = subst$1[0].tuple(t$6); /* */ $s = 21; case 21: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - $24r = _r$5; - $s = 22; case 22: return $24r; - /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 8: - t$7 = _ref.$val; - recv = t$7.recv; - _r$6 = subst$1[0].tuple(t$7.params); /* */ $s = 23; case 23: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - params = _r$6; - _r$7 = subst$1[0].tuple(t$7.results); /* */ $s = 24; case 24: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - results = _r$7; - if (!(params === t$7.params) || !(results === t$7.results)) { - $s = -1; return new Signature.ptr(t$7.rparams, t$7.tparams, ptrType.nil, recv, params, results, t$7.variadic); - } - $s = 16; continue; - /* } else if ($assertType(_ref, ptrType$12, true)[1]) { */ case 9: - t$8 = _ref.$val; - _r$8 = subst$1[0].termlist(t$8.terms); /* */ $s = 25; case 25: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _tuple$1 = _r$8; - terms = _tuple$1[0]; - copied$1 = _tuple$1[1]; - if (copied$1) { - $s = -1; return new Union.ptr(terms); - } - $s = 16; continue; - /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 10: - t$9 = _ref.$val; - _r$9 = subst$1[0].funcList(t$9.methods); /* */ $s = 26; case 26: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _tuple$2 = _r$9; - methods = _tuple$2[0]; - mcopied = _tuple$2[1]; - _r$10 = subst$1[0].typeList(t$9.embeddeds); /* */ $s = 27; case 27: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _tuple$3 = _r$10; - embeddeds = _tuple$3[0]; - ecopied = _tuple$3[1]; - if (mcopied || ecopied) { - iface$1 = subst$1[0].check.newInterface(); - iface$1.embeddeds = embeddeds; - iface$1.implicit = t$9.implicit; - iface$1.complete = t$9.complete; - _tuple$4 = replaceRecvType(methods, t$9, iface$1); - iface$1.methods = _tuple$4[0]; - $s = -1; return iface$1; - } - $s = 16; continue; - /* } else if ($assertType(_ref, ptrType$28, true)[1]) { */ case 11: - t$10 = _ref.$val; - _r$11 = subst$1[0].typ(t$10.key); /* */ $s = 28; case 28: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - key = _r$11; - _r$12 = subst$1[0].typ(t$10.elem); /* */ $s = 29; case 29: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - elem$2 = _r$12; - if (!($interfaceIsEqual(key, t$10.key)) || !($interfaceIsEqual(elem$2, t$10.elem))) { - $s = -1; return new Map.ptr(key, elem$2); - } - $s = 16; continue; - /* } else if ($assertType(_ref, ptrType$29, true)[1]) { */ case 12: - t$11 = _ref.$val; - _r$13 = subst$1[0].typ(t$11.elem); /* */ $s = 30; case 30: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - elem$3 = _r$13; - if (!($interfaceIsEqual(elem$3, t$11.elem))) { - $s = -1; return new Chan.ptr(t$11.dir, elem$3); - } - $s = 16; continue; - /* } else if ($assertType(_ref, ptrType$9, true)[1]) { */ case 13: - t$12 = _ref.$val; - dump = (function(subst$1) { return function subster·typ·func1(param, param$1) { - var param, param$1; - }; })(subst$1); - /* */ if (!(subst$1[0].check === ptrType$5.nil) && false) { $s = 31; continue; } - /* */ $s = 32; continue; - /* if (!(subst$1[0].check === ptrType$5.nil) && false) { */ case 31: - subst$1[0].check.indent = subst$1[0].check.indent + (1) >> 0; - $deferred.push([(function(subst$1) { return function subster·typ·func2() { - subst$1[0].check.indent = subst$1[0].check.indent - (1) >> 0; - }; })(subst$1), []]); - dump = (function(subst$1) { return function subster·typ·func3(format, args) { - var {args, format, $s, $r, $c} = $restore(this, {format, args}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = subst$1[0].check.trace(subst$1[0].pos, format, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: subster·typ·func3, $c: true, $r, args, format, $s};return $f; - }; })(subst$1); - /* } */ case 32: - orig = t$12.Origin(); - _r$14 = orig.TypeParams(); /* */ $s = 33; case 33: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - _r$15 = _r$14.Len(); /* */ $s = 34; case 34: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - n = _r$15; - /* */ if (n === 0) { $s = 35; continue; } - /* */ $s = 36; continue; - /* if (n === 0) { */ case 35: - $r = dump(">>> %s is not parameterized", new sliceType$6([t$12])); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return t$12; - /* } */ case 36: - newTArgs = sliceType$2.nil; - if (!((t$12.TypeArgs().Len() === n))) { - $s = -1; return (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - } - $r = dump(">>> %s already instantiated", new sliceType$6([t$12])); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _ref$1 = t$12.TypeArgs().list(); + idx$1 = -1; + scope = obj.object.Parent(); + while (true) { + if (!(!(scope === root))) { break; } + _ref = scope.elems; _i = 0; - /* while (true) { */ case 39: - /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 40; continue; } - i = _i; - targ = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); - $r = dump(">>> %d targ = %s", new sliceType$6([new $Int(i), targ])); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$16 = subst$1[0].typ(targ); /* */ $s = 42; case 42: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - new_targ = _r$16; - /* */ if (!($interfaceIsEqual(new_targ, targ))) { $s = 43; continue; } - /* */ $s = 44; continue; - /* if (!($interfaceIsEqual(new_targ, targ))) { */ case 43: - $r = dump(">>> substituted %d targ %s => %s", new sliceType$6([new $Int(i), targ, new_targ])); /* */ $s = 45; case 45: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (newTArgs === sliceType$2.nil) { - newTArgs = $makeSlice(sliceType$2, n); - $copySlice(newTArgs, t$12.TypeArgs().list()); + _keys = _ref ? _ref.keys() : undefined; + _size = _ref ? _ref.size : 0; + while (true) { + if (!(_i < _size)) { break; } + _key = _keys.next().value; + _entry$1 = _ref.get(_key); + if (_entry$1 === undefined) { + _i++; + continue; + } + elem = _entry$1.v; + _tuple$1 = $assertType(elem, ptrType$18, true); + elem$1 = _tuple$1[0]; + ok$1 = _tuple$1[1]; + if (ok$1 && !elem$1.IsAlias() && cmpPos(elem$1.object.Pos(), obj.object.Pos()) < 0) { + _tuple$2 = $assertType(elem$1.object.Type(), ptrType$15, true); + tpar = _tuple$2[0]; + ok$2 = _tuple$2[1]; + if (ok$2) { + if (idx$1 < 0) { + idx$1 = w.vertices.$length; + w.vertices = $append(w.vertices, new monoVertex.ptr(0, 0, 0, obj)); + } + w.addEdge(idx$1, w.typeParamVertex(tpar), 1, obj.object.Pos(), tpar); } - ((i < 0 || i >= newTArgs.$length) ? ($throwRuntimeError("index out of range"), undefined) : newTArgs.$array[newTArgs.$offset + i] = new_targ); - /* } */ case 44: + } _i++; - $s = 39; continue; - case 40: - /* */ if (newTArgs === sliceType$2.nil) { $s = 46; continue; } - /* */ $s = 47; continue; - /* if (newTArgs === sliceType$2.nil) { */ case 46: - $r = dump(">>> nothing to substitute in %s", new sliceType$6([t$12])); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return t$12; - /* } */ case 47: - _r$17 = subst$1[0].check.instance(subst$1[0].pos, orig, newTArgs, subst$1[0].expanding, subst$1[0].ctxt); /* */ $s = 49; case 49: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - $24r$1 = _r$17; - $s = 50; case 50: return $24r$1; - /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 14: - t$13 = _ref.$val; - $s = -1; return new substMap(subst$1[0].smap).lookup(t$13); - /* } else { */ case 15: - t$14 = _ref; - unreachable(); - /* } */ case 16: - $s = -1; return typ$3; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: typ$2, $c: true, $r, $24r, $24r$1, _i, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, base, copied, copied$1, dump, ecopied, elem, elem$1, elem$2, elem$3, embeddeds, fields, i, iface$1, key, mcopied, methods, n, newTArgs, new_targ, orig, params, recv, results, s, subst$1, t, t$1, t$10, t$11, t$12, t$13, t$14, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, targ, terms, typ$3, $s, $deferred};return $f; } } - }; - $ptrType(subster).prototype.typOrNil = function typOrNil(typ$3) { - var {$24r, _r$1, subst$1, typ$3, $s, $r, $c} = $restore(this, {typ$3}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - subst$1 = this; - if ($interfaceIsEqual(typ$3, $ifaceNil)) { - $s = -1; return (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - } - _r$1 = subst$1.typ(typ$3); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: typOrNil, $c: true, $r, $24r, _r$1, subst$1, typ$3, $s};return $f; - }; - $ptrType(subster).prototype.var_ = function var_(v) { - var {_r$1, subst$1, typ$3, v, $s, $r, $c} = $restore(this, {v}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - subst$1 = this; - /* */ if (!(v === ptrType$16.nil)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(v === ptrType$16.nil)) { */ case 1: - _r$1 = subst$1.typ(v.object.typ); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - typ$3 = _r$1; - if (!($interfaceIsEqual(typ$3, v.object.typ))) { - $s = -1; return substVar(v, typ$3); } - /* } */ case 2: - $s = -1; return v; - /* */ } return; } var $f = {$blk: var_, $c: true, $r, _r$1, subst$1, typ$3, v, $s};return $f; - }; - substVar = function substVar$1(v, typ$3) { - var copy, typ$3, v; - copy = $clone(v, Var); - copy.object.typ = typ$3; - copy.origin = v.Origin(); - return copy; + scope = scope.Parent(); + } + if (w.nameIdx === false) { + w.nameIdx = new $global.Map(); + } + _key$1 = obj; (w.nameIdx || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$18.keyFor(_key$1), { k: _key$1, v: idx$1 }); + return idx$1; }; - $ptrType(subster).prototype.tuple = function tuple$1(t) { - var {_r$1, _tuple, copied, subst$1, t, vars, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - subst$1 = this; - /* */ if (!(t === ptrType$15.nil)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(t === ptrType$15.nil)) { */ case 1: - _r$1 = subst$1.varList(t.vars); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - vars = _tuple[0]; - copied = _tuple[1]; - if (copied) { - $s = -1; return new Tuple.ptr(vars); - } - /* } */ case 2: - $s = -1; return t; - /* */ } return; } var $f = {$blk: tuple$1, $c: true, $r, _r$1, _tuple, copied, subst$1, t, vars, $s};return $f; + $ptrType(monoGraph).prototype.typeParamVertex = function typeParamVertex(tpar) { + var _entry, _entry$1, _key, _tuple, _tuple$1, idx, idx$1, obj, ok, ok$1, tpar, w, x; + w = this; + _tuple = (_entry = $mapIndex(w.canon,ptrType$15.keyFor(tpar)), _entry !== undefined ? [_entry.v, true] : [ptrType$15.nil, false]); + x = _tuple[0]; + ok = _tuple[1]; + if (ok) { + tpar = x; + } + obj = tpar.Obj(); + _tuple$1 = (_entry$1 = $mapIndex(w.nameIdx,ptrType$18.keyFor(obj)), _entry$1 !== undefined ? [_entry$1.v, true] : [0, false]); + idx = _tuple$1[0]; + ok$1 = _tuple$1[1]; + if (ok$1) { + return idx; + } + if (w.nameIdx === false) { + w.nameIdx = new $global.Map(); + } + idx$1 = w.vertices.$length; + w.vertices = $append(w.vertices, new monoVertex.ptr(0, 0, 0, obj)); + _key = obj; (w.nameIdx || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$18.keyFor(_key), { k: _key, v: idx$1 }); + return idx$1; }; - $ptrType(subster).prototype.varList = function varList(in$1) { - var {_i, _r$1, _ref, copied, i, in$1, new$1, out, subst$1, v, w, $s, $r, $c} = $restore(this, {in$1}); + $ptrType(monoGraph).prototype.addEdge = function addEdge(dst, src, weight, pos, typ$3) { + var dst, pos, src, typ$3, w, weight; + w = this; + w.edges = $append(w.edges, new monoEdge.ptr(dst, src, weight, pos, typ$3)); + }; + $ptrType(MethodSet).prototype.String = function String$30() { + var {_i, _r, _r$1, _r$2, _ref, buf, f, s, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - out = sliceType$10.nil; - copied = false; - subst$1 = this; - out = in$1; - _ref = in$1; + buf = [buf]; + s = this; + if (s.Len() === 0) { + $s = -1; return "MethodSet {}"; + } + buf[0] = new strings.Builder.ptr(ptrType$54.nil, sliceType$12.nil); + _r = fmt.Fprintln(buf[0], new sliceType$5([new $String("MethodSet {")])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + _ref = s.list; _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$1 = subst$1.var_(v); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - w = _r$1; - if (!(w === v)) { - if (!copied) { - new$1 = $makeSlice(sliceType$10, in$1.$length); - $copySlice(new$1, out); - out = new$1; - copied = true; - } - ((i < 0 || i >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + i] = w); - } + /* while (true) { */ case 2: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } + f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r$1 = fmt.Fprintf(buf[0], "\t%s\n", new sliceType$5([f])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; _i++; - $s = 1; continue; - case 2: - $s = -1; return [out, copied]; - /* */ } return; } var $f = {$blk: varList, $c: true, $r, _i, _r$1, _ref, copied, i, in$1, new$1, out, subst$1, v, w, $s};return $f; + $s = 2; continue; + case 3: + _r$2 = fmt.Fprintln(buf[0], new sliceType$5([new $String("}")])); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + $s = -1; return buf[0].String(); + /* */ } return; } var $f = {$blk: String$30, $c: true, $r, _i, _r, _r$1, _r$2, _ref, buf, f, s, $s};return $f; }; - $ptrType(subster).prototype.func_ = function func_(f) { - var {_r$1, f, subst$1, typ$3, $s, $r, $c} = $restore(this, {f}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - subst$1 = this; - /* */ if (!(f === ptrType$2.nil)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(f === ptrType$2.nil)) { */ case 1: - _r$1 = subst$1.typ(f.object.typ); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - typ$3 = _r$1; - if (!($interfaceIsEqual(typ$3, f.object.typ))) { - $s = -1; return substFunc(f, typ$3); - } - /* } */ case 2: - $s = -1; return f; - /* */ } return; } var $f = {$blk: func_, $c: true, $r, _r$1, f, subst$1, typ$3, $s};return $f; + $ptrType(MethodSet).prototype.Len = function Len$8() { + var s; + s = this; + return s.list.$length; }; - substFunc = function substFunc$1(f, typ$3) { - var copy, f, typ$3; - copy = $clone(f, Func); - copy.object.typ = typ$3; - copy.origin = f.Origin(); - return copy; + $ptrType(MethodSet).prototype.At = function At$3(i) { + var i, s, x; + s = this; + return (x = s.list, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); }; - $ptrType(subster).prototype.funcList = function funcList(in$1) { - var {_i, _r$1, _ref, copied, f, g, i, in$1, new$1, out, subst$1, $s, $r, $c} = $restore(this, {in$1}); + $ptrType(MethodSet).prototype.Lookup = function Lookup$1(pkg, name) { + var {_r, _r$1, i, key, m, name, pkg, s, x, $s, $r, $c} = $restore(this, {pkg, name}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - out = sliceType.nil; - copied = false; - subst$1 = this; - out = in$1; - _ref = in$1; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$1 = subst$1.func_(f); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - g = _r$1; - if (!(g === f)) { - if (!copied) { - new$1 = $makeSlice(sliceType, in$1.$length); - $copySlice(new$1, out); - out = new$1; - copied = true; - } - ((i < 0 || i >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + i] = g); - } - _i++; - $s = 1; continue; - case 2: - $s = -1; return [out, copied]; - /* */ } return; } var $f = {$blk: funcList, $c: true, $r, _i, _r$1, _ref, copied, f, g, i, in$1, new$1, out, subst$1, $s};return $f; + key = [key]; + s = [s]; + s[0] = this; + if (s[0].Len() === 0) { + $s = -1; return ptrType$3.nil; + } + key[0] = Id(pkg, name); + _r = sort.Search(s[0].list.$length, (function(key, s) { return function MethodSet·Lookup·func1(i) { + var {$24r, _r, i, m, x, $s, $r, $c} = $restore(this, {i}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + m = (x = s[0].list, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + _r = m.obj.Id(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r >= key[0]; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: MethodSet·Lookup·func1, $c: true, $r, $24r, _r, i, m, x, $s};return $f; + }; })(key, s)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + i = _r; + /* */ if (i < s[0].list.$length) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (i < s[0].list.$length) { */ case 2: + m = (x = s[0].list, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + _r$1 = m.obj.Id(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1 === key[0]) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_r$1 === key[0]) { */ case 4: + $s = -1; return m; + /* } */ case 5: + /* } */ case 3: + $s = -1; return ptrType$3.nil; + /* */ } return; } var $f = {$blk: Lookup$1, $c: true, $r, _r, _r$1, i, key, m, name, pkg, s, x, $s};return $f; }; - $ptrType(subster).prototype.typeList = function typeList$2(in$1) { - var {_i, _r$1, _ref, copied, i, in$1, new$1, out, subst$1, t, u, $s, $r, $c} = $restore(this, {in$1}); + NewMethodSet = function NewMethodSet$1(T) { + var {T, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _i, _i$1, _i$2, _i$3, _i$4, _key, _key$1, _key$2, _key$3, _key$4, _key$5, _keys, _keys$1, _keys$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _size, _size$1, _size$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _v, _v$1, alt, base, current, e, f, found, found$1, fset, i, i$1, isPtr, isPtr$1, k, k$1, list$2, m, m$1, mset, named, next, seen, t, t$1, t$2, typ$3, typ$4, typ$5, $s, $r, $c} = $restore(this, {T}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - out = sliceType$2.nil; - copied = false; - subst$1 = this; - out = in$1; - _ref = in$1; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$1 = subst$1.typ(t); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - u = _r$1; - if (!($interfaceIsEqual(u, t))) { - if (!copied) { - new$1 = $makeSlice(sliceType$2, in$1.$length); - $copySlice(new$1, out); - out = new$1; - copied = true; + list$2 = [list$2]; + _tuple = $assertType(T, ptrType$10, true); + t = _tuple[0]; + if (!(!(t === ptrType$10.nil))) { _v = false; $s = 3; continue s; } + _r = isPointer(t); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r; case 3: + /* */ if (_v) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_v) { */ case 1: + $s = -1; return emptyMethodSet; + /* } */ case 2: + base = false; + _tuple$1 = deref(T); + typ$3 = _tuple$1[0]; + isPtr = _tuple$1[1]; + if (!(isPtr)) { _v$1 = false; $s = 7; continue s; } + _r$1 = IsInterface(typ$3); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v$1 = _r$1; case 7: + /* */ if (_v$1) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_v$1) { */ case 5: + $s = -1; return emptyMethodSet; + /* } */ case 6: + current = new sliceType$25([$clone(new embeddedType.ptr(typ$3, sliceType$24.nil, isPtr, false), embeddedType)]); + seen = new instanceLookup.ptr(arrayType$1.zero(), false); + /* while (true) { */ case 9: + /* if (!(current.$length > 0)) { break; } */ if(!(current.$length > 0)) { $s = 10; continue; } + next = sliceType$25.nil; + fset = false; + mset = false; + _ref = current; + _i = 0; + /* while (true) { */ case 11: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 12; continue; } + e = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), embeddedType); + typ$4 = e.typ; + _tuple$2 = $assertType(typ$4, ptrType$10, true); + named = _tuple$2[0]; + /* */ if (!(named === ptrType$10.nil)) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (!(named === ptrType$10.nil)) { */ case 13: + _r$2 = seen.lookup(named); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + alt = _r$2; + if (!(alt === ptrType$10.nil)) { + _i++; + /* continue; */ $s = 11; continue; + } + seen.add(named); + i = 0; + /* while (true) { */ case 16: + _r$3 = named.NumMethods(); /* */ $s = 18; case 18: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* if (!(i < _r$3)) { break; } */ if(!(i < _r$3)) { $s = 17; continue; } + _r$4 = named.Method(i); /* */ $s = 19; case 19: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$5 = new methodSet(mset).addOne(_r$4, concat(e.index, i), e.indirect, e.multiples); /* */ $s = 20; case 20: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + mset = _r$5; + i = i + (1) >> 0; + $s = 16; continue; + case 17: + /* } */ case 14: + _r$6 = under(typ$4); /* */ $s = 21; case 21: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _ref$1 = _r$6; + /* */ if ($assertType(_ref$1, ptrType$12, true)[1]) { $s = 22; continue; } + /* */ if ($assertType(_ref$1, ptrType$14, true)[1]) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if ($assertType(_ref$1, ptrType$12, true)[1]) { */ case 22: + t$1 = _ref$1.$val; + _ref$2 = t$1.fields; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$2.$length)) { break; } + i$1 = _i$1; + f = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); + if (fset === false) { + fset = new $global.Map(); + } + _key = f.object.Id(); (fset || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: true }); + if (f.embedded) { + _tuple$3 = deref(f.object.typ); + typ$5 = _tuple$3[0]; + isPtr$1 = _tuple$3[1]; + next = $append(next, new embeddedType.ptr(typ$5, concat(e.index, i$1), e.indirect || isPtr$1, e.multiples)); + } + _i$1++; + } + $s = 24; continue; + /* } else if ($assertType(_ref$1, ptrType$14, true)[1]) { */ case 23: + t$2 = _ref$1.$val; + _r$7 = t$2.typeSet(); /* */ $s = 25; case 25: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$8 = new methodSet(mset).add(_r$7.methods, e.index, true, e.multiples); /* */ $s = 26; case 26: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + mset = _r$8; + /* } */ case 24: + _i++; + $s = 11; continue; + case 12: + _ref$3 = mset; + _i$2 = 0; + _keys = _ref$3 ? _ref$3.keys() : undefined; + _size = _ref$3 ? _ref$3.size : 0; + while (true) { + if (!(_i$2 < _size)) { break; } + _key$1 = _keys.next().value; + _entry = _ref$3.get(_key$1); + if (_entry === undefined) { + _i$2++; + continue; } - ((i < 0 || i >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + i] = u); + k = _entry.k; + m = _entry.v; + _tuple$4 = (_entry$1 = $mapIndex(base,$String.keyFor(k)), _entry$1 !== undefined ? [_entry$1.v, true] : [ptrType$3.nil, false]); + found = _tuple$4[1]; + if (!found) { + if ((_entry$2 = $mapIndex(fset,$String.keyFor(k)), _entry$2 !== undefined ? _entry$2.v : false)) { + m = ptrType$3.nil; + } + if (base === false) { + base = new $global.Map(); + } + _key$2 = k; (base || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$2), { k: _key$2, v: m }); + } + _i$2++; } - _i++; - $s = 1; continue; - case 2: - $s = -1; return [out, copied]; - /* */ } return; } var $f = {$blk: typeList$2, $c: true, $r, _i, _r$1, _ref, copied, i, in$1, new$1, out, subst$1, t, u, $s};return $f; - }; - $ptrType(subster).prototype.termlist = function termlist$1(in$1) { - var {_i, _r$1, _ref, copied, i, in$1, new$1, out, subst$1, t, u, $s, $r, $c} = $restore(this, {in$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - out = sliceType$12.nil; - copied = false; - subst$1 = this; - out = in$1; - _ref = in$1; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$1 = subst$1.typ(t.typ); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - u = _r$1; - if (!($interfaceIsEqual(u, t.typ))) { - if (!copied) { - new$1 = $makeSlice(sliceType$12, in$1.$length); - $copySlice(new$1, out); - out = new$1; - copied = true; + _ref$4 = fset; + _i$3 = 0; + _keys$1 = _ref$4 ? _ref$4.keys() : undefined; + _size$1 = _ref$4 ? _ref$4.size : 0; + while (true) { + if (!(_i$3 < _size$1)) { break; } + _key$3 = _keys$1.next().value; + _entry$3 = _ref$4.get(_key$3); + if (_entry$3 === undefined) { + _i$3++; + continue; } - ((i < 0 || i >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + i] = NewTerm(t.tilde, u)); + k$1 = _entry$3.k; + _tuple$5 = (_entry$4 = $mapIndex(base,$String.keyFor(k$1)), _entry$4 !== undefined ? [_entry$4.v, true] : [ptrType$3.nil, false]); + found$1 = _tuple$5[1]; + if (!found$1) { + if (base === false) { + base = new $global.Map(); + } + _key$4 = k$1; (base || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$4), { k: _key$4, v: ptrType$3.nil }); + } + _i$3++; } - _i++; - $s = 1; continue; - case 2: - $s = -1; return [out, copied]; - /* */ } return; } var $f = {$blk: termlist$1, $c: true, $r, _i, _r$1, _ref, copied, i, in$1, new$1, out, subst$1, t, u, $s};return $f; + _r$9 = consolidateMultiples(next); /* */ $s = 27; case 27: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + current = _r$9; + $s = 9; continue; + case 10: + if ((base ? base.size : 0) === 0) { + $s = -1; return emptyMethodSet; + } + list$2[0] = sliceType$1.nil; + _ref$5 = base; + _i$4 = 0; + _keys$2 = _ref$5 ? _ref$5.keys() : undefined; + _size$2 = _ref$5 ? _ref$5.size : 0; + while (true) { + if (!(_i$4 < _size$2)) { break; } + _key$5 = _keys$2.next().value; + _entry$5 = _ref$5.get(_key$5); + if (_entry$5 === undefined) { + _i$4++; + continue; + } + m$1 = _entry$5.v; + if (!(m$1 === ptrType$3.nil)) { + m$1.recv = T; + list$2[0] = $append(list$2[0], m$1); + } + _i$4++; + } + $r = sort.Slice(list$2[0], (function(list$2) { return function NewMethodSet·func1(i$2, j) { + var {$24r, _r$10, _r$11, i$2, j, $s, $r, $c} = $restore(this, {i$2, j}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$10 = ((i$2 < 0 || i$2 >= list$2[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : list$2[0].$array[list$2[0].$offset + i$2]).obj.Id(); /* */ $s = 1; case 1: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$11 = ((j < 0 || j >= list$2[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : list$2[0].$array[list$2[0].$offset + j]).obj.Id(); /* */ $s = 2; case 2: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + $24r = _r$10 < _r$11; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: NewMethodSet·func1, $c: true, $r, $24r, _r$10, _r$11, i$2, j, $s};return $f; + }; })(list$2)); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return new MethodSet.ptr(list$2[0]); + /* */ } return; } var $f = {$blk: NewMethodSet$1, $c: true, $r, T, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _i, _i$1, _i$2, _i$3, _i$4, _key, _key$1, _key$2, _key$3, _key$4, _key$5, _keys, _keys$1, _keys$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _size, _size$1, _size$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _v, _v$1, alt, base, current, e, f, found, found$1, fset, i, i$1, isPtr, isPtr$1, k, k$1, list$2, m, m$1, mset, named, next, seen, t, t$1, t$2, typ$3, typ$4, typ$5, $s};return $f; }; - replaceRecvType = function replaceRecvType$1(in$1, old, new$1) { - var _i, _ref, copied, i, in$1, method, new$1, newsig, old, out, sig; - out = sliceType.nil; - copied = false; - out = in$1; - _ref = in$1; + $pkg.NewMethodSet = NewMethodSet; + methodSet.prototype.add = function add(list$2, index, indirect, multiples) { + var _i, _ref, f, i, index, indirect, list$2, multiples, s; + s = this.$val; + if (list$2.$length === 0) { + return s; + } + _ref = list$2; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } - newsig = [newsig]; i = _i; - method = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - sig = $assertType(method.object.Type(), ptrType$27); - if (!(sig.recv === ptrType$16.nil) && $interfaceIsEqual(sig.recv.object.Type(), old)) { - if (!copied) { - out = $makeSlice(sliceType, in$1.$length); - $copySlice(out, in$1); - copied = true; - } - newsig[0] = $clone(sig, Signature); - newsig[0].recv = substVar(sig.recv, new$1); - ((i < 0 || i >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + i] = substFunc(method, newsig[0])); - } + f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + s = new methodSet(s).addOne(f, concat(index, i), indirect, multiples); _i++; } - return [out, copied]; + return s; }; - NewStruct = function NewStruct$1(fields, tags) { - var {_i, _r$1, _ref, _v, f, fields, fset, fset$24ptr, s, tags, $s, $r, $c} = $restore(this, {fields, tags}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - fset = false; - _ref = fields; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (!(!(f.object.name === "_"))) { _v = false; $s = 5; continue s; } - _r$1 = (fset$24ptr || (fset$24ptr = new ptrType$54(function() { return fset; }, function($v) { fset = $v; }))).insert(f); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = !($interfaceIsEqual(_r$1, $ifaceNil)); case 5: - /* */ if (_v) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (_v) { */ case 3: - $panic(new $String("multiple fields with the same name")); - /* } */ case 4: - _i++; - $s = 1; continue; - case 2: - if (tags.$length > fields.$length) { - $panic(new $String("more tags than fields")); + $ptrType(methodSet).prototype.add = function(...$args) { return new methodSet(this.$get()).add(...$args); }; + methodSet.prototype.addOne = function addOne(f, index, indirect, multiples) { + var _entry, _key, _key$1, _tuple, f, found, index, indirect, key, multiples, s; + s = this.$val; + if (s === false) { + s = new $global.Map(); } - s = new Struct.ptr(fields, tags); - s.markComplete(); - $s = -1; return s; - /* */ } return; } var $f = {$blk: NewStruct$1, $c: true, $r, _i, _r$1, _ref, _v, f, fields, fset, fset$24ptr, s, tags, $s};return $f; + key = f.object.Id(); + if (!multiples) { + _tuple = (_entry = $mapIndex(s,$String.keyFor(key)), _entry !== undefined ? [_entry.v, true] : [ptrType$3.nil, false]); + found = _tuple[1]; + if (!found && (indirect || !f.hasPtrRecv())) { + _key = key; (s || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: new Selection.ptr(1, $ifaceNil, f, index, indirect) }); + return s; + } + } + _key$1 = key; (s || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$1), { k: _key$1, v: ptrType$3.nil }); + return s; }; - $pkg.NewStruct = NewStruct; - $ptrType(Struct).prototype.NumFields = function NumFields() { - var s; - s = this; - return s.fields.$length; + $ptrType(methodSet).prototype.addOne = function(...$args) { return new methodSet(this.$get()).addOne(...$args); }; + NewMap = function NewMap$1(key, elem) { + var elem, key; + return new Map.ptr(key, elem); }; - $ptrType(Struct).prototype.Field = function Field(i) { - var i, s, x; - s = this; - return (x = s.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + $pkg.NewMap = NewMap; + $ptrType(Map).prototype.Key = function Key() { + var m; + m = this; + return m.key; }; - $ptrType(Struct).prototype.Tag = function Tag(i) { - var i, s, x; - s = this; - if (i < s.tags.$length) { - return (x = s.tags, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - } - return ""; + $ptrType(Map).prototype.Elem = function Elem$2() { + var m; + m = this; + return m.elem; }; - $ptrType(Struct).prototype.Underlying = function Underlying$3() { + $ptrType(Map).prototype.Underlying = function Underlying$8() { var t; t = this; return t; }; - $ptrType(Struct).prototype.String = function String$8() { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); + $ptrType(Map).prototype.String = function String$31() { + var {$24r, _r, t, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: t = this; - _r$1 = TypeString(t, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; + _r = TypeString(t, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$8, $c: true, $r, $24r, _r$1, t, $s};return $f; + /* */ } return; } var $f = {$blk: String$31, $c: true, $r, $24r, _r, t, $s};return $f; }; - $ptrType(Struct).prototype.markComplete = function markComplete() { - var s; - s = this; - if (s.fields === sliceType$10.nil) { - s.fields = $makeSlice(sliceType$10, 0); + LookupFieldOrMethod = function LookupFieldOrMethod$1(T, addressable, pkg, name) { + var {T, _r, _r$1, _r$2, _r$3, _r$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, addressable, index, indirect, name, obj, ok, ok$1, p, pkg, t, t$1, $s, $r, $c} = $restore(this, {T, addressable, pkg, name}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + obj = $ifaceNil; + index = sliceType$24.nil; + indirect = false; + if ($interfaceIsEqual(T, $ifaceNil)) { + $panic(new $String("LookupFieldOrMethod on nil type")); } + _tuple = $assertType(T, ptrType$10, true); + t = _tuple[0]; + /* */ if (!(t === ptrType$10.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(t === ptrType$10.nil)) { */ case 1: + _r = t.Underlying(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple$1 = $assertType(_r, ptrType$28, true); + p = _tuple$1[0]; + /* */ if (!(p === ptrType$28.nil)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!(p === ptrType$28.nil)) { */ case 4: + _r$1 = lookupFieldOrMethodImpl(p, false, pkg, name, false); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$2 = _r$1; + obj = _tuple$2[0]; + index = _tuple$2[1]; + indirect = _tuple$2[2]; + _tuple$3 = $assertType(obj, ptrType$2, true); + ok = _tuple$3[1]; + if (ok) { + _tmp = $ifaceNil; + _tmp$1 = sliceType$24.nil; + _tmp$2 = false; + obj = _tmp; + index = _tmp$1; + indirect = _tmp$2; + $s = -1; return [obj, index, indirect]; + } + $s = -1; return [obj, index, indirect]; + /* } */ case 5: + /* } */ case 2: + _r$2 = lookupFieldOrMethodImpl(T, addressable, pkg, name, false); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$4 = _r$2; + obj = _tuple$4[0]; + index = _tuple$4[1]; + indirect = _tuple$4[2]; + /* */ if (false && $interfaceIsEqual(obj, $ifaceNil) && isTypeParam(T)) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (false && $interfaceIsEqual(obj, $ifaceNil) && isTypeParam(T)) { */ case 8: + _r$3 = coreType(T); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + t$1 = _r$3; + /* */ if (!($interfaceIsEqual(t$1, $ifaceNil))) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (!($interfaceIsEqual(t$1, $ifaceNil))) { */ case 11: + _r$4 = lookupFieldOrMethodImpl(t$1, addressable, pkg, name, false); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$5 = _r$4; + obj = _tuple$5[0]; + index = _tuple$5[1]; + indirect = _tuple$5[2]; + _tuple$6 = $assertType(obj, ptrType$17, true); + ok$1 = _tuple$6[1]; + if (!ok$1) { + _tmp$3 = $ifaceNil; + _tmp$4 = sliceType$24.nil; + _tmp$5 = false; + obj = _tmp$3; + index = _tmp$4; + indirect = _tmp$5; + } + /* } */ case 12: + /* } */ case 9: + $s = -1; return [obj, index, indirect]; + /* */ } return; } var $f = {$blk: LookupFieldOrMethod$1, $c: true, $r, T, _r, _r$1, _r$2, _r$3, _r$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, addressable, index, indirect, name, obj, ok, ok$1, p, pkg, t, t$1, $s};return $f; }; - $ptrType(Checker).prototype.structType = function structType$2(styp, e) { - var {_i, _i$1, _r$1, _r$2, _r$3, _ref, _ref$1, add, addInvalid, check, e, embeddedPos, embeddedTyp, f, fields, fset, list$2, name, name$1, pos, styp, tag, tags, typ$3, $s, $r, $c} = $restore(this, {styp, e}); + $pkg.LookupFieldOrMethod = LookupFieldOrMethod; + lookupFieldOrMethodImpl = function lookupFieldOrMethodImpl$1(T, addressable, pkg, name, foldCase) { + var {T, _i, _i$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, _ref$2, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, addressable, alt, current, e, f, f$1, foldCase, i, i$1, i$2, index, indirect, isPtr, isPtr$1, m, m$1, name, named, next, obj, ok, pkg, seen, t, t$1, typ$3, typ$4, typ$5, $s, $r, $c} = $restore(this, {T, addressable, pkg, name, foldCase}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - add = [add]; - check = [check]; - fields = [fields]; - fset = [fset]; - tag = [tag]; - tags = [tags]; - typ$3 = [typ$3]; - check[0] = this; - list$2 = e.Fields; - if (list$2 === ptrType$49.nil) { - styp.markComplete(); - $s = -1; return; + obj = $ifaceNil; + index = sliceType$24.nil; + indirect = false; + if (name === "_") { + $s = -1; return [obj, index, indirect]; } - fields[0] = sliceType$10.nil; - tags[0] = sliceType$5.nil; - fset[0] = false; - typ$3[0] = $ifaceNil; - tag[0] = ""; - add[0] = (function(add, check, fields, fset, tag, tags, typ$3) { return function Checker·structType·func1(ident$1, embedded, pos) { - var {_r$1, _v, embedded, fld, ident$1, name, pos, $s, $r, $c} = $restore(this, {ident$1, embedded, pos}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (!(tag[0] === "") && tags[0] === sliceType$5.nil) { - tags[0] = $makeSlice(sliceType$5, fields[0].$length); - } - if (!(tags[0] === sliceType$5.nil)) { - tags[0] = $append(tags[0], tag[0]); + _tuple = deref(T); + typ$3 = _tuple[0]; + isPtr = _tuple[1]; + /* */ if (isPtr) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (isPtr) { */ case 1: + _r = under(typ$3); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple$1 = $assertType(_r, ptrType$14, true); + ok = _tuple$1[1]; + if (ok) { + $s = -1; return [obj, index, indirect]; + } + /* } */ case 2: + current = new sliceType$25([$clone(new embeddedType.ptr(typ$3, sliceType$24.nil, isPtr, false), embeddedType)]); + seen = new instanceLookup.ptr(arrayType$1.zero(), false); + /* while (true) { */ case 4: + /* if (!(current.$length > 0)) { break; } */ if(!(current.$length > 0)) { $s = 5; continue; } + next = sliceType$25.nil; + _ref = current; + _i = 0; + /* while (true) { */ case 6: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 7; continue; } + e = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), embeddedType); + typ$4 = e.typ; + _tuple$2 = $assertType(typ$4, ptrType$10, true); + named = _tuple$2[0]; + /* */ if (!(named === ptrType$10.nil)) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!(named === ptrType$10.nil)) { */ case 8: + _r$1 = seen.lookup(named); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + alt = _r$1; + if (!(alt === ptrType$10.nil)) { + _i++; + /* continue; */ $s = 6; continue; + } + seen.add(named); + _r$2 = named.lookupMethod(pkg, name, foldCase); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$3 = _r$2; + i = _tuple$3[0]; + m = _tuple$3[1]; + if (!(m === ptrType$2.nil)) { + index = concat(e.index, i); + if (!($interfaceIsEqual(obj, $ifaceNil)) || e.multiples) { + _tmp = $ifaceNil; + _tmp$1 = index; + _tmp$2 = false; + obj = _tmp; + index = _tmp$1; + indirect = _tmp$2; + $s = -1; return [obj, index, indirect]; + } + obj = m; + indirect = e.indirect; + _i++; + /* continue; */ $s = 6; continue; + } + /* } */ case 9: + _r$3 = under(typ$4); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _ref$1 = _r$3; + /* */ if ($assertType(_ref$1, ptrType$12, true)[1]) { $s = 13; continue; } + /* */ if ($assertType(_ref$1, ptrType$14, true)[1]) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if ($assertType(_ref$1, ptrType$12, true)[1]) { */ case 13: + t = _ref$1.$val; + _ref$2 = t.fields; + _i$1 = 0; + /* while (true) { */ case 16: + /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 17; continue; } + i$1 = _i$1; + f = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); + /* */ if (f.object.sameId(pkg, name)) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (f.object.sameId(pkg, name)) { */ case 18: + $r = assert(!($interfaceIsEqual(f.object.typ, $ifaceNil))); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + index = concat(e.index, i$1); + if (!($interfaceIsEqual(obj, $ifaceNil)) || e.multiples) { + _tmp$3 = $ifaceNil; + _tmp$4 = index; + _tmp$5 = false; + obj = _tmp$3; + index = _tmp$4; + indirect = _tmp$5; + $s = -1; return [obj, index, indirect]; + } + obj = f; + indirect = e.indirect; + _i$1++; + /* continue; */ $s = 16; continue; + /* } */ case 19: + if ($interfaceIsEqual(obj, $ifaceNil) && f.embedded) { + _tuple$4 = deref(f.object.typ); + typ$5 = _tuple$4[0]; + isPtr$1 = _tuple$4[1]; + next = $append(next, new embeddedType.ptr(typ$5, concat(e.index, i$1), e.indirect || isPtr$1, e.multiples)); + } + _i$1++; + $s = 16; continue; + case 17: + $s = 15; continue; + /* } else if ($assertType(_ref$1, ptrType$14, true)[1]) { */ case 14: + t$1 = _ref$1.$val; + _r$4 = t$1.typeSet(); /* */ $s = 21; case 21: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$5 = _r$4.LookupMethod(pkg, name, foldCase); /* */ $s = 22; case 22: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$5 = _r$5; + i$2 = _tuple$5[0]; + m$1 = _tuple$5[1]; + /* */ if (!(m$1 === ptrType$2.nil)) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (!(m$1 === ptrType$2.nil)) { */ case 23: + $r = assert(!($interfaceIsEqual(m$1.object.typ, $ifaceNil))); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + index = concat(e.index, i$2); + if (!($interfaceIsEqual(obj, $ifaceNil)) || e.multiples) { + _tmp$6 = $ifaceNil; + _tmp$7 = index; + _tmp$8 = false; + obj = _tmp$6; + index = _tmp$7; + indirect = _tmp$8; + $s = -1; return [obj, index, indirect]; + } + obj = m$1; + indirect = e.indirect; + /* } */ case 24: + /* } */ case 15: + _i++; + $s = 6; continue; + case 7: + if (!($interfaceIsEqual(obj, $ifaceNil))) { + _tuple$6 = $assertType(obj, ptrType$2, true); + f$1 = _tuple$6[0]; + if (!(f$1 === ptrType$2.nil)) { + if (f$1.hasPtrRecv() && !indirect && !addressable) { + _tmp$9 = $ifaceNil; + _tmp$10 = sliceType$24.nil; + _tmp$11 = true; + obj = _tmp$9; + index = _tmp$10; + indirect = _tmp$11; + $s = -1; return [obj, index, indirect]; + } } - name = ident$1.Name; - fld = NewField(pos, check[0].pkg, name, typ$3[0], embedded); - if (name === "_") { _v = true; $s = 3; continue s; } - _r$1 = check[0].declareInSet((fset.$ptr || (fset.$ptr = new ptrType$54(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, fset))), pos, fld); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = _r$1; case 3: - /* */ if (_v) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (_v) { */ case 1: - fields[0] = $append(fields[0], fld); - $r = check[0].recordDef(ident$1, fld); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·structType·func1, $c: true, $r, _r$1, _v, embedded, fld, ident$1, name, pos, $s};return $f; - }; })(add, check, fields, fset, tag, tags, typ$3); - addInvalid = (function(add, check, fields, fset, tag, tags, typ$3) { return function Checker·structType·func2(ident$1, pos) { - var {ident$1, pos, $s, $r, $c} = $restore(this, {ident$1, pos}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - typ$3[0] = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - tag[0] = ""; - $r = add[0](ident$1, true, pos); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·structType·func2, $c: true, $r, ident$1, pos, $s};return $f; - }; })(add, check, fields, fset, tag, tags, typ$3); - _ref = list$2.List; + $s = -1; return [obj, index, indirect]; + } + _r$6 = consolidateMultiples(next); /* */ $s = 26; case 26: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + current = _r$6; + $s = 4; continue; + case 5: + _tmp$12 = $ifaceNil; + _tmp$13 = sliceType$24.nil; + _tmp$14 = false; + obj = _tmp$12; + index = _tmp$13; + indirect = _tmp$14; + $s = -1; return [obj, index, indirect]; + /* */ } return; } var $f = {$blk: lookupFieldOrMethodImpl$1, $c: true, $r, T, _i, _i$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, _ref$2, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, addressable, alt, current, e, f, f$1, foldCase, i, i$1, i$2, index, indirect, isPtr, isPtr$1, m, m$1, name, named, next, obj, ok, pkg, seen, t, t$1, typ$3, typ$4, typ$5, $s};return $f; + }; + consolidateMultiples = function consolidateMultiples$1(list$2) { + var {_i, _key, _r, _ref, _tuple, e, found, i, list$2, n, prev, $s, $r, $c} = $restore(this, {list$2}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (list$2.$length <= 1) { + $s = -1; return list$2; + } + n = 0; + prev = new $global.Map(); + _ref = list$2; _i = 0; /* while (true) { */ case 1: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - embeddedPos = [embeddedPos]; - embeddedTyp = [embeddedTyp]; - f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$1 = check[0].varType(f.Type); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - typ$3[0] = _r$1; - _r$2 = check[0].tag(f.Tag); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - tag[0] = _r$2; - /* */ if (f.Names.$length > 0) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (f.Names.$length > 0) { */ case 5: - _ref$1 = f.Names; - _i$1 = 0; - /* while (true) { */ case 8: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 9; continue; } - name = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - $r = add[0](name, false, name.Pos()); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$1++; - $s = 8; continue; - case 9: - $s = 7; continue; - /* } else { */ case 6: - _r$3 = f.Type.Pos(); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - pos = _r$3; - name$1 = embeddedFieldIdent(f.Type); - /* */ if (name$1 === ptrType$30.nil) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (name$1 === ptrType$30.nil) { */ case 12: - $r = check[0].errorf(f.Type, -1, "embedded field type %s has no name", new sliceType$6([f.Type])); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - name$1 = ast.NewIdent("_"); - name$1.NamePos = pos; - $r = addInvalid(name$1, pos); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - /* continue; */ $s = 1; continue; - /* } */ case 13: - $r = add[0](name$1, true, pos); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - embeddedTyp[0] = typ$3[0]; - embeddedPos[0] = f.Type; - check[0].later((function(add, check, embeddedPos, embeddedTyp, fields, fset, tag, tags, typ$3) { return function Checker·structType·func3() { - var {_r$4, _ref$2, _tuple, isPtr, t, u, u$1, u$2, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _tuple = deref(embeddedTyp[0]); - t = _tuple[0]; - isPtr = _tuple[1]; - _r$4 = under(t); /* */ $s = 1; case 1: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _ref$2 = _r$4; - /* */ if ($assertType(_ref$2, ptrType$8, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref$2, ptrType$26, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref$2, ptrType$13, true)[1]) { $s = 4; continue; } - /* */ $s = 5; continue; - /* switch (0) { default: if ($assertType(_ref$2, ptrType$8, true)[1]) { */ case 2: - u = _ref$2.$val; - if ($interfaceIsEqual(t, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { - $s = -1; return; - } - /* */ if (u.kind === 18) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (u.kind === 18) { */ case 6: - $r = check[0].error(embeddedPos[0], 30, "embedded field type cannot be unsafe.Pointer"); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 7: - $s = 5; continue; - /* } else if ($assertType(_ref$2, ptrType$26, true)[1]) { */ case 3: - u$1 = _ref$2.$val; - $r = check[0].error(embeddedPos[0], 30, "embedded field type cannot be a pointer"); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 5; continue; - /* } else if ($assertType(_ref$2, ptrType$13, true)[1]) { */ case 4: - u$2 = _ref$2.$val; - /* */ if (isTypeParam(t)) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (isTypeParam(t)) { */ case 10: - $r = check[0].error(embeddedPos[0], 144, "embedded field type cannot be a (pointer to a) type parameter"); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* break; */ $s = 5; continue; - /* } */ case 11: - /* */ if (isPtr) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (isPtr) { */ case 13: - $r = check[0].error(embeddedPos[0], 30, "embedded field type cannot be a pointer to an interface"); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 14: - /* } } */ case 5: - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·structType·func3, $c: true, $r, _r$4, _ref$2, _tuple, isPtr, t, u, u$1, u$2, $s};return $f; - }; })(add, check, embeddedPos, embeddedTyp, fields, fset, tag, tags, typ$3)).describef(embeddedPos[0], "check embedded type %s", new sliceType$6([embeddedTyp[0]])); - /* } */ case 7: + e = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), embeddedType); + _r = lookupType(prev, e.typ); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + i = _tuple[0]; + found = _tuple[1]; + if (found) { + ((i < 0 || i >= list$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : list$2.$array[list$2.$offset + i]).multiples = true; + } else { + _key = e.typ; (prev || $throwRuntimeError("assignment to entry in nil map")).set(Type.keyFor(_key), { k: _key, v: n }); + embeddedType.copy(((n < 0 || n >= list$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : list$2.$array[list$2.$offset + n]), e); + n = n + (1) >> 0; + } _i++; $s = 1; continue; case 2: - styp.fields = fields[0]; - styp.tags = tags[0]; - styp.markComplete(); - $s = -1; return; - /* */ } return; } var $f = {$blk: structType$2, $c: true, $r, _i, _i$1, _r$1, _r$2, _r$3, _ref, _ref$1, add, addInvalid, check, e, embeddedPos, embeddedTyp, f, fields, fset, list$2, name, name$1, pos, styp, tag, tags, typ$3, $s};return $f; - }; - embeddedFieldIdent = function embeddedFieldIdent$1(e) { - var _ref, _tuple, e, e$1, e$2, e$3, e$4, e$5, ok; - _ref = e; - if ($assertType(_ref, ptrType$30, true)[1]) { - e$1 = _ref.$val; - return e$1; - } else if ($assertType(_ref, ptrType$43, true)[1]) { - e$2 = _ref.$val; - _tuple = $assertType(e$2.X, ptrType$43, true); - ok = _tuple[1]; - if (!ok) { - return embeddedFieldIdent(e$2.X); - } - } else if ($assertType(_ref, ptrType$36, true)[1]) { - e$3 = _ref.$val; - return e$3.Sel; - } else if ($assertType(_ref, ptrType$37, true)[1]) { - e$4 = _ref.$val; - return embeddedFieldIdent(e$4.X); - } else if ($assertType(_ref, ptrType$38, true)[1]) { - e$5 = _ref.$val; - return embeddedFieldIdent(e$5.X); - } - return ptrType$30.nil; - }; - $ptrType(Checker).prototype.declareInSet = function declareInSet(oset, pos, obj) { - var {_arg, _arg$1, _r$1, _r$2, alt, check, obj, oset, pos, $s, $r, $c} = $restore(this, {oset, pos, obj}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = oset.insert(obj); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - alt = _r$1; - /* */ if (!($interfaceIsEqual(alt, $ifaceNil))) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!($interfaceIsEqual(alt, $ifaceNil))) { */ case 2: - _arg = new atPos(((pos >> 0))); - _r$2 = obj.Name(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _arg$1 = new $String(_r$2); - $r = check.errorf(_arg, 10, "%s redeclared", new sliceType$6([_arg$1])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.reportAltDecl(alt); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return false; - /* } */ case 3: - $s = -1; return true; - /* */ } return; } var $f = {$blk: declareInSet, $c: true, $r, _arg, _arg$1, _r$1, _r$2, alt, check, obj, oset, pos, $s};return $f; + $s = -1; return $subslice(list$2, 0, n); + /* */ } return; } var $f = {$blk: consolidateMultiples$1, $c: true, $r, _i, _key, _r, _ref, _tuple, e, found, i, list$2, n, prev, $s};return $f; }; - $ptrType(Checker).prototype.tag = function tag(t) { - var {_tuple, check, err, t, val, $s, $r, $c} = $restore(this, {t}); + lookupType = function lookupType$1(m, typ$3) { + var {_entry, _entry$1, _i, _key, _keys, _r, _ref, _size, _tuple, found, i, i$1, m, t, typ$3, $s, $r, $c} = $restore(this, {m, typ$3}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - /* */ if (!(t === ptrType$57.nil)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(t === ptrType$57.nil)) { */ case 1: - if (t.Kind === 9) { - _tuple = strconv.Unquote(t.Value); - val = _tuple[0]; - err = _tuple[1]; - if ($interfaceIsEqual(err, $ifaceNil)) { - $s = -1; return val; - } - } - $r = check.errorf(t, -1, "incorrect tag syntax: %q", new sliceType$6([new $String(t.Value)])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - $s = -1; return ""; - /* */ } return; } var $f = {$blk: tag, $c: true, $r, _tuple, check, err, t, val, $s};return $f; - }; - $ptrType(Checker).prototype.funcBody = function funcBody(decl$1, name, sig, body, iota) { - var {_r$1, body, check, decl$1, iota, name, sig, $s, $deferred, $r, $c} = $restore(this, {decl$1, name, sig, body, iota}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - check = [check]; - check[0] = this; - if (check[0].conf.IgnoreFuncBodies) { - $panic(new $String("function body not ignored")); + _tuple = (_entry = $mapIndex(m,Type.keyFor(typ$3)), _entry !== undefined ? [_entry.v, true] : [0, false]); + i = _tuple[0]; + found = _tuple[1]; + if (found) { + $s = -1; return [i, true]; } - /* */ if (false) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (false) { */ case 1: - $r = check[0].trace(body.Pos(), "-- %s: %s", new sliceType$6([new $String(name), sig])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - sig.scope.pos = body.Pos(); - _r$1 = body.End(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - sig.scope.end = _r$1; - $deferred.push([(function(check) { return function Checker·funcBody·func1(env, indent) { - var env, indent; - environment.copy(check[0].environment, env); - check[0].indent = indent; - }; })(check), [$clone(check[0].environment, environment), check[0].indent]]); - environment.copy(check[0].environment, new environment.ptr(decl$1, sig.scope, 0, iota, $ifaceNil, false, sig, false, false, false)); - check[0].indent = 0; - $r = check[0].stmtList(0, body.List); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (check[0].environment.hasLabel) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (check[0].environment.hasLabel) { */ case 6: - $r = check[0].labels(body); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 7: - /* */ if (sig.results.Len() > 0 && !check[0].isTerminating(body, "")) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (sig.results.Len() > 0 && !check[0].isTerminating(body, "")) { */ case 9: - $r = check[0].error(new atPos(((body.Rbrace >> 0))), 102, "missing return"); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 10: - $r = check[0].usage(sig.scope); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: funcBody, $c: true, $r, _r$1, body, check, decl$1, iota, name, sig, $s, $deferred};return $f; } } - }; - $ptrType(Checker).prototype.usage = function usage(scope) { - var {_entry, _i, _i$1, _i$2, _key, _keys, _r$1, _ref, _ref$1, _ref$2, _size, _tuple, check, elem, name, scope, scope$1, unused, v, v$1, $s, $r, $c} = $restore(this, {scope}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - unused = [unused]; - check = this; - unused[0] = sliceType$10.nil; - _ref = scope.elems; + _ref = m; _i = 0; _keys = _ref ? _ref.keys() : undefined; _size = _ref ? _ref.size : 0; /* while (true) { */ case 1: /* if (!(_i < _size)) { break; } */ if(!(_i < _size)) { $s = 2; continue; } _key = _keys.next().value; - _entry = _ref.get(_key); - if (_entry === undefined) { + _entry$1 = _ref.get(_key); + if (_entry$1 === undefined) { _i++; /* continue; */ $s = 1; continue; } - name = _entry.k; - elem = _entry.v; - _r$1 = resolve(name, elem); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - elem = _r$1; - _tuple = $assertType(elem, ptrType$16, true); - v = _tuple[0]; - if (!(v === ptrType$16.nil) && !v.used) { - unused[0] = $append(unused[0], v); - } + t = _entry$1.k; + i$1 = _entry$1.v; + _r = Identical(t, typ$3); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_r) { */ case 3: + $s = -1; return [i$1, true]; + /* } */ case 4: _i++; $s = 1; continue; case 2: - $r = sort.Slice(unused[0], (function(unused) { return function Checker·usage·func1(i, j) { - var i, j; - return ((i < 0 || i >= unused[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : unused[0].$array[unused[0].$offset + i]).object.pos < ((j < 0 || j >= unused[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : unused[0].$array[unused[0].$offset + j]).object.pos; - }; })(unused)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _ref$1 = unused[0]; - _i$1 = 0; - /* while (true) { */ case 5: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 6; continue; } - v$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - $r = check.softErrorf(v$1, 101, "%s declared and not used", new sliceType$6([new $String(v$1.object.name)])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$1++; - $s = 5; continue; - case 6: - _ref$2 = scope.children; - _i$2 = 0; - /* while (true) { */ case 8: - /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 9; continue; } - scope$1 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); - /* */ if (!scope$1.isFunc) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (!scope$1.isFunc) { */ case 10: - $r = check.usage(scope$1); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 11: - _i$2++; - $s = 8; continue; - case 9: - $s = -1; return; - /* */ } return; } var $f = {$blk: usage, $c: true, $r, _entry, _i, _i$1, _i$2, _key, _keys, _r$1, _ref, _ref$1, _ref$2, _size, _tuple, check, elem, name, scope, scope$1, unused, v, v$1, $s};return $f; - }; - $ptrType(Checker).prototype.simpleStmt = function simpleStmt(s) { - var {check, s, $s, $r, $c} = $restore(this, {s}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - /* */ if (!($interfaceIsEqual(s, $ifaceNil))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!($interfaceIsEqual(s, $ifaceNil))) { */ case 1: - $r = check.stmt(0, s); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: simpleStmt, $c: true, $r, check, s, $s};return $f; - }; - trimTrailingEmptyStmts = function trimTrailingEmptyStmts$1(list$2) { - var _tuple, i, list$2, ok, x; - i = list$2.$length; - while (true) { - if (!(i > 0)) { break; } - _tuple = $assertType((x = i - 1 >> 0, ((x < 0 || x >= list$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : list$2.$array[list$2.$offset + x])), ptrType$59, true); - ok = _tuple[1]; - if (!ok) { - return $subslice(list$2, 0, i); - } - i = i - (1) >> 0; - } - return sliceType$17.nil; + $s = -1; return [0, false]; + /* */ } return; } var $f = {$blk: lookupType$1, $c: true, $r, _entry, _entry$1, _i, _key, _keys, _r, _ref, _size, _tuple, found, i, i$1, m, t, typ$3, $s};return $f; }; - $ptrType(Checker).prototype.stmtList = function stmtList(ctxt, list$2) { - var {_i, _ref, check, ctxt, i, inner, inner$1, list$2, ok, s, $s, $r, $c} = $restore(this, {ctxt, list$2}); + $ptrType(instanceLookup).prototype.lookup = function lookup$1(inst) { + var {_entry, _i, _i$1, _r, _r$1, _ref, _ref$1, _v, inst, l, t, t$1, $s, $r, $c} = $restore(this, {inst}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - ok = !((((ctxt & 4) >>> 0) === 0)); - inner = (ctxt & ~4) >>> 0; - list$2 = trimTrailingEmptyStmts(list$2); - _ref = list$2; + l = this; + _ref = l.buf; _i = 0; /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - inner$1 = inner; - if (ok && ((i + 1 >> 0) === list$2.$length)) { - inner$1 = (inner$1 | (4)) >>> 0; - } - $r = check.stmt(inner$1, s); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* if (!(_i < 3)) { break; } */ if(!(_i < 3)) { $s = 2; continue; } + t = ((_i < 0 || _i >= _ref.length) ? ($throwRuntimeError("index out of range"), undefined) : _ref[_i]); + if (!(!(t === ptrType$10.nil))) { _v = false; $s = 5; continue s; } + _r = Identical(inst, t); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r; case 5: + /* */ if (_v) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_v) { */ case 3: + $s = -1; return t; + /* } */ case 4: _i++; $s = 1; continue; case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: stmtList, $c: true, $r, _i, _ref, check, ctxt, i, inner, inner$1, list$2, ok, s, $s};return $f; + _ref$1 = (_entry = $mapIndex(l.m,ptrType$10.keyFor(inst.Origin())), _entry !== undefined ? _entry.v : sliceType$6.nil); + _i$1 = 0; + /* while (true) { */ case 7: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 8; continue; } + t$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + _r$1 = Identical(inst, t$1); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (_r$1) { */ case 9: + $s = -1; return t$1; + /* } */ case 10: + _i$1++; + $s = 7; continue; + case 8: + $s = -1; return ptrType$10.nil; + /* */ } return; } var $f = {$blk: lookup$1, $c: true, $r, _entry, _i, _i$1, _r, _r$1, _ref, _ref$1, _v, inst, l, t, t$1, $s};return $f; }; - $ptrType(Checker).prototype.multipleDefaults = function multipleDefaults(list$2) { - var {_arg, _arg$1, _i, _r$1, _r$2, _ref, _ref$1, c, c$1, c$2, check, d, first, list$2, s, x, $s, $r, $c} = $restore(this, {list$2}); + $ptrType(instanceLookup).prototype.add = function add$1(inst) { + var _entry, _i, _key, _ref, i, inst, insts, l, t, x; + l = this; + _ref = l.buf; + _i = 0; + while (true) { + if (!(_i < 3)) { break; } + i = _i; + t = ((_i < 0 || _i >= _ref.length) ? ($throwRuntimeError("index out of range"), undefined) : _ref[_i]); + if (t === ptrType$10.nil) { + (x = l.buf, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i] = inst)); + return; + } + _i++; + } + if (l.m === false) { + l.m = new $global.Map(); + } + insts = (_entry = $mapIndex(l.m,ptrType$10.keyFor(inst.Origin())), _entry !== undefined ? _entry.v : sliceType$6.nil); + _key = inst.Origin(); (l.m || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$10.keyFor(_key), { k: _key, v: $append(insts, inst) }); + }; + $ptrType(Checker).prototype.missingMethod = function missingMethod(V, T, static$1, equivalent, cause) { + var {T, V, _1, _i, _i$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, cause, check, equivalent, f, fs, fs$1, index, indirect, m, method, methods, ms, ms$1, obj, state$1, static$1, tset, u, wrongType, $s, $r, $c} = $restore(this, {V, T, static$1, equivalent, cause}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + method = ptrType$2.nil; + wrongType = false; check = this; - first = $ifaceNil; - _ref = list$2; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - d = $ifaceNil; - _ref$1 = s; - /* */ if ($assertType(_ref$1, ptrType$60, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref$1, ptrType$61, true)[1]) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if ($assertType(_ref$1, ptrType$60, true)[1]) { */ case 3: - c = _ref$1.$val; - if (c.List.$length === 0) { - d = s; - } - $s = 6; continue; - /* } else if ($assertType(_ref$1, ptrType$61, true)[1]) { */ case 4: - c$1 = _ref$1.$val; - if ($interfaceIsEqual(c$1.Comm, $ifaceNil)) { - d = s; + _r = under(T); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = $assertType(_r, ptrType$14).typeSet(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + methods = _r$1.methods; + if (methods.$length === 0) { + _tmp = ptrType$2.nil; + _tmp$1 = false; + method = _tmp; + wrongType = _tmp$1; + $s = -1; return [method, wrongType]; + } + state$1 = 0; + m = ptrType$2.nil; + f = ptrType$2.nil; + _r$2 = under(V); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = $assertType(_r$2, ptrType$14, true); + u = _tuple[0]; + /* */ if (!(u === ptrType$14.nil)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!(u === ptrType$14.nil)) { */ case 4: + _r$3 = u.typeSet(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + tset = _r$3; + _ref = methods; + _i = 0; + /* while (true) { */ case 8: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 9; continue; } + m = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _tuple$1 = tset.LookupMethod(m.object.pkg, m.object.name, false); + f = _tuple$1[1]; + if (f === ptrType$2.nil) { + if (!static$1) { + _i++; + /* continue; */ $s = 8; continue; + } + state$1 = 1; + /* break; */ $s = 9; continue; } - $s = 6; continue; - /* } else { */ case 5: - c$2 = _ref$1; - $r = check.error(s, -1, "case/communication clause expected"); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 6: - /* */ if (!($interfaceIsEqual(d, $ifaceNil))) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (!($interfaceIsEqual(d, $ifaceNil))) { */ case 8: - /* */ if (!($interfaceIsEqual(first, $ifaceNil))) { $s = 10; continue; } + _r$4 = equivalent(f.object.typ, m.object.typ); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (!_r$4) { $s = 10; continue; } /* */ $s = 11; continue; - /* if (!($interfaceIsEqual(first, $ifaceNil))) { */ case 10: - _arg = d; - _r$1 = first.Pos(); /* */ $s = 13; case 13: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = check.fset.Position(_r$1); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _arg$1 = (x = _r$2, new x.constructor.elem(x)); - $r = check.errorf(_arg, 114, "multiple defaults (first at %s)", new sliceType$6([_arg$1])); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 12; continue; - /* } else { */ case 11: - first = d; - /* } */ case 12: - /* } */ case 9: - _i++; - $s = 1; continue; - case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: multipleDefaults, $c: true, $r, _arg, _arg$1, _i, _r$1, _r$2, _ref, _ref$1, c, c$1, c$2, check, d, first, list$2, s, x, $s};return $f; + /* if (!_r$4) { */ case 10: + state$1 = 3; + /* break; */ $s = 9; continue; + /* } */ case 11: + _i++; + $s = 8; continue; + case 9: + $s = 6; continue; + /* } else { */ case 5: + _ref$1 = methods; + _i$1 = 0; + /* while (true) { */ case 13: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 14; continue; } + m = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + _r$5 = lookupFieldOrMethodImpl(V, false, m.object.pkg, m.object.name, false); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$2 = _r$5; + obj = _tuple$2[0]; + index = _tuple$2[1]; + indirect = _tuple$2[2]; + /* */ if ($interfaceIsEqual(obj, $ifaceNil)) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if ($interfaceIsEqual(obj, $ifaceNil)) { */ case 16: + /* */ if (!(index === sliceType$24.nil)) { $s = 19; continue; } + /* */ if (indirect) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (!(index === sliceType$24.nil)) { */ case 19: + state$1 = 4; + $s = 22; continue; + /* } else if (indirect) { */ case 20: + state$1 = 5; + $s = 22; continue; + /* } else { */ case 21: + state$1 = 1; + _r$6 = lookupFieldOrMethodImpl(V, false, m.object.pkg, m.object.name, true); /* */ $s = 23; case 23: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _tuple$3 = _r$6; + obj = _tuple$3[0]; + _tuple$4 = $assertType(obj, ptrType$2, true); + f = _tuple$4[0]; + if (!(f === ptrType$2.nil)) { + state$1 = 2; + } + /* } */ case 22: + case 18: + /* break; */ $s = 14; continue; + /* } */ case 17: + _tuple$5 = $assertType(obj, ptrType$2, true); + f = _tuple$5[0]; + if (f === ptrType$2.nil) { + state$1 = 6; + /* break; */ $s = 14; continue; + } + /* */ if (!(check === ptrType$6.nil)) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (!(check === ptrType$6.nil)) { */ case 24: + $r = check.objDecl(f, ptrType$10.nil); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 25: + _r$7 = equivalent(f.object.typ, m.object.typ); /* */ $s = 29; case 29: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + /* */ if (!_r$7) { $s = 27; continue; } + /* */ $s = 28; continue; + /* if (!_r$7) { */ case 27: + state$1 = 3; + /* break; */ $s = 14; continue; + /* } */ case 28: + _i$1++; + $s = 13; continue; + case 14: + /* } */ case 6: + if (state$1 === 0) { + _tmp$2 = ptrType$2.nil; + _tmp$3 = false; + method = _tmp$2; + wrongType = _tmp$3; + $s = -1; return [method, wrongType]; + } + /* */ if (!(cause === ptrType$35.nil)) { $s = 30; continue; } + /* */ $s = 31; continue; + /* if (!(cause === ptrType$35.nil)) { */ case 30: + /* */ if (!(f === ptrType$2.nil)) { $s = 32; continue; } + /* */ $s = 33; continue; + /* if (!(f === ptrType$2.nil)) { */ case 32: + /* */ if (!(check === ptrType$6.nil)) { $s = 34; continue; } + /* */ $s = 35; continue; + /* if (!(check === ptrType$6.nil)) { */ case 34: + $r = check.objDecl(f, ptrType$10.nil); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 35: + /* } */ case 33: + _1 = state$1; + /* */ if (_1 === (1)) { $s = 38; continue; } + /* */ if (_1 === (2)) { $s = 39; continue; } + /* */ if (_1 === (3)) { $s = 40; continue; } + /* */ if (_1 === (4)) { $s = 41; continue; } + /* */ if (_1 === (5)) { $s = 42; continue; } + /* */ if (_1 === (6)) { $s = 43; continue; } + /* */ $s = 44; continue; + /* if (_1 === (1)) { */ case 38: + _r$8 = isInterfacePtr(V); /* */ $s = 51; case 51: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + /* */ if (_r$8) { $s = 47; continue; } + _r$9 = isInterfacePtr(T); /* */ $s = 52; case 52: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + /* */ if (_r$9) { $s = 48; continue; } + /* */ $s = 49; continue; + /* if (_r$8) { */ case 47: + _r$10 = check.interfacePtrError(V); /* */ $s = 53; case 53: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + cause.$set("(" + _r$10 + ")"); + $s = 50; continue; + /* } else if (_r$9) { */ case 48: + _r$11 = check.interfacePtrError(T); /* */ $s = 54; case 54: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + cause.$set("(" + _r$11 + ")"); + $s = 50; continue; + /* } else { */ case 49: + _r$12 = check.sprintf("(missing method %s)", new sliceType$5([new $String(m.object.Name())])); /* */ $s = 55; case 55: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + cause.$set(_r$12); + /* } */ case 50: + case 46: + $s = 45; continue; + /* } else if (_1 === (2)) { */ case 39: + _r$13 = check.funcString(f, false); /* */ $s = 56; case 56: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _tmp$4 = _r$13; + _r$14 = check.funcString(m, false); /* */ $s = 57; case 57: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _tmp$5 = _r$14; + fs = _tmp$4; + ms = _tmp$5; + _r$15 = check.sprintf("(missing method %s)\n\t\thave %s\n\t\twant %s", new sliceType$5([new $String(m.object.Name()), new $String(fs), new $String(ms)])); /* */ $s = 58; case 58: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + cause.$set(_r$15); + $s = 45; continue; + /* } else if (_1 === (3)) { */ case 40: + _r$16 = check.funcString(f, false); /* */ $s = 59; case 59: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + _tmp$6 = _r$16; + _r$17 = check.funcString(m, false); /* */ $s = 60; case 60: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + _tmp$7 = _r$17; + fs$1 = _tmp$6; + ms$1 = _tmp$7; + /* */ if (fs$1 === ms$1) { $s = 61; continue; } + /* */ $s = 62; continue; + /* if (fs$1 === ms$1) { */ case 61: + _r$18 = check.funcString(f, true); /* */ $s = 63; case 63: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + _tmp$8 = _r$18; + _r$19 = check.funcString(m, true); /* */ $s = 64; case 64: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + _tmp$9 = _r$19; + fs$1 = _tmp$8; + ms$1 = _tmp$9; + /* } */ case 62: + _r$20 = check.sprintf("(wrong type for method %s)\n\t\thave %s\n\t\twant %s", new sliceType$5([new $String(m.object.Name()), new $String(fs$1), new $String(ms$1)])); /* */ $s = 65; case 65: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + cause.$set(_r$20); + $s = 45; continue; + /* } else if (_1 === (4)) { */ case 41: + _r$21 = check.sprintf("(ambiguous selector %s.%s)", new sliceType$5([V, new $String(m.object.Name())])); /* */ $s = 66; case 66: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + cause.$set(_r$21); + $s = 45; continue; + /* } else if (_1 === (5)) { */ case 42: + _r$22 = check.sprintf("(method %s has pointer receiver)", new sliceType$5([new $String(m.object.Name())])); /* */ $s = 67; case 67: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + cause.$set(_r$22); + $s = 45; continue; + /* } else if (_1 === (6)) { */ case 43: + _r$23 = check.sprintf("(%s.%s is a field, not a method)", new sliceType$5([V, new $String(m.object.Name())])); /* */ $s = 68; case 68: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + cause.$set(_r$23); + $s = 45; continue; + /* } else { */ case 44: + unreachable(); + /* } */ case 45: + case 37: + /* } */ case 31: + _tmp$10 = m; + _tmp$11 = (state$1 === 3) || (state$1 === 5); + method = _tmp$10; + wrongType = _tmp$11; + $s = -1; return [method, wrongType]; + /* */ } return; } var $f = {$blk: missingMethod, $c: true, $r, T, V, _1, _i, _i$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, cause, check, equivalent, f, fs, fs$1, index, indirect, m, method, methods, ms, ms$1, obj, state$1, static$1, tset, u, wrongType, $s};return $f; + }; + isInterfacePtr = function isInterfacePtr$1(T) { + var {$24r, T, _r, _r$1, _tuple, _v, p, $s, $r, $c} = $restore(this, {T}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = under(T); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = $assertType(_r, ptrType$28, true); + p = _tuple[0]; + if (!(!(p === ptrType$28.nil))) { _v = false; $s = 2; continue s; } + _r$1 = IsInterface(p.base); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = _r$1; case 2: + $24r = _v; + $s = 4; case 4: return $24r; + /* */ } return; } var $f = {$blk: isInterfacePtr$1, $c: true, $r, $24r, T, _r, _r$1, _tuple, _v, p, $s};return $f; }; - $ptrType(Checker).prototype.openScope = function openScope(node, comment) { - var {_arg, _arg$1, _arg$2, _arg$3, _r$1, _r$2, _r$3, check, comment, node, scope, $s, $r, $c} = $restore(this, {node, comment}); + $ptrType(Checker).prototype.interfacePtrError = function interfacePtrError(T) { + var {$24r, $24r$1, T, _r, _r$1, _r$2, _r$3, _tuple, check, p, $s, $r, $c} = $restore(this, {T}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: check = this; - _arg = check.environment.scope; - _r$1 = node.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _arg$1 = _r$1; - _r$2 = node.End(); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _arg$2 = _r$2; - _arg$3 = comment; - _r$3 = NewScope(_arg, _arg$1, _arg$2, _arg$3); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - scope = _r$3; - $r = check.recordScope(node, scope); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - check.environment.scope = scope; - $s = -1; return; - /* */ } return; } var $f = {$blk: openScope, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _r$1, _r$2, _r$3, check, comment, node, scope, $s};return $f; + _r = isInterfacePtr(T); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = assert(_r); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = under(T); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = $assertType(_r$1, ptrType$28, true); + p = _tuple[0]; + /* */ if (isTypeParam(p.base)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (isTypeParam(p.base)) { */ case 4: + _r$2 = check.sprintf("type %s is pointer to type parameter, not type parameter", new sliceType$5([T])); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 7; case 7: return $24r; + /* } */ case 5: + _r$3 = check.sprintf("type %s is pointer to interface, not interface", new sliceType$5([T])); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r$1 = _r$3; + $s = 9; case 9: return $24r$1; + /* */ } return; } var $f = {$blk: interfacePtrError, $c: true, $r, $24r, $24r$1, T, _r, _r$1, _r$2, _r$3, _tuple, check, p, $s};return $f; }; - $ptrType(Checker).prototype.closeScope = function closeScope() { - var check; + $ptrType(Checker).prototype.funcString = function funcString(f, pkgInfo) { + var {buf, check, f, pkgInfo, qf, w, $s, $r, $c} = $restore(this, {f, pkgInfo}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: check = this; - check.environment.scope = check.environment.scope.Parent(); - }; - assignOp = function assignOp$1(op) { - var op; - if (23 <= op && op <= 33) { - return op + -11 >> 0; + buf = bytes.NewBufferString(f.object.name); + qf = $throwNilPointerError; + if (!(check === ptrType$6.nil) && !pkgInfo) { + qf = $methodVal(check, "qualifier"); } - return 0; + w = newTypeWriter(buf, qf); + w.pkgInfo = pkgInfo; + w.paramNames = false; + $r = w.signature($assertType(f.object.typ, ptrType$29)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return buf.String(); + /* */ } return; } var $f = {$blk: funcString, $c: true, $r, buf, check, f, pkgInfo, qf, w, $s};return $f; }; - $ptrType(Checker).prototype.suspendedCall = function suspendedCall(keyword, call) { - var {_1, _r$1, call, check, code, keyword, msg, x, $s, $r, $c} = $restore(this, {keyword, call}); + $ptrType(Checker).prototype.assertableTo = function assertableTo(V, T, cause) { + var {T, V, _r, _r$1, _tuple, cause, check, m, $s, $r, $c} = $restore(this, {V, T, cause}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = [x]; check = this; - x[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - msg = ""; - code = 0; - _r$1 = check.rawExpr(x[0], call, $ifaceNil, false); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _1 = _r$1; - if (_1 === (0)) { - msg = "requires function call, not conversion"; - code = 129; - if (keyword === "go") { - code = 130; + _r = IsInterface(T); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r) { */ case 1: + $s = -1; return true; + /* } */ case 2: + _r$1 = check.missingMethod(T, V, false, Identical, cause); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + m = _tuple[0]; + $s = -1; return m === ptrType$2.nil; + /* */ } return; } var $f = {$blk: assertableTo, $c: true, $r, T, V, _r, _r$1, _tuple, cause, check, m, $s};return $f; + }; + deref = function deref$1(typ$3) { + var _tuple, p, typ$3; + _tuple = $assertType(typ$3, ptrType$28, true); + p = _tuple[0]; + if (!(p === ptrType$28.nil)) { + if ($interfaceIsEqual(p.base, $ifaceNil)) { + if (false) { + $panic(new $String("pointer with nil base type (possibly due to an invalid cyclic declaration)")); } - } else if (_1 === (1)) { - msg = "discards result of"; - code = 128; - } else if (_1 === (2)) { - $s = -1; return; - } else { - unreachable(); + return [(0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]), true]; } - case 1: - $r = check.errorf(x[0], code, "%s %s %s", new sliceType$6([new $String(keyword), new $String(msg), x[0]])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: suspendedCall, $c: true, $r, _1, _r$1, call, check, code, keyword, msg, x, $s};return $f; - }; - goVal = function goVal$1(val) { - var {$24r, _1, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, _tuple$2, ok, ok$1, ok$2, val, x, x$1, x$2, $s, $r, $c} = $restore(this, {val}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if ($interfaceIsEqual(val, $ifaceNil)) { - $s = -1; return $ifaceNil; + return [p.base, true]; } - _r$1 = val.Kind(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _1 = _r$1; - /* */ if (_1 === (3)) { $s = 3; continue; } - /* */ if (_1 === (4)) { $s = 4; continue; } - /* */ if (_1 === (2)) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (_1 === (3)) { */ case 3: - _r$2 = constant.Int64Val(val); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple = _r$2; - x = _tuple[0]; - ok = _tuple[1]; - if (ok) { - $s = -1; return x; - } - _r$3 = constant.Uint64Val(val); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple$1 = _r$3; - x$1 = _tuple$1[0]; - ok$1 = _tuple$1[1]; - if (ok$1) { - $s = -1; return x$1; - } - $s = 6; continue; - /* } else if (_1 === (4)) { */ case 4: - _r$4 = constant.Float64Val(val); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _tuple$2 = _r$4; - x$2 = _tuple$2[0]; - ok$2 = _tuple$2[1]; - if (ok$2) { - $s = -1; return new $Float64(x$2); - } - $s = 6; continue; - /* } else if (_1 === (2)) { */ case 5: - _r$5 = constant.StringVal(val); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - $24r = new $String(_r$5); - $s = 11; case 11: return $24r; - /* } */ case 6: - case 1: - $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: goVal$1, $c: true, $r, $24r, _1, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, _tuple$2, ok, ok$1, ok$2, val, x, x$1, x$2, $s};return $f; + return [typ$3, false]; }; - $ptrType(Checker).prototype.caseValues = function caseValues(x, values, seen) { - var {_entry, _entry$1, _i, _i$1, _key, _r$1, _r$2, _r$3, _ref, _ref$1, check, e, res, seen, v, val, values, vt, x, $s, $r, $c} = $restore(this, {x, values, seen}); + derefStructPtr = function derefStructPtr$1(typ$3) { + var {_r, _r$1, _tuple, _tuple$1, ok, p, typ$3, $s, $r, $c} = $restore(this, {typ$3}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _ref = values; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - res = [res]; - v = [v]; - e = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - v[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = check.expr(v[0], e); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if ((x.mode === 0) || (v[0].mode === 0)) { - _i++; - /* continue L; */ $s = 1; continue s; + _r = under(typ$3); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = $assertType(_r, ptrType$28, true); + p = _tuple[0]; + /* */ if (!(p === ptrType$28.nil)) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!(p === ptrType$28.nil)) { */ case 2: + _r$1 = under(p.base); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = $assertType(_r$1, ptrType$12, true); + ok = _tuple$1[1]; + if (ok) { + $s = -1; return p.base; } - $r = check.convertUntyped(v[0], x.typ); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (v[0].mode === 0) { + /* } */ case 3: + $s = -1; return typ$3; + /* */ } return; } var $f = {$blk: derefStructPtr$1, $c: true, $r, _r, _r$1, _tuple, _tuple$1, ok, p, typ$3, $s};return $f; + }; + concat = function concat$1(list$2, i) { + var i, list$2, t; + t = sliceType$24.nil; + t = $appendSlice(t, list$2); + return $append(t, i); + }; + fieldIndex = function fieldIndex$1(fields, pkg, name) { + var _i, _ref, f, fields, i, name, pkg; + if (!(name === "_")) { + _ref = fields; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (f.object.sameId(pkg, name)) { + return i; + } _i++; - /* continue L; */ $s = 1; continue s; } - res[0] = $clone(v[0], operand); - $r = check.comparison(res[0], x, 39, true); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (res[0].mode === 0) { + } + return -1; + }; + lookupMethod = function lookupMethod$2(methods, pkg, name, foldCase) { + var _i, _ref, foldCase, i, m, methods, name, pkg; + if (!(name === "_")) { + _ref = methods; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + m = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if ((m.object.name === name || foldCase && strings.EqualFold(m.object.name, name)) && m.object.sameId(pkg, m.object.name)) { + return [i, m]; + } _i++; - /* continue L; */ $s = 1; continue s; } - if (!((v[0].mode === 4))) { - _i++; - /* continue L; */ $s = 1; continue s; + } + return [-1, ptrType$2.nil]; + }; + $ptrType(Checker).prototype.labels = function labels(body) { + var {_arg, _arg$1, _arg$2, _entry, _i, _i$1, _key, _keys, _r, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _size, all, alt, body, check, code, fwdJumps, jmp, lbl, msg, name, name$1, obj, $s, $r, $c} = $restore(this, {body}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _arg = ptrType.nil; + _arg$1 = body.Pos(); + _r = body.End(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$2 = _r; + _r$1 = NewScope(_arg, _arg$1, _arg$2, "label"); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + all = _r$1; + _r$2 = check.blockBranches(all, ptrType$95.nil, ptrType$66.nil, body.List); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + fwdJumps = _r$2; + _ref = fwdJumps; + _i = 0; + /* while (true) { */ case 4: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 5; continue; } + jmp = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + msg = ""; + code = 0; + name = jmp.Label.Name; + _r$3 = all.Lookup(name); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + alt = _r$3; + if (!($interfaceIsEqual(alt, $ifaceNil))) { + msg = "goto %s jumps into block"; + $assertType(alt, ptrType$93).used = true; + code = 124; + } else { + msg = "label %s not declared"; + code = 119; } - _r$1 = goVal(v[0].val); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - val = _r$1; - /* */ if (!($interfaceIsEqual(val, $ifaceNil))) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (!($interfaceIsEqual(val, $ifaceNil))) { */ case 7: - _ref$1 = (_entry = $mapIndex(seen,$emptyInterface.keyFor(val)), _entry !== undefined ? _entry.v : sliceType$18.nil); - _i$1 = 0; - /* while (true) { */ case 9: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 10; continue; } - vt = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), valueType); - _r$2 = Identical(v[0].typ, vt.typ); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (_r$2) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (_r$2) { */ case 11: - $r = check.errorf(v[0], 113, "duplicate case %s in expression switch", new sliceType$6([v[0]])); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.error(new atPos(((vt.pos >> 0))), 113, "\tprevious case"); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - /* continue L; */ $s = 1; continue s; - /* } */ case 12: - _i$1++; - $s = 9; continue; - case 10: - _r$3 = v[0].Pos(); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _key = val; (seen || $throwRuntimeError("assignment to entry in nil map")).set($emptyInterface.keyFor(_key), { k: _key, v: $append((_entry$1 = $mapIndex(seen,$emptyInterface.keyFor(val)), _entry$1 !== undefined ? _entry$1.v : sliceType$18.nil), new valueType.ptr(_r$3, v[0].typ)) }); - /* } */ case 8: + $r = check.errorf(jmp.Label, code, msg, new sliceType$5([new $String(name)])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _i++; - $s = 1; continue; - case 2: + $s = 4; continue; + case 5: + _ref$1 = all.elems; + _i$1 = 0; + _keys = _ref$1 ? _ref$1.keys() : undefined; + _size = _ref$1 ? _ref$1.size : 0; + /* while (true) { */ case 8: + /* if (!(_i$1 < _size)) { break; } */ if(!(_i$1 < _size)) { $s = 9; continue; } + _key = _keys.next().value; + _entry = _ref$1.get(_key); + if (_entry === undefined) { + _i$1++; + /* continue; */ $s = 8; continue; + } + name$1 = _entry.k; + obj = _entry.v; + _r$4 = resolve(name$1, obj); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + obj = _r$4; + lbl = $assertType(obj, ptrType$93); + /* */ if (!lbl.used) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (!lbl.used) { */ case 11: + $r = check.softErrorf(lbl, 122, "label %s declared and not used", new sliceType$5([new $String(lbl.object.name)])); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 12: + _i$1++; + $s = 8; continue; + case 9: $s = -1; return; - /* */ } return; } var $f = {$blk: caseValues, $c: true, $r, _entry, _entry$1, _i, _i$1, _key, _r$1, _r$2, _r$3, _ref, _ref$1, check, e, res, seen, v, val, values, vt, x, $s};return $f; + /* */ } return; } var $f = {$blk: labels, $c: true, $r, _arg, _arg$1, _arg$2, _entry, _i, _i$1, _key, _keys, _r, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _size, all, alt, body, check, code, fwdJumps, jmp, lbl, msg, name, name$1, obj, $s};return $f; }; - $ptrType(Checker).prototype.isNil = function isNil(e) { - var {_r$1, _tuple, _tuple$1, check, e, name, ok, $s, $r, $c} = $restore(this, {e}); + $ptrType(block).prototype.insert = function insert$2(s) { + var {_key, b, labels$1, name, s, $s, $r, $c} = $restore(this, {s}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _tuple = $assertType(unparen(e), ptrType$30, true); - name = _tuple[0]; - /* */ if (!(name === ptrType$30.nil)) { $s = 1; continue; } + b = this; + name = s.Label.Name; + /* */ if (false) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (!(name === ptrType$30.nil)) { */ case 1: - _r$1 = check.environment.lookup(name.Name); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$1 = $assertType(_r$1, ptrType$33, true); - ok = _tuple$1[1]; - $s = -1; return ok; + /* if (false) { */ case 1: + $r = assert(b.gotoTarget(name) === ptrType$66.nil); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 2: - $s = -1; return false; - /* */ } return; } var $f = {$blk: isNil, $c: true, $r, _r$1, _tuple, _tuple$1, check, e, name, ok, $s};return $f; + labels$1 = b.labels; + if (labels$1 === false) { + labels$1 = new $global.Map(); + b.labels = labels$1; + } + _key = name; (labels$1 || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: s }); + $s = -1; return; + /* */ } return; } var $f = {$blk: insert$2, $c: true, $r, _key, b, labels$1, name, s, $s};return $f; }; - $ptrType(Checker).prototype.caseTypes = function caseTypes(x, types$1, seen) { - var {T, Ts, _entry, _i, _i$1, _key, _key$1, _keys, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _size, _v, _v$1, check, dummy, e, other, seen, t, types$1, x, $s, $r, $c} = $restore(this, {x, types$1, seen}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - dummy = [dummy]; - T = $ifaceNil; - check = this; - dummy[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - _ref = types$1; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - e = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$1 = check.isNil(e); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (_r$1) { */ case 3: - T = $ifaceNil; - $r = check.expr(dummy[0], e); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 5; continue; - /* } else { */ case 4: - _r$2 = check.varType(e); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - T = _r$2; - if ($interfaceIsEqual(T, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { - _i++; - /* continue L; */ $s = 1; continue s; - } - /* } */ case 5: - _ref$1 = seen; - _i$1 = 0; - _keys = _ref$1 ? _ref$1.keys() : undefined; - _size = _ref$1 ? _ref$1.size : 0; - /* while (true) { */ case 9: - /* if (!(_i$1 < _size)) { break; } */ if(!(_i$1 < _size)) { $s = 10; continue; } - _key = _keys.next().value; - _entry = _ref$1.get(_key); - if (_entry === undefined) { - _i$1++; - /* continue; */ $s = 9; continue; - } - t = _entry.k; - other = _entry.v; - if ($interfaceIsEqual(T, $ifaceNil) && $interfaceIsEqual(t, $ifaceNil)) { _v = true; $s = 13; continue s; } - if (!(!($interfaceIsEqual(T, $ifaceNil)) && !($interfaceIsEqual(t, $ifaceNil)))) { _v$1 = false; $s = 14; continue s; } - _r$3 = Identical(T, t); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _v$1 = _r$3; case 14: - _v = _v$1; case 13: - /* */ if (_v) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (_v) { */ case 11: - Ts = "nil"; - /* */ if (!($interfaceIsEqual(T, $ifaceNil))) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (!($interfaceIsEqual(T, $ifaceNil))) { */ case 16: - _r$4 = TypeString(T, $methodVal(check, "qualifier")); /* */ $s = 18; case 18: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - Ts = _r$4; - /* } */ case 17: - $r = check.errorf(e, 113, "duplicate case %s in type switch", new sliceType$6([new $String(Ts)])); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.error(other, 113, "\tprevious case"); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - /* continue L; */ $s = 1; continue s; - /* } */ case 12: - _i$1++; - $s = 9; continue; - case 10: - _key$1 = T; (seen || $throwRuntimeError("assignment to entry in nil map")).set(Type.keyFor(_key$1), { k: _key$1, v: e }); - /* */ if (!(x === ptrType$62.nil) && !($interfaceIsEqual(T, $ifaceNil))) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if (!(x === ptrType$62.nil) && !($interfaceIsEqual(T, $ifaceNil))) { */ case 21: - $r = check.typeAssertion(e, x, T, true); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 22: - _i++; - $s = 1; continue; - case 2: - $s = -1; return T; - /* */ } return; } var $f = {$blk: caseTypes, $c: true, $r, T, Ts, _entry, _i, _i$1, _key, _key$1, _keys, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _size, _v, _v$1, check, dummy, e, other, seen, t, types$1, x, $s};return $f; + $ptrType(block).prototype.gotoTarget = function gotoTarget(name) { + var _entry, b, name, s, t; + b = this; + s = b; + while (true) { + if (!(!(s === ptrType$95.nil))) { break; } + t = (_entry = $mapIndex(s.labels,$String.keyFor(name)), _entry !== undefined ? _entry.v : ptrType$66.nil); + if (!(t === ptrType$66.nil)) { + return t; + } + s = s.parent; + } + return ptrType$66.nil; }; - $ptrType(Checker).prototype.stmt = function stmt(ctxt, s) { - var {T, Y, _1, _2, _3, _4, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$10, _ref$11, _ref$12, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _ref$9, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, _tuple$10, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, _v$2, _v$3, alt, c, cause, ch, check, clause, clause$1, clause$2, code, ctxt, expr, guard, guard$1, guard$2, i, i$1, i$2, ident$1, inner, inner$1, key, kind, lhs, lhs$1, lhs$2, lhs$3, lhs$4, lhsVars, msg, msg$1, n, name, obj, obj$1, obj$2, obj$3, ok, op, op$1, res, rhs, rhs$1, rhs$2, s, s$1, s$10, s$11, s$12, s$13, s$14, s$15, s$16, s$17, s$18, s$19, s$2, s$20, s$21, s$22, s$23, s$24, s$25, s$3, s$4, s$5, s$6, s$7, s$8, s$9, scopePos, scopePos$1, seen, seen$1, sx, t, t$1, typ$3, typ$4, u, u$1, uch, used, v, val, val$1, valid, vars, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $deferred, $r, $c} = $restore(this, {ctxt, s}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - ch = [ch]; + $ptrType(block).prototype.enclosingTarget = function enclosingTarget(name) { + var b, name, s, t; + b = this; + s = b; + while (true) { + if (!(!(s === ptrType$95.nil))) { break; } + t = s.lstmt; + if (!(t === ptrType$66.nil) && t.Label.Name === name) { + return t; + } + s = s.parent; + } + return ptrType$66.nil; + }; + $ptrType(Checker).prototype.blockBranches = function blockBranches(all, parent, lstmt, list$2) { + var {_i, _ref, _tmp, _tmp$1, all, b, badJumps, blockBranches$1, check, fwdJumps, jumpsOverVarDecl, list$2, lstmt, parent, recordVarDecl, s, stmtBranches, varDeclPos, $s, $r, $c} = $restore(this, {all, parent, lstmt, list$2}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + all = [all]; + b = [b]; + badJumps = [badJumps]; + blockBranches$1 = [blockBranches$1]; check = [check]; - val = [val]; - x = [x]; - x$1 = [x$1]; - x$2 = [x$2]; - x$3 = [x$3]; - x$4 = [x$4]; - x$5 = [x$5]; - x$6 = [x$6]; - x$7 = [x$7]; + fwdJumps = [fwdJumps]; + jumpsOverVarDecl = [jumpsOverVarDecl]; + lstmt = [lstmt]; + recordVarDecl = [recordVarDecl]; + stmtBranches = [stmtBranches]; + varDeclPos = [varDeclPos]; check[0] = this; - /* */ if (false) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (false) { */ case 1: - $deferred.push([(function(ch, check, val, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7) { return function Checker·stmt·func1(scope) { - var {p, scope, $s, $r, $c} = $restore(this, {scope}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = $recover(); - if (!($interfaceIsEqual(p, $ifaceNil))) { - $panic(p); - } - $r = assert(scope === check[0].environment.scope); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·stmt·func1, $c: true, $r, p, scope, $s};return $f; - }; })(ch, check, val, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7), [check[0].environment.scope]]); - /* } */ case 2: - $deferred.push([$methodVal(check[0], "processDelayed"), [check[0].delayed.$length]]); - inner = (ctxt & ~28) >>> 0; - _ref = s; - /* */ if ($assertType(_ref, ptrType$63, true)[1] || $assertType(_ref, ptrType$59, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$64, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$65, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$66, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType$67, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref, ptrType$68, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref, ptrType$69, true)[1]) { $s = 9; continue; } - /* */ if ($assertType(_ref, ptrType$70, true)[1]) { $s = 10; continue; } - /* */ if ($assertType(_ref, ptrType$71, true)[1]) { $s = 11; continue; } - /* */ if ($assertType(_ref, ptrType$72, true)[1]) { $s = 12; continue; } - /* */ if ($assertType(_ref, ptrType$73, true)[1]) { $s = 13; continue; } - /* */ if ($assertType(_ref, ptrType$74, true)[1]) { $s = 14; continue; } - /* */ if ($assertType(_ref, ptrType$75, true)[1]) { $s = 15; continue; } - /* */ if ($assertType(_ref, ptrType$76, true)[1]) { $s = 16; continue; } - /* */ if ($assertType(_ref, ptrType$77, true)[1]) { $s = 17; continue; } - /* */ if ($assertType(_ref, ptrType$78, true)[1]) { $s = 18; continue; } - /* */ if ($assertType(_ref, ptrType$79, true)[1]) { $s = 19; continue; } - /* */ if ($assertType(_ref, ptrType$80, true)[1]) { $s = 20; continue; } - /* */ $s = 21; continue; - /* if ($assertType(_ref, ptrType$63, true)[1] || $assertType(_ref, ptrType$59, true)[1]) { */ case 3: - s$1 = _ref; - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$64, true)[1]) { */ case 4: - s$2 = _ref.$val; - $r = check[0].declStmt(s$2.Decl); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$65, true)[1]) { */ case 5: - s$3 = _ref.$val; - check[0].environment.hasLabel = true; - $r = check[0].stmt(ctxt, s$3.Stmt); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$66, true)[1]) { */ case 6: - s$4 = _ref.$val; - x[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - _r$1 = check[0].rawExpr(x[0], s$4.X, $ifaceNil, false); /* */ $s = 25; case 25: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - kind = _r$1; - msg = ""; - code = 0; - _1 = x[0].mode; - /* */ if (_1 === (2)) { $s = 27; continue; } - /* */ if (_1 === (3)) { $s = 28; continue; } - /* */ $s = 29; continue; - /* if (_1 === (2)) { */ case 27: - msg = "must be called"; - code = 82; - $s = 30; continue; - /* } else if (_1 === (3)) { */ case 28: - msg = "is not an expression"; - code = 42; - $s = 30; continue; - /* } else { */ case 29: - /* */ if (kind === 2) { $s = 31; continue; } - /* */ $s = 32; continue; - /* if (kind === 2) { */ case 31: - $s = 33; case 33: return; - /* } */ case 32: - msg = "is not used"; - code = 100; - /* } */ case 30: - case 26: - $r = check[0].errorf(x[0], code, "%s %s", new sliceType$6([x[0], new $String(msg)])); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$67, true)[1]) { */ case 7: - s$5 = _ref.$val; - _tmp = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - _tmp$1 = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - ch[0] = $clone(_tmp, operand); - val[0] = $clone(_tmp$1, operand); - $r = check[0].expr(ch[0], s$5.Chan); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].expr(val[0], s$5.Value); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if ((ch[0].mode === 0) || (val[0].mode === 0)) { $s = 37; continue; } - /* */ $s = 38; continue; - /* if ((ch[0].mode === 0) || (val[0].mode === 0)) { */ case 37: - $s = 39; case 39: return; - /* } */ case 38: - _r$2 = coreType(ch[0].typ); /* */ $s = 40; case 40: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - u = _r$2; - /* */ if ($interfaceIsEqual(u, $ifaceNil)) { $s = 41; continue; } - /* */ $s = 42; continue; - /* if ($interfaceIsEqual(u, $ifaceNil)) { */ case 41: - _r$3 = inNode(s$5, s$5.Arrow); /* */ $s = 43; case 43: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $r = check[0].errorf((x$8 = _r$3, new x$8.constructor.elem(x$8)), 59, "invalid operation: cannot send to %s: no core type", new sliceType$6([ch[0]])); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 45; case 45: return; - /* } */ case 42: - _tuple = $assertType(u, ptrType$29, true); - uch = _tuple[0]; - /* */ if (uch === ptrType$29.nil) { $s = 46; continue; } - /* */ $s = 47; continue; - /* if (uch === ptrType$29.nil) { */ case 46: - _r$4 = inNode(s$5, s$5.Arrow); /* */ $s = 48; case 48: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $r = check[0].errorf((x$9 = _r$4, new x$9.constructor.elem(x$9)), 59, "invalid operation: cannot send to non-channel %s", new sliceType$6([ch[0]])); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 50; case 50: return; - /* } */ case 47: - /* */ if (uch.dir === 2) { $s = 51; continue; } - /* */ $s = 52; continue; - /* if (uch.dir === 2) { */ case 51: - _r$5 = inNode(s$5, s$5.Arrow); /* */ $s = 53; case 53: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - $r = check[0].errorf((x$10 = _r$5, new x$10.constructor.elem(x$10)), 59, "invalid operation: cannot send to receive-only channel %s", new sliceType$6([ch[0]])); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 55; case 55: return; - /* } */ case 52: - $r = check[0].assignment(val[0], uch.elem, "send"); /* */ $s = 56; case 56: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$68, true)[1]) { */ case 8: - s$6 = _ref.$val; - op = 0; - _2 = s$6.Tok; - /* */ if (_2 === (37)) { $s = 58; continue; } - /* */ if (_2 === (38)) { $s = 59; continue; } - /* */ $s = 60; continue; - /* if (_2 === (37)) { */ case 58: - op = 12; - $s = 61; continue; - /* } else if (_2 === (38)) { */ case 59: - op = 13; - $s = 61; continue; - /* } else { */ case 60: - _r$6 = inNode(s$6, s$6.TokPos); /* */ $s = 62; case 62: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - $r = check[0].errorf((x$11 = _r$6, new x$11.constructor.elem(x$11)), -1, "unknown inc/dec operation %s", new sliceType$6([new token.Token(s$6.Tok)])); /* */ $s = 63; case 63: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 64; case 64: return; - /* } */ case 61: - case 57: - x$1[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = check[0].expr(x$1[0], s$6.X); /* */ $s = 65; case 65: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (x$1[0].mode === 0) { $s = 66; continue; } - /* */ $s = 67; continue; - /* if (x$1[0].mode === 0) { */ case 66: - $s = 68; case 68: return; - /* } */ case 67: - _r$7 = allNumeric(x$1[0].typ); /* */ $s = 71; case 71: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - /* */ if (!_r$7) { $s = 69; continue; } - /* */ $s = 70; continue; - /* if (!_r$7) { */ case 69: - $r = check[0].errorf(s$6.X, 48, "invalid operation: %s%s (non-numeric type %s)", new sliceType$6([s$6.X, new token.Token(s$6.Tok), x$1[0].typ])); /* */ $s = 72; case 72: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 73; case 73: return; - /* } */ case 70: - _r$8 = s$6.X.Pos(); /* */ $s = 74; case 74: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - Y = new ast.BasicLit.ptr(_r$8, 5, "1"); - $r = check[0].binary(x$1[0], $ifaceNil, s$6.X, Y, op, s$6.TokPos); /* */ $s = 75; case 75: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (x$1[0].mode === 0) { $s = 76; continue; } - /* */ $s = 77; continue; - /* if (x$1[0].mode === 0) { */ case 76: - $s = 78; case 78: return; - /* } */ case 77: - _r$9 = check[0].assignVar(s$6.X, x$1[0]); /* */ $s = 79; case 79: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _r$9; - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$69, true)[1]) { */ case 9: - s$7 = _ref.$val; - _3 = s$7.Tok; - /* */ if ((_3 === (42)) || (_3 === (47))) { $s = 81; continue; } - /* */ $s = 82; continue; - /* if ((_3 === (42)) || (_3 === (47))) { */ case 81: - /* */ if (s$7.Lhs.$length === 0) { $s = 84; continue; } - /* */ $s = 85; continue; - /* if (s$7.Lhs.$length === 0) { */ case 84: - $r = check[0].error(s$7, -1, "missing lhs in assignment"); /* */ $s = 86; case 86: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 87; case 87: return; - /* } */ case 85: - /* */ if (s$7.Tok === 47) { $s = 88; continue; } - /* */ $s = 89; continue; - /* if (s$7.Tok === 47) { */ case 88: - _r$10 = inNode(s$7, s$7.TokPos); /* */ $s = 91; case 91: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - $r = check[0].shortVarDecl((x$12 = _r$10, new x$12.constructor.elem(x$12)), s$7.Lhs, s$7.Rhs); /* */ $s = 92; case 92: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 90; continue; - /* } else { */ case 89: - $r = check[0].assignVars(s$7.Lhs, s$7.Rhs); /* */ $s = 93; case 93: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 90: - $s = 83; continue; - /* } else { */ case 82: - /* */ if (!((s$7.Lhs.$length === 1)) || !((s$7.Rhs.$length === 1))) { $s = 94; continue; } - /* */ $s = 95; continue; - /* if (!((s$7.Lhs.$length === 1)) || !((s$7.Rhs.$length === 1))) { */ case 94: - _r$11 = inNode(s$7, s$7.TokPos); /* */ $s = 96; case 96: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - $r = check[0].errorf((x$13 = _r$11, new x$13.constructor.elem(x$13)), 20, "assignment operation %s requires single-valued expressions", new sliceType$6([new token.Token(s$7.Tok)])); /* */ $s = 97; case 97: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 98; case 98: return; - /* } */ case 95: - op$1 = assignOp(s$7.Tok); - /* */ if (op$1 === 0) { $s = 99; continue; } - /* */ $s = 100; continue; - /* if (op$1 === 0) { */ case 99: - $r = check[0].errorf(new atPos(((s$7.TokPos >> 0))), -1, "unknown assignment operation %s", new sliceType$6([new token.Token(s$7.Tok)])); /* */ $s = 101; case 101: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 102; case 102: return; - /* } */ case 100: - x$2[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = check[0].binary(x$2[0], $ifaceNil, (x$14 = s$7.Lhs, (0 >= x$14.$length ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + 0])), (x$15 = s$7.Rhs, (0 >= x$15.$length ? ($throwRuntimeError("index out of range"), undefined) : x$15.$array[x$15.$offset + 0])), op$1, s$7.TokPos); /* */ $s = 103; case 103: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (x$2[0].mode === 0) { $s = 104; continue; } - /* */ $s = 105; continue; - /* if (x$2[0].mode === 0) { */ case 104: - $s = 106; case 106: return; - /* } */ case 105: - _r$12 = check[0].assignVar((x$16 = s$7.Lhs, (0 >= x$16.$length ? ($throwRuntimeError("index out of range"), undefined) : x$16.$array[x$16.$offset + 0])), x$2[0]); /* */ $s = 107; case 107: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _r$12; - /* } */ case 83: - case 80: - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$70, true)[1]) { */ case 10: - s$8 = _ref.$val; - $r = check[0].suspendedCall("go", s$8.Call); /* */ $s = 108; case 108: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$71, true)[1]) { */ case 11: - s$9 = _ref.$val; - $r = check[0].suspendedCall("defer", s$9.Call); /* */ $s = 109; case 109: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$72, true)[1]) { */ case 12: - s$10 = _ref.$val; - res = check[0].environment.sig.results; - /* */ if ((s$10.Results.$length === 0) && res.Len() > 0 && !((x$17 = res.vars, (0 >= x$17.$length ? ($throwRuntimeError("index out of range"), undefined) : x$17.$array[x$17.$offset + 0])).object.name === "")) { $s = 110; continue; } - /* */ $s = 111; continue; - /* if ((s$10.Results.$length === 0) && res.Len() > 0 && !((x$17 = res.vars, (0 >= x$17.$length ? ($throwRuntimeError("index out of range"), undefined) : x$17.$array[x$17.$offset + 0])).object.name === "")) { */ case 110: - _ref$1 = res.vars; - _i = 0; - /* while (true) { */ case 113: - /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 114; continue; } - obj = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); - _r$13 = check[0].environment.lookup(obj.object.name); /* */ $s = 115; case 115: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - alt = _r$13; - /* */ if (!($interfaceIsEqual(alt, $ifaceNil)) && !($interfaceIsEqual(alt, obj))) { $s = 116; continue; } - /* */ $s = 117; continue; - /* if (!($interfaceIsEqual(alt, $ifaceNil)) && !($interfaceIsEqual(alt, obj))) { */ case 116: - $r = check[0].errorf(s$10, 104, "result parameter %s not in scope at return", new sliceType$6([new $String(obj.object.name)])); /* */ $s = 118; case 118: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].errorf(alt, 104, "\tinner declaration of %s", new sliceType$6([obj])); /* */ $s = 119; case 119: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 117: - _i++; - $s = 113; continue; - case 114: - $s = 112; continue; - /* } else { */ case 111: - lhs = sliceType$10.nil; - if (res.Len() > 0) { - lhs = res.vars; - } - $r = check[0].initVars(lhs, s$10.Results, s$10); /* */ $s = 120; case 120: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 112: - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$73, true)[1]) { */ case 13: - s$11 = _ref.$val; - /* */ if (!(s$11.Label === ptrType$30.nil)) { $s = 121; continue; } - /* */ $s = 122; continue; - /* if (!(s$11.Label === ptrType$30.nil)) { */ case 121: - check[0].environment.hasLabel = true; - $s = 123; case 123: return; - /* } */ case 122: - _4 = s$11.Tok; - /* */ if (_4 === (61)) { $s = 125; continue; } - /* */ if (_4 === (65)) { $s = 126; continue; } - /* */ if (_4 === (69)) { $s = 127; continue; } - /* */ $s = 128; continue; - /* if (_4 === (61)) { */ case 125: - /* */ if (((ctxt & 1) >>> 0) === 0) { $s = 130; continue; } - /* */ $s = 131; continue; - /* if (((ctxt & 1) >>> 0) === 0) { */ case 130: - $r = check[0].error(s$11, 110, "break not in for, switch, or select statement"); /* */ $s = 132; case 132: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 131: - $s = 129; continue; - /* } else if (_4 === (65)) { */ case 126: - /* */ if (((ctxt & 2) >>> 0) === 0) { $s = 133; continue; } - /* */ $s = 134; continue; - /* if (((ctxt & 2) >>> 0) === 0) { */ case 133: - $r = check[0].error(s$11, 111, "continue not in for statement"); /* */ $s = 135; case 135: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 134: - $s = 129; continue; - /* } else if (_4 === (69)) { */ case 127: - /* */ if (((ctxt & 4) >>> 0) === 0) { $s = 136; continue; } - /* */ $s = 137; continue; - /* if (((ctxt & 4) >>> 0) === 0) { */ case 136: - msg$1 = ""; - if (!((((ctxt & 8) >>> 0) === 0))) { - msg$1 = "cannot fallthrough final case in switch"; - } else if (!((((ctxt & 16) >>> 0) === 0))) { - msg$1 = "cannot fallthrough in type switch"; - } else { - msg$1 = "fallthrough statement out of place"; + b[0] = new block.ptr(parent, lstmt[0], false); + varDeclPos[0] = 0; + _tmp = sliceType$26.nil; + _tmp$1 = sliceType$26.nil; + fwdJumps[0] = _tmp; + badJumps[0] = _tmp$1; + recordVarDecl[0] = (function(all, b, badJumps, blockBranches$1, check, fwdJumps, jumpsOverVarDecl, lstmt, recordVarDecl, stmtBranches, varDeclPos) { return function Checker·blockBranches·func1(pos) { + var pos; + varDeclPos[0] = pos; + badJumps[0] = $appendSlice($subslice(badJumps[0], 0, 0), fwdJumps[0]); + }; })(all, b, badJumps, blockBranches$1, check, fwdJumps, jumpsOverVarDecl, lstmt, recordVarDecl, stmtBranches, varDeclPos); + jumpsOverVarDecl[0] = (function(all, b, badJumps, blockBranches$1, check, fwdJumps, jumpsOverVarDecl, lstmt, recordVarDecl, stmtBranches, varDeclPos) { return function Checker·blockBranches·func2(jmp) { + var _i, _ref, bad, jmp; + if (new token.Pos(varDeclPos[0]).IsValid()) { + _ref = badJumps[0]; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + bad = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (jmp === bad) { + return true; } - $r = check[0].error(s$11, 112, msg$1); /* */ $s = 138; case 138: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 137: - $s = 129; continue; - /* } else { */ case 128: - $r = check[0].errorf(s$11, -1, "branch statement: %s", new sliceType$6([new token.Token(s$11.Tok)])); /* */ $s = 139; case 139: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 129: - case 124: - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$74, true)[1]) { */ case 14: - s$12 = _ref.$val; - $r = check[0].openScope(s$12, "block"); /* */ $s = 140; case 140: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(check[0], "closeScope"), []]); - $r = check[0].stmtList(inner, s$12.List); /* */ $s = 141; case 141: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$75, true)[1]) { */ case 15: - s$13 = _ref.$val; - $r = check[0].openScope(s$13, "if"); /* */ $s = 142; case 142: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(check[0], "closeScope"), []]); - $r = check[0].simpleStmt(s$13.Init); /* */ $s = 143; case 143: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x$3[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = check[0].expr(x$3[0], s$13.Cond); /* */ $s = 144; case 144: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (!(!((x$3[0].mode === 0)))) { _v = false; $s = 147; continue s; } - _r$14 = allBoolean(x$3[0].typ); /* */ $s = 148; case 148: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - _v = !_r$14; case 147: - /* */ if (_v) { $s = 145; continue; } - /* */ $s = 146; continue; - /* if (_v) { */ case 145: - $r = check[0].error(s$13.Cond, 105, "non-boolean condition in if statement"); /* */ $s = 149; case 149: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 146: - $r = check[0].stmt(inner, s$13.Body); /* */ $s = 150; case 150: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _ref$2 = s$13.Else; - /* */ if (_ref$2 === $ifaceNil || $assertType(_ref$2, ptrType$63, true)[1]) { $s = 151; continue; } - /* */ if ($assertType(_ref$2, ptrType$75, true)[1] || $assertType(_ref$2, ptrType$74, true)[1]) { $s = 152; continue; } - /* */ $s = 153; continue; - /* if (_ref$2 === $ifaceNil || $assertType(_ref$2, ptrType$63, true)[1]) { */ case 151: - $s = 154; continue; - /* } else if ($assertType(_ref$2, ptrType$75, true)[1] || $assertType(_ref$2, ptrType$74, true)[1]) { */ case 152: - $r = check[0].stmt(inner, s$13.Else); /* */ $s = 155; case 155: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 154; continue; - /* } else { */ case 153: - $r = check[0].error(s$13.Else, -1, "invalid else branch in if statement"); /* */ $s = 156; case 156: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 154: - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$76, true)[1]) { */ case 16: - s$14 = _ref.$val; - inner = (inner | (1)) >>> 0; - $r = check[0].openScope(s$14, "switch"); /* */ $s = 157; case 157: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(check[0], "closeScope"), []]); - $r = check[0].simpleStmt(s$14.Init); /* */ $s = 158; case 158: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x$4[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - /* */ if (!($interfaceIsEqual(s$14.Tag, $ifaceNil))) { $s = 159; continue; } - /* */ $s = 160; continue; - /* if (!($interfaceIsEqual(s$14.Tag, $ifaceNil))) { */ case 159: - $r = check[0].expr(x$4[0], s$14.Tag); /* */ $s = 162; case 162: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].assignment(x$4[0], $ifaceNil, "switch expression"); /* */ $s = 163; case 163: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (!(!((x$4[0].mode === 0)))) { _v$2 = false; $s = 167; continue s; } - _r$15 = Comparable(x$4[0].typ); /* */ $s = 168; case 168: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - _v$2 = !_r$15; case 167: - if (!(_v$2)) { _v$1 = false; $s = 166; continue s; } - _r$16 = hasNil(x$4[0].typ); /* */ $s = 169; case 169: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - _v$1 = !_r$16; case 166: - /* */ if (_v$1) { $s = 164; continue; } - /* */ $s = 165; continue; - /* if (_v$1) { */ case 164: - $r = check[0].errorf(x$4[0], 117, "cannot switch on %s (%s is not comparable)", new sliceType$6([x$4[0], x$4[0].typ])); /* */ $s = 170; case 170: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x$4[0].mode = 0; - /* } */ case 165: - $s = 161; continue; - /* } else { */ case 160: - x$4[0].mode = 4; - x$4[0].typ = (1 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 1]); - x$4[0].val = constant.MakeBool(true); - x$4[0].expr = new ast.Ident.ptr(s$14.Body.Lbrace, "true", ptrType$81.nil); - /* } */ case 161: - $r = check[0].multipleDefaults(s$14.Body.List); /* */ $s = 171; case 171: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - seen = new $global.Map(); - _ref$3 = s$14.Body.List; - _i$1 = 0; - /* while (true) { */ case 172: - /* if (!(_i$1 < _ref$3.$length)) { break; } */ if(!(_i$1 < _ref$3.$length)) { $s = 173; continue; } - i = _i$1; - c = ((_i$1 < 0 || _i$1 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$1]); - _tuple$1 = $assertType(c, ptrType$60, true); - clause = _tuple$1[0]; - /* */ if (clause === ptrType$60.nil) { $s = 174; continue; } - /* */ $s = 175; continue; - /* if (clause === ptrType$60.nil) { */ case 174: - $r = check[0].error(c, -1, "incorrect expression switch case"); /* */ $s = 176; case 176: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$1++; - /* continue; */ $s = 172; continue; - /* } */ case 175: - $r = check[0].caseValues(x$4[0], clause.List, seen); /* */ $s = 177; case 177: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].openScope(clause, "case"); /* */ $s = 178; case 178: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - inner$1 = inner; - if ((i + 1 >> 0) < s$14.Body.List.$length) { - inner$1 = (inner$1 | (4)) >>> 0; - } else { - inner$1 = (inner$1 | (8)) >>> 0; - } - $r = check[0].stmtList(inner$1, clause.Body); /* */ $s = 179; case 179: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - check[0].closeScope(); - _i$1++; - $s = 172; continue; - case 173: - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$77, true)[1]) { */ case 17: - s$15 = _ref.$val; - inner = (inner | (17)) >>> 0; - $r = check[0].openScope(s$15, "type switch"); /* */ $s = 180; case 180: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(check[0], "closeScope"), []]); - $r = check[0].simpleStmt(s$15.Init); /* */ $s = 181; case 181: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - lhs$1 = ptrType$30.nil; - rhs = $ifaceNil; - _ref$4 = s$15.Assign; - /* */ if ($assertType(_ref$4, ptrType$66, true)[1]) { $s = 182; continue; } - /* */ if ($assertType(_ref$4, ptrType$69, true)[1]) { $s = 183; continue; } - /* */ $s = 184; continue; - /* if ($assertType(_ref$4, ptrType$66, true)[1]) { */ case 182: - guard = _ref$4.$val; - rhs = guard.X; - $s = 185; continue; - /* } else if ($assertType(_ref$4, ptrType$69, true)[1]) { */ case 183: - guard$1 = _ref$4.$val; - /* */ if (!((guard$1.Lhs.$length === 1)) || !((guard$1.Tok === 47)) || !((guard$1.Rhs.$length === 1))) { $s = 186; continue; } - /* */ $s = 187; continue; - /* if (!((guard$1.Lhs.$length === 1)) || !((guard$1.Tok === 47)) || !((guard$1.Rhs.$length === 1))) { */ case 186: - $r = check[0].error(s$15, -1, "incorrect form of type switch guard"); /* */ $s = 188; case 188: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 189; case 189: return; - /* } */ case 187: - _tuple$2 = $assertType((x$18 = guard$1.Lhs, (0 >= x$18.$length ? ($throwRuntimeError("index out of range"), undefined) : x$18.$array[x$18.$offset + 0])), ptrType$30, true); - lhs$1 = _tuple$2[0]; - /* */ if (lhs$1 === ptrType$30.nil) { $s = 190; continue; } - /* */ $s = 191; continue; - /* if (lhs$1 === ptrType$30.nil) { */ case 190: - $r = check[0].error(s$15, -1, "incorrect form of type switch guard"); /* */ $s = 192; case 192: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 193; case 193: return; - /* } */ case 191: - /* */ if (lhs$1.Name === "_") { $s = 194; continue; } - /* */ $s = 195; continue; - /* if (lhs$1.Name === "_") { */ case 194: - $r = check[0].softErrorf(lhs$1, 19, "no new variable on left side of :=", sliceType$6.nil); /* */ $s = 197; case 197: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - lhs$1 = ptrType$30.nil; - $s = 196; continue; - /* } else { */ case 195: - $r = check[0].recordDef(lhs$1, $ifaceNil); /* */ $s = 198; case 198: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 196: - rhs = (x$19 = guard$1.Rhs, (0 >= x$19.$length ? ($throwRuntimeError("index out of range"), undefined) : x$19.$array[x$19.$offset + 0])); - $s = 185; continue; - /* } else { */ case 184: - guard$2 = _ref$4; - $r = check[0].error(s$15, -1, "incorrect form of type switch guard"); /* */ $s = 199; case 199: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 200; case 200: return; - /* } */ case 185: - _tuple$3 = $assertType(rhs, ptrType$82, true); - expr = _tuple$3[0]; - /* */ if (expr === ptrType$82.nil || !($interfaceIsEqual(expr.Type, $ifaceNil))) { $s = 201; continue; } - /* */ $s = 202; continue; - /* if (expr === ptrType$82.nil || !($interfaceIsEqual(expr.Type, $ifaceNil))) { */ case 201: - $r = check[0].error(s$15, -1, "incorrect form of type switch guard"); /* */ $s = 203; case 203: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 204; case 204: return; - /* } */ case 202: - x$5[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = check[0].expr(x$5[0], expr.X); /* */ $s = 205; case 205: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (x$5[0].mode === 0) { $s = 206; continue; } - /* */ $s = 207; continue; - /* if (x$5[0].mode === 0) { */ case 206: - $s = 208; case 208: return; - /* } */ case 207: - sx = ptrType$62.nil; - /* */ if (isTypeParam(x$5[0].typ)) { $s = 209; continue; } - /* */ $s = 210; continue; - /* if (isTypeParam(x$5[0].typ)) { */ case 209: - $r = check[0].errorf(x$5[0], 116, "cannot use type switch on type parameter value %s", new sliceType$6([x$5[0]])); /* */ $s = 212; case 212: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 211; continue; - /* } else { */ case 210: - _r$17 = under(x$5[0].typ); /* */ $s = 213; case 213: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - _tuple$4 = $assertType(_r$17, ptrType$13, true); - ok = _tuple$4[1]; - /* */ if (ok) { $s = 214; continue; } - /* */ $s = 215; continue; - /* if (ok) { */ case 214: - sx = x$5[0]; - $s = 216; continue; - /* } else { */ case 215: - $r = check[0].errorf(x$5[0], 116, "%s is not an interface", new sliceType$6([x$5[0]])); /* */ $s = 217; case 217: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 216: - /* } */ case 211: - $r = check[0].multipleDefaults(s$15.Body.List); /* */ $s = 218; case 218: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - lhsVars = sliceType$10.nil; - seen$1 = new $global.Map(); - _ref$5 = s$15.Body.List; - _i$2 = 0; - /* while (true) { */ case 219: - /* if (!(_i$2 < _ref$5.$length)) { break; } */ if(!(_i$2 < _ref$5.$length)) { $s = 220; continue; } - s$20 = ((_i$2 < 0 || _i$2 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$2]); - _tuple$5 = $assertType(s$20, ptrType$60, true); - clause$1 = _tuple$5[0]; - /* */ if (clause$1 === ptrType$60.nil) { $s = 221; continue; } - /* */ $s = 222; continue; - /* if (clause$1 === ptrType$60.nil) { */ case 221: - $r = check[0].error(s$20, -1, "incorrect type switch case"); /* */ $s = 223; case 223: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$2++; - /* continue; */ $s = 219; continue; - /* } */ case 222: - _r$18 = check[0].caseTypes(sx, clause$1.List, seen$1); /* */ $s = 224; case 224: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - T = _r$18; - $r = check[0].openScope(clause$1, "case"); /* */ $s = 225; case 225: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!(lhs$1 === ptrType$30.nil)) { $s = 226; continue; } - /* */ $s = 227; continue; - /* if (!(lhs$1 === ptrType$30.nil)) { */ case 226: - if (!((clause$1.List.$length === 1)) || $interfaceIsEqual(T, $ifaceNil)) { - T = x$5[0].typ; - } - obj$1 = NewVar(lhs$1.Pos(), check[0].pkg, lhs$1.Name, T); - scopePos = clause$1.Pos() + 7 >> 0; - n = clause$1.List.$length; - /* */ if (n > 0) { $s = 228; continue; } - /* */ $s = 229; continue; - /* if (n > 0) { */ case 228: - _r$19 = (x$20 = clause$1.List, x$21 = n - 1 >> 0, ((x$21 < 0 || x$21 >= x$20.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$20.$array[x$20.$offset + x$21])).End(); /* */ $s = 230; case 230: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - scopePos = _r$19; - /* } */ case 229: - $r = check[0].declare(check[0].environment.scope, ptrType$30.nil, obj$1, scopePos); /* */ $s = 231; case 231: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].recordImplicit(clause$1, obj$1); /* */ $s = 232; case 232: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - lhsVars = $append(lhsVars, obj$1); - /* } */ case 227: - $r = check[0].stmtList(inner, clause$1.Body); /* */ $s = 233; case 233: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - check[0].closeScope(); - _i$2++; - $s = 219; continue; - case 220: - /* */ if (!(lhs$1 === ptrType$30.nil)) { $s = 234; continue; } - /* */ $s = 235; continue; - /* if (!(lhs$1 === ptrType$30.nil)) { */ case 234: - used = false; - _ref$6 = lhsVars; - _i$3 = 0; - while (true) { - if (!(_i$3 < _ref$6.$length)) { break; } - v = ((_i$3 < 0 || _i$3 >= _ref$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$6.$array[_ref$6.$offset + _i$3]); - if (v.used) { - used = true; - } - v.used = true; - _i$3++; - } - /* */ if (!used) { $s = 236; continue; } - /* */ $s = 237; continue; - /* if (!used) { */ case 236: - $r = check[0].softErrorf(lhs$1, 101, "%s declared and not used", new sliceType$6([new $String(lhs$1.Name)])); /* */ $s = 238; case 238: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 237: - /* } */ case 235: - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$78, true)[1]) { */ case 18: - s$16 = _ref.$val; - inner = (inner | (1)) >>> 0; - $r = check[0].multipleDefaults(s$16.Body.List); /* */ $s = 239; case 239: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _ref$7 = s$16.Body.List; - _i$4 = 0; - /* while (true) { */ case 240: - /* if (!(_i$4 < _ref$7.$length)) { break; } */ if(!(_i$4 < _ref$7.$length)) { $s = 241; continue; } - s$21 = ((_i$4 < 0 || _i$4 >= _ref$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$7.$array[_ref$7.$offset + _i$4]); - _tuple$6 = $assertType(s$21, ptrType$61, true); - clause$2 = _tuple$6[0]; - if (clause$2 === ptrType$61.nil) { - _i$4++; - /* continue; */ $s = 240; continue; - } - valid = false; - rhs$1 = $ifaceNil; - _ref$8 = clause$2.Comm; - if (_ref$8 === $ifaceNil || $assertType(_ref$8, ptrType$67, true)[1]) { - s$22 = _ref$8; - valid = true; - } else if ($assertType(_ref$8, ptrType$69, true)[1]) { - s$23 = _ref$8.$val; - if (s$23.Rhs.$length === 1) { - rhs$1 = (x$22 = s$23.Rhs, (0 >= x$22.$length ? ($throwRuntimeError("index out of range"), undefined) : x$22.$array[x$22.$offset + 0])); - } - } else if ($assertType(_ref$8, ptrType$66, true)[1]) { - s$24 = _ref$8.$val; - rhs$1 = s$24.X; - } - if (!($interfaceIsEqual(rhs$1, $ifaceNil))) { - _tuple$7 = $assertType(unparen(rhs$1), ptrType$20, true); - x$23 = _tuple$7[0]; - if (!(x$23 === ptrType$20.nil) && (x$23.Op === 36)) { - valid = true; + _i++; } } - /* */ if (!valid) { $s = 242; continue; } - /* */ $s = 243; continue; - /* if (!valid) { */ case 242: - $r = check[0].error(clause$2.Comm, 118, "select case must be send or receive (possibly with assignment)"); /* */ $s = 244; case 244: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$4++; - /* continue; */ $s = 240; continue; - /* } */ case 243: - $r = check[0].openScope(s$21, "case"); /* */ $s = 245; case 245: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!($interfaceIsEqual(clause$2.Comm, $ifaceNil))) { $s = 246; continue; } - /* */ $s = 247; continue; - /* if (!($interfaceIsEqual(clause$2.Comm, $ifaceNil))) { */ case 246: - $r = check[0].stmt(inner, clause$2.Comm); /* */ $s = 248; case 248: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 247: - $r = check[0].stmtList(inner, clause$2.Body); /* */ $s = 249; case 249: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - check[0].closeScope(); - _i$4++; - $s = 240; continue; - case 241: - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$79, true)[1]) { */ case 19: - s$17 = _ref.$val; - inner = (inner | (3)) >>> 0; - $r = check[0].openScope(s$17, "for"); /* */ $s = 250; case 250: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(check[0], "closeScope"), []]); - $r = check[0].simpleStmt(s$17.Init); /* */ $s = 251; case 251: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!($interfaceIsEqual(s$17.Cond, $ifaceNil))) { $s = 252; continue; } - /* */ $s = 253; continue; - /* if (!($interfaceIsEqual(s$17.Cond, $ifaceNil))) { */ case 252: - x$6[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = check[0].expr(x$6[0], s$17.Cond); /* */ $s = 254; case 254: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (!(!((x$6[0].mode === 0)))) { _v$3 = false; $s = 257; continue s; } - _r$20 = allBoolean(x$6[0].typ); /* */ $s = 258; case 258: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - _v$3 = !_r$20; case 257: - /* */ if (_v$3) { $s = 255; continue; } - /* */ $s = 256; continue; - /* if (_v$3) { */ case 255: - $r = check[0].error(s$17.Cond, 105, "non-boolean condition in for statement"); /* */ $s = 259; case 259: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 256: - /* } */ case 253: - $r = check[0].simpleStmt(s$17.Post); /* */ $s = 260; case 260: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _tuple$8 = $assertType(s$17.Post, ptrType$69, true); - s$25 = _tuple$8[0]; - /* */ if (!(s$25 === ptrType$69.nil) && (s$25.Tok === 47)) { $s = 261; continue; } - /* */ $s = 262; continue; - /* if (!(s$25 === ptrType$69.nil) && (s$25.Tok === 47)) { */ case 261: - $r = check[0].softErrorf(s$25, 106, "cannot declare in post statement", sliceType$6.nil); /* */ $s = 263; case 263: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].use(s$25.Lhs); /* */ $s = 264; case 264: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 262: - $r = check[0].stmt(inner, s$17.Body); /* */ $s = 265; case 265: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$80, true)[1]) { */ case 20: - s$18 = _ref.$val; - inner = (inner | (3)) >>> 0; - x$7[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = check[0].expr(x$7[0], s$18.X); /* */ $s = 266; case 266: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _tmp$2 = $ifaceNil; - _tmp$3 = $ifaceNil; - key = _tmp$2; - val$1 = _tmp$3; - /* */ if (!((x$7[0].mode === 0))) { $s = 267; continue; } - /* */ $s = 268; continue; - /* if (!((x$7[0].mode === 0))) { */ case 267: - cause = ""; - _r$21 = coreType(x$7[0].typ); /* */ $s = 269; case 269: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } - u$1 = _r$21; - _ref$9 = u$1; - /* */ if (_ref$9 === $ifaceNil) { $s = 270; continue; } - /* */ if ($assertType(_ref$9, ptrType$29, true)[1]) { $s = 271; continue; } - /* */ $s = 272; continue; - /* if (_ref$9 === $ifaceNil) { */ case 270: - t = _ref$9; - _r$22 = check[0].sprintf("%s has no core type", new sliceType$6([x$7[0].typ])); /* */ $s = 273; case 273: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - cause = _r$22; - $s = 272; continue; - /* } else if ($assertType(_ref$9, ptrType$29, true)[1]) { */ case 271: - t$1 = _ref$9.$val; - /* */ if (!($interfaceIsEqual(s$18.Value, $ifaceNil))) { $s = 274; continue; } - /* */ $s = 275; continue; - /* if (!($interfaceIsEqual(s$18.Value, $ifaceNil))) { */ case 274: - $r = check[0].softErrorf(s$18.Value, 108, "range over %s permits only one iteration variable", new sliceType$6([x$7[0]])); /* */ $s = 276; case 276: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 275: - if (t$1.dir === 1) { - cause = "receive from send-only channel"; - } - /* } */ case 272: - _r$23 = rangeKeyVal(u$1); /* */ $s = 277; case 277: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _tuple$9 = _r$23; - key = _tuple$9[0]; - val$1 = _tuple$9[1]; - /* */ if ($interfaceIsEqual(key, $ifaceNil) || !(cause === "")) { $s = 278; continue; } - /* */ $s = 279; continue; - /* if ($interfaceIsEqual(key, $ifaceNil) || !(cause === "")) { */ case 278: - /* */ if (cause === "") { $s = 280; continue; } - /* */ $s = 281; continue; - /* if (cause === "") { */ case 280: - $r = check[0].softErrorf(x$7[0], 109, "cannot range over %s", new sliceType$6([x$7[0]])); /* */ $s = 283; case 283: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 282; continue; - /* } else { */ case 281: - $r = check[0].softErrorf(x$7[0], 109, "cannot range over %s (%s)", new sliceType$6([x$7[0], new $String(cause)])); /* */ $s = 284; case 284: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 282: - /* } */ case 279: - /* } */ case 268: - $r = check[0].openScope(s$18, "range"); /* */ $s = 285; case 285: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(check[0], "closeScope"), []]); - lhs$2 = $toNativeArray($kindInterface, [s$18.Key, s$18.Value]); - rhs$2 = $toNativeArray($kindInterface, [key, val$1]); - /* */ if (s$18.Tok === 47) { $s = 286; continue; } - /* */ $s = 287; continue; - /* if (s$18.Tok === 47) { */ case 286: - vars = sliceType$10.nil; - _ref$10 = lhs$2; - _i$5 = 0; - /* while (true) { */ case 289: - /* if (!(_i$5 < 2)) { break; } */ if(!(_i$5 < 2)) { $s = 290; continue; } - i$1 = _i$5; - lhs$3 = ((_i$5 < 0 || _i$5 >= _ref$10.length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$10[_i$5]); - if ($interfaceIsEqual(lhs$3, $ifaceNil)) { - _i$5++; - /* continue; */ $s = 289; continue; - } - obj$2 = ptrType$16.nil; - _tuple$10 = $assertType(lhs$3, ptrType$30, true); - ident$1 = _tuple$10[0]; - /* */ if (!(ident$1 === ptrType$30.nil)) { $s = 291; continue; } - /* */ $s = 292; continue; - /* if (!(ident$1 === ptrType$30.nil)) { */ case 291: - name = ident$1.Name; - obj$2 = NewVar(ident$1.Pos(), check[0].pkg, name, $ifaceNil); - $r = check[0].recordDef(ident$1, obj$2); /* */ $s = 294; case 294: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (!(name === "_")) { - vars = $append(vars, obj$2); - } - $s = 293; continue; - /* } else { */ case 292: - $r = check[0].errorf(lhs$3, -1, "cannot declare %s", new sliceType$6([lhs$3])); /* */ $s = 295; case 295: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$24 = lhs$3.Pos(); /* */ $s = 296; case 296: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - _r$25 = NewVar(_r$24, check[0].pkg, "_", $ifaceNil); /* */ $s = 297; case 297: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - obj$2 = _r$25; - /* } */ case 293: - typ$3 = ((i$1 < 0 || i$1 >= rhs$2.length) ? ($throwRuntimeError("index out of range"), undefined) : rhs$2[i$1]); - /* */ if (!($interfaceIsEqual(typ$3, $ifaceNil))) { $s = 298; continue; } - /* */ $s = 299; continue; - /* if (!($interfaceIsEqual(typ$3, $ifaceNil))) { */ case 298: - x$7[0].mode = 7; - x$7[0].expr = lhs$3; - x$7[0].typ = typ$3; - _r$26 = check[0].initVar(obj$2, x$7[0], "range clause"); /* */ $s = 301; case 301: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - _r$26; - $s = 300; continue; - /* } else { */ case 299: - obj$2.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - obj$2.used = true; - /* } */ case 300: - _i$5++; - $s = 289; continue; - case 290: - /* */ if (vars.$length > 0) { $s = 302; continue; } - /* */ $s = 303; continue; - /* if (vars.$length > 0) { */ case 302: - scopePos$1 = s$18.Body.Pos(); - _ref$11 = vars; - _i$6 = 0; - /* while (true) { */ case 305: - /* if (!(_i$6 < _ref$11.$length)) { break; } */ if(!(_i$6 < _ref$11.$length)) { $s = 306; continue; } - obj$3 = ((_i$6 < 0 || _i$6 >= _ref$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$11.$array[_ref$11.$offset + _i$6]); - $r = check[0].declare(check[0].environment.scope, ptrType$30.nil, obj$3, scopePos$1); /* */ $s = 307; case 307: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$6++; - $s = 305; continue; - case 306: - $s = 304; continue; - /* } else { */ case 303: - _r$27 = inNode(s$18, s$18.TokPos); /* */ $s = 308; case 308: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - $r = check[0].error((x$24 = _r$27, new x$24.constructor.elem(x$24)), 19, "no new variables on left side of :="); /* */ $s = 309; case 309: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 304: - $s = 288; continue; - /* } else { */ case 287: - _ref$12 = lhs$2; - _i$7 = 0; - /* while (true) { */ case 310: - /* if (!(_i$7 < 2)) { break; } */ if(!(_i$7 < 2)) { $s = 311; continue; } - i$2 = _i$7; - lhs$4 = ((_i$7 < 0 || _i$7 >= _ref$12.length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$12[_i$7]); - if ($interfaceIsEqual(lhs$4, $ifaceNil)) { - _i$7++; - /* continue; */ $s = 310; continue; + return false; + }; })(all, b, badJumps, blockBranches$1, check, fwdJumps, jumpsOverVarDecl, lstmt, recordVarDecl, stmtBranches, varDeclPos); + blockBranches$1[0] = (function(all, b, badJumps, blockBranches$1, check, fwdJumps, jumpsOverVarDecl, lstmt, recordVarDecl, stmtBranches, varDeclPos) { return function Checker·blockBranches·func3(lstmt$1, list$3) { + var {_arg, _arg$1, _r, list$3, lstmt$1, $s, $r, $c} = $restore(this, {lstmt$1, list$3}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _arg = fwdJumps[0]; + _r = check[0].blockBranches(all[0], b[0], lstmt$1, list$3); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = _r; + fwdJumps[0] = $appendSlice(_arg, _arg$1); + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·blockBranches·func3, $c: true, $r, _arg, _arg$1, _r, list$3, lstmt$1, $s};return $f; + }; })(all, b, badJumps, blockBranches$1, check, fwdJumps, jumpsOverVarDecl, lstmt, recordVarDecl, stmtBranches, varDeclPos); + stmtBranches[0] = $throwNilPointerError; + stmtBranches[0] = (function(all, b, badJumps, blockBranches$1, check, fwdJumps, jumpsOverVarDecl, lstmt, recordVarDecl, stmtBranches, varDeclPos) { return function Checker·blockBranches·func4(s) { + var {_1, _arg, _arg$1, _arg$2, _i, _r, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _ref$2, _ref$3, _tuple, alt, d, i, jmp, lbl, name, name$1, obj, s, s$1, s$10, s$11, s$12, s$13, s$2, s$3, s$4, s$5, s$6, s$7, s$8, s$9, t, t$1, valid, valid$1, $s, $r, $c} = $restore(this, {s}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref = s; + /* */ if ($assertType(_ref, ptrType$65, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$66, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$74, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$70, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$75, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$76, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$61, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref, ptrType$77, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref, ptrType$78, true)[1]) { $s = 9; continue; } + /* */ if ($assertType(_ref, ptrType$62, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref, ptrType$79, true)[1]) { $s = 11; continue; } + /* */ if ($assertType(_ref, ptrType$80, true)[1]) { $s = 12; continue; } + /* */ if ($assertType(_ref, ptrType$81, true)[1]) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if ($assertType(_ref, ptrType$65, true)[1]) { */ case 1: + s$1 = _ref.$val; + _tuple = $assertType(s$1.Decl, ptrType$96, true); + d = _tuple[0]; + /* */ if (!(d === ptrType$96.nil) && (d.Tok === 85)) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (!(d === ptrType$96.nil) && (d.Tok === 85)) { */ case 15: + $r = recordVarDecl[0](d.Pos()); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 16: + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$66, true)[1]) { */ case 2: + s$2 = _ref.$val; + name = s$2.Label.Name; + /* */ if (!(name === "_")) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (!(name === "_")) { */ case 18: + lbl = NewLabel(s$2.Label.Pos(), check[0].pkg, name); + _r = all[0].Insert(lbl); /* */ $s = 20; case 20: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + alt = _r; + /* */ if (!($interfaceIsEqual(alt, $ifaceNil))) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (!($interfaceIsEqual(alt, $ifaceNil))) { */ case 21: + $r = check[0].softErrorf(lbl, 120, "label %s already declared", new sliceType$5([new $String(name)])); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].reportAltDecl(alt); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 23; continue; + /* } else { */ case 22: + $r = b[0].insert(s$2); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].recordDef(s$2.Label, lbl); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 23: + i = 0; + _ref$1 = fwdJumps[0]; + _i = 0; + /* while (true) { */ case 28: + /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 29; continue; } + jmp = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + /* */ if (jmp.Label.Name === name) { $s = 30; continue; } + /* */ $s = 31; continue; + /* if (jmp.Label.Name === name) { */ case 30: + lbl.used = true; + $r = check[0].recordUse(jmp.Label, lbl); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = jumpsOverVarDecl[0](jmp); /* */ $s = 36; case 36: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 34; continue; } + /* */ $s = 35; continue; + /* if (_r$1) { */ case 34: + _arg = jmp.Label; + _arg$1 = new $String(name); + _r$2 = check[0].fset.Position(varDeclPos[0]); /* */ $s = 37; case 37: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg$2 = new $Int(_r$2.Line); + $r = check[0].softErrorf(_arg, 123, "goto %s jumps over variable declaration at line %d", new sliceType$5([_arg$1, _arg$2])); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 35: + $s = 32; continue; + /* } else { */ case 31: + ((i < 0 || i >= fwdJumps[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : fwdJumps[0].$array[fwdJumps[0].$offset + i] = jmp); + i = i + (1) >> 0; + /* } */ case 32: + _i++; + $s = 28; continue; + case 29: + fwdJumps[0] = $subslice(fwdJumps[0], 0, i); + lstmt[0] = s$2; + /* } */ case 19: + $r = stmtBranches[0](s$2.Stmt); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$74, true)[1]) { */ case 3: + s$3 = _ref.$val; + if (s$3.Label === ptrType$31.nil) { + $s = -1; return; } - typ$4 = ((i$2 < 0 || i$2 >= rhs$2.length) ? ($throwRuntimeError("index out of range"), undefined) : rhs$2[i$2]); - /* */ if (!($interfaceIsEqual(typ$4, $ifaceNil))) { $s = 312; continue; } - /* */ $s = 313; continue; - /* if (!($interfaceIsEqual(typ$4, $ifaceNil))) { */ case 312: - x$7[0].mode = 7; - x$7[0].expr = lhs$4; - x$7[0].typ = typ$4; - _r$28 = check[0].assignVar(lhs$4, x$7[0]); /* */ $s = 314; case 314: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - _r$28; - /* } */ case 313: - _i$7++; - $s = 310; continue; - case 311: - /* } */ case 288: - $r = check[0].stmt(inner, s$18.Body); /* */ $s = 315; case 315: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 22; continue; - /* } else { */ case 21: - s$19 = _ref; - $r = check[0].error(s$19, -1, "invalid statement"); /* */ $s = 316; case 316: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 22: - $s = -1; return; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: stmt, $c: true, $r, T, Y, _1, _2, _3, _4, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$10, _ref$11, _ref$12, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _ref$9, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, _tuple$10, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, _v$2, _v$3, alt, c, cause, ch, check, clause, clause$1, clause$2, code, ctxt, expr, guard, guard$1, guard$2, i, i$1, i$2, ident$1, inner, inner$1, key, kind, lhs, lhs$1, lhs$2, lhs$3, lhs$4, lhsVars, msg, msg$1, n, name, obj, obj$1, obj$2, obj$3, ok, op, op$1, res, rhs, rhs$1, rhs$2, s, s$1, s$10, s$11, s$12, s$13, s$14, s$15, s$16, s$17, s$18, s$19, s$2, s$20, s$21, s$22, s$23, s$24, s$25, s$3, s$4, s$5, s$6, s$7, s$8, s$9, scopePos, scopePos$1, seen, seen$1, sx, t, t$1, typ$3, typ$4, u, u$1, uch, used, v, val, val$1, valid, vars, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $deferred};return $f; } } + name$1 = s$3.Label.Name; + _1 = s$3.Tok; + /* */ if (_1 === (61)) { $s = 41; continue; } + /* */ if (_1 === (65)) { $s = 42; continue; } + /* */ if (_1 === (73)) { $s = 43; continue; } + /* */ $s = 44; continue; + /* if (_1 === (61)) { */ case 41: + valid = false; + t = b[0].enclosingTarget(name$1); + if (!(t === ptrType$66.nil)) { + _ref$2 = t.Stmt; + if ($assertType(_ref$2, ptrType$77, true)[1] || $assertType(_ref$2, ptrType$78, true)[1] || $assertType(_ref$2, ptrType$79, true)[1] || $assertType(_ref$2, ptrType$80, true)[1] || $assertType(_ref$2, ptrType$81, true)[1]) { + valid = true; + } + } + /* */ if (!valid) { $s = 46; continue; } + /* */ $s = 47; continue; + /* if (!valid) { */ case 46: + $r = check[0].errorf(s$3.Label, 121, "invalid break label %s", new sliceType$5([new $String(name$1)])); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 47: + $s = 45; continue; + /* } else if (_1 === (65)) { */ case 42: + valid$1 = false; + t$1 = b[0].enclosingTarget(name$1); + if (!(t$1 === ptrType$66.nil)) { + _ref$3 = t$1.Stmt; + if ($assertType(_ref$3, ptrType$80, true)[1] || $assertType(_ref$3, ptrType$81, true)[1]) { + valid$1 = true; + } + } + /* */ if (!valid$1) { $s = 49; continue; } + /* */ $s = 50; continue; + /* if (!valid$1) { */ case 49: + $r = check[0].errorf(s$3.Label, 121, "invalid continue label %s", new sliceType$5([new $String(name$1)])); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 50: + $s = 45; continue; + /* } else if (_1 === (73)) { */ case 43: + if (b[0].gotoTarget(name$1) === ptrType$66.nil) { + fwdJumps[0] = $append(fwdJumps[0], s$3); + $s = -1; return; + } + $s = 45; continue; + /* } else { */ case 44: + $r = check[0].errorf(s$3, -1, "branch statement: %s %s", new sliceType$5([new token.Token(s$3.Tok), new $String(name$1)])); /* */ $s = 52; case 52: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 45: + case 40: + _r$3 = all[0].Lookup(name$1); /* */ $s = 53; case 53: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + obj = _r$3; + $assertType(obj, ptrType$93).used = true; + $r = check[0].recordUse(s$3.Label, obj); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$70, true)[1]) { */ case 4: + s$4 = _ref.$val; + /* */ if (s$4.Tok === 47) { $s = 55; continue; } + /* */ $s = 56; continue; + /* if (s$4.Tok === 47) { */ case 55: + _r$4 = s$4.Pos(); /* */ $s = 57; case 57: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $r = recordVarDecl[0](_r$4); /* */ $s = 58; case 58: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 56: + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$75, true)[1]) { */ case 5: + s$5 = _ref.$val; + $r = blockBranches$1[0](lstmt[0], s$5.List); /* */ $s = 59; case 59: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$76, true)[1]) { */ case 6: + s$6 = _ref.$val; + $r = stmtBranches[0](s$6.Body); /* */ $s = 60; case 60: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!($interfaceIsEqual(s$6.Else, $ifaceNil))) { $s = 61; continue; } + /* */ $s = 62; continue; + /* if (!($interfaceIsEqual(s$6.Else, $ifaceNil))) { */ case 61: + $r = stmtBranches[0](s$6.Else); /* */ $s = 63; case 63: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 62: + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$61, true)[1]) { */ case 7: + s$7 = _ref.$val; + $r = blockBranches$1[0](ptrType$66.nil, s$7.Body); /* */ $s = 64; case 64: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$77, true)[1]) { */ case 8: + s$8 = _ref.$val; + $r = stmtBranches[0](s$8.Body); /* */ $s = 65; case 65: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$78, true)[1]) { */ case 9: + s$9 = _ref.$val; + $r = stmtBranches[0](s$9.Body); /* */ $s = 66; case 66: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$62, true)[1]) { */ case 10: + s$10 = _ref.$val; + $r = blockBranches$1[0](ptrType$66.nil, s$10.Body); /* */ $s = 67; case 67: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$79, true)[1]) { */ case 11: + s$11 = _ref.$val; + $r = stmtBranches[0](s$11.Body); /* */ $s = 68; case 68: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$80, true)[1]) { */ case 12: + s$12 = _ref.$val; + $r = stmtBranches[0](s$12.Body); /* */ $s = 69; case 69: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$81, true)[1]) { */ case 13: + s$13 = _ref.$val; + $r = stmtBranches[0](s$13.Body); /* */ $s = 70; case 70: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 14: + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·blockBranches·func4, $c: true, $r, _1, _arg, _arg$1, _arg$2, _i, _r, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _ref$2, _ref$3, _tuple, alt, d, i, jmp, lbl, name, name$1, obj, s, s$1, s$10, s$11, s$12, s$13, s$2, s$3, s$4, s$5, s$6, s$7, s$8, s$9, t, t$1, valid, valid$1, $s};return $f; + }; })(all, b, badJumps, blockBranches$1, check, fwdJumps, jumpsOverVarDecl, lstmt, recordVarDecl, stmtBranches, varDeclPos); + _ref = list$2; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = stmtBranches[0](s); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + $s = -1; return fwdJumps[0]; + /* */ } return; } var $f = {$blk: blockBranches, $c: true, $r, _i, _ref, _tmp, _tmp$1, all, b, badJumps, blockBranches$1, check, fwdJumps, jumpsOverVarDecl, list$2, lstmt, parent, recordVarDecl, s, stmtBranches, varDeclPos, $s};return $f; }; - rangeKeyVal = function rangeKeyVal$1(typ$3) { - var {_r$1, _r$2, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, key, typ$3, typ$4, typ$5, typ$6, typ$7, typ$8, val, $s, $r, $c} = $restore(this, {typ$3}); + $ptrType(Interface).prototype.typeSet = function typeSet$1() { + var {$24r, _r, t, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - key = $ifaceNil; - val = $ifaceNil; - _r$1 = arrayPtrDeref(typ$3); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _ref = _r$1; - /* */ if ($assertType(_ref, ptrType$8, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$29, true)[1]) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if ($assertType(_ref, ptrType$8, true)[1]) { */ case 2: - typ$4 = _ref.$val; - _r$2 = isString(typ$4); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (_r$2) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (_r$2) { */ case 8: - _tmp = (2 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 2]); - _tmp$1 = universeRune; - key = _tmp; - val = _tmp$1; - $s = -1; return [key, val]; - /* } */ case 9: - $s = 7; continue; - /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 3: - typ$5 = _ref.$val; - _tmp$2 = (2 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 2]); - _tmp$3 = typ$5.elem; - key = _tmp$2; - val = _tmp$3; - $s = -1; return [key, val]; - /* } else if ($assertType(_ref, ptrType$25, true)[1]) { */ case 4: - typ$6 = _ref.$val; - _tmp$4 = (2 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 2]); - _tmp$5 = typ$6.elem; - key = _tmp$4; - val = _tmp$5; - $s = -1; return [key, val]; - /* } else if ($assertType(_ref, ptrType$28, true)[1]) { */ case 5: - typ$7 = _ref.$val; - _tmp$6 = typ$7.key; - _tmp$7 = typ$7.elem; - key = _tmp$6; - val = _tmp$7; - $s = -1; return [key, val]; - /* } else if ($assertType(_ref, ptrType$29, true)[1]) { */ case 6: - typ$8 = _ref.$val; - _tmp$8 = typ$8.elem; - _tmp$9 = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - key = _tmp$8; - val = _tmp$9; - $s = -1; return [key, val]; - /* } */ case 7: - $s = -1; return [key, val]; - /* */ } return; } var $f = {$blk: rangeKeyVal$1, $c: true, $r, _r$1, _r$2, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, key, typ$3, typ$4, typ$5, typ$6, typ$7, typ$8, val, $s};return $f; + t = this; + _r = computeInterfaceTypeSet(t.check, nopos, t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: typeSet$1, $c: true, $r, $24r, _r, t, $s};return $f; }; - NewSlice = function NewSlice$1(elem) { - var elem; - return new Slice.ptr(elem); + NewInterfaceType = function NewInterfaceType$1(methods, embeddeds) { + var {_i, _ref, embeddeds, m, methods, sig, typ$3, $s, $r, $c} = $restore(this, {methods, embeddeds}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if ((methods.$length === 0) && (embeddeds.$length === 0)) { + $s = -1; return emptyInterface; + } + typ$3 = (ptrType$6.nil).newInterface(); + _ref = methods; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + m = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + sig = $assertType(m.object.typ, ptrType$29); + if (sig.recv === ptrType$17.nil) { + sig.recv = NewVar(m.object.pos, m.object.pkg, "", typ$3); + } + _i++; + } + $r = sortMethods(methods); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + typ$3.methods = methods; + typ$3.embeddeds = embeddeds; + typ$3.complete = true; + $s = -1; return typ$3; + /* */ } return; } var $f = {$blk: NewInterfaceType$1, $c: true, $r, _i, _ref, embeddeds, m, methods, sig, typ$3, $s};return $f; }; - $pkg.NewSlice = NewSlice; - $ptrType(Slice).prototype.Elem = function Elem() { - var s; - s = this; - return s.elem; + $pkg.NewInterfaceType = NewInterfaceType; + $ptrType(Checker).prototype.newInterface = function newInterface() { + var check, typ$3; + check = this; + typ$3 = new Interface.ptr(check, sliceType.nil, sliceType$3.nil, ptrType$7.nil, false, false, ptrType$8.nil); + if (!(check === ptrType$6.nil)) { + check.needsCleanup(typ$3); + } + return typ$3; }; - $ptrType(Slice).prototype.Underlying = function Underlying$4() { + $ptrType(Interface).prototype.MarkImplicit = function MarkImplicit() { var t; t = this; - return t; + t.implicit = true; }; - $ptrType(Slice).prototype.String = function String$9() { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); + $ptrType(Interface).prototype.NumExplicitMethods = function NumExplicitMethods() { + var t; + t = this; + return t.methods.$length; + }; + $ptrType(Interface).prototype.ExplicitMethod = function ExplicitMethod(i) { + var i, t, x; + t = this; + return (x = t.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + }; + $ptrType(Interface).prototype.NumEmbeddeds = function NumEmbeddeds() { + var t; + t = this; + return t.embeddeds.$length; + }; + $ptrType(Interface).prototype.Embedded = function Embedded$1(i) { + var _tuple, i, t, tname, x; + t = this; + _tuple = $assertType((x = t.embeddeds, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])), ptrType$10, true); + tname = _tuple[0]; + return tname; + }; + $ptrType(Interface).prototype.EmbeddedType = function EmbeddedType(i) { + var i, t, x; + t = this; + return (x = t.embeddeds, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + }; + $ptrType(Interface).prototype.NumMethods = function NumMethods$2() { + var {$24r, _r, _r$1, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r = t.typeSet(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = _r.NumMethods(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: NumMethods$2, $c: true, $r, $24r, _r, _r$1, t, $s};return $f; + }; + $ptrType(Interface).prototype.Method = function Method$2(i) { + var {$24r, _r, _r$1, i, t, $s, $r, $c} = $restore(this, {i}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r = t.typeSet(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = _r.Method(i); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: Method$2, $c: true, $r, $24r, _r, _r$1, i, t, $s};return $f; + }; + $ptrType(Interface).prototype.Empty = function Empty() { + var {$24r, _r, _r$1, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r = t.typeSet(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = _r.IsAll(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: Empty, $c: true, $r, $24r, _r, _r$1, t, $s};return $f; + }; + $ptrType(Interface).prototype.IsComparable = function IsComparable$1() { + var {$24r, _r, _r$1, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r = t.typeSet(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = _r.IsComparable(false); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: IsComparable$1, $c: true, $r, $24r, _r, _r$1, t, $s};return $f; + }; + $ptrType(Interface).prototype.IsMethodSet = function IsMethodSet$1() { + var {$24r, _r, _r$1, t, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: t = this; - _r$1 = TypeString(t, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r = t.typeSet(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = _r.IsMethodSet(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $24r = _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: IsMethodSet$1, $c: true, $r, $24r, _r, _r$1, t, $s};return $f; + }; + $ptrType(Interface).prototype.IsImplicit = function IsImplicit() { + var t; + t = this; + return t.implicit; + }; + $ptrType(Interface).prototype.Complete = function Complete$1() { + var {_r, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + if (!t.complete) { + t.complete = true; + } + _r = t.typeSet(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + $s = -1; return t; + /* */ } return; } var $f = {$blk: Complete$1, $c: true, $r, _r, t, $s};return $f; + }; + $ptrType(Interface).prototype.Underlying = function Underlying$9() { + var t; + t = this; + return t; + }; + $ptrType(Interface).prototype.String = function String$32() { + var {$24r, _r, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + _r = TypeString(t, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$9, $c: true, $r, $24r, _r$1, t, $s};return $f; + /* */ } return; } var $f = {$blk: String$32, $c: true, $r, $24r, _r, t, $s};return $f; }; - $ptrType(StdSizes).prototype.Alignof = function Alignof(T) { - var {$24r, T, _i, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, a, a$1, f, max, s, t, t$1, t$2, t$3, t$4, x, $s, $r, $c} = $restore(this, {T}); + $ptrType(Interface).prototype.cleanup = function cleanup$2() { + var t; + t = this; + t.check = ptrType$6.nil; + t.embedPos = ptrType$7.nil; + }; + $ptrType(Checker).prototype.interfaceType = function interfaceType(ityp, iface$1, def$2) { + var {_arg, _arg$1, _i, _r, _r$1, _r$2, _ref, _tuple, _tuple$1, addEmbedded, at$1, check, def$2, f, ftyp, iface$1, ityp, m, name, recvTyp, sig, typ$3, x, $s, $r, $c} = $restore(this, {ityp, iface$1, def$2}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - s = this; - _r$1 = under(T); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _ref = _r$1; - /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$25, true)[1] || $assertType(_ref, ptrType$13, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$8, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$14, true)[1] || $assertType(_ref, ptrType$12, true)[1]) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if ($assertType(_ref, ptrType$10, true)[1]) { */ case 2: - t = _ref.$val; - _r$2 = s.Alignof(t.elem); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 9; case 9: return $24r; - /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 3: - t$1 = _ref.$val; - if ((t$1.fields.$length === 0) && isSyncAtomicAlign64(T)) { - $s = -1; return new $Int64(0, 8); - } - max = new $Int64(0, 1); - _ref$1 = t$1.fields; - _i = 0; - /* while (true) { */ case 10: - /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 11; continue; } - f = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); - _r$3 = s.Alignof(f.object.typ); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - a = _r$3; - if ((a.$high > max.$high || (a.$high === max.$high && a.$low > max.$low))) { - max = a; + check = [check]; + iface$1 = [iface$1]; + ityp = [ityp]; + check[0] = this; + addEmbedded = (function(check, iface$1, ityp) { return function Checker·interfaceType·func1(pos, typ$3) { + var pos, typ$3; + ityp[0].embeddeds = $append(ityp[0].embeddeds, typ$3); + if (ityp[0].embedPos === ptrType$7.nil) { + ityp[0].embedPos = $newDataPointer(sliceType$4.nil, ptrType$7); } + ityp[0].embedPos.$set($append(ityp[0].embedPos.$get(), pos)); + }; })(check, iface$1, ityp); + _ref = iface$1[0].Methods.List; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + /* */ if (f.Names.$length === 0) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (f.Names.$length === 0) { */ case 3: + _r = f.Type.Pos(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg = _r; + _r$1 = parseUnion(check[0], f.Type); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg$1 = _r$1; + $r = addEmbedded(_arg, _arg$1); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _i++; - $s = 10; continue; - case 11: - $s = -1; return max; - /* } else if ($assertType(_ref, ptrType$25, true)[1] || $assertType(_ref, ptrType$13, true)[1]) { */ case 4: - t$2 = _ref; - $r = assert(!isTypeParam(T)); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return s.WordSize; - /* } else if ($assertType(_ref, ptrType$8, true)[1]) { */ case 5: - t$3 = _ref.$val; - if (!(((t$3.Info() & 32) === 0))) { - $s = -1; return s.WordSize; + /* continue; */ $s = 1; continue; + /* } */ case 4: + name = (x = f.Names, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); + /* */ if (name.Name === "_") { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (name.Name === "_") { */ case 8: + $r = check[0].error(name, 27, "methods must have a unique non-blank name"); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* continue; */ $s = 1; continue; + /* } */ case 9: + _r$2 = check[0].typ(f.Type); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + typ$3 = _r$2; + _tuple = $assertType(typ$3, ptrType$29, true); + sig = _tuple[0]; + /* */ if (sig === ptrType$29.nil) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (sig === ptrType$29.nil) { */ case 12: + /* */ if (!($interfaceIsEqual(typ$3, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (!($interfaceIsEqual(typ$3, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { */ case 14: + $r = check[0].errorf(f.Type, -1, "%s is not a method signature", new sliceType$5([typ$3])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 15: + _i++; + /* continue; */ $s = 1; continue; + /* } */ case 13: + /* */ if (!(sig.tparams === ptrType$49.nil)) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (!(sig.tparams === ptrType$49.nil)) { */ case 17: + at$1 = f.Type; + _tuple$1 = $assertType(f.Type, ptrType$45, true); + ftyp = _tuple$1[0]; + if (!(ftyp === ptrType$45.nil) && !(ftyp.TypeParams === ptrType$50.nil)) { + at$1 = ftyp.TypeParams; + } + $r = check[0].error(at$1, 143, "methods cannot have type parameters"); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 18: + recvTyp = ityp[0]; + if (!(def$2 === ptrType$10.nil)) { + recvTyp = def$2; } - $s = 7; continue; - /* } else if ($assertType(_ref, ptrType$14, true)[1] || $assertType(_ref, ptrType$12, true)[1]) { */ case 6: - t$4 = _ref; - unreachable(); - /* } */ case 7: - _r$4 = s.Sizeof(T); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - a$1 = _r$4; - if ((a$1.$high < 0 || (a$1.$high === 0 && a$1.$low < 1))) { - $s = -1; return new $Int64(0, 1); + sig.recv = NewVar(name.Pos(), check[0].pkg, "", recvTyp); + m = NewFunc(name.Pos(), check[0].pkg, name.Name, sig); + $r = check[0].recordDef(name, m); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + ityp[0].methods = $append(ityp[0].methods, m); + _i++; + $s = 1; continue; + case 2: + ityp[0].complete = true; + if ((ityp[0].methods.$length === 0) && (ityp[0].embeddeds.$length === 0)) { + ityp[0].tset = topTypeSet; + $s = -1; return; } - _r$5 = isComplex(T); /* */ $s = 17; case 17: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* */ if (_r$5) { $s = 15; continue; } - /* */ $s = 16; continue; - /* if (_r$5) { */ case 15: - a$1 = $div64(a$1, (new $Int64(0, 2)), false); - /* } */ case 16: - if ((x = s.MaxAlign, (a$1.$high > x.$high || (a$1.$high === x.$high && a$1.$low > x.$low)))) { - $s = -1; return s.MaxAlign; + $r = sortMethods(ityp[0].methods); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + check[0].later((function(check, iface$1, ityp) { return function Checker·interfaceType·func2() { + var {_r$3, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$3 = computeInterfaceTypeSet(check[0], iface$1[0].Pos(), ityp[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·interfaceType·func2, $c: true, $r, _r$3, $s};return $f; + }; })(check, iface$1, ityp)).describef(iface$1[0], "compute type set for %s", new sliceType$5([ityp[0]])); + $s = -1; return; + /* */ } return; } var $f = {$blk: interfaceType, $c: true, $r, _arg, _arg$1, _i, _r, _r$1, _r$2, _ref, _tuple, _tuple$1, addEmbedded, at$1, check, def$2, f, ftyp, iface$1, ityp, m, name, recvTyp, sig, typ$3, x, $s};return $f; + }; + Instantiate = function Instantiate$1(ctxt, orig, targs, validate) { + var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _ref, _tuple, ctxt, err, i, inst, orig, t, t$1, targs, tparams, validate, $s, $r, $c} = $restore(this, {ctxt, orig, targs, validate}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (ctxt === ptrType$52.nil) { + ctxt = NewContext(); } - $s = -1; return a$1; - /* */ } return; } var $f = {$blk: Alignof, $c: true, $r, $24r, T, _i, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, a, a$1, f, max, s, t, t$1, t$2, t$3, t$4, x, $s};return $f; + /* */ if (validate) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (validate) { */ case 1: + tparams = sliceType$8.nil; + _ref = orig; + /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$29, true)[1]) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ($assertType(_ref, ptrType$10, true)[1]) { */ case 3: + t = _ref.$val; + _r = t.TypeParams(); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = _r.list(); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + tparams = _r$1; + $s = 5; continue; + /* } else if ($assertType(_ref, ptrType$29, true)[1]) { */ case 4: + t$1 = _ref.$val; + tparams = t$1.TypeParams().list(); + /* } */ case 5: + /* */ if (!((targs.$length === tparams.$length))) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!((targs.$length === tparams.$length))) { */ case 8: + _r$2 = fmt.Errorf("got %d type arguments but %s has %d type parameters", new sliceType$5([new $Int(targs.$length), orig, new $Int(tparams.$length)])); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = [$ifaceNil, _r$2]; + $s = 11; case 11: return $24r; + /* } */ case 9: + _r$3 = (ptrType$6.nil).verify(nopos, tparams, targs, ctxt); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + i = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [$ifaceNil, new ArgumentError.ptr(i, err)]; + } + /* } */ case 2: + _r$4 = (ptrType$6.nil).instance(nopos, orig, targs, ptrType$10.nil, ctxt); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + inst = _r$4; + $s = -1; return [inst, $ifaceNil]; + /* */ } return; } var $f = {$blk: Instantiate$1, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _ref, _tuple, ctxt, err, i, inst, orig, t, t$1, targs, tparams, validate, $s};return $f; }; - isSyncAtomicAlign64 = function isSyncAtomicAlign64$1(T) { - var T, _tuple, named, obj, ok; - _tuple = $assertType(T, ptrType$9, true); - named = _tuple[0]; - ok = _tuple[1]; - if (!ok) { - return false; + $pkg.Instantiate = Instantiate; + $ptrType(Checker).prototype.instance = function instance$1(pos, orig, targs, expanding, ctxt) { + var {$24r, $24r$1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _i, _i$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _ref$1, _ref$2, check, copy, ctxt, ctxt$1, ctxt$2, ctxts, expanding, hashes, i, i$1, inst, orig, orig$1, orig$2, orig$3, pos, res, sig, targs, tparams, updateContexts, $s, $r, $c} = $restore(this, {pos, orig, targs, expanding, ctxt}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + copy = [copy]; + ctxts = [ctxts]; + hashes = [hashes]; + orig = [orig]; + targs = [targs]; + res = $ifaceNil; + check = this; + ctxts[0] = sliceType$27.nil; + if (!(expanding === ptrType$10.nil)) { + ctxts[0] = $append(ctxts[0], expanding.inst.ctxt); } - obj = named.Obj(); - return obj.object.Name() === "align64" && !(obj.object.Pkg() === ptrType$1.nil) && (obj.object.Pkg().Path() === "sync/atomic" || obj.object.Pkg().Path() === "runtime/internal/atomic"); + if (!(ctxt === ptrType$52.nil)) { + ctxts[0] = $append(ctxts[0], ctxt); + } + $r = assert(ctxts[0].$length > 0); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + hashes[0] = $makeSlice(sliceType$13, ctxts[0].$length); + _ref = ctxts[0]; + _i = 0; + /* while (true) { */ case 2: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } + i = _i; + ctxt$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r = ctxt$1.instanceHash(orig[0], targs[0]); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + ((i < 0 || i >= hashes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : hashes[0].$array[hashes[0].$offset + i] = _r); + _i++; + $s = 2; continue; + case 3: + updateContexts = (function(copy, ctxts, hashes, orig, targs) { return function Checker·instance·func1(res$1) { + var {_r$1, i$1, res$1, $s, $r, $c} = $restore(this, {res$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + i$1 = ctxts[0].$length - 1 >> 0; + /* while (true) { */ case 1: + /* if (!(i$1 >= 0)) { break; } */ if(!(i$1 >= 0)) { $s = 2; continue; } + _r$1 = ((i$1 < 0 || i$1 >= ctxts[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : ctxts[0].$array[ctxts[0].$offset + i$1]).update(((i$1 < 0 || i$1 >= hashes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : hashes[0].$array[hashes[0].$offset + i$1]), orig[0], targs[0], res$1); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + res$1 = _r$1; + i$1 = i$1 - (1) >> 0; + $s = 1; continue; + case 2: + $s = -1; return res$1; + /* */ } return; } var $f = {$blk: Checker·instance·func1, $c: true, $r, _r$1, i$1, res$1, $s};return $f; + }; })(copy, ctxts, hashes, orig, targs); + _ref$1 = ctxts[0]; + _i$1 = 0; + /* while (true) { */ case 5: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 6; continue; } + i$1 = _i$1; + ctxt$2 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + _r$1 = ctxt$2.lookup(((i$1 < 0 || i$1 >= hashes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : hashes[0].$array[hashes[0].$offset + i$1]), orig[0], targs[0]); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + inst = _r$1; + /* */ if (!($interfaceIsEqual(inst, $ifaceNil))) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!($interfaceIsEqual(inst, $ifaceNil))) { */ case 8: + _r$2 = updateContexts(inst); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + res = _r$2; + $24r = res; + $s = 11; case 11: return $24r; + /* } */ case 9: + _i$1++; + $s = 5; continue; + case 6: + _ref$2 = orig[0]; + /* */ if ($assertType(_ref$2, ptrType$10, true)[1]) { $s = 12; continue; } + /* */ if ($assertType(_ref$2, ptrType$29, true)[1]) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if ($assertType(_ref$2, ptrType$10, true)[1]) { */ case 12: + orig$1 = _ref$2.$val; + _r$3 = check.newNamedInstance(pos, orig$1, targs[0], expanding); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + res = _r$3; + $s = 15; continue; + /* } else if ($assertType(_ref$2, ptrType$29, true)[1]) { */ case 13: + orig$2 = _ref$2.$val; + $r = assert(expanding === ptrType$10.nil); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + tparams = orig$2.TypeParams(); + _r$4 = check.validateTArgLen(pos, tparams.Len(), targs[0].$length); /* */ $s = 20; case 20: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (!_r$4) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (!_r$4) { */ case 18: + res = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + $s = -1; return res; + /* } */ case 19: + if (tparams.Len() === 0) { + res = orig$2; + $s = -1; return res; + } + _arg = pos; + _arg$1 = orig$2; + _r$5 = makeSubstMap(tparams.list(), targs[0]); /* */ $s = 21; case 21: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _arg$2 = _r$5; + _arg$3 = ptrType$10.nil; + _arg$4 = ctxt; + _r$6 = check.subst(_arg, _arg$1, _arg$2, _arg$3, _arg$4); /* */ $s = 22; case 22: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + sig = $assertType(_r$6, ptrType$29); + if (sig === orig$2) { + copy[0] = $clone((sig === ptrType$29.nil && $throwNilPointerError(), sig), Signature); + sig = copy[0]; + } + sig.tparams = ptrType$49.nil; + res = sig; + $s = 15; continue; + /* } else { */ case 14: + orig$3 = _ref$2; + _r$7 = fmt.Sprintf("%v: cannot instantiate %v", new sliceType$5([new token.Pos(pos), orig$3])); /* */ $s = 23; case 23: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $panic(new $String(_r$7)); + /* } */ case 15: + _r$8 = updateContexts(res); /* */ $s = 24; case 24: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + res = _r$8; + $24r$1 = res; + $s = 25; case 25: return $24r$1; + /* */ } return; } var $f = {$blk: instance$1, $c: true, $r, $24r, $24r$1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _i, _i$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _ref$1, _ref$2, check, copy, ctxt, ctxt$1, ctxt$2, ctxts, expanding, hashes, i, i$1, inst, orig, orig$1, orig$2, orig$3, pos, res, sig, targs, tparams, updateContexts, $s};return $f; }; - $ptrType(StdSizes).prototype.Offsetsof = function Offsetsof(fields) { - var {_i, _r$1, _r$2, _ref, a, f, fields, i, o, offsets, s, x, $s, $r, $c} = $restore(this, {fields}); + $ptrType(Checker).prototype.validateTArgLen = function validateTArgLen(pos, ntparams, ntargs) { + var {_r, check, ntargs, ntparams, pos, $s, $r, $c} = $restore(this, {pos, ntparams, ntargs}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - s = this; - offsets = $makeSlice(sliceType$19, fields.$length); - o = new $Int64(0, 0); - _ref = fields; + check = this; + /* */ if (!((ntargs === ntparams))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((ntargs === ntparams))) { */ case 1: + /* */ if (!(check === ptrType$6.nil)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!(check === ptrType$6.nil)) { */ case 3: + $r = check.errorf(new atPos(((pos >> 0))), 137, "got %d arguments but %d type parameters", new sliceType$5([new $Int(ntargs), new $Int(ntparams)])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; + /* } */ case 4: + _r = fmt.Sprintf("%v: got %d arguments but %d type parameters", new sliceType$5([new token.Pos(pos), new $Int(ntargs), new $Int(ntparams)])); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $panic(new $String(_r)); + /* } */ case 2: + $s = -1; return true; + /* */ } return; } var $f = {$blk: validateTArgLen, $c: true, $r, _r, check, ntargs, ntparams, pos, $s};return $f; + }; + $ptrType(Checker).prototype.verify = function verify(pos, tparams, targs, ctxt) { + var {_i, _r, _r$1, _r$2, _r$3, _ref, bound, cause, check, ctxt, i, pos, smap, targs, tpar, tparams, $s, $r, $c} = $restore(this, {pos, tparams, targs, ctxt}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _r = makeSubstMap(tparams, targs); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + smap = _r; + _ref = tparams; _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + /* while (true) { */ case 2: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } + cause = [cause]; i = _i; - f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$1 = s.Alignof(f.object.typ); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - a = _r$1; - o = align(o, a); - ((i < 0 || i >= offsets.$length) ? ($throwRuntimeError("index out of range"), undefined) : offsets.$array[offsets.$offset + i] = o); - _r$2 = s.Sizeof(f.object.typ); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - o = (x = _r$2, new $Int64(o.$high + x.$high, o.$low + x.$low)); + tpar = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r$1 = tpar.iface(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + _r$2 = check.subst(pos, tpar.bound, smap, ptrType$10.nil, ctxt); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + bound = _r$2; + cause[0] = ""; + _r$3 = check.implements$(pos, ((i < 0 || i >= targs.$length) ? ($throwRuntimeError("index out of range"), undefined) : targs.$array[targs.$offset + i]), bound, true, (cause.$ptr || (cause.$ptr = new ptrType$35(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, cause)))); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!_r$3) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (!_r$3) { */ case 6: + $s = -1; return [i, errors.New(cause[0])]; + /* } */ case 7: _i++; - $s = 1; continue; - case 2: - $s = -1; return offsets; - /* */ } return; } var $f = {$blk: Offsetsof, $c: true, $r, _i, _r$1, _r$2, _ref, a, f, fields, i, o, offsets, s, x, $s};return $f; + $s = 2; continue; + case 3: + $s = -1; return [-1, $ifaceNil]; + /* */ } return; } var $f = {$blk: verify, $c: true, $r, _i, _r, _r$1, _r$2, _r$3, _ref, bound, cause, check, ctxt, i, pos, smap, targs, tpar, tparams, $s};return $f; }; - $ptrType(StdSizes).prototype.Sizeof = function Sizeof(T) { - var {$24r, T, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, a, k, n, n$1, offsets, s, s$1, t, t$1, t$2, t$3, t$4, t$5, x, x$1, x$2, x$3, x$4, x$5, z, $s, $r, $c} = $restore(this, {T}); + $ptrType(Checker).prototype.implements$ = function implements$1(pos, V, T, constraint, cause) { + var {$24r, $24r$1, $24r$2, T, Ti, Tu, V, Vi, Vu, _arg, _arg$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _v, _v$1, alt, cause, check, checkComparability, constraint, detail, detail$1, m, p, pos, verb, $s, $r, $c} = $restore(this, {pos, V, T, constraint, cause}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - s = this; - _r$1 = under(T); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _ref = _r$1; - /* */ if ($assertType(_ref, ptrType$8, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType$14, true)[1] || $assertType(_ref, ptrType$12, true)[1]) { $s = 7; continue; } + Ti = [Ti]; + V = [V]; + alt = [alt]; + cause = [cause]; + check = [check]; + constraint = [constraint]; + pos = [pos]; + verb = [verb]; + check[0] = this; + _r = under(V[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + Vu = _r; + _r$1 = under(T); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + Tu = _r$1; + if ($interfaceIsEqual(Vu, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])) || $interfaceIsEqual(Tu, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { + $s = -1; return true; + } + _tuple = $assertType(Vu, ptrType$28, true); + p = _tuple[0]; + if (!(!(p === ptrType$28.nil))) { _v = false; $s = 5; continue s; } + _r$2 = under(p.base); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v = $interfaceIsEqual(_r$2, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])); case 5: + /* */ if (_v) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_v) { */ case 3: + $s = -1; return true; + /* } */ case 4: + verb[0] = "implement"; + if (constraint[0]) { + verb[0] = "satisfy"; + } + _tuple$1 = $assertType(Tu, ptrType$14, true); + Ti[0] = _tuple$1[0]; + /* */ if (Ti[0] === ptrType$14.nil) { $s = 7; continue; } /* */ $s = 8; continue; - /* if ($assertType(_ref, ptrType$8, true)[1]) { */ case 2: - t = _ref.$val; - $r = assert(isTyped(T)); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - k = t.kind; - if (((k >> 0)) < 17) { - s$1 = ((k < 0 || k >= basicSizes.length) ? ($throwRuntimeError("index out of range"), undefined) : basicSizes[k]); - if (s$1 > 0) { - $s = -1; return (new $Int64(0, s$1)); + /* if (Ti[0] === ptrType$14.nil) { */ case 7: + /* */ if (!(cause[0] === ptrType$35.nil)) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!(cause[0] === ptrType$35.nil)) { */ case 9: + detail = ""; + _r$3 = isInterfacePtr(Tu); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (_r$3) { */ case 11: + _r$4 = check[0].sprintf("type %s is pointer to interface, not interface", new sliceType$5([T])); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + detail = _r$4; + $s = 13; continue; + /* } else { */ case 12: + _r$5 = check[0].sprintf("%s is not an interface", new sliceType$5([T])); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + detail = _r$5; + /* } */ case 13: + _r$6 = check[0].sprintf("%s does not %s %s (%s)", new sliceType$5([V[0], new $String(verb[0]), T, new $String(detail)])); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + cause[0].$set(_r$6); + /* } */ case 10: + $s = -1; return false; + /* } */ case 8: + _r$7 = Ti[0].Empty(); /* */ $s = 20; case 20: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + /* */ if (_r$7) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (_r$7) { */ case 18: + $s = -1; return true; + /* } */ case 19: + _tuple$2 = $assertType(Vu, ptrType$14, true); + Vi = _tuple$2[0]; + if (!(!(Vi === ptrType$14.nil))) { _v$1 = false; $s = 23; continue s; } + _r$8 = Vi.typeSet(); /* */ $s = 24; case 24: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$9 = _r$8.IsEmpty(); /* */ $s = 25; case 25: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _v$1 = _r$9; case 23: + /* */ if (_v$1) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (_v$1) { */ case 21: + $s = -1; return true; + /* } */ case 22: + _r$10 = Ti[0].typeSet(); /* */ $s = 28; case 28: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$11 = _r$10.IsEmpty(); /* */ $s = 29; case 29: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + /* */ if (_r$11) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (_r$11) { */ case 26: + /* */ if (!(cause[0] === ptrType$35.nil)) { $s = 30; continue; } + /* */ $s = 31; continue; + /* if (!(cause[0] === ptrType$35.nil)) { */ case 30: + _r$12 = check[0].sprintf("cannot %s %s (empty type set)", new sliceType$5([new $String(verb[0]), T])); /* */ $s = 32; case 32: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + cause[0].$set(_r$12); + /* } */ case 31: + $s = -1; return false; + /* } */ case 27: + _r$13 = check[0].missingMethod(V[0], T, true, Identical, cause[0]); /* */ $s = 33; case 33: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _tuple$3 = _r$13; + m = _tuple$3[0]; + /* */ if (!(m === ptrType$2.nil)) { $s = 34; continue; } + /* */ $s = 35; continue; + /* if (!(m === ptrType$2.nil)) { */ case 34: + /* */ if (!(cause[0] === ptrType$35.nil)) { $s = 36; continue; } + /* */ $s = 37; continue; + /* if (!(cause[0] === ptrType$35.nil)) { */ case 36: + _r$14 = check[0].sprintf("%s does not %s %s %s", new sliceType$5([V[0], new $String(verb[0]), T, new $String(cause[0].$get())])); /* */ $s = 38; case 38: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + cause[0].$set(_r$14); + /* } */ case 37: + $s = -1; return false; + /* } */ case 35: + checkComparability = (function(Ti, V, alt, cause, check, constraint, pos, verb) { return function Checker·implements·func1() { + var {_r$15, _r$16, _r$17, _r$18, _r$19, _r$20, _v$2, _v$3, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$15 = Ti[0].IsComparable(); /* */ $s = 3; case 3: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + /* */ if (!_r$15) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!_r$15) { */ case 1: + $s = -1; return true; + /* } */ case 2: + _r$16 = comparable(V[0], false, false, $throwNilPointerError); /* */ $s = 6; case 6: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + /* */ if (_r$16) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_r$16) { */ case 4: + $s = -1; return true; + /* } */ case 5: + if (!(constraint[0])) { _v$2 = false; $s = 9; continue s; } + _r$17 = comparable(V[0], true, false, $throwNilPointerError); /* */ $s = 10; case 10: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + _v$2 = _r$17; case 9: + /* */ if (_v$2) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (_v$2) { */ case 7: + if (check[0] === ptrType$6.nil) { _v$3 = true; $s = 13; continue s; } + _r$18 = check[0].allowVersion(check[0].pkg, new atPos(((pos[0] >> 0))), $clone(go1_20, version)); /* */ $s = 14; case 14: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + _v$3 = _r$18; case 13: + /* */ if (_v$3) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (_v$3) { */ case 11: + $s = -1; return true; + /* } */ case 12: + /* */ if (!(cause[0] === ptrType$35.nil)) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (!(cause[0] === ptrType$35.nil)) { */ case 15: + _r$19 = check[0].sprintf("%s to %s comparable requires go1.20 or later", new sliceType$5([V[0], new $String(verb[0])])); /* */ $s = 17; case 17: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + cause[0].$set(_r$19); + /* } */ case 16: + $s = -1; return false; + /* } */ case 8: + /* */ if (!(cause[0] === ptrType$35.nil)) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (!(cause[0] === ptrType$35.nil)) { */ case 18: + _r$20 = check[0].sprintf("%s does not %s comparable", new sliceType$5([V[0], new $String(verb[0])])); /* */ $s = 20; case 20: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + cause[0].$set(_r$20); + /* } */ case 19: + $s = -1; return false; + /* */ } return; } var $f = {$blk: Checker·implements·func1, $c: true, $r, _r$15, _r$16, _r$17, _r$18, _r$19, _r$20, _v$2, _v$3, $s};return $f; + }; })(Ti, V, alt, cause, check, constraint, pos, verb); + _r$15 = Ti[0].typeSet(); /* */ $s = 41; case 41: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + _r$16 = _r$15.hasTerms(); /* */ $s = 42; case 42: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + /* */ if (!_r$16) { $s = 39; continue; } + /* */ $s = 40; continue; + /* if (!_r$16) { */ case 39: + _r$17 = checkComparability(); /* */ $s = 43; case 43: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + $24r = _r$17; + $s = 44; case 44: return $24r; + /* } */ case 40: + /* */ if (!(Vi === ptrType$14.nil)) { $s = 45; continue; } + /* */ $s = 46; continue; + /* if (!(Vi === ptrType$14.nil)) { */ case 45: + _r$18 = Vi.typeSet(); /* */ $s = 49; case 49: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + _r$19 = Ti[0].typeSet(); /* */ $s = 50; case 50: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + _r$20 = _r$18.subsetOf(_r$19); /* */ $s = 51; case 51: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + /* */ if (!_r$20) { $s = 47; continue; } + /* */ $s = 48; continue; + /* if (!_r$20) { */ case 47: + /* */ if (!(cause[0] === ptrType$35.nil)) { $s = 52; continue; } + /* */ $s = 53; continue; + /* if (!(cause[0] === ptrType$35.nil)) { */ case 52: + _r$21 = check[0].sprintf("%s does not %s %s", new sliceType$5([V[0], new $String(verb[0]), T])); /* */ $s = 54; case 54: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + cause[0].$set(_r$21); + /* } */ case 53: + $s = -1; return false; + /* } */ case 48: + _r$22 = checkComparability(); /* */ $s = 55; case 55: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + $24r$1 = _r$22; + $s = 56; case 56: return $24r$1; + /* } */ case 46: + alt[0] = $ifaceNil; + _r$23 = Ti[0].typeSet(); /* */ $s = 59; case 59: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + _r$24 = _r$23.is((function(Ti, V, alt, cause, check, constraint, pos, verb) { return function Checker·implements·func2(t) { + var {_arg, _arg$1, _r$24, _r$25, _r$26, _r$27, _v$2, t, tt, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$24 = t.includes(V[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + /* */ if (!_r$24) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!_r$24) { */ case 1: + if (!($interfaceIsEqual(alt[0], $ifaceNil) && !t.tilde)) { _v$2 = false; $s = 6; continue s; } + _arg = t.typ; + _r$25 = under(t.typ); /* */ $s = 7; case 7: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _arg$1 = _r$25; + _r$26 = Identical(_arg, _arg$1); /* */ $s = 8; case 8: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + _v$2 = _r$26; case 6: + /* */ if (_v$2) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_v$2) { */ case 4: + tt = $clone((t === ptrType$5.nil && $throwNilPointerError(), t), term); + tt.tilde = true; + _r$27 = tt.includes(V[0]); /* */ $s = 11; case 11: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + /* */ if (_r$27) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (_r$27) { */ case 9: + alt[0] = t.typ; + /* } */ case 10: + /* } */ case 5: + $s = -1; return true; + /* } */ case 2: + $s = -1; return false; + /* */ } return; } var $f = {$blk: Checker·implements·func2, $c: true, $r, _arg, _arg$1, _r$24, _r$25, _r$26, _r$27, _v$2, t, tt, $s};return $f; + }; })(Ti, V, alt, cause, check, constraint, pos, verb)); /* */ $s = 60; case 60: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + /* */ if (_r$24) { $s = 57; continue; } + /* */ $s = 58; continue; + /* if (_r$24) { */ case 57: + /* */ if (!(cause[0] === ptrType$35.nil)) { $s = 61; continue; } + /* */ $s = 62; continue; + /* if (!(cause[0] === ptrType$35.nil)) { */ case 61: + detail$1 = ""; + /* */ if (!($interfaceIsEqual(alt[0], $ifaceNil))) { $s = 64; continue; } + _r$25 = mentions(Ti[0], V[0]); /* */ $s = 68; case 68: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + /* */ if (_r$25) { $s = 65; continue; } + /* */ $s = 66; continue; + /* if (!($interfaceIsEqual(alt[0], $ifaceNil))) { */ case 64: + _r$26 = check[0].sprintf("possibly missing ~ for %s in %s", new sliceType$5([alt[0], T])); /* */ $s = 69; case 69: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + detail$1 = _r$26; + $s = 67; continue; + /* } else if (_r$25) { */ case 65: + _r$27 = check[0].sprintf("%s mentions %s, but %s is not in the type set of %s", new sliceType$5([T, V[0], V[0], T])); /* */ $s = 70; case 70: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + detail$1 = _r$27; + $s = 67; continue; + /* } else { */ case 66: + _arg = V[0]; + _r$28 = Ti[0].typeSet(); /* */ $s = 71; case 71: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + _arg$1 = _r$28.terms; + _r$29 = check[0].sprintf("%s missing in %s", new sliceType$5([_arg, _arg$1])); /* */ $s = 72; case 72: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + detail$1 = _r$29; + /* } */ case 67: + case 63: + _r$30 = check[0].sprintf("%s does not %s %s (%s)", new sliceType$5([V[0], new $String(verb[0]), T, new $String(detail$1)])); /* */ $s = 73; case 73: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } + cause[0].$set(_r$30); + /* } */ case 62: + $s = -1; return false; + /* } */ case 58: + _r$31 = checkComparability(); /* */ $s = 74; case 74: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } + $24r$2 = _r$31; + $s = 75; case 75: return $24r$2; + /* */ } return; } var $f = {$blk: implements$1, $c: true, $r, $24r, $24r$1, $24r$2, T, Ti, Tu, V, Vi, Vu, _arg, _arg$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _v, _v$1, alt, cause, check, checkComparability, constraint, detail, detail$1, m, p, pos, verb, $s};return $f; + }; + mentions = function mentions$1(T, typ$3) { + var {T, T$1, T$2, T$3, _i, _i$1, _r, _r$1, _r$2, _ref, _ref$1, _ref$2, e, t, typ$3, $s, $r, $c} = $restore(this, {T, typ$3}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref = T; + /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if ($assertType(_ref, ptrType$14, true)[1]) { */ case 1: + T$1 = _ref.$val; + _ref$1 = T$1.embeddeds; + _i = 0; + /* while (true) { */ case 5: + /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 6; continue; } + e = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + _r = mentions(e, typ$3); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (_r) { */ case 7: + $s = -1; return true; + /* } */ case 8: + _i++; + $s = 5; continue; + case 6: + $s = 4; continue; + /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 2: + T$2 = _ref.$val; + _ref$2 = T$2.terms; + _i$1 = 0; + /* while (true) { */ case 10: + /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 11; continue; } + t = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); + _r$1 = mentions(t.typ, typ$3); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (_r$1) { */ case 12: + $s = -1; return true; + /* } */ case 13: + _i$1++; + $s = 10; continue; + case 11: + $s = 4; continue; + /* } else { */ case 3: + T$3 = _ref; + _r$2 = Identical(T$3, typ$3); /* */ $s = 17; case 17: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (_r$2) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (_r$2) { */ case 15: + $s = -1; return true; + /* } */ case 16: + /* } */ case 4: + $s = -1; return false; + /* */ } return; } var $f = {$blk: mentions$1, $c: true, $r, T, T$1, T$2, T$3, _i, _i$1, _r, _r$1, _r$2, _ref, _ref$1, _ref$2, e, t, typ$3, $s};return $f; + }; + $ptrType(Checker).prototype.initOrder = function initOrder() { + var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _key, _key$1, _key$2, _key$3, _key$4, _keys, _keys$1, _keys$2, _keys$3, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _size, _size$1, _size$2, _size$3, _tuple, _tuple$1, check, cycle, d, dep, emitted, info, infoLhs, init$4, init$5, n, n$1, obj, obj$1, p, p$1, pq, v, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + pq = [pq]; + check = this; + check.Info.InitOrder = $subslice(check.Info.InitOrder, 0, 0); + _r = dependencyGraph(check.objMap); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + pq[0] = ($convertSliceType(_r, nodeQueue)); + $r = heap.Init((pq.$ptr || (pq.$ptr = new ptrType$97(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, pq)))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (false) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (false) { */ case 3: + _r$1 = fmt.Printf("Computing initialization order for %s\n\n", new sliceType$5([check.pkg])); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + _r$2 = fmt.Println(new sliceType$5([new $String("Object dependency graph:")])); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + _ref = check.objMap; + _i = 0; + _keys = _ref ? _ref.keys() : undefined; + _size = _ref ? _ref.size : 0; + /* while (true) { */ case 7: + /* if (!(_i < _size)) { break; } */ if(!(_i < _size)) { $s = 8; continue; } + _key = _keys.next().value; + _entry = _ref.get(_key); + if (_entry === undefined) { + _i++; + /* continue; */ $s = 7; continue; } + obj = _entry.k; + d = _entry.v; + _tuple = $assertType(obj, dependency, true); + obj$1 = _tuple[0]; + /* */ if (!($interfaceIsEqual(obj$1, $ifaceNil))) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!($interfaceIsEqual(obj$1, $ifaceNil))) { */ case 9: + /* */ if ((d.deps ? d.deps.size : 0) > 0) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if ((d.deps ? d.deps.size : 0) > 0) { */ case 11: + _r$3 = obj$1.Name(); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _arg = new $String(_r$3); + _r$4 = fmt.Printf("\t%s depends on\n", new sliceType$5([_arg])); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4; + _ref$1 = d.deps; + _i$1 = 0; + _keys$1 = _ref$1 ? _ref$1.keys() : undefined; + _size$1 = _ref$1 ? _ref$1.size : 0; + /* while (true) { */ case 16: + /* if (!(_i$1 < _size$1)) { break; } */ if(!(_i$1 < _size$1)) { $s = 17; continue; } + _key$1 = _keys$1.next().value; + _entry$1 = _ref$1.get(_key$1); + if (_entry$1 === undefined) { + _i$1++; + /* continue; */ $s = 16; continue; + } + dep = _entry$1.k; + _r$5 = dep.Name(); /* */ $s = 18; case 18: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _arg$1 = new $String(_r$5); + _r$6 = fmt.Printf("\t\t%s\n", new sliceType$5([_arg$1])); /* */ $s = 19; case 19: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$6; + _i$1++; + $s = 16; continue; + case 17: + $s = 13; continue; + /* } else { */ case 12: + _r$7 = obj$1.Name(); /* */ $s = 20; case 20: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _arg$2 = new $String(_r$7); + _r$8 = fmt.Printf("\t%s has no dependencies\n", new sliceType$5([_arg$2])); /* */ $s = 21; case 21: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$8; + /* } */ case 13: + /* } */ case 10: + _i++; + $s = 7; continue; + case 8: + _r$9 = fmt.Println(sliceType$5.nil); /* */ $s = 22; case 22: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$9; + _r$10 = fmt.Println(new sliceType$5([new $String("Transposed object dependency graph (functions eliminated):")])); /* */ $s = 23; case 23: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$10; + _ref$2 = pq[0]; + _i$2 = 0; + /* while (true) { */ case 24: + /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 25; continue; } + n = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); + _r$11 = n.obj.Name(); /* */ $s = 26; case 26: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _arg$3 = new $String(_r$11); + _arg$4 = new $Int(n.ndeps); + _r$12 = fmt.Printf("\t%s depends on %d nodes\n", new sliceType$5([_arg$3, _arg$4])); /* */ $s = 27; case 27: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _r$12; + _ref$3 = n.pred; + _i$3 = 0; + _keys$2 = _ref$3 ? _ref$3.keys() : undefined; + _size$2 = _ref$3 ? _ref$3.size : 0; + /* while (true) { */ case 28: + /* if (!(_i$3 < _size$2)) { break; } */ if(!(_i$3 < _size$2)) { $s = 29; continue; } + _key$2 = _keys$2.next().value; + _entry$2 = _ref$3.get(_key$2); + if (_entry$2 === undefined) { + _i$3++; + /* continue; */ $s = 28; continue; + } + p = _entry$2.k; + _r$13 = p.obj.Name(); /* */ $s = 30; case 30: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _arg$5 = new $String(_r$13); + _r$14 = fmt.Printf("\t\t%s is dependent\n", new sliceType$5([_arg$5])); /* */ $s = 31; case 31: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _r$14; + _i$3++; + $s = 28; continue; + case 29: + _i$2++; + $s = 24; continue; + case 25: + _r$15 = fmt.Println(sliceType$5.nil); /* */ $s = 32; case 32: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + _r$15; + _r$16 = fmt.Println(new sliceType$5([new $String("Processing nodes:")])); /* */ $s = 33; case 33: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + _r$16; + /* } */ case 4: + emitted = new $global.Map(); + /* while (true) { */ case 34: + /* if (!(pq[0].$length > 0)) { break; } */ if(!(pq[0].$length > 0)) { $s = 35; continue; } + _r$17 = heap.Pop((pq.$ptr || (pq.$ptr = new ptrType$97(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, pq)))); /* */ $s = 36; case 36: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + n$1 = $assertType(_r$17, ptrType$98); + /* */ if (false) { $s = 37; continue; } + /* */ $s = 38; continue; + /* if (false) { */ case 37: + _r$18 = n$1.obj.Name(); /* */ $s = 39; case 39: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + _arg$6 = new $String(_r$18); + _r$19 = n$1.obj.order(); /* */ $s = 40; case 40: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + _arg$7 = new $Uint32(_r$19); + _arg$8 = new $Int(n$1.ndeps); + _r$20 = fmt.Printf("\t%s (src pos %d) depends on %d nodes now\n", new sliceType$5([_arg$6, _arg$7, _arg$8])); /* */ $s = 41; case 41: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + _r$20; + /* } */ case 38: + /* */ if (n$1.ndeps > 0) { $s = 42; continue; } + /* */ $s = 43; continue; + /* if (n$1.ndeps > 0) { */ case 42: + cycle = findPath(check.objMap, n$1.obj, n$1.obj, new $global.Map()); + /* */ if (!(cycle === sliceType$7.nil)) { $s = 44; continue; } + /* */ $s = 45; continue; + /* if (!(cycle === sliceType$7.nil)) { */ case 44: + $r = check.reportCycle(cycle); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 45: + /* } */ case 43: + _ref$4 = n$1.pred; + _i$4 = 0; + _keys$3 = _ref$4 ? _ref$4.keys() : undefined; + _size$3 = _ref$4 ? _ref$4.size : 0; + /* while (true) { */ case 47: + /* if (!(_i$4 < _size$3)) { break; } */ if(!(_i$4 < _size$3)) { $s = 48; continue; } + _key$3 = _keys$3.next().value; + _entry$3 = _ref$4.get(_key$3); + if (_entry$3 === undefined) { + _i$4++; + /* continue; */ $s = 47; continue; + } + p$1 = _entry$3.k; + p$1.ndeps = p$1.ndeps - (1) >> 0; + $r = heap.Fix((pq.$ptr || (pq.$ptr = new ptrType$97(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, pq))), p$1.index); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$4++; + $s = 47; continue; + case 48: + _tuple$1 = $assertType(n$1.obj, ptrType$17, true); + v = _tuple$1[0]; + info = (_entry$4 = $mapIndex(check.objMap,Object.keyFor(v)), _entry$4 !== undefined ? _entry$4.v : ptrType$59.nil); + if (v === ptrType$17.nil || !info.hasInitializer()) { + /* continue; */ $s = 34; continue; } - if (k === 17) { - $s = -1; return $mul64(s.WordSize, new $Int64(0, 2)); - } - $s = 8; continue; - /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 3: - t$1 = _ref.$val; - n = t$1.len; - if ((n.$high < 0 || (n.$high === 0 && n.$low <= 0))) { - $s = -1; return new $Int64(0, 0); + if ((_entry$5 = $mapIndex(emitted,ptrType$59.keyFor(info)), _entry$5 !== undefined ? _entry$5.v : false)) { + /* continue; */ $s = 34; continue; } - _r$2 = s.Alignof(t$1.elem); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - a = _r$2; - _r$3 = s.Sizeof(t$1.elem); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - z = _r$3; - $s = -1; return (x = $mul64(align(z, a), (new $Int64(n.$high - 0, n.$low - 1))), new $Int64(x.$high + z.$high, x.$low + z.$low)); - /* } else if ($assertType(_ref, ptrType$25, true)[1]) { */ case 4: - t$2 = _ref.$val; - $s = -1; return $mul64(s.WordSize, new $Int64(0, 3)); - /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 5: - t$3 = _ref.$val; - n$1 = t$3.NumFields(); - if (n$1 === 0) { - $s = -1; return new $Int64(0, 0); + _key$4 = info; (emitted || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$59.keyFor(_key$4), { k: _key$4, v: true }); + infoLhs = info.lhs; + if (infoLhs === sliceType$9.nil) { + infoLhs = new sliceType$9([v]); } - _r$4 = s.Offsetsof(t$3.fields); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - offsets = _r$4; - _r$5 = s.Sizeof((x$4 = t$3.fields, x$5 = n$1 - 1 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])).object.typ); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - $24r = (x$1 = (x$2 = n$1 - 1 >> 0, ((x$2 < 0 || x$2 >= offsets.$length) ? ($throwRuntimeError("index out of range"), undefined) : offsets.$array[offsets.$offset + x$2])), x$3 = _r$5, new $Int64(x$1.$high + x$3.$high, x$1.$low + x$3.$low)); - $s = 14; case 14: return $24r; - /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 6: - t$4 = _ref.$val; - $r = assert(!isTypeParam(T)); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return $mul64(s.WordSize, new $Int64(0, 2)); - /* } else if ($assertType(_ref, ptrType$14, true)[1] || $assertType(_ref, ptrType$12, true)[1]) { */ case 7: - t$5 = _ref; - unreachable(); - /* } */ case 8: - $s = -1; return s.WordSize; - /* */ } return; } var $f = {$blk: Sizeof, $c: true, $r, $24r, T, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, a, k, n, n$1, offsets, s, s$1, t, t$1, t$2, t$3, t$4, t$5, x, x$1, x$2, x$3, x$4, x$5, z, $s};return $f; + init$4 = new Initializer.ptr(infoLhs, info.init); + check.Info.InitOrder = $append(check.Info.InitOrder, init$4); + $s = 34; continue; + case 35: + /* */ if (false) { $s = 50; continue; } + /* */ $s = 51; continue; + /* if (false) { */ case 50: + _r$21 = fmt.Println(sliceType$5.nil); /* */ $s = 52; case 52: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + _r$21; + _r$22 = fmt.Println(new sliceType$5([new $String("Initialization order:")])); /* */ $s = 53; case 53: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + _r$22; + _ref$5 = check.Info.InitOrder; + _i$5 = 0; + /* while (true) { */ case 54: + /* if (!(_i$5 < _ref$5.$length)) { break; } */ if(!(_i$5 < _ref$5.$length)) { $s = 55; continue; } + init$5 = ((_i$5 < 0 || _i$5 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$5]); + _r$23 = fmt.Printf("\t%s\n", new sliceType$5([init$5])); /* */ $s = 56; case 56: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + _r$23; + _i$5++; + $s = 54; continue; + case 55: + _r$24 = fmt.Println(sliceType$5.nil); /* */ $s = 57; case 57: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _r$24; + /* } */ case 51: + $s = -1; return; + /* */ } return; } var $f = {$blk: initOrder, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _key, _key$1, _key$2, _key$3, _key$4, _keys, _keys$1, _keys$2, _keys$3, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _size, _size$1, _size$2, _size$3, _tuple, _tuple$1, check, cycle, d, dep, emitted, info, infoLhs, init$4, init$5, n, n$1, obj, obj$1, p, p$1, pq, v, $s};return $f; }; - SizesFor = function SizesFor$1(compiler, arch) { - var _1, _entry, _tuple, arch, compiler, m, ok, s; - m = false; - _1 = compiler; - if (_1 === ("gc")) { - m = gcArchSizes; - } else if (_1 === ("gccgo")) { - m = gccgoArchSizes; - } else { - return $ifaceNil; + findPath = function findPath$1(objMap, from, to, seen) { + var P, _entry, _entry$1, _entry$2, _i, _key, _key$1, _keys, _ref, _size, d, from, objMap, seen, to; + if ((_entry = $mapIndex(seen,Object.keyFor(from)), _entry !== undefined ? _entry.v : false)) { + return sliceType$7.nil; } - _tuple = (_entry = $mapIndex(m,$String.keyFor(arch)), _entry !== undefined ? [_entry.v, true] : [ptrType$83.nil, false]); - s = _tuple[0]; - ok = _tuple[1]; - if (!ok) { - return $ifaceNil; + _key = from; (seen || $throwRuntimeError("assignment to entry in nil map")).set(Object.keyFor(_key), { k: _key, v: true }); + _ref = (_entry$1 = $mapIndex(objMap,Object.keyFor(from)), _entry$1 !== undefined ? _entry$1.v : ptrType$59.nil).deps; + _i = 0; + _keys = _ref ? _ref.keys() : undefined; + _size = _ref ? _ref.size : 0; + while (true) { + if (!(_i < _size)) { break; } + _key$1 = _keys.next().value; + _entry$2 = _ref.get(_key$1); + if (_entry$2 === undefined) { + _i++; + continue; + } + d = _entry$2.k; + if ($interfaceIsEqual(d, to)) { + return new sliceType$7([d]); + } + P = findPath(objMap, d, to, seen); + if (!(P === sliceType$7.nil)) { + return $append(P, d); + } + _i++; } - return s; + return sliceType$7.nil; }; - $pkg.SizesFor = SizesFor; - $ptrType(Config).prototype.alignof = function alignof(T) { - var {$24r, T, _r$1, _r$2, a, conf, s, $s, $r, $c} = $restore(this, {T}); + $ptrType(Checker).prototype.reportCycle = function reportCycle(cycle) { + var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _r, _r$1, _r$2, _r$3, check, cycle, i, obj, $s, $r, $c} = $restore(this, {cycle}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - conf = this; - s = conf.Sizes; - /* */ if (!($interfaceIsEqual(s, $ifaceNil))) { $s = 1; continue; } + check = this; + obj = (0 >= cycle.$length ? ($throwRuntimeError("index out of range"), undefined) : cycle.$array[cycle.$offset + 0]); + /* */ if (cycle.$length === 1) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (!($interfaceIsEqual(s, $ifaceNil))) { */ case 1: - _r$1 = s.Alignof(T); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - a = _r$1; - if ((a.$high > 0 || (a.$high === 0 && a.$low >= 1))) { - $s = -1; return a; - } - $panic(new $String("Config.Sizes.Alignof returned an alignment < 1")); + /* if (cycle.$length === 1) { */ case 1: + _arg = obj; + _r = obj.Name(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = new $String(_r); + $r = check.errorf(_arg, 9, "initialization cycle: %s refers to itself", new sliceType$5([_arg$1])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; /* } */ case 2: - _r$2 = stdSizes.Alignof(T); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 5; case 5: return $24r; - /* */ } return; } var $f = {$blk: alignof, $c: true, $r, $24r, T, _r$1, _r$2, a, conf, s, $s};return $f; + _arg$2 = obj; + _r$1 = obj.Name(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg$3 = new $String(_r$1); + $r = check.errorf(_arg$2, 9, "initialization cycle for %s", new sliceType$5([_arg$3])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = cycle.$length - 1 >> 0; + /* while (true) { */ case 7: + /* if (!(i >= 0)) { break; } */ if(!(i >= 0)) { $s = 8; continue; } + _arg$4 = obj; + _r$2 = obj.Name(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg$5 = new $String(_r$2); + $r = check.errorf(_arg$4, 9, "\t%s refers to", new sliceType$5([_arg$5])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + obj = ((i < 0 || i >= cycle.$length) ? ($throwRuntimeError("index out of range"), undefined) : cycle.$array[cycle.$offset + i]); + i = i - (1) >> 0; + $s = 7; continue; + case 8: + _arg$6 = obj; + _r$3 = obj.Name(); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _arg$7 = new $String(_r$3); + $r = check.errorf(_arg$6, 9, "\t%s", new sliceType$5([_arg$7])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: reportCycle, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _r, _r$1, _r$2, _r$3, check, cycle, i, obj, $s};return $f; }; - $ptrType(Config).prototype.offsetsof = function offsetsof(T) { - var {T, _i, _r$1, _r$2, _ref, conf, o, offsets, s, $s, $r, $c} = $restore(this, {T}); + $ptrType(graphNode).prototype.cost = function cost() { + var n; + n = this; + return $imul((n.pred ? n.pred.size : 0), (n.succ ? n.succ.size : 0)); + }; + $ptrType(nodeSet).prototype.add = function add$2(p) { + var _key, p, s; + s = this; + if (s.$get() === false) { + s.$set(new $global.Map()); + } + _key = p; (s.$get() || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$98.keyFor(_key), { k: _key, v: true }); + }; + dependencyGraph = function dependencyGraph$1(objMap) { + var {G, M, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _entry$6, _entry$7, _entry$8, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _i$8, _key, _key$1, _key$2, _key$3, _key$4, _key$5, _key$6, _key$7, _keys, _keys$1, _keys$2, _keys$3, _keys$4, _keys$5, _keys$6, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _size, _size$1, _size$2, _size$3, _size$4, _size$5, _size$6, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, d, d$1, d$2, funcG, i, n, n$1, n$2, n$3, obj, obj$1, obj$2, objMap, ok, p, s, s$1, $s, $r, $c} = $restore(this, {objMap}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - conf = this; - offsets = sliceType$19.nil; - /* */ if (T.NumFields() > 0) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (T.NumFields() > 0) { */ case 1: - s = conf.Sizes; - /* */ if (!($interfaceIsEqual(s, $ifaceNil))) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!($interfaceIsEqual(s, $ifaceNil))) { */ case 3: - _r$1 = s.Offsetsof(T.fields); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - offsets = _r$1; - if (!((offsets.$length === T.NumFields()))) { - $panic(new $String("Config.Sizes.Offsetsof returned the wrong number of offsets")); + funcG = [funcG]; + M = new $global.Map(); + _ref = objMap; + _i = 0; + _keys = _ref ? _ref.keys() : undefined; + _size = _ref ? _ref.size : 0; + while (true) { + if (!(_i < _size)) { break; } + _key = _keys.next().value; + _entry = _ref.get(_key); + if (_entry === undefined) { + _i++; + continue; + } + obj = _entry.k; + _tuple = $assertType(obj, dependency, true); + obj$1 = _tuple[0]; + if (!($interfaceIsEqual(obj$1, $ifaceNil))) { + _key$1 = obj$1; (M || $throwRuntimeError("assignment to entry in nil map")).set(dependency.keyFor(_key$1), { k: _key$1, v: new graphNode.ptr(obj$1, false, false, 0, 0) }); + } + _i++; + } + _ref$1 = M; + _i$1 = 0; + _keys$1 = _ref$1 ? _ref$1.keys() : undefined; + _size$1 = _ref$1 ? _ref$1.size : 0; + while (true) { + if (!(_i$1 < _size$1)) { break; } + _key$2 = _keys$1.next().value; + _entry$1 = _ref$1.get(_key$2); + if (_entry$1 === undefined) { + _i$1++; + continue; + } + obj$2 = _entry$1.k; + n = _entry$1.v; + _ref$2 = (_entry$2 = $mapIndex(objMap,Object.keyFor(obj$2)), _entry$2 !== undefined ? _entry$2.v : ptrType$59.nil).deps; + _i$2 = 0; + _keys$2 = _ref$2 ? _ref$2.keys() : undefined; + _size$2 = _ref$2 ? _ref$2.size : 0; + while (true) { + if (!(_i$2 < _size$2)) { break; } + _key$3 = _keys$2.next().value; + _entry$3 = _ref$2.get(_key$3); + if (_entry$3 === undefined) { + _i$2++; + continue; } - _ref = offsets; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - o = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if ((o.$high < 0 || (o.$high === 0 && o.$low < 0))) { - $panic(new $String("Config.Sizes.Offsetsof returned an offset < 0")); - } - _i++; + d = _entry$3.k; + _tuple$1 = $assertType(d, dependency, true); + d$1 = _tuple$1[0]; + if (!($interfaceIsEqual(d$1, $ifaceNil))) { + d$2 = (_entry$4 = $mapIndex(M,dependency.keyFor(d$1)), _entry$4 !== undefined ? _entry$4.v : ptrType$98.nil); + (n === ptrType$98.nil && $throwNilPointerError(), (n.$ptr_succ || (n.$ptr_succ = new ptrType$99(function() { return this.$target.succ; }, function($v) { this.$target.succ = $v; }, n)))).add(d$2); + (d$2 === ptrType$98.nil && $throwNilPointerError(), (d$2.$ptr_pred || (d$2.$ptr_pred = new ptrType$99(function() { return this.$target.pred; }, function($v) { this.$target.pred = $v; }, d$2)))).add(n); } - $s = 5; continue; - /* } else { */ case 4: - _r$2 = stdSizes.Offsetsof(T.fields); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - offsets = _r$2; - /* } */ case 5: - /* } */ case 2: - $s = -1; return offsets; - /* */ } return; } var $f = {$blk: offsetsof, $c: true, $r, T, _i, _r$1, _r$2, _ref, conf, o, offsets, s, $s};return $f; - }; - $ptrType(Config).prototype.offsetof = function offsetof(typ$3, index$1) { - var {_i, _r$1, _r$2, _ref, conf, i, index$1, o, s, typ$3, x, x$1, x$2, $s, $r, $c} = $restore(this, {typ$3, index$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - conf = this; - o = new $Int64(0, 0); - _ref = index$1; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$1 = under(typ$3); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - s = $assertType(_r$1, ptrType$11); - _r$2 = conf.offsetsof(s); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - o = (x = (x$1 = _r$2, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])), new $Int64(o.$high + x.$high, o.$low + x.$low)); - typ$3 = (x$2 = s.fields, ((i < 0 || i >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i])).object.typ; - _i++; - $s = 1; continue; - case 2: - $s = -1; return o; - /* */ } return; } var $f = {$blk: offsetof, $c: true, $r, _i, _r$1, _r$2, _ref, conf, i, index$1, o, s, typ$3, x, x$1, x$2, $s};return $f; - }; - $ptrType(Config).prototype.sizeof = function sizeof(T) { - var {$24r, T, _r$1, _r$2, conf, s, z, $s, $r, $c} = $restore(this, {T}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - conf = this; - s = conf.Sizes; - /* */ if (!($interfaceIsEqual(s, $ifaceNil))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!($interfaceIsEqual(s, $ifaceNil))) { */ case 1: - _r$1 = s.Sizeof(T); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - z = _r$1; - if ((z.$high > 0 || (z.$high === 0 && z.$low >= 0))) { - $s = -1; return z; + _i$2++; } - $panic(new $String("Config.Sizes.Sizeof returned a size < 0")); - /* } */ case 2: - _r$2 = stdSizes.Sizeof(T); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 5; case 5: return $24r; - /* */ } return; } var $f = {$blk: sizeof, $c: true, $r, $24r, T, _r$1, _r$2, conf, s, z, $s};return $f; - }; - align = function align$1(x, a) { - var a, x, x$1, x$2, y; - y = (x$1 = new $Int64(x.$high + a.$high, x.$low + a.$low), new $Int64(x$1.$high - 0, x$1.$low - 1)); - return (x$2 = $div64(y, a, true), new $Int64(y.$high - x$2.$high, y.$low - x$2.$low)); - }; - NewSignatureType = function NewSignatureType$1(recv, recvTypeParams, typeParams, params, results, variadic) { - var {_arg, _r$1, _r$2, _r$3, _r$4, _tuple, _v, core, n, ok, params, recv, recvTypeParams, results, sig, typeParams, variadic, $s, $r, $c} = $restore(this, {recv, recvTypeParams, typeParams, params, results, variadic}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - /* */ if (variadic) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (variadic) { */ case 1: - n = params.Len(); - if (n === 0) { - $panic(new $String("variadic function must have at least one parameter")); + _i$1++; + } + _tmp = sliceType$28.nil; + _tmp$1 = sliceType$28.nil; + G = _tmp; + funcG[0] = _tmp$1; + _ref$3 = M; + _i$3 = 0; + _keys$3 = _ref$3 ? _ref$3.keys() : undefined; + _size$3 = _ref$3 ? _ref$3.size : 0; + while (true) { + if (!(_i$3 < _size$3)) { break; } + _key$4 = _keys$3.next().value; + _entry$5 = _ref$3.get(_key$4); + if (_entry$5 === undefined) { + _i$3++; + continue; } - _r$1 = coreString(params.At(n - 1 >> 0).object.typ); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - core = _r$1; - _tuple = $assertType(core, ptrType$25, true); - ok = _tuple[1]; - if (!(!ok)) { _v = false; $s = 6; continue s; } - _r$2 = isString(core); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _v = !_r$2; case 6: - /* */ if (_v) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_v) { */ case 4: - _r$3 = core.String(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _arg = new $String(_r$3); - _r$4 = fmt.Sprintf("got %s, want variadic parameter with unnamed slice type or string as core type", new sliceType$6([_arg])); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $panic(new $String(_r$4)); - /* } */ case 5: - /* } */ case 2: - sig = new Signature.ptr(ptrType$48.nil, ptrType$48.nil, ptrType.nil, recv, params, results, variadic); - if (!((recvTypeParams.$length === 0))) { - if (recv === ptrType$16.nil) { - $panic(new $String("function with receiver type parameters must have a receiver")); + n$1 = _entry$5.v; + _tuple$2 = $assertType(n$1.obj, ptrType$2, true); + ok = _tuple$2[1]; + if (ok) { + funcG[0] = $append(funcG[0], n$1); + } else { + G = $append(G, n$1); } - sig.rparams = bindTParams(recvTypeParams); + _i$3++; } - if (!((typeParams.$length === 0))) { - if (!(recv === ptrType$16.nil)) { - $panic(new $String("function with type parameters cannot have a receiver")); + $r = sort.Slice(funcG[0], (function(funcG) { return function dependencyGraph·func1(i, j) { + var i, j; + return ((i < 0 || i >= funcG[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : funcG[0].$array[funcG[0].$offset + i]).cost() < ((j < 0 || j >= funcG[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : funcG[0].$array[funcG[0].$offset + j]).cost(); + }; })(funcG)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _ref$4 = funcG[0]; + _i$4 = 0; + while (true) { + if (!(_i$4 < _ref$4.$length)) { break; } + n$2 = ((_i$4 < 0 || _i$4 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$4]); + _ref$5 = n$2.pred; + _i$5 = 0; + _keys$4 = _ref$5 ? _ref$5.keys() : undefined; + _size$4 = _ref$5 ? _ref$5.size : 0; + while (true) { + if (!(_i$5 < _size$4)) { break; } + _key$5 = _keys$4.next().value; + _entry$6 = _ref$5.get(_key$5); + if (_entry$6 === undefined) { + _i$5++; + continue; + } + p = _entry$6.k; + if (!(p === n$2)) { + _ref$6 = n$2.succ; + _i$6 = 0; + _keys$5 = _ref$6 ? _ref$6.keys() : undefined; + _size$5 = _ref$6 ? _ref$6.size : 0; + while (true) { + if (!(_i$6 < _size$5)) { break; } + _key$6 = _keys$5.next().value; + _entry$7 = _ref$6.get(_key$6); + if (_entry$7 === undefined) { + _i$6++; + continue; + } + s = _entry$7.k; + if (!(s === n$2)) { + (p === ptrType$98.nil && $throwNilPointerError(), (p.$ptr_succ || (p.$ptr_succ = new ptrType$99(function() { return this.$target.succ; }, function($v) { this.$target.succ = $v; }, p)))).add(s); + (s === ptrType$98.nil && $throwNilPointerError(), (s.$ptr_pred || (s.$ptr_pred = new ptrType$99(function() { return this.$target.pred; }, function($v) { this.$target.pred = $v; }, s)))).add(p); + } + _i$6++; + } + $mapDelete(p.succ, ptrType$98.keyFor(n$2)); + } + _i$5++; } - sig.tparams = bindTParams(typeParams); + _ref$7 = n$2.succ; + _i$7 = 0; + _keys$6 = _ref$7 ? _ref$7.keys() : undefined; + _size$6 = _ref$7 ? _ref$7.size : 0; + while (true) { + if (!(_i$7 < _size$6)) { break; } + _key$7 = _keys$6.next().value; + _entry$8 = _ref$7.get(_key$7); + if (_entry$8 === undefined) { + _i$7++; + continue; + } + s$1 = _entry$8.k; + $mapDelete(s$1.pred, ptrType$98.keyFor(n$2)); + _i$7++; + } + _i$4++; } - $s = -1; return sig; - /* */ } return; } var $f = {$blk: NewSignatureType$1, $c: true, $r, _arg, _r$1, _r$2, _r$3, _r$4, _tuple, _v, core, n, ok, params, recv, recvTypeParams, results, sig, typeParams, variadic, $s};return $f; - }; - $pkg.NewSignatureType = NewSignatureType; - $ptrType(Signature).prototype.Recv = function Recv() { - var s; - s = this; - return s.recv; - }; - $ptrType(Signature).prototype.TypeParams = function TypeParams() { - var s; - s = this; - return s.tparams; - }; - $ptrType(Signature).prototype.RecvTypeParams = function RecvTypeParams() { - var s; - s = this; - return s.rparams; + _ref$8 = G; + _i$8 = 0; + while (true) { + if (!(_i$8 < _ref$8.$length)) { break; } + i = _i$8; + n$3 = ((_i$8 < 0 || _i$8 >= _ref$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$8.$array[_ref$8.$offset + _i$8]); + n$3.index = i; + n$3.ndeps = (n$3.succ ? n$3.succ.size : 0); + _i$8++; + } + $s = -1; return G; + /* */ } return; } var $f = {$blk: dependencyGraph$1, $c: true, $r, G, M, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _entry$6, _entry$7, _entry$8, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _i$8, _key, _key$1, _key$2, _key$3, _key$4, _key$5, _key$6, _key$7, _keys, _keys$1, _keys$2, _keys$3, _keys$4, _keys$5, _keys$6, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _size, _size$1, _size$2, _size$3, _size$4, _size$5, _size$6, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, d, d$1, d$2, funcG, i, n, n$1, n$2, n$3, obj, obj$1, obj$2, objMap, ok, p, s, s$1, $s};return $f; }; - $ptrType(Signature).prototype.Params = function Params() { - var s; - s = this; - return s.params; + nodeQueue.prototype.Len = function Len$9() { + var a; + a = this; + return a.$length; }; - $ptrType(Signature).prototype.Results = function Results() { - var s; - s = this; - return s.results; + $ptrType(nodeQueue).prototype.Len = function(...$args) { return this.$get().Len(...$args); }; + nodeQueue.prototype.Swap = function Swap$3(i, j) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, a, i, j, x, y; + a = this; + _tmp = ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i]); + _tmp$1 = ((j < 0 || j >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + j]); + x = _tmp; + y = _tmp$1; + _tmp$2 = y; + _tmp$3 = x; + ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i] = _tmp$2); + ((j < 0 || j >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + j] = _tmp$3); + _tmp$4 = j; + _tmp$5 = i; + x.index = _tmp$4; + y.index = _tmp$5; }; - $ptrType(Signature).prototype.Variadic = function Variadic() { - var s; - s = this; - return s.variadic; + $ptrType(nodeQueue).prototype.Swap = function(...$args) { return this.$get().Swap(...$args); }; + nodeQueue.prototype.Less = function Less$3(i, j) { + var {$24r, _r, _r$1, _tmp, _tmp$1, _v, _v$1, a, i, j, x, y, $s, $r, $c} = $restore(this, {i, j}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + a = this; + _tmp = ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i]); + _tmp$1 = ((j < 0 || j >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + j]); + x = _tmp; + y = _tmp$1; + if (x.ndeps < y.ndeps) { _v = true; $s = 1; continue s; } + if (!(x.ndeps === y.ndeps)) { _v$1 = false; $s = 2; continue s; } + _r = x.obj.order(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = y.obj.order(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v$1 = _r < _r$1; case 2: + _v = _v$1; case 1: + $24r = _v; + $s = 5; case 5: return $24r; + /* */ } return; } var $f = {$blk: Less$3, $c: true, $r, $24r, _r, _r$1, _tmp, _tmp$1, _v, _v$1, a, i, j, x, y, $s};return $f; }; - $ptrType(Signature).prototype.Underlying = function Underlying$5() { - var t; - t = this; - return t; + $ptrType(nodeQueue).prototype.Less = function(...$args) { return this.$get().Less(...$args); }; + $ptrType(nodeQueue).prototype.Push = function Push(x) { + var a, x; + a = this; + $panic(new $String("unreachable")); }; - $ptrType(Signature).prototype.String = function String$10() { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = TypeString(t, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$10, $c: true, $r, $24r, _r$1, t, $s};return $f; + $ptrType(nodeQueue).prototype.Pop = function Pop() { + var a, n, x, x$1, x$2; + a = this; + n = a.$get().$length; + x$2 = (x = a.$get(), x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + x$2.index = -1; + a.$set($subslice((a.$get()), 0, (n - 1 >> 0))); + return x$2; }; - $ptrType(Checker).prototype.funcType = function funcType(sig, recvPar, ftyp) { - var {_1, _i, _i$1, _key, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, check, ftyp, got, i, i$1, p, params, recv, recv$1, recvList, recvPar, recvTPar, recvTParams, results, rname, rparams, scope, sig, smap, tpar, tparams, variadic, x, x$1, $s, $deferred, $r, $c} = $restore(this, {sig, recvPar, ftyp}); + $ptrType(Checker).prototype.infer = function infer(posn, tparams, targs, params, args) { + var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, _arg, _arg$1, _arg$2, _entry, _entry$1, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _key, _key$1, _keys, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _size, _tuple, _tuple$1, _tuple$2, _tuple$3, _v, _v$1, _v$2, arg, arg$1, args, cause, check, constraint, core, d, dirty, errorf, i, i$1, i$2, i$3, i$4, index, index$1, inferred$1, inferred$2, inferred$3, m, m$1, max, maxUntyped, n, n$1, nn, obj, ok, par, params, posn, sig, single, smap, smap$1, t0, t1, targ, targs, targs2, tpar, tpar$1, tpar$2, tparams, tx, typ$3, typ$4, typ$5, u, untyped, $s, $deferred, $r, $c} = $restore(this, {posn, tparams, targs, params, args}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); check = [check]; - recv = [recv]; - sig = [sig]; + inferred$1 = [inferred$1]; + tparams = [tparams]; + u = [u]; + inferred$1[0] = sliceType$3.nil; check[0] = this; - $r = check[0].openScope(ftyp, "function"); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - check[0].environment.scope.isFunc = true; - $r = check[0].recordScope(ftyp, check[0].environment.scope); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - sig[0].scope = check[0].environment.scope; - $deferred.push([$methodVal(check[0], "closeScope"), []]); - /* */ if (!(recvPar === ptrType$49.nil) && recvPar.List.$length > 0) { $s = 3; continue; } + /* */ if (false) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (false) { */ case 1: + $deferred.push([(function(check, inferred$1, tparams, u) { return function Checker·infer·func1() { + var {$s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = assert(inferred$1[0] === sliceType$3.nil || (inferred$1[0].$length === tparams[0].$length) && !containsNil(inferred$1[0])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·infer·func1, $c: true, $r, $s};return $f; + }; })(check, inferred$1, tparams, u), []]); + /* } */ case 2: + /* */ if (false) { $s = 3; continue; } /* */ $s = 4; continue; - /* if (!(recvPar === ptrType$49.nil) && recvPar.List.$length > 0) { */ case 3: - _r$1 = check[0].unpackRecv((x = recvPar.List, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).Type, true); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - rname = _tuple[1]; - rparams = _tuple[2]; - /* */ if (rparams.$length > 0) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (rparams.$length > 0) { */ case 6: - _r$2 = check[0].declareTypeParams(sliceType$9.nil, rparams); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - tparams = _r$2; - sig[0].rparams = bindTParams(tparams); - _ref = rparams; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - p = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (p.Name === "_") { - if (check[0].recvTParamMap === false) { - check[0].recvTParamMap = new $global.Map(); + /* if (false) { */ case 3: + $r = check[0].dump("== infer : %s%s \xE2\x9E\x9E %s", new sliceType$5([tparams[0], params, targs])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([(function(check, inferred$1, tparams, u) { return function Checker·infer·func2() { + var {$s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = check[0].dump("=> %s \xE2\x9E\x9E %s\n", new sliceType$5([tparams[0], inferred$1[0]])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·infer·func2, $c: true, $r, $s};return $f; + }; })(check, inferred$1, tparams, u), []]); + /* } */ case 4: + n = tparams[0].$length; + $r = assert(n > 0 && targs.$length <= n); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = assert(params.Len() === args.$length); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if ((targs.$length === n) && !containsNil(targs)) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if ((targs.$length === n) && !containsNil(targs)) { */ case 8: + inferred$1[0] = targs; + $24r = inferred$1[0]; + $s = 10; case 10: return $24r; + /* } */ case 9: + if (targs.$length < n) { + targs2 = $makeSlice(sliceType$3, n); + $copySlice(targs2, targs); + targs = targs2; + } + /* */ if (params.Len() > 0) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (params.Len() > 0) { */ case 11: + _r = makeSubstMap(tparams[0], targs); /* */ $s = 13; case 13: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + smap = _r; + _r$1 = check[0].subst(nopos, params, smap, ptrType$10.nil, check[0].context()); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + params = $assertType(_r$1, ptrType$16); + /* } */ case 12: + _arg = tparams[0]; + _arg$1 = targs; + _r$2 = check[0].allowVersion(check[0].pkg, posn, $clone(go1_21, version)); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg$2 = _r$2; + _r$3 = newUnifier(_arg, _arg$1, _arg$2); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + u[0] = _r$3; + errorf = (function(check, inferred$1, tparams, u) { return function Checker·infer·func3(kind, tpar, targ, arg) { + var {_i, _r$4, _r$5, _r$6, _ref, allFailed, arg, inferred$2, kind, smap$1, targ, targ$1, targs$1, tpar, $s, $r, $c} = $restore(this, {kind, tpar, targ, arg}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + targs$1 = u[0].inferred(tparams[0]); + /* */ if ($interfaceIsEqual((0 >= targs$1.$length ? ($throwRuntimeError("index out of range"), undefined) : targs$1.$array[targs$1.$offset + 0]), $ifaceNil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ($interfaceIsEqual((0 >= targs$1.$length ? ($throwRuntimeError("index out of range"), undefined) : targs$1.$array[targs$1.$offset + 0]), $ifaceNil)) { */ case 1: + allFailed = true; + _ref = targs$1; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + targ$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!($interfaceIsEqual(targ$1, $ifaceNil))) { + allFailed = false; + break; } - _key = p; (check[0].recvTParamMap || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$30.keyFor(_key), { k: _key, v: ((i < 0 || i >= tparams.$length) ? ($throwRuntimeError("index out of range"), undefined) : tparams.$array[tparams.$offset + i]) }); + _i++; } - _i++; - } - recvTParams = sliceType$9.nil; - /* */ if (!(rname === ptrType$30.nil)) { $s = 9; continue; } + /* */ if (allFailed) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (allFailed) { */ case 3: + $r = check[0].errorf(arg, 138, "%s %s of %s does not match %s (cannot infer %s)", new sliceType$5([new $String(kind), targ, arg.expr, tpar, new $String(typeParamsString(tparams[0]))])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 4: + /* } */ case 2: + _r$4 = makeSubstMap(tparams[0], targs$1); /* */ $s = 6; case 6: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + smap$1 = _r$4; + _r$5 = arg.Pos(); /* */ $s = 7; case 7: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$6 = check[0].subst(_r$5, tpar, smap$1, ptrType$10.nil, check[0].context()); /* */ $s = 8; case 8: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + inferred$2 = _r$6; + /* */ if (!($interfaceIsEqual(inferred$2, tpar))) { $s = 9; continue; } /* */ $s = 10; continue; - /* if (!(rname === ptrType$30.nil)) { */ case 9: - _r$3 = check[0].genericType(rname, ptrType$34.nil); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple$1 = $assertType(_r$3, ptrType$9, true); - recv$1 = _tuple$1[0]; - /* */ if (!(recv$1 === ptrType$9.nil)) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (!(recv$1 === ptrType$9.nil)) { */ case 12: - _r$4 = recv$1.TypeParams(); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$5 = _r$4.list(); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - recvTParams = _r$5; - /* } */ case 13: - /* } */ case 10: - /* */ if (tparams.$length === recvTParams.$length) { $s = 16; continue; } - /* */ if (tparams.$length < recvTParams.$length) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (tparams.$length === recvTParams.$length) { */ case 16: - _r$6 = makeRenameMap(recvTParams, tparams); /* */ $s = 19; case 19: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - smap = _r$6; - _ref$1 = tparams; - _i$1 = 0; - /* while (true) { */ case 20: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 21; continue; } - i$1 = _i$1; - tpar = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - recvTPar = ((i$1 < 0 || i$1 >= recvTParams.$length) ? ($throwRuntimeError("index out of range"), undefined) : recvTParams.$array[recvTParams.$offset + i$1]); - check[0].mono.recordCanon(tpar, recvTPar); - _r$7 = check[0].subst(tpar.obj.object.pos, recvTPar.bound, smap, ptrType$9.nil, check[0].context()); /* */ $s = 22; case 22: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - tpar.bound = _r$7; - _i$1++; - $s = 20; continue; - case 21: - $s = 18; continue; - /* } else if (tparams.$length < recvTParams.$length) { */ case 17: - _r$8 = measure(tparams.$length, "type parameter"); /* */ $s = 23; case 23: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - got = _r$8; - $r = check[0].errorf(recvPar, 31, "got %s, but receiver base type declares %d", new sliceType$6([new $String(got), new $Int(recvTParams.$length)])); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 18: - /* } */ case 7: - /* } */ case 4: - /* */ if (!(ftyp.TypeParams === ptrType$49.nil)) { $s = 25; continue; } - /* */ $s = 26; continue; - /* if (!(ftyp.TypeParams === ptrType$49.nil)) { */ case 25: - $r = check[0].collectTypeParams((sig[0].$ptr_tparams || (sig[0].$ptr_tparams = new ptrType$84(function() { return this.$target.tparams; }, function($v) { this.$target.tparams = $v; }, sig[0]))), ftyp.TypeParams); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!(recvPar === ptrType$49.nil)) { $s = 28; continue; } - /* */ $s = 29; continue; - /* if (!(recvPar === ptrType$49.nil)) { */ case 28: - $r = check[0].error(ftyp.TypeParams, 143, "methods cannot have type parameters"); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 29: - /* } */ case 26: - scope = NewScope(check[0].environment.scope, 0, 0, "function body (temp. scope)"); - _r$9 = check[0].collectParams(scope, recvPar, false); /* */ $s = 31; case 31: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _tuple$2 = _r$9; - recvList = _tuple$2[0]; - _r$10 = check[0].collectParams(scope, ftyp.Params, true); /* */ $s = 32; case 32: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _tuple$3 = _r$10; - params = _tuple$3[0]; - variadic = _tuple$3[1]; - _r$11 = check[0].collectParams(scope, ftyp.Results, false); /* */ $s = 33; case 33: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _tuple$4 = _r$11; - results = _tuple$4[0]; - $r = scope.squash((function(check, recv, sig) { return function Checker·funcType·func1(obj, alt) { - var {_arg, _arg$1, _r$12, alt, obj, $s, $r, $c} = $restore(this, {obj, alt}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _arg = obj; - _r$12 = obj.Name(); /* */ $s = 1; case 1: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _arg$1 = new $String(_r$12); - $r = check[0].errorf(_arg, 10, "%s redeclared in this block", new sliceType$6([_arg$1])); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].reportAltDecl(alt); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* if (!($interfaceIsEqual(inferred$2, tpar))) { */ case 9: + $r = check[0].errorf(arg, 138, "%s %s of %s does not match inferred type %s for %s", new sliceType$5([new $String(kind), targ, arg.expr, inferred$2, tpar])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 11; continue; + /* } else { */ case 10: + $r = check[0].errorf(arg, 138, "%s %s of %s does not match %s", new sliceType$5([new $String(kind), targ, arg.expr, tpar])); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 11: $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·funcType·func1, $c: true, $r, _arg, _arg$1, _r$12, alt, obj, $s};return $f; - }; })(check, recv, sig)); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!(recvPar === ptrType$49.nil)) { $s = 35; continue; } - /* */ $s = 36; continue; - /* if (!(recvPar === ptrType$49.nil)) { */ case 35: - recv[0] = ptrType$16.nil; - _1 = recvList.$length; - /* */ if (_1 === (0)) { $s = 38; continue; } - /* */ if (_1 === (1)) { $s = 39; continue; } - /* */ $s = 40; continue; - /* if (_1 === (0)) { */ case 38: - recv[0] = NewParam(0, ptrType$1.nil, "", (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])); - $s = 41; continue; - /* } else if (_1 === (1)) { */ case 39: - recv[0] = (0 >= recvList.$length ? ($throwRuntimeError("index out of range"), undefined) : recvList.$array[recvList.$offset + 0]); - $s = 41; continue; - /* } else { */ case 40: - $r = check[0].error((x$1 = recvList.$length - 1 >> 0, ((x$1 < 0 || x$1 >= recvList.$length) ? ($throwRuntimeError("index out of range"), undefined) : recvList.$array[recvList.$offset + x$1])), 32, "method has multiple receivers"); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - recv[0] = (0 >= recvList.$length ? ($throwRuntimeError("index out of range"), undefined) : recvList.$array[recvList.$offset + 0]); - /* } */ case 41: - case 37: - sig[0].recv = recv[0]; - check[0].later((function(check, recv, sig) { return function Checker·funcType·func2() { - var {T, T$1, T$2, _r$12, _ref$2, _ref$3, _tuple$5, cause, rtyp, u, u$1, u$2, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _tuple$5 = deref(recv[0].object.typ); - rtyp = _tuple$5[0]; - if ($interfaceIsEqual(rtyp, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { - $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·infer·func3, $c: true, $r, _i, _r$4, _r$5, _r$6, _ref, allFailed, arg, inferred$2, kind, smap$1, targ, targ$1, targs$1, tpar, $s};return $f; + }; })(check, inferred$1, tparams, u); + untyped = sliceType$24.nil; + /* */ if (false) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (false) { */ case 17: + $r = u[0].tracef("== function parameters: %s", new sliceType$5([params])); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = u[0].tracef("-- function arguments : %s", new sliceType$5([args])); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 18: + _ref = args; + _i = 0; + /* while (true) { */ case 21: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 22; continue; } + i = _i; + arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (arg.mode === 0) { + _i++; + /* continue; */ $s = 21; continue; + } + par = params.At(i); + _r$4 = isParameterized(tparams[0], par.object.typ); /* */ $s = 26; case 26: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + if (_r$4) { _v = true; $s = 25; continue s; } + _r$5 = isParameterized(tparams[0], arg.typ); /* */ $s = 27; case 27: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _v = _r$5; case 25: + /* */ if (_v) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (_v) { */ case 23: + /* */ if (isTyped(arg.typ)) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (isTyped(arg.typ)) { */ case 28: + _r$6 = u[0].unify(par.object.typ, arg.typ, 1); /* */ $s = 33; case 33: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + /* */ if (!_r$6) { $s = 31; continue; } + /* */ $s = 32; continue; + /* if (!_r$6) { */ case 31: + $r = errorf("type", par.object.typ, arg.typ, arg); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + inferred$1[0] = sliceType$3.nil; + $24r$1 = inferred$1[0]; + $s = 35; case 35: return $24r$1; + /* } */ case 32: + $s = 30; continue; + /* } else { */ case 29: + _tuple = $assertType(par.object.typ, ptrType$15, true); + ok = _tuple[1]; + if (ok && !arg.isNil()) { + untyped = $append(untyped, i); } - _ref$2 = rtyp; - /* */ if ($assertType(_ref$2, ptrType$9, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref$2, ptrType$8, true)[1]) { $s = 2; continue; } - /* */ $s = 3; continue; - /* switch (0) { default: if ($assertType(_ref$2, ptrType$9, true)[1]) { */ case 1: - T = _ref$2.$val; - /* */ if (!(T.TypeArgs() === ptrType$56.nil) && sig[0].RecvTypeParams() === ptrType$48.nil) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (!(T.TypeArgs() === ptrType$56.nil) && sig[0].RecvTypeParams() === ptrType$48.nil) { */ case 5: - $r = check[0].errorf(recv[0], 32, "cannot define new methods on instantiated type %s", new sliceType$6([rtyp])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* break; */ $s = 4; continue; - /* } */ case 6: - /* */ if (!(T.obj.object.pkg === check[0].pkg)) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (!(T.obj.object.pkg === check[0].pkg)) { */ case 8: - $r = check[0].errorf(recv[0], 32, "cannot define new methods on non-local type %s", new sliceType$6([rtyp])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* break; */ $s = 4; continue; - /* } */ case 9: - cause = ""; - _r$12 = T.under(); /* */ $s = 11; case 11: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _ref$3 = _r$12; - /* */ if ($assertType(_ref$3, ptrType$8, true)[1]) { $s = 12; continue; } - /* */ if ($assertType(_ref$3, ptrType$26, true)[1] || $assertType(_ref$3, ptrType$13, true)[1]) { $s = 13; continue; } - /* */ if ($assertType(_ref$3, ptrType$14, true)[1]) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if ($assertType(_ref$3, ptrType$8, true)[1]) { */ case 12: - u = _ref$3.$val; - if (u.kind === 18) { - cause = "unsafe.Pointer"; - } - $s = 15; continue; - /* } else if ($assertType(_ref$3, ptrType$26, true)[1] || $assertType(_ref$3, ptrType$13, true)[1]) { */ case 13: - u$1 = _ref$3; - cause = "pointer or interface type"; - $s = 15; continue; - /* } else if ($assertType(_ref$3, ptrType$14, true)[1]) { */ case 14: - u$2 = _ref$3.$val; - unreachable(); - /* } */ case 15: - /* */ if (!(cause === "")) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (!(cause === "")) { */ case 16: - $r = check[0].errorf(recv[0], 32, "invalid receiver type %s (%s)", new sliceType$6([rtyp, new $String(cause)])); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 17: - $s = 4; continue; - /* } else if ($assertType(_ref$2, ptrType$8, true)[1]) { */ case 2: - T$1 = _ref$2.$val; - $r = check[0].errorf(recv[0], 32, "cannot define new methods on non-local type %s", new sliceType$6([rtyp])); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 4; continue; - /* } else { */ case 3: - T$2 = _ref$2; - $r = check[0].errorf(recv[0], 32, "invalid receiver type %s", new sliceType$6([recv[0].object.typ])); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } } */ case 4: - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·funcType·func2, $c: true, $r, T, T$1, T$2, _r$12, _ref$2, _ref$3, _tuple$5, cause, rtyp, u, u$1, u$2, $s};return $f; - }; })(check, recv, sig)).describef(recv[0], "validate receiver %s", new sliceType$6([recv[0]])); - /* } */ case 36: - sig[0].params = NewTuple(params); - sig[0].results = NewTuple(results); - sig[0].variadic = variadic; - $s = -1; return; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: funcType, $c: true, $r, _1, _i, _i$1, _key, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, check, ftyp, got, i, i$1, p, params, recv, recv$1, recvList, recvPar, recvTPar, recvTParams, results, rname, rparams, scope, sig, smap, tpar, tparams, variadic, x, x$1, $s, $deferred};return $f; } } + /* } */ case 30: + /* } */ case 24: + _i++; + $s = 21; continue; + case 22: + /* */ if (false) { $s = 36; continue; } + /* */ $s = 37; continue; + /* if (false) { */ case 36: + inferred$2 = u[0].inferred(tparams[0]); + $r = u[0].tracef("=> %s \xE2\x9E\x9E %s\n", new sliceType$5([tparams[0], inferred$2])); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 37: + /* */ if (false) { $s = 39; continue; } + /* */ $s = 40; continue; + /* if (false) { */ case 39: + $r = u[0].tracef("== type parameters: %s", new sliceType$5([tparams[0]])); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 40: + i$1 = 0; + /* while (true) { */ case 42: + nn = u[0].unknowns(); + /* */ if (false) { $s = 44; continue; } + /* */ $s = 45; continue; + /* if (false) { */ case 44: + /* */ if (i$1 > 0) { $s = 46; continue; } + /* */ $s = 47; continue; + /* if (i$1 > 0) { */ case 46: + _r$7 = fmt.Println(sliceType$5.nil); /* */ $s = 48; case 48: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$7; + /* } */ case 47: + $r = u[0].tracef("-- iteration %d", new sliceType$5([new $Int(i$1)])); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 45: + _ref$1 = tparams[0]; + _i$1 = 0; + /* while (true) { */ case 50: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 51; continue; } + cause = [cause]; + tpar = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + tx = u[0].at(tpar); + _r$8 = coreTerm(tpar); /* */ $s = 52; case 52: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _tuple$1 = _r$8; + core = _tuple$1[0]; + single = _tuple$1[1]; + /* */ if (false) { $s = 53; continue; } + /* */ $s = 54; continue; + /* if (false) { */ case 53: + $r = u[0].tracef("-- type parameter %s = %s: core(%s) = %s, single = %v", new sliceType$5([tpar, tx, tpar, core, new $Bool(single)])); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 54: + /* */ if (!(core === ptrType$5.nil)) { $s = 56; continue; } + /* */ $s = 57; continue; + /* if (!(core === ptrType$5.nil)) { */ case 56: + /* */ if (!($interfaceIsEqual(tx, $ifaceNil))) { $s = 60; continue; } + /* */ if (single && !core.tilde) { $s = 61; continue; } + /* */ $s = 62; continue; + /* if (!($interfaceIsEqual(tx, $ifaceNil))) { */ case 60: + _r$9 = u[0].unify(tx, core.typ, 0); /* */ $s = 65; case 65: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + /* */ if (!_r$9) { $s = 63; continue; } + /* */ $s = 64; continue; + /* if (!_r$9) { */ case 63: + $r = check[0].errorf(posn, 138, "%s (type %s) does not satisfy %s", new sliceType$5([tpar, tx, tpar.Constraint()])); /* */ $s = 66; case 66: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + inferred$1[0] = sliceType$3.nil; + $24r$2 = inferred$1[0]; + $s = 67; case 67: return $24r$2; + /* } */ case 64: + $s = 62; continue; + /* } else if (single && !core.tilde) { */ case 61: + $r = u[0].set(tpar, core.typ); /* */ $s = 68; case 68: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 62: + case 59: + $s = 58; continue; + /* } else { */ case 57: + /* */ if (!($interfaceIsEqual(tx, $ifaceNil))) { $s = 69; continue; } + /* */ $s = 70; continue; + /* if (!($interfaceIsEqual(tx, $ifaceNil))) { */ case 69: + cause[0] = ""; + _r$10 = tpar.iface(); /* */ $s = 71; case 71: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + constraint = _r$10; + _r$11 = check[0].missingMethod(tx, constraint, true, (function(cause, check, inferred$1, tparams, u) { return function Checker·infer·func4(x, y) { + var {$24r$3, _r$11, x, y, $s, $r, $c} = $restore(this, {x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$11 = u[0].unify(x, y, 2); /* */ $s = 1; case 1: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + $24r$3 = _r$11; + $s = 2; case 2: return $24r$3; + /* */ } return; } var $f = {$blk: Checker·infer·func4, $c: true, $r, $24r$3, _r$11, x, y, $s};return $f; + }; })(cause, check, inferred$1, tparams, u), (cause.$ptr || (cause.$ptr = new ptrType$35(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, cause)))); /* */ $s = 72; case 72: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _tuple$2 = _r$11; + m = _tuple$2[0]; + /* */ if (!(m === ptrType$2.nil)) { $s = 73; continue; } + /* */ $s = 74; continue; + /* if (!(m === ptrType$2.nil)) { */ case 73: + $r = check[0].errorf(posn, 138, "%s (type %s) does not satisfy %s %s", new sliceType$5([tpar, tx, tpar.Constraint(), new $String(cause[0])])); /* */ $s = 75; case 75: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + inferred$1[0] = sliceType$3.nil; + $24r$3 = inferred$1[0]; + $s = 76; case 76: return $24r$3; + /* } */ case 74: + /* } */ case 70: + /* } */ case 58: + _i$1++; + $s = 50; continue; + case 51: + if (u[0].unknowns() === nn) { + /* break; */ $s = 43; continue; + } + i$1 = i$1 + (1) >> 0; + $s = 42; continue; + case 43: + /* */ if (false) { $s = 77; continue; } + /* */ $s = 78; continue; + /* if (false) { */ case 77: + inferred$3 = u[0].inferred(tparams[0]); + $r = u[0].tracef("=> %s \xE2\x9E\x9E %s\n", new sliceType$5([tparams[0], inferred$3])); /* */ $s = 79; case 79: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 78: + /* */ if (false) { $s = 80; continue; } + /* */ $s = 81; continue; + /* if (false) { */ case 80: + $r = u[0].tracef("== untyped arguments: %v", new sliceType$5([untyped])); /* */ $s = 82; case 82: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 81: + maxUntyped = false; + _ref$2 = untyped; + _i$2 = 0; + /* while (true) { */ case 83: + /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 84; continue; } + index = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); + tpar$1 = $assertType(params.At(index).object.typ, ptrType$15); + /* */ if ($interfaceIsEqual(u[0].at(tpar$1), $ifaceNil)) { $s = 85; continue; } + /* */ $s = 86; continue; + /* if ($interfaceIsEqual(u[0].at(tpar$1), $ifaceNil)) { */ case 85: + arg$1 = ((index < 0 || index >= args.$length) ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + index]); + if (maxUntyped === false) { + maxUntyped = new $global.Map(); + } + max = (_entry = $mapIndex(maxUntyped,ptrType$15.keyFor(tpar$1)), _entry !== undefined ? _entry.v : $ifaceNil); + /* */ if ($interfaceIsEqual(max, $ifaceNil)) { $s = 87; continue; } + /* */ $s = 88; continue; + /* if ($interfaceIsEqual(max, $ifaceNil)) { */ case 87: + max = arg$1.typ; + $s = 89; continue; + /* } else { */ case 88: + _r$12 = maxType(max, arg$1.typ); /* */ $s = 90; case 90: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + m$1 = _r$12; + /* */ if ($interfaceIsEqual(m$1, $ifaceNil)) { $s = 91; continue; } + /* */ $s = 92; continue; + /* if ($interfaceIsEqual(m$1, $ifaceNil)) { */ case 91: + $r = check[0].errorf(arg$1, 138, "mismatched types %s and %s (cannot infer %s)", new sliceType$5([max, arg$1.typ, tpar$1])); /* */ $s = 93; case 93: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + inferred$1[0] = sliceType$3.nil; + $24r$4 = inferred$1[0]; + $s = 94; case 94: return $24r$4; + /* } */ case 92: + max = m$1; + /* } */ case 89: + _key = tpar$1; (maxUntyped || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$15.keyFor(_key), { k: _key, v: max }); + /* } */ case 86: + _i$2++; + $s = 83; continue; + case 84: + _ref$3 = maxUntyped; + _i$3 = 0; + _keys = _ref$3 ? _ref$3.keys() : undefined; + _size = _ref$3 ? _ref$3.size : 0; + /* while (true) { */ case 95: + /* if (!(_i$3 < _size)) { break; } */ if(!(_i$3 < _size)) { $s = 96; continue; } + _key$1 = _keys.next().value; + _entry$1 = _ref$3.get(_key$1); + if (_entry$1 === undefined) { + _i$3++; + /* continue; */ $s = 95; continue; + } + tpar$2 = _entry$1.k; + typ$3 = _entry$1.v; + d = Default(typ$3); + $r = assert(isTyped(d)); /* */ $s = 97; case 97: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = u[0].set(tpar$2, d); /* */ $s = 98; case 98: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$3++; + $s = 95; continue; + case 96: + inferred$1[0] = u[0].inferred(tparams[0]); + /* */ if (false) { $s = 99; continue; } + /* */ $s = 100; continue; + /* if (false) { */ case 99: + _ref$4 = targs; + _i$4 = 0; + /* while (true) { */ case 101: + /* if (!(_i$4 < _ref$4.$length)) { break; } */ if(!(_i$4 < _ref$4.$length)) { $s = 102; continue; } + i$2 = _i$4; + targ = ((_i$4 < 0 || _i$4 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$4]); + $r = assert($interfaceIsEqual(targ, $ifaceNil) || $interfaceIsEqual(((i$2 < 0 || i$2 >= inferred$1[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : inferred$1[0].$array[inferred$1[0].$offset + i$2]), targ)); /* */ $s = 103; case 103: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$4++; + $s = 101; continue; + case 102: + /* } */ case 100: + $r = killCycles(tparams[0], inferred$1[0]); /* */ $s = 104; case 104: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + dirty = sliceType$24.nil; + _ref$5 = inferred$1[0]; + _i$5 = 0; + while (true) { + if (!(_i$5 < _ref$5.$length)) { break; } + i$3 = _i$5; + typ$4 = ((_i$5 < 0 || _i$5 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$5]); + if (!($interfaceIsEqual(typ$4, $ifaceNil)) && (i$3 >= targs.$length || $interfaceIsEqual(((i$3 < 0 || i$3 >= targs.$length) ? ($throwRuntimeError("index out of range"), undefined) : targs.$array[targs.$offset + i$3]), $ifaceNil))) { + dirty = $append(dirty, i$3); + } + _i$5++; + } + /* while (true) { */ case 105: + /* if (!(dirty.$length > 0)) { break; } */ if(!(dirty.$length > 0)) { $s = 106; continue; } + /* */ if (false) { $s = 107; continue; } + /* */ $s = 108; continue; + /* if (false) { */ case 107: + $r = u[0].tracef("-- simplify %s \xE2\x9E\x9E %s", new sliceType$5([tparams[0], inferred$1[0]])); /* */ $s = 109; case 109: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 108: + _r$13 = makeSubstMap(tparams[0], inferred$1[0]); /* */ $s = 110; case 110: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + smap$1 = _r$13; + n$1 = 0; + _ref$6 = dirty; + _i$6 = 0; + /* while (true) { */ case 111: + /* if (!(_i$6 < _ref$6.$length)) { break; } */ if(!(_i$6 < _ref$6.$length)) { $s = 112; continue; } + index$1 = ((_i$6 < 0 || _i$6 >= _ref$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$6.$array[_ref$6.$offset + _i$6]); + t0 = ((index$1 < 0 || index$1 >= inferred$1[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : inferred$1[0].$array[inferred$1[0].$offset + index$1]); + _r$14 = check[0].subst(nopos, t0, smap$1, ptrType$10.nil, check[0].context()); /* */ $s = 113; case 113: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + t1 = _r$14; + /* */ if (!($interfaceIsEqual(t1, t0))) { $s = 114; continue; } + /* */ $s = 115; continue; + /* if (!($interfaceIsEqual(t1, t0))) { */ case 114: + _tuple$3 = $assertType(t1, ptrType$29, true); + sig = _tuple$3[0]; + if (!(!(sig === ptrType$29.nil) && sig.TypeParams().Len() > 0)) { _v$1 = false; $s = 118; continue s; } + _r$15 = isParameterized(tparams[0], sig); /* */ $s = 119; case 119: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + _v$1 = !_r$15; case 118: + /* */ if (_v$1) { $s = 116; continue; } + /* */ $s = 117; continue; + /* if (_v$1) { */ case 116: + sig.tparams = ptrType$49.nil; + /* } */ case 117: + ((index$1 < 0 || index$1 >= inferred$1[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : inferred$1[0].$array[inferred$1[0].$offset + index$1] = t1); + ((n$1 < 0 || n$1 >= dirty.$length) ? ($throwRuntimeError("index out of range"), undefined) : dirty.$array[dirty.$offset + n$1] = index$1); + n$1 = n$1 + (1) >> 0; + /* } */ case 115: + _i$6++; + $s = 111; continue; + case 112: + dirty = $subslice(dirty, 0, n$1); + $s = 105; continue; + case 106: + _ref$7 = inferred$1[0]; + _i$7 = 0; + /* while (true) { */ case 120: + /* if (!(_i$7 < _ref$7.$length)) { break; } */ if(!(_i$7 < _ref$7.$length)) { $s = 121; continue; } + i$4 = _i$7; + typ$5 = ((_i$7 < 0 || _i$7 >= _ref$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$7.$array[_ref$7.$offset + _i$7]); + if ($interfaceIsEqual(typ$5, $ifaceNil)) { _v$2 = true; $s = 124; continue s; } + _r$16 = isParameterized(tparams[0], typ$5); /* */ $s = 125; case 125: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + _v$2 = _r$16; case 124: + /* */ if (_v$2) { $s = 122; continue; } + /* */ $s = 123; continue; + /* if (_v$2) { */ case 122: + obj = ((i$4 < 0 || i$4 >= tparams[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : tparams[0].$array[tparams[0].$offset + i$4]).obj; + $r = check[0].errorf(posn, 138, "cannot infer %s (%s)", new sliceType$5([new $String(obj.object.name), new token.Pos(obj.object.pos)])); /* */ $s = 126; case 126: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + inferred$1[0] = sliceType$3.nil; + $24r$5 = inferred$1[0]; + $s = 127; case 127: return $24r$5; + /* } */ case 123: + _i$7++; + $s = 120; continue; + case 121: + $24r$6 = inferred$1[0]; + $s = 128; case 128: return $24r$6; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return inferred$1[0]; } if($curGoroutine.asleep) { var $f = {$blk: infer, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, _arg, _arg$1, _arg$2, _entry, _entry$1, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _key, _key$1, _keys, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _size, _tuple, _tuple$1, _tuple$2, _tuple$3, _v, _v$1, _v$2, arg, arg$1, args, cause, check, constraint, core, d, dirty, errorf, i, i$1, i$2, i$3, i$4, index, index$1, inferred$1, inferred$2, inferred$3, m, m$1, max, maxUntyped, n, n$1, nn, obj, ok, par, params, posn, sig, single, smap, smap$1, t0, t1, targ, targs, targs2, tpar, tpar$1, tpar$2, tparams, tx, typ$3, typ$4, typ$5, u, untyped, $s, $deferred};return $f; } } + }; + containsNil = function containsNil$1(list$2) { + var _i, _ref, list$2, t; + _ref = list$2; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if ($interfaceIsEqual(t, $ifaceNil)) { + return true; + } + _i++; + } + return false; }; - $ptrType(Checker).prototype.collectParams = function collectParams(scope, list$2, variadicOk) { - var {_i, _i$1, _r$1, _r$2, _r$3, _ref, _ref$1, _tmp, _tmp$1, _tuple, anonymous, check, field, ftype, i, last, list$2, name, named, par, par$1, params, scope, t, typ$3, variadic, variadicOk, x, x$1, x$2, $s, $r, $c} = $restore(this, {scope, list$2, variadicOk}); + $ptrType(Checker).prototype.renameTParams = function renameTParams(pos, tparams, typ$3) { + var {$24r, _i, _i$1, _r, _r$1, _r$2, _r$3, _ref, _ref$1, check, i, i$1, pos, renameMap, tname, tparam, tparam$1, tparams, tparams2, typ$3, $s, $r, $c} = $restore(this, {pos, tparams, typ$3}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - params = sliceType$10.nil; - variadic = false; check = this; - if (list$2 === ptrType$49.nil) { - $s = -1; return [params, variadic]; + if (tparams.$length === 0) { + $s = -1; return [sliceType$8.nil, typ$3]; } - _tmp = false; - _tmp$1 = false; - named = _tmp; - anonymous = _tmp$1; - _ref = list$2.List; + tparams2 = $makeSlice(sliceType$8, tparams.$length); + _ref = tparams; _i = 0; /* while (true) { */ case 1: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } i = _i; - field = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - ftype = field.Type; - _tuple = $assertType(ftype, ptrType$41, true); - t = _tuple[0]; - /* */ if (!(t === ptrType$41.nil)) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!(t === ptrType$41.nil)) { */ case 3: - ftype = t.Elt; - /* */ if (variadicOk && (i === (list$2.List.$length - 1 >> 0)) && field.Names.$length <= 1) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (variadicOk && (i === (list$2.List.$length - 1 >> 0)) && field.Names.$length <= 1) { */ case 5: - variadic = true; - $s = 7; continue; - /* } else { */ case 6: - $r = check.softErrorf(t, 79, "can only use ... with final parameter in list", sliceType$6.nil); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 7: - /* } */ case 4: - _r$1 = check.varType(ftype); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - typ$3 = _r$1; - /* */ if (field.Names.$length > 0) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (field.Names.$length > 0) { */ case 10: - _ref$1 = field.Names; - _i$1 = 0; - /* while (true) { */ case 13: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 14; continue; } - name = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - /* */ if (name.Name === "") { $s = 15; continue; } - /* */ $s = 16; continue; - /* if (name.Name === "") { */ case 15: - $r = check.error(name, -1, "anonymous parameter"); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 16: - par = NewParam(name.Pos(), check.pkg, name.Name, typ$3); - $r = check.declare(scope, name, par, scope.pos); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - params = $append(params, par); - _i$1++; - $s = 13; continue; - case 14: - named = true; - $s = 12; continue; - /* } else { */ case 11: - _r$2 = ftype.Pos(); /* */ $s = 19; case 19: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = NewParam(_r$2, check.pkg, "", typ$3); /* */ $s = 20; case 20: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - par$1 = _r$3; - $r = check.recordImplicit(field, par$1); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - params = $append(params, par$1); - anonymous = true; - /* } */ case 12: + tparam = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + tname = NewTypeName(tparam.Obj().object.Pos(), tparam.Obj().object.Pkg(), tparam.Obj().object.Name(), $ifaceNil); + _r = NewTypeParam(tname, $ifaceNil); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + ((i < 0 || i >= tparams2.$length) ? ($throwRuntimeError("index out of range"), undefined) : tparams2.$array[tparams2.$offset + i] = _r); + ((i < 0 || i >= tparams2.$length) ? ($throwRuntimeError("index out of range"), undefined) : tparams2.$array[tparams2.$offset + i]).index = tparam.index; _i++; $s = 1; continue; case 2: - /* */ if (named && anonymous) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if (named && anonymous) { */ case 22: - $r = check.error(list$2, -1, "list contains both named and anonymous parameters"); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 23: - /* */ if (variadic) { $s = 25; continue; } - /* */ $s = 26; continue; - /* if (variadic) { */ case 25: - last = (x = params.$length - 1 >> 0, ((x < 0 || x >= params.$length) ? ($throwRuntimeError("index out of range"), undefined) : params.$array[params.$offset + x])); - last.object.typ = new Slice.ptr(last.object.typ); - $r = check.recordTypeAndValue((x$1 = list$2.List, x$2 = list$2.List.$length - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])).Type, 3, last.object.typ, $ifaceNil); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 26: - $s = -1; return [params, variadic]; - /* */ } return; } var $f = {$blk: collectParams, $c: true, $r, _i, _i$1, _r$1, _r$2, _r$3, _ref, _ref$1, _tmp, _tmp$1, _tuple, anonymous, check, field, ftype, i, last, list$2, name, named, par, par$1, params, scope, t, typ$3, variadic, variadicOk, x, x$1, x$2, $s};return $f; - }; - $ptrType(Selection).prototype.Kind = function Kind() { - var s; - s = this; - return s.kind; - }; - $ptrType(Selection).prototype.Recv = function Recv$1() { - var s; - s = this; - return s.recv; - }; - $ptrType(Selection).prototype.Obj = function Obj$1() { - var s; - s = this; - return s.obj; + _r$1 = makeRenameMap(tparams, tparams2); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + renameMap = _r$1; + _ref$1 = tparams; + _i$1 = 0; + /* while (true) { */ case 5: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 6; continue; } + i$1 = _i$1; + tparam$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + _r$2 = check.subst(pos, tparam$1.bound, renameMap, ptrType$10.nil, check.context()); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + ((i$1 < 0 || i$1 >= tparams2.$length) ? ($throwRuntimeError("index out of range"), undefined) : tparams2.$array[tparams2.$offset + i$1]).bound = _r$2; + _i$1++; + $s = 5; continue; + case 6: + _r$3 = check.subst(pos, typ$3, renameMap, ptrType$10.nil, check.context()); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = [tparams2, _r$3]; + $s = 9; case 9: return $24r; + /* */ } return; } var $f = {$blk: renameTParams, $c: true, $r, $24r, _i, _i$1, _r, _r$1, _r$2, _r$3, _ref, _ref$1, check, i, i$1, pos, renameMap, tname, tparam, tparam$1, tparams, tparams2, typ$3, $s};return $f; }; - $ptrType(Selection).prototype.Type = function Type$2() { - var {$24r, _1, _r$1, arg0, params, recv, s, sig, sig$1, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - arg0 = [arg0]; - recv = [recv]; - sig = [sig]; - sig$1 = [sig$1]; - s = this; - _1 = s.kind; - if (_1 === (1)) { - sig[0] = $clone($assertType($assertType(s.obj, ptrType$2).object.typ, ptrType$27), Signature); - recv[0] = $clone(sig[0].recv, Var); - recv[0].object.typ = s.recv; - sig[0].recv = recv[0]; - $s = -1; return sig[0]; + typeParamsString = function typeParamsString$1(list$2) { + var _1, _i, _ref, buf, i, list$2, n, tname, x; + n = list$2.$length; + _1 = n; + if (_1 === (0)) { + return ""; + } else if (_1 === (1)) { + return (0 >= list$2.$length ? ($throwRuntimeError("index out of range"), undefined) : list$2.$array[list$2.$offset + 0]).obj.object.name; } else if (_1 === (2)) { - sig$1[0] = $clone($assertType($assertType(s.obj, ptrType$2).object.typ, ptrType$27), Signature); - arg0[0] = $clone(sig$1[0].recv, Var); - sig$1[0].recv = ptrType$16.nil; - arg0[0].object.typ = s.recv; - params = sliceType$10.nil; - if (!(sig$1[0].params === ptrType$15.nil)) { - params = sig$1[0].params.vars; + return (0 >= list$2.$length ? ($throwRuntimeError("index out of range"), undefined) : list$2.$array[list$2.$offset + 0]).obj.object.name + " and " + (1 >= list$2.$length ? ($throwRuntimeError("index out of range"), undefined) : list$2.$array[list$2.$offset + 1]).obj.object.name; + } + buf = new strings.Builder.ptr(ptrType$54.nil, sliceType$12.nil); + _ref = $subslice(list$2, 0, (n - 1 >> 0)); + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + tname = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (i > 0) { + buf.WriteString(", "); } - sig$1[0].params = NewTuple($appendSlice(new sliceType$10([arg0[0]]), params)); - $s = -1; return sig$1[0]; + buf.WriteString(tname.obj.object.name); + _i++; } - _r$1 = s.obj.Type(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Type$2, $c: true, $r, $24r, _1, _r$1, arg0, params, recv, s, sig, sig$1, $s};return $f; - }; - $ptrType(Selection).prototype.Index = function Index$1() { - var s; - s = this; - return s.index; - }; - $ptrType(Selection).prototype.Indirect = function Indirect() { - var s; - s = this; - return s.indirect; + buf.WriteString(", and "); + buf.WriteString((x = n - 1 >> 0, ((x < 0 || x >= list$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : list$2.$array[list$2.$offset + x])).obj.object.name); + return buf.String(); }; - $ptrType(Selection).prototype.String = function String$11() { - var {$24r, _r$1, s, $s, $r, $c} = $restore(this, {}); + isParameterized = function isParameterized$1(tparams, typ$3) { + var {$24r, _r, tparams, typ$3, w, $s, $r, $c} = $restore(this, {tparams, typ$3}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - s = this; - _r$1 = SelectionString(s, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; + w = new tpWalker.ptr(tparams, new $global.Map()); + _r = w.isParameterized(typ$3); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$11, $c: true, $r, $24r, _r$1, s, $s};return $f; - }; - SelectionString = function SelectionString$1(s, qf) { - var {T, _1, _arg, _arg$1, _r$1, _r$2, _r$3, buf, k, qf, s, $s, $r, $c} = $restore(this, {s, qf}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - buf = [buf]; - k = ""; - _1 = s.kind; - if (_1 === (0)) { - k = "field "; - } else if (_1 === (1)) { - k = "method "; - } else if (_1 === (2)) { - k = "method expr "; - } else { - unreachable(); - } - buf[0] = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); - buf[0].WriteString(k); - buf[0].WriteByte(40); - $r = WriteType(buf[0], s.Recv(), qf); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _arg = buf[0]; - _r$1 = s.obj.Name(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _arg$1 = new $String(_r$1); - _r$2 = fmt.Fprintf(_arg, ") %s", new sliceType$6([_arg$1])); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - _r$3 = s.Type(); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - T = _r$3; - /* */ if (s.kind === 0) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (s.kind === 0) { */ case 5: - buf[0].WriteByte(32); - $r = WriteType(buf[0], T, qf); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 7; continue; - /* } else { */ case 6: - $r = WriteSignature(buf[0], $assertType(T, ptrType$27), qf); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 7: - $s = -1; return buf[0].String(); - /* */ } return; } var $f = {$blk: SelectionString$1, $c: true, $r, T, _1, _arg, _arg$1, _r$1, _r$2, _r$3, buf, k, qf, s, $s};return $f; + /* */ } return; } var $f = {$blk: isParameterized$1, $c: true, $r, $24r, _r, tparams, typ$3, w, $s};return $f; }; - $pkg.SelectionString = SelectionString; - NewScope = function NewScope$1(parent, pos, end, comment) { - var comment, end, parent, pos, s; - s = new Scope.ptr(parent, sliceType$20.nil, 0, false, pos, end, comment, false); - if (!(parent === ptrType.nil) && !(parent === $pkg.Universe)) { - parent.children = $append(parent.children, s); - s.number = parent.children.$length; + $ptrType(tpWalker).prototype.isParameterized = function isParameterized$2(typ$3) { + var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, _entry, _i, _i$1, _key, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tuple, _v, _v$1, _v$2, _v$3, _v$4, m, ok, res, t, t$1, t$10, t$11, t$12, t$13, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, tset, typ$3, w, x, $s, $deferred, $r, $c} = $restore(this, {typ$3}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + res = [res]; + typ$3 = [typ$3]; + w = [w]; + res[0] = false; + w[0] = this; + _tuple = (_entry = $mapIndex(w[0].seen,Type.keyFor(typ$3[0])), _entry !== undefined ? [_entry.v, true] : [false, false]); + x = _tuple[0]; + ok = _tuple[1]; + if (ok) { + res[0] = x; + $s = -1; return res[0]; } - return s; - }; - $pkg.NewScope = NewScope; - $ptrType(Scope).prototype.Parent = function Parent() { - var s; - s = this; - return s.parent; - }; - $ptrType(Scope).prototype.Len = function Len$5() { - var s; - s = this; - return (s.elems ? s.elems.size : 0); + _key = typ$3[0]; (w[0].seen || $throwRuntimeError("assignment to entry in nil map")).set(Type.keyFor(_key), { k: _key, v: false }); + $deferred.push([(function(res, typ$3, w) { return function tpWalker·isParameterized·func1() { + var _key$1; + _key$1 = typ$3[0]; (w[0].seen || $throwRuntimeError("assignment to entry in nil map")).set(Type.keyFor(_key$1), { k: _key$1, v: res[0] }); + }; })(res, typ$3, w), []]); + _ref = typ$3[0]; + /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$12, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$16, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$29, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref, ptrType$30, true)[1]) { $s = 9; continue; } + /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 11; continue; } + /* */ if ($assertType(_ref, ptrType$15, true)[1]) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if ($assertType(_ref, ptrType$4, true)[1]) { */ case 1: + t = _ref.$val; + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 2: + t$1 = _ref.$val; + _r = w[0].isParameterized(t$1.elem); /* */ $s = 15; case 15: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + res[0] = _r; + $24r = res[0]; + $s = 16; case 16: return $24r; + /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 3: + t$2 = _ref.$val; + _r$1 = w[0].isParameterized(t$2.elem); /* */ $s = 17; case 17: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + res[0] = _r$1; + $24r$1 = res[0]; + $s = 18; case 18: return $24r$1; + /* } else if ($assertType(_ref, ptrType$12, true)[1]) { */ case 4: + t$3 = _ref.$val; + _r$2 = w[0].varList(t$3.fields); /* */ $s = 19; case 19: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + res[0] = _r$2; + $24r$2 = res[0]; + $s = 20; case 20: return $24r$2; + /* } else if ($assertType(_ref, ptrType$28, true)[1]) { */ case 5: + t$4 = _ref.$val; + _r$3 = w[0].isParameterized(t$4.base); /* */ $s = 21; case 21: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + res[0] = _r$3; + $24r$3 = res[0]; + $s = 22; case 22: return $24r$3; + /* } else if ($assertType(_ref, ptrType$16, true)[1]) { */ case 6: + t$5 = _ref.$val; + if (!(!(t$5 === ptrType$16.nil))) { _v = false; $s = 23; continue s; } + _r$4 = w[0].varList(t$5.vars); /* */ $s = 24; case 24: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _v = _r$4; case 23: + res[0] = _v; + $24r$4 = res[0]; + $s = 25; case 25: return $24r$4; + /* } else if ($assertType(_ref, ptrType$29, true)[1]) { */ case 7: + t$6 = _ref.$val; + if (!(!(t$6.params === ptrType$16.nil))) { _v$2 = false; $s = 27; continue s; } + _r$5 = w[0].varList(t$6.params.vars); /* */ $s = 28; case 28: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _v$2 = _r$5; case 27: + if (_v$2) { _v$1 = true; $s = 26; continue s; } + if (!(!(t$6.results === ptrType$16.nil))) { _v$3 = false; $s = 29; continue s; } + _r$6 = w[0].varList(t$6.results.vars); /* */ $s = 30; case 30: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _v$3 = _r$6; case 29: + _v$1 = _v$3; case 26: + res[0] = _v$1; + $24r$5 = res[0]; + $s = 31; case 31: return $24r$5; + /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 8: + t$7 = _ref.$val; + _r$7 = t$7.typeSet(); /* */ $s = 32; case 32: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + tset = _r$7; + _ref$1 = tset.methods; + _i = 0; + /* while (true) { */ case 33: + /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 34; continue; } + m = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + _r$8 = w[0].isParameterized(m.object.typ); /* */ $s = 37; case 37: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + /* */ if (_r$8) { $s = 35; continue; } + /* */ $s = 36; continue; + /* if (_r$8) { */ case 35: + res[0] = true; + $s = -1; return res[0]; + /* } */ case 36: + _i++; + $s = 33; continue; + case 34: + _r$9 = tset.is((function(res, typ$3, w) { return function tpWalker·isParameterized·func2(t$13) { + var {$24r$6, _r$9, _v$4, t$13, $s, $r, $c} = $restore(this, {t$13}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (!(!(t$13 === ptrType$5.nil))) { _v$4 = false; $s = 1; continue s; } + _r$9 = w[0].isParameterized(t$13.typ); /* */ $s = 2; case 2: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _v$4 = _r$9; case 1: + $24r$6 = _v$4; + $s = 3; case 3: return $24r$6; + /* */ } return; } var $f = {$blk: tpWalker·isParameterized·func2, $c: true, $r, $24r$6, _r$9, _v$4, t$13, $s};return $f; + }; })(res, typ$3, w)); /* */ $s = 38; case 38: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + res[0] = _r$9; + $24r$6 = res[0]; + $s = 39; case 39: return $24r$6; + /* } else if ($assertType(_ref, ptrType$30, true)[1]) { */ case 9: + t$8 = _ref.$val; + _r$10 = w[0].isParameterized(t$8.key); /* */ $s = 41; case 41: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + if (_r$10) { _v$4 = true; $s = 40; continue s; } + _r$11 = w[0].isParameterized(t$8.elem); /* */ $s = 42; case 42: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _v$4 = _r$11; case 40: + res[0] = _v$4; + $24r$7 = res[0]; + $s = 43; case 43: return $24r$7; + /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 10: + t$9 = _ref.$val; + _r$12 = w[0].isParameterized(t$9.elem); /* */ $s = 44; case 44: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + res[0] = _r$12; + $24r$8 = res[0]; + $s = 45; case 45: return $24r$8; + /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 11: + t$10 = _ref.$val; + _ref$2 = t$10.TypeArgs().list(); + _i$1 = 0; + /* while (true) { */ case 46: + /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 47; continue; } + t$13 = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); + _r$13 = w[0].isParameterized(t$13); /* */ $s = 50; case 50: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + /* */ if (_r$13) { $s = 48; continue; } + /* */ $s = 49; continue; + /* if (_r$13) { */ case 48: + res[0] = true; + $s = -1; return res[0]; + /* } */ case 49: + _i$1++; + $s = 46; continue; + case 47: + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$15, true)[1]) { */ case 12: + t$11 = _ref.$val; + res[0] = tparamIndex(w[0].tparams, t$11) >= 0; + $s = -1; return res[0]; + /* } else { */ case 13: + t$12 = _ref; + _r$14 = fmt.Sprintf("unexpected %T", new sliceType$5([typ$3[0]])); /* */ $s = 51; case 51: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + $panic(new $String(_r$14)); + /* } */ case 14: + res[0] = false; + $s = -1; return res[0]; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return res[0]; } if($curGoroutine.asleep) { var $f = {$blk: isParameterized$2, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, _entry, _i, _i$1, _key, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tuple, _v, _v$1, _v$2, _v$3, _v$4, m, ok, res, t, t$1, t$10, t$11, t$12, t$13, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, tset, typ$3, w, x, $s, $deferred};return $f; } } }; - $ptrType(Scope).prototype.Names = function Names() { - var {_entry, _i, _key, _keys, _ref, _size, i, name, names, s, $s, $r, $c} = $restore(this, {}); + $ptrType(tpWalker).prototype.varList = function varList$1(list$2) { + var {_i, _r, _ref, list$2, v, w, $s, $r, $c} = $restore(this, {list$2}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - s = this; - names = $makeSlice(sliceType$5, (s.elems ? s.elems.size : 0)); - i = 0; - _ref = s.elems; + w = this; + _ref = list$2; _i = 0; - _keys = _ref ? _ref.keys() : undefined; - _size = _ref ? _ref.size : 0; - while (true) { - if (!(_i < _size)) { break; } - _key = _keys.next().value; - _entry = _ref.get(_key); - if (_entry === undefined) { - _i++; - continue; - } - name = _entry.k; - ((i < 0 || i >= names.$length) ? ($throwRuntimeError("index out of range"), undefined) : names.$array[names.$offset + i] = name); - i = i + (1) >> 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r = w.isParameterized(v.object.typ); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_r) { */ case 3: + $s = -1; return true; + /* } */ case 4: _i++; - } - $r = sort.Strings(names); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return names; - /* */ } return; } var $f = {$blk: Names, $c: true, $r, _entry, _i, _key, _keys, _ref, _size, i, name, names, s, $s};return $f; - }; - $ptrType(Scope).prototype.NumChildren = function NumChildren() { - var s; - s = this; - return s.children.$length; + $s = 1; continue; + case 2: + $s = -1; return false; + /* */ } return; } var $f = {$blk: varList$1, $c: true, $r, _i, _r, _ref, list$2, v, w, $s};return $f; }; - $ptrType(Scope).prototype.Child = function Child(i) { - var i, s, x; - s = this; - return (x = s.children, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + coreTerm = function coreTerm$1(tpar) { + var {_r, _r$1, _r$2, _r$3, _v, n, single, tilde, tpar, typ$3, $s, $r, $c} = $restore(this, {tpar}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + n = [n]; + single = [single]; + tilde = [tilde]; + n[0] = 0; + single[0] = ptrType$5.nil; + tilde[0] = false; + _r = tpar.is((function(n, single, tilde) { return function coreTerm·func1(t) { + var {t, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + /* */ if (t === ptrType$5.nil) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (t === ptrType$5.nil) { */ case 1: + $r = assert(n[0] === 0); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; + /* } */ case 2: + n[0] = n[0] + (1) >> 0; + single[0] = t; + if (t.tilde) { + tilde[0] = true; + } + $s = -1; return true; + /* */ } return; } var $f = {$blk: coreTerm·func1, $c: true, $r, t, $s};return $f; + }; })(n, single, tilde)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + /* */ if (n[0] === 1) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (n[0] === 1) { */ case 2: + /* */ if (false) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (false) { */ case 4: + if (!(false)) { _v = false; $s = 6; continue s; } + _r$1 = under(single[0].typ); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = coreType(tpar); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v = $interfaceIsEqual(_r$1, _r$2); case 6: + $r = assert(_v); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 5: + $s = -1; return [single[0], true]; + /* } */ case 3: + _r$3 = coreType(tpar); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + typ$3 = _r$3; + if (!($interfaceIsEqual(typ$3, $ifaceNil))) { + $s = -1; return [new term.ptr(tilde[0], typ$3), false]; + } + $s = -1; return [ptrType$5.nil, false]; + /* */ } return; } var $f = {$blk: coreTerm$1, $c: true, $r, _r, _r$1, _r$2, _r$3, _v, n, single, tilde, tpar, typ$3, $s};return $f; }; - $ptrType(Scope).prototype.Lookup = function Lookup(name) { - var {$24r, _entry, _r$1, name, s, $s, $r, $c} = $restore(this, {name}); + killCycles = function killCycles$1(tparams, inferred$1) { + var {_i, _ref, inferred$1, t, tparams, w, $s, $r, $c} = $restore(this, {tparams, inferred$1}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - s = this; - _r$1 = resolve(name, (_entry = $mapIndex(s.elems,$String.keyFor(name)), _entry !== undefined ? _entry.v : $ifaceNil)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Lookup, $c: true, $r, $24r, _entry, _r$1, name, s, $s};return $f; + w = new cycleFinder.ptr(tparams, inferred$1, new $global.Map()); + _ref = tparams; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = w.typ(t); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: killCycles$1, $c: true, $r, _i, _ref, inferred$1, t, tparams, w, $s};return $f; }; - $ptrType(Scope).prototype.LookupParent = function LookupParent(name, pos) { - var {_r$1, _r$2, _v, _v$1, name, obj, pos, s, $s, $r, $c} = $restore(this, {name, pos}); + $ptrType(cycleFinder).prototype.typ = function typ$3(typ$4) { + var {_arg, _arg$1, _entry, _i, _i$1, _i$2, _i$3, _key, _r, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tuple, i, i$1, m, t, t$1, t$10, t$11, t$12, t$13, t$14, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, tpar, tpar$1, typ$4, w, x, x$1, x$2, $s, $deferred, $r, $c} = $restore(this, {typ$4}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + w = this; + if ((_entry = $mapIndex(w.seen,Type.keyFor(typ$4)), _entry !== undefined ? _entry.v : false)) { + _tuple = $assertType(typ$4, ptrType$15, true); + tpar = _tuple[0]; + if (!(tpar === ptrType$15.nil)) { + i = tparamIndex(w.tparams, tpar); + if (i >= 0) { + (x = w.inferred, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i] = $ifaceNil)); + } + } + $s = -1; return; + } + _key = typ$4; (w.seen || $throwRuntimeError("assignment to entry in nil map")).set(Type.keyFor(_key), { k: _key, v: true }); + $deferred.push([function(_arg, _arg$1) { $mapDelete(_arg, Type.keyFor(_arg$1)); }, [w.seen, typ$4]]); + _ref = typ$4; + /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$12, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$29, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref, ptrType$30, true)[1]) { $s = 9; continue; } + /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 11; continue; } + /* */ if ($assertType(_ref, ptrType$15, true)[1]) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if ($assertType(_ref, ptrType$4, true)[1]) { */ case 1: + t = _ref.$val; + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 2: + t$1 = _ref.$val; + $r = w.typ(t$1.elem); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 3: + t$2 = _ref.$val; + $r = w.typ(t$2.elem); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$12, true)[1]) { */ case 4: + t$3 = _ref.$val; + $r = w.varList(t$3.fields); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$28, true)[1]) { */ case 5: + t$4 = _ref.$val; + $r = w.typ(t$4.base); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$29, true)[1]) { */ case 6: + t$5 = _ref.$val; + /* */ if (!(t$5.params === ptrType$16.nil)) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (!(t$5.params === ptrType$16.nil)) { */ case 19: + $r = w.varList(t$5.params.vars); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 20: + /* */ if (!(t$5.results === ptrType$16.nil)) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (!(t$5.results === ptrType$16.nil)) { */ case 22: + $r = w.varList(t$5.results.vars); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 23: + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 7: + t$6 = _ref.$val; + _ref$1 = t$6.terms; + _i = 0; + /* while (true) { */ case 25: + /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 26; continue; } + t$13 = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + $r = w.typ(t$13.typ); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 25; continue; + case 26: + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 8: + t$7 = _ref.$val; + _ref$2 = t$7.methods; + _i$1 = 0; + /* while (true) { */ case 28: + /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 29; continue; } + m = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); + $r = w.typ(m.object.typ); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + $s = 28; continue; + case 29: + _ref$3 = t$7.embeddeds; + _i$2 = 0; + /* while (true) { */ case 31: + /* if (!(_i$2 < _ref$3.$length)) { break; } */ if(!(_i$2 < _ref$3.$length)) { $s = 32; continue; } + t$14 = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]); + $r = w.typ(t$14); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$2++; + $s = 31; continue; + case 32: + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$30, true)[1]) { */ case 9: + t$8 = _ref.$val; + $r = w.typ(t$8.key); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = w.typ(t$8.elem); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 10: + t$9 = _ref.$val; + $r = w.typ(t$9.elem); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 11: + t$10 = _ref.$val; + _ref$4 = t$10.TypeArgs().list(); + _i$3 = 0; + /* while (true) { */ case 37: + /* if (!(_i$3 < _ref$4.$length)) { break; } */ if(!(_i$3 < _ref$4.$length)) { $s = 38; continue; } + tpar$1 = ((_i$3 < 0 || _i$3 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$3]); + $r = w.typ(tpar$1); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$3++; + $s = 37; continue; + case 38: + $s = 14; continue; + /* } else if ($assertType(_ref, ptrType$15, true)[1]) { */ case 12: + t$11 = _ref.$val; + i$1 = tparamIndex(w.tparams, t$11); + /* */ if (i$1 >= 0 && !($interfaceIsEqual((x$1 = w.inferred, ((i$1 < 0 || i$1 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$1])), $ifaceNil))) { $s = 40; continue; } + /* */ $s = 41; continue; + /* if (i$1 >= 0 && !($interfaceIsEqual((x$1 = w.inferred, ((i$1 < 0 || i$1 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$1])), $ifaceNil))) { */ case 40: + $r = w.typ((x$2 = w.inferred, ((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$1]))); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 41: + $s = 14; continue; + /* } else { */ case 13: + t$12 = _ref; + _r = fmt.Sprintf("unexpected %T", new sliceType$5([typ$4])); /* */ $s = 43; case 43: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $panic(new $String(_r)); + /* } */ case 14: + $s = -1; return; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: typ$3, $c: true, $r, _arg, _arg$1, _entry, _i, _i$1, _i$2, _i$3, _key, _r, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tuple, i, i$1, m, t, t$1, t$10, t$11, t$12, t$13, t$14, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, tpar, tpar$1, typ$4, w, x, x$1, x$2, $s, $deferred};return $f; } } + }; + $ptrType(cycleFinder).prototype.varList = function varList$2(list$2) { + var {_i, _ref, list$2, v, w, $s, $r, $c} = $restore(this, {list$2}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - s = this; + w = this; + _ref = list$2; + _i = 0; /* while (true) { */ case 1: - /* if (!(!(s === ptrType.nil))) { break; } */ if(!(!(s === ptrType.nil))) { $s = 2; continue; } - _r$1 = s.Lookup(name); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - obj = _r$1; - if (!(!($interfaceIsEqual(obj, $ifaceNil)))) { _v = false; $s = 6; continue s; } - if (!new token.Pos(pos).IsValid()) { _v$1 = true; $s = 7; continue s; } - _r$2 = obj.scopePos(); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _v$1 = _r$2 <= pos; case 7: - _v = _v$1; case 6: - /* */ if (_v) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_v) { */ case 4: - $s = -1; return [s, obj]; - /* } */ case 5: - s = s.parent; + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = w.typ(v.object.typ); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; $s = 1; continue; case 2: - $s = -1; return [ptrType.nil, $ifaceNil]; - /* */ } return; } var $f = {$blk: LookupParent, $c: true, $r, _r$1, _r$2, _v, _v$1, name, obj, pos, s, $s};return $f; - }; - $ptrType(Scope).prototype.Insert = function Insert(obj) { - var {_r$1, _r$2, _r$3, alt, name, obj, s, $s, $r, $c} = $restore(this, {obj}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - s = this; - _r$1 = obj.Name(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - name = _r$1; - _r$2 = s.Lookup(name); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - alt = _r$2; - if (!($interfaceIsEqual(alt, $ifaceNil))) { - $s = -1; return alt; - } - s.insert(name, obj); - _r$3 = obj.Parent(); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (_r$3 === ptrType.nil) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (_r$3 === ptrType.nil) { */ case 3: - $r = obj.setParent(s); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 4: - $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: Insert, $c: true, $r, _r$1, _r$2, _r$3, alt, name, obj, s, $s};return $f; - }; - $ptrType(Scope).prototype.insert = function insert(name, obj) { - var _key, name, obj, s; - s = this; - if (s.elems === false) { - s.elems = new $global.Map(); - } - _key = name; (s.elems || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: obj }); + $s = -1; return; + /* */ } return; } var $f = {$blk: varList$2, $c: true, $r, _i, _ref, list$2, v, w, $s};return $f; }; - $ptrType(Scope).prototype.squash = function squash(err) { - var {_entry, _i, _i$1, _key, _keys, _r$1, _r$2, _ref, _ref$1, _size, alt, ch, err, i, j, k, name, obj, p, s, x, x$1, $s, $r, $c} = $restore(this, {err}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - s = this; - p = s.parent; - $r = assert(!(p === ptrType.nil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _ref = s.elems; + tparamIndex = function tparamIndex$1(list$2, tpar) { + var _i, _ref, i, list$2, p, tpar; + _ref = list$2; _i = 0; - _keys = _ref ? _ref.keys() : undefined; - _size = _ref ? _ref.size : 0; - /* while (true) { */ case 2: - /* if (!(_i < _size)) { break; } */ if(!(_i < _size)) { $s = 3; continue; } - _key = _keys.next().value; - _entry = _ref.get(_key); - if (_entry === undefined) { - _i++; - /* continue; */ $s = 2; continue; - } - name = _entry.k; - obj = _entry.v; - _r$1 = resolve(name, obj); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - obj = _r$1; - $r = obj.setParent(ptrType.nil); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$2 = p.Insert(obj); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - alt = _r$2; - /* */ if (!($interfaceIsEqual(alt, $ifaceNil))) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (!($interfaceIsEqual(alt, $ifaceNil))) { */ case 7: - $r = err(obj, alt); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 8: - _i++; - $s = 2; continue; - case 3: - j = -1; - _ref$1 = p.children; - _i$1 = 0; while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - i = _i$1; - ch = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - if (ch === s) { - j = i; - break; + if (!(_i < _ref.$length)) { break; } + i = _i; + p = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (p === tpar) { + return i; } - _i$1++; + _i++; } - $r = assert(j >= 0); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - k = p.children.$length - 1 >> 0; - (x$1 = p.children, ((j < 0 || j >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + j] = (x = p.children, ((k < 0 || k >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + k])))); - p.children = $subslice(p.children, 0, k); - p.children = $appendSlice(p.children, s.children); - s.children = sliceType$20.nil; - s.elems = false; - $s = -1; return; - /* */ } return; } var $f = {$blk: squash, $c: true, $r, _entry, _i, _i$1, _key, _keys, _r$1, _r$2, _ref, _ref$1, _size, alt, ch, err, i, j, k, name, obj, p, s, x, x$1, $s};return $f; - }; - $ptrType(Scope).prototype.Pos = function Pos() { - var s; - s = this; - return s.pos; - }; - $ptrType(Scope).prototype.End = function End() { - var s; - s = this; - return s.end; - }; - $ptrType(Scope).prototype.Contains = function Contains(pos) { - var pos, s; - s = this; - return s.pos <= pos && pos < s.end; + return -1; }; - $ptrType(Scope).prototype.Innermost = function Innermost(pos) { - var _i, _i$1, _ref, _ref$1, inner, pos, s, s$1, s$2; - s = this; - if (s.parent === $pkg.Universe) { - _ref = s.children; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - s$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - inner = s$1.Innermost(pos); - if (!(inner === ptrType.nil)) { - return inner; + $ptrType(Checker).prototype.indexExpr = function indexExpr(x, e) { + var {_1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tmp, _tmp$1, _tuple, _tuple$1, check, e, elem, index, index$1, index$2, isFuncInst, k, key, key$1, length, mode, sig, typ$10, typ$4, typ$5, typ$6, typ$7, typ$8, typ$9, valid, x, $s, $r, $c} = $restore(this, {x, e}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + elem = [elem]; + k = [k]; + key = [key]; + key$1 = [key$1]; + length = [length]; + mode = [mode]; + x = [x]; + isFuncInst = false; + check = this; + $r = check.exprOrType(x[0], e.IndexListExpr.X, true); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _1 = x[0].mode; + /* */ if (_1 === (0)) { $s = 3; continue; } + /* */ if (_1 === (3)) { $s = 4; continue; } + /* */ if (_1 === (7)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_1 === (0)) { */ case 3: + _r = check.use(e.IndexListExpr.Indices); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + isFuncInst = false; + $s = -1; return isFuncInst; + /* } else if (_1 === (3)) { */ case 4: + x[0].mode = 0; + _r$1 = check.varType(e.Orig); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + x[0].typ = _r$1; + if (!($interfaceIsEqual(x[0].typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { + x[0].mode = 3; } - _i++; - } - } - if (s.Contains(pos)) { - _ref$1 = s.children; - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - s$2 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - if (s$2.Contains(pos)) { - return s$2.Innermost(pos); + isFuncInst = false; + $s = -1; return isFuncInst; + /* } else if (_1 === (7)) { */ case 5: + _r$2 = under(x[0].typ); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = $assertType(_r$2, ptrType$29, true); + sig = _tuple[0]; + if (!(sig === ptrType$29.nil) && sig.TypeParams().Len() > 0) { + isFuncInst = true; + $s = -1; return isFuncInst; } - _i$1++; + /* } */ case 6: + case 2: + $r = check.nonGeneric($ifaceNil, x[0]); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (x[0].mode === 0) { + isFuncInst = false; + $s = -1; return isFuncInst; + } + valid = false; + length[0] = new $Int64(-1, 4294967295); + _r$3 = under(x[0].typ); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _ref = _r$3; + /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 12; continue; } + /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 13; continue; } + /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 14; continue; } + /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 15; continue; } + /* */ if ($assertType(_ref, ptrType$30, true)[1]) { $s = 16; continue; } + /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 17; continue; } + /* */ $s = 18; continue; + /* switch (0) { default: if ($assertType(_ref, ptrType$4, true)[1]) { */ case 12: + typ$4 = _ref.$val; + _r$4 = isString(typ$4); /* */ $s = 21; case 21: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (_r$4) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (_r$4) { */ case 19: + valid = true; + /* */ if (x[0].mode === 4) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (x[0].mode === 4) { */ case 22: + _r$5 = constant.StringVal(x[0].val); /* */ $s = 24; case 24: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + length[0] = (new $Int64(0, _r$5.length)); + /* } */ case 23: + x[0].mode = 7; + x[0].typ = universeByte; + /* } */ case 20: + $s = 18; continue; + /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 13: + typ$5 = _ref.$val; + valid = true; + length[0] = typ$5.len; + if (!((x[0].mode === 5))) { + x[0].mode = 7; } - return s; + x[0].typ = typ$5.elem; + $s = 18; continue; + /* } else if ($assertType(_ref, ptrType$28, true)[1]) { */ case 14: + typ$6 = _ref.$val; + _r$6 = under(typ$6.base); /* */ $s = 25; case 25: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _tuple$1 = $assertType(_r$6, ptrType$11, true); + typ$10 = _tuple$1[0]; + if (!(typ$10 === ptrType$11.nil)) { + valid = true; + length[0] = typ$10.len; + x[0].mode = 5; + x[0].typ = typ$10.elem; + } + $s = 18; continue; + /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 15: + typ$7 = _ref.$val; + valid = true; + x[0].mode = 5; + x[0].typ = typ$7.elem; + $s = 18; continue; + /* } else if ($assertType(_ref, ptrType$30, true)[1]) { */ case 16: + typ$8 = _ref.$val; + _r$7 = check.singleIndex(e); /* */ $s = 26; case 26: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + index = _r$7; + if ($interfaceIsEqual(index, $ifaceNil)) { + x[0].mode = 0; + isFuncInst = false; + $s = -1; return isFuncInst; + } + key[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + $r = check.expr($ifaceNil, key[0], index); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.assignment(key[0], typ$8.key, "map index"); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x[0].mode = 6; + x[0].typ = typ$8.elem; + x[0].expr = e.Orig; + isFuncInst = false; + $s = -1; return isFuncInst; + /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 17: + typ$9 = _ref.$val; + if (!isTypeParam(x[0].typ)) { + /* break; */ $s = 18; continue; + } + _tmp = $ifaceNil; + _tmp$1 = $ifaceNil; + key$1[0] = _tmp; + elem[0] = _tmp$1; + mode[0] = 5; + _r$8 = typ$9.typeSet(); /* */ $s = 31; case 31: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$9 = _r$8.underIs((function(elem, k, key, key$1, length, mode, x) { return function Checker·indexExpr·func1(u) { + var {_r$10, _r$11, _r$12, _r$9, _ref$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple$2, e$1, k$1, l, t, t$1, t$2, t$3, t$4, t$5, u, $s, $r, $c} = $restore(this, {u}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + l = new $Int64(-1, 4294967295); + _tmp$2 = $ifaceNil; + _tmp$3 = $ifaceNil; + k$1 = _tmp$2; + e$1 = _tmp$3; + _ref$1 = u; + /* */ if ($assertType(_ref$1, ptrType$4, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref$1, ptrType$11, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref$1, ptrType$28, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref$1, ptrType$27, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref$1, ptrType$30, true)[1]) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if ($assertType(_ref$1, ptrType$4, true)[1]) { */ case 1: + t = _ref$1.$val; + _r$9 = isString(t); /* */ $s = 9; case 9: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + /* */ if (_r$9) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (_r$9) { */ case 7: + e$1 = universeByte; + mode[0] = 7; + /* } */ case 8: + $s = 6; continue; + /* } else if ($assertType(_ref$1, ptrType$11, true)[1]) { */ case 2: + t$1 = _ref$1.$val; + l = t$1.len; + e$1 = t$1.elem; + if (!((x[0].mode === 5))) { + mode[0] = 7; + } + $s = 6; continue; + /* } else if ($assertType(_ref$1, ptrType$28, true)[1]) { */ case 3: + t$2 = _ref$1.$val; + _r$10 = under(t$2.base); /* */ $s = 10; case 10: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _tuple$2 = $assertType(_r$10, ptrType$11, true); + t$5 = _tuple$2[0]; + if (!(t$5 === ptrType$11.nil)) { + l = t$5.len; + e$1 = t$5.elem; + } + $s = 6; continue; + /* } else if ($assertType(_ref$1, ptrType$27, true)[1]) { */ case 4: + t$3 = _ref$1.$val; + e$1 = t$3.elem; + $s = 6; continue; + /* } else if ($assertType(_ref$1, ptrType$30, true)[1]) { */ case 5: + t$4 = _ref$1.$val; + k$1 = t$4.key; + e$1 = t$4.elem; + /* } */ case 6: + if ($interfaceIsEqual(e$1, $ifaceNil)) { + $s = -1; return false; + } + if ($interfaceIsEqual(elem[0], $ifaceNil)) { + length[0] = l; + _tmp$4 = k$1; + _tmp$5 = e$1; + key$1[0] = _tmp$4; + elem[0] = _tmp$5; + $s = -1; return true; + } + _r$11 = Identical(key$1[0], k$1); /* */ $s = 13; case 13: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + /* */ if (!_r$11) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (!_r$11) { */ case 11: + $s = -1; return false; + /* } */ case 12: + _r$12 = Identical(elem[0], e$1); /* */ $s = 16; case 16: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + /* */ if (!_r$12) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (!_r$12) { */ case 14: + $s = -1; return false; + /* } */ case 15: + if ((l.$high > 0 || (l.$high === 0 && l.$low >= 0)) && (l.$high < length[0].$high || (l.$high === length[0].$high && l.$low < length[0].$low))) { + length[0] = l; + } + $s = -1; return true; + /* */ } return; } var $f = {$blk: Checker·indexExpr·func1, $c: true, $r, _r$10, _r$11, _r$12, _r$9, _ref$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple$2, e$1, k$1, l, t, t$1, t$2, t$3, t$4, t$5, u, $s};return $f; + }; })(elem, k, key, key$1, length, mode, x)); /* */ $s = 32; case 32: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + /* */ if (_r$9) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if (_r$9) { */ case 29: + /* */ if (!($interfaceIsEqual(key$1[0], $ifaceNil))) { $s = 33; continue; } + /* */ $s = 34; continue; + /* if (!($interfaceIsEqual(key$1[0], $ifaceNil))) { */ case 33: + _r$10 = check.singleIndex(e); /* */ $s = 35; case 35: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + index$1 = _r$10; + if ($interfaceIsEqual(index$1, $ifaceNil)) { + x[0].mode = 0; + isFuncInst = false; + $s = -1; return isFuncInst; + } + k[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + $r = check.expr($ifaceNil, k[0], index$1); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.assignment(k[0], key$1[0], "map index"); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x[0].mode = 6; + x[0].typ = elem[0]; + x[0].expr = e; + isFuncInst = false; + $s = -1; return isFuncInst; + /* } */ case 34: + valid = true; + x[0].mode = mode[0]; + x[0].typ = elem[0]; + /* } */ case 30: + /* } } */ case 18: + /* */ if (!valid) { $s = 38; continue; } + /* */ $s = 39; continue; + /* if (!valid) { */ case 38: + $r = check.errorf(x[0], 51, "invalid operation: cannot index %s", new sliceType$5([x[0]])); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$11 = check.use(e.IndexListExpr.Indices); /* */ $s = 41; case 41: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _r$11; + x[0].mode = 0; + isFuncInst = false; + $s = -1; return isFuncInst; + /* } */ case 39: + _r$12 = check.singleIndex(e); /* */ $s = 42; case 42: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + index$2 = _r$12; + if ($interfaceIsEqual(index$2, $ifaceNil)) { + x[0].mode = 0; + isFuncInst = false; + $s = -1; return isFuncInst; } - return ptrType.nil; + if ($interfaceIsEqual(x[0].typ, $ifaceNil)) { + x[0].typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + } + _r$13 = check.index(index$2, length[0]); /* */ $s = 43; case 43: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _r$13; + isFuncInst = false; + $s = -1; return isFuncInst; + /* */ } return; } var $f = {$blk: indexExpr, $c: true, $r, _1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tmp, _tmp$1, _tuple, _tuple$1, check, e, elem, index, index$1, index$2, isFuncInst, k, key, key$1, length, mode, sig, typ$10, typ$4, typ$5, typ$6, typ$7, typ$8, typ$9, valid, x, $s};return $f; }; - $ptrType(Scope).prototype.WriteTo = function WriteTo(w, n, recurse) { - var {_arg, _arg$1, _arg$2, _i, _i$1, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, indn, indn1, n, name, recurse, s, s$1, w, $s, $r, $c} = $restore(this, {w, n, recurse}); + $ptrType(Checker).prototype.sliceExpr = function sliceExpr(x, e) { + var {_i, _i$1, _i$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, _ref$2, _ref$3, _tuple, _tuple$1, at$1, at$2, check, e, expr, i, i$1, ind, j, length, max, u, u$1, u$2, u$3, u$4, u$5, v, valid, x, x$1, x$2, x$3, x$4, x$5, y, $s, $r, $c} = $restore(this, {x, e}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - s = this; - indn = strings.Repeat(". ", n); - _r$1 = fmt.Fprintf(w, "%s%s scope %p {\n", new sliceType$6([new $String(indn), new $String(s.comment), s])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - indn1 = indn + ". "; - _r$2 = s.Names(); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _ref = _r$2; + check = this; + $r = check.expr($ifaceNil, x, e.X); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (x.mode === 0) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (x.mode === 0) { */ case 2: + _r = check.use(new sliceType$10([e.Low, e.High, e.Max])); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + $s = -1; return; + /* } */ case 3: + valid = false; + length = new $Int64(-1, 4294967295); + _r$1 = coreString(x.typ); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _ref = _r$1; + /* */ if (_ref === $ifaceNil) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 9; continue; } + /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (_ref === $ifaceNil) { */ case 6: + u = _ref; + $r = check.errorf(x, 54, "invalid operation: cannot slice %s: %s has no core type", new sliceType$5([x, x.typ])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + $s = -1; return; + /* } else if ($assertType(_ref, ptrType$4, true)[1]) { */ case 7: + u$1 = _ref.$val; + _r$2 = isString(u$1); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (_r$2) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (_r$2) { */ case 13: + /* */ if (e.Slice3) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (e.Slice3) { */ case 16: + at$1 = e.Max; + if ($interfaceIsEqual(at$1, $ifaceNil)) { + at$1 = e; + } + $r = check.error(at$1, 55, "invalid operation: 3-index slice of string"); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + $s = -1; return; + /* } */ case 17: + valid = true; + /* */ if (x.mode === 4) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (x.mode === 4) { */ case 19: + _r$3 = constant.StringVal(x.val); /* */ $s = 21; case 21: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + length = (new $Int64(0, _r$3.length)); + /* } */ case 20: + if (isUntyped(x.typ)) { + x.typ = (17 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 17]); + } + /* } */ case 14: + $s = 11; continue; + /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 8: + u$2 = _ref.$val; + valid = true; + length = u$2.len; + /* */ if (!((x.mode === 5))) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (!((x.mode === 5))) { */ case 22: + $r = check.errorf(x, 54, "invalid operation: cannot slice %s (value not addressable)", new sliceType$5([x])); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + $s = -1; return; + /* } */ case 23: + x.typ = new Slice.ptr(u$2.elem); + $s = 11; continue; + /* } else if ($assertType(_ref, ptrType$28, true)[1]) { */ case 9: + u$3 = _ref.$val; + _r$4 = under(u$3.base); /* */ $s = 25; case 25: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple = $assertType(_r$4, ptrType$11, true); + u$5 = _tuple[0]; + if (!(u$5 === ptrType$11.nil)) { + valid = true; + length = u$5.len; + x.typ = new Slice.ptr(u$5.elem); + } + $s = 11; continue; + /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 10: + u$4 = _ref.$val; + valid = true; + /* } */ case 11: + /* */ if (!valid) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (!valid) { */ case 26: + $r = check.errorf(x, 54, "invalid operation: cannot slice %s", new sliceType$5([x])); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + $s = -1; return; + /* } */ case 27: + x.mode = 7; + /* */ if (e.Slice3 && ($interfaceIsEqual(e.High, $ifaceNil) || $interfaceIsEqual(e.Max, $ifaceNil))) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if (e.Slice3 && ($interfaceIsEqual(e.High, $ifaceNil) || $interfaceIsEqual(e.Max, $ifaceNil))) { */ case 29: + _r$5 = inNode(e, e.Rbrack); /* */ $s = 31; case 31: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $r = check.error((x$1 = _r$5, new x$1.constructor.elem(x$1)), -1, "2nd and 3rd index required in 3-index slice"); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + $s = -1; return; + /* } */ case 30: + ind = arrayType$2.zero(); + _ref$1 = new sliceType$10([e.Low, e.High, e.Max]); _i = 0; - /* while (true) { */ case 3: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } - name = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _arg = w; - _arg$1 = new $String(indn1); - _r$3 = s.Lookup(name); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _arg$2 = _r$3; - _r$4 = fmt.Fprintf(_arg, "%s%s\n", new sliceType$6([_arg$1, _arg$2])); /* */ $s = 6; case 6: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$4; + /* while (true) { */ case 33: + /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 34; continue; } + i = _i; + expr = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + x$2 = new $Int64(-1, 4294967295); + /* */ if (!($interfaceIsEqual(expr, $ifaceNil))) { $s = 36; continue; } + /* */ if ((i === 0)) { $s = 37; continue; } + /* */ if ((length.$high > 0 || (length.$high === 0 && length.$low >= 0))) { $s = 38; continue; } + /* */ $s = 39; continue; + /* if (!($interfaceIsEqual(expr, $ifaceNil))) { */ case 36: + max = new $Int64(-1, 4294967295); + if ((length.$high > 0 || (length.$high === 0 && length.$low >= 0))) { + max = new $Int64(length.$high + 0, length.$low + 1); + } + _r$6 = check.index(expr, max); /* */ $s = 40; case 40: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _tuple$1 = _r$6; + v = _tuple$1[1]; + if ((v.$high > 0 || (v.$high === 0 && v.$low >= 0))) { + x$2 = v; + } + $s = 39; continue; + /* } else if ((i === 0)) { */ case 37: + x$2 = new $Int64(0, 0); + $s = 39; continue; + /* } else if ((length.$high > 0 || (length.$high === 0 && length.$low >= 0))) { */ case 38: + x$2 = length; + /* } */ case 39: + case 35: + ((i < 0 || i >= ind.length) ? ($throwRuntimeError("index out of range"), undefined) : ind[i] = x$2); _i++; - $s = 3; continue; - case 4: - /* */ if (recurse) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (recurse) { */ case 7: - _ref$1 = s.children; - _i$1 = 0; - /* while (true) { */ case 9: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 10; continue; } - s$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - $r = s$1.WriteTo(w, n + 1 >> 0, recurse); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$1++; - $s = 9; continue; - case 10: - /* } */ case 8: - _r$5 = fmt.Fprintf(w, "%s}\n", new sliceType$6([new $String(indn)])); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$5; + $s = 33; continue; + case 34: + _ref$2 = $subslice(new sliceType$18(ind), 0, 2); + _i$1 = 0; + /* while (true) { */ case 41: + /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 42; continue; } + i$1 = _i$1; + x$3 = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); + /* */ if ((x$3.$high > 0 || (x$3.$high === 0 && x$3.$low > 0))) { $s = 43; continue; } + /* */ $s = 44; continue; + /* if ((x$3.$high > 0 || (x$3.$high === 0 && x$3.$low > 0))) { */ case 43: + _ref$3 = $subslice(new sliceType$18(ind), (i$1 + 1 >> 0)); + _i$2 = 0; + /* while (true) { */ case 45: + /* if (!(_i$2 < _ref$3.$length)) { break; } */ if(!(_i$2 < _ref$3.$length)) { $s = 46; continue; } + j = _i$2; + y = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]); + /* */ if ((y.$high > 0 || (y.$high === 0 && y.$low >= 0)) && (y.$high < x$3.$high || (y.$high === x$3.$high && y.$low < x$3.$low))) { $s = 47; continue; } + /* */ $s = 48; continue; + /* if ((y.$high > 0 || (y.$high === 0 && y.$low >= 0)) && (y.$high < x$3.$high || (y.$high === x$3.$high && y.$low < x$3.$low))) { */ case 47: + at$2 = (x$4 = new sliceType$10([e.Low, e.High, e.Max]), x$5 = (i$1 + 1 >> 0) + j >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])); + $r = check.errorf(at$2, 53, "invalid slice indices: %d < %d", new sliceType$5([y, x$3])); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* break L; */ $s = 42; continue s; + /* } */ case 48: + _i$2++; + $s = 45; continue; + case 46: + /* } */ case 44: + _i$1++; + $s = 41; continue; + case 42: $s = -1; return; - /* */ } return; } var $f = {$blk: WriteTo, $c: true, $r, _arg, _arg$1, _arg$2, _i, _i$1, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, indn, indn1, n, name, recurse, s, s$1, w, $s};return $f; - }; - $ptrType(Scope).prototype.String = function String$12() { - var {buf, s, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - buf = [buf]; - s = this; - buf[0] = new strings.Builder.ptr(ptrType$53.nil, sliceType$14.nil); - $r = s.WriteTo(buf[0], 0, false); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return buf[0].String(); - /* */ } return; } var $f = {$blk: String$12, $c: true, $r, buf, s, $s};return $f; + /* */ } return; } var $f = {$blk: sliceExpr, $c: true, $r, _i, _i$1, _i$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, _ref$2, _ref$3, _tuple, _tuple$1, at$1, at$2, check, e, expr, i, i$1, ind, j, length, max, u, u$1, u$2, u$3, u$4, u$5, v, valid, x, x$1, x$2, x$3, x$4, x$5, y, $s};return $f; }; - resolve = function resolve$1(name, obj) { - var {_tuple, lazy, name, obj, ok, $s, $r, $c} = $restore(this, {name, obj}); + $ptrType(Checker).prototype.singleIndex = function singleIndex(expr) { + var {check, expr, x, x$1, $s, $r, $c} = $restore(this, {expr}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - lazy = [lazy]; - name = [name]; - _tuple = $assertType(obj, ptrType$85, true); - lazy[0] = _tuple[0]; - ok = _tuple[1]; - /* */ if (ok) { $s = 1; continue; } + check = this; + /* */ if (expr.IndexListExpr.Indices.$length === 0) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (ok) { */ case 1: - $r = lazy[0].once.Do((function(lazy, name) { return function resolve·func1() { - var {_r$1, _r$2, _r$3, _tuple$1, obj$1, ok$1, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = lazy[0].resolve(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - obj$1 = _r$1; - _tuple$1 = $assertType(obj$1, ptrType$85, true); - ok$1 = _tuple$1[1]; - if (ok$1) { - $panic(new $String("recursive lazy object")); - } - _r$2 = obj$1.Name(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (!(_r$2 === name[0])) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!(_r$2 === name[0])) { */ case 2: - $panic(new $String("lazy object has unexpected name")); - /* } */ case 3: - _r$3 = obj$1.Parent(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (_r$3 === ptrType.nil) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (_r$3 === ptrType.nil) { */ case 5: - $r = obj$1.setParent(lazy[0].parent); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 6: - lazy[0].obj = obj$1; - $s = -1; return; - /* */ } return; } var $f = {$blk: resolve·func1, $c: true, $r, _r$1, _r$2, _r$3, _tuple$1, obj$1, ok$1, $s};return $f; - }; })(lazy, name)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - obj = lazy[0].obj; + /* if (expr.IndexListExpr.Indices.$length === 0) { */ case 1: + $r = check.errorf(expr.Orig, -1, "index expression %v with 0 indices", new sliceType$5([expr])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return $ifaceNil; /* } */ case 2: - $s = -1; return obj; - /* */ } return; } var $f = {$blk: resolve$1, $c: true, $r, _tuple, lazy, name, obj, ok, $s};return $f; - }; - $ptrType(lazyObject).prototype.Parent = function Parent$1() { - $panic(new $String("unreachable")); - }; - $ptrType(lazyObject).prototype.Pos = function Pos$1() { - $panic(new $String("unreachable")); - }; - $ptrType(lazyObject).prototype.Pkg = function Pkg() { - $panic(new $String("unreachable")); - }; - $ptrType(lazyObject).prototype.Name = function Name() { - $panic(new $String("unreachable")); - }; - $ptrType(lazyObject).prototype.Type = function Type$3() { - $panic(new $String("unreachable")); - }; - $ptrType(lazyObject).prototype.Exported = function Exported() { - $panic(new $String("unreachable")); - }; - $ptrType(lazyObject).prototype.Id = function Id$1() { - $panic(new $String("unreachable")); - }; - $ptrType(lazyObject).prototype.String = function String$13() { - $panic(new $String("unreachable")); - }; - $ptrType(lazyObject).prototype.order = function order() { - $panic(new $String("unreachable")); - }; - $ptrType(lazyObject).prototype.color = function color$1() { - $panic(new $String("unreachable")); - }; - $ptrType(lazyObject).prototype.setOrder = function setOrder(param) { - var param; - $panic(new $String("unreachable")); - }; - $ptrType(lazyObject).prototype.setColor = function setColor(color$2) { - var color$2; - $panic(new $String("unreachable")); - }; - $ptrType(lazyObject).prototype.setParent = function setParent(param) { - var param; - $panic(new $String("unreachable")); - }; - $ptrType(lazyObject).prototype.sameId = function sameId(pkg, name) { - var name, pkg; - $panic(new $String("unreachable")); - }; - $ptrType(lazyObject).prototype.scopePos = function scopePos() { - $panic(new $String("unreachable")); - }; - $ptrType(lazyObject).prototype.setScopePos = function setScopePos(pos) { - var pos; - $panic(new $String("unreachable")); + /* */ if (expr.IndexListExpr.Indices.$length > 1) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (expr.IndexListExpr.Indices.$length > 1) { */ case 4: + $r = check.error((x = expr.IndexListExpr.Indices, (1 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 1])), 52, "invalid operation: more than one index"); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 5: + $s = -1; return (x$1 = expr.IndexListExpr.Indices, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])); + /* */ } return; } var $f = {$blk: singleIndex, $c: true, $r, check, expr, x, x$1, $s};return $f; }; - $ptrType(Checker).prototype.isTerminating = function isTerminating(s, label) { - var _entry, _i, _ref, _ref$1, _tuple, call, cc, check, label, ok, s, s$1, s$10, s$11, s$12, s$13, s$2, s$3, s$4, s$5, s$6, s$7, s$8, s$9; + $ptrType(Checker).prototype.index = function index(index$1, max) { + var {_arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, check, index$1, max, ok, typ$4, v, val, x, $s, $r, $c} = $restore(this, {index$1, max}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = [x]; + typ$4 = $ifaceNil; + val = new $Int64(0, 0); check = this; - _ref = s; - if ($assertType(_ref, ptrType$63, true)[1] || $assertType(_ref, ptrType$64, true)[1] || $assertType(_ref, ptrType$59, true)[1] || $assertType(_ref, ptrType$67, true)[1] || $assertType(_ref, ptrType$68, true)[1] || $assertType(_ref, ptrType$69, true)[1] || $assertType(_ref, ptrType$70, true)[1] || $assertType(_ref, ptrType$71, true)[1] || $assertType(_ref, ptrType$80, true)[1]) { - s$2 = _ref; - } else if ($assertType(_ref, ptrType$65, true)[1]) { - s$3 = _ref.$val; - return check.isTerminating(s$3.Stmt, s$3.Label.Name); - } else if ($assertType(_ref, ptrType$66, true)[1]) { - s$4 = _ref.$val; - _tuple = $assertType(unparen(s$4.X), ptrType$86, true); - call = _tuple[0]; - ok = _tuple[1]; - if (ok && (_entry = $mapIndex(check.environment.isPanic,ptrType$86.keyFor(call)), _entry !== undefined ? _entry.v : false)) { - return true; - } - } else if ($assertType(_ref, ptrType$72, true)[1]) { - s$5 = _ref.$val; - return true; - } else if ($assertType(_ref, ptrType$73, true)[1]) { - s$6 = _ref.$val; - if ((s$6.Tok === 73) || (s$6.Tok === 69)) { - return true; - } - } else if ($assertType(_ref, ptrType$74, true)[1]) { - s$7 = _ref.$val; - return check.isTerminatingList(s$7.List, ""); - } else if ($assertType(_ref, ptrType$75, true)[1]) { - s$8 = _ref.$val; - if (!($interfaceIsEqual(s$8.Else, $ifaceNil)) && check.isTerminating(s$8.Body, "") && check.isTerminating(s$8.Else, "")) { - return true; - } - } else if ($assertType(_ref, ptrType$76, true)[1]) { - s$9 = _ref.$val; - return check.isTerminatingSwitch(s$9.Body, label); - } else if ($assertType(_ref, ptrType$77, true)[1]) { - s$10 = _ref.$val; - return check.isTerminatingSwitch(s$10.Body, label); - } else if ($assertType(_ref, ptrType$78, true)[1]) { - s$11 = _ref.$val; - _ref$1 = s$11.Body.List; - _i = 0; - while (true) { - if (!(_i < _ref$1.$length)) { break; } - s$13 = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); - cc = $assertType(s$13, ptrType$61); - if (!check.isTerminatingList(cc.Body, "") || hasBreakList(cc.Body, label, true)) { - return false; - } - _i++; - } - return true; - } else if ($assertType(_ref, ptrType$79, true)[1]) { - s$12 = _ref.$val; - if ($interfaceIsEqual(s$12.Cond, $ifaceNil) && !hasBreak(s$12.Body, label, true)) { - return true; - } - } else { - s$1 = _ref; - unreachable(); + typ$4 = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + val = new $Int64(-1, 4294967295); + x[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + $r = check.expr($ifaceNil, x[0], index$1); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r = check.isValidIndex(x[0], 52, "index", false); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!_r) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!_r) { */ case 2: + $s = -1; return [typ$4, val]; + /* } */ case 3: + if (!((x[0].mode === 4))) { + _tmp = x[0].typ; + _tmp$1 = new $Int64(-1, 4294967295); + typ$4 = _tmp; + val = _tmp$1; + $s = -1; return [typ$4, val]; } - return false; + _r$1 = x[0].val.Kind(); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1 === 0) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_r$1 === 0) { */ case 5: + $s = -1; return [typ$4, val]; + /* } */ case 6: + _r$2 = constant.Int64Val(x[0].val); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = _r$2; + v = _tuple[0]; + ok = _tuple[1]; + $r = assert(ok); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if ((max.$high > 0 || (max.$high === 0 && max.$low >= 0)) && (v.$high > max.$high || (v.$high === max.$high && v.$low >= max.$low))) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if ((max.$high > 0 || (max.$high === 0 && max.$low >= 0)) && (v.$high > max.$high || (v.$high === max.$high && v.$low >= max.$low))) { */ case 10: + _arg = x[0]; + _r$3 = x[0].val.String(); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _arg$1 = new $String(_r$3); + _arg$2 = max; + $r = check.errorf(_arg, 52, "invalid argument: index %s out of bounds [0:%d]", new sliceType$5([_arg$1, _arg$2])); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return [typ$4, val]; + /* } */ case 11: + _tmp$2 = x[0].typ; + _tmp$3 = v; + typ$4 = _tmp$2; + val = _tmp$3; + $s = -1; return [typ$4, val]; + /* */ } return; } var $f = {$blk: index, $c: true, $r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, check, index$1, max, ok, typ$4, v, val, x, $s};return $f; }; - $ptrType(Checker).prototype.isTerminatingList = function isTerminatingList(list$2, label) { - var _tuple, check, i, label, list$2, ok; + $ptrType(Checker).prototype.isValidIndex = function isValidIndex(x, code, what, allowNegative) { + var {_r, _r$1, _r$2, _v, allowNegative, check, code, what, x, $s, $r, $c} = $restore(this, {x, code, what, allowNegative}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: check = this; - i = list$2.$length - 1 >> 0; - while (true) { - if (!(i >= 0)) { break; } - _tuple = $assertType(((i < 0 || i >= list$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : list$2.$array[list$2.$offset + i]), ptrType$59, true); - ok = _tuple[1]; - if (!ok) { - return check.isTerminating(((i < 0 || i >= list$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : list$2.$array[list$2.$offset + i]), label); - } - i = i - (1) >> 0; + if (x.mode === 0) { + $s = -1; return false; } - return false; + $r = check.convertUntyped(x, (2 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 2])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (x.mode === 0) { + $s = -1; return false; + } + _r = allInteger(x.typ); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!_r) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!_r) { */ case 2: + $r = check.errorf(x, code, "invalid argument: %s %s must be integer", new sliceType$5([new $String(what), x])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; + /* } */ case 3: + /* */ if (x.mode === 4) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (x.mode === 4) { */ case 6: + if (!(!allowNegative)) { _v = false; $s = 10; continue s; } + _r$1 = constant.Sign(x.val); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = _r$1 < 0; case 10: + /* */ if (_v) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (_v) { */ case 8: + $r = check.errorf(x, code, "invalid argument: %s %s must not be negative", new sliceType$5([new $String(what), x])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; + /* } */ case 9: + _r$2 = representableConst(x.val, check, (2 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 2]), (x === ptrType$63.nil && $throwNilPointerError(), (x.$ptr_val || (x.$ptr_val = new ptrType$51(function() { return this.$target.val; }, function($v) { this.$target.val = $v; }, x))))); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (!_r$2) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (!_r$2) { */ case 13: + $r = check.errorf(x, code, "invalid argument: %s %s overflows int", new sliceType$5([new $String(what), x])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; + /* } */ case 14: + /* } */ case 7: + $s = -1; return true; + /* */ } return; } var $f = {$blk: isValidIndex, $c: true, $r, _r, _r$1, _r$2, _v, allowNegative, check, code, what, x, $s};return $f; }; - $ptrType(Checker).prototype.isTerminatingSwitch = function isTerminatingSwitch(body, label) { - var _i, _ref, body, cc, check, hasDefault, label, s; + $ptrType(Checker).prototype.indexedElts = function indexedElts(elts, typ$4, length) { + var {_entry, _i, _key, _r, _ref, _tmp, _tmp$1, _tuple, _tuple$1, check, e, elts, eval$1, i, index$1, kv, length, max, typ$4, typ$5, validIndex, visited, x, x$1, x$2, $s, $r, $c} = $restore(this, {elts, typ$4, length}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: check = this; - hasDefault = false; - _ref = body.List; + visited = (x = elts.$length, ((x < 0 || x > 2147483647) ? $throwRuntimeError("makemap: size out of range") : new $global.Map())); + _tmp = new $Int64(0, 0); + _tmp$1 = new $Int64(0, 0); + index$1 = _tmp; + max = _tmp$1; + _ref = elts; _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - cc = $assertType(s, ptrType$60); - if (cc.List === sliceType$11.nil) { - hasDefault = true; - } - if (!check.isTerminatingList(cc.Body, "") || hasBreakList(cc.Body, label, true)) { - return false; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + x$1 = [x$1]; + e = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + validIndex = false; + eval$1 = e; + _tuple = $assertType(e, ptrType$100, true); + kv = _tuple[0]; + /* */ if (!(kv === ptrType$100.nil)) { $s = 3; continue; } + /* */ if ((length.$high > 0 || (length.$high === 0 && length.$low >= 0)) && (index$1.$high > length.$high || (index$1.$high === length.$high && index$1.$low >= length.$low))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!(kv === ptrType$100.nil)) { */ case 3: + _r = check.index(kv.Key, length); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple$1 = _r; + typ$5 = _tuple$1[0]; + i = _tuple$1[1]; + /* */ if (!($interfaceIsEqual(typ$5, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!($interfaceIsEqual(typ$5, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { */ case 8: + /* */ if ((i.$high > 0 || (i.$high === 0 && i.$low >= 0))) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if ((i.$high > 0 || (i.$high === 0 && i.$low >= 0))) { */ case 10: + index$1 = i; + validIndex = true; + $s = 12; continue; + /* } else { */ case 11: + $r = check.errorf(e, 62, "index %s must be integer constant", new sliceType$5([kv.Key])); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 12: + /* } */ case 9: + eval$1 = kv.Value; + $s = 6; continue; + /* } else if ((length.$high > 0 || (length.$high === 0 && length.$low >= 0)) && (index$1.$high > length.$high || (index$1.$high === length.$high && index$1.$low >= length.$low))) { */ case 4: + $r = check.errorf(e, 63, "index %d is out of bounds (>= %d)", new sliceType$5([index$1, length])); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 6; continue; + /* } else { */ case 5: + validIndex = true; + /* } */ case 6: + /* */ if (validIndex) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (validIndex) { */ case 15: + /* */ if ((_entry = $mapIndex(visited,$Int64.keyFor(index$1)), _entry !== undefined ? _entry.v : false)) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if ((_entry = $mapIndex(visited,$Int64.keyFor(index$1)), _entry !== undefined ? _entry.v : false)) { */ case 17: + $r = check.errorf(e, 60, "duplicate index %d in array or slice literal", new sliceType$5([index$1])); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 18: + _key = index$1; (visited || $throwRuntimeError("assignment to entry in nil map")).set($Int64.keyFor(_key), { k: _key, v: true }); + /* } */ case 16: + index$1 = (x$2 = new $Int64(0, 1), new $Int64(index$1.$high + x$2.$high, index$1.$low + x$2.$low)); + if ((index$1.$high > max.$high || (index$1.$high === max.$high && index$1.$low > max.$low))) { + max = index$1; } + x$1[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + $r = check.exprWithHint(x$1[0], eval$1, typ$4); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.assignment(x$1[0], typ$4, "array or slice literal"); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _i++; - } - return hasDefault; + $s = 1; continue; + case 2: + $s = -1; return max; + /* */ } return; } var $f = {$blk: indexedElts, $c: true, $r, _entry, _i, _key, _r, _ref, _tmp, _tmp$1, _tuple, _tuple$1, check, e, elts, eval$1, i, index$1, kv, length, max, typ$4, typ$5, validIndex, visited, x, x$1, x$2, $s};return $f; }; - hasBreak = function hasBreak$1(s, label, implicit) { - var _ref, implicit, label, s, s$1, s$10, s$11, s$12, s$13, s$2, s$3, s$4, s$5, s$6, s$7, s$8, s$9; - _ref = s; - if ($assertType(_ref, ptrType$63, true)[1] || $assertType(_ref, ptrType$64, true)[1] || $assertType(_ref, ptrType$59, true)[1] || $assertType(_ref, ptrType$66, true)[1] || $assertType(_ref, ptrType$67, true)[1] || $assertType(_ref, ptrType$68, true)[1] || $assertType(_ref, ptrType$69, true)[1] || $assertType(_ref, ptrType$70, true)[1] || $assertType(_ref, ptrType$71, true)[1] || $assertType(_ref, ptrType$72, true)[1]) { - s$2 = _ref; - } else if ($assertType(_ref, ptrType$65, true)[1]) { - s$3 = _ref.$val; - return hasBreak(s$3.Stmt, label, implicit); - } else if ($assertType(_ref, ptrType$73, true)[1]) { - s$4 = _ref.$val; - if (s$4.Tok === 61) { - if (s$4.Label === ptrType$30.nil) { - return implicit; - } - if (s$4.Label.Name === label) { - return true; - } - } - } else if ($assertType(_ref, ptrType$74, true)[1]) { - s$5 = _ref.$val; - return hasBreakList(s$5.List, label, implicit); - } else if ($assertType(_ref, ptrType$75, true)[1]) { - s$6 = _ref.$val; - if (hasBreak(s$6.Body, label, implicit) || !($interfaceIsEqual(s$6.Else, $ifaceNil)) && hasBreak(s$6.Else, label, implicit)) { - return true; - } - } else if ($assertType(_ref, ptrType$60, true)[1]) { - s$7 = _ref.$val; - return hasBreakList(s$7.Body, label, implicit); - } else if ($assertType(_ref, ptrType$76, true)[1]) { - s$8 = _ref.$val; - if (!(label === "") && hasBreak(s$8.Body, label, false)) { - return true; + ExprString = function ExprString$1(x) { + var {buf, x, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + buf = [buf]; + buf[0] = new bytes.Buffer.ptr(sliceType$12.nil, 0, 0); + $r = WriteExpr(buf[0], x); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return buf[0].String(); + /* */ } return; } var $f = {$blk: ExprString$1, $c: true, $r, buf, x, $s};return $f; + }; + $pkg.ExprString = ExprString; + WriteExpr = function WriteExpr$1(buf, x) { + var {_1, _r, _ref, buf, ix, s, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {buf, x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref = x; + /* */ if ($assertType(_ref, ptrType$31, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$42, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$58, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$101, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$102, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$40, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$37, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref, ptrType$38, true)[1] || $assertType(_ref, ptrType$39, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref, ptrType$103, true)[1]) { $s = 9; continue; } + /* */ if ($assertType(_ref, ptrType$83, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref, ptrType$87, true)[1]) { $s = 11; continue; } + /* */ if ($assertType(_ref, ptrType$44, true)[1]) { $s = 12; continue; } + /* */ if ($assertType(_ref, ptrType$21, true)[1]) { $s = 13; continue; } + /* */ if ($assertType(_ref, ptrType$22, true)[1]) { $s = 14; continue; } + /* */ if ($assertType(_ref, ptrType$41, true)[1]) { $s = 15; continue; } + /* */ if ($assertType(_ref, ptrType$43, true)[1]) { $s = 16; continue; } + /* */ if ($assertType(_ref, ptrType$45, true)[1]) { $s = 17; continue; } + /* */ if ($assertType(_ref, ptrType$46, true)[1]) { $s = 18; continue; } + /* */ if ($assertType(_ref, ptrType$47, true)[1]) { $s = 19; continue; } + /* */ if ($assertType(_ref, ptrType$48, true)[1]) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if ($assertType(_ref, ptrType$31, true)[1]) { */ case 1: + x$2 = _ref.$val; + buf.WriteString(x$2.Name); + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$42, true)[1]) { */ case 2: + x$3 = _ref.$val; + buf.WriteString("..."); + /* */ if (!($interfaceIsEqual(x$3.Elt, $ifaceNil))) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (!($interfaceIsEqual(x$3.Elt, $ifaceNil))) { */ case 23: + $r = WriteExpr(buf, x$3.Elt); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 24: + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$58, true)[1]) { */ case 3: + x$4 = _ref.$val; + buf.WriteString(x$4.Value); + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$101, true)[1]) { */ case 4: + x$5 = _ref.$val; + buf.WriteByte(40); + $r = WriteExpr(buf, x$5.Type); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + buf.WriteString(" literal)"); + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$102, true)[1]) { */ case 5: + x$6 = _ref.$val; + $r = WriteExpr(buf, x$6.Type); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + buf.WriteByte(123); + if (x$6.Elts.$length > 0) { + buf.WriteString("\xE2\x80\xA6"); } - } else if ($assertType(_ref, ptrType$77, true)[1]) { - s$9 = _ref.$val; - if (!(label === "") && hasBreak(s$9.Body, label, false)) { - return true; + buf.WriteByte(125); + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$40, true)[1]) { */ case 6: + x$7 = _ref.$val; + buf.WriteByte(40); + $r = WriteExpr(buf, x$7.X); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + buf.WriteByte(41); + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$37, true)[1]) { */ case 7: + x$8 = _ref.$val; + $r = WriteExpr(buf, x$8.X); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + buf.WriteByte(46); + buf.WriteString(x$8.Sel.Name); + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$38, true)[1] || $assertType(_ref, ptrType$39, true)[1]) { */ case 8: + x$9 = _ref; + ix = typeparams.UnpackIndexExpr(x$9); + $r = WriteExpr(buf, ix.IndexListExpr.X); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + buf.WriteByte(91); + $r = writeExprList(buf, ix.IndexListExpr.Indices); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + buf.WriteByte(93); + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$103, true)[1]) { */ case 9: + x$10 = _ref.$val; + $r = WriteExpr(buf, x$10.X); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + buf.WriteByte(91); + /* */ if (!($interfaceIsEqual(x$10.Low, $ifaceNil))) { $s = 33; continue; } + /* */ $s = 34; continue; + /* if (!($interfaceIsEqual(x$10.Low, $ifaceNil))) { */ case 33: + $r = WriteExpr(buf, x$10.Low); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 34: + buf.WriteByte(58); + /* */ if (!($interfaceIsEqual(x$10.High, $ifaceNil))) { $s = 36; continue; } + /* */ $s = 37; continue; + /* if (!($interfaceIsEqual(x$10.High, $ifaceNil))) { */ case 36: + $r = WriteExpr(buf, x$10.High); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 37: + /* */ if (x$10.Slice3) { $s = 39; continue; } + /* */ $s = 40; continue; + /* if (x$10.Slice3) { */ case 39: + buf.WriteByte(58); + /* */ if (!($interfaceIsEqual(x$10.Max, $ifaceNil))) { $s = 41; continue; } + /* */ $s = 42; continue; + /* if (!($interfaceIsEqual(x$10.Max, $ifaceNil))) { */ case 41: + $r = WriteExpr(buf, x$10.Max); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 42: + /* } */ case 40: + buf.WriteByte(93); + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$83, true)[1]) { */ case 10: + x$11 = _ref.$val; + $r = WriteExpr(buf, x$11.X); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + buf.WriteString(".("); + $r = WriteExpr(buf, x$11.Type); /* */ $s = 45; case 45: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + buf.WriteByte(41); + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$87, true)[1]) { */ case 11: + x$12 = _ref.$val; + $r = WriteExpr(buf, x$12.Fun); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + buf.WriteByte(40); + $r = writeExprList(buf, x$12.Args); /* */ $s = 47; case 47: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (new token.Pos(x$12.Ellipsis).IsValid()) { + buf.WriteString("..."); } - } else if ($assertType(_ref, ptrType$61, true)[1]) { - s$10 = _ref.$val; - return hasBreakList(s$10.Body, label, implicit); - } else if ($assertType(_ref, ptrType$78, true)[1]) { - s$11 = _ref.$val; - if (!(label === "") && hasBreak(s$11.Body, label, false)) { - return true; + buf.WriteByte(41); + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$44, true)[1]) { */ case 12: + x$13 = _ref.$val; + buf.WriteByte(42); + $r = WriteExpr(buf, x$13.X); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$21, true)[1]) { */ case 13: + x$14 = _ref.$val; + buf.WriteString(new token.Token(x$14.Op).String()); + $r = WriteExpr(buf, x$14.X); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$22, true)[1]) { */ case 14: + x$15 = _ref.$val; + $r = WriteExpr(buf, x$15.X); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + buf.WriteByte(32); + buf.WriteString(new token.Token(x$15.Op).String()); + buf.WriteByte(32); + $r = WriteExpr(buf, x$15.Y); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$41, true)[1]) { */ case 15: + x$16 = _ref.$val; + buf.WriteByte(91); + /* */ if (!($interfaceIsEqual(x$16.Len, $ifaceNil))) { $s = 52; continue; } + /* */ $s = 53; continue; + /* if (!($interfaceIsEqual(x$16.Len, $ifaceNil))) { */ case 52: + $r = WriteExpr(buf, x$16.Len); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 53: + buf.WriteByte(93); + $r = WriteExpr(buf, x$16.Elt); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$43, true)[1]) { */ case 16: + x$17 = _ref.$val; + buf.WriteString("struct{"); + $r = writeFieldList(buf, x$17.Fields.List, "; ", false); /* */ $s = 56; case 56: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + buf.WriteByte(125); + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$45, true)[1]) { */ case 17: + x$18 = _ref.$val; + buf.WriteString("func"); + $r = writeSigExpr(buf, x$18); /* */ $s = 57; case 57: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$46, true)[1]) { */ case 18: + x$19 = _ref.$val; + buf.WriteString("interface{"); + $r = writeFieldList(buf, x$19.Methods.List, "; ", true); /* */ $s = 58; case 58: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + buf.WriteByte(125); + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$47, true)[1]) { */ case 19: + x$20 = _ref.$val; + buf.WriteString("map["); + $r = WriteExpr(buf, x$20.Key); /* */ $s = 59; case 59: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + buf.WriteByte(93); + $r = WriteExpr(buf, x$20.Value); /* */ $s = 60; case 60: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 22; continue; + /* } else if ($assertType(_ref, ptrType$48, true)[1]) { */ case 20: + x$21 = _ref.$val; + s = ""; + _1 = x$21.Dir; + if (_1 === (1)) { + s = "chan<- "; + } else if (_1 === (2)) { + s = "<-chan "; + } else { + s = "chan "; } - } else if ($assertType(_ref, ptrType$79, true)[1]) { - s$12 = _ref.$val; - if (!(label === "") && hasBreak(s$12.Body, label, false)) { - return true; + buf.WriteString(s); + $r = WriteExpr(buf, x$21.Value); /* */ $s = 61; case 61: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 22; continue; + /* } else { */ case 21: + x$1 = _ref; + _r = fmt.Fprintf(buf, "(ast: %T)", new sliceType$5([x$1])); /* */ $s = 62; case 62: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + /* } */ case 22: + $s = -1; return; + /* */ } return; } var $f = {$blk: WriteExpr$1, $c: true, $r, _1, _r, _ref, buf, ix, s, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; + }; + $pkg.WriteExpr = WriteExpr; + writeSigExpr = function writeSigExpr$1(buf, sig) { + var {buf, n, res, sig, x, x$1, $s, $r, $c} = $restore(this, {buf, sig}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + buf.WriteByte(40); + $r = writeFieldList(buf, sig.Params.List, ", ", false); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + buf.WriteByte(41); + res = sig.Results; + n = res.NumFields(); + if (n === 0) { + $s = -1; return; + } + buf.WriteByte(32); + /* */ if ((n === 1) && ((x = res.List, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).Names.$length === 0)) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if ((n === 1) && ((x = res.List, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).Names.$length === 0)) { */ case 2: + $r = WriteExpr(buf, (x$1 = res.List, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])).Type); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 3: + buf.WriteByte(40); + $r = writeFieldList(buf, res.List, ", ", false); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + buf.WriteByte(41); + $s = -1; return; + /* */ } return; } var $f = {$blk: writeSigExpr$1, $c: true, $r, buf, n, res, sig, x, x$1, $s};return $f; + }; + writeFieldList = function writeFieldList$1(buf, list$2, sep, iface$1) { + var {_i, _ref, _tuple, buf, f, i, iface$1, list$2, sep, sig, $s, $r, $c} = $restore(this, {buf, list$2, sep, iface$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref = list$2; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (i > 0) { + buf.WriteString(sep); } - } else if ($assertType(_ref, ptrType$80, true)[1]) { - s$13 = _ref.$val; - if (!(label === "") && hasBreak(s$13.Body, label, false)) { - return true; + writeIdentList(buf, f.Names); + _tuple = $assertType(f.Type, ptrType$45, true); + sig = _tuple[0]; + /* */ if (!(sig === ptrType$45.nil) && iface$1) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!(sig === ptrType$45.nil) && iface$1) { */ case 3: + $r = writeSigExpr(buf, sig); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* continue; */ $s = 1; continue; + /* } */ case 4: + if (f.Names.$length > 0) { + buf.WriteByte(32); } - } else { - s$1 = _ref; - unreachable(); - } - return false; + $r = WriteExpr(buf, f.Type); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: writeFieldList$1, $c: true, $r, _i, _ref, _tuple, buf, f, i, iface$1, list$2, sep, sig, $s};return $f; }; - hasBreakList = function hasBreakList$1(list$2, label, implicit) { - var _i, _ref, implicit, label, list$2, s; + writeIdentList = function writeIdentList$1(buf, list$2) { + var _i, _ref, buf, i, list$2, x; _ref = list$2; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } - s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (hasBreak(s, label, implicit)) { - return true; + i = _i; + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (i > 0) { + buf.WriteString(", "); } + buf.WriteString(x.Name); _i++; } - return false; }; - $ptrType(declInfo).prototype.hasInitializer = function hasInitializer() { - var d; - d = this; - return !($interfaceIsEqual(d.init, $ifaceNil)) || !(d.fdecl === ptrType$87.nil) && !(d.fdecl.Body === ptrType$74.nil); + writeExprList = function writeExprList$1(buf, list$2) { + var {_i, _ref, buf, i, list$2, x, $s, $r, $c} = $restore(this, {buf, list$2}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref = list$2; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (i > 0) { + buf.WriteString(", "); + } + $r = WriteExpr(buf, x); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: writeExprList$1, $c: true, $r, _i, _ref, buf, i, list$2, x, $s};return $f; }; - $ptrType(declInfo).prototype.addDep = function addDep(obj) { - var _key, d, m, obj; - d = this; - m = d.deps; - if (m === false) { - m = new $global.Map(); - d.deps = m; - } - _key = obj; (m || $throwRuntimeError("assignment to entry in nil map")).set(Object.keyFor(_key), { k: _key, v: true }); + init$1 = function init$4() { + unaryOpPredicates = $makeMap(token.Token.keyFor, [{ k: 12, v: allNumeric }, { k: 13, v: allNumeric }, { k: 19, v: allInteger }, { k: 43, v: allBoolean }]); }; - $ptrType(Checker).prototype.arityMatch = function arityMatch(s, init$5) { - var {_arg, _arg$1, _r$1, check, init$5, l, n, n$1, r, s, x, x$1, x$2, $s, $r, $c} = $restore(this, {s, init$5}); + $ptrType(Checker).prototype.op = function op(m, x, op$1) { + var {_entry, _r, check, m, op$1, pred, x, $s, $r, $c} = $restore(this, {m, x, op$1}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: check = this; - l = s.Names.$length; - r = s.Values.$length; - if (!(init$5 === ptrType$88.nil)) { - r = init$5.Values.$length; - } - /* */ if (init$5 === ptrType$88.nil && (r === 0)) { $s = 2; continue; } - /* */ if (l < r) { $s = 3; continue; } - /* */ if (l > r && (!(init$5 === ptrType$88.nil) || !((r === 1)))) { $s = 4; continue; } + pred = (_entry = $mapIndex(m,token.Token.keyFor(op$1)), _entry !== undefined ? _entry.v : $throwNilPointerError); + /* */ if (!(pred === $throwNilPointerError)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(pred === $throwNilPointerError)) { */ case 1: + _r = pred(x.typ); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!_r) { $s = 4; continue; } /* */ $s = 5; continue; - /* if (init$5 === ptrType$88.nil && (r === 0)) { */ case 2: - /* */ if ($interfaceIsEqual(s.Type, $ifaceNil)) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if ($interfaceIsEqual(s.Type, $ifaceNil)) { */ case 6: - $r = check.error(s, 17, "missing type or init expr"); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 7: - $s = 5; continue; - /* } else if (l < r) { */ case 3: - /* */ if (l < s.Values.$length) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (l < s.Values.$length) { */ case 9: - n = (x = s.Values, ((l < 0 || l >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + l])); - $r = check.errorf(n, 17, "extra init expr %s", new sliceType$6([n])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 11; continue; - /* } else { */ case 10: - _arg = s; - _r$1 = check.fset.Position(init$5.Pos()); /* */ $s = 13; case 13: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _arg$1 = (x$1 = _r$1, new x$1.constructor.elem(x$1)); - $r = check.errorf(_arg, 17, "extra init expr at %s", new sliceType$6([_arg$1])); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 11: - $s = 5; continue; - /* } else if (l > r && (!(init$5 === ptrType$88.nil) || !((r === 1)))) { */ case 4: - n$1 = (x$2 = s.Names, ((r < 0 || r >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + r])); - $r = check.errorf(n$1, 17, "missing init expr for %s", new sliceType$6([n$1])); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* if (!_r) { */ case 4: + $r = check.errorf(x, 45, "invalid operation: operator %s not defined on %s", new sliceType$5([new token.Token(op$1), x])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; /* } */ case 5: - case 1: - $s = -1; return; - /* */ } return; } var $f = {$blk: arityMatch, $c: true, $r, _arg, _arg$1, _r$1, check, init$5, l, n, n$1, r, s, x, x$1, x$2, $s};return $f; + $s = 3; continue; + /* } else { */ case 2: + $r = check.errorf(x, -1, "unknown operator %s", new sliceType$5([new token.Token(op$1)])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; + /* } */ case 3: + $s = -1; return true; + /* */ } return; } var $f = {$blk: op, $c: true, $r, _entry, _r, check, m, op$1, pred, x, $s};return $f; }; - validatedImportPath = function validatedImportPath$1(path) { - var {$24r, $24r$1, _i, _r$1, _r$2, _ref, _rune, _tuple, err, path, r, s, $s, $r, $c} = $restore(this, {path}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _tuple = strconv.Unquote(path); - s = _tuple[0]; - err = _tuple[1]; - if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return ["", err]; + opName = function opName$1(e) { + var _ref, e, e$1, e$2, x, x$1; + _ref = e; + if ($assertType(_ref, ptrType$22, true)[1]) { + e$1 = _ref.$val; + if (((e$1.Op >> 0)) < 21) { + return (x = e$1.Op, ((x < 0 || x >= op2str2.length) ? ($throwRuntimeError("index out of range"), undefined) : op2str2[x])); + } + } else if ($assertType(_ref, ptrType$21, true)[1]) { + e$2 = _ref.$val; + if (((e$2.Op >> 0)) < 20) { + return (x$1 = e$2.Op, ((x$1 < 0 || x$1 >= op2str1.length) ? ($throwRuntimeError("index out of range"), undefined) : op2str1[x$1])); + } } - /* */ if (s === "") { $s = 1; continue; } + return ""; + }; + underIs = function underIs$3(typ$4, f) { + var {$24r, $24r$1, _r, _r$1, _r$2, _tuple, f, tpar, typ$4, $s, $r, $c} = $restore(this, {typ$4, f}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _tuple = $assertType(typ$4, ptrType$15, true); + tpar = _tuple[0]; + /* */ if (!(tpar === ptrType$15.nil)) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (s === "") { */ case 1: - _r$1 = fmt.Errorf("empty string", sliceType$6.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = ["", _r$1]; + /* if (!(tpar === ptrType$15.nil)) { */ case 1: + _r = tpar.underIs(f); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; $s = 4; case 4: return $24r; /* } */ case 2: - _ref = s; - _i = 0; - /* while (true) { */ case 5: - /* if (!(_i < _ref.length)) { break; } */ if(!(_i < _ref.length)) { $s = 6; continue; } - _rune = $decodeRune(_ref, _i); - r = _rune[0]; - /* */ if (!unicode.IsGraphic(r) || unicode.IsSpace(r) || strings.ContainsRune("!\"#$%&'()*,:;<=>?[\\]^{|}`\xEF\xBF\xBD", r)) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (!unicode.IsGraphic(r) || unicode.IsSpace(r) || strings.ContainsRune("!\"#$%&'()*,:;<=>?[\\]^{|}`\xEF\xBF\xBD", r)) { */ case 7: - _r$2 = fmt.Errorf("invalid character %#U", new sliceType$6([new $Int32(r)])); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r$1 = [s, _r$2]; - $s = 10; case 10: return $24r$1; - /* } */ case 8: - _i += _rune[1]; - $s = 5; continue; - case 6: - $s = -1; return [s, $ifaceNil]; - /* */ } return; } var $f = {$blk: validatedImportPath$1, $c: true, $r, $24r, $24r$1, _i, _r$1, _r$2, _ref, _rune, _tuple, err, path, r, s, $s};return $f; + _r$1 = under(typ$4); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = f(_r$1); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r$1 = _r$2; + $s = 7; case 7: return $24r$1; + /* */ } return; } var $f = {$blk: underIs$3, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _tuple, f, tpar, typ$4, $s};return $f; }; - $ptrType(Checker).prototype.declarePkgObj = function declarePkgObj(ident$1, obj, d) { - var {_key, _r$1, check, d, ident$1, obj, $s, $r, $c} = $restore(this, {ident$1, obj, d}); + $ptrType(Checker).prototype.unary = function unary(x, e) { + var {_1, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, _tuple$1, ch, check, e, ok, op$1, prec, u, x, $s, $r, $c} = $restore(this, {x, e}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: check = this; - _r$1 = obj.Name(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $r = assert(ident$1.Name === _r$1); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (ident$1.Name === "init") { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (ident$1.Name === "init") { */ case 3: - $r = check.error(ident$1, 39, "cannot declare init - must be func"); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.expr($ifaceNil, x, e.X); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (x.mode === 0) { $s = -1; return; - /* } */ case 4: - /* */ if (ident$1.Name === "main" && check.pkg.name === "main") { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (ident$1.Name === "main" && check.pkg.name === "main") { */ case 6: - $r = check.error(ident$1, 40, "cannot declare main - must be func"); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + } + op$1 = e.Op; + _1 = op$1; + /* */ if (_1 === (17)) { $s = 3; continue; } + /* */ if (_1 === (36)) { $s = 4; continue; } + /* */ if (_1 === (88)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_1 === (17)) { */ case 3: + _tuple = $assertType(unparen(e.X), ptrType$102, true); + ok = _tuple[1]; + /* */ if (!ok && !((x.mode === 5))) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!ok && !((x.mode === 5))) { */ case 7: + $r = check.errorf(x, 49, "invalid operation: cannot take address of %s", new sliceType$5([x])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + $s = -1; return; + /* } */ case 8: + x.mode = 7; + x.typ = new Pointer.ptr(x.typ); + $s = -1; return; + /* } else if (_1 === (36)) { */ case 4: + _r = coreType(x.typ); /* */ $s = 10; case 10: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + u = _r; + /* */ if ($interfaceIsEqual(u, $ifaceNil)) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if ($interfaceIsEqual(u, $ifaceNil)) { */ case 11: + $r = check.errorf(x, 58, "invalid operation: cannot receive from %s (no core type)", new sliceType$5([x])); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + $s = -1; return; + /* } */ case 12: + _tuple$1 = $assertType(u, ptrType$26, true); + ch = _tuple$1[0]; + /* */ if (ch === ptrType$26.nil) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (ch === ptrType$26.nil) { */ case 14: + $r = check.errorf(x, 58, "invalid operation: cannot receive from non-channel %s", new sliceType$5([x])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + $s = -1; return; + /* } */ case 15: + /* */ if (ch.dir === 1) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (ch.dir === 1) { */ case 17: + $r = check.errorf(x, 58, "invalid operation: cannot receive from send-only channel %s", new sliceType$5([x])); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + $s = -1; return; + /* } */ case 18: + x.mode = 8; + x.typ = ch.elem; + check.environment.hasCallOrRecv = true; + $s = -1; return; + /* } else if (_1 === (88)) { */ case 5: + _r$1 = allInteger(x.typ); /* */ $s = 22; case 22: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (!_r$1) { */ case 20: + $r = check.error(e, 45, "cannot use ~ outside of interface or type constraint"); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + $s = -1; return; + /* } */ case 21: + $r = check.error(e, 45, "cannot use ~ outside of interface or type constraint (use ^ for bitwise complement)"); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + op$1 = 19; + /* } */ case 6: + case 2: + _r$2 = check.op(unaryOpPredicates, x, op$1); /* */ $s = 27; case 27: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (!_r$2) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (!_r$2) { */ case 25: + x.mode = 0; $s = -1; return; - /* } */ case 7: - $r = check.declare(check.pkg.scope, ident$1, obj, 0); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _key = obj; (check.objMap || $throwRuntimeError("assignment to entry in nil map")).set(Object.keyFor(_key), { k: _key, v: d }); - $r = obj.setOrder((((check.objMap ? check.objMap.size : 0) >>> 0))); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 26: + /* */ if (x.mode === 4) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (x.mode === 4) { */ case 28: + _r$3 = x.val.Kind(); /* */ $s = 32; case 32: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3 === 0) { $s = 30; continue; } + /* */ $s = 31; continue; + /* if (_r$3 === 0) { */ case 30: + $s = -1; return; + /* } */ case 31: + prec = 0; + _r$4 = isUnsigned(x.typ); /* */ $s = 35; case 35: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (_r$4) { $s = 33; continue; } + /* */ $s = 34; continue; + /* if (_r$4) { */ case 33: + _r$5 = check.conf.sizeof(x.typ); /* */ $s = 36; case 36: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + prec = (($mul64(_r$5, new $Int64(0, 8)).$low >>> 0)); + /* } */ case 34: + _r$6 = constant.UnaryOp(op$1, x.val, prec); /* */ $s = 37; case 37: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + x.val = _r$6; + x.expr = e; + _arg = x; + _r$7 = x.Pos(); /* */ $s = 38; case 38: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _arg$1 = _r$7; + $r = check.overflow(_arg, _arg$1); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 29: + x.mode = 7; $s = -1; return; - /* */ } return; } var $f = {$blk: declarePkgObj, $c: true, $r, _key, _r$1, check, d, ident$1, obj, $s};return $f; + /* */ } return; } var $f = {$blk: unary, $c: true, $r, _1, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, _tuple$1, ch, check, e, ok, op$1, prec, u, x, $s};return $f; }; - $ptrType(Checker).prototype.filename = function filename(fileNo) { - var {$24r, $24r$1, _r$1, _r$2, _r$3, check, file, fileNo, pos, x, $s, $r, $c} = $restore(this, {fileNo}); + isShift = function isShift$1(op$1) { + var op$1; + return (op$1 === 20) || (op$1 === 21); + }; + isComparison = function isComparison$1(op$1) { + var _1, op$1; + _1 = op$1; + if ((_1 === (39)) || (_1 === (44)) || (_1 === (40)) || (_1 === (45)) || (_1 === (41)) || (_1 === (46))) { + return true; + } + return false; + }; + $ptrType(Checker).prototype.updateExprType = function updateExprType(x, typ$4, final$1) { + var {check, final$1, typ$4, x, $s, $r, $c} = $restore(this, {x, typ$4, final$1}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: check = this; - file = (x = check.files, ((fileNo < 0 || fileNo >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + fileNo])); - pos = file.Pos(); - /* */ if (new token.Pos(pos).IsValid()) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (new token.Pos(pos).IsValid()) { */ case 1: - _r$1 = check.fset.File(pos); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = _r$1.Name(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 5; case 5: return $24r; - /* } */ case 2: - _r$3 = fmt.Sprintf("file[%d]", new sliceType$6([new $Int(fileNo)])); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r$1 = _r$3; - $s = 7; case 7: return $24r$1; - /* */ } return; } var $f = {$blk: filename, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _r$3, check, file, fileNo, pos, x, $s};return $f; + $r = check.updateExprType0($ifaceNil, x, typ$4, final$1); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: updateExprType, $c: true, $r, check, final$1, typ$4, x, $s};return $f; }; - $ptrType(Checker).prototype.importPackage = function importPackage(at$1, path, dir$1) { - var {_entry, _key, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _tuple, _tuple$1, _tuple$2, at$1, check, dir$1, err, i, i$1, imp, importer, importerFrom, key, name, ok, path, $s, $r, $c} = $restore(this, {at$1, path, dir$1}); + $ptrType(Checker).prototype.updateExprType0 = function updateExprType0(parent, x, typ$4, final$1) { + var {_arg, _arg$1, _arg$2, _arg$3, _entry, _key, _r, _r$1, _r$2, _ref, _tuple, c, check, final$1, found, old, parent, typ$4, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r, $c} = $restore(this, {parent, x, typ$4, final$1}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + c = [c]; check = this; - key = new importKey.ptr(path, dir$1); - imp = (_entry = $mapIndex(check.impMap,importKey.keyFor(key)), _entry !== undefined ? _entry.v : ptrType$1.nil); - if (!(imp === ptrType$1.nil)) { - $s = -1; return imp; + _tuple = (_entry = $mapIndex(check.untyped,ast.Expr.keyFor(x)), _entry !== undefined ? [_entry.v, true] : [new exprInfo.ptr(false, 0, ptrType$4.nil, $ifaceNil), false]); + old = $clone(_tuple[0], exprInfo); + found = _tuple[1]; + if (!found) { + $s = -1; return; } - /* */ if (path === "C" && (check.conf.FakeImportC || check.conf.go115UsesCgo)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (path === "C" && (check.conf.FakeImportC || check.conf.go115UsesCgo)) { */ case 1: - _r$1 = NewPackage("C", "C"); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - imp = _r$1; - imp.fake = true; - imp.cgo = check.conf.go115UsesCgo; - $s = 3; continue; - /* } else { */ case 2: - err = $ifaceNil; - importer = check.conf.Importer; - /* */ if ($interfaceIsEqual(importer, $ifaceNil)) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if ($interfaceIsEqual(importer, $ifaceNil)) { */ case 5: - _r$2 = fmt.Errorf("Config.Importer not installed", sliceType$6.nil); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - err = _r$2; - $s = 7; continue; - /* } else { */ case 6: - _tuple = $assertType(importer, ImporterFrom, true); - importerFrom = _tuple[0]; - ok = _tuple[1]; - /* */ if (ok) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (ok) { */ case 9: - _r$3 = importerFrom.ImportFrom(path, dir$1, 0); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple$1 = _r$3; - imp = _tuple$1[0]; - err = _tuple$1[1]; - /* */ if (imp === ptrType$1.nil && $interfaceIsEqual(err, $ifaceNil)) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (imp === ptrType$1.nil && $interfaceIsEqual(err, $ifaceNil)) { */ case 13: - _r$4 = fmt.Errorf("Config.Importer.ImportFrom(%s, %s, 0) returned nil but no error", new sliceType$6([new $String(path), new $String(dir$1)])); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - err = _r$4; - /* } */ case 14: - $s = 11; continue; - /* } else { */ case 10: - _r$5 = importer.Import(path); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _tuple$2 = _r$5; - imp = _tuple$2[0]; - err = _tuple$2[1]; - /* */ if (imp === ptrType$1.nil && $interfaceIsEqual(err, $ifaceNil)) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (imp === ptrType$1.nil && $interfaceIsEqual(err, $ifaceNil)) { */ case 17: - _r$6 = fmt.Errorf("Config.Importer.Import(%s) returned nil but no error", new sliceType$6([new $String(path)])); /* */ $s = 19; case 19: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - err = _r$6; - /* } */ case 18: - /* } */ case 11: - /* } */ case 7: - /* */ if ($interfaceIsEqual(err, $ifaceNil) && !(imp === ptrType$1.nil) && (imp.name === "_" || imp.name === "")) { $s = 20; continue; } - /* */ $s = 21; continue; - /* if ($interfaceIsEqual(err, $ifaceNil) && !(imp === ptrType$1.nil) && (imp.name === "_" || imp.name === "")) { */ case 20: - _r$7 = fmt.Errorf("invalid package name: %q", new sliceType$6([new $String(imp.name)])); /* */ $s = 22; case 22: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - err = _r$7; - imp = ptrType$1.nil; - /* } */ case 21: - /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 23; continue; } - /* */ $s = 24; continue; - /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 23: - $r = check.errorf(at$1, 6, "could not import %s (%s)", new sliceType$6([new $String(path), err])); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (imp === ptrType$1.nil) { $s = 26; continue; } - /* */ $s = 27; continue; - /* if (imp === ptrType$1.nil) { */ case 26: - name = path; - i = name.length; - if (i > 0 && (name.charCodeAt((i - 1 >> 0)) === 47)) { - name = $substring(name, 0, (i - 1 >> 0)); - } - i$1 = strings.LastIndex(name, "/"); - if (i$1 >= 0) { - name = $substring(name, (i$1 + 1 >> 0)); - } - _r$8 = NewPackage(path, name); /* */ $s = 28; case 28: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - imp = _r$8; - /* } */ case 27: - imp.fake = true; - /* } */ case 24: - /* } */ case 3: - if (imp.complete || imp.fake) { - _key = $clone(key, importKey); (check.impMap || $throwRuntimeError("assignment to entry in nil map")).set(importKey.keyFor(_key), { k: _key, v: imp }); - if (!(check.pkgPathMap === false)) { - check.markImports(imp); + _ref = x; + /* */ if ($assertType(_ref, ptrType$36, true)[1] || $assertType(_ref, ptrType$101, true)[1] || $assertType(_ref, ptrType$102, true)[1] || $assertType(_ref, ptrType$38, true)[1] || $assertType(_ref, ptrType$103, true)[1] || $assertType(_ref, ptrType$83, true)[1] || $assertType(_ref, ptrType$44, true)[1] || $assertType(_ref, ptrType$100, true)[1] || $assertType(_ref, ptrType$41, true)[1] || $assertType(_ref, ptrType$43, true)[1] || $assertType(_ref, ptrType$45, true)[1] || $assertType(_ref, ptrType$46, true)[1] || $assertType(_ref, ptrType$47, true)[1] || $assertType(_ref, ptrType$48, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$87, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$31, true)[1] || $assertType(_ref, ptrType$58, true)[1] || $assertType(_ref, ptrType$37, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$40, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$21, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$22, true)[1]) { $s = 6; continue; } + /* */ $s = 7; continue; + /* switch (0) { default: if ($assertType(_ref, ptrType$36, true)[1] || $assertType(_ref, ptrType$101, true)[1] || $assertType(_ref, ptrType$102, true)[1] || $assertType(_ref, ptrType$38, true)[1] || $assertType(_ref, ptrType$103, true)[1] || $assertType(_ref, ptrType$83, true)[1] || $assertType(_ref, ptrType$44, true)[1] || $assertType(_ref, ptrType$100, true)[1] || $assertType(_ref, ptrType$41, true)[1] || $assertType(_ref, ptrType$43, true)[1] || $assertType(_ref, ptrType$45, true)[1] || $assertType(_ref, ptrType$46, true)[1] || $assertType(_ref, ptrType$47, true)[1] || $assertType(_ref, ptrType$48, true)[1]) { */ case 1: + x$1 = _ref; + /* */ if (false) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (false) { */ case 9: + _r = x$1.Pos(); /* */ $s = 11; case 11: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg = new token.Pos(_r); + _arg$1 = x$1; + _arg$2 = old.typ; + _arg$3 = typ$4; + $r = check.dump("%v: found old type(%s): %s (new: %s)", new sliceType$5([_arg, _arg$1, _arg$2, _arg$3])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + unreachable(); + /* } */ case 10: + $s = -1; return; + /* } else if ($assertType(_ref, ptrType$87, true)[1]) { */ case 2: + x$2 = _ref.$val; + $s = 8; continue; + /* } else if ($assertType(_ref, ptrType$31, true)[1] || $assertType(_ref, ptrType$58, true)[1] || $assertType(_ref, ptrType$37, true)[1]) { */ case 3: + x$3 = _ref; + $s = 8; continue; + /* } else if ($assertType(_ref, ptrType$40, true)[1]) { */ case 4: + x$4 = _ref.$val; + $r = check.updateExprType0(x$4, x$4.X, typ$4, final$1); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 8; continue; + /* } else if ($assertType(_ref, ptrType$21, true)[1]) { */ case 5: + x$5 = _ref.$val; + if (!($interfaceIsEqual(old.val, $ifaceNil))) { + /* break; */ $s = 8; continue; } - $s = -1; return imp; + $r = check.updateExprType0(x$5, x$5.X, typ$4, final$1); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 8; continue; + /* } else if ($assertType(_ref, ptrType$22, true)[1]) { */ case 6: + x$6 = _ref.$val; + if (!($interfaceIsEqual(old.val, $ifaceNil))) { + /* break; */ $s = 8; continue; + } + /* */ if (isComparison(x$6.Op)) { $s = 15; continue; } + /* */ if (isShift(x$6.Op)) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (isComparison(x$6.Op)) { */ case 15: + $s = 18; continue; + /* } else if (isShift(x$6.Op)) { */ case 16: + $r = check.updateExprType0(x$6, x$6.X, typ$4, final$1); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 18; continue; + /* } else { */ case 17: + $r = check.updateExprType0(x$6, x$6.X, typ$4, final$1); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.updateExprType0(x$6, x$6.Y, typ$4, final$1); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 18: + $s = 8; continue; + /* } else { */ case 7: + x$7 = _ref; + unreachable(); + /* } } */ case 8: + /* */ if (!final$1 && isUntyped(typ$4)) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (!final$1 && isUntyped(typ$4)) { */ case 22: + _r$1 = under(typ$4); /* */ $s = 24; case 24: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + old.typ = $assertType(_r$1, ptrType$4); + _key = x; (check.untyped || $throwRuntimeError("assignment to entry in nil map")).set(ast.Expr.keyFor(_key), { k: _key, v: $clone(old, exprInfo) }); + $s = -1; return; + /* } */ case 23: + $mapDelete(check.untyped, ast.Expr.keyFor(x)); + /* */ if (old.isLhs) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (old.isLhs) { */ case 25: + _r$2 = allInteger(typ$4); /* */ $s = 29; case 29: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (!_r$2) { $s = 27; continue; } + /* */ $s = 28; continue; + /* if (!_r$2) { */ case 27: + $r = check.errorf(x, 57, "invalid operation: shifted operand %s (type %s) must be integer", new sliceType$5([x, typ$4])); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 28: + /* } */ case 26: + /* */ if (!($interfaceIsEqual(old.val, $ifaceNil))) { $s = 31; continue; } + /* */ $s = 32; continue; + /* if (!($interfaceIsEqual(old.val, $ifaceNil))) { */ case 31: + c[0] = new operand.ptr(old.mode, x, old.typ, old.val, 0); + $r = check.convertUntyped(c[0], typ$4); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (c[0].mode === 0) { + $s = -1; return; + } + /* } */ case 32: + $r = check.recordTypeAndValue(x, old.mode, typ$4, old.val); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: updateExprType0, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _entry, _key, _r, _r$1, _r$2, _ref, _tuple, c, check, final$1, found, old, parent, typ$4, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s};return $f; + }; + $ptrType(Checker).prototype.updateExprVal = function updateExprVal(x, val) { + var _entry, _key, _tuple, check, info, ok, val, x; + check = this; + _tuple = (_entry = $mapIndex(check.untyped,ast.Expr.keyFor(x)), _entry !== undefined ? [_entry.v, true] : [new exprInfo.ptr(false, 0, ptrType$4.nil, $ifaceNil), false]); + info = $clone(_tuple[0], exprInfo); + ok = _tuple[1]; + if (ok) { + info.val = val; + _key = x; (check.untyped || $throwRuntimeError("assignment to entry in nil map")).set(ast.Expr.keyFor(_key), { k: _key, v: $clone(info, exprInfo) }); } - $s = -1; return ptrType$1.nil; - /* */ } return; } var $f = {$blk: importPackage, $c: true, $r, _entry, _key, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _tuple, _tuple$1, _tuple$2, at$1, check, dir$1, err, i, i$1, imp, importer, importerFrom, key, name, ok, path, $s};return $f; }; - $ptrType(Checker).prototype.collectObjects = function collectObjects() { - var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _entry, _entry$1, _i, _i$1, _i$2, _i$3, _i$4, _key, _key$1, _key$2, _keys, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _size, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, alt, base, check, end, f, file, fileDir, fileNo, fileScope, fileScopes, i, imp, m, methods, name, obj, ok, pkg, pkg$1, pkgImports, pos, ptr, scope, $s, $r, $c} = $restore(this, {}); + $ptrType(Checker).prototype.implicitTypeAndValue = function implicitTypeAndValue(x, target) { + var {_1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, check, code, m, target, u, u$1, u$2, u$3, v, x, $s, $r, $c} = $restore(this, {x, target}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: check = [check]; - methods = [methods]; - pkg = [pkg]; - pkgImports = [pkgImports]; + x = [x]; check[0] = this; - pkg[0] = check[0].pkg; - pkgImports[0] = new $global.Map(); - _ref = pkg[0].imports; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - imp = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _key = imp; (pkgImports[0] || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$1.keyFor(_key), { k: _key, v: true }); - _i++; + if ((x[0].mode === 0) || isTyped(x[0].typ) || $interfaceIsEqual(target, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { + $s = -1; return [x[0].typ, $ifaceNil, 0]; } - methods[0] = sliceType$21.nil; - fileScopes = sliceType$20.nil; - _ref$1 = check[0].files; - _i$1 = 0; - /* while (true) { */ case 1: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 2; continue; } - fileDir = [fileDir]; - fileScope = [fileScope]; - fileNo = _i$1; - file = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - $r = check[0].recordDef(file.Name, $ifaceNil); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _tmp = file.Pos(); - _r$1 = file.End(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tmp$1 = _r$1; - pos = _tmp; - end = _tmp$1; - _r$2 = check[0].fset.File(file.Pos()); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - f = _r$2; - if (!(f === ptrType$89.nil)) { - _tmp$2 = ((f.Base() >> 0)); - _tmp$3 = (((f.Base() + f.Size() >> 0) >> 0)); - pos = _tmp$2; - end = _tmp$3; + /* */ if (isUntyped(target)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (isUntyped(target)) { */ case 1: + _r = maxType(x[0].typ, target); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + m = _r; + if (!($interfaceIsEqual(m, $ifaceNil))) { + $s = -1; return [m, $ifaceNil, 0]; } - _arg = check[0].pkg.scope; - _arg$1 = pos; - _arg$2 = end; - _r$3 = check[0].filename(fileNo); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _arg$3 = _r$3; - _r$4 = NewScope(_arg, _arg$1, _arg$2, _arg$3); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - fileScope[0] = _r$4; - fileScopes = $append(fileScopes, fileScope[0]); - $r = check[0].recordScope(file, fileScope[0]); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$5 = check[0].fset.Position(file.Name.Pos()); /* */ $s = 9; case 9: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$6 = dir(_r$5.Filename); /* */ $s = 10; case 10: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - fileDir[0] = _r$6; - $r = check[0].walkDecls(file.Decls, (function(check, fileDir, fileScope, methods, pkg, pkgImports) { return function Checker·collectObjects·func1(d) { - var {_arg$4, _arg$5, _entry, _entry$1, _i$2, _i$3, _i$4, _key$1, _key$2, _key$3, _key$4, _keys, _r$10, _r$11, _r$7, _r$8, _r$9, _ref$2, _ref$3, _ref$4, _ref$5, _size, _tuple, _tuple$1, alt, code, d, d$1, d$2, d$3, d$4, d$5, d$6, d1, di, err, hasTParamError, i, i$1, imp$1, info, init$5, init$6, lhs, name, name$1, name$2, name$3, name$4, obj, obj$1, obj$2, obj$3, obj$4, path, pkgName, ptr, recv, t, x, x$1, x$2, x$3, x$4, x$5, x$6, $s, $r, $c} = $restore(this, {d}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ref$2 = d; - /* */ if ($assertType(_ref$2, importDecl, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref$2, constDecl, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref$2, varDecl, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref$2, typeDecl, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref$2, funcDecl, true)[1]) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if ($assertType(_ref$2, importDecl, true)[1]) { */ case 1: - d$1 = $clone(_ref$2.$val, importDecl); - if (d$1.spec.Path.Value === "") { - $s = -1; return; - } - _r$7 = validatedImportPath(d$1.spec.Path.Value); /* */ $s = 7; case 7: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _tuple = _r$7; - path = _tuple[0]; - err = _tuple[1]; - /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 8: - $r = check[0].errorf(d$1.spec.Path, 5, "invalid import path (%s)", new sliceType$6([err])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 9: - _r$8 = check[0].importPackage(d$1.spec.Path, path, fileDir[0]); /* */ $s = 11; case 11: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - imp$1 = _r$8; - if (imp$1 === ptrType$1.nil) { - $s = -1; return; - } - name = imp$1.name; - /* */ if (!(d$1.spec.Name === ptrType$30.nil)) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (!(d$1.spec.Name === ptrType$30.nil)) { */ case 12: - name = d$1.spec.Name.Name; - /* */ if (path === "C") { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (path === "C") { */ case 14: - $r = check[0].error(d$1.spec.Name, 7, "cannot rename import \"C\""); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 15: - /* } */ case 13: - /* */ if (name === "init") { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (name === "init") { */ case 17: - $r = check[0].error(d$1.spec, 39, "cannot import package as init - init must be a func"); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 18: - if (!(_entry = $mapIndex(pkgImports[0],ptrType$1.keyFor(imp$1)), _entry !== undefined ? _entry.v : false)) { - _key$1 = imp$1; (pkgImports[0] || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$1.keyFor(_key$1), { k: _key$1, v: true }); - pkg[0].imports = $append(pkg[0].imports, imp$1); - } - pkgName = NewPkgName(d$1.spec.Pos(), pkg[0], name, imp$1); - /* */ if (!(d$1.spec.Name === ptrType$30.nil)) { $s = 20; continue; } - /* */ $s = 21; continue; - /* if (!(d$1.spec.Name === ptrType$30.nil)) { */ case 20: - $r = check[0].recordDef(d$1.spec.Name, pkgName); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 22; continue; - /* } else { */ case 21: - $r = check[0].recordImplicit(d$1.spec, pkgName); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 22: - if (imp$1.fake) { - pkgName.used = true; - } - check[0].imports = $append(check[0].imports, pkgName); - /* */ if (name === ".") { $s = 25; continue; } - /* */ $s = 26; continue; - /* if (name === ".") { */ case 25: - if (check[0].dotImportMap === false) { - check[0].dotImportMap = new $global.Map(); - } - _ref$3 = imp$1.scope.elems; - _i$2 = 0; - _keys = _ref$3 ? _ref$3.keys() : undefined; - _size = _ref$3 ? _ref$3.size : 0; - /* while (true) { */ case 28: - /* if (!(_i$2 < _size)) { break; } */ if(!(_i$2 < _size)) { $s = 29; continue; } - _key$2 = _keys.next().value; - _entry$1 = _ref$3.get(_key$2); - if (_entry$1 === undefined) { - _i$2++; - /* continue; */ $s = 28; continue; - } - name$1 = _entry$1.k; - obj = _entry$1.v; - /* */ if (token.IsExported(name$1)) { $s = 30; continue; } - /* */ $s = 31; continue; - /* if (token.IsExported(name$1)) { */ case 30: - _r$9 = fileScope[0].Lookup(name$1); /* */ $s = 32; case 32: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - alt = _r$9; - /* */ if (!($interfaceIsEqual(alt, $ifaceNil))) { $s = 33; continue; } - /* */ $s = 34; continue; - /* if (!($interfaceIsEqual(alt, $ifaceNil))) { */ case 33: - _arg$4 = d$1.spec.Name; - _r$10 = alt.Name(); /* */ $s = 36; case 36: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _arg$5 = new $String(_r$10); - $r = check[0].errorf(_arg$4, 10, "%s redeclared in this block", new sliceType$6([_arg$5])); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].reportAltDecl(alt); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 35; continue; - /* } else { */ case 34: - fileScope[0].insert(name$1, obj); - _key$3 = $clone(new dotImportKey.ptr(fileScope[0], name$1), dotImportKey); (check[0].dotImportMap || $throwRuntimeError("assignment to entry in nil map")).set(dotImportKey.keyFor(_key$3), { k: _key$3, v: pkgName }); - /* } */ case 35: - /* } */ case 31: - _i$2++; - $s = 28; continue; - case 29: - $s = 27; continue; - /* } else { */ case 26: - $r = check[0].declare(fileScope[0], ptrType$30.nil, pkgName, 0); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 27: - $s = 6; continue; - /* } else if ($assertType(_ref$2, constDecl, true)[1]) { */ case 2: - d$2 = $clone(_ref$2.$val, constDecl); - _ref$4 = d$2.spec.Names; - _i$3 = 0; - /* while (true) { */ case 40: - /* if (!(_i$3 < _ref$4.$length)) { break; } */ if(!(_i$3 < _ref$4.$length)) { $s = 41; continue; } - i = _i$3; - name$2 = ((_i$3 < 0 || _i$3 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$3]); - obj$1 = NewConst(name$2.Pos(), pkg[0], name$2.Name, $ifaceNil, constant.MakeInt64((new $Int64(0, d$2.iota)))); - init$5 = $ifaceNil; - if (i < d$2.init.$length) { - init$5 = (x = d$2.init, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - } - d$6 = new declInfo.ptr(fileScope[0], sliceType$10.nil, d$2.typ, init$5, d$2.inherited, ptrType$90.nil, ptrType$87.nil, false); - $r = check[0].declarePkgObj(name$2, obj$1, d$6); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$3++; - $s = 40; continue; - case 41: - $s = 6; continue; - /* } else if ($assertType(_ref$2, varDecl, true)[1]) { */ case 3: - d$3 = $clone(_ref$2.$val, varDecl); - lhs = $makeSlice(sliceType$10, d$3.spec.Names.$length); - d1 = ptrType$58.nil; - if (d$3.spec.Values.$length === 1) { - d1 = new declInfo.ptr(fileScope[0], lhs, d$3.spec.Type, (x$1 = d$3.spec.Values, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])), false, ptrType$90.nil, ptrType$87.nil, false); - } - _ref$5 = d$3.spec.Names; - _i$4 = 0; - /* while (true) { */ case 43: - /* if (!(_i$4 < _ref$5.$length)) { break; } */ if(!(_i$4 < _ref$5.$length)) { $s = 44; continue; } - i$1 = _i$4; - name$3 = ((_i$4 < 0 || _i$4 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$4]); - obj$2 = NewVar(name$3.Pos(), pkg[0], name$3.Name, $ifaceNil); - ((i$1 < 0 || i$1 >= lhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : lhs.$array[lhs.$offset + i$1] = obj$2); - di = d1; - if (di === ptrType$58.nil) { - init$6 = $ifaceNil; - if (i$1 < d$3.spec.Values.$length) { - init$6 = (x$2 = d$3.spec.Values, ((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$1])); - } - di = new declInfo.ptr(fileScope[0], sliceType$10.nil, d$3.spec.Type, init$6, false, ptrType$90.nil, ptrType$87.nil, false); - } - $r = check[0].declarePkgObj(name$3, obj$2, di); /* */ $s = 45; case 45: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$4++; - $s = 43; continue; - case 44: - $s = 6; continue; - /* } else if ($assertType(_ref$2, typeDecl, true)[1]) { */ case 4: - d$4 = $clone(_ref$2.$val, typeDecl); - /* */ if (!((d$4.spec.TypeParams.NumFields() === 0)) && !check[0].allowVersion(pkg[0], 1, 18)) { $s = 46; continue; } - /* */ $s = 47; continue; - /* if (!((d$4.spec.TypeParams.NumFields() === 0)) && !check[0].allowVersion(pkg[0], 1, 18)) { */ case 46: - $r = check[0].softErrorf((x$3 = d$4.spec.TypeParams.List, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])), 135, "type parameter requires go1.18 or later", sliceType$6.nil); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 47: - obj$3 = NewTypeName(d$4.spec.Name.Pos(), pkg[0], d$4.spec.Name.Name, $ifaceNil); - $r = check[0].declarePkgObj(d$4.spec.Name, obj$3, new declInfo.ptr(fileScope[0], sliceType$10.nil, $ifaceNil, $ifaceNil, false, d$4.spec, ptrType$87.nil, false)); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 6; continue; - /* } else if ($assertType(_ref$2, funcDecl, true)[1]) { */ case 5: - d$5 = $clone(_ref$2.$val, funcDecl); - name$4 = d$5.decl.Name.Name; - obj$4 = NewFunc(d$5.decl.Name.Pos(), pkg[0], name$4, ptrType$27.nil); - hasTParamError = false; - /* */ if (d$5.decl.Recv.NumFields() === 0) { $s = 50; continue; } - /* */ $s = 51; continue; - /* if (d$5.decl.Recv.NumFields() === 0) { */ case 50: - /* */ if (!(d$5.decl.Recv === ptrType$49.nil)) { $s = 53; continue; } - /* */ $s = 54; continue; - /* if (!(d$5.decl.Recv === ptrType$49.nil)) { */ case 53: - $r = check[0].error(d$5.decl.Recv, 31, "method has no receiver"); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 54: - /* */ if (name$4 === "init" || (name$4 === "main" && check[0].pkg.name === "main")) { $s = 56; continue; } - /* */ $s = 57; continue; - /* if (name$4 === "init" || (name$4 === "main" && check[0].pkg.name === "main")) { */ case 56: - code = 39; - if (name$4 === "main") { - code = 40; - } - /* */ if (!((d$5.decl.Type.TypeParams.NumFields() === 0))) { $s = 58; continue; } - /* */ $s = 59; continue; - /* if (!((d$5.decl.Type.TypeParams.NumFields() === 0))) { */ case 58: - $r = check[0].softErrorf((x$4 = d$5.decl.Type.TypeParams.List, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])), code, "func %s must have no type parameters", new sliceType$6([new $String(name$4)])); /* */ $s = 60; case 60: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - hasTParamError = true; - /* } */ case 59: - t = d$5.decl.Type; - /* */ if (!((t.Params.NumFields() === 0)) || !(t.Results === ptrType$49.nil)) { $s = 61; continue; } - /* */ $s = 62; continue; - /* if (!((t.Params.NumFields() === 0)) || !(t.Results === ptrType$49.nil)) { */ case 61: - $r = check[0].softErrorf(d$5.decl.Name, code, "func %s must have no arguments and no return values", new sliceType$6([new $String(name$4)])); /* */ $s = 63; case 63: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 62: - /* } */ case 57: - /* */ if (name$4 === "init") { $s = 64; continue; } - /* */ $s = 65; continue; - /* if (name$4 === "init") { */ case 64: - obj$4.object.parent = pkg[0].scope; - $r = check[0].recordDef(d$5.decl.Name, obj$4); /* */ $s = 67; case 67: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (d$5.decl.Body === ptrType$74.nil) { $s = 68; continue; } - /* */ $s = 69; continue; - /* if (d$5.decl.Body === ptrType$74.nil) { */ case 68: - $r = check[0].softErrorf(obj$4, 37, "missing function body", sliceType$6.nil); /* */ $s = 70; case 70: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 69: - $s = 66; continue; - /* } else { */ case 65: - $r = check[0].declare(pkg[0].scope, d$5.decl.Name, obj$4, 0); /* */ $s = 71; case 71: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 66: - $s = 52; continue; - /* } else { */ case 51: - _r$11 = check[0].unpackRecv((x$5 = d$5.decl.Recv.List, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0])).Type, false); /* */ $s = 72; case 72: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _tuple$1 = _r$11; - ptr = _tuple$1[0]; - recv = _tuple$1[1]; - if (!(recv === ptrType$30.nil) && !(name$4 === "_")) { - methods[0] = $append(methods[0], new methodInfo.ptr(obj$4, ptr, recv)); - } - $r = check[0].recordDef(d$5.decl.Name, obj$4); /* */ $s = 73; case 73: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 52: - /* */ if (!((d$5.decl.Type.TypeParams.NumFields() === 0)) && !check[0].allowVersion(pkg[0], 1, 18) && !hasTParamError) { $s = 74; continue; } - /* */ $s = 75; continue; - /* if (!((d$5.decl.Type.TypeParams.NumFields() === 0)) && !check[0].allowVersion(pkg[0], 1, 18) && !hasTParamError) { */ case 74: - $r = check[0].softErrorf((x$6 = d$5.decl.Type.TypeParams.List, (0 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + 0])), 135, "type parameter requires go1.18 or later", sliceType$6.nil); /* */ $s = 76; case 76: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 75: - info = new declInfo.ptr(fileScope[0], sliceType$10.nil, $ifaceNil, $ifaceNil, false, ptrType$90.nil, d$5.decl, false); - _key$4 = obj$4; (check[0].objMap || $throwRuntimeError("assignment to entry in nil map")).set(Object.keyFor(_key$4), { k: _key$4, v: info }); - $r = obj$4.object.setOrder((((check[0].objMap ? check[0].objMap.size : 0) >>> 0))); /* */ $s = 77; case 77: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 6: - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·collectObjects·func1, $c: true, $r, _arg$4, _arg$5, _entry, _entry$1, _i$2, _i$3, _i$4, _key$1, _key$2, _key$3, _key$4, _keys, _r$10, _r$11, _r$7, _r$8, _r$9, _ref$2, _ref$3, _ref$4, _ref$5, _size, _tuple, _tuple$1, alt, code, d, d$1, d$2, d$3, d$4, d$5, d$6, d1, di, err, hasTParamError, i, i$1, imp$1, info, init$5, init$6, lhs, name, name$1, name$2, name$3, name$4, obj, obj$1, obj$2, obj$3, obj$4, path, pkgName, ptr, recv, t, x, x$1, x$2, x$3, x$4, x$5, x$6, $s};return $f; - }; })(check, fileDir, fileScope, methods, pkg, pkgImports)); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$1++; - $s = 1; continue; - case 2: - _ref$2 = fileScopes; - _i$2 = 0; - /* while (true) { */ case 12: - /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 13; continue; } - scope = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); - _ref$3 = scope.elems; - _i$3 = 0; - _keys = _ref$3 ? _ref$3.keys() : undefined; - _size = _ref$3 ? _ref$3.size : 0; - /* while (true) { */ case 14: - /* if (!(_i$3 < _size)) { break; } */ if(!(_i$3 < _size)) { $s = 15; continue; } - _key$1 = _keys.next().value; - _entry = _ref$3.get(_key$1); - if (_entry === undefined) { - _i$3++; - /* continue; */ $s = 14; continue; + $s = -1; return [$ifaceNil, $ifaceNil, 97]; + /* } */ case 2: + _r$1 = under(target); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _ref = _r$1; + /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$28, true)[1] || $assertType(_ref, ptrType$29, true)[1] || $assertType(_ref, ptrType$27, true)[1] || $assertType(_ref, ptrType$30, true)[1] || $assertType(_ref, ptrType$26, true)[1]) { $s = 7; continue; } + /* */ $s = 8; continue; + /* switch (0) { default: if ($assertType(_ref, ptrType$4, true)[1]) { */ case 5: + u = _ref.$val; + /* */ if (x[0].mode === 4) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (x[0].mode === 4) { */ case 10: + _r$2 = check[0].representation(x[0], u); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = _r$2; + v = _tuple[0]; + code = _tuple[1]; + if (!((code === 0))) { + $s = -1; return [$ifaceNil, $ifaceNil, code]; } - name = _entry.k; - obj = _entry.v; - _r$7 = pkg[0].scope.Lookup(name); /* */ $s = 16; case 16: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - alt = _r$7; - /* */ if (!($interfaceIsEqual(alt, $ifaceNil))) { $s = 17; continue; } + $s = -1; return [target, v, code]; + /* } */ case 11: + _1 = $assertType(x[0].typ, ptrType$4).kind; + /* */ if (_1 === (19)) { $s = 14; continue; } + /* */ if ((_1 === (20)) || (_1 === (21)) || (_1 === (22)) || (_1 === (23))) { $s = 15; continue; } + /* */ if (_1 === (24)) { $s = 16; continue; } + /* */ if (_1 === (25)) { $s = 17; continue; } /* */ $s = 18; continue; - /* if (!($interfaceIsEqual(alt, $ifaceNil))) { */ case 17: - _r$8 = resolve(name, obj); /* */ $s = 19; case 19: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - obj = _r$8; - _tuple = $assertType(obj, ptrType$31, true); - pkg$1 = _tuple[0]; - ok = _tuple[1]; - /* */ if (ok) { $s = 20; continue; } + /* if (_1 === (19)) { */ case 14: + _r$3 = isBoolean(target); /* */ $s = 22; case 22: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!_r$3) { $s = 20; continue; } /* */ $s = 21; continue; - /* if (ok) { */ case 20: - _arg$4 = alt; - _r$9 = alt.Name(); /* */ $s = 23; case 23: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _arg$5 = new $String(_r$9); - _arg$6 = pkg$1.Imported(); - $r = check[0].errorf(_arg$4, 10, "%s already declared through import of %s", new sliceType$6([_arg$5, _arg$6])); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].reportAltDecl(pkg$1); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 22; continue; - /* } else { */ case 21: - _arg$7 = alt; - _r$10 = alt.Name(); /* */ $s = 26; case 26: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _arg$8 = new $String(_r$10); - _r$11 = obj.Pkg(); /* */ $s = 27; case 27: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _arg$9 = _r$11; - $r = check[0].errorf(_arg$7, 10, "%s already declared through dot-import of %s", new sliceType$6([_arg$8, _arg$9])); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].reportAltDecl(obj); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 22: - /* } */ case 18: - _i$3++; - $s = 14; continue; - case 15: - _i$2++; - $s = 12; continue; - case 13: - if (methods[0] === sliceType$21.nil) { - $s = -1; return; - } - check[0].methods = new $global.Map(); - _ref$4 = methods[0]; - _i$4 = 0; - /* while (true) { */ case 30: - /* if (!(_i$4 < _ref$4.$length)) { break; } */ if(!(_i$4 < _ref$4.$length)) { $s = 31; continue; } - i = _i$4; - m = ((i < 0 || i >= methods[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : methods[0].$array[methods[0].$offset + i]); - _r$12 = check[0].resolveBaseTypeName(m.ptr, m.recv); /* */ $s = 32; case 32: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _tuple$1 = _r$12; - ptr = _tuple$1[0]; - base = _tuple$1[1]; - if (!(base === ptrType$17.nil)) { - m.obj.hasPtrRecv_ = ptr; - _key$2 = base; (check[0].methods || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$17.keyFor(_key$2), { k: _key$2, v: $append((_entry$1 = $mapIndex(check[0].methods,ptrType$17.keyFor(base)), _entry$1 !== undefined ? _entry$1.v : sliceType.nil), m.obj) }); - } - _i$4++; - $s = 30; continue; - case 31: - $s = -1; return; - /* */ } return; } var $f = {$blk: collectObjects, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _entry, _entry$1, _i, _i$1, _i$2, _i$3, _i$4, _key, _key$1, _key$2, _keys, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _size, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, alt, base, check, end, f, file, fileDir, fileNo, fileScope, fileScopes, i, imp, m, methods, name, obj, ok, pkg, pkg$1, pkgImports, pos, ptr, scope, $s};return $f; - }; - $ptrType(Checker).prototype.unpackRecv = function unpackRecv(rtyp, unpackParams) { - var {_i, _r$1, _ref, _ref$1, _ref$2, _ref$3, _tuple, arg, arg$1, arg$2, arg$3, arg$4, check, ix, name, par, ptr, rname, rtyp, t, t$1, t$2, tparams, unpackParams, $s, $r, $c} = $restore(this, {rtyp, unpackParams}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - ptr = false; - rname = ptrType$30.nil; - tparams = sliceType$22.nil; - check = this; - L: - while (true) { - _ref = rtyp; - if ($assertType(_ref, ptrType$39, true)[1]) { - t = _ref.$val; - rtyp = t.X; - } else if ($assertType(_ref, ptrType$43, true)[1]) { - t$1 = _ref.$val; - ptr = true; - rtyp = t$1.X; - } else { - t$2 = _ref; - break L; - } - } - _ref$1 = rtyp; - /* */ if ($assertType(_ref$1, ptrType$37, true)[1] || $assertType(_ref$1, ptrType$38, true)[1]) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if ($assertType(_ref$1, ptrType$37, true)[1] || $assertType(_ref$1, ptrType$38, true)[1]) { */ case 1: - ix = typeparams.UnpackIndexExpr(rtyp); - rtyp = ix.IndexListExpr.X; - /* */ if (unpackParams) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (unpackParams) { */ case 3: - _ref$2 = ix.IndexListExpr.Indices; - _i = 0; - /* while (true) { */ case 5: - /* if (!(_i < _ref$2.$length)) { break; } */ if(!(_i < _ref$2.$length)) { $s = 6; continue; } - arg = ((_i < 0 || _i >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i]); - par = ptrType$30.nil; - _ref$3 = arg; - /* */ if ($assertType(_ref$3, ptrType$30, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref$3, ptrType$35, true)[1]) { $s = 8; continue; } - /* */ if (_ref$3 === $ifaceNil) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if ($assertType(_ref$3, ptrType$30, true)[1]) { */ case 7: - arg$1 = _ref$3.$val; - par = arg$1; - $s = 11; continue; - /* } else if ($assertType(_ref$3, ptrType$35, true)[1]) { */ case 8: - arg$2 = _ref$3.$val; - $s = 11; continue; - /* } else if (_ref$3 === $ifaceNil) { */ case 9: - arg$3 = _ref$3; - $r = check.error(ix.Orig, -1, "parameterized receiver contains nil parameters"); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 11; continue; - /* } else { */ case 10: - arg$4 = _ref$3; - $r = check.errorf(arg$4, 131, "receiver type parameter %s must be an identifier", new sliceType$6([arg$4])); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 11: - /* */ if (par === ptrType$30.nil) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (par === ptrType$30.nil) { */ case 14: - _r$1 = arg.Pos(); /* */ $s = 16; case 16: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - par = new ast.Ident.ptr(_r$1, "_", ptrType$81.nil); - /* } */ case 15: - tparams = $append(tparams, par); - _i++; - $s = 5; continue; - case 6: - /* } */ case 4: - /* } */ case 2: - _tuple = $assertType(rtyp, ptrType$30, true); - name = _tuple[0]; - if (!(name === ptrType$30.nil)) { - rname = name; - } - $s = -1; return [ptr, rname, tparams]; - /* */ } return; } var $f = {$blk: unpackRecv, $c: true, $r, _i, _r$1, _ref, _ref$1, _ref$2, _ref$3, _tuple, arg, arg$1, arg$2, arg$3, arg$4, check, ix, name, par, ptr, rname, rtyp, t, t$1, t$2, tparams, unpackParams, $s};return $f; - }; - $ptrType(Checker).prototype.resolveBaseTypeName = function resolveBaseTypeName(seenPtr, name) { - var {_entry, _entry$1, _key, _r$1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, base, check, name, name$1, obj, pexpr, ptr, seen, seenPtr, tdecl, tname, typ$3, $s, $r, $c} = $restore(this, {seenPtr, name}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - ptr = false; - base = ptrType$17.nil; - check = this; - ptr = seenPtr; - seen = false; - typ$3 = name; - /* while (true) { */ case 1: - typ$3 = unparen(typ$3); - _tuple = $assertType(typ$3, ptrType$43, true); - pexpr = _tuple[0]; - if (!(pexpr === ptrType$43.nil)) { - if (ptr) { - _tmp = false; - _tmp$1 = ptrType$17.nil; - ptr = _tmp; - base = _tmp$1; - $s = -1; return [ptr, base]; + /* if (!_r$3) { */ case 20: + $s = -1; return [$ifaceNil, $ifaceNil, 97]; + /* } */ case 21: + $s = 19; continue; + /* } else if ((_1 === (20)) || (_1 === (21)) || (_1 === (22)) || (_1 === (23))) { */ case 15: + _r$4 = isNumeric(target); /* */ $s = 25; case 25: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (!_r$4) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (!_r$4) { */ case 23: + $s = -1; return [$ifaceNil, $ifaceNil, 97]; + /* } */ case 24: + $s = 19; continue; + /* } else if (_1 === (24)) { */ case 16: + _r$5 = isString(target); /* */ $s = 28; case 28: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (!_r$5) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (!_r$5) { */ case 26: + $s = -1; return [$ifaceNil, $ifaceNil, 97]; + /* } */ case 27: + $s = 19; continue; + /* } else if (_1 === (25)) { */ case 17: + _r$6 = hasNil(target); /* */ $s = 31; case 31: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + /* */ if (!_r$6) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if (!_r$6) { */ case 29: + $s = -1; return [$ifaceNil, $ifaceNil, 97]; + /* } */ case 30: + $s = -1; return [(25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25]), $ifaceNil, 0]; + /* } else { */ case 18: + $s = -1; return [$ifaceNil, $ifaceNil, 97]; + /* } */ case 19: + case 13: + $s = 9; continue; + /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 6: + u$1 = _ref.$val; + /* */ if (isTypeParam(target)) { $s = 32; continue; } + /* */ $s = 33; continue; + /* if (isTypeParam(target)) { */ case 32: + _r$7 = u$1.typeSet(); /* */ $s = 36; case 36: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$8 = _r$7.underIs((function(check, x) { return function Checker·implicitTypeAndValue·func1(u$4) { + var {_r$8, _tuple$1, t, u$4, $s, $r, $c} = $restore(this, {u$4}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if ($interfaceIsEqual(u$4, $ifaceNil)) { + $s = -1; return false; + } + _r$8 = check[0].implicitTypeAndValue(x[0], u$4); /* */ $s = 1; case 1: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _tuple$1 = _r$8; + t = _tuple$1[0]; + $s = -1; return !($interfaceIsEqual(t, $ifaceNil)); + /* */ } return; } var $f = {$blk: Checker·implicitTypeAndValue·func1, $c: true, $r, _r$8, _tuple$1, t, u$4, $s};return $f; + }; })(check, x)); /* */ $s = 37; case 37: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + /* */ if (!_r$8) { $s = 34; continue; } + /* */ $s = 35; continue; + /* if (!_r$8) { */ case 34: + $s = -1; return [$ifaceNil, $ifaceNil, 97]; + /* } */ case 35: + if (x[0].isNil()) { + $s = -1; return [(25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25]), $ifaceNil, 0]; } - ptr = true; - typ$3 = unparen(pexpr.X); - } - _tuple$1 = $assertType(typ$3, ptrType$30, true); - name$1 = _tuple$1[0]; - if (name$1 === ptrType$30.nil) { - _tmp$2 = false; - _tmp$3 = ptrType$17.nil; - ptr = _tmp$2; - base = _tmp$3; - $s = -1; return [ptr, base]; - } - _r$1 = check.pkg.scope.Lookup(name$1.Name); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - obj = _r$1; - if ($interfaceIsEqual(obj, $ifaceNil)) { - _tmp$4 = false; - _tmp$5 = ptrType$17.nil; - ptr = _tmp$4; - base = _tmp$5; - $s = -1; return [ptr, base]; - } - _tuple$2 = $assertType(obj, ptrType$17, true); - tname = _tuple$2[0]; - if (tname === ptrType$17.nil) { - _tmp$6 = false; - _tmp$7 = ptrType$17.nil; - ptr = _tmp$6; - base = _tmp$7; - $s = -1; return [ptr, base]; - } - if ((_entry = $mapIndex(seen,ptrType$17.keyFor(tname)), _entry !== undefined ? _entry.v : false)) { - _tmp$8 = false; - _tmp$9 = ptrType$17.nil; - ptr = _tmp$8; - base = _tmp$9; - $s = -1; return [ptr, base]; - } - tdecl = (_entry$1 = $mapIndex(check.objMap,Object.keyFor(tname)), _entry$1 !== undefined ? _entry$1.v : ptrType$58.nil).tdecl; - if (!new token.Pos(tdecl.Assign).IsValid()) { - _tmp$10 = ptr; - _tmp$11 = tname; - ptr = _tmp$10; - base = _tmp$11; - $s = -1; return [ptr, base]; + /* break; */ $s = 9; continue; + /* } */ case 33: + if (x[0].isNil()) { + $s = -1; return [(25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25]), $ifaceNil, 0]; } - typ$3 = tdecl.Type; - if (seen === false) { - seen = new $global.Map(); + _r$9 = u$1.Empty(); /* */ $s = 40; case 40: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + /* */ if (!_r$9) { $s = 38; continue; } + /* */ $s = 39; continue; + /* if (!_r$9) { */ case 38: + $s = -1; return [$ifaceNil, $ifaceNil, 97]; + /* } */ case 39: + $s = -1; return [Default(x[0].typ), $ifaceNil, 0]; + /* } else if ($assertType(_ref, ptrType$28, true)[1] || $assertType(_ref, ptrType$29, true)[1] || $assertType(_ref, ptrType$27, true)[1] || $assertType(_ref, ptrType$30, true)[1] || $assertType(_ref, ptrType$26, true)[1]) { */ case 7: + u$2 = _ref; + if (!x[0].isNil()) { + $s = -1; return [$ifaceNil, $ifaceNil, 97]; } - _key = tname; (seen || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$17.keyFor(_key), { k: _key, v: true }); - $s = 1; continue; - case 2: - $s = -1; return [ptr, base]; - /* */ } return; } var $f = {$blk: resolveBaseTypeName, $c: true, $r, _entry, _entry$1, _key, _r$1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, base, check, name, name$1, obj, pexpr, ptr, seen, seenPtr, tdecl, tname, typ$3, $s};return $f; + $s = -1; return [(25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25]), $ifaceNil, 0]; + /* } else { */ case 8: + u$3 = _ref; + $s = -1; return [$ifaceNil, $ifaceNil, 97]; + /* } } */ case 9: + $s = -1; return [target, $ifaceNil, 0]; + /* */ } return; } var $f = {$blk: implicitTypeAndValue, $c: true, $r, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, check, code, m, target, u, u$1, u$2, u$3, v, x, $s};return $f; }; - $ptrType(Checker).prototype.packageObjects = function packageObjects() { - var {_entry, _entry$1, _i, _i$1, _i$2, _i$3, _i$4, _key, _keys, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _size, _tuple, _tuple$1, aliasList, check, i, obj, obj$1, obj$2, obj$3, obj$4, obj$5, objList, othersList, tname, $s, $r, $c} = $restore(this, {}); + $ptrType(Checker).prototype.comparison = function comparison(x, y, op$1, switchCase) { + var {_1, _arg, _arg$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, cause, check, code, errOp, ok, op$1, switchCase, typ$4, x, y, $s, $r, $c} = $restore(this, {x, y, op$1, switchCase}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: check = this; - objList = $makeSlice(sliceType$8, (check.objMap ? check.objMap.size : 0)); - i = 0; - _ref = check.objMap; - _i = 0; - _keys = _ref ? _ref.keys() : undefined; - _size = _ref ? _ref.size : 0; - while (true) { - if (!(_i < _size)) { break; } - _key = _keys.next().value; - _entry = _ref.get(_key); - if (_entry === undefined) { - _i++; - continue; - } - obj = _entry.k; - ((i < 0 || i >= objList.$length) ? ($throwRuntimeError("index out of range"), undefined) : objList.$array[objList.$offset + i] = obj); - i = i + (1) >> 0; - _i++; + if ($interfaceIsEqual(x.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])) || $interfaceIsEqual(y.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { + x.mode = 0; + $s = -1; return; } - $r = sort.Sort(($convertSliceType(objList, inSourceOrder))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _ref$1 = objList; - _i$1 = 0; - /* while (true) { */ case 2: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 3; continue; } - obj$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - _tuple = $assertType(obj$1, ptrType$17, true); - obj$2 = _tuple[0]; - /* */ if (!(obj$2 === ptrType$17.nil) && !($interfaceIsEqual(obj$2.object.typ, $ifaceNil))) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (!(obj$2 === ptrType$17.nil) && !($interfaceIsEqual(obj$2.object.typ, $ifaceNil))) { */ case 4: - $r = check.collectMethods(obj$2); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 5: - _i$1++; - $s = 2; continue; - case 3: - aliasList = sliceType$23.nil; - othersList = sliceType$8.nil; - _ref$2 = objList; - _i$2 = 0; - /* while (true) { */ case 7: - /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 8; continue; } - obj$3 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); - _tuple$1 = $assertType(obj$3, ptrType$17, true); - tname = _tuple$1[0]; - /* */ if (!(tname === ptrType$17.nil)) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (!(tname === ptrType$17.nil)) { */ case 9: - /* */ if (new token.Pos((_entry$1 = $mapIndex(check.objMap,Object.keyFor(tname)), _entry$1 !== undefined ? _entry$1.v : ptrType$58.nil).tdecl.Assign).IsValid()) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (new token.Pos((_entry$1 = $mapIndex(check.objMap,Object.keyFor(tname)), _entry$1 !== undefined ? _entry$1.v : ptrType$58.nil).tdecl.Assign).IsValid()) { */ case 12: - aliasList = $append(aliasList, tname); - $s = 14; continue; - /* } else { */ case 13: - $r = check.objDecl(obj$3, ptrType$9.nil); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 14: - $s = 11; continue; - /* } else { */ case 10: - othersList = $append(othersList, obj$3); - /* } */ case 11: - _i$2++; - $s = 7; continue; - case 8: - _ref$3 = aliasList; - _i$3 = 0; - /* while (true) { */ case 16: - /* if (!(_i$3 < _ref$3.$length)) { break; } */ if(!(_i$3 < _ref$3.$length)) { $s = 17; continue; } - obj$4 = ((_i$3 < 0 || _i$3 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$3]); - $r = check.objDecl(obj$4, ptrType$9.nil); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$3++; - $s = 16; continue; - case 17: - _ref$4 = othersList; - _i$4 = 0; - /* while (true) { */ case 19: - /* if (!(_i$4 < _ref$4.$length)) { break; } */ if(!(_i$4 < _ref$4.$length)) { $s = 20; continue; } - obj$5 = ((_i$4 < 0 || _i$4 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$4]); - $r = check.objDecl(obj$5, ptrType$9.nil); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$4++; - $s = 19; continue; - case 20: - check.methods = false; + if (switchCase) { + op$1 = 39; + } + errOp = x; + cause = ""; + code = 46; + _r = x.assignableTo(check, y.typ, ptrType$35.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + ok = _tuple[0]; + /* */ if (!ok) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!ok) { */ case 2: + _r$1 = y.assignableTo(check, x.typ, ptrType$35.nil); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + ok = _tuple$1[0]; + /* } */ case 3: + /* */ if (!ok) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!ok) { */ case 5: + errOp = y; + _r$2 = check.sprintf("mismatched types %s and %s", new sliceType$5([x.typ, y.typ])); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + cause = _r$2; + /* goto Error */ $s = 8; continue; + /* } */ case 6: + code = 45; + _1 = op$1; + /* */ if ((_1 === (39)) || (_1 === (44))) { $s = 10; continue; } + /* */ if ((_1 === (40)) || (_1 === (45)) || (_1 === (41)) || (_1 === (46))) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if ((_1 === (39)) || (_1 === (44))) { */ case 10: + /* */ if (x.isNil() || y.isNil()) { $s = 15; continue; } + _r$3 = Comparable(x.typ); /* */ $s = 19; case 19: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!_r$3) { $s = 16; continue; } + _r$4 = Comparable(y.typ); /* */ $s = 20; case 20: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (!_r$4) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (x.isNil() || y.isNil()) { */ case 15: + typ$4 = x.typ; + if (x.isNil()) { + typ$4 = y.typ; + } + _r$5 = hasNil(typ$4); /* */ $s = 23; case 23: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (!_r$5) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (!_r$5) { */ case 21: + errOp = y; + /* goto Error */ $s = 8; continue; + /* } */ case 22: + $s = 18; continue; + /* } else if (!_r$3) { */ case 16: + errOp = x; + _r$6 = check.incomparableCause(x.typ); /* */ $s = 24; case 24: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + cause = _r$6; + /* goto Error */ $s = 8; continue; + $s = 18; continue; + /* } else if (!_r$4) { */ case 17: + errOp = y; + _r$7 = check.incomparableCause(y.typ); /* */ $s = 25; case 25: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + cause = _r$7; + /* goto Error */ $s = 8; continue; + /* } */ case 18: + case 14: + $s = 13; continue; + /* } else if ((_1 === (40)) || (_1 === (45)) || (_1 === (41)) || (_1 === (46))) { */ case 11: + _r$8 = allOrdered(x.typ); /* */ $s = 30; case 30: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + /* */ if (!_r$8) { $s = 27; continue; } + _r$9 = allOrdered(y.typ); /* */ $s = 31; case 31: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + /* */ if (!_r$9) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (!_r$8) { */ case 27: + errOp = x; + /* goto Error */ $s = 8; continue; + $s = 29; continue; + /* } else if (!_r$9) { */ case 28: + errOp = y; + /* goto Error */ $s = 8; continue; + /* } */ case 29: + case 26: + $s = 13; continue; + /* } else { */ case 12: + unreachable(); + /* } */ case 13: + case 9: + /* */ if ((x.mode === 4) && (y.mode === 4)) { $s = 32; continue; } + /* */ $s = 33; continue; + /* if ((x.mode === 4) && (y.mode === 4)) { */ case 32: + _r$10 = constant.Compare(x.val, op$1, y.val); /* */ $s = 35; case 35: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$11 = constant.MakeBool(_r$10); /* */ $s = 36; case 36: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + x.val = _r$11; + $s = 34; continue; + /* } else { */ case 33: + x.mode = 7; + $r = check.updateExprType(x.expr, Default(x.typ), true); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.updateExprType(y.expr, Default(y.typ), true); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 34: + x.typ = (19 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 19]); $s = -1; return; - /* */ } return; } var $f = {$blk: packageObjects, $c: true, $r, _entry, _entry$1, _i, _i$1, _i$2, _i$3, _i$4, _key, _keys, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _size, _tuple, _tuple$1, aliasList, check, i, obj, obj$1, obj$2, obj$3, obj$4, obj$5, objList, othersList, tname, $s};return $f; - }; - inSourceOrder.prototype.Len = function Len$6() { - var a; - a = this; - return a.$length; + /* Error: */ case 8: + /* */ if (cause === "") { $s = 39; continue; } + /* */ $s = 40; continue; + /* if (cause === "") { */ case 39: + /* */ if (isTypeParam(x.typ) || isTypeParam(y.typ)) { $s = 41; continue; } + /* */ $s = 42; continue; + /* if (isTypeParam(x.typ) || isTypeParam(y.typ)) { */ case 41: + if (!isTypeParam(x.typ)) { + errOp = y; + } + _r$12 = check.sprintf("type parameter %s is not comparable with %s", new sliceType$5([errOp.typ, new token.Token(op$1)])); /* */ $s = 44; case 44: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + cause = _r$12; + $s = 43; continue; + /* } else { */ case 42: + _arg = new token.Token(op$1); + _r$13 = check.kindString(errOp.typ); /* */ $s = 45; case 45: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _arg$1 = new $String(_r$13); + _r$14 = check.sprintf("operator %s not defined on %s", new sliceType$5([_arg, _arg$1])); /* */ $s = 46; case 46: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + cause = _r$14; + /* } */ case 43: + /* } */ case 40: + /* */ if (switchCase) { $s = 47; continue; } + /* */ $s = 48; continue; + /* if (switchCase) { */ case 47: + $r = check.errorf(x, code, "invalid case %s in switch on %s (%s)", new sliceType$5([x.expr, y.expr, new $String(cause)])); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 49; continue; + /* } else { */ case 48: + $r = check.errorf(errOp, code, "invalid operation: %s %s %s (%s)", new sliceType$5([x.expr, new token.Token(op$1), y.expr, new $String(cause)])); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 49: + x.mode = 0; + $s = -1; return; + /* */ } return; } var $f = {$blk: comparison, $c: true, $r, _1, _arg, _arg$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, cause, check, code, errOp, ok, op$1, switchCase, typ$4, x, y, $s};return $f; }; - $ptrType(inSourceOrder).prototype.Len = function(...$args) { return this.$get().Len(...$args); }; - inSourceOrder.prototype.Less = function Less$1(i, j) { - var {$24r, _r$1, _r$2, a, i, j, $s, $r, $c} = $restore(this, {i, j}); + $ptrType(Checker).prototype.incomparableCause = function incomparableCause(typ$4) { + var {$24r, _r, _r$1, _r$2, _ref, cause, check, typ$4, $s, $r, $c} = $restore(this, {typ$4}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - a = this; - _r$1 = ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i]).order(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = ((j < 0 || j >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + j]).order(); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$1 < _r$2; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: Less$1, $c: true, $r, $24r, _r$1, _r$2, a, i, j, $s};return $f; - }; - $ptrType(inSourceOrder).prototype.Less = function(...$args) { return this.$get().Less(...$args); }; - inSourceOrder.prototype.Swap = function Swap$1(i, j) { - var _tmp, _tmp$1, a, i, j; - a = this; - _tmp = ((j < 0 || j >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + j]); - _tmp$1 = ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i]); - ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i] = _tmp); - ((j < 0 || j >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + j] = _tmp$1); + cause = [cause]; + check = [check]; + check[0] = this; + _r = under(typ$4); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _ref = _r; + /* */ if ($assertType(_ref, ptrType$27, true)[1] || $assertType(_ref, ptrType$29, true)[1] || $assertType(_ref, ptrType$30, true)[1]) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if ($assertType(_ref, ptrType$27, true)[1] || $assertType(_ref, ptrType$29, true)[1] || $assertType(_ref, ptrType$30, true)[1]) { */ case 2: + _r$1 = check[0].kindString(typ$4); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1 + " can only be compared to nil"; + $s = 5; case 5: return $24r; + /* } */ case 3: + cause[0] = ""; + _r$2 = comparable(typ$4, true, false, (function(cause, check) { return function Checker·incomparableCause·func1(format, args) { + var {_r$2, args, format, $s, $r, $c} = $restore(this, {format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$2 = check[0].sprintf(format, args); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + cause[0] = _r$2; + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·incomparableCause·func1, $c: true, $r, _r$2, args, format, $s};return $f; + }; })(cause, check)); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + $s = -1; return cause[0]; + /* */ } return; } var $f = {$blk: incomparableCause, $c: true, $r, $24r, _r, _r$1, _r$2, _ref, cause, check, typ$4, $s};return $f; }; - $ptrType(inSourceOrder).prototype.Swap = function(...$args) { return this.$get().Swap(...$args); }; - $ptrType(Checker).prototype.unusedImports = function unusedImports() { - var {_i, _ref, check, obj, $s, $r, $c} = $restore(this, {}); + $ptrType(Checker).prototype.kindString = function kindString(typ$4) { + var {$24r, $24r$1, _r, _r$1, _r$2, _ref, check, typ$4, $s, $r, $c} = $restore(this, {typ$4}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: check = this; - if (check.conf.IgnoreFuncBodies) { - $s = -1; return; - } - _ref = check.imports; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - obj = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - /* */ if (!obj.used && !(obj.object.name === "_")) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!obj.used && !(obj.object.name === "_")) { */ case 3: - $r = check.errorUnusedPkg(obj); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 4: - _i++; - $s = 1; continue; - case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: unusedImports, $c: true, $r, _i, _ref, check, obj, $s};return $f; + _r = under(typ$4); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _ref = _r; + /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$12, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$29, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref, ptrType$30, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if ($assertType(_ref, ptrType$11, true)[1]) { */ case 2: + $s = -1; return "array"; + /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 3: + $s = -1; return "slice"; + /* } else if ($assertType(_ref, ptrType$12, true)[1]) { */ case 4: + $s = -1; return "struct"; + /* } else if ($assertType(_ref, ptrType$28, true)[1]) { */ case 5: + $s = -1; return "pointer"; + /* } else if ($assertType(_ref, ptrType$29, true)[1]) { */ case 6: + $s = -1; return "func"; + /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 7: + /* */ if (isTypeParam(typ$4)) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (isTypeParam(typ$4)) { */ case 12: + _r$1 = check.sprintf("type parameter %s", new sliceType$5([typ$4])); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 15; case 15: return $24r; + /* } */ case 13: + $s = -1; return "interface"; + /* } else if ($assertType(_ref, ptrType$30, true)[1]) { */ case 8: + $s = -1; return "map"; + /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 9: + $s = -1; return "chan"; + /* } else { */ case 10: + _r$2 = check.sprintf("%s", new sliceType$5([typ$4])); /* */ $s = 16; case 16: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r$1 = _r$2; + $s = 17; case 17: return $24r$1; + /* } */ case 11: + $s = -1; return ""; + /* */ } return; } var $f = {$blk: kindString, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _ref, check, typ$4, $s};return $f; }; - $ptrType(Checker).prototype.errorUnusedPkg = function errorUnusedPkg(obj) { - var {check, elem, i, obj, path, $s, $r, $c} = $restore(this, {obj}); + $ptrType(Checker).prototype.shift = function shift(x, y, e, op$1) { + var {_entry, _key, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _v, _v$1, _v$2, _v$3, _v$4, b, check, e, found, info, ok, op$1, opPos, s, x, xval, y, yval, $s, $r, $c} = $restore(this, {x, y, e, op$1}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: check = this; - path = obj.imported.path; - elem = path; - i = strings.LastIndex(elem, "/"); - if (i >= 0) { - elem = $substring(elem, (i + 1 >> 0)); - } - /* */ if (obj.object.name === "" || obj.object.name === "." || obj.object.name === elem) { $s = 1; continue; } + xval = $ifaceNil; + /* */ if (x.mode === 4) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (obj.object.name === "" || obj.object.name === "." || obj.object.name === elem) { */ case 1: - $r = check.softErrorf(obj, 8, "%q imported and not used", new sliceType$6([new $String(path)])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 3; continue; - /* } else { */ case 2: - $r = check.softErrorf(obj, 8, "%q imported as %s and not used", new sliceType$6([new $String(path), new $String(obj.object.name)])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 3: + /* if (x.mode === 4) { */ case 1: + _r = constant.ToInt(x.val); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + xval = _r; + /* } */ case 2: + _r$1 = allInteger(x.typ); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + if (_r$1) { _v = true; $s = 7; continue s; } + if (!(isUntyped(x.typ) && !($interfaceIsEqual(xval, $ifaceNil)))) { _v$1 = false; $s = 9; continue s; } + _r$2 = xval.Kind(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v$1 = _r$2 === 3; case 9: + _v = _v$1; case 7: + /* */ if (_v) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_v) { */ case 4: + $s = 6; continue; + /* } else { */ case 5: + $r = check.errorf(x, 57, "invalid operation: shifted operand %s must be integer", new sliceType$5([x])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + $s = -1; return; + /* } */ case 6: + yval = $ifaceNil; + /* */ if (y.mode === 4) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (y.mode === 4) { */ case 12: + _r$3 = constant.ToInt(y.val); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + yval = _r$3; + _r$4 = yval.Kind(); /* */ $s = 19; case 19: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + if (!(_r$4 === 3)) { _v$2 = false; $s = 18; continue s; } + _r$5 = constant.Sign(yval); /* */ $s = 20; case 20: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _v$2 = _r$5 < 0; case 18: + /* */ if (_v$2) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (_v$2) { */ case 16: + $r = check.errorf(y, 56, "invalid operation: negative shift count %s", new sliceType$5([y])); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + $s = -1; return; + /* } */ case 17: + /* */ if (isUntyped(y.typ)) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (isUntyped(y.typ)) { */ case 22: + $r = check.representable(y, (7 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 7])); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (y.mode === 0) { + x.mode = 0; + $s = -1; return; + } + /* } */ case 23: + $s = 14; continue; + /* } else { */ case 13: + _r$6 = allInteger(y.typ); /* */ $s = 30; case 30: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + /* */ if (_r$6) { $s = 26; continue; } + /* */ if (isUntyped(y.typ)) { $s = 27; continue; } + /* */ $s = 28; continue; + /* if (_r$6) { */ case 26: + _r$7 = allUnsigned(y.typ); /* */ $s = 34; case 34: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + if (!(!_r$7)) { _v$3 = false; $s = 33; continue s; } + _r$8 = check.verifyVersionf(y, $clone(go1_13, version), "invalid operation: signed shift count %s", new sliceType$5([y])); /* */ $s = 35; case 35: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _v$3 = !_r$8; case 33: + /* */ if (_v$3) { $s = 31; continue; } + /* */ $s = 32; continue; + /* if (_v$3) { */ case 31: + x.mode = 0; + $s = -1; return; + /* } */ case 32: + $s = 29; continue; + /* } else if (isUntyped(y.typ)) { */ case 27: + $r = check.convertUntyped(y, (7 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 7])); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (y.mode === 0) { + x.mode = 0; + $s = -1; return; + } + $s = 29; continue; + /* } else { */ case 28: + $r = check.errorf(y, 56, "invalid operation: shift count %s must be integer", new sliceType$5([y])); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + $s = -1; return; + /* } */ case 29: + case 25: + /* } */ case 14: + /* */ if (x.mode === 4) { $s = 38; continue; } + /* */ $s = 39; continue; + /* if (x.mode === 4) { */ case 38: + /* */ if (y.mode === 4) { $s = 40; continue; } + /* */ $s = 41; continue; + /* if (y.mode === 4) { */ case 40: + _r$9 = x.val.Kind(); /* */ $s = 45; case 45: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + if (_r$9 === 0) { _v$4 = true; $s = 44; continue s; } + _r$10 = y.val.Kind(); /* */ $s = 46; case 46: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _v$4 = _r$10 === 0; case 44: + /* */ if (_v$4) { $s = 42; continue; } + /* */ $s = 43; continue; + /* if (_v$4) { */ case 42: + x.val = constant.MakeUnknown(); + _r$11 = isInteger(x.typ); /* */ $s = 49; case 49: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + /* */ if (!_r$11) { $s = 47; continue; } + /* */ $s = 48; continue; + /* if (!_r$11) { */ case 47: + x.typ = (20 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 20]); + /* } */ case 48: + $s = -1; return; + /* } */ case 43: + _r$12 = constant.Uint64Val(yval); /* */ $s = 50; case 50: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _tuple = _r$12; + s = _tuple[0]; + ok = _tuple[1]; + /* */ if (!ok || (s.$high > 0 || (s.$high === 0 && s.$low > 1074))) { $s = 51; continue; } + /* */ $s = 52; continue; + /* if (!ok || (s.$high > 0 || (s.$high === 0 && s.$low > 1074))) { */ case 51: + $r = check.errorf(y, 56, "invalid operation: invalid shift count %s", new sliceType$5([y])); /* */ $s = 53; case 53: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + $s = -1; return; + /* } */ case 52: + _r$13 = isInteger(x.typ); /* */ $s = 56; case 56: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + /* */ if (!_r$13) { $s = 54; continue; } + /* */ $s = 55; continue; + /* if (!_r$13) { */ case 54: + x.typ = (20 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 20]); + /* } */ case 55: + _r$14 = constant.Shift(xval, op$1, ((s.$low >>> 0))); /* */ $s = 57; case 57: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + x.val = _r$14; + x.expr = e; + _r$15 = x.Pos(); /* */ $s = 58; case 58: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + opPos = _r$15; + _tuple$1 = $assertType(e, ptrType$22, true); + b = _tuple$1[0]; + if (!(b === ptrType$22.nil)) { + opPos = b.OpPos; + } + $r = check.overflow(x, opPos); /* */ $s = 59; case 59: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 41: + if (isUntyped(x.typ)) { + _tuple$2 = (_entry = $mapIndex(check.untyped,ast.Expr.keyFor(x.expr)), _entry !== undefined ? [_entry.v, true] : [new exprInfo.ptr(false, 0, ptrType$4.nil, $ifaceNil), false]); + info = $clone(_tuple$2[0], exprInfo); + found = _tuple$2[1]; + if (found) { + info.isLhs = true; + _key = x.expr; (check.untyped || $throwRuntimeError("assignment to entry in nil map")).set(ast.Expr.keyFor(_key), { k: _key, v: $clone(info, exprInfo) }); + } + x.mode = 7; + $s = -1; return; + } + /* } */ case 39: + _r$16 = allInteger(x.typ); /* */ $s = 62; case 62: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + /* */ if (!_r$16) { $s = 60; continue; } + /* */ $s = 61; continue; + /* if (!_r$16) { */ case 60: + $r = check.errorf(x, 57, "invalid operation: shifted operand %s must be integer", new sliceType$5([x])); /* */ $s = 63; case 63: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + $s = -1; return; + /* } */ case 61: + x.mode = 7; $s = -1; return; - /* */ } return; } var $f = {$blk: errorUnusedPkg, $c: true, $r, check, elem, i, obj, path, $s};return $f; - }; - dir = function dir$1(path) { - var i, path; - i = strings.LastIndexAny(path, "/\\"); - if (i > 0) { - return $substring(path, 0, i); - } - return "."; - }; - isBoolean = function isBoolean$1(t) { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = isBasic(t, 1); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: isBoolean$1, $c: true, $r, $24r, _r$1, t, $s};return $f; - }; - isInteger = function isInteger$1(t) { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = isBasic(t, 2); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: isInteger$1, $c: true, $r, $24r, _r$1, t, $s};return $f; - }; - isUnsigned = function isUnsigned$1(t) { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = isBasic(t, 4); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: isUnsigned$1, $c: true, $r, $24r, _r$1, t, $s};return $f; - }; - isFloat = function isFloat$1(t) { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = isBasic(t, 8); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: isFloat$1, $c: true, $r, $24r, _r$1, t, $s};return $f; - }; - isComplex = function isComplex$1(t) { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = isBasic(t, 16); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: isComplex$1, $c: true, $r, $24r, _r$1, t, $s};return $f; - }; - isNumeric = function isNumeric$1(t) { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = isBasic(t, 26); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: isNumeric$1, $c: true, $r, $24r, _r$1, t, $s};return $f; - }; - isString = function isString$1(t) { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = isBasic(t, 32); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: isString$1, $c: true, $r, $24r, _r$1, t, $s};return $f; - }; - isIntegerOrFloat = function isIntegerOrFloat$1(t) { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = isBasic(t, 10); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: isIntegerOrFloat$1, $c: true, $r, $24r, _r$1, t, $s};return $f; - }; - isConstType = function isConstType$1(t) { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = isBasic(t, 59); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: isConstType$1, $c: true, $r, $24r, _r$1, t, $s};return $f; - }; - isBasic = function isBasic$1(t, info) { - var {_r$1, _tuple, info, t, u, $s, $r, $c} = $restore(this, {t, info}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = under(t); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = $assertType(_r$1, ptrType$8, true); - u = _tuple[0]; - $s = -1; return !(u === ptrType$8.nil) && !(((u.info & info) === 0)); - /* */ } return; } var $f = {$blk: isBasic$1, $c: true, $r, _r$1, _tuple, info, t, u, $s};return $f; - }; - allBoolean = function allBoolean$1(typ$3) { - var {$24r, _r$1, typ$3, $s, $r, $c} = $restore(this, {typ$3}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = allBasic(typ$3, 1); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: allBoolean$1, $c: true, $r, $24r, _r$1, typ$3, $s};return $f; - }; - allInteger = function allInteger$1(typ$3) { - var {$24r, _r$1, typ$3, $s, $r, $c} = $restore(this, {typ$3}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = allBasic(typ$3, 2); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: allInteger$1, $c: true, $r, $24r, _r$1, typ$3, $s};return $f; - }; - allUnsigned = function allUnsigned$1(typ$3) { - var {$24r, _r$1, typ$3, $s, $r, $c} = $restore(this, {typ$3}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = allBasic(typ$3, 4); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: allUnsigned$1, $c: true, $r, $24r, _r$1, typ$3, $s};return $f; - }; - allNumeric = function allNumeric$1(typ$3) { - var {$24r, _r$1, typ$3, $s, $r, $c} = $restore(this, {typ$3}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = allBasic(typ$3, 26); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: allNumeric$1, $c: true, $r, $24r, _r$1, typ$3, $s};return $f; - }; - allString = function allString$1(typ$3) { - var {$24r, _r$1, typ$3, $s, $r, $c} = $restore(this, {typ$3}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = allBasic(typ$3, 32); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: allString$1, $c: true, $r, $24r, _r$1, typ$3, $s};return $f; + /* */ } return; } var $f = {$blk: shift, $c: true, $r, _entry, _key, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _v, _v$1, _v$2, _v$3, _v$4, b, check, e, found, info, ok, op$1, opPos, s, x, xval, y, yval, $s};return $f; }; - allOrdered = function allOrdered$1(typ$3) { - var {$24r, _r$1, typ$3, $s, $r, $c} = $restore(this, {typ$3}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = allBasic(typ$3, 42); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: allOrdered$1, $c: true, $r, $24r, _r$1, typ$3, $s};return $f; + init$2 = function init$5() { + binaryOpPredicates = $makeMap(token.Token.keyFor, [{ k: 12, v: allNumericOrString }, { k: 13, v: allNumeric }, { k: 14, v: allNumeric }, { k: 15, v: allNumeric }, { k: 16, v: allInteger }, { k: 17, v: allInteger }, { k: 18, v: allInteger }, { k: 19, v: allInteger }, { k: 22, v: allInteger }, { k: 34, v: allBoolean }, { k: 35, v: allBoolean }]); }; - allNumericOrString = function allNumericOrString$1(typ$3) { - var {$24r, _r$1, typ$3, $s, $r, $c} = $restore(this, {typ$3}); + $ptrType(Checker).prototype.binary = function binary(x, e, lhs, rhs, op$1, opPos) { + var {_r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$2, _tmp$3, _v, _v$1, _v$2, _v$3, _v$4, _v$5, check, e, im, im2, lhs, op$1, opPos, posn, re, re2, rhs, x, y, $s, $r, $c} = $restore(this, {x, e, lhs, rhs, op$1, opPos}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = allBasic(typ$3, 58); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: allNumericOrString$1, $c: true, $r, $24r, _r$1, typ$3, $s};return $f; + y = [y]; + check = this; + y[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + $r = check.expr($ifaceNil, x, lhs); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.expr($ifaceNil, y[0], rhs); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (x.mode === 0) { + $s = -1; return; + } + if (y[0].mode === 0) { + x.mode = 0; + x.expr = y[0].expr; + $s = -1; return; + } + /* */ if (isShift(op$1)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (isShift(op$1)) { */ case 3: + $r = check.shift(x, y[0], e, op$1); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 4: + $r = check.matchTypes(x, y[0]); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (x.mode === 0) { + $s = -1; return; + } + /* */ if (isComparison(op$1)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (isComparison(op$1)) { */ case 7: + $r = check.comparison(x, y[0], op$1, false); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 8: + _r = Identical(x.typ, y[0].typ); /* */ $s = 12; case 12: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!_r) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (!_r) { */ case 10: + /* */ if (!($interfaceIsEqual(x.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) && !($interfaceIsEqual(y[0].typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (!($interfaceIsEqual(x.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) && !($interfaceIsEqual(y[0].typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { */ case 13: + posn = x; + if (!($interfaceIsEqual(e, $ifaceNil))) { + posn = e; + } + /* */ if (!($interfaceIsEqual(e, $ifaceNil))) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (!($interfaceIsEqual(e, $ifaceNil))) { */ case 15: + $r = check.errorf(posn, 46, "invalid operation: %s (mismatched types %s and %s)", new sliceType$5([e, x.typ, y[0].typ])); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 17; continue; + /* } else { */ case 16: + $r = check.errorf(posn, 46, "invalid operation: %s %s= %s (mismatched types %s and %s)", new sliceType$5([lhs, new token.Token(op$1), rhs, x.typ, y[0].typ])); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 17: + /* } */ case 14: + x.mode = 0; + $s = -1; return; + /* } */ case 11: + _r$1 = check.op(binaryOpPredicates, x, op$1); /* */ $s = 22; case 22: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (!_r$1) { */ case 20: + x.mode = 0; + $s = -1; return; + /* } */ case 21: + /* */ if ((op$1 === 15) || (op$1 === 16)) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if ((op$1 === 15) || (op$1 === 16)) { */ case 23: + if (x.mode === 4) { _v$1 = true; $s = 28; continue s; } + _r$2 = allInteger(x.typ); /* */ $s = 29; case 29: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v$1 = _r$2; case 28: + if (!((_v$1) && (y[0].mode === 4))) { _v = false; $s = 27; continue s; } + _r$3 = constant.Sign(y[0].val); /* */ $s = 30; case 30: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v = _r$3 === 0; case 27: + /* */ if (_v) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (_v) { */ case 25: + $r = check.error(y[0], 47, "invalid operation: division by zero"); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + $s = -1; return; + /* } */ case 26: + if (!((x.mode === 4) && (y[0].mode === 4))) { _v$2 = false; $s = 34; continue s; } + _r$4 = isComplex(x.typ); /* */ $s = 35; case 35: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _v$2 = _r$4; case 34: + /* */ if (_v$2) { $s = 32; continue; } + /* */ $s = 33; continue; + /* if (_v$2) { */ case 32: + _r$5 = constant.Real(y[0].val); /* */ $s = 36; case 36: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tmp = _r$5; + _r$6 = constant.Imag(y[0].val); /* */ $s = 37; case 37: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _tmp$1 = _r$6; + re = _tmp; + im = _tmp$1; + _r$7 = constant.BinaryOp(re, 14, re); /* */ $s = 38; case 38: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _tmp$2 = _r$7; + _r$8 = constant.BinaryOp(im, 14, im); /* */ $s = 39; case 39: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _tmp$3 = _r$8; + re2 = _tmp$2; + im2 = _tmp$3; + _r$9 = constant.Sign(re2); /* */ $s = 43; case 43: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + if (!(_r$9 === 0)) { _v$3 = false; $s = 42; continue s; } + _r$10 = constant.Sign(im2); /* */ $s = 44; case 44: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _v$3 = _r$10 === 0; case 42: + /* */ if (_v$3) { $s = 40; continue; } + /* */ $s = 41; continue; + /* if (_v$3) { */ case 40: + $r = check.error(y[0], 47, "invalid operation: division by zero"); /* */ $s = 45; case 45: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + $s = -1; return; + /* } */ case 41: + /* } */ case 33: + /* } */ case 24: + /* */ if ((x.mode === 4) && (y[0].mode === 4)) { $s = 46; continue; } + /* */ $s = 47; continue; + /* if ((x.mode === 4) && (y[0].mode === 4)) { */ case 46: + _r$11 = x.val.Kind(); /* */ $s = 51; case 51: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + if (_r$11 === 0) { _v$4 = true; $s = 50; continue s; } + _r$12 = y[0].val.Kind(); /* */ $s = 52; case 52: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _v$4 = _r$12 === 0; case 50: + /* */ if (_v$4) { $s = 48; continue; } + /* */ $s = 49; continue; + /* if (_v$4) { */ case 48: + x.val = constant.MakeUnknown(); + $s = -1; return; + /* } */ case 49: + if (!(op$1 === 15)) { _v$5 = false; $s = 55; continue s; } + _r$13 = isInteger(x.typ); /* */ $s = 56; case 56: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _v$5 = _r$13; case 55: + /* */ if (_v$5) { $s = 53; continue; } + /* */ $s = 54; continue; + /* if (_v$5) { */ case 53: + op$1 = 26; + /* } */ case 54: + _r$14 = constant.BinaryOp(x.val, op$1, y[0].val); /* */ $s = 57; case 57: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + x.val = _r$14; + x.expr = e; + $r = check.overflow(x, opPos); /* */ $s = 58; case 58: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 47: + x.mode = 7; + $s = -1; return; + /* */ } return; } var $f = {$blk: binary, $c: true, $r, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$2, _tmp$3, _v, _v$1, _v$2, _v$3, _v$4, _v$5, check, e, im, im2, lhs, op$1, opPos, posn, re, re2, rhs, x, y, $s};return $f; }; - allBasic = function allBasic$1(t, info) { - var {$24r, $24r$1, _r$1, _r$2, _tuple, info, t, tpar, $s, $r, $c} = $restore(this, {t, info}); + $ptrType(Checker).prototype.matchTypes = function matchTypes(x, y) { + var {_r, check, mayConvert, x, y, $s, $r, $c} = $restore(this, {x, y}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - info = [info]; - _tuple = $assertType(t, ptrType$14, true); - tpar = _tuple[0]; - /* */ if (!(tpar === ptrType$14.nil)) { $s = 1; continue; } + check = this; + mayConvert = (function Checker·matchTypes·func1(x$1, y$1) { + var {$24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _v, _v$1, x$1, y$1, $s, $r, $c} = $restore(this, {x$1, y$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (isTyped(x$1.typ) && isTyped(y$1.typ)) { + $s = -1; return false; + } + _r = isNonTypeParamInterface(x$1.typ); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + if (_r) { _v = true; $s = 3; continue s; } + _r$1 = isNonTypeParamInterface(y$1.typ); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = _r$1; case 3: + /* */ if (_v) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_v) { */ case 1: + $s = -1; return true; + /* } */ case 2: + _r$2 = allBoolean(x$1.typ); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = allBoolean(y$1.typ); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!(_r$2 === _r$3)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (!(_r$2 === _r$3)) { */ case 6: + $s = -1; return false; + /* } */ case 7: + _r$4 = allString(x$1.typ); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$5 = allString(y$1.typ); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (!(_r$4 === _r$5)) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (!(_r$4 === _r$5)) { */ case 10: + $s = -1; return false; + /* } */ case 11: + /* */ if (x$1.isNil()) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (x$1.isNil()) { */ case 14: + _r$6 = hasNil(y$1.typ); /* */ $s = 16; case 16: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $24r = _r$6; + $s = 17; case 17: return $24r; + /* } */ case 15: + /* */ if (y$1.isNil()) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (y$1.isNil()) { */ case 18: + _r$7 = hasNil(x$1.typ); /* */ $s = 20; case 20: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $24r$1 = _r$7; + $s = 21; case 21: return $24r$1; + /* } */ case 19: + _r$8 = isPointer(x$1.typ); /* */ $s = 25; case 25: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + if (_r$8) { _v$1 = true; $s = 24; continue s; } + _r$9 = isPointer(y$1.typ); /* */ $s = 26; case 26: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _v$1 = _r$9; case 24: + /* */ if (_v$1) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (_v$1) { */ case 22: + $s = -1; return false; + /* } */ case 23: + $s = -1; return true; + /* */ } return; } var $f = {$blk: Checker·matchTypes·func1, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _v, _v$1, x$1, y$1, $s};return $f; + }); + _r = mayConvert(x, y); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (!(tpar === ptrType$14.nil)) { */ case 1: - _r$1 = tpar.is((function(info) { return function allBasic·func1(t$1) { - var {$24r, _r$1, _v, t$1, $s, $r, $c} = $restore(this, {t$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (!(!(t$1 === ptrType$4.nil))) { _v = false; $s = 1; continue s; } - _r$1 = isBasic(t$1.typ, info[0]); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = _r$1; case 1: - $24r = _v; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: allBasic·func1, $c: true, $r, $24r, _r$1, _v, t$1, $s};return $f; - }; })(info)); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 4; case 4: return $24r; + /* if (_r) { */ case 1: + $r = check.convertUntyped(x, y.typ); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (x.mode === 0) { + $s = -1; return; + } + $r = check.convertUntyped(y, x.typ); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (y.mode === 0) { + x.mode = 0; + $s = -1; return; + } /* } */ case 2: - _r$2 = isBasic(t, info[0]); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r$1 = _r$2; - $s = 6; case 6: return $24r$1; - /* */ } return; } var $f = {$blk: allBasic$1, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _tuple, info, t, tpar, $s};return $f; - }; - hasName = function hasName$1(t) { - var _ref, t; - _ref = t; - if ($assertType(_ref, ptrType$8, true)[1] || $assertType(_ref, ptrType$9, true)[1] || $assertType(_ref, ptrType$14, true)[1]) { - return true; - } - return false; - }; - isTyped = function isTyped$1(t) { - var _tuple, b, t; - _tuple = $assertType(t, ptrType$8, true); - b = _tuple[0]; - return b === ptrType$8.nil || ((b.info & 64) === 0); - }; - isUntyped = function isUntyped$1(t) { - var t; - return !isTyped(t); - }; - IsInterface = function IsInterface$1(t) { - var {_r$1, _tuple, ok, t, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = under(t); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = $assertType(_r$1, ptrType$13, true); - ok = _tuple[1]; - $s = -1; return ok; - /* */ } return; } var $f = {$blk: IsInterface$1, $c: true, $r, _r$1, _tuple, ok, t, $s};return $f; - }; - $pkg.IsInterface = IsInterface; - isNonTypeParamInterface = function isNonTypeParamInterface$1(t) { - var {$24r, _r$1, _v, t, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (!(!isTypeParam(t))) { _v = false; $s = 1; continue s; } - _r$1 = IsInterface(t); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = _r$1; case 1: - $24r = _v; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: isNonTypeParamInterface$1, $c: true, $r, $24r, _r$1, _v, t, $s};return $f; - }; - isTypeParam = function isTypeParam$1(t) { - var _tuple, ok, t; - _tuple = $assertType(t, ptrType$14, true); - ok = _tuple[1]; - return ok; + $s = -1; return; + /* */ } return; } var $f = {$blk: matchTypes, $c: true, $r, _r, check, mayConvert, x, y, $s};return $f; }; - hasEmptyTypeset = function hasEmptyTypeset$1(t) { - var {_r$1, _tuple, _tuple$1, iface$1, t, tpar, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _tuple = $assertType(t, ptrType$14, true); - tpar = _tuple[0]; - /* */ if (!(tpar === ptrType$14.nil) && !($interfaceIsEqual(tpar.bound, $ifaceNil))) { $s = 1; continue; } + $ptrType(Checker).prototype.rawExpr = function rawExpr(T, x, e, hint, allowGeneric) { + var {$24r, T, _r, _r$1, allowGeneric, check, e, hint, kind, x, $s, $deferred, $r, $c} = $restore(this, {T, x, e, hint, allowGeneric}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + check = [check]; + e = [e]; + x = [x]; + check[0] = this; + /* */ if (check[0].conf._Trace) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (!(tpar === ptrType$14.nil) && !($interfaceIsEqual(tpar.bound, $ifaceNil))) { */ case 1: - _r$1 = safeUnderlying(tpar.bound); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$1 = $assertType(_r$1, ptrType$13, true); - iface$1 = _tuple$1[0]; - $s = -1; return !(iface$1 === ptrType$13.nil) && !(iface$1.tset === ptrType$7.nil) && iface$1.tset.IsEmpty(); + /* if (check[0].conf._Trace) { */ case 1: + _r = e[0].Pos(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = check[0].trace(_r, "-- expr %s", new sliceType$5([e[0]])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + check[0].indent = check[0].indent + (1) >> 0; + $deferred.push([(function(check, e, x) { return function Checker·rawExpr·func1() { + var {_r$1, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check[0].indent = check[0].indent - (1) >> 0; + _r$1 = e[0].Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $r = check[0].trace(_r$1, "=> %s", new sliceType$5([x[0]])); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·rawExpr·func1, $c: true, $r, _r$1, $s};return $f; + }; })(check, e, x), []]); /* } */ case 2: - $s = -1; return false; - /* */ } return; } var $f = {$blk: hasEmptyTypeset$1, $c: true, $r, _r$1, _tuple, _tuple$1, iface$1, t, tpar, $s};return $f; - }; - isGeneric = function isGeneric$1(t) { - var {$24r, _r$1, _r$2, _tuple, _v, named, t, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _tuple = $assertType(t, ptrType$9, true); - named = _tuple[0]; - if (!(!(named === ptrType$9.nil) && !(named.obj === ptrType$17.nil) && named.inst === ptrType$52.nil)) { _v = false; $s = 1; continue s; } - _r$1 = named.TypeParams(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = _r$1.Len(); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _v = _r$2 > 0; case 1: - $24r = _v; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: isGeneric$1, $c: true, $r, $24r, _r$1, _r$2, _tuple, _v, named, t, $s};return $f; - }; - Comparable = function Comparable$1(T) { - var {$24r, T, _r$1, $s, $r, $c} = $restore(this, {T}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = comparable(T, true, false, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Comparable$1, $c: true, $r, $24r, T, _r$1, $s};return $f; - }; - $pkg.Comparable = Comparable; - comparable = function comparable$1(T, dynamic, seen, reportf) { - var {T, _entry, _i, _key, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _ref$1, _v, dynamic, f, reportf, seen, t, t$1, t$2, t$3, t$4, $s, $r, $c} = $restore(this, {T, dynamic, seen, reportf}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if ((_entry = $mapIndex(seen,Type.keyFor(T)), _entry !== undefined ? _entry.v : false)) { - $s = -1; return true; - } - if (seen === false) { - seen = new $global.Map(); - } - _key = T; (seen || $throwRuntimeError("assignment to entry in nil map")).set(Type.keyFor(_key), { k: _key, v: true }); - _r$1 = under(T); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _ref = _r$1; - /* */ if ($assertType(_ref, ptrType$8, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$26, true)[1] || $assertType(_ref, ptrType$29, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 6; continue; } + _r$1 = check[0].exprInternal(T, x[0], e[0], hint); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + kind = _r$1; + /* */ if (!allowGeneric) { $s = 6; continue; } /* */ $s = 7; continue; - /* if ($assertType(_ref, ptrType$8, true)[1]) { */ case 2: - t = _ref.$val; - $s = -1; return !((t.kind === 25)); - /* } else if ($assertType(_ref, ptrType$26, true)[1] || $assertType(_ref, ptrType$29, true)[1]) { */ case 3: - t$1 = _ref; - $s = -1; return true; - /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 4: - t$2 = _ref.$val; - _ref$1 = t$2.fields; - _i = 0; - /* while (true) { */ case 8: - /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 9; continue; } - f = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); - _r$2 = comparable(f.object.typ, dynamic, seen, $throwNilPointerError); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (!_r$2) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (!_r$2) { */ case 10: - /* */ if (!(reportf === $throwNilPointerError)) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (!(reportf === $throwNilPointerError)) { */ case 13: - $r = reportf("struct containing %s cannot be compared", new sliceType$6([f.object.typ])); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 14: - $s = -1; return false; - /* } */ case 11: - _i++; - $s = 8; continue; - case 9: - $s = -1; return true; - /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 5: - t$3 = _ref.$val; - _r$3 = comparable(t$3.elem, dynamic, seen, $throwNilPointerError); /* */ $s = 18; case 18: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (!_r$3) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (!_r$3) { */ case 16: - /* */ if (!(reportf === $throwNilPointerError)) { $s = 19; continue; } - /* */ $s = 20; continue; - /* if (!(reportf === $throwNilPointerError)) { */ case 19: - $r = reportf("%s cannot be compared", new sliceType$6([t$3])); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 20: - $s = -1; return false; - /* } */ case 17: - $s = -1; return true; - /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 6: - t$4 = _ref.$val; - if (dynamic && !isTypeParam(T)) { _v = true; $s = 24; continue s; } - _r$4 = t$4.typeSet(); /* */ $s = 25; case 25: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$5 = _r$4.IsComparable(seen); /* */ $s = 26; case 26: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _v = _r$5; case 24: - /* */ if (_v) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if (_v) { */ case 22: - $s = -1; return true; - /* } */ case 23: - /* */ if (!(reportf === $throwNilPointerError)) { $s = 27; continue; } - /* */ $s = 28; continue; - /* if (!(reportf === $throwNilPointerError)) { */ case 27: - _r$6 = t$4.typeSet(); /* */ $s = 32; case 32: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _r$7 = _r$6.IsEmpty(); /* */ $s = 33; case 33: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - /* */ if (_r$7) { $s = 29; continue; } - /* */ $s = 30; continue; - /* if (_r$7) { */ case 29: - $r = reportf("empty type set", sliceType$6.nil); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 31; continue; - /* } else { */ case 30: - $r = reportf("incomparable types in type set", sliceType$6.nil); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 31: - /* } */ case 28: + /* if (!allowGeneric) { */ case 6: + $r = check[0].nonGeneric(T, x[0]); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 7: - $s = -1; return false; - /* */ } return; } var $f = {$blk: comparable$1, $c: true, $r, T, _entry, _i, _key, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _ref$1, _v, dynamic, f, reportf, seen, t, t$1, t$2, t$3, t$4, $s};return $f; + $r = check[0].record(x[0]); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $24r = kind; + $s = 10; case 10: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return 0; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: rawExpr, $c: true, $r, $24r, T, _r, _r$1, allowGeneric, check, e, hint, kind, x, $s, $deferred};return $f; } } }; - hasNil = function hasNil$1(t) { - var {$24r, _r$1, _r$2, _r$3, _ref, _v, t, u, u$1, u$2, $s, $r, $c} = $restore(this, {t}); + $ptrType(Checker).prototype.nonGeneric = function nonGeneric(T, x) { + var {T, _arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$2, _r$3, _ref, _tuple, check, t, t$1, tsig, what, x, $s, $r, $c} = $restore(this, {T, x}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = under(t); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _ref = _r$1; - /* */ if ($assertType(_ref, ptrType$8, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$25, true)[1] || $assertType(_ref, ptrType$26, true)[1] || $assertType(_ref, ptrType$27, true)[1] || $assertType(_ref, ptrType$28, true)[1] || $assertType(_ref, ptrType$29, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if ($assertType(_ref, ptrType$8, true)[1]) { */ case 2: - u = _ref.$val; - $s = -1; return u.kind === 18; - /* } else if ($assertType(_ref, ptrType$25, true)[1] || $assertType(_ref, ptrType$26, true)[1] || $assertType(_ref, ptrType$27, true)[1] || $assertType(_ref, ptrType$28, true)[1] || $assertType(_ref, ptrType$29, true)[1]) { */ case 3: - u$1 = _ref; - $s = -1; return true; - /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 4: - u$2 = _ref.$val; - if (!isTypeParam(t)) { _v = true; $s = 6; continue s; } - _r$2 = u$2.typeSet(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = _r$2.underIs((function hasNil·func1(u$3) { - var {$24r, _r$3, _v$1, u$3, $s, $r, $c} = $restore(this, {u$3}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (!(!($interfaceIsEqual(u$3, $ifaceNil)))) { _v$1 = false; $s = 1; continue s; } - _r$3 = hasNil(u$3); /* */ $s = 2; case 2: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _v$1 = _r$3; case 1: - $24r = _v$1; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: hasNil·func1, $c: true, $r, $24r, _r$3, _v$1, u$3, $s};return $f; - })); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _v = _r$3; case 6: - $24r = _v; - $s = 9; case 9: return $24r; - /* } */ case 5: - $s = -1; return false; - /* */ } return; } var $f = {$blk: hasNil$1, $c: true, $r, $24r, _r$1, _r$2, _r$3, _ref, _v, t, u, u$1, u$2, $s};return $f; - }; - $ptrType(ifacePair).prototype.identical = function identical$1(q) { - var p, q; - p = this; - return p.x === q.x && p.y === q.y || p.x === q.y && p.y === q.x; + check = this; + if ((x.mode === 0) || (x.mode === 1)) { + $s = -1; return; + } + what = ""; + _ref = x.typ; + /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$29, true)[1]) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if ($assertType(_ref, ptrType$10, true)[1]) { */ case 1: + t = _ref.$val; + _r = isGeneric(t); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_r) { */ case 4: + what = "type"; + /* } */ case 5: + $s = 3; continue; + /* } else if ($assertType(_ref, ptrType$29, true)[1]) { */ case 2: + t$1 = _ref.$val; + /* */ if (!(t$1.tparams === ptrType$49.nil)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!(t$1.tparams === ptrType$49.nil)) { */ case 7: + /* */ if (true && !($interfaceIsEqual(T, $ifaceNil))) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (true && !($interfaceIsEqual(T, $ifaceNil))) { */ case 9: + _r$1 = under(T); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = $assertType(_r$1, ptrType$29, true); + tsig = _tuple[0]; + /* */ if (!(tsig === ptrType$29.nil)) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (!(tsig === ptrType$29.nil)) { */ case 12: + _arg = tsig; + _r$2 = x.Pos(); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg$1 = _r$2; + _arg$2 = x; + _arg$3 = ptrType$104.nil; + _r$3 = check.funcInst(_arg, _arg$1, _arg$2, _arg$3, true); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + $s = -1; return; + /* } */ case 13: + /* } */ case 10: + what = "function"; + /* } */ case 8: + /* } */ case 3: + /* */ if (!(what === "")) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (!(what === "")) { */ case 16: + $r = check.errorf(x.expr, 137, "cannot use generic %s %s without instantiation", new sliceType$5([new $String(what), x.expr])); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + x.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + /* } */ case 17: + $s = -1; return; + /* */ } return; } var $f = {$blk: nonGeneric, $c: true, $r, T, _arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$2, _r$3, _ref, _tuple, check, t, t$1, tsig, what, x, $s};return $f; }; - identical = function identical$2(x, y, cmpTags, p) { - var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, _v$2, _v$3, _v$4, _v$5, _v$6, a, b, check, cmpTags, ctxt, f, f$1, g, g$1, i, i$1, i$2, i$3, i$4, i$5, ok, ok$1, ok$2, ok$3, ok$4, ok$5, ok$6, ok$7, ok$8, ok$9, p, q, smap, targs, unionSets, v, w, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9, xa, xargs, xset, xset$1, xtparam, xtparams, y, y$1, y$10, y$11, y$12, y$2, y$3, y$4, y$5, y$6, y$7, y$8, y$9, yargs, ybound, yparams, yresults, yset, yset$1, ytparams, $s, $r, $c} = $restore(this, {x, y, cmpTags, p}); + $ptrType(Checker).prototype.exprInternal = function exprInternal(T, x, e, hint) { + var {$24r, T, T$1, _1, _2, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _entry, _entry$1, _entry$2, _i, _i$1, _i$2, _i$3, _i$4, _key, _key$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, atyp, base, base$1, check, decl$1, duplicate, e, e$1, e$10, e$11, e$12, e$13, e$14, e$15, e$16, e$17, e$18, e$19, e$2, e$20, e$21, e$22, e$3, e$4, e$5, e$6, e$7, e$8, e$9, ellip, etyp, etyp$1, fields, fld, fld$1, hint, i, i$1, iota, ix, key, keyIsInterface, kind, kv, kv$1, kv$2, kv$3, n, ok, ok$1, ok$2, sig, tsig, typ$4, utyp, utyp$1, utyp$2, utyp$3, utyp$4, visited, visited$1, vtyp, x, x$1, x$2, x$3, x$4, x$5, xkey, $s, $r, $c} = $restore(this, {T, x, e, hint}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if ($interfaceIsEqual(x, y)) { - $s = -1; return true; - } - _ref = x; - /* */ if ($assertType(_ref, ptrType$8, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$15, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref, ptrType$12, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 9; continue; } - /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 10; continue; } - /* */ if ($assertType(_ref, ptrType$29, true)[1]) { $s = 11; continue; } - /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 12; continue; } - /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 13; continue; } - /* */ if (_ref === $ifaceNil) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if ($assertType(_ref, ptrType$8, true)[1]) { */ case 1: - x$1 = _ref.$val; - _tuple = $assertType(y, ptrType$8, true); - y$1 = _tuple[0]; + base = [base]; + check = [check]; + decl$1 = [decl$1]; + e$1 = [e$1]; + iota = [iota]; + sig = [sig]; + x = [x]; + check[0] = this; + x[0].mode = 0; + x[0].typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + _ref = e; + /* */ if ($assertType(_ref, ptrType$36, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$31, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$42, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$58, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$101, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$102, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$40, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref, ptrType$37, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref, ptrType$38, true)[1] || $assertType(_ref, ptrType$39, true)[1]) { $s = 9; continue; } + /* */ if ($assertType(_ref, ptrType$103, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref, ptrType$83, true)[1]) { $s = 11; continue; } + /* */ if ($assertType(_ref, ptrType$87, true)[1]) { $s = 12; continue; } + /* */ if ($assertType(_ref, ptrType$44, true)[1]) { $s = 13; continue; } + /* */ if ($assertType(_ref, ptrType$21, true)[1]) { $s = 14; continue; } + /* */ if ($assertType(_ref, ptrType$22, true)[1]) { $s = 15; continue; } + /* */ if ($assertType(_ref, ptrType$100, true)[1]) { $s = 16; continue; } + /* */ if ($assertType(_ref, ptrType$41, true)[1] || $assertType(_ref, ptrType$43, true)[1] || $assertType(_ref, ptrType$45, true)[1] || $assertType(_ref, ptrType$46, true)[1] || $assertType(_ref, ptrType$47, true)[1] || $assertType(_ref, ptrType$48, true)[1]) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if ($assertType(_ref, ptrType$36, true)[1]) { */ case 1: + e$2 = _ref.$val; + /* goto Error */ $s = 20; continue; + $s = 19; continue; + /* } else if ($assertType(_ref, ptrType$31, true)[1]) { */ case 2: + e$3 = _ref.$val; + $r = check[0].ident(x[0], e$3, ptrType$10.nil, false); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 19; continue; + /* } else if ($assertType(_ref, ptrType$42, true)[1]) { */ case 3: + e$4 = _ref.$val; + $r = check[0].error(e$4, 77, "invalid use of '...'"); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 20; continue; + $s = 19; continue; + /* } else if ($assertType(_ref, ptrType$58, true)[1]) { */ case 4: + e$5 = _ref.$val; + _1 = e$5.Kind; + /* */ if ((_1 === (5)) || (_1 === (6)) || (_1 === (7))) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if ((_1 === (5)) || (_1 === (6)) || (_1 === (7))) { */ case 24: + $r = check[0].langCompat(e$5); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (e$5.Value.length > 10000) { $s = 27; continue; } + /* */ $s = 28; continue; + /* if (e$5.Value.length > 10000) { */ case 27: + $r = check[0].errorf(e$5, 14, "excessively long constant: %s... (%d chars)", new sliceType$5([new $String($substring(e$5.Value, 0, 10)), new $Int(e$5.Value.length)])); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 20; continue; + /* } */ case 28: + /* } */ case 25: + case 23: + $r = x[0].setConst(e$5.Kind, e$5.Value); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (x[0].mode === 0) { $s = 31; continue; } + /* */ $s = 32; continue; + /* if (x[0].mode === 0) { */ case 31: + $r = check[0].errorf(e$5, 14, "malformed constant: %s", new sliceType$5([new $String(e$5.Value)])); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 20; continue; + /* } */ case 32: + $r = check[0].overflow(x[0], e$5.Pos()); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 19; continue; + /* } else if ($assertType(_ref, ptrType$101, true)[1]) { */ case 5: + e$1[0] = _ref.$val; + _r = check[0].typ(e$1[0].Type); /* */ $s = 35; case 35: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = $assertType(_r, ptrType$29, true); + sig[0] = _tuple[0]; ok = _tuple[1]; - if (ok) { - $s = -1; return x$1.kind === y$1.kind; - } - $s = 16; continue; - /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 2: - x$2 = _ref.$val; - _tuple$1 = $assertType(y, ptrType$10, true); - y$2 = _tuple$1[0]; - ok$1 = _tuple$1[1]; - /* */ if (ok$1) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (ok$1) { */ case 17: - if (!((x$16 = x$2.len, (x$16.$high < 0 || (x$16.$high === 0 && x$16.$low < 0))) || (x$17 = y$2.len, (x$17.$high < 0 || (x$17.$high === 0 && x$17.$low < 0))) || (x$18 = x$2.len, x$19 = y$2.len, (x$18.$high === x$19.$high && x$18.$low === x$19.$low)))) { _v = false; $s = 19; continue s; } - _r$1 = identical(x$2.elem, y$2.elem, cmpTags, p); /* */ $s = 20; case 20: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = _r$1; case 19: - $24r = _v; - $s = 21; case 21: return $24r; - /* } */ case 18: - $s = 16; continue; - /* } else if ($assertType(_ref, ptrType$25, true)[1]) { */ case 3: - x$3 = _ref.$val; - _tuple$2 = $assertType(y, ptrType$25, true); - y$3 = _tuple$2[0]; - ok$2 = _tuple$2[1]; - /* */ if (ok$2) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if (ok$2) { */ case 22: - _r$2 = identical(x$3.elem, y$3.elem, cmpTags, p); /* */ $s = 24; case 24: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r$1 = _r$2; - $s = 25; case 25: return $24r$1; - /* } */ case 23: - $s = 16; continue; - /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 4: - x$4 = _ref.$val; - _tuple$3 = $assertType(y, ptrType$11, true); - y$4 = _tuple$3[0]; - ok$3 = _tuple$3[1]; - /* */ if (ok$3) { $s = 26; continue; } - /* */ $s = 27; continue; - /* if (ok$3) { */ case 26: - /* */ if (x$4.NumFields() === y$4.NumFields()) { $s = 28; continue; } - /* */ $s = 29; continue; - /* if (x$4.NumFields() === y$4.NumFields()) { */ case 28: - _ref$1 = x$4.fields; - _i = 0; - /* while (true) { */ case 30: - /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 31; continue; } - i = _i; - f = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); - g = (x$20 = y$4.fields, ((i < 0 || i >= x$20.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$20.$array[x$20.$offset + i])); - if (!(f.embedded === g.embedded) || cmpTags && !(x$4.Tag(i) === y$4.Tag(i)) || !f.object.sameId(g.object.pkg, g.object.name)) { _v$1 = true; $s = 34; continue s; } - _r$3 = identical(f.object.typ, g.object.typ, cmpTags, p); /* */ $s = 35; case 35: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _v$1 = !_r$3; case 34: - /* */ if (_v$1) { $s = 32; continue; } - /* */ $s = 33; continue; - /* if (_v$1) { */ case 32: - $s = -1; return false; - /* } */ case 33: - _i++; - $s = 30; continue; - case 31: - $s = -1; return true; - /* } */ case 29: - /* } */ case 27: - $s = 16; continue; - /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 5: - x$5 = _ref.$val; - _tuple$4 = $assertType(y, ptrType$26, true); - y$5 = _tuple$4[0]; - ok$4 = _tuple$4[1]; - /* */ if (ok$4) { $s = 36; continue; } + /* */ if (ok) { $s = 36; continue; } /* */ $s = 37; continue; - /* if (ok$4) { */ case 36: - _r$4 = identical(x$5.base, y$5.base, cmpTags, p); /* */ $s = 38; case 38: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $24r$2 = _r$4; - $s = 39; case 39: return $24r$2; - /* } */ case 37: - $s = 16; continue; - /* } else if ($assertType(_ref, ptrType$15, true)[1]) { */ case 6: - x$6 = _ref.$val; - _tuple$5 = $assertType(y, ptrType$15, true); - y$6 = _tuple$5[0]; - ok$5 = _tuple$5[1]; - /* */ if (ok$5) { $s = 40; continue; } - /* */ $s = 41; continue; - /* if (ok$5) { */ case 40: - /* */ if (x$6.Len() === y$6.Len()) { $s = 42; continue; } + /* if (ok) { */ case 36: + if (!check[0].conf.IgnoreFuncBodies && !(e$1[0].Body === ptrType$75.nil)) { + decl$1[0] = check[0].environment.decl; + iota[0] = check[0].environment.iota; + check[0].later((function(base, check, decl$1, e$1, iota, sig, x) { return function Checker·exprInternal·func1() { + var {$s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = check[0].funcBody(decl$1[0], "", sig[0], e$1[0].Body, iota[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·exprInternal·func1, $c: true, $r, $s};return $f; + }; })(base, check, decl$1, e$1, iota, sig, x)).describef(e$1[0], "func literal", sliceType$5.nil); + } + x[0].mode = 7; + x[0].typ = sig[0]; + $s = 38; continue; + /* } else { */ case 37: + $r = check[0].errorf(e$1[0], -1, "invalid function literal %s", new sliceType$5([e$1[0]])); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 20; continue; + /* } */ case 38: + $s = 19; continue; + /* } else if ($assertType(_ref, ptrType$102, true)[1]) { */ case 6: + e$6 = _ref.$val; + _tmp = $ifaceNil; + _tmp$1 = $ifaceNil; + typ$4 = _tmp; + base$1 = _tmp$1; + /* */ if (!($interfaceIsEqual(e$6.Type, $ifaceNil))) { $s = 41; continue; } + /* */ if (!($interfaceIsEqual(hint, $ifaceNil))) { $s = 42; continue; } /* */ $s = 43; continue; - /* if (x$6.Len() === y$6.Len()) { */ case 42: - /* */ if (!(x$6 === ptrType$15.nil)) { $s = 44; continue; } - /* */ $s = 45; continue; - /* if (!(x$6 === ptrType$15.nil)) { */ case 44: - _ref$2 = x$6.vars; - _i$1 = 0; - /* while (true) { */ case 46: - /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 47; continue; } - i$1 = _i$1; - v = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); - w = (x$21 = y$6.vars, ((i$1 < 0 || i$1 >= x$21.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$21.$array[x$21.$offset + i$1])); - _r$5 = identical(v.object.typ, w.object.typ, cmpTags, p); /* */ $s = 50; case 50: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* */ if (!_r$5) { $s = 48; continue; } - /* */ $s = 49; continue; - /* if (!_r$5) { */ case 48: + /* if (!($interfaceIsEqual(e$6.Type, $ifaceNil))) { */ case 41: + _tuple$1 = $assertType(e$6.Type, ptrType$41, true); + atyp = _tuple$1[0]; + /* */ if (!(atyp === ptrType$41.nil) && !($interfaceIsEqual(atyp.Len, $ifaceNil))) { $s = 45; continue; } + /* */ $s = 46; continue; + /* if (!(atyp === ptrType$41.nil) && !($interfaceIsEqual(atyp.Len, $ifaceNil))) { */ case 45: + _tuple$2 = $assertType(atyp.Len, ptrType$42, true); + ellip = _tuple$2[0]; + /* */ if (!(ellip === ptrType$42.nil) && $interfaceIsEqual(ellip.Elt, $ifaceNil)) { $s = 47; continue; } + /* */ $s = 48; continue; + /* if (!(ellip === ptrType$42.nil) && $interfaceIsEqual(ellip.Elt, $ifaceNil)) { */ case 47: + _r$1 = check[0].varType(atyp.Elt); /* */ $s = 49; case 49: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + typ$4 = new Array.ptr(new $Int64(-1, 4294967295), _r$1); + base$1 = typ$4; + /* break; */ $s = 40; continue; + /* } */ case 48: + /* } */ case 46: + _r$2 = check[0].typ(e$6.Type); /* */ $s = 50; case 50: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + typ$4 = _r$2; + base$1 = typ$4; + $s = 44; continue; + /* } else if (!($interfaceIsEqual(hint, $ifaceNil))) { */ case 42: + typ$4 = hint; + _r$3 = coreType(typ$4); /* */ $s = 51; case 51: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$4 = deref(_r$3); /* */ $s = 52; case 52: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$3 = _r$4; + base$1 = _tuple$3[0]; + /* */ if ($interfaceIsEqual(base$1, $ifaceNil)) { $s = 53; continue; } + /* */ $s = 54; continue; + /* if ($interfaceIsEqual(base$1, $ifaceNil)) { */ case 53: + $r = check[0].errorf(e$6, 71, "invalid composite literal element type %s (no core type)", new sliceType$5([typ$4])); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 20; continue; + /* } */ case 54: + $s = 44; continue; + /* } else { */ case 43: + $r = check[0].error(e$6, 70, "missing type in composite literal"); /* */ $s = 56; case 56: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 20; continue; + /* } */ case 44: + case 40: + _r$5 = coreType(base$1); /* */ $s = 57; case 57: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _ref$1 = _r$5; + /* */ if ($assertType(_ref$1, ptrType$12, true)[1]) { $s = 58; continue; } + /* */ if ($assertType(_ref$1, ptrType$11, true)[1]) { $s = 59; continue; } + /* */ if ($assertType(_ref$1, ptrType$27, true)[1]) { $s = 60; continue; } + /* */ if ($assertType(_ref$1, ptrType$30, true)[1]) { $s = 61; continue; } + /* */ $s = 62; continue; + /* switch (0) { default: if ($assertType(_ref$1, ptrType$12, true)[1]) { */ case 58: + utyp = _ref$1.$val; + /* */ if (utyp.fields === sliceType$9.nil) { $s = 64; continue; } + /* */ $s = 65; continue; + /* if (utyp.fields === sliceType$9.nil) { */ case 64: + $r = check[0].error(e$6, 12, "invalid recursive type"); /* */ $s = 66; case 66: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 20; continue; + /* } */ case 65: + if (e$6.Elts.$length === 0) { + /* break; */ $s = 63; continue; + } + fields = utyp.fields; + _tuple$4 = $assertType((x$1 = e$6.Elts, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])), ptrType$100, true); + ok$1 = _tuple$4[1]; + /* */ if (ok$1) { $s = 67; continue; } + /* */ $s = 68; continue; + /* if (ok$1) { */ case 67: + visited = $makeSlice(sliceType$14, fields.$length); + _ref$2 = e$6.Elts; + _i = 0; + /* while (true) { */ case 70: + /* if (!(_i < _ref$2.$length)) { break; } */ if(!(_i < _ref$2.$length)) { $s = 71; continue; } + e$19 = ((_i < 0 || _i >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i]); + _tuple$5 = $assertType(e$19, ptrType$100, true); + kv = _tuple$5[0]; + /* */ if (kv === ptrType$100.nil) { $s = 72; continue; } + /* */ $s = 73; continue; + /* if (kv === ptrType$100.nil) { */ case 72: + $r = check[0].error(e$19, 64, "mixture of field:value and value elements in struct literal"); /* */ $s = 74; case 74: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* continue; */ $s = 70; continue; + /* } */ case 73: + _tuple$6 = $assertType(kv.Key, ptrType$31, true); + key = _tuple$6[0]; + $r = check[0].expr($ifaceNil, x[0], kv.Value); /* */ $s = 75; case 75: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (key === ptrType$31.nil) { $s = 76; continue; } + /* */ $s = 77; continue; + /* if (key === ptrType$31.nil) { */ case 76: + $r = check[0].errorf(kv, 69, "invalid field name %s in struct literal", new sliceType$5([kv.Key])); /* */ $s = 78; case 78: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* continue; */ $s = 70; continue; + /* } */ case 77: + i = fieldIndex(utyp.fields, check[0].pkg, key.Name); + /* */ if (i < 0) { $s = 79; continue; } + /* */ $s = 80; continue; + /* if (i < 0) { */ case 79: + $r = check[0].errorf(kv, 66, "unknown field %s in struct literal of type %s", new sliceType$5([new $String(key.Name), base$1])); /* */ $s = 81; case 81: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* continue; */ $s = 70; continue; + /* } */ case 80: + fld = ((i < 0 || i >= fields.$length) ? ($throwRuntimeError("index out of range"), undefined) : fields.$array[fields.$offset + i]); + $r = check[0].recordUse(key, fld); /* */ $s = 82; case 82: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + etyp = fld.object.typ; + $r = check[0].assignment(x[0], etyp, "struct literal"); /* */ $s = 83; case 83: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (((i < 0 || i >= visited.$length) ? ($throwRuntimeError("index out of range"), undefined) : visited.$array[visited.$offset + i])) { $s = 84; continue; } + /* */ $s = 85; continue; + /* if (((i < 0 || i >= visited.$length) ? ($throwRuntimeError("index out of range"), undefined) : visited.$array[visited.$offset + i])) { */ case 84: + $r = check[0].errorf(kv, 67, "duplicate field name %s in struct literal", new sliceType$5([new $String(key.Name)])); /* */ $s = 86; case 86: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* continue; */ $s = 70; continue; + /* } */ case 85: + ((i < 0 || i >= visited.$length) ? ($throwRuntimeError("index out of range"), undefined) : visited.$array[visited.$offset + i] = true); + _i++; + $s = 70; continue; + case 71: + $s = 69; continue; + /* } else { */ case 68: + _ref$3 = e$6.Elts; + _i$1 = 0; + /* while (true) { */ case 87: + /* if (!(_i$1 < _ref$3.$length)) { break; } */ if(!(_i$1 < _ref$3.$length)) { $s = 88; continue; } + i$1 = _i$1; + e$20 = ((_i$1 < 0 || _i$1 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$1]); + _tuple$7 = $assertType(e$20, ptrType$100, true); + kv$1 = _tuple$7[0]; + /* */ if (!(kv$1 === ptrType$100.nil)) { $s = 89; continue; } + /* */ $s = 90; continue; + /* if (!(kv$1 === ptrType$100.nil)) { */ case 89: + $r = check[0].error(kv$1, 64, "mixture of field:value and value elements in struct literal"); /* */ $s = 91; case 91: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + /* continue; */ $s = 87; continue; + /* } */ case 90: + $r = check[0].expr($ifaceNil, x[0], e$20); /* */ $s = 92; case 92: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (i$1 >= fields.$length) { $s = 93; continue; } + /* */ $s = 94; continue; + /* if (i$1 >= fields.$length) { */ case 93: + $r = check[0].errorf(x[0], 65, "too many values in struct literal of type %s", new sliceType$5([base$1])); /* */ $s = 95; case 95: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* break; */ $s = 88; continue; + /* } */ case 94: + fld$1 = ((i$1 < 0 || i$1 >= fields.$length) ? ($throwRuntimeError("index out of range"), undefined) : fields.$array[fields.$offset + i$1]); + /* */ if (!fld$1.object.Exported() && !(fld$1.object.pkg === check[0].pkg)) { $s = 96; continue; } + /* */ $s = 97; continue; + /* if (!fld$1.object.Exported() && !(fld$1.object.pkg === check[0].pkg)) { */ case 96: + $r = check[0].errorf(x[0], 68, "implicit assignment to unexported field %s in struct literal of type %s", new sliceType$5([new $String(fld$1.object.name), base$1])); /* */ $s = 98; case 98: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + /* continue; */ $s = 87; continue; + /* } */ case 97: + etyp$1 = fld$1.object.typ; + $r = check[0].assignment(x[0], etyp$1, "struct literal"); /* */ $s = 99; case 99: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + $s = 87; continue; + case 88: + /* */ if (e$6.Elts.$length < fields.$length) { $s = 100; continue; } + /* */ $s = 101; continue; + /* if (e$6.Elts.$length < fields.$length) { */ case 100: + _r$6 = inNode(e$6, e$6.Rbrace); /* */ $s = 102; case 102: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $r = check[0].errorf((x$2 = _r$6, new x$2.constructor.elem(x$2)), 65, "too few values in struct literal of type %s", new sliceType$5([base$1])); /* */ $s = 103; case 103: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 101: + /* } */ case 69: + $s = 63; continue; + /* } else if ($assertType(_ref$1, ptrType$11, true)[1]) { */ case 59: + utyp$1 = _ref$1.$val; + /* */ if ($interfaceIsEqual(utyp$1.elem, $ifaceNil)) { $s = 104; continue; } + /* */ $s = 105; continue; + /* if ($interfaceIsEqual(utyp$1.elem, $ifaceNil)) { */ case 104: + $r = check[0].error(e$6, 12, "invalid recursive type"); /* */ $s = 106; case 106: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 20; continue; + /* } */ case 105: + _r$7 = check[0].indexedElts(e$6.Elts, utyp$1.elem, utyp$1.len); /* */ $s = 107; case 107: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + n = _r$7; + /* */ if ((x$3 = utyp$1.len, (x$3.$high < 0 || (x$3.$high === 0 && x$3.$low < 0)))) { $s = 108; continue; } + /* */ $s = 109; continue; + /* if ((x$3 = utyp$1.len, (x$3.$high < 0 || (x$3.$high === 0 && x$3.$low < 0)))) { */ case 108: + utyp$1.len = n; + /* */ if (!($interfaceIsEqual(e$6.Type, $ifaceNil))) { $s = 110; continue; } + /* */ $s = 111; continue; + /* if (!($interfaceIsEqual(e$6.Type, $ifaceNil))) { */ case 110: + $r = check[0].recordTypeAndValue(e$6.Type, 3, utyp$1, $ifaceNil); /* */ $s = 112; case 112: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 111: + /* } */ case 109: + $s = 63; continue; + /* } else if ($assertType(_ref$1, ptrType$27, true)[1]) { */ case 60: + utyp$2 = _ref$1.$val; + /* */ if ($interfaceIsEqual(utyp$2.elem, $ifaceNil)) { $s = 113; continue; } + /* */ $s = 114; continue; + /* if ($interfaceIsEqual(utyp$2.elem, $ifaceNil)) { */ case 113: + $r = check[0].error(e$6, 12, "invalid recursive type"); /* */ $s = 115; case 115: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 20; continue; + /* } */ case 114: + _r$8 = check[0].indexedElts(e$6.Elts, utyp$2.elem, new $Int64(-1, 4294967295)); /* */ $s = 116; case 116: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$8; + $s = 63; continue; + /* } else if ($assertType(_ref$1, ptrType$30, true)[1]) { */ case 61: + utyp$3 = _ref$1.$val; + /* */ if ($interfaceIsEqual(utyp$3.key, $ifaceNil) || $interfaceIsEqual(utyp$3.elem, $ifaceNil)) { $s = 117; continue; } + /* */ $s = 118; continue; + /* if ($interfaceIsEqual(utyp$3.key, $ifaceNil) || $interfaceIsEqual(utyp$3.elem, $ifaceNil)) { */ case 117: + $r = check[0].error(e$6, 12, "invalid recursive type"); /* */ $s = 119; case 119: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 20; continue; + /* } */ case 118: + _r$9 = isNonTypeParamInterface(utyp$3.key); /* */ $s = 120; case 120: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + keyIsInterface = _r$9; + visited$1 = (x$4 = e$6.Elts.$length, ((x$4 < 0 || x$4 > 2147483647) ? $throwRuntimeError("makemap: size out of range") : new $global.Map())); + _ref$4 = e$6.Elts; + _i$2 = 0; + /* while (true) { */ case 121: + /* if (!(_i$2 < _ref$4.$length)) { break; } */ if(!(_i$2 < _ref$4.$length)) { $s = 122; continue; } + e$21 = ((_i$2 < 0 || _i$2 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$2]); + _tuple$8 = $assertType(e$21, ptrType$100, true); + kv$2 = _tuple$8[0]; + /* */ if (kv$2 === ptrType$100.nil) { $s = 123; continue; } + /* */ $s = 124; continue; + /* if (kv$2 === ptrType$100.nil) { */ case 123: + $r = check[0].error(e$21, 61, "missing key in map literal"); /* */ $s = 125; case 125: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$2++; + /* continue; */ $s = 121; continue; + /* } */ case 124: + $r = check[0].exprWithHint(x[0], kv$2.Key, utyp$3.key); /* */ $s = 126; case 126: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].assignment(x[0], utyp$3.key, "map literal"); /* */ $s = 127; case 127: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (x[0].mode === 0) { + _i$2++; + /* continue; */ $s = 121; continue; + } + /* */ if (x[0].mode === 4) { $s = 128; continue; } + /* */ $s = 129; continue; + /* if (x[0].mode === 4) { */ case 128: + duplicate = false; + _r$10 = keyVal(x[0].val); /* */ $s = 130; case 130: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + xkey = _r$10; + /* */ if (keyIsInterface) { $s = 131; continue; } + /* */ $s = 132; continue; + /* if (keyIsInterface) { */ case 131: + _ref$5 = (_entry = $mapIndex(visited$1,$emptyInterface.keyFor(xkey)), _entry !== undefined ? _entry.v : sliceType$3.nil); + _i$3 = 0; + /* while (true) { */ case 134: + /* if (!(_i$3 < _ref$5.$length)) { break; } */ if(!(_i$3 < _ref$5.$length)) { $s = 135; continue; } + vtyp = ((_i$3 < 0 || _i$3 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$3]); + _r$11 = Identical(vtyp, x[0].typ); /* */ $s = 138; case 138: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + /* */ if (_r$11) { $s = 136; continue; } + /* */ $s = 137; continue; + /* if (_r$11) { */ case 136: + duplicate = true; + /* break; */ $s = 135; continue; + /* } */ case 137: + _i$3++; + $s = 134; continue; + case 135: + _key = xkey; (visited$1 || $throwRuntimeError("assignment to entry in nil map")).set($emptyInterface.keyFor(_key), { k: _key, v: $append((_entry$1 = $mapIndex(visited$1,$emptyInterface.keyFor(xkey)), _entry$1 !== undefined ? _entry$1.v : sliceType$3.nil), x[0].typ) }); + $s = 133; continue; + /* } else { */ case 132: + _tuple$9 = (_entry$2 = $mapIndex(visited$1,$emptyInterface.keyFor(xkey)), _entry$2 !== undefined ? [_entry$2.v, true] : [sliceType$3.nil, false]); + duplicate = _tuple$9[1]; + _key$1 = xkey; (visited$1 || $throwRuntimeError("assignment to entry in nil map")).set($emptyInterface.keyFor(_key$1), { k: _key$1, v: sliceType$3.nil }); + /* } */ case 133: + /* */ if (duplicate) { $s = 139; continue; } + /* */ $s = 140; continue; + /* if (duplicate) { */ case 139: + $r = check[0].errorf(x[0], 60, "duplicate key %s in map literal", new sliceType$5([x[0].val])); /* */ $s = 141; case 141: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$2++; + /* continue; */ $s = 121; continue; + /* } */ case 140: + /* } */ case 129: + $r = check[0].exprWithHint(x[0], kv$2.Value, utyp$3.elem); /* */ $s = 142; case 142: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].assignment(x[0], utyp$3.elem, "map literal"); /* */ $s = 143; case 143: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$2++; + $s = 121; continue; + case 122: + $s = 63; continue; + /* } else { */ case 62: + utyp$4 = _ref$1; + _ref$6 = e$6.Elts; + _i$4 = 0; + /* while (true) { */ case 144: + /* if (!(_i$4 < _ref$6.$length)) { break; } */ if(!(_i$4 < _ref$6.$length)) { $s = 145; continue; } + e$22 = ((_i$4 < 0 || _i$4 >= _ref$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$6.$array[_ref$6.$offset + _i$4]); + _tuple$10 = $assertType(e$22, ptrType$100, true); + kv$3 = _tuple$10[0]; + if (!(kv$3 === ptrType$100.nil)) { + e$22 = kv$3.Value; + } + _r$12 = check[0].use(new sliceType$10([e$22])); /* */ $s = 146; case 146: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _r$12; + _i$4++; + $s = 144; continue; + case 145: + /* */ if (!($interfaceIsEqual(utyp$4, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { $s = 147; continue; } + /* */ $s = 148; continue; + /* if (!($interfaceIsEqual(utyp$4, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { */ case 147: + $r = check[0].errorf(e$6, 71, "invalid composite literal type %s", new sliceType$5([typ$4])); /* */ $s = 149; case 149: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 20; continue; + /* } */ case 148: + /* } } */ case 63: + x[0].mode = 7; + x[0].typ = typ$4; + $s = 19; continue; + /* } else if ($assertType(_ref, ptrType$40, true)[1]) { */ case 7: + e$7 = _ref.$val; + _r$13 = check[0].rawExpr($ifaceNil, x[0], e$7.X, $ifaceNil, false); /* */ $s = 150; case 150: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + kind = _r$13; + x[0].expr = e$7; + $s = -1; return kind; + /* } else if ($assertType(_ref, ptrType$37, true)[1]) { */ case 8: + e$8 = _ref.$val; + $r = check[0].selector(x[0], e$8, ptrType$10.nil, false); /* */ $s = 151; case 151: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 19; continue; + /* } else if ($assertType(_ref, ptrType$38, true)[1] || $assertType(_ref, ptrType$39, true)[1]) { */ case 9: + e$9 = _ref; + ix = typeparams.UnpackIndexExpr(e$9); + _r$14 = check[0].indexExpr(x[0], ix); /* */ $s = 154; case 154: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + /* */ if (_r$14) { $s = 152; continue; } + /* */ $s = 153; continue; + /* if (_r$14) { */ case 152: + tsig = ptrType$29.nil; + /* */ if (true && !($interfaceIsEqual(T, $ifaceNil))) { $s = 155; continue; } + /* */ $s = 156; continue; + /* if (true && !($interfaceIsEqual(T, $ifaceNil))) { */ case 155: + _r$15 = under(T); /* */ $s = 157; case 157: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + _tuple$11 = $assertType(_r$15, ptrType$29, true); + tsig = _tuple$11[0]; + /* } */ case 156: + _arg = tsig; + _r$16 = e$9.Pos(); /* */ $s = 158; case 158: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + _arg$1 = _r$16; + _arg$2 = x[0]; + _arg$3 = ix; + _r$17 = check[0].funcInst(_arg, _arg$1, _arg$2, _arg$3, true); /* */ $s = 159; case 159: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + _r$17; + /* } */ case 153: + /* */ if (x[0].mode === 0) { $s = 160; continue; } + /* */ $s = 161; continue; + /* if (x[0].mode === 0) { */ case 160: + /* goto Error */ $s = 20; continue; + /* } */ case 161: + $s = 19; continue; + /* } else if ($assertType(_ref, ptrType$103, true)[1]) { */ case 10: + e$10 = _ref.$val; + $r = check[0].sliceExpr(x[0], e$10); /* */ $s = 162; case 162: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (x[0].mode === 0) { $s = 163; continue; } + /* */ $s = 164; continue; + /* if (x[0].mode === 0) { */ case 163: + /* goto Error */ $s = 20; continue; + /* } */ case 164: + $s = 19; continue; + /* } else if ($assertType(_ref, ptrType$83, true)[1]) { */ case 11: + e$11 = _ref.$val; + $r = check[0].expr($ifaceNil, x[0], e$11.X); /* */ $s = 165; case 165: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (x[0].mode === 0) { $s = 166; continue; } + /* */ $s = 167; continue; + /* if (x[0].mode === 0) { */ case 166: + /* goto Error */ $s = 20; continue; + /* } */ case 167: + /* */ if ($interfaceIsEqual(e$11.Type, $ifaceNil)) { $s = 168; continue; } + /* */ $s = 169; continue; + /* if ($interfaceIsEqual(e$11.Type, $ifaceNil)) { */ case 168: + $r = check[0].error(e$11, 115, "use of .(type) outside type switch"); /* */ $s = 170; case 170: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 20; continue; + /* } */ case 169: + /* */ if (isTypeParam(x[0].typ)) { $s = 171; continue; } + /* */ $s = 172; continue; + /* if (isTypeParam(x[0].typ)) { */ case 171: + $r = check[0].errorf(x[0], 94, "invalid operation: cannot use type assertion on type parameter value %s", new sliceType$5([x[0]])); /* */ $s = 173; case 173: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 20; continue; + /* } */ case 172: + _r$18 = under(x[0].typ); /* */ $s = 174; case 174: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + _tuple$12 = $assertType(_r$18, ptrType$14, true); + ok$2 = _tuple$12[1]; + /* */ if (!ok$2) { $s = 175; continue; } + /* */ $s = 176; continue; + /* if (!ok$2) { */ case 175: + $r = check[0].errorf(x[0], 94, "invalid operation: %s is not an interface", new sliceType$5([x[0]])); /* */ $s = 177; case 177: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 20; continue; + /* } */ case 176: + _r$19 = check[0].varType(e$11.Type); /* */ $s = 178; case 178: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + T$1 = _r$19; + /* */ if ($interfaceIsEqual(T$1, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { $s = 179; continue; } + /* */ $s = 180; continue; + /* if ($interfaceIsEqual(T$1, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { */ case 179: + /* goto Error */ $s = 20; continue; + /* } */ case 180: + $r = check[0].typeAssertion(e$11, x[0], T$1, false); /* */ $s = 181; case 181: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x[0].mode = 8; + x[0].typ = T$1; + $s = 19; continue; + /* } else if ($assertType(_ref, ptrType$87, true)[1]) { */ case 12: + e$12 = _ref.$val; + _r$20 = check[0].callExpr(x[0], e$12); /* */ $s = 182; case 182: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + $24r = _r$20; + $s = 183; case 183: return $24r; + /* } else if ($assertType(_ref, ptrType$44, true)[1]) { */ case 13: + e$13 = _ref.$val; + $r = check[0].exprOrType(x[0], e$13.X, false); /* */ $s = 184; case 184: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _2 = x[0].mode; + /* */ if (_2 === (0)) { $s = 186; continue; } + /* */ if (_2 === (3)) { $s = 187; continue; } + /* */ $s = 188; continue; + /* if (_2 === (0)) { */ case 186: + /* goto Error */ $s = 20; continue; + $s = 189; continue; + /* } else if (_2 === (3)) { */ case 187: + check[0].validVarType(e$13.X, x[0].typ); + x[0].typ = new Pointer.ptr(x[0].typ); + $s = 189; continue; + /* } else { */ case 188: + base[0] = $ifaceNil; + _r$21 = underIs(x[0].typ, (function(base, check, decl$1, e$1, iota, sig, x) { return function Checker·exprInternal·func2(u) { + var {_r$21, _tuple$13, _v, p, u, $s, $r, $c} = $restore(this, {u}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _tuple$13 = $assertType(u, ptrType$28, true); + p = _tuple$13[0]; + /* */ if (p === ptrType$28.nil) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p === ptrType$28.nil) { */ case 1: + $r = check[0].errorf(x[0], 50, "invalid operation: cannot indirect %s", new sliceType$5([x[0]])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return false; - /* } */ case 49: - _i$1++; - $s = 46; continue; - case 47: - /* } */ case 45: - $s = -1; return true; - /* } */ case 43: - /* } */ case 41: - $s = 16; continue; - /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 7: - x$7 = _ref.$val; - _tuple$6 = $assertType(y, ptrType$27, true); - y$7 = _tuple$6[0]; - if (y$7 === ptrType$27.nil) { - $s = -1; return false; - } - if (!((x$7.TypeParams().Len() === y$7.TypeParams().Len()))) { - $s = -1; return false; + /* } */ case 2: + if (!(!($interfaceIsEqual(base[0], $ifaceNil)))) { _v = false; $s = 6; continue s; } + _r$21 = Identical(p.base, base[0]); /* */ $s = 7; case 7: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + _v = !_r$21; case 6: + /* */ if (_v) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_v) { */ case 4: + $r = check[0].errorf(x[0], 50, "invalid operation: pointers of %s must have identical base types", new sliceType$5([x[0]])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; + /* } */ case 5: + base[0] = p.base; + $s = -1; return true; + /* */ } return; } var $f = {$blk: Checker·exprInternal·func2, $c: true, $r, _r$21, _tuple$13, _v, p, u, $s};return $f; + }; })(base, check, decl$1, e$1, iota, sig, x)); /* */ $s = 192; case 192: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + /* */ if (!_r$21) { $s = 190; continue; } + /* */ $s = 191; continue; + /* if (!_r$21) { */ case 190: + /* goto Error */ $s = 20; continue; + /* } */ case 191: + x[0].mode = 5; + x[0].typ = base[0]; + /* } */ case 189: + case 185: + $s = 19; continue; + /* } else if ($assertType(_ref, ptrType$21, true)[1]) { */ case 14: + e$14 = _ref.$val; + $r = check[0].unary(x[0], e$14); /* */ $s = 193; case 193: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (x[0].mode === 0) { $s = 194; continue; } + /* */ $s = 195; continue; + /* if (x[0].mode === 0) { */ case 194: + /* goto Error */ $s = 20; continue; + /* } */ case 195: + if (e$14.Op === 36) { + x[0].expr = e$14; + $s = -1; return 2; } - yparams = y$7.params; - yresults = y$7.results; - /* */ if (x$7.TypeParams().Len() > 0) { $s = 51; continue; } - /* */ $s = 52; continue; - /* if (x$7.TypeParams().Len() > 0) { */ case 51: - xtparams = x$7.TypeParams().list(); - ytparams = y$7.TypeParams().list(); - targs = sliceType$2.nil; - _ref$3 = xtparams; - _i$2 = 0; - while (true) { - if (!(_i$2 < _ref$3.$length)) { break; } - i$2 = _i$2; - targs = $append(targs, x$7.TypeParams().At(i$2)); - _i$2++; + $s = 19; continue; + /* } else if ($assertType(_ref, ptrType$22, true)[1]) { */ case 15: + e$15 = _ref.$val; + $r = check[0].binary(x[0], e$15, e$15.X, e$15.Y, e$15.Op, e$15.OpPos); /* */ $s = 196; case 196: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (x[0].mode === 0) { $s = 197; continue; } + /* */ $s = 198; continue; + /* if (x[0].mode === 0) { */ case 197: + /* goto Error */ $s = 20; continue; + /* } */ case 198: + $s = 19; continue; + /* } else if ($assertType(_ref, ptrType$100, true)[1]) { */ case 16: + e$16 = _ref.$val; + $r = check[0].error(e$16, -1, "no key:value expected"); /* */ $s = 199; case 199: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 20; continue; + $s = 19; continue; + /* } else if ($assertType(_ref, ptrType$41, true)[1] || $assertType(_ref, ptrType$43, true)[1] || $assertType(_ref, ptrType$45, true)[1] || $assertType(_ref, ptrType$46, true)[1] || $assertType(_ref, ptrType$47, true)[1] || $assertType(_ref, ptrType$48, true)[1]) { */ case 17: + e$17 = _ref; + x[0].mode = 3; + _r$22 = check[0].typ(e$17); /* */ $s = 200; case 200: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + x[0].typ = _r$22; + $s = 19; continue; + /* } else { */ case 18: + e$18 = _ref; + _r$23 = e$18.Pos(); /* */ $s = 201; case 201: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + _r$24 = check[0].fset.Position(_r$23); /* */ $s = 202; case 202: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _arg$4 = (x$5 = _r$24, new x$5.constructor.elem(x$5)); + _arg$5 = e$18; + _r$25 = fmt.Sprintf("%s: unknown expression type %T", new sliceType$5([_arg$4, _arg$5])); /* */ $s = 203; case 203: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $panic(new $String(_r$25)); + /* } */ case 19: + x[0].expr = e; + $s = -1; return 1; + /* Error: */ case 20: + x[0].mode = 0; + x[0].expr = e; + $s = -1; return 2; + /* */ } return; } var $f = {$blk: exprInternal, $c: true, $r, $24r, T, T$1, _1, _2, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _entry, _entry$1, _entry$2, _i, _i$1, _i$2, _i$3, _i$4, _key, _key$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, atyp, base, base$1, check, decl$1, duplicate, e, e$1, e$10, e$11, e$12, e$13, e$14, e$15, e$16, e$17, e$18, e$19, e$2, e$20, e$21, e$22, e$3, e$4, e$5, e$6, e$7, e$8, e$9, ellip, etyp, etyp$1, fields, fld, fld$1, hint, i, i$1, iota, ix, key, keyIsInterface, kind, kv, kv$1, kv$2, kv$3, n, ok, ok$1, ok$2, sig, tsig, typ$4, utyp, utyp$1, utyp$2, utyp$3, utyp$4, visited, visited$1, vtyp, x, x$1, x$2, x$3, x$4, x$5, xkey, $s};return $f; + }; + keyVal = function keyVal$1(x) { + var {$24r, $24r$1, _1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, f, i, i$1, ok, ok$1, r, v, v$1, v$2, x, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = x.Kind(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _1 = _r; + /* */ if (_1 === (5)) { $s = 3; continue; } + /* */ if (_1 === (4)) { $s = 4; continue; } + /* */ if (_1 === (3)) { $s = 5; continue; } + /* */ if (_1 === (2)) { $s = 6; continue; } + /* */ if (_1 === (1)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (_1 === (5)) { */ case 3: + _r$1 = constant.ToFloat(x); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + f = _r$1; + _r$2 = f.Kind(); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (!((_r$2 === 4))) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (!((_r$2 === 4))) { */ case 10: + _r$3 = constant.Real(x); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$4 = constant.Float64Val(_r$3); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple = _r$4; + r = _tuple[0]; + _r$5 = constant.Imag(x); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$6 = constant.Float64Val(_r$5); /* */ $s = 16; case 16: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _tuple$1 = _r$6; + i = _tuple$1[0]; + $s = -1; return new $Complex128(r, i); + /* } */ case 11: + x = f; + _r$7 = constant.ToInt(x); /* */ $s = 17; case 17: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + i$1 = _r$7; + _r$8 = i$1.Kind(); /* */ $s = 20; case 20: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + /* */ if (!((_r$8 === 3))) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (!((_r$8 === 3))) { */ case 18: + _r$9 = constant.Float64Val(x); /* */ $s = 21; case 21: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _tuple$2 = _r$9; + v = _tuple$2[0]; + $s = -1; return new $Float64(v); + /* } */ case 19: + x = i$1; + _r$10 = constant.Int64Val(x); /* */ $s = 22; case 22: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _tuple$3 = _r$10; + v$1 = _tuple$3[0]; + ok = _tuple$3[1]; + if (ok) { + $s = -1; return v$1; } - _r$6 = makeSubstMap(ytparams, targs); /* */ $s = 53; case 53: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - smap = _r$6; - check = ptrType$5.nil; - ctxt = NewContext(); - _ref$4 = xtparams; - _i$3 = 0; - /* while (true) { */ case 54: - /* if (!(_i$3 < _ref$4.$length)) { break; } */ if(!(_i$3 < _ref$4.$length)) { $s = 55; continue; } - i$3 = _i$3; - xtparam = ((_i$3 < 0 || _i$3 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$3]); - _r$7 = check.subst(0, ((i$3 < 0 || i$3 >= ytparams.$length) ? ($throwRuntimeError("index out of range"), undefined) : ytparams.$array[ytparams.$offset + i$3]).bound, smap, ptrType$9.nil, ctxt); /* */ $s = 56; case 56: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - ybound = _r$7; - _r$8 = identical(xtparam.bound, ybound, cmpTags, p); /* */ $s = 59; case 59: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - /* */ if (!_r$8) { $s = 57; continue; } - /* */ $s = 58; continue; - /* if (!_r$8) { */ case 57: - $s = -1; return false; - /* } */ case 58: - _i$3++; - $s = 54; continue; - case 55: - _r$9 = check.subst(0, y$7.params, smap, ptrType$9.nil, ctxt); /* */ $s = 60; case 60: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - yparams = $assertType(_r$9, ptrType$15); - _r$10 = check.subst(0, y$7.results, smap, ptrType$9.nil, ctxt); /* */ $s = 61; case 61: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - yresults = $assertType(_r$10, ptrType$15); - /* } */ case 52: - if (!(x$7.variadic === y$7.variadic)) { _v$3 = false; $s = 63; continue s; } - _r$11 = identical(x$7.params, yparams, cmpTags, p); /* */ $s = 64; case 64: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _v$3 = _r$11; case 63: - if (!(_v$3)) { _v$2 = false; $s = 62; continue s; } - _r$12 = identical(x$7.results, yresults, cmpTags, p); /* */ $s = 65; case 65: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _v$2 = _r$12; case 62: - $24r$3 = _v$2; - $s = 66; case 66: return $24r$3; - /* } else if ($assertType(_ref, ptrType$12, true)[1]) { */ case 8: - x$8 = _ref.$val; - _tuple$7 = $assertType(y, ptrType$12, true); - y$8 = _tuple$7[0]; - /* */ if (!(y$8 === ptrType$12.nil)) { $s = 67; continue; } - /* */ $s = 68; continue; - /* if (!(y$8 === ptrType$12.nil)) { */ case 67: - unionSets = new $global.Map(); - _r$13 = computeUnionTypeSet(ptrType$5.nil, unionSets, 0, x$8); /* */ $s = 69; case 69: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - xset = _r$13; - _r$14 = computeUnionTypeSet(ptrType$5.nil, unionSets, 0, y$8); /* */ $s = 70; case 70: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - yset = _r$14; - _r$15 = xset.terms.equal(yset.terms); /* */ $s = 71; case 71: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - $24r$4 = _r$15; - $s = 72; case 72: return $24r$4; - /* } */ case 68: - $s = 16; continue; - /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 9: - x$9 = _ref.$val; - _tuple$8 = $assertType(y, ptrType$13, true); - y$9 = _tuple$8[0]; - ok$6 = _tuple$8[1]; - /* */ if (ok$6) { $s = 73; continue; } - /* */ $s = 74; continue; - /* if (ok$6) { */ case 73: - _r$16 = x$9.typeSet(); /* */ $s = 75; case 75: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - xset$1 = _r$16; - _r$17 = y$9.typeSet(); /* */ $s = 76; case 76: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - yset$1 = _r$17; - if (!(xset$1.comparable === yset$1.comparable)) { - $s = -1; return false; + _r$11 = constant.Uint64Val(x); /* */ $s = 23; case 23: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _tuple$4 = _r$11; + v$2 = _tuple$4[0]; + ok$1 = _tuple$4[1]; + if (ok$1) { + $s = -1; return v$2; } - _r$18 = xset$1.terms.equal(yset$1.terms); /* */ $s = 79; case 79: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - /* */ if (!_r$18) { $s = 77; continue; } - /* */ $s = 78; continue; - /* if (!_r$18) { */ case 77: - $s = -1; return false; - /* } */ case 78: - a = xset$1.methods; - b = yset$1.methods; - /* */ if (a.$length === b.$length) { $s = 80; continue; } - /* */ $s = 81; continue; - /* if (a.$length === b.$length) { */ case 80: - q = new ifacePair.ptr(x$9, y$9, p); - while (true) { - if (!(!(p === ptrType$23.nil))) { break; } - if (p.identical(q)) { - $s = -1; return true; - } - p = p.prev; - } - /* */ if (false) { $s = 82; continue; } - /* */ $s = 83; continue; - /* if (false) { */ case 82: - $r = assertSortedMethods(a); /* */ $s = 84; case 84: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = assertSortedMethods(b); /* */ $s = 85; case 85: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 83: - _ref$5 = a; - _i$4 = 0; - /* while (true) { */ case 86: - /* if (!(_i$4 < _ref$5.$length)) { break; } */ if(!(_i$4 < _ref$5.$length)) { $s = 87; continue; } - i$4 = _i$4; - f$1 = ((_i$4 < 0 || _i$4 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$4]); - g$1 = ((i$4 < 0 || i$4 >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i$4]); - if (!(f$1.object.Id() === g$1.object.Id())) { _v$4 = true; $s = 90; continue s; } - _r$19 = identical(f$1.object.typ, g$1.object.typ, cmpTags, q); /* */ $s = 91; case 91: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - _v$4 = !_r$19; case 90: - /* */ if (_v$4) { $s = 88; continue; } - /* */ $s = 89; continue; - /* if (_v$4) { */ case 88: - $s = -1; return false; - /* } */ case 89: - _i$4++; - $s = 86; continue; - case 87: - $s = -1; return true; - /* } */ case 81: - /* } */ case 74: - $s = 16; continue; - /* } else if ($assertType(_ref, ptrType$28, true)[1]) { */ case 10: - x$10 = _ref.$val; - _tuple$9 = $assertType(y, ptrType$28, true); - y$10 = _tuple$9[0]; - ok$7 = _tuple$9[1]; - /* */ if (ok$7) { $s = 92; continue; } - /* */ $s = 93; continue; - /* if (ok$7) { */ case 92: - _r$20 = identical(x$10.key, y$10.key, cmpTags, p); /* */ $s = 95; case 95: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - if (!(_r$20)) { _v$5 = false; $s = 94; continue s; } - _r$21 = identical(x$10.elem, y$10.elem, cmpTags, p); /* */ $s = 96; case 96: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } - _v$5 = _r$21; case 94: - $24r$5 = _v$5; - $s = 97; case 97: return $24r$5; - /* } */ case 93: - $s = 16; continue; - /* } else if ($assertType(_ref, ptrType$29, true)[1]) { */ case 11: - x$11 = _ref.$val; - _tuple$10 = $assertType(y, ptrType$29, true); - y$11 = _tuple$10[0]; - ok$8 = _tuple$10[1]; - /* */ if (ok$8) { $s = 98; continue; } - /* */ $s = 99; continue; - /* if (ok$8) { */ case 98: - if (!(x$11.dir === y$11.dir)) { _v$6 = false; $s = 100; continue s; } - _r$22 = identical(x$11.elem, y$11.elem, cmpTags, p); /* */ $s = 101; case 101: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _v$6 = _r$22; case 100: - $24r$6 = _v$6; - $s = 102; case 102: return $24r$6; - /* } */ case 99: - $s = 16; continue; - /* } else if ($assertType(_ref, ptrType$9, true)[1]) { */ case 12: - x$12 = _ref.$val; - _tuple$11 = $assertType(y, ptrType$9, true); - y$12 = _tuple$11[0]; - ok$9 = _tuple$11[1]; - /* */ if (ok$9) { $s = 103; continue; } - /* */ $s = 104; continue; - /* if (ok$9) { */ case 103: - xargs = x$12.TypeArgs().list(); - yargs = y$12.TypeArgs().list(); - if (!((xargs.$length === yargs.$length))) { - $s = -1; return false; + $s = 8; continue; + /* } else if (_1 === (4)) { */ case 4: + _r$12 = constant.ToInt(x); /* */ $s = 24; case 24: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + i$1 = _r$12; + _r$13 = i$1.Kind(); /* */ $s = 27; case 27: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + /* */ if (!((_r$13 === 3))) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (!((_r$13 === 3))) { */ case 25: + _r$14 = constant.Float64Val(x); /* */ $s = 28; case 28: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _tuple$5 = _r$14; + v = _tuple$5[0]; + $s = -1; return new $Float64(v); + /* } */ case 26: + x = i$1; + _r$15 = constant.Int64Val(x); /* */ $s = 29; case 29: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + _tuple$6 = _r$15; + v$1 = _tuple$6[0]; + ok = _tuple$6[1]; + if (ok) { + $s = -1; return v$1; } - /* */ if (xargs.$length > 0) { $s = 105; continue; } - /* */ $s = 106; continue; - /* if (xargs.$length > 0) { */ case 105: - _r$23 = Identical(x$12.Origin(), y$12.Origin()); /* */ $s = 109; case 109: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - /* */ if (!_r$23) { $s = 107; continue; } - /* */ $s = 108; continue; - /* if (!_r$23) { */ case 107: - $s = -1; return false; - /* } */ case 108: - _ref$6 = xargs; - _i$5 = 0; - /* while (true) { */ case 110: - /* if (!(_i$5 < _ref$6.$length)) { break; } */ if(!(_i$5 < _ref$6.$length)) { $s = 111; continue; } - i$5 = _i$5; - xa = ((_i$5 < 0 || _i$5 >= _ref$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$6.$array[_ref$6.$offset + _i$5]); - _r$24 = Identical(xa, ((i$5 < 0 || i$5 >= yargs.$length) ? ($throwRuntimeError("index out of range"), undefined) : yargs.$array[yargs.$offset + i$5])); /* */ $s = 114; case 114: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - /* */ if (!_r$24) { $s = 112; continue; } - /* */ $s = 113; continue; - /* if (!_r$24) { */ case 112: - $s = -1; return false; - /* } */ case 113: - _i$5++; - $s = 110; continue; - case 111: - $s = -1; return true; - /* } */ case 106: - $s = -1; return x$12.obj === y$12.obj; - /* } */ case 104: - $s = 16; continue; - /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 13: - x$13 = _ref.$val; - $s = 16; continue; - /* } else if (_ref === $ifaceNil) { */ case 14: - x$14 = _ref; - $s = 16; continue; - /* } else { */ case 15: - x$15 = _ref; - unreachable(); - /* } */ case 16: - $s = -1; return false; - /* */ } return; } var $f = {$blk: identical$2, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, _v$2, _v$3, _v$4, _v$5, _v$6, a, b, check, cmpTags, ctxt, f, f$1, g, g$1, i, i$1, i$2, i$3, i$4, i$5, ok, ok$1, ok$2, ok$3, ok$4, ok$5, ok$6, ok$7, ok$8, ok$9, p, q, smap, targs, unionSets, v, w, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9, xa, xargs, xset, xset$1, xtparam, xtparams, y, y$1, y$10, y$11, y$12, y$2, y$3, y$4, y$5, y$6, y$7, y$8, y$9, yargs, ybound, yparams, yresults, yset, yset$1, ytparams, $s};return $f; + _r$16 = constant.Uint64Val(x); /* */ $s = 30; case 30: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + _tuple$7 = _r$16; + v$2 = _tuple$7[0]; + ok$1 = _tuple$7[1]; + if (ok$1) { + $s = -1; return v$2; + } + $s = 8; continue; + /* } else if (_1 === (3)) { */ case 5: + _r$17 = constant.Int64Val(x); /* */ $s = 31; case 31: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + _tuple$8 = _r$17; + v$1 = _tuple$8[0]; + ok = _tuple$8[1]; + if (ok) { + $s = -1; return v$1; + } + _r$18 = constant.Uint64Val(x); /* */ $s = 32; case 32: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + _tuple$9 = _r$18; + v$2 = _tuple$9[0]; + ok$1 = _tuple$9[1]; + if (ok$1) { + $s = -1; return v$2; + } + $s = 8; continue; + /* } else if (_1 === (2)) { */ case 6: + _r$19 = constant.StringVal(x); /* */ $s = 33; case 33: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + $24r = new $String(_r$19); + $s = 34; case 34: return $24r; + /* } else if (_1 === (1)) { */ case 7: + _r$20 = constant.BoolVal(x); /* */ $s = 35; case 35: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + $24r$1 = new $Bool(_r$20); + $s = 36; case 36: return $24r$1; + /* } */ case 8: + case 1: + $s = -1; return x; + /* */ } return; } var $f = {$blk: keyVal$1, $c: true, $r, $24r, $24r$1, _1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, f, i, i$1, ok, ok$1, r, v, v$1, v$2, x, $s};return $f; }; - identicalInstance = function identicalInstance$1(xorig, xargs, yorig, yargs) { - var {$24r, _i, _r$1, _r$2, _ref, i, xa, xargs, xorig, yargs, yorig, $s, $r, $c} = $restore(this, {xorig, xargs, yorig, yargs}); + $ptrType(Checker).prototype.typeAssertion = function typeAssertion(e, x, T, typeSwitch) { + var {T, _r, cause, check, e, typeSwitch, x, $s, $r, $c} = $restore(this, {e, x, T, typeSwitch}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (!((xargs.$length === yargs.$length))) { - $s = -1; return false; - } - _ref = xargs; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - xa = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$1 = Identical(xa, ((i < 0 || i >= yargs.$length) ? ($throwRuntimeError("index out of range"), undefined) : yargs.$array[yargs.$offset + i])); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (!_r$1) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!_r$1) { */ case 3: - $s = -1; return false; - /* } */ case 4: - _i++; - $s = 1; continue; - case 2: - _r$2 = Identical(xorig, yorig); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 7; case 7: return $24r; - /* */ } return; } var $f = {$blk: identicalInstance$1, $c: true, $r, $24r, _i, _r$1, _r$2, _ref, i, xa, xargs, xorig, yargs, yorig, $s};return $f; - }; - Default = function Default$1(t) { - var _1, _tuple, ok, t, t$1; - _tuple = $assertType(t, ptrType$8, true); - t$1 = _tuple[0]; - ok = _tuple[1]; - if (ok) { - _1 = t$1.kind; - if (_1 === (19)) { - return (1 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 1]); - } else if (_1 === (20)) { - return (2 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 2]); - } else if (_1 === (21)) { - return universeRune; - } else if (_1 === (22)) { - return (14 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 14]); - } else if (_1 === (23)) { - return (16 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 16]); - } else if (_1 === (24)) { - return (17 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 17]); - } - } - return t; - }; - $pkg.Default = Default; - NewPointer = function NewPointer$1(elem) { - var elem; - return new Pointer.ptr(elem); - }; - $pkg.NewPointer = NewPointer; - $ptrType(Pointer).prototype.Elem = function Elem$1() { - var p; - p = this; - return p.base; - }; - $ptrType(Pointer).prototype.Underlying = function Underlying$6() { - var t; - t = this; - return t; + cause = [cause]; + check = this; + cause[0] = ""; + _r = check.assertableTo(x.typ, T, (cause.$ptr || (cause.$ptr = new ptrType$35(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, cause)))); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r) { */ case 1: + $s = -1; return; + /* } */ case 2: + /* */ if (typeSwitch) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (typeSwitch) { */ case 4: + $r = check.errorf(e, 95, "impossible type switch case: %s\n\t%s cannot have dynamic type %s %s", new sliceType$5([e, x, T, new $String(cause[0])])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 5: + $r = check.errorf(e, 95, "impossible type assertion: %s\n\t%s does not implement %s %s", new sliceType$5([e, T, x.typ, new $String(cause[0])])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: typeAssertion, $c: true, $r, T, _r, cause, check, e, typeSwitch, x, $s};return $f; }; - $ptrType(Pointer).prototype.String = function String$14() { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); + $ptrType(Checker).prototype.expr = function expr(T, x, e) { + var {T, _r, check, e, x, $s, $r, $c} = $restore(this, {T, x, e}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = TypeString(t, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$14, $c: true, $r, $24r, _r$1, t, $s};return $f; + check = this; + _r = check.rawExpr(T, x, e, $ifaceNil, false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + $r = check.exclude(x, 14); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.singleValue(x); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: expr, $c: true, $r, T, _r, check, e, x, $s};return $f; }; - NewPackage = function NewPackage$1(path, name) { - var {_arg, _arg$1, _r$1, _r$2, name, path, scope, $s, $r, $c} = $restore(this, {path, name}); + $ptrType(Checker).prototype.genericExpr = function genericExpr(x, e) { + var {_r, check, e, x, $s, $r, $c} = $restore(this, {x, e}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _arg = $pkg.Universe; - _r$1 = fmt.Sprintf("package %q", new sliceType$6([new $String(path)])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _arg$1 = _r$1; - _r$2 = NewScope(_arg, 0, 0, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - scope = _r$2; - $s = -1; return new Package.ptr(path, name, scope, false, sliceType$24.nil, false, false); - /* */ } return; } var $f = {$blk: NewPackage$1, $c: true, $r, _arg, _arg$1, _r$1, _r$2, name, path, scope, $s};return $f; - }; - $pkg.NewPackage = NewPackage; - $ptrType(Package).prototype.Path = function Path() { - var pkg; - pkg = this; - return pkg.path; - }; - $ptrType(Package).prototype.Name = function Name$1() { - var pkg; - pkg = this; - return pkg.name; - }; - $ptrType(Package).prototype.SetName = function SetName(name) { - var name, pkg; - pkg = this; - pkg.name = name; + check = this; + _r = check.rawExpr($ifaceNil, x, e, $ifaceNil, true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + $r = check.exclude(x, 14); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.singleValue(x); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: genericExpr, $c: true, $r, _r, check, e, x, $s};return $f; }; - $ptrType(Package).prototype.Scope = function Scope$1() { - var pkg; - pkg = this; - if (!(pkg === ptrType$1.nil)) { - return pkg.scope; + $ptrType(Checker).prototype.multiExpr = function multiExpr(e, allowCommaOk) { + var {_i, _r, _ref, _tuple, allowCommaOk, check, commaOk, e, i, list$2, ok, t, v, x, x2, $s, $r, $c} = $restore(this, {e, allowCommaOk}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = [x]; + list$2 = sliceType$29.nil; + commaOk = false; + check = this; + x[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + _r = check.rawExpr($ifaceNil, x[0], e, $ifaceNil, false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + $r = check.exclude(x[0], 14); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tuple = $assertType(x[0].typ, ptrType$16, true); + t = _tuple[0]; + ok = _tuple[1]; + if (ok && !((x[0].mode === 0))) { + list$2 = $makeSlice(sliceType$29, t.Len()); + _ref = t.vars; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + ((i < 0 || i >= list$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : list$2.$array[list$2.$offset + i] = new operand.ptr(7, e, v.object.typ, $ifaceNil, 0)); + _i++; + } + $s = -1; return [list$2, commaOk]; } - return $pkg.Universe; - }; - $ptrType(Package).prototype.Complete = function Complete() { - var pkg; - pkg = this; - return pkg.complete; - }; - $ptrType(Package).prototype.MarkComplete = function MarkComplete() { - var pkg; - pkg = this; - pkg.complete = true; - }; - $ptrType(Package).prototype.Imports = function Imports() { - var pkg; - pkg = this; - return pkg.imports; - }; - $ptrType(Package).prototype.SetImports = function SetImports(list$2) { - var list$2, pkg; - pkg = this; - pkg.imports = list$2; + list$2 = new sliceType$29([x[0]]); + if (allowCommaOk && ((x[0].mode === 6) || (x[0].mode === 8) || (x[0].mode === 9))) { + x2 = new operand.ptr(7, e, (19 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 19]), $ifaceNil, 0); + if (x[0].mode === 9) { + x2.typ = universeError; + } + list$2 = $append(list$2, x2); + commaOk = true; + } + $s = -1; return [list$2, commaOk]; + /* */ } return; } var $f = {$blk: multiExpr, $c: true, $r, _i, _r, _ref, _tuple, allowCommaOk, check, commaOk, e, i, list$2, ok, t, v, x, x2, $s};return $f; }; - $ptrType(Package).prototype.String = function String$15() { - var {$24r, _r$1, pkg, $s, $r, $c} = $restore(this, {}); + $ptrType(Checker).prototype.exprWithHint = function exprWithHint(x, e, hint) { + var {_r, check, e, hint, x, $s, $r, $c} = $restore(this, {x, e, hint}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - pkg = this; - _r$1 = fmt.Sprintf("package %s (%q)", new sliceType$6([new $String(pkg.name), new $String(pkg.path)])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$15, $c: true, $r, $24r, _r$1, pkg, $s};return $f; + check = this; + $r = assert(!($interfaceIsEqual(hint, $ifaceNil))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r = check.rawExpr($ifaceNil, x, e, hint, false); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + $r = check.exclude(x, 14); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.singleValue(x); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: exprWithHint, $c: true, $r, _r, check, e, hint, x, $s};return $f; }; - $ptrType(operand).prototype.Pos = function Pos$2() { - var {$24r, _r$1, x, $s, $r, $c} = $restore(this, {}); + $ptrType(Checker).prototype.exprOrType = function exprOrType(x, e, allowGeneric) { + var {_r, allowGeneric, check, e, x, $s, $r, $c} = $restore(this, {x, e, allowGeneric}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - if ($interfaceIsEqual(x.expr, $ifaceNil)) { - $s = -1; return 0; - } - _r$1 = x.expr.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Pos$2, $c: true, $r, $24r, _r$1, x, $s};return $f; + check = this; + _r = check.rawExpr($ifaceNil, x, e, $ifaceNil, allowGeneric); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + $r = check.exclude(x, 2); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.singleValue(x); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: exprOrType, $c: true, $r, _r, allowGeneric, check, e, x, $s};return $f; }; - operandString = function operandString$1(x, qf) { - var {_1, _2, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, buf, expr, hasType, intro, qf, s, tpar, x, x$1, x$2, $s, $r, $c} = $restore(this, {x, qf}); + $ptrType(Checker).prototype.exclude = function exclude(x, modeset) { + var {_1, check, code, modeset, msg, x, y, $s, $r, $c} = $restore(this, {x, modeset}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - buf = [buf]; - if ((x.mode === 7) && $interfaceIsEqual(x.typ, (25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25]))) { - $s = -1; return "nil"; - } - buf[0] = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); - expr = ""; - /* */ if (!($interfaceIsEqual(x.expr, $ifaceNil))) { $s = 1; continue; } + check = this; + /* */ if (!((((modeset & (((y = x.mode, y < 32 ? (1 << y) : 0) >>> 0))) >>> 0) === 0))) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (!($interfaceIsEqual(x.expr, $ifaceNil))) { */ case 1: - _r$1 = ExprString(x.expr); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - expr = _r$1; - $s = 3; continue; - /* } else { */ case 2: - _1 = x.mode; - /* */ if (_1 === (2)) { $s = 6; continue; } - /* */ if (_1 === (3)) { $s = 7; continue; } - /* */ if (_1 === (4)) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (_1 === (2)) { */ case 6: - expr = (x$1 = x.id, ((x$1 < 0 || x$1 >= predeclaredFuncs.length) ? ($throwRuntimeError("index out of range"), undefined) : predeclaredFuncs[x$1])).name; - $s = 9; continue; - /* } else if (_1 === (3)) { */ case 7: - _r$2 = TypeString(x.typ, qf); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - expr = _r$2; - $s = 9; continue; - /* } else if (_1 === (4)) { */ case 8: - _r$3 = x.val.String(); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - expr = _r$3; - /* } */ case 9: - case 5: - /* } */ case 3: - if (!(expr === "")) { - buf[0].WriteString(expr); - buf[0].WriteString(" ("); - } - hasType = false; - switch (0) { default: - _2 = x.mode; - if ((_2 === (0)) || (_2 === (1)) || (_2 === (2)) || (_2 === (3))) { - } else if (!($interfaceIsEqual(x.typ, $ifaceNil))) { - if (isUntyped(x.typ)) { - buf[0].WriteString($assertType(x.typ, ptrType$8).name); - buf[0].WriteByte(32); - break; + /* if (!((((modeset & (((y = x.mode, y < 32 ? (1 << y) : 0) >>> 0))) >>> 0) === 0))) { */ case 1: + msg = ""; + code = 0; + _1 = x.mode; + if (_1 === (1)) { + if (!((((modeset & 8) >>> 0) === 0))) { + msg = "%s used as value"; + } else { + msg = "%s used as value or type"; } - hasType = true; - } - } - buf[0].WriteString((x$2 = x.mode, ((x$2 < 0 || x$2 >= operandModeString.length) ? ($throwRuntimeError("index out of range"), undefined) : operandModeString[x$2]))); - /* */ if (x.mode === 4) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (x.mode === 4) { */ case 12: - _r$4 = x.val.String(); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - s = _r$4; - if (!(s === expr)) { - buf[0].WriteByte(32); - buf[0].WriteString(s); + code = 41; + } else if (_1 === (2)) { + msg = "%s must be called"; + code = 82; + } else if (_1 === (3)) { + msg = "%s is not an expression"; + code = 42; + } else { + unreachable(); } - /* } */ case 13: - /* */ if (hasType) { $s = 15; continue; } - /* */ $s = 16; continue; - /* if (hasType) { */ case 15: - /* */ if (!($interfaceIsEqual(x.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (!($interfaceIsEqual(x.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { */ case 17: - intro = ""; - _r$5 = isGeneric(x.typ); /* */ $s = 23; case 23: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* */ if (_r$5) { $s = 20; continue; } - /* */ $s = 21; continue; - /* if (_r$5) { */ case 20: - intro = " of generic type "; - $s = 22; continue; - /* } else { */ case 21: - intro = " of type "; - /* } */ case 22: - buf[0].WriteString(intro); - $r = WriteType(buf[0], x.typ, qf); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _tuple = $assertType(x.typ, ptrType$14, true); - tpar = _tuple[0]; - /* */ if (!(tpar === ptrType$14.nil)) { $s = 25; continue; } - /* */ $s = 26; continue; - /* if (!(tpar === ptrType$14.nil)) { */ case 25: - buf[0].WriteString(" constrained by "); - $r = WriteType(buf[0], tpar.bound, qf); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$6 = hasEmptyTypeset(tpar); /* */ $s = 30; case 30: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - /* */ if (_r$6) { $s = 28; continue; } - /* */ $s = 29; continue; - /* if (_r$6) { */ case 28: - buf[0].WriteString(" with empty type set"); - /* } */ case 29: - /* } */ case 26: - $s = 19; continue; - /* } else { */ case 18: - buf[0].WriteString(" with invalid type"); - /* } */ case 19: - /* } */ case 16: - if (!(expr === "")) { - buf[0].WriteByte(41); - } - $s = -1; return buf[0].String(); - /* */ } return; } var $f = {$blk: operandString$1, $c: true, $r, _1, _2, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, buf, expr, hasType, intro, qf, s, tpar, x, x$1, x$2, $s};return $f; + $r = check.errorf(x, code, msg, new sliceType$5([x])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: exclude, $c: true, $r, _1, check, code, modeset, msg, x, y, $s};return $f; }; - $ptrType(operand).prototype.String = function String$16() { - var {$24r, _r$1, x, $s, $r, $c} = $restore(this, {}); + $ptrType(Checker).prototype.singleValue = function singleValue(x) { + var {_tuple, check, ok, t, x, $s, $r, $c} = $restore(this, {x}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - _r$1 = operandString(x, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$16, $c: true, $r, $24r, _r$1, x, $s};return $f; + check = this; + /* */ if (x.mode === 7) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (x.mode === 7) { */ case 1: + _tuple = $assertType(x.typ, ptrType$16, true); + t = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (ok) { */ case 3: + $r = assert(!((t.Len() === 1))); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.errorf(x, 41, "multiple-value %s in single-value context", new sliceType$5([x])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + /* } */ case 4: + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: singleValue, $c: true, $r, _tuple, check, ok, t, x, $s};return $f; }; - $ptrType(operand).prototype.setConst = function setConst(tok, lit) { - var {_1, _r$1, _r$2, kind, lit, tok, val, x, $s, $r, $c} = $restore(this, {tok, lit}); + assert = function assert$1(p) { + var {_r, _tuple, file, line, msg, ok, p, $s, $r, $c} = $restore(this, {p}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - kind = 0; - _1 = tok; - if (_1 === (5)) { - kind = 20; - } else if (_1 === (6)) { - kind = 22; - } else if (_1 === (7)) { - kind = 23; - } else if (_1 === (8)) { - kind = 21; - } else if (_1 === (9)) { - kind = 24; - } else { - unreachable(); - } - _r$1 = constant.MakeFromLiteral(lit, tok, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - val = _r$1; - _r$2 = val.Kind(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (_r$2 === 0) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (_r$2 === 0) { */ case 2: - x.mode = 0; - x.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - $s = -1; return; - /* } */ case 3: - x.mode = 4; - x.typ = ((kind < 0 || kind >= $pkg.Typ.$length) ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + kind]); - x.val = val; + /* */ if (!p) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!p) { */ case 1: + msg = "assertion failed"; + _tuple = runtime.Caller(1); + file = _tuple[1]; + line = _tuple[2]; + ok = _tuple[3]; + /* */ if (ok) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (ok) { */ case 3: + _r = fmt.Sprintf("%s:%d: %s", new sliceType$5([new $String(file), new $Int(line), new $String(msg)])); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + msg = _r; + /* } */ case 4: + $panic(new $String(msg)); + /* } */ case 2: $s = -1; return; - /* */ } return; } var $f = {$blk: setConst, $c: true, $r, _1, _r$1, _r$2, kind, lit, tok, val, x, $s};return $f; + /* */ } return; } var $f = {$blk: assert$1, $c: true, $r, _r, _tuple, file, line, msg, ok, p, $s};return $f; }; - $ptrType(operand).prototype.isNil = function isNil$1() { - var x; - x = this; - return (x.mode === 7) && $interfaceIsEqual(x.typ, (25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25])); + unreachable = function unreachable$1() { + $panic(new $String("unreachable")); }; - $ptrType(operand).prototype.assignableTo = function assignableTo(check, T, cause) { - var {$24r, T, Tc, Tp, Tu, V, Vc, Vi, Vp, Vu, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _v, _v$1, cause, check, code, code$1, errorf, newType, ok, ok$1, ok$2, ok$3, ok$4, x, x$1, $s, $r, $c} = $restore(this, {check, T, cause}); + $ptrType(error_).prototype.empty = function empty$1() { + var err; + err = this; + return err.desc === sliceType$31.nil; + }; + $ptrType(error_).prototype.pos = function pos() { + var {$24r, _r, err, x, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - T = [T]; - Tp = [Tp]; - Vp = [Vp]; - cause = [cause]; - check = [check]; - code = [code]; - code$1 = [code$1]; - errorf = [errorf]; - ok = [ok]; - ok$1 = [ok$1]; - x = [x]; - x$1 = [x$1]; - x[0] = this; - if ((x[0].mode === 0) || $interfaceIsEqual(T[0], (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { - $s = -1; return [true, 0]; + err = this; + if (err.empty()) { + $s = -1; return nopos; } - V = x[0].typ; - _r$1 = Identical(V, T[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (_r$1) { */ case 1: - $s = -1; return [true, 0]; - /* } */ case 2: - _r$2 = under(V); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - Vu = _r$2; - _r$3 = under(T[0]); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - Tu = _r$3; - _tuple = $assertType(V, ptrType$14, true); - Vp[0] = _tuple[0]; - _tuple$1 = $assertType(T[0], ptrType$14, true); - Tp[0] = _tuple$1[0]; - /* */ if (isUntyped(Vu)) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (isUntyped(Vu)) { */ case 6: - $r = assert(Vp[0] === ptrType$14.nil); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!(Tp[0] === ptrType$14.nil)) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (!(Tp[0] === ptrType$14.nil)) { */ case 9: - _r$4 = Tp[0].is((function(T, Tp, Vp, cause, check, code, code$1, errorf, ok, ok$1, x, x$1) { return function operand·assignableTo·func1(t) { - var {_r$4, _tuple$2, newType, t, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (t === ptrType$4.nil) { - $s = -1; return false; - } - _r$4 = check[0].implicitTypeAndValue(x[0], t.typ); /* */ $s = 1; case 1: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _tuple$2 = _r$4; - newType = _tuple$2[0]; - $s = -1; return !($interfaceIsEqual(newType, $ifaceNil)); - /* */ } return; } var $f = {$blk: operand·assignableTo·func1, $c: true, $r, _r$4, _tuple$2, newType, t, $s};return $f; - }; })(T, Tp, Vp, cause, check, code, code$1, errorf, ok, ok$1, x, x$1)); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $24r = [_r$4, 23]; - $s = 12; case 12: return $24r; - /* } */ case 10: - _r$5 = check[0].implicitTypeAndValue(x[0], T[0]); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _tuple$2 = _r$5; - newType = _tuple$2[0]; - $s = -1; return [!($interfaceIsEqual(newType, $ifaceNil)), 23]; - /* } */ case 7: - _r$6 = Identical(Vu, Tu); /* */ $s = 16; case 16: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - /* */ if (_r$6 && (!hasName(V) || !hasName(T[0])) && Vp[0] === ptrType$14.nil && Tp[0] === ptrType$14.nil) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (_r$6 && (!hasName(V) || !hasName(T[0])) && Vp[0] === ptrType$14.nil && Tp[0] === ptrType$14.nil) { */ case 14: - $s = -1; return [true, 0]; - /* } */ case 15: - _tuple$3 = $assertType(Tu, ptrType$13, true); - ok$2 = _tuple$3[1]; - if (ok$2 && Tp[0] === ptrType$14.nil) { _v = true; $s = 19; continue s; } - _r$7 = isInterfacePtr(Tu); /* */ $s = 20; case 20: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _v = _r$7; case 19: - /* */ if (_v) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (_v) { */ case 17: - _r$8 = check[0].implements$(V, T[0], false, cause[0]); /* */ $s = 23; case 23: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - /* */ if (!_r$8) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if (!_r$8) { */ case 21: - $s = -1; return [false, 21]; - /* } */ case 22: - $s = -1; return [true, 0]; - /* } */ case 18: - _tuple$4 = $assertType(Vu, ptrType$13, true); - Vi = _tuple$4[0]; - /* */ if (!(Vi === ptrType$13.nil) && Vp[0] === ptrType$14.nil) { $s = 24; continue; } - /* */ $s = 25; continue; - /* if (!(Vi === ptrType$13.nil) && Vp[0] === ptrType$14.nil) { */ case 24: - _r$9 = check[0].implements$(T[0], V, false, ptrType$34.nil); /* */ $s = 28; case 28: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - /* */ if (_r$9) { $s = 26; continue; } - /* */ $s = 27; continue; - /* if (_r$9) { */ case 26: - if (!(cause[0] === ptrType$34.nil)) { - cause[0].$set("need type assertion"); - } - $s = -1; return [false, 23]; - /* } */ case 27: - /* } */ case 25: - _tuple$5 = $assertType(Vu, ptrType$29, true); - Vc = _tuple$5[0]; - ok$3 = _tuple$5[1]; - /* */ if (ok$3 && (Vc.dir === 0)) { $s = 29; continue; } - /* */ $s = 30; continue; - /* if (ok$3 && (Vc.dir === 0)) { */ case 29: - _tuple$6 = $assertType(Tu, ptrType$29, true); - Tc = _tuple$6[0]; - ok$4 = _tuple$6[1]; - if (!(ok$4)) { _v$1 = false; $s = 33; continue s; } - _r$10 = Identical(Vc.elem, Tc.elem); /* */ $s = 34; case 34: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _v$1 = _r$10; case 33: - /* */ if (_v$1) { $s = 31; continue; } - /* */ $s = 32; continue; - /* if (_v$1) { */ case 31: - $s = -1; return [!hasName(V) || !hasName(T[0]), 22]; - /* } */ case 32: - /* } */ case 30: - if (Vp[0] === ptrType$14.nil && Tp[0] === ptrType$14.nil) { - $s = -1; return [false, 23]; + _r = (x = err.desc, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).posn.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: pos, $c: true, $r, $24r, _r, err, x, $s};return $f; + }; + $ptrType(error_).prototype.msg = function msg(fset, qf) { + var {_arg, _arg$1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, buf, err, fset, i, p, qf, x, x$1, $s, $r, $c} = $restore(this, {fset, qf}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + buf = [buf]; + err = this; + if (err.empty()) { + $s = -1; return "no error"; } - errorf[0] = (function(T, Tp, Vp, cause, check, code, code$1, errorf, ok, ok$1, x, x$1) { return function operand·assignableTo·func2(format, args) { - var {_r$11, args, format, msg, $s, $r, $c} = $restore(this, {format, args}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - /* */ if (!(check[0] === ptrType$5.nil) && !(cause[0] === ptrType$34.nil)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(check[0] === ptrType$5.nil) && !(cause[0] === ptrType$34.nil)) { */ case 1: - _r$11 = check[0].sprintf(format, args); /* */ $s = 3; case 3: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - msg = _r$11; - if (!(cause[0].$get() === "")) { - msg = msg + ("\n\t" + cause[0].$get()); - } - cause[0].$set(msg); - /* } */ case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: operand·assignableTo·func2, $c: true, $r, _r$11, args, format, msg, $s};return $f; - }; })(T, Tp, Vp, cause, check, code, code$1, errorf, ok, ok$1, x, x$1); - /* */ if (!hasName(V) && !(Tp[0] === ptrType$14.nil)) { $s = 35; continue; } - /* */ $s = 36; continue; - /* if (!hasName(V) && !(Tp[0] === ptrType$14.nil)) { */ case 35: - ok[0] = false; - code[0] = 23; - _r$11 = Tp[0].is((function(T, Tp, Vp, cause, check, code, code$1, errorf, ok, ok$1, x, x$1) { return function operand·assignableTo·func3(T$1) { - var {T$1, _r$11, _tuple$7, $s, $r, $c} = $restore(this, {T$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (T$1 === ptrType$4.nil) { - $s = -1; return false; - } - _r$11 = x[0].assignableTo(check[0], T$1.typ, cause[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _tuple$7 = _r$11; - ok[0] = _tuple$7[0]; - code[0] = _tuple$7[1]; - /* */ if (!ok[0]) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!ok[0]) { */ case 2: - $r = errorf[0]("cannot assign %s to %s (in %s)", new sliceType$6([x[0].typ, T$1.typ, Tp[0]])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return false; - /* } */ case 3: - $s = -1; return true; - /* */ } return; } var $f = {$blk: operand·assignableTo·func3, $c: true, $r, T$1, _r$11, _tuple$7, $s};return $f; - }; })(T, Tp, Vp, cause, check, code, code$1, errorf, ok, ok$1, x, x$1)); /* */ $s = 37; case 37: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _r$11; - $s = -1; return [ok[0], code[0]]; - /* } */ case 36: - /* */ if (!(Vp[0] === ptrType$14.nil) && !hasName(T[0])) { $s = 38; continue; } - /* */ $s = 39; continue; - /* if (!(Vp[0] === ptrType$14.nil) && !hasName(T[0])) { */ case 38: - x$1[0] = $clone(x[0], operand); - ok$1[0] = false; - code$1[0] = 23; - _r$12 = Vp[0].is((function(T, Tp, Vp, cause, check, code, code$1, errorf, ok, ok$1, x, x$1) { return function operand·assignableTo·func4(V$1) { - var {V$1, _r$12, _tuple$7, $s, $r, $c} = $restore(this, {V$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (V$1 === ptrType$4.nil) { - $s = -1; return false; - } - x$1[0].typ = V$1.typ; - _r$12 = x$1[0].assignableTo(check[0], T[0], cause[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _tuple$7 = _r$12; - ok$1[0] = _tuple$7[0]; - code$1[0] = _tuple$7[1]; - /* */ if (!ok$1[0]) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!ok$1[0]) { */ case 2: - $r = errorf[0]("cannot assign %s (in %s) to %s", new sliceType$6([V$1.typ, Vp[0], T[0]])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return false; - /* } */ case 3: - $s = -1; return true; - /* */ } return; } var $f = {$blk: operand·assignableTo·func4, $c: true, $r, V$1, _r$12, _tuple$7, $s};return $f; - }; })(T, Tp, Vp, cause, check, code, code$1, errorf, ok, ok$1, x, x$1)); /* */ $s = 40; case 40: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _r$12; - $s = -1; return [ok$1[0], code$1[0]]; - /* } */ case 39: - $s = -1; return [false, 23]; - /* */ } return; } var $f = {$blk: assignableTo, $c: true, $r, $24r, T, Tc, Tp, Tu, V, Vc, Vi, Vp, Vu, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _v, _v$1, cause, check, code, code$1, errorf, newType, ok, ok$1, ok$2, ok$3, ok$4, x, x$1, $s};return $f; + buf[0] = new strings.Builder.ptr(ptrType$54.nil, sliceType$12.nil); + _ref = err.desc; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + p = (x = err.desc, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + i, ptrType$108))); + /* */ if (i > 0) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (i > 0) { */ case 3: + _r = fmt.Fprint(buf[0], new sliceType$5([new $String("\n\t")])); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + _r$1 = p.posn.Pos(); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = new token.Pos(_r$1).IsValid(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (_r$2) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (_r$2) { */ case 6: + _arg = buf[0]; + _r$3 = p.posn.Pos(); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$4 = fset.Position(_r$3); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _arg$1 = (x$1 = _r$4, new x$1.constructor.elem(x$1)); + _r$5 = fmt.Fprintf(_arg, "%s: ", new sliceType$5([_arg$1])); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$5; + /* } */ case 7: + /* } */ case 4: + _r$6 = sprintf(fset, qf, false, p.format, p.args); /* */ $s = 13; case 13: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$7 = buf[0].WriteString(_r$6); /* */ $s = 14; case 14: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$7; + _i++; + $s = 1; continue; + case 2: + $s = -1; return buf[0].String(); + /* */ } return; } var $f = {$blk: msg, $c: true, $r, _arg, _arg$1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, buf, err, fset, i, p, qf, x, x$1, $s};return $f; }; - $ptrType(objset).prototype.insert = function insert$1(obj) { - var {_entry, _key, _r$1, alt, id, obj, s, $s, $r, $c} = $restore(this, {obj}); + $ptrType(error_).prototype.String = function String$33() { + var {$24r, _arg, _arg$1, _r, _r$1, _r$2, err, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - s = this; - _r$1 = obj.Id(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - id = _r$1; - alt = (_entry = $mapIndex((s.$get()),$String.keyFor(id)), _entry !== undefined ? _entry.v : $ifaceNil); - if (!($interfaceIsEqual(alt, $ifaceNil))) { - $s = -1; return alt; + err = this; + if (err.empty()) { + $s = -1; return "no error"; } - if (s.$get() === false) { - s.$set(new $global.Map()); + _r = err.pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg = new token.Pos(_r); + _r$1 = err.msg(ptrType$25.nil, $throwNilPointerError); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg$1 = new $String(_r$1); + _r$2 = fmt.Sprintf("%d: %s", new sliceType$5([_arg, _arg$1])); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 4; case 4: return $24r; + /* */ } return; } var $f = {$blk: String$33, $c: true, $r, $24r, _arg, _arg$1, _r, _r$1, _r$2, err, $s};return $f; + }; + $ptrType(error_).prototype.errorf = function errorf(at$1, format, args) { + var args, at$1, err, format; + err = this; + err.desc = $append(err.desc, new errorDesc.ptr(new atPos(((at$1 >> 0))), format, args)); + }; + $ptrType(Checker).prototype.qualifier = function qualifier(pkg) { + var _entry, _entry$1, check, pkg; + check = this; + if (!(pkg === check.pkg)) { + if (check.pkgPathMap === false) { + check.pkgPathMap = new $global.Map(); + check.seenPkgMap = new $global.Map(); + check.markImports(check.pkg); + } + if (((_entry = $mapIndex(check.pkgPathMap,$String.keyFor(pkg.name)), _entry !== undefined ? _entry.v : false) ? (_entry$1 = $mapIndex(check.pkgPathMap,$String.keyFor(pkg.name)), _entry$1 !== undefined ? _entry$1.v : false).size : 0) > 1) { + return strconv.Quote(pkg.path); + } + return pkg.name; } - _key = id; (s.$get() || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: obj }); - $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: insert$1, $c: true, $r, _entry, _key, _r$1, alt, id, obj, s, $s};return $f; + return ""; }; - Id = function Id$2(pkg, name) { - var name, path, pkg; - if (token.IsExported(name)) { - return name; + $ptrType(Checker).prototype.markImports = function markImports(pkg) { + var _entry, _entry$1, _i, _key, _key$1, _key$2, _ref, _tuple, check, forName, imp, ok, pkg; + check = this; + if ((_entry = $mapIndex(check.seenPkgMap,ptrType$1.keyFor(pkg)), _entry !== undefined ? _entry.v : false)) { + return; } - path = "_"; - if (!(pkg === ptrType$1.nil) && !(pkg.path === "")) { - path = pkg.path; + _key = pkg; (check.seenPkgMap || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$1.keyFor(_key), { k: _key, v: true }); + _tuple = (_entry$1 = $mapIndex(check.pkgPathMap,$String.keyFor(pkg.name)), _entry$1 !== undefined ? [_entry$1.v, true] : [false, false]); + forName = _tuple[0]; + ok = _tuple[1]; + if (!ok) { + forName = new $global.Map(); + _key$1 = pkg.name; (check.pkgPathMap || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$1), { k: _key$1, v: forName }); } - return path + "." + name; - }; - $pkg.Id = Id; - color.prototype.String = function String$17() { - var _1, c; - c = this.$val; - _1 = c; - if (_1 === (0)) { - return "white"; - } else if (_1 === (1)) { - return "black"; - } else { - return "grey"; + _key$2 = pkg.path; (forName || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$2), { k: _key$2, v: true }); + _ref = pkg.imports; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + imp = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + check.markImports(imp); + _i++; } }; - $ptrType(color).prototype.String = function(...$args) { return new color(this.$get()).String(...$args); }; - colorFor = function colorFor$1(t) { - var t; - if (!($interfaceIsEqual(t, $ifaceNil))) { - return 1; + $ptrType(Checker).prototype.sprintf = function sprintf$1(format, args) { + var {$24r, _r, args, check, format, fset, qf, $s, $r, $c} = $restore(this, {format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + fset = ptrType$25.nil; + qf = $throwNilPointerError; + if (!(check === ptrType$6.nil)) { + fset = check.fset; + qf = $methodVal(check, "qualifier"); } - return 0; - }; - $ptrType(object).prototype.Parent = function Parent$2() { - var obj; - obj = this; - return obj.parent; - }; - $ptrType(object).prototype.Pos = function Pos$3() { - var obj; - obj = this; - return obj.pos; - }; - $ptrType(object).prototype.Pkg = function Pkg$1() { - var obj; - obj = this; - return obj.pkg; - }; - $ptrType(object).prototype.Name = function Name$2() { - var obj; - obj = this; - return obj.name; - }; - $ptrType(object).prototype.Type = function Type$4() { - var obj; - obj = this; - return obj.typ; - }; - $ptrType(object).prototype.Exported = function Exported$1() { - var obj; - obj = this; - return token.IsExported(obj.name); - }; - $ptrType(object).prototype.Id = function Id$3() { - var obj; - obj = this; - return Id(obj.pkg, obj.name); - }; - $ptrType(object).prototype.String = function String$18() { - var obj; - obj = this; - $panic(new $String("abstract")); - }; - $ptrType(object).prototype.order = function order$1() { - var obj; - obj = this; - return obj.order_; - }; - $ptrType(object).prototype.color = function color$2() { - var obj; - obj = this; - return obj.color_; - }; - $ptrType(object).prototype.scopePos = function scopePos$1() { - var obj; - obj = this; - return obj.scopePos_; + _r = sprintf(fset, qf, false, format, args); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: sprintf$1, $c: true, $r, $24r, _r, args, check, format, fset, qf, $s};return $f; }; - $ptrType(object).prototype.setParent = function setParent$1(parent) { - var obj, parent; - obj = this; - obj.parent = parent; + sprintf = function sprintf$2(fset, qf, tpSubscripts, format, args) { + var {$24r, _i, _i$1, _i$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _ref$2, _ref$3, a, a$1, a$2, a$3, a$4, a$5, a$6, a$7, a$8, a$9, arg, args, buf, buf$1, buf$2, buf$3, format, fset, i, i$1, i$2, qf, tpSubscripts, w, w$1, w$2, x, x$1, $s, $r, $c} = $restore(this, {fset, qf, tpSubscripts, format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref = args; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + buf = [buf]; + buf$1 = [buf$1]; + buf$2 = [buf$2]; + buf$3 = [buf$3]; + i = _i; + arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _ref$1 = arg; + /* */ if (_ref$1 === $ifaceNil) { $s = 3; continue; } + /* */ if ($assertType(_ref$1, operand, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref$1, ptrType$63, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref$1, token.Pos, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref$1, ast.Expr, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref$1, sliceType$10, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref$1, Object, true)[1]) { $s = 9; continue; } + /* */ if ($assertType(_ref$1, Type, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref$1, sliceType$3, true)[1]) { $s = 11; continue; } + /* */ if ($assertType(_ref$1, sliceType$8, true)[1]) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (_ref$1 === $ifaceNil) { */ case 3: + a = _ref$1; + arg = new $String(""); + $s = 13; continue; + /* } else if ($assertType(_ref$1, operand, true)[1]) { */ case 4: + a$1 = $clone(_ref$1.$val, operand); + $panic(new $String("got operand instead of *operand")); + $s = 13; continue; + /* } else if ($assertType(_ref$1, ptrType$63, true)[1]) { */ case 5: + a$2 = _ref$1.$val; + _r = operandString(a$2, qf); /* */ $s = 14; case 14: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + arg = new $String(_r); + $s = 13; continue; + /* } else if ($assertType(_ref$1, token.Pos, true)[1]) { */ case 6: + a$3 = _ref$1.$val; + /* */ if (!(fset === ptrType$25.nil)) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (!(fset === ptrType$25.nil)) { */ case 15: + _r$1 = fset.Position(a$3); /* */ $s = 17; case 17: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = $clone(_r$1, token.Position).String(); /* */ $s = 18; case 18: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + arg = new $String(_r$2); + /* } */ case 16: + $s = 13; continue; + /* } else if ($assertType(_ref$1, ast.Expr, true)[1]) { */ case 7: + a$4 = _ref$1; + _r$3 = ExprString(a$4); /* */ $s = 19; case 19: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + arg = new $String(_r$3); + $s = 13; continue; + /* } else if ($assertType(_ref$1, sliceType$10, true)[1]) { */ case 8: + a$5 = _ref$1.$val; + buf[0] = new bytes.Buffer.ptr(sliceType$12.nil, 0, 0); + buf[0].WriteByte(91); + $r = writeExprList(buf[0], a$5); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + buf[0].WriteByte(93); + arg = new $String(buf[0].String()); + $s = 13; continue; + /* } else if ($assertType(_ref$1, Object, true)[1]) { */ case 9: + a$6 = _ref$1; + _r$4 = ObjectString(a$6, qf); /* */ $s = 21; case 21: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + arg = new $String(_r$4); + $s = 13; continue; + /* } else if ($assertType(_ref$1, Type, true)[1]) { */ case 10: + a$7 = _ref$1; + buf$1[0] = new bytes.Buffer.ptr(sliceType$12.nil, 0, 0); + w = newTypeWriter(buf$1[0], qf); + w.tpSubscripts = tpSubscripts; + $r = w.typ(a$7); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + arg = new $String(buf$1[0].String()); + $s = 13; continue; + /* } else if ($assertType(_ref$1, sliceType$3, true)[1]) { */ case 11: + a$8 = _ref$1.$val; + buf$2[0] = new bytes.Buffer.ptr(sliceType$12.nil, 0, 0); + w$1 = newTypeWriter(buf$2[0], qf); + w$1.tpSubscripts = tpSubscripts; + buf$2[0].WriteByte(91); + _ref$2 = a$8; + _i$1 = 0; + /* while (true) { */ case 23: + /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 24; continue; } + i$1 = _i$1; + x = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); + if (i$1 > 0) { + buf$2[0].WriteString(", "); + } + $r = w$1.typ(x); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + $s = 23; continue; + case 24: + buf$2[0].WriteByte(93); + arg = new $String(buf$2[0].String()); + $s = 13; continue; + /* } else if ($assertType(_ref$1, sliceType$8, true)[1]) { */ case 12: + a$9 = _ref$1.$val; + buf$3[0] = new bytes.Buffer.ptr(sliceType$12.nil, 0, 0); + w$2 = newTypeWriter(buf$3[0], qf); + w$2.tpSubscripts = tpSubscripts; + buf$3[0].WriteByte(91); + _ref$3 = a$9; + _i$2 = 0; + /* while (true) { */ case 26: + /* if (!(_i$2 < _ref$3.$length)) { break; } */ if(!(_i$2 < _ref$3.$length)) { $s = 27; continue; } + i$2 = _i$2; + x$1 = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]); + if (i$2 > 0) { + buf$3[0].WriteString(", "); + } + $r = w$2.typ(x$1); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$2++; + $s = 26; continue; + case 27: + buf$3[0].WriteByte(93); + arg = new $String(buf$3[0].String()); + /* } */ case 13: + ((i < 0 || i >= args.$length) ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + i] = arg); + _i++; + $s = 1; continue; + case 2: + _r$5 = fmt.Sprintf(format, args); /* */ $s = 29; case 29: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $24r = _r$5; + $s = 30; case 30: return $24r; + /* */ } return; } var $f = {$blk: sprintf$2, $c: true, $r, $24r, _i, _i$1, _i$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _ref$2, _ref$3, a, a$1, a$2, a$3, a$4, a$5, a$6, a$7, a$8, a$9, arg, args, buf, buf$1, buf$2, buf$3, format, fset, i, i$1, i$2, qf, tpSubscripts, w, w$1, w$2, x, x$1, $s};return $f; }; - $ptrType(object).prototype.setOrder = function setOrder$1(order$2) { - var {obj, order$2, $s, $r, $c} = $restore(this, {order$2}); + $ptrType(Checker).prototype.trace = function trace(pos$1, format, args) { + var {_arg, _arg$1, _arg$2, _r, _r$1, _r$2, args, check, format, pos$1, x, $s, $r, $c} = $restore(this, {pos$1, format, args}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - obj = this; - $r = assert(order$2 > 0); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - obj.order_ = order$2; + check = this; + _r = check.fset.Position(pos$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg = (x = _r, new x.constructor.elem(x)); + _arg$1 = new $String(strings.Repeat(". ", check.indent)); + _r$1 = sprintf(check.fset, $methodVal(check, "qualifier"), true, format, args); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg$2 = new $String(_r$1); + _r$2 = fmt.Printf("%s:\t%s%s\n", new sliceType$5([_arg, _arg$1, _arg$2])); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; $s = -1; return; - /* */ } return; } var $f = {$blk: setOrder$1, $c: true, $r, obj, order$2, $s};return $f; + /* */ } return; } var $f = {$blk: trace, $c: true, $r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, args, check, format, pos$1, x, $s};return $f; }; - $ptrType(object).prototype.setColor = function setColor$1(color$3) { - var {color$3, obj, $s, $r, $c} = $restore(this, {color$3}); + $ptrType(Checker).prototype.dump = function dump(format, args) { + var {_r, _r$1, args, check, format, $s, $r, $c} = $restore(this, {format, args}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - obj = this; - $r = assert(!((color$3 === 0))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - obj.color_ = color$3; + check = this; + _r = sprintf(check.fset, $methodVal(check, "qualifier"), true, format, args); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = fmt.Println(new sliceType$5([new $String(_r)])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; $s = -1; return; - /* */ } return; } var $f = {$blk: setColor$1, $c: true, $r, color$3, obj, $s};return $f; - }; - $ptrType(object).prototype.setScopePos = function setScopePos$1(pos) { - var obj, pos; - obj = this; - obj.scopePos_ = pos; + /* */ } return; } var $f = {$blk: dump, $c: true, $r, _r, _r$1, args, check, format, $s};return $f; }; - $ptrType(object).prototype.sameId = function sameId$1(pkg, name) { - var name, obj, pkg; - obj = this; - if (!(name === obj.name)) { - return false; - } - if (obj.Exported()) { - return true; + $ptrType(Checker).prototype.report = function report(errp) { + var {_1, _r, _r$1, _r$2, _r$3, check, e, err, errp, f, i, isInvalidErr, msg$1, msg$2, pos$1, span, span$1, u, x, x$1, $s, $r, $c} = $restore(this, {errp}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + if (errp.empty()) { + $panic(new $String("empty error details")); } - if (pkg === ptrType$1.nil || obj.pkg === ptrType$1.nil) { - return pkg === obj.pkg; + _r = errp.msg(check.fset, $methodVal(check, "qualifier")); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + msg$1 = _r; + _1 = errp.code; + if (_1 === (-1)) { + msg$1 = "invalid AST: " + msg$1; + } else if (_1 === (0)) { + $panic(new $String("no error code provided")); } - return pkg.path === obj.pkg.path; - }; - NewPkgName = function NewPkgName$1(pos, pkg, name, imported) { - var imported, name, pkg, pos; - return new PkgName.ptr($clone(new object.ptr(ptrType.nil, pos, pkg, name, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]), 0, 1, 0), object), imported, false); - }; - $pkg.NewPkgName = NewPkgName; - $ptrType(PkgName).prototype.Imported = function Imported() { - var obj; - obj = this; - return obj.imported; - }; - NewConst = function NewConst$1(pos, pkg, name, typ$3, val) { - var name, pkg, pos, typ$3, val; - return new Const.ptr($clone(new object.ptr(ptrType.nil, pos, pkg, name, typ$3, 0, colorFor(typ$3), 0), object), val); - }; - $pkg.NewConst = NewConst; - $ptrType(Const).prototype.Val = function Val() { - var obj; - obj = this; - return obj.val; - }; - NewTypeName = function NewTypeName$1(pos, pkg, name, typ$3) { - var name, pkg, pos, typ$3; - return new TypeName.ptr($clone(new object.ptr(ptrType.nil, pos, pkg, name, typ$3, 0, colorFor(typ$3), 0), object)); - }; - $pkg.NewTypeName = NewTypeName; - $ptrType(TypeName).prototype.IsAlias = function IsAlias() { - var _ref, obj, t, t$1, t$2, t$3, t$4; - obj = this; - _ref = obj.object.typ; - if (_ref === $ifaceNil) { - t = _ref; - return false; - } else if ($assertType(_ref, ptrType$8, true)[1]) { - t$1 = _ref.$val; - if (obj.object.pkg === $pkg.Unsafe) { - return false; + /* */ if (!((errp.code === 0)) && !(check.conf._ErrorURL === "")) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!((errp.code === 0)) && !(check.conf._ErrorURL === "")) { */ case 2: + _r$1 = fmt.Sprintf(check.conf._ErrorURL, new sliceType$5([new errors$1.Code(errp.code)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + u = _r$1; + i = strings.Index(msg$1, "\n"); + if (i >= 0) { + msg$1 = $substring(msg$1, 0, i) + u + $substring(msg$1, i); + } else { + msg$1 = msg$1 + (u); } - return !(obj.object.pkg === ptrType$1.nil) || !(t$1.name === obj.object.name) || $interfaceIsEqual(t$1, universeByte) || $interfaceIsEqual(t$1, universeRune); - } else if ($assertType(_ref, ptrType$9, true)[1]) { - t$2 = _ref.$val; - return !(obj === t$2.obj); - } else if ($assertType(_ref, ptrType$14, true)[1]) { - t$3 = _ref.$val; - return !(obj === t$3.obj); - } else { - t$4 = _ref; - return true; + /* } */ case 3: + _r$2 = spanOf((x = errp.desc, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).posn); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + span = $clone(_r$2, posSpan); + e = new Error.ptr(check.fset, span.pos, msg$1, errp.soft, errp.code, span.start, span.end); + isInvalidErr = strings.Index(e.Msg, "invalid operand") > 0 || strings.Index(e.Msg, "invalid type") > 0; + if (!($interfaceIsEqual(check.firstErr, $ifaceNil)) && isInvalidErr) { + $s = -1; return; + } + e.Msg = stripAnnotations(e.Msg); + /* */ if (!($interfaceIsEqual(check.environment.errpos, $ifaceNil))) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (!($interfaceIsEqual(check.environment.errpos, $ifaceNil))) { */ case 6: + _r$3 = spanOf(check.environment.errpos); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + span$1 = $clone(_r$3, posSpan); + e.Pos = span$1.pos; + e.go116start = span$1.start; + e.go116end = span$1.end; + /* } */ case 7: + err = $clone(e, Error); + if ($interfaceIsEqual(check.firstErr, $ifaceNil)) { + check.firstErr = new err.constructor.elem(err); + } + /* */ if (check.conf._Trace) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (check.conf._Trace) { */ case 9: + pos$1 = e.Pos; + msg$2 = e.Msg; + $r = check.trace(pos$1, "ERROR: %s", new sliceType$5([new $String(msg$2)])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 10: + f = check.conf.Error; + if (f === $throwNilPointerError) { + $panic((x$1 = new bailout.ptr(), new x$1.constructor.elem(x$1))); } + $r = f(new err.constructor.elem(err)); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: report, $c: true, $r, _1, _r, _r$1, _r$2, _r$3, check, e, err, errp, f, i, isInvalidErr, msg$1, msg$2, pos$1, span, span$1, u, x, x$1, $s};return $f; }; - NewVar = function NewVar$1(pos, pkg, name, typ$3) { - var name, pkg, pos, typ$3; - return new Var.ptr($clone(new object.ptr(ptrType.nil, pos, pkg, name, typ$3, 0, colorFor(typ$3), 0), object), false, false, false, ptrType$16.nil); + newErrorf = function newErrorf$1(at$1, code, format, args) { + var args, at$1, code, format; + return new error_.ptr(new sliceType$31([$clone(new errorDesc.ptr(at$1, format, args), errorDesc)]), code, false); }; - $pkg.NewVar = NewVar; - NewParam = function NewParam$1(pos, pkg, name, typ$3) { - var name, pkg, pos, typ$3; - return new Var.ptr($clone(new object.ptr(ptrType.nil, pos, pkg, name, typ$3, 0, colorFor(typ$3), 0), object), false, false, true, ptrType$16.nil); + $ptrType(Checker).prototype.error = function error$1(at$1, code, msg$1) { + var {at$1, check, code, msg$1, $s, $r, $c} = $restore(this, {at$1, code, msg$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + $r = check.report(newErrorf(at$1, code, "%s", new sliceType$5([new $String(msg$1)]))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: error$1, $c: true, $r, at$1, check, code, msg$1, $s};return $f; }; - $pkg.NewParam = NewParam; - NewField = function NewField$1(pos, pkg, name, typ$3, embedded) { - var embedded, name, pkg, pos, typ$3; - return new Var.ptr($clone(new object.ptr(ptrType.nil, pos, pkg, name, typ$3, 0, colorFor(typ$3), 0), object), embedded, true, false, ptrType$16.nil); + $ptrType(Checker).prototype.errorf = function errorf$1(at$1, code, format, args) { + var {args, at$1, check, code, format, $s, $r, $c} = $restore(this, {at$1, code, format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + $r = check.report(newErrorf(at$1, code, format, args)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: errorf$1, $c: true, $r, args, at$1, check, code, format, $s};return $f; }; - $pkg.NewField = NewField; - $ptrType(Var).prototype.Anonymous = function Anonymous() { - var obj; - obj = this; - return obj.embedded; + $ptrType(Checker).prototype.softErrorf = function softErrorf(at$1, code, format, args) { + var {args, at$1, check, code, err, format, $s, $r, $c} = $restore(this, {at$1, code, format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + err = newErrorf(at$1, code, format, args); + err.soft = true; + $r = check.report(err); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: softErrorf, $c: true, $r, args, at$1, check, code, err, format, $s};return $f; }; - $ptrType(Var).prototype.Embedded = function Embedded() { - var obj; - obj = this; - return obj.embedded; + $ptrType(Checker).prototype.versionErrorf = function versionErrorf(at$1, v, format, args) { + var {_r, args, at$1, check, err, format, msg$1, v, $s, $r, $c} = $restore(this, {at$1, v, format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _r = check.sprintf(format, args); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + msg$1 = _r; + err = ptrType$109.nil; + err = newErrorf(at$1, 135, "%s requires %s or later", new sliceType$5([new $String(msg$1), new v.constructor.elem(v)])); + $r = check.report(err); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: versionErrorf, $c: true, $r, _r, args, at$1, check, err, format, msg$1, v, $s};return $f; }; - $ptrType(Var).prototype.IsField = function IsField() { - var obj; - obj = this; - return obj.isField; + $ptrType(posSpan).prototype.Pos = function Pos$4() { + var e; + e = this; + return e.pos; }; - $ptrType(Var).prototype.Origin = function Origin() { - var obj; - obj = this; - if (!(obj.origin === ptrType$16.nil)) { - return obj.origin; - } - return obj; + posSpan.prototype.Pos = function(...$args) { return this.$val.Pos(...$args); }; + inNode = function inNode$1(node, pos$1) { + var {_r, _r$1, _tmp, _tmp$1, end, node, pos$1, start, $s, $r, $c} = $restore(this, {node, pos$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = node.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tmp = _r; + _r$1 = node.End(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tmp$1 = _r$1; + start = _tmp; + end = _tmp$1; + /* */ if (false) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (false) { */ case 3: + $r = assert(start <= pos$1 && pos$1 < end); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 4: + $s = -1; return new posSpan.ptr(start, pos$1, end); + /* */ } return; } var $f = {$blk: inNode$1, $c: true, $r, _r, _r$1, _tmp, _tmp$1, end, node, pos$1, start, $s};return $f; }; - NewFunc = function NewFunc$1(pos, pkg, name, sig) { - var name, pkg, pos, sig, typ$3; - typ$3 = $ifaceNil; - if (!(sig === ptrType$27.nil)) { - typ$3 = sig; - } - return new Func.ptr($clone(new object.ptr(ptrType.nil, pos, pkg, name, typ$3, 0, colorFor(typ$3), 0), object), false, ptrType$2.nil); + atPos.prototype.Pos = function Pos$5() { + var s; + s = this.$val; + return ((s >> 0)); }; - $pkg.NewFunc = NewFunc; - $ptrType(Func).prototype.FullName = function FullName() { - var {buf, obj, $s, $r, $c} = $restore(this, {}); + $ptrType(atPos).prototype.Pos = function(...$args) { return new atPos(this.$get()).Pos(...$args); }; + spanOf = function spanOf$1(at$1) { + var {$24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, _ref, at$1, pos$1, pos$2, pos$3, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {at$1}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - buf = [buf]; - obj = this; - buf[0] = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); - $r = writeFuncName(buf[0], obj, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return buf[0].String(); - /* */ } return; } var $f = {$blk: FullName, $c: true, $r, buf, obj, $s};return $f; - }; - $ptrType(Func).prototype.Scope = function Scope$2() { - var obj; - obj = this; - return $assertType(obj.object.typ, ptrType$27).scope; + _ref = at$1; + /* */ if (_ref === $ifaceNil) { $s = 1; continue; } + /* */ if ($assertType(_ref, posSpan, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ast.Node, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$63, true)[1]) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_ref === $ifaceNil) { */ case 1: + x = _ref; + $panic(new $String("nil positioner")); + $s = 6; continue; + /* } else if ($assertType(_ref, posSpan, true)[1]) { */ case 2: + x$1 = $clone(_ref.$val, posSpan); + $s = -1; return x$1; + /* } else if ($assertType(_ref, ast.Node, true)[1]) { */ case 3: + x$2 = _ref; + _r = x$2.Pos(); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + pos$1 = _r; + _r$1 = x$2.End(); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = new posSpan.ptr(pos$1, pos$1, _r$1); + $s = 9; case 9: return $24r; + /* } else if ($assertType(_ref, ptrType$63, true)[1]) { */ case 4: + x$3 = _ref.$val; + /* */ if (!($interfaceIsEqual(x$3.expr, $ifaceNil))) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (!($interfaceIsEqual(x$3.expr, $ifaceNil))) { */ case 10: + _r$2 = x$3.Pos(); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + pos$2 = _r$2; + _r$3 = x$3.expr.End(); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r$1 = new posSpan.ptr(pos$2, pos$2, _r$3); + $s = 14; case 14: return $24r$1; + /* } */ case 11: + $s = -1; return new posSpan.ptr(nopos, nopos, nopos); + /* } else { */ case 5: + x$4 = _ref; + _r$4 = at$1.Pos(); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + pos$3 = _r$4; + $s = -1; return new posSpan.ptr(pos$3, pos$3, pos$3); + /* } */ case 6: + $s = -1; return new posSpan.ptr(0, 0, 0); + /* */ } return; } var $f = {$blk: spanOf$1, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, _ref, at$1, pos$1, pos$2, pos$3, x, x$1, x$2, x$3, x$4, $s};return $f; }; - $ptrType(Func).prototype.Origin = function Origin$1() { - var obj; - obj = this; - if (!(obj.origin === ptrType$2.nil)) { - return obj.origin; + stripAnnotations = function stripAnnotations$1(s) { + var _i, _ref, _rune, buf, r, s; + buf = new strings.Builder.ptr(ptrType$54.nil, sliceType$12.nil); + _ref = s; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + r = _rune[0]; + if (r < 8320 || 8330 <= r) { + buf.WriteRune(r); + } + _i += _rune[1]; } - return obj; - }; - $ptrType(Func).prototype.hasPtrRecv = function hasPtrRecv() { - var _tuple, _tuple$1, isPtr, obj, sig; - obj = this; - _tuple = $assertType(obj.object.typ, ptrType$27, true); - sig = _tuple[0]; - if (!(sig === ptrType$27.nil) && !(sig.recv === ptrType$16.nil)) { - _tuple$1 = deref(sig.recv.object.typ); - isPtr = _tuple$1[1]; - return isPtr; + if (buf.Len() < s.length) { + return buf.String(); } - return obj.hasPtrRecv_; - }; - NewLabel = function NewLabel$1(pos, pkg, name) { - var name, pkg, pos; - return new Label.ptr($clone(new object.ptr(ptrType.nil, pos, pkg, name, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]), 0, 1, 0), object), false); + return s; }; - $pkg.NewLabel = NewLabel; - newBuiltin = function newBuiltin$1(id) { - var id; - return new Builtin.ptr($clone(new object.ptr(ptrType.nil, 0, ptrType$1.nil, ((id < 0 || id >= predeclaredFuncs.length) ? ($throwRuntimeError("index out of range"), undefined) : predeclaredFuncs[id]).name, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]), 0, 1, 0), object), id); + $ptrType(Checker).prototype.reportAltDecl = function reportAltDecl(obj) { + var {_arg, _arg$1, _r, _r$1, check, obj, pos$1, $s, $r, $c} = $restore(this, {obj}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _r = obj.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + pos$1 = _r; + /* */ if (new token.Pos(pos$1).IsValid()) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (new token.Pos(pos$1).IsValid()) { */ case 2: + _arg = obj; + _r$1 = obj.Name(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg$1 = new $String(_r$1); + $r = check.errorf(_arg, 10, "\tother declaration of %s", new sliceType$5([_arg$1])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 3: + $s = -1; return; + /* */ } return; } var $f = {$blk: reportAltDecl, $c: true, $r, _arg, _arg$1, _r, _r$1, check, obj, pos$1, $s};return $f; }; - writeObject = function writeObject$1(buf, obj, qf) { - var {_r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _v, buf, obj, obj$1, obj$2, obj$3, obj$4, obj$5, obj$6, obj$7, obj$8, obj$9, path, qf, t, t$1, t$2, tname, typ$3, $s, $r, $c} = $restore(this, {buf, obj, qf}); + $ptrType(Checker).prototype.declare = function declare(scope, id, obj, pos$1) { + var {_arg, _arg$1, _r, _r$1, _r$2, alt, check, id, obj, pos$1, scope, $s, $r, $c} = $restore(this, {scope, id, obj, pos$1}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - tname = ptrType$17.nil; - _r$1 = obj.Type(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - typ$3 = _r$1; - _ref = obj; - /* */ if ($assertType(_ref, ptrType$31, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$32, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$17, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$16, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$2, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType$91, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref, ptrType$18, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref, ptrType$33, true)[1]) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if ($assertType(_ref, ptrType$31, true)[1]) { */ case 2: - obj$1 = _ref.$val; - _r$2 = fmt.Fprintf(buf, "package %s", new sliceType$6([new $String(obj$1.object.Name())])); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - path = obj$1.imported.path; - /* */ if (!(path === "") && !(path === obj$1.object.name)) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (!(path === "") && !(path === obj$1.object.name)) { */ case 13: - _r$3 = fmt.Fprintf(buf, " (%q)", new sliceType$6([new $String(path)])); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$3; - /* } */ case 14: - $s = -1; return; - /* } else if ($assertType(_ref, ptrType$32, true)[1]) { */ case 3: - obj$2 = _ref.$val; - buf.WriteString("const"); - $s = 11; continue; - /* } else if ($assertType(_ref, ptrType$17, true)[1]) { */ case 4: - obj$3 = _ref.$val; - tname = obj$3; - buf.WriteString("type"); - if (isTypeParam(typ$3)) { - buf.WriteString(" parameter"); - } - $s = 11; continue; - /* } else if ($assertType(_ref, ptrType$16, true)[1]) { */ case 5: - obj$4 = _ref.$val; - if (obj$4.isField) { - buf.WriteString("field"); - } else { - buf.WriteString("var"); - } - $s = 11; continue; - /* } else if ($assertType(_ref, ptrType$2, true)[1]) { */ case 6: - obj$5 = _ref.$val; - buf.WriteString("func "); - $r = writeFuncName(buf, obj$5, qf); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!($interfaceIsEqual(typ$3, $ifaceNil))) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (!($interfaceIsEqual(typ$3, $ifaceNil))) { */ case 17: - $r = WriteSignature(buf, $assertType(typ$3, ptrType$27), qf); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 18: - $s = -1; return; - /* } else if ($assertType(_ref, ptrType$91, true)[1]) { */ case 7: - obj$6 = _ref.$val; - buf.WriteString("label"); - typ$3 = $ifaceNil; - $s = 11; continue; - /* } else if ($assertType(_ref, ptrType$18, true)[1]) { */ case 8: - obj$7 = _ref.$val; - buf.WriteString("builtin"); - typ$3 = $ifaceNil; - $s = 11; continue; - /* } else if ($assertType(_ref, ptrType$33, true)[1]) { */ case 9: - obj$8 = _ref.$val; - buf.WriteString("nil"); - $s = -1; return; - /* } else { */ case 10: - obj$9 = _ref; - _r$4 = fmt.Sprintf("writeObject(%T)", new sliceType$6([obj$9])); /* */ $s = 20; case 20: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $panic(new $String(_r$4)); - /* } */ case 11: - buf.WriteByte(32); - _r$5 = obj.Pkg(); /* */ $s = 24; case 24: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - if (!(!(_r$5 === ptrType$1.nil))) { _v = false; $s = 23; continue s; } - _r$6 = obj.Pkg(); /* */ $s = 25; case 25: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _r$7 = obj.Name(); /* */ $s = 26; case 26: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _r$8 = _r$6.scope.Lookup(_r$7); /* */ $s = 27; case 27: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _v = $interfaceIsEqual(_r$8, obj); case 23: - /* */ if (_v) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if (_v) { */ case 21: - _r$9 = obj.Pkg(); /* */ $s = 28; case 28: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _r$10 = packagePrefix(_r$9, qf); /* */ $s = 29; case 29: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _r$11 = buf.WriteString(_r$10); /* */ $s = 30; case 30: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _r$11; - /* } */ case 22: - _r$12 = obj.Name(); /* */ $s = 31; case 31: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _r$13 = buf.WriteString(_r$12); /* */ $s = 32; case 32: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - _r$13; - if ($interfaceIsEqual(typ$3, $ifaceNil)) { - $s = -1; return; - } - /* */ if (!(tname === ptrType$17.nil)) { $s = 33; continue; } - /* */ $s = 34; continue; - /* if (!(tname === ptrType$17.nil)) { */ case 33: - _ref$1 = typ$3; - /* */ if ($assertType(_ref$1, ptrType$8, true)[1]) { $s = 35; continue; } - /* */ if ($assertType(_ref$1, ptrType$9, true)[1]) { $s = 36; continue; } - /* */ $s = 37; continue; - /* if ($assertType(_ref$1, ptrType$8, true)[1]) { */ case 35: - t = _ref$1.$val; + check = this; + _r = obj.Name(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!(_r === "_")) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(_r === "_")) { */ case 1: + _r$1 = scope.Insert(obj); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + alt = _r$1; + /* */ if (!($interfaceIsEqual(alt, $ifaceNil))) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!($interfaceIsEqual(alt, $ifaceNil))) { */ case 5: + _arg = obj; + _r$2 = obj.Name(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg$1 = new $String(_r$2); + $r = check.errorf(_arg, 10, "%s redeclared in this block", new sliceType$5([_arg$1])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.reportAltDecl(alt); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* } else if ($assertType(_ref$1, ptrType$9, true)[1]) { */ case 36: - t$1 = _ref$1.$val; - _r$14 = t$1.TypeParams(); /* */ $s = 40; case 40: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - _r$15 = _r$14.Len(); /* */ $s = 41; case 41: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - /* */ if (_r$15 > 0) { $s = 38; continue; } - /* */ $s = 39; continue; - /* if (_r$15 > 0) { */ case 38: - _r$16 = t$1.TypeParams(); /* */ $s = 42; case 42: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - _r$17 = _r$16.list(); /* */ $s = 43; case 43: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - $r = newTypeWriter(buf, qf).tParamList(_r$17); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 39: - /* } */ case 37: - /* */ if (tname.IsAlias()) { $s = 45; continue; } - /* */ $s = 46; continue; - /* if (tname.IsAlias()) { */ case 45: - buf.WriteString(" ="); - $s = 47; continue; - /* } else { */ case 46: - _tuple = $assertType(typ$3, ptrType$14, true); - t$2 = _tuple[0]; - /* */ if (!(t$2 === ptrType$14.nil)) { $s = 48; continue; } - /* */ $s = 49; continue; - /* if (!(t$2 === ptrType$14.nil)) { */ case 48: - typ$3 = t$2.bound; - $s = 50; continue; - /* } else { */ case 49: - _r$18 = under(typ$3); /* */ $s = 51; case 51: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - typ$3 = _r$18; - /* } */ case 50: - /* } */ case 47: - /* } */ case 34: - /* */ if ($interfaceIsEqual(obj, universeAny)) { $s = 52; continue; } - /* */ $s = 53; continue; - /* if ($interfaceIsEqual(obj, universeAny)) { */ case 52: - _r$19 = Identical(typ$3, emptyInterface); /* */ $s = 54; case 54: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - $r = assert(_r$19); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - typ$3 = emptyInterface; - /* } */ case 53: - buf.WriteByte(32); - $r = WriteType(buf, typ$3, qf); /* */ $s = 56; case 56: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + $r = obj.setScopePos(pos$1); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + /* */ if (!(id === ptrType$31.nil)) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (!(id === ptrType$31.nil)) { */ case 11: + $r = check.recordDef(id, obj); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 12: $s = -1; return; - /* */ } return; } var $f = {$blk: writeObject$1, $c: true, $r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _v, buf, obj, obj$1, obj$2, obj$3, obj$4, obj$5, obj$6, obj$7, obj$8, obj$9, path, qf, t, t$1, t$2, tname, typ$3, $s};return $f; + /* */ } return; } var $f = {$blk: declare, $c: true, $r, _arg, _arg$1, _r, _r$1, _r$2, alt, check, id, obj, pos$1, scope, $s};return $f; }; - packagePrefix = function packagePrefix$1(pkg, qf) { - var {_r$1, pkg, qf, s, $s, $r, $c} = $restore(this, {pkg, qf}); + pathString = function pathString$1(path) { + var {_i, _r, _ref, i, p, path, s, $s, $r, $c} = $restore(this, {path}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (pkg === ptrType$1.nil) { - $s = -1; return ""; - } s = ""; - /* */ if (!(qf === $throwNilPointerError)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(qf === $throwNilPointerError)) { */ case 1: - _r$1 = qf(pkg); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - s = _r$1; - $s = 3; continue; - /* } else { */ case 2: - s = pkg.Path(); - /* } */ case 3: - if (!(s === "")) { - s = s + ("."); - } + _ref = path; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + p = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (i > 0) { + s = s + ("->"); + } + _r = p.Name(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + s = s + (_r); + _i++; + $s = 1; continue; + case 2: $s = -1; return s; - /* */ } return; } var $f = {$blk: packagePrefix$1, $c: true, $r, _r$1, pkg, qf, s, $s};return $f; + /* */ } return; } var $f = {$blk: pathString$1, $c: true, $r, _i, _r, _ref, i, p, path, s, $s};return $f; }; - ObjectString = function ObjectString$1(obj, qf) { - var {buf, obj, qf, $s, $r, $c} = $restore(this, {obj, qf}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - buf = [buf]; - buf[0] = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); - $r = writeObject(buf[0], obj, qf); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return buf[0].String(); - /* */ } return; } var $f = {$blk: ObjectString$1, $c: true, $r, buf, obj, qf, $s};return $f; + $ptrType(Checker).prototype.objDecl = function objDecl(obj, def$2) { + var {_1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _entry, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _v, _v$1, check, d, def$2, obj, obj$1, obj$10, obj$2, obj$3, obj$4, obj$5, obj$6, obj$7, obj$8, obj$9, $s, $deferred, $r, $c} = $restore(this, {obj, def$2}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + check = [check]; + obj = [obj]; + check[0] = this; + if (!(check[0].conf._Trace)) { _v = false; $s = 3; continue s; } + _r = obj[0].Type(); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = $interfaceIsEqual(_r, $ifaceNil); case 3: + /* */ if (_v) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_v) { */ case 1: + /* */ if (check[0].indent === 0) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (check[0].indent === 0) { */ case 5: + _r$1 = fmt.Println(sliceType$5.nil); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + /* } */ case 6: + _r$2 = obj[0].Pos(); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg = _r$2; + _arg$1 = obj[0]; + _r$3 = obj[0].color(); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _arg$2 = new color(_r$3); + _r$4 = pathString(check[0].objPath); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _arg$3 = new $String(_r$4); + $r = check[0].trace(_arg, "-- checking %s (%s, objPath = %s)", new sliceType$5([_arg$1, _arg$2, _arg$3])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + check[0].indent = check[0].indent + (1) >> 0; + $deferred.push([(function(check, obj) { return function Checker·objDecl·func1() { + var {_arg$4, _arg$5, _arg$6, _r$5, _r$6, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check[0].indent = check[0].indent - (1) >> 0; + _r$5 = obj[0].Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _arg$4 = _r$5; + _arg$5 = obj[0]; + _r$6 = obj[0].color(); /* */ $s = 2; case 2: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _arg$6 = new color(_r$6); + $r = check[0].trace(_arg$4, "=> %s (%s)", new sliceType$5([_arg$5, _arg$6])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·objDecl·func1, $c: true, $r, _arg$4, _arg$5, _arg$6, _r$5, _r$6, $s};return $f; + }; })(check, obj), []]); + /* } */ case 2: + _r$5 = obj[0].color(); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + if (!(_r$5 === 0)) { _v$1 = false; $s = 14; continue s; } + _r$6 = obj[0].Type(); /* */ $s = 16; case 16: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _v$1 = !($interfaceIsEqual(_r$6, $ifaceNil)); case 14: + /* */ if (_v$1) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (_v$1) { */ case 12: + $r = obj[0].setColor(1); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 18; case 18: return; + /* } */ case 13: + _r$7 = obj[0].color(); /* */ $s = 20; case 20: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _1 = _r$7; + /* */ if (_1 === (0)) { $s = 21; continue; } + /* */ if (_1 === (1)) { $s = 22; continue; } + /* */ if (_1 === (2)) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (_1 === (0)) { */ case 21: + _r$8 = obj[0].Type(); /* */ $s = 26; case 26: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + $r = assert($interfaceIsEqual(_r$8, $ifaceNil)); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = obj[0].setColor(2 + ((check[0].push(obj[0]) >>> 0)) >>> 0); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([(function(check, obj) { return function Checker·objDecl·func2() { + var {$s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = check[0].pop().setColor(1); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·objDecl·func2, $c: true, $r, $s};return $f; + }; })(check, obj), []]); + $s = 25; continue; + /* } else if (_1 === (1)) { */ case 22: + _r$9 = obj[0].Type(); /* */ $s = 29; case 29: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + $r = assert(!($interfaceIsEqual(_r$9, $ifaceNil))); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 31; case 31: return; + /* } else if (_1 === (2)) { */ case 23: + _ref = obj[0]; + /* */ if ($assertType(_ref, ptrType$33, true)[1]) { $s = 32; continue; } + /* */ if ($assertType(_ref, ptrType$17, true)[1]) { $s = 33; continue; } + /* */ if ($assertType(_ref, ptrType$18, true)[1]) { $s = 34; continue; } + /* */ if ($assertType(_ref, ptrType$2, true)[1]) { $s = 35; continue; } + /* */ $s = 36; continue; + /* if ($assertType(_ref, ptrType$33, true)[1]) { */ case 32: + obj$1 = _ref.$val; + _r$10 = check[0].validCycle(obj$1); /* */ $s = 40; case 40: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + /* */ if (!_r$10 || $interfaceIsEqual(obj$1.object.typ, $ifaceNil)) { $s = 38; continue; } + /* */ $s = 39; continue; + /* if (!_r$10 || $interfaceIsEqual(obj$1.object.typ, $ifaceNil)) { */ case 38: + obj$1.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + /* } */ case 39: + $s = 37; continue; + /* } else if ($assertType(_ref, ptrType$17, true)[1]) { */ case 33: + obj$2 = _ref.$val; + _r$11 = check[0].validCycle(obj$2); /* */ $s = 43; case 43: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + /* */ if (!_r$11 || $interfaceIsEqual(obj$2.object.typ, $ifaceNil)) { $s = 41; continue; } + /* */ $s = 42; continue; + /* if (!_r$11 || $interfaceIsEqual(obj$2.object.typ, $ifaceNil)) { */ case 41: + obj$2.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + /* } */ case 42: + $s = 37; continue; + /* } else if ($assertType(_ref, ptrType$18, true)[1]) { */ case 34: + obj$3 = _ref.$val; + _r$12 = check[0].validCycle(obj$3); /* */ $s = 46; case 46: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + /* */ if (!_r$12) { $s = 44; continue; } + /* */ $s = 45; continue; + /* if (!_r$12) { */ case 44: + obj$3.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + /* } */ case 45: + $s = 37; continue; + /* } else if ($assertType(_ref, ptrType$2, true)[1]) { */ case 35: + obj$4 = _ref.$val; + _r$13 = check[0].validCycle(obj$4); /* */ $s = 49; case 49: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + /* */ if (!_r$13) { $s = 47; continue; } + /* */ $s = 48; continue; + /* if (!_r$13) { */ case 47: + /* } */ case 48: + $s = 37; continue; + /* } else { */ case 36: + obj$5 = _ref; + unreachable(); + /* } */ case 37: + _r$14 = obj[0].Type(); /* */ $s = 50; case 50: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + $r = assert(!($interfaceIsEqual(_r$14, $ifaceNil))); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 52; case 52: return; + /* } else { */ case 24: + _ref$1 = obj[0]; + /* */ if ($assertType(_ref$1, ptrType$33, true)[1]) { $s = 53; continue; } + /* */ if ($assertType(_ref$1, ptrType$17, true)[1]) { $s = 54; continue; } + /* */ if ($assertType(_ref$1, ptrType$18, true)[1]) { $s = 55; continue; } + /* */ if ($assertType(_ref$1, ptrType$2, true)[1]) { $s = 56; continue; } + /* */ $s = 57; continue; + /* if ($assertType(_ref$1, ptrType$33, true)[1]) { */ case 53: + obj$1 = _ref$1.$val; + _r$15 = check[0].validCycle(obj$1); /* */ $s = 61; case 61: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + /* */ if (!_r$15 || $interfaceIsEqual(obj$1.object.typ, $ifaceNil)) { $s = 59; continue; } + /* */ $s = 60; continue; + /* if (!_r$15 || $interfaceIsEqual(obj$1.object.typ, $ifaceNil)) { */ case 59: + obj$1.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + /* } */ case 60: + $s = 58; continue; + /* } else if ($assertType(_ref$1, ptrType$17, true)[1]) { */ case 54: + obj$2 = _ref$1.$val; + _r$16 = check[0].validCycle(obj$2); /* */ $s = 64; case 64: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + /* */ if (!_r$16 || $interfaceIsEqual(obj$2.object.typ, $ifaceNil)) { $s = 62; continue; } + /* */ $s = 63; continue; + /* if (!_r$16 || $interfaceIsEqual(obj$2.object.typ, $ifaceNil)) { */ case 62: + obj$2.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + /* } */ case 63: + $s = 58; continue; + /* } else if ($assertType(_ref$1, ptrType$18, true)[1]) { */ case 55: + obj$3 = _ref$1.$val; + _r$17 = check[0].validCycle(obj$3); /* */ $s = 67; case 67: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + /* */ if (!_r$17) { $s = 65; continue; } + /* */ $s = 66; continue; + /* if (!_r$17) { */ case 65: + obj$3.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + /* } */ case 66: + $s = 58; continue; + /* } else if ($assertType(_ref$1, ptrType$2, true)[1]) { */ case 56: + obj$4 = _ref$1.$val; + _r$18 = check[0].validCycle(obj$4); /* */ $s = 70; case 70: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + /* */ if (!_r$18) { $s = 68; continue; } + /* */ $s = 69; continue; + /* if (!_r$18) { */ case 68: + /* } */ case 69: + $s = 58; continue; + /* } else { */ case 57: + obj$5 = _ref$1; + unreachable(); + /* } */ case 58: + _r$19 = obj[0].Type(); /* */ $s = 71; case 71: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + $r = assert(!($interfaceIsEqual(_r$19, $ifaceNil))); /* */ $s = 72; case 72: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 73; case 73: return; + /* } */ case 25: + case 19: + d = (_entry = $mapIndex(check[0].objMap,Object.keyFor(obj[0])), _entry !== undefined ? _entry.v : ptrType$59.nil); + /* */ if (d === ptrType$59.nil) { $s = 74; continue; } + /* */ $s = 75; continue; + /* if (d === ptrType$59.nil) { */ case 74: + _r$20 = obj[0].Pos(); /* */ $s = 76; case 76: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + _arg$4 = new token.Pos(_r$20); + _arg$5 = obj[0]; + $r = check[0].dump("%v: %s should have been declared", new sliceType$5([_arg$4, _arg$5])); /* */ $s = 77; case 77: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + unreachable(); + /* } */ case 75: + $deferred.push([(function(check, obj) { return function Checker·objDecl·func3(env) { + var env; + environment.copy(check[0].environment, env); + }; })(check, obj), [$clone(check[0].environment, environment)]]); + environment.copy(check[0].environment, new environment.ptr(ptrType$59.nil, d.file, 0, $ifaceNil, $ifaceNil, false, ptrType$29.nil, false, false, false)); + _ref$2 = obj[0]; + /* */ if ($assertType(_ref$2, ptrType$33, true)[1]) { $s = 78; continue; } + /* */ if ($assertType(_ref$2, ptrType$17, true)[1]) { $s = 79; continue; } + /* */ if ($assertType(_ref$2, ptrType$18, true)[1]) { $s = 80; continue; } + /* */ if ($assertType(_ref$2, ptrType$2, true)[1]) { $s = 81; continue; } + /* */ $s = 82; continue; + /* if ($assertType(_ref$2, ptrType$33, true)[1]) { */ case 78: + obj$6 = _ref$2.$val; + check[0].environment.decl = d; + $r = check[0].constDecl(obj$6, d.vtyp, d.init, d.inherited); /* */ $s = 84; case 84: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 83; continue; + /* } else if ($assertType(_ref$2, ptrType$17, true)[1]) { */ case 79: + obj$7 = _ref$2.$val; + check[0].environment.decl = d; + $r = check[0].varDecl(obj$7, d.lhs, d.vtyp, d.init); /* */ $s = 85; case 85: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 83; continue; + /* } else if ($assertType(_ref$2, ptrType$18, true)[1]) { */ case 80: + obj$8 = _ref$2.$val; + $r = check[0].typeDecl(obj$8, d.tdecl, def$2); /* */ $s = 86; case 86: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].collectMethods(obj$8); /* */ $s = 87; case 87: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 83; continue; + /* } else if ($assertType(_ref$2, ptrType$2, true)[1]) { */ case 81: + obj$9 = _ref$2.$val; + $r = check[0].funcDecl(obj$9, d); /* */ $s = 88; case 88: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 83; continue; + /* } else { */ case 82: + obj$10 = _ref$2; + unreachable(); + /* } */ case 83: + $s = -1; return; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: objDecl, $c: true, $r, _1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _entry, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _v, _v$1, check, d, def$2, obj, obj$1, obj$10, obj$2, obj$3, obj$4, obj$5, obj$6, obj$7, obj$8, obj$9, $s, $deferred};return $f; } } }; - $pkg.ObjectString = ObjectString; - $ptrType(PkgName).prototype.String = function String$19() { - var {$24r, _r$1, obj, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - obj = this; - _r$1 = ObjectString(obj, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$19, $c: true, $r, $24r, _r$1, obj, $s};return $f; + $ptrType(Checker).prototype.validCycle = function validCycle(obj) { + var {$24r, $24r$1, $24r$2, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _entry, _entry$1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _v, alias, check, cycle, d, inObjMap, info, isPkgObj, ndef, nval, obj, obj$1, obj$2, obj$3, obj$4, obj$5, start, tparCycle, valid, $s, $deferred, $r, $c} = $restore(this, {obj}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + check = [check]; + obj = [obj]; + valid = [valid]; + valid[0] = false; + check[0] = this; + /* */ if (false) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (false) { */ case 1: + info = (_entry = $mapIndex(check[0].objMap,Object.keyFor(obj[0])), _entry !== undefined ? _entry.v : ptrType$59.nil); + inObjMap = !(info === ptrType$59.nil) && (info.fdecl === ptrType$88.nil || info.fdecl.Recv === ptrType$50.nil); + _r = obj[0].Parent(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + isPkgObj = _r === check[0].pkg.scope; + /* */ if (!(isPkgObj === inObjMap)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!(isPkgObj === inObjMap)) { */ case 4: + _r$1 = obj[0].Pos(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg = new token.Pos(_r$1); + _arg$1 = obj[0]; + _arg$2 = new $Bool(isPkgObj); + _arg$3 = new $Bool(inObjMap); + $r = check[0].dump("%v: inconsistent object map for %s (isPkgObj = %v, inObjMap = %v)", new sliceType$5([_arg, _arg$1, _arg$2, _arg$3])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + unreachable(); + /* } */ case 5: + /* } */ case 2: + _r$2 = obj[0].color(); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $r = assert(_r$2 >= 2); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$3 = obj[0].color(); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + start = _r$3 - 2 >>> 0; + cycle = $subslice(check[0].objPath, start); + tparCycle = false; + nval = 0; + ndef = 0; + _ref = cycle; + _i = 0; + /* while (true) { */ case 11: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 12; continue; } + obj$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _ref$1 = obj$1; + /* */ if ($assertType(_ref$1, ptrType$33, true)[1] || $assertType(_ref$1, ptrType$17, true)[1]) { $s = 13; continue; } + /* */ if ($assertType(_ref$1, ptrType$18, true)[1]) { $s = 14; continue; } + /* */ if ($assertType(_ref$1, ptrType$2, true)[1]) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if ($assertType(_ref$1, ptrType$33, true)[1] || $assertType(_ref$1, ptrType$17, true)[1]) { */ case 13: + obj$2 = _ref$1; + nval = nval + (1) >> 0; + $s = 17; continue; + /* } else if ($assertType(_ref$1, ptrType$18, true)[1]) { */ case 14: + obj$3 = _ref$1.$val; + if (!(check[0].environment.inTParamList)) { _v = false; $s = 20; continue s; } + _r$4 = isGeneric(obj$3.object.typ); /* */ $s = 21; case 21: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _v = _r$4; case 20: + /* */ if (_v) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (_v) { */ case 18: + tparCycle = true; + /* break loop; */ $s = 12; continue s; + /* } */ case 19: + alias = false; + d = (_entry$1 = $mapIndex(check[0].objMap,Object.keyFor(obj$3)), _entry$1 !== undefined ? _entry$1.v : ptrType$59.nil); + if (!(d === ptrType$59.nil)) { + alias = new token.Pos(d.tdecl.Assign).IsValid(); + } else { + alias = obj$3.IsAlias(); + } + if (!alias) { + ndef = ndef + (1) >> 0; + } + $s = 17; continue; + /* } else if ($assertType(_ref$1, ptrType$2, true)[1]) { */ case 15: + obj$4 = _ref$1.$val; + $s = 17; continue; + /* } else { */ case 16: + obj$5 = _ref$1; + unreachable(); + /* } */ case 17: + _i++; + $s = 11; continue; + case 12: + /* */ if (check[0].conf._Trace) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (check[0].conf._Trace) { */ case 22: + _r$5 = obj[0].Pos(); /* */ $s = 24; case 24: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _arg$4 = _r$5; + _r$6 = pathString(cycle); /* */ $s = 25; case 25: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _arg$5 = new $String(_r$6); + _r$7 = obj[0].Name(); /* */ $s = 26; case 26: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _arg$6 = new $String(_r$7); + _arg$7 = new $Int(cycle.$length); + $r = check[0].trace(_arg$4, "## cycle detected: objPath = %s->%s (len = %d)", new sliceType$5([_arg$5, _arg$6, _arg$7])); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (tparCycle) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (tparCycle) { */ case 28: + _r$8 = obj[0].Pos(); /* */ $s = 31; case 31: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + $r = check[0].trace(_r$8, "## cycle contains: generic type in a type parameter list", sliceType$5.nil); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 30; continue; + /* } else { */ case 29: + _r$9 = obj[0].Pos(); /* */ $s = 33; case 33: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + $r = check[0].trace(_r$9, "## cycle contains: %d values, %d type definitions", new sliceType$5([new $Int(nval), new $Int(ndef)])); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 30: + $deferred.push([(function(check, obj, valid) { return function Checker·validCycle·func1() { + var {_r$10, _r$11, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + /* */ if (valid[0]) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (valid[0]) { */ case 1: + _r$10 = obj[0].Pos(); /* */ $s = 4; case 4: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + $r = check[0].trace(_r$10, "=> cycle is valid", sliceType$5.nil); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 3; continue; + /* } else { */ case 2: + _r$11 = obj[0].Pos(); /* */ $s = 6; case 6: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + $r = check[0].trace(_r$11, "=> error: cycle is invalid", sliceType$5.nil); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 3: + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·validCycle·func1, $c: true, $r, _r$10, _r$11, $s};return $f; + }; })(check, obj, valid), []]); + /* } */ case 23: + /* */ if (!tparCycle) { $s = 35; continue; } + /* */ $s = 36; continue; + /* if (!tparCycle) { */ case 35: + /* */ if (nval === cycle.$length) { $s = 37; continue; } + /* */ $s = 38; continue; + /* if (nval === cycle.$length) { */ case 37: + valid[0] = true; + $24r = valid[0]; + $s = 39; case 39: return $24r; + /* } */ case 38: + /* */ if ((nval === 0) && ndef > 0) { $s = 40; continue; } + /* */ $s = 41; continue; + /* if ((nval === 0) && ndef > 0) { */ case 40: + valid[0] = true; + $24r$1 = valid[0]; + $s = 42; case 42: return $24r$1; + /* } */ case 41: + /* } */ case 36: + $r = check[0].cycleError(cycle); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + valid[0] = false; + $24r$2 = valid[0]; + $s = 44; case 44: return $24r$2; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return valid[0]; } if($curGoroutine.asleep) { var $f = {$blk: validCycle, $c: true, $r, $24r, $24r$1, $24r$2, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _entry, _entry$1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _v, alias, check, cycle, d, inObjMap, info, isPkgObj, ndef, nval, obj, obj$1, obj$2, obj$3, obj$4, obj$5, start, tparCycle, valid, $s, $deferred};return $f; } } }; - $ptrType(Const).prototype.String = function String$20() { - var {$24r, _r$1, obj, $s, $r, $c} = $restore(this, {}); + $ptrType(Checker).prototype.cycleError = function cycleError(cycle) { + var {_i, _r, _r$1, _r$2, _ref, _tuple, check, cycle, i, name, obj, objName, tname, $s, $r, $c} = $restore(this, {cycle}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - obj = this; - _r$1 = ObjectString(obj, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$20, $c: true, $r, $24r, _r$1, obj, $s};return $f; + check = [check]; + check[0] = this; + name = (function(check) { return function Checker·cycleError·func1(obj) { + var {$24r, _r, _r$1, _r$2, obj, $s, $r, $c} = $restore(this, {obj}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = obj.Pkg(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = packagePrefix(_r, $methodVal(check[0], "qualifier")); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = obj.Name(); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$1 + _r$2; + $s = 4; case 4: return $24r; + /* */ } return; } var $f = {$blk: Checker·cycleError·func1, $c: true, $r, $24r, _r, _r$1, _r$2, obj, $s};return $f; + }; })(check); + _r = firstInSrc(cycle); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + i = _r; + obj = ((i < 0 || i >= cycle.$length) ? ($throwRuntimeError("index out of range"), undefined) : cycle.$array[cycle.$offset + i]); + _r$1 = name(obj); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + objName = _r$1; + _tuple = $assertType(obj, ptrType$18, true); + tname = _tuple[0]; + if (!(tname === ptrType$18.nil) && tname.IsAlias()) { + check[0].validAlias(tname, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])); + } + /* */ if (cycle.$length === 1) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (cycle.$length === 1) { */ case 3: + /* */ if (!(tname === ptrType$18.nil)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!(tname === ptrType$18.nil)) { */ case 5: + $r = check[0].errorf(obj, 11, "invalid recursive type: %s refers to itself", new sliceType$5([new $String(objName)])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 7; continue; + /* } else { */ case 6: + $r = check[0].errorf(obj, 11, "invalid cycle in declaration: %s refers to itself", new sliceType$5([new $String(objName)])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 7: + $s = -1; return; + /* } */ case 4: + /* */ if (!(tname === ptrType$18.nil)) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (!(tname === ptrType$18.nil)) { */ case 10: + $r = check[0].errorf(obj, 11, "invalid recursive type %s", new sliceType$5([new $String(objName)])); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 12; continue; + /* } else { */ case 11: + $r = check[0].errorf(obj, 11, "invalid cycle in declaration of %s", new sliceType$5([new $String(objName)])); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 12: + _ref = cycle; + _i = 0; + /* while (true) { */ case 15: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 16; continue; } + $r = check[0].errorf(obj, 11, "\t%s refers to", new sliceType$5([new $String(objName)])); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i + (1) >> 0; + if (i >= cycle.$length) { + i = 0; + } + obj = ((i < 0 || i >= cycle.$length) ? ($throwRuntimeError("index out of range"), undefined) : cycle.$array[cycle.$offset + i]); + _r$2 = name(obj); /* */ $s = 18; case 18: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + objName = _r$2; + _i++; + $s = 15; continue; + case 16: + $r = check[0].errorf(obj, 11, "\t%s", new sliceType$5([new $String(objName)])); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: cycleError, $c: true, $r, _i, _r, _r$1, _r$2, _ref, _tuple, check, cycle, i, name, obj, objName, tname, $s};return $f; }; - $ptrType(TypeName).prototype.String = function String$21() { - var {$24r, _r$1, obj, $s, $r, $c} = $restore(this, {}); + firstInSrc = function firstInSrc$1(path) { + var {_i, _r, _r$1, _r$2, _r$3, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, fst, i, path, pos$1, t, $s, $r, $c} = $restore(this, {path}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - obj = this; - _r$1 = ObjectString(obj, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$21, $c: true, $r, $24r, _r$1, obj, $s};return $f; + _tmp = 0; + _r = (0 >= path.$length ? ($throwRuntimeError("index out of range"), undefined) : path.$array[path.$offset + 0]).Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tmp$1 = _r; + fst = _tmp; + pos$1 = _tmp$1; + _ref = $subslice(path, 1); + _i = 0; + /* while (true) { */ case 2: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } + i = _i; + t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r$1 = t.Pos(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = cmpPos(_r$1, pos$1); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (_r$2 < 0) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_r$2 < 0) { */ case 4: + _tmp$2 = i + 1 >> 0; + _r$3 = t.Pos(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tmp$3 = _r$3; + fst = _tmp$2; + pos$1 = _tmp$3; + /* } */ case 5: + _i++; + $s = 2; continue; + case 3: + $s = -1; return fst; + /* */ } return; } var $f = {$blk: firstInSrc$1, $c: true, $r, _i, _r, _r$1, _r$2, _r$3, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, fst, i, path, pos$1, t, $s};return $f; }; - $ptrType(Var).prototype.String = function String$22() { - var {$24r, _r$1, obj, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - obj = this; - _r$1 = ObjectString(obj, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$22, $c: true, $r, $24r, _r$1, obj, $s};return $f; + $ptrType(importDecl).prototype.node = function node() { + var d; + d = this; + return d.spec; }; - $ptrType(Func).prototype.String = function String$23() { - var {$24r, _r$1, obj, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - obj = this; - _r$1 = ObjectString(obj, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$23, $c: true, $r, $24r, _r$1, obj, $s};return $f; + importDecl.prototype.node = function(...$args) { return this.$val.node(...$args); }; + $ptrType(constDecl).prototype.node = function node$1() { + var d; + d = this; + return d.spec; }; - $ptrType(Label).prototype.String = function String$24() { - var {$24r, _r$1, obj, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - obj = this; - _r$1 = ObjectString(obj, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$24, $c: true, $r, $24r, _r$1, obj, $s};return $f; + constDecl.prototype.node = function(...$args) { return this.$val.node(...$args); }; + $ptrType(varDecl).prototype.node = function node$2() { + var d; + d = this; + return d.spec; + }; + varDecl.prototype.node = function(...$args) { return this.$val.node(...$args); }; + $ptrType(typeDecl).prototype.node = function node$3() { + var d; + d = this; + return d.spec; + }; + typeDecl.prototype.node = function(...$args) { return this.$val.node(...$args); }; + $ptrType(funcDecl).prototype.node = function node$4() { + var d; + d = this; + return d.decl; }; - $ptrType(Builtin).prototype.String = function String$25() { - var {$24r, _r$1, obj, $s, $r, $c} = $restore(this, {}); + funcDecl.prototype.node = function(...$args) { return this.$val.node(...$args); }; + $ptrType(Checker).prototype.walkDecls = function walkDecls(decls, f) { + var {_i, _ref, check, d, decls, f, $s, $r, $c} = $restore(this, {decls, f}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - obj = this; - _r$1 = ObjectString(obj, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$25, $c: true, $r, $24r, _r$1, obj, $s};return $f; + check = this; + _ref = decls; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + d = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = check.walkDecl(d, f); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: walkDecls, $c: true, $r, _i, _ref, check, d, decls, f, $s};return $f; }; - $ptrType(Nil).prototype.String = function String$26() { - var {$24r, _r$1, obj, $s, $r, $c} = $restore(this, {}); + $ptrType(Checker).prototype.walkDecl = function walkDecl(d, f) { + var {_1, _i, _ref, _ref$1, _ref$2, check, d, d$1, d$2, d$3, d$4, f, inherited, iota, last, s, s$1, s$2, s$3, s$4, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {d, f}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - obj = this; - _r$1 = ObjectString(obj, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$26, $c: true, $r, $24r, _r$1, obj, $s};return $f; + check = this; + _ref = d; + /* */ if ($assertType(_ref, ptrType$110, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$96, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$88, true)[1]) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if ($assertType(_ref, ptrType$110, true)[1]) { */ case 1: + d$1 = _ref.$val; + $s = 5; continue; + /* } else if ($assertType(_ref, ptrType$96, true)[1]) { */ case 2: + d$2 = _ref.$val; + last = ptrType$89.nil; + _ref$1 = d$2.Specs; + _i = 0; + /* while (true) { */ case 6: + /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 7; continue; } + iota = _i; + s = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + _ref$2 = s; + /* */ if ($assertType(_ref$2, ptrType$111, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref$2, ptrType$89, true)[1]) { $s = 9; continue; } + /* */ if ($assertType(_ref$2, ptrType$90, true)[1]) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if ($assertType(_ref$2, ptrType$111, true)[1]) { */ case 8: + s$1 = _ref$2.$val; + $r = f((x = new importDecl.ptr(s$1), new x.constructor.elem(x))); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 12; continue; + /* } else if ($assertType(_ref$2, ptrType$89, true)[1]) { */ case 9: + s$2 = _ref$2.$val; + _1 = d$2.Tok; + /* */ if (_1 === (64)) { $s = 15; continue; } + /* */ if (_1 === (85)) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (_1 === (64)) { */ case 15: + inherited = true; + if (!($interfaceIsEqual(s$2.Type, $ifaceNil)) || s$2.Values.$length > 0) { + last = s$2; + inherited = false; + } else if (last === ptrType$89.nil) { + last = new ast.ValueSpec.ptr(ptrType$112.nil, sliceType$21.nil, $ifaceNil, sliceType$10.nil, ptrType$112.nil); + inherited = false; + } + $r = check.arityMatch(s$2, last); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = f((x$1 = new constDecl.ptr(s$2, iota, last.Type, last.Values, inherited), new x$1.constructor.elem(x$1))); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 18; continue; + /* } else if (_1 === (85)) { */ case 16: + $r = check.arityMatch(s$2, ptrType$89.nil); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = f((x$2 = new varDecl.ptr(s$2), new x$2.constructor.elem(x$2))); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 18; continue; + /* } else { */ case 17: + $r = check.errorf(s$2, -1, "invalid token %s", new sliceType$5([new token.Token(d$2.Tok)])); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 18: + case 14: + $s = 12; continue; + /* } else if ($assertType(_ref$2, ptrType$90, true)[1]) { */ case 10: + s$3 = _ref$2.$val; + $r = f((x$3 = new typeDecl.ptr(s$3), new x$3.constructor.elem(x$3))); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 12; continue; + /* } else { */ case 11: + s$4 = _ref$2; + $r = check.errorf(s$4, -1, "unknown ast.Spec node %T", new sliceType$5([s$4])); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 12: + _i++; + $s = 6; continue; + case 7: + $s = 5; continue; + /* } else if ($assertType(_ref, ptrType$88, true)[1]) { */ case 3: + d$3 = _ref.$val; + $r = f((x$4 = new funcDecl.ptr(d$3), new x$4.constructor.elem(x$4))); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 5; continue; + /* } else { */ case 4: + d$4 = _ref; + $r = check.errorf(d$4, -1, "unknown ast.Decl node %T", new sliceType$5([d$4])); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 5: + $s = -1; return; + /* */ } return; } var $f = {$blk: walkDecl, $c: true, $r, _1, _i, _ref, _ref$1, _ref$2, check, d, d$1, d$2, d$3, d$4, f, inherited, iota, last, s, s$1, s$2, s$3, s$4, x, x$1, x$2, x$3, x$4, $s};return $f; }; - writeFuncName = function writeFuncName$1(buf, f, qf) { - var {_r$1, _r$2, _tuple, buf, f, ok, qf, recv, sig, $s, $r, $c} = $restore(this, {buf, f, qf}); + $ptrType(Checker).prototype.constDecl = function constDecl$1(obj, typ$4, init$6, inherited) { + var {_r, _r$1, _r$2, check, inherited, init$6, obj, t, typ$4, x, $s, $deferred, $r, $c} = $restore(this, {obj, typ$4, init$6, inherited}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + check = [check]; + x = [x]; + check[0] = this; + $r = assert($interfaceIsEqual(obj.object.typ, $ifaceNil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([(function(check, x) { return function Checker·constDecl·func1(iota, errpos) { + var errpos, iota; + check[0].environment.iota = iota; + check[0].environment.errpos = errpos; + }; })(check, x), [check[0].environment.iota, check[0].environment.errpos]]); + check[0].environment.iota = obj.val; + check[0].environment.errpos = $ifaceNil; + obj.val = constant.MakeUnknown(); + /* */ if (!($interfaceIsEqual(typ$4, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(typ$4, $ifaceNil))) { */ case 2: + _r = check[0].typ(typ$4); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + t = _r; + _r$1 = isConstType(t); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!_r$1) { */ case 5: + _r$2 = under(t); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (!($interfaceIsEqual(_r$2, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!($interfaceIsEqual(_r$2, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { */ case 8: + $r = check[0].errorf(typ$4, 15, "invalid constant type %s", new sliceType$5([t])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 9: + obj.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + $s = -1; return; + /* } */ case 6: + obj.object.typ = t; + /* } */ case 3: + x[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + /* */ if (!($interfaceIsEqual(init$6, $ifaceNil))) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (!($interfaceIsEqual(init$6, $ifaceNil))) { */ case 12: + if (inherited) { + check[0].environment.errpos = new atPos(((obj.object.pos >> 0))); + } + $r = check[0].expr($ifaceNil, x[0], init$6); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 13: + $r = check[0].initConst(obj, x[0]); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: constDecl$1, $c: true, $r, _r, _r$1, _r$2, check, inherited, init$6, obj, t, typ$4, x, $s, $deferred};return $f; } } + }; + $ptrType(Checker).prototype.varDecl = function varDecl$1(obj, lhs, typ$4, init$6) { + var {_i, _i$1, _r, _ref, _ref$1, check, found, init$6, lhs, lhs$1, lhs$2, obj, typ$4, x, $s, $r, $c} = $restore(this, {obj, lhs, typ$4, init$6}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - /* */ if (!($interfaceIsEqual(f.object.typ, $ifaceNil))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!($interfaceIsEqual(f.object.typ, $ifaceNil))) { */ case 1: - sig = $assertType(f.object.typ, ptrType$27); - recv = sig.Recv(); - /* */ if (!(recv === ptrType$16.nil)) { $s = 3; continue; } - /* */ if (!(f.object.pkg === ptrType$1.nil)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (!(recv === ptrType$16.nil)) { */ case 3: - buf.WriteByte(40); - _tuple = $assertType(recv.object.Type(), ptrType$13, true); - ok = _tuple[1]; - /* */ if (ok) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (ok) { */ case 6: - buf.WriteString("interface"); - $s = 8; continue; - /* } else { */ case 7: - $r = WriteType(buf, recv.object.Type(), qf); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 8: - buf.WriteByte(41); - buf.WriteByte(46); - $s = 5; continue; - /* } else if (!(f.object.pkg === ptrType$1.nil)) { */ case 4: - _r$1 = packagePrefix(f.object.pkg, qf); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = buf.WriteString(_r$1); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - /* } */ case 5: - /* } */ case 2: - buf.WriteString(f.object.name); + x = [x]; + check = this; + $r = assert($interfaceIsEqual(obj.object.typ, $ifaceNil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!($interfaceIsEqual(typ$4, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(typ$4, $ifaceNil))) { */ case 2: + _r = check.varType(typ$4); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + obj.object.typ = _r; + /* } */ case 3: + if ($interfaceIsEqual(init$6, $ifaceNil)) { + if ($interfaceIsEqual(typ$4, $ifaceNil)) { + obj.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + } + $s = -1; return; + } + /* */ if (lhs === sliceType$9.nil || (lhs.$length === 1)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (lhs === sliceType$9.nil || (lhs.$length === 1)) { */ case 5: + $r = assert(lhs === sliceType$9.nil || (0 >= lhs.$length ? ($throwRuntimeError("index out of range"), undefined) : lhs.$array[lhs.$offset + 0]) === obj); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + $r = check.expr(obj.object.typ, x[0], init$6); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.initVar(obj, x[0], "variable declaration"); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 6: + if (false) { + found = false; + _ref = lhs; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + lhs$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (obj === lhs$1) { + found = true; + break; + } + _i++; + } + if (!found) { + $panic(new $String("inconsistent lhs")); + } + } + if (!($interfaceIsEqual(typ$4, $ifaceNil))) { + _ref$1 = lhs; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + lhs$2 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + lhs$2.object.typ = obj.object.typ; + _i$1++; + } + } + $r = check.initVars(lhs, new sliceType$10([init$6]), $ifaceNil); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } var $f = {$blk: writeFuncName$1, $c: true, $r, _r$1, _r$2, _tuple, buf, f, ok, qf, recv, sig, $s};return $f; + /* */ } return; } var $f = {$blk: varDecl$1, $c: true, $r, _i, _i$1, _r, _ref, _ref$1, check, found, init$6, lhs, lhs$1, lhs$2, obj, typ$4, x, $s};return $f; }; - NewNamed = function NewNamed$1(obj, underlying, methods) { - var _tuple, methods, obj, ok, underlying; - _tuple = $assertType(underlying, ptrType$9, true); - ok = _tuple[1]; - if (ok) { - $panic(new $String("underlying type must not be *Named")); + $ptrType(Checker).prototype.isImportedConstraint = function isImportedConstraint(typ$4) { + var {$24r, _r, _r$1, _tuple, _tuple$1, _v, check, named, typ$4, u, $s, $r, $c} = $restore(this, {typ$4}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _tuple = $assertType(typ$4, ptrType$10, true); + named = _tuple[0]; + if (named === ptrType$10.nil || named.obj.object.pkg === check.pkg || named.obj.object.pkg === ptrType$1.nil) { + $s = -1; return false; } - return (ptrType$5.nil).newNamed(obj, underlying, methods); + _r = named.under(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple$1 = $assertType(_r, ptrType$14, true); + u = _tuple$1[0]; + if (!(!(u === ptrType$14.nil))) { _v = false; $s = 2; continue s; } + _r$1 = u.IsMethodSet(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = !_r$1; case 2: + $24r = _v; + $s = 4; case 4: return $24r; + /* */ } return; } var $f = {$blk: isImportedConstraint, $c: true, $r, $24r, _r, _r$1, _tuple, _tuple$1, _v, check, named, typ$4, u, $s};return $f; }; - $pkg.NewNamed = NewNamed; - $ptrType(Named).prototype.resolve = function resolve$2() { - var {$24r, $24r$1, $24r$2, _r$1, _r$2, _r$3, _tuple, methods, n, orig, tparams, underlying, underlying$1, $s, $deferred, $r, $c} = $restore(this, {}); + $ptrType(Checker).prototype.typeDecl = function typeDecl$1(obj, tdecl, def$2) { + var {_r, _r$1, _r$2, alias, check, def$2, named, obj, rhs, tdecl, $s, $deferred, $r, $c} = $restore(this, {obj, tdecl, def$2}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - n = this; - if (n.state() >= 1) { - $s = -1; return n; - } - $r = n.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(n.mu, "Unlock"), []]); - /* */ if (n.state() >= 1) { $s = 2; continue; } + check = [check]; + obj = [obj]; + rhs = [rhs]; + tdecl = [tdecl]; + check[0] = this; + $r = assert($interfaceIsEqual(obj[0].object.typ, $ifaceNil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + rhs[0] = $ifaceNil; + check[0].later((function(check, obj, rhs, tdecl) { return function Checker·typeDecl·func1() { + var {_r, _r$1, _tuple, _v, t, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _tuple = $assertType(obj[0].object.typ, ptrType$10, true); + t = _tuple[0]; + /* */ if (!(t === ptrType$10.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(t === ptrType$10.nil)) { */ case 1: + $r = check[0].validType(t); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + _r = check[0].isImportedConstraint(rhs[0]); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + if (!(_r)) { _v = false; $s = 4; continue s; } + _r$1 = check[0].verifyVersionf(tdecl[0].Type, $clone(go1_18, version), "using type constraint %s", new sliceType$5([rhs[0]])); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = _r$1; case 4: + $unused(_v); + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·typeDecl·func1, $c: true, $r, _r, _r$1, _tuple, _v, t, $s};return $f; + }; })(check, obj, rhs, tdecl)).describef(obj[0], "validType(%s)", new sliceType$5([new $String(obj[0].object.Name())])); + alias = new token.Pos(tdecl[0].Assign).IsValid(); + /* */ if (alias && !((tdecl[0].TypeParams.NumFields() === 0))) { $s = 2; continue; } /* */ $s = 3; continue; - /* if (n.state() >= 1) { */ case 2: - $24r = n; - $s = 4; case 4: return $24r; + /* if (alias && !((tdecl[0].TypeParams.NumFields() === 0))) { */ case 2: + $r = check[0].error(new atPos(((tdecl[0].Assign >> 0))), 131, "generic type cannot be alias"); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + alias = false; /* } */ case 3: - /* */ if (!(n.inst === ptrType$52.nil)) { $s = 5; continue; } + /* */ if (alias) { $s = 5; continue; } /* */ $s = 6; continue; - /* if (!(n.inst === ptrType$52.nil)) { */ case 5: - $r = assert($interfaceIsEqual(n.underlying, $ifaceNil)); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = assert(n.loader === $throwNilPointerError); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - orig = n.inst.orig; - _r$1 = orig.resolve(); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - _r$2 = n.expandUnderlying(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - underlying = _r$2; - n.tparams = orig.tparams; - n.underlying = underlying; - n.fromRHS = orig.fromRHS; - if (orig.methods.$length === 0) { - n.setState(2); - n.inst.ctxt = ptrType$51.nil; - } else { - n.setState(1); - } - $24r$1 = n; - $s = 11; case 11: return $24r$1; + /* if (alias) { */ case 5: + _r = check[0].verifyVersionf(new atPos(((tdecl[0].Assign >> 0))), $clone(go1_9, version), "type aliases", sliceType$5.nil); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + check[0].brokenAlias(obj[0]); + _r$1 = check[0].typ(tdecl[0].Type); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + rhs[0] = _r$1; + check[0].validAlias(obj[0], rhs[0]); + $s = -1; return; /* } */ case 6: - /* */ if (!(n.loader === $throwNilPointerError)) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (!(n.loader === $throwNilPointerError)) { */ case 12: - $r = assert($interfaceIsEqual(n.underlying, $ifaceNil)); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = assert(n.TypeArgs().Len() === 0); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$3 = n.loader(n); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple = _r$3; - tparams = _tuple[0]; - underlying$1 = _tuple[1]; - methods = _tuple[2]; - n.tparams = bindTParams(tparams); - n.underlying = underlying$1; - n.fromRHS = underlying$1; - n.methods = methods; - n.loader = $throwNilPointerError; - /* } */ case 13: - n.setState(2); - $24r$2 = n; - $s = 17; case 17: return $24r$2; - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$9.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: resolve$2, $c: true, $r, $24r, $24r$1, $24r$2, _r$1, _r$2, _r$3, _tuple, methods, n, orig, tparams, underlying, underlying$1, $s, $deferred};return $f; } } - }; - $ptrType(Named).prototype.state = function state() { - var n; - n = this; - return ((atomic.LoadUint32((n.$ptr_state_ || (n.$ptr_state_ = new ptrType$55(function() { return this.$target.state_; }, function($v) { this.$target.state_ = $v; }, n)))) >>> 0)); + named = check[0].newNamed(obj[0], $ifaceNil, sliceType.nil); + def$2.setUnderlying(named); + /* */ if (!(tdecl[0].TypeParams === ptrType$50.nil)) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!(tdecl[0].TypeParams === ptrType$50.nil)) { */ case 9: + $r = check[0].openScope(tdecl[0], "type parameters"); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(check[0], "closeScope"), []]); + $r = check[0].collectTypeParams((named === ptrType$10.nil && $throwNilPointerError(), (named.$ptr_tparams || (named.$ptr_tparams = new ptrType$85(function() { return this.$target.tparams; }, function($v) { this.$target.tparams = $v; }, named)))), tdecl[0].TypeParams); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 10: + _r$2 = check[0].definedType(tdecl[0].Type, named); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + rhs[0] = _r$2; + $r = assert(!($interfaceIsEqual(rhs[0], $ifaceNil))); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + named.fromRHS = rhs[0]; + if ($interfaceIsEqual(named.underlying, $ifaceNil)) { + named.underlying = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + } + /* */ if (isTypeParam(rhs[0])) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (isTypeParam(rhs[0])) { */ case 15: + $r = check[0].error(tdecl[0].Type, 144, "cannot use a type parameter as RHS in type declaration"); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + named.underlying = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + /* } */ case 16: + $s = -1; return; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: typeDecl$1, $c: true, $r, _r, _r$1, _r$2, alias, check, def$2, named, obj, rhs, tdecl, $s, $deferred};return $f; } } }; - $ptrType(Named).prototype.setState = function setState(state$1) { - var n, state$1; - n = this; - atomic.StoreUint32((n.$ptr_state_ || (n.$ptr_state_ = new ptrType$55(function() { return this.$target.state_; }, function($v) { this.$target.state_ = $v; }, n))), ((state$1 >>> 0))); + $ptrType(Checker).prototype.collectTypeParams = function collectTypeParams(dst, list$2) { + var {_i, _i$1, _i$2, _r, _r$1, _ref, _ref$1, _ref$2, bound, check, dst, f, f$1, i, index$1, list$2, tparams, x, $s, $deferred, $r, $c} = $restore(this, {dst, list$2}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + check = [check]; + check[0] = this; + tparams = sliceType$8.nil; + _ref = list$2.List; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r = check[0].declareTypeParams(tparams, f.Names); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + tparams = _r; + _i++; + $s = 1; continue; + case 2: + dst.$set(bindTParams(tparams)); + $r = assert(!check[0].environment.inTParamList); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + check[0].environment.inTParamList = true; + $deferred.push([(function(check) { return function Checker·collectTypeParams·func1() { + check[0].environment.inTParamList = false; + }; })(check), []]); + index$1 = 0; + _ref$1 = list$2.List; + _i$1 = 0; + /* while (true) { */ case 5: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 6; continue; } + f$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + bound = $ifaceNil; + /* */ if (!($interfaceIsEqual(f$1.Type, $ifaceNil))) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!($interfaceIsEqual(f$1.Type, $ifaceNil))) { */ case 7: + _r$1 = check[0].bound(f$1.Type); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + bound = _r$1; + /* */ if (isTypeParam(bound)) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (isTypeParam(bound)) { */ case 11: + $r = check[0].error(f$1.Type, 144, "cannot use a type parameter as constraint"); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + bound = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + /* } */ case 12: + $s = 9; continue; + /* } else { */ case 8: + bound = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + /* } */ case 9: + _ref$2 = f$1.Names; + _i$2 = 0; + while (true) { + if (!(_i$2 < _ref$2.$length)) { break; } + i = _i$2; + (x = index$1 + i >> 0, ((x < 0 || x >= tparams.$length) ? ($throwRuntimeError("index out of range"), undefined) : tparams.$array[tparams.$offset + x])).bound = bound; + _i$2++; + } + index$1 = index$1 + (f$1.Names.$length) >> 0; + _i$1++; + $s = 5; continue; + case 6: + $s = -1; return; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: collectTypeParams, $c: true, $r, _i, _i$1, _i$2, _r, _r$1, _ref, _ref$1, _ref$2, bound, check, dst, f, f$1, i, index$1, list$2, tparams, x, $s, $deferred};return $f; } } }; - $ptrType(Checker).prototype.newNamed = function newNamed(obj, underlying, methods) { - var check, methods, obj, typ$3, underlying; + $ptrType(Checker).prototype.bound = function bound(x) { + var {$24r, _r, _r$1, _ref, _tuple, check, op$1, op$2, t, t$1, wrap, x, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: check = this; - typ$3 = new Named.ptr(check, obj, underlying, ptrType$52.nil, new sync.Mutex.ptr(0, 0), 0, underlying, ptrType$48.nil, methods, $throwNilPointerError); - if ($interfaceIsEqual(obj.object.typ, $ifaceNil)) { - obj.object.typ = typ$3; - } - if (!(check === ptrType$5.nil)) { - check.needsCleanup(typ$3); + wrap = false; + _ref = x; + if ($assertType(_ref, ptrType$21, true)[1]) { + op$1 = _ref.$val; + wrap = op$1.Op === 88; + } else if ($assertType(_ref, ptrType$22, true)[1]) { + op$2 = _ref.$val; + wrap = op$2.Op === 18; } - return typ$3; + /* */ if (wrap) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (wrap) { */ case 1: + x = new ast.InterfaceType.ptr(0, new ast.FieldList.ptr(0, new sliceType$32([new ast.Field.ptr(ptrType$112.nil, sliceType$21.nil, x, ptrType$58.nil, ptrType$112.nil)]), 0), false); + _r = check.typ(x); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + t = _r; + _tuple = $assertType(t, ptrType$14, true); + t$1 = _tuple[0]; + if (!(t$1 === ptrType$14.nil)) { + t$1.implicit = true; + } + $s = -1; return t; + /* } */ case 2: + _r$1 = check.typ(x); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 5; case 5: return $24r; + /* */ } return; } var $f = {$blk: bound, $c: true, $r, $24r, _r, _r$1, _ref, _tuple, check, op$1, op$2, t, t$1, wrap, x, $s};return $f; }; - $ptrType(Checker).prototype.newNamedInstance = function newNamedInstance(pos, orig, targs, expanding) { - var {check, expanding, inst, obj, orig, pos, targs, typ$3, $s, $r, $c} = $restore(this, {pos, orig, targs, expanding}); + $ptrType(Checker).prototype.declareTypeParams = function declareTypeParams(tparams, names) { + var {_i, _r, _ref, check, name, names, tname, tpar, tparams, $s, $r, $c} = $restore(this, {tparams, names}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: check = this; - $r = assert(targs.$length > 0); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - obj = NewTypeName(pos, orig.obj.object.pkg, orig.obj.object.name, $ifaceNil); - inst = new instance.ptr(orig, newTypeList(targs), 0, ptrType$51.nil); - if (!(expanding === ptrType$9.nil) && expanding.Obj().object.pkg === obj.object.pkg) { - inst.ctxt = expanding.inst.ctxt; - } - typ$3 = new Named.ptr(check, obj, $ifaceNil, inst, new sync.Mutex.ptr(0, 0), 0, $ifaceNil, ptrType$48.nil, sliceType.nil, $throwNilPointerError); - obj.object.typ = typ$3; - if (!(check === ptrType$5.nil)) { - check.needsCleanup(typ$3); + _ref = names; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + name = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + tname = NewTypeName(name.Pos(), check.pkg, name.Name, $ifaceNil); + _r = check.newTypeParam(tname, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + tpar = _r; + $r = check.declare(check.environment.scope, name, tname, check.environment.scope.pos); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + tparams = $append(tparams, tpar); + _i++; + $s = 1; continue; + case 2: + /* */ if (check.conf._Trace && names.$length > 0) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (check.conf._Trace && names.$length > 0) { */ case 5: + $r = check.trace((0 >= names.$length ? ($throwRuntimeError("index out of range"), undefined) : names.$array[names.$offset + 0]).Pos(), "type params = %v", new sliceType$5([$subslice(tparams, (tparams.$length - names.$length >> 0))])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + $s = -1; return tparams; + /* */ } return; } var $f = {$blk: declareTypeParams, $c: true, $r, _i, _r, _ref, check, name, names, tname, tpar, tparams, $s};return $f; + }; + $ptrType(Checker).prototype.collectMethods = function collectMethods(obj) { + var {_arg, _arg$1, _arg$2, _arg$3, _entry, _entry$1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _tuple, alt, base, check, i, m, m$1, methods, mset, mset$24ptr, obj, $s, $r, $c} = $restore(this, {obj}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + base = [base]; + check = [check]; + check[0] = this; + methods = (_entry = $mapIndex(check[0].methods,ptrType$18.keyFor(obj)), _entry !== undefined ? _entry.v : sliceType.nil); + if (methods === sliceType.nil) { + $s = -1; return; } - $s = -1; return typ$3; - /* */ } return; } var $f = {$blk: newNamedInstance, $c: true, $r, check, expanding, inst, obj, orig, pos, targs, typ$3, $s};return $f; + $mapDelete(check[0].methods, ptrType$18.keyFor(obj)); + $r = assert(!new token.Pos((_entry$1 = $mapIndex(check[0].objMap,Object.keyFor(obj)), _entry$1 !== undefined ? _entry$1.v : ptrType$59.nil).tdecl.Assign).IsValid()); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + mset = false; + _tuple = $assertType(obj.object.typ, ptrType$10, true); + base[0] = _tuple[0]; + /* */ if (!(base[0] === ptrType$10.nil)) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!(base[0] === ptrType$10.nil)) { */ case 2: + $r = assert(base[0].TypeArgs().Len() === 0); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + check[0].later((function(base, check) { return function Checker·collectMethods·func1() { + var {$s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = check[0].checkFieldUniqueness(base[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·collectMethods·func1, $c: true, $r, $s};return $f; + }; })(base, check)).describef(obj, "verifying field uniqueness for %v", new sliceType$5([base[0]])); + i = 0; + /* while (true) { */ case 5: + _r = base[0].NumMethods(); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* if (!(i < _r)) { break; } */ if(!(i < _r)) { $s = 6; continue; } + _r$1 = base[0].Method(i); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + m = _r$1; + $r = assert(!(m.object.name === "_")); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = (mset$24ptr || (mset$24ptr = new ptrType$55(function() { return mset; }, function($v) { mset = $v; }))).insert(m); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $r = assert($interfaceIsEqual(_r$2, $ifaceNil)); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i + (1) >> 0; + $s = 5; continue; + case 6: + /* } */ case 3: + _ref = methods; + _i = 0; + /* while (true) { */ case 12: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 13; continue; } + m$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = assert(!(m$1.object.name === "_")); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$3 = (mset$24ptr || (mset$24ptr = new ptrType$55(function() { return mset; }, function($v) { mset = $v; }))).insert(m$1); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + alt = _r$3; + /* */ if (!($interfaceIsEqual(alt, $ifaceNil))) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (!($interfaceIsEqual(alt, $ifaceNil))) { */ case 16: + _r$4 = alt.Pos(); /* */ $s = 21; case 21: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$5 = new token.Pos(_r$4).IsValid(); /* */ $s = 22; case 22: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (_r$5) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (_r$5) { */ case 18: + _arg = m$1; + _arg$1 = new $String(obj.object.Name()); + _arg$2 = new $String(m$1.object.name); + _r$6 = alt.Pos(); /* */ $s = 23; case 23: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _arg$3 = new token.Pos(_r$6); + $r = check[0].errorf(_arg, 34, "method %s.%s already declared at %s", new sliceType$5([_arg$1, _arg$2, _arg$3])); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 20; continue; + /* } else { */ case 19: + $r = check[0].errorf(m$1, 34, "method %s.%s already declared", new sliceType$5([new $String(obj.object.Name()), new $String(m$1.object.name)])); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 20: + _i++; + /* continue; */ $s = 12; continue; + /* } */ case 17: + /* */ if (!(base[0] === ptrType$10.nil)) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (!(base[0] === ptrType$10.nil)) { */ case 26: + $r = base[0].AddMethod(m$1); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 27: + _i++; + $s = 12; continue; + case 13: + $s = -1; return; + /* */ } return; } var $f = {$blk: collectMethods, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _entry, _entry$1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _tuple, alt, base, check, i, m, m$1, methods, mset, mset$24ptr, obj, $s};return $f; }; - $ptrType(Named).prototype.cleanup = function cleanup$1() { - var {_r$1, _ref, t, $s, $r, $c} = $restore(this, {}); + $ptrType(Checker).prototype.checkFieldUniqueness = function checkFieldUniqueness(base) { + var {_i, _r, _r$1, _r$2, _r$3, _r$4, _ref, _tuple, alt, base, check, fld, i, m, mset, mset$24ptr, t, $s, $r, $c} = $restore(this, {base}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - $r = assert(t.inst === ptrType$52.nil || t.inst.orig.inst === ptrType$52.nil); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _ref = t.underlying; - /* */ if (_ref === $ifaceNil) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (_ref === $ifaceNil) { */ case 2: - if (t.TypeArgs().Len() === 0) { - $panic(new $String("nil underlying")); - } + check = this; + _r = base.under(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = $assertType(_r, ptrType$12, true); + t = _tuple[0]; + /* */ if (!(t === ptrType$12.nil)) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!(t === ptrType$12.nil)) { */ case 2: + mset = false; + i = 0; + /* while (true) { */ case 4: + _r$1 = base.NumMethods(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* if (!(i < _r$1)) { break; } */ if(!(i < _r$1)) { $s = 5; continue; } + _r$2 = base.Method(i); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + m = _r$2; + $r = assert(!(m.object.name === "_")); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$3 = (mset$24ptr || (mset$24ptr = new ptrType$55(function() { return mset; }, function($v) { mset = $v; }))).insert(m); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $r = assert($interfaceIsEqual(_r$3, $ifaceNil)); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i + (1) >> 0; $s = 4; continue; - /* } else if ($assertType(_ref, ptrType$9, true)[1]) { */ case 3: - _r$1 = t.under(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - /* } */ case 4: - t.check = ptrType$5.nil; + case 5: + _ref = t.fields; + _i = 0; + /* while (true) { */ case 11: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 12; continue; } + fld = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + /* */ if (!(fld.object.name === "_")) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (!(fld.object.name === "_")) { */ case 13: + _r$4 = (mset$24ptr || (mset$24ptr = new ptrType$55(function() { return mset; }, function($v) { mset = $v; }))).insert(fld); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + alt = _r$4; + /* */ if (!($interfaceIsEqual(alt, $ifaceNil))) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (!($interfaceIsEqual(alt, $ifaceNil))) { */ case 16: + $unused($assertType(alt, ptrType$2)); + $r = check.errorf(alt, 33, "field and method with the same name %s", new sliceType$5([new $String(fld.object.name)])); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.reportAltDecl(fld); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 17: + /* } */ case 14: + _i++; + $s = 11; continue; + case 12: + /* } */ case 3: $s = -1; return; - /* */ } return; } var $f = {$blk: cleanup$1, $c: true, $r, _r$1, _ref, t, $s};return $f; - }; - $ptrType(Named).prototype.Obj = function Obj$2() { - var t; - t = this; - if (t.inst === ptrType$52.nil) { - return t.obj; - } - return t.inst.orig.obj; + /* */ } return; } var $f = {$blk: checkFieldUniqueness, $c: true, $r, _i, _r, _r$1, _r$2, _r$3, _r$4, _ref, _tuple, alt, base, check, fld, i, m, mset, mset$24ptr, t, $s};return $f; }; - $ptrType(Named).prototype.Origin = function Origin$2() { - var t; - t = this; - if (t.inst === ptrType$52.nil) { - return t; + $ptrType(Checker).prototype.funcDecl = function funcDecl$1(obj, decl$1) { + var {check, decl$1, fdecl, obj, saved, sig, $s, $r, $c} = $restore(this, {obj, decl$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = [check]; + decl$1 = [decl$1]; + fdecl = [fdecl]; + obj = [obj]; + sig = [sig]; + check[0] = this; + $r = assert($interfaceIsEqual(obj[0].object.typ, $ifaceNil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = assert($interfaceIsEqual(check[0].environment.iota, $ifaceNil)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + sig[0] = new Signature.ptr(ptrType$49.nil, ptrType$49.nil, ptrType.nil, ptrType$17.nil, ptrType$16.nil, ptrType$16.nil, false); + obj[0].object.typ = sig[0]; + saved = obj[0].object.color_; + obj[0].object.color_ = 1; + fdecl[0] = decl$1[0].fdecl; + $r = check[0].funcType(sig[0], fdecl[0].Recv, fdecl[0].Type); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + obj[0].object.color_ = saved; + /* */ if (fdecl[0].Type.TypeParams.NumFields() > 0 && fdecl[0].Body === ptrType$75.nil) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (fdecl[0].Type.TypeParams.NumFields() > 0 && fdecl[0].Body === ptrType$75.nil) { */ case 4: + $r = check[0].softErrorf(fdecl[0].Name, 131, "generic function is missing function body", sliceType$5.nil); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 5: + if (!check[0].conf.IgnoreFuncBodies && !(fdecl[0].Body === ptrType$75.nil)) { + check[0].later((function(check, decl$1, fdecl, obj, sig) { return function Checker·funcDecl·func1() { + var {$s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = check[0].funcBody(decl$1[0], obj[0].object.name, sig[0], fdecl[0].Body, $ifaceNil); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·funcDecl·func1, $c: true, $r, $s};return $f; + }; })(check, decl$1, fdecl, obj, sig)).describef(obj[0], "func %s", new sliceType$5([new $String(obj[0].object.name)])); } - return t.inst.orig; + $s = -1; return; + /* */ } return; } var $f = {$blk: funcDecl$1, $c: true, $r, check, decl$1, fdecl, obj, saved, sig, $s};return $f; }; - $ptrType(Named).prototype.TypeParams = function TypeParams$1() { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); + $ptrType(Checker).prototype.declStmt = function declStmt(d) { + var {check, d, pkg, $s, $r, $c} = $restore(this, {d}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = t.resolve(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1.tparams; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: TypeParams$1, $c: true, $r, $24r, _r$1, t, $s};return $f; + check = [check]; + pkg = [pkg]; + check[0] = this; + pkg[0] = check[0].pkg; + $r = check[0].walkDecl(d, (function(check, pkg) { return function Checker·declStmt·func1(d$1) { + var {_1, _arg, _arg$1, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _r, _r$1, _r$2, _r$3, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, d$1, d$2, d$3, d$4, d$5, i, i$1, i$2, i$3, i$4, init$6, init$7, lhs, lhs$1, lhs0, name, name$1, name$2, name$3, obj, obj$1, obj$2, obj$3, scopePos$2, scopePos$3, scopePos$4, top, top$1, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {d$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref = d$1; + /* */ if ($assertType(_ref, constDecl, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, varDecl, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, typeDecl, true)[1]) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if ($assertType(_ref, constDecl, true)[1]) { */ case 1: + d$2 = $clone(_ref.$val, constDecl); + top = check[0].delayed.$length; + lhs = $makeSlice(sliceType$33, d$2.spec.Names.$length); + _ref$1 = d$2.spec.Names; + _i = 0; + /* while (true) { */ case 6: + /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 7; continue; } + i = _i; + name = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + obj = NewConst(name.Pos(), pkg[0], name.Name, $ifaceNil, constant.MakeInt64((new $Int64(0, d$2.iota)))); + ((i < 0 || i >= lhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : lhs.$array[lhs.$offset + i] = obj); + init$6 = $ifaceNil; + if (i < d$2.init.$length) { + init$6 = (x = d$2.init, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + } + $r = check[0].constDecl(obj, d$2.typ, init$6, d$2.inherited); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 6; continue; + case 7: + $r = check[0].processDelayed(top); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r = d$2.spec.End(); /* */ $s = 10; case 10: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + scopePos$2 = _r; + _ref$2 = d$2.spec.Names; + _i$1 = 0; + /* while (true) { */ case 11: + /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 12; continue; } + i$1 = _i$1; + name$1 = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); + $r = check[0].declare(check[0].environment.scope, name$1, ((i$1 < 0 || i$1 >= lhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : lhs.$array[lhs.$offset + i$1]), scopePos$2); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + $s = 11; continue; + case 12: + $s = 5; continue; + /* } else if ($assertType(_ref, varDecl, true)[1]) { */ case 2: + d$3 = $clone(_ref.$val, varDecl); + top$1 = check[0].delayed.$length; + lhs0 = $makeSlice(sliceType$9, d$3.spec.Names.$length); + _ref$3 = d$3.spec.Names; + _i$2 = 0; + while (true) { + if (!(_i$2 < _ref$3.$length)) { break; } + i$2 = _i$2; + name$2 = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]); + ((i$2 < 0 || i$2 >= lhs0.$length) ? ($throwRuntimeError("index out of range"), undefined) : lhs0.$array[lhs0.$offset + i$2] = NewVar(name$2.Pos(), pkg[0], name$2.Name, $ifaceNil)); + _i$2++; + } + _ref$4 = lhs0; + _i$3 = 0; + /* while (true) { */ case 14: + /* if (!(_i$3 < _ref$4.$length)) { break; } */ if(!(_i$3 < _ref$4.$length)) { $s = 15; continue; } + i$3 = _i$3; + obj$1 = ((_i$3 < 0 || _i$3 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$3]); + lhs$1 = sliceType$9.nil; + init$7 = $ifaceNil; + _1 = d$3.spec.Values.$length; + if (_1 === (d$3.spec.Names.$length)) { + init$7 = (x$1 = d$3.spec.Values, ((i$3 < 0 || i$3 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$3])); + } else if (_1 === (1)) { + lhs$1 = lhs0; + init$7 = (x$2 = d$3.spec.Values, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])); + } else if (i$3 < d$3.spec.Values.$length) { + init$7 = (x$3 = d$3.spec.Values, ((i$3 < 0 || i$3 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + i$3])); + } + $r = check[0].varDecl(obj$1, lhs$1, d$3.spec.Type, init$7); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (d$3.spec.Values.$length === 1) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (d$3.spec.Values.$length === 1) { */ case 17: + /* */ if (false) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (false) { */ case 19: + _ref$5 = lhs0; + _i$4 = 0; + /* while (true) { */ case 21: + /* if (!(_i$4 < _ref$5.$length)) { break; } */ if(!(_i$4 < _ref$5.$length)) { $s = 22; continue; } + obj$2 = ((_i$4 < 0 || _i$4 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$4]); + $r = assert(!($interfaceIsEqual(obj$2.object.typ, $ifaceNil))); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$4++; + $s = 21; continue; + case 22: + /* } */ case 20: + /* break; */ $s = 15; continue; + /* } */ case 18: + _i$3++; + $s = 14; continue; + case 15: + $r = check[0].processDelayed(top$1); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = d$3.spec.End(); /* */ $s = 25; case 25: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + scopePos$3 = _r$1; + _ref$6 = d$3.spec.Names; + _i$5 = 0; + /* while (true) { */ case 26: + /* if (!(_i$5 < _ref$6.$length)) { break; } */ if(!(_i$5 < _ref$6.$length)) { $s = 27; continue; } + i$4 = _i$5; + name$3 = ((_i$5 < 0 || _i$5 >= _ref$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$6.$array[_ref$6.$offset + _i$5]); + $r = check[0].declare(check[0].environment.scope, name$3, ((i$4 < 0 || i$4 >= lhs0.$length) ? ($throwRuntimeError("index out of range"), undefined) : lhs0.$array[lhs0.$offset + i$4]), scopePos$3); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$5++; + $s = 26; continue; + case 27: + $s = 5; continue; + /* } else if ($assertType(_ref, typeDecl, true)[1]) { */ case 3: + d$4 = $clone(_ref.$val, typeDecl); + obj$3 = NewTypeName(d$4.spec.Name.Pos(), pkg[0], d$4.spec.Name.Name, $ifaceNil); + scopePos$4 = d$4.spec.Name.Pos(); + $r = check[0].declare(check[0].environment.scope, d$4.spec.Name, obj$3, scopePos$4); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = obj$3.object.setColor(2 + ((check[0].push(obj$3) >>> 0)) >>> 0); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].typeDecl(obj$3, d$4.spec, ptrType$10.nil); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].pop().setColor(1); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 5; continue; + /* } else { */ case 4: + d$5 = _ref; + _r$2 = d$5.node(); /* */ $s = 33; case 33: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg = _r$2; + _r$3 = d$5.node(); /* */ $s = 34; case 34: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _arg$1 = _r$3; + $r = check[0].errorf(_arg, -1, "unknown ast.Decl node %T", new sliceType$5([_arg$1])); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 5: + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·declStmt·func1, $c: true, $r, _1, _arg, _arg$1, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _r, _r$1, _r$2, _r$3, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, d$1, d$2, d$3, d$4, d$5, i, i$1, i$2, i$3, i$4, init$6, init$7, lhs, lhs$1, lhs0, name, name$1, name$2, name$3, obj, obj$1, obj$2, obj$3, scopePos$2, scopePos$3, scopePos$4, top, top$1, x, x$1, x$2, x$3, $s};return $f; + }; })(check, pkg)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: declStmt, $c: true, $r, check, d, pkg, $s};return $f; }; - $ptrType(Named).prototype.SetTypeParams = function SetTypeParams(tparams) { - var {_r$1, t, tparams, $s, $r, $c} = $restore(this, {tparams}); + $ptrType(Checker).prototype.conversion = function conversion(x, T) { + var {T, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _v, _v$1, _v$2, _v$3, _v$4, cause, check, constArg, constConvertibleTo, final$1, ok, x, $s, $r, $c} = $restore(this, {x, T}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - $r = assert(t.inst === ptrType$52.nil); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$1 = t.resolve(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1.tparams = bindTParams(tparams); + T = [T]; + cause = [cause]; + check = [check]; + constConvertibleTo = [constConvertibleTo]; + x = [x]; + check[0] = this; + constArg = x[0].mode === 4; + constConvertibleTo[0] = (function(T, cause, check, constConvertibleTo, x) { return function Checker·conversion·func1(T$1, val) { + var {T$1, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, _v, codepoint, i, ok, t, val, $s, $r, $c} = $restore(this, {T$1, val}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = under(T$1); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = $assertType(_r, ptrType$4, true); + t = _tuple[0]; + /* */ if (t === ptrType$4.nil) { $s = 3; continue; } + _r$1 = representableConst(x[0].val, check[0], t, val); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 4; continue; } + _r$2 = isInteger(x[0].typ); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + if (!(_r$2)) { _v = false; $s = 8; continue s; } + _r$3 = isString(t); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v = _r$3; case 8: + /* */ if (_v) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (t === ptrType$4.nil) { */ case 3: + $s = 6; continue; + /* } else if (_r$1) { */ case 4: + $s = -1; return true; + /* } else if (_v) { */ case 5: + codepoint = 65533; + _r$4 = constant.Uint64Val(x[0].val); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$1 = _r$4; + i = _tuple$1[0]; + ok = _tuple$1[1]; + if (ok && (i.$high < 0 || (i.$high === 0 && i.$low <= 1114111))) { + codepoint = ((i.$low >> 0)); + } + if (!(val === ptrType$51.nil)) { + val.$set(constant.MakeString(($encodeRune(codepoint)))); + } + $s = -1; return true; + /* } */ case 6: + case 1: + $s = -1; return false; + /* */ } return; } var $f = {$blk: Checker·conversion·func1, $c: true, $r, T$1, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, _v, codepoint, i, ok, t, val, $s};return $f; + }; })(T, cause, check, constConvertibleTo, x); + ok = false; + cause[0] = ""; + if (!(constArg)) { _v = false; $s = 6; continue s; } + _r = isConstType(T[0]); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r; case 6: + /* */ if (_v) { $s = 2; continue; } + /* */ if (constArg && isTypeParam(T[0])) { $s = 3; continue; } + _r$1 = x[0].convertibleTo(check[0], T[0], (cause.$ptr || (cause.$ptr = new ptrType$35(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, cause)))); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_v) { */ case 2: + _r$2 = constConvertibleTo[0](T[0], (x[0] === ptrType$63.nil && $throwNilPointerError(), (x[0].$ptr_val || (x[0].$ptr_val = new ptrType$51(function() { return this.$target.val; }, function($v) { this.$target.val = $v; }, x[0]))))); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + ok = _r$2; + $s = 5; continue; + /* } else if (constArg && isTypeParam(T[0])) { */ case 3: + _r$3 = $assertType(T[0], ptrType$15).underIs((function(T, cause, check, constConvertibleTo, x) { return function Checker·conversion·func2(u) { + var {_r$3, _r$4, _r$5, _r$6, _r$7, _v$1, u, $s, $r, $c} = $restore(this, {u}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + /* */ if ($interfaceIsEqual(u, $ifaceNil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ($interfaceIsEqual(u, $ifaceNil)) { */ case 1: + _r$3 = check[0].sprintf("%s does not contain specific types", new sliceType$5([T[0]])); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + cause[0] = _r$3; + $s = -1; return false; + /* } */ case 2: + _r$4 = isString(x[0].typ); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + if (!(_r$4)) { _v$1 = false; $s = 6; continue s; } + _r$5 = isBytesOrRunes(u); /* */ $s = 8; case 8: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _v$1 = _r$5; case 6: + /* */ if (_v$1) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_v$1) { */ case 4: + $s = -1; return true; + /* } */ case 5: + _r$6 = constConvertibleTo[0](u, ptrType$51.nil); /* */ $s = 11; case 11: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + /* */ if (!_r$6) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!_r$6) { */ case 9: + _r$7 = check[0].sprintf("cannot convert %s to type %s (in %s)", new sliceType$5([x[0], u, T[0]])); /* */ $s = 12; case 12: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + cause[0] = _r$7; + $s = -1; return false; + /* } */ case 10: + $s = -1; return true; + /* */ } return; } var $f = {$blk: Checker·conversion·func2, $c: true, $r, _r$3, _r$4, _r$5, _r$6, _r$7, _v$1, u, $s};return $f; + }; })(T, cause, check, constConvertibleTo, x)); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + ok = _r$3; + x[0].mode = 7; + $s = 5; continue; + /* } else if (_r$1) { */ case 4: + ok = true; + x[0].mode = 7; + /* } */ case 5: + case 1: + /* */ if (!ok) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (!ok) { */ case 11: + /* */ if (!(cause[0] === "")) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (!(cause[0] === "")) { */ case 13: + $r = check[0].errorf(x[0], 96, "cannot convert %s to type %s: %s", new sliceType$5([x[0], T[0], new $String(cause[0])])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 15; continue; + /* } else { */ case 14: + $r = check[0].errorf(x[0], 96, "cannot convert %s to type %s", new sliceType$5([x[0], T[0]])); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 15: + x[0].mode = 0; + $s = -1; return; + /* } */ case 12: + /* */ if (isUntyped(x[0].typ)) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (isUntyped(x[0].typ)) { */ case 18: + final$1 = T[0]; + _r$4 = isNonTypeParamInterface(T[0]); /* */ $s = 24; case 24: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + if (_r$4) { _v$1 = true; $s = 23; continue s; } + if (!(constArg)) { _v$2 = false; $s = 25; continue s; } + _r$5 = isConstType(T[0]); /* */ $s = 26; case 26: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _v$2 = !_r$5; case 25: + _v$1 = _v$2; case 23: + /* */ if (_v$1 || x[0].isNil()) { $s = 20; continue; } + if (!(x[0].mode === 4)) { _v$4 = false; $s = 28; continue s; } + _r$6 = isInteger(x[0].typ); /* */ $s = 29; case 29: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _v$4 = _r$6; case 28: + if (!(_v$4)) { _v$3 = false; $s = 27; continue s; } + _r$7 = allString(T[0]); /* */ $s = 30; case 30: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _v$3 = _r$7; case 27: + /* */ if (_v$3) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (_v$1 || x[0].isNil()) { */ case 20: + final$1 = Default(x[0].typ); + $s = 22; continue; + /* } else if (_v$3) { */ case 21: + final$1 = x[0].typ; + /* } */ case 22: + $r = check[0].updateExprType(x[0].expr, final$1, true); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 19: + x[0].typ = T[0]; $s = -1; return; - /* */ } return; } var $f = {$blk: SetTypeParams, $c: true, $r, _r$1, t, tparams, $s};return $f; + /* */ } return; } var $f = {$blk: conversion, $c: true, $r, T, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _v, _v$1, _v$2, _v$3, _v$4, cause, check, constArg, constConvertibleTo, final$1, ok, x, $s};return $f; }; - $ptrType(Named).prototype.TypeArgs = function TypeArgs() { - var t; - t = this; - if (t.inst === ptrType$52.nil) { - return ptrType$56.nil; - } - return t.inst.targs; - }; - $ptrType(Named).prototype.NumMethods = function NumMethods$1() { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); + $ptrType(operand).prototype.convertibleTo = function convertibleTo(check, T, cause) { + var {$24r, $24r$1, $24r$2, T, T$1, Tp, Tu, V, V$1, Vp, Vu, _arg, _arg$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _v, _v$1, _v$10, _v$2, _v$3, _v$4, _v$5, _v$6, _v$7, _v$8, _v$9, a, a$1, a$2, cause, check, errorf$2, ok, ok$1, ok$2, s, x, x$1, x$2, $s, $r, $c} = $restore(this, {check, T, cause}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = t.Origin().resolve(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1.methods.$length; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: NumMethods$1, $c: true, $r, $24r, _r$1, t, $s};return $f; - }; - $ptrType(Named).prototype.Method = function Method$1(i) { - var {$24r, _r$1, _r$2, i, orig, t, x, x$1, x$2, x$3, $s, $deferred, $r, $c} = $restore(this, {i}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - t = this; - _r$1 = t.resolve(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - if (t.state() >= 2) { - $s = -1; return (x = t.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + T = [T]; + Tp = [Tp]; + Vp = [Vp]; + cause = [cause]; + check = [check]; + errorf$2 = [errorf$2]; + x = [x]; + x$1 = [x$1]; + x$2 = [x$2]; + x$2[0] = this; + _r = x$2[0].assignableTo(check[0], T[0], cause[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + ok = _tuple[0]; + if (ok) { + $s = -1; return true; } - $r = assert(!(t.inst === ptrType$52.nil)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - orig = t.inst.orig; - $r = t.mu.Lock(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(t.mu, "Unlock"), []]); - /* */ if (!((t.methods.$length === orig.methods.$length))) { $s = 4; continue; } + V = x$2[0].typ; + _r$1 = under(V); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + Vu = _r$1; + _r$2 = under(T[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + Tu = _r$2; + _tuple$1 = $assertType(V, ptrType$15, true); + Vp[0] = _tuple$1[0]; + _tuple$2 = $assertType(T[0], ptrType$15, true); + Tp[0] = _tuple$2[0]; + _r$3 = IdenticalIgnoreTags(Vu, Tu); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3 && Vp[0] === ptrType$15.nil && Tp[0] === ptrType$15.nil) { $s = 4; continue; } /* */ $s = 5; continue; - /* if (!((t.methods.$length === orig.methods.$length))) { */ case 4: - $r = assert(t.methods.$length === 0); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - t.methods = $makeSlice(sliceType, orig.methods.$length); + /* if (_r$3 && Vp[0] === ptrType$15.nil && Tp[0] === ptrType$15.nil) { */ case 4: + $s = -1; return true; /* } */ case 5: - /* */ if ((x$1 = t.methods, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])) === ptrType$2.nil) { $s = 7; continue; } + _tuple$3 = $assertType(V, ptrType$28, true); + V$1 = _tuple$3[0]; + ok$1 = _tuple$3[1]; + /* */ if (ok$1) { $s = 7; continue; } /* */ $s = 8; continue; - /* if ((x$1 = t.methods, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])) === ptrType$2.nil) { */ case 7: - $r = assert(!(t.inst.ctxt === ptrType$51.nil)); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$2 = t.expandMethod(i); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - (x$2 = t.methods, ((i < 0 || i >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i] = _r$2)); - t.inst.expandedMethods = t.inst.expandedMethods + (1) >> 0; - if (t.inst.expandedMethods === orig.methods.$length) { - t.setState(2); - t.inst.ctxt = ptrType$51.nil; - } + /* if (ok$1) { */ case 7: + _tuple$4 = $assertType(T[0], ptrType$28, true); + T$1 = _tuple$4[0]; + ok$2 = _tuple$4[1]; + /* */ if (ok$2) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (ok$2) { */ case 9: + _r$4 = under(V$1.base); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _arg = _r$4; + _r$5 = under(T$1.base); /* */ $s = 14; case 14: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _arg$1 = _r$5; + _r$6 = IdenticalIgnoreTags(_arg, _arg$1); /* */ $s = 15; case 15: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + /* */ if (_r$6 && !isTypeParam(V$1.base) && !isTypeParam(T$1.base)) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (_r$6 && !isTypeParam(V$1.base) && !isTypeParam(T$1.base)) { */ case 11: + $s = -1; return true; + /* } */ case 12: + /* } */ case 10: /* } */ case 8: - $24r = (x$3 = t.methods, ((i < 0 || i >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + i])); - $s = 11; case 11: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$2.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Method$1, $c: true, $r, $24r, _r$1, _r$2, i, orig, t, x, x$1, x$2, x$3, $s, $deferred};return $f; } } - }; - $ptrType(Named).prototype.expandMethod = function expandMethod(i) { - var {_r$1, _r$2, _r$3, _tuple, check, copy, ctxt, i, origSig, origm, rbase, rtyp, sig, smap, t, $s, $r, $c} = $restore(this, {i}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - copy = [copy]; - t = this; - _r$1 = t.inst.orig.Method(i); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - origm = _r$1; - $r = assert(!(origm === ptrType$2.nil)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - check = t.check; - /* */ if (!(check === ptrType$5.nil)) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!(check === ptrType$5.nil)) { */ case 3: - $r = check.objDecl(origm, ptrType$9.nil); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 4: - origSig = $assertType(origm.object.typ, ptrType$27); - _tuple = deref(origSig.Recv().object.Type()); - rbase = _tuple[0]; - if ($interfaceIsEqual(rbase, t)) { - $s = -1; return origm; - } - sig = origSig; - /* */ if (origSig.RecvTypeParams().Len() === t.inst.targs.Len()) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (origSig.RecvTypeParams().Len() === t.inst.targs.Len()) { */ case 6: - _r$2 = makeSubstMap(origSig.RecvTypeParams().list(), t.inst.targs.list()); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - smap = _r$2; - ctxt = ptrType$51.nil; - if (!(check === ptrType$5.nil)) { - ctxt = check.context(); - } - _r$3 = check.subst(origm.object.pos, origSig, smap, t, ctxt); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - sig = $assertType(_r$3, ptrType$27); - /* } */ case 7: - if (sig === origSig) { - copy[0] = $clone(origSig, Signature); - sig = copy[0]; - } - rtyp = $ifaceNil; - if (origm.hasPtrRecv()) { - rtyp = NewPointer(t); - } else { - rtyp = t; - } - sig.recv = substVar(origSig.recv, rtyp); - $s = -1; return substFunc(origm, sig); - /* */ } return; } var $f = {$blk: expandMethod, $c: true, $r, _r$1, _r$2, _r$3, _tuple, check, copy, ctxt, i, origSig, origm, rbase, rtyp, sig, smap, t, $s};return $f; - }; - $ptrType(Named).prototype.SetUnderlying = function SetUnderlying(underlying) { - var {_r$1, _tuple, ok, t, underlying, $s, $r, $c} = $restore(this, {underlying}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - $r = assert(t.inst === ptrType$52.nil); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if ($interfaceIsEqual(underlying, $ifaceNil)) { - $panic(new $String("underlying type must not be nil")); - } - _tuple = $assertType(underlying, ptrType$9, true); - ok = _tuple[1]; - if (ok) { - $panic(new $String("underlying type must not be *Named")); - } - _r$1 = t.resolve(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1.underlying = underlying; - if ($interfaceIsEqual(t.fromRHS, $ifaceNil)) { - t.fromRHS = underlying; + _r$7 = isIntegerOrFloat(Vu); /* */ $s = 19; case 19: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + if (!(_r$7)) { _v = false; $s = 18; continue s; } + _r$8 = isIntegerOrFloat(Tu); /* */ $s = 20; case 20: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _v = _r$8; case 18: + /* */ if (_v) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (_v) { */ case 16: + $s = -1; return true; + /* } */ case 17: + _r$9 = isComplex(Vu); /* */ $s = 24; case 24: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + if (!(_r$9)) { _v$1 = false; $s = 23; continue s; } + _r$10 = isComplex(Tu); /* */ $s = 25; case 25: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _v$1 = _r$10; case 23: + /* */ if (_v$1) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (_v$1) { */ case 21: + $s = -1; return true; + /* } */ case 22: + _r$11 = isInteger(Vu); /* */ $s = 30; case 30: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + if (_r$11) { _v$3 = true; $s = 29; continue s; } + _r$12 = isBytesOrRunes(Vu); /* */ $s = 31; case 31: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _v$3 = _r$12; case 29: + if (!(_v$3)) { _v$2 = false; $s = 28; continue s; } + _r$13 = isString(Tu); /* */ $s = 32; case 32: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _v$2 = _r$13; case 28: + /* */ if (_v$2) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (_v$2) { */ case 26: + $s = -1; return true; + /* } */ case 27: + _r$14 = isString(Vu); /* */ $s = 36; case 36: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + if (!(_r$14)) { _v$4 = false; $s = 35; continue s; } + _r$15 = isBytesOrRunes(Tu); /* */ $s = 37; case 37: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + _v$4 = _r$15; case 35: + /* */ if (_v$4) { $s = 33; continue; } + /* */ $s = 34; continue; + /* if (_v$4) { */ case 33: + $s = -1; return true; + /* } */ case 34: + _r$16 = isPointer(Vu); /* */ $s = 42; case 42: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + if (_r$16) { _v$6 = true; $s = 41; continue s; } + _r$17 = isUintptr(Vu); /* */ $s = 43; case 43: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + _v$6 = _r$17; case 41: + if (!(_v$6)) { _v$5 = false; $s = 40; continue s; } + _r$18 = isUnsafePointer(Tu); /* */ $s = 44; case 44: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + _v$5 = _r$18; case 40: + /* */ if (_v$5) { $s = 38; continue; } + /* */ $s = 39; continue; + /* if (_v$5) { */ case 38: + $s = -1; return true; + /* } */ case 39: + _r$19 = isUnsafePointer(Vu); /* */ $s = 48; case 48: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + if (!(_r$19)) { _v$7 = false; $s = 47; continue s; } + _r$20 = isPointer(Tu); /* */ $s = 50; case 50: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + if (_r$20) { _v$8 = true; $s = 49; continue s; } + _r$21 = isUintptr(Tu); /* */ $s = 51; case 51: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + _v$8 = _r$21; case 49: + _v$7 = _v$8; case 47: + /* */ if (_v$7) { $s = 45; continue; } + /* */ $s = 46; continue; + /* if (_v$7) { */ case 45: + $s = -1; return true; + /* } */ case 46: + _tuple$5 = $assertType(Vu, ptrType$27, true); + s = _tuple$5[0]; + /* */ if (!(s === ptrType$27.nil)) { $s = 52; continue; } + /* */ $s = 53; continue; + /* if (!(s === ptrType$27.nil)) { */ case 52: + _ref = Tu; + /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 54; continue; } + /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 55; continue; } + /* */ $s = 56; continue; + /* if ($assertType(_ref, ptrType$11, true)[1]) { */ case 54: + a = _ref.$val; + _r$22 = Identical(s.Elem(), a.Elem()); /* */ $s = 59; case 59: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + /* */ if (_r$22) { $s = 57; continue; } + /* */ $s = 58; continue; + /* if (_r$22) { */ case 57: + if (check[0] === ptrType$6.nil) { _v$9 = true; $s = 62; continue s; } + _r$23 = check[0].allowVersion(check[0].pkg, x$2[0], $clone(go1_20, version)); /* */ $s = 63; case 63: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + _v$9 = _r$23; case 62: + /* */ if (_v$9) { $s = 60; continue; } + /* */ $s = 61; continue; + /* if (_v$9) { */ case 60: + $s = -1; return true; + /* } */ case 61: + if (!(cause[0] === ptrType$35.nil)) { + cause[0].$set("conversion of slices to arrays requires go1.20 or later"); + } + $s = -1; return false; + /* } */ case 58: + $s = 56; continue; + /* } else if ($assertType(_ref, ptrType$28, true)[1]) { */ case 55: + a$1 = _ref.$val; + _r$24 = under(a$1.Elem()); /* */ $s = 64; case 64: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple$6 = $assertType(_r$24, ptrType$11, true); + a$2 = _tuple$6[0]; + /* */ if (!(a$2 === ptrType$11.nil)) { $s = 65; continue; } + /* */ $s = 66; continue; + /* if (!(a$2 === ptrType$11.nil)) { */ case 65: + _r$25 = Identical(s.Elem(), a$2.Elem()); /* */ $s = 69; case 69: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + /* */ if (_r$25) { $s = 67; continue; } + /* */ $s = 68; continue; + /* if (_r$25) { */ case 67: + if (check[0] === ptrType$6.nil) { _v$10 = true; $s = 72; continue s; } + _r$26 = check[0].allowVersion(check[0].pkg, x$2[0], $clone(go1_17, version)); /* */ $s = 73; case 73: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + _v$10 = _r$26; case 72: + /* */ if (_v$10) { $s = 70; continue; } + /* */ $s = 71; continue; + /* if (_v$10) { */ case 70: + $s = -1; return true; + /* } */ case 71: + if (!(cause[0] === ptrType$35.nil)) { + cause[0].$set("conversion of slices to array pointers requires go1.17 or later"); + } + $s = -1; return false; + /* } */ case 68: + /* } */ case 66: + /* } */ case 56: + /* } */ case 53: + if (Vp[0] === ptrType$15.nil && Tp[0] === ptrType$15.nil) { + $s = -1; return false; } - $s = -1; return; - /* */ } return; } var $f = {$blk: SetUnderlying, $c: true, $r, _r$1, _tuple, ok, t, underlying, $s};return $f; + errorf$2[0] = (function(T, Tp, Vp, cause, check, errorf$2, x, x$1, x$2) { return function operand·convertibleTo·func1(format, args) { + var {_r$27, args, format, msg$1, $s, $r, $c} = $restore(this, {format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + /* */ if (!(check[0] === ptrType$6.nil) && !(cause[0] === ptrType$35.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(check[0] === ptrType$6.nil) && !(cause[0] === ptrType$35.nil)) { */ case 1: + _r$27 = check[0].sprintf(format, args); /* */ $s = 3; case 3: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + msg$1 = _r$27; + if (!(cause[0].$get() === "")) { + msg$1 = msg$1 + ("\n\t" + cause[0].$get()); + } + cause[0].$set(msg$1); + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: operand·convertibleTo·func1, $c: true, $r, _r$27, args, format, msg$1, $s};return $f; + }; })(T, Tp, Vp, cause, check, errorf$2, x, x$1, x$2); + /* */ if (!(Vp[0] === ptrType$15.nil) && !(Tp[0] === ptrType$15.nil)) { $s = 75; continue; } + /* */ if (!(Vp[0] === ptrType$15.nil)) { $s = 76; continue; } + /* */ if (!(Tp[0] === ptrType$15.nil)) { $s = 77; continue; } + /* */ $s = 78; continue; + /* if (!(Vp[0] === ptrType$15.nil) && !(Tp[0] === ptrType$15.nil)) { */ case 75: + x[0] = $clone((x$2[0] === ptrType$63.nil && $throwNilPointerError(), x$2[0]), operand); + _r$27 = Vp[0].is((function(T, Tp, Vp, cause, check, errorf$2, x, x$1, x$2) { return function operand·convertibleTo·func2(V$2) { + var {$24r, V$2, _r$27, $s, $r, $c} = $restore(this, {V$2}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + V$2 = [V$2]; + if (V$2[0] === ptrType$5.nil) { + $s = -1; return false; + } + x[0].typ = V$2[0].typ; + _r$27 = Tp[0].is((function(T, Tp, V$2, Vp, cause, check, errorf$2, x, x$1, x$2) { return function operand·convertibleTo·func2·func1(T$2) { + var {T$2, _r$27, $s, $r, $c} = $restore(this, {T$2}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (T$2 === ptrType$5.nil) { + $s = -1; return false; + } + _r$27 = x[0].convertibleTo(check[0], T$2.typ, cause[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + /* */ if (!_r$27) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!_r$27) { */ case 1: + $r = errorf$2[0]("cannot convert %s (in %s) to type %s (in %s)", new sliceType$5([V$2[0].typ, Vp[0], T$2.typ, Tp[0]])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; + /* } */ case 2: + $s = -1; return true; + /* */ } return; } var $f = {$blk: operand·convertibleTo·func2·func1, $c: true, $r, T$2, _r$27, $s};return $f; + }; })(T, Tp, V$2, Vp, cause, check, errorf$2, x, x$1, x$2)); /* */ $s = 1; case 1: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + $24r = _r$27; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: operand·convertibleTo·func2, $c: true, $r, $24r, V$2, _r$27, $s};return $f; + }; })(T, Tp, Vp, cause, check, errorf$2, x, x$1, x$2)); /* */ $s = 79; case 79: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + $24r = _r$27; + $s = 80; case 80: return $24r; + /* } else if (!(Vp[0] === ptrType$15.nil)) { */ case 76: + x$1[0] = $clone((x$2[0] === ptrType$63.nil && $throwNilPointerError(), x$2[0]), operand); + _r$28 = Vp[0].is((function(T, Tp, Vp, cause, check, errorf$2, x, x$1, x$2) { return function operand·convertibleTo·func3(V$2) { + var {V$2, _r$28, $s, $r, $c} = $restore(this, {V$2}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (V$2 === ptrType$5.nil) { + $s = -1; return false; + } + x$1[0].typ = V$2.typ; + _r$28 = x$1[0].convertibleTo(check[0], T[0], cause[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + /* */ if (!_r$28) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!_r$28) { */ case 1: + $r = errorf$2[0]("cannot convert %s (in %s) to type %s", new sliceType$5([V$2.typ, Vp[0], T[0]])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; + /* } */ case 2: + $s = -1; return true; + /* */ } return; } var $f = {$blk: operand·convertibleTo·func3, $c: true, $r, V$2, _r$28, $s};return $f; + }; })(T, Tp, Vp, cause, check, errorf$2, x, x$1, x$2)); /* */ $s = 81; case 81: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + $24r$1 = _r$28; + $s = 82; case 82: return $24r$1; + /* } else if (!(Tp[0] === ptrType$15.nil)) { */ case 77: + _r$29 = Tp[0].is((function(T, Tp, Vp, cause, check, errorf$2, x, x$1, x$2) { return function operand·convertibleTo·func4(T$2) { + var {T$2, _r$29, $s, $r, $c} = $restore(this, {T$2}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (T$2 === ptrType$5.nil) { + $s = -1; return false; + } + _r$29 = x$2[0].convertibleTo(check[0], T$2.typ, cause[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + /* */ if (!_r$29) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!_r$29) { */ case 1: + $r = errorf$2[0]("cannot convert %s to type %s (in %s)", new sliceType$5([x$2[0].typ, T$2.typ, Tp[0]])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; + /* } */ case 2: + $s = -1; return true; + /* */ } return; } var $f = {$blk: operand·convertibleTo·func4, $c: true, $r, T$2, _r$29, $s};return $f; + }; })(T, Tp, Vp, cause, check, errorf$2, x, x$1, x$2)); /* */ $s = 83; case 83: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + $24r$2 = _r$29; + $s = 84; case 84: return $24r$2; + /* } */ case 78: + case 74: + $s = -1; return false; + /* */ } return; } var $f = {$blk: convertibleTo, $c: true, $r, $24r, $24r$1, $24r$2, T, T$1, Tp, Tu, V, V$1, Vp, Vu, _arg, _arg$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _v, _v$1, _v$10, _v$2, _v$3, _v$4, _v$5, _v$6, _v$7, _v$8, _v$9, a, a$1, a$2, cause, check, errorf$2, ok, ok$1, ok$2, s, x, x$1, x$2, $s};return $f; }; - $ptrType(Named).prototype.AddMethod = function AddMethod(m) { - var {_r$1, _tuple, i, m, t, $s, $r, $c} = $restore(this, {m}); + isUintptr = function isUintptr$1(typ$4) { + var {_r, _tuple, t, typ$4, $s, $r, $c} = $restore(this, {typ$4}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - $r = assert(t.inst === ptrType$52.nil); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$1 = t.resolve(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - _tuple = lookupMethod(t.methods, m.object.pkg, m.object.name, false); - i = _tuple[0]; - if (i < 0) { - t.methods = $append(t.methods, m); - } - $s = -1; return; - /* */ } return; } var $f = {$blk: AddMethod, $c: true, $r, _r$1, _tuple, i, m, t, $s};return $f; + _r = under(typ$4); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = $assertType(_r, ptrType$4, true); + t = _tuple[0]; + $s = -1; return !(t === ptrType$4.nil) && (t.kind === 12); + /* */ } return; } var $f = {$blk: isUintptr$1, $c: true, $r, _r, _tuple, t, typ$4, $s};return $f; }; - $ptrType(Named).prototype.Underlying = function Underlying$7() { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); + isUnsafePointer = function isUnsafePointer$1(typ$4) { + var {_r, _tuple, t, typ$4, $s, $r, $c} = $restore(this, {typ$4}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = t.resolve(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1.underlying; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Underlying$7, $c: true, $r, $24r, _r$1, t, $s};return $f; + _r = under(typ$4); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = $assertType(_r, ptrType$4, true); + t = _tuple[0]; + $s = -1; return !(t === ptrType$4.nil) && (t.kind === 18); + /* */ } return; } var $f = {$blk: isUnsafePointer$1, $c: true, $r, _r, _tuple, t, typ$4, $s};return $f; }; - $ptrType(Named).prototype.String = function String$27() { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); + isPointer = function isPointer$1(typ$4) { + var {_r, _tuple, ok, typ$4, $s, $r, $c} = $restore(this, {typ$4}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = TypeString(t, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$27, $c: true, $r, $24r, _r$1, t, $s};return $f; + _r = under(typ$4); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = $assertType(_r, ptrType$28, true); + ok = _tuple[1]; + $s = -1; return ok; + /* */ } return; } var $f = {$blk: isPointer$1, $c: true, $r, _r, _tuple, ok, typ$4, $s};return $f; }; - $ptrType(Named).prototype.under = function under$2() { - var {_entry, _entry$1, _i, _key, _key$1, _keys, _r$1, _r$2, _ref, _ref$1, _ref$2, _size, _tuple, check, i, n, n$1, n0, n1, ok, path, seen, u, u1, u1$1, u1$2, u1$3, u1$4, u1$5, $s, $r, $c} = $restore(this, {}); + isBytesOrRunes = function isBytesOrRunes$1(typ$4) { + var {_r, _r$1, _tuple, _tuple$1, s, t, typ$4, $s, $r, $c} = $restore(this, {typ$4}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - n0 = this; - _r$1 = n0.Underlying(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - u = _r$1; - n1 = ptrType$9.nil; - _ref = u; - if (_ref === $ifaceNil) { - u1 = _ref; - $panic(new $String("nil underlying")); - } else if ($assertType(_ref, ptrType$9, true)[1]) { - u1$2 = _ref.$val; - n1 = u1$2; - } else { - u1$1 = _ref; - $s = -1; return u; - } - if (n0.check === ptrType$5.nil) { - $panic(new $String("Named.check == nil but type is incomplete")); - } - check = n0.check; - n = n0; - seen = new $global.Map(); - path = sliceType$8.nil; - /* while (true) { */ case 2: - _key = n; (seen || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$9.keyFor(_key), { k: _key, v: (seen ? seen.size : 0) }); - path = $append(path, n.obj); - n = n1; - _tuple = (_entry = $mapIndex(seen,ptrType$9.keyFor(n)), _entry !== undefined ? [_entry.v, true] : [0, false]); - i = _tuple[0]; - ok = _tuple[1]; - /* */ if (ok) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (ok) { */ case 4: - $r = check.cycleError($subslice(path, i)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - u = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - /* break; */ $s = 3; continue; - /* } */ case 5: - _r$2 = n.Underlying(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - u = _r$2; - _ref$1 = u; - if (_ref$1 === $ifaceNil) { - u1$3 = _ref$1; - u = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - /* break loop; */ $s = 3; continue s; - } else if ($assertType(_ref$1, ptrType$9, true)[1]) { - u1$5 = _ref$1.$val; - n1 = u1$5; - } else { - u1$4 = _ref$1; - /* break loop; */ $s = 3; continue s; - } - $s = 2; continue; - case 3: - _ref$2 = seen; - _i = 0; - _keys = _ref$2 ? _ref$2.keys() : undefined; - _size = _ref$2 ? _ref$2.size : 0; - while (true) { - if (!(_i < _size)) { break; } - _key$1 = _keys.next().value; - _entry$1 = _ref$2.get(_key$1); - if (_entry$1 === undefined) { - _i++; - continue; - } - n$1 = _entry$1.k; - if (!(n$1.obj.object.pkg === check.pkg)) { - $panic(new $String("imported type with unresolved underlying type")); - } - n$1.underlying = u; - _i++; - } - $s = -1; return u; - /* */ } return; } var $f = {$blk: under$2, $c: true, $r, _entry, _entry$1, _i, _key, _key$1, _keys, _r$1, _r$2, _ref, _ref$1, _ref$2, _size, _tuple, check, i, n, n$1, n0, n1, ok, path, seen, u, u1, u1$1, u1$2, u1$3, u1$4, u1$5, $s};return $f; + _r = under(typ$4); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = $assertType(_r, ptrType$27, true); + s = _tuple[0]; + /* */ if (!(s === ptrType$27.nil)) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!(s === ptrType$27.nil)) { */ case 2: + _r$1 = under(s.elem); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = $assertType(_r$1, ptrType$4, true); + t = _tuple$1[0]; + $s = -1; return !(t === ptrType$4.nil) && ((t.kind === 8) || (t.kind === 5)); + /* } */ case 3: + $s = -1; return false; + /* */ } return; } var $f = {$blk: isBytesOrRunes$1, $c: true, $r, _r, _r$1, _tuple, _tuple$1, s, t, typ$4, $s};return $f; }; - $ptrType(Named).prototype.setUnderlying = function setUnderlying(typ$3) { - var n, typ$3; - n = this; - if (!(n === ptrType$9.nil)) { - n.underlying = typ$3; - } + NewContext = function NewContext$1() { + return new Context.ptr(new sync.Mutex.ptr(0, 0), new $global.Map(), 0, new $global.Map()); }; - $ptrType(Named).prototype.lookupMethod = function lookupMethod$1(pkg, name, foldCase) { - var {$24r, _r$1, _r$2, _tuple, foldCase, i, n, name, pkg, $s, $r, $c} = $restore(this, {pkg, name, foldCase}); + $pkg.NewContext = NewContext; + $ptrType(Context).prototype.instanceHash = function instanceHash(orig, targs) { + var {_r, _r$1, _r$2, buf, ctxt, h, orig, targs, $s, $r, $c} = $restore(this, {orig, targs}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - n = this; - _r$1 = n.resolve(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - _tuple = lookupMethod(n.Origin().methods, pkg, name, foldCase); - i = _tuple[0]; - if (i < 0) { - $s = -1; return [-1, ptrType$2.nil]; - } - _r$2 = n.Method(i); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = [i, _r$2]; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: lookupMethod$1, $c: true, $r, $24r, _r$1, _r$2, _tuple, foldCase, i, n, name, pkg, $s};return $f; - }; - $ptrType(Checker).prototype.context = function context() { - var check; - check = this; - if (check.ctxt === ptrType$51.nil) { - check.ctxt = NewContext(); - } - return check.ctxt; - }; - $ptrType(Named).prototype.expandUnderlying = function expandUnderlying() { - var {$24r, $24r$1, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, _tuple$2, check, copied, ctxt, h, iface$1, methods, n, n2, old, orig, smap, targs, underlying, unexpanded, $s, $deferred, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - check = [check]; - n = [n]; - n[0] = this; - check[0] = n[0].check; - /* */ if (!(check[0] === ptrType$5.nil) && false) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(check[0] === ptrType$5.nil) && false) { */ case 1: - $r = check[0].trace(n[0].obj.object.pos, "-- Named.expandUnderlying %s", new sliceType$6([n[0]])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - check[0].indent = check[0].indent + (1) >> 0; - $deferred.push([(function(check, n) { return function Named·expandUnderlying·func1() { - var {$s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check[0].indent = check[0].indent - (1) >> 0; - $r = check[0].trace(n[0].obj.object.pos, "=> %s (tparams = %s, under = %s)", new sliceType$6([n[0], n[0].tparams.list(), n[0].underlying])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: Named·expandUnderlying·func1, $c: true, $r, $s};return $f; - }; })(check, n), []]); - /* } */ case 2: - $r = assert(!($interfaceIsEqual(n[0].inst.orig.underlying, $ifaceNil))); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (n[0].inst.ctxt === ptrType$51.nil) { - n[0].inst.ctxt = NewContext(); - } - orig = n[0].inst.orig; - targs = n[0].inst.targs; - _tuple = $assertType(orig.underlying, ptrType$9, true); - unexpanded = _tuple[1]; - /* */ if (unexpanded) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (unexpanded) { */ case 5: - $r = assert(!(check[0] === ptrType$5.nil)); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 6: - /* */ if (!((orig.tparams.Len() === targs.Len()))) { $s = 8; continue; } + buf = [buf]; + ctxt = this; + $r = assert(!(ctxt === ptrType$52.nil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = assert(!($interfaceIsEqual(orig, $ifaceNil))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + buf[0] = new bytes.Buffer.ptr(sliceType$12.nil, 0, 0); + _r = newTypeHasher(buf[0], ctxt); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + h = _r; + _r$1 = ctxt.getID(orig); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = strconv.Itoa(_r$1); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $r = h.string(_r$2); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = h.typ(orig); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (targs.$length > 0) { $s = 8; continue; } /* */ $s = 9; continue; - /* if (!((orig.tparams.Len() === targs.Len()))) { */ case 8: - $24r = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - $s = 10; case 10: return $24r; + /* if (targs.$length > 0) { */ case 8: + $r = h.typeList(targs); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 9: - _r$1 = n[0].inst.ctxt.instanceHash(orig, targs.list()); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - h = _r$1; - _r$2 = n[0].inst.ctxt.update(h, orig, n[0].TypeArgs().list(), n[0]); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - n2 = _r$2; - $r = assert($interfaceIsEqual(n[0], n2)); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$3 = makeSubstMap(orig.tparams.list(), targs.list()); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - smap = _r$3; - ctxt = ptrType$51.nil; - if (!(check[0] === ptrType$5.nil)) { - ctxt = check[0].context(); - } - _r$4 = n[0].check.subst(n[0].obj.object.pos, orig.underlying, smap, n[0], ctxt); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - underlying = _r$4; - _tuple$1 = $assertType(underlying, ptrType$13, true); - iface$1 = _tuple$1[0]; - if (!(iface$1 === ptrType$13.nil)) { - _tuple$2 = replaceRecvType(iface$1.methods, orig, n[0]); - methods = _tuple$2[0]; - copied = _tuple$2[1]; - if (copied) { - if ($interfaceIsEqual(iface$1, orig.underlying)) { - old = iface$1; - iface$1 = check[0].newInterface(); - iface$1.embeddeds = old.embeddeds; - iface$1.complete = old.complete; - iface$1.implicit = old.implicit; - underlying = iface$1; - } - iface$1.methods = methods; - } - } - $24r$1 = underlying; - $s = 16; case 16: return $24r$1; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: expandUnderlying, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, _tuple$2, check, copied, ctxt, h, iface$1, methods, n, n2, old, orig, smap, targs, underlying, unexpanded, $s, $deferred};return $f; } } - }; - safeUnderlying = function safeUnderlying$1(typ$3) { - var {$24r, _r$1, _tuple, t, typ$3, $s, $r, $c} = $restore(this, {typ$3}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _tuple = $assertType(typ$3, ptrType$9, true); - t = _tuple[0]; - if (!(t === ptrType$9.nil)) { - $s = -1; return t.underlying; - } - _r$1 = typ$3.Underlying(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: safeUnderlying$1, $c: true, $r, $24r, _r$1, _tuple, t, typ$3, $s};return $f; - }; - $ptrType(Checker).prototype.monomorph = function monomorph() { - var {_i, _ref, again, check, dst, edge, i, src, w, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - again = true; - /* while (true) { */ case 1: - /* if (!(again)) { break; } */ if(!(again)) { $s = 2; continue; } - again = false; - _ref = check.mono.edges; - _i = 0; - /* while (true) { */ case 3: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } - i = _i; - edge = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), monoEdge); - src = (x = check.mono.vertices, x$1 = edge.src, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); - dst = (x$2 = check.mono.vertices, x$3 = edge.dst, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])); - w = src.weight + edge.weight >> 0; - if (w <= dst.weight) { - _i++; - /* continue; */ $s = 3; continue; - } - dst.pre = i; - dst.len = src.len + 1 >> 0; - /* */ if (dst.len === check.mono.vertices.$length) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (dst.len === check.mono.vertices.$length) { */ case 5: - $r = check.reportInstanceLoop(edge.dst); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 6: - dst.weight = w; - again = true; - _i++; - $s = 3; continue; - case 4: - $s = 1; continue; - case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: monomorph, $c: true, $r, _i, _ref, again, check, dst, edge, i, src, w, x, x$1, x$2, x$3, $s};return $f; + $s = -1; return strings.Replace(buf[0].String(), " ", "#", -1); + /* */ } return; } var $f = {$blk: instanceHash, $c: true, $r, _r, _r$1, _r$2, buf, ctxt, h, orig, targs, $s};return $f; }; - $ptrType(Checker).prototype.reportInstanceLoop = function reportInstanceLoop(v) { - var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _i, _r$1, _r$2, _ref, _ref$1, check, edge, obj, obj0, qf, seen, stack, v, v$1, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, $s, $r, $c} = $restore(this, {v}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - stack = sliceType$13.nil; - seen = $makeSlice(sliceType$15, check.mono.vertices.$length); - while (true) { - if (!(!((v < 0 || v >= seen.$length) ? ($throwRuntimeError("index out of range"), undefined) : seen.$array[seen.$offset + v]))) { break; } - stack = $append(stack, v); - ((v < 0 || v >= seen.$length) ? ($throwRuntimeError("index out of range"), undefined) : seen.$array[seen.$offset + v] = true); - v = (x = check.mono.edges, x$1 = (x$2 = check.mono.vertices, ((v < 0 || v >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + v])).pre, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).src; - } - while (true) { - if (!(!(((0 >= stack.$length ? ($throwRuntimeError("index out of range"), undefined) : stack.$array[stack.$offset + 0]) === v)))) { break; } - stack = $subslice(stack, 1); - } - obj0 = (x$3 = check.mono.vertices, ((v < 0 || v >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + v])).obj; - $r = check.error(obj0, 140, "instantiation cycle:"); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - qf = RelativeTo(check.pkg); - _ref = stack; - _i = 0; - /* while (true) { */ case 2: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } - v$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - edge = $clone((x$4 = check.mono.edges, x$5 = (x$6 = check.mono.vertices, ((v$1 < 0 || v$1 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + v$1])).pre, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])), monoEdge); - obj = (x$7 = check.mono.vertices, x$8 = edge.dst, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8])).obj; - _ref$1 = obj.object.Type(); - /* */ if ($assertType(_ref$1, ptrType$9, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref$1, ptrType$14, true)[1]) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if ($assertType(_ref$1, ptrType$9, true)[1]) { */ case 4: - _arg = new atPos(((edge.pos >> 0))); - _arg$1 = new $String(obj.object.Name()); - _r$1 = TypeString(edge.typ, qf); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _arg$2 = new $String(_r$1); - $r = check.errorf(_arg, 140, "\t%s implicitly parameterized by %s", new sliceType$6([_arg$1, _arg$2])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 7; continue; - /* } else if ($assertType(_ref$1, ptrType$14, true)[1]) { */ case 5: - _arg$3 = new atPos(((edge.pos >> 0))); - _arg$4 = new $String(obj.object.Name()); - _r$2 = TypeString(edge.typ, qf); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _arg$5 = new $String(_r$2); - $r = check.errorf(_arg$3, 140, "\t%s instantiated as %s", new sliceType$6([_arg$4, _arg$5])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 7; continue; - /* } else { */ case 6: - $panic(new $String("unexpected type")); - /* } */ case 7: + $ptrType(Context).prototype.lookup = function lookup$2(h, orig, targs) { + var {$24r, $24r$1, _entry, _i, _r, _r$1, _ref, ctxt, e, h, orig, targs, $s, $deferred, $r, $c} = $restore(this, {h, orig, targs}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + ctxt = this; + $r = ctxt.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(ctxt.mu, "Unlock"), []]); + _ref = (_entry = $mapIndex(ctxt.typeMap,$String.keyFor(h)), _entry !== undefined ? _entry.v : sliceType$34.nil); + _i = 0; + /* while (true) { */ case 2: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } + e = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), ctxtEntry); + _r = identicalInstance(orig, targs, e.orig, e.targs); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_r) { */ case 4: + $24r = e.instance; + $s = 7; case 7: return $24r; + /* } */ case 5: + /* */ if (false) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (false) { */ case 8: + _r$1 = fmt.Sprintf("non-identical instances: (orig: %s, targs: %v) and %s", new sliceType$5([orig, targs, e.instance])); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $panic(new $String(_r$1)); + /* } */ case 9: _i++; $s = 2; continue; case 3: - $s = -1; return; - /* */ } return; } var $f = {$blk: reportInstanceLoop, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _i, _r$1, _r$2, _ref, _ref$1, check, edge, obj, obj0, qf, seen, stack, v, v$1, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, $s};return $f; - }; - $ptrType(monoGraph).prototype.recordCanon = function recordCanon(mpar, tpar) { - var _key, mpar, tpar, w; - w = this; - if (w.canon === false) { - w.canon = new $global.Map(); - } - _key = mpar; (w.canon || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$14.keyFor(_key), { k: _key, v: tpar }); + $24r$1 = $ifaceNil; + $s = 11; case 11: return $24r$1; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: lookup$2, $c: true, $r, $24r, $24r$1, _entry, _i, _r, _r$1, _ref, ctxt, e, h, orig, targs, $s, $deferred};return $f; } } }; - $ptrType(monoGraph).prototype.recordInstance = function recordInstance(pkg, pos, tparams, targs, xlist) { - var {_i, _r$1, _ref, i, pkg, pos, pos$1, targs, tpar, tparams, w, xlist, $s, $r, $c} = $restore(this, {pkg, pos, tparams, targs, xlist}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - w = this; - _ref = tparams; + $ptrType(Context).prototype.update = function update(h, orig, targs, inst) { + var {$24r, $24r$1, _entry, _entry$1, _i, _key, _r, _r$1, _ref, _v, ctxt, e, h, inst, orig, targs, $s, $deferred, $r, $c} = $restore(this, {h, orig, targs, inst}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + ctxt = this; + $r = assert(!($interfaceIsEqual(inst, $ifaceNil))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = ctxt.mu.Lock(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(ctxt.mu, "Unlock"), []]); + _ref = (_entry = $mapIndex(ctxt.typeMap,$String.keyFor(h)), _entry !== undefined ? _entry.v : sliceType$34.nil); _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - tpar = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - pos$1 = pos; - /* */ if (i < xlist.$length) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (i < xlist.$length) { */ case 3: - _r$1 = ((i < 0 || i >= xlist.$length) ? ($throwRuntimeError("index out of range"), undefined) : xlist.$array[xlist.$offset + i]).Pos(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - pos$1 = _r$1; - /* } */ case 4: - $r = w.assign(pkg, pos$1, tpar, ((i < 0 || i >= targs.$length) ? ($throwRuntimeError("index out of range"), undefined) : targs.$array[targs.$offset + i])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* while (true) { */ case 3: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } + e = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), ctxtEntry); + if ($interfaceIsEqual(inst, $ifaceNil)) { _v = true; $s = 7; continue s; } + _r = Identical(inst, e.instance); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r; case 7: + /* */ if (_v) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_v) { */ case 5: + $24r = e.instance; + $s = 9; case 9: return $24r; + /* } */ case 6: + /* */ if (false) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (false) { */ case 10: + _r$1 = fmt.Sprintf("%s and %s are not identical", new sliceType$5([inst, e.instance])); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $panic(new $String(_r$1)); + /* } */ case 11: _i++; - $s = 1; continue; - case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: recordInstance, $c: true, $r, _i, _r$1, _ref, i, pkg, pos, pos$1, targs, tpar, tparams, w, xlist, $s};return $f; + $s = 3; continue; + case 4: + _key = h; (ctxt.typeMap || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: $append((_entry$1 = $mapIndex(ctxt.typeMap,$String.keyFor(h)), _entry$1 !== undefined ? _entry$1.v : sliceType$34.nil), new ctxtEntry.ptr(orig, targs, inst)) }); + $24r$1 = inst; + $s = 13; case 13: return $24r$1; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: update, $c: true, $r, $24r, $24r$1, _entry, _entry$1, _i, _key, _r, _r$1, _ref, _v, ctxt, e, h, inst, orig, targs, $s, $deferred};return $f; } } }; - $ptrType(monoGraph).prototype.assign = function assign(pkg, pos, tpar, targ) { - var {do$1, flow, pkg, pos, targ, tpar, w, $s, $r, $c} = $restore(this, {pkg, pos, tpar, targ}); + $ptrType(Context).prototype.getID = function getID(t) { + var {$24r, _entry, _key, _tuple, ctxt, id, ok, t, $s, $deferred, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + ctxt = this; + $r = ctxt.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(ctxt.mu, "Unlock"), []]); + _tuple = (_entry = $mapIndex(ctxt.originIDs,Type.keyFor(t)), _entry !== undefined ? [_entry.v, true] : [0, false]); + id = _tuple[0]; + ok = _tuple[1]; + if (!ok) { + id = ctxt.nextID; + _key = t; (ctxt.originIDs || $throwRuntimeError("assignment to entry in nil map")).set(Type.keyFor(_key), { k: _key, v: id }); + ctxt.nextID = ctxt.nextID + (1) >> 0; + } + $24r = id; + $s = 2; case 2: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return 0; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: getID, $c: true, $r, $24r, _entry, _key, _tuple, ctxt, id, ok, t, $s, $deferred};return $f; } } + }; + $ptrType(Checker).prototype.overflow = function overflow(x, opPos) { + var {_arg, _arg$1, _r, _r$1, _r$2, _r$3, _v, check, op$1, opPos, x, $s, $r, $c} = $restore(this, {x, opPos}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - do$1 = [do$1]; - flow = [flow]; - pkg = [pkg]; - pos = [pos]; - targ = [targ]; - tpar = [tpar]; - w = [w]; - w[0] = this; - if (!(tpar[0].Obj().object.Pkg() === pkg[0])) { + check = this; + $r = assert(x.mode === 4); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r = x.val.Kind(); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r === 0) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (_r === 0) { */ case 2: + $r = check.error(new atPos(((opPos >> 0))), 14, "constant result is not representable"); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - } - flow[0] = (function(do$1, flow, pkg, pos, targ, tpar, w) { return function monoGraph·assign·func1(src, typ$3) { - var src, typ$3, weight; - weight = 1; - if ($interfaceIsEqual(typ$3, targ[0])) { - weight = 0; - } - w[0].addEdge(w[0].typeParamVertex(tpar[0]), src, weight, pos[0], targ[0]); - }; })(do$1, flow, pkg, pos, targ, tpar, w); - do$1[0] = $throwNilPointerError; - do$1[0] = (function(do$1, flow, pkg, pos, targ, tpar, w) { return function monoGraph·assign·func2(typ$3) { - var {_r$1, _r$2, _r$3, _ref, i, i$1, i$2, src, targs, tuple$2, typ$10, typ$11, typ$12, typ$13, typ$14, typ$15, typ$3, typ$4, typ$5, typ$6, typ$7, typ$8, typ$9, $s, $r, $c} = $restore(this, {typ$3}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ref = typ$3; - /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$8, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$29, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 9; continue; } - /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 10; continue; } - /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if ($assertType(_ref, ptrType$14, true)[1]) { */ case 1: - typ$5 = _ref.$val; - $r = assert(typ$5.Obj().object.Pkg() === pkg[0]); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = flow[0](w[0].typeParamVertex(typ$5), typ$5); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 13; continue; - /* } else if ($assertType(_ref, ptrType$9, true)[1]) { */ case 2: - typ$6 = _ref.$val; - src = w[0].localNamedVertex(pkg[0], typ$6.Origin()); - /* */ if (src >= 0) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (src >= 0) { */ case 16: - $r = flow[0](src, typ$6); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 17: - targs = typ$6.TypeArgs(); - i = 0; - /* while (true) { */ case 19: - /* if (!(i < targs.Len())) { break; } */ if(!(i < targs.Len())) { $s = 20; continue; } - $r = do$1[0](targs.At(i)); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - i = i + (1) >> 0; - $s = 19; continue; - case 20: - $s = 13; continue; - /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 3: - typ$7 = _ref.$val; - $r = do$1[0](typ$7.Elem()); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 13; continue; - /* } else if ($assertType(_ref, ptrType$8, true)[1]) { */ case 4: - typ$8 = _ref.$val; - $s = 13; continue; - /* } else if ($assertType(_ref, ptrType$29, true)[1]) { */ case 5: - typ$9 = _ref.$val; - $r = do$1[0](typ$9.Elem()); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 13; continue; - /* } else if ($assertType(_ref, ptrType$28, true)[1]) { */ case 6: - typ$10 = _ref.$val; - $r = do$1[0](typ$10.Key()); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = do$1[0](typ$10.Elem()); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 13; continue; - /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 7: - typ$11 = _ref.$val; - $r = do$1[0](typ$11.Elem()); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 13; continue; - /* } else if ($assertType(_ref, ptrType$25, true)[1]) { */ case 8: - typ$12 = _ref.$val; - $r = do$1[0](typ$12.Elem()); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 13; continue; - /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 9: - typ$13 = _ref.$val; - i$1 = 0; - /* while (true) { */ case 28: - _r$1 = typ$13.NumMethods(); /* */ $s = 30; case 30: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* if (!(i$1 < _r$1)) { break; } */ if(!(i$1 < _r$1)) { $s = 29; continue; } - _r$2 = typ$13.Method(i$1); /* */ $s = 31; case 31: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = _r$2.object.Type(); /* */ $s = 32; case 32: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $r = do$1[0](_r$3); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - i$1 = i$1 + (1) >> 0; - $s = 28; continue; - case 29: - $s = 13; continue; - /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 10: - typ$14 = _ref.$val; - tuple$2 = (function(do$1, flow, pkg, pos, targ, tpar, w) { return function monoGraph·assign·func2·func1(tup) { - var {i$2, tup, $s, $r, $c} = $restore(this, {tup}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - i$2 = 0; - /* while (true) { */ case 1: - /* if (!(i$2 < tup.Len())) { break; } */ if(!(i$2 < tup.Len())) { $s = 2; continue; } - $r = do$1[0](tup.At(i$2).object.Type()); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - i$2 = i$2 + (1) >> 0; - $s = 1; continue; - case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: monoGraph·assign·func2·func1, $c: true, $r, i$2, tup, $s};return $f; - }; })(do$1, flow, pkg, pos, targ, tpar, w); - $r = tuple$2(typ$14.Params()); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = tuple$2(typ$14.Results()); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 13; continue; - /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 11: - typ$15 = _ref.$val; - i$2 = 0; - /* while (true) { */ case 36: - /* if (!(i$2 < typ$15.NumFields())) { break; } */ if(!(i$2 < typ$15.NumFields())) { $s = 37; continue; } - $r = do$1[0](typ$15.Field(i$2).object.Type()); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - i$2 = i$2 + (1) >> 0; - $s = 36; continue; - case 37: - $s = 13; continue; - /* } else { */ case 12: - typ$4 = _ref; - $panic(new $String("unexpected type")); - /* } */ case 13: - $s = -1; return; - /* */ } return; } var $f = {$blk: monoGraph·assign·func2, $c: true, $r, _r$1, _r$2, _r$3, _ref, i, i$1, i$2, src, targs, tuple$2, typ$10, typ$11, typ$12, typ$13, typ$14, typ$15, typ$3, typ$4, typ$5, typ$6, typ$7, typ$8, typ$9, $s};return $f; - }; })(do$1, flow, pkg, pos, targ, tpar, w); - $r = do$1[0](targ[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 3: + /* */ if (isTyped(x.typ)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (isTyped(x.typ)) { */ case 6: + _arg = x; + _r$1 = under(x.typ); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg$1 = $assertType(_r$1, ptrType$4); + $r = check.representable(_arg, _arg$1); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 7: + _r$2 = x.val.Kind(); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + if (!(_r$2 === 3)) { _v = false; $s = 12; continue s; } + _r$3 = constant.BitLen(x.val); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v = _r$3 > 512; case 12: + /* */ if (_v) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (_v) { */ case 10: + op$1 = opName(x.expr); + if (!(op$1 === "")) { + op$1 = op$1 + (" "); + } + $r = check.errorf(new atPos(((opPos >> 0))), 14, "constant %soverflow", new sliceType$5([new $String(op$1)])); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.val = constant.MakeUnknown(); + /* } */ case 11: $s = -1; return; - /* */ } return; } var $f = {$blk: assign, $c: true, $r, do$1, flow, pkg, pos, targ, tpar, w, $s};return $f; + /* */ } return; } var $f = {$blk: overflow, $c: true, $r, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _v, check, op$1, opPos, x, $s};return $f; }; - $ptrType(monoGraph).prototype.localNamedVertex = function localNamedVertex(pkg, named) { - var _entry, _entry$1, _i, _key, _key$1, _keys, _ref, _size, _tuple, _tuple$1, _tuple$2, elem, elem$1, idx, idx$1, named, obj, ok, ok$1, ok$2, pkg, root, scope, tpar, w; - w = this; - obj = named.Obj(); - if (!(obj.object.Pkg() === pkg)) { - return -1; - } - root = pkg.Scope(); - if (obj.object.Parent() === root) { - return -1; - } - _tuple = (_entry = $mapIndex(w.nameIdx,ptrType$17.keyFor(obj)), _entry !== undefined ? [_entry.v, true] : [0, false]); - idx = _tuple[0]; - ok = _tuple[1]; - if (ok) { - return idx; + representableConst = function representableConst$1(x, check, typ$4, rounded) { + var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, _1, _2, _3, _4, _arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _v, _v$1, check, conf, im, im$1, n, ok, r, r$1, re, re$1, rounded, s, s$1, s$2, sizeof$1, typ$4, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {x, check, typ$4, rounded}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + conf = [conf]; + _r = x.Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r === 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r === 0) { */ case 1: + $s = -1; return true; + /* } */ case 2: + conf[0] = ptrType$106.nil; + if (!(check === ptrType$6.nil)) { + conf[0] = check.conf; } - idx$1 = -1; - scope = obj.object.Parent(); - while (true) { - if (!(!(scope === root))) { break; } - _ref = scope.elems; - _i = 0; - _keys = _ref ? _ref.keys() : undefined; - _size = _ref ? _ref.size : 0; - while (true) { - if (!(_i < _size)) { break; } - _key = _keys.next().value; - _entry$1 = _ref.get(_key); - if (_entry$1 === undefined) { - _i++; - continue; + sizeof$1 = (function(conf) { return function representableConst·func1(T) { + var {T, _r$1, s, $s, $r, $c} = $restore(this, {T}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$1 = conf[0].sizeof(T); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + s = _r$1; + $s = -1; return s; + /* */ } return; } var $f = {$blk: representableConst·func1, $c: true, $r, T, _r$1, s, $s};return $f; + }; })(conf); + _r$1 = isInteger(typ$4); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 5; continue; } + _r$2 = isFloat(typ$4); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (_r$2) { $s = 6; continue; } + _r$3 = isComplex(typ$4); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3) { $s = 7; continue; } + _r$4 = isString(typ$4); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (_r$4) { $s = 8; continue; } + _r$5 = isBoolean(typ$4); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (_r$5) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (_r$1) { */ case 5: + _r$6 = constant.ToInt(x); /* */ $s = 16; case 16: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + x$1 = _r$6; + _r$7 = x$1.Kind(); /* */ $s = 19; case 19: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + /* */ if (!((_r$7 === 3))) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (!((_r$7 === 3))) { */ case 17: + $s = -1; return false; + /* } */ case 18: + if (!(rounded === ptrType$51.nil)) { + rounded.$set(x$1); } - elem = _entry$1.v; - _tuple$1 = $assertType(elem, ptrType$17, true); - elem$1 = _tuple$1[0]; - ok$1 = _tuple$1[1]; - if (ok$1 && !elem$1.IsAlias() && elem$1.object.Pos() < obj.object.Pos()) { - _tuple$2 = $assertType(elem$1.object.Type(), ptrType$14, true); - tpar = _tuple$2[0]; - ok$2 = _tuple$2[1]; - if (ok$2) { - if (idx$1 < 0) { - idx$1 = w.vertices.$length; - w.vertices = $append(w.vertices, new monoVertex.ptr(0, 0, 0, obj)); + _r$8 = constant.Int64Val(x$1); /* */ $s = 20; case 20: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _tuple = _r$8; + x$2 = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (ok) { */ case 21: + _1 = typ$4.kind; + /* */ if (_1 === (2)) { $s = 24; continue; } + /* */ if (_1 === (3)) { $s = 25; continue; } + /* */ if (_1 === (4)) { $s = 26; continue; } + /* */ if (_1 === (5)) { $s = 27; continue; } + /* */ if ((_1 === (6)) || (_1 === (20))) { $s = 28; continue; } + /* */ if ((_1 === (7)) || (_1 === (12))) { $s = 29; continue; } + /* */ if (_1 === (8)) { $s = 30; continue; } + /* */ if (_1 === (9)) { $s = 31; continue; } + /* */ if (_1 === (10)) { $s = 32; continue; } + /* */ if (_1 === (11)) { $s = 33; continue; } + /* */ $s = 34; continue; + /* if (_1 === (2)) { */ case 24: + _r$9 = sizeof$1(typ$4); /* */ $s = 36; case 36: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + s = $imul(((_r$9.$low >>> 0)), 8) >>> 0; + $s = -1; return (x$3 = $shiftLeft64(new $Int64(-1, 4294967295), ((s - 1 >>> 0))), (x$3.$high < x$2.$high || (x$3.$high === x$2.$high && x$3.$low <= x$2.$low))) && (x$4 = (x$5 = $shiftLeft64(new $Int64(0, 1), ((s - 1 >>> 0))), new $Int64(x$5.$high - 0, x$5.$low - 1)), (x$2.$high < x$4.$high || (x$2.$high === x$4.$high && x$2.$low <= x$4.$low))); + /* } else if (_1 === (3)) { */ case 25: + $s = -1; return (-1 < x$2.$high || (-1 === x$2.$high && 4294967168 <= x$2.$low)) && (x$2.$high < 0 || (x$2.$high === 0 && x$2.$low <= 127)); + /* } else if (_1 === (4)) { */ case 26: + $s = -1; return (-1 < x$2.$high || (-1 === x$2.$high && 4294934528 <= x$2.$low)) && (x$2.$high < 0 || (x$2.$high === 0 && x$2.$low <= 32767)); + /* } else if (_1 === (5)) { */ case 27: + $s = -1; return (-1 < x$2.$high || (-1 === x$2.$high && 2147483648 <= x$2.$low)) && (x$2.$high < 0 || (x$2.$high === 0 && x$2.$low <= 2147483647)); + /* } else if ((_1 === (6)) || (_1 === (20))) { */ case 28: + $s = -1; return true; + /* } else if ((_1 === (7)) || (_1 === (12))) { */ case 29: + _r$10 = sizeof$1(typ$4); /* */ $s = 37; case 37: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + s$1 = $imul(((_r$10.$low >>> 0)), 8) >>> 0; + if (s$1 < 64) { + $s = -1; return (0 < x$2.$high || (0 === x$2.$high && 0 <= x$2.$low)) && (x$6 = (x$7 = $shiftLeft64(new $Int64(0, 1), s$1), new $Int64(x$7.$high - 0, x$7.$low - 1)), (x$2.$high < x$6.$high || (x$2.$high === x$6.$high && x$2.$low <= x$6.$low))); + } + $s = -1; return (0 < x$2.$high || (0 === x$2.$high && 0 <= x$2.$low)); + /* } else if (_1 === (8)) { */ case 30: + $s = -1; return (0 < x$2.$high || (0 === x$2.$high && 0 <= x$2.$low)) && (x$2.$high < 0 || (x$2.$high === 0 && x$2.$low <= 255)); + /* } else if (_1 === (9)) { */ case 31: + $s = -1; return (0 < x$2.$high || (0 === x$2.$high && 0 <= x$2.$low)) && (x$2.$high < 0 || (x$2.$high === 0 && x$2.$low <= 65535)); + /* } else if (_1 === (10)) { */ case 32: + $s = -1; return (0 < x$2.$high || (0 === x$2.$high && 0 <= x$2.$low)) && (x$2.$high < 0 || (x$2.$high === 0 && x$2.$low <= 4294967295)); + /* } else if (_1 === (11)) { */ case 33: + $s = -1; return (0 < x$2.$high || (0 === x$2.$high && 0 <= x$2.$low)); + /* } else { */ case 34: + unreachable(); + /* } */ case 35: + case 23: + /* } */ case 22: + _r$11 = constant.BitLen(x$1); /* */ $s = 39; case 39: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + n = _r$11; + _2 = typ$4.kind; + /* */ if ((_2 === (7)) || (_2 === (12))) { $s = 40; continue; } + /* */ if (_2 === (11)) { $s = 41; continue; } + /* */ if (_2 === (20)) { $s = 42; continue; } + /* */ $s = 43; continue; + /* if ((_2 === (7)) || (_2 === (12))) { */ case 40: + _r$12 = sizeof$1(typ$4); /* */ $s = 44; case 44: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + s$2 = $imul(((_r$12.$low >>> 0)), 8) >>> 0; + _r$13 = constant.Sign(x$1); /* */ $s = 45; case 45: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + $24r = _r$13 >= 0 && n <= ((s$2 >> 0)); + $s = 46; case 46: return $24r; + /* } else if (_2 === (11)) { */ case 41: + _r$14 = constant.Sign(x$1); /* */ $s = 47; case 47: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + $24r$1 = _r$14 >= 0 && n <= 64; + $s = 48; case 48: return $24r$1; + /* } else if (_2 === (20)) { */ case 42: + $s = -1; return true; + /* } */ case 43: + case 38: + $s = 10; continue; + /* } else if (_r$2) { */ case 6: + _r$15 = constant.ToFloat(x); /* */ $s = 49; case 49: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + x$8 = _r$15; + _r$16 = x$8.Kind(); /* */ $s = 52; case 52: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + /* */ if (!((_r$16 === 4))) { $s = 50; continue; } + /* */ $s = 51; continue; + /* if (!((_r$16 === 4))) { */ case 50: + $s = -1; return false; + /* } */ case 51: + _3 = typ$4.kind; + /* */ if (_3 === (13)) { $s = 54; continue; } + /* */ if (_3 === (14)) { $s = 55; continue; } + /* */ if (_3 === (22)) { $s = 56; continue; } + /* */ $s = 57; continue; + /* if (_3 === (13)) { */ case 54: + /* */ if (rounded === ptrType$51.nil) { $s = 59; continue; } + /* */ $s = 60; continue; + /* if (rounded === ptrType$51.nil) { */ case 59: + _r$17 = fitsFloat32(x$8); /* */ $s = 61; case 61: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + $24r$2 = _r$17; + $s = 62; case 62: return $24r$2; + /* } */ case 60: + _r$18 = roundFloat32(x$8); /* */ $s = 63; case 63: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + r = _r$18; + if (!($interfaceIsEqual(r, $ifaceNil))) { + rounded.$set(r); + $s = -1; return true; } - w.addEdge(idx$1, w.typeParamVertex(tpar), 1, obj.object.Pos(), tpar); - } - } - _i++; - } - scope = scope.Parent(); - } - if (w.nameIdx === false) { - w.nameIdx = new $global.Map(); - } - _key$1 = obj; (w.nameIdx || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$17.keyFor(_key$1), { k: _key$1, v: idx$1 }); - return idx$1; + $s = 58; continue; + /* } else if (_3 === (14)) { */ case 55: + /* */ if (rounded === ptrType$51.nil) { $s = 64; continue; } + /* */ $s = 65; continue; + /* if (rounded === ptrType$51.nil) { */ case 64: + _r$19 = fitsFloat64(x$8); /* */ $s = 66; case 66: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + $24r$3 = _r$19; + $s = 67; case 67: return $24r$3; + /* } */ case 65: + _r$20 = roundFloat64(x$8); /* */ $s = 68; case 68: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + r$1 = _r$20; + if (!($interfaceIsEqual(r$1, $ifaceNil))) { + rounded.$set(r$1); + $s = -1; return true; + } + $s = 58; continue; + /* } else if (_3 === (22)) { */ case 56: + $s = -1; return true; + /* } else { */ case 57: + unreachable(); + /* } */ case 58: + case 53: + $s = 10; continue; + /* } else if (_r$3) { */ case 7: + x$9 = constant.ToComplex(x); + _r$21 = x$9.Kind(); /* */ $s = 71; case 71: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + /* */ if (!((_r$21 === 5))) { $s = 69; continue; } + /* */ $s = 70; continue; + /* if (!((_r$21 === 5))) { */ case 69: + $s = -1; return false; + /* } */ case 70: + _4 = typ$4.kind; + /* */ if (_4 === (15)) { $s = 73; continue; } + /* */ if (_4 === (16)) { $s = 74; continue; } + /* */ if (_4 === (23)) { $s = 75; continue; } + /* */ $s = 76; continue; + /* if (_4 === (15)) { */ case 73: + /* */ if (rounded === ptrType$51.nil) { $s = 78; continue; } + /* */ $s = 79; continue; + /* if (rounded === ptrType$51.nil) { */ case 78: + _r$22 = constant.Real(x$9); /* */ $s = 81; case 81: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + _r$23 = fitsFloat32(_r$22); /* */ $s = 82; case 82: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + if (!(_r$23)) { _v = false; $s = 80; continue s; } + _r$24 = constant.Imag(x$9); /* */ $s = 83; case 83: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _r$25 = fitsFloat32(_r$24); /* */ $s = 84; case 84: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _v = _r$25; case 80: + $24r$4 = _v; + $s = 85; case 85: return $24r$4; + /* } */ case 79: + _r$26 = constant.Real(x$9); /* */ $s = 86; case 86: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + _r$27 = roundFloat32(_r$26); /* */ $s = 87; case 87: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + re = _r$27; + _r$28 = constant.Imag(x$9); /* */ $s = 88; case 88: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + _r$29 = roundFloat32(_r$28); /* */ $s = 89; case 89: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + im = _r$29; + /* */ if (!($interfaceIsEqual(re, $ifaceNil)) && !($interfaceIsEqual(im, $ifaceNil))) { $s = 90; continue; } + /* */ $s = 91; continue; + /* if (!($interfaceIsEqual(re, $ifaceNil)) && !($interfaceIsEqual(im, $ifaceNil))) { */ case 90: + _arg = re; + _r$30 = constant.MakeImag(im); /* */ $s = 92; case 92: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } + _arg$1 = _r$30; + _r$31 = constant.BinaryOp(_arg, 12, _arg$1); /* */ $s = 93; case 93: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } + rounded.$set(_r$31); + $s = -1; return true; + /* } */ case 91: + $s = 77; continue; + /* } else if (_4 === (16)) { */ case 74: + /* */ if (rounded === ptrType$51.nil) { $s = 94; continue; } + /* */ $s = 95; continue; + /* if (rounded === ptrType$51.nil) { */ case 94: + _r$32 = constant.Real(x$9); /* */ $s = 97; case 97: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } + _r$33 = fitsFloat64(_r$32); /* */ $s = 98; case 98: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } + if (!(_r$33)) { _v$1 = false; $s = 96; continue s; } + _r$34 = constant.Imag(x$9); /* */ $s = 99; case 99: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } + _r$35 = fitsFloat64(_r$34); /* */ $s = 100; case 100: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } + _v$1 = _r$35; case 96: + $24r$5 = _v$1; + $s = 101; case 101: return $24r$5; + /* } */ case 95: + _r$36 = constant.Real(x$9); /* */ $s = 102; case 102: if($c) { $c = false; _r$36 = _r$36.$blk(); } if (_r$36 && _r$36.$blk !== undefined) { break s; } + _r$37 = roundFloat64(_r$36); /* */ $s = 103; case 103: if($c) { $c = false; _r$37 = _r$37.$blk(); } if (_r$37 && _r$37.$blk !== undefined) { break s; } + re$1 = _r$37; + _r$38 = constant.Imag(x$9); /* */ $s = 104; case 104: if($c) { $c = false; _r$38 = _r$38.$blk(); } if (_r$38 && _r$38.$blk !== undefined) { break s; } + _r$39 = roundFloat64(_r$38); /* */ $s = 105; case 105: if($c) { $c = false; _r$39 = _r$39.$blk(); } if (_r$39 && _r$39.$blk !== undefined) { break s; } + im$1 = _r$39; + /* */ if (!($interfaceIsEqual(re$1, $ifaceNil)) && !($interfaceIsEqual(im$1, $ifaceNil))) { $s = 106; continue; } + /* */ $s = 107; continue; + /* if (!($interfaceIsEqual(re$1, $ifaceNil)) && !($interfaceIsEqual(im$1, $ifaceNil))) { */ case 106: + _arg$2 = re$1; + _r$40 = constant.MakeImag(im$1); /* */ $s = 108; case 108: if($c) { $c = false; _r$40 = _r$40.$blk(); } if (_r$40 && _r$40.$blk !== undefined) { break s; } + _arg$3 = _r$40; + _r$41 = constant.BinaryOp(_arg$2, 12, _arg$3); /* */ $s = 109; case 109: if($c) { $c = false; _r$41 = _r$41.$blk(); } if (_r$41 && _r$41.$blk !== undefined) { break s; } + rounded.$set(_r$41); + $s = -1; return true; + /* } */ case 107: + $s = 77; continue; + /* } else if (_4 === (23)) { */ case 75: + $s = -1; return true; + /* } else { */ case 76: + unreachable(); + /* } */ case 77: + case 72: + $s = 10; continue; + /* } else if (_r$4) { */ case 8: + _r$42 = x.Kind(); /* */ $s = 110; case 110: if($c) { $c = false; _r$42 = _r$42.$blk(); } if (_r$42 && _r$42.$blk !== undefined) { break s; } + $24r$6 = _r$42 === 2; + $s = 111; case 111: return $24r$6; + /* } else if (_r$5) { */ case 9: + _r$43 = x.Kind(); /* */ $s = 112; case 112: if($c) { $c = false; _r$43 = _r$43.$blk(); } if (_r$43 && _r$43.$blk !== undefined) { break s; } + $24r$7 = _r$43 === 1; + $s = 113; case 113: return $24r$7; + /* } */ case 10: + case 4: + $s = -1; return false; + /* */ } return; } var $f = {$blk: representableConst$1, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, _1, _2, _3, _4, _arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _v, _v$1, check, conf, im, im$1, n, ok, r, r$1, re, re$1, rounded, s, s$1, s$2, sizeof$1, typ$4, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; }; - $ptrType(monoGraph).prototype.typeParamVertex = function typeParamVertex(tpar) { - var _entry, _entry$1, _key, _tuple, _tuple$1, idx, idx$1, obj, ok, ok$1, tpar, w, x; - w = this; - _tuple = (_entry = $mapIndex(w.canon,ptrType$14.keyFor(tpar)), _entry !== undefined ? [_entry.v, true] : [ptrType$14.nil, false]); - x = _tuple[0]; - ok = _tuple[1]; - if (ok) { - tpar = x; - } - obj = tpar.Obj(); - _tuple$1 = (_entry$1 = $mapIndex(w.nameIdx,ptrType$17.keyFor(obj)), _entry$1 !== undefined ? [_entry$1.v, true] : [0, false]); - idx = _tuple$1[0]; - ok$1 = _tuple$1[1]; - if (ok$1) { - return idx; - } - if (w.nameIdx === false) { - w.nameIdx = new $global.Map(); - } - idx$1 = w.vertices.$length; - w.vertices = $append(w.vertices, new monoVertex.ptr(0, 0, 0, obj)); - _key = obj; (w.nameIdx || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$17.keyFor(_key), { k: _key, v: idx$1 }); - return idx$1; + fitsFloat32 = function fitsFloat32$1(x) { + var {_r, _tuple, f, f32, x, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = constant.Float32Val(x); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + f32 = _tuple[0]; + f = (f32); + $s = -1; return !math.IsInf(f, 0); + /* */ } return; } var $f = {$blk: fitsFloat32$1, $c: true, $r, _r, _tuple, f, f32, x, $s};return $f; }; - $ptrType(monoGraph).prototype.addEdge = function addEdge(dst, src, weight, pos, typ$3) { - var dst, pos, src, typ$3, w, weight; - w = this; - w.edges = $append(w.edges, new monoEdge.ptr(dst, src, weight, pos, typ$3)); + roundFloat32 = function roundFloat32$1(x) { + var {$24r, _r, _r$1, _tuple, f, f32, x, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = constant.Float32Val(x); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + f32 = _tuple[0]; + f = (f32); + /* */ if (!math.IsInf(f, 0)) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!math.IsInf(f, 0)) { */ case 2: + _r$1 = constant.MakeFloat64(f); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 5; case 5: return $24r; + /* } */ case 3: + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: roundFloat32$1, $c: true, $r, $24r, _r, _r$1, _tuple, f, f32, x, $s};return $f; }; - $ptrType(MethodSet).prototype.String = function String$28() { - var {_i, _r$1, _r$2, _r$3, _ref, buf, f, s, $s, $r, $c} = $restore(this, {}); + fitsFloat64 = function fitsFloat64$1(x) { + var {_r, _tuple, f, x, $s, $r, $c} = $restore(this, {x}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - buf = [buf]; - s = this; - if (s.Len() === 0) { - $s = -1; return "MethodSet {}"; - } - buf[0] = new strings.Builder.ptr(ptrType$53.nil, sliceType$14.nil); - _r$1 = fmt.Fprintln(buf[0], new sliceType$6([new $String("MethodSet {")])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - _ref = s.list; - _i = 0; - /* while (true) { */ case 2: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } - f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$2 = fmt.Fprintf(buf[0], "\t%s\n", new sliceType$6([f])); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - _i++; - $s = 2; continue; - case 3: - _r$3 = fmt.Fprintln(buf[0], new sliceType$6([new $String("}")])); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$3; - $s = -1; return buf[0].String(); - /* */ } return; } var $f = {$blk: String$28, $c: true, $r, _i, _r$1, _r$2, _r$3, _ref, buf, f, s, $s};return $f; + _r = constant.Float64Val(x); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + f = _tuple[0]; + $s = -1; return !math.IsInf(f, 0); + /* */ } return; } var $f = {$blk: fitsFloat64$1, $c: true, $r, _r, _tuple, f, x, $s};return $f; }; - $ptrType(MethodSet).prototype.Len = function Len$7() { - var s; - s = this; - return s.list.$length; + roundFloat64 = function roundFloat64$1(x) { + var {$24r, _r, _r$1, _tuple, f, x, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = constant.Float64Val(x); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + f = _tuple[0]; + /* */ if (!math.IsInf(f, 0)) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!math.IsInf(f, 0)) { */ case 2: + _r$1 = constant.MakeFloat64(f); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 5; case 5: return $24r; + /* } */ case 3: + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: roundFloat64$1, $c: true, $r, $24r, _r, _r$1, _tuple, f, x, $s};return $f; }; - $ptrType(MethodSet).prototype.At = function At$3(i) { - var i, s, x; - s = this; - return (x = s.list, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + $ptrType(Checker).prototype.representable = function representable(x, typ$4) { + var {_r, _tuple, check, code, typ$4, v, x, $s, $r, $c} = $restore(this, {x, typ$4}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _r = check.representation(x, typ$4); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + v = _tuple[0]; + code = _tuple[1]; + /* */ if (!((code === 0))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!((code === 0))) { */ case 2: + $r = check.invalidConversion(code, x, typ$4); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + $s = -1; return; + /* } */ case 3: + $r = assert(!($interfaceIsEqual(v, $ifaceNil))); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.val = v; + $s = -1; return; + /* */ } return; } var $f = {$blk: representable, $c: true, $r, _r, _tuple, check, code, typ$4, v, x, $s};return $f; }; - $ptrType(MethodSet).prototype.Lookup = function Lookup$1(pkg, name) { - var {_r$1, _r$2, i, key, m, name, pkg, s, x, $s, $r, $c} = $restore(this, {pkg, name}); + $ptrType(Checker).prototype.representation = function representation(x, typ$4) { + var {_r, _r$1, _r$2, _r$3, _r$4, _v, _v$1, check, typ$4, v, x, $s, $r, $c} = $restore(this, {x, typ$4}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - key = [key]; - s = [s]; - s[0] = this; - if (s[0].Len() === 0) { - $s = -1; return ptrType$3.nil; + v = [v]; + check = this; + $r = assert(x.mode === 4); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + v[0] = x.val; + _r = representableConst(x.val, check, typ$4, (v.$ptr || (v.$ptr = new ptrType$51(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, v)))); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!_r) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!_r) { */ case 2: + _r$1 = isNumeric(x.typ); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + if (!(_r$1)) { _v = false; $s = 7; continue s; } + _r$2 = isNumeric(typ$4); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v = _r$2; case 7: + /* */ if (_v) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_v) { */ case 5: + _r$3 = isInteger(x.typ); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + if (!(!_r$3)) { _v$1 = false; $s = 13; continue s; } + _r$4 = isInteger(typ$4); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _v$1 = _r$4; case 13: + /* */ if (_v$1) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (_v$1) { */ case 10: + $s = -1; return [$ifaceNil, 43]; + /* } else { */ case 11: + $s = -1; return [$ifaceNil, 44]; + /* } */ case 12: + /* } */ case 6: + $s = -1; return [$ifaceNil, 14]; + /* } */ case 3: + $s = -1; return [v[0], 0]; + /* */ } return; } var $f = {$blk: representation, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _v, _v$1, check, typ$4, v, x, $s};return $f; + }; + $ptrType(Checker).prototype.invalidConversion = function invalidConversion(code, x, target) { + var {_1, check, code, msg$1, target, x, $s, $r, $c} = $restore(this, {code, x, target}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + msg$1 = "cannot convert %s to type %s"; + _1 = code; + if (_1 === (43)) { + msg$1 = "%s truncated to %s"; + } else if (_1 === (44)) { + msg$1 = "%s overflows %s"; } - key[0] = Id(pkg, name); - _r$1 = sort.Search(s[0].list.$length, (function(key, s) { return function MethodSet·Lookup·func1(i) { - var {$24r, _r$1, i, m, x, $s, $r, $c} = $restore(this, {i}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - m = (x = s[0].list, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - _r$1 = m.obj.Id(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1 >= key[0]; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: MethodSet·Lookup·func1, $c: true, $r, $24r, _r$1, i, m, x, $s};return $f; - }; })(key, s)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - i = _r$1; - /* */ if (i < s[0].list.$length) { $s = 2; continue; } + $r = check.errorf(x, code, msg$1, new sliceType$5([x, target])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: invalidConversion, $c: true, $r, _1, check, code, msg$1, target, x, $s};return $f; + }; + $ptrType(Checker).prototype.convertUntyped = function convertUntyped(x, target) { + var {_r, _r$1, _tuple, check, code, newType, t, target, val, x, $s, $r, $c} = $restore(this, {x, target}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + _r = check.implicitTypeAndValue(x, target); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + newType = _tuple[0]; + val = _tuple[1]; + code = _tuple[2]; + /* */ if (!((code === 0))) { $s = 2; continue; } /* */ $s = 3; continue; - /* if (i < s[0].list.$length) { */ case 2: - m = (x = s[0].list, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - _r$2 = m.obj.Id(); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (_r$2 === key[0]) { $s = 4; continue; } + /* if (!((code === 0))) { */ case 2: + t = target; + /* */ if (!isTypeParam(target)) { $s = 4; continue; } /* */ $s = 5; continue; - /* if (_r$2 === key[0]) { */ case 4: - $s = -1; return m; + /* if (!isTypeParam(target)) { */ case 4: + _r$1 = safeUnderlying(target); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + t = _r$1; /* } */ case 5: + $r = check.invalidConversion(code, x, t); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + $s = -1; return; /* } */ case 3: - $s = -1; return ptrType$3.nil; - /* */ } return; } var $f = {$blk: Lookup$1, $c: true, $r, _r$1, _r$2, i, key, m, name, pkg, s, x, $s};return $f; + if (!($interfaceIsEqual(val, $ifaceNil))) { + x.val = val; + check.updateExprVal(x.expr, val); + } + /* */ if (!($interfaceIsEqual(newType, x.typ))) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!($interfaceIsEqual(newType, x.typ))) { */ case 8: + x.typ = newType; + $r = check.updateExprType(x.expr, newType, false); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 9: + $s = -1; return; + /* */ } return; } var $f = {$blk: convertUntyped, $c: true, $r, _r, _r$1, _tuple, check, code, newType, t, target, val, x, $s};return $f; }; - NewMethodSet = function NewMethodSet$1(T) { - var {T, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _i, _i$1, _i$2, _i$3, _i$4, _key, _key$1, _key$2, _key$3, _key$4, _key$5, _keys, _keys$1, _keys$2, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _size, _size$1, _size$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _v, alt, base, current, e, f, found, found$1, fset, i, i$1, isPtr, isPtr$1, k, k$1, list$2, m, m$1, mset, named, next, seen, t, t$1, typ$3, typ$4, typ$5, $s, $r, $c} = $restore(this, {T}); + $ptrType(environment).prototype.lookup = function lookup$3(name) { + var {_r, _tuple, env, name, obj, $s, $r, $c} = $restore(this, {name}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - list$2 = [list$2]; - base = false; - _tuple = deref(T); - typ$3 = _tuple[0]; - isPtr = _tuple[1]; - if (!(isPtr)) { _v = false; $s = 3; continue s; } - _r$1 = IsInterface(typ$3); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = _r$1; case 3: - /* */ if (_v) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (_v) { */ case 1: - $s = -1; return emptyMethodSet; - /* } */ case 2: - current = new sliceType$25([$clone(new embeddedType.ptr(typ$3, sliceType$13.nil, isPtr, false), embeddedType)]); - seen = new instanceLookup.ptr(arrayType$1.zero(), false); - /* while (true) { */ case 5: - /* if (!(current.$length > 0)) { break; } */ if(!(current.$length > 0)) { $s = 6; continue; } - next = sliceType$25.nil; - fset = false; - mset = false; - _ref = current; - _i = 0; - /* while (true) { */ case 7: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 8; continue; } - e = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), embeddedType); - typ$4 = e.typ; - _tuple$1 = $assertType(typ$4, ptrType$9, true); - named = _tuple$1[0]; - /* */ if (!(named === ptrType$9.nil)) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (!(named === ptrType$9.nil)) { */ case 9: - _r$2 = seen.lookup(named); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - alt = _r$2; - if (!(alt === ptrType$9.nil)) { - _i++; - /* continue; */ $s = 7; continue; - } - seen.add(named); - i = 0; - /* while (true) { */ case 12: - _r$3 = named.NumMethods(); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* if (!(i < _r$3)) { break; } */ if(!(i < _r$3)) { $s = 13; continue; } - _r$4 = named.Method(i); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$5 = new methodSet(mset).addOne(_r$4, concat(e.index, i), e.indirect, e.multiples); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - mset = _r$5; - i = i + (1) >> 0; - $s = 12; continue; - case 13: - /* } */ case 10: - _r$6 = under(typ$4); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _ref$1 = _r$6; - /* */ if ($assertType(_ref$1, ptrType$11, true)[1]) { $s = 18; continue; } - /* */ if ($assertType(_ref$1, ptrType$13, true)[1]) { $s = 19; continue; } - /* */ $s = 20; continue; - /* if ($assertType(_ref$1, ptrType$11, true)[1]) { */ case 18: - t = _ref$1.$val; - _ref$2 = t.fields; - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$2.$length)) { break; } - i$1 = _i$1; - f = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); - if (fset === false) { - fset = new $global.Map(); - } - _key = f.object.Id(); (fset || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: true }); - if (f.embedded) { - _tuple$2 = deref(f.object.typ); - typ$5 = _tuple$2[0]; - isPtr$1 = _tuple$2[1]; - next = $append(next, new embeddedType.ptr(typ$5, concat(e.index, i$1), e.indirect || isPtr$1, e.multiples)); - } - _i$1++; - } - $s = 20; continue; - /* } else if ($assertType(_ref$1, ptrType$13, true)[1]) { */ case 19: - t$1 = _ref$1.$val; - _r$7 = t$1.typeSet(); /* */ $s = 21; case 21: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _r$8 = new methodSet(mset).add(_r$7.methods, e.index, true, e.multiples); /* */ $s = 22; case 22: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - mset = _r$8; - /* } */ case 20: - _i++; - $s = 7; continue; - case 8: - _ref$3 = mset; - _i$2 = 0; - _keys = _ref$3 ? _ref$3.keys() : undefined; - _size = _ref$3 ? _ref$3.size : 0; - while (true) { - if (!(_i$2 < _size)) { break; } - _key$1 = _keys.next().value; - _entry = _ref$3.get(_key$1); - if (_entry === undefined) { - _i$2++; - continue; - } - k = _entry.k; - m = _entry.v; - _tuple$3 = (_entry$1 = $mapIndex(base,$String.keyFor(k)), _entry$1 !== undefined ? [_entry$1.v, true] : [ptrType$3.nil, false]); - found = _tuple$3[1]; - if (!found) { - if ((_entry$2 = $mapIndex(fset,$String.keyFor(k)), _entry$2 !== undefined ? _entry$2.v : false)) { - m = ptrType$3.nil; - } - if (base === false) { - base = new $global.Map(); - } - _key$2 = k; (base || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$2), { k: _key$2, v: m }); - } - _i$2++; - } - _ref$4 = fset; - _i$3 = 0; - _keys$1 = _ref$4 ? _ref$4.keys() : undefined; - _size$1 = _ref$4 ? _ref$4.size : 0; - while (true) { - if (!(_i$3 < _size$1)) { break; } - _key$3 = _keys$1.next().value; - _entry$3 = _ref$4.get(_key$3); - if (_entry$3 === undefined) { - _i$3++; - continue; - } - k$1 = _entry$3.k; - _tuple$4 = (_entry$4 = $mapIndex(base,$String.keyFor(k$1)), _entry$4 !== undefined ? [_entry$4.v, true] : [ptrType$3.nil, false]); - found$1 = _tuple$4[1]; - if (!found$1) { - if (base === false) { - base = new $global.Map(); - } - _key$4 = k$1; (base || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$4), { k: _key$4, v: ptrType$3.nil }); - } - _i$3++; - } - _r$9 = consolidateMultiples(next); /* */ $s = 23; case 23: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - current = _r$9; - $s = 5; continue; - case 6: - if ((base ? base.size : 0) === 0) { - $s = -1; return emptyMethodSet; - } - list$2[0] = sliceType$1.nil; - _ref$5 = base; - _i$4 = 0; - _keys$2 = _ref$5 ? _ref$5.keys() : undefined; - _size$2 = _ref$5 ? _ref$5.size : 0; - while (true) { - if (!(_i$4 < _size$2)) { break; } - _key$5 = _keys$2.next().value; - _entry$5 = _ref$5.get(_key$5); - if (_entry$5 === undefined) { - _i$4++; - continue; - } - m$1 = _entry$5.v; - if (!(m$1 === ptrType$3.nil)) { - m$1.recv = T; - list$2[0] = $append(list$2[0], m$1); - } - _i$4++; + env = this; + _r = env.scope.LookupParent(name, env.pos); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + obj = _tuple[1]; + $s = -1; return obj; + /* */ } return; } var $f = {$blk: lookup$3, $c: true, $r, _r, _tuple, env, name, obj, $s};return $f; + }; + $ptrType(action).prototype.describef = function describef(pos$1, format, args) { + var a, args, format, pos$1; + a = this; + if (false) { + a.desc = new actionDesc.ptr(pos$1, format, args); } - $r = sort.Slice(list$2[0], (function(list$2) { return function NewMethodSet·func1(i$2, j) { - var {$24r, _r$10, _r$11, i$2, j, $s, $r, $c} = $restore(this, {i$2, j}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$10 = ((i$2 < 0 || i$2 >= list$2[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : list$2[0].$array[list$2[0].$offset + i$2]).obj.Id(); /* */ $s = 1; case 1: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _r$11 = ((j < 0 || j >= list$2[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : list$2[0].$array[list$2[0].$offset + j]).obj.Id(); /* */ $s = 2; case 2: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - $24r = _r$10 < _r$11; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: NewMethodSet·func1, $c: true, $r, $24r, _r$10, _r$11, i$2, j, $s};return $f; - }; })(list$2)); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return new MethodSet.ptr(list$2[0]); - /* */ } return; } var $f = {$blk: NewMethodSet$1, $c: true, $r, T, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _i, _i$1, _i$2, _i$3, _i$4, _key, _key$1, _key$2, _key$3, _key$4, _key$5, _keys, _keys$1, _keys$2, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _size, _size$1, _size$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _v, alt, base, current, e, f, found, found$1, fset, i, i$1, isPtr, isPtr$1, k, k$1, list$2, m, m$1, mset, named, next, seen, t, t$1, typ$3, typ$4, typ$5, $s};return $f; }; - $pkg.NewMethodSet = NewMethodSet; - methodSet.prototype.add = function add(list$2, index$1, indirect, multiples) { - var _i, _ref, f, i, index$1, indirect, list$2, multiples, s; - s = this.$val; - if (list$2.$length === 0) { - return s; + $ptrType(Checker).prototype.addDeclDep = function addDeclDep(to) { + var _entry, _tuple, check, found, from, to; + check = this; + from = check.environment.decl; + if (from === ptrType$59.nil) { + return; } - _ref = list$2; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - s = new methodSet(s).addOne(f, concat(index$1, i), indirect, multiples); - _i++; + _tuple = (_entry = $mapIndex(check.objMap,Object.keyFor(to)), _entry !== undefined ? [_entry.v, true] : [ptrType$59.nil, false]); + found = _tuple[1]; + if (!found) { + return; } - return s; + from.addDep(to); }; - $ptrType(methodSet).prototype.add = function(...$args) { return new methodSet(this.$get()).add(...$args); }; - methodSet.prototype.addOne = function addOne(f, index$1, indirect, multiples) { - var _entry, _key, _key$1, _tuple, f, found, index$1, indirect, key, multiples, s; - s = this.$val; - if (s === false) { - s = new $global.Map(); - } - key = f.object.Id(); - if (!multiples) { - _tuple = (_entry = $mapIndex(s,$String.keyFor(key)), _entry !== undefined ? [_entry.v, true] : [ptrType$3.nil, false]); - found = _tuple[1]; - if (!found && (indirect || !f.hasPtrRecv())) { - _key = key; (s || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: new Selection.ptr(1, $ifaceNil, f, index$1, indirect) }); - return s; - } + $ptrType(Checker).prototype.brokenAlias = function brokenAlias(alias) { + var _key, alias, check; + check = this; + if (check.brokenAliases === false) { + check.brokenAliases = new $global.Map(); } - _key$1 = key; (s || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$1), { k: _key$1, v: ptrType$3.nil }); - return s; + _key = alias; (check.brokenAliases || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$18.keyFor(_key), { k: _key, v: true }); + alias.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); }; - $ptrType(methodSet).prototype.addOne = function(...$args) { return new methodSet(this.$get()).addOne(...$args); }; - NewMap = function NewMap$1(key, elem) { - var elem, key; - return new Map.ptr(key, elem); + $ptrType(Checker).prototype.validAlias = function validAlias(alias, typ$4) { + var alias, check, typ$4; + check = this; + $mapDelete(check.brokenAliases, ptrType$18.keyFor(alias)); + alias.object.typ = typ$4; }; - $pkg.NewMap = NewMap; - $ptrType(Map).prototype.Key = function Key() { - var m; - m = this; - return m.key; + $ptrType(Checker).prototype.isBrokenAlias = function isBrokenAlias(alias) { + var _entry, alias, check; + check = this; + return $interfaceIsEqual(alias.object.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])) && (_entry = $mapIndex(check.brokenAliases,ptrType$18.keyFor(alias)), _entry !== undefined ? _entry.v : false); }; - $ptrType(Map).prototype.Elem = function Elem$2() { - var m; - m = this; - return m.elem; + $ptrType(Checker).prototype.rememberUntyped = function rememberUntyped(e, lhs, mode, typ$4, val) { + var _key, check, e, lhs, m, mode, typ$4, val; + check = this; + m = check.untyped; + if (m === false) { + m = new $global.Map(); + check.untyped = m; + } + _key = e; (m || $throwRuntimeError("assignment to entry in nil map")).set(ast.Expr.keyFor(_key), { k: _key, v: $clone(new exprInfo.ptr(lhs, mode, typ$4, val), exprInfo) }); }; - $ptrType(Map).prototype.Underlying = function Underlying$8() { - var t; - t = this; - return t; + $ptrType(Checker).prototype.later = function later(f) { + var check, f, i, x; + check = this; + i = check.delayed.$length; + check.delayed = $append(check.delayed, new action.ptr(f, ptrType$114.nil)); + return (x = check.delayed, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + i, ptrType$115))); }; - $ptrType(Map).prototype.String = function String$29() { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = TypeString(t, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$29, $c: true, $r, $24r, _r$1, t, $s};return $f; + $ptrType(Checker).prototype.push = function push(obj) { + var check, obj; + check = this; + check.objPath = $append(check.objPath, obj); + return check.objPath.$length - 1 >> 0; }; - LookupFieldOrMethod = function LookupFieldOrMethod$1(T, addressable, pkg, name) { - var {T, _r$1, _r$2, _r$3, _r$4, _r$5, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, addressable, index$1, indirect, name, obj, ok, ok$1, p, pkg, t, t$1, $s, $r, $c} = $restore(this, {T, addressable, pkg, name}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - obj = $ifaceNil; - index$1 = sliceType$13.nil; - indirect = false; - if ($interfaceIsEqual(T, $ifaceNil)) { - $panic(new $String("LookupFieldOrMethod on nil type")); + $ptrType(Checker).prototype.pop = function pop() { + var check, i, obj, x, x$1; + check = this; + i = check.objPath.$length - 1 >> 0; + obj = (x = check.objPath, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + (x$1 = check.objPath, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i] = $ifaceNil)); + check.objPath = $subslice(check.objPath, 0, i); + return obj; + }; + $ptrType(Checker).prototype.needsCleanup = function needsCleanup(c) { + var c, check; + check = this; + check.cleaners = $append(check.cleaners, c); + }; + NewChecker = function NewChecker$1(conf, fset, pkg, info) { + var conf, fset, info, pkg; + if (conf === ptrType$106.nil) { + conf = new Config.ptr(ptrType$52.nil, "", false, false, false, false, $throwNilPointerError, $ifaceNil, $ifaceNil, false, ""); } - _tuple = $assertType(T, ptrType$9, true); - t = _tuple[0]; - /* */ if (!(t === ptrType$9.nil)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(t === ptrType$9.nil)) { */ case 1: - _r$1 = t.Underlying(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$1 = $assertType(_r$1, ptrType$26, true); - p = _tuple$1[0]; - /* */ if (!(p === ptrType$26.nil)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (!(p === ptrType$26.nil)) { */ case 4: - _r$2 = lookupFieldOrMethod(p, false, pkg, name, false); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple$2 = _r$2; - obj = _tuple$2[0]; - index$1 = _tuple$2[1]; - indirect = _tuple$2[2]; - _tuple$3 = $assertType(obj, ptrType$2, true); - ok = _tuple$3[1]; - if (ok) { - _tmp = $ifaceNil; - _tmp$1 = sliceType$13.nil; - _tmp$2 = false; - obj = _tmp; - index$1 = _tmp$1; - indirect = _tmp$2; - $s = -1; return [obj, index$1, indirect]; - } - $s = -1; return [obj, index$1, indirect]; - /* } */ case 5: - /* } */ case 2: - _r$3 = lookupFieldOrMethod(T, addressable, pkg, name, false); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple$4 = _r$3; - obj = _tuple$4[0]; - index$1 = _tuple$4[1]; - indirect = _tuple$4[2]; - /* */ if (false && $interfaceIsEqual(obj, $ifaceNil) && isTypeParam(T)) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (false && $interfaceIsEqual(obj, $ifaceNil) && isTypeParam(T)) { */ case 8: - _r$4 = coreType(T); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - t$1 = _r$4; - /* */ if (!($interfaceIsEqual(t$1, $ifaceNil))) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (!($interfaceIsEqual(t$1, $ifaceNil))) { */ case 11: - _r$5 = lookupFieldOrMethod(t$1, addressable, pkg, name, false); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _tuple$5 = _r$5; - obj = _tuple$5[0]; - index$1 = _tuple$5[1]; - indirect = _tuple$5[2]; - _tuple$6 = $assertType(obj, ptrType$16, true); - ok$1 = _tuple$6[1]; - if (!ok$1) { - _tmp$3 = $ifaceNil; - _tmp$4 = sliceType$13.nil; - _tmp$5 = false; - obj = _tmp$3; - index$1 = _tmp$4; - indirect = _tmp$5; - } - /* } */ case 12: - /* } */ case 9: - $s = -1; return [obj, index$1, indirect]; - /* */ } return; } var $f = {$blk: LookupFieldOrMethod$1, $c: true, $r, T, _r$1, _r$2, _r$3, _r$4, _r$5, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, addressable, index$1, indirect, name, obj, ok, ok$1, p, pkg, t, t$1, $s};return $f; + if (info === ptrType$116.nil) { + info = new Info.ptr(false, false, false, false, false, false, false, sliceType$30.nil); + } + return new Checker.ptr(conf, conf.Context, fset, pkg, info, new version.ptr(0, 0), new $Uint64(0, 0), new $global.Map(), new $global.Map(), new instanceLookup.ptr(arrayType$1.zero(), false), false, false, sliceType$35.nil, false, sliceType$36.nil, false, false, false, false, new monoGraph.ptr(sliceType$37.nil, sliceType$38.nil, false, false), $ifaceNil, false, false, sliceType$39.nil, sliceType$7.nil, sliceType$40.nil, new environment.ptr(ptrType$59.nil, ptrType.nil, 0, $ifaceNil, $ifaceNil, false, ptrType$29.nil, false, false, false), 0); }; - $pkg.LookupFieldOrMethod = LookupFieldOrMethod; - lookupFieldOrMethod = function lookupFieldOrMethod$1(T, addressable, pkg, name, foldCase) { - var {T, _i, _i$1, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _ref$1, _ref$2, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, addressable, alt, current, e, f, f$1, foldCase, i, i$1, i$2, index$1, indirect, isPtr, isPtr$1, m, m$1, name, named, next, obj, ok, pkg, seen, t, t$1, typ$3, typ$4, typ$5, $s, $r, $c} = $restore(this, {T, addressable, pkg, name, foldCase}); + $pkg.NewChecker = NewChecker; + $ptrType(Checker).prototype.initFiles = function initFiles(files) { + var {_1, _i, _i$1, _key, _r, _r$1, _ref, _ref$1, _tuple, check, file, file$1, files, name, pkg, v, $s, $r, $c} = $restore(this, {files}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - obj = $ifaceNil; - index$1 = sliceType$13.nil; - indirect = false; - if (name === "_") { - $s = -1; return [obj, index$1, indirect]; - } - _tuple = deref(T); - typ$3 = _tuple[0]; - isPtr = _tuple[1]; - /* */ if (isPtr) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (isPtr) { */ case 1: - _r$1 = under(typ$3); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$1 = $assertType(_r$1, ptrType$13, true); - ok = _tuple$1[1]; - if (ok) { - $s = -1; return [obj, index$1, indirect]; - } - /* } */ case 2: - current = new sliceType$25([$clone(new embeddedType.ptr(typ$3, sliceType$13.nil, isPtr, false), embeddedType)]); - seen = new instanceLookup.ptr(arrayType$1.zero(), false); - /* while (true) { */ case 4: - /* if (!(current.$length > 0)) { break; } */ if(!(current.$length > 0)) { $s = 5; continue; } - next = sliceType$25.nil; - _ref = current; - _i = 0; - /* while (true) { */ case 6: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 7; continue; } - e = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), embeddedType); - typ$4 = e.typ; - _tuple$2 = $assertType(typ$4, ptrType$9, true); - named = _tuple$2[0]; - /* */ if (!(named === ptrType$9.nil)) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (!(named === ptrType$9.nil)) { */ case 8: - _r$2 = seen.lookup(named); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - alt = _r$2; - if (!(alt === ptrType$9.nil)) { - _i++; - /* continue; */ $s = 6; continue; - } - seen.add(named); - _r$3 = named.lookupMethod(pkg, name, foldCase); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple$3 = _r$3; - i = _tuple$3[0]; - m = _tuple$3[1]; - if (!(m === ptrType$2.nil)) { - index$1 = concat(e.index, i); - if (!($interfaceIsEqual(obj, $ifaceNil)) || e.multiples) { - _tmp = $ifaceNil; - _tmp$1 = index$1; - _tmp$2 = false; - obj = _tmp; - index$1 = _tmp$1; - indirect = _tmp$2; - $s = -1; return [obj, index$1, indirect]; - } - obj = m; - indirect = e.indirect; - _i++; - /* continue; */ $s = 6; continue; - } - /* } */ case 9: - _r$4 = under(typ$4); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _ref$1 = _r$4; - /* */ if ($assertType(_ref$1, ptrType$11, true)[1]) { $s = 13; continue; } - /* */ if ($assertType(_ref$1, ptrType$13, true)[1]) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if ($assertType(_ref$1, ptrType$11, true)[1]) { */ case 13: - t = _ref$1.$val; - _ref$2 = t.fields; - _i$1 = 0; - /* while (true) { */ case 16: - /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 17; continue; } - i$1 = _i$1; - f = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); - /* */ if (f.object.sameId(pkg, name)) { $s = 18; continue; } - /* */ $s = 19; continue; - /* if (f.object.sameId(pkg, name)) { */ case 18: - $r = assert(!($interfaceIsEqual(f.object.typ, $ifaceNil))); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - index$1 = concat(e.index, i$1); - if (!($interfaceIsEqual(obj, $ifaceNil)) || e.multiples) { - _tmp$3 = $ifaceNil; - _tmp$4 = index$1; - _tmp$5 = false; - obj = _tmp$3; - index$1 = _tmp$4; - indirect = _tmp$5; - $s = -1; return [obj, index$1, indirect]; - } - obj = f; - indirect = e.indirect; - _i$1++; - /* continue; */ $s = 16; continue; - /* } */ case 19: - if ($interfaceIsEqual(obj, $ifaceNil) && f.embedded) { - _tuple$4 = deref(f.object.typ); - typ$5 = _tuple$4[0]; - isPtr$1 = _tuple$4[1]; - next = $append(next, new embeddedType.ptr(typ$5, concat(e.index, i$1), e.indirect || isPtr$1, e.multiples)); - } - _i$1++; - $s = 16; continue; - case 17: - $s = 15; continue; - /* } else if ($assertType(_ref$1, ptrType$13, true)[1]) { */ case 14: - t$1 = _ref$1.$val; - _r$5 = t$1.typeSet(); /* */ $s = 21; case 21: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$6 = _r$5.LookupMethod(pkg, name, foldCase); /* */ $s = 22; case 22: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _tuple$5 = _r$6; - i$2 = _tuple$5[0]; - m$1 = _tuple$5[1]; - /* */ if (!(m$1 === ptrType$2.nil)) { $s = 23; continue; } - /* */ $s = 24; continue; - /* if (!(m$1 === ptrType$2.nil)) { */ case 23: - $r = assert(!($interfaceIsEqual(m$1.object.typ, $ifaceNil))); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - index$1 = concat(e.index, i$2); - if (!($interfaceIsEqual(obj, $ifaceNil)) || e.multiples) { - _tmp$6 = $ifaceNil; - _tmp$7 = index$1; - _tmp$8 = false; - obj = _tmp$6; - index$1 = _tmp$7; - indirect = _tmp$8; - $s = -1; return [obj, index$1, indirect]; - } - obj = m$1; - indirect = e.indirect; - /* } */ case 24: - /* } */ case 15: - _i++; - $s = 6; continue; - case 7: - if (!($interfaceIsEqual(obj, $ifaceNil))) { - _tuple$6 = $assertType(obj, ptrType$2, true); - f$1 = _tuple$6[0]; - if (!(f$1 === ptrType$2.nil)) { - if (f$1.hasPtrRecv() && !indirect && !addressable) { - _tmp$9 = $ifaceNil; - _tmp$10 = sliceType$13.nil; - _tmp$11 = true; - obj = _tmp$9; - index$1 = _tmp$10; - indirect = _tmp$11; - $s = -1; return [obj, index$1, indirect]; - } + check = this; + check.files = sliceType$35.nil; + check.imports = sliceType$36.nil; + check.dotImportMap = false; + check.firstErr = $ifaceNil; + check.methods = false; + check.untyped = false; + check.delayed = sliceType$39.nil; + check.objPath = sliceType$7.nil; + check.cleaners = sliceType$40.nil; + pkg = check.pkg; + _ref = files; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + file = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + name = file.Name.Name; + _1 = pkg.name; + /* */ if (_1 === ("")) { $s = 4; continue; } + /* */ if (_1 === (name)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_1 === ("")) { */ case 4: + /* */ if (!(name === "_")) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!(name === "_")) { */ case 8: + pkg.name = name; + $s = 10; continue; + /* } else { */ case 9: + $r = check.error(file.Name, 2, "invalid package name _"); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 10: + check.files = $append(check.files, file); + $s = 7; continue; + /* } else if (_1 === (name)) { */ case 5: + check.files = $append(check.files, file); + $s = 7; continue; + /* } else { */ case 6: + $r = check.errorf(new atPos(((file.Package >> 0))), 3, "package %s; expected %s", new sliceType$5([new $String(name), new $String(pkg.name)])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 7: + case 3: + _i++; + $s = 1; continue; + case 2: + _ref$1 = check.files; + _i$1 = 0; + /* while (true) { */ case 13: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 14; continue; } + file$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + _r = parseGoVersion(file$1.GoVersion); /* */ $s = 15; case 15: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + v = $clone(_tuple[0], version); + /* */ if (v.major > 0) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (v.major > 0) { */ case 16: + if ($clone(v, version).equal($clone(check.version, version))) { + _i$1++; + /* continue; */ $s = 13; continue; } - $s = -1; return [obj, index$1, indirect]; - } - _r$7 = consolidateMultiples(next); /* */ $s = 26; case 26: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - current = _r$7; - $s = 4; continue; - case 5: - _tmp$12 = $ifaceNil; - _tmp$13 = sliceType$13.nil; - _tmp$14 = false; - obj = _tmp$12; - index$1 = _tmp$13; - indirect = _tmp$14; - $s = -1; return [obj, index$1, indirect]; - /* */ } return; } var $f = {$blk: lookupFieldOrMethod$1, $c: true, $r, T, _i, _i$1, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _ref$1, _ref$2, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, addressable, alt, current, e, f, f$1, foldCase, i, i$1, i$2, index$1, indirect, isPtr, isPtr$1, m, m$1, name, named, next, obj, ok, pkg, seen, t, t$1, typ$3, typ$4, typ$5, $s};return $f; + if (($clone(v, version).before($clone(check.version, version)) && $clone(check.version, version).before($clone(new version.ptr(1, 21), version))) || $clone(check.version, version).equal($clone(new version.ptr(0, 0), version))) { + _i$1++; + /* continue; */ $s = 13; continue; + } + if (check.posVers === false) { + check.posVers = new $global.Map(); + } + _r$1 = check.fset.File(file$1.FileStart); /* */ $s = 18; case 18: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _key = _r$1; (check.posVers || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$9.keyFor(_key), { k: _key, v: $clone(v, version) }); + /* } */ case 17: + _i$1++; + $s = 13; continue; + case 14: + $s = -1; return; + /* */ } return; } var $f = {$blk: initFiles, $c: true, $r, _1, _i, _i$1, _key, _r, _r$1, _ref, _ref$1, _tuple, check, file, file$1, files, name, pkg, v, $s};return $f; }; - consolidateMultiples = function consolidateMultiples$1(list$2) { - var {_i, _key, _r$1, _ref, _tuple, e, found, i, list$2, n, prev, $s, $r, $c} = $restore(this, {list$2}); + $ptrType(Checker).prototype.handleBailout = function handleBailout(err) { + var _ref, check, err, p, p$1; + check = this; + _ref = $recover(); + if (_ref === $ifaceNil || $assertType(_ref, bailout, true)[1]) { + p = _ref; + err.$set(check.firstErr); + } else { + p$1 = _ref; + $panic(p$1); + } + }; + $ptrType(Checker).prototype.Files = function Files(files) { + var {$24r, _r, check, files, $s, $r, $c} = $restore(this, {files}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (list$2.$length <= 1) { - $s = -1; return list$2; + check = this; + _r = check.checkFiles(files); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Files, $c: true, $r, $24r, _r, check, files, $s};return $f; + }; + $ptrType(Checker).prototype.checkFiles = function checkFiles(files) { + var {$24r, _r, _r$1, _tuple, check, err, files, print, x, $s, $deferred, $r, $c} = $restore(this, {files}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + check = [check]; + err = [err]; + err[0] = $ifaceNil; + check[0] = this; + if (check[0].pkg === $pkg.Unsafe) { + err[0] = $ifaceNil; + $s = -1; return err[0]; } - n = 0; - prev = new $global.Map(); - _ref = list$2; - _i = 0; + _r = parseGoVersion(check[0].conf.GoVersion); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + version.copy(check[0].version, _tuple[0]); + err[0] = _tuple[1]; + if (!($interfaceIsEqual(err[0], $ifaceNil))) { + err[0] = err[0]; + $s = -1; return err[0]; + } + /* */ if ($clone(check[0].version, version).after($clone(new version.ptr(1, 21), version))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if ($clone(check[0].version, version).after($clone(new version.ptr(1, 21), version))) { */ case 2: + _r$1 = fmt.Errorf("package requires newer Go version %v", new sliceType$5([(x = check[0].version, new x.constructor.elem(x))])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + err[0] = _r$1; + $24r = err[0]; + $s = 5; case 5: return $24r; + /* } */ case 3: + if (check[0].conf.FakeImportC && check[0].conf.go115UsesCgo) { + err[0] = errBadCgo; + $s = -1; return err[0]; + } + $deferred.push([$methodVal(check[0], "handleBailout"), [(err.$ptr || (err.$ptr = new ptrType$107(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, err)))]]); + print = (function(check, err) { return function Checker·checkFiles·func1(msg$1) { + var {_r$2, _r$3, msg$1, $s, $r, $c} = $restore(this, {msg$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + /* */ if (check[0].conf._Trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (check[0].conf._Trace) { */ case 1: + _r$2 = fmt.Println(sliceType$5.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + _r$3 = fmt.Println(new sliceType$5([new $String(msg$1)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·checkFiles·func1, $c: true, $r, _r$2, _r$3, msg$1, $s};return $f; + }; })(check, err); + $r = print("== initFiles =="); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].initFiles(files); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = print("== collectObjects =="); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].collectObjects(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = print("== packageObjects =="); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].packageObjects(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = print("== processDelayed =="); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].processDelayed(0); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = print("== cleanup =="); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].cleanup(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = print("== initOrder =="); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].initOrder(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!check[0].conf.DisableUnusedImportCheck) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (!check[0].conf.DisableUnusedImportCheck) { */ case 18: + $r = print("== unusedImports =="); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].unusedImports(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 19: + $r = print("== recordUntyped =="); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].recordUntyped(); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if ($interfaceIsEqual(check[0].firstErr, $ifaceNil)) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if ($interfaceIsEqual(check[0].firstErr, $ifaceNil)) { */ case 24: + $r = check[0].monomorph(); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 25: + check[0].pkg.goVersion = check[0].conf.GoVersion; + check[0].pkg.complete = true; + check[0].imports = sliceType$36.nil; + check[0].dotImportMap = false; + check[0].pkgPathMap = false; + check[0].seenPkgMap = false; + check[0].recvTParamMap = false; + check[0].brokenAliases = false; + check[0].unionTypeSets = false; + check[0].ctxt = ptrType$52.nil; + $s = -1; return err[0]; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return err[0]; } if($curGoroutine.asleep) { var $f = {$blk: checkFiles, $c: true, $r, $24r, _r, _r$1, _tuple, check, err, files, print, x, $s, $deferred};return $f; } } + }; + $ptrType(Checker).prototype.processDelayed = function processDelayed(top) { + var {_r, _r$1, a, check, i, top, x, $s, $r, $c} = $restore(this, {top}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + i = top; /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - e = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), embeddedType); - _r$1 = lookupType(prev, e.typ); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - i = _tuple[0]; - found = _tuple[1]; - if (found) { - ((i < 0 || i >= list$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : list$2.$array[list$2.$offset + i]).multiples = true; - } else { - _key = e.typ; (prev || $throwRuntimeError("assignment to entry in nil map")).set(Type.keyFor(_key), { k: _key, v: n }); - embeddedType.copy(((n < 0 || n >= list$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : list$2.$array[list$2.$offset + n]), e); - n = n + (1) >> 0; - } - _i++; + /* if (!(i < check.delayed.$length)) { break; } */ if(!(i < check.delayed.$length)) { $s = 2; continue; } + a = (x = check.delayed, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + i, ptrType$115))); + /* */ if (check.conf._Trace) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (check.conf._Trace) { */ case 3: + /* */ if (!(a.desc === ptrType$114.nil)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!(a.desc === ptrType$114.nil)) { */ case 5: + _r = a.desc.pos.Pos(); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = check.trace(_r, "-- " + a.desc.format, a.desc.args); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 7; continue; + /* } else { */ case 6: + $r = check.trace(nopos, "-- delayed %p", new sliceType$5([new funcType$1(a.f)])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 7: + /* } */ case 4: + $r = a.f(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (check.conf._Trace) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (check.conf._Trace) { */ case 12: + _r$1 = fmt.Println(sliceType$5.nil); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + /* } */ case 13: + i = i + (1) >> 0; $s = 1; continue; case 2: - $s = -1; return $subslice(list$2, 0, n); - /* */ } return; } var $f = {$blk: consolidateMultiples$1, $c: true, $r, _i, _key, _r$1, _ref, _tuple, e, found, i, list$2, n, prev, $s};return $f; + $r = assert(top <= check.delayed.$length); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + check.delayed = $subslice(check.delayed, 0, top); + $s = -1; return; + /* */ } return; } var $f = {$blk: processDelayed, $c: true, $r, _r, _r$1, a, check, i, top, x, $s};return $f; }; - lookupType = function lookupType$1(m, typ$3) { - var {_entry, _entry$1, _i, _key, _keys, _r$1, _ref, _size, _tuple, found, i, i$1, m, t, typ$3, $s, $r, $c} = $restore(this, {m, typ$3}); + $ptrType(Checker).prototype.cleanup = function cleanup$3() { + var {check, i, x, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _tuple = (_entry = $mapIndex(m,Type.keyFor(typ$3)), _entry !== undefined ? [_entry.v, true] : [0, false]); - i = _tuple[0]; - found = _tuple[1]; - if (found) { - $s = -1; return [i, true]; + check = this; + i = 0; + /* while (true) { */ case 1: + /* if (!(i < check.cleaners.$length)) { break; } */ if(!(i < check.cleaners.$length)) { $s = 2; continue; } + $r = (x = check.cleaners, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])).cleanup(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i + (1) >> 0; + $s = 1; continue; + case 2: + check.cleaners = sliceType$40.nil; + $s = -1; return; + /* */ } return; } var $f = {$blk: cleanup$3, $c: true, $r, check, i, x, $s};return $f; + }; + $ptrType(Checker).prototype.record = function record(x) { + var {_1, check, typ$4, val, x, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + typ$4 = $ifaceNil; + val = $ifaceNil; + _1 = x.mode; + if (_1 === (0)) { + typ$4 = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + } else if (_1 === (1)) { + typ$4 = (ptrType$16.nil); + } else if (_1 === (4)) { + typ$4 = x.typ; + val = x.val; + } else { + typ$4 = x.typ; } - _ref = m; + $r = assert(!($interfaceIsEqual(x.expr, $ifaceNil)) && !($interfaceIsEqual(typ$4, $ifaceNil))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (isUntyped(typ$4)) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (isUntyped(typ$4)) { */ case 2: + check.rememberUntyped(x.expr, false, x.mode, $assertType(typ$4, ptrType$4), val); + $s = 4; continue; + /* } else { */ case 3: + $r = check.recordTypeAndValue(x.expr, x.mode, typ$4, val); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 4: + $s = -1; return; + /* */ } return; } var $f = {$blk: record, $c: true, $r, _1, check, typ$4, val, x, $s};return $f; + }; + $ptrType(Checker).prototype.recordUntyped = function recordUntyped() { + var {_arg, _arg$1, _arg$2, _entry, _i, _key, _keys, _r, _ref, _size, check, info, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + if (true && check.Info.Types === false) { + $s = -1; return; + } + _ref = check.untyped; _i = 0; _keys = _ref ? _ref.keys() : undefined; _size = _ref ? _ref.size : 0; /* while (true) { */ case 1: /* if (!(_i < _size)) { break; } */ if(!(_i < _size)) { $s = 2; continue; } _key = _keys.next().value; - _entry$1 = _ref.get(_key); - if (_entry$1 === undefined) { + _entry = _ref.get(_key); + if (_entry === undefined) { _i++; /* continue; */ $s = 1; continue; } - t = _entry$1.k; - i$1 = _entry$1.v; - _r$1 = Identical(t, typ$3); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 3; continue; } + x = _entry.k; + info = $clone(_entry.v, exprInfo); + /* */ if (false && isTyped(info.typ)) { $s = 3; continue; } /* */ $s = 4; continue; - /* if (_r$1) { */ case 3: - $s = -1; return [i$1, true]; + /* if (false && isTyped(info.typ)) { */ case 3: + _r = x.Pos(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg = new token.Pos(_r); + _arg$1 = x; + _arg$2 = info.typ; + $r = check.dump("%v: %s (type %s) is typed", new sliceType$5([_arg, _arg$1, _arg$2])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + unreachable(); /* } */ case 4: + $r = check.recordTypeAndValue(x, info.mode, info.typ, info.val); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _i++; $s = 1; continue; case 2: - $s = -1; return [0, false]; - /* */ } return; } var $f = {$blk: lookupType$1, $c: true, $r, _entry, _entry$1, _i, _key, _keys, _r$1, _ref, _size, _tuple, found, i, i$1, m, t, typ$3, $s};return $f; + $s = -1; return; + /* */ } return; } var $f = {$blk: recordUntyped, $c: true, $r, _arg, _arg$1, _arg$2, _entry, _i, _key, _keys, _r, _ref, _size, check, info, x, $s};return $f; }; - $ptrType(instanceLookup).prototype.lookup = function lookup$1(inst) { - var {_entry, _i, _i$1, _r$1, _r$2, _ref, _ref$1, _v, inst, l, t, t$1, $s, $r, $c} = $restore(this, {inst}); + $ptrType(Checker).prototype.recordTypeAndValue = function recordTypeAndValue(x, mode, typ$4, val) { + var {_key, _r, _v, check, m, mode, typ$4, val, x, $s, $r, $c} = $restore(this, {x, mode, typ$4, val}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - l = this; - _ref = l.buf; - _i = 0; + check = this; + $r = assert(!($interfaceIsEqual(x, $ifaceNil))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = assert(!($interfaceIsEqual(typ$4, $ifaceNil))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (mode === 0) { + $s = -1; return; + } + /* */ if (mode === 4) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (mode === 4) { */ case 3: + $r = assert(!($interfaceIsEqual(val, $ifaceNil))); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if ($interfaceIsEqual(typ$4, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { _v = true; $s = 6; continue s; } + _r = allBasic(typ$4, 59); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r; case 6: + $r = assert(_v); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 4: + m = check.Info.Types; + if (!(m === false)) { + _key = x; (m || $throwRuntimeError("assignment to entry in nil map")).set(ast.Expr.keyFor(_key), { k: _key, v: $clone(new TypeAndValue.ptr(mode, typ$4, val), TypeAndValue) }); + } + $s = -1; return; + /* */ } return; } var $f = {$blk: recordTypeAndValue, $c: true, $r, _key, _r, _v, check, m, mode, typ$4, val, x, $s};return $f; + }; + $ptrType(Checker).prototype.recordBuiltinType = function recordBuiltinType(f, sig) { + var {_ref, check, f, p, p$1, p$2, sig, $s, $r, $c} = $restore(this, {f, sig}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; /* while (true) { */ case 1: - /* if (!(_i < 3)) { break; } */ if(!(_i < 3)) { $s = 2; continue; } - t = ((_i < 0 || _i >= _ref.length) ? ($throwRuntimeError("index out of range"), undefined) : _ref[_i]); - if (!(!(t === ptrType$9.nil))) { _v = false; $s = 5; continue s; } - _r$1 = Identical(inst, t); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = _r$1; case 5: - /* */ if (_v) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (_v) { */ case 3: - $s = -1; return t; - /* } */ case 4: - _i++; + $r = check.recordTypeAndValue(f, 2, sig, $ifaceNil); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _ref = f; + if ($assertType(_ref, ptrType$31, true)[1] || $assertType(_ref, ptrType$37, true)[1]) { + p = _ref; + $s = -1; return; + } else if ($assertType(_ref, ptrType$40, true)[1]) { + p$1 = _ref.$val; + f = p$1.X; + } else { + p$2 = _ref; + unreachable(); + } $s = 1; continue; case 2: - _ref$1 = (_entry = $mapIndex(l.m,ptrType$9.keyFor(inst.Origin())), _entry !== undefined ? _entry.v : sliceType$7.nil); - _i$1 = 0; - /* while (true) { */ case 7: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 8; continue; } - t$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - _r$2 = Identical(inst, t$1); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (_r$2) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (_r$2) { */ case 9: - $s = -1; return t$1; - /* } */ case 10: - _i$1++; - $s = 7; continue; - case 8: - $s = -1; return ptrType$9.nil; - /* */ } return; } var $f = {$blk: lookup$1, $c: true, $r, _entry, _i, _i$1, _r$1, _r$2, _ref, _ref$1, _v, inst, l, t, t$1, $s};return $f; + $s = -1; return; + /* */ } return; } var $f = {$blk: recordBuiltinType, $c: true, $r, _ref, check, f, p, p$1, p$2, sig, $s};return $f; }; - $ptrType(instanceLookup).prototype.add = function add$1(inst) { - var _entry, _i, _key, _ref, i, inst, insts, l, t, x; - l = this; - _ref = l.buf; - _i = 0; - while (true) { - if (!(_i < 3)) { break; } - i = _i; - t = ((_i < 0 || _i >= _ref.length) ? ($throwRuntimeError("index out of range"), undefined) : _ref[_i]); - if (t === ptrType$9.nil) { - (x = l.buf, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i] = inst)); - return; - } - _i++; + $ptrType(Checker).prototype.recordCommaOkTypes = function recordCommaOkTypes(x, a) { + var {_entry, _key, _r, _r$1, _tmp, _tmp$1, _tuple, _v, a, check, m, p, pos$1, t0, t1, tv, x, $s, $r, $c} = $restore(this, {x, a}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + $r = assert(!($interfaceIsEqual(x, $ifaceNil))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = assert(a.$length === 2); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if ((0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]).mode === 0) { + $s = -1; return; } - if (l.m === false) { - l.m = new $global.Map(); + _tmp = (0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]).typ; + _tmp$1 = (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1]).typ; + t0 = _tmp; + t1 = _tmp$1; + if (!(isTyped(t0) && isTyped(t1))) { _v = false; $s = 3; continue s; } + _r = isBoolean(t1); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r || $interfaceIsEqual(t1, universeError); case 3: + $r = assert(_v); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + m = check.Info.Types; + /* */ if (!(m === false)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (!(m === false)) { */ case 6: + /* while (true) { */ case 8: + tv = $clone((_entry = $mapIndex(m,ast.Expr.keyFor(x)), _entry !== undefined ? _entry.v : new TypeAndValue.ptr(0, $ifaceNil, $ifaceNil)), TypeAndValue); + $r = assert(!($interfaceIsEqual(tv.Type, $ifaceNil))); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = x.Pos(); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + pos$1 = _r$1; + tv.Type = NewTuple(new sliceType$9([NewVar(pos$1, check.pkg, "", t0), NewVar(pos$1, check.pkg, "", t1)])); + _key = x; (m || $throwRuntimeError("assignment to entry in nil map")).set(ast.Expr.keyFor(_key), { k: _key, v: $clone(tv, TypeAndValue) }); + _tuple = $assertType(x, ptrType$40, true); + p = _tuple[0]; + if (p === ptrType$40.nil) { + /* break; */ $s = 9; continue; + } + x = p.X; + $s = 8; continue; + case 9: + /* } */ case 7: + $s = -1; return; + /* */ } return; } var $f = {$blk: recordCommaOkTypes, $c: true, $r, _entry, _key, _r, _r$1, _tmp, _tmp$1, _tuple, _v, a, check, m, p, pos$1, t0, t1, tv, x, $s};return $f; + }; + $ptrType(Checker).prototype.recordInstance = function recordInstance$1(expr$1, targs, typ$4) { + var {_key, check, expr$1, ident$1, m, targs, typ$4, $s, $r, $c} = $restore(this, {expr$1, targs, typ$4}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + ident$1 = instantiatedIdent(expr$1); + $r = assert(!(ident$1 === ptrType$31.nil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = assert(!($interfaceIsEqual(typ$4, $ifaceNil))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + m = check.Info.Instances; + if (!(m === false)) { + _key = ident$1; (m || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$31.keyFor(_key), { k: _key, v: $clone(new Instance.ptr(newTypeList(targs), typ$4), Instance) }); + } + $s = -1; return; + /* */ } return; } var $f = {$blk: recordInstance$1, $c: true, $r, _key, check, expr$1, ident$1, m, targs, typ$4, $s};return $f; + }; + instantiatedIdent = function instantiatedIdent$1(expr$1) { + var _ref, _ref$1, e, e$1, e$2, expr$1, selOrIdent, x, x$1; + selOrIdent = $ifaceNil; + _ref = expr$1; + if ($assertType(_ref, ptrType$38, true)[1]) { + e = _ref.$val; + selOrIdent = e.X; + } else if ($assertType(_ref, ptrType$39, true)[1]) { + e$1 = _ref.$val; + selOrIdent = e$1.X; + } else if ($assertType(_ref, ptrType$37, true)[1] || $assertType(_ref, ptrType$31, true)[1]) { + e$2 = _ref; + selOrIdent = e$2; + } + _ref$1 = selOrIdent; + if ($assertType(_ref$1, ptrType$31, true)[1]) { + x = _ref$1.$val; + return x; + } else if ($assertType(_ref$1, ptrType$37, true)[1]) { + x$1 = _ref$1.$val; + return x$1.Sel; + } + $panic(new $String("instantiated ident not found")); + }; + $ptrType(Checker).prototype.recordDef = function recordDef(id, obj) { + var {_key, check, id, m, obj, $s, $r, $c} = $restore(this, {id, obj}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + $r = assert(!(id === ptrType$31.nil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + m = check.Info.Defs; + if (!(m === false)) { + _key = id; (m || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$31.keyFor(_key), { k: _key, v: obj }); } - insts = (_entry = $mapIndex(l.m,ptrType$9.keyFor(inst.Origin())), _entry !== undefined ? _entry.v : sliceType$7.nil); - _key = inst.Origin(); (l.m || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$9.keyFor(_key), { k: _key, v: $append(insts, inst) }); + $s = -1; return; + /* */ } return; } var $f = {$blk: recordDef, $c: true, $r, _key, check, id, m, obj, $s};return $f; }; - $ptrType(Checker).prototype.missingMethod = function missingMethod(V, T, static$1) { - var {T, V, _i, _i$1, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _v, alt, check, f, f$1, found, m, m$1, method, obj, static$1, tset, u, $s, $r, $c} = $restore(this, {V, T, static$1}); + $ptrType(Checker).prototype.recordUse = function recordUse(id, obj) { + var {_key, check, id, m, obj, $s, $r, $c} = $restore(this, {id, obj}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - method = ptrType$2.nil; - alt = ptrType$2.nil; check = this; - _r$1 = T.NumMethods(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1 === 0) { $s = 1; continue; } + $r = assert(!(id === ptrType$31.nil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = assert(!($interfaceIsEqual(obj, $ifaceNil))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + m = check.Info.Uses; + if (!(m === false)) { + _key = id; (m || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$31.keyFor(_key), { k: _key, v: obj }); + } + $s = -1; return; + /* */ } return; } var $f = {$blk: recordUse, $c: true, $r, _key, check, id, m, obj, $s};return $f; + }; + $ptrType(Checker).prototype.recordImplicit = function recordImplicit(node$5, obj) { + var {_key, check, m, node$5, obj, $s, $r, $c} = $restore(this, {node$5, obj}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + $r = assert(!($interfaceIsEqual(node$5, $ifaceNil))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = assert(!($interfaceIsEqual(obj, $ifaceNil))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + m = check.Info.Implicits; + if (!(m === false)) { + _key = node$5; (m || $throwRuntimeError("assignment to entry in nil map")).set(ast.Node.keyFor(_key), { k: _key, v: obj }); + } + $s = -1; return; + /* */ } return; } var $f = {$blk: recordImplicit, $c: true, $r, _key, check, m, node$5, obj, $s};return $f; + }; + $ptrType(Checker).prototype.recordSelection = function recordSelection(x, kind, recv, obj, index$1, indirect) { + var {_key, check, index$1, indirect, kind, m, obj, recv, x, $s, $r, $c} = $restore(this, {x, kind, recv, obj, index$1, indirect}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + $r = assert(!($interfaceIsEqual(obj, $ifaceNil)) && ($interfaceIsEqual(recv, $ifaceNil) || index$1.$length > 0)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.recordUse(x.Sel, obj); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + m = check.Info.Selections; + if (!(m === false)) { + _key = x; (m || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$37.keyFor(_key), { k: _key, v: new Selection.ptr(kind, recv, obj, index$1, indirect) }); + } + $s = -1; return; + /* */ } return; } var $f = {$blk: recordSelection, $c: true, $r, _key, check, index$1, indirect, kind, m, obj, recv, x, $s};return $f; + }; + $ptrType(Checker).prototype.recordScope = function recordScope(node$5, scope) { + var {_key, check, m, node$5, scope, $s, $r, $c} = $restore(this, {node$5, scope}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + $r = assert(!($interfaceIsEqual(node$5, $ifaceNil))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = assert(!(scope === ptrType.nil)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + m = check.Info.Scopes; + if (!(m === false)) { + _key = node$5; (m || $throwRuntimeError("assignment to entry in nil map")).set(ast.Node.keyFor(_key), { k: _key, v: scope }); + } + $s = -1; return; + /* */ } return; } var $f = {$blk: recordScope, $c: true, $r, _key, check, m, node$5, scope, $s};return $f; + }; + NewChan = function NewChan$1(dir$2, elem) { + var dir$2, elem; + return new Chan.ptr(dir$2, elem); + }; + $pkg.NewChan = NewChan; + $ptrType(Chan).prototype.Dir = function Dir() { + var c; + c = this; + return c.dir; + }; + $ptrType(Chan).prototype.Elem = function Elem$3() { + var c; + c = this; + return c.elem; + }; + $ptrType(Chan).prototype.Underlying = function Underlying$10() { + var c; + c = this; + return c; + }; + $ptrType(Chan).prototype.String = function String$34() { + var {$24r, _r, c, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + c = this; + _r = TypeString(c, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$34, $c: true, $r, $24r, _r, c, $s};return $f; + }; + $ptrType(Checker).prototype.funcInst = function funcInst(tsig, pos$1, x, ix, infer$1) { + var {_r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tuple, _v, args, check, expr$1, expr$2, got, gsig, infer$1, instErrPos, ix, params, params2, pos$1, sig, targs, tparams, tsig, versionErr, want, x, x$1, x$2, x$3, xlist, $s, $r, $c} = $restore(this, {tsig, pos$1, x, ix, infer$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + $r = assert(!(tsig === ptrType$29.nil) || !(ix === ptrType$104.nil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + instErrPos = $ifaceNil; + /* */ if (!(ix === ptrType$104.nil)) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!(ix === ptrType$104.nil)) { */ case 2: + _r = inNode(ix.Orig, ix.IndexListExpr.Lbrack); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + instErrPos = (x$1 = _r, new x$1.constructor.elem(x$1)); + $s = 4; continue; + /* } else { */ case 3: + instErrPos = new atPos(((pos$1 >> 0))); + /* } */ case 4: + _r$1 = check.verifyVersionf(instErrPos, $clone(go1_18, version), "function instantiation", sliceType$5.nil); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + versionErr = !_r$1; + targs = sliceType$3.nil; + xlist = sliceType$10.nil; + /* */ if (!(ix === ptrType$104.nil)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!(ix === ptrType$104.nil)) { */ case 7: + xlist = ix.IndexListExpr.Indices; + _r$2 = check.typeList(xlist); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + targs = _r$2; + if (targs === sliceType$3.nil) { + x.mode = 0; + x.expr = ix; + $s = -1; return [sliceType$3.nil, sliceType$10.nil]; + } + $r = assert(targs.$length === xlist.$length); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 8: + sig = $assertType(x.typ, ptrType$29); + _tmp = targs.$length; + _tmp$1 = sig.TypeParams().Len(); + got = _tmp; + want = _tmp$1; + /* */ if (got > want) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (got > want) { */ case 11: + $r = check.errorf((x$2 = ix.IndexListExpr.Indices, x$3 = got - 1 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])), 137, "got %d type arguments but want %d", new sliceType$5([new $Int(got), new $Int(want)])); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + x.expr = ix.Orig; + $s = -1; return [sliceType$3.nil, sliceType$10.nil]; + /* } */ case 12: + /* */ if (got < want) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (got < want) { */ case 14: + if (!infer$1) { + $s = -1; return [targs, xlist]; + } + args = sliceType$29.nil; + params = sliceType$9.nil; + /* */ if (!(tsig === ptrType$29.nil) && !(sig.tparams === ptrType$49.nil)) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (!(tsig === ptrType$29.nil) && !(sig.tparams === ptrType$49.nil)) { */ case 16: + if (!(!versionErr)) { _v = false; $s = 20; continue s; } + _r$3 = check.allowVersion(check.pkg, instErrPos, $clone(go1_21, version)); /* */ $s = 21; case 21: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v = !_r$3; case 20: + /* */ if (_v) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (_v) { */ case 18: + /* */ if (!(ix === ptrType$104.nil)) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (!(ix === ptrType$104.nil)) { */ case 22: + $r = check.versionErrorf(instErrPos, $clone(go1_21, version), "partially instantiated function in assignment", sliceType$5.nil); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 24; continue; + /* } else { */ case 23: + $r = check.versionErrorf(instErrPos, $clone(go1_21, version), "implicitly instantiated function in assignment", sliceType$5.nil); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 24: + /* } */ case 19: + _r$4 = NewSignatureType(ptrType$17.nil, sliceType$8.nil, sliceType$8.nil, sig.params, sig.results, sig.variadic); /* */ $s = 27; case 27: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + gsig = _r$4; + _r$5 = x.Pos(); /* */ $s = 28; case 28: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$6 = NewVar(_r$5, check.pkg, "", gsig); /* */ $s = 29; case 29: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + params = new sliceType$9([_r$6]); + expr$1 = ast.NewIdent("variable in assignment"); + _r$7 = x.Pos(); /* */ $s = 30; case 30: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + expr$1.NamePos = _r$7; + args = new sliceType$29([new operand.ptr(7, expr$1, tsig, $ifaceNil, 0)]); + /* } */ case 17: + _r$8 = check.renameTParams(pos$1, sig.TypeParams().list(), NewTuple(params)); /* */ $s = 31; case 31: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _tuple = _r$8; + tparams = _tuple[0]; + params2 = _tuple[1]; + _r$9 = check.infer(new atPos(((pos$1 >> 0))), tparams, targs, $assertType(params2, ptrType$16), args); /* */ $s = 32; case 32: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + targs = _r$9; + if (targs === sliceType$3.nil) { + x.mode = 0; + x.expr = ix; + $s = -1; return [sliceType$3.nil, sliceType$10.nil]; + } + got = targs.$length; + /* } */ case 15: + $r = assert(got === want); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + expr$2 = x.expr; + if (!(ix === ptrType$104.nil)) { + expr$2 = ix.Orig; + } + _r$10 = x.Pos(); /* */ $s = 34; case 34: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$11 = check.instantiateSignature(_r$10, expr$2, sig, targs, xlist); /* */ $s = 35; case 35: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + sig = _r$11; + x.typ = sig; + x.mode = 7; + x.expr = expr$2; + $s = -1; return [sliceType$3.nil, sliceType$10.nil]; + /* */ } return; } var $f = {$blk: funcInst, $c: true, $r, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tuple, _v, args, check, expr$1, expr$2, got, gsig, infer$1, instErrPos, ix, params, params2, pos$1, sig, targs, tparams, tsig, versionErr, want, x, x$1, x$2, x$3, xlist, $s};return $f; + }; + $ptrType(Checker).prototype.instantiateSignature = function instantiateSignature(pos$1, expr$1, typ$4, targs, xlist) { + var {$24r, _r, check, expr$1, inst, pos$1, res, targs, typ$4, xlist, $s, $deferred, $r, $c} = $restore(this, {pos$1, expr$1, typ$4, targs, xlist}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + check = [check]; + pos$1 = [pos$1]; + res = [res]; + targs = [targs]; + typ$4 = [typ$4]; + xlist = [xlist]; + res[0] = ptrType$29.nil; + check[0] = this; + $r = assert(!(check[0] === ptrType$6.nil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = assert(targs[0].$length === typ$4[0].TypeParams().Len()); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (check[0].conf._Trace) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (check[0].conf._Trace) { */ case 3: + $r = check[0].trace(pos$1[0], "-- instantiating signature %s with %s", new sliceType$5([typ$4[0], targs[0]])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + check[0].indent = check[0].indent + (1) >> 0; + $deferred.push([(function(check, pos$1, res, targs, typ$4, xlist) { return function Checker·instantiateSignature·func1() { + var {$s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check[0].indent = check[0].indent - (1) >> 0; + $r = check[0].trace(pos$1[0], "=> %s (under = %s)", new sliceType$5([res[0], res[0].Underlying()])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·instantiateSignature·func1, $c: true, $r, $s};return $f; + }; })(check, pos$1, res, targs, typ$4, xlist), []]); + /* } */ case 4: + _r = check[0].instance(pos$1[0], typ$4[0], targs[0], ptrType$10.nil, check[0].context()); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + inst = $assertType(_r, ptrType$29); + $r = assert(inst.TypeParams().Len() === 0); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].recordInstance(expr$1, targs[0], inst); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = assert(xlist[0].$length <= targs[0].$length); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + check[0].later((function(check, pos$1, res, targs, typ$4, xlist) { return function Checker·instantiateSignature·func2() { + var {_r$1, _r$2, _tuple, err, i, pos$2, tparams, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + tparams = typ$4[0].TypeParams().list(); + _r$1 = check[0].verify(pos$1[0], tparams, targs[0], check[0].context()); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + i = _tuple[0]; + err = _tuple[1]; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2: + pos$2 = pos$1[0]; + /* */ if (i < xlist[0].$length) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (i < xlist[0].$length) { */ case 5: + _r$2 = ((i < 0 || i >= xlist[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : xlist[0].$array[xlist[0].$offset + i]).Pos(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + pos$2 = _r$2; + /* } */ case 6: + $r = check[0].softErrorf(new atPos(((pos$2 >> 0))), 139, "%s", new sliceType$5([err])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 4; continue; + /* } else { */ case 3: + $r = check[0].mono.recordInstance(check[0].pkg, pos$1[0], tparams, targs[0], xlist[0]); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 4: + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·instantiateSignature·func2, $c: true, $r, _r$1, _r$2, _tuple, err, i, pos$2, tparams, $s};return $f; + }; })(check, pos$1, res, targs, typ$4, xlist)).describef(new atPos(((pos$1[0] >> 0))), "verify instantiation", sliceType$5.nil); + res[0] = inst; + $24r = res[0]; + $s = 10; case 10: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return res[0]; } if($curGoroutine.asleep) { var $f = {$blk: instantiateSignature, $c: true, $r, $24r, _r, check, expr$1, inst, pos$1, res, targs, typ$4, xlist, $s, $deferred};return $f; } } + }; + $ptrType(Checker).prototype.callExpr = function callExpr(x, call) { + var {T, _1, _2, _3, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _v, args, atargs, atxlist, call, cgocall, check, got, id, ix, n, sig, t, targs, want, wasGeneric, x, x$1, x$2, x$3, x$4, x$5, x$6, xlist, $s, $r, $c} = $restore(this, {x, call}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + ix = typeparams.UnpackIndexExpr(call.Fun); + /* */ if (!(ix === ptrType$104.nil)) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (_r$1 === 0) { */ case 1: - $s = -1; return [method, alt]; + /* if (!(ix === ptrType$104.nil)) { */ case 1: + _r = check.indexExpr(x, ix); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_r) { */ case 4: + $r = assert(x.mode === 7); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 6; continue; + /* } else { */ case 5: + ix = ptrType$104.nil; + /* } */ case 6: + x.expr = call.Fun; + $r = check.record(x); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 3; continue; + /* } else { */ case 2: + $r = check.exprOrType(x, call.Fun, true); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 3: + _1 = x.mode; + /* */ if (_1 === (0)) { $s = 12; continue; } + /* */ if (_1 === (3)) { $s = 13; continue; } + /* */ if (_1 === (2)) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (_1 === (0)) { */ case 12: + _r$1 = check.use(call.Args); /* */ $s = 16; case 16: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + x.expr = call; + $s = -1; return 2; + /* } else if (_1 === (3)) { */ case 13: + $r = check.nonGeneric($ifaceNil, x); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (x.mode === 0) { + $s = -1; return 0; + } + T = x.typ; + x.mode = 0; + n = call.Args.$length; + _2 = n; + /* */ if (_2 === (0)) { $s = 19; continue; } + /* */ if (_2 === (1)) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (_2 === (0)) { */ case 19: + _r$2 = inNode(call, call.Rparen); /* */ $s = 23; case 23: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $r = check.errorf((x$1 = _r$2, new x$1.constructor.elem(x$1)), 126, "missing argument in conversion to %s", new sliceType$5([T])); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 22; continue; + /* } else if (_2 === (1)) { */ case 20: + $r = check.expr($ifaceNil, x, (x$2 = call.Args, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0]))); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!((x.mode === 0))) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (!((x.mode === 0))) { */ case 26: + /* */ if (new token.Pos(call.Ellipsis).IsValid()) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (new token.Pos(call.Ellipsis).IsValid()) { */ case 28: + $r = check.errorf((x$3 = call.Args, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])), 77, "invalid use of ... in conversion to %s", new sliceType$5([T])); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* break; */ $s = 18; continue; + /* } */ case 29: + _r$3 = under(T); /* */ $s = 31; case 31: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = $assertType(_r$3, ptrType$14, true); + t = _tuple[0]; + /* */ if (!(t === ptrType$14.nil) && !isTypeParam(T)) { $s = 32; continue; } + /* */ $s = 33; continue; + /* if (!(t === ptrType$14.nil) && !isTypeParam(T)) { */ case 32: + _r$4 = t.IsMethodSet(); /* */ $s = 36; case 36: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (!_r$4) { $s = 34; continue; } + /* */ $s = 35; continue; + /* if (!_r$4) { */ case 34: + $r = check.errorf(call, 142, "cannot use interface %s in conversion (contains specific type constraints or is comparable)", new sliceType$5([T])); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* break; */ $s = 18; continue; + /* } */ case 35: + /* } */ case 33: + $r = check.conversion(x, T); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 27: + $s = 22; continue; + /* } else { */ case 21: + _r$5 = check.use(call.Args); /* */ $s = 39; case 39: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$5; + $r = check.errorf((x$4 = call.Args, x$5 = n - 1 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])), 126, "too many arguments in conversion to %s", new sliceType$5([T])); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 22: + case 18: + x.expr = call; + $s = -1; return 0; + /* } else if (_1 === (2)) { */ case 14: + id = x.id; + _r$6 = check.builtin(x, call, id); /* */ $s = 43; case 43: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + /* */ if (!_r$6) { $s = 41; continue; } + /* */ $s = 42; continue; + /* if (!_r$6) { */ case 41: + x.mode = 0; + /* } */ case 42: + x.expr = call; + if (!((x.mode === 0)) && !((x.mode === 4))) { + check.environment.hasCallOrRecv = true; + } + $s = -1; return ((id < 0 || id >= predeclaredFuncs.length) ? ($throwRuntimeError("index out of range"), undefined) : predeclaredFuncs[id]).kind; + /* } */ case 15: + case 11: + cgocall = x.mode === 10; + _r$7 = coreType(x.typ); /* */ $s = 44; case 44: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _tuple$1 = $assertType(_r$7, ptrType$29, true); + sig = _tuple$1[0]; + /* */ if (sig === ptrType$29.nil) { $s = 45; continue; } + /* */ $s = 46; continue; + /* if (sig === ptrType$29.nil) { */ case 45: + $r = check.errorf(x, 127, "invalid operation: cannot call non-function %s", new sliceType$5([x])); /* */ $s = 47; case 47: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + x.expr = call; + $s = -1; return 2; + /* } */ case 46: + wasGeneric = sig.TypeParams().Len() > 0; + xlist = sliceType$10.nil; + targs = sliceType$3.nil; + /* */ if (!(ix === ptrType$104.nil)) { $s = 48; continue; } + /* */ $s = 49; continue; + /* if (!(ix === ptrType$104.nil)) { */ case 48: + xlist = ix.IndexListExpr.Indices; + _r$8 = check.typeList(xlist); /* */ $s = 50; case 50: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + targs = _r$8; + /* */ if (targs === sliceType$3.nil) { $s = 51; continue; } + /* */ $s = 52; continue; + /* if (targs === sliceType$3.nil) { */ case 51: + _r$9 = check.use(call.Args); /* */ $s = 53; case 53: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$9; + x.mode = 0; + x.expr = call; + $s = -1; return 2; + /* } */ case 52: + $r = assert(targs.$length === xlist.$length); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tmp = targs.$length; + _tmp$1 = sig.TypeParams().Len(); + got = _tmp; + want = _tmp$1; + /* */ if (got > want) { $s = 55; continue; } + /* */ $s = 56; continue; + /* if (got > want) { */ case 55: + $r = check.errorf(((want < 0 || want >= xlist.$length) ? ($throwRuntimeError("index out of range"), undefined) : xlist.$array[xlist.$offset + want]), 137, "got %d type arguments but want %d", new sliceType$5([new $Int(got), new $Int(want)])); /* */ $s = 57; case 57: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$10 = check.use(call.Args); /* */ $s = 58; case 58: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$10; + x.mode = 0; + x.expr = call; + $s = -1; return 2; + /* } */ case 56: + /* */ if ((got === want) && want > 0) { $s = 59; continue; } + /* */ $s = 60; continue; + /* if ((got === want) && want > 0) { */ case 59: + _r$11 = check.verifyVersionf(new atPos(((ix.IndexListExpr.Lbrack >> 0))), $clone(go1_18, version), "function instantiation", sliceType$5.nil); /* */ $s = 61; case 61: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _r$11; + _r$12 = ix.IndexListExpr.Pos(); /* */ $s = 62; case 62: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _r$13 = check.instantiateSignature(_r$12, ix.Orig, sig, targs, xlist); /* */ $s = 63; case 63: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + sig = _r$13; + targs = sliceType$3.nil; + xlist = sliceType$10.nil; + /* } */ case 60: + /* } */ case 49: + _r$14 = check.genericExprList(call.Args); /* */ $s = 64; case 64: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _tuple$2 = _r$14; + args = _tuple$2[0]; + atargs = _tuple$2[1]; + atxlist = _tuple$2[2]; + _r$15 = check.arguments$(call, sig, targs, xlist, args, atargs, atxlist); /* */ $s = 65; case 65: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + sig = _r$15; + /* */ if (wasGeneric && (sig.TypeParams().Len() === 0)) { $s = 66; continue; } + /* */ $s = 67; continue; + /* if (wasGeneric && (sig.TypeParams().Len() === 0)) { */ case 66: + $r = check.recordTypeAndValue(call.Fun, 7, sig, $ifaceNil); /* */ $s = 68; case 68: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 67: + _3 = sig.results.Len(); + if (_3 === (0)) { + x.mode = 1; + } else if (_3 === (1)) { + if (cgocall) { + x.mode = 9; + } else { + x.mode = 7; + } + x.typ = (x$6 = sig.results.vars, (0 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + 0])).object.typ; + } else { + x.mode = 7; + x.typ = sig.results; + } + x.expr = call; + check.environment.hasCallOrRecv = true; + if (!((x.mode === 7) && sig.TypeParams().Len() > 0)) { _v = false; $s = 71; continue s; } + _r$16 = isParameterized(sig.TypeParams().list(), x.typ); /* */ $s = 72; case 72: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + _v = _r$16; case 71: + /* */ if (_v) { $s = 69; continue; } + /* */ $s = 70; continue; + /* if (_v) { */ case 69: + x.mode = 0; + /* } */ case 70: + $s = -1; return 2; + /* */ } return; } var $f = {$blk: callExpr, $c: true, $r, T, _1, _2, _3, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _v, args, atargs, atxlist, call, cgocall, check, got, id, ix, n, sig, t, targs, want, wasGeneric, x, x$1, x$2, x$3, x$4, x$5, x$6, xlist, $s};return $f; + }; + $ptrType(Checker).prototype.exprList = function exprList(elist) { + var {_i, _r, _ref, _tuple, check, e, elist, i, n, x, xlist, $s, $r, $c} = $restore(this, {elist}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + xlist = sliceType$29.nil; + check = this; + n = elist.$length; + /* */ if (n === 1) { $s = 1; continue; } + /* */ if (n > 1) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (n === 1) { */ case 1: + _r = check.multiExpr((0 >= elist.$length ? ($throwRuntimeError("index out of range"), undefined) : elist.$array[elist.$offset + 0]), false); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + xlist = _tuple[0]; + $s = 3; continue; + /* } else if (n > 1) { */ case 2: + xlist = $makeSlice(sliceType$29, n); + _ref = elist; + _i = 0; + /* while (true) { */ case 5: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 6; continue; } + x = [x]; + i = _i; + e = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + x[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + $r = check.expr($ifaceNil, x[0], e); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + ((i < 0 || i >= xlist.$length) ? ($throwRuntimeError("index out of range"), undefined) : xlist.$array[xlist.$offset + i] = x[0]); + _i++; + $s = 5; continue; + case 6: + /* } */ case 3: + $s = -1; return xlist; + /* */ } return; } var $f = {$blk: exprList, $c: true, $r, _i, _r, _ref, _tuple, check, e, elist, i, n, x, xlist, $s};return $f; + }; + $ptrType(Checker).prototype.genericExprList = function genericExprList(elist) { + var {$24r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _i, _i$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _v, _v$1, _v$2, check, e, e$1, elist, i, i$1, infer$1, ix, ix$1, n, ok, resList, t, targs, targs$1, targsList, v, x, x$1, xlist, xlist$1, xlistList, $s, $deferred, $r, $c} = $restore(this, {elist}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + resList = [resList]; + targsList = [targsList]; + x = [x]; + xlistList = [xlistList]; + resList[0] = sliceType$29.nil; + targsList[0] = sliceType$41.nil; + xlistList[0] = sliceType$42.nil; + check = this; + /* */ if (false) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (false) { */ case 1: + $deferred.push([(function(resList, targsList, x, xlistList) { return function Checker·genericExprList·func1() { + var {_i, _ref, i, n, x$1, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = assert(targsList[0].$length === xlistList[0].$length); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _ref = resList[0]; + _i = 0; + /* while (true) { */ case 2: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } + i = _i; + x$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + /* */ if (i < targsList[0].$length) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (i < targsList[0].$length) { */ case 4: + n = ((i < 0 || i >= targsList[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : targsList[0].$array[targsList[0].$offset + i]).$length; + /* */ if (n > 0) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (n > 0) { */ case 6: + $r = assert(n < $assertType(x$1.typ, ptrType$29).TypeParams().Len()); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 7: + /* } */ case 5: + _i++; + $s = 2; continue; + case 3: + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·genericExprList·func1, $c: true, $r, _i, _ref, i, n, x$1, $s};return $f; + }; })(resList, targsList, x, xlistList), []]); /* } */ case 2: - _r$2 = under(V); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple = $assertType(_r$2, ptrType$13, true); - u = _tuple[0]; - /* */ if (!(u === ptrType$13.nil)) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (!(u === ptrType$13.nil)) { */ case 5: - _r$3 = u.typeSet(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - tset = _r$3; - _r$4 = T.typeSet(); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _ref = _r$4.methods; + infer$1 = true; + n = elist.$length; + if (!(n > 0)) { _v = false; $s = 5; continue s; } + _r = check.allowVersion(check.pkg, (0 >= elist.$length ? ($throwRuntimeError("index out of range"), undefined) : elist.$array[elist.$offset + 0]), $clone(go1_21, version)); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r; case 5: + /* */ if (_v) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_v) { */ case 3: + infer$1 = false; + /* } */ case 4: + /* */ if (n === 1) { $s = 7; continue; } + /* */ if (n > 1) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (n === 1) { */ case 7: + e = (0 >= elist.$length ? ($throwRuntimeError("index out of range"), undefined) : elist.$array[elist.$offset + 0]); + x[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + ix = typeparams.UnpackIndexExpr(e); + if (!(!(ix === ptrType$104.nil))) { _v$1 = false; $s = 13; continue s; } + _r$1 = check.indexExpr(x[0], ix); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v$1 = _r$1; case 13: + /* */ if (_v$1) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (_v$1) { */ case 10: + _arg = ptrType$29.nil; + _r$2 = x[0].Pos(); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg$1 = _r$2; + _arg$2 = x[0]; + _arg$3 = ix; + _arg$4 = infer$1; + _r$3 = check.funcInst(_arg, _arg$1, _arg$2, _arg$3, _arg$4); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + targs = _tuple[0]; + xlist = _tuple[1]; + /* */ if (!(targs === sliceType$3.nil)) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (!(targs === sliceType$3.nil)) { */ case 17: + targsList[0] = new sliceType$41([targs]); + xlistList[0] = new sliceType$42([xlist]); + x[0].expr = ix.Orig; + $s = 19; continue; + /* } else { */ case 18: + $r = check.record(x[0]); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 19: + resList[0] = new sliceType$29([x[0]]); + $s = 12; continue; + /* } else { */ case 11: + _r$4 = check.rawExpr($ifaceNil, x[0], e, $ifaceNil, true); /* */ $s = 21; case 21: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4; + $r = check.exclude(x[0], 14); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tuple$1 = $assertType(x[0].typ, ptrType$16, true); + t = _tuple$1[0]; + ok = _tuple$1[1]; + if (ok && !((x[0].mode === 0))) { + resList[0] = $makeSlice(sliceType$29, t.Len()); + _ref = t.vars; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + ((i < 0 || i >= resList[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : resList[0].$array[resList[0].$offset + i] = new operand.ptr(7, e, v.object.typ, $ifaceNil, 0)); + _i++; + } + } else { + resList[0] = new sliceType$29([x[0]]); + } + /* } */ case 12: + $s = 9; continue; + /* } else if (n > 1) { */ case 8: + resList[0] = $makeSlice(sliceType$29, n); + targsList[0] = $makeSlice(sliceType$41, n); + xlistList[0] = $makeSlice(sliceType$42, n); + _ref$1 = elist; + _i$1 = 0; + /* while (true) { */ case 23: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 24; continue; } + x$1 = [x$1]; + i$1 = _i$1; + e$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + x$1[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + ix$1 = typeparams.UnpackIndexExpr(e$1); + if (!(!(ix$1 === ptrType$104.nil))) { _v$2 = false; $s = 28; continue s; } + _r$5 = check.indexExpr(x$1[0], ix$1); /* */ $s = 29; case 29: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _v$2 = _r$5; case 28: + /* */ if (_v$2) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (_v$2) { */ case 25: + _arg$5 = ptrType$29.nil; + _r$6 = x$1[0].Pos(); /* */ $s = 30; case 30: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _arg$6 = _r$6; + _arg$7 = x$1[0]; + _arg$8 = ix$1; + _arg$9 = infer$1; + _r$7 = check.funcInst(_arg$5, _arg$6, _arg$7, _arg$8, _arg$9); /* */ $s = 31; case 31: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _tuple$2 = _r$7; + targs$1 = _tuple$2[0]; + xlist$1 = _tuple$2[1]; + /* */ if (!(targs$1 === sliceType$3.nil)) { $s = 32; continue; } + /* */ $s = 33; continue; + /* if (!(targs$1 === sliceType$3.nil)) { */ case 32: + ((i$1 < 0 || i$1 >= targsList[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : targsList[0].$array[targsList[0].$offset + i$1] = targs$1); + ((i$1 < 0 || i$1 >= xlistList[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : xlistList[0].$array[xlistList[0].$offset + i$1] = xlist$1); + x$1[0].expr = ix$1.Orig; + $s = 34; continue; + /* } else { */ case 33: + $r = check.record(x$1[0]); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 34: + $s = 27; continue; + /* } else { */ case 26: + $r = check.genericExpr(x$1[0], e$1); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 27: + ((i$1 < 0 || i$1 >= resList[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : resList[0].$array[resList[0].$offset + i$1] = x$1[0]); + _i$1++; + $s = 23; continue; + case 24: + /* } */ case 9: + $24r = [resList[0], targsList[0], xlistList[0]]; + $s = 37; case 37: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [resList[0], targsList[0], xlistList[0]]; } if($curGoroutine.asleep) { var $f = {$blk: genericExprList, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _i, _i$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _v, _v$1, _v$2, check, e, e$1, elist, i, i$1, infer$1, ix, ix$1, n, ok, resList, t, targs, targs$1, targsList, v, x, x$1, xlist, xlist$1, xlistList, $s, $deferred};return $f; } } + }; + $ptrType(Checker).prototype.arguments$ = function arguments$1(call, sig, targs, xlist, args, atargs, atxlist) { + var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _i, _i$1, _i$2, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _tuple, _tuple$1, _tuple$2, _v, a, adjusted, arg, arg$1, args, asig, asig$1, at$1, atargs, atparams, atxlist, call, check, clone, context$1, ddd, err, genericArgs, i, i$1, i$2, ix, j, k, last, n, nargs, npars, params, qualifier$1, rsig, sig, sigParams, targs, tmp, tmp$1, tparams, typ$4, vars, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, xlist, $s, $r, $c} = $restore(this, {call, sig, targs, xlist, args, atargs, atxlist}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + rsig = ptrType$29.nil; + check = this; + rsig = sig; + nargs = args.$length; + npars = sig.params.Len(); + ddd = new token.Pos(call.Ellipsis).IsValid(); + sigParams = sig.params; + adjusted = false; + /* */ if (sig.variadic) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (sig.variadic) { */ case 1: + /* */ if (ddd) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (ddd) { */ case 4: + /* */ if ((call.Args.$length === 1) && nargs > 1) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if ((call.Args.$length === 1) && nargs > 1) { */ case 7: + _r = inNode(call, call.Ellipsis); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = check.errorf((x = _r, new x.constructor.elem(x)), 81, "cannot use ... with %d-valued %s", new sliceType$5([new $Int(nargs), (x$1 = call.Args, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0]))])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return rsig; + /* } */ case 8: + $s = 6; continue; + /* } else { */ case 5: + if (nargs >= (npars - 1 >> 0)) { + vars = $makeSlice(sliceType$9, (npars - 1 >> 0)); + $copySlice(vars, sig.params.vars); + last = (x$2 = sig.params.vars, x$3 = npars - 1 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])); + typ$4 = $assertType(last.object.typ, ptrType$27).elem; + while (true) { + if (!(vars.$length < nargs)) { break; } + vars = $append(vars, NewParam(last.object.pos, last.object.pkg, last.object.name, typ$4)); + } + sigParams = NewTuple(vars); + adjusted = true; + npars = nargs; + } else { + npars = npars - (1) >> 0; + } + /* } */ case 6: + $s = 3; continue; + /* } else { */ case 2: + /* */ if (ddd) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (ddd) { */ case 11: + _r$1 = inNode(call, call.Ellipsis); /* */ $s = 13; case 13: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $r = check.errorf((x$4 = _r$1, new x$4.constructor.elem(x$4)), 78, "cannot use ... in call to non-variadic %s", new sliceType$5([call.Fun])); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return rsig; + /* } */ case 12: + /* } */ case 3: + /* */ if (!((nargs === npars))) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (!((nargs === npars))) { */ case 15: + at$1 = call; + qualifier$1 = "not enough"; + if (nargs > npars) { + at$1 = ((npars < 0 || npars >= args.$length) ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + npars]).expr; + qualifier$1 = "too many"; + } else { + at$1 = new atPos(((call.Rparen >> 0))); + } + params = sliceType$9.nil; + if (!(sig.params === ptrType$16.nil)) { + params = sig.params.vars; + } + err = newErrorf(at$1, 126, "%s arguments in call to %s", new sliceType$5([new $String(qualifier$1), call.Fun])); + _arg = nopos; + _r$2 = check.typesSummary(operandTypes(args), false); /* */ $s = 17; case 17: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg$1 = new $String(_r$2); + $r = err.errorf(_arg, "have %s", new sliceType$5([_arg$1])); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _arg$2 = nopos; + _r$3 = check.typesSummary(varTypes(params), sig.variadic); /* */ $s = 19; case 19: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _arg$3 = new $String(_r$3); + $r = err.errorf(_arg$2, "want %s", new sliceType$5([_arg$3])); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.report(err); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return rsig; + /* } */ case 16: + tparams = sliceType$8.nil; + n = sig.TypeParams().Len(); + /* */ if (n > 0) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (n > 0) { */ case 22: + _r$4 = check.allowVersion(check.pkg, call, $clone(go1_18, version)); /* */ $s = 26; case 26: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (!_r$4) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (!_r$4) { */ case 24: + _ref = call.Fun; + /* */ if ($assertType(_ref, ptrType$38, true)[1] || $assertType(_ref, ptrType$39, true)[1]) { $s = 27; continue; } + /* */ $s = 28; continue; + /* if ($assertType(_ref, ptrType$38, true)[1] || $assertType(_ref, ptrType$39, true)[1]) { */ case 27: + ix = typeparams.UnpackIndexExpr(call.Fun); + _r$5 = inNode(call.Fun, ix.IndexListExpr.Lbrack); /* */ $s = 30; case 30: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $r = check.versionErrorf((x$5 = _r$5, new x$5.constructor.elem(x$5)), $clone(go1_18, version), "function instantiation", sliceType$5.nil); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 29; continue; + /* } else { */ case 28: + _r$6 = inNode(call, call.Lparen); /* */ $s = 32; case 32: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $r = check.versionErrorf((x$6 = _r$6, new x$6.constructor.elem(x$6)), $clone(go1_18, version), "implicit function instantiation", sliceType$5.nil); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 29: + /* } */ case 25: + tmp = $ifaceNil; + _r$7 = call.Pos(); /* */ $s = 34; case 34: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$8 = check.renameTParams(_r$7, sig.TypeParams().list(), sigParams); /* */ $s = 35; case 35: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _tuple = _r$8; + tparams = _tuple[0]; + tmp = _tuple[1]; + sigParams = $assertType(tmp, ptrType$16); + while (true) { + if (!(targs.$length < tparams.$length)) { break; } + targs = $append(targs, $ifaceNil); + } + /* } */ case 23: + $r = assert(tparams.$length === targs.$length); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + genericArgs = sliceType$24.nil; + /* */ if (true) { $s = 37; continue; } + /* */ $s = 38; continue; + /* if (true) { */ case 37: + _ref$1 = args; _i = 0; - /* while (true) { */ case 9: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 10; continue; } - m = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _tuple$1 = tset.LookupMethod(m.object.pkg, m.object.name, false); - f = _tuple$1[1]; - if (f === ptrType$2.nil) { - if (!static$1) { + /* while (true) { */ case 39: + /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 40; continue; } + clone = [clone]; + i = _i; + arg = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + _tuple$1 = $assertType(arg.typ, ptrType$29, true); + asig = _tuple$1[0]; + /* */ if (!(asig === ptrType$29.nil) && asig.TypeParams().Len() > 0) { $s = 41; continue; } + /* */ $s = 42; continue; + /* if (!(asig === ptrType$29.nil) && asig.TypeParams().Len() > 0) { */ case 41: + clone[0] = $clone((asig === ptrType$29.nil && $throwNilPointerError(), asig), Signature); + asig = clone[0]; + _r$9 = call.Pos(); /* */ $s = 43; case 43: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$10 = check.renameTParams(_r$9, asig.TypeParams().list(), asig); /* */ $s = 44; case 44: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _tuple$2 = _r$10; + atparams = _tuple$2[0]; + tmp$1 = _tuple$2[1]; + asig = $assertType(tmp$1, ptrType$29); + asig.tparams = new TypeParamList.ptr(atparams); + arg.typ = asig; + tparams = $appendSlice(tparams, atparams); + if (i < atargs.$length) { + targs = $appendSlice(targs, ((i < 0 || i >= atargs.$length) ? ($throwRuntimeError("index out of range"), undefined) : atargs.$array[atargs.$offset + i])); + } + while (true) { + if (!(targs.$length < tparams.$length)) { break; } + targs = $append(targs, $ifaceNil); + } + genericArgs = $append(genericArgs, i); + /* } */ case 42: + _i++; + $s = 39; continue; + case 40: + /* } */ case 38: + $r = assert(tparams.$length === targs.$length); /* */ $s = 45; case 45: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (!(genericArgs.$length > 0)) { _v = false; $s = 46; continue s; } + _r$11 = check.verifyVersionf((x$7 = (0 >= genericArgs.$length ? ($throwRuntimeError("index out of range"), undefined) : genericArgs.$array[genericArgs.$offset + 0]), ((x$7 < 0 || x$7 >= args.$length) ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + x$7])), $clone(go1_21, version), "implicitly instantiated function as argument", sliceType$5.nil); /* */ $s = 47; case 47: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _v = _r$11; case 46: + $unused(_v); + /* */ if (tparams.$length > 0) { $s = 48; continue; } + /* */ $s = 49; continue; + /* if (tparams.$length > 0) { */ case 48: + _r$12 = check.infer(call, tparams, targs, sigParams, args); /* */ $s = 50; case 50: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + targs = _r$12; + if (targs === sliceType$3.nil) { + $s = -1; return rsig; + } + /* */ if (n > 0) { $s = 51; continue; } + /* */ $s = 52; continue; + /* if (n > 0) { */ case 51: + _r$13 = call.Pos(); /* */ $s = 53; case 53: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _r$14 = check.instantiateSignature(_r$13, call.Fun, sig, $subslice(targs, 0, n), xlist); /* */ $s = 54; case 54: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + rsig = _r$14; + /* */ if (adjusted) { $s = 55; continue; } + /* */ $s = 56; continue; + /* if (adjusted) { */ case 55: + _r$15 = call.Pos(); /* */ $s = 58; case 58: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + _arg$4 = _r$15; + _arg$5 = sigParams; + _r$16 = makeSubstMap($subslice(tparams, 0, n), $subslice(targs, 0, n)); /* */ $s = 59; case 59: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + _arg$6 = _r$16; + _arg$7 = ptrType$10.nil; + _arg$8 = check.context(); + _r$17 = check.subst(_arg$4, _arg$5, _arg$6, _arg$7, _arg$8); /* */ $s = 60; case 60: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + sigParams = $assertType(_r$17, ptrType$16); + $s = 57; continue; + /* } else { */ case 56: + sigParams = rsig.params; + /* } */ case 57: + /* } */ case 52: + j = n; + _ref$2 = genericArgs; + _i$1 = 0; + /* while (true) { */ case 61: + /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 62; continue; } + i$1 = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); + arg$1 = ((i$1 < 0 || i$1 >= args.$length) ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + i$1]); + asig$1 = $assertType(arg$1.typ, ptrType$29); + k = j + asig$1.TypeParams().Len() >> 0; + _r$18 = call.Pos(); /* */ $s = 63; case 63: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + _r$19 = check.instantiateSignature(_r$18, arg$1.expr, asig$1, $subslice(targs, j, k), sliceType$10.nil); /* */ $s = 64; case 64: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + arg$1.typ = _r$19; + $r = check.record(arg$1); /* */ $s = 65; case 65: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + j = k; + _i$1++; + $s = 61; continue; + case 62: + /* } */ case 49: + /* */ if (args.$length > 0) { $s = 66; continue; } + /* */ $s = 67; continue; + /* if (args.$length > 0) { */ case 66: + _r$20 = check.sprintf("argument to %s", new sliceType$5([call.Fun])); /* */ $s = 68; case 68: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + context$1 = _r$20; + _ref$3 = args; + _i$2 = 0; + /* while (true) { */ case 69: + /* if (!(_i$2 < _ref$3.$length)) { break; } */ if(!(_i$2 < _ref$3.$length)) { $s = 70; continue; } + i$2 = _i$2; + a = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]); + $r = check.assignment(a, (x$8 = sigParams.vars, ((i$2 < 0 || i$2 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + i$2])).object.typ, context$1); /* */ $s = 71; case 71: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$2++; + $s = 69; continue; + case 70: + /* } */ case 67: + $s = -1; return rsig; + /* */ } return; } var $f = {$blk: arguments$1, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _i, _i$1, _i$2, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _tuple, _tuple$1, _tuple$2, _v, a, adjusted, arg, arg$1, args, asig, asig$1, at$1, atargs, atparams, atxlist, call, check, clone, context$1, ddd, err, genericArgs, i, i$1, i$2, ix, j, k, last, n, nargs, npars, params, qualifier$1, rsig, sig, sigParams, targs, tmp, tmp$1, tparams, typ$4, vars, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, xlist, $s};return $f; + }; + $ptrType(Checker).prototype.selector = function selector(x, e, def$2, wantType) { + var {_1, _arg, _arg$1, _arg$2, _arg$3, _i, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _v, changeCase, check, def$2, disabled, e, exp, exp$1, exp$2, exp$3, exp$4, exp$5, exp$6, funcMode, ident$1, index$1, indirect, m, m$1, m$2, mset, name, obj, obj$1, obj$2, obj$3, obj$4, ok, ok$1, params, pkg, pname, prefix, r, sel, sig, sig$1, typ$4, wantType, why, x, x$1, x$2, $s, $r, $c} = $restore(this, {x, e, def$2, wantType}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + sig = [sig]; + check = this; + obj = $ifaceNil; + index$1 = sliceType$24.nil; + indirect = false; + sel = e.Sel.Name; + _tuple = $assertType(e.X, ptrType$31, true); + ident$1 = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (ok) { */ case 1: + _r = check.environment.lookup(ident$1.Name); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + obj$1 = _r; + _tuple$1 = $assertType(obj$1, ptrType$32, true); + pname = _tuple$1[0]; + /* */ if (!(pname === ptrType$32.nil)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!(pname === ptrType$32.nil)) { */ case 4: + $r = assert(pname.object.pkg === check.pkg); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.recordUse(ident$1, pname); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + pname.used = true; + pkg = pname.imported; + exp = $ifaceNil; + funcMode = 7; + /* */ if (pkg.cgo) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (pkg.cgo) { */ case 8: + if (sel === "malloc") { + sel = "_CMalloc"; + } else { + funcMode = 10; + } + _ref = cgoPrefixes; + _i = 0; + /* while (true) { */ case 11: + /* if (!(_i < 8)) { break; } */ if(!(_i < 8)) { $s = 12; continue; } + prefix = ((_i < 0 || _i >= _ref.length) ? ($throwRuntimeError("index out of range"), undefined) : _ref[_i]); + _r$1 = check.environment.scope.LookupParent(prefix + sel, check.environment.pos); /* */ $s = 13; case 13: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$2 = _r$1; + exp = _tuple$2[1]; + if (!($interfaceIsEqual(exp, $ifaceNil))) { + /* break; */ $s = 12; continue; + } _i++; - /* continue; */ $s = 9; continue; + $s = 11; continue; + case 12: + /* */ if ($interfaceIsEqual(exp, $ifaceNil)) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if ($interfaceIsEqual(exp, $ifaceNil)) { */ case 14: + $r = check.errorf(e.Sel, 73, "undefined: %s", new sliceType$5([(e)])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 17; continue; + /* } */ case 15: + $r = check.objDecl(exp, ptrType$10.nil); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 10; continue; + /* } else { */ case 9: + _r$2 = pkg.scope.Lookup(sel); /* */ $s = 19; case 19: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + exp = _r$2; + /* */ if ($interfaceIsEqual(exp, $ifaceNil)) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if ($interfaceIsEqual(exp, $ifaceNil)) { */ case 20: + /* */ if (!pkg.fake) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (!pkg.fake) { */ case 22: + $r = check.errorf(e.Sel, 73, "undefined: %s", new sliceType$5([(e)])); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 23: + /* goto Error */ $s = 17; continue; + /* } */ case 21: + _r$3 = exp.Exported(); /* */ $s = 27; case 27: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!_r$3) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (!_r$3) { */ case 25: + $r = check.errorf(e.Sel, 74, "%s not exported by package %s", new sliceType$5([new $String(sel), new $String(pkg.name)])); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 26: + /* } */ case 10: + $r = check.recordUse(e.Sel, exp); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _ref$1 = exp; + /* */ if ($assertType(_ref$1, ptrType$33, true)[1]) { $s = 30; continue; } + /* */ if ($assertType(_ref$1, ptrType$18, true)[1]) { $s = 31; continue; } + /* */ if ($assertType(_ref$1, ptrType$17, true)[1]) { $s = 32; continue; } + /* */ if ($assertType(_ref$1, ptrType$2, true)[1]) { $s = 33; continue; } + /* */ if ($assertType(_ref$1, ptrType$19, true)[1]) { $s = 34; continue; } + /* */ $s = 35; continue; + /* if ($assertType(_ref$1, ptrType$33, true)[1]) { */ case 30: + exp$1 = _ref$1.$val; + $r = assert(!($interfaceIsEqual(exp$1.Val(), $ifaceNil))); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 4; + x.typ = exp$1.object.typ; + x.val = exp$1.val; + $s = 36; continue; + /* } else if ($assertType(_ref$1, ptrType$18, true)[1]) { */ case 31: + exp$2 = _ref$1.$val; + x.mode = 3; + x.typ = exp$2.object.typ; + $s = 36; continue; + /* } else if ($assertType(_ref$1, ptrType$17, true)[1]) { */ case 32: + exp$3 = _ref$1.$val; + x.mode = 5; + x.typ = exp$3.object.typ; + if (pkg.cgo && strings.HasPrefix(exp$3.object.name, "_Cvar_")) { + x.typ = $assertType(x.typ, ptrType$28).base; + } + $s = 36; continue; + /* } else if ($assertType(_ref$1, ptrType$2, true)[1]) { */ case 33: + exp$4 = _ref$1.$val; + x.mode = funcMode; + x.typ = exp$4.object.typ; + if (pkg.cgo && strings.HasPrefix(exp$4.object.name, "_Cmacro_")) { + x.mode = 7; + x.typ = (x$1 = $assertType(x.typ, ptrType$29).results.vars, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])).object.typ; + } + $s = 36; continue; + /* } else if ($assertType(_ref$1, ptrType$19, true)[1]) { */ case 34: + exp$5 = _ref$1.$val; + x.mode = 2; + x.typ = exp$5.object.typ; + x.id = exp$5.id; + $s = 36; continue; + /* } else { */ case 35: + exp$6 = _ref$1; + $r = check.dump("%v: unexpected object %v", new sliceType$5([new token.Pos(e.Sel.Pos()), exp$6])); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + unreachable(); + /* } */ case 36: + x.expr = e; + $s = -1; return; + /* } */ case 5: + /* } */ case 2: + $r = check.exprOrType(x, e.X, false); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _1 = x.mode; + /* */ if (_1 === (3)) { $s = 41; continue; } + /* */ if (_1 === (2)) { $s = 42; continue; } + /* */ if (_1 === (0)) { $s = 43; continue; } + /* */ $s = 44; continue; + /* if (_1 === (3)) { */ case 41: + /* */ if (!(def$2 === ptrType$10.nil) && $interfaceIsEqual(x.typ, def$2)) { $s = 45; continue; } + /* */ $s = 46; continue; + /* if (!(def$2 === ptrType$10.nil) && $interfaceIsEqual(x.typ, def$2)) { */ case 45: + $r = check.cycleError(new sliceType$7([def$2.obj])); /* */ $s = 47; case 47: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 17; continue; + /* } */ case 46: + $s = 44; continue; + /* } else if (_1 === (2)) { */ case 42: + $r = check.errorf(e.Sel, 82, "cannot select on %s", new sliceType$5([x])); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 17; continue; + $s = 44; continue; + /* } else if (_1 === (0)) { */ case 43: + /* goto Error */ $s = 17; continue; + /* } */ case 44: + case 40: + /* */ if (wantType) { $s = 49; continue; } + /* */ $s = 50; continue; + /* if (wantType) { */ case 49: + $r = check.errorf(e.Sel, 25, "%s is not a type", new sliceType$5([(e)])); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 17; continue; + /* } */ case 50: + _r$4 = LookupFieldOrMethod(x.typ, x.mode === 5, check.pkg, sel); /* */ $s = 52; case 52: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$3 = _r$4; + obj = _tuple$3[0]; + index$1 = _tuple$3[1]; + indirect = _tuple$3[2]; + /* */ if ($interfaceIsEqual(obj, $ifaceNil)) { $s = 53; continue; } + /* */ $s = 54; continue; + /* if ($interfaceIsEqual(obj, $ifaceNil)) { */ case 53: + _r$5 = under(x.typ); /* */ $s = 57; case 57: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if ($interfaceIsEqual(_r$5, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { $s = 55; continue; } + /* */ $s = 56; continue; + /* if ($interfaceIsEqual(_r$5, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { */ case 55: + /* goto Error */ $s = 17; continue; + /* } */ case 56: + /* */ if (!(index$1 === sliceType$24.nil)) { $s = 58; continue; } + /* */ $s = 59; continue; + /* if (!(index$1 === sliceType$24.nil)) { */ case 58: + $r = check.errorf(e.Sel, 72, "ambiguous selector %s.%s", new sliceType$5([x.expr, new $String(sel)])); /* */ $s = 60; case 60: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 17; continue; + /* } */ case 59: + /* */ if (indirect) { $s = 61; continue; } + /* */ $s = 62; continue; + /* if (indirect) { */ case 61: + /* */ if (x.mode === 3) { $s = 63; continue; } + /* */ $s = 64; continue; + /* if (x.mode === 3) { */ case 63: + $r = check.errorf(e.Sel, 125, "invalid method expression %s.%s (needs pointer receiver (*%s).%s)", new sliceType$5([x.typ, new $String(sel), x.typ, new $String(sel)])); /* */ $s = 66; case 66: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 65; continue; + /* } else { */ case 64: + $r = check.errorf(e.Sel, 125, "cannot call pointer method %s on %s", new sliceType$5([new $String(sel), x.typ])); /* */ $s = 67; case 67: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 65: + /* goto Error */ $s = 17; continue; + /* } */ case 62: + why = ""; + _r$6 = isInterfacePtr(x.typ); /* */ $s = 71; case 71: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + /* */ if (_r$6) { $s = 68; continue; } + /* */ $s = 69; continue; + /* if (_r$6) { */ case 68: + _r$7 = check.interfacePtrError(x.typ); /* */ $s = 72; case 72: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + why = _r$7; + $s = 70; continue; + /* } else { */ case 69: + _r$8 = check.sprintf("type %s has no field or method %s", new sliceType$5([x.typ, new $String(sel)])); /* */ $s = 73; case 73: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + why = _r$8; + /* */ if (sel.length > 0) { $s = 74; continue; } + /* */ $s = 75; continue; + /* if (sel.length > 0) { */ case 74: + changeCase = ""; + r = ((sel.charCodeAt(0) >> 0)); + if (unicode.IsUpper(r)) { + changeCase = ($encodeRune(unicode.ToLower(r))) + $substring(sel, 1); + } else { + changeCase = ($encodeRune(unicode.ToUpper(r))) + $substring(sel, 1); + } + _r$9 = LookupFieldOrMethod(x.typ, x.mode === 5, check.pkg, changeCase); /* */ $s = 76; case 76: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _tuple$4 = _r$9; + obj = _tuple$4[0]; + if (!($interfaceIsEqual(obj, $ifaceNil))) { + why = why + (", but does have " + changeCase); } - _tmp = m; - _tmp$1 = ptrType$2.nil; - method = _tmp; - alt = _tmp$1; - $s = -1; return [method, alt]; + /* } */ case 75: + /* } */ case 70: + $r = check.errorf(e.Sel, 76, "%s.%s undefined (%s)", new sliceType$5([x.expr, new $String(sel), new $String(why)])); /* */ $s = 77; case 77: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 17; continue; + /* } */ case 54: + _tuple$5 = $assertType(obj, ptrType$2, true); + m = _tuple$5[0]; + /* */ if (!(m === ptrType$2.nil)) { $s = 78; continue; } + /* */ $s = 79; continue; + /* if (!(m === ptrType$2.nil)) { */ case 78: + $r = check.objDecl(m, ptrType$10.nil); /* */ $s = 80; case 80: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 79: + /* */ if (x.mode === 3) { $s = 81; continue; } + /* */ $s = 82; continue; + /* if (x.mode === 3) { */ case 81: + _tuple$6 = $assertType(obj, ptrType$2, true); + m$1 = _tuple$6[0]; + /* */ if (m$1 === ptrType$2.nil) { $s = 84; continue; } + /* */ $s = 85; continue; + /* if (m$1 === ptrType$2.nil) { */ case 84: + $r = check.errorf(e.Sel, 76, "%s.%s undefined (type %s has no method %s)", new sliceType$5([x.expr, new $String(sel), x.typ, new $String(sel)])); /* */ $s = 86; case 86: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 17; continue; + /* } */ case 85: + $r = check.recordSelection(e, 2, x.typ, m$1, index$1, indirect); /* */ $s = 87; case 87: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + sig$1 = $assertType(m$1.object.typ, ptrType$29); + /* */ if (sig$1.recv === ptrType$17.nil) { $s = 88; continue; } + /* */ $s = 89; continue; + /* if (sig$1.recv === ptrType$17.nil) { */ case 88: + $r = check.error(e, 11, "illegal cycle in method declaration"); /* */ $s = 90; case 90: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* goto Error */ $s = 17; continue; + /* } */ case 89: + params = sliceType$9.nil; + if (!(sig$1.params === ptrType$16.nil)) { + params = sig$1.params.vars; + } + name = ""; + if (params.$length > 0 && !((0 >= params.$length ? ($throwRuntimeError("index out of range"), undefined) : params.$array[params.$offset + 0]).object.name === "")) { + name = sig$1.recv.object.name; + if (name === "") { + name = "_"; + } + } + params = $appendSlice(new sliceType$9([NewVar(sig$1.recv.object.pos, sig$1.recv.object.pkg, name, x.typ)]), params); + x.mode = 7; + x.typ = new Signature.ptr(ptrType$49.nil, sig$1.tparams, ptrType.nil, ptrType$17.nil, NewTuple(params), sig$1.results, sig$1.variadic); + check.addDeclDep(m$1); + $s = 83; continue; + /* } else { */ case 82: + _ref$2 = obj; + /* */ if ($assertType(_ref$2, ptrType$17, true)[1]) { $s = 91; continue; } + /* */ if ($assertType(_ref$2, ptrType$2, true)[1]) { $s = 92; continue; } + /* */ $s = 93; continue; + /* if ($assertType(_ref$2, ptrType$17, true)[1]) { */ case 91: + obj$2 = _ref$2.$val; + $r = check.recordSelection(e, 0, x.typ, obj$2, index$1, indirect); /* */ $s = 95; case 95: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if ((x.mode === 5) || indirect) { + x.mode = 5; + } else { + x.mode = 7; } - _r$5 = Identical(f.object.typ, m.object.typ); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* */ if (!_r$5) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (!_r$5) { */ case 11: - _tmp$2 = m; - _tmp$3 = f; - method = _tmp$2; - alt = _tmp$3; - $s = -1; return [method, alt]; - /* } */ case 12: - _i++; - $s = 9; continue; - case 10: - $s = -1; return [method, alt]; - /* } */ case 6: - _r$6 = T.typeSet(); /* */ $s = 14; case 14: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _ref$1 = _r$6.methods; - _i$1 = 0; - /* while (true) { */ case 15: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 16; continue; } - m$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - _r$7 = lookupFieldOrMethod(V, false, m$1.object.pkg, m$1.object.name, false); /* */ $s = 17; case 17: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _tuple$2 = _r$7; - obj = _tuple$2[0]; - found = !($interfaceIsEqual(obj, $ifaceNil)); - /* */ if (!found) { $s = 18; continue; } - /* */ $s = 19; continue; - /* if (!found) { */ case 18: - _r$8 = lookupFieldOrMethod(NewPointer(V), false, m$1.object.pkg, m$1.object.name, false); /* */ $s = 20; case 20: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _tuple$3 = _r$8; - obj = _tuple$3[0]; - /* */ if ($interfaceIsEqual(obj, $ifaceNil)) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if ($interfaceIsEqual(obj, $ifaceNil)) { */ case 21: - _r$9 = lookupFieldOrMethod(V, false, m$1.object.pkg, m$1.object.name, true); /* */ $s = 23; case 23: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _tuple$4 = _r$9; - obj = _tuple$4[0]; - /* } */ case 22: - /* } */ case 19: - _tuple$5 = $assertType(obj, ptrType$2, true); - f$1 = _tuple$5[0]; - if (f$1 === ptrType$2.nil) { - _tmp$4 = m$1; - _tmp$5 = ptrType$2.nil; - method = _tmp$4; - alt = _tmp$5; - $s = -1; return [method, alt]; - } - /* */ if (!(check === ptrType$5.nil)) { $s = 24; continue; } - /* */ $s = 25; continue; - /* if (!(check === ptrType$5.nil)) { */ case 24: - $r = check.objDecl(f$1, ptrType$9.nil); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 25: - if (!found) { _v = true; $s = 29; continue s; } - _r$10 = Identical(f$1.object.typ, m$1.object.typ); /* */ $s = 30; case 30: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _v = !_r$10; case 29: - /* */ if (_v) { $s = 27; continue; } - /* */ $s = 28; continue; - /* if (_v) { */ case 27: - _tmp$6 = m$1; - _tmp$7 = f$1; - method = _tmp$6; - alt = _tmp$7; - $s = -1; return [method, alt]; - /* } */ case 28: - _i$1++; - $s = 15; continue; - case 16: - $s = -1; return [method, alt]; - /* */ } return; } var $f = {$blk: missingMethod, $c: true, $r, T, V, _i, _i$1, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _v, alt, check, f, f$1, found, m, m$1, method, obj, static$1, tset, u, $s};return $f; + x.typ = obj$2.object.typ; + $s = 94; continue; + /* } else if ($assertType(_ref$2, ptrType$2, true)[1]) { */ case 92: + obj$3 = _ref$2.$val; + $r = check.recordSelection(e, 1, x.typ, obj$3, index$1, indirect); /* */ $s = 96; case 96: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + disabled = true; + /* */ if (!disabled && false) { $s = 97; continue; } + /* */ $s = 98; continue; + /* if (!disabled && false) { */ case 97: + typ$4 = x.typ; + /* */ if (x.mode === 5) { $s = 99; continue; } + /* */ $s = 100; continue; + /* if (x.mode === 5) { */ case 99: + _tuple$7 = $assertType(typ$4, ptrType$28, true); + ok$1 = _tuple$7[1]; + if (!(!ok$1)) { _v = false; $s = 103; continue s; } + _r$10 = IsInterface(typ$4); /* */ $s = 104; case 104: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _v = !_r$10; case 103: + /* */ if (_v) { $s = 101; continue; } + /* */ $s = 102; continue; + /* if (_v) { */ case 101: + typ$4 = new Pointer.ptr(typ$4); + /* } */ case 102: + /* } */ case 100: + _r$11 = NewMethodSet(typ$4); /* */ $s = 105; case 105: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + mset = _r$11; + _r$12 = mset.Lookup(check.pkg, sel); /* */ $s = 106; case 106: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + m$2 = _r$12; + /* */ if (m$2 === ptrType$3.nil || !($interfaceIsEqual(m$2.obj, obj$3))) { $s = 107; continue; } + /* */ $s = 108; continue; + /* if (m$2 === ptrType$3.nil || !($interfaceIsEqual(m$2.obj, obj$3))) { */ case 107: + _r$13 = e.Pos(); /* */ $s = 109; case 109: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _arg = new token.Pos(_r$13); + _arg$1 = typ$4; + _arg$2 = new $String(obj$3.object.name); + _arg$3 = m$2; + $r = check.dump("%v: (%s).%v -> %s", new sliceType$5([_arg, _arg$1, _arg$2, _arg$3])); /* */ $s = 110; case 110: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.dump("%s\n", new sliceType$5([mset])); /* */ $s = 111; case 111: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $panic(new $String("method sets and lookup don't agree")); + /* } */ case 108: + /* } */ case 98: + x.mode = 7; + sig[0] = $clone((x$2 = $assertType(obj$3.object.typ, ptrType$29), (x$2 === ptrType$29.nil && $throwNilPointerError(), x$2)), Signature); + sig[0].recv = ptrType$17.nil; + x.typ = sig[0]; + check.addDeclDep(obj$3); + $s = 94; continue; + /* } else { */ case 93: + obj$4 = _ref$2; + unreachable(); + /* } */ case 94: + /* } */ case 83: + x.expr = e; + $s = -1; return; + /* Error: */ case 17: + x.mode = 0; + x.expr = e; + $s = -1; return; + /* */ } return; } var $f = {$blk: selector, $c: true, $r, _1, _arg, _arg$1, _arg$2, _arg$3, _i, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _v, changeCase, check, def$2, disabled, e, exp, exp$1, exp$2, exp$3, exp$4, exp$5, exp$6, funcMode, ident$1, index$1, indirect, m, m$1, m$2, mset, name, obj, obj$1, obj$2, obj$3, obj$4, ok, ok$1, params, pkg, pname, prefix, r, sel, sig, sig$1, typ$4, wantType, why, x, x$1, x$2, $s};return $f; }; - $ptrType(Checker).prototype.missingMethodCause = function missingMethodCause(V, T, m, alt) { - var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, T, V, _arg, _arg$1, _arg$2, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, alt, altS, check, fld, m, mS, mname, obj, $s, $r, $c} = $restore(this, {V, T, m, alt}); + $ptrType(Checker).prototype.use = function use(args) { + var {$24r, _r, args, check, $s, $r, $c} = $restore(this, {args}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: check = this; - mname = "method " + m.object.Name(); - /* */ if (!(alt === ptrType$2.nil)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(alt === ptrType$2.nil)) { */ case 1: - /* */ if (!(m.object.Name() === alt.object.Name())) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!(m.object.Name() === alt.object.Name())) { */ case 3: - _arg = new $String(mname); - _r$1 = check.funcString(alt, false); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _arg$1 = new $String(_r$1); - _r$2 = check.funcString(m, false); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _arg$2 = new $String(_r$2); - _r$3 = check.sprintf("(missing %s)\n\t\thave %s\n\t\twant %s", new sliceType$6([_arg, _arg$1, _arg$2])); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r = _r$3; - $s = 8; case 8: return $24r; - /* } */ case 4: - _r$4 = Identical(m.object.typ, alt.object.typ); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if (_r$4) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (_r$4) { */ case 9: - _r$5 = check.sprintf("(%s has pointer receiver)", new sliceType$6([new $String(mname)])); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - $24r$1 = _r$5; - $s = 13; case 13: return $24r$1; - /* } */ case 10: - _r$6 = check.funcString(alt, false); /* */ $s = 14; case 14: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _tmp = _r$6; - _r$7 = check.funcString(m, false); /* */ $s = 15; case 15: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _tmp$1 = _r$7; - altS = _tmp; - mS = _tmp$1; - /* */ if (altS === mS) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (altS === mS) { */ case 16: - _r$8 = check.funcString(alt, true); /* */ $s = 18; case 18: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _tmp$2 = _r$8; - _r$9 = check.funcString(m, true); /* */ $s = 19; case 19: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _tmp$3 = _r$9; - altS = _tmp$2; - mS = _tmp$3; - /* } */ case 17: - _r$10 = check.sprintf("(wrong type for %s)\n\t\thave %s\n\t\twant %s", new sliceType$6([new $String(mname), new $String(altS), new $String(mS)])); /* */ $s = 20; case 20: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - $24r$2 = _r$10; - $s = 21; case 21: return $24r$2; - /* } */ case 2: - _r$11 = isInterfacePtr(V); /* */ $s = 24; case 24: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - /* */ if (_r$11) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if (_r$11) { */ case 22: - _r$12 = check.interfacePtrError(V); /* */ $s = 25; case 25: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - $24r$3 = "(" + _r$12 + ")"; - $s = 26; case 26: return $24r$3; - /* } */ case 23: - _r$13 = isInterfacePtr(T); /* */ $s = 29; case 29: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - /* */ if (_r$13) { $s = 27; continue; } - /* */ $s = 28; continue; - /* if (_r$13) { */ case 27: - _r$14 = check.interfacePtrError(T); /* */ $s = 30; case 30: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - $24r$4 = "(" + _r$14 + ")"; - $s = 31; case 31: return $24r$4; - /* } */ case 28: - _r$15 = lookupFieldOrMethod(V, true, m.object.pkg, m.object.name, false); /* */ $s = 32; case 32: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - _tuple = _r$15; - obj = _tuple[0]; - _tuple$1 = $assertType(obj, ptrType$16, true); - fld = _tuple$1[0]; - /* */ if (!(fld === ptrType$16.nil)) { $s = 33; continue; } - /* */ $s = 34; continue; - /* if (!(fld === ptrType$16.nil)) { */ case 33: - _r$16 = check.sprintf("(%s.%s is a field, not a method)", new sliceType$6([V, new $String(fld.object.Name())])); /* */ $s = 35; case 35: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - $24r$5 = _r$16; - $s = 36; case 36: return $24r$5; - /* } */ case 34: - _r$17 = check.sprintf("(missing %s)", new sliceType$6([new $String(mname)])); /* */ $s = 37; case 37: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - $24r$6 = _r$17; - $s = 38; case 38: return $24r$6; - /* */ } return; } var $f = {$blk: missingMethodCause, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, T, V, _arg, _arg$1, _arg$2, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, alt, altS, check, fld, m, mS, mname, obj, $s};return $f; - }; - isInterfacePtr = function isInterfacePtr$1(T) { - var {$24r, T, _r$1, _r$2, _tuple, _v, p, $s, $r, $c} = $restore(this, {T}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = under(T); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = $assertType(_r$1, ptrType$26, true); - p = _tuple[0]; - if (!(!(p === ptrType$26.nil))) { _v = false; $s = 2; continue s; } - _r$2 = IsInterface(p.base); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _v = _r$2; case 2: - $24r = _v; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: isInterfacePtr$1, $c: true, $r, $24r, T, _r$1, _r$2, _tuple, _v, p, $s};return $f; + _r = check.useN(args, false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: use, $c: true, $r, $24r, _r, args, check, $s};return $f; }; - $ptrType(Checker).prototype.interfacePtrError = function interfacePtrError(T) { - var {$24r, $24r$1, T, _r$1, _r$2, _r$3, _r$4, _tuple, check, p, $s, $r, $c} = $restore(this, {T}); + $ptrType(Checker).prototype.useLHS = function useLHS(args) { + var {$24r, _r, args, check, $s, $r, $c} = $restore(this, {args}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: check = this; - _r$1 = isInterfacePtr(T); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $r = assert(_r$1); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$2 = under(T); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple = $assertType(_r$2, ptrType$26, true); - p = _tuple[0]; - /* */ if (isTypeParam(p.base)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (isTypeParam(p.base)) { */ case 4: - _r$3 = check.sprintf("type %s is pointer to type parameter, not type parameter", new sliceType$6([T])); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r = _r$3; - $s = 7; case 7: return $24r; - /* } */ case 5: - _r$4 = check.sprintf("type %s is pointer to interface, not interface", new sliceType$6([T])); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $24r$1 = _r$4; - $s = 9; case 9: return $24r$1; - /* */ } return; } var $f = {$blk: interfacePtrError, $c: true, $r, $24r, $24r$1, T, _r$1, _r$2, _r$3, _r$4, _tuple, check, p, $s};return $f; + _r = check.useN(args, true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: useLHS, $c: true, $r, $24r, _r, args, check, $s};return $f; }; - $ptrType(Checker).prototype.funcString = function funcString(f, pkgInfo) { - var {buf, check, f, pkgInfo, qf, w, $s, $r, $c} = $restore(this, {f, pkgInfo}); + $ptrType(Checker).prototype.useN = function useN(args, lhs) { + var {_i, _r, _ref, args, check, e, lhs, ok, $s, $r, $c} = $restore(this, {args, lhs}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: check = this; - buf = bytes.NewBufferString(f.object.name); - qf = $throwNilPointerError; - if (!(check === ptrType$5.nil) && !pkgInfo) { - qf = $methodVal(check, "qualifier"); - } - w = newTypeWriter(buf, qf); - w.pkgInfo = pkgInfo; - w.paramNames = false; - $r = w.signature($assertType(f.object.typ, ptrType$27)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return buf.String(); - /* */ } return; } var $f = {$blk: funcString, $c: true, $r, buf, check, f, pkgInfo, qf, w, $s};return $f; + ok = true; + _ref = args; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + e = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r = check.use1(e, lhs); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!_r) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!_r) { */ case 3: + ok = false; + /* } */ case 4: + _i++; + $s = 1; continue; + case 2: + $s = -1; return ok; + /* */ } return; } var $f = {$blk: useN, $c: true, $r, _i, _r, _ref, args, check, e, lhs, ok, $s};return $f; }; - $ptrType(Checker).prototype.assertableTo = function assertableTo(V, T) { - var {$24r, T, V, _r$1, _r$2, _tuple, check, method, wrongType, $s, $r, $c} = $restore(this, {V, T}); + $ptrType(Checker).prototype.use1 = function use1(e, lhs) { + var {_r, _r$1, _ref, _tuple, _tuple$1, check, e, lhs, n, n$1, n$2, obj, v, v_used, w, x, $s, $r, $c} = $restore(this, {e, lhs}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - method = ptrType$2.nil; - wrongType = ptrType$2.nil; + x = [x]; check = this; - _r$1 = IsInterface(T); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (_r$1) { */ case 1: - $s = -1; return [method, wrongType]; - /* } */ case 2: - _r$2 = check.missingMethod(T, V, false); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple = _r$2; - method = _tuple[0]; - wrongType = _tuple[1]; - $24r = [method, wrongType]; - $s = 5; case 5: return $24r; - /* */ } return; } var $f = {$blk: assertableTo, $c: true, $r, $24r, T, V, _r$1, _r$2, _tuple, check, method, wrongType, $s};return $f; - }; - deref = function deref$1(typ$3) { - var _tuple, p, typ$3; - _tuple = $assertType(typ$3, ptrType$26, true); - p = _tuple[0]; - if (!(p === ptrType$26.nil)) { - if ($interfaceIsEqual(p.base, $ifaceNil)) { - if (false) { - $panic(new $String("pointer with nil base type (possibly due to an invalid cyclic declaration)")); - } - return [(0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]), true]; - } - return [p.base, true]; - } - return [typ$3, false]; - }; - derefStructPtr = function derefStructPtr$1(typ$3) { - var {_r$1, _r$2, _tuple, _tuple$1, ok, p, typ$3, $s, $r, $c} = $restore(this, {typ$3}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = under(typ$3); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = $assertType(_r$1, ptrType$26, true); - p = _tuple[0]; - /* */ if (!(p === ptrType$26.nil)) { $s = 2; continue; } + x[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + x[0].mode = 7; + _ref = unparen(e); + /* */ if (_ref === $ifaceNil) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$31, true)[1]) { $s = 2; continue; } /* */ $s = 3; continue; - /* if (!(p === ptrType$26.nil)) { */ case 2: - _r$2 = under(p.base); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple$1 = $assertType(_r$2, ptrType$11, true); - ok = _tuple$1[1]; - if (ok) { - $s = -1; return p.base; - } - /* } */ case 3: - $s = -1; return typ$3; - /* */ } return; } var $f = {$blk: derefStructPtr$1, $c: true, $r, _r$1, _r$2, _tuple, _tuple$1, ok, p, typ$3, $s};return $f; - }; - concat = function concat$1(list$2, i) { - var i, list$2, t; - t = sliceType$13.nil; - t = $appendSlice(t, list$2); - return $append(t, i); - }; - fieldIndex = function fieldIndex$1(fields, pkg, name) { - var _i, _ref, f, fields, i, name, pkg; - if (!(name === "_")) { - _ref = fields; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (f.object.sameId(pkg, name)) { - return i; - } - _i++; + /* switch (0) { default: if (_ref === $ifaceNil) { */ case 1: + n = _ref; + $s = 4; continue; + /* } else if ($assertType(_ref, ptrType$31, true)[1]) { */ case 2: + n$1 = _ref.$val; + if (n$1.Name === "_") { + /* break; */ $s = 4; continue; } - } - return -1; - }; - lookupMethod = function lookupMethod$2(methods, pkg, name, foldCase) { - var _i, _ref, foldCase, i, m, methods, name, pkg; - if (!(name === "_")) { - _ref = methods; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - m = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if ((m.object.name === name || foldCase && strings.EqualFold(m.object.name, name)) && m.object.sameId(pkg, m.object.name)) { - return [i, m]; + v = ptrType$17.nil; + v_used = false; + /* */ if (lhs) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (lhs) { */ case 5: + _r = check.environment.scope.LookupParent(n$1.Name, nopos); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + obj = _tuple[1]; + if (!($interfaceIsEqual(obj, $ifaceNil))) { + _tuple$1 = $assertType(obj, ptrType$17, true); + w = _tuple$1[0]; + if (!(w === ptrType$17.nil) && w.object.pkg === check.pkg) { + v = w; + v_used = v.used; + } } - _i++; - } - } - return [-1, ptrType$2.nil]; - }; - $ptrType(Checker).prototype.labels = function labels(body) { - var {_arg, _arg$1, _arg$2, _entry, _i, _i$1, _key, _keys, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _size, all, alt, body, check, code, fwdJumps, jmp, lbl, msg, name, name$1, obj, $s, $r, $c} = $restore(this, {body}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _arg = ptrType.nil; - _arg$1 = body.Pos(); - _r$1 = body.End(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _arg$2 = _r$1; - _r$2 = NewScope(_arg, _arg$1, _arg$2, "label"); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - all = _r$2; - _r$3 = check.blockBranches(all, ptrType$92.nil, ptrType$65.nil, body.List); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - fwdJumps = _r$3; - _ref = fwdJumps; - _i = 0; - /* while (true) { */ case 4: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 5; continue; } - jmp = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - msg = ""; - code = 0; - name = jmp.Label.Name; - _r$4 = all.Lookup(name); /* */ $s = 6; case 6: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - alt = _r$4; - if (!($interfaceIsEqual(alt, $ifaceNil))) { - msg = "goto %s jumps into block"; - $assertType(alt, ptrType$91).used = true; - code = 124; - } else { - msg = "label %s not declared"; - code = 119; - } - $r = check.errorf(jmp.Label, code, msg, new sliceType$6([new $String(name)])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 4; continue; - case 5: - _ref$1 = all.elems; - _i$1 = 0; - _keys = _ref$1 ? _ref$1.keys() : undefined; - _size = _ref$1 ? _ref$1.size : 0; - /* while (true) { */ case 8: - /* if (!(_i$1 < _size)) { break; } */ if(!(_i$1 < _size)) { $s = 9; continue; } - _key = _keys.next().value; - _entry = _ref$1.get(_key); - if (_entry === undefined) { - _i$1++; - /* continue; */ $s = 8; continue; + /* } */ case 6: + $r = check.exprOrType(x[0], n$1, true); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (!(v === ptrType$17.nil)) { + v.used = v_used; } - name$1 = _entry.k; - obj = _entry.v; - _r$5 = resolve(name$1, obj); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - obj = _r$5; - lbl = $assertType(obj, ptrType$91); - /* */ if (!lbl.used) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (!lbl.used) { */ case 11: - $r = check.softErrorf(lbl, 122, "label %s declared and not used", new sliceType$6([new $String(lbl.object.name)])); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 12: - _i$1++; - $s = 8; continue; - case 9: - $s = -1; return; - /* */ } return; } var $f = {$blk: labels, $c: true, $r, _arg, _arg$1, _arg$2, _entry, _i, _i$1, _key, _keys, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _size, all, alt, body, check, code, fwdJumps, jmp, lbl, msg, name, name$1, obj, $s};return $f; + $s = 4; continue; + /* } else { */ case 3: + n$2 = _ref; + _r$1 = check.rawExpr($ifaceNil, x[0], e, $ifaceNil, true); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + /* } } */ case 4: + $s = -1; return !((x[0].mode === 0)); + /* */ } return; } var $f = {$blk: use1, $c: true, $r, _r, _r$1, _ref, _tuple, _tuple$1, check, e, lhs, n, n$1, n$2, obj, v, v_used, w, x, $s};return $f; }; - $ptrType(block).prototype.insert = function insert$2(s) { - var {_key, b, labels$1, name, s, $s, $r, $c} = $restore(this, {s}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - b = this; - name = s.Label.Name; - /* */ if (false) { $s = 1; continue; } + $ptrType(Checker).prototype.builtin = function builtin(x, call, id) { + var {S, T, T$1, T$2, _, _1, _2, _3, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$16, _arg$17, _arg$18, _arg$19, _arg$2, _arg$20, _arg$21, _arg$22, _arg$23, _arg$24, _arg$25, _arg$26, _arg$27, _arg$28, _arg$29, _arg$3, _arg$30, _arg$31, _arg$32, _arg$33, _arg$34, _arg$35, _arg$36, _arg$37, _arg$38, _arg$39, _arg$4, _arg$40, _arg$41, _arg$42, _arg$43, _arg$44, _arg$45, _arg$46, _arg$47, _arg$48, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _key, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _r$5, _r$50, _r$51, _r$52, _r$53, _r$54, _r$55, _r$56, _r$57, _r$58, _r$59, _r$6, _r$60, _r$61, _r$62, _r$63, _r$64, _r$65, _r$66, _r$67, _r$68, _r$69, _r$7, _r$70, _r$71, _r$72, _r$73, _r$74, _r$75, _r$76, _r$77, _r$78, _r$79, _r$8, _r$80, _r$81, _r$82, _r$83, _r$84, _r$85, _r$86, _r$87, _r$88, _r$89, _r$9, _r$90, _r$91, _r$92, _r$93, _r$94, _r$95, _r$96, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _ref$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _v, _v$1, _v$2, a, a$1, a$2, a$3, arg, arg$1, arg0, arg0$1, argList, args, base, bin, call, cause, check, code, code$1, d, dst, f, f$1, i, i$1, i$2, id, index$1, indirect, key, map_, min, mode, mode$1, msg$1, nargs, obj, offs, ok, op$1, p, params, ptr, resTyp, resTyp$1, s, sel, selx, sig, sig$1, size, size$1, sizes, slice, src, src0, t, t$1, t$2, t$3, t$4, t$5, t$6, toFloat, typ$4, types, types$1, u, val, x, x$1, x$2, x$3, x$4, x$5, x$6, x1, y, y$1, y$2, y$3, y$4, y$5, $s, $deferred, $r, $c} = $restore(this, {x, call, id}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + check = [check]; + id = [id]; + key = [key]; + t = [t]; + x = [x]; + _ = false; + check[0] = this; + argList = call.Args; + bin = $clone(((id[0] < 0 || id[0] >= predeclaredFuncs.length) ? ($throwRuntimeError("index out of range"), undefined) : predeclaredFuncs[id[0]]), structType$1); + /* */ if (new token.Pos(call.Ellipsis).IsValid() && !((id[0] === 0))) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (false) { */ case 1: - $r = assert(b.gotoTarget(name) === ptrType$65.nil); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* if (new token.Pos(call.Ellipsis).IsValid() && !((id[0] === 0))) { */ case 1: + $r = check[0].errorf(new atPos(((call.Ellipsis >> 0))), 81, "invalid operation: invalid use of ... with built-in %s", new sliceType$5([new $String(bin.name)])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r = check[0].use(argList); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + $s = -1; return _; /* } */ case 2: - labels$1 = b.labels; - if (labels$1 === false) { - labels$1 = new $global.Map(); - b.labels = labels$1; - } - _key = name; (labels$1 || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: s }); - $s = -1; return; - /* */ } return; } var $f = {$blk: insert$2, $c: true, $r, _key, b, labels$1, name, s, $s};return $f; - }; - $ptrType(block).prototype.gotoTarget = function gotoTarget(name) { - var _entry, b, name, s, t; - b = this; - s = b; - while (true) { - if (!(!(s === ptrType$92.nil))) { break; } - t = (_entry = $mapIndex(s.labels,$String.keyFor(name)), _entry !== undefined ? _entry.v : ptrType$65.nil); - if (!(t === ptrType$65.nil)) { - return t; - } - s = s.parent; - } - return ptrType$65.nil; - }; - $ptrType(block).prototype.enclosingTarget = function enclosingTarget(name) { - var b, name, s, t; - b = this; - s = b; - while (true) { - if (!(!(s === ptrType$92.nil))) { break; } - t = s.lstmt; - if (!(t === ptrType$65.nil) && t.Label.Name === name) { - return t; - } - s = s.parent; + /* */ if ((id[0] === 8) || (id[0] === 1)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if ((id[0] === 8) || (id[0] === 1)) { */ case 5: + $deferred.push([(function(check, id, key, t, x) { return function Checker·builtin·func1(b) { + var b; + check[0].environment.hasCallOrRecv = b; + }; })(check, id, key, t, x), [check[0].environment.hasCallOrRecv]]); + check[0].environment.hasCallOrRecv = false; + /* } */ case 6: + args = sliceType$29.nil; + nargs = 0; + _1 = id[0]; + /* */ if ((_1 === (9)) || (_1 === (12)) || (_1 === (20)) || (_1 === (27))) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if ((_1 === (9)) || (_1 === (12)) || (_1 === (20)) || (_1 === (27))) { */ case 8: + nargs = argList.$length; + $s = 10; continue; + /* } else { */ case 9: + _r$1 = check[0].exprList(argList); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + args = _r$1; + nargs = args.$length; + _ref = args; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + a = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (a.mode === 0) { + $s = -1; return _; + } + _i++; + } + if (nargs > 0) { + operand.copy((x[0] === ptrType$63.nil && $throwNilPointerError(), x[0]), (x$1 = (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), (x$1 === ptrType$63.nil && $throwNilPointerError(), x$1))); + } + /* } */ case 10: + case 7: + msg$1 = ""; + if (nargs < bin.nargs) { + msg$1 = "not enough"; + } else if (!bin.variadic && nargs > bin.nargs) { + msg$1 = "too many"; } - return ptrType$65.nil; - }; - $ptrType(Checker).prototype.blockBranches = function blockBranches(all, parent, lstmt, list$2) { - var {_i, _ref, _tmp, _tmp$1, all, b, badJumps, blockBranches$1, check, fwdJumps, jumpsOverVarDecl, list$2, lstmt, parent, recordVarDecl, s, stmtBranches, varDeclPos, $s, $r, $c} = $restore(this, {all, parent, lstmt, list$2}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - all = [all]; - b = [b]; - badJumps = [badJumps]; - blockBranches$1 = [blockBranches$1]; - check = [check]; - fwdJumps = [fwdJumps]; - jumpsOverVarDecl = [jumpsOverVarDecl]; - lstmt = [lstmt]; - recordVarDecl = [recordVarDecl]; - stmtBranches = [stmtBranches]; - varDeclPos = [varDeclPos]; - check[0] = this; - b[0] = new block.ptr(parent, lstmt[0], false); - varDeclPos[0] = 0; - _tmp = sliceType$26.nil; - _tmp$1 = sliceType$26.nil; - fwdJumps[0] = _tmp; - badJumps[0] = _tmp$1; - recordVarDecl[0] = (function(all, b, badJumps, blockBranches$1, check, fwdJumps, jumpsOverVarDecl, lstmt, recordVarDecl, stmtBranches, varDeclPos) { return function Checker·blockBranches·func1(pos) { - var pos; - varDeclPos[0] = pos; - badJumps[0] = $appendSlice($subslice(badJumps[0], 0, 0), fwdJumps[0]); - }; })(all, b, badJumps, blockBranches$1, check, fwdJumps, jumpsOverVarDecl, lstmt, recordVarDecl, stmtBranches, varDeclPos); - jumpsOverVarDecl[0] = (function(all, b, badJumps, blockBranches$1, check, fwdJumps, jumpsOverVarDecl, lstmt, recordVarDecl, stmtBranches, varDeclPos) { return function Checker·blockBranches·func2(jmp) { - var _i, _ref, bad, jmp; - if (new token.Pos(varDeclPos[0]).IsValid()) { - _ref = badJumps[0]; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - bad = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (jmp === bad) { - return true; + /* */ if (!(msg$1 === "")) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (!(msg$1 === "")) { */ case 12: + _r$2 = inNode(call, call.Rparen); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $r = check[0].errorf((x$2 = _r$2, new x$2.constructor.elem(x$2)), 126, "invalid operation: %s arguments for %s (expected %d, found %d)", new sliceType$5([new $String(msg$1), call, new $Int(bin.nargs), new $Int(nargs)])); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return _; + /* } */ case 13: + _2 = id[0]; + /* */ if (_2 === (0)) { $s = 17; continue; } + /* */ if ((_2 === (1)) || (_2 === (8))) { $s = 18; continue; } + /* */ if (_2 === (2)) { $s = 19; continue; } + /* */ if (_2 === (3)) { $s = 20; continue; } + /* */ if (_2 === (4)) { $s = 21; continue; } + /* */ if (_2 === (5)) { $s = 22; continue; } + /* */ if (_2 === (6)) { $s = 23; continue; } + /* */ if ((_2 === (7)) || (_2 === (16))) { $s = 24; continue; } + /* */ if (_2 === (9)) { $s = 25; continue; } + /* */ if ((_2 === (10)) || (_2 === (11))) { $s = 26; continue; } + /* */ if (_2 === (12)) { $s = 27; continue; } + /* */ if (_2 === (13)) { $s = 28; continue; } + /* */ if ((_2 === (14)) || (_2 === (15))) { $s = 29; continue; } + /* */ if (_2 === (17)) { $s = 30; continue; } + /* */ if (_2 === (18)) { $s = 31; continue; } + /* */ if (_2 === (19)) { $s = 32; continue; } + /* */ if (_2 === (20)) { $s = 33; continue; } + /* */ if (_2 === (21)) { $s = 34; continue; } + /* */ if (_2 === (22)) { $s = 35; continue; } + /* */ if (_2 === (23)) { $s = 36; continue; } + /* */ if (_2 === (24)) { $s = 37; continue; } + /* */ if (_2 === (25)) { $s = 38; continue; } + /* */ if (_2 === (26)) { $s = 39; continue; } + /* */ if (_2 === (27)) { $s = 40; continue; } + /* */ $s = 41; continue; + /* if (_2 === (0)) { */ case 17: + S = x[0].typ; + T = $ifaceNil; + _r$3 = coreType(S); /* */ $s = 43; case 43: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = $assertType(_r$3, ptrType$27, true); + s = _tuple[0]; + /* */ if (!(s === ptrType$27.nil)) { $s = 44; continue; } + /* */ $s = 45; continue; + /* if (!(s === ptrType$27.nil)) { */ case 44: + T = s.elem; + $s = 46; continue; + /* } else { */ case 45: + cause = ""; + /* */ if (x[0].isNil()) { $s = 48; continue; } + /* */ if (isTypeParam(S)) { $s = 49; continue; } + /* */ $s = 50; continue; + /* if (x[0].isNil()) { */ case 48: + cause = "have untyped nil"; + $s = 51; continue; + /* } else if (isTypeParam(S)) { */ case 49: + _r$4 = coreType(S); /* */ $s = 52; case 52: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + u = _r$4; + /* */ if (!($interfaceIsEqual(u, $ifaceNil))) { $s = 53; continue; } + /* */ $s = 54; continue; + /* if (!($interfaceIsEqual(u, $ifaceNil))) { */ case 53: + _r$5 = check[0].sprintf("%s has core type %s", new sliceType$5([x[0], u])); /* */ $s = 56; case 56: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + cause = _r$5; + $s = 55; continue; + /* } else { */ case 54: + _r$6 = check[0].sprintf("%s has no core type", new sliceType$5([x[0]])); /* */ $s = 57; case 57: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + cause = _r$6; + /* } */ case 55: + $s = 51; continue; + /* } else { */ case 50: + _r$7 = check[0].sprintf("have %s", new sliceType$5([x[0]])); /* */ $s = 58; case 58: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + cause = _r$7; + /* } */ case 51: + case 47: + $r = check[0].errorf(x[0], 83, "first argument to append must be a slice; %s", new sliceType$5([new $String(cause)])); /* */ $s = 59; case 59: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return _; + /* } */ case 46: + /* */ if ((nargs === 2) && new token.Pos(call.Ellipsis).IsValid()) { $s = 60; continue; } + /* */ $s = 61; continue; + /* if ((nargs === 2) && new token.Pos(call.Ellipsis).IsValid()) { */ case 60: + _r$8 = x[0].assignableTo(check[0], NewSlice(universeByte), ptrType$35.nil); /* */ $s = 62; case 62: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _tuple$1 = _r$8; + ok = _tuple$1[0]; + /* */ if (ok) { $s = 63; continue; } + /* */ $s = 64; continue; + /* if (ok) { */ case 63: + y = (1 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 1]); + _r$9 = coreString(y.typ); /* */ $s = 65; case 65: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + t$1 = _r$9; + if (!(!($interfaceIsEqual(t$1, $ifaceNil)))) { _v = false; $s = 68; continue s; } + _r$10 = isString(t$1); /* */ $s = 69; case 69: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _v = _r$10; case 68: + /* */ if (_v) { $s = 66; continue; } + /* */ $s = 67; continue; + /* if (_v) { */ case 66: + /* */ if (check[0].Info.recordTypes()) { $s = 70; continue; } + /* */ $s = 71; continue; + /* if (check[0].Info.recordTypes()) { */ case 70: + _r$11 = makeSig(S, new sliceType$3([S, y.typ])); /* */ $s = 72; case 72: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + sig = _r$11; + sig.variadic = true; + $r = check[0].recordBuiltinType(call.Fun, sig); /* */ $s = 73; case 73: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 71: + x[0].mode = 7; + x[0].typ = S; + /* break; */ $s = 16; continue; + /* } */ case 67: + /* } */ case 64: + /* } */ case 61: + _r$12 = makeSig(S, new sliceType$3([S, NewSlice(T)])); /* */ $s = 74; case 74: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + sig$1 = _r$12; + sig$1.variadic = true; + _r$13 = check[0].arguments$(call, sig$1, sliceType$3.nil, sliceType$10.nil, args, sliceType$41.nil, sliceType$42.nil); /* */ $s = 75; case 75: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _r$13; + x[0].mode = 7; + x[0].typ = S; + /* */ if (check[0].Info.recordTypes()) { $s = 76; continue; } + /* */ $s = 77; continue; + /* if (check[0].Info.recordTypes()) { */ case 76: + $r = check[0].recordBuiltinType(call.Fun, sig$1); /* */ $s = 78; case 78: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 77: + $s = 42; continue; + /* } else if ((_2 === (1)) || (_2 === (8))) { */ case 18: + mode = 0; + val = $ifaceNil; + _r$14 = under(x[0].typ); /* */ $s = 79; case 79: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _r$15 = arrayPtrDeref(_r$14); /* */ $s = 80; case 80: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + _ref$1 = _r$15; + /* */ if ($assertType(_ref$1, ptrType$4, true)[1]) { $s = 81; continue; } + /* */ if ($assertType(_ref$1, ptrType$11, true)[1]) { $s = 82; continue; } + /* */ if ($assertType(_ref$1, ptrType$27, true)[1] || $assertType(_ref$1, ptrType$26, true)[1]) { $s = 83; continue; } + /* */ if ($assertType(_ref$1, ptrType$30, true)[1]) { $s = 84; continue; } + /* */ if ($assertType(_ref$1, ptrType$14, true)[1]) { $s = 85; continue; } + /* */ $s = 86; continue; + /* switch (0) { default: if ($assertType(_ref$1, ptrType$4, true)[1]) { */ case 81: + t$2 = _ref$1.$val; + _r$16 = isString(t$2); /* */ $s = 89; case 89: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + /* */ if (_r$16 && (id[0] === 8)) { $s = 87; continue; } + /* */ $s = 88; continue; + /* if (_r$16 && (id[0] === 8)) { */ case 87: + /* */ if (x[0].mode === 4) { $s = 90; continue; } + /* */ $s = 91; continue; + /* if (x[0].mode === 4) { */ case 90: + mode = 4; + _r$17 = constant.StringVal(x[0].val); /* */ $s = 93; case 93: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + _r$18 = constant.MakeInt64((new $Int64(0, _r$17.length))); /* */ $s = 94; case 94: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + val = _r$18; + $s = 92; continue; + /* } else { */ case 91: + mode = 7; + /* } */ case 92: + /* } */ case 88: + $s = 86; continue; + /* } else if ($assertType(_ref$1, ptrType$11, true)[1]) { */ case 82: + t$3 = _ref$1.$val; + mode = 7; + if (!check[0].environment.hasCallOrRecv) { + mode = 4; + if ((x$3 = t$3.len, (x$3.$high > 0 || (x$3.$high === 0 && x$3.$low >= 0)))) { + val = constant.MakeInt64(t$3.len); + } else { + val = constant.MakeUnknown(); } - _i++; } - } - return false; - }; })(all, b, badJumps, blockBranches$1, check, fwdJumps, jumpsOverVarDecl, lstmt, recordVarDecl, stmtBranches, varDeclPos); - blockBranches$1[0] = (function(all, b, badJumps, blockBranches$1, check, fwdJumps, jumpsOverVarDecl, lstmt, recordVarDecl, stmtBranches, varDeclPos) { return function Checker·blockBranches·func3(lstmt$1, list$3) { - var {_arg, _arg$1, _r$1, list$3, lstmt$1, $s, $r, $c} = $restore(this, {lstmt$1, list$3}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _arg = fwdJumps[0]; - _r$1 = check[0].blockBranches(all[0], b[0], lstmt$1, list$3); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _arg$1 = _r$1; - fwdJumps[0] = $appendSlice(_arg, _arg$1); - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·blockBranches·func3, $c: true, $r, _arg, _arg$1, _r$1, list$3, lstmt$1, $s};return $f; - }; })(all, b, badJumps, blockBranches$1, check, fwdJumps, jumpsOverVarDecl, lstmt, recordVarDecl, stmtBranches, varDeclPos); - stmtBranches[0] = $throwNilPointerError; - stmtBranches[0] = (function(all, b, badJumps, blockBranches$1, check, fwdJumps, jumpsOverVarDecl, lstmt, recordVarDecl, stmtBranches, varDeclPos) { return function Checker·blockBranches·func4(s) { - var {_1, _arg, _arg$1, _arg$2, _i, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _ref$2, _ref$3, _tuple, alt, d, i, jmp, lbl, name, name$1, obj, s, s$1, s$10, s$11, s$12, s$13, s$2, s$3, s$4, s$5, s$6, s$7, s$8, s$9, t, t$1, valid, valid$1, $s, $r, $c} = $restore(this, {s}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ref = s; - /* */ if ($assertType(_ref, ptrType$64, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$65, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$73, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$69, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$74, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$75, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType$60, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref, ptrType$76, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref, ptrType$77, true)[1]) { $s = 9; continue; } - /* */ if ($assertType(_ref, ptrType$61, true)[1]) { $s = 10; continue; } - /* */ if ($assertType(_ref, ptrType$78, true)[1]) { $s = 11; continue; } - /* */ if ($assertType(_ref, ptrType$79, true)[1]) { $s = 12; continue; } - /* */ if ($assertType(_ref, ptrType$80, true)[1]) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if ($assertType(_ref, ptrType$64, true)[1]) { */ case 1: - s$1 = _ref.$val; - _tuple = $assertType(s$1.Decl, ptrType$93, true); - d = _tuple[0]; - /* */ if (!(d === ptrType$93.nil) && (d.Tok === 85)) { $s = 15; continue; } - /* */ $s = 16; continue; - /* if (!(d === ptrType$93.nil) && (d.Tok === 85)) { */ case 15: - $r = recordVarDecl[0](d.Pos()); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 16: - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$65, true)[1]) { */ case 2: - s$2 = _ref.$val; - name = s$2.Label.Name; - /* */ if (!(name === "_")) { $s = 18; continue; } - /* */ $s = 19; continue; - /* if (!(name === "_")) { */ case 18: - lbl = NewLabel(s$2.Label.Pos(), check[0].pkg, name); - _r$1 = all[0].Insert(lbl); /* */ $s = 20; case 20: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - alt = _r$1; - /* */ if (!($interfaceIsEqual(alt, $ifaceNil))) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if (!($interfaceIsEqual(alt, $ifaceNil))) { */ case 21: - $r = check[0].softErrorf(lbl, 120, "label %s already declared", new sliceType$6([new $String(name)])); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].reportAltDecl(alt); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 23; continue; - /* } else { */ case 22: - $r = b[0].insert(s$2); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].recordDef(s$2.Label, lbl); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 23: - i = 0; - _ref$1 = fwdJumps[0]; - _i = 0; - /* while (true) { */ case 28: - /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 29; continue; } - jmp = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); - /* */ if (jmp.Label.Name === name) { $s = 30; continue; } - /* */ $s = 31; continue; - /* if (jmp.Label.Name === name) { */ case 30: - lbl.used = true; - $r = check[0].recordUse(jmp.Label, lbl); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$2 = jumpsOverVarDecl[0](jmp); /* */ $s = 36; case 36: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (_r$2) { $s = 34; continue; } - /* */ $s = 35; continue; - /* if (_r$2) { */ case 34: - _arg = jmp.Label; - _arg$1 = new $String(name); - _r$3 = check[0].fset.Position(varDeclPos[0]); /* */ $s = 37; case 37: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _arg$2 = new $Int(_r$3.Line); - $r = check[0].softErrorf(_arg, 123, "goto %s jumps over variable declaration at line %d", new sliceType$6([_arg$1, _arg$2])); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 35: - $s = 32; continue; - /* } else { */ case 31: - ((i < 0 || i >= fwdJumps[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : fwdJumps[0].$array[fwdJumps[0].$offset + i] = jmp); - i = i + (1) >> 0; - /* } */ case 32: - _i++; - $s = 28; continue; - case 29: - fwdJumps[0] = $subslice(fwdJumps[0], 0, i); - lstmt[0] = s$2; - /* } */ case 19: - $r = stmtBranches[0](s$2.Stmt); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$73, true)[1]) { */ case 3: - s$3 = _ref.$val; - if (s$3.Label === ptrType$30.nil) { - $s = -1; return; + $s = 86; continue; + /* } else if ($assertType(_ref$1, ptrType$27, true)[1] || $assertType(_ref$1, ptrType$26, true)[1]) { */ case 83: + t$4 = _ref$1; + mode = 7; + $s = 86; continue; + /* } else if ($assertType(_ref$1, ptrType$30, true)[1]) { */ case 84: + t$5 = _ref$1.$val; + if (id[0] === 8) { + mode = 7; } - name$1 = s$3.Label.Name; - _1 = s$3.Tok; - /* */ if (_1 === (61)) { $s = 41; continue; } - /* */ if (_1 === (65)) { $s = 42; continue; } - /* */ if (_1 === (73)) { $s = 43; continue; } - /* */ $s = 44; continue; - /* if (_1 === (61)) { */ case 41: - valid = false; - t = b[0].enclosingTarget(name$1); - if (!(t === ptrType$65.nil)) { - _ref$2 = t.Stmt; - if ($assertType(_ref$2, ptrType$76, true)[1] || $assertType(_ref$2, ptrType$77, true)[1] || $assertType(_ref$2, ptrType$78, true)[1] || $assertType(_ref$2, ptrType$79, true)[1] || $assertType(_ref$2, ptrType$80, true)[1]) { - valid = true; - } - } - /* */ if (!valid) { $s = 46; continue; } - /* */ $s = 47; continue; - /* if (!valid) { */ case 46: - $r = check[0].errorf(s$3.Label, 121, "invalid break label %s", new sliceType$6([new $String(name$1)])); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 47: - $s = 45; continue; - /* } else if (_1 === (65)) { */ case 42: - valid$1 = false; - t$1 = b[0].enclosingTarget(name$1); - if (!(t$1 === ptrType$65.nil)) { - _ref$3 = t$1.Stmt; - if ($assertType(_ref$3, ptrType$79, true)[1] || $assertType(_ref$3, ptrType$80, true)[1]) { - valid$1 = true; + $s = 86; continue; + /* } else if ($assertType(_ref$1, ptrType$14, true)[1]) { */ case 85: + t$6 = _ref$1.$val; + if (!isTypeParam(x[0].typ)) { + /* break; */ $s = 86; continue; + } + _r$19 = t$6.typeSet(); /* */ $s = 97; case 97: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + _r$20 = _r$19.underIs((function(check, id, key, t, x) { return function Checker·builtin·func2(t$7) { + var {_r$20, _r$21, _ref$2, t$10, t$7, t$8, t$9, $s, $r, $c} = $restore(this, {t$7}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$20 = arrayPtrDeref(t$7); /* */ $s = 1; case 1: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + _ref$2 = _r$20; + /* */ if ($assertType(_ref$2, ptrType$4, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref$2, ptrType$11, true)[1] || $assertType(_ref$2, ptrType$27, true)[1] || $assertType(_ref$2, ptrType$26, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref$2, ptrType$30, true)[1]) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ($assertType(_ref$2, ptrType$4, true)[1]) { */ case 2: + t$8 = _ref$2.$val; + _r$21 = isString(t$8); /* */ $s = 8; case 8: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + /* */ if (_r$21 && (id[0] === 8)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (_r$21 && (id[0] === 8)) { */ case 6: + $s = -1; return true; + /* } */ case 7: + $s = 5; continue; + /* } else if ($assertType(_ref$2, ptrType$11, true)[1] || $assertType(_ref$2, ptrType$27, true)[1] || $assertType(_ref$2, ptrType$26, true)[1]) { */ case 3: + t$9 = _ref$2; + $s = -1; return true; + /* } else if ($assertType(_ref$2, ptrType$30, true)[1]) { */ case 4: + t$10 = _ref$2.$val; + if (id[0] === 8) { + $s = -1; return true; } + /* } */ case 5: + $s = -1; return false; + /* */ } return; } var $f = {$blk: Checker·builtin·func2, $c: true, $r, _r$20, _r$21, _ref$2, t$10, t$7, t$8, t$9, $s};return $f; + }; })(check, id, key, t, x)); /* */ $s = 98; case 98: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + /* */ if (_r$20) { $s = 95; continue; } + /* */ $s = 96; continue; + /* if (_r$20) { */ case 95: + mode = 7; + /* } */ case 96: + /* } } */ case 86: + /* */ if (mode === 0) { $s = 99; continue; } + /* */ $s = 100; continue; + /* if (mode === 0) { */ case 99: + _r$21 = under(x[0].typ); /* */ $s = 103; case 103: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + /* */ if (!($interfaceIsEqual(_r$21, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { $s = 101; continue; } + /* */ $s = 102; continue; + /* if (!($interfaceIsEqual(_r$21, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { */ case 101: + code = 84; + if (id[0] === 8) { + code = 90; + } + $r = check[0].errorf(x[0], code, "invalid argument: %s for %s", new sliceType$5([x[0], new $String(bin.name)])); /* */ $s = 104; case 104: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 102: + $s = -1; return _; + /* } */ case 100: + /* */ if (check[0].Info.recordTypes() && !((mode === 4))) { $s = 105; continue; } + /* */ $s = 106; continue; + /* if (check[0].Info.recordTypes() && !((mode === 4))) { */ case 105: + _arg = call.Fun; + _r$22 = makeSig((2 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 2]), new sliceType$3([x[0].typ])); /* */ $s = 107; case 107: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + _arg$1 = _r$22; + $r = check[0].recordBuiltinType(_arg, _arg$1); /* */ $s = 108; case 108: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 106: + x[0].mode = mode; + x[0].typ = (2 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 2]); + x[0].val = val; + $s = 42; continue; + /* } else if (_2 === (2)) { */ case 19: + _r$23 = check[0].verifyVersionf(call.Fun, $clone(go1_21, version), "clear", sliceType$5.nil); /* */ $s = 109; case 109: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + _r$23; + _r$24 = underIs(x[0].typ, (function(check, id, key, t, x) { return function Checker·builtin·func3(u$1) { + var {_ref$2, u$1, $s, $r, $c} = $restore(this, {u$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _ref$2 = u$1; + if ($assertType(_ref$2, ptrType$30, true)[1] || $assertType(_ref$2, ptrType$27, true)[1]) { + $s = -1; return true; + } + $r = check[0].errorf(x[0], 148, "invalid argument: cannot clear %s: argument must be (or constrained by) map or slice", new sliceType$5([x[0]])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; + /* */ } return; } var $f = {$blk: Checker·builtin·func3, $c: true, $r, _ref$2, u$1, $s};return $f; + }; })(check, id, key, t, x)); /* */ $s = 112; case 112: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + /* */ if (!_r$24) { $s = 110; continue; } + /* */ $s = 111; continue; + /* if (!_r$24) { */ case 110: + $s = -1; return _; + /* } */ case 111: + x[0].mode = 1; + /* */ if (check[0].Info.recordTypes()) { $s = 113; continue; } + /* */ $s = 114; continue; + /* if (check[0].Info.recordTypes()) { */ case 113: + _arg$2 = call.Fun; + _r$25 = makeSig($ifaceNil, new sliceType$3([x[0].typ])); /* */ $s = 115; case 115: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _arg$3 = _r$25; + $r = check[0].recordBuiltinType(_arg$2, _arg$3); /* */ $s = 116; case 116: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 114: + $s = 42; continue; + /* } else if (_2 === (3)) { */ case 20: + _r$26 = underIs(x[0].typ, (function(check, id, key, t, x) { return function Checker·builtin·func4(u$1) { + var {_tuple$2, u$1, uch, $s, $r, $c} = $restore(this, {u$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _tuple$2 = $assertType(u$1, ptrType$26, true); + uch = _tuple$2[0]; + /* */ if (uch === ptrType$26.nil) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (uch === ptrType$26.nil) { */ case 1: + $r = check[0].errorf(x[0], 85, "invalid operation: cannot close non-channel %s", new sliceType$5([x[0]])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; + /* } */ case 2: + /* */ if (uch.dir === 2) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (uch.dir === 2) { */ case 4: + $r = check[0].errorf(x[0], 85, "invalid operation: cannot close receive-only channel %s", new sliceType$5([x[0]])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; + /* } */ case 5: + $s = -1; return true; + /* */ } return; } var $f = {$blk: Checker·builtin·func4, $c: true, $r, _tuple$2, u$1, uch, $s};return $f; + }; })(check, id, key, t, x)); /* */ $s = 119; case 119: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + /* */ if (!_r$26) { $s = 117; continue; } + /* */ $s = 118; continue; + /* if (!_r$26) { */ case 117: + $s = -1; return _; + /* } */ case 118: + x[0].mode = 1; + /* */ if (check[0].Info.recordTypes()) { $s = 120; continue; } + /* */ $s = 121; continue; + /* if (check[0].Info.recordTypes()) { */ case 120: + _arg$4 = call.Fun; + _r$27 = makeSig($ifaceNil, new sliceType$3([x[0].typ])); /* */ $s = 122; case 122: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + _arg$5 = _r$27; + $r = check[0].recordBuiltinType(_arg$4, _arg$5); /* */ $s = 123; case 123: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 121: + $s = 42; continue; + /* } else if (_2 === (4)) { */ case 21: + y$1 = (1 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 1]); + d = 0; + if (isUntyped(x[0].typ)) { + d = d | (1); + } + if (isUntyped(y$1.typ)) { + d = d | (2); + } + _3 = d; + /* */ if (_3 === (0)) { $s = 125; continue; } + /* */ if (_3 === (1)) { $s = 126; continue; } + /* */ if (_3 === (2)) { $s = 127; continue; } + /* */ if (_3 === (3)) { $s = 128; continue; } + /* */ $s = 129; continue; + /* if (_3 === (0)) { */ case 125: + $s = 129; continue; + /* } else if (_3 === (1)) { */ case 126: + $r = check[0].convertUntyped(x[0], y$1.typ); /* */ $s = 130; case 130: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 129; continue; + /* } else if (_3 === (2)) { */ case 127: + $r = check[0].convertUntyped(y$1, x[0].typ); /* */ $s = 131; case 131: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 129; continue; + /* } else if (_3 === (3)) { */ case 128: + /* */ if ((x[0].mode === 4) && (y$1.mode === 4)) { $s = 132; continue; } + /* */ $s = 133; continue; + /* if ((x[0].mode === 4) && (y$1.mode === 4)) { */ case 132: + toFloat = (function(check, id, key, t, x) { return function Checker·builtin·func5(x$4) { + var {_r$28, _r$29, _r$30, _v$1, x$4, $s, $r, $c} = $restore(this, {x$4}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$28 = isNumeric(x$4.typ); /* */ $s = 4; case 4: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + if (!(_r$28)) { _v$1 = false; $s = 3; continue s; } + _r$29 = constant.Imag(x$4.val); /* */ $s = 5; case 5: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + _r$30 = constant.Sign(_r$29); /* */ $s = 6; case 6: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } + _v$1 = _r$30 === 0; case 3: + /* */ if (_v$1) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_v$1) { */ case 1: + x$4.typ = (22 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 22]); + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: Checker·builtin·func5, $c: true, $r, _r$28, _r$29, _r$30, _v$1, x$4, $s};return $f; + }; })(check, id, key, t, x); + $r = toFloat(x[0]); /* */ $s = 135; case 135: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = toFloat(y$1); /* */ $s = 136; case 136: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 134; continue; + /* } else { */ case 133: + $r = check[0].convertUntyped(x[0], (14 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 14])); /* */ $s = 137; case 137: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check[0].convertUntyped(y$1, (14 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 14])); /* */ $s = 138; case 138: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 134: + /* } */ case 129: + case 124: + if ((x[0].mode === 0) || (y$1.mode === 0)) { + $s = -1; return _; + } + _r$28 = Identical(x[0].typ, y$1.typ); /* */ $s = 141; case 141: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + /* */ if (!_r$28) { $s = 139; continue; } + /* */ $s = 140; continue; + /* if (!_r$28) { */ case 139: + $r = check[0].errorf(x[0], 87, "invalid operation: %v (mismatched types %s and %s)", new sliceType$5([call, x[0].typ, y$1.typ])); /* */ $s = 142; case 142: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return _; + /* } */ case 140: + f = (function(check, id, key, t, x) { return function Checker·builtin·func6(typ$4) { + var {_4, _r$29, _tuple$2, t$7, typ$4, $s, $r, $c} = $restore(this, {typ$4}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = assert(!isTypeParam(typ$4)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$29 = under(typ$4); /* */ $s = 2; case 2: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + _tuple$2 = $assertType(_r$29, ptrType$4, true); + t$7 = _tuple$2[0]; + if (!(t$7 === ptrType$4.nil)) { + _4 = t$7.kind; + if (_4 === (13)) { + $s = -1; return (15 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 15]); + } else if (_4 === (14)) { + $s = -1; return (16 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 16]); + } else if (_4 === (22)) { + $s = -1; return (23 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 23]); } - /* */ if (!valid$1) { $s = 49; continue; } - /* */ $s = 50; continue; - /* if (!valid$1) { */ case 49: - $r = check[0].errorf(s$3.Label, 121, "invalid continue label %s", new sliceType$6([new $String(name$1)])); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 50: - $s = 45; continue; - /* } else if (_1 === (73)) { */ case 43: - if (b[0].gotoTarget(name$1) === ptrType$65.nil) { - fwdJumps[0] = $append(fwdJumps[0], s$3); - $s = -1; return; + } + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: Checker·builtin·func6, $c: true, $r, _4, _r$29, _tuple$2, t$7, typ$4, $s};return $f; + }; })(check, id, key, t, x); + _r$29 = check[0].applyTypeFunc(f, x[0], id[0]); /* */ $s = 143; case 143: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + resTyp = _r$29; + /* */ if ($interfaceIsEqual(resTyp, $ifaceNil)) { $s = 144; continue; } + /* */ $s = 145; continue; + /* if ($interfaceIsEqual(resTyp, $ifaceNil)) { */ case 144: + $r = check[0].errorf(x[0], 87, "invalid argument: arguments have type %s, expected floating-point", new sliceType$5([x[0].typ])); /* */ $s = 146; case 146: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return _; + /* } */ case 145: + /* */ if ((x[0].mode === 4) && (y$1.mode === 4)) { $s = 147; continue; } + /* */ $s = 148; continue; + /* if ((x[0].mode === 4) && (y$1.mode === 4)) { */ case 147: + _r$30 = constant.ToFloat(x[0].val); /* */ $s = 150; case 150: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } + _arg$6 = _r$30; + _r$31 = constant.ToFloat(y$1.val); /* */ $s = 151; case 151: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } + _r$32 = constant.MakeImag(_r$31); /* */ $s = 152; case 152: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } + _arg$7 = _r$32; + _r$33 = constant.BinaryOp(_arg$6, 12, _arg$7); /* */ $s = 153; case 153: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } + x[0].val = _r$33; + $s = 149; continue; + /* } else { */ case 148: + x[0].mode = 7; + /* } */ case 149: + /* */ if (check[0].Info.recordTypes() && !((x[0].mode === 4))) { $s = 154; continue; } + /* */ $s = 155; continue; + /* if (check[0].Info.recordTypes() && !((x[0].mode === 4))) { */ case 154: + _arg$8 = call.Fun; + _r$34 = makeSig(resTyp, new sliceType$3([x[0].typ, x[0].typ])); /* */ $s = 156; case 156: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } + _arg$9 = _r$34; + $r = check[0].recordBuiltinType(_arg$8, _arg$9); /* */ $s = 157; case 157: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 155: + x[0].typ = resTyp; + $s = 42; continue; + /* } else if (_2 === (5)) { */ case 22: + _r$35 = coreType(x[0].typ); /* */ $s = 158; case 158: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } + _tuple$2 = $assertType(_r$35, ptrType$27, true); + dst = _tuple$2[0]; + y$2 = (1 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 1]); + _r$36 = coreString(y$2.typ); /* */ $s = 159; case 159: if($c) { $c = false; _r$36 = _r$36.$blk(); } if (_r$36 && _r$36.$blk !== undefined) { break s; } + src0 = _r$36; + if (!(!($interfaceIsEqual(src0, $ifaceNil)))) { _v$1 = false; $s = 162; continue s; } + _r$37 = isString(src0); /* */ $s = 163; case 163: if($c) { $c = false; _r$37 = _r$37.$blk(); } if (_r$37 && _r$37.$blk !== undefined) { break s; } + _v$1 = _r$37; case 162: + /* */ if (_v$1) { $s = 160; continue; } + /* */ $s = 161; continue; + /* if (_v$1) { */ case 160: + src0 = NewSlice(universeByte); + /* } */ case 161: + _tuple$3 = $assertType(src0, ptrType$27, true); + src = _tuple$3[0]; + /* */ if (dst === ptrType$27.nil || src === ptrType$27.nil) { $s = 164; continue; } + /* */ $s = 165; continue; + /* if (dst === ptrType$27.nil || src === ptrType$27.nil) { */ case 164: + $r = check[0].errorf(x[0], 86, "invalid argument: copy expects slice arguments; found %s and %s", new sliceType$5([x[0], y$2])); /* */ $s = 166; case 166: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return _; + /* } */ case 165: + _r$38 = Identical(dst.elem, src.elem); /* */ $s = 169; case 169: if($c) { $c = false; _r$38 = _r$38.$blk(); } if (_r$38 && _r$38.$blk !== undefined) { break s; } + /* */ if (!_r$38) { $s = 167; continue; } + /* */ $s = 168; continue; + /* if (!_r$38) { */ case 167: + $r = check[0].errorf(x[0], 86, "invalid argument: arguments to copy %s and %s have different element types %s and %s", new sliceType$5([x[0], y$2, dst.elem, src.elem])); /* */ $s = 170; case 170: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return _; + /* } */ case 168: + /* */ if (check[0].Info.recordTypes()) { $s = 171; continue; } + /* */ $s = 172; continue; + /* if (check[0].Info.recordTypes()) { */ case 171: + _arg$10 = call.Fun; + _r$39 = makeSig((2 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 2]), new sliceType$3([x[0].typ, y$2.typ])); /* */ $s = 173; case 173: if($c) { $c = false; _r$39 = _r$39.$blk(); } if (_r$39 && _r$39.$blk !== undefined) { break s; } + _arg$11 = _r$39; + $r = check[0].recordBuiltinType(_arg$10, _arg$11); /* */ $s = 174; case 174: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 172: + x[0].mode = 7; + x[0].typ = (2 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 2]); + $s = 42; continue; + /* } else if (_2 === (6)) { */ case 23: + map_ = x[0].typ; + key[0] = $ifaceNil; + _r$40 = underIs(map_, (function(check, id, key, t, x) { return function Checker·builtin·func7(u$1) { + var {_r$40, _tuple$4, _v$2, map_$1, u$1, $s, $r, $c} = $restore(this, {u$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _tuple$4 = $assertType(u$1, ptrType$30, true); + map_$1 = _tuple$4[0]; + /* */ if (map_$1 === ptrType$30.nil) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (map_$1 === ptrType$30.nil) { */ case 1: + $r = check[0].errorf(x[0], 88, "invalid argument: %s is not a map", new sliceType$5([x[0]])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; + /* } */ case 2: + if (!(!($interfaceIsEqual(key[0], $ifaceNil)))) { _v$2 = false; $s = 6; continue s; } + _r$40 = Identical(map_$1.key, key[0]); /* */ $s = 7; case 7: if($c) { $c = false; _r$40 = _r$40.$blk(); } if (_r$40 && _r$40.$blk !== undefined) { break s; } + _v$2 = !_r$40; case 6: + /* */ if (_v$2) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_v$2) { */ case 4: + $r = check[0].errorf(x[0], 88, "invalid argument: maps of %s must have identical key types", new sliceType$5([x[0]])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; + /* } */ case 5: + key[0] = map_$1.key; + $s = -1; return true; + /* */ } return; } var $f = {$blk: Checker·builtin·func7, $c: true, $r, _r$40, _tuple$4, _v$2, map_$1, u$1, $s};return $f; + }; })(check, id, key, t, x)); /* */ $s = 177; case 177: if($c) { $c = false; _r$40 = _r$40.$blk(); } if (_r$40 && _r$40.$blk !== undefined) { break s; } + /* */ if (!_r$40) { $s = 175; continue; } + /* */ $s = 176; continue; + /* if (!_r$40) { */ case 175: + $s = -1; return _; + /* } */ case 176: + operand.copy((x[0] === ptrType$63.nil && $throwNilPointerError(), x[0]), (x$4 = (1 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 1]), (x$4 === ptrType$63.nil && $throwNilPointerError(), x$4))); + $r = check[0].assignment(x[0], key[0], "argument to delete"); /* */ $s = 178; case 178: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (x[0].mode === 0) { + $s = -1; return _; + } + x[0].mode = 1; + /* */ if (check[0].Info.recordTypes()) { $s = 179; continue; } + /* */ $s = 180; continue; + /* if (check[0].Info.recordTypes()) { */ case 179: + _arg$12 = call.Fun; + _r$41 = makeSig($ifaceNil, new sliceType$3([map_, key[0]])); /* */ $s = 181; case 181: if($c) { $c = false; _r$41 = _r$41.$blk(); } if (_r$41 && _r$41.$blk !== undefined) { break s; } + _arg$13 = _r$41; + $r = check[0].recordBuiltinType(_arg$12, _arg$13); /* */ $s = 182; case 182: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 180: + $s = 42; continue; + /* } else if ((_2 === (7)) || (_2 === (16))) { */ case 24: + /* */ if (isUntyped(x[0].typ)) { $s = 183; continue; } + /* */ $s = 184; continue; + /* if (isUntyped(x[0].typ)) { */ case 183: + /* */ if (x[0].mode === 4) { $s = 185; continue; } + /* */ $s = 186; continue; + /* if (x[0].mode === 4) { */ case 185: + _r$42 = isNumeric(x[0].typ); /* */ $s = 190; case 190: if($c) { $c = false; _r$42 = _r$42.$blk(); } if (_r$42 && _r$42.$blk !== undefined) { break s; } + /* */ if (_r$42) { $s = 188; continue; } + /* */ $s = 189; continue; + /* if (_r$42) { */ case 188: + x[0].typ = (23 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 23]); + /* } */ case 189: + $s = 187; continue; + /* } else { */ case 186: + $r = check[0].convertUntyped(x[0], (16 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 16])); /* */ $s = 191; case 191: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (x[0].mode === 0) { + $s = -1; return _; + } + /* } */ case 187: + /* } */ case 184: + f$1 = (function(check, id, key, t, x) { return function Checker·builtin·func8(typ$4) { + var {_5, _r$43, _tuple$4, t$7, typ$4, $s, $r, $c} = $restore(this, {typ$4}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = assert(!isTypeParam(typ$4)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$43 = under(typ$4); /* */ $s = 2; case 2: if($c) { $c = false; _r$43 = _r$43.$blk(); } if (_r$43 && _r$43.$blk !== undefined) { break s; } + _tuple$4 = $assertType(_r$43, ptrType$4, true); + t$7 = _tuple$4[0]; + if (!(t$7 === ptrType$4.nil)) { + _5 = t$7.kind; + if (_5 === (15)) { + $s = -1; return (13 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 13]); + } else if (_5 === (16)) { + $s = -1; return (14 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 14]); + } else if (_5 === (23)) { + $s = -1; return (22 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 22]); } - $s = 45; continue; - /* } else { */ case 44: - $r = check[0].errorf(s$3, -1, "branch statement: %s %s", new sliceType$6([new token.Token(s$3.Tok), new $String(name$1)])); /* */ $s = 52; case 52: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 45: - case 40: - _r$4 = all[0].Lookup(name$1); /* */ $s = 53; case 53: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - obj = _r$4; - $assertType(obj, ptrType$91).used = true; - $r = check[0].recordUse(s$3.Label, obj); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$69, true)[1]) { */ case 4: - s$4 = _ref.$val; - /* */ if (s$4.Tok === 47) { $s = 55; continue; } - /* */ $s = 56; continue; - /* if (s$4.Tok === 47) { */ case 55: - _r$5 = s$4.Pos(); /* */ $s = 57; case 57: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - $r = recordVarDecl[0](_r$5); /* */ $s = 58; case 58: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 56: - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$74, true)[1]) { */ case 5: - s$5 = _ref.$val; - $r = blockBranches$1[0](lstmt[0], s$5.List); /* */ $s = 59; case 59: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$75, true)[1]) { */ case 6: - s$6 = _ref.$val; - $r = stmtBranches[0](s$6.Body); /* */ $s = 60; case 60: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!($interfaceIsEqual(s$6.Else, $ifaceNil))) { $s = 61; continue; } - /* */ $s = 62; continue; - /* if (!($interfaceIsEqual(s$6.Else, $ifaceNil))) { */ case 61: - $r = stmtBranches[0](s$6.Else); /* */ $s = 63; case 63: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 62: - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$60, true)[1]) { */ case 7: - s$7 = _ref.$val; - $r = blockBranches$1[0](ptrType$65.nil, s$7.Body); /* */ $s = 64; case 64: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$76, true)[1]) { */ case 8: - s$8 = _ref.$val; - $r = stmtBranches[0](s$8.Body); /* */ $s = 65; case 65: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$77, true)[1]) { */ case 9: - s$9 = _ref.$val; - $r = stmtBranches[0](s$9.Body); /* */ $s = 66; case 66: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$61, true)[1]) { */ case 10: - s$10 = _ref.$val; - $r = blockBranches$1[0](ptrType$65.nil, s$10.Body); /* */ $s = 67; case 67: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$78, true)[1]) { */ case 11: - s$11 = _ref.$val; - $r = stmtBranches[0](s$11.Body); /* */ $s = 68; case 68: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$79, true)[1]) { */ case 12: - s$12 = _ref.$val; - $r = stmtBranches[0](s$12.Body); /* */ $s = 69; case 69: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$80, true)[1]) { */ case 13: - s$13 = _ref.$val; - $r = stmtBranches[0](s$13.Body); /* */ $s = 70; case 70: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 14: - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·blockBranches·func4, $c: true, $r, _1, _arg, _arg$1, _arg$2, _i, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _ref$2, _ref$3, _tuple, alt, d, i, jmp, lbl, name, name$1, obj, s, s$1, s$10, s$11, s$12, s$13, s$2, s$3, s$4, s$5, s$6, s$7, s$8, s$9, t, t$1, valid, valid$1, $s};return $f; - }; })(all, b, badJumps, blockBranches$1, check, fwdJumps, jumpsOverVarDecl, lstmt, recordVarDecl, stmtBranches, varDeclPos); - _ref = list$2; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - $r = stmtBranches[0](s); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 1; continue; - case 2: - $s = -1; return fwdJumps[0]; - /* */ } return; } var $f = {$blk: blockBranches, $c: true, $r, _i, _ref, _tmp, _tmp$1, all, b, badJumps, blockBranches$1, check, fwdJumps, jumpsOverVarDecl, list$2, lstmt, parent, recordVarDecl, s, stmtBranches, varDeclPos, $s};return $f; + } + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: Checker·builtin·func8, $c: true, $r, _5, _r$43, _tuple$4, t$7, typ$4, $s};return $f; + }; })(check, id, key, t, x); + _r$43 = check[0].applyTypeFunc(f$1, x[0], id[0]); /* */ $s = 192; case 192: if($c) { $c = false; _r$43 = _r$43.$blk(); } if (_r$43 && _r$43.$blk !== undefined) { break s; } + resTyp$1 = _r$43; + /* */ if ($interfaceIsEqual(resTyp$1, $ifaceNil)) { $s = 193; continue; } + /* */ $s = 194; continue; + /* if ($interfaceIsEqual(resTyp$1, $ifaceNil)) { */ case 193: + code$1 = 89; + if (id[0] === 16) { + code$1 = 93; + } + $r = check[0].errorf(x[0], code$1, "invalid argument: argument has type %s, expected complex type", new sliceType$5([x[0].typ])); /* */ $s = 195; case 195: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return _; + /* } */ case 194: + /* */ if (x[0].mode === 4) { $s = 196; continue; } + /* */ $s = 197; continue; + /* if (x[0].mode === 4) { */ case 196: + /* */ if (id[0] === 16) { $s = 199; continue; } + /* */ $s = 200; continue; + /* if (id[0] === 16) { */ case 199: + _r$44 = constant.Real(x[0].val); /* */ $s = 202; case 202: if($c) { $c = false; _r$44 = _r$44.$blk(); } if (_r$44 && _r$44.$blk !== undefined) { break s; } + x[0].val = _r$44; + $s = 201; continue; + /* } else { */ case 200: + _r$45 = constant.Imag(x[0].val); /* */ $s = 203; case 203: if($c) { $c = false; _r$45 = _r$45.$blk(); } if (_r$45 && _r$45.$blk !== undefined) { break s; } + x[0].val = _r$45; + /* } */ case 201: + $s = 198; continue; + /* } else { */ case 197: + x[0].mode = 7; + /* } */ case 198: + /* */ if (check[0].Info.recordTypes() && !((x[0].mode === 4))) { $s = 204; continue; } + /* */ $s = 205; continue; + /* if (check[0].Info.recordTypes() && !((x[0].mode === 4))) { */ case 204: + _arg$14 = call.Fun; + _r$46 = makeSig(resTyp$1, new sliceType$3([x[0].typ])); /* */ $s = 206; case 206: if($c) { $c = false; _r$46 = _r$46.$blk(); } if (_r$46 && _r$46.$blk !== undefined) { break s; } + _arg$15 = _r$46; + $r = check[0].recordBuiltinType(_arg$14, _arg$15); /* */ $s = 207; case 207: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 205: + x[0].typ = resTyp$1; + $s = 42; continue; + /* } else if (_2 === (9)) { */ case 25: + arg0 = (0 >= argList.$length ? ($throwRuntimeError("index out of range"), undefined) : argList.$array[argList.$offset + 0]); + _r$47 = check[0].varType(arg0); /* */ $s = 208; case 208: if($c) { $c = false; _r$47 = _r$47.$blk(); } if (_r$47 && _r$47.$blk !== undefined) { break s; } + T$1 = _r$47; + if ($interfaceIsEqual(T$1, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { + $s = -1; return _; + } + min = 0; + _r$48 = coreType(T$1); /* */ $s = 209; case 209: if($c) { $c = false; _r$48 = _r$48.$blk(); } if (_r$48 && _r$48.$blk !== undefined) { break s; } + _ref$2 = _r$48; + /* */ if ($assertType(_ref$2, ptrType$27, true)[1]) { $s = 210; continue; } + /* */ if ($assertType(_ref$2, ptrType$30, true)[1] || $assertType(_ref$2, ptrType$26, true)[1]) { $s = 211; continue; } + /* */ if (_ref$2 === $ifaceNil) { $s = 212; continue; } + /* */ $s = 213; continue; + /* if ($assertType(_ref$2, ptrType$27, true)[1]) { */ case 210: + min = 2; + $s = 214; continue; + /* } else if ($assertType(_ref$2, ptrType$30, true)[1] || $assertType(_ref$2, ptrType$26, true)[1]) { */ case 211: + min = 1; + $s = 214; continue; + /* } else if (_ref$2 === $ifaceNil) { */ case 212: + $r = check[0].errorf(arg0, 92, "invalid argument: cannot make %s: no core type", new sliceType$5([arg0])); /* */ $s = 215; case 215: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return _; + /* } else { */ case 213: + $r = check[0].errorf(arg0, 92, "invalid argument: cannot make %s; type must be slice, map, or channel", new sliceType$5([arg0])); /* */ $s = 216; case 216: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return _; + /* } */ case 214: + /* */ if (nargs < min || (min + 1 >> 0) < nargs) { $s = 217; continue; } + /* */ $s = 218; continue; + /* if (nargs < min || (min + 1 >> 0) < nargs) { */ case 217: + $r = check[0].errorf(call, 126, "invalid operation: %v expects %d or %d arguments; found %d", new sliceType$5([call, new $Int(min), new $Int((min + 1 >> 0)), new $Int(nargs)])); /* */ $s = 219; case 219: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return _; + /* } */ case 218: + types = new sliceType$3([T$1]); + sizes = sliceType$18.nil; + _ref$3 = $subslice(argList, 1); + _i$1 = 0; + /* while (true) { */ case 220: + /* if (!(_i$1 < _ref$3.$length)) { break; } */ if(!(_i$1 < _ref$3.$length)) { $s = 221; continue; } + arg = ((_i$1 < 0 || _i$1 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$1]); + _r$49 = check[0].index(arg, new $Int64(-1, 4294967295)); /* */ $s = 222; case 222: if($c) { $c = false; _r$49 = _r$49.$blk(); } if (_r$49 && _r$49.$blk !== undefined) { break s; } + _tuple$4 = _r$49; + typ$4 = _tuple$4[0]; + size = _tuple$4[1]; + types = $append(types, typ$4); + if ((size.$high > 0 || (size.$high === 0 && size.$low >= 0))) { + sizes = $append(sizes, size); + } + _i$1++; + $s = 220; continue; + case 221: + /* */ if ((sizes.$length === 2) && (x$5 = (0 >= sizes.$length ? ($throwRuntimeError("index out of range"), undefined) : sizes.$array[sizes.$offset + 0]), x$6 = (1 >= sizes.$length ? ($throwRuntimeError("index out of range"), undefined) : sizes.$array[sizes.$offset + 1]), (x$5.$high > x$6.$high || (x$5.$high === x$6.$high && x$5.$low > x$6.$low)))) { $s = 223; continue; } + /* */ $s = 224; continue; + /* if ((sizes.$length === 2) && (x$5 = (0 >= sizes.$length ? ($throwRuntimeError("index out of range"), undefined) : sizes.$array[sizes.$offset + 0]), x$6 = (1 >= sizes.$length ? ($throwRuntimeError("index out of range"), undefined) : sizes.$array[sizes.$offset + 1]), (x$5.$high > x$6.$high || (x$5.$high === x$6.$high && x$5.$low > x$6.$low)))) { */ case 223: + $r = check[0].error((1 >= argList.$length ? ($throwRuntimeError("index out of range"), undefined) : argList.$array[argList.$offset + 1]), 91, "invalid argument: length and capacity swapped"); /* */ $s = 225; case 225: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 224: + x[0].mode = 7; + x[0].typ = T$1; + /* */ if (check[0].Info.recordTypes()) { $s = 226; continue; } + /* */ $s = 227; continue; + /* if (check[0].Info.recordTypes()) { */ case 226: + _arg$16 = call.Fun; + _r$50 = makeSig(x[0].typ, types); /* */ $s = 228; case 228: if($c) { $c = false; _r$50 = _r$50.$blk(); } if (_r$50 && _r$50.$blk !== undefined) { break s; } + _arg$17 = _r$50; + $r = check[0].recordBuiltinType(_arg$16, _arg$17); /* */ $s = 229; case 229: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 227: + $s = 42; continue; + /* } else if ((_2 === (10)) || (_2 === (11))) { */ case 26: + _r$51 = check[0].verifyVersionf(call.Fun, $clone(go1_21, version), bin.name, sliceType$5.nil); /* */ $s = 230; case 230: if($c) { $c = false; _r$51 = _r$51.$blk(); } if (_r$51 && _r$51.$blk !== undefined) { break s; } + _r$51; + op$1 = 40; + if (id[0] === 10) { + op$1 = 41; + } + _ref$4 = args; + _i$2 = 0; + /* while (true) { */ case 231: + /* if (!(_i$2 < _ref$4.$length)) { break; } */ if(!(_i$2 < _ref$4.$length)) { $s = 232; continue; } + i = _i$2; + a$1 = ((_i$2 < 0 || _i$2 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$2]); + if (a$1.mode === 0) { + $s = -1; return _; + } + _r$52 = allOrdered(a$1.typ); /* */ $s = 235; case 235: if($c) { $c = false; _r$52 = _r$52.$blk(); } if (_r$52 && _r$52.$blk !== undefined) { break s; } + /* */ if (!_r$52) { $s = 233; continue; } + /* */ $s = 234; continue; + /* if (!_r$52) { */ case 233: + $r = check[0].errorf(a$1, 150, "invalid argument: %s cannot be ordered", new sliceType$5([a$1])); /* */ $s = 236; case 236: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return _; + /* } */ case 234: + /* */ if (i > 0) { $s = 237; continue; } + /* */ $s = 238; continue; + /* if (i > 0) { */ case 237: + $r = check[0].matchTypes(x[0], a$1); /* */ $s = 239; case 239: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (x[0].mode === 0) { + $s = -1; return _; + } + _r$53 = Identical(x[0].typ, a$1.typ); /* */ $s = 242; case 242: if($c) { $c = false; _r$53 = _r$53.$blk(); } if (_r$53 && _r$53.$blk !== undefined) { break s; } + /* */ if (!_r$53) { $s = 240; continue; } + /* */ $s = 241; continue; + /* if (!_r$53) { */ case 240: + $r = check[0].errorf(a$1, 46, "invalid argument: mismatched types %s (previous argument) and %s (type of %s)", new sliceType$5([x[0].typ, a$1.typ, a$1.expr])); /* */ $s = 243; case 243: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return _; + /* } */ case 241: + /* */ if ((x[0].mode === 4) && (a$1.mode === 4)) { $s = 244; continue; } + /* */ $s = 245; continue; + /* if ((x[0].mode === 4) && (a$1.mode === 4)) { */ case 244: + _r$54 = constant.Compare(a$1.val, op$1, x[0].val); /* */ $s = 249; case 249: if($c) { $c = false; _r$54 = _r$54.$blk(); } if (_r$54 && _r$54.$blk !== undefined) { break s; } + /* */ if (_r$54) { $s = 247; continue; } + /* */ $s = 248; continue; + /* if (_r$54) { */ case 247: + operand.copy((x[0] === ptrType$63.nil && $throwNilPointerError(), x[0]), (a$1 === ptrType$63.nil && $throwNilPointerError(), a$1)); + /* } */ case 248: + $s = 246; continue; + /* } else { */ case 245: + x[0].mode = 7; + /* } */ case 246: + /* } */ case 238: + _i$2++; + $s = 231; continue; + case 232: + /* */ if (!((x[0].mode === 4))) { $s = 250; continue; } + /* */ $s = 251; continue; + /* if (!((x[0].mode === 4))) { */ case 250: + x[0].mode = 7; + $r = check[0].assignment(x[0], emptyInterface, "argument to " + bin.name); /* */ $s = 252; case 252: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (x[0].mode === 0) { + $s = -1; return _; + } + /* } */ case 251: + _ref$5 = args; + _i$3 = 0; + /* while (true) { */ case 253: + /* if (!(_i$3 < _ref$5.$length)) { break; } */ if(!(_i$3 < _ref$5.$length)) { $s = 254; continue; } + a$2 = ((_i$3 < 0 || _i$3 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$3]); + $r = check[0].updateExprType(a$2.expr, x[0].typ, true); /* */ $s = 255; case 255: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$3++; + $s = 253; continue; + case 254: + /* */ if (check[0].Info.recordTypes() && !((x[0].mode === 4))) { $s = 256; continue; } + /* */ $s = 257; continue; + /* if (check[0].Info.recordTypes() && !((x[0].mode === 4))) { */ case 256: + types$1 = $makeSlice(sliceType$3, nargs); + _ref$6 = types$1; + _i$4 = 0; + while (true) { + if (!(_i$4 < _ref$6.$length)) { break; } + i$1 = _i$4; + ((i$1 < 0 || i$1 >= types$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : types$1.$array[types$1.$offset + i$1] = x[0].typ); + _i$4++; + } + _arg$18 = call.Fun; + _r$55 = makeSig(x[0].typ, types$1); /* */ $s = 258; case 258: if($c) { $c = false; _r$55 = _r$55.$blk(); } if (_r$55 && _r$55.$blk !== undefined) { break s; } + _arg$19 = _r$55; + $r = check[0].recordBuiltinType(_arg$18, _arg$19); /* */ $s = 259; case 259: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 257: + $s = 42; continue; + /* } else if (_2 === (12)) { */ case 27: + _r$56 = check[0].varType((0 >= argList.$length ? ($throwRuntimeError("index out of range"), undefined) : argList.$array[argList.$offset + 0])); /* */ $s = 260; case 260: if($c) { $c = false; _r$56 = _r$56.$blk(); } if (_r$56 && _r$56.$blk !== undefined) { break s; } + T$2 = _r$56; + if ($interfaceIsEqual(T$2, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { + $s = -1; return _; + } + x[0].mode = 7; + x[0].typ = new Pointer.ptr(T$2); + /* */ if (check[0].Info.recordTypes()) { $s = 261; continue; } + /* */ $s = 262; continue; + /* if (check[0].Info.recordTypes()) { */ case 261: + _arg$20 = call.Fun; + _r$57 = makeSig(x[0].typ, new sliceType$3([T$2])); /* */ $s = 263; case 263: if($c) { $c = false; _r$57 = _r$57.$blk(); } if (_r$57 && _r$57.$blk !== undefined) { break s; } + _arg$21 = _r$57; + $r = check[0].recordBuiltinType(_arg$20, _arg$21); /* */ $s = 264; case 264: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 262: + $s = 42; continue; + /* } else if (_2 === (13)) { */ case 28: + if (!(check[0].environment.sig === ptrType$29.nil) && check[0].environment.sig.results.Len() > 0) { + p = check[0].environment.isPanic; + if (p === false) { + p = new $global.Map(); + check[0].environment.isPanic = p; + } + _key = call; (p || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$87.keyFor(_key), { k: _key, v: true }); + } + $r = check[0].assignment(x[0], emptyInterface, "argument to panic"); /* */ $s = 265; case 265: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (x[0].mode === 0) { + $s = -1; return _; + } + x[0].mode = 1; + /* */ if (check[0].Info.recordTypes()) { $s = 266; continue; } + /* */ $s = 267; continue; + /* if (check[0].Info.recordTypes()) { */ case 266: + _arg$22 = call.Fun; + _r$58 = makeSig($ifaceNil, new sliceType$3([emptyInterface])); /* */ $s = 268; case 268: if($c) { $c = false; _r$58 = _r$58.$blk(); } if (_r$58 && _r$58.$blk !== undefined) { break s; } + _arg$23 = _r$58; + $r = check[0].recordBuiltinType(_arg$22, _arg$23); /* */ $s = 269; case 269: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 267: + $s = 42; continue; + /* } else if ((_2 === (14)) || (_2 === (15))) { */ case 29: + params = sliceType$3.nil; + /* */ if (nargs > 0) { $s = 270; continue; } + /* */ $s = 271; continue; + /* if (nargs > 0) { */ case 270: + params = $makeSlice(sliceType$3, nargs); + _ref$7 = args; + _i$5 = 0; + /* while (true) { */ case 272: + /* if (!(_i$5 < _ref$7.$length)) { break; } */ if(!(_i$5 < _ref$7.$length)) { $s = 273; continue; } + i$2 = _i$5; + a$3 = ((_i$5 < 0 || _i$5 >= _ref$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$7.$array[_ref$7.$offset + _i$5]); + $r = check[0].assignment(a$3, $ifaceNil, "argument to " + ((id[0] < 0 || id[0] >= predeclaredFuncs.length) ? ($throwRuntimeError("index out of range"), undefined) : predeclaredFuncs[id[0]]).name); /* */ $s = 274; case 274: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (a$3.mode === 0) { + $s = -1; return _; + } + ((i$2 < 0 || i$2 >= params.$length) ? ($throwRuntimeError("index out of range"), undefined) : params.$array[params.$offset + i$2] = a$3.typ); + _i$5++; + $s = 272; continue; + case 273: + /* } */ case 271: + x[0].mode = 1; + /* */ if (check[0].Info.recordTypes()) { $s = 275; continue; } + /* */ $s = 276; continue; + /* if (check[0].Info.recordTypes()) { */ case 275: + _arg$24 = call.Fun; + _r$59 = makeSig($ifaceNil, params); /* */ $s = 277; case 277: if($c) { $c = false; _r$59 = _r$59.$blk(); } if (_r$59 && _r$59.$blk !== undefined) { break s; } + _arg$25 = _r$59; + $r = check[0].recordBuiltinType(_arg$24, _arg$25); /* */ $s = 278; case 278: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 276: + $s = 42; continue; + /* } else if (_2 === (17)) { */ case 30: + x[0].mode = 7; + x[0].typ = emptyInterface; + /* */ if (check[0].Info.recordTypes()) { $s = 279; continue; } + /* */ $s = 280; continue; + /* if (check[0].Info.recordTypes()) { */ case 279: + _arg$26 = call.Fun; + _r$60 = makeSig(x[0].typ, sliceType$3.nil); /* */ $s = 281; case 281: if($c) { $c = false; _r$60 = _r$60.$blk(); } if (_r$60 && _r$60.$blk !== undefined) { break s; } + _arg$27 = _r$60; + $r = check[0].recordBuiltinType(_arg$26, _arg$27); /* */ $s = 282; case 282: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 280: + $s = 42; continue; + /* } else if (_2 === (18)) { */ case 31: + _r$61 = check[0].verifyVersionf(call.Fun, $clone(go1_17, version), "unsafe.Add", sliceType$5.nil); /* */ $s = 283; case 283: if($c) { $c = false; _r$61 = _r$61.$blk(); } if (_r$61 && _r$61.$blk !== undefined) { break s; } + _r$61; + $r = check[0].assignment(x[0], (18 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 18]), "argument to unsafe.Add"); /* */ $s = 284; case 284: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (x[0].mode === 0) { + $s = -1; return _; + } + y$3 = (1 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 1]); + _r$62 = check[0].isValidIndex(y$3, 133, "length", true); /* */ $s = 287; case 287: if($c) { $c = false; _r$62 = _r$62.$blk(); } if (_r$62 && _r$62.$blk !== undefined) { break s; } + /* */ if (!_r$62) { $s = 285; continue; } + /* */ $s = 286; continue; + /* if (!_r$62) { */ case 285: + $s = -1; return _; + /* } */ case 286: + x[0].mode = 7; + x[0].typ = (18 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 18]); + /* */ if (check[0].Info.recordTypes()) { $s = 288; continue; } + /* */ $s = 289; continue; + /* if (check[0].Info.recordTypes()) { */ case 288: + _arg$28 = call.Fun; + _r$63 = makeSig(x[0].typ, new sliceType$3([x[0].typ, y$3.typ])); /* */ $s = 290; case 290: if($c) { $c = false; _r$63 = _r$63.$blk(); } if (_r$63 && _r$63.$blk !== undefined) { break s; } + _arg$29 = _r$63; + $r = check[0].recordBuiltinType(_arg$28, _arg$29); /* */ $s = 291; case 291: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 289: + $s = 42; continue; + /* } else if (_2 === (19)) { */ case 32: + $r = check[0].assignment(x[0], $ifaceNil, "argument to unsafe.Alignof"); /* */ $s = 292; case 292: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (x[0].mode === 0) { + $s = -1; return _; + } + _r$64 = hasVarSize(x[0].typ, false); /* */ $s = 296; case 296: if($c) { $c = false; _r$64 = _r$64.$blk(); } if (_r$64 && _r$64.$blk !== undefined) { break s; } + /* */ if (_r$64) { $s = 293; continue; } + /* */ $s = 294; continue; + /* if (_r$64) { */ case 293: + x[0].mode = 7; + /* */ if (check[0].Info.recordTypes()) { $s = 297; continue; } + /* */ $s = 298; continue; + /* if (check[0].Info.recordTypes()) { */ case 297: + _arg$30 = call.Fun; + _r$65 = makeSig((12 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 12]), new sliceType$3([x[0].typ])); /* */ $s = 299; case 299: if($c) { $c = false; _r$65 = _r$65.$blk(); } if (_r$65 && _r$65.$blk !== undefined) { break s; } + _arg$31 = _r$65; + $r = check[0].recordBuiltinType(_arg$30, _arg$31); /* */ $s = 300; case 300: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 298: + $s = 295; continue; + /* } else { */ case 294: + x[0].mode = 4; + _r$66 = check[0].conf.alignof(x[0].typ); /* */ $s = 301; case 301: if($c) { $c = false; _r$66 = _r$66.$blk(); } if (_r$66 && _r$66.$blk !== undefined) { break s; } + _r$67 = constant.MakeInt64(_r$66); /* */ $s = 302; case 302: if($c) { $c = false; _r$67 = _r$67.$blk(); } if (_r$67 && _r$67.$blk !== undefined) { break s; } + x[0].val = _r$67; + /* } */ case 295: + x[0].typ = (12 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 12]); + $s = 42; continue; + /* } else if (_2 === (20)) { */ case 33: + arg0$1 = (0 >= argList.$length ? ($throwRuntimeError("index out of range"), undefined) : argList.$array[argList.$offset + 0]); + _tuple$5 = $assertType(unparen(arg0$1), ptrType$37, true); + selx = _tuple$5[0]; + /* */ if (selx === ptrType$37.nil) { $s = 303; continue; } + /* */ $s = 304; continue; + /* if (selx === ptrType$37.nil) { */ case 303: + $r = check[0].errorf(arg0$1, 98, "invalid argument: %s is not a selector expression", new sliceType$5([arg0$1])); /* */ $s = 305; case 305: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$68 = check[0].use(new sliceType$10([arg0$1])); /* */ $s = 306; case 306: if($c) { $c = false; _r$68 = _r$68.$blk(); } if (_r$68 && _r$68.$blk !== undefined) { break s; } + _r$68; + $s = -1; return _; + /* } */ case 304: + $r = check[0].expr($ifaceNil, x[0], selx.X); /* */ $s = 307; case 307: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (x[0].mode === 0) { + $s = -1; return _; + } + _r$69 = derefStructPtr(x[0].typ); /* */ $s = 308; case 308: if($c) { $c = false; _r$69 = _r$69.$blk(); } if (_r$69 && _r$69.$blk !== undefined) { break s; } + base = _r$69; + sel = selx.Sel.Name; + _r$70 = LookupFieldOrMethod(base, false, check[0].pkg, sel); /* */ $s = 309; case 309: if($c) { $c = false; _r$70 = _r$70.$blk(); } if (_r$70 && _r$70.$blk !== undefined) { break s; } + _tuple$6 = _r$70; + obj = _tuple$6[0]; + index$1 = _tuple$6[1]; + indirect = _tuple$6[2]; + _ref$8 = obj; + /* */ if (_ref$8 === $ifaceNil) { $s = 310; continue; } + /* */ if ($assertType(_ref$8, ptrType$2, true)[1]) { $s = 311; continue; } + /* */ $s = 312; continue; + /* if (_ref$8 === $ifaceNil) { */ case 310: + $r = check[0].errorf(x[0], 76, "invalid argument: %s has no single field %s", new sliceType$5([base, new $String(sel)])); /* */ $s = 313; case 313: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return _; + /* } else if ($assertType(_ref$8, ptrType$2, true)[1]) { */ case 311: + $r = check[0].errorf(arg0$1, 99, "invalid argument: %s is a method value", new sliceType$5([arg0$1])); /* */ $s = 314; case 314: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return _; + /* } */ case 312: + /* */ if (indirect) { $s = 315; continue; } + /* */ $s = 316; continue; + /* if (indirect) { */ case 315: + $r = check[0].errorf(x[0], 99, "invalid argument: field %s is embedded via a pointer in %s", new sliceType$5([new $String(sel), base])); /* */ $s = 317; case 317: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return _; + /* } */ case 316: + $r = check[0].recordSelection(selx, 0, base, obj, index$1, false); /* */ $s = 318; case 318: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + mode$1 = 7; + if ((x[0].mode === 5) || indirect) { + mode$1 = 5; + } + _r$71 = obj.Type(); /* */ $s = 319; case 319: if($c) { $c = false; _r$71 = _r$71.$blk(); } if (_r$71 && _r$71.$blk !== undefined) { break s; } + $r = check[0].record(new operand.ptr(mode$1, selx, _r$71, $ifaceNil, 0)); /* */ $s = 320; case 320: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$72 = hasVarSize(base, false); /* */ $s = 324; case 324: if($c) { $c = false; _r$72 = _r$72.$blk(); } if (_r$72 && _r$72.$blk !== undefined) { break s; } + /* */ if (_r$72) { $s = 321; continue; } + /* */ $s = 322; continue; + /* if (_r$72) { */ case 321: + x[0].mode = 7; + /* */ if (check[0].Info.recordTypes()) { $s = 325; continue; } + /* */ $s = 326; continue; + /* if (check[0].Info.recordTypes()) { */ case 325: + _arg$32 = call.Fun; + _arg$33 = (12 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 12]); + _r$73 = obj.Type(); /* */ $s = 327; case 327: if($c) { $c = false; _r$73 = _r$73.$blk(); } if (_r$73 && _r$73.$blk !== undefined) { break s; } + _arg$34 = _r$73; + _r$74 = makeSig(_arg$33, new sliceType$3([_arg$34])); /* */ $s = 328; case 328: if($c) { $c = false; _r$74 = _r$74.$blk(); } if (_r$74 && _r$74.$blk !== undefined) { break s; } + _arg$35 = _r$74; + $r = check[0].recordBuiltinType(_arg$32, _arg$35); /* */ $s = 329; case 329: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 326: + $s = 323; continue; + /* } else { */ case 322: + _r$75 = check[0].conf.offsetof(base, index$1); /* */ $s = 330; case 330: if($c) { $c = false; _r$75 = _r$75.$blk(); } if (_r$75 && _r$75.$blk !== undefined) { break s; } + offs = _r$75; + /* */ if ((offs.$high < 0 || (offs.$high === 0 && offs.$low < 0))) { $s = 331; continue; } + /* */ $s = 332; continue; + /* if ((offs.$high < 0 || (offs.$high === 0 && offs.$low < 0))) { */ case 331: + $r = check[0].errorf(x[0], 149, "%s is too large", new sliceType$5([x[0]])); /* */ $s = 333; case 333: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return _; + /* } */ case 332: + x[0].mode = 4; + x[0].val = constant.MakeInt64(offs); + /* } */ case 323: + x[0].typ = (12 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 12]); + $s = 42; continue; + /* } else if (_2 === (21)) { */ case 34: + $r = check[0].assignment(x[0], $ifaceNil, "argument to unsafe.Sizeof"); /* */ $s = 334; case 334: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (x[0].mode === 0) { + $s = -1; return _; + } + _r$76 = hasVarSize(x[0].typ, false); /* */ $s = 338; case 338: if($c) { $c = false; _r$76 = _r$76.$blk(); } if (_r$76 && _r$76.$blk !== undefined) { break s; } + /* */ if (_r$76) { $s = 335; continue; } + /* */ $s = 336; continue; + /* if (_r$76) { */ case 335: + x[0].mode = 7; + /* */ if (check[0].Info.recordTypes()) { $s = 339; continue; } + /* */ $s = 340; continue; + /* if (check[0].Info.recordTypes()) { */ case 339: + _arg$36 = call.Fun; + _r$77 = makeSig((12 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 12]), new sliceType$3([x[0].typ])); /* */ $s = 341; case 341: if($c) { $c = false; _r$77 = _r$77.$blk(); } if (_r$77 && _r$77.$blk !== undefined) { break s; } + _arg$37 = _r$77; + $r = check[0].recordBuiltinType(_arg$36, _arg$37); /* */ $s = 342; case 342: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 340: + $s = 337; continue; + /* } else { */ case 336: + _r$78 = check[0].conf.sizeof(x[0].typ); /* */ $s = 343; case 343: if($c) { $c = false; _r$78 = _r$78.$blk(); } if (_r$78 && _r$78.$blk !== undefined) { break s; } + size$1 = _r$78; + /* */ if ((size$1.$high < 0 || (size$1.$high === 0 && size$1.$low < 0))) { $s = 344; continue; } + /* */ $s = 345; continue; + /* if ((size$1.$high < 0 || (size$1.$high === 0 && size$1.$low < 0))) { */ case 344: + $r = check[0].errorf(x[0], 149, "%s is too large", new sliceType$5([x[0]])); /* */ $s = 346; case 346: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return _; + /* } */ case 345: + x[0].mode = 4; + x[0].val = constant.MakeInt64(size$1); + /* } */ case 337: + x[0].typ = (12 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 12]); + $s = 42; continue; + /* } else if (_2 === (22)) { */ case 35: + _r$79 = check[0].verifyVersionf(call.Fun, $clone(go1_17, version), "unsafe.Slice", sliceType$5.nil); /* */ $s = 347; case 347: if($c) { $c = false; _r$79 = _r$79.$blk(); } if (_r$79 && _r$79.$blk !== undefined) { break s; } + _r$79; + _r$80 = under(x[0].typ); /* */ $s = 348; case 348: if($c) { $c = false; _r$80 = _r$80.$blk(); } if (_r$80 && _r$80.$blk !== undefined) { break s; } + _tuple$7 = $assertType(_r$80, ptrType$28, true); + ptr = _tuple$7[0]; + /* */ if (ptr === ptrType$28.nil) { $s = 349; continue; } + /* */ $s = 350; continue; + /* if (ptr === ptrType$28.nil) { */ case 349: + $r = check[0].errorf(x[0], 134, "invalid argument: %s is not a pointer", new sliceType$5([x[0]])); /* */ $s = 351; case 351: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return _; + /* } */ case 350: + y$4 = (1 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 1]); + _r$81 = check[0].isValidIndex(y$4, 134, "length", false); /* */ $s = 354; case 354: if($c) { $c = false; _r$81 = _r$81.$blk(); } if (_r$81 && _r$81.$blk !== undefined) { break s; } + /* */ if (!_r$81) { $s = 352; continue; } + /* */ $s = 353; continue; + /* if (!_r$81) { */ case 352: + $s = -1; return _; + /* } */ case 353: + x[0].mode = 7; + x[0].typ = NewSlice(ptr.base); + /* */ if (check[0].Info.recordTypes()) { $s = 355; continue; } + /* */ $s = 356; continue; + /* if (check[0].Info.recordTypes()) { */ case 355: + _arg$38 = call.Fun; + _r$82 = makeSig(x[0].typ, new sliceType$3([ptr, y$4.typ])); /* */ $s = 357; case 357: if($c) { $c = false; _r$82 = _r$82.$blk(); } if (_r$82 && _r$82.$blk !== undefined) { break s; } + _arg$39 = _r$82; + $r = check[0].recordBuiltinType(_arg$38, _arg$39); /* */ $s = 358; case 358: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 356: + $s = 42; continue; + /* } else if (_2 === (23)) { */ case 36: + _r$83 = check[0].verifyVersionf(call.Fun, $clone(go1_20, version), "unsafe.SliceData", sliceType$5.nil); /* */ $s = 359; case 359: if($c) { $c = false; _r$83 = _r$83.$blk(); } if (_r$83 && _r$83.$blk !== undefined) { break s; } + _r$83; + _r$84 = under(x[0].typ); /* */ $s = 360; case 360: if($c) { $c = false; _r$84 = _r$84.$blk(); } if (_r$84 && _r$84.$blk !== undefined) { break s; } + _tuple$8 = $assertType(_r$84, ptrType$27, true); + slice = _tuple$8[0]; + /* */ if (slice === ptrType$27.nil) { $s = 361; continue; } + /* */ $s = 362; continue; + /* if (slice === ptrType$27.nil) { */ case 361: + $r = check[0].errorf(x[0], 145, "invalid argument: %s is not a slice", new sliceType$5([x[0]])); /* */ $s = 363; case 363: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return _; + /* } */ case 362: + x[0].mode = 7; + x[0].typ = NewPointer(slice.elem); + /* */ if (check[0].Info.recordTypes()) { $s = 364; continue; } + /* */ $s = 365; continue; + /* if (check[0].Info.recordTypes()) { */ case 364: + _arg$40 = call.Fun; + _r$85 = makeSig(x[0].typ, new sliceType$3([slice])); /* */ $s = 366; case 366: if($c) { $c = false; _r$85 = _r$85.$blk(); } if (_r$85 && _r$85.$blk !== undefined) { break s; } + _arg$41 = _r$85; + $r = check[0].recordBuiltinType(_arg$40, _arg$41); /* */ $s = 367; case 367: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 365: + $s = 42; continue; + /* } else if (_2 === (24)) { */ case 37: + _r$86 = check[0].verifyVersionf(call.Fun, $clone(go1_20, version), "unsafe.String", sliceType$5.nil); /* */ $s = 368; case 368: if($c) { $c = false; _r$86 = _r$86.$blk(); } if (_r$86 && _r$86.$blk !== undefined) { break s; } + _r$86; + $r = check[0].assignment(x[0], NewPointer(universeByte), "argument to unsafe.String"); /* */ $s = 369; case 369: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (x[0].mode === 0) { + $s = -1; return _; + } + y$5 = (1 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 1]); + _r$87 = check[0].isValidIndex(y$5, 146, "length", false); /* */ $s = 372; case 372: if($c) { $c = false; _r$87 = _r$87.$blk(); } if (_r$87 && _r$87.$blk !== undefined) { break s; } + /* */ if (!_r$87) { $s = 370; continue; } + /* */ $s = 371; continue; + /* if (!_r$87) { */ case 370: + $s = -1; return _; + /* } */ case 371: + x[0].mode = 7; + x[0].typ = (17 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 17]); + /* */ if (check[0].Info.recordTypes()) { $s = 373; continue; } + /* */ $s = 374; continue; + /* if (check[0].Info.recordTypes()) { */ case 373: + _arg$42 = call.Fun; + _r$88 = makeSig(x[0].typ, new sliceType$3([NewPointer(universeByte), y$5.typ])); /* */ $s = 375; case 375: if($c) { $c = false; _r$88 = _r$88.$blk(); } if (_r$88 && _r$88.$blk !== undefined) { break s; } + _arg$43 = _r$88; + $r = check[0].recordBuiltinType(_arg$42, _arg$43); /* */ $s = 376; case 376: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 374: + $s = 42; continue; + /* } else if (_2 === (25)) { */ case 38: + _r$89 = check[0].verifyVersionf(call.Fun, $clone(go1_20, version), "unsafe.StringData", sliceType$5.nil); /* */ $s = 377; case 377: if($c) { $c = false; _r$89 = _r$89.$blk(); } if (_r$89 && _r$89.$blk !== undefined) { break s; } + _r$89; + $r = check[0].assignment(x[0], (17 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 17]), "argument to unsafe.StringData"); /* */ $s = 378; case 378: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (x[0].mode === 0) { + $s = -1; return _; + } + x[0].mode = 7; + x[0].typ = NewPointer(universeByte); + /* */ if (check[0].Info.recordTypes()) { $s = 379; continue; } + /* */ $s = 380; continue; + /* if (check[0].Info.recordTypes()) { */ case 379: + _arg$44 = call.Fun; + _r$90 = makeSig(x[0].typ, new sliceType$3([(17 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 17])])); /* */ $s = 381; case 381: if($c) { $c = false; _r$90 = _r$90.$blk(); } if (_r$90 && _r$90.$blk !== undefined) { break s; } + _arg$45 = _r$90; + $r = check[0].recordBuiltinType(_arg$44, _arg$45); /* */ $s = 382; case 382: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 380: + $s = 42; continue; + /* } else if (_2 === (26)) { */ case 39: + if (!((x[0].mode === 4))) { _v$2 = true; $s = 385; continue s; } + _r$91 = isBoolean(x[0].typ); /* */ $s = 386; case 386: if($c) { $c = false; _r$91 = _r$91.$blk(); } if (_r$91 && _r$91.$blk !== undefined) { break s; } + _v$2 = !_r$91; case 385: + /* */ if (_v$2) { $s = 383; continue; } + /* */ $s = 384; continue; + /* if (_v$2) { */ case 383: + $r = check[0].errorf(x[0], 1, "invalid argument: %s is not a boolean constant", new sliceType$5([x[0]])); /* */ $s = 387; case 387: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return _; + /* } */ case 384: + _r$92 = x[0].val.Kind(); /* */ $s = 390; case 390: if($c) { $c = false; _r$92 = _r$92.$blk(); } if (_r$92 && _r$92.$blk !== undefined) { break s; } + /* */ if (!((_r$92 === 1))) { $s = 388; continue; } + /* */ $s = 389; continue; + /* if (!((_r$92 === 1))) { */ case 388: + $r = check[0].errorf(x[0], 1, "internal error: value of %s should be a boolean constant", new sliceType$5([x[0]])); /* */ $s = 391; case 391: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return _; + /* } */ case 389: + _r$93 = constant.BoolVal(x[0].val); /* */ $s = 394; case 394: if($c) { $c = false; _r$93 = _r$93.$blk(); } if (_r$93 && _r$93.$blk !== undefined) { break s; } + /* */ if (!_r$93) { $s = 392; continue; } + /* */ $s = 393; continue; + /* if (!_r$93) { */ case 392: + $r = check[0].errorf(call, 1, "%v failed", new sliceType$5([call])); /* */ $s = 395; case 395: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 393: + $s = 42; continue; + /* } else if (_2 === (27)) { */ case 40: + /* */ if (nargs === 0) { $s = 396; continue; } + /* */ $s = 397; continue; + /* if (nargs === 0) { */ case 396: + _r$94 = call.Pos(); /* */ $s = 398; case 398: if($c) { $c = false; _r$94 = _r$94.$blk(); } if (_r$94 && _r$94.$blk !== undefined) { break s; } + _arg$46 = new token.Pos(_r$94); + $r = check[0].dump("%v: trace() without arguments", new sliceType$5([_arg$46])); /* */ $s = 399; case 399: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x[0].mode = 1; + /* break; */ $s = 16; continue; + /* } */ case 397: + t[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + x1 = x[0]; + _ref$9 = argList; + _i$6 = 0; + /* while (true) { */ case 400: + /* if (!(_i$6 < _ref$9.$length)) { break; } */ if(!(_i$6 < _ref$9.$length)) { $s = 401; continue; } + arg$1 = ((_i$6 < 0 || _i$6 >= _ref$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$9.$array[_ref$9.$offset + _i$6]); + _r$95 = check[0].rawExpr($ifaceNil, x1, arg$1, $ifaceNil, false); /* */ $s = 402; case 402: if($c) { $c = false; _r$95 = _r$95.$blk(); } if (_r$95 && _r$95.$blk !== undefined) { break s; } + _r$95; + _r$96 = x1.Pos(); /* */ $s = 403; case 403: if($c) { $c = false; _r$96 = _r$96.$blk(); } if (_r$96 && _r$96.$blk !== undefined) { break s; } + _arg$47 = new token.Pos(_r$96); + _arg$48 = x1; + $r = check[0].dump("%v: %s", new sliceType$5([_arg$47, _arg$48])); /* */ $s = 404; case 404: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x1 = t[0]; + _i$6++; + $s = 400; continue; + case 401: + if (x[0].mode === 0) { + $s = -1; return _; + } + $s = 42; continue; + /* } else { */ case 41: + unreachable(); + /* } */ case 42: + case 16: + $r = assert(!((x[0].mode === 0))); /* */ $s = 405; case 405: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _ = true; + $s = -1; return _; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return _; } if($curGoroutine.asleep) { var $f = {$blk: builtin, $c: true, $r, S, T, T$1, T$2, _, _1, _2, _3, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$16, _arg$17, _arg$18, _arg$19, _arg$2, _arg$20, _arg$21, _arg$22, _arg$23, _arg$24, _arg$25, _arg$26, _arg$27, _arg$28, _arg$29, _arg$3, _arg$30, _arg$31, _arg$32, _arg$33, _arg$34, _arg$35, _arg$36, _arg$37, _arg$38, _arg$39, _arg$4, _arg$40, _arg$41, _arg$42, _arg$43, _arg$44, _arg$45, _arg$46, _arg$47, _arg$48, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _key, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _r$5, _r$50, _r$51, _r$52, _r$53, _r$54, _r$55, _r$56, _r$57, _r$58, _r$59, _r$6, _r$60, _r$61, _r$62, _r$63, _r$64, _r$65, _r$66, _r$67, _r$68, _r$69, _r$7, _r$70, _r$71, _r$72, _r$73, _r$74, _r$75, _r$76, _r$77, _r$78, _r$79, _r$8, _r$80, _r$81, _r$82, _r$83, _r$84, _r$85, _r$86, _r$87, _r$88, _r$89, _r$9, _r$90, _r$91, _r$92, _r$93, _r$94, _r$95, _r$96, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _ref$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _v, _v$1, _v$2, a, a$1, a$2, a$3, arg, arg$1, arg0, arg0$1, argList, args, base, bin, call, cause, check, code, code$1, d, dst, f, f$1, i, i$1, i$2, id, index$1, indirect, key, map_, min, mode, mode$1, msg$1, nargs, obj, offs, ok, op$1, p, params, ptr, resTyp, resTyp$1, s, sel, selx, sig, sig$1, size, size$1, sizes, slice, src, src0, t, t$1, t$2, t$3, t$4, t$5, t$6, toFloat, typ$4, types, types$1, u, val, x, x$1, x$2, x$3, x$4, x$5, x$6, x1, y, y$1, y$2, y$3, y$4, y$5, $s, $deferred};return $f; } } + }; + hasVarSize = function hasVarSize$1(t, seen) { + var {$24r, _entry, _i, _key, _r, _r$1, _r$2, _ref, _ref$1, _tuple, _tuple$1, f, named, ok, seen, t, u, u$1, u$2, u$3, v, varSized, $s, $deferred, $r, $c} = $restore(this, {t, seen}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + named = [named]; + seen = [seen]; + varSized = [varSized]; + varSized[0] = false; + _tuple = $assertType(t, ptrType$10, true); + named[0] = _tuple[0]; + /* */ if (!(named[0] === ptrType$10.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(named[0] === ptrType$10.nil)) { */ case 1: + _tuple$1 = (_entry = $mapIndex(seen[0],ptrType$10.keyFor(named[0])), _entry !== undefined ? [_entry.v, true] : [false, false]); + v = _tuple$1[0]; + ok = _tuple$1[1]; + if (ok) { + varSized[0] = v; + $s = -1; return varSized[0]; + } + if (seen[0] === false) { + seen[0] = new $global.Map(); + } + _key = named[0]; (seen[0] || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$10.keyFor(_key), { k: _key, v: true }); + $deferred.push([(function(named, seen, varSized) { return function hasVarSize·func1() { + var _key$1; + _key$1 = named[0]; (seen[0] || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$10.keyFor(_key$1), { k: _key$1, v: varSized[0] }); + }; })(named, seen, varSized), []]); + /* } */ case 2: + _r = under(t); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _ref = _r; + /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$12, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$10, true)[1] || $assertType(_ref, ptrType$13, true)[1]) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if ($assertType(_ref, ptrType$11, true)[1]) { */ case 4: + u = _ref.$val; + _r$1 = hasVarSize(u.elem, seen[0]); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + varSized[0] = _r$1; + $24r = varSized[0]; + $s = 10; case 10: return $24r; + /* } else if ($assertType(_ref, ptrType$12, true)[1]) { */ case 5: + u$1 = _ref.$val; + _ref$1 = u$1.fields; + _i = 0; + /* while (true) { */ case 11: + /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 12; continue; } + f = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + _r$2 = hasVarSize(f.object.typ, seen[0]); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (_r$2) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (_r$2) { */ case 13: + varSized[0] = true; + $s = -1; return varSized[0]; + /* } */ case 14: + _i++; + $s = 11; continue; + case 12: + $s = 8; continue; + /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 6: + u$2 = _ref.$val; + varSized[0] = isTypeParam(t); + $s = -1; return varSized[0]; + /* } else if ($assertType(_ref, ptrType$10, true)[1] || $assertType(_ref, ptrType$13, true)[1]) { */ case 7: + u$3 = _ref; + unreachable(); + /* } */ case 8: + varSized[0] = false; + $s = -1; return varSized[0]; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return varSized[0]; } if($curGoroutine.asleep) { var $f = {$blk: hasVarSize$1, $c: true, $r, $24r, _entry, _i, _key, _r, _r$1, _r$2, _ref, _ref$1, _tuple, _tuple$1, f, named, ok, seen, t, u, u$1, u$2, u$3, v, varSized, $s, $deferred};return $f; } } }; - $ptrType(Interface).prototype.typeSet = function typeSet$1() { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); + $ptrType(Checker).prototype.applyTypeFunc = function applyTypeFunc(f, x, id) { + var {$24r, _1, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _tuple, check, code, f, id, ptyp, terms, tp, tpar, x, $s, $r, $c} = $restore(this, {f, x, id}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = computeInterfaceTypeSet(t.check, 0, t); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: typeSet$1, $c: true, $r, $24r, _r$1, t, $s};return $f; + f = [f]; + terms = [terms]; + check = this; + _tuple = $assertType(x.typ, ptrType$15, true); + tp = _tuple[0]; + /* */ if (!(tp === ptrType$15.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(tp === ptrType$15.nil)) { */ case 1: + terms[0] = sliceType$11.nil; + _r = tp.is((function(f, terms) { return function Checker·applyTypeFunc·func1(t) { + var {_r, r, t, $s, $r, $c} = $restore(this, {t}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (t === ptrType$5.nil) { + $s = -1; return false; + } + _r = f[0](t.typ); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + r = _r; + if (!($interfaceIsEqual(r, $ifaceNil))) { + terms[0] = $append(terms[0], NewTerm(t.tilde, r)); + $s = -1; return true; + } + $s = -1; return false; + /* */ } return; } var $f = {$blk: Checker·applyTypeFunc·func1, $c: true, $r, _r, r, t, $s};return $f; + }; })(f, terms)); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!_r) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!_r) { */ case 3: + $s = -1; return $ifaceNil; + /* } */ case 4: + code = 0; + _1 = id; + if (_1 === (16)) { + code = 93; + } else if (_1 === (7)) { + code = 89; + } else if (_1 === (4)) { + code = 87; + } else { + unreachable(); + } + $r = check.softErrorf(x, code, "%s not supported as argument to %s for go1.18 (see go.dev/issue/50937)", new sliceType$5([x, new $String(((id < 0 || id >= predeclaredFuncs.length) ? ($throwRuntimeError("index out of range"), undefined) : predeclaredFuncs[id]).name)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + tpar = NewTypeName(nopos, check.pkg, tp.obj.object.name, $ifaceNil); + _arg = tpar; + _r$1 = NewInterfaceType(sliceType.nil, new sliceType$3([NewUnion(terms[0])])); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg$1 = _r$1; + _r$2 = check.newTypeParam(_arg, _arg$1); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + ptyp = _r$2; + ptyp.index = tp.index; + $s = -1; return ptyp; + /* } */ case 2: + _r$3 = f[0](x.typ); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3; + $s = 10; case 10: return $24r; + /* */ } return; } var $f = {$blk: applyTypeFunc, $c: true, $r, $24r, _1, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _tuple, check, code, f, id, ptyp, terms, tp, tpar, x, $s};return $f; }; - NewInterfaceType = function NewInterfaceType$1(methods, embeddeds) { - var {_i, _ref, embeddeds, m, methods, sig, typ$3, $s, $r, $c} = $restore(this, {methods, embeddeds}); + makeSig = function makeSig$1(res, args) { + var {_i, _ref, args, i, list$2, param, params, res, result, $s, $r, $c} = $restore(this, {res, args}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if ((methods.$length === 0) && (embeddeds.$length === 0)) { - $s = -1; return emptyInterface; - } - typ$3 = (ptrType$5.nil).newInterface(); - _ref = methods; + list$2 = $makeSlice(sliceType$9, args.$length); + _ref = args; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } - m = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - sig = $assertType(m.object.typ, ptrType$27); - if (sig.recv === ptrType$16.nil) { - sig.recv = NewVar(m.object.pos, m.object.pkg, "", typ$3); - } + i = _i; + param = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + ((i < 0 || i >= list$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : list$2.$array[list$2.$offset + i] = NewVar(nopos, ptrType$1.nil, "", Default(param))); _i++; } - $r = sortMethods(methods); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - typ$3.methods = methods; - typ$3.embeddeds = embeddeds; - typ$3.complete = true; - $s = -1; return typ$3; - /* */ } return; } var $f = {$blk: NewInterfaceType$1, $c: true, $r, _i, _ref, embeddeds, m, methods, sig, typ$3, $s};return $f; - }; - $pkg.NewInterfaceType = NewInterfaceType; - $ptrType(Checker).prototype.newInterface = function newInterface() { - var check, typ$3; - check = this; - typ$3 = new Interface.ptr(check, sliceType.nil, sliceType$2.nil, ptrType$6.nil, false, false, ptrType$7.nil); - if (!(check === ptrType$5.nil)) { - check.needsCleanup(typ$3); - } - return typ$3; - }; - $ptrType(Interface).prototype.MarkImplicit = function MarkImplicit() { - var t; - t = this; - t.implicit = true; - }; - $ptrType(Interface).prototype.NumExplicitMethods = function NumExplicitMethods() { - var t; - t = this; - return t.methods.$length; - }; - $ptrType(Interface).prototype.ExplicitMethod = function ExplicitMethod(i) { - var i, t, x; - t = this; - return (x = t.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - }; - $ptrType(Interface).prototype.NumEmbeddeds = function NumEmbeddeds() { - var t; - t = this; - return t.embeddeds.$length; - }; - $ptrType(Interface).prototype.Embedded = function Embedded$1(i) { - var _tuple, i, t, tname, x; - t = this; - _tuple = $assertType((x = t.embeddeds, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])), ptrType$9, true); - tname = _tuple[0]; - return tname; - }; - $ptrType(Interface).prototype.EmbeddedType = function EmbeddedType(i) { - var i, t, x; - t = this; - return (x = t.embeddeds, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - }; - $ptrType(Interface).prototype.NumMethods = function NumMethods$2() { - var {$24r, _r$1, _r$2, t, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = t.typeSet(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = _r$1.NumMethods(); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: NumMethods$2, $c: true, $r, $24r, _r$1, _r$2, t, $s};return $f; - }; - $ptrType(Interface).prototype.Method = function Method$2(i) { - var {$24r, _r$1, _r$2, i, t, $s, $r, $c} = $restore(this, {i}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = t.typeSet(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = _r$1.Method(i); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: Method$2, $c: true, $r, $24r, _r$1, _r$2, i, t, $s};return $f; + params = NewTuple(list$2); + result = ptrType$16.nil; + /* */ if (!($interfaceIsEqual(res, $ifaceNil))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!($interfaceIsEqual(res, $ifaceNil))) { */ case 1: + $r = assert(!isUntyped(res)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + result = NewTuple(new sliceType$9([NewVar(nopos, ptrType$1.nil, "", res)])); + /* } */ case 2: + $s = -1; return new Signature.ptr(ptrType$49.nil, ptrType$49.nil, ptrType.nil, ptrType$17.nil, params, result, false); + /* */ } return; } var $f = {$blk: makeSig$1, $c: true, $r, _i, _ref, args, i, list$2, param, params, res, result, $s};return $f; }; - $ptrType(Interface).prototype.Empty = function Empty() { - var {$24r, _r$1, _r$2, t, $s, $r, $c} = $restore(this, {}); + arrayPtrDeref = function arrayPtrDeref$1(typ$4) { + var {_r, _tuple, _tuple$1, a, ok, p, typ$4, $s, $r, $c} = $restore(this, {typ$4}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = t.typeSet(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = _r$1.IsAll(); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: Empty, $c: true, $r, $24r, _r$1, _r$2, t, $s};return $f; + _tuple = $assertType(typ$4, ptrType$28, true); + p = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (ok) { */ case 1: + _r = under(p.base); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple$1 = $assertType(_r, ptrType$11, true); + a = _tuple$1[0]; + if (!(a === ptrType$11.nil)) { + $s = -1; return a; + } + /* } */ case 2: + $s = -1; return typ$4; + /* */ } return; } var $f = {$blk: arrayPtrDeref$1, $c: true, $r, _r, _tuple, _tuple$1, a, ok, p, typ$4, $s};return $f; }; - $ptrType(Interface).prototype.IsComparable = function IsComparable$1() { - var {$24r, _r$1, _r$2, t, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = t.typeSet(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = _r$1.IsComparable(false); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: IsComparable$1, $c: true, $r, $24r, _r$1, _r$2, t, $s};return $f; + unparen = function unparen$1(e) { + var _tuple, e, ok, p; + while (true) { + _tuple = $assertType(e, ptrType$40, true); + p = _tuple[0]; + ok = _tuple[1]; + if (!ok) { + return e; + } + e = p.X; + } }; - $ptrType(Interface).prototype.IsMethodSet = function IsMethodSet$1() { - var {$24r, _r$1, _r$2, t, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = t.typeSet(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = _r$1.IsMethodSet(); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: IsMethodSet$1, $c: true, $r, $24r, _r$1, _r$2, t, $s};return $f; + $ptrType(Basic).prototype.Kind = function Kind$1() { + var b; + b = this; + return b.kind; }; - $ptrType(Interface).prototype.IsImplicit = function IsImplicit() { - var t; - t = this; - return t.implicit; + $ptrType(Basic).prototype.Info = function Info$1() { + var b; + b = this; + return b.info; }; - $ptrType(Interface).prototype.Complete = function Complete$1() { - var {_r$1, t, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - if (!t.complete) { - t.complete = true; - } - _r$1 = t.typeSet(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - $s = -1; return t; - /* */ } return; } var $f = {$blk: Complete$1, $c: true, $r, _r$1, t, $s};return $f; + $ptrType(Basic).prototype.Name = function Name$3() { + var b; + b = this; + return b.name; }; - $ptrType(Interface).prototype.Underlying = function Underlying$9() { - var t; - t = this; - return t; + $ptrType(Basic).prototype.Underlying = function Underlying$11() { + var b; + b = this; + return b; }; - $ptrType(Interface).prototype.String = function String$30() { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); + $ptrType(Basic).prototype.String = function String$35() { + var {$24r, _r, b, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = TypeString(t, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; + b = this; + _r = TypeString(b, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$30, $c: true, $r, $24r, _r$1, t, $s};return $f; - }; - $ptrType(Interface).prototype.cleanup = function cleanup$2() { - var t; - t = this; - t.check = ptrType$5.nil; - t.embedPos = ptrType$6.nil; + /* */ } return; } var $f = {$blk: String$35, $c: true, $r, $24r, _r, b, $s};return $f; }; - $ptrType(Checker).prototype.interfaceType = function interfaceType(ityp, iface$1, def$2) { - var {_arg, _arg$1, _i, _r$1, _r$2, _r$3, _ref, _tuple, _tuple$1, addEmbedded, at$1, check, def$2, f, ftyp, iface$1, ityp, m, name, recvTyp, sig, typ$3, x, $s, $r, $c} = $restore(this, {ityp, iface$1, def$2}); + $ptrType(Checker).prototype.assignment = function assignment(x, T, context$1) { + var {T, _1, _2, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, _tuple$2, _v, cause, check, code, code$1, context$1, msg$1, newType, ok, sig, target, val, x, $s, $r, $c} = $restore(this, {x, T, context$1}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = [check]; - iface$1 = [iface$1]; - ityp = [ityp]; - check[0] = this; - addEmbedded = (function(check, iface$1, ityp) { return function Checker·interfaceType·func1(pos, typ$3) { - var pos, typ$3; - ityp[0].embeddeds = $append(ityp[0].embeddeds, typ$3); - if (ityp[0].embedPos === ptrType$6.nil) { - ityp[0].embedPos = $newDataPointer(sliceType$3.nil, ptrType$6); - } - ityp[0].embedPos.$set($append(ityp[0].embedPos.$get(), pos)); - }; })(check, iface$1, ityp); - _ref = iface$1[0].Methods.List; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - /* */ if (f.Names.$length === 0) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (f.Names.$length === 0) { */ case 3: - _r$1 = f.Type.Pos(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _arg = _r$1; - _r$2 = parseUnion(check[0], f.Type); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _arg$1 = _r$2; - $r = addEmbedded(_arg, _arg$1); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - /* continue; */ $s = 1; continue; - /* } */ case 4: - name = (x = f.Names, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); - /* */ if (name.Name === "_") { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (name.Name === "_") { */ case 8: - $r = check[0].error(name, 27, "methods must have a unique non-blank name"); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - /* continue; */ $s = 1; continue; - /* } */ case 9: - _r$3 = check[0].typ(f.Type); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - typ$3 = _r$3; - _tuple = $assertType(typ$3, ptrType$27, true); - sig = _tuple[0]; - /* */ if (sig === ptrType$27.nil) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (sig === ptrType$27.nil) { */ case 12: - /* */ if (!($interfaceIsEqual(typ$3, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { $s = 14; continue; } + cause = [cause]; + check = this; + $r = check.singleValue(x); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _1 = x.mode; + /* */ if (_1 === (0)) { $s = 3; continue; } + /* */ if ((_1 === (4)) || (_1 === (5)) || (_1 === (6)) || (_1 === (7)) || (_1 === (8)) || (_1 === (9))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_1 === (0)) { */ case 3: + $s = -1; return; + /* } else if ((_1 === (4)) || (_1 === (5)) || (_1 === (6)) || (_1 === (7)) || (_1 === (8)) || (_1 === (9))) { */ case 4: + $s = 6; continue; + /* } else { */ case 5: + $r = check.errorf(x, 23, "cannot assign %s to %s in %s", new sliceType$5([x, T, new $String(context$1)])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + $s = -1; return; + /* } */ case 6: + case 2: + /* */ if (isUntyped(x.typ)) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (isUntyped(x.typ)) { */ case 8: + target = T; + if ($interfaceIsEqual(T, $ifaceNil)) { _v = true; $s = 12; continue s; } + _r = isNonTypeParamInterface(T); /* */ $s = 13; case 13: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r; case 12: + /* */ if (_v) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (_v) { */ case 10: + /* */ if ($interfaceIsEqual(T, $ifaceNil) && $interfaceIsEqual(x.typ, (25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25]))) { $s = 14; continue; } /* */ $s = 15; continue; - /* if (!($interfaceIsEqual(typ$3, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { */ case 14: - $r = check[0].errorf(f.Type, -1, "%s is not a method signature", new sliceType$6([typ$3])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* if ($interfaceIsEqual(T, $ifaceNil) && $interfaceIsEqual(x.typ, (25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25]))) { */ case 14: + $r = check.errorf(x, 16, "use of untyped nil in %s", new sliceType$5([new $String(context$1)])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + $s = -1; return; /* } */ case 15: - _i++; - /* continue; */ $s = 1; continue; - /* } */ case 13: - /* */ if (!(sig.tparams === ptrType$48.nil)) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (!(sig.tparams === ptrType$48.nil)) { */ case 17: - at$1 = f.Type; - _tuple$1 = $assertType(f.Type, ptrType$44, true); - ftyp = _tuple$1[0]; - if (!(ftyp === ptrType$44.nil) && !(ftyp.TypeParams === ptrType$49.nil)) { - at$1 = ftyp.TypeParams; + target = Default(x.typ); + /* } */ case 11: + _r$1 = check.implicitTypeAndValue(x, target); /* */ $s = 17; case 17: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + newType = _tuple[0]; + val = _tuple[1]; + code = _tuple[2]; + /* */ if (!((code === 0))) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (!((code === 0))) { */ case 18: + _r$2 = check.sprintf("cannot use %s as %s value in %s", new sliceType$5([x, target, new $String(context$1)])); /* */ $s = 20; case 20: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + msg$1 = _r$2; + _2 = code; + if (_2 === (43)) { + msg$1 = msg$1 + (" (truncated)"); + } else if (_2 === (44)) { + msg$1 = msg$1 + (" (overflows)"); + } else { + code = 23; } - $r = check[0].error(at$1, 143, "methods cannot have type parameters"); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 18: - recvTyp = ityp[0]; - if (!(def$2 === ptrType$9.nil)) { - recvTyp = def$2; + $r = check.error(x, code, msg$1); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + $s = -1; return; + /* } */ case 19: + if (!($interfaceIsEqual(val, $ifaceNil))) { + x.val = val; + check.updateExprVal(x.expr, val); } - sig.recv = NewVar(name.Pos(), check[0].pkg, "", recvTyp); - m = NewFunc(name.Pos(), check[0].pkg, name.Name, sig); - $r = check[0].recordDef(name, m); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - ityp[0].methods = $append(ityp[0].methods, m); - _i++; - $s = 1; continue; - case 2: - ityp[0].complete = true; - if ((ityp[0].methods.$length === 0) && (ityp[0].embeddeds.$length === 0)) { - ityp[0].tset = topTypeSet; + /* */ if (!($interfaceIsEqual(newType, x.typ))) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (!($interfaceIsEqual(newType, x.typ))) { */ case 22: + x.typ = newType; + $r = check.updateExprType(x.expr, newType, false); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 23: + /* } */ case 9: + _r$3 = under(x.typ); /* */ $s = 25; case 25: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$1 = $assertType(_r$3, ptrType$29, true); + sig = _tuple$1[0]; + /* */ if (!(sig === ptrType$29.nil) && sig.TypeParams().Len() > 0) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (!(sig === ptrType$29.nil) && sig.TypeParams().Len() > 0) { */ case 26: + $r = check.errorf(x, 137, "cannot use generic function %s without instantiation in %s", new sliceType$5([x, new $String(context$1)])); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x.mode = 0; + $s = -1; return; + /* } */ case 27: + if ($interfaceIsEqual(T, $ifaceNil)) { $s = -1; return; } - $r = sortMethods(ityp[0].methods); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - check[0].later((function(check, iface$1, ityp) { return function Checker·interfaceType·func2() { - var {_r$4, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$4 = computeInterfaceTypeSet(check[0], iface$1[0].Pos(), ityp[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$4; - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·interfaceType·func2, $c: true, $r, _r$4, $s};return $f; - }; })(check, iface$1, ityp)).describef(iface$1[0], "compute type set for %s", new sliceType$6([ityp[0]])); + cause[0] = ""; + _r$4 = x.assignableTo(check, T, (cause.$ptr || (cause.$ptr = new ptrType$35(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, cause)))); /* */ $s = 29; case 29: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$2 = _r$4; + ok = _tuple$2[0]; + code$1 = _tuple$2[1]; + /* */ if (!ok) { $s = 30; continue; } + /* */ $s = 31; continue; + /* if (!ok) { */ case 30: + /* */ if (!(cause[0] === "")) { $s = 32; continue; } + /* */ $s = 33; continue; + /* if (!(cause[0] === "")) { */ case 32: + $r = check.errorf(x, code$1, "cannot use %s as %s value in %s: %s", new sliceType$5([x, T, new $String(context$1), new $String(cause[0])])); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 34; continue; + /* } else { */ case 33: + $r = check.errorf(x, code$1, "cannot use %s as %s value in %s", new sliceType$5([x, T, new $String(context$1)])); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 34: + x.mode = 0; + /* } */ case 31: $s = -1; return; - /* */ } return; } var $f = {$blk: interfaceType, $c: true, $r, _arg, _arg$1, _i, _r$1, _r$2, _r$3, _ref, _tuple, _tuple$1, addEmbedded, at$1, check, def$2, f, ftyp, iface$1, ityp, m, name, recvTyp, sig, typ$3, x, $s};return $f; + /* */ } return; } var $f = {$blk: assignment, $c: true, $r, T, _1, _2, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, _tuple$2, _v, cause, check, code, code$1, context$1, msg$1, newType, ok, sig, target, val, x, $s};return $f; }; - Instantiate = function Instantiate$1(ctxt, orig, targs, validate) { - var {$24r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _tuple, ctxt, err, i, inst, orig, t, t$1, targs, tparams, validate, $s, $r, $c} = $restore(this, {ctxt, orig, targs, validate}); + $ptrType(Checker).prototype.initConst = function initConst(lhs, x) { + var {_r, check, lhs, x, $s, $r, $c} = $restore(this, {lhs, x}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (ctxt === ptrType$51.nil) { - ctxt = NewContext(); + check = this; + if ((x.mode === 0) || $interfaceIsEqual(x.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])) || $interfaceIsEqual(lhs.object.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { + if ($interfaceIsEqual(lhs.object.typ, $ifaceNil)) { + lhs.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + } + $s = -1; return; } - /* */ if (validate) { $s = 1; continue; } + /* */ if (!((x.mode === 4))) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (validate) { */ case 1: - tparams = sliceType$9.nil; - _ref = orig; - /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if ($assertType(_ref, ptrType$9, true)[1]) { */ case 3: - t = _ref.$val; - _r$1 = t.TypeParams(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = _r$1.list(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - tparams = _r$2; - $s = 5; continue; - /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 4: - t$1 = _ref.$val; - tparams = t$1.TypeParams().list(); - /* } */ case 5: - /* */ if (!((targs.$length === tparams.$length))) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (!((targs.$length === tparams.$length))) { */ case 8: - _r$3 = fmt.Errorf("got %d type arguments but %s has %d type parameters", new sliceType$6([new $Int(targs.$length), orig, new $Int(tparams.$length)])); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r = [$ifaceNil, _r$3]; - $s = 11; case 11: return $24r; - /* } */ case 9: - _r$4 = (ptrType$5.nil).verify(0, tparams, targs, ctxt); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _tuple = _r$4; - i = _tuple[0]; - err = _tuple[1]; - if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [$ifaceNil, new ArgumentError.ptr(i, err)]; + /* if (!((x.mode === 4))) { */ case 1: + $r = check.errorf(x, 13, "%s is not constant", new sliceType$5([x])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if ($interfaceIsEqual(lhs.object.typ, $ifaceNil)) { + lhs.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); } + $s = -1; return; /* } */ case 2: - _r$5 = (ptrType$5.nil).instance(0, orig, targs, ptrType$9.nil, ctxt); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - inst = _r$5; - $s = -1; return [inst, $ifaceNil]; - /* */ } return; } var $f = {$blk: Instantiate$1, $c: true, $r, $24r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _tuple, ctxt, err, i, inst, orig, t, t$1, targs, tparams, validate, $s};return $f; - }; - $pkg.Instantiate = Instantiate; - $ptrType(Checker).prototype.instance = function instance$1(pos, orig, targs, expanding, ctxt) { - var {$24r, $24r$1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _i, _i$1, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, check, copy, ctxt, ctxt$1, ctxt$2, ctxts, expanding, hashes, i, i$1, inst, orig, orig$1, orig$2, orig$3, pos, res, sig, targs, tparams, updateContexts, $s, $r, $c} = $restore(this, {pos, orig, targs, expanding, ctxt}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - copy = [copy]; - ctxts = [ctxts]; - hashes = [hashes]; - orig = [orig]; - targs = [targs]; - res = $ifaceNil; - check = this; - ctxts[0] = sliceType$27.nil; - if (!(expanding === ptrType$9.nil)) { - ctxts[0] = $append(ctxts[0], expanding.inst.ctxt); + _r = isConstType(x.typ); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = assert(_r); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if ($interfaceIsEqual(lhs.object.typ, $ifaceNil)) { + lhs.object.typ = x.typ; } - if (!(ctxt === ptrType$51.nil)) { - ctxts[0] = $append(ctxts[0], ctxt); + $r = check.assignment(x, lhs.object.typ, "constant declaration"); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (x.mode === 0) { + $s = -1; return; } - $r = assert(ctxts[0].$length > 0); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - hashes[0] = $makeSlice(sliceType$5, ctxts[0].$length); - _ref = ctxts[0]; - _i = 0; - /* while (true) { */ case 2: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } - i = _i; - ctxt$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$1 = ctxt$1.instanceHash(orig[0], targs[0]); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - ((i < 0 || i >= hashes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : hashes[0].$array[hashes[0].$offset + i] = _r$1); - _i++; - $s = 2; continue; - case 3: - updateContexts = (function(copy, ctxts, hashes, orig, targs) { return function Checker·instance·func1(res$1) { - var {_r$2, i$1, res$1, $s, $r, $c} = $restore(this, {res$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - i$1 = ctxts[0].$length - 1 >> 0; - /* while (true) { */ case 1: - /* if (!(i$1 >= 0)) { break; } */ if(!(i$1 >= 0)) { $s = 2; continue; } - _r$2 = ((i$1 < 0 || i$1 >= ctxts[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : ctxts[0].$array[ctxts[0].$offset + i$1]).update(((i$1 < 0 || i$1 >= hashes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : hashes[0].$array[hashes[0].$offset + i$1]), orig[0], targs[0], res$1); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - res$1 = _r$2; - i$1 = i$1 - (1) >> 0; - $s = 1; continue; - case 2: - $s = -1; return res$1; - /* */ } return; } var $f = {$blk: Checker·instance·func1, $c: true, $r, _r$2, i$1, res$1, $s};return $f; - }; })(copy, ctxts, hashes, orig, targs); - _ref$1 = ctxts[0]; - _i$1 = 0; - /* while (true) { */ case 5: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 6; continue; } - i$1 = _i$1; - ctxt$2 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - _r$2 = ctxt$2.lookup(((i$1 < 0 || i$1 >= hashes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : hashes[0].$array[hashes[0].$offset + i$1]), orig[0], targs[0]); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - inst = _r$2; - /* */ if (!($interfaceIsEqual(inst, $ifaceNil))) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (!($interfaceIsEqual(inst, $ifaceNil))) { */ case 8: - _r$3 = updateContexts(inst); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - res = _r$3; - $24r = res; - $s = 11; case 11: return $24r; - /* } */ case 9: - _i$1++; - $s = 5; continue; - case 6: - _ref$2 = orig[0]; - /* */ if ($assertType(_ref$2, ptrType$9, true)[1]) { $s = 12; continue; } - /* */ if ($assertType(_ref$2, ptrType$27, true)[1]) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if ($assertType(_ref$2, ptrType$9, true)[1]) { */ case 12: - orig$1 = _ref$2.$val; - _r$4 = check.newNamedInstance(pos, orig$1, targs[0], expanding); /* */ $s = 16; case 16: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - res = _r$4; - $s = 15; continue; - /* } else if ($assertType(_ref$2, ptrType$27, true)[1]) { */ case 13: - orig$2 = _ref$2.$val; - $r = assert(expanding === ptrType$9.nil); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - tparams = orig$2.TypeParams(); - _r$5 = check.validateTArgLen(pos, tparams.Len(), targs[0].$length); /* */ $s = 20; case 20: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* */ if (!_r$5) { $s = 18; continue; } - /* */ $s = 19; continue; - /* if (!_r$5) { */ case 18: - res = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - $s = -1; return res; - /* } */ case 19: - if (tparams.Len() === 0) { - res = orig$2; - $s = -1; return res; - } - _arg = pos; - _arg$1 = orig$2; - _r$6 = makeSubstMap(tparams.list(), targs[0]); /* */ $s = 21; case 21: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _arg$2 = _r$6; - _arg$3 = ptrType$9.nil; - _arg$4 = ctxt; - _r$7 = check.subst(_arg, _arg$1, _arg$2, _arg$3, _arg$4); /* */ $s = 22; case 22: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - sig = $assertType(_r$7, ptrType$27); - if (sig === orig$2) { - copy[0] = $clone(sig, Signature); - sig = copy[0]; - } - sig.tparams = ptrType$48.nil; - res = sig; - $s = 15; continue; - /* } else { */ case 14: - orig$3 = _ref$2; - _r$8 = fmt.Sprintf("%v: cannot instantiate %v", new sliceType$6([new token.Pos(pos), orig$3])); /* */ $s = 23; case 23: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - $panic(new $String(_r$8)); - /* } */ case 15: - _r$9 = updateContexts(res); /* */ $s = 24; case 24: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - res = _r$9; - $24r$1 = res; - $s = 25; case 25: return $24r$1; - /* */ } return; } var $f = {$blk: instance$1, $c: true, $r, $24r, $24r$1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _i, _i$1, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, check, copy, ctxt, ctxt$1, ctxt$2, ctxts, expanding, hashes, i, i$1, inst, orig, orig$1, orig$2, orig$3, pos, res, sig, targs, tparams, updateContexts, $s};return $f; + lhs.val = x.val; + $s = -1; return; + /* */ } return; } var $f = {$blk: initConst, $c: true, $r, _r, check, lhs, x, $s};return $f; }; - $ptrType(Checker).prototype.validateTArgLen = function validateTArgLen(pos, ntparams, ntargs) { - var {_r$1, check, ntargs, ntparams, pos, $s, $r, $c} = $restore(this, {pos, ntparams, ntargs}); + $ptrType(Checker).prototype.initVar = function initVar(lhs, x, context$1) { + var {check, context$1, lhs, typ$4, x, $s, $r, $c} = $restore(this, {lhs, x, context$1}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: check = this; - /* */ if (!((ntargs === ntparams))) { $s = 1; continue; } + if ((x.mode === 0) || $interfaceIsEqual(x.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])) || $interfaceIsEqual(lhs.object.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { + if ($interfaceIsEqual(lhs.object.typ, $ifaceNil)) { + lhs.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + } + x.mode = 0; + $s = -1; return; + } + /* */ if ($interfaceIsEqual(lhs.object.typ, $ifaceNil)) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (!((ntargs === ntparams))) { */ case 1: - /* */ if (!(check === ptrType$5.nil)) { $s = 3; continue; } + /* if ($interfaceIsEqual(lhs.object.typ, $ifaceNil)) { */ case 1: + typ$4 = x.typ; + /* */ if (isUntyped(typ$4)) { $s = 3; continue; } /* */ $s = 4; continue; - /* if (!(check === ptrType$5.nil)) { */ case 3: - $r = check.errorf(new atPos(((pos >> 0))), 137, "got %d arguments but %d type parameters", new sliceType$6([new $Int(ntargs), new $Int(ntparams)])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return false; + /* if (isUntyped(typ$4)) { */ case 3: + /* */ if ($interfaceIsEqual(typ$4, (25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25]))) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if ($interfaceIsEqual(typ$4, (25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25]))) { */ case 5: + $r = check.errorf(x, 16, "use of untyped nil in %s", new sliceType$5([new $String(context$1)])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + lhs.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + x.mode = 0; + $s = -1; return; + /* } */ case 6: + typ$4 = Default(typ$4); /* } */ case 4: - _r$1 = fmt.Sprintf("%v: got %d arguments but %d type parameters", new sliceType$6([new token.Pos(pos), new $Int(ntargs), new $Int(ntparams)])); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $panic(new $String(_r$1)); + lhs.object.typ = typ$4; /* } */ case 2: - $s = -1; return true; - /* */ } return; } var $f = {$blk: validateTArgLen, $c: true, $r, _r$1, check, ntargs, ntparams, pos, $s};return $f; + $r = check.assignment(x, lhs.object.typ, context$1); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: initVar, $c: true, $r, check, context$1, lhs, typ$4, x, $s};return $f; }; - $ptrType(Checker).prototype.verify = function verify(pos, tparams, targs, ctxt) { - var {_i, _r$1, _r$2, _r$3, _r$4, _ref, bound, cause, check, ctxt, i, pos, smap, targs, tpar, tparams, $s, $r, $c} = $restore(this, {pos, tparams, targs, ctxt}); + $ptrType(Checker).prototype.lhsVar = function lhsVar(lhs) { + var {_1, _arg, _arg$1, _r, _r$1, _tuple, _tuple$1, _tuple$2, check, ident$1, lhs, obj, ok, op$1, sel, v, v_used, w, x, $s, $r, $c} = $restore(this, {lhs}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + op$1 = [op$1]; + x = [x]; check = this; - _r$1 = makeSubstMap(tparams, targs); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - smap = _r$1; - _ref = tparams; - _i = 0; - /* while (true) { */ case 2: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } - cause = [cause]; - i = _i; - tpar = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$2 = tpar.iface(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - _r$3 = check.subst(pos, tpar.bound, smap, ptrType$9.nil, ctxt); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - bound = _r$3; - cause[0] = ""; - _r$4 = check.implements$(((i < 0 || i >= targs.$length) ? ($throwRuntimeError("index out of range"), undefined) : targs.$array[targs.$offset + i]), bound, true, (cause.$ptr || (cause.$ptr = new ptrType$34(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, cause)))); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if (!_r$4) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (!_r$4) { */ case 6: - $s = -1; return [i, errors.New(cause[0])]; - /* } */ case 7: - _i++; - $s = 2; continue; - case 3: - $s = -1; return [-1, $ifaceNil]; - /* */ } return; } var $f = {$blk: verify, $c: true, $r, _i, _r$1, _r$2, _r$3, _r$4, _ref, bound, cause, check, ctxt, i, pos, smap, targs, tpar, tparams, $s};return $f; - }; - $ptrType(Checker).prototype.implements$ = function implements$1(V, T, constraint, cause) { - var {$24r, $24r$1, $24r$2, T, Ti, Tu, V, Vi, Vu, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _v, _v$1, alt, cause, check, checkComparability, constraint, detail, detail$1, m, p, verb, wrong, $s, $r, $c} = $restore(this, {V, T, constraint, cause}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - Ti = [Ti]; - V = [V]; - alt = [alt]; - cause = [cause]; - check = [check]; - constraint = [constraint]; - verb = [verb]; - check[0] = this; - _r$1 = under(V[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - Vu = _r$1; - _r$2 = under(T); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - Tu = _r$2; - if ($interfaceIsEqual(Vu, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])) || $interfaceIsEqual(Tu, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { - $s = -1; return true; + _tuple = $assertType(unparen(lhs), ptrType$31, true); + ident$1 = _tuple[0]; + /* */ if (!(ident$1 === ptrType$31.nil) && ident$1.Name === "_") { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(ident$1 === ptrType$31.nil) && ident$1.Name === "_") { */ case 1: + $r = check.recordDef(ident$1, $ifaceNil); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return $ifaceNil; + /* } */ case 2: + v = ptrType$17.nil; + v_used = false; + /* */ if (!(ident$1 === ptrType$31.nil)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!(ident$1 === ptrType$31.nil)) { */ case 4: + _r = check.environment.lookup(ident$1.Name); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + obj = _r; + if (!($interfaceIsEqual(obj, $ifaceNil))) { + _tuple$1 = $assertType(obj, ptrType$17, true); + w = _tuple$1[0]; + if (!(w === ptrType$17.nil) && w.object.pkg === check.pkg) { + v = w; + v_used = v.used; + } + } + /* } */ case 5: + x[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + $r = check.expr($ifaceNil, x[0], lhs); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (!(v === ptrType$17.nil)) { + v.used = v_used; } - _tuple = $assertType(Vu, ptrType$26, true); - p = _tuple[0]; - if (!(!(p === ptrType$26.nil))) { _v = false; $s = 5; continue s; } - _r$3 = under(p.base); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _v = $interfaceIsEqual(_r$3, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])); case 5: - /* */ if (_v) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (_v) { */ case 3: - $s = -1; return true; - /* } */ case 4: - verb[0] = "implement"; - if (constraint[0]) { - verb[0] = "satisfy"; + if ((x[0].mode === 0) || $interfaceIsEqual(x[0].typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { + $s = -1; return (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); } - _tuple$1 = $assertType(Tu, ptrType$13, true); - Ti[0] = _tuple$1[0]; - /* */ if (Ti[0] === ptrType$13.nil) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (Ti[0] === ptrType$13.nil) { */ case 7: - /* */ if (!(cause[0] === ptrType$34.nil)) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (!(cause[0] === ptrType$34.nil)) { */ case 9: - detail = ""; - _r$4 = isInterfacePtr(Tu); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if (_r$4) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (_r$4) { */ case 11: - _r$5 = check[0].sprintf("type %s is pointer to interface, not interface", new sliceType$6([T])); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - detail = _r$5; - $s = 13; continue; - /* } else { */ case 12: - _r$6 = check[0].sprintf("%s is not an interface", new sliceType$6([T])); /* */ $s = 16; case 16: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - detail = _r$6; - /* } */ case 13: - _r$7 = check[0].sprintf("%s does not %s %s (%s)", new sliceType$6([V[0], new $String(verb[0]), T, new $String(detail)])); /* */ $s = 17; case 17: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - cause[0].$set(_r$7); - /* } */ case 10: - $s = -1; return false; - /* } */ case 8: - _r$8 = Ti[0].Empty(); /* */ $s = 20; case 20: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - /* */ if (_r$8) { $s = 18; continue; } - /* */ $s = 19; continue; - /* if (_r$8) { */ case 18: - $s = -1; return true; - /* } */ case 19: - _tuple$2 = $assertType(Vu, ptrType$13, true); - Vi = _tuple$2[0]; - if (!(!(Vi === ptrType$13.nil))) { _v$1 = false; $s = 23; continue s; } - _r$9 = Vi.typeSet(); /* */ $s = 24; case 24: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _r$10 = _r$9.IsEmpty(); /* */ $s = 25; case 25: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _v$1 = _r$10; case 23: - /* */ if (_v$1) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if (_v$1) { */ case 21: - $s = -1; return true; - /* } */ case 22: - _r$11 = Ti[0].typeSet(); /* */ $s = 28; case 28: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _r$12 = _r$11.IsEmpty(); /* */ $s = 29; case 29: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - /* */ if (_r$12) { $s = 26; continue; } - /* */ $s = 27; continue; - /* if (_r$12) { */ case 26: - /* */ if (!(cause[0] === ptrType$34.nil)) { $s = 30; continue; } - /* */ $s = 31; continue; - /* if (!(cause[0] === ptrType$34.nil)) { */ case 30: - _r$13 = check[0].sprintf("cannot %s %s (empty type set)", new sliceType$6([new $String(verb[0]), T])); /* */ $s = 32; case 32: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - cause[0].$set(_r$13); - /* } */ case 31: - $s = -1; return false; - /* } */ case 27: - _r$14 = check[0].missingMethod(V[0], Ti[0], true); /* */ $s = 33; case 33: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - _tuple$3 = _r$14; - m = _tuple$3[0]; - wrong = _tuple$3[1]; - /* */ if (!(m === ptrType$2.nil)) { $s = 34; continue; } - /* */ $s = 35; continue; - /* if (!(m === ptrType$2.nil)) { */ case 34: - /* */ if (!(cause[0] === ptrType$34.nil)) { $s = 36; continue; } - /* */ $s = 37; continue; - /* if (!(cause[0] === ptrType$34.nil)) { */ case 36: - _arg = V[0]; - _arg$1 = new $String(verb[0]); - _arg$2 = T; - _r$15 = check[0].missingMethodCause(V[0], T, m, wrong); /* */ $s = 38; case 38: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - _arg$3 = new $String(_r$15); - _r$16 = check[0].sprintf("%s does not %s %s %s", new sliceType$6([_arg, _arg$1, _arg$2, _arg$3])); /* */ $s = 39; case 39: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - cause[0].$set(_r$16); - /* } */ case 37: - $s = -1; return false; - /* } */ case 35: - checkComparability = (function(Ti, V, alt, cause, check, constraint, verb) { return function Checker·implements·func1() { - var {_r$17, _r$18, _r$19, _r$20, _r$21, _r$22, _v$2, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$17 = Ti[0].IsComparable(); /* */ $s = 3; case 3: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - /* */ if (!_r$17) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!_r$17) { */ case 1: - $s = -1; return true; - /* } */ case 2: - _r$18 = comparable(V[0], false, false, $throwNilPointerError); /* */ $s = 6; case 6: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - /* */ if (_r$18) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_r$18) { */ case 4: - $s = -1; return true; - /* } */ case 5: - /* */ if (!(check[0] === ptrType$5.nil) && check[0].conf.oldComparableSemantics) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (!(check[0] === ptrType$5.nil) && check[0].conf.oldComparableSemantics) { */ case 7: - /* */ if (!(cause[0] === ptrType$34.nil)) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (!(cause[0] === ptrType$34.nil)) { */ case 9: - _r$19 = check[0].sprintf("%s does not %s comparable", new sliceType$6([V[0], new $String(verb[0])])); /* */ $s = 11; case 11: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - cause[0].$set(_r$19); - /* } */ case 10: - $s = -1; return false; - /* } */ case 8: - if (!(constraint[0])) { _v$2 = false; $s = 14; continue s; } - _r$20 = comparable(V[0], true, false, $throwNilPointerError); /* */ $s = 15; case 15: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - _v$2 = _r$20; case 14: - /* */ if (_v$2) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (_v$2) { */ case 12: - if (check[0] === ptrType$5.nil || check[0].allowVersion(check[0].pkg, 1, 20)) { - $s = -1; return true; - } - /* */ if (!(cause[0] === ptrType$34.nil)) { $s = 16; continue; } + _1 = x[0].mode; + /* */ if (_1 === (0)) { $s = 9; continue; } + /* */ if ((_1 === (5)) || (_1 === (6))) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (_1 === (0)) { */ case 9: + $s = -1; return (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + /* } else if ((_1 === (5)) || (_1 === (6))) { */ case 10: + $s = 12; continue; + /* } else { */ case 11: + _tuple$2 = $assertType(x[0].expr, ptrType$37, true); + sel = _tuple$2[0]; + ok = _tuple$2[1]; + /* */ if (ok) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (ok) { */ case 13: + op$1[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + $r = check.expr($ifaceNil, op$1[0], sel.X); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (op$1[0].mode === 6) { $s = 16; continue; } /* */ $s = 17; continue; - /* if (!(cause[0] === ptrType$34.nil)) { */ case 16: - _r$21 = check[0].sprintf("%s to %s comparable requires go1.20 or later", new sliceType$6([V[0], new $String(verb[0])])); /* */ $s = 18; case 18: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } - cause[0].$set(_r$21); + /* if (op$1[0].mode === 6) { */ case 16: + _arg = x[0]; + _r$1 = ExprString(x[0].expr); /* */ $s = 18; case 18: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg$1 = new $String(_r$1); + $r = check.errorf(_arg, 24, "cannot assign to struct field %s in map", new sliceType$5([_arg$1])); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); /* } */ case 17: - $s = -1; return false; - /* } */ case 13: - /* */ if (!(cause[0] === ptrType$34.nil)) { $s = 19; continue; } - /* */ $s = 20; continue; - /* if (!(cause[0] === ptrType$34.nil)) { */ case 19: - _r$22 = check[0].sprintf("%s does not %s comparable", new sliceType$6([V[0], new $String(verb[0])])); /* */ $s = 21; case 21: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - cause[0].$set(_r$22); - /* } */ case 20: - $s = -1; return false; - /* */ } return; } var $f = {$blk: Checker·implements·func1, $c: true, $r, _r$17, _r$18, _r$19, _r$20, _r$21, _r$22, _v$2, $s};return $f; - }; })(Ti, V, alt, cause, check, constraint, verb); - _r$17 = Ti[0].typeSet(); /* */ $s = 42; case 42: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - _r$18 = _r$17.hasTerms(); /* */ $s = 43; case 43: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - /* */ if (!_r$18) { $s = 40; continue; } - /* */ $s = 41; continue; - /* if (!_r$18) { */ case 40: - _r$19 = checkComparability(); /* */ $s = 44; case 44: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - $24r = _r$19; - $s = 45; case 45: return $24r; - /* } */ case 41: - /* */ if (!(Vi === ptrType$13.nil)) { $s = 46; continue; } - /* */ $s = 47; continue; - /* if (!(Vi === ptrType$13.nil)) { */ case 46: - _r$20 = Vi.typeSet(); /* */ $s = 50; case 50: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - _r$21 = Ti[0].typeSet(); /* */ $s = 51; case 51: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } - _r$22 = _r$20.subsetOf(_r$21); /* */ $s = 52; case 52: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - /* */ if (!_r$22) { $s = 48; continue; } - /* */ $s = 49; continue; - /* if (!_r$22) { */ case 48: - /* */ if (!(cause[0] === ptrType$34.nil)) { $s = 53; continue; } - /* */ $s = 54; continue; - /* if (!(cause[0] === ptrType$34.nil)) { */ case 53: - _r$23 = check[0].sprintf("%s does not %s %s", new sliceType$6([V[0], new $String(verb[0]), T])); /* */ $s = 55; case 55: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - cause[0].$set(_r$23); - /* } */ case 54: - $s = -1; return false; - /* } */ case 49: - _r$24 = checkComparability(); /* */ $s = 56; case 56: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - $24r$1 = _r$24; - $s = 57; case 57: return $24r$1; - /* } */ case 47: - alt[0] = $ifaceNil; - _r$25 = Ti[0].typeSet(); /* */ $s = 60; case 60: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - _r$26 = _r$25.is((function(Ti, V, alt, cause, check, constraint, verb) { return function Checker·implements·func2(t) { - var {_arg$4, _arg$5, _r$26, _r$27, _r$28, _r$29, _v$2, t, tt, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$26 = t.includes(V[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - /* */ if (!_r$26) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!_r$26) { */ case 1: - if (!($interfaceIsEqual(alt[0], $ifaceNil) && !t.tilde)) { _v$2 = false; $s = 6; continue s; } - _arg$4 = t.typ; - _r$27 = under(t.typ); /* */ $s = 7; case 7: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - _arg$5 = _r$27; - _r$28 = Identical(_arg$4, _arg$5); /* */ $s = 8; case 8: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - _v$2 = _r$28; case 6: - /* */ if (_v$2) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_v$2) { */ case 4: - tt = $clone(t, term); - tt.tilde = true; - _r$29 = tt.includes(V[0]); /* */ $s = 11; case 11: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } - /* */ if (_r$29) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (_r$29) { */ case 9: - alt[0] = t.typ; - /* } */ case 10: - /* } */ case 5: - $s = -1; return true; - /* } */ case 2: - $s = -1; return false; - /* */ } return; } var $f = {$blk: Checker·implements·func2, $c: true, $r, _arg$4, _arg$5, _r$26, _r$27, _r$28, _r$29, _v$2, t, tt, $s};return $f; - }; })(Ti, V, alt, cause, check, constraint, verb)); /* */ $s = 61; case 61: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - /* */ if (_r$26) { $s = 58; continue; } - /* */ $s = 59; continue; - /* if (_r$26) { */ case 58: - /* */ if (!(cause[0] === ptrType$34.nil)) { $s = 62; continue; } - /* */ $s = 63; continue; - /* if (!(cause[0] === ptrType$34.nil)) { */ case 62: - detail$1 = ""; - /* */ if (!($interfaceIsEqual(alt[0], $ifaceNil))) { $s = 65; continue; } - _r$27 = mentions(Ti[0], V[0]); /* */ $s = 69; case 69: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - /* */ if (_r$27) { $s = 66; continue; } - /* */ $s = 67; continue; - /* if (!($interfaceIsEqual(alt[0], $ifaceNil))) { */ case 65: - _r$28 = check[0].sprintf("possibly missing ~ for %s in %s", new sliceType$6([alt[0], T])); /* */ $s = 70; case 70: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - detail$1 = _r$28; - $s = 68; continue; - /* } else if (_r$27) { */ case 66: - _r$29 = check[0].sprintf("%s mentions %s, but %s is not in the type set of %s", new sliceType$6([T, V[0], V[0], T])); /* */ $s = 71; case 71: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } - detail$1 = _r$29; - $s = 68; continue; - /* } else { */ case 67: - _arg$4 = V[0]; - _r$30 = Ti[0].typeSet(); /* */ $s = 72; case 72: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } - _arg$5 = _r$30.terms; - _r$31 = check[0].sprintf("%s missing in %s", new sliceType$6([_arg$4, _arg$5])); /* */ $s = 73; case 73: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } - detail$1 = _r$31; - /* } */ case 68: - case 64: - _r$32 = check[0].sprintf("%s does not %s %s (%s)", new sliceType$6([V[0], new $String(verb[0]), T, new $String(detail$1)])); /* */ $s = 74; case 74: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } - cause[0].$set(_r$32); - /* } */ case 63: - $s = -1; return false; - /* } */ case 59: - _r$33 = checkComparability(); /* */ $s = 75; case 75: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } - $24r$2 = _r$33; - $s = 76; case 76: return $24r$2; - /* */ } return; } var $f = {$blk: implements$1, $c: true, $r, $24r, $24r$1, $24r$2, T, Ti, Tu, V, Vi, Vu, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _v, _v$1, alt, cause, check, checkComparability, constraint, detail, detail$1, m, p, verb, wrong, $s};return $f; + /* } */ case 14: + $r = check.errorf(x[0], 18, "cannot assign to %s (neither addressable nor a map index expression)", new sliceType$5([x[0].expr])); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + /* } */ case 12: + case 8: + $s = -1; return x[0].typ; + /* */ } return; } var $f = {$blk: lhsVar, $c: true, $r, _1, _arg, _arg$1, _r, _r$1, _tuple, _tuple$1, _tuple$2, check, ident$1, lhs, obj, ok, op$1, sel, v, v_used, w, x, $s};return $f; }; - mentions = function mentions$1(T, typ$3) { - var {T, T$1, T$2, T$3, _i, _i$1, _r$1, _r$2, _r$3, _ref, _ref$1, _ref$2, e, t, typ$3, $s, $r, $c} = $restore(this, {T, typ$3}); + $ptrType(Checker).prototype.assignVar = function assignVar(lhs, rhs, x) { + var {T, _r, _r$1, check, context$1, lhs, rhs, x, $s, $r, $c} = $restore(this, {lhs, rhs, x}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ref = T; - /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$12, true)[1]) { $s = 2; continue; } + check = this; + _r = check.lhsVar(lhs); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + T = _r; + /* */ if ($interfaceIsEqual(T, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { $s = 2; continue; } /* */ $s = 3; continue; - /* if ($assertType(_ref, ptrType$13, true)[1]) { */ case 1: - T$1 = _ref.$val; - _ref$1 = T$1.embeddeds; - _i = 0; - /* while (true) { */ case 5: - /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 6; continue; } - e = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); - _r$1 = mentions(e, typ$3); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 7; continue; } + /* if ($interfaceIsEqual(T, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { */ case 2: + /* */ if (!(x === ptrType$63.nil)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!(x === ptrType$63.nil)) { */ case 4: + x.mode = 0; + $s = 6; continue; + /* } else { */ case 5: + _r$1 = check.use(new sliceType$10([rhs])); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + /* } */ case 6: + $s = -1; return; + /* } */ case 3: + /* */ if (x === ptrType$63.nil) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (x === ptrType$63.nil) { */ case 8: + x = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + $r = check.expr(T, x, rhs); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 9: + context$1 = "assignment"; + if ($interfaceIsEqual(T, $ifaceNil)) { + context$1 = "assignment to _ identifier"; + } + $r = check.assignment(x, T, context$1); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: assignVar, $c: true, $r, T, _r, _r$1, check, context$1, lhs, rhs, x, $s};return $f; + }; + operandTypes = function operandTypes$1(list$2) { + var _i, _ref, list$2, res, x; + res = sliceType$3.nil; + _ref = list$2; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + res = $append(res, x.typ); + _i++; + } + res = res; + return res; + }; + varTypes = function varTypes$1(list$2) { + var _i, _ref, list$2, res, x; + res = sliceType$3.nil; + _ref = list$2; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + res = $append(res, x.object.typ); + _i++; + } + res = res; + return res; + }; + $ptrType(Checker).prototype.typesSummary = function typesSummary(list$2, variadic) { + var {_i, _r, _r$1, _r$2, _ref, check, i, list$2, res, s, t, variadic, $s, $r, $c} = $restore(this, {list$2, variadic}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = this; + res = sliceType$13.nil; + _ref = list$2; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + s = ""; + /* */ if ($interfaceIsEqual(t, $ifaceNil)) { $s = 4; continue; } + /* */ if ($interfaceIsEqual(t, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { $s = 5; continue; } + /* */ if (isUntyped(t)) { $s = 6; continue; } + /* */ if (variadic && (i === (list$2.$length - 1 >> 0))) { $s = 7; continue; } /* */ $s = 8; continue; - /* if (_r$1) { */ case 7: - $s = -1; return true; + /* if ($interfaceIsEqual(t, $ifaceNil)) { */ case 4: + s = "unknown type"; + $s = 8; continue; + /* } else if ($interfaceIsEqual(t, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { */ case 5: + s = "unknown type"; + $s = 8; continue; + /* } else if (isUntyped(t)) { */ case 6: + _r = isNumeric(t); /* */ $s = 12; case 12: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (_r) { */ case 9: + s = "number"; + $s = 11; continue; + /* } else { */ case 10: + s = strings.Replace($assertType(t, ptrType$4).name, "untyped ", "", -1); + /* } */ case 11: + $s = 8; continue; + /* } else if (variadic && (i === (list$2.$length - 1 >> 0))) { */ case 7: + _r$1 = check.sprintf("...%s", new sliceType$5([$assertType(t, ptrType$27).elem])); /* */ $s = 13; case 13: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + s = _r$1; /* } */ case 8: - _i++; - $s = 5; continue; - case 6: - $s = 4; continue; - /* } else if ($assertType(_ref, ptrType$12, true)[1]) { */ case 2: - T$2 = _ref.$val; - _ref$2 = T$2.terms; - _i$1 = 0; - /* while (true) { */ case 10: - /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 11; continue; } - t = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); - _r$2 = mentions(t.typ, typ$3); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (_r$2) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (_r$2) { */ case 12: - $s = -1; return true; - /* } */ case 13: - _i$1++; - $s = 10; continue; - case 11: - $s = 4; continue; - /* } else { */ case 3: - T$3 = _ref; - _r$3 = Identical(T$3, typ$3); /* */ $s = 17; case 17: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (_r$3) { $s = 15; continue; } - /* */ $s = 16; continue; - /* if (_r$3) { */ case 15: - $s = -1; return true; - /* } */ case 16: - /* } */ case 4: - $s = -1; return false; - /* */ } return; } var $f = {$blk: mentions$1, $c: true, $r, T, T$1, T$2, T$3, _i, _i$1, _r$1, _r$2, _r$3, _ref, _ref$1, _ref$2, e, t, typ$3, $s};return $f; + case 3: + /* */ if (s === "") { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (s === "") { */ case 14: + _r$2 = check.sprintf("%s", new sliceType$5([t])); /* */ $s = 16; case 16: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + s = _r$2; + /* } */ case 15: + res = $append(res, s); + _i++; + $s = 1; continue; + case 2: + $s = -1; return "(" + strings.Join(res, ", ") + ")"; + /* */ } return; } var $f = {$blk: typesSummary, $c: true, $r, _i, _r, _r$1, _r$2, _ref, check, i, list$2, res, s, t, variadic, $s};return $f; }; - $ptrType(Checker).prototype.initOrder = function initOrder() { - var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _key, _key$1, _key$2, _key$3, _key$4, _keys, _keys$1, _keys$2, _keys$3, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _size, _size$1, _size$2, _size$3, _tuple, _tuple$1, check, cycle, d, dep, emitted, info, infoLhs, init$5, init$6, n, n$1, obj, obj$1, p, p$1, pq, v, $s, $r, $c} = $restore(this, {}); + measure = function measure$1(x, unit) { + var {$24r, _r, unit, x, $s, $r, $c} = $restore(this, {x, unit}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (!((x === 1))) { + unit = unit + ("s"); + } + _r = fmt.Sprintf("%d %s", new sliceType$5([new $Int(x), new $String(unit)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: measure$1, $c: true, $r, $24r, _r, unit, x, $s};return $f; + }; + $ptrType(Checker).prototype.assignError = function assignError(rhs, l, r) { + var {_r, _r$1, _tuple, call, check, l, r, rhs, rhs0, vals, vars, $s, $r, $c} = $restore(this, {rhs, l, r}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - pq = [pq]; check = this; - check.Info.InitOrder = $subslice(check.Info.InitOrder, 0, 0); - _r$1 = dependencyGraph(check.objMap); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - pq[0] = ($convertSliceType(_r$1, nodeQueue)); - $r = heap.Init((pq.$ptr || (pq.$ptr = new ptrType$94(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, pq)))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (false) { $s = 3; continue; } + _r = measure(l, "variable"); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + vars = _r; + _r$1 = measure(r, "value"); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + vals = _r$1; + rhs0 = (0 >= rhs.$length ? ($throwRuntimeError("index out of range"), undefined) : rhs.$array[rhs.$offset + 0]); + /* */ if (rhs.$length === 1) { $s = 3; continue; } /* */ $s = 4; continue; - /* if (false) { */ case 3: - _r$2 = fmt.Printf("Computing initialization order for %s\n\n", new sliceType$6([check.pkg])); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - _r$3 = fmt.Println(new sliceType$6([new $String("Object dependency graph:")])); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$3; - _ref = check.objMap; - _i = 0; - _keys = _ref ? _ref.keys() : undefined; - _size = _ref ? _ref.size : 0; - /* while (true) { */ case 7: - /* if (!(_i < _size)) { break; } */ if(!(_i < _size)) { $s = 8; continue; } - _key = _keys.next().value; - _entry = _ref.get(_key); - if (_entry === undefined) { - _i++; - /* continue; */ $s = 7; continue; - } - obj = _entry.k; - d = _entry.v; - _tuple = $assertType(obj, dependency, true); - obj$1 = _tuple[0]; - /* */ if (!($interfaceIsEqual(obj$1, $ifaceNil))) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (!($interfaceIsEqual(obj$1, $ifaceNil))) { */ case 9: - /* */ if ((d.deps ? d.deps.size : 0) > 0) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if ((d.deps ? d.deps.size : 0) > 0) { */ case 11: - _r$4 = obj$1.Name(); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _arg = new $String(_r$4); - _r$5 = fmt.Printf("\t%s depends on\n", new sliceType$6([_arg])); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$5; - _ref$1 = d.deps; - _i$1 = 0; - _keys$1 = _ref$1 ? _ref$1.keys() : undefined; - _size$1 = _ref$1 ? _ref$1.size : 0; - /* while (true) { */ case 16: - /* if (!(_i$1 < _size$1)) { break; } */ if(!(_i$1 < _size$1)) { $s = 17; continue; } - _key$1 = _keys$1.next().value; - _entry$1 = _ref$1.get(_key$1); - if (_entry$1 === undefined) { - _i$1++; - /* continue; */ $s = 16; continue; - } - dep = _entry$1.k; - _r$6 = dep.Name(); /* */ $s = 18; case 18: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _arg$1 = new $String(_r$6); - _r$7 = fmt.Printf("\t\t%s\n", new sliceType$6([_arg$1])); /* */ $s = 19; case 19: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _r$7; - _i$1++; - $s = 16; continue; - case 17: - $s = 13; continue; - /* } else { */ case 12: - _r$8 = obj$1.Name(); /* */ $s = 20; case 20: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _arg$2 = new $String(_r$8); - _r$9 = fmt.Printf("\t%s has no dependencies\n", new sliceType$6([_arg$2])); /* */ $s = 21; case 21: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _r$9; - /* } */ case 13: - /* } */ case 10: - _i++; - $s = 7; continue; - case 8: - _r$10 = fmt.Println(sliceType$6.nil); /* */ $s = 22; case 22: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _r$10; - _r$11 = fmt.Println(new sliceType$6([new $String("Transposed object dependency graph (functions eliminated):")])); /* */ $s = 23; case 23: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _r$11; - _ref$2 = pq[0]; - _i$2 = 0; - /* while (true) { */ case 24: - /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 25; continue; } - n = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); - _r$12 = n.obj.Name(); /* */ $s = 26; case 26: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _arg$3 = new $String(_r$12); - _arg$4 = new $Int(n.ndeps); - _r$13 = fmt.Printf("\t%s depends on %d nodes\n", new sliceType$6([_arg$3, _arg$4])); /* */ $s = 27; case 27: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - _r$13; - _ref$3 = n.pred; - _i$3 = 0; - _keys$2 = _ref$3 ? _ref$3.keys() : undefined; - _size$2 = _ref$3 ? _ref$3.size : 0; - /* while (true) { */ case 28: - /* if (!(_i$3 < _size$2)) { break; } */ if(!(_i$3 < _size$2)) { $s = 29; continue; } - _key$2 = _keys$2.next().value; - _entry$2 = _ref$3.get(_key$2); - if (_entry$2 === undefined) { - _i$3++; - /* continue; */ $s = 28; continue; - } - p = _entry$2.k; - _r$14 = p.obj.Name(); /* */ $s = 30; case 30: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - _arg$5 = new $String(_r$14); - _r$15 = fmt.Printf("\t\t%s is dependent\n", new sliceType$6([_arg$5])); /* */ $s = 31; case 31: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - _r$15; - _i$3++; - $s = 28; continue; - case 29: - _i$2++; - $s = 24; continue; - case 25: - _r$16 = fmt.Println(sliceType$6.nil); /* */ $s = 32; case 32: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - _r$16; - _r$17 = fmt.Println(new sliceType$6([new $String("Processing nodes:")])); /* */ $s = 33; case 33: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - _r$17; + /* if (rhs.$length === 1) { */ case 3: + _tuple = $assertType(unparen(rhs0), ptrType$87, true); + call = _tuple[0]; + /* */ if (!(call === ptrType$87.nil)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!(call === ptrType$87.nil)) { */ case 5: + $r = check.errorf(rhs0, 17, "assignment mismatch: %s but %s returns %s", new sliceType$5([new $String(vars), call.Fun, new $String(vals)])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 6: /* } */ case 4: - emitted = new $global.Map(); - /* while (true) { */ case 34: - /* if (!(pq[0].$length > 0)) { break; } */ if(!(pq[0].$length > 0)) { $s = 35; continue; } - _r$18 = heap.Pop((pq.$ptr || (pq.$ptr = new ptrType$94(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, pq)))); /* */ $s = 36; case 36: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - n$1 = $assertType(_r$18, ptrType$95); - /* */ if (false) { $s = 37; continue; } - /* */ $s = 38; continue; - /* if (false) { */ case 37: - _r$19 = n$1.obj.Name(); /* */ $s = 39; case 39: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - _arg$6 = new $String(_r$19); - _r$20 = n$1.obj.order(); /* */ $s = 40; case 40: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - _arg$7 = new $Uint32(_r$20); - _arg$8 = new $Int(n$1.ndeps); - _r$21 = fmt.Printf("\t%s (src pos %d) depends on %d nodes now\n", new sliceType$6([_arg$6, _arg$7, _arg$8])); /* */ $s = 41; case 41: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } - _r$21; - /* } */ case 38: - /* */ if (n$1.ndeps > 0) { $s = 42; continue; } - /* */ $s = 43; continue; - /* if (n$1.ndeps > 0) { */ case 42: - cycle = findPath(check.objMap, n$1.obj, n$1.obj, new $global.Map()); - /* */ if (!(cycle === sliceType$8.nil)) { $s = 44; continue; } - /* */ $s = 45; continue; - /* if (!(cycle === sliceType$8.nil)) { */ case 44: - $r = check.reportCycle(cycle); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 45: - /* } */ case 43: - _ref$4 = n$1.pred; - _i$4 = 0; - _keys$3 = _ref$4 ? _ref$4.keys() : undefined; - _size$3 = _ref$4 ? _ref$4.size : 0; - /* while (true) { */ case 47: - /* if (!(_i$4 < _size$3)) { break; } */ if(!(_i$4 < _size$3)) { $s = 48; continue; } - _key$3 = _keys$3.next().value; - _entry$3 = _ref$4.get(_key$3); - if (_entry$3 === undefined) { - _i$4++; - /* continue; */ $s = 47; continue; - } - p$1 = _entry$3.k; - p$1.ndeps = p$1.ndeps - (1) >> 0; - $r = heap.Fix((pq.$ptr || (pq.$ptr = new ptrType$94(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, pq))), p$1.index); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$4++; - $s = 47; continue; - case 48: - _tuple$1 = $assertType(n$1.obj, ptrType$16, true); - v = _tuple$1[0]; - info = (_entry$4 = $mapIndex(check.objMap,Object.keyFor(v)), _entry$4 !== undefined ? _entry$4.v : ptrType$58.nil); - if (v === ptrType$16.nil || !info.hasInitializer()) { - /* continue; */ $s = 34; continue; - } - if ((_entry$5 = $mapIndex(emitted,ptrType$58.keyFor(info)), _entry$5 !== undefined ? _entry$5.v : false)) { - /* continue; */ $s = 34; continue; - } - _key$4 = info; (emitted || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$58.keyFor(_key$4), { k: _key$4, v: true }); - infoLhs = info.lhs; - if (infoLhs === sliceType$10.nil) { - infoLhs = new sliceType$10([v]); - } - init$5 = new Initializer.ptr(infoLhs, info.init); - check.Info.InitOrder = $append(check.Info.InitOrder, init$5); - $s = 34; continue; - case 35: - /* */ if (false) { $s = 50; continue; } - /* */ $s = 51; continue; - /* if (false) { */ case 50: - _r$22 = fmt.Println(sliceType$6.nil); /* */ $s = 52; case 52: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _r$22; - _r$23 = fmt.Println(new sliceType$6([new $String("Initialization order:")])); /* */ $s = 53; case 53: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _r$23; - _ref$5 = check.Info.InitOrder; - _i$5 = 0; - /* while (true) { */ case 54: - /* if (!(_i$5 < _ref$5.$length)) { break; } */ if(!(_i$5 < _ref$5.$length)) { $s = 55; continue; } - init$6 = ((_i$5 < 0 || _i$5 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$5]); - _r$24 = fmt.Printf("\t%s\n", new sliceType$6([init$6])); /* */ $s = 56; case 56: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - _r$24; - _i$5++; - $s = 54; continue; - case 55: - _r$25 = fmt.Println(sliceType$6.nil); /* */ $s = 57; case 57: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - _r$25; - /* } */ case 51: + $r = check.errorf(rhs0, 17, "assignment mismatch: %s but %s", new sliceType$5([new $String(vars), new $String(vals)])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } var $f = {$blk: initOrder, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _key, _key$1, _key$2, _key$3, _key$4, _keys, _keys$1, _keys$2, _keys$3, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _size, _size$1, _size$2, _size$3, _tuple, _tuple$1, check, cycle, d, dep, emitted, info, infoLhs, init$5, init$6, n, n$1, obj, obj$1, p, p$1, pq, v, $s};return $f; + /* */ } return; } var $f = {$blk: assignError, $c: true, $r, _r, _r$1, _tuple, call, check, l, r, rhs, rhs0, vals, vars, $s};return $f; }; - findPath = function findPath$1(objMap, from, to, seen) { - var P, _entry, _entry$1, _entry$2, _i, _key, _key$1, _keys, _ref, _size, d, from, objMap, seen, to; - if ((_entry = $mapIndex(seen,Object.keyFor(from)), _entry !== undefined ? _entry.v : false)) { - return sliceType$8.nil; + $ptrType(Checker).prototype.returnError = function returnError(at$1, lhs, rhs) { + var {_arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$2, _tmp, _tmp$1, at$1, check, err, l, lhs, qualifier$1, r, rhs, x, $s, $r, $c} = $restore(this, {at$1, lhs, rhs}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + err = [err]; + check = this; + _tmp = lhs.$length; + _tmp$1 = rhs.$length; + l = _tmp; + r = _tmp$1; + qualifier$1 = "not enough"; + if (r > l) { + at$1 = ((l < 0 || l >= rhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : rhs.$array[rhs.$offset + l]); + qualifier$1 = "too many"; + } else if (r > 0) { + at$1 = (x = r - 1 >> 0, ((x < 0 || x >= rhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : rhs.$array[rhs.$offset + x])); + } + err[0] = new error_.ptr(sliceType$31.nil, 0, false); + err[0].code = 103; + _r = at$1.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = err[0].errorf(_r, "%s return values", new sliceType$5([new $String(qualifier$1)])); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _arg = nopos; + _r$1 = check.typesSummary(operandTypes(rhs), false); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg$1 = new $String(_r$1); + $r = err[0].errorf(_arg, "have %s", new sliceType$5([_arg$1])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _arg$2 = nopos; + _r$2 = check.typesSummary(varTypes(lhs), false); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg$3 = new $String(_r$2); + $r = err[0].errorf(_arg$2, "want %s", new sliceType$5([_arg$3])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.report(err[0]); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: returnError, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$2, _tmp, _tmp$1, at$1, check, err, l, lhs, qualifier$1, r, rhs, x, $s};return $f; + }; + $ptrType(Checker).prototype.initVars = function initVars(lhs, orig_rhs, returnStmt) { + var {_i, _i$1, _i$2, _i$3, _r, _r$1, _r$2, _ref, _ref$1, _ref$2, _ref$3, _tmp, _tmp$1, _tuple, _tuple$1, check, commaOk, context$1, i, i$1, isCall, l, lhs, lhs$1, lhs$2, orig_rhs, r, returnStmt, rhs, rhs$1, v, v$1, x, $s, $r, $c} = $restore(this, {lhs, orig_rhs, returnStmt}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = [x]; + check = this; + context$1 = "assignment"; + if (!($interfaceIsEqual(returnStmt, $ifaceNil))) { + context$1 = "return statement"; } - _key = from; (seen || $throwRuntimeError("assignment to entry in nil map")).set(Object.keyFor(_key), { k: _key, v: true }); - _ref = (_entry$1 = $mapIndex(objMap,Object.keyFor(from)), _entry$1 !== undefined ? _entry$1.v : ptrType$58.nil).deps; - _i = 0; - _keys = _ref ? _ref.keys() : undefined; - _size = _ref ? _ref.size : 0; + _tmp = lhs.$length; + _tmp$1 = orig_rhs.$length; + l = _tmp; + r = _tmp$1; + isCall = false; + if (r === 1) { + _tuple = $assertType(unparen((0 >= orig_rhs.$length ? ($throwRuntimeError("index out of range"), undefined) : orig_rhs.$array[orig_rhs.$offset + 0])), ptrType$87, true); + isCall = _tuple[1]; + } + /* */ if ((l === r) && !isCall) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ((l === r) && !isCall) { */ case 1: + x[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); + _ref = lhs; + _i = 0; + /* while (true) { */ case 3: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } + i = _i; + lhs$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = check.expr(lhs$1.object.typ, x[0], ((i < 0 || i >= orig_rhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : orig_rhs.$array[orig_rhs.$offset + i])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.initVar(lhs$1, x[0], context$1); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 3; continue; + case 4: + $s = -1; return; + /* } */ case 2: + /* */ if (!((r === 1))) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!((r === 1))) { */ case 7: + _r = check.use(orig_rhs); /* */ $s = 11; case 11: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (_r) { */ case 9: + /* */ if (!($interfaceIsEqual(returnStmt, $ifaceNil))) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (!($interfaceIsEqual(returnStmt, $ifaceNil))) { */ case 12: + _r$1 = check.exprList(orig_rhs); /* */ $s = 15; case 15: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + rhs = _r$1; + $r = check.returnError(returnStmt, lhs, rhs); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 14; continue; + /* } else { */ case 13: + $r = check.assignError(orig_rhs, l, r); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 14: + /* } */ case 10: + _ref$1 = lhs; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + v = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + if ($interfaceIsEqual(v.object.typ, $ifaceNil)) { + v.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + } + _i$1++; + } + $s = -1; return; + /* } */ case 8: + _r$2 = check.multiExpr((0 >= orig_rhs.$length ? ($throwRuntimeError("index out of range"), undefined) : orig_rhs.$array[orig_rhs.$offset + 0]), (l === 2) && $interfaceIsEqual(returnStmt, $ifaceNil)); /* */ $s = 18; case 18: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$1 = _r$2; + rhs$1 = _tuple$1[0]; + commaOk = _tuple$1[1]; + r = rhs$1.$length; + /* */ if (l === r) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (l === r) { */ case 19: + _ref$2 = lhs; + _i$2 = 0; + /* while (true) { */ case 21: + /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 22; continue; } + i$1 = _i$2; + lhs$2 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); + $r = check.initVar(lhs$2, ((i$1 < 0 || i$1 >= rhs$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : rhs$1.$array[rhs$1.$offset + i$1]), context$1); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$2++; + $s = 21; continue; + case 22: + /* */ if (commaOk && !(((0 >= rhs$1.$length ? ($throwRuntimeError("index out of range"), undefined) : rhs$1.$array[rhs$1.$offset + 0]).mode === 0)) && !(((1 >= rhs$1.$length ? ($throwRuntimeError("index out of range"), undefined) : rhs$1.$array[rhs$1.$offset + 1]).mode === 0))) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (commaOk && !(((0 >= rhs$1.$length ? ($throwRuntimeError("index out of range"), undefined) : rhs$1.$array[rhs$1.$offset + 0]).mode === 0)) && !(((1 >= rhs$1.$length ? ($throwRuntimeError("index out of range"), undefined) : rhs$1.$array[rhs$1.$offset + 1]).mode === 0))) { */ case 24: + $r = check.recordCommaOkTypes((0 >= orig_rhs.$length ? ($throwRuntimeError("index out of range"), undefined) : orig_rhs.$array[orig_rhs.$offset + 0]), rhs$1); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 25: + $s = -1; return; + /* } */ case 20: + /* */ if (!(((0 >= rhs$1.$length ? ($throwRuntimeError("index out of range"), undefined) : rhs$1.$array[rhs$1.$offset + 0]).mode === 0))) { $s = 27; continue; } + /* */ $s = 28; continue; + /* if (!(((0 >= rhs$1.$length ? ($throwRuntimeError("index out of range"), undefined) : rhs$1.$array[rhs$1.$offset + 0]).mode === 0))) { */ case 27: + /* */ if (!($interfaceIsEqual(returnStmt, $ifaceNil))) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if (!($interfaceIsEqual(returnStmt, $ifaceNil))) { */ case 29: + $r = check.returnError(returnStmt, lhs, rhs$1); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 31; continue; + /* } else { */ case 30: + $r = check.assignError(orig_rhs, l, r); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 31: + /* } */ case 28: + _ref$3 = lhs; + _i$3 = 0; while (true) { - if (!(_i < _size)) { break; } - _key$1 = _keys.next().value; - _entry$2 = _ref.get(_key$1); - if (_entry$2 === undefined) { - _i++; - continue; - } - d = _entry$2.k; - if ($interfaceIsEqual(d, to)) { - return new sliceType$8([d]); - } - P = findPath(objMap, d, to, seen); - if (!(P === sliceType$8.nil)) { - return $append(P, d); + if (!(_i$3 < _ref$3.$length)) { break; } + v$1 = ((_i$3 < 0 || _i$3 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$3]); + if ($interfaceIsEqual(v$1.object.typ, $ifaceNil)) { + v$1.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); } - _i++; + _i$3++; } - return sliceType$8.nil; + $s = -1; return; + /* */ } return; } var $f = {$blk: initVars, $c: true, $r, _i, _i$1, _i$2, _i$3, _r, _r$1, _r$2, _ref, _ref$1, _ref$2, _ref$3, _tmp, _tmp$1, _tuple, _tuple$1, check, commaOk, context$1, i, i$1, isCall, l, lhs, lhs$1, lhs$2, orig_rhs, r, returnStmt, rhs, rhs$1, v, v$1, x, $s};return $f; }; - $ptrType(Checker).prototype.reportCycle = function reportCycle(cycle) { - var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _r$1, _r$2, _r$3, _r$4, check, cycle, i, obj, $s, $r, $c} = $restore(this, {cycle}); + $ptrType(Checker).prototype.assignVars = function assignVars(lhs, orig_rhs) { + var {_i, _i$1, _r, _r$1, _r$2, _r$3, _ref, _ref$1, _tmp, _tmp$1, _tuple, _tuple$1, check, commaOk, i, i$1, isCall, l, lhs, lhs$1, lhs$2, okLHS, okRHS, orig_rhs, r, rhs, $s, $r, $c} = $restore(this, {lhs, orig_rhs}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: check = this; - obj = (0 >= cycle.$length ? ($throwRuntimeError("index out of range"), undefined) : cycle.$array[cycle.$offset + 0]); - /* */ if (cycle.$length === 1) { $s = 1; continue; } + _tmp = lhs.$length; + _tmp$1 = orig_rhs.$length; + l = _tmp; + r = _tmp$1; + isCall = false; + if (r === 1) { + _tuple = $assertType(unparen((0 >= orig_rhs.$length ? ($throwRuntimeError("index out of range"), undefined) : orig_rhs.$array[orig_rhs.$offset + 0])), ptrType$87, true); + isCall = _tuple[1]; + } + /* */ if ((l === r) && !isCall) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (cycle.$length === 1) { */ case 1: - _arg = obj; - _r$1 = obj.Name(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _arg$1 = new $String(_r$1); - $r = check.errorf(_arg, 9, "initialization cycle: %s refers to itself", new sliceType$6([_arg$1])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* if ((l === r) && !isCall) { */ case 1: + _ref = lhs; + _i = 0; + /* while (true) { */ case 3: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } + i = _i; + lhs$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = check.assignVar(lhs$1, ((i < 0 || i >= orig_rhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : orig_rhs.$array[orig_rhs.$offset + i]), ptrType$63.nil); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 3; continue; + case 4: $s = -1; return; /* } */ case 2: - _arg$2 = obj; - _r$2 = obj.Name(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _arg$3 = new $String(_r$2); - $r = check.errorf(_arg$2, 9, "initialization cycle for %s", new sliceType$6([_arg$3])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - i = cycle.$length - 1 >> 0; - /* while (true) { */ case 7: - /* if (!(i >= 0)) { break; } */ if(!(i >= 0)) { $s = 8; continue; } - _arg$4 = obj; - _r$3 = obj.Name(); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _arg$5 = new $String(_r$3); - $r = check.errorf(_arg$4, 9, "\t%s refers to", new sliceType$6([_arg$5])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - obj = ((i < 0 || i >= cycle.$length) ? ($throwRuntimeError("index out of range"), undefined) : cycle.$array[cycle.$offset + i]); - i = i - (1) >> 0; - $s = 7; continue; - case 8: - _arg$6 = obj; - _r$4 = obj.Name(); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _arg$7 = new $String(_r$4); - $r = check.errorf(_arg$6, 9, "\t%s", new sliceType$6([_arg$7])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!((r === 1))) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (!((r === 1))) { */ case 6: + _r = check.useLHS(lhs); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + okLHS = _r; + _r$1 = check.use(orig_rhs); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + okRHS = _r$1; + /* */ if (okLHS && okRHS) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (okLHS && okRHS) { */ case 10: + $r = check.assignError(orig_rhs, l, r); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 11: + $s = -1; return; + /* } */ case 7: + _r$2 = check.multiExpr((0 >= orig_rhs.$length ? ($throwRuntimeError("index out of range"), undefined) : orig_rhs.$array[orig_rhs.$offset + 0]), l === 2); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$1 = _r$2; + rhs = _tuple$1[0]; + commaOk = _tuple$1[1]; + r = rhs.$length; + /* */ if (l === r) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (l === r) { */ case 14: + _ref$1 = lhs; + _i$1 = 0; + /* while (true) { */ case 16: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 17; continue; } + i$1 = _i$1; + lhs$2 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + $r = check.assignVar(lhs$2, $ifaceNil, ((i$1 < 0 || i$1 >= rhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : rhs.$array[rhs.$offset + i$1])); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + $s = 16; continue; + case 17: + /* */ if (commaOk && !(((0 >= rhs.$length ? ($throwRuntimeError("index out of range"), undefined) : rhs.$array[rhs.$offset + 0]).mode === 0)) && !(((1 >= rhs.$length ? ($throwRuntimeError("index out of range"), undefined) : rhs.$array[rhs.$offset + 1]).mode === 0))) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (commaOk && !(((0 >= rhs.$length ? ($throwRuntimeError("index out of range"), undefined) : rhs.$array[rhs.$offset + 0]).mode === 0)) && !(((1 >= rhs.$length ? ($throwRuntimeError("index out of range"), undefined) : rhs.$array[rhs.$offset + 1]).mode === 0))) { */ case 19: + $r = check.recordCommaOkTypes((0 >= orig_rhs.$length ? ($throwRuntimeError("index out of range"), undefined) : orig_rhs.$array[orig_rhs.$offset + 0]), rhs); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 20: + $s = -1; return; + /* } */ case 15: + /* */ if (!(((0 >= rhs.$length ? ($throwRuntimeError("index out of range"), undefined) : rhs.$array[rhs.$offset + 0]).mode === 0))) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (!(((0 >= rhs.$length ? ($throwRuntimeError("index out of range"), undefined) : rhs.$array[rhs.$offset + 0]).mode === 0))) { */ case 22: + $r = check.assignError(orig_rhs, l, r); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 23: + _r$3 = check.useLHS(lhs); /* */ $s = 25; case 25: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; $s = -1; return; - /* */ } return; } var $f = {$blk: reportCycle, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _r$1, _r$2, _r$3, _r$4, check, cycle, i, obj, $s};return $f; - }; - $ptrType(graphNode).prototype.cost = function cost() { - var n; - n = this; - return $imul((n.pred ? n.pred.size : 0), (n.succ ? n.succ.size : 0)); - }; - $ptrType(nodeSet).prototype.add = function add$2(p) { - var _key, p, s; - s = this; - if (s.$get() === false) { - s.$set(new $global.Map()); - } - _key = p; (s.$get() || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$95.keyFor(_key), { k: _key, v: true }); + /* */ } return; } var $f = {$blk: assignVars, $c: true, $r, _i, _i$1, _r, _r$1, _r$2, _r$3, _ref, _ref$1, _tmp, _tmp$1, _tuple, _tuple$1, check, commaOk, i, i$1, isCall, l, lhs, lhs$1, lhs$2, okLHS, okRHS, orig_rhs, r, rhs, $s};return $f; }; - dependencyGraph = function dependencyGraph$1(objMap) { - var {G, M, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _entry$6, _entry$7, _entry$8, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _i$8, _key, _key$1, _key$2, _key$3, _key$4, _key$5, _key$6, _key$7, _keys, _keys$1, _keys$2, _keys$3, _keys$4, _keys$5, _keys$6, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _size, _size$1, _size$2, _size$3, _size$4, _size$5, _size$6, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, d, d$1, d$2, funcG, i, n, n$1, n$2, n$3, obj, obj$1, obj$2, objMap, ok, p, s, s$1, $s, $r, $c} = $restore(this, {objMap}); + $ptrType(Checker).prototype.shortVarDecl = function shortVarDecl(pos$1, lhs, rhs) { + var {_entry, _i, _i$1, _i$2, _key, _r, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _ref$2, _tuple, _tuple$1, alt, check, hasErr, i, i$1, ident$1, lhs, lhs$1, lhsVars, name, newVars, obj, obj$1, obj$2, obj$3, pos$1, rhs, scope, scopePos$2, seen, top, x, x$1, $s, $r, $c} = $restore(this, {pos$1, lhs, rhs}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - funcG = [funcG]; - M = new $global.Map(); - _ref = objMap; + check = this; + top = check.delayed.$length; + scope = check.environment.scope; + seen = (x = lhs.$length, ((x < 0 || x > 2147483647) ? $throwRuntimeError("makemap: size out of range") : new $global.Map())); + lhsVars = $makeSlice(sliceType$9, lhs.$length); + newVars = $makeSlice(sliceType$9, 0, lhs.$length); + hasErr = false; + _ref = lhs; _i = 0; - _keys = _ref ? _ref.keys() : undefined; - _size = _ref ? _ref.size : 0; - while (true) { - if (!(_i < _size)) { break; } - _key = _keys.next().value; - _entry = _ref.get(_key); - if (_entry === undefined) { + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + lhs$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _tuple = $assertType(lhs$1, ptrType$31, true); + ident$1 = _tuple[0]; + /* */ if (ident$1 === ptrType$31.nil) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (ident$1 === ptrType$31.nil) { */ case 3: + _r = check.useLHS(new sliceType$10([lhs$1])); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + $r = check.errorf(lhs$1, 131, "non-name %s on left side of :=", new sliceType$5([lhs$1])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + hasErr = true; _i++; - continue; - } - obj = _entry.k; - _tuple = $assertType(obj, dependency, true); - obj$1 = _tuple[0]; - if (!($interfaceIsEqual(obj$1, $ifaceNil))) { - _key$1 = obj$1; (M || $throwRuntimeError("assignment to entry in nil map")).set(dependency.keyFor(_key$1), { k: _key$1, v: new graphNode.ptr(obj$1, false, false, 0, 0) }); + /* continue; */ $s = 1; continue; + /* } */ case 4: + name = ident$1.Name; + /* */ if (!(name === "_")) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!(name === "_")) { */ case 7: + /* */ if ((_entry = $mapIndex(seen,$String.keyFor(name)), _entry !== undefined ? _entry.v : false)) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if ((_entry = $mapIndex(seen,$String.keyFor(name)), _entry !== undefined ? _entry.v : false)) { */ case 9: + $r = check.errorf(lhs$1, 132, "%s repeated on left side of :=", new sliceType$5([lhs$1])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + hasErr = true; + _i++; + /* continue; */ $s = 1; continue; + /* } */ case 10: + _key = name; (seen || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: true }); + /* } */ case 8: + _r$1 = scope.Lookup(name); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + alt = _r$1; + /* */ if (!($interfaceIsEqual(alt, $ifaceNil))) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (!($interfaceIsEqual(alt, $ifaceNil))) { */ case 13: + $r = check.recordUse(ident$1, alt); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tuple$1 = $assertType(alt, ptrType$17, true); + obj = _tuple$1[0]; + /* */ if (!(obj === ptrType$17.nil)) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (!(obj === ptrType$17.nil)) { */ case 16: + ((i < 0 || i >= lhsVars.$length) ? ($throwRuntimeError("index out of range"), undefined) : lhsVars.$array[lhsVars.$offset + i] = obj); + $s = 18; continue; + /* } else { */ case 17: + $r = check.errorf(lhs$1, 18, "cannot assign to %s", new sliceType$5([lhs$1])); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + hasErr = true; + /* } */ case 18: + _i++; + /* continue; */ $s = 1; continue; + /* } */ case 14: + obj$1 = NewVar(ident$1.Pos(), check.pkg, name, $ifaceNil); + ((i < 0 || i >= lhsVars.$length) ? ($throwRuntimeError("index out of range"), undefined) : lhsVars.$array[lhsVars.$offset + i] = obj$1); + if (!(name === "_")) { + newVars = $append(newVars, obj$1); } + $r = check.recordDef(ident$1, obj$1); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _i++; - } - _ref$1 = M; + $s = 1; continue; + case 2: + _ref$1 = lhsVars; _i$1 = 0; - _keys$1 = _ref$1 ? _ref$1.keys() : undefined; - _size$1 = _ref$1 ? _ref$1.size : 0; - while (true) { - if (!(_i$1 < _size$1)) { break; } - _key$2 = _keys$1.next().value; - _entry$1 = _ref$1.get(_key$2); - if (_entry$1 === undefined) { - _i$1++; - continue; - } - obj$2 = _entry$1.k; - n = _entry$1.v; - _ref$2 = (_entry$2 = $mapIndex(objMap,Object.keyFor(obj$2)), _entry$2 !== undefined ? _entry$2.v : ptrType$58.nil).deps; - _i$2 = 0; - _keys$2 = _ref$2 ? _ref$2.keys() : undefined; - _size$2 = _ref$2 ? _ref$2.size : 0; - while (true) { - if (!(_i$2 < _size$2)) { break; } - _key$3 = _keys$2.next().value; - _entry$3 = _ref$2.get(_key$3); - if (_entry$3 === undefined) { - _i$2++; - continue; - } - d = _entry$3.k; - _tuple$1 = $assertType(d, dependency, true); - d$1 = _tuple$1[0]; - if (!($interfaceIsEqual(d$1, $ifaceNil))) { - d$2 = (_entry$4 = $mapIndex(M,dependency.keyFor(d$1)), _entry$4 !== undefined ? _entry$4.v : ptrType$95.nil); - (n.$ptr_succ || (n.$ptr_succ = new ptrType$96(function() { return this.$target.succ; }, function($v) { this.$target.succ = $v; }, n))).add(d$2); - (d$2.$ptr_pred || (d$2.$ptr_pred = new ptrType$96(function() { return this.$target.pred; }, function($v) { this.$target.pred = $v; }, d$2))).add(n); - } - _i$2++; - } + /* while (true) { */ case 21: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 22; continue; } + i$1 = _i$1; + obj$2 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + /* */ if (obj$2 === ptrType$17.nil) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (obj$2 === ptrType$17.nil) { */ case 23: + _r$2 = ((i$1 < 0 || i$1 >= lhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : lhs.$array[lhs.$offset + i$1]).Pos(); /* */ $s = 25; case 25: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = NewVar(_r$2, check.pkg, "_", $ifaceNil); /* */ $s = 26; case 26: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + ((i$1 < 0 || i$1 >= lhsVars.$length) ? ($throwRuntimeError("index out of range"), undefined) : lhsVars.$array[lhsVars.$offset + i$1] = _r$3); + /* } */ case 24: _i$1++; - } - _tmp = sliceType$28.nil; - _tmp$1 = sliceType$28.nil; - G = _tmp; - funcG[0] = _tmp$1; - _ref$3 = M; - _i$3 = 0; - _keys$3 = _ref$3 ? _ref$3.keys() : undefined; - _size$3 = _ref$3 ? _ref$3.size : 0; - while (true) { - if (!(_i$3 < _size$3)) { break; } - _key$4 = _keys$3.next().value; - _entry$5 = _ref$3.get(_key$4); - if (_entry$5 === undefined) { - _i$3++; - continue; - } - n$1 = _entry$5.v; - _tuple$2 = $assertType(n$1.obj, ptrType$2, true); - ok = _tuple$2[1]; - if (ok) { - funcG[0] = $append(funcG[0], n$1); - } else { - G = $append(G, n$1); - } - _i$3++; - } - $r = sort.Slice(funcG[0], (function(funcG) { return function dependencyGraph·func1(i, j) { - var i, j; - return ((i < 0 || i >= funcG[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : funcG[0].$array[funcG[0].$offset + i]).cost() < ((j < 0 || j >= funcG[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : funcG[0].$array[funcG[0].$offset + j]).cost(); - }; })(funcG)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _ref$4 = funcG[0]; - _i$4 = 0; - while (true) { - if (!(_i$4 < _ref$4.$length)) { break; } - n$2 = ((_i$4 < 0 || _i$4 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$4]); - _ref$5 = n$2.pred; - _i$5 = 0; - _keys$4 = _ref$5 ? _ref$5.keys() : undefined; - _size$4 = _ref$5 ? _ref$5.size : 0; - while (true) { - if (!(_i$5 < _size$4)) { break; } - _key$5 = _keys$4.next().value; - _entry$6 = _ref$5.get(_key$5); - if (_entry$6 === undefined) { - _i$5++; - continue; - } - p = _entry$6.k; - if (!(p === n$2)) { - _ref$6 = n$2.succ; - _i$6 = 0; - _keys$5 = _ref$6 ? _ref$6.keys() : undefined; - _size$5 = _ref$6 ? _ref$6.size : 0; - while (true) { - if (!(_i$6 < _size$5)) { break; } - _key$6 = _keys$5.next().value; - _entry$7 = _ref$6.get(_key$6); - if (_entry$7 === undefined) { - _i$6++; - continue; - } - s = _entry$7.k; - if (!(s === n$2)) { - (p.$ptr_succ || (p.$ptr_succ = new ptrType$96(function() { return this.$target.succ; }, function($v) { this.$target.succ = $v; }, p))).add(s); - (s.$ptr_pred || (s.$ptr_pred = new ptrType$96(function() { return this.$target.pred; }, function($v) { this.$target.pred = $v; }, s))).add(p); - } - _i$6++; - } - $mapDelete(p.succ, ptrType$95.keyFor(n$2)); - } - _i$5++; - } - _ref$7 = n$2.succ; - _i$7 = 0; - _keys$6 = _ref$7 ? _ref$7.keys() : undefined; - _size$6 = _ref$7 ? _ref$7.size : 0; - while (true) { - if (!(_i$7 < _size$6)) { break; } - _key$7 = _keys$6.next().value; - _entry$8 = _ref$7.get(_key$7); - if (_entry$8 === undefined) { - _i$7++; - continue; - } - s$1 = _entry$8.k; - $mapDelete(s$1.pred, ptrType$95.keyFor(n$2)); - _i$7++; - } - _i$4++; - } - _ref$8 = G; - _i$8 = 0; - while (true) { - if (!(_i$8 < _ref$8.$length)) { break; } - i = _i$8; - n$3 = ((_i$8 < 0 || _i$8 >= _ref$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$8.$array[_ref$8.$offset + _i$8]); - n$3.index = i; - n$3.ndeps = (n$3.succ ? n$3.succ.size : 0); - _i$8++; - } - $s = -1; return G; - /* */ } return; } var $f = {$blk: dependencyGraph$1, $c: true, $r, G, M, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _entry$6, _entry$7, _entry$8, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _i$8, _key, _key$1, _key$2, _key$3, _key$4, _key$5, _key$6, _key$7, _keys, _keys$1, _keys$2, _keys$3, _keys$4, _keys$5, _keys$6, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _size, _size$1, _size$2, _size$3, _size$4, _size$5, _size$6, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, d, d$1, d$2, funcG, i, n, n$1, n$2, n$3, obj, obj$1, obj$2, objMap, ok, p, s, s$1, $s};return $f; + $s = 21; continue; + case 22: + $r = check.initVars(lhsVars, rhs, $ifaceNil); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = check.processDelayed(top); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if ((newVars.$length === 0) && !hasErr) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if ((newVars.$length === 0) && !hasErr) { */ case 29: + $r = check.softErrorf(pos$1, 19, "no new variables on left side of :=", sliceType$5.nil); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 30: + _r$4 = (x$1 = rhs.$length - 1 >> 0, ((x$1 < 0 || x$1 >= rhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : rhs.$array[rhs.$offset + x$1])).End(); /* */ $s = 32; case 32: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + scopePos$2 = _r$4; + _ref$2 = newVars; + _i$2 = 0; + /* while (true) { */ case 33: + /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 34; continue; } + obj$3 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); + $r = check.declare(scope, ptrType$31.nil, obj$3, scopePos$2); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$2++; + $s = 33; continue; + case 34: + $s = -1; return; + /* */ } return; } var $f = {$blk: shortVarDecl, $c: true, $r, _entry, _i, _i$1, _i$2, _key, _r, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _ref$2, _tuple, _tuple$1, alt, check, hasErr, i, i$1, ident$1, lhs, lhs$1, lhsVars, name, newVars, obj, obj$1, obj$2, obj$3, pos$1, rhs, scope, scopePos$2, seen, top, x, x$1, $s};return $f; + }; + NewArray = function NewArray$1(elem, len) { + var elem, len; + return new Array.ptr(len, elem); }; - nodeQueue.prototype.Len = function Len$8() { + $pkg.NewArray = NewArray; + $ptrType(Array).prototype.Len = function Len$10() { var a; a = this; - return a.$length; + return a.len; }; - $ptrType(nodeQueue).prototype.Len = function(...$args) { return this.$get().Len(...$args); }; - nodeQueue.prototype.Swap = function Swap$2(i, j) { - var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, a, i, j, x, y; + $ptrType(Array).prototype.Elem = function Elem$4() { + var a; a = this; - _tmp = ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i]); - _tmp$1 = ((j < 0 || j >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + j]); - x = _tmp; - y = _tmp$1; - _tmp$2 = y; - _tmp$3 = x; - ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i] = _tmp$2); - ((j < 0 || j >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + j] = _tmp$3); - _tmp$4 = j; - _tmp$5 = i; - x.index = _tmp$4; - y.index = _tmp$5; + return a.elem; }; - $ptrType(nodeQueue).prototype.Swap = function(...$args) { return this.$get().Swap(...$args); }; - nodeQueue.prototype.Less = function Less$2(i, j) { - var {$24r, _r$1, _r$2, _tmp, _tmp$1, _v, _v$1, a, i, j, x, y, $s, $r, $c} = $restore(this, {i, j}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $ptrType(Array).prototype.Underlying = function Underlying$12() { + var a; a = this; - _tmp = ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i]); - _tmp$1 = ((j < 0 || j >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + j]); - x = _tmp; - y = _tmp$1; - if (x.ndeps < y.ndeps) { _v = true; $s = 1; continue s; } - if (!(x.ndeps === y.ndeps)) { _v$1 = false; $s = 2; continue s; } - _r$1 = x.obj.order(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = y.obj.order(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _v$1 = _r$1 < _r$2; case 2: - _v = _v$1; case 1: - $24r = _v; - $s = 5; case 5: return $24r; - /* */ } return; } var $f = {$blk: Less$2, $c: true, $r, $24r, _r$1, _r$2, _tmp, _tmp$1, _v, _v$1, a, i, j, x, y, $s};return $f; + return a; }; - $ptrType(nodeQueue).prototype.Less = function(...$args) { return this.$get().Less(...$args); }; - $ptrType(nodeQueue).prototype.Push = function Push(x) { - var a, x; + $ptrType(Array).prototype.String = function String$36() { + var {$24r, _r, a, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: a = this; - $panic(new $String("unreachable")); + _r = TypeString(a, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$36, $c: true, $r, $24r, _r, a, $s};return $f; }; - $ptrType(nodeQueue).prototype.Pop = function Pop() { - var a, n, x, x$1, x$2; - a = this; - n = a.$get().$length; - x$2 = (x = a.$get(), x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); - x$2.index = -1; - a.$set($subslice((a.$get()), 0, (n - 1 >> 0))); - return x$2; + $ptrType(Error).prototype.Error = function Error$1() { + var {$24r, _arg, _arg$1, _r, _r$1, err, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + err = this; + _r = err.Fset.Position(err.Pos); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg = (x = _r, new x.constructor.elem(x)); + _arg$1 = new $String(err.Msg); + _r$1 = fmt.Sprintf("%s: %s", new sliceType$5([_arg, _arg$1])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: Error$1, $c: true, $r, $24r, _arg, _arg$1, _r, _r$1, err, x, $s};return $f; }; - $ptrType(Checker).prototype.infer = function infer(posn, tparams, targs, params, args) { - var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _v, arg, arg$1, arg$2, args, args2, check, errorf, i, i$1, i$2, i$3, i$4, i$5, i$6, index$1, indices, j, j$1, m, n, named, ok, par, params, params2, posn, renameMap, result, smap, targ, targ$1, targ$2, targs, targs2, tname, tpar, tpar$1, tparam, tparam$1, tparams, tparams2, u, unnamed, x, $s, $deferred, $r, $c} = $restore(this, {posn, tparams, targs, params, args}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - check = [check]; - result = [result]; - tparams = [tparams]; - u = [u]; - result[0] = sliceType$2.nil; - check[0] = this; - /* */ if (false) { $s = 1; continue; } + Error.prototype.Error = function(...$args) { return this.$val.Error(...$args); }; + $ptrType(ArgumentError).prototype.Error = function Error$2() { + var {$24r, _r, e, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + e = this; + _r = e.Err.Error(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Error$2, $c: true, $r, $24r, _r, e, $s};return $f; + }; + $ptrType(ArgumentError).prototype.Unwrap = function Unwrap() { + var e; + e = this; + return e.Err; + }; + $ptrType(Info).prototype.recordTypes = function recordTypes() { + var info; + info = this; + return !(info.Types === false); + }; + $ptrType(Info).prototype.TypeOf = function TypeOf(e) { + var {$24r, _entry, _r, _tuple, _tuple$1, e, id, info, obj, ok, t, $s, $r, $c} = $restore(this, {e}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + info = this; + _tuple = (_entry = $mapIndex(info.Types,ast.Expr.keyFor(e)), _entry !== undefined ? [_entry.v, true] : [new TypeAndValue.ptr(0, $ifaceNil, $ifaceNil), false]); + t = $clone(_tuple[0], TypeAndValue); + ok = _tuple[1]; + if (ok) { + $s = -1; return t.Type; + } + _tuple$1 = $assertType(e, ptrType$31, true); + id = _tuple$1[0]; + /* */ if (!(id === ptrType$31.nil)) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (false) { */ case 1: - $deferred.push([(function(check, result, tparams, u) { return function Checker·infer·func1() { - var {_i, _ref, targ, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = assert(result[0] === sliceType$2.nil || (result[0].$length === tparams[0].$length)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _ref = result[0]; - _i = 0; - /* while (true) { */ case 2: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } - targ = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - $r = assert(!($interfaceIsEqual(targ, $ifaceNil))); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 2; continue; - case 3: - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·infer·func1, $c: true, $r, _i, _ref, targ, $s};return $f; - }; })(check, result, tparams, u), []]); + /* if (!(id === ptrType$31.nil)) { */ case 1: + obj = info.ObjectOf(id); + /* */ if (!($interfaceIsEqual(obj, $ifaceNil))) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!($interfaceIsEqual(obj, $ifaceNil))) { */ case 3: + _r = obj.Type(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 6; case 6: return $24r; + /* } */ case 4: /* } */ case 2: - /* */ if (false) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (false) { */ case 3: - $r = check[0].dump("-- inferA %s%s \xE2\x9E\x9E %s", new sliceType$6([tparams[0], params, targs])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([(function(check, result, tparams, u) { return function Checker·infer·func2() { - var {$s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = check[0].dump("=> inferA %s \xE2\x9E\x9E %s", new sliceType$6([tparams[0], result[0]])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·infer·func2, $c: true, $r, $s};return $f; - }; })(check, result, tparams, u), []]); - /* } */ case 4: - n = tparams[0].$length; - $r = assert(n > 0 && targs.$length <= n); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = assert(params.Len() === args.$length); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (targs.$length === n) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (targs.$length === n) { */ case 8: - result[0] = targs; - $24r = result[0]; - $s = 10; case 10: return $24r; - /* } */ case 9: - /* */ if (true) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (true) { */ case 11: - tparams2 = $makeSlice(sliceType$9, tparams[0].$length); - _ref = tparams[0]; + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: TypeOf, $c: true, $r, $24r, _entry, _r, _tuple, _tuple$1, e, id, info, obj, ok, t, $s};return $f; + }; + $ptrType(Info).prototype.ObjectOf = function ObjectOf(id) { + var _entry, _entry$1, id, info, obj; + info = this; + obj = (_entry = $mapIndex(info.Defs,ptrType$31.keyFor(id)), _entry !== undefined ? _entry.v : $ifaceNil); + if (!($interfaceIsEqual(obj, $ifaceNil))) { + return obj; + } + return (_entry$1 = $mapIndex(info.Uses,ptrType$31.keyFor(id)), _entry$1 !== undefined ? _entry$1.v : $ifaceNil); + }; + $ptrType(TypeAndValue).prototype.IsVoid = function IsVoid() { + var tv; + tv = this; + return tv.mode === 1; + }; + TypeAndValue.prototype.IsVoid = function(...$args) { return this.$val.IsVoid(...$args); }; + $ptrType(TypeAndValue).prototype.IsType = function IsType() { + var tv; + tv = this; + return tv.mode === 3; + }; + TypeAndValue.prototype.IsType = function(...$args) { return this.$val.IsType(...$args); }; + $ptrType(TypeAndValue).prototype.IsBuiltin = function IsBuiltin() { + var tv; + tv = this; + return tv.mode === 2; + }; + TypeAndValue.prototype.IsBuiltin = function(...$args) { return this.$val.IsBuiltin(...$args); }; + $ptrType(TypeAndValue).prototype.IsValue = function IsValue() { + var _1, tv; + tv = this; + _1 = tv.mode; + if ((_1 === (4)) || (_1 === (5)) || (_1 === (6)) || (_1 === (7)) || (_1 === (8)) || (_1 === (9))) { + return true; + } + return false; + }; + TypeAndValue.prototype.IsValue = function(...$args) { return this.$val.IsValue(...$args); }; + $ptrType(TypeAndValue).prototype.IsNil = function IsNil() { + var tv; + tv = this; + return (tv.mode === 7) && $interfaceIsEqual(tv.Type, (25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25])); + }; + TypeAndValue.prototype.IsNil = function(...$args) { return this.$val.IsNil(...$args); }; + $ptrType(TypeAndValue).prototype.Addressable = function Addressable() { + var tv; + tv = this; + return tv.mode === 5; + }; + TypeAndValue.prototype.Addressable = function(...$args) { return this.$val.Addressable(...$args); }; + $ptrType(TypeAndValue).prototype.Assignable = function Assignable() { + var tv; + tv = this; + return (tv.mode === 5) || (tv.mode === 6); + }; + TypeAndValue.prototype.Assignable = function(...$args) { return this.$val.Assignable(...$args); }; + $ptrType(TypeAndValue).prototype.HasOk = function HasOk() { + var tv; + tv = this; + return (tv.mode === 8) || (tv.mode === 6); + }; + TypeAndValue.prototype.HasOk = function(...$args) { return this.$val.HasOk(...$args); }; + $ptrType(Initializer).prototype.String = function String$37() { + var {_i, _ref, buf, i, init$6, lhs, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + buf = [buf]; + init$6 = this; + buf[0] = new bytes.Buffer.ptr(sliceType$12.nil, 0, 0); + _ref = init$6.Lhs; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + lhs = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (i > 0) { + buf[0].WriteString(", "); + } + buf[0].WriteString(lhs.object.Name()); + _i++; + } + buf[0].WriteString(" = "); + $r = WriteExpr(buf[0], init$6.Rhs); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return buf[0].String(); + /* */ } return; } var $f = {$blk: String$37, $c: true, $r, _i, _ref, buf, i, init$6, lhs, $s};return $f; + }; + $ptrType(Config).prototype.Check = function Check(path, fset, files, info) { + var {$24r, _r, _r$1, conf, files, fset, info, path, pkg, $s, $r, $c} = $restore(this, {path, fset, files, info}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + conf = this; + _r = NewPackage(path, ""); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + pkg = _r; + _r$1 = NewChecker(conf, fset, pkg, info).Files(files); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = [pkg, _r$1]; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: Check, $c: true, $r, $24r, _r, _r$1, conf, files, fset, info, path, pkg, $s};return $f; + }; + Identical = function Identical$1(x, y) { + var {$24r, _r, c, x, y, $s, $r, $c} = $restore(this, {x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + c = new comparer.ptr(false, false); + _r = c.identical(x, y, ptrType$24.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Identical$1, $c: true, $r, $24r, _r, c, x, y, $s};return $f; + }; + $pkg.Identical = Identical; + IdenticalIgnoreTags = function IdenticalIgnoreTags$1(x, y) { + var {$24r, _r, c, x, y, $s, $r, $c} = $restore(this, {x, y}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + c = new comparer.ptr(false, false); + c.ignoreTags = true; + _r = c.identical(x, y, ptrType$24.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: IdenticalIgnoreTags$1, $c: true, $r, $24r, _r, c, x, y, $s};return $f; + }; + $pkg.IdenticalIgnoreTags = IdenticalIgnoreTags; + version.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "equal", name: "equal", pkg: "go/types", typ: $funcType([version], [$Bool], false)}, {prop: "before", name: "before", pkg: "go/types", typ: $funcType([version], [$Bool], false)}, {prop: "after", name: "after", pkg: "go/types", typ: $funcType([version], [$Bool], false)}]; + ptrType$13.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Term", name: "Term", pkg: "", typ: $funcType([$Int], [ptrType$20], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$20.methods = [{prop: "Tilde", name: "Tilde", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$118.methods = [{prop: "unify", name: "unify", pkg: "go/types", typ: $funcType([Type, Type, unifyMode], [$Bool], false)}, {prop: "tracef", name: "tracef", pkg: "go/types", typ: $funcType([$String, sliceType$5], [], true)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "join", name: "join", pkg: "go/types", typ: $funcType([ptrType$15, ptrType$15], [$Bool], false)}, {prop: "asTypeParam", name: "asTypeParam", pkg: "go/types", typ: $funcType([Type], [ptrType$15], false)}, {prop: "setHandle", name: "setHandle", pkg: "go/types", typ: $funcType([ptrType$15, ptrType$23], [], false)}, {prop: "at", name: "at", pkg: "go/types", typ: $funcType([ptrType$15], [Type], false)}, {prop: "set", name: "set", pkg: "go/types", typ: $funcType([ptrType$15, Type], [], false)}, {prop: "unknowns", name: "unknowns", pkg: "go/types", typ: $funcType([], [$Int], false)}, {prop: "inferred", name: "inferred", pkg: "go/types", typ: $funcType([sliceType$8], [sliceType$3], false)}, {prop: "nify", name: "nify", pkg: "go/types", typ: $funcType([Type, Type, unifyMode, ptrType$24], [$Bool], false)}]; + unifyMode.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + typeParamsById.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}]; + ptrType$5.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "equal", name: "equal", pkg: "go/types", typ: $funcType([ptrType$5], [$Bool], false)}, {prop: "union", name: "union", pkg: "go/types", typ: $funcType([ptrType$5], [ptrType$5, ptrType$5], false)}, {prop: "intersect", name: "intersect", pkg: "go/types", typ: $funcType([ptrType$5], [ptrType$5], false)}, {prop: "includes", name: "includes", pkg: "go/types", typ: $funcType([Type], [$Bool], false)}, {prop: "subsetOf", name: "subsetOf", pkg: "go/types", typ: $funcType([ptrType$5], [$Bool], false)}, {prop: "disjoint", name: "disjoint", pkg: "go/types", typ: $funcType([ptrType$5], [$Bool], false)}]; + ptrType$120.methods = [{prop: "byte$", name: "byte", pkg: "go/types", typ: $funcType([$Uint8], [], false)}, {prop: "string", name: "string", pkg: "go/types", typ: $funcType([$String], [], false)}, {prop: "error", name: "error", pkg: "go/types", typ: $funcType([$String], [], false)}, {prop: "typ", name: "typ", pkg: "go/types", typ: $funcType([Type], [], false)}, {prop: "typeSet", name: "typeSet", pkg: "go/types", typ: $funcType([ptrType$8], [], false)}, {prop: "typeList", name: "typeList", pkg: "go/types", typ: $funcType([sliceType$3], [], false)}, {prop: "tParamList", name: "tParamList", pkg: "go/types", typ: $funcType([sliceType$8], [], false)}, {prop: "typeName", name: "typeName", pkg: "go/types", typ: $funcType([ptrType$18], [], false)}, {prop: "tuple", name: "tuple", pkg: "go/types", typ: $funcType([ptrType$16, $Bool], [], false)}, {prop: "signature", name: "signature", pkg: "go/types", typ: $funcType([ptrType$29], [], false)}]; + ptrType$8.methods = [{prop: "IsEmpty", name: "IsEmpty", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsAll", name: "IsAll", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsMethodSet", name: "IsMethodSet", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsComparable", name: "IsComparable", pkg: "", typ: $funcType([mapType$1], [$Bool], false)}, {prop: "NumMethods", name: "NumMethods", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [ptrType$2], false)}, {prop: "LookupMethod", name: "LookupMethod", pkg: "", typ: $funcType([ptrType$1, $String, $Bool], [$Int, ptrType$2], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "hasTerms", name: "hasTerms", pkg: "go/types", typ: $funcType([], [$Bool], false)}, {prop: "subsetOf", name: "subsetOf", pkg: "go/types", typ: $funcType([ptrType$8], [$Bool], false)}, {prop: "is", name: "is", pkg: "go/types", typ: $funcType([funcType$2], [$Bool], false)}, {prop: "underIs", name: "underIs", pkg: "go/types", typ: $funcType([funcType$3], [$Bool], false)}]; + byUniqueMethodName.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}]; + ptrType$15.methods = [{prop: "Obj", name: "Obj", pkg: "", typ: $funcType([], [ptrType$18], false)}, {prop: "Index", name: "Index", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Constraint", name: "Constraint", pkg: "", typ: $funcType([], [Type], false)}, {prop: "SetConstraint", name: "SetConstraint", pkg: "", typ: $funcType([Type], [], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "cleanup", name: "cleanup", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "iface", name: "iface", pkg: "go/types", typ: $funcType([], [ptrType$14], false)}, {prop: "is", name: "is", pkg: "go/types", typ: $funcType([funcType$2], [$Bool], false)}, {prop: "underIs", name: "underIs", pkg: "go/types", typ: $funcType([funcType$3], [$Bool], false)}]; + ptrType$49.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "At", name: "At", pkg: "", typ: $funcType([$Int], [ptrType$15], false)}, {prop: "list", name: "list", pkg: "go/types", typ: $funcType([], [sliceType$8], false)}]; + ptrType$57.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "At", name: "At", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "list", name: "list", pkg: "go/types", typ: $funcType([], [sliceType$3], false)}]; + ptrType$16.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "At", name: "At", pkg: "", typ: $funcType([$Int], [ptrType$17], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + termlist.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "isEmpty", name: "isEmpty", pkg: "go/types", typ: $funcType([], [$Bool], false)}, {prop: "isAll", name: "isAll", pkg: "go/types", typ: $funcType([], [$Bool], false)}, {prop: "norm", name: "norm", pkg: "go/types", typ: $funcType([], [termlist], false)}, {prop: "union", name: "union", pkg: "go/types", typ: $funcType([termlist], [termlist], false)}, {prop: "intersect", name: "intersect", pkg: "go/types", typ: $funcType([termlist], [termlist], false)}, {prop: "equal", name: "equal", pkg: "go/types", typ: $funcType([termlist], [$Bool], false)}, {prop: "includes", name: "includes", pkg: "go/types", typ: $funcType([Type], [$Bool], false)}, {prop: "supersetOf", name: "supersetOf", pkg: "go/types", typ: $funcType([ptrType$5], [$Bool], false)}, {prop: "subsetOf", name: "subsetOf", pkg: "go/types", typ: $funcType([termlist], [$Bool], false)}]; + substMap.methods = [{prop: "empty", name: "empty", pkg: "go/types", typ: $funcType([], [$Bool], false)}, {prop: "lookup", name: "lookup", pkg: "go/types", typ: $funcType([ptrType$15], [Type], false)}]; + ptrType$121.methods = [{prop: "typ", name: "typ", pkg: "go/types", typ: $funcType([Type], [Type], false)}, {prop: "typOrNil", name: "typOrNil", pkg: "go/types", typ: $funcType([Type], [Type], false)}, {prop: "var_", name: "var_", pkg: "go/types", typ: $funcType([ptrType$17], [ptrType$17], false)}, {prop: "tuple", name: "tuple", pkg: "go/types", typ: $funcType([ptrType$16], [ptrType$16], false)}, {prop: "varList", name: "varList", pkg: "go/types", typ: $funcType([sliceType$9], [sliceType$9, $Bool], false)}, {prop: "func_", name: "func_", pkg: "go/types", typ: $funcType([ptrType$2], [ptrType$2], false)}, {prop: "funcList", name: "funcList", pkg: "go/types", typ: $funcType([sliceType], [sliceType, $Bool], false)}, {prop: "typeList", name: "typeList", pkg: "go/types", typ: $funcType([sliceType$3], [sliceType$3, $Bool], false)}, {prop: "termlist", name: "termlist", pkg: "go/types", typ: $funcType([sliceType$11], [sliceType$11, $Bool], false)}]; + ptrType$12.methods = [{prop: "NumFields", name: "NumFields", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [ptrType$17], false)}, {prop: "Tag", name: "Tag", pkg: "", typ: $funcType([$Int], [$String], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "markComplete", name: "markComplete", pkg: "go/types", typ: $funcType([], [], false)}]; + ptrType$27.methods = [{prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$84.methods = [{prop: "Alignof", name: "Alignof", pkg: "", typ: $funcType([Type], [$Int64], false)}, {prop: "Offsetsof", name: "Offsetsof", pkg: "", typ: $funcType([sliceType$9], [sliceType$18], false)}, {prop: "Sizeof", name: "Sizeof", pkg: "", typ: $funcType([Type], [$Int64], false)}]; + ptrType$29.methods = [{prop: "Recv", name: "Recv", pkg: "", typ: $funcType([], [ptrType$17], false)}, {prop: "TypeParams", name: "TypeParams", pkg: "", typ: $funcType([], [ptrType$49], false)}, {prop: "RecvTypeParams", name: "RecvTypeParams", pkg: "", typ: $funcType([], [ptrType$49], false)}, {prop: "Params", name: "Params", pkg: "", typ: $funcType([], [ptrType$16], false)}, {prop: "Results", name: "Results", pkg: "", typ: $funcType([], [ptrType$16], false)}, {prop: "Variadic", name: "Variadic", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$3.methods = [{prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [SelectionKind], false)}, {prop: "Recv", name: "Recv", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Obj", name: "Obj", pkg: "", typ: $funcType([], [Object], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Index", name: "Index", pkg: "", typ: $funcType([], [sliceType$24], false)}, {prop: "Indirect", name: "Indirect", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType.methods = [{prop: "Parent", name: "Parent", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Names", name: "Names", pkg: "", typ: $funcType([], [sliceType$13], false)}, {prop: "NumChildren", name: "NumChildren", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Child", name: "Child", pkg: "", typ: $funcType([$Int], [ptrType], false)}, {prop: "Lookup", name: "Lookup", pkg: "", typ: $funcType([$String], [Object], false)}, {prop: "LookupParent", name: "LookupParent", pkg: "", typ: $funcType([$String, token.Pos], [ptrType, Object], false)}, {prop: "Insert", name: "Insert", pkg: "", typ: $funcType([Object], [Object], false)}, {prop: "_InsertLazy", name: "_InsertLazy", pkg: "go/types", typ: $funcType([$String, funcType$4], [$Bool], false)}, {prop: "insert", name: "insert", pkg: "go/types", typ: $funcType([$String, Object], [], false)}, {prop: "squash", name: "squash", pkg: "go/types", typ: $funcType([funcType$5], [], false)}, {prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "Contains", name: "Contains", pkg: "", typ: $funcType([token.Pos], [$Bool], false)}, {prop: "Innermost", name: "Innermost", pkg: "", typ: $funcType([token.Pos], [ptrType], false)}, {prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([io.Writer, $Int, $Bool], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$86.methods = [{prop: "Parent", name: "Parent", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "Pkg", name: "Pkg", pkg: "", typ: $funcType([], [ptrType$1], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Exported", name: "Exported", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Id", name: "Id", pkg: "", typ: $funcType([], [$String], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "order", name: "order", pkg: "go/types", typ: $funcType([], [$Uint32], false)}, {prop: "color", name: "color", pkg: "go/types", typ: $funcType([], [color], false)}, {prop: "setType", name: "setType", pkg: "go/types", typ: $funcType([Type], [], false)}, {prop: "setOrder", name: "setOrder", pkg: "go/types", typ: $funcType([$Uint32], [], false)}, {prop: "setColor", name: "setColor", pkg: "go/types", typ: $funcType([color], [], false)}, {prop: "setParent", name: "setParent", pkg: "go/types", typ: $funcType([ptrType], [], false)}, {prop: "sameId", name: "sameId", pkg: "go/types", typ: $funcType([ptrType$1, $String], [$Bool], false)}, {prop: "scopePos", name: "scopePos", pkg: "go/types", typ: $funcType([], [token.Pos], false)}, {prop: "setScopePos", name: "setScopePos", pkg: "go/types", typ: $funcType([token.Pos], [], false)}]; + ptrType$59.methods = [{prop: "hasInitializer", name: "hasInitializer", pkg: "go/types", typ: $funcType([], [$Bool], false)}, {prop: "addDep", name: "addDep", pkg: "go/types", typ: $funcType([Object], [], false)}]; + inSourceOrder.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}]; + ptrType$24.methods = [{prop: "identical", name: "identical", pkg: "go/types", typ: $funcType([ptrType$24], [$Bool], false)}]; + ptrType$122.methods = [{prop: "identical", name: "identical", pkg: "go/types", typ: $funcType([Type, Type, ptrType$24], [$Bool], false)}]; + ptrType$28.methods = [{prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$1.methods = [{prop: "Path", name: "Path", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "SetName", name: "SetName", pkg: "", typ: $funcType([$String], [], false)}, {prop: "GoVersion", name: "GoVersion", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Scope", name: "Scope", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "Complete", name: "Complete", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "MarkComplete", name: "MarkComplete", pkg: "", typ: $funcType([], [], false)}, {prop: "Imports", name: "Imports", pkg: "", typ: $funcType([], [sliceType$23], false)}, {prop: "SetImports", name: "SetImports", pkg: "", typ: $funcType([sliceType$23], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$63.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "setConst", name: "setConst", pkg: "go/types", typ: $funcType([token.Token, $String], [], false)}, {prop: "isNil", name: "isNil", pkg: "go/types", typ: $funcType([], [$Bool], false)}, {prop: "assignableTo", name: "assignableTo", pkg: "go/types", typ: $funcType([ptrType$6, Type, ptrType$35], [$Bool, errors$1.Code], false)}, {prop: "convertibleTo", name: "convertibleTo", pkg: "go/types", typ: $funcType([ptrType$6, Type, ptrType$35], [$Bool], false)}]; + ptrType$55.methods = [{prop: "insert", name: "insert", pkg: "go/types", typ: $funcType([Object], [Object], false)}]; + ptrType$92.methods = [{prop: "Parent", name: "Parent", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "Pkg", name: "Pkg", pkg: "", typ: $funcType([], [ptrType$1], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Exported", name: "Exported", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Id", name: "Id", pkg: "", typ: $funcType([], [$String], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "order", name: "order", pkg: "go/types", typ: $funcType([], [$Uint32], false)}, {prop: "color", name: "color", pkg: "go/types", typ: $funcType([], [color], false)}, {prop: "scopePos", name: "scopePos", pkg: "go/types", typ: $funcType([], [token.Pos], false)}, {prop: "setParent", name: "setParent", pkg: "go/types", typ: $funcType([ptrType], [], false)}, {prop: "setType", name: "setType", pkg: "go/types", typ: $funcType([Type], [], false)}, {prop: "setOrder", name: "setOrder", pkg: "go/types", typ: $funcType([$Uint32], [], false)}, {prop: "setColor", name: "setColor", pkg: "go/types", typ: $funcType([color], [], false)}, {prop: "setScopePos", name: "setScopePos", pkg: "go/types", typ: $funcType([token.Pos], [], false)}, {prop: "sameId", name: "sameId", pkg: "go/types", typ: $funcType([ptrType$1, $String], [$Bool], false)}, {prop: "less", name: "less", pkg: "go/types", typ: $funcType([ptrType$92], [$Bool], false)}]; + color.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$32.methods = [{prop: "Imported", name: "Imported", pkg: "", typ: $funcType([], [ptrType$1], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$33.methods = [{prop: "Val", name: "Val", pkg: "", typ: $funcType([], [constant.Value], false)}, {prop: "isDependency", name: "isDependency", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$18.methods = [{prop: "IsAlias", name: "IsAlias", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$17.methods = [{prop: "Anonymous", name: "Anonymous", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Embedded", name: "Embedded", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsField", name: "IsField", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Origin", name: "Origin", pkg: "", typ: $funcType([], [ptrType$17], false)}, {prop: "isDependency", name: "isDependency", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$2.methods = [{prop: "FullName", name: "FullName", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Scope", name: "Scope", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "Origin", name: "Origin", pkg: "", typ: $funcType([], [ptrType$2], false)}, {prop: "hasPtrRecv", name: "hasPtrRecv", pkg: "go/types", typ: $funcType([], [$Bool], false)}, {prop: "isDependency", name: "isDependency", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$93.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$19.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$34.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$10.methods = [{prop: "resolve", name: "resolve", pkg: "go/types", typ: $funcType([], [ptrType$10], false)}, {prop: "state", name: "state", pkg: "go/types", typ: $funcType([], [namedState], false)}, {prop: "setState", name: "setState", pkg: "go/types", typ: $funcType([namedState], [], false)}, {prop: "cleanup", name: "cleanup", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "Obj", name: "Obj", pkg: "", typ: $funcType([], [ptrType$18], false)}, {prop: "Origin", name: "Origin", pkg: "", typ: $funcType([], [ptrType$10], false)}, {prop: "TypeParams", name: "TypeParams", pkg: "", typ: $funcType([], [ptrType$49], false)}, {prop: "SetTypeParams", name: "SetTypeParams", pkg: "", typ: $funcType([sliceType$8], [], false)}, {prop: "TypeArgs", name: "TypeArgs", pkg: "", typ: $funcType([], [ptrType$57], false)}, {prop: "NumMethods", name: "NumMethods", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [ptrType$2], false)}, {prop: "expandMethod", name: "expandMethod", pkg: "go/types", typ: $funcType([$Int], [ptrType$2], false)}, {prop: "SetUnderlying", name: "SetUnderlying", pkg: "", typ: $funcType([Type], [], false)}, {prop: "AddMethod", name: "AddMethod", pkg: "", typ: $funcType([ptrType$2], [], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "under", name: "under", pkg: "go/types", typ: $funcType([], [Type], false)}, {prop: "setUnderlying", name: "setUnderlying", pkg: "go/types", typ: $funcType([Type], [], false)}, {prop: "lookupMethod", name: "lookupMethod", pkg: "go/types", typ: $funcType([ptrType$1, $String, $Bool], [$Int, ptrType$2], false)}, {prop: "expandUnderlying", name: "expandUnderlying", pkg: "go/types", typ: $funcType([], [Type], false)}]; + ptrType$123.methods = [{prop: "recordCanon", name: "recordCanon", pkg: "go/types", typ: $funcType([ptrType$15, ptrType$15], [], false)}, {prop: "recordInstance", name: "recordInstance", pkg: "go/types", typ: $funcType([ptrType$1, token.Pos, sliceType$8, sliceType$3, sliceType$10], [], false)}, {prop: "assign", name: "assign", pkg: "go/types", typ: $funcType([ptrType$1, token.Pos, ptrType$15, Type], [], false)}, {prop: "localNamedVertex", name: "localNamedVertex", pkg: "go/types", typ: $funcType([ptrType$1, ptrType$10], [$Int], false)}, {prop: "typeParamVertex", name: "typeParamVertex", pkg: "go/types", typ: $funcType([ptrType$15], [$Int], false)}, {prop: "addEdge", name: "addEdge", pkg: "go/types", typ: $funcType([$Int, $Int, $Int, token.Pos, Type], [], false)}]; + ptrType$124.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "At", name: "At", pkg: "", typ: $funcType([$Int], [ptrType$3], false)}, {prop: "Lookup", name: "Lookup", pkg: "", typ: $funcType([ptrType$1, $String], [ptrType$3], false)}]; + methodSet.methods = [{prop: "add", name: "add", pkg: "go/types", typ: $funcType([sliceType, sliceType$24, $Bool, $Bool], [methodSet], false)}, {prop: "addOne", name: "addOne", pkg: "go/types", typ: $funcType([ptrType$2, sliceType$24, $Bool, $Bool], [methodSet], false)}]; + ptrType$30.methods = [{prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$125.methods = [{prop: "lookup", name: "lookup", pkg: "go/types", typ: $funcType([ptrType$10], [ptrType$10], false)}, {prop: "add", name: "add", pkg: "go/types", typ: $funcType([ptrType$10], [], false)}]; + ptrType$95.methods = [{prop: "insert", name: "insert", pkg: "go/types", typ: $funcType([ptrType$66], [], false)}, {prop: "gotoTarget", name: "gotoTarget", pkg: "go/types", typ: $funcType([$String], [ptrType$66], false)}, {prop: "enclosingTarget", name: "enclosingTarget", pkg: "go/types", typ: $funcType([$String], [ptrType$66], false)}]; + ptrType$14.methods = [{prop: "typeSet", name: "typeSet", pkg: "go/types", typ: $funcType([], [ptrType$8], false)}, {prop: "MarkImplicit", name: "MarkImplicit", pkg: "", typ: $funcType([], [], false)}, {prop: "NumExplicitMethods", name: "NumExplicitMethods", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "ExplicitMethod", name: "ExplicitMethod", pkg: "", typ: $funcType([$Int], [ptrType$2], false)}, {prop: "NumEmbeddeds", name: "NumEmbeddeds", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Embedded", name: "Embedded", pkg: "", typ: $funcType([$Int], [ptrType$10], false)}, {prop: "EmbeddedType", name: "EmbeddedType", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "NumMethods", name: "NumMethods", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [ptrType$2], false)}, {prop: "Empty", name: "Empty", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsComparable", name: "IsComparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsMethodSet", name: "IsMethodSet", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsImplicit", name: "IsImplicit", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Complete", name: "Complete", pkg: "", typ: $funcType([], [ptrType$14], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "cleanup", name: "cleanup", pkg: "go/types", typ: $funcType([], [], false)}]; + ptrType$98.methods = [{prop: "cost", name: "cost", pkg: "go/types", typ: $funcType([], [$Int], false)}]; + ptrType$99.methods = [{prop: "add", name: "add", pkg: "go/types", typ: $funcType([ptrType$98], [], false)}]; + nodeQueue.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}]; + ptrType$97.methods = [{prop: "Push", name: "Push", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "Pop", name: "Pop", pkg: "", typ: $funcType([], [$emptyInterface], false)}]; + ptrType$126.methods = [{prop: "isParameterized", name: "isParameterized", pkg: "go/types", typ: $funcType([Type], [$Bool], false)}, {prop: "varList", name: "varList", pkg: "go/types", typ: $funcType([sliceType$9], [$Bool], false)}]; + ptrType$127.methods = [{prop: "typ", name: "typ", pkg: "go/types", typ: $funcType([Type], [], false)}, {prop: "varList", name: "varList", pkg: "go/types", typ: $funcType([sliceType$9], [], false)}]; + ptrType$109.methods = [{prop: "empty", name: "empty", pkg: "go/types", typ: $funcType([], [$Bool], false)}, {prop: "pos", name: "pos", pkg: "go/types", typ: $funcType([], [token.Pos], false)}, {prop: "msg", name: "msg", pkg: "go/types", typ: $funcType([ptrType$25, Qualifier], [$String], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "errorf", name: "errorf", pkg: "go/types", typ: $funcType([token.Pos, $String, sliceType$5], [], true)}]; + posSpan.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}]; + atPos.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}]; + importDecl.methods = [{prop: "node", name: "node", pkg: "go/types", typ: $funcType([], [ast.Node], false)}]; + constDecl.methods = [{prop: "node", name: "node", pkg: "go/types", typ: $funcType([], [ast.Node], false)}]; + varDecl.methods = [{prop: "node", name: "node", pkg: "go/types", typ: $funcType([], [ast.Node], false)}]; + typeDecl.methods = [{prop: "node", name: "node", pkg: "go/types", typ: $funcType([], [ast.Node], false)}]; + funcDecl.methods = [{prop: "node", name: "node", pkg: "go/types", typ: $funcType([], [ast.Node], false)}]; + ptrType$52.methods = [{prop: "instanceHash", name: "instanceHash", pkg: "go/types", typ: $funcType([Type, sliceType$3], [$String], false)}, {prop: "lookup", name: "lookup", pkg: "go/types", typ: $funcType([$String, Type, sliceType$3], [Type], false)}, {prop: "update", name: "update", pkg: "go/types", typ: $funcType([$String, Type, sliceType$3, Type], [Type], false)}, {prop: "getID", name: "getID", pkg: "go/types", typ: $funcType([Type], [$Int], false)}]; + ptrType$128.methods = [{prop: "lookup", name: "lookup", pkg: "go/types", typ: $funcType([$String], [Object], false)}]; + ptrType$115.methods = [{prop: "describef", name: "describef", pkg: "go/types", typ: $funcType([positioner, $String, sliceType$5], [], true)}]; + ptrType$6.methods = [{prop: "langCompat", name: "langCompat", pkg: "go/types", typ: $funcType([ptrType$58], [], false)}, {prop: "allowVersion", name: "allowVersion", pkg: "go/types", typ: $funcType([ptrType$1, positioner, version], [$Bool], false)}, {prop: "verifyVersionf", name: "verifyVersionf", pkg: "go/types", typ: $funcType([positioner, version, $String, sliceType$5], [$Bool], true)}, {prop: "validType", name: "validType", pkg: "go/types", typ: $funcType([ptrType$10], [], false)}, {prop: "validType0", name: "validType0", pkg: "go/types", typ: $funcType([Type, sliceType$6, sliceType$6], [$Bool], false)}, {prop: "ident", name: "ident", pkg: "go/types", typ: $funcType([ptrType$63, ptrType$31, ptrType$10, $Bool], [], false)}, {prop: "typ", name: "typ", pkg: "go/types", typ: $funcType([ast.Expr], [Type], false)}, {prop: "varType", name: "varType", pkg: "go/types", typ: $funcType([ast.Expr], [Type], false)}, {prop: "validVarType", name: "validVarType", pkg: "go/types", typ: $funcType([ast.Expr, Type], [], false)}, {prop: "definedType", name: "definedType", pkg: "go/types", typ: $funcType([ast.Expr, ptrType$10], [Type], false)}, {prop: "genericType", name: "genericType", pkg: "go/types", typ: $funcType([ast.Expr, ptrType$35], [Type], false)}, {prop: "typInternal", name: "typInternal", pkg: "go/types", typ: $funcType([ast.Expr, ptrType$10], [Type], false)}, {prop: "instantiatedType", name: "instantiatedType", pkg: "go/types", typ: $funcType([ptrType$104, ptrType$10], [Type], false)}, {prop: "arrayLength", name: "arrayLength", pkg: "go/types", typ: $funcType([ast.Expr], [$Int64], false)}, {prop: "typeList", name: "typeList", pkg: "go/types", typ: $funcType([sliceType$10], [sliceType$3], false)}, {prop: "newTypeParam", name: "newTypeParam", pkg: "go/types", typ: $funcType([ptrType$18, Type], [ptrType$15], false)}, {prop: "subst", name: "subst", pkg: "go/types", typ: $funcType([token.Pos, Type, substMap, ptrType$10, ptrType$52], [Type], false)}, {prop: "structType", name: "structType", pkg: "go/types", typ: $funcType([ptrType$12, ptrType$43], [], false)}, {prop: "declareInSet", name: "declareInSet", pkg: "go/types", typ: $funcType([ptrType$55, token.Pos, Object], [$Bool], false)}, {prop: "tag", name: "tag", pkg: "go/types", typ: $funcType([ptrType$58], [$String], false)}, {prop: "funcBody", name: "funcBody", pkg: "go/types", typ: $funcType([ptrType$59, $String, ptrType$29, ptrType$75, constant.Value], [], false)}, {prop: "usage", name: "usage", pkg: "go/types", typ: $funcType([ptrType], [], false)}, {prop: "simpleStmt", name: "simpleStmt", pkg: "go/types", typ: $funcType([ast.Stmt], [], false)}, {prop: "stmtList", name: "stmtList", pkg: "go/types", typ: $funcType([stmtContext, sliceType$16], [], false)}, {prop: "multipleDefaults", name: "multipleDefaults", pkg: "go/types", typ: $funcType([sliceType$16], [], false)}, {prop: "openScope", name: "openScope", pkg: "go/types", typ: $funcType([ast.Node, $String], [], false)}, {prop: "closeScope", name: "closeScope", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "suspendedCall", name: "suspendedCall", pkg: "go/types", typ: $funcType([$String, ptrType$87], [], false)}, {prop: "caseValues", name: "caseValues", pkg: "go/types", typ: $funcType([ptrType$63, sliceType$10, valueMap], [], false)}, {prop: "isNil", name: "isNil", pkg: "go/types", typ: $funcType([ast.Expr], [$Bool], false)}, {prop: "caseTypes", name: "caseTypes", pkg: "go/types", typ: $funcType([ptrType$63, sliceType$10, mapType$11], [Type], false)}, {prop: "stmt", name: "stmt", pkg: "go/types", typ: $funcType([stmtContext, ast.Stmt], [], false)}, {prop: "funcType", name: "funcType", pkg: "go/types", typ: $funcType([ptrType$29, ptrType$50, ptrType$45], [], false)}, {prop: "collectParams", name: "collectParams", pkg: "go/types", typ: $funcType([ptrType, ptrType$50, $Bool], [sliceType$9, $Bool], false)}, {prop: "isTerminating", name: "isTerminating", pkg: "go/types", typ: $funcType([ast.Stmt, $String], [$Bool], false)}, {prop: "isTerminatingList", name: "isTerminatingList", pkg: "go/types", typ: $funcType([sliceType$16, $String], [$Bool], false)}, {prop: "isTerminatingSwitch", name: "isTerminatingSwitch", pkg: "go/types", typ: $funcType([ptrType$75, $String], [$Bool], false)}, {prop: "arityMatch", name: "arityMatch", pkg: "go/types", typ: $funcType([ptrType$89, ptrType$89], [], false)}, {prop: "declarePkgObj", name: "declarePkgObj", pkg: "go/types", typ: $funcType([ptrType$31, Object, ptrType$59], [], false)}, {prop: "filename", name: "filename", pkg: "go/types", typ: $funcType([$Int], [$String], false)}, {prop: "importPackage", name: "importPackage", pkg: "go/types", typ: $funcType([positioner, $String, $String], [ptrType$1], false)}, {prop: "collectObjects", name: "collectObjects", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "unpackRecv", name: "unpackRecv", pkg: "go/types", typ: $funcType([ast.Expr, $Bool], [$Bool, ptrType$31, sliceType$21], false)}, {prop: "resolveBaseTypeName", name: "resolveBaseTypeName", pkg: "go/types", typ: $funcType([$Bool, ast.Expr, sliceType$19], [$Bool, ptrType$18], false)}, {prop: "packageObjects", name: "packageObjects", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "unusedImports", name: "unusedImports", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "errorUnusedPkg", name: "errorUnusedPkg", pkg: "go/types", typ: $funcType([ptrType$32], [], false)}, {prop: "newNamed", name: "newNamed", pkg: "go/types", typ: $funcType([ptrType$18, Type, sliceType], [ptrType$10], false)}, {prop: "newNamedInstance", name: "newNamedInstance", pkg: "go/types", typ: $funcType([token.Pos, ptrType$10, sliceType$3, ptrType$10], [ptrType$10], false)}, {prop: "context", name: "context", pkg: "go/types", typ: $funcType([], [ptrType$52], false)}, {prop: "monomorph", name: "monomorph", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "reportInstanceLoop", name: "reportInstanceLoop", pkg: "go/types", typ: $funcType([$Int], [], false)}, {prop: "missingMethod", name: "missingMethod", pkg: "go/types", typ: $funcType([Type, Type, $Bool, funcType$7, ptrType$35], [ptrType$2, $Bool], false)}, {prop: "interfacePtrError", name: "interfacePtrError", pkg: "go/types", typ: $funcType([Type], [$String], false)}, {prop: "funcString", name: "funcString", pkg: "go/types", typ: $funcType([ptrType$2, $Bool], [$String], false)}, {prop: "assertableTo", name: "assertableTo", pkg: "go/types", typ: $funcType([Type, Type, ptrType$35], [$Bool], false)}, {prop: "newAssertableTo", name: "newAssertableTo", pkg: "go/types", typ: $funcType([token.Pos, Type, Type, ptrType$35], [$Bool], false)}, {prop: "labels", name: "labels", pkg: "go/types", typ: $funcType([ptrType$75], [], false)}, {prop: "blockBranches", name: "blockBranches", pkg: "go/types", typ: $funcType([ptrType, ptrType$95, ptrType$66, sliceType$16], [sliceType$26], false)}, {prop: "newInterface", name: "newInterface", pkg: "go/types", typ: $funcType([], [ptrType$14], false)}, {prop: "interfaceType", name: "interfaceType", pkg: "go/types", typ: $funcType([ptrType$14, ptrType$46, ptrType$10], [], false)}, {prop: "instance", name: "instance", pkg: "go/types", typ: $funcType([token.Pos, Type, sliceType$3, ptrType$10, ptrType$52], [Type], false)}, {prop: "validateTArgLen", name: "validateTArgLen", pkg: "go/types", typ: $funcType([token.Pos, $Int, $Int], [$Bool], false)}, {prop: "verify", name: "verify", pkg: "go/types", typ: $funcType([token.Pos, sliceType$8, sliceType$3, ptrType$52], [$Int, $error], false)}, {prop: "implements$", name: "implements", pkg: "go/types", typ: $funcType([token.Pos, Type, Type, $Bool, ptrType$35], [$Bool], false)}, {prop: "initOrder", name: "initOrder", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "reportCycle", name: "reportCycle", pkg: "go/types", typ: $funcType([sliceType$7], [], false)}, {prop: "infer", name: "infer", pkg: "go/types", typ: $funcType([positioner, sliceType$8, sliceType$3, ptrType$16, sliceType$29], [sliceType$3], false)}, {prop: "renameTParams", name: "renameTParams", pkg: "go/types", typ: $funcType([token.Pos, sliceType$8, Type], [sliceType$8, Type], false)}, {prop: "indexExpr", name: "indexExpr", pkg: "go/types", typ: $funcType([ptrType$63, ptrType$104], [$Bool], false)}, {prop: "sliceExpr", name: "sliceExpr", pkg: "go/types", typ: $funcType([ptrType$63, ptrType$103], [], false)}, {prop: "singleIndex", name: "singleIndex", pkg: "go/types", typ: $funcType([ptrType$104], [ast.Expr], false)}, {prop: "index", name: "index", pkg: "go/types", typ: $funcType([ast.Expr, $Int64], [Type, $Int64], false)}, {prop: "isValidIndex", name: "isValidIndex", pkg: "go/types", typ: $funcType([ptrType$63, errors$1.Code, $String, $Bool], [$Bool], false)}, {prop: "indexedElts", name: "indexedElts", pkg: "go/types", typ: $funcType([sliceType$10, Type, $Int64], [$Int64], false)}, {prop: "op", name: "op", pkg: "go/types", typ: $funcType([opPredicates, ptrType$63, token.Token], [$Bool], false)}, {prop: "unary", name: "unary", pkg: "go/types", typ: $funcType([ptrType$63, ptrType$21], [], false)}, {prop: "updateExprType", name: "updateExprType", pkg: "go/types", typ: $funcType([ast.Expr, Type, $Bool], [], false)}, {prop: "updateExprType0", name: "updateExprType0", pkg: "go/types", typ: $funcType([ast.Expr, ast.Expr, Type, $Bool], [], false)}, {prop: "updateExprVal", name: "updateExprVal", pkg: "go/types", typ: $funcType([ast.Expr, constant.Value], [], false)}, {prop: "implicitTypeAndValue", name: "implicitTypeAndValue", pkg: "go/types", typ: $funcType([ptrType$63, Type], [Type, constant.Value, errors$1.Code], false)}, {prop: "comparison", name: "comparison", pkg: "go/types", typ: $funcType([ptrType$63, ptrType$63, token.Token, $Bool], [], false)}, {prop: "incomparableCause", name: "incomparableCause", pkg: "go/types", typ: $funcType([Type], [$String], false)}, {prop: "kindString", name: "kindString", pkg: "go/types", typ: $funcType([Type], [$String], false)}, {prop: "shift", name: "shift", pkg: "go/types", typ: $funcType([ptrType$63, ptrType$63, ast.Expr, token.Token], [], false)}, {prop: "binary", name: "binary", pkg: "go/types", typ: $funcType([ptrType$63, ast.Expr, ast.Expr, ast.Expr, token.Token, token.Pos], [], false)}, {prop: "matchTypes", name: "matchTypes", pkg: "go/types", typ: $funcType([ptrType$63, ptrType$63], [], false)}, {prop: "rawExpr", name: "rawExpr", pkg: "go/types", typ: $funcType([Type, ptrType$63, ast.Expr, Type, $Bool], [exprKind], false)}, {prop: "nonGeneric", name: "nonGeneric", pkg: "go/types", typ: $funcType([Type, ptrType$63], [], false)}, {prop: "exprInternal", name: "exprInternal", pkg: "go/types", typ: $funcType([Type, ptrType$63, ast.Expr, Type], [exprKind], false)}, {prop: "typeAssertion", name: "typeAssertion", pkg: "go/types", typ: $funcType([ast.Expr, ptrType$63, Type, $Bool], [], false)}, {prop: "expr", name: "expr", pkg: "go/types", typ: $funcType([Type, ptrType$63, ast.Expr], [], false)}, {prop: "genericExpr", name: "genericExpr", pkg: "go/types", typ: $funcType([ptrType$63, ast.Expr], [], false)}, {prop: "multiExpr", name: "multiExpr", pkg: "go/types", typ: $funcType([ast.Expr, $Bool], [sliceType$29, $Bool], false)}, {prop: "exprWithHint", name: "exprWithHint", pkg: "go/types", typ: $funcType([ptrType$63, ast.Expr, Type], [], false)}, {prop: "exprOrType", name: "exprOrType", pkg: "go/types", typ: $funcType([ptrType$63, ast.Expr, $Bool], [], false)}, {prop: "exclude", name: "exclude", pkg: "go/types", typ: $funcType([ptrType$63, $Uint], [], false)}, {prop: "singleValue", name: "singleValue", pkg: "go/types", typ: $funcType([ptrType$63], [], false)}, {prop: "qualifier", name: "qualifier", pkg: "go/types", typ: $funcType([ptrType$1], [$String], false)}, {prop: "markImports", name: "markImports", pkg: "go/types", typ: $funcType([ptrType$1], [], false)}, {prop: "sprintf", name: "sprintf", pkg: "go/types", typ: $funcType([$String, sliceType$5], [$String], true)}, {prop: "trace", name: "trace", pkg: "go/types", typ: $funcType([token.Pos, $String, sliceType$5], [], true)}, {prop: "dump", name: "dump", pkg: "go/types", typ: $funcType([$String, sliceType$5], [], true)}, {prop: "report", name: "report", pkg: "go/types", typ: $funcType([ptrType$109], [], false)}, {prop: "error", name: "error", pkg: "go/types", typ: $funcType([positioner, errors$1.Code, $String], [], false)}, {prop: "errorf", name: "errorf", pkg: "go/types", typ: $funcType([positioner, errors$1.Code, $String, sliceType$5], [], true)}, {prop: "softErrorf", name: "softErrorf", pkg: "go/types", typ: $funcType([positioner, errors$1.Code, $String, sliceType$5], [], true)}, {prop: "versionErrorf", name: "versionErrorf", pkg: "go/types", typ: $funcType([positioner, version, $String, sliceType$5], [], true)}, {prop: "reportAltDecl", name: "reportAltDecl", pkg: "go/types", typ: $funcType([Object], [], false)}, {prop: "declare", name: "declare", pkg: "go/types", typ: $funcType([ptrType, ptrType$31, Object, token.Pos], [], false)}, {prop: "objDecl", name: "objDecl", pkg: "go/types", typ: $funcType([Object, ptrType$10], [], false)}, {prop: "validCycle", name: "validCycle", pkg: "go/types", typ: $funcType([Object], [$Bool], false)}, {prop: "cycleError", name: "cycleError", pkg: "go/types", typ: $funcType([sliceType$7], [], false)}, {prop: "walkDecls", name: "walkDecls", pkg: "go/types", typ: $funcType([sliceType$43, funcType$8], [], false)}, {prop: "walkDecl", name: "walkDecl", pkg: "go/types", typ: $funcType([ast.Decl, funcType$8], [], false)}, {prop: "constDecl", name: "constDecl", pkg: "go/types", typ: $funcType([ptrType$33, ast.Expr, ast.Expr, $Bool], [], false)}, {prop: "varDecl", name: "varDecl", pkg: "go/types", typ: $funcType([ptrType$17, sliceType$9, ast.Expr, ast.Expr], [], false)}, {prop: "isImportedConstraint", name: "isImportedConstraint", pkg: "go/types", typ: $funcType([Type], [$Bool], false)}, {prop: "typeDecl", name: "typeDecl", pkg: "go/types", typ: $funcType([ptrType$18, ptrType$90, ptrType$10], [], false)}, {prop: "collectTypeParams", name: "collectTypeParams", pkg: "go/types", typ: $funcType([ptrType$85, ptrType$50], [], false)}, {prop: "bound", name: "bound", pkg: "go/types", typ: $funcType([ast.Expr], [Type], false)}, {prop: "declareTypeParams", name: "declareTypeParams", pkg: "go/types", typ: $funcType([sliceType$8, sliceType$21], [sliceType$8], false)}, {prop: "collectMethods", name: "collectMethods", pkg: "go/types", typ: $funcType([ptrType$18], [], false)}, {prop: "checkFieldUniqueness", name: "checkFieldUniqueness", pkg: "go/types", typ: $funcType([ptrType$10], [], false)}, {prop: "funcDecl", name: "funcDecl", pkg: "go/types", typ: $funcType([ptrType$2, ptrType$59], [], false)}, {prop: "declStmt", name: "declStmt", pkg: "go/types", typ: $funcType([ast.Decl], [], false)}, {prop: "conversion", name: "conversion", pkg: "go/types", typ: $funcType([ptrType$63, Type], [], false)}, {prop: "overflow", name: "overflow", pkg: "go/types", typ: $funcType([ptrType$63, token.Pos], [], false)}, {prop: "representable", name: "representable", pkg: "go/types", typ: $funcType([ptrType$63, ptrType$4], [], false)}, {prop: "representation", name: "representation", pkg: "go/types", typ: $funcType([ptrType$63, ptrType$4], [constant.Value, errors$1.Code], false)}, {prop: "invalidConversion", name: "invalidConversion", pkg: "go/types", typ: $funcType([errors$1.Code, ptrType$63, Type], [], false)}, {prop: "convertUntyped", name: "convertUntyped", pkg: "go/types", typ: $funcType([ptrType$63, Type], [], false)}, {prop: "addDeclDep", name: "addDeclDep", pkg: "go/types", typ: $funcType([Object], [], false)}, {prop: "brokenAlias", name: "brokenAlias", pkg: "go/types", typ: $funcType([ptrType$18], [], false)}, {prop: "validAlias", name: "validAlias", pkg: "go/types", typ: $funcType([ptrType$18, Type], [], false)}, {prop: "isBrokenAlias", name: "isBrokenAlias", pkg: "go/types", typ: $funcType([ptrType$18], [$Bool], false)}, {prop: "rememberUntyped", name: "rememberUntyped", pkg: "go/types", typ: $funcType([ast.Expr, $Bool, operandMode, ptrType$4, constant.Value], [], false)}, {prop: "later", name: "later", pkg: "go/types", typ: $funcType([funcType$1], [ptrType$115], false)}, {prop: "push", name: "push", pkg: "go/types", typ: $funcType([Object], [$Int], false)}, {prop: "pop", name: "pop", pkg: "go/types", typ: $funcType([], [Object], false)}, {prop: "needsCleanup", name: "needsCleanup", pkg: "go/types", typ: $funcType([cleaner], [], false)}, {prop: "initFiles", name: "initFiles", pkg: "go/types", typ: $funcType([sliceType$35], [], false)}, {prop: "handleBailout", name: "handleBailout", pkg: "go/types", typ: $funcType([ptrType$107], [], false)}, {prop: "Files", name: "Files", pkg: "", typ: $funcType([sliceType$35], [$error], false)}, {prop: "checkFiles", name: "checkFiles", pkg: "go/types", typ: $funcType([sliceType$35], [$error], false)}, {prop: "processDelayed", name: "processDelayed", pkg: "go/types", typ: $funcType([$Int], [], false)}, {prop: "cleanup", name: "cleanup", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "record", name: "record", pkg: "go/types", typ: $funcType([ptrType$63], [], false)}, {prop: "recordUntyped", name: "recordUntyped", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "recordTypeAndValue", name: "recordTypeAndValue", pkg: "go/types", typ: $funcType([ast.Expr, operandMode, Type, constant.Value], [], false)}, {prop: "recordBuiltinType", name: "recordBuiltinType", pkg: "go/types", typ: $funcType([ast.Expr, ptrType$29], [], false)}, {prop: "recordCommaOkTypes", name: "recordCommaOkTypes", pkg: "go/types", typ: $funcType([ast.Expr, sliceType$29], [], false)}, {prop: "recordInstance", name: "recordInstance", pkg: "go/types", typ: $funcType([ast.Expr, sliceType$3, Type], [], false)}, {prop: "recordDef", name: "recordDef", pkg: "go/types", typ: $funcType([ptrType$31, Object], [], false)}, {prop: "recordUse", name: "recordUse", pkg: "go/types", typ: $funcType([ptrType$31, Object], [], false)}, {prop: "recordImplicit", name: "recordImplicit", pkg: "go/types", typ: $funcType([ast.Node, Object], [], false)}, {prop: "recordSelection", name: "recordSelection", pkg: "go/types", typ: $funcType([ptrType$37, SelectionKind, Type, Object, sliceType$24, $Bool], [], false)}, {prop: "recordScope", name: "recordScope", pkg: "go/types", typ: $funcType([ast.Node, ptrType], [], false)}, {prop: "funcInst", name: "funcInst", pkg: "go/types", typ: $funcType([ptrType$29, token.Pos, ptrType$63, ptrType$104, $Bool], [sliceType$3, sliceType$10], false)}, {prop: "instantiateSignature", name: "instantiateSignature", pkg: "go/types", typ: $funcType([token.Pos, ast.Expr, ptrType$29, sliceType$3, sliceType$10], [ptrType$29], false)}, {prop: "callExpr", name: "callExpr", pkg: "go/types", typ: $funcType([ptrType$63, ptrType$87], [exprKind], false)}, {prop: "exprList", name: "exprList", pkg: "go/types", typ: $funcType([sliceType$10], [sliceType$29], false)}, {prop: "genericExprList", name: "genericExprList", pkg: "go/types", typ: $funcType([sliceType$10], [sliceType$29, sliceType$41, sliceType$42], false)}, {prop: "arguments$", name: "arguments", pkg: "go/types", typ: $funcType([ptrType$87, ptrType$29, sliceType$3, sliceType$10, sliceType$29, sliceType$41, sliceType$42], [ptrType$29], false)}, {prop: "selector", name: "selector", pkg: "go/types", typ: $funcType([ptrType$63, ptrType$37, ptrType$10, $Bool], [], false)}, {prop: "use", name: "use", pkg: "go/types", typ: $funcType([sliceType$10], [$Bool], true)}, {prop: "useLHS", name: "useLHS", pkg: "go/types", typ: $funcType([sliceType$10], [$Bool], true)}, {prop: "useN", name: "useN", pkg: "go/types", typ: $funcType([sliceType$10, $Bool], [$Bool], false)}, {prop: "use1", name: "use1", pkg: "go/types", typ: $funcType([ast.Expr, $Bool], [$Bool], false)}, {prop: "builtin", name: "builtin", pkg: "go/types", typ: $funcType([ptrType$63, ptrType$87, builtinId], [$Bool], false)}, {prop: "applyTypeFunc", name: "applyTypeFunc", pkg: "go/types", typ: $funcType([funcType$9, ptrType$63, builtinId], [Type], false)}, {prop: "assignment", name: "assignment", pkg: "go/types", typ: $funcType([ptrType$63, Type, $String], [], false)}, {prop: "initConst", name: "initConst", pkg: "go/types", typ: $funcType([ptrType$33, ptrType$63], [], false)}, {prop: "initVar", name: "initVar", pkg: "go/types", typ: $funcType([ptrType$17, ptrType$63, $String], [], false)}, {prop: "lhsVar", name: "lhsVar", pkg: "go/types", typ: $funcType([ast.Expr], [Type], false)}, {prop: "assignVar", name: "assignVar", pkg: "go/types", typ: $funcType([ast.Expr, ast.Expr, ptrType$63], [], false)}, {prop: "typesSummary", name: "typesSummary", pkg: "go/types", typ: $funcType([sliceType$3, $Bool], [$String], false)}, {prop: "assignError", name: "assignError", pkg: "go/types", typ: $funcType([sliceType$10, $Int, $Int], [], false)}, {prop: "returnError", name: "returnError", pkg: "go/types", typ: $funcType([positioner, sliceType$9, sliceType$29], [], false)}, {prop: "initVars", name: "initVars", pkg: "go/types", typ: $funcType([sliceType$9, sliceType$10, ast.Stmt], [], false)}, {prop: "assignVars", name: "assignVars", pkg: "go/types", typ: $funcType([sliceType$10, sliceType$10], [], false)}, {prop: "shortVarDecl", name: "shortVarDecl", pkg: "go/types", typ: $funcType([positioner, sliceType$10, sliceType$10], [], false)}]; + ptrType$26.methods = [{prop: "Dir", name: "Dir", pkg: "", typ: $funcType([], [ChanDir], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$4.methods = [{prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [BasicKind], false)}, {prop: "Info", name: "Info", pkg: "", typ: $funcType([], [BasicInfo], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$11.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + Error.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$129.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Unwrap", name: "Unwrap", pkg: "", typ: $funcType([], [$error], false)}]; + ptrType$106.methods = [{prop: "alignof", name: "alignof", pkg: "go/types", typ: $funcType([Type], [$Int64], false)}, {prop: "offsetsof", name: "offsetsof", pkg: "go/types", typ: $funcType([ptrType$12], [sliceType$18], false)}, {prop: "offsetof", name: "offsetof", pkg: "go/types", typ: $funcType([Type, sliceType$24], [$Int64], false)}, {prop: "sizeof", name: "sizeof", pkg: "go/types", typ: $funcType([Type], [$Int64], false)}, {prop: "Check", name: "Check", pkg: "", typ: $funcType([$String, ptrType$25, sliceType$35, ptrType$116], [ptrType$1, $error], false)}]; + ptrType$116.methods = [{prop: "recordTypes", name: "recordTypes", pkg: "go/types", typ: $funcType([], [$Bool], false)}, {prop: "TypeOf", name: "TypeOf", pkg: "", typ: $funcType([ast.Expr], [Type], false)}, {prop: "ObjectOf", name: "ObjectOf", pkg: "", typ: $funcType([ptrType$31], [Object], false)}]; + TypeAndValue.methods = [{prop: "IsVoid", name: "IsVoid", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsType", name: "IsType", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsBuiltin", name: "IsBuiltin", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsValue", name: "IsValue", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsNil", name: "IsNil", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Addressable", name: "Addressable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Assignable", name: "Assignable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "HasOk", name: "HasOk", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$105.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + version.init("go/types", [{prop: "major", name: "major", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "minor", name: "minor", embedded: false, exported: false, typ: $Int, tag: ""}]); + Union.init("go/types", [{prop: "terms", name: "terms", embedded: false, exported: false, typ: sliceType$11, tag: ""}]); + Term.init("go/types", [{prop: "tilde", name: "tilde", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: Type, tag: ""}]); + unifier.init("go/types", [{prop: "handles", name: "handles", embedded: false, exported: false, typ: mapType, tag: ""}, {prop: "depth", name: "depth", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "enableInterfaceInference", name: "enableInterfaceInference", embedded: false, exported: false, typ: $Bool, tag: ""}]); + typeParamsById.init(ptrType$15); + term.init("go/types", [{prop: "tilde", name: "tilde", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: Type, tag: ""}]); + Qualifier.init([ptrType$1], [$String], false); + typeWriter.init("go/types", [{prop: "buf", name: "buf", embedded: false, exported: false, typ: ptrType$119, tag: ""}, {prop: "seen", name: "seen", embedded: false, exported: false, typ: mapType$1, tag: ""}, {prop: "qf", name: "qf", embedded: false, exported: false, typ: Qualifier, tag: ""}, {prop: "ctxt", name: "ctxt", embedded: false, exported: false, typ: ptrType$52, tag: ""}, {prop: "tparams", name: "tparams", embedded: false, exported: false, typ: ptrType$49, tag: ""}, {prop: "paramNames", name: "paramNames", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "tpSubscripts", name: "tpSubscripts", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "pkgInfo", name: "pkgInfo", embedded: false, exported: false, typ: $Bool, tag: ""}]); + _TypeSet.init("go/types", [{prop: "methods", name: "methods", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "terms", name: "terms", embedded: false, exported: false, typ: termlist, tag: ""}, {prop: "comparable", name: "comparable", embedded: false, exported: false, typ: $Bool, tag: ""}]); + byUniqueMethodName.init(ptrType$2); + TypeParam.init("go/types", [{prop: "check", name: "check", embedded: false, exported: false, typ: ptrType$6, tag: ""}, {prop: "id", name: "id", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "obj", name: "obj", embedded: false, exported: false, typ: ptrType$18, tag: ""}, {prop: "index", name: "index", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "bound", name: "bound", embedded: false, exported: false, typ: Type, tag: ""}]); + TypeParamList.init("go/types", [{prop: "tparams", name: "tparams", embedded: false, exported: false, typ: sliceType$8, tag: ""}]); + TypeList.init("go/types", [{prop: "types", name: "types", embedded: false, exported: false, typ: sliceType$3, tag: ""}]); + Type.init([{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}]); + Tuple.init("go/types", [{prop: "vars", name: "vars", embedded: false, exported: false, typ: sliceType$9, tag: ""}]); + termlist.init(ptrType$5); + substMap.init(ptrType$15, Type); + subster.init("go/types", [{prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "smap", name: "smap", embedded: false, exported: false, typ: substMap, tag: ""}, {prop: "check", name: "check", embedded: false, exported: false, typ: ptrType$6, tag: ""}, {prop: "expanding", name: "expanding", embedded: false, exported: false, typ: ptrType$10, tag: ""}, {prop: "ctxt", name: "ctxt", embedded: false, exported: false, typ: ptrType$52, tag: ""}]); + Struct.init("go/types", [{prop: "fields", name: "fields", embedded: false, exported: false, typ: sliceType$9, tag: ""}, {prop: "tags", name: "tags", embedded: false, exported: false, typ: sliceType$13, tag: ""}]); + valueMap.init($emptyInterface, sliceType$17); + valueType.init("go/types", [{prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: Type, tag: ""}]); + Slice.init("go/types", [{prop: "elem", name: "elem", embedded: false, exported: false, typ: Type, tag: ""}]); + Sizes.init([{prop: "Alignof", name: "Alignof", pkg: "", typ: $funcType([Type], [$Int64], false)}, {prop: "Offsetsof", name: "Offsetsof", pkg: "", typ: $funcType([sliceType$9], [sliceType$18], false)}, {prop: "Sizeof", name: "Sizeof", pkg: "", typ: $funcType([Type], [$Int64], false)}]); + StdSizes.init("", [{prop: "WordSize", name: "WordSize", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "MaxAlign", name: "MaxAlign", embedded: false, exported: true, typ: $Int64, tag: ""}]); + Signature.init("go/types", [{prop: "rparams", name: "rparams", embedded: false, exported: false, typ: ptrType$49, tag: ""}, {prop: "tparams", name: "tparams", embedded: false, exported: false, typ: ptrType$49, tag: ""}, {prop: "scope", name: "scope", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "recv", name: "recv", embedded: false, exported: false, typ: ptrType$17, tag: ""}, {prop: "params", name: "params", embedded: false, exported: false, typ: ptrType$16, tag: ""}, {prop: "results", name: "results", embedded: false, exported: false, typ: ptrType$16, tag: ""}, {prop: "variadic", name: "variadic", embedded: false, exported: false, typ: $Bool, tag: ""}]); + Selection.init("go/types", [{prop: "kind", name: "kind", embedded: false, exported: false, typ: SelectionKind, tag: ""}, {prop: "recv", name: "recv", embedded: false, exported: false, typ: Type, tag: ""}, {prop: "obj", name: "obj", embedded: false, exported: false, typ: Object, tag: ""}, {prop: "index", name: "index", embedded: false, exported: false, typ: sliceType$24, tag: ""}, {prop: "indirect", name: "indirect", embedded: false, exported: false, typ: $Bool, tag: ""}]); + Scope.init("go/types", [{prop: "parent", name: "parent", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "children", name: "children", embedded: false, exported: false, typ: sliceType$19, tag: ""}, {prop: "number", name: "number", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "elems", name: "elems", embedded: false, exported: false, typ: mapType$2, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "end", name: "end", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "comment", name: "comment", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "isFunc", name: "isFunc", embedded: false, exported: false, typ: $Bool, tag: ""}]); + lazyObject.init("go/types", [{prop: "parent", name: "parent", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "resolve", name: "resolve", embedded: false, exported: false, typ: funcType$4, tag: ""}, {prop: "obj", name: "obj", embedded: false, exported: false, typ: Object, tag: ""}, {prop: "once", name: "once", embedded: false, exported: false, typ: sync.Once, tag: ""}]); + declInfo.init("go/types", [{prop: "file", name: "file", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "lhs", name: "lhs", embedded: false, exported: false, typ: sliceType$9, tag: ""}, {prop: "vtyp", name: "vtyp", embedded: false, exported: false, typ: ast.Expr, tag: ""}, {prop: "init", name: "init", embedded: false, exported: false, typ: ast.Expr, tag: ""}, {prop: "inherited", name: "inherited", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "tdecl", name: "tdecl", embedded: false, exported: false, typ: ptrType$90, tag: ""}, {prop: "fdecl", name: "fdecl", embedded: false, exported: false, typ: ptrType$88, tag: ""}, {prop: "deps", name: "deps", embedded: false, exported: false, typ: mapType$3, tag: ""}]); + inSourceOrder.init(Object); + ifacePair.init("go/types", [{prop: "x", name: "x", embedded: false, exported: false, typ: ptrType$14, tag: ""}, {prop: "y", name: "y", embedded: false, exported: false, typ: ptrType$14, tag: ""}, {prop: "prev", name: "prev", embedded: false, exported: false, typ: ptrType$24, tag: ""}]); + comparer.init("go/types", [{prop: "ignoreTags", name: "ignoreTags", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "ignoreInvalids", name: "ignoreInvalids", embedded: false, exported: false, typ: $Bool, tag: ""}]); + Pointer.init("go/types", [{prop: "base", name: "base", embedded: false, exported: false, typ: Type, tag: ""}]); + Package.init("go/types", [{prop: "path", name: "path", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "scope", name: "scope", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "imports", name: "imports", embedded: false, exported: false, typ: sliceType$23, tag: ""}, {prop: "complete", name: "complete", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "fake", name: "fake", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "cgo", name: "cgo", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "goVersion", name: "goVersion", embedded: false, exported: false, typ: $String, tag: ""}]); + operand.init("go/types", [{prop: "mode", name: "mode", embedded: false, exported: false, typ: operandMode, tag: ""}, {prop: "expr", name: "expr", embedded: false, exported: false, typ: ast.Expr, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: Type, tag: ""}, {prop: "val", name: "val", embedded: false, exported: false, typ: constant.Value, tag: ""}, {prop: "id", name: "id", embedded: false, exported: false, typ: builtinId, tag: ""}]); + objset.init($String, Object); + Object.init([{prop: "Exported", name: "Exported", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Id", name: "Id", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Parent", name: "Parent", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "Pkg", name: "Pkg", pkg: "", typ: $funcType([], [ptrType$1], false)}, {prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [Type], false)}, {prop: "color", name: "color", pkg: "go/types", typ: $funcType([], [color], false)}, {prop: "order", name: "order", pkg: "go/types", typ: $funcType([], [$Uint32], false)}, {prop: "sameId", name: "sameId", pkg: "go/types", typ: $funcType([ptrType$1, $String], [$Bool], false)}, {prop: "scopePos", name: "scopePos", pkg: "go/types", typ: $funcType([], [token.Pos], false)}, {prop: "setColor", name: "setColor", pkg: "go/types", typ: $funcType([color], [], false)}, {prop: "setOrder", name: "setOrder", pkg: "go/types", typ: $funcType([$Uint32], [], false)}, {prop: "setParent", name: "setParent", pkg: "go/types", typ: $funcType([ptrType], [], false)}, {prop: "setScopePos", name: "setScopePos", pkg: "go/types", typ: $funcType([token.Pos], [], false)}, {prop: "setType", name: "setType", pkg: "go/types", typ: $funcType([Type], [], false)}]); + object.init("go/types", [{prop: "parent", name: "parent", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "pkg", name: "pkg", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: Type, tag: ""}, {prop: "order_", name: "order_", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "color_", name: "color_", embedded: false, exported: false, typ: color, tag: ""}, {prop: "scopePos_", name: "scopePos_", embedded: false, exported: false, typ: token.Pos, tag: ""}]); + PkgName.init("go/types", [{prop: "object", name: "object", embedded: true, exported: false, typ: object, tag: ""}, {prop: "imported", name: "imported", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "used", name: "used", embedded: false, exported: false, typ: $Bool, tag: ""}]); + Const.init("go/types", [{prop: "object", name: "object", embedded: true, exported: false, typ: object, tag: ""}, {prop: "val", name: "val", embedded: false, exported: false, typ: constant.Value, tag: ""}]); + TypeName.init("go/types", [{prop: "object", name: "object", embedded: true, exported: false, typ: object, tag: ""}]); + Var.init("go/types", [{prop: "object", name: "object", embedded: true, exported: false, typ: object, tag: ""}, {prop: "embedded", name: "embedded", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "isField", name: "isField", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "used", name: "used", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "origin", name: "origin", embedded: false, exported: false, typ: ptrType$17, tag: ""}]); + Func.init("go/types", [{prop: "object", name: "object", embedded: true, exported: false, typ: object, tag: ""}, {prop: "hasPtrRecv_", name: "hasPtrRecv_", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "origin", name: "origin", embedded: false, exported: false, typ: ptrType$2, tag: ""}]); + Label.init("go/types", [{prop: "object", name: "object", embedded: true, exported: false, typ: object, tag: ""}, {prop: "used", name: "used", embedded: false, exported: false, typ: $Bool, tag: ""}]); + Builtin.init("go/types", [{prop: "object", name: "object", embedded: true, exported: false, typ: object, tag: ""}, {prop: "id", name: "id", embedded: false, exported: false, typ: builtinId, tag: ""}]); + Nil.init("go/types", [{prop: "object", name: "object", embedded: true, exported: false, typ: object, tag: ""}]); + Named.init("go/types", [{prop: "check", name: "check", embedded: false, exported: false, typ: ptrType$6, tag: ""}, {prop: "obj", name: "obj", embedded: false, exported: false, typ: ptrType$18, tag: ""}, {prop: "fromRHS", name: "fromRHS", embedded: false, exported: false, typ: Type, tag: ""}, {prop: "inst", name: "inst", embedded: false, exported: false, typ: ptrType$53, tag: ""}, {prop: "mu", name: "mu", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "state_", name: "state_", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "underlying", name: "underlying", embedded: false, exported: false, typ: Type, tag: ""}, {prop: "tparams", name: "tparams", embedded: false, exported: false, typ: ptrType$49, tag: ""}, {prop: "methods", name: "methods", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "loader", name: "loader", embedded: false, exported: false, typ: funcType$6, tag: ""}]); + instance.init("go/types", [{prop: "orig", name: "orig", embedded: false, exported: false, typ: ptrType$10, tag: ""}, {prop: "targs", name: "targs", embedded: false, exported: false, typ: ptrType$57, tag: ""}, {prop: "expandedMethods", name: "expandedMethods", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "ctxt", name: "ctxt", embedded: false, exported: false, typ: ptrType$52, tag: ""}]); + monoGraph.init("go/types", [{prop: "vertices", name: "vertices", embedded: false, exported: false, typ: sliceType$37, tag: ""}, {prop: "edges", name: "edges", embedded: false, exported: false, typ: sliceType$38, tag: ""}, {prop: "canon", name: "canon", embedded: false, exported: false, typ: mapType$4, tag: ""}, {prop: "nameIdx", name: "nameIdx", embedded: false, exported: false, typ: mapType$5, tag: ""}]); + monoVertex.init("go/types", [{prop: "weight", name: "weight", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "pre", name: "pre", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "len", name: "len", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "obj", name: "obj", embedded: false, exported: false, typ: ptrType$18, tag: ""}]); + monoEdge.init("go/types", [{prop: "dst", name: "dst", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "src", name: "src", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "weight", name: "weight", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: Type, tag: ""}]); + MethodSet.init("go/types", [{prop: "list", name: "list", embedded: false, exported: false, typ: sliceType$1, tag: ""}]); + methodSet.init($String, ptrType$3); + Map.init("go/types", [{prop: "key", name: "key", embedded: false, exported: false, typ: Type, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: Type, tag: ""}]); + embeddedType.init("go/types", [{prop: "typ", name: "typ", embedded: false, exported: false, typ: Type, tag: ""}, {prop: "index", name: "index", embedded: false, exported: false, typ: sliceType$24, tag: ""}, {prop: "indirect", name: "indirect", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "multiples", name: "multiples", embedded: false, exported: false, typ: $Bool, tag: ""}]); + instanceLookup.init("go/types", [{prop: "buf", name: "buf", embedded: false, exported: false, typ: arrayType$1, tag: ""}, {prop: "m", name: "m", embedded: false, exported: false, typ: mapType$6, tag: ""}]); + block.init("go/types", [{prop: "parent", name: "parent", embedded: false, exported: false, typ: ptrType$95, tag: ""}, {prop: "lstmt", name: "lstmt", embedded: false, exported: false, typ: ptrType$66, tag: ""}, {prop: "labels", name: "labels", embedded: false, exported: false, typ: mapType$7, tag: ""}]); + Interface.init("go/types", [{prop: "check", name: "check", embedded: false, exported: false, typ: ptrType$6, tag: ""}, {prop: "methods", name: "methods", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "embeddeds", name: "embeddeds", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "embedPos", name: "embedPos", embedded: false, exported: false, typ: ptrType$7, tag: ""}, {prop: "implicit", name: "implicit", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "complete", name: "complete", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "tset", name: "tset", embedded: false, exported: false, typ: ptrType$8, tag: ""}]); + dependency.init([{prop: "Exported", name: "Exported", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Id", name: "Id", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Parent", name: "Parent", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "Pkg", name: "Pkg", pkg: "", typ: $funcType([], [ptrType$1], false)}, {prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [Type], false)}, {prop: "color", name: "color", pkg: "go/types", typ: $funcType([], [color], false)}, {prop: "isDependency", name: "isDependency", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "order", name: "order", pkg: "go/types", typ: $funcType([], [$Uint32], false)}, {prop: "sameId", name: "sameId", pkg: "go/types", typ: $funcType([ptrType$1, $String], [$Bool], false)}, {prop: "scopePos", name: "scopePos", pkg: "go/types", typ: $funcType([], [token.Pos], false)}, {prop: "setColor", name: "setColor", pkg: "go/types", typ: $funcType([color], [], false)}, {prop: "setOrder", name: "setOrder", pkg: "go/types", typ: $funcType([$Uint32], [], false)}, {prop: "setParent", name: "setParent", pkg: "go/types", typ: $funcType([ptrType], [], false)}, {prop: "setScopePos", name: "setScopePos", pkg: "go/types", typ: $funcType([token.Pos], [], false)}, {prop: "setType", name: "setType", pkg: "go/types", typ: $funcType([Type], [], false)}]); + graphNode.init("go/types", [{prop: "obj", name: "obj", embedded: false, exported: false, typ: dependency, tag: ""}, {prop: "pred", name: "pred", embedded: false, exported: false, typ: nodeSet, tag: ""}, {prop: "succ", name: "succ", embedded: false, exported: false, typ: nodeSet, tag: ""}, {prop: "index", name: "index", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "ndeps", name: "ndeps", embedded: false, exported: false, typ: $Int, tag: ""}]); + nodeSet.init(ptrType$98, $Bool); + nodeQueue.init(ptrType$98); + tpWalker.init("go/types", [{prop: "tparams", name: "tparams", embedded: false, exported: false, typ: sliceType$8, tag: ""}, {prop: "seen", name: "seen", embedded: false, exported: false, typ: mapType$1, tag: ""}]); + cycleFinder.init("go/types", [{prop: "tparams", name: "tparams", embedded: false, exported: false, typ: sliceType$8, tag: ""}, {prop: "inferred", name: "inferred", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "seen", name: "seen", embedded: false, exported: false, typ: mapType$1, tag: ""}]); + opPredicates.init(token.Token, funcType$3); + error_.init("go/types", [{prop: "desc", name: "desc", embedded: false, exported: false, typ: sliceType$31, tag: ""}, {prop: "code", name: "code", embedded: false, exported: false, typ: errors$1.Code, tag: ""}, {prop: "soft", name: "soft", embedded: false, exported: false, typ: $Bool, tag: ""}]); + errorDesc.init("go/types", [{prop: "posn", name: "posn", embedded: false, exported: false, typ: positioner, tag: ""}, {prop: "format", name: "format", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "args", name: "args", embedded: false, exported: false, typ: sliceType$5, tag: ""}]); + positioner.init([{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}]); + posSpan.init("go/types", [{prop: "start", name: "start", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "end", name: "end", embedded: false, exported: false, typ: token.Pos, tag: ""}]); + decl.init([{prop: "node", name: "node", pkg: "go/types", typ: $funcType([], [ast.Node], false)}]); + importDecl.init("go/types", [{prop: "spec", name: "spec", embedded: false, exported: false, typ: ptrType$111, tag: ""}]); + constDecl.init("go/types", [{prop: "spec", name: "spec", embedded: false, exported: false, typ: ptrType$89, tag: ""}, {prop: "iota", name: "iota", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: ast.Expr, tag: ""}, {prop: "init", name: "init", embedded: false, exported: false, typ: sliceType$10, tag: ""}, {prop: "inherited", name: "inherited", embedded: false, exported: false, typ: $Bool, tag: ""}]); + varDecl.init("go/types", [{prop: "spec", name: "spec", embedded: false, exported: false, typ: ptrType$89, tag: ""}]); + typeDecl.init("go/types", [{prop: "spec", name: "spec", embedded: false, exported: false, typ: ptrType$90, tag: ""}]); + funcDecl.init("go/types", [{prop: "decl", name: "decl", embedded: false, exported: false, typ: ptrType$88, tag: ""}]); + Context.init("go/types", [{prop: "mu", name: "mu", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "typeMap", name: "typeMap", embedded: false, exported: false, typ: mapType$8, tag: ""}, {prop: "nextID", name: "nextID", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "originIDs", name: "originIDs", embedded: false, exported: false, typ: mapType$9, tag: ""}]); + ctxtEntry.init("go/types", [{prop: "orig", name: "orig", embedded: false, exported: false, typ: Type, tag: ""}, {prop: "targs", name: "targs", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "instance", name: "instance", embedded: false, exported: false, typ: Type, tag: ""}]); + exprInfo.init("go/types", [{prop: "isLhs", name: "isLhs", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "mode", name: "mode", embedded: false, exported: false, typ: operandMode, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "val", name: "val", embedded: false, exported: false, typ: constant.Value, tag: ""}]); + environment.init("go/types", [{prop: "decl", name: "decl", embedded: false, exported: false, typ: ptrType$59, tag: ""}, {prop: "scope", name: "scope", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "iota", name: "iota", embedded: false, exported: false, typ: constant.Value, tag: ""}, {prop: "errpos", name: "errpos", embedded: false, exported: false, typ: positioner, tag: ""}, {prop: "inTParamList", name: "inTParamList", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "sig", name: "sig", embedded: false, exported: false, typ: ptrType$29, tag: ""}, {prop: "isPanic", name: "isPanic", embedded: false, exported: false, typ: mapType$10, tag: ""}, {prop: "hasLabel", name: "hasLabel", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "hasCallOrRecv", name: "hasCallOrRecv", embedded: false, exported: false, typ: $Bool, tag: ""}]); + importKey.init("go/types", [{prop: "path", name: "path", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "dir", name: "dir", embedded: false, exported: false, typ: $String, tag: ""}]); + dotImportKey.init("go/types", [{prop: "scope", name: "scope", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}]); + action.init("go/types", [{prop: "f", name: "f", embedded: false, exported: false, typ: funcType$1, tag: ""}, {prop: "desc", name: "desc", embedded: false, exported: false, typ: ptrType$114, tag: ""}]); + actionDesc.init("go/types", [{prop: "pos", name: "pos", embedded: false, exported: false, typ: positioner, tag: ""}, {prop: "format", name: "format", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "args", name: "args", embedded: false, exported: false, typ: sliceType$5, tag: ""}]); + Checker.init("go/types", [{prop: "conf", name: "conf", embedded: false, exported: false, typ: ptrType$106, tag: ""}, {prop: "ctxt", name: "ctxt", embedded: false, exported: false, typ: ptrType$52, tag: ""}, {prop: "fset", name: "fset", embedded: false, exported: false, typ: ptrType$25, tag: ""}, {prop: "pkg", name: "pkg", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "Info", name: "Info", embedded: true, exported: true, typ: ptrType$116, tag: ""}, {prop: "version", name: "version", embedded: false, exported: false, typ: version, tag: ""}, {prop: "nextID", name: "nextID", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "objMap", name: "objMap", embedded: false, exported: false, typ: mapType$12, tag: ""}, {prop: "impMap", name: "impMap", embedded: false, exported: false, typ: mapType$13, tag: ""}, {prop: "valids", name: "valids", embedded: false, exported: false, typ: instanceLookup, tag: ""}, {prop: "pkgPathMap", name: "pkgPathMap", embedded: false, exported: false, typ: mapType$15, tag: ""}, {prop: "seenPkgMap", name: "seenPkgMap", embedded: false, exported: false, typ: mapType$16, tag: ""}, {prop: "files", name: "files", embedded: false, exported: false, typ: sliceType$35, tag: ""}, {prop: "posVers", name: "posVers", embedded: false, exported: false, typ: mapType$17, tag: ""}, {prop: "imports", name: "imports", embedded: false, exported: false, typ: sliceType$36, tag: ""}, {prop: "dotImportMap", name: "dotImportMap", embedded: false, exported: false, typ: mapType$18, tag: ""}, {prop: "recvTParamMap", name: "recvTParamMap", embedded: false, exported: false, typ: mapType$19, tag: ""}, {prop: "brokenAliases", name: "brokenAliases", embedded: false, exported: false, typ: mapType$20, tag: ""}, {prop: "unionTypeSets", name: "unionTypeSets", embedded: false, exported: false, typ: mapType$21, tag: ""}, {prop: "mono", name: "mono", embedded: false, exported: false, typ: monoGraph, tag: ""}, {prop: "firstErr", name: "firstErr", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "methods", name: "methods", embedded: false, exported: false, typ: mapType$22, tag: ""}, {prop: "untyped", name: "untyped", embedded: false, exported: false, typ: mapType$23, tag: ""}, {prop: "delayed", name: "delayed", embedded: false, exported: false, typ: sliceType$39, tag: ""}, {prop: "objPath", name: "objPath", embedded: false, exported: false, typ: sliceType$7, tag: ""}, {prop: "cleaners", name: "cleaners", embedded: false, exported: false, typ: sliceType$40, tag: ""}, {prop: "environment", name: "environment", embedded: true, exported: false, typ: environment, tag: ""}, {prop: "indent", name: "indent", embedded: false, exported: false, typ: $Int, tag: ""}]); + cleaner.init([{prop: "cleanup", name: "cleanup", pkg: "go/types", typ: $funcType([], [], false)}]); + bailout.init("", []); + Chan.init("go/types", [{prop: "dir", name: "dir", embedded: false, exported: false, typ: ChanDir, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: Type, tag: ""}]); + Basic.init("go/types", [{prop: "kind", name: "kind", embedded: false, exported: false, typ: BasicKind, tag: ""}, {prop: "info", name: "info", embedded: false, exported: false, typ: BasicInfo, tag: ""}, {prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}]); + Array.init("go/types", [{prop: "len", name: "len", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: Type, tag: ""}]); + Error.init("go/types", [{prop: "Fset", name: "Fset", embedded: false, exported: true, typ: ptrType$25, tag: ""}, {prop: "Pos", name: "Pos", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Msg", name: "Msg", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Soft", name: "Soft", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "go116code", name: "go116code", embedded: false, exported: false, typ: errors$1.Code, tag: ""}, {prop: "go116start", name: "go116start", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "go116end", name: "go116end", embedded: false, exported: false, typ: token.Pos, tag: ""}]); + ArgumentError.init("", [{prop: "Index", name: "Index", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Err", name: "Err", embedded: false, exported: true, typ: $error, tag: ""}]); + Importer.init([{prop: "Import", name: "Import", pkg: "", typ: $funcType([$String], [ptrType$1, $error], false)}]); + ImporterFrom.init([{prop: "Import", name: "Import", pkg: "", typ: $funcType([$String], [ptrType$1, $error], false)}, {prop: "ImportFrom", name: "ImportFrom", pkg: "", typ: $funcType([$String, $String, ImportMode], [ptrType$1, $error], false)}]); + Config.init("go/types", [{prop: "Context", name: "Context", embedded: false, exported: true, typ: ptrType$52, tag: ""}, {prop: "GoVersion", name: "GoVersion", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "IgnoreFuncBodies", name: "IgnoreFuncBodies", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "FakeImportC", name: "FakeImportC", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "go115UsesCgo", name: "go115UsesCgo", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "_Trace", name: "_Trace", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "Error", name: "Error", embedded: false, exported: true, typ: funcType$10, tag: ""}, {prop: "Importer", name: "Importer", embedded: false, exported: true, typ: Importer, tag: ""}, {prop: "Sizes", name: "Sizes", embedded: false, exported: true, typ: Sizes, tag: ""}, {prop: "DisableUnusedImportCheck", name: "DisableUnusedImportCheck", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "_ErrorURL", name: "_ErrorURL", embedded: false, exported: false, typ: $String, tag: ""}]); + Info.init("", [{prop: "Types", name: "Types", embedded: false, exported: true, typ: mapType$24, tag: ""}, {prop: "Instances", name: "Instances", embedded: false, exported: true, typ: mapType$25, tag: ""}, {prop: "Defs", name: "Defs", embedded: false, exported: true, typ: mapType$26, tag: ""}, {prop: "Uses", name: "Uses", embedded: false, exported: true, typ: mapType$26, tag: ""}, {prop: "Implicits", name: "Implicits", embedded: false, exported: true, typ: mapType$27, tag: ""}, {prop: "Selections", name: "Selections", embedded: false, exported: true, typ: mapType$28, tag: ""}, {prop: "Scopes", name: "Scopes", embedded: false, exported: true, typ: mapType$29, tag: ""}, {prop: "InitOrder", name: "InitOrder", embedded: false, exported: true, typ: sliceType$30, tag: ""}]); + TypeAndValue.init("go/types", [{prop: "mode", name: "mode", embedded: false, exported: false, typ: operandMode, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: Type, tag: ""}, {prop: "Value", name: "Value", embedded: false, exported: true, typ: constant.Value, tag: ""}]); + Instance.init("", [{prop: "TypeArgs", name: "TypeArgs", embedded: false, exported: true, typ: ptrType$57, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: Type, tag: ""}]); + Initializer.init("", [{prop: "Lhs", name: "Lhs", embedded: false, exported: true, typ: sliceType$9, tag: ""}, {prop: "Rhs", name: "Rhs", embedded: false, exported: true, typ: ast.Expr, tag: ""}]); + methodInfo.init("go/types", [{prop: "obj", name: "obj", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "ptr", name: "ptr", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "recv", name: "recv", embedded: false, exported: false, typ: ptrType$31, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = heap.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errors.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fmt.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = ast.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = constant.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = typeparams.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = parser.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = token.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = goversion.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errors$1.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = math.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sort.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = atomic.$init(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unicode.$init(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.Universe = ptrType.nil; + $pkg.Unsafe = ptrType$1.nil; + universeIota = $ifaceNil; + universeByte = $ifaceNil; + universeRune = $ifaceNil; + universeAny = $ifaceNil; + universeError = $ifaceNil; + universeComparable = $ifaceNil; + invalidTypeSet = new _TypeSet.ptr(sliceType.nil, termlist.nil, false); + lastID = 0; + emptyMethodSet = new MethodSet.ptr(sliceType$1.nil); + unaryOpPredicates = false; + binaryOpPredicates = false; + nopos = 0; + go0_0 = new version.ptr(0, 0); + go1_9 = new version.ptr(1, 9); + go1_13 = new version.ptr(1, 13); + go1_14 = new version.ptr(1, 14); + go1_17 = new version.ptr(1, 17); + go1_18 = new version.ptr(1, 18); + go1_20 = new version.ptr(1, 20); + go1_21 = new version.ptr(1, 21); + $pkg.Typ = new sliceType$2([new Basic.ptr(0, 0, "invalid type"), new Basic.ptr(1, 1, "bool"), new Basic.ptr(2, 2, "int"), new Basic.ptr(3, 2, "int8"), new Basic.ptr(4, 2, "int16"), new Basic.ptr(5, 2, "int32"), new Basic.ptr(6, 2, "int64"), new Basic.ptr(7, 6, "uint"), new Basic.ptr(8, 6, "uint8"), new Basic.ptr(9, 6, "uint16"), new Basic.ptr(10, 6, "uint32"), new Basic.ptr(11, 6, "uint64"), new Basic.ptr(12, 6, "uintptr"), new Basic.ptr(13, 8, "float32"), new Basic.ptr(14, 8, "float64"), new Basic.ptr(15, 16, "complex64"), new Basic.ptr(16, 16, "complex128"), new Basic.ptr(17, 32, "string"), new Basic.ptr(18, 0, "Pointer"), new Basic.ptr(19, 65, "untyped bool"), new Basic.ptr(20, 66, "untyped int"), new Basic.ptr(21, 66, "untyped rune"), new Basic.ptr(22, 72, "untyped float"), new Basic.ptr(23, 80, "untyped complex"), new Basic.ptr(24, 96, "untyped string"), new Basic.ptr(25, 64, "untyped nil")]); + aliases = $toNativeArray($kindPtr, [new Basic.ptr(8, 6, "byte"), new Basic.ptr(5, 2, "rune")]); + predeclaredConsts = $toNativeArray($kindStruct, [$clone(new structType.ptr("true", 19, constant.MakeBool(true)), structType), $clone(new structType.ptr("false", 19, constant.MakeBool(false)), structType), $clone(new structType.ptr("iota", 20, constant.MakeInt64(new $Int64(0, 0))), structType)]); + predeclaredFuncs = $toNativeArray($kindStruct, [$clone(new structType$1.ptr("append", 1, true, 1), structType$1), $clone(new structType$1.ptr("cap", 1, false, 1), structType$1), $clone(new structType$1.ptr("clear", 1, false, 2), structType$1), $clone(new structType$1.ptr("close", 1, false, 2), structType$1), $clone(new structType$1.ptr("complex", 2, false, 1), structType$1), $clone(new structType$1.ptr("copy", 2, false, 2), structType$1), $clone(new structType$1.ptr("delete", 2, false, 2), structType$1), $clone(new structType$1.ptr("imag", 1, false, 1), structType$1), $clone(new structType$1.ptr("len", 1, false, 1), structType$1), $clone(new structType$1.ptr("make", 1, true, 1), structType$1), $clone(new structType$1.ptr("max", 1, true, 1), structType$1), $clone(new structType$1.ptr("min", 1, true, 1), structType$1), $clone(new structType$1.ptr("new", 1, false, 1), structType$1), $clone(new structType$1.ptr("panic", 1, false, 2), structType$1), $clone(new structType$1.ptr("print", 0, true, 2), structType$1), $clone(new structType$1.ptr("println", 0, true, 2), structType$1), $clone(new structType$1.ptr("real", 1, false, 1), structType$1), $clone(new structType$1.ptr("recover", 0, false, 2), structType$1), $clone(new structType$1.ptr("Add", 2, false, 1), structType$1), $clone(new structType$1.ptr("Alignof", 1, false, 1), structType$1), $clone(new structType$1.ptr("Offsetof", 1, false, 1), structType$1), $clone(new structType$1.ptr("Sizeof", 1, false, 1), structType$1), $clone(new structType$1.ptr("Slice", 2, false, 1), structType$1), $clone(new structType$1.ptr("SliceData", 1, false, 1), structType$1), $clone(new structType$1.ptr("String", 2, false, 1), structType$1), $clone(new structType$1.ptr("StringData", 1, false, 1), structType$1), $clone(new structType$1.ptr("assert", 1, false, 2), structType$1), $clone(new structType$1.ptr("trace", 0, true, 2), structType$1)]); + allTermlist = new termlist([new term.ptr(false, $ifaceNil)]); + topTypeSet = new _TypeSet.ptr(sliceType.nil, allTermlist, false); + basicSizes = $toNativeArray($kindUint8, [0, 1, 0, 1, 2, 4, 8, 0, 1, 2, 4, 8, 0, 4, 8, 8, 16]); + gcArchSizes = $makeMap($String.keyFor, [{ k: "386", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 4)) }, { k: "amd64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "amd64p32", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "arm", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 4)) }, { k: "arm64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "loong64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "mips", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 4)) }, { k: "mipsle", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 4)) }, { k: "mips64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "mips64le", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "ppc64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "ppc64le", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "riscv64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "s390x", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "sparc64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "wasm", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }]); + operandModeString = $toNativeArray($kindString, ["invalid operand", "no value", "built-in", "type", "constant", "variable", "map index expression", "value", "comma, ok expression", "comma, error expression", "cgo function"]); + emptyInterface = new Interface.ptr(ptrType$6.nil, sliceType.nil, sliceType$3.nil, ptrType$7.nil, false, true, topTypeSet); + gccgoArchSizes = $makeMap($String.keyFor, [{ k: "386", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 4)) }, { k: "alpha", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "amd64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "amd64p32", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "arm", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "armbe", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "arm64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "arm64be", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "ia64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "loong64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "m68k", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 2)) }, { k: "mips", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "mipsle", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "mips64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "mips64le", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "mips64p32", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "mips64p32le", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "nios2", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "ppc", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "ppc64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "ppc64le", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "riscv", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "riscv64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "s390", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "s390x", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "sh", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "shbe", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "sparc", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "sparc64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "wasm", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }]); + stdSizes = SizesFor("gc", "amd64"); + op2str1 = $toNativeArray($kindString, ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "bitwise complement"]); + op2str2 = $toNativeArray($kindString, ["", "", "", "", "", "", "", "", "", "", "", "", "addition", "subtraction", "multiplication", "", "", "", "", "bitwise XOR", "shift"]); + errBadCgo = errors.New("cannot use FakeImportC and go115UsesCgo together"); + cgoPrefixes = $toNativeArray($kindString, ["_Ciconst_", "_Cfconst_", "_Csconst_", "_Ctype_", "_Cvar_", "_Cfpvar_fp_", "_Cfunc_", "_Cmacro_"]); + $r = init(); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + init$1(); + init$2(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["regexp/syntax"] = (function() { + var $pkg = {}, $init, sort, strconv, strings, unicode, utf8, Regexp, Op, Prog, InstOp, EmptyOp, Inst, Error, ErrorCode, Flags, parser, charGroup, ranges, patchList, frag, compiler, sliceType, sliceType$1, sliceType$2, sliceType$3, ptrType, sliceType$4, arrayType, arrayType$1, ptrType$1, sliceType$5, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, sliceType$6, ptrType$7, mapType, mapType$1, ptrType$8, instOpNames, code1, code2, code3, perlGroup, code4, code5, code6, code7, code8, code9, code10, code11, code12, code13, code14, code15, code16, code17, posixGroup, anyTable, _Op_index_0, anyRuneNotNL, anyRune, simplify1, writeRegexp, escape, IsWordChar, bw, dumpProg, u32, dumpInst, minFoldRune, repeatIsValid, cleanAlt, literalRegexp, Parse, parse, isValidCaptureName, isCharClass, matchRune, mergeCharClass, unicodeTable, cleanClass, appendLiteral, appendRange, appendFoldedRange, appendClass, appendFoldedClass, appendNegatedClass, appendTable, appendNegatedTable, negateClass, checkUTF8, nextRune, isalnum, unhex, makePatchList, Compile; + sort = $packages["sort"]; + strconv = $packages["strconv"]; + strings = $packages["strings"]; + unicode = $packages["unicode"]; + utf8 = $packages["unicode/utf8"]; + Regexp = $newType(0, $kindStruct, "syntax.Regexp", true, "regexp/syntax", true, function(Op_, Flags_, Sub_, Sub0_, Rune_, Rune0_, Min_, Max_, Cap_, Name_) { + this.$val = this; + if (arguments.length === 0) { + this.Op = 0; + this.Flags = 0; + this.Sub = sliceType$4.nil; + this.Sub0 = arrayType.zero(); + this.Rune = sliceType$1.nil; + this.Rune0 = arrayType$1.zero(); + this.Min = 0; + this.Max = 0; + this.Cap = 0; + this.Name = ""; + return; + } + this.Op = Op_; + this.Flags = Flags_; + this.Sub = Sub_; + this.Sub0 = Sub0_; + this.Rune = Rune_; + this.Rune0 = Rune0_; + this.Min = Min_; + this.Max = Max_; + this.Cap = Cap_; + this.Name = Name_; + }); + Op = $newType(1, $kindUint8, "syntax.Op", true, "regexp/syntax", true, null); + Prog = $newType(0, $kindStruct, "syntax.Prog", true, "regexp/syntax", true, function(Inst_, Start_, NumCap_) { + this.$val = this; + if (arguments.length === 0) { + this.Inst = sliceType$6.nil; + this.Start = 0; + this.NumCap = 0; + return; + } + this.Inst = Inst_; + this.Start = Start_; + this.NumCap = NumCap_; + }); + InstOp = $newType(1, $kindUint8, "syntax.InstOp", true, "regexp/syntax", true, null); + EmptyOp = $newType(1, $kindUint8, "syntax.EmptyOp", true, "regexp/syntax", true, null); + Inst = $newType(0, $kindStruct, "syntax.Inst", true, "regexp/syntax", true, function(Op_, Out_, Arg_, Rune_) { + this.$val = this; + if (arguments.length === 0) { + this.Op = 0; + this.Out = 0; + this.Arg = 0; + this.Rune = sliceType$1.nil; + return; + } + this.Op = Op_; + this.Out = Out_; + this.Arg = Arg_; + this.Rune = Rune_; + }); + Error = $newType(0, $kindStruct, "syntax.Error", true, "regexp/syntax", true, function(Code_, Expr_) { + this.$val = this; + if (arguments.length === 0) { + this.Code = ""; + this.Expr = ""; + return; + } + this.Code = Code_; + this.Expr = Expr_; + }); + ErrorCode = $newType(8, $kindString, "syntax.ErrorCode", true, "regexp/syntax", true, null); + Flags = $newType(2, $kindUint16, "syntax.Flags", true, "regexp/syntax", true, null); + parser = $newType(0, $kindStruct, "syntax.parser", true, "regexp/syntax", false, function(flags_, stack_, free_, numCap_, wholeRegexp_, tmpClass_, numRegexp_, numRunes_, repeats_, height_, size_) { + this.$val = this; + if (arguments.length === 0) { + this.flags = 0; + this.stack = sliceType$4.nil; + this.free = ptrType.nil; + this.numCap = 0; + this.wholeRegexp = ""; + this.tmpClass = sliceType$1.nil; + this.numRegexp = 0; + this.numRunes = 0; + this.repeats = new $Int64(0, 0); + this.height = false; + this.size = false; + return; + } + this.flags = flags_; + this.stack = stack_; + this.free = free_; + this.numCap = numCap_; + this.wholeRegexp = wholeRegexp_; + this.tmpClass = tmpClass_; + this.numRegexp = numRegexp_; + this.numRunes = numRunes_; + this.repeats = repeats_; + this.height = height_; + this.size = size_; + }); + charGroup = $newType(0, $kindStruct, "syntax.charGroup", true, "regexp/syntax", false, function(sign_, class$1_) { + this.$val = this; + if (arguments.length === 0) { + this.sign = 0; + this.class$1 = sliceType$1.nil; + return; + } + this.sign = sign_; + this.class$1 = class$1_; + }); + ranges = $newType(0, $kindStruct, "syntax.ranges", true, "regexp/syntax", false, function(p_) { + this.$val = this; + if (arguments.length === 0) { + this.p = ptrType$3.nil; + return; + } + this.p = p_; + }); + patchList = $newType(0, $kindStruct, "syntax.patchList", true, "regexp/syntax", false, function(head_, tail_) { + this.$val = this; + if (arguments.length === 0) { + this.head = 0; + this.tail = 0; + return; + } + this.head = head_; + this.tail = tail_; + }); + frag = $newType(0, $kindStruct, "syntax.frag", true, "regexp/syntax", false, function(i_, out_, nullable_) { + this.$val = this; + if (arguments.length === 0) { + this.i = 0; + this.out = new patchList.ptr(0, 0); + this.nullable = false; + return; + } + this.i = i_; + this.out = out_; + this.nullable = nullable_; + }); + compiler = $newType(0, $kindStruct, "syntax.compiler", true, "regexp/syntax", false, function(p_) { + this.$val = this; + if (arguments.length === 0) { + this.p = ptrType$6.nil; + return; + } + this.p = p_; + }); + $pkg.Regexp = Regexp; + $pkg.Op = Op; + $pkg.Prog = Prog; + $pkg.InstOp = InstOp; + $pkg.EmptyOp = EmptyOp; + $pkg.Inst = Inst; + $pkg.Error = Error; + $pkg.ErrorCode = ErrorCode; + $pkg.Flags = Flags; + $pkg.parser = parser; + $pkg.charGroup = charGroup; + $pkg.ranges = ranges; + $pkg.patchList = patchList; + $pkg.frag = frag; + $pkg.compiler = compiler; + $pkg.$finishSetup = function() { + sliceType = $sliceType($String); + sliceType$1 = $sliceType($Int32); + sliceType$2 = $sliceType(unicode.Range16); + sliceType$3 = $sliceType(unicode.Range32); + ptrType = $ptrType(Regexp); + sliceType$4 = $sliceType(ptrType); + arrayType = $arrayType(ptrType, 1); + arrayType$1 = $arrayType($Int32, 2); + ptrType$1 = $ptrType(strings.Builder); + sliceType$5 = $sliceType($Uint8); + ptrType$2 = $ptrType(Inst); + ptrType$3 = $ptrType(sliceType$1); + ptrType$4 = $ptrType(parser); + ptrType$5 = $ptrType(unicode.RangeTable); + ptrType$6 = $ptrType(Prog); + sliceType$6 = $sliceType(Inst); + ptrType$7 = $ptrType(Error); + mapType = $mapType(ptrType, $Int); + mapType$1 = $mapType(ptrType, $Int64); + ptrType$8 = $ptrType(compiler); + $ptrType(Regexp).prototype.Simplify = function Simplify() { + var _1, _i, _ref, i, i$1, i$2, i$3, nre, nre$1, nre2, nsub, prefix, re, sub, sub$1, sub$2, suffix, x, x$1; + re = this; + if (re === ptrType.nil) { + return ptrType.nil; + } + _1 = re.Op; + if ((_1 === (13)) || (_1 === (18)) || (_1 === (19))) { + nre = re; + _ref = re.Sub; _i = 0; - /* while (true) { */ case 13: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 14; continue; } - i = _i; - tparam = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - tname = NewTypeName(tparam.Obj().object.Pos(), tparam.Obj().object.Pkg(), tparam.Obj().object.Name(), $ifaceNil); - _r$1 = NewTypeParam(tname, $ifaceNil); /* */ $s = 15; case 15: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - ((i < 0 || i >= tparams2.$length) ? ($throwRuntimeError("index out of range"), undefined) : tparams2.$array[tparams2.$offset + i] = _r$1); - ((i < 0 || i >= tparams2.$length) ? ($throwRuntimeError("index out of range"), undefined) : tparams2.$array[tparams2.$offset + i]).index = tparam.index; - _i++; - $s = 13; continue; - case 14: - _r$2 = makeRenameMap(tparams[0], tparams2); /* */ $s = 16; case 16: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - renameMap = _r$2; - _ref$1 = tparams[0]; - _i$1 = 0; - /* while (true) { */ case 17: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 18; continue; } - i$1 = _i$1; - tparam$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - _r$3 = posn.Pos(); /* */ $s = 19; case 19: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$4 = check[0].subst(_r$3, tparam$1.bound, renameMap, ptrType$9.nil, check[0].context()); /* */ $s = 20; case 20: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - ((i$1 < 0 || i$1 >= tparams2.$length) ? ($throwRuntimeError("index out of range"), undefined) : tparams2.$array[tparams2.$offset + i$1]).bound = _r$4; - _i$1++; - $s = 17; continue; - case 18: - tparams[0] = tparams2; - _r$5 = posn.Pos(); /* */ $s = 21; case 21: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$6 = check[0].subst(_r$5, params, renameMap, ptrType$9.nil, check[0].context()); /* */ $s = 22; case 22: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - params = $assertType(_r$6, ptrType$15); - /* } */ case 12: - m = args.$length; - if (m >= 2 && true) { - _tmp = sliceType$13.nil; - _tmp$1 = sliceType$13.nil; - named = _tmp; - unnamed = _tmp$1; - _ref$2 = args; - _i$2 = 0; while (true) { - if (!(_i$2 < _ref$2.$length)) { break; } - i$2 = _i$2; - arg = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); - if (hasName(arg.typ)) { - named = $append(named, i$2); - } else { - unnamed = $append(unnamed, i$2); + if (!(_i < _ref.$length)) { break; } + i = _i; + sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + nsub = sub.Simplify(); + if (nre === re && !(nsub === sub)) { + nre = new Regexp.ptr(0, 0, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, ""); + Regexp.copy((nre === ptrType.nil && $throwNilPointerError(), nre), (re === ptrType.nil && $throwNilPointerError(), re)); + nre.Rune = sliceType$1.nil; + nre.Sub = $appendSlice($subslice(new sliceType$4(nre.Sub0), 0, 0), $subslice(re.Sub, 0, i)); } - _i$2++; + if (!(nre === re)) { + nre.Sub = $append(nre.Sub, nsub); + } + _i++; } - if (!((named.$length === 0)) && !((unnamed.$length === 0))) { - params2 = $makeSlice(sliceType$10, m); - args2 = $makeSlice(sliceType$29, m); - i$3 = 0; - _ref$3 = named; - _i$3 = 0; - while (true) { - if (!(_i$3 < _ref$3.$length)) { break; } - j = ((_i$3 < 0 || _i$3 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$3]); - ((i$3 < 0 || i$3 >= params2.$length) ? ($throwRuntimeError("index out of range"), undefined) : params2.$array[params2.$offset + i$3] = params.At(j)); - ((i$3 < 0 || i$3 >= args2.$length) ? ($throwRuntimeError("index out of range"), undefined) : args2.$array[args2.$offset + i$3] = ((j < 0 || j >= args.$length) ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + j])); - i$3 = i$3 + (1) >> 0; - _i$3++; + return nre; + } else if ((_1 === (14)) || (_1 === (15)) || (_1 === (16))) { + sub$1 = (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).Simplify(); + return simplify1(re.Op, re.Flags, sub$1, re); + } else if (_1 === (17)) { + if ((re.Min === 0) && (re.Max === 0)) { + return new Regexp.ptr(2, 0, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, ""); + } + sub$2 = (x$1 = re.Sub, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])).Simplify(); + if (re.Max === -1) { + if (re.Min === 0) { + return simplify1(14, re.Flags, sub$2, ptrType.nil); } - _ref$4 = unnamed; - _i$4 = 0; + if (re.Min === 1) { + return simplify1(15, re.Flags, sub$2, ptrType.nil); + } + nre$1 = new Regexp.ptr(18, 0, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, ""); + nre$1.Sub = $subslice(new sliceType$4(nre$1.Sub0), 0, 0); + i$1 = 0; while (true) { - if (!(_i$4 < _ref$4.$length)) { break; } - j$1 = ((_i$4 < 0 || _i$4 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$4]); - ((i$3 < 0 || i$3 >= params2.$length) ? ($throwRuntimeError("index out of range"), undefined) : params2.$array[params2.$offset + i$3] = params.At(j$1)); - ((i$3 < 0 || i$3 >= args2.$length) ? ($throwRuntimeError("index out of range"), undefined) : args2.$array[args2.$offset + i$3] = ((j$1 < 0 || j$1 >= args.$length) ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + j$1])); - i$3 = i$3 + (1) >> 0; - _i$4++; + if (!(i$1 < (re.Min - 1 >> 0))) { break; } + nre$1.Sub = $append(nre$1.Sub, sub$2); + i$1 = i$1 + (1) >> 0; } - params = NewTuple(params2); - args = args2; + nre$1.Sub = $append(nre$1.Sub, simplify1(15, re.Flags, sub$2, ptrType.nil)); + return nre$1; } - } - if (targs.$length < n) { - targs2 = $makeSlice(sliceType$2, n); - $copySlice(targs2, targs); - targs = targs2; - } - /* */ if (params.Len() > 0) { $s = 23; continue; } - /* */ $s = 24; continue; - /* if (params.Len() > 0) { */ case 23: - _r$7 = makeSubstMap(tparams[0], targs); /* */ $s = 25; case 25: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - smap = _r$7; - _r$8 = check[0].subst(0, params, smap, ptrType$9.nil, check[0].context()); /* */ $s = 26; case 26: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - params = $assertType(_r$8, ptrType$15); - /* } */ case 24: - u[0] = newUnifier(false); - $r = u[0].x.init(tparams[0]); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _ref$5 = targs; - _i$5 = 0; - /* while (true) { */ case 28: - /* if (!(_i$5 < _ref$5.$length)) { break; } */ if(!(_i$5 < _ref$5.$length)) { $s = 29; continue; } - i$4 = _i$5; - targ = ((_i$5 < 0 || _i$5 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$5]); - /* */ if (!($interfaceIsEqual(targ, $ifaceNil))) { $s = 30; continue; } - /* */ $s = 31; continue; - /* if (!($interfaceIsEqual(targ, $ifaceNil))) { */ case 30: - $r = u[0].x.set(i$4, targ); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 31: - _i$5++; - $s = 28; continue; - case 29: - errorf = (function(check, result, tparams, u) { return function Checker·infer·func3(kind, tpar, targ$1, arg$1) { - var {_i$6, _r$10, _r$11, _r$9, _ref$6, _tuple, allFailed, arg$1, index$1, inferred, kind, smap$1, targ$1, targ$2, targs$1, tpar, $s, $r, $c} = $restore(this, {kind, tpar, targ$1, arg$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _tuple = u[0].x.types(); - targs$1 = _tuple[0]; - index$1 = _tuple[1]; - /* */ if (index$1 === 0) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (index$1 === 0) { */ case 1: - allFailed = true; - _ref$6 = targs$1; - _i$6 = 0; - while (true) { - if (!(_i$6 < _ref$6.$length)) { break; } - targ$2 = ((_i$6 < 0 || _i$6 >= _ref$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$6.$array[_ref$6.$offset + _i$6]); - if (!($interfaceIsEqual(targ$2, $ifaceNil))) { - allFailed = false; - break; - } - _i$6++; - } - /* */ if (allFailed) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (allFailed) { */ case 3: - $r = check[0].errorf(arg$1, 138, "%s %s of %s does not match %s (cannot infer %s)", new sliceType$6([new $String(kind), targ$1, arg$1.expr, tpar, new $String(typeParamsString(tparams[0]))])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 4: - /* } */ case 2: - _r$9 = makeSubstMap(tparams[0], targs$1); /* */ $s = 6; case 6: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - smap$1 = _r$9; - _r$10 = arg$1.Pos(); /* */ $s = 7; case 7: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _r$11 = check[0].subst(_r$10, tpar, smap$1, ptrType$9.nil, check[0].context()); /* */ $s = 8; case 8: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - inferred = _r$11; - /* */ if (!($interfaceIsEqual(inferred, tpar))) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (!($interfaceIsEqual(inferred, tpar))) { */ case 9: - $r = check[0].errorf(arg$1, 138, "%s %s of %s does not match inferred type %s for %s", new sliceType$6([new $String(kind), targ$1, arg$1.expr, inferred, tpar])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 11; continue; - /* } else { */ case 10: - $r = check[0].errorf(arg$1, 138, "%s %s of %s does not match %s", new sliceType$6([new $String(kind), targ$1, arg$1.expr, tpar])); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 11: - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·infer·func3, $c: true, $r, _i$6, _r$10, _r$11, _r$9, _ref$6, _tuple, allFailed, arg$1, index$1, inferred, kind, smap$1, targ$1, targ$2, targs$1, tpar, $s};return $f; - }; })(check, result, tparams, u); - indices = sliceType$13.nil; - _ref$6 = args; - _i$6 = 0; - /* while (true) { */ case 33: - /* if (!(_i$6 < _ref$6.$length)) { break; } */ if(!(_i$6 < _ref$6.$length)) { $s = 34; continue; } - i$5 = _i$6; - arg$1 = ((_i$6 < 0 || _i$6 >= _ref$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$6.$array[_ref$6.$offset + _i$6]); - par = params.At(i$5); - _r$9 = isParameterized(tparams[0], par.object.typ); /* */ $s = 37; case 37: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - /* */ if (_r$9) { $s = 35; continue; } - /* */ $s = 36; continue; - /* if (_r$9) { */ case 35: - if (arg$1.mode === 0) { - _i$6++; - /* continue; */ $s = 33; continue; + if ((re.Min === 1) && (re.Max === 1)) { + return sub$2; + } + prefix = ptrType.nil; + if (re.Min > 0) { + prefix = new Regexp.ptr(18, 0, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, ""); + prefix.Sub = $subslice(new sliceType$4(prefix.Sub0), 0, 0); + i$2 = 0; + while (true) { + if (!(i$2 < re.Min)) { break; } + prefix.Sub = $append(prefix.Sub, sub$2); + i$2 = i$2 + (1) >> 0; } - targ$1 = arg$1.typ; - /* */ if (isTyped(targ$1)) { $s = 38; continue; } - /* */ $s = 39; continue; - /* if (isTyped(targ$1)) { */ case 38: - _r$10 = u[0].unify(par.object.typ, targ$1); /* */ $s = 43; case 43: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - /* */ if (!_r$10) { $s = 41; continue; } - /* */ $s = 42; continue; - /* if (!_r$10) { */ case 41: - $r = errorf("type", par.object.typ, targ$1, arg$1); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - result[0] = sliceType$2.nil; - $24r$1 = result[0]; - $s = 45; case 45: return $24r$1; - /* } */ case 42: - $s = 40; continue; - /* } else { */ case 39: - _tuple = $assertType(par.object.typ, ptrType$14, true); - ok = _tuple[1]; - if (ok) { - indices = $append(indices, i$5); - } - /* } */ case 40: - /* } */ case 36: - _i$6++; - $s = 33; continue; - case 34: - index$1 = 0; - _tuple$1 = u[0].x.types(); - targs = _tuple$1[0]; - index$1 = _tuple$1[1]; - /* */ if (index$1 < 0) { $s = 46; continue; } - /* */ $s = 47; continue; - /* if (index$1 < 0) { */ case 46: - result[0] = targs; - $24r$2 = result[0]; - $s = 48; case 48: return $24r$2; - /* } */ case 47: - _r$11 = check[0].inferB(posn, tparams[0], targs); /* */ $s = 49; case 49: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _tuple$2 = _r$11; - targs = _tuple$2[0]; - index$1 = _tuple$2[1]; - /* */ if (targs === sliceType$2.nil || index$1 < 0) { $s = 50; continue; } - /* */ $s = 51; continue; - /* if (targs === sliceType$2.nil || index$1 < 0) { */ case 50: - result[0] = targs; - $24r$3 = result[0]; - $s = 52; case 52: return $24r$3; - /* } */ case 51: - _ref$7 = indices; - _i$7 = 0; - /* while (true) { */ case 53: - /* if (!(_i$7 < _ref$7.$length)) { break; } */ if(!(_i$7 < _ref$7.$length)) { $s = 54; continue; } - i$6 = ((_i$7 < 0 || _i$7 >= _ref$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$7.$array[_ref$7.$offset + _i$7]); - tpar = $assertType(params.At(i$6).object.typ, ptrType$14); - /* */ if ($interfaceIsEqual((x = tpar.index, ((x < 0 || x >= targs.$length) ? ($throwRuntimeError("index out of range"), undefined) : targs.$array[targs.$offset + x])), $ifaceNil)) { $s = 55; continue; } - /* */ $s = 56; continue; - /* if ($interfaceIsEqual((x = tpar.index, ((x < 0 || x >= targs.$length) ? ($throwRuntimeError("index out of range"), undefined) : targs.$array[targs.$offset + x])), $ifaceNil)) { */ case 55: - arg$2 = ((i$6 < 0 || i$6 >= args.$length) ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + i$6]); - targ$2 = Default(arg$2.typ); - if (!(isTyped(targ$2))) { _v = false; $s = 59; continue s; } - _r$12 = u[0].unify(tpar, targ$2); /* */ $s = 60; case 60: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _v = !_r$12; case 59: - /* */ if (_v) { $s = 57; continue; } - /* */ $s = 58; continue; - /* if (_v) { */ case 57: - $r = errorf("default type", tpar, targ$2, arg$2); /* */ $s = 61; case 61: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - result[0] = sliceType$2.nil; - $24r$4 = result[0]; - $s = 62; case 62: return $24r$4; - /* } */ case 58: - /* } */ case 56: - _i$7++; - $s = 53; continue; - case 54: - _tuple$3 = u[0].x.types(); - targs = _tuple$3[0]; - index$1 = _tuple$3[1]; - /* */ if (index$1 < 0) { $s = 63; continue; } - /* */ $s = 64; continue; - /* if (index$1 < 0) { */ case 63: - result[0] = targs; - $24r$5 = result[0]; - $s = 65; case 65: return $24r$5; - /* } */ case 64: - _r$13 = check[0].inferB(posn, tparams[0], targs); /* */ $s = 66; case 66: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - _tuple$4 = _r$13; - targs = _tuple$4[0]; - index$1 = _tuple$4[1]; - /* */ if (targs === sliceType$2.nil || index$1 < 0) { $s = 67; continue; } - /* */ $s = 68; continue; - /* if (targs === sliceType$2.nil || index$1 < 0) { */ case 67: - result[0] = targs; - $24r$6 = result[0]; - $s = 69; case 69: return $24r$6; - /* } */ case 68: - $r = assert(index$1 >= 0 && $interfaceIsEqual(((index$1 < 0 || index$1 >= targs.$length) ? ($throwRuntimeError("index out of range"), undefined) : targs.$array[targs.$offset + index$1]), $ifaceNil)); /* */ $s = 70; case 70: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - tpar$1 = ((index$1 < 0 || index$1 >= tparams[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : tparams[0].$array[tparams[0].$offset + index$1]); - $r = check[0].errorf(posn, 138, "cannot infer %s (%v)", new sliceType$6([new $String(tpar$1.obj.object.name), new token.Pos(tpar$1.obj.object.pos)])); /* */ $s = 71; case 71: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - result[0] = sliceType$2.nil; - $24r$7 = result[0]; - $s = 72; case 72: return $24r$7; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return result[0]; } if($curGoroutine.asleep) { var $f = {$blk: infer, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _v, arg, arg$1, arg$2, args, args2, check, errorf, i, i$1, i$2, i$3, i$4, i$5, i$6, index$1, indices, j, j$1, m, n, named, ok, par, params, params2, posn, renameMap, result, smap, targ, targ$1, targ$2, targs, targs2, tname, tpar, tpar$1, tparam, tparam$1, tparams, tparams2, u, unnamed, x, $s, $deferred};return $f; } } - }; - typeParamsString = function typeParamsString$1(list$2) { - var _1, _i, _ref, buf, i, list$2, n, tname, x; - n = list$2.$length; - _1 = n; - if (_1 === (0)) { - return ""; - } else if (_1 === (1)) { - return (0 >= list$2.$length ? ($throwRuntimeError("index out of range"), undefined) : list$2.$array[list$2.$offset + 0]).obj.object.name; - } else if (_1 === (2)) { - return (0 >= list$2.$length ? ($throwRuntimeError("index out of range"), undefined) : list$2.$array[list$2.$offset + 0]).obj.object.name + " and " + (1 >= list$2.$length ? ($throwRuntimeError("index out of range"), undefined) : list$2.$array[list$2.$offset + 1]).obj.object.name; - } - buf = new strings.Builder.ptr(ptrType$53.nil, sliceType$14.nil); - _ref = $subslice(list$2, 0, (n - 1 >> 0)); - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - tname = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (i > 0) { - buf.WriteString(", "); } - buf.WriteString(tname.obj.object.name); - _i++; + if (re.Max > re.Min) { + suffix = simplify1(16, re.Flags, sub$2, ptrType.nil); + i$3 = re.Min + 1 >> 0; + while (true) { + if (!(i$3 < re.Max)) { break; } + nre2 = new Regexp.ptr(18, 0, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, ""); + nre2.Sub = $append($subslice(new sliceType$4(nre2.Sub0), 0, 0), sub$2, suffix); + suffix = simplify1(16, re.Flags, nre2, ptrType.nil); + i$3 = i$3 + (1) >> 0; + } + if (prefix === ptrType.nil) { + return suffix; + } + prefix.Sub = $append(prefix.Sub, suffix); + } + if (!(prefix === ptrType.nil)) { + return prefix; + } + return new Regexp.ptr(1, 0, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, ""); } - buf.WriteString(", and "); - buf.WriteString((x = n - 1 >> 0, ((x < 0 || x >= list$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : list$2.$array[list$2.$offset + x])).obj.object.name); - return buf.String(); + return re; }; - isParameterized = function isParameterized$1(tparams, typ$3) { - var {$24r, _r$1, tparams, typ$3, w, $s, $r, $c} = $restore(this, {tparams, typ$3}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - w = new tpWalker.ptr(new $global.Map(), tparams); - _r$1 = w.isParameterized(typ$3); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: isParameterized$1, $c: true, $r, $24r, _r$1, tparams, typ$3, w, $s};return $f; + simplify1 = function simplify1$1(op, flags, sub, re) { + var flags, op, re, sub, x; + if (sub.Op === 2) { + return sub; + } + if ((op === sub.Op) && (((flags & 32) >>> 0) === ((sub.Flags & 32) >>> 0))) { + return sub; + } + if (!(re === ptrType.nil) && (re.Op === op) && (((re.Flags & 32) >>> 0) === ((flags & 32) >>> 0)) && sub === (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))) { + return re; + } + re = new Regexp.ptr(op, flags, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, ""); + re.Sub = $append($subslice(new sliceType$4(re.Sub0), 0, 0), sub); + return re; }; - $ptrType(tpWalker).prototype.isParameterized = function isParameterized$2(typ$3) { - var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, _entry, _i, _i$1, _key, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tuple, _v, _v$1, fld, i, m, n, ok, res, t, t$1, t$10, t$11, t$12, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, tset, typ$3, w, x, $s, $deferred, $r, $c} = $restore(this, {typ$3}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - res = [res]; - typ$3 = [typ$3]; - w = [w]; - res[0] = false; - w[0] = this; - _tuple = (_entry = $mapIndex(w[0].seen,Type.keyFor(typ$3[0])), _entry !== undefined ? [_entry.v, true] : [false, false]); - x = _tuple[0]; - ok = _tuple[1]; - if (ok) { - res[0] = x; - $s = -1; return res[0]; + $ptrType(Regexp).prototype.Equal = function Equal(y) { + var _1, _i, _i$1, _ref, _ref$1, i, i$1, r, sub, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, y; + x = this; + if (x === ptrType.nil || y === ptrType.nil) { + return x === y; } - _key = typ$3[0]; (w[0].seen || $throwRuntimeError("assignment to entry in nil map")).set(Type.keyFor(_key), { k: _key, v: false }); - $deferred.push([(function(res, typ$3, w) { return function tpWalker·isParameterized·func1() { - var _key$1; - _key$1 = typ$3[0]; (w[0].seen || $throwRuntimeError("assignment to entry in nil map")).set(Type.keyFor(_key$1), { k: _key$1, v: res[0] }); - }; })(res, typ$3, w), []]); - _ref = typ$3[0]; - /* */ if (_ref === $ifaceNil || $assertType(_ref, ptrType$8, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$15, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 9; continue; } - /* */ if ($assertType(_ref, ptrType$29, true)[1]) { $s = 10; continue; } - /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 11; continue; } - /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 12; continue; } - /* */ $s = 13; continue; - /* switch (0) { default: if (_ref === $ifaceNil || $assertType(_ref, ptrType$8, true)[1]) { */ case 1: - t = _ref; - /* break; */ $s = 14; continue; - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 2: - t$1 = _ref.$val; - _r$1 = w[0].isParameterized(t$1.elem); /* */ $s = 15; case 15: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - res[0] = _r$1; - $24r = res[0]; - $s = 16; case 16: return $24r; - /* } else if ($assertType(_ref, ptrType$25, true)[1]) { */ case 3: - t$2 = _ref.$val; - _r$2 = w[0].isParameterized(t$2.elem); /* */ $s = 17; case 17: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - res[0] = _r$2; - $24r$1 = res[0]; - $s = 18; case 18: return $24r$1; - /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 4: - t$3 = _ref.$val; - _ref$1 = t$3.fields; + if (!((x.Op === y.Op))) { + return false; + } + _1 = x.Op; + if (_1 === (10)) { + if (!((((x.Flags & 256) >>> 0) === ((y.Flags & 256) >>> 0)))) { + return false; + } + } else if ((_1 === (3)) || (_1 === (4))) { + if (!((x.Rune.$length === y.Rune.$length))) { + return false; + } + _ref = x.Rune; _i = 0; - /* while (true) { */ case 19: - /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 20; continue; } - fld = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); - _r$3 = w[0].isParameterized(fld.object.typ); /* */ $s = 23; case 23: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (_r$3) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if (_r$3) { */ case 21: - res[0] = true; - $s = -1; return res[0]; - /* } */ case 22: + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + r = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!((r === (x$1 = y.Rune, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i]))))) { + return false; + } _i++; - $s = 19; continue; - case 20: - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 5: - t$4 = _ref.$val; - _r$4 = w[0].isParameterized(t$4.base); /* */ $s = 24; case 24: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - res[0] = _r$4; - $24r$2 = res[0]; - $s = 25; case 25: return $24r$2; - /* } else if ($assertType(_ref, ptrType$15, true)[1]) { */ case 6: - t$5 = _ref.$val; - n = t$5.Len(); - i = 0; - /* while (true) { */ case 26: - /* if (!(i < n)) { break; } */ if(!(i < n)) { $s = 27; continue; } - _r$5 = w[0].isParameterized(t$5.At(i).object.typ); /* */ $s = 30; case 30: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* */ if (_r$5) { $s = 28; continue; } - /* */ $s = 29; continue; - /* if (_r$5) { */ case 28: - res[0] = true; - $s = -1; return res[0]; - /* } */ case 29: - i = i + (1) >> 0; - $s = 26; continue; - case 27: - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 7: - t$6 = _ref.$val; - _r$6 = w[0].isParameterized(t$6.params); /* */ $s = 32; case 32: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - if (_r$6) { _v = true; $s = 31; continue s; } - _r$7 = w[0].isParameterized(t$6.results); /* */ $s = 33; case 33: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _v = _r$7; case 31: - res[0] = _v; - $24r$3 = res[0]; - $s = 34; case 34: return $24r$3; - /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 8: - t$7 = _ref.$val; - _r$8 = t$7.typeSet(); /* */ $s = 35; case 35: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - tset = _r$8; - _ref$2 = tset.methods; - _i$1 = 0; - /* while (true) { */ case 36: - /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 37; continue; } - m = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); - _r$9 = w[0].isParameterized(m.object.typ); /* */ $s = 40; case 40: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - /* */ if (_r$9) { $s = 38; continue; } - /* */ $s = 39; continue; - /* if (_r$9) { */ case 38: - res[0] = true; - $s = -1; return res[0]; - /* } */ case 39: - _i$1++; - $s = 36; continue; - case 37: - _r$10 = tset.is((function(res, typ$3, w) { return function tpWalker·isParameterized·func2(t$13) { - var {$24r$4, _r$10, _v$1, t$13, $s, $r, $c} = $restore(this, {t$13}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (!(!(t$13 === ptrType$4.nil))) { _v$1 = false; $s = 1; continue s; } - _r$10 = w[0].isParameterized(t$13.typ); /* */ $s = 2; case 2: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _v$1 = _r$10; case 1: - $24r$4 = _v$1; - $s = 3; case 3: return $24r$4; - /* */ } return; } var $f = {$blk: tpWalker·isParameterized·func2, $c: true, $r, $24r$4, _r$10, _v$1, t$13, $s};return $f; - }; })(res, typ$3, w)); /* */ $s = 41; case 41: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - res[0] = _r$10; - $24r$4 = res[0]; - $s = 42; case 42: return $24r$4; - /* } else if ($assertType(_ref, ptrType$28, true)[1]) { */ case 9: - t$8 = _ref.$val; - _r$11 = w[0].isParameterized(t$8.key); /* */ $s = 44; case 44: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - if (_r$11) { _v$1 = true; $s = 43; continue s; } - _r$12 = w[0].isParameterized(t$8.elem); /* */ $s = 45; case 45: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _v$1 = _r$12; case 43: - res[0] = _v$1; - $24r$5 = res[0]; - $s = 46; case 46: return $24r$5; - /* } else if ($assertType(_ref, ptrType$29, true)[1]) { */ case 10: - t$9 = _ref.$val; - _r$13 = w[0].isParameterized(t$9.elem); /* */ $s = 47; case 47: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - res[0] = _r$13; - $24r$6 = res[0]; - $s = 48; case 48: return $24r$6; - /* } else if ($assertType(_ref, ptrType$9, true)[1]) { */ case 11: - t$10 = _ref.$val; - _r$14 = w[0].isParameterizedTypeList(t$10.TypeArgs().list()); /* */ $s = 49; case 49: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - res[0] = _r$14; - $24r$7 = res[0]; - $s = 50; case 50: return $24r$7; - /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 12: - t$11 = _ref.$val; - res[0] = tparamIndex(w[0].tparams, t$11) >= 0; - $s = -1; return res[0]; - /* } else { */ case 13: - t$12 = _ref; - unreachable(); - /* } } */ case 14: - res[0] = false; - $s = -1; return res[0]; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return res[0]; } if($curGoroutine.asleep) { var $f = {$blk: isParameterized$2, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, _entry, _i, _i$1, _key, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tuple, _v, _v$1, fld, i, m, n, ok, res, t, t$1, t$10, t$11, t$12, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, tset, typ$3, w, x, $s, $deferred};return $f; } } - }; - $ptrType(tpWalker).prototype.isParameterizedTypeList = function isParameterizedTypeList(list$2) { - var {_i, _r$1, _ref, list$2, t, w, $s, $r, $c} = $restore(this, {list$2}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - w = this; - _ref = list$2; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$1 = w.isParameterized(t); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (_r$1) { */ case 3: - $s = -1; return true; - /* } */ case 4: - _i++; - $s = 1; continue; - case 2: - $s = -1; return false; - /* */ } return; } var $f = {$blk: isParameterizedTypeList, $c: true, $r, _i, _r$1, _ref, list$2, t, w, $s};return $f; - }; - $ptrType(Checker).prototype.inferB = function inferB(posn, tparams, targs) { - var {$24r, $24r$1, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _tmp, _tmp$1, _tuple, _tuple$1, _v, check, core, dirty, i, i$1, i$2, i$3, i$4, i$5, index$1, index$2, n, n$1, nn, posn, single, smap, t, t0, t1, targ, targ$1, targs, tilde, tpar, tparams, tx, typ$3, typ$4, typ$5, types$1, u, w, $s, $deferred, $r, $c} = $restore(this, {posn, tparams, targs}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - check = [check]; - tparams = [tparams]; - types$1 = [types$1]; - types$1[0] = sliceType$2.nil; - index$1 = 0; - check[0] = this; - $r = assert(tparams[0].$length >= targs.$length && targs.$length > 0); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (false) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (false) { */ case 2: - $r = check[0].dump("-- inferB %s \xE2\x9E\x9E %s", new sliceType$6([tparams[0], targs])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([(function(check, tparams, types$1) { return function Checker·inferB·func1() { - var {$s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = check[0].dump("=> inferB %s \xE2\x9E\x9E %s", new sliceType$6([tparams[0], types$1[0]])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·inferB·func1, $c: true, $r, $s};return $f; - }; })(check, tparams, types$1), []]); - /* } */ case 3: - u = newUnifier(false); - $r = u.x.init(tparams[0]); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - tparamsList.copy(u.y, u.x); - _ref = targs; - _i = 0; - /* while (true) { */ case 6: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 7; continue; } - i = _i; - targ = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - /* */ if (!($interfaceIsEqual(targ, $ifaceNil))) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (!($interfaceIsEqual(targ, $ifaceNil))) { */ case 8: - $r = u.x.set(i, targ); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 9: - _i++; - $s = 6; continue; - case 7: - n = u.x.unknowns(); - /* while (true) { */ case 11: - /* if (!(n > 0)) { break; } */ if(!(n > 0)) { $s = 12; continue; } - nn = n; - _ref$1 = tparams[0]; + } + } else if ((_1 === (19)) || (_1 === (18))) { + if (!((x.Sub.$length === y.Sub.$length))) { + return false; + } + _ref$1 = x.Sub; _i$1 = 0; - /* while (true) { */ case 13: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 14; continue; } + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } i$1 = _i$1; - tpar = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - _r$1 = coreTerm(tpar); /* */ $s = 15; case 15: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - core = _tuple[0]; - single = _tuple[1]; - /* */ if (!(core === ptrType$4.nil)) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (!(core === ptrType$4.nil)) { */ case 16: - tx = u.x.at(i$1); - /* */ if (!($interfaceIsEqual(tx, $ifaceNil))) { $s = 19; continue; } - /* */ if (single && !core.tilde) { $s = 20; continue; } - /* */ $s = 21; continue; - /* if (!($interfaceIsEqual(tx, $ifaceNil))) { */ case 19: - /* */ if (core.tilde && !isTypeParam(tx)) { $s = 23; continue; } - /* */ $s = 24; continue; - /* if (core.tilde && !isTypeParam(tx)) { */ case 23: - _r$2 = under(tx); /* */ $s = 25; case 25: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - tx = _r$2; - /* } */ case 24: - _r$3 = u.unify(tx, core.typ); /* */ $s = 28; case 28: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (!_r$3) { $s = 26; continue; } - /* */ $s = 27; continue; - /* if (!_r$3) { */ case 26: - tilde = ""; - if (core.tilde) { - tilde = "~"; - } - $r = check[0].errorf(posn, 139, "%s does not match %s%s", new sliceType$6([tx, new $String(tilde), core.typ])); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _tmp = sliceType$2.nil; - _tmp$1 = 0; - types$1[0] = _tmp; - index$1 = _tmp$1; - $24r = [types$1[0], index$1]; - $s = 30; case 30: return $24r; - /* } */ case 27: - $s = 22; continue; - /* } else if (single && !core.tilde) { */ case 20: - $r = u.x.set(i$1, core.typ); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 22; continue; - /* } else { */ case 21: - _i$1++; - /* continue; */ $s = 13; continue; - /* } */ case 22: - case 18: - nn = u.x.unknowns(); - if (nn === 0) { - /* break; */ $s = 14; continue; - } - /* } */ case 17: + sub = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + if (!sub.Equal((x$2 = y.Sub, ((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$1])))) { + return false; + } _i$1++; - $s = 13; continue; - case 14: - $r = assert(nn <= n); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (nn === n) { - /* break; */ $s = 12; continue; } - n = nn; - $s = 11; continue; - case 12: - _tuple$1 = u.x.types(); - types$1[0] = _tuple$1[0]; - /* */ if (false) { $s = 33; continue; } - /* */ $s = 34; continue; - /* if (false) { */ case 33: - _ref$2 = targs; - _i$2 = 0; - /* while (true) { */ case 35: - /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 36; continue; } - i$2 = _i$2; - targ$1 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); - $r = assert($interfaceIsEqual(targ$1, $ifaceNil) || $interfaceIsEqual(((i$2 < 0 || i$2 >= types$1[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : types$1[0].$array[types$1[0].$offset + i$2]), targ$1)); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$2++; - $s = 35; continue; - case 36: - /* } */ case 34: - w = new cycleFinder.ptr(tparams[0], types$1[0], new $global.Map()); - _ref$3 = tparams[0]; - _i$3 = 0; - /* while (true) { */ case 38: - /* if (!(_i$3 < _ref$3.$length)) { break; } */ if(!(_i$3 < _ref$3.$length)) { $s = 39; continue; } - t = ((_i$3 < 0 || _i$3 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$3]); - $r = w.typ(t); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$3++; - $s = 38; continue; - case 39: - dirty = sliceType$13.nil; - _ref$4 = types$1[0]; - _i$4 = 0; - while (true) { - if (!(_i$4 < _ref$4.$length)) { break; } - i$3 = _i$4; - typ$3 = ((_i$4 < 0 || _i$4 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$4]); - if (!($interfaceIsEqual(typ$3, $ifaceNil)) && (i$3 >= targs.$length || $interfaceIsEqual(((i$3 < 0 || i$3 >= targs.$length) ? ($throwRuntimeError("index out of range"), undefined) : targs.$array[targs.$offset + i$3]), $ifaceNil))) { - dirty = $append(dirty, i$3); + } else if ((_1 === (14)) || (_1 === (15)) || (_1 === (16))) { + if (!((((x.Flags & 32) >>> 0) === ((y.Flags & 32) >>> 0))) || !(x$3 = x.Sub, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])).Equal((x$4 = y.Sub, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])))) { + return false; } - _i$4++; - } - /* while (true) { */ case 41: - /* if (!(dirty.$length > 0)) { break; } */ if(!(dirty.$length > 0)) { $s = 42; continue; } - _r$4 = makeSubstMap(tparams[0], types$1[0]); /* */ $s = 43; case 43: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - smap = _r$4; - n$1 = 0; - _ref$5 = dirty; - _i$5 = 0; - /* while (true) { */ case 44: - /* if (!(_i$5 < _ref$5.$length)) { break; } */ if(!(_i$5 < _ref$5.$length)) { $s = 45; continue; } - index$2 = ((_i$5 < 0 || _i$5 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$5]); - t0 = ((index$2 < 0 || index$2 >= types$1[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : types$1[0].$array[types$1[0].$offset + index$2]); - _r$5 = check[0].subst(0, t0, smap, ptrType$9.nil, check[0].context()); /* */ $s = 46; case 46: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - t1 = _r$5; - if (!($interfaceIsEqual(t1, t0))) { - ((index$2 < 0 || index$2 >= types$1[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : types$1[0].$array[types$1[0].$offset + index$2] = t1); - ((n$1 < 0 || n$1 >= dirty.$length) ? ($throwRuntimeError("index out of range"), undefined) : dirty.$array[dirty.$offset + n$1] = index$2); - n$1 = n$1 + (1) >> 0; - } - _i$5++; - $s = 44; continue; - case 45: - dirty = $subslice(dirty, 0, n$1); - $s = 41; continue; - case 42: - _ref$6 = types$1[0]; - _i$6 = 0; - /* while (true) { */ case 47: - /* if (!(_i$6 < _ref$6.$length)) { break; } */ if(!(_i$6 < _ref$6.$length)) { $s = 48; continue; } - i$4 = _i$6; - typ$4 = ((_i$6 < 0 || _i$6 >= _ref$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$6.$array[_ref$6.$offset + _i$6]); - if (!(!($interfaceIsEqual(typ$4, $ifaceNil)))) { _v = false; $s = 51; continue s; } - _r$6 = isParameterized(tparams[0], typ$4); /* */ $s = 52; case 52: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _v = _r$6; case 51: - /* */ if (_v) { $s = 49; continue; } - /* */ $s = 50; continue; - /* if (_v) { */ case 49: - ((i$4 < 0 || i$4 >= types$1[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : types$1[0].$array[types$1[0].$offset + i$4] = $ifaceNil); - /* } */ case 50: - _i$6++; - $s = 47; continue; - case 48: - index$1 = -1; - _ref$7 = types$1[0]; - _i$7 = 0; - while (true) { - if (!(_i$7 < _ref$7.$length)) { break; } - i$5 = _i$7; - typ$5 = ((_i$7 < 0 || _i$7 >= _ref$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$7.$array[_ref$7.$offset + _i$7]); - if ($interfaceIsEqual(typ$5, $ifaceNil)) { - index$1 = i$5; - break; + } else if (_1 === (17)) { + if (!((((x.Flags & 32) >>> 0) === ((y.Flags & 32) >>> 0))) || !((x.Min === y.Min)) || !((x.Max === y.Max)) || !(x$5 = x.Sub, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0])).Equal((x$6 = y.Sub, (0 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + 0])))) { + return false; + } + } else if (_1 === (13)) { + if (!((x.Cap === y.Cap)) || !(x.Name === y.Name) || !(x$7 = x.Sub, (0 >= x$7.$length ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + 0])).Equal((x$8 = y.Sub, (0 >= x$8.$length ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + 0])))) { + return false; } - _i$7++; } - $24r$1 = [types$1[0], index$1]; - $s = 53; case 53: return $24r$1; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [types$1[0], index$1]; } if($curGoroutine.asleep) { var $f = {$blk: inferB, $c: true, $r, $24r, $24r$1, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _tmp, _tmp$1, _tuple, _tuple$1, _v, check, core, dirty, i, i$1, i$2, i$3, i$4, i$5, index$1, index$2, n, n$1, nn, posn, single, smap, t, t0, t1, targ, targ$1, targs, tilde, tpar, tparams, tx, typ$3, typ$4, typ$5, types$1, u, w, $s, $deferred};return $f; } } + return true; }; - coreTerm = function coreTerm$1(tpar) { - var {_r$1, _r$2, _r$3, _r$4, _v, n, single, tilde, tpar, typ$3, $s, $r, $c} = $restore(this, {tpar}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - n = [n]; - single = [single]; - tilde = [tilde]; - n[0] = 0; - single[0] = ptrType$4.nil; - tilde[0] = false; - _r$1 = tpar.is((function(n, single, tilde) { return function coreTerm·func1(t) { - var {t, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - /* */ if (t === ptrType$4.nil) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (t === ptrType$4.nil) { */ case 1: - $r = assert(n[0] === 0); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return false; - /* } */ case 2: - n[0] = n[0] + (1) >> 0; - single[0] = t; - if (t.tilde) { - tilde[0] = true; + writeRegexp = function writeRegexp$1(b, re) { + var _1, _2, _i, _i$1, _i$2, _r, _ref, _ref$1, _ref$2, _tmp, _tmp$1, _tmp$2, _tmp$3, b, hi, hi$1, i, i$1, i$2, lo, lo$1, r, re, sub, sub$1, sub$2, x, x$1, x$10, x$11, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + switch (0) { default: + _1 = re.Op; + if (_1 === (1)) { + b.WriteString("[^\\x00-\\x{10FFFF}]"); + } else if (_1 === (2)) { + b.WriteString("(?:)"); + } else if (_1 === (3)) { + if (!((((re.Flags & 1) >>> 0) === 0))) { + b.WriteString("(?i:"); } - $s = -1; return true; - /* */ } return; } var $f = {$blk: coreTerm·func1, $c: true, $r, t, $s};return $f; - }; })(n, single, tilde)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - /* */ if (n[0] === 1) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (n[0] === 1) { */ case 2: - /* */ if (false) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (false) { */ case 4: - if (!(false)) { _v = false; $s = 6; continue s; } - _r$2 = under(single[0].typ); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = coreType(tpar); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _v = $interfaceIsEqual(_r$2, _r$3); case 6: - $r = assert(_v); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 5: - $s = -1; return [single[0], true]; - /* } */ case 3: - _r$4 = coreType(tpar); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - typ$3 = _r$4; - if (!($interfaceIsEqual(typ$3, $ifaceNil))) { - $s = -1; return [new term.ptr(tilde[0], typ$3), false]; - } - $s = -1; return [ptrType$4.nil, false]; - /* */ } return; } var $f = {$blk: coreTerm$1, $c: true, $r, _r$1, _r$2, _r$3, _r$4, _v, n, single, tilde, tpar, typ$3, $s};return $f; - }; - $ptrType(cycleFinder).prototype.typ = function typ$3(typ$4) { - var {_arg, _arg$1, _entry, _i, _i$1, _i$2, _i$3, _key, _r$1, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tuple, i, i$1, m, t, t$1, t$10, t$11, t$12, t$13, t$14, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, tpar, tpar$1, typ$4, w, x, x$1, x$2, $s, $deferred, $r, $c} = $restore(this, {typ$4}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - w = this; - if ((_entry = $mapIndex(w.seen,Type.keyFor(typ$4)), _entry !== undefined ? _entry.v : false)) { - _tuple = $assertType(typ$4, ptrType$14, true); - tpar = _tuple[0]; - if (!(tpar === ptrType$14.nil)) { - i = tparamIndex(w.tparams, tpar); - if (i >= 0) { - (x = w.types, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i] = $ifaceNil)); + _ref = re.Rune; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + r = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + escape(b, r, false); + _i++; } - } - $s = -1; return; - } - _key = typ$4; (w.seen || $throwRuntimeError("assignment to entry in nil map")).set(Type.keyFor(_key), { k: _key, v: true }); - $deferred.push([function(_arg, _arg$1) { $mapDelete(_arg, Type.keyFor(_arg$1)); }, [w.seen, typ$4]]); - _ref = typ$4; - /* */ if ($assertType(_ref, ptrType$8, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType$12, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 9; continue; } - /* */ if ($assertType(_ref, ptrType$29, true)[1]) { $s = 10; continue; } - /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 11; continue; } - /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if ($assertType(_ref, ptrType$8, true)[1]) { */ case 1: - t = _ref.$val; - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 2: - t$1 = _ref.$val; - $r = w.typ(t$1.elem); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$25, true)[1]) { */ case 3: - t$2 = _ref.$val; - $r = w.typ(t$2.elem); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 4: - t$3 = _ref.$val; - $r = w.varList(t$3.fields); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 5: - t$4 = _ref.$val; - $r = w.typ(t$4.base); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 6: - t$5 = _ref.$val; - /* */ if (!(t$5.params === ptrType$15.nil)) { $s = 19; continue; } - /* */ $s = 20; continue; - /* if (!(t$5.params === ptrType$15.nil)) { */ case 19: - $r = w.varList(t$5.params.vars); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 20: - /* */ if (!(t$5.results === ptrType$15.nil)) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if (!(t$5.results === ptrType$15.nil)) { */ case 22: - $r = w.varList(t$5.results.vars); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 23: - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$12, true)[1]) { */ case 7: - t$6 = _ref.$val; - _ref$1 = t$6.terms; - _i = 0; - /* while (true) { */ case 25: - /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 26; continue; } - t$13 = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); - $r = w.typ(t$13.typ); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 25; continue; - case 26: - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 8: - t$7 = _ref.$val; - _ref$2 = t$7.methods; - _i$1 = 0; - /* while (true) { */ case 28: - /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 29; continue; } - m = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); - $r = w.typ(m.object.typ); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$1++; - $s = 28; continue; - case 29: - _ref$3 = t$7.embeddeds; - _i$2 = 0; - /* while (true) { */ case 31: - /* if (!(_i$2 < _ref$3.$length)) { break; } */ if(!(_i$2 < _ref$3.$length)) { $s = 32; continue; } - t$14 = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]); - $r = w.typ(t$14); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$2++; - $s = 31; continue; - case 32: - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$28, true)[1]) { */ case 9: - t$8 = _ref.$val; - $r = w.typ(t$8.key); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = w.typ(t$8.elem); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$29, true)[1]) { */ case 10: - t$9 = _ref.$val; - $r = w.typ(t$9.elem); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$9, true)[1]) { */ case 11: - t$10 = _ref.$val; - _ref$4 = t$10.TypeArgs().list(); - _i$3 = 0; - /* while (true) { */ case 37: - /* if (!(_i$3 < _ref$4.$length)) { break; } */ if(!(_i$3 < _ref$4.$length)) { $s = 38; continue; } - tpar$1 = ((_i$3 < 0 || _i$3 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$3]); - $r = w.typ(tpar$1); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$3++; - $s = 37; continue; - case 38: - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 12: - t$11 = _ref.$val; - i$1 = tparamIndex(w.tparams, t$11); - /* */ if (i$1 >= 0 && !($interfaceIsEqual((x$1 = w.types, ((i$1 < 0 || i$1 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$1])), $ifaceNil))) { $s = 40; continue; } - /* */ $s = 41; continue; - /* if (i$1 >= 0 && !($interfaceIsEqual((x$1 = w.types, ((i$1 < 0 || i$1 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$1])), $ifaceNil))) { */ case 40: - $r = w.typ((x$2 = w.types, ((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$1]))); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 41: - $s = 14; continue; - /* } else { */ case 13: - t$12 = _ref; - _r$1 = fmt.Sprintf("unexpected %T", new sliceType$6([typ$4])); /* */ $s = 43; case 43: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $panic(new $String(_r$1)); - /* } */ case 14: - $s = -1; return; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: typ$3, $c: true, $r, _arg, _arg$1, _entry, _i, _i$1, _i$2, _i$3, _key, _r$1, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tuple, i, i$1, m, t, t$1, t$10, t$11, t$12, t$13, t$14, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, tpar, tpar$1, typ$4, w, x, x$1, x$2, $s, $deferred};return $f; } } - }; - $ptrType(cycleFinder).prototype.varList = function varList$1(list$2) { - var {_i, _ref, list$2, v, w, $s, $r, $c} = $restore(this, {list$2}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - w = this; - _ref = list$2; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - $r = w.typ(v.object.typ); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 1; continue; - case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: varList$1, $c: true, $r, _i, _ref, list$2, v, w, $s};return $f; - }; - $ptrType(Checker).prototype.indexExpr = function indexExpr(x, e) { - var {_1, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tmp, _tmp$1, _tuple, _tuple$1, check, e, elem, index$1, index$2, index$3, isFuncInst, k, key, key$1, length, mode, sig, typ$10, typ$4, typ$5, typ$6, typ$7, typ$8, typ$9, valid, x, $s, $r, $c} = $restore(this, {x, e}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - elem = [elem]; - k = [k]; - key = [key]; - key$1 = [key$1]; - length = [length]; - mode = [mode]; - x = [x]; - isFuncInst = false; - check = this; - $r = check.exprOrType(x[0], e.IndexListExpr.X, true); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _1 = x[0].mode; - /* */ if (_1 === (0)) { $s = 3; continue; } - /* */ if (_1 === (3)) { $s = 4; continue; } - /* */ if (_1 === (7)) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (_1 === (0)) { */ case 3: - $r = check.use(e.IndexListExpr.Indices); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - isFuncInst = false; - $s = -1; return isFuncInst; - /* } else if (_1 === (3)) { */ case 4: - x[0].mode = 0; - _r$1 = check.varType(e.Orig); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - x[0].typ = _r$1; - if (!($interfaceIsEqual(x[0].typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { - x[0].mode = 3; + if (!((((re.Flags & 1) >>> 0) === 0))) { + b.WriteString(")"); } - isFuncInst = false; - $s = -1; return isFuncInst; - /* } else if (_1 === (7)) { */ case 5: - _r$2 = under(x[0].typ); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple = $assertType(_r$2, ptrType$27, true); - sig = _tuple[0]; - if (!(sig === ptrType$27.nil) && sig.TypeParams().Len() > 0) { - isFuncInst = true; - $s = -1; return isFuncInst; + } else if (_1 === (4)) { + if (!(((_r = re.Rune.$length % 2, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) === 0))) { + b.WriteString("[invalid char class]"); + break; } - /* } */ case 6: - case 2: - $r = check.nonGeneric(x[0]); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x[0].mode === 0) { - isFuncInst = false; - $s = -1; return isFuncInst; - } - valid = false; - length[0] = new $Int64(-1, 4294967295); - _r$3 = under(x[0].typ); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _ref = _r$3; - /* */ if ($assertType(_ref, ptrType$8, true)[1]) { $s = 12; continue; } - /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 13; continue; } - /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 14; continue; } - /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 15; continue; } - /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 16; continue; } - /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 17; continue; } - /* */ $s = 18; continue; - /* switch (0) { default: if ($assertType(_ref, ptrType$8, true)[1]) { */ case 12: - typ$4 = _ref.$val; - _r$4 = isString(typ$4); /* */ $s = 21; case 21: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if (_r$4) { $s = 19; continue; } - /* */ $s = 20; continue; - /* if (_r$4) { */ case 19: - valid = true; - /* */ if (x[0].mode === 4) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if (x[0].mode === 4) { */ case 22: - _r$5 = constant.StringVal(x[0].val); /* */ $s = 24; case 24: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - length[0] = (new $Int64(0, _r$5.length)); - /* } */ case 23: - x[0].mode = 7; - x[0].typ = universeByte; - /* } */ case 20: - $s = 18; continue; - /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 13: - typ$5 = _ref.$val; - valid = true; - length[0] = typ$5.len; - if (!((x[0].mode === 5))) { - x[0].mode = 7; - } - x[0].typ = typ$5.elem; - $s = 18; continue; - /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 14: - typ$6 = _ref.$val; - _r$6 = under(typ$6.base); /* */ $s = 25; case 25: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _tuple$1 = $assertType(_r$6, ptrType$10, true); - typ$10 = _tuple$1[0]; - if (!(typ$10 === ptrType$10.nil)) { - valid = true; - length[0] = typ$10.len; - x[0].mode = 5; - x[0].typ = typ$10.elem; - } - $s = 18; continue; - /* } else if ($assertType(_ref, ptrType$25, true)[1]) { */ case 15: - typ$7 = _ref.$val; - valid = true; - x[0].mode = 5; - x[0].typ = typ$7.elem; - $s = 18; continue; - /* } else if ($assertType(_ref, ptrType$28, true)[1]) { */ case 16: - typ$8 = _ref.$val; - _r$7 = check.singleIndex(e); /* */ $s = 26; case 26: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - index$1 = _r$7; - if ($interfaceIsEqual(index$1, $ifaceNil)) { - x[0].mode = 0; - isFuncInst = false; - $s = -1; return isFuncInst; - } - key[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = check.expr(key[0], index$1); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.assignment(key[0], typ$8.key, "map index"); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x[0].mode = 6; - x[0].typ = typ$8.elem; - x[0].expr = e.Orig; - isFuncInst = false; - $s = -1; return isFuncInst; - /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 17: - typ$9 = _ref.$val; - if (!isTypeParam(x[0].typ)) { - /* break; */ $s = 18; continue; - } - _tmp = $ifaceNil; - _tmp$1 = $ifaceNil; - key$1[0] = _tmp; - elem[0] = _tmp$1; - mode[0] = 5; - _r$8 = typ$9.typeSet(); /* */ $s = 31; case 31: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _r$9 = _r$8.underIs((function(elem, k, key, key$1, length, mode, x) { return function Checker·indexExpr·func1(u) { - var {_r$10, _r$11, _r$12, _r$9, _ref$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple$2, e$1, k$1, l, t, t$1, t$2, t$3, t$4, t$5, u, $s, $r, $c} = $restore(this, {u}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - l = new $Int64(-1, 4294967295); - _tmp$2 = $ifaceNil; - _tmp$3 = $ifaceNil; - k$1 = _tmp$2; - e$1 = _tmp$3; - _ref$1 = u; - /* */ if ($assertType(_ref$1, ptrType$8, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref$1, ptrType$10, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref$1, ptrType$26, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref$1, ptrType$25, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref$1, ptrType$28, true)[1]) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if ($assertType(_ref$1, ptrType$8, true)[1]) { */ case 1: - t = _ref$1.$val; - _r$9 = isString(t); /* */ $s = 9; case 9: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - /* */ if (_r$9) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (_r$9) { */ case 7: - e$1 = universeByte; - mode[0] = 7; - /* } */ case 8: - $s = 6; continue; - /* } else if ($assertType(_ref$1, ptrType$10, true)[1]) { */ case 2: - t$1 = _ref$1.$val; - l = t$1.len; - e$1 = t$1.elem; - if (!((x[0].mode === 5))) { - mode[0] = 7; + b.WriteRune(91); + if (re.Rune.$length === 0) { + b.WriteString("^\\x00-\\x{10FFFF}"); + } else if (((x = re.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) === 0) && ((x$1 = re.Rune, x$2 = re.Rune.$length - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])) === 1114111) && re.Rune.$length > 2) { + b.WriteRune(94); + i = 1; + while (true) { + if (!(i < (re.Rune.$length - 1 >> 0))) { break; } + _tmp = (x$3 = re.Rune, ((i < 0 || i >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + i])) + 1 >> 0; + _tmp$1 = (x$4 = re.Rune, x$5 = i + 1 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])) - 1 >> 0; + lo = _tmp; + hi = _tmp$1; + escape(b, lo, lo === 45); + if (!((lo === hi))) { + b.WriteRune(45); + escape(b, hi, hi === 45); } - $s = 6; continue; - /* } else if ($assertType(_ref$1, ptrType$26, true)[1]) { */ case 3: - t$2 = _ref$1.$val; - _r$10 = under(t$2.base); /* */ $s = 10; case 10: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _tuple$2 = $assertType(_r$10, ptrType$10, true); - t$5 = _tuple$2[0]; - if (!(t$5 === ptrType$10.nil)) { - l = t$5.len; - e$1 = t$5.elem; + i = i + (2) >> 0; + } + } else { + i$1 = 0; + while (true) { + if (!(i$1 < re.Rune.$length)) { break; } + _tmp$2 = (x$6 = re.Rune, ((i$1 < 0 || i$1 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + i$1])); + _tmp$3 = (x$7 = re.Rune, x$8 = i$1 + 1 >> 0, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8])); + lo$1 = _tmp$2; + hi$1 = _tmp$3; + escape(b, lo$1, lo$1 === 45); + if (!((lo$1 === hi$1))) { + b.WriteRune(45); + escape(b, hi$1, hi$1 === 45); } - $s = 6; continue; - /* } else if ($assertType(_ref$1, ptrType$25, true)[1]) { */ case 4: - t$3 = _ref$1.$val; - e$1 = t$3.elem; - $s = 6; continue; - /* } else if ($assertType(_ref$1, ptrType$28, true)[1]) { */ case 5: - t$4 = _ref$1.$val; - k$1 = t$4.key; - e$1 = t$4.elem; - /* } */ case 6: - if ($interfaceIsEqual(e$1, $ifaceNil)) { - $s = -1; return false; + i$1 = i$1 + (2) >> 0; } - if ($interfaceIsEqual(elem[0], $ifaceNil)) { - length[0] = l; - _tmp$4 = k$1; - _tmp$5 = e$1; - key$1[0] = _tmp$4; - elem[0] = _tmp$5; - $s = -1; return true; + } + b.WriteRune(93); + } else if (_1 === (5)) { + b.WriteString("(?-s:.)"); + } else if (_1 === (6)) { + b.WriteString("(?s:.)"); + } else if (_1 === (7)) { + b.WriteString("(?m:^)"); + } else if (_1 === (8)) { + b.WriteString("(?m:$)"); + } else if (_1 === (9)) { + b.WriteString("\\A"); + } else if (_1 === (10)) { + if (!((((re.Flags & 256) >>> 0) === 0))) { + b.WriteString("(?-m:$)"); + } else { + b.WriteString("\\z"); + } + } else if (_1 === (11)) { + b.WriteString("\\b"); + } else if (_1 === (12)) { + b.WriteString("\\B"); + } else if (_1 === (13)) { + if (!(re.Name === "")) { + b.WriteString("(?P<"); + b.WriteString(re.Name); + b.WriteRune(62); + } else { + b.WriteRune(40); + } + if (!(((x$9 = re.Sub, (0 >= x$9.$length ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + 0])).Op === 2))) { + writeRegexp(b, (x$10 = re.Sub, (0 >= x$10.$length ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + 0]))); + } + b.WriteRune(41); + } else if ((_1 === (14)) || (_1 === (15)) || (_1 === (16)) || (_1 === (17))) { + sub = (x$11 = re.Sub, (0 >= x$11.$length ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + 0])); + if (sub.Op > 13 || (sub.Op === 3) && sub.Rune.$length > 1) { + b.WriteString("(?:"); + writeRegexp(b, sub); + b.WriteString(")"); + } else { + writeRegexp(b, sub); + } + _2 = re.Op; + if (_2 === (14)) { + b.WriteRune(42); + } else if (_2 === (15)) { + b.WriteRune(43); + } else if (_2 === (16)) { + b.WriteRune(63); + } else if (_2 === (17)) { + b.WriteRune(123); + b.WriteString(strconv.Itoa(re.Min)); + if (!((re.Max === re.Min))) { + b.WriteRune(44); + if (re.Max >= 0) { + b.WriteString(strconv.Itoa(re.Max)); + } } - _r$11 = Identical(key$1[0], k$1); /* */ $s = 13; case 13: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - /* */ if (!_r$11) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (!_r$11) { */ case 11: - $s = -1; return false; - /* } */ case 12: - _r$12 = Identical(elem[0], e$1); /* */ $s = 16; case 16: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - /* */ if (!_r$12) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (!_r$12) { */ case 14: - $s = -1; return false; - /* } */ case 15: - if ((l.$high > 0 || (l.$high === 0 && l.$low >= 0)) && (l.$high < length[0].$high || (l.$high === length[0].$high && l.$low < length[0].$low))) { - length[0] = l; + b.WriteRune(125); + } + if (!((((re.Flags & 32) >>> 0) === 0))) { + b.WriteRune(63); + } + } else if (_1 === (18)) { + _ref$1 = re.Sub; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + sub$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + if (sub$1.Op === 19) { + b.WriteString("(?:"); + writeRegexp(b, sub$1); + b.WriteString(")"); + } else { + writeRegexp(b, sub$1); } - $s = -1; return true; - /* */ } return; } var $f = {$blk: Checker·indexExpr·func1, $c: true, $r, _r$10, _r$11, _r$12, _r$9, _ref$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple$2, e$1, k$1, l, t, t$1, t$2, t$3, t$4, t$5, u, $s};return $f; - }; })(elem, k, key, key$1, length, mode, x)); /* */ $s = 32; case 32: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - /* */ if (_r$9) { $s = 29; continue; } - /* */ $s = 30; continue; - /* if (_r$9) { */ case 29: - /* */ if (!($interfaceIsEqual(key$1[0], $ifaceNil))) { $s = 33; continue; } - /* */ $s = 34; continue; - /* if (!($interfaceIsEqual(key$1[0], $ifaceNil))) { */ case 33: - _r$10 = check.singleIndex(e); /* */ $s = 35; case 35: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - index$2 = _r$10; - if ($interfaceIsEqual(index$2, $ifaceNil)) { - x[0].mode = 0; - isFuncInst = false; - $s = -1; return isFuncInst; + _i$1++; + } + } else if (_1 === (19)) { + _ref$2 = re.Sub; + _i$2 = 0; + while (true) { + if (!(_i$2 < _ref$2.$length)) { break; } + i$2 = _i$2; + sub$2 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); + if (i$2 > 0) { + b.WriteRune(124); } - k[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = check.expr(k[0], index$2); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.assignment(k[0], key$1[0], "map index"); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x[0].mode = 6; - x[0].typ = elem[0]; - x[0].expr = e; - isFuncInst = false; - $s = -1; return isFuncInst; - /* } */ case 34: - valid = true; - x[0].mode = mode[0]; - x[0].typ = elem[0]; - /* } */ case 30: - /* } } */ case 18: - /* */ if (!valid) { $s = 38; continue; } - /* */ $s = 39; continue; - /* if (!valid) { */ case 38: - $r = check.errorf(x[0], 51, "invalid operation: cannot index %s", new sliceType$6([x[0]])); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x[0].mode = 0; - isFuncInst = false; - $s = -1; return isFuncInst; - /* } */ case 39: - _r$11 = check.singleIndex(e); /* */ $s = 41; case 41: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - index$3 = _r$11; - if ($interfaceIsEqual(index$3, $ifaceNil)) { - x[0].mode = 0; - isFuncInst = false; - $s = -1; return isFuncInst; - } - if ($interfaceIsEqual(x[0].typ, $ifaceNil)) { - x[0].typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + writeRegexp(b, sub$2); + _i$2++; + } + } else { + b.WriteString("> 0))) + ">"); + } } - _r$12 = check.index(index$3, length[0]); /* */ $s = 42; case 42: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _r$12; - isFuncInst = false; - $s = -1; return isFuncInst; - /* */ } return; } var $f = {$blk: indexExpr, $c: true, $r, _1, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tmp, _tmp$1, _tuple, _tuple$1, check, e, elem, index$1, index$2, index$3, isFuncInst, k, key, key$1, length, mode, sig, typ$10, typ$4, typ$5, typ$6, typ$7, typ$8, typ$9, valid, x, $s};return $f; }; - $ptrType(Checker).prototype.sliceExpr = function sliceExpr(x, e) { - var {_i, _i$1, _i$2, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, _ref$2, _ref$3, _tuple, _tuple$1, at$1, at$2, check, e, expr, i, i$1, ind, j, length, max, u, u$1, u$2, u$3, u$4, u$5, v, valid, x, x$1, x$2, x$3, x$4, x$5, y, $s, $r, $c} = $restore(this, {x, e}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - $r = check.expr(x, e.X); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (x.mode === 0) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (x.mode === 0) { */ case 2: - $r = check.use(new sliceType$11([e.Low, e.High, e.Max])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 3: - valid = false; - length = new $Int64(-1, 4294967295); - _r$1 = coreString(x.typ); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _ref = _r$1; - /* */ if (_ref === $ifaceNil) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType$8, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 9; continue; } - /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (_ref === $ifaceNil) { */ case 6: - u = _ref; - $r = check.errorf(x, 54, "invalid operation: cannot slice %s: %s has no core type", new sliceType$6([x, x.typ])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - $s = -1; return; - /* } else if ($assertType(_ref, ptrType$8, true)[1]) { */ case 7: - u$1 = _ref.$val; - _r$2 = isString(u$1); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (_r$2) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (_r$2) { */ case 13: - /* */ if (e.Slice3) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (e.Slice3) { */ case 16: - at$1 = e.Max; - if ($interfaceIsEqual(at$1, $ifaceNil)) { - at$1 = e; + $ptrType(Regexp).prototype.String = function String() { + var b, re; + re = this; + b = new strings.Builder.ptr(ptrType$1.nil, sliceType$5.nil); + writeRegexp(b, re); + return b.String(); + }; + escape = function escape$1(b, r, force) { + var _1, b, force, r, s; + if (unicode.IsPrint(r)) { + if (strings.ContainsRune("\\.+*?()|[]{}^$", r) || force) { + b.WriteRune(92); + } + b.WriteRune(r); + return; + } + switch (0) { default: + _1 = r; + if (_1 === (7)) { + b.WriteString("\\a"); + } else if (_1 === (12)) { + b.WriteString("\\f"); + } else if (_1 === (10)) { + b.WriteString("\\n"); + } else if (_1 === (13)) { + b.WriteString("\\r"); + } else if (_1 === (9)) { + b.WriteString("\\t"); + } else if (_1 === (11)) { + b.WriteString("\\v"); + } else { + if (r < 256) { + b.WriteString("\\x"); + s = strconv.FormatInt((new $Int64(0, r)), 16); + if (s.length === 1) { + b.WriteRune(48); } - $r = check.error(at$1, 55, "invalid operation: 3-index slice of string"); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - $s = -1; return; - /* } */ case 17: - valid = true; - /* */ if (x.mode === 4) { $s = 19; continue; } - /* */ $s = 20; continue; - /* if (x.mode === 4) { */ case 19: - _r$3 = constant.StringVal(x.val); /* */ $s = 21; case 21: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - length = (new $Int64(0, _r$3.length)); - /* } */ case 20: - if (isUntyped(x.typ)) { - x.typ = (17 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 17]); + b.WriteString(s); + break; } - /* } */ case 14: - $s = 11; continue; - /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 8: - u$2 = _ref.$val; - valid = true; - length = u$2.len; - /* */ if (!((x.mode === 5))) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if (!((x.mode === 5))) { */ case 22: - $r = check.errorf(x, 54, "invalid operation: cannot slice %s (value not addressable)", new sliceType$6([x])); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - $s = -1; return; - /* } */ case 23: - x.typ = new Slice.ptr(u$2.elem); - $s = 11; continue; - /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 9: - u$3 = _ref.$val; - _r$4 = under(u$3.base); /* */ $s = 25; case 25: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _tuple = $assertType(_r$4, ptrType$10, true); - u$5 = _tuple[0]; - if (!(u$5 === ptrType$10.nil)) { - valid = true; - length = u$5.len; - x.typ = new Slice.ptr(u$5.elem); + b.WriteString("\\x{"); + b.WriteString(strconv.FormatInt((new $Int64(0, r)), 16)); + b.WriteString("}"); } - $s = 11; continue; - /* } else if ($assertType(_ref, ptrType$25, true)[1]) { */ case 10: - u$4 = _ref.$val; - valid = true; - /* } */ case 11: - /* */ if (!valid) { $s = 26; continue; } - /* */ $s = 27; continue; - /* if (!valid) { */ case 26: - $r = check.errorf(x, 54, "invalid operation: cannot slice %s", new sliceType$6([x])); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - $s = -1; return; - /* } */ case 27: - x.mode = 7; - /* */ if (e.Slice3 && ($interfaceIsEqual(e.High, $ifaceNil) || $interfaceIsEqual(e.Max, $ifaceNil))) { $s = 29; continue; } - /* */ $s = 30; continue; - /* if (e.Slice3 && ($interfaceIsEqual(e.High, $ifaceNil) || $interfaceIsEqual(e.Max, $ifaceNil))) { */ case 29: - _r$5 = inNode(e, e.Rbrack); /* */ $s = 31; case 31: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - $r = check.error((x$1 = _r$5, new x$1.constructor.elem(x$1)), -1, "2nd and 3rd index required in 3-index slice"); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - $s = -1; return; - /* } */ case 30: - ind = arrayType$2.zero(); - _ref$1 = new sliceType$11([e.Low, e.High, e.Max]); + } + }; + $ptrType(Regexp).prototype.MaxCap = function MaxCap() { + var _i, _ref, m, n, re, sub; + re = this; + m = 0; + if (re.Op === 13) { + m = re.Cap; + } + _ref = re.Sub; _i = 0; - /* while (true) { */ case 33: - /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 34; continue; } - i = _i; - expr = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); - x$2 = new $Int64(-1, 4294967295); - /* */ if (!($interfaceIsEqual(expr, $ifaceNil))) { $s = 36; continue; } - /* */ if ((i === 0)) { $s = 37; continue; } - /* */ if ((length.$high > 0 || (length.$high === 0 && length.$low >= 0))) { $s = 38; continue; } - /* */ $s = 39; continue; - /* if (!($interfaceIsEqual(expr, $ifaceNil))) { */ case 36: - max = new $Int64(-1, 4294967295); - if ((length.$high > 0 || (length.$high === 0 && length.$low >= 0))) { - max = new $Int64(length.$high + 0, length.$low + 1); - } - _r$6 = check.index(expr, max); /* */ $s = 40; case 40: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _tuple$1 = _r$6; - v = _tuple$1[1]; - if ((v.$high > 0 || (v.$high === 0 && v.$low >= 0))) { - x$2 = v; - } - $s = 39; continue; - /* } else if ((i === 0)) { */ case 37: - x$2 = new $Int64(0, 0); - $s = 39; continue; - /* } else if ((length.$high > 0 || (length.$high === 0 && length.$low >= 0))) { */ case 38: - x$2 = length; - /* } */ case 39: - case 35: - ((i < 0 || i >= ind.length) ? ($throwRuntimeError("index out of range"), undefined) : ind[i] = x$2); + while (true) { + if (!(_i < _ref.$length)) { break; } + sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + n = sub.MaxCap(); + if (m < n) { + m = n; + } _i++; - $s = 33; continue; - case 34: - _ref$2 = $subslice(new sliceType$19(ind), 0, 2); - _i$1 = 0; - /* while (true) { */ case 41: - /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 42; continue; } - i$1 = _i$1; - x$3 = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); - /* */ if ((x$3.$high > 0 || (x$3.$high === 0 && x$3.$low > 0))) { $s = 43; continue; } - /* */ $s = 44; continue; - /* if ((x$3.$high > 0 || (x$3.$high === 0 && x$3.$low > 0))) { */ case 43: - _ref$3 = $subslice(new sliceType$19(ind), (i$1 + 1 >> 0)); - _i$2 = 0; - /* while (true) { */ case 45: - /* if (!(_i$2 < _ref$3.$length)) { break; } */ if(!(_i$2 < _ref$3.$length)) { $s = 46; continue; } - j = _i$2; - y = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]); - /* */ if ((y.$high > 0 || (y.$high === 0 && y.$low >= 0)) && (y.$high < x$3.$high || (y.$high === x$3.$high && y.$low < x$3.$low))) { $s = 47; continue; } - /* */ $s = 48; continue; - /* if ((y.$high > 0 || (y.$high === 0 && y.$low >= 0)) && (y.$high < x$3.$high || (y.$high === x$3.$high && y.$low < x$3.$low))) { */ case 47: - at$2 = (x$4 = new sliceType$11([e.Low, e.High, e.Max]), x$5 = (i$1 + 1 >> 0) + j >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])); - $r = check.errorf(at$2, 53, "invalid slice indices: %d < %d", new sliceType$6([y, x$3])); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* break L; */ $s = 42; continue s; - /* } */ case 48: - _i$2++; - $s = 45; continue; - case 46: - /* } */ case 44: - _i$1++; - $s = 41; continue; - case 42: - $s = -1; return; - /* */ } return; } var $f = {$blk: sliceExpr, $c: true, $r, _i, _i$1, _i$2, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, _ref$2, _ref$3, _tuple, _tuple$1, at$1, at$2, check, e, expr, i, i$1, ind, j, length, max, u, u$1, u$2, u$3, u$4, u$5, v, valid, x, x$1, x$2, x$3, x$4, x$5, y, $s};return $f; + } + return m; }; - $ptrType(Checker).prototype.singleIndex = function singleIndex(expr) { - var {check, expr, x, x$1, $s, $r, $c} = $restore(this, {expr}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - /* */ if (expr.IndexListExpr.Indices.$length === 0) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (expr.IndexListExpr.Indices.$length === 0) { */ case 1: - $r = check.errorf(expr.Orig, -1, "index expression %v with 0 indices", new sliceType$6([expr])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return $ifaceNil; - /* } */ case 2: - /* */ if (expr.IndexListExpr.Indices.$length > 1) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (expr.IndexListExpr.Indices.$length > 1) { */ case 4: - $r = check.error((x = expr.IndexListExpr.Indices, (1 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 1])), 52, "invalid operation: more than one index"); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 5: - $s = -1; return (x$1 = expr.IndexListExpr.Indices, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])); - /* */ } return; } var $f = {$blk: singleIndex, $c: true, $r, check, expr, x, x$1, $s};return $f; + $ptrType(Regexp).prototype.CapNames = function CapNames() { + var names, re; + re = this; + names = $makeSlice(sliceType, (re.MaxCap() + 1 >> 0)); + re.capNames(names); + return names; }; - $ptrType(Checker).prototype.index = function index$1(index$2, max) { - var {_arg, _arg$1, _arg$2, _r$1, _r$2, _r$3, _r$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, check, index$2, max, ok, typ$4, v, val, x, $s, $r, $c} = $restore(this, {index$2, max}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = [x]; - typ$4 = $ifaceNil; - val = new $Int64(0, 0); - check = this; - typ$4 = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - val = new $Int64(-1, 4294967295); - x[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = check.expr(x[0], index$2); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$1 = check.isValidIndex(x[0], 52, "index", false); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (!_r$1) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!_r$1) { */ case 2: - $s = -1; return [typ$4, val]; - /* } */ case 3: - if (!((x[0].mode === 4))) { - _tmp = x[0].typ; - _tmp$1 = new $Int64(-1, 4294967295); - typ$4 = _tmp; - val = _tmp$1; - $s = -1; return [typ$4, val]; + $ptrType(Regexp).prototype.capNames = function capNames(names) { + var _i, _ref, names, re, sub, x; + re = this; + if (re.Op === 13) { + (x = re.Cap, ((x < 0 || x >= names.$length) ? ($throwRuntimeError("index out of range"), undefined) : names.$array[names.$offset + x] = re.Name)); + } + _ref = re.Sub; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + sub.capNames(names); + _i++; } - _r$2 = x[0].val.Kind(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (_r$2 === 0) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (_r$2 === 0) { */ case 5: - $s = -1; return [typ$4, val]; - /* } */ case 6: - _r$3 = constant.Int64Val(x[0].val); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple = _r$3; - v = _tuple[0]; - ok = _tuple[1]; - $r = assert(ok); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if ((max.$high > 0 || (max.$high === 0 && max.$low >= 0)) && (v.$high > max.$high || (v.$high === max.$high && v.$low >= max.$low))) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if ((max.$high > 0 || (max.$high === 0 && max.$low >= 0)) && (v.$high > max.$high || (v.$high === max.$high && v.$low >= max.$low))) { */ case 10: - _arg = x[0]; - _r$4 = x[0].val.String(); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _arg$1 = new $String(_r$4); - _arg$2 = max; - $r = check.errorf(_arg, 52, "invalid argument: index %s out of bounds [0:%d]", new sliceType$6([_arg$1, _arg$2])); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return [typ$4, val]; - /* } */ case 11: - _tmp$2 = x[0].typ; - _tmp$3 = v; - typ$4 = _tmp$2; - val = _tmp$3; - $s = -1; return [typ$4, val]; - /* */ } return; } var $f = {$blk: index$1, $c: true, $r, _arg, _arg$1, _arg$2, _r$1, _r$2, _r$3, _r$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, check, index$2, max, ok, typ$4, v, val, x, $s};return $f; }; - $ptrType(Checker).prototype.isValidIndex = function isValidIndex(x, code, what, allowNegative) { - var {_r$1, _r$2, _r$3, _v, allowNegative, check, code, what, x, $s, $r, $c} = $restore(this, {x, code, what, allowNegative}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - if (x.mode === 0) { - $s = -1; return false; + InstOp.prototype.String = function String$1() { + var i; + i = this.$val; + if (((i >>> 0)) >= ((instOpNames.$length >>> 0))) { + return ""; } - $r = check.convertUntyped(x, (2 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 2])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x.mode === 0) { - $s = -1; return false; + return ((i < 0 || i >= instOpNames.$length) ? ($throwRuntimeError("index out of range"), undefined) : instOpNames.$array[instOpNames.$offset + i]); + }; + $ptrType(InstOp).prototype.String = function(...$args) { return new InstOp(this.$get()).String(...$args); }; + IsWordChar = function IsWordChar$1(r) { + var r; + return 97 <= r && r <= 122 || 65 <= r && r <= 90 || 48 <= r && r <= 57 || (r === 95); + }; + $pkg.IsWordChar = IsWordChar; + $ptrType(Prog).prototype.String = function String$2() { + var b, p; + p = this; + b = new strings.Builder.ptr(ptrType$1.nil, sliceType$5.nil); + dumpProg(b, p); + return b.String(); + }; + $ptrType(Prog).prototype.skipNop = function skipNop(pc) { + var i, p, pc, x, x$1, x$2; + p = this; + i = (x = p.Inst, ((pc < 0 || pc >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + pc, ptrType$2))); + while (true) { + if (!((i.Op === 6) || (i.Op === 2))) { break; } + i = (x$1 = p.Inst, x$2 = i.Out, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + x$2, ptrType$2))); } - _r$1 = allInteger(x.typ); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (!_r$1) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!_r$1) { */ case 2: - $r = check.errorf(x, code, "invalid argument: %s %s must be integer", new sliceType$6([new $String(what), x])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return false; - /* } */ case 3: - /* */ if (x.mode === 4) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (x.mode === 4) { */ case 6: - if (!(!allowNegative)) { _v = false; $s = 10; continue s; } - _r$2 = constant.Sign(x.val); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _v = _r$2 < 0; case 10: - /* */ if (_v) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (_v) { */ case 8: - $r = check.errorf(x, code, "invalid argument: %s %s must not be negative", new sliceType$6([new $String(what), x])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return false; - /* } */ case 9: - _r$3 = representableConst(x.val, check, (2 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 2]), (x.$ptr_val || (x.$ptr_val = new ptrType$50(function() { return this.$target.val; }, function($v) { this.$target.val = $v; }, x)))); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (!_r$3) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (!_r$3) { */ case 13: - $r = check.errorf(x, code, "invalid argument: %s %s overflows int", new sliceType$6([new $String(what), x])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return false; - /* } */ case 14: - /* } */ case 7: - $s = -1; return true; - /* */ } return; } var $f = {$blk: isValidIndex, $c: true, $r, _r$1, _r$2, _r$3, _v, allowNegative, check, code, what, x, $s};return $f; + return i; }; - $ptrType(Checker).prototype.indexedElts = function indexedElts(elts, typ$4, length) { - var {_entry, _i, _key, _r$1, _ref, _tmp, _tmp$1, _tuple, _tuple$1, check, e, elts, eval$1, i, index$2, kv, length, max, typ$4, typ$5, validIndex, visited, x, x$1, x$2, $s, $r, $c} = $restore(this, {elts, typ$4, length}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - visited = (x = elts.$length, ((x < 0 || x > 2147483647) ? $throwRuntimeError("makemap: size out of range") : new $global.Map())); - _tmp = new $Int64(0, 0); - _tmp$1 = new $Int64(0, 0); - index$2 = _tmp; - max = _tmp$1; - _ref = elts; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - x$1 = [x$1]; - e = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - validIndex = false; - eval$1 = e; - _tuple = $assertType(e, ptrType$97, true); - kv = _tuple[0]; - /* */ if (!(kv === ptrType$97.nil)) { $s = 3; continue; } - /* */ if ((length.$high > 0 || (length.$high === 0 && length.$low >= 0)) && (index$2.$high > length.$high || (index$2.$high === length.$high && index$2.$low >= length.$low))) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (!(kv === ptrType$97.nil)) { */ case 3: - _r$1 = check.index(kv.Key, length); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$1 = _r$1; - typ$5 = _tuple$1[0]; - i = _tuple$1[1]; - /* */ if (!($interfaceIsEqual(typ$5, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (!($interfaceIsEqual(typ$5, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { */ case 8: - /* */ if ((i.$high > 0 || (i.$high === 0 && i.$low >= 0))) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if ((i.$high > 0 || (i.$high === 0 && i.$low >= 0))) { */ case 10: - index$2 = i; - validIndex = true; - $s = 12; continue; - /* } else { */ case 11: - $r = check.errorf(e, 62, "index %s must be integer constant", new sliceType$6([kv.Key])); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 12: - /* } */ case 9: - eval$1 = kv.Value; - $s = 6; continue; - /* } else if ((length.$high > 0 || (length.$high === 0 && length.$low >= 0)) && (index$2.$high > length.$high || (index$2.$high === length.$high && index$2.$low >= length.$low))) { */ case 4: - $r = check.errorf(e, 63, "index %d is out of bounds (>= %d)", new sliceType$6([index$2, length])); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 6; continue; - /* } else { */ case 5: - validIndex = true; - /* } */ case 6: - /* */ if (validIndex) { $s = 15; continue; } - /* */ $s = 16; continue; - /* if (validIndex) { */ case 15: - /* */ if ((_entry = $mapIndex(visited,$Int64.keyFor(index$2)), _entry !== undefined ? _entry.v : false)) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if ((_entry = $mapIndex(visited,$Int64.keyFor(index$2)), _entry !== undefined ? _entry.v : false)) { */ case 17: - $r = check.errorf(e, 60, "duplicate index %d in array or slice literal", new sliceType$6([index$2])); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 18: - _key = index$2; (visited || $throwRuntimeError("assignment to entry in nil map")).set($Int64.keyFor(_key), { k: _key, v: true }); - /* } */ case 16: - index$2 = (x$2 = new $Int64(0, 1), new $Int64(index$2.$high + x$2.$high, index$2.$low + x$2.$low)); - if ((index$2.$high > max.$high || (index$2.$high === max.$high && index$2.$low > max.$low))) { - max = index$2; + $ptrType(Inst).prototype.op = function op() { + var _1, i, op$1; + i = this; + op$1 = i.Op; + _1 = op$1; + if ((_1 === (8)) || (_1 === (9)) || (_1 === (10))) { + op$1 = 7; + } + return op$1; + }; + $ptrType(Prog).prototype.Prefix = function Prefix() { + var _tmp, _tmp$1, _tmp$2, _tmp$3, buf, complete, i, p, prefix, x, x$1; + prefix = ""; + complete = false; + p = this; + i = p.skipNop(((p.Start >>> 0))); + if (!((i.op() === 7)) || !((i.Rune.$length === 1))) { + _tmp = ""; + _tmp$1 = i.Op === 4; + prefix = _tmp; + complete = _tmp$1; + return [prefix, complete]; + } + buf = new strings.Builder.ptr(ptrType$1.nil, sliceType$5.nil); + while (true) { + if (!((i.op() === 7) && (i.Rune.$length === 1) && (((((i.Arg << 16 >>> 16)) & 1) >>> 0) === 0) && !(((x = i.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) === 65533)))) { break; } + buf.WriteRune((x$1 = i.Rune, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0]))); + i = p.skipNop(i.Out); + } + _tmp$2 = buf.String(); + _tmp$3 = i.Op === 4; + prefix = _tmp$2; + complete = _tmp$3; + return [prefix, complete]; + }; + $ptrType(Prog).prototype.StartCond = function StartCond() { + var _1, flag, i, p, pc, x, x$1; + p = this; + flag = 0; + pc = ((p.Start >>> 0)); + i = (x = p.Inst, ((pc < 0 || pc >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + pc, ptrType$2))); + Loop: + while (true) { + _1 = i.Op; + if (_1 === (3)) { + flag = (flag | (((i.Arg << 24 >>> 24)))) >>> 0; + } else if (_1 === (5)) { + return 255; + } else if ((_1 === (2)) || (_1 === (6))) { + } else { + break Loop; } - x$1[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = check.exprWithHint(x$1[0], eval$1, typ$4); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.assignment(x$1[0], typ$4, "array or slice literal"); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 1; continue; - case 2: - $s = -1; return max; - /* */ } return; } var $f = {$blk: indexedElts, $c: true, $r, _entry, _i, _key, _r$1, _ref, _tmp, _tmp$1, _tuple, _tuple$1, check, e, elts, eval$1, i, index$2, kv, length, max, typ$4, typ$5, validIndex, visited, x, x$1, x$2, $s};return $f; + pc = i.Out; + i = (x$1 = p.Inst, ((pc < 0 || pc >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + pc, ptrType$2))); + } + return flag; }; - ExprString = function ExprString$1(x) { - var {buf, x, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - buf = [buf]; - buf[0] = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); - $r = WriteExpr(buf[0], x); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return buf[0].String(); - /* */ } return; } var $f = {$blk: ExprString$1, $c: true, $r, buf, x, $s};return $f; + $ptrType(Inst).prototype.MatchRune = function MatchRune(r) { + var i, r; + i = this; + return !((i.MatchRunePos(r) === -1)); }; - $pkg.ExprString = ExprString; - WriteExpr = function WriteExpr$1(buf, x) { - var {_1, _r$1, _ref, buf, ix, s, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {buf, x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ref = x; - /* */ if ($assertType(_ref, ptrType$30, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$41, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$57, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$98, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$99, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$39, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType$36, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref, ptrType$37, true)[1] || $assertType(_ref, ptrType$38, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref, ptrType$100, true)[1]) { $s = 9; continue; } - /* */ if ($assertType(_ref, ptrType$82, true)[1]) { $s = 10; continue; } - /* */ if ($assertType(_ref, ptrType$86, true)[1]) { $s = 11; continue; } - /* */ if ($assertType(_ref, ptrType$43, true)[1]) { $s = 12; continue; } - /* */ if ($assertType(_ref, ptrType$20, true)[1]) { $s = 13; continue; } - /* */ if ($assertType(_ref, ptrType$21, true)[1]) { $s = 14; continue; } - /* */ if ($assertType(_ref, ptrType$40, true)[1]) { $s = 15; continue; } - /* */ if ($assertType(_ref, ptrType$42, true)[1]) { $s = 16; continue; } - /* */ if ($assertType(_ref, ptrType$44, true)[1]) { $s = 17; continue; } - /* */ if ($assertType(_ref, ptrType$45, true)[1]) { $s = 18; continue; } - /* */ if ($assertType(_ref, ptrType$46, true)[1]) { $s = 19; continue; } - /* */ if ($assertType(_ref, ptrType$47, true)[1]) { $s = 20; continue; } - /* */ $s = 21; continue; - /* if ($assertType(_ref, ptrType$30, true)[1]) { */ case 1: - x$2 = _ref.$val; - buf.WriteString(x$2.Name); - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$41, true)[1]) { */ case 2: - x$3 = _ref.$val; - buf.WriteString("..."); - /* */ if (!($interfaceIsEqual(x$3.Elt, $ifaceNil))) { $s = 23; continue; } - /* */ $s = 24; continue; - /* if (!($interfaceIsEqual(x$3.Elt, $ifaceNil))) { */ case 23: - $r = WriteExpr(buf, x$3.Elt); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 24: - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$57, true)[1]) { */ case 3: - x$4 = _ref.$val; - buf.WriteString(x$4.Value); - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$98, true)[1]) { */ case 4: - x$5 = _ref.$val; - buf.WriteByte(40); - $r = WriteExpr(buf, x$5.Type); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - buf.WriteString(" literal)"); - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$99, true)[1]) { */ case 5: - x$6 = _ref.$val; - $r = WriteExpr(buf, x$6.Type); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - buf.WriteByte(123); - if (x$6.Elts.$length > 0) { - buf.WriteString("\xE2\x80\xA6"); + $ptrType(Inst).prototype.MatchRunePos = function MatchRunePos(r) { + var _1, _q, _q$1, _q$2, c, hi, i, j, lo, m, r, r0, r1, rune, x, x$1, x$2; + i = this; + rune = i.Rune; + _1 = rune.$length; + if (_1 === (0)) { + return -1; + } else if (_1 === (1)) { + r0 = (0 >= rune.$length ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + 0]); + if (r === r0) { + return 0; } - buf.WriteByte(125); - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$39, true)[1]) { */ case 6: - x$7 = _ref.$val; - buf.WriteByte(40); - $r = WriteExpr(buf, x$7.X); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - buf.WriteByte(41); - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$36, true)[1]) { */ case 7: - x$8 = _ref.$val; - $r = WriteExpr(buf, x$8.X); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - buf.WriteByte(46); - buf.WriteString(x$8.Sel.Name); - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$37, true)[1] || $assertType(_ref, ptrType$38, true)[1]) { */ case 8: - x$9 = _ref; - ix = typeparams.UnpackIndexExpr(x$9); - $r = WriteExpr(buf, ix.IndexListExpr.X); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - buf.WriteByte(91); - $r = writeExprList(buf, ix.IndexListExpr.Indices); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - buf.WriteByte(93); - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$100, true)[1]) { */ case 9: - x$10 = _ref.$val; - $r = WriteExpr(buf, x$10.X); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - buf.WriteByte(91); - /* */ if (!($interfaceIsEqual(x$10.Low, $ifaceNil))) { $s = 33; continue; } - /* */ $s = 34; continue; - /* if (!($interfaceIsEqual(x$10.Low, $ifaceNil))) { */ case 33: - $r = WriteExpr(buf, x$10.Low); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 34: - buf.WriteByte(58); - /* */ if (!($interfaceIsEqual(x$10.High, $ifaceNil))) { $s = 36; continue; } - /* */ $s = 37; continue; - /* if (!($interfaceIsEqual(x$10.High, $ifaceNil))) { */ case 36: - $r = WriteExpr(buf, x$10.High); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 37: - /* */ if (x$10.Slice3) { $s = 39; continue; } - /* */ $s = 40; continue; - /* if (x$10.Slice3) { */ case 39: - buf.WriteByte(58); - /* */ if (!($interfaceIsEqual(x$10.Max, $ifaceNil))) { $s = 41; continue; } - /* */ $s = 42; continue; - /* if (!($interfaceIsEqual(x$10.Max, $ifaceNil))) { */ case 41: - $r = WriteExpr(buf, x$10.Max); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 42: - /* } */ case 40: - buf.WriteByte(93); - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$82, true)[1]) { */ case 10: - x$11 = _ref.$val; - $r = WriteExpr(buf, x$11.X); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - buf.WriteString(".("); - $r = WriteExpr(buf, x$11.Type); /* */ $s = 45; case 45: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - buf.WriteByte(41); - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$86, true)[1]) { */ case 11: - x$12 = _ref.$val; - $r = WriteExpr(buf, x$12.Fun); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - buf.WriteByte(40); - $r = writeExprList(buf, x$12.Args); /* */ $s = 47; case 47: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (new token.Pos(x$12.Ellipsis).IsValid()) { - buf.WriteString("..."); + if (!((((((i.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { + r1 = unicode.SimpleFold(r0); + while (true) { + if (!(!((r1 === r0)))) { break; } + if (r === r1) { + return 0; + } + r1 = unicode.SimpleFold(r1); + } } - buf.WriteByte(41); - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$43, true)[1]) { */ case 12: - x$13 = _ref.$val; - buf.WriteByte(42); - $r = WriteExpr(buf, x$13.X); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$20, true)[1]) { */ case 13: - x$14 = _ref.$val; - buf.WriteString(new token.Token(x$14.Op).String()); - $r = WriteExpr(buf, x$14.X); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$21, true)[1]) { */ case 14: - x$15 = _ref.$val; - $r = WriteExpr(buf, x$15.X); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - buf.WriteByte(32); - buf.WriteString(new token.Token(x$15.Op).String()); - buf.WriteByte(32); - $r = WriteExpr(buf, x$15.Y); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$40, true)[1]) { */ case 15: - x$16 = _ref.$val; - buf.WriteByte(91); - /* */ if (!($interfaceIsEqual(x$16.Len, $ifaceNil))) { $s = 52; continue; } - /* */ $s = 53; continue; - /* if (!($interfaceIsEqual(x$16.Len, $ifaceNil))) { */ case 52: - $r = WriteExpr(buf, x$16.Len); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 53: - buf.WriteByte(93); - $r = WriteExpr(buf, x$16.Elt); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$42, true)[1]) { */ case 16: - x$17 = _ref.$val; - buf.WriteString("struct{"); - $r = writeFieldList(buf, x$17.Fields.List, "; ", false); /* */ $s = 56; case 56: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - buf.WriteByte(125); - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$44, true)[1]) { */ case 17: - x$18 = _ref.$val; - buf.WriteString("func"); - $r = writeSigExpr(buf, x$18); /* */ $s = 57; case 57: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$45, true)[1]) { */ case 18: - x$19 = _ref.$val; - buf.WriteString("interface{"); - $r = writeFieldList(buf, x$19.Methods.List, "; ", true); /* */ $s = 58; case 58: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - buf.WriteByte(125); - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$46, true)[1]) { */ case 19: - x$20 = _ref.$val; - buf.WriteString("map["); - $r = WriteExpr(buf, x$20.Key); /* */ $s = 59; case 59: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - buf.WriteByte(93); - $r = WriteExpr(buf, x$20.Value); /* */ $s = 60; case 60: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$47, true)[1]) { */ case 20: - x$21 = _ref.$val; - s = ""; - _1 = x$21.Dir; - if (_1 === (1)) { - s = "chan<- "; - } else if (_1 === (2)) { - s = "<-chan "; + return -1; + } else if (_1 === (2)) { + if (r >= (0 >= rune.$length ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + 0]) && r <= (1 >= rune.$length ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + 1])) { + return 0; + } + return -1; + } else if ((_1 === (4)) || (_1 === (6)) || (_1 === (8))) { + j = 0; + while (true) { + if (!(j < rune.$length)) { break; } + if (r < ((j < 0 || j >= rune.$length) ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + j])) { + return -1; + } + if (r <= (x = j + 1 >> 0, ((x < 0 || x >= rune.$length) ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + x]))) { + return (_q = j / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + } + j = j + (2) >> 0; + } + return -1; + } + lo = 0; + hi = (_q$1 = rune.$length / 2, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")); + while (true) { + if (!(lo < hi)) { break; } + m = lo + (_q$2 = ((hi - lo >> 0)) / 2, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero")) >> 0; + c = (x$1 = $imul(2, m), ((x$1 < 0 || x$1 >= rune.$length) ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + x$1])); + if (c <= r) { + if (r <= (x$2 = ($imul(2, m)) + 1 >> 0, ((x$2 < 0 || x$2 >= rune.$length) ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + x$2]))) { + return m; + } + lo = m + 1 >> 0; } else { - s = "chan "; + hi = m; } - buf.WriteString(s); - $r = WriteExpr(buf, x$21.Value); /* */ $s = 61; case 61: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 22; continue; - /* } else { */ case 21: - x$1 = _ref; - _r$1 = fmt.Fprintf(buf, "(ast: %T)", new sliceType$6([x$1])); /* */ $s = 62; case 62: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - /* } */ case 22: - $s = -1; return; - /* */ } return; } var $f = {$blk: WriteExpr$1, $c: true, $r, _1, _r$1, _ref, buf, ix, s, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; + } + return -1; }; - $pkg.WriteExpr = WriteExpr; - writeSigExpr = function writeSigExpr$1(buf, sig) { - var {buf, n, res, sig, x, x$1, $s, $r, $c} = $restore(this, {buf, sig}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - buf.WriteByte(40); - $r = writeFieldList(buf, sig.Params.List, ", ", false); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - buf.WriteByte(41); - res = sig.Results; - n = res.NumFields(); - if (n === 0) { - $s = -1; return; + $ptrType(Inst).prototype.MatchEmptyWidth = function MatchEmptyWidth(before, after) { + var _1, after, before, i; + i = this; + _1 = ((i.Arg << 24 >>> 24)); + if (_1 === (1)) { + return (before === 10) || (before === -1); + } else if (_1 === (2)) { + return (after === 10) || (after === -1); + } else if (_1 === (4)) { + return before === -1; + } else if (_1 === (8)) { + return after === -1; + } else if (_1 === (16)) { + return !(IsWordChar(before) === IsWordChar(after)); + } else if (_1 === (32)) { + return IsWordChar(before) === IsWordChar(after); } - buf.WriteByte(32); - /* */ if ((n === 1) && ((x = res.List, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).Names.$length === 0)) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if ((n === 1) && ((x = res.List, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).Names.$length === 0)) { */ case 2: - $r = WriteExpr(buf, (x$1 = res.List, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])).Type); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 3: - buf.WriteByte(40); - $r = writeFieldList(buf, res.List, ", ", false); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - buf.WriteByte(41); - $s = -1; return; - /* */ } return; } var $f = {$blk: writeSigExpr$1, $c: true, $r, buf, n, res, sig, x, x$1, $s};return $f; + $panic(new $String("unknown empty width arg")); }; - writeFieldList = function writeFieldList$1(buf, list$2, sep, iface$1) { - var {_i, _ref, _tuple, buf, f, i, iface$1, list$2, sep, sig, $s, $r, $c} = $restore(this, {buf, list$2, sep, iface$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ref = list$2; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (i > 0) { - buf.WriteString(sep); - } - writeIdentList(buf, f.Names); - _tuple = $assertType(f.Type, ptrType$44, true); - sig = _tuple[0]; - /* */ if (!(sig === ptrType$44.nil) && iface$1) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!(sig === ptrType$44.nil) && iface$1) { */ case 3: - $r = writeSigExpr(buf, sig); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - /* continue; */ $s = 1; continue; - /* } */ case 4: - if (f.Names.$length > 0) { - buf.WriteByte(32); - } - $r = WriteExpr(buf, f.Type); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 1; continue; - case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: writeFieldList$1, $c: true, $r, _i, _ref, _tuple, buf, f, i, iface$1, list$2, sep, sig, $s};return $f; + $ptrType(Inst).prototype.String = function String$3() { + var b, i; + i = this; + b = new strings.Builder.ptr(ptrType$1.nil, sliceType$5.nil); + dumpInst(b, i); + return b.String(); }; - writeIdentList = function writeIdentList$1(buf, list$2) { - var _i, _ref, buf, i, list$2, x; - _ref = list$2; + bw = function bw$1(b, args) { + var _i, _ref, args, b, s; + _ref = args; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } - i = _i; - x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (i > 0) { - buf.WriteString(", "); - } - buf.WriteString(x.Name); + s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + b.WriteString(s); _i++; } }; - writeExprList = function writeExprList$1(buf, list$2) { - var {_i, _ref, buf, i, list$2, x, $s, $r, $c} = $restore(this, {buf, list$2}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ref = list$2; + dumpProg = function dumpProg$1(b, p) { + var _i, _ref, b, i, j, p, pc, x; + _ref = p.Inst; _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (i > 0) { - buf.WriteString(", "); + while (true) { + if (!(_i < _ref.$length)) { break; } + j = _i; + i = (x = p.Inst, ((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + j, ptrType$2))); + pc = strconv.Itoa(j); + if (pc.length < 3) { + b.WriteString($substring(" ", pc.length)); } - $r = WriteExpr(buf, x); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (j === p.Start) { + pc = pc + ("*"); + } + bw(b, new sliceType([pc, "\t"])); + dumpInst(b, i); + bw(b, new sliceType(["\n"])); _i++; - $s = 1; continue; - case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: writeExprList$1, $c: true, $r, _i, _ref, buf, i, list$2, x, $s};return $f; - }; - init$1 = function init$5() { - unaryOpPredicates = $makeMap(token.Token.keyFor, [{ k: 12, v: allNumeric }, { k: 13, v: allNumeric }, { k: 19, v: allInteger }, { k: 43, v: allBoolean }]); - }; - $ptrType(Checker).prototype.op = function op(m, x, op$1) { - var {_entry, _r$1, check, m, op$1, pred, x, $s, $r, $c} = $restore(this, {m, x, op$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - pred = (_entry = $mapIndex(m,token.Token.keyFor(op$1)), _entry !== undefined ? _entry.v : $throwNilPointerError); - /* */ if (!(pred === $throwNilPointerError)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(pred === $throwNilPointerError)) { */ case 1: - _r$1 = pred(x.typ); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (!_r$1) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (!_r$1) { */ case 4: - $r = check.errorf(x, 45, "invalid operation: operator %s not defined on %s", new sliceType$6([new token.Token(op$1), x])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return false; - /* } */ case 5: - $s = 3; continue; - /* } else { */ case 2: - $r = check.errorf(x, -1, "unknown operator %s", new sliceType$6([new token.Token(op$1)])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return false; - /* } */ case 3: - $s = -1; return true; - /* */ } return; } var $f = {$blk: op, $c: true, $r, _entry, _r$1, check, m, op$1, pred, x, $s};return $f; + } }; - $ptrType(Checker).prototype.overflow = function overflow(x, opPos) { - var {_arg, _arg$1, _r$1, _r$2, _r$3, _r$4, _v, check, op$1, opPos, x, $s, $r, $c} = $restore(this, {x, opPos}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - $r = assert(x.mode === 4); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$1 = x.val.Kind(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1 === 0) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (_r$1 === 0) { */ case 2: - $r = check.error(new atPos(((opPos >> 0))), 14, "constant result is not representable"); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 3: - /* */ if (isTyped(x.typ)) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (isTyped(x.typ)) { */ case 6: - _arg = x; - _r$2 = under(x.typ); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _arg$1 = $assertType(_r$2, ptrType$8); - $r = check.representable(_arg, _arg$1); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 7: - _r$3 = x.val.Kind(); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - if (!(_r$3 === 3)) { _v = false; $s = 12; continue s; } - _r$4 = constant.BitLen(x.val); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _v = _r$4 > 512; case 12: - /* */ if (_v) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (_v) { */ case 10: - op$1 = opName(x.expr); - if (!(op$1 === "")) { - op$1 = op$1 + (" "); - } - $r = check.errorf(new atPos(((opPos >> 0))), 14, "constant %soverflow", new sliceType$6([new $String(op$1)])); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.val = constant.MakeUnknown(); - /* } */ case 11: - $s = -1; return; - /* */ } return; } var $f = {$blk: overflow, $c: true, $r, _arg, _arg$1, _r$1, _r$2, _r$3, _r$4, _v, check, op$1, opPos, x, $s};return $f; + u32 = function u32$1(i) { + var i; + return strconv.FormatUint((new $Uint64(0, i)), 10); }; - opName = function opName$1(e) { - var _ref, e, e$1, e$2, x, x$1; - _ref = e; - if ($assertType(_ref, ptrType$21, true)[1]) { - e$1 = _ref.$val; - if (((e$1.Op >> 0)) < 21) { - return (x = e$1.Op, ((x < 0 || x >= op2str2.length) ? ($throwRuntimeError("index out of range"), undefined) : op2str2[x])); + dumpInst = function dumpInst$1(b, i) { + var _1, b, i; + _1 = i.Op; + if (_1 === (0)) { + bw(b, new sliceType(["alt -> ", u32(i.Out), ", ", u32(i.Arg)])); + } else if (_1 === (1)) { + bw(b, new sliceType(["altmatch -> ", u32(i.Out), ", ", u32(i.Arg)])); + } else if (_1 === (2)) { + bw(b, new sliceType(["cap ", u32(i.Arg), " -> ", u32(i.Out)])); + } else if (_1 === (3)) { + bw(b, new sliceType(["empty ", u32(i.Arg), " -> ", u32(i.Out)])); + } else if (_1 === (4)) { + bw(b, new sliceType(["match"])); + } else if (_1 === (5)) { + bw(b, new sliceType(["fail"])); + } else if (_1 === (6)) { + bw(b, new sliceType(["nop -> ", u32(i.Out)])); + } else if (_1 === (7)) { + if (i.Rune === sliceType$1.nil) { + bw(b, new sliceType(["rune "])); } - } else if ($assertType(_ref, ptrType$20, true)[1]) { - e$2 = _ref.$val; - if (((e$2.Op >> 0)) < 20) { - return (x$1 = e$2.Op, ((x$1 < 0 || x$1 >= op2str1.length) ? ($throwRuntimeError("index out of range"), undefined) : op2str1[x$1])); + bw(b, new sliceType(["rune ", strconv.QuoteToASCII(($runesToString(i.Rune)))])); + if (!((((((i.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { + bw(b, new sliceType(["/i"])); } + bw(b, new sliceType([" -> ", u32(i.Out)])); + } else if (_1 === (8)) { + bw(b, new sliceType(["rune1 ", strconv.QuoteToASCII(($runesToString(i.Rune))), " -> ", u32(i.Out)])); + } else if (_1 === (9)) { + bw(b, new sliceType(["any -> ", u32(i.Out)])); + } else if (_1 === (10)) { + bw(b, new sliceType(["anynotnl -> ", u32(i.Out)])); } - return ""; - }; - underIs = function underIs$3(typ$4, f) { - var {$24r, $24r$1, _r$1, _r$2, _r$3, _tuple, f, tpar, typ$4, $s, $r, $c} = $restore(this, {typ$4, f}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _tuple = $assertType(typ$4, ptrType$14, true); - tpar = _tuple[0]; - /* */ if (!(tpar === ptrType$14.nil)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(tpar === ptrType$14.nil)) { */ case 1: - _r$1 = tpar.underIs(f); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 4; case 4: return $24r; - /* } */ case 2: - _r$2 = under(typ$4); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = f(_r$2); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r$1 = _r$3; - $s = 7; case 7: return $24r$1; - /* */ } return; } var $f = {$blk: underIs$3, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _r$3, _tuple, f, tpar, typ$4, $s};return $f; }; - $ptrType(Checker).prototype.unary = function unary(x, e) { - var {_1, _arg, _arg$1, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, _tuple$1, ch, check, e, ok, prec, u, x, $s, $r, $c} = $restore(this, {x, e}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - $r = check.expr(x, e.X); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x.mode === 0) { - $s = -1; return; - } - _1 = e.Op; - /* */ if (_1 === (17)) { $s = 3; continue; } - /* */ if (_1 === (36)) { $s = 4; continue; } - /* */ if (_1 === (88)) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (_1 === (17)) { */ case 3: - _tuple = $assertType(unparen(e.X), ptrType$99, true); - ok = _tuple[1]; - /* */ if (!ok && !((x.mode === 5))) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (!ok && !((x.mode === 5))) { */ case 7: - $r = check.errorf(x, 49, "invalid operation: cannot take address of %s", new sliceType$6([x])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - $s = -1; return; - /* } */ case 8: - x.mode = 7; - x.typ = new Pointer.ptr(x.typ); - $s = -1; return; - /* } else if (_1 === (36)) { */ case 4: - _r$1 = coreType(x.typ); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - u = _r$1; - /* */ if ($interfaceIsEqual(u, $ifaceNil)) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if ($interfaceIsEqual(u, $ifaceNil)) { */ case 11: - $r = check.errorf(x, 58, "invalid operation: cannot receive from %s (no core type)", new sliceType$6([x])); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - $s = -1; return; - /* } */ case 12: - _tuple$1 = $assertType(u, ptrType$29, true); - ch = _tuple$1[0]; - /* */ if (ch === ptrType$29.nil) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (ch === ptrType$29.nil) { */ case 14: - $r = check.errorf(x, 58, "invalid operation: cannot receive from non-channel %s", new sliceType$6([x])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - $s = -1; return; - /* } */ case 15: - /* */ if (ch.dir === 1) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (ch.dir === 1) { */ case 17: - $r = check.errorf(x, 58, "invalid operation: cannot receive from send-only channel %s", new sliceType$6([x])); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - $s = -1; return; - /* } */ case 18: - x.mode = 8; - x.typ = ch.elem; - check.environment.hasCallOrRecv = true; - $s = -1; return; - /* } else if (_1 === (88)) { */ case 5: - $r = check.error(e, 45, "cannot use ~ outside of interface or type constraint"); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - $s = -1; return; - /* } */ case 6: - case 2: - _r$2 = check.op(unaryOpPredicates, x, e.Op); /* */ $s = 23; case 23: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (!_r$2) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if (!_r$2) { */ case 21: - x.mode = 0; - $s = -1; return; - /* } */ case 22: - /* */ if (x.mode === 4) { $s = 24; continue; } - /* */ $s = 25; continue; - /* if (x.mode === 4) { */ case 24: - _r$3 = x.val.Kind(); /* */ $s = 28; case 28: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (_r$3 === 0) { $s = 26; continue; } - /* */ $s = 27; continue; - /* if (_r$3 === 0) { */ case 26: - $s = -1; return; - /* } */ case 27: - prec = 0; - _r$4 = isUnsigned(x.typ); /* */ $s = 31; case 31: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if (_r$4) { $s = 29; continue; } - /* */ $s = 30; continue; - /* if (_r$4) { */ case 29: - _r$5 = check.conf.sizeof(x.typ); /* */ $s = 32; case 32: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - prec = (($mul64(_r$5, new $Int64(0, 8)).$low >>> 0)); - /* } */ case 30: - _r$6 = constant.UnaryOp(e.Op, x.val, prec); /* */ $s = 33; case 33: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - x.val = _r$6; - x.expr = e; - _arg = x; - _r$7 = x.Pos(); /* */ $s = 34; case 34: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _arg$1 = _r$7; - $r = check.overflow(_arg, _arg$1); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 25: - x.mode = 7; - $s = -1; return; - /* */ } return; } var $f = {$blk: unary, $c: true, $r, _1, _arg, _arg$1, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, _tuple$1, ch, check, e, ok, prec, u, x, $s};return $f; + $ptrType(Error).prototype.Error = function Error$1() { + var e; + e = this; + return "error parsing regexp: " + new ErrorCode(e.Code).String() + ": `" + e.Expr + "`"; }; - isShift = function isShift$1(op$1) { - var op$1; - return (op$1 === 20) || (op$1 === 21); + ErrorCode.prototype.String = function String$4() { + var e; + e = this.$val; + return (e); }; - isComparison = function isComparison$1(op$1) { - var _1, op$1; - _1 = op$1; - if ((_1 === (39)) || (_1 === (44)) || (_1 === (40)) || (_1 === (45)) || (_1 === (41)) || (_1 === (46))) { - return true; + $ptrType(ErrorCode).prototype.String = function(...$args) { return new ErrorCode(this.$get()).String(...$args); }; + $ptrType(parser).prototype.newRegexp = function newRegexp(op$1) { + var op$1, p, re; + p = this; + re = p.free; + if (!(re === ptrType.nil)) { + p.free = re.Sub0[0]; + Regexp.copy((re === ptrType.nil && $throwNilPointerError(), re), new Regexp.ptr(0, 0, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, "")); + } else { + re = new Regexp.ptr(0, 0, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, ""); + p.numRegexp = p.numRegexp + (1) >> 0; } - return false; - }; - fitsFloat32 = function fitsFloat32$1(x) { - var {_r$1, _tuple, f, f32, x, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = constant.Float32Val(x); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - f32 = _tuple[0]; - f = (f32); - $s = -1; return !math.IsInf(f, 0); - /* */ } return; } var $f = {$blk: fitsFloat32$1, $c: true, $r, _r$1, _tuple, f, f32, x, $s};return $f; - }; - roundFloat32 = function roundFloat32$1(x) { - var {$24r, _r$1, _r$2, _tuple, f, f32, x, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = constant.Float32Val(x); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - f32 = _tuple[0]; - f = (f32); - /* */ if (!math.IsInf(f, 0)) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!math.IsInf(f, 0)) { */ case 2: - _r$2 = constant.MakeFloat64(f); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 5; case 5: return $24r; - /* } */ case 3: - $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: roundFloat32$1, $c: true, $r, $24r, _r$1, _r$2, _tuple, f, f32, x, $s};return $f; + re.Op = op$1; + return re; }; - fitsFloat64 = function fitsFloat64$1(x) { - var {_r$1, _tuple, f, x, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = constant.Float64Val(x); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - f = _tuple[0]; - $s = -1; return !math.IsInf(f, 0); - /* */ } return; } var $f = {$blk: fitsFloat64$1, $c: true, $r, _r$1, _tuple, f, x, $s};return $f; + $ptrType(parser).prototype.reuse = function reuse(re) { + var p, re; + p = this; + if (!(p.height === false)) { + $mapDelete(p.height, ptrType.keyFor(re)); + } + re.Sub0[0] = p.free; + p.free = re; }; - roundFloat64 = function roundFloat64$1(x) { - var {$24r, _r$1, _r$2, _tuple, f, x, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = constant.Float64Val(x); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - f = _tuple[0]; - /* */ if (!math.IsInf(f, 0)) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!math.IsInf(f, 0)) { */ case 2: - _r$2 = constant.MakeFloat64(f); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 5; case 5: return $24r; - /* } */ case 3: - $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: roundFloat64$1, $c: true, $r, $24r, _r$1, _r$2, _tuple, f, x, $s};return $f; + $ptrType(parser).prototype.checkLimits = function checkLimits(re) { + var p, re; + p = this; + if (p.numRunes > 33554432) { + $panic(new ErrorCode("expression too large")); + } + p.checkSize(re); + p.checkHeight(re); }; - representableConst = function representableConst$1(x, check, typ$4, rounded) { - var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, _1, _2, _3, _4, _arg, _arg$1, _arg$2, _arg$3, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _v, _v$1, check, conf, im, im$1, n, ok, r, r$1, re, re$1, rounded, s, s$1, s$2, typ$4, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {x, check, typ$4, rounded}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = x.Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1 === 0) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (_r$1 === 0) { */ case 1: - $s = -1; return true; - /* } */ case 2: - conf = ptrType$101.nil; - if (!(check === ptrType$5.nil)) { - conf = check.conf; - } - _r$2 = isInteger(typ$4); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (_r$2) { $s = 5; continue; } - _r$3 = isFloat(typ$4); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (_r$3) { $s = 6; continue; } - _r$4 = isComplex(typ$4); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if (_r$4) { $s = 7; continue; } - _r$5 = isString(typ$4); /* */ $s = 14; case 14: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* */ if (_r$5) { $s = 8; continue; } - _r$6 = isBoolean(typ$4); /* */ $s = 15; case 15: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - /* */ if (_r$6) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (_r$2) { */ case 5: - _r$7 = constant.ToInt(x); /* */ $s = 16; case 16: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - x$1 = _r$7; - _r$8 = x$1.Kind(); /* */ $s = 19; case 19: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - /* */ if (!((_r$8 === 3))) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (!((_r$8 === 3))) { */ case 17: - $s = -1; return false; - /* } */ case 18: - if (!(rounded === ptrType$50.nil)) { - rounded.$set(x$1); + $ptrType(parser).prototype.checkSize = function checkSize(re) { + var _i, _ref, n, p, re, re$1, x, x$1, x$2, x$3, x$4, x$5; + p = this; + if (p.size === false) { + if ((x = p.repeats, (x.$high === 0 && x.$low === 0))) { + p.repeats = new $Int64(0, 1); + } + if (re.Op === 17) { + n = re.Max; + if (n === -1) { + n = re.Min; } - _r$9 = constant.Int64Val(x$1); /* */ $s = 20; case 20: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _tuple = _r$9; - x$2 = _tuple[0]; - ok = _tuple[1]; - /* */ if (ok) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if (ok) { */ case 21: - _1 = typ$4.kind; - /* */ if (_1 === (2)) { $s = 24; continue; } - /* */ if (_1 === (3)) { $s = 25; continue; } - /* */ if (_1 === (4)) { $s = 26; continue; } - /* */ if (_1 === (5)) { $s = 27; continue; } - /* */ if ((_1 === (6)) || (_1 === (20))) { $s = 28; continue; } - /* */ if ((_1 === (7)) || (_1 === (12))) { $s = 29; continue; } - /* */ if (_1 === (8)) { $s = 30; continue; } - /* */ if (_1 === (9)) { $s = 31; continue; } - /* */ if (_1 === (10)) { $s = 32; continue; } - /* */ if (_1 === (11)) { $s = 33; continue; } - /* */ $s = 34; continue; - /* if (_1 === (2)) { */ case 24: - _r$10 = conf.sizeof(typ$4); /* */ $s = 36; case 36: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - s = $imul(((_r$10.$low >>> 0)), 8) >>> 0; - $s = -1; return (x$3 = $shiftLeft64(new $Int64(-1, 4294967295), ((s - 1 >>> 0))), (x$3.$high < x$2.$high || (x$3.$high === x$2.$high && x$3.$low <= x$2.$low))) && (x$4 = (x$5 = $shiftLeft64(new $Int64(0, 1), ((s - 1 >>> 0))), new $Int64(x$5.$high - 0, x$5.$low - 1)), (x$2.$high < x$4.$high || (x$2.$high === x$4.$high && x$2.$low <= x$4.$low))); - /* } else if (_1 === (3)) { */ case 25: - $s = -1; return (-1 < x$2.$high || (-1 === x$2.$high && 4294967168 <= x$2.$low)) && (x$2.$high < 0 || (x$2.$high === 0 && x$2.$low <= 127)); - /* } else if (_1 === (4)) { */ case 26: - $s = -1; return (-1 < x$2.$high || (-1 === x$2.$high && 4294934528 <= x$2.$low)) && (x$2.$high < 0 || (x$2.$high === 0 && x$2.$low <= 32767)); - /* } else if (_1 === (5)) { */ case 27: - $s = -1; return (-1 < x$2.$high || (-1 === x$2.$high && 2147483648 <= x$2.$low)) && (x$2.$high < 0 || (x$2.$high === 0 && x$2.$low <= 2147483647)); - /* } else if ((_1 === (6)) || (_1 === (20))) { */ case 28: - $s = -1; return true; - /* } else if ((_1 === (7)) || (_1 === (12))) { */ case 29: - _r$11 = conf.sizeof(typ$4); /* */ $s = 37; case 37: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - s$1 = $imul(((_r$11.$low >>> 0)), 8) >>> 0; - if (s$1 < 64) { - $s = -1; return (0 < x$2.$high || (0 === x$2.$high && 0 <= x$2.$low)) && (x$6 = (x$7 = $shiftLeft64(new $Int64(0, 1), s$1), new $Int64(x$7.$high - 0, x$7.$low - 1)), (x$2.$high < x$6.$high || (x$2.$high === x$6.$high && x$2.$low <= x$6.$low))); - } - $s = -1; return (0 < x$2.$high || (0 === x$2.$high && 0 <= x$2.$low)); - /* } else if (_1 === (8)) { */ case 30: - $s = -1; return (0 < x$2.$high || (0 === x$2.$high && 0 <= x$2.$low)) && (x$2.$high < 0 || (x$2.$high === 0 && x$2.$low <= 255)); - /* } else if (_1 === (9)) { */ case 31: - $s = -1; return (0 < x$2.$high || (0 === x$2.$high && 0 <= x$2.$low)) && (x$2.$high < 0 || (x$2.$high === 0 && x$2.$low <= 65535)); - /* } else if (_1 === (10)) { */ case 32: - $s = -1; return (0 < x$2.$high || (0 === x$2.$high && 0 <= x$2.$low)) && (x$2.$high < 0 || (x$2.$high === 0 && x$2.$low <= 4294967295)); - /* } else if (_1 === (11)) { */ case 33: - $s = -1; return (0 < x$2.$high || (0 === x$2.$high && 0 <= x$2.$low)); - /* } else { */ case 34: - unreachable(); - /* } */ case 35: - case 23: - /* } */ case 22: - _r$12 = constant.BitLen(x$1); /* */ $s = 39; case 39: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - n = _r$12; - _2 = typ$4.kind; - /* */ if ((_2 === (7)) || (_2 === (12))) { $s = 40; continue; } - /* */ if (_2 === (11)) { $s = 41; continue; } - /* */ if (_2 === (20)) { $s = 42; continue; } - /* */ $s = 43; continue; - /* if ((_2 === (7)) || (_2 === (12))) { */ case 40: - _r$13 = conf.sizeof(typ$4); /* */ $s = 44; case 44: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - s$2 = $imul(((_r$13.$low >>> 0)), 8) >>> 0; - _r$14 = constant.Sign(x$1); /* */ $s = 45; case 45: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - $24r = _r$14 >= 0 && n <= ((s$2 >> 0)); - $s = 46; case 46: return $24r; - /* } else if (_2 === (11)) { */ case 41: - _r$15 = constant.Sign(x$1); /* */ $s = 47; case 47: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - $24r$1 = _r$15 >= 0 && n <= 64; - $s = 48; case 48: return $24r$1; - /* } else if (_2 === (20)) { */ case 42: - $s = -1; return true; - /* } */ case 43: - case 38: - $s = 10; continue; - /* } else if (_r$3) { */ case 6: - _r$16 = constant.ToFloat(x); /* */ $s = 49; case 49: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - x$8 = _r$16; - _r$17 = x$8.Kind(); /* */ $s = 52; case 52: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - /* */ if (!((_r$17 === 4))) { $s = 50; continue; } - /* */ $s = 51; continue; - /* if (!((_r$17 === 4))) { */ case 50: - $s = -1; return false; - /* } */ case 51: - _3 = typ$4.kind; - /* */ if (_3 === (13)) { $s = 54; continue; } - /* */ if (_3 === (14)) { $s = 55; continue; } - /* */ if (_3 === (22)) { $s = 56; continue; } - /* */ $s = 57; continue; - /* if (_3 === (13)) { */ case 54: - /* */ if (rounded === ptrType$50.nil) { $s = 59; continue; } - /* */ $s = 60; continue; - /* if (rounded === ptrType$50.nil) { */ case 59: - _r$18 = fitsFloat32(x$8); /* */ $s = 61; case 61: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - $24r$2 = _r$18; - $s = 62; case 62: return $24r$2; - /* } */ case 60: - _r$19 = roundFloat32(x$8); /* */ $s = 63; case 63: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - r = _r$19; - if (!($interfaceIsEqual(r, $ifaceNil))) { - rounded.$set(r); - $s = -1; return true; - } - $s = 58; continue; - /* } else if (_3 === (14)) { */ case 55: - /* */ if (rounded === ptrType$50.nil) { $s = 64; continue; } - /* */ $s = 65; continue; - /* if (rounded === ptrType$50.nil) { */ case 64: - _r$20 = fitsFloat64(x$8); /* */ $s = 66; case 66: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - $24r$3 = _r$20; - $s = 67; case 67: return $24r$3; - /* } */ case 65: - _r$21 = roundFloat64(x$8); /* */ $s = 68; case 68: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } - r$1 = _r$21; - if (!($interfaceIsEqual(r$1, $ifaceNil))) { - rounded.$set(r$1); - $s = -1; return true; - } - $s = 58; continue; - /* } else if (_3 === (22)) { */ case 56: - $s = -1; return true; - /* } else { */ case 57: - unreachable(); - /* } */ case 58: - case 53: - $s = 10; continue; - /* } else if (_r$4) { */ case 7: - x$9 = constant.ToComplex(x); - _r$22 = x$9.Kind(); /* */ $s = 71; case 71: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - /* */ if (!((_r$22 === 5))) { $s = 69; continue; } - /* */ $s = 70; continue; - /* if (!((_r$22 === 5))) { */ case 69: - $s = -1; return false; - /* } */ case 70: - _4 = typ$4.kind; - /* */ if (_4 === (15)) { $s = 73; continue; } - /* */ if (_4 === (16)) { $s = 74; continue; } - /* */ if (_4 === (23)) { $s = 75; continue; } - /* */ $s = 76; continue; - /* if (_4 === (15)) { */ case 73: - /* */ if (rounded === ptrType$50.nil) { $s = 78; continue; } - /* */ $s = 79; continue; - /* if (rounded === ptrType$50.nil) { */ case 78: - _r$23 = constant.Real(x$9); /* */ $s = 81; case 81: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _r$24 = fitsFloat32(_r$23); /* */ $s = 82; case 82: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - if (!(_r$24)) { _v = false; $s = 80; continue s; } - _r$25 = constant.Imag(x$9); /* */ $s = 83; case 83: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - _r$26 = fitsFloat32(_r$25); /* */ $s = 84; case 84: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - _v = _r$26; case 80: - $24r$4 = _v; - $s = 85; case 85: return $24r$4; - /* } */ case 79: - _r$27 = constant.Real(x$9); /* */ $s = 86; case 86: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - _r$28 = roundFloat32(_r$27); /* */ $s = 87; case 87: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - re = _r$28; - _r$29 = constant.Imag(x$9); /* */ $s = 88; case 88: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } - _r$30 = roundFloat32(_r$29); /* */ $s = 89; case 89: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } - im = _r$30; - /* */ if (!($interfaceIsEqual(re, $ifaceNil)) && !($interfaceIsEqual(im, $ifaceNil))) { $s = 90; continue; } - /* */ $s = 91; continue; - /* if (!($interfaceIsEqual(re, $ifaceNil)) && !($interfaceIsEqual(im, $ifaceNil))) { */ case 90: - _arg = re; - _r$31 = constant.MakeImag(im); /* */ $s = 92; case 92: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } - _arg$1 = _r$31; - _r$32 = constant.BinaryOp(_arg, 12, _arg$1); /* */ $s = 93; case 93: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } - rounded.$set(_r$32); - $s = -1; return true; - /* } */ case 91: - $s = 77; continue; - /* } else if (_4 === (16)) { */ case 74: - /* */ if (rounded === ptrType$50.nil) { $s = 94; continue; } - /* */ $s = 95; continue; - /* if (rounded === ptrType$50.nil) { */ case 94: - _r$33 = constant.Real(x$9); /* */ $s = 97; case 97: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } - _r$34 = fitsFloat64(_r$33); /* */ $s = 98; case 98: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } - if (!(_r$34)) { _v$1 = false; $s = 96; continue s; } - _r$35 = constant.Imag(x$9); /* */ $s = 99; case 99: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } - _r$36 = fitsFloat64(_r$35); /* */ $s = 100; case 100: if($c) { $c = false; _r$36 = _r$36.$blk(); } if (_r$36 && _r$36.$blk !== undefined) { break s; } - _v$1 = _r$36; case 96: - $24r$5 = _v$1; - $s = 101; case 101: return $24r$5; - /* } */ case 95: - _r$37 = constant.Real(x$9); /* */ $s = 102; case 102: if($c) { $c = false; _r$37 = _r$37.$blk(); } if (_r$37 && _r$37.$blk !== undefined) { break s; } - _r$38 = roundFloat64(_r$37); /* */ $s = 103; case 103: if($c) { $c = false; _r$38 = _r$38.$blk(); } if (_r$38 && _r$38.$blk !== undefined) { break s; } - re$1 = _r$38; - _r$39 = constant.Imag(x$9); /* */ $s = 104; case 104: if($c) { $c = false; _r$39 = _r$39.$blk(); } if (_r$39 && _r$39.$blk !== undefined) { break s; } - _r$40 = roundFloat64(_r$39); /* */ $s = 105; case 105: if($c) { $c = false; _r$40 = _r$40.$blk(); } if (_r$40 && _r$40.$blk !== undefined) { break s; } - im$1 = _r$40; - /* */ if (!($interfaceIsEqual(re$1, $ifaceNil)) && !($interfaceIsEqual(im$1, $ifaceNil))) { $s = 106; continue; } - /* */ $s = 107; continue; - /* if (!($interfaceIsEqual(re$1, $ifaceNil)) && !($interfaceIsEqual(im$1, $ifaceNil))) { */ case 106: - _arg$2 = re$1; - _r$41 = constant.MakeImag(im$1); /* */ $s = 108; case 108: if($c) { $c = false; _r$41 = _r$41.$blk(); } if (_r$41 && _r$41.$blk !== undefined) { break s; } - _arg$3 = _r$41; - _r$42 = constant.BinaryOp(_arg$2, 12, _arg$3); /* */ $s = 109; case 109: if($c) { $c = false; _r$42 = _r$42.$blk(); } if (_r$42 && _r$42.$blk !== undefined) { break s; } - rounded.$set(_r$42); - $s = -1; return true; - /* } */ case 107: - $s = 77; continue; - /* } else if (_4 === (23)) { */ case 75: - $s = -1; return true; - /* } else { */ case 76: - unreachable(); - /* } */ case 77: - case 72: - $s = 10; continue; - /* } else if (_r$5) { */ case 8: - _r$43 = x.Kind(); /* */ $s = 110; case 110: if($c) { $c = false; _r$43 = _r$43.$blk(); } if (_r$43 && _r$43.$blk !== undefined) { break s; } - $24r$6 = _r$43 === 2; - $s = 111; case 111: return $24r$6; - /* } else if (_r$6) { */ case 9: - _r$44 = x.Kind(); /* */ $s = 112; case 112: if($c) { $c = false; _r$44 = _r$44.$blk(); } if (_r$44 && _r$44.$blk !== undefined) { break s; } - $24r$7 = _r$44 === 1; - $s = 113; case 113: return $24r$7; - /* } */ case 10: - case 4: - $s = -1; return false; - /* */ } return; } var $f = {$blk: representableConst$1, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, _1, _2, _3, _4, _arg, _arg$1, _arg$2, _arg$3, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _v, _v$1, check, conf, im, im$1, n, ok, r, r$1, re, re$1, rounded, s, s$1, s$2, typ$4, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; + if (n <= 0) { + n = 1; + } + if ((x$1 = (new $Int64(0, n)), x$2 = $div64(new $Int64(0, 3355443), p.repeats, false), (x$1.$high > x$2.$high || (x$1.$high === x$2.$high && x$1.$low > x$2.$low)))) { + p.repeats = new $Int64(0, 3355443); + } else { + p.repeats = $mul64(p.repeats, ((new $Int64(0, n)))); + } + } + if ((x$3 = (new $Int64(0, p.numRegexp)), x$4 = $div64(new $Int64(0, 3355443), p.repeats, false), (x$3.$high < x$4.$high || (x$3.$high === x$4.$high && x$3.$low < x$4.$low)))) { + return; + } + p.size = new $global.Map(); + _ref = p.stack; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + re$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + p.checkSize(re$1); + _i++; + } + } + if ((x$5 = p.calcSize(re, true), (x$5.$high > 0 || (x$5.$high === 0 && x$5.$low > 3355443)))) { + $panic(new ErrorCode("expression too large")); + } + }; + $ptrType(parser).prototype.calcSize = function calcSize(re, force) { + var _1, _entry, _i, _i$1, _key, _ref, _ref$1, _tuple, force, ok, p, re, size, size$1, sub, sub$1, sub$2, x, x$1, x$10, x$11, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + p = this; + if (!force) { + _tuple = (_entry = $mapIndex(p.size,ptrType.keyFor(re)), _entry !== undefined ? [_entry.v, true] : [new $Int64(0, 0), false]); + size = _tuple[0]; + ok = _tuple[1]; + if (ok) { + return size; + } + } + size$1 = new $Int64(0, 0); + switch (0) { default: + _1 = re.Op; + if (_1 === (3)) { + size$1 = (new $Int64(0, re.Rune.$length)); + } else if ((_1 === (13)) || (_1 === (14))) { + size$1 = (x = p.calcSize((x$1 = re.Sub, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])), false), new $Int64(0 + x.$high, 2 + x.$low)); + } else if ((_1 === (15)) || (_1 === (16))) { + size$1 = (x$2 = p.calcSize((x$3 = re.Sub, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])), false), new $Int64(0 + x$2.$high, 1 + x$2.$low)); + } else if (_1 === (18)) { + _ref = re.Sub; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + size$1 = (x$4 = p.calcSize(sub, false), new $Int64(size$1.$high + x$4.$high, size$1.$low + x$4.$low)); + _i++; + } + } else if (_1 === (19)) { + _ref$1 = re.Sub; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + sub$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + size$1 = (x$5 = p.calcSize(sub$1, false), new $Int64(size$1.$high + x$5.$high, size$1.$low + x$5.$low)); + _i$1++; + } + if (re.Sub.$length > 1) { + size$1 = (x$6 = (x$7 = (new $Int64(0, re.Sub.$length)), new $Int64(x$7.$high - 0, x$7.$low - 1)), new $Int64(size$1.$high + x$6.$high, size$1.$low + x$6.$low)); + } + } else if (_1 === (17)) { + sub$2 = p.calcSize((x$8 = re.Sub, (0 >= x$8.$length ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + 0])), false); + if (re.Max === -1) { + if (re.Min === 0) { + size$1 = new $Int64(0 + sub$2.$high, 2 + sub$2.$low); + } else { + size$1 = (x$9 = $mul64((new $Int64(0, re.Min)), sub$2), new $Int64(0 + x$9.$high, 1 + x$9.$low)); + } + break; + } + size$1 = (x$10 = $mul64((new $Int64(0, re.Max)), sub$2), x$11 = (new $Int64(0, (re.Max - re.Min >> 0))), new $Int64(x$10.$high + x$11.$high, x$10.$low + x$11.$low)); + } + } + if ((size$1.$high < 0 || (size$1.$high === 0 && size$1.$low < 1))) { + size$1 = new $Int64(0, 1); + } + _key = re; (p.size || $throwRuntimeError("assignment to entry in nil map")).set(ptrType.keyFor(_key), { k: _key, v: size$1 }); + return size$1; }; - $ptrType(Checker).prototype.representable = function representable(x, typ$4) { - var {_r$1, _tuple, check, code, typ$4, v, x, $s, $r, $c} = $restore(this, {x, typ$4}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = check.representation(x, typ$4); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - v = _tuple[0]; - code = _tuple[1]; - /* */ if (!((code === 0))) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!((code === 0))) { */ case 2: - $r = check.invalidConversion(code, x, typ$4); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - $s = -1; return; - /* } */ case 3: - $r = assert(!($interfaceIsEqual(v, $ifaceNil))); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.val = v; - $s = -1; return; - /* */ } return; } var $f = {$blk: representable, $c: true, $r, _r$1, _tuple, check, code, typ$4, v, x, $s};return $f; + $ptrType(parser).prototype.checkHeight = function checkHeight(re) { + var _i, _ref, p, re, re$1; + p = this; + if (p.numRegexp < 1000) { + return; + } + if (p.height === false) { + p.height = new $global.Map(); + _ref = p.stack; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + re$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + p.checkHeight(re$1); + _i++; + } + } + if (p.calcHeight(re, true) > 1000) { + $panic(new ErrorCode("expression nests too deeply")); + } }; - $ptrType(Checker).prototype.representation = function representation(x, typ$4) { - var {_r$1, _r$2, _r$3, _r$4, _r$5, _v, _v$1, check, typ$4, v, x, $s, $r, $c} = $restore(this, {x, typ$4}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - v = [v]; - check = this; - $r = assert(x.mode === 4); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - v[0] = x.val; - _r$1 = representableConst(x.val, check, typ$4, (v.$ptr || (v.$ptr = new ptrType$50(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, v)))); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (!_r$1) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!_r$1) { */ case 2: - _r$2 = isNumeric(x.typ); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - if (!(_r$2)) { _v = false; $s = 7; continue s; } - _r$3 = isNumeric(typ$4); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _v = _r$3; case 7: - /* */ if (_v) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (_v) { */ case 5: - _r$4 = isInteger(x.typ); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - if (!(!_r$4)) { _v$1 = false; $s = 13; continue s; } - _r$5 = isInteger(typ$4); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _v$1 = _r$5; case 13: - /* */ if (_v$1) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (_v$1) { */ case 10: - $s = -1; return [$ifaceNil, 43]; - /* } else { */ case 11: - $s = -1; return [$ifaceNil, 44]; - /* } */ case 12: - /* } */ case 6: - $s = -1; return [$ifaceNil, 14]; - /* } */ case 3: - $s = -1; return [v[0], 0]; - /* */ } return; } var $f = {$blk: representation, $c: true, $r, _r$1, _r$2, _r$3, _r$4, _r$5, _v, _v$1, check, typ$4, v, x, $s};return $f; + $ptrType(parser).prototype.calcHeight = function calcHeight(re, force) { + var _entry, _i, _key, _ref, _tuple, force, h, h$1, hsub, ok, p, re, sub; + p = this; + if (!force) { + _tuple = (_entry = $mapIndex(p.height,ptrType.keyFor(re)), _entry !== undefined ? [_entry.v, true] : [0, false]); + h = _tuple[0]; + ok = _tuple[1]; + if (ok) { + return h; + } + } + h$1 = 1; + _ref = re.Sub; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + hsub = p.calcHeight(sub, false); + if (h$1 < (1 + hsub >> 0)) { + h$1 = 1 + hsub >> 0; + } + _i++; + } + _key = re; (p.height || $throwRuntimeError("assignment to entry in nil map")).set(ptrType.keyFor(_key), { k: _key, v: h$1 }); + return h$1; }; - $ptrType(Checker).prototype.invalidConversion = function invalidConversion(code, x, target) { - var {_1, check, code, msg, target, x, $s, $r, $c} = $restore(this, {code, x, target}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - msg = "cannot convert %s to type %s"; - _1 = code; - if (_1 === (43)) { - msg = "%s truncated to %s"; - } else if (_1 === (44)) { - msg = "%s overflows %s"; + $ptrType(parser).prototype.push = function push(re) { + var p, re, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + p = this; + p.numRunes = p.numRunes + (re.Rune.$length) >> 0; + if ((re.Op === 4) && (re.Rune.$length === 2) && ((x = re.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) === (x$1 = re.Rune, (1 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 1])))) { + if (p.maybeConcat((x$16 = re.Rune, (0 >= x$16.$length ? ($throwRuntimeError("index out of range"), undefined) : x$16.$array[x$16.$offset + 0])), (p.flags & ~1) << 16 >>> 16)) { + return ptrType.nil; + } + re.Op = 3; + re.Rune = $subslice(re.Rune, 0, 1); + re.Flags = (p.flags & ~1) << 16 >>> 16; + } else if ((re.Op === 4) && (re.Rune.$length === 4) && ((x$2 = re.Rune, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])) === (x$3 = re.Rune, (1 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 1]))) && ((x$4 = re.Rune, (2 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 2])) === (x$5 = re.Rune, (3 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 3]))) && (unicode.SimpleFold((x$6 = re.Rune, (0 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + 0]))) === (x$7 = re.Rune, (2 >= x$7.$length ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + 2]))) && (unicode.SimpleFold((x$8 = re.Rune, (2 >= x$8.$length ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + 2]))) === (x$9 = re.Rune, (0 >= x$9.$length ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + 0]))) || (re.Op === 4) && (re.Rune.$length === 2) && (((x$10 = re.Rune, (0 >= x$10.$length ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + 0])) + 1 >> 0) === (x$11 = re.Rune, (1 >= x$11.$length ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + 1]))) && (unicode.SimpleFold((x$12 = re.Rune, (0 >= x$12.$length ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + 0]))) === (x$13 = re.Rune, (1 >= x$13.$length ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + 1]))) && (unicode.SimpleFold((x$14 = re.Rune, (1 >= x$14.$length ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + 1]))) === (x$15 = re.Rune, (0 >= x$15.$length ? ($throwRuntimeError("index out of range"), undefined) : x$15.$array[x$15.$offset + 0])))) { + if (p.maybeConcat((x$17 = re.Rune, (0 >= x$17.$length ? ($throwRuntimeError("index out of range"), undefined) : x$17.$array[x$17.$offset + 0])), (p.flags | 1) >>> 0)) { + return ptrType.nil; + } + re.Op = 3; + re.Rune = $subslice(re.Rune, 0, 1); + re.Flags = (p.flags | 1) >>> 0; + } else { + p.maybeConcat(-1, 0); } - $r = check.errorf(x, code, msg, new sliceType$6([x, target])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: invalidConversion, $c: true, $r, _1, check, code, msg, target, x, $s};return $f; + p.stack = $append(p.stack, re); + p.checkLimits(re); + return re; }; - $ptrType(Checker).prototype.updateExprType = function updateExprType(x, typ$4, final$1) { - var {check, final$1, typ$4, x, $s, $r, $c} = $restore(this, {x, typ$4, final$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - $r = check.updateExprType0($ifaceNil, x, typ$4, final$1); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: updateExprType, $c: true, $r, check, final$1, typ$4, x, $s};return $f; + $ptrType(parser).prototype.maybeConcat = function maybeConcat(r, flags) { + var flags, n, p, r, re1, re2, x, x$1, x$2, x$3, x$4; + p = this; + n = p.stack.$length; + if (n < 2) { + return false; + } + re1 = (x = p.stack, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + re2 = (x$2 = p.stack, x$3 = n - 2 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])); + if (!((re1.Op === 3)) || !((re2.Op === 3)) || !((((re1.Flags & 1) >>> 0) === ((re2.Flags & 1) >>> 0)))) { + return false; + } + re2.Rune = $appendSlice(re2.Rune, re1.Rune); + if (r >= 0) { + re1.Rune = $subslice(new sliceType$1(re1.Rune0), 0, 1); + (x$4 = re1.Rune, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0] = r)); + re1.Flags = flags; + return true; + } + p.stack = $subslice(p.stack, 0, (n - 1 >> 0)); + p.reuse(re1); + return false; }; - $ptrType(Checker).prototype.updateExprType0 = function updateExprType0(parent, x, typ$4, final$1) { - var {_arg, _arg$1, _arg$2, _arg$3, _entry, _key, _r$1, _r$2, _r$3, _ref, _tuple, c, check, final$1, found, old, parent, typ$4, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r, $c} = $restore(this, {parent, x, typ$4, final$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - c = [c]; - check = this; - _tuple = (_entry = $mapIndex(check.untyped,ast.Expr.keyFor(x)), _entry !== undefined ? [_entry.v, true] : [new exprInfo.ptr(false, 0, ptrType$8.nil, $ifaceNil), false]); - old = $clone(_tuple[0], exprInfo); - found = _tuple[1]; - if (!found) { - $s = -1; return; + $ptrType(parser).prototype.literal = function literal(r) { + var p, r, re; + p = this; + re = p.newRegexp(3); + re.Flags = p.flags; + if (!((((p.flags & 1) >>> 0) === 0))) { + r = minFoldRune(r); } - _ref = x; - /* */ if ($assertType(_ref, ptrType$35, true)[1] || $assertType(_ref, ptrType$98, true)[1] || $assertType(_ref, ptrType$99, true)[1] || $assertType(_ref, ptrType$37, true)[1] || $assertType(_ref, ptrType$100, true)[1] || $assertType(_ref, ptrType$82, true)[1] || $assertType(_ref, ptrType$43, true)[1] || $assertType(_ref, ptrType$97, true)[1] || $assertType(_ref, ptrType$40, true)[1] || $assertType(_ref, ptrType$42, true)[1] || $assertType(_ref, ptrType$44, true)[1] || $assertType(_ref, ptrType$45, true)[1] || $assertType(_ref, ptrType$46, true)[1] || $assertType(_ref, ptrType$47, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$86, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$30, true)[1] || $assertType(_ref, ptrType$57, true)[1] || $assertType(_ref, ptrType$36, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$39, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$20, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$21, true)[1]) { $s = 6; continue; } - /* */ $s = 7; continue; - /* switch (0) { default: if ($assertType(_ref, ptrType$35, true)[1] || $assertType(_ref, ptrType$98, true)[1] || $assertType(_ref, ptrType$99, true)[1] || $assertType(_ref, ptrType$37, true)[1] || $assertType(_ref, ptrType$100, true)[1] || $assertType(_ref, ptrType$82, true)[1] || $assertType(_ref, ptrType$43, true)[1] || $assertType(_ref, ptrType$97, true)[1] || $assertType(_ref, ptrType$40, true)[1] || $assertType(_ref, ptrType$42, true)[1] || $assertType(_ref, ptrType$44, true)[1] || $assertType(_ref, ptrType$45, true)[1] || $assertType(_ref, ptrType$46, true)[1] || $assertType(_ref, ptrType$47, true)[1]) { */ case 1: - x$1 = _ref; - /* */ if (false) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (false) { */ case 9: - _r$1 = x$1.Pos(); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _arg = new token.Pos(_r$1); - _arg$1 = x$1; - _arg$2 = old.typ; - _arg$3 = typ$4; - $r = check.dump("%v: found old type(%s): %s (new: %s)", new sliceType$6([_arg, _arg$1, _arg$2, _arg$3])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - unreachable(); - /* } */ case 10: - $s = -1; return; - /* } else if ($assertType(_ref, ptrType$86, true)[1]) { */ case 2: - x$2 = _ref.$val; - $s = 8; continue; - /* } else if ($assertType(_ref, ptrType$30, true)[1] || $assertType(_ref, ptrType$57, true)[1] || $assertType(_ref, ptrType$36, true)[1]) { */ case 3: - x$3 = _ref; - $s = 8; continue; - /* } else if ($assertType(_ref, ptrType$39, true)[1]) { */ case 4: - x$4 = _ref.$val; - $r = check.updateExprType0(x$4, x$4.X, typ$4, final$1); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 8; continue; - /* } else if ($assertType(_ref, ptrType$20, true)[1]) { */ case 5: - x$5 = _ref.$val; - if (!($interfaceIsEqual(old.val, $ifaceNil))) { - /* break; */ $s = 8; continue; + re.Rune0[0] = r; + re.Rune = $subslice(new sliceType$1(re.Rune0), 0, 1); + p.push(re); + }; + minFoldRune = function minFoldRune$1(r) { + var min, r, r0; + if (r < 65 || r > 125251) { + return r; + } + min = r; + r0 = r; + r = unicode.SimpleFold(r); + while (true) { + if (!(!((r === r0)))) { break; } + if (min > r) { + min = r; } - $r = check.updateExprType0(x$5, x$5.X, typ$4, final$1); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 8; continue; - /* } else if ($assertType(_ref, ptrType$21, true)[1]) { */ case 6: - x$6 = _ref.$val; - if (!($interfaceIsEqual(old.val, $ifaceNil))) { - /* break; */ $s = 8; continue; + r = unicode.SimpleFold(r); + } + return min; + }; + $ptrType(parser).prototype.op = function op$1(op$2) { + var op$2, p, re; + p = this; + re = p.newRegexp(op$2); + re.Flags = p.flags; + return p.push(re); + }; + $ptrType(parser).prototype.repeat = function repeat(op$2, min, max, before, after, lastRepeat) { + var after, before, flags, lastRepeat, max, min, n, op$2, p, re, sub, x, x$1, x$2, x$3, x$4; + p = this; + flags = p.flags; + if (!((((p.flags & 64) >>> 0) === 0))) { + if (after.length > 0 && (after.charCodeAt(0) === 63)) { + after = $substring(after, 1); + flags = (flags ^ (32)) << 16 >>> 16; } - /* */ if (isComparison(x$6.Op)) { $s = 15; continue; } - /* */ if (isShift(x$6.Op)) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (isComparison(x$6.Op)) { */ case 15: - $s = 18; continue; - /* } else if (isShift(x$6.Op)) { */ case 16: - $r = check.updateExprType0(x$6, x$6.X, typ$4, final$1); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 18; continue; - /* } else { */ case 17: - $r = check.updateExprType0(x$6, x$6.X, typ$4, final$1); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.updateExprType0(x$6, x$6.Y, typ$4, final$1); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 18: - $s = 8; continue; - /* } else { */ case 7: - x$7 = _ref; - unreachable(); - /* } } */ case 8: - /* */ if (!final$1 && isUntyped(typ$4)) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if (!final$1 && isUntyped(typ$4)) { */ case 22: - _r$2 = under(typ$4); /* */ $s = 24; case 24: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - old.typ = $assertType(_r$2, ptrType$8); - _key = x; (check.untyped || $throwRuntimeError("assignment to entry in nil map")).set(ast.Expr.keyFor(_key), { k: _key, v: $clone(old, exprInfo) }); - $s = -1; return; - /* } */ case 23: - $mapDelete(check.untyped, ast.Expr.keyFor(x)); - /* */ if (old.isLhs) { $s = 25; continue; } - /* */ $s = 26; continue; - /* if (old.isLhs) { */ case 25: - _r$3 = allInteger(typ$4); /* */ $s = 29; case 29: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (!_r$3) { $s = 27; continue; } - /* */ $s = 28; continue; - /* if (!_r$3) { */ case 27: - $r = check.errorf(x, 57, "invalid operation: shifted operand %s (type %s) must be integer", new sliceType$6([x, typ$4])); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 28: - /* } */ case 26: - /* */ if (!($interfaceIsEqual(old.val, $ifaceNil))) { $s = 31; continue; } - /* */ $s = 32; continue; - /* if (!($interfaceIsEqual(old.val, $ifaceNil))) { */ case 31: - c[0] = new operand.ptr(old.mode, x, old.typ, old.val, 0); - $r = check.convertUntyped(c[0], typ$4); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (c[0].mode === 0) { - $s = -1; return; + if (!(lastRepeat === "")) { + return ["", new Error.ptr("invalid nested repetition operator", $substring(lastRepeat, 0, (lastRepeat.length - after.length >> 0)))]; } - /* } */ case 32: - $r = check.recordTypeAndValue(x, old.mode, typ$4, old.val); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: updateExprType0, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _entry, _key, _r$1, _r$2, _r$3, _ref, _tuple, c, check, final$1, found, old, parent, typ$4, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s};return $f; + } + n = p.stack.$length; + if (n === 0) { + return ["", new Error.ptr("missing argument to repetition operator", $substring(before, 0, (before.length - after.length >> 0)))]; + } + sub = (x = p.stack, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + if (sub.Op >= 128) { + return ["", new Error.ptr("missing argument to repetition operator", $substring(before, 0, (before.length - after.length >> 0)))]; + } + re = p.newRegexp(op$2); + re.Min = min; + re.Max = max; + re.Flags = flags; + re.Sub = $subslice(new sliceType$4(re.Sub0), 0, 1); + (x$2 = re.Sub, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0] = sub)); + (x$3 = p.stack, x$4 = n - 1 >> 0, ((x$4 < 0 || x$4 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + x$4] = re)); + p.checkLimits(re); + if ((op$2 === 17) && (min >= 2 || max >= 2) && !repeatIsValid(re, 1000)) { + return ["", new Error.ptr("invalid repeat count", $substring(before, 0, (before.length - after.length >> 0)))]; + } + return [after, $ifaceNil]; }; - $ptrType(Checker).prototype.updateExprVal = function updateExprVal(x, val) { - var _entry, _key, _tuple, check, info, ok, val, x; - check = this; - _tuple = (_entry = $mapIndex(check.untyped,ast.Expr.keyFor(x)), _entry !== undefined ? [_entry.v, true] : [new exprInfo.ptr(false, 0, ptrType$8.nil, $ifaceNil), false]); - info = $clone(_tuple[0], exprInfo); - ok = _tuple[1]; - if (ok) { - info.val = val; - _key = x; (check.untyped || $throwRuntimeError("assignment to entry in nil map")).set(ast.Expr.keyFor(_key), { k: _key, v: $clone(info, exprInfo) }); + repeatIsValid = function repeatIsValid$1(re, n) { + var _i, _q, _ref, m, n, re, sub; + if (re.Op === 17) { + m = re.Max; + if (m === 0) { + return true; + } + if (m < 0) { + m = re.Min; + } + if (m > n) { + return false; + } + if (m > 0) { + n = (_q = n / (m), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + } + } + _ref = re.Sub; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!repeatIsValid(sub, n)) { + return false; + } + _i++; } + return true; }; - $ptrType(Checker).prototype.convertUntyped = function convertUntyped(x, target) { - var {_r$1, _r$2, _tuple, check, code, newType, t, target, val, x, $s, $r, $c} = $restore(this, {x, target}); + $ptrType(parser).prototype.concat = function concat() { + var {$24r, _r, _r$1, i, p, subs, x, x$1, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = check.implicitTypeAndValue(x, target); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - newType = _tuple[0]; - val = _tuple[1]; - code = _tuple[2]; - /* */ if (!((code === 0))) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!((code === 0))) { */ case 2: - t = target; - /* */ if (!isTypeParam(target)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (!isTypeParam(target)) { */ case 4: - _r$2 = safeUnderlying(target); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - t = _r$2; - /* } */ case 5: - $r = check.invalidConversion(code, x, t); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - $s = -1; return; - /* } */ case 3: - if (!($interfaceIsEqual(val, $ifaceNil))) { - x.val = val; - check.updateExprVal(x.expr, val); + p = this; + p.maybeConcat(-1, 0); + i = p.stack.$length; + while (true) { + if (!(i > 0 && (x = p.stack, x$1 = i - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Op < 128)) { break; } + i = i - (1) >> 0; } - /* */ if (!($interfaceIsEqual(newType, x.typ))) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (!($interfaceIsEqual(newType, x.typ))) { */ case 8: - x.typ = newType; - $r = check.updateExprType(x.expr, newType, false); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 9: - $s = -1; return; - /* */ } return; } var $f = {$blk: convertUntyped, $c: true, $r, _r$1, _r$2, _tuple, check, code, newType, t, target, val, x, $s};return $f; + subs = $subslice(p.stack, i); + p.stack = $subslice(p.stack, 0, i); + if (subs.$length === 0) { + $s = -1; return p.push(p.newRegexp(2)); + } + _r = p.collapse(subs, 18); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = p.push(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: concat, $c: true, $r, $24r, _r, _r$1, i, p, subs, x, x$1, $s};return $f; }; - $ptrType(Checker).prototype.implicitTypeAndValue = function implicitTypeAndValue(x, target) { - var {_1, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _v, check, code, target, tkind, u, u$1, u$2, u$3, v, x, xkind, $s, $r, $c} = $restore(this, {x, target}); + $ptrType(parser).prototype.alternate = function alternate() { + var {$24r, _r, _r$1, i, p, subs, x, x$1, x$2, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = [check]; - x = [x]; - check[0] = this; - if ((x[0].mode === 0) || isTyped(x[0].typ) || $interfaceIsEqual(target, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { - $s = -1; return [x[0].typ, $ifaceNil, 0]; + p = this; + i = p.stack.$length; + while (true) { + if (!(i > 0 && (x = p.stack, x$1 = i - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Op < 128)) { break; } + i = i - (1) >> 0; } - /* */ if (isUntyped(target)) { $s = 1; continue; } + subs = $subslice(p.stack, i); + p.stack = $subslice(p.stack, 0, i); + /* */ if (subs.$length > 0) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (isUntyped(target)) { */ case 1: - xkind = $assertType(x[0].typ, ptrType$8).kind; - tkind = $assertType(target, ptrType$8).kind; - _r$1 = isNumeric(x[0].typ); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - if (!(_r$1)) { _v = false; $s = 6; continue s; } - _r$2 = isNumeric(target); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _v = _r$2; case 6: - /* */ if (_v) { $s = 3; continue; } - /* */ if (!((xkind === tkind))) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_v) { */ case 3: - if (xkind < tkind) { - $s = -1; return [target, $ifaceNil, 0]; - } - $s = 5; continue; - /* } else if (!((xkind === tkind))) { */ case 4: - $s = -1; return [$ifaceNil, $ifaceNil, 97]; - /* } */ case 5: - $s = -1; return [x[0].typ, $ifaceNil, 0]; + /* if (subs.$length > 0) { */ case 1: + $r = cleanAlt((x$2 = subs.$length - 1 >> 0, ((x$2 < 0 || x$2 >= subs.$length) ? ($throwRuntimeError("index out of range"), undefined) : subs.$array[subs.$offset + x$2]))); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 2: - _r$3 = under(target); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _ref = _r$3; - /* */ if ($assertType(_ref, ptrType$8, true)[1]) { $s = 10; continue; } - /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 11; continue; } - /* */ if ($assertType(_ref, ptrType$26, true)[1] || $assertType(_ref, ptrType$27, true)[1] || $assertType(_ref, ptrType$25, true)[1] || $assertType(_ref, ptrType$28, true)[1] || $assertType(_ref, ptrType$29, true)[1]) { $s = 12; continue; } - /* */ $s = 13; continue; - /* switch (0) { default: if ($assertType(_ref, ptrType$8, true)[1]) { */ case 10: - u = _ref.$val; - /* */ if (x[0].mode === 4) { $s = 15; continue; } - /* */ $s = 16; continue; - /* if (x[0].mode === 4) { */ case 15: - _r$4 = check[0].representation(x[0], u); /* */ $s = 17; case 17: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _tuple = _r$4; - v = _tuple[0]; - code = _tuple[1]; - if (!((code === 0))) { - $s = -1; return [$ifaceNil, $ifaceNil, code]; + if (subs.$length === 0) { + $s = -1; return p.push(p.newRegexp(1)); + } + _r = p.collapse(subs, 19); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = p.push(_r); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 6; case 6: return $24r; + /* */ } return; } var $f = {$blk: alternate, $c: true, $r, $24r, _r, _r$1, i, p, subs, x, x$1, x$2, $s};return $f; + }; + cleanAlt = function cleanAlt$1(re) { + var {_1, _r, re, x, x$1, x$2, x$3, x$4, x$5, $s, $r, $c} = $restore(this, {re}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _1 = re.Op; + /* */ if (_1 === (4)) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (_1 === (4)) { */ case 2: + _r = cleanClass((re === ptrType.nil && $throwNilPointerError(), (re.$ptr_Rune || (re.$ptr_Rune = new ptrType$3(function() { return this.$target.Rune; }, function($v) { this.$target.Rune = $v; }, re))))); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + re.Rune = _r; + if ((re.Rune.$length === 2) && ((x = re.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) === 0) && ((x$1 = re.Rune, (1 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 1])) === 1114111)) { + re.Rune = sliceType$1.nil; + re.Op = 6; + $s = -1; return; } - $s = -1; return [target, v, code]; - /* } */ case 16: - _1 = $assertType(x[0].typ, ptrType$8).kind; - /* */ if (_1 === (19)) { $s = 19; continue; } - /* */ if ((_1 === (20)) || (_1 === (21)) || (_1 === (22)) || (_1 === (23))) { $s = 20; continue; } - /* */ if (_1 === (24)) { $s = 21; continue; } - /* */ if (_1 === (25)) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if (_1 === (19)) { */ case 19: - _r$5 = isBoolean(target); /* */ $s = 27; case 27: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* */ if (!_r$5) { $s = 25; continue; } - /* */ $s = 26; continue; - /* if (!_r$5) { */ case 25: - $s = -1; return [$ifaceNil, $ifaceNil, 97]; - /* } */ case 26: - $s = 24; continue; - /* } else if ((_1 === (20)) || (_1 === (21)) || (_1 === (22)) || (_1 === (23))) { */ case 20: - _r$6 = isNumeric(target); /* */ $s = 30; case 30: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - /* */ if (!_r$6) { $s = 28; continue; } - /* */ $s = 29; continue; - /* if (!_r$6) { */ case 28: - $s = -1; return [$ifaceNil, $ifaceNil, 97]; - /* } */ case 29: - $s = 24; continue; - /* } else if (_1 === (24)) { */ case 21: - _r$7 = isString(target); /* */ $s = 33; case 33: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - /* */ if (!_r$7) { $s = 31; continue; } - /* */ $s = 32; continue; - /* if (!_r$7) { */ case 31: - $s = -1; return [$ifaceNil, $ifaceNil, 97]; - /* } */ case 32: - $s = 24; continue; - /* } else if (_1 === (25)) { */ case 22: - _r$8 = hasNil(target); /* */ $s = 36; case 36: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - /* */ if (!_r$8) { $s = 34; continue; } - /* */ $s = 35; continue; - /* if (!_r$8) { */ case 34: - $s = -1; return [$ifaceNil, $ifaceNil, 97]; - /* } */ case 35: - $s = -1; return [(25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25]), $ifaceNil, 0]; - /* } else { */ case 23: - $s = -1; return [$ifaceNil, $ifaceNil, 97]; - /* } */ case 24: - case 18: - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 11: - u$1 = _ref.$val; - /* */ if (isTypeParam(target)) { $s = 37; continue; } - /* */ $s = 38; continue; - /* if (isTypeParam(target)) { */ case 37: - _r$9 = u$1.typeSet(); /* */ $s = 41; case 41: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _r$10 = _r$9.underIs((function(check, x) { return function Checker·implicitTypeAndValue·func1(u$4) { - var {_r$10, _tuple$1, t, u$4, $s, $r, $c} = $restore(this, {u$4}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if ($interfaceIsEqual(u$4, $ifaceNil)) { - $s = -1; return false; - } - _r$10 = check[0].implicitTypeAndValue(x[0], u$4); /* */ $s = 1; case 1: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _tuple$1 = _r$10; - t = _tuple$1[0]; - $s = -1; return !($interfaceIsEqual(t, $ifaceNil)); - /* */ } return; } var $f = {$blk: Checker·implicitTypeAndValue·func1, $c: true, $r, _r$10, _tuple$1, t, u$4, $s};return $f; - }; })(check, x)); /* */ $s = 42; case 42: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - /* */ if (!_r$10) { $s = 39; continue; } - /* */ $s = 40; continue; - /* if (!_r$10) { */ case 39: - $s = -1; return [$ifaceNil, $ifaceNil, 97]; - /* } */ case 40: - if (x[0].isNil()) { - $s = -1; return [(25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25]), $ifaceNil, 0]; + if ((re.Rune.$length === 4) && ((x$2 = re.Rune, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])) === 0) && ((x$3 = re.Rune, (1 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 1])) === 9) && ((x$4 = re.Rune, (2 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 2])) === 11) && ((x$5 = re.Rune, (3 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 3])) === 1114111)) { + re.Rune = sliceType$1.nil; + re.Op = 5; + $s = -1; return; } - /* break; */ $s = 14; continue; - /* } */ case 38: - if (x[0].isNil()) { - $s = -1; return [(25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25]), $ifaceNil, 0]; + if ((re.Rune.$capacity - re.Rune.$length >> 0) > 100) { + re.Rune = $appendSlice($subslice(new sliceType$1(re.Rune0), 0, 0), re.Rune); + } + /* } */ case 3: + case 1: + $s = -1; return; + /* */ } return; } var $f = {$blk: cleanAlt$1, $c: true, $r, _1, _r, re, x, x$1, x$2, x$3, x$4, x$5, $s};return $f; + }; + $ptrType(parser).prototype.collapse = function collapse(subs, op$2) { + var {_i, _r, _ref, old, op$2, p, re, sub, subs, x, $s, $r, $c} = $restore(this, {subs, op$2}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + if (subs.$length === 1) { + $s = -1; return (0 >= subs.$length ? ($throwRuntimeError("index out of range"), undefined) : subs.$array[subs.$offset + 0]); + } + re = p.newRegexp(op$2); + re.Sub = $subslice(new sliceType$4(re.Sub0), 0, 0); + _ref = subs; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (sub.Op === op$2) { + re.Sub = $appendSlice(re.Sub, sub.Sub); + p.reuse(sub); + } else { + re.Sub = $append(re.Sub, sub); } - _r$11 = u$1.Empty(); /* */ $s = 45; case 45: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - /* */ if (!_r$11) { $s = 43; continue; } - /* */ $s = 44; continue; - /* if (!_r$11) { */ case 43: - $s = -1; return [$ifaceNil, $ifaceNil, 97]; - /* } */ case 44: - $s = -1; return [Default(x[0].typ), $ifaceNil, 0]; - /* } else if ($assertType(_ref, ptrType$26, true)[1] || $assertType(_ref, ptrType$27, true)[1] || $assertType(_ref, ptrType$25, true)[1] || $assertType(_ref, ptrType$28, true)[1] || $assertType(_ref, ptrType$29, true)[1]) { */ case 12: - u$2 = _ref; - if (!x[0].isNil()) { - $s = -1; return [$ifaceNil, $ifaceNil, 97]; + _i++; + } + /* */ if (op$2 === 19) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (op$2 === 19) { */ case 1: + _r = p.factor(re.Sub); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + re.Sub = _r; + if (re.Sub.$length === 1) { + old = re; + re = (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); + p.reuse(old); } - $s = -1; return [(25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25]), $ifaceNil, 0]; - /* } else { */ case 13: - u$3 = _ref; - $s = -1; return [$ifaceNil, $ifaceNil, 97]; - /* } } */ case 14: - $s = -1; return [target, $ifaceNil, 0]; - /* */ } return; } var $f = {$blk: implicitTypeAndValue, $c: true, $r, _1, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _v, check, code, target, tkind, u, u$1, u$2, u$3, v, x, xkind, $s};return $f; + /* } */ case 2: + $s = -1; return re; + /* */ } return; } var $f = {$blk: collapse, $c: true, $r, _i, _r, _ref, old, op$2, p, re, sub, subs, x, $s};return $f; }; - $ptrType(Checker).prototype.comparison = function comparison(x, y, op$1, switchCase) { - var {_1, _arg, _arg$1, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, cause, check, code, errOp, ok, op$1, switchCase, typ$4, x, y, $s, $r, $c} = $restore(this, {x, y, op$1, switchCase}); + $ptrType(parser).prototype.factor = function factor(sub) { + var {_i, _r, _r$1, _ref, _tmp, _tmp$1, _tuple, first, i, i$1, i$2, i$3, ifirst, iflags, istr, j, j$1, j$2, j$3, max, out, p, prefix, prefix$1, re, re$1, reuse$1, same, start, str, strflags, sub, suffix, suffix$1, x, x$1, $s, $r, $c} = $restore(this, {sub}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - if ($interfaceIsEqual(x.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])) || $interfaceIsEqual(y.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { - x.mode = 0; - $s = -1; return; - } - if (switchCase) { - op$1 = 39; + p = this; + if (sub.$length < 2) { + $s = -1; return sub; } - errOp = x; - cause = ""; - code = 46; - _r$1 = x.assignableTo(check, y.typ, ptrType$34.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - ok = _tuple[0]; - /* */ if (!ok) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!ok) { */ case 2: - _r$2 = y.assignableTo(check, x.typ, ptrType$34.nil); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple$1 = _r$2; - ok = _tuple$1[0]; - /* } */ case 3: - /* */ if (!ok) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (!ok) { */ case 5: - errOp = y; - _r$3 = check.sprintf("mismatched types %s and %s", new sliceType$6([x.typ, y.typ])); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - cause = _r$3; - /* goto Error */ $s = 8; continue; - /* } */ case 6: - code = 45; - _1 = op$1; - /* */ if ((_1 === (39)) || (_1 === (44))) { $s = 10; continue; } - /* */ if ((_1 === (40)) || (_1 === (45)) || (_1 === (41)) || (_1 === (46))) { $s = 11; continue; } + str = sliceType$1.nil; + strflags = 0; + start = 0; + out = $subslice(sub, 0, 0); + i = 0; + /* while (true) { */ case 1: + /* if (!(i <= sub.$length)) { break; } */ if(!(i <= sub.$length)) { $s = 2; continue; } + istr = sliceType$1.nil; + iflags = 0; + if (i < sub.$length) { + _tuple = p.leadingString(((i < 0 || i >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i])); + istr = _tuple[0]; + iflags = _tuple[1]; + if (iflags === strflags) { + same = 0; + while (true) { + if (!(same < str.$length && same < istr.$length && (((same < 0 || same >= str.$length) ? ($throwRuntimeError("index out of range"), undefined) : str.$array[str.$offset + same]) === ((same < 0 || same >= istr.$length) ? ($throwRuntimeError("index out of range"), undefined) : istr.$array[istr.$offset + same])))) { break; } + same = same + (1) >> 0; + } + if (same > 0) { + str = $subslice(str, 0, same); + i = i + (1) >> 0; + /* continue; */ $s = 1; continue; + } + } + } + /* */ if (i === start) { $s = 3; continue; } + /* */ if (i === (start + 1 >> 0)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (i === start) { */ case 3: + $s = 6; continue; + /* } else if (i === (start + 1 >> 0)) { */ case 4: + out = $append(out, ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start])); + $s = 6; continue; + /* } else { */ case 5: + prefix = p.newRegexp(3); + prefix.Flags = strflags; + prefix.Rune = $appendSlice($subslice(prefix.Rune, 0, 0), str); + j = start; + while (true) { + if (!(j < i)) { break; } + ((j < 0 || j >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j] = p.removeLeadingString(((j < 0 || j >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j]), str.$length)); + p.checkLimits(((j < 0 || j >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j])); + j = j + (1) >> 0; + } + _r = p.collapse($subslice(sub, start, i), 19); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + suffix = _r; + re = p.newRegexp(18); + re.Sub = $append($subslice(re.Sub, 0, 0), prefix, suffix); + out = $append(out, re); + /* } */ case 6: + start = i; + str = istr; + strflags = iflags; + i = i + (1) >> 0; + $s = 1; continue; + case 2: + sub = out; + start = 0; + out = $subslice(sub, 0, 0); + first = ptrType.nil; + i$1 = 0; + /* while (true) { */ case 8: + /* if (!(i$1 <= sub.$length)) { break; } */ if(!(i$1 <= sub.$length)) { $s = 9; continue; } + ifirst = ptrType.nil; + if (i$1 < sub.$length) { + ifirst = p.leadingRegexp(((i$1 < 0 || i$1 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i$1])); + if (!(first === ptrType.nil) && first.Equal(ifirst) && (isCharClass(first) || ((first.Op === 17) && (first.Min === first.Max) && isCharClass((x = first.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])))))) { + i$1 = i$1 + (1) >> 0; + /* continue; */ $s = 8; continue; + } + } + /* */ if (i$1 === start) { $s = 10; continue; } + /* */ if (i$1 === (start + 1 >> 0)) { $s = 11; continue; } /* */ $s = 12; continue; - /* if ((_1 === (39)) || (_1 === (44))) { */ case 10: - /* */ if (x.isNil() || y.isNil()) { $s = 15; continue; } - _r$4 = Comparable(x.typ); /* */ $s = 19; case 19: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if (!_r$4) { $s = 16; continue; } - _r$5 = Comparable(y.typ); /* */ $s = 20; case 20: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* */ if (!_r$5) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (x.isNil() || y.isNil()) { */ case 15: - typ$4 = x.typ; - if (x.isNil()) { - typ$4 = y.typ; - } - _r$6 = hasNil(typ$4); /* */ $s = 23; case 23: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - /* */ if (!_r$6) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if (!_r$6) { */ case 21: - errOp = y; - /* goto Error */ $s = 8; continue; - /* } */ case 22: - $s = 18; continue; - /* } else if (!_r$4) { */ case 16: - errOp = x; - _r$7 = check.incomparableCause(x.typ); /* */ $s = 24; case 24: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - cause = _r$7; - /* goto Error */ $s = 8; continue; - $s = 18; continue; - /* } else if (!_r$5) { */ case 17: - errOp = y; - _r$8 = check.incomparableCause(y.typ); /* */ $s = 25; case 25: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - cause = _r$8; - /* goto Error */ $s = 8; continue; - /* } */ case 18: - case 14: + /* if (i$1 === start) { */ case 10: $s = 13; continue; - /* } else if ((_1 === (40)) || (_1 === (45)) || (_1 === (41)) || (_1 === (46))) { */ case 11: - _r$9 = allOrdered(x.typ); /* */ $s = 30; case 30: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - /* */ if (!_r$9) { $s = 27; continue; } - _r$10 = allOrdered(y.typ); /* */ $s = 31; case 31: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - /* */ if (!_r$10) { $s = 28; continue; } - /* */ $s = 29; continue; - /* if (!_r$9) { */ case 27: - errOp = x; - /* goto Error */ $s = 8; continue; - $s = 29; continue; - /* } else if (!_r$10) { */ case 28: - errOp = y; - /* goto Error */ $s = 8; continue; - /* } */ case 29: - case 26: + /* } else if (i$1 === (start + 1 >> 0)) { */ case 11: + out = $append(out, ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start])); $s = 13; continue; /* } else { */ case 12: - unreachable(); - /* } */ case 13: - case 9: - /* */ if ((x.mode === 4) && (y.mode === 4)) { $s = 32; continue; } - /* */ $s = 33; continue; - /* if ((x.mode === 4) && (y.mode === 4)) { */ case 32: - _r$11 = constant.Compare(x.val, op$1, y.val); /* */ $s = 35; case 35: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _r$12 = constant.MakeBool(_r$11); /* */ $s = 36; case 36: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - x.val = _r$12; - $s = 34; continue; - /* } else { */ case 33: - x.mode = 7; - $r = check.updateExprType(x.expr, Default(x.typ), true); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.updateExprType(y.expr, Default(y.typ), true); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 34: - x.typ = (19 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 19]); - $s = -1; return; - /* Error: */ case 8: - /* */ if (cause === "") { $s = 39; continue; } - /* */ $s = 40; continue; - /* if (cause === "") { */ case 39: - /* */ if (isTypeParam(x.typ) || isTypeParam(y.typ)) { $s = 41; continue; } - /* */ $s = 42; continue; - /* if (isTypeParam(x.typ) || isTypeParam(y.typ)) { */ case 41: - if (!isTypeParam(x.typ)) { - errOp = y; + prefix$1 = first; + j$1 = start; + while (true) { + if (!(j$1 < i$1)) { break; } + reuse$1 = !((j$1 === start)); + ((j$1 < 0 || j$1 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$1] = p.removeLeadingRegexp(((j$1 < 0 || j$1 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$1]), reuse$1)); + p.checkLimits(((j$1 < 0 || j$1 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$1])); + j$1 = j$1 + (1) >> 0; } - _r$13 = check.sprintf("type parameter %s is not comparable with %s", new sliceType$6([errOp.typ, new token.Token(op$1)])); /* */ $s = 44; case 44: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - cause = _r$13; - $s = 43; continue; - /* } else { */ case 42: - _arg = new token.Token(op$1); - _r$14 = check.kindString(errOp.typ); /* */ $s = 45; case 45: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - _arg$1 = new $String(_r$14); - _r$15 = check.sprintf("operator %s not defined on %s", new sliceType$6([_arg, _arg$1])); /* */ $s = 46; case 46: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - cause = _r$15; - /* } */ case 43: - /* } */ case 40: - /* */ if (switchCase) { $s = 47; continue; } - /* */ $s = 48; continue; - /* if (switchCase) { */ case 47: - $r = check.errorf(x, code, "invalid case %s in switch on %s (%s)", new sliceType$6([x.expr, y.expr, new $String(cause)])); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 49; continue; - /* } else { */ case 48: - $r = check.errorf(errOp, code, "invalid operation: %s %s %s (%s)", new sliceType$6([x.expr, new token.Token(op$1), y.expr, new $String(cause)])); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 49: - x.mode = 0; - $s = -1; return; - /* */ } return; } var $f = {$blk: comparison, $c: true, $r, _1, _arg, _arg$1, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, cause, check, code, errOp, ok, op$1, switchCase, typ$4, x, y, $s};return $f; - }; - $ptrType(Checker).prototype.incomparableCause = function incomparableCause(typ$4) { - var {$24r, _r$1, _r$2, _r$3, _ref, cause, check, typ$4, $s, $r, $c} = $restore(this, {typ$4}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - cause = [cause]; - check = [check]; - check[0] = this; - _r$1 = under(typ$4); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _ref = _r$1; - /* */ if ($assertType(_ref, ptrType$25, true)[1] || $assertType(_ref, ptrType$27, true)[1] || $assertType(_ref, ptrType$28, true)[1]) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if ($assertType(_ref, ptrType$25, true)[1] || $assertType(_ref, ptrType$27, true)[1] || $assertType(_ref, ptrType$28, true)[1]) { */ case 2: - _r$2 = check[0].kindString(typ$4); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2 + " can only be compared to nil"; - $s = 5; case 5: return $24r; - /* } */ case 3: - cause[0] = ""; - _r$3 = comparable(typ$4, true, false, (function(cause, check) { return function Checker·incomparableCause·func1(format, args) { - var {_r$3, args, format, $s, $r, $c} = $restore(this, {format, args}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$3 = check[0].sprintf(format, args); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - cause[0] = _r$3; - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·incomparableCause·func1, $c: true, $r, _r$3, args, format, $s};return $f; - }; })(cause, check)); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$3; - $s = -1; return cause[0]; - /* */ } return; } var $f = {$blk: incomparableCause, $c: true, $r, $24r, _r$1, _r$2, _r$3, _ref, cause, check, typ$4, $s};return $f; - }; - $ptrType(Checker).prototype.kindString = function kindString(typ$4) { - var {$24r, $24r$1, _r$1, _r$2, _r$3, _ref, check, typ$4, $s, $r, $c} = $restore(this, {typ$4}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = under(typ$4); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _ref = _r$1; - /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref, ptrType$29, true)[1]) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if ($assertType(_ref, ptrType$10, true)[1]) { */ case 2: - $s = -1; return "array"; - /* } else if ($assertType(_ref, ptrType$25, true)[1]) { */ case 3: - $s = -1; return "slice"; - /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 4: - $s = -1; return "struct"; - /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 5: - $s = -1; return "pointer"; - /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 6: - $s = -1; return "func"; - /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 7: - /* */ if (isTypeParam(typ$4)) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (isTypeParam(typ$4)) { */ case 12: - _r$2 = check.sprintf("type parameter %s", new sliceType$6([typ$4])); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 15; case 15: return $24r; + _r$1 = p.collapse($subslice(sub, start, i$1), 19); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + suffix$1 = _r$1; + re$1 = p.newRegexp(18); + re$1.Sub = $append($subslice(re$1.Sub, 0, 0), prefix$1, suffix$1); + out = $append(out, re$1); /* } */ case 13: - $s = -1; return "interface"; - /* } else if ($assertType(_ref, ptrType$28, true)[1]) { */ case 8: - $s = -1; return "map"; - /* } else if ($assertType(_ref, ptrType$29, true)[1]) { */ case 9: - $s = -1; return "chan"; - /* } else { */ case 10: - _r$3 = check.sprintf("%s", new sliceType$6([typ$4])); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r$1 = _r$3; - $s = 17; case 17: return $24r$1; - /* } */ case 11: - $s = -1; return ""; - /* */ } return; } var $f = {$blk: kindString, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _r$3, _ref, check, typ$4, $s};return $f; - }; - $ptrType(Checker).prototype.shift = function shift(x, y, e, op$1) { - var {_entry, _key, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _v, _v$1, _v$2, _v$3, b, check, e, found, info, ok, op$1, opPos, s, x, xval, y, yval, $s, $r, $c} = $restore(this, {x, y, e, op$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - xval = $ifaceNil; - /* */ if (x.mode === 4) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (x.mode === 4) { */ case 1: - _r$1 = constant.ToInt(x.val); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - xval = _r$1; - /* } */ case 2: - _r$2 = allInteger(x.typ); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - if (_r$2) { _v = true; $s = 7; continue s; } - if (!(isUntyped(x.typ) && !($interfaceIsEqual(xval, $ifaceNil)))) { _v$1 = false; $s = 9; continue s; } - _r$3 = xval.Kind(); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _v$1 = _r$3 === 3; case 9: - _v = _v$1; case 7: - /* */ if (_v) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_v) { */ case 4: - $s = 6; continue; - /* } else { */ case 5: - $r = check.errorf(x, 57, "invalid operation: shifted operand %s must be integer", new sliceType$6([x])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - $s = -1; return; - /* } */ case 6: - yval = $ifaceNil; - /* */ if (y.mode === 4) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (y.mode === 4) { */ case 12: - _r$4 = constant.ToInt(y.val); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - yval = _r$4; - _r$5 = yval.Kind(); /* */ $s = 19; case 19: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - if (!(_r$5 === 3)) { _v$2 = false; $s = 18; continue s; } - _r$6 = constant.Sign(yval); /* */ $s = 20; case 20: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _v$2 = _r$6 < 0; case 18: - /* */ if (_v$2) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (_v$2) { */ case 16: - $r = check.errorf(y, 56, "invalid operation: negative shift count %s", new sliceType$6([y])); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - $s = -1; return; - /* } */ case 17: - /* */ if (isUntyped(y.typ)) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if (isUntyped(y.typ)) { */ case 22: - $r = check.representable(y, (7 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 7])); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (y.mode === 0) { - x.mode = 0; - $s = -1; return; - } - /* } */ case 23: - $s = 14; continue; - /* } else { */ case 13: - _r$7 = allInteger(y.typ); /* */ $s = 30; case 30: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - /* */ if (_r$7) { $s = 26; continue; } - /* */ if (isUntyped(y.typ)) { $s = 27; continue; } - /* */ $s = 28; continue; - /* if (_r$7) { */ case 26: - _r$8 = allUnsigned(y.typ); /* */ $s = 33; case 33: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - /* */ if (!_r$8 && !check.allowVersion(check.pkg, 1, 13)) { $s = 31; continue; } - /* */ $s = 32; continue; - /* if (!_r$8 && !check.allowVersion(check.pkg, 1, 13)) { */ case 31: - $r = check.errorf(y, 135, "invalid operation: signed shift count %s requires go1.13 or later", new sliceType$6([y])); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - $s = -1; return; - /* } */ case 32: - $s = 29; continue; - /* } else if (isUntyped(y.typ)) { */ case 27: - $r = check.convertUntyped(y, (7 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 7])); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (y.mode === 0) { - x.mode = 0; - $s = -1; return; + start = i$1; + first = ifirst; + i$1 = i$1 + (1) >> 0; + $s = 8; continue; + case 9: + sub = out; + start = 0; + out = $subslice(sub, 0, 0); + i$2 = 0; + /* while (true) { */ case 15: + /* if (!(i$2 <= sub.$length)) { break; } */ if(!(i$2 <= sub.$length)) { $s = 16; continue; } + if (i$2 < sub.$length && isCharClass(((i$2 < 0 || i$2 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i$2]))) { + i$2 = i$2 + (1) >> 0; + /* continue; */ $s = 15; continue; + } + /* */ if (i$2 === start) { $s = 17; continue; } + /* */ if (i$2 === (start + 1 >> 0)) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (i$2 === start) { */ case 17: + $s = 20; continue; + /* } else if (i$2 === (start + 1 >> 0)) { */ case 18: + out = $append(out, ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start])); + $s = 20; continue; + /* } else { */ case 19: + max = start; + j$2 = start + 1 >> 0; + while (true) { + if (!(j$2 < i$2)) { break; } + if (((max < 0 || max >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + max]).Op < ((j$2 < 0 || j$2 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$2]).Op || (((max < 0 || max >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + max]).Op === ((j$2 < 0 || j$2 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$2]).Op) && ((max < 0 || max >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + max]).Rune.$length < ((j$2 < 0 || j$2 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$2]).Rune.$length) { + max = j$2; } - $s = 29; continue; - /* } else { */ case 28: - $r = check.errorf(y, 56, "invalid operation: shift count %s must be integer", new sliceType$6([y])); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - $s = -1; return; - /* } */ case 29: - case 25: - /* } */ case 14: - /* */ if (x.mode === 4) { $s = 37; continue; } - /* */ $s = 38; continue; - /* if (x.mode === 4) { */ case 37: - /* */ if (y.mode === 4) { $s = 39; continue; } - /* */ $s = 40; continue; - /* if (y.mode === 4) { */ case 39: - _r$9 = x.val.Kind(); /* */ $s = 44; case 44: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - if (_r$9 === 0) { _v$3 = true; $s = 43; continue s; } - _r$10 = y.val.Kind(); /* */ $s = 45; case 45: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _v$3 = _r$10 === 0; case 43: - /* */ if (_v$3) { $s = 41; continue; } - /* */ $s = 42; continue; - /* if (_v$3) { */ case 41: - x.val = constant.MakeUnknown(); - _r$11 = isInteger(x.typ); /* */ $s = 48; case 48: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - /* */ if (!_r$11) { $s = 46; continue; } - /* */ $s = 47; continue; - /* if (!_r$11) { */ case 46: - x.typ = (20 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 20]); - /* } */ case 47: - $s = -1; return; - /* } */ case 42: - _r$12 = constant.Uint64Val(yval); /* */ $s = 49; case 49: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _tuple = _r$12; - s = _tuple[0]; - ok = _tuple[1]; - /* */ if (!ok || (s.$high > 0 || (s.$high === 0 && s.$low > 1074))) { $s = 50; continue; } - /* */ $s = 51; continue; - /* if (!ok || (s.$high > 0 || (s.$high === 0 && s.$low > 1074))) { */ case 50: - $r = check.errorf(y, 56, "invalid operation: invalid shift count %s", new sliceType$6([y])); /* */ $s = 52; case 52: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - $s = -1; return; - /* } */ case 51: - _r$13 = isInteger(x.typ); /* */ $s = 55; case 55: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - /* */ if (!_r$13) { $s = 53; continue; } - /* */ $s = 54; continue; - /* if (!_r$13) { */ case 53: - x.typ = (20 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 20]); - /* } */ case 54: - _r$14 = constant.Shift(xval, op$1, ((s.$low >>> 0))); /* */ $s = 56; case 56: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - x.val = _r$14; - x.expr = e; - _r$15 = x.Pos(); /* */ $s = 57; case 57: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - opPos = _r$15; - _tuple$1 = $assertType(e, ptrType$21, true); - b = _tuple$1[0]; - if (!(b === ptrType$21.nil)) { - opPos = b.OpPos; + j$2 = j$2 + (1) >> 0; } - $r = check.overflow(x, opPos); /* */ $s = 58; case 58: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 40: - if (isUntyped(x.typ)) { - _tuple$2 = (_entry = $mapIndex(check.untyped,ast.Expr.keyFor(x.expr)), _entry !== undefined ? [_entry.v, true] : [new exprInfo.ptr(false, 0, ptrType$8.nil, $ifaceNil), false]); - info = $clone(_tuple$2[0], exprInfo); - found = _tuple$2[1]; - if (found) { - info.isLhs = true; - _key = x.expr; (check.untyped || $throwRuntimeError("assignment to entry in nil map")).set(ast.Expr.keyFor(_key), { k: _key, v: $clone(info, exprInfo) }); + _tmp = ((max < 0 || max >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + max]); + _tmp$1 = ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start]); + ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start] = _tmp); + ((max < 0 || max >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + max] = _tmp$1); + j$3 = start + 1 >> 0; + while (true) { + if (!(j$3 < i$2)) { break; } + mergeCharClass(((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start]), ((j$3 < 0 || j$3 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$3])); + p.reuse(((j$3 < 0 || j$3 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$3])); + j$3 = j$3 + (1) >> 0; } - x.mode = 7; - $s = -1; return; + $r = cleanAlt(((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start])); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + out = $append(out, ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start])); + /* } */ case 20: + if (i$2 < sub.$length) { + out = $append(out, ((i$2 < 0 || i$2 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i$2])); } - /* } */ case 38: - _r$16 = allInteger(x.typ); /* */ $s = 61; case 61: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - /* */ if (!_r$16) { $s = 59; continue; } - /* */ $s = 60; continue; - /* if (!_r$16) { */ case 59: - $r = check.errorf(x, 57, "invalid operation: shifted operand %s must be integer", new sliceType$6([x])); /* */ $s = 62; case 62: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - $s = -1; return; - /* } */ case 60: - x.mode = 7; - $s = -1; return; - /* */ } return; } var $f = {$blk: shift, $c: true, $r, _entry, _key, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _v, _v$1, _v$2, _v$3, b, check, e, found, info, ok, op$1, opPos, s, x, xval, y, yval, $s};return $f; - }; - init$2 = function init$6() { - binaryOpPredicates = $makeMap(token.Token.keyFor, [{ k: 12, v: allNumericOrString }, { k: 13, v: allNumeric }, { k: 14, v: allNumeric }, { k: 15, v: allNumeric }, { k: 16, v: allInteger }, { k: 17, v: allInteger }, { k: 18, v: allInteger }, { k: 19, v: allInteger }, { k: 22, v: allInteger }, { k: 34, v: allBoolean }, { k: 35, v: allBoolean }]); + start = i$2 + 1 >> 0; + i$2 = i$2 + (1) >> 0; + $s = 15; continue; + case 16: + sub = out; + start = 0; + out = $subslice(sub, 0, 0); + _ref = sub; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i$3 = _i; + if ((i$3 + 1 >> 0) < sub.$length && (((i$3 < 0 || i$3 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i$3]).Op === 2) && ((x$1 = i$3 + 1 >> 0, ((x$1 < 0 || x$1 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + x$1])).Op === 2)) { + _i++; + continue; + } + out = $append(out, ((i$3 < 0 || i$3 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i$3])); + _i++; + } + sub = out; + $s = -1; return sub; + /* */ } return; } var $f = {$blk: factor, $c: true, $r, _i, _r, _r$1, _ref, _tmp, _tmp$1, _tuple, first, i, i$1, i$2, i$3, ifirst, iflags, istr, j, j$1, j$2, j$3, max, out, p, prefix, prefix$1, re, re$1, reuse$1, same, start, str, strflags, sub, suffix, suffix$1, x, x$1, $s};return $f; }; - $ptrType(Checker).prototype.binary = function binary(x, e, lhs, rhs, op$1, opPos) { - var {_r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$2, _tmp$3, _v, _v$1, _v$2, _v$3, _v$4, _v$5, check, e, im, im2, lhs, mayConvert, op$1, opPos, posn, re, re2, rhs, x, y, $s, $r, $c} = $restore(this, {x, e, lhs, rhs, op$1, opPos}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - y = [y]; - check = this; - y[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = check.expr(x, lhs); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.expr(y[0], rhs); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x.mode === 0) { - $s = -1; return; + $ptrType(parser).prototype.leadingString = function leadingString(re) { + var p, re, x; + p = this; + if ((re.Op === 18) && re.Sub.$length > 0) { + re = (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); } - if (y[0].mode === 0) { - x.mode = 0; - x.expr = y[0].expr; - $s = -1; return; + if (!((re.Op === 3))) { + return [sliceType$1.nil, 0]; } - /* */ if (isShift(op$1)) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (isShift(op$1)) { */ case 3: - $r = check.shift(x, y[0], e, op$1); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 4: - mayConvert = (function(y) { return function Checker·binary·func1(x$1, y$1) { - var {$24r, $24r$1, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _v, _v$1, x$1, y$1, $s, $r, $c} = $restore(this, {x$1, y$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (isTyped(x$1.typ) && isTyped(y$1.typ)) { - $s = -1; return false; + return [re.Rune, (re.Flags & 1) >>> 0]; + }; + $ptrType(parser).prototype.removeLeadingString = function removeLeadingString(re, n) { + var _1, n, old, p, re, sub, x, x$1, x$2; + p = this; + if ((re.Op === 18) && re.Sub.$length > 0) { + sub = (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); + sub = p.removeLeadingString(sub, n); + (x$1 = re.Sub, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0] = sub)); + if (sub.Op === 2) { + p.reuse(sub); + _1 = re.Sub.$length; + if ((_1 === (0)) || (_1 === (1))) { + re.Op = 2; + re.Sub = sliceType$4.nil; + } else if (_1 === (2)) { + old = re; + re = (x$2 = re.Sub, (1 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 1])); + p.reuse(old); + } else { + $copySlice(re.Sub, $subslice(re.Sub, 1)); + re.Sub = $subslice(re.Sub, 0, (re.Sub.$length - 1 >> 0)); } - _r$1 = isNonTypeParamInterface(x$1.typ); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - if (_r$1) { _v = true; $s = 3; continue s; } - _r$2 = isNonTypeParamInterface(y$1.typ); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _v = _r$2; case 3: - /* */ if (_v) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (_v) { */ case 1: - $s = -1; return true; - /* } */ case 2: - _r$3 = allBoolean(x$1.typ); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$4 = allBoolean(y$1.typ); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if (!(_r$3 === _r$4)) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (!(_r$3 === _r$4)) { */ case 6: - $s = -1; return false; - /* } */ case 7: - _r$5 = allString(x$1.typ); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$6 = allString(y$1.typ); /* */ $s = 13; case 13: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - /* */ if (!(_r$5 === _r$6)) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (!(_r$5 === _r$6)) { */ case 10: - $s = -1; return false; - /* } */ case 11: - /* */ if (x$1.isNil()) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (x$1.isNil()) { */ case 14: - _r$7 = hasNil(y$1.typ); /* */ $s = 16; case 16: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - $24r = _r$7; - $s = 17; case 17: return $24r; - /* } */ case 15: - /* */ if (y$1.isNil()) { $s = 18; continue; } - /* */ $s = 19; continue; - /* if (y$1.isNil()) { */ case 18: - _r$8 = hasNil(x$1.typ); /* */ $s = 20; case 20: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - $24r$1 = _r$8; - $s = 21; case 21: return $24r$1; - /* } */ case 19: - _r$9 = isPointer(x$1.typ); /* */ $s = 25; case 25: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - if (_r$9) { _v$1 = true; $s = 24; continue s; } - _r$10 = isPointer(y$1.typ); /* */ $s = 26; case 26: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _v$1 = _r$10; case 24: - /* */ if (_v$1) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if (_v$1) { */ case 22: - $s = -1; return false; - /* } */ case 23: - $s = -1; return true; - /* */ } return; } var $f = {$blk: Checker·binary·func1, $c: true, $r, $24r, $24r$1, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _v, _v$1, x$1, y$1, $s};return $f; - }; })(y); - _r$1 = mayConvert(x, y[0]); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (_r$1) { */ case 6: - $r = check.convertUntyped(x, y[0].typ); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x.mode === 0) { - $s = -1; return; } - $r = check.convertUntyped(y[0], x.typ); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (y[0].mode === 0) { - x.mode = 0; - $s = -1; return; + return re; + } + if (re.Op === 3) { + re.Rune = $subslice(re.Rune, 0, $copySlice(re.Rune, $subslice(re.Rune, n))); + if (re.Rune.$length === 0) { + re.Op = 2; } - /* } */ case 7: - /* */ if (isComparison(op$1)) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (isComparison(op$1)) { */ case 11: - $r = check.comparison(x, y[0], op$1, false); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 12: - _r$2 = Identical(x.typ, y[0].typ); /* */ $s = 16; case 16: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (!_r$2) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (!_r$2) { */ case 14: - /* */ if (!($interfaceIsEqual(x.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) && !($interfaceIsEqual(y[0].typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (!($interfaceIsEqual(x.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) && !($interfaceIsEqual(y[0].typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { */ case 17: - posn = x; - if (!($interfaceIsEqual(e, $ifaceNil))) { - posn = e; - } - /* */ if (!($interfaceIsEqual(e, $ifaceNil))) { $s = 19; continue; } - /* */ $s = 20; continue; - /* if (!($interfaceIsEqual(e, $ifaceNil))) { */ case 19: - $r = check.errorf(posn, 46, "invalid operation: %s (mismatched types %s and %s)", new sliceType$6([e, x.typ, y[0].typ])); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 21; continue; - /* } else { */ case 20: - $r = check.errorf(posn, 46, "invalid operation: %s %s= %s (mismatched types %s and %s)", new sliceType$6([lhs, new token.Token(op$1), rhs, x.typ, y[0].typ])); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 21: - /* } */ case 18: - x.mode = 0; - $s = -1; return; - /* } */ case 15: - _r$3 = check.op(binaryOpPredicates, x, op$1); /* */ $s = 26; case 26: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (!_r$3) { $s = 24; continue; } - /* */ $s = 25; continue; - /* if (!_r$3) { */ case 24: - x.mode = 0; - $s = -1; return; - /* } */ case 25: - /* */ if ((op$1 === 15) || (op$1 === 16)) { $s = 27; continue; } - /* */ $s = 28; continue; - /* if ((op$1 === 15) || (op$1 === 16)) { */ case 27: - if (x.mode === 4) { _v$1 = true; $s = 32; continue s; } - _r$4 = allInteger(x.typ); /* */ $s = 33; case 33: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _v$1 = _r$4; case 32: - if (!((_v$1) && (y[0].mode === 4))) { _v = false; $s = 31; continue s; } - _r$5 = constant.Sign(y[0].val); /* */ $s = 34; case 34: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _v = _r$5 === 0; case 31: - /* */ if (_v) { $s = 29; continue; } - /* */ $s = 30; continue; - /* if (_v) { */ case 29: - $r = check.error(y[0], 47, "invalid operation: division by zero"); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - $s = -1; return; - /* } */ case 30: - if (!((x.mode === 4) && (y[0].mode === 4))) { _v$2 = false; $s = 38; continue s; } - _r$6 = isComplex(x.typ); /* */ $s = 39; case 39: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _v$2 = _r$6; case 38: - /* */ if (_v$2) { $s = 36; continue; } - /* */ $s = 37; continue; - /* if (_v$2) { */ case 36: - _r$7 = constant.Real(y[0].val); /* */ $s = 40; case 40: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _tmp = _r$7; - _r$8 = constant.Imag(y[0].val); /* */ $s = 41; case 41: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _tmp$1 = _r$8; - re = _tmp; - im = _tmp$1; - _r$9 = constant.BinaryOp(re, 14, re); /* */ $s = 42; case 42: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _tmp$2 = _r$9; - _r$10 = constant.BinaryOp(im, 14, im); /* */ $s = 43; case 43: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _tmp$3 = _r$10; - re2 = _tmp$2; - im2 = _tmp$3; - _r$11 = constant.Sign(re2); /* */ $s = 47; case 47: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - if (!(_r$11 === 0)) { _v$3 = false; $s = 46; continue s; } - _r$12 = constant.Sign(im2); /* */ $s = 48; case 48: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _v$3 = _r$12 === 0; case 46: - /* */ if (_v$3) { $s = 44; continue; } - /* */ $s = 45; continue; - /* if (_v$3) { */ case 44: - $r = check.error(y[0], 47, "invalid operation: division by zero"); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - $s = -1; return; - /* } */ case 45: - /* } */ case 37: - /* } */ case 28: - /* */ if ((x.mode === 4) && (y[0].mode === 4)) { $s = 50; continue; } - /* */ $s = 51; continue; - /* if ((x.mode === 4) && (y[0].mode === 4)) { */ case 50: - _r$13 = x.val.Kind(); /* */ $s = 55; case 55: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - if (_r$13 === 0) { _v$4 = true; $s = 54; continue s; } - _r$14 = y[0].val.Kind(); /* */ $s = 56; case 56: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - _v$4 = _r$14 === 0; case 54: - /* */ if (_v$4) { $s = 52; continue; } - /* */ $s = 53; continue; - /* if (_v$4) { */ case 52: - x.val = constant.MakeUnknown(); - $s = -1; return; - /* } */ case 53: - if (!(op$1 === 15)) { _v$5 = false; $s = 59; continue s; } - _r$15 = isInteger(x.typ); /* */ $s = 60; case 60: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - _v$5 = _r$15; case 59: - /* */ if (_v$5) { $s = 57; continue; } - /* */ $s = 58; continue; - /* if (_v$5) { */ case 57: - op$1 = 26; - /* } */ case 58: - _r$16 = constant.BinaryOp(x.val, op$1, y[0].val); /* */ $s = 61; case 61: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - x.val = _r$16; - x.expr = e; - $r = check.overflow(x, opPos); /* */ $s = 62; case 62: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 51: - x.mode = 7; - $s = -1; return; - /* */ } return; } var $f = {$blk: binary, $c: true, $r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$2, _tmp$3, _v, _v$1, _v$2, _v$3, _v$4, _v$5, check, e, im, im2, lhs, mayConvert, op$1, opPos, posn, re, re2, rhs, x, y, $s};return $f; + } + return re; }; - $ptrType(Checker).prototype.rawExpr = function rawExpr(x, e, hint, allowGeneric) { - var {$24r, _r$1, _r$2, allowGeneric, check, e, hint, kind, x, $s, $deferred, $r, $c} = $restore(this, {x, e, hint, allowGeneric}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - check = [check]; - e = [e]; - x = [x]; - check[0] = this; - /* */ if (false) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (false) { */ case 1: - _r$1 = e[0].Pos(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $r = check[0].trace(_r$1, "-- expr %s", new sliceType$6([e[0]])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - check[0].indent = check[0].indent + (1) >> 0; - $deferred.push([(function(check, e, x) { return function Checker·rawExpr·func1() { - var {_r$2, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check[0].indent = check[0].indent - (1) >> 0; - _r$2 = e[0].Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $r = check[0].trace(_r$2, "=> %s", new sliceType$6([x[0]])); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·rawExpr·func1, $c: true, $r, _r$2, $s};return $f; - }; })(check, e, x), []]); - /* } */ case 2: - _r$2 = check[0].exprInternal(x[0], e[0], hint); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - kind = _r$2; - /* */ if (!allowGeneric) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (!allowGeneric) { */ case 6: - $r = check[0].nonGeneric(x[0]); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 7: - $r = check[0].record(x[0]); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $24r = kind; - $s = 10; case 10: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return 0; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: rawExpr, $c: true, $r, $24r, _r$1, _r$2, allowGeneric, check, e, hint, kind, x, $s, $deferred};return $f; } } + $ptrType(parser).prototype.leadingRegexp = function leadingRegexp(re) { + var p, re, sub, x; + p = this; + if (re.Op === 2) { + return ptrType.nil; + } + if ((re.Op === 18) && re.Sub.$length > 0) { + sub = (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); + if (sub.Op === 2) { + return ptrType.nil; + } + return sub; + } + return re; }; - $ptrType(Checker).prototype.nonGeneric = function nonGeneric(x) { - var {_r$1, _ref, check, t, t$1, what, x, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - if ((x.mode === 0) || (x.mode === 1)) { - $s = -1; return; + $ptrType(parser).prototype.removeLeadingRegexp = function removeLeadingRegexp(re, reuse$1) { + var _1, old, p, re, reuse$1, x, x$1; + p = this; + if ((re.Op === 18) && re.Sub.$length > 0) { + if (reuse$1) { + p.reuse((x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))); + } + re.Sub = $subslice(re.Sub, 0, $copySlice(re.Sub, $subslice(re.Sub, 1))); + _1 = re.Sub.$length; + if (_1 === (0)) { + re.Op = 2; + re.Sub = sliceType$4.nil; + } else if (_1 === (1)) { + old = re; + re = (x$1 = re.Sub, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])); + p.reuse(old); + } + return re; } - what = ""; - _ref = x.typ; - /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if ($assertType(_ref, ptrType$9, true)[1]) { */ case 1: - t = _ref.$val; - _r$1 = isGeneric(t); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_r$1) { */ case 4: - what = "type"; - /* } */ case 5: - $s = 3; continue; - /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 2: - t$1 = _ref.$val; - if (!(t$1.tparams === ptrType$48.nil)) { - what = "function"; + if (reuse$1) { + p.reuse(re); + } + return p.newRegexp(2); + }; + literalRegexp = function literalRegexp$1(s, flags) { + var _i, _ref, _rune, c, flags, re, s; + re = new Regexp.ptr(3, 0, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, ""); + re.Flags = flags; + re.Rune = $subslice(new sliceType$1(re.Rune0), 0, 0); + _ref = s; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + c = _rune[0]; + if (re.Rune.$length >= re.Rune.$capacity) { + re.Rune = (new sliceType$1($stringToRunes(s))); + break; } - /* } */ case 3: - /* */ if (!(what === "")) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (!(what === "")) { */ case 7: - $r = check.errorf(x.expr, 137, "cannot use generic %s %s without instantiation", new sliceType$6([new $String(what), x.expr])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - x.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - /* } */ case 8: - $s = -1; return; - /* */ } return; } var $f = {$blk: nonGeneric, $c: true, $r, _r$1, _ref, check, t, t$1, what, x, $s};return $f; + re.Rune = $append(re.Rune, c); + _i += _rune[1]; + } + return re; }; - $ptrType(Checker).prototype.exprInternal = function exprInternal(x, e, hint) { - var {$24r, T, _1, _2, _arg, _arg$1, _entry, _entry$1, _entry$2, _i, _i$1, _i$2, _i$3, _i$4, _key, _key$1, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, atyp, base, base$1, check, decl$1, duplicate, e, e$1, e$10, e$11, e$12, e$13, e$14, e$15, e$16, e$17, e$18, e$19, e$2, e$20, e$21, e$22, e$3, e$4, e$5, e$6, e$7, e$8, e$9, ellip, etyp, etyp$1, fields, fld, fld$1, hint, i, i$1, iota, ix, key, keyIsInterface, kind, kv, kv$1, kv$2, kv$3, n, ok, ok$1, ok$2, sig, typ$4, utyp, utyp$1, utyp$2, utyp$3, utyp$4, visited, visited$1, vtyp, x, x$1, x$2, x$3, x$4, x$5, xkey, $s, $r, $c} = $restore(this, {x, e, hint}); + Parse = function Parse$1(s, flags) { + var {$24r, _r, flags, s, $s, $r, $c} = $restore(this, {s, flags}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - base = [base]; - check = [check]; - decl$1 = [decl$1]; - e$1 = [e$1]; - iota = [iota]; - sig = [sig]; - x = [x]; - check[0] = this; - x[0].mode = 0; - x[0].typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - _ref = e; - /* */ if ($assertType(_ref, ptrType$35, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$30, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$41, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$57, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$98, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$99, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType$39, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref, ptrType$36, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref, ptrType$37, true)[1] || $assertType(_ref, ptrType$38, true)[1]) { $s = 9; continue; } - /* */ if ($assertType(_ref, ptrType$100, true)[1]) { $s = 10; continue; } - /* */ if ($assertType(_ref, ptrType$82, true)[1]) { $s = 11; continue; } - /* */ if ($assertType(_ref, ptrType$86, true)[1]) { $s = 12; continue; } - /* */ if ($assertType(_ref, ptrType$43, true)[1]) { $s = 13; continue; } - /* */ if ($assertType(_ref, ptrType$20, true)[1]) { $s = 14; continue; } - /* */ if ($assertType(_ref, ptrType$21, true)[1]) { $s = 15; continue; } - /* */ if ($assertType(_ref, ptrType$97, true)[1]) { $s = 16; continue; } - /* */ if ($assertType(_ref, ptrType$40, true)[1] || $assertType(_ref, ptrType$42, true)[1] || $assertType(_ref, ptrType$44, true)[1] || $assertType(_ref, ptrType$45, true)[1] || $assertType(_ref, ptrType$46, true)[1] || $assertType(_ref, ptrType$47, true)[1]) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if ($assertType(_ref, ptrType$35, true)[1]) { */ case 1: - e$2 = _ref.$val; - /* goto Error */ $s = 20; continue; - $s = 19; continue; - /* } else if ($assertType(_ref, ptrType$30, true)[1]) { */ case 2: - e$3 = _ref.$val; - $r = check[0].ident(x[0], e$3, ptrType$9.nil, false); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 19; continue; - /* } else if ($assertType(_ref, ptrType$41, true)[1]) { */ case 3: - e$4 = _ref.$val; - $r = check[0].error(e$4, 77, "invalid use of '...'"); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 20; continue; - $s = 19; continue; - /* } else if ($assertType(_ref, ptrType$57, true)[1]) { */ case 4: - e$5 = _ref.$val; - _1 = e$5.Kind; - /* */ if ((_1 === (5)) || (_1 === (6)) || (_1 === (7))) { $s = 24; continue; } - /* */ $s = 25; continue; - /* if ((_1 === (5)) || (_1 === (6)) || (_1 === (7))) { */ case 24: - $r = check[0].langCompat(e$5); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (e$5.Value.length > 10000) { $s = 27; continue; } - /* */ $s = 28; continue; - /* if (e$5.Value.length > 10000) { */ case 27: - $r = check[0].errorf(e$5, 14, "excessively long constant: %s... (%d chars)", new sliceType$6([new $String($substring(e$5.Value, 0, 10)), new $Int(e$5.Value.length)])); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 20; continue; - /* } */ case 28: - /* } */ case 25: - case 23: - $r = x[0].setConst(e$5.Kind, e$5.Value); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (x[0].mode === 0) { $s = 31; continue; } - /* */ $s = 32; continue; - /* if (x[0].mode === 0) { */ case 31: - $r = check[0].errorf(e$5, 14, "malformed constant: %s", new sliceType$6([new $String(e$5.Value)])); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 20; continue; - /* } */ case 32: - $r = check[0].overflow(x[0], e$5.Pos()); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 19; continue; - /* } else if ($assertType(_ref, ptrType$98, true)[1]) { */ case 5: - e$1[0] = _ref.$val; - _r$1 = check[0].typ(e$1[0].Type); /* */ $s = 35; case 35: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = $assertType(_r$1, ptrType$27, true); - sig[0] = _tuple[0]; - ok = _tuple[1]; - /* */ if (ok) { $s = 36; continue; } - /* */ $s = 37; continue; - /* if (ok) { */ case 36: - if (!check[0].conf.IgnoreFuncBodies && !(e$1[0].Body === ptrType$74.nil)) { - decl$1[0] = check[0].environment.decl; - iota[0] = check[0].environment.iota; - check[0].later((function(base, check, decl$1, e$1, iota, sig, x) { return function Checker·exprInternal·func1() { - var {$s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = check[0].funcBody(decl$1[0], "", sig[0], e$1[0].Body, iota[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·exprInternal·func1, $c: true, $r, $s};return $f; - }; })(base, check, decl$1, e$1, iota, sig, x)).describef(e$1[0], "func literal", sliceType$6.nil); - } - x[0].mode = 7; - x[0].typ = sig[0]; - $s = 38; continue; - /* } else { */ case 37: - $r = check[0].errorf(e$1[0], -1, "invalid function literal %s", new sliceType$6([e$1[0]])); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 20; continue; - /* } */ case 38: - $s = 19; continue; - /* } else if ($assertType(_ref, ptrType$99, true)[1]) { */ case 6: - e$6 = _ref.$val; - _tmp = $ifaceNil; - _tmp$1 = $ifaceNil; - typ$4 = _tmp; - base$1 = _tmp$1; - /* */ if (!($interfaceIsEqual(e$6.Type, $ifaceNil))) { $s = 41; continue; } - /* */ if (!($interfaceIsEqual(hint, $ifaceNil))) { $s = 42; continue; } - /* */ $s = 43; continue; - /* if (!($interfaceIsEqual(e$6.Type, $ifaceNil))) { */ case 41: - _tuple$1 = $assertType(e$6.Type, ptrType$40, true); - atyp = _tuple$1[0]; - /* */ if (!(atyp === ptrType$40.nil) && !($interfaceIsEqual(atyp.Len, $ifaceNil))) { $s = 45; continue; } - /* */ $s = 46; continue; - /* if (!(atyp === ptrType$40.nil) && !($interfaceIsEqual(atyp.Len, $ifaceNil))) { */ case 45: - _tuple$2 = $assertType(atyp.Len, ptrType$41, true); - ellip = _tuple$2[0]; - /* */ if (!(ellip === ptrType$41.nil) && $interfaceIsEqual(ellip.Elt, $ifaceNil)) { $s = 47; continue; } - /* */ $s = 48; continue; - /* if (!(ellip === ptrType$41.nil) && $interfaceIsEqual(ellip.Elt, $ifaceNil)) { */ case 47: - _r$2 = check[0].varType(atyp.Elt); /* */ $s = 49; case 49: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - typ$4 = new Array.ptr(new $Int64(-1, 4294967295), _r$2); - base$1 = typ$4; - /* break; */ $s = 40; continue; - /* } */ case 48: - /* } */ case 46: - _r$3 = check[0].typ(e$6.Type); /* */ $s = 50; case 50: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - typ$4 = _r$3; - base$1 = typ$4; - $s = 44; continue; - /* } else if (!($interfaceIsEqual(hint, $ifaceNil))) { */ case 42: - typ$4 = hint; - _r$4 = coreType(typ$4); /* */ $s = 51; case 51: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$5 = deref(_r$4); /* */ $s = 52; case 52: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _tuple$3 = _r$5; - base$1 = _tuple$3[0]; - /* */ if ($interfaceIsEqual(base$1, $ifaceNil)) { $s = 53; continue; } - /* */ $s = 54; continue; - /* if ($interfaceIsEqual(base$1, $ifaceNil)) { */ case 53: - $r = check[0].errorf(e$6, 71, "invalid composite literal element type %s (no core type)", new sliceType$6([typ$4])); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 20; continue; - /* } */ case 54: - $s = 44; continue; - /* } else { */ case 43: - $r = check[0].error(e$6, 70, "missing type in composite literal"); /* */ $s = 56; case 56: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 20; continue; - /* } */ case 44: - case 40: - _r$6 = coreType(base$1); /* */ $s = 57; case 57: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _ref$1 = _r$6; - /* */ if ($assertType(_ref$1, ptrType$11, true)[1]) { $s = 58; continue; } - /* */ if ($assertType(_ref$1, ptrType$10, true)[1]) { $s = 59; continue; } - /* */ if ($assertType(_ref$1, ptrType$25, true)[1]) { $s = 60; continue; } - /* */ if ($assertType(_ref$1, ptrType$28, true)[1]) { $s = 61; continue; } - /* */ $s = 62; continue; - /* switch (0) { default: if ($assertType(_ref$1, ptrType$11, true)[1]) { */ case 58: - utyp = _ref$1.$val; - /* */ if (utyp.fields === sliceType$10.nil) { $s = 64; continue; } - /* */ $s = 65; continue; - /* if (utyp.fields === sliceType$10.nil) { */ case 64: - $r = check[0].error(e$6, 12, "invalid recursive type"); /* */ $s = 66; case 66: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 20; continue; - /* } */ case 65: - if (e$6.Elts.$length === 0) { - /* break; */ $s = 63; continue; + _r = parse(s, flags); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Parse$1, $c: true, $r, $24r, _r, flags, s, $s};return $f; + }; + $pkg.Parse = Parse; + parse = function parse$1(s, flags) { + var {_$1, _2, _3, _4, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _struct, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$10, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, after, after$1, before, before$1, c, c$1, err, err$1, err$2, err$3, flags, lastRepeat, lit, max, min, n, ok, op$2, p, r, r$1, re, repeat$1, rest, rest$1, rest$2, s, t, x, $s, $deferred, $r, $c} = $restore(this, {s, flags}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + err = [err]; + s = [s]; + _$1 = ptrType.nil; + err[0] = $ifaceNil; + $deferred.push([(function(err, s) { return function parse·func1() { + var _1, r; + r = $recover(); + _1 = r; + if ($interfaceIsEqual(_1, $ifaceNil)) { + } else if ($interfaceIsEqual(_1, new ErrorCode(("expression too large")))) { + err[0] = new Error.ptr("expression too large", s[0]); + } else if ($interfaceIsEqual(_1, new ErrorCode(("expression nests too deeply")))) { + err[0] = new Error.ptr("expression nests too deeply", s[0]); + } else { + $panic(r); } - fields = utyp.fields; - _tuple$4 = $assertType((x$1 = e$6.Elts, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])), ptrType$97, true); - ok$1 = _tuple$4[1]; - /* */ if (ok$1) { $s = 67; continue; } - /* */ $s = 68; continue; - /* if (ok$1) { */ case 67: - visited = $makeSlice(sliceType$15, fields.$length); - _ref$2 = e$6.Elts; - _i = 0; - /* while (true) { */ case 70: - /* if (!(_i < _ref$2.$length)) { break; } */ if(!(_i < _ref$2.$length)) { $s = 71; continue; } - e$19 = ((_i < 0 || _i >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i]); - _tuple$5 = $assertType(e$19, ptrType$97, true); - kv = _tuple$5[0]; - /* */ if (kv === ptrType$97.nil) { $s = 72; continue; } - /* */ $s = 73; continue; - /* if (kv === ptrType$97.nil) { */ case 72: - $r = check[0].error(e$19, 64, "mixture of field:value and value elements in struct literal"); /* */ $s = 74; case 74: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - /* continue; */ $s = 70; continue; - /* } */ case 73: - _tuple$6 = $assertType(kv.Key, ptrType$30, true); - key = _tuple$6[0]; - $r = check[0].expr(x[0], kv.Value); /* */ $s = 75; case 75: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (key === ptrType$30.nil) { $s = 76; continue; } - /* */ $s = 77; continue; - /* if (key === ptrType$30.nil) { */ case 76: - $r = check[0].errorf(kv, 69, "invalid field name %s in struct literal", new sliceType$6([kv.Key])); /* */ $s = 78; case 78: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - /* continue; */ $s = 70; continue; - /* } */ case 77: - i = fieldIndex(utyp.fields, check[0].pkg, key.Name); - /* */ if (i < 0) { $s = 79; continue; } - /* */ $s = 80; continue; - /* if (i < 0) { */ case 79: - $r = check[0].errorf(kv, 66, "unknown field %s in struct literal of type %s", new sliceType$6([new $String(key.Name), base$1])); /* */ $s = 81; case 81: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - /* continue; */ $s = 70; continue; - /* } */ case 80: - fld = ((i < 0 || i >= fields.$length) ? ($throwRuntimeError("index out of range"), undefined) : fields.$array[fields.$offset + i]); - $r = check[0].recordUse(key, fld); /* */ $s = 82; case 82: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - etyp = fld.object.typ; - $r = check[0].assignment(x[0], etyp, "struct literal"); /* */ $s = 83; case 83: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (((i < 0 || i >= visited.$length) ? ($throwRuntimeError("index out of range"), undefined) : visited.$array[visited.$offset + i])) { $s = 84; continue; } - /* */ $s = 85; continue; - /* if (((i < 0 || i >= visited.$length) ? ($throwRuntimeError("index out of range"), undefined) : visited.$array[visited.$offset + i])) { */ case 84: - $r = check[0].errorf(kv, 67, "duplicate field name %s in struct literal", new sliceType$6([new $String(key.Name)])); /* */ $s = 86; case 86: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - /* continue; */ $s = 70; continue; - /* } */ case 85: - ((i < 0 || i >= visited.$length) ? ($throwRuntimeError("index out of range"), undefined) : visited.$array[visited.$offset + i] = true); - _i++; - $s = 70; continue; - case 71: - $s = 69; continue; - /* } else { */ case 68: - _ref$3 = e$6.Elts; - _i$1 = 0; - /* while (true) { */ case 87: - /* if (!(_i$1 < _ref$3.$length)) { break; } */ if(!(_i$1 < _ref$3.$length)) { $s = 88; continue; } - i$1 = _i$1; - e$20 = ((_i$1 < 0 || _i$1 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$1]); - _tuple$7 = $assertType(e$20, ptrType$97, true); - kv$1 = _tuple$7[0]; - /* */ if (!(kv$1 === ptrType$97.nil)) { $s = 89; continue; } - /* */ $s = 90; continue; - /* if (!(kv$1 === ptrType$97.nil)) { */ case 89: - $r = check[0].error(kv$1, 64, "mixture of field:value and value elements in struct literal"); /* */ $s = 91; case 91: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$1++; - /* continue; */ $s = 87; continue; - /* } */ case 90: - $r = check[0].expr(x[0], e$20); /* */ $s = 92; case 92: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (i$1 >= fields.$length) { $s = 93; continue; } - /* */ $s = 94; continue; - /* if (i$1 >= fields.$length) { */ case 93: - $r = check[0].errorf(x[0], 65, "too many values in struct literal of type %s", new sliceType$6([base$1])); /* */ $s = 95; case 95: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* break; */ $s = 88; continue; - /* } */ case 94: - fld$1 = ((i$1 < 0 || i$1 >= fields.$length) ? ($throwRuntimeError("index out of range"), undefined) : fields.$array[fields.$offset + i$1]); - /* */ if (!fld$1.object.Exported() && !(fld$1.object.pkg === check[0].pkg)) { $s = 96; continue; } - /* */ $s = 97; continue; - /* if (!fld$1.object.Exported() && !(fld$1.object.pkg === check[0].pkg)) { */ case 96: - $r = check[0].errorf(x[0], 68, "implicit assignment to unexported field %s in struct literal of type %s", new sliceType$6([new $String(fld$1.object.name), base$1])); /* */ $s = 98; case 98: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$1++; - /* continue; */ $s = 87; continue; - /* } */ case 97: - etyp$1 = fld$1.object.typ; - $r = check[0].assignment(x[0], etyp$1, "struct literal"); /* */ $s = 99; case 99: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$1++; - $s = 87; continue; - case 88: - /* */ if (e$6.Elts.$length < fields.$length) { $s = 100; continue; } - /* */ $s = 101; continue; - /* if (e$6.Elts.$length < fields.$length) { */ case 100: - _r$7 = inNode(e$6, e$6.Rbrace); /* */ $s = 102; case 102: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - $r = check[0].errorf((x$2 = _r$7, new x$2.constructor.elem(x$2)), 65, "too few values in struct literal of type %s", new sliceType$6([base$1])); /* */ $s = 103; case 103: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 101: - /* } */ case 69: - $s = 63; continue; - /* } else if ($assertType(_ref$1, ptrType$10, true)[1]) { */ case 59: - utyp$1 = _ref$1.$val; - /* */ if ($interfaceIsEqual(utyp$1.elem, $ifaceNil)) { $s = 104; continue; } - /* */ $s = 105; continue; - /* if ($interfaceIsEqual(utyp$1.elem, $ifaceNil)) { */ case 104: - $r = check[0].error(e$6, 12, "invalid recursive type"); /* */ $s = 106; case 106: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 20; continue; - /* } */ case 105: - _r$8 = check[0].indexedElts(e$6.Elts, utyp$1.elem, utyp$1.len); /* */ $s = 107; case 107: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - n = _r$8; - /* */ if ((x$3 = utyp$1.len, (x$3.$high < 0 || (x$3.$high === 0 && x$3.$low < 0)))) { $s = 108; continue; } - /* */ $s = 109; continue; - /* if ((x$3 = utyp$1.len, (x$3.$high < 0 || (x$3.$high === 0 && x$3.$low < 0)))) { */ case 108: - utyp$1.len = n; - /* */ if (!($interfaceIsEqual(e$6.Type, $ifaceNil))) { $s = 110; continue; } - /* */ $s = 111; continue; - /* if (!($interfaceIsEqual(e$6.Type, $ifaceNil))) { */ case 110: - $r = check[0].recordTypeAndValue(e$6.Type, 3, utyp$1, $ifaceNil); /* */ $s = 112; case 112: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 111: - /* } */ case 109: - $s = 63; continue; - /* } else if ($assertType(_ref$1, ptrType$25, true)[1]) { */ case 60: - utyp$2 = _ref$1.$val; - /* */ if ($interfaceIsEqual(utyp$2.elem, $ifaceNil)) { $s = 113; continue; } - /* */ $s = 114; continue; - /* if ($interfaceIsEqual(utyp$2.elem, $ifaceNil)) { */ case 113: - $r = check[0].error(e$6, 12, "invalid recursive type"); /* */ $s = 115; case 115: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 20; continue; - /* } */ case 114: - _r$9 = check[0].indexedElts(e$6.Elts, utyp$2.elem, new $Int64(-1, 4294967295)); /* */ $s = 116; case 116: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _r$9; - $s = 63; continue; - /* } else if ($assertType(_ref$1, ptrType$28, true)[1]) { */ case 61: - utyp$3 = _ref$1.$val; - /* */ if ($interfaceIsEqual(utyp$3.key, $ifaceNil) || $interfaceIsEqual(utyp$3.elem, $ifaceNil)) { $s = 117; continue; } - /* */ $s = 118; continue; - /* if ($interfaceIsEqual(utyp$3.key, $ifaceNil) || $interfaceIsEqual(utyp$3.elem, $ifaceNil)) { */ case 117: - $r = check[0].error(e$6, 12, "invalid recursive type"); /* */ $s = 119; case 119: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 20; continue; - /* } */ case 118: - _r$10 = isNonTypeParamInterface(utyp$3.key); /* */ $s = 120; case 120: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - keyIsInterface = _r$10; - visited$1 = (x$4 = e$6.Elts.$length, ((x$4 < 0 || x$4 > 2147483647) ? $throwRuntimeError("makemap: size out of range") : new $global.Map())); - _ref$4 = e$6.Elts; - _i$2 = 0; - /* while (true) { */ case 121: - /* if (!(_i$2 < _ref$4.$length)) { break; } */ if(!(_i$2 < _ref$4.$length)) { $s = 122; continue; } - e$21 = ((_i$2 < 0 || _i$2 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$2]); - _tuple$8 = $assertType(e$21, ptrType$97, true); - kv$2 = _tuple$8[0]; - /* */ if (kv$2 === ptrType$97.nil) { $s = 123; continue; } - /* */ $s = 124; continue; - /* if (kv$2 === ptrType$97.nil) { */ case 123: - $r = check[0].error(e$21, 61, "missing key in map literal"); /* */ $s = 125; case 125: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$2++; - /* continue; */ $s = 121; continue; - /* } */ case 124: - $r = check[0].exprWithHint(x[0], kv$2.Key, utyp$3.key); /* */ $s = 126; case 126: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].assignment(x[0], utyp$3.key, "map literal"); /* */ $s = 127; case 127: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x[0].mode === 0) { - _i$2++; - /* continue; */ $s = 121; continue; + }; })(err, s), []]); + if (!((((flags & 2) >>> 0) === 0))) { + err$1 = checkUTF8(s[0]); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + _tmp = ptrType.nil; + _tmp$1 = err$1; + _$1 = _tmp; + err[0] = _tmp$1; + $s = -1; return [_$1, err[0]]; + } + _tmp$2 = literalRegexp(s[0], flags); + _tmp$3 = $ifaceNil; + _$1 = _tmp$2; + err[0] = _tmp$3; + $s = -1; return [_$1, err[0]]; + } + p = new parser.ptr(0, sliceType$4.nil, ptrType.nil, 0, "", sliceType$1.nil, 0, 0, new $Int64(0, 0), false, false); + c = 0; + op$2 = 0; + lastRepeat = ""; + p.flags = flags; + p.wholeRegexp = s[0]; + t = s[0]; + /* while (true) { */ case 1: + /* if (!(!(t === ""))) { break; } */ if(!(!(t === ""))) { $s = 2; continue; } + repeat$1 = ""; + _2 = t.charCodeAt(0); + /* */ if (_2 === (40)) { $s = 4; continue; } + /* */ if (_2 === (124)) { $s = 5; continue; } + /* */ if (_2 === (41)) { $s = 6; continue; } + /* */ if (_2 === (94)) { $s = 7; continue; } + /* */ if (_2 === (36)) { $s = 8; continue; } + /* */ if (_2 === (46)) { $s = 9; continue; } + /* */ if (_2 === (91)) { $s = 10; continue; } + /* */ if ((_2 === (42)) || (_2 === (43)) || (_2 === (63))) { $s = 11; continue; } + /* */ if (_2 === (123)) { $s = 12; continue; } + /* */ if (_2 === (92)) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (_2 === (40)) { */ case 4: + if (!((((p.flags & 64) >>> 0) === 0)) && t.length >= 2 && (t.charCodeAt(1) === 63)) { + _tuple = p.parsePerlFlags(t); + t = _tuple[0]; + err[0] = _tuple[1]; + if (!($interfaceIsEqual(err[0], $ifaceNil))) { + _tmp$4 = ptrType.nil; + _tmp$5 = err[0]; + _$1 = _tmp$4; + err[0] = _tmp$5; + $s = -1; return [_$1, err[0]]; + } + /* break; */ $s = 3; continue; } - /* */ if (x[0].mode === 4) { $s = 128; continue; } - /* */ $s = 129; continue; - /* if (x[0].mode === 4) { */ case 128: - duplicate = false; - _r$11 = keyVal(x[0].val); /* */ $s = 130; case 130: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - xkey = _r$11; - /* */ if (keyIsInterface) { $s = 131; continue; } - /* */ $s = 132; continue; - /* if (keyIsInterface) { */ case 131: - _ref$5 = (_entry = $mapIndex(visited$1,$emptyInterface.keyFor(xkey)), _entry !== undefined ? _entry.v : sliceType$2.nil); - _i$3 = 0; - /* while (true) { */ case 134: - /* if (!(_i$3 < _ref$5.$length)) { break; } */ if(!(_i$3 < _ref$5.$length)) { $s = 135; continue; } - vtyp = ((_i$3 < 0 || _i$3 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$3]); - _r$12 = Identical(vtyp, x[0].typ); /* */ $s = 138; case 138: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - /* */ if (_r$12) { $s = 136; continue; } - /* */ $s = 137; continue; - /* if (_r$12) { */ case 136: - duplicate = true; - /* break; */ $s = 135; continue; - /* } */ case 137: - _i$3++; - $s = 134; continue; - case 135: - _key = xkey; (visited$1 || $throwRuntimeError("assignment to entry in nil map")).set($emptyInterface.keyFor(_key), { k: _key, v: $append((_entry$1 = $mapIndex(visited$1,$emptyInterface.keyFor(xkey)), _entry$1 !== undefined ? _entry$1.v : sliceType$2.nil), x[0].typ) }); - $s = 133; continue; - /* } else { */ case 132: - _tuple$9 = (_entry$2 = $mapIndex(visited$1,$emptyInterface.keyFor(xkey)), _entry$2 !== undefined ? [_entry$2.v, true] : [sliceType$2.nil, false]); - duplicate = _tuple$9[1]; - _key$1 = xkey; (visited$1 || $throwRuntimeError("assignment to entry in nil map")).set($emptyInterface.keyFor(_key$1), { k: _key$1, v: sliceType$2.nil }); - /* } */ case 133: - /* */ if (duplicate) { $s = 139; continue; } - /* */ $s = 140; continue; - /* if (duplicate) { */ case 139: - $r = check[0].errorf(x[0], 60, "duplicate key %s in map literal", new sliceType$6([x[0].val])); /* */ $s = 141; case 141: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$2++; - /* continue; */ $s = 121; continue; - /* } */ case 140: - /* } */ case 129: - $r = check[0].exprWithHint(x[0], kv$2.Value, utyp$3.elem); /* */ $s = 142; case 142: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].assignment(x[0], utyp$3.elem, "map literal"); /* */ $s = 143; case 143: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$2++; - $s = 121; continue; - case 122: - $s = 63; continue; - /* } else { */ case 62: - utyp$4 = _ref$1; - _ref$6 = e$6.Elts; - _i$4 = 0; - /* while (true) { */ case 144: - /* if (!(_i$4 < _ref$6.$length)) { break; } */ if(!(_i$4 < _ref$6.$length)) { $s = 145; continue; } - e$22 = ((_i$4 < 0 || _i$4 >= _ref$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$6.$array[_ref$6.$offset + _i$4]); - _tuple$10 = $assertType(e$22, ptrType$97, true); - kv$3 = _tuple$10[0]; - if (!(kv$3 === ptrType$97.nil)) { - e$22 = kv$3.Value; + p.numCap = p.numCap + (1) >> 0; + p.op(128).Cap = p.numCap; + t = $substring(t, 1); + $s = 15; continue; + /* } else if (_2 === (124)) { */ case 5: + _r = p.parseVerticalBar(); /* */ $s = 16; case 16: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err[0] = _r; + if (!($interfaceIsEqual(err[0], $ifaceNil))) { + _tmp$6 = ptrType.nil; + _tmp$7 = err[0]; + _$1 = _tmp$6; + err[0] = _tmp$7; + $s = -1; return [_$1, err[0]]; } - $r = check[0].use(new sliceType$11([e$22])); /* */ $s = 146; case 146: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$4++; - $s = 144; continue; - case 145: - /* */ if (!($interfaceIsEqual(utyp$4, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { $s = 147; continue; } - /* */ $s = 148; continue; - /* if (!($interfaceIsEqual(utyp$4, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { */ case 147: - $r = check[0].errorf(e$6, 71, "invalid composite literal type %s", new sliceType$6([typ$4])); /* */ $s = 149; case 149: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 20; continue; - /* } */ case 148: - /* } } */ case 63: - x[0].mode = 7; - x[0].typ = typ$4; - $s = 19; continue; - /* } else if ($assertType(_ref, ptrType$39, true)[1]) { */ case 7: - e$7 = _ref.$val; - _r$13 = check[0].rawExpr(x[0], e$7.X, $ifaceNil, false); /* */ $s = 150; case 150: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - kind = _r$13; - x[0].expr = e$7; - $s = -1; return kind; - /* } else if ($assertType(_ref, ptrType$36, true)[1]) { */ case 8: - e$8 = _ref.$val; - $r = check[0].selector(x[0], e$8, ptrType$9.nil, false); /* */ $s = 151; case 151: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 19; continue; - /* } else if ($assertType(_ref, ptrType$37, true)[1] || $assertType(_ref, ptrType$38, true)[1]) { */ case 9: - e$9 = _ref; - ix = typeparams.UnpackIndexExpr(e$9); - _r$14 = check[0].indexExpr(x[0], ix); /* */ $s = 154; case 154: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - /* */ if (_r$14) { $s = 152; continue; } - /* */ $s = 153; continue; - /* if (_r$14) { */ case 152: - $r = check[0].funcInst(x[0], ix); /* */ $s = 155; case 155: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 153: - /* */ if (x[0].mode === 0) { $s = 156; continue; } - /* */ $s = 157; continue; - /* if (x[0].mode === 0) { */ case 156: - /* goto Error */ $s = 20; continue; - /* } */ case 157: - $s = 19; continue; - /* } else if ($assertType(_ref, ptrType$100, true)[1]) { */ case 10: - e$10 = _ref.$val; - $r = check[0].sliceExpr(x[0], e$10); /* */ $s = 158; case 158: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (x[0].mode === 0) { $s = 159; continue; } - /* */ $s = 160; continue; - /* if (x[0].mode === 0) { */ case 159: - /* goto Error */ $s = 20; continue; - /* } */ case 160: - $s = 19; continue; - /* } else if ($assertType(_ref, ptrType$82, true)[1]) { */ case 11: - e$11 = _ref.$val; - $r = check[0].expr(x[0], e$11.X); /* */ $s = 161; case 161: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (x[0].mode === 0) { $s = 162; continue; } - /* */ $s = 163; continue; - /* if (x[0].mode === 0) { */ case 162: - /* goto Error */ $s = 20; continue; - /* } */ case 163: - /* */ if (isTypeParam(x[0].typ)) { $s = 164; continue; } - /* */ $s = 165; continue; - /* if (isTypeParam(x[0].typ)) { */ case 164: - $r = check[0].errorf(x[0], 94, "invalid operation: cannot use type assertion on type parameter value %s", new sliceType$6([x[0]])); /* */ $s = 166; case 166: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 20; continue; - /* } */ case 165: - _r$15 = under(x[0].typ); /* */ $s = 167; case 167: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - _tuple$11 = $assertType(_r$15, ptrType$13, true); - ok$2 = _tuple$11[1]; - /* */ if (!ok$2) { $s = 168; continue; } - /* */ $s = 169; continue; - /* if (!ok$2) { */ case 168: - $r = check[0].errorf(x[0], 94, "invalid operation: %s is not an interface", new sliceType$6([x[0]])); /* */ $s = 170; case 170: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 20; continue; - /* } */ case 169: - /* */ if ($interfaceIsEqual(e$11.Type, $ifaceNil)) { $s = 171; continue; } - /* */ $s = 172; continue; - /* if ($interfaceIsEqual(e$11.Type, $ifaceNil)) { */ case 171: - $r = check[0].error(e$11, 115, "use of .(type) outside type switch"); /* */ $s = 173; case 173: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 20; continue; - /* } */ case 172: - _r$16 = check[0].varType(e$11.Type); /* */ $s = 174; case 174: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - T = _r$16; - /* */ if ($interfaceIsEqual(T, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { $s = 175; continue; } - /* */ $s = 176; continue; - /* if ($interfaceIsEqual(T, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { */ case 175: - /* goto Error */ $s = 20; continue; - /* } */ case 176: - $r = check[0].typeAssertion(e$11, x[0], T, false); /* */ $s = 177; case 177: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x[0].mode = 8; - x[0].typ = T; - $s = 19; continue; - /* } else if ($assertType(_ref, ptrType$86, true)[1]) { */ case 12: - e$12 = _ref.$val; - _r$17 = check[0].callExpr(x[0], e$12); /* */ $s = 178; case 178: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - $24r = _r$17; - $s = 179; case 179: return $24r; - /* } else if ($assertType(_ref, ptrType$43, true)[1]) { */ case 13: - e$13 = _ref.$val; - $r = check[0].exprOrType(x[0], e$13.X, false); /* */ $s = 180; case 180: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _2 = x[0].mode; - /* */ if (_2 === (0)) { $s = 182; continue; } - /* */ if (_2 === (3)) { $s = 183; continue; } - /* */ $s = 184; continue; - /* if (_2 === (0)) { */ case 182: - /* goto Error */ $s = 20; continue; - $s = 185; continue; - /* } else if (_2 === (3)) { */ case 183: - check[0].validVarType(e$13.X, x[0].typ); - x[0].typ = new Pointer.ptr(x[0].typ); - $s = 185; continue; - /* } else { */ case 184: - base[0] = $ifaceNil; - _r$18 = underIs(x[0].typ, (function(base, check, decl$1, e$1, iota, sig, x) { return function Checker·exprInternal·func2(u) { - var {_r$18, _tuple$12, _v, p, u, $s, $r, $c} = $restore(this, {u}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _tuple$12 = $assertType(u, ptrType$26, true); - p = _tuple$12[0]; - /* */ if (p === ptrType$26.nil) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p === ptrType$26.nil) { */ case 1: - $r = check[0].errorf(x[0], 50, "invalid operation: cannot indirect %s", new sliceType$6([x[0]])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return false; - /* } */ case 2: - if (!(!($interfaceIsEqual(base[0], $ifaceNil)))) { _v = false; $s = 6; continue s; } - _r$18 = Identical(p.base, base[0]); /* */ $s = 7; case 7: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - _v = !_r$18; case 6: - /* */ if (_v) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_v) { */ case 4: - $r = check[0].errorf(x[0], 50, "invalid operation: pointers of %s must have identical base types", new sliceType$6([x[0]])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return false; - /* } */ case 5: - base[0] = p.base; - $s = -1; return true; - /* */ } return; } var $f = {$blk: Checker·exprInternal·func2, $c: true, $r, _r$18, _tuple$12, _v, p, u, $s};return $f; - }; })(base, check, decl$1, e$1, iota, sig, x)); /* */ $s = 188; case 188: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - /* */ if (!_r$18) { $s = 186; continue; } - /* */ $s = 187; continue; - /* if (!_r$18) { */ case 186: - /* goto Error */ $s = 20; continue; - /* } */ case 187: - x[0].mode = 5; - x[0].typ = base[0]; - /* } */ case 185: - case 181: - $s = 19; continue; - /* } else if ($assertType(_ref, ptrType$20, true)[1]) { */ case 14: - e$14 = _ref.$val; - $r = check[0].unary(x[0], e$14); /* */ $s = 189; case 189: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (x[0].mode === 0) { $s = 190; continue; } - /* */ $s = 191; continue; - /* if (x[0].mode === 0) { */ case 190: - /* goto Error */ $s = 20; continue; - /* } */ case 191: - if (e$14.Op === 36) { - x[0].expr = e$14; - $s = -1; return 2; - } - $s = 19; continue; - /* } else if ($assertType(_ref, ptrType$21, true)[1]) { */ case 15: - e$15 = _ref.$val; - $r = check[0].binary(x[0], e$15, e$15.X, e$15.Y, e$15.Op, e$15.OpPos); /* */ $s = 192; case 192: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (x[0].mode === 0) { $s = 193; continue; } - /* */ $s = 194; continue; - /* if (x[0].mode === 0) { */ case 193: - /* goto Error */ $s = 20; continue; - /* } */ case 194: - $s = 19; continue; - /* } else if ($assertType(_ref, ptrType$97, true)[1]) { */ case 16: - e$16 = _ref.$val; - $r = check[0].error(e$16, -1, "no key:value expected"); /* */ $s = 195; case 195: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 20; continue; - $s = 19; continue; - /* } else if ($assertType(_ref, ptrType$40, true)[1] || $assertType(_ref, ptrType$42, true)[1] || $assertType(_ref, ptrType$44, true)[1] || $assertType(_ref, ptrType$45, true)[1] || $assertType(_ref, ptrType$46, true)[1] || $assertType(_ref, ptrType$47, true)[1]) { */ case 17: - e$17 = _ref; - x[0].mode = 3; - _r$19 = check[0].typ(e$17); /* */ $s = 196; case 196: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - x[0].typ = _r$19; - $s = 19; continue; - /* } else { */ case 18: - e$18 = _ref; - _r$20 = e$18.Pos(); /* */ $s = 197; case 197: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - _r$21 = check[0].fset.Position(_r$20); /* */ $s = 198; case 198: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } - _arg = (x$5 = _r$21, new x$5.constructor.elem(x$5)); - _arg$1 = e$18; - _r$22 = fmt.Sprintf("%s: unknown expression type %T", new sliceType$6([_arg, _arg$1])); /* */ $s = 199; case 199: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - $panic(new $String(_r$22)); - /* } */ case 19: - x[0].expr = e; - $s = -1; return 1; - /* Error: */ case 20: - x[0].mode = 0; - x[0].expr = e; - $s = -1; return 2; - /* */ } return; } var $f = {$blk: exprInternal, $c: true, $r, $24r, T, _1, _2, _arg, _arg$1, _entry, _entry$1, _entry$2, _i, _i$1, _i$2, _i$3, _i$4, _key, _key$1, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, atyp, base, base$1, check, decl$1, duplicate, e, e$1, e$10, e$11, e$12, e$13, e$14, e$15, e$16, e$17, e$18, e$19, e$2, e$20, e$21, e$22, e$3, e$4, e$5, e$6, e$7, e$8, e$9, ellip, etyp, etyp$1, fields, fld, fld$1, hint, i, i$1, iota, ix, key, keyIsInterface, kind, kv, kv$1, kv$2, kv$3, n, ok, ok$1, ok$2, sig, typ$4, utyp, utyp$1, utyp$2, utyp$3, utyp$4, visited, visited$1, vtyp, x, x$1, x$2, x$3, x$4, x$5, xkey, $s};return $f; + t = $substring(t, 1); + $s = 15; continue; + /* } else if (_2 === (41)) { */ case 6: + _r$1 = p.parseRightParen(); /* */ $s = 17; case 17: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + err[0] = _r$1; + if (!($interfaceIsEqual(err[0], $ifaceNil))) { + _tmp$8 = ptrType.nil; + _tmp$9 = err[0]; + _$1 = _tmp$8; + err[0] = _tmp$9; + $s = -1; return [_$1, err[0]]; + } + t = $substring(t, 1); + $s = 15; continue; + /* } else if (_2 === (94)) { */ case 7: + if (!((((p.flags & 16) >>> 0) === 0))) { + p.op(9); + } else { + p.op(7); + } + t = $substring(t, 1); + $s = 15; continue; + /* } else if (_2 === (36)) { */ case 8: + if (!((((p.flags & 16) >>> 0) === 0))) { + _struct = p.op(10); + _struct.Flags = (_struct.Flags | (256)) >>> 0; + } else { + p.op(8); + } + t = $substring(t, 1); + $s = 15; continue; + /* } else if (_2 === (46)) { */ case 9: + if (!((((p.flags & 8) >>> 0) === 0))) { + p.op(6); + } else { + p.op(5); + } + t = $substring(t, 1); + $s = 15; continue; + /* } else if (_2 === (91)) { */ case 10: + _r$2 = p.parseClass(t); /* */ $s = 18; case 18: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$1 = _r$2; + t = _tuple$1[0]; + err[0] = _tuple$1[1]; + if (!($interfaceIsEqual(err[0], $ifaceNil))) { + _tmp$10 = ptrType.nil; + _tmp$11 = err[0]; + _$1 = _tmp$10; + err[0] = _tmp$11; + $s = -1; return [_$1, err[0]]; + } + $s = 15; continue; + /* } else if ((_2 === (42)) || (_2 === (43)) || (_2 === (63))) { */ case 11: + before = t; + _3 = t.charCodeAt(0); + if (_3 === (42)) { + op$2 = 14; + } else if (_3 === (43)) { + op$2 = 15; + } else if (_3 === (63)) { + op$2 = 16; + } + after = $substring(t, 1); + _tuple$2 = p.repeat(op$2, 0, 0, before, after, lastRepeat); + after = _tuple$2[0]; + err[0] = _tuple$2[1]; + if (!($interfaceIsEqual(err[0], $ifaceNil))) { + _tmp$12 = ptrType.nil; + _tmp$13 = err[0]; + _$1 = _tmp$12; + err[0] = _tmp$13; + $s = -1; return [_$1, err[0]]; + } + repeat$1 = before; + t = after; + $s = 15; continue; + /* } else if (_2 === (123)) { */ case 12: + op$2 = 17; + before$1 = t; + _tuple$3 = p.parseRepeat(t); + min = _tuple$3[0]; + max = _tuple$3[1]; + after$1 = _tuple$3[2]; + ok = _tuple$3[3]; + if (!ok) { + p.literal(123); + t = $substring(t, 1); + /* break; */ $s = 3; continue; + } + if (min < 0 || min > 1000 || max > 1000 || max >= 0 && min > max) { + _tmp$14 = ptrType.nil; + _tmp$15 = new Error.ptr("invalid repeat count", $substring(before$1, 0, (before$1.length - after$1.length >> 0))); + _$1 = _tmp$14; + err[0] = _tmp$15; + $s = -1; return [_$1, err[0]]; + } + _tuple$4 = p.repeat(op$2, min, max, before$1, after$1, lastRepeat); + after$1 = _tuple$4[0]; + err[0] = _tuple$4[1]; + if (!($interfaceIsEqual(err[0], $ifaceNil))) { + _tmp$16 = ptrType.nil; + _tmp$17 = err[0]; + _$1 = _tmp$16; + err[0] = _tmp$17; + $s = -1; return [_$1, err[0]]; + } + repeat$1 = before$1; + t = after$1; + $s = 15; continue; + /* } else if (_2 === (92)) { */ case 13: + if (!((((p.flags & 64) >>> 0) === 0)) && t.length >= 2) { + _4 = t.charCodeAt(1); + if (_4 === (65)) { + p.op(9); + t = $substring(t, 2); + /* break BigSwitch; */ $s = 3; continue s; + } else if (_4 === (98)) { + p.op(11); + t = $substring(t, 2); + /* break BigSwitch; */ $s = 3; continue s; + } else if (_4 === (66)) { + p.op(12); + t = $substring(t, 2); + /* break BigSwitch; */ $s = 3; continue s; + } else if (_4 === (67)) { + _tmp$18 = ptrType.nil; + _tmp$19 = new Error.ptr("invalid escape sequence", $substring(t, 0, 2)); + _$1 = _tmp$18; + err[0] = _tmp$19; + $s = -1; return [_$1, err[0]]; + } else if (_4 === (81)) { + lit = ""; + _tuple$5 = strings.Cut($substring(t, 2), "\\E"); + lit = _tuple$5[0]; + t = _tuple$5[1]; + while (true) { + if (!(!(lit === ""))) { break; } + _tuple$6 = nextRune(lit); + c$1 = _tuple$6[0]; + rest = _tuple$6[1]; + err$2 = _tuple$6[2]; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + _tmp$20 = ptrType.nil; + _tmp$21 = err$2; + _$1 = _tmp$20; + err[0] = _tmp$21; + $s = -1; return [_$1, err[0]]; + } + p.literal(c$1); + lit = rest; + } + /* break BigSwitch; */ $s = 3; continue s; + } else if (_4 === (122)) { + p.op(10); + t = $substring(t, 2); + /* break BigSwitch; */ $s = 3; continue s; + } + } + re = p.newRegexp(4); + re.Flags = p.flags; + /* */ if (t.length >= 2 && ((t.charCodeAt(1) === 112) || (t.charCodeAt(1) === 80))) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (t.length >= 2 && ((t.charCodeAt(1) === 112) || (t.charCodeAt(1) === 80))) { */ case 19: + _r$3 = p.parseUnicodeClass(t, $subslice(new sliceType$1(re.Rune0), 0, 0)); /* */ $s = 21; case 21: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$7 = _r$3; + r = _tuple$7[0]; + rest$1 = _tuple$7[1]; + err$3 = _tuple$7[2]; + if (!($interfaceIsEqual(err$3, $ifaceNil))) { + _tmp$22 = ptrType.nil; + _tmp$23 = err$3; + _$1 = _tmp$22; + err[0] = _tmp$23; + $s = -1; return [_$1, err[0]]; + } + if (!(r === sliceType$1.nil)) { + re.Rune = r; + t = rest$1; + p.push(re); + /* break BigSwitch; */ $s = 3; continue s; + } + /* } */ case 20: + _r$4 = p.parsePerlClassEscape(t, $subslice(new sliceType$1(re.Rune0), 0, 0)); /* */ $s = 22; case 22: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$8 = _r$4; + r$1 = _tuple$8[0]; + rest$2 = _tuple$8[1]; + if (!(r$1 === sliceType$1.nil)) { + re.Rune = r$1; + t = rest$2; + p.push(re); + /* break BigSwitch; */ $s = 3; continue s; + } + p.reuse(re); + _tuple$9 = p.parseEscape(t); + c = _tuple$9[0]; + t = _tuple$9[1]; + err[0] = _tuple$9[2]; + if (!($interfaceIsEqual(err[0], $ifaceNil))) { + _tmp$24 = ptrType.nil; + _tmp$25 = err[0]; + _$1 = _tmp$24; + err[0] = _tmp$25; + $s = -1; return [_$1, err[0]]; + } + p.literal(c); + $s = 15; continue; + /* } else { */ case 14: + _tuple$10 = nextRune(t); + c = _tuple$10[0]; + t = _tuple$10[1]; + err[0] = _tuple$10[2]; + if (!($interfaceIsEqual(err[0], $ifaceNil))) { + _tmp$26 = ptrType.nil; + _tmp$27 = err[0]; + _$1 = _tmp$26; + err[0] = _tmp$27; + $s = -1; return [_$1, err[0]]; + } + p.literal(c); + /* } */ case 15: + case 3: + lastRepeat = repeat$1; + $s = 1; continue; + case 2: + _r$5 = p.concat(); /* */ $s = 23; case 23: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$5; + _r$6 = p.swapVerticalBar(); /* */ $s = 26; case 26: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + /* */ if (_r$6) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (_r$6) { */ case 24: + p.stack = $subslice(p.stack, 0, (p.stack.$length - 1 >> 0)); + /* } */ case 25: + _r$7 = p.alternate(); /* */ $s = 27; case 27: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$7; + n = p.stack.$length; + if (!((n === 1))) { + _tmp$28 = ptrType.nil; + _tmp$29 = new Error.ptr("missing closing )", s[0]); + _$1 = _tmp$28; + err[0] = _tmp$29; + $s = -1; return [_$1, err[0]]; + } + _tmp$30 = (x = p.stack, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); + _tmp$31 = $ifaceNil; + _$1 = _tmp$30; + err[0] = _tmp$31; + $s = -1; return [_$1, err[0]]; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [_$1, err[0]]; } if($curGoroutine.asleep) { var $f = {$blk: parse$1, $c: true, $r, _$1, _2, _3, _4, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _struct, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$10, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, after, after$1, before, before$1, c, c$1, err, err$1, err$2, err$3, flags, lastRepeat, lit, max, min, n, ok, op$2, p, r, r$1, re, repeat$1, rest, rest$1, rest$2, s, t, x, $s, $deferred};return $f; } } }; - keyVal = function keyVal$1(x) { - var {$24r, $24r$1, _1, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, f, i, i$1, ok, ok$1, r, v, v$1, v$2, x, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = x.Kind(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _1 = _r$1; - /* */ if (_1 === (5)) { $s = 3; continue; } - /* */ if (_1 === (4)) { $s = 4; continue; } - /* */ if (_1 === (3)) { $s = 5; continue; } - /* */ if (_1 === (2)) { $s = 6; continue; } - /* */ if (_1 === (1)) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (_1 === (5)) { */ case 3: - _r$2 = constant.ToFloat(x); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - f = _r$2; - _r$3 = f.Kind(); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (!((_r$3 === 4))) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (!((_r$3 === 4))) { */ case 10: - _r$4 = constant.Real(x); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$5 = constant.Float64Val(_r$4); /* */ $s = 14; case 14: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _tuple = _r$5; - r = _tuple[0]; - _r$6 = constant.Imag(x); /* */ $s = 15; case 15: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _r$7 = constant.Float64Val(_r$6); /* */ $s = 16; case 16: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _tuple$1 = _r$7; - i = _tuple$1[0]; - $s = -1; return new $Complex128(r, i); - /* } */ case 11: - x = f; - _r$8 = constant.ToInt(x); /* */ $s = 17; case 17: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - i$1 = _r$8; - _r$9 = i$1.Kind(); /* */ $s = 20; case 20: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - /* */ if (!((_r$9 === 3))) { $s = 18; continue; } - /* */ $s = 19; continue; - /* if (!((_r$9 === 3))) { */ case 18: - _r$10 = constant.Float64Val(x); /* */ $s = 21; case 21: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _tuple$2 = _r$10; - v = _tuple$2[0]; - $s = -1; return new $Float64(v); - /* } */ case 19: - x = i$1; - _r$11 = constant.Int64Val(x); /* */ $s = 22; case 22: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _tuple$3 = _r$11; - v$1 = _tuple$3[0]; - ok = _tuple$3[1]; - if (ok) { - $s = -1; return v$1; - } - _r$12 = constant.Uint64Val(x); /* */ $s = 23; case 23: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _tuple$4 = _r$12; - v$2 = _tuple$4[0]; - ok$1 = _tuple$4[1]; - if (ok$1) { - $s = -1; return v$2; + $ptrType(parser).prototype.parseRepeat = function parseRepeat(s) { + var _tuple, _tuple$1, max, min, ok, ok1, p, rest, s; + min = 0; + max = 0; + rest = ""; + ok = false; + p = this; + if (s === "" || !((s.charCodeAt(0) === 123))) { + return [min, max, rest, ok]; + } + s = $substring(s, 1); + ok1 = false; + _tuple = p.parseInt(s); + min = _tuple[0]; + s = _tuple[1]; + ok1 = _tuple[2]; + if (!ok1) { + return [min, max, rest, ok]; + } + if (s === "") { + return [min, max, rest, ok]; + } + if (!((s.charCodeAt(0) === 44))) { + max = min; + } else { + s = $substring(s, 1); + if (s === "") { + return [min, max, rest, ok]; + } + if (s.charCodeAt(0) === 125) { + max = -1; + } else { + _tuple$1 = p.parseInt(s); + max = _tuple$1[0]; + s = _tuple$1[1]; + ok1 = _tuple$1[2]; + if (!ok1) { + return [min, max, rest, ok]; + } else if (max < 0) { + min = -1; } - $s = 8; continue; - /* } else if (_1 === (4)) { */ case 4: - _r$13 = constant.ToInt(x); /* */ $s = 24; case 24: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - i$1 = _r$13; - _r$14 = i$1.Kind(); /* */ $s = 27; case 27: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - /* */ if (!((_r$14 === 3))) { $s = 25; continue; } - /* */ $s = 26; continue; - /* if (!((_r$14 === 3))) { */ case 25: - _r$15 = constant.Float64Val(x); /* */ $s = 28; case 28: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - _tuple$5 = _r$15; - v = _tuple$5[0]; - $s = -1; return new $Float64(v); - /* } */ case 26: - x = i$1; - _r$16 = constant.Int64Val(x); /* */ $s = 29; case 29: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - _tuple$6 = _r$16; - v$1 = _tuple$6[0]; - ok = _tuple$6[1]; - if (ok) { - $s = -1; return v$1; + } + } + if (s === "" || !((s.charCodeAt(0) === 125))) { + return [min, max, rest, ok]; + } + rest = $substring(s, 1); + ok = true; + return [min, max, rest, ok]; + }; + $ptrType(parser).prototype.parsePerlFlags = function parsePerlFlags(s) { + var _1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, c, capture, end, err, flags, name, p, re, rest, s, sawFlag, sign, t; + rest = ""; + err = $ifaceNil; + p = this; + t = s; + if (t.length > 4 && (t.charCodeAt(2) === 80) && (t.charCodeAt(3) === 60)) { + end = strings.IndexRune(t, 62); + if (end < 0) { + err = checkUTF8(t); + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp = ""; + _tmp$1 = err; + rest = _tmp; + err = _tmp$1; + return [rest, err]; } - _r$17 = constant.Uint64Val(x); /* */ $s = 30; case 30: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - _tuple$7 = _r$17; - v$2 = _tuple$7[0]; - ok$1 = _tuple$7[1]; - if (ok$1) { - $s = -1; return v$2; + _tmp$2 = ""; + _tmp$3 = new Error.ptr("invalid named capture", s); + rest = _tmp$2; + err = _tmp$3; + return [rest, err]; + } + capture = $substring(t, 0, (end + 1 >> 0)); + name = $substring(t, 4, end); + err = checkUTF8(name); + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp$4 = ""; + _tmp$5 = err; + rest = _tmp$4; + err = _tmp$5; + return [rest, err]; + } + if (!isValidCaptureName(name)) { + _tmp$6 = ""; + _tmp$7 = new Error.ptr("invalid named capture", capture); + rest = _tmp$6; + err = _tmp$7; + return [rest, err]; + } + p.numCap = p.numCap + (1) >> 0; + re = p.op(128); + re.Cap = p.numCap; + re.Name = name; + _tmp$8 = $substring(t, (end + 1 >> 0)); + _tmp$9 = $ifaceNil; + rest = _tmp$8; + err = _tmp$9; + return [rest, err]; + } + c = 0; + t = $substring(t, 2); + flags = p.flags; + sign = 1; + sawFlag = false; + Loop: + while (true) { + if (!(!(t === ""))) { break; } + _tuple = nextRune(t); + c = _tuple[0]; + t = _tuple[1]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp$10 = ""; + _tmp$11 = err; + rest = _tmp$10; + err = _tmp$11; + return [rest, err]; + } + _1 = c; + if (_1 === (105)) { + flags = (flags | (1)) >>> 0; + sawFlag = true; + } else if (_1 === (109)) { + flags = (flags & ~(16)) << 16 >>> 16; + sawFlag = true; + } else if (_1 === (115)) { + flags = (flags | (8)) >>> 0; + sawFlag = true; + } else if (_1 === (85)) { + flags = (flags | (32)) >>> 0; + sawFlag = true; + } else if (_1 === (45)) { + if (sign < 0) { + break Loop; } - $s = 8; continue; - /* } else if (_1 === (3)) { */ case 5: - _r$18 = constant.Int64Val(x); /* */ $s = 31; case 31: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - _tuple$8 = _r$18; - v$1 = _tuple$8[0]; - ok = _tuple$8[1]; - if (ok) { - $s = -1; return v$1; + sign = -1; + flags = ~flags << 16 >>> 16; + sawFlag = false; + } else if ((_1 === (58)) || (_1 === (41))) { + if (sign < 0) { + if (!sawFlag) { + break Loop; + } + flags = ~flags << 16 >>> 16; } - _r$19 = constant.Uint64Val(x); /* */ $s = 32; case 32: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - _tuple$9 = _r$19; - v$2 = _tuple$9[0]; - ok$1 = _tuple$9[1]; - if (ok$1) { - $s = -1; return v$2; + if (c === 58) { + p.op(128); } - $s = 8; continue; - /* } else if (_1 === (2)) { */ case 6: - _r$20 = constant.StringVal(x); /* */ $s = 33; case 33: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - $24r = new $String(_r$20); - $s = 34; case 34: return $24r; - /* } else if (_1 === (1)) { */ case 7: - _r$21 = constant.BoolVal(x); /* */ $s = 35; case 35: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } - $24r$1 = new $Bool(_r$21); - $s = 36; case 36: return $24r$1; - /* } */ case 8: - case 1: - $s = -1; return x; - /* */ } return; } var $f = {$blk: keyVal$1, $c: true, $r, $24r, $24r$1, _1, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, f, i, i$1, ok, ok$1, r, v, v$1, v$2, x, $s};return $f; + p.flags = flags; + _tmp$12 = t; + _tmp$13 = $ifaceNil; + rest = _tmp$12; + err = _tmp$13; + return [rest, err]; + } else { + break Loop; + } + } + _tmp$14 = ""; + _tmp$15 = new Error.ptr("invalid or unsupported Perl syntax", $substring(s, 0, (s.length - t.length >> 0))); + rest = _tmp$14; + err = _tmp$15; + return [rest, err]; }; - $ptrType(Checker).prototype.typeAssertion = function typeAssertion(e, x, T, typeSwitch) { - var {T, _r$1, _r$2, _r$3, _tuple, alt, cause, check, e, method, typeSwitch, x, $s, $r, $c} = $restore(this, {e, x, T, typeSwitch}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = under(x.typ); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = check.assertableTo($assertType(_r$1, ptrType$13), T); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple = _r$2; - method = _tuple[0]; - alt = _tuple[1]; - if (method === ptrType$2.nil) { - $s = -1; return; + isValidCaptureName = function isValidCaptureName$1(name) { + var _i, _ref, _rune, c, name; + if (name === "") { + return false; } - _r$3 = check.missingMethodCause(T, x.typ, method, alt); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - cause = _r$3; - /* */ if (typeSwitch) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (typeSwitch) { */ case 4: - $r = check.errorf(e, 95, "impossible type switch case: %s\n\t%s cannot have dynamic type %s %s", new sliceType$6([e, x, T, new $String(cause)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 5: - $r = check.errorf(e, 95, "impossible type assertion: %s\n\t%s does not implement %s %s", new sliceType$6([e, T, x.typ, new $String(cause)])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: typeAssertion, $c: true, $r, T, _r$1, _r$2, _r$3, _tuple, alt, cause, check, e, method, typeSwitch, x, $s};return $f; + _ref = name; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + c = _rune[0]; + if (!((c === 95)) && !isalnum(c)) { + return false; + } + _i += _rune[1]; + } + return true; }; - $ptrType(Checker).prototype.expr = function expr(x, e) { - var {_r$1, check, e, x, $s, $r, $c} = $restore(this, {x, e}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = check.rawExpr(x, e, $ifaceNil, false); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - $r = check.exclude(x, 14); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.singleValue(x); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: expr, $c: true, $r, _r$1, check, e, x, $s};return $f; + $ptrType(parser).prototype.parseInt = function parseInt(s) { + var i, n, ok, p, rest, s, t; + n = 0; + rest = ""; + ok = false; + p = this; + if (s === "" || s.charCodeAt(0) < 48 || 57 < s.charCodeAt(0)) { + return [n, rest, ok]; + } + if (s.length >= 2 && (s.charCodeAt(0) === 48) && 48 <= s.charCodeAt(1) && s.charCodeAt(1) <= 57) { + return [n, rest, ok]; + } + t = s; + while (true) { + if (!(!(s === "") && 48 <= s.charCodeAt(0) && s.charCodeAt(0) <= 57)) { break; } + s = $substring(s, 1); + } + rest = s; + ok = true; + t = $substring(t, 0, (t.length - s.length >> 0)); + i = 0; + while (true) { + if (!(i < t.length)) { break; } + if (n >= 100000000) { + n = -1; + break; + } + n = (($imul(n, 10)) + ((t.charCodeAt(i) >> 0)) >> 0) - 48 >> 0; + i = i + (1) >> 0; + } + return [n, rest, ok]; }; - $ptrType(Checker).prototype.multiExpr = function multiExpr(x, e) { - var {_r$1, check, e, x, $s, $r, $c} = $restore(this, {x, e}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = check.rawExpr(x, e, $ifaceNil, false); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - $r = check.exclude(x, 14); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: multiExpr, $c: true, $r, _r$1, check, e, x, $s};return $f; + isCharClass = function isCharClass$1(re) { + var re; + return (re.Op === 3) && (re.Rune.$length === 1) || (re.Op === 4) || (re.Op === 5) || (re.Op === 6); }; - $ptrType(Checker).prototype.exprWithHint = function exprWithHint(x, e, hint) { - var {_r$1, check, e, hint, x, $s, $r, $c} = $restore(this, {x, e, hint}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - $r = assert(!($interfaceIsEqual(hint, $ifaceNil))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$1 = check.rawExpr(x, e, hint, false); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - $r = check.exclude(x, 14); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.singleValue(x); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: exprWithHint, $c: true, $r, _r$1, check, e, hint, x, $s};return $f; + matchRune = function matchRune$1(re, r) { + var _1, i, r, re, x, x$1, x$2, x$3; + _1 = re.Op; + if (_1 === (3)) { + return (re.Rune.$length === 1) && ((x = re.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) === r); + } else if (_1 === (4)) { + i = 0; + while (true) { + if (!(i < re.Rune.$length)) { break; } + if ((x$1 = re.Rune, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])) <= r && r <= (x$2 = re.Rune, x$3 = i + 1 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3]))) { + return true; + } + i = i + (2) >> 0; + } + return false; + } else if (_1 === (5)) { + return !((r === 10)); + } else if (_1 === (6)) { + return true; + } + return false; }; - $ptrType(Checker).prototype.exprOrType = function exprOrType(x, e, allowGeneric) { - var {_r$1, allowGeneric, check, e, x, $s, $r, $c} = $restore(this, {x, e, allowGeneric}); + $ptrType(parser).prototype.parseVerticalBar = function parseVerticalBar() { + var {_r, _r$1, p, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = check.rawExpr(x, e, $ifaceNil, allowGeneric); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - $r = check.exclude(x, 2); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.singleValue(x); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: exprOrType, $c: true, $r, _r$1, allowGeneric, check, e, x, $s};return $f; + p = this; + _r = p.concat(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + _r$1 = p.swapVerticalBar(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!_r$1) { */ case 2: + p.op(129); + /* } */ case 3: + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: parseVerticalBar, $c: true, $r, _r, _r$1, p, $s};return $f; }; - $ptrType(Checker).prototype.exclude = function exclude(x, modeset) { - var {_1, check, code, modeset, msg, x, y, $s, $r, $c} = $restore(this, {x, modeset}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - /* */ if (!((((modeset & (((y = x.mode, y < 32 ? (1 << y) : 0) >>> 0))) >>> 0) === 0))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!((((modeset & (((y = x.mode, y < 32 ? (1 << y) : 0) >>> 0))) >>> 0) === 0))) { */ case 1: - msg = ""; - code = 0; - _1 = x.mode; - if (_1 === (1)) { - if (!((((modeset & 8) >>> 0) === 0))) { - msg = "%s used as value"; + mergeCharClass = function mergeCharClass$1(dst, src) { + var _1, dst, src, x, x$1, x$2, x$3, x$4; + switch (0) { default: + _1 = dst.Op; + if (_1 === (6)) { + } else if (_1 === (5)) { + if (matchRune(src, 10)) { + dst.Op = 6; + } + } else if (_1 === (4)) { + if (src.Op === 3) { + dst.Rune = appendLiteral(dst.Rune, (x = src.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])), src.Flags); } else { - msg = "%s used as value or type"; + dst.Rune = appendClass(dst.Rune, src.Rune); } - code = 41; - } else if (_1 === (2)) { - msg = "%s must be called"; - code = 82; } else if (_1 === (3)) { - msg = "%s is not an expression"; - code = 42; - } else { - unreachable(); + if (((x$1 = src.Rune, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])) === (x$2 = dst.Rune, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0]))) && (src.Flags === dst.Flags)) { + break; + } + dst.Op = 4; + dst.Rune = appendLiteral($subslice(dst.Rune, 0, 0), (x$3 = dst.Rune, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])), dst.Flags); + dst.Rune = appendLiteral(dst.Rune, (x$4 = src.Rune, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])), src.Flags); } - $r = check.errorf(x, code, msg, new sliceType$6([x])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - /* } */ case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: exclude, $c: true, $r, _1, check, code, modeset, msg, x, y, $s};return $f; + } }; - $ptrType(Checker).prototype.singleValue = function singleValue(x) { - var {_tuple, check, ok, t, x, $s, $r, $c} = $restore(this, {x}); + $ptrType(parser).prototype.swapVerticalBar = function swapVerticalBar() { + var {_tmp, _tmp$1, n, p, re1, re1$1, re2, re3, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - /* */ if (x.mode === 7) { $s = 1; continue; } + p = this; + n = p.stack.$length; + if (n >= 3 && ((x = p.stack, x$1 = n - 2 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Op === 129) && isCharClass((x$2 = p.stack, x$3 = n - 1 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3]))) && isCharClass((x$4 = p.stack, x$5 = n - 3 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])))) { + re1 = (x$6 = p.stack, x$7 = n - 1 >> 0, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])); + re3 = (x$8 = p.stack, x$9 = n - 3 >> 0, ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + x$9])); + if (re1.Op > re3.Op) { + _tmp = re3; + _tmp$1 = re1; + re1 = _tmp; + re3 = _tmp$1; + (x$10 = p.stack, x$11 = n - 3 >> 0, ((x$11 < 0 || x$11 >= x$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + x$11] = re3)); + } + mergeCharClass(re3, re1); + p.reuse(re1); + p.stack = $subslice(p.stack, 0, (n - 1 >> 0)); + $s = -1; return true; + } + /* */ if (n >= 2) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (x.mode === 7) { */ case 1: - _tuple = $assertType(x.typ, ptrType$15, true); - t = _tuple[0]; - ok = _tuple[1]; - /* */ if (ok) { $s = 3; continue; } + /* if (n >= 2) { */ case 1: + re1$1 = (x$12 = p.stack, x$13 = n - 1 >> 0, ((x$13 < 0 || x$13 >= x$12.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + x$13])); + re2 = (x$14 = p.stack, x$15 = n - 2 >> 0, ((x$15 < 0 || x$15 >= x$14.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + x$15])); + /* */ if (re2.Op === 129) { $s = 3; continue; } /* */ $s = 4; continue; - /* if (ok) { */ case 3: - $r = assert(!((t.Len() === 1))); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.errorf(x, 41, "multiple-value %s in single-value context", new sliceType$6([x])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; + /* if (re2.Op === 129) { */ case 3: + /* */ if (n >= 3) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (n >= 3) { */ case 5: + $r = cleanAlt((x$16 = p.stack, x$17 = n - 3 >> 0, ((x$17 < 0 || x$17 >= x$16.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$16.$array[x$16.$offset + x$17]))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + (x$18 = p.stack, x$19 = n - 2 >> 0, ((x$19 < 0 || x$19 >= x$18.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$18.$array[x$18.$offset + x$19] = re1$1)); + (x$20 = p.stack, x$21 = n - 1 >> 0, ((x$21 < 0 || x$21 >= x$20.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$20.$array[x$20.$offset + x$21] = re2)); + $s = -1; return true; /* } */ case 4: /* } */ case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: singleValue, $c: true, $r, _tuple, check, ok, t, x, $s};return $f; + $s = -1; return false; + /* */ } return; } var $f = {$blk: swapVerticalBar, $c: true, $r, _tmp, _tmp$1, n, p, re1, re1$1, re2, re3, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; }; - assert = function assert$1(p) { - var {_r$1, _tuple, file, line, msg, ok, p, $s, $r, $c} = $restore(this, {p}); + $ptrType(parser).prototype.parseRightParen = function parseRightParen() { + var {_r, _r$1, _r$2, n, p, re1, re2, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - /* */ if (!p) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!p) { */ case 1: - msg = "assertion failed"; - _tuple = runtime.Caller(1); - file = _tuple[1]; - line = _tuple[2]; - ok = _tuple[3]; - /* */ if (ok) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (ok) { */ case 3: - _r$1 = fmt.Sprintf("%s:%d: %s", new sliceType$6([new $String(file), new $Int(line), new $String(msg)])); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - msg = _r$1; - /* } */ case 4: - $panic(new $String(msg)); - /* } */ case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: assert$1, $c: true, $r, _r$1, _tuple, file, line, msg, ok, p, $s};return $f; + p = this; + _r = p.concat(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + _r$1 = p.swapVerticalBar(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (_r$1) { */ case 2: + p.stack = $subslice(p.stack, 0, (p.stack.$length - 1 >> 0)); + /* } */ case 3: + _r$2 = p.alternate(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + n = p.stack.$length; + if (n < 2) { + $s = -1; return new Error.ptr("unexpected )", p.wholeRegexp); + } + re1 = (x = p.stack, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + re2 = (x$2 = p.stack, x$3 = n - 2 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])); + p.stack = $subslice(p.stack, 0, (n - 2 >> 0)); + if (!((re2.Op === 128))) { + $s = -1; return new Error.ptr("unexpected )", p.wholeRegexp); + } + p.flags = re2.Flags; + if (re2.Cap === 0) { + p.push(re1); + } else { + re2.Op = 13; + re2.Sub = $subslice(new sliceType$4(re2.Sub0), 0, 1); + (x$4 = re2.Sub, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0] = re1)); + p.push(re2); + } + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: parseRightParen, $c: true, $r, _r, _r$1, _r$2, n, p, re1, re2, x, x$1, x$2, x$3, x$4, $s};return $f; }; - unreachable = function unreachable$1() { - $panic(new $String("unreachable")); + $ptrType(parser).prototype.parseEscape = function parseEscape(s) { + var _1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$32, _tmp$33, _tmp$34, _tmp$35, _tmp$36, _tmp$37, _tmp$38, _tmp$39, _tmp$4, _tmp$40, _tmp$41, _tmp$42, _tmp$43, _tmp$44, _tmp$45, _tmp$46, _tmp$47, _tmp$48, _tmp$49, _tmp$5, _tmp$50, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, c, err, i, nhex, p, r, rest, s, t, v, x, y; + r = 0; + rest = ""; + err = $ifaceNil; + p = this; + t = $substring(s, 1); + if (t === "") { + _tmp = 0; + _tmp$1 = ""; + _tmp$2 = new Error.ptr("trailing backslash at end of expression", ""); + r = _tmp; + rest = _tmp$1; + err = _tmp$2; + return [r, rest, err]; + } + _tuple = nextRune(t); + c = _tuple[0]; + t = _tuple[1]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp$3 = 0; + _tmp$4 = ""; + _tmp$5 = err; + r = _tmp$3; + rest = _tmp$4; + err = _tmp$5; + return [r, rest, err]; + } + Switch: + switch (0) { default: + _1 = c; + if ((_1 === (49)) || (_1 === (50)) || (_1 === (51)) || (_1 === (52)) || (_1 === (53)) || (_1 === (54)) || (_1 === (55))) { + if (t === "" || t.charCodeAt(0) < 48 || t.charCodeAt(0) > 55) { + break; + } + r = c - 48 >> 0; + i = 1; + while (true) { + if (!(i < 3)) { break; } + if (t === "" || t.charCodeAt(0) < 48 || t.charCodeAt(0) > 55) { + break; + } + r = (($imul(r, 8)) + ((t.charCodeAt(0) >> 0)) >> 0) - 48 >> 0; + t = $substring(t, 1); + i = i + (1) >> 0; + } + _tmp$6 = r; + _tmp$7 = t; + _tmp$8 = $ifaceNil; + r = _tmp$6; + rest = _tmp$7; + err = _tmp$8; + return [r, rest, err]; + } else if (_1 === (48)) { + r = c - 48 >> 0; + i = 1; + while (true) { + if (!(i < 3)) { break; } + if (t === "" || t.charCodeAt(0) < 48 || t.charCodeAt(0) > 55) { + break; + } + r = (($imul(r, 8)) + ((t.charCodeAt(0) >> 0)) >> 0) - 48 >> 0; + t = $substring(t, 1); + i = i + (1) >> 0; + } + _tmp$9 = r; + _tmp$10 = t; + _tmp$11 = $ifaceNil; + r = _tmp$9; + rest = _tmp$10; + err = _tmp$11; + return [r, rest, err]; + } else if (_1 === (120)) { + if (t === "") { + break; + } + _tuple$1 = nextRune(t); + c = _tuple$1[0]; + t = _tuple$1[1]; + err = _tuple$1[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp$12 = 0; + _tmp$13 = ""; + _tmp$14 = err; + r = _tmp$12; + rest = _tmp$13; + err = _tmp$14; + return [r, rest, err]; + } + if (c === 123) { + nhex = 0; + r = 0; + while (true) { + if (t === "") { + break Switch; + } + _tuple$2 = nextRune(t); + c = _tuple$2[0]; + t = _tuple$2[1]; + err = _tuple$2[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp$15 = 0; + _tmp$16 = ""; + _tmp$17 = err; + r = _tmp$15; + rest = _tmp$16; + err = _tmp$17; + return [r, rest, err]; + } + if (c === 125) { + break; + } + v = unhex(c); + if (v < 0) { + break Switch; + } + r = ($imul(r, 16)) + v >> 0; + if (r > 1114111) { + break Switch; + } + nhex = nhex + (1) >> 0; + } + if (nhex === 0) { + break Switch; + } + _tmp$18 = r; + _tmp$19 = t; + _tmp$20 = $ifaceNil; + r = _tmp$18; + rest = _tmp$19; + err = _tmp$20; + return [r, rest, err]; + } + x = unhex(c); + _tuple$3 = nextRune(t); + c = _tuple$3[0]; + t = _tuple$3[1]; + err = _tuple$3[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp$21 = 0; + _tmp$22 = ""; + _tmp$23 = err; + r = _tmp$21; + rest = _tmp$22; + err = _tmp$23; + return [r, rest, err]; + } + y = unhex(c); + if (x < 0 || y < 0) { + break; + } + _tmp$24 = ($imul(x, 16)) + y >> 0; + _tmp$25 = t; + _tmp$26 = $ifaceNil; + r = _tmp$24; + rest = _tmp$25; + err = _tmp$26; + return [r, rest, err]; + } else if (_1 === (97)) { + _tmp$27 = 7; + _tmp$28 = t; + _tmp$29 = err; + r = _tmp$27; + rest = _tmp$28; + err = _tmp$29; + return [r, rest, err]; + } else if (_1 === (102)) { + _tmp$30 = 12; + _tmp$31 = t; + _tmp$32 = err; + r = _tmp$30; + rest = _tmp$31; + err = _tmp$32; + return [r, rest, err]; + } else if (_1 === (110)) { + _tmp$33 = 10; + _tmp$34 = t; + _tmp$35 = err; + r = _tmp$33; + rest = _tmp$34; + err = _tmp$35; + return [r, rest, err]; + } else if (_1 === (114)) { + _tmp$36 = 13; + _tmp$37 = t; + _tmp$38 = err; + r = _tmp$36; + rest = _tmp$37; + err = _tmp$38; + return [r, rest, err]; + } else if (_1 === (116)) { + _tmp$39 = 9; + _tmp$40 = t; + _tmp$41 = err; + r = _tmp$39; + rest = _tmp$40; + err = _tmp$41; + return [r, rest, err]; + } else if (_1 === (118)) { + _tmp$42 = 11; + _tmp$43 = t; + _tmp$44 = err; + r = _tmp$42; + rest = _tmp$43; + err = _tmp$44; + return [r, rest, err]; + } else if (c < 128 && !isalnum(c)) { + _tmp$45 = c; + _tmp$46 = t; + _tmp$47 = $ifaceNil; + r = _tmp$45; + rest = _tmp$46; + err = _tmp$47; + return [r, rest, err]; + } + } + _tmp$48 = 0; + _tmp$49 = ""; + _tmp$50 = new Error.ptr("invalid escape sequence", $substring(s, 0, (s.length - t.length >> 0))); + r = _tmp$48; + rest = _tmp$49; + err = _tmp$50; + return [r, rest, err]; }; - $ptrType(error_).prototype.empty = function empty$1() { - var err; - err = this; - return err.desc === sliceType$31.nil; + $ptrType(parser).prototype.parseClassChar = function parseClassChar(s, wholeClass) { + var _tmp, _tmp$1, _tmp$2, _tuple, _tuple$1, err, p, r, rest, s, wholeClass; + r = 0; + rest = ""; + err = $ifaceNil; + p = this; + if (s === "") { + _tmp = 0; + _tmp$1 = ""; + _tmp$2 = new Error.ptr("missing closing ]", wholeClass); + r = _tmp; + rest = _tmp$1; + err = _tmp$2; + return [r, rest, err]; + } + if (s.charCodeAt(0) === 92) { + _tuple = p.parseEscape(s); + r = _tuple[0]; + rest = _tuple[1]; + err = _tuple[2]; + return [r, rest, err]; + } + _tuple$1 = nextRune(s); + r = _tuple$1[0]; + rest = _tuple$1[1]; + err = _tuple$1[2]; + return [r, rest, err]; }; - $ptrType(error_).prototype.pos = function pos() { - var {$24r, _r$1, err, x, $s, $r, $c} = $restore(this, {}); + $ptrType(parser).prototype.parsePerlClassEscape = function parsePerlClassEscape(s, r) { + var {$24r, _entry, _r, _tmp, _tmp$1, g, out, p, r, rest, s, $s, $r, $c} = $restore(this, {s, r}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - err = this; - if (err.empty()) { - $s = -1; return 0; + out = sliceType$1.nil; + rest = ""; + p = this; + if ((((p.flags & 64) >>> 0) === 0) || s.length < 2 || !((s.charCodeAt(0) === 92))) { + $s = -1; return [out, rest]; } - _r$1 = (x = err.desc, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).posn.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; + g = $clone((_entry = $mapIndex(perlGroup,$String.keyFor($substring(s, 0, 2))), _entry !== undefined ? _entry.v : new charGroup.ptr(0, sliceType$1.nil)), charGroup); + if (g.sign === 0) { + $s = -1; return [out, rest]; + } + _r = p.appendGroup(r, $clone(g, charGroup)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tmp = _r; + _tmp$1 = $substring(s, 2); + out = _tmp; + rest = _tmp$1; + $24r = [out, rest]; $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: pos, $c: true, $r, $24r, _r$1, err, x, $s};return $f; + /* */ } return; } var $f = {$blk: parsePerlClassEscape, $c: true, $r, $24r, _entry, _r, _tmp, _tmp$1, g, out, p, r, rest, s, $s};return $f; }; - $ptrType(error_).prototype.msg = function msg(fset, qf) { - var {_arg, _arg$1, _i, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, buf, err, fset, i, p, qf, x, x$1, $s, $r, $c} = $restore(this, {fset, qf}); + $ptrType(parser).prototype.parseNamedClass = function parseNamedClass(s, r) { + var {$24r, _entry, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, err, g, i, name, out, p, r, rest, s, $s, $r, $c} = $restore(this, {s, r}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - buf = [buf]; - err = this; - if (err.empty()) { - $s = -1; return "no error"; + out = sliceType$1.nil; + rest = ""; + err = $ifaceNil; + p = this; + if (s.length < 2 || !((s.charCodeAt(0) === 91)) || !((s.charCodeAt(1) === 58))) { + $s = -1; return [out, rest, err]; } - buf[0] = new strings.Builder.ptr(ptrType$53.nil, sliceType$14.nil); - _ref = err.desc; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - p = (x = err.desc, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - /* */ if (i > 0) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (i > 0) { */ case 3: - _r$1 = fmt.Fprint(buf[0], new sliceType$6([new $String("\n\t")])); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - _r$2 = p.posn.Pos(); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = new token.Pos(_r$2).IsValid(); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (_r$3) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (_r$3) { */ case 6: - _arg = buf[0]; - _r$4 = p.posn.Pos(); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$5 = fset.Position(_r$4); /* */ $s = 11; case 11: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _arg$1 = (x$1 = _r$5, new x$1.constructor.elem(x$1)); - _r$6 = fmt.Fprintf(_arg, "%s: ", new sliceType$6([_arg$1])); /* */ $s = 12; case 12: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _r$6; - /* } */ case 7: - /* } */ case 4: - _r$7 = sprintf(fset, qf, false, p.format, p.args); /* */ $s = 13; case 13: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _r$8 = buf[0].WriteString(_r$7); /* */ $s = 14; case 14: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _r$8; - _i++; - $s = 1; continue; - case 2: - $s = -1; return buf[0].String(); - /* */ } return; } var $f = {$blk: msg, $c: true, $r, _arg, _arg$1, _i, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, buf, err, fset, i, p, qf, x, x$1, $s};return $f; + i = strings.Index($substring(s, 2), ":]"); + if (i < 0) { + $s = -1; return [out, rest, err]; + } + i = i + (2) >> 0; + _tmp = $substring(s, 0, (i + 2 >> 0)); + _tmp$1 = $substring(s, (i + 2 >> 0)); + name = _tmp; + s = _tmp$1; + g = $clone((_entry = $mapIndex(posixGroup,$String.keyFor(name)), _entry !== undefined ? _entry.v : new charGroup.ptr(0, sliceType$1.nil)), charGroup); + if (g.sign === 0) { + _tmp$2 = sliceType$1.nil; + _tmp$3 = ""; + _tmp$4 = new Error.ptr("invalid character class range", name); + out = _tmp$2; + rest = _tmp$3; + err = _tmp$4; + $s = -1; return [out, rest, err]; + } + _r = p.appendGroup(r, $clone(g, charGroup)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tmp$5 = _r; + _tmp$6 = s; + _tmp$7 = $ifaceNil; + out = _tmp$5; + rest = _tmp$6; + err = _tmp$7; + $24r = [out, rest, err]; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: parseNamedClass, $c: true, $r, $24r, _entry, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, err, g, i, name, out, p, r, rest, s, $s};return $f; }; - $ptrType(error_).prototype.String = function String$31() { - var {$24r, _arg, _arg$1, _r$1, _r$2, _r$3, err, $s, $r, $c} = $restore(this, {}); + $ptrType(parser).prototype.appendGroup = function appendGroup(r, g) { + var {_r, g, p, r, tmp, $s, $r, $c} = $restore(this, {r, g}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - err = this; - if (err.empty()) { - $s = -1; return "no error"; - } - _r$1 = err.pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _arg = new token.Pos(_r$1); - _r$2 = err.msg(ptrType$24.nil, $throwNilPointerError); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _arg$1 = new $String(_r$2); - _r$3 = fmt.Sprintf("%d: %s", new sliceType$6([_arg, _arg$1])); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r = _r$3; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: String$31, $c: true, $r, $24r, _arg, _arg$1, _r$1, _r$2, _r$3, err, $s};return $f; + p = this; + /* */ if (((p.flags & 1) >>> 0) === 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (((p.flags & 1) >>> 0) === 0) { */ case 1: + if (g.sign < 0) { + r = appendNegatedClass(r, g.class$1); + } else { + r = appendClass(r, g.class$1); + } + $s = 3; continue; + /* } else { */ case 2: + tmp = $subslice(p.tmpClass, 0, 0); + tmp = appendFoldedClass(tmp, g.class$1); + p.tmpClass = tmp; + _r = cleanClass((p === ptrType$4.nil && $throwNilPointerError(), (p.$ptr_tmpClass || (p.$ptr_tmpClass = new ptrType$3(function() { return this.$target.tmpClass; }, function($v) { this.$target.tmpClass = $v; }, p))))); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + tmp = _r; + if (g.sign < 0) { + r = appendNegatedClass(r, tmp); + } else { + r = appendClass(r, tmp); + } + /* } */ case 3: + $s = -1; return r; + /* */ } return; } var $f = {$blk: appendGroup, $c: true, $r, _r, g, p, r, tmp, $s};return $f; }; - $ptrType(error_).prototype.errorf = function errorf(at$1, format, args) { - var args, at$1, err, format; - err = this; - err.desc = $append(err.desc, new errorDesc.ptr(new atPos(((at$1 >> 0))), format, args)); + unicodeTable = function unicodeTable$1(name) { + var _entry, _entry$1, _entry$2, _entry$3, name, t, t$1; + if (name === "Any") { + return [anyTable, anyTable]; + } + t = (_entry = $mapIndex(unicode.Categories,$String.keyFor(name)), _entry !== undefined ? _entry.v : ptrType$5.nil); + if (!(t === ptrType$5.nil)) { + return [t, (_entry$1 = $mapIndex(unicode.FoldCategory,$String.keyFor(name)), _entry$1 !== undefined ? _entry$1.v : ptrType$5.nil)]; + } + t$1 = (_entry$2 = $mapIndex(unicode.Scripts,$String.keyFor(name)), _entry$2 !== undefined ? _entry$2.v : ptrType$5.nil); + if (!(t$1 === ptrType$5.nil)) { + return [t$1, (_entry$3 = $mapIndex(unicode.FoldScript,$String.keyFor(name)), _entry$3 !== undefined ? _entry$3.v : ptrType$5.nil)]; + } + return [ptrType$5.nil, ptrType$5.nil]; }; - $ptrType(Checker).prototype.qualifier = function qualifier(pkg) { - var _entry, _entry$1, check, pkg; - check = this; - if (!(pkg === check.pkg)) { - if (check.pkgPathMap === false) { - check.pkgPathMap = new $global.Map(); - check.seenPkgMap = new $global.Map(); - check.markImports(check.pkg); + $ptrType(parser).prototype.parseUnicodeClass = function parseUnicodeClass(s, r) { + var {_r, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, c, end, err, fold, name, out, p, r, rest, s, seq, sign, t, tab, tmp, $s, $r, $c} = $restore(this, {s, r}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + out = sliceType$1.nil; + rest = ""; + err = $ifaceNil; + p = this; + if ((((p.flags & 128) >>> 0) === 0) || s.length < 2 || !((s.charCodeAt(0) === 92)) || !((s.charCodeAt(1) === 112)) && !((s.charCodeAt(1) === 80))) { + $s = -1; return [out, rest, err]; + } + sign = 1; + if (s.charCodeAt(1) === 80) { + sign = -1; + } + t = $substring(s, 2); + _tuple = nextRune(t); + c = _tuple[0]; + t = _tuple[1]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [out, rest, err]; + } + _tmp = ""; + _tmp$1 = ""; + seq = _tmp; + name = _tmp$1; + if (!((c === 123))) { + seq = $substring(s, 0, (s.length - t.length >> 0)); + name = $substring(seq, 2); + } else { + end = strings.IndexRune(s, 125); + if (end < 0) { + err = checkUTF8(s); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [out, rest, err]; + } + _tmp$2 = sliceType$1.nil; + _tmp$3 = ""; + _tmp$4 = new Error.ptr("invalid character class range", s); + out = _tmp$2; + rest = _tmp$3; + err = _tmp$4; + $s = -1; return [out, rest, err]; } - if (((_entry = $mapIndex(check.pkgPathMap,$String.keyFor(pkg.name)), _entry !== undefined ? _entry.v : false) ? (_entry$1 = $mapIndex(check.pkgPathMap,$String.keyFor(pkg.name)), _entry$1 !== undefined ? _entry$1.v : false).size : 0) > 1) { - return strconv.Quote(pkg.path); + _tmp$5 = $substring(s, 0, (end + 1 >> 0)); + _tmp$6 = $substring(s, (end + 1 >> 0)); + seq = _tmp$5; + t = _tmp$6; + name = $substring(s, 3, end); + err = checkUTF8(name); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [out, rest, err]; } - return pkg.name; } - return ""; + if (!(name === "") && (name.charCodeAt(0) === 94)) { + sign = -sign; + name = $substring(name, 1); + } + _tuple$1 = unicodeTable(name); + tab = _tuple$1[0]; + fold = _tuple$1[1]; + if (tab === ptrType$5.nil) { + _tmp$7 = sliceType$1.nil; + _tmp$8 = ""; + _tmp$9 = new Error.ptr("invalid character class range", seq); + out = _tmp$7; + rest = _tmp$8; + err = _tmp$9; + $s = -1; return [out, rest, err]; + } + /* */ if ((((p.flags & 1) >>> 0) === 0) || fold === ptrType$5.nil) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ((((p.flags & 1) >>> 0) === 0) || fold === ptrType$5.nil) { */ case 1: + if (sign > 0) { + r = appendTable(r, tab); + } else { + r = appendNegatedTable(r, tab); + } + $s = 3; continue; + /* } else { */ case 2: + tmp = $subslice(p.tmpClass, 0, 0); + tmp = appendTable(tmp, tab); + tmp = appendTable(tmp, fold); + p.tmpClass = tmp; + _r = cleanClass((p === ptrType$4.nil && $throwNilPointerError(), (p.$ptr_tmpClass || (p.$ptr_tmpClass = new ptrType$3(function() { return this.$target.tmpClass; }, function($v) { this.$target.tmpClass = $v; }, p))))); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + tmp = _r; + if (sign > 0) { + r = appendClass(r, tmp); + } else { + r = appendNegatedClass(r, tmp); + } + /* } */ case 3: + _tmp$10 = r; + _tmp$11 = t; + _tmp$12 = $ifaceNil; + out = _tmp$10; + rest = _tmp$11; + err = _tmp$12; + $s = -1; return [out, rest, err]; + /* */ } return; } var $f = {$blk: parseUnicodeClass, $c: true, $r, _r, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, c, end, err, fold, name, out, p, r, rest, s, seq, sign, t, tab, tmp, $s};return $f; }; - $ptrType(Checker).prototype.markImports = function markImports(pkg) { - var _entry, _entry$1, _i, _key, _key$1, _key$2, _ref, _tuple, check, forName, imp, ok, pkg; - check = this; - if ((_entry = $mapIndex(check.seenPkgMap,ptrType$1.keyFor(pkg)), _entry !== undefined ? _entry.v : false)) { - return; + $ptrType(parser).prototype.parseClass = function parseClass(s) { + var {_r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, class$1, err, err$1, err$2, first, hi, lo, nclass, nclass$1, nclass$2, nt, nt$1, nt$2, p, re, rest, rng, s, sign, size, t, $s, $r, $c} = $restore(this, {s}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + rest = ""; + err = $ifaceNil; + p = this; + t = $substring(s, 1); + re = p.newRegexp(4); + re.Flags = p.flags; + re.Rune = $subslice(new sliceType$1(re.Rune0), 0, 0); + sign = 1; + if (!(t === "") && (t.charCodeAt(0) === 94)) { + sign = -1; + t = $substring(t, 1); + if (((p.flags & 4) >>> 0) === 0) { + re.Rune = $append(re.Rune, 10, 10); + } } - _key = pkg; (check.seenPkgMap || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$1.keyFor(_key), { k: _key, v: true }); - _tuple = (_entry$1 = $mapIndex(check.pkgPathMap,$String.keyFor(pkg.name)), _entry$1 !== undefined ? [_entry$1.v, true] : [false, false]); - forName = _tuple[0]; - ok = _tuple[1]; - if (!ok) { - forName = new $global.Map(); - _key$1 = pkg.name; (check.pkgPathMap || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$1), { k: _key$1, v: forName }); + class$1 = re.Rune; + first = true; + /* while (true) { */ case 1: + /* if (!(t === "" || !((t.charCodeAt(0) === 93)) || first)) { break; } */ if(!(t === "" || !((t.charCodeAt(0) === 93)) || first)) { $s = 2; continue; } + if (!(t === "") && (t.charCodeAt(0) === 45) && (((p.flags & 64) >>> 0) === 0) && !first && ((t.length === 1) || !((t.charCodeAt(1) === 93)))) { + _tuple = utf8.DecodeRuneInString($substring(t, 1)); + size = _tuple[1]; + _tmp = ""; + _tmp$1 = new Error.ptr("invalid character class range", $substring(t, 0, (1 + size >> 0))); + rest = _tmp; + err = _tmp$1; + $s = -1; return [rest, err]; + } + first = false; + /* */ if (t.length > 2 && (t.charCodeAt(0) === 91) && (t.charCodeAt(1) === 58)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (t.length > 2 && (t.charCodeAt(0) === 91) && (t.charCodeAt(1) === 58)) { */ case 3: + _r = p.parseNamedClass(t, class$1); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple$1 = _r; + nclass = _tuple$1[0]; + nt = _tuple$1[1]; + err$1 = _tuple$1[2]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + _tmp$2 = ""; + _tmp$3 = err$1; + rest = _tmp$2; + err = _tmp$3; + $s = -1; return [rest, err]; + } + if (!(nclass === sliceType$1.nil)) { + _tmp$4 = nclass; + _tmp$5 = nt; + class$1 = _tmp$4; + t = _tmp$5; + /* continue; */ $s = 1; continue; + } + /* } */ case 4: + _r$1 = p.parseUnicodeClass(t, class$1); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$2 = _r$1; + nclass$1 = _tuple$2[0]; + nt$1 = _tuple$2[1]; + err$2 = _tuple$2[2]; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + _tmp$6 = ""; + _tmp$7 = err$2; + rest = _tmp$6; + err = _tmp$7; + $s = -1; return [rest, err]; + } + if (!(nclass$1 === sliceType$1.nil)) { + _tmp$8 = nclass$1; + _tmp$9 = nt$1; + class$1 = _tmp$8; + t = _tmp$9; + /* continue; */ $s = 1; continue; + } + _r$2 = p.parsePerlClassEscape(t, class$1); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$3 = _r$2; + nclass$2 = _tuple$3[0]; + nt$2 = _tuple$3[1]; + if (!(nclass$2 === sliceType$1.nil)) { + _tmp$10 = nclass$2; + _tmp$11 = nt$2; + class$1 = _tmp$10; + t = _tmp$11; + /* continue; */ $s = 1; continue; + } + rng = t; + _tmp$12 = 0; + _tmp$13 = 0; + lo = _tmp$12; + hi = _tmp$13; + _tuple$4 = p.parseClassChar(t, s); + lo = _tuple$4[0]; + t = _tuple$4[1]; + err$2 = _tuple$4[2]; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + _tmp$14 = ""; + _tmp$15 = err$2; + rest = _tmp$14; + err = _tmp$15; + $s = -1; return [rest, err]; + } + hi = lo; + if (t.length >= 2 && (t.charCodeAt(0) === 45) && !((t.charCodeAt(1) === 93))) { + t = $substring(t, 1); + _tuple$5 = p.parseClassChar(t, s); + hi = _tuple$5[0]; + t = _tuple$5[1]; + err$2 = _tuple$5[2]; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + _tmp$16 = ""; + _tmp$17 = err$2; + rest = _tmp$16; + err = _tmp$17; + $s = -1; return [rest, err]; + } + if (hi < lo) { + rng = $substring(rng, 0, (rng.length - t.length >> 0)); + _tmp$18 = ""; + _tmp$19 = new Error.ptr("invalid character class range", rng); + rest = _tmp$18; + err = _tmp$19; + $s = -1; return [rest, err]; + } + } + if (((p.flags & 1) >>> 0) === 0) { + class$1 = appendRange(class$1, lo, hi); + } else { + class$1 = appendFoldedRange(class$1, lo, hi); + } + $s = 1; continue; + case 2: + t = $substring(t, 1); + re.Rune = class$1; + _r$3 = cleanClass((re === ptrType.nil && $throwNilPointerError(), (re.$ptr_Rune || (re.$ptr_Rune = new ptrType$3(function() { return this.$target.Rune; }, function($v) { this.$target.Rune = $v; }, re))))); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + class$1 = _r$3; + if (sign < 0) { + class$1 = negateClass(class$1); } - _key$2 = pkg.path; (forName || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$2), { k: _key$2, v: true }); - _ref = pkg.imports; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - imp = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - check.markImports(imp); - _i++; + re.Rune = class$1; + p.push(re); + _tmp$20 = t; + _tmp$21 = $ifaceNil; + rest = _tmp$20; + err = _tmp$21; + $s = -1; return [rest, err]; + /* */ } return; } var $f = {$blk: parseClass, $c: true, $r, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, class$1, err, err$1, err$2, first, hi, lo, nclass, nclass$1, nclass$2, nt, nt$1, nt$2, p, re, rest, rng, s, sign, size, t, $s};return $f; + }; + cleanClass = function cleanClass$1(rp) { + var {_tmp, _tmp$1, hi, i, lo, r, rp, w, x, x$1, x$2, x$3, x$4, x$5, $s, $r, $c} = $restore(this, {rp}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = sort.Sort((x = new ranges.ptr(rp), new x.constructor.elem(x))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + r = rp.$get(); + if (r.$length < 2) { + $s = -1; return r; + } + w = 2; + i = 2; + while (true) { + if (!(i < r.$length)) { break; } + _tmp = ((i < 0 || i >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + i]); + _tmp$1 = (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$1])); + lo = _tmp; + hi = _tmp$1; + if (lo <= ((x$2 = w - 1 >> 0, ((x$2 < 0 || x$2 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$2])) + 1 >> 0)) { + if (hi > (x$3 = w - 1 >> 0, ((x$3 < 0 || x$3 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$3]))) { + (x$4 = w - 1 >> 0, ((x$4 < 0 || x$4 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$4] = hi)); + } + i = i + (2) >> 0; + continue; + } + ((w < 0 || w >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + w] = lo); + (x$5 = w + 1 >> 0, ((x$5 < 0 || x$5 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$5] = hi)); + w = w + (2) >> 0; + i = i + (2) >> 0; } + $s = -1; return $subslice(r, 0, w); + /* */ } return; } var $f = {$blk: cleanClass$1, $c: true, $r, _tmp, _tmp$1, hi, i, lo, r, rp, w, x, x$1, x$2, x$3, x$4, x$5, $s};return $f; }; - $ptrType(Checker).prototype.sprintf = function sprintf$1(format, args) { - var {$24r, _r$1, args, check, format, fset, qf, $s, $r, $c} = $restore(this, {format, args}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - fset = ptrType$24.nil; - qf = $throwNilPointerError; - if (!(check === ptrType$5.nil)) { - fset = check.fset; - qf = $methodVal(check, "qualifier"); + appendLiteral = function appendLiteral$1(r, x, flags) { + var flags, r, x; + if (!((((flags & 1) >>> 0) === 0))) { + return appendFoldedRange(r, x, x); } - _r$1 = sprintf(fset, qf, false, format, args); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: sprintf$1, $c: true, $r, $24r, _r$1, args, check, format, fset, qf, $s};return $f; + return appendRange(r, x, x); }; - sprintf = function sprintf$2(fset, qf, tpSubscripts, format, args) { - var {$24r, _i, _i$1, _i$2, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, _ref$2, _ref$3, a, a$1, a$2, a$3, a$4, a$5, a$6, a$7, a$8, a$9, arg, args, buf, buf$1, buf$2, buf$3, format, fset, i, i$1, i$2, qf, tpSubscripts, w, w$1, w$2, x, x$1, $s, $r, $c} = $restore(this, {fset, qf, tpSubscripts, format, args}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ref = args; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - buf = [buf]; - buf$1 = [buf$1]; - buf$2 = [buf$2]; - buf$3 = [buf$3]; - i = _i; - arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _ref$1 = arg; - /* */ if (_ref$1 === $ifaceNil) { $s = 3; continue; } - /* */ if ($assertType(_ref$1, operand, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref$1, ptrType$62, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref$1, token.Pos, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref$1, ast.Expr, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref$1, sliceType$11, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref$1, Object, true)[1]) { $s = 9; continue; } - /* */ if ($assertType(_ref$1, Type, true)[1]) { $s = 10; continue; } - /* */ if ($assertType(_ref$1, sliceType$2, true)[1]) { $s = 11; continue; } - /* */ if ($assertType(_ref$1, sliceType$9, true)[1]) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (_ref$1 === $ifaceNil) { */ case 3: - a = _ref$1; - arg = new $String(""); - $s = 13; continue; - /* } else if ($assertType(_ref$1, operand, true)[1]) { */ case 4: - a$1 = $clone(_ref$1.$val, operand); - $panic(new $String("got operand instead of *operand")); - $s = 13; continue; - /* } else if ($assertType(_ref$1, ptrType$62, true)[1]) { */ case 5: - a$2 = _ref$1.$val; - _r$1 = operandString(a$2, qf); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - arg = new $String(_r$1); - $s = 13; continue; - /* } else if ($assertType(_ref$1, token.Pos, true)[1]) { */ case 6: - a$3 = _ref$1.$val; - /* */ if (!(fset === ptrType$24.nil)) { $s = 15; continue; } - /* */ $s = 16; continue; - /* if (!(fset === ptrType$24.nil)) { */ case 15: - _r$2 = fset.Position(a$3); /* */ $s = 17; case 17: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = $clone(_r$2, token.Position).String(); /* */ $s = 18; case 18: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - arg = new $String(_r$3); - /* } */ case 16: - $s = 13; continue; - /* } else if ($assertType(_ref$1, ast.Expr, true)[1]) { */ case 7: - a$4 = _ref$1; - _r$4 = ExprString(a$4); /* */ $s = 19; case 19: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - arg = new $String(_r$4); - $s = 13; continue; - /* } else if ($assertType(_ref$1, sliceType$11, true)[1]) { */ case 8: - a$5 = _ref$1.$val; - buf[0] = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); - buf[0].WriteByte(91); - $r = writeExprList(buf[0], a$5); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - buf[0].WriteByte(93); - arg = new $String(buf[0].String()); - $s = 13; continue; - /* } else if ($assertType(_ref$1, Object, true)[1]) { */ case 9: - a$6 = _ref$1; - _r$5 = ObjectString(a$6, qf); /* */ $s = 21; case 21: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - arg = new $String(_r$5); - $s = 13; continue; - /* } else if ($assertType(_ref$1, Type, true)[1]) { */ case 10: - a$7 = _ref$1; - buf$1[0] = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); - w = newTypeWriter(buf$1[0], qf); - w.tpSubscripts = tpSubscripts; - $r = w.typ(a$7); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - arg = new $String(buf$1[0].String()); - $s = 13; continue; - /* } else if ($assertType(_ref$1, sliceType$2, true)[1]) { */ case 11: - a$8 = _ref$1.$val; - buf$2[0] = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); - w$1 = newTypeWriter(buf$2[0], qf); - w$1.tpSubscripts = tpSubscripts; - buf$2[0].WriteByte(91); - _ref$2 = a$8; - _i$1 = 0; - /* while (true) { */ case 23: - /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 24; continue; } - i$1 = _i$1; - x = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); - if (i$1 > 0) { - buf$2[0].WriteString(", "); + appendRange = function appendRange$1(r, lo, hi) { + var _tmp, _tmp$1, hi, i, lo, n, r, rhi, rlo, x, x$1, x$2, x$3; + n = r.$length; + i = 2; + while (true) { + if (!(i <= 4)) { break; } + if (n >= i) { + _tmp = (x = n - i >> 0, ((x < 0 || x >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x])); + _tmp$1 = (x$1 = (n - i >> 0) + 1 >> 0, ((x$1 < 0 || x$1 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$1])); + rlo = _tmp; + rhi = _tmp$1; + if (lo <= (rhi + 1 >> 0) && rlo <= (hi + 1 >> 0)) { + if (lo < rlo) { + (x$2 = n - i >> 0, ((x$2 < 0 || x$2 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$2] = lo)); } - $r = w$1.typ(x); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$1++; - $s = 23; continue; - case 24: - buf$2[0].WriteByte(93); - arg = new $String(buf$2[0].String()); - $s = 13; continue; - /* } else if ($assertType(_ref$1, sliceType$9, true)[1]) { */ case 12: - a$9 = _ref$1.$val; - buf$3[0] = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); - w$2 = newTypeWriter(buf$3[0], qf); - w$2.tpSubscripts = tpSubscripts; - buf$3[0].WriteByte(91); - _ref$3 = a$9; - _i$2 = 0; - /* while (true) { */ case 26: - /* if (!(_i$2 < _ref$3.$length)) { break; } */ if(!(_i$2 < _ref$3.$length)) { $s = 27; continue; } - i$2 = _i$2; - x$1 = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]); - if (i$2 > 0) { - buf$3[0].WriteString(", "); + if (hi > rhi) { + (x$3 = (n - i >> 0) + 1 >> 0, ((x$3 < 0 || x$3 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$3] = hi)); } - $r = w$2.typ(x$1); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$2++; - $s = 26; continue; - case 27: - buf$3[0].WriteByte(93); - arg = new $String(buf$3[0].String()); - /* } */ case 13: - ((i < 0 || i >= args.$length) ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + i] = arg); - _i++; - $s = 1; continue; - case 2: - _r$6 = fmt.Sprintf(format, args); /* */ $s = 29; case 29: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - $24r = _r$6; - $s = 30; case 30: return $24r; - /* */ } return; } var $f = {$blk: sprintf$2, $c: true, $r, $24r, _i, _i$1, _i$2, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, _ref$2, _ref$3, a, a$1, a$2, a$3, a$4, a$5, a$6, a$7, a$8, a$9, arg, args, buf, buf$1, buf$2, buf$3, format, fset, i, i$1, i$2, qf, tpSubscripts, w, w$1, w$2, x, x$1, $s};return $f; - }; - $ptrType(Checker).prototype.trace = function trace(pos$1, format, args) { - var {_arg, _arg$1, _arg$2, _r$1, _r$2, _r$3, args, check, format, pos$1, x, $s, $r, $c} = $restore(this, {pos$1, format, args}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = check.fset.Position(pos$1); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _arg = (x = _r$1, new x.constructor.elem(x)); - _arg$1 = new $String(strings.Repeat(". ", check.indent)); - _r$2 = sprintf(check.fset, $methodVal(check, "qualifier"), true, format, args); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _arg$2 = new $String(_r$2); - _r$3 = fmt.Printf("%s:\t%s%s\n", new sliceType$6([_arg, _arg$1, _arg$2])); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$3; - $s = -1; return; - /* */ } return; } var $f = {$blk: trace, $c: true, $r, _arg, _arg$1, _arg$2, _r$1, _r$2, _r$3, args, check, format, pos$1, x, $s};return $f; - }; - $ptrType(Checker).prototype.dump = function dump(format, args) { - var {_r$1, _r$2, args, check, format, $s, $r, $c} = $restore(this, {format, args}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = sprintf(check.fset, $methodVal(check, "qualifier"), true, format, args); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = fmt.Println(new sliceType$6([new $String(_r$1)])); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - $s = -1; return; - /* */ } return; } var $f = {$blk: dump, $c: true, $r, _r$1, _r$2, args, check, format, $s};return $f; + return r; + } + } + i = i + (2) >> 0; + } + return $append(r, lo, hi); }; - $ptrType(Checker).prototype.report = function report(errp) { - var {_1, _r$1, _r$2, _r$3, check, e, err, errp, f, isInvalidErr, msg$1, msg$2, pos$1, span, span$1, x, x$1, $s, $r, $c} = $restore(this, {errp}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - if (errp.empty()) { - $panic(new $String("empty error details")); + appendFoldedRange = function appendFoldedRange$1(r, lo, hi) { + var c, f, hi, lo, r; + if (lo <= 65 && hi >= 125251) { + return appendRange(r, lo, hi); } - _r$1 = errp.msg(check.fset, $methodVal(check, "qualifier")); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - msg$1 = _r$1; - _1 = errp.code; - if (_1 === (-1)) { - msg$1 = "invalid AST: " + msg$1; - } else if (_1 === (0)) { - $panic(new $String("no error code provided")); + if (hi < 65 || lo > 125251) { + return appendRange(r, lo, hi); } - _r$2 = spanOf((x = errp.desc, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).posn); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - span = $clone(_r$2, posSpan); - e = new Error.ptr(check.fset, span.pos, msg$1, errp.soft, errp.code, span.start, span.end); - isInvalidErr = strings.Index(e.Msg, "invalid operand") > 0 || strings.Index(e.Msg, "invalid type") > 0; - if (!($interfaceIsEqual(check.firstErr, $ifaceNil)) && isInvalidErr) { - $s = -1; return; + if (lo < 65) { + r = appendRange(r, lo, 64); + lo = 65; } - e.Msg = stripAnnotations(e.Msg); - /* */ if (!($interfaceIsEqual(check.environment.errpos, $ifaceNil))) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!($interfaceIsEqual(check.environment.errpos, $ifaceNil))) { */ case 3: - _r$3 = spanOf(check.environment.errpos); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - span$1 = $clone(_r$3, posSpan); - e.Pos = span$1.pos; - e.go116start = span$1.start; - e.go116end = span$1.end; - /* } */ case 4: - err = $clone(e, Error); - if ($interfaceIsEqual(check.firstErr, $ifaceNil)) { - check.firstErr = new err.constructor.elem(err); + if (hi > 125251) { + r = appendRange(r, 125252, hi); + hi = 125251; } - /* */ if (false) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (false) { */ case 6: - pos$1 = e.Pos; - msg$2 = e.Msg; - $r = check.trace(pos$1, "ERROR: %s", new sliceType$6([new $String(msg$2)])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 7: - f = check.conf.Error; - if (f === $throwNilPointerError) { - $panic((x$1 = new bailout.ptr(), new x$1.constructor.elem(x$1))); + c = lo; + while (true) { + if (!(c <= hi)) { break; } + r = appendRange(r, c, c); + f = unicode.SimpleFold(c); + while (true) { + if (!(!((f === c)))) { break; } + r = appendRange(r, f, f); + f = unicode.SimpleFold(f); + } + c = c + (1) >> 0; } - $r = f(new err.constructor.elem(err)); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: report, $c: true, $r, _1, _r$1, _r$2, _r$3, check, e, err, errp, f, isInvalidErr, msg$1, msg$2, pos$1, span, span$1, x, x$1, $s};return $f; - }; - newErrorf = function newErrorf$1(at$1, code, format, args) { - var args, at$1, code, format; - return new error_.ptr(new sliceType$31([$clone(new errorDesc.ptr(at$1, format, args), errorDesc)]), code, false); - }; - $ptrType(Checker).prototype.error = function error$1(at$1, code, msg$1) { - var {at$1, check, code, msg$1, $s, $r, $c} = $restore(this, {at$1, code, msg$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - $r = check.report(newErrorf(at$1, code, msg$1, sliceType$6.nil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: error$1, $c: true, $r, at$1, check, code, msg$1, $s};return $f; - }; - $ptrType(Checker).prototype.errorf = function errorf$1(at$1, code, format, args) { - var {args, at$1, check, code, format, $s, $r, $c} = $restore(this, {at$1, code, format, args}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - $r = check.report(newErrorf(at$1, code, format, args)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: errorf$1, $c: true, $r, args, at$1, check, code, format, $s};return $f; - }; - $ptrType(Checker).prototype.softErrorf = function softErrorf(at$1, code, format, args) { - var {args, at$1, check, code, err, format, $s, $r, $c} = $restore(this, {at$1, code, format, args}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - err = newErrorf(at$1, code, format, args); - err.soft = true; - $r = check.report(err); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: softErrorf, $c: true, $r, args, at$1, check, code, err, format, $s};return $f; - }; - $ptrType(Checker).prototype.versionErrorf = function versionErrorf(at$1, goVersion, format, args) { - var {_r$1, args, at$1, check, err, format, goVersion, msg$1, $s, $r, $c} = $restore(this, {at$1, goVersion, format, args}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = check.sprintf(format, args); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - msg$1 = _r$1; - err = ptrType$104.nil; - err = newErrorf(at$1, 135, "%s requires %s or later", new sliceType$6([new $String(msg$1), new $String(goVersion)])); - $r = check.report(err); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: versionErrorf, $c: true, $r, _r$1, args, at$1, check, err, format, goVersion, msg$1, $s};return $f; - }; - $ptrType(posSpan).prototype.Pos = function Pos$4() { - var e; - e = this; - return e.pos; - }; - posSpan.prototype.Pos = function(...$args) { return this.$val.Pos(...$args); }; - inNode = function inNode$1(node, pos$1) { - var {_r$1, _r$2, _tmp, _tmp$1, end, node, pos$1, start, $s, $r, $c} = $restore(this, {node, pos$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = node.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tmp = _r$1; - _r$2 = node.End(); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tmp$1 = _r$2; - start = _tmp; - end = _tmp$1; - /* */ if (false) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (false) { */ case 3: - $r = assert(start <= pos$1 && pos$1 < end); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 4: - $s = -1; return new posSpan.ptr(start, pos$1, end); - /* */ } return; } var $f = {$blk: inNode$1, $c: true, $r, _r$1, _r$2, _tmp, _tmp$1, end, node, pos$1, start, $s};return $f; + return r; }; - atPos.prototype.Pos = function Pos$5() { - var s; - s = this.$val; - return ((s >> 0)); + appendClass = function appendClass$1(r, x) { + var i, r, x, x$1; + i = 0; + while (true) { + if (!(i < x.$length)) { break; } + r = appendRange(r, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]), (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1]))); + i = i + (2) >> 0; + } + return r; }; - $ptrType(atPos).prototype.Pos = function(...$args) { return new atPos(this.$get()).Pos(...$args); }; - spanOf = function spanOf$1(at$1) { - var {$24r, $24r$1, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, at$1, pos$1, pos$2, pos$3, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {at$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ref = at$1; - /* */ if (_ref === $ifaceNil) { $s = 1; continue; } - /* */ if ($assertType(_ref, posSpan, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ast.Node, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$62, true)[1]) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_ref === $ifaceNil) { */ case 1: - x = _ref; - $panic(new $String("nil positioner")); - $s = 6; continue; - /* } else if ($assertType(_ref, posSpan, true)[1]) { */ case 2: - x$1 = $clone(_ref.$val, posSpan); - $s = -1; return x$1; - /* } else if ($assertType(_ref, ast.Node, true)[1]) { */ case 3: - x$2 = _ref; - _r$1 = x$2.Pos(); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - pos$1 = _r$1; - _r$2 = x$2.End(); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = new posSpan.ptr(pos$1, pos$1, _r$2); - $s = 9; case 9: return $24r; - /* } else if ($assertType(_ref, ptrType$62, true)[1]) { */ case 4: - x$3 = _ref.$val; - /* */ if (!($interfaceIsEqual(x$3.expr, $ifaceNil))) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (!($interfaceIsEqual(x$3.expr, $ifaceNil))) { */ case 10: - _r$3 = x$3.Pos(); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - pos$2 = _r$3; - _r$4 = x$3.expr.End(); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $24r$1 = new posSpan.ptr(pos$2, pos$2, _r$4); - $s = 14; case 14: return $24r$1; - /* } */ case 11: - $s = -1; return new posSpan.ptr(0, 0, 0); - /* } else { */ case 5: - x$4 = _ref; - _r$5 = at$1.Pos(); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - pos$3 = _r$5; - $s = -1; return new posSpan.ptr(pos$3, pos$3, pos$3); - /* } */ case 6: - $s = -1; return new posSpan.ptr(0, 0, 0); - /* */ } return; } var $f = {$blk: spanOf$1, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, at$1, pos$1, pos$2, pos$3, x, x$1, x$2, x$3, x$4, $s};return $f; + appendFoldedClass = function appendFoldedClass$1(r, x) { + var i, r, x, x$1; + i = 0; + while (true) { + if (!(i < x.$length)) { break; } + r = appendFoldedRange(r, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]), (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1]))); + i = i + (2) >> 0; + } + return r; }; - stripAnnotations = function stripAnnotations$1(s) { - var _i, _ref, _rune, buf, r, s; - buf = new strings.Builder.ptr(ptrType$53.nil, sliceType$14.nil); - _ref = s; - _i = 0; + appendNegatedClass = function appendNegatedClass$1(r, x) { + var _tmp, _tmp$1, hi, i, lo, nextLo, r, x, x$1; + nextLo = 0; + i = 0; while (true) { - if (!(_i < _ref.length)) { break; } - _rune = $decodeRune(_ref, _i); - r = _rune[0]; - if (r < 8320 || 8330 <= r) { - buf.WriteRune(r); + if (!(i < x.$length)) { break; } + _tmp = ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]); + _tmp$1 = (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + lo = _tmp; + hi = _tmp$1; + if (nextLo <= (lo - 1 >> 0)) { + r = appendRange(r, nextLo, lo - 1 >> 0); } - _i += _rune[1]; + nextLo = hi + 1 >> 0; + i = i + (2) >> 0; } - if (buf.Len() < s.length) { - return buf.String(); + if (nextLo <= 1114111) { + r = appendRange(r, nextLo, 1114111); } - return s; - }; - $ptrType(Checker).prototype.reportAltDecl = function reportAltDecl(obj) { - var {_arg, _arg$1, _r$1, _r$2, check, obj, pos$1, $s, $r, $c} = $restore(this, {obj}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = obj.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - pos$1 = _r$1; - /* */ if (new token.Pos(pos$1).IsValid()) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (new token.Pos(pos$1).IsValid()) { */ case 2: - _arg = obj; - _r$2 = obj.Name(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _arg$1 = new $String(_r$2); - $r = check.errorf(_arg, 10, "\tother declaration of %s", new sliceType$6([_arg$1])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 3: - $s = -1; return; - /* */ } return; } var $f = {$blk: reportAltDecl, $c: true, $r, _arg, _arg$1, _r$1, _r$2, check, obj, pos$1, $s};return $f; - }; - $ptrType(Checker).prototype.declare = function declare(scope, id, obj, pos$1) { - var {_arg, _arg$1, _r$1, _r$2, _r$3, alt, check, id, obj, pos$1, scope, $s, $r, $c} = $restore(this, {scope, id, obj, pos$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = obj.Name(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (!(_r$1 === "_")) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(_r$1 === "_")) { */ case 1: - _r$2 = scope.Insert(obj); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - alt = _r$2; - /* */ if (!($interfaceIsEqual(alt, $ifaceNil))) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (!($interfaceIsEqual(alt, $ifaceNil))) { */ case 5: - _arg = obj; - _r$3 = obj.Name(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _arg$1 = new $String(_r$3); - $r = check.errorf(_arg, 10, "%s redeclared in this block", new sliceType$6([_arg$1])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.reportAltDecl(alt); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 6: - $r = obj.setScopePos(pos$1); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - /* */ if (!(id === ptrType$30.nil)) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (!(id === ptrType$30.nil)) { */ case 11: - $r = check.recordDef(id, obj); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 12: - $s = -1; return; - /* */ } return; } var $f = {$blk: declare, $c: true, $r, _arg, _arg$1, _r$1, _r$2, _r$3, alt, check, id, obj, pos$1, scope, $s};return $f; + return r; }; - pathString = function pathString$1(path) { - var {_i, _r$1, _ref, i, p, path, s, $s, $r, $c} = $restore(this, {path}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - s = ""; - _ref = path; + appendTable = function appendTable$1(r, x) { + var _i, _i$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, c, c$1, hi, hi$1, lo, lo$1, r, stride, stride$1, x, xr, xr$1; + _ref = x.R16; _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - p = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (i > 0) { - s = s + ("->"); + while (true) { + if (!(_i < _ref.$length)) { break; } + xr = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), unicode.Range16); + _tmp = ((xr.Lo >> 0)); + _tmp$1 = ((xr.Hi >> 0)); + _tmp$2 = ((xr.Stride >> 0)); + lo = _tmp; + hi = _tmp$1; + stride = _tmp$2; + if (stride === 1) { + r = appendRange(r, lo, hi); + _i++; + continue; + } + c = lo; + while (true) { + if (!(c <= hi)) { break; } + r = appendRange(r, c, c); + c = c + (stride) >> 0; } - _r$1 = p.Name(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - s = s + (_r$1); _i++; - $s = 1; continue; - case 2: - $s = -1; return s; - /* */ } return; } var $f = {$blk: pathString$1, $c: true, $r, _i, _r$1, _ref, i, p, path, s, $s};return $f; - }; - $ptrType(Checker).prototype.objDecl = function objDecl(obj, def$2) { - var {_1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _entry, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _v, _v$1, check, d, def$2, obj, obj$1, obj$10, obj$2, obj$3, obj$4, obj$5, obj$6, obj$7, obj$8, obj$9, $s, $deferred, $r, $c} = $restore(this, {obj, def$2}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - check = [check]; - obj = [obj]; - check[0] = this; - if (!(false)) { _v = false; $s = 3; continue s; } - _r$1 = obj[0].Type(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = $interfaceIsEqual(_r$1, $ifaceNil); case 3: - /* */ if (_v) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (_v) { */ case 1: - /* */ if (check[0].indent === 0) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (check[0].indent === 0) { */ case 5: - _r$2 = fmt.Println(sliceType$6.nil); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - /* } */ case 6: - _r$3 = obj[0].Pos(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _arg = _r$3; - _arg$1 = obj[0]; - _r$4 = obj[0].color(); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _arg$2 = new color(_r$4); - _r$5 = pathString(check[0].objPath); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _arg$3 = new $String(_r$5); - $r = check[0].trace(_arg, "-- checking %s (%s, objPath = %s)", new sliceType$6([_arg$1, _arg$2, _arg$3])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - check[0].indent = check[0].indent + (1) >> 0; - $deferred.push([(function(check, obj) { return function Checker·objDecl·func1() { - var {_arg$4, _arg$5, _arg$6, _r$6, _r$7, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check[0].indent = check[0].indent - (1) >> 0; - _r$6 = obj[0].Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _arg$4 = _r$6; - _arg$5 = obj[0]; - _r$7 = obj[0].color(); /* */ $s = 2; case 2: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _arg$6 = new color(_r$7); - $r = check[0].trace(_arg$4, "=> %s (%s)", new sliceType$6([_arg$5, _arg$6])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·objDecl·func1, $c: true, $r, _arg$4, _arg$5, _arg$6, _r$6, _r$7, $s};return $f; - }; })(check, obj), []]); - /* } */ case 2: - _r$6 = obj[0].color(); /* */ $s = 15; case 15: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - if (!(_r$6 === 0)) { _v$1 = false; $s = 14; continue s; } - _r$7 = obj[0].Type(); /* */ $s = 16; case 16: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _v$1 = !($interfaceIsEqual(_r$7, $ifaceNil)); case 14: - /* */ if (_v$1) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (_v$1) { */ case 12: - $r = obj[0].setColor(1); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 18; case 18: return; - /* } */ case 13: - _r$8 = obj[0].color(); /* */ $s = 20; case 20: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _1 = _r$8; - /* */ if (_1 === (0)) { $s = 21; continue; } - /* */ if (_1 === (1)) { $s = 22; continue; } - /* */ if (_1 === (2)) { $s = 23; continue; } - /* */ $s = 24; continue; - /* if (_1 === (0)) { */ case 21: - _r$9 = obj[0].Type(); /* */ $s = 26; case 26: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - $r = assert($interfaceIsEqual(_r$9, $ifaceNil)); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = obj[0].setColor(2 + ((check[0].push(obj[0]) >>> 0)) >>> 0); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([(function(check, obj) { return function Checker·objDecl·func2() { - var {$s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = check[0].pop().setColor(1); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·objDecl·func2, $c: true, $r, $s};return $f; - }; })(check, obj), []]); - $s = 25; continue; - /* } else if (_1 === (1)) { */ case 22: - _r$10 = obj[0].Type(); /* */ $s = 29; case 29: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - $r = assert(!($interfaceIsEqual(_r$10, $ifaceNil))); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 31; case 31: return; - /* } else if (_1 === (2)) { */ case 23: - _ref = obj[0]; - /* */ if ($assertType(_ref, ptrType$32, true)[1]) { $s = 32; continue; } - /* */ if ($assertType(_ref, ptrType$16, true)[1]) { $s = 33; continue; } - /* */ if ($assertType(_ref, ptrType$17, true)[1]) { $s = 34; continue; } - /* */ if ($assertType(_ref, ptrType$2, true)[1]) { $s = 35; continue; } - /* */ $s = 36; continue; - /* if ($assertType(_ref, ptrType$32, true)[1]) { */ case 32: - obj$1 = _ref.$val; - _r$11 = check[0].validCycle(obj$1); /* */ $s = 40; case 40: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - /* */ if (!_r$11 || $interfaceIsEqual(obj$1.object.typ, $ifaceNil)) { $s = 38; continue; } - /* */ $s = 39; continue; - /* if (!_r$11 || $interfaceIsEqual(obj$1.object.typ, $ifaceNil)) { */ case 38: - obj$1.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - /* } */ case 39: - $s = 37; continue; - /* } else if ($assertType(_ref, ptrType$16, true)[1]) { */ case 33: - obj$2 = _ref.$val; - _r$12 = check[0].validCycle(obj$2); /* */ $s = 43; case 43: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - /* */ if (!_r$12 || $interfaceIsEqual(obj$2.object.typ, $ifaceNil)) { $s = 41; continue; } - /* */ $s = 42; continue; - /* if (!_r$12 || $interfaceIsEqual(obj$2.object.typ, $ifaceNil)) { */ case 41: - obj$2.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - /* } */ case 42: - $s = 37; continue; - /* } else if ($assertType(_ref, ptrType$17, true)[1]) { */ case 34: - obj$3 = _ref.$val; - _r$13 = check[0].validCycle(obj$3); /* */ $s = 46; case 46: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - /* */ if (!_r$13) { $s = 44; continue; } - /* */ $s = 45; continue; - /* if (!_r$13) { */ case 44: - obj$3.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - /* } */ case 45: - $s = 37; continue; - /* } else if ($assertType(_ref, ptrType$2, true)[1]) { */ case 35: - obj$4 = _ref.$val; - _r$14 = check[0].validCycle(obj$4); /* */ $s = 49; case 49: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - /* */ if (!_r$14) { $s = 47; continue; } - /* */ $s = 48; continue; - /* if (!_r$14) { */ case 47: - /* } */ case 48: - $s = 37; continue; - /* } else { */ case 36: - obj$5 = _ref; - unreachable(); - /* } */ case 37: - _r$15 = obj[0].Type(); /* */ $s = 50; case 50: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - $r = assert(!($interfaceIsEqual(_r$15, $ifaceNil))); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 52; case 52: return; - /* } else { */ case 24: - _ref$1 = obj[0]; - /* */ if ($assertType(_ref$1, ptrType$32, true)[1]) { $s = 53; continue; } - /* */ if ($assertType(_ref$1, ptrType$16, true)[1]) { $s = 54; continue; } - /* */ if ($assertType(_ref$1, ptrType$17, true)[1]) { $s = 55; continue; } - /* */ if ($assertType(_ref$1, ptrType$2, true)[1]) { $s = 56; continue; } - /* */ $s = 57; continue; - /* if ($assertType(_ref$1, ptrType$32, true)[1]) { */ case 53: - obj$1 = _ref$1.$val; - _r$16 = check[0].validCycle(obj$1); /* */ $s = 61; case 61: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - /* */ if (!_r$16 || $interfaceIsEqual(obj$1.object.typ, $ifaceNil)) { $s = 59; continue; } - /* */ $s = 60; continue; - /* if (!_r$16 || $interfaceIsEqual(obj$1.object.typ, $ifaceNil)) { */ case 59: - obj$1.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - /* } */ case 60: - $s = 58; continue; - /* } else if ($assertType(_ref$1, ptrType$16, true)[1]) { */ case 54: - obj$2 = _ref$1.$val; - _r$17 = check[0].validCycle(obj$2); /* */ $s = 64; case 64: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - /* */ if (!_r$17 || $interfaceIsEqual(obj$2.object.typ, $ifaceNil)) { $s = 62; continue; } - /* */ $s = 63; continue; - /* if (!_r$17 || $interfaceIsEqual(obj$2.object.typ, $ifaceNil)) { */ case 62: - obj$2.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - /* } */ case 63: - $s = 58; continue; - /* } else if ($assertType(_ref$1, ptrType$17, true)[1]) { */ case 55: - obj$3 = _ref$1.$val; - _r$18 = check[0].validCycle(obj$3); /* */ $s = 67; case 67: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - /* */ if (!_r$18) { $s = 65; continue; } - /* */ $s = 66; continue; - /* if (!_r$18) { */ case 65: - obj$3.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - /* } */ case 66: - $s = 58; continue; - /* } else if ($assertType(_ref$1, ptrType$2, true)[1]) { */ case 56: - obj$4 = _ref$1.$val; - _r$19 = check[0].validCycle(obj$4); /* */ $s = 70; case 70: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - /* */ if (!_r$19) { $s = 68; continue; } - /* */ $s = 69; continue; - /* if (!_r$19) { */ case 68: - /* } */ case 69: - $s = 58; continue; - /* } else { */ case 57: - obj$5 = _ref$1; - unreachable(); - /* } */ case 58: - _r$20 = obj[0].Type(); /* */ $s = 71; case 71: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - $r = assert(!($interfaceIsEqual(_r$20, $ifaceNil))); /* */ $s = 72; case 72: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 73; case 73: return; - /* } */ case 25: - case 19: - d = (_entry = $mapIndex(check[0].objMap,Object.keyFor(obj[0])), _entry !== undefined ? _entry.v : ptrType$58.nil); - /* */ if (d === ptrType$58.nil) { $s = 74; continue; } - /* */ $s = 75; continue; - /* if (d === ptrType$58.nil) { */ case 74: - _r$21 = obj[0].Pos(); /* */ $s = 76; case 76: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } - _arg$4 = new token.Pos(_r$21); - _arg$5 = obj[0]; - $r = check[0].dump("%v: %s should have been declared", new sliceType$6([_arg$4, _arg$5])); /* */ $s = 77; case 77: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - unreachable(); - /* } */ case 75: - $deferred.push([(function(check, obj) { return function Checker·objDecl·func3(env) { - var env; - environment.copy(check[0].environment, env); - }; })(check, obj), [$clone(check[0].environment, environment)]]); - environment.copy(check[0].environment, new environment.ptr(ptrType$58.nil, d.file, 0, $ifaceNil, $ifaceNil, false, ptrType$27.nil, false, false, false)); - _ref$2 = obj[0]; - /* */ if ($assertType(_ref$2, ptrType$32, true)[1]) { $s = 78; continue; } - /* */ if ($assertType(_ref$2, ptrType$16, true)[1]) { $s = 79; continue; } - /* */ if ($assertType(_ref$2, ptrType$17, true)[1]) { $s = 80; continue; } - /* */ if ($assertType(_ref$2, ptrType$2, true)[1]) { $s = 81; continue; } - /* */ $s = 82; continue; - /* if ($assertType(_ref$2, ptrType$32, true)[1]) { */ case 78: - obj$6 = _ref$2.$val; - check[0].environment.decl = d; - $r = check[0].constDecl(obj$6, d.vtyp, d.init, d.inherited); /* */ $s = 84; case 84: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 83; continue; - /* } else if ($assertType(_ref$2, ptrType$16, true)[1]) { */ case 79: - obj$7 = _ref$2.$val; - check[0].environment.decl = d; - $r = check[0].varDecl(obj$7, d.lhs, d.vtyp, d.init); /* */ $s = 85; case 85: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 83; continue; - /* } else if ($assertType(_ref$2, ptrType$17, true)[1]) { */ case 80: - obj$8 = _ref$2.$val; - $r = check[0].typeDecl(obj$8, d.tdecl, def$2); /* */ $s = 86; case 86: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].collectMethods(obj$8); /* */ $s = 87; case 87: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 83; continue; - /* } else if ($assertType(_ref$2, ptrType$2, true)[1]) { */ case 81: - obj$9 = _ref$2.$val; - $r = check[0].funcDecl(obj$9, d); /* */ $s = 88; case 88: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 83; continue; - /* } else { */ case 82: - obj$10 = _ref$2; - unreachable(); - /* } */ case 83: - $s = -1; return; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: objDecl, $c: true, $r, _1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _entry, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _v, _v$1, check, d, def$2, obj, obj$1, obj$10, obj$2, obj$3, obj$4, obj$5, obj$6, obj$7, obj$8, obj$9, $s, $deferred};return $f; } } + } + _ref$1 = x.R32; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + xr$1 = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), unicode.Range32); + _tmp$3 = ((xr$1.Lo >> 0)); + _tmp$4 = ((xr$1.Hi >> 0)); + _tmp$5 = ((xr$1.Stride >> 0)); + lo$1 = _tmp$3; + hi$1 = _tmp$4; + stride$1 = _tmp$5; + if (stride$1 === 1) { + r = appendRange(r, lo$1, hi$1); + _i$1++; + continue; + } + c$1 = lo$1; + while (true) { + if (!(c$1 <= hi$1)) { break; } + r = appendRange(r, c$1, c$1); + c$1 = c$1 + (stride$1) >> 0; + } + _i$1++; + } + return r; }; - $ptrType(Checker).prototype.validCycle = function validCycle(obj) { - var {$24r, $24r$1, $24r$2, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _entry, _entry$1, _i, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _v, alias, check, cycle, d, inObjMap, info, isPkgObj, ndef, nval, obj, obj$1, obj$2, obj$3, obj$4, obj$5, start, tparCycle, valid, $s, $deferred, $r, $c} = $restore(this, {obj}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - check = [check]; - obj = [obj]; - valid = [valid]; - valid[0] = false; - check[0] = this; - /* */ if (false) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (false) { */ case 1: - info = (_entry = $mapIndex(check[0].objMap,Object.keyFor(obj[0])), _entry !== undefined ? _entry.v : ptrType$58.nil); - inObjMap = !(info === ptrType$58.nil) && (info.fdecl === ptrType$87.nil || info.fdecl.Recv === ptrType$49.nil); - _r$1 = obj[0].Parent(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - isPkgObj = _r$1 === check[0].pkg.scope; - /* */ if (!(isPkgObj === inObjMap)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (!(isPkgObj === inObjMap)) { */ case 4: - _r$2 = obj[0].Pos(); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _arg = new token.Pos(_r$2); - _arg$1 = obj[0]; - _arg$2 = new $Bool(isPkgObj); - _arg$3 = new $Bool(inObjMap); - $r = check[0].dump("%v: inconsistent object map for %s (isPkgObj = %v, inObjMap = %v)", new sliceType$6([_arg, _arg$1, _arg$2, _arg$3])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - unreachable(); - /* } */ case 5: - /* } */ case 2: - _r$3 = obj[0].color(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $r = assert(_r$3 >= 2); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$4 = obj[0].color(); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - start = _r$4 - 2 >>> 0; - cycle = $subslice(check[0].objPath, start); - tparCycle = false; - nval = 0; - ndef = 0; - _ref = cycle; + appendNegatedTable = function appendNegatedTable$1(r, x) { + var _i, _i$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, c, c$1, hi, hi$1, lo, lo$1, nextLo, r, stride, stride$1, x, xr, xr$1; + nextLo = 0; + _ref = x.R16; _i = 0; - /* while (true) { */ case 11: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 12; continue; } - obj$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _ref$1 = obj$1; - /* */ if ($assertType(_ref$1, ptrType$32, true)[1] || $assertType(_ref$1, ptrType$16, true)[1]) { $s = 13; continue; } - /* */ if ($assertType(_ref$1, ptrType$17, true)[1]) { $s = 14; continue; } - /* */ if ($assertType(_ref$1, ptrType$2, true)[1]) { $s = 15; continue; } - /* */ $s = 16; continue; - /* if ($assertType(_ref$1, ptrType$32, true)[1] || $assertType(_ref$1, ptrType$16, true)[1]) { */ case 13: - obj$2 = _ref$1; - nval = nval + (1) >> 0; - $s = 17; continue; - /* } else if ($assertType(_ref$1, ptrType$17, true)[1]) { */ case 14: - obj$3 = _ref$1.$val; - if (!(check[0].environment.inTParamList)) { _v = false; $s = 20; continue s; } - _r$5 = isGeneric(obj$3.object.typ); /* */ $s = 21; case 21: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _v = _r$5; case 20: - /* */ if (_v) { $s = 18; continue; } - /* */ $s = 19; continue; - /* if (_v) { */ case 18: - tparCycle = true; - /* break loop; */ $s = 12; continue s; - /* } */ case 19: - alias = false; - d = (_entry$1 = $mapIndex(check[0].objMap,Object.keyFor(obj$3)), _entry$1 !== undefined ? _entry$1.v : ptrType$58.nil); - if (!(d === ptrType$58.nil)) { - alias = new token.Pos(d.tdecl.Assign).IsValid(); - } else { - alias = obj$3.IsAlias(); + while (true) { + if (!(_i < _ref.$length)) { break; } + xr = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), unicode.Range16); + _tmp = ((xr.Lo >> 0)); + _tmp$1 = ((xr.Hi >> 0)); + _tmp$2 = ((xr.Stride >> 0)); + lo = _tmp; + hi = _tmp$1; + stride = _tmp$2; + if (stride === 1) { + if (nextLo <= (lo - 1 >> 0)) { + r = appendRange(r, nextLo, lo - 1 >> 0); } - if (!alias) { - ndef = ndef + (1) >> 0; + nextLo = hi + 1 >> 0; + _i++; + continue; + } + c = lo; + while (true) { + if (!(c <= hi)) { break; } + if (nextLo <= (c - 1 >> 0)) { + r = appendRange(r, nextLo, c - 1 >> 0); } - $s = 17; continue; - /* } else if ($assertType(_ref$1, ptrType$2, true)[1]) { */ case 15: - obj$4 = _ref$1.$val; - $s = 17; continue; - /* } else { */ case 16: - obj$5 = _ref$1; - unreachable(); - /* } */ case 17: + nextLo = c + 1 >> 0; + c = c + (stride) >> 0; + } _i++; - $s = 11; continue; - case 12: - /* */ if (false) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if (false) { */ case 22: - _r$6 = obj[0].Pos(); /* */ $s = 24; case 24: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _arg$4 = _r$6; - _r$7 = pathString(cycle); /* */ $s = 25; case 25: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _arg$5 = new $String(_r$7); - _r$8 = obj[0].Name(); /* */ $s = 26; case 26: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _arg$6 = new $String(_r$8); - _arg$7 = new $Int(cycle.$length); - $r = check[0].trace(_arg$4, "## cycle detected: objPath = %s->%s (len = %d)", new sliceType$6([_arg$5, _arg$6, _arg$7])); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (tparCycle) { $s = 28; continue; } - /* */ $s = 29; continue; - /* if (tparCycle) { */ case 28: - _r$9 = obj[0].Pos(); /* */ $s = 31; case 31: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - $r = check[0].trace(_r$9, "## cycle contains: generic type in a type parameter list", sliceType$6.nil); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 30; continue; - /* } else { */ case 29: - _r$10 = obj[0].Pos(); /* */ $s = 33; case 33: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - $r = check[0].trace(_r$10, "## cycle contains: %d values, %d type definitions", new sliceType$6([new $Int(nval), new $Int(ndef)])); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 30: - $deferred.push([(function(check, obj, valid) { return function Checker·validCycle·func1() { - var {_r$11, _r$12, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - /* */ if (valid[0]) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (valid[0]) { */ case 1: - _r$11 = obj[0].Pos(); /* */ $s = 4; case 4: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - $r = check[0].trace(_r$11, "=> cycle is valid", sliceType$6.nil); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 3; continue; - /* } else { */ case 2: - _r$12 = obj[0].Pos(); /* */ $s = 6; case 6: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - $r = check[0].trace(_r$12, "=> error: cycle is invalid", sliceType$6.nil); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 3: - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·validCycle·func1, $c: true, $r, _r$11, _r$12, $s};return $f; - }; })(check, obj, valid), []]); - /* } */ case 23: - /* */ if (!tparCycle) { $s = 35; continue; } - /* */ $s = 36; continue; - /* if (!tparCycle) { */ case 35: - /* */ if (nval === cycle.$length) { $s = 37; continue; } - /* */ $s = 38; continue; - /* if (nval === cycle.$length) { */ case 37: - valid[0] = true; - $24r = valid[0]; - $s = 39; case 39: return $24r; - /* } */ case 38: - /* */ if ((nval === 0) && ndef > 0) { $s = 40; continue; } - /* */ $s = 41; continue; - /* if ((nval === 0) && ndef > 0) { */ case 40: - valid[0] = true; - $24r$1 = valid[0]; - $s = 42; case 42: return $24r$1; - /* } */ case 41: - /* } */ case 36: - $r = check[0].cycleError(cycle); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - valid[0] = false; - $24r$2 = valid[0]; - $s = 44; case 44: return $24r$2; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return valid[0]; } if($curGoroutine.asleep) { var $f = {$blk: validCycle, $c: true, $r, $24r, $24r$1, $24r$2, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _entry, _entry$1, _i, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _v, alias, check, cycle, d, inObjMap, info, isPkgObj, ndef, nval, obj, obj$1, obj$2, obj$3, obj$4, obj$5, start, tparCycle, valid, $s, $deferred};return $f; } } - }; - $ptrType(Checker).prototype.cycleError = function cycleError(cycle) { - var {_i, _r$1, _r$2, _r$3, _ref, _tuple, check, cycle, i, name, obj, objName, tname, $s, $r, $c} = $restore(this, {cycle}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = [check]; - check[0] = this; - name = (function(check) { return function Checker·cycleError·func1(obj) { - var {$24r, _r$1, _r$2, _r$3, obj, $s, $r, $c} = $restore(this, {obj}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = obj.Pkg(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = packagePrefix(_r$1, $methodVal(check[0], "qualifier")); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = obj.Name(); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r = _r$2 + _r$3; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: Checker·cycleError·func1, $c: true, $r, $24r, _r$1, _r$2, _r$3, obj, $s};return $f; - }; })(check); - _r$1 = firstInSrc(cycle); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - i = _r$1; - obj = ((i < 0 || i >= cycle.$length) ? ($throwRuntimeError("index out of range"), undefined) : cycle.$array[cycle.$offset + i]); - _r$2 = name(obj); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - objName = _r$2; - _tuple = $assertType(obj, ptrType$17, true); - tname = _tuple[0]; - if (!(tname === ptrType$17.nil) && tname.IsAlias()) { - check[0].validAlias(tname, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])); } - /* */ if (cycle.$length === 1) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (cycle.$length === 1) { */ case 3: - /* */ if (!(tname === ptrType$17.nil)) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (!(tname === ptrType$17.nil)) { */ case 5: - $r = check[0].errorf(obj, 11, "invalid recursive type: %s refers to itself", new sliceType$6([new $String(objName)])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 7; continue; - /* } else { */ case 6: - $r = check[0].errorf(obj, 11, "invalid cycle in declaration: %s refers to itself", new sliceType$6([new $String(objName)])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 7: - $s = -1; return; - /* } */ case 4: - /* */ if (!(tname === ptrType$17.nil)) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (!(tname === ptrType$17.nil)) { */ case 10: - $r = check[0].errorf(obj, 11, "invalid recursive type %s", new sliceType$6([new $String(objName)])); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 12; continue; - /* } else { */ case 11: - $r = check[0].errorf(obj, 11, "invalid cycle in declaration of %s", new sliceType$6([new $String(objName)])); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 12: - _ref = cycle; - _i = 0; - /* while (true) { */ case 15: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 16; continue; } - $r = check[0].errorf(obj, 11, "\t%s refers to", new sliceType$6([new $String(objName)])); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - i = i + (1) >> 0; - if (i >= cycle.$length) { - i = 0; + _ref$1 = x.R32; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + xr$1 = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), unicode.Range32); + _tmp$3 = ((xr$1.Lo >> 0)); + _tmp$4 = ((xr$1.Hi >> 0)); + _tmp$5 = ((xr$1.Stride >> 0)); + lo$1 = _tmp$3; + hi$1 = _tmp$4; + stride$1 = _tmp$5; + if (stride$1 === 1) { + if (nextLo <= (lo$1 - 1 >> 0)) { + r = appendRange(r, nextLo, lo$1 - 1 >> 0); + } + nextLo = hi$1 + 1 >> 0; + _i$1++; + continue; } - obj = ((i < 0 || i >= cycle.$length) ? ($throwRuntimeError("index out of range"), undefined) : cycle.$array[cycle.$offset + i]); - _r$3 = name(obj); /* */ $s = 18; case 18: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - objName = _r$3; - _i++; - $s = 15; continue; - case 16: - $r = check[0].errorf(obj, 11, "\t%s", new sliceType$6([new $String(objName)])); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: cycleError, $c: true, $r, _i, _r$1, _r$2, _r$3, _ref, _tuple, check, cycle, i, name, obj, objName, tname, $s};return $f; + c$1 = lo$1; + while (true) { + if (!(c$1 <= hi$1)) { break; } + if (nextLo <= (c$1 - 1 >> 0)) { + r = appendRange(r, nextLo, c$1 - 1 >> 0); + } + nextLo = c$1 + 1 >> 0; + c$1 = c$1 + (stride$1) >> 0; + } + _i$1++; + } + if (nextLo <= 1114111) { + r = appendRange(r, nextLo, 1114111); + } + return r; }; - firstInSrc = function firstInSrc$1(path) { - var {_i, _r$1, _r$2, _r$3, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, fst, i, path, pos$1, t, $s, $r, $c} = $restore(this, {path}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _tmp = 0; - _r$1 = (0 >= path.$length ? ($throwRuntimeError("index out of range"), undefined) : path.$array[path.$offset + 0]).Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tmp$1 = _r$1; - fst = _tmp; - pos$1 = _tmp$1; - _ref = $subslice(path, 1); - _i = 0; - /* while (true) { */ case 2: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } - i = _i; - t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$2 = t.Pos(); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (_r$2 < pos$1) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_r$2 < pos$1) { */ case 4: - _tmp$2 = i + 1 >> 0; - _r$3 = t.Pos(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tmp$3 = _r$3; - fst = _tmp$2; - pos$1 = _tmp$3; - /* } */ case 5: - _i++; - $s = 2; continue; - case 3: - $s = -1; return fst; - /* */ } return; } var $f = {$blk: firstInSrc$1, $c: true, $r, _i, _r$1, _r$2, _r$3, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, fst, i, path, pos$1, t, $s};return $f; + negateClass = function negateClass$1(r) { + var _tmp, _tmp$1, hi, i, lo, nextLo, r, w, x, x$1; + nextLo = 0; + w = 0; + i = 0; + while (true) { + if (!(i < r.$length)) { break; } + _tmp = ((i < 0 || i >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + i]); + _tmp$1 = (x = i + 1 >> 0, ((x < 0 || x >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x])); + lo = _tmp; + hi = _tmp$1; + if (nextLo <= (lo - 1 >> 0)) { + ((w < 0 || w >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + w] = nextLo); + (x$1 = w + 1 >> 0, ((x$1 < 0 || x$1 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$1] = (lo - 1 >> 0))); + w = w + (2) >> 0; + } + nextLo = hi + 1 >> 0; + i = i + (2) >> 0; + } + r = $subslice(r, 0, w); + if (nextLo <= 1114111) { + r = $append(r, nextLo, 1114111); + } + return r; }; - $ptrType(importDecl).prototype.node = function node() { - var d; - d = this; - return d.spec; + $ptrType(ranges).prototype.Less = function Less(i, j) { + var i, j, p, ra, x, x$1; + ra = this; + p = ra.p.$get(); + i = $imul(i, (2)); + j = $imul(j, (2)); + return ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]) < ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]) || (((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]) === ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j])) && (x = i + 1 >> 0, ((x < 0 || x >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x])) > (x$1 = j + 1 >> 0, ((x$1 < 0 || x$1 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$1])); }; - importDecl.prototype.node = function(...$args) { return this.$val.node(...$args); }; - $ptrType(constDecl).prototype.node = function node$1() { - var d; - d = this; - return d.spec; + ranges.prototype.Less = function(...$args) { return this.$val.Less(...$args); }; + $ptrType(ranges).prototype.Len = function Len() { + var _q, ra; + ra = this; + return (_q = ra.p.$get().$length / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); }; - constDecl.prototype.node = function(...$args) { return this.$val.node(...$args); }; - $ptrType(varDecl).prototype.node = function node$2() { - var d; - d = this; - return d.spec; + ranges.prototype.Len = function(...$args) { return this.$val.Len(...$args); }; + $ptrType(ranges).prototype.Swap = function Swap(i, j) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, i, j, p, ra, x, x$1, x$2, x$3; + ra = this; + p = ra.p.$get(); + i = $imul(i, (2)); + j = $imul(j, (2)); + _tmp = ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]); + _tmp$1 = (x = j + 1 >> 0, ((x < 0 || x >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x])); + _tmp$2 = ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]); + _tmp$3 = (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$1])); + ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i] = _tmp); + (x$2 = i + 1 >> 0, ((x$2 < 0 || x$2 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$2] = _tmp$1)); + ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j] = _tmp$2); + (x$3 = j + 1 >> 0, ((x$3 < 0 || x$3 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$3] = _tmp$3)); }; - varDecl.prototype.node = function(...$args) { return this.$val.node(...$args); }; - $ptrType(typeDecl).prototype.node = function node$3() { - var d; - d = this; - return d.spec; + ranges.prototype.Swap = function(...$args) { return this.$val.Swap(...$args); }; + checkUTF8 = function checkUTF8$1(s) { + var _tuple, rune, s, size; + while (true) { + if (!(!(s === ""))) { break; } + _tuple = utf8.DecodeRuneInString(s); + rune = _tuple[0]; + size = _tuple[1]; + if ((rune === 65533) && (size === 1)) { + return new Error.ptr("invalid UTF-8", s); + } + s = $substring(s, size); + } + return $ifaceNil; }; - typeDecl.prototype.node = function(...$args) { return this.$val.node(...$args); }; - $ptrType(funcDecl).prototype.node = function node$4() { - var d; - d = this; - return d.decl; + nextRune = function nextRune$1(s) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, c, err, s, size, t; + c = 0; + t = ""; + err = $ifaceNil; + _tuple = utf8.DecodeRuneInString(s); + c = _tuple[0]; + size = _tuple[1]; + if ((c === 65533) && (size === 1)) { + _tmp = 0; + _tmp$1 = ""; + _tmp$2 = new Error.ptr("invalid UTF-8", s); + c = _tmp; + t = _tmp$1; + err = _tmp$2; + return [c, t, err]; + } + _tmp$3 = c; + _tmp$4 = $substring(s, size); + _tmp$5 = $ifaceNil; + c = _tmp$3; + t = _tmp$4; + err = _tmp$5; + return [c, t, err]; }; - funcDecl.prototype.node = function(...$args) { return this.$val.node(...$args); }; - $ptrType(Checker).prototype.walkDecls = function walkDecls(decls, f) { - var {_i, _ref, check, d, decls, f, $s, $r, $c} = $restore(this, {decls, f}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _ref = decls; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - d = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - $r = check.walkDecl(d, f); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 1; continue; - case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: walkDecls, $c: true, $r, _i, _ref, check, d, decls, f, $s};return $f; + isalnum = function isalnum$1(c) { + var c; + return 48 <= c && c <= 57 || 65 <= c && c <= 90 || 97 <= c && c <= 122; }; - $ptrType(Checker).prototype.walkDecl = function walkDecl(d, f) { - var {_1, _i, _ref, _ref$1, _ref$2, check, d, d$1, d$2, d$3, d$4, f, inherited, iota, last, s, s$1, s$2, s$3, s$4, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {d, f}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _ref = d; - /* */ if ($assertType(_ref, ptrType$105, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$93, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$87, true)[1]) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if ($assertType(_ref, ptrType$105, true)[1]) { */ case 1: - d$1 = _ref.$val; - $s = 5; continue; - /* } else if ($assertType(_ref, ptrType$93, true)[1]) { */ case 2: - d$2 = _ref.$val; - last = ptrType$88.nil; - _ref$1 = d$2.Specs; - _i = 0; - /* while (true) { */ case 6: - /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 7; continue; } - iota = _i; - s = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); - _ref$2 = s; - /* */ if ($assertType(_ref$2, ptrType$106, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref$2, ptrType$88, true)[1]) { $s = 9; continue; } - /* */ if ($assertType(_ref$2, ptrType$90, true)[1]) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if ($assertType(_ref$2, ptrType$106, true)[1]) { */ case 8: - s$1 = _ref$2.$val; - $r = f((x = new importDecl.ptr(s$1), new x.constructor.elem(x))); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 12; continue; - /* } else if ($assertType(_ref$2, ptrType$88, true)[1]) { */ case 9: - s$2 = _ref$2.$val; - _1 = d$2.Tok; - /* */ if (_1 === (64)) { $s = 15; continue; } - /* */ if (_1 === (85)) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (_1 === (64)) { */ case 15: - inherited = true; - if (!($interfaceIsEqual(s$2.Type, $ifaceNil)) || s$2.Values.$length > 0) { - last = s$2; - inherited = false; - } else if (last === ptrType$88.nil) { - last = new ast.ValueSpec.ptr(ptrType$107.nil, sliceType$22.nil, $ifaceNil, sliceType$11.nil, ptrType$107.nil); - inherited = false; - } - $r = check.arityMatch(s$2, last); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = f((x$1 = new constDecl.ptr(s$2, iota, last.Type, last.Values, inherited), new x$1.constructor.elem(x$1))); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 18; continue; - /* } else if (_1 === (85)) { */ case 16: - $r = check.arityMatch(s$2, ptrType$88.nil); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = f((x$2 = new varDecl.ptr(s$2), new x$2.constructor.elem(x$2))); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 18; continue; - /* } else { */ case 17: - $r = check.errorf(s$2, -1, "invalid token %s", new sliceType$6([new token.Token(d$2.Tok)])); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 18: - case 14: - $s = 12; continue; - /* } else if ($assertType(_ref$2, ptrType$90, true)[1]) { */ case 10: - s$3 = _ref$2.$val; - $r = f((x$3 = new typeDecl.ptr(s$3), new x$3.constructor.elem(x$3))); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 12; continue; - /* } else { */ case 11: - s$4 = _ref$2; - $r = check.errorf(s$4, -1, "unknown ast.Spec node %T", new sliceType$6([s$4])); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 12: - _i++; - $s = 6; continue; - case 7: - $s = 5; continue; - /* } else if ($assertType(_ref, ptrType$87, true)[1]) { */ case 3: - d$3 = _ref.$val; - $r = f((x$4 = new funcDecl.ptr(d$3), new x$4.constructor.elem(x$4))); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 5; continue; - /* } else { */ case 4: - d$4 = _ref; - $r = check.errorf(d$4, -1, "unknown ast.Decl node %T", new sliceType$6([d$4])); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 5: - $s = -1; return; - /* */ } return; } var $f = {$blk: walkDecl, $c: true, $r, _1, _i, _ref, _ref$1, _ref$2, check, d, d$1, d$2, d$3, d$4, f, inherited, iota, last, s, s$1, s$2, s$3, s$4, x, x$1, x$2, x$3, x$4, $s};return $f; + unhex = function unhex$1(c) { + var c; + if (48 <= c && c <= 57) { + return c - 48 >> 0; + } + if (97 <= c && c <= 102) { + return (c - 97 >> 0) + 10 >> 0; + } + if (65 <= c && c <= 70) { + return (c - 65 >> 0) + 10 >> 0; + } + return -1; + }; + Op.prototype.String = function String$5() { + var i, x; + i = this.$val; + if (1 <= i && i <= 19) { + i = i - (1) << 24 >>> 24; + return $substring("NoMatchEmptyMatchLiteralCharClassAnyCharNotNLAnyCharBeginLineEndLineBeginTextEndTextWordBoundaryNoWordBoundaryCaptureStarPlusQuestRepeatConcatAlternate", ((i < 0 || i >= _Op_index_0.length) ? ($throwRuntimeError("index out of range"), undefined) : _Op_index_0[i]), (x = i + 1 << 24 >>> 24, ((x < 0 || x >= _Op_index_0.length) ? ($throwRuntimeError("index out of range"), undefined) : _Op_index_0[x]))); + } else if ((i === 128)) { + return "opPseudo"; + } else { + return "Op(" + strconv.FormatInt((new $Int64(0, i)), 10) + ")"; + } }; - $ptrType(Checker).prototype.constDecl = function constDecl$1(obj, typ$4, init$7, inherited) { - var {_r$1, _r$2, _r$3, check, inherited, init$7, obj, t, typ$4, x, $s, $deferred, $r, $c} = $restore(this, {obj, typ$4, init$7, inherited}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - check = [check]; - x = [x]; - check[0] = this; - $r = assert($interfaceIsEqual(obj.object.typ, $ifaceNil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([(function(check, x) { return function Checker·constDecl·func1(iota, errpos) { - var errpos, iota; - check[0].environment.iota = iota; - check[0].environment.errpos = errpos; - }; })(check, x), [check[0].environment.iota, check[0].environment.errpos]]); - check[0].environment.iota = obj.val; - check[0].environment.errpos = $ifaceNil; - obj.val = constant.MakeUnknown(); - /* */ if (!($interfaceIsEqual(typ$4, $ifaceNil))) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!($interfaceIsEqual(typ$4, $ifaceNil))) { */ case 2: - _r$1 = check[0].typ(typ$4); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - t = _r$1; - _r$2 = isConstType(t); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (!_r$2) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (!_r$2) { */ case 5: - _r$3 = under(t); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (!($interfaceIsEqual(_r$3, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (!($interfaceIsEqual(_r$3, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { */ case 8: - $r = check[0].errorf(typ$4, 15, "invalid constant type %s", new sliceType$6([t])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 9: - obj.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - $s = -1; return; - /* } */ case 6: - obj.object.typ = t; - /* } */ case 3: - x[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - /* */ if (!($interfaceIsEqual(init$7, $ifaceNil))) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (!($interfaceIsEqual(init$7, $ifaceNil))) { */ case 12: - if (inherited) { - check[0].environment.errpos = new atPos(((obj.object.pos >> 0))); - } - $r = check[0].expr(x[0], init$7); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 13: - $r = check[0].initConst(obj, x[0]); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: constDecl$1, $c: true, $r, _r$1, _r$2, _r$3, check, inherited, init$7, obj, t, typ$4, x, $s, $deferred};return $f; } } + $ptrType(Op).prototype.String = function(...$args) { return new Op(this.$get()).String(...$args); }; + makePatchList = function makePatchList$1(n) { + var n; + return new patchList.ptr(n, n); }; - $ptrType(Checker).prototype.varDecl = function varDecl$1(obj, lhs, typ$4, init$7) { - var {_i, _i$1, _r$1, _r$2, _ref, _ref$1, check, found, init$7, lhs, lhs$1, lhs$2, obj, typ$4, x, $s, $r, $c} = $restore(this, {obj, lhs, typ$4, init$7}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = [x]; - check = this; - $r = assert($interfaceIsEqual(obj.object.typ, $ifaceNil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!($interfaceIsEqual(typ$4, $ifaceNil))) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!($interfaceIsEqual(typ$4, $ifaceNil))) { */ case 2: - _r$1 = check.varType(typ$4); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - obj.object.typ = _r$1; - /* } */ case 3: - if ($interfaceIsEqual(init$7, $ifaceNil)) { - if ($interfaceIsEqual(typ$4, $ifaceNil)) { - obj.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + $ptrType(patchList).prototype.patch = function patch(p, val) { + var head, i, l, p, val, x, x$1; + l = this; + head = l.head; + while (true) { + if (!(!((head === 0)))) { break; } + i = (x = p.Inst, x$1 = head >>> 1 >>> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + x$1, ptrType$2))); + if (((head & 1) >>> 0) === 0) { + head = i.Out; + i.Out = val; + } else { + head = i.Arg; + i.Arg = val; } - $s = -1; return; } - /* */ if (lhs === sliceType$10.nil || (lhs.$length === 1)) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (lhs === sliceType$10.nil || (lhs.$length === 1)) { */ case 5: - $r = assert(lhs === sliceType$10.nil || (0 >= lhs.$length ? ($throwRuntimeError("index out of range"), undefined) : lhs.$array[lhs.$offset + 0]) === obj); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = check.expr(x[0], init$7); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$2 = check.initVar(obj, x[0], "variable declaration"); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - $s = -1; return; - /* } */ case 6: - if (false) { - found = false; - _ref = lhs; + }; + patchList.prototype.patch = function(...$args) { return this.$val.patch(...$args); }; + $ptrType(patchList).prototype.append = function append(p, l2) { + var i, l1, l2, p, x, x$1; + l1 = this; + if (l1.head === 0) { + return l2; + } + if (l2.head === 0) { + return l1; + } + i = (x = p.Inst, x$1 = l1.tail >>> 1 >>> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + x$1, ptrType$2))); + if (((l1.tail & 1) >>> 0) === 0) { + i.Out = l2.head; + } else { + i.Arg = l2.head; + } + return new patchList.ptr(l1.head, l2.tail); + }; + patchList.prototype.append = function(...$args) { return this.$val.append(...$args); }; + Compile = function Compile$1(re) { + var c, f, re; + c = new compiler.ptr(ptrType$6.nil); + c.init(); + f = $clone(c.compile(re), frag); + $clone(f.out, patchList).patch(c.p, c.inst(4).i); + c.p.Start = ((f.i >> 0)); + return [c.p, $ifaceNil]; + }; + $pkg.Compile = Compile; + $ptrType(compiler).prototype.init = function init() { + var c; + c = this; + c.p = new Prog.ptr(sliceType$6.nil, 0, 0); + c.p.NumCap = 2; + c.inst(5); + }; + $ptrType(compiler).prototype.compile = function compile(re) { + var _1, _i, _i$1, _i$2, _ref, _ref$1, _ref$2, bra, c, f, f$1, f$2, f1, i, j, ket, re, sub, sub$1, sub$2, x, x$1, x$2, x$3; + c = this; + _1 = re.Op; + if (_1 === (1)) { + return c.fail(); + } else if (_1 === (2)) { + return c.nop(); + } else if (_1 === (3)) { + if (re.Rune.$length === 0) { + return c.nop(); + } + f = new frag.ptr(0, new patchList.ptr(0, 0), false); + _ref = re.Rune; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } - lhs$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (obj === lhs$1) { - found = true; - break; + j = _i; + f1 = $clone(c.rune($subslice(re.Rune, j, (j + 1 >> 0)), re.Flags), frag); + if (j === 0) { + frag.copy(f, f1); + } else { + frag.copy(f, c.cat($clone(f, frag), $clone(f1, frag))); } _i++; } - if (!found) { - $panic(new $String("inconsistent lhs")); + return f; + } else if (_1 === (4)) { + return c.rune(re.Rune, re.Flags); + } else if (_1 === (5)) { + return c.rune(anyRuneNotNL, 0); + } else if (_1 === (6)) { + return c.rune(anyRune, 0); + } else if (_1 === (7)) { + return c.empty(1); + } else if (_1 === (8)) { + return c.empty(2); + } else if (_1 === (9)) { + return c.empty(4); + } else if (_1 === (10)) { + return c.empty(8); + } else if (_1 === (11)) { + return c.empty(16); + } else if (_1 === (12)) { + return c.empty(32); + } else if (_1 === (13)) { + bra = $clone(c.cap((((re.Cap << 1 >> 0) >>> 0))), frag); + sub = $clone(c.compile((x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))), frag); + ket = $clone(c.cap(((((re.Cap << 1 >> 0) | 1) >>> 0))), frag); + return c.cat($clone(c.cat($clone(bra, frag), $clone(sub, frag)), frag), $clone(ket, frag)); + } else if (_1 === (14)) { + return c.star($clone(c.compile((x$1 = re.Sub, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0]))), frag), !((((re.Flags & 32) >>> 0) === 0))); + } else if (_1 === (15)) { + return c.plus($clone(c.compile((x$2 = re.Sub, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0]))), frag), !((((re.Flags & 32) >>> 0) === 0))); + } else if (_1 === (16)) { + return c.quest($clone(c.compile((x$3 = re.Sub, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0]))), frag), !((((re.Flags & 32) >>> 0) === 0))); + } else if (_1 === (18)) { + if (re.Sub.$length === 0) { + return c.nop(); } - } - if (!($interfaceIsEqual(typ$4, $ifaceNil))) { - _ref$1 = lhs; + f$1 = new frag.ptr(0, new patchList.ptr(0, 0), false); + _ref$1 = re.Sub; _i$1 = 0; while (true) { if (!(_i$1 < _ref$1.$length)) { break; } - lhs$2 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - lhs$2.object.typ = obj.object.typ; + i = _i$1; + sub$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + if (i === 0) { + frag.copy(f$1, c.compile(sub$1)); + } else { + frag.copy(f$1, c.cat($clone(f$1, frag), $clone(c.compile(sub$1), frag))); + } _i$1++; } - } - $r = check.initVars(lhs, new sliceType$11([init$7]), $ifaceNil); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: varDecl$1, $c: true, $r, _i, _i$1, _r$1, _r$2, _ref, _ref$1, check, found, init$7, lhs, lhs$1, lhs$2, obj, typ$4, x, $s};return $f; - }; - $ptrType(Checker).prototype.isImportedConstraint = function isImportedConstraint(typ$4) { - var {$24r, _r$1, _r$2, _tuple, _tuple$1, _v, check, named, typ$4, u, $s, $r, $c} = $restore(this, {typ$4}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _tuple = $assertType(typ$4, ptrType$9, true); - named = _tuple[0]; - if (named === ptrType$9.nil || named.obj.object.pkg === check.pkg || named.obj.object.pkg === ptrType$1.nil) { - $s = -1; return false; - } - _r$1 = named.under(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$1 = $assertType(_r$1, ptrType$13, true); - u = _tuple$1[0]; - if (!(!(u === ptrType$13.nil))) { _v = false; $s = 2; continue s; } - _r$2 = u.IsMethodSet(); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _v = !_r$2; case 2: - $24r = _v; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: isImportedConstraint, $c: true, $r, $24r, _r$1, _r$2, _tuple, _tuple$1, _v, check, named, typ$4, u, $s};return $f; - }; - $ptrType(Checker).prototype.typeDecl = function typeDecl$1(obj, tdecl, def$2) { - var {_r$1, _r$2, alias, check, def$2, named, obj, rhs, tdecl, $s, $deferred, $r, $c} = $restore(this, {obj, tdecl, def$2}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - check = [check]; - obj = [obj]; - rhs = [rhs]; - tdecl = [tdecl]; - check[0] = this; - $r = assert($interfaceIsEqual(obj[0].object.typ, $ifaceNil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - rhs[0] = $ifaceNil; - check[0].later((function(check, obj, rhs, tdecl) { return function Checker·typeDecl·func1() { - var {_r$1, _tuple, t, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _tuple = $assertType(obj[0].object.typ, ptrType$9, true); - t = _tuple[0]; - /* */ if (!(t === ptrType$9.nil)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(t === ptrType$9.nil)) { */ case 1: - $r = check[0].validType(t); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - _r$1 = check[0].isImportedConstraint(rhs[0]); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1 && !check[0].allowVersion(check[0].pkg, 1, 18)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_r$1 && !check[0].allowVersion(check[0].pkg, 1, 18)) { */ case 4: - $r = check[0].errorf(tdecl[0].Type, 135, "using type constraint %s requires go1.18 or later", new sliceType$6([rhs[0]])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 5: - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·typeDecl·func1, $c: true, $r, _r$1, _tuple, t, $s};return $f; - }; })(check, obj, rhs, tdecl)).describef(obj[0], "validType(%s)", new sliceType$6([new $String(obj[0].object.Name())])); - alias = new token.Pos(tdecl[0].Assign).IsValid(); - /* */ if (alias && !((tdecl[0].TypeParams.NumFields() === 0))) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (alias && !((tdecl[0].TypeParams.NumFields() === 0))) { */ case 2: - $r = check[0].error(new atPos(((tdecl[0].Assign >> 0))), 131, "generic type cannot be alias"); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - alias = false; - /* } */ case 3: - /* */ if (alias) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (alias) { */ case 5: - /* */ if (!check[0].allowVersion(check[0].pkg, 1, 9)) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (!check[0].allowVersion(check[0].pkg, 1, 9)) { */ case 7: - $r = check[0].error(new atPos(((tdecl[0].Assign >> 0))), 135, "type aliases requires go1.9 or later"); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 8: - check[0].brokenAlias(obj[0]); - _r$1 = check[0].typ(tdecl[0].Type); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - rhs[0] = _r$1; - check[0].validAlias(obj[0], rhs[0]); - $s = -1; return; - /* } */ case 6: - named = check[0].newNamed(obj[0], $ifaceNil, sliceType.nil); - def$2.setUnderlying(named); - /* */ if (!(tdecl[0].TypeParams === ptrType$49.nil)) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (!(tdecl[0].TypeParams === ptrType$49.nil)) { */ case 11: - $r = check[0].openScope(tdecl[0], "type parameters"); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(check[0], "closeScope"), []]); - $r = check[0].collectTypeParams((named.$ptr_tparams || (named.$ptr_tparams = new ptrType$84(function() { return this.$target.tparams; }, function($v) { this.$target.tparams = $v; }, named))), tdecl[0].TypeParams); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 12: - _r$2 = check[0].definedType(tdecl[0].Type, named); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - rhs[0] = _r$2; - $r = assert(!($interfaceIsEqual(rhs[0], $ifaceNil))); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - named.fromRHS = rhs[0]; - if ($interfaceIsEqual(named.underlying, $ifaceNil)) { - named.underlying = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - } - /* */ if (isTypeParam(rhs[0])) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (isTypeParam(rhs[0])) { */ case 17: - $r = check[0].error(tdecl[0].Type, 144, "cannot use a type parameter as RHS in type declaration"); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - named.underlying = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - /* } */ case 18: - $s = -1; return; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: typeDecl$1, $c: true, $r, _r$1, _r$2, alias, check, def$2, named, obj, rhs, tdecl, $s, $deferred};return $f; } } - }; - $ptrType(Checker).prototype.collectTypeParams = function collectTypeParams(dst, list$2) { - var {_i, _i$1, _i$2, _r$1, _r$2, _ref, _ref$1, _ref$2, bound, check, dst, f, f$1, i, index$2, list$2, tparams, x, $s, $deferred, $r, $c} = $restore(this, {dst, list$2}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - check = [check]; - check[0] = this; - tparams = sliceType$9.nil; - _ref = list$2.List; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$1 = check[0].declareTypeParams(tparams, f.Names); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - tparams = _r$1; - _i++; - $s = 1; continue; - case 2: - dst.$set(bindTParams(tparams)); - $r = assert(!check[0].environment.inTParamList); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - check[0].environment.inTParamList = true; - $deferred.push([(function(check) { return function Checker·collectTypeParams·func1() { - check[0].environment.inTParamList = false; - }; })(check), []]); - index$2 = 0; - _ref$1 = list$2.List; - _i$1 = 0; - /* while (true) { */ case 5: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 6; continue; } - f$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - bound = $ifaceNil; - /* */ if (!($interfaceIsEqual(f$1.Type, $ifaceNil))) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (!($interfaceIsEqual(f$1.Type, $ifaceNil))) { */ case 7: - _r$2 = check[0].bound(f$1.Type); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - bound = _r$2; - /* */ if (isTypeParam(bound)) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (isTypeParam(bound)) { */ case 11: - $r = check[0].error(f$1.Type, 144, "cannot use a type parameter as constraint"); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - bound = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - /* } */ case 12: - $s = 9; continue; - /* } else { */ case 8: - bound = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - /* } */ case 9: - _ref$2 = f$1.Names; + return f$1; + } else if (_1 === (19)) { + f$2 = new frag.ptr(0, new patchList.ptr(0, 0), false); + _ref$2 = re.Sub; _i$2 = 0; while (true) { if (!(_i$2 < _ref$2.$length)) { break; } - i = _i$2; - (x = index$2 + i >> 0, ((x < 0 || x >= tparams.$length) ? ($throwRuntimeError("index out of range"), undefined) : tparams.$array[tparams.$offset + x])).bound = bound; + sub$2 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); + frag.copy(f$2, c.alt($clone(f$2, frag), $clone(c.compile(sub$2), frag))); _i$2++; } - index$2 = index$2 + (f$1.Names.$length) >> 0; - _i$1++; - $s = 5; continue; - case 6: - $s = -1; return; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: collectTypeParams, $c: true, $r, _i, _i$1, _i$2, _r$1, _r$2, _ref, _ref$1, _ref$2, bound, check, dst, f, f$1, i, index$2, list$2, tparams, x, $s, $deferred};return $f; } } + return f$2; + } + $panic(new $String("regexp: unhandled case in compile")); }; - $ptrType(Checker).prototype.bound = function bound(x) { - var {$24r, _r$1, _r$2, _ref, _tuple, check, op$1, op$2, t, t$1, wrap, x, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - wrap = false; - _ref = x; - if ($assertType(_ref, ptrType$20, true)[1]) { - op$1 = _ref.$val; - wrap = op$1.Op === 88; - } else if ($assertType(_ref, ptrType$21, true)[1]) { - op$2 = _ref.$val; - wrap = op$2.Op === 18; + $ptrType(compiler).prototype.inst = function inst(op$2) { + var c, f, op$2; + c = this; + f = new frag.ptr(((c.p.Inst.$length >>> 0)), new patchList.ptr(0, 0), true); + c.p.Inst = $append(c.p.Inst, new Inst.ptr(op$2, 0, 0, sliceType$1.nil)); + return f; + }; + $ptrType(compiler).prototype.nop = function nop() { + var c, f; + c = this; + f = $clone(c.inst(6), frag); + patchList.copy(f.out, makePatchList(f.i << 1 >>> 0)); + return f; + }; + $ptrType(compiler).prototype.fail = function fail() { + var c; + c = this; + return new frag.ptr(0, new patchList.ptr(0, 0), false); + }; + $ptrType(compiler).prototype.cap = function cap(arg) { + var arg, c, f, x, x$1; + c = this; + f = $clone(c.inst(2), frag); + patchList.copy(f.out, makePatchList(f.i << 1 >>> 0)); + (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Arg = arg; + if (c.p.NumCap < (((arg >> 0)) + 1 >> 0)) { + c.p.NumCap = ((arg >> 0)) + 1 >> 0; } - /* */ if (wrap) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (wrap) { */ case 1: - x = new ast.InterfaceType.ptr(0, new ast.FieldList.ptr(0, new sliceType$32([new ast.Field.ptr(ptrType$107.nil, sliceType$22.nil, x, ptrType$57.nil, ptrType$107.nil)]), 0), false); - _r$1 = check.typ(x); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - t = _r$1; - _tuple = $assertType(t, ptrType$13, true); - t$1 = _tuple[0]; - if (!(t$1 === ptrType$13.nil)) { - t$1.implicit = true; - } - $s = -1; return t; - /* } */ case 2: - _r$2 = check.typ(x); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 5; case 5: return $24r; - /* */ } return; } var $f = {$blk: bound, $c: true, $r, $24r, _r$1, _r$2, _ref, _tuple, check, op$1, op$2, t, t$1, wrap, x, $s};return $f; + return f; }; - $ptrType(Checker).prototype.declareTypeParams = function declareTypeParams(tparams, names) { - var {_i, _r$1, _ref, check, name, names, tname, tpar, tparams, $s, $r, $c} = $restore(this, {tparams, names}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _ref = names; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - name = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - tname = NewTypeName(name.Pos(), check.pkg, name.Name, $ifaceNil); - _r$1 = check.newTypeParam(tname, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - tpar = _r$1; - $r = check.declare(check.environment.scope, name, tname, check.environment.scope.pos); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - tparams = $append(tparams, tpar); - _i++; - $s = 1; continue; - case 2: - /* */ if (false && names.$length > 0) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (false && names.$length > 0) { */ case 5: - $r = check.trace((0 >= names.$length ? ($throwRuntimeError("index out of range"), undefined) : names.$array[names.$offset + 0]).Pos(), "type params = %v", new sliceType$6([$subslice(tparams, (tparams.$length - names.$length >> 0))])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 6: - $s = -1; return tparams; - /* */ } return; } var $f = {$blk: declareTypeParams, $c: true, $r, _i, _r$1, _ref, check, name, names, tname, tpar, tparams, $s};return $f; + $ptrType(compiler).prototype.cat = function cat(f1, f2) { + var c, f1, f2; + c = this; + if ((f1.i === 0) || (f2.i === 0)) { + return new frag.ptr(0, new patchList.ptr(0, 0), false); + } + $clone(f1.out, patchList).patch(c.p, f2.i); + return new frag.ptr(f1.i, $clone(f2.out, patchList), f1.nullable && f2.nullable); }; - $ptrType(Checker).prototype.collectMethods = function collectMethods(obj) { - var {_arg, _arg$1, _arg$2, _arg$3, _entry, _entry$1, _i, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _tuple, alt, base, check, i, m, m$1, methods, mset, mset$24ptr, obj, $s, $r, $c} = $restore(this, {obj}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - base = [base]; - check = [check]; - check[0] = this; - methods = (_entry = $mapIndex(check[0].methods,ptrType$17.keyFor(obj)), _entry !== undefined ? _entry.v : sliceType.nil); - if (methods === sliceType.nil) { - $s = -1; return; + $ptrType(compiler).prototype.alt = function alt(f1, f2) { + var c, f, f1, f2, i, x, x$1; + c = this; + if (f1.i === 0) { + return f2; } - $mapDelete(check[0].methods, ptrType$17.keyFor(obj)); - $r = assert(!new token.Pos((_entry$1 = $mapIndex(check[0].objMap,Object.keyFor(obj)), _entry$1 !== undefined ? _entry$1.v : ptrType$58.nil).tdecl.Assign).IsValid()); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - mset = false; - _tuple = $assertType(obj.object.typ, ptrType$9, true); - base[0] = _tuple[0]; - /* */ if (!(base[0] === ptrType$9.nil)) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!(base[0] === ptrType$9.nil)) { */ case 2: - $r = assert(base[0].TypeArgs().Len() === 0); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - check[0].later((function(base, check) { return function Checker·collectMethods·func1() { - var {$s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = check[0].checkFieldUniqueness(base[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·collectMethods·func1, $c: true, $r, $s};return $f; - }; })(base, check)).describef(obj, "verifying field uniqueness for %v", new sliceType$6([base[0]])); - i = 0; - /* while (true) { */ case 5: - _r$1 = base[0].NumMethods(); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* if (!(i < _r$1)) { break; } */ if(!(i < _r$1)) { $s = 6; continue; } - _r$2 = base[0].Method(i); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - m = _r$2; - $r = assert(!(m.object.name === "_")); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$3 = (mset$24ptr || (mset$24ptr = new ptrType$54(function() { return mset; }, function($v) { mset = $v; }))).insert(m); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $r = assert($interfaceIsEqual(_r$3, $ifaceNil)); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - i = i + (1) >> 0; - $s = 5; continue; - case 6: - /* } */ case 3: - _ref = methods; - _i = 0; - /* while (true) { */ case 12: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 13; continue; } - m$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - $r = assert(!(m$1.object.name === "_")); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$4 = (mset$24ptr || (mset$24ptr = new ptrType$54(function() { return mset; }, function($v) { mset = $v; }))).insert(m$1); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - alt = _r$4; - /* */ if (!($interfaceIsEqual(alt, $ifaceNil))) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (!($interfaceIsEqual(alt, $ifaceNil))) { */ case 16: - _r$5 = alt.Pos(); /* */ $s = 21; case 21: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$6 = new token.Pos(_r$5).IsValid(); /* */ $s = 22; case 22: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - /* */ if (_r$6) { $s = 18; continue; } - /* */ $s = 19; continue; - /* if (_r$6) { */ case 18: - _arg = m$1; - _arg$1 = new $String(obj.object.Name()); - _arg$2 = new $String(m$1.object.name); - _r$7 = alt.Pos(); /* */ $s = 23; case 23: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _arg$3 = new token.Pos(_r$7); - $r = check[0].errorf(_arg, 34, "method %s.%s already declared at %s", new sliceType$6([_arg$1, _arg$2, _arg$3])); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 20; continue; - /* } else { */ case 19: - $r = check[0].errorf(m$1, 34, "method %s.%s already declared", new sliceType$6([new $String(obj.object.Name()), new $String(m$1.object.name)])); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 20: - _i++; - /* continue; */ $s = 12; continue; - /* } */ case 17: - /* */ if (!(base[0] === ptrType$9.nil)) { $s = 26; continue; } - /* */ $s = 27; continue; - /* if (!(base[0] === ptrType$9.nil)) { */ case 26: - $r = base[0].AddMethod(m$1); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 27: - _i++; - $s = 12; continue; - case 13: - $s = -1; return; - /* */ } return; } var $f = {$blk: collectMethods, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _entry, _entry$1, _i, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _tuple, alt, base, check, i, m, m$1, methods, mset, mset$24ptr, obj, $s};return $f; + if (f2.i === 0) { + return f1; + } + f = $clone(c.inst(0), frag); + i = (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + x$1, ptrType$2))); + i.Out = f1.i; + i.Arg = f2.i; + patchList.copy(f.out, $clone(f1.out, patchList).append(c.p, $clone(f2.out, patchList))); + f.nullable = f1.nullable || f2.nullable; + return f; }; - $ptrType(Checker).prototype.checkFieldUniqueness = function checkFieldUniqueness(base) { - var {_i, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _tuple, alt, base, check, fld, i, m, mset, mset$24ptr, t, $s, $r, $c} = $restore(this, {base}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = base.under(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = $assertType(_r$1, ptrType$11, true); - t = _tuple[0]; - /* */ if (!(t === ptrType$11.nil)) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!(t === ptrType$11.nil)) { */ case 2: - mset = false; - i = 0; - /* while (true) { */ case 4: - _r$2 = base.NumMethods(); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* if (!(i < _r$2)) { break; } */ if(!(i < _r$2)) { $s = 5; continue; } - _r$3 = base.Method(i); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - m = _r$3; - $r = assert(!(m.object.name === "_")); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$4 = (mset$24ptr || (mset$24ptr = new ptrType$54(function() { return mset; }, function($v) { mset = $v; }))).insert(m); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $r = assert($interfaceIsEqual(_r$4, $ifaceNil)); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - i = i + (1) >> 0; - $s = 4; continue; - case 5: - _ref = t.fields; - _i = 0; - /* while (true) { */ case 11: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 12; continue; } - fld = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - /* */ if (!(fld.object.name === "_")) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (!(fld.object.name === "_")) { */ case 13: - _r$5 = (mset$24ptr || (mset$24ptr = new ptrType$54(function() { return mset; }, function($v) { mset = $v; }))).insert(fld); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - alt = _r$5; - /* */ if (!($interfaceIsEqual(alt, $ifaceNil))) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (!($interfaceIsEqual(alt, $ifaceNil))) { */ case 16: - $unused($assertType(alt, ptrType$2)); - $r = check.errorf(alt, 33, "field and method with the same name %s", new sliceType$6([new $String(fld.object.name)])); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.reportAltDecl(fld); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 17: - /* } */ case 14: - _i++; - $s = 11; continue; - case 12: - /* } */ case 3: - $s = -1; return; - /* */ } return; } var $f = {$blk: checkFieldUniqueness, $c: true, $r, _i, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _tuple, alt, base, check, fld, i, m, mset, mset$24ptr, t, $s};return $f; + $ptrType(compiler).prototype.quest = function quest(f1, nongreedy) { + var c, f, f1, i, nongreedy, x, x$1; + c = this; + f = $clone(c.inst(0), frag); + i = (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + x$1, ptrType$2))); + if (nongreedy) { + i.Arg = f1.i; + patchList.copy(f.out, makePatchList(f.i << 1 >>> 0)); + } else { + i.Out = f1.i; + patchList.copy(f.out, makePatchList(((f.i << 1 >>> 0) | 1) >>> 0)); + } + patchList.copy(f.out, $clone(f.out, patchList).append(c.p, $clone(f1.out, patchList))); + return f; }; - $ptrType(Checker).prototype.funcDecl = function funcDecl$1(obj, decl$1) { - var {check, decl$1, fdecl, obj, saved, sig, $s, $r, $c} = $restore(this, {obj, decl$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = [check]; - decl$1 = [decl$1]; - fdecl = [fdecl]; - obj = [obj]; - sig = [sig]; - check[0] = this; - $r = assert($interfaceIsEqual(obj[0].object.typ, $ifaceNil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = assert($interfaceIsEqual(check[0].environment.iota, $ifaceNil)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - sig[0] = new Signature.ptr(ptrType$48.nil, ptrType$48.nil, ptrType.nil, ptrType$16.nil, ptrType$15.nil, ptrType$15.nil, false); - obj[0].object.typ = sig[0]; - saved = obj[0].object.color_; - obj[0].object.color_ = 1; - fdecl[0] = decl$1[0].fdecl; - $r = check[0].funcType(sig[0], fdecl[0].Recv, fdecl[0].Type); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - obj[0].object.color_ = saved; - /* */ if (fdecl[0].Type.TypeParams.NumFields() > 0 && fdecl[0].Body === ptrType$74.nil) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (fdecl[0].Type.TypeParams.NumFields() > 0 && fdecl[0].Body === ptrType$74.nil) { */ case 4: - $r = check[0].softErrorf(fdecl[0].Name, 131, "generic function is missing function body", sliceType$6.nil); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 5: - if (!check[0].conf.IgnoreFuncBodies && !(fdecl[0].Body === ptrType$74.nil)) { - check[0].later((function(check, decl$1, fdecl, obj, sig) { return function Checker·funcDecl·func1() { - var {$s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = check[0].funcBody(decl$1[0], obj[0].object.name, sig[0], fdecl[0].Body, $ifaceNil); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·funcDecl·func1, $c: true, $r, $s};return $f; - }; })(check, decl$1, fdecl, obj, sig)).describef(obj[0], "func %s", new sliceType$6([new $String(obj[0].object.name)])); + $ptrType(compiler).prototype.loop = function loop(f1, nongreedy) { + var c, f, f1, i, nongreedy, x, x$1; + c = this; + f = $clone(c.inst(0), frag); + i = (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + x$1, ptrType$2))); + if (nongreedy) { + i.Arg = f1.i; + patchList.copy(f.out, makePatchList(f.i << 1 >>> 0)); + } else { + i.Out = f1.i; + patchList.copy(f.out, makePatchList(((f.i << 1 >>> 0) | 1) >>> 0)); } - $s = -1; return; - /* */ } return; } var $f = {$blk: funcDecl$1, $c: true, $r, check, decl$1, fdecl, obj, saved, sig, $s};return $f; + $clone(f1.out, patchList).patch(c.p, f.i); + return f; }; - $ptrType(Checker).prototype.declStmt = function declStmt(d) { - var {check, d, pkg, $s, $r, $c} = $restore(this, {d}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = [check]; - pkg = [pkg]; - check[0] = this; - pkg[0] = check[0].pkg; - $r = check[0].walkDecl(d, (function(check, pkg) { return function Checker·declStmt·func1(d$1) { - var {_1, _arg, _arg$1, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, d$1, d$2, d$3, d$4, d$5, i, i$1, i$2, i$3, i$4, init$7, init$8, lhs, lhs$1, lhs0, name, name$1, name$2, name$3, obj, obj$1, obj$2, obj$3, scopePos$2, scopePos$3, scopePos$4, top, top$1, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {d$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ref = d$1; - /* */ if ($assertType(_ref, constDecl, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, varDecl, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, typeDecl, true)[1]) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if ($assertType(_ref, constDecl, true)[1]) { */ case 1: - d$2 = $clone(_ref.$val, constDecl); - top = check[0].delayed.$length; - lhs = $makeSlice(sliceType$33, d$2.spec.Names.$length); - _ref$1 = d$2.spec.Names; - _i = 0; - /* while (true) { */ case 6: - /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 7; continue; } - i = _i; - name = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); - obj = NewConst(name.Pos(), pkg[0], name.Name, $ifaceNil, constant.MakeInt64((new $Int64(0, d$2.iota)))); - ((i < 0 || i >= lhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : lhs.$array[lhs.$offset + i] = obj); - init$7 = $ifaceNil; - if (i < d$2.init.$length) { - init$7 = (x = d$2.init, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - } - $r = check[0].constDecl(obj, d$2.typ, init$7, d$2.inherited); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 6; continue; - case 7: - $r = check[0].processDelayed(top); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$1 = d$2.spec.End(); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - scopePos$2 = _r$1; - _ref$2 = d$2.spec.Names; - _i$1 = 0; - /* while (true) { */ case 11: - /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 12; continue; } - i$1 = _i$1; - name$1 = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); - $r = check[0].declare(check[0].environment.scope, name$1, ((i$1 < 0 || i$1 >= lhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : lhs.$array[lhs.$offset + i$1]), scopePos$2); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$1++; - $s = 11; continue; - case 12: - $s = 5; continue; - /* } else if ($assertType(_ref, varDecl, true)[1]) { */ case 2: - d$3 = $clone(_ref.$val, varDecl); - top$1 = check[0].delayed.$length; - lhs0 = $makeSlice(sliceType$10, d$3.spec.Names.$length); - _ref$3 = d$3.spec.Names; - _i$2 = 0; - while (true) { - if (!(_i$2 < _ref$3.$length)) { break; } - i$2 = _i$2; - name$2 = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]); - ((i$2 < 0 || i$2 >= lhs0.$length) ? ($throwRuntimeError("index out of range"), undefined) : lhs0.$array[lhs0.$offset + i$2] = NewVar(name$2.Pos(), pkg[0], name$2.Name, $ifaceNil)); - _i$2++; - } - _ref$4 = lhs0; - _i$3 = 0; - /* while (true) { */ case 14: - /* if (!(_i$3 < _ref$4.$length)) { break; } */ if(!(_i$3 < _ref$4.$length)) { $s = 15; continue; } - i$3 = _i$3; - obj$1 = ((_i$3 < 0 || _i$3 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$3]); - lhs$1 = sliceType$10.nil; - init$8 = $ifaceNil; - _1 = d$3.spec.Values.$length; - if (_1 === (d$3.spec.Names.$length)) { - init$8 = (x$1 = d$3.spec.Values, ((i$3 < 0 || i$3 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$3])); - } else if (_1 === (1)) { - lhs$1 = lhs0; - init$8 = (x$2 = d$3.spec.Values, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])); - } else if (i$3 < d$3.spec.Values.$length) { - init$8 = (x$3 = d$3.spec.Values, ((i$3 < 0 || i$3 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + i$3])); - } - $r = check[0].varDecl(obj$1, lhs$1, d$3.spec.Type, init$8); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (d$3.spec.Values.$length === 1) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (d$3.spec.Values.$length === 1) { */ case 17: - /* */ if (false) { $s = 19; continue; } - /* */ $s = 20; continue; - /* if (false) { */ case 19: - _ref$5 = lhs0; - _i$4 = 0; - /* while (true) { */ case 21: - /* if (!(_i$4 < _ref$5.$length)) { break; } */ if(!(_i$4 < _ref$5.$length)) { $s = 22; continue; } - obj$2 = ((_i$4 < 0 || _i$4 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$4]); - $r = assert(!($interfaceIsEqual(obj$2.object.typ, $ifaceNil))); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$4++; - $s = 21; continue; - case 22: - /* } */ case 20: - /* break; */ $s = 15; continue; - /* } */ case 18: - _i$3++; - $s = 14; continue; - case 15: - $r = check[0].processDelayed(top$1); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$2 = d$3.spec.End(); /* */ $s = 25; case 25: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - scopePos$3 = _r$2; - _ref$6 = d$3.spec.Names; - _i$5 = 0; - /* while (true) { */ case 26: - /* if (!(_i$5 < _ref$6.$length)) { break; } */ if(!(_i$5 < _ref$6.$length)) { $s = 27; continue; } - i$4 = _i$5; - name$3 = ((_i$5 < 0 || _i$5 >= _ref$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$6.$array[_ref$6.$offset + _i$5]); - $r = check[0].declare(check[0].environment.scope, name$3, ((i$4 < 0 || i$4 >= lhs0.$length) ? ($throwRuntimeError("index out of range"), undefined) : lhs0.$array[lhs0.$offset + i$4]), scopePos$3); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$5++; - $s = 26; continue; - case 27: - $s = 5; continue; - /* } else if ($assertType(_ref, typeDecl, true)[1]) { */ case 3: - d$4 = $clone(_ref.$val, typeDecl); - obj$3 = NewTypeName(d$4.spec.Name.Pos(), pkg[0], d$4.spec.Name.Name, $ifaceNil); - scopePos$4 = d$4.spec.Name.Pos(); - $r = check[0].declare(check[0].environment.scope, d$4.spec.Name, obj$3, scopePos$4); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = obj$3.object.setColor(2 + ((check[0].push(obj$3) >>> 0)) >>> 0); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].typeDecl(obj$3, d$4.spec, ptrType$9.nil); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].pop().setColor(1); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 5; continue; - /* } else { */ case 4: - d$5 = _ref; - _r$3 = d$5.node(); /* */ $s = 33; case 33: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _arg = _r$3; - _r$4 = d$5.node(); /* */ $s = 34; case 34: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _arg$1 = _r$4; - $r = check[0].errorf(_arg, -1, "unknown ast.Decl node %T", new sliceType$6([_arg$1])); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 5: - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·declStmt·func1, $c: true, $r, _1, _arg, _arg$1, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, d$1, d$2, d$3, d$4, d$5, i, i$1, i$2, i$3, i$4, init$7, init$8, lhs, lhs$1, lhs0, name, name$1, name$2, name$3, obj, obj$1, obj$2, obj$3, scopePos$2, scopePos$3, scopePos$4, top, top$1, x, x$1, x$2, x$3, $s};return $f; - }; })(check, pkg)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: declStmt, $c: true, $r, check, d, pkg, $s};return $f; + $ptrType(compiler).prototype.star = function star(f1, nongreedy) { + var c, f1, nongreedy; + c = this; + if (f1.nullable) { + return c.quest($clone(c.plus($clone(f1, frag), nongreedy), frag), nongreedy); + } + return c.loop($clone(f1, frag), nongreedy); }; - $ptrType(Checker).prototype.conversion = function conversion(x, T) { - var {T, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _v, _v$1, _v$2, _v$3, _v$4, cause, check, constArg, constConvertibleTo, final$1, ok, x, $s, $r, $c} = $restore(this, {x, T}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - T = [T]; - cause = [cause]; - check = [check]; - constConvertibleTo = [constConvertibleTo]; - x = [x]; - check[0] = this; - constArg = x[0].mode === 4; - constConvertibleTo[0] = (function(T, cause, check, constConvertibleTo, x) { return function Checker·conversion·func1(T$1, val) { - var {T$1, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, _v, codepoint, i, ok, t, val, $s, $r, $c} = $restore(this, {T$1, val}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = under(T$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = $assertType(_r$1, ptrType$8, true); - t = _tuple[0]; - /* */ if (t === ptrType$8.nil) { $s = 3; continue; } - _r$2 = representableConst(x[0].val, check[0], t, val); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (_r$2) { $s = 4; continue; } - _r$3 = isInteger(x[0].typ); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - if (!(_r$3)) { _v = false; $s = 8; continue s; } - _r$4 = isString(t); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _v = _r$4; case 8: - /* */ if (_v) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (t === ptrType$8.nil) { */ case 3: - $s = 6; continue; - /* } else if (_r$2) { */ case 4: - $s = -1; return true; - /* } else if (_v) { */ case 5: - codepoint = 65533; - _r$5 = constant.Uint64Val(x[0].val); /* */ $s = 11; case 11: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _tuple$1 = _r$5; - i = _tuple$1[0]; - ok = _tuple$1[1]; - if (ok && (i.$high < 0 || (i.$high === 0 && i.$low <= 1114111))) { - codepoint = ((i.$low >> 0)); - } - if (!(val === ptrType$50.nil)) { - val.$set(constant.MakeString(($encodeRune(codepoint)))); - } - $s = -1; return true; - /* } */ case 6: - case 1: - $s = -1; return false; - /* */ } return; } var $f = {$blk: Checker·conversion·func1, $c: true, $r, T$1, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, _v, codepoint, i, ok, t, val, $s};return $f; - }; })(T, cause, check, constConvertibleTo, x); - ok = false; - cause[0] = ""; - if (!(constArg)) { _v = false; $s = 6; continue s; } - _r$1 = isConstType(T[0]); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = _r$1; case 6: - /* */ if (_v) { $s = 2; continue; } - /* */ if (constArg && isTypeParam(T[0])) { $s = 3; continue; } - _r$2 = x[0].convertibleTo(check[0], T[0], (cause.$ptr || (cause.$ptr = new ptrType$34(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, cause)))); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (_r$2) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_v) { */ case 2: - _r$3 = constConvertibleTo[0](T[0], (x[0].$ptr_val || (x[0].$ptr_val = new ptrType$50(function() { return this.$target.val; }, function($v) { this.$target.val = $v; }, x[0])))); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - ok = _r$3; - $s = 5; continue; - /* } else if (constArg && isTypeParam(T[0])) { */ case 3: - _r$4 = $assertType(T[0], ptrType$14).underIs((function(T, cause, check, constConvertibleTo, x) { return function Checker·conversion·func2(u) { - var {_r$4, _r$5, _r$6, _r$7, _r$8, _v$1, u, $s, $r, $c} = $restore(this, {u}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - /* */ if ($interfaceIsEqual(u, $ifaceNil)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if ($interfaceIsEqual(u, $ifaceNil)) { */ case 1: - _r$4 = check[0].sprintf("%s does not contain specific types", new sliceType$6([T[0]])); /* */ $s = 3; case 3: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - cause[0] = _r$4; - $s = -1; return false; - /* } */ case 2: - _r$5 = isString(x[0].typ); /* */ $s = 7; case 7: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - if (!(_r$5)) { _v$1 = false; $s = 6; continue s; } - _r$6 = isBytesOrRunes(u); /* */ $s = 8; case 8: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _v$1 = _r$6; case 6: - /* */ if (_v$1) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_v$1) { */ case 4: - $s = -1; return true; - /* } */ case 5: - _r$7 = constConvertibleTo[0](u, ptrType$50.nil); /* */ $s = 11; case 11: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - /* */ if (!_r$7) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (!_r$7) { */ case 9: - _r$8 = check[0].sprintf("cannot convert %s to type %s (in %s)", new sliceType$6([x[0], u, T[0]])); /* */ $s = 12; case 12: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - cause[0] = _r$8; - $s = -1; return false; - /* } */ case 10: - $s = -1; return true; - /* */ } return; } var $f = {$blk: Checker·conversion·func2, $c: true, $r, _r$4, _r$5, _r$6, _r$7, _r$8, _v$1, u, $s};return $f; - }; })(T, cause, check, constConvertibleTo, x)); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - ok = _r$4; - x[0].mode = 7; - $s = 5; continue; - /* } else if (_r$2) { */ case 4: - ok = true; - x[0].mode = 7; - /* } */ case 5: - case 1: - /* */ if (!ok) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (!ok) { */ case 11: - /* */ if (!(cause[0] === "")) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (!(cause[0] === "")) { */ case 13: - $r = check[0].errorf(x[0], 96, "cannot convert %s to type %s: %s", new sliceType$6([x[0], T[0], new $String(cause[0])])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 15; continue; - /* } else { */ case 14: - $r = check[0].errorf(x[0], 96, "cannot convert %s to type %s", new sliceType$6([x[0], T[0]])); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 15: - x[0].mode = 0; - $s = -1; return; - /* } */ case 12: - /* */ if (isUntyped(x[0].typ)) { $s = 18; continue; } - /* */ $s = 19; continue; - /* if (isUntyped(x[0].typ)) { */ case 18: - final$1 = T[0]; - _r$5 = isNonTypeParamInterface(T[0]); /* */ $s = 24; case 24: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - if (_r$5) { _v$1 = true; $s = 23; continue s; } - if (!(constArg)) { _v$2 = false; $s = 25; continue s; } - _r$6 = isConstType(T[0]); /* */ $s = 26; case 26: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _v$2 = !_r$6; case 25: - _v$1 = _v$2; case 23: - /* */ if (_v$1 || x[0].isNil()) { $s = 20; continue; } - if (!(x[0].mode === 4)) { _v$4 = false; $s = 28; continue s; } - _r$7 = isInteger(x[0].typ); /* */ $s = 29; case 29: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _v$4 = _r$7; case 28: - if (!(_v$4)) { _v$3 = false; $s = 27; continue s; } - _r$8 = allString(T[0]); /* */ $s = 30; case 30: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _v$3 = _r$8; case 27: - /* */ if (_v$3) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if (_v$1 || x[0].isNil()) { */ case 20: - final$1 = Default(x[0].typ); - $s = 22; continue; - /* } else if (_v$3) { */ case 21: - final$1 = x[0].typ; - /* } */ case 22: - $r = check[0].updateExprType(x[0].expr, final$1, true); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 19: - x[0].typ = T[0]; - $s = -1; return; - /* */ } return; } var $f = {$blk: conversion, $c: true, $r, T, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _v, _v$1, _v$2, _v$3, _v$4, cause, check, constArg, constConvertibleTo, final$1, ok, x, $s};return $f; + $ptrType(compiler).prototype.plus = function plus(f1, nongreedy) { + var c, f1, nongreedy; + c = this; + return new frag.ptr(f1.i, $clone(c.loop($clone(f1, frag), nongreedy).out, patchList), f1.nullable); + }; + $ptrType(compiler).prototype.empty = function empty(op$2) { + var c, f, op$2, x, x$1; + c = this; + f = $clone(c.inst(3), frag); + (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Arg = ((op$2 >>> 0)); + patchList.copy(f.out, makePatchList(f.i << 1 >>> 0)); + return f; + }; + $ptrType(compiler).prototype.rune = function rune(r, flags) { + var c, f, flags, i, r, x, x$1; + c = this; + f = $clone(c.inst(7), frag); + f.nullable = false; + i = (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + x$1, ptrType$2))); + i.Rune = r; + flags = (flags & (1)) >>> 0; + if (!((r.$length === 1)) || (unicode.SimpleFold((0 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 0])) === (0 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 0]))) { + flags = (flags & ~(1)) << 16 >>> 16; + } + i.Arg = ((flags >>> 0)); + patchList.copy(f.out, makePatchList(f.i << 1 >>> 0)); + if ((((flags & 1) >>> 0) === 0) && ((r.$length === 1) || (r.$length === 2) && ((0 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 0]) === (1 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 1])))) { + i.Op = 8; + } else if ((r.$length === 2) && ((0 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 0]) === 0) && ((1 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 1]) === 1114111)) { + i.Op = 9; + } else if ((r.$length === 4) && ((0 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 0]) === 0) && ((1 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 1]) === 9) && ((2 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 2]) === 11) && ((3 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 3]) === 1114111)) { + i.Op = 10; + } + return f; + }; + ptrType.methods = [{prop: "Simplify", name: "Simplify", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "Equal", name: "Equal", pkg: "", typ: $funcType([ptrType], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "MaxCap", name: "MaxCap", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "CapNames", name: "CapNames", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "capNames", name: "capNames", pkg: "regexp/syntax", typ: $funcType([sliceType], [], false)}]; + Op.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$6.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "skipNop", name: "skipNop", pkg: "regexp/syntax", typ: $funcType([$Uint32], [ptrType$2], false)}, {prop: "Prefix", name: "Prefix", pkg: "", typ: $funcType([], [$String, $Bool], false)}, {prop: "StartCond", name: "StartCond", pkg: "", typ: $funcType([], [EmptyOp], false)}]; + InstOp.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$2.methods = [{prop: "op", name: "op", pkg: "regexp/syntax", typ: $funcType([], [InstOp], false)}, {prop: "MatchRune", name: "MatchRune", pkg: "", typ: $funcType([$Int32], [$Bool], false)}, {prop: "MatchRunePos", name: "MatchRunePos", pkg: "", typ: $funcType([$Int32], [$Int], false)}, {prop: "MatchEmptyWidth", name: "MatchEmptyWidth", pkg: "", typ: $funcType([$Int32, $Int32], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$7.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + ErrorCode.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$4.methods = [{prop: "newRegexp", name: "newRegexp", pkg: "regexp/syntax", typ: $funcType([Op], [ptrType], false)}, {prop: "reuse", name: "reuse", pkg: "regexp/syntax", typ: $funcType([ptrType], [], false)}, {prop: "checkLimits", name: "checkLimits", pkg: "regexp/syntax", typ: $funcType([ptrType], [], false)}, {prop: "checkSize", name: "checkSize", pkg: "regexp/syntax", typ: $funcType([ptrType], [], false)}, {prop: "calcSize", name: "calcSize", pkg: "regexp/syntax", typ: $funcType([ptrType, $Bool], [$Int64], false)}, {prop: "checkHeight", name: "checkHeight", pkg: "regexp/syntax", typ: $funcType([ptrType], [], false)}, {prop: "calcHeight", name: "calcHeight", pkg: "regexp/syntax", typ: $funcType([ptrType, $Bool], [$Int], false)}, {prop: "push", name: "push", pkg: "regexp/syntax", typ: $funcType([ptrType], [ptrType], false)}, {prop: "maybeConcat", name: "maybeConcat", pkg: "regexp/syntax", typ: $funcType([$Int32, Flags], [$Bool], false)}, {prop: "literal", name: "literal", pkg: "regexp/syntax", typ: $funcType([$Int32], [], false)}, {prop: "op", name: "op", pkg: "regexp/syntax", typ: $funcType([Op], [ptrType], false)}, {prop: "repeat", name: "repeat", pkg: "regexp/syntax", typ: $funcType([Op, $Int, $Int, $String, $String, $String], [$String, $error], false)}, {prop: "concat", name: "concat", pkg: "regexp/syntax", typ: $funcType([], [ptrType], false)}, {prop: "alternate", name: "alternate", pkg: "regexp/syntax", typ: $funcType([], [ptrType], false)}, {prop: "collapse", name: "collapse", pkg: "regexp/syntax", typ: $funcType([sliceType$4, Op], [ptrType], false)}, {prop: "factor", name: "factor", pkg: "regexp/syntax", typ: $funcType([sliceType$4], [sliceType$4], false)}, {prop: "leadingString", name: "leadingString", pkg: "regexp/syntax", typ: $funcType([ptrType], [sliceType$1, Flags], false)}, {prop: "removeLeadingString", name: "removeLeadingString", pkg: "regexp/syntax", typ: $funcType([ptrType, $Int], [ptrType], false)}, {prop: "leadingRegexp", name: "leadingRegexp", pkg: "regexp/syntax", typ: $funcType([ptrType], [ptrType], false)}, {prop: "removeLeadingRegexp", name: "removeLeadingRegexp", pkg: "regexp/syntax", typ: $funcType([ptrType, $Bool], [ptrType], false)}, {prop: "parseRepeat", name: "parseRepeat", pkg: "regexp/syntax", typ: $funcType([$String], [$Int, $Int, $String, $Bool], false)}, {prop: "parsePerlFlags", name: "parsePerlFlags", pkg: "regexp/syntax", typ: $funcType([$String], [$String, $error], false)}, {prop: "parseInt", name: "parseInt", pkg: "regexp/syntax", typ: $funcType([$String], [$Int, $String, $Bool], false)}, {prop: "parseVerticalBar", name: "parseVerticalBar", pkg: "regexp/syntax", typ: $funcType([], [$error], false)}, {prop: "swapVerticalBar", name: "swapVerticalBar", pkg: "regexp/syntax", typ: $funcType([], [$Bool], false)}, {prop: "parseRightParen", name: "parseRightParen", pkg: "regexp/syntax", typ: $funcType([], [$error], false)}, {prop: "parseEscape", name: "parseEscape", pkg: "regexp/syntax", typ: $funcType([$String], [$Int32, $String, $error], false)}, {prop: "parseClassChar", name: "parseClassChar", pkg: "regexp/syntax", typ: $funcType([$String, $String], [$Int32, $String, $error], false)}, {prop: "parsePerlClassEscape", name: "parsePerlClassEscape", pkg: "regexp/syntax", typ: $funcType([$String, sliceType$1], [sliceType$1, $String], false)}, {prop: "parseNamedClass", name: "parseNamedClass", pkg: "regexp/syntax", typ: $funcType([$String, sliceType$1], [sliceType$1, $String, $error], false)}, {prop: "appendGroup", name: "appendGroup", pkg: "regexp/syntax", typ: $funcType([sliceType$1, charGroup], [sliceType$1], false)}, {prop: "parseUnicodeClass", name: "parseUnicodeClass", pkg: "regexp/syntax", typ: $funcType([$String, sliceType$1], [sliceType$1, $String, $error], false)}, {prop: "parseClass", name: "parseClass", pkg: "regexp/syntax", typ: $funcType([$String], [$String, $error], false)}]; + ranges.methods = [{prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}]; + patchList.methods = [{prop: "patch", name: "patch", pkg: "regexp/syntax", typ: $funcType([ptrType$6, $Uint32], [], false)}, {prop: "append", name: "append", pkg: "regexp/syntax", typ: $funcType([ptrType$6, patchList], [patchList], false)}]; + ptrType$8.methods = [{prop: "init", name: "init", pkg: "regexp/syntax", typ: $funcType([], [], false)}, {prop: "compile", name: "compile", pkg: "regexp/syntax", typ: $funcType([ptrType], [frag], false)}, {prop: "inst", name: "inst", pkg: "regexp/syntax", typ: $funcType([InstOp], [frag], false)}, {prop: "nop", name: "nop", pkg: "regexp/syntax", typ: $funcType([], [frag], false)}, {prop: "fail", name: "fail", pkg: "regexp/syntax", typ: $funcType([], [frag], false)}, {prop: "cap", name: "cap", pkg: "regexp/syntax", typ: $funcType([$Uint32], [frag], false)}, {prop: "cat", name: "cat", pkg: "regexp/syntax", typ: $funcType([frag, frag], [frag], false)}, {prop: "alt", name: "alt", pkg: "regexp/syntax", typ: $funcType([frag, frag], [frag], false)}, {prop: "quest", name: "quest", pkg: "regexp/syntax", typ: $funcType([frag, $Bool], [frag], false)}, {prop: "loop", name: "loop", pkg: "regexp/syntax", typ: $funcType([frag, $Bool], [frag], false)}, {prop: "star", name: "star", pkg: "regexp/syntax", typ: $funcType([frag, $Bool], [frag], false)}, {prop: "plus", name: "plus", pkg: "regexp/syntax", typ: $funcType([frag, $Bool], [frag], false)}, {prop: "empty", name: "empty", pkg: "regexp/syntax", typ: $funcType([EmptyOp], [frag], false)}, {prop: "rune", name: "rune", pkg: "regexp/syntax", typ: $funcType([sliceType$1, Flags], [frag], false)}]; + Regexp.init("", [{prop: "Op", name: "Op", embedded: false, exported: true, typ: Op, tag: ""}, {prop: "Flags", name: "Flags", embedded: false, exported: true, typ: Flags, tag: ""}, {prop: "Sub", name: "Sub", embedded: false, exported: true, typ: sliceType$4, tag: ""}, {prop: "Sub0", name: "Sub0", embedded: false, exported: true, typ: arrayType, tag: ""}, {prop: "Rune", name: "Rune", embedded: false, exported: true, typ: sliceType$1, tag: ""}, {prop: "Rune0", name: "Rune0", embedded: false, exported: true, typ: arrayType$1, tag: ""}, {prop: "Min", name: "Min", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Max", name: "Max", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Cap", name: "Cap", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}]); + Prog.init("", [{prop: "Inst", name: "Inst", embedded: false, exported: true, typ: sliceType$6, tag: ""}, {prop: "Start", name: "Start", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "NumCap", name: "NumCap", embedded: false, exported: true, typ: $Int, tag: ""}]); + Inst.init("", [{prop: "Op", name: "Op", embedded: false, exported: true, typ: InstOp, tag: ""}, {prop: "Out", name: "Out", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Arg", name: "Arg", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Rune", name: "Rune", embedded: false, exported: true, typ: sliceType$1, tag: ""}]); + Error.init("", [{prop: "Code", name: "Code", embedded: false, exported: true, typ: ErrorCode, tag: ""}, {prop: "Expr", name: "Expr", embedded: false, exported: true, typ: $String, tag: ""}]); + parser.init("regexp/syntax", [{prop: "flags", name: "flags", embedded: false, exported: false, typ: Flags, tag: ""}, {prop: "stack", name: "stack", embedded: false, exported: false, typ: sliceType$4, tag: ""}, {prop: "free", name: "free", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "numCap", name: "numCap", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "wholeRegexp", name: "wholeRegexp", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "tmpClass", name: "tmpClass", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "numRegexp", name: "numRegexp", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "numRunes", name: "numRunes", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "repeats", name: "repeats", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "height", name: "height", embedded: false, exported: false, typ: mapType, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: mapType$1, tag: ""}]); + charGroup.init("regexp/syntax", [{prop: "sign", name: "sign", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "class$1", name: "class", embedded: false, exported: false, typ: sliceType$1, tag: ""}]); + ranges.init("regexp/syntax", [{prop: "p", name: "p", embedded: false, exported: false, typ: ptrType$3, tag: ""}]); + patchList.init("regexp/syntax", [{prop: "head", name: "head", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "tail", name: "tail", embedded: false, exported: false, typ: $Uint32, tag: ""}]); + frag.init("regexp/syntax", [{prop: "i", name: "i", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "out", name: "out", embedded: false, exported: false, typ: patchList, tag: ""}, {prop: "nullable", name: "nullable", embedded: false, exported: false, typ: $Bool, tag: ""}]); + compiler.init("regexp/syntax", [{prop: "p", name: "p", embedded: false, exported: false, typ: ptrType$6, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = sort.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unicode.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + instOpNames = new sliceType(["InstAlt", "InstAltMatch", "InstCapture", "InstEmptyWidth", "InstMatch", "InstFail", "InstNop", "InstRune", "InstRune1", "InstRuneAny", "InstRuneAnyNotNL"]); + code1 = new sliceType$1([48, 57]); + code2 = new sliceType$1([9, 10, 12, 13, 32, 32]); + code3 = new sliceType$1([48, 57, 65, 90, 95, 95, 97, 122]); + perlGroup = $makeMap($String.keyFor, [{ k: "\\d", v: $clone(new charGroup.ptr(1, code1), charGroup) }, { k: "\\D", v: $clone(new charGroup.ptr(-1, code1), charGroup) }, { k: "\\s", v: $clone(new charGroup.ptr(1, code2), charGroup) }, { k: "\\S", v: $clone(new charGroup.ptr(-1, code2), charGroup) }, { k: "\\w", v: $clone(new charGroup.ptr(1, code3), charGroup) }, { k: "\\W", v: $clone(new charGroup.ptr(-1, code3), charGroup) }]); + code4 = new sliceType$1([48, 57, 65, 90, 97, 122]); + code5 = new sliceType$1([65, 90, 97, 122]); + code6 = new sliceType$1([0, 127]); + code7 = new sliceType$1([9, 9, 32, 32]); + code8 = new sliceType$1([0, 31, 127, 127]); + code9 = new sliceType$1([48, 57]); + code10 = new sliceType$1([33, 126]); + code11 = new sliceType$1([97, 122]); + code12 = new sliceType$1([32, 126]); + code13 = new sliceType$1([33, 47, 58, 64, 91, 96, 123, 126]); + code14 = new sliceType$1([9, 13, 32, 32]); + code15 = new sliceType$1([65, 90]); + code16 = new sliceType$1([48, 57, 65, 90, 95, 95, 97, 122]); + code17 = new sliceType$1([48, 57, 65, 70, 97, 102]); + posixGroup = $makeMap($String.keyFor, [{ k: "[:alnum:]", v: $clone(new charGroup.ptr(1, code4), charGroup) }, { k: "[:^alnum:]", v: $clone(new charGroup.ptr(-1, code4), charGroup) }, { k: "[:alpha:]", v: $clone(new charGroup.ptr(1, code5), charGroup) }, { k: "[:^alpha:]", v: $clone(new charGroup.ptr(-1, code5), charGroup) }, { k: "[:ascii:]", v: $clone(new charGroup.ptr(1, code6), charGroup) }, { k: "[:^ascii:]", v: $clone(new charGroup.ptr(-1, code6), charGroup) }, { k: "[:blank:]", v: $clone(new charGroup.ptr(1, code7), charGroup) }, { k: "[:^blank:]", v: $clone(new charGroup.ptr(-1, code7), charGroup) }, { k: "[:cntrl:]", v: $clone(new charGroup.ptr(1, code8), charGroup) }, { k: "[:^cntrl:]", v: $clone(new charGroup.ptr(-1, code8), charGroup) }, { k: "[:digit:]", v: $clone(new charGroup.ptr(1, code9), charGroup) }, { k: "[:^digit:]", v: $clone(new charGroup.ptr(-1, code9), charGroup) }, { k: "[:graph:]", v: $clone(new charGroup.ptr(1, code10), charGroup) }, { k: "[:^graph:]", v: $clone(new charGroup.ptr(-1, code10), charGroup) }, { k: "[:lower:]", v: $clone(new charGroup.ptr(1, code11), charGroup) }, { k: "[:^lower:]", v: $clone(new charGroup.ptr(-1, code11), charGroup) }, { k: "[:print:]", v: $clone(new charGroup.ptr(1, code12), charGroup) }, { k: "[:^print:]", v: $clone(new charGroup.ptr(-1, code12), charGroup) }, { k: "[:punct:]", v: $clone(new charGroup.ptr(1, code13), charGroup) }, { k: "[:^punct:]", v: $clone(new charGroup.ptr(-1, code13), charGroup) }, { k: "[:space:]", v: $clone(new charGroup.ptr(1, code14), charGroup) }, { k: "[:^space:]", v: $clone(new charGroup.ptr(-1, code14), charGroup) }, { k: "[:upper:]", v: $clone(new charGroup.ptr(1, code15), charGroup) }, { k: "[:^upper:]", v: $clone(new charGroup.ptr(-1, code15), charGroup) }, { k: "[:word:]", v: $clone(new charGroup.ptr(1, code16), charGroup) }, { k: "[:^word:]", v: $clone(new charGroup.ptr(-1, code16), charGroup) }, { k: "[:xdigit:]", v: $clone(new charGroup.ptr(1, code17), charGroup) }, { k: "[:^xdigit:]", v: $clone(new charGroup.ptr(-1, code17), charGroup) }]); + anyTable = new unicode.RangeTable.ptr(new sliceType$2([$clone(new unicode.Range16.ptr(0, 65535, 1), unicode.Range16)]), new sliceType$3([$clone(new unicode.Range32.ptr(65536, 1114111, 1), unicode.Range32)]), 0); + _Op_index_0 = $toNativeArray($kindUint8, [0, 7, 17, 24, 33, 45, 52, 61, 68, 77, 84, 96, 110, 117, 121, 125, 130, 136, 142, 151]); + anyRuneNotNL = new sliceType$1([0, 9, 11, 1114111]); + anyRune = new sliceType$1([0, 1114111]); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["regexp"] = (function() { + var $pkg = {}, $init, bytes, nosync, io, syntax, sort, strconv, strings, unicode, utf8, Regexp, input, inputString, inputBytes, inputReader, onePassProg, onePassInst, queueOnePass, runeSlice, queue, entry, thread, machine, inputs, lazyFlag, onePassMachine, job, bitState, sliceType, arrayType, arrayType$1, arrayType$2, sliceType$1, sliceType$2, ptrType, ptrType$1, ptrType$2, sliceType$3, sliceType$4, ptrType$3, ptrType$4, sliceType$5, ptrType$5, sliceType$6, sliceType$7, arrayType$3, arrayType$4, sliceType$8, sliceType$9, sliceType$10, sliceType$11, ptrType$6, ptrType$7, ptrType$8, ptrType$9, sliceType$12, ptrType$10, sliceType$13, ptrType$11, ptrType$12, sliceType$14, ptrType$13, ptrType$14, ptrType$15, ptrType$16, sliceType$15, funcType, funcType$1, funcType$2, funcType$3, ptrType$17, ptrType$18, ptrType$19, ptrType$20, ptrType$21, matchPool, specialBytes, onePassPool, arrayNoInts, bitStatePool, matchSize, noRune, noNext, anyRuneNotNL, anyRune, Compile, compile, minInputLen, MustCompile, quote, special, init, QuoteMeta, extract, onePassPrefix, onePassNext, iop, newQueue, mergeRuneSets, cleanupOnePass, onePassCopy, makeOnePass, compileOnePass, newLazyFlag, newOnePassMachine, freeOnePassMachine, newBitState, freeBitState, maxBitStateLen, shouldBacktrack; + bytes = $packages["bytes"]; + nosync = $packages["github.com/gopherjs/gopherjs/nosync"]; + io = $packages["io"]; + syntax = $packages["regexp/syntax"]; + sort = $packages["sort"]; + strconv = $packages["strconv"]; + strings = $packages["strings"]; + unicode = $packages["unicode"]; + utf8 = $packages["unicode/utf8"]; + Regexp = $newType(0, $kindStruct, "regexp.Regexp", true, "regexp", true, function(expr_, prog_, onepass_, numSubexp_, maxBitStateLen_, subexpNames_, prefix_, prefixBytes_, prefixRune_, prefixEnd_, mpool_, matchcap_, prefixComplete_, cond_, minInputLen_, longest_) { + this.$val = this; + if (arguments.length === 0) { + this.expr = ""; + this.prog = ptrType$1.nil; + this.onepass = ptrType$2.nil; + this.numSubexp = 0; + this.maxBitStateLen = 0; + this.subexpNames = sliceType$3.nil; + this.prefix = ""; + this.prefixBytes = sliceType$4.nil; + this.prefixRune = 0; + this.prefixEnd = 0; + this.mpool = 0; + this.matchcap = 0; + this.prefixComplete = false; + this.cond = 0; + this.minInputLen = 0; + this.longest = false; + return; + } + this.expr = expr_; + this.prog = prog_; + this.onepass = onepass_; + this.numSubexp = numSubexp_; + this.maxBitStateLen = maxBitStateLen_; + this.subexpNames = subexpNames_; + this.prefix = prefix_; + this.prefixBytes = prefixBytes_; + this.prefixRune = prefixRune_; + this.prefixEnd = prefixEnd_; + this.mpool = mpool_; + this.matchcap = matchcap_; + this.prefixComplete = prefixComplete_; + this.cond = cond_; + this.minInputLen = minInputLen_; + this.longest = longest_; + }); + input = $newType(8, $kindInterface, "regexp.input", true, "regexp", false, null); + inputString = $newType(0, $kindStruct, "regexp.inputString", true, "regexp", false, function(str_) { + this.$val = this; + if (arguments.length === 0) { + this.str = ""; + return; + } + this.str = str_; + }); + inputBytes = $newType(0, $kindStruct, "regexp.inputBytes", true, "regexp", false, function(str_) { + this.$val = this; + if (arguments.length === 0) { + this.str = sliceType$4.nil; + return; + } + this.str = str_; + }); + inputReader = $newType(0, $kindStruct, "regexp.inputReader", true, "regexp", false, function(r_, atEOT_, pos_) { + this.$val = this; + if (arguments.length === 0) { + this.r = $ifaceNil; + this.atEOT = false; + this.pos = 0; + return; + } + this.r = r_; + this.atEOT = atEOT_; + this.pos = pos_; + }); + onePassProg = $newType(0, $kindStruct, "regexp.onePassProg", true, "regexp", false, function(Inst_, Start_, NumCap_) { + this.$val = this; + if (arguments.length === 0) { + this.Inst = sliceType$12.nil; + this.Start = 0; + this.NumCap = 0; + return; + } + this.Inst = Inst_; + this.Start = Start_; + this.NumCap = NumCap_; + }); + onePassInst = $newType(0, $kindStruct, "regexp.onePassInst", true, "regexp", false, function(Inst_, Next_) { + this.$val = this; + if (arguments.length === 0) { + this.Inst = new syntax.Inst.ptr(0, 0, 0, sliceType$1.nil); + this.Next = sliceType$2.nil; + return; + } + this.Inst = Inst_; + this.Next = Next_; + }); + queueOnePass = $newType(0, $kindStruct, "regexp.queueOnePass", true, "regexp", false, function(sparse_, dense_, size_, nextIndex_) { + this.$val = this; + if (arguments.length === 0) { + this.sparse = sliceType$2.nil; + this.dense = sliceType$2.nil; + this.size = 0; + this.nextIndex = 0; + return; + } + this.sparse = sparse_; + this.dense = dense_; + this.size = size_; + this.nextIndex = nextIndex_; + }); + runeSlice = $newType(12, $kindSlice, "regexp.runeSlice", true, "regexp", false, null); + queue = $newType(0, $kindStruct, "regexp.queue", true, "regexp", false, function(sparse_, dense_) { + this.$val = this; + if (arguments.length === 0) { + this.sparse = sliceType$2.nil; + this.dense = sliceType$5.nil; + return; + } + this.sparse = sparse_; + this.dense = dense_; + }); + entry = $newType(0, $kindStruct, "regexp.entry", true, "regexp", false, function(pc_, t_) { + this.$val = this; + if (arguments.length === 0) { + this.pc = 0; + this.t = ptrType$5.nil; + return; + } + this.pc = pc_; + this.t = t_; + }); + thread = $newType(0, $kindStruct, "regexp.thread", true, "regexp", false, function(inst_, cap_) { + this.$val = this; + if (arguments.length === 0) { + this.inst = ptrType$6.nil; + this.cap = sliceType$7.nil; + return; + } + this.inst = inst_; + this.cap = cap_; + }); + machine = $newType(0, $kindStruct, "regexp.machine", true, "regexp", false, function(re_, p_, q0_, q1_, pool_, matched_, matchcap_, inputs_) { + this.$val = this; + if (arguments.length === 0) { + this.re = ptrType.nil; + this.p = ptrType$1.nil; + this.q0 = new queue.ptr(sliceType$2.nil, sliceType$5.nil); + this.q1 = new queue.ptr(sliceType$2.nil, sliceType$5.nil); + this.pool = sliceType$6.nil; + this.matched = false; + this.matchcap = sliceType$7.nil; + this.inputs = new inputs.ptr(new inputBytes.ptr(sliceType$4.nil), new inputString.ptr(""), new inputReader.ptr($ifaceNil, false, 0)); + return; + } + this.re = re_; + this.p = p_; + this.q0 = q0_; + this.q1 = q1_; + this.pool = pool_; + this.matched = matched_; + this.matchcap = matchcap_; + this.inputs = inputs_; + }); + inputs = $newType(0, $kindStruct, "regexp.inputs", true, "regexp", false, function(bytes_, string_, reader_) { + this.$val = this; + if (arguments.length === 0) { + this.bytes = new inputBytes.ptr(sliceType$4.nil); + this.string = new inputString.ptr(""); + this.reader = new inputReader.ptr($ifaceNil, false, 0); + return; + } + this.bytes = bytes_; + this.string = string_; + this.reader = reader_; + }); + lazyFlag = $newType(8, $kindUint64, "regexp.lazyFlag", true, "regexp", false, null); + onePassMachine = $newType(0, $kindStruct, "regexp.onePassMachine", true, "regexp", false, function(inputs_, matchcap_) { + this.$val = this; + if (arguments.length === 0) { + this.inputs = new inputs.ptr(new inputBytes.ptr(sliceType$4.nil), new inputString.ptr(""), new inputReader.ptr($ifaceNil, false, 0)); + this.matchcap = sliceType$7.nil; + return; + } + this.inputs = inputs_; + this.matchcap = matchcap_; + }); + job = $newType(0, $kindStruct, "regexp.job", true, "regexp", false, function(pc_, arg_, pos_) { + this.$val = this; + if (arguments.length === 0) { + this.pc = 0; + this.arg = false; + this.pos = 0; + return; + } + this.pc = pc_; + this.arg = arg_; + this.pos = pos_; + }); + bitState = $newType(0, $kindStruct, "regexp.bitState", true, "regexp", false, function(end_, cap_, matchcap_, jobs_, visited_, inputs_) { + this.$val = this; + if (arguments.length === 0) { + this.end = 0; + this.cap = sliceType$7.nil; + this.matchcap = sliceType$7.nil; + this.jobs = sliceType$15.nil; + this.visited = sliceType$2.nil; + this.inputs = new inputs.ptr(new inputBytes.ptr(sliceType$4.nil), new inputString.ptr(""), new inputReader.ptr($ifaceNil, false, 0)); + return; + } + this.end = end_; + this.cap = cap_; + this.matchcap = matchcap_; + this.jobs = jobs_; + this.visited = visited_; + this.inputs = inputs_; + }); + $pkg.Regexp = Regexp; + $pkg.input = input; + $pkg.inputString = inputString; + $pkg.inputBytes = inputBytes; + $pkg.inputReader = inputReader; + $pkg.onePassProg = onePassProg; + $pkg.onePassInst = onePassInst; + $pkg.queueOnePass = queueOnePass; + $pkg.runeSlice = runeSlice; + $pkg.queue = queue; + $pkg.entry = entry; + $pkg.thread = thread; + $pkg.machine = machine; + $pkg.inputs = inputs; + $pkg.lazyFlag = lazyFlag; + $pkg.onePassMachine = onePassMachine; + $pkg.job = job; + $pkg.bitState = bitState; + $pkg.$finishSetup = function() { + sliceType = $sliceType($emptyInterface); + arrayType = $arrayType(nosync.Pool, 5); + arrayType$1 = $arrayType($Uint8, 16); + arrayType$2 = $arrayType($Int, 0); + sliceType$1 = $sliceType($Int32); + sliceType$2 = $sliceType($Uint32); + ptrType = $ptrType(Regexp); + ptrType$1 = $ptrType(syntax.Prog); + ptrType$2 = $ptrType(onePassProg); + sliceType$3 = $sliceType($String); + sliceType$4 = $sliceType($Uint8); + ptrType$3 = $ptrType(machine); + ptrType$4 = $ptrType(nosync.Pool); + sliceType$5 = $sliceType(entry); + ptrType$5 = $ptrType(thread); + sliceType$6 = $sliceType(ptrType$5); + sliceType$7 = $sliceType($Int); + arrayType$3 = $arrayType($Int, 2); + arrayType$4 = $arrayType($Int, 4); + sliceType$8 = $sliceType(sliceType$4); + sliceType$9 = $sliceType(sliceType$7); + sliceType$10 = $sliceType(sliceType$8); + sliceType$11 = $sliceType(sliceType$3); + ptrType$6 = $ptrType(syntax.Inst); + ptrType$7 = $ptrType(strings.Builder); + ptrType$8 = $ptrType(queueOnePass); + ptrType$9 = $ptrType($Int); + sliceType$12 = $sliceType(onePassInst); + ptrType$10 = $ptrType($Uint32); + sliceType$13 = $sliceType(sliceType$1); + ptrType$11 = $ptrType(onePassInst); + ptrType$12 = $ptrType(sliceType$1); + sliceType$14 = $sliceType($Bool); + ptrType$13 = $ptrType(lazyFlag); + ptrType$14 = $ptrType(entry); + ptrType$15 = $ptrType(onePassMachine); + ptrType$16 = $ptrType(bitState); + sliceType$15 = $sliceType(job); + funcType = $funcType([$String], [$String], false); + funcType$1 = $funcType([sliceType$4, sliceType$7], [sliceType$4], false); + funcType$2 = $funcType([sliceType$4], [sliceType$4], false); + funcType$3 = $funcType([sliceType$7], [], false); + ptrType$17 = $ptrType(inputString); + ptrType$18 = $ptrType(inputBytes); + ptrType$19 = $ptrType(inputReader); + ptrType$20 = $ptrType(queue); + ptrType$21 = $ptrType(inputs); + $ptrType(Regexp).prototype.String = function String() { + var re; + re = this; + return re.expr; }; - $ptrType(operand).prototype.convertibleTo = function convertibleTo(check, T, cause) { - var {$24r, $24r$1, $24r$2, T, T$1, Tp, Tu, V, V$1, Vp, Vu, _arg, _arg$1, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _v, _v$1, _v$2, _v$3, _v$4, _v$5, _v$6, _v$7, _v$8, a, a$1, a$2, cause, check, errorf$2, ok, ok$1, ok$2, s, x, x$1, x$2, $s, $r, $c} = $restore(this, {check, T, cause}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - T = [T]; - Tp = [Tp]; - Vp = [Vp]; - cause = [cause]; - check = [check]; - errorf$2 = [errorf$2]; - x = [x]; - x$1 = [x$1]; - x$2 = [x$2]; - x$2[0] = this; - _r$1 = x$2[0].assignableTo(check[0], T[0], cause[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - ok = _tuple[0]; - if (ok) { - $s = -1; return true; - } - V = x$2[0].typ; - _r$2 = under(V); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - Vu = _r$2; - _r$3 = under(T[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - Tu = _r$3; - _tuple$1 = $assertType(V, ptrType$14, true); - Vp[0] = _tuple$1[0]; - _tuple$2 = $assertType(T[0], ptrType$14, true); - Tp[0] = _tuple$2[0]; - _r$4 = IdenticalIgnoreTags(Vu, Tu); /* */ $s = 6; case 6: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if (_r$4 && Vp[0] === ptrType$14.nil && Tp[0] === ptrType$14.nil) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_r$4 && Vp[0] === ptrType$14.nil && Tp[0] === ptrType$14.nil) { */ case 4: - $s = -1; return true; - /* } */ case 5: - _tuple$3 = $assertType(V, ptrType$26, true); - V$1 = _tuple$3[0]; - ok$1 = _tuple$3[1]; - /* */ if (ok$1) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (ok$1) { */ case 7: - _tuple$4 = $assertType(T[0], ptrType$26, true); - T$1 = _tuple$4[0]; - ok$2 = _tuple$4[1]; - /* */ if (ok$2) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (ok$2) { */ case 9: - _r$5 = under(V$1.base); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _arg = _r$5; - _r$6 = under(T$1.base); /* */ $s = 14; case 14: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _arg$1 = _r$6; - _r$7 = IdenticalIgnoreTags(_arg, _arg$1); /* */ $s = 15; case 15: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - /* */ if (_r$7 && !isTypeParam(V$1.base) && !isTypeParam(T$1.base)) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (_r$7 && !isTypeParam(V$1.base) && !isTypeParam(T$1.base)) { */ case 11: - $s = -1; return true; - /* } */ case 12: - /* } */ case 10: - /* } */ case 8: - _r$8 = isIntegerOrFloat(Vu); /* */ $s = 19; case 19: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - if (!(_r$8)) { _v = false; $s = 18; continue s; } - _r$9 = isIntegerOrFloat(Tu); /* */ $s = 20; case 20: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _v = _r$9; case 18: - /* */ if (_v) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (_v) { */ case 16: - $s = -1; return true; - /* } */ case 17: - _r$10 = isComplex(Vu); /* */ $s = 24; case 24: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - if (!(_r$10)) { _v$1 = false; $s = 23; continue s; } - _r$11 = isComplex(Tu); /* */ $s = 25; case 25: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _v$1 = _r$11; case 23: - /* */ if (_v$1) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if (_v$1) { */ case 21: - $s = -1; return true; - /* } */ case 22: - _r$12 = isInteger(Vu); /* */ $s = 30; case 30: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - if (_r$12) { _v$3 = true; $s = 29; continue s; } - _r$13 = isBytesOrRunes(Vu); /* */ $s = 31; case 31: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - _v$3 = _r$13; case 29: - if (!(_v$3)) { _v$2 = false; $s = 28; continue s; } - _r$14 = isString(Tu); /* */ $s = 32; case 32: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - _v$2 = _r$14; case 28: - /* */ if (_v$2) { $s = 26; continue; } - /* */ $s = 27; continue; - /* if (_v$2) { */ case 26: - $s = -1; return true; - /* } */ case 27: - _r$15 = isString(Vu); /* */ $s = 36; case 36: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - if (!(_r$15)) { _v$4 = false; $s = 35; continue s; } - _r$16 = isBytesOrRunes(Tu); /* */ $s = 37; case 37: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - _v$4 = _r$16; case 35: - /* */ if (_v$4) { $s = 33; continue; } - /* */ $s = 34; continue; - /* if (_v$4) { */ case 33: - $s = -1; return true; - /* } */ case 34: - _r$17 = isPointer(Vu); /* */ $s = 42; case 42: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - if (_r$17) { _v$6 = true; $s = 41; continue s; } - _r$18 = isUintptr(Vu); /* */ $s = 43; case 43: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - _v$6 = _r$18; case 41: - if (!(_v$6)) { _v$5 = false; $s = 40; continue s; } - _r$19 = isUnsafePointer(Tu); /* */ $s = 44; case 44: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - _v$5 = _r$19; case 40: - /* */ if (_v$5) { $s = 38; continue; } - /* */ $s = 39; continue; - /* if (_v$5) { */ case 38: - $s = -1; return true; - /* } */ case 39: - _r$20 = isUnsafePointer(Vu); /* */ $s = 48; case 48: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - if (!(_r$20)) { _v$7 = false; $s = 47; continue s; } - _r$21 = isPointer(Tu); /* */ $s = 50; case 50: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } - if (_r$21) { _v$8 = true; $s = 49; continue s; } - _r$22 = isUintptr(Tu); /* */ $s = 51; case 51: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _v$8 = _r$22; case 49: - _v$7 = _v$8; case 47: - /* */ if (_v$7) { $s = 45; continue; } - /* */ $s = 46; continue; - /* if (_v$7) { */ case 45: - $s = -1; return true; - /* } */ case 46: - _tuple$5 = $assertType(Vu, ptrType$25, true); - s = _tuple$5[0]; - /* */ if (!(s === ptrType$25.nil)) { $s = 52; continue; } - /* */ $s = 53; continue; - /* if (!(s === ptrType$25.nil)) { */ case 52: - _ref = Tu; - /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 54; continue; } - /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 55; continue; } - /* */ $s = 56; continue; - /* if ($assertType(_ref, ptrType$10, true)[1]) { */ case 54: - a = _ref.$val; - _r$23 = Identical(s.Elem(), a.Elem()); /* */ $s = 59; case 59: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - /* */ if (_r$23) { $s = 57; continue; } - /* */ $s = 58; continue; - /* if (_r$23) { */ case 57: - if (check[0] === ptrType$5.nil || check[0].allowVersion(check[0].pkg, 1, 20)) { - $s = -1; return true; - } - if (!(cause[0] === ptrType$34.nil)) { - cause[0].$set("conversion of slices to arrays requires go1.20 or later"); - } - $s = -1; return false; - /* } */ case 58: - $s = 56; continue; - /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 55: - a$1 = _ref.$val; - _r$24 = under(a$1.Elem()); /* */ $s = 60; case 60: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - _tuple$6 = $assertType(_r$24, ptrType$10, true); - a$2 = _tuple$6[0]; - /* */ if (!(a$2 === ptrType$10.nil)) { $s = 61; continue; } - /* */ $s = 62; continue; - /* if (!(a$2 === ptrType$10.nil)) { */ case 61: - _r$25 = Identical(s.Elem(), a$2.Elem()); /* */ $s = 65; case 65: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - /* */ if (_r$25) { $s = 63; continue; } - /* */ $s = 64; continue; - /* if (_r$25) { */ case 63: - if (check[0] === ptrType$5.nil || check[0].allowVersion(check[0].pkg, 1, 17)) { - $s = -1; return true; - } - if (!(cause[0] === ptrType$34.nil)) { - cause[0].$set("conversion of slices to array pointers requires go1.17 or later"); - } - $s = -1; return false; - /* } */ case 64: - /* } */ case 62: - /* } */ case 56: - /* } */ case 53: - if (Vp[0] === ptrType$14.nil && Tp[0] === ptrType$14.nil) { - $s = -1; return false; - } - errorf$2[0] = (function(T, Tp, Vp, cause, check, errorf$2, x, x$1, x$2) { return function operand·convertibleTo·func1(format, args) { - var {_r$26, args, format, msg$1, $s, $r, $c} = $restore(this, {format, args}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - /* */ if (!(check[0] === ptrType$5.nil) && !(cause[0] === ptrType$34.nil)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(check[0] === ptrType$5.nil) && !(cause[0] === ptrType$34.nil)) { */ case 1: - _r$26 = check[0].sprintf(format, args); /* */ $s = 3; case 3: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - msg$1 = _r$26; - if (!(cause[0].$get() === "")) { - msg$1 = msg$1 + ("\n\t" + cause[0].$get()); - } - cause[0].$set(msg$1); - /* } */ case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: operand·convertibleTo·func1, $c: true, $r, _r$26, args, format, msg$1, $s};return $f; - }; })(T, Tp, Vp, cause, check, errorf$2, x, x$1, x$2); - /* */ if (!(Vp[0] === ptrType$14.nil) && !(Tp[0] === ptrType$14.nil)) { $s = 67; continue; } - /* */ if (!(Vp[0] === ptrType$14.nil)) { $s = 68; continue; } - /* */ if (!(Tp[0] === ptrType$14.nil)) { $s = 69; continue; } - /* */ $s = 70; continue; - /* if (!(Vp[0] === ptrType$14.nil) && !(Tp[0] === ptrType$14.nil)) { */ case 67: - x[0] = $clone(x$2[0], operand); - _r$26 = Vp[0].is((function(T, Tp, Vp, cause, check, errorf$2, x, x$1, x$2) { return function operand·convertibleTo·func2(V$2) { - var {$24r, V$2, _r$26, $s, $r, $c} = $restore(this, {V$2}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - V$2 = [V$2]; - if (V$2[0] === ptrType$4.nil) { - $s = -1; return false; - } - x[0].typ = V$2[0].typ; - _r$26 = Tp[0].is((function(T, Tp, V$2, Vp, cause, check, errorf$2, x, x$1, x$2) { return function operand·convertibleTo·func2·func1(T$2) { - var {T$2, _r$26, $s, $r, $c} = $restore(this, {T$2}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (T$2 === ptrType$4.nil) { - $s = -1; return false; - } - _r$26 = x[0].convertibleTo(check[0], T$2.typ, cause[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - /* */ if (!_r$26) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!_r$26) { */ case 1: - $r = errorf$2[0]("cannot convert %s (in %s) to type %s (in %s)", new sliceType$6([V$2[0].typ, Vp[0], T$2.typ, Tp[0]])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return false; - /* } */ case 2: - $s = -1; return true; - /* */ } return; } var $f = {$blk: operand·convertibleTo·func2·func1, $c: true, $r, T$2, _r$26, $s};return $f; - }; })(T, Tp, V$2, Vp, cause, check, errorf$2, x, x$1, x$2)); /* */ $s = 1; case 1: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - $24r = _r$26; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: operand·convertibleTo·func2, $c: true, $r, $24r, V$2, _r$26, $s};return $f; - }; })(T, Tp, Vp, cause, check, errorf$2, x, x$1, x$2)); /* */ $s = 71; case 71: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - $24r = _r$26; - $s = 72; case 72: return $24r; - /* } else if (!(Vp[0] === ptrType$14.nil)) { */ case 68: - x$1[0] = $clone(x$2[0], operand); - _r$27 = Vp[0].is((function(T, Tp, Vp, cause, check, errorf$2, x, x$1, x$2) { return function operand·convertibleTo·func3(V$2) { - var {V$2, _r$27, $s, $r, $c} = $restore(this, {V$2}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (V$2 === ptrType$4.nil) { - $s = -1; return false; - } - x$1[0].typ = V$2.typ; - _r$27 = x$1[0].convertibleTo(check[0], T[0], cause[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - /* */ if (!_r$27) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!_r$27) { */ case 1: - $r = errorf$2[0]("cannot convert %s (in %s) to type %s", new sliceType$6([V$2.typ, Vp[0], T[0]])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return false; - /* } */ case 2: - $s = -1; return true; - /* */ } return; } var $f = {$blk: operand·convertibleTo·func3, $c: true, $r, V$2, _r$27, $s};return $f; - }; })(T, Tp, Vp, cause, check, errorf$2, x, x$1, x$2)); /* */ $s = 73; case 73: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - $24r$1 = _r$27; - $s = 74; case 74: return $24r$1; - /* } else if (!(Tp[0] === ptrType$14.nil)) { */ case 69: - _r$28 = Tp[0].is((function(T, Tp, Vp, cause, check, errorf$2, x, x$1, x$2) { return function operand·convertibleTo·func4(T$2) { - var {T$2, _r$28, $s, $r, $c} = $restore(this, {T$2}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (T$2 === ptrType$4.nil) { - $s = -1; return false; - } - _r$28 = x$2[0].convertibleTo(check[0], T$2.typ, cause[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - /* */ if (!_r$28) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!_r$28) { */ case 1: - $r = errorf$2[0]("cannot convert %s to type %s (in %s)", new sliceType$6([x$2[0].typ, T$2.typ, Tp[0]])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return false; - /* } */ case 2: - $s = -1; return true; - /* */ } return; } var $f = {$blk: operand·convertibleTo·func4, $c: true, $r, T$2, _r$28, $s};return $f; - }; })(T, Tp, Vp, cause, check, errorf$2, x, x$1, x$2)); /* */ $s = 75; case 75: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - $24r$2 = _r$28; - $s = 76; case 76: return $24r$2; - /* } */ case 70: - case 66: - $s = -1; return false; - /* */ } return; } var $f = {$blk: convertibleTo, $c: true, $r, $24r, $24r$1, $24r$2, T, T$1, Tp, Tu, V, V$1, Vp, Vu, _arg, _arg$1, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _v, _v$1, _v$2, _v$3, _v$4, _v$5, _v$6, _v$7, _v$8, a, a$1, a$2, cause, check, errorf$2, ok, ok$1, ok$2, s, x, x$1, x$2, $s};return $f; + $ptrType(Regexp).prototype.Copy = function Copy() { + var re, re2; + re = this; + re2 = $clone((re === ptrType.nil && $throwNilPointerError(), re), Regexp); + return re2; }; - isUintptr = function isUintptr$1(typ$4) { - var {_r$1, _tuple, t, typ$4, $s, $r, $c} = $restore(this, {typ$4}); + Compile = function Compile$1(expr) { + var {$24r, _r, expr, $s, $r, $c} = $restore(this, {expr}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = under(typ$4); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = $assertType(_r$1, ptrType$8, true); - t = _tuple[0]; - $s = -1; return !(t === ptrType$8.nil) && (t.kind === 12); - /* */ } return; } var $f = {$blk: isUintptr$1, $c: true, $r, _r$1, _tuple, t, typ$4, $s};return $f; + _r = compile(expr, 212, false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Compile$1, $c: true, $r, $24r, _r, expr, $s};return $f; }; - isUnsafePointer = function isUnsafePointer$1(typ$4) { - var {_r$1, _tuple, t, typ$4, $s, $r, $c} = $restore(this, {typ$4}); + $pkg.Compile = Compile; + $ptrType(Regexp).prototype.Longest = function Longest() { + var re; + re = this; + re.longest = true; + }; + compile = function compile$1(expr, mode, longest) { + var {_r, _r$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, capNames, err, expr, i, longest, matchcap, maxCap, mode, n, prog, re, regexp, $s, $r, $c} = $restore(this, {expr, mode, longest}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = under(typ$4); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = $assertType(_r$1, ptrType$8, true); - t = _tuple[0]; - $s = -1; return !(t === ptrType$8.nil) && (t.kind === 18); - /* */ } return; } var $f = {$blk: isUnsafePointer$1, $c: true, $r, _r$1, _tuple, t, typ$4, $s};return $f; + _r = syntax.Parse(expr, mode); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + re = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [ptrType.nil, err]; + } + maxCap = re.MaxCap(); + capNames = re.CapNames(); + re = re.Simplify(); + _tuple$1 = syntax.Compile(re); + prog = _tuple$1[0]; + err = _tuple$1[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [ptrType.nil, err]; + } + matchcap = prog.NumCap; + if (matchcap < 2) { + matchcap = 2; + } + _r$1 = compileOnePass(prog); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + regexp = new Regexp.ptr(expr, prog, _r$1, maxCap, 0, capNames, "", sliceType$4.nil, 0, 0, 0, matchcap, false, prog.StartCond(), minInputLen(re), longest); + if (regexp.onepass === ptrType$2.nil) { + _tuple$2 = prog.Prefix(); + regexp.prefix = _tuple$2[0]; + regexp.prefixComplete = _tuple$2[1]; + regexp.maxBitStateLen = maxBitStateLen(prog); + } else { + _tuple$3 = onePassPrefix(prog); + regexp.prefix = _tuple$3[0]; + regexp.prefixComplete = _tuple$3[1]; + regexp.prefixEnd = _tuple$3[2]; + } + if (!(regexp.prefix === "")) { + regexp.prefixBytes = (new sliceType$4($stringToBytes(regexp.prefix))); + _tuple$4 = utf8.DecodeRuneInString(regexp.prefix); + regexp.prefixRune = _tuple$4[0]; + } + n = prog.Inst.$length; + i = 0; + while (true) { + if (!(!((((i < 0 || i >= matchSize.length) ? ($throwRuntimeError("index out of range"), undefined) : matchSize[i]) === 0)) && ((i < 0 || i >= matchSize.length) ? ($throwRuntimeError("index out of range"), undefined) : matchSize[i]) < n)) { break; } + i = i + (1) >> 0; + } + regexp.mpool = i; + $s = -1; return [regexp, $ifaceNil]; + /* */ } return; } var $f = {$blk: compile$1, $c: true, $r, _r, _r$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, capNames, err, expr, i, longest, matchcap, maxCap, mode, n, prog, re, regexp, $s};return $f; }; - isPointer = function isPointer$1(typ$4) { - var {_r$1, _tuple, ok, typ$4, $s, $r, $c} = $restore(this, {typ$4}); + $ptrType(Regexp).prototype.get = function get() { + var {_i, _r, _ref, _tuple, m, n, ok, re, t, x, x$1, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = under(typ$4); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = $assertType(_r$1, ptrType$26, true); + re = this; + _r = (x = re.mpool, ((x < 0 || x >= matchPool.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(matchPool, x, ptrType$4))).Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = $assertType(_r, ptrType$3, true); + m = _tuple[0]; ok = _tuple[1]; - $s = -1; return ok; - /* */ } return; } var $f = {$blk: isPointer$1, $c: true, $r, _r$1, _tuple, ok, typ$4, $s};return $f; + if (!ok) { + m = new machine.ptr(ptrType.nil, ptrType$1.nil, new queue.ptr(sliceType$2.nil, sliceType$5.nil), new queue.ptr(sliceType$2.nil, sliceType$5.nil), sliceType$6.nil, false, sliceType$7.nil, new inputs.ptr(new inputBytes.ptr(sliceType$4.nil), new inputString.ptr(""), new inputReader.ptr($ifaceNil, false, 0))); + } + m.re = re; + m.p = re.prog; + if (m.matchcap.$capacity < re.matchcap) { + m.matchcap = $makeSlice(sliceType$7, re.matchcap); + _ref = m.pool; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + t.cap = $makeSlice(sliceType$7, re.matchcap); + _i++; + } + } + n = (x$1 = re.mpool, ((x$1 < 0 || x$1 >= matchSize.length) ? ($throwRuntimeError("index out of range"), undefined) : matchSize[x$1])); + if (n === 0) { + n = re.prog.Inst.$length; + } + if (m.q0.sparse.$length < n) { + queue.copy(m.q0, new queue.ptr($makeSlice(sliceType$2, n), $makeSlice(sliceType$5, 0, n))); + queue.copy(m.q1, new queue.ptr($makeSlice(sliceType$2, n), $makeSlice(sliceType$5, 0, n))); + } + $s = -1; return m; + /* */ } return; } var $f = {$blk: get, $c: true, $r, _i, _r, _ref, _tuple, m, n, ok, re, t, x, x$1, $s};return $f; }; - isBytesOrRunes = function isBytesOrRunes$1(typ$4) { - var {_r$1, _r$2, _tuple, _tuple$1, s, t, typ$4, $s, $r, $c} = $restore(this, {typ$4}); + $ptrType(Regexp).prototype.put = function put(m) { + var m, re, x; + re = this; + m.re = ptrType.nil; + m.p = ptrType$1.nil; + m.inputs.clear(); + (x = re.mpool, ((x < 0 || x >= matchPool.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(matchPool, x, ptrType$4))).Put(m); + }; + minInputLen = function minInputLen$1(re) { + var _1, _i, _i$1, _i$2, _ref, _ref$1, _ref$2, l, l$1, l$2, lnext, r, re, sub, sub$1, x, x$1, x$2; + _1 = re.Op; + if ((_1 === (6)) || (_1 === (5)) || (_1 === (4))) { + return 1; + } else if (_1 === (3)) { + l = 0; + _ref = re.Rune; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + r = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (r === 65533) { + l = l + (1) >> 0; + } else { + l = l + (utf8.RuneLen(r)) >> 0; + } + _i++; + } + return l; + } else if ((_1 === (13)) || (_1 === (15))) { + return minInputLen((x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))); + } else if (_1 === (17)) { + return $imul(re.Min, minInputLen((x$1 = re.Sub, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])))); + } else if (_1 === (18)) { + l$1 = 0; + _ref$1 = re.Sub; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + sub = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + l$1 = l$1 + (minInputLen(sub)) >> 0; + _i$1++; + } + return l$1; + } else if (_1 === (19)) { + l$2 = minInputLen((x$2 = re.Sub, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0]))); + lnext = 0; + _ref$2 = $subslice(re.Sub, 1); + _i$2 = 0; + while (true) { + if (!(_i$2 < _ref$2.$length)) { break; } + sub$1 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); + lnext = minInputLen(sub$1); + if (lnext < l$2) { + l$2 = lnext; + } + _i$2++; + } + return l$2; + } else { + return 0; + } + }; + MustCompile = function MustCompile$1(str) { + var {_r, _r$1, _tuple, err, regexp, str, $s, $r, $c} = $restore(this, {str}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = under(typ$4); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = $assertType(_r$1, ptrType$25, true); - s = _tuple[0]; - /* */ if (!(s === ptrType$25.nil)) { $s = 2; continue; } + _r = Compile(str); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + regexp = _tuple[0]; + err = _tuple[1]; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; } /* */ $s = 3; continue; - /* if (!(s === ptrType$25.nil)) { */ case 2: - _r$2 = under(s.elem); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple$1 = $assertType(_r$2, ptrType$8, true); - t = _tuple$1[0]; - $s = -1; return !(t === ptrType$8.nil) && ((t.kind === 8) || (t.kind === 5)); + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2: + _r$1 = err.Error(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $panic(new $String("regexp: Compile(" + quote(str) + "): " + _r$1)); /* } */ case 3: - $s = -1; return false; - /* */ } return; } var $f = {$blk: isBytesOrRunes$1, $c: true, $r, _r$1, _r$2, _tuple, _tuple$1, s, t, typ$4, $s};return $f; + $s = -1; return regexp; + /* */ } return; } var $f = {$blk: MustCompile$1, $c: true, $r, _r, _r$1, _tuple, err, regexp, str, $s};return $f; }; - NewContext = function NewContext$1() { - return new Context.ptr(new sync.Mutex.ptr(0, 0), new $global.Map(), 0, new $global.Map()); + $pkg.MustCompile = MustCompile; + quote = function quote$1(s) { + var s; + if (strconv.CanBackquote(s)) { + return "`" + s + "`"; + } + return strconv.Quote(s); }; - $pkg.NewContext = NewContext; - $ptrType(Context).prototype.instanceHash = function instanceHash(orig, targs) { - var {_r$1, _r$2, _r$3, buf, ctxt, h, orig, targs, $s, $r, $c} = $restore(this, {orig, targs}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - buf = [buf]; - ctxt = this; - $r = assert(!(ctxt === ptrType$51.nil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = assert(!($interfaceIsEqual(orig, $ifaceNil))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - buf[0] = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); - _r$1 = newTypeHasher(buf[0], ctxt); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - h = _r$1; - _r$2 = ctxt.getID(orig); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = strconv.Itoa(_r$2); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $r = h.string(_r$3); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = h.typ(orig); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (targs.$length > 0) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (targs.$length > 0) { */ case 8: - $r = h.typeList(targs); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 9: - $s = -1; return strings.Replace(buf[0].String(), " ", "#", -1); - /* */ } return; } var $f = {$blk: instanceHash, $c: true, $r, _r$1, _r$2, _r$3, buf, ctxt, h, orig, targs, $s};return $f; + $ptrType(Regexp).prototype.NumSubexp = function NumSubexp() { + var re; + re = this; + return re.numSubexp; }; - $ptrType(Context).prototype.lookup = function lookup$2(h, orig, targs) { - var {$24r, $24r$1, _entry, _i, _r$1, _r$2, _ref, ctxt, e, h, orig, targs, $s, $deferred, $r, $c} = $restore(this, {h, orig, targs}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - ctxt = this; - $r = ctxt.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(ctxt.mu, "Unlock"), []]); - _ref = (_entry = $mapIndex(ctxt.typeMap,$String.keyFor(h)), _entry !== undefined ? _entry.v : sliceType$34.nil); - _i = 0; - /* while (true) { */ case 2: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } - e = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), ctxtEntry); - _r$1 = identicalInstance(orig, targs, e.orig, e.targs); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_r$1) { */ case 4: - $24r = e.instance; - $s = 7; case 7: return $24r; - /* } */ case 5: - /* */ if (false) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (false) { */ case 8: - _r$2 = fmt.Sprintf("non-identical instances: (orig: %s, targs: %v) and %s", new sliceType$6([orig, targs, e.instance])); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $panic(new $String(_r$2)); - /* } */ case 9: - _i++; - $s = 2; continue; - case 3: - $24r$1 = $ifaceNil; - $s = 11; case 11: return $24r$1; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: lookup$2, $c: true, $r, $24r, $24r$1, _entry, _i, _r$1, _r$2, _ref, ctxt, e, h, orig, targs, $s, $deferred};return $f; } } + $ptrType(Regexp).prototype.SubexpNames = function SubexpNames() { + var re; + re = this; + return re.subexpNames; }; - $ptrType(Context).prototype.update = function update(h, orig, targs, inst) { - var {$24r, $24r$1, _entry, _entry$1, _i, _key, _r$1, _r$2, _ref, _v, ctxt, e, h, inst, orig, targs, $s, $deferred, $r, $c} = $restore(this, {h, orig, targs, inst}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - ctxt = this; - $r = assert(!($interfaceIsEqual(inst, $ifaceNil))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = ctxt.mu.Lock(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(ctxt.mu, "Unlock"), []]); - _ref = (_entry = $mapIndex(ctxt.typeMap,$String.keyFor(h)), _entry !== undefined ? _entry.v : sliceType$34.nil); - _i = 0; - /* while (true) { */ case 3: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } - e = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), ctxtEntry); - if ($interfaceIsEqual(inst, $ifaceNil)) { _v = true; $s = 7; continue s; } - _r$1 = Identical(inst, e.instance); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = _r$1; case 7: - /* */ if (_v) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (_v) { */ case 5: - $24r = e.instance; - $s = 9; case 9: return $24r; - /* } */ case 6: - /* */ if (false) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (false) { */ case 10: - _r$2 = fmt.Sprintf("%s and %s are not identical", new sliceType$6([inst, e.instance])); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $panic(new $String(_r$2)); - /* } */ case 11: - _i++; - $s = 3; continue; - case 4: - _key = h; (ctxt.typeMap || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: $append((_entry$1 = $mapIndex(ctxt.typeMap,$String.keyFor(h)), _entry$1 !== undefined ? _entry$1.v : sliceType$34.nil), new ctxtEntry.ptr(orig, targs, inst)) }); - $24r$1 = inst; - $s = 13; case 13: return $24r$1; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: update, $c: true, $r, $24r, $24r$1, _entry, _entry$1, _i, _key, _r$1, _r$2, _ref, _v, ctxt, e, h, inst, orig, targs, $s, $deferred};return $f; } } + $ptrType(Regexp).prototype.SubexpIndex = function SubexpIndex(name) { + var _i, _ref, i, name, re, s; + re = this; + if (!(name === "")) { + _ref = re.subexpNames; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (name === s) { + return i; + } + _i++; + } + } + return -1; }; - $ptrType(Context).prototype.getID = function getID(t) { - var {$24r, _entry, _key, _tuple, ctxt, id, ok, t, $s, $deferred, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - ctxt = this; - $r = ctxt.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(ctxt.mu, "Unlock"), []]); - _tuple = (_entry = $mapIndex(ctxt.originIDs,Type.keyFor(t)), _entry !== undefined ? [_entry.v, true] : [0, false]); - id = _tuple[0]; - ok = _tuple[1]; - if (!ok) { - id = ctxt.nextID; - _key = t; (ctxt.originIDs || $throwRuntimeError("assignment to entry in nil map")).set(Type.keyFor(_key), { k: _key, v: id }); - ctxt.nextID = ctxt.nextID + (1) >> 0; + $ptrType(inputString).prototype.step = function step(pos) { + var c, i, pos; + i = this; + if (pos < i.str.length) { + c = i.str.charCodeAt(pos); + if (c < 128) { + return [((c >> 0)), 1]; + } + return utf8.DecodeRuneInString($substring(i.str, pos)); } - $24r = id; - $s = 2; case 2: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return 0; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: getID, $c: true, $r, $24r, _entry, _key, _tuple, ctxt, id, ok, t, $s, $deferred};return $f; } } + return [-1, 0]; }; - $ptrType(environment).prototype.lookup = function lookup$3(name) { - var {_r$1, _tuple, env, name, obj, $s, $r, $c} = $restore(this, {name}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - env = this; - _r$1 = env.scope.LookupParent(name, env.pos); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - obj = _tuple[1]; - $s = -1; return obj; - /* */ } return; } var $f = {$blk: lookup$3, $c: true, $r, _r$1, _tuple, env, name, obj, $s};return $f; + $ptrType(inputString).prototype.canCheckPrefix = function canCheckPrefix() { + var i; + i = this; + return true; }; - $ptrType(action).prototype.describef = function describef(pos$1, format, args) { - var a, args, format, pos$1; - a = this; - if (false) { - a.desc = new actionDesc.ptr(pos$1, format, args); - } + $ptrType(inputString).prototype.hasPrefix = function hasPrefix(re) { + var i, re; + i = this; + return strings.HasPrefix(i.str, re.prefix); }; - $ptrType(Checker).prototype.addDeclDep = function addDeclDep(to) { - var _entry, _tuple, check, found, from, to; - check = this; - from = check.environment.decl; - if (from === ptrType$58.nil) { - return; + $ptrType(inputString).prototype.index = function index(re, pos) { + var i, pos, re; + i = this; + return strings.Index($substring(i.str, pos), re.prefix); + }; + $ptrType(inputString).prototype.context = function context(pos) { + var _tmp, _tmp$1, _tuple, _tuple$1, i, pos, r1, r2; + i = this; + _tmp = -1; + _tmp$1 = -1; + r1 = _tmp; + r2 = _tmp$1; + if ((((pos - 1 >> 0) >>> 0)) < ((i.str.length >>> 0))) { + r1 = ((i.str.charCodeAt((pos - 1 >> 0)) >> 0)); + if (r1 >= 128) { + _tuple = utf8.DecodeLastRuneInString($substring(i.str, 0, pos)); + r1 = _tuple[0]; + } } - _tuple = (_entry = $mapIndex(check.objMap,Object.keyFor(to)), _entry !== undefined ? [_entry.v, true] : [ptrType$58.nil, false]); - found = _tuple[1]; - if (!found) { - return; + if (((pos >>> 0)) < ((i.str.length >>> 0))) { + r2 = ((i.str.charCodeAt(pos) >> 0)); + if (r2 >= 128) { + _tuple$1 = utf8.DecodeRuneInString($substring(i.str, pos)); + r2 = _tuple$1[0]; + } } - from.addDep(to); + return newLazyFlag(r1, r2); }; - $ptrType(Checker).prototype.brokenAlias = function brokenAlias(alias) { - var _key, alias, check; - check = this; - if (check.brokenAliases === false) { - check.brokenAliases = new $global.Map(); + $ptrType(inputBytes).prototype.step = function step$1(pos) { + var c, i, pos, x; + i = this; + if (pos < i.str.$length) { + c = (x = i.str, ((pos < 0 || pos >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pos])); + if (c < 128) { + return [((c >> 0)), 1]; + } + return utf8.DecodeRune($subslice(i.str, pos)); } - _key = alias; (check.brokenAliases || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$17.keyFor(_key), { k: _key, v: true }); - alias.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + return [-1, 0]; }; - $ptrType(Checker).prototype.validAlias = function validAlias(alias, typ$4) { - var alias, check, typ$4; - check = this; - $mapDelete(check.brokenAliases, ptrType$17.keyFor(alias)); - alias.object.typ = typ$4; + $ptrType(inputBytes).prototype.canCheckPrefix = function canCheckPrefix$1() { + var i; + i = this; + return true; }; - $ptrType(Checker).prototype.isBrokenAlias = function isBrokenAlias(alias) { - var _entry, alias, check; - check = this; - return $interfaceIsEqual(alias.object.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])) && (_entry = $mapIndex(check.brokenAliases,ptrType$17.keyFor(alias)), _entry !== undefined ? _entry.v : false); + $ptrType(inputBytes).prototype.hasPrefix = function hasPrefix$1(re) { + var i, re; + i = this; + return bytes.HasPrefix(i.str, re.prefixBytes); }; - $ptrType(Checker).prototype.rememberUntyped = function rememberUntyped(e, lhs, mode, typ$4, val) { - var _key, check, e, lhs, m, mode, typ$4, val; - check = this; - m = check.untyped; - if (m === false) { - m = new $global.Map(); - check.untyped = m; + $ptrType(inputBytes).prototype.index = function index$1(re, pos) { + var i, pos, re; + i = this; + return bytes.Index($subslice(i.str, pos), re.prefixBytes); + }; + $ptrType(inputBytes).prototype.context = function context$1(pos) { + var _tmp, _tmp$1, _tuple, _tuple$1, i, pos, r1, r2, x, x$1, x$2; + i = this; + _tmp = -1; + _tmp$1 = -1; + r1 = _tmp; + r2 = _tmp$1; + if ((((pos - 1 >> 0) >>> 0)) < ((i.str.$length >>> 0))) { + r1 = (((x = i.str, x$1 = pos - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])) >> 0)); + if (r1 >= 128) { + _tuple = utf8.DecodeLastRune($subslice(i.str, 0, pos)); + r1 = _tuple[0]; + } } - _key = e; (m || $throwRuntimeError("assignment to entry in nil map")).set(ast.Expr.keyFor(_key), { k: _key, v: $clone(new exprInfo.ptr(lhs, mode, typ$4, val), exprInfo) }); + if (((pos >>> 0)) < ((i.str.$length >>> 0))) { + r2 = (((x$2 = i.str, ((pos < 0 || pos >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + pos])) >> 0)); + if (r2 >= 128) { + _tuple$1 = utf8.DecodeRune($subslice(i.str, pos)); + r2 = _tuple$1[0]; + } + } + return newLazyFlag(r1, r2); }; - $ptrType(Checker).prototype.later = function later(f) { - var check, f, i, x; - check = this; - i = check.delayed.$length; - check.delayed = $append(check.delayed, new action.ptr(f, ptrType$109.nil)); - return (x = check.delayed, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + $ptrType(inputReader).prototype.step = function step$2(pos) { + var {_r, _tuple, err, i, pos, r, w, $s, $r, $c} = $restore(this, {pos}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + i = this; + if (!i.atEOT && !((pos === i.pos))) { + $s = -1; return [-1, 0]; + } + _r = i.r.ReadRune(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + r = _tuple[0]; + w = _tuple[1]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + i.atEOT = true; + $s = -1; return [-1, 0]; + } + i.pos = i.pos + (w) >> 0; + $s = -1; return [r, w]; + /* */ } return; } var $f = {$blk: step$2, $c: true, $r, _r, _tuple, err, i, pos, r, w, $s};return $f; }; - $ptrType(Checker).prototype.push = function push(obj) { - var check, obj; - check = this; - check.objPath = $append(check.objPath, obj); - return check.objPath.$length - 1 >> 0; + $ptrType(inputReader).prototype.canCheckPrefix = function canCheckPrefix$2() { + var i; + i = this; + return false; }; - $ptrType(Checker).prototype.pop = function pop() { - var check, i, obj, x, x$1; - check = this; - i = check.objPath.$length - 1 >> 0; - obj = (x = check.objPath, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - (x$1 = check.objPath, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i] = $ifaceNil)); - check.objPath = $subslice(check.objPath, 0, i); - return obj; + $ptrType(inputReader).prototype.hasPrefix = function hasPrefix$2(re) { + var i, re; + i = this; + return false; }; - $ptrType(Checker).prototype.needsCleanup = function needsCleanup(c) { - var c, check; - check = this; - check.cleaners = $append(check.cleaners, c); + $ptrType(inputReader).prototype.index = function index$2(re, pos) { + var i, pos, re; + i = this; + return -1; }; - NewChecker = function NewChecker$1(conf, fset, pkg, info) { - var {_r$1, _r$2, _tuple, conf, err, fset, info, pkg, version$1, $s, $r, $c} = $restore(this, {conf, fset, pkg, info}); + $ptrType(inputReader).prototype.context = function context$2(pos) { + var i, pos; + i = this; + return new lazyFlag(0, 0); + }; + $ptrType(Regexp).prototype.LiteralPrefix = function LiteralPrefix() { + var _tmp, _tmp$1, complete, prefix, re; + prefix = ""; + complete = false; + re = this; + _tmp = re.prefix; + _tmp$1 = re.prefixComplete; + prefix = _tmp; + complete = _tmp$1; + return [prefix, complete]; + }; + $ptrType(Regexp).prototype.MatchReader = function MatchReader$1(r) { + var {$24r, _r, r, re, $s, $r, $c} = $restore(this, {r}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (conf === ptrType$101.nil) { - conf = new Config.ptr(ptrType$51.nil, "", false, false, false, $throwNilPointerError, $ifaceNil, $ifaceNil, false, false); - } - if (info === ptrType$110.nil) { - info = new Info.ptr(false, false, false, false, false, false, false, sliceType$30.nil); - } - _r$1 = parseGoVersion(conf.GoVersion); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - version$1 = $clone(_tuple[0], version); - err = _tuple[1]; - /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2: - _r$2 = fmt.Sprintf("invalid Go version %q (%v)", new sliceType$6([new $String(conf.GoVersion), err])); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $panic(new $String(_r$2)); - /* } */ case 3: - $s = -1; return new Checker.ptr(conf, conf.Context, fset, pkg, info, $clone(version$1, version), new $Uint64(0, 0), new $global.Map(), new $global.Map(), new instanceLookup.ptr(arrayType$1.zero(), false), false, false, sliceType$35.nil, sliceType$36.nil, false, false, false, false, new monoGraph.ptr(sliceType$37.nil, sliceType$38.nil, false, false), $ifaceNil, false, false, sliceType$39.nil, sliceType$8.nil, sliceType$40.nil, new environment.ptr(ptrType$58.nil, ptrType.nil, 0, $ifaceNil, $ifaceNil, false, ptrType$27.nil, false, false, false), 0); - /* */ } return; } var $f = {$blk: NewChecker$1, $c: true, $r, _r$1, _r$2, _tuple, conf, err, fset, info, pkg, version$1, $s};return $f; + re = this; + _r = re.doMatch(r, sliceType$4.nil, ""); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: MatchReader$1, $c: true, $r, $24r, _r, r, re, $s};return $f; }; - $pkg.NewChecker = NewChecker; - $ptrType(Checker).prototype.initFiles = function initFiles(files) { - var {_1, _i, _ref, check, file, files, name, pkg, $s, $r, $c} = $restore(this, {files}); + $ptrType(Regexp).prototype.MatchString = function MatchString$1(s) { + var {$24r, _r, re, s, $s, $r, $c} = $restore(this, {s}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - check.files = sliceType$35.nil; - check.imports = sliceType$36.nil; - check.dotImportMap = false; - check.firstErr = $ifaceNil; - check.methods = false; - check.untyped = false; - check.delayed = sliceType$39.nil; - check.objPath = sliceType$8.nil; - check.cleaners = sliceType$40.nil; - pkg = check.pkg; - _ref = files; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - file = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - name = file.Name.Name; - _1 = pkg.name; - /* */ if (_1 === ("")) { $s = 4; continue; } - /* */ if (_1 === (name)) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (_1 === ("")) { */ case 4: - /* */ if (!(name === "_")) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (!(name === "_")) { */ case 8: - pkg.name = name; - $s = 10; continue; - /* } else { */ case 9: - $r = check.error(file.Name, 2, "invalid package name _"); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 10: - check.files = $append(check.files, file); - $s = 7; continue; - /* } else if (_1 === (name)) { */ case 5: - check.files = $append(check.files, file); - $s = 7; continue; - /* } else { */ case 6: - $r = check.errorf(new atPos(((file.Package >> 0))), 3, "package %s; expected %s", new sliceType$6([new $String(name), new $String(pkg.name)])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 7: - case 3: - _i++; - $s = 1; continue; - case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: initFiles, $c: true, $r, _1, _i, _ref, check, file, files, name, pkg, $s};return $f; + re = this; + _r = re.doMatch($ifaceNil, sliceType$4.nil, s); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: MatchString$1, $c: true, $r, $24r, _r, re, s, $s};return $f; }; - $ptrType(Checker).prototype.handleBailout = function handleBailout(err) { - var _ref, check, err, p, p$1; - check = this; - _ref = $recover(); - if (_ref === $ifaceNil || $assertType(_ref, bailout, true)[1]) { - p = _ref; - err.$set(check.firstErr); - } else { - p$1 = _ref; - $panic(p$1); + $ptrType(Regexp).prototype.Match = function Match$1(b) { + var {$24r, _r, b, re, $s, $r, $c} = $restore(this, {b}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + re = this; + _r = re.doMatch($ifaceNil, b, ""); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Match$1, $c: true, $r, $24r, _r, b, re, $s};return $f; + }; + $ptrType(Regexp).prototype.ReplaceAllString = function ReplaceAllString(src, repl) { + var {_r, b, n, re, repl, src, $s, $r, $c} = $restore(this, {src, repl}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + re = [re]; + repl = [repl]; + src = [src]; + re[0] = this; + n = 2; + if (strings.Contains(repl[0], "$")) { + n = $imul(2, ((re[0].numSubexp + 1 >> 0))); } + _r = re[0].replaceAll(sliceType$4.nil, src[0], n, (function(re, repl, src) { return function Regexp·ReplaceAllString·func1(dst, match) { + var dst, match; + return re[0].expand(dst, repl[0], sliceType$4.nil, src[0], match); + }; })(re, repl, src)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + b = _r; + $s = -1; return ($bytesToString(b)); + /* */ } return; } var $f = {$blk: ReplaceAllString, $c: true, $r, _r, b, n, re, repl, src, $s};return $f; }; - $ptrType(Checker).prototype.Files = function Files(files) { - var {$24r, _r$1, check, files, $s, $r, $c} = $restore(this, {files}); + $ptrType(Regexp).prototype.ReplaceAllLiteralString = function ReplaceAllLiteralString(src, repl) { + var {$24r, _r, re, repl, src, $s, $r, $c} = $restore(this, {src, repl}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = check.checkFiles(files); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; + repl = [repl]; + re = this; + _r = re.replaceAll(sliceType$4.nil, src, 2, (function(repl) { return function Regexp·ReplaceAllLiteralString·func1(dst, match) { + var dst, match; + return $appendSlice(dst, repl[0]); + }; })(repl)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = ($bytesToString(_r)); $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Files, $c: true, $r, $24r, _r$1, check, files, $s};return $f; + /* */ } return; } var $f = {$blk: ReplaceAllLiteralString, $c: true, $r, $24r, _r, re, repl, src, $s};return $f; }; - $ptrType(Checker).prototype.checkFiles = function checkFiles(files) { - var {check, err, files, print, $s, $deferred, $r, $c} = $restore(this, {files}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - err = [err]; - err[0] = $ifaceNil; - check = this; - if (check.conf.FakeImportC && check.conf.go115UsesCgo) { - err[0] = errBadCgo; - $s = -1; return err[0]; - } - $deferred.push([$methodVal(check, "handleBailout"), [(err.$ptr || (err.$ptr = new ptrType$103(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, err)))]]); - print = (function(err) { return function Checker·checkFiles·func1(msg$1) { - var {_r$1, _r$2, msg$1, $s, $r, $c} = $restore(this, {msg$1}); + $ptrType(Regexp).prototype.ReplaceAllStringFunc = function ReplaceAllStringFunc(src, repl) { + var {_r, b, re, repl, src, $s, $r, $c} = $restore(this, {src, repl}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + repl = [repl]; + src = [src]; + re = this; + _r = re.replaceAll(sliceType$4.nil, src[0], 2, (function(repl, src) { return function Regexp·ReplaceAllStringFunc·func1(dst, match) { + var {$24r, _arg, _arg$1, _r, dst, match, $s, $r, $c} = $restore(this, {dst, match}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - /* */ if (false) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (false) { */ case 1: - _r$1 = fmt.Println(sliceType$6.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - _r$2 = fmt.Println(new sliceType$6([new $String(msg$1)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - /* } */ case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·checkFiles·func1, $c: true, $r, _r$1, _r$2, msg$1, $s};return $f; - }; })(err); - $r = print("== initFiles =="); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.initFiles(files); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = print("== collectObjects =="); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.collectObjects(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = print("== packageObjects =="); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.packageObjects(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = print("== processDelayed =="); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.processDelayed(0); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = print("== cleanup =="); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.cleanup(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = print("== initOrder =="); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.initOrder(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!check.conf.DisableUnusedImportCheck) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (!check.conf.DisableUnusedImportCheck) { */ case 13: - $r = print("== unusedImports =="); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.unusedImports(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 14: - $r = print("== recordUntyped =="); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.recordUntyped(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if ($interfaceIsEqual(check.firstErr, $ifaceNil)) { $s = 19; continue; } - /* */ $s = 20; continue; - /* if ($interfaceIsEqual(check.firstErr, $ifaceNil)) { */ case 19: - $r = check.monomorph(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 20: - check.pkg.complete = true; - check.imports = sliceType$36.nil; - check.dotImportMap = false; - check.pkgPathMap = false; - check.seenPkgMap = false; - check.recvTParamMap = false; - check.brokenAliases = false; - check.unionTypeSets = false; - check.ctxt = ptrType$51.nil; - $s = -1; return err[0]; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return err[0]; } if($curGoroutine.asleep) { var $f = {$blk: checkFiles, $c: true, $r, check, err, files, print, $s, $deferred};return $f; } } + _arg = dst; + _r = repl[0]($substring(src[0], (0 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 0]), (1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = _r; + $24r = $appendSlice(_arg, _arg$1); + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Regexp·ReplaceAllStringFunc·func1, $c: true, $r, $24r, _arg, _arg$1, _r, dst, match, $s};return $f; + }; })(repl, src)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + b = _r; + $s = -1; return ($bytesToString(b)); + /* */ } return; } var $f = {$blk: ReplaceAllStringFunc, $c: true, $r, _r, b, re, repl, src, $s};return $f; }; - $ptrType(Checker).prototype.processDelayed = function processDelayed(top) { - var {_r$1, _r$2, a, check, i, top, x, $s, $r, $c} = $restore(this, {top}); + $ptrType(Regexp).prototype.replaceAll = function replaceAll(bsrc, src, nmatch, repl) { + var {_r, _r$1, _tuple, _tuple$1, a, bsrc, buf, dstCap, endPos, lastMatchEnd, nmatch, re, repl, searchPos, src, width, $s, $r, $c} = $restore(this, {bsrc, src, nmatch, repl}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - i = top; + re = this; + lastMatchEnd = 0; + searchPos = 0; + buf = sliceType$4.nil; + endPos = 0; + if (!(bsrc === sliceType$4.nil)) { + endPos = bsrc.$length; + } else { + endPos = src.length; + } + if (nmatch > re.prog.NumCap) { + nmatch = re.prog.NumCap; + } + dstCap = arrayType$3.zero(); /* while (true) { */ case 1: - /* if (!(i < check.delayed.$length)) { break; } */ if(!(i < check.delayed.$length)) { $s = 2; continue; } - a = (x = check.delayed, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - /* */ if (false) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (false) { */ case 3: - /* */ if (!(a.desc === ptrType$109.nil)) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (!(a.desc === ptrType$109.nil)) { */ case 5: - _r$1 = a.desc.pos.Pos(); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $r = check.trace(_r$1, "-- " + a.desc.format, a.desc.args); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 7; continue; - /* } else { */ case 6: - $r = check.trace(0, "-- delayed %p", new sliceType$6([new funcType$1(a.f)])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 7: - /* } */ case 4: - $r = a.f(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (false) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (false) { */ case 12: - _r$2 = fmt.Println(sliceType$6.nil); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - /* } */ case 13: - i = i + (1) >> 0; + /* if (!(searchPos <= endPos)) { break; } */ if(!(searchPos <= endPos)) { $s = 2; continue; } + _r = re.doExecute($ifaceNil, bsrc, src, searchPos, nmatch, $subslice(new sliceType$7(dstCap), 0, 0)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + a = _r; + if (a.$length === 0) { + /* break; */ $s = 2; continue; + } + if (!(bsrc === sliceType$4.nil)) { + buf = $appendSlice(buf, $subslice(bsrc, lastMatchEnd, (0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]))); + } else { + buf = $appendSlice(buf, $substring(src, lastMatchEnd, (0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]))); + } + /* */ if ((1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1]) > lastMatchEnd || ((0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]) === 0)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ((1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1]) > lastMatchEnd || ((0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]) === 0)) { */ case 4: + _r$1 = repl(buf, a); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + buf = _r$1; + /* } */ case 5: + lastMatchEnd = (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1]); + width = 0; + if (!(bsrc === sliceType$4.nil)) { + _tuple = utf8.DecodeRune($subslice(bsrc, searchPos)); + width = _tuple[1]; + } else { + _tuple$1 = utf8.DecodeRuneInString($substring(src, searchPos)); + width = _tuple$1[1]; + } + if ((searchPos + width >> 0) > (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1])) { + searchPos = searchPos + (width) >> 0; + } else if ((searchPos + 1 >> 0) > (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1])) { + searchPos = searchPos + (1) >> 0; + } else { + searchPos = (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1]); + } $s = 1; continue; case 2: - $r = assert(top <= check.delayed.$length); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - check.delayed = $subslice(check.delayed, 0, top); - $s = -1; return; - /* */ } return; } var $f = {$blk: processDelayed, $c: true, $r, _r$1, _r$2, a, check, i, top, x, $s};return $f; + if (!(bsrc === sliceType$4.nil)) { + buf = $appendSlice(buf, $subslice(bsrc, lastMatchEnd)); + } else { + buf = $appendSlice(buf, $substring(src, lastMatchEnd)); + } + $s = -1; return buf; + /* */ } return; } var $f = {$blk: replaceAll, $c: true, $r, _r, _r$1, _tuple, _tuple$1, a, bsrc, buf, dstCap, endPos, lastMatchEnd, nmatch, re, repl, searchPos, src, width, $s};return $f; }; - $ptrType(Checker).prototype.cleanup = function cleanup$3() { - var {check, i, x, $s, $r, $c} = $restore(this, {}); + $ptrType(Regexp).prototype.ReplaceAll = function ReplaceAll(src, repl) { + var {_r, b, n, re, repl, src, srepl, $s, $r, $c} = $restore(this, {src, repl}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - i = 0; - /* while (true) { */ case 1: - /* if (!(i < check.cleaners.$length)) { break; } */ if(!(i < check.cleaners.$length)) { $s = 2; continue; } - $r = (x = check.cleaners, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])).cleanup(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - i = i + (1) >> 0; - $s = 1; continue; - case 2: - check.cleaners = sliceType$40.nil; - $s = -1; return; - /* */ } return; } var $f = {$blk: cleanup$3, $c: true, $r, check, i, x, $s};return $f; + re = [re]; + repl = [repl]; + src = [src]; + srepl = [srepl]; + re[0] = this; + n = 2; + if (bytes.IndexByte(repl[0], 36) >= 0) { + n = $imul(2, ((re[0].numSubexp + 1 >> 0))); + } + srepl[0] = ""; + _r = re[0].replaceAll(src[0], "", n, (function(re, repl, src, srepl) { return function Regexp·ReplaceAll·func1(dst, match) { + var dst, match; + if (!((srepl[0].length === repl[0].$length))) { + srepl[0] = ($bytesToString(repl[0])); + } + return re[0].expand(dst, srepl[0], src[0], "", match); + }; })(re, repl, src, srepl)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + b = _r; + $s = -1; return b; + /* */ } return; } var $f = {$blk: ReplaceAll, $c: true, $r, _r, b, n, re, repl, src, srepl, $s};return $f; }; - $ptrType(Checker).prototype.record = function record(x) { - var {_1, check, typ$4, val, x, $s, $r, $c} = $restore(this, {x}); + $ptrType(Regexp).prototype.ReplaceAllLiteral = function ReplaceAllLiteral(src, repl) { + var {$24r, _r, re, repl, src, $s, $r, $c} = $restore(this, {src, repl}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - typ$4 = $ifaceNil; - val = $ifaceNil; - _1 = x.mode; - if (_1 === (0)) { - typ$4 = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - } else if (_1 === (1)) { - typ$4 = (ptrType$15.nil); - } else if (_1 === (4)) { - typ$4 = x.typ; - val = x.val; - } else { - typ$4 = x.typ; + repl = [repl]; + re = this; + _r = re.replaceAll(src, "", 2, (function(repl) { return function Regexp·ReplaceAllLiteral·func1(dst, match) { + var dst, match; + return $appendSlice(dst, repl[0]); + }; })(repl)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: ReplaceAllLiteral, $c: true, $r, $24r, _r, re, repl, src, $s};return $f; + }; + $ptrType(Regexp).prototype.ReplaceAllFunc = function ReplaceAllFunc(src, repl) { + var {$24r, _r, re, repl, src, $s, $r, $c} = $restore(this, {src, repl}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + repl = [repl]; + src = [src]; + re = this; + _r = re.replaceAll(src[0], "", 2, (function(repl, src) { return function Regexp·ReplaceAllFunc·func1(dst, match) { + var {$24r, _arg, _arg$1, _r, dst, match, $s, $r, $c} = $restore(this, {dst, match}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _arg = dst; + _r = repl[0]($subslice(src[0], (0 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 0]), (1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = _r; + $24r = $appendSlice(_arg, _arg$1); + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Regexp·ReplaceAllFunc·func1, $c: true, $r, $24r, _arg, _arg$1, _r, dst, match, $s};return $f; + }; })(repl, src)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: ReplaceAllFunc, $c: true, $r, $24r, _r, re, repl, src, $s};return $f; + }; + special = function special$1(b) { + var _q, _r, b, x, y; + return b < 128 && !(((((x = (_r = b % 16, _r === _r ? _r : $throwRuntimeError("integer divide by zero")), ((x < 0 || x >= specialBytes.length) ? ($throwRuntimeError("index out of range"), undefined) : specialBytes[x])) & (((y = ((_q = b / 16, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero"))), y < 32 ? (1 << y) : 0) << 24 >>> 24))) >>> 0) === 0)); + }; + init = function init$1() { + var _i, _index, _q, _r, _ref, b, y; + _ref = (new sliceType$4($stringToBytes("\\.+*?()|[]{}^$"))); + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + b = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _index = (_r = b % 16, _r === _r ? _r : $throwRuntimeError("integer divide by zero")); + ((_index < 0 || _index >= specialBytes.length) ? ($throwRuntimeError("index out of range"), undefined) : specialBytes[_index] = ((((_index < 0 || _index >= specialBytes.length) ? ($throwRuntimeError("index out of range"), undefined) : specialBytes[_index]) | (((y = ((_q = b / 16, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero"))), y < 32 ? (1 << y) : 0) << 24 >>> 24))) >>> 0)); + _i++; } - $r = assert(!($interfaceIsEqual(x.expr, $ifaceNil)) && !($interfaceIsEqual(typ$4, $ifaceNil))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (isUntyped(typ$4)) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (isUntyped(typ$4)) { */ case 2: - check.rememberUntyped(x.expr, false, x.mode, $assertType(typ$4, ptrType$8), val); - $s = 4; continue; - /* } else { */ case 3: - $r = check.recordTypeAndValue(x.expr, x.mode, typ$4, val); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 4: - $s = -1; return; - /* */ } return; } var $f = {$blk: record, $c: true, $r, _1, check, typ$4, val, x, $s};return $f; }; - $ptrType(Checker).prototype.recordUntyped = function recordUntyped() { - var {_arg, _arg$1, _arg$2, _entry, _i, _key, _keys, _r$1, _ref, _size, check, info, x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - if (true && check.Info.Types === false) { - $s = -1; return; + QuoteMeta = function QuoteMeta$1(s) { + var b, i, j, s; + i = 0; + i = 0; + while (true) { + if (!(i < s.length)) { break; } + if (special(s.charCodeAt(i))) { + break; + } + i = i + (1) >> 0; } - _ref = check.untyped; - _i = 0; - _keys = _ref ? _ref.keys() : undefined; - _size = _ref ? _ref.size : 0; - /* while (true) { */ case 1: - /* if (!(_i < _size)) { break; } */ if(!(_i < _size)) { $s = 2; continue; } - _key = _keys.next().value; - _entry = _ref.get(_key); - if (_entry === undefined) { - _i++; - /* continue; */ $s = 1; continue; + if (i >= s.length) { + return s; + } + b = $makeSlice(sliceType$4, (($imul(2, s.length)) - i >> 0)); + $copyString(b, $substring(s, 0, i)); + j = i; + while (true) { + if (!(i < s.length)) { break; } + if (special(s.charCodeAt(i))) { + ((j < 0 || j >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + j] = 92); + j = j + (1) >> 0; } - x = _entry.k; - info = $clone(_entry.v, exprInfo); - /* */ if (false && isTyped(info.typ)) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (false && isTyped(info.typ)) { */ case 3: - _r$1 = x.Pos(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _arg = new token.Pos(_r$1); - _arg$1 = x; - _arg$2 = info.typ; - $r = check.dump("%v: %s (type %s) is typed", new sliceType$6([_arg, _arg$1, _arg$2])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - unreachable(); - /* } */ case 4: - $r = check.recordTypeAndValue(x, info.mode, info.typ, info.val); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 1; continue; - case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: recordUntyped, $c: true, $r, _arg, _arg$1, _arg$2, _entry, _i, _key, _keys, _r$1, _ref, _size, check, info, x, $s};return $f; + ((j < 0 || j >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + j] = s.charCodeAt(i)); + j = j + (1) >> 0; + i = i + (1) >> 0; + } + return ($bytesToString($subslice(b, 0, j))); }; - $ptrType(Checker).prototype.recordTypeAndValue = function recordTypeAndValue(x, mode, typ$4, val) { - var {_key, _r$1, _v, check, m, mode, typ$4, val, x, $s, $r, $c} = $restore(this, {x, mode, typ$4, val}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - $r = assert(!($interfaceIsEqual(x, $ifaceNil))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = assert(!($interfaceIsEqual(typ$4, $ifaceNil))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (mode === 0) { - $s = -1; return; + $pkg.QuoteMeta = QuoteMeta; + $ptrType(Regexp).prototype.pad = function pad(a) { + var a, n, re; + re = this; + if (a === sliceType$7.nil) { + return sliceType$7.nil; } - /* */ if (mode === 4) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (mode === 4) { */ case 3: - $r = assert(!($interfaceIsEqual(val, $ifaceNil))); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if ($interfaceIsEqual(typ$4, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { _v = true; $s = 6; continue s; } - _r$1 = allBasic(typ$4, 59); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = _r$1; case 6: - $r = assert(_v); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 4: - m = check.Info.Types; - if (!(m === false)) { - _key = x; (m || $throwRuntimeError("assignment to entry in nil map")).set(ast.Expr.keyFor(_key), { k: _key, v: $clone(new TypeAndValue.ptr(mode, typ$4, val), TypeAndValue) }); + n = $imul(((1 + re.numSubexp >> 0)), 2); + while (true) { + if (!(a.$length < n)) { break; } + a = $append(a, -1); } - $s = -1; return; - /* */ } return; } var $f = {$blk: recordTypeAndValue, $c: true, $r, _key, _r$1, _v, check, m, mode, typ$4, val, x, $s};return $f; + return a; }; - $ptrType(Checker).prototype.recordBuiltinType = function recordBuiltinType(f, sig) { - var {_ref, check, f, p, p$1, p$2, sig, $s, $r, $c} = $restore(this, {f, sig}); + $ptrType(Regexp).prototype.allMatches = function allMatches(s, b, n, deliver) { + var {_r, _tmp, _tmp$1, _tmp$2, _tuple, _tuple$1, accept, b, deliver, end, i, ib, is, matches, n, pos, prevMatchEnd, re, s, width, $s, $r, $c} = $restore(this, {s, b, n, deliver}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; + re = this; + end = 0; + if (b === sliceType$4.nil) { + end = s.length; + } else { + end = b.$length; + } + _tmp = 0; + _tmp$1 = 0; + _tmp$2 = -1; + pos = _tmp; + i = _tmp$1; + prevMatchEnd = _tmp$2; /* while (true) { */ case 1: - $r = check.recordTypeAndValue(f, 2, sig, $ifaceNil); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _ref = f; - if ($assertType(_ref, ptrType$30, true)[1] || $assertType(_ref, ptrType$36, true)[1]) { - p = _ref; - $s = -1; return; - } else if ($assertType(_ref, ptrType$39, true)[1]) { - p$1 = _ref.$val; - f = p$1.X; + /* if (!(i < n && pos <= end)) { break; } */ if(!(i < n && pos <= end)) { $s = 2; continue; } + _r = re.doExecute($ifaceNil, b, s, pos, re.prog.NumCap, sliceType$7.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + matches = _r; + if (matches.$length === 0) { + /* break; */ $s = 2; continue; + } + accept = true; + if ((1 >= matches.$length ? ($throwRuntimeError("index out of range"), undefined) : matches.$array[matches.$offset + 1]) === pos) { + if ((0 >= matches.$length ? ($throwRuntimeError("index out of range"), undefined) : matches.$array[matches.$offset + 0]) === prevMatchEnd) { + accept = false; + } + width = 0; + if (b === sliceType$4.nil) { + is = new inputString.ptr(s); + _tuple = is.step(pos); + width = _tuple[1]; + } else { + ib = new inputBytes.ptr(b); + _tuple$1 = ib.step(pos); + width = _tuple$1[1]; + } + if (width > 0) { + pos = pos + (width) >> 0; + } else { + pos = end + 1 >> 0; + } } else { - p$2 = _ref; - unreachable(); + pos = (1 >= matches.$length ? ($throwRuntimeError("index out of range"), undefined) : matches.$array[matches.$offset + 1]); } + prevMatchEnd = (1 >= matches.$length ? ($throwRuntimeError("index out of range"), undefined) : matches.$array[matches.$offset + 1]); + /* */ if (accept) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (accept) { */ case 4: + $r = deliver(re.pad(matches)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i + (1) >> 0; + /* } */ case 5: $s = 1; continue; case 2: $s = -1; return; - /* */ } return; } var $f = {$blk: recordBuiltinType, $c: true, $r, _ref, check, f, p, p$1, p$2, sig, $s};return $f; + /* */ } return; } var $f = {$blk: allMatches, $c: true, $r, _r, _tmp, _tmp$1, _tmp$2, _tuple, _tuple$1, accept, b, deliver, end, i, ib, is, matches, n, pos, prevMatchEnd, re, s, width, $s};return $f; }; - $ptrType(Checker).prototype.recordCommaOkTypes = function recordCommaOkTypes(x, a) { - var {_entry, _key, _r$1, _r$2, _tuple, _v, a, check, m, p, pos$1, tv, x, $s, $r, $c} = $restore(this, {x, a}); + $ptrType(Regexp).prototype.Find = function Find(b) { + var {_r, a, b, dstCap, re, $s, $r, $c} = $restore(this, {b}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - $r = assert(!($interfaceIsEqual(x, $ifaceNil))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if ($interfaceIsEqual(a[0], $ifaceNil) || $interfaceIsEqual(a[1], $ifaceNil)) { - $s = -1; return; + re = this; + dstCap = arrayType$3.zero(); + _r = re.doExecute($ifaceNil, b, "", 0, 2, $subslice(new sliceType$7(dstCap), 0, 0)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + a = _r; + if (a === sliceType$7.nil) { + $s = -1; return sliceType$4.nil; } - if (!(isTyped(a[0]) && isTyped(a[1]))) { _v = false; $s = 2; continue s; } - _r$1 = isBoolean(a[1]); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = _r$1 || $interfaceIsEqual(a[1], universeError); case 2: - $r = assert(_v); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - m = check.Info.Types; - /* */ if (!(m === false)) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (!(m === false)) { */ case 5: - /* while (true) { */ case 7: - tv = $clone((_entry = $mapIndex(m,ast.Expr.keyFor(x)), _entry !== undefined ? _entry.v : new TypeAndValue.ptr(0, $ifaceNil, $ifaceNil)), TypeAndValue); - $r = assert(!($interfaceIsEqual(tv.Type, $ifaceNil))); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$2 = x.Pos(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - pos$1 = _r$2; - tv.Type = NewTuple(new sliceType$10([NewVar(pos$1, check.pkg, "", a[0]), NewVar(pos$1, check.pkg, "", a[1])])); - _key = x; (m || $throwRuntimeError("assignment to entry in nil map")).set(ast.Expr.keyFor(_key), { k: _key, v: $clone(tv, TypeAndValue) }); - _tuple = $assertType(x, ptrType$39, true); - p = _tuple[0]; - if (p === ptrType$39.nil) { - /* break; */ $s = 8; continue; - } - x = p.X; - $s = 7; continue; - case 8: - /* } */ case 6: - $s = -1; return; - /* */ } return; } var $f = {$blk: recordCommaOkTypes, $c: true, $r, _entry, _key, _r$1, _r$2, _tuple, _v, a, check, m, p, pos$1, tv, x, $s};return $f; + $s = -1; return $subslice(b, (0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]), (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1]), (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1])); + /* */ } return; } var $f = {$blk: Find, $c: true, $r, _r, a, b, dstCap, re, $s};return $f; }; - $ptrType(Checker).prototype.recordInstance = function recordInstance$1(expr$1, targs, typ$4) { - var {_key, check, expr$1, ident$1, m, targs, typ$4, $s, $r, $c} = $restore(this, {expr$1, targs, typ$4}); + $ptrType(Regexp).prototype.FindIndex = function FindIndex(b) { + var {_r, a, b, loc, re, $s, $r, $c} = $restore(this, {b}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - ident$1 = instantiatedIdent(expr$1); - $r = assert(!(ident$1 === ptrType$30.nil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = assert(!($interfaceIsEqual(typ$4, $ifaceNil))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - m = check.Info.Instances; - if (!(m === false)) { - _key = ident$1; (m || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$30.keyFor(_key), { k: _key, v: $clone(new Instance.ptr(newTypeList(targs), typ$4), Instance) }); - } - $s = -1; return; - /* */ } return; } var $f = {$blk: recordInstance$1, $c: true, $r, _key, check, expr$1, ident$1, m, targs, typ$4, $s};return $f; - }; - instantiatedIdent = function instantiatedIdent$1(expr$1) { - var _ref, _ref$1, e, e$1, e$2, expr$1, selOrIdent, x, x$1; - selOrIdent = $ifaceNil; - _ref = expr$1; - if ($assertType(_ref, ptrType$37, true)[1]) { - e = _ref.$val; - selOrIdent = e.X; - } else if ($assertType(_ref, ptrType$38, true)[1]) { - e$1 = _ref.$val; - selOrIdent = e$1.X; - } else if ($assertType(_ref, ptrType$36, true)[1] || $assertType(_ref, ptrType$30, true)[1]) { - e$2 = _ref; - selOrIdent = e$2; - } - _ref$1 = selOrIdent; - if ($assertType(_ref$1, ptrType$30, true)[1]) { - x = _ref$1.$val; - return x; - } else if ($assertType(_ref$1, ptrType$36, true)[1]) { - x$1 = _ref$1.$val; - return x$1.Sel; + loc = sliceType$7.nil; + re = this; + _r = re.doExecute($ifaceNil, b, "", 0, 2, sliceType$7.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + a = _r; + if (a === sliceType$7.nil) { + loc = sliceType$7.nil; + $s = -1; return loc; } - $panic(new $String("instantiated ident not found")); + loc = $subslice(a, 0, 2); + $s = -1; return loc; + /* */ } return; } var $f = {$blk: FindIndex, $c: true, $r, _r, a, b, loc, re, $s};return $f; }; - $ptrType(Checker).prototype.recordDef = function recordDef(id, obj) { - var {_key, check, id, m, obj, $s, $r, $c} = $restore(this, {id, obj}); + $ptrType(Regexp).prototype.FindString = function FindString(s) { + var {_r, a, dstCap, re, s, $s, $r, $c} = $restore(this, {s}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - $r = assert(!(id === ptrType$30.nil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - m = check.Info.Defs; - if (!(m === false)) { - _key = id; (m || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$30.keyFor(_key), { k: _key, v: obj }); + re = this; + dstCap = arrayType$3.zero(); + _r = re.doExecute($ifaceNil, sliceType$4.nil, s, 0, 2, $subslice(new sliceType$7(dstCap), 0, 0)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + a = _r; + if (a === sliceType$7.nil) { + $s = -1; return ""; } - $s = -1; return; - /* */ } return; } var $f = {$blk: recordDef, $c: true, $r, _key, check, id, m, obj, $s};return $f; + $s = -1; return $substring(s, (0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]), (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1])); + /* */ } return; } var $f = {$blk: FindString, $c: true, $r, _r, a, dstCap, re, s, $s};return $f; }; - $ptrType(Checker).prototype.recordUse = function recordUse(id, obj) { - var {_key, check, id, m, obj, $s, $r, $c} = $restore(this, {id, obj}); + $ptrType(Regexp).prototype.FindStringIndex = function FindStringIndex(s) { + var {_r, a, loc, re, s, $s, $r, $c} = $restore(this, {s}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - $r = assert(!(id === ptrType$30.nil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = assert(!($interfaceIsEqual(obj, $ifaceNil))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - m = check.Info.Uses; - if (!(m === false)) { - _key = id; (m || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$30.keyFor(_key), { k: _key, v: obj }); + loc = sliceType$7.nil; + re = this; + _r = re.doExecute($ifaceNil, sliceType$4.nil, s, 0, 2, sliceType$7.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + a = _r; + if (a === sliceType$7.nil) { + loc = sliceType$7.nil; + $s = -1; return loc; } - $s = -1; return; - /* */ } return; } var $f = {$blk: recordUse, $c: true, $r, _key, check, id, m, obj, $s};return $f; + loc = $subslice(a, 0, 2); + $s = -1; return loc; + /* */ } return; } var $f = {$blk: FindStringIndex, $c: true, $r, _r, a, loc, re, s, $s};return $f; }; - $ptrType(Checker).prototype.recordImplicit = function recordImplicit(node$5, obj) { - var {_key, check, m, node$5, obj, $s, $r, $c} = $restore(this, {node$5, obj}); + $ptrType(Regexp).prototype.FindReaderIndex = function FindReaderIndex(r) { + var {_r, a, loc, r, re, $s, $r, $c} = $restore(this, {r}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - $r = assert(!($interfaceIsEqual(node$5, $ifaceNil))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = assert(!($interfaceIsEqual(obj, $ifaceNil))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - m = check.Info.Implicits; - if (!(m === false)) { - _key = node$5; (m || $throwRuntimeError("assignment to entry in nil map")).set(ast.Node.keyFor(_key), { k: _key, v: obj }); + loc = sliceType$7.nil; + re = this; + _r = re.doExecute(r, sliceType$4.nil, "", 0, 2, sliceType$7.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + a = _r; + if (a === sliceType$7.nil) { + loc = sliceType$7.nil; + $s = -1; return loc; } - $s = -1; return; - /* */ } return; } var $f = {$blk: recordImplicit, $c: true, $r, _key, check, m, node$5, obj, $s};return $f; + loc = $subslice(a, 0, 2); + $s = -1; return loc; + /* */ } return; } var $f = {$blk: FindReaderIndex, $c: true, $r, _r, a, loc, r, re, $s};return $f; }; - $ptrType(Checker).prototype.recordSelection = function recordSelection(x, kind, recv, obj, index$2, indirect) { - var {_key, check, index$2, indirect, kind, m, obj, recv, x, $s, $r, $c} = $restore(this, {x, kind, recv, obj, index$2, indirect}); + $ptrType(Regexp).prototype.FindSubmatch = function FindSubmatch(b) { + var {_i, _r, _ref, a, b, dstCap, i, re, ret, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {b}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - $r = assert(!($interfaceIsEqual(obj, $ifaceNil)) && ($interfaceIsEqual(recv, $ifaceNil) || index$2.$length > 0)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.recordUse(x.Sel, obj); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - m = check.Info.Selections; - if (!(m === false)) { - _key = x; (m || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$36.keyFor(_key), { k: _key, v: new Selection.ptr(kind, recv, obj, index$2, indirect) }); + re = this; + dstCap = arrayType$4.zero(); + _r = re.doExecute($ifaceNil, b, "", 0, re.prog.NumCap, $subslice(new sliceType$7(dstCap), 0, 0)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + a = _r; + if (a === sliceType$7.nil) { + $s = -1; return sliceType$8.nil; } - $s = -1; return; - /* */ } return; } var $f = {$blk: recordSelection, $c: true, $r, _key, check, index$2, indirect, kind, m, obj, recv, x, $s};return $f; - }; - $ptrType(Checker).prototype.recordScope = function recordScope(node$5, scope) { - var {_key, check, m, node$5, scope, $s, $r, $c} = $restore(this, {node$5, scope}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - $r = assert(!($interfaceIsEqual(node$5, $ifaceNil))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = assert(!(scope === ptrType.nil)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - m = check.Info.Scopes; - if (!(m === false)) { - _key = node$5; (m || $throwRuntimeError("assignment to entry in nil map")).set(ast.Node.keyFor(_key), { k: _key, v: scope }); + ret = $makeSlice(sliceType$8, (1 + re.numSubexp >> 0)); + _ref = ret; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + if (($imul(2, i)) < a.$length && (x = $imul(2, i), ((x < 0 || x >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x])) >= 0) { + ((i < 0 || i >= ret.$length) ? ($throwRuntimeError("index out of range"), undefined) : ret.$array[ret.$offset + i] = $subslice(b, (x$1 = $imul(2, i), ((x$1 < 0 || x$1 >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x$1])), (x$2 = ($imul(2, i)) + 1 >> 0, ((x$2 < 0 || x$2 >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x$2])), (x$3 = ($imul(2, i)) + 1 >> 0, ((x$3 < 0 || x$3 >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x$3])))); + } + _i++; } - $s = -1; return; - /* */ } return; } var $f = {$blk: recordScope, $c: true, $r, _key, check, m, node$5, scope, $s};return $f; + $s = -1; return ret; + /* */ } return; } var $f = {$blk: FindSubmatch, $c: true, $r, _i, _r, _ref, a, b, dstCap, i, re, ret, x, x$1, x$2, x$3, $s};return $f; }; - NewChan = function NewChan$1(dir$2, elem) { - var dir$2, elem; - return new Chan.ptr(dir$2, elem); + $ptrType(Regexp).prototype.Expand = function Expand(dst, template, src, match) { + var dst, match, re, src, template; + re = this; + return re.expand(dst, ($bytesToString(template)), src, "", match); }; - $pkg.NewChan = NewChan; - $ptrType(Chan).prototype.Dir = function Dir() { - var c; - c = this; - return c.dir; + $ptrType(Regexp).prototype.ExpandString = function ExpandString(dst, template, src, match) { + var dst, match, re, src, template; + re = this; + return re.expand(dst, template, sliceType$4.nil, src, match); }; - $ptrType(Chan).prototype.Elem = function Elem$3() { - var c; - c = this; - return c.elem; + $ptrType(Regexp).prototype.expand = function expand(dst, template, bsrc, src, match) { + var _i, _ref, _tuple, _tuple$1, after, before, bsrc, dst, i, match, name, namei, num, ok, re, rest, src, template, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + re = this; + while (true) { + if (!(template.length > 0)) { break; } + _tuple = strings.Cut(template, "$"); + before = _tuple[0]; + after = _tuple[1]; + ok = _tuple[2]; + if (!ok) { + break; + } + dst = $appendSlice(dst, before); + template = after; + if (!(template === "") && (template.charCodeAt(0) === 36)) { + dst = $append(dst, 36); + template = $substring(template, 1); + continue; + } + _tuple$1 = extract(template); + name = _tuple$1[0]; + num = _tuple$1[1]; + rest = _tuple$1[2]; + ok = _tuple$1[3]; + if (!ok) { + dst = $append(dst, 36); + continue; + } + template = rest; + if (num >= 0) { + if ((($imul(2, num)) + 1 >> 0) < match.$length && (x = $imul(2, num), ((x < 0 || x >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x])) >= 0) { + if (!(bsrc === sliceType$4.nil)) { + dst = $appendSlice(dst, $subslice(bsrc, (x$1 = $imul(2, num), ((x$1 < 0 || x$1 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$1])), (x$2 = ($imul(2, num)) + 1 >> 0, ((x$2 < 0 || x$2 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$2])))); + } else { + dst = $appendSlice(dst, $substring(src, (x$3 = $imul(2, num), ((x$3 < 0 || x$3 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$3])), (x$4 = ($imul(2, num)) + 1 >> 0, ((x$4 < 0 || x$4 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$4])))); + } + } + } else { + _ref = re.subexpNames; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + namei = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (name === namei && (($imul(2, i)) + 1 >> 0) < match.$length && (x$5 = $imul(2, i), ((x$5 < 0 || x$5 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$5])) >= 0) { + if (!(bsrc === sliceType$4.nil)) { + dst = $appendSlice(dst, $subslice(bsrc, (x$6 = $imul(2, i), ((x$6 < 0 || x$6 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$6])), (x$7 = ($imul(2, i)) + 1 >> 0, ((x$7 < 0 || x$7 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$7])))); + } else { + dst = $appendSlice(dst, $substring(src, (x$8 = $imul(2, i), ((x$8 < 0 || x$8 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$8])), (x$9 = ($imul(2, i)) + 1 >> 0, ((x$9 < 0 || x$9 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$9])))); + } + break; + } + _i++; + } + } + } + dst = $appendSlice(dst, template); + return dst; }; - $ptrType(Chan).prototype.Underlying = function Underlying$10() { - var t; - t = this; - return t; + extract = function extract$1(str) { + var _tuple, brace, i, i$1, name, num, ok, rest, rune, size, str; + name = ""; + num = 0; + rest = ""; + ok = false; + if (str === "") { + return [name, num, rest, ok]; + } + brace = false; + if (str.charCodeAt(0) === 123) { + brace = true; + str = $substring(str, 1); + } + i = 0; + while (true) { + if (!(i < str.length)) { break; } + _tuple = utf8.DecodeRuneInString($substring(str, i)); + rune = _tuple[0]; + size = _tuple[1]; + if (!unicode.IsLetter(rune) && !unicode.IsDigit(rune) && !((rune === 95))) { + break; + } + i = i + (size) >> 0; + } + if (i === 0) { + return [name, num, rest, ok]; + } + name = $substring(str, 0, i); + if (brace) { + if (i >= str.length || !((str.charCodeAt(i) === 125))) { + return [name, num, rest, ok]; + } + i = i + (1) >> 0; + } + num = 0; + i$1 = 0; + while (true) { + if (!(i$1 < name.length)) { break; } + if (name.charCodeAt(i$1) < 48 || 57 < name.charCodeAt(i$1) || num >= 100000000) { + num = -1; + break; + } + num = (($imul(num, 10)) + ((name.charCodeAt(i$1) >> 0)) >> 0) - 48 >> 0; + i$1 = i$1 + (1) >> 0; + } + if ((name.charCodeAt(0) === 48) && name.length > 1) { + num = -1; + } + rest = $substring(str, i); + ok = true; + return [name, num, rest, ok]; }; - $ptrType(Chan).prototype.String = function String$32() { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); + $ptrType(Regexp).prototype.FindSubmatchIndex = function FindSubmatchIndex(b) { + var {$24r, _r, _r$1, b, re, $s, $r, $c} = $restore(this, {b}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = TypeString(t, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + re = this; + _r = re.doExecute($ifaceNil, b, "", 0, re.prog.NumCap, sliceType$7.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = re.pad(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$32, $c: true, $r, $24r, _r$1, t, $s};return $f; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: FindSubmatchIndex, $c: true, $r, $24r, _r, _r$1, b, re, $s};return $f; }; - $ptrType(Checker).prototype.funcInst = function funcInst(x, ix) { - var {_r$1, _r$2, _r$3, _r$4, _r$5, _tmp, _tmp$1, check, got, ix, sig, targs, want, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {x, ix}); + $ptrType(Regexp).prototype.FindStringSubmatch = function FindStringSubmatch(s) { + var {_i, _r, _ref, a, dstCap, i, re, ret, s, x, x$1, x$2, $s, $r, $c} = $restore(this, {s}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - /* */ if (!check.allowVersion(check.pkg, 1, 18)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!check.allowVersion(check.pkg, 1, 18)) { */ case 1: - _r$1 = inNode(ix.Orig, ix.IndexListExpr.Lbrack); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $r = check.softErrorf((x$1 = _r$1, new x$1.constructor.elem(x$1)), 135, "function instantiation requires go1.18 or later", sliceType$6.nil); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - _r$2 = check.typeList(ix.IndexListExpr.Indices); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - targs = _r$2; - if (targs === sliceType$2.nil) { - x.mode = 0; - x.expr = ix.Orig; - $s = -1; return; + re = this; + dstCap = arrayType$4.zero(); + _r = re.doExecute($ifaceNil, sliceType$4.nil, s, 0, re.prog.NumCap, $subslice(new sliceType$7(dstCap), 0, 0)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + a = _r; + if (a === sliceType$7.nil) { + $s = -1; return sliceType$3.nil; } - $r = assert(targs.$length === ix.IndexListExpr.Indices.$length); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - sig = $assertType(x.typ, ptrType$27); - _tmp = targs.$length; - _tmp$1 = sig.TypeParams().Len(); - got = _tmp; - want = _tmp$1; - /* */ if (got > want) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (got > want) { */ case 7: - $r = check.errorf((x$2 = ix.IndexListExpr.Indices, x$3 = got - 1 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])), 137, "got %d type arguments but want %d", new sliceType$6([new $Int(got), new $Int(want)])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - x.expr = ix.Orig; - $s = -1; return; - /* } */ case 8: - /* */ if (got < want) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (got < want) { */ case 10: - _r$3 = check.infer(ix.Orig, sig.TypeParams().list(), targs, ptrType$15.nil, sliceType$29.nil); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - targs = _r$3; - if (targs === sliceType$2.nil) { - x.mode = 0; - x.expr = ix.Orig; - $s = -1; return; + ret = $makeSlice(sliceType$3, (1 + re.numSubexp >> 0)); + _ref = ret; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + if (($imul(2, i)) < a.$length && (x = $imul(2, i), ((x < 0 || x >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x])) >= 0) { + ((i < 0 || i >= ret.$length) ? ($throwRuntimeError("index out of range"), undefined) : ret.$array[ret.$offset + i] = $substring(s, (x$1 = $imul(2, i), ((x$1 < 0 || x$1 >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x$1])), (x$2 = ($imul(2, i)) + 1 >> 0, ((x$2 < 0 || x$2 >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x$2])))); } - got = targs.$length; - /* } */ case 11: - $r = assert(got === want); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$4 = x.Pos(); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$5 = check.instantiateSignature(_r$4, sig, targs, ix.IndexListExpr.Indices); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - sig = _r$5; - $r = assert(sig.TypeParams().Len() === 0); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.recordInstance(ix.Orig, targs, sig); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.typ = sig; - x.mode = 7; - x.expr = ix.Orig; - $s = -1; return; - /* */ } return; } var $f = {$blk: funcInst, $c: true, $r, _r$1, _r$2, _r$3, _r$4, _r$5, _tmp, _tmp$1, check, got, ix, sig, targs, want, x, x$1, x$2, x$3, $s};return $f; - }; - $ptrType(Checker).prototype.instantiateSignature = function instantiateSignature(pos$1, typ$4, targs, xlist) { - var {$24r, _r$1, check, inst, pos$1, res, targs, typ$4, xlist, $s, $deferred, $r, $c} = $restore(this, {pos$1, typ$4, targs, xlist}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - check = [check]; - pos$1 = [pos$1]; - res = [res]; - targs = [targs]; - typ$4 = [typ$4]; - xlist = [xlist]; - res[0] = ptrType$27.nil; - check[0] = this; - $r = assert(!(check[0] === ptrType$5.nil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = assert(targs[0].$length === typ$4[0].TypeParams().Len()); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (false) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (false) { */ case 3: - $r = check[0].trace(pos$1[0], "-- instantiating signature %s with %s", new sliceType$6([typ$4[0], targs[0]])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - check[0].indent = check[0].indent + (1) >> 0; - $deferred.push([(function(check, pos$1, res, targs, typ$4, xlist) { return function Checker·instantiateSignature·func1() { - var {$s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check[0].indent = check[0].indent - (1) >> 0; - $r = check[0].trace(pos$1[0], "=> %s (under = %s)", new sliceType$6([res[0], res[0].Underlying()])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·instantiateSignature·func1, $c: true, $r, $s};return $f; - }; })(check, pos$1, res, targs, typ$4, xlist), []]); - /* } */ case 4: - _r$1 = check[0].instance(pos$1[0], typ$4[0], targs[0], ptrType$9.nil, check[0].context()); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - inst = $assertType(_r$1, ptrType$27); - $r = assert(xlist[0].$length <= targs[0].$length); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - check[0].later((function(check, pos$1, res, targs, typ$4, xlist) { return function Checker·instantiateSignature·func2() { - var {_r$2, _r$3, _tuple, err, i, pos$2, tparams, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - tparams = typ$4[0].TypeParams().list(); - _r$2 = check[0].verify(pos$1[0], tparams, targs[0], check[0].context()); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple = _r$2; - i = _tuple[0]; - err = _tuple[1]; - /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2: - pos$2 = pos$1[0]; - /* */ if (i < xlist[0].$length) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (i < xlist[0].$length) { */ case 5: - _r$3 = ((i < 0 || i >= xlist[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : xlist[0].$array[xlist[0].$offset + i]).Pos(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - pos$2 = _r$3; - /* } */ case 6: - $r = check[0].softErrorf(new atPos(((pos$2 >> 0))), 139, "%s", new sliceType$6([err])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 4; continue; - /* } else { */ case 3: - $r = check[0].mono.recordInstance(check[0].pkg, pos$1[0], tparams, targs[0], xlist[0]); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 4: - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·instantiateSignature·func2, $c: true, $r, _r$2, _r$3, _tuple, err, i, pos$2, tparams, $s};return $f; - }; })(check, pos$1, res, targs, typ$4, xlist)).describef(new atPos(((pos$1[0] >> 0))), "verify instantiation", sliceType$6.nil); - res[0] = inst; - $24r = res[0]; - $s = 8; case 8: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return res[0]; } if($curGoroutine.asleep) { var $f = {$blk: instantiateSignature, $c: true, $r, $24r, _r$1, check, inst, pos$1, res, targs, typ$4, xlist, $s, $deferred};return $f; } } + _i++; + } + $s = -1; return ret; + /* */ } return; } var $f = {$blk: FindStringSubmatch, $c: true, $r, _i, _r, _ref, a, dstCap, i, re, ret, s, x, x$1, x$2, $s};return $f; }; - $ptrType(Checker).prototype.callExpr = function callExpr(x, call) { - var {T, _1, _2, _3, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _v, args, call, cgocall, check, got, id, ix, n, sig, t, targs, want, wasGeneric, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, xlist, $s, $r, $c} = $restore(this, {x, call}); + $ptrType(Regexp).prototype.FindStringSubmatchIndex = function FindStringSubmatchIndex(s) { + var {$24r, _r, _r$1, re, s, $s, $r, $c} = $restore(this, {s}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - ix = typeparams.UnpackIndexExpr(call.Fun); - /* */ if (!(ix === ptrType$112.nil)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(ix === ptrType$112.nil)) { */ case 1: - _r$1 = check.indexExpr(x, ix); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_r$1) { */ case 4: - $r = assert(x.mode === 7); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 6; continue; - /* } else { */ case 5: - ix = ptrType$112.nil; - /* } */ case 6: - x.expr = call.Fun; - $r = check.record(x); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 3; continue; - /* } else { */ case 2: - $r = check.exprOrType(x, call.Fun, true); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 3: - _1 = x.mode; - /* */ if (_1 === (0)) { $s = 12; continue; } - /* */ if (_1 === (3)) { $s = 13; continue; } - /* */ if (_1 === (2)) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (_1 === (0)) { */ case 12: - $r = check.use(call.Args); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.expr = call; - $s = -1; return 2; - /* } else if (_1 === (3)) { */ case 13: - $r = check.nonGeneric(x); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x.mode === 0) { - $s = -1; return 0; - } - T = x.typ; - x.mode = 0; - n = call.Args.$length; - _2 = n; - /* */ if (_2 === (0)) { $s = 19; continue; } - /* */ if (_2 === (1)) { $s = 20; continue; } - /* */ $s = 21; continue; - /* if (_2 === (0)) { */ case 19: - _r$2 = inNode(call, call.Rparen); /* */ $s = 23; case 23: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $r = check.errorf((x$1 = _r$2, new x$1.constructor.elem(x$1)), 126, "missing argument in conversion to %s", new sliceType$6([T])); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 22; continue; - /* } else if (_2 === (1)) { */ case 20: - $r = check.expr(x, (x$2 = call.Args, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0]))); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!((x.mode === 0))) { $s = 26; continue; } - /* */ $s = 27; continue; - /* if (!((x.mode === 0))) { */ case 26: - /* */ if (new token.Pos(call.Ellipsis).IsValid()) { $s = 28; continue; } - /* */ $s = 29; continue; - /* if (new token.Pos(call.Ellipsis).IsValid()) { */ case 28: - $r = check.errorf((x$3 = call.Args, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])), 77, "invalid use of ... in conversion to %s", new sliceType$6([T])); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* break; */ $s = 18; continue; - /* } */ case 29: - _r$3 = under(T); /* */ $s = 31; case 31: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple = $assertType(_r$3, ptrType$13, true); - t = _tuple[0]; - /* */ if (!(t === ptrType$13.nil) && !isTypeParam(T)) { $s = 32; continue; } - /* */ $s = 33; continue; - /* if (!(t === ptrType$13.nil) && !isTypeParam(T)) { */ case 32: - _r$4 = t.IsMethodSet(); /* */ $s = 36; case 36: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if (!_r$4) { $s = 34; continue; } - /* */ $s = 35; continue; - /* if (!_r$4) { */ case 34: - $r = check.errorf(call, 142, "cannot use interface %s in conversion (contains specific type constraints or is comparable)", new sliceType$6([T])); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* break; */ $s = 18; continue; - /* } */ case 35: - /* } */ case 33: - $r = check.conversion(x, T); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 27: - $s = 22; continue; - /* } else { */ case 21: - $r = check.use(call.Args); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.errorf((x$4 = call.Args, x$5 = n - 1 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])), 126, "too many arguments in conversion to %s", new sliceType$6([T])); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 22: - case 18: - x.expr = call; - $s = -1; return 0; - /* } else if (_1 === (2)) { */ case 14: - id = x.id; - _r$5 = check.builtin(x, call, id); /* */ $s = 43; case 43: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* */ if (!_r$5) { $s = 41; continue; } - /* */ $s = 42; continue; - /* if (!_r$5) { */ case 41: - x.mode = 0; - /* } */ case 42: - x.expr = call; - if (!((x.mode === 0)) && !((x.mode === 4))) { - check.environment.hasCallOrRecv = true; - } - $s = -1; return ((id < 0 || id >= predeclaredFuncs.length) ? ($throwRuntimeError("index out of range"), undefined) : predeclaredFuncs[id]).kind; - /* } */ case 15: - case 11: - cgocall = x.mode === 10; - _r$6 = coreType(x.typ); /* */ $s = 44; case 44: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _tuple$1 = $assertType(_r$6, ptrType$27, true); - sig = _tuple$1[0]; - /* */ if (sig === ptrType$27.nil) { $s = 45; continue; } - /* */ $s = 46; continue; - /* if (sig === ptrType$27.nil) { */ case 45: - $r = check.errorf(x, 127, "invalid operation: cannot call non-function %s", new sliceType$6([x])); /* */ $s = 47; case 47: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - x.expr = call; - $s = -1; return 2; - /* } */ case 46: - wasGeneric = sig.TypeParams().Len() > 0; - xlist = sliceType$11.nil; - targs = sliceType$2.nil; - /* */ if (!(ix === ptrType$112.nil)) { $s = 48; continue; } - /* */ $s = 49; continue; - /* if (!(ix === ptrType$112.nil)) { */ case 48: - xlist = ix.IndexListExpr.Indices; - _r$7 = check.typeList(xlist); /* */ $s = 50; case 50: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - targs = _r$7; - /* */ if (targs === sliceType$2.nil) { $s = 51; continue; } - /* */ $s = 52; continue; - /* if (targs === sliceType$2.nil) { */ case 51: - $r = check.use(call.Args); /* */ $s = 53; case 53: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - x.expr = call; - $s = -1; return 2; - /* } */ case 52: - $r = assert(targs.$length === xlist.$length); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _tmp = targs.$length; - _tmp$1 = sig.TypeParams().Len(); - got = _tmp; - want = _tmp$1; - /* */ if (got > want) { $s = 55; continue; } - /* */ $s = 56; continue; - /* if (got > want) { */ case 55: - $r = check.errorf(((want < 0 || want >= xlist.$length) ? ($throwRuntimeError("index out of range"), undefined) : xlist.$array[xlist.$offset + want]), 137, "got %d type arguments but want %d", new sliceType$6([new $Int(got), new $Int(want)])); /* */ $s = 57; case 57: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.use(call.Args); /* */ $s = 58; case 58: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - x.expr = call; - $s = -1; return 2; - /* } */ case 56: - /* */ if ((got === want) && want > 0) { $s = 59; continue; } - /* */ $s = 60; continue; - /* if ((got === want) && want > 0) { */ case 59: - /* */ if (!check.allowVersion(check.pkg, 1, 18)) { $s = 61; continue; } - /* */ $s = 62; continue; - /* if (!check.allowVersion(check.pkg, 1, 18)) { */ case 61: - _r$8 = inNode(call.Fun, ix.IndexListExpr.Lbrack); /* */ $s = 63; case 63: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - $r = check.softErrorf((x$6 = _r$8, new x$6.constructor.elem(x$6)), 135, "function instantiation requires go1.18 or later", sliceType$6.nil); /* */ $s = 64; case 64: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 62: - _r$9 = ix.IndexListExpr.Pos(); /* */ $s = 65; case 65: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _r$10 = check.instantiateSignature(_r$9, sig, targs, xlist); /* */ $s = 66; case 66: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - sig = _r$10; - $r = assert(sig.TypeParams().Len() === 0); /* */ $s = 67; case 67: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.recordInstance(ix.Orig, targs, sig); /* */ $s = 68; case 68: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - targs = sliceType$2.nil; - xlist = sliceType$11.nil; - /* } */ case 60: - /* } */ case 49: - _r$11 = check.exprList(call.Args, false); /* */ $s = 69; case 69: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _tuple$2 = _r$11; - args = _tuple$2[0]; - _r$12 = check.arguments$(call, sig, targs, args, xlist); /* */ $s = 70; case 70: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - sig = _r$12; - /* */ if (wasGeneric && (sig.TypeParams().Len() === 0)) { $s = 71; continue; } - /* */ $s = 72; continue; - /* if (wasGeneric && (sig.TypeParams().Len() === 0)) { */ case 71: - $r = check.recordTypeAndValue(call.Fun, 7, sig, $ifaceNil); /* */ $s = 73; case 73: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 72: - _3 = sig.results.Len(); - if (_3 === (0)) { - x.mode = 1; - } else if (_3 === (1)) { - if (cgocall) { - x.mode = 9; - } else { - x.mode = 7; - } - x.typ = (x$7 = sig.results.vars, (0 >= x$7.$length ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + 0])).object.typ; - } else { - x.mode = 7; - x.typ = sig.results; - } - x.expr = call; - check.environment.hasCallOrRecv = true; - if (!((x.mode === 7) && sig.TypeParams().Len() > 0)) { _v = false; $s = 76; continue s; } - _r$13 = isParameterized(sig.TypeParams().list(), x.typ); /* */ $s = 77; case 77: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - _v = _r$13; case 76: - /* */ if (_v) { $s = 74; continue; } - /* */ $s = 75; continue; - /* if (_v) { */ case 74: - x.mode = 0; - /* } */ case 75: - $s = -1; return 2; - /* */ } return; } var $f = {$blk: callExpr, $c: true, $r, T, _1, _2, _3, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _v, args, call, cgocall, check, got, id, ix, n, sig, t, targs, want, wasGeneric, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, xlist, $s};return $f; + re = this; + _r = re.doExecute($ifaceNil, sliceType$4.nil, s, 0, re.prog.NumCap, sliceType$7.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = re.pad(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: FindStringSubmatchIndex, $c: true, $r, $24r, _r, _r$1, re, s, $s};return $f; }; - $ptrType(Checker).prototype.exprList = function exprList(elist, allowCommaOk) { - var {_1, _i, _i$1, _ref, _ref$1, _tuple, allowCommaOk, check, commaOk, e, e$1, elist, i, i$1, ok, t, v, x, x$1, x2, xlist, $s, $r, $c} = $restore(this, {elist, allowCommaOk}); + $ptrType(Regexp).prototype.FindReaderSubmatchIndex = function FindReaderSubmatchIndex(r) { + var {$24r, _r, _r$1, r, re, $s, $r, $c} = $restore(this, {r}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = [x]; - xlist = sliceType$29.nil; - commaOk = false; - check = this; - _1 = elist.$length; - /* */ if (_1 === (0)) { $s = 2; continue; } - /* */ if (_1 === (1)) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (_1 === (0)) { */ case 2: - $s = 5; continue; - /* } else if (_1 === (1)) { */ case 3: - e = (0 >= elist.$length ? ($throwRuntimeError("index out of range"), undefined) : elist.$array[elist.$offset + 0]); - x[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = check.multiExpr(x[0], e); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _tuple = $assertType(x[0].typ, ptrType$15, true); - t = _tuple[0]; - ok = _tuple[1]; - if (ok && !((x[0].mode === 0))) { - xlist = $makeSlice(sliceType$29, t.Len()); - _ref = t.vars; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - ((i < 0 || i >= xlist.$length) ? ($throwRuntimeError("index out of range"), undefined) : xlist.$array[xlist.$offset + i] = new operand.ptr(7, e, v.object.typ, $ifaceNil, 0)); - _i++; - } - /* break; */ $s = 1; continue; - } - xlist = new sliceType$29([x[0]]); - if (allowCommaOk && ((x[0].mode === 6) || (x[0].mode === 8) || (x[0].mode === 9))) { - x2 = new operand.ptr(7, e, (19 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 19]), $ifaceNil, 0); - if (x[0].mode === 9) { - x2.typ = universeError; - } - xlist = $append(xlist, x2); - commaOk = true; - } - $s = 5; continue; - /* } else { */ case 4: - xlist = $makeSlice(sliceType$29, elist.$length); - _ref$1 = elist; - _i$1 = 0; - /* while (true) { */ case 7: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 8; continue; } - x$1 = [x$1]; - i$1 = _i$1; - e$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - x$1[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = check.expr(x$1[0], e$1); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - ((i$1 < 0 || i$1 >= xlist.$length) ? ($throwRuntimeError("index out of range"), undefined) : xlist.$array[xlist.$offset + i$1] = x$1[0]); - _i$1++; - $s = 7; continue; - case 8: - /* } */ case 5: - case 1: - $s = -1; return [xlist, commaOk]; - /* */ } return; } var $f = {$blk: exprList, $c: true, $r, _1, _i, _i$1, _ref, _ref$1, _tuple, allowCommaOk, check, commaOk, e, e$1, elist, i, i$1, ok, t, v, x, x$1, x2, xlist, $s};return $f; + re = this; + _r = re.doExecute(r, sliceType$4.nil, "", 0, re.prog.NumCap, sliceType$7.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = re.pad(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: FindReaderSubmatchIndex, $c: true, $r, $24r, _r, _r$1, r, re, $s};return $f; }; - $ptrType(Checker).prototype.arguments$ = function arguments$1(call, sig, targs, args, xlist) { - var {_1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _i, _i$1, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, a, a$1, adjusted, args, at$1, call, check, context$1, ddd, err, i, ix, last, nargs, npars, params, qualifier$1, rsig, sig, sigParams, targs, targs$1, typ$4, vars, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, xlist, $s, $r, $c} = $restore(this, {call, sig, targs, args, xlist}); + $ptrType(Regexp).prototype.FindAll = function FindAll(b, n) { + var {b, n, re, result, $s, $r, $c} = $restore(this, {b, n}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - rsig = ptrType$27.nil; - check = this; - rsig = sig; - _ref = args; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - a = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _1 = a.mode; - /* */ if (_1 === (3)) { $s = 4; continue; } - /* */ if (_1 === (0)) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (_1 === (3)) { */ case 4: - $r = check.errorf(a, 42, "%s used as value", new sliceType$6([a])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return rsig; - /* } else if (_1 === (0)) { */ case 5: - $s = -1; return rsig; - /* } */ case 6: - case 3: - _i++; - $s = 1; continue; - case 2: - nargs = args.$length; - npars = sig.params.Len(); - ddd = new token.Pos(call.Ellipsis).IsValid(); - sigParams = sig.params; - adjusted = false; - /* */ if (sig.variadic) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (sig.variadic) { */ case 8: - /* */ if (ddd) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (ddd) { */ case 11: - /* */ if ((call.Args.$length === 1) && nargs > 1) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if ((call.Args.$length === 1) && nargs > 1) { */ case 14: - _r$1 = inNode(call, call.Ellipsis); /* */ $s = 16; case 16: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $r = check.errorf((x = _r$1, new x.constructor.elem(x)), 81, "cannot use ... with %d-valued %s", new sliceType$6([new $Int(nargs), (x$1 = call.Args, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0]))])); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return rsig; - /* } */ case 15: - $s = 13; continue; - /* } else { */ case 12: - if (nargs >= (npars - 1 >> 0)) { - vars = $makeSlice(sliceType$10, (npars - 1 >> 0)); - $copySlice(vars, sig.params.vars); - last = (x$2 = sig.params.vars, x$3 = npars - 1 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])); - typ$4 = $assertType(last.object.typ, ptrType$25).elem; - while (true) { - if (!(vars.$length < nargs)) { break; } - vars = $append(vars, NewParam(last.object.pos, last.object.pkg, last.object.name, typ$4)); - } - sigParams = NewTuple(vars); - adjusted = true; - npars = nargs; - } else { - npars = npars - (1) >> 0; + b = [b]; + result = [result]; + re = this; + if (n < 0) { + n = b[0].$length + 1 >> 0; + } + result[0] = sliceType$8.nil; + $r = re.allMatches("", b[0], n, (function(b, result) { return function Regexp·FindAll·func1(match) { + var match; + if (result[0] === sliceType$8.nil) { + result[0] = $makeSlice(sliceType$8, 0, 10); } - /* } */ case 13: - $s = 10; continue; - /* } else { */ case 9: - /* */ if (ddd) { $s = 18; continue; } - /* */ $s = 19; continue; - /* if (ddd) { */ case 18: - _r$2 = inNode(call, call.Ellipsis); /* */ $s = 20; case 20: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $r = check.errorf((x$4 = _r$2, new x$4.constructor.elem(x$4)), 78, "cannot use ... in call to non-variadic %s", new sliceType$6([call.Fun])); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return rsig; - /* } */ case 19: - /* } */ case 10: - /* */ if (!((nargs === npars))) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if (!((nargs === npars))) { */ case 22: - at$1 = call; - qualifier$1 = "not enough"; - if (nargs > npars) { - at$1 = ((npars < 0 || npars >= args.$length) ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + npars]).expr; - qualifier$1 = "too many"; - } else { - at$1 = new atPos(((call.Rparen >> 0))); - } - params = sliceType$10.nil; - if (!(sig.params === ptrType$15.nil)) { - params = sig.params.vars; - } - err = newErrorf(at$1, 126, "%s arguments in call to %s", new sliceType$6([new $String(qualifier$1), call.Fun])); - _r$3 = check.typesSummary(operandTypes(args), false); /* */ $s = 24; case 24: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _arg = new $String(_r$3); - $r = err.errorf(0, "have %s", new sliceType$6([_arg])); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$4 = check.typesSummary(varTypes(params), sig.variadic); /* */ $s = 26; case 26: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _arg$1 = new $String(_r$4); - $r = err.errorf(0, "want %s", new sliceType$6([_arg$1])); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.report(err); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return rsig; - /* } */ case 23: - /* */ if (sig.TypeParams().Len() > 0) { $s = 29; continue; } - /* */ $s = 30; continue; - /* if (sig.TypeParams().Len() > 0) { */ case 29: - /* */ if (!check.allowVersion(check.pkg, 1, 18)) { $s = 31; continue; } - /* */ $s = 32; continue; - /* if (!check.allowVersion(check.pkg, 1, 18)) { */ case 31: - _ref$1 = call.Fun; - /* */ if ($assertType(_ref$1, ptrType$37, true)[1] || $assertType(_ref$1, ptrType$38, true)[1]) { $s = 33; continue; } - /* */ $s = 34; continue; - /* if ($assertType(_ref$1, ptrType$37, true)[1] || $assertType(_ref$1, ptrType$38, true)[1]) { */ case 33: - ix = typeparams.UnpackIndexExpr(call.Fun); - _r$5 = inNode(call.Fun, ix.IndexListExpr.Lbrack); /* */ $s = 36; case 36: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - $r = check.softErrorf((x$5 = _r$5, new x$5.constructor.elem(x$5)), 135, "function instantiation requires go1.18 or later", sliceType$6.nil); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 35; continue; - /* } else { */ case 34: - _r$6 = inNode(call, call.Lparen); /* */ $s = 38; case 38: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - $r = check.softErrorf((x$6 = _r$6, new x$6.constructor.elem(x$6)), 135, "implicit function instantiation requires go1.18 or later", sliceType$6.nil); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 35: - /* } */ case 32: - _r$7 = check.infer(call, sig.TypeParams().list(), targs, sigParams, args); /* */ $s = 40; case 40: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - targs$1 = _r$7; - if (targs$1 === sliceType$2.nil) { - $s = -1; return rsig; - } - _r$8 = call.Pos(); /* */ $s = 41; case 41: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _r$9 = check.instantiateSignature(_r$8, sig, targs$1, xlist); /* */ $s = 42; case 42: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - rsig = _r$9; - $r = assert(rsig.TypeParams().Len() === 0); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.recordInstance(call.Fun, targs$1, rsig); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (adjusted) { $s = 45; continue; } - /* */ $s = 46; continue; - /* if (adjusted) { */ case 45: - _r$10 = call.Pos(); /* */ $s = 48; case 48: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _arg$2 = _r$10; - _arg$3 = sigParams; - _r$11 = makeSubstMap(sig.TypeParams().list(), targs$1); /* */ $s = 49; case 49: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _arg$4 = _r$11; - _arg$5 = ptrType$9.nil; - _arg$6 = check.context(); - _r$12 = check.subst(_arg$2, _arg$3, _arg$4, _arg$5, _arg$6); /* */ $s = 50; case 50: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - sigParams = $assertType(_r$12, ptrType$15); - $s = 47; continue; - /* } else { */ case 46: - sigParams = rsig.params; - /* } */ case 47: - /* } */ case 30: - /* */ if (args.$length > 0) { $s = 51; continue; } - /* */ $s = 52; continue; - /* if (args.$length > 0) { */ case 51: - _r$13 = check.sprintf("argument to %s", new sliceType$6([call.Fun])); /* */ $s = 53; case 53: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - context$1 = _r$13; - _ref$2 = args; - _i$1 = 0; - /* while (true) { */ case 54: - /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 55; continue; } - i = _i$1; - a$1 = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); - $r = check.assignment(a$1, (x$7 = sigParams.vars, ((i < 0 || i >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + i])).object.typ, context$1); /* */ $s = 56; case 56: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$1++; - $s = 54; continue; - case 55: - /* } */ case 52: - $s = -1; return rsig; - /* */ } return; } var $f = {$blk: arguments$1, $c: true, $r, _1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _i, _i$1, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, a, a$1, adjusted, args, at$1, call, check, context$1, ddd, err, i, ix, last, nargs, npars, params, qualifier$1, rsig, sig, sigParams, targs, targs$1, typ$4, vars, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, xlist, $s};return $f; + result[0] = $append(result[0], $subslice(b[0], (0 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 0]), (1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]), (1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]))); + }; })(b, result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return result[0]; + /* */ } return; } var $f = {$blk: FindAll, $c: true, $r, b, n, re, result, $s};return $f; }; - $ptrType(Checker).prototype.selector = function selector(x, e, def$2, wantType) { - var {_1, _arg, _arg$1, _arg$2, _arg$3, _i, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _v, changeCase, check, def$2, disabled, e, exp, exp$1, exp$2, exp$3, exp$4, exp$5, exp$6, funcMode, ident$1, index$2, indirect, m, m$1, m$2, mset, name, obj, obj$1, obj$2, obj$3, obj$4, ok, ok$1, params, pkg, pname, prefix, r, sel, sig, sig$1, typ$4, wantType, why, x, x$1, $s, $r, $c} = $restore(this, {x, e, def$2, wantType}); + $ptrType(Regexp).prototype.FindAllIndex = function FindAllIndex(b, n) { + var {b, n, re, result, $s, $r, $c} = $restore(this, {b, n}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - sig = [sig]; - check = this; - obj = $ifaceNil; - index$2 = sliceType$13.nil; - indirect = false; - sel = e.Sel.Name; - _tuple = $assertType(e.X, ptrType$30, true); - ident$1 = _tuple[0]; - ok = _tuple[1]; - /* */ if (ok) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (ok) { */ case 1: - _r$1 = check.environment.lookup(ident$1.Name); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - obj$1 = _r$1; - _tuple$1 = $assertType(obj$1, ptrType$31, true); - pname = _tuple$1[0]; - /* */ if (!(pname === ptrType$31.nil)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (!(pname === ptrType$31.nil)) { */ case 4: - $r = assert(pname.object.pkg === check.pkg); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.recordUse(ident$1, pname); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - pname.used = true; - pkg = pname.imported; - exp = $ifaceNil; - funcMode = 7; - /* */ if (pkg.cgo) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (pkg.cgo) { */ case 8: - if (sel === "malloc") { - sel = "_CMalloc"; - } else { - funcMode = 10; - } - _ref = cgoPrefixes; - _i = 0; - /* while (true) { */ case 11: - /* if (!(_i < 8)) { break; } */ if(!(_i < 8)) { $s = 12; continue; } - prefix = ((_i < 0 || _i >= _ref.length) ? ($throwRuntimeError("index out of range"), undefined) : _ref[_i]); - _r$2 = check.environment.scope.LookupParent(prefix + sel, check.environment.pos); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple$2 = _r$2; - exp = _tuple$2[1]; - if (!($interfaceIsEqual(exp, $ifaceNil))) { - /* break; */ $s = 12; continue; - } - _i++; - $s = 11; continue; - case 12: - /* */ if ($interfaceIsEqual(exp, $ifaceNil)) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if ($interfaceIsEqual(exp, $ifaceNil)) { */ case 14: - $r = check.errorf(e.Sel, 73, "undefined: %s", new sliceType$6([(e)])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 17; continue; - /* } */ case 15: - $r = check.objDecl(exp, ptrType$9.nil); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 10; continue; - /* } else { */ case 9: - _r$3 = pkg.scope.Lookup(sel); /* */ $s = 19; case 19: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - exp = _r$3; - /* */ if ($interfaceIsEqual(exp, $ifaceNil)) { $s = 20; continue; } - /* */ $s = 21; continue; - /* if ($interfaceIsEqual(exp, $ifaceNil)) { */ case 20: - /* */ if (!pkg.fake) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if (!pkg.fake) { */ case 22: - $r = check.errorf(e.Sel, 73, "undefined: %s", new sliceType$6([(e)])); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 23: - /* goto Error */ $s = 17; continue; - /* } */ case 21: - _r$4 = exp.Exported(); /* */ $s = 27; case 27: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if (!_r$4) { $s = 25; continue; } - /* */ $s = 26; continue; - /* if (!_r$4) { */ case 25: - $r = check.errorf(e.Sel, 74, "%s not exported by package %s", new sliceType$6([new $String(sel), new $String(pkg.name)])); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 26: - /* } */ case 10: - $r = check.recordUse(e.Sel, exp); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _ref$1 = exp; - /* */ if ($assertType(_ref$1, ptrType$32, true)[1]) { $s = 30; continue; } - /* */ if ($assertType(_ref$1, ptrType$17, true)[1]) { $s = 31; continue; } - /* */ if ($assertType(_ref$1, ptrType$16, true)[1]) { $s = 32; continue; } - /* */ if ($assertType(_ref$1, ptrType$2, true)[1]) { $s = 33; continue; } - /* */ if ($assertType(_ref$1, ptrType$18, true)[1]) { $s = 34; continue; } - /* */ $s = 35; continue; - /* if ($assertType(_ref$1, ptrType$32, true)[1]) { */ case 30: - exp$1 = _ref$1.$val; - $r = assert(!($interfaceIsEqual(exp$1.Val(), $ifaceNil))); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 4; - x.typ = exp$1.object.typ; - x.val = exp$1.val; - $s = 36; continue; - /* } else if ($assertType(_ref$1, ptrType$17, true)[1]) { */ case 31: - exp$2 = _ref$1.$val; - x.mode = 3; - x.typ = exp$2.object.typ; - $s = 36; continue; - /* } else if ($assertType(_ref$1, ptrType$16, true)[1]) { */ case 32: - exp$3 = _ref$1.$val; - x.mode = 5; - x.typ = exp$3.object.typ; - if (pkg.cgo && strings.HasPrefix(exp$3.object.name, "_Cvar_")) { - x.typ = $assertType(x.typ, ptrType$26).base; - } - $s = 36; continue; - /* } else if ($assertType(_ref$1, ptrType$2, true)[1]) { */ case 33: - exp$4 = _ref$1.$val; - x.mode = funcMode; - x.typ = exp$4.object.typ; - if (pkg.cgo && strings.HasPrefix(exp$4.object.name, "_Cmacro_")) { - x.mode = 7; - x.typ = (x$1 = $assertType(x.typ, ptrType$27).results.vars, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])).object.typ; - } - $s = 36; continue; - /* } else if ($assertType(_ref$1, ptrType$18, true)[1]) { */ case 34: - exp$5 = _ref$1.$val; - x.mode = 2; - x.typ = exp$5.object.typ; - x.id = exp$5.id; - $s = 36; continue; - /* } else { */ case 35: - exp$6 = _ref$1; - $r = check.dump("%v: unexpected object %v", new sliceType$6([new token.Pos(e.Sel.Pos()), exp$6])); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - unreachable(); - /* } */ case 36: - x.expr = e; - $s = -1; return; - /* } */ case 5: - /* } */ case 2: - $r = check.exprOrType(x, e.X, false); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _1 = x.mode; - /* */ if (_1 === (3)) { $s = 41; continue; } - /* */ if (_1 === (2)) { $s = 42; continue; } - /* */ if (_1 === (0)) { $s = 43; continue; } - /* */ $s = 44; continue; - /* if (_1 === (3)) { */ case 41: - /* */ if (!(def$2 === ptrType$9.nil) && $interfaceIsEqual(x.typ, def$2)) { $s = 45; continue; } - /* */ $s = 46; continue; - /* if (!(def$2 === ptrType$9.nil) && $interfaceIsEqual(x.typ, def$2)) { */ case 45: - $r = check.cycleError(new sliceType$8([def$2.obj])); /* */ $s = 47; case 47: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 17; continue; - /* } */ case 46: - $s = 44; continue; - /* } else if (_1 === (2)) { */ case 42: - $r = check.errorf(e.Sel, 82, "cannot select on %s", new sliceType$6([x])); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 17; continue; - $s = 44; continue; - /* } else if (_1 === (0)) { */ case 43: - /* goto Error */ $s = 17; continue; - /* } */ case 44: - case 40: - /* */ if (wantType) { $s = 49; continue; } - /* */ $s = 50; continue; - /* if (wantType) { */ case 49: - $r = check.errorf(e.Sel, 25, "%s is not a type", new sliceType$6([(e)])); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 17; continue; - /* } */ case 50: - _r$5 = LookupFieldOrMethod(x.typ, x.mode === 5, check.pkg, sel); /* */ $s = 52; case 52: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _tuple$3 = _r$5; - obj = _tuple$3[0]; - index$2 = _tuple$3[1]; - indirect = _tuple$3[2]; - /* */ if ($interfaceIsEqual(obj, $ifaceNil)) { $s = 53; continue; } - /* */ $s = 54; continue; - /* if ($interfaceIsEqual(obj, $ifaceNil)) { */ case 53: - _r$6 = under(x.typ); /* */ $s = 57; case 57: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - /* */ if ($interfaceIsEqual(_r$6, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { $s = 55; continue; } - /* */ $s = 56; continue; - /* if ($interfaceIsEqual(_r$6, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { */ case 55: - /* goto Error */ $s = 17; continue; - /* } */ case 56: - /* */ if (!(index$2 === sliceType$13.nil)) { $s = 58; continue; } - /* */ $s = 59; continue; - /* if (!(index$2 === sliceType$13.nil)) { */ case 58: - $r = check.errorf(e.Sel, 72, "ambiguous selector %s.%s", new sliceType$6([x.expr, new $String(sel)])); /* */ $s = 60; case 60: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 17; continue; - /* } */ case 59: - /* */ if (indirect) { $s = 61; continue; } - /* */ $s = 62; continue; - /* if (indirect) { */ case 61: - /* */ if (x.mode === 3) { $s = 63; continue; } - /* */ $s = 64; continue; - /* if (x.mode === 3) { */ case 63: - $r = check.errorf(e.Sel, 125, "invalid method expression %s.%s (needs pointer receiver (*%s).%s)", new sliceType$6([x.typ, new $String(sel), x.typ, new $String(sel)])); /* */ $s = 66; case 66: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 65; continue; - /* } else { */ case 64: - $r = check.errorf(e.Sel, 125, "cannot call pointer method %s on %s", new sliceType$6([new $String(sel), x.typ])); /* */ $s = 67; case 67: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 65: - /* goto Error */ $s = 17; continue; - /* } */ case 62: - why = ""; - _r$7 = isInterfacePtr(x.typ); /* */ $s = 71; case 71: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - /* */ if (_r$7) { $s = 68; continue; } - /* */ $s = 69; continue; - /* if (_r$7) { */ case 68: - _r$8 = check.interfacePtrError(x.typ); /* */ $s = 72; case 72: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - why = _r$8; - $s = 70; continue; - /* } else { */ case 69: - _r$9 = check.sprintf("type %s has no field or method %s", new sliceType$6([x.typ, new $String(sel)])); /* */ $s = 73; case 73: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - why = _r$9; - /* */ if (sel.length > 0) { $s = 74; continue; } - /* */ $s = 75; continue; - /* if (sel.length > 0) { */ case 74: - changeCase = ""; - r = ((sel.charCodeAt(0) >> 0)); - if (unicode.IsUpper(r)) { - changeCase = ($encodeRune(unicode.ToLower(r))) + $substring(sel, 1); - } else { - changeCase = ($encodeRune(unicode.ToUpper(r))) + $substring(sel, 1); + result = [result]; + re = this; + if (n < 0) { + n = b.$length + 1 >> 0; + } + result[0] = sliceType$9.nil; + $r = re.allMatches("", b, n, (function(result) { return function Regexp·FindAllIndex·func1(match) { + var match; + if (result[0] === sliceType$9.nil) { + result[0] = $makeSlice(sliceType$9, 0, 10); + } + result[0] = $append(result[0], $subslice(match, 0, 2)); + }; })(result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return result[0]; + /* */ } return; } var $f = {$blk: FindAllIndex, $c: true, $r, b, n, re, result, $s};return $f; + }; + $ptrType(Regexp).prototype.FindAllString = function FindAllString(s, n) { + var {n, re, result, s, $s, $r, $c} = $restore(this, {s, n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + result = [result]; + s = [s]; + re = this; + if (n < 0) { + n = s[0].length + 1 >> 0; + } + result[0] = sliceType$3.nil; + $r = re.allMatches(s[0], sliceType$4.nil, n, (function(result, s) { return function Regexp·FindAllString·func1(match) { + var match; + if (result[0] === sliceType$3.nil) { + result[0] = $makeSlice(sliceType$3, 0, 10); + } + result[0] = $append(result[0], $substring(s[0], (0 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 0]), (1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]))); + }; })(result, s)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return result[0]; + /* */ } return; } var $f = {$blk: FindAllString, $c: true, $r, n, re, result, s, $s};return $f; + }; + $ptrType(Regexp).prototype.FindAllStringIndex = function FindAllStringIndex(s, n) { + var {n, re, result, s, $s, $r, $c} = $restore(this, {s, n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + result = [result]; + re = this; + if (n < 0) { + n = s.length + 1 >> 0; + } + result[0] = sliceType$9.nil; + $r = re.allMatches(s, sliceType$4.nil, n, (function(result) { return function Regexp·FindAllStringIndex·func1(match) { + var match; + if (result[0] === sliceType$9.nil) { + result[0] = $makeSlice(sliceType$9, 0, 10); + } + result[0] = $append(result[0], $subslice(match, 0, 2)); + }; })(result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return result[0]; + /* */ } return; } var $f = {$blk: FindAllStringIndex, $c: true, $r, n, re, result, s, $s};return $f; + }; + $ptrType(Regexp).prototype.FindAllSubmatch = function FindAllSubmatch(b, n) { + var {b, n, re, result, $s, $r, $c} = $restore(this, {b, n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + b = [b]; + result = [result]; + re = this; + if (n < 0) { + n = b[0].$length + 1 >> 0; + } + result[0] = sliceType$10.nil; + $r = re.allMatches("", b[0], n, (function(b, result) { return function Regexp·FindAllSubmatch·func1(match) { + var _i, _q, _ref, j, match, slice, x, x$1, x$2, x$3; + if (result[0] === sliceType$10.nil) { + result[0] = $makeSlice(sliceType$10, 0, 10); + } + slice = $makeSlice(sliceType$8, (_q = match.$length / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))); + _ref = slice; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + j = _i; + if ((x = $imul(2, j), ((x < 0 || x >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x])) >= 0) { + ((j < 0 || j >= slice.$length) ? ($throwRuntimeError("index out of range"), undefined) : slice.$array[slice.$offset + j] = $subslice(b[0], (x$1 = $imul(2, j), ((x$1 < 0 || x$1 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$1])), (x$2 = ($imul(2, j)) + 1 >> 0, ((x$2 < 0 || x$2 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$2])), (x$3 = ($imul(2, j)) + 1 >> 0, ((x$3 < 0 || x$3 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$3])))); } - _r$10 = LookupFieldOrMethod(x.typ, x.mode === 5, check.pkg, changeCase); /* */ $s = 76; case 76: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _tuple$4 = _r$10; - obj = _tuple$4[0]; - if (!($interfaceIsEqual(obj, $ifaceNil))) { - why = why + (", but does have " + changeCase); + _i++; + } + result[0] = $append(result[0], slice); + }; })(b, result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return result[0]; + /* */ } return; } var $f = {$blk: FindAllSubmatch, $c: true, $r, b, n, re, result, $s};return $f; + }; + $ptrType(Regexp).prototype.FindAllSubmatchIndex = function FindAllSubmatchIndex(b, n) { + var {b, n, re, result, $s, $r, $c} = $restore(this, {b, n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + result = [result]; + re = this; + if (n < 0) { + n = b.$length + 1 >> 0; + } + result[0] = sliceType$9.nil; + $r = re.allMatches("", b, n, (function(result) { return function Regexp·FindAllSubmatchIndex·func1(match) { + var match; + if (result[0] === sliceType$9.nil) { + result[0] = $makeSlice(sliceType$9, 0, 10); + } + result[0] = $append(result[0], match); + }; })(result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return result[0]; + /* */ } return; } var $f = {$blk: FindAllSubmatchIndex, $c: true, $r, b, n, re, result, $s};return $f; + }; + $ptrType(Regexp).prototype.FindAllStringSubmatch = function FindAllStringSubmatch(s, n) { + var {n, re, result, s, $s, $r, $c} = $restore(this, {s, n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + result = [result]; + s = [s]; + re = this; + if (n < 0) { + n = s[0].length + 1 >> 0; + } + result[0] = sliceType$11.nil; + $r = re.allMatches(s[0], sliceType$4.nil, n, (function(result, s) { return function Regexp·FindAllStringSubmatch·func1(match) { + var _i, _q, _ref, j, match, slice, x, x$1, x$2; + if (result[0] === sliceType$11.nil) { + result[0] = $makeSlice(sliceType$11, 0, 10); + } + slice = $makeSlice(sliceType$3, (_q = match.$length / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))); + _ref = slice; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + j = _i; + if ((x = $imul(2, j), ((x < 0 || x >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x])) >= 0) { + ((j < 0 || j >= slice.$length) ? ($throwRuntimeError("index out of range"), undefined) : slice.$array[slice.$offset + j] = $substring(s[0], (x$1 = $imul(2, j), ((x$1 < 0 || x$1 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$1])), (x$2 = ($imul(2, j)) + 1 >> 0, ((x$2 < 0 || x$2 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$2])))); } - /* } */ case 75: - /* } */ case 70: - $r = check.errorf(e.Sel, 76, "%s.%s undefined (%s)", new sliceType$6([x.expr, new $String(sel), new $String(why)])); /* */ $s = 77; case 77: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 17; continue; - /* } */ case 54: - _tuple$5 = $assertType(obj, ptrType$2, true); - m = _tuple$5[0]; - /* */ if (!(m === ptrType$2.nil)) { $s = 78; continue; } - /* */ $s = 79; continue; - /* if (!(m === ptrType$2.nil)) { */ case 78: - $r = check.objDecl(m, ptrType$9.nil); /* */ $s = 80; case 80: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 79: - /* */ if (x.mode === 3) { $s = 81; continue; } - /* */ $s = 82; continue; - /* if (x.mode === 3) { */ case 81: - _tuple$6 = $assertType(obj, ptrType$2, true); - m$1 = _tuple$6[0]; - /* */ if (m$1 === ptrType$2.nil) { $s = 84; continue; } - /* */ $s = 85; continue; - /* if (m$1 === ptrType$2.nil) { */ case 84: - $r = check.errorf(e.Sel, 76, "%s.%s undefined (type %s has no method %s)", new sliceType$6([x.expr, new $String(sel), x.typ, new $String(sel)])); /* */ $s = 86; case 86: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 17; continue; - /* } */ case 85: - $r = check.recordSelection(e, 2, x.typ, m$1, index$2, indirect); /* */ $s = 87; case 87: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - sig$1 = $assertType(m$1.object.typ, ptrType$27); - /* */ if (sig$1.recv === ptrType$16.nil) { $s = 88; continue; } - /* */ $s = 89; continue; - /* if (sig$1.recv === ptrType$16.nil) { */ case 88: - $r = check.error(e, 11, "illegal cycle in method declaration"); /* */ $s = 90; case 90: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 17; continue; - /* } */ case 89: - params = sliceType$10.nil; - if (!(sig$1.params === ptrType$15.nil)) { - params = sig$1.params.vars; - } - name = ""; - if (params.$length > 0 && !((0 >= params.$length ? ($throwRuntimeError("index out of range"), undefined) : params.$array[params.$offset + 0]).object.name === "")) { - name = sig$1.recv.object.name; - if (name === "") { - name = "_"; + _i++; } - } - params = $appendSlice(new sliceType$10([NewVar(sig$1.recv.object.pos, sig$1.recv.object.pkg, name, x.typ)]), params); - x.mode = 7; - x.typ = new Signature.ptr(ptrType$48.nil, sig$1.tparams, ptrType.nil, ptrType$16.nil, NewTuple(params), sig$1.results, sig$1.variadic); - check.addDeclDep(m$1); - $s = 83; continue; - /* } else { */ case 82: - _ref$2 = obj; - /* */ if ($assertType(_ref$2, ptrType$16, true)[1]) { $s = 91; continue; } - /* */ if ($assertType(_ref$2, ptrType$2, true)[1]) { $s = 92; continue; } - /* */ $s = 93; continue; - /* if ($assertType(_ref$2, ptrType$16, true)[1]) { */ case 91: - obj$2 = _ref$2.$val; - $r = check.recordSelection(e, 0, x.typ, obj$2, index$2, indirect); /* */ $s = 95; case 95: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if ((x.mode === 5) || indirect) { - x.mode = 5; - } else { - x.mode = 7; + result[0] = $append(result[0], slice); + }; })(result, s)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return result[0]; + /* */ } return; } var $f = {$blk: FindAllStringSubmatch, $c: true, $r, n, re, result, s, $s};return $f; + }; + $ptrType(Regexp).prototype.FindAllStringSubmatchIndex = function FindAllStringSubmatchIndex(s, n) { + var {n, re, result, s, $s, $r, $c} = $restore(this, {s, n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + result = [result]; + re = this; + if (n < 0) { + n = s.length + 1 >> 0; + } + result[0] = sliceType$9.nil; + $r = re.allMatches(s, sliceType$4.nil, n, (function(result) { return function Regexp·FindAllStringSubmatchIndex·func1(match) { + var match; + if (result[0] === sliceType$9.nil) { + result[0] = $makeSlice(sliceType$9, 0, 10); } - x.typ = obj$2.object.typ; - $s = 94; continue; - /* } else if ($assertType(_ref$2, ptrType$2, true)[1]) { */ case 92: - obj$3 = _ref$2.$val; - $r = check.recordSelection(e, 1, x.typ, obj$3, index$2, indirect); /* */ $s = 96; case 96: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - disabled = true; - /* */ if (!disabled && false) { $s = 97; continue; } - /* */ $s = 98; continue; - /* if (!disabled && false) { */ case 97: - typ$4 = x.typ; - /* */ if (x.mode === 5) { $s = 99; continue; } - /* */ $s = 100; continue; - /* if (x.mode === 5) { */ case 99: - _tuple$7 = $assertType(typ$4, ptrType$26, true); - ok$1 = _tuple$7[1]; - if (!(!ok$1)) { _v = false; $s = 103; continue s; } - _r$11 = IsInterface(typ$4); /* */ $s = 104; case 104: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _v = !_r$11; case 103: - /* */ if (_v) { $s = 101; continue; } - /* */ $s = 102; continue; - /* if (_v) { */ case 101: - typ$4 = new Pointer.ptr(typ$4); - /* } */ case 102: - /* } */ case 100: - _r$12 = NewMethodSet(typ$4); /* */ $s = 105; case 105: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - mset = _r$12; - _r$13 = mset.Lookup(check.pkg, sel); /* */ $s = 106; case 106: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - m$2 = _r$13; - /* */ if (m$2 === ptrType$3.nil || !($interfaceIsEqual(m$2.obj, obj$3))) { $s = 107; continue; } - /* */ $s = 108; continue; - /* if (m$2 === ptrType$3.nil || !($interfaceIsEqual(m$2.obj, obj$3))) { */ case 107: - _r$14 = e.Pos(); /* */ $s = 109; case 109: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - _arg = new token.Pos(_r$14); - _arg$1 = typ$4; - _arg$2 = new $String(obj$3.object.name); - _arg$3 = m$2; - $r = check.dump("%v: (%s).%v -> %s", new sliceType$6([_arg, _arg$1, _arg$2, _arg$3])); /* */ $s = 110; case 110: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.dump("%s\n", new sliceType$6([mset])); /* */ $s = 111; case 111: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $panic(new $String("method sets and lookup don't agree")); - /* } */ case 108: - /* } */ case 98: - x.mode = 7; - sig[0] = $clone($assertType(obj$3.object.typ, ptrType$27), Signature); - sig[0].recv = ptrType$16.nil; - x.typ = sig[0]; - check.addDeclDep(obj$3); - $s = 94; continue; - /* } else { */ case 93: - obj$4 = _ref$2; - unreachable(); - /* } */ case 94: - /* } */ case 83: - x.expr = e; - $s = -1; return; - /* Error: */ case 17: - x.mode = 0; - x.expr = e; - $s = -1; return; - /* */ } return; } var $f = {$blk: selector, $c: true, $r, _1, _arg, _arg$1, _arg$2, _arg$3, _i, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _v, changeCase, check, def$2, disabled, e, exp, exp$1, exp$2, exp$3, exp$4, exp$5, exp$6, funcMode, ident$1, index$2, indirect, m, m$1, m$2, mset, name, obj, obj$1, obj$2, obj$3, obj$4, ok, ok$1, params, pkg, pname, prefix, r, sel, sig, sig$1, typ$4, wantType, why, x, x$1, $s};return $f; + result[0] = $append(result[0], match); + }; })(result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return result[0]; + /* */ } return; } var $f = {$blk: FindAllStringSubmatchIndex, $c: true, $r, n, re, result, s, $s};return $f; }; - $ptrType(Checker).prototype.use = function use(arg) { - var {_i, _r$1, _ref, arg, check, e, x, $s, $r, $c} = $restore(this, {arg}); + $ptrType(Regexp).prototype.Split = function Split(s, n) { + var {_i, _r, _ref, beg, end, match, matches, n, re, s, strings$1, $s, $r, $c} = $restore(this, {s, n}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = [x]; - check = this; - x[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - _ref = arg; + re = this; + if (n === 0) { + $s = -1; return sliceType$3.nil; + } + if (re.expr.length > 0 && (s.length === 0)) { + $s = -1; return new sliceType$3([""]); + } + _r = re.FindAllStringIndex(s, n); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + matches = _r; + strings$1 = $makeSlice(sliceType$3, 0, matches.$length); + beg = 0; + end = 0; + _ref = matches; _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - e = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - /* */ if (!($interfaceIsEqual(e, $ifaceNil))) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!($interfaceIsEqual(e, $ifaceNil))) { */ case 3: - _r$1 = check.rawExpr(x[0], e, $ifaceNil, false); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - /* } */ case 4: + while (true) { + if (!(_i < _ref.$length)) { break; } + match = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (n > 0 && strings$1.$length >= (n - 1 >> 0)) { + break; + } + end = (0 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 0]); + if (!(((1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]) === 0))) { + strings$1 = $append(strings$1, $substring(s, beg, end)); + } + beg = (1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]); _i++; - $s = 1; continue; - case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: use, $c: true, $r, _i, _r$1, _ref, arg, check, e, x, $s};return $f; + } + if (!((end === s.length))) { + strings$1 = $append(strings$1, $substring(s, beg)); + } + $s = -1; return strings$1; + /* */ } return; } var $f = {$blk: Split, $c: true, $r, _i, _r, _ref, beg, end, match, matches, n, re, s, strings$1, $s};return $f; }; - $ptrType(Checker).prototype.useLHS = function useLHS(arg) { - var {_i, _r$1, _r$2, _ref, _tuple, _tuple$1, _tuple$2, arg, check, e, ident$1, obj, v, v_used, w, x, $s, $r, $c} = $restore(this, {arg}); + $ptrType(Regexp).prototype.MarshalText = function MarshalText() { + var re; + re = this; + return [(new sliceType$4($stringToBytes(re.String()))), $ifaceNil]; + }; + $ptrType(Regexp).prototype.UnmarshalText = function UnmarshalText(text) { + var {_r, _tuple, err, newRE, re, text, $s, $r, $c} = $restore(this, {text}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = [x]; - check = this; - x[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - _ref = arg; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - e = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - v = ptrType$16.nil; - v_used = false; - _tuple = $assertType(unparen(e), ptrType$30, true); - ident$1 = _tuple[0]; - /* */ if (!(ident$1 === ptrType$30.nil)) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!(ident$1 === ptrType$30.nil)) { */ case 3: - if (ident$1.Name === "_") { - _i++; - /* continue; */ $s = 1; continue; + re = this; + _r = Compile(($bytesToString(text))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + newRE = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + Regexp.copy((re === ptrType.nil && $throwNilPointerError(), re), (newRE === ptrType.nil && $throwNilPointerError(), newRE)); + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: UnmarshalText, $c: true, $r, _r, _tuple, err, newRE, re, text, $s};return $f; + }; + onePassPrefix = function onePassPrefix$1(p) { + var _tmp, _tmp$1, _tmp$10, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, buf, complete, i, p, pc, prefix, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + prefix = ""; + complete = false; + pc = 0; + i = (x = p.Inst, x$1 = p.Start, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + x$1, ptrType$6))); + if (!((i.Op === 3)) || ((((((i.Arg << 24 >>> 24))) & 4) >>> 0) === 0)) { + _tmp = ""; + _tmp$1 = i.Op === 4; + _tmp$2 = ((p.Start >>> 0)); + prefix = _tmp; + complete = _tmp$1; + pc = _tmp$2; + return [prefix, complete, pc]; + } + pc = i.Out; + i = (x$2 = p.Inst, ((pc < 0 || pc >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$2.$array, x$2.$offset + pc, ptrType$6))); + while (true) { + if (!(i.Op === 6)) { break; } + pc = i.Out; + i = (x$3 = p.Inst, ((pc < 0 || pc >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$3.$array, x$3.$offset + pc, ptrType$6))); + } + if (!((iop(i) === 7)) || !((i.Rune.$length === 1))) { + _tmp$3 = ""; + _tmp$4 = i.Op === 4; + _tmp$5 = ((p.Start >>> 0)); + prefix = _tmp$3; + complete = _tmp$4; + pc = _tmp$5; + return [prefix, complete, pc]; + } + buf = new strings.Builder.ptr(ptrType$7.nil, sliceType$4.nil); + while (true) { + if (!((iop(i) === 7) && (i.Rune.$length === 1) && (((((i.Arg << 16 >>> 16)) & 1) >>> 0) === 0) && !(((x$4 = i.Rune, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])) === 65533)))) { break; } + buf.WriteRune((x$5 = i.Rune, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0]))); + _tmp$6 = i.Out; + _tmp$7 = (x$6 = p.Inst, x$7 = i.Out, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$6.$array, x$6.$offset + x$7, ptrType$6))); + pc = _tmp$6; + i = _tmp$7; + } + if ((i.Op === 3) && !((((((i.Arg << 24 >>> 24)) & 8) >>> 0) === 0)) && ((x$8 = p.Inst, x$9 = i.Out, ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + x$9])).Op === 4)) { + complete = true; + } + _tmp$8 = buf.String(); + _tmp$9 = complete; + _tmp$10 = pc; + prefix = _tmp$8; + complete = _tmp$9; + pc = _tmp$10; + return [prefix, complete, pc]; + }; + onePassNext = function onePassNext$1(i, r) { + var i, next, r, x; + next = i.Inst.MatchRunePos(r); + if (next >= 0) { + return (x = i.Next, ((next < 0 || next >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + next])); + } + if (i.Inst.Op === 1) { + return i.Inst.Out; + } + return 0; + }; + iop = function iop$1(i) { + var _1, i, op; + op = i.Op; + _1 = op; + if ((_1 === (8)) || (_1 === (9)) || (_1 === (10))) { + op = 7; + } + return op; + }; + $ptrType(queueOnePass).prototype.empty = function empty() { + var q; + q = this; + return q.nextIndex >= q.size; + }; + $ptrType(queueOnePass).prototype.next = function next() { + var n, q, x, x$1; + n = 0; + q = this; + n = (x = q.dense, x$1 = q.nextIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + q.nextIndex = q.nextIndex + (1) >>> 0; + return n; + }; + $ptrType(queueOnePass).prototype.clear = function clear() { + var q; + q = this; + q.size = 0; + q.nextIndex = 0; + }; + $ptrType(queueOnePass).prototype.contains = function contains(u) { + var q, u, x, x$1, x$2, x$3; + q = this; + if (u >= ((q.sparse.$length >>> 0))) { + return false; + } + return (x = q.sparse, ((u < 0 || u >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + u])) < q.size && ((x$1 = q.dense, x$2 = (x$3 = q.sparse, ((u < 0 || u >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + u])), ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])) === u); + }; + $ptrType(queueOnePass).prototype.insert = function insert(u) { + var q, u; + q = this; + if (!q.contains(u)) { + q.insertNew(u); + } + }; + $ptrType(queueOnePass).prototype.insertNew = function insertNew(u) { + var q, u, x, x$1, x$2; + q = this; + if (u >= ((q.sparse.$length >>> 0))) { + return; + } + (x = q.sparse, ((u < 0 || u >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + u] = q.size)); + (x$1 = q.dense, x$2 = q.size, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2] = u)); + q.size = q.size + (1) >>> 0; + }; + newQueue = function newQueue$1(size) { + var q, size; + q = ptrType$8.nil; + q = new queueOnePass.ptr($makeSlice(sliceType$2, size), $makeSlice(sliceType$2, size), 0, 0); + return q; + }; + mergeRuneSets = function mergeRuneSets$1(leftRunes, rightRunes, leftPC, rightPC) { + var {_r, _r$1, _r$2, _r$3, _tmp, _tmp$1, extend, ix, leftLen, leftPC, leftRunes, lx, merged, next$1, ok, rightLen, rightPC, rightRunes, rx, x, x$1, $s, $deferred, $r, $c} = $restore(this, {leftRunes, rightRunes, leftPC, rightPC}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + ix = [ix]; + lx = [lx]; + merged = [merged]; + next$1 = [next$1]; + ok = [ok]; + rx = [rx]; + leftLen = leftRunes.$get().$length; + rightLen = rightRunes.$get().$length; + if (!(((leftLen & 1) === 0)) || !(((rightLen & 1) === 0))) { + $panic(new $String("mergeRuneSets odd length []rune")); + } + _tmp = 0; + _tmp$1 = 0; + lx[0] = _tmp; + rx[0] = _tmp$1; + merged[0] = $makeSlice(sliceType$1, 0); + next$1[0] = $makeSlice(sliceType$2, 0); + ok[0] = true; + $deferred.push([(function(ix, lx, merged, next$1, ok, rx) { return function mergeRuneSets·func1() { + if (!ok[0]) { + merged[0] = sliceType$1.nil; + next$1[0] = sliceType$2.nil; } - _r$1 = check.environment.scope.LookupParent(ident$1.Name, 0); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$1 = _r$1; - obj = _tuple$1[1]; - if (!($interfaceIsEqual(obj, $ifaceNil))) { - _tuple$2 = $assertType(obj, ptrType$16, true); - w = _tuple$2[0]; - if (!(w === ptrType$16.nil) && w.object.pkg === check.pkg) { - v = w; - v_used = v.used; - } + }; })(ix, lx, merged, next$1, ok, rx), []]); + ix[0] = -1; + extend = (function(ix, lx, merged, next$1, ok, rx) { return function mergeRuneSets·func2(newLow, newArray, pc) { + var newArray, newLow, pc, x, x$1, x$2, x$3, x$4, x$5; + if (ix[0] > 0 && (x = newArray.$get(), x$1 = newLow.$get(), ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])) <= ((ix[0] < 0 || ix[0] >= merged[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : merged[0].$array[merged[0].$offset + ix[0]])) { + return false; } - /* } */ case 4: - _r$2 = check.rawExpr(x[0], e, $ifaceNil, false); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - if (!(v === ptrType$16.nil)) { - v.used = v_used; + merged[0] = $append(merged[0], (x$2 = newArray.$get(), x$3 = newLow.$get(), ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])), (x$4 = newArray.$get(), x$5 = newLow.$get() + 1 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5]))); + newLow.$set(newLow.$get() + (2) >> 0); + ix[0] = ix[0] + (2) >> 0; + next$1[0] = $append(next$1[0], pc); + return true; + }; })(ix, lx, merged, next$1, ok, rx); + /* while (true) { */ case 1: + /* if (!(lx[0] < leftLen || rx[0] < rightLen)) { break; } */ if(!(lx[0] < leftLen || rx[0] < rightLen)) { $s = 2; continue; } + /* */ if (rx[0] >= rightLen) { $s = 4; continue; } + /* */ if (lx[0] >= leftLen) { $s = 5; continue; } + /* */ if ((x = rightRunes.$get(), ((rx[0] < 0 || rx[0] >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + rx[0]])) < (x$1 = leftRunes.$get(), ((lx[0] < 0 || lx[0] >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + lx[0]]))) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (rx[0] >= rightLen) { */ case 4: + _r = extend((lx.$ptr || (lx.$ptr = new ptrType$9(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, lx))), leftRunes, leftPC); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + ok[0] = _r; + $s = 8; continue; + /* } else if (lx[0] >= leftLen) { */ case 5: + _r$1 = extend((rx.$ptr || (rx.$ptr = new ptrType$9(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, rx))), rightRunes, rightPC); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + ok[0] = _r$1; + $s = 8; continue; + /* } else if ((x = rightRunes.$get(), ((rx[0] < 0 || rx[0] >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + rx[0]])) < (x$1 = leftRunes.$get(), ((lx[0] < 0 || lx[0] >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + lx[0]]))) { */ case 6: + _r$2 = extend((rx.$ptr || (rx.$ptr = new ptrType$9(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, rx))), rightRunes, rightPC); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + ok[0] = _r$2; + $s = 8; continue; + /* } else { */ case 7: + _r$3 = extend((lx.$ptr || (lx.$ptr = new ptrType$9(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, lx))), leftRunes, leftPC); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + ok[0] = _r$3; + /* } */ case 8: + case 3: + if (!ok[0]) { + $s = -1; return [noRune, noNext]; } - _i++; $s = 1; continue; case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: useLHS, $c: true, $r, _i, _r$1, _r$2, _ref, _tuple, _tuple$1, _tuple$2, arg, check, e, ident$1, obj, v, v_used, w, x, $s};return $f; + $s = -1; return [merged[0], next$1[0]]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [sliceType$1.nil, sliceType$2.nil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: mergeRuneSets$1, $c: true, $r, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, extend, ix, leftLen, leftPC, leftRunes, lx, merged, next$1, ok, rightLen, rightPC, rightRunes, rx, x, x$1, $s, $deferred};return $f; } } }; - $ptrType(Checker).prototype.builtin = function builtin(x, call, id) { - var {S, T, T$1, T$2, _, _1, _2, _3, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$16, _arg$17, _arg$18, _arg$19, _arg$2, _arg$20, _arg$21, _arg$22, _arg$23, _arg$24, _arg$25, _arg$26, _arg$27, _arg$28, _arg$29, _arg$3, _arg$30, _arg$31, _arg$32, _arg$33, _arg$34, _arg$35, _arg$36, _arg$37, _arg$38, _arg$39, _arg$4, _arg$40, _arg$41, _arg$42, _arg$43, _arg$44, _arg$45, _arg$46, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _i, _i$1, _i$2, _key, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _r$5, _r$50, _r$51, _r$52, _r$53, _r$54, _r$55, _r$56, _r$57, _r$58, _r$59, _r$6, _r$60, _r$61, _r$62, _r$63, _r$64, _r$65, _r$66, _r$67, _r$68, _r$69, _r$7, _r$70, _r$71, _r$72, _r$73, _r$74, _r$75, _r$76, _r$77, _r$78, _r$79, _r$8, _r$80, _r$81, _r$82, _r$83, _r$84, _r$85, _r$86, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, _v$2, _v$3, alist, arg, arg$1, arg$2, arg0, arg0$1, base, bin, call, cause, check, code, code$1, d, dst, f, f$1, i, i$1, i$2, id, index$2, indirect, key, map_, min, mode, mode$1, msg$1, nargs, obj, ok, p, params, ptr, resTyp, resTyp$1, s, sel, selx, sig, sig$1, size, sizes, slice, src, src0, t, t$1, t$2, t$3, t$4, t$5, t$6, toFloat, typ$4, types$1, u, val, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, x1, xlist, xlist$1, y, y$1, y$2, y$3, y$4, $s, $deferred, $r, $c} = $restore(this, {x, call, id}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - check = [check]; - id = [id]; - key = [key]; - t = [t]; - x = [x]; - xlist = [xlist]; - y = [y]; - y$1 = [y$1]; - y$2 = [y$2]; - y$3 = [y$3]; - y$4 = [y$4]; - _ = false; - check[0] = this; - bin = $clone(((id[0] < 0 || id[0] >= predeclaredFuncs.length) ? ($throwRuntimeError("index out of range"), undefined) : predeclaredFuncs[id[0]]), structType); - /* */ if (new token.Pos(call.Ellipsis).IsValid() && !((id[0] === 0))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (new token.Pos(call.Ellipsis).IsValid() && !((id[0] === 0))) { */ case 1: - $r = check[0].errorf(new atPos(((call.Ellipsis >> 0))), 81, "invalid operation: invalid use of ... with built-in %s", new sliceType$6([new $String(bin.name)])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].use(call.Args); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 2: - /* */ if ((id[0] === 8) || (id[0] === 1)) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if ((id[0] === 8) || (id[0] === 1)) { */ case 5: - $deferred.push([(function(check, id, key, t, x, xlist, y, y$1, y$2, y$3, y$4) { return function Checker·builtin·func1(b) { - var b; - check[0].environment.hasCallOrRecv = b; - }; })(check, id, key, t, x, xlist, y, y$1, y$2, y$3, y$4), [check[0].environment.hasCallOrRecv]]); - check[0].environment.hasCallOrRecv = false; - /* } */ case 6: - arg = $throwNilPointerError; - nargs = call.Args.$length; - _1 = id[0]; - /* */ if ((_1 === (9)) || (_1 === (10)) || (_1 === (18)) || (_1 === (25))) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if ((_1 === (9)) || (_1 === (10)) || (_1 === (18)) || (_1 === (25))) { */ case 8: - $s = 10; continue; - /* } else { */ case 9: - _r$1 = check[0].exprList(call.Args, false); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - xlist[0] = _tuple[0]; - arg = (function(check, id, key, t, x, xlist, y, y$1, y$2, y$3, y$4) { return function Checker·builtin·func2(x$1, i) { - var i, x$1; - operand.copy(x$1, ((i < 0 || i >= xlist[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : xlist[0].$array[xlist[0].$offset + i])); - }; })(check, id, key, t, x, xlist, y, y$1, y$2, y$3, y$4); - nargs = xlist[0].$length; - /* */ if (nargs > 0) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (nargs > 0) { */ case 12: - $r = arg(x[0], 0); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x[0].mode === 0) { - $s = -1; return _; - } - /* } */ case 13: - /* } */ case 10: - case 7: - msg$1 = ""; - if (nargs < bin.nargs) { - msg$1 = "not enough"; - } else if (!bin.variadic && nargs > bin.nargs) { - msg$1 = "too many"; + cleanupOnePass = function cleanupOnePass$1(prog, original) { + var _1, _i, _ref, instOriginal, ix, original, prog, x, x$1, x$2; + _ref = original.Inst; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + ix = _i; + instOriginal = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), syntax.Inst); + _1 = instOriginal.Op; + if ((_1 === (0)) || (_1 === (1)) || (_1 === (7))) { + } else if ((_1 === (2)) || (_1 === (3)) || (_1 === (6)) || (_1 === (4)) || (_1 === (5))) { + (x = prog.Inst, ((ix < 0 || ix >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + ix])).Next = sliceType$2.nil; + } else if ((_1 === (8)) || (_1 === (9)) || (_1 === (10))) { + (x$1 = prog.Inst, ((ix < 0 || ix >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + ix])).Next = sliceType$2.nil; + onePassInst.copy((x$2 = prog.Inst, ((ix < 0 || ix >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + ix])), new onePassInst.ptr($clone(instOriginal, syntax.Inst), sliceType$2.nil)); + } + _i++; } - /* */ if (!(msg$1 === "")) { $s = 15; continue; } - /* */ $s = 16; continue; - /* if (!(msg$1 === "")) { */ case 15: - _r$2 = inNode(call, call.Rparen); /* */ $s = 17; case 17: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $r = check[0].errorf((x$1 = _r$2, new x$1.constructor.elem(x$1)), 126, "invalid operation: %s arguments for %s (expected %d, found %d)", new sliceType$6([new $String(msg$1), call, new $Int(bin.nargs), new $Int(nargs)])); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 16: - _2 = id[0]; - /* */ if (_2 === (0)) { $s = 20; continue; } - /* */ if ((_2 === (1)) || (_2 === (8))) { $s = 21; continue; } - /* */ if (_2 === (2)) { $s = 22; continue; } - /* */ if (_2 === (3)) { $s = 23; continue; } - /* */ if (_2 === (4)) { $s = 24; continue; } - /* */ if (_2 === (5)) { $s = 25; continue; } - /* */ if (_2 === (6)) { $s = 26; continue; } - /* */ if ((_2 === (7)) || (_2 === (14))) { $s = 27; continue; } - /* */ if (_2 === (9)) { $s = 28; continue; } - /* */ if (_2 === (10)) { $s = 29; continue; } - /* */ if (_2 === (11)) { $s = 30; continue; } - /* */ if ((_2 === (12)) || (_2 === (13))) { $s = 31; continue; } - /* */ if (_2 === (15)) { $s = 32; continue; } - /* */ if (_2 === (16)) { $s = 33; continue; } - /* */ if (_2 === (17)) { $s = 34; continue; } - /* */ if (_2 === (18)) { $s = 35; continue; } - /* */ if (_2 === (19)) { $s = 36; continue; } - /* */ if (_2 === (20)) { $s = 37; continue; } - /* */ if (_2 === (21)) { $s = 38; continue; } - /* */ if (_2 === (22)) { $s = 39; continue; } - /* */ if (_2 === (23)) { $s = 40; continue; } - /* */ if (_2 === (24)) { $s = 41; continue; } - /* */ if (_2 === (25)) { $s = 42; continue; } - /* */ $s = 43; continue; - /* if (_2 === (0)) { */ case 20: - S = x[0].typ; - T = $ifaceNil; - _r$3 = coreType(S); /* */ $s = 45; case 45: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple$1 = $assertType(_r$3, ptrType$25, true); - s = _tuple$1[0]; - /* */ if (!(s === ptrType$25.nil)) { $s = 46; continue; } - /* */ $s = 47; continue; - /* if (!(s === ptrType$25.nil)) { */ case 46: - T = s.elem; - $s = 48; continue; - /* } else { */ case 47: - cause = ""; - /* */ if (x[0].isNil()) { $s = 50; continue; } - /* */ if (isTypeParam(S)) { $s = 51; continue; } - /* */ $s = 52; continue; - /* if (x[0].isNil()) { */ case 50: - cause = "have untyped nil"; - $s = 53; continue; - /* } else if (isTypeParam(S)) { */ case 51: - _r$4 = coreType(S); /* */ $s = 54; case 54: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - u = _r$4; - /* */ if (!($interfaceIsEqual(u, $ifaceNil))) { $s = 55; continue; } - /* */ $s = 56; continue; - /* if (!($interfaceIsEqual(u, $ifaceNil))) { */ case 55: - _r$5 = check[0].sprintf("%s has core type %s", new sliceType$6([x[0], u])); /* */ $s = 58; case 58: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - cause = _r$5; - $s = 57; continue; - /* } else { */ case 56: - _r$6 = check[0].sprintf("%s has no core type", new sliceType$6([x[0]])); /* */ $s = 59; case 59: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - cause = _r$6; - /* } */ case 57: - $s = 53; continue; - /* } else { */ case 52: - _r$7 = check[0].sprintf("have %s", new sliceType$6([x[0]])); /* */ $s = 60; case 60: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - cause = _r$7; - /* } */ case 53: - case 49: - $r = check[0].errorf(x[0], 83, "first argument to append must be a slice; %s", new sliceType$6([new $String(cause)])); /* */ $s = 61; case 61: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 48: - alist = new sliceType$41([$clone(x[0], operand)]); - /* */ if ((nargs === 2) && new token.Pos(call.Ellipsis).IsValid()) { $s = 62; continue; } - /* */ $s = 63; continue; - /* if ((nargs === 2) && new token.Pos(call.Ellipsis).IsValid()) { */ case 62: - _r$8 = x[0].assignableTo(check[0], NewSlice(universeByte), ptrType$34.nil); /* */ $s = 64; case 64: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _tuple$2 = _r$8; - ok = _tuple$2[0]; - /* */ if (ok) { $s = 65; continue; } - /* */ $s = 66; continue; - /* if (ok) { */ case 65: - $r = arg(x[0], 1); /* */ $s = 67; case 67: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x[0].mode === 0) { - $s = -1; return _; - } - _r$9 = coreString(x[0].typ); /* */ $s = 68; case 68: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - t$1 = _r$9; - if (!(!($interfaceIsEqual(t$1, $ifaceNil)))) { _v = false; $s = 71; continue s; } - _r$10 = isString(t$1); /* */ $s = 72; case 72: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _v = _r$10; case 71: - /* */ if (_v) { $s = 69; continue; } - /* */ $s = 70; continue; - /* if (_v) { */ case 69: - /* */ if (!(check[0].Info.Types === false)) { $s = 73; continue; } - /* */ $s = 74; continue; - /* if (!(check[0].Info.Types === false)) { */ case 73: - _r$11 = makeSig(S, new sliceType$2([S, x[0].typ])); /* */ $s = 75; case 75: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - sig = _r$11; - sig.variadic = true; - $r = check[0].recordBuiltinType(call.Fun, sig); /* */ $s = 76; case 76: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 74: - x[0].mode = 7; - x[0].typ = S; - /* break; */ $s = 19; continue; - /* } */ case 70: - alist = $append(alist, x[0]); - /* } */ case 66: - /* } */ case 63: - _r$12 = makeSig(S, new sliceType$2([S, NewSlice(T)])); /* */ $s = 77; case 77: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - sig$1 = _r$12; - sig$1.variadic = true; - xlist$1 = sliceType$29.nil; - _ref = alist; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - xlist$1 = $append(xlist$1, ((i < 0 || i >= alist.$length) ? ($throwRuntimeError("index out of range"), undefined) : alist.$array[alist.$offset + i])); - _i++; - } - i$1 = alist.$length; - /* while (true) { */ case 78: - /* if (!(i$1 < nargs)) { break; } */ if(!(i$1 < nargs)) { $s = 79; continue; } - x$2 = [x$2]; - x$2[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = arg(x$2[0], i$1); /* */ $s = 80; case 80: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - xlist$1 = $append(xlist$1, x$2[0]); - i$1 = i$1 + (1) >> 0; - $s = 78; continue; - case 79: - _r$13 = check[0].arguments$(call, sig$1, sliceType$2.nil, xlist$1, sliceType$11.nil); /* */ $s = 81; case 81: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - _r$13; - x[0].mode = 7; - x[0].typ = S; - /* */ if (!(check[0].Info.Types === false)) { $s = 82; continue; } - /* */ $s = 83; continue; - /* if (!(check[0].Info.Types === false)) { */ case 82: - $r = check[0].recordBuiltinType(call.Fun, sig$1); /* */ $s = 84; case 84: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 83: - $s = 44; continue; - /* } else if ((_2 === (1)) || (_2 === (8))) { */ case 21: - mode = 0; - val = $ifaceNil; - _r$14 = under(x[0].typ); /* */ $s = 85; case 85: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - _r$15 = arrayPtrDeref(_r$14); /* */ $s = 86; case 86: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - _ref$1 = _r$15; - /* */ if ($assertType(_ref$1, ptrType$8, true)[1]) { $s = 87; continue; } - /* */ if ($assertType(_ref$1, ptrType$10, true)[1]) { $s = 88; continue; } - /* */ if ($assertType(_ref$1, ptrType$25, true)[1] || $assertType(_ref$1, ptrType$29, true)[1]) { $s = 89; continue; } - /* */ if ($assertType(_ref$1, ptrType$28, true)[1]) { $s = 90; continue; } - /* */ if ($assertType(_ref$1, ptrType$13, true)[1]) { $s = 91; continue; } - /* */ $s = 92; continue; - /* switch (0) { default: if ($assertType(_ref$1, ptrType$8, true)[1]) { */ case 87: - t$2 = _ref$1.$val; - _r$16 = isString(t$2); /* */ $s = 95; case 95: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - /* */ if (_r$16 && (id[0] === 8)) { $s = 93; continue; } - /* */ $s = 94; continue; - /* if (_r$16 && (id[0] === 8)) { */ case 93: - /* */ if (x[0].mode === 4) { $s = 96; continue; } - /* */ $s = 97; continue; - /* if (x[0].mode === 4) { */ case 96: - mode = 4; - _r$17 = constant.StringVal(x[0].val); /* */ $s = 99; case 99: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - _r$18 = constant.MakeInt64((new $Int64(0, _r$17.length))); /* */ $s = 100; case 100: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - val = _r$18; - $s = 98; continue; - /* } else { */ case 97: - mode = 7; - /* } */ case 98: - /* } */ case 94: - $s = 92; continue; - /* } else if ($assertType(_ref$1, ptrType$10, true)[1]) { */ case 88: - t$3 = _ref$1.$val; - mode = 7; - if (!check[0].environment.hasCallOrRecv) { - mode = 4; - if ((x$3 = t$3.len, (x$3.$high > 0 || (x$3.$high === 0 && x$3.$low >= 0)))) { - val = constant.MakeInt64(t$3.len); - } else { - val = constant.MakeUnknown(); - } - } - $s = 92; continue; - /* } else if ($assertType(_ref$1, ptrType$25, true)[1] || $assertType(_ref$1, ptrType$29, true)[1]) { */ case 89: - t$4 = _ref$1; - mode = 7; - $s = 92; continue; - /* } else if ($assertType(_ref$1, ptrType$28, true)[1]) { */ case 90: - t$5 = _ref$1.$val; - if (id[0] === 8) { - mode = 7; - } - $s = 92; continue; - /* } else if ($assertType(_ref$1, ptrType$13, true)[1]) { */ case 91: - t$6 = _ref$1.$val; - if (!isTypeParam(x[0].typ)) { - /* break; */ $s = 92; continue; - } - _r$19 = t$6.typeSet(); /* */ $s = 103; case 103: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - _r$20 = _r$19.underIs((function(check, id, key, t, x, xlist, y, y$1, y$2, y$3, y$4) { return function Checker·builtin·func3(t$7) { - var {_r$20, _r$21, _ref$2, t$10, t$7, t$8, t$9, $s, $r, $c} = $restore(this, {t$7}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$20 = arrayPtrDeref(t$7); /* */ $s = 1; case 1: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - _ref$2 = _r$20; - /* */ if ($assertType(_ref$2, ptrType$8, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref$2, ptrType$10, true)[1] || $assertType(_ref$2, ptrType$25, true)[1] || $assertType(_ref$2, ptrType$29, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref$2, ptrType$28, true)[1]) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if ($assertType(_ref$2, ptrType$8, true)[1]) { */ case 2: - t$8 = _ref$2.$val; - _r$21 = isString(t$8); /* */ $s = 8; case 8: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } - /* */ if (_r$21 && (id[0] === 8)) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (_r$21 && (id[0] === 8)) { */ case 6: - $s = -1; return true; - /* } */ case 7: - $s = 5; continue; - /* } else if ($assertType(_ref$2, ptrType$10, true)[1] || $assertType(_ref$2, ptrType$25, true)[1] || $assertType(_ref$2, ptrType$29, true)[1]) { */ case 3: - t$9 = _ref$2; - $s = -1; return true; - /* } else if ($assertType(_ref$2, ptrType$28, true)[1]) { */ case 4: - t$10 = _ref$2.$val; - if (id[0] === 8) { - $s = -1; return true; - } - /* } */ case 5: - $s = -1; return false; - /* */ } return; } var $f = {$blk: Checker·builtin·func3, $c: true, $r, _r$20, _r$21, _ref$2, t$10, t$7, t$8, t$9, $s};return $f; - }; })(check, id, key, t, x, xlist, y, y$1, y$2, y$3, y$4)); /* */ $s = 104; case 104: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - /* */ if (_r$20) { $s = 101; continue; } - /* */ $s = 102; continue; - /* if (_r$20) { */ case 101: - mode = 7; - /* } */ case 102: - /* } } */ case 92: - if (!(mode === 0)) { _v$1 = false; $s = 107; continue s; } - _r$21 = under(x[0].typ); /* */ $s = 108; case 108: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } - _v$1 = !($interfaceIsEqual(_r$21, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))); case 107: - /* */ if (_v$1) { $s = 105; continue; } - /* */ $s = 106; continue; - /* if (_v$1) { */ case 105: - code = 84; - if (id[0] === 8) { - code = 90; + }; + onePassCopy = function onePassCopy$1(prog) { + var _1, _i, _i$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, i, inst, instAlt, instOther, p, p_A_Alt, p_A_Other, p_B_Alt, p_B_Other, patch, pc, prog, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + p = new onePassProg.ptr($makeSlice(sliceType$12, prog.Inst.$length), prog.Start, prog.NumCap); + _ref = prog.Inst; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + inst = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), syntax.Inst); + onePassInst.copy((x = p.Inst, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])), new onePassInst.ptr($clone(inst, syntax.Inst), sliceType$2.nil)); + _i++; + } + _ref$1 = p.Inst; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + pc = _i$1; + _1 = (x$1 = p.Inst, ((pc < 0 || pc >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + pc])).Inst.Op; + if ((_1 === (0)) || (_1 === (1))) { + p_A_Other = (x$2 = (x$3 = p.Inst, ((pc < 0 || pc >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + pc])), (x$2.$ptr_Out || (x$2.$ptr_Out = new ptrType$10(function() { return this.$target.Inst.Out; }, function($v) { this.$target.Inst.Out = $v; }, x$2)))); + p_A_Alt = (x$4 = (x$5 = p.Inst, ((pc < 0 || pc >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + pc])), (x$4.$ptr_Arg || (x$4.$ptr_Arg = new ptrType$10(function() { return this.$target.Inst.Arg; }, function($v) { this.$target.Inst.Arg = $v; }, x$4)))); + instAlt = $clone((x$6 = p.Inst, x$7 = p_A_Alt.$get(), ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])), onePassInst); + if (!((instAlt.Inst.Op === 0) || (instAlt.Inst.Op === 1))) { + _tmp = p_A_Other; + _tmp$1 = p_A_Alt; + p_A_Alt = _tmp; + p_A_Other = _tmp$1; + onePassInst.copy(instAlt, (x$8 = p.Inst, x$9 = p_A_Alt.$get(), ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + x$9]))); + if (!((instAlt.Inst.Op === 0) || (instAlt.Inst.Op === 1))) { + _i$1++; + continue; } - $r = check[0].errorf(x[0], code, "invalid argument: %s for %s", new sliceType$6([x[0], new $String(bin.name)])); /* */ $s = 109; case 109: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 106: - /* */ if (!(check[0].Info.Types === false) && !((mode === 4))) { $s = 110; continue; } - /* */ $s = 111; continue; - /* if (!(check[0].Info.Types === false) && !((mode === 4))) { */ case 110: - _arg = call.Fun; - _r$22 = makeSig((2 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 2]), new sliceType$2([x[0].typ])); /* */ $s = 112; case 112: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _arg$1 = _r$22; - $r = check[0].recordBuiltinType(_arg, _arg$1); /* */ $s = 113; case 113: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 111: - x[0].mode = mode; - x[0].typ = (2 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 2]); - x[0].val = val; - $s = 44; continue; - /* } else if (_2 === (2)) { */ case 22: - /* */ if (!check[0].allowVersion(check[0].pkg, 1, 21)) { $s = 114; continue; } - /* */ $s = 115; continue; - /* if (!check[0].allowVersion(check[0].pkg, 1, 21)) { */ case 114: - $r = check[0].error(call.Fun, 135, "clear requires go1.21 or later"); /* */ $s = 116; case 116: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 115: - _r$23 = underIs(x[0].typ, (function(check, id, key, t, x, xlist, y, y$1, y$2, y$3, y$4) { return function Checker·builtin·func4(u$1) { - var {_r$23, _ref$2, _tuple$3, ok$1, u$1, u$2, u$3, $s, $r, $c} = $restore(this, {u$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ref$2 = u$1; - /* */ if ($assertType(_ref$2, ptrType$28, true)[1] || $assertType(_ref$2, ptrType$25, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref$2, ptrType$26, true)[1]) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if ($assertType(_ref$2, ptrType$28, true)[1] || $assertType(_ref$2, ptrType$25, true)[1]) { */ case 1: - u$2 = _ref$2; - $s = -1; return true; - /* } else if ($assertType(_ref$2, ptrType$26, true)[1]) { */ case 2: - u$3 = _ref$2.$val; - _r$23 = under(u$3.base); /* */ $s = 4; case 4: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _tuple$3 = $assertType(_r$23, ptrType$10, true); - ok$1 = _tuple$3[1]; - if (ok$1) { - $s = -1; return true; - } - /* } */ case 3: - $r = check[0].errorf(x[0], 148, "invalid argument: cannot clear %s: argument must be (or constrained by) map, slice, or array pointer", new sliceType$6([x[0]])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return false; - /* */ } return; } var $f = {$blk: Checker·builtin·func4, $c: true, $r, _r$23, _ref$2, _tuple$3, ok$1, u$1, u$2, u$3, $s};return $f; - }; })(check, id, key, t, x, xlist, y, y$1, y$2, y$3, y$4)); /* */ $s = 119; case 119: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - /* */ if (!_r$23) { $s = 117; continue; } - /* */ $s = 118; continue; - /* if (!_r$23) { */ case 117: - $s = -1; return _; - /* } */ case 118: - x[0].mode = 1; - /* */ if (!(check[0].Info.Types === false)) { $s = 120; continue; } - /* */ $s = 121; continue; - /* if (!(check[0].Info.Types === false)) { */ case 120: - _arg$2 = call.Fun; - _r$24 = makeSig($ifaceNil, new sliceType$2([x[0].typ])); /* */ $s = 122; case 122: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - _arg$3 = _r$24; - $r = check[0].recordBuiltinType(_arg$2, _arg$3); /* */ $s = 123; case 123: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 121: - $s = 44; continue; - /* } else if (_2 === (3)) { */ case 23: - _r$25 = underIs(x[0].typ, (function(check, id, key, t, x, xlist, y, y$1, y$2, y$3, y$4) { return function Checker·builtin·func5(u$1) { - var {_tuple$3, u$1, uch, $s, $r, $c} = $restore(this, {u$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _tuple$3 = $assertType(u$1, ptrType$29, true); - uch = _tuple$3[0]; - /* */ if (uch === ptrType$29.nil) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (uch === ptrType$29.nil) { */ case 1: - $r = check[0].errorf(x[0], 85, "invalid operation: cannot close non-channel %s", new sliceType$6([x[0]])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return false; - /* } */ case 2: - /* */ if (uch.dir === 2) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (uch.dir === 2) { */ case 4: - $r = check[0].errorf(x[0], 85, "invalid operation: cannot close receive-only channel %s", new sliceType$6([x[0]])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return false; - /* } */ case 5: - $s = -1; return true; - /* */ } return; } var $f = {$blk: Checker·builtin·func5, $c: true, $r, _tuple$3, u$1, uch, $s};return $f; - }; })(check, id, key, t, x, xlist, y, y$1, y$2, y$3, y$4)); /* */ $s = 126; case 126: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - /* */ if (!_r$25) { $s = 124; continue; } - /* */ $s = 125; continue; - /* if (!_r$25) { */ case 124: - $s = -1; return _; - /* } */ case 125: - x[0].mode = 1; - /* */ if (!(check[0].Info.Types === false)) { $s = 127; continue; } - /* */ $s = 128; continue; - /* if (!(check[0].Info.Types === false)) { */ case 127: - _arg$4 = call.Fun; - _r$26 = makeSig($ifaceNil, new sliceType$2([x[0].typ])); /* */ $s = 129; case 129: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - _arg$5 = _r$26; - $r = check[0].recordBuiltinType(_arg$4, _arg$5); /* */ $s = 130; case 130: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 128: - $s = 44; continue; - /* } else if (_2 === (4)) { */ case 24: - y[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = arg(y[0], 1); /* */ $s = 131; case 131: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (y[0].mode === 0) { - $s = -1; return _; - } - d = 0; - if (isUntyped(x[0].typ)) { - d = d | (1); } - if (isUntyped(y[0].typ)) { - d = d | (2); + instOther = $clone((x$10 = p.Inst, x$11 = p_A_Other.$get(), ((x$11 < 0 || x$11 >= x$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + x$11])), onePassInst); + if ((instOther.Inst.Op === 0) || (instOther.Inst.Op === 1)) { + _i$1++; + continue; } - _3 = d; - /* */ if (_3 === (0)) { $s = 133; continue; } - /* */ if (_3 === (1)) { $s = 134; continue; } - /* */ if (_3 === (2)) { $s = 135; continue; } - /* */ if (_3 === (3)) { $s = 136; continue; } - /* */ $s = 137; continue; - /* if (_3 === (0)) { */ case 133: - $s = 137; continue; - /* } else if (_3 === (1)) { */ case 134: - $r = check[0].convertUntyped(x[0], y[0].typ); /* */ $s = 138; case 138: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 137; continue; - /* } else if (_3 === (2)) { */ case 135: - $r = check[0].convertUntyped(y[0], x[0].typ); /* */ $s = 139; case 139: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 137; continue; - /* } else if (_3 === (3)) { */ case 136: - /* */ if ((x[0].mode === 4) && (y[0].mode === 4)) { $s = 140; continue; } - /* */ $s = 141; continue; - /* if ((x[0].mode === 4) && (y[0].mode === 4)) { */ case 140: - toFloat = (function(check, id, key, t, x, xlist, y, y$1, y$2, y$3, y$4) { return function Checker·builtin·func6(x$4) { - var {_r$27, _r$28, _r$29, _v$2, x$4, $s, $r, $c} = $restore(this, {x$4}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$27 = isNumeric(x$4.typ); /* */ $s = 4; case 4: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - if (!(_r$27)) { _v$2 = false; $s = 3; continue s; } - _r$28 = constant.Imag(x$4.val); /* */ $s = 5; case 5: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - _r$29 = constant.Sign(_r$28); /* */ $s = 6; case 6: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } - _v$2 = _r$29 === 0; case 3: - /* */ if (_v$2) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (_v$2) { */ case 1: - x$4.typ = (22 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 22]); - /* } */ case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·builtin·func6, $c: true, $r, _r$27, _r$28, _r$29, _v$2, x$4, $s};return $f; - }; })(check, id, key, t, x, xlist, y, y$1, y$2, y$3, y$4); - $r = toFloat(x[0]); /* */ $s = 143; case 143: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = toFloat(y[0]); /* */ $s = 144; case 144: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 142; continue; - /* } else { */ case 141: - $r = check[0].convertUntyped(x[0], (14 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 14])); /* */ $s = 145; case 145: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].convertUntyped(y[0], (14 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 14])); /* */ $s = 146; case 146: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 142: - /* } */ case 137: - case 132: - if ((x[0].mode === 0) || (y[0].mode === 0)) { - $s = -1; return _; + p_B_Alt = (x$12 = (x$13 = p.Inst, x$14 = p_A_Alt.$get(), ((x$14 < 0 || x$14 >= x$13.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + x$14])), (x$12.$ptr_Out || (x$12.$ptr_Out = new ptrType$10(function() { return this.$target.Inst.Out; }, function($v) { this.$target.Inst.Out = $v; }, x$12)))); + p_B_Other = (x$15 = (x$16 = p.Inst, x$17 = p_A_Alt.$get(), ((x$17 < 0 || x$17 >= x$16.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$16.$array[x$16.$offset + x$17])), (x$15.$ptr_Arg || (x$15.$ptr_Arg = new ptrType$10(function() { return this.$target.Inst.Arg; }, function($v) { this.$target.Inst.Arg = $v; }, x$15)))); + patch = false; + if (instAlt.Inst.Out === ((pc >>> 0))) { + patch = true; + } else if (instAlt.Inst.Arg === ((pc >>> 0))) { + patch = true; + _tmp$2 = p_B_Other; + _tmp$3 = p_B_Alt; + p_B_Alt = _tmp$2; + p_B_Other = _tmp$3; } - _r$27 = Identical(x[0].typ, y[0].typ); /* */ $s = 149; case 149: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - /* */ if (!_r$27) { $s = 147; continue; } - /* */ $s = 148; continue; - /* if (!_r$27) { */ case 147: - $r = check[0].errorf(x[0], 87, "invalid argument: mismatched types %s and %s", new sliceType$6([x[0].typ, y[0].typ])); /* */ $s = 150; case 150: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 148: - f = (function(check, id, key, t, x, xlist, y, y$1, y$2, y$3, y$4) { return function Checker·builtin·func7(typ$4) { - var {_4, _r$28, _tuple$3, t$7, typ$4, $s, $r, $c} = $restore(this, {typ$4}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = assert(!isTypeParam(typ$4)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$28 = under(typ$4); /* */ $s = 2; case 2: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - _tuple$3 = $assertType(_r$28, ptrType$8, true); - t$7 = _tuple$3[0]; - if (!(t$7 === ptrType$8.nil)) { - _4 = t$7.kind; - if (_4 === (13)) { - $s = -1; return (15 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 15]); - } else if (_4 === (14)) { - $s = -1; return (16 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 16]); - } else if (_4 === (22)) { - $s = -1; return (23 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 23]); - } - } - $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: Checker·builtin·func7, $c: true, $r, _4, _r$28, _tuple$3, t$7, typ$4, $s};return $f; - }; })(check, id, key, t, x, xlist, y, y$1, y$2, y$3, y$4); - _r$28 = check[0].applyTypeFunc(f, x[0], id[0]); /* */ $s = 151; case 151: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - resTyp = _r$28; - /* */ if ($interfaceIsEqual(resTyp, $ifaceNil)) { $s = 152; continue; } - /* */ $s = 153; continue; - /* if ($interfaceIsEqual(resTyp, $ifaceNil)) { */ case 152: - $r = check[0].errorf(x[0], 87, "invalid argument: arguments have type %s, expected floating-point", new sliceType$6([x[0].typ])); /* */ $s = 154; case 154: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 153: - /* */ if ((x[0].mode === 4) && (y[0].mode === 4)) { $s = 155; continue; } - /* */ $s = 156; continue; - /* if ((x[0].mode === 4) && (y[0].mode === 4)) { */ case 155: - _r$29 = constant.ToFloat(x[0].val); /* */ $s = 158; case 158: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } - _arg$6 = _r$29; - _r$30 = constant.ToFloat(y[0].val); /* */ $s = 159; case 159: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } - _r$31 = constant.MakeImag(_r$30); /* */ $s = 160; case 160: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } - _arg$7 = _r$31; - _r$32 = constant.BinaryOp(_arg$6, 12, _arg$7); /* */ $s = 161; case 161: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } - x[0].val = _r$32; - $s = 157; continue; - /* } else { */ case 156: - x[0].mode = 7; - /* } */ case 157: - /* */ if (!(check[0].Info.Types === false) && !((x[0].mode === 4))) { $s = 162; continue; } - /* */ $s = 163; continue; - /* if (!(check[0].Info.Types === false) && !((x[0].mode === 4))) { */ case 162: - _arg$8 = call.Fun; - _r$33 = makeSig(resTyp, new sliceType$2([x[0].typ, x[0].typ])); /* */ $s = 164; case 164: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } - _arg$9 = _r$33; - $r = check[0].recordBuiltinType(_arg$8, _arg$9); /* */ $s = 165; case 165: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 163: - x[0].typ = resTyp; - $s = 44; continue; - /* } else if (_2 === (5)) { */ case 25: - _r$34 = coreType(x[0].typ); /* */ $s = 166; case 166: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } - _tuple$3 = $assertType(_r$34, ptrType$25, true); - dst = _tuple$3[0]; - y$1[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = arg(y$1[0], 1); /* */ $s = 167; case 167: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (y$1[0].mode === 0) { - $s = -1; return _; + if (patch) { + p_B_Alt.$set(p_A_Other.$get()); } - _r$35 = coreString(y$1[0].typ); /* */ $s = 168; case 168: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } - src0 = _r$35; - if (!(!($interfaceIsEqual(src0, $ifaceNil)))) { _v$2 = false; $s = 171; continue s; } - _r$36 = isString(src0); /* */ $s = 172; case 172: if($c) { $c = false; _r$36 = _r$36.$blk(); } if (_r$36 && _r$36.$blk !== undefined) { break s; } - _v$2 = _r$36; case 171: - /* */ if (_v$2) { $s = 169; continue; } - /* */ $s = 170; continue; - /* if (_v$2) { */ case 169: - src0 = NewSlice(universeByte); - /* } */ case 170: - _tuple$4 = $assertType(src0, ptrType$25, true); - src = _tuple$4[0]; - /* */ if (dst === ptrType$25.nil || src === ptrType$25.nil) { $s = 173; continue; } - /* */ $s = 174; continue; - /* if (dst === ptrType$25.nil || src === ptrType$25.nil) { */ case 173: - $r = check[0].errorf(x[0], 86, "invalid argument: copy expects slice arguments; found %s and %s", new sliceType$6([x[0], y$1[0]])); /* */ $s = 175; case 175: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 174: - _r$37 = Identical(dst.elem, src.elem); /* */ $s = 178; case 178: if($c) { $c = false; _r$37 = _r$37.$blk(); } if (_r$37 && _r$37.$blk !== undefined) { break s; } - /* */ if (!_r$37) { $s = 176; continue; } - /* */ $s = 177; continue; - /* if (!_r$37) { */ case 176: - $r = check[0].errorf(x[0], 86, "arguments to copy %s and %s have different element types %s and %s", new sliceType$6([x[0], y$1[0], dst.elem, src.elem])); /* */ $s = 179; case 179: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 177: - /* */ if (!(check[0].Info.Types === false)) { $s = 180; continue; } - /* */ $s = 181; continue; - /* if (!(check[0].Info.Types === false)) { */ case 180: - _arg$10 = call.Fun; - _r$38 = makeSig((2 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 2]), new sliceType$2([x[0].typ, y$1[0].typ])); /* */ $s = 182; case 182: if($c) { $c = false; _r$38 = _r$38.$blk(); } if (_r$38 && _r$38.$blk !== undefined) { break s; } - _arg$11 = _r$38; - $r = check[0].recordBuiltinType(_arg$10, _arg$11); /* */ $s = 183; case 183: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 181: - x[0].mode = 7; - x[0].typ = (2 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 2]); - $s = 44; continue; - /* } else if (_2 === (6)) { */ case 26: - map_ = x[0].typ; - key[0] = $ifaceNil; - _r$39 = underIs(map_, (function(check, id, key, t, x, xlist, y, y$1, y$2, y$3, y$4) { return function Checker·builtin·func8(u$1) { - var {_r$39, _tuple$5, _v$3, map_$1, u$1, $s, $r, $c} = $restore(this, {u$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _tuple$5 = $assertType(u$1, ptrType$28, true); - map_$1 = _tuple$5[0]; - /* */ if (map_$1 === ptrType$28.nil) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (map_$1 === ptrType$28.nil) { */ case 1: - $r = check[0].errorf(x[0], 88, "invalid argument: %s is not a map", new sliceType$6([x[0]])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return false; - /* } */ case 2: - if (!(!($interfaceIsEqual(key[0], $ifaceNil)))) { _v$3 = false; $s = 6; continue s; } - _r$39 = Identical(map_$1.key, key[0]); /* */ $s = 7; case 7: if($c) { $c = false; _r$39 = _r$39.$blk(); } if (_r$39 && _r$39.$blk !== undefined) { break s; } - _v$3 = !_r$39; case 6: - /* */ if (_v$3) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_v$3) { */ case 4: - $r = check[0].errorf(x[0], 88, "invalid argument: maps of %s must have identical key types", new sliceType$6([x[0]])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return false; - /* } */ case 5: - key[0] = map_$1.key; - $s = -1; return true; - /* */ } return; } var $f = {$blk: Checker·builtin·func8, $c: true, $r, _r$39, _tuple$5, _v$3, map_$1, u$1, $s};return $f; - }; })(check, id, key, t, x, xlist, y, y$1, y$2, y$3, y$4)); /* */ $s = 186; case 186: if($c) { $c = false; _r$39 = _r$39.$blk(); } if (_r$39 && _r$39.$blk !== undefined) { break s; } - /* */ if (!_r$39) { $s = 184; continue; } - /* */ $s = 185; continue; - /* if (!_r$39) { */ case 184: - $s = -1; return _; - /* } */ case 185: - $r = arg(x[0], 1); /* */ $s = 187; case 187: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x[0].mode === 0) { - $s = -1; return _; + if (p_A_Other.$get() === p_B_Alt.$get()) { + p_A_Alt.$set(p_B_Other.$get()); } - $r = check[0].assignment(x[0], key[0], "argument to delete"); /* */ $s = 188; case 188: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x[0].mode === 0) { - $s = -1; return _; + } else { + _i$1++; + continue; + } + _i$1++; + } + return p; + }; + runeSlice.prototype.Len = function Len() { + var p; + p = this; + return p.$length; + }; + $ptrType(runeSlice).prototype.Len = function(...$args) { return this.$get().Len(...$args); }; + runeSlice.prototype.Less = function Less(i, j) { + var i, j, p; + p = this; + return ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]) < ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]); + }; + $ptrType(runeSlice).prototype.Less = function(...$args) { return this.$get().Less(...$args); }; + runeSlice.prototype.Swap = function Swap(i, j) { + var _tmp, _tmp$1, i, j, p; + p = this; + _tmp = ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]); + _tmp$1 = ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]); + ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i] = _tmp); + ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j] = _tmp$1); + }; + $ptrType(runeSlice).prototype.Swap = function(...$args) { return this.$get().Swap(...$args); }; + makeOnePass = function makeOnePass$1(p) { + var {_i, _r, _ref, check, i, instQueue, m, onePassRunes, p, pc, visitQueue, x, $s, $r, $c} = $restore(this, {p}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + check = [check]; + instQueue = [instQueue]; + onePassRunes = [onePassRunes]; + p = [p]; + visitQueue = [visitQueue]; + if (p[0].Inst.$length >= 1000) { + $s = -1; return ptrType$2.nil; + } + instQueue[0] = newQueue(p[0].Inst.$length); + visitQueue[0] = newQueue(p[0].Inst.$length); + check[0] = $throwNilPointerError; + onePassRunes[0] = $makeSlice(sliceType$13, p[0].Inst.$length); + check[0] = (function(check, instQueue, onePassRunes, p, visitQueue) { return function makeOnePass·func1(pc, m) { + var {_1, _i, _i$1, _i$2, _i$3, _i$4, _q, _q$1, _q$2, _q$3, _q$4, _r, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _v, i, i$1, i$2, i$3, i$4, inst, m, matchArg, matchOut, ok, pc, r0, r0$1, r1, r1$1, runes, runes$1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {pc, m}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + ok = false; + ok = true; + inst = (x = p[0].Inst, ((pc < 0 || pc >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + pc, ptrType$11))); + if (visitQueue[0].contains(pc)) { + $s = -1; return ok; } - x[0].mode = 1; - /* */ if (!(check[0].Info.Types === false)) { $s = 189; continue; } - /* */ $s = 190; continue; - /* if (!(check[0].Info.Types === false)) { */ case 189: - _arg$12 = call.Fun; - _r$40 = makeSig($ifaceNil, new sliceType$2([map_, key[0]])); /* */ $s = 191; case 191: if($c) { $c = false; _r$40 = _r$40.$blk(); } if (_r$40 && _r$40.$blk !== undefined) { break s; } - _arg$13 = _r$40; - $r = check[0].recordBuiltinType(_arg$12, _arg$13); /* */ $s = 192; case 192: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 190: - $s = 44; continue; - /* } else if ((_2 === (7)) || (_2 === (14))) { */ case 27: - /* */ if (isUntyped(x[0].typ)) { $s = 193; continue; } - /* */ $s = 194; continue; - /* if (isUntyped(x[0].typ)) { */ case 193: - /* */ if (x[0].mode === 4) { $s = 195; continue; } - /* */ $s = 196; continue; - /* if (x[0].mode === 4) { */ case 195: - _r$41 = isNumeric(x[0].typ); /* */ $s = 200; case 200: if($c) { $c = false; _r$41 = _r$41.$blk(); } if (_r$41 && _r$41.$blk !== undefined) { break s; } - /* */ if (_r$41) { $s = 198; continue; } - /* */ $s = 199; continue; - /* if (_r$41) { */ case 198: - x[0].typ = (23 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 23]); - /* } */ case 199: - $s = 197; continue; - /* } else { */ case 196: - $r = check[0].convertUntyped(x[0], (16 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 16])); /* */ $s = 201; case 201: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x[0].mode === 0) { - $s = -1; return _; + visitQueue[0].insert(pc); + _1 = inst.Inst.Op; + /* */ if ((_1 === (0)) || (_1 === (1))) { $s = 2; continue; } + /* */ if ((_1 === (2)) || (_1 === (6))) { $s = 3; continue; } + /* */ if (_1 === (3)) { $s = 4; continue; } + /* */ if ((_1 === (4)) || (_1 === (5))) { $s = 5; continue; } + /* */ if (_1 === (7)) { $s = 6; continue; } + /* */ if (_1 === (8)) { $s = 7; continue; } + /* */ if (_1 === (9)) { $s = 8; continue; } + /* */ if (_1 === (10)) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if ((_1 === (0)) || (_1 === (1))) { */ case 2: + _r = check[0](inst.Inst.Out, m); /* */ $s = 12; case 12: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + if (!(_r)) { _v = false; $s = 11; continue s; } + _r$1 = check[0](inst.Inst.Arg, m); /* */ $s = 13; case 13: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = _r$1; case 11: + ok = _v; + matchOut = (x$1 = inst.Inst.Out, ((x$1 < 0 || x$1 >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + x$1])); + matchArg = (x$2 = inst.Inst.Arg, ((x$2 < 0 || x$2 >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + x$2])); + if (matchOut && matchArg) { + ok = false; + /* break; */ $s = 1; continue; + } + if (matchArg) { + _tmp = inst.Inst.Arg; + _tmp$1 = inst.Inst.Out; + inst.Inst.Out = _tmp; + inst.Inst.Arg = _tmp$1; + _tmp$2 = matchArg; + _tmp$3 = matchOut; + matchOut = _tmp$2; + matchArg = _tmp$3; + } + if (matchOut) { + ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = true); + inst.Inst.Op = 1; + } + _r$2 = mergeRuneSets((x$3 = inst.Inst.Out, ((x$3 < 0 || x$3 >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(onePassRunes[0].$array, onePassRunes[0].$offset + x$3, ptrType$12))), (x$4 = inst.Inst.Arg, ((x$4 < 0 || x$4 >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(onePassRunes[0].$array, onePassRunes[0].$offset + x$4, ptrType$12))), inst.Inst.Out, inst.Inst.Arg); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = _r$2; + ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = _tuple[0]); + inst.Next = _tuple[1]; + if (inst.Next.$length > 0 && ((x$5 = inst.Next, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0])) === 4294967295)) { + ok = false; + /* break; */ $s = 1; continue; + } + $s = 10; continue; + /* } else if ((_1 === (2)) || (_1 === (6))) { */ case 3: + _r$3 = check[0](inst.Inst.Out, m); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + ok = _r$3; + ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = (x$6 = inst.Inst.Out, ((x$6 < 0 || x$6 >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + x$6]))); + ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = $appendSlice(new sliceType$1([]), (x$7 = inst.Inst.Out, ((x$7 < 0 || x$7 >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + x$7])))); + inst.Next = $makeSlice(sliceType$2, ((_q = ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc]).$length / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0)); + _ref = inst.Next; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + (x$8 = inst.Next, ((i < 0 || i >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + i] = inst.Inst.Out)); + _i++; + } + $s = 10; continue; + /* } else if (_1 === (3)) { */ case 4: + _r$4 = check[0](inst.Inst.Out, m); /* */ $s = 16; case 16: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + ok = _r$4; + ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = (x$9 = inst.Inst.Out, ((x$9 < 0 || x$9 >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + x$9]))); + ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = $appendSlice(new sliceType$1([]), (x$10 = inst.Inst.Out, ((x$10 < 0 || x$10 >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + x$10])))); + inst.Next = $makeSlice(sliceType$2, ((_q$1 = ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc]).$length / 2, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0)); + _ref$1 = inst.Next; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i$1 = _i$1; + (x$11 = inst.Next, ((i$1 < 0 || i$1 >= x$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + i$1] = inst.Inst.Out)); + _i$1++; + } + $s = 10; continue; + /* } else if ((_1 === (4)) || (_1 === (5))) { */ case 5: + ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = (inst.Inst.Op === 4)); + $s = 10; continue; + /* } else if (_1 === (7)) { */ case 6: + ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = false); + if (inst.Next.$length > 0) { + /* break; */ $s = 1; continue; + } + instQueue[0].insert(inst.Inst.Out); + if (inst.Inst.Rune.$length === 0) { + ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = new sliceType$1([])); + inst.Next = new sliceType$2([inst.Inst.Out]); + /* break; */ $s = 1; continue; + } + runes = $makeSlice(sliceType$1, 0); + /* */ if ((inst.Inst.Rune.$length === 1) && !((((((inst.Inst.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if ((inst.Inst.Rune.$length === 1) && !((((((inst.Inst.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { */ case 17: + r0 = (x$12 = inst.Inst.Rune, (0 >= x$12.$length ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + 0])); + runes = $append(runes, r0, r0); + r1 = unicode.SimpleFold(r0); + while (true) { + if (!(!((r1 === r0)))) { break; } + runes = $append(runes, r1, r1); + r1 = unicode.SimpleFold(r1); + } + $r = sort.Sort(($convertSliceType(runes, runeSlice))); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 19; continue; + /* } else { */ case 18: + runes = $appendSlice(runes, inst.Inst.Rune); + /* } */ case 19: + ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = runes); + inst.Next = $makeSlice(sliceType$2, ((_q$2 = ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc]).$length / 2, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0)); + _ref$2 = inst.Next; + _i$2 = 0; + while (true) { + if (!(_i$2 < _ref$2.$length)) { break; } + i$2 = _i$2; + (x$13 = inst.Next, ((i$2 < 0 || i$2 >= x$13.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + i$2] = inst.Inst.Out)); + _i$2++; + } + inst.Inst.Op = 7; + $s = 10; continue; + /* } else if (_1 === (8)) { */ case 7: + ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = false); + if (inst.Next.$length > 0) { + /* break; */ $s = 1; continue; + } + instQueue[0].insert(inst.Inst.Out); + runes$1 = new sliceType$1([]); + /* */ if (!((((((inst.Inst.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (!((((((inst.Inst.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { */ case 21: + r0$1 = (x$14 = inst.Inst.Rune, (0 >= x$14.$length ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + 0])); + runes$1 = $append(runes$1, r0$1, r0$1); + r1$1 = unicode.SimpleFold(r0$1); + while (true) { + if (!(!((r1$1 === r0$1)))) { break; } + runes$1 = $append(runes$1, r1$1, r1$1); + r1$1 = unicode.SimpleFold(r1$1); + } + $r = sort.Sort(($convertSliceType(runes$1, runeSlice))); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 23; continue; + /* } else { */ case 22: + runes$1 = $append(runes$1, (x$15 = inst.Inst.Rune, (0 >= x$15.$length ? ($throwRuntimeError("index out of range"), undefined) : x$15.$array[x$15.$offset + 0])), (x$16 = inst.Inst.Rune, (0 >= x$16.$length ? ($throwRuntimeError("index out of range"), undefined) : x$16.$array[x$16.$offset + 0]))); + /* } */ case 23: + ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = runes$1); + inst.Next = $makeSlice(sliceType$2, ((_q$3 = ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc]).$length / 2, (_q$3 === _q$3 && _q$3 !== 1/0 && _q$3 !== -1/0) ? _q$3 >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0)); + _ref$3 = inst.Next; + _i$3 = 0; + while (true) { + if (!(_i$3 < _ref$3.$length)) { break; } + i$3 = _i$3; + (x$17 = inst.Next, ((i$3 < 0 || i$3 >= x$17.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$17.$array[x$17.$offset + i$3] = inst.Inst.Out)); + _i$3++; } - /* } */ case 197: - /* } */ case 194: - f$1 = (function(check, id, key, t, x, xlist, y, y$1, y$2, y$3, y$4) { return function Checker·builtin·func9(typ$4) { - var {_5, _r$42, _tuple$5, t$7, typ$4, $s, $r, $c} = $restore(this, {typ$4}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = assert(!isTypeParam(typ$4)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$42 = under(typ$4); /* */ $s = 2; case 2: if($c) { $c = false; _r$42 = _r$42.$blk(); } if (_r$42 && _r$42.$blk !== undefined) { break s; } - _tuple$5 = $assertType(_r$42, ptrType$8, true); - t$7 = _tuple$5[0]; - if (!(t$7 === ptrType$8.nil)) { - _5 = t$7.kind; - if (_5 === (15)) { - $s = -1; return (13 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 13]); - } else if (_5 === (16)) { - $s = -1; return (14 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 14]); - } else if (_5 === (23)) { - $s = -1; return (22 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 22]); - } + inst.Inst.Op = 7; + $s = 10; continue; + /* } else if (_1 === (9)) { */ case 8: + ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = false); + if (inst.Next.$length > 0) { + /* break; */ $s = 1; continue; } - $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: Checker·builtin·func9, $c: true, $r, _5, _r$42, _tuple$5, t$7, typ$4, $s};return $f; - }; })(check, id, key, t, x, xlist, y, y$1, y$2, y$3, y$4); - _r$42 = check[0].applyTypeFunc(f$1, x[0], id[0]); /* */ $s = 202; case 202: if($c) { $c = false; _r$42 = _r$42.$blk(); } if (_r$42 && _r$42.$blk !== undefined) { break s; } - resTyp$1 = _r$42; - /* */ if ($interfaceIsEqual(resTyp$1, $ifaceNil)) { $s = 203; continue; } - /* */ $s = 204; continue; - /* if ($interfaceIsEqual(resTyp$1, $ifaceNil)) { */ case 203: - code$1 = 89; - if (id[0] === 14) { - code$1 = 93; - } - $r = check[0].errorf(x[0], code$1, "invalid argument: argument has type %s, expected complex type", new sliceType$6([x[0].typ])); /* */ $s = 205; case 205: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 204: - /* */ if (x[0].mode === 4) { $s = 206; continue; } - /* */ $s = 207; continue; - /* if (x[0].mode === 4) { */ case 206: - /* */ if (id[0] === 14) { $s = 209; continue; } - /* */ $s = 210; continue; - /* if (id[0] === 14) { */ case 209: - _r$43 = constant.Real(x[0].val); /* */ $s = 212; case 212: if($c) { $c = false; _r$43 = _r$43.$blk(); } if (_r$43 && _r$43.$blk !== undefined) { break s; } - x[0].val = _r$43; - $s = 211; continue; - /* } else { */ case 210: - _r$44 = constant.Imag(x[0].val); /* */ $s = 213; case 213: if($c) { $c = false; _r$44 = _r$44.$blk(); } if (_r$44 && _r$44.$blk !== undefined) { break s; } - x[0].val = _r$44; - /* } */ case 211: - $s = 208; continue; - /* } else { */ case 207: - x[0].mode = 7; - /* } */ case 208: - /* */ if (!(check[0].Info.Types === false) && !((x[0].mode === 4))) { $s = 214; continue; } - /* */ $s = 215; continue; - /* if (!(check[0].Info.Types === false) && !((x[0].mode === 4))) { */ case 214: - _arg$14 = call.Fun; - _r$45 = makeSig(resTyp$1, new sliceType$2([x[0].typ])); /* */ $s = 216; case 216: if($c) { $c = false; _r$45 = _r$45.$blk(); } if (_r$45 && _r$45.$blk !== undefined) { break s; } - _arg$15 = _r$45; - $r = check[0].recordBuiltinType(_arg$14, _arg$15); /* */ $s = 217; case 217: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 215: - x[0].typ = resTyp$1; - $s = 44; continue; - /* } else if (_2 === (9)) { */ case 28: - arg0 = (x$4 = call.Args, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])); - _r$46 = check[0].varType(arg0); /* */ $s = 218; case 218: if($c) { $c = false; _r$46 = _r$46.$blk(); } if (_r$46 && _r$46.$blk !== undefined) { break s; } - T$1 = _r$46; - if ($interfaceIsEqual(T$1, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { - $s = -1; return _; - } - min = 0; - _r$47 = coreType(T$1); /* */ $s = 219; case 219: if($c) { $c = false; _r$47 = _r$47.$blk(); } if (_r$47 && _r$47.$blk !== undefined) { break s; } - _ref$2 = _r$47; - /* */ if ($assertType(_ref$2, ptrType$25, true)[1]) { $s = 220; continue; } - /* */ if ($assertType(_ref$2, ptrType$28, true)[1] || $assertType(_ref$2, ptrType$29, true)[1]) { $s = 221; continue; } - /* */ if (_ref$2 === $ifaceNil) { $s = 222; continue; } - /* */ $s = 223; continue; - /* if ($assertType(_ref$2, ptrType$25, true)[1]) { */ case 220: - min = 2; - $s = 224; continue; - /* } else if ($assertType(_ref$2, ptrType$28, true)[1] || $assertType(_ref$2, ptrType$29, true)[1]) { */ case 221: - min = 1; - $s = 224; continue; - /* } else if (_ref$2 === $ifaceNil) { */ case 222: - $r = check[0].errorf(arg0, 92, "cannot make %s: no core type", new sliceType$6([arg0])); /* */ $s = 225; case 225: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } else { */ case 223: - $r = check[0].errorf(arg0, 92, "invalid argument: cannot make %s; type must be slice, map, or channel", new sliceType$6([arg0])); /* */ $s = 226; case 226: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 224: - /* */ if (nargs < min || (min + 1 >> 0) < nargs) { $s = 227; continue; } - /* */ $s = 228; continue; - /* if (nargs < min || (min + 1 >> 0) < nargs) { */ case 227: - $r = check[0].errorf(call, 126, "invalid operation: %v expects %d or %d arguments; found %d", new sliceType$6([call, new $Int(min), new $Int((min + 1 >> 0)), new $Int(nargs)])); /* */ $s = 229; case 229: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 228: - types$1 = new sliceType$2([T$1]); - sizes = sliceType$19.nil; - _ref$3 = $subslice(call.Args, 1); - _i$1 = 0; - /* while (true) { */ case 230: - /* if (!(_i$1 < _ref$3.$length)) { break; } */ if(!(_i$1 < _ref$3.$length)) { $s = 231; continue; } - arg$1 = ((_i$1 < 0 || _i$1 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$1]); - _r$48 = check[0].index(arg$1, new $Int64(-1, 4294967295)); /* */ $s = 232; case 232: if($c) { $c = false; _r$48 = _r$48.$blk(); } if (_r$48 && _r$48.$blk !== undefined) { break s; } - _tuple$5 = _r$48; - typ$4 = _tuple$5[0]; - size = _tuple$5[1]; - types$1 = $append(types$1, typ$4); - if ((size.$high > 0 || (size.$high === 0 && size.$low >= 0))) { - sizes = $append(sizes, size); - } - _i$1++; - $s = 230; continue; - case 231: - /* */ if ((sizes.$length === 2) && (x$5 = (0 >= sizes.$length ? ($throwRuntimeError("index out of range"), undefined) : sizes.$array[sizes.$offset + 0]), x$6 = (1 >= sizes.$length ? ($throwRuntimeError("index out of range"), undefined) : sizes.$array[sizes.$offset + 1]), (x$5.$high > x$6.$high || (x$5.$high === x$6.$high && x$5.$low > x$6.$low)))) { $s = 233; continue; } - /* */ $s = 234; continue; - /* if ((sizes.$length === 2) && (x$5 = (0 >= sizes.$length ? ($throwRuntimeError("index out of range"), undefined) : sizes.$array[sizes.$offset + 0]), x$6 = (1 >= sizes.$length ? ($throwRuntimeError("index out of range"), undefined) : sizes.$array[sizes.$offset + 1]), (x$5.$high > x$6.$high || (x$5.$high === x$6.$high && x$5.$low > x$6.$low)))) { */ case 233: - $r = check[0].error((x$7 = call.Args, (1 >= x$7.$length ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + 1])), 91, "invalid argument: length and capacity swapped"); /* */ $s = 235; case 235: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 234: - x[0].mode = 7; - x[0].typ = T$1; - /* */ if (!(check[0].Info.Types === false)) { $s = 236; continue; } - /* */ $s = 237; continue; - /* if (!(check[0].Info.Types === false)) { */ case 236: - _arg$16 = call.Fun; - _r$49 = makeSig(x[0].typ, types$1); /* */ $s = 238; case 238: if($c) { $c = false; _r$49 = _r$49.$blk(); } if (_r$49 && _r$49.$blk !== undefined) { break s; } - _arg$17 = _r$49; - $r = check[0].recordBuiltinType(_arg$16, _arg$17); /* */ $s = 239; case 239: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 237: - $s = 44; continue; - /* } else if (_2 === (10)) { */ case 29: - _r$50 = check[0].varType((x$8 = call.Args, (0 >= x$8.$length ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + 0]))); /* */ $s = 240; case 240: if($c) { $c = false; _r$50 = _r$50.$blk(); } if (_r$50 && _r$50.$blk !== undefined) { break s; } - T$2 = _r$50; - if ($interfaceIsEqual(T$2, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { - $s = -1; return _; - } - x[0].mode = 7; - x[0].typ = new Pointer.ptr(T$2); - /* */ if (!(check[0].Info.Types === false)) { $s = 241; continue; } - /* */ $s = 242; continue; - /* if (!(check[0].Info.Types === false)) { */ case 241: - _arg$18 = call.Fun; - _r$51 = makeSig(x[0].typ, new sliceType$2([T$2])); /* */ $s = 243; case 243: if($c) { $c = false; _r$51 = _r$51.$blk(); } if (_r$51 && _r$51.$blk !== undefined) { break s; } - _arg$19 = _r$51; - $r = check[0].recordBuiltinType(_arg$18, _arg$19); /* */ $s = 244; case 244: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 242: - $s = 44; continue; - /* } else if (_2 === (11)) { */ case 30: - if (!(check[0].environment.sig === ptrType$27.nil) && check[0].environment.sig.results.Len() > 0) { - p = check[0].environment.isPanic; - if (p === false) { - p = new $global.Map(); - check[0].environment.isPanic = p; - } - _key = call; (p || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$86.keyFor(_key), { k: _key, v: true }); - } - $r = check[0].assignment(x[0], emptyInterface, "argument to panic"); /* */ $s = 245; case 245: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x[0].mode === 0) { - $s = -1; return _; - } - x[0].mode = 1; - /* */ if (!(check[0].Info.Types === false)) { $s = 246; continue; } - /* */ $s = 247; continue; - /* if (!(check[0].Info.Types === false)) { */ case 246: - _arg$20 = call.Fun; - _r$52 = makeSig($ifaceNil, new sliceType$2([emptyInterface])); /* */ $s = 248; case 248: if($c) { $c = false; _r$52 = _r$52.$blk(); } if (_r$52 && _r$52.$blk !== undefined) { break s; } - _arg$21 = _r$52; - $r = check[0].recordBuiltinType(_arg$20, _arg$21); /* */ $s = 249; case 249: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 247: - $s = 44; continue; - /* } else if ((_2 === (12)) || (_2 === (13))) { */ case 31: - params = sliceType$2.nil; - /* */ if (nargs > 0) { $s = 250; continue; } - /* */ $s = 251; continue; - /* if (nargs > 0) { */ case 250: - params = $makeSlice(sliceType$2, nargs); - i$2 = 0; - /* while (true) { */ case 252: - /* if (!(i$2 < nargs)) { break; } */ if(!(i$2 < nargs)) { $s = 253; continue; } - /* */ if (i$2 > 0) { $s = 254; continue; } - /* */ $s = 255; continue; - /* if (i$2 > 0) { */ case 254: - $r = arg(x[0], i$2); /* */ $s = 256; case 256: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 255: - $r = check[0].assignment(x[0], $ifaceNil, "argument to " + ((id[0] < 0 || id[0] >= predeclaredFuncs.length) ? ($throwRuntimeError("index out of range"), undefined) : predeclaredFuncs[id[0]]).name); /* */ $s = 257; case 257: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x[0].mode === 0) { - $s = -1; return _; + instQueue[0].insert(inst.Inst.Out); + ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = $appendSlice(new sliceType$1([]), anyRune)); + inst.Next = new sliceType$2([inst.Inst.Out]); + $s = 10; continue; + /* } else if (_1 === (10)) { */ case 9: + ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = false); + if (inst.Next.$length > 0) { + /* break; */ $s = 1; continue; } - ((i$2 < 0 || i$2 >= params.$length) ? ($throwRuntimeError("index out of range"), undefined) : params.$array[params.$offset + i$2] = x[0].typ); - i$2 = i$2 + (1) >> 0; - $s = 252; continue; - case 253: - /* } */ case 251: - x[0].mode = 1; - /* */ if (!(check[0].Info.Types === false)) { $s = 258; continue; } - /* */ $s = 259; continue; - /* if (!(check[0].Info.Types === false)) { */ case 258: - _arg$22 = call.Fun; - _r$53 = makeSig($ifaceNil, params); /* */ $s = 260; case 260: if($c) { $c = false; _r$53 = _r$53.$blk(); } if (_r$53 && _r$53.$blk !== undefined) { break s; } - _arg$23 = _r$53; - $r = check[0].recordBuiltinType(_arg$22, _arg$23); /* */ $s = 261; case 261: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 259: - $s = 44; continue; - /* } else if (_2 === (15)) { */ case 32: - x[0].mode = 7; - x[0].typ = emptyInterface; - /* */ if (!(check[0].Info.Types === false)) { $s = 262; continue; } - /* */ $s = 263; continue; - /* if (!(check[0].Info.Types === false)) { */ case 262: - _arg$24 = call.Fun; - _r$54 = makeSig(x[0].typ, sliceType$2.nil); /* */ $s = 264; case 264: if($c) { $c = false; _r$54 = _r$54.$blk(); } if (_r$54 && _r$54.$blk !== undefined) { break s; } - _arg$25 = _r$54; - $r = check[0].recordBuiltinType(_arg$24, _arg$25); /* */ $s = 265; case 265: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 263: - $s = 44; continue; - /* } else if (_2 === (16)) { */ case 33: - /* */ if (!check[0].allowVersion(check[0].pkg, 1, 17)) { $s = 266; continue; } - /* */ $s = 267; continue; - /* if (!check[0].allowVersion(check[0].pkg, 1, 17)) { */ case 266: - $r = check[0].error(call.Fun, 135, "unsafe.Add requires go1.17 or later"); /* */ $s = 268; case 268: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 267: - $r = check[0].assignment(x[0], (18 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 18]), "argument to unsafe.Add"); /* */ $s = 269; case 269: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x[0].mode === 0) { - $s = -1; return _; - } - y$2[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = arg(y$2[0], 1); /* */ $s = 270; case 270: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$55 = check[0].isValidIndex(y$2[0], 133, "length", true); /* */ $s = 273; case 273: if($c) { $c = false; _r$55 = _r$55.$blk(); } if (_r$55 && _r$55.$blk !== undefined) { break s; } - /* */ if (!_r$55) { $s = 271; continue; } - /* */ $s = 272; continue; - /* if (!_r$55) { */ case 271: - $s = -1; return _; - /* } */ case 272: - x[0].mode = 7; - x[0].typ = (18 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 18]); - /* */ if (!(check[0].Info.Types === false)) { $s = 274; continue; } - /* */ $s = 275; continue; - /* if (!(check[0].Info.Types === false)) { */ case 274: - _arg$26 = call.Fun; - _r$56 = makeSig(x[0].typ, new sliceType$2([x[0].typ, y$2[0].typ])); /* */ $s = 276; case 276: if($c) { $c = false; _r$56 = _r$56.$blk(); } if (_r$56 && _r$56.$blk !== undefined) { break s; } - _arg$27 = _r$56; - $r = check[0].recordBuiltinType(_arg$26, _arg$27); /* */ $s = 277; case 277: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 275: - $s = 44; continue; - /* } else if (_2 === (17)) { */ case 34: - $r = check[0].assignment(x[0], $ifaceNil, "argument to unsafe.Alignof"); /* */ $s = 278; case 278: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x[0].mode === 0) { - $s = -1; return _; - } - _r$57 = hasVarSize(x[0].typ, false); /* */ $s = 282; case 282: if($c) { $c = false; _r$57 = _r$57.$blk(); } if (_r$57 && _r$57.$blk !== undefined) { break s; } - /* */ if (_r$57) { $s = 279; continue; } - /* */ $s = 280; continue; - /* if (_r$57) { */ case 279: - x[0].mode = 7; - /* */ if (!(check[0].Info.Types === false)) { $s = 283; continue; } - /* */ $s = 284; continue; - /* if (!(check[0].Info.Types === false)) { */ case 283: - _arg$28 = call.Fun; - _r$58 = makeSig((12 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 12]), new sliceType$2([x[0].typ])); /* */ $s = 285; case 285: if($c) { $c = false; _r$58 = _r$58.$blk(); } if (_r$58 && _r$58.$blk !== undefined) { break s; } - _arg$29 = _r$58; - $r = check[0].recordBuiltinType(_arg$28, _arg$29); /* */ $s = 286; case 286: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 284: - $s = 281; continue; - /* } else { */ case 280: - x[0].mode = 4; - _r$59 = check[0].conf.alignof(x[0].typ); /* */ $s = 287; case 287: if($c) { $c = false; _r$59 = _r$59.$blk(); } if (_r$59 && _r$59.$blk !== undefined) { break s; } - _r$60 = constant.MakeInt64(_r$59); /* */ $s = 288; case 288: if($c) { $c = false; _r$60 = _r$60.$blk(); } if (_r$60 && _r$60.$blk !== undefined) { break s; } - x[0].val = _r$60; - /* } */ case 281: - x[0].typ = (12 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 12]); - $s = 44; continue; - /* } else if (_2 === (18)) { */ case 35: - arg0$1 = (x$9 = call.Args, (0 >= x$9.$length ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + 0])); - _tuple$6 = $assertType(unparen(arg0$1), ptrType$36, true); - selx = _tuple$6[0]; - /* */ if (selx === ptrType$36.nil) { $s = 289; continue; } - /* */ $s = 290; continue; - /* if (selx === ptrType$36.nil) { */ case 289: - $r = check[0].errorf(arg0$1, 98, "invalid argument: %s is not a selector expression", new sliceType$6([arg0$1])); /* */ $s = 291; case 291: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].use(new sliceType$11([arg0$1])); /* */ $s = 292; case 292: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 290: - $r = check[0].expr(x[0], selx.X); /* */ $s = 293; case 293: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x[0].mode === 0) { - $s = -1; return _; - } - _r$61 = derefStructPtr(x[0].typ); /* */ $s = 294; case 294: if($c) { $c = false; _r$61 = _r$61.$blk(); } if (_r$61 && _r$61.$blk !== undefined) { break s; } - base = _r$61; - sel = selx.Sel.Name; - _r$62 = LookupFieldOrMethod(base, false, check[0].pkg, sel); /* */ $s = 295; case 295: if($c) { $c = false; _r$62 = _r$62.$blk(); } if (_r$62 && _r$62.$blk !== undefined) { break s; } - _tuple$7 = _r$62; - obj = _tuple$7[0]; - index$2 = _tuple$7[1]; - indirect = _tuple$7[2]; - _ref$4 = obj; - /* */ if (_ref$4 === $ifaceNil) { $s = 296; continue; } - /* */ if ($assertType(_ref$4, ptrType$2, true)[1]) { $s = 297; continue; } - /* */ $s = 298; continue; - /* if (_ref$4 === $ifaceNil) { */ case 296: - $r = check[0].errorf(x[0], 76, "invalid argument: %s has no single field %s", new sliceType$6([base, new $String(sel)])); /* */ $s = 299; case 299: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } else if ($assertType(_ref$4, ptrType$2, true)[1]) { */ case 297: - $r = check[0].errorf(arg0$1, 99, "invalid argument: %s is a method value", new sliceType$6([arg0$1])); /* */ $s = 300; case 300: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 298: - /* */ if (indirect) { $s = 301; continue; } - /* */ $s = 302; continue; - /* if (indirect) { */ case 301: - $r = check[0].errorf(x[0], 99, "invalid argument: field %s is embedded via a pointer in %s", new sliceType$6([new $String(sel), base])); /* */ $s = 303; case 303: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 302: - $r = check[0].recordSelection(selx, 0, base, obj, index$2, false); /* */ $s = 304; case 304: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - mode$1 = 7; - if ((x[0].mode === 5) || indirect) { - mode$1 = 5; - } - _r$63 = obj.Type(); /* */ $s = 305; case 305: if($c) { $c = false; _r$63 = _r$63.$blk(); } if (_r$63 && _r$63.$blk !== undefined) { break s; } - $r = check[0].record(new operand.ptr(mode$1, selx, _r$63, $ifaceNil, 0)); /* */ $s = 306; case 306: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$64 = hasVarSize(base, false); /* */ $s = 310; case 310: if($c) { $c = false; _r$64 = _r$64.$blk(); } if (_r$64 && _r$64.$blk !== undefined) { break s; } - /* */ if (_r$64) { $s = 307; continue; } - /* */ $s = 308; continue; - /* if (_r$64) { */ case 307: - x[0].mode = 7; - /* */ if (!(check[0].Info.Types === false)) { $s = 311; continue; } - /* */ $s = 312; continue; - /* if (!(check[0].Info.Types === false)) { */ case 311: - _arg$30 = call.Fun; - _arg$31 = (12 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 12]); - _r$65 = obj.Type(); /* */ $s = 313; case 313: if($c) { $c = false; _r$65 = _r$65.$blk(); } if (_r$65 && _r$65.$blk !== undefined) { break s; } - _arg$32 = _r$65; - _r$66 = makeSig(_arg$31, new sliceType$2([_arg$32])); /* */ $s = 314; case 314: if($c) { $c = false; _r$66 = _r$66.$blk(); } if (_r$66 && _r$66.$blk !== undefined) { break s; } - _arg$33 = _r$66; - $r = check[0].recordBuiltinType(_arg$30, _arg$33); /* */ $s = 315; case 315: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 312: - $s = 309; continue; - /* } else { */ case 308: - x[0].mode = 4; - _r$67 = check[0].conf.offsetof(base, index$2); /* */ $s = 316; case 316: if($c) { $c = false; _r$67 = _r$67.$blk(); } if (_r$67 && _r$67.$blk !== undefined) { break s; } - _r$68 = constant.MakeInt64(_r$67); /* */ $s = 317; case 317: if($c) { $c = false; _r$68 = _r$68.$blk(); } if (_r$68 && _r$68.$blk !== undefined) { break s; } - x[0].val = _r$68; - /* } */ case 309: - x[0].typ = (12 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 12]); - $s = 44; continue; - /* } else if (_2 === (19)) { */ case 36: - $r = check[0].assignment(x[0], $ifaceNil, "argument to unsafe.Sizeof"); /* */ $s = 318; case 318: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x[0].mode === 0) { - $s = -1; return _; - } - _r$69 = hasVarSize(x[0].typ, false); /* */ $s = 322; case 322: if($c) { $c = false; _r$69 = _r$69.$blk(); } if (_r$69 && _r$69.$blk !== undefined) { break s; } - /* */ if (_r$69) { $s = 319; continue; } - /* */ $s = 320; continue; - /* if (_r$69) { */ case 319: - x[0].mode = 7; - /* */ if (!(check[0].Info.Types === false)) { $s = 323; continue; } - /* */ $s = 324; continue; - /* if (!(check[0].Info.Types === false)) { */ case 323: - _arg$34 = call.Fun; - _r$70 = makeSig((12 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 12]), new sliceType$2([x[0].typ])); /* */ $s = 325; case 325: if($c) { $c = false; _r$70 = _r$70.$blk(); } if (_r$70 && _r$70.$blk !== undefined) { break s; } - _arg$35 = _r$70; - $r = check[0].recordBuiltinType(_arg$34, _arg$35); /* */ $s = 326; case 326: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 324: - $s = 321; continue; - /* } else { */ case 320: - x[0].mode = 4; - _r$71 = check[0].conf.sizeof(x[0].typ); /* */ $s = 327; case 327: if($c) { $c = false; _r$71 = _r$71.$blk(); } if (_r$71 && _r$71.$blk !== undefined) { break s; } - _r$72 = constant.MakeInt64(_r$71); /* */ $s = 328; case 328: if($c) { $c = false; _r$72 = _r$72.$blk(); } if (_r$72 && _r$72.$blk !== undefined) { break s; } - x[0].val = _r$72; - /* } */ case 321: - x[0].typ = (12 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 12]); - $s = 44; continue; - /* } else if (_2 === (20)) { */ case 37: - /* */ if (!check[0].allowVersion(check[0].pkg, 1, 17)) { $s = 329; continue; } - /* */ $s = 330; continue; - /* if (!check[0].allowVersion(check[0].pkg, 1, 17)) { */ case 329: - $r = check[0].error(call.Fun, 135, "unsafe.Slice requires go1.17 or later"); /* */ $s = 331; case 331: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 330: - _r$73 = under(x[0].typ); /* */ $s = 332; case 332: if($c) { $c = false; _r$73 = _r$73.$blk(); } if (_r$73 && _r$73.$blk !== undefined) { break s; } - _tuple$8 = $assertType(_r$73, ptrType$26, true); - ptr = _tuple$8[0]; - /* */ if (ptr === ptrType$26.nil) { $s = 333; continue; } - /* */ $s = 334; continue; - /* if (ptr === ptrType$26.nil) { */ case 333: - $r = check[0].errorf(x[0], 134, "invalid argument: %s is not a pointer", new sliceType$6([x[0]])); /* */ $s = 335; case 335: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 334: - y$3[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = arg(y$3[0], 1); /* */ $s = 336; case 336: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$74 = check[0].isValidIndex(y$3[0], 134, "length", false); /* */ $s = 339; case 339: if($c) { $c = false; _r$74 = _r$74.$blk(); } if (_r$74 && _r$74.$blk !== undefined) { break s; } - /* */ if (!_r$74) { $s = 337; continue; } - /* */ $s = 338; continue; - /* if (!_r$74) { */ case 337: - $s = -1; return _; - /* } */ case 338: - x[0].mode = 7; - x[0].typ = NewSlice(ptr.base); - /* */ if (!(check[0].Info.Types === false)) { $s = 340; continue; } - /* */ $s = 341; continue; - /* if (!(check[0].Info.Types === false)) { */ case 340: - _arg$36 = call.Fun; - _r$75 = makeSig(x[0].typ, new sliceType$2([ptr, y$3[0].typ])); /* */ $s = 342; case 342: if($c) { $c = false; _r$75 = _r$75.$blk(); } if (_r$75 && _r$75.$blk !== undefined) { break s; } - _arg$37 = _r$75; - $r = check[0].recordBuiltinType(_arg$36, _arg$37); /* */ $s = 343; case 343: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 341: - $s = 44; continue; - /* } else if (_2 === (21)) { */ case 38: - /* */ if (!check[0].allowVersion(check[0].pkg, 1, 20)) { $s = 344; continue; } - /* */ $s = 345; continue; - /* if (!check[0].allowVersion(check[0].pkg, 1, 20)) { */ case 344: - $r = check[0].error(call.Fun, 135, "unsafe.SliceData requires go1.20 or later"); /* */ $s = 346; case 346: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 345: - _r$76 = under(x[0].typ); /* */ $s = 347; case 347: if($c) { $c = false; _r$76 = _r$76.$blk(); } if (_r$76 && _r$76.$blk !== undefined) { break s; } - _tuple$9 = $assertType(_r$76, ptrType$25, true); - slice = _tuple$9[0]; - /* */ if (slice === ptrType$25.nil) { $s = 348; continue; } - /* */ $s = 349; continue; - /* if (slice === ptrType$25.nil) { */ case 348: - $r = check[0].errorf(x[0], 145, "invalid argument: %s is not a slice", new sliceType$6([x[0]])); /* */ $s = 350; case 350: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 349: - x[0].mode = 7; - x[0].typ = NewPointer(slice.elem); - /* */ if (!(check[0].Info.Types === false)) { $s = 351; continue; } - /* */ $s = 352; continue; - /* if (!(check[0].Info.Types === false)) { */ case 351: - _arg$38 = call.Fun; - _r$77 = makeSig(x[0].typ, new sliceType$2([slice])); /* */ $s = 353; case 353: if($c) { $c = false; _r$77 = _r$77.$blk(); } if (_r$77 && _r$77.$blk !== undefined) { break s; } - _arg$39 = _r$77; - $r = check[0].recordBuiltinType(_arg$38, _arg$39); /* */ $s = 354; case 354: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 352: - $s = 44; continue; - /* } else if (_2 === (22)) { */ case 39: - /* */ if (!check[0].allowVersion(check[0].pkg, 1, 20)) { $s = 355; continue; } - /* */ $s = 356; continue; - /* if (!check[0].allowVersion(check[0].pkg, 1, 20)) { */ case 355: - $r = check[0].error(call.Fun, 135, "unsafe.String requires go1.20 or later"); /* */ $s = 357; case 357: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 356: - $r = check[0].assignment(x[0], NewPointer(universeByte), "argument to unsafe.String"); /* */ $s = 358; case 358: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x[0].mode === 0) { - $s = -1; return _; - } - y$4[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = arg(y$4[0], 1); /* */ $s = 359; case 359: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$78 = check[0].isValidIndex(y$4[0], 146, "length", false); /* */ $s = 362; case 362: if($c) { $c = false; _r$78 = _r$78.$blk(); } if (_r$78 && _r$78.$blk !== undefined) { break s; } - /* */ if (!_r$78) { $s = 360; continue; } - /* */ $s = 361; continue; - /* if (!_r$78) { */ case 360: - $s = -1; return _; - /* } */ case 361: - x[0].mode = 7; - x[0].typ = (17 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 17]); - /* */ if (!(check[0].Info.Types === false)) { $s = 363; continue; } - /* */ $s = 364; continue; - /* if (!(check[0].Info.Types === false)) { */ case 363: - _arg$40 = call.Fun; - _r$79 = makeSig(x[0].typ, new sliceType$2([NewPointer(universeByte), y$4[0].typ])); /* */ $s = 365; case 365: if($c) { $c = false; _r$79 = _r$79.$blk(); } if (_r$79 && _r$79.$blk !== undefined) { break s; } - _arg$41 = _r$79; - $r = check[0].recordBuiltinType(_arg$40, _arg$41); /* */ $s = 366; case 366: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 364: - $s = 44; continue; - /* } else if (_2 === (23)) { */ case 40: - /* */ if (!check[0].allowVersion(check[0].pkg, 1, 20)) { $s = 367; continue; } - /* */ $s = 368; continue; - /* if (!check[0].allowVersion(check[0].pkg, 1, 20)) { */ case 367: - $r = check[0].error(call.Fun, 135, "unsafe.StringData requires go1.20 or later"); /* */ $s = 369; case 369: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 368: - $r = check[0].assignment(x[0], (17 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 17]), "argument to unsafe.StringData"); /* */ $s = 370; case 370: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x[0].mode === 0) { - $s = -1; return _; - } - x[0].mode = 7; - x[0].typ = NewPointer(universeByte); - /* */ if (!(check[0].Info.Types === false)) { $s = 371; continue; } - /* */ $s = 372; continue; - /* if (!(check[0].Info.Types === false)) { */ case 371: - _arg$42 = call.Fun; - _r$80 = makeSig(x[0].typ, new sliceType$2([(17 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 17])])); /* */ $s = 373; case 373: if($c) { $c = false; _r$80 = _r$80.$blk(); } if (_r$80 && _r$80.$blk !== undefined) { break s; } - _arg$43 = _r$80; - $r = check[0].recordBuiltinType(_arg$42, _arg$43); /* */ $s = 374; case 374: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 372: - $s = 44; continue; - /* } else if (_2 === (24)) { */ case 41: - if (!((x[0].mode === 4))) { _v$3 = true; $s = 377; continue s; } - _r$81 = isBoolean(x[0].typ); /* */ $s = 378; case 378: if($c) { $c = false; _r$81 = _r$81.$blk(); } if (_r$81 && _r$81.$blk !== undefined) { break s; } - _v$3 = !_r$81; case 377: - /* */ if (_v$3) { $s = 375; continue; } - /* */ $s = 376; continue; - /* if (_v$3) { */ case 375: - $r = check[0].errorf(x[0], 1, "invalid argument: %s is not a boolean constant", new sliceType$6([x[0]])); /* */ $s = 379; case 379: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 376: - _r$82 = x[0].val.Kind(); /* */ $s = 382; case 382: if($c) { $c = false; _r$82 = _r$82.$blk(); } if (_r$82 && _r$82.$blk !== undefined) { break s; } - /* */ if (!((_r$82 === 1))) { $s = 380; continue; } - /* */ $s = 381; continue; - /* if (!((_r$82 === 1))) { */ case 380: - $r = check[0].errorf(x[0], 1, "internal error: value of %s should be a boolean constant", new sliceType$6([x[0]])); /* */ $s = 383; case 383: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 381: - _r$83 = constant.BoolVal(x[0].val); /* */ $s = 386; case 386: if($c) { $c = false; _r$83 = _r$83.$blk(); } if (_r$83 && _r$83.$blk !== undefined) { break s; } - /* */ if (!_r$83) { $s = 384; continue; } - /* */ $s = 385; continue; - /* if (!_r$83) { */ case 384: - $r = check[0].errorf(call, 1, "%v failed", new sliceType$6([call])); /* */ $s = 387; case 387: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 385: - $s = 44; continue; - /* } else if (_2 === (25)) { */ case 42: - /* */ if (nargs === 0) { $s = 388; continue; } - /* */ $s = 389; continue; - /* if (nargs === 0) { */ case 388: - _r$84 = call.Pos(); /* */ $s = 390; case 390: if($c) { $c = false; _r$84 = _r$84.$blk(); } if (_r$84 && _r$84.$blk !== undefined) { break s; } - _arg$44 = new token.Pos(_r$84); - $r = check[0].dump("%v: trace() without arguments", new sliceType$6([_arg$44])); /* */ $s = 391; case 391: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x[0].mode = 1; - /* break; */ $s = 19; continue; - /* } */ case 389: - t[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - x1 = x[0]; - _ref$5 = call.Args; - _i$2 = 0; - /* while (true) { */ case 392: - /* if (!(_i$2 < _ref$5.$length)) { break; } */ if(!(_i$2 < _ref$5.$length)) { $s = 393; continue; } - arg$2 = ((_i$2 < 0 || _i$2 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$2]); - _r$85 = check[0].rawExpr(x1, arg$2, $ifaceNil, false); /* */ $s = 394; case 394: if($c) { $c = false; _r$85 = _r$85.$blk(); } if (_r$85 && _r$85.$blk !== undefined) { break s; } - _r$85; - _r$86 = x1.Pos(); /* */ $s = 395; case 395: if($c) { $c = false; _r$86 = _r$86.$blk(); } if (_r$86 && _r$86.$blk !== undefined) { break s; } - _arg$45 = new token.Pos(_r$86); - _arg$46 = x1; - $r = check[0].dump("%v: %s", new sliceType$6([_arg$45, _arg$46])); /* */ $s = 396; case 396: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x1 = t[0]; - _i$2++; - $s = 392; continue; - case 393: - $s = 44; continue; - /* } else { */ case 43: - unreachable(); - /* } */ case 44: - case 19: - _ = true; - $s = -1; return _; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return _; } if($curGoroutine.asleep) { var $f = {$blk: builtin, $c: true, $r, S, T, T$1, T$2, _, _1, _2, _3, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$16, _arg$17, _arg$18, _arg$19, _arg$2, _arg$20, _arg$21, _arg$22, _arg$23, _arg$24, _arg$25, _arg$26, _arg$27, _arg$28, _arg$29, _arg$3, _arg$30, _arg$31, _arg$32, _arg$33, _arg$34, _arg$35, _arg$36, _arg$37, _arg$38, _arg$39, _arg$4, _arg$40, _arg$41, _arg$42, _arg$43, _arg$44, _arg$45, _arg$46, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _i, _i$1, _i$2, _key, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _r$5, _r$50, _r$51, _r$52, _r$53, _r$54, _r$55, _r$56, _r$57, _r$58, _r$59, _r$6, _r$60, _r$61, _r$62, _r$63, _r$64, _r$65, _r$66, _r$67, _r$68, _r$69, _r$7, _r$70, _r$71, _r$72, _r$73, _r$74, _r$75, _r$76, _r$77, _r$78, _r$79, _r$8, _r$80, _r$81, _r$82, _r$83, _r$84, _r$85, _r$86, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, _v$2, _v$3, alist, arg, arg$1, arg$2, arg0, arg0$1, base, bin, call, cause, check, code, code$1, d, dst, f, f$1, i, i$1, i$2, id, index$2, indirect, key, map_, min, mode, mode$1, msg$1, nargs, obj, ok, p, params, ptr, resTyp, resTyp$1, s, sel, selx, sig, sig$1, size, sizes, slice, src, src0, t, t$1, t$2, t$3, t$4, t$5, t$6, toFloat, typ$4, types$1, u, val, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, x1, xlist, xlist$1, y, y$1, y$2, y$3, y$4, $s, $deferred};return $f; } } - }; - hasVarSize = function hasVarSize$1(t, seen) { - var {$24r, _entry, _i, _key, _r$1, _r$2, _r$3, _ref, _ref$1, _tuple, _tuple$1, f, named, ok, seen, t, u, u$1, u$2, u$3, v, varSized, $s, $deferred, $r, $c} = $restore(this, {t, seen}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - named = [named]; - seen = [seen]; - varSized = [varSized]; - varSized[0] = false; - _tuple = $assertType(t, ptrType$9, true); - named[0] = _tuple[0]; - /* */ if (!(named[0] === ptrType$9.nil)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(named[0] === ptrType$9.nil)) { */ case 1: - _tuple$1 = (_entry = $mapIndex(seen[0],ptrType$9.keyFor(named[0])), _entry !== undefined ? [_entry.v, true] : [false, false]); - v = _tuple$1[0]; - ok = _tuple$1[1]; - if (ok) { - varSized[0] = v; - $s = -1; return varSized[0]; - } - if (seen[0] === false) { - seen[0] = new $global.Map(); - } - _key = named[0]; (seen[0] || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$9.keyFor(_key), { k: _key, v: true }); - $deferred.push([(function(named, seen, varSized) { return function hasVarSize·func1() { - var _key$1; - _key$1 = named[0]; (seen[0] || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$9.keyFor(_key$1), { k: _key$1, v: varSized[0] }); - }; })(named, seen, varSized), []]); - /* } */ case 2: - _r$1 = under(t); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _ref = _r$1; - /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType$9, true)[1] || $assertType(_ref, ptrType$12, true)[1]) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if ($assertType(_ref, ptrType$10, true)[1]) { */ case 4: - u = _ref.$val; - _r$2 = hasVarSize(u.elem, seen[0]); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - varSized[0] = _r$2; - $24r = varSized[0]; - $s = 10; case 10: return $24r; - /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 5: - u$1 = _ref.$val; - _ref$1 = u$1.fields; + instQueue[0].insert(inst.Inst.Out); + ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = $appendSlice(new sliceType$1([]), anyRuneNotNL)); + inst.Next = $makeSlice(sliceType$2, ((_q$4 = ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc]).$length / 2, (_q$4 === _q$4 && _q$4 !== 1/0 && _q$4 !== -1/0) ? _q$4 >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0)); + _ref$4 = inst.Next; + _i$4 = 0; + while (true) { + if (!(_i$4 < _ref$4.$length)) { break; } + i$4 = _i$4; + (x$18 = inst.Next, ((i$4 < 0 || i$4 >= x$18.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$18.$array[x$18.$offset + i$4] = inst.Inst.Out)); + _i$4++; + } + /* } */ case 10: + case 1: + $s = -1; return ok; + /* */ } return; } var $f = {$blk: makeOnePass·func1, $c: true, $r, _1, _i, _i$1, _i$2, _i$3, _i$4, _q, _q$1, _q$2, _q$3, _q$4, _r, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _v, i, i$1, i$2, i$3, i$4, inst, m, matchArg, matchOut, ok, pc, r0, r0$1, r1, r1$1, runes, runes$1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; + }; })(check, instQueue, onePassRunes, p, visitQueue); + instQueue[0].clear(); + instQueue[0].insert(((p[0].Start >>> 0))); + m = $makeSlice(sliceType$14, p[0].Inst.$length); + /* while (true) { */ case 1: + /* if (!(!instQueue[0].empty())) { break; } */ if(!(!instQueue[0].empty())) { $s = 2; continue; } + visitQueue[0].clear(); + pc = instQueue[0].next(); + _r = check[0](pc, m); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!_r) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!_r) { */ case 3: + p[0] = ptrType$2.nil; + /* break; */ $s = 2; continue; + /* } */ case 4: + $s = 1; continue; + case 2: + if (!(p[0] === ptrType$2.nil)) { + _ref = p[0].Inst; _i = 0; - /* while (true) { */ case 11: - /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 12; continue; } - f = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); - _r$3 = hasVarSize(f.object.typ, seen[0]); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (_r$3) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (_r$3) { */ case 13: - varSized[0] = true; - $s = -1; return varSized[0]; - /* } */ case 14: + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + (x = p[0].Inst, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])).Inst.Rune = ((i < 0 || i >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + i]); _i++; - $s = 11; continue; - case 12: - $s = 8; continue; - /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 6: - u$2 = _ref.$val; - varSized[0] = isTypeParam(t); - $s = -1; return varSized[0]; - /* } else if ($assertType(_ref, ptrType$9, true)[1] || $assertType(_ref, ptrType$12, true)[1]) { */ case 7: - u$3 = _ref; - unreachable(); - /* } */ case 8: - varSized[0] = false; - $s = -1; return varSized[0]; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return varSized[0]; } if($curGoroutine.asleep) { var $f = {$blk: hasVarSize$1, $c: true, $r, $24r, _entry, _i, _key, _r$1, _r$2, _r$3, _ref, _ref$1, _tuple, _tuple$1, f, named, ok, seen, t, u, u$1, u$2, u$3, v, varSized, $s, $deferred};return $f; } } + } + } + $s = -1; return p[0]; + /* */ } return; } var $f = {$blk: makeOnePass$1, $c: true, $r, _i, _r, _ref, check, i, instQueue, m, onePassRunes, p, pc, visitQueue, x, $s};return $f; }; - $ptrType(Checker).prototype.applyTypeFunc = function applyTypeFunc(f, x, id) { - var {$24r, _1, _arg, _arg$1, _r$1, _r$2, _r$3, _r$4, _tuple, check, code, f, id, ptyp, terms, tp, tpar, x, $s, $r, $c} = $restore(this, {f, x, id}); + compileOnePass = function compileOnePass$1(prog) { + var {_1, _i, _r, _ref, inst, opOut, p, prog, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r, $c} = $restore(this, {prog}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - f = [f]; - terms = [terms]; - check = this; - _tuple = $assertType(x.typ, ptrType$14, true); - tp = _tuple[0]; - /* */ if (!(tp === ptrType$14.nil)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(tp === ptrType$14.nil)) { */ case 1: - terms[0] = sliceType$12.nil; - _r$1 = tp.is((function(f, terms) { return function Checker·applyTypeFunc·func1(t) { - var {_r$1, r, t, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (t === ptrType$4.nil) { - $s = -1; return false; - } - _r$1 = f[0](t.typ); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - r = _r$1; - if (!($interfaceIsEqual(r, $ifaceNil))) { - terms[0] = $append(terms[0], NewTerm(t.tilde, r)); - $s = -1; return true; + p = ptrType$2.nil; + if (prog.Start === 0) { + p = ptrType$2.nil; + $s = -1; return p; + } + if (!(((x = prog.Inst, x$1 = prog.Start, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Op === 3)) || !(((((((x$2 = prog.Inst, x$3 = prog.Start, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])).Arg << 24 >>> 24)) & 4) >>> 0) === 4))) { + p = ptrType$2.nil; + $s = -1; return p; + } + _ref = prog.Inst; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + inst = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), syntax.Inst); + opOut = (x$4 = prog.Inst, x$5 = inst.Out, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])).Op; + _1 = inst.Op; + if ((_1 === (0)) || (_1 === (1))) { + if ((opOut === 4) || ((x$6 = prog.Inst, x$7 = inst.Arg, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])).Op === 4)) { + p = ptrType$2.nil; + $s = -1; return p; + } + } else if (_1 === (3)) { + if (opOut === 4) { + if (((((inst.Arg << 24 >>> 24)) & 8) >>> 0) === 8) { + _i++; + continue; } - $s = -1; return false; - /* */ } return; } var $f = {$blk: Checker·applyTypeFunc·func1, $c: true, $r, _r$1, r, t, $s};return $f; - }; })(f, terms)); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (!_r$1) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!_r$1) { */ case 3: - $s = -1; return $ifaceNil; - /* } */ case 4: - code = 0; - _1 = id; - if (_1 === (14)) { - code = 93; - } else if (_1 === (7)) { - code = 89; - } else if (_1 === (4)) { - code = 87; - } else { - unreachable(); + p = ptrType$2.nil; + $s = -1; return p; + } + } else if (opOut === 4) { + p = ptrType$2.nil; + $s = -1; return p; } - $r = check.softErrorf(x, code, "%s not supported as argument to %s for go1.18 (see issue #50937)", new sliceType$6([x, new $String(((id < 0 || id >= predeclaredFuncs.length) ? ($throwRuntimeError("index out of range"), undefined) : predeclaredFuncs[id]).name)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - tpar = NewTypeName(0, check.pkg, tp.obj.object.name, $ifaceNil); - _arg = tpar; - _r$2 = NewInterfaceType(sliceType.nil, new sliceType$2([NewUnion(terms[0])])); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _arg$1 = _r$2; - _r$3 = check.newTypeParam(_arg, _arg$1); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - ptyp = _r$3; - ptyp.index = tp.index; - $s = -1; return ptyp; - /* } */ case 2: - _r$4 = f[0](x.typ); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $24r = _r$4; - $s = 10; case 10: return $24r; - /* */ } return; } var $f = {$blk: applyTypeFunc, $c: true, $r, $24r, _1, _arg, _arg$1, _r$1, _r$2, _r$3, _r$4, _tuple, check, code, f, id, ptyp, terms, tp, tpar, x, $s};return $f; + _i++; + } + p = onePassCopy(prog); + _r = makeOnePass(p); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + p = _r; + if (!(p === ptrType$2.nil)) { + cleanupOnePass(p, prog); + } + p = p; + $s = -1; return p; + /* */ } return; } var $f = {$blk: compileOnePass$1, $c: true, $r, _1, _i, _r, _ref, inst, opOut, p, prog, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s};return $f; }; - makeSig = function makeSig$1(res, args) { - var {_i, _ref, args, i, list$2, param, params, res, result, $s, $r, $c} = $restore(this, {res, args}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - list$2 = $makeSlice(sliceType$10, args.$length); - _ref = args; + $ptrType(inputs).prototype.newBytes = function newBytes(b) { + var b, i; + i = this; + i.bytes.str = b; + return i.bytes; + }; + $ptrType(inputs).prototype.newString = function newString(s) { + var i, s; + i = this; + i.string.str = s; + return i.string; + }; + $ptrType(inputs).prototype.newReader = function newReader(r) { + var i, r; + i = this; + i.reader.r = r; + i.reader.atEOT = false; + i.reader.pos = 0; + return i.reader; + }; + $ptrType(inputs).prototype.clear = function clear$1() { + var i; + i = this; + if (!(i.bytes.str === sliceType$4.nil)) { + i.bytes.str = sliceType$4.nil; + } else if (!($interfaceIsEqual(i.reader.r, $ifaceNil))) { + i.reader.r = $ifaceNil; + } else { + i.string.str = ""; + } + }; + $ptrType(inputs).prototype.init = function init$2(r, b, s) { + var b, i, r, s; + i = this; + if (!($interfaceIsEqual(r, $ifaceNil))) { + return [i.newReader(r), 0]; + } + if (!(b === sliceType$4.nil)) { + return [i.newBytes(b), b.$length]; + } + return [i.newString(s), s.length]; + }; + $ptrType(machine).prototype.init = function init$3(ncap) { + var _i, _ref, m, ncap, t; + m = this; + _ref = m.pool; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } - i = _i; - param = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - ((i < 0 || i >= list$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : list$2.$array[list$2.$offset + i] = NewVar(0, ptrType$1.nil, "", Default(param))); + t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + t.cap = $subslice(t.cap, 0, ncap); _i++; } - params = NewTuple(list$2); - result = ptrType$15.nil; - /* */ if (!($interfaceIsEqual(res, $ifaceNil))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!($interfaceIsEqual(res, $ifaceNil))) { */ case 1: - $r = assert(!isUntyped(res)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - result = NewTuple(new sliceType$10([NewVar(0, ptrType$1.nil, "", res)])); - /* } */ case 2: - $s = -1; return new Signature.ptr(ptrType$48.nil, ptrType$48.nil, ptrType.nil, ptrType$16.nil, params, result, false); - /* */ } return; } var $f = {$blk: makeSig$1, $c: true, $r, _i, _ref, args, i, list$2, param, params, res, result, $s};return $f; + m.matchcap = $subslice(m.matchcap, 0, ncap); }; - arrayPtrDeref = function arrayPtrDeref$1(typ$4) { - var {_r$1, _tuple, _tuple$1, a, ok, p, typ$4, $s, $r, $c} = $restore(this, {typ$4}); + $ptrType(machine).prototype.alloc = function alloc(i) { + var i, m, n, t, x, x$1; + m = this; + t = ptrType$5.nil; + n = m.pool.$length; + if (n > 0) { + t = (x = m.pool, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + m.pool = $subslice(m.pool, 0, (n - 1 >> 0)); + } else { + t = new thread.ptr(ptrType$6.nil, sliceType$7.nil); + t.cap = $makeSlice(sliceType$7, m.matchcap.$length, m.matchcap.$capacity); + } + t.inst = i; + return t; + }; + newLazyFlag = function newLazyFlag$1(r1, r2) { + var r1, r2, x, x$1, x$2; + return ((x = (x$1 = $shiftLeft64((new $Uint64(0, r1)), 32), x$2 = (new $Uint64(0, ((r2 >>> 0)))), new $Uint64(x$1.$high | x$2.$high, (x$1.$low | x$2.$low) >>> 0)), new lazyFlag(x.$high, x.$low))); + }; + lazyFlag.prototype.match = function match(op) { + var f, op, r1, r2; + f = this; + if (op === 0) { + return true; + } + r1 = (($shiftRightUint64(f, 32).$low >> 0)); + if (!((((op & 1) >>> 0) === 0))) { + if (!((r1 === 10)) && r1 >= 0) { + return false; + } + op = (op & ~(1)) << 24 >>> 24; + } + if (!((((op & 4) >>> 0) === 0))) { + if (r1 >= 0) { + return false; + } + op = (op & ~(4)) << 24 >>> 24; + } + if (op === 0) { + return true; + } + r2 = ((f.$low >> 0)); + if (!((((op & 2) >>> 0) === 0))) { + if (!((r2 === 10)) && r2 >= 0) { + return false; + } + op = (op & ~(2)) << 24 >>> 24; + } + if (!((((op & 8) >>> 0) === 0))) { + if (r2 >= 0) { + return false; + } + op = (op & ~(8)) << 24 >>> 24; + } + if (op === 0) { + return true; + } + if (!(syntax.IsWordChar(r1) === syntax.IsWordChar(r2))) { + op = (op & ~(16)) << 24 >>> 24; + } else { + op = (op & ~(32)) << 24 >>> 24; + } + return op === 0; + }; + $ptrType(lazyFlag).prototype.match = function(...$args) { return this.$get().match(...$args); }; + $ptrType(machine).prototype.match = function match$1(i, pos) { + var {_i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _v, advance, flag, i, i$1, m, nextq, pos, r, r1, runq, startCond, width, width1, x, x$1, $s, $r, $c} = $restore(this, {i, pos}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _tuple = $assertType(typ$4, ptrType$26, true); - p = _tuple[0]; - ok = _tuple[1]; - /* */ if (ok) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (ok) { */ case 1: - _r$1 = under(p.base); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$1 = $assertType(_r$1, ptrType$10, true); - a = _tuple$1[0]; - if (!(a === ptrType$10.nil)) { - $s = -1; return a; + flag = [flag]; + m = this; + startCond = m.re.cond; + if (startCond === 255) { + $s = -1; return false; + } + m.matched = false; + _ref = m.matchcap; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i$1 = _i; + (x = m.matchcap, ((i$1 < 0 || i$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i$1] = -1)); + _i++; + } + _tmp = m.q0; + _tmp$1 = m.q1; + runq = _tmp; + nextq = _tmp$1; + _tmp$2 = -1; + _tmp$3 = -1; + r = _tmp$2; + r1 = _tmp$3; + _tmp$4 = 0; + _tmp$5 = 0; + width = _tmp$4; + width1 = _tmp$5; + _r = i.step(pos); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + r = _tuple[0]; + width = _tuple[1]; + /* */ if (!((r === -1))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!((r === -1))) { */ case 2: + _r$1 = i.step(pos + width >> 0); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + r1 = _tuple$1[0]; + width1 = _tuple$1[1]; + /* } */ case 3: + flag[0] = new lazyFlag(0, 0); + /* */ if (pos === 0) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (pos === 0) { */ case 5: + flag[0] = newLazyFlag(-1, r); + $s = 7; continue; + /* } else { */ case 6: + _r$2 = i.context(pos); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + flag[0] = _r$2; + /* } */ case 7: + /* while (true) { */ case 9: + /* */ if (runq.dense.$length === 0) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (runq.dense.$length === 0) { */ case 11: + if (!((((startCond & 4) >>> 0) === 0)) && !((pos === 0))) { + /* break; */ $s = 10; continue; + } + if (m.matched) { + /* break; */ $s = 10; continue; + } + if (!(m.re.prefix.length > 0 && !((r1 === m.re.prefixRune)))) { _v = false; $s = 15; continue s; } + _r$3 = i.canCheckPrefix(); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v = _r$3; case 15: + /* */ if (_v) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (_v) { */ case 13: + _r$4 = i.index(m.re, pos); /* */ $s = 17; case 17: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + advance = _r$4; + if (advance < 0) { + /* break; */ $s = 10; continue; + } + pos = pos + (advance) >> 0; + _r$5 = i.step(pos); /* */ $s = 18; case 18: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$2 = _r$5; + r = _tuple$2[0]; + width = _tuple$2[1]; + _r$6 = i.step(pos + width >> 0); /* */ $s = 19; case 19: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _tuple$3 = _r$6; + r1 = _tuple$3[0]; + width1 = _tuple$3[1]; + /* } */ case 14: + /* } */ case 12: + if (!m.matched) { + if (m.matchcap.$length > 0) { + (x$1 = m.matchcap, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0] = pos)); + } + m.add(runq, ((m.p.Start >>> 0)), pos, m.matchcap, (flag.$ptr || (flag.$ptr = new ptrType$13(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, flag))), ptrType$5.nil); } - /* } */ case 2: - $s = -1; return typ$4; - /* */ } return; } var $f = {$blk: arrayPtrDeref$1, $c: true, $r, _r$1, _tuple, _tuple$1, a, ok, p, typ$4, $s};return $f; + flag[0] = newLazyFlag(r, r1); + m.step(runq, nextq, pos, pos + width >> 0, r, (flag.$ptr || (flag.$ptr = new ptrType$13(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, flag)))); + if (width === 0) { + /* break; */ $s = 10; continue; + } + if ((m.matchcap.$length === 0) && m.matched) { + /* break; */ $s = 10; continue; + } + pos = pos + (width) >> 0; + _tmp$6 = r1; + _tmp$7 = width1; + r = _tmp$6; + width = _tmp$7; + /* */ if (!((r === -1))) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (!((r === -1))) { */ case 20: + _r$7 = i.step(pos + width >> 0); /* */ $s = 22; case 22: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _tuple$4 = _r$7; + r1 = _tuple$4[0]; + width1 = _tuple$4[1]; + /* } */ case 21: + _tmp$8 = nextq; + _tmp$9 = runq; + runq = _tmp$8; + nextq = _tmp$9; + $s = 9; continue; + case 10: + m.clear(nextq); + $s = -1; return m.matched; + /* */ } return; } var $f = {$blk: match$1, $c: true, $r, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _v, advance, flag, i, i$1, m, nextq, pos, r, r1, runq, startCond, width, width1, x, x$1, $s};return $f; }; - unparen = function unparen$1(e) { - var _tuple, e, ok, p; + $ptrType(machine).prototype.clear = function clear$2(q) { + var _i, _ref, d, m, q; + m = this; + _ref = q.dense; + _i = 0; while (true) { - _tuple = $assertType(e, ptrType$39, true); - p = _tuple[0]; - ok = _tuple[1]; - if (!ok) { - return e; + if (!(_i < _ref.$length)) { break; } + d = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), entry); + if (!(d.t === ptrType$5.nil)) { + m.pool = $append(m.pool, d.t); } - e = p.X; + _i++; } + q.dense = $subslice(q.dense, 0, 0); }; - $ptrType(Basic).prototype.Kind = function Kind$1() { - var b; - b = this; - return b.kind; - }; - $ptrType(Basic).prototype.Info = function Info$1() { - var b; - b = this; - return b.info; - }; - $ptrType(Basic).prototype.Name = function Name$3() { - var b; - b = this; - return b.name; - }; - $ptrType(Basic).prototype.Underlying = function Underlying$11() { - var t; - t = this; - return t; - }; - $ptrType(Basic).prototype.String = function String$33() { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = TypeString(t, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$33, $c: true, $r, $24r, _r$1, t, $s};return $f; + $ptrType(machine).prototype.step = function step$3(runq, nextq, pos, nextPos, c, nextCond) { + var _1, _i, _ref, add, c, d, d$1, i, j, longest, m, nextCond, nextPos, nextq, pos, runq, t, x, x$1, x$2, x$3, x$4, x$5; + m = this; + longest = m.re.longest; + j = 0; + while (true) { + if (!(j < runq.dense.$length)) { break; } + d = (x = runq.dense, ((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + j, ptrType$14))); + t = d.t; + if (t === ptrType$5.nil) { + j = j + (1) >> 0; + continue; + } + if (longest && m.matched && t.cap.$length > 0 && (x$1 = m.matchcap, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])) < (x$2 = t.cap, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0]))) { + m.pool = $append(m.pool, t); + j = j + (1) >> 0; + continue; + } + i = t.inst; + add = false; + _1 = i.Op; + if (_1 === (4)) { + if (t.cap.$length > 0 && (!longest || !m.matched || (x$3 = m.matchcap, (1 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 1])) < pos)) { + (x$4 = t.cap, (1 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 1] = pos)); + $copySlice(m.matchcap, t.cap); + } + if (!longest) { + _ref = $subslice(runq.dense, (j + 1 >> 0)); + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + d$1 = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), entry); + if (!(d$1.t === ptrType$5.nil)) { + m.pool = $append(m.pool, d$1.t); + } + _i++; + } + runq.dense = $subslice(runq.dense, 0, 0); + } + m.matched = true; + } else if (_1 === (7)) { + add = i.MatchRune(c); + } else if (_1 === (8)) { + add = c === (x$5 = i.Rune, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0])); + } else if (_1 === (9)) { + add = true; + } else if (_1 === (10)) { + add = !((c === 10)); + } else { + $panic(new $String("bad inst")); + } + if (add) { + t = m.add(nextq, i.Out, nextPos, t.cap, nextCond, t); + } + if (!(t === ptrType$5.nil)) { + m.pool = $append(m.pool, t); + } + j = j + (1) >> 0; + } + runq.dense = $subslice(runq.dense, 0, 0); }; - $ptrType(Checker).prototype.assignment = function assignment(x, T, context$1) { - var {T, _1, _2, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, _tuple$2, _v, cause, check, code, code$1, context$1, msg$1, newType, ok, sig, target, val, x, $s, $r, $c} = $restore(this, {x, T, context$1}); + $ptrType(machine).prototype.add = function add(q, pc, pos, cap, cond, t) { + var _1, cap, cond, d, i, j, j$1, m, opos, pc, pos, q, t, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, $s; /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - cause = [cause]; - check = this; - $r = check.singleValue(x); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _1 = x.mode; - /* */ if (_1 === (0)) { $s = 3; continue; } - /* */ if ((_1 === (4)) || (_1 === (5)) || (_1 === (6)) || (_1 === (7)) || (_1 === (8)) || (_1 === (9))) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_1 === (0)) { */ case 3: - $s = -1; return; - /* } else if ((_1 === (4)) || (_1 === (5)) || (_1 === (6)) || (_1 === (7)) || (_1 === (8)) || (_1 === (9))) { */ case 4: - $s = 6; continue; - /* } else { */ case 5: - $r = check.errorf(x, 23, "cannot assign %s to %s in %s", new sliceType$6([x, T, new $String(context$1)])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 6: - case 2: - /* */ if (isUntyped(x.typ)) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (isUntyped(x.typ)) { */ case 8: - target = T; - if ($interfaceIsEqual(T, $ifaceNil)) { _v = true; $s = 12; continue s; } - _r$1 = isNonTypeParamInterface(T); /* */ $s = 13; case 13: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = _r$1; case 12: - /* */ if (_v) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (_v) { */ case 10: - /* */ if ($interfaceIsEqual(T, $ifaceNil) && $interfaceIsEqual(x.typ, (25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25]))) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if ($interfaceIsEqual(T, $ifaceNil) && $interfaceIsEqual(x.typ, (25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25]))) { */ case 14: - $r = check.errorf(x, 16, "use of untyped nil in %s", new sliceType$6([new $String(context$1)])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - $s = -1; return; + m = this; + /* Again: */ case 1: + if (pc === 0) { + $s = -1; return t; + } + j = (x = q.sparse, ((pc < 0 || pc >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pc])); + if (j < ((q.dense.$length >>> 0)) && ((x$1 = q.dense, ((j < 0 || j >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + j])).pc === pc)) { + $s = -1; return t; + } + j$1 = q.dense.$length; + q.dense = $subslice(q.dense, 0, (j$1 + 1 >> 0)); + d = (x$2 = q.dense, ((j$1 < 0 || j$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$2.$array, x$2.$offset + j$1, ptrType$14))); + d.t = ptrType$5.nil; + d.pc = pc; + (x$3 = q.sparse, ((pc < 0 || pc >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + pc] = ((j$1 >>> 0)))); + i = (x$4 = m.p.Inst, ((pc < 0 || pc >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$4.$array, x$4.$offset + pc, ptrType$6))); + _1 = i.Op; + /* */ if (_1 === (5)) { $s = 3; continue; } + /* */ if ((_1 === (0)) || (_1 === (1))) { $s = 4; continue; } + /* */ if (_1 === (3)) { $s = 5; continue; } + /* */ if (_1 === (6)) { $s = 6; continue; } + /* */ if (_1 === (2)) { $s = 7; continue; } + /* */ if ((_1 === (4)) || (_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10))) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (_1 === (5)) { */ case 3: + $s = 10; continue; + /* } else if ((_1 === (0)) || (_1 === (1))) { */ case 4: + t = m.add(q, i.Out, pos, cap, cond, t); + pc = i.Arg; + /* goto Again */ $s = 1; continue; + $s = 10; continue; + /* } else if (_1 === (3)) { */ case 5: + /* */ if (cond.match(((i.Arg << 24 >>> 24)))) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (cond.match(((i.Arg << 24 >>> 24)))) { */ case 11: + pc = i.Out; + /* goto Again */ $s = 1; continue; + /* } */ case 12: + $s = 10; continue; + /* } else if (_1 === (6)) { */ case 6: + pc = i.Out; + /* goto Again */ $s = 1; continue; + $s = 10; continue; + /* } else if (_1 === (2)) { */ case 7: + /* */ if (((i.Arg >> 0)) < cap.$length) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (((i.Arg >> 0)) < cap.$length) { */ case 13: + opos = (x$5 = i.Arg, ((x$5 < 0 || x$5 >= cap.$length) ? ($throwRuntimeError("index out of range"), undefined) : cap.$array[cap.$offset + x$5])); + (x$6 = i.Arg, ((x$6 < 0 || x$6 >= cap.$length) ? ($throwRuntimeError("index out of range"), undefined) : cap.$array[cap.$offset + x$6] = pos)); + m.add(q, i.Out, pos, cap, cond, ptrType$5.nil); + (x$7 = i.Arg, ((x$7 < 0 || x$7 >= cap.$length) ? ($throwRuntimeError("index out of range"), undefined) : cap.$array[cap.$offset + x$7] = opos)); + $s = 15; continue; + /* } else { */ case 14: + pc = i.Out; + /* goto Again */ $s = 1; continue; /* } */ case 15: - target = Default(x.typ); - /* } */ case 11: - _r$2 = check.implicitTypeAndValue(x, target); /* */ $s = 17; case 17: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple = _r$2; - newType = _tuple[0]; - val = _tuple[1]; - code = _tuple[2]; - /* */ if (!((code === 0))) { $s = 18; continue; } - /* */ $s = 19; continue; - /* if (!((code === 0))) { */ case 18: - _r$3 = check.sprintf("cannot use %s as %s value in %s", new sliceType$6([x, target, new $String(context$1)])); /* */ $s = 20; case 20: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - msg$1 = _r$3; - _2 = code; - if (_2 === (43)) { - msg$1 = msg$1 + (" (truncated)"); - } else if (_2 === (44)) { - msg$1 = msg$1 + (" (overflows)"); + $s = 10; continue; + /* } else if ((_1 === (4)) || (_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10))) { */ case 8: + if (t === ptrType$5.nil) { + t = m.alloc(i); } else { - code = 23; + t.inst = i; } - $r = check.error(x, code, msg$1); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - $s = -1; return; - /* } */ case 19: - if (!($interfaceIsEqual(val, $ifaceNil))) { - x.val = val; - check.updateExprVal(x.expr, val); - } - /* */ if (!($interfaceIsEqual(newType, x.typ))) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if (!($interfaceIsEqual(newType, x.typ))) { */ case 22: - x.typ = newType; - $r = check.updateExprType(x.expr, newType, false); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 23: - /* } */ case 9: - _r$4 = under(x.typ); /* */ $s = 25; case 25: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _tuple$1 = $assertType(_r$4, ptrType$27, true); - sig = _tuple$1[0]; - /* */ if (!(sig === ptrType$27.nil) && sig.TypeParams().Len() > 0) { $s = 26; continue; } - /* */ $s = 27; continue; - /* if (!(sig === ptrType$27.nil) && sig.TypeParams().Len() > 0) { */ case 26: - $r = check.errorf(x, 137, "cannot use generic function %s without instantiation in %s", new sliceType$6([x, new $String(context$1)])); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 27: - if ($interfaceIsEqual(T, $ifaceNil)) { - $s = -1; return; + if (cap.$length > 0 && !((x$8 = t.cap, (0 >= x$8.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$8.$array, x$8.$offset + 0, ptrType$9))) === (0 >= cap.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(cap.$array, cap.$offset + 0, ptrType$9)))) { + $copySlice(t.cap, cap); + } + d.t = t; + t = ptrType$5.nil; + $s = 10; continue; + /* } else { */ case 9: + $panic(new $String("unhandled")); + /* } */ case 10: + case 2: + $s = -1; return t; + /* */ } return; } + }; + newOnePassMachine = function newOnePassMachine$1() { + var {_r, _tuple, m, ok, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = onePassPool.Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = $assertType(_r, ptrType$15, true); + m = _tuple[0]; + ok = _tuple[1]; + if (!ok) { + m = new onePassMachine.ptr(new inputs.ptr(new inputBytes.ptr(sliceType$4.nil), new inputString.ptr(""), new inputReader.ptr($ifaceNil, false, 0)), sliceType$7.nil); + } + $s = -1; return m; + /* */ } return; } var $f = {$blk: newOnePassMachine$1, $c: true, $r, _r, _tuple, m, ok, $s};return $f; + }; + freeOnePassMachine = function freeOnePassMachine$1(m) { + var m; + m.inputs.clear(); + onePassPool.Put(m); + }; + $ptrType(Regexp).prototype.doOnePass = function doOnePass(ir, ib, is, pos, ncap, dstCap) { + var {_1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _v, dstCap, flag, i, i$1, ib, inst, ir, is, m, matched, ncap, pc, pos, r, r1, re, startCond, width, width1, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r, $c} = $restore(this, {ir, ib, is, pos, ncap, dstCap}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + re = this; + startCond = re.cond; + if (startCond === 255) { + $s = -1; return sliceType$7.nil; + } + _r = newOnePassMachine(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + m = _r; + if (m.matchcap.$capacity < ncap) { + m.matchcap = $makeSlice(sliceType$7, ncap); + } else { + m.matchcap = $subslice(m.matchcap, 0, ncap); + } + matched = false; + _ref = m.matchcap; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + (x = m.matchcap, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i] = -1)); + _i++; + } + _tuple = m.inputs.init(ir, ib, is); + i$1 = _tuple[0]; + _tmp = -1; + _tmp$1 = -1; + r = _tmp; + r1 = _tmp$1; + _tmp$2 = 0; + _tmp$3 = 0; + width = _tmp$2; + width1 = _tmp$3; + _r$1 = i$1.step(pos); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + r = _tuple$1[0]; + width = _tuple$1[1]; + /* */ if (!((r === -1))) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!((r === -1))) { */ case 3: + _r$2 = i$1.step(pos + width >> 0); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$2 = _r$2; + r1 = _tuple$2[0]; + width1 = _tuple$2[1]; + /* } */ case 4: + flag = new lazyFlag(0, 0); + /* */ if (pos === 0) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (pos === 0) { */ case 6: + flag = newLazyFlag(-1, r); + $s = 8; continue; + /* } else { */ case 7: + _r$3 = i$1.context(pos); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + flag = _r$3; + /* } */ case 8: + pc = re.onepass.Start; + inst = (x$1 = re.onepass.Inst, ((pc < 0 || pc >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + pc, ptrType$11))); + if (!((pos === 0) && flag.match(((inst.Inst.Arg << 24 >>> 24))) && re.prefix.length > 0)) { _v = false; $s = 12; continue s; } + _r$4 = i$1.canCheckPrefix(); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _v = _r$4; case 12: + /* */ if (_v) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (_v) { */ case 10: + _r$5 = i$1.hasPrefix(re); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (!_r$5) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (!_r$5) { */ case 14: + /* goto Return */ $s = 17; continue; + /* } */ case 15: + pos = pos + (re.prefix.length) >> 0; + _r$6 = i$1.step(pos); /* */ $s = 18; case 18: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _tuple$3 = _r$6; + r = _tuple$3[0]; + width = _tuple$3[1]; + _r$7 = i$1.step(pos + width >> 0); /* */ $s = 19; case 19: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _tuple$4 = _r$7; + r1 = _tuple$4[0]; + width1 = _tuple$4[1]; + _r$8 = i$1.context(pos); /* */ $s = 20; case 20: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + flag = _r$8; + pc = ((re.prefixEnd >> 0)); + /* } */ case 11: + /* while (true) { */ case 21: + inst = (x$2 = re.onepass.Inst, ((pc < 0 || pc >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$2.$array, x$2.$offset + pc, ptrType$11))); + pc = ((inst.Inst.Out >> 0)); + _1 = inst.Inst.Op; + /* */ if (_1 === (4)) { $s = 24; continue; } + /* */ if (_1 === (7)) { $s = 25; continue; } + /* */ if (_1 === (8)) { $s = 26; continue; } + /* */ if (_1 === (9)) { $s = 27; continue; } + /* */ if (_1 === (10)) { $s = 28; continue; } + /* */ if ((_1 === (0)) || (_1 === (1))) { $s = 29; continue; } + /* */ if (_1 === (5)) { $s = 30; continue; } + /* */ if (_1 === (6)) { $s = 31; continue; } + /* */ if (_1 === (3)) { $s = 32; continue; } + /* */ if (_1 === (2)) { $s = 33; continue; } + /* */ $s = 34; continue; + /* if (_1 === (4)) { */ case 24: + matched = true; + if (m.matchcap.$length > 0) { + (x$3 = m.matchcap, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0] = 0)); + (x$4 = m.matchcap, (1 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 1] = pos)); + } + /* goto Return */ $s = 17; continue; + $s = 35; continue; + /* } else if (_1 === (7)) { */ case 25: + /* */ if (!inst.Inst.MatchRune(r)) { $s = 36; continue; } + /* */ $s = 37; continue; + /* if (!inst.Inst.MatchRune(r)) { */ case 36: + /* goto Return */ $s = 17; continue; + /* } */ case 37: + $s = 35; continue; + /* } else if (_1 === (8)) { */ case 26: + /* */ if (!((r === (x$5 = inst.Inst.Rune, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0]))))) { $s = 38; continue; } + /* */ $s = 39; continue; + /* if (!((r === (x$5 = inst.Inst.Rune, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0]))))) { */ case 38: + /* goto Return */ $s = 17; continue; + /* } */ case 39: + $s = 35; continue; + /* } else if (_1 === (9)) { */ case 27: + $s = 35; continue; + /* } else if (_1 === (10)) { */ case 28: + /* */ if (r === 10) { $s = 40; continue; } + /* */ $s = 41; continue; + /* if (r === 10) { */ case 40: + /* goto Return */ $s = 17; continue; + /* } */ case 41: + $s = 35; continue; + /* } else if ((_1 === (0)) || (_1 === (1))) { */ case 29: + pc = ((onePassNext(inst, r) >> 0)); + /* continue; */ $s = 21; continue; + $s = 35; continue; + /* } else if (_1 === (5)) { */ case 30: + /* goto Return */ $s = 17; continue; + $s = 35; continue; + /* } else if (_1 === (6)) { */ case 31: + /* continue; */ $s = 21; continue; + $s = 35; continue; + /* } else if (_1 === (3)) { */ case 32: + /* */ if (!flag.match(((inst.Inst.Arg << 24 >>> 24)))) { $s = 42; continue; } + /* */ $s = 43; continue; + /* if (!flag.match(((inst.Inst.Arg << 24 >>> 24)))) { */ case 42: + /* goto Return */ $s = 17; continue; + /* } */ case 43: + /* continue; */ $s = 21; continue; + $s = 35; continue; + /* } else if (_1 === (2)) { */ case 33: + if (((inst.Inst.Arg >> 0)) < m.matchcap.$length) { + (x$6 = m.matchcap, x$7 = inst.Inst.Arg, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7] = pos)); + } + /* continue; */ $s = 21; continue; + $s = 35; continue; + /* } else { */ case 34: + $panic(new $String("bad inst")); + /* } */ case 35: + case 23: + if (width === 0) { + /* break; */ $s = 22; continue; + } + flag = newLazyFlag(r, r1); + pos = pos + (width) >> 0; + _tmp$4 = r1; + _tmp$5 = width1; + r = _tmp$4; + width = _tmp$5; + /* */ if (!((r === -1))) { $s = 44; continue; } + /* */ $s = 45; continue; + /* if (!((r === -1))) { */ case 44: + _r$9 = i$1.step(pos + width >> 0); /* */ $s = 46; case 46: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _tuple$5 = _r$9; + r1 = _tuple$5[0]; + width1 = _tuple$5[1]; + /* } */ case 45: + $s = 21; continue; + case 22: + /* Return: */ case 17: + if (!matched) { + freeOnePassMachine(m); + $s = -1; return sliceType$7.nil; } - cause[0] = ""; - _r$5 = x.assignableTo(check, T, (cause.$ptr || (cause.$ptr = new ptrType$34(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, cause)))); /* */ $s = 29; case 29: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _tuple$2 = _r$5; - ok = _tuple$2[0]; - code$1 = _tuple$2[1]; - /* */ if (!ok) { $s = 30; continue; } - /* */ $s = 31; continue; - /* if (!ok) { */ case 30: - /* */ if (!(cause[0] === "")) { $s = 32; continue; } - /* */ $s = 33; continue; - /* if (!(cause[0] === "")) { */ case 32: - $r = check.errorf(x, code$1, "cannot use %s as %s value in %s: %s", new sliceType$6([x, T, new $String(context$1), new $String(cause[0])])); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 34; continue; - /* } else { */ case 33: - $r = check.errorf(x, code$1, "cannot use %s as %s value in %s", new sliceType$6([x, T, new $String(context$1)])); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 34: - x.mode = 0; - /* } */ case 31: - $s = -1; return; - /* */ } return; } var $f = {$blk: assignment, $c: true, $r, T, _1, _2, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, _tuple$2, _v, cause, check, code, code$1, context$1, msg$1, newType, ok, sig, target, val, x, $s};return $f; + dstCap = $appendSlice(dstCap, m.matchcap); + freeOnePassMachine(m); + $s = -1; return dstCap; + /* */ } return; } var $f = {$blk: doOnePass, $c: true, $r, _1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _v, dstCap, flag, i, i$1, ib, inst, ir, is, m, matched, ncap, pc, pos, r, r1, re, startCond, width, width1, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s};return $f; }; - $ptrType(Checker).prototype.initConst = function initConst(lhs, x) { - var {_r$1, check, lhs, x, $s, $r, $c} = $restore(this, {lhs, x}); + $ptrType(Regexp).prototype.doMatch = function doMatch(r, b, s) { + var {$24r, _r, b, r, re, s, $s, $r, $c} = $restore(this, {r, b, s}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - if ((x.mode === 0) || $interfaceIsEqual(x.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])) || $interfaceIsEqual(lhs.object.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { - if ($interfaceIsEqual(lhs.object.typ, $ifaceNil)) { - lhs.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - } - $s = -1; return; - } - /* */ if (!((x.mode === 4))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!((x.mode === 4))) { */ case 1: - $r = check.errorf(x, 13, "%s is not constant", new sliceType$6([x])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if ($interfaceIsEqual(lhs.object.typ, $ifaceNil)) { - lhs.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - } - $s = -1; return; - /* } */ case 2: - _r$1 = isConstType(x.typ); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $r = assert(_r$1); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if ($interfaceIsEqual(lhs.object.typ, $ifaceNil)) { - lhs.object.typ = x.typ; - } - $r = check.assignment(x, lhs.object.typ, "constant declaration"); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x.mode === 0) { - $s = -1; return; - } - lhs.val = x.val; - $s = -1; return; - /* */ } return; } var $f = {$blk: initConst, $c: true, $r, _r$1, check, lhs, x, $s};return $f; + re = this; + _r = re.doExecute(r, b, s, 0, 0, sliceType$7.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = !(_r === sliceType$7.nil); + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: doMatch, $c: true, $r, $24r, _r, b, r, re, s, $s};return $f; }; - $ptrType(Checker).prototype.initVar = function initVar(lhs, x, context$1) { - var {check, context$1, lhs, typ$4, x, $s, $r, $c} = $restore(this, {lhs, x, context$1}); + $ptrType(Regexp).prototype.doExecute = function doExecute(r, b, s, pos, ncap, dstCap) { + var {$24r, $24r$1, _r, _r$1, _r$2, _r$3, _tuple, b, dstCap, i, m, ncap, pos, r, re, s, $s, $r, $c} = $restore(this, {r, b, s, pos, ncap, dstCap}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - if ((x.mode === 0) || $interfaceIsEqual(x.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])) || $interfaceIsEqual(lhs.object.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { - if ($interfaceIsEqual(lhs.object.typ, $ifaceNil)) { - lhs.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - } - $s = -1; return $ifaceNil; + re = this; + if (dstCap === sliceType$7.nil) { + dstCap = $subslice(new sliceType$7(arrayNoInts), 0, 0, 0); } - /* */ if ($interfaceIsEqual(lhs.object.typ, $ifaceNil)) { $s = 1; continue; } + if ($interfaceIsEqual(r, $ifaceNil) && (b.$length + s.length >> 0) < re.minInputLen) { + $s = -1; return sliceType$7.nil; + } + /* */ if (!(re.onepass === ptrType$2.nil)) { $s = 1; continue; } /* */ $s = 2; continue; - /* if ($interfaceIsEqual(lhs.object.typ, $ifaceNil)) { */ case 1: - typ$4 = x.typ; - /* */ if (isUntyped(typ$4)) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (isUntyped(typ$4)) { */ case 3: - /* */ if ($interfaceIsEqual(typ$4, (25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25]))) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if ($interfaceIsEqual(typ$4, (25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25]))) { */ case 5: - $r = check.errorf(x, 16, "use of untyped nil in %s", new sliceType$6([new $String(context$1)])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - lhs.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - $s = -1; return $ifaceNil; - /* } */ case 6: - typ$4 = Default(typ$4); - /* } */ case 4: - lhs.object.typ = typ$4; + /* if (!(re.onepass === ptrType$2.nil)) { */ case 1: + _r = re.doOnePass(r, b, s, pos, ncap, dstCap); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; /* } */ case 2: - $r = check.assignment(x, lhs.object.typ, context$1); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x.mode === 0) { - $s = -1; return $ifaceNil; - } - $s = -1; return x.typ; - /* */ } return; } var $f = {$blk: initVar, $c: true, $r, check, context$1, lhs, typ$4, x, $s};return $f; + /* */ if ($interfaceIsEqual(r, $ifaceNil) && (b.$length + s.length >> 0) < re.maxBitStateLen) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if ($interfaceIsEqual(r, $ifaceNil) && (b.$length + s.length >> 0) < re.maxBitStateLen) { */ case 5: + _r$1 = re.backtrack(b, s, pos, ncap, dstCap); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r$1 = _r$1; + $s = 8; case 8: return $24r$1; + /* } */ case 6: + _r$2 = re.get(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + m = _r$2; + _tuple = m.inputs.init(r, b, s); + i = _tuple[0]; + m.init(ncap); + _r$3 = m.match(i, pos); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!_r$3) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (!_r$3) { */ case 10: + re.put(m); + $s = -1; return sliceType$7.nil; + /* } */ case 11: + dstCap = $appendSlice(dstCap, m.matchcap); + re.put(m); + $s = -1; return dstCap; + /* */ } return; } var $f = {$blk: doExecute, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _r$3, _tuple, b, dstCap, i, m, ncap, pos, r, re, s, $s};return $f; }; - $ptrType(Checker).prototype.assignVar = function assignVar(lhs, x) { - var {_1, _arg, _arg$1, _r$1, _r$2, _tuple, _tuple$1, _tuple$2, check, ident$1, lhs, obj, ok, op$1, sel, v, v_used, w, x, z, $s, $r, $c} = $restore(this, {lhs, x}); + newBitState = function newBitState$1() { + var {_r, _tuple, b, ok, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - op$1 = [op$1]; - z = [z]; - check = this; - /* */ if ((x.mode === 0) || $interfaceIsEqual(x.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if ((x.mode === 0) || $interfaceIsEqual(x.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { */ case 1: - $r = check.useLHS(new sliceType$11([lhs])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return $ifaceNil; - /* } */ case 2: - _tuple = $assertType(unparen(lhs), ptrType$30, true); - ident$1 = _tuple[0]; - /* */ if (!(ident$1 === ptrType$30.nil) && ident$1.Name === "_") { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (!(ident$1 === ptrType$30.nil) && ident$1.Name === "_") { */ case 4: - $r = check.recordDef(ident$1, $ifaceNil); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.assignment(x, $ifaceNil, "assignment to _ identifier"); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x.mode === 0) { - $s = -1; return $ifaceNil; - } - $s = -1; return x.typ; - /* } */ case 5: - v = ptrType$16.nil; - v_used = false; - /* */ if (!(ident$1 === ptrType$30.nil)) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (!(ident$1 === ptrType$30.nil)) { */ case 8: - _r$1 = check.environment.lookup(ident$1.Name); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - obj = _r$1; - if (!($interfaceIsEqual(obj, $ifaceNil))) { - _tuple$1 = $assertType(obj, ptrType$16, true); - w = _tuple$1[0]; - if (!(w === ptrType$16.nil) && w.object.pkg === check.pkg) { - v = w; - v_used = v.used; - } - } - /* } */ case 9: - z[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = check.expr(z[0], lhs); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (!(v === ptrType$16.nil)) { - v.used = v_used; - } - if ((z[0].mode === 0) || $interfaceIsEqual(z[0].typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { - $s = -1; return $ifaceNil; - } - _1 = z[0].mode; - /* */ if (_1 === (0)) { $s = 13; continue; } - /* */ if ((_1 === (5)) || (_1 === (6))) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (_1 === (0)) { */ case 13: - $s = -1; return $ifaceNil; - /* } else if ((_1 === (5)) || (_1 === (6))) { */ case 14: - $s = 16; continue; - /* } else { */ case 15: - _tuple$2 = $assertType(z[0].expr, ptrType$36, true); - sel = _tuple$2[0]; - ok = _tuple$2[1]; - /* */ if (ok) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (ok) { */ case 17: - op$1[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = check.expr(op$1[0], sel.X); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (op$1[0].mode === 6) { $s = 20; continue; } - /* */ $s = 21; continue; - /* if (op$1[0].mode === 6) { */ case 20: - _arg = z[0]; - _r$2 = ExprString(z[0].expr); /* */ $s = 22; case 22: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _arg$1 = new $String(_r$2); - $r = check.errorf(_arg, 24, "cannot assign to struct field %s in map", new sliceType$6([_arg$1])); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return $ifaceNil; - /* } */ case 21: - /* } */ case 18: - $r = check.errorf(z[0], 18, "cannot assign to %s", new sliceType$6([z[0]])); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return $ifaceNil; - /* } */ case 16: - case 12: - $r = check.assignment(x, z[0].typ, "assignment"); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x.mode === 0) { - $s = -1; return $ifaceNil; + _r = bitStatePool.Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = $assertType(_r, ptrType$16, true); + b = _tuple[0]; + ok = _tuple[1]; + if (!ok) { + b = new bitState.ptr(0, sliceType$7.nil, sliceType$7.nil, sliceType$15.nil, sliceType$2.nil, new inputs.ptr(new inputBytes.ptr(sliceType$4.nil), new inputString.ptr(""), new inputReader.ptr($ifaceNil, false, 0))); } - $s = -1; return x.typ; - /* */ } return; } var $f = {$blk: assignVar, $c: true, $r, _1, _arg, _arg$1, _r$1, _r$2, _tuple, _tuple$1, _tuple$2, check, ident$1, lhs, obj, ok, op$1, sel, v, v_used, w, x, z, $s};return $f; + $s = -1; return b; + /* */ } return; } var $f = {$blk: newBitState$1, $c: true, $r, _r, _tuple, b, ok, $s};return $f; }; - operandTypes = function operandTypes$1(list$2) { - var _i, _ref, list$2, res, x; - res = sliceType$2.nil; - _ref = list$2; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - res = $append(res, x.typ); - _i++; - } - res = res; - return res; + freeBitState = function freeBitState$1(b) { + var b; + b.inputs.clear(); + bitStatePool.Put(b); }; - varTypes = function varTypes$1(list$2) { - var _i, _ref, list$2, res, x; - res = sliceType$2.nil; - _ref = list$2; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - res = $append(res, x.object.typ); - _i++; + maxBitStateLen = function maxBitStateLen$1(prog) { + var _q, prog; + if (!shouldBacktrack(prog)) { + return 0; } - res = res; - return res; + return (_q = 262144 / prog.Inst.$length, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); }; - $ptrType(Checker).prototype.typesSummary = function typesSummary(list$2, variadic) { - var {_i, _r$1, _r$2, _r$3, _ref, check, i, list$2, res, s, t, variadic, $s, $r, $c} = $restore(this, {list$2, variadic}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - res = sliceType$5.nil; - _ref = list$2; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - s = ""; - /* */ if ($interfaceIsEqual(t, $ifaceNil)) { $s = 4; continue; } - /* */ if ($interfaceIsEqual(t, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { $s = 5; continue; } - /* */ if (isUntyped(t)) { $s = 6; continue; } - /* */ if (variadic && (i === (list$2.$length - 1 >> 0))) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if ($interfaceIsEqual(t, $ifaceNil)) { */ case 4: - s = ""; - $s = 8; continue; - /* } else if ($interfaceIsEqual(t, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { */ case 5: - s = ""; - $s = 8; continue; - /* } else if (isUntyped(t)) { */ case 6: - _r$1 = isNumeric(t); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (_r$1) { */ case 9: - s = "number"; - $s = 11; continue; - /* } else { */ case 10: - s = strings.Replace($assertType(t, ptrType$8).name, "untyped ", "", -1); - /* } */ case 11: - $s = 8; continue; - /* } else if (variadic && (i === (list$2.$length - 1 >> 0))) { */ case 7: - _r$2 = check.sprintf("...%s", new sliceType$6([$assertType(t, ptrType$25).elem])); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - s = _r$2; - /* } */ case 8: - case 3: - /* */ if (s === "") { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (s === "") { */ case 14: - _r$3 = check.sprintf("%s", new sliceType$6([t])); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - s = _r$3; - /* } */ case 15: - res = $append(res, s); - _i++; - $s = 1; continue; - case 2: - $s = -1; return "(" + strings.Join(res, ", ") + ")"; - /* */ } return; } var $f = {$blk: typesSummary, $c: true, $r, _i, _r$1, _r$2, _r$3, _ref, check, i, list$2, res, s, t, variadic, $s};return $f; + shouldBacktrack = function shouldBacktrack$1(prog) { + var prog; + return prog.Inst.$length <= 500; }; - measure = function measure$1(x, unit) { - var {$24r, _r$1, unit, x, $s, $r, $c} = $restore(this, {x, unit}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (!((x === 1))) { - unit = unit + ("s"); + $ptrType(bitState).prototype.reset = function reset(prog, end, ncap) { + var _i, _i$1, _i$2, _q, _ref, _ref$1, _ref$2, b, end, i, i$1, i$2, ncap, prog, visitedSize, x, x$1, x$2; + b = this; + b.end = end; + if (b.jobs.$capacity === 0) { + b.jobs = $makeSlice(sliceType$15, 0, 256); + } else { + b.jobs = $subslice(b.jobs, 0, 0); } - _r$1 = fmt.Sprintf("%d %s", new sliceType$6([new $Int(x), new $String(unit)])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: measure$1, $c: true, $r, $24r, _r$1, unit, x, $s};return $f; - }; - $ptrType(Checker).prototype.assignError = function assignError(rhs, nvars, nvals) { - var {_r$1, _r$2, _tuple, call, check, nvals, nvars, rhs, rhs0, vals, vars, $s, $r, $c} = $restore(this, {rhs, nvars, nvals}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = measure(nvars, "variable"); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - vars = _r$1; - _r$2 = measure(nvals, "value"); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - vals = _r$2; - rhs0 = (0 >= rhs.$length ? ($throwRuntimeError("index out of range"), undefined) : rhs.$array[rhs.$offset + 0]); - /* */ if (rhs.$length === 1) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (rhs.$length === 1) { */ case 3: - _tuple = $assertType(unparen(rhs0), ptrType$86, true); - call = _tuple[0]; - /* */ if (!(call === ptrType$86.nil)) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (!(call === ptrType$86.nil)) { */ case 5: - $r = check.errorf(rhs0, 17, "assignment mismatch: %s but %s returns %s", new sliceType$6([new $String(vars), call.Fun, new $String(vals)])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 6: - /* } */ case 4: - $r = check.errorf(rhs0, 17, "assignment mismatch: %s but %s", new sliceType$6([new $String(vars), new $String(vals)])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: assignError, $c: true, $r, _r$1, _r$2, _tuple, call, check, nvals, nvars, rhs, rhs0, vals, vars, $s};return $f; - }; - $ptrType(Checker).prototype.initVars = function initVars(lhs, origRHS, returnStmt) { - var {_arg, _arg$1, _i, _i$1, _i$2, _i$3, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _ref$2, _ref$3, _tuple, a, at$1, check, commaOk, context$1, err, i, i$1, lhs, lhs$1, obj, origRHS, qualifier$1, returnStmt, rhs, x, x$1, x$2, $s, $r, $c} = $restore(this, {lhs, origRHS, returnStmt}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = check.exprList(origRHS, (lhs.$length === 2) && $interfaceIsEqual(returnStmt, $ifaceNil)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - rhs = _tuple[0]; - commaOk = _tuple[1]; - /* */ if (!((lhs.$length === rhs.$length))) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!((lhs.$length === rhs.$length))) { */ case 2: - _ref = lhs; + visitedSize = (_q = (((($imul(prog.Inst.$length, ((end + 1 >> 0)))) + 32 >> 0) - 1 >> 0)) / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + if (b.visited.$capacity < visitedSize) { + b.visited = $makeSlice(sliceType$2, visitedSize, 8192); + } else { + b.visited = $subslice(b.visited, 0, visitedSize); + _ref = b.visited; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } - obj = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - obj.used = true; - if ($interfaceIsEqual(obj.object.typ, $ifaceNil)) { - obj.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - } + i = _i; + (x = b.visited, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i] = 0)); _i++; } - _ref$1 = rhs; - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - x = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - if (x.mode === 0) { - $s = -1; return; - } - _i$1++; - } - /* */ if (!($interfaceIsEqual(returnStmt, $ifaceNil))) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (!($interfaceIsEqual(returnStmt, $ifaceNil))) { */ case 4: - at$1 = returnStmt; - qualifier$1 = "not enough"; - if (rhs.$length > lhs.$length) { - at$1 = (x$1 = lhs.$length, ((x$1 < 0 || x$1 >= rhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : rhs.$array[rhs.$offset + x$1])).expr; - qualifier$1 = "too many"; - } else if (rhs.$length > 0) { - at$1 = (x$2 = rhs.$length - 1 >> 0, ((x$2 < 0 || x$2 >= rhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : rhs.$array[rhs.$offset + x$2])).expr; - } - err = newErrorf(at$1, 103, "%s return values", new sliceType$6([new $String(qualifier$1)])); - _r$2 = check.typesSummary(operandTypes(rhs), false); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _arg = new $String(_r$2); - $r = err.errorf(0, "have %s", new sliceType$6([_arg])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$3 = check.typesSummary(varTypes(lhs), false); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _arg$1 = new $String(_r$3); - $r = err.errorf(0, "want %s", new sliceType$6([_arg$1])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.report(err); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 5: - $r = check.assignError(origRHS, lhs.$length, rhs.$length); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 3: - context$1 = "assignment"; - if (!($interfaceIsEqual(returnStmt, $ifaceNil))) { - context$1 = "return statement"; } - /* */ if (commaOk) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (commaOk) { */ case 12: - a = arrayType$3.zero(); - _ref$2 = a; - _i$2 = 0; - /* while (true) { */ case 14: - /* if (!(_i$2 < 2)) { break; } */ if(!(_i$2 < 2)) { $s = 15; continue; } - i = _i$2; - _r$4 = check.initVar(((i < 0 || i >= lhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : lhs.$array[lhs.$offset + i]), ((i < 0 || i >= rhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : rhs.$array[rhs.$offset + i]), context$1); /* */ $s = 16; case 16: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = _r$4); - _i$2++; - $s = 14; continue; - case 15: - $r = check.recordCommaOkTypes((0 >= origRHS.$length ? ($throwRuntimeError("index out of range"), undefined) : origRHS.$array[origRHS.$offset + 0]), $clone(a, arrayType$3)); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 13: - _ref$3 = lhs; - _i$3 = 0; - /* while (true) { */ case 18: - /* if (!(_i$3 < _ref$3.$length)) { break; } */ if(!(_i$3 < _ref$3.$length)) { $s = 19; continue; } - i$1 = _i$3; - lhs$1 = ((_i$3 < 0 || _i$3 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$3]); - _r$5 = check.initVar(lhs$1, ((i$1 < 0 || i$1 >= rhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : rhs.$array[rhs.$offset + i$1]), context$1); /* */ $s = 20; case 20: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$5; - _i$3++; - $s = 18; continue; - case 19: - $s = -1; return; - /* */ } return; } var $f = {$blk: initVars, $c: true, $r, _arg, _arg$1, _i, _i$1, _i$2, _i$3, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _ref$2, _ref$3, _tuple, a, at$1, check, commaOk, context$1, err, i, i$1, lhs, lhs$1, obj, origRHS, qualifier$1, returnStmt, rhs, x, x$1, x$2, $s};return $f; - }; - $ptrType(Checker).prototype.assignVars = function assignVars(lhs, origRHS) { - var {_i, _i$1, _i$2, _r$1, _r$2, _r$3, _ref, _ref$1, _ref$2, _tuple, a, check, commaOk, i, i$1, lhs, lhs$1, origRHS, rhs, x, $s, $r, $c} = $restore(this, {lhs, origRHS}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = check.exprList(origRHS, lhs.$length === 2); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - rhs = _tuple[0]; - commaOk = _tuple[1]; - /* */ if (!((lhs.$length === rhs.$length))) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!((lhs.$length === rhs.$length))) { */ case 2: - $r = check.useLHS(lhs); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _ref = rhs; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (x.mode === 0) { - $s = -1; return; - } - _i++; - } - $r = check.assignError(origRHS, lhs.$length, rhs.$length); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 3: - /* */ if (commaOk) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (commaOk) { */ case 6: - a = arrayType$3.zero(); - _ref$1 = a; - _i$1 = 0; - /* while (true) { */ case 8: - /* if (!(_i$1 < 2)) { break; } */ if(!(_i$1 < 2)) { $s = 9; continue; } - i = _i$1; - _r$2 = check.assignVar(((i < 0 || i >= lhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : lhs.$array[lhs.$offset + i]), ((i < 0 || i >= rhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : rhs.$array[rhs.$offset + i])); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = _r$2); - _i$1++; - $s = 8; continue; - case 9: - $r = check.recordCommaOkTypes((0 >= origRHS.$length ? ($throwRuntimeError("index out of range"), undefined) : origRHS.$array[origRHS.$offset + 0]), $clone(a, arrayType$3)); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 7: - _ref$2 = lhs; + if (b.cap.$capacity < ncap) { + b.cap = $makeSlice(sliceType$7, ncap); + } else { + b.cap = $subslice(b.cap, 0, ncap); + } + _ref$1 = b.cap; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i$1 = _i$1; + (x$1 = b.cap, ((i$1 < 0 || i$1 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$1] = -1)); + _i$1++; + } + if (b.matchcap.$capacity < ncap) { + b.matchcap = $makeSlice(sliceType$7, ncap); + } else { + b.matchcap = $subslice(b.matchcap, 0, ncap); + } + _ref$2 = b.matchcap; _i$2 = 0; - /* while (true) { */ case 12: - /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 13; continue; } - i$1 = _i$2; - lhs$1 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); - _r$3 = check.assignVar(lhs$1, ((i$1 < 0 || i$1 >= rhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : rhs.$array[rhs.$offset + i$1])); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$3; + while (true) { + if (!(_i$2 < _ref$2.$length)) { break; } + i$2 = _i$2; + (x$2 = b.matchcap, ((i$2 < 0 || i$2 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$2] = -1)); _i$2++; - $s = 12; continue; - case 13: - $s = -1; return; - /* */ } return; } var $f = {$blk: assignVars, $c: true, $r, _i, _i$1, _i$2, _r$1, _r$2, _r$3, _ref, _ref$1, _ref$2, _tuple, a, check, commaOk, i, i$1, lhs, lhs$1, origRHS, rhs, x, $s};return $f; + } }; - $ptrType(Checker).prototype.shortVarDecl = function shortVarDecl(pos$1, lhs, rhs) { - var {_entry, _i, _i$1, _i$2, _key, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _ref$2, _tuple, _tuple$1, alt, check, hasErr, i, i$1, ident$1, lhs, lhs$1, lhsVars, name, newVars, obj, obj$1, obj$2, obj$3, pos$1, rhs, scope, scopePos$2, seen, top, x, x$1, $s, $r, $c} = $restore(this, {pos$1, lhs, rhs}); + $ptrType(bitState).prototype.shouldVisit = function shouldVisit(pc, pos) { + var _index, _q, _q$1, b, n, pc, pos, x, x$1, x$2, x$3, y, y$1; + b = this; + n = (((($imul(((pc >> 0)), ((b.end + 1 >> 0)))) + pos >> 0) >>> 0)); + if (!(((((x = b.visited, x$1 = (_q = n / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")), ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])) & (((y = (((n & 31) >>> 0)), y < 32 ? (1 << y) : 0) >>> 0))) >>> 0) === 0))) { + return false; + } + _index = (_q$1 = n / 32, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero")); + (x$3 = b.visited, ((_index < 0 || _index >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + _index] = (((x$2 = b.visited, ((_index < 0 || _index >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + _index])) | (((y$1 = (((n & 31) >>> 0)), y$1 < 32 ? (1 << y$1) : 0) >>> 0))) >>> 0))); + return true; + }; + $ptrType(bitState).prototype.push = function push(re, pc, pos, arg) { + var arg, b, pc, pos, re, x; + b = this; + if (!(((x = re.prog.Inst, ((pc < 0 || pc >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pc])).Op === 5)) && (arg || b.shouldVisit(pc, pos))) { + b.jobs = $append(b.jobs, new job.ptr(pc, arg, pos)); + } + }; + $ptrType(Regexp).prototype.tryBacktrack = function tryBacktrack(b, i, pc, pos) { + var {_1, _2, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, _tuple$2, _tuple$3, arg, b, flag, i, inst, l, longest, old, pc, pc$1, pos, pos$1, r, r$1, r$2, r$3, re, width, width$1, width$2, width$3, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {b, i, pc, pos}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - top = check.delayed.$length; - scope = check.environment.scope; - seen = (x = lhs.$length, ((x < 0 || x > 2147483647) ? $throwRuntimeError("makemap: size out of range") : new $global.Map())); - lhsVars = $makeSlice(sliceType$10, lhs.$length); - newVars = $makeSlice(sliceType$10, 0, lhs.$length); - hasErr = false; - _ref = lhs; - _i = 0; + re = this; + longest = re.longest; + b.push(re, pc, pos, false); /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - lhs$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _tuple = $assertType(lhs$1, ptrType$30, true); - ident$1 = _tuple[0]; - /* */ if (ident$1 === ptrType$30.nil) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (ident$1 === ptrType$30.nil) { */ case 3: - $r = check.useLHS(new sliceType$11([lhs$1])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.errorf(lhs$1, 131, "non-name %s on left side of :=", new sliceType$6([lhs$1])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - hasErr = true; - _i++; + /* if (!(b.jobs.$length > 0)) { break; } */ if(!(b.jobs.$length > 0)) { $s = 2; continue; } + l = b.jobs.$length - 1 >> 0; + pc$1 = (x = b.jobs, ((l < 0 || l >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + l])).pc; + pos$1 = (x$1 = b.jobs, ((l < 0 || l >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + l])).pos; + arg = (x$2 = b.jobs, ((l < 0 || l >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + l])).arg; + b.jobs = $subslice(b.jobs, 0, l); + /* goto Skip */ $s = 3; continue; + /* CheckAndLoop: */ case 4: + if (!b.shouldVisit(pc$1, pos$1)) { /* continue; */ $s = 1; continue; - /* } */ case 4: - name = ident$1.Name; - /* */ if (!(name === "_")) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (!(name === "_")) { */ case 7: - /* */ if ((_entry = $mapIndex(seen,$String.keyFor(name)), _entry !== undefined ? _entry.v : false)) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if ((_entry = $mapIndex(seen,$String.keyFor(name)), _entry !== undefined ? _entry.v : false)) { */ case 9: - $r = check.errorf(lhs$1, 132, "%s repeated on left side of :=", new sliceType$6([lhs$1])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - hasErr = true; - _i++; - /* continue; */ $s = 1; continue; - /* } */ case 10: - _key = name; (seen || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: true }); - /* } */ case 8: - _r$1 = scope.Lookup(name); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - alt = _r$1; - /* */ if (!($interfaceIsEqual(alt, $ifaceNil))) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (!($interfaceIsEqual(alt, $ifaceNil))) { */ case 13: - $r = check.recordUse(ident$1, alt); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _tuple$1 = $assertType(alt, ptrType$16, true); - obj = _tuple$1[0]; - /* */ if (!(obj === ptrType$16.nil)) { $s = 16; continue; } + } + /* Skip: */ case 3: + inst = (x$3 = re.prog.Inst, ((pc$1 < 0 || pc$1 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$3.$array, x$3.$offset + pc$1, ptrType$6))); + _1 = inst.Op; + /* */ if (_1 === (5)) { $s = 6; continue; } + /* */ if (_1 === (0)) { $s = 7; continue; } + /* */ if (_1 === (1)) { $s = 8; continue; } + /* */ if (_1 === (7)) { $s = 9; continue; } + /* */ if (_1 === (8)) { $s = 10; continue; } + /* */ if (_1 === (10)) { $s = 11; continue; } + /* */ if (_1 === (9)) { $s = 12; continue; } + /* */ if (_1 === (2)) { $s = 13; continue; } + /* */ if (_1 === (3)) { $s = 14; continue; } + /* */ if (_1 === (6)) { $s = 15; continue; } + /* */ if (_1 === (4)) { $s = 16; continue; } /* */ $s = 17; continue; - /* if (!(obj === ptrType$16.nil)) { */ case 16: - ((i < 0 || i >= lhsVars.$length) ? ($throwRuntimeError("index out of range"), undefined) : lhsVars.$array[lhsVars.$offset + i] = obj); + /* if (_1 === (5)) { */ case 6: + $panic(new $String("unexpected InstFail")); + $s = 18; continue; + /* } else if (_1 === (0)) { */ case 7: + /* */ if (arg) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (arg) { */ case 19: + arg = false; + pc$1 = inst.Arg; + /* goto CheckAndLoop */ $s = 4; continue; + $s = 21; continue; + /* } else { */ case 20: + b.push(re, pc$1, pos$1, true); + pc$1 = inst.Out; + /* goto CheckAndLoop */ $s = 4; continue; + /* } */ case 21: + $s = 18; continue; + /* } else if (_1 === (1)) { */ case 8: + _2 = (x$4 = re.prog.Inst, x$5 = inst.Out, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])).Op; + /* */ if ((_2 === (7)) || (_2 === (8)) || (_2 === (9)) || (_2 === (10))) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if ((_2 === (7)) || (_2 === (8)) || (_2 === (9)) || (_2 === (10))) { */ case 23: + b.push(re, inst.Arg, pos$1, false); + pc$1 = inst.Arg; + pos$1 = b.end; + /* goto CheckAndLoop */ $s = 4; continue; + /* } */ case 24: + case 22: + b.push(re, inst.Out, b.end, false); + pc$1 = inst.Out; + /* goto CheckAndLoop */ $s = 4; continue; + $s = 18; continue; + /* } else if (_1 === (7)) { */ case 9: + _r = i.step(pos$1); /* */ $s = 25; case 25: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + r = _tuple[0]; + width = _tuple[1]; + if (!inst.MatchRune(r)) { + /* continue; */ $s = 1; continue; + } + pos$1 = pos$1 + (width) >> 0; + pc$1 = inst.Out; + /* goto CheckAndLoop */ $s = 4; continue; + $s = 18; continue; + /* } else if (_1 === (8)) { */ case 10: + _r$1 = i.step(pos$1); /* */ $s = 26; case 26: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + r$1 = _tuple$1[0]; + width$1 = _tuple$1[1]; + if (!((r$1 === (x$6 = inst.Rune, (0 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + 0]))))) { + /* continue; */ $s = 1; continue; + } + pos$1 = pos$1 + (width$1) >> 0; + pc$1 = inst.Out; + /* goto CheckAndLoop */ $s = 4; continue; + $s = 18; continue; + /* } else if (_1 === (10)) { */ case 11: + _r$2 = i.step(pos$1); /* */ $s = 27; case 27: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$2 = _r$2; + r$2 = _tuple$2[0]; + width$2 = _tuple$2[1]; + if ((r$2 === 10) || (r$2 === -1)) { + /* continue; */ $s = 1; continue; + } + pos$1 = pos$1 + (width$2) >> 0; + pc$1 = inst.Out; + /* goto CheckAndLoop */ $s = 4; continue; + $s = 18; continue; + /* } else if (_1 === (9)) { */ case 12: + _r$3 = i.step(pos$1); /* */ $s = 28; case 28: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$3 = _r$3; + r$3 = _tuple$3[0]; + width$3 = _tuple$3[1]; + if (r$3 === -1) { + /* continue; */ $s = 1; continue; + } + pos$1 = pos$1 + (width$3) >> 0; + pc$1 = inst.Out; + /* goto CheckAndLoop */ $s = 4; continue; + $s = 18; continue; + /* } else if (_1 === (2)) { */ case 13: + /* */ if (arg) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if (arg) { */ case 29: + (x$7 = b.cap, x$8 = inst.Arg, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8] = pos$1)); + /* continue; */ $s = 1; continue; + $s = 31; continue; + /* } else { */ case 30: + if (inst.Arg < ((b.cap.$length >>> 0))) { + b.push(re, pc$1, (x$9 = b.cap, x$10 = inst.Arg, ((x$10 < 0 || x$10 >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + x$10])), true); + (x$11 = b.cap, x$12 = inst.Arg, ((x$12 < 0 || x$12 >= x$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + x$12] = pos$1)); + } + pc$1 = inst.Out; + /* goto CheckAndLoop */ $s = 4; continue; + /* } */ case 31: + $s = 18; continue; + /* } else if (_1 === (3)) { */ case 14: + _r$4 = i.context(pos$1); /* */ $s = 32; case 32: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + flag = _r$4; + if (!flag.match(((inst.Arg << 24 >>> 24)))) { + /* continue; */ $s = 1; continue; + } + pc$1 = inst.Out; + /* goto CheckAndLoop */ $s = 4; continue; + $s = 18; continue; + /* } else if (_1 === (6)) { */ case 15: + pc$1 = inst.Out; + /* goto CheckAndLoop */ $s = 4; continue; + $s = 18; continue; + /* } else if (_1 === (4)) { */ case 16: + if (b.cap.$length === 0) { + $s = -1; return true; + } + if (b.cap.$length > 1) { + (x$13 = b.cap, (1 >= x$13.$length ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + 1] = pos$1)); + } + old = (x$14 = b.matchcap, (1 >= x$14.$length ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + 1])); + if ((old === -1) || (longest && pos$1 > 0 && pos$1 > old)) { + $copySlice(b.matchcap, b.cap); + } + if (!longest) { + $s = -1; return true; + } + if (pos$1 === b.end) { + $s = -1; return true; + } + /* continue; */ $s = 1; continue; $s = 18; continue; /* } else { */ case 17: - $r = check.errorf(lhs$1, 18, "cannot assign to %s", new sliceType$6([lhs$1])); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - hasErr = true; + $panic(new $String("bad inst")); /* } */ case 18: - _i++; - /* continue; */ $s = 1; continue; - /* } */ case 14: - obj$1 = NewVar(ident$1.Pos(), check.pkg, name, $ifaceNil); - ((i < 0 || i >= lhsVars.$length) ? ($throwRuntimeError("index out of range"), undefined) : lhsVars.$array[lhsVars.$offset + i] = obj$1); - if (!(name === "_")) { - newVars = $append(newVars, obj$1); - } - $r = check.recordDef(ident$1, obj$1); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; + case 5: $s = 1; continue; case 2: - _ref$1 = lhsVars; - _i$1 = 0; - /* while (true) { */ case 21: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 22; continue; } - i$1 = _i$1; - obj$2 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - /* */ if (obj$2 === ptrType$16.nil) { $s = 23; continue; } - /* */ $s = 24; continue; - /* if (obj$2 === ptrType$16.nil) { */ case 23: - _r$2 = ((i$1 < 0 || i$1 >= lhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : lhs.$array[lhs.$offset + i$1]).Pos(); /* */ $s = 25; case 25: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = NewVar(_r$2, check.pkg, "_", $ifaceNil); /* */ $s = 26; case 26: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - ((i$1 < 0 || i$1 >= lhsVars.$length) ? ($throwRuntimeError("index out of range"), undefined) : lhsVars.$array[lhsVars.$offset + i$1] = _r$3); - /* } */ case 24: - _i$1++; - $s = 21; continue; - case 22: - $r = check.initVars(lhsVars, rhs, $ifaceNil); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.processDelayed(top); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if ((newVars.$length === 0) && !hasErr) { $s = 29; continue; } - /* */ $s = 30; continue; - /* if ((newVars.$length === 0) && !hasErr) { */ case 29: - $r = check.softErrorf(pos$1, 19, "no new variables on left side of :=", sliceType$6.nil); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 30: - _r$4 = (x$1 = rhs.$length - 1 >> 0, ((x$1 < 0 || x$1 >= rhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : rhs.$array[rhs.$offset + x$1])).End(); /* */ $s = 32; case 32: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - scopePos$2 = _r$4; - _ref$2 = newVars; - _i$2 = 0; - /* while (true) { */ case 33: - /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 34; continue; } - obj$3 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); - $r = check.declare(scope, ptrType$30.nil, obj$3, scopePos$2); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$2++; - $s = 33; continue; - case 34: - $s = -1; return; - /* */ } return; } var $f = {$blk: shortVarDecl, $c: true, $r, _entry, _i, _i$1, _i$2, _key, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _ref$2, _tuple, _tuple$1, alt, check, hasErr, i, i$1, ident$1, lhs, lhs$1, lhsVars, name, newVars, obj, obj$1, obj$2, obj$3, pos$1, rhs, scope, scopePos$2, seen, top, x, x$1, $s};return $f; - }; - NewArray = function NewArray$1(elem, len) { - var elem, len; - return new Array.ptr(len, elem); - }; - $pkg.NewArray = NewArray; - $ptrType(Array).prototype.Len = function Len$9() { - var a; - a = this; - return a.len; - }; - $ptrType(Array).prototype.Elem = function Elem$4() { - var a; - a = this; - return a.elem; - }; - $ptrType(Array).prototype.Underlying = function Underlying$12() { - var t; - t = this; - return t; - }; - $ptrType(Array).prototype.String = function String$34() { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = TypeString(t, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$34, $c: true, $r, $24r, _r$1, t, $s};return $f; - }; - $ptrType(Error).prototype.Error = function Error$1() { - var {$24r, _arg, _arg$1, _r$1, _r$2, err, x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - err = this; - _r$1 = err.Fset.Position(err.Pos); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _arg = (x = _r$1, new x.constructor.elem(x)); - _arg$1 = new $String(err.Msg); - _r$2 = fmt.Sprintf("%s: %s", new sliceType$6([_arg, _arg$1])); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: Error$1, $c: true, $r, $24r, _arg, _arg$1, _r$1, _r$2, err, x, $s};return $f; - }; - Error.prototype.Error = function(...$args) { return this.$val.Error(...$args); }; - $ptrType(ArgumentError).prototype.Error = function Error$2() { - var {$24r, _r$1, e, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - e = this; - _r$1 = e.Err.Error(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Error$2, $c: true, $r, $24r, _r$1, e, $s};return $f; - }; - $ptrType(ArgumentError).prototype.Unwrap = function Unwrap() { - var e; - e = this; - return e.Err; + $s = -1; return longest && b.matchcap.$length > 1 && (x$15 = b.matchcap, (1 >= x$15.$length ? ($throwRuntimeError("index out of range"), undefined) : x$15.$array[x$15.$offset + 1])) >= 0; + /* */ } return; } var $f = {$blk: tryBacktrack, $c: true, $r, _1, _2, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, _tuple$2, _tuple$3, arg, b, flag, i, inst, l, longest, old, pc, pc$1, pos, pos$1, r, r$1, r$2, r$3, re, width, width$1, width$2, width$3, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; }; - $ptrType(Info).prototype.TypeOf = function TypeOf(e) { - var {$24r, _entry, _r$1, _tuple, _tuple$1, e, id, info, obj, ok, t, $s, $r, $c} = $restore(this, {e}); + $ptrType(Regexp).prototype.backtrack = function backtrack(ib, is, pos, ncap, dstCap) { + var {_r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, advance, b, dstCap, end, i, ib, is, ncap, pos, re, startCond, width, x, x$1, $s, $r, $c} = $restore(this, {ib, is, pos, ncap, dstCap}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - info = this; - _tuple = (_entry = $mapIndex(info.Types,ast.Expr.keyFor(e)), _entry !== undefined ? [_entry.v, true] : [new TypeAndValue.ptr(0, $ifaceNil, $ifaceNil), false]); - t = $clone(_tuple[0], TypeAndValue); - ok = _tuple[1]; - if (ok) { - $s = -1; return t.Type; - } - _tuple$1 = $assertType(e, ptrType$30, true); - id = _tuple$1[0]; - /* */ if (!(id === ptrType$30.nil)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(id === ptrType$30.nil)) { */ case 1: - obj = info.ObjectOf(id); - /* */ if (!($interfaceIsEqual(obj, $ifaceNil))) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!($interfaceIsEqual(obj, $ifaceNil))) { */ case 3: - _r$1 = obj.Type(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 6; case 6: return $24r; - /* } */ case 4: - /* } */ case 2: - $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: TypeOf, $c: true, $r, $24r, _entry, _r$1, _tuple, _tuple$1, e, id, info, obj, ok, t, $s};return $f; - }; - $ptrType(Info).prototype.ObjectOf = function ObjectOf(id) { - var _entry, _entry$1, id, info, obj; - info = this; - obj = (_entry = $mapIndex(info.Defs,ptrType$30.keyFor(id)), _entry !== undefined ? _entry.v : $ifaceNil); - if (!($interfaceIsEqual(obj, $ifaceNil))) { - return obj; + re = this; + startCond = re.cond; + if (startCond === 255) { + $s = -1; return sliceType$7.nil; } - return (_entry$1 = $mapIndex(info.Uses,ptrType$30.keyFor(id)), _entry$1 !== undefined ? _entry$1.v : $ifaceNil); - }; - $ptrType(TypeAndValue).prototype.IsVoid = function IsVoid() { - var tv; - tv = this; - return tv.mode === 1; - }; - TypeAndValue.prototype.IsVoid = function(...$args) { return this.$val.IsVoid(...$args); }; - $ptrType(TypeAndValue).prototype.IsType = function IsType() { - var tv; - tv = this; - return tv.mode === 3; - }; - TypeAndValue.prototype.IsType = function(...$args) { return this.$val.IsType(...$args); }; - $ptrType(TypeAndValue).prototype.IsBuiltin = function IsBuiltin() { - var tv; - tv = this; - return tv.mode === 2; - }; - TypeAndValue.prototype.IsBuiltin = function(...$args) { return this.$val.IsBuiltin(...$args); }; - $ptrType(TypeAndValue).prototype.IsValue = function IsValue() { - var _1, tv; - tv = this; - _1 = tv.mode; - if ((_1 === (4)) || (_1 === (5)) || (_1 === (6)) || (_1 === (7)) || (_1 === (8)) || (_1 === (9))) { - return true; + if (!((((startCond & 4) >>> 0) === 0)) && !((pos === 0))) { + $s = -1; return sliceType$7.nil; } - return false; - }; - TypeAndValue.prototype.IsValue = function(...$args) { return this.$val.IsValue(...$args); }; - $ptrType(TypeAndValue).prototype.IsNil = function IsNil() { - var tv; - tv = this; - return (tv.mode === 7) && $interfaceIsEqual(tv.Type, (25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25])); - }; - TypeAndValue.prototype.IsNil = function(...$args) { return this.$val.IsNil(...$args); }; - $ptrType(TypeAndValue).prototype.Addressable = function Addressable() { - var tv; - tv = this; - return tv.mode === 5; - }; - TypeAndValue.prototype.Addressable = function(...$args) { return this.$val.Addressable(...$args); }; - $ptrType(TypeAndValue).prototype.Assignable = function Assignable() { - var tv; - tv = this; - return (tv.mode === 5) || (tv.mode === 6); - }; - TypeAndValue.prototype.Assignable = function(...$args) { return this.$val.Assignable(...$args); }; - $ptrType(TypeAndValue).prototype.HasOk = function HasOk() { - var tv; - tv = this; - return (tv.mode === 8) || (tv.mode === 6); - }; - TypeAndValue.prototype.HasOk = function(...$args) { return this.$val.HasOk(...$args); }; - $ptrType(Initializer).prototype.String = function String$35() { - var {_i, _ref, buf, i, init$7, lhs, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - buf = [buf]; - init$7 = this; - buf[0] = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); - _ref = init$7.Lhs; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - lhs = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (i > 0) { - buf[0].WriteString(", "); + _r = newBitState(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + b = _r; + _tuple = b.inputs.init($ifaceNil, ib, is); + i = _tuple[0]; + end = _tuple[1]; + b.reset(re.prog, end, ncap); + /* */ if (!((((startCond & 4) >>> 0) === 0))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!((((startCond & 4) >>> 0) === 0))) { */ case 2: + if (b.cap.$length > 0) { + (x = b.cap, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0] = pos)); } - buf[0].WriteString(lhs.object.Name()); - _i++; - } - buf[0].WriteString(" = "); - $r = WriteExpr(buf[0], init$7.Rhs); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return buf[0].String(); - /* */ } return; } var $f = {$blk: String$35, $c: true, $r, _i, _ref, buf, i, init$7, lhs, $s};return $f; - }; - $ptrType(Config).prototype.Check = function Check(path, fset, files, info) { - var {$24r, _r$1, _r$2, _r$3, conf, files, fset, info, path, pkg, $s, $r, $c} = $restore(this, {path, fset, files, info}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - conf = this; - _r$1 = NewPackage(path, ""); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - pkg = _r$1; - _r$2 = NewChecker(conf, fset, pkg, info); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = _r$2.Files(files); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r = [pkg, _r$3]; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: Check, $c: true, $r, $24r, _r$1, _r$2, _r$3, conf, files, fset, info, path, pkg, $s};return $f; - }; - Identical = function Identical$1(x, y) { - var {$24r, _r$1, x, y, $s, $r, $c} = $restore(this, {x, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = identical(x, y, true, ptrType$23.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Identical$1, $c: true, $r, $24r, _r$1, x, y, $s};return $f; - }; - $pkg.Identical = Identical; - IdenticalIgnoreTags = function IdenticalIgnoreTags$1(x, y) { - var {$24r, _r$1, x, y, $s, $r, $c} = $restore(this, {x, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = identical(x, y, false, ptrType$23.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: IdenticalIgnoreTags$1, $c: true, $r, $24r, _r$1, x, y, $s};return $f; + _r$1 = re.tryBacktrack(b, i, ((re.prog.Start >>> 0)), pos); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!_r$1) { */ case 5: + freeBitState(b); + $s = -1; return sliceType$7.nil; + /* } */ case 6: + $s = 4; continue; + /* } else { */ case 3: + width = -1; + /* while (true) { */ case 8: + /* if (!(pos <= end && !((width === 0)))) { break; } */ if(!(pos <= end && !((width === 0)))) { $s = 9; continue; } + /* */ if (re.prefix.length > 0) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (re.prefix.length > 0) { */ case 10: + _r$2 = i.index(re, pos); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + advance = _r$2; + if (advance < 0) { + freeBitState(b); + $s = -1; return sliceType$7.nil; + } + pos = pos + (advance) >> 0; + /* } */ case 11: + if (b.cap.$length > 0) { + (x$1 = b.cap, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0] = pos)); + } + _r$3 = re.tryBacktrack(b, i, ((re.prog.Start >>> 0)), pos); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (_r$3) { */ case 13: + /* goto Match */ $s = 16; continue; + /* } */ case 14: + _r$4 = i.step(pos); /* */ $s = 17; case 17: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$1 = _r$4; + width = _tuple$1[1]; + pos = pos + (width) >> 0; + $s = 8; continue; + case 9: + freeBitState(b); + $s = -1; return sliceType$7.nil; + /* } */ case 4: + /* Match: */ case 16: + dstCap = $appendSlice(dstCap, b.matchcap); + freeBitState(b); + $s = -1; return dstCap; + /* */ } return; } var $f = {$blk: backtrack, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, advance, b, dstCap, end, i, ib, is, ncap, pos, re, startCond, width, x, x$1, $s};return $f; }; - $pkg.IdenticalIgnoreTags = IdenticalIgnoreTags; - ptrType$12.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Term", name: "Term", pkg: "", typ: $funcType([$Int], [ptrType$19], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$19.methods = [{prop: "Tilde", name: "Tilde", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$22.methods = [{prop: "unify", name: "unify", pkg: "go/types", typ: $funcType([Type, Type], [$Bool], false)}, {prop: "tracef", name: "tracef", pkg: "go/types", typ: $funcType([$String, sliceType$6], [], true)}, {prop: "join", name: "join", pkg: "go/types", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "nifyEq", name: "nifyEq", pkg: "go/types", typ: $funcType([Type, Type, ptrType$23], [$Bool], false)}, {prop: "nify", name: "nify", pkg: "go/types", typ: $funcType([Type, Type, ptrType$23], [$Bool], false)}]; - ptrType$113.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "init", name: "init", pkg: "go/types", typ: $funcType([sliceType$9], [], false)}, {prop: "index", name: "index", pkg: "go/types", typ: $funcType([Type], [$Int], false)}, {prop: "setIndex", name: "setIndex", pkg: "go/types", typ: $funcType([$Int, $Int], [], false)}, {prop: "at", name: "at", pkg: "go/types", typ: $funcType([$Int], [Type], false)}, {prop: "set", name: "set", pkg: "go/types", typ: $funcType([$Int, Type], [], false)}, {prop: "unknowns", name: "unknowns", pkg: "go/types", typ: $funcType([], [$Int], false)}, {prop: "types", name: "types", pkg: "go/types", typ: $funcType([], [sliceType$2, $Int], false)}]; - ptrType$4.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "equal", name: "equal", pkg: "go/types", typ: $funcType([ptrType$4], [$Bool], false)}, {prop: "union", name: "union", pkg: "go/types", typ: $funcType([ptrType$4], [ptrType$4, ptrType$4], false)}, {prop: "intersect", name: "intersect", pkg: "go/types", typ: $funcType([ptrType$4], [ptrType$4], false)}, {prop: "includes", name: "includes", pkg: "go/types", typ: $funcType([Type], [$Bool], false)}, {prop: "subsetOf", name: "subsetOf", pkg: "go/types", typ: $funcType([ptrType$4], [$Bool], false)}, {prop: "disjoint", name: "disjoint", pkg: "go/types", typ: $funcType([ptrType$4], [$Bool], false)}]; - ptrType$115.methods = [{prop: "byte$", name: "byte", pkg: "go/types", typ: $funcType([$Uint8], [], false)}, {prop: "string", name: "string", pkg: "go/types", typ: $funcType([$String], [], false)}, {prop: "error", name: "error", pkg: "go/types", typ: $funcType([$String], [], false)}, {prop: "typ", name: "typ", pkg: "go/types", typ: $funcType([Type], [], false)}, {prop: "typeSet", name: "typeSet", pkg: "go/types", typ: $funcType([ptrType$7], [], false)}, {prop: "typeList", name: "typeList", pkg: "go/types", typ: $funcType([sliceType$2], [], false)}, {prop: "tParamList", name: "tParamList", pkg: "go/types", typ: $funcType([sliceType$9], [], false)}, {prop: "typeName", name: "typeName", pkg: "go/types", typ: $funcType([ptrType$17], [], false)}, {prop: "tuple", name: "tuple", pkg: "go/types", typ: $funcType([ptrType$15, $Bool], [], false)}, {prop: "signature", name: "signature", pkg: "go/types", typ: $funcType([ptrType$27], [], false)}]; - ptrType$7.methods = [{prop: "IsEmpty", name: "IsEmpty", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsAll", name: "IsAll", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsMethodSet", name: "IsMethodSet", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsComparable", name: "IsComparable", pkg: "", typ: $funcType([mapType], [$Bool], false)}, {prop: "NumMethods", name: "NumMethods", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [ptrType$2], false)}, {prop: "LookupMethod", name: "LookupMethod", pkg: "", typ: $funcType([ptrType$1, $String, $Bool], [$Int, ptrType$2], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "hasTerms", name: "hasTerms", pkg: "go/types", typ: $funcType([], [$Bool], false)}, {prop: "subsetOf", name: "subsetOf", pkg: "go/types", typ: $funcType([ptrType$7], [$Bool], false)}, {prop: "is", name: "is", pkg: "go/types", typ: $funcType([funcType$2], [$Bool], false)}, {prop: "underIs", name: "underIs", pkg: "go/types", typ: $funcType([funcType$3], [$Bool], false)}]; - byUniqueMethodName.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}]; - ptrType$14.methods = [{prop: "Index", name: "Index", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Obj", name: "Obj", pkg: "", typ: $funcType([], [ptrType$17], false)}, {prop: "Constraint", name: "Constraint", pkg: "", typ: $funcType([], [Type], false)}, {prop: "SetConstraint", name: "SetConstraint", pkg: "", typ: $funcType([Type], [], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "cleanup", name: "cleanup", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "iface", name: "iface", pkg: "go/types", typ: $funcType([], [ptrType$13], false)}, {prop: "is", name: "is", pkg: "go/types", typ: $funcType([funcType$2], [$Bool], false)}, {prop: "underIs", name: "underIs", pkg: "go/types", typ: $funcType([funcType$3], [$Bool], false)}]; - ptrType$48.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "At", name: "At", pkg: "", typ: $funcType([$Int], [ptrType$14], false)}, {prop: "list", name: "list", pkg: "go/types", typ: $funcType([], [sliceType$9], false)}]; - ptrType$56.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "At", name: "At", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "list", name: "list", pkg: "go/types", typ: $funcType([], [sliceType$2], false)}]; - ptrType$15.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "At", name: "At", pkg: "", typ: $funcType([$Int], [ptrType$16], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - termlist.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "isEmpty", name: "isEmpty", pkg: "go/types", typ: $funcType([], [$Bool], false)}, {prop: "isAll", name: "isAll", pkg: "go/types", typ: $funcType([], [$Bool], false)}, {prop: "norm", name: "norm", pkg: "go/types", typ: $funcType([], [termlist], false)}, {prop: "union", name: "union", pkg: "go/types", typ: $funcType([termlist], [termlist], false)}, {prop: "intersect", name: "intersect", pkg: "go/types", typ: $funcType([termlist], [termlist], false)}, {prop: "equal", name: "equal", pkg: "go/types", typ: $funcType([termlist], [$Bool], false)}, {prop: "includes", name: "includes", pkg: "go/types", typ: $funcType([Type], [$Bool], false)}, {prop: "supersetOf", name: "supersetOf", pkg: "go/types", typ: $funcType([ptrType$4], [$Bool], false)}, {prop: "subsetOf", name: "subsetOf", pkg: "go/types", typ: $funcType([termlist], [$Bool], false)}]; - substMap.methods = [{prop: "empty", name: "empty", pkg: "go/types", typ: $funcType([], [$Bool], false)}, {prop: "lookup", name: "lookup", pkg: "go/types", typ: $funcType([ptrType$14], [Type], false)}]; - ptrType$116.methods = [{prop: "typ", name: "typ", pkg: "go/types", typ: $funcType([Type], [Type], false)}, {prop: "typOrNil", name: "typOrNil", pkg: "go/types", typ: $funcType([Type], [Type], false)}, {prop: "var_", name: "var_", pkg: "go/types", typ: $funcType([ptrType$16], [ptrType$16], false)}, {prop: "tuple", name: "tuple", pkg: "go/types", typ: $funcType([ptrType$15], [ptrType$15], false)}, {prop: "varList", name: "varList", pkg: "go/types", typ: $funcType([sliceType$10], [sliceType$10, $Bool], false)}, {prop: "func_", name: "func_", pkg: "go/types", typ: $funcType([ptrType$2], [ptrType$2], false)}, {prop: "funcList", name: "funcList", pkg: "go/types", typ: $funcType([sliceType], [sliceType, $Bool], false)}, {prop: "typeList", name: "typeList", pkg: "go/types", typ: $funcType([sliceType$2], [sliceType$2, $Bool], false)}, {prop: "termlist", name: "termlist", pkg: "go/types", typ: $funcType([sliceType$12], [sliceType$12, $Bool], false)}]; - ptrType$11.methods = [{prop: "NumFields", name: "NumFields", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [ptrType$16], false)}, {prop: "Tag", name: "Tag", pkg: "", typ: $funcType([$Int], [$String], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "markComplete", name: "markComplete", pkg: "go/types", typ: $funcType([], [], false)}]; - ptrType$25.methods = [{prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$83.methods = [{prop: "Alignof", name: "Alignof", pkg: "", typ: $funcType([Type], [$Int64], false)}, {prop: "Offsetsof", name: "Offsetsof", pkg: "", typ: $funcType([sliceType$10], [sliceType$19], false)}, {prop: "Sizeof", name: "Sizeof", pkg: "", typ: $funcType([Type], [$Int64], false)}]; - ptrType$27.methods = [{prop: "Recv", name: "Recv", pkg: "", typ: $funcType([], [ptrType$16], false)}, {prop: "TypeParams", name: "TypeParams", pkg: "", typ: $funcType([], [ptrType$48], false)}, {prop: "RecvTypeParams", name: "RecvTypeParams", pkg: "", typ: $funcType([], [ptrType$48], false)}, {prop: "Params", name: "Params", pkg: "", typ: $funcType([], [ptrType$15], false)}, {prop: "Results", name: "Results", pkg: "", typ: $funcType([], [ptrType$15], false)}, {prop: "Variadic", name: "Variadic", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$3.methods = [{prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [SelectionKind], false)}, {prop: "Recv", name: "Recv", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Obj", name: "Obj", pkg: "", typ: $funcType([], [Object], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Index", name: "Index", pkg: "", typ: $funcType([], [sliceType$13], false)}, {prop: "Indirect", name: "Indirect", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType.methods = [{prop: "Parent", name: "Parent", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Names", name: "Names", pkg: "", typ: $funcType([], [sliceType$5], false)}, {prop: "NumChildren", name: "NumChildren", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Child", name: "Child", pkg: "", typ: $funcType([$Int], [ptrType], false)}, {prop: "Lookup", name: "Lookup", pkg: "", typ: $funcType([$String], [Object], false)}, {prop: "LookupParent", name: "LookupParent", pkg: "", typ: $funcType([$String, token.Pos], [ptrType, Object], false)}, {prop: "Insert", name: "Insert", pkg: "", typ: $funcType([Object], [Object], false)}, {prop: "_InsertLazy", name: "_InsertLazy", pkg: "go/types", typ: $funcType([$String, funcType$4], [$Bool], false)}, {prop: "insert", name: "insert", pkg: "go/types", typ: $funcType([$String, Object], [], false)}, {prop: "squash", name: "squash", pkg: "go/types", typ: $funcType([funcType$5], [], false)}, {prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "Contains", name: "Contains", pkg: "", typ: $funcType([token.Pos], [$Bool], false)}, {prop: "Innermost", name: "Innermost", pkg: "", typ: $funcType([token.Pos], [ptrType], false)}, {prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([io.Writer, $Int, $Bool], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$85.methods = [{prop: "Parent", name: "Parent", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "Pkg", name: "Pkg", pkg: "", typ: $funcType([], [ptrType$1], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Exported", name: "Exported", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Id", name: "Id", pkg: "", typ: $funcType([], [$String], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "order", name: "order", pkg: "go/types", typ: $funcType([], [$Uint32], false)}, {prop: "color", name: "color", pkg: "go/types", typ: $funcType([], [color], false)}, {prop: "setType", name: "setType", pkg: "go/types", typ: $funcType([Type], [], false)}, {prop: "setOrder", name: "setOrder", pkg: "go/types", typ: $funcType([$Uint32], [], false)}, {prop: "setColor", name: "setColor", pkg: "go/types", typ: $funcType([color], [], false)}, {prop: "setParent", name: "setParent", pkg: "go/types", typ: $funcType([ptrType], [], false)}, {prop: "sameId", name: "sameId", pkg: "go/types", typ: $funcType([ptrType$1, $String], [$Bool], false)}, {prop: "scopePos", name: "scopePos", pkg: "go/types", typ: $funcType([], [token.Pos], false)}, {prop: "setScopePos", name: "setScopePos", pkg: "go/types", typ: $funcType([token.Pos], [], false)}]; - ptrType$58.methods = [{prop: "hasInitializer", name: "hasInitializer", pkg: "go/types", typ: $funcType([], [$Bool], false)}, {prop: "addDep", name: "addDep", pkg: "go/types", typ: $funcType([Object], [], false)}]; - inSourceOrder.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}]; - ptrType$23.methods = [{prop: "identical", name: "identical", pkg: "go/types", typ: $funcType([ptrType$23], [$Bool], false)}]; - ptrType$26.methods = [{prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$1.methods = [{prop: "Path", name: "Path", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "SetName", name: "SetName", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Scope", name: "Scope", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "Complete", name: "Complete", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "MarkComplete", name: "MarkComplete", pkg: "", typ: $funcType([], [], false)}, {prop: "Imports", name: "Imports", pkg: "", typ: $funcType([], [sliceType$24], false)}, {prop: "SetImports", name: "SetImports", pkg: "", typ: $funcType([sliceType$24], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$62.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "setConst", name: "setConst", pkg: "go/types", typ: $funcType([token.Token, $String], [], false)}, {prop: "isNil", name: "isNil", pkg: "go/types", typ: $funcType([], [$Bool], false)}, {prop: "assignableTo", name: "assignableTo", pkg: "go/types", typ: $funcType([ptrType$5, Type, ptrType$34], [$Bool, errors$1.Code], false)}, {prop: "convertibleTo", name: "convertibleTo", pkg: "go/types", typ: $funcType([ptrType$5, Type, ptrType$34], [$Bool], false)}]; - ptrType$54.methods = [{prop: "insert", name: "insert", pkg: "go/types", typ: $funcType([Object], [Object], false)}]; - ptrType$117.methods = [{prop: "Parent", name: "Parent", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "Pkg", name: "Pkg", pkg: "", typ: $funcType([], [ptrType$1], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Exported", name: "Exported", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Id", name: "Id", pkg: "", typ: $funcType([], [$String], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "order", name: "order", pkg: "go/types", typ: $funcType([], [$Uint32], false)}, {prop: "color", name: "color", pkg: "go/types", typ: $funcType([], [color], false)}, {prop: "scopePos", name: "scopePos", pkg: "go/types", typ: $funcType([], [token.Pos], false)}, {prop: "setParent", name: "setParent", pkg: "go/types", typ: $funcType([ptrType], [], false)}, {prop: "setType", name: "setType", pkg: "go/types", typ: $funcType([Type], [], false)}, {prop: "setOrder", name: "setOrder", pkg: "go/types", typ: $funcType([$Uint32], [], false)}, {prop: "setColor", name: "setColor", pkg: "go/types", typ: $funcType([color], [], false)}, {prop: "setScopePos", name: "setScopePos", pkg: "go/types", typ: $funcType([token.Pos], [], false)}, {prop: "sameId", name: "sameId", pkg: "go/types", typ: $funcType([ptrType$1, $String], [$Bool], false)}]; - color.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$31.methods = [{prop: "Imported", name: "Imported", pkg: "", typ: $funcType([], [ptrType$1], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$32.methods = [{prop: "Val", name: "Val", pkg: "", typ: $funcType([], [constant.Value], false)}, {prop: "isDependency", name: "isDependency", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$17.methods = [{prop: "IsAlias", name: "IsAlias", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$16.methods = [{prop: "Anonymous", name: "Anonymous", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Embedded", name: "Embedded", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsField", name: "IsField", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Origin", name: "Origin", pkg: "", typ: $funcType([], [ptrType$16], false)}, {prop: "isDependency", name: "isDependency", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$2.methods = [{prop: "FullName", name: "FullName", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Scope", name: "Scope", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "Origin", name: "Origin", pkg: "", typ: $funcType([], [ptrType$2], false)}, {prop: "hasPtrRecv", name: "hasPtrRecv", pkg: "go/types", typ: $funcType([], [$Bool], false)}, {prop: "isDependency", name: "isDependency", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$91.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$18.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$33.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$9.methods = [{prop: "resolve", name: "resolve", pkg: "go/types", typ: $funcType([], [ptrType$9], false)}, {prop: "state", name: "state", pkg: "go/types", typ: $funcType([], [namedState], false)}, {prop: "setState", name: "setState", pkg: "go/types", typ: $funcType([namedState], [], false)}, {prop: "cleanup", name: "cleanup", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "Obj", name: "Obj", pkg: "", typ: $funcType([], [ptrType$17], false)}, {prop: "Origin", name: "Origin", pkg: "", typ: $funcType([], [ptrType$9], false)}, {prop: "TypeParams", name: "TypeParams", pkg: "", typ: $funcType([], [ptrType$48], false)}, {prop: "SetTypeParams", name: "SetTypeParams", pkg: "", typ: $funcType([sliceType$9], [], false)}, {prop: "TypeArgs", name: "TypeArgs", pkg: "", typ: $funcType([], [ptrType$56], false)}, {prop: "NumMethods", name: "NumMethods", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [ptrType$2], false)}, {prop: "expandMethod", name: "expandMethod", pkg: "go/types", typ: $funcType([$Int], [ptrType$2], false)}, {prop: "SetUnderlying", name: "SetUnderlying", pkg: "", typ: $funcType([Type], [], false)}, {prop: "AddMethod", name: "AddMethod", pkg: "", typ: $funcType([ptrType$2], [], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "under", name: "under", pkg: "go/types", typ: $funcType([], [Type], false)}, {prop: "setUnderlying", name: "setUnderlying", pkg: "go/types", typ: $funcType([Type], [], false)}, {prop: "lookupMethod", name: "lookupMethod", pkg: "go/types", typ: $funcType([ptrType$1, $String, $Bool], [$Int, ptrType$2], false)}, {prop: "expandUnderlying", name: "expandUnderlying", pkg: "go/types", typ: $funcType([], [Type], false)}]; - ptrType$118.methods = [{prop: "recordCanon", name: "recordCanon", pkg: "go/types", typ: $funcType([ptrType$14, ptrType$14], [], false)}, {prop: "recordInstance", name: "recordInstance", pkg: "go/types", typ: $funcType([ptrType$1, token.Pos, sliceType$9, sliceType$2, sliceType$11], [], false)}, {prop: "assign", name: "assign", pkg: "go/types", typ: $funcType([ptrType$1, token.Pos, ptrType$14, Type], [], false)}, {prop: "localNamedVertex", name: "localNamedVertex", pkg: "go/types", typ: $funcType([ptrType$1, ptrType$9], [$Int], false)}, {prop: "typeParamVertex", name: "typeParamVertex", pkg: "go/types", typ: $funcType([ptrType$14], [$Int], false)}, {prop: "addEdge", name: "addEdge", pkg: "go/types", typ: $funcType([$Int, $Int, $Int, token.Pos, Type], [], false)}]; - ptrType$119.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "At", name: "At", pkg: "", typ: $funcType([$Int], [ptrType$3], false)}, {prop: "Lookup", name: "Lookup", pkg: "", typ: $funcType([ptrType$1, $String], [ptrType$3], false)}]; - methodSet.methods = [{prop: "add", name: "add", pkg: "go/types", typ: $funcType([sliceType, sliceType$13, $Bool, $Bool], [methodSet], false)}, {prop: "addOne", name: "addOne", pkg: "go/types", typ: $funcType([ptrType$2, sliceType$13, $Bool, $Bool], [methodSet], false)}]; - ptrType$28.methods = [{prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$120.methods = [{prop: "lookup", name: "lookup", pkg: "go/types", typ: $funcType([ptrType$9], [ptrType$9], false)}, {prop: "add", name: "add", pkg: "go/types", typ: $funcType([ptrType$9], [], false)}]; - ptrType$92.methods = [{prop: "insert", name: "insert", pkg: "go/types", typ: $funcType([ptrType$65], [], false)}, {prop: "gotoTarget", name: "gotoTarget", pkg: "go/types", typ: $funcType([$String], [ptrType$65], false)}, {prop: "enclosingTarget", name: "enclosingTarget", pkg: "go/types", typ: $funcType([$String], [ptrType$65], false)}]; - ptrType$13.methods = [{prop: "typeSet", name: "typeSet", pkg: "go/types", typ: $funcType([], [ptrType$7], false)}, {prop: "MarkImplicit", name: "MarkImplicit", pkg: "", typ: $funcType([], [], false)}, {prop: "NumExplicitMethods", name: "NumExplicitMethods", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "ExplicitMethod", name: "ExplicitMethod", pkg: "", typ: $funcType([$Int], [ptrType$2], false)}, {prop: "NumEmbeddeds", name: "NumEmbeddeds", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Embedded", name: "Embedded", pkg: "", typ: $funcType([$Int], [ptrType$9], false)}, {prop: "EmbeddedType", name: "EmbeddedType", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "NumMethods", name: "NumMethods", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [ptrType$2], false)}, {prop: "Empty", name: "Empty", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsComparable", name: "IsComparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsMethodSet", name: "IsMethodSet", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsImplicit", name: "IsImplicit", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Complete", name: "Complete", pkg: "", typ: $funcType([], [ptrType$13], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "cleanup", name: "cleanup", pkg: "go/types", typ: $funcType([], [], false)}]; - ptrType$95.methods = [{prop: "cost", name: "cost", pkg: "go/types", typ: $funcType([], [$Int], false)}]; - ptrType$96.methods = [{prop: "add", name: "add", pkg: "go/types", typ: $funcType([ptrType$95], [], false)}]; - nodeQueue.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}]; - ptrType$94.methods = [{prop: "Push", name: "Push", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "Pop", name: "Pop", pkg: "", typ: $funcType([], [$emptyInterface], false)}]; - ptrType$121.methods = [{prop: "isParameterized", name: "isParameterized", pkg: "go/types", typ: $funcType([Type], [$Bool], false)}, {prop: "isParameterizedTypeList", name: "isParameterizedTypeList", pkg: "go/types", typ: $funcType([sliceType$2], [$Bool], false)}]; - ptrType$122.methods = [{prop: "typ", name: "typ", pkg: "go/types", typ: $funcType([Type], [], false)}, {prop: "varList", name: "varList", pkg: "go/types", typ: $funcType([sliceType$10], [], false)}]; - ptrType$104.methods = [{prop: "empty", name: "empty", pkg: "go/types", typ: $funcType([], [$Bool], false)}, {prop: "pos", name: "pos", pkg: "go/types", typ: $funcType([], [token.Pos], false)}, {prop: "msg", name: "msg", pkg: "go/types", typ: $funcType([ptrType$24, Qualifier], [$String], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "errorf", name: "errorf", pkg: "go/types", typ: $funcType([token.Pos, $String, sliceType$6], [], true)}]; - posSpan.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}]; - atPos.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}]; - importDecl.methods = [{prop: "node", name: "node", pkg: "go/types", typ: $funcType([], [ast.Node], false)}]; - constDecl.methods = [{prop: "node", name: "node", pkg: "go/types", typ: $funcType([], [ast.Node], false)}]; - varDecl.methods = [{prop: "node", name: "node", pkg: "go/types", typ: $funcType([], [ast.Node], false)}]; - typeDecl.methods = [{prop: "node", name: "node", pkg: "go/types", typ: $funcType([], [ast.Node], false)}]; - funcDecl.methods = [{prop: "node", name: "node", pkg: "go/types", typ: $funcType([], [ast.Node], false)}]; - ptrType$51.methods = [{prop: "instanceHash", name: "instanceHash", pkg: "go/types", typ: $funcType([Type, sliceType$2], [$String], false)}, {prop: "lookup", name: "lookup", pkg: "go/types", typ: $funcType([$String, Type, sliceType$2], [Type], false)}, {prop: "update", name: "update", pkg: "go/types", typ: $funcType([$String, Type, sliceType$2, Type], [Type], false)}, {prop: "getID", name: "getID", pkg: "go/types", typ: $funcType([Type], [$Int], false)}]; - ptrType$123.methods = [{prop: "lookup", name: "lookup", pkg: "go/types", typ: $funcType([$String], [Object], false)}]; - ptrType$124.methods = [{prop: "describef", name: "describef", pkg: "go/types", typ: $funcType([positioner, $String, sliceType$6], [], true)}]; - ptrType$5.methods = [{prop: "langCompat", name: "langCompat", pkg: "go/types", typ: $funcType([ptrType$57], [], false)}, {prop: "allowVersion", name: "allowVersion", pkg: "go/types", typ: $funcType([ptrType$1, $Int, $Int], [$Bool], false)}, {prop: "validType", name: "validType", pkg: "go/types", typ: $funcType([ptrType$9], [], false)}, {prop: "validType0", name: "validType0", pkg: "go/types", typ: $funcType([Type, sliceType$7, sliceType$7], [$Bool], false)}, {prop: "ident", name: "ident", pkg: "go/types", typ: $funcType([ptrType$62, ptrType$30, ptrType$9, $Bool], [], false)}, {prop: "typ", name: "typ", pkg: "go/types", typ: $funcType([ast.Expr], [Type], false)}, {prop: "varType", name: "varType", pkg: "go/types", typ: $funcType([ast.Expr], [Type], false)}, {prop: "validVarType", name: "validVarType", pkg: "go/types", typ: $funcType([ast.Expr, Type], [], false)}, {prop: "definedType", name: "definedType", pkg: "go/types", typ: $funcType([ast.Expr, ptrType$9], [Type], false)}, {prop: "genericType", name: "genericType", pkg: "go/types", typ: $funcType([ast.Expr, ptrType$34], [Type], false)}, {prop: "typInternal", name: "typInternal", pkg: "go/types", typ: $funcType([ast.Expr, ptrType$9], [Type], false)}, {prop: "instantiatedType", name: "instantiatedType", pkg: "go/types", typ: $funcType([ptrType$112, ptrType$9], [Type], false)}, {prop: "arrayLength", name: "arrayLength", pkg: "go/types", typ: $funcType([ast.Expr], [$Int64], false)}, {prop: "typeList", name: "typeList", pkg: "go/types", typ: $funcType([sliceType$11], [sliceType$2], false)}, {prop: "newTypeParam", name: "newTypeParam", pkg: "go/types", typ: $funcType([ptrType$17, Type], [ptrType$14], false)}, {prop: "subst", name: "subst", pkg: "go/types", typ: $funcType([token.Pos, Type, substMap, ptrType$9, ptrType$51], [Type], false)}, {prop: "structType", name: "structType", pkg: "go/types", typ: $funcType([ptrType$11, ptrType$42], [], false)}, {prop: "declareInSet", name: "declareInSet", pkg: "go/types", typ: $funcType([ptrType$54, token.Pos, Object], [$Bool], false)}, {prop: "tag", name: "tag", pkg: "go/types", typ: $funcType([ptrType$57], [$String], false)}, {prop: "funcBody", name: "funcBody", pkg: "go/types", typ: $funcType([ptrType$58, $String, ptrType$27, ptrType$74, constant.Value], [], false)}, {prop: "usage", name: "usage", pkg: "go/types", typ: $funcType([ptrType], [], false)}, {prop: "simpleStmt", name: "simpleStmt", pkg: "go/types", typ: $funcType([ast.Stmt], [], false)}, {prop: "stmtList", name: "stmtList", pkg: "go/types", typ: $funcType([stmtContext, sliceType$17], [], false)}, {prop: "multipleDefaults", name: "multipleDefaults", pkg: "go/types", typ: $funcType([sliceType$17], [], false)}, {prop: "openScope", name: "openScope", pkg: "go/types", typ: $funcType([ast.Node, $String], [], false)}, {prop: "closeScope", name: "closeScope", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "suspendedCall", name: "suspendedCall", pkg: "go/types", typ: $funcType([$String, ptrType$86], [], false)}, {prop: "caseValues", name: "caseValues", pkg: "go/types", typ: $funcType([ptrType$62, sliceType$11, valueMap], [], false)}, {prop: "isNil", name: "isNil", pkg: "go/types", typ: $funcType([ast.Expr], [$Bool], false)}, {prop: "caseTypes", name: "caseTypes", pkg: "go/types", typ: $funcType([ptrType$62, sliceType$11, mapType$10], [Type], false)}, {prop: "stmt", name: "stmt", pkg: "go/types", typ: $funcType([stmtContext, ast.Stmt], [], false)}, {prop: "funcType", name: "funcType", pkg: "go/types", typ: $funcType([ptrType$27, ptrType$49, ptrType$44], [], false)}, {prop: "collectParams", name: "collectParams", pkg: "go/types", typ: $funcType([ptrType, ptrType$49, $Bool], [sliceType$10, $Bool], false)}, {prop: "isTerminating", name: "isTerminating", pkg: "go/types", typ: $funcType([ast.Stmt, $String], [$Bool], false)}, {prop: "isTerminatingList", name: "isTerminatingList", pkg: "go/types", typ: $funcType([sliceType$17, $String], [$Bool], false)}, {prop: "isTerminatingSwitch", name: "isTerminatingSwitch", pkg: "go/types", typ: $funcType([ptrType$74, $String], [$Bool], false)}, {prop: "arityMatch", name: "arityMatch", pkg: "go/types", typ: $funcType([ptrType$88, ptrType$88], [], false)}, {prop: "declarePkgObj", name: "declarePkgObj", pkg: "go/types", typ: $funcType([ptrType$30, Object, ptrType$58], [], false)}, {prop: "filename", name: "filename", pkg: "go/types", typ: $funcType([$Int], [$String], false)}, {prop: "importPackage", name: "importPackage", pkg: "go/types", typ: $funcType([positioner, $String, $String], [ptrType$1], false)}, {prop: "collectObjects", name: "collectObjects", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "unpackRecv", name: "unpackRecv", pkg: "go/types", typ: $funcType([ast.Expr, $Bool], [$Bool, ptrType$30, sliceType$22], false)}, {prop: "resolveBaseTypeName", name: "resolveBaseTypeName", pkg: "go/types", typ: $funcType([$Bool, ptrType$30], [$Bool, ptrType$17], false)}, {prop: "packageObjects", name: "packageObjects", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "unusedImports", name: "unusedImports", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "errorUnusedPkg", name: "errorUnusedPkg", pkg: "go/types", typ: $funcType([ptrType$31], [], false)}, {prop: "newNamed", name: "newNamed", pkg: "go/types", typ: $funcType([ptrType$17, Type, sliceType], [ptrType$9], false)}, {prop: "newNamedInstance", name: "newNamedInstance", pkg: "go/types", typ: $funcType([token.Pos, ptrType$9, sliceType$2, ptrType$9], [ptrType$9], false)}, {prop: "context", name: "context", pkg: "go/types", typ: $funcType([], [ptrType$51], false)}, {prop: "monomorph", name: "monomorph", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "reportInstanceLoop", name: "reportInstanceLoop", pkg: "go/types", typ: $funcType([$Int], [], false)}, {prop: "missingMethod", name: "missingMethod", pkg: "go/types", typ: $funcType([Type, ptrType$13, $Bool], [ptrType$2, ptrType$2], false)}, {prop: "missingMethodCause", name: "missingMethodCause", pkg: "go/types", typ: $funcType([Type, Type, ptrType$2, ptrType$2], [$String], false)}, {prop: "interfacePtrError", name: "interfacePtrError", pkg: "go/types", typ: $funcType([Type], [$String], false)}, {prop: "funcString", name: "funcString", pkg: "go/types", typ: $funcType([ptrType$2, $Bool], [$String], false)}, {prop: "assertableTo", name: "assertableTo", pkg: "go/types", typ: $funcType([ptrType$13, Type], [ptrType$2, ptrType$2], false)}, {prop: "newAssertableTo", name: "newAssertableTo", pkg: "go/types", typ: $funcType([ptrType$13, Type], [$Bool], false)}, {prop: "labels", name: "labels", pkg: "go/types", typ: $funcType([ptrType$74], [], false)}, {prop: "blockBranches", name: "blockBranches", pkg: "go/types", typ: $funcType([ptrType, ptrType$92, ptrType$65, sliceType$17], [sliceType$26], false)}, {prop: "newInterface", name: "newInterface", pkg: "go/types", typ: $funcType([], [ptrType$13], false)}, {prop: "interfaceType", name: "interfaceType", pkg: "go/types", typ: $funcType([ptrType$13, ptrType$45, ptrType$9], [], false)}, {prop: "instance", name: "instance", pkg: "go/types", typ: $funcType([token.Pos, Type, sliceType$2, ptrType$9, ptrType$51], [Type], false)}, {prop: "validateTArgLen", name: "validateTArgLen", pkg: "go/types", typ: $funcType([token.Pos, $Int, $Int], [$Bool], false)}, {prop: "verify", name: "verify", pkg: "go/types", typ: $funcType([token.Pos, sliceType$9, sliceType$2, ptrType$51], [$Int, $error], false)}, {prop: "implements$", name: "implements", pkg: "go/types", typ: $funcType([Type, Type, $Bool, ptrType$34], [$Bool], false)}, {prop: "initOrder", name: "initOrder", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "reportCycle", name: "reportCycle", pkg: "go/types", typ: $funcType([sliceType$8], [], false)}, {prop: "infer", name: "infer", pkg: "go/types", typ: $funcType([positioner, sliceType$9, sliceType$2, ptrType$15, sliceType$29], [sliceType$2], false)}, {prop: "inferB", name: "inferB", pkg: "go/types", typ: $funcType([positioner, sliceType$9, sliceType$2], [sliceType$2, $Int], false)}, {prop: "indexExpr", name: "indexExpr", pkg: "go/types", typ: $funcType([ptrType$62, ptrType$112], [$Bool], false)}, {prop: "sliceExpr", name: "sliceExpr", pkg: "go/types", typ: $funcType([ptrType$62, ptrType$100], [], false)}, {prop: "singleIndex", name: "singleIndex", pkg: "go/types", typ: $funcType([ptrType$112], [ast.Expr], false)}, {prop: "index", name: "index", pkg: "go/types", typ: $funcType([ast.Expr, $Int64], [Type, $Int64], false)}, {prop: "isValidIndex", name: "isValidIndex", pkg: "go/types", typ: $funcType([ptrType$62, errors$1.Code, $String, $Bool], [$Bool], false)}, {prop: "indexedElts", name: "indexedElts", pkg: "go/types", typ: $funcType([sliceType$11, Type, $Int64], [$Int64], false)}, {prop: "op", name: "op", pkg: "go/types", typ: $funcType([opPredicates, ptrType$62, token.Token], [$Bool], false)}, {prop: "overflow", name: "overflow", pkg: "go/types", typ: $funcType([ptrType$62, token.Pos], [], false)}, {prop: "unary", name: "unary", pkg: "go/types", typ: $funcType([ptrType$62, ptrType$20], [], false)}, {prop: "representable", name: "representable", pkg: "go/types", typ: $funcType([ptrType$62, ptrType$8], [], false)}, {prop: "representation", name: "representation", pkg: "go/types", typ: $funcType([ptrType$62, ptrType$8], [constant.Value, errors$1.Code], false)}, {prop: "invalidConversion", name: "invalidConversion", pkg: "go/types", typ: $funcType([errors$1.Code, ptrType$62, Type], [], false)}, {prop: "updateExprType", name: "updateExprType", pkg: "go/types", typ: $funcType([ast.Expr, Type, $Bool], [], false)}, {prop: "updateExprType0", name: "updateExprType0", pkg: "go/types", typ: $funcType([ast.Expr, ast.Expr, Type, $Bool], [], false)}, {prop: "updateExprVal", name: "updateExprVal", pkg: "go/types", typ: $funcType([ast.Expr, constant.Value], [], false)}, {prop: "convertUntyped", name: "convertUntyped", pkg: "go/types", typ: $funcType([ptrType$62, Type], [], false)}, {prop: "implicitTypeAndValue", name: "implicitTypeAndValue", pkg: "go/types", typ: $funcType([ptrType$62, Type], [Type, constant.Value, errors$1.Code], false)}, {prop: "comparison", name: "comparison", pkg: "go/types", typ: $funcType([ptrType$62, ptrType$62, token.Token, $Bool], [], false)}, {prop: "incomparableCause", name: "incomparableCause", pkg: "go/types", typ: $funcType([Type], [$String], false)}, {prop: "kindString", name: "kindString", pkg: "go/types", typ: $funcType([Type], [$String], false)}, {prop: "shift", name: "shift", pkg: "go/types", typ: $funcType([ptrType$62, ptrType$62, ast.Expr, token.Token], [], false)}, {prop: "binary", name: "binary", pkg: "go/types", typ: $funcType([ptrType$62, ast.Expr, ast.Expr, ast.Expr, token.Token, token.Pos], [], false)}, {prop: "rawExpr", name: "rawExpr", pkg: "go/types", typ: $funcType([ptrType$62, ast.Expr, Type, $Bool], [exprKind], false)}, {prop: "nonGeneric", name: "nonGeneric", pkg: "go/types", typ: $funcType([ptrType$62], [], false)}, {prop: "exprInternal", name: "exprInternal", pkg: "go/types", typ: $funcType([ptrType$62, ast.Expr, Type], [exprKind], false)}, {prop: "typeAssertion", name: "typeAssertion", pkg: "go/types", typ: $funcType([ast.Expr, ptrType$62, Type, $Bool], [], false)}, {prop: "expr", name: "expr", pkg: "go/types", typ: $funcType([ptrType$62, ast.Expr], [], false)}, {prop: "multiExpr", name: "multiExpr", pkg: "go/types", typ: $funcType([ptrType$62, ast.Expr], [], false)}, {prop: "exprWithHint", name: "exprWithHint", pkg: "go/types", typ: $funcType([ptrType$62, ast.Expr, Type], [], false)}, {prop: "exprOrType", name: "exprOrType", pkg: "go/types", typ: $funcType([ptrType$62, ast.Expr, $Bool], [], false)}, {prop: "exclude", name: "exclude", pkg: "go/types", typ: $funcType([ptrType$62, $Uint], [], false)}, {prop: "singleValue", name: "singleValue", pkg: "go/types", typ: $funcType([ptrType$62], [], false)}, {prop: "qualifier", name: "qualifier", pkg: "go/types", typ: $funcType([ptrType$1], [$String], false)}, {prop: "markImports", name: "markImports", pkg: "go/types", typ: $funcType([ptrType$1], [], false)}, {prop: "sprintf", name: "sprintf", pkg: "go/types", typ: $funcType([$String, sliceType$6], [$String], true)}, {prop: "trace", name: "trace", pkg: "go/types", typ: $funcType([token.Pos, $String, sliceType$6], [], true)}, {prop: "dump", name: "dump", pkg: "go/types", typ: $funcType([$String, sliceType$6], [], true)}, {prop: "report", name: "report", pkg: "go/types", typ: $funcType([ptrType$104], [], false)}, {prop: "error", name: "error", pkg: "go/types", typ: $funcType([positioner, errors$1.Code, $String], [], false)}, {prop: "errorf", name: "errorf", pkg: "go/types", typ: $funcType([positioner, errors$1.Code, $String, sliceType$6], [], true)}, {prop: "softErrorf", name: "softErrorf", pkg: "go/types", typ: $funcType([positioner, errors$1.Code, $String, sliceType$6], [], true)}, {prop: "versionErrorf", name: "versionErrorf", pkg: "go/types", typ: $funcType([positioner, $String, $String, sliceType$6], [], true)}, {prop: "reportAltDecl", name: "reportAltDecl", pkg: "go/types", typ: $funcType([Object], [], false)}, {prop: "declare", name: "declare", pkg: "go/types", typ: $funcType([ptrType, ptrType$30, Object, token.Pos], [], false)}, {prop: "objDecl", name: "objDecl", pkg: "go/types", typ: $funcType([Object, ptrType$9], [], false)}, {prop: "validCycle", name: "validCycle", pkg: "go/types", typ: $funcType([Object], [$Bool], false)}, {prop: "cycleError", name: "cycleError", pkg: "go/types", typ: $funcType([sliceType$8], [], false)}, {prop: "walkDecls", name: "walkDecls", pkg: "go/types", typ: $funcType([sliceType$42, funcType$7], [], false)}, {prop: "walkDecl", name: "walkDecl", pkg: "go/types", typ: $funcType([ast.Decl, funcType$7], [], false)}, {prop: "constDecl", name: "constDecl", pkg: "go/types", typ: $funcType([ptrType$32, ast.Expr, ast.Expr, $Bool], [], false)}, {prop: "varDecl", name: "varDecl", pkg: "go/types", typ: $funcType([ptrType$16, sliceType$10, ast.Expr, ast.Expr], [], false)}, {prop: "isImportedConstraint", name: "isImportedConstraint", pkg: "go/types", typ: $funcType([Type], [$Bool], false)}, {prop: "typeDecl", name: "typeDecl", pkg: "go/types", typ: $funcType([ptrType$17, ptrType$90, ptrType$9], [], false)}, {prop: "collectTypeParams", name: "collectTypeParams", pkg: "go/types", typ: $funcType([ptrType$84, ptrType$49], [], false)}, {prop: "bound", name: "bound", pkg: "go/types", typ: $funcType([ast.Expr], [Type], false)}, {prop: "declareTypeParams", name: "declareTypeParams", pkg: "go/types", typ: $funcType([sliceType$9, sliceType$22], [sliceType$9], false)}, {prop: "collectMethods", name: "collectMethods", pkg: "go/types", typ: $funcType([ptrType$17], [], false)}, {prop: "checkFieldUniqueness", name: "checkFieldUniqueness", pkg: "go/types", typ: $funcType([ptrType$9], [], false)}, {prop: "funcDecl", name: "funcDecl", pkg: "go/types", typ: $funcType([ptrType$2, ptrType$58], [], false)}, {prop: "declStmt", name: "declStmt", pkg: "go/types", typ: $funcType([ast.Decl], [], false)}, {prop: "conversion", name: "conversion", pkg: "go/types", typ: $funcType([ptrType$62, Type], [], false)}, {prop: "addDeclDep", name: "addDeclDep", pkg: "go/types", typ: $funcType([Object], [], false)}, {prop: "brokenAlias", name: "brokenAlias", pkg: "go/types", typ: $funcType([ptrType$17], [], false)}, {prop: "validAlias", name: "validAlias", pkg: "go/types", typ: $funcType([ptrType$17, Type], [], false)}, {prop: "isBrokenAlias", name: "isBrokenAlias", pkg: "go/types", typ: $funcType([ptrType$17], [$Bool], false)}, {prop: "rememberUntyped", name: "rememberUntyped", pkg: "go/types", typ: $funcType([ast.Expr, $Bool, operandMode, ptrType$8, constant.Value], [], false)}, {prop: "later", name: "later", pkg: "go/types", typ: $funcType([funcType$1], [ptrType$124], false)}, {prop: "push", name: "push", pkg: "go/types", typ: $funcType([Object], [$Int], false)}, {prop: "pop", name: "pop", pkg: "go/types", typ: $funcType([], [Object], false)}, {prop: "needsCleanup", name: "needsCleanup", pkg: "go/types", typ: $funcType([cleaner], [], false)}, {prop: "initFiles", name: "initFiles", pkg: "go/types", typ: $funcType([sliceType$35], [], false)}, {prop: "handleBailout", name: "handleBailout", pkg: "go/types", typ: $funcType([ptrType$103], [], false)}, {prop: "Files", name: "Files", pkg: "", typ: $funcType([sliceType$35], [$error], false)}, {prop: "checkFiles", name: "checkFiles", pkg: "go/types", typ: $funcType([sliceType$35], [$error], false)}, {prop: "processDelayed", name: "processDelayed", pkg: "go/types", typ: $funcType([$Int], [], false)}, {prop: "cleanup", name: "cleanup", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "record", name: "record", pkg: "go/types", typ: $funcType([ptrType$62], [], false)}, {prop: "recordUntyped", name: "recordUntyped", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "recordTypeAndValue", name: "recordTypeAndValue", pkg: "go/types", typ: $funcType([ast.Expr, operandMode, Type, constant.Value], [], false)}, {prop: "recordBuiltinType", name: "recordBuiltinType", pkg: "go/types", typ: $funcType([ast.Expr, ptrType$27], [], false)}, {prop: "recordCommaOkTypes", name: "recordCommaOkTypes", pkg: "go/types", typ: $funcType([ast.Expr, arrayType$3], [], false)}, {prop: "recordInstance", name: "recordInstance", pkg: "go/types", typ: $funcType([ast.Expr, sliceType$2, Type], [], false)}, {prop: "recordDef", name: "recordDef", pkg: "go/types", typ: $funcType([ptrType$30, Object], [], false)}, {prop: "recordUse", name: "recordUse", pkg: "go/types", typ: $funcType([ptrType$30, Object], [], false)}, {prop: "recordImplicit", name: "recordImplicit", pkg: "go/types", typ: $funcType([ast.Node, Object], [], false)}, {prop: "recordSelection", name: "recordSelection", pkg: "go/types", typ: $funcType([ptrType$36, SelectionKind, Type, Object, sliceType$13, $Bool], [], false)}, {prop: "recordScope", name: "recordScope", pkg: "go/types", typ: $funcType([ast.Node, ptrType], [], false)}, {prop: "funcInst", name: "funcInst", pkg: "go/types", typ: $funcType([ptrType$62, ptrType$112], [], false)}, {prop: "instantiateSignature", name: "instantiateSignature", pkg: "go/types", typ: $funcType([token.Pos, ptrType$27, sliceType$2, sliceType$11], [ptrType$27], false)}, {prop: "callExpr", name: "callExpr", pkg: "go/types", typ: $funcType([ptrType$62, ptrType$86], [exprKind], false)}, {prop: "exprList", name: "exprList", pkg: "go/types", typ: $funcType([sliceType$11, $Bool], [sliceType$29, $Bool], false)}, {prop: "arguments$", name: "arguments", pkg: "go/types", typ: $funcType([ptrType$86, ptrType$27, sliceType$2, sliceType$29, sliceType$11], [ptrType$27], false)}, {prop: "selector", name: "selector", pkg: "go/types", typ: $funcType([ptrType$62, ptrType$36, ptrType$9, $Bool], [], false)}, {prop: "use", name: "use", pkg: "go/types", typ: $funcType([sliceType$11], [], true)}, {prop: "useLHS", name: "useLHS", pkg: "go/types", typ: $funcType([sliceType$11], [], true)}, {prop: "builtin", name: "builtin", pkg: "go/types", typ: $funcType([ptrType$62, ptrType$86, builtinId], [$Bool], false)}, {prop: "applyTypeFunc", name: "applyTypeFunc", pkg: "go/types", typ: $funcType([funcType$8, ptrType$62, builtinId], [Type], false)}, {prop: "assignment", name: "assignment", pkg: "go/types", typ: $funcType([ptrType$62, Type, $String], [], false)}, {prop: "initConst", name: "initConst", pkg: "go/types", typ: $funcType([ptrType$32, ptrType$62], [], false)}, {prop: "initVar", name: "initVar", pkg: "go/types", typ: $funcType([ptrType$16, ptrType$62, $String], [Type], false)}, {prop: "assignVar", name: "assignVar", pkg: "go/types", typ: $funcType([ast.Expr, ptrType$62], [Type], false)}, {prop: "typesSummary", name: "typesSummary", pkg: "go/types", typ: $funcType([sliceType$2, $Bool], [$String], false)}, {prop: "assignError", name: "assignError", pkg: "go/types", typ: $funcType([sliceType$11, $Int, $Int], [], false)}, {prop: "initVars", name: "initVars", pkg: "go/types", typ: $funcType([sliceType$10, sliceType$11, ast.Stmt], [], false)}, {prop: "assignVars", name: "assignVars", pkg: "go/types", typ: $funcType([sliceType$11, sliceType$11], [], false)}, {prop: "shortVarDecl", name: "shortVarDecl", pkg: "go/types", typ: $funcType([positioner, sliceType$11, sliceType$11], [], false)}]; - ptrType$29.methods = [{prop: "Dir", name: "Dir", pkg: "", typ: $funcType([], [ChanDir], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$8.methods = [{prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [BasicKind], false)}, {prop: "Info", name: "Info", pkg: "", typ: $funcType([], [BasicInfo], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$10.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - Error.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$125.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Unwrap", name: "Unwrap", pkg: "", typ: $funcType([], [$error], false)}]; - ptrType$101.methods = [{prop: "alignof", name: "alignof", pkg: "go/types", typ: $funcType([Type], [$Int64], false)}, {prop: "offsetsof", name: "offsetsof", pkg: "go/types", typ: $funcType([ptrType$11], [sliceType$19], false)}, {prop: "offsetof", name: "offsetof", pkg: "go/types", typ: $funcType([Type, sliceType$13], [$Int64], false)}, {prop: "sizeof", name: "sizeof", pkg: "go/types", typ: $funcType([Type], [$Int64], false)}, {prop: "Check", name: "Check", pkg: "", typ: $funcType([$String, ptrType$24, sliceType$35, ptrType$110], [ptrType$1, $error], false)}]; - ptrType$110.methods = [{prop: "TypeOf", name: "TypeOf", pkg: "", typ: $funcType([ast.Expr], [Type], false)}, {prop: "ObjectOf", name: "ObjectOf", pkg: "", typ: $funcType([ptrType$30], [Object], false)}]; - TypeAndValue.methods = [{prop: "IsVoid", name: "IsVoid", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsType", name: "IsType", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsBuiltin", name: "IsBuiltin", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsValue", name: "IsValue", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsNil", name: "IsNil", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Addressable", name: "Addressable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Assignable", name: "Assignable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "HasOk", name: "HasOk", pkg: "", typ: $funcType([], [$Bool], false)}]; - ptrType$102.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - version.init("go/types", [{prop: "major", name: "major", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "minor", name: "minor", embedded: false, exported: false, typ: $Int, tag: ""}]); - Union.init("go/types", [{prop: "terms", name: "terms", embedded: false, exported: false, typ: sliceType$12, tag: ""}]); - Term.init("go/types", [{prop: "tilde", name: "tilde", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: Type, tag: ""}]); - unifier.init("go/types", [{prop: "exact", name: "exact", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "x", name: "x", embedded: false, exported: false, typ: tparamsList, tag: ""}, {prop: "y", name: "y", embedded: false, exported: false, typ: tparamsList, tag: ""}, {prop: "types", name: "types", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "depth", name: "depth", embedded: false, exported: false, typ: $Int, tag: ""}]); - tparamsList.init("go/types", [{prop: "unifier", name: "unifier", embedded: false, exported: false, typ: ptrType$22, tag: ""}, {prop: "tparams", name: "tparams", embedded: false, exported: false, typ: sliceType$9, tag: ""}, {prop: "indices", name: "indices", embedded: false, exported: false, typ: sliceType$13, tag: ""}]); - term.init("go/types", [{prop: "tilde", name: "tilde", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: Type, tag: ""}]); - Qualifier.init([ptrType$1], [$String], false); - typeWriter.init("go/types", [{prop: "buf", name: "buf", embedded: false, exported: false, typ: ptrType$114, tag: ""}, {prop: "seen", name: "seen", embedded: false, exported: false, typ: mapType, tag: ""}, {prop: "qf", name: "qf", embedded: false, exported: false, typ: Qualifier, tag: ""}, {prop: "ctxt", name: "ctxt", embedded: false, exported: false, typ: ptrType$51, tag: ""}, {prop: "tparams", name: "tparams", embedded: false, exported: false, typ: ptrType$48, tag: ""}, {prop: "paramNames", name: "paramNames", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "tpSubscripts", name: "tpSubscripts", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "pkgInfo", name: "pkgInfo", embedded: false, exported: false, typ: $Bool, tag: ""}]); - _TypeSet.init("go/types", [{prop: "methods", name: "methods", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "terms", name: "terms", embedded: false, exported: false, typ: termlist, tag: ""}, {prop: "comparable", name: "comparable", embedded: false, exported: false, typ: $Bool, tag: ""}]); - byUniqueMethodName.init(ptrType$2); - TypeParam.init("go/types", [{prop: "check", name: "check", embedded: false, exported: false, typ: ptrType$5, tag: ""}, {prop: "id", name: "id", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "obj", name: "obj", embedded: false, exported: false, typ: ptrType$17, tag: ""}, {prop: "index", name: "index", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "bound", name: "bound", embedded: false, exported: false, typ: Type, tag: ""}]); - TypeParamList.init("go/types", [{prop: "tparams", name: "tparams", embedded: false, exported: false, typ: sliceType$9, tag: ""}]); - TypeList.init("go/types", [{prop: "types", name: "types", embedded: false, exported: false, typ: sliceType$2, tag: ""}]); - Type.init([{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}]); - Tuple.init("go/types", [{prop: "vars", name: "vars", embedded: false, exported: false, typ: sliceType$10, tag: ""}]); - termlist.init(ptrType$4); - substMap.init(ptrType$14, Type); - subster.init("go/types", [{prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "smap", name: "smap", embedded: false, exported: false, typ: substMap, tag: ""}, {prop: "check", name: "check", embedded: false, exported: false, typ: ptrType$5, tag: ""}, {prop: "expanding", name: "expanding", embedded: false, exported: false, typ: ptrType$9, tag: ""}, {prop: "ctxt", name: "ctxt", embedded: false, exported: false, typ: ptrType$51, tag: ""}]); - Struct.init("go/types", [{prop: "fields", name: "fields", embedded: false, exported: false, typ: sliceType$10, tag: ""}, {prop: "tags", name: "tags", embedded: false, exported: false, typ: sliceType$5, tag: ""}]); - valueMap.init($emptyInterface, sliceType$18); - valueType.init("go/types", [{prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: Type, tag: ""}]); - Slice.init("go/types", [{prop: "elem", name: "elem", embedded: false, exported: false, typ: Type, tag: ""}]); - Sizes.init([{prop: "Alignof", name: "Alignof", pkg: "", typ: $funcType([Type], [$Int64], false)}, {prop: "Offsetsof", name: "Offsetsof", pkg: "", typ: $funcType([sliceType$10], [sliceType$19], false)}, {prop: "Sizeof", name: "Sizeof", pkg: "", typ: $funcType([Type], [$Int64], false)}]); - StdSizes.init("", [{prop: "WordSize", name: "WordSize", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "MaxAlign", name: "MaxAlign", embedded: false, exported: true, typ: $Int64, tag: ""}]); - Signature.init("go/types", [{prop: "rparams", name: "rparams", embedded: false, exported: false, typ: ptrType$48, tag: ""}, {prop: "tparams", name: "tparams", embedded: false, exported: false, typ: ptrType$48, tag: ""}, {prop: "scope", name: "scope", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "recv", name: "recv", embedded: false, exported: false, typ: ptrType$16, tag: ""}, {prop: "params", name: "params", embedded: false, exported: false, typ: ptrType$15, tag: ""}, {prop: "results", name: "results", embedded: false, exported: false, typ: ptrType$15, tag: ""}, {prop: "variadic", name: "variadic", embedded: false, exported: false, typ: $Bool, tag: ""}]); - Selection.init("go/types", [{prop: "kind", name: "kind", embedded: false, exported: false, typ: SelectionKind, tag: ""}, {prop: "recv", name: "recv", embedded: false, exported: false, typ: Type, tag: ""}, {prop: "obj", name: "obj", embedded: false, exported: false, typ: Object, tag: ""}, {prop: "index", name: "index", embedded: false, exported: false, typ: sliceType$13, tag: ""}, {prop: "indirect", name: "indirect", embedded: false, exported: false, typ: $Bool, tag: ""}]); - Scope.init("go/types", [{prop: "parent", name: "parent", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "children", name: "children", embedded: false, exported: false, typ: sliceType$20, tag: ""}, {prop: "number", name: "number", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "elems", name: "elems", embedded: false, exported: false, typ: mapType$1, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "end", name: "end", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "comment", name: "comment", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "isFunc", name: "isFunc", embedded: false, exported: false, typ: $Bool, tag: ""}]); - lazyObject.init("go/types", [{prop: "parent", name: "parent", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "resolve", name: "resolve", embedded: false, exported: false, typ: funcType$4, tag: ""}, {prop: "obj", name: "obj", embedded: false, exported: false, typ: Object, tag: ""}, {prop: "once", name: "once", embedded: false, exported: false, typ: sync.Once, tag: ""}]); - declInfo.init("go/types", [{prop: "file", name: "file", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "lhs", name: "lhs", embedded: false, exported: false, typ: sliceType$10, tag: ""}, {prop: "vtyp", name: "vtyp", embedded: false, exported: false, typ: ast.Expr, tag: ""}, {prop: "init", name: "init", embedded: false, exported: false, typ: ast.Expr, tag: ""}, {prop: "inherited", name: "inherited", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "tdecl", name: "tdecl", embedded: false, exported: false, typ: ptrType$90, tag: ""}, {prop: "fdecl", name: "fdecl", embedded: false, exported: false, typ: ptrType$87, tag: ""}, {prop: "deps", name: "deps", embedded: false, exported: false, typ: mapType$2, tag: ""}]); - inSourceOrder.init(Object); - ifacePair.init("go/types", [{prop: "x", name: "x", embedded: false, exported: false, typ: ptrType$13, tag: ""}, {prop: "y", name: "y", embedded: false, exported: false, typ: ptrType$13, tag: ""}, {prop: "prev", name: "prev", embedded: false, exported: false, typ: ptrType$23, tag: ""}]); - Pointer.init("go/types", [{prop: "base", name: "base", embedded: false, exported: false, typ: Type, tag: ""}]); - Package.init("go/types", [{prop: "path", name: "path", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "scope", name: "scope", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "complete", name: "complete", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "imports", name: "imports", embedded: false, exported: false, typ: sliceType$24, tag: ""}, {prop: "fake", name: "fake", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "cgo", name: "cgo", embedded: false, exported: false, typ: $Bool, tag: ""}]); - operand.init("go/types", [{prop: "mode", name: "mode", embedded: false, exported: false, typ: operandMode, tag: ""}, {prop: "expr", name: "expr", embedded: false, exported: false, typ: ast.Expr, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: Type, tag: ""}, {prop: "val", name: "val", embedded: false, exported: false, typ: constant.Value, tag: ""}, {prop: "id", name: "id", embedded: false, exported: false, typ: builtinId, tag: ""}]); - objset.init($String, Object); - Object.init([{prop: "Exported", name: "Exported", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Id", name: "Id", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Parent", name: "Parent", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "Pkg", name: "Pkg", pkg: "", typ: $funcType([], [ptrType$1], false)}, {prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [Type], false)}, {prop: "color", name: "color", pkg: "go/types", typ: $funcType([], [color], false)}, {prop: "order", name: "order", pkg: "go/types", typ: $funcType([], [$Uint32], false)}, {prop: "sameId", name: "sameId", pkg: "go/types", typ: $funcType([ptrType$1, $String], [$Bool], false)}, {prop: "scopePos", name: "scopePos", pkg: "go/types", typ: $funcType([], [token.Pos], false)}, {prop: "setColor", name: "setColor", pkg: "go/types", typ: $funcType([color], [], false)}, {prop: "setOrder", name: "setOrder", pkg: "go/types", typ: $funcType([$Uint32], [], false)}, {prop: "setParent", name: "setParent", pkg: "go/types", typ: $funcType([ptrType], [], false)}, {prop: "setScopePos", name: "setScopePos", pkg: "go/types", typ: $funcType([token.Pos], [], false)}, {prop: "setType", name: "setType", pkg: "go/types", typ: $funcType([Type], [], false)}]); - object.init("go/types", [{prop: "parent", name: "parent", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "pkg", name: "pkg", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: Type, tag: ""}, {prop: "order_", name: "order_", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "color_", name: "color_", embedded: false, exported: false, typ: color, tag: ""}, {prop: "scopePos_", name: "scopePos_", embedded: false, exported: false, typ: token.Pos, tag: ""}]); - PkgName.init("go/types", [{prop: "object", name: "object", embedded: true, exported: false, typ: object, tag: ""}, {prop: "imported", name: "imported", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "used", name: "used", embedded: false, exported: false, typ: $Bool, tag: ""}]); - Const.init("go/types", [{prop: "object", name: "object", embedded: true, exported: false, typ: object, tag: ""}, {prop: "val", name: "val", embedded: false, exported: false, typ: constant.Value, tag: ""}]); - TypeName.init("go/types", [{prop: "object", name: "object", embedded: true, exported: false, typ: object, tag: ""}]); - Var.init("go/types", [{prop: "object", name: "object", embedded: true, exported: false, typ: object, tag: ""}, {prop: "embedded", name: "embedded", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "isField", name: "isField", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "used", name: "used", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "origin", name: "origin", embedded: false, exported: false, typ: ptrType$16, tag: ""}]); - Func.init("go/types", [{prop: "object", name: "object", embedded: true, exported: false, typ: object, tag: ""}, {prop: "hasPtrRecv_", name: "hasPtrRecv_", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "origin", name: "origin", embedded: false, exported: false, typ: ptrType$2, tag: ""}]); - Label.init("go/types", [{prop: "object", name: "object", embedded: true, exported: false, typ: object, tag: ""}, {prop: "used", name: "used", embedded: false, exported: false, typ: $Bool, tag: ""}]); - Builtin.init("go/types", [{prop: "object", name: "object", embedded: true, exported: false, typ: object, tag: ""}, {prop: "id", name: "id", embedded: false, exported: false, typ: builtinId, tag: ""}]); - Nil.init("go/types", [{prop: "object", name: "object", embedded: true, exported: false, typ: object, tag: ""}]); - Named.init("go/types", [{prop: "check", name: "check", embedded: false, exported: false, typ: ptrType$5, tag: ""}, {prop: "obj", name: "obj", embedded: false, exported: false, typ: ptrType$17, tag: ""}, {prop: "fromRHS", name: "fromRHS", embedded: false, exported: false, typ: Type, tag: ""}, {prop: "inst", name: "inst", embedded: false, exported: false, typ: ptrType$52, tag: ""}, {prop: "mu", name: "mu", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "state_", name: "state_", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "underlying", name: "underlying", embedded: false, exported: false, typ: Type, tag: ""}, {prop: "tparams", name: "tparams", embedded: false, exported: false, typ: ptrType$48, tag: ""}, {prop: "methods", name: "methods", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "loader", name: "loader", embedded: false, exported: false, typ: funcType$6, tag: ""}]); - instance.init("go/types", [{prop: "orig", name: "orig", embedded: false, exported: false, typ: ptrType$9, tag: ""}, {prop: "targs", name: "targs", embedded: false, exported: false, typ: ptrType$56, tag: ""}, {prop: "expandedMethods", name: "expandedMethods", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "ctxt", name: "ctxt", embedded: false, exported: false, typ: ptrType$51, tag: ""}]); - monoGraph.init("go/types", [{prop: "vertices", name: "vertices", embedded: false, exported: false, typ: sliceType$37, tag: ""}, {prop: "edges", name: "edges", embedded: false, exported: false, typ: sliceType$38, tag: ""}, {prop: "canon", name: "canon", embedded: false, exported: false, typ: mapType$3, tag: ""}, {prop: "nameIdx", name: "nameIdx", embedded: false, exported: false, typ: mapType$4, tag: ""}]); - monoVertex.init("go/types", [{prop: "weight", name: "weight", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "pre", name: "pre", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "len", name: "len", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "obj", name: "obj", embedded: false, exported: false, typ: ptrType$17, tag: ""}]); - monoEdge.init("go/types", [{prop: "dst", name: "dst", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "src", name: "src", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "weight", name: "weight", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: Type, tag: ""}]); - MethodSet.init("go/types", [{prop: "list", name: "list", embedded: false, exported: false, typ: sliceType$1, tag: ""}]); - methodSet.init($String, ptrType$3); - Map.init("go/types", [{prop: "key", name: "key", embedded: false, exported: false, typ: Type, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: Type, tag: ""}]); - embeddedType.init("go/types", [{prop: "typ", name: "typ", embedded: false, exported: false, typ: Type, tag: ""}, {prop: "index", name: "index", embedded: false, exported: false, typ: sliceType$13, tag: ""}, {prop: "indirect", name: "indirect", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "multiples", name: "multiples", embedded: false, exported: false, typ: $Bool, tag: ""}]); - instanceLookup.init("go/types", [{prop: "buf", name: "buf", embedded: false, exported: false, typ: arrayType$1, tag: ""}, {prop: "m", name: "m", embedded: false, exported: false, typ: mapType$5, tag: ""}]); - block.init("go/types", [{prop: "parent", name: "parent", embedded: false, exported: false, typ: ptrType$92, tag: ""}, {prop: "lstmt", name: "lstmt", embedded: false, exported: false, typ: ptrType$65, tag: ""}, {prop: "labels", name: "labels", embedded: false, exported: false, typ: mapType$6, tag: ""}]); - Interface.init("go/types", [{prop: "check", name: "check", embedded: false, exported: false, typ: ptrType$5, tag: ""}, {prop: "methods", name: "methods", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "embeddeds", name: "embeddeds", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "embedPos", name: "embedPos", embedded: false, exported: false, typ: ptrType$6, tag: ""}, {prop: "implicit", name: "implicit", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "complete", name: "complete", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "tset", name: "tset", embedded: false, exported: false, typ: ptrType$7, tag: ""}]); - dependency.init([{prop: "Exported", name: "Exported", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Id", name: "Id", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Parent", name: "Parent", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "Pkg", name: "Pkg", pkg: "", typ: $funcType([], [ptrType$1], false)}, {prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [Type], false)}, {prop: "color", name: "color", pkg: "go/types", typ: $funcType([], [color], false)}, {prop: "isDependency", name: "isDependency", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "order", name: "order", pkg: "go/types", typ: $funcType([], [$Uint32], false)}, {prop: "sameId", name: "sameId", pkg: "go/types", typ: $funcType([ptrType$1, $String], [$Bool], false)}, {prop: "scopePos", name: "scopePos", pkg: "go/types", typ: $funcType([], [token.Pos], false)}, {prop: "setColor", name: "setColor", pkg: "go/types", typ: $funcType([color], [], false)}, {prop: "setOrder", name: "setOrder", pkg: "go/types", typ: $funcType([$Uint32], [], false)}, {prop: "setParent", name: "setParent", pkg: "go/types", typ: $funcType([ptrType], [], false)}, {prop: "setScopePos", name: "setScopePos", pkg: "go/types", typ: $funcType([token.Pos], [], false)}, {prop: "setType", name: "setType", pkg: "go/types", typ: $funcType([Type], [], false)}]); - graphNode.init("go/types", [{prop: "obj", name: "obj", embedded: false, exported: false, typ: dependency, tag: ""}, {prop: "pred", name: "pred", embedded: false, exported: false, typ: nodeSet, tag: ""}, {prop: "succ", name: "succ", embedded: false, exported: false, typ: nodeSet, tag: ""}, {prop: "index", name: "index", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "ndeps", name: "ndeps", embedded: false, exported: false, typ: $Int, tag: ""}]); - nodeSet.init(ptrType$95, $Bool); - nodeQueue.init(ptrType$95); - tpWalker.init("go/types", [{prop: "seen", name: "seen", embedded: false, exported: false, typ: mapType, tag: ""}, {prop: "tparams", name: "tparams", embedded: false, exported: false, typ: sliceType$9, tag: ""}]); - cycleFinder.init("go/types", [{prop: "tparams", name: "tparams", embedded: false, exported: false, typ: sliceType$9, tag: ""}, {prop: "types", name: "types", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "seen", name: "seen", embedded: false, exported: false, typ: mapType, tag: ""}]); - opPredicates.init(token.Token, funcType$3); - error_.init("go/types", [{prop: "desc", name: "desc", embedded: false, exported: false, typ: sliceType$31, tag: ""}, {prop: "code", name: "code", embedded: false, exported: false, typ: errors$1.Code, tag: ""}, {prop: "soft", name: "soft", embedded: false, exported: false, typ: $Bool, tag: ""}]); - errorDesc.init("go/types", [{prop: "posn", name: "posn", embedded: false, exported: false, typ: positioner, tag: ""}, {prop: "format", name: "format", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "args", name: "args", embedded: false, exported: false, typ: sliceType$6, tag: ""}]); - positioner.init([{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}]); - posSpan.init("go/types", [{prop: "start", name: "start", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "end", name: "end", embedded: false, exported: false, typ: token.Pos, tag: ""}]); - decl.init([{prop: "node", name: "node", pkg: "go/types", typ: $funcType([], [ast.Node], false)}]); - importDecl.init("go/types", [{prop: "spec", name: "spec", embedded: false, exported: false, typ: ptrType$106, tag: ""}]); - constDecl.init("go/types", [{prop: "spec", name: "spec", embedded: false, exported: false, typ: ptrType$88, tag: ""}, {prop: "iota", name: "iota", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: ast.Expr, tag: ""}, {prop: "init", name: "init", embedded: false, exported: false, typ: sliceType$11, tag: ""}, {prop: "inherited", name: "inherited", embedded: false, exported: false, typ: $Bool, tag: ""}]); - varDecl.init("go/types", [{prop: "spec", name: "spec", embedded: false, exported: false, typ: ptrType$88, tag: ""}]); - typeDecl.init("go/types", [{prop: "spec", name: "spec", embedded: false, exported: false, typ: ptrType$90, tag: ""}]); - funcDecl.init("go/types", [{prop: "decl", name: "decl", embedded: false, exported: false, typ: ptrType$87, tag: ""}]); - Context.init("go/types", [{prop: "mu", name: "mu", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "typeMap", name: "typeMap", embedded: false, exported: false, typ: mapType$7, tag: ""}, {prop: "nextID", name: "nextID", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "originIDs", name: "originIDs", embedded: false, exported: false, typ: mapType$8, tag: ""}]); - ctxtEntry.init("go/types", [{prop: "orig", name: "orig", embedded: false, exported: false, typ: Type, tag: ""}, {prop: "targs", name: "targs", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "instance", name: "instance", embedded: false, exported: false, typ: Type, tag: ""}]); - exprInfo.init("go/types", [{prop: "isLhs", name: "isLhs", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "mode", name: "mode", embedded: false, exported: false, typ: operandMode, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType$8, tag: ""}, {prop: "val", name: "val", embedded: false, exported: false, typ: constant.Value, tag: ""}]); - environment.init("go/types", [{prop: "decl", name: "decl", embedded: false, exported: false, typ: ptrType$58, tag: ""}, {prop: "scope", name: "scope", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "iota", name: "iota", embedded: false, exported: false, typ: constant.Value, tag: ""}, {prop: "errpos", name: "errpos", embedded: false, exported: false, typ: positioner, tag: ""}, {prop: "inTParamList", name: "inTParamList", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "sig", name: "sig", embedded: false, exported: false, typ: ptrType$27, tag: ""}, {prop: "isPanic", name: "isPanic", embedded: false, exported: false, typ: mapType$9, tag: ""}, {prop: "hasLabel", name: "hasLabel", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "hasCallOrRecv", name: "hasCallOrRecv", embedded: false, exported: false, typ: $Bool, tag: ""}]); - importKey.init("go/types", [{prop: "path", name: "path", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "dir", name: "dir", embedded: false, exported: false, typ: $String, tag: ""}]); - dotImportKey.init("go/types", [{prop: "scope", name: "scope", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}]); - action.init("go/types", [{prop: "f", name: "f", embedded: false, exported: false, typ: funcType$1, tag: ""}, {prop: "desc", name: "desc", embedded: false, exported: false, typ: ptrType$109, tag: ""}]); - actionDesc.init("go/types", [{prop: "pos", name: "pos", embedded: false, exported: false, typ: positioner, tag: ""}, {prop: "format", name: "format", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "args", name: "args", embedded: false, exported: false, typ: sliceType$6, tag: ""}]); - Checker.init("go/types", [{prop: "conf", name: "conf", embedded: false, exported: false, typ: ptrType$101, tag: ""}, {prop: "ctxt", name: "ctxt", embedded: false, exported: false, typ: ptrType$51, tag: ""}, {prop: "fset", name: "fset", embedded: false, exported: false, typ: ptrType$24, tag: ""}, {prop: "pkg", name: "pkg", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "Info", name: "Info", embedded: true, exported: true, typ: ptrType$110, tag: ""}, {prop: "version", name: "version", embedded: false, exported: false, typ: version, tag: ""}, {prop: "nextID", name: "nextID", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "objMap", name: "objMap", embedded: false, exported: false, typ: mapType$11, tag: ""}, {prop: "impMap", name: "impMap", embedded: false, exported: false, typ: mapType$12, tag: ""}, {prop: "valids", name: "valids", embedded: false, exported: false, typ: instanceLookup, tag: ""}, {prop: "pkgPathMap", name: "pkgPathMap", embedded: false, exported: false, typ: mapType$14, tag: ""}, {prop: "seenPkgMap", name: "seenPkgMap", embedded: false, exported: false, typ: mapType$15, tag: ""}, {prop: "files", name: "files", embedded: false, exported: false, typ: sliceType$35, tag: ""}, {prop: "imports", name: "imports", embedded: false, exported: false, typ: sliceType$36, tag: ""}, {prop: "dotImportMap", name: "dotImportMap", embedded: false, exported: false, typ: mapType$16, tag: ""}, {prop: "recvTParamMap", name: "recvTParamMap", embedded: false, exported: false, typ: mapType$17, tag: ""}, {prop: "brokenAliases", name: "brokenAliases", embedded: false, exported: false, typ: mapType$18, tag: ""}, {prop: "unionTypeSets", name: "unionTypeSets", embedded: false, exported: false, typ: mapType$19, tag: ""}, {prop: "mono", name: "mono", embedded: false, exported: false, typ: monoGraph, tag: ""}, {prop: "firstErr", name: "firstErr", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "methods", name: "methods", embedded: false, exported: false, typ: mapType$20, tag: ""}, {prop: "untyped", name: "untyped", embedded: false, exported: false, typ: mapType$21, tag: ""}, {prop: "delayed", name: "delayed", embedded: false, exported: false, typ: sliceType$39, tag: ""}, {prop: "objPath", name: "objPath", embedded: false, exported: false, typ: sliceType$8, tag: ""}, {prop: "cleaners", name: "cleaners", embedded: false, exported: false, typ: sliceType$40, tag: ""}, {prop: "environment", name: "environment", embedded: true, exported: false, typ: environment, tag: ""}, {prop: "indent", name: "indent", embedded: false, exported: false, typ: $Int, tag: ""}]); - cleaner.init([{prop: "cleanup", name: "cleanup", pkg: "go/types", typ: $funcType([], [], false)}]); - bailout.init("", []); - Chan.init("go/types", [{prop: "dir", name: "dir", embedded: false, exported: false, typ: ChanDir, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: Type, tag: ""}]); - Basic.init("go/types", [{prop: "kind", name: "kind", embedded: false, exported: false, typ: BasicKind, tag: ""}, {prop: "info", name: "info", embedded: false, exported: false, typ: BasicInfo, tag: ""}, {prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}]); - Array.init("go/types", [{prop: "len", name: "len", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: Type, tag: ""}]); - Error.init("go/types", [{prop: "Fset", name: "Fset", embedded: false, exported: true, typ: ptrType$24, tag: ""}, {prop: "Pos", name: "Pos", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Msg", name: "Msg", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Soft", name: "Soft", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "go116code", name: "go116code", embedded: false, exported: false, typ: errors$1.Code, tag: ""}, {prop: "go116start", name: "go116start", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "go116end", name: "go116end", embedded: false, exported: false, typ: token.Pos, tag: ""}]); - ArgumentError.init("", [{prop: "Index", name: "Index", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Err", name: "Err", embedded: false, exported: true, typ: $error, tag: ""}]); - Importer.init([{prop: "Import", name: "Import", pkg: "", typ: $funcType([$String], [ptrType$1, $error], false)}]); - ImporterFrom.init([{prop: "Import", name: "Import", pkg: "", typ: $funcType([$String], [ptrType$1, $error], false)}, {prop: "ImportFrom", name: "ImportFrom", pkg: "", typ: $funcType([$String, $String, ImportMode], [ptrType$1, $error], false)}]); - Config.init("go/types", [{prop: "Context", name: "Context", embedded: false, exported: true, typ: ptrType$51, tag: ""}, {prop: "GoVersion", name: "GoVersion", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "IgnoreFuncBodies", name: "IgnoreFuncBodies", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "FakeImportC", name: "FakeImportC", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "go115UsesCgo", name: "go115UsesCgo", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "Error", name: "Error", embedded: false, exported: true, typ: funcType$9, tag: ""}, {prop: "Importer", name: "Importer", embedded: false, exported: true, typ: Importer, tag: ""}, {prop: "Sizes", name: "Sizes", embedded: false, exported: true, typ: Sizes, tag: ""}, {prop: "DisableUnusedImportCheck", name: "DisableUnusedImportCheck", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "oldComparableSemantics", name: "oldComparableSemantics", embedded: false, exported: false, typ: $Bool, tag: ""}]); - Info.init("", [{prop: "Types", name: "Types", embedded: false, exported: true, typ: mapType$22, tag: ""}, {prop: "Instances", name: "Instances", embedded: false, exported: true, typ: mapType$23, tag: ""}, {prop: "Defs", name: "Defs", embedded: false, exported: true, typ: mapType$24, tag: ""}, {prop: "Uses", name: "Uses", embedded: false, exported: true, typ: mapType$24, tag: ""}, {prop: "Implicits", name: "Implicits", embedded: false, exported: true, typ: mapType$25, tag: ""}, {prop: "Selections", name: "Selections", embedded: false, exported: true, typ: mapType$26, tag: ""}, {prop: "Scopes", name: "Scopes", embedded: false, exported: true, typ: mapType$27, tag: ""}, {prop: "InitOrder", name: "InitOrder", embedded: false, exported: true, typ: sliceType$30, tag: ""}]); - TypeAndValue.init("go/types", [{prop: "mode", name: "mode", embedded: false, exported: false, typ: operandMode, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: Type, tag: ""}, {prop: "Value", name: "Value", embedded: false, exported: true, typ: constant.Value, tag: ""}]); - Instance.init("", [{prop: "TypeArgs", name: "TypeArgs", embedded: false, exported: true, typ: ptrType$56, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: Type, tag: ""}]); - Initializer.init("", [{prop: "Lhs", name: "Lhs", embedded: false, exported: true, typ: sliceType$10, tag: ""}, {prop: "Rhs", name: "Rhs", embedded: false, exported: true, typ: ast.Expr, tag: ""}]); - methodInfo.init("go/types", [{prop: "obj", name: "obj", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "ptr", name: "ptr", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "recv", name: "recv", embedded: false, exported: false, typ: ptrType$30, tag: ""}]); + ptrType.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Copy", name: "Copy", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "Longest", name: "Longest", pkg: "", typ: $funcType([], [], false)}, {prop: "get", name: "get", pkg: "regexp", typ: $funcType([], [ptrType$3], false)}, {prop: "put", name: "put", pkg: "regexp", typ: $funcType([ptrType$3], [], false)}, {prop: "NumSubexp", name: "NumSubexp", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "SubexpNames", name: "SubexpNames", pkg: "", typ: $funcType([], [sliceType$3], false)}, {prop: "SubexpIndex", name: "SubexpIndex", pkg: "", typ: $funcType([$String], [$Int], false)}, {prop: "LiteralPrefix", name: "LiteralPrefix", pkg: "", typ: $funcType([], [$String, $Bool], false)}, {prop: "MatchReader", name: "MatchReader", pkg: "", typ: $funcType([io.RuneReader], [$Bool], false)}, {prop: "MatchString", name: "MatchString", pkg: "", typ: $funcType([$String], [$Bool], false)}, {prop: "Match", name: "Match", pkg: "", typ: $funcType([sliceType$4], [$Bool], false)}, {prop: "ReplaceAllString", name: "ReplaceAllString", pkg: "", typ: $funcType([$String, $String], [$String], false)}, {prop: "ReplaceAllLiteralString", name: "ReplaceAllLiteralString", pkg: "", typ: $funcType([$String, $String], [$String], false)}, {prop: "ReplaceAllStringFunc", name: "ReplaceAllStringFunc", pkg: "", typ: $funcType([$String, funcType], [$String], false)}, {prop: "replaceAll", name: "replaceAll", pkg: "regexp", typ: $funcType([sliceType$4, $String, $Int, funcType$1], [sliceType$4], false)}, {prop: "ReplaceAll", name: "ReplaceAll", pkg: "", typ: $funcType([sliceType$4, sliceType$4], [sliceType$4], false)}, {prop: "ReplaceAllLiteral", name: "ReplaceAllLiteral", pkg: "", typ: $funcType([sliceType$4, sliceType$4], [sliceType$4], false)}, {prop: "ReplaceAllFunc", name: "ReplaceAllFunc", pkg: "", typ: $funcType([sliceType$4, funcType$2], [sliceType$4], false)}, {prop: "pad", name: "pad", pkg: "regexp", typ: $funcType([sliceType$7], [sliceType$7], false)}, {prop: "allMatches", name: "allMatches", pkg: "regexp", typ: $funcType([$String, sliceType$4, $Int, funcType$3], [], false)}, {prop: "Find", name: "Find", pkg: "", typ: $funcType([sliceType$4], [sliceType$4], false)}, {prop: "FindIndex", name: "FindIndex", pkg: "", typ: $funcType([sliceType$4], [sliceType$7], false)}, {prop: "FindString", name: "FindString", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "FindStringIndex", name: "FindStringIndex", pkg: "", typ: $funcType([$String], [sliceType$7], false)}, {prop: "FindReaderIndex", name: "FindReaderIndex", pkg: "", typ: $funcType([io.RuneReader], [sliceType$7], false)}, {prop: "FindSubmatch", name: "FindSubmatch", pkg: "", typ: $funcType([sliceType$4], [sliceType$8], false)}, {prop: "Expand", name: "Expand", pkg: "", typ: $funcType([sliceType$4, sliceType$4, sliceType$4, sliceType$7], [sliceType$4], false)}, {prop: "ExpandString", name: "ExpandString", pkg: "", typ: $funcType([sliceType$4, $String, $String, sliceType$7], [sliceType$4], false)}, {prop: "expand", name: "expand", pkg: "regexp", typ: $funcType([sliceType$4, $String, sliceType$4, $String, sliceType$7], [sliceType$4], false)}, {prop: "FindSubmatchIndex", name: "FindSubmatchIndex", pkg: "", typ: $funcType([sliceType$4], [sliceType$7], false)}, {prop: "FindStringSubmatch", name: "FindStringSubmatch", pkg: "", typ: $funcType([$String], [sliceType$3], false)}, {prop: "FindStringSubmatchIndex", name: "FindStringSubmatchIndex", pkg: "", typ: $funcType([$String], [sliceType$7], false)}, {prop: "FindReaderSubmatchIndex", name: "FindReaderSubmatchIndex", pkg: "", typ: $funcType([io.RuneReader], [sliceType$7], false)}, {prop: "FindAll", name: "FindAll", pkg: "", typ: $funcType([sliceType$4, $Int], [sliceType$8], false)}, {prop: "FindAllIndex", name: "FindAllIndex", pkg: "", typ: $funcType([sliceType$4, $Int], [sliceType$9], false)}, {prop: "FindAllString", name: "FindAllString", pkg: "", typ: $funcType([$String, $Int], [sliceType$3], false)}, {prop: "FindAllStringIndex", name: "FindAllStringIndex", pkg: "", typ: $funcType([$String, $Int], [sliceType$9], false)}, {prop: "FindAllSubmatch", name: "FindAllSubmatch", pkg: "", typ: $funcType([sliceType$4, $Int], [sliceType$10], false)}, {prop: "FindAllSubmatchIndex", name: "FindAllSubmatchIndex", pkg: "", typ: $funcType([sliceType$4, $Int], [sliceType$9], false)}, {prop: "FindAllStringSubmatch", name: "FindAllStringSubmatch", pkg: "", typ: $funcType([$String, $Int], [sliceType$11], false)}, {prop: "FindAllStringSubmatchIndex", name: "FindAllStringSubmatchIndex", pkg: "", typ: $funcType([$String, $Int], [sliceType$9], false)}, {prop: "Split", name: "Split", pkg: "", typ: $funcType([$String, $Int], [sliceType$3], false)}, {prop: "MarshalText", name: "MarshalText", pkg: "", typ: $funcType([], [sliceType$4, $error], false)}, {prop: "UnmarshalText", name: "UnmarshalText", pkg: "", typ: $funcType([sliceType$4], [$error], false)}, {prop: "doOnePass", name: "doOnePass", pkg: "regexp", typ: $funcType([io.RuneReader, sliceType$4, $String, $Int, $Int, sliceType$7], [sliceType$7], false)}, {prop: "doMatch", name: "doMatch", pkg: "regexp", typ: $funcType([io.RuneReader, sliceType$4, $String], [$Bool], false)}, {prop: "doExecute", name: "doExecute", pkg: "regexp", typ: $funcType([io.RuneReader, sliceType$4, $String, $Int, $Int, sliceType$7], [sliceType$7], false)}, {prop: "tryBacktrack", name: "tryBacktrack", pkg: "regexp", typ: $funcType([ptrType$16, input, $Uint32, $Int], [$Bool], false)}, {prop: "backtrack", name: "backtrack", pkg: "regexp", typ: $funcType([sliceType$4, $String, $Int, $Int, sliceType$7], [sliceType$7], false)}]; + ptrType$17.methods = [{prop: "step", name: "step", pkg: "regexp", typ: $funcType([$Int], [$Int32, $Int], false)}, {prop: "canCheckPrefix", name: "canCheckPrefix", pkg: "regexp", typ: $funcType([], [$Bool], false)}, {prop: "hasPrefix", name: "hasPrefix", pkg: "regexp", typ: $funcType([ptrType], [$Bool], false)}, {prop: "index", name: "index", pkg: "regexp", typ: $funcType([ptrType, $Int], [$Int], false)}, {prop: "context", name: "context", pkg: "regexp", typ: $funcType([$Int], [lazyFlag], false)}]; + ptrType$18.methods = [{prop: "step", name: "step", pkg: "regexp", typ: $funcType([$Int], [$Int32, $Int], false)}, {prop: "canCheckPrefix", name: "canCheckPrefix", pkg: "regexp", typ: $funcType([], [$Bool], false)}, {prop: "hasPrefix", name: "hasPrefix", pkg: "regexp", typ: $funcType([ptrType], [$Bool], false)}, {prop: "index", name: "index", pkg: "regexp", typ: $funcType([ptrType, $Int], [$Int], false)}, {prop: "context", name: "context", pkg: "regexp", typ: $funcType([$Int], [lazyFlag], false)}]; + ptrType$19.methods = [{prop: "step", name: "step", pkg: "regexp", typ: $funcType([$Int], [$Int32, $Int], false)}, {prop: "canCheckPrefix", name: "canCheckPrefix", pkg: "regexp", typ: $funcType([], [$Bool], false)}, {prop: "hasPrefix", name: "hasPrefix", pkg: "regexp", typ: $funcType([ptrType], [$Bool], false)}, {prop: "index", name: "index", pkg: "regexp", typ: $funcType([ptrType, $Int], [$Int], false)}, {prop: "context", name: "context", pkg: "regexp", typ: $funcType([$Int], [lazyFlag], false)}]; + ptrType$8.methods = [{prop: "empty", name: "empty", pkg: "regexp", typ: $funcType([], [$Bool], false)}, {prop: "next", name: "next", pkg: "regexp", typ: $funcType([], [$Uint32], false)}, {prop: "clear", name: "clear", pkg: "regexp", typ: $funcType([], [], false)}, {prop: "contains", name: "contains", pkg: "regexp", typ: $funcType([$Uint32], [$Bool], false)}, {prop: "insert", name: "insert", pkg: "regexp", typ: $funcType([$Uint32], [], false)}, {prop: "insertNew", name: "insertNew", pkg: "regexp", typ: $funcType([$Uint32], [], false)}]; + runeSlice.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}]; + ptrType$3.methods = [{prop: "init", name: "init", pkg: "regexp", typ: $funcType([$Int], [], false)}, {prop: "alloc", name: "alloc", pkg: "regexp", typ: $funcType([ptrType$6], [ptrType$5], false)}, {prop: "match", name: "match", pkg: "regexp", typ: $funcType([input, $Int], [$Bool], false)}, {prop: "clear", name: "clear", pkg: "regexp", typ: $funcType([ptrType$20], [], false)}, {prop: "step", name: "step", pkg: "regexp", typ: $funcType([ptrType$20, ptrType$20, $Int, $Int, $Int32, ptrType$13], [], false)}, {prop: "add", name: "add", pkg: "regexp", typ: $funcType([ptrType$20, $Uint32, $Int, sliceType$7, ptrType$13, ptrType$5], [ptrType$5], false)}]; + ptrType$21.methods = [{prop: "newBytes", name: "newBytes", pkg: "regexp", typ: $funcType([sliceType$4], [input], false)}, {prop: "newString", name: "newString", pkg: "regexp", typ: $funcType([$String], [input], false)}, {prop: "newReader", name: "newReader", pkg: "regexp", typ: $funcType([io.RuneReader], [input], false)}, {prop: "clear", name: "clear", pkg: "regexp", typ: $funcType([], [], false)}, {prop: "init", name: "init", pkg: "regexp", typ: $funcType([io.RuneReader, sliceType$4, $String], [input, $Int], false)}]; + lazyFlag.methods = [{prop: "match", name: "match", pkg: "regexp", typ: $funcType([syntax.EmptyOp], [$Bool], false)}]; + ptrType$16.methods = [{prop: "reset", name: "reset", pkg: "regexp", typ: $funcType([ptrType$1, $Int, $Int], [], false)}, {prop: "shouldVisit", name: "shouldVisit", pkg: "regexp", typ: $funcType([$Uint32, $Int], [$Bool], false)}, {prop: "push", name: "push", pkg: "regexp", typ: $funcType([ptrType, $Uint32, $Int, $Bool], [], false)}]; + Regexp.init("regexp", [{prop: "expr", name: "expr", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "prog", name: "prog", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "onepass", name: "onepass", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "numSubexp", name: "numSubexp", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "maxBitStateLen", name: "maxBitStateLen", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "subexpNames", name: "subexpNames", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "prefix", name: "prefix", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "prefixBytes", name: "prefixBytes", embedded: false, exported: false, typ: sliceType$4, tag: ""}, {prop: "prefixRune", name: "prefixRune", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "prefixEnd", name: "prefixEnd", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "mpool", name: "mpool", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "matchcap", name: "matchcap", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "prefixComplete", name: "prefixComplete", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "cond", name: "cond", embedded: false, exported: false, typ: syntax.EmptyOp, tag: ""}, {prop: "minInputLen", name: "minInputLen", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "longest", name: "longest", embedded: false, exported: false, typ: $Bool, tag: ""}]); + input.init([{prop: "canCheckPrefix", name: "canCheckPrefix", pkg: "regexp", typ: $funcType([], [$Bool], false)}, {prop: "context", name: "context", pkg: "regexp", typ: $funcType([$Int], [lazyFlag], false)}, {prop: "hasPrefix", name: "hasPrefix", pkg: "regexp", typ: $funcType([ptrType], [$Bool], false)}, {prop: "index", name: "index", pkg: "regexp", typ: $funcType([ptrType, $Int], [$Int], false)}, {prop: "step", name: "step", pkg: "regexp", typ: $funcType([$Int], [$Int32, $Int], false)}]); + inputString.init("regexp", [{prop: "str", name: "str", embedded: false, exported: false, typ: $String, tag: ""}]); + inputBytes.init("regexp", [{prop: "str", name: "str", embedded: false, exported: false, typ: sliceType$4, tag: ""}]); + inputReader.init("regexp", [{prop: "r", name: "r", embedded: false, exported: false, typ: io.RuneReader, tag: ""}, {prop: "atEOT", name: "atEOT", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: $Int, tag: ""}]); + onePassProg.init("", [{prop: "Inst", name: "Inst", embedded: false, exported: true, typ: sliceType$12, tag: ""}, {prop: "Start", name: "Start", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "NumCap", name: "NumCap", embedded: false, exported: true, typ: $Int, tag: ""}]); + onePassInst.init("", [{prop: "Inst", name: "Inst", embedded: true, exported: true, typ: syntax.Inst, tag: ""}, {prop: "Next", name: "Next", embedded: false, exported: true, typ: sliceType$2, tag: ""}]); + queueOnePass.init("regexp", [{prop: "sparse", name: "sparse", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "dense", name: "dense", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "nextIndex", name: "nextIndex", embedded: false, exported: false, typ: $Uint32, tag: ""}]); + runeSlice.init($Int32); + queue.init("regexp", [{prop: "sparse", name: "sparse", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "dense", name: "dense", embedded: false, exported: false, typ: sliceType$5, tag: ""}]); + entry.init("regexp", [{prop: "pc", name: "pc", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "t", name: "t", embedded: false, exported: false, typ: ptrType$5, tag: ""}]); + thread.init("regexp", [{prop: "inst", name: "inst", embedded: false, exported: false, typ: ptrType$6, tag: ""}, {prop: "cap", name: "cap", embedded: false, exported: false, typ: sliceType$7, tag: ""}]); + machine.init("regexp", [{prop: "re", name: "re", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "p", name: "p", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "q0", name: "q0", embedded: false, exported: false, typ: queue, tag: ""}, {prop: "q1", name: "q1", embedded: false, exported: false, typ: queue, tag: ""}, {prop: "pool", name: "pool", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "matched", name: "matched", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "matchcap", name: "matchcap", embedded: false, exported: false, typ: sliceType$7, tag: ""}, {prop: "inputs", name: "inputs", embedded: false, exported: false, typ: inputs, tag: ""}]); + inputs.init("regexp", [{prop: "bytes", name: "bytes", embedded: false, exported: false, typ: inputBytes, tag: ""}, {prop: "string", name: "string", embedded: false, exported: false, typ: inputString, tag: ""}, {prop: "reader", name: "reader", embedded: false, exported: false, typ: inputReader, tag: ""}]); + onePassMachine.init("regexp", [{prop: "inputs", name: "inputs", embedded: false, exported: false, typ: inputs, tag: ""}, {prop: "matchcap", name: "matchcap", embedded: false, exported: false, typ: sliceType$7, tag: ""}]); + job.init("regexp", [{prop: "pc", name: "pc", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "arg", name: "arg", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: $Int, tag: ""}]); + bitState.init("regexp", [{prop: "end", name: "end", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "cap", name: "cap", embedded: false, exported: false, typ: sliceType$7, tag: ""}, {prop: "matchcap", name: "matchcap", embedded: false, exported: false, typ: sliceType$7, tag: ""}, {prop: "jobs", name: "jobs", embedded: false, exported: false, typ: sliceType$15, tag: ""}, {prop: "visited", name: "visited", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "inputs", name: "inputs", embedded: false, exported: false, typ: inputs, tag: ""}]); }; $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = heap.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = errors.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = fmt.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = ast.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = constant.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = typeparams.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = parser.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = token.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = errors$1.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = io.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = math.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = regexp.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = runtime.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = sort.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = strconv.$init(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = strings.$init(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = sync.$init(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = atomic.$init(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = unicode.$init(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = utf8.$init(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $pkg.Universe = ptrType.nil; - $pkg.Unsafe = ptrType$1.nil; - universeIota = $ifaceNil; - universeByte = $ifaceNil; - universeRune = $ifaceNil; - universeAny = $ifaceNil; - universeError = $ifaceNil; - universeComparable = $ifaceNil; - invalidTypeSet = new _TypeSet.ptr(sliceType.nil, termlist.nil, false); - lastID = 0; - emptyMethodSet = new MethodSet.ptr(sliceType$1.nil); - unaryOpPredicates = false; - binaryOpPredicates = false; - _r = regexp.MustCompile("^go([1-9]\\d*)\\.(0|[1-9]\\d*)$"); /* */ $s = 22; case 22: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - goVersionRx = _r; - allTermlist = new termlist([new term.ptr(false, $ifaceNil)]); - topTypeSet = new _TypeSet.ptr(sliceType.nil, allTermlist, false); - gcArchSizes = $makeMap($String.keyFor, [{ k: "386", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 4)) }, { k: "amd64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "amd64p32", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "arm", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 4)) }, { k: "arm64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "loong64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "mips", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 4)) }, { k: "mipsle", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 4)) }, { k: "mips64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "mips64le", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "ppc64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "ppc64le", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "riscv64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "s390x", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "sparc64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "wasm", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }]); - operandModeString = $toNativeArray($kindString, ["invalid operand", "no value", "built-in", "type", "constant", "variable", "map index expression", "value", "comma, ok expression", "comma, error expression", "cgo function"]); - emptyInterface = new Interface.ptr(ptrType$5.nil, sliceType.nil, sliceType$2.nil, ptrType$6.nil, false, true, topTypeSet); - gccgoArchSizes = $makeMap($String.keyFor, [{ k: "386", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 4)) }, { k: "alpha", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "amd64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "amd64p32", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "arm", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "armbe", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "arm64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "arm64be", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "ia64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "loong64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "m68k", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 2)) }, { k: "mips", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "mipsle", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "mips64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "mips64le", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "mips64p32", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "mips64p32le", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "nios2", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "ppc", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "ppc64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "ppc64le", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "riscv", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "riscv64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "s390", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "s390x", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "sh", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "shbe", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "sparc", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "sparc64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "wasm", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }]); - stdSizes = SizesFor("gc", "amd64"); - op2str1 = $toNativeArray($kindString, ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "bitwise complement"]); - op2str2 = $toNativeArray($kindString, ["", "", "", "", "", "", "", "", "", "", "", "", "addition", "subtraction", "multiplication", "", "", "", "", "bitwise XOR", "shift"]); - predeclaredFuncs = $toNativeArray($kindStruct, [$clone(new structType.ptr("append", 1, true, 1), structType), $clone(new structType.ptr("cap", 1, false, 1), structType), $clone(new structType.ptr("clear", 1, false, 2), structType), $clone(new structType.ptr("close", 1, false, 2), structType), $clone(new structType.ptr("complex", 2, false, 1), structType), $clone(new structType.ptr("copy", 2, false, 2), structType), $clone(new structType.ptr("delete", 2, false, 2), structType), $clone(new structType.ptr("imag", 1, false, 1), structType), $clone(new structType.ptr("len", 1, false, 1), structType), $clone(new structType.ptr("make", 1, true, 1), structType), $clone(new structType.ptr("new", 1, false, 1), structType), $clone(new structType.ptr("panic", 1, false, 2), structType), $clone(new structType.ptr("print", 0, true, 2), structType), $clone(new structType.ptr("println", 0, true, 2), structType), $clone(new structType.ptr("real", 1, false, 1), structType), $clone(new structType.ptr("recover", 0, false, 2), structType), $clone(new structType.ptr("Add", 2, false, 1), structType), $clone(new structType.ptr("Alignof", 1, false, 1), structType), $clone(new structType.ptr("Offsetof", 1, false, 1), structType), $clone(new structType.ptr("Sizeof", 1, false, 1), structType), $clone(new structType.ptr("Slice", 2, false, 1), structType), $clone(new structType.ptr("SliceData", 1, false, 1), structType), $clone(new structType.ptr("String", 2, false, 1), structType), $clone(new structType.ptr("StringData", 1, false, 1), structType), $clone(new structType.ptr("assert", 1, false, 2), structType), $clone(new structType.ptr("trace", 0, true, 2), structType)]); - errBadCgo = errors.New("cannot use FakeImportC and go115UsesCgo together"); - cgoPrefixes = $toNativeArray($kindString, ["_Ciconst_", "_Cfconst_", "_Csconst_", "_Ctype_", "_Cvar_", "_Cfpvar_fp_", "_Cfunc_", "_Cmacro_"]); - basicSizes = $toNativeArray($kindUint8, [0, 1, 0, 1, 2, 4, 8, 0, 1, 2, 4, 8, 0, 4, 8, 8, 16]); - predeclaredConsts = $toNativeArray($kindStruct, [$clone(new structType$1.ptr("true", 19, constant.MakeBool(true)), structType$1), $clone(new structType$1.ptr("false", 19, constant.MakeBool(false)), structType$1), $clone(new structType$1.ptr("iota", 20, constant.MakeInt64(new $Int64(0, 0))), structType$1)]); - aliases = $toNativeArray($kindPtr, [new Basic.ptr(8, 6, "byte"), new Basic.ptr(5, 2, "rune")]); - $pkg.Typ = new sliceType$4([new Basic.ptr(0, 0, "invalid type"), new Basic.ptr(1, 1, "bool"), new Basic.ptr(2, 2, "int"), new Basic.ptr(3, 2, "int8"), new Basic.ptr(4, 2, "int16"), new Basic.ptr(5, 2, "int32"), new Basic.ptr(6, 2, "int64"), new Basic.ptr(7, 6, "uint"), new Basic.ptr(8, 6, "uint8"), new Basic.ptr(9, 6, "uint16"), new Basic.ptr(10, 6, "uint32"), new Basic.ptr(11, 6, "uint64"), new Basic.ptr(12, 6, "uintptr"), new Basic.ptr(13, 8, "float32"), new Basic.ptr(14, 8, "float64"), new Basic.ptr(15, 16, "complex64"), new Basic.ptr(16, 16, "complex128"), new Basic.ptr(17, 32, "string"), new Basic.ptr(18, 0, "Pointer"), new Basic.ptr(19, 65, "untyped bool"), new Basic.ptr(20, 66, "untyped int"), new Basic.ptr(21, 66, "untyped rune"), new Basic.ptr(22, 72, "untyped float"), new Basic.ptr(23, 80, "untyped complex"), new Basic.ptr(24, 96, "untyped string"), new Basic.ptr(25, 64, "untyped nil")]); - $r = init(); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - init$1(); - init$2(); + $r = nosync.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = syntax.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sort.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unicode.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + matchPool = arrayType.zero(); + specialBytes = arrayType$1.zero(); + onePassPool = new nosync.Pool.ptr(sliceType.nil, $throwNilPointerError); + arrayNoInts = arrayType$2.zero(); + bitStatePool = new nosync.Pool.ptr(sliceType.nil, $throwNilPointerError); + matchSize = $toNativeArray($kindInt, [128, 512, 2048, 16384, 0]); + noRune = new sliceType$1([]); + noNext = new sliceType$2([4294967295]); + anyRuneNotNL = new sliceType$1([0, 9, 11, 1114111]); + anyRune = new sliceType$1([0, 1114111]); + init(); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; @@ -108041,776 +109903,8 @@ $packages["github.com/gopherjs/gopherjs/compiler/filter"] = (function() { $pkg.$init = $init; return $pkg; })(); -$packages["go/build/constraint"] = (function() { - var $pkg = {}, $init, errors, strings, unicode, utf8, Expr, TagExpr, NotExpr, AndExpr, OrExpr, SyntaxError, exprParser, ptrType, ptrType$1, ptrType$2, sliceType, sliceType$1, sliceType$2, ptrType$3, ptrType$4, sliceType$3, funcType, ptrType$5, errNotConstraint, errComplex, tag, not, andArg, and, orArg, or, Parse, IsGoBuild, splitGoBuild, parseExpr, IsPlusBuild, splitPlusBuild, parsePlusBuildExpr, isValidTag, PlusBuildLines, pushNot, appendSplitAnd, appendSplitOr; - errors = $packages["errors"]; - strings = $packages["strings"]; - unicode = $packages["unicode"]; - utf8 = $packages["unicode/utf8"]; - Expr = $newType(8, $kindInterface, "constraint.Expr", true, "go/build/constraint", true, null); - TagExpr = $newType(0, $kindStruct, "constraint.TagExpr", true, "go/build/constraint", true, function(Tag_) { - this.$val = this; - if (arguments.length === 0) { - this.Tag = ""; - return; - } - this.Tag = Tag_; - }); - NotExpr = $newType(0, $kindStruct, "constraint.NotExpr", true, "go/build/constraint", true, function(X_) { - this.$val = this; - if (arguments.length === 0) { - this.X = $ifaceNil; - return; - } - this.X = X_; - }); - AndExpr = $newType(0, $kindStruct, "constraint.AndExpr", true, "go/build/constraint", true, function(X_, Y_) { - this.$val = this; - if (arguments.length === 0) { - this.X = $ifaceNil; - this.Y = $ifaceNil; - return; - } - this.X = X_; - this.Y = Y_; - }); - OrExpr = $newType(0, $kindStruct, "constraint.OrExpr", true, "go/build/constraint", true, function(X_, Y_) { - this.$val = this; - if (arguments.length === 0) { - this.X = $ifaceNil; - this.Y = $ifaceNil; - return; - } - this.X = X_; - this.Y = Y_; - }); - SyntaxError = $newType(0, $kindStruct, "constraint.SyntaxError", true, "go/build/constraint", true, function(Offset_, Err_) { - this.$val = this; - if (arguments.length === 0) { - this.Offset = 0; - this.Err = ""; - return; - } - this.Offset = Offset_; - this.Err = Err_; - }); - exprParser = $newType(0, $kindStruct, "constraint.exprParser", true, "go/build/constraint", false, function(s_, i_, tok_, isTag_, pos_) { - this.$val = this; - if (arguments.length === 0) { - this.s = ""; - this.i = 0; - this.tok = ""; - this.isTag = false; - this.pos = 0; - return; - } - this.s = s_; - this.i = i_; - this.tok = tok_; - this.isTag = isTag_; - this.pos = pos_; - }); - $pkg.Expr = Expr; - $pkg.TagExpr = TagExpr; - $pkg.NotExpr = NotExpr; - $pkg.AndExpr = AndExpr; - $pkg.OrExpr = OrExpr; - $pkg.SyntaxError = SyntaxError; - $pkg.exprParser = exprParser; - $pkg.$finishSetup = function() { - ptrType = $ptrType(AndExpr); - ptrType$1 = $ptrType(OrExpr); - ptrType$2 = $ptrType(SyntaxError); - sliceType = $sliceType(Expr); - sliceType$1 = $sliceType(sliceType); - sliceType$2 = $sliceType(sliceType$1); - ptrType$3 = $ptrType(TagExpr); - ptrType$4 = $ptrType(NotExpr); - sliceType$3 = $sliceType($String); - funcType = $funcType([$String], [$Bool], false); - ptrType$5 = $ptrType(exprParser); - $ptrType(TagExpr).prototype.Eval = function Eval(ok) { - var {$24r, _r, ok, x, $s, $r, $c} = $restore(this, {ok}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - _r = ok(x.Tag); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Eval, $c: true, $r, $24r, _r, ok, x, $s};return $f; - }; - $ptrType(TagExpr).prototype.String = function String() { - var x; - x = this; - return x.Tag; - }; - tag = function tag$1(tag$2) { - var tag$2; - return new TagExpr.ptr(tag$2); - }; - $ptrType(NotExpr).prototype.Eval = function Eval$1(ok) { - var {$24r, _r, ok, x, $s, $r, $c} = $restore(this, {ok}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - _r = x.X.Eval(ok); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = !_r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Eval$1, $c: true, $r, $24r, _r, ok, x, $s};return $f; - }; - $ptrType(NotExpr).prototype.String = function String$1() { - var {_r, _ref, s, x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - _r = x.X.String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - s = _r; - _ref = x.X; - if ($assertType(_ref, ptrType, true)[1] || $assertType(_ref, ptrType$1, true)[1]) { - s = "(" + s + ")"; - } - $s = -1; return "!" + s; - /* */ } return; } var $f = {$blk: String$1, $c: true, $r, _r, _ref, s, x, $s};return $f; - }; - not = function not$1(x) { - var x; - return new NotExpr.ptr(x); - }; - $ptrType(AndExpr).prototype.Eval = function Eval$2(ok) { - var {_r, _r$1, ok, x, xok, yok, $s, $r, $c} = $restore(this, {ok}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - _r = x.X.Eval(ok); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - xok = _r; - _r$1 = x.Y.Eval(ok); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - yok = _r$1; - $s = -1; return xok && yok; - /* */ } return; } var $f = {$blk: Eval$2, $c: true, $r, _r, _r$1, ok, x, xok, yok, $s};return $f; - }; - $ptrType(AndExpr).prototype.String = function String$2() { - var {$24r, _r, _r$1, x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - _r = andArg(x.X); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = andArg(x.Y); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r + " && " + _r$1; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: String$2, $c: true, $r, $24r, _r, _r$1, x, $s};return $f; - }; - andArg = function andArg$1(x) { - var {_r, _tuple, ok, s, x, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = x.String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - s = _r; - _tuple = $assertType(x, ptrType$1, true); - ok = _tuple[1]; - if (ok) { - s = "(" + s + ")"; - } - $s = -1; return s; - /* */ } return; } var $f = {$blk: andArg$1, $c: true, $r, _r, _tuple, ok, s, x, $s};return $f; - }; - and = function and$1(x, y) { - var x, y; - return new AndExpr.ptr(x, y); - }; - $ptrType(OrExpr).prototype.Eval = function Eval$3(ok) { - var {_r, _r$1, ok, x, xok, yok, $s, $r, $c} = $restore(this, {ok}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - _r = x.X.Eval(ok); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - xok = _r; - _r$1 = x.Y.Eval(ok); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - yok = _r$1; - $s = -1; return xok || yok; - /* */ } return; } var $f = {$blk: Eval$3, $c: true, $r, _r, _r$1, ok, x, xok, yok, $s};return $f; - }; - $ptrType(OrExpr).prototype.String = function String$3() { - var {$24r, _r, _r$1, x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - _r = orArg(x.X); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = orArg(x.Y); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r + " || " + _r$1; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: String$3, $c: true, $r, $24r, _r, _r$1, x, $s};return $f; - }; - orArg = function orArg$1(x) { - var {_r, _tuple, ok, s, x, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = x.String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - s = _r; - _tuple = $assertType(x, ptrType, true); - ok = _tuple[1]; - if (ok) { - s = "(" + s + ")"; - } - $s = -1; return s; - /* */ } return; } var $f = {$blk: orArg$1, $c: true, $r, _r, _tuple, ok, s, x, $s};return $f; - }; - or = function or$1(x, y) { - var x, y; - return new OrExpr.ptr(x, y); - }; - $ptrType(SyntaxError).prototype.Error = function Error() { - var e; - e = this; - return e.Err; - }; - Parse = function Parse$1(line) { - var {$24r, _r, _r$1, _r$2, _tuple, _tuple$1, line, ok, ok$1, text, text$1, $s, $r, $c} = $restore(this, {line}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = splitGoBuild(line); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - text = _tuple[0]; - ok = _tuple[1]; - if (ok) { - $s = -1; return parseExpr(text); - } - _r$1 = splitPlusBuild(line); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$1 = _r$1; - text$1 = _tuple$1[0]; - ok$1 = _tuple$1[1]; - /* */ if (ok$1) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (ok$1) { */ case 3: - _r$2 = parsePlusBuildExpr(text$1); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = [_r$2, $ifaceNil]; - $s = 6; case 6: return $24r; - /* } */ case 4: - $s = -1; return [$ifaceNil, errNotConstraint]; - /* */ } return; } var $f = {$blk: Parse$1, $c: true, $r, $24r, _r, _r$1, _r$2, _tuple, _tuple$1, line, ok, ok$1, text, text$1, $s};return $f; - }; - $pkg.Parse = Parse; - IsGoBuild = function IsGoBuild$1(line) { - var {_r, _tuple, line, ok, $s, $r, $c} = $restore(this, {line}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = splitGoBuild(line); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - ok = _tuple[1]; - $s = -1; return ok; - /* */ } return; } var $f = {$blk: IsGoBuild$1, $c: true, $r, _r, _tuple, line, ok, $s};return $f; - }; - $pkg.IsGoBuild = IsGoBuild; - splitGoBuild = function splitGoBuild$1(line) { - var {_r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, expr, line, ok, trim, $s, $r, $c} = $restore(this, {line}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - expr = ""; - ok = false; - if (line.length > 0 && (line.charCodeAt((line.length - 1 >> 0)) === 10)) { - line = $substring(line, 0, (line.length - 1 >> 0)); - } - if (strings.Contains(line, "\n")) { - _tmp = ""; - _tmp$1 = false; - expr = _tmp; - ok = _tmp$1; - $s = -1; return [expr, ok]; - } - if (!strings.HasPrefix(line, "//go:build")) { - _tmp$2 = ""; - _tmp$3 = false; - expr = _tmp$2; - ok = _tmp$3; - $s = -1; return [expr, ok]; - } - _r = strings.TrimSpace(line); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - line = _r; - line = $substring(line, 10); - _r$1 = strings.TrimSpace(line); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - trim = _r$1; - if ((line.length === trim.length) && !(line === "")) { - _tmp$4 = ""; - _tmp$5 = false; - expr = _tmp$4; - ok = _tmp$5; - $s = -1; return [expr, ok]; - } - _tmp$6 = trim; - _tmp$7 = true; - expr = _tmp$6; - ok = _tmp$7; - $s = -1; return [expr, ok]; - /* */ } return; } var $f = {$blk: splitGoBuild$1, $c: true, $r, _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, expr, line, ok, trim, $s};return $f; - }; - parseExpr = function parseExpr$1(text) { - var _tmp, _tmp$1, err, p, text, x, $deferred; - /* */ var $err = null; try { $deferred = []; $curGoroutine.deferStack.push($deferred); - x = $ifaceNil; - err = $ifaceNil; - $deferred.push([(function parseExpr·func1() { - var _tuple, e, e$1, ok; - e = $recover(); - if (!($interfaceIsEqual(e, $ifaceNil))) { - _tuple = $assertType(e, ptrType$2, true); - e$1 = _tuple[0]; - ok = _tuple[1]; - if (ok) { - err = e$1; - return; - } - $panic(e); - } - }), []]); - p = new exprParser.ptr(text, 0, "", false, 0); - x = p.or(); - if (!(p.tok === "")) { - $panic(new SyntaxError.ptr(p.pos, "unexpected token " + p.tok)); - } - _tmp = x; - _tmp$1 = $ifaceNil; - x = _tmp; - err = _tmp$1; - return [x, err]; - /* */ } catch(err) { $err = err; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [x, err]; } } - }; - $ptrType(exprParser).prototype.or = function or$2() { - var p, x; - p = this; - x = p.and(); - while (true) { - if (!(p.tok === "||")) { break; } - x = or(x, p.and()); - } - return x; - }; - $ptrType(exprParser).prototype.and = function and$2() { - var p, x; - p = this; - x = p.not(); - while (true) { - if (!(p.tok === "&&")) { break; } - x = and(x, p.not()); - } - return x; - }; - $ptrType(exprParser).prototype.not = function not$2() { - var p; - p = this; - p.lex(); - if (p.tok === "!") { - p.lex(); - if (p.tok === "!") { - $panic(new SyntaxError.ptr(p.pos, "double negation not allowed")); - } - return not(p.atom()); - } - return p.atom(); - }; - $ptrType(exprParser).prototype.atom = function atom() { - var p, pos, tok, x, $deferred; - /* */ var $err = null; try { $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - if (p.tok === "(") { - pos = p.pos; - $deferred.push([(function exprParser·atom·func1() { - var _tuple, e, e$1, ok; - e = $recover(); - if (!($interfaceIsEqual(e, $ifaceNil))) { - _tuple = $assertType(e, ptrType$2, true); - e$1 = _tuple[0]; - ok = _tuple[1]; - if (ok && e$1.Err === "unexpected end of expression") { - e$1.Err = "missing close paren"; - } - $panic(e); - } - }), []]); - x = p.or(); - if (!(p.tok === ")")) { - $panic(new SyntaxError.ptr(pos, "missing close paren")); - } - p.lex(); - return x; - } - if (!p.isTag) { - if (p.tok === "") { - $panic(new SyntaxError.ptr(p.pos, "unexpected end of expression")); - } - $panic(new SyntaxError.ptr(p.pos, "unexpected token " + p.tok)); - } - tok = p.tok; - p.lex(); - return tag(tok); - /* */ } catch(err) { $err = err; return $ifaceNil; } finally { $callDeferred($deferred, $err); } - }; - $ptrType(exprParser).prototype.lex = function lex() { - var _1, _i, _ref, _rune, _tuple, c, c$1, i, p, tag$2; - p = this; - p.isTag = false; - while (true) { - if (!(p.i < p.s.length && ((p.s.charCodeAt(p.i) === 32) || (p.s.charCodeAt(p.i) === 9)))) { break; } - p.i = p.i + (1) >> 0; - } - if (p.i >= p.s.length) { - p.tok = ""; - p.pos = p.i; - return; - } - _1 = p.s.charCodeAt(p.i); - if ((_1 === (40)) || (_1 === (41)) || (_1 === (33))) { - p.pos = p.i; - p.i = p.i + (1) >> 0; - p.tok = $substring(p.s, p.pos, p.i); - return; - } else if ((_1 === (38)) || (_1 === (124))) { - if ((p.i + 1 >> 0) >= p.s.length || !((p.s.charCodeAt((p.i + 1 >> 0)) === p.s.charCodeAt(p.i)))) { - $panic(new SyntaxError.ptr(p.i, "invalid syntax at " + ($encodeRune(((p.s.charCodeAt(p.i) >> 0)))))); - } - p.pos = p.i; - p.i = p.i + (2) >> 0; - p.tok = $substring(p.s, p.pos, p.i); - return; - } - tag$2 = $substring(p.s, p.i); - _ref = tag$2; - _i = 0; - while (true) { - if (!(_i < _ref.length)) { break; } - _rune = $decodeRune(_ref, _i); - i = _i; - c = _rune[0]; - if (!unicode.IsLetter(c) && !unicode.IsDigit(c) && !((c === 95)) && !((c === 46))) { - tag$2 = $substring(tag$2, 0, i); - break; - } - _i += _rune[1]; - } - if (tag$2 === "") { - _tuple = utf8.DecodeRuneInString($substring(p.s, p.i)); - c$1 = _tuple[0]; - $panic(new SyntaxError.ptr(p.i, "invalid syntax at " + ($encodeRune(c$1)))); - } - p.pos = p.i; - p.i = p.i + (tag$2.length) >> 0; - p.tok = $substring(p.s, p.pos, p.i); - p.isTag = true; - }; - IsPlusBuild = function IsPlusBuild$1(line) { - var {_r, _tuple, line, ok, $s, $r, $c} = $restore(this, {line}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = splitPlusBuild(line); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - ok = _tuple[1]; - $s = -1; return ok; - /* */ } return; } var $f = {$blk: IsPlusBuild$1, $c: true, $r, _r, _tuple, line, ok, $s};return $f; - }; - $pkg.IsPlusBuild = IsPlusBuild; - splitPlusBuild = function splitPlusBuild$1(line) { - var {_r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, expr, line, ok, trim, $s, $r, $c} = $restore(this, {line}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - expr = ""; - ok = false; - if (line.length > 0 && (line.charCodeAt((line.length - 1 >> 0)) === 10)) { - line = $substring(line, 0, (line.length - 1 >> 0)); - } - if (strings.Contains(line, "\n")) { - _tmp = ""; - _tmp$1 = false; - expr = _tmp; - ok = _tmp$1; - $s = -1; return [expr, ok]; - } - if (!strings.HasPrefix(line, "//")) { - _tmp$2 = ""; - _tmp$3 = false; - expr = _tmp$2; - ok = _tmp$3; - $s = -1; return [expr, ok]; - } - line = $substring(line, 2); - _r = strings.TrimSpace(line); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - line = _r; - if (!strings.HasPrefix(line, "+build")) { - _tmp$4 = ""; - _tmp$5 = false; - expr = _tmp$4; - ok = _tmp$5; - $s = -1; return [expr, ok]; - } - line = $substring(line, 6); - _r$1 = strings.TrimSpace(line); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - trim = _r$1; - if ((line.length === trim.length) && !(line === "")) { - _tmp$6 = ""; - _tmp$7 = false; - expr = _tmp$6; - ok = _tmp$7; - $s = -1; return [expr, ok]; - } - _tmp$8 = trim; - _tmp$9 = true; - expr = _tmp$8; - ok = _tmp$9; - $s = -1; return [expr, ok]; - /* */ } return; } var $f = {$blk: splitPlusBuild$1, $c: true, $r, _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, expr, line, ok, trim, $s};return $f; - }; - parsePlusBuildExpr = function parsePlusBuildExpr$1(text) { - var {_i, _i$1, _r, _ref, _ref$1, clause, lit, neg, text, x, y, z, $s, $r, $c} = $restore(this, {text}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = $ifaceNil; - _r = strings.Fields(text); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _ref = _r; - _i = 0; - /* while (true) { */ case 2: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } - clause = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - y = $ifaceNil; - _ref$1 = strings.Split(clause, ","); - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - lit = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - z = $ifaceNil; - neg = false; - if (strings.HasPrefix(lit, "!!") || lit === "!") { - z = tag("ignore"); - } else { - if (strings.HasPrefix(lit, "!")) { - neg = true; - lit = $substring(lit, 1); - } - if (isValidTag(lit)) { - z = tag(lit); - } else { - z = tag("ignore"); - } - if (neg) { - z = not(z); - } - } - if ($interfaceIsEqual(y, $ifaceNil)) { - y = z; - } else { - y = and(y, z); - } - _i$1++; - } - if ($interfaceIsEqual(x, $ifaceNil)) { - x = y; - } else { - x = or(x, y); - } - _i++; - $s = 2; continue; - case 3: - if ($interfaceIsEqual(x, $ifaceNil)) { - x = tag("ignore"); - } - $s = -1; return x; - /* */ } return; } var $f = {$blk: parsePlusBuildExpr$1, $c: true, $r, _i, _i$1, _r, _ref, _ref$1, clause, lit, neg, text, x, y, z, $s};return $f; - }; - isValidTag = function isValidTag$1(word) { - var _i, _ref, _rune, c, word; - if (word === "") { - return false; - } - _ref = word; - _i = 0; - while (true) { - if (!(_i < _ref.length)) { break; } - _rune = $decodeRune(_ref, _i); - c = _rune[0]; - if (!unicode.IsLetter(c) && !unicode.IsDigit(c) && !((c === 95)) && !((c === 46))) { - return false; - } - _i += _rune[1]; - } - return true; - }; - PlusBuildLines = function PlusBuildLines$1(x) { - var {_i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _r, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, and$3, and$4, ands, clause, i, line, lines, lit, lit$1, lits, lits$1, maxOr, or$3, or$4, or$5, or$6, split, x, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = pushNot(x, false); - split = sliceType$2.nil; - _ref = appendSplitAnd(sliceType.nil, x); - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - or$3 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - ands = sliceType$1.nil; - _ref$1 = appendSplitOr(sliceType.nil, or$3); - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - and$3 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - lits = sliceType.nil; - _ref$2 = appendSplitAnd(sliceType.nil, and$3); - _i$2 = 0; - while (true) { - if (!(_i$2 < _ref$2.$length)) { break; } - lit = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); - _ref$3 = lit; - if ($assertType(_ref$3, ptrType$3, true)[1] || $assertType(_ref$3, ptrType$4, true)[1]) { - lits = $append(lits, lit); - } else { - $s = -1; return [sliceType$3.nil, errComplex]; - } - _i$2++; - } - ands = $append(ands, lits); - _i$1++; - } - split = $append(split, ands); - _i++; - } - maxOr = 0; - _ref$4 = split; - _i$3 = 0; - while (true) { - if (!(_i$3 < _ref$4.$length)) { break; } - or$4 = ((_i$3 < 0 || _i$3 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$3]); - if (maxOr < or$4.$length) { - maxOr = or$4.$length; - } - _i$3++; - } - if (maxOr === 1) { - lits$1 = sliceType.nil; - _ref$5 = split; - _i$4 = 0; - while (true) { - if (!(_i$4 < _ref$5.$length)) { break; } - or$5 = ((_i$4 < 0 || _i$4 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$4]); - lits$1 = $appendSlice(lits$1, (0 >= or$5.$length ? ($throwRuntimeError("index out of range"), undefined) : or$5.$array[or$5.$offset + 0])); - _i$4++; - } - split = new sliceType$2([new sliceType$1([lits$1])]); - } - lines = sliceType$3.nil; - _ref$6 = split; - _i$5 = 0; - /* while (true) { */ case 1: - /* if (!(_i$5 < _ref$6.$length)) { break; } */ if(!(_i$5 < _ref$6.$length)) { $s = 2; continue; } - or$6 = ((_i$5 < 0 || _i$5 >= _ref$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$6.$array[_ref$6.$offset + _i$5]); - line = "// +build"; - _ref$7 = or$6; - _i$6 = 0; - /* while (true) { */ case 3: - /* if (!(_i$6 < _ref$7.$length)) { break; } */ if(!(_i$6 < _ref$7.$length)) { $s = 4; continue; } - and$4 = ((_i$6 < 0 || _i$6 >= _ref$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$7.$array[_ref$7.$offset + _i$6]); - clause = ""; - _ref$8 = and$4; - _i$7 = 0; - /* while (true) { */ case 5: - /* if (!(_i$7 < _ref$8.$length)) { break; } */ if(!(_i$7 < _ref$8.$length)) { $s = 6; continue; } - i = _i$7; - lit$1 = ((_i$7 < 0 || _i$7 >= _ref$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$8.$array[_ref$8.$offset + _i$7]); - if (i > 0) { - clause = clause + (","); - } - _r = lit$1.String(); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - clause = clause + (_r); - _i$7++; - $s = 5; continue; - case 6: - line = line + (" " + clause); - _i$6++; - $s = 3; continue; - case 4: - lines = $append(lines, line); - _i$5++; - $s = 1; continue; - case 2: - $s = -1; return [lines, $ifaceNil]; - /* */ } return; } var $f = {$blk: PlusBuildLines$1, $c: true, $r, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _r, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, and$3, and$4, ands, clause, i, line, lines, lit, lit$1, lits, lits$1, maxOr, or$3, or$4, or$5, or$6, split, x, $s};return $f; - }; - $pkg.PlusBuildLines = PlusBuildLines; - pushNot = function pushNot$1(x, not$3) { - var _ref, _tuple, not$3, ok, x, x$1, x$2, x$3, x$4, x$5, x1, x1$1, y1, y1$1; - _ref = x; - if ($assertType(_ref, ptrType$4, true)[1]) { - x$2 = _ref.$val; - _tuple = $assertType(x$2.X, ptrType$3, true); - ok = _tuple[1]; - if (ok && !not$3) { - return x$2; - } - return pushNot(x$2.X, !not$3); - } else if ($assertType(_ref, ptrType$3, true)[1]) { - x$3 = _ref.$val; - if (not$3) { - return new NotExpr.ptr(x$3); - } - return x$3; - } else if ($assertType(_ref, ptrType, true)[1]) { - x$4 = _ref.$val; - x1 = pushNot(x$4.X, not$3); - y1 = pushNot(x$4.Y, not$3); - if (not$3) { - return or(x1, y1); - } - if ($interfaceIsEqual(x1, x$4.X) && $interfaceIsEqual(y1, x$4.Y)) { - return x$4; - } - return and(x1, y1); - } else if ($assertType(_ref, ptrType$1, true)[1]) { - x$5 = _ref.$val; - x1$1 = pushNot(x$5.X, not$3); - y1$1 = pushNot(x$5.Y, not$3); - if (not$3) { - return and(x1$1, y1$1); - } - if ($interfaceIsEqual(x1$1, x$5.X) && $interfaceIsEqual(y1$1, x$5.Y)) { - return x$5; - } - return or(x1$1, y1$1); - } else { - x$1 = _ref; - return x$1; - } - }; - appendSplitAnd = function appendSplitAnd$1(list, x) { - var _tuple, list, ok, x, x$1; - _tuple = $assertType(x, ptrType, true); - x$1 = _tuple[0]; - ok = _tuple[1]; - if (ok) { - list = appendSplitAnd(list, x$1.X); - list = appendSplitAnd(list, x$1.Y); - return list; - } - return $append(list, x); - }; - appendSplitOr = function appendSplitOr$1(list, x) { - var _tuple, list, ok, x, x$1; - _tuple = $assertType(x, ptrType$1, true); - x$1 = _tuple[0]; - ok = _tuple[1]; - if (ok) { - list = appendSplitOr(list, x$1.X); - list = appendSplitOr(list, x$1.Y); - return list; - } - return $append(list, x); - }; - ptrType$3.methods = [{prop: "isExpr", name: "isExpr", pkg: "go/build/constraint", typ: $funcType([], [], false)}, {prop: "Eval", name: "Eval", pkg: "", typ: $funcType([funcType], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$4.methods = [{prop: "isExpr", name: "isExpr", pkg: "go/build/constraint", typ: $funcType([], [], false)}, {prop: "Eval", name: "Eval", pkg: "", typ: $funcType([funcType], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType.methods = [{prop: "isExpr", name: "isExpr", pkg: "go/build/constraint", typ: $funcType([], [], false)}, {prop: "Eval", name: "Eval", pkg: "", typ: $funcType([funcType], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$1.methods = [{prop: "isExpr", name: "isExpr", pkg: "go/build/constraint", typ: $funcType([], [], false)}, {prop: "Eval", name: "Eval", pkg: "", typ: $funcType([funcType], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$2.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$5.methods = [{prop: "or", name: "or", pkg: "go/build/constraint", typ: $funcType([], [Expr], false)}, {prop: "and", name: "and", pkg: "go/build/constraint", typ: $funcType([], [Expr], false)}, {prop: "not", name: "not", pkg: "go/build/constraint", typ: $funcType([], [Expr], false)}, {prop: "atom", name: "atom", pkg: "go/build/constraint", typ: $funcType([], [Expr], false)}, {prop: "lex", name: "lex", pkg: "go/build/constraint", typ: $funcType([], [], false)}]; - Expr.init([{prop: "Eval", name: "Eval", pkg: "", typ: $funcType([funcType], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "isExpr", name: "isExpr", pkg: "go/build/constraint", typ: $funcType([], [], false)}]); - TagExpr.init("", [{prop: "Tag", name: "Tag", embedded: false, exported: true, typ: $String, tag: ""}]); - NotExpr.init("", [{prop: "X", name: "X", embedded: false, exported: true, typ: Expr, tag: ""}]); - AndExpr.init("", [{prop: "X", name: "X", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Y", name: "Y", embedded: false, exported: true, typ: Expr, tag: ""}]); - OrExpr.init("", [{prop: "X", name: "X", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Y", name: "Y", embedded: false, exported: true, typ: Expr, tag: ""}]); - SyntaxError.init("", [{prop: "Offset", name: "Offset", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Err", name: "Err", embedded: false, exported: true, typ: $String, tag: ""}]); - exprParser.init("go/build/constraint", [{prop: "s", name: "s", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "i", name: "i", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "tok", name: "tok", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "isTag", name: "isTag", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: $Int, tag: ""}]); - }; - $init = function() { - $pkg.$init = function() {}; - /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: - $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = strings.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = unicode.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = utf8.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - errNotConstraint = errors.New("not a build constraint"); - errComplex = errors.New("expression too complex for // +build lines"); - /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; - }; - $pkg.$init = $init; - return $pkg; -})(); $packages["go/doc/comment"] = (function() { - var $pkg = {}, $init, bytes, fmt, sort, strconv, strings, unicode, utf8, textPrinter, Printer, commentPrinter, Doc, LinkDef, Block, Heading, List, ListItem, Paragraph, Code, Text, Plain, Italic, Link, DocLink, Parser, parseDoc, span, spanKind, mdPrinter, htmlPrinter, score, sliceType, ptrType, ptrType$1, sliceType$1, sliceType$2, ptrType$2, ptrType$3, ptrType$4, ptrType$5, sliceType$3, ptrType$6, ptrType$7, sliceType$4, ptrType$8, ptrType$9, sliceType$5, ptrType$10, sliceType$6, sliceType$7, sliceType$8, ptrType$11, sliceType$9, ptrType$12, ptrType$13, funcType, funcType$1, ptrType$14, mapType, mapType$1, funcType$2, funcType$3, ptrType$15, mapType$2, ptrType$16, ptrType$17, stdPkgs, writeNL, wrap, wrapPenalty, blankBefore, isStdPkg, DefaultLookupPackage, parseSpans, indented, unindent, isBlank, commonPrefix, leadingSpace, isOldHeading, isHeading, parseLink, listMarker, isList, splitDocName, autoURL, isScheme, isHost, isPunct, isPath, isName, ident, isIdentASCII, validImportPath, validImportPathElem, importPathOK, inc; + var $pkg = {}, $init, bytes, fmt, sort, strconv, strings, unicode, utf8, textPrinter, Printer, commentPrinter, Doc, LinkDef, Block, Heading, List, ListItem, Paragraph, Code, Text, Plain, Italic, Link, DocLink, Parser, parseDoc, span, spanKind, mdPrinter, htmlPrinter, score, sliceType, ptrType, ptrType$1, sliceType$1, sliceType$2, ptrType$2, ptrType$3, ptrType$4, ptrType$5, sliceType$3, ptrType$6, ptrType$7, sliceType$4, ptrType$8, ptrType$9, sliceType$5, ptrType$10, sliceType$6, sliceType$7, sliceType$8, ptrType$11, sliceType$9, ptrType$12, ptrType$13, funcType, funcType$1, ptrType$14, mapType, funcType$2, funcType$3, ptrType$15, mapType$1, ptrType$16, ptrType$17, stdPkgs, writeNL, wrap, wrapPenalty, blankBefore, isStdPkg, DefaultLookupPackage, parseSpans, indented, unindent, isBlank, commonPrefix, leadingSpace, isOldHeading, isHeading, parseLink, listMarker, isList, splitDocName, autoURL, isScheme, isHost, isPunct, isPath, isName, ident, isIdentASCII, validImportPath, validImportPathElem, importPathOK, inc; bytes = $packages["bytes"]; fmt = $packages["fmt"]; sort = $packages["sort"]; @@ -108854,17 +109948,13 @@ $packages["go/doc/comment"] = (function() { this.TextCodePrefix = TextCodePrefix_; this.TextWidth = TextWidth_; }); - commentPrinter = $newType(0, $kindStruct, "comment.commentPrinter", true, "go/doc/comment", false, function(Printer_, headingPrefix_, needDoc_) { + commentPrinter = $newType(0, $kindStruct, "comment.commentPrinter", true, "go/doc/comment", false, function(Printer_) { this.$val = this; if (arguments.length === 0) { this.Printer = ptrType.nil; - this.headingPrefix = ""; - this.needDoc = false; return; } this.Printer = Printer_; - this.headingPrefix = headingPrefix_; - this.needDoc = needDoc_; }); Doc = $newType(0, $kindStruct, "comment.Doc", true, "go/doc/comment", true, function(Content_, Links_) { this.$val = this; @@ -109088,12 +110178,11 @@ $packages["go/doc/comment"] = (function() { funcType = $funcType([ptrType$3], [$String], false); funcType$1 = $funcType([ptrType$7], [$String], false); ptrType$14 = $ptrType(commentPrinter); - mapType = $mapType($String, $Bool); - mapType$1 = $mapType($String, $String); + mapType = $mapType($String, $String); funcType$2 = $funcType([$String], [$String, $Bool], false); funcType$3 = $funcType([$String, $String], [$Bool], false); ptrType$15 = $ptrType(parseDoc); - mapType$2 = $mapType($String, ptrType$10); + mapType$1 = $mapType($String, ptrType$10); ptrType$16 = $ptrType(mdPrinter); ptrType$17 = $ptrType(htmlPrinter); $ptrType(Printer).prototype.Text = function Text$1(d) { @@ -109600,7 +110689,7 @@ $packages["go/doc/comment"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: out = [out]; p = this; - cp = new commentPrinter.ptr(p, "", false); + cp = new commentPrinter.ptr(p); out[0] = new bytes.Buffer.ptr(sliceType$1.nil, 0, 0); _ref = d.Content; _i = 0; @@ -111443,7 +112532,7 @@ $packages["go/doc/comment"] = (function() { ptrType$17.methods = [{prop: "block", name: "block", pkg: "go/doc/comment", typ: $funcType([ptrType$12, Block], [], false)}, {prop: "text", name: "text", pkg: "go/doc/comment", typ: $funcType([ptrType$12, sliceType$8], [], false)}, {prop: "escape", name: "escape", pkg: "go/doc/comment", typ: $funcType([ptrType$12, $String], [], false)}]; textPrinter.init("go/doc/comment", [{prop: "Printer", name: "Printer", embedded: true, exported: true, typ: ptrType, tag: ""}, {prop: "long$1", name: "long", embedded: false, exported: false, typ: strings.Builder, tag: ""}, {prop: "prefix", name: "prefix", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "codePrefix", name: "codePrefix", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "width", name: "width", embedded: false, exported: false, typ: $Int, tag: ""}]); Printer.init("", [{prop: "HeadingLevel", name: "HeadingLevel", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "HeadingID", name: "HeadingID", embedded: false, exported: true, typ: funcType, tag: ""}, {prop: "DocLinkURL", name: "DocLinkURL", embedded: false, exported: true, typ: funcType$1, tag: ""}, {prop: "DocLinkBaseURL", name: "DocLinkBaseURL", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "TextPrefix", name: "TextPrefix", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "TextCodePrefix", name: "TextCodePrefix", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "TextWidth", name: "TextWidth", embedded: false, exported: true, typ: $Int, tag: ""}]); - commentPrinter.init("go/doc/comment", [{prop: "Printer", name: "Printer", embedded: true, exported: true, typ: ptrType, tag: ""}, {prop: "headingPrefix", name: "headingPrefix", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "needDoc", name: "needDoc", embedded: false, exported: false, typ: mapType, tag: ""}]); + commentPrinter.init("", [{prop: "Printer", name: "Printer", embedded: true, exported: true, typ: ptrType, tag: ""}]); Doc.init("", [{prop: "Content", name: "Content", embedded: false, exported: true, typ: sliceType$5, tag: ""}, {prop: "Links", name: "Links", embedded: false, exported: true, typ: sliceType$6, tag: ""}]); LinkDef.init("", [{prop: "Text", name: "Text", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "URL", name: "URL", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Used", name: "Used", embedded: false, exported: true, typ: $Bool, tag: ""}]); Block.init([{prop: "block", name: "block", pkg: "go/doc/comment", typ: $funcType([], [], false)}]); @@ -111455,8 +112544,8 @@ $packages["go/doc/comment"] = (function() { Text.init([{prop: "text", name: "text", pkg: "go/doc/comment", typ: $funcType([], [], false)}]); Link.init("", [{prop: "Auto", name: "Auto", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Text", name: "Text", embedded: false, exported: true, typ: sliceType$8, tag: ""}, {prop: "URL", name: "URL", embedded: false, exported: true, typ: $String, tag: ""}]); DocLink.init("", [{prop: "Text", name: "Text", embedded: false, exported: true, typ: sliceType$8, tag: ""}, {prop: "ImportPath", name: "ImportPath", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Recv", name: "Recv", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}]); - Parser.init("", [{prop: "Words", name: "Words", embedded: false, exported: true, typ: mapType$1, tag: ""}, {prop: "LookupPackage", name: "LookupPackage", embedded: false, exported: true, typ: funcType$2, tag: ""}, {prop: "LookupSym", name: "LookupSym", embedded: false, exported: true, typ: funcType$3, tag: ""}]); - parseDoc.init("go/doc/comment", [{prop: "Parser", name: "Parser", embedded: true, exported: true, typ: ptrType$8, tag: ""}, {prop: "Doc", name: "Doc", embedded: true, exported: true, typ: ptrType$9, tag: ""}, {prop: "links", name: "links", embedded: false, exported: false, typ: mapType$2, tag: ""}, {prop: "lines", name: "lines", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "lookupSym", name: "lookupSym", embedded: false, exported: false, typ: funcType$3, tag: ""}]); + Parser.init("", [{prop: "Words", name: "Words", embedded: false, exported: true, typ: mapType, tag: ""}, {prop: "LookupPackage", name: "LookupPackage", embedded: false, exported: true, typ: funcType$2, tag: ""}, {prop: "LookupSym", name: "LookupSym", embedded: false, exported: true, typ: funcType$3, tag: ""}]); + parseDoc.init("go/doc/comment", [{prop: "Parser", name: "Parser", embedded: true, exported: true, typ: ptrType$8, tag: ""}, {prop: "Doc", name: "Doc", embedded: true, exported: true, typ: ptrType$9, tag: ""}, {prop: "links", name: "links", embedded: false, exported: false, typ: mapType$1, tag: ""}, {prop: "lines", name: "lines", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "lookupSym", name: "lookupSym", embedded: false, exported: false, typ: funcType$3, tag: ""}]); span.init("go/doc/comment", [{prop: "start", name: "start", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "end", name: "end", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "kind", name: "kind", embedded: false, exported: false, typ: spanKind, tag: ""}]); mdPrinter.init("go/doc/comment", [{prop: "Printer", name: "Printer", embedded: true, exported: true, typ: ptrType, tag: ""}, {prop: "headingPrefix", name: "headingPrefix", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "raw", name: "raw", embedded: false, exported: false, typ: bytes.Buffer, tag: ""}]); htmlPrinter.init("go/doc/comment", [{prop: "Printer", name: "Printer", embedded: true, exported: true, typ: ptrType, tag: ""}, {prop: "tight", name: "tight", embedded: false, exported: false, typ: $Bool, tag: ""}]); @@ -111472,7 +112561,7 @@ $packages["go/doc/comment"] = (function() { $r = strings.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = unicode.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = utf8.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - stdPkgs = new sliceType(["bufio", "bytes", "context", "crypto", "embed", "encoding", "errors", "expvar", "flag", "fmt", "hash", "html", "image", "io", "log", "math", "mime", "net", "os", "path", "plugin", "reflect", "regexp", "runtime", "sort", "strconv", "strings", "sync", "syscall", "testing", "time", "unicode", "unsafe"]); + stdPkgs = new sliceType(["bufio", "bytes", "cmp", "context", "crypto", "embed", "encoding", "errors", "expvar", "flag", "fmt", "hash", "html", "image", "io", "log", "maps", "math", "mime", "net", "os", "path", "plugin", "reflect", "regexp", "runtime", "slices", "sort", "strconv", "strings", "sync", "syscall", "testing", "time", "unicode", "unsafe"]); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; @@ -111633,7 +112722,7 @@ $packages["internal/lazyregexp"] = (function() { return $pkg; })(); $packages["go/doc"] = (function() { - var $pkg = {}, $init, fmt, ast, comment, token, lazyregexp, io, path, sort, strconv, strings, unicode, utf8, Filter, Example, Package, Value, Type, Func, Note, sliceType, ptrType, sliceType$1, ptrType$1, sliceType$2, ptrType$2, sliceType$3, ptrType$3, sliceType$4, ptrType$4, sliceType$6, ptrType$10, ptrType$11, ptrType$12, ptrType$16, ptrType$17, ptrType$18, ptrType$21, ptrType$25, sliceType$11, ptrType$27, sliceType$13, ptrType$28, ptrType$41, mapType, mapType$2, mapType$4, ptrType$45, ptrType$46, noteMarker, noteMarkerRx, _r, noteCommentRx, _r$1, underscore, outputPrefix, _r$2, firstSentence, Synopsis, matchFields, matchDecl, filterValues, filterFuncs, filterTypes; + var $pkg = {}, $init, fmt, ast, comment, token, lazyregexp, io, path, sort, strconv, strings, unicode, utf8, Filter, Example, Package, Value, Type, Func, Note, sliceType, ptrType, sliceType$1, ptrType$1, sliceType$2, ptrType$2, sliceType$3, ptrType$3, sliceType$4, ptrType$4, sliceType$6, ptrType$10, ptrType$11, ptrType$12, ptrType$16, ptrType$17, ptrType$18, ptrType$22, ptrType$26, sliceType$11, ptrType$28, sliceType$13, ptrType$29, ptrType$40, mapType, mapType$2, mapType$4, ptrType$46, ptrType$47, noteMarker, noteMarkerRx, _r, noteCommentRx, _r$1, underscore, outputPrefix, _r$2, firstSentence, Synopsis, matchFields, matchDecl, filterValues, filterFuncs, filterTypes; fmt = $packages["fmt"]; ast = $packages["go/ast"]; comment = $packages["go/doc/comment"]; @@ -111654,7 +112743,7 @@ $packages["go/doc"] = (function() { this.Suffix = ""; this.Doc = ""; this.Code = $ifaceNil; - this.Play = ptrType$28.nil; + this.Play = ptrType$29.nil; this.Comments = sliceType$13.nil; this.Output = ""; this.Unordered = false; @@ -111802,18 +112891,18 @@ $packages["go/doc"] = (function() { ptrType$16 = $ptrType(ast.GenDecl); ptrType$17 = $ptrType(ast.InterfaceType); ptrType$18 = $ptrType(ast.ValueSpec); - ptrType$21 = $ptrType(ast.StructType); - ptrType$25 = $ptrType(Note); - sliceType$11 = $sliceType(ptrType$25); - ptrType$27 = $ptrType(ast.TypeSpec); + ptrType$22 = $ptrType(ast.StructType); + ptrType$26 = $ptrType(Note); + sliceType$11 = $sliceType(ptrType$26); + ptrType$28 = $ptrType(ast.TypeSpec); sliceType$13 = $sliceType(ptrType$12); - ptrType$28 = $ptrType(ast.File); - ptrType$41 = $ptrType(Package); + ptrType$29 = $ptrType(ast.File); + ptrType$40 = $ptrType(Package); mapType = $mapType($String, sliceType$11); mapType$2 = $mapType($String, $String); mapType$4 = $mapType($String, $Bool); - ptrType$45 = $ptrType(comment.Parser); - ptrType$46 = $ptrType(comment.Printer); + ptrType$46 = $ptrType(comment.Parser); + ptrType$47 = $ptrType(comment.Printer); firstSentence = function firstSentence$1(s) { var _i, _ref, _rune, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, i, p, pp, ppp, q, s; _tmp = 0; @@ -111936,7 +113025,7 @@ $packages["go/doc"] = (function() { d$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); _ref$1 = d$1; /* */ if ($assertType(_ref$1, ptrType$18, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref$1, ptrType$27, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref$1, ptrType$28, true)[1]) { $s = 4; continue; } /* */ $s = 5; continue; /* if ($assertType(_ref$1, ptrType$18, true)[1]) { */ case 3: v = _ref$1.$val; @@ -111955,7 +113044,7 @@ $packages["go/doc"] = (function() { $s = 6; continue; case 7: $s = 5; continue; - /* } else if ($assertType(_ref$1, ptrType$27, true)[1]) { */ case 4: + /* } else if ($assertType(_ref$1, ptrType$28, true)[1]) { */ case 4: v$1 = _ref$1.$val; _r$4 = f(v$1.Name.Name); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } /* */ if (_r$4) { $s = 11; continue; } @@ -111964,10 +113053,10 @@ $packages["go/doc"] = (function() { $s = -1; return true; /* } */ case 12: _ref$3 = v$1.Type; - /* */ if ($assertType(_ref$3, ptrType$21, true)[1]) { $s = 14; continue; } + /* */ if ($assertType(_ref$3, ptrType$22, true)[1]) { $s = 14; continue; } /* */ if ($assertType(_ref$3, ptrType$17, true)[1]) { $s = 15; continue; } /* */ $s = 16; continue; - /* if ($assertType(_ref$3, ptrType$21, true)[1]) { */ case 14: + /* if ($assertType(_ref$3, ptrType$22, true)[1]) { */ case 14: t = _ref$3.$val; _r$5 = matchFields(t.Fields, f); /* */ $s = 19; case 19: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } /* */ if (_r$5) { $s = 17; continue; } @@ -112172,9 +113261,9 @@ $packages["go/doc"] = (function() { $s = 3; case 3: return $24r; /* */ } return; } var $f = {$blk: Text, $c: true, $r, $24r, _r$3, _r$4, p, text, $s};return $f; }; - ptrType$41.methods = [{prop: "Synopsis", name: "Synopsis", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "Filter", name: "Filter", pkg: "", typ: $funcType([Filter], [], false)}, {prop: "collectValues", name: "collectValues", pkg: "go/doc", typ: $funcType([sliceType$1], [], false)}, {prop: "collectTypes", name: "collectTypes", pkg: "go/doc", typ: $funcType([sliceType$2], [], false)}, {prop: "collectFuncs", name: "collectFuncs", pkg: "go/doc", typ: $funcType([sliceType$3], [], false)}, {prop: "lookupSym", name: "lookupSym", pkg: "go/doc", typ: $funcType([$String, $String], [$Bool], false)}, {prop: "lookupPackage", name: "lookupPackage", pkg: "go/doc", typ: $funcType([$String], [$String, $Bool], false)}, {prop: "Parser", name: "Parser", pkg: "", typ: $funcType([], [ptrType$45], false)}, {prop: "Printer", name: "Printer", pkg: "", typ: $funcType([], [ptrType$46], false)}, {prop: "HTML", name: "HTML", pkg: "", typ: $funcType([$String], [sliceType$6], false)}, {prop: "Markdown", name: "Markdown", pkg: "", typ: $funcType([$String], [sliceType$6], false)}, {prop: "Text", name: "Text", pkg: "", typ: $funcType([$String], [sliceType$6], false)}]; + ptrType$40.methods = [{prop: "Synopsis", name: "Synopsis", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "Filter", name: "Filter", pkg: "", typ: $funcType([Filter], [], false)}, {prop: "collectValues", name: "collectValues", pkg: "go/doc", typ: $funcType([sliceType$1], [], false)}, {prop: "collectTypes", name: "collectTypes", pkg: "go/doc", typ: $funcType([sliceType$2], [], false)}, {prop: "collectFuncs", name: "collectFuncs", pkg: "go/doc", typ: $funcType([sliceType$3], [], false)}, {prop: "lookupSym", name: "lookupSym", pkg: "go/doc", typ: $funcType([$String, $String], [$Bool], false)}, {prop: "lookupPackage", name: "lookupPackage", pkg: "go/doc", typ: $funcType([$String], [$String, $Bool], false)}, {prop: "Parser", name: "Parser", pkg: "", typ: $funcType([], [ptrType$46], false)}, {prop: "Printer", name: "Printer", pkg: "", typ: $funcType([], [ptrType$47], false)}, {prop: "HTML", name: "HTML", pkg: "", typ: $funcType([$String], [sliceType$6], false)}, {prop: "Markdown", name: "Markdown", pkg: "", typ: $funcType([$String], [sliceType$6], false)}, {prop: "Text", name: "Text", pkg: "", typ: $funcType([$String], [sliceType$6], false)}]; Filter.init([$String], [$Bool], false); - Example.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Suffix", name: "Suffix", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Doc", name: "Doc", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Code", name: "Code", embedded: false, exported: true, typ: ast.Node, tag: ""}, {prop: "Play", name: "Play", embedded: false, exported: true, typ: ptrType$28, tag: ""}, {prop: "Comments", name: "Comments", embedded: false, exported: true, typ: sliceType$13, tag: ""}, {prop: "Output", name: "Output", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Unordered", name: "Unordered", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "EmptyOutput", name: "EmptyOutput", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Order", name: "Order", embedded: false, exported: true, typ: $Int, tag: ""}]); + Example.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Suffix", name: "Suffix", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Doc", name: "Doc", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Code", name: "Code", embedded: false, exported: true, typ: ast.Node, tag: ""}, {prop: "Play", name: "Play", embedded: false, exported: true, typ: ptrType$29, tag: ""}, {prop: "Comments", name: "Comments", embedded: false, exported: true, typ: sliceType$13, tag: ""}, {prop: "Output", name: "Output", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Unordered", name: "Unordered", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "EmptyOutput", name: "EmptyOutput", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Order", name: "Order", embedded: false, exported: true, typ: $Int, tag: ""}]); Package.init("go/doc", [{prop: "Doc", name: "Doc", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "ImportPath", name: "ImportPath", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Imports", name: "Imports", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "Filenames", name: "Filenames", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "Notes", name: "Notes", embedded: false, exported: true, typ: mapType, tag: ""}, {prop: "Bugs", name: "Bugs", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "Consts", name: "Consts", embedded: false, exported: true, typ: sliceType$1, tag: ""}, {prop: "Types", name: "Types", embedded: false, exported: true, typ: sliceType$2, tag: ""}, {prop: "Vars", name: "Vars", embedded: false, exported: true, typ: sliceType$1, tag: ""}, {prop: "Funcs", name: "Funcs", embedded: false, exported: true, typ: sliceType$3, tag: ""}, {prop: "Examples", name: "Examples", embedded: false, exported: true, typ: sliceType$4, tag: ""}, {prop: "importByName", name: "importByName", embedded: false, exported: false, typ: mapType$2, tag: ""}, {prop: "syms", name: "syms", embedded: false, exported: false, typ: mapType$4, tag: ""}]); Value.init("go/doc", [{prop: "Doc", name: "Doc", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Names", name: "Names", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "Decl", name: "Decl", embedded: false, exported: true, typ: ptrType$16, tag: ""}, {prop: "order", name: "order", embedded: false, exported: false, typ: $Int, tag: ""}]); Type.init("", [{prop: "Doc", name: "Doc", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Decl", name: "Decl", embedded: false, exported: true, typ: ptrType$16, tag: ""}, {prop: "Consts", name: "Consts", embedded: false, exported: true, typ: sliceType$1, tag: ""}, {prop: "Vars", name: "Vars", embedded: false, exported: true, typ: sliceType$1, tag: ""}, {prop: "Funcs", name: "Funcs", embedded: false, exported: true, typ: sliceType$3, tag: ""}, {prop: "Methods", name: "Methods", embedded: false, exported: true, typ: sliceType$3, tag: ""}, {prop: "Examples", name: "Examples", embedded: false, exported: true, typ: sliceType$4, tag: ""}]); @@ -112212,37 +113301,41 @@ $packages["go/doc"] = (function() { })(); $packages["internal/goexperiment"] = (function() { var $pkg = {}, $init, Flags; - Flags = $newType(0, $kindStruct, "goexperiment.Flags", true, "internal/goexperiment", true, function(FieldTrack_, PreemptibleLoops_, StaticLockRanking_, BoringCrypto_, Unified_, RegabiWrappers_, RegabiArgs_, HeapMinimum512KiB_, CoverageRedesign_, Arenas_, PageTrace_) { + Flags = $newType(0, $kindStruct, "goexperiment.Flags", true, "internal/goexperiment", true, function(FieldTrack_, PreemptibleLoops_, StaticLockRanking_, BoringCrypto_, RegabiWrappers_, RegabiArgs_, HeapMinimum512KiB_, CoverageRedesign_, Arenas_, PageTrace_, CgoCheck2_, LoopVar_, CacheProg_) { this.$val = this; if (arguments.length === 0) { this.FieldTrack = false; this.PreemptibleLoops = false; this.StaticLockRanking = false; this.BoringCrypto = false; - this.Unified = false; this.RegabiWrappers = false; this.RegabiArgs = false; this.HeapMinimum512KiB = false; this.CoverageRedesign = false; this.Arenas = false; this.PageTrace = false; + this.CgoCheck2 = false; + this.LoopVar = false; + this.CacheProg = false; return; } this.FieldTrack = FieldTrack_; this.PreemptibleLoops = PreemptibleLoops_; this.StaticLockRanking = StaticLockRanking_; this.BoringCrypto = BoringCrypto_; - this.Unified = Unified_; this.RegabiWrappers = RegabiWrappers_; this.RegabiArgs = RegabiArgs_; this.HeapMinimum512KiB = HeapMinimum512KiB_; this.CoverageRedesign = CoverageRedesign_; this.Arenas = Arenas_; this.PageTrace = PageTrace_; + this.CgoCheck2 = CgoCheck2_; + this.LoopVar = LoopVar_; + this.CacheProg = CacheProg_; }); $pkg.Flags = Flags; $pkg.$finishSetup = function() { - Flags.init("", [{prop: "FieldTrack", name: "FieldTrack", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "PreemptibleLoops", name: "PreemptibleLoops", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "StaticLockRanking", name: "StaticLockRanking", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "BoringCrypto", name: "BoringCrypto", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Unified", name: "Unified", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "RegabiWrappers", name: "RegabiWrappers", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "RegabiArgs", name: "RegabiArgs", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HeapMinimum512KiB", name: "HeapMinimum512KiB", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "CoverageRedesign", name: "CoverageRedesign", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Arenas", name: "Arenas", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "PageTrace", name: "PageTrace", embedded: false, exported: true, typ: $Bool, tag: ""}]); + Flags.init("", [{prop: "FieldTrack", name: "FieldTrack", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "PreemptibleLoops", name: "PreemptibleLoops", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "StaticLockRanking", name: "StaticLockRanking", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "BoringCrypto", name: "BoringCrypto", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "RegabiWrappers", name: "RegabiWrappers", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "RegabiArgs", name: "RegabiArgs", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HeapMinimum512KiB", name: "HeapMinimum512KiB", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "CoverageRedesign", name: "CoverageRedesign", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Arenas", name: "Arenas", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "PageTrace", name: "PageTrace", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "CgoCheck2", name: "CgoCheck2", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "LoopVar", name: "LoopVar", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "CacheProg", name: "CacheProg", embedded: false, exported: true, typ: $Bool, tag: ""}]); }; $init = function() { $pkg.$init = function() {}; @@ -112253,19 +113346,20 @@ $packages["internal/goexperiment"] = (function() { return $pkg; })(); $packages["internal/buildcfg"] = (function() { - var $pkg = {}, $init, fmt, goexperiment, os, filepath, reflect, runtime, strings, ExperimentFlags, gowasmFeatures, ptrType, sliceType, sliceType$1, ptrType$1, ptrType$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _r$10, ParseGOEXPERIMENT, expList, envOr, goamd64, goarm, gomips, gomips64, goppc64, gowasm, toolTags, experimentTags, gogoarchTags; + var $pkg = {}, $init, fmt, goexperiment, os, filepath, reflect, runtime, strconv, strings, ExperimentFlags, gowasmFeatures, ptrType, sliceType, sliceType$1, ptrType$1, ptrType$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _r$10, ParseGOEXPERIMENT, expList, envOr, goamd64, goarm, gomips, gomips64, goppc64, gowasm, toolTags, experimentTags, gogoarchTags; fmt = $packages["fmt"]; goexperiment = $packages["internal/goexperiment"]; os = $packages["os"]; filepath = $packages["path/filepath"]; reflect = $packages["reflect"]; runtime = $packages["runtime"]; + strconv = $packages["strconv"]; strings = $packages["strings"]; ExperimentFlags = $newType(0, $kindStruct, "buildcfg.ExperimentFlags", true, "internal/buildcfg", true, function(Flags_, baseline_) { this.$val = this; if (arguments.length === 0) { - this.Flags = new goexperiment.Flags.ptr(false, false, false, false, false, false, false, false, false, false, false); - this.baseline = new goexperiment.Flags.ptr(false, false, false, false, false, false, false, false, false, false, false); + this.Flags = new goexperiment.Flags.ptr(false, false, false, false, false, false, false, false, false, false, false, false, false); + this.baseline = new goexperiment.Flags.ptr(false, false, false, false, false, false, false, false, false, false, false, false, false); return; } this.Flags = Flags_; @@ -112287,10 +113381,10 @@ $packages["internal/buildcfg"] = (function() { ptrType = $ptrType(ExperimentFlags); sliceType = $sliceType($emptyInterface); sliceType$1 = $sliceType($String); - ptrType$1 = $ptrType(reflect.rtype); + ptrType$1 = $ptrType($packages["internal/abi"].Type); ptrType$2 = $ptrType(goexperiment.Flags); ParseGOEXPERIMENT = function ParseGOEXPERIMENT$1(goos, goarch, goexp) { - var {$24r, $24r$1, _1, _entry, _i, _key, _key$1, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, baseline, f, field, flags, goarch, goexp, goos, i, names, ok, regabiAlwaysOn, regabiSupported, rt, rv, set, val, $s, $r, $c} = $restore(this, {goos, goarch, goexp}); + var {$24r, $24r$1, _1, _entry, _i, _key, _key$1, _r$11, _r$12, _r$13, _r$14, _r$15, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, baseline, f, field, flags, goarch, goexp, goos, i, names, ok, regabiAlwaysOn, regabiSupported, rt, rv, set, val, $s, $r, $c} = $restore(this, {goos, goarch, goexp}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: flags = [flags]; _tmp = false; @@ -112302,28 +113396,25 @@ $packages["internal/buildcfg"] = (function() { regabiAlwaysOn = true; regabiSupported = true; } - baseline = new goexperiment.Flags.ptr(false, false, false, false, true, regabiSupported, regabiSupported, false, true, false, false); + baseline = new goexperiment.Flags.ptr(false, false, false, false, regabiSupported, regabiSupported, false, true, false, false, false, false, false); flags[0] = new ExperimentFlags.ptr($clone(baseline, goexperiment.Flags), $clone(baseline, goexperiment.Flags)); /* */ if (!(goexp === "")) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!(goexp === "")) { */ case 1: names = new $global.Map(); - _r$11 = reflect.ValueOf(flags[0].Flags); /* */ $s = 3; case 3: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _r$12 = $clone(_r$11, reflect.Value).Elem(); /* */ $s = 4; case 4: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - rv = _r$12; + rv = $clone(reflect.ValueOf(flags[0].Flags), reflect.Value).Elem(); rt = $clone(rv, reflect.Value).Type(); i = 0; - /* while (true) { */ case 5: - _r$13 = rt.NumField(); /* */ $s = 7; case 7: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - /* if (!(i < _r$13)) { break; } */ if(!(i < _r$13)) { $s = 6; continue; } - _r$14 = $clone(rv, reflect.Value).Field(i); /* */ $s = 8; case 8: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - field = _r$14; - _r$15 = rt.Field(i); /* */ $s = 9; case 9: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - _r$16 = strings.ToLower(_r$15.Name); /* */ $s = 10; case 10: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - _key = _r$16; (names || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: $methodVal($clone(field, reflect.Value), "SetBool") }); + /* while (true) { */ case 3: + _r$11 = rt.NumField(); /* */ $s = 5; case 5: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + /* if (!(i < _r$11)) { break; } */ if(!(i < _r$11)) { $s = 4; continue; } + field = $clone(rv, reflect.Value).Field(i); + _r$12 = rt.Field(i); /* */ $s = 6; case 6: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _r$13 = strings.ToLower(_r$12.Name); /* */ $s = 7; case 7: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _key = _r$13; (names || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: $methodVal($clone(field, reflect.Value), "SetBool") }); i = i + (1) >> 0; - $s = 5; continue; - case 6: + $s = 3; continue; + case 4: _key$1 = "regabi"; (names || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$1), { k: _key$1, v: (function(flags) { return function ParseGOEXPERIMENT·func1(v) { var v; flags[0].Flags.RegabiWrappers = v; @@ -112331,17 +113422,17 @@ $packages["internal/buildcfg"] = (function() { }; })(flags) }); _ref = strings.Split(goexp, ","); _i = 0; - /* while (true) { */ case 11: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 12; continue; } + /* while (true) { */ case 8: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 9; continue; } f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); if (f === "") { _i++; - /* continue; */ $s = 11; continue; + /* continue; */ $s = 8; continue; } if (f === "none") { - goexperiment.Flags.copy(flags[0].Flags, new goexperiment.Flags.ptr(false, false, false, false, false, false, false, false, false, false, false)); + goexperiment.Flags.copy(flags[0].Flags, new goexperiment.Flags.ptr(false, false, false, false, false, false, false, false, false, false, false, false, false)); _i++; - /* continue; */ $s = 11; continue; + /* continue; */ $s = 8; continue; } val = true; if (strings.HasPrefix(f, "no")) { @@ -112353,17 +113444,17 @@ $packages["internal/buildcfg"] = (function() { _tuple = (_entry = $mapIndex(names,$String.keyFor(f)), _entry !== undefined ? [_entry.v, true] : [$throwNilPointerError, false]); set = _tuple[0]; ok = _tuple[1]; - /* */ if (!ok) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (!ok) { */ case 13: - _r$17 = fmt.Errorf("unknown GOEXPERIMENT %s", new sliceType([new $String(f)])); /* */ $s = 15; case 15: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - $24r = [ptrType.nil, _r$17]; - $s = 16; case 16: return $24r; - /* } */ case 14: - $r = set(val); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!ok) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (!ok) { */ case 10: + _r$14 = fmt.Errorf("unknown GOEXPERIMENT %s", new sliceType([new $String(f)])); /* */ $s = 12; case 12: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + $24r = [ptrType.nil, _r$14]; + $s = 13; case 13: return $24r; + /* } */ case 11: + $r = set(val); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _i++; - $s = 11; continue; - case 12: + $s = 8; continue; + case 9: /* } */ case 2: if (regabiAlwaysOn) { flags[0].Flags.RegabiWrappers = true; @@ -112373,15 +113464,15 @@ $packages["internal/buildcfg"] = (function() { flags[0].Flags.RegabiWrappers = false; flags[0].Flags.RegabiArgs = false; } - /* */ if (flags[0].Flags.RegabiArgs && !flags[0].Flags.RegabiWrappers) { $s = 18; continue; } - /* */ $s = 19; continue; - /* if (flags[0].Flags.RegabiArgs && !flags[0].Flags.RegabiWrappers) { */ case 18: - _r$18 = fmt.Errorf("GOEXPERIMENT regabiargs requires regabiwrappers", sliceType.nil); /* */ $s = 20; case 20: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - $24r$1 = [ptrType.nil, _r$18]; - $s = 21; case 21: return $24r$1; - /* } */ case 19: + /* */ if (flags[0].Flags.RegabiArgs && !flags[0].Flags.RegabiWrappers) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (flags[0].Flags.RegabiArgs && !flags[0].Flags.RegabiWrappers) { */ case 15: + _r$15 = fmt.Errorf("GOEXPERIMENT regabiargs requires regabiwrappers", sliceType.nil); /* */ $s = 17; case 17: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + $24r$1 = [ptrType.nil, _r$15]; + $s = 18; case 18: return $24r$1; + /* } */ case 16: $s = -1; return [flags[0], $ifaceNil]; - /* */ } return; } var $f = {$blk: ParseGOEXPERIMENT$1, $c: true, $r, $24r, $24r$1, _1, _entry, _i, _key, _key$1, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, baseline, f, field, flags, goarch, goexp, goos, i, names, ok, regabiAlwaysOn, regabiSupported, rt, rv, set, val, $s};return $f; + /* */ } return; } var $f = {$blk: ParseGOEXPERIMENT$1, $c: true, $r, $24r, $24r$1, _1, _entry, _i, _key, _key$1, _r$11, _r$12, _r$13, _r$14, _r$15, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, baseline, f, field, flags, goarch, goexp, goos, i, names, ok, regabiAlwaysOn, regabiSupported, rt, rv, set, val, $s};return $f; }; $pkg.ParseGOEXPERIMENT = ParseGOEXPERIMENT; $ptrType(ExperimentFlags).prototype.String = function String() { @@ -112395,39 +113486,27 @@ $packages["internal/buildcfg"] = (function() { /* */ } return; } var $f = {$blk: String, $c: true, $r, $24r, _r$11, _r$12, exp, $s};return $f; }; expList = function expList$1(exp, base, all) { - var {_r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$20, _r$21, all, base, baseVal, exp, i, list, name, rBase, rt, rv, val, $s, $r, $c} = $restore(this, {exp, base, all}); + var {_r$11, _r$12, _r$13, all, base, baseVal, exp, i, list, name, rBase, rt, rv, val, $s, $r, $c} = $restore(this, {exp, base, all}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: list = sliceType$1.nil; - _r$11 = reflect.ValueOf(exp); /* */ $s = 1; case 1: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _r$12 = $clone(_r$11, reflect.Value).Elem(); /* */ $s = 2; case 2: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - rv = _r$12; + rv = $clone(reflect.ValueOf(exp), reflect.Value).Elem(); rBase = new reflect.Value.ptr(ptrType$1.nil, 0, 0); - /* */ if (!(base === ptrType$2.nil)) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!(base === ptrType$2.nil)) { */ case 3: - _r$13 = reflect.ValueOf(base); /* */ $s = 5; case 5: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - _r$14 = $clone(_r$13, reflect.Value).Elem(); /* */ $s = 6; case 6: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - rBase = _r$14; - /* } */ case 4: + if (!(base === ptrType$2.nil)) { + rBase = $clone(reflect.ValueOf(base), reflect.Value).Elem(); + } rt = $clone(rv, reflect.Value).Type(); i = 0; - /* while (true) { */ case 7: - _r$15 = rt.NumField(); /* */ $s = 9; case 9: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - /* if (!(i < _r$15)) { break; } */ if(!(i < _r$15)) { $s = 8; continue; } - _r$16 = rt.Field(i); /* */ $s = 10; case 10: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - _r$17 = strings.ToLower(_r$16.Name); /* */ $s = 11; case 11: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - name = _r$17; - _r$18 = $clone(rv, reflect.Value).Field(i); /* */ $s = 12; case 12: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - _r$19 = $clone(_r$18, reflect.Value).Bool(); /* */ $s = 13; case 13: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - val = _r$19; + /* while (true) { */ case 1: + _r$11 = rt.NumField(); /* */ $s = 3; case 3: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + /* if (!(i < _r$11)) { break; } */ if(!(i < _r$11)) { $s = 2; continue; } + _r$12 = rt.Field(i); /* */ $s = 4; case 4: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _r$13 = strings.ToLower(_r$12.Name); /* */ $s = 5; case 5: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + name = _r$13; + val = $clone($clone(rv, reflect.Value).Field(i), reflect.Value).Bool(); baseVal = false; - /* */ if (!(base === ptrType$2.nil)) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (!(base === ptrType$2.nil)) { */ case 14: - _r$20 = $clone(rBase, reflect.Value).Field(i); /* */ $s = 16; case 16: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - _r$21 = $clone(_r$20, reflect.Value).Bool(); /* */ $s = 17; case 17: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } - baseVal = _r$21; - /* } */ case 15: + if (!(base === ptrType$2.nil)) { + baseVal = $clone($clone(rBase, reflect.Value).Field(i), reflect.Value).Bool(); + } if (all || !(val === baseVal)) { if (val) { list = $append(list, name); @@ -112436,10 +113515,10 @@ $packages["internal/buildcfg"] = (function() { } } i = i + (1) >> 0; - $s = 7; continue; - case 8: + $s = 1; continue; + case 2: $s = -1; return list; - /* */ } return; } var $f = {$blk: expList$1, $c: true, $r, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$20, _r$21, all, base, baseVal, exp, i, list, name, rBase, rt, rv, val, $s};return $f; + /* */ } return; } var $f = {$blk: expList$1, $c: true, $r, _r$11, _r$12, _r$13, all, base, baseVal, exp, i, list, name, rBase, rt, rv, val, $s};return $f; }; $ptrType(ExperimentFlags).prototype.Enabled = function Enabled() { var {$24r, _r$11, exp, $s, $r, $c} = $restore(this, {}); @@ -112494,7 +113573,7 @@ $packages["internal/buildcfg"] = (function() { goarm = function goarm$1() { var {_1, _r$11, _r$12, def, v, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - def = "5"; + def = "7"; if ($pkg.GOOS === "android" && $pkg.GOARCH === "arm") { def = "7"; } @@ -112719,14 +113798,15 @@ $packages["internal/buildcfg"] = (function() { $r = filepath.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = reflect.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = runtime.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = strings.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $pkg.Error = $ifaceNil; $pkg.GOROOT = runtime.GOROOT(); - _r = envOr("GOARCH", "ecmascript"); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = envOr("GOARCH", "ecmascript"); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $pkg.GOARCH = _r; - _r$1 = envOr("GOOS", "js"); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1 = envOr("GOOS", "js"); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $pkg.GOOS = _r$1; - _r$2 = envOr("GO386", "sse2"); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2 = envOr("GO386", "sse2"); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $pkg.GO386 = _r$2; _r$3 = (function func1() { var {_arg, _arg$1, _arg$2, _r$3, _r$4, _tuple, err, flags, $s, $r, $c} = $restore(this, {}); @@ -112741,25 +113821,25 @@ $packages["internal/buildcfg"] = (function() { err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $pkg.Error = err; - $s = -1; return new ExperimentFlags.ptr(new goexperiment.Flags.ptr(false, false, false, false, false, false, false, false, false, false, false), new goexperiment.Flags.ptr(false, false, false, false, false, false, false, false, false, false, false)); + $s = -1; return new ExperimentFlags.ptr(new goexperiment.Flags.ptr(false, false, false, false, false, false, false, false, false, false, false, false, false), new goexperiment.Flags.ptr(false, false, false, false, false, false, false, false, false, false, false, false, false)); } - $s = -1; return flags; + $s = -1; return (flags === ptrType.nil && $throwNilPointerError(), flags); /* */ } return; } var $f = {$blk: func1, $c: true, $r, _arg, _arg$1, _arg$2, _r$3, _r$4, _tuple, err, flags, $s};return $f; - })(); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + })(); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } $pkg.Experiment = $clone(_r$3, ExperimentFlags); - _r$4 = goamd64(); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4 = goamd64(); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } $pkg.GOAMD64 = _r$4; - _r$5 = goarm(); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$5 = goarm(); /* */ $s = 14; case 14: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } $pkg.GOARM = _r$5; - _r$6 = gomips(); /* */ $s = 14; case 14: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$6 = gomips(); /* */ $s = 15; case 15: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } $pkg.GOMIPS = _r$6; - _r$7 = gomips64(); /* */ $s = 15; case 15: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$7 = gomips64(); /* */ $s = 16; case 16: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } $pkg.GOMIPS64 = _r$7; - _r$8 = goppc64(); /* */ $s = 16; case 16: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$8 = goppc64(); /* */ $s = 17; case 17: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } $pkg.GOPPC64 = _r$8; - _r$9 = gowasm(); /* */ $s = 17; case 17: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$9 = gowasm(); /* */ $s = 18; case 18: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } $pkg.GOWASM = $clone(_r$9, gowasmFeatures); - _r$10 = toolTags(); /* */ $s = 18; case 18: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$10 = toolTags(); /* */ $s = 19; case 19: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } $pkg.ToolTags = _r$10; /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; @@ -112767,7 +113847,7 @@ $packages["internal/buildcfg"] = (function() { return $pkg; })(); $packages["context"] = (function() { - var $pkg = {}, $init, errors, reflectlite, sync, atomic, time, Context, deadlineExceededError, emptyCtx, CancelFunc, canceler, cancelCtx, stringer, timerCtx, valueCtx, ptrType, structType, ptrType$1, ptrType$2, ptrType$3, chanType, ptrType$4, ptrType$5, ptrType$6, chanType$1, mapType, goroutines, cancelCtxKey, cancelCtxKey$24ptr, x, background, todo, closedchan, Background, WithCancel, withCancel, Cause, newCancelCtx, propagateCancel, parentCancelCtx, removeChild, init, contextName, WithDeadline, WithTimeout, WithValue, stringify, value; + var $pkg = {}, $init, errors, reflectlite, sync, atomic, time, Context, deadlineExceededError, emptyCtx, backgroundCtx, todoCtx, CancelFunc, afterFuncer, stopCtx, canceler, cancelCtx, stringer, withoutCancelCtx, timerCtx, valueCtx, structType, ptrType, ptrType$1, ptrType$2, chanType, ptrType$3, ptrType$4, ptrType$5, chanType$1, funcType, funcType$1, mapType, goroutines, cancelCtxKey, cancelCtxKey$24ptr, x, closedchan, Background, WithCancel, withCancel, Cause, parentCancelCtx, removeChild, init, contextName, WithDeadline, WithDeadlineCause, WithTimeout, WithValue, stringify, value; errors = $packages["errors"]; reflectlite = $packages["internal/reflectlite"]; sync = $packages["sync"]; @@ -112775,8 +113855,35 @@ $packages["context"] = (function() { time = $packages["time"]; Context = $newType(8, $kindInterface, "context.Context", true, "context", true, null); deadlineExceededError = $newType(0, $kindStruct, "context.deadlineExceededError", true, "context", false, function() { this.$val = this; }); - emptyCtx = $newType(4, $kindInt, "context.emptyCtx", true, "context", false, null); + emptyCtx = $newType(0, $kindStruct, "context.emptyCtx", true, "context", false, function() { this.$val = this; }); + backgroundCtx = $newType(0, $kindStruct, "context.backgroundCtx", true, "context", false, function(emptyCtx_) { + this.$val = this; + if (arguments.length === 0) { + this.emptyCtx = new emptyCtx.ptr(); + return; + } + this.emptyCtx = emptyCtx_; + }); + todoCtx = $newType(0, $kindStruct, "context.todoCtx", true, "context", false, function(emptyCtx_) { + this.$val = this; + if (arguments.length === 0) { + this.emptyCtx = new emptyCtx.ptr(); + return; + } + this.emptyCtx = emptyCtx_; + }); CancelFunc = $newType(4, $kindFunc, "context.CancelFunc", true, "context", true, null); + afterFuncer = $newType(8, $kindInterface, "context.afterFuncer", true, "context", false, null); + stopCtx = $newType(0, $kindStruct, "context.stopCtx", true, "context", false, function(Context_, stop_) { + this.$val = this; + if (arguments.length === 0) { + this.Context = $ifaceNil; + this.stop = $throwNilPointerError; + return; + } + this.Context = Context_; + this.stop = stop_; + }); canceler = $newType(8, $kindInterface, "context.canceler", true, "context", false, null); cancelCtx = $newType(0, $kindStruct, "context.cancelCtx", true, "context", false, function(Context_, mu_, done_, children_, err_, cause_) { this.$val = this; @@ -112797,12 +113904,20 @@ $packages["context"] = (function() { this.cause = cause_; }); stringer = $newType(8, $kindInterface, "context.stringer", true, "context", false, null); + withoutCancelCtx = $newType(0, $kindStruct, "context.withoutCancelCtx", true, "context", false, function(c_) { + this.$val = this; + if (arguments.length === 0) { + this.c = $ifaceNil; + return; + } + this.c = c_; + }); timerCtx = $newType(0, $kindStruct, "context.timerCtx", true, "context", false, function(cancelCtx_, timer_, deadline_) { this.$val = this; if (arguments.length === 0) { - this.cancelCtx = ptrType$2.nil; - this.timer = ptrType$4.nil; - this.deadline = new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$1.nil); + this.cancelCtx = new cancelCtx.ptr($ifaceNil, new sync.Mutex.ptr(0, 0), new atomic.Value.ptr($ifaceNil), false, $ifaceNil, $ifaceNil); + this.timer = ptrType$3.nil; + this.deadline = new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil); return; } this.cancelCtx = cancelCtx_; @@ -112824,23 +113939,29 @@ $packages["context"] = (function() { $pkg.Context = Context; $pkg.deadlineExceededError = deadlineExceededError; $pkg.emptyCtx = emptyCtx; + $pkg.backgroundCtx = backgroundCtx; + $pkg.todoCtx = todoCtx; $pkg.CancelFunc = CancelFunc; + $pkg.afterFuncer = afterFuncer; + $pkg.stopCtx = stopCtx; $pkg.canceler = canceler; $pkg.cancelCtx = cancelCtx; $pkg.stringer = stringer; + $pkg.withoutCancelCtx = withoutCancelCtx; $pkg.timerCtx = timerCtx; $pkg.valueCtx = valueCtx; $pkg.$finishSetup = function() { - ptrType = $ptrType(emptyCtx); structType = $structType("", []); - ptrType$1 = $ptrType(time.Location); - ptrType$2 = $ptrType(cancelCtx); - ptrType$3 = $ptrType($Int); + ptrType = $ptrType(time.Location); + ptrType$1 = $ptrType(cancelCtx); + ptrType$2 = $ptrType($Int); chanType = $chanType(structType, false, false); - ptrType$4 = $ptrType(time.Timer); - ptrType$5 = $ptrType(valueCtx); - ptrType$6 = $ptrType(timerCtx); + ptrType$3 = $ptrType(time.Timer); + ptrType$4 = $ptrType(valueCtx); + ptrType$5 = $ptrType(timerCtx); chanType$1 = $chanType(structType, false, true); + funcType = $funcType([], [], false); + funcType$1 = $funcType([], [$Bool], false); mapType = $mapType(canceler, structType); $ptrType(deadlineExceededError).prototype.Error = function Error() { return "context deadline exceeded"; @@ -112856,33 +113977,35 @@ $packages["context"] = (function() { deadlineExceededError.prototype.Temporary = function(...$args) { return this.$val.Temporary(...$args); }; $ptrType(emptyCtx).prototype.Deadline = function Deadline() { var deadline, ok; - deadline = new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$1.nil); + deadline = new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil); ok = false; return [deadline, ok]; }; + emptyCtx.prototype.Deadline = function(...$args) { return this.$val.Deadline(...$args); }; $ptrType(emptyCtx).prototype.Done = function Done() { return $chanNil; }; + emptyCtx.prototype.Done = function(...$args) { return this.$val.Done(...$args); }; $ptrType(emptyCtx).prototype.Err = function Err() { return $ifaceNil; }; + emptyCtx.prototype.Err = function(...$args) { return this.$val.Err(...$args); }; $ptrType(emptyCtx).prototype.Value = function Value(key) { var key; return $ifaceNil; }; - $ptrType(emptyCtx).prototype.String = function String() { - var _1, e; - e = this; - _1 = e; - if (_1 === (background)) { - return "context.Background"; - } else if (_1 === (todo)) { - return "context.TODO"; - } - return "unknown empty Context"; + emptyCtx.prototype.Value = function(...$args) { return this.$val.Value(...$args); }; + $ptrType(backgroundCtx).prototype.String = function String() { + return "context.Background"; + }; + backgroundCtx.prototype.String = function(...$args) { return this.$val.String(...$args); }; + $ptrType(todoCtx).prototype.String = function String$1() { + return "context.TODO"; }; + todoCtx.prototype.String = function(...$args) { return this.$val.String(...$args); }; Background = function Background$1() { - return background; + var x$1; + return (x$1 = new backgroundCtx.ptr(new emptyCtx.ptr()), new x$1.constructor.elem(x$1)); }; $pkg.Background = Background; WithCancel = function WithCancel$1(parent) { @@ -112913,16 +114036,16 @@ $packages["context"] = (function() { if ($interfaceIsEqual(parent, $ifaceNil)) { $panic(new $String("cannot create context from nil parent")); } - c = newCancelCtx(parent); - $r = propagateCancel(parent, c); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + c = new cancelCtx.ptr($ifaceNil, new sync.Mutex.ptr(0, 0), new atomic.Value.ptr($ifaceNil), false, $ifaceNil, $ifaceNil); + $r = c.propagateCancel(parent, c); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return c; /* */ } return; } var $f = {$blk: withCancel$1, $c: true, $r, c, parent, $s};return $f; }; Cause = function Cause$1(c) { var {$24r, $24r$1, _r, _tuple, c, cc, ok, $s, $deferred, $r, $c} = $restore(this, {c}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - _r = c.Value((cancelCtxKey$24ptr || (cancelCtxKey$24ptr = new ptrType$3(function() { return cancelCtxKey; }, function($v) { cancelCtxKey = $v; })))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = $assertType(_r, ptrType$2, true); + _r = c.Value((cancelCtxKey$24ptr || (cancelCtxKey$24ptr = new ptrType$2(function() { return cancelCtxKey; }, function($v) { cancelCtxKey = $v; })))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = $assertType(_r, ptrType$1, true); cc = _tuple[0]; ok = _tuple[1]; /* */ if (ok) { $s = 2; continue; } @@ -112938,15 +114061,108 @@ $packages["context"] = (function() { /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Cause$1, $c: true, $r, $24r, $24r$1, _r, _tuple, c, cc, ok, $s, $deferred};return $f; } } }; $pkg.Cause = Cause; - newCancelCtx = function newCancelCtx$1(parent) { - var parent; - return new cancelCtx.ptr(parent, new sync.Mutex.ptr(0, 0), new atomic.Value.ptr($ifaceNil), false, $ifaceNil, $ifaceNil); + parentCancelCtx = function parentCancelCtx$1(parent) { + var {_r, _r$1, _tuple, _tuple$1, done, ok, p, parent, pdone, $s, $r, $c} = $restore(this, {parent}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = parent.Done(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + done = _r; + if (done === closedchan || done === $chanNil) { + $s = -1; return [ptrType$1.nil, false]; + } + _r$1 = parent.Value((cancelCtxKey$24ptr || (cancelCtxKey$24ptr = new ptrType$2(function() { return cancelCtxKey; }, function($v) { cancelCtxKey = $v; })))); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = $assertType(_r$1, ptrType$1, true); + p = _tuple[0]; + ok = _tuple[1]; + if (!ok) { + $s = -1; return [ptrType$1.nil, false]; + } + _tuple$1 = $assertType(p.done.Load(), chanType, true); + pdone = _tuple$1[0]; + if (!(pdone === done)) { + $s = -1; return [ptrType$1.nil, false]; + } + $s = -1; return [p, true]; + /* */ } return; } var $f = {$blk: parentCancelCtx$1, $c: true, $r, _r, _r$1, _tuple, _tuple$1, done, ok, p, parent, pdone, $s};return $f; + }; + removeChild = function removeChild$1(parent, child) { + var {_r, _r$1, _tuple, _tuple$1, child, ok, ok$1, p, parent, s, $s, $r, $c} = $restore(this, {parent, child}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _tuple = $assertType(parent, stopCtx, true); + s = $clone(_tuple[0], stopCtx); + ok = _tuple[1]; + /* */ if (ok) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (ok) { */ case 1: + _r = s.stop(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + $s = -1; return; + /* } */ case 2: + _r$1 = parentCancelCtx(parent); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + p = _tuple$1[0]; + ok$1 = _tuple$1[1]; + if (!ok$1) { + $s = -1; return; + } + $r = p.mu.Lock(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (!(p.children === false)) { + $mapDelete(p.children, canceler.keyFor(child)); + } + $r = p.mu.Unlock(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: removeChild$1, $c: true, $r, _r, _r$1, _tuple, _tuple$1, child, ok, ok$1, p, parent, s, $s};return $f; + }; + init = function init$1() { + $close(closedchan); + }; + $ptrType(cancelCtx).prototype.Value = function Value$1(key) { + var {$24r, _r, c, key, $s, $r, $c} = $restore(this, {key}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + c = this; + if ($interfaceIsEqual(key, (cancelCtxKey$24ptr || (cancelCtxKey$24ptr = new ptrType$2(function() { return cancelCtxKey; }, function($v) { cancelCtxKey = $v; }))))) { + $s = -1; return c; + } + _r = value(c.Context, key); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Value$1, $c: true, $r, $24r, _r, c, key, $s};return $f; + }; + $ptrType(cancelCtx).prototype.Done = function Done$1() { + var {$24r, c, d, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + c = this; + d = c.done.Load(); + if (!($interfaceIsEqual(d, $ifaceNil))) { + $s = -1; return $assertType(d, chanType); + } + $r = c.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(c.mu, "Unlock"), []]); + d = c.done.Load(); + if ($interfaceIsEqual(d, $ifaceNil)) { + d = new chanType(new $Chan(structType, 0)); + c.done.Store(d); + } + $24r = $assertType(d, chanType); + $s = 2; case 2: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $chanNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Done$1, $c: true, $r, $24r, c, d, $s, $deferred};return $f; } } + }; + $ptrType(cancelCtx).prototype.Err = function Err$1() { + var {c, err, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + c = this; + $r = c.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + err = c.err; + $r = c.mu.Unlock(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return err; + /* */ } return; } var $f = {$blk: Err$1, $c: true, $r, c, err, $s};return $f; }; - propagateCancel = function propagateCancel$1(parent, child) { - var {_arg, _arg$1, _key, _r, _r$1, _r$2, _r$3, _selection, _tuple, child, done, ok, p, parent, $s, $r, $c} = $restore(this, {parent, child}); + $ptrType(cancelCtx).prototype.propagateCancel = function propagateCancel(parent, child) { + var {_arg, _arg$1, _key, _r, _r$1, _r$2, _r$3, _r$4, _selection, _tuple, _tuple$1, a, c, child, done, ok, ok$1, p, parent, stop, x$1, $s, $r, $c} = $restore(this, {parent, child}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: child = [child]; parent = [parent]; + c = this; + c.Context = parent[0]; _r = parent[0].Done(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } done = _r; if (done === $chanNil) { @@ -112972,132 +114188,69 @@ $packages["context"] = (function() { /* */ if (ok) { $s = 9; continue; } /* */ $s = 10; continue; /* if (ok) { */ case 9: - $r = p.mu.Lock(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!($interfaceIsEqual(p.err, $ifaceNil))) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (!($interfaceIsEqual(p.err, $ifaceNil))) { */ case 13: - $r = child[0].cancel(false, p.err, p.cause); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 15; continue; - /* } else { */ case 14: + $r = p.mu.Lock(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!($interfaceIsEqual(p.err, $ifaceNil))) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (!($interfaceIsEqual(p.err, $ifaceNil))) { */ case 12: + $r = child[0].cancel(false, p.err, p.cause); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 14; continue; + /* } else { */ case 13: if (p.children === false) { p.children = new $global.Map(); } _key = child[0]; (p.children || $throwRuntimeError("assignment to entry in nil map")).set(canceler.keyFor(_key), { k: _key, v: $clone(new structType.ptr(), structType) }); - /* } */ case 15: - $r = p.mu.Unlock(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 11; continue; - /* } else { */ case 10: - goroutines.Add(1); - $go((function(child, parent) { return function propagateCancel·func1() { - var {_arg$2, _arg$3, _r$4, _r$5, _r$6, _r$7, _r$8, _selection$1, $s, $r, $c} = $restore(this, {}); + /* } */ case 14: + $r = p.mu.Unlock(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 10: + _tuple$1 = $assertType(parent[0], afterFuncer, true); + a = _tuple$1[0]; + ok$1 = _tuple$1[1]; + /* */ if (ok$1) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (ok$1) { */ case 17: + $r = c.mu.Lock(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$4 = a.AfterFunc((function(child, parent) { return function cancelCtx·propagateCancel·func1() { + var {_arg$2, _arg$3, _r$4, _r$5, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$4 = parent[0].Done(); /* */ $s = 1; case 1: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$5 = child[0].Done(); /* */ $s = 2; case 2: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$6 = $select([[_r$4], [_r$5]]); /* */ $s = 3; case 3: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _selection$1 = _r$6; - /* */ if (_selection$1[0] === 0) { $s = 4; continue; } - /* */ if (_selection$1[0] === 1) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (_selection$1[0] === 0) { */ case 4: - _r$7 = parent[0].Err(); /* */ $s = 7; case 7: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _arg$2 = _r$7; - _r$8 = Cause(parent[0]); /* */ $s = 8; case 8: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _arg$3 = _r$8; - $r = child[0].cancel(false, _arg$2, _arg$3); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 6; continue; - /* } else if (_selection$1[0] === 1) { */ case 5: - /* } */ case 6: + _r$4 = parent[0].Err(); /* */ $s = 1; case 1: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _arg$2 = _r$4; + _r$5 = Cause(parent[0]); /* */ $s = 2; case 2: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _arg$3 = _r$5; + $r = child[0].cancel(false, _arg$2, _arg$3); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } var $f = {$blk: propagateCancel·func1, $c: true, $r, _arg$2, _arg$3, _r$4, _r$5, _r$6, _r$7, _r$8, _selection$1, $s};return $f; - }; })(child, parent), []); - /* } */ case 11: - $s = -1; return; - /* */ } return; } var $f = {$blk: propagateCancel$1, $c: true, $r, _arg, _arg$1, _key, _r, _r$1, _r$2, _r$3, _selection, _tuple, child, done, ok, p, parent, $s};return $f; - }; - parentCancelCtx = function parentCancelCtx$1(parent) { - var {_r, _r$1, _tuple, _tuple$1, done, ok, p, parent, pdone, $s, $r, $c} = $restore(this, {parent}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = parent.Done(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - done = _r; - if (done === closedchan || done === $chanNil) { - $s = -1; return [ptrType$2.nil, false]; - } - _r$1 = parent.Value((cancelCtxKey$24ptr || (cancelCtxKey$24ptr = new ptrType$3(function() { return cancelCtxKey; }, function($v) { cancelCtxKey = $v; })))); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = $assertType(_r$1, ptrType$2, true); - p = _tuple[0]; - ok = _tuple[1]; - if (!ok) { - $s = -1; return [ptrType$2.nil, false]; - } - _tuple$1 = $assertType(p.done.Load(), chanType, true); - pdone = _tuple$1[0]; - if (!(pdone === done)) { - $s = -1; return [ptrType$2.nil, false]; - } - $s = -1; return [p, true]; - /* */ } return; } var $f = {$blk: parentCancelCtx$1, $c: true, $r, _r, _r$1, _tuple, _tuple$1, done, ok, p, parent, pdone, $s};return $f; - }; - removeChild = function removeChild$1(parent, child) { - var {_r, _tuple, child, ok, p, parent, $s, $r, $c} = $restore(this, {parent, child}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = parentCancelCtx(parent); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - p = _tuple[0]; - ok = _tuple[1]; - if (!ok) { + /* */ } return; } var $f = {$blk: cancelCtx·propagateCancel·func1, $c: true, $r, _arg$2, _arg$3, _r$4, _r$5, $s};return $f; + }; })(child, parent)); /* */ $s = 20; case 20: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + stop = _r$4; + c.Context = (x$1 = new stopCtx.ptr(parent[0], stop), new x$1.constructor.elem(x$1)); + $r = c.mu.Unlock(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - } - $r = p.mu.Lock(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (!(p.children === false)) { - $mapDelete(p.children, canceler.keyFor(child)); - } - $r = p.mu.Unlock(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 18: + goroutines.Add(1); + $go((function(child, parent) { return function cancelCtx·propagateCancel·func2() { + var {_arg$2, _arg$3, _r$5, _r$6, _r$7, _r$8, _r$9, _selection$1, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$5 = parent[0].Done(); /* */ $s = 1; case 1: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$6 = child[0].Done(); /* */ $s = 2; case 2: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$7 = $select([[_r$5], [_r$6]]); /* */ $s = 3; case 3: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _selection$1 = _r$7; + /* */ if (_selection$1[0] === 0) { $s = 4; continue; } + /* */ if (_selection$1[0] === 1) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_selection$1[0] === 0) { */ case 4: + _r$8 = parent[0].Err(); /* */ $s = 7; case 7: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _arg$2 = _r$8; + _r$9 = Cause(parent[0]); /* */ $s = 8; case 8: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _arg$3 = _r$9; + $r = child[0].cancel(false, _arg$2, _arg$3); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 6; continue; + /* } else if (_selection$1[0] === 1) { */ case 5: + /* } */ case 6: + $s = -1; return; + /* */ } return; } var $f = {$blk: cancelCtx·propagateCancel·func2, $c: true, $r, _arg$2, _arg$3, _r$5, _r$6, _r$7, _r$8, _r$9, _selection$1, $s};return $f; + }; })(child, parent), []); $s = -1; return; - /* */ } return; } var $f = {$blk: removeChild$1, $c: true, $r, _r, _tuple, child, ok, p, parent, $s};return $f; - }; - init = function init$1() { - $close(closedchan); - }; - $ptrType(cancelCtx).prototype.Value = function Value$1(key) { - var {$24r, _r, c, key, $s, $r, $c} = $restore(this, {key}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - c = this; - if ($interfaceIsEqual(key, (cancelCtxKey$24ptr || (cancelCtxKey$24ptr = new ptrType$3(function() { return cancelCtxKey; }, function($v) { cancelCtxKey = $v; }))))) { - $s = -1; return c; - } - _r = value(c.Context, key); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Value$1, $c: true, $r, $24r, _r, c, key, $s};return $f; - }; - $ptrType(cancelCtx).prototype.Done = function Done$1() { - var {$24r, c, d, $s, $deferred, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - c = this; - d = c.done.Load(); - if (!($interfaceIsEqual(d, $ifaceNil))) { - $s = -1; return $assertType(d, chanType); - } - $r = c.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(c.mu, "Unlock"), []]); - d = c.done.Load(); - if ($interfaceIsEqual(d, $ifaceNil)) { - d = new chanType(new $Chan(structType, 0)); - c.done.Store(d); - } - $24r = $assertType(d, chanType); - $s = 2; case 2: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $chanNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Done$1, $c: true, $r, $24r, c, d, $s, $deferred};return $f; } } - }; - $ptrType(cancelCtx).prototype.Err = function Err$1() { - var {c, err, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - c = this; - $r = c.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - err = c.err; - $r = c.mu.Unlock(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return err; - /* */ } return; } var $f = {$blk: Err$1, $c: true, $r, c, err, $s};return $f; + /* */ } return; } var $f = {$blk: propagateCancel, $c: true, $r, _arg, _arg$1, _key, _r, _r$1, _r$2, _r$3, _r$4, _selection, _tuple, _tuple$1, a, c, child, done, ok, ok$1, p, parent, stop, x$1, $s};return $f; }; contextName = function contextName$1(c) { var {$24r, $24r$1, _r, _r$1, _tuple, c, ok, s, $s, $r, $c} = $restore(this, {c}); @@ -113117,16 +114270,16 @@ $packages["context"] = (function() { $s = 6; case 6: return $24r$1; /* */ } return; } var $f = {$blk: contextName$1, $c: true, $r, $24r, $24r$1, _r, _r$1, _tuple, c, ok, s, $s};return $f; }; - $ptrType(cancelCtx).prototype.String = function String$1() { + $ptrType(cancelCtx).prototype.String = function String$2() { var {$24r, _r, c, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: c = this; _r = contextName(c.Context); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $24r = _r + ".WithCancel"; $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$1, $c: true, $r, $24r, _r, c, $s};return $f; + /* */ } return; } var $f = {$blk: String$2, $c: true, $r, $24r, _r, c, $s};return $f; }; - $ptrType(cancelCtx).prototype.cancel = function cancel(removeFromParent, err, cause) { + $ptrType(cancelCtx).prototype.cancel = function cancel$1(removeFromParent, err, cause) { var {_entry, _i, _key, _keys, _ref, _size, _tuple, c, cause, child, d, err, removeFromParent, $s, $r, $c} = $restore(this, {removeFromParent, err, cause}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: c = this; @@ -113177,12 +114330,57 @@ $packages["context"] = (function() { $r = removeChild(c.Context, c); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 10: $s = -1; return; - /* */ } return; } var $f = {$blk: cancel, $c: true, $r, _entry, _i, _key, _keys, _ref, _size, _tuple, c, cause, child, d, err, removeFromParent, $s};return $f; + /* */ } return; } var $f = {$blk: cancel$1, $c: true, $r, _entry, _i, _key, _keys, _ref, _size, _tuple, c, cause, child, d, err, removeFromParent, $s};return $f; + }; + $ptrType(withoutCancelCtx).prototype.Deadline = function Deadline$1() { + var deadline, ok; + deadline = new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil); + ok = false; + return [deadline, ok]; + }; + withoutCancelCtx.prototype.Deadline = function(...$args) { return this.$val.Deadline(...$args); }; + $ptrType(withoutCancelCtx).prototype.Done = function Done$2() { + return $chanNil; + }; + withoutCancelCtx.prototype.Done = function(...$args) { return this.$val.Done(...$args); }; + $ptrType(withoutCancelCtx).prototype.Err = function Err$2() { + return $ifaceNil; + }; + withoutCancelCtx.prototype.Err = function(...$args) { return this.$val.Err(...$args); }; + $ptrType(withoutCancelCtx).prototype.Value = function Value$2(key) { + var {$24r, _r, c, key, $s, $r, $c} = $restore(this, {key}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + c = this; + _r = value(new c.constructor.elem(c), key); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Value$2, $c: true, $r, $24r, _r, c, key, $s};return $f; }; + withoutCancelCtx.prototype.Value = function(...$args) { return this.$val.Value(...$args); }; + $ptrType(withoutCancelCtx).prototype.String = function String$3() { + var {$24r, _r, c, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + c = this; + _r = contextName(c.c); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r + ".WithoutCancel"; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String$3, $c: true, $r, $24r, _r, c, $s};return $f; + }; + withoutCancelCtx.prototype.String = function(...$args) { return this.$val.String(...$args); }; WithDeadline = function WithDeadline$1(parent, d) { - var {$24r, $24r$1, _r, _r$1, _r$2, _r$3, _tuple, c, cur, d, dur, ok, parent, $s, $deferred, $r, $c} = $restore(this, {parent, d}); + var {$24r, _r, d, parent, $s, $r, $c} = $restore(this, {parent, d}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = WithDeadlineCause(parent, $clone(d, time.Time), $ifaceNil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: WithDeadline$1, $c: true, $r, $24r, _r, d, parent, $s};return $f; + }; + $pkg.WithDeadline = WithDeadline; + WithDeadlineCause = function WithDeadlineCause$1(parent, d, cause) { + var {$24r, $24r$1, _r, _r$1, _r$2, _r$3, _tuple, c, cause, cur, d, dur, ok, parent, $s, $deferred, $r, $c} = $restore(this, {parent, d, cause}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); c = [c]; + cause = [cause]; if ($interfaceIsEqual(parent, $ifaceNil)) { $panic(new $String("cannot create context from nil parent")); } @@ -113197,50 +114395,50 @@ $packages["context"] = (function() { $24r = _r$1; $s = 5; case 5: return $24r; /* } */ case 3: - c[0] = new timerCtx.ptr(newCancelCtx(parent), ptrType$4.nil, $clone(d, time.Time)); - $r = propagateCancel(parent, c[0]); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + c[0] = new timerCtx.ptr(new cancelCtx.ptr($ifaceNil, new sync.Mutex.ptr(0, 0), new atomic.Value.ptr($ifaceNil), false, $ifaceNil, $ifaceNil), ptrType$3.nil, $clone(d, time.Time)); + $r = c[0].cancelCtx.propagateCancel(parent, c[0]); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _r$2 = time.Until($clone(d, time.Time)); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } dur = _r$2; /* */ if ((dur.$high < 0 || (dur.$high === 0 && dur.$low <= 0))) { $s = 8; continue; } /* */ $s = 9; continue; /* if ((dur.$high < 0 || (dur.$high === 0 && dur.$low <= 0))) { */ case 8: - $r = c[0].cancel(true, $pkg.DeadlineExceeded, $ifaceNil); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return [c[0], (function(c) { return function WithDeadline·func1() { + $r = c[0].cancel(true, $pkg.DeadlineExceeded, cause[0]); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return [c[0], (function(c, cause) { return function WithDeadlineCause·func1() { var {$s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: $r = c[0].cancel(false, $pkg.Canceled, $ifaceNil); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } var $f = {$blk: WithDeadline·func1, $c: true, $r, $s};return $f; - }; })(c)]; + /* */ } return; } var $f = {$blk: WithDeadlineCause·func1, $c: true, $r, $s};return $f; + }; })(c, cause)]; /* } */ case 9: $r = c[0].cancelCtx.mu.Lock(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $deferred.push([$methodVal(c[0].cancelCtx.mu, "Unlock"), []]); /* */ if ($interfaceIsEqual(c[0].cancelCtx.err, $ifaceNil)) { $s = 12; continue; } /* */ $s = 13; continue; /* if ($interfaceIsEqual(c[0].cancelCtx.err, $ifaceNil)) { */ case 12: - _r$3 = time.AfterFunc(dur, (function(c) { return function WithDeadline·func2() { + _r$3 = time.AfterFunc(dur, (function(c, cause) { return function WithDeadlineCause·func2() { var {$s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = c[0].cancel(true, $pkg.DeadlineExceeded, $ifaceNil); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = c[0].cancel(true, $pkg.DeadlineExceeded, cause[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } var $f = {$blk: WithDeadline·func2, $c: true, $r, $s};return $f; - }; })(c)); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ } return; } var $f = {$blk: WithDeadlineCause·func2, $c: true, $r, $s};return $f; + }; })(c, cause)); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } c[0].timer = _r$3; /* } */ case 13: - $24r$1 = [c[0], (function(c) { return function WithDeadline·func3() { + $24r$1 = [c[0], (function(c, cause) { return function WithDeadlineCause·func3() { var {$s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: $r = c[0].cancel(true, $pkg.Canceled, $ifaceNil); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } var $f = {$blk: WithDeadline·func3, $c: true, $r, $s};return $f; - }; })(c)]; + /* */ } return; } var $f = {$blk: WithDeadlineCause·func3, $c: true, $r, $s};return $f; + }; })(c, cause)]; $s = 15; case 15: return $24r$1; - /* */ } return; } } catch(err) { $err = err; $s = -1; return [$ifaceNil, $throwNilPointerError]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: WithDeadline$1, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _r$3, _tuple, c, cur, d, dur, ok, parent, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; return [$ifaceNil, $throwNilPointerError]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: WithDeadlineCause$1, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _r$3, _tuple, c, cause, cur, d, dur, ok, parent, $s, $deferred};return $f; } } }; - $pkg.WithDeadline = WithDeadline; - $ptrType(timerCtx).prototype.Deadline = function Deadline$1() { + $pkg.WithDeadlineCause = WithDeadlineCause; + $ptrType(timerCtx).prototype.Deadline = function Deadline$2() { var _tmp, _tmp$1, c, deadline, ok; - deadline = new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$1.nil); + deadline = new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil); ok = false; c = this; _tmp = $clone(c.deadline, time.Time); @@ -113249,7 +114447,7 @@ $packages["context"] = (function() { ok = _tmp$1; return [deadline, ok]; }; - $ptrType(timerCtx).prototype.String = function String$2() { + $ptrType(timerCtx).prototype.String = function String$4() { var {$24r, _r, _r$1, _r$2, _r$3, c, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: c = this; @@ -113259,9 +114457,9 @@ $packages["context"] = (function() { _r$3 = _r$2.String(); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } $24r = _r + ".WithDeadline(" + _r$1 + " [" + _r$3 + "])"; $s = 5; case 5: return $24r; - /* */ } return; } var $f = {$blk: String$2, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, c, $s};return $f; + /* */ } return; } var $f = {$blk: String$4, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, c, $s};return $f; }; - $ptrType(timerCtx).prototype.cancel = function cancel$1(removeFromParent, err, cause) { + $ptrType(timerCtx).prototype.cancel = function cancel$2(removeFromParent, err, cause) { var {c, cause, err, removeFromParent, $s, $r, $c} = $restore(this, {removeFromParent, err, cause}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: c = this; @@ -113272,13 +114470,13 @@ $packages["context"] = (function() { $r = removeChild(c.cancelCtx.Context, c); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 3: $r = c.cancelCtx.mu.Lock(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (!(c.timer === ptrType$4.nil)) { + if (!(c.timer === ptrType$3.nil)) { c.timer.Stop(); - c.timer = ptrType$4.nil; + c.timer = ptrType$3.nil; } $r = c.cancelCtx.mu.Unlock(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } var $f = {$blk: cancel$1, $c: true, $r, c, cause, err, removeFromParent, $s};return $f; + /* */ } return; } var $f = {$blk: cancel$2, $c: true, $r, c, cause, err, removeFromParent, $s};return $f; }; WithTimeout = function WithTimeout$1(parent, timeout) { var {$24r, _arg, _arg$1, _r, _r$1, _r$2, parent, timeout, $s, $r, $c} = $restore(this, {parent, timeout}); @@ -113331,7 +114529,7 @@ $packages["context"] = (function() { $s = -1; return ""; /* */ } return; } var $f = {$blk: stringify$1, $c: true, $r, $24r, _r, _ref, s, s$1, v, $s};return $f; }; - $ptrType(valueCtx).prototype.String = function String$3() { + $ptrType(valueCtx).prototype.String = function String$5() { var {$24r, _r, _r$1, _r$2, c, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: c = this; @@ -113340,9 +114538,9 @@ $packages["context"] = (function() { _r$2 = stringify(c.val); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $24r = _r + ".WithValue(type " + _r$1 + ", val " + _r$2 + ")"; $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: String$3, $c: true, $r, $24r, _r, _r$1, _r$2, c, $s};return $f; + /* */ } return; } var $f = {$blk: String$5, $c: true, $r, $24r, _r, _r$1, _r$2, c, $s};return $f; }; - $ptrType(valueCtx).prototype.Value = function Value$2(key) { + $ptrType(valueCtx).prototype.Value = function Value$3(key) { var {$24r, _r, c, key, $s, $r, $c} = $restore(this, {key}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: c = this; @@ -113352,65 +114550,82 @@ $packages["context"] = (function() { _r = value(c.Context, key); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $24r = _r; $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Value$2, $c: true, $r, $24r, _r, c, key, $s};return $f; + /* */ } return; } var $f = {$blk: Value$3, $c: true, $r, $24r, _r, c, key, $s};return $f; }; value = function value$1(c, key) { - var {$24r, _r, _ref, c, ctx, ctx$1, ctx$2, ctx$3, ctx$4, key, $s, $r, $c} = $restore(this, {c, key}); + var {$24r, _r, _ref, c, ctx, ctx$1, ctx$2, ctx$3, ctx$4, ctx$5, key, $s, $r, $c} = $restore(this, {c, key}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: /* while (true) { */ case 1: _ref = c; - /* */ if ($assertType(_ref, ptrType$5, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$2, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$6, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType, true)[1]) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if ($assertType(_ref, ptrType$5, true)[1]) { */ case 3: + /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$1, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, withoutCancelCtx, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$5, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, backgroundCtx, true)[1] || $assertType(_ref, todoCtx, true)[1]) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if ($assertType(_ref, ptrType$4, true)[1]) { */ case 3: ctx = _ref.$val; if ($interfaceIsEqual(key, ctx.key)) { $s = -1; return ctx.val; } c = ctx.Context; - $s = 8; continue; - /* } else if ($assertType(_ref, ptrType$2, true)[1]) { */ case 4: + $s = 9; continue; + /* } else if ($assertType(_ref, ptrType$1, true)[1]) { */ case 4: ctx$1 = _ref.$val; - if ($interfaceIsEqual(key, (cancelCtxKey$24ptr || (cancelCtxKey$24ptr = new ptrType$3(function() { return cancelCtxKey; }, function($v) { cancelCtxKey = $v; }))))) { + if ($interfaceIsEqual(key, (cancelCtxKey$24ptr || (cancelCtxKey$24ptr = new ptrType$2(function() { return cancelCtxKey; }, function($v) { cancelCtxKey = $v; }))))) { $s = -1; return c; } c = ctx$1.Context; - $s = 8; continue; - /* } else if ($assertType(_ref, ptrType$6, true)[1]) { */ case 5: - ctx$2 = _ref.$val; - if ($interfaceIsEqual(key, (cancelCtxKey$24ptr || (cancelCtxKey$24ptr = new ptrType$3(function() { return cancelCtxKey; }, function($v) { cancelCtxKey = $v; }))))) { - $s = -1; return ctx$2.cancelCtx; + $s = 9; continue; + /* } else if ($assertType(_ref, withoutCancelCtx, true)[1]) { */ case 5: + ctx$2 = $clone(_ref.$val, withoutCancelCtx); + if ($interfaceIsEqual(key, (cancelCtxKey$24ptr || (cancelCtxKey$24ptr = new ptrType$2(function() { return cancelCtxKey; }, function($v) { cancelCtxKey = $v; }))))) { + $s = -1; return $ifaceNil; } - c = ctx$2.cancelCtx.Context; - $s = 8; continue; - /* } else if ($assertType(_ref, ptrType, true)[1]) { */ case 6: + c = ctx$2.c; + $s = 9; continue; + /* } else if ($assertType(_ref, ptrType$5, true)[1]) { */ case 6: ctx$3 = _ref.$val; - $s = -1; return $ifaceNil; - /* } else { */ case 7: + if ($interfaceIsEqual(key, (cancelCtxKey$24ptr || (cancelCtxKey$24ptr = new ptrType$2(function() { return cancelCtxKey; }, function($v) { cancelCtxKey = $v; }))))) { + $s = -1; return ctx$3.cancelCtx; + } + c = ctx$3.cancelCtx.Context; + $s = 9; continue; + /* } else if ($assertType(_ref, backgroundCtx, true)[1] || $assertType(_ref, todoCtx, true)[1]) { */ case 7: ctx$4 = _ref; - _r = c.Value(key); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return $ifaceNil; + /* } else { */ case 8: + ctx$5 = _ref; + _r = c.Value(key); /* */ $s = 10; case 10: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $24r = _r; - $s = 10; case 10: return $24r; - /* } */ case 8: + $s = 11; case 11: return $24r; + /* } */ case 9: $s = 1; continue; case 2: $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: value$1, $c: true, $r, $24r, _r, _ref, c, ctx, ctx$1, ctx$2, ctx$3, ctx$4, key, $s};return $f; + /* */ } return; } var $f = {$blk: value$1, $c: true, $r, $24r, _r, _ref, c, ctx, ctx$1, ctx$2, ctx$3, ctx$4, ctx$5, key, $s};return $f; }; deadlineExceededError.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false)}]; - ptrType.methods = [{prop: "Deadline", name: "Deadline", pkg: "", typ: $funcType([], [time.Time, $Bool], false)}, {prop: "Done", name: "Done", pkg: "", typ: $funcType([], [chanType$1], false)}, {prop: "Err", name: "Err", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Value", name: "Value", pkg: "", typ: $funcType([$emptyInterface], [$emptyInterface], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$2.methods = [{prop: "Value", name: "Value", pkg: "", typ: $funcType([$emptyInterface], [$emptyInterface], false)}, {prop: "Done", name: "Done", pkg: "", typ: $funcType([], [chanType$1], false)}, {prop: "Err", name: "Err", pkg: "", typ: $funcType([], [$error], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "cancel", name: "cancel", pkg: "context", typ: $funcType([$Bool, $error, $error], [], false)}]; - ptrType$6.methods = [{prop: "Deadline", name: "Deadline", pkg: "", typ: $funcType([], [time.Time, $Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "cancel", name: "cancel", pkg: "context", typ: $funcType([$Bool, $error, $error], [], false)}]; - ptrType$5.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Value", name: "Value", pkg: "", typ: $funcType([$emptyInterface], [$emptyInterface], false)}]; + emptyCtx.methods = [{prop: "Deadline", name: "Deadline", pkg: "", typ: $funcType([], [time.Time, $Bool], false)}, {prop: "Done", name: "Done", pkg: "", typ: $funcType([], [chanType$1], false)}, {prop: "Err", name: "Err", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Value", name: "Value", pkg: "", typ: $funcType([$emptyInterface], [$emptyInterface], false)}]; + backgroundCtx.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + todoCtx.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$1.methods = [{prop: "Value", name: "Value", pkg: "", typ: $funcType([$emptyInterface], [$emptyInterface], false)}, {prop: "Done", name: "Done", pkg: "", typ: $funcType([], [chanType$1], false)}, {prop: "Err", name: "Err", pkg: "", typ: $funcType([], [$error], false)}, {prop: "propagateCancel", name: "propagateCancel", pkg: "context", typ: $funcType([Context, canceler], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "cancel", name: "cancel", pkg: "context", typ: $funcType([$Bool, $error, $error], [], false)}]; + withoutCancelCtx.methods = [{prop: "Deadline", name: "Deadline", pkg: "", typ: $funcType([], [time.Time, $Bool], false)}, {prop: "Done", name: "Done", pkg: "", typ: $funcType([], [chanType$1], false)}, {prop: "Err", name: "Err", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Value", name: "Value", pkg: "", typ: $funcType([$emptyInterface], [$emptyInterface], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$5.methods = [{prop: "Deadline", name: "Deadline", pkg: "", typ: $funcType([], [time.Time, $Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "cancel", name: "cancel", pkg: "context", typ: $funcType([$Bool, $error, $error], [], false)}]; + ptrType$4.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Value", name: "Value", pkg: "", typ: $funcType([$emptyInterface], [$emptyInterface], false)}]; Context.init([{prop: "Deadline", name: "Deadline", pkg: "", typ: $funcType([], [time.Time, $Bool], false)}, {prop: "Done", name: "Done", pkg: "", typ: $funcType([], [chanType$1], false)}, {prop: "Err", name: "Err", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Value", name: "Value", pkg: "", typ: $funcType([$emptyInterface], [$emptyInterface], false)}]); deadlineExceededError.init("", []); + emptyCtx.init("", []); + backgroundCtx.init("context", [{prop: "emptyCtx", name: "emptyCtx", embedded: true, exported: false, typ: emptyCtx, tag: ""}]); + todoCtx.init("context", [{prop: "emptyCtx", name: "emptyCtx", embedded: true, exported: false, typ: emptyCtx, tag: ""}]); CancelFunc.init([], [], false); + afterFuncer.init([{prop: "AfterFunc", name: "AfterFunc", pkg: "", typ: $funcType([funcType], [funcType$1], false)}]); + stopCtx.init("context", [{prop: "Context", name: "Context", embedded: true, exported: true, typ: Context, tag: ""}, {prop: "stop", name: "stop", embedded: false, exported: false, typ: funcType$1, tag: ""}]); canceler.init([{prop: "Done", name: "Done", pkg: "", typ: $funcType([], [chanType$1], false)}, {prop: "cancel", name: "cancel", pkg: "context", typ: $funcType([$Bool, $error, $error], [], false)}]); cancelCtx.init("context", [{prop: "Context", name: "Context", embedded: true, exported: true, typ: Context, tag: ""}, {prop: "mu", name: "mu", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "done", name: "done", embedded: false, exported: false, typ: atomic.Value, tag: ""}, {prop: "children", name: "children", embedded: false, exported: false, typ: mapType, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "cause", name: "cause", embedded: false, exported: false, typ: $error, tag: ""}]); stringer.init([{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]); - timerCtx.init("context", [{prop: "cancelCtx", name: "cancelCtx", embedded: true, exported: false, typ: ptrType$2, tag: ""}, {prop: "timer", name: "timer", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "deadline", name: "deadline", embedded: false, exported: false, typ: time.Time, tag: ""}]); + withoutCancelCtx.init("context", [{prop: "c", name: "c", embedded: false, exported: false, typ: Context, tag: ""}]); + timerCtx.init("context", [{prop: "cancelCtx", name: "cancelCtx", embedded: true, exported: false, typ: cancelCtx, tag: ""}, {prop: "timer", name: "timer", embedded: false, exported: false, typ: ptrType$3, tag: ""}, {prop: "deadline", name: "deadline", embedded: false, exported: false, typ: time.Time, tag: ""}]); valueCtx.init("context", [{prop: "Context", name: "Context", embedded: true, exported: true, typ: Context, tag: ""}, {prop: "key", name: "key", embedded: false, exported: false, typ: $emptyInterface, tag: ""}, {prop: "val", name: "val", embedded: false, exported: false, typ: $emptyInterface, tag: ""}]); }; $init = function() { @@ -113425,8 +114640,6 @@ $packages["context"] = (function() { cancelCtxKey = 0; $pkg.Canceled = errors.New("context canceled"); $pkg.DeadlineExceeded = (x = new deadlineExceededError.ptr(), new x.constructor.elem(x)); - background = $newDataPointer(0, ptrType); - todo = $newDataPointer(0, ptrType); closedchan = new $Chan(structType, 0); init(); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; @@ -113740,7 +114953,7 @@ $packages["os/exec"] = (function() { return new sliceType([c.Path]); }; $ptrType(Cmd).prototype.childStdin = function childStdin() { - var {_r, _r$1, _tuple, _tuple$1, _tuple$2, c, err, err$1, f, f$1, ok, pr, pw, $s, $r, $c} = $restore(this, {}); + var {_r, _tuple, _tuple$1, _tuple$2, c, err, err$1, f, f$1, ok, pr, pw, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: c = [c]; pw = [pw]; @@ -113764,8 +114977,7 @@ $packages["os/exec"] = (function() { if (ok) { $s = -1; return [f$1, $ifaceNil]; } - _r$1 = os.Pipe(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$2 = _r$1; + _tuple$2 = os.Pipe(); pr = _tuple$2[0]; pw[0] = _tuple$2[1]; err$1 = _tuple$2[2]; @@ -113775,24 +114987,24 @@ $packages["os/exec"] = (function() { c[0].childIOFiles = $append(c[0].childIOFiles, pr); c[0].parentIOPipes = $append(c[0].parentIOPipes, pw[0]); c[0].goroutine = $append(c[0].goroutine, (function(c, pw) { return function Cmd·childStdin·func1() { - var {_r$2, _r$3, _tuple$3, err$2, err1, $s, $r, $c} = $restore(this, {}); + var {_r$1, _r$2, _tuple$3, err$2, err1, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$2 = io.Copy(pw[0], c[0].Stdin); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple$3 = _r$2; + _r$1 = io.Copy(pw[0], c[0].Stdin); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$3 = _r$1; err$2 = _tuple$3[1]; if (skipStdinCopyError(err$2)) { err$2 = $ifaceNil; } - _r$3 = pw[0].Close(); /* */ $s = 2; case 2: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - err1 = _r$3; + _r$2 = pw[0].Close(); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + err1 = _r$2; if ($interfaceIsEqual(err$2, $ifaceNil)) { err$2 = err1; } $s = -1; return err$2; - /* */ } return; } var $f = {$blk: Cmd·childStdin·func1, $c: true, $r, _r$2, _r$3, _tuple$3, err$2, err1, $s};return $f; + /* */ } return; } var $f = {$blk: Cmd·childStdin·func1, $c: true, $r, _r$1, _r$2, _tuple$3, err$2, err1, $s};return $f; }; })(c, pw)); $s = -1; return [pr, $ifaceNil]; - /* */ } return; } var $f = {$blk: childStdin, $c: true, $r, _r, _r$1, _tuple, _tuple$1, _tuple$2, c, err, err$1, f, f$1, ok, pr, pw, $s};return $f; + /* */ } return; } var $f = {$blk: childStdin, $c: true, $r, _r, _tuple, _tuple$1, _tuple$2, c, err, err$1, f, f$1, ok, pr, pw, $s};return $f; }; $ptrType(Cmd).prototype.childStdout = function childStdout() { var {$24r, _r, c, $s, $r, $c} = $restore(this, {}); @@ -113816,7 +115028,7 @@ $packages["os/exec"] = (function() { /* */ } return; } var $f = {$blk: childStderr, $c: true, $r, $24r, _r, c, childStdout$1, $s};return $f; }; $ptrType(Cmd).prototype.writerDescriptor = function writerDescriptor(w) { - var {_r, _r$1, _tuple, _tuple$1, _tuple$2, c, err, err$1, f, f$1, ok, pr, pw, w, $s, $r, $c} = $restore(this, {w}); + var {_r, _tuple, _tuple$1, _tuple$2, c, err, err$1, f, f$1, ok, pr, pw, w, $s, $r, $c} = $restore(this, {w}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: pr = [pr]; w = [w]; @@ -113840,8 +115052,7 @@ $packages["os/exec"] = (function() { if (ok) { $s = -1; return [f$1, $ifaceNil]; } - _r$1 = os.Pipe(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$2 = _r$1; + _tuple$2 = os.Pipe(); pr[0] = _tuple$2[0]; pw = _tuple$2[1]; err$1 = _tuple$2[2]; @@ -113851,18 +115062,18 @@ $packages["os/exec"] = (function() { c.childIOFiles = $append(c.childIOFiles, pw); c.parentIOPipes = $append(c.parentIOPipes, pr[0]); c.goroutine = $append(c.goroutine, (function(pr, w) { return function Cmd·writerDescriptor·func1() { - var {_r$2, _r$3, _tuple$3, err$2, $s, $r, $c} = $restore(this, {}); + var {_r$1, _r$2, _tuple$3, err$2, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$2 = io.Copy(w[0], pr[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple$3 = _r$2; + _r$1 = io.Copy(w[0], pr[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$3 = _r$1; err$2 = _tuple$3[1]; - _r$3 = pr[0].Close(); /* */ $s = 2; case 2: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$3; + _r$2 = pr[0].Close(); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; $s = -1; return err$2; - /* */ } return; } var $f = {$blk: Cmd·writerDescriptor·func1, $c: true, $r, _r$2, _r$3, _tuple$3, err$2, $s};return $f; + /* */ } return; } var $f = {$blk: Cmd·writerDescriptor·func1, $c: true, $r, _r$1, _r$2, _tuple$3, err$2, $s};return $f; }; })(pr, w)); $s = -1; return [pw, $ifaceNil]; - /* */ } return; } var $f = {$blk: writerDescriptor, $c: true, $r, _r, _r$1, _tuple, _tuple$1, _tuple$2, c, err, err$1, f, f$1, ok, pr, pw, w, $s};return $f; + /* */ } return; } var $f = {$blk: writerDescriptor, $c: true, $r, _r, _tuple, _tuple$1, _tuple$2, c, err, err$1, f, f$1, ok, pr, pw, w, $s};return $f; }; closeDescriptors = function closeDescriptors$1(closers) { var {_i, _r, _ref, closers, fd, $s, $r, $c} = $restore(this, {closers}); @@ -114332,76 +115543,67 @@ $packages["os/exec"] = (function() { /* */ } return; } var $f = {$blk: CombinedOutput, $c: true, $r, _r, b, c, err, $s};return $f; }; $ptrType(Cmd).prototype.StdinPipe = function StdinPipe() { - var {_r, _tuple, c, err, pr, pw, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var _tuple, c, err, pr, pw; c = this; if (!($interfaceIsEqual(c.Stdin, $ifaceNil))) { - $s = -1; return [$ifaceNil, errors.New("exec: Stdin already set")]; + return [$ifaceNil, errors.New("exec: Stdin already set")]; } if (!(c.Process === ptrType$3.nil)) { - $s = -1; return [$ifaceNil, errors.New("exec: StdinPipe after process started")]; + return [$ifaceNil, errors.New("exec: StdinPipe after process started")]; } - _r = os.Pipe(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; + _tuple = os.Pipe(); pr = _tuple[0]; pw = _tuple[1]; err = _tuple[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [$ifaceNil, err]; + return [$ifaceNil, err]; } c.Stdin = pr; c.childIOFiles = $append(c.childIOFiles, pr); c.parentIOPipes = $append(c.parentIOPipes, pw); - $s = -1; return [pw, $ifaceNil]; - /* */ } return; } var $f = {$blk: StdinPipe, $c: true, $r, _r, _tuple, c, err, pr, pw, $s};return $f; + return [pw, $ifaceNil]; }; $ptrType(Cmd).prototype.StdoutPipe = function StdoutPipe() { - var {_r, _tuple, c, err, pr, pw, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var _tuple, c, err, pr, pw; c = this; if (!($interfaceIsEqual(c.Stdout, $ifaceNil))) { - $s = -1; return [$ifaceNil, errors.New("exec: Stdout already set")]; + return [$ifaceNil, errors.New("exec: Stdout already set")]; } if (!(c.Process === ptrType$3.nil)) { - $s = -1; return [$ifaceNil, errors.New("exec: StdoutPipe after process started")]; + return [$ifaceNil, errors.New("exec: StdoutPipe after process started")]; } - _r = os.Pipe(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; + _tuple = os.Pipe(); pr = _tuple[0]; pw = _tuple[1]; err = _tuple[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [$ifaceNil, err]; + return [$ifaceNil, err]; } c.Stdout = pw; c.childIOFiles = $append(c.childIOFiles, pw); c.parentIOPipes = $append(c.parentIOPipes, pr); - $s = -1; return [pr, $ifaceNil]; - /* */ } return; } var $f = {$blk: StdoutPipe, $c: true, $r, _r, _tuple, c, err, pr, pw, $s};return $f; + return [pr, $ifaceNil]; }; $ptrType(Cmd).prototype.StderrPipe = function StderrPipe() { - var {_r, _tuple, c, err, pr, pw, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var _tuple, c, err, pr, pw; c = this; if (!($interfaceIsEqual(c.Stderr, $ifaceNil))) { - $s = -1; return [$ifaceNil, errors.New("exec: Stderr already set")]; + return [$ifaceNil, errors.New("exec: Stderr already set")]; } if (!(c.Process === ptrType$3.nil)) { - $s = -1; return [$ifaceNil, errors.New("exec: StderrPipe after process started")]; + return [$ifaceNil, errors.New("exec: StderrPipe after process started")]; } - _r = os.Pipe(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; + _tuple = os.Pipe(); pr = _tuple[0]; pw = _tuple[1]; err = _tuple[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [$ifaceNil, err]; + return [$ifaceNil, err]; } c.Stderr = pw; c.childIOFiles = $append(c.childIOFiles, pw); c.parentIOPipes = $append(c.parentIOPipes, pr); - $s = -1; return [pr, $ifaceNil]; - /* */ } return; } var $f = {$blk: StderrPipe, $c: true, $r, _r, _tuple, c, err, pr, pw, $s};return $f; + return [pr, $ifaceNil]; }; $ptrType(prefixSuffixSaver).prototype.Write = function Write(p) { var _tmp, _tmp$1, err, lenp, n, n$1, overage, p, w, x, x$1, x$2, x$3; @@ -114409,13 +115611,13 @@ $packages["os/exec"] = (function() { err = $ifaceNil; w = this; lenp = p.$length; - p = w.fill((w.$ptr_prefix || (w.$ptr_prefix = new ptrType$10(function() { return this.$target.prefix; }, function($v) { this.$target.prefix = $v; }, w))), p); + p = w.fill((w === ptrType$9.nil && $throwNilPointerError(), (w.$ptr_prefix || (w.$ptr_prefix = new ptrType$10(function() { return this.$target.prefix; }, function($v) { this.$target.prefix = $v; }, w)))), p); overage = p.$length - w.N >> 0; if (overage > 0) { p = $subslice(p, overage); w.skipped = (x = w.skipped, x$1 = (new $Int64(0, overage)), new $Int64(x.$high + x$1.$high, x.$low + x$1.$low)); } - p = w.fill((w.$ptr_suffix || (w.$ptr_suffix = new ptrType$10(function() { return this.$target.suffix; }, function($v) { this.$target.suffix = $v; }, w))), p); + p = w.fill((w === ptrType$9.nil && $throwNilPointerError(), (w.$ptr_suffix || (w.$ptr_suffix = new ptrType$10(function() { return this.$target.suffix; }, function($v) { this.$target.suffix = $v; }, w)))), p); while (true) { if (!(p.$length > 0)) { break; } n$1 = $copySlice($subslice(w.suffix, w.suffixOff), p); @@ -114657,7 +115859,7 @@ $packages["os/exec"] = (function() { $r = time.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $pkg.ErrNotFound = errors.New("executable file not found in $PATH"); $pkg.ErrWaitDelay = errors.New("exec: WaitDelay expired before I/O complete"); - execwait = godebug.New("execwait"); + execwait = godebug.New("#execwait"); execerrdot = godebug.New("execerrdot"); $pkg.ErrDot = errors.New("cannot run executable found relative to current directory"); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; @@ -114666,9 +115868,7 @@ $packages["os/exec"] = (function() { return $pkg; })(); $packages["internal/goroot"] = (function() { - var $pkg = {}, $init, bytes, fmt, os, exec, filepath, strings, sync, gccgoDirs, sliceType, ptrType, gccgoSearch, IsStandardPackage; - bytes = $packages["bytes"]; - fmt = $packages["fmt"]; + var $pkg = {}, $init, os, exec, filepath, strings, sync, gccgoDirs, sliceType, ptrType, gccgoSearch, IsStandardPackage; os = $packages["os"]; exec = $packages["os/exec"]; filepath = $packages["path/filepath"]; @@ -114689,7 +115889,7 @@ $packages["internal/goroot"] = (function() { sliceType = $sliceType($String); ptrType = $ptrType(gccgoDirs); IsStandardPackage = function IsStandardPackage$1(goroot, compiler, path) { - var {$24r, _1, _r, _r$1, _tuple, compiler, dir, err, goroot, path, $s, $r, $c} = $restore(this, {goroot, compiler, path}); + var {$24r, $24r$1, _1, _r, _r$1, _r$2, _tuple, _v, compiler, dir, err, goroot, info, path, $s, $r, $c} = $restore(this, {goroot, compiler, path}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: _1 = compiler; /* */ if (_1 === ("gc")) { $s = 2; continue; } @@ -114699,18 +115899,23 @@ $packages["internal/goroot"] = (function() { dir = filepath.Join(new sliceType([goroot, "src", path])); _r = os.Stat(dir); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; + info = _tuple[0]; err = _tuple[1]; - $s = -1; return $interfaceIsEqual(err, $ifaceNil); + if (!($interfaceIsEqual(err, $ifaceNil))) { _v = false; $s = 7; continue s; } + _r$1 = info.IsDir(); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = _r$1; case 7: + $24r = _v; + $s = 9; case 9: return $24r; /* } else if (_1 === ("gccgo")) { */ case 3: - _r$1 = gccgoSearch.isStandard(path); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 8; case 8: return $24r; + _r$2 = gccgoSearch.isStandard(path); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r$1 = _r$2; + $s = 11; case 11: return $24r$1; /* } else { */ case 4: $panic(new $String("unknown compiler " + compiler)); /* } */ case 5: case 1: $s = -1; return false; - /* */ } return; } var $f = {$blk: IsStandardPackage$1, $c: true, $r, $24r, _1, _r, _r$1, _tuple, compiler, dir, err, goroot, path, $s};return $f; + /* */ } return; } var $f = {$blk: IsStandardPackage$1, $c: true, $r, $24r, $24r$1, _1, _r, _r$1, _r$2, _tuple, _v, compiler, dir, err, goroot, info, path, $s};return $f; }; $pkg.IsStandardPackage = IsStandardPackage; $ptrType(gccgoDirs).prototype.init = function init() { @@ -114871,33 +116076,70 @@ $packages["internal/goroot"] = (function() { $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: - $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = fmt.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = os.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = exec.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = filepath.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = strings.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = sync.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = os.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = exec.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = filepath.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } gccgoSearch = new gccgoDirs.ptr(new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0)), sliceType.nil); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); -$packages["internal/goversion"] = (function() { - var $pkg = {}, $init; +$packages["internal/platform"] = (function() { + var $pkg = {}, $init, OSArch, osArchInfo, distInfo, CgoSupported; + OSArch = $newType(0, $kindStruct, "platform.OSArch", true, "internal/platform", true, function(GOOS_, GOARCH_) { + this.$val = this; + if (arguments.length === 0) { + this.GOOS = ""; + this.GOARCH = ""; + return; + } + this.GOOS = GOOS_; + this.GOARCH = GOARCH_; + }); + osArchInfo = $newType(0, $kindStruct, "platform.osArchInfo", true, "internal/platform", false, function(CgoSupported_, FirstClass_, Broken_) { + this.$val = this; + if (arguments.length === 0) { + this.CgoSupported = false; + this.FirstClass = false; + this.Broken = false; + return; + } + this.CgoSupported = CgoSupported_; + this.FirstClass = FirstClass_; + this.Broken = Broken_; + }); + $pkg.OSArch = OSArch; + $pkg.osArchInfo = osArchInfo; $pkg.$finishSetup = function() { + $ptrType(OSArch).prototype.String = function String() { + var p; + p = this; + return p.GOOS + "/" + p.GOARCH; + }; + OSArch.prototype.String = function(...$args) { return this.$val.String(...$args); }; + CgoSupported = function CgoSupported$1(goos, goarch) { + var _entry, goarch, goos; + return (_entry = $mapIndex(distInfo,OSArch.keyFor(new OSArch.ptr(goos, goarch))), _entry !== undefined ? _entry.v : new osArchInfo.ptr(false, false, false)).CgoSupported; + }; + $pkg.CgoSupported = CgoSupported; + OSArch.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + OSArch.init("", [{prop: "GOOS", name: "GOOS", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "GOARCH", name: "GOARCH", embedded: false, exported: true, typ: $String, tag: ""}]); + osArchInfo.init("", [{prop: "CgoSupported", name: "CgoSupported", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "FirstClass", name: "FirstClass", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Broken", name: "Broken", embedded: false, exported: true, typ: $Bool, tag: ""}]); }; $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + distInfo = $makeMap(OSArch.keyFor, [{ k: $clone(new OSArch.ptr("aix", "ppc64"), OSArch), v: $clone(new osArchInfo.ptr(true, false, false), osArchInfo) }, { k: $clone(new OSArch.ptr("android", "386"), OSArch), v: $clone(new osArchInfo.ptr(true, false, false), osArchInfo) }, { k: $clone(new OSArch.ptr("android", "amd64"), OSArch), v: $clone(new osArchInfo.ptr(true, false, false), osArchInfo) }, { k: $clone(new OSArch.ptr("android", "arm"), OSArch), v: $clone(new osArchInfo.ptr(true, false, false), osArchInfo) }, { k: $clone(new OSArch.ptr("android", "arm64"), OSArch), v: $clone(new osArchInfo.ptr(true, false, false), osArchInfo) }, { k: $clone(new OSArch.ptr("darwin", "amd64"), OSArch), v: $clone(new osArchInfo.ptr(true, true, false), osArchInfo) }, { k: $clone(new OSArch.ptr("darwin", "arm64"), OSArch), v: $clone(new osArchInfo.ptr(true, true, false), osArchInfo) }, { k: $clone(new OSArch.ptr("dragonfly", "amd64"), OSArch), v: $clone(new osArchInfo.ptr(true, false, false), osArchInfo) }, { k: $clone(new OSArch.ptr("freebsd", "386"), OSArch), v: $clone(new osArchInfo.ptr(true, false, false), osArchInfo) }, { k: $clone(new OSArch.ptr("freebsd", "amd64"), OSArch), v: $clone(new osArchInfo.ptr(true, false, false), osArchInfo) }, { k: $clone(new OSArch.ptr("freebsd", "arm"), OSArch), v: $clone(new osArchInfo.ptr(true, false, false), osArchInfo) }, { k: $clone(new OSArch.ptr("freebsd", "arm64"), OSArch), v: $clone(new osArchInfo.ptr(true, false, false), osArchInfo) }, { k: $clone(new OSArch.ptr("freebsd", "riscv64"), OSArch), v: $clone(new osArchInfo.ptr(true, false, false), osArchInfo) }, { k: $clone(new OSArch.ptr("illumos", "amd64"), OSArch), v: $clone(new osArchInfo.ptr(true, false, false), osArchInfo) }, { k: $clone(new OSArch.ptr("ios", "amd64"), OSArch), v: $clone(new osArchInfo.ptr(true, false, false), osArchInfo) }, { k: $clone(new OSArch.ptr("ios", "arm64"), OSArch), v: $clone(new osArchInfo.ptr(true, false, false), osArchInfo) }, { k: $clone(new OSArch.ptr("js", "wasm"), OSArch), v: $clone(new osArchInfo.ptr(false, false, false), osArchInfo) }, { k: $clone(new OSArch.ptr("linux", "386"), OSArch), v: $clone(new osArchInfo.ptr(true, true, false), osArchInfo) }, { k: $clone(new OSArch.ptr("linux", "amd64"), OSArch), v: $clone(new osArchInfo.ptr(true, true, false), osArchInfo) }, { k: $clone(new OSArch.ptr("linux", "arm"), OSArch), v: $clone(new osArchInfo.ptr(true, true, false), osArchInfo) }, { k: $clone(new OSArch.ptr("linux", "arm64"), OSArch), v: $clone(new osArchInfo.ptr(true, true, false), osArchInfo) }, { k: $clone(new OSArch.ptr("linux", "loong64"), OSArch), v: $clone(new osArchInfo.ptr(true, false, false), osArchInfo) }, { k: $clone(new OSArch.ptr("linux", "mips"), OSArch), v: $clone(new osArchInfo.ptr(true, false, false), osArchInfo) }, { k: $clone(new OSArch.ptr("linux", "mips64"), OSArch), v: $clone(new osArchInfo.ptr(true, false, false), osArchInfo) }, { k: $clone(new OSArch.ptr("linux", "mips64le"), OSArch), v: $clone(new osArchInfo.ptr(true, false, false), osArchInfo) }, { k: $clone(new OSArch.ptr("linux", "mipsle"), OSArch), v: $clone(new osArchInfo.ptr(true, false, false), osArchInfo) }, { k: $clone(new OSArch.ptr("linux", "ppc64"), OSArch), v: $clone(new osArchInfo.ptr(false, false, false), osArchInfo) }, { k: $clone(new OSArch.ptr("linux", "ppc64le"), OSArch), v: $clone(new osArchInfo.ptr(true, false, false), osArchInfo) }, { k: $clone(new OSArch.ptr("linux", "riscv64"), OSArch), v: $clone(new osArchInfo.ptr(true, false, false), osArchInfo) }, { k: $clone(new OSArch.ptr("linux", "s390x"), OSArch), v: $clone(new osArchInfo.ptr(true, false, false), osArchInfo) }, { k: $clone(new OSArch.ptr("linux", "sparc64"), OSArch), v: $clone(new osArchInfo.ptr(true, false, true), osArchInfo) }, { k: $clone(new OSArch.ptr("netbsd", "386"), OSArch), v: $clone(new osArchInfo.ptr(true, false, false), osArchInfo) }, { k: $clone(new OSArch.ptr("netbsd", "amd64"), OSArch), v: $clone(new osArchInfo.ptr(true, false, false), osArchInfo) }, { k: $clone(new OSArch.ptr("netbsd", "arm"), OSArch), v: $clone(new osArchInfo.ptr(true, false, false), osArchInfo) }, { k: $clone(new OSArch.ptr("netbsd", "arm64"), OSArch), v: $clone(new osArchInfo.ptr(true, false, false), osArchInfo) }, { k: $clone(new OSArch.ptr("openbsd", "386"), OSArch), v: $clone(new osArchInfo.ptr(true, false, false), osArchInfo) }, { k: $clone(new OSArch.ptr("openbsd", "amd64"), OSArch), v: $clone(new osArchInfo.ptr(true, false, false), osArchInfo) }, { k: $clone(new OSArch.ptr("openbsd", "arm"), OSArch), v: $clone(new osArchInfo.ptr(true, false, false), osArchInfo) }, { k: $clone(new OSArch.ptr("openbsd", "arm64"), OSArch), v: $clone(new osArchInfo.ptr(true, false, false), osArchInfo) }, { k: $clone(new OSArch.ptr("openbsd", "mips64"), OSArch), v: $clone(new osArchInfo.ptr(true, false, true), osArchInfo) }, { k: $clone(new OSArch.ptr("openbsd", "ppc64"), OSArch), v: $clone(new osArchInfo.ptr(false, false, true), osArchInfo) }, { k: $clone(new OSArch.ptr("plan9", "386"), OSArch), v: $clone(new osArchInfo.ptr(false, false, false), osArchInfo) }, { k: $clone(new OSArch.ptr("plan9", "amd64"), OSArch), v: $clone(new osArchInfo.ptr(false, false, false), osArchInfo) }, { k: $clone(new OSArch.ptr("plan9", "arm"), OSArch), v: $clone(new osArchInfo.ptr(false, false, false), osArchInfo) }, { k: $clone(new OSArch.ptr("solaris", "amd64"), OSArch), v: $clone(new osArchInfo.ptr(true, false, false), osArchInfo) }, { k: $clone(new OSArch.ptr("wasip1", "wasm"), OSArch), v: $clone(new osArchInfo.ptr(false, false, false), osArchInfo) }, { k: $clone(new OSArch.ptr("windows", "386"), OSArch), v: $clone(new osArchInfo.ptr(true, true, false), osArchInfo) }, { k: $clone(new OSArch.ptr("windows", "amd64"), OSArch), v: $clone(new osArchInfo.ptr(true, true, false), osArchInfo) }, { k: $clone(new OSArch.ptr("windows", "arm"), OSArch), v: $clone(new osArchInfo.ptr(false, false, false), osArchInfo) }, { k: $clone(new OSArch.ptr("windows", "arm64"), OSArch), v: $clone(new osArchInfo.ptr(true, false, false), osArchInfo) }]); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $packages["go/build"] = (function() { - var $pkg = {}, $init, bufio, bytes, errors, fmt, ast, constraint, doc, parser, scanner, token, buildcfg, godebug, goroot, goversion, io, fs, os, exec, path, filepath, runtime, sort, strconv, strings, unicode, utf8, importReader, Context, ImportMode, Package, NoGoError, MultiplePackageError, fileInfo, fileImport, fileEmbed, sliceType, sliceType$1, ptrType, ptrType$1, ptrType$2, ptrType$3, sliceType$2, sliceType$3, ptrType$4, sliceType$4, sliceType$5, structType, ptrType$5, ptrType$6, ptrType$7, ptrType$8, sliceType$6, ptrType$9, sliceType$7, ptrType$10, ptrType$11, mapType, ptrType$12, funcType, funcType$1, funcType$2, funcType$3, sliceType$8, funcType$4, funcType$5, mapType$1, ptrType$13, ptrType$14, defaultToolTags, defaultReleaseTags, dummyPkg, dummyPkg$24ptr, cgoEnabled, knownOS, unixOS, knownArch, bom, errSyntax, errNUL, goEmbed, _r, installgoroot, errNoModules, slashSlash, slashStar, starSlash, newline, plusBuild, goBuildComment, errMultipleGoBuild, binaryOnlyComment, newImportReader, isIdent, readComments, readGoInfo, isValidImport, parseGoEmbed, getToolDir, hasSubdir, defaultGOPATH, defaultContext, envOr, nameExt, fileListForExt, equal, hasGoFiles, findImportComment, skipSpaceOrComment, parseWord, cleanDecls, isGoBuildComment, parseFileHeader, expandSrcDir, safeCgoName, splitQuoted, IsLocalImport; + var $pkg = {}, $init, bufio, bytes, errors, fmt, ast, constraint, doc, parser, scanner, token, buildcfg, godebug, goroot, goversion, platform, io, fs, os, exec, path, filepath, runtime, sort, strconv, strings, unicode, utf8, importReader, Context, ImportMode, Package, Directive, NoGoError, MultiplePackageError, fileInfo, fileImport, fileEmbed, sliceType, sliceType$1, sliceType$2, ptrType, ptrType$1, ptrType$2, ptrType$3, sliceType$3, sliceType$4, ptrType$4, sliceType$5, sliceType$6, structType, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, sliceType$7, ptrType$11, sliceType$8, ptrType$12, mapType, ptrType$13, funcType, funcType$1, funcType$2, funcType$3, sliceType$9, funcType$4, funcType$5, mapType$1, ptrType$14, ptrType$15, defaultToolTags, defaultReleaseTags, dummyPkg, dummyPkg$24ptr, knownOS, unixOS, knownArch, bom, errSyntax, errNUL, goEmbed, _r, installgoroot, errNoModules, slashSlash, slashStar, starSlash, newline, plusBuild, goBuildComment, errMultipleGoBuild, binaryOnlyComment, newImportReader, isIdent, readComments, readGoInfo, isValidImport, parseGoEmbed, getToolDir, hasSubdir, defaultGOPATH, defaultContext, envOr, nameExt, fileListForExt, equal, hasGoFiles, findImportComment, skipSpaceOrComment, parseWord, cleanDecls, isGoBuildComment, parseFileHeader, expandSrcDir, safeCgoName, splitQuoted, IsLocalImport; bufio = $packages["bufio"]; bytes = $packages["bytes"]; errors = $packages["errors"]; @@ -114912,6 +116154,7 @@ $packages["go/build"] = (function() { godebug = $packages["internal/godebug"]; goroot = $packages["internal/goroot"]; goversion = $packages["internal/goversion"]; + platform = $packages["internal/platform"]; io = $packages["io"]; fs = $packages["io/fs"]; os = $packages["os"]; @@ -114928,7 +116171,7 @@ $packages["go/build"] = (function() { this.$val = this; if (arguments.length === 0) { this.b = ptrType.nil; - this.buf = sliceType$1.nil; + this.buf = sliceType$2.nil; this.peek = 0; this.err = $ifaceNil; this.eof = false; @@ -114989,7 +116232,7 @@ $packages["go/build"] = (function() { this.OpenFile = OpenFile_; }); ImportMode = $newType(4, $kindUint, "build.ImportMode", true, "go/build", true, null); - Package = $newType(0, $kindStruct, "build.Package", true, "go/build", true, function(Dir_, Name_, ImportComment_, Doc_, ImportPath_, Root_, SrcRoot_, PkgRoot_, PkgTargetRoot_, BinDir_, Goroot_, PkgObj_, AllTags_, ConflictDir_, BinaryOnly_, GoFiles_, CgoFiles_, IgnoredGoFiles_, InvalidGoFiles_, IgnoredOtherFiles_, CFiles_, CXXFiles_, MFiles_, HFiles_, FFiles_, SFiles_, SwigFiles_, SwigCXXFiles_, SysoFiles_, CgoCFLAGS_, CgoCPPFLAGS_, CgoCXXFLAGS_, CgoFFLAGS_, CgoLDFLAGS_, CgoPkgConfig_, TestGoFiles_, XTestGoFiles_, Imports_, ImportPos_, TestImports_, TestImportPos_, XTestImports_, XTestImportPos_, EmbedPatterns_, EmbedPatternPos_, TestEmbedPatterns_, TestEmbedPatternPos_, XTestEmbedPatterns_, XTestEmbedPatternPos_) { + Package = $newType(0, $kindStruct, "build.Package", true, "go/build", true, function(Dir_, Name_, ImportComment_, Doc_, ImportPath_, Root_, SrcRoot_, PkgRoot_, PkgTargetRoot_, BinDir_, Goroot_, PkgObj_, AllTags_, ConflictDir_, BinaryOnly_, GoFiles_, CgoFiles_, IgnoredGoFiles_, InvalidGoFiles_, IgnoredOtherFiles_, CFiles_, CXXFiles_, MFiles_, HFiles_, FFiles_, SFiles_, SwigFiles_, SwigCXXFiles_, SysoFiles_, CgoCFLAGS_, CgoCPPFLAGS_, CgoCXXFLAGS_, CgoFFLAGS_, CgoLDFLAGS_, CgoPkgConfig_, TestGoFiles_, XTestGoFiles_, Directives_, TestDirectives_, XTestDirectives_, Imports_, ImportPos_, TestImports_, TestImportPos_, XTestImports_, XTestImportPos_, EmbedPatterns_, EmbedPatternPos_, TestEmbedPatterns_, TestEmbedPatternPos_, XTestEmbedPatterns_, XTestEmbedPatternPos_) { this.$val = this; if (arguments.length === 0) { this.Dir = ""; @@ -115029,6 +116272,9 @@ $packages["go/build"] = (function() { this.CgoPkgConfig = sliceType.nil; this.TestGoFiles = sliceType.nil; this.XTestGoFiles = sliceType.nil; + this.Directives = sliceType$1.nil; + this.TestDirectives = sliceType$1.nil; + this.XTestDirectives = sliceType$1.nil; this.Imports = sliceType.nil; this.ImportPos = false; this.TestImports = sliceType.nil; @@ -115080,6 +116326,9 @@ $packages["go/build"] = (function() { this.CgoPkgConfig = CgoPkgConfig_; this.TestGoFiles = TestGoFiles_; this.XTestGoFiles = XTestGoFiles_; + this.Directives = Directives_; + this.TestDirectives = TestDirectives_; + this.XTestDirectives = XTestDirectives_; this.Imports = Imports_; this.ImportPos = ImportPos_; this.TestImports = TestImports_; @@ -115093,6 +116342,16 @@ $packages["go/build"] = (function() { this.XTestEmbedPatterns = XTestEmbedPatterns_; this.XTestEmbedPatternPos = XTestEmbedPatternPos_; }); + Directive = $newType(0, $kindStruct, "build.Directive", true, "go/build", true, function(Text_, Pos_) { + this.$val = this; + if (arguments.length === 0) { + this.Text = ""; + this.Pos = new token.Position.ptr("", 0, 0, 0); + return; + } + this.Text = Text_; + this.Pos = Pos_; + }); NoGoError = $newType(0, $kindStruct, "build.NoGoError", true, "go/build", true, function(Dir_) { this.$val = this; if (arguments.length === 0) { @@ -115113,16 +116372,17 @@ $packages["go/build"] = (function() { this.Packages = Packages_; this.Files = Files_; }); - fileInfo = $newType(0, $kindStruct, "build.fileInfo", true, "go/build", false, function(name_, header_, fset_, parsed_, parseErr_, imports_, embeds_) { + fileInfo = $newType(0, $kindStruct, "build.fileInfo", true, "go/build", false, function(name_, header_, fset_, parsed_, parseErr_, imports_, embeds_, directives_) { this.$val = this; if (arguments.length === 0) { this.name = ""; - this.header = sliceType$1.nil; + this.header = sliceType$2.nil; this.fset = ptrType$1.nil; - this.parsed = ptrType$8.nil; + this.parsed = ptrType$9.nil; this.parseErr = $ifaceNil; - this.imports = sliceType$3.nil; - this.embeds = sliceType$4.nil; + this.imports = sliceType$4.nil; + this.embeds = sliceType$5.nil; + this.directives = sliceType$1.nil; return; } this.name = name_; @@ -115132,6 +116392,7 @@ $packages["go/build"] = (function() { this.parseErr = parseErr_; this.imports = imports_; this.embeds = embeds_; + this.directives = directives_; }); fileImport = $newType(0, $kindStruct, "build.fileImport", true, "go/build", false, function(path_, pos_, doc_) { this.$val = this; @@ -115159,6 +116420,7 @@ $packages["go/build"] = (function() { $pkg.Context = Context; $pkg.ImportMode = ImportMode; $pkg.Package = Package; + $pkg.Directive = Directive; $pkg.NoGoError = NoGoError; $pkg.MultiplePackageError = MultiplePackageError; $pkg.fileInfo = fileInfo; @@ -115166,38 +116428,40 @@ $packages["go/build"] = (function() { $pkg.fileEmbed = fileEmbed; $pkg.$finishSetup = function() { sliceType = $sliceType($String); - sliceType$1 = $sliceType($Uint8); + sliceType$1 = $sliceType(Directive); + sliceType$2 = $sliceType($Uint8); ptrType = $ptrType(bufio.Reader); ptrType$1 = $ptrType(token.FileSet); ptrType$2 = $ptrType(ast.GenDecl); ptrType$3 = $ptrType(ast.ImportSpec); - sliceType$2 = $sliceType($emptyInterface); - sliceType$3 = $sliceType(fileImport); + sliceType$3 = $sliceType($emptyInterface); + sliceType$4 = $sliceType(fileImport); ptrType$4 = $ptrType(ast.CommentGroup); - sliceType$4 = $sliceType(fileEmbed); - sliceType$5 = $sliceType(fs.DirEntry); + sliceType$5 = $sliceType(fileEmbed); + sliceType$6 = $sliceType(fs.DirEntry); structType = $structType("go/build", [{prop: "vendor", name: "vendor", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "goroot", name: "goroot", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "gopath", name: "gopath", embedded: false, exported: false, typ: sliceType, tag: ""}]); - ptrType$5 = $ptrType($Bool); - ptrType$6 = $ptrType(fileInfo); - ptrType$7 = $ptrType(sliceType); - ptrType$8 = $ptrType(ast.File); - sliceType$6 = $sliceType(token.Position); - ptrType$9 = $ptrType(strings.Builder); - sliceType$7 = $sliceType($Int32); - ptrType$10 = $ptrType(importReader); - ptrType$11 = $ptrType(Package); + ptrType$5 = $ptrType(Package); + ptrType$6 = $ptrType($Bool); + ptrType$7 = $ptrType(fileInfo); + ptrType$8 = $ptrType(sliceType); + ptrType$9 = $ptrType(ast.File); + ptrType$10 = $ptrType(sliceType$1); + sliceType$7 = $sliceType(token.Position); + ptrType$11 = $ptrType(strings.Builder); + sliceType$8 = $sliceType($Int32); + ptrType$12 = $ptrType(importReader); mapType = $mapType($String, $Bool); - ptrType$12 = $ptrType(Context); + ptrType$13 = $ptrType(Context); funcType = $funcType([sliceType], [$String], true); funcType$1 = $funcType([$String], [sliceType], false); funcType$2 = $funcType([$String], [$Bool], false); funcType$3 = $funcType([$String, $String], [$String, $Bool], false); - sliceType$8 = $sliceType(fs.FileInfo); - funcType$4 = $funcType([$String], [sliceType$8, $error], false); + sliceType$9 = $sliceType(fs.FileInfo); + funcType$4 = $funcType([$String], [sliceType$9, $error], false); funcType$5 = $funcType([$String], [io.ReadCloser, $error], false); - mapType$1 = $mapType($String, sliceType$6); - ptrType$13 = $ptrType(NoGoError); - ptrType$14 = $ptrType(MultiplePackageError); + mapType$1 = $mapType($String, sliceType$7); + ptrType$14 = $ptrType(NoGoError); + ptrType$15 = $ptrType(MultiplePackageError); newImportReader = function newImportReader$1(name, r) { var {_r$1, _r$2, _tuple, b, err, leadingBytes, name, r, $s, $r, $c} = $restore(this, {name, r}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: @@ -115212,7 +116476,7 @@ $packages["go/build"] = (function() { _r$2 = b.Discard(3); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _r$2; /* } */ case 3: - $s = -1; return new importReader.ptr(b, sliceType$1.nil, 0, $ifaceNil, false, 0, $clone(new token.Position.ptr(name, 0, 1, 1), token.Position)); + $s = -1; return new importReader.ptr(b, sliceType$2.nil, 0, $ifaceNil, false, 0, $clone(new token.Position.ptr(name, 0, 1, 1), token.Position)); /* */ } return; } var $f = {$blk: newImportReader$1, $c: true, $r, _r$1, _r$2, _tuple, b, err, leadingBytes, name, r, $s};return $f; }; isIdent = function isIdent$1(c) { @@ -115685,7 +116949,7 @@ $packages["go/build"] = (function() { /* */ } return; } var $f = {$blk: readComments$1, $c: true, $r, _r$1, _r$2, f, r, $s};return $f; }; readGoInfo = function readGoInfo$1(f, info) { - var {$24r, _i, _i$1, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, c, d, decl, doc$1, dspec, embs, err, err$1, f, first, hasEmbed, info, line, ok, ok$1, path$1, pos, quoted, r, spec, x, $s, $r, $c} = $restore(this, {f, info}); + var {$24r, _i, _i$1, _i$2, _i$3, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, c, c$1, d, decl, doc$1, dspec, embs, err, err$1, f, first, group, hasEmbed, info, line, ok, ok$1, path$1, pos, quoted, r, spec, x, $s, $r, $c} = $restore(this, {f, info}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: _r$1 = newImportReader(info.name, f); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } r = _r$1; @@ -115776,7 +117040,7 @@ $packages["go/build"] = (function() { /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 29; continue; } /* */ $s = 30; continue; /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 29: - _r$9 = fmt.Errorf("parser returned invalid quoted string: <%s>", new sliceType$2([new $String(quoted)])); /* */ $s = 31; case 31: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$9 = fmt.Errorf("parser returned invalid quoted string: <%s>", new sliceType$3([new $String(quoted)])); /* */ $s = 31; case 31: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } $24r = _r$9; $s = 32; case 32: return $24r; /* } */ case 30: @@ -115785,7 +117049,7 @@ $packages["go/build"] = (function() { /* if (!isValidImport(path$1)) { */ case 33: _r$10 = info.fset.Position(spec.Pos()); /* */ $s = 35; case 35: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } info.parseErr = (x = new scanner.Error.ptr($clone(_r$10, token.Position), "invalid import path: " + path$1), new x.constructor.elem(x)); - info.imports = sliceType$3.nil; + info.imports = sliceType$4.nil; $s = -1; return $ifaceNil; /* } */ case 34: if (path$1 === "embed") { @@ -115802,38 +117066,63 @@ $packages["go/build"] = (function() { _i++; $s = 25; continue; case 26: - /* */ if (hasEmbed) { $s = 36; continue; } - /* */ $s = 37; continue; - /* if (hasEmbed) { */ case 36: - line = sliceType$1.nil; - first = true; + _ref$2 = info.parsed.Comments; + _i$2 = 0; + /* while (true) { */ case 36: + /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 37; continue; } + group = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); + if (group.Pos() >= info.parsed.Package) { + /* break; */ $s = 37; continue; + } + _ref$3 = group.List; + _i$3 = 0; /* while (true) { */ case 38: - _r$11 = r.findEmbed(first); /* */ $s = 40; case 40: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - /* if (!(_r$11)) { break; } */ if(!(_r$11)) { $s = 39; continue; } + /* if (!(_i$3 < _ref$3.$length)) { break; } */ if(!(_i$3 < _ref$3.$length)) { $s = 39; continue; } + c = ((_i$3 < 0 || _i$3 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$3]); + /* */ if (strings.HasPrefix(c.Text, "//go:")) { $s = 40; continue; } + /* */ $s = 41; continue; + /* if (strings.HasPrefix(c.Text, "//go:")) { */ case 40: + _r$11 = info.fset.Position(c.Slash); /* */ $s = 42; case 42: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + info.directives = $append(info.directives, new Directive.ptr(c.Text, $clone(_r$11, token.Position))); + /* } */ case 41: + _i$3++; + $s = 38; continue; + case 39: + _i$2++; + $s = 36; continue; + case 37: + /* */ if (hasEmbed) { $s = 43; continue; } + /* */ $s = 44; continue; + /* if (hasEmbed) { */ case 43: + line = sliceType$2.nil; + first = true; + /* while (true) { */ case 45: + _r$12 = r.findEmbed(first); /* */ $s = 47; case 47: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + /* if (!(_r$12)) { break; } */ if(!(_r$12)) { $s = 46; continue; } line = $subslice(line, 0, 0); pos = $clone(r.pos, token.Position); - /* while (true) { */ case 41: - _r$12 = r.readByteNoBuf(); /* */ $s = 43; case 43: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - c = _r$12; - if ((c === 10) || !($interfaceIsEqual(r.err, $ifaceNil)) || r.eof) { - /* break; */ $s = 42; continue; + /* while (true) { */ case 48: + _r$13 = r.readByteNoBuf(); /* */ $s = 50; case 50: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + c$1 = _r$13; + if ((c$1 === 10) || !($interfaceIsEqual(r.err, $ifaceNil)) || r.eof) { + /* break; */ $s = 49; continue; } - line = $append(line, c); - $s = 41; continue; - case 42: - _r$13 = parseGoEmbed(($bytesToString(line)), $clone(pos, token.Position)); /* */ $s = 44; case 44: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - _tuple$4 = _r$13; + line = $append(line, c$1); + $s = 48; continue; + case 49: + _r$14 = parseGoEmbed(($bytesToString(line)), $clone(pos, token.Position)); /* */ $s = 51; case 51: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _tuple$4 = _r$14; embs = _tuple$4[0]; err$1 = _tuple$4[1]; if ($interfaceIsEqual(err$1, $ifaceNil)) { info.embeds = $appendSlice(info.embeds, embs); } first = false; - $s = 38; continue; - case 39: - /* } */ case 37: + $s = 45; continue; + case 46: + /* } */ case 44: $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: readGoInfo$1, $c: true, $r, $24r, _i, _i$1, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, c, d, decl, doc$1, dspec, embs, err, err$1, f, first, hasEmbed, info, line, ok, ok$1, path$1, pos, quoted, r, spec, x, $s};return $f; + /* */ } return; } var $f = {$blk: readGoInfo$1, $c: true, $r, $24r, _i, _i$1, _i$2, _i$3, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, c, c$1, d, decl, doc$1, dspec, embs, err, err$1, f, first, group, hasEmbed, info, line, ok, ok$1, path$1, pos, quoted, r, spec, x, $s};return $f; }; isValidImport = function isValidImport$1(s) { var _i, _ref, _rune, r, s; @@ -115871,7 +117160,7 @@ $packages["go/build"] = (function() { $s = -1; return; /* */ } return; } var $f = {$blk: parseGoEmbed·func2, $c: true, $r, _r$1, trim, $s};return $f; }; })(args, pos, trimBytes); - list = sliceType$4.nil; + list = sliceType$5.nil; $r = trimSpace(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* while (true) { */ case 2: /* if (!(!(args[0] === ""))) { break; } */ if(!(!(args[0] === ""))) { $s = 3; continue; } @@ -115889,8 +117178,8 @@ $packages["go/build"] = (function() { /* */ if (!ok) { $s = 9; continue; } /* */ $s = 10; continue; /* if (!ok) { */ case 9: - _r$1 = fmt.Errorf("invalid quoted string in //go:embed: %s", new sliceType$2([new $String(args[0])])); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = [sliceType$4.nil, _r$1]; + _r$1 = fmt.Errorf("invalid quoted string in //go:embed: %s", new sliceType$3([new $String(args[0])])); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = [sliceType$5.nil, _r$1]; $s = 12; case 12: return $24r; /* } */ case 10: $r = trimBytes[0]((1 + path$1.length >> 0) + 1 >> 0); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } @@ -115913,8 +117202,8 @@ $packages["go/build"] = (function() { /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 18; continue; } /* */ $s = 19; continue; /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 18: - _r$2 = fmt.Errorf("invalid quoted string in //go:embed: %s", new sliceType$2([new $String($substring(args[0], 0, (i + 1 >> 0)))])); /* */ $s = 20; case 20: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r$1 = [sliceType$4.nil, _r$2]; + _r$2 = fmt.Errorf("invalid quoted string in //go:embed: %s", new sliceType$3([new $String($substring(args[0], 0, (i + 1 >> 0)))])); /* */ $s = 20; case 20: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r$1 = [sliceType$5.nil, _r$2]; $s = 21; case 21: return $24r$1; /* } */ case 19: path$1 = q; @@ -115927,8 +117216,8 @@ $packages["go/build"] = (function() { /* */ if (i >= args[0].length) { $s = 23; continue; } /* */ $s = 24; continue; /* if (i >= args[0].length) { */ case 23: - _r$3 = fmt.Errorf("invalid quoted string in //go:embed: %s", new sliceType$2([new $String(args[0])])); /* */ $s = 25; case 25: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r$2 = [sliceType$4.nil, _r$3]; + _r$3 = fmt.Errorf("invalid quoted string in //go:embed: %s", new sliceType$3([new $String(args[0])])); /* */ $s = 25; case 25: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r$2 = [sliceType$5.nil, _r$3]; $s = 26; case 26: return $24r$2; /* } */ case 24: $s = 8; continue; @@ -115959,8 +117248,8 @@ $packages["go/build"] = (function() { /* */ if (!unicode.IsSpace(r)) { $s = 30; continue; } /* */ $s = 31; continue; /* if (!unicode.IsSpace(r)) { */ case 30: - _r$4 = fmt.Errorf("invalid quoted string in //go:embed: %s", new sliceType$2([new $String(args[0])])); /* */ $s = 32; case 32: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $24r$3 = [sliceType$4.nil, _r$4]; + _r$4 = fmt.Errorf("invalid quoted string in //go:embed: %s", new sliceType$3([new $String(args[0])])); /* */ $s = 32; case 32: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r$3 = [sliceType$5.nil, _r$4]; $s = 33; case 33: return $24r$3; /* } */ case 31: /* } */ case 29: @@ -116127,9 +117416,9 @@ $packages["go/build"] = (function() { fis = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [sliceType$5.nil, err]; + $s = -1; return [sliceType$6.nil, err]; } - des = $makeSlice(sliceType$5, fis.$length); + des = $makeSlice(sliceType$6, fis.$length); _ref = fis; _i = 0; while (true) { @@ -116269,7 +117558,7 @@ $packages["go/build"] = (function() { /* */ } return; } var $f = {$blk: defaultGOPATH$1, $c: true, $r, _r$1, def, env, home, $s};return $f; }; defaultContext = function defaultContext$1() { - var {_1, _arg, _entry, _r$1, _r$2, _r$3, c, env, goroot$1, i, $s, $r, $c} = $restore(this, {}); + var {_1, _arg, _r$1, _r$2, _r$3, c, env, goroot$1, i, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: c = new Context.ptr("", "", "", "", "", false, false, "", sliceType.nil, sliceType.nil, sliceType.nil, "", $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError); c.GOARCH = buildcfg.GOARCH; @@ -116287,7 +117576,7 @@ $packages["go/build"] = (function() { defaultToolTags = $appendSlice(new sliceType([]), c.ToolTags); i = 1; while (true) { - if (!(i <= 20)) { break; } + if (!(i <= 21)) { break; } c.ReleaseTags = $append(c.ReleaseTags, "go1." + strconv.Itoa(i)); i = i + (1) >> 0; } @@ -116305,14 +117594,14 @@ $packages["go/build"] = (function() { c.CgoEnabled = false; } else { if ("ecmascript" === c.GOARCH && "js" === c.GOOS) { - c.CgoEnabled = (_entry = $mapIndex(cgoEnabled,$String.keyFor(c.GOOS + "/" + c.GOARCH)), _entry !== undefined ? _entry.v : false); + c.CgoEnabled = platform.CgoSupported(c.GOOS, c.GOARCH); break; } c.CgoEnabled = false; } } $s = -1; return c; - /* */ } return; } var $f = {$blk: defaultContext$1, $c: true, $r, _1, _arg, _entry, _r$1, _r$2, _r$3, c, env, goroot$1, i, $s};return $f; + /* */ } return; } var $f = {$blk: defaultContext$1, $c: true, $r, _1, _arg, _r$1, _r$2, _r$3, c, env, goroot$1, i, $s};return $f; }; envOr = function envOr$1(name, def) { var {_r$1, def, name, s, $s, $r, $c} = $restore(this, {name, def}); @@ -116348,7 +117637,7 @@ $packages["go/build"] = (function() { var {$24r, _r$1, e, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: e = this; - _r$1 = fmt.Sprintf("found packages %s (%s) and %s (%s) in %s", new sliceType$2([new $String((x = e.Packages, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))), new $String((x$1 = e.Files, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0]))), new $String((x$2 = e.Packages, (1 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 1]))), new $String((x$3 = e.Files, (1 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 1]))), new $String(e.Dir)])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1 = fmt.Sprintf("found packages %s (%s) and %s (%s) in %s", new sliceType$3([new $String((x = e.Packages, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))), new $String((x$1 = e.Files, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0]))), new $String((x$2 = e.Packages, (1 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 1]))), new $String((x$3 = e.Files, (1 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 1]))), new $String(e.Dir)])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $24r = _r$1; $s = 2; case 2: return $24r; /* */ } return; } var $f = {$blk: Error$1, $c: true, $r, $24r, _r$1, e, x, x$1, x$2, x$3, $s};return $f; @@ -116362,7 +117651,7 @@ $packages["go/build"] = (function() { return $substring(name, i); }; $ptrType(Context).prototype.Import = function Import$1(path$1, srcDir, mode) { - var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, Sfiles, _1, _3, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _entry, _entry$1, _entry$2, _i, _i$1, _i$10, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _i$8, _i$9, _key, _key$1, _key$2, _key$3, _keys, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _r$5, _r$50, _r$51, _r$52, _r$53, _r$54, _r$55, _r$56, _r$57, _r$58, _r$59, _r$6, _r$60, _r$61, _r$62, _r$63, _r$64, _r$65, _r$66, _r$67, _r$68, _r$69, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$10, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _ref$9, _size, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, _v$2, _v$3, _v$4, _v$5, _v$6, _v$7, _v$8, all, allTags, badGoError, badGoFile, badGoFiles, binaryOnly, com, ctxt, d, data, dir, dir$1, dir$2, dir$3, dir$4, dir$5, dir$6, dirs, earlyRoot, emb, embedMap, embedPos, err, err$1, err$2, err$3, err$4, ext, fileList, filename, firstCommentFile, firstFile, format, fset, gopath$1, gorootFirst, i, imp, imp$1, importMap, importPos, inTestdata, info, isCgo, isDir$1, isDir$2, isDir$3, isTest, isXTest, line, list, mode, name, ok, ok$1, p, path$1, paths, pkg, pkga, pkgerr, pkgtargetroot, qcom, root, root$1, root$2, root$3, rootsrc, searchVendor, setPkga, srcDir, sub, sub$1, suffix, tag, testEmbedPos, testImportPos, tried, xTestEmbedPos, xTestImportPos, $s, $r, $c} = $restore(this, {path$1, srcDir, mode}); + var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, Sfiles, _1, _3, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _entry, _entry$1, _entry$2, _i, _i$1, _i$10, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _i$8, _i$9, _key, _key$1, _key$2, _key$3, _keys, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _r$5, _r$50, _r$51, _r$52, _r$53, _r$54, _r$55, _r$56, _r$57, _r$58, _r$59, _r$6, _r$60, _r$61, _r$62, _r$63, _r$64, _r$65, _r$66, _r$67, _r$68, _r$69, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$10, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _ref$9, _size, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, _v$2, _v$3, _v$4, _v$5, _v$6, _v$7, _v$8, all, allTags, badGoError, badGoFile, badGoFiles, binaryOnly, com, ctxt, d, data, dir, dir$1, dir$2, dir$3, dir$4, dir$5, dir$6, directives, dirs, earlyRoot, emb, embedMap, embedPos, err, err$1, err$2, err$3, err$4, ext, fileList, filename, firstCommentFile, firstFile, format, fset, gopath$1, gorootFirst, i, imp, imp$1, importMap, importPos, inTestdata, info, isCgo, isDir$1, isDir$2, isDir$3, isTest, isXTest, line, list, mode, name, ok, ok$1, p, path$1, paths, pkg, pkga, pkgerr, pkgtargetroot, qcom, root, root$1, root$2, root$3, rootsrc, searchVendor, setPkga, srcDir, sub, sub$1, suffix, tag, testEmbedPos, testImportPos, tried, xTestEmbedPos, xTestImportPos, $s, $r, $c} = $restore(this, {path$1, srcDir, mode}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: badGoError = [badGoError]; badGoFiles = [badGoFiles]; @@ -116375,11 +117664,11 @@ $packages["go/build"] = (function() { srcDir = [srcDir]; tried = [tried]; ctxt[0] = this; - p[0] = new Package.ptr("", "", "", "", path$1[0], "", "", "", "", "", false, "", sliceType.nil, "", false, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, false, sliceType.nil, false, sliceType.nil, false, sliceType.nil, false, sliceType.nil, false, sliceType.nil, false); + p[0] = new Package.ptr("", "", "", "", path$1[0], "", "", "", "", "", false, "", sliceType.nil, "", false, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType$1.nil, sliceType$1.nil, sliceType$1.nil, sliceType.nil, false, sliceType.nil, false, sliceType.nil, false, sliceType.nil, false, sliceType.nil, false, sliceType.nil, false); /* */ if (path$1[0] === "") { $s = 1; continue; } /* */ $s = 2; continue; /* if (path$1[0] === "") { */ case 1: - _r$1 = fmt.Errorf("import %q: invalid import path", new sliceType$2([new $String(path$1[0])])); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1 = fmt.Errorf("import %q: invalid import path", new sliceType$3([new $String(path$1[0])])); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $24r = [p[0], _r$1]; $s = 4; case 4: return $24r; /* } */ case 2: @@ -116401,7 +117690,7 @@ $packages["go/build"] = (function() { pkgtargetroot[0] = "pkg/" + ctxt[0].GOOS + "_" + ctxt[0].GOARCH + suffix; $s = 9; continue; /* } else { */ case 8: - _r$2 = fmt.Errorf("import %q: unknown compiler %q", new sliceType$2([new $String(path$1[0]), new $String(ctxt[0].Compiler)])); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2 = fmt.Errorf("import %q: unknown compiler %q", new sliceType$3([new $String(path$1[0]), new $String(ctxt[0].Compiler)])); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } pkgerr = _r$2; /* } */ case 9: case 5: @@ -116426,7 +117715,7 @@ $packages["go/build"] = (function() { /* */ if (srcDir[0] === "") { $s = 15; continue; } /* */ $s = 16; continue; /* if (srcDir[0] === "") { */ case 15: - _r$3 = fmt.Errorf("import %q: import relative to unknown directory", new sliceType$2([new $String(path$1[0])])); /* */ $s = 17; case 17: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3 = fmt.Errorf("import %q: import relative to unknown directory", new sliceType$3([new $String(path$1[0])])); /* */ $s = 17; case 17: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } $24r$1 = [p[0], _r$3]; $s = 18; case 18: return $24r$1; /* } */ case 16: @@ -116526,7 +117815,7 @@ $packages["go/build"] = (function() { /* */ if (strings.HasPrefix(path$1[0], "/")) { $s = 55; continue; } /* */ $s = 56; continue; /* if (strings.HasPrefix(path$1[0], "/")) { */ case 55: - _r$17 = fmt.Errorf("import %q: cannot import absolute path", new sliceType$2([new $String(path$1[0])])); /* */ $s = 57; case 57: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + _r$17 = fmt.Errorf("import %q: cannot import absolute path", new sliceType$3([new $String(path$1[0])])); /* */ $s = 57; case 57: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } $24r$2 = [p[0], _r$17]; $s = 58; case 58: return $24r$2; /* } */ case 56: @@ -116723,7 +118012,7 @@ $packages["go/build"] = (function() { /* while (true) { */ case 116: /* if (!(_i$4 < _ref$4.$length)) { break; } */ if(!(_i$4 < _ref$4.$length)) { $s = 117; continue; } dir$5 = ((_i$4 < 0 || _i$4 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$4]); - _r$37 = fmt.Sprintf(format, new sliceType$2([new $String(dir$5)])); /* */ $s = 118; case 118: if($c) { $c = false; _r$37 = _r$37.$blk(); } if (_r$37 && _r$37.$blk !== undefined) { break s; } + _r$37 = fmt.Sprintf(format, new sliceType$3([new $String(dir$5)])); /* */ $s = 118; case 118: if($c) { $c = false; _r$37 = _r$37.$blk(); } if (_r$37 && _r$37.$blk !== undefined) { break s; } paths = $append(paths, _r$37); format = "\t%s"; _i$4++; @@ -116732,7 +118021,7 @@ $packages["go/build"] = (function() { /* */ if (!(tried[0].goroot === "")) { $s = 119; continue; } /* */ $s = 120; continue; /* if (!(tried[0].goroot === "")) { */ case 119: - _r$38 = fmt.Sprintf("\t%s (from $GOROOT)", new sliceType$2([new $String(tried[0].goroot)])); /* */ $s = 122; case 122: if($c) { $c = false; _r$38 = _r$38.$blk(); } if (_r$38 && _r$38.$blk !== undefined) { break s; } + _r$38 = fmt.Sprintf("\t%s (from $GOROOT)", new sliceType$3([new $String(tried[0].goroot)])); /* */ $s = 122; case 122: if($c) { $c = false; _r$38 = _r$38.$blk(); } if (_r$38 && _r$38.$blk !== undefined) { break s; } paths = $append(paths, _r$38); $s = 121; continue; /* } else { */ case 120: @@ -116744,7 +118033,7 @@ $packages["go/build"] = (function() { /* while (true) { */ case 123: /* if (!(_i$5 < _ref$5.$length)) { break; } */ if(!(_i$5 < _ref$5.$length)) { $s = 124; continue; } dir$6 = ((_i$5 < 0 || _i$5 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$5]); - _r$39 = fmt.Sprintf(format, new sliceType$2([new $String(dir$6)])); /* */ $s = 125; case 125: if($c) { $c = false; _r$39 = _r$39.$blk(); } if (_r$39 && _r$39.$blk !== undefined) { break s; } + _r$39 = fmt.Sprintf(format, new sliceType$3([new $String(dir$6)])); /* */ $s = 125; case 125: if($c) { $c = false; _r$39 = _r$39.$blk(); } if (_r$39 && _r$39.$blk !== undefined) { break s; } paths = $append(paths, _r$39); format = "\t%s"; _i$5++; @@ -116753,7 +118042,7 @@ $packages["go/build"] = (function() { if (tried[0].gopath.$length === 0) { paths = $append(paths, "\t($GOPATH not set. For more details see: 'go help gopath')"); } - _r$40 = fmt.Errorf("cannot find package %q in any of:\n%s", new sliceType$2([new $String(path$1[0]), new $String(strings.Join(paths, "\n"))])); /* */ $s = 126; case 126: if($c) { $c = false; _r$40 = _r$40.$blk(); } if (_r$40 && _r$40.$blk !== undefined) { break s; } + _r$40 = fmt.Errorf("cannot find package %q in any of:\n%s", new sliceType$3([new $String(path$1[0]), new $String(strings.Join(paths, "\n"))])); /* */ $s = 126; case 126: if($c) { $c = false; _r$40 = _r$40.$blk(); } if (_r$40 && _r$40.$blk !== undefined) { break s; } $24r$3 = [p[0], _r$40]; $s = 127; case 127: return $24r$3; /* } */ case 14: @@ -116778,24 +118067,29 @@ $packages["go/build"] = (function() { /* */ if (_v$7) { $s = 136; continue; } /* */ $s = 137; continue; /* if (_v$7) { */ case 136: - _r$46 = ctxt[0].joinPath(new sliceType([p[0].Root, pkga[0]])); /* */ $s = 140; case 140: if($c) { $c = false; _r$46 = _r$46.$blk(); } if (_r$46 && _r$46.$blk !== undefined) { break s; } + /* */ if (p[0].Goroot) { $s = 140; continue; } + /* */ $s = 141; continue; + /* if (p[0].Goroot) { */ case 140: + $r = installgoroot.IncNonDefault(); /* */ $s = 142; case 142: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 141: + _r$46 = ctxt[0].joinPath(new sliceType([p[0].Root, pkga[0]])); /* */ $s = 143; case 143: if($c) { $c = false; _r$46 = _r$46.$blk(); } if (_r$46 && _r$46.$blk !== undefined) { break s; } p[0].PkgObj = _r$46; /* } */ case 137: /* } */ case 134: /* } */ case 129: - if (!(IsLocalImport(path$1[0]))) { _v$8 = false; $s = 143; continue s; } - _r$47 = ctxt[0].isDir(p[0].Dir); /* */ $s = 144; case 144: if($c) { $c = false; _r$47 = _r$47.$blk(); } if (_r$47 && _r$47.$blk !== undefined) { break s; } - _v$8 = !_r$47; case 143: - /* */ if (_v$8) { $s = 141; continue; } - /* */ $s = 142; continue; - /* if (_v$8) { */ case 141: + if (!(IsLocalImport(path$1[0]))) { _v$8 = false; $s = 146; continue s; } + _r$47 = ctxt[0].isDir(p[0].Dir); /* */ $s = 147; case 147: if($c) { $c = false; _r$47 = _r$47.$blk(); } if (_r$47 && _r$47.$blk !== undefined) { break s; } + _v$8 = !_r$47; case 146: + /* */ if (_v$8) { $s = 144; continue; } + /* */ $s = 145; continue; + /* if (_v$8) { */ case 144: if (ctxt[0].Compiler === "gccgo" && p[0].Goroot) { $s = -1; return [p[0], $ifaceNil]; } - _r$48 = fmt.Errorf("cannot find package %q in:\n\t%s", new sliceType$2([new $String(p[0].ImportPath), new $String(p[0].Dir)])); /* */ $s = 145; case 145: if($c) { $c = false; _r$48 = _r$48.$blk(); } if (_r$48 && _r$48.$blk !== undefined) { break s; } + _r$48 = fmt.Errorf("cannot find package %q in:\n\t%s", new sliceType$3([new $String(p[0].ImportPath), new $String(p[0].Dir)])); /* */ $s = 148; case 148: if($c) { $c = false; _r$48 = _r$48.$blk(); } if (_r$48 && _r$48.$blk !== undefined) { break s; } $24r$4 = [p[0], _r$48]; - $s = 146; case 146: return $24r$4; - /* } */ case 142: + $s = 149; case 149: return $24r$4; + /* } */ case 145: if (!((((mode & 1) >>> 0) === 0))) { $s = -1; return [p[0], pkgerr]; } @@ -116805,7 +118099,7 @@ $packages["go/build"] = (function() { if (ctxt[0].Compiler === "gccgo" && p[0].Goroot) { $s = -1; return [p[0], $ifaceNil]; } - _r$49 = ctxt[0].readDir(p[0].Dir); /* */ $s = 147; case 147: if($c) { $c = false; _r$49 = _r$49.$blk(); } if (_r$49 && _r$49.$blk !== undefined) { break s; } + _r$49 = ctxt[0].readDir(p[0].Dir); /* */ $s = 150; case 150: if($c) { $c = false; _r$49 = _r$49.$blk(); } if (_r$49 && _r$49.$blk !== undefined) { break s; } _tuple$3 = _r$49; dirs = _tuple$3[0]; err$1 = _tuple$3[1]; @@ -116839,86 +118133,86 @@ $packages["go/build"] = (function() { fset = token.NewFileSet(); _ref$6 = dirs; _i$6 = 0; - /* while (true) { */ case 148: - /* if (!(_i$6 < _ref$6.$length)) { break; } */ if(!(_i$6 < _ref$6.$length)) { $s = 149; continue; } + /* while (true) { */ case 151: + /* if (!(_i$6 < _ref$6.$length)) { break; } */ if(!(_i$6 < _ref$6.$length)) { $s = 152; continue; } d = ((_i$6 < 0 || _i$6 >= _ref$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$6.$array[_ref$6.$offset + _i$6]); - _r$50 = d.IsDir(); /* */ $s = 152; case 152: if($c) { $c = false; _r$50 = _r$50.$blk(); } if (_r$50 && _r$50.$blk !== undefined) { break s; } - /* */ if (_r$50) { $s = 150; continue; } - /* */ $s = 151; continue; - /* if (_r$50) { */ case 150: - _i$6++; - /* continue; */ $s = 148; continue; - /* } */ case 151: - _r$51 = d.Type(); /* */ $s = 155; case 155: if($c) { $c = false; _r$51 = _r$51.$blk(); } if (_r$51 && _r$51.$blk !== undefined) { break s; } - /* */ if (_r$51 === 134217728) { $s = 153; continue; } + _r$50 = d.IsDir(); /* */ $s = 155; case 155: if($c) { $c = false; _r$50 = _r$50.$blk(); } if (_r$50 && _r$50.$blk !== undefined) { break s; } + /* */ if (_r$50) { $s = 153; continue; } /* */ $s = 154; continue; - /* if (_r$51 === 134217728) { */ case 153: + /* if (_r$50) { */ case 153: + _i$6++; + /* continue; */ $s = 151; continue; + /* } */ case 154: + _r$51 = d.Type(); /* */ $s = 158; case 158: if($c) { $c = false; _r$51 = _r$51.$blk(); } if (_r$51 && _r$51.$blk !== undefined) { break s; } + /* */ if (_r$51 === 134217728) { $s = 156; continue; } + /* */ $s = 157; continue; + /* if (_r$51 === 134217728) { */ case 156: _arg = p[0].Dir; - _r$52 = d.Name(); /* */ $s = 158; case 158: if($c) { $c = false; _r$52 = _r$52.$blk(); } if (_r$52 && _r$52.$blk !== undefined) { break s; } + _r$52 = d.Name(); /* */ $s = 161; case 161: if($c) { $c = false; _r$52 = _r$52.$blk(); } if (_r$52 && _r$52.$blk !== undefined) { break s; } _arg$1 = _r$52; - _r$53 = ctxt[0].joinPath(new sliceType([_arg, _arg$1])); /* */ $s = 159; case 159: if($c) { $c = false; _r$53 = _r$53.$blk(); } if (_r$53 && _r$53.$blk !== undefined) { break s; } - _r$54 = ctxt[0].isDir(_r$53); /* */ $s = 160; case 160: if($c) { $c = false; _r$54 = _r$54.$blk(); } if (_r$54 && _r$54.$blk !== undefined) { break s; } - /* */ if (_r$54) { $s = 156; continue; } - /* */ $s = 157; continue; - /* if (_r$54) { */ case 156: + _r$53 = ctxt[0].joinPath(new sliceType([_arg, _arg$1])); /* */ $s = 162; case 162: if($c) { $c = false; _r$53 = _r$53.$blk(); } if (_r$53 && _r$53.$blk !== undefined) { break s; } + _r$54 = ctxt[0].isDir(_r$53); /* */ $s = 163; case 163: if($c) { $c = false; _r$54 = _r$54.$blk(); } if (_r$54 && _r$54.$blk !== undefined) { break s; } + /* */ if (_r$54) { $s = 159; continue; } + /* */ $s = 160; continue; + /* if (_r$54) { */ case 159: _i$6++; - /* continue; */ $s = 148; continue; - /* } */ case 157: - /* } */ case 154: - _r$55 = d.Name(); /* */ $s = 161; case 161: if($c) { $c = false; _r$55 = _r$55.$blk(); } if (_r$55 && _r$55.$blk !== undefined) { break s; } + /* continue; */ $s = 151; continue; + /* } */ case 160: + /* } */ case 157: + _r$55 = d.Name(); /* */ $s = 164; case 164: if($c) { $c = false; _r$55 = _r$55.$blk(); } if (_r$55 && _r$55.$blk !== undefined) { break s; } name = _r$55; ext = nameExt(name); - _r$56 = ctxt[0].matchFile(p[0].Dir, name, allTags, (p[0].$ptr_BinaryOnly || (p[0].$ptr_BinaryOnly = new ptrType$5(function() { return this.$target.BinaryOnly; }, function($v) { this.$target.BinaryOnly = $v; }, p[0]))), fset); /* */ $s = 162; case 162: if($c) { $c = false; _r$56 = _r$56.$blk(); } if (_r$56 && _r$56.$blk !== undefined) { break s; } + _r$56 = ctxt[0].matchFile(p[0].Dir, name, allTags, (p[0] === ptrType$5.nil && $throwNilPointerError(), (p[0].$ptr_BinaryOnly || (p[0].$ptr_BinaryOnly = new ptrType$6(function() { return this.$target.BinaryOnly; }, function($v) { this.$target.BinaryOnly = $v; }, p[0])))), fset); /* */ $s = 165; case 165: if($c) { $c = false; _r$56 = _r$56.$blk(); } if (_r$56 && _r$56.$blk !== undefined) { break s; } _tuple$4 = _r$56; info = _tuple$4[0]; err$2 = _tuple$4[1]; - /* */ if (!($interfaceIsEqual(err$2, $ifaceNil)) && strings.HasSuffix(name, ".go")) { $s = 163; continue; } - /* */ $s = 164; continue; - /* if (!($interfaceIsEqual(err$2, $ifaceNil)) && strings.HasSuffix(name, ".go")) { */ case 163: - $r = badGoFile(name, err$2); /* */ $s = 165; case 165: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!($interfaceIsEqual(err$2, $ifaceNil)) && strings.HasSuffix(name, ".go")) { $s = 166; continue; } + /* */ $s = 167; continue; + /* if (!($interfaceIsEqual(err$2, $ifaceNil)) && strings.HasSuffix(name, ".go")) { */ case 166: + $r = badGoFile(name, err$2); /* */ $s = 168; case 168: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _i$6++; - /* continue; */ $s = 148; continue; - /* } */ case 164: - if (info === ptrType$6.nil) { + /* continue; */ $s = 151; continue; + /* } */ case 167: + if (info === ptrType$7.nil) { if (strings.HasPrefix(name, "_") || strings.HasPrefix(name, ".")) { } else if (ext === ".go") { p[0].IgnoredGoFiles = $append(p[0].IgnoredGoFiles, name); - } else if (!(fileListForExt(p[0], ext) === ptrType$7.nil)) { + } else if (!(fileListForExt(p[0], ext) === ptrType$8.nil)) { p[0].IgnoredOtherFiles = $append(p[0].IgnoredOtherFiles, name); } _i$6++; - /* continue; */ $s = 148; continue; + /* continue; */ $s = 151; continue; } _3 = ext; if (_3 === (".go")) { } else if (_3 === (".S") || _3 === (".sx")) { Sfiles = $append(Sfiles, name); _i$6++; - /* continue; */ $s = 148; continue; + /* continue; */ $s = 151; continue; } else { list = fileListForExt(p[0], ext); - if (!(list === ptrType$7.nil)) { + if (!(list === ptrType$8.nil)) { list.$set($append(list.$get(), name)); } _i$6++; - /* continue; */ $s = 148; continue; + /* continue; */ $s = 151; continue; } _tmp$2 = info.header; _tmp$3 = info.name; data = _tmp$2; filename = _tmp$3; - /* */ if (!($interfaceIsEqual(info.parseErr, $ifaceNil))) { $s = 166; continue; } - /* */ $s = 167; continue; - /* if (!($interfaceIsEqual(info.parseErr, $ifaceNil))) { */ case 166: - $r = badGoFile(name, info.parseErr); /* */ $s = 168; case 168: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 167: + /* */ if (!($interfaceIsEqual(info.parseErr, $ifaceNil))) { $s = 169; continue; } + /* */ $s = 170; continue; + /* if (!($interfaceIsEqual(info.parseErr, $ifaceNil))) { */ case 169: + $r = badGoFile(name, info.parseErr); /* */ $s = 171; case 171: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 170: pkg = ""; - if (!(info.parsed === ptrType$8.nil)) { + if (!(info.parsed === ptrType$9.nil)) { pkg = info.parsed.Name.Name; if (pkg === "documentation") { p[0].IgnoredGoFiles = $append(p[0].IgnoredGoFiles, name); _i$6++; - /* continue; */ $s = 148; continue; + /* continue; */ $s = 151; continue; } } isTest = strings.HasSuffix(name, "_test.go"); @@ -116927,147 +118221,155 @@ $packages["go/build"] = (function() { isXTest = true; pkg = $substring(pkg, 0, (pkg.length - 5 >> 0)); } - /* */ if (p[0].Name === "") { $s = 169; continue; } - /* */ if (!(pkg === p[0].Name)) { $s = 170; continue; } - /* */ $s = 171; continue; - /* if (p[0].Name === "") { */ case 169: + /* */ if (p[0].Name === "") { $s = 172; continue; } + /* */ if (!(pkg === p[0].Name)) { $s = 173; continue; } + /* */ $s = 174; continue; + /* if (p[0].Name === "") { */ case 172: p[0].Name = pkg; firstFile = name; - $s = 171; continue; - /* } else if (!(pkg === p[0].Name)) { */ case 170: - $r = badGoFile(name, new MultiplePackageError.ptr(p[0].Dir, new sliceType([p[0].Name, pkg]), new sliceType([firstFile, name]))); /* */ $s = 172; case 172: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 171: - /* */ if (!(info.parsed === ptrType$8.nil) && !(info.parsed.Doc === ptrType$4.nil) && p[0].Doc === "" && !isTest && !isXTest) { $s = 173; continue; } - /* */ $s = 174; continue; - /* if (!(info.parsed === ptrType$8.nil) && !(info.parsed.Doc === ptrType$4.nil) && p[0].Doc === "" && !isTest && !isXTest) { */ case 173: - _r$57 = doc.Synopsis(info.parsed.Doc.Text()); /* */ $s = 175; case 175: if($c) { $c = false; _r$57 = _r$57.$blk(); } if (_r$57 && _r$57.$blk !== undefined) { break s; } - p[0].Doc = _r$57; + $s = 174; continue; + /* } else if (!(pkg === p[0].Name)) { */ case 173: + $r = badGoFile(name, new MultiplePackageError.ptr(p[0].Dir, new sliceType([p[0].Name, pkg]), new sliceType([firstFile, name]))); /* */ $s = 175; case 175: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 174: - /* */ if (!((((mode & 4) >>> 0) === 0))) { $s = 176; continue; } + /* */ if (!(info.parsed === ptrType$9.nil) && !(info.parsed.Doc === ptrType$4.nil) && p[0].Doc === "" && !isTest && !isXTest) { $s = 176; continue; } /* */ $s = 177; continue; - /* if (!((((mode & 4) >>> 0) === 0))) { */ case 176: - _r$58 = findImportComment(data); /* */ $s = 178; case 178: if($c) { $c = false; _r$58 = _r$58.$blk(); } if (_r$58 && _r$58.$blk !== undefined) { break s; } + /* if (!(info.parsed === ptrType$9.nil) && !(info.parsed.Doc === ptrType$4.nil) && p[0].Doc === "" && !isTest && !isXTest) { */ case 176: + _r$57 = doc.Synopsis(info.parsed.Doc.Text()); /* */ $s = 178; case 178: if($c) { $c = false; _r$57 = _r$57.$blk(); } if (_r$57 && _r$57.$blk !== undefined) { break s; } + p[0].Doc = _r$57; + /* } */ case 177: + /* */ if (!((((mode & 4) >>> 0) === 0))) { $s = 179; continue; } + /* */ $s = 180; continue; + /* if (!((((mode & 4) >>> 0) === 0))) { */ case 179: + _r$58 = findImportComment(data); /* */ $s = 181; case 181: if($c) { $c = false; _r$58 = _r$58.$blk(); } if (_r$58 && _r$58.$blk !== undefined) { break s; } _tuple$5 = _r$58; qcom = _tuple$5[0]; line = _tuple$5[1]; - /* */ if (!((line === 0))) { $s = 179; continue; } - /* */ $s = 180; continue; - /* if (!((line === 0))) { */ case 179: + /* */ if (!((line === 0))) { $s = 182; continue; } + /* */ $s = 183; continue; + /* if (!((line === 0))) { */ case 182: _tuple$6 = strconv.Unquote(qcom); com = _tuple$6[0]; err$3 = _tuple$6[1]; - /* */ if (!($interfaceIsEqual(err$3, $ifaceNil))) { $s = 181; continue; } - /* */ if (p[0].ImportComment === "") { $s = 182; continue; } - /* */ if (!(p[0].ImportComment === com)) { $s = 183; continue; } - /* */ $s = 184; continue; - /* if (!($interfaceIsEqual(err$3, $ifaceNil))) { */ case 181: + /* */ if (!($interfaceIsEqual(err$3, $ifaceNil))) { $s = 184; continue; } + /* */ if (p[0].ImportComment === "") { $s = 185; continue; } + /* */ if (!(p[0].ImportComment === com)) { $s = 186; continue; } + /* */ $s = 187; continue; + /* if (!($interfaceIsEqual(err$3, $ifaceNil))) { */ case 184: _arg$2 = name; - _r$59 = fmt.Errorf("%s:%d: cannot parse import comment", new sliceType$2([new $String(filename), new $Int(line)])); /* */ $s = 185; case 185: if($c) { $c = false; _r$59 = _r$59.$blk(); } if (_r$59 && _r$59.$blk !== undefined) { break s; } + _r$59 = fmt.Errorf("%s:%d: cannot parse import comment", new sliceType$3([new $String(filename), new $Int(line)])); /* */ $s = 188; case 188: if($c) { $c = false; _r$59 = _r$59.$blk(); } if (_r$59 && _r$59.$blk !== undefined) { break s; } _arg$3 = _r$59; - $r = badGoFile(_arg$2, _arg$3); /* */ $s = 186; case 186: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 184; continue; - /* } else if (p[0].ImportComment === "") { */ case 182: + $r = badGoFile(_arg$2, _arg$3); /* */ $s = 189; case 189: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 187; continue; + /* } else if (p[0].ImportComment === "") { */ case 185: p[0].ImportComment = com; firstCommentFile = name; - $s = 184; continue; - /* } else if (!(p[0].ImportComment === com)) { */ case 183: + $s = 187; continue; + /* } else if (!(p[0].ImportComment === com)) { */ case 186: _arg$4 = name; - _r$60 = fmt.Errorf("found import comments %q (%s) and %q (%s) in %s", new sliceType$2([new $String(p[0].ImportComment), new $String(firstCommentFile), new $String(com), new $String(name), new $String(p[0].Dir)])); /* */ $s = 187; case 187: if($c) { $c = false; _r$60 = _r$60.$blk(); } if (_r$60 && _r$60.$blk !== undefined) { break s; } + _r$60 = fmt.Errorf("found import comments %q (%s) and %q (%s) in %s", new sliceType$3([new $String(p[0].ImportComment), new $String(firstCommentFile), new $String(com), new $String(name), new $String(p[0].Dir)])); /* */ $s = 190; case 190: if($c) { $c = false; _r$60 = _r$60.$blk(); } if (_r$60 && _r$60.$blk !== undefined) { break s; } _arg$5 = _r$60; - $r = badGoFile(_arg$4, _arg$5); /* */ $s = 188; case 188: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 184: - /* } */ case 180: - /* } */ case 177: + $r = badGoFile(_arg$4, _arg$5); /* */ $s = 191; case 191: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 187: + /* } */ case 183: + /* } */ case 180: isCgo = false; _ref$7 = info.imports; _i$7 = 0; - /* while (true) { */ case 189: - /* if (!(_i$7 < _ref$7.$length)) { break; } */ if(!(_i$7 < _ref$7.$length)) { $s = 190; continue; } + /* while (true) { */ case 192: + /* if (!(_i$7 < _ref$7.$length)) { break; } */ if(!(_i$7 < _ref$7.$length)) { $s = 193; continue; } imp = $clone(((_i$7 < 0 || _i$7 >= _ref$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$7.$array[_ref$7.$offset + _i$7]), fileImport); - /* */ if (imp.path === "C") { $s = 191; continue; } - /* */ $s = 192; continue; - /* if (imp.path === "C") { */ case 191: - /* */ if (isTest) { $s = 193; continue; } - /* */ $s = 194; continue; - /* if (isTest) { */ case 193: + /* */ if (imp.path === "C") { $s = 194; continue; } + /* */ $s = 195; continue; + /* if (imp.path === "C") { */ case 194: + /* */ if (isTest) { $s = 196; continue; } + /* */ $s = 197; continue; + /* if (isTest) { */ case 196: _arg$6 = name; - _r$61 = fmt.Errorf("use of cgo in test %s not supported", new sliceType$2([new $String(filename)])); /* */ $s = 195; case 195: if($c) { $c = false; _r$61 = _r$61.$blk(); } if (_r$61 && _r$61.$blk !== undefined) { break s; } + _r$61 = fmt.Errorf("use of cgo in test %s not supported", new sliceType$3([new $String(filename)])); /* */ $s = 198; case 198: if($c) { $c = false; _r$61 = _r$61.$blk(); } if (_r$61 && _r$61.$blk !== undefined) { break s; } _arg$7 = _r$61; - $r = badGoFile(_arg$6, _arg$7); /* */ $s = 196; case 196: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = badGoFile(_arg$6, _arg$7); /* */ $s = 199; case 199: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _i$7++; - /* continue; */ $s = 189; continue; - /* } */ case 194: + /* continue; */ $s = 192; continue; + /* } */ case 197: isCgo = true; - /* */ if (!(imp.doc === ptrType$4.nil)) { $s = 197; continue; } - /* */ $s = 198; continue; - /* if (!(imp.doc === ptrType$4.nil)) { */ case 197: - _r$62 = ctxt[0].saveCgo(filename, p[0], imp.doc); /* */ $s = 199; case 199: if($c) { $c = false; _r$62 = _r$62.$blk(); } if (_r$62 && _r$62.$blk !== undefined) { break s; } + /* */ if (!(imp.doc === ptrType$4.nil)) { $s = 200; continue; } + /* */ $s = 201; continue; + /* if (!(imp.doc === ptrType$4.nil)) { */ case 200: + _r$62 = ctxt[0].saveCgo(filename, p[0], imp.doc); /* */ $s = 202; case 202: if($c) { $c = false; _r$62 = _r$62.$blk(); } if (_r$62 && _r$62.$blk !== undefined) { break s; } err$4 = _r$62; - /* */ if (!($interfaceIsEqual(err$4, $ifaceNil))) { $s = 200; continue; } - /* */ $s = 201; continue; - /* if (!($interfaceIsEqual(err$4, $ifaceNil))) { */ case 200: - $r = badGoFile(name, err$4); /* */ $s = 202; case 202: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 201: - /* } */ case 198: - /* } */ case 192: + /* */ if (!($interfaceIsEqual(err$4, $ifaceNil))) { $s = 203; continue; } + /* */ $s = 204; continue; + /* if (!($interfaceIsEqual(err$4, $ifaceNil))) { */ case 203: + $r = badGoFile(name, err$4); /* */ $s = 205; case 205: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 204: + /* } */ case 201: + /* } */ case 195: _i$7++; - $s = 189; continue; - case 190: - fileList = ptrType$7.nil; + $s = 192; continue; + case 193: + fileList = ptrType$8.nil; _tmp$4 = false; _tmp$5 = false; importMap = _tmp$4; embedMap = _tmp$5; + directives = ptrType$10.nil; if (isCgo) { _key = "cgo"; (allTags || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: true }); if (ctxt[0].CgoEnabled) { - fileList = (p[0].$ptr_CgoFiles || (p[0].$ptr_CgoFiles = new ptrType$7(function() { return this.$target.CgoFiles; }, function($v) { this.$target.CgoFiles = $v; }, p[0]))); + fileList = (p[0] === ptrType$5.nil && $throwNilPointerError(), (p[0].$ptr_CgoFiles || (p[0].$ptr_CgoFiles = new ptrType$8(function() { return this.$target.CgoFiles; }, function($v) { this.$target.CgoFiles = $v; }, p[0])))); importMap = importPos; embedMap = embedPos; + directives = (p[0] === ptrType$5.nil && $throwNilPointerError(), (p[0].$ptr_Directives || (p[0].$ptr_Directives = new ptrType$10(function() { return this.$target.Directives; }, function($v) { this.$target.Directives = $v; }, p[0])))); } else { - fileList = (p[0].$ptr_IgnoredGoFiles || (p[0].$ptr_IgnoredGoFiles = new ptrType$7(function() { return this.$target.IgnoredGoFiles; }, function($v) { this.$target.IgnoredGoFiles = $v; }, p[0]))); + fileList = (p[0] === ptrType$5.nil && $throwNilPointerError(), (p[0].$ptr_IgnoredGoFiles || (p[0].$ptr_IgnoredGoFiles = new ptrType$8(function() { return this.$target.IgnoredGoFiles; }, function($v) { this.$target.IgnoredGoFiles = $v; }, p[0])))); } } else if (isXTest) { - fileList = (p[0].$ptr_XTestGoFiles || (p[0].$ptr_XTestGoFiles = new ptrType$7(function() { return this.$target.XTestGoFiles; }, function($v) { this.$target.XTestGoFiles = $v; }, p[0]))); + fileList = (p[0] === ptrType$5.nil && $throwNilPointerError(), (p[0].$ptr_XTestGoFiles || (p[0].$ptr_XTestGoFiles = new ptrType$8(function() { return this.$target.XTestGoFiles; }, function($v) { this.$target.XTestGoFiles = $v; }, p[0])))); importMap = xTestImportPos; embedMap = xTestEmbedPos; + directives = (p[0] === ptrType$5.nil && $throwNilPointerError(), (p[0].$ptr_XTestDirectives || (p[0].$ptr_XTestDirectives = new ptrType$10(function() { return this.$target.XTestDirectives; }, function($v) { this.$target.XTestDirectives = $v; }, p[0])))); } else if (isTest) { - fileList = (p[0].$ptr_TestGoFiles || (p[0].$ptr_TestGoFiles = new ptrType$7(function() { return this.$target.TestGoFiles; }, function($v) { this.$target.TestGoFiles = $v; }, p[0]))); + fileList = (p[0] === ptrType$5.nil && $throwNilPointerError(), (p[0].$ptr_TestGoFiles || (p[0].$ptr_TestGoFiles = new ptrType$8(function() { return this.$target.TestGoFiles; }, function($v) { this.$target.TestGoFiles = $v; }, p[0])))); importMap = testImportPos; embedMap = testEmbedPos; + directives = (p[0] === ptrType$5.nil && $throwNilPointerError(), (p[0].$ptr_TestDirectives || (p[0].$ptr_TestDirectives = new ptrType$10(function() { return this.$target.TestDirectives; }, function($v) { this.$target.TestDirectives = $v; }, p[0])))); } else { - fileList = (p[0].$ptr_GoFiles || (p[0].$ptr_GoFiles = new ptrType$7(function() { return this.$target.GoFiles; }, function($v) { this.$target.GoFiles = $v; }, p[0]))); + fileList = (p[0] === ptrType$5.nil && $throwNilPointerError(), (p[0].$ptr_GoFiles || (p[0].$ptr_GoFiles = new ptrType$8(function() { return this.$target.GoFiles; }, function($v) { this.$target.GoFiles = $v; }, p[0])))); importMap = importPos; embedMap = embedPos; + directives = (p[0] === ptrType$5.nil && $throwNilPointerError(), (p[0].$ptr_Directives || (p[0].$ptr_Directives = new ptrType$10(function() { return this.$target.Directives; }, function($v) { this.$target.Directives = $v; }, p[0])))); } fileList.$set($append(fileList.$get(), name)); - /* */ if (!(importMap === false)) { $s = 203; continue; } - /* */ $s = 204; continue; - /* if (!(importMap === false)) { */ case 203: + /* */ if (!(importMap === false)) { $s = 206; continue; } + /* */ $s = 207; continue; + /* if (!(importMap === false)) { */ case 206: _ref$8 = info.imports; _i$8 = 0; - /* while (true) { */ case 205: - /* if (!(_i$8 < _ref$8.$length)) { break; } */ if(!(_i$8 < _ref$8.$length)) { $s = 206; continue; } + /* while (true) { */ case 208: + /* if (!(_i$8 < _ref$8.$length)) { break; } */ if(!(_i$8 < _ref$8.$length)) { $s = 209; continue; } imp$1 = $clone(((_i$8 < 0 || _i$8 >= _ref$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$8.$array[_ref$8.$offset + _i$8]), fileImport); - _r$63 = fset.Position(imp$1.pos); /* */ $s = 207; case 207: if($c) { $c = false; _r$63 = _r$63.$blk(); } if (_r$63 && _r$63.$blk !== undefined) { break s; } - _key$1 = imp$1.path; (importMap || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$1), { k: _key$1, v: $append((_entry = $mapIndex(importMap,$String.keyFor(imp$1.path)), _entry !== undefined ? _entry.v : sliceType$6.nil), _r$63) }); + _r$63 = fset.Position(imp$1.pos); /* */ $s = 210; case 210: if($c) { $c = false; _r$63 = _r$63.$blk(); } if (_r$63 && _r$63.$blk !== undefined) { break s; } + _key$1 = imp$1.path; (importMap || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$1), { k: _key$1, v: $append((_entry = $mapIndex(importMap,$String.keyFor(imp$1.path)), _entry !== undefined ? _entry.v : sliceType$7.nil), _r$63) }); _i$8++; - $s = 205; continue; - case 206: - /* } */ case 204: + $s = 208; continue; + case 209: + /* } */ case 207: if (!(embedMap === false)) { _ref$9 = info.embeds; _i$9 = 0; while (true) { if (!(_i$9 < _ref$9.$length)) { break; } emb = $clone(((_i$9 < 0 || _i$9 >= _ref$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$9.$array[_ref$9.$offset + _i$9]), fileEmbed); - _key$2 = emb.pattern; (embedMap || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$2), { k: _key$2, v: $append((_entry$1 = $mapIndex(embedMap,$String.keyFor(emb.pattern)), _entry$1 !== undefined ? _entry$1.v : sliceType$6.nil), emb.pos) }); + _key$2 = emb.pattern; (embedMap || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$2), { k: _key$2, v: $append((_entry$1 = $mapIndex(embedMap,$String.keyFor(emb.pattern)), _entry$1 !== undefined ? _entry$1.v : sliceType$7.nil), emb.pos) }); _i$9++; } } + if (!(directives === ptrType$10.nil)) { + directives.$set($appendSlice(directives.$get(), info.directives)); + } _i$6++; - $s = 148; continue; - case 149: + $s = 151; continue; + case 152: _ref$10 = allTags; _i$10 = 0; _keys = _ref$10 ? _ref$10.keys() : undefined; @@ -117084,41 +118386,41 @@ $packages["go/build"] = (function() { p[0].AllTags = $append(p[0].AllTags, tag); _i$10++; } - $r = sort.Strings(p[0].AllTags); /* */ $s = 208; case 208: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$64 = cleanDecls(embedPos); /* */ $s = 209; case 209: if($c) { $c = false; _r$64 = _r$64.$blk(); } if (_r$64 && _r$64.$blk !== undefined) { break s; } + $r = sort.Strings(p[0].AllTags); /* */ $s = 211; case 211: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$64 = cleanDecls(embedPos); /* */ $s = 212; case 212: if($c) { $c = false; _r$64 = _r$64.$blk(); } if (_r$64 && _r$64.$blk !== undefined) { break s; } _tuple$7 = _r$64; p[0].EmbedPatterns = _tuple$7[0]; p[0].EmbedPatternPos = _tuple$7[1]; - _r$65 = cleanDecls(testEmbedPos); /* */ $s = 210; case 210: if($c) { $c = false; _r$65 = _r$65.$blk(); } if (_r$65 && _r$65.$blk !== undefined) { break s; } + _r$65 = cleanDecls(testEmbedPos); /* */ $s = 213; case 213: if($c) { $c = false; _r$65 = _r$65.$blk(); } if (_r$65 && _r$65.$blk !== undefined) { break s; } _tuple$8 = _r$65; p[0].TestEmbedPatterns = _tuple$8[0]; p[0].TestEmbedPatternPos = _tuple$8[1]; - _r$66 = cleanDecls(xTestEmbedPos); /* */ $s = 211; case 211: if($c) { $c = false; _r$66 = _r$66.$blk(); } if (_r$66 && _r$66.$blk !== undefined) { break s; } + _r$66 = cleanDecls(xTestEmbedPos); /* */ $s = 214; case 214: if($c) { $c = false; _r$66 = _r$66.$blk(); } if (_r$66 && _r$66.$blk !== undefined) { break s; } _tuple$9 = _r$66; p[0].XTestEmbedPatterns = _tuple$9[0]; p[0].XTestEmbedPatternPos = _tuple$9[1]; - _r$67 = cleanDecls(importPos); /* */ $s = 212; case 212: if($c) { $c = false; _r$67 = _r$67.$blk(); } if (_r$67 && _r$67.$blk !== undefined) { break s; } + _r$67 = cleanDecls(importPos); /* */ $s = 215; case 215: if($c) { $c = false; _r$67 = _r$67.$blk(); } if (_r$67 && _r$67.$blk !== undefined) { break s; } _tuple$10 = _r$67; p[0].Imports = _tuple$10[0]; p[0].ImportPos = _tuple$10[1]; - _r$68 = cleanDecls(testImportPos); /* */ $s = 213; case 213: if($c) { $c = false; _r$68 = _r$68.$blk(); } if (_r$68 && _r$68.$blk !== undefined) { break s; } + _r$68 = cleanDecls(testImportPos); /* */ $s = 216; case 216: if($c) { $c = false; _r$68 = _r$68.$blk(); } if (_r$68 && _r$68.$blk !== undefined) { break s; } _tuple$11 = _r$68; p[0].TestImports = _tuple$11[0]; p[0].TestImportPos = _tuple$11[1]; - _r$69 = cleanDecls(xTestImportPos); /* */ $s = 214; case 214: if($c) { $c = false; _r$69 = _r$69.$blk(); } if (_r$69 && _r$69.$blk !== undefined) { break s; } + _r$69 = cleanDecls(xTestImportPos); /* */ $s = 217; case 217: if($c) { $c = false; _r$69 = _r$69.$blk(); } if (_r$69 && _r$69.$blk !== undefined) { break s; } _tuple$12 = _r$69; p[0].XTestImports = _tuple$12[0]; p[0].XTestImportPos = _tuple$12[1]; - /* */ if (p[0].CgoFiles.$length > 0) { $s = 215; continue; } - /* */ $s = 216; continue; - /* if (p[0].CgoFiles.$length > 0) { */ case 215: + /* */ if (p[0].CgoFiles.$length > 0) { $s = 218; continue; } + /* */ $s = 219; continue; + /* if (p[0].CgoFiles.$length > 0) { */ case 218: p[0].SFiles = $appendSlice(p[0].SFiles, Sfiles); - $r = sort.Strings(p[0].SFiles); /* */ $s = 218; case 218: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 217; continue; - /* } else { */ case 216: + $r = sort.Strings(p[0].SFiles); /* */ $s = 221; case 221: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 220; continue; + /* } else { */ case 219: p[0].IgnoredOtherFiles = $appendSlice(p[0].IgnoredOtherFiles, Sfiles); - $r = sort.Strings(p[0].IgnoredOtherFiles); /* */ $s = 219; case 219: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 217: + $r = sort.Strings(p[0].IgnoredOtherFiles); /* */ $s = 222; case 222: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 220: if (!($interfaceIsEqual(badGoError[0], $ifaceNil))) { $s = -1; return [p[0], badGoError[0]]; } @@ -117126,31 +118428,31 @@ $packages["go/build"] = (function() { $s = -1; return [p[0], new NoGoError.ptr(p[0].Dir)]; } $s = -1; return [p[0], pkgerr]; - /* */ } return; } var $f = {$blk: Import$1, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, Sfiles, _1, _3, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _entry, _entry$1, _entry$2, _i, _i$1, _i$10, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _i$8, _i$9, _key, _key$1, _key$2, _key$3, _keys, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _r$5, _r$50, _r$51, _r$52, _r$53, _r$54, _r$55, _r$56, _r$57, _r$58, _r$59, _r$6, _r$60, _r$61, _r$62, _r$63, _r$64, _r$65, _r$66, _r$67, _r$68, _r$69, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$10, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _ref$9, _size, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, _v$2, _v$3, _v$4, _v$5, _v$6, _v$7, _v$8, all, allTags, badGoError, badGoFile, badGoFiles, binaryOnly, com, ctxt, d, data, dir, dir$1, dir$2, dir$3, dir$4, dir$5, dir$6, dirs, earlyRoot, emb, embedMap, embedPos, err, err$1, err$2, err$3, err$4, ext, fileList, filename, firstCommentFile, firstFile, format, fset, gopath$1, gorootFirst, i, imp, imp$1, importMap, importPos, inTestdata, info, isCgo, isDir$1, isDir$2, isDir$3, isTest, isXTest, line, list, mode, name, ok, ok$1, p, path$1, paths, pkg, pkga, pkgerr, pkgtargetroot, qcom, root, root$1, root$2, root$3, rootsrc, searchVendor, setPkga, srcDir, sub, sub$1, suffix, tag, testEmbedPos, testImportPos, tried, xTestEmbedPos, xTestImportPos, $s};return $f; + /* */ } return; } var $f = {$blk: Import$1, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, Sfiles, _1, _3, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _entry, _entry$1, _entry$2, _i, _i$1, _i$10, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _i$8, _i$9, _key, _key$1, _key$2, _key$3, _keys, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _r$5, _r$50, _r$51, _r$52, _r$53, _r$54, _r$55, _r$56, _r$57, _r$58, _r$59, _r$6, _r$60, _r$61, _r$62, _r$63, _r$64, _r$65, _r$66, _r$67, _r$68, _r$69, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$10, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _ref$9, _size, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, _v$2, _v$3, _v$4, _v$5, _v$6, _v$7, _v$8, all, allTags, badGoError, badGoFile, badGoFiles, binaryOnly, com, ctxt, d, data, dir, dir$1, dir$2, dir$3, dir$4, dir$5, dir$6, directives, dirs, earlyRoot, emb, embedMap, embedPos, err, err$1, err$2, err$3, err$4, ext, fileList, filename, firstCommentFile, firstFile, format, fset, gopath$1, gorootFirst, i, imp, imp$1, importMap, importPos, inTestdata, info, isCgo, isDir$1, isDir$2, isDir$3, isTest, isXTest, line, list, mode, name, ok, ok$1, p, path$1, paths, pkg, pkga, pkgerr, pkgtargetroot, qcom, root, root$1, root$2, root$3, rootsrc, searchVendor, setPkga, srcDir, sub, sub$1, suffix, tag, testEmbedPos, testImportPos, tried, xTestEmbedPos, xTestImportPos, $s};return $f; }; fileListForExt = function fileListForExt$1(p, ext) { var _1, ext, p; _1 = ext; if (_1 === (".c")) { - return (p.$ptr_CFiles || (p.$ptr_CFiles = new ptrType$7(function() { return this.$target.CFiles; }, function($v) { this.$target.CFiles = $v; }, p))); + return (p === ptrType$5.nil && $throwNilPointerError(), (p.$ptr_CFiles || (p.$ptr_CFiles = new ptrType$8(function() { return this.$target.CFiles; }, function($v) { this.$target.CFiles = $v; }, p)))); } else if (_1 === (".cc") || _1 === (".cpp") || _1 === (".cxx")) { - return (p.$ptr_CXXFiles || (p.$ptr_CXXFiles = new ptrType$7(function() { return this.$target.CXXFiles; }, function($v) { this.$target.CXXFiles = $v; }, p))); + return (p === ptrType$5.nil && $throwNilPointerError(), (p.$ptr_CXXFiles || (p.$ptr_CXXFiles = new ptrType$8(function() { return this.$target.CXXFiles; }, function($v) { this.$target.CXXFiles = $v; }, p)))); } else if (_1 === (".m")) { - return (p.$ptr_MFiles || (p.$ptr_MFiles = new ptrType$7(function() { return this.$target.MFiles; }, function($v) { this.$target.MFiles = $v; }, p))); + return (p === ptrType$5.nil && $throwNilPointerError(), (p.$ptr_MFiles || (p.$ptr_MFiles = new ptrType$8(function() { return this.$target.MFiles; }, function($v) { this.$target.MFiles = $v; }, p)))); } else if (_1 === (".h") || _1 === (".hh") || _1 === (".hpp") || _1 === (".hxx")) { - return (p.$ptr_HFiles || (p.$ptr_HFiles = new ptrType$7(function() { return this.$target.HFiles; }, function($v) { this.$target.HFiles = $v; }, p))); + return (p === ptrType$5.nil && $throwNilPointerError(), (p.$ptr_HFiles || (p.$ptr_HFiles = new ptrType$8(function() { return this.$target.HFiles; }, function($v) { this.$target.HFiles = $v; }, p)))); } else if (_1 === (".f") || _1 === (".F") || _1 === (".for") || _1 === (".f90")) { - return (p.$ptr_FFiles || (p.$ptr_FFiles = new ptrType$7(function() { return this.$target.FFiles; }, function($v) { this.$target.FFiles = $v; }, p))); + return (p === ptrType$5.nil && $throwNilPointerError(), (p.$ptr_FFiles || (p.$ptr_FFiles = new ptrType$8(function() { return this.$target.FFiles; }, function($v) { this.$target.FFiles = $v; }, p)))); } else if (_1 === (".s") || _1 === (".S") || _1 === (".sx")) { - return (p.$ptr_SFiles || (p.$ptr_SFiles = new ptrType$7(function() { return this.$target.SFiles; }, function($v) { this.$target.SFiles = $v; }, p))); + return (p === ptrType$5.nil && $throwNilPointerError(), (p.$ptr_SFiles || (p.$ptr_SFiles = new ptrType$8(function() { return this.$target.SFiles; }, function($v) { this.$target.SFiles = $v; }, p)))); } else if (_1 === (".swig")) { - return (p.$ptr_SwigFiles || (p.$ptr_SwigFiles = new ptrType$7(function() { return this.$target.SwigFiles; }, function($v) { this.$target.SwigFiles = $v; }, p))); + return (p === ptrType$5.nil && $throwNilPointerError(), (p.$ptr_SwigFiles || (p.$ptr_SwigFiles = new ptrType$8(function() { return this.$target.SwigFiles; }, function($v) { this.$target.SwigFiles = $v; }, p)))); } else if (_1 === (".swigcxx")) { - return (p.$ptr_SwigCXXFiles || (p.$ptr_SwigCXXFiles = new ptrType$7(function() { return this.$target.SwigCXXFiles; }, function($v) { this.$target.SwigCXXFiles = $v; }, p))); + return (p === ptrType$5.nil && $throwNilPointerError(), (p.$ptr_SwigCXXFiles || (p.$ptr_SwigCXXFiles = new ptrType$8(function() { return this.$target.SwigCXXFiles; }, function($v) { this.$target.SwigCXXFiles = $v; }, p)))); } else if (_1 === (".syso")) { - return (p.$ptr_SysoFiles || (p.$ptr_SysoFiles = new ptrType$7(function() { return this.$target.SysoFiles; }, function($v) { this.$target.SysoFiles = $v; }, p))); + return (p === ptrType$5.nil && $throwNilPointerError(), (p.$ptr_SysoFiles || (p.$ptr_SysoFiles = new ptrType$8(function() { return this.$target.SysoFiles; }, function($v) { this.$target.SysoFiles = $v; }, p)))); } - return ptrType$7.nil; + return ptrType$8.nil; }; $ptrType(Context).prototype.importGo = function importGo(p, path$1, srcDir, mode) { var {$24r, $24r$1, $24r$2, _1, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, absSrcDir, buf, cgo, cmd, ctxt, d, dir, dir$1, err, err$1, err$2, err$3, err$4, errStr, f, f$1, go111Module, goCmd, mode, ok, p, parent, path$1, srcDir, stderr, stdout, $s, $r, $c} = $restore(this, {p, path$1, srcDir, mode}); @@ -117181,7 +118483,7 @@ $packages["go/build"] = (function() { absSrcDir = srcDir; $s = 7; continue; /* } else if (!(ctxt.Dir === "")) { */ case 5: - _r$2 = fmt.Errorf("go/build: Dir is non-empty, so relative srcDir is not allowed: %v", new sliceType$2([new $String(srcDir)])); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2 = fmt.Errorf("go/build: Dir is non-empty, so relative srcDir is not allowed: %v", new sliceType$3([new $String(srcDir)])); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $24r = _r$2; $s = 9; case 9: return $24r; /* } else { */ case 6: @@ -117243,7 +118545,7 @@ $packages["go/build"] = (function() { /* */ if ($interfaceIsEqual(err$2, $ifaceNil)) { $s = 27; continue; } /* */ $s = 28; continue; /* if ($interfaceIsEqual(err$2, $ifaceNil)) { */ case 27: - buf = $makeSlice(sliceType$1, 100); + buf = $makeSlice(sliceType$2, 100); _r$11 = f.Read(buf); /* */ $s = 29; case 29: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } _tuple$5 = _r$11; err$3 = _tuple$5[1]; @@ -117267,8 +118569,8 @@ $packages["go/build"] = (function() { if (!(ctxt.Dir === "")) { cmd.Dir = ctxt.Dir; } - _tmp = new strings.Builder.ptr(ptrType$9.nil, sliceType$1.nil); - _tmp$1 = new strings.Builder.ptr(ptrType$9.nil, sliceType$1.nil); + _tmp = new strings.Builder.ptr(ptrType$11.nil, sliceType$2.nil); + _tmp$1 = new strings.Builder.ptr(ptrType$11.nil, sliceType$2.nil); stdout[0] = $clone(_tmp, strings.Builder); stderr[0] = $clone(_tmp$1, strings.Builder); cmd.Stdout = stdout[0]; @@ -117284,7 +118586,7 @@ $packages["go/build"] = (function() { /* */ if (!($interfaceIsEqual(err$4, $ifaceNil))) { $s = 34; continue; } /* */ $s = 35; continue; /* if (!($interfaceIsEqual(err$4, $ifaceNil))) { */ case 34: - _r$16 = fmt.Errorf("go/build: go list %s: %v\n%s\n", new sliceType$2([new $String(path$1), err$4, new $String(stderr[0].String())])); /* */ $s = 36; case 36: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + _r$16 = fmt.Errorf("go/build: go list %s: %v\n%s\n", new sliceType$3([new $String(path$1), err$4, new $String(stderr[0].String())])); /* */ $s = 36; case 36: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } $24r$1 = _r$16; $s = 37; case 37: return $24r$1; /* } */ case 35: @@ -117292,7 +118594,7 @@ $packages["go/build"] = (function() { /* */ if (!((f$1.$length === 5))) { $s = 38; continue; } /* */ $s = 39; continue; /* if (!((f$1.$length === 5))) { */ case 38: - _r$17 = fmt.Errorf("go/build: importGo %s: unexpected output:\n%s\n", new sliceType$2([new $String(path$1), new $String(stdout[0].String())])); /* */ $s = 40; case 40: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + _r$17 = fmt.Errorf("go/build: importGo %s: unexpected output:\n%s\n", new sliceType$3([new $String(path$1), new $String(stdout[0].String())])); /* */ $s = 40; case 40: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } $24r$2 = _r$17; $s = 41; case 41: return $24r$2; /* } */ case 39: @@ -117375,7 +118677,7 @@ $packages["go/build"] = (function() { if (!(data.$length > 0 && (((0 >= data.$length ? ($throwRuntimeError("index out of range"), undefined) : data.$array[data.$offset + 0]) === 32) || ((0 >= data.$length ? ($throwRuntimeError("index out of range"), undefined) : data.$array[data.$offset + 0]) === 9) || ((0 >= data.$length ? ($throwRuntimeError("index out of range"), undefined) : data.$array[data.$offset + 0]) === 13)))) { break; } data = $subslice(data, 1); } - comment = sliceType$1.nil; + comment = sliceType$2.nil; if (bytes.HasPrefix(data, slashSlash)) { _tuple$2 = bytes.Cut($subslice(data, 2), newline); comment = _tuple$2[0]; @@ -117433,7 +118735,7 @@ $packages["go/build"] = (function() { if (bytes.HasPrefix(data, slashSlash)) { i = bytes.Index(data, newline); if (i < 0) { - return sliceType$1.nil; + return sliceType$2.nil; } data = $subslice(data, (i + 1 >> 0)); continue; @@ -117442,7 +118744,7 @@ $packages["go/build"] = (function() { data = $subslice(data, 2); i$1 = bytes.Index(data, starSlash); if (i$1 < 0) { - return sliceType$1.nil; + return sliceType$2.nil; } data = $subslice(data, (i$1 + 2 >> 0)); continue; @@ -117454,8 +118756,8 @@ $packages["go/build"] = (function() { }; parseWord = function parseWord$1(data) { var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, data, r, rest, size, word; - word = sliceType$1.nil; - rest = sliceType$1.nil; + word = sliceType$2.nil; + rest = sliceType$2.nil; data = skipSpaceOrComment(data); rest = data; while (true) { @@ -117470,8 +118772,8 @@ $packages["go/build"] = (function() { } word = $subslice(data, 0, (data.$length - rest.$length >> 0)); if (word.$length === 0) { - _tmp = sliceType$1.nil; - _tmp$1 = sliceType$1.nil; + _tmp = sliceType$2.nil; + _tmp$1 = sliceType$2.nil; word = _tmp; rest = _tmp$1; return [word, rest]; @@ -117488,11 +118790,11 @@ $packages["go/build"] = (function() { match = false; err = $ifaceNil; ctxt = this; - _r$1 = ctxt.matchFile(dir, name, false, ptrType$5.nil, ptrType$1.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1 = ctxt.matchFile(dir, name, false, ptrType$6.nil, ptrType$1.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple = _r$1; info = _tuple[0]; err = _tuple[1]; - _tmp = !(info === ptrType$6.nil); + _tmp = !(info === ptrType$7.nil); _tmp$1 = err; match = _tmp; err = _tmp$1; @@ -117504,21 +118806,21 @@ $packages["go/build"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: ctxt = this; if (strings.HasPrefix(name, "_") || strings.HasPrefix(name, ".")) { - $s = -1; return [ptrType$6.nil, $ifaceNil]; + $s = -1; return [ptrType$7.nil, $ifaceNil]; } i = strings.LastIndex(name, "."); if (i < 0) { i = name.length; } ext = $substring(name, i); - if (!(ext === ".go") && fileListForExt(dummyPkg, ext) === ptrType$7.nil) { - $s = -1; return [ptrType$6.nil, $ifaceNil]; + if (!(ext === ".go") && fileListForExt(dummyPkg, ext) === ptrType$8.nil) { + $s = -1; return [ptrType$7.nil, $ifaceNil]; } if (!ctxt.goodOSArchFile(name, allTags) && !ctxt.UseAllFiles) { - $s = -1; return [ptrType$6.nil, $ifaceNil]; + $s = -1; return [ptrType$7.nil, $ifaceNil]; } _r$1 = ctxt.joinPath(new sliceType([dir, name])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - info = new fileInfo.ptr(_r$1, sliceType$1.nil, fset, ptrType$8.nil, $ifaceNil, sliceType$3.nil, sliceType$4.nil); + info = new fileInfo.ptr(_r$1, sliceType$2.nil, fset, ptrType$9.nil, $ifaceNil, sliceType$4.nil, sliceType$5.nil, sliceType$1.nil); if (ext === ".syso") { $s = -1; return [info, $ifaceNil]; } @@ -117527,7 +118829,7 @@ $packages["go/build"] = (function() { f = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [ptrType$6.nil, err]; + $s = -1; return [ptrType$7.nil, err]; } /* */ if (strings.HasSuffix(name, ".go")) { $s = 3; continue; } /* */ $s = 4; continue; @@ -117535,11 +118837,11 @@ $packages["go/build"] = (function() { _r$3 = readGoInfo(f, info); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } err = _r$3; if (strings.HasSuffix(name, "_test.go")) { - binaryOnly = ptrType$5.nil; + binaryOnly = ptrType$6.nil; } $s = 5; continue; /* } else { */ case 4: - binaryOnly = ptrType$5.nil; + binaryOnly = ptrType$6.nil; _r$4 = readComments(f); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _tuple$1 = _r$4; info.header = _tuple$1[0]; @@ -117550,7 +118852,7 @@ $packages["go/build"] = (function() { /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 9; continue; } /* */ $s = 10; continue; /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 9: - _r$6 = fmt.Errorf("read %s: %v", new sliceType$2([new $String(info.name), err])); /* */ $s = 11; case 11: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$6 = fmt.Errorf("read %s: %v", new sliceType$3([new $String(info.name), err])); /* */ $s = 11; case 11: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } $24r = [info, _r$6]; $s = 12; case 12: return $24r; /* } */ case 10: @@ -117562,14 +118864,14 @@ $packages["go/build"] = (function() { /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 14; continue; } /* */ $s = 15; continue; /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 14: - _r$8 = fmt.Errorf("%s: %v", new sliceType$2([new $String(name), err])); /* */ $s = 16; case 16: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - $24r$1 = [ptrType$6.nil, _r$8]; + _r$8 = fmt.Errorf("%s: %v", new sliceType$3([new $String(name), err])); /* */ $s = 16; case 16: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + $24r$1 = [ptrType$7.nil, _r$8]; $s = 17; case 17: return $24r$1; /* } */ case 15: if (!ok && !ctxt.UseAllFiles) { - $s = -1; return [ptrType$6.nil, $ifaceNil]; + $s = -1; return [ptrType$7.nil, $ifaceNil]; } - if (!(binaryOnly === ptrType$5.nil) && sawBinaryOnly) { + if (!(binaryOnly === ptrType$6.nil) && sawBinaryOnly) { binaryOnly.$set(true); } $s = -1; return [info, $ifaceNil]; @@ -117637,9 +118939,9 @@ $packages["go/build"] = (function() { err = _tmp$2; $s = -1; return [shouldBuild$1, binaryOnly, err]; } - /* */ if (!(goBuild === sliceType$1.nil)) { $s = 3; continue; } + /* */ if (!(goBuild === sliceType$2.nil)) { $s = 3; continue; } /* */ $s = 4; continue; - /* if (!(goBuild === sliceType$1.nil)) { */ case 3: + /* if (!(goBuild === sliceType$2.nil)) { */ case 3: _r$2 = constraint.Parse(($bytesToString(goBuild))); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _tuple$1 = _r$2; x = _tuple$1[0]; @@ -117649,7 +118951,7 @@ $packages["go/build"] = (function() { /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 7: _tmp$3 = false; _tmp$4 = false; - _r$3 = fmt.Errorf("parsing //go:build line: %v", new sliceType$2([err$1])); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3 = fmt.Errorf("parsing //go:build line: %v", new sliceType$3([err$1])); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _tmp$5 = _r$3; shouldBuild$1 = _tmp$3; binaryOnly = _tmp$4; @@ -117717,8 +119019,8 @@ $packages["go/build"] = (function() { parseFileHeader = function parseFileHeader$1(content) { var {_r$1, _r$2, _r$3, _r$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _v, content, end, ended, err, goBuild, i, i$1, inSlashStar, line, p, sawBinaryOnly, trimmed, $s, $r, $c} = $restore(this, {content}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - trimmed = sliceType$1.nil; - goBuild = sliceType$1.nil; + trimmed = sliceType$2.nil; + goBuild = sliceType$2.nil; sawBinaryOnly = false; err = $ifaceNil; end = 0; @@ -117752,9 +119054,9 @@ $packages["go/build"] = (function() { /* */ if (_v) { $s = 4; continue; } /* */ $s = 5; continue; /* if (_v) { */ case 4: - if (!(goBuild === sliceType$1.nil)) { - _tmp$2 = sliceType$1.nil; - _tmp$3 = sliceType$1.nil; + if (!(goBuild === sliceType$2.nil)) { + _tmp$2 = sliceType$2.nil; + _tmp$3 = sliceType$2.nil; _tmp$4 = false; _tmp$5 = errMultipleGoBuild; trimmed = _tmp$2; @@ -117836,7 +119138,7 @@ $packages["go/build"] = (function() { /* */ if (!ok) { $s = 6; continue; } /* */ $s = 7; continue; /* if (!ok) { */ case 6: - _r$4 = fmt.Errorf("%s: invalid #cgo line: %s", new sliceType$2([new $String(filename), new $String(orig)])); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4 = fmt.Errorf("%s: invalid #cgo line: %s", new sliceType$3([new $String(filename), new $String(orig)])); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } $24r = _r$4; $s = 9; case 9: return $24r; /* } */ case 7: @@ -117845,7 +119147,7 @@ $packages["go/build"] = (function() { /* */ if (f.$length < 1) { $s = 11; continue; } /* */ $s = 12; continue; /* if (f.$length < 1) { */ case 11: - _r$6 = fmt.Errorf("%s: invalid #cgo line: %s", new sliceType$2([new $String(filename), new $String(orig)])); /* */ $s = 13; case 13: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$6 = fmt.Errorf("%s: invalid #cgo line: %s", new sliceType$3([new $String(filename), new $String(orig)])); /* */ $s = 13; case 13: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } $24r$1 = _r$6; $s = 14; case 14: return $24r$1; /* } */ case 12: @@ -117883,7 +119185,7 @@ $packages["go/build"] = (function() { /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 22; continue; } /* */ $s = 23; continue; /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 22: - _r$8 = fmt.Errorf("%s: invalid #cgo line: %s", new sliceType$2([new $String(filename), new $String(orig)])); /* */ $s = 24; case 24: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$8 = fmt.Errorf("%s: invalid #cgo line: %s", new sliceType$3([new $String(filename), new $String(orig)])); /* */ $s = 24; case 24: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } $24r$2 = _r$8; $s = 25; case 25: return $24r$2; /* } */ case 23: @@ -117899,7 +119201,7 @@ $packages["go/build"] = (function() { /* */ if (!ok) { $s = 28; continue; } /* */ $s = 29; continue; /* if (!ok) { */ case 28: - _r$9 = fmt.Errorf("%s: malformed #cgo argument: %s", new sliceType$2([new $String(filename), new $String(arg)])); /* */ $s = 30; case 30: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$9 = fmt.Errorf("%s: malformed #cgo argument: %s", new sliceType$3([new $String(filename), new $String(arg)])); /* */ $s = 30; case 30: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } $24r$3 = _r$9; $s = 31; case 31: return $24r$3; /* } */ case 29: @@ -117938,7 +119240,7 @@ $packages["go/build"] = (function() { di.CgoPkgConfig = $appendSlice(di.CgoPkgConfig, args); $s = 40; continue; /* } else { */ case 39: - _r$10 = fmt.Errorf("%s: invalid #cgo verb: %s", new sliceType$2([new $String(filename), new $String(orig)])); /* */ $s = 41; case 41: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$10 = fmt.Errorf("%s: invalid #cgo verb: %s", new sliceType$3([new $String(filename), new $String(orig)])); /* */ $s = 41; case 41: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } $24r$4 = _r$10; $s = 42; case 42: return $24r$4; /* } */ case 40: @@ -118017,7 +119319,7 @@ $packages["go/build"] = (function() { r = sliceType.nil; err = $ifaceNil; args = sliceType.nil; - arg = $makeSlice(sliceType$7, s.length); + arg = $makeSlice(sliceType$8, s.length); escaped = false; quoted = false; quote = 0; @@ -118198,17 +119500,18 @@ $packages["go/build"] = (function() { return path$1 === "." || path$1 === ".." || strings.HasPrefix(path$1, "./") || strings.HasPrefix(path$1, "../"); }; $pkg.IsLocalImport = IsLocalImport; - ptrType$10.methods = [{prop: "syntaxError", name: "syntaxError", pkg: "go/build", typ: $funcType([], [], false)}, {prop: "readByte", name: "readByte", pkg: "go/build", typ: $funcType([], [$Uint8], false)}, {prop: "readByteNoBuf", name: "readByteNoBuf", pkg: "go/build", typ: $funcType([], [$Uint8], false)}, {prop: "peekByte", name: "peekByte", pkg: "go/build", typ: $funcType([$Bool], [$Uint8], false)}, {prop: "nextByte", name: "nextByte", pkg: "go/build", typ: $funcType([$Bool], [$Uint8], false)}, {prop: "findEmbed", name: "findEmbed", pkg: "go/build", typ: $funcType([$Bool], [$Bool], false)}, {prop: "readKeyword", name: "readKeyword", pkg: "go/build", typ: $funcType([$String], [], false)}, {prop: "readIdent", name: "readIdent", pkg: "go/build", typ: $funcType([], [], false)}, {prop: "readString", name: "readString", pkg: "go/build", typ: $funcType([], [], false)}, {prop: "readImport", name: "readImport", pkg: "go/build", typ: $funcType([], [], false)}]; - ptrType$12.methods = [{prop: "joinPath", name: "joinPath", pkg: "go/build", typ: $funcType([sliceType], [$String], true)}, {prop: "splitPathList", name: "splitPathList", pkg: "go/build", typ: $funcType([$String], [sliceType], false)}, {prop: "isAbsPath", name: "isAbsPath", pkg: "go/build", typ: $funcType([$String], [$Bool], false)}, {prop: "isDir", name: "isDir", pkg: "go/build", typ: $funcType([$String], [$Bool], false)}, {prop: "hasSubdir", name: "hasSubdir", pkg: "go/build", typ: $funcType([$String, $String], [$String, $Bool], false)}, {prop: "readDir", name: "readDir", pkg: "go/build", typ: $funcType([$String], [sliceType$5, $error], false)}, {prop: "openFile", name: "openFile", pkg: "go/build", typ: $funcType([$String], [io.ReadCloser, $error], false)}, {prop: "isFile", name: "isFile", pkg: "go/build", typ: $funcType([$String], [$Bool], false)}, {prop: "gopath", name: "gopath", pkg: "go/build", typ: $funcType([], [sliceType], false)}, {prop: "SrcDirs", name: "SrcDirs", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "ImportDir", name: "ImportDir", pkg: "", typ: $funcType([$String, ImportMode], [ptrType$11, $error], false)}, {prop: "Import", name: "Import", pkg: "", typ: $funcType([$String, $String, ImportMode], [ptrType$11, $error], false)}, {prop: "importGo", name: "importGo", pkg: "go/build", typ: $funcType([ptrType$11, $String, $String, ImportMode], [$error], false)}, {prop: "MatchFile", name: "MatchFile", pkg: "", typ: $funcType([$String, $String], [$Bool, $error], false)}, {prop: "matchFile", name: "matchFile", pkg: "go/build", typ: $funcType([$String, $String, mapType, ptrType$5, ptrType$1], [ptrType$6, $error], false)}, {prop: "shouldBuild", name: "shouldBuild", pkg: "go/build", typ: $funcType([sliceType$1, mapType], [$Bool, $Bool, $error], false)}, {prop: "saveCgo", name: "saveCgo", pkg: "go/build", typ: $funcType([$String, ptrType$11, ptrType$4], [$error], false)}, {prop: "makePathsAbsolute", name: "makePathsAbsolute", pkg: "go/build", typ: $funcType([sliceType, $String], [], false)}, {prop: "matchAuto", name: "matchAuto", pkg: "go/build", typ: $funcType([$String, mapType], [$Bool], false)}, {prop: "eval$", name: "eval", pkg: "go/build", typ: $funcType([constraint.Expr, mapType], [$Bool], false)}, {prop: "matchTag", name: "matchTag", pkg: "go/build", typ: $funcType([$String, mapType], [$Bool], false)}, {prop: "goodOSArchFile", name: "goodOSArchFile", pkg: "go/build", typ: $funcType([$String, mapType], [$Bool], false)}]; - ptrType$11.methods = [{prop: "IsCommand", name: "IsCommand", pkg: "", typ: $funcType([], [$Bool], false)}]; - ptrType$13.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$12.methods = [{prop: "syntaxError", name: "syntaxError", pkg: "go/build", typ: $funcType([], [], false)}, {prop: "readByte", name: "readByte", pkg: "go/build", typ: $funcType([], [$Uint8], false)}, {prop: "readByteNoBuf", name: "readByteNoBuf", pkg: "go/build", typ: $funcType([], [$Uint8], false)}, {prop: "peekByte", name: "peekByte", pkg: "go/build", typ: $funcType([$Bool], [$Uint8], false)}, {prop: "nextByte", name: "nextByte", pkg: "go/build", typ: $funcType([$Bool], [$Uint8], false)}, {prop: "findEmbed", name: "findEmbed", pkg: "go/build", typ: $funcType([$Bool], [$Bool], false)}, {prop: "readKeyword", name: "readKeyword", pkg: "go/build", typ: $funcType([$String], [], false)}, {prop: "readIdent", name: "readIdent", pkg: "go/build", typ: $funcType([], [], false)}, {prop: "readString", name: "readString", pkg: "go/build", typ: $funcType([], [], false)}, {prop: "readImport", name: "readImport", pkg: "go/build", typ: $funcType([], [], false)}]; + ptrType$13.methods = [{prop: "joinPath", name: "joinPath", pkg: "go/build", typ: $funcType([sliceType], [$String], true)}, {prop: "splitPathList", name: "splitPathList", pkg: "go/build", typ: $funcType([$String], [sliceType], false)}, {prop: "isAbsPath", name: "isAbsPath", pkg: "go/build", typ: $funcType([$String], [$Bool], false)}, {prop: "isDir", name: "isDir", pkg: "go/build", typ: $funcType([$String], [$Bool], false)}, {prop: "hasSubdir", name: "hasSubdir", pkg: "go/build", typ: $funcType([$String, $String], [$String, $Bool], false)}, {prop: "readDir", name: "readDir", pkg: "go/build", typ: $funcType([$String], [sliceType$6, $error], false)}, {prop: "openFile", name: "openFile", pkg: "go/build", typ: $funcType([$String], [io.ReadCloser, $error], false)}, {prop: "isFile", name: "isFile", pkg: "go/build", typ: $funcType([$String], [$Bool], false)}, {prop: "gopath", name: "gopath", pkg: "go/build", typ: $funcType([], [sliceType], false)}, {prop: "SrcDirs", name: "SrcDirs", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "ImportDir", name: "ImportDir", pkg: "", typ: $funcType([$String, ImportMode], [ptrType$5, $error], false)}, {prop: "Import", name: "Import", pkg: "", typ: $funcType([$String, $String, ImportMode], [ptrType$5, $error], false)}, {prop: "importGo", name: "importGo", pkg: "go/build", typ: $funcType([ptrType$5, $String, $String, ImportMode], [$error], false)}, {prop: "MatchFile", name: "MatchFile", pkg: "", typ: $funcType([$String, $String], [$Bool, $error], false)}, {prop: "matchFile", name: "matchFile", pkg: "go/build", typ: $funcType([$String, $String, mapType, ptrType$6, ptrType$1], [ptrType$7, $error], false)}, {prop: "shouldBuild", name: "shouldBuild", pkg: "go/build", typ: $funcType([sliceType$2, mapType], [$Bool, $Bool, $error], false)}, {prop: "saveCgo", name: "saveCgo", pkg: "go/build", typ: $funcType([$String, ptrType$5, ptrType$4], [$error], false)}, {prop: "makePathsAbsolute", name: "makePathsAbsolute", pkg: "go/build", typ: $funcType([sliceType, $String], [], false)}, {prop: "matchAuto", name: "matchAuto", pkg: "go/build", typ: $funcType([$String, mapType], [$Bool], false)}, {prop: "eval$", name: "eval", pkg: "go/build", typ: $funcType([constraint.Expr, mapType], [$Bool], false)}, {prop: "matchTag", name: "matchTag", pkg: "go/build", typ: $funcType([$String, mapType], [$Bool], false)}, {prop: "goodOSArchFile", name: "goodOSArchFile", pkg: "go/build", typ: $funcType([$String, mapType], [$Bool], false)}]; + ptrType$5.methods = [{prop: "IsCommand", name: "IsCommand", pkg: "", typ: $funcType([], [$Bool], false)}]; ptrType$14.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; - importReader.init("go/build", [{prop: "b", name: "b", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "buf", name: "buf", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "peek", name: "peek", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "eof", name: "eof", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "nerr", name: "nerr", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Position, tag: ""}]); + ptrType$15.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + importReader.init("go/build", [{prop: "b", name: "b", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "buf", name: "buf", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "peek", name: "peek", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "eof", name: "eof", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "nerr", name: "nerr", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Position, tag: ""}]); Context.init("", [{prop: "GOARCH", name: "GOARCH", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "GOOS", name: "GOOS", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "GOROOT", name: "GOROOT", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "GOPATH", name: "GOPATH", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Dir", name: "Dir", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "CgoEnabled", name: "CgoEnabled", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "UseAllFiles", name: "UseAllFiles", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Compiler", name: "Compiler", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "BuildTags", name: "BuildTags", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "ToolTags", name: "ToolTags", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "ReleaseTags", name: "ReleaseTags", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "InstallSuffix", name: "InstallSuffix", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "JoinPath", name: "JoinPath", embedded: false, exported: true, typ: funcType, tag: ""}, {prop: "SplitPathList", name: "SplitPathList", embedded: false, exported: true, typ: funcType$1, tag: ""}, {prop: "IsAbsPath", name: "IsAbsPath", embedded: false, exported: true, typ: funcType$2, tag: ""}, {prop: "IsDir", name: "IsDir", embedded: false, exported: true, typ: funcType$2, tag: ""}, {prop: "HasSubdir", name: "HasSubdir", embedded: false, exported: true, typ: funcType$3, tag: ""}, {prop: "ReadDir", name: "ReadDir", embedded: false, exported: true, typ: funcType$4, tag: ""}, {prop: "OpenFile", name: "OpenFile", embedded: false, exported: true, typ: funcType$5, tag: ""}]); - Package.init("", [{prop: "Dir", name: "Dir", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "ImportComment", name: "ImportComment", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Doc", name: "Doc", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "ImportPath", name: "ImportPath", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Root", name: "Root", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "SrcRoot", name: "SrcRoot", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "PkgRoot", name: "PkgRoot", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "PkgTargetRoot", name: "PkgTargetRoot", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "BinDir", name: "BinDir", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Goroot", name: "Goroot", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "PkgObj", name: "PkgObj", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "AllTags", name: "AllTags", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "ConflictDir", name: "ConflictDir", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "BinaryOnly", name: "BinaryOnly", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "GoFiles", name: "GoFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "CgoFiles", name: "CgoFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "IgnoredGoFiles", name: "IgnoredGoFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "InvalidGoFiles", name: "InvalidGoFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "IgnoredOtherFiles", name: "IgnoredOtherFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "CFiles", name: "CFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "CXXFiles", name: "CXXFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "MFiles", name: "MFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "HFiles", name: "HFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "FFiles", name: "FFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "SFiles", name: "SFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "SwigFiles", name: "SwigFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "SwigCXXFiles", name: "SwigCXXFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "SysoFiles", name: "SysoFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "CgoCFLAGS", name: "CgoCFLAGS", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "CgoCPPFLAGS", name: "CgoCPPFLAGS", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "CgoCXXFLAGS", name: "CgoCXXFLAGS", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "CgoFFLAGS", name: "CgoFFLAGS", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "CgoLDFLAGS", name: "CgoLDFLAGS", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "CgoPkgConfig", name: "CgoPkgConfig", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "TestGoFiles", name: "TestGoFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "XTestGoFiles", name: "XTestGoFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "Imports", name: "Imports", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "ImportPos", name: "ImportPos", embedded: false, exported: true, typ: mapType$1, tag: ""}, {prop: "TestImports", name: "TestImports", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "TestImportPos", name: "TestImportPos", embedded: false, exported: true, typ: mapType$1, tag: ""}, {prop: "XTestImports", name: "XTestImports", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "XTestImportPos", name: "XTestImportPos", embedded: false, exported: true, typ: mapType$1, tag: ""}, {prop: "EmbedPatterns", name: "EmbedPatterns", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "EmbedPatternPos", name: "EmbedPatternPos", embedded: false, exported: true, typ: mapType$1, tag: ""}, {prop: "TestEmbedPatterns", name: "TestEmbedPatterns", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "TestEmbedPatternPos", name: "TestEmbedPatternPos", embedded: false, exported: true, typ: mapType$1, tag: ""}, {prop: "XTestEmbedPatterns", name: "XTestEmbedPatterns", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "XTestEmbedPatternPos", name: "XTestEmbedPatternPos", embedded: false, exported: true, typ: mapType$1, tag: ""}]); + Package.init("", [{prop: "Dir", name: "Dir", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "ImportComment", name: "ImportComment", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Doc", name: "Doc", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "ImportPath", name: "ImportPath", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Root", name: "Root", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "SrcRoot", name: "SrcRoot", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "PkgRoot", name: "PkgRoot", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "PkgTargetRoot", name: "PkgTargetRoot", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "BinDir", name: "BinDir", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Goroot", name: "Goroot", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "PkgObj", name: "PkgObj", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "AllTags", name: "AllTags", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "ConflictDir", name: "ConflictDir", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "BinaryOnly", name: "BinaryOnly", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "GoFiles", name: "GoFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "CgoFiles", name: "CgoFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "IgnoredGoFiles", name: "IgnoredGoFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "InvalidGoFiles", name: "InvalidGoFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "IgnoredOtherFiles", name: "IgnoredOtherFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "CFiles", name: "CFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "CXXFiles", name: "CXXFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "MFiles", name: "MFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "HFiles", name: "HFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "FFiles", name: "FFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "SFiles", name: "SFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "SwigFiles", name: "SwigFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "SwigCXXFiles", name: "SwigCXXFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "SysoFiles", name: "SysoFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "CgoCFLAGS", name: "CgoCFLAGS", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "CgoCPPFLAGS", name: "CgoCPPFLAGS", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "CgoCXXFLAGS", name: "CgoCXXFLAGS", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "CgoFFLAGS", name: "CgoFFLAGS", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "CgoLDFLAGS", name: "CgoLDFLAGS", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "CgoPkgConfig", name: "CgoPkgConfig", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "TestGoFiles", name: "TestGoFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "XTestGoFiles", name: "XTestGoFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "Directives", name: "Directives", embedded: false, exported: true, typ: sliceType$1, tag: ""}, {prop: "TestDirectives", name: "TestDirectives", embedded: false, exported: true, typ: sliceType$1, tag: ""}, {prop: "XTestDirectives", name: "XTestDirectives", embedded: false, exported: true, typ: sliceType$1, tag: ""}, {prop: "Imports", name: "Imports", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "ImportPos", name: "ImportPos", embedded: false, exported: true, typ: mapType$1, tag: ""}, {prop: "TestImports", name: "TestImports", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "TestImportPos", name: "TestImportPos", embedded: false, exported: true, typ: mapType$1, tag: ""}, {prop: "XTestImports", name: "XTestImports", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "XTestImportPos", name: "XTestImportPos", embedded: false, exported: true, typ: mapType$1, tag: ""}, {prop: "EmbedPatterns", name: "EmbedPatterns", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "EmbedPatternPos", name: "EmbedPatternPos", embedded: false, exported: true, typ: mapType$1, tag: ""}, {prop: "TestEmbedPatterns", name: "TestEmbedPatterns", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "TestEmbedPatternPos", name: "TestEmbedPatternPos", embedded: false, exported: true, typ: mapType$1, tag: ""}, {prop: "XTestEmbedPatterns", name: "XTestEmbedPatterns", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "XTestEmbedPatternPos", name: "XTestEmbedPatternPos", embedded: false, exported: true, typ: mapType$1, tag: ""}]); + Directive.init("", [{prop: "Text", name: "Text", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Pos", name: "Pos", embedded: false, exported: true, typ: token.Position, tag: ""}]); NoGoError.init("", [{prop: "Dir", name: "Dir", embedded: false, exported: true, typ: $String, tag: ""}]); MultiplePackageError.init("", [{prop: "Dir", name: "Dir", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Packages", name: "Packages", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "Files", name: "Files", embedded: false, exported: true, typ: sliceType, tag: ""}]); - fileInfo.init("go/build", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "header", name: "header", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "fset", name: "fset", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "parsed", name: "parsed", embedded: false, exported: false, typ: ptrType$8, tag: ""}, {prop: "parseErr", name: "parseErr", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "imports", name: "imports", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "embeds", name: "embeds", embedded: false, exported: false, typ: sliceType$4, tag: ""}]); + fileInfo.init("go/build", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "header", name: "header", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "fset", name: "fset", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "parsed", name: "parsed", embedded: false, exported: false, typ: ptrType$9, tag: ""}, {prop: "parseErr", name: "parseErr", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "imports", name: "imports", embedded: false, exported: false, typ: sliceType$4, tag: ""}, {prop: "embeds", name: "embeds", embedded: false, exported: false, typ: sliceType$5, tag: ""}, {prop: "directives", name: "directives", embedded: false, exported: false, typ: sliceType$1, tag: ""}]); fileImport.init("go/build", [{prop: "path", name: "path", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "doc", name: "doc", embedded: false, exported: false, typ: ptrType$4, tag: ""}]); fileEmbed.init("go/build", [{prop: "pattern", name: "pattern", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Position, tag: ""}]); }; @@ -118229,41 +119532,41 @@ $packages["go/build"] = (function() { $r = godebug.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = goroot.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = goversion.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = io.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = fs.$init(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = os.$init(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = exec.$init(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = path.$init(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = filepath.$init(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = runtime.$init(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = sort.$init(); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = strconv.$init(); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = strings.$init(); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = unicode.$init(); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = utf8.$init(); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = platform.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fs.$init(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = os.$init(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = exec.$init(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = path.$init(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = filepath.$init(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime.$init(); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sort.$init(); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unicode.$init(); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } defaultToolTags = sliceType.nil; defaultReleaseTags = sliceType.nil; - dummyPkg = new Package.ptr("", "", "", "", "", "", "", "", "", "", false, "", sliceType.nil, "", false, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, false, sliceType.nil, false, sliceType.nil, false, sliceType.nil, false, sliceType.nil, false, sliceType.nil, false); - cgoEnabled = $makeMap($String.keyFor, [{ k: "aix/ppc64", v: true }, { k: "android/386", v: true }, { k: "android/amd64", v: true }, { k: "android/arm", v: true }, { k: "android/arm64", v: true }, { k: "darwin/amd64", v: true }, { k: "darwin/arm64", v: true }, { k: "dragonfly/amd64", v: true }, { k: "freebsd/386", v: true }, { k: "freebsd/amd64", v: true }, { k: "freebsd/arm", v: true }, { k: "freebsd/arm64", v: true }, { k: "freebsd/riscv64", v: true }, { k: "illumos/amd64", v: true }, { k: "ios/amd64", v: true }, { k: "ios/arm64", v: true }, { k: "linux/386", v: true }, { k: "linux/amd64", v: true }, { k: "linux/arm", v: true }, { k: "linux/arm64", v: true }, { k: "linux/loong64", v: true }, { k: "linux/mips", v: true }, { k: "linux/mips64", v: true }, { k: "linux/mips64le", v: true }, { k: "linux/mipsle", v: true }, { k: "linux/ppc64le", v: true }, { k: "linux/riscv64", v: true }, { k: "linux/s390x", v: true }, { k: "linux/sparc64", v: true }, { k: "netbsd/386", v: true }, { k: "netbsd/amd64", v: true }, { k: "netbsd/arm", v: true }, { k: "netbsd/arm64", v: true }, { k: "openbsd/386", v: true }, { k: "openbsd/amd64", v: true }, { k: "openbsd/arm", v: true }, { k: "openbsd/arm64", v: true }, { k: "openbsd/mips64", v: true }, { k: "solaris/amd64", v: true }, { k: "windows/386", v: true }, { k: "windows/amd64", v: true }, { k: "windows/arm64", v: true }]); - knownOS = $makeMap($String.keyFor, [{ k: "aix", v: true }, { k: "android", v: true }, { k: "darwin", v: true }, { k: "dragonfly", v: true }, { k: "freebsd", v: true }, { k: "hurd", v: true }, { k: "illumos", v: true }, { k: "ios", v: true }, { k: "js", v: true }, { k: "linux", v: true }, { k: "nacl", v: true }, { k: "netbsd", v: true }, { k: "openbsd", v: true }, { k: "plan9", v: true }, { k: "solaris", v: true }, { k: "windows", v: true }, { k: "zos", v: true }]); + dummyPkg = new Package.ptr("", "", "", "", "", "", "", "", "", "", false, "", sliceType.nil, "", false, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType.nil, sliceType$1.nil, sliceType$1.nil, sliceType$1.nil, sliceType.nil, false, sliceType.nil, false, sliceType.nil, false, sliceType.nil, false, sliceType.nil, false, sliceType.nil, false); + knownOS = $makeMap($String.keyFor, [{ k: "aix", v: true }, { k: "android", v: true }, { k: "darwin", v: true }, { k: "dragonfly", v: true }, { k: "freebsd", v: true }, { k: "hurd", v: true }, { k: "illumos", v: true }, { k: "ios", v: true }, { k: "js", v: true }, { k: "linux", v: true }, { k: "nacl", v: true }, { k: "netbsd", v: true }, { k: "openbsd", v: true }, { k: "plan9", v: true }, { k: "solaris", v: true }, { k: "wasip1", v: true }, { k: "windows", v: true }, { k: "zos", v: true }]); unixOS = $makeMap($String.keyFor, [{ k: "aix", v: true }, { k: "android", v: true }, { k: "darwin", v: true }, { k: "dragonfly", v: true }, { k: "freebsd", v: true }, { k: "hurd", v: true }, { k: "illumos", v: true }, { k: "ios", v: true }, { k: "linux", v: true }, { k: "netbsd", v: true }, { k: "openbsd", v: true }, { k: "solaris", v: true }]); knownArch = $makeMap($String.keyFor, [{ k: "386", v: true }, { k: "amd64", v: true }, { k: "amd64p32", v: true }, { k: "arm", v: true }, { k: "armbe", v: true }, { k: "arm64", v: true }, { k: "arm64be", v: true }, { k: "loong64", v: true }, { k: "mips", v: true }, { k: "mipsle", v: true }, { k: "mips64", v: true }, { k: "mips64le", v: true }, { k: "mips64p32", v: true }, { k: "mips64p32le", v: true }, { k: "ppc", v: true }, { k: "ppc64", v: true }, { k: "ppc64le", v: true }, { k: "riscv", v: true }, { k: "riscv64", v: true }, { k: "s390", v: true }, { k: "s390x", v: true }, { k: "sparc", v: true }, { k: "sparc64", v: true }, { k: "wasm", v: true }]); - bom = new sliceType$1([239, 187, 191]); + bom = new sliceType$2([239, 187, 191]); errSyntax = errors.New("syntax error"); errNUL = errors.New("unexpected NUL in input"); - goEmbed = (new sliceType$1($stringToBytes("go:embed"))); - _r = defaultContext(); /* */ $s = 27; case 27: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + goEmbed = (new sliceType$2($stringToBytes("go:embed"))); + _r = defaultContext(); /* */ $s = 28; case 28: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $pkg.Default = $clone(_r, Context); installgoroot = godebug.New("installgoroot"); errNoModules = errors.New("not using modules"); - slashSlash = (new sliceType$1($stringToBytes("//"))); - slashStar = (new sliceType$1($stringToBytes("/*"))); - starSlash = (new sliceType$1($stringToBytes("*/"))); - newline = (new sliceType$1($stringToBytes("\n"))); - plusBuild = (new sliceType$1($stringToBytes("+build"))); - goBuildComment = (new sliceType$1($stringToBytes("//go:build"))); + slashSlash = (new sliceType$2($stringToBytes("//"))); + slashStar = (new sliceType$2($stringToBytes("/*"))); + starSlash = (new sliceType$2($stringToBytes("*/"))); + newline = (new sliceType$2($stringToBytes("\n"))); + plusBuild = (new sliceType$2($stringToBytes("+build"))); + goBuildComment = (new sliceType$2($stringToBytes("//go:build"))); errMultipleGoBuild = errors.New("multiple //go:build comments"); - binaryOnlyComment = (new sliceType$1($stringToBytes("//go:binary-only-package"))); + binaryOnlyComment = (new sliceType$2($stringToBytes("//go:binary-only-package"))); $pkg.ToolDir = getToolDir(); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; @@ -118485,14 +119788,79 @@ $packages["github.com/gopherjs/gopherjs/compiler/internal/symbol"] = (function() $pkg.$init = $init; return $pkg; })(); +$packages["golang.org/x/tools/go/ast/astutil"] = (function() { + var $pkg = {}, $init, fmt, ast, token, reflect, sort, strconv, strings, ptrType, abort; + fmt = $packages["fmt"]; + ast = $packages["go/ast"]; + token = $packages["go/token"]; + reflect = $packages["reflect"]; + sort = $packages["sort"]; + strconv = $packages["strconv"]; + strings = $packages["strings"]; + $pkg.$finishSetup = function() { + ptrType = $ptrType($Int); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = ast.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = token.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = reflect.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sort.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + abort = $newDataPointer(0, ptrType); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["golang.org/x/tools/internal/aliases"] = (function() { + var $pkg = {}, $init, token, types, Alias, ptrType, ptrType$1, Unalias; + token = $packages["go/token"]; + types = $packages["go/types"]; + Alias = $newType(0, $kindStruct, "aliases.Alias", true, "golang.org/x/tools/internal/aliases", true, function() { this.$val = this; }); + $pkg.Alias = Alias; + $pkg.$finishSetup = function() { + ptrType = $ptrType(types.TypeName); + ptrType$1 = $ptrType(Alias); + $ptrType(Alias).prototype.String = function String() { + $panic(new $String("unreachable")); + }; + $ptrType(Alias).prototype.Underlying = function Underlying() { + $panic(new $String("unreachable")); + }; + $ptrType(Alias).prototype.Obj = function Obj() { + $panic(new $String("unreachable")); + }; + Unalias = function Unalias$1(t) { + var t; + return t; + }; + $pkg.Unalias = Unalias; + ptrType$1.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [types.Type], false)}, {prop: "Obj", name: "Obj", pkg: "", typ: $funcType([], [ptrType], false)}]; + Alias.init("", []); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = token.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = types.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); $packages["golang.org/x/tools/internal/typeparams"] = (function() { - var $pkg = {}, $init, bytes, errors, fmt, ast, token, types, os, strings, term, termlist, termSet, ptrType, sliceType, sliceType$1, sliceType$2, ptrType$4, sliceType$3, sliceType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, allTermlist, ForSignature, NamedTypeArgs, NewTerm, InterfaceTermSet, UnionTermSet, computeTermSet, indentf, computeTermSetInternal, under; + var $pkg = {}, $init, bytes, errors, fmt, ast, token, types, aliases, os, strings, term, termlist, termSet, ptrType, sliceType, sliceType$1, sliceType$2, ptrType$1, sliceType$3, sliceType$4, ptrType$2, ptrType$3, ptrType$4, ptrType$5, allTermlist, InterfaceTermSet, UnionTermSet, computeTermSet, indentf, computeTermSetInternal, under; bytes = $packages["bytes"]; errors = $packages["errors"]; fmt = $packages["fmt"]; ast = $packages["go/ast"]; token = $packages["go/token"]; types = $packages["go/types"]; + aliases = $packages["golang.org/x/tools/internal/aliases"]; os = $packages["os"]; strings = $packages["strings"]; term = $newType(0, $kindStruct, "typeparams.term", true, "golang.org/x/tools/internal/typeparams", false, function(tilde_, typ_) { @@ -118524,13 +119892,13 @@ $packages["golang.org/x/tools/internal/typeparams"] = (function() { sliceType = $sliceType($Uint8); sliceType$1 = $sliceType($Bool); sliceType$2 = $sliceType(ptrType); - ptrType$4 = $ptrType(types.Term); - sliceType$3 = $sliceType(ptrType$4); + ptrType$1 = $ptrType(types.Term); + sliceType$3 = $sliceType(ptrType$1); sliceType$4 = $sliceType($emptyInterface); - ptrType$5 = $ptrType(types.Interface); - ptrType$6 = $ptrType(termSet); - ptrType$7 = $ptrType(types.Union); - ptrType$8 = $ptrType(types.TypeParam); + ptrType$2 = $ptrType(types.Interface); + ptrType$3 = $ptrType(termSet); + ptrType$4 = $ptrType(types.Union); + ptrType$5 = $ptrType(types.TypeParam); $ptrType(term).prototype.String = function String() { var {$24r, $24r$1, _r, _r$1, x, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: @@ -118666,21 +120034,6 @@ $packages["golang.org/x/tools/internal/typeparams"] = (function() { $s = 8; case 8: return $24r; /* */ } return; } var $f = {$blk: disjoint, $c: true, $r, $24r, _r, _r$1, _r$2, ux, uy, x, y, $s};return $f; }; - ForSignature = function ForSignature$1(sig) { - var sig; - return sig.TypeParams(); - }; - $pkg.ForSignature = ForSignature; - NamedTypeArgs = function NamedTypeArgs$1(named) { - var named; - return named.TypeArgs(); - }; - $pkg.NamedTypeArgs = NamedTypeArgs; - NewTerm = function NewTerm$1(tilde, typ) { - var tilde, typ; - return types.NewTerm(tilde, typ); - }; - $pkg.NewTerm = NewTerm; termlist.prototype.String = function String$1() { var {_i, _r, _r$1, _ref, buf, i, x, xl, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: @@ -118871,7 +120224,7 @@ $packages["golang.org/x/tools/internal/typeparams"] = (function() { while (true) { if (!(_i < _ref.$length)) { break; } term$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - terms = $append(terms, NewTerm(term$1.tilde, term$1.typ)); + terms = $append(terms, types.NewTerm(term$1.tilde, term$1.typ)); _i++; } $s = -1; return [terms, $ifaceNil]; @@ -118892,7 +120245,7 @@ $packages["golang.org/x/tools/internal/typeparams"] = (function() { err = [err]; res = [res]; tset = [tset]; - res[0] = ptrType$6.nil; + res[0] = ptrType$3.nil; err[0] = $ifaceNil; if ($interfaceIsEqual(t, $ifaceNil)) { $panic(new $String("nil type")); @@ -118922,7 +120275,7 @@ $packages["golang.org/x/tools/internal/typeparams"] = (function() { /* */ } return; } var $f = {$blk: computeTermSetInternal·func1, $c: true, $r, _arg$2, _arg$3, _r$1, $s};return $f; }; })(depth, err, res, tset), []]); /* } */ case 2: - _tuple = (_entry = $mapIndex(seen,types.Type.keyFor(t)), _entry !== undefined ? [_entry.v, true] : [ptrType$6.nil, false]); + _tuple = (_entry = $mapIndex(seen,types.Type.keyFor(t)), _entry !== undefined ? [_entry.v, true] : [ptrType$3.nil, false]); tset$1 = _tuple[0]; ok = _tuple[1]; /* */ if (ok) { $s = 5; continue; } @@ -118931,7 +120284,7 @@ $packages["golang.org/x/tools/internal/typeparams"] = (function() { /* */ if (!tset$1.complete) { $s = 7; continue; } /* */ $s = 8; continue; /* if (!tset$1.complete) { */ case 7: - _tmp = ptrType$6.nil; + _tmp = ptrType$3.nil; _r$1 = fmt.Errorf("cycle detected in the declaration of %s", new sliceType$4([t])); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tmp$1 = _r$1; res[0] = _tmp; @@ -118953,11 +120306,11 @@ $packages["golang.org/x/tools/internal/typeparams"] = (function() { _key = t; (seen || $throwRuntimeError("assignment to entry in nil map")).set(types.Type.keyFor(_key), { k: _key, v: tset[0] }); _r$2 = t.Underlying(); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _ref = _r$2; - /* */ if ($assertType(_ref, ptrType$5, true)[1]) { $s = 13; continue; } - /* */ if ($assertType(_ref, ptrType$7, true)[1]) { $s = 14; continue; } - /* */ if ($assertType(_ref, ptrType$8, true)[1]) { $s = 15; continue; } + /* */ if ($assertType(_ref, ptrType$2, true)[1]) { $s = 13; continue; } + /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 14; continue; } + /* */ if ($assertType(_ref, ptrType$5, true)[1]) { $s = 15; continue; } /* */ $s = 16; continue; - /* if ($assertType(_ref, ptrType$5, true)[1]) { */ case 13: + /* if ($assertType(_ref, ptrType$2, true)[1]) { */ case 13: u = _ref.$val; tset[0].terms = allTermlist; i = 0; @@ -118965,12 +120318,12 @@ $packages["golang.org/x/tools/internal/typeparams"] = (function() { /* if (!(i < u.NumEmbeddeds())) { break; } */ if(!(i < u.NumEmbeddeds())) { $s = 19; continue; } embedded = u.EmbeddedType(i); _r$3 = embedded.Underlying(); /* */ $s = 20; case 20: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple$1 = $assertType(_r$3, ptrType$8, true); + _tuple$1 = $assertType(_r$3, ptrType$5, true); ok$1 = _tuple$1[1]; /* */ if (ok$1) { $s = 21; continue; } /* */ $s = 22; continue; /* if (ok$1) { */ case 21: - _tmp$4 = ptrType$6.nil; + _tmp$4 = ptrType$3.nil; _r$4 = fmt.Errorf("invalid embedded type %T", new sliceType$4([embedded])); /* */ $s = 23; case 23: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _tmp$5 = _r$4; res[0] = _tmp$4; @@ -118985,7 +120338,7 @@ $packages["golang.org/x/tools/internal/typeparams"] = (function() { /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 26; continue; } /* */ $s = 27; continue; /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 26: - _tmp$6 = ptrType$6.nil; + _tmp$6 = ptrType$3.nil; _tmp$7 = err$1; res[0] = _tmp$6; err[0] = _tmp$7; @@ -118998,7 +120351,7 @@ $packages["golang.org/x/tools/internal/typeparams"] = (function() { $s = 18; continue; case 19: $s = 17; continue; - /* } else if ($assertType(_ref, ptrType$7, true)[1]) { */ case 14: + /* } else if ($assertType(_ref, ptrType$4, true)[1]) { */ case 14: u$1 = _ref.$val; tset[0].terms = termlist.nil; i$1 = 0; @@ -119008,10 +120361,10 @@ $packages["golang.org/x/tools/internal/typeparams"] = (function() { terms = termlist.nil; _r$7 = t$1.Type().Underlying(); /* */ $s = 32; case 32: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _ref$1 = _r$7; - /* */ if ($assertType(_ref$1, ptrType$5, true)[1]) { $s = 33; continue; } - /* */ if ($assertType(_ref$1, ptrType$8, true)[1] || $assertType(_ref$1, ptrType$7, true)[1]) { $s = 34; continue; } + /* */ if ($assertType(_ref$1, ptrType$2, true)[1]) { $s = 33; continue; } + /* */ if ($assertType(_ref$1, ptrType$5, true)[1] || $assertType(_ref$1, ptrType$4, true)[1]) { $s = 34; continue; } /* */ $s = 35; continue; - /* if ($assertType(_ref$1, ptrType$5, true)[1]) { */ case 33: + /* if ($assertType(_ref$1, ptrType$2, true)[1]) { */ case 33: _r$8 = computeTermSetInternal(t$1.Type(), seen, depth[0] + 1 >> 0); /* */ $s = 37; case 37: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } _tuple$3 = _r$8; tset2$1 = _tuple$3[0]; @@ -119019,7 +120372,7 @@ $packages["golang.org/x/tools/internal/typeparams"] = (function() { /* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 38; continue; } /* */ $s = 39; continue; /* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 38: - _tmp$8 = ptrType$6.nil; + _tmp$8 = ptrType$3.nil; _tmp$9 = err$2; res[0] = _tmp$8; err[0] = _tmp$9; @@ -119028,8 +120381,8 @@ $packages["golang.org/x/tools/internal/typeparams"] = (function() { /* } */ case 39: terms = tset2$1.terms; $s = 36; continue; - /* } else if ($assertType(_ref$1, ptrType$8, true)[1] || $assertType(_ref$1, ptrType$7, true)[1]) { */ case 34: - _tmp$10 = ptrType$6.nil; + /* } else if ($assertType(_ref$1, ptrType$5, true)[1] || $assertType(_ref$1, ptrType$4, true)[1]) { */ case 34: + _tmp$10 = ptrType$3.nil; _r$9 = fmt.Errorf("invalid union term %T", new sliceType$4([t$1])); /* */ $s = 41; case 41: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } _tmp$11 = _r$9; res[0] = _tmp$10; @@ -119048,7 +120401,7 @@ $packages["golang.org/x/tools/internal/typeparams"] = (function() { /* */ if (tset[0].terms.$length > 100) { $s = 44; continue; } /* */ $s = 45; continue; /* if (tset[0].terms.$length > 100) { */ case 44: - _tmp$12 = ptrType$6.nil; + _tmp$12 = ptrType$3.nil; _r$11 = fmt.Errorf("exceeded max term count %d", new sliceType$4([new $Int(100)])); /* */ $s = 46; case 46: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } _tmp$13 = _r$11; res[0] = _tmp$12; @@ -119060,7 +120413,7 @@ $packages["golang.org/x/tools/internal/typeparams"] = (function() { $s = 30; continue; case 31: $s = 17; continue; - /* } else if ($assertType(_ref, ptrType$8, true)[1]) { */ case 15: + /* } else if ($assertType(_ref, ptrType$5, true)[1]) { */ case 15: u$2 = _ref.$val; $panic(new $String("unreachable")); $s = 17; continue; @@ -119101,8 +120454,9 @@ $packages["golang.org/x/tools/internal/typeparams"] = (function() { $r = ast.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = token.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = types.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = os.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = strings.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = aliases.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = os.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } allTermlist = new termlist([new term.ptr(false, $ifaceNil)]); $pkg.ErrEmptyTypeSet = errors.New("empty type set"); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; @@ -119110,43 +120464,14 @@ $packages["golang.org/x/tools/internal/typeparams"] = (function() { $pkg.$init = $init; return $pkg; })(); -$packages["golang.org/x/tools/go/ast/astutil"] = (function() { - var $pkg = {}, $init, fmt, ast, token, typeparams, reflect, sort, strconv, strings, ptrType, abort; - fmt = $packages["fmt"]; - ast = $packages["go/ast"]; - token = $packages["go/token"]; - typeparams = $packages["golang.org/x/tools/internal/typeparams"]; - reflect = $packages["reflect"]; - sort = $packages["sort"]; - strconv = $packages["strconv"]; - strings = $packages["strings"]; - $pkg.$finishSetup = function() { - ptrType = $ptrType($Int); - }; - $init = function() { - $pkg.$init = function() {}; - /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: - $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = ast.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = token.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = typeparams.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = reflect.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = sort.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = strconv.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = strings.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - abort = $newDataPointer(0, ptrType); - /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; - }; - $pkg.$init = $init; - return $pkg; -})(); $packages["golang.org/x/tools/go/types/typeutil"] = (function() { - var $pkg = {}, $init, bytes, fmt, ast, types, astutil, typeparams, reflect, sync, Map, entry, Hasher, ptrType, ptrType$3, ptrType$5, sliceType$1, ptrType$6, sliceType$2, sliceType$3, sliceType$4, ptrType$7, ptrType$8, ptrType$9, ptrType$10, ptrType$11, ptrType$12, ptrType$13, ptrType$14, ptrType$15, ptrType$16, ptrType$17, ptrType$18, funcType, mapType$2, ptrType$27, sliceType$6, mapType$3, mapType$4, MakeHasher, hashString; + var $pkg = {}, $init, bytes, fmt, ast, types, astutil, aliases, typeparams, reflect, sync, Map, entry, Hasher, ptrType, ptrType$3, ptrType$5, sliceType$1, ptrType$6, sliceType$2, sliceType$3, sliceType$4, ptrType$7, ptrType$8, ptrType$9, ptrType$10, ptrType$11, ptrType$12, ptrType$13, ptrType$14, ptrType$15, ptrType$16, ptrType$17, ptrType$18, ptrType$19, funcType, mapType$2, ptrType$28, sliceType$6, mapType$3, mapType$4, MakeHasher, hashString; bytes = $packages["bytes"]; fmt = $packages["fmt"]; ast = $packages["go/ast"]; types = $packages["go/types"]; astutil = $packages["golang.org/x/tools/go/ast/astutil"]; + aliases = $packages["golang.org/x/tools/internal/aliases"]; typeparams = $packages["golang.org/x/tools/internal/typeparams"]; reflect = $packages["reflect"]; sync = $packages["sync"]; @@ -119198,20 +120523,21 @@ $packages["golang.org/x/tools/go/types/typeutil"] = (function() { sliceType$4 = $sliceType($emptyInterface); ptrType$7 = $ptrType(types.TypeParamList); ptrType$8 = $ptrType(types.Basic); - ptrType$9 = $ptrType(types.Array); - ptrType$10 = $ptrType(types.Slice); - ptrType$11 = $ptrType(types.Struct); - ptrType$12 = $ptrType(types.Signature); - ptrType$13 = $ptrType(types.Union); - ptrType$14 = $ptrType(types.Interface); - ptrType$15 = $ptrType(types.Map); - ptrType$16 = $ptrType(types.Chan); - ptrType$17 = $ptrType(types.TypeParam); - ptrType$18 = $ptrType(types.Tuple); + ptrType$9 = $ptrType(aliases.Alias); + ptrType$10 = $ptrType(types.Array); + ptrType$11 = $ptrType(types.Slice); + ptrType$12 = $ptrType(types.Struct); + ptrType$13 = $ptrType(types.Signature); + ptrType$14 = $ptrType(types.Union); + ptrType$15 = $ptrType(types.Interface); + ptrType$16 = $ptrType(types.Map); + ptrType$17 = $ptrType(types.Chan); + ptrType$18 = $ptrType(types.TypeParam); + ptrType$19 = $ptrType(types.Tuple); funcType = $funcType([types.Type, $emptyInterface], [], false); mapType$2 = $mapType($Uint32, sliceType$1); - ptrType$27 = $ptrType(types.Term); - sliceType$6 = $sliceType(ptrType$27); + ptrType$28 = $ptrType(types.Term); + sliceType$6 = $sliceType(ptrType$28); mapType$3 = $mapType(types.Type, $Uint32); mapType$4 = $mapType($emptyInterface, $Uint32); $ptrType(Map).prototype.SetHasher = function SetHasher(hasher) { @@ -119303,7 +120629,7 @@ $packages["golang.org/x/tools/go/types/typeutil"] = (function() { /* */ if (_r$1) { $s = 8; continue; } /* */ $s = 9; continue; /* if ($interfaceIsEqual(e.key, $ifaceNil)) { */ case 7: - hole = ((i < 0 || i >= bucket.$length) ? ($throwRuntimeError("index out of range"), undefined) : bucket.$array[bucket.$offset + i]); + hole = ((i < 0 || i >= bucket.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(bucket.$array, bucket.$offset + i, ptrType$6)); $s = 9; continue; /* } else if (_r$1) { */ case 8: prev = e.value; @@ -119314,7 +120640,7 @@ $packages["golang.org/x/tools/go/types/typeutil"] = (function() { $s = 5; continue; case 6: if (!(hole === ptrType$6.nil)) { - entry.copy(hole, new entry.ptr(key, value)); + entry.copy((hole === ptrType$6.nil && $throwNilPointerError(), hole), new entry.ptr(key, value)); } else { _key = hash; (m.table || $throwRuntimeError("assignment to entry in nil map")).set($Uint32.keyFor(_key), { k: _key, v: $append(bucket, new entry.ptr(key, value)) }); } @@ -119481,7 +120807,7 @@ $packages["golang.org/x/tools/go/types/typeutil"] = (function() { return h; }; $ptrType(Hasher).prototype.hashFor = function hashFor(t) { - var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, err, f, h, hash, hash$1, hash$2, hash$3, i, i$1, i$2, i$3, m, n, n$1, t, t$1, t$10, t$11, t$12, t$13, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, targ, targs, terms, tparam, tparams, $s, $r, $c} = $restore(this, {t}); + var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, err, f, h, hash, hash$1, hash$2, hash$3, i, i$1, i$2, i$3, m, n, n$1, t, t$1, t$10, t$11, t$12, t$13, t$14, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, targ, targs, terms, tparam, tparams, $s, $r, $c} = $restore(this, {t}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: h = this; _ref = t; @@ -119489,152 +120815,155 @@ $packages["golang.org/x/tools/go/types/typeutil"] = (function() { /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 2; continue; } /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 3; continue; } /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$12, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$12, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType, true)[1]) { $s = 6; continue; } /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 7; continue; } /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 8; continue; } /* */ if ($assertType(_ref, ptrType$15, true)[1]) { $s = 9; continue; } /* */ if ($assertType(_ref, ptrType$16, true)[1]) { $s = 10; continue; } - /* */ if ($assertType(_ref, ptrType$3, true)[1]) { $s = 11; continue; } - /* */ if ($assertType(_ref, ptrType$17, true)[1]) { $s = 12; continue; } + /* */ if ($assertType(_ref, ptrType$17, true)[1]) { $s = 11; continue; } + /* */ if ($assertType(_ref, ptrType$3, true)[1]) { $s = 12; continue; } /* */ if ($assertType(_ref, ptrType$18, true)[1]) { $s = 13; continue; } - /* */ $s = 14; continue; + /* */ if ($assertType(_ref, ptrType$19, true)[1]) { $s = 14; continue; } + /* */ $s = 15; continue; /* if ($assertType(_ref, ptrType$8, true)[1]) { */ case 1: t$1 = _ref.$val; $s = -1; return ((t$1.Kind() >>> 0)); /* } else if ($assertType(_ref, ptrType$9, true)[1]) { */ case 2: t$2 = _ref.$val; - _r = $clone(h, Hasher).Hash(t$2.Elem()); /* */ $s = 15; case 15: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = (9043 + ($imul(2, ((t$2.Len().$low >>> 0))) >>> 0) >>> 0) + ($imul(3, _r) >>> 0) >>> 0; - $s = 16; case 16: return $24r; + _r = $clone(h, Hasher).Hash(aliases.Unalias(t$2)); /* */ $s = 16; case 16: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 17; case 17: return $24r; /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 3: t$3 = _ref.$val; - _r$1 = $clone(h, Hasher).Hash(t$3.Elem()); /* */ $s = 17; case 17: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r$1 = 9049 + ($imul(2, _r$1) >>> 0) >>> 0; - $s = 18; case 18: return $24r$1; + _r$1 = $clone(h, Hasher).Hash(t$3.Elem()); /* */ $s = 18; case 18: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r$1 = (9043 + ($imul(2, ((t$3.Len().$low >>> 0))) >>> 0) >>> 0) + ($imul(3, _r$1) >>> 0) >>> 0; + $s = 19; case 19: return $24r$1; /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 4: t$4 = _ref.$val; + _r$2 = $clone(h, Hasher).Hash(t$4.Elem()); /* */ $s = 20; case 20: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r$2 = 9049 + ($imul(2, _r$2) >>> 0) >>> 0; + $s = 21; case 21: return $24r$2; + /* } else if ($assertType(_ref, ptrType$12, true)[1]) { */ case 5: + t$5 = _ref.$val; hash = 9059; _tmp = 0; - _tmp$1 = t$4.NumFields(); + _tmp$1 = t$5.NumFields(); i = _tmp; n = _tmp$1; - /* while (true) { */ case 19: - /* if (!(i < n)) { break; } */ if(!(i < n)) { $s = 20; continue; } - f = t$4.Field(i); + /* while (true) { */ case 22: + /* if (!(i < n)) { break; } */ if(!(i < n)) { $s = 23; continue; } + f = t$5.Field(i); if (f.Anonymous()) { hash = hash + (8861) >>> 0; } - hash = hash + (hashString(t$4.Tag(i))) >>> 0; + hash = hash + (hashString(t$5.Tag(i))) >>> 0; hash = hash + (hashString(f.object.Name())) >>> 0; - _r$2 = $clone(h, Hasher).Hash(f.object.Type()); /* */ $s = 21; case 21: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - hash = hash + (_r$2) >>> 0; + _r$3 = $clone(h, Hasher).Hash(f.object.Type()); /* */ $s = 24; case 24: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + hash = hash + (_r$3) >>> 0; i = i + (1) >> 0; - $s = 19; continue; - case 20: + $s = 22; continue; + case 23: $s = -1; return hash; - /* } else if ($assertType(_ref, ptrType, true)[1]) { */ case 5: - t$5 = _ref.$val; - _r$3 = $clone(h, Hasher).Hash(t$5.Elem()); /* */ $s = 22; case 22: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r$2 = 9067 + ($imul(2, _r$3) >>> 0) >>> 0; - $s = 23; case 23: return $24r$2; - /* } else if ($assertType(_ref, ptrType$12, true)[1]) { */ case 6: + /* } else if ($assertType(_ref, ptrType, true)[1]) { */ case 6: t$6 = _ref.$val; + _r$4 = $clone(h, Hasher).Hash(t$6.Elem()); /* */ $s = 25; case 25: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r$3 = 9067 + ($imul(2, _r$4) >>> 0) >>> 0; + $s = 26; case 26: return $24r$3; + /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 7: + t$7 = _ref.$val; hash$1 = 9091; - if (t$6.Variadic()) { + if (t$7.Variadic()) { hash$1 = $imul(hash$1, (8863)) >>> 0; } - tparams = typeparams.ForSignature(t$6); + tparams = t$7.TypeParams(); if (h.sigTParams === ptrType$7.nil && !((tparams.Len() === 0))) { Hasher.copy(h, new Hasher.ptr(new $global.Map(), h.ptrMap, tparams)); } i$1 = 0; - /* while (true) { */ case 24: - /* if (!(i$1 < tparams.Len())) { break; } */ if(!(i$1 < tparams.Len())) { $s = 25; continue; } + /* while (true) { */ case 27: + /* if (!(i$1 < tparams.Len())) { break; } */ if(!(i$1 < tparams.Len())) { $s = 28; continue; } tparam = tparams.At(i$1); - _r$4 = $clone(h, Hasher).Hash(tparam.Constraint()); /* */ $s = 26; case 26: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - hash$1 = hash$1 + (($imul(7, _r$4) >>> 0)) >>> 0; + _r$5 = $clone(h, Hasher).Hash(tparam.Constraint()); /* */ $s = 29; case 29: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + hash$1 = hash$1 + (($imul(7, _r$5) >>> 0)) >>> 0; i$1 = i$1 + (1) >> 0; - $s = 24; continue; - case 25: - _r$5 = $clone(h, Hasher).hashTuple(t$6.Params()); /* */ $s = 27; case 27: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$6 = $clone(h, Hasher).hashTuple(t$6.Results()); /* */ $s = 28; case 28: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - $24r$3 = (hash$1 + ($imul(3, _r$5) >>> 0) >>> 0) + ($imul(5, _r$6) >>> 0) >>> 0; - $s = 29; case 29: return $24r$3; - /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 7: - t$7 = _ref.$val; - _r$7 = $clone(h, Hasher).hashUnion(t$7); /* */ $s = 30; case 30: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - $24r$4 = _r$7; - $s = 31; case 31: return $24r$4; + $s = 27; continue; + case 28: + _r$6 = $clone(h, Hasher).hashTuple(t$7.Params()); /* */ $s = 30; case 30: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$7 = $clone(h, Hasher).hashTuple(t$7.Results()); /* */ $s = 31; case 31: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $24r$4 = (hash$1 + ($imul(3, _r$6) >>> 0) >>> 0) + ($imul(5, _r$7) >>> 0) >>> 0; + $s = 32; case 32: return $24r$4; /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 8: t$8 = _ref.$val; + _r$8 = $clone(h, Hasher).hashUnion(t$8); /* */ $s = 33; case 33: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + $24r$5 = _r$8; + $s = 34; case 34: return $24r$5; + /* } else if ($assertType(_ref, ptrType$15, true)[1]) { */ case 9: + t$9 = _ref.$val; hash$2 = 9103; _tmp$2 = 0; - _r$8 = t$8.NumMethods(); /* */ $s = 32; case 32: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _tmp$3 = _r$8; + _r$9 = t$9.NumMethods(); /* */ $s = 35; case 35: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _tmp$3 = _r$9; i$2 = _tmp$2; n$1 = _tmp$3; - /* while (true) { */ case 33: - /* if (!(i$2 < n$1)) { break; } */ if(!(i$2 < n$1)) { $s = 34; continue; } - _r$9 = t$8.Method(i$2); /* */ $s = 35; case 35: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - m = _r$9; - _r$10 = $clone(h, Hasher).shallowHash(m.object.Type()); /* */ $s = 36; case 36: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - hash$2 = hash$2 + ((($imul(3, hashString(m.object.Name())) >>> 0) + ($imul(5, _r$10) >>> 0) >>> 0)) >>> 0; + /* while (true) { */ case 36: + /* if (!(i$2 < n$1)) { break; } */ if(!(i$2 < n$1)) { $s = 37; continue; } + _r$10 = t$9.Method(i$2); /* */ $s = 38; case 38: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + m = _r$10; + _r$11 = $clone(h, Hasher).shallowHash(m.object.Type()); /* */ $s = 39; case 39: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + hash$2 = hash$2 + ((($imul(3, hashString(m.object.Name())) >>> 0) + ($imul(5, _r$11) >>> 0) >>> 0)) >>> 0; i$2 = i$2 + (1) >> 0; - $s = 33; continue; - case 34: - _r$11 = typeparams.InterfaceTermSet(t$8); /* */ $s = 37; case 37: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _tuple = _r$11; + $s = 36; continue; + case 37: + _r$12 = typeparams.InterfaceTermSet(t$9); /* */ $s = 40; case 40: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _tuple = _r$12; terms = _tuple[0]; err = _tuple[1]; - /* */ if ($interfaceIsEqual(err, $ifaceNil)) { $s = 38; continue; } - /* */ $s = 39; continue; - /* if ($interfaceIsEqual(err, $ifaceNil)) { */ case 38: - _r$12 = $clone(h, Hasher).hashTermSet(terms); /* */ $s = 40; case 40: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - hash$2 = hash$2 + (_r$12) >>> 0; - /* } */ case 39: + /* */ if ($interfaceIsEqual(err, $ifaceNil)) { $s = 41; continue; } + /* */ $s = 42; continue; + /* if ($interfaceIsEqual(err, $ifaceNil)) { */ case 41: + _r$13 = $clone(h, Hasher).hashTermSet(terms); /* */ $s = 43; case 43: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + hash$2 = hash$2 + (_r$13) >>> 0; + /* } */ case 42: $s = -1; return hash$2; - /* } else if ($assertType(_ref, ptrType$15, true)[1]) { */ case 9: - t$9 = _ref.$val; - _r$13 = $clone(h, Hasher).Hash(t$9.Key()); /* */ $s = 41; case 41: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - _r$14 = $clone(h, Hasher).Hash(t$9.Elem()); /* */ $s = 42; case 42: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - $24r$5 = (9109 + ($imul(2, _r$13) >>> 0) >>> 0) + ($imul(3, _r$14) >>> 0) >>> 0; - $s = 43; case 43: return $24r$5; /* } else if ($assertType(_ref, ptrType$16, true)[1]) { */ case 10: t$10 = _ref.$val; - _r$15 = $clone(h, Hasher).Hash(t$10.Elem()); /* */ $s = 44; case 44: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - $24r$6 = (9127 + ($imul(2, ((t$10.Dir() >>> 0))) >>> 0) >>> 0) + ($imul(3, _r$15) >>> 0) >>> 0; - $s = 45; case 45: return $24r$6; - /* } else if ($assertType(_ref, ptrType$3, true)[1]) { */ case 11: + _r$14 = $clone(h, Hasher).Hash(t$10.Key()); /* */ $s = 44; case 44: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _r$15 = $clone(h, Hasher).Hash(t$10.Elem()); /* */ $s = 45; case 45: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + $24r$6 = (9109 + ($imul(2, _r$14) >>> 0) >>> 0) + ($imul(3, _r$15) >>> 0) >>> 0; + $s = 46; case 46: return $24r$6; + /* } else if ($assertType(_ref, ptrType$17, true)[1]) { */ case 11: t$11 = _ref.$val; - _r$16 = $clone(h, Hasher).hashPtr(t$11.Obj()); /* */ $s = 46; case 46: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - hash$3 = _r$16; - targs = typeparams.NamedTypeArgs(t$11); + _r$16 = $clone(h, Hasher).Hash(t$11.Elem()); /* */ $s = 47; case 47: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + $24r$7 = (9127 + ($imul(2, ((t$11.Dir() >>> 0))) >>> 0) >>> 0) + ($imul(3, _r$16) >>> 0) >>> 0; + $s = 48; case 48: return $24r$7; + /* } else if ($assertType(_ref, ptrType$3, true)[1]) { */ case 12: + t$12 = _ref.$val; + hash$3 = $clone(h, Hasher).hashPtr(t$12.Obj()); + targs = t$12.TypeArgs(); i$3 = 0; - /* while (true) { */ case 47: - /* if (!(i$3 < targs.Len())) { break; } */ if(!(i$3 < targs.Len())) { $s = 48; continue; } + /* while (true) { */ case 49: + /* if (!(i$3 < targs.Len())) { break; } */ if(!(i$3 < targs.Len())) { $s = 50; continue; } targ = targs.At(i$3); - _r$17 = $clone(h, Hasher).Hash(targ); /* */ $s = 49; case 49: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + _r$17 = $clone(h, Hasher).Hash(targ); /* */ $s = 51; case 51: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } hash$3 = hash$3 + (($imul(2, _r$17) >>> 0)) >>> 0; i$3 = i$3 + (1) >> 0; - $s = 47; continue; - case 48: + $s = 49; continue; + case 50: $s = -1; return hash$3; - /* } else if ($assertType(_ref, ptrType$17, true)[1]) { */ case 12: - t$12 = _ref.$val; - _r$18 = $clone(h, Hasher).hashTypeParam(t$12); /* */ $s = 50; case 50: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - $24r$7 = _r$18; - $s = 51; case 51: return $24r$7; /* } else if ($assertType(_ref, ptrType$18, true)[1]) { */ case 13: t$13 = _ref.$val; - _r$19 = $clone(h, Hasher).hashTuple(t$13); /* */ $s = 52; case 52: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - $24r$8 = _r$19; + $s = -1; return $clone(h, Hasher).hashTypeParam(t$13); + /* } else if ($assertType(_ref, ptrType$19, true)[1]) { */ case 14: + t$14 = _ref.$val; + _r$18 = $clone(h, Hasher).hashTuple(t$14); /* */ $s = 52; case 52: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + $24r$8 = _r$18; $s = 53; case 53: return $24r$8; - /* } */ case 14: - _r$20 = fmt.Sprintf("%T: %v", new sliceType$4([t, t])); /* */ $s = 54; case 54: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - $panic(new $String(_r$20)); + /* } */ case 15: + _r$19 = fmt.Sprintf("%T: %v", new sliceType$4([t, t])); /* */ $s = 54; case 54: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + $panic(new $String(_r$19)); $s = -1; return 0; - /* */ } return; } var $f = {$blk: hashFor, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, err, f, h, hash, hash$1, hash$2, hash$3, i, i$1, i$2, i$3, m, n, n$1, t, t$1, t$10, t$11, t$12, t$13, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, targ, targs, terms, tparam, tparams, $s};return $f; + /* */ } return; } var $f = {$blk: hashFor, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, err, f, h, hash, hash$1, hash$2, hash$3, i, i$1, i$2, i$3, m, n, n$1, t, t$1, t$10, t$11, t$12, t$13, t$14, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, targ, targs, terms, tparam, tparams, $s};return $f; }; Hasher.prototype.hashFor = function(...$args) { return this.$val.hashFor(...$args); }; $ptrType(Hasher).prototype.hashTuple = function hashTuple(tuple) { @@ -119696,127 +121025,121 @@ $packages["golang.org/x/tools/go/types/typeutil"] = (function() { }; Hasher.prototype.hashTermSet = function(...$args) { return this.$val.hashTermSet(...$args); }; $ptrType(Hasher).prototype.hashTypeParam = function hashTypeParam(t) { - var {$24r, _r, h, i, t, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var h, i, t; h = this; if (!(h.sigTParams === ptrType$7.nil)) { i = t.Index(); if (i >= 0 && i < h.sigTParams.Len() && t === h.sigTParams.At(i)) { - $s = -1; return 9173 + ($imul(3, ((i >>> 0))) >>> 0) >>> 0; + return 9173 + ($imul(3, ((i >>> 0))) >>> 0) >>> 0; } } - _r = $clone(h, Hasher).hashPtr(t.Obj()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: hashTypeParam, $c: true, $r, $24r, _r, h, i, t, $s};return $f; + return $clone(h, Hasher).hashPtr(t.Obj()); }; Hasher.prototype.hashTypeParam = function(...$args) { return this.$val.hashTypeParam(...$args); }; $ptrType(Hasher).prototype.hashPtr = function hashPtr(ptr) { - var {_entry, _key, _r, _r$1, _tuple, h, hash, hash$1, ok, ptr, $s, $r, $c} = $restore(this, {ptr}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var _entry, _key, _tuple, h, hash, hash$1, ok, ptr; h = this; _tuple = (_entry = $mapIndex(h.ptrMap,$emptyInterface.keyFor(ptr)), _entry !== undefined ? [_entry.v, true] : [0, false]); hash = _tuple[0]; ok = _tuple[1]; if (ok) { - $s = -1; return hash; + return hash; } - _r = reflect.ValueOf(ptr); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = $clone(_r, reflect.Value).Pointer(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - hash$1 = ((_r$1 >>> 0)); + hash$1 = (($clone(reflect.ValueOf(ptr), reflect.Value).Pointer() >>> 0)); _key = ptr; (h.ptrMap || $throwRuntimeError("assignment to entry in nil map")).set($emptyInterface.keyFor(_key), { k: _key, v: hash$1 }); - $s = -1; return hash$1; - /* */ } return; } var $f = {$blk: hashPtr, $c: true, $r, _entry, _key, _r, _r$1, _tuple, h, hash, hash$1, ok, ptr, $s};return $f; + return hash$1; }; Hasher.prototype.hashPtr = function(...$args) { return this.$val.hashPtr(...$args); }; $ptrType(Hasher).prototype.shallowHash = function shallowHash(t) { - var {$24r, $24r$1, $24r$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, h, hash, hash$1, i, n, t, t$1, t$10, t$11, t$12, t$13, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, $s, $r, $c} = $restore(this, {t}); + var {$24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, _ref, h, hash, hash$1, i, n, t, t$1, t$10, t$11, t$12, t$13, t$14, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, $s, $r, $c} = $restore(this, {t}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: h = this; _ref = t; - /* */ if ($assertType(_ref, ptrType$12, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$18, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$8, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$19, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$8, true)[1]) { $s = 4; continue; } /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 5; continue; } /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref, ptrType$12, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref, ptrType, true)[1]) { $s = 8; continue; } /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 9; continue; } /* */ if ($assertType(_ref, ptrType$15, true)[1]) { $s = 10; continue; } /* */ if ($assertType(_ref, ptrType$16, true)[1]) { $s = 11; continue; } - /* */ if ($assertType(_ref, ptrType$3, true)[1]) { $s = 12; continue; } - /* */ if ($assertType(_ref, ptrType$17, true)[1]) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if ($assertType(_ref, ptrType$12, true)[1]) { */ case 1: + /* */ if ($assertType(_ref, ptrType$17, true)[1]) { $s = 12; continue; } + /* */ if ($assertType(_ref, ptrType$3, true)[1]) { $s = 13; continue; } + /* */ if ($assertType(_ref, ptrType$18, true)[1]) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if ($assertType(_ref, ptrType$9, true)[1]) { */ case 1: t$1 = _ref.$val; + _r = $clone(h, Hasher).shallowHash(aliases.Unalias(t$1)); /* */ $s = 16; case 16: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 17; case 17: return $24r; + /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 2: + t$2 = _ref.$val; hash = 604171; - if (t$1.Variadic()) { + if (t$2.Variadic()) { hash = $imul(hash, (971767)) >>> 0; } - _r = $clone(h, Hasher).shallowHash(t$1.Params()); /* */ $s = 15; case 15: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = $clone(h, Hasher).shallowHash(t$1.Results()); /* */ $s = 16; case 16: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = (hash + ($imul(1062599, _r) >>> 0) >>> 0) + ($imul(1282529, _r$1) >>> 0) >>> 0; - $s = 17; case 17: return $24r; - /* } else if ($assertType(_ref, ptrType$18, true)[1]) { */ case 2: - t$2 = _ref.$val; - n = t$2.Len(); + _r$1 = $clone(h, Hasher).shallowHash(t$2.Params()); /* */ $s = 18; case 18: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = $clone(h, Hasher).shallowHash(t$2.Results()); /* */ $s = 19; case 19: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r$1 = (hash + ($imul(1062599, _r$1) >>> 0) >>> 0) + ($imul(1282529, _r$2) >>> 0) >>> 0; + $s = 20; case 20: return $24r$1; + /* } else if ($assertType(_ref, ptrType$19, true)[1]) { */ case 3: + t$3 = _ref.$val; + n = t$3.Len(); hash$1 = 9137 + ($imul(2, ((n >>> 0))) >>> 0) >>> 0; i = 0; - /* while (true) { */ case 18: - /* if (!(i < n)) { break; } */ if(!(i < n)) { $s = 19; continue; } - _r$2 = $clone(h, Hasher).shallowHash(t$2.At(i).object.Type()); /* */ $s = 20; case 20: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - hash$1 = hash$1 + (($imul(53471161, _r$2) >>> 0)) >>> 0; + /* while (true) { */ case 21: + /* if (!(i < n)) { break; } */ if(!(i < n)) { $s = 22; continue; } + _r$3 = $clone(h, Hasher).shallowHash(t$3.At(i).object.Type()); /* */ $s = 23; case 23: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + hash$1 = hash$1 + (($imul(53471161, _r$3) >>> 0)) >>> 0; i = i + (1) >> 0; - $s = 18; continue; - case 19: + $s = 21; continue; + case 22: $s = -1; return hash$1; - /* } else if ($assertType(_ref, ptrType$8, true)[1]) { */ case 3: - t$3 = _ref.$val; - $s = -1; return $imul(45212177, ((t$3.Kind() >>> 0))) >>> 0; - /* } else if ($assertType(_ref, ptrType$9, true)[1]) { */ case 4: + /* } else if ($assertType(_ref, ptrType$8, true)[1]) { */ case 4: t$4 = _ref.$val; - $s = -1; return 1524181 + ($imul(2, ((t$4.Len().$low >>> 0))) >>> 0) >>> 0; + $s = -1; return $imul(45212177, ((t$4.Kind() >>> 0))) >>> 0; /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 5: t$5 = _ref.$val; - $s = -1; return 2690201; + $s = -1; return 1524181 + ($imul(2, ((t$5.Len().$low >>> 0))) >>> 0) >>> 0; /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 6: t$6 = _ref.$val; - $s = -1; return 3326489; - /* } else if ($assertType(_ref, ptrType, true)[1]) { */ case 7: + $s = -1; return 2690201; + /* } else if ($assertType(_ref, ptrType$12, true)[1]) { */ case 7: t$7 = _ref.$val; - $s = -1; return 4393139; - /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 8: + $s = -1; return 3326489; + /* } else if ($assertType(_ref, ptrType, true)[1]) { */ case 8: t$8 = _ref.$val; - $s = -1; return 562448657; + $s = -1; return 4393139; /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 9: t$9 = _ref.$val; - $s = -1; return 2124679; + $s = -1; return 562448657; /* } else if ($assertType(_ref, ptrType$15, true)[1]) { */ case 10: t$10 = _ref.$val; - $s = -1; return 9109; + $s = -1; return 2124679; /* } else if ($assertType(_ref, ptrType$16, true)[1]) { */ case 11: t$11 = _ref.$val; - $s = -1; return 9127; - /* } else if ($assertType(_ref, ptrType$3, true)[1]) { */ case 12: + $s = -1; return 9109; + /* } else if ($assertType(_ref, ptrType$17, true)[1]) { */ case 12: t$12 = _ref.$val; - _r$3 = $clone(h, Hasher).hashPtr(t$12.Obj()); /* */ $s = 21; case 21: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r$1 = _r$3; - $s = 22; case 22: return $24r$1; - /* } else if ($assertType(_ref, ptrType$17, true)[1]) { */ case 13: + $s = -1; return 9127; + /* } else if ($assertType(_ref, ptrType$3, true)[1]) { */ case 13: t$13 = _ref.$val; - _r$4 = $clone(h, Hasher).hashPtr(t$13.Obj()); /* */ $s = 23; case 23: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $24r$2 = _r$4; - $s = 24; case 24: return $24r$2; - /* } */ case 14: - _r$5 = fmt.Sprintf("shallowHash: %T: %v", new sliceType$4([t, t])); /* */ $s = 25; case 25: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - $panic(new $String(_r$5)); + $s = -1; return $clone(h, Hasher).hashPtr(t$13.Obj()); + /* } else if ($assertType(_ref, ptrType$18, true)[1]) { */ case 14: + t$14 = _ref.$val; + $s = -1; return $clone(h, Hasher).hashPtr(t$14.Obj()); + /* } */ case 15: + _r$4 = fmt.Sprintf("shallowHash: %T: %v", new sliceType$4([t, t])); /* */ $s = 24; case 24: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $panic(new $String(_r$4)); $s = -1; return 0; - /* */ } return; } var $f = {$blk: shallowHash, $c: true, $r, $24r, $24r$1, $24r$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, h, hash, hash$1, i, n, t, t$1, t$10, t$11, t$12, t$13, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, $s};return $f; + /* */ } return; } var $f = {$blk: shallowHash, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, _ref, h, hash, hash$1, i, n, t, t$1, t$10, t$11, t$12, t$13, t$14, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, $s};return $f; }; Hasher.prototype.shallowHash = function(...$args) { return this.$val.shallowHash(...$args); }; ptrType$5.methods = [{prop: "SetHasher", name: "SetHasher", pkg: "", typ: $funcType([Hasher], [], false)}, {prop: "Delete", name: "Delete", pkg: "", typ: $funcType([types.Type], [$Bool], false)}, {prop: "At", name: "At", pkg: "", typ: $funcType([types.Type], [$emptyInterface], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([types.Type, $emptyInterface], [$emptyInterface], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Iterate", name: "Iterate", pkg: "", typ: $funcType([funcType], [], false)}, {prop: "Keys", name: "Keys", pkg: "", typ: $funcType([], [sliceType$2], false)}, {prop: "toString", name: "toString", pkg: "golang.org/x/tools/go/types/typeutil", typ: $funcType([$Bool], [$String], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "KeysString", name: "KeysString", pkg: "", typ: $funcType([], [$String], false)}]; - Hasher.methods = [{prop: "Hash", name: "Hash", pkg: "", typ: $funcType([types.Type], [$Uint32], false)}, {prop: "hashFor", name: "hashFor", pkg: "golang.org/x/tools/go/types/typeutil", typ: $funcType([types.Type], [$Uint32], false)}, {prop: "hashTuple", name: "hashTuple", pkg: "golang.org/x/tools/go/types/typeutil", typ: $funcType([ptrType$18], [$Uint32], false)}, {prop: "hashUnion", name: "hashUnion", pkg: "golang.org/x/tools/go/types/typeutil", typ: $funcType([ptrType$13], [$Uint32], false)}, {prop: "hashTermSet", name: "hashTermSet", pkg: "golang.org/x/tools/go/types/typeutil", typ: $funcType([sliceType$6], [$Uint32], false)}, {prop: "hashTypeParam", name: "hashTypeParam", pkg: "golang.org/x/tools/go/types/typeutil", typ: $funcType([ptrType$17], [$Uint32], false)}, {prop: "hashPtr", name: "hashPtr", pkg: "golang.org/x/tools/go/types/typeutil", typ: $funcType([$emptyInterface], [$Uint32], false)}, {prop: "shallowHash", name: "shallowHash", pkg: "golang.org/x/tools/go/types/typeutil", typ: $funcType([types.Type], [$Uint32], false)}]; + Hasher.methods = [{prop: "Hash", name: "Hash", pkg: "", typ: $funcType([types.Type], [$Uint32], false)}, {prop: "hashFor", name: "hashFor", pkg: "golang.org/x/tools/go/types/typeutil", typ: $funcType([types.Type], [$Uint32], false)}, {prop: "hashTuple", name: "hashTuple", pkg: "golang.org/x/tools/go/types/typeutil", typ: $funcType([ptrType$19], [$Uint32], false)}, {prop: "hashUnion", name: "hashUnion", pkg: "golang.org/x/tools/go/types/typeutil", typ: $funcType([ptrType$14], [$Uint32], false)}, {prop: "hashTermSet", name: "hashTermSet", pkg: "golang.org/x/tools/go/types/typeutil", typ: $funcType([sliceType$6], [$Uint32], false)}, {prop: "hashTypeParam", name: "hashTypeParam", pkg: "golang.org/x/tools/go/types/typeutil", typ: $funcType([ptrType$18], [$Uint32], false)}, {prop: "hashPtr", name: "hashPtr", pkg: "golang.org/x/tools/go/types/typeutil", typ: $funcType([$emptyInterface], [$Uint32], false)}, {prop: "shallowHash", name: "shallowHash", pkg: "golang.org/x/tools/go/types/typeutil", typ: $funcType([types.Type], [$Uint32], false)}]; Map.init("golang.org/x/tools/go/types/typeutil", [{prop: "hasher", name: "hasher", embedded: false, exported: false, typ: Hasher, tag: ""}, {prop: "table", name: "table", embedded: false, exported: false, typ: mapType$2, tag: ""}, {prop: "length", name: "length", embedded: false, exported: false, typ: $Int, tag: ""}]); entry.init("golang.org/x/tools/go/types/typeutil", [{prop: "key", name: "key", embedded: false, exported: false, typ: types.Type, tag: ""}, {prop: "value", name: "value", embedded: false, exported: false, typ: $emptyInterface, tag: ""}]); Hasher.init("golang.org/x/tools/go/types/typeutil", [{prop: "memo", name: "memo", embedded: false, exported: false, typ: mapType$3, tag: ""}, {prop: "ptrMap", name: "ptrMap", embedded: false, exported: false, typ: mapType$4, tag: ""}, {prop: "sigTParams", name: "sigTParams", embedded: false, exported: false, typ: ptrType$7, tag: ""}]); @@ -119829,9 +121152,10 @@ $packages["golang.org/x/tools/go/types/typeutil"] = (function() { $r = ast.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = types.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = astutil.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = typeparams.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = reflect.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = sync.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = aliases.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = typeparams.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = reflect.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; @@ -125726,7 +127050,7 @@ $packages["github.com/gopherjs/gopherjs/compiler/linkname"] = (function() { $24r$3 = _r$4; $s = 17; case 17: return $24r$3; /* } */ case 15: - directives[0] = $append(directives[0], link); + directives[0] = $append(directives[0], (link === ptrType.nil && $throwNilPointerError(), link)); $s = -1; return $ifaceNil; /* */ } return; } var $f = {$blk: ParseGoLinknames·func1, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, comment, decl, err, isFunc, link, localName, node, $s};return $f; }; })(directives, file, isUnsafe, pkgPath); @@ -126045,6 +127369,15 @@ $packages["embed"] = (function() { } return 292; }; + $ptrType(file).prototype.String = function String() { + var {$24r, _r, f, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = this; + _r = fs.FormatFileInfo(f); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String, $c: true, $r, $24r, _r, f, $s};return $f; + }; $ptrType(FS).prototype.lookup = function lookup(name) { var {_r, _tuple, dir, elem, f, files, i, name, $s, $r, $c} = $restore(this, {name}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: @@ -126074,7 +127407,7 @@ $packages["embed"] = (function() { }; })(dir, elem, files)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } i = _r; if (i < files[0].$length && trimSlash(((i < 0 || i >= files[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : files[0].$array[files[0].$offset + i]).name) === name) { - $s = -1; return ((i < 0 || i >= files[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : files[0].$array[files[0].$offset + i]); + $s = -1; return ((i < 0 || i >= files[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(files[0].$array, files[0].$offset + i, ptrType$1)); } $s = -1; return ptrType$1.nil; /* */ } return; } var $f = {$blk: lookup, $c: true, $r, _r, _tuple, dir, elem, f, files, i, name, $s};return $f; @@ -126151,7 +127484,7 @@ $packages["embed"] = (function() { while (true) { if (!(_i < _ref.$length)) { break; } i = _i; - ((i < 0 || i >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + i] = (x$2 = dir.files, ((i < 0 || i >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i]))); + ((i < 0 || i >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + i] = (x$2 = dir.files, ((i < 0 || i >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$2.$array, x$2.$offset + i, ptrType$1)))); _i++; } $s = -1; return [list, $ifaceNil]; @@ -126218,6 +127551,18 @@ $packages["embed"] = (function() { f.offset = offset; return [offset, $ifaceNil]; }; + $ptrType(openFile).prototype.ReadAt = function ReadAt(b, offset) { + var b, f, n, offset, x$2; + f = this; + if ((offset.$high < 0 || (offset.$high === 0 && offset.$low < 0)) || (x$2 = (new $Int64(0, f.f.data.length)), (offset.$high > x$2.$high || (offset.$high === x$2.$high && offset.$low > x$2.$low)))) { + return [0, new fs.PathError.ptr("read", f.f.name, fs.ErrInvalid)]; + } + n = $copyString(b, $substring(f.f.data, $flatten64(offset))); + if (n < b.$length) { + return [n, io.EOF]; + } + return [n, $ifaceNil]; + }; $ptrType(openDir).prototype.Close = function Close$1() { var d; d = this; @@ -126252,7 +127597,7 @@ $packages["embed"] = (function() { while (true) { if (!(_i < _ref.$length)) { break; } i = _i; - ((i < 0 || i >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + i] = (x$2 = d.files, x$3 = d.offset + i >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3]))); + ((i < 0 || i >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + i] = (x$2 = d.files, x$3 = d.offset + i >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$2.$array, x$2.$offset + x$3, ptrType$1)))); _i++; } d.offset = d.offset + (n) >> 0; @@ -126283,8 +127628,8 @@ $packages["embed"] = (function() { /* */ } return; } var $f = {$blk: sortSearch$1, $c: true, $r, _r, _tmp, _tmp$1, f, h, i, j, n, $s};return $f; }; FS.methods = [{prop: "lookup", name: "lookup", pkg: "embed", typ: $funcType([$String], [ptrType$1], false)}, {prop: "readDir", name: "readDir", pkg: "embed", typ: $funcType([$String], [sliceType], false)}, {prop: "Open", name: "Open", pkg: "", typ: $funcType([$String], [fs.File, $error], false)}, {prop: "ReadDir", name: "ReadDir", pkg: "", typ: $funcType([$String], [sliceType$1, $error], false)}, {prop: "ReadFile", name: "ReadFile", pkg: "", typ: $funcType([$String], [sliceType$2, $error], false)}]; - ptrType$1.methods = [{prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "ModTime", name: "ModTime", pkg: "", typ: $funcType([], [time.Time], false)}, {prop: "IsDir", name: "IsDir", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Sys", name: "Sys", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [fs.FileMode], false)}, {prop: "Info", name: "Info", pkg: "", typ: $funcType([], [fs.FileInfo, $error], false)}, {prop: "Mode", name: "Mode", pkg: "", typ: $funcType([], [fs.FileMode], false)}]; - ptrType$2.methods = [{prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Stat", name: "Stat", pkg: "", typ: $funcType([], [fs.FileInfo, $error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "Seek", name: "Seek", pkg: "", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}]; + ptrType$1.methods = [{prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "ModTime", name: "ModTime", pkg: "", typ: $funcType([], [time.Time], false)}, {prop: "IsDir", name: "IsDir", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Sys", name: "Sys", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [fs.FileMode], false)}, {prop: "Info", name: "Info", pkg: "", typ: $funcType([], [fs.FileInfo, $error], false)}, {prop: "Mode", name: "Mode", pkg: "", typ: $funcType([], [fs.FileMode], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$2.methods = [{prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Stat", name: "Stat", pkg: "", typ: $funcType([], [fs.FileInfo, $error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "Seek", name: "Seek", pkg: "", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "ReadAt", name: "ReadAt", pkg: "", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}]; ptrType$4.methods = [{prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Stat", name: "Stat", pkg: "", typ: $funcType([], [fs.FileInfo, $error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "ReadDir", name: "ReadDir", pkg: "", typ: $funcType([$Int], [sliceType$1, $error], false)}]; FS.init("embed", [{prop: "files", name: "files", embedded: false, exported: false, typ: ptrType, tag: ""}]); file.init("embed", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "data", name: "data", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "hash", name: "hash", embedded: false, exported: false, typ: arrayType, tag: ""}]); @@ -126412,11 +127757,11 @@ $packages["github.com/gopherjs/gopherjs/compiler/prelude"] = (function() { $r = filepath.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = debug.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = strings.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - prelude = "Error.stackTraceLimit = Infinity;\n\nvar $NaN = NaN;\nvar $global, $module;\nif (typeof window !== \"undefined\") { /* web page */\n $global = window;\n} else if (typeof self !== \"undefined\") { /* web worker */\n $global = self;\n} else if (typeof global !== \"undefined\") { /* Node.js */\n $global = global;\n $global.require = require;\n} else { /* others (e.g. Nashorn) */\n $global = this;\n}\n\nif ($global === undefined || $global.Array === undefined) {\n throw new Error(\"no global object found\");\n}\nif (typeof module !== \"undefined\") {\n $module = module;\n}\n\nif (!$global.fs && $global.require) {\n try {\n var fs = $global.require('fs');\n if (typeof fs === \"object\" && fs !== null && Object.keys(fs).length !== 0) {\n $global.fs = fs;\n }\n } catch (e) { /* Ignore if the module couldn't be loaded. */ }\n}\n\nif (!$global.fs) {\n var outputBuf = \"\";\n var decoder = new TextDecoder(\"utf-8\");\n $global.fs = {\n constants: { O_WRONLY: -1, O_RDWR: -1, O_CREAT: -1, O_TRUNC: -1, O_APPEND: -1, O_EXCL: -1 }, // unused\n writeSync: function writeSync(fd, buf) {\n // check for a hook to redirect `os.Stdout` and `os.Stderr` to a different output\n // instead of the default `console.log`. This is useful for redirecting methods like\n // fmt.Println to write to a text box, like we do for the GopherJS playground.\n // `fd` is 1 for os.Stdout (\"/dev/stdout\") and 2 for os.Stderr (\"/dev/stderr\").\n // This will not work when running in node.js or another `fs` is present.\n // This will not effect the built-in `print` methods.\n if ($global.gopherjsWriteSyncHook) {\n outputBuf += decoder.decode(buf);\n $global.gopherjsWriteSyncHook(fd, outputBuf);\n outputBuf = \"\";\n return buf.length;\n }\n\n outputBuf += decoder.decode(buf);\n var nl = outputBuf.lastIndexOf(\"\\n\");\n if (nl != -1) {\n console.log(outputBuf.substring(0, nl));\n outputBuf = outputBuf.substring(nl + 1);\n }\n return buf.length;\n },\n write: function write(fd, buf, offset, length, position, callback) {\n if (offset !== 0 || length !== buf.length || position !== null) {\n callback(enosys());\n return;\n }\n var n = this.writeSync(fd, buf);\n callback(null, n);\n }\n };\n}\n\nvar $linknames = {} // Collection of functions referenced by a go:linkname directive.\nvar $packages = {}, $idCounter = 0;\nvar $keys = m => { return m ? Object.keys(m) : []; };\nvar $flushConsole = () => { };\nvar $throwRuntimeError; /* set by package \"runtime\" */\nvar $throwNilPointerError = () => { $throwRuntimeError(\"invalid memory address or nil pointer dereference\"); };\nvar $call = (fn, rcvr, args) => { return fn.apply(rcvr, args); };\nvar $makeFunc = fn => { return function(...args) { return $externalize(fn(this, new ($sliceType($jsObjectPtr))($global.Array.prototype.slice.call(args, []))), $emptyInterface); }; };\nvar $unused = v => { };\nvar $print = console.log;\n// Under Node we can emulate print() more closely by avoiding a newline.\nif (($global.process !== undefined) && $global.require) {\n try {\n var util = $global.require('util');\n $print = function(...args) { $global.process.stderr.write(util.format.apply(this, args)); };\n } catch (e) {\n // Failed to require util module, keep using console.log().\n }\n}\nvar $println = console.log\n\nvar $callForAllPackages = (methodName) => {\n var names = $keys($packages);\n for (var i = 0; i < names.length; i++) {\n var f = $packages[names[i]][methodName];\n if (typeof f == 'function') {\n f();\n }\n }\n}\n\nvar $mapArray = (array, f) => {\n var newArray = new array.constructor(array.length);\n for (var i = 0; i < array.length; i++) {\n newArray[i] = f(array[i]);\n }\n return newArray;\n};\n\n// $mapIndex returns the value of the given key in m, or undefined if m is nil/undefined or not a map\nvar $mapIndex = (m, key) => {\n return typeof m.get === \"function\" ? m.get(key) : undefined;\n};\n// $mapDelete deletes the key and associated value from m. If m is nil/undefined or not a map, $mapDelete is a no-op\nvar $mapDelete = (m, key) => {\n typeof m.delete === \"function\" && m.delete(key)\n};\n// Returns a method bound to the receiver instance, safe to invoke as a \n// standalone function. Bound function is cached for later reuse.\nvar $methodVal = (recv, name) => {\n var vals = recv.$methodVals || {};\n if (Object.isExtensible(recv)) {\n recv.$methodVals = vals; /* noop for primitives */\n }\n var f = vals[name];\n if (f !== undefined) {\n return f;\n }\n var method = recv[name];\n f = method.bind(recv);\n vals[name] = f;\n return f;\n};\n\nvar $methodExpr = (typ, name) => {\n var method = typ.prototype[name];\n if (method.$expr === undefined) {\n method.$expr = (...args) => {\n $stackDepthOffset--;\n try {\n if (typ.wrapped) {\n args[0] = new typ(args[0]);\n }\n return Function.call.apply(method, args);\n } finally {\n $stackDepthOffset++;\n }\n };\n }\n return method.$expr;\n};\n\nvar $ifaceMethodExprs = {};\nvar $ifaceMethodExpr = name => {\n var expr = $ifaceMethodExprs[\"$\" + name];\n if (expr === undefined) {\n expr = $ifaceMethodExprs[\"$\" + name] = (...args) => {\n $stackDepthOffset--;\n try {\n return Function.call.apply(args[0][name], args);\n } finally {\n $stackDepthOffset++;\n }\n };\n }\n return expr;\n};\n\nvar $subslice = (slice, low, high, max) => {\n if (high === undefined) {\n high = slice.$length;\n }\n if (max === undefined) {\n max = slice.$capacity;\n }\n if (low < 0 || high < low || max < high || high > slice.$capacity || max > slice.$capacity) {\n $throwRuntimeError(\"slice bounds out of range\");\n }\n if (slice === slice.constructor.nil) {\n return slice;\n }\n var s = new slice.constructor(slice.$array);\n s.$offset = slice.$offset + low;\n s.$length = high - low;\n s.$capacity = max - low;\n return s;\n};\n\nvar $substring = (str, low, high) => {\n if (low < 0 || high < low || high > str.length) {\n $throwRuntimeError(\"slice bounds out of range\");\n }\n return str.substring(low, high);\n};\n\n// Convert Go slice to an equivalent JS array type.\nvar $sliceToNativeArray = slice => {\n if (slice.$array.constructor !== Array) {\n return slice.$array.subarray(slice.$offset, slice.$offset + slice.$length);\n }\n return slice.$array.slice(slice.$offset, slice.$offset + slice.$length);\n};\n\n// Convert Go slice to a pointer to an underlying Go array, `[]T -> *[N]T`.\n// \n// Note that an array pointer can be represented by an \"unwrapped\" native array\n// type, and it will be wrapped back into its Go type when necessary.\nvar $sliceToGoArray = (slice, arrayPtrType) => {\n var arrayType = arrayPtrType.elem;\n if (arrayType !== undefined && slice.$length < arrayType.len) {\n $throwRuntimeError(\"cannot convert slice with length \" + slice.$length + \" to pointer to array with length \" + arrayType.len);\n }\n if (slice == slice.constructor.nil) {\n return arrayPtrType.nil; // Nil slice converts to nil array pointer.\n }\n if (slice.$array.constructor !== Array) {\n return slice.$array.subarray(slice.$offset, slice.$offset + arrayType.len);\n }\n if (slice.$offset == 0 && slice.$length == slice.$capacity && slice.$length == arrayType.len) {\n return slice.$array;\n }\n if (arrayType.len == 0) {\n return new arrayType([]);\n }\n\n // Array.slice (unlike TypedArray.subarray) returns a copy of an array range,\n // which is not sharing memory with the original one, which violates the spec\n // for slice to array conversion. This is incompatible with the Go spec, in\n // particular that the assignments to the array elements would be visible in\n // the slice. Prefer to fail explicitly instead of creating subtle bugs.\n $throwRuntimeError(\"gopherjs: non-numeric slice to underlying array conversion is not supported for subslices\");\n};\n\n// Convert between compatible slice types (e.g. native and names).\nvar $convertSliceType = (slice, desiredType) => {\n if (slice == slice.constructor.nil) {\n return desiredType.nil; // Preserve nil value.\n }\n\n return $subslice(new desiredType(slice.$array), slice.$offset, slice.$offset + slice.$length);\n}\n\nvar $decodeRune = (str, pos) => {\n var c0 = str.charCodeAt(pos);\n\n if (c0 < 0x80) {\n return [c0, 1];\n }\n\n if (c0 !== c0 || c0 < 0xC0) {\n return [0xFFFD, 1];\n }\n\n var c1 = str.charCodeAt(pos + 1);\n if (c1 !== c1 || c1 < 0x80 || 0xC0 <= c1) {\n return [0xFFFD, 1];\n }\n\n if (c0 < 0xE0) {\n var r = (c0 & 0x1F) << 6 | (c1 & 0x3F);\n if (r <= 0x7F) {\n return [0xFFFD, 1];\n }\n return [r, 2];\n }\n\n var c2 = str.charCodeAt(pos + 2);\n if (c2 !== c2 || c2 < 0x80 || 0xC0 <= c2) {\n return [0xFFFD, 1];\n }\n\n if (c0 < 0xF0) {\n var r = (c0 & 0x0F) << 12 | (c1 & 0x3F) << 6 | (c2 & 0x3F);\n if (r <= 0x7FF) {\n return [0xFFFD, 1];\n }\n if (0xD800 <= r && r <= 0xDFFF) {\n return [0xFFFD, 1];\n }\n return [r, 3];\n }\n\n var c3 = str.charCodeAt(pos + 3);\n if (c3 !== c3 || c3 < 0x80 || 0xC0 <= c3) {\n return [0xFFFD, 1];\n }\n\n if (c0 < 0xF8) {\n var r = (c0 & 0x07) << 18 | (c1 & 0x3F) << 12 | (c2 & 0x3F) << 6 | (c3 & 0x3F);\n if (r <= 0xFFFF || 0x10FFFF < r) {\n return [0xFFFD, 1];\n }\n return [r, 4];\n }\n\n return [0xFFFD, 1];\n};\n\nvar $encodeRune = r => {\n if (r < 0 || r > 0x10FFFF || (0xD800 <= r && r <= 0xDFFF)) {\n r = 0xFFFD;\n }\n if (r <= 0x7F) {\n return String.fromCharCode(r);\n }\n if (r <= 0x7FF) {\n return String.fromCharCode(0xC0 | r >> 6, 0x80 | (r & 0x3F));\n }\n if (r <= 0xFFFF) {\n return String.fromCharCode(0xE0 | r >> 12, 0x80 | (r >> 6 & 0x3F), 0x80 | (r & 0x3F));\n }\n return String.fromCharCode(0xF0 | r >> 18, 0x80 | (r >> 12 & 0x3F), 0x80 | (r >> 6 & 0x3F), 0x80 | (r & 0x3F));\n};\n\nvar $stringToBytes = str => {\n var array = new Uint8Array(str.length);\n for (var i = 0; i < str.length; i++) {\n array[i] = str.charCodeAt(i);\n }\n return array;\n};\n\nvar $bytesToString = slice => {\n if (slice.$length === 0) {\n return \"\";\n }\n var str = \"\";\n for (var i = 0; i < slice.$length; i += 10000) {\n str += String.fromCharCode.apply(undefined, slice.$array.subarray(slice.$offset + i, slice.$offset + Math.min(slice.$length, i + 10000)));\n }\n return str;\n};\n\nvar $stringToRunes = str => {\n var array = new Int32Array(str.length);\n var rune, j = 0;\n for (var i = 0; i < str.length; i += rune[1], j++) {\n rune = $decodeRune(str, i);\n array[j] = rune[0];\n }\n return array.subarray(0, j);\n};\n\nvar $runesToString = slice => {\n if (slice.$length === 0) {\n return \"\";\n }\n var str = \"\";\n for (var i = 0; i < slice.$length; i++) {\n str += $encodeRune(slice.$array[slice.$offset + i]);\n }\n return str;\n};\n\nvar $copyString = (dst, src) => {\n var n = Math.min(src.length, dst.$length);\n for (var i = 0; i < n; i++) {\n dst.$array[dst.$offset + i] = src.charCodeAt(i);\n }\n return n;\n};\n\nvar $copySlice = (dst, src) => {\n var n = Math.min(src.$length, dst.$length);\n $copyArray(dst.$array, src.$array, dst.$offset, src.$offset, n, dst.constructor.elem);\n return n;\n};\n\nvar $copyArray = (dst, src, dstOffset, srcOffset, n, elem) => {\n if (n === 0 || (dst === src && dstOffset === srcOffset)) {\n return;\n }\n\n if (src.subarray) {\n dst.set(src.subarray(srcOffset, srcOffset + n), dstOffset);\n return;\n }\n\n switch (elem.kind) {\n case $kindArray:\n case $kindStruct:\n if (dst === src && dstOffset > srcOffset) {\n for (var i = n - 1; i >= 0; i--) {\n elem.copy(dst[dstOffset + i], src[srcOffset + i]);\n }\n return;\n }\n for (var i = 0; i < n; i++) {\n elem.copy(dst[dstOffset + i], src[srcOffset + i]);\n }\n return;\n }\n\n if (dst === src && dstOffset > srcOffset) {\n for (var i = n - 1; i >= 0; i--) {\n dst[dstOffset + i] = src[srcOffset + i];\n }\n return;\n }\n for (var i = 0; i < n; i++) {\n dst[dstOffset + i] = src[srcOffset + i];\n }\n};\n\nvar $clone = (src, type) => {\n var clone = type.zero();\n type.copy(clone, src);\n return clone;\n};\n\nvar $pointerOfStructConversion = (obj, type) => {\n if (obj.$proxies === undefined) {\n obj.$proxies = {};\n obj.$proxies[obj.constructor.string] = obj;\n }\n var proxy = obj.$proxies[type.string];\n if (proxy === undefined) {\n var properties = {};\n for (var i = 0; i < type.elem.fields.length; i++) {\n (fieldProp => {\n properties[fieldProp] = {\n get() { return obj[fieldProp]; },\n set(value) { obj[fieldProp] = value; }\n };\n })(type.elem.fields[i].prop);\n }\n proxy = Object.create(type.prototype, properties);\n proxy.$val = proxy;\n obj.$proxies[type.string] = proxy;\n proxy.$proxies = obj.$proxies;\n }\n return proxy;\n};\n\nvar $append = function (slice) {\n return $internalAppend(slice, arguments, 1, arguments.length - 1);\n};\n\nvar $appendSlice = (slice, toAppend) => {\n if (toAppend.constructor === String) {\n var bytes = $stringToBytes(toAppend);\n return $internalAppend(slice, bytes, 0, bytes.length);\n }\n return $internalAppend(slice, toAppend.$array, toAppend.$offset, toAppend.$length);\n};\n\n// Internal helper function for appending to a slice.\n// The given slice will not be modified.\n//\n// If no values are being appended, the original slice will be returned.\n// Otherwise, a new slice will be created with the appended values.\n//\n// If the underlying array has enough capacity, it will be used.\n// Otherwise, a new array will be allocated with enough capacity to hold\n// the new values and the original array will not be modified.\nvar $internalAppend = (slice, array, offset, length) => {\n if (length === 0) {\n return slice;\n }\n\n let newLength = slice.$length + length;\n let newSlice = $growSlice(slice, newLength);\n \n let newArray = newSlice.$array;\n $copyArray(newArray, array, newSlice.$offset + newSlice.$length, offset, length, newSlice.constructor.elem);\n \n newSlice.$length = newLength;\n return newSlice;\n};\n\n// Calculates the new capacity for a slice that is expected to grow to at least\n// the given minCapacity. This follows the Go runtime's growth strategy.\n// The oldCapacity is the current capacity of the slice that is being grown.\nconst $calculateNewCapacity = (minCapacity, oldCapacity) => {\n return Math.max(minCapacity, oldCapacity < 1024 ? oldCapacity * 2 : Math.floor(oldCapacity * 5 / 4));\n};\n\n// Potentially grows the slice to have a capacity of at least minCapacity.\n//\n// A new slice will always be returned, even if the given slice had the required capacity.\n// If the slice didn't have enough capacity, the new slice will have a\n// new array created for it with the required minimum capacity.\n//\n// This takes the place of the growSlice function in the reflect package.\nvar $growSlice = (slice, minCapacity) => {\n let array = slice.$array;\n let offset = slice.$offset;\n const length = slice.$length;\n let capacity = slice.$capacity;\n\n if (minCapacity > capacity) {\n capacity = $calculateNewCapacity(minCapacity, capacity);\n \n let newArray;\n if (array.constructor === Array) {\n newArray = array.slice(offset, offset + length);\n newArray.length = capacity;\n const zero = slice.constructor.elem.zero;\n for (let i = slice.$length; i < capacity; i++) {\n newArray[i] = zero();\n }\n } else {\n newArray = new array.constructor(capacity);\n newArray.set(array.subarray(offset, offset + length));\n }\n\n array = newArray;\n offset = 0;\n }\n\n let newSlice = new slice.constructor(array);\n newSlice.$offset = offset;\n newSlice.$length = length;\n newSlice.$capacity = capacity;\n return newSlice;\n};\n\nvar $equal = (a, b, type) => {\n if (type === $jsObjectPtr) {\n return a === b;\n }\n switch (type.kind) {\n case $kindComplex64:\n case $kindComplex128:\n return a.$real === b.$real && a.$imag === b.$imag;\n case $kindInt64:\n case $kindUint64:\n return a.$high === b.$high && a.$low === b.$low;\n case $kindArray:\n if (a.length !== b.length) {\n return false;\n }\n for (var i = 0; i < a.length; i++) {\n if (!$equal(a[i], b[i], type.elem)) {\n return false;\n }\n }\n return true;\n case $kindStruct:\n for (var i = 0; i < type.fields.length; i++) {\n var f = type.fields[i];\n if (!$equal(a[f.prop], b[f.prop], f.typ)) {\n return false;\n }\n }\n return true;\n case $kindInterface:\n return $interfaceIsEqual(a, b);\n default:\n return a === b;\n }\n};\n\nvar $interfaceIsEqual = (a, b) => {\n if (a === $ifaceNil || b === $ifaceNil) {\n return a === b;\n }\n if (a.constructor !== b.constructor) {\n return false;\n }\n if (a.constructor === $jsObjectPtr) {\n return a.object === b.object;\n }\n if (!a.constructor.comparable) {\n $throwRuntimeError(\"comparing uncomparable type \" + a.constructor.string);\n }\n return $equal(a.$val, b.$val, a.constructor);\n};\n\nvar $unsafeMethodToFunction = (typ, name, isPtr) => {\n if (isPtr) {\n return (r, ...args) => {\n var ptrType = $ptrType(typ);\n if (r.constructor != ptrType) {\n switch (typ.kind) {\n case $kindStruct:\n r = $pointerOfStructConversion(r, ptrType);\n break;\n case $kindArray:\n r = new ptrType(r);\n break;\n default:\n r = new ptrType(r.$get, r.$set, r.$target);\n }\n }\n return r[name](...args);\n };\n } else {\n return (r, ...args) => {\n var ptrType = $ptrType(typ);\n if (r.constructor != ptrType) {\n switch (typ.kind) {\n case $kindStruct:\n r = $clone(r, typ);\n break;\n case $kindSlice:\n r = $convertSliceType(r, typ);\n break;\n case $kindComplex64:\n case $kindComplex128:\n r = new typ(r.$real, r.$imag);\n break;\n default:\n r = new typ(r);\n }\n }\n return r[name](...args);\n };\n }\n};\n\nvar $id = x => {\n return x;\n};\n\nvar $instanceOf = (x, y) => {\n return x instanceof y;\n};\n\nvar $typeOf = x => {\n return typeof (x);\n};\n\nvar $sliceData = (slice, typ) => {\n if (slice === typ.nil) {\n return $ptrType(typ.elem).nil;\n }\n return $indexPtr(slice.$array, slice.$offset, typ.elem);\n};\n"; - types = "var $kindBool = 1;\nvar $kindInt = 2;\nvar $kindInt8 = 3;\nvar $kindInt16 = 4;\nvar $kindInt32 = 5;\nvar $kindInt64 = 6;\nvar $kindUint = 7;\nvar $kindUint8 = 8;\nvar $kindUint16 = 9;\nvar $kindUint32 = 10;\nvar $kindUint64 = 11;\nvar $kindUintptr = 12;\nvar $kindFloat32 = 13;\nvar $kindFloat64 = 14;\nvar $kindComplex64 = 15;\nvar $kindComplex128 = 16;\nvar $kindArray = 17;\nvar $kindChan = 18;\nvar $kindFunc = 19;\nvar $kindInterface = 20;\nvar $kindMap = 21;\nvar $kindPtr = 22;\nvar $kindSlice = 23;\nvar $kindString = 24;\nvar $kindStruct = 25;\nvar $kindUnsafePointer = 26;\n\nvar $methodSynthesizers = [];\nvar $addMethodSynthesizer = f => {\n if ($methodSynthesizers === null) {\n f();\n return;\n }\n $methodSynthesizers.push(f);\n};\nvar $synthesizeMethods = () => {\n $methodSynthesizers.forEach(f => { f(); });\n $methodSynthesizers = null;\n};\n\nvar $ifaceKeyFor = x => {\n if (x === $ifaceNil) {\n return 'nil';\n }\n var c = x.constructor;\n return c.string + '$' + c.keyFor(x.$val);\n};\n\nvar $identity = x => { return x; };\n\nvar $typeIDCounter = 0;\n\nvar $idKey = x => {\n if (x.$id === undefined) {\n $idCounter++;\n x.$id = $idCounter;\n }\n return String(x.$id);\n};\n\n// Creates constructor functions for array pointer types. Returns a new function\n// instance each time to make sure each type is independent of the other.\nvar $arrayPtrCtor = () => {\n return function (array) {\n this.$get = () => { return array; };\n this.$set = function (v) { typ.copy(this, v); };\n this.$val = array;\n };\n}\n\nvar $newType = (size, kind, string, named, pkg, exported, constructor) => {\n var typ;\n switch (kind) {\n case $kindBool:\n case $kindInt:\n case $kindInt8:\n case $kindInt16:\n case $kindInt32:\n case $kindUint:\n case $kindUint8:\n case $kindUint16:\n case $kindUint32:\n case $kindUintptr:\n case $kindUnsafePointer:\n typ = function (v) { this.$val = v; };\n typ.wrapped = true;\n typ.keyFor = $identity;\n break;\n\n case $kindString:\n typ = function (v) { this.$val = v; };\n typ.wrapped = true;\n typ.keyFor = x => { return \"$\" + x; };\n break;\n\n case $kindFloat32:\n case $kindFloat64:\n typ = function (v) { this.$val = v; };\n typ.wrapped = true;\n typ.keyFor = x => { return $floatKey(x); };\n break;\n\n case $kindInt64:\n typ = function (high, low) {\n this.$high = (high + Math.floor(Math.ceil(low) / 4294967296)) >> 0;\n this.$low = low >>> 0;\n this.$val = this;\n };\n typ.keyFor = x => { return x.$high + \"$\" + x.$low; };\n break;\n\n case $kindUint64:\n typ = function (high, low) {\n this.$high = (high + Math.floor(Math.ceil(low) / 4294967296)) >>> 0;\n this.$low = low >>> 0;\n this.$val = this;\n };\n typ.keyFor = x => { return x.$high + \"$\" + x.$low; };\n break;\n\n case $kindComplex64:\n typ = function (real, imag) {\n this.$real = $fround(real);\n this.$imag = $fround(imag);\n this.$val = this;\n };\n typ.keyFor = x => { return x.$real + \"$\" + x.$imag; };\n break;\n\n case $kindComplex128:\n typ = function (real, imag) {\n this.$real = real;\n this.$imag = imag;\n this.$val = this;\n };\n typ.keyFor = x => { return x.$real + \"$\" + x.$imag; };\n break;\n\n case $kindArray:\n typ = function (v) { this.$val = v; };\n typ.wrapped = true;\n typ.ptr = $newType(4, $kindPtr, \"*\" + string, false, \"\", false, $arrayPtrCtor());\n typ.init = (elem, len) => {\n typ.elem = elem;\n typ.len = len;\n typ.comparable = elem.comparable;\n typ.keyFor = x => {\n return Array.prototype.join.call($mapArray(x, e => {\n return String(elem.keyFor(e)).replace(/\\\\/g, \"\\\\\\\\\").replace(/\\$/g, \"\\\\$\");\n }), \"$\");\n };\n typ.copy = (dst, src) => {\n if (src.length === undefined) {\n // copy from a slice, the slice may be bigger but not smaller than the array\n if (src.$length < dst.length) {\n $throwRuntimeError(\"cannot convert slice with length \"+src.$length+\" to array or pointer to array with length \"+dst.length);\n }\n $copyArray(dst, src.$array, 0, 0, dst.length, elem);\n } else {\n // copy from another array\n $copyArray(dst, src, 0, 0, src.length, elem);\n }\n };\n typ.ptr.init(typ);\n Object.defineProperty(typ.ptr.nil, \"nilCheck\", { get: $throwNilPointerError });\n };\n break;\n\n case $kindChan:\n typ = function (v) { this.$val = v; };\n typ.wrapped = true;\n typ.keyFor = $idKey;\n typ.init = (elem, sendOnly, recvOnly) => {\n typ.elem = elem;\n typ.sendOnly = sendOnly;\n typ.recvOnly = recvOnly;\n };\n break;\n\n case $kindFunc:\n typ = function (v) { this.$val = v; };\n typ.wrapped = true;\n typ.init = (params, results, variadic) => {\n typ.params = params;\n typ.results = results;\n typ.variadic = variadic;\n typ.comparable = false;\n };\n break;\n\n case $kindInterface:\n typ = { implementedBy: {}, missingMethodFor: {} };\n typ.keyFor = $ifaceKeyFor;\n typ.init = methods => {\n typ.methods = methods;\n methods.forEach(m => {\n $ifaceNil[m.prop] = $throwNilPointerError;\n });\n };\n break;\n\n case $kindMap:\n typ = function (v) { this.$val = v; };\n typ.wrapped = true;\n typ.init = (key, elem) => {\n typ.key = key;\n typ.elem = elem;\n typ.comparable = false;\n };\n break;\n\n case $kindPtr:\n typ = constructor || function (getter, setter, target) {\n this.$get = getter;\n this.$set = setter;\n this.$target = target;\n this.$val = this;\n };\n typ.keyFor = $idKey;\n typ.init = elem => {\n typ.elem = elem;\n typ.wrapped = (elem.kind === $kindArray);\n typ.nil = new typ($throwNilPointerError, $throwNilPointerError);\n };\n break;\n\n case $kindSlice:\n typ = function (array) {\n if (array.constructor !== typ.nativeArray) {\n array = new typ.nativeArray(array);\n }\n this.$array = array;\n this.$offset = 0;\n this.$length = array.length;\n this.$capacity = array.length;\n this.$val = this;\n };\n typ.init = elem => {\n typ.elem = elem;\n typ.comparable = false;\n typ.nativeArray = $nativeArray(elem.kind);\n typ.nil = new typ([]);\n Object.freeze(typ.nil);\n };\n break;\n\n case $kindStruct:\n typ = function (v) { this.$val = v; };\n typ.wrapped = true;\n typ.ptr = $newType(4, $kindPtr, \"*\" + string, false, pkg, exported, constructor);\n typ.ptr.elem = typ;\n typ.ptr.prototype.$get = function () { return this; };\n typ.ptr.prototype.$set = function (v) { typ.copy(this, v); };\n typ.init = (pkgPath, fields) => {\n typ.pkgPath = pkgPath;\n typ.fields = fields;\n fields.forEach(f => {\n if (!f.typ.comparable) {\n typ.comparable = false;\n }\n });\n typ.keyFor = x => {\n var val = x.$val;\n return $mapArray(fields, f => {\n return String(f.typ.keyFor(val[f.prop])).replace(/\\\\/g, \"\\\\\\\\\").replace(/\\$/g, \"\\\\$\");\n }).join(\"$\");\n };\n typ.copy = (dst, src) => {\n for (var i = 0; i < fields.length; i++) {\n var f = fields[i];\n switch (f.typ.kind) {\n case $kindArray:\n case $kindStruct:\n f.typ.copy(dst[f.prop], src[f.prop]);\n continue;\n default:\n dst[f.prop] = src[f.prop];\n continue;\n }\n }\n };\n /* nil value */\n var properties = {};\n fields.forEach(f => {\n properties[f.prop] = { get: $throwNilPointerError, set: $throwNilPointerError };\n });\n typ.ptr.nil = Object.create(constructor.prototype, properties);\n typ.ptr.nil.$val = typ.ptr.nil;\n /* methods for embedded fields */\n $addMethodSynthesizer(() => {\n var synthesizeMethod = (target, m, f) => {\n if (target.prototype[m.prop] !== undefined) { return; }\n target.prototype[m.prop] = function(...args) {\n var v = this.$val[f.prop];\n if (f.typ === $jsObjectPtr) {\n v = new $jsObjectPtr(v);\n }\n if (v.$val === undefined) {\n v = new f.typ(v);\n }\n return v[m.prop](...args);\n };\n };\n fields.forEach(f => {\n if (f.embedded) {\n $methodSet(f.typ).forEach(m => {\n synthesizeMethod(typ, m, f);\n synthesizeMethod(typ.ptr, m, f);\n });\n $methodSet($ptrType(f.typ)).forEach(m => {\n synthesizeMethod(typ.ptr, m, f);\n });\n }\n });\n });\n };\n break;\n\n default:\n $panic(new $String(\"invalid kind: \" + kind));\n }\n\n switch (kind) {\n case $kindBool:\n case $kindMap:\n typ.zero = () => { return false; };\n break;\n\n case $kindInt:\n case $kindInt8:\n case $kindInt16:\n case $kindInt32:\n case $kindUint:\n case $kindUint8:\n case $kindUint16:\n case $kindUint32:\n case $kindUintptr:\n case $kindUnsafePointer:\n case $kindFloat32:\n case $kindFloat64:\n typ.zero = () => { return 0; };\n break;\n\n case $kindString:\n typ.zero = () => { return \"\"; };\n break;\n\n case $kindInt64:\n case $kindUint64:\n case $kindComplex64:\n case $kindComplex128:\n var zero = new typ(0, 0);\n typ.zero = () => { return zero; };\n break;\n\n case $kindPtr:\n case $kindSlice:\n typ.zero = () => { return typ.nil; };\n break;\n\n case $kindChan:\n typ.zero = () => { return $chanNil; };\n break;\n\n case $kindFunc:\n typ.zero = () => { return $throwNilPointerError; };\n break;\n\n case $kindInterface:\n typ.zero = () => { return $ifaceNil; };\n break;\n\n case $kindArray:\n typ.zero = () => {\n var arrayClass = $nativeArray(typ.elem.kind);\n if (arrayClass !== Array) {\n return new arrayClass(typ.len);\n }\n var array = new Array(typ.len);\n for (var i = 0; i < typ.len; i++) {\n array[i] = typ.elem.zero();\n }\n return array;\n };\n break;\n\n case $kindStruct:\n typ.zero = () => { return new typ.ptr(); };\n break;\n\n default:\n $panic(new $String(\"invalid kind: \" + kind));\n }\n\n typ.id = $typeIDCounter;\n $typeIDCounter++;\n typ.size = size;\n typ.kind = kind;\n typ.string = string;\n typ.named = named;\n typ.pkg = pkg;\n typ.exported = exported;\n typ.methods = [];\n typ.methodSetCache = null;\n typ.comparable = true;\n return typ;\n};\n\nvar $methodSet = typ => {\n if (typ.methodSetCache !== null) {\n return typ.methodSetCache;\n }\n var base = {};\n\n var isPtr = (typ.kind === $kindPtr);\n if (isPtr && typ.elem.kind === $kindInterface) {\n typ.methodSetCache = [];\n return [];\n }\n\n var current = [{ typ: isPtr ? typ.elem : typ, indirect: isPtr }];\n\n var seen = {};\n\n while (current.length > 0) {\n var next = [];\n var mset = [];\n\n current.forEach(e => {\n if (seen[e.typ.string]) {\n return;\n }\n seen[e.typ.string] = true;\n\n if (e.typ.named) {\n mset = mset.concat(e.typ.methods);\n if (e.indirect) {\n mset = mset.concat($ptrType(e.typ).methods);\n }\n }\n\n switch (e.typ.kind) {\n case $kindStruct:\n e.typ.fields.forEach(f => {\n if (f.embedded) {\n var fTyp = f.typ;\n var fIsPtr = (fTyp.kind === $kindPtr);\n next.push({ typ: fIsPtr ? fTyp.elem : fTyp, indirect: e.indirect || fIsPtr });\n }\n });\n break;\n\n case $kindInterface:\n mset = mset.concat(e.typ.methods);\n break;\n }\n });\n\n mset.forEach(m => {\n if (base[m.name] === undefined) {\n base[m.name] = m;\n }\n });\n\n current = next;\n }\n\n typ.methodSetCache = [];\n Object.keys(base).sort().forEach(name => {\n typ.methodSetCache.push(base[name]);\n });\n return typ.methodSetCache;\n};\n\nvar $Bool = $newType(1, $kindBool, \"bool\", true, \"\", false, null);\nvar $Int = $newType(4, $kindInt, \"int\", true, \"\", false, null);\nvar $Int8 = $newType(1, $kindInt8, \"int8\", true, \"\", false, null);\nvar $Int16 = $newType(2, $kindInt16, \"int16\", true, \"\", false, null);\nvar $Int32 = $newType(4, $kindInt32, \"int32\", true, \"\", false, null);\nvar $Int64 = $newType(8, $kindInt64, \"int64\", true, \"\", false, null);\nvar $Uint = $newType(4, $kindUint, \"uint\", true, \"\", false, null);\nvar $Uint8 = $newType(1, $kindUint8, \"uint8\", true, \"\", false, null);\nvar $Uint16 = $newType(2, $kindUint16, \"uint16\", true, \"\", false, null);\nvar $Uint32 = $newType(4, $kindUint32, \"uint32\", true, \"\", false, null);\nvar $Uint64 = $newType(8, $kindUint64, \"uint64\", true, \"\", false, null);\nvar $Uintptr = $newType(4, $kindUintptr, \"uintptr\", true, \"\", false, null);\nvar $Float32 = $newType(4, $kindFloat32, \"float32\", true, \"\", false, null);\nvar $Float64 = $newType(8, $kindFloat64, \"float64\", true, \"\", false, null);\nvar $Complex64 = $newType(8, $kindComplex64, \"complex64\", true, \"\", false, null);\nvar $Complex128 = $newType(16, $kindComplex128, \"complex128\", true, \"\", false, null);\nvar $String = $newType(8, $kindString, \"string\", true, \"\", false, null);\nvar $UnsafePointer = $newType(4, $kindUnsafePointer, \"unsafe.Pointer\", true, \"unsafe\", false, null);\n\nvar $nativeArray = elemKind => {\n switch (elemKind) {\n case $kindInt:\n return Int32Array;\n case $kindInt8:\n return Int8Array;\n case $kindInt16:\n return Int16Array;\n case $kindInt32:\n return Int32Array;\n case $kindUint:\n return Uint32Array;\n case $kindUint8:\n return Uint8Array;\n case $kindUint16:\n return Uint16Array;\n case $kindUint32:\n return Uint32Array;\n case $kindUintptr:\n return Uint32Array;\n case $kindFloat32:\n return Float32Array;\n case $kindFloat64:\n return Float64Array;\n default:\n return Array;\n }\n};\nvar $toNativeArray = (elemKind, array) => {\n var nativeArray = $nativeArray(elemKind);\n if (nativeArray === Array) {\n return array;\n }\n return new nativeArray(array);\n};\nvar $arrayTypes = {};\nvar $arrayType = (elem, len) => {\n var typeKey = elem.id + \"$\" + len;\n var typ = $arrayTypes[typeKey];\n if (typ === undefined) {\n typ = $newType(elem.size * len, $kindArray, \"[\" + len + \"]\" + elem.string, false, \"\", false, null);\n $arrayTypes[typeKey] = typ;\n typ.init(elem, len);\n }\n return typ;\n};\n\nvar $chanType = (elem, sendOnly, recvOnly) => {\n var string = (recvOnly ? \"<-\" : \"\") + \"chan\" + (sendOnly ? \"<- \" : \" \");\n if (!sendOnly && !recvOnly && (elem.string[0] == \"<\")) {\n string += \"(\" + elem.string + \")\";\n } else {\n string += elem.string;\n }\n var field = sendOnly ? \"SendChan\" : (recvOnly ? \"RecvChan\" : \"Chan\");\n var typ = elem[field];\n if (typ === undefined) {\n typ = $newType(4, $kindChan, string, false, \"\", false, null);\n elem[field] = typ;\n typ.init(elem, sendOnly, recvOnly);\n }\n return typ;\n};\nvar $Chan = function (elem, capacity) {\n if (capacity < 0 || capacity > 2147483647) {\n $throwRuntimeError(\"makechan: size out of range\");\n }\n this.$elem = elem;\n this.$capacity = capacity;\n this.$buffer = [];\n this.$sendQueue = [];\n this.$recvQueue = [];\n this.$closed = false;\n};\nvar $chanNil = new $Chan(null, 0);\n$chanNil.$sendQueue = $chanNil.$recvQueue = { length: 0, push() { }, shift() { return undefined; }, indexOf() { return -1; } };\n\nvar $funcTypes = {};\nvar $funcType = (params, results, variadic) => {\n var typeKey = $mapArray(params, p => { return p.id; }).join(\",\") + \"$\" + $mapArray(results, r => { return r.id; }).join(\",\") + \"$\" + variadic;\n var typ = $funcTypes[typeKey];\n if (typ === undefined) {\n var paramTypes = $mapArray(params, p => { return p.string; });\n if (variadic) {\n paramTypes[paramTypes.length - 1] = \"...\" + paramTypes[paramTypes.length - 1].substring(2);\n }\n var string = \"func(\" + paramTypes.join(\", \") + \")\";\n if (results.length === 1) {\n string += \" \" + results[0].string;\n } else if (results.length > 1) {\n string += \" (\" + $mapArray(results, r => { return r.string; }).join(\", \") + \")\";\n }\n typ = $newType(4, $kindFunc, string, false, \"\", false, null);\n $funcTypes[typeKey] = typ;\n typ.init(params, results, variadic);\n }\n return typ;\n};\n\nvar $interfaceTypes = {};\nvar $interfaceType = methods => {\n var typeKey = $mapArray(methods, m => { return m.pkg + \",\" + m.name + \",\" + m.typ.id; }).join(\"$\");\n var typ = $interfaceTypes[typeKey];\n if (typ === undefined) {\n var string = \"interface {}\";\n if (methods.length !== 0) {\n string = \"interface { \" + $mapArray(methods, m => {\n return (m.pkg !== \"\" ? m.pkg + \".\" : \"\") + m.name + m.typ.string.substring(4);\n }).join(\"; \") + \" }\";\n }\n typ = $newType(8, $kindInterface, string, false, \"\", false, null);\n $interfaceTypes[typeKey] = typ;\n typ.init(methods);\n }\n return typ;\n};\nvar $emptyInterface = $interfaceType([]);\nvar $ifaceNil = {};\nvar $error = $newType(8, $kindInterface, \"error\", true, \"\", false, null);\n$error.init([{ prop: \"Error\", name: \"Error\", pkg: \"\", typ: $funcType([], [$String], false) }]);\n\nvar $mapTypes = {};\nvar $mapType = (key, elem) => {\n var typeKey = key.id + \"$\" + elem.id;\n var typ = $mapTypes[typeKey];\n if (typ === undefined) {\n typ = $newType(4, $kindMap, \"map[\" + key.string + \"]\" + elem.string, false, \"\", false, null);\n $mapTypes[typeKey] = typ;\n typ.init(key, elem);\n }\n return typ;\n};\nvar $makeMap = (keyForFunc, entries) => {\n var m = new Map();\n for (var i = 0; i < entries.length; i++) {\n var e = entries[i];\n m.set(keyForFunc(e.k), e);\n }\n return m;\n};\n\nvar $ptrType = elem => {\n var typ = elem.ptr;\n if (typ === undefined) {\n typ = $newType(4, $kindPtr, \"*\" + elem.string, false, \"\", elem.exported, null);\n elem.ptr = typ;\n typ.init(elem);\n }\n return typ;\n};\n\nvar $newDataPointer = (data, constructor) => {\n if (constructor.elem.kind === $kindStruct) {\n return data;\n }\n return new constructor(() => { return data; }, v => { data = v; });\n};\n\nvar $indexPtr = (array, index, constructor) => {\n if (array.buffer) {\n // Pointers to the same underlying ArrayBuffer share cache.\n var cache = array.buffer.$ptr = array.buffer.$ptr || {};\n // Pointers of different primitive types are non-comparable and stored in different caches.\n var typeCache = cache[array.name] = cache[array.name] || {};\n var cacheIdx = array.BYTES_PER_ELEMENT * index + array.byteOffset;\n return typeCache[cacheIdx] || (typeCache[cacheIdx] = new constructor(() => { return array[index]; }, v => { array[index] = v; }));\n } else {\n array.$ptr = array.$ptr || {};\n return array.$ptr[index] || (array.$ptr[index] = new constructor(() => { return array[index]; }, v => { array[index] = v; }));\n }\n};\n\nvar $sliceType = elem => {\n var typ = elem.slice;\n if (typ === undefined) {\n typ = $newType(12, $kindSlice, \"[]\" + elem.string, false, \"\", false, null);\n elem.slice = typ;\n typ.init(elem);\n }\n return typ;\n};\nvar $makeSlice = (typ, length, capacity = length) => {\n if (length < 0 || length > 2147483647) {\n $throwRuntimeError(\"makeslice: len out of range\");\n }\n if (capacity < 0 || capacity < length || capacity > 2147483647) {\n $throwRuntimeError(\"makeslice: cap out of range\");\n }\n var array = new typ.nativeArray(capacity);\n if (typ.nativeArray === Array) {\n for (var i = 0; i < capacity; i++) {\n array[i] = typ.elem.zero();\n }\n }\n var slice = new typ(array);\n slice.$length = length;\n return slice;\n};\n\nvar $structTypes = {};\nvar $structType = (pkgPath, fields) => {\n var typeKey = $mapArray(fields, f => { return f.name + \",\" + f.typ.id + \",\" + f.tag; }).join(\"$\");\n var typ = $structTypes[typeKey];\n if (typ === undefined) {\n var string = \"struct { \" + $mapArray(fields, f => {\n var str = f.typ.string + (f.tag !== \"\" ? (\" \\\"\" + f.tag.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, \"\\\\\\\"\") + \"\\\"\") : \"\");\n if (f.embedded) {\n return str;\n }\n return f.name + \" \" + str;\n }).join(\"; \") + \" }\";\n if (fields.length === 0) {\n string = \"struct {}\";\n }\n typ = $newType(0, $kindStruct, string, false, \"\", false, function(...args) {\n this.$val = this;\n for (var i = 0; i < fields.length; i++) {\n var f = fields[i];\n if (f.name == '_') {\n continue;\n }\n var arg = args[i];\n this[f.prop] = arg !== undefined ? arg : f.typ.zero();\n }\n });\n $structTypes[typeKey] = typ;\n typ.init(pkgPath, fields);\n }\n return typ;\n};\n\nvar $assertType = (value, type, returnTuple) => {\n var isInterface = (type.kind === $kindInterface), ok, missingMethod = \"\";\n if (value === $ifaceNil) {\n ok = false;\n } else if (!isInterface) {\n ok = value.constructor === type;\n } else {\n var valueTypeString = value.constructor.string;\n ok = type.implementedBy[valueTypeString];\n if (ok === undefined) {\n ok = true;\n var valueMethodSet = $methodSet(value.constructor);\n var interfaceMethods = type.methods;\n for (var i = 0; i < interfaceMethods.length; i++) {\n var tm = interfaceMethods[i];\n var found = false;\n for (var j = 0; j < valueMethodSet.length; j++) {\n var vm = valueMethodSet[j];\n if (vm.name === tm.name && vm.pkg === tm.pkg && vm.typ === tm.typ) {\n found = true;\n break;\n }\n }\n if (!found) {\n ok = false;\n type.missingMethodFor[valueTypeString] = tm.name;\n break;\n }\n }\n type.implementedBy[valueTypeString] = ok;\n }\n if (!ok) {\n missingMethod = type.missingMethodFor[valueTypeString];\n }\n }\n\n if (!ok) {\n if (returnTuple) {\n return [type.zero(), false];\n }\n $panic(new $packages[\"runtime\"].TypeAssertionError.ptr(\n $packages[\"runtime\"]._type.ptr.nil,\n (value === $ifaceNil ? $packages[\"runtime\"]._type.ptr.nil : new $packages[\"runtime\"]._type.ptr(value.constructor.string)),\n new $packages[\"runtime\"]._type.ptr(type.string),\n missingMethod));\n }\n\n if (!isInterface) {\n value = value.$val;\n }\n if (type === $jsObjectPtr) {\n value = value.object;\n }\n return returnTuple ? [value, true] : value;\n};\n"; - numeric = "var $min = Math.min;\nvar $mod = (x, y) => { return x % y; };\nvar $parseInt = parseInt;\nvar $parseFloat = f => {\n if (f !== undefined && f !== null && f.constructor === Number) {\n return f;\n }\n return parseFloat(f);\n};\n\nvar $froundBuf = new Float32Array(1);\nvar $fround = Math.fround || (f => {\n $froundBuf[0] = f;\n return $froundBuf[0];\n});\n\nvar $imul = Math.imul || ((a, b) => {\n var ah = (a >>> 16) & 0xffff;\n var al = a & 0xffff;\n var bh = (b >>> 16) & 0xffff;\n var bl = b & 0xffff;\n return ((al * bl) + (((ah * bl + al * bh) << 16) >>> 0) >> 0);\n});\n\nvar $floatKey = f => {\n if (f !== f) {\n $idCounter++;\n return \"NaN$\" + $idCounter;\n }\n return String(f);\n};\n\nvar $flatten64 = x => {\n return x.$high * 4294967296 + x.$low;\n};\n\nvar $shiftLeft64 = (x, y) => {\n if (y === 0) {\n return x;\n }\n if (y < 32) {\n return new x.constructor(x.$high << y | x.$low >>> (32 - y), (x.$low << y) >>> 0);\n }\n if (y < 64) {\n return new x.constructor(x.$low << (y - 32), 0);\n }\n return new x.constructor(0, 0);\n};\n\nvar $shiftRightInt64 = (x, y) => {\n if (y === 0) {\n return x;\n }\n if (y < 32) {\n return new x.constructor(x.$high >> y, (x.$low >>> y | x.$high << (32 - y)) >>> 0);\n }\n if (y < 64) {\n return new x.constructor(x.$high >> 31, (x.$high >> (y - 32)) >>> 0);\n }\n if (x.$high < 0) {\n return new x.constructor(-1, 4294967295);\n }\n return new x.constructor(0, 0);\n};\n\nvar $shiftRightUint64 = (x, y) => {\n if (y === 0) {\n return x;\n }\n if (y < 32) {\n return new x.constructor(x.$high >>> y, (x.$low >>> y | x.$high << (32 - y)) >>> 0);\n }\n if (y < 64) {\n return new x.constructor(0, x.$high >>> (y - 32));\n }\n return new x.constructor(0, 0);\n};\n\nvar $mul64 = (x, y) => {\n var x48 = x.$high >>> 16;\n var x32 = x.$high & 0xFFFF;\n var x16 = x.$low >>> 16;\n var x00 = x.$low & 0xFFFF;\n\n var y48 = y.$high >>> 16;\n var y32 = y.$high & 0xFFFF;\n var y16 = y.$low >>> 16;\n var y00 = y.$low & 0xFFFF;\n\n var z48 = 0, z32 = 0, z16 = 0, z00 = 0;\n z00 += x00 * y00;\n z16 += z00 >>> 16;\n z00 &= 0xFFFF;\n z16 += x16 * y00;\n z32 += z16 >>> 16;\n z16 &= 0xFFFF;\n z16 += x00 * y16;\n z32 += z16 >>> 16;\n z16 &= 0xFFFF;\n z32 += x32 * y00;\n z48 += z32 >>> 16;\n z32 &= 0xFFFF;\n z32 += x16 * y16;\n z48 += z32 >>> 16;\n z32 &= 0xFFFF;\n z32 += x00 * y32;\n z48 += z32 >>> 16;\n z32 &= 0xFFFF;\n z48 += x48 * y00 + x32 * y16 + x16 * y32 + x00 * y48;\n z48 &= 0xFFFF;\n\n var hi = ((z48 << 16) | z32) >>> 0;\n var lo = ((z16 << 16) | z00) >>> 0;\n\n var r = new x.constructor(hi, lo);\n return r;\n};\n\nvar $div64 = (x, y, returnRemainder) => {\n if (y.$high === 0 && y.$low === 0) {\n $throwRuntimeError(\"integer divide by zero\");\n }\n\n var s = 1;\n var rs = 1;\n\n var xHigh = x.$high;\n var xLow = x.$low;\n if (xHigh < 0) {\n s = -1;\n rs = -1;\n xHigh = -xHigh;\n if (xLow !== 0) {\n xHigh--;\n xLow = 4294967296 - xLow;\n }\n }\n\n var yHigh = y.$high;\n var yLow = y.$low;\n if (y.$high < 0) {\n s *= -1;\n yHigh = -yHigh;\n if (yLow !== 0) {\n yHigh--;\n yLow = 4294967296 - yLow;\n }\n }\n\n var high = 0, low = 0, n = 0;\n while (yHigh < 2147483648 && ((xHigh > yHigh) || (xHigh === yHigh && xLow > yLow))) {\n yHigh = (yHigh << 1 | yLow >>> 31) >>> 0;\n yLow = (yLow << 1) >>> 0;\n n++;\n }\n for (var i = 0; i <= n; i++) {\n high = high << 1 | low >>> 31;\n low = (low << 1) >>> 0;\n if ((xHigh > yHigh) || (xHigh === yHigh && xLow >= yLow)) {\n xHigh = xHigh - yHigh;\n xLow = xLow - yLow;\n if (xLow < 0) {\n xHigh--;\n xLow += 4294967296;\n }\n low++;\n if (low === 4294967296) {\n high++;\n low = 0;\n }\n }\n yLow = (yLow >>> 1 | yHigh << (32 - 1)) >>> 0;\n yHigh = yHigh >>> 1;\n }\n\n if (returnRemainder) {\n return new x.constructor(xHigh * rs, xLow * rs);\n }\n return new x.constructor(high * s, low * s);\n};\n\nvar $divComplex = (n, d) => {\n var ninf = n.$real === Infinity || n.$real === -Infinity || n.$imag === Infinity || n.$imag === -Infinity;\n var dinf = d.$real === Infinity || d.$real === -Infinity || d.$imag === Infinity || d.$imag === -Infinity;\n var nnan = !ninf && (n.$real !== n.$real || n.$imag !== n.$imag);\n var dnan = !dinf && (d.$real !== d.$real || d.$imag !== d.$imag);\n if (nnan || dnan) {\n return new n.constructor(NaN, NaN);\n }\n if (ninf && !dinf) {\n return new n.constructor(Infinity, Infinity);\n }\n if (!ninf && dinf) {\n return new n.constructor(0, 0);\n }\n if (d.$real === 0 && d.$imag === 0) {\n if (n.$real === 0 && n.$imag === 0) {\n return new n.constructor(NaN, NaN);\n }\n return new n.constructor(Infinity, Infinity);\n }\n var a = Math.abs(d.$real);\n var b = Math.abs(d.$imag);\n if (a <= b) {\n var ratio = d.$real / d.$imag;\n var denom = d.$real * ratio + d.$imag;\n return new n.constructor((n.$real * ratio + n.$imag) / denom, (n.$imag * ratio - n.$real) / denom);\n }\n var ratio = d.$imag / d.$real;\n var denom = d.$imag * ratio + d.$real;\n return new n.constructor((n.$imag * ratio + n.$real) / denom, (n.$imag - n.$real * ratio) / denom);\n};\n"; + prelude = "Error.stackTraceLimit = Infinity;\n\nvar $NaN = NaN;\nvar $global, $module;\nif (typeof window !== \"undefined\") { /* web page */\n $global = window;\n} else if (typeof self !== \"undefined\") { /* web worker */\n $global = self;\n} else if (typeof global !== \"undefined\") { /* Node.js */\n $global = global;\n $global.require = require;\n} else { /* others (e.g. Nashorn) */\n $global = this;\n}\n\nif ($global === undefined || $global.Array === undefined) {\n throw new Error(\"no global object found\");\n}\nif (typeof module !== \"undefined\") {\n $module = module;\n}\n\nif (!$global.fs && $global.require) {\n try {\n var fs = $global.require('fs');\n if (typeof fs === \"object\" && fs !== null && Object.keys(fs).length !== 0) {\n $global.fs = fs;\n }\n } catch (e) { /* Ignore if the module couldn't be loaded. */ }\n}\n\nif (!$global.fs) {\n var outputBuf = \"\";\n var decoder = new TextDecoder(\"utf-8\");\n $global.fs = {\n constants: { O_WRONLY: -1, O_RDWR: -1, O_CREAT: -1, O_TRUNC: -1, O_APPEND: -1, O_EXCL: -1 }, // unused\n writeSync: function writeSync(fd, buf) {\n // check for a hook to redirect `os.Stdout` and `os.Stderr` to a different output\n // instead of the default `console.log`. This is useful for redirecting methods like\n // fmt.Println to write to a text box, like we do for the GopherJS playground.\n // `fd` is 1 for os.Stdout (\"/dev/stdout\") and 2 for os.Stderr (\"/dev/stderr\").\n // This will not work when running in node.js or another `fs` is present.\n // This will not effect the built-in `print` methods.\n if ($global.gopherjsWriteSyncHook) {\n outputBuf += decoder.decode(buf);\n $global.gopherjsWriteSyncHook(fd, outputBuf);\n outputBuf = \"\";\n return buf.length;\n }\n\n outputBuf += decoder.decode(buf);\n var nl = outputBuf.lastIndexOf(\"\\n\");\n if (nl != -1) {\n console.log(outputBuf.substring(0, nl));\n outputBuf = outputBuf.substring(nl + 1);\n }\n return buf.length;\n },\n write: function write(fd, buf, offset, length, position, callback) {\n if (offset !== 0 || length !== buf.length || position !== null) {\n callback(enosys());\n return;\n }\n var n = this.writeSync(fd, buf);\n callback(null, n);\n }\n };\n}\n\nvar $linknames = {} // Collection of functions referenced by a go:linkname directive.\nvar $packages = {}, $idCounter = 0;\nvar $keys = m => { return m ? Object.keys(m) : []; };\nvar $flushConsole = () => { };\nvar $throwRuntimeError; /* set by package \"runtime\" */\nvar $newPanicNilError; /* set by package \"runtime\" \xE2\x80\x94 returns a new *PanicNilError */\nvar $throwNilPointerError = () => { $throwRuntimeError(\"invalid memory address or nil pointer dereference\"); };\nvar $call = (fn, rcvr, args) => { return fn.apply(rcvr, args); };\nvar $makeFunc = fn => { return function(...args) { return $externalize(fn(this, new ($sliceType($jsObjectPtr))($global.Array.prototype.slice.call(args, []))), $emptyInterface); }; };\nvar $unused = v => { };\nvar $print = console.log;\n// Under Node we can emulate print() more closely by avoiding a newline.\nif (($global.process !== undefined) && $global.require) {\n try {\n var util = $global.require('util');\n $print = function(...args) { $global.process.stderr.write(util.format.apply(this, args)); };\n } catch (e) {\n // Failed to require util module, keep using console.log().\n }\n}\nvar $println = console.log\n\n// $callstack captures a stack trace and returns a list of lines, typically\n// there will be \"limit\" numbers of lines returned.\n// skip=0 means \"the direct caller of $callstack\"; limit caps frames captured.\nvar $callstack = (skip, limit) => {\n const oldLimit = Error.stackTraceLimit;\n var stack;\n try {\n Error.stackTraceLimit = skip+limit\n stack = new Error().stack\n } finally {\n\t\tError.stackTraceLimit = oldLimit;\n }\n\n // If `new Error().stack` doesn't exist like on older IE versions\n // or something went wrong getting the stack, just return empty.\n if (!stack) return [];\n // Drop any tailing \"\\n\" (and any trailing space before first \"at \" if there is one).\n stack = stack.trim();\n // V8 prepends an \"Error\" or \"Error: msg\" header line that isn't a frame.\n // Firefox and Safari do not. Detect by checking for \"@\" or starts with \"at \".\n // This check could still be wrong if the Error message itself has an \"@\" in it,\n // (e.g. `new Error(\"a@b\")`), however since we are calling `new Error().stack`\n // it should be fine.\n const firstNl = stack.indexOf(\"\\n\");\n const firstLine = firstNl >= 0 ? stack.substring(0, firstNl) : stack;\n if (!firstLine.includes(\"@\") && !firstLine.startsWith(\"at \")) {\n skip++; // skip \"Error\" header line.\n }\n \n\t// Remove the skipped amount of the stack and the error header if there was one.\n\treturn stack.split(\"\\n\").slice(skip);\n}\n\n// $parseCallFrame parses a call frame string and\n// returns the tuple [funcName, file, line, col].\nvar $parseCallFrame = (frame) => {\n // The first time this is called, compile the regexp,\n // then reuse it for all following calls.\n const posRe = /^(.+?)(?::(\\d+)(?::(\\d+))?)?$/;\n const parsePos = (fnName, framePos) => {\n const m = posRe.exec(framePos);\n if (m) {\n const file = m[1] || \"\";\n const line = m[2] || 0; // Will be read with a js.Object:Int\n const col = m[3] || 0; // Will be read with a js.Object:Int\n return [fnName, file, line, col];\n }\n return [fnName, \"\", 0, 0];\n }\n\n // Node.js 24+ (V8) includes the receiver object name in stack traces,\n // e.g., \"Object.runtime.Callers\" and \"typ2.github.com/...\".\n // The `typ2` comes from prelude\\types.js in `$newType`, since the `typ`\n // in that function gets renamed by esbuild to `typ2`, or it can be named\n // anything else when minimized. To avoid false positives, the following\n // pattern looks for specific matches, meaning we will have some false negatives.\n const receiverRe = /^(?:(?:Object|typ\\d*)\\.)|(?:[a-zA-Z_$][a-zA-Z0-9_$]*\\.(github\\.com[\\\\|/]))/;\n const stripReceiver = (fnName) => fnName.replace(receiverRe, \"$1\");\n\n $parseCallFrame = (frame) => {\n // FireFox\n const atIdx = frame.indexOf(\"@\")\n if (atIdx >= 0) {\n const fnName = frame.substring(0, atIdx) || \"\";\n return parsePos(fnName, frame.substring(atIdx + 1));\n }\n\n\t // Chrome / Node.js\n const atLeadIdx = frame.indexOf(\"at \");\n if (atLeadIdx >= 0) frame = frame.substring(atLeadIdx + 3);\n const openIdx = frame.lastIndexOf(\"(\");\n if (openIdx === -1) {\n // No-parens form: \"at file:line:col\"\n return parsePos(\"\", frame);\n }\n\n // With-parens form: \"at func (file:line:col)\"\n var fnName = frame.substring(0, frame.indexOf(\"(\")).trim();\n const asIdx = fnName.indexOf(\"[as \");\n if (asIdx > 0) {\n var closeIdx = fnName.indexOf(\"]\");\n if (closeIdx === -1) closeIdx = fnName.length;\n fnName = fnName.substring(asIdx+4, closeIdx).trim();\n }\n fnName = stripReceiver(fnName)\n\n var closeIdx = frame.indexOf(\")\", openIdx);\n if (closeIdx === -1) closeIdx = frame.length;\n\n var pos = frame.substring(openIdx + 1, closeIdx);\n if (pos === \"\") {\n return [fnName, \"\", 0, 0]\n }\n return parsePos(fnName, pos);\n };\n return $parseCallFrame(frame);\n};\n\nvar $callForAllPackages = (methodName) => {\n var names = $keys($packages);\n for (var i = 0; i < names.length; i++) {\n var f = $packages[names[i]][methodName];\n if (typeof f == 'function') {\n f();\n }\n }\n}\n\nvar $mapArray = (array, f) => {\n var newArray = new array.constructor(array.length);\n for (var i = 0; i < array.length; i++) {\n newArray[i] = f(array[i]);\n }\n return newArray;\n};\n\n// $mapIndex returns the value of the given key in m, or undefined if m is nil/undefined or not a map\nvar $mapIndex = (m, key) => {\n return typeof m.get === \"function\" ? m.get(key) : undefined;\n};\n// $mapDelete deletes the key and associated value from m. If m is nil/undefined or not a map, $mapDelete is a no-op\nvar $mapDelete = (m, key) => {\n typeof m.delete === \"function\" && m.delete(key)\n};\n// Returns a method bound to the receiver instance, safe to invoke as a \n// standalone function. Bound function is cached for later reuse.\nvar $methodVal = (recv, name) => {\n var vals = recv.$methodVals || {};\n if (Object.isExtensible(recv)) {\n recv.$methodVals = vals; /* noop for primitives */\n }\n var f = vals[name];\n if (f !== undefined) {\n return f;\n }\n var method = recv[name];\n f = method.bind(recv);\n vals[name] = f;\n return f;\n};\n\nvar $methodExpr = (typ, name) => {\n var method = typ.prototype[name];\n if (method.$expr === undefined) {\n method.$expr = (...args) => {\n $stackDepthOffset--;\n try {\n if (typ.wrapped) {\n args[0] = new typ(args[0]);\n }\n return Function.call.apply(method, args);\n } finally {\n $stackDepthOffset++;\n }\n };\n }\n return method.$expr;\n};\n\nvar $ifaceMethodExprs = {};\nvar $ifaceMethodExpr = name => {\n var expr = $ifaceMethodExprs[\"$\" + name];\n if (expr === undefined) {\n expr = $ifaceMethodExprs[\"$\" + name] = (...args) => {\n $stackDepthOffset--;\n try {\n return Function.call.apply(args[0][name], args);\n } finally {\n $stackDepthOffset++;\n }\n };\n }\n return expr;\n};\n\nvar $subslice = (slice, low, high, max) => {\n if (high === undefined) {\n high = slice.$length;\n }\n if (max === undefined) {\n max = slice.$capacity;\n }\n if (low < 0 || high < low || max < high || high > slice.$capacity || max > slice.$capacity) {\n $throwRuntimeError(\"slice bounds out of range\");\n }\n if (slice === slice.constructor.nil) {\n return slice;\n }\n var s = new slice.constructor(slice.$array);\n s.$offset = slice.$offset + low;\n s.$length = high - low;\n s.$capacity = max - low;\n return s;\n};\n\nvar $substring = (str, low, high) => {\n if (low < 0 || high < low || high > str.length) {\n $throwRuntimeError(\"slice bounds out of range\");\n }\n return str.substring(low, high);\n};\n\n// Convert Go slice to an equivalent JS array type.\nvar $sliceToNativeArray = slice => {\n if (slice.$array.constructor !== Array) {\n return slice.$array.subarray(slice.$offset, slice.$offset + slice.$length);\n }\n return slice.$array.slice(slice.$offset, slice.$offset + slice.$length);\n};\n\n// Convert Go slice to a pointer to an underlying Go array, `[]T -> *[N]T`.\n// \n// Note that an array pointer can be represented by an \"unwrapped\" native array\n// type, and it will be wrapped back into its Go type when necessary.\nvar $sliceToGoArray = (slice, arrayPtrType) => {\n var arrayType = arrayPtrType.elem;\n if (arrayType !== undefined && slice.$length < arrayType.len) {\n $throwRuntimeError(\"cannot convert slice with length \" + slice.$length + \" to pointer to array with length \" + arrayType.len);\n }\n if (slice == slice.constructor.nil) {\n return arrayPtrType.nil; // Nil slice converts to nil array pointer.\n }\n if (slice.$array.constructor !== Array) {\n return slice.$array.subarray(slice.$offset, slice.$offset + arrayType.len);\n }\n if (slice.$offset == 0 && slice.$length == slice.$capacity && slice.$length == arrayType.len) {\n return slice.$array;\n }\n if (arrayType.len == 0) {\n return new arrayType([]);\n }\n\n // Array.slice (unlike TypedArray.subarray) returns a copy of an array range,\n // which is not sharing memory with the original one, which violates the spec\n // for slice to array conversion. This is incompatible with the Go spec, in\n // particular that the assignments to the array elements would be visible in\n // the slice. Prefer to fail explicitly instead of creating subtle bugs.\n $throwRuntimeError(\"gopherjs: non-numeric slice to underlying array conversion is not supported for subslices\");\n};\n\n// Convert between compatible slice types (e.g. native and names).\nvar $convertSliceType = (slice, desiredType) => {\n if (slice == slice.constructor.nil) {\n return desiredType.nil; // Preserve nil value.\n }\n\n return $subslice(new desiredType(slice.$array), slice.$offset, slice.$offset + slice.$length, slice.$offset + slice.$capacity);\n}\n\nvar $decodeRune = (str, pos) => {\n var c0 = str.charCodeAt(pos);\n\n if (c0 < 0x80) {\n return [c0, 1];\n }\n\n if (c0 !== c0 || c0 < 0xC0) {\n return [0xFFFD, 1];\n }\n\n var c1 = str.charCodeAt(pos + 1);\n if (c1 !== c1 || c1 < 0x80 || 0xC0 <= c1) {\n return [0xFFFD, 1];\n }\n\n if (c0 < 0xE0) {\n var r = (c0 & 0x1F) << 6 | (c1 & 0x3F);\n if (r <= 0x7F) {\n return [0xFFFD, 1];\n }\n return [r, 2];\n }\n\n var c2 = str.charCodeAt(pos + 2);\n if (c2 !== c2 || c2 < 0x80 || 0xC0 <= c2) {\n return [0xFFFD, 1];\n }\n\n if (c0 < 0xF0) {\n var r = (c0 & 0x0F) << 12 | (c1 & 0x3F) << 6 | (c2 & 0x3F);\n if (r <= 0x7FF) {\n return [0xFFFD, 1];\n }\n if (0xD800 <= r && r <= 0xDFFF) {\n return [0xFFFD, 1];\n }\n return [r, 3];\n }\n\n var c3 = str.charCodeAt(pos + 3);\n if (c3 !== c3 || c3 < 0x80 || 0xC0 <= c3) {\n return [0xFFFD, 1];\n }\n\n if (c0 < 0xF8) {\n var r = (c0 & 0x07) << 18 | (c1 & 0x3F) << 12 | (c2 & 0x3F) << 6 | (c3 & 0x3F);\n if (r <= 0xFFFF || 0x10FFFF < r) {\n return [0xFFFD, 1];\n }\n return [r, 4];\n }\n\n return [0xFFFD, 1];\n};\n\nvar $encodeRune = r => {\n if (r < 0 || r > 0x10FFFF || (0xD800 <= r && r <= 0xDFFF)) {\n r = 0xFFFD;\n }\n if (r <= 0x7F) {\n return String.fromCharCode(r);\n }\n if (r <= 0x7FF) {\n return String.fromCharCode(0xC0 | r >> 6, 0x80 | (r & 0x3F));\n }\n if (r <= 0xFFFF) {\n return String.fromCharCode(0xE0 | r >> 12, 0x80 | (r >> 6 & 0x3F), 0x80 | (r & 0x3F));\n }\n return String.fromCharCode(0xF0 | r >> 18, 0x80 | (r >> 12 & 0x3F), 0x80 | (r >> 6 & 0x3F), 0x80 | (r & 0x3F));\n};\n\nvar $stringToBytes = str => {\n var array = new Uint8Array(str.length);\n for (var i = 0; i < str.length; i++) {\n array[i] = str.charCodeAt(i);\n }\n return array;\n};\n\nvar $bytesToString = slice => {\n if (slice.$length === 0) {\n return \"\";\n }\n var str = \"\";\n for (var i = 0; i < slice.$length; i += 10000) {\n str += String.fromCharCode.apply(undefined, slice.$array.subarray(slice.$offset + i, slice.$offset + Math.min(slice.$length, i + 10000)));\n }\n return str;\n};\n\nvar $stringToRunes = str => {\n var array = new Int32Array(str.length);\n var rune, j = 0;\n for (var i = 0; i < str.length; i += rune[1], j++) {\n rune = $decodeRune(str, i);\n array[j] = rune[0];\n }\n return array.subarray(0, j);\n};\n\nvar $runesToString = slice => {\n if (slice.$length === 0) {\n return \"\";\n }\n var str = \"\";\n for (var i = 0; i < slice.$length; i++) {\n str += $encodeRune(slice.$array[slice.$offset + i]);\n }\n return str;\n};\n\nvar $copyString = (dst, src) => {\n var n = Math.min(src.length, dst.$length);\n for (var i = 0; i < n; i++) {\n dst.$array[dst.$offset + i] = src.charCodeAt(i);\n }\n return n;\n};\n\nvar $copySlice = (dst, src) => {\n var n = Math.min(src.$length, dst.$length);\n $copyArray(dst.$array, src.$array, dst.$offset, src.$offset, n, dst.constructor.elem);\n return n;\n};\n\nvar $copyArray = (dst, src, dstOffset, srcOffset, n, elem) => {\n if (n === 0 || (dst === src && dstOffset === srcOffset)) {\n return;\n }\n\n if (src.subarray) {\n dst.set(src.subarray(srcOffset, srcOffset + n), dstOffset);\n return;\n }\n\n switch (elem.kind) {\n case $kindArray:\n case $kindStruct:\n if (dst === src && dstOffset > srcOffset) {\n for (var i = n - 1; i >= 0; i--) {\n elem.copy(dst[dstOffset + i], src[srcOffset + i]);\n }\n return;\n }\n for (var i = 0; i < n; i++) {\n elem.copy(dst[dstOffset + i], src[srcOffset + i]);\n }\n return;\n }\n\n if (dst === src && dstOffset > srcOffset) {\n for (var i = n - 1; i >= 0; i--) {\n dst[dstOffset + i] = src[srcOffset + i];\n }\n return;\n }\n for (var i = 0; i < n; i++) {\n dst[dstOffset + i] = src[srcOffset + i];\n }\n};\n\nvar $clone = (src, type) => {\n var clone = type.zero();\n type.copy(clone, src);\n return clone;\n};\n\nvar $pointerOfStructConversion = (obj, type) => {\n if (obj === (obj.constructor && obj.constructor.nil)) {\n return type.nil;\n }\n if (obj.$proxies === undefined) {\n obj.$proxies = {};\n obj.$proxies[obj.constructor.id] = obj;\n }\n var proxy = obj.$proxies[type.id];\n if (proxy === undefined) {\n var properties = {};\n for (var i = 0; i < type.elem.fields.length; i++) {\n (fieldProp => {\n properties[fieldProp] = {\n get() { return obj[fieldProp]; },\n set(value) { obj[fieldProp] = value; }\n };\n })(type.elem.fields[i].prop);\n }\n proxy = Object.create(type.prototype, properties);\n proxy.$val = proxy;\n obj.$proxies[type.id] = proxy;\n proxy.$proxies = obj.$proxies;\n }\n return proxy;\n};\n\nvar $append = function (slice) {\n return $internalAppend(slice, arguments, 1, arguments.length - 1);\n};\n\nvar $appendSlice = (slice, toAppend) => {\n if (toAppend.constructor === String) {\n var bytes = $stringToBytes(toAppend);\n return $internalAppend(slice, bytes, 0, bytes.length);\n }\n return $internalAppend(slice, toAppend.$array, toAppend.$offset, toAppend.$length);\n};\n\n// Internal helper function for appending to a slice.\n// The given slice will not be modified.\n//\n// If no values are being appended, the original slice will be returned.\n// Otherwise, a new slice will be created with the appended values.\n//\n// If the underlying array has enough capacity, it will be used.\n// Otherwise, a new array will be allocated with enough capacity to hold\n// the new values and the original array will not be modified.\nvar $internalAppend = (slice, array, offset, length) => {\n if (length === 0) {\n return slice;\n }\n\n let newLength = slice.$length + length;\n let newSlice = $growSlice(slice, newLength);\n \n let newArray = newSlice.$array;\n $copyArray(newArray, array, newSlice.$offset + newSlice.$length, offset, length, newSlice.constructor.elem);\n \n newSlice.$length = newLength;\n return newSlice;\n};\n\n// Calculates the new capacity for a slice that is expected to grow to at least\n// the given minCapacity. This follows the Go runtime's growth strategy.\n// The oldCapacity is the current capacity of the slice that is being grown.\nconst $calculateNewCapacity = (minCapacity, oldCapacity) => {\n return Math.max(minCapacity, oldCapacity < 1024 ? oldCapacity * 2 : Math.floor(oldCapacity * 5 / 4));\n};\n\n// Potentially grows the slice to have a capacity of at least minCapacity.\n//\n// A new slice will always be returned, even if the given slice had the required capacity.\n// If the slice didn't have enough capacity, the new slice will have a\n// new array created for it with the required minimum capacity.\n//\n// This takes the place of the growSlice function in the reflect package.\nvar $growSlice = (slice, minCapacity) => {\n let array = slice.$array;\n let offset = slice.$offset;\n const length = slice.$length;\n let capacity = slice.$capacity;\n\n if (minCapacity > capacity) {\n capacity = $calculateNewCapacity(minCapacity, capacity);\n \n let newArray;\n if (array.constructor === Array) {\n newArray = array.slice(offset, offset + length);\n newArray.length = capacity;\n const zero = slice.constructor.elem.zero;\n for (let i = slice.$length; i < capacity; i++) {\n newArray[i] = zero();\n }\n } else {\n newArray = new array.constructor(capacity);\n newArray.set(array.subarray(offset, offset + length));\n }\n\n array = newArray;\n offset = 0;\n }\n\n let newSlice = new slice.constructor(array);\n newSlice.$offset = offset;\n newSlice.$length = length;\n newSlice.$capacity = capacity;\n return newSlice;\n};\n\nvar $equal = (a, b, type) => {\n if (type === $jsObjectPtr) {\n return a === b;\n }\n switch (type.kind) {\n case $kindComplex64:\n case $kindComplex128:\n return a.$real === b.$real && a.$imag === b.$imag;\n case $kindInt64:\n case $kindUint64:\n return a.$high === b.$high && a.$low === b.$low;\n case $kindArray:\n if (a.length !== b.length) {\n return false;\n }\n for (var i = 0; i < a.length; i++) {\n if (!$equal(a[i], b[i], type.elem)) {\n return false;\n }\n }\n return true;\n case $kindStruct:\n for (var i = 0; i < type.fields.length; i++) {\n var f = type.fields[i];\n if (!$equal(a[f.prop], b[f.prop], f.typ)) {\n return false;\n }\n }\n return true;\n case $kindInterface:\n return $interfaceIsEqual(a, b);\n default:\n return a === b;\n }\n};\n\nvar $interfaceIsEqual = (a, b) => {\n if (a === $ifaceNil || b === $ifaceNil) {\n return a === b;\n }\n if (a.constructor !== b.constructor) {\n return false;\n }\n if (a.constructor === $jsObjectPtr) {\n return a.object === b.object;\n }\n if (!a.constructor.comparable) {\n $throwRuntimeError(\"comparing uncomparable type \" + a.constructor.string);\n }\n return $equal(a.$val, b.$val, a.constructor);\n};\n\nvar $unsafeMethodToFunction = (typ, name, isPtr) => {\n if (isPtr) {\n return (r, ...args) => {\n var ptrType = $ptrType(typ);\n if (r.constructor != ptrType) {\n switch (typ.kind) {\n case $kindStruct:\n r = $pointerOfStructConversion(r, ptrType);\n break;\n case $kindArray:\n r = new ptrType(r);\n break;\n default:\n r = new ptrType(r.$get, r.$set, r.$target, r.$index);\n }\n }\n return r[name](...args);\n };\n } else {\n return (r, ...args) => {\n var ptrType = $ptrType(typ);\n if (r.constructor != ptrType) {\n switch (typ.kind) {\n case $kindStruct:\n r = $clone(r, typ);\n break;\n case $kindSlice:\n r = $convertSliceType(r, typ);\n break;\n case $kindComplex64:\n case $kindComplex128:\n r = new typ(r.$real, r.$imag);\n break;\n default:\n r = new typ(r);\n }\n }\n return r[name](...args);\n };\n }\n};\n\nvar $id = x => {\n return x;\n};\n\nvar $instanceOf = (x, y) => {\n return x instanceof y;\n};\n\nvar $typeOf = x => {\n return typeof (x);\n};\n\nvar $unsafeString = (ptr, len) => {\n var byteSliceType = $sliceType($Uint8);\n return $bytesToString($unsafeSlice(ptr, len, byteSliceType, \"String\"));\n};\n\nvar $unsafeStringData = str => {\n if (str.length === 0) {\n return $ptrType($Uint8).nil;\n }\n var byteSliceType = $sliceType($Uint8);\n var b = new byteSliceType($stringToBytes(str));\n return $unsafeSliceData(b, byteSliceType);\n};\n\nvar $unsafeSlice = (ptr, len, typ, methodName = \"Slice\") => {\n if (len < 0) {\n $throwRuntimeError(\"unsafe.\"+methodName+\": len out of range\");\n }\n var ptrType = $ptrType(typ.elem);\n if (ptr === ptrType.nil || ptr.$target === undefined) {\n if (len > 0) {\n $throwRuntimeError(\"unsafe.\"+methodName+\": ptr is nil and len is not zero\");\n }\n return typ.nil;\n }\n if (len === 0) {\n var s = new typ(ptr.$target);\n s.$offset = ptr.$index !== undefined ? ptr.$index : 0;\n s.$length = 0;\n s.$capacity = 0;\n return s;\n }\n if (ptr.$index === undefined) {\n // Go can cast a footprint of memory for some data into an array, but JS can not.\n // If the $index is undefined then the pointer is for a struct field,\n // a non-escaping scalar pointer, or something else, but not an array or slice.\n $throwRuntimeError(\"unsafe.\" + methodName + \": pointer does not address a slice or array element (missing index)\");\n }\n if (ptr.$target.buffer && ptr.$target.BYTES_PER_ELEMENT && ptr.$target.constructor !== $nativeArray(typ.elem.kind)) {\n $throwRuntimeError(\"unsafe.\" + methodName + \": pointer does not match slice element storage layout\");\n }\n if (ptr.$index + len > ptr.$target.length) {\n // Go can grab abritraty footprints of memory, JS can not. Instead of trying\n // to grow the target, which would only work for Array, just always error.\n $throwRuntimeError(\"unsafe.\" + methodName + \": len out of range\");\n }\n var s = new typ(ptr.$target);\n s.$offset = ptr.$index;\n s.$length = len;\n s.$capacity = len;\n return s;\n};\n\nvar $unsafeSliceData = (slice, typ) => {\n var ptrType = $ptrType(typ.elem);\n if (slice === typ.nil) {\n return ptrType.nil;\n }\n return $indexPtr(slice.$array, slice.$offset, ptrType);\n};\n\nvar $clearSlice = (slice) => {\n const n = slice.$length;\n if (n === 0) {\n return\n }\n const arr = slice.$array;\n const off = slice.$offset;\n const zeroFn = slice.constructor.elem.zero;\n for (let i = 0; i < n; i++) {\n arr[off + i] = zeroFn();\n }\n};\n\nvar $clearMap = (m) => {\n typeof m.clear === \"function\" && m.clear()\n};\n"; + types = "var $kindBool = 1;\nvar $kindInt = 2;\nvar $kindInt8 = 3;\nvar $kindInt16 = 4;\nvar $kindInt32 = 5;\nvar $kindInt64 = 6;\nvar $kindUint = 7;\nvar $kindUint8 = 8;\nvar $kindUint16 = 9;\nvar $kindUint32 = 10;\nvar $kindUint64 = 11;\nvar $kindUintptr = 12;\nvar $kindFloat32 = 13;\nvar $kindFloat64 = 14;\nvar $kindComplex64 = 15;\nvar $kindComplex128 = 16;\nvar $kindArray = 17;\nvar $kindChan = 18;\nvar $kindFunc = 19;\nvar $kindInterface = 20;\nvar $kindMap = 21;\nvar $kindPtr = 22;\nvar $kindSlice = 23;\nvar $kindString = 24;\nvar $kindStruct = 25;\nvar $kindUnsafePointer = 26;\n\nvar $methodSynthesizers = [];\nvar $addMethodSynthesizer = f => {\n if ($methodSynthesizers === null) {\n f();\n return;\n }\n $methodSynthesizers.push(f);\n};\nvar $synthesizeMethods = () => {\n $methodSynthesizers.forEach(f => { f(); });\n $methodSynthesizers = null;\n};\n\nvar $ifaceKeyFor = x => {\n if (x === $ifaceNil) {\n return 'nil';\n }\n var c = x.constructor;\n return c.string + '$' + c.keyFor(x.$val);\n};\n\nvar $identity = x => { return x; };\n\nvar $typeIDCounter = 0;\n\nvar $idKey = x => {\n if (x.$id === undefined) {\n $idCounter++;\n x.$id = $idCounter;\n }\n return String(x.$id);\n};\n\n// Creates constructor functions for array pointer types. Returns a new function\n// instance each time to make sure each type is independent of the other.\nvar $arrayPtrCtor = () => {\n return function (array) {\n this.$get = () => { return array; };\n this.$set = function (v) { typ.copy(this, v); };\n this.$val = array;\n };\n}\n\nvar $newType = (size, kind, string, named, pkg, exported, constructor) => {\n var typ;\n switch (kind) {\n case $kindBool:\n case $kindInt:\n case $kindInt8:\n case $kindInt16:\n case $kindInt32:\n case $kindUint:\n case $kindUint8:\n case $kindUint16:\n case $kindUint32:\n case $kindUintptr:\n case $kindUnsafePointer:\n typ = function (v) { this.$val = v; };\n typ.wrapped = true;\n typ.keyFor = $identity;\n break;\n\n case $kindString:\n typ = function (v) { this.$val = v; };\n typ.wrapped = true;\n typ.keyFor = x => { return \"$\" + x; };\n break;\n\n case $kindFloat32:\n case $kindFloat64:\n typ = function (v) { this.$val = v; };\n typ.wrapped = true;\n typ.keyFor = x => { return $floatKey(x); };\n break;\n\n case $kindInt64:\n typ = function (high, low) {\n this.$high = (high + Math.floor(Math.ceil(low) / 4294967296)) >> 0;\n this.$low = low >>> 0;\n this.$val = this;\n };\n typ.keyFor = x => { return x.$high + \"$\" + x.$low; };\n break;\n\n case $kindUint64:\n typ = function (high, low) {\n this.$high = (high + Math.floor(Math.ceil(low) / 4294967296)) >>> 0;\n this.$low = low >>> 0;\n this.$val = this;\n };\n typ.keyFor = x => { return x.$high + \"$\" + x.$low; };\n break;\n\n case $kindComplex64:\n typ = function (real, imag) {\n this.$real = $fround(real);\n this.$imag = $fround(imag);\n this.$val = this;\n };\n typ.keyFor = x => { return x.$real + \"$\" + x.$imag; };\n break;\n\n case $kindComplex128:\n typ = function (real, imag) {\n this.$real = real;\n this.$imag = imag;\n this.$val = this;\n };\n typ.keyFor = x => { return x.$real + \"$\" + x.$imag; };\n break;\n\n case $kindArray:\n typ = function (v) { this.$val = v; };\n typ.wrapped = true;\n typ.ptr = $newType(4, $kindPtr, \"*\" + string, false, \"\", false, $arrayPtrCtor());\n typ.init = (elem, len) => {\n typ.elem = elem;\n typ.len = len;\n typ.comparable = elem.comparable;\n typ.keyFor = x => {\n return Array.prototype.join.call($mapArray(x, e => {\n return String(elem.keyFor(e)).replace(/\\\\/g, \"\\\\\\\\\").replace(/\\$/g, \"\\\\$\");\n }), \"$\");\n };\n typ.copy = (dst, src) => {\n if (src.length === undefined) {\n // copy from a slice, the slice may be bigger but not smaller than the array\n if (src.$length < dst.length) {\n $throwRuntimeError(\"cannot convert slice with length \"+src.$length+\" to array or pointer to array with length \"+dst.length);\n }\n $copyArray(dst, src.$array, 0, src.$offset, dst.length, elem);\n } else {\n // copy from another array\n $copyArray(dst, src, 0, 0, src.length, elem);\n }\n };\n typ.ptr.init(typ);\n Object.defineProperty(typ.ptr.nil, \"nilCheck\", { get: $throwNilPointerError });\n };\n break;\n\n case $kindChan:\n typ = function (v) { this.$val = v; };\n typ.wrapped = true;\n typ.keyFor = $idKey;\n typ.init = (elem, sendOnly, recvOnly) => {\n typ.elem = elem;\n typ.sendOnly = sendOnly;\n typ.recvOnly = recvOnly;\n };\n break;\n\n case $kindFunc:\n typ = function (v) { this.$val = v; };\n typ.wrapped = true;\n typ.init = (params, results, variadic) => {\n typ.params = params;\n typ.results = results;\n typ.variadic = variadic;\n typ.comparable = false;\n };\n break;\n\n case $kindInterface:\n typ = { implementedBy: {}, missingMethodFor: {} };\n typ.keyFor = $ifaceKeyFor;\n typ.init = methods => {\n typ.methods = methods;\n methods.forEach(m => {\n $ifaceNil[m.prop] = $throwNilPointerError;\n });\n };\n break;\n\n case $kindMap:\n typ = function (v) { this.$val = v; };\n typ.wrapped = true;\n typ.init = (key, elem) => {\n typ.key = key;\n typ.elem = elem;\n typ.comparable = false;\n };\n break;\n\n case $kindPtr:\n typ = constructor || function (getter, setter, target, index) {\n this.$get = getter;\n this.$set = setter;\n this.$target = target;\n if (index !== undefined) this.$index = index;\n this.$val = this;\n };\n typ.keyFor = $idKey;\n typ.init = elem => {\n typ.elem = elem;\n typ.wrapped = (elem.kind === $kindArray);\n typ.nil = new typ($throwNilPointerError, $throwNilPointerError);\n };\n break;\n\n case $kindSlice:\n typ = function (array) {\n if (array.constructor !== typ.nativeArray) {\n array = new typ.nativeArray(array);\n }\n this.$array = array;\n this.$offset = 0;\n this.$length = array.length;\n this.$capacity = array.length;\n this.$val = this;\n };\n typ.init = elem => {\n typ.elem = elem;\n typ.comparable = false;\n typ.nativeArray = $nativeArray(elem.kind);\n typ.nil = new typ([]);\n Object.freeze(typ.nil);\n };\n break;\n\n case $kindStruct:\n typ = function (v) { this.$val = v; };\n typ.wrapped = true;\n typ.ptr = $newType(4, $kindPtr, \"*\" + string, false, pkg, exported, constructor);\n typ.ptr.elem = typ;\n typ.ptr.prototype.$get = function () { return this; };\n typ.ptr.prototype.$set = function (v) { typ.copy(this, v); };\n typ.init = (pkgPath, fields) => {\n typ.pkgPath = pkgPath;\n typ.fields = fields;\n fields.forEach(f => {\n if (!f.typ.comparable) {\n typ.comparable = false;\n }\n });\n typ.keyFor = x => {\n var val = x.$val;\n return $mapArray(fields, f => {\n return String(f.typ.keyFor(val[f.prop])).replace(/\\\\/g, \"\\\\\\\\\").replace(/\\$/g, \"\\\\$\");\n }).join(\"$\");\n };\n typ.copy = (dst, src) => {\n for (var i = 0; i < fields.length; i++) {\n var f = fields[i];\n switch (f.typ.kind) {\n case $kindArray:\n case $kindStruct:\n f.typ.copy(dst[f.prop], src[f.prop]);\n continue;\n default:\n dst[f.prop] = src[f.prop];\n continue;\n }\n }\n };\n /* nil value */\n var properties = {};\n fields.forEach(f => {\n properties[f.prop] = { get: $throwNilPointerError, set: $throwNilPointerError };\n });\n typ.ptr.nil = Object.create(constructor.prototype, properties);\n typ.ptr.nil.$val = typ.ptr.nil;\n /* methods for embedded fields */\n $addMethodSynthesizer(() => {\n var synthesizeMethod = (target, m, f) => {\n if (target.prototype[m.prop] !== undefined) { return; }\n target.prototype[m.prop] = function(...args) {\n var v = this.$val[f.prop];\n if (f.typ === $jsObjectPtr) {\n v = new $jsObjectPtr(v);\n }\n if (v.$val === undefined) {\n v = new f.typ(v);\n }\n return v[m.prop](...args);\n };\n };\n fields.forEach(f => {\n if (f.embedded) {\n $methodSet(f.typ).forEach(m => {\n synthesizeMethod(typ, m, f);\n synthesizeMethod(typ.ptr, m, f);\n });\n $methodSet($ptrType(f.typ)).forEach(m => {\n synthesizeMethod(typ.ptr, m, f);\n });\n }\n });\n });\n };\n break;\n\n default:\n $panic(new $String(\"invalid kind: \" + kind));\n }\n\n switch (kind) {\n case $kindBool:\n case $kindMap:\n typ.zero = () => { return false; };\n break;\n\n case $kindInt:\n case $kindInt8:\n case $kindInt16:\n case $kindInt32:\n case $kindUint:\n case $kindUint8:\n case $kindUint16:\n case $kindUint32:\n case $kindUintptr:\n case $kindUnsafePointer:\n case $kindFloat32:\n case $kindFloat64:\n typ.zero = () => { return 0; };\n break;\n\n case $kindString:\n typ.zero = () => { return \"\"; };\n break;\n\n case $kindInt64:\n case $kindUint64:\n case $kindComplex64:\n case $kindComplex128:\n var zero = new typ(0, 0);\n typ.zero = () => { return zero; };\n break;\n\n case $kindPtr:\n case $kindSlice:\n typ.zero = () => { return typ.nil; };\n break;\n\n case $kindChan:\n typ.zero = () => { return $chanNil; };\n break;\n\n case $kindFunc:\n typ.zero = () => { return $throwNilPointerError; };\n break;\n\n case $kindInterface:\n typ.zero = () => { return $ifaceNil; };\n break;\n\n case $kindArray:\n typ.zero = () => {\n var arrayClass = $nativeArray(typ.elem.kind);\n if (arrayClass !== Array) {\n return new arrayClass(typ.len);\n }\n var array = new Array(typ.len);\n for (var i = 0; i < typ.len; i++) {\n array[i] = typ.elem.zero();\n }\n return array;\n };\n break;\n\n case $kindStruct:\n typ.zero = () => { return new typ.ptr(); };\n break;\n\n default:\n $panic(new $String(\"invalid kind: \" + kind));\n }\n\n typ.id = $typeIDCounter;\n $typeIDCounter++;\n typ.size = size;\n typ.kind = kind;\n typ.string = string;\n typ.named = named;\n typ.pkg = pkg;\n typ.exported = exported;\n typ.methods = [];\n typ.methodSetCache = null;\n typ.comparable = true;\n return typ;\n};\n\nvar $methodSet = typ => {\n if (typ.methodSetCache !== null) {\n return typ.methodSetCache;\n }\n var base = {};\n\n var isPtr = (typ.kind === $kindPtr);\n if (isPtr && typ.elem.kind === $kindInterface) {\n typ.methodSetCache = [];\n return [];\n }\n\n var current = [{ typ: isPtr ? typ.elem : typ, indirect: isPtr, shadow: undefined }];\n\n var seen = {};\n\n while (current.length > 0) {\n var next = [];\n var mset = {};\n\n current.forEach(e => {\n if (seen[e.typ.id]) {\n return;\n }\n seen[e.typ.id] = true;\n\n const promotePair = (name, m) => {\n if (mset[name] === null) {\n return; // already ambiguous or a field\n } else if (e.shadow && e.shadow[name]) {\n return; // shadowed by an ancestor\n } else if (mset[name] === undefined) {\n mset[name] = m;\n } else if (mset[name] !== m) {\n mset[name] = null; // promotion ambiguity\n }\n };\n const promote = methods => {\n methods.forEach(m => promotePair(m.name, m));\n };\n\n if (e.typ.named) {\n promote(e.typ.methods);\n if (e.indirect) {\n promote($ptrType(e.typ).methods);\n }\n }\n\n switch (e.typ.kind) {\n case $kindStruct:\n var nextShadow = {};\n Object.assign(nextShadow, e.shadow);\n e.typ.fields.forEach(f => {\n nextShadow[f.name] = true;\n promotePair(f.name, null); // use null to preempt ambiguity\n });\n e.typ.fields.forEach(f => {\n if (f.embedded) {\n var fTyp = f.typ;\n var fIsPtr = (fTyp.kind === $kindPtr);\n next.push({\n typ: fIsPtr ? fTyp.elem : fTyp,\n indirect: e.indirect || fIsPtr,\n shadow: nextShadow\n });\n }\n });\n break;\n\n case $kindInterface:\n promote(e.typ.methods);\n break;\n }\n });\n\n for (const [name, m] of Object.entries(mset)) {\n if (m !== null && base[name] === undefined) {\n base[name] = m;\n }\n }\n\n current = next;\n }\n\n typ.methodSetCache = [];\n Object.keys(base).sort().forEach(name => {\n typ.methodSetCache.push(base[name]);\n });\n return typ.methodSetCache;\n};\n\nvar $Bool = $newType(1, $kindBool, \"bool\", true, \"\", false, null);\nvar $Int = $newType(4, $kindInt, \"int\", true, \"\", false, null);\nvar $Int8 = $newType(1, $kindInt8, \"int8\", true, \"\", false, null);\nvar $Int16 = $newType(2, $kindInt16, \"int16\", true, \"\", false, null);\nvar $Int32 = $newType(4, $kindInt32, \"int32\", true, \"\", false, null);\nvar $Int64 = $newType(8, $kindInt64, \"int64\", true, \"\", false, null);\nvar $Uint = $newType(4, $kindUint, \"uint\", true, \"\", false, null);\nvar $Uint8 = $newType(1, $kindUint8, \"uint8\", true, \"\", false, null);\nvar $Uint16 = $newType(2, $kindUint16, \"uint16\", true, \"\", false, null);\nvar $Uint32 = $newType(4, $kindUint32, \"uint32\", true, \"\", false, null);\nvar $Uint64 = $newType(8, $kindUint64, \"uint64\", true, \"\", false, null);\nvar $Uintptr = $newType(4, $kindUintptr, \"uintptr\", true, \"\", false, null);\nvar $Float32 = $newType(4, $kindFloat32, \"float32\", true, \"\", false, null);\nvar $Float64 = $newType(8, $kindFloat64, \"float64\", true, \"\", false, null);\nvar $Complex64 = $newType(8, $kindComplex64, \"complex64\", true, \"\", false, null);\nvar $Complex128 = $newType(16, $kindComplex128, \"complex128\", true, \"\", false, null);\nvar $String = $newType(8, $kindString, \"string\", true, \"\", false, null);\nvar $UnsafePointer = $newType(4, $kindUnsafePointer, \"unsafe.Pointer\", true, \"unsafe\", false, null);\n\nvar $nativeArray = elemKind => {\n switch (elemKind) {\n case $kindInt:\n return Int32Array;\n case $kindInt8:\n return Int8Array;\n case $kindInt16:\n return Int16Array;\n case $kindInt32:\n return Int32Array;\n case $kindUint:\n return Uint32Array;\n case $kindUint8:\n return Uint8Array;\n case $kindUint16:\n return Uint16Array;\n case $kindUint32:\n return Uint32Array;\n case $kindUintptr:\n return Uint32Array;\n case $kindFloat32:\n return Float32Array;\n case $kindFloat64:\n return Float64Array;\n default:\n return Array;\n }\n};\nvar $toNativeArray = (elemKind, array) => {\n var nativeArray = $nativeArray(elemKind);\n if (nativeArray === Array) {\n return array;\n }\n return new nativeArray(array);\n};\nvar $arrayTypes = {};\nvar $arrayType = (elem, len) => {\n var typeKey = elem.id + \"$\" + len;\n var typ = $arrayTypes[typeKey];\n if (typ === undefined) {\n typ = $newType(elem.size * len, $kindArray, \"[\" + len + \"]\" + elem.string, false, \"\", false, null);\n $arrayTypes[typeKey] = typ;\n typ.init(elem, len);\n }\n return typ;\n};\n\nvar $chanType = (elem, sendOnly, recvOnly) => {\n var string = (recvOnly ? \"<-\" : \"\") + \"chan\" + (sendOnly ? \"<- \" : \" \");\n if (!sendOnly && !recvOnly && (elem.string[0] == \"<\")) {\n string += \"(\" + elem.string + \")\";\n } else {\n string += elem.string;\n }\n var field = sendOnly ? \"SendChan\" : (recvOnly ? \"RecvChan\" : \"Chan\");\n var typ = elem[field];\n if (typ === undefined) {\n typ = $newType(4, $kindChan, string, false, \"\", false, null);\n elem[field] = typ;\n typ.init(elem, sendOnly, recvOnly);\n }\n return typ;\n};\nvar $Chan = function (elem, capacity) {\n if (capacity < 0 || capacity > 2147483647) {\n $throwRuntimeError(\"makechan: size out of range\");\n }\n this.$elem = elem;\n this.$capacity = capacity;\n this.$buffer = [];\n this.$sendQueue = [];\n this.$recvQueue = [];\n this.$closed = false;\n};\nvar $chanNil = new $Chan(null, 0);\n$chanNil.$sendQueue = $chanNil.$recvQueue = { length: 0, push() { }, shift() { return undefined; }, indexOf() { return -1; } };\n\nvar $funcTypes = {};\nvar $funcType = (params, results, variadic) => {\n var typeKey = $mapArray(params, p => { return p.id; }).join(\",\") + \"$\" + $mapArray(results, r => { return r.id; }).join(\",\") + \"$\" + variadic;\n var typ = $funcTypes[typeKey];\n if (typ === undefined) {\n var paramTypes = $mapArray(params, p => { return p.string; });\n if (variadic) {\n paramTypes[paramTypes.length - 1] = \"...\" + paramTypes[paramTypes.length - 1].substring(2);\n }\n var string = \"func(\" + paramTypes.join(\", \") + \")\";\n if (results.length === 1) {\n string += \" \" + results[0].string;\n } else if (results.length > 1) {\n string += \" (\" + $mapArray(results, r => { return r.string; }).join(\", \") + \")\";\n }\n typ = $newType(4, $kindFunc, string, false, \"\", false, null);\n $funcTypes[typeKey] = typ;\n typ.init(params, results, variadic);\n }\n return typ;\n};\n\nvar $interfaceTypes = {};\nvar $interfaceType = methods => {\n var typeKey = $mapArray(methods, m => { return m.pkg + \",\" + m.name + \",\" + m.typ.id; }).join(\"$\");\n var typ = $interfaceTypes[typeKey];\n if (typ === undefined) {\n var string = \"interface {}\";\n if (methods.length !== 0) {\n string = \"interface { \" + $mapArray(methods, m => {\n return (m.pkg !== \"\" ? m.pkg + \".\" : \"\") + m.name + m.typ.string.substring(4);\n }).join(\"; \") + \" }\";\n }\n typ = $newType(8, $kindInterface, string, false, \"\", false, null);\n $interfaceTypes[typeKey] = typ;\n typ.init(methods);\n }\n return typ;\n};\nvar $emptyInterface = $interfaceType([]);\nvar $ifaceNil = {};\nvar $error = $newType(8, $kindInterface, \"error\", true, \"\", false, null);\n$error.init([{ prop: \"Error\", name: \"Error\", pkg: \"\", typ: $funcType([], [$String], false) }]);\n\nvar $mapTypes = {};\nvar $mapType = (key, elem) => {\n var typeKey = key.id + \"$\" + elem.id;\n var typ = $mapTypes[typeKey];\n if (typ === undefined) {\n typ = $newType(4, $kindMap, \"map[\" + key.string + \"]\" + elem.string, false, \"\", false, null);\n $mapTypes[typeKey] = typ;\n typ.init(key, elem);\n }\n return typ;\n};\nvar $makeMap = (keyForFunc, entries) => {\n var m = new Map();\n for (var i = 0; i < entries.length; i++) {\n var e = entries[i];\n m.set(keyForFunc(e.k), e);\n }\n return m;\n};\n\nvar $ptrType = elem => {\n var typ = elem.ptr;\n if (typ === undefined) {\n typ = $newType(4, $kindPtr, \"*\" + elem.string, false, \"\", elem.exported, null);\n elem.ptr = typ;\n typ.init(elem);\n }\n return typ;\n};\n\nvar $newDataPointer = (data, constructor) => {\n if (constructor.elem.kind === $kindStruct) {\n return data;\n }\n return new constructor(() => { return data; }, v => { data = v; });\n};\n\nvar $indexPtrGet = function () { return this.$target[this.$index]; };\nvar $indexPtrSet = function (v) { this.$target[this.$index] = v; };\nvar $indexPtr = (array, index, constructor) => {\n var makeIndexPtr = () => {\n if (constructor.elem.kind === $kindStruct ||\n constructor.elem.kind === $kindArray) {\n var ptr = array[index];\n if (ptr === undefined) {\n ptr = array[index] = constructor.elem.zero();\n }\n ptr.$val = ptr;\n ptr.$target = array;\n ptr.$index = index;\n ptr.$get = $indexPtrGet;\n ptr.$set = (v) => { constructor.elem.copy(array[index], v); };\n return ptr\n }\n return new constructor($indexPtrGet, $indexPtrSet, array, index);\n };\n\n if (array.buffer) {\n // Pointers to the same underlying ArrayBuffer share cache.\n var cache = array.buffer.$ptr = array.buffer.$ptr || {};\n // Pointers of different primitive types are non-comparable and stored in different caches.\n var typeCache = cache[array.name] = cache[array.name] || {};\n var cacheIdx = array.BYTES_PER_ELEMENT * index + array.byteOffset;\n return typeCache[cacheIdx] || (typeCache[cacheIdx] = makeIndexPtr());\n } else {\n array.$ptr = array.$ptr || {};\n return array.$ptr[index] || (array.$ptr[index] = makeIndexPtr());\n }\n};\n\nvar $sliceType = elem => {\n var typ = elem.slice;\n if (typ === undefined) {\n typ = $newType(12, $kindSlice, \"[]\" + elem.string, false, \"\", false, null);\n elem.slice = typ;\n typ.init(elem);\n }\n return typ;\n};\n\nvar $makeSlice = (typ, length, capacity = length) => {\n if (length < 0 || length > 2147483647) {\n $throwRuntimeError(\"makeslice: len out of range\");\n }\n if (capacity < 0 || capacity < length || capacity > 2147483647) {\n $throwRuntimeError(\"makeslice: cap out of range\");\n }\n var array = new typ.nativeArray(capacity);\n if (typ.nativeArray === Array) {\n for (var i = 0; i < capacity; i++) {\n array[i] = typ.elem.zero();\n }\n }\n var slice = new typ(array);\n slice.$length = length;\n return slice;\n};\n\nvar $structTypes = {};\nvar $structType = (pkgPath, fields) => {\n var typeKey = $mapArray(fields, f => { return f.name + \",\" + f.typ.id + \",\" + f.tag; }).join(\"$\");\n var typ = $structTypes[typeKey];\n if (typ === undefined) {\n var string = \"struct { \" + $mapArray(fields, f => {\n var str = f.typ.string + (f.tag !== \"\" ? (\" \\\"\" + f.tag.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, \"\\\\\\\"\") + \"\\\"\") : \"\");\n if (f.embedded) {\n return str;\n }\n return f.name + \" \" + str;\n }).join(\"; \") + \" }\";\n if (fields.length === 0) {\n string = \"struct {}\";\n }\n typ = $newType(0, $kindStruct, string, false, \"\", false, function(...args) {\n this.$val = this;\n for (var i = 0; i < fields.length; i++) {\n var f = fields[i];\n if (f.name == '_') {\n continue;\n }\n var arg = args[i];\n this[f.prop] = arg !== undefined ? arg : f.typ.zero();\n }\n });\n $structTypes[typeKey] = typ;\n typ.init(pkgPath, fields);\n }\n return typ;\n};\n\nvar $assertType = (value, type, returnTuple) => {\n var isInterface = (type.kind === $kindInterface), ok, missingMethod = \"\";\n if (value === $ifaceNil) {\n ok = false;\n } else if (!isInterface) {\n ok = value.constructor === type;\n } else {\n var valueTypeId = value.constructor.id;\n ok = type.implementedBy[valueTypeId];\n if (ok === undefined) {\n ok = true;\n var valueMethodSet = $methodSet(value.constructor);\n var interfaceMethods = type.methods;\n for (var i = 0; i < interfaceMethods.length; i++) {\n var tm = interfaceMethods[i];\n var found = false;\n for (var j = 0; j < valueMethodSet.length; j++) {\n var vm = valueMethodSet[j];\n if (vm.name === tm.name && vm.pkg === tm.pkg && vm.typ === tm.typ) {\n found = true;\n break;\n }\n }\n if (!found) {\n ok = false;\n type.missingMethodFor[valueTypeId] = tm.name;\n break;\n }\n }\n type.implementedBy[valueTypeId] = ok;\n }\n if (!ok) {\n missingMethod = type.missingMethodFor[valueTypeId];\n }\n }\n\n if (!ok) {\n if (returnTuple) {\n return [type.zero(), false];\n }\n $panic(new $packages[\"runtime\"].TypeAssertionError.ptr(\n $packages[\"runtime\"]._type.ptr.nil,\n (value === $ifaceNil ? $packages[\"runtime\"]._type.ptr.nil : new $packages[\"runtime\"]._type.ptr(value.constructor.string)),\n new $packages[\"runtime\"]._type.ptr(type.string),\n missingMethod));\n }\n\n if (!isInterface) {\n value = value.$val;\n }\n if (type === $jsObjectPtr) {\n value = value.object;\n }\n return returnTuple ? [value, true] : value;\n};\n"; + numeric = "var $min = Math.min;\nvar $max = Math.max;\n\nvar $less64 = (x, y) => x.$high < y.$high || (x.$high === y.$high && x.$low < y.$low);\nvar $min64 = (first, ...rest) => rest.reduce((m, x) => $less64(x, m) ? x : m, first);\nvar $max64 = (first, ...rest) => rest.reduce((m, x) => $less64(m, x) ? x : m, first);\nvar $minStr = (first, ...rest) => rest.reduce((m, x) => x < m ? x : m, first);\nvar $maxStr = (first, ...rest) => rest.reduce((m, x) => m < x ? x : m, first);\n\nvar $mod = (x, y) => { return x % y; };\nvar $parseInt = parseInt;\nvar $parseFloat = f => {\n if (f !== undefined && f !== null && f.constructor === Number) {\n return f;\n }\n return parseFloat(f);\n};\n\nvar $froundBuf = new Float32Array(1);\nvar $fround = Math.fround || (f => {\n $froundBuf[0] = f;\n return $froundBuf[0];\n});\n\nvar $imul = Math.imul || ((a, b) => {\n var ah = (a >>> 16) & 0xffff;\n var al = a & 0xffff;\n var bh = (b >>> 16) & 0xffff;\n var bl = b & 0xffff;\n return ((al * bl) + (((ah * bl + al * bh) << 16) >>> 0) >> 0);\n});\n\nvar $floatKey = f => {\n if (f !== f) {\n $idCounter++;\n return \"NaN$\" + $idCounter;\n }\n return String(f);\n};\n\nvar $flatten64 = x => {\n return x.$high * 4294967296 + x.$low;\n};\n\nvar $shiftLeft64 = (x, y) => {\n if (y === 0) {\n return x;\n }\n if (y < 32) {\n return new x.constructor(x.$high << y | x.$low >>> (32 - y), (x.$low << y) >>> 0);\n }\n if (y < 64) {\n return new x.constructor(x.$low << (y - 32), 0);\n }\n return new x.constructor(0, 0);\n};\n\nvar $shiftRightInt64 = (x, y) => {\n if (y === 0) {\n return x;\n }\n if (y < 32) {\n return new x.constructor(x.$high >> y, (x.$low >>> y | x.$high << (32 - y)) >>> 0);\n }\n if (y < 64) {\n return new x.constructor(x.$high >> 31, (x.$high >> (y - 32)) >>> 0);\n }\n if (x.$high < 0) {\n return new x.constructor(-1, 4294967295);\n }\n return new x.constructor(0, 0);\n};\n\nvar $shiftRightUint64 = (x, y) => {\n if (y === 0) {\n return x;\n }\n if (y < 32) {\n return new x.constructor(x.$high >>> y, (x.$low >>> y | x.$high << (32 - y)) >>> 0);\n }\n if (y < 64) {\n return new x.constructor(0, x.$high >>> (y - 32));\n }\n return new x.constructor(0, 0);\n};\n\nvar $mul64 = (x, y) => {\n var x48 = x.$high >>> 16;\n var x32 = x.$high & 0xFFFF;\n var x16 = x.$low >>> 16;\n var x00 = x.$low & 0xFFFF;\n\n var y48 = y.$high >>> 16;\n var y32 = y.$high & 0xFFFF;\n var y16 = y.$low >>> 16;\n var y00 = y.$low & 0xFFFF;\n\n var z48 = 0, z32 = 0, z16 = 0, z00 = 0;\n z00 += x00 * y00;\n z16 += z00 >>> 16;\n z00 &= 0xFFFF;\n z16 += x16 * y00;\n z32 += z16 >>> 16;\n z16 &= 0xFFFF;\n z16 += x00 * y16;\n z32 += z16 >>> 16;\n z16 &= 0xFFFF;\n z32 += x32 * y00;\n z48 += z32 >>> 16;\n z32 &= 0xFFFF;\n z32 += x16 * y16;\n z48 += z32 >>> 16;\n z32 &= 0xFFFF;\n z32 += x00 * y32;\n z48 += z32 >>> 16;\n z32 &= 0xFFFF;\n z48 += x48 * y00 + x32 * y16 + x16 * y32 + x00 * y48;\n z48 &= 0xFFFF;\n\n var hi = ((z48 << 16) | z32) >>> 0;\n var lo = ((z16 << 16) | z00) >>> 0;\n\n var r = new x.constructor(hi, lo);\n return r;\n};\n\nvar $div64 = (x, y, returnRemainder) => {\n if (y.$high === 0 && y.$low === 0) {\n $throwRuntimeError(\"integer divide by zero\");\n }\n\n var s = 1;\n var rs = 1;\n\n var xHigh = x.$high;\n var xLow = x.$low;\n if (xHigh < 0) {\n s = -1;\n rs = -1;\n xHigh = -xHigh;\n if (xLow !== 0) {\n xHigh--;\n xLow = 4294967296 - xLow;\n }\n }\n\n var yHigh = y.$high;\n var yLow = y.$low;\n if (y.$high < 0) {\n s *= -1;\n yHigh = -yHigh;\n if (yLow !== 0) {\n yHigh--;\n yLow = 4294967296 - yLow;\n }\n }\n\n var high = 0, low = 0, n = 0;\n while (yHigh < 2147483648 && ((xHigh > yHigh) || (xHigh === yHigh && xLow > yLow))) {\n yHigh = (yHigh << 1 | yLow >>> 31) >>> 0;\n yLow = (yLow << 1) >>> 0;\n n++;\n }\n for (var i = 0; i <= n; i++) {\n high = high << 1 | low >>> 31;\n low = (low << 1) >>> 0;\n if ((xHigh > yHigh) || (xHigh === yHigh && xLow >= yLow)) {\n xHigh = xHigh - yHigh;\n xLow = xLow - yLow;\n if (xLow < 0) {\n xHigh--;\n xLow += 4294967296;\n }\n low++;\n if (low === 4294967296) {\n high++;\n low = 0;\n }\n }\n yLow = (yLow >>> 1 | yHigh << (32 - 1)) >>> 0;\n yHigh = yHigh >>> 1;\n }\n\n if (returnRemainder) {\n return new x.constructor(xHigh * rs, xLow * rs);\n }\n return new x.constructor(high * s, low * s);\n};\n\nvar $divComplex = (n, d) => {\n var ninf = n.$real === Infinity || n.$real === -Infinity || n.$imag === Infinity || n.$imag === -Infinity;\n var dinf = d.$real === Infinity || d.$real === -Infinity || d.$imag === Infinity || d.$imag === -Infinity;\n var nnan = !ninf && (n.$real !== n.$real || n.$imag !== n.$imag);\n var dnan = !dinf && (d.$real !== d.$real || d.$imag !== d.$imag);\n if (nnan || dnan) {\n return new n.constructor(NaN, NaN);\n }\n if (ninf && !dinf) {\n return new n.constructor(Infinity, Infinity);\n }\n if (!ninf && dinf) {\n return new n.constructor(0, 0);\n }\n if (d.$real === 0 && d.$imag === 0) {\n if (n.$real === 0 && n.$imag === 0) {\n return new n.constructor(NaN, NaN);\n }\n return new n.constructor(Infinity, Infinity);\n }\n var a = Math.abs(d.$real);\n var b = Math.abs(d.$imag);\n if (a <= b) {\n var ratio = d.$real / d.$imag;\n var denom = d.$real * ratio + d.$imag;\n return new n.constructor((n.$real * ratio + n.$imag) / denom, (n.$imag * ratio - n.$real) / denom);\n }\n var ratio = d.$imag / d.$real;\n var denom = d.$imag * ratio + d.$real;\n return new n.constructor((n.$imag * ratio + n.$real) / denom, (n.$imag - n.$real * ratio) / denom);\n};\n"; jsmapping = "var $jsObjectPtr, $jsErrorPtr;\n\nvar $needsExternalization = t => {\n switch (t.kind) {\n case $kindBool:\n case $kindInt:\n case $kindInt8:\n case $kindInt16:\n case $kindInt32:\n case $kindUint:\n case $kindUint8:\n case $kindUint16:\n case $kindUint32:\n case $kindUintptr:\n case $kindFloat32:\n case $kindFloat64:\n return false;\n default:\n return t !== $jsObjectPtr;\n }\n};\n\nvar $externalize = (v, t, makeWrapper) => {\n if (t === $jsObjectPtr) {\n return v;\n }\n switch (t.kind) {\n case $kindBool:\n case $kindInt:\n case $kindInt8:\n case $kindInt16:\n case $kindInt32:\n case $kindUint:\n case $kindUint8:\n case $kindUint16:\n case $kindUint32:\n case $kindUintptr:\n case $kindFloat32:\n case $kindFloat64:\n return v;\n case $kindInt64:\n case $kindUint64:\n return $flatten64(v);\n case $kindArray:\n if ($needsExternalization(t.elem)) {\n return $mapArray(v, e => { return $externalize(e, t.elem, makeWrapper); });\n }\n return v;\n case $kindFunc:\n return $externalizeFunction(v, t, false, makeWrapper);\n case $kindInterface:\n if (v === $ifaceNil) {\n return null;\n }\n if (v.constructor === $jsObjectPtr) {\n return v.$val.object;\n }\n return $externalize(v.$val, v.constructor, makeWrapper);\n case $kindMap:\n if (v.keys === undefined) {\n return null;\n }\n var m = {};\n var keys = Array.from(v.keys());\n for (var i = 0; i < keys.length; i++) {\n var entry = v.get(keys[i]);\n m[$externalize(entry.k, t.key, makeWrapper)] = $externalize(entry.v, t.elem, makeWrapper);\n }\n return m;\n case $kindPtr:\n if (v === t.nil) {\n return null;\n }\n return $externalize(v.$get(), t.elem, makeWrapper);\n case $kindSlice:\n if (v === v.constructor.nil) {\n return null;\n }\n if ($needsExternalization(t.elem)) {\n return $mapArray($sliceToNativeArray(v), e => { return $externalize(e, t.elem, makeWrapper); });\n }\n return $sliceToNativeArray(v);\n case $kindString:\n if ($isASCII(v)) {\n return v;\n }\n var s = \"\", r;\n for (var i = 0; i < v.length; i += r[1]) {\n r = $decodeRune(v, i);\n var c = r[0];\n if (c > 0xFFFF) {\n var h = Math.floor((c - 0x10000) / 0x400) + 0xD800;\n var l = (c - 0x10000) % 0x400 + 0xDC00;\n s += String.fromCharCode(h, l);\n continue;\n }\n s += String.fromCharCode(c);\n }\n return s;\n case $kindStruct:\n var timePkg = $packages[\"time\"];\n if (timePkg !== undefined && v.constructor === timePkg.Time.ptr) {\n var milli = $div64(v.UnixNano(), new $Int64(0, 1000000));\n return new Date($flatten64(milli));\n }\n\n var noJsObject = {};\n var searchJsObject = (v, t) => {\n if (t === $jsObjectPtr) {\n return v;\n }\n switch (t.kind) {\n case $kindPtr:\n if (v === t.nil) {\n return noJsObject;\n }\n return searchJsObject(v.$get(), t.elem);\n case $kindStruct:\n if (t.fields.length === 0) {\n return noJsObject;\n }\n var f = t.fields[0];\n return searchJsObject(v[f.prop], f.typ);\n case $kindInterface:\n return searchJsObject(v.$val, v.constructor);\n default:\n return noJsObject;\n }\n };\n var o = searchJsObject(v, t);\n if (o !== noJsObject) {\n return o;\n }\n\n if (makeWrapper !== undefined) {\n return makeWrapper(v);\n }\n\n o = {};\n for (var i = 0; i < t.fields.length; i++) {\n var f = t.fields[i];\n if (!f.exported) {\n continue;\n }\n o[f.name] = $externalize(v[f.prop], f.typ, makeWrapper);\n }\n return o;\n }\n $throwRuntimeError(\"cannot externalize \" + t.string);\n};\n\nvar $externalizeFunction = (v, t, passThis, makeWrapper) => {\n if (v === $throwNilPointerError) {\n return null;\n }\n if (v.$externalizeWrapper === undefined) {\n $checkForDeadlock = false;\n v.$externalizeWrapper = function () {\n var args = [];\n for (var i = 0; i < t.params.length; i++) {\n if (t.variadic && i === t.params.length - 1) {\n var vt = t.params[i].elem, varargs = [];\n for (var j = i; j < arguments.length; j++) {\n varargs.push($internalize(arguments[j], vt, makeWrapper));\n }\n args.push(new (t.params[i])(varargs));\n break;\n }\n args.push($internalize(arguments[i], t.params[i], makeWrapper));\n }\n var result = v.apply(passThis ? this : undefined, args);\n switch (t.results.length) {\n case 0:\n return;\n case 1:\n return $externalize($copyIfRequired(result, t.results[0]), t.results[0], makeWrapper);\n default:\n for (var i = 0; i < t.results.length; i++) {\n result[i] = $externalize($copyIfRequired(result[i], t.results[i]), t.results[i], makeWrapper);\n }\n return result;\n }\n };\n }\n return v.$externalizeWrapper;\n};\n\nvar $internalize = (v, t, recv, seen, makeWrapper) => {\n if (t === $jsObjectPtr) {\n return v;\n }\n if (t === $jsObjectPtr.elem) {\n $throwRuntimeError(\"cannot internalize js.Object, use *js.Object instead\");\n }\n if (v && v.__internal_object__ !== undefined) {\n return $assertType(v.__internal_object__, t, false);\n }\n var timePkg = $packages[\"time\"];\n if (timePkg !== undefined && t === timePkg.Time) {\n if (!(v !== null && v !== undefined && v.constructor === Date)) {\n $throwRuntimeError(\"cannot internalize time.Time from \" + typeof v + \", must be Date\");\n }\n return timePkg.Unix(new $Int64(0, 0), new $Int64(0, v.getTime() * 1000000));\n }\n\n // Cache for values we've already internalized in order to deal with circular\n // references.\n if (seen === undefined) { seen = new Map(); }\n if (!seen.has(t)) { seen.set(t, new Map()); }\n if (seen.get(t).has(v)) { return seen.get(t).get(v); }\n\n switch (t.kind) {\n case $kindBool:\n return !!v;\n case $kindInt:\n return parseInt(v);\n case $kindInt8:\n return parseInt(v) << 24 >> 24;\n case $kindInt16:\n return parseInt(v) << 16 >> 16;\n case $kindInt32:\n return parseInt(v) >> 0;\n case $kindUint:\n return parseInt(v);\n case $kindUint8:\n return parseInt(v) << 24 >>> 24;\n case $kindUint16:\n return parseInt(v) << 16 >>> 16;\n case $kindUint32:\n case $kindUintptr:\n return parseInt(v) >>> 0;\n case $kindInt64:\n case $kindUint64:\n return new t(0, v);\n case $kindFloat32:\n case $kindFloat64:\n return parseFloat(v);\n case $kindArray:\n if (v === null || v === undefined) {\n $throwRuntimeError(\"cannot internalize \"+v+\" as a \"+t.string);\n }\n if (v.length !== t.len) {\n $throwRuntimeError(\"got array with wrong size from JavaScript native\");\n }\n return $mapArray(v, e => { return $internalize(e, t.elem, makeWrapper); });\n case $kindFunc:\n return function () {\n var args = [];\n for (var i = 0; i < t.params.length; i++) {\n if (t.variadic && i === t.params.length - 1) {\n var vt = t.params[i].elem, varargs = arguments[i];\n for (var j = 0; j < varargs.$length; j++) {\n args.push($externalize(varargs.$array[varargs.$offset + j], vt, makeWrapper));\n }\n break;\n }\n args.push($externalize(arguments[i], t.params[i], makeWrapper));\n }\n var result = v.apply(recv, args);\n switch (t.results.length) {\n case 0:\n return;\n case 1:\n return $internalize(result, t.results[0], makeWrapper);\n default:\n for (var i = 0; i < t.results.length; i++) {\n result[i] = $internalize(result[i], t.results[i], makeWrapper);\n }\n return result;\n }\n };\n case $kindInterface:\n if (t.methods.length !== 0) {\n $throwRuntimeError(\"cannot internalize \" + t.string);\n }\n if (v === null) {\n return $ifaceNil;\n }\n if (v === undefined) {\n return new $jsObjectPtr(undefined);\n }\n switch (v.constructor) {\n case Int8Array:\n return new ($sliceType($Int8))(v);\n case Int16Array:\n return new ($sliceType($Int16))(v);\n case Int32Array:\n return new ($sliceType($Int))(v);\n case Uint8Array:\n return new ($sliceType($Uint8))(v);\n case Uint16Array:\n return new ($sliceType($Uint16))(v);\n case Uint32Array:\n return new ($sliceType($Uint))(v);\n case Float32Array:\n return new ($sliceType($Float32))(v);\n case Float64Array:\n return new ($sliceType($Float64))(v);\n case Array:\n return $internalize(v, $sliceType($emptyInterface), makeWrapper);\n case Boolean:\n return new $Bool(!!v);\n case Date:\n if (timePkg === undefined) {\n /* time package is not present, internalize as &js.Object{Date} so it can be externalized into original Date. */\n return new $jsObjectPtr(v);\n }\n return new timePkg.Time($internalize(v, timePkg.Time, makeWrapper));\n case ((() => { })).constructor: // is usually Function, but in Chrome extensions it is something else\n var funcType = $funcType([$sliceType($emptyInterface)], [$jsObjectPtr], true);\n return new funcType($internalize(v, funcType, makeWrapper));\n case Number:\n return new $Float64(parseFloat(v));\n case String:\n return new $String($internalize(v, $String, makeWrapper));\n default:\n if ($global.Node && v instanceof $global.Node) {\n return new $jsObjectPtr(v);\n }\n var mapType = $mapType($String, $emptyInterface);\n return new mapType($internalize(v, mapType, recv, seen, makeWrapper));\n }\n case $kindMap:\n var m = new Map();\n seen.get(t).set(v, m);\n var keys = $keys(v);\n for (var i = 0; i < keys.length; i++) {\n var k = $internalize(keys[i], t.key, recv, seen, makeWrapper);\n m.set(t.key.keyFor(k), { k, v: $internalize(v[keys[i]], t.elem, recv, seen, makeWrapper) });\n }\n return m;\n case $kindPtr:\n if (t.elem.kind === $kindStruct) {\n return $internalize(v, t.elem, makeWrapper);\n }\n case $kindSlice:\n if (v == null) {\n return t.zero();\n }\n return new t($mapArray(v, e => { return $internalize(e, t.elem, makeWrapper); }));\n case $kindString:\n v = String(v);\n if ($isASCII(v)) {\n return v;\n }\n var s = \"\";\n var i = 0;\n while (i < v.length) {\n var h = v.charCodeAt(i);\n if (0xD800 <= h && h <= 0xDBFF) {\n var l = v.charCodeAt(i + 1);\n var c = (h - 0xD800) * 0x400 + l - 0xDC00 + 0x10000;\n s += $encodeRune(c);\n i += 2;\n continue;\n }\n s += $encodeRune(h);\n i++;\n }\n return s;\n case $kindStruct:\n var noJsObject = {};\n var searchJsObject = t => {\n if (t === $jsObjectPtr) {\n return v;\n }\n if (t === $jsObjectPtr.elem) {\n $throwRuntimeError(\"cannot internalize js.Object, use *js.Object instead\");\n }\n switch (t.kind) {\n case $kindPtr:\n return searchJsObject(t.elem);\n case $kindStruct:\n if (t.fields.length === 0) {\n return noJsObject;\n }\n var f = t.fields[0];\n var o = searchJsObject(f.typ);\n if (o !== noJsObject) {\n var n = new t.ptr();\n n[f.prop] = o;\n return n;\n }\n return noJsObject;\n default:\n return noJsObject;\n }\n };\n var o = searchJsObject(t);\n if (o !== noJsObject) {\n return o;\n }\n var n = new t.ptr();\n for (var i = 0; i < t.fields.length; i++) {\n var f = t.fields[i];\n if (!f.exported) {\n continue;\n }\n var jsProp = v[f.name];\n n[f.prop] = $internalize(jsProp, f.typ, recv, seen, makeWrapper);\n }\n return n;\n }\n $throwRuntimeError(\"cannot internalize \" + t.string);\n};\n\nvar $copyIfRequired = (v, typ) => {\n // interface values\n if (v && v.constructor && v.constructor.copy) {\n return new v.constructor($clone(v.$val, v.constructor))\n }\n // array and struct values\n if (typ.copy) {\n var clone = typ.zero();\n typ.copy(clone, v);\n return clone;\n }\n return v;\n}\n\n/* $isASCII reports whether string s contains only ASCII characters. */\nvar $isASCII = s => {\n for (var i = 0; i < s.length; i++) {\n if (s.charCodeAt(i) >= 128) {\n return false;\n }\n }\n return true;\n};\n"; - goroutines = "var $stackDepthOffset = 0;\nvar $getStackDepth = () => {\n var err = new Error();\n if (err.stack === undefined) {\n return undefined;\n }\n return $stackDepthOffset + err.stack.split(\"\\n\").length;\n};\n\nvar $panicStackDepth = null, $panicValue;\nvar $callDeferred = (deferred, jsErr, fromPanic) => {\n if (!fromPanic && deferred !== null && $curGoroutine.deferStack.indexOf(deferred) == -1) {\n throw jsErr;\n }\n if (jsErr !== null) {\n var newErr = null;\n try {\n $panic(new $jsErrorPtr(jsErr));\n } catch (err) {\n newErr = err;\n }\n $callDeferred(deferred, newErr);\n return;\n }\n if ($curGoroutine.asleep) {\n return;\n }\n\n $stackDepthOffset--;\n var outerPanicStackDepth = $panicStackDepth;\n var outerPanicValue = $panicValue;\n\n var localPanicValue = $curGoroutine.panicStack.pop();\n if (localPanicValue !== undefined) {\n $panicStackDepth = $getStackDepth();\n $panicValue = localPanicValue;\n }\n\n try {\n while (true) {\n if (deferred === null) {\n deferred = $curGoroutine.deferStack[$curGoroutine.deferStack.length - 1];\n if (deferred === undefined) {\n /* The panic reached the top of the stack. Clear it and throw it as a JavaScript error. */\n $panicStackDepth = null;\n if (localPanicValue.Object instanceof Error) {\n throw localPanicValue.Object;\n }\n var msg;\n if (localPanicValue.constructor === $String) {\n msg = localPanicValue.$val;\n } else if (localPanicValue.Error !== undefined) {\n msg = localPanicValue.Error();\n } else if (localPanicValue.String !== undefined) {\n msg = localPanicValue.String();\n } else {\n msg = localPanicValue;\n }\n throw new Error(msg);\n }\n }\n var call = deferred.pop();\n if (call === undefined) {\n $curGoroutine.deferStack.pop();\n if (localPanicValue !== undefined) {\n deferred = null;\n continue;\n }\n return;\n }\n var r = call[0].apply(call[2], call[1]);\n if (r && r.$blk !== undefined) {\n deferred.push([r.$blk, [], r]);\n if (fromPanic) {\n throw null;\n }\n return;\n }\n\n if (localPanicValue !== undefined && $panicStackDepth === null) {\n /* error was recovered */\n if (fromPanic) {\n throw null;\n }\n return;\n }\n }\n } catch (e) {\n // Deferred function threw a JavaScript exception or tries to unwind stack\n // to the point where a panic was handled.\n if (fromPanic) {\n // Re-throw the exception to reach deferral execution call at the end\n // of the function.\n throw e;\n }\n // We are at the end of the function, handle the error or re-throw to\n // continue unwinding if necessary, or simply stop unwinding if we got far\n // enough.\n $callDeferred(deferred, e, fromPanic);\n } finally {\n if (localPanicValue !== undefined) {\n if ($panicStackDepth !== null) {\n $curGoroutine.panicStack.push(localPanicValue);\n }\n $panicStackDepth = outerPanicStackDepth;\n $panicValue = outerPanicValue;\n }\n $stackDepthOffset++;\n }\n};\n\nvar $panic = value => {\n $curGoroutine.panicStack.push(value);\n $callDeferred(null, null, true);\n};\nvar $recover = () => {\n if ($panicStackDepth === null || ($panicStackDepth !== undefined && $panicStackDepth !== $getStackDepth() - 2)) {\n return $ifaceNil;\n }\n $panicStackDepth = null;\n return $panicValue;\n};\nvar $throw = err => { throw err; };\n\nvar $noGoroutine = { asleep: false, exit: false, deferStack: [], panicStack: [] };\nvar $curGoroutine = $noGoroutine, $totalGoroutines = 0, $awakeGoroutines = 0, $checkForDeadlock = true, $exportedFunctions = 0;\nvar $mainFinished = false;\nvar $go = (fun, args) => {\n $totalGoroutines++;\n $awakeGoroutines++;\n var $goroutine = () => {\n try {\n $curGoroutine = $goroutine;\n var r = fun(...args);\n if (r && r.$blk !== undefined) {\n fun = () => { return r.$blk(); };\n args = [];\n return;\n }\n $goroutine.exit = true;\n } catch (err) {\n if (!$goroutine.exit) {\n throw err;\n }\n } finally {\n $curGoroutine = $noGoroutine;\n if ($goroutine.exit) { /* also set by runtime.Goexit() */\n $totalGoroutines--;\n $goroutine.asleep = true;\n }\n if ($goroutine.asleep) {\n $awakeGoroutines--;\n if (!$mainFinished && $awakeGoroutines === 0 && $checkForDeadlock && $exportedFunctions === 0) {\n console.error(\"fatal error: all goroutines are asleep - deadlock!\");\n if ($global.process !== undefined) {\n $global.process.exit(2);\n }\n }\n }\n }\n };\n $goroutine.asleep = false;\n $goroutine.exit = false;\n $goroutine.deferStack = [];\n $goroutine.panicStack = [];\n $schedule($goroutine);\n};\n\nvar $scheduled = [];\nvar $runScheduled = () => {\n // For nested setTimeout calls browsers enforce 4ms minimum delay. We minimize\n // the effect of this penalty by queueing the timer preemptively before we run\n // the goroutines, and later cancelling it if it turns out unneeded. See:\n // https://developer.mozilla.org/en-US/docs/Web/API/setTimeout#nested_timeouts\n var nextRun = setTimeout($runScheduled);\n try {\n var start = Date.now();\n var r;\n while ((r = $scheduled.shift()) !== undefined) {\n r();\n // We need to interrupt this loop in order to allow the event loop to\n // process timers, IO, etc. However, invoking scheduling through\n // setTimeout is ~1000 times more expensive, so we amortize this cost by\n // looping until the 4ms minimal delay has elapsed (assuming there are\n // scheduled goroutines to run), and then yield to the event loop.\n var elapsed = Date.now() - start;\n if (elapsed > 4 || elapsed < 0) { break; }\n }\n } finally {\n if ($scheduled.length == 0) {\n // Cancel scheduling pass if there's nothing to run.\n clearTimeout(nextRun);\n }\n }\n};\n\nvar $schedule = goroutine => {\n if (goroutine.asleep) {\n goroutine.asleep = false;\n $awakeGoroutines++;\n }\n $scheduled.push(goroutine);\n if ($curGoroutine === $noGoroutine) {\n $runScheduled();\n }\n};\n\nvar $setTimeout = (f, t) => {\n $awakeGoroutines++;\n return setTimeout(() => {\n $awakeGoroutines--;\n f();\n }, t);\n};\n\nvar $block = () => {\n if ($curGoroutine === $noGoroutine) {\n $throwRuntimeError(\"cannot block in JavaScript callback, fix by wrapping code in goroutine\");\n }\n $curGoroutine.asleep = true;\n};\n\nvar $restore = (context, params) => {\n if (context !== undefined && context.$blk !== undefined) {\n return context;\n }\n return params;\n}\n\nvar $send = (chan, value) => {\n if (chan.$closed) {\n $throwRuntimeError(\"send on closed channel\");\n }\n var queuedRecv = chan.$recvQueue.shift();\n if (queuedRecv !== undefined) {\n queuedRecv([value, true]);\n return;\n }\n if (chan.$buffer.length < chan.$capacity) {\n chan.$buffer.push(value);\n return;\n }\n\n var thisGoroutine = $curGoroutine;\n var closedDuringSend;\n chan.$sendQueue.push(closed => {\n closedDuringSend = closed;\n $schedule(thisGoroutine);\n return value;\n });\n $block();\n return {\n $blk() {\n if (closedDuringSend) {\n $throwRuntimeError(\"send on closed channel\");\n }\n }\n };\n};\nvar $recv = chan => {\n var queuedSend = chan.$sendQueue.shift();\n if (queuedSend !== undefined) {\n chan.$buffer.push(queuedSend(false));\n }\n var bufferedValue = chan.$buffer.shift();\n if (bufferedValue !== undefined) {\n return [bufferedValue, true];\n }\n if (chan.$closed) {\n return [chan.$elem.zero(), false];\n }\n\n var thisGoroutine = $curGoroutine;\n var f = { $blk() { return this.value; } };\n var queueEntry = v => {\n f.value = v;\n $schedule(thisGoroutine);\n };\n chan.$recvQueue.push(queueEntry);\n $block();\n return f;\n};\nvar $close = chan => {\n if (chan.$closed) {\n $throwRuntimeError(\"close of closed channel\");\n }\n chan.$closed = true;\n while (true) {\n var queuedSend = chan.$sendQueue.shift();\n if (queuedSend === undefined) {\n break;\n }\n queuedSend(true); /* will panic */\n }\n while (true) {\n var queuedRecv = chan.$recvQueue.shift();\n if (queuedRecv === undefined) {\n break;\n }\n queuedRecv([chan.$elem.zero(), false]);\n }\n};\nvar $select = comms => {\n var ready = [];\n var selection = -1;\n for (var i = 0; i < comms.length; i++) {\n var comm = comms[i];\n var chan = comm[0];\n switch (comm.length) {\n case 0: /* default */\n selection = i;\n break;\n case 1: /* recv */\n if (chan.$sendQueue.length !== 0 || chan.$buffer.length !== 0 || chan.$closed) {\n ready.push(i);\n }\n break;\n case 2: /* send */\n if (chan.$closed) {\n $throwRuntimeError(\"send on closed channel\");\n }\n if (chan.$recvQueue.length !== 0 || chan.$buffer.length < chan.$capacity) {\n ready.push(i);\n }\n break;\n }\n }\n\n if (ready.length !== 0) {\n selection = ready[Math.floor(Math.random() * ready.length)];\n }\n if (selection !== -1) {\n var comm = comms[selection];\n switch (comm.length) {\n case 0: /* default */\n return [selection];\n case 1: /* recv */\n return [selection, $recv(comm[0])];\n case 2: /* send */\n $send(comm[0], comm[1]);\n return [selection];\n }\n }\n\n var entries = [];\n var thisGoroutine = $curGoroutine;\n var f = { $blk() { return this.selection; } };\n var removeFromQueues = () => {\n for (var i = 0; i < entries.length; i++) {\n var entry = entries[i];\n var queue = entry[0];\n var index = queue.indexOf(entry[1]);\n if (index !== -1) {\n queue.splice(index, 1);\n }\n }\n };\n for (var i = 0; i < comms.length; i++) {\n (i => {\n var comm = comms[i];\n switch (comm.length) {\n case 1: /* recv */\n var queueEntry = value => {\n f.selection = [i, value];\n removeFromQueues();\n $schedule(thisGoroutine);\n };\n entries.push([comm[0].$recvQueue, queueEntry]);\n comm[0].$recvQueue.push(queueEntry);\n break;\n case 2: /* send */\n var queueEntry = () => {\n if (comm[0].$closed) {\n $throwRuntimeError(\"send on closed channel\");\n }\n f.selection = [i];\n removeFromQueues();\n $schedule(thisGoroutine);\n return comm[1];\n };\n entries.push([comm[0].$sendQueue, queueEntry]);\n comm[0].$sendQueue.push(queueEntry);\n break;\n }\n })(i);\n }\n $block();\n return f;\n};\n"; + goroutines = "var $stackDepthOffset = 0;\nvar $getStackDepth = () => {\n var err = new Error();\n if (err.stack === undefined) {\n return undefined;\n }\n return $stackDepthOffset + err.stack.split(\"\\n\").length;\n};\n\nvar $panicStackDepth = null, $panicValue;\nvar $callDeferred = (deferred, jsErr, fromPanic) => {\n if (!fromPanic && deferred !== null && $curGoroutine.deferStack.indexOf(deferred) == -1) {\n throw jsErr;\n }\n if (jsErr !== null) {\n var newErr = null;\n try {\n $panic(new $jsErrorPtr(jsErr));\n } catch (err) {\n newErr = err;\n }\n $callDeferred(deferred, newErr);\n return;\n }\n if ($curGoroutine.asleep) {\n return;\n }\n\n $stackDepthOffset--;\n var outerPanicStackDepth = $panicStackDepth;\n var outerPanicValue = $panicValue;\n\n var localPanicValue = $curGoroutine.panicStack.pop();\n if (localPanicValue !== undefined) {\n $panicStackDepth = $getStackDepth();\n $panicValue = localPanicValue;\n }\n\n try {\n while (true) {\n if (deferred === null) {\n deferred = $curGoroutine.deferStack[$curGoroutine.deferStack.length - 1];\n if (deferred === undefined) {\n /* The panic reached the top of the stack. Clear it and throw it as a JavaScript error. */\n $panicStackDepth = null;\n if (localPanicValue.Object instanceof Error) {\n throw localPanicValue.Object;\n }\n var msg;\n if (localPanicValue.constructor === $String) {\n msg = localPanicValue.$val;\n } else if (localPanicValue.Error !== undefined) {\n msg = localPanicValue.Error();\n } else if (localPanicValue.String !== undefined) {\n msg = localPanicValue.String();\n } else {\n msg = localPanicValue;\n }\n throw new Error(msg);\n }\n }\n var call = deferred.pop();\n if (call === undefined) {\n $curGoroutine.deferStack.pop();\n if (localPanicValue !== undefined) {\n deferred = null;\n continue;\n }\n return;\n }\n var r = call[0].apply(call[2], call[1]);\n if (r && r.$blk !== undefined) {\n deferred.push([r.$blk, [], r]);\n if (fromPanic) {\n throw null;\n }\n return;\n }\n\n if (localPanicValue !== undefined && $panicStackDepth === null) {\n /* error was recovered */\n if (fromPanic) {\n throw null;\n }\n return;\n }\n }\n } catch (e) {\n // Deferred function threw a JavaScript exception or tries to unwind stack\n // to the point where a panic was handled.\n if (fromPanic) {\n // Re-throw the exception to reach deferral execution call at the end\n // of the function.\n throw e;\n }\n // We are at the end of the function, handle the error or re-throw to\n // continue unwinding if necessary, or simply stop unwinding if we got far\n // enough.\n $callDeferred(deferred, e, fromPanic);\n } finally {\n if (localPanicValue !== undefined) {\n if ($panicStackDepth !== null) {\n $curGoroutine.panicStack.push(localPanicValue);\n }\n $panicStackDepth = outerPanicStackDepth;\n $panicValue = outerPanicValue;\n }\n $stackDepthOffset++;\n }\n};\n\nvar $panicnil = \"0\";\nvar $panic = value => {\n if (value === $ifaceNil && $panicnil !== \"1\") {\n value = $newPanicNilError();\n }\n $curGoroutine.panicStack.push(value);\n $callDeferred(null, null, true);\n};\nvar $recover = () => {\n if ($panicStackDepth === null || ($panicStackDepth !== undefined && $panicStackDepth !== $getStackDepth() - 2)) {\n return $ifaceNil;\n }\n $panicStackDepth = null;\n return $panicValue;\n};\nvar $throw = err => { throw err; };\n\nvar $noGoroutine = { asleep: false, exit: false, deferStack: [], panicStack: [] };\nvar $curGoroutine = $noGoroutine, $totalGoroutines = 0, $awakeGoroutines = 0, $checkForDeadlock = true, $exportedFunctions = 0;\nvar $mainFinished = false;\nvar $go = (fun, args) => {\n $totalGoroutines++;\n $awakeGoroutines++;\n var $goroutine = () => {\n try {\n $curGoroutine = $goroutine;\n var r = fun(...args);\n if (r && r.$blk !== undefined) {\n fun = () => { return r.$blk(); };\n args = [];\n return;\n }\n $goroutine.exit = true;\n } catch (err) {\n if (!$goroutine.exit) {\n throw err;\n }\n } finally {\n $curGoroutine = $noGoroutine;\n if ($goroutine.exit) { /* also set by runtime.Goexit() */\n $totalGoroutines--;\n $goroutine.asleep = true;\n }\n if ($goroutine.asleep) {\n $awakeGoroutines--;\n if (!$mainFinished && $awakeGoroutines === 0 && $checkForDeadlock && $exportedFunctions === 0) {\n console.error(\"fatal error: all goroutines are asleep - deadlock!\");\n if ($global.process !== undefined) {\n $global.process.exit(2);\n }\n }\n }\n }\n };\n $goroutine.asleep = false;\n $goroutine.exit = false;\n $goroutine.deferStack = [];\n $goroutine.panicStack = [];\n $schedule($goroutine);\n};\n\nvar $scheduled = [];\nvar $runScheduled = () => {\n // For nested setTimeout calls browsers enforce 4ms minimum delay. We minimize\n // the effect of this penalty by queueing the timer preemptively before we run\n // the goroutines, and later cancelling it if it turns out unneeded. See:\n // https://developer.mozilla.org/en-US/docs/Web/API/setTimeout#nested_timeouts\n var nextRun = setTimeout($runScheduled);\n try {\n var start = Date.now();\n var r;\n while ((r = $scheduled.shift()) !== undefined) {\n r();\n // We need to interrupt this loop in order to allow the event loop to\n // process timers, IO, etc. However, invoking scheduling through\n // setTimeout is ~1000 times more expensive, so we amortize this cost by\n // looping until the 4ms minimal delay has elapsed (assuming there are\n // scheduled goroutines to run), and then yield to the event loop.\n var elapsed = Date.now() - start;\n if (elapsed > 4 || elapsed < 0) { break; }\n }\n } finally {\n if ($scheduled.length == 0) {\n // Cancel scheduling pass if there's nothing to run.\n clearTimeout(nextRun);\n }\n }\n};\n\nvar $schedule = goroutine => {\n if (goroutine.asleep) {\n goroutine.asleep = false;\n $awakeGoroutines++;\n }\n $scheduled.push(goroutine);\n if ($curGoroutine === $noGoroutine) {\n $runScheduled();\n }\n};\n\nvar $setTimeout = (f, t) => {\n $awakeGoroutines++;\n return setTimeout(() => {\n $awakeGoroutines--;\n f();\n }, t);\n};\n\nvar $block = () => {\n if ($curGoroutine === $noGoroutine) {\n $throwRuntimeError(\"cannot block in JavaScript callback, fix by wrapping code in goroutine\");\n }\n $curGoroutine.asleep = true;\n};\n\nvar $restore = (context, params) => {\n if (context !== undefined && context.$blk !== undefined) {\n return context;\n }\n return params;\n}\n\nvar $send = (chan, value) => {\n if (chan.$closed) {\n $throwRuntimeError(\"send on closed channel\");\n }\n var queuedRecv = chan.$recvQueue.shift();\n if (queuedRecv !== undefined) {\n queuedRecv([value, true]);\n return;\n }\n if (chan.$buffer.length < chan.$capacity) {\n chan.$buffer.push(value);\n return;\n }\n\n var thisGoroutine = $curGoroutine;\n var closedDuringSend;\n chan.$sendQueue.push(closed => {\n closedDuringSend = closed;\n $schedule(thisGoroutine);\n return value;\n });\n $block();\n return {\n $blk() {\n if (closedDuringSend) {\n $throwRuntimeError(\"send on closed channel\");\n }\n }\n };\n};\nvar $recv = chan => {\n var queuedSend = chan.$sendQueue.shift();\n if (queuedSend !== undefined) {\n chan.$buffer.push(queuedSend(false));\n }\n var bufferedValue = chan.$buffer.shift();\n if (bufferedValue !== undefined) {\n return [bufferedValue, true];\n }\n if (chan.$closed) {\n return [chan.$elem.zero(), false];\n }\n\n var thisGoroutine = $curGoroutine;\n var f = { $blk() { return this.value; } };\n var queueEntry = v => {\n f.value = v;\n $schedule(thisGoroutine);\n };\n chan.$recvQueue.push(queueEntry);\n $block();\n return f;\n};\nvar $close = chan => {\n if (chan.$closed) {\n $throwRuntimeError(\"close of closed channel\");\n }\n chan.$closed = true;\n while (true) {\n var queuedSend = chan.$sendQueue.shift();\n if (queuedSend === undefined) {\n break;\n }\n queuedSend(true); /* will panic */\n }\n while (true) {\n var queuedRecv = chan.$recvQueue.shift();\n if (queuedRecv === undefined) {\n break;\n }\n queuedRecv([chan.$elem.zero(), false]);\n }\n};\nvar $select = comms => {\n var ready = [];\n var selection = -1;\n for (var i = 0; i < comms.length; i++) {\n var comm = comms[i];\n var chan = comm[0];\n switch (comm.length) {\n case 0: /* default */\n selection = i;\n break;\n case 1: /* recv */\n if (chan.$sendQueue.length !== 0 || chan.$buffer.length !== 0 || chan.$closed) {\n ready.push(i);\n }\n break;\n case 2: /* send */\n if (chan.$closed) {\n $throwRuntimeError(\"send on closed channel\");\n }\n if (chan.$recvQueue.length !== 0 || chan.$buffer.length < chan.$capacity) {\n ready.push(i);\n }\n break;\n }\n }\n\n if (ready.length !== 0) {\n selection = ready[Math.floor(Math.random() * ready.length)];\n }\n if (selection !== -1) {\n var comm = comms[selection];\n switch (comm.length) {\n case 0: /* default */\n return [selection];\n case 1: /* recv */\n return [selection, $recv(comm[0])];\n case 2: /* send */\n $send(comm[0], comm[1]);\n return [selection];\n }\n }\n\n var entries = [];\n var thisGoroutine = $curGoroutine;\n var f = { $blk() { return this.selection; } };\n var removeFromQueues = () => {\n for (var i = 0; i < entries.length; i++) {\n var entry = entries[i];\n var queue = entry[0];\n var index = queue.indexOf(entry[1]);\n if (index !== -1) {\n queue.splice(index, 1);\n }\n }\n };\n for (var i = 0; i < comms.length; i++) {\n (i => {\n var comm = comms[i];\n switch (comm.length) {\n case 1: /* recv */\n var queueEntry = value => {\n f.selection = [i, value];\n removeFromQueues();\n $schedule(thisGoroutine);\n };\n entries.push([comm[0].$recvQueue, queueEntry]);\n comm[0].$recvQueue.push(queueEntry);\n break;\n case 2: /* send */\n var queueEntry = () => {\n if (comm[0].$closed) {\n $throwRuntimeError(\"send on closed channel\");\n }\n f.selection = [i];\n removeFromQueues();\n $schedule(thisGoroutine);\n return comm[1];\n };\n entries.push([comm[0].$sendQueue, queueEntry]);\n comm[0].$sendQueue.push(queueEntry);\n break;\n }\n })(i);\n }\n $block();\n return f;\n};\n"; /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; @@ -126531,7 +127876,7 @@ $packages["github.com/neelance/astrewrite"] = (function() { _i++; $s = 1; continue; case 2: - newFile = new ast.File.ptr(file.Doc, file.Package, file.Name, decls, 0, 0, file.Scope, file.Imports, file.Unresolved, file.Comments); + newFile = new ast.File.ptr(file.Doc, file.Package, file.Name, decls, 0, 0, file.Scope, file.Imports, file.Unresolved, file.Comments, ""); _key = newFile; (c.info.Scopes || $throwRuntimeError("assignment to entry in nil map")).set(ast.Node.keyFor(_key), { k: _key, v: (_entry = $mapIndex(c.info.Scopes,ast.Node.keyFor(file)), _entry !== undefined ? _entry.v : ptrType$11.nil) }); $s = -1; return newFile; /* */ } return; } var $f = {$blk: Simplify$1, $c: true, $r, _entry, _i, _key, _r, _r$1, _ref, _ref$1, c, decl, decl$1, decl$2, decls, file, i, info, newFile, simplifyCalls, $s};return $f; @@ -126694,7 +128039,7 @@ $packages["github.com/neelance/astrewrite"] = (function() { /* if (!($interfaceIsEqual(s$6.Init, $ifaceNil))) { */ case 29: block = new ast.BlockStmt.ptr(0, sliceType$1.nil, 0); stmts.$set($append(stmts.$get(), block)); - stmts = (block.$ptr_List || (block.$ptr_List = new ptrType$3(function() { return this.$target.List; }, function($v) { this.$target.List = $v; }, block))); + stmts = (block === ptrType$8.nil && $throwNilPointerError(), (block.$ptr_List || (block.$ptr_List = new ptrType$3(function() { return this.$target.List; }, function($v) { this.$target.List = $v; }, block)))); $r = c.simplifyStmt(stmts, s$6.Init); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 30: _r$5 = c.simplifyExpr(stmts, s$6.Cond); /* */ $s = 32; case 32: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } @@ -126716,7 +128061,7 @@ $packages["github.com/neelance/astrewrite"] = (function() { /* if (!($interfaceIsEqual(s$8.Init, $ifaceNil))) { */ case 37: block$1 = new ast.BlockStmt.ptr(0, sliceType$1.nil, 0); stmts.$set($append(stmts.$get(), block$1)); - stmts = (block$1.$ptr_List || (block$1.$ptr_List = new ptrType$3(function() { return this.$target.List; }, function($v) { this.$target.List = $v; }, block$1))); + stmts = (block$1 === ptrType$8.nil && $throwNilPointerError(), (block$1.$ptr_List || (block$1.$ptr_List = new ptrType$3(function() { return this.$target.List; }, function($v) { this.$target.List = $v; }, block$1)))); $r = c.simplifyStmt(stmts, s$8.Init); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 38: assign = $ifaceNil; @@ -126958,7 +128303,7 @@ $packages["github.com/neelance/astrewrite"] = (function() { _key = newS; (c.info.Scopes || $throwRuntimeError("assignment to entry in nil map")).set(ast.Node.keyFor(_key), { k: _key, v: (_entry = $mapIndex(c.info.Scopes,ast.Node.keyFor(s)), _entry !== undefined ? _entry.v : ptrType$11.nil) }); _key$1 = wrapClause; (c.info.Scopes || $throwRuntimeError("assignment to entry in nil map")).set(ast.Node.keyFor(_key$1), { k: _key$1, v: (_entry$1 = $mapIndex(c.info.Scopes,ast.Node.keyFor(s)), _entry$1 !== undefined ? _entry$1.v : ptrType$11.nil) }); stmts.$set($append(stmts.$get(), newS)); - stmts = (wrapClause.$ptr_Body || (wrapClause.$ptr_Body = new ptrType$3(function() { return this.$target.Body; }, function($v) { this.$target.Body = $v; }, wrapClause))); + stmts = (wrapClause === ptrType$29.nil && $throwNilPointerError(), (wrapClause.$ptr_Body || (wrapClause.$ptr_Body = new ptrType$3(function() { return this.$target.Body; }, function($v) { this.$target.Body = $v; }, wrapClause)))); $r = c.simplifyStmt(stmts, s.Init); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _tuple = c.simplifyCaseClauses(s.Body.List); nonDefaultClauses = _tuple[0]; @@ -127462,7 +128807,7 @@ $packages["github.com/neelance/astrewrite"] = (function() { return $pkg; })(); $packages["github.com/gopherjs/gopherjs/compiler/sources"] = (function() { - var $pkg = {}, $init, gob, errlist, incjs, analysis, typeparams, linkname, astrewrite, ast, token, types, sort, strings, sync, Sources, Importer, packageImporter, ptrType, ptrType$1, ptrType$2, sliceType, ptrType$3, ptrType$4, ptrType$5, sliceType$1, ptrType$6, sliceType$2, ptrType$7, sliceType$3, ptrType$8, ptrType$9, ptrType$10, sliceType$4, ptrType$11, ptrType$12, sliceType$5, structType, sliceType$6, ptrType$13, sliceType$7, ptrType$14, ptrType$15, ptrType$16, sliceType$8, ptrType$17, ptrType$18, sliceType$9, sliceType$10, ptrType$19, ptrType$20, ptrType$21, funcType, ptrType$22, ptrType$23, prepareGob, SortedSourcesSlice, prepareFile, unpackFile; + var $pkg = {}, $init, gob, errlist, incjs, analysis, typeparams, linkname, astrewrite, ast, token, types, sort, strings, sync, Sources, Importer, packageImporter, ptrType, ptrType$1, ptrType$2, sliceType, ptrType$3, ptrType$4, ptrType$5, sliceType$1, ptrType$6, sliceType$2, ptrType$7, sliceType$3, ptrType$8, ptrType$9, ptrType$10, sliceType$4, ptrType$11, ptrType$12, sliceType$5, structType, sliceType$6, ptrType$13, sliceType$7, ptrType$14, ptrType$15, ptrType$16, ptrType$17, sliceType$8, ptrType$18, ptrType$19, sliceType$9, sliceType$10, ptrType$20, ptrType$21, ptrType$22, funcType, ptrType$23, prepareGob, SortedSourcesSlice, prepareFile, unpackFile; gob = $packages["encoding/gob"]; errlist = $packages["github.com/gopherjs/gopherjs/compiler/errlist"]; incjs = $packages["github.com/gopherjs/gopherjs/compiler/incjs"]; @@ -127545,18 +128890,18 @@ $packages["github.com/gopherjs/gopherjs/compiler/sources"] = (function() { ptrType$13 = $ptrType(ast.File); sliceType$7 = $sliceType(ptrType$13); ptrType$14 = $ptrType(token.FileSet); - ptrType$15 = $ptrType($String); - ptrType$16 = $ptrType(sliceType$7); + ptrType$15 = $ptrType(Sources); + ptrType$16 = $ptrType($String); + ptrType$17 = $ptrType(sliceType$7); sliceType$8 = $sliceType(incjs.File); - ptrType$17 = $ptrType(sliceType$8); - ptrType$18 = $ptrType(ast.ImportSpec); - sliceType$9 = $sliceType(ptrType$18); + ptrType$18 = $ptrType(sliceType$8); + ptrType$19 = $ptrType(ast.ImportSpec); + sliceType$9 = $sliceType(ptrType$19); sliceType$10 = $sliceType(ptrType$6); - ptrType$19 = $ptrType(ast.Scope); - ptrType$20 = $ptrType(typeparams.Collector); - ptrType$21 = $ptrType(typeparams.PackageInstanceSets); + ptrType$20 = $ptrType(ast.Scope); + ptrType$21 = $ptrType(typeparams.Collector); + ptrType$22 = $ptrType(typeparams.PackageInstanceSets); funcType = $funcType([$emptyInterface], [$error], false); - ptrType$22 = $ptrType(Sources); ptrType$23 = $ptrType(packageImporter); $ptrType(Sources).prototype.Sort = function Sort() { var {s, $s, $r, $c} = $restore(this, {}); @@ -127614,14 +128959,14 @@ $packages["github.com/gopherjs/gopherjs/compiler/sources"] = (function() { typesInfo = new types.Info.ptr(new $global.Map(), new $global.Map(), new $global.Map(), new $global.Map(), new $global.Map(), new $global.Map(), new $global.Map(), sliceType$4.nil); typeErrs[0] = errlist.ErrorList.nil; pkgImporter = new packageImporter.ptr(s.Dir, importer, sizes, tContext, errlist.ErrorList.nil); - config = new types.Config.ptr(tContext, "", false, false, false, (function(typeErrs) { return function Sources·TypeCheck·func1(err) { + config = new types.Config.ptr(tContext, "", false, false, false, false, (function(typeErrs) { return function Sources·TypeCheck·func1(err) { var {_r, err, $s, $r, $c} = $restore(this, {err}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: _r = typeErrs[0].AppendDistinct(err); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } typeErrs[0] = _r; $s = -1; return; /* */ } return; } var $f = {$blk: Sources·TypeCheck·func1, $c: true, $r, _r, err, $s};return $f; - }; })(typeErrs), pkgImporter, sizes, false, false); + }; })(typeErrs), pkgImporter, sizes, false, ""); _r = config.Check(s.ImportPath, s.FileSet, s.Files, typesInfo); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; typesPkg = _tuple[0]; @@ -127837,17 +129182,17 @@ $packages["github.com/gopherjs/gopherjs/compiler/sources"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: s = this; $r = prepareGob(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r = decode((s.$ptr_ImportPath || (s.$ptr_ImportPath = new ptrType$15(function() { return this.$target.ImportPath; }, function($v) { this.$target.ImportPath = $v; }, s)))); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = decode((s === ptrType$15.nil && $throwNilPointerError(), (s.$ptr_ImportPath || (s.$ptr_ImportPath = new ptrType$16(function() { return this.$target.ImportPath; }, function($v) { this.$target.ImportPath = $v; }, s))))); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return err; } - _r$1 = decode((s.$ptr_Dir || (s.$ptr_Dir = new ptrType$15(function() { return this.$target.Dir; }, function($v) { this.$target.Dir = $v; }, s)))); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1 = decode((s === ptrType$15.nil && $throwNilPointerError(), (s.$ptr_Dir || (s.$ptr_Dir = new ptrType$16(function() { return this.$target.Dir; }, function($v) { this.$target.Dir = $v; }, s))))); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } err$1 = _r$1; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return err$1; } - _r$2 = decode((s.$ptr_Files || (s.$ptr_Files = new ptrType$16(function() { return this.$target.Files; }, function($v) { this.$target.Files = $v; }, s)))); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2 = decode((s === ptrType$15.nil && $throwNilPointerError(), (s.$ptr_Files || (s.$ptr_Files = new ptrType$17(function() { return this.$target.Files; }, function($v) { this.$target.Files = $v; }, s))))); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } err$2 = _r$2; if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = -1; return err$2; @@ -127869,7 +129214,7 @@ $packages["github.com/gopherjs/gopherjs/compiler/sources"] = (function() { if (!($interfaceIsEqual(err$3, $ifaceNil))) { $s = -1; return err$3; } - _r$4 = decode((s.$ptr_JSFiles || (s.$ptr_JSFiles = new ptrType$17(function() { return this.$target.JSFiles; }, function($v) { this.$target.JSFiles = $v; }, s)))); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4 = decode((s === ptrType$15.nil && $throwNilPointerError(), (s.$ptr_JSFiles || (s.$ptr_JSFiles = new ptrType$18(function() { return this.$target.JSFiles; }, function($v) { this.$target.JSFiles = $v; }, s))))); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } $24r = _r$4; $s = 10; case 10: return $24r; /* */ } return; } var $f = {$blk: Read, $c: true, $r, $24r, _i, _r, _r$1, _r$2, _r$3, _r$4, _ref, decode, err, err$1, err$2, err$3, f, s, $s};return $f; @@ -127878,11 +129223,11 @@ $packages["github.com/gopherjs/gopherjs/compiler/sources"] = (function() { var {copy, file, $s, $r, $c} = $restore(this, {file}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: copy = [copy]; - copy[0] = $clone(file, ast.File); + copy[0] = $clone((file === ptrType$13.nil && $throwNilPointerError(), file), ast.File); file = copy[0]; file.Imports = sliceType$9.nil; file.Comments = sliceType$10.nil; - file.Scope = ptrType$19.nil; + file.Scope = ptrType$20.nil; file.Unresolved = sliceType$3.nil; $r = ast.Inspect(file, (function(copy) { return function prepareFile·func1(n) { var _tuple, id, n, ok; @@ -127906,7 +129251,7 @@ $packages["github.com/gopherjs/gopherjs/compiler/sources"] = (function() { comments[0] = sliceType$10.nil; $r = ast.Inspect(file, (function(comments, imports) { return function unpackFile·func1(n) { var _tuple, _tuple$1, cg, im, n, ok, ok$1; - _tuple = $assertType(n, ptrType$18, true); + _tuple = $assertType(n, ptrType$19, true); im = _tuple[0]; ok = _tuple[1]; if (ok) { @@ -127925,10 +129270,10 @@ $packages["github.com/gopherjs/gopherjs/compiler/sources"] = (function() { $s = -1; return; /* */ } return; } var $f = {$blk: unpackFile$1, $c: true, $r, comments, file, imports, $s};return $f; }; - ptrType$22.methods = [{prop: "Sort", name: "Sort", pkg: "", typ: $funcType([], [], false)}, {prop: "getFileName", name: "getFileName", pkg: "github.com/gopherjs/gopherjs/compiler/sources", typ: $funcType([ptrType$13], [$String], false)}, {prop: "Simplify", name: "Simplify", pkg: "", typ: $funcType([], [], false)}, {prop: "TypeCheck", name: "TypeCheck", pkg: "", typ: $funcType([Importer, types.Sizes, ptrType$11], [$error], false)}, {prop: "CollectInstances", name: "CollectInstances", pkg: "", typ: $funcType([ptrType$20], [], false)}, {prop: "Analyze", name: "Analyze", pkg: "", typ: $funcType([Importer, ptrType$11, ptrType$21], [], false)}, {prop: "ParseGoLinknames", name: "ParseGoLinknames", pkg: "", typ: $funcType([], [$error], false)}, {prop: "UnresolvedImports", name: "UnresolvedImports", pkg: "", typ: $funcType([sliceType$6], [sliceType$6], true)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([funcType], [$error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([funcType], [$error], false)}]; + ptrType$15.methods = [{prop: "Sort", name: "Sort", pkg: "", typ: $funcType([], [], false)}, {prop: "getFileName", name: "getFileName", pkg: "github.com/gopherjs/gopherjs/compiler/sources", typ: $funcType([ptrType$13], [$String], false)}, {prop: "Simplify", name: "Simplify", pkg: "", typ: $funcType([], [], false)}, {prop: "TypeCheck", name: "TypeCheck", pkg: "", typ: $funcType([Importer, types.Sizes, ptrType$11], [$error], false)}, {prop: "CollectInstances", name: "CollectInstances", pkg: "", typ: $funcType([ptrType$21], [], false)}, {prop: "Analyze", name: "Analyze", pkg: "", typ: $funcType([Importer, ptrType$11, ptrType$22], [], false)}, {prop: "ParseGoLinknames", name: "ParseGoLinknames", pkg: "", typ: $funcType([], [$error], false)}, {prop: "UnresolvedImports", name: "UnresolvedImports", pkg: "", typ: $funcType([sliceType$6], [sliceType$6], true)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([funcType], [$error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([funcType], [$error], false)}]; ptrType$23.methods = [{prop: "Import", name: "Import", pkg: "", typ: $funcType([$String], [ptrType$8, $error], false)}]; Sources.init("github.com/gopherjs/gopherjs/compiler/sources", [{prop: "ImportPath", name: "ImportPath", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Dir", name: "Dir", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Files", name: "Files", embedded: false, exported: true, typ: sliceType$7, tag: ""}, {prop: "FileSet", name: "FileSet", embedded: false, exported: true, typ: ptrType$14, tag: ""}, {prop: "JSFiles", name: "JSFiles", embedded: false, exported: true, typ: sliceType$8, tag: ""}, {prop: "TypeInfo", name: "TypeInfo", embedded: false, exported: true, typ: ptrType$12, tag: ""}, {prop: "baseInfo", name: "baseInfo", embedded: false, exported: false, typ: ptrType$9, tag: ""}, {prop: "Package", name: "Package", embedded: false, exported: true, typ: ptrType$8, tag: ""}, {prop: "GoLinknames", name: "GoLinknames", embedded: false, exported: true, typ: sliceType$5, tag: ""}]); - Importer.init([$String, $String], [ptrType$22, $error], false); + Importer.init([$String, $String], [ptrType$15, $error], false); packageImporter.init("github.com/gopherjs/gopherjs/compiler/sources", [{prop: "srcDir", name: "srcDir", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "importer", name: "importer", embedded: false, exported: false, typ: Importer, tag: ""}, {prop: "sizes", name: "sizes", embedded: false, exported: false, typ: types.Sizes, tag: ""}, {prop: "tContext", name: "tContext", embedded: false, exported: false, typ: ptrType$11, tag: ""}, {prop: "Errors", name: "Errors", embedded: false, exported: true, typ: errlist.ErrorList, tag: ""}]); }; $init = function() { @@ -128020,7 +129365,7 @@ $packages["github.com/gopherjs/gopherjs/compiler/sources"] = (function() { return $pkg; })(); $packages["encoding/base64"] = (function() { - var $pkg = {}, $init, binary, io, strconv, Encoding, encoder, CorruptInputError, arrayType, arrayType$1, sliceType, ptrType, arrayType$2, arrayType$3, arrayType$4, ptrType$1, NewEncoding, NewEncoder, assemble32, assemble64; + var $pkg = {}, $init, binary, io, strconv, Encoding, CorruptInputError, arrayType, arrayType$1, sliceType, ptrType, arrayType$4, NewEncoding, assemble32, assemble64; binary = $packages["encoding/binary"]; io = $packages["io"]; strconv = $packages["strconv"]; @@ -128038,37 +129383,15 @@ $packages["encoding/base64"] = (function() { this.padChar = padChar_; this.strict = strict_; }); - encoder = $newType(0, $kindStruct, "base64.encoder", true, "encoding/base64", false, function(err_, enc_, w_, buf_, nbuf_, out_) { - this.$val = this; - if (arguments.length === 0) { - this.err = $ifaceNil; - this.enc = ptrType.nil; - this.w = $ifaceNil; - this.buf = arrayType$2.zero(); - this.nbuf = 0; - this.out = arrayType$3.zero(); - return; - } - this.err = err_; - this.enc = enc_; - this.w = w_; - this.buf = buf_; - this.nbuf = nbuf_; - this.out = out_; - }); CorruptInputError = $newType(8, $kindInt64, "base64.CorruptInputError", true, "encoding/base64", true, null); $pkg.Encoding = Encoding; - $pkg.encoder = encoder; $pkg.CorruptInputError = CorruptInputError; $pkg.$finishSetup = function() { arrayType = $arrayType($Uint8, 64); arrayType$1 = $arrayType($Uint8, 256); sliceType = $sliceType($Uint8); ptrType = $ptrType(Encoding); - arrayType$2 = $arrayType($Uint8, 3); - arrayType$3 = $arrayType($Uint8, 1024); arrayType$4 = $arrayType($Uint8, 4); - ptrType$1 = $ptrType(encoder); NewEncoding = function NewEncoding$1(encoder$1) { var e, encoder$1, i, i$1, x, x$1; if (!((encoder$1.length === 64))) { @@ -128172,97 +129495,6 @@ $packages["encoding/base64"] = (function() { enc.Encode(buf, src); return ($bytesToString(buf)); }; - $ptrType(encoder).prototype.Write = function Write(p) { - var {_q, _r, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, e, err, i, n, nn, p, x, x$1, $s, $r, $c} = $restore(this, {p}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - n = 0; - err = $ifaceNil; - e = this; - if (!($interfaceIsEqual(e.err, $ifaceNil))) { - _tmp = 0; - _tmp$1 = e.err; - n = _tmp; - err = _tmp$1; - $s = -1; return [n, err]; - } - /* */ if (e.nbuf > 0) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (e.nbuf > 0) { */ case 1: - i = 0; - i = 0; - while (true) { - if (!(i < p.$length && e.nbuf < 3)) { break; } - (x = e.buf, x$1 = e.nbuf, ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1] = ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]))); - e.nbuf = e.nbuf + (1) >> 0; - i = i + (1) >> 0; - } - n = n + (i) >> 0; - p = $subslice(p, i); - if (e.nbuf < 3) { - $s = -1; return [n, err]; - } - e.enc.Encode(new sliceType(e.out), new sliceType(e.buf)); - _r = e.w.Write($subslice(new sliceType(e.out), 0, 4)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - e.err = _tuple[1]; - if (!($interfaceIsEqual(e.err, $ifaceNil))) { - _tmp$2 = n; - _tmp$3 = e.err; - n = _tmp$2; - err = _tmp$3; - $s = -1; return [n, err]; - } - e.nbuf = 0; - /* } */ case 2: - /* while (true) { */ case 4: - /* if (!(p.$length >= 3)) { break; } */ if(!(p.$length >= 3)) { $s = 5; continue; } - nn = 768; - if (nn > p.$length) { - nn = p.$length; - nn = nn - ((_r$1 = nn % 3, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero"))) >> 0; - } - e.enc.Encode(new sliceType(e.out), $subslice(p, 0, nn)); - _r$2 = e.w.Write($subslice(new sliceType(e.out), 0, ($imul((_q = nn / 3, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), 4)))); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple$1 = _r$2; - e.err = _tuple$1[1]; - if (!($interfaceIsEqual(e.err, $ifaceNil))) { - _tmp$4 = n; - _tmp$5 = e.err; - n = _tmp$4; - err = _tmp$5; - $s = -1; return [n, err]; - } - n = n + (nn) >> 0; - p = $subslice(p, nn); - $s = 4; continue; - case 5: - $copySlice(new sliceType(e.buf), p); - e.nbuf = p.$length; - n = n + (p.$length) >> 0; - $s = -1; return [n, err]; - /* */ } return; } var $f = {$blk: Write, $c: true, $r, _q, _r, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, e, err, i, n, nn, p, x, x$1, $s};return $f; - }; - $ptrType(encoder).prototype.Close = function Close() { - var {_r, _tuple, e, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - e = this; - /* */ if ($interfaceIsEqual(e.err, $ifaceNil) && e.nbuf > 0) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if ($interfaceIsEqual(e.err, $ifaceNil) && e.nbuf > 0) { */ case 1: - e.enc.Encode(new sliceType(e.out), $subslice(new sliceType(e.buf), 0, e.nbuf)); - _r = e.w.Write($subslice(new sliceType(e.out), 0, e.enc.EncodedLen(e.nbuf))); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - e.err = _tuple[1]; - e.nbuf = 0; - /* } */ case 2: - $s = -1; return e.err; - /* */ } return; } var $f = {$blk: Close, $c: true, $r, _r, _tuple, e, $s};return $f; - }; - NewEncoder = function NewEncoder$1(enc, w) { - var enc, w; - return new encoder.ptr($ifaceNil, enc, w, arrayType$2.zero(), 0, arrayType$3.zero()); - }; - $pkg.NewEncoder = NewEncoder; $ptrType(Encoding).prototype.EncodedLen = function EncodedLen(n) { var _q, _q$1, enc, n; enc = this; @@ -128591,10 +129823,8 @@ $packages["encoding/base64"] = (function() { }; Encoding.methods = [{prop: "WithPadding", name: "WithPadding", pkg: "", typ: $funcType([$Int32], [ptrType], false)}, {prop: "Strict", name: "Strict", pkg: "", typ: $funcType([], [ptrType], false)}]; ptrType.methods = [{prop: "Encode", name: "Encode", pkg: "", typ: $funcType([sliceType, sliceType], [], false)}, {prop: "EncodeToString", name: "EncodeToString", pkg: "", typ: $funcType([sliceType], [$String], false)}, {prop: "EncodedLen", name: "EncodedLen", pkg: "", typ: $funcType([$Int], [$Int], false)}, {prop: "decodeQuantum", name: "decodeQuantum", pkg: "encoding/base64", typ: $funcType([sliceType, sliceType, $Int], [$Int, $Int, $error], false)}, {prop: "DecodeString", name: "DecodeString", pkg: "", typ: $funcType([$String], [sliceType, $error], false)}, {prop: "Decode", name: "Decode", pkg: "", typ: $funcType([sliceType, sliceType], [$Int, $error], false)}, {prop: "DecodedLen", name: "DecodedLen", pkg: "", typ: $funcType([$Int], [$Int], false)}]; - ptrType$1.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}]; CorruptInputError.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; Encoding.init("encoding/base64", [{prop: "encode", name: "encode", embedded: false, exported: false, typ: arrayType, tag: ""}, {prop: "decodeMap", name: "decodeMap", embedded: false, exported: false, typ: arrayType$1, tag: ""}, {prop: "padChar", name: "padChar", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "strict", name: "strict", embedded: false, exported: false, typ: $Bool, tag: ""}]); - encoder.init("encoding/base64", [{prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "enc", name: "enc", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "w", name: "w", embedded: false, exported: false, typ: io.Writer, tag: ""}, {prop: "buf", name: "buf", embedded: false, exported: false, typ: arrayType$2, tag: ""}, {prop: "nbuf", name: "nbuf", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "out", name: "out", embedded: false, exported: false, typ: arrayType$3, tag: ""}]); }; $init = function() { $pkg.$init = function() {}; @@ -128872,8 +130102,8 @@ $packages["archive/zip"] = (function() { $r = utf8.$init(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } flateWriterPool = new sync.Pool.ptr(sliceType.nil, $throwNilPointerError); flateReaderPool = new sync.Pool.ptr(sliceType.nil, $throwNilPointerError); - compressors = new sync.Map.ptr(new sync.Mutex.ptr(0, 0), new $packages["sync/atomic"].Pointer[20 /* sync.readOnly */].ptr(ptrType.nil), false, 0); - decompressors = new sync.Map.ptr(new sync.Mutex.ptr(0, 0), new $packages["sync/atomic"].Pointer[20 /* sync.readOnly */].ptr(ptrType.nil), false, 0); + compressors = new sync.Map.ptr(new sync.Mutex.ptr(0, 0), new $packages["sync/atomic"].Pointer[30 /* sync.readOnly */].ptr(ptrType.nil), false, 0); + decompressors = new sync.Map.ptr(new sync.Mutex.ptr(0, 0), new $packages["sync/atomic"].Pointer[30 /* sync.readOnly */].ptr(ptrType.nil), false, 0); errLongName = errors.New("zip: FileHeader.Name too long"); errLongExtra = errors.New("zip: FileHeader.Extra too long"); zipinsecurepath = godebug.New("zipinsecurepath"); @@ -129554,7 +130784,7 @@ $packages["github.com/evanw/esbuild/internal/fs"] = (function() { return $pkg; })(); $packages["github.com/evanw/esbuild/internal/logger"] = (function() { - var $pkg = {}, $init, binary, fmt, os, runtime, sort, strings, sync, time, utf8, Log, LogLevel, MsgKind, Msg, MsgData, MsgLocation, Loc, Range, Span, SortableMsgs, Path, ImportAttributes, ImportAttribute, PathFlags, Source, TerminalInfo, Colors, UseColor, OutputOptions, MsgDetail, LineColumnTracker, StringInJSTableEntry, structType, ptrType, sliceType, sliceType$1, sliceType$2, ptrType$1, arrayType, sliceType$3, sliceType$4, sliceType$5, ptrType$3, ptrType$4, sliceType$6, funcType, funcType$1, funcType$2, mapType, ptrType$5, mapType$1, windowsCommandPrompt, StringToMsgIDs, MsgIDToString, GetTerminalInfo, writeStringWithColor, isProbablyWindowsCommandPrompt, EncodeImportAttributes, PlatformIndependentPathDirBaseExt, plural, errorAndWarningSummary, NewStderrLog, NewDeferLog, marginWithLineText, emptyMarginText, msgString, linkifyText, wrapWordsInString, MakeLineColumnTracker, detailStruct, estimateWidthInTerminal, renderTabStops, allowOverride, GenerateStringInJSTable, RemapStringInJSLoc, NewStringInJSLog; + var $pkg = {}, $init, binary, fmt, os, runtime, sort, strings, sync, time, utf8, Log, LogLevel, MsgKind, Msg, MsgData, MsgLocation, Loc, Range, Span, SortableMsgs, Path, ImportAttributes, ImportAttribute, PathFlags, Source, TerminalInfo, Colors, UseColor, OutputOptions, MsgDetail, LineColumnTracker, StringInJSTableEntry, structType, ptrType, ptrType$1, sliceType, sliceType$1, sliceType$2, ptrType$2, arrayType, sliceType$3, sliceType$4, sliceType$5, ptrType$4, ptrType$5, sliceType$6, funcType, funcType$1, funcType$2, mapType, mapType$1, windowsCommandPrompt, StringToMsgIDs, MsgIDToString, GetTerminalInfo, writeStringWithColor, isProbablyWindowsCommandPrompt, EncodeImportAttributes, PlatformIndependentPathDirBaseExt, plural, errorAndWarningSummary, NewStderrLog, NewDeferLog, marginWithLineText, emptyMarginText, msgString, linkifyText, wrapWordsInString, MakeLineColumnTracker, detailStruct, estimateWidthInTerminal, renderTabStops, allowOverride, GenerateStringInJSTable, RemapStringInJSLoc, NewStringInJSLog; binary = $packages["encoding/binary"]; fmt = $packages["fmt"]; os = $packages["os"]; @@ -129589,7 +130819,7 @@ $packages["github.com/evanw/esbuild/internal/logger"] = (function() { if (arguments.length === 0) { this.Notes = sliceType$5.nil; this.PluginName = ""; - this.Data = new MsgData.ptr($ifaceNil, ptrType.nil, "", false); + this.Data = new MsgData.ptr($ifaceNil, ptrType$1.nil, "", false); this.Kind = 0; this.ID = 0; return; @@ -129604,7 +130834,7 @@ $packages["github.com/evanw/esbuild/internal/logger"] = (function() { this.$val = this; if (arguments.length === 0) { this.UserDetail = $ifaceNil; - this.Location = ptrType.nil; + this.Location = ptrType$1.nil; this.Text = ""; this.DisableMaximumWidth = false; return; @@ -129883,23 +131113,23 @@ $packages["github.com/evanw/esbuild/internal/logger"] = (function() { $pkg.StringInJSTableEntry = StringInJSTableEntry; $pkg.$finishSetup = function() { structType = $structType("github.com/evanw/esbuild/internal/logger", [{prop: "mutex", name: "mutex", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "once", name: "once", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "isProbablyCMD", name: "isProbablyCMD", embedded: false, exported: false, typ: $Bool, tag: ""}]); - ptrType = $ptrType(MsgLocation); + ptrType = $ptrType(Range); + ptrType$1 = $ptrType(MsgLocation); sliceType = $sliceType(ImportAttribute); sliceType$1 = $sliceType($Uint8); sliceType$2 = $sliceType($String); - ptrType$1 = $ptrType(strings.Builder); + ptrType$2 = $ptrType(strings.Builder); arrayType = $arrayType($Uint8, 4); sliceType$3 = $sliceType($emptyInterface); sliceType$4 = $sliceType(Msg); sliceType$5 = $sliceType(MsgData); - ptrType$3 = $ptrType(Source); - ptrType$4 = $ptrType(LineColumnTracker); + ptrType$4 = $ptrType(Source); + ptrType$5 = $ptrType(LineColumnTracker); sliceType$6 = $sliceType(StringInJSTableEntry); funcType = $funcType([Msg], [], false); funcType$1 = $funcType([], [$Bool], false); funcType$2 = $funcType([], [sliceType$4], false); mapType = $mapType($Uint8, LogLevel); - ptrType$5 = $ptrType(Range); mapType$1 = $mapType($String, $String); StringToMsgIDs = function StringToMsgIDs$1(str, logLevel, overrides) { var _1, _key, _key$1, _key$10, _key$11, _key$12, _key$13, _key$14, _key$15, _key$16, _key$17, _key$18, _key$19, _key$2, _key$20, _key$21, _key$22, _key$23, _key$24, _key$25, _key$26, _key$27, _key$28, _key$29, _key$3, _key$30, _key$31, _key$32, _key$33, _key$34, _key$35, _key$36, _key$37, _key$38, _key$39, _key$4, _key$40, _key$41, _key$42, _key$43, _key$44, _key$45, _key$46, _key$47, _key$48, _key$49, _key$5, _key$50, _key$51, _key$52, _key$53, _key$54, _key$6, _key$7, _key$8, _key$9, i, i$1, logLevel, overrides, str; @@ -130261,7 +131491,7 @@ $packages["github.com/evanw/esbuild/internal/logger"] = (function() { var a, b, end, n; a = this; if (a.Len === 0) { - Range.copy(a, b); + Range.copy((a === ptrType.nil && $throwNilPointerError(), a), b); } else { end = $clone(a, Range).End(); n = $clone(b, Range).End(); @@ -130296,8 +131526,8 @@ $packages["github.com/evanw/esbuild/internal/logger"] = (function() { aj = $clone(((j < 0 || j >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + j]), Msg); aiLoc = ai.Data.Location; ajLoc = aj.Data.Location; - if (aiLoc === ptrType.nil || ajLoc === ptrType.nil) { - return aiLoc === ptrType.nil && !(ajLoc === ptrType.nil); + if (aiLoc === ptrType$1.nil || ajLoc === ptrType$1.nil) { + return aiLoc === ptrType$1.nil && !(ajLoc === ptrType$1.nil); } if (!(aiLoc.File === ajLoc.File)) { return aiLoc.File < ajLoc.File; @@ -130380,7 +131610,7 @@ $packages["github.com/evanw/esbuild/internal/logger"] = (function() { _i++; } $r = sort.Strings(keys); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - sb = new strings.Builder.ptr(ptrType$1.nil, sliceType$1.nil); + sb = new strings.Builder.ptr(ptrType$2.nil, sliceType$1.nil); n = arrayType.zero(); _ref$1 = keys; _i$1 = 0; @@ -130952,14 +132182,14 @@ $packages["github.com/evanw/esbuild/internal/logger"] = (function() { msg = this; _r = msgString(options.IncludeSource, $clone(terminalInfo, TerminalInfo), msg.ID, msg.Kind, $clone(msg.Data, MsgData), msg.PluginName); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } text = _r; - oldData = new MsgData.ptr($ifaceNil, ptrType.nil, "", false); + oldData = new MsgData.ptr($ifaceNil, ptrType$1.nil, "", false); _ref = msg.Notes; _i = 0; /* while (true) { */ case 2: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } i = _i; note = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), MsgData); - if (options.IncludeSource && ((i === 0) || strings.IndexByte(oldData.Text, 10) >= 0 || !(oldData.Location === ptrType.nil))) { + if (options.IncludeSource && ((i === 0) || strings.IndexByte(oldData.Text, 10) >= 0 || !(oldData.Location === ptrType$1.nil))) { text = text + ("\n"); } _r$1 = msgString(options.IncludeSource, $clone(terminalInfo, TerminalInfo), 0, 3, $clone(note, MsgData), ""); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } @@ -131008,9 +132238,9 @@ $packages["github.com/evanw/esbuild/internal/logger"] = (function() { /* */ $s = 2; continue; /* if (!includeSource) { */ case 1: loc = data.Location; - /* */ if (!(loc === ptrType.nil)) { $s = 3; continue; } + /* */ if (!(loc === ptrType$1.nil)) { $s = 3; continue; } /* */ $s = 4; continue; - /* if (!(loc === ptrType.nil)) { */ case 3: + /* if (!(loc === ptrType$1.nil)) { */ case 3: _r = fmt.Sprintf("%s: %s: %s\n", new sliceType$3([new $String(loc.File), new $String(new MsgKind(kind).String()), new $String(data.Text)])); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $24r = _r; $s = 6; case 6: return $24r; @@ -131027,9 +132257,9 @@ $packages["github.com/evanw/esbuild/internal/logger"] = (function() { kindColorBrackets = ""; kindColorText = ""; location = ""; - /* */ if (!(data.Location === ptrType.nil)) { $s = 9; continue; } + /* */ if (!(data.Location === ptrType$1.nil)) { $s = 9; continue; } /* */ $s = 10; continue; - /* if (!(data.Location === ptrType.nil)) { */ case 9: + /* if (!(data.Location === ptrType$1.nil)) { */ case 9: _r$2 = fmt.Sprintf("%d", new sliceType$3([new $Int(data.Location.Line)])); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } maxMargin = _r$2.length; _r$3 = detailStruct($clone(data, MsgData), $clone(terminalInfo, TerminalInfo), maxMargin); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } @@ -131105,7 +132335,7 @@ $packages["github.com/evanw/esbuild/internal/logger"] = (function() { kindColorBrackets = colors.YellowBgYellow; kindColorText = colors.YellowBgBlack; } else if (_1 === (3)) { - sb = new strings.Builder.ptr(ptrType$1.nil, sliceType$1.nil); + sb = new strings.Builder.ptr(ptrType$2.nil, sliceType$1.nil); _ref = strings.Split(data.Text, "\n"); _i = 0; while (true) { @@ -131178,7 +132408,7 @@ $packages["github.com/evanw/esbuild/internal/logger"] = (function() { if (https === -1) { return text; } - sb = new strings.Builder.ptr(ptrType$1.nil, sliceType$1.nil); + sb = new strings.Builder.ptr(ptrType$2.nil, sliceType$1.nil); while (true) { https$1 = strings.Index(text, "https://"); if (https$1 === -1) { @@ -131257,7 +132487,7 @@ $packages["github.com/evanw/esbuild/internal/logger"] = (function() { }; MakeLineColumnTracker = function MakeLineColumnTracker$1(source) { var source; - if (source === ptrType$3.nil) { + if (source === ptrType$4.nil) { return new LineColumnTracker.ptr("", "", 0, 0, 0, 0, false, false, false); } return new LineColumnTracker.ptr(source.Contents, source.PrettyPath, 0, 0, 0, 0, true, false, true); @@ -131380,8 +132610,8 @@ $packages["github.com/evanw/esbuild/internal/logger"] = (function() { $ptrType(LineColumnTracker).prototype.MsgLocationOrNil = function MsgLocationOrNil(r) { var _tuple, columnCount, lineCount, lineEnd, lineStart, r, tracker; tracker = this; - if (tracker === ptrType$4.nil || !tracker.hasSource) { - return ptrType.nil; + if (tracker === ptrType$5.nil || !tracker.hasSource) { + return ptrType$1.nil; } _tuple = tracker.computeLineAndColumn(((r.Loc.Start >> 0))); lineCount = _tuple[0]; @@ -131391,9 +132621,9 @@ $packages["github.com/evanw/esbuild/internal/logger"] = (function() { return new MsgLocation.ptr(tracker.prettyPath, "", $substring(tracker.contents, lineStart, lineEnd), "", lineCount + 1 >> 0, columnCount, ((r.Len >> 0))); }; detailStruct = function detailStruct$1(data, terminalInfo, maxMargin) { - var {_q, _q$1, _q$2, _r, afterFirstLine, data, endOfFirstLine, firstLine, i, indent, lineText, loc, margin, marker, markerEnd, markerStart, maxMargin, sliceEnd, sliceStart, slicedLine, spacesPerTab, terminalInfo, textUpToLoc, width, $s, $r, $c} = $restore(this, {data, terminalInfo, maxMargin}); + var {_q, _q$1, _q$2, _r, afterFirstLine, data, endOfFirstLine, firstLine, i, indent, lineText, loc, margin, marker, markerEnd, markerStart, maxMargin, sliceEnd, sliceStart, slicedLine, spacesPerTab, terminalInfo, textUpToLoc, width, x, $s, $r, $c} = $restore(this, {data, terminalInfo, maxMargin}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - loc = $clone(data.Location, MsgLocation); + loc = $clone((x = data.Location, (x === ptrType$1.nil && $throwNilPointerError(), x)), MsgLocation); endOfFirstLine = loc.LineText.length; i = strings.IndexByte(loc.LineText, 10); if (i >= 0) { @@ -131494,7 +132724,7 @@ $packages["github.com/evanw/esbuild/internal/logger"] = (function() { _r = marginWithLineText(maxMargin, loc.Line); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } margin = _r; $s = -1; return new MsgDetail.ptr(margin + $substring(lineText, 0, markerStart), $substring(lineText, markerStart, markerEnd), $substring(lineText, markerEnd), indent, marker, loc.Suggestion, afterFirstLine, loc.File, loc.Line, loc.Column); - /* */ } return; } var $f = {$blk: detailStruct$1, $c: true, $r, _q, _q$1, _q$2, _r, afterFirstLine, data, endOfFirstLine, firstLine, i, indent, lineText, loc, margin, marker, markerEnd, markerStart, maxMargin, sliceEnd, sliceStart, slicedLine, spacesPerTab, terminalInfo, textUpToLoc, width, $s};return $f; + /* */ } return; } var $f = {$blk: detailStruct$1, $c: true, $r, _q, _q$1, _q$2, _r, afterFirstLine, data, endOfFirstLine, firstLine, i, indent, lineText, loc, margin, marker, markerEnd, markerStart, maxMargin, sliceEnd, sliceStart, slicedLine, spacesPerTab, terminalInfo, textUpToLoc, width, x, $s};return $f; }; estimateWidthInTerminal = function estimateWidthInTerminal$1(text) { var _tuple, c, size, text, width; @@ -131516,7 +132746,7 @@ $packages["github.com/evanw/esbuild/internal/logger"] = (function() { if (!strings.ContainsRune(withTabs, 9)) { return withTabs; } - withoutTabs = new strings.Builder.ptr(ptrType$1.nil, sliceType$1.nil); + withoutTabs = new strings.Builder.ptr(ptrType$2.nil, sliceType$1.nil); count = 0; _ref = withTabs; _i = 0; @@ -131770,7 +133000,7 @@ $packages["github.com/evanw/esbuild/internal/logger"] = (function() { remapData = (function NewStringInJSLog·func2(data) { var {_r, _r$1, data, location, r, $s, $r, $c} = $restore(this, {data}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (data.Location === ptrType.nil) { + if (data.Location === ptrType$1.nil) { $s = -1; return data; } _r = remapLineAndColumnToLoc(((data.Location.Line >> 0)), ((data.Location.Column >> 0))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } @@ -131810,19 +133040,19 @@ $packages["github.com/evanw/esbuild/internal/logger"] = (function() { return log; }; $pkg.NewStringInJSLog = NewStringInJSLog; - Log.methods = [{prop: "AddError", name: "AddError", pkg: "", typ: $funcType([ptrType$4, Range, $String], [], false)}, {prop: "AddID", name: "AddID", pkg: "", typ: $funcType([$Uint8, MsgKind, ptrType$4, Range, $String], [], false)}, {prop: "AddErrorWithNotes", name: "AddErrorWithNotes", pkg: "", typ: $funcType([ptrType$4, Range, $String, sliceType$5], [], false)}, {prop: "AddIDWithNotes", name: "AddIDWithNotes", pkg: "", typ: $funcType([$Uint8, MsgKind, ptrType$4, Range, $String, sliceType$5], [], false)}, {prop: "AddMsgID", name: "AddMsgID", pkg: "", typ: $funcType([$Uint8, Msg], [], false)}]; + Log.methods = [{prop: "AddError", name: "AddError", pkg: "", typ: $funcType([ptrType$5, Range, $String], [], false)}, {prop: "AddID", name: "AddID", pkg: "", typ: $funcType([$Uint8, MsgKind, ptrType$5, Range, $String], [], false)}, {prop: "AddErrorWithNotes", name: "AddErrorWithNotes", pkg: "", typ: $funcType([ptrType$5, Range, $String, sliceType$5], [], false)}, {prop: "AddIDWithNotes", name: "AddIDWithNotes", pkg: "", typ: $funcType([$Uint8, MsgKind, ptrType$5, Range, $String, sliceType$5], [], false)}, {prop: "AddMsgID", name: "AddMsgID", pkg: "", typ: $funcType([$Uint8, Msg], [], false)}]; MsgKind.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Icon", name: "Icon", pkg: "", typ: $funcType([], [$String], false)}]; Msg.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([OutputOptions, TerminalInfo], [$String], false)}]; Range.methods = [{prop: "End", name: "End", pkg: "", typ: $funcType([], [$Int32], false)}]; - ptrType$5.methods = [{prop: "ExpandBy", name: "ExpandBy", pkg: "", typ: $funcType([Range], [], false)}]; + ptrType.methods = [{prop: "ExpandBy", name: "ExpandBy", pkg: "", typ: $funcType([Range], [], false)}]; SortableMsgs.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}]; Path.methods = [{prop: "IsDisabled", name: "IsDisabled", pkg: "", typ: $funcType([], [$Bool], false)}]; ImportAttributes.methods = [{prop: "DecodeIntoArray", name: "DecodeIntoArray", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "DecodeIntoMap", name: "DecodeIntoMap", pkg: "", typ: $funcType([], [mapType$1], false)}]; - ptrType$3.methods = [{prop: "TextForRange", name: "TextForRange", pkg: "", typ: $funcType([Range], [$String], false)}, {prop: "LocBeforeWhitespace", name: "LocBeforeWhitespace", pkg: "", typ: $funcType([Loc], [Loc], false)}, {prop: "RangeOfOperatorBefore", name: "RangeOfOperatorBefore", pkg: "", typ: $funcType([Loc, $String], [Range], false)}, {prop: "RangeOfOperatorAfter", name: "RangeOfOperatorAfter", pkg: "", typ: $funcType([Loc, $String], [Range], false)}, {prop: "RangeOfString", name: "RangeOfString", pkg: "", typ: $funcType([Loc], [Range], false)}, {prop: "RangeOfNumber", name: "RangeOfNumber", pkg: "", typ: $funcType([Loc], [Range], false)}, {prop: "RangeOfLegacyOctalEscape", name: "RangeOfLegacyOctalEscape", pkg: "", typ: $funcType([Loc], [Range], false)}, {prop: "CommentTextWithoutIndent", name: "CommentTextWithoutIndent", pkg: "", typ: $funcType([Range], [$String], false)}]; - ptrType$4.methods = [{prop: "MsgData", name: "MsgData", pkg: "", typ: $funcType([Range, $String], [MsgData], false)}, {prop: "scanTo", name: "scanTo", pkg: "github.com/evanw/esbuild/internal/logger", typ: $funcType([$Int32], [], false)}, {prop: "computeLineAndColumn", name: "computeLineAndColumn", pkg: "github.com/evanw/esbuild/internal/logger", typ: $funcType([$Int], [$Int, $Int, $Int, $Int], false)}, {prop: "MsgLocationOrNil", name: "MsgLocationOrNil", pkg: "", typ: $funcType([Range], [ptrType], false)}]; + ptrType$4.methods = [{prop: "TextForRange", name: "TextForRange", pkg: "", typ: $funcType([Range], [$String], false)}, {prop: "LocBeforeWhitespace", name: "LocBeforeWhitespace", pkg: "", typ: $funcType([Loc], [Loc], false)}, {prop: "RangeOfOperatorBefore", name: "RangeOfOperatorBefore", pkg: "", typ: $funcType([Loc, $String], [Range], false)}, {prop: "RangeOfOperatorAfter", name: "RangeOfOperatorAfter", pkg: "", typ: $funcType([Loc, $String], [Range], false)}, {prop: "RangeOfString", name: "RangeOfString", pkg: "", typ: $funcType([Loc], [Range], false)}, {prop: "RangeOfNumber", name: "RangeOfNumber", pkg: "", typ: $funcType([Loc], [Range], false)}, {prop: "RangeOfLegacyOctalEscape", name: "RangeOfLegacyOctalEscape", pkg: "", typ: $funcType([Loc], [Range], false)}, {prop: "CommentTextWithoutIndent", name: "CommentTextWithoutIndent", pkg: "", typ: $funcType([Range], [$String], false)}]; + ptrType$5.methods = [{prop: "MsgData", name: "MsgData", pkg: "", typ: $funcType([Range, $String], [MsgData], false)}, {prop: "scanTo", name: "scanTo", pkg: "github.com/evanw/esbuild/internal/logger", typ: $funcType([$Int32], [], false)}, {prop: "computeLineAndColumn", name: "computeLineAndColumn", pkg: "github.com/evanw/esbuild/internal/logger", typ: $funcType([$Int], [$Int, $Int, $Int, $Int], false)}, {prop: "MsgLocationOrNil", name: "MsgLocationOrNil", pkg: "", typ: $funcType([Range], [ptrType$1], false)}]; Log.init("", [{prop: "AddMsg", name: "AddMsg", embedded: false, exported: true, typ: funcType, tag: ""}, {prop: "HasErrors", name: "HasErrors", embedded: false, exported: true, typ: funcType$1, tag: ""}, {prop: "Peek", name: "Peek", embedded: false, exported: true, typ: funcType$2, tag: ""}, {prop: "Done", name: "Done", embedded: false, exported: true, typ: funcType$2, tag: ""}, {prop: "Level", name: "Level", embedded: false, exported: true, typ: LogLevel, tag: ""}, {prop: "Overrides", name: "Overrides", embedded: false, exported: true, typ: mapType, tag: ""}]); Msg.init("", [{prop: "Notes", name: "Notes", embedded: false, exported: true, typ: sliceType$5, tag: ""}, {prop: "PluginName", name: "PluginName", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Data", name: "Data", embedded: false, exported: true, typ: MsgData, tag: ""}, {prop: "Kind", name: "Kind", embedded: false, exported: true, typ: MsgKind, tag: ""}, {prop: "ID", name: "ID", embedded: false, exported: true, typ: $Uint8, tag: ""}]); - MsgData.init("", [{prop: "UserDetail", name: "UserDetail", embedded: false, exported: true, typ: $emptyInterface, tag: ""}, {prop: "Location", name: "Location", embedded: false, exported: true, typ: ptrType, tag: ""}, {prop: "Text", name: "Text", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "DisableMaximumWidth", name: "DisableMaximumWidth", embedded: false, exported: true, typ: $Bool, tag: ""}]); + MsgData.init("", [{prop: "UserDetail", name: "UserDetail", embedded: false, exported: true, typ: $emptyInterface, tag: ""}, {prop: "Location", name: "Location", embedded: false, exported: true, typ: ptrType$1, tag: ""}, {prop: "Text", name: "Text", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "DisableMaximumWidth", name: "DisableMaximumWidth", embedded: false, exported: true, typ: $Bool, tag: ""}]); MsgLocation.init("", [{prop: "File", name: "File", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Namespace", name: "Namespace", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "LineText", name: "LineText", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Suggestion", name: "Suggestion", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Line", name: "Line", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Column", name: "Column", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Length", name: "Length", embedded: false, exported: true, typ: $Int, tag: ""}]); Loc.init("", [{prop: "Start", name: "Start", embedded: false, exported: true, typ: $Int32, tag: ""}]); Range.init("", [{prop: "Loc", name: "Loc", embedded: false, exported: true, typ: Loc, tag: ""}, {prop: "Len", name: "Len", embedded: false, exported: true, typ: $Int32, tag: ""}]); @@ -132732,7 +133962,7 @@ $packages["net/url"] = (function() { if (u === ptrType$2.nil) { return ""; } - ru = $clone(u, URL); + ru = $clone((u === ptrType$2.nil && $throwNilPointerError(), u), URL); _tuple = ru.User.Password(); has = _tuple[1]; if (has) { @@ -132743,9 +133973,6 @@ $packages["net/url"] = (function() { Values.prototype.Get = function Get(key) { var _entry, key, v, vs; v = this.$val; - if (v === false) { - return ""; - } vs = (_entry = $mapIndex(v,$String.keyFor(key)), _entry !== undefined ? _entry.v : sliceType$2.nil); if (vs.$length === 0) { return ""; @@ -132968,7 +134195,7 @@ $packages["net/url"] = (function() { $ptrType(URL).prototype.ResolveReference = function ResolveReference(ref) { var ref, u, url; u = this; - url = $clone(ref, URL); + url = $clone((ref === ptrType$2.nil && $throwNilPointerError(), ref), URL); if (ref.Scheme === "") { url.Scheme = u.Scheme; } @@ -133076,7 +134303,7 @@ $packages["net/url"] = (function() { if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return err; } - URL.copy(u, u1); + URL.copy((u === ptrType$2.nil && $throwNilPointerError(), u), (u1 === ptrType$2.nil && $throwNilPointerError(), u1)); $s = -1; return $ifaceNil; /* */ } return; } var $f = {$blk: UnmarshalBinary, $c: true, $r, _r, _tuple, err, text, u, u1, $s};return $f; }; @@ -133094,7 +134321,7 @@ $packages["net/url"] = (function() { if (strings.HasSuffix((x = elem.$length - 1 >> 0, ((x < 0 || x >= elem.$length) ? ($throwRuntimeError("index out of range"), undefined) : elem.$array[elem.$offset + x])), "/") && !strings.HasSuffix(p, "/")) { p = p + ("/"); } - url = $clone(u, URL); + url = $clone((u === ptrType$2.nil && $throwNilPointerError(), u), URL); url.setPath(p); return url; }; @@ -133168,7 +134395,7 @@ $packages["net/url"] = (function() { return $pkg; })(); $packages["github.com/evanw/esbuild/internal/helpers"] = (function() { - var $pkg = {}, $init, bytes, base64, fmt, fs, logger, math, url, debug, strings, sync, atomic, time, utf8, TypoDetector, Timer, timerData, Serializer, Joiner, joinerString, joinerBytes, GlobWildcard, GlobPart, F64, BitSet, pair, sliceType, arrayType, ptrType$1, sliceType$1, ptrType$2, ptrType$3, sliceType$2, sliceType$3, sliceType$4, ptrType$4, sliceType$5, ptrType$5, sliceType$6, ptrType$6, sliceType$7, mapType, ptrType$8, sliceType$8, sliceType$9, ptrType$9, builtinTypesLower, ContainsNonBMPCodePoint, ContainsNonBMPCodePointUTF16, StringToUTF16, UTF16ToString, UTF16ToStringWithValidation, UTF16EqualsString, UTF16EqualsUTF16, encodeWTF8Rune, DecodeWTF8Rune, MakeTypoDetector, StringArraysEqual, StringArrayArraysEqual, StringArrayToQuotedCommaSeparatedString, PrettyPrintedStack, MakeSerializer, canPrintWithoutEscape, QuoteSingle, QuoteForJSON, internalQuote, IsInsideNodeModules, IsFileURL, FileURLFromFilePath, FilePathFromFileURL, MimeTypeByExtension, HashCombine, HashCombineString, ParseGlobPattern, GlobPatternToString, NewF64, Min2, Max2, Min3, Max3, Lerp, EncodeStringAsShortestDataURL, EncodeStringAsPercentEscapedDataURL, isHex, EscapeClosingTag, NewBitSet; + var $pkg = {}, $init, bytes, base64, fmt, fs, logger, math, url, debug, strings, sync, atomic, time, utf8, TypoDetector, Timer, timerData, Serializer, Joiner, joinerString, joinerBytes, GlobWildcard, GlobPart, F64, BitSet, pair, sliceType, arrayType, ptrType$2, sliceType$1, ptrType$3, ptrType$4, sliceType$2, sliceType$3, sliceType$4, ptrType$5, sliceType$5, ptrType$6, sliceType$6, ptrType$7, ptrType$8, sliceType$7, mapType, ptrType$9, sliceType$8, sliceType$9, ptrType$10, builtinTypesLower, ContainsNonBMPCodePoint, ContainsNonBMPCodePointUTF16, StringToUTF16, UTF16ToString, UTF16ToStringWithValidation, UTF16EqualsString, UTF16EqualsUTF16, encodeWTF8Rune, DecodeWTF8Rune, MakeTypoDetector, StringArraysEqual, StringArrayArraysEqual, StringArrayToQuotedCommaSeparatedString, PrettyPrintedStack, MakeSerializer, canPrintWithoutEscape, QuoteSingle, QuoteForJSON, internalQuote, IsInsideNodeModules, IsFileURL, FileURLFromFilePath, FilePathFromFileURL, MimeTypeByExtension, HashCombine, HashCombineString, ParseGlobPattern, GlobPatternToString, NewF64, Min2, Max2, Min3, Max3, Lerp, EncodeStringAsShortestDataURL, EncodeStringAsPercentEscapedDataURL, isHex, EscapeClosingTag, NewBitSet; bytes = $packages["bytes"]; base64 = $packages["encoding/base64"]; fmt = $packages["fmt"]; @@ -133203,7 +134430,7 @@ $packages["github.com/evanw/esbuild/internal/helpers"] = (function() { timerData = $newType(0, $kindStruct, "helpers.timerData", true, "github.com/evanw/esbuild/internal/helpers", false, function(time_, name_, isEnd_) { this.$val = this; if (arguments.length === 0) { - this.time = new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$3.nil); + this.time = new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$4.nil); this.name = ""; this.isEnd = false; return; @@ -133284,7 +134511,7 @@ $packages["github.com/evanw/esbuild/internal/helpers"] = (function() { pair = $newType(0, $kindStruct, "helpers.pair", true, "github.com/evanw/esbuild/internal/helpers", false, function(timerData_, index_) { this.$val = this; if (arguments.length === 0) { - this.timerData = new timerData.ptr(new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$3.nil), "", false); + this.timerData = new timerData.ptr(new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$4.nil), "", false); this.index = 0; return; } @@ -133306,24 +134533,25 @@ $packages["github.com/evanw/esbuild/internal/helpers"] = (function() { $pkg.$finishSetup = function() { sliceType = $sliceType($Uint16); arrayType = $arrayType($Uint8, 4); - ptrType$1 = $ptrType(strings.Builder); + ptrType$2 = $ptrType(strings.Builder); sliceType$1 = $sliceType($Uint8); - ptrType$2 = $ptrType(Timer); - ptrType$3 = $ptrType(time.Location); + ptrType$3 = $ptrType(Timer); + ptrType$4 = $ptrType(time.Location); sliceType$2 = $sliceType(timerData); sliceType$3 = $sliceType(logger.MsgData); sliceType$4 = $sliceType(pair); - ptrType$4 = $ptrType(logger.MsgLocation); + ptrType$5 = $ptrType(logger.MsgLocation); sliceType$5 = $sliceType($emptyInterface); - ptrType$5 = $ptrType(logger.LineColumnTracker); + ptrType$6 = $ptrType(logger.LineColumnTracker); sliceType$6 = $sliceType(sync.WaitGroup); - ptrType$6 = $ptrType(url.Userinfo); + ptrType$7 = $ptrType(sync.WaitGroup); + ptrType$8 = $ptrType(url.Userinfo); sliceType$7 = $sliceType(GlobPart); mapType = $mapType($String, $String); - ptrType$8 = $ptrType(Serializer); + ptrType$9 = $ptrType(Serializer); sliceType$8 = $sliceType(joinerString); sliceType$9 = $sliceType(joinerBytes); - ptrType$9 = $ptrType(Joiner); + ptrType$10 = $ptrType(Joiner); ContainsNonBMPCodePoint = function ContainsNonBMPCodePoint$1(text) { var _i, _ref, _rune, c, text; _ref = text; @@ -133385,7 +134613,7 @@ $packages["github.com/evanw/esbuild/internal/helpers"] = (function() { UTF16ToString = function UTF16ToString$1(text) { var b, i, n, r1, r2, temp, text, width, x; temp = arrayType.zero(); - b = new strings.Builder.ptr(ptrType$1.nil, sliceType$1.nil); + b = new strings.Builder.ptr(ptrType$2.nil, sliceType$1.nil); n = text.$length; i = 0; while (true) { @@ -133408,7 +134636,7 @@ $packages["github.com/evanw/esbuild/internal/helpers"] = (function() { UTF16ToStringWithValidation = function UTF16ToStringWithValidation$1(text) { var b, i, n, r1, r2, temp, text, width, x; temp = arrayType.zero(); - b = new strings.Builder.ptr(ptrType$1.nil, sliceType$1.nil); + b = new strings.Builder.ptr(ptrType$2.nil, sliceType$1.nil); n = text.$length; i = 0; while (true) { @@ -133637,9 +134865,9 @@ $packages["github.com/evanw/esbuild/internal/helpers"] = (function() { var {_r, name, t, $s, $r, $c} = $restore(this, {name}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: t = this; - /* */ if (!(t === ptrType$2.nil)) { $s = 1; continue; } + /* */ if (!(t === ptrType$3.nil)) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (!(t === ptrType$2.nil)) { */ case 1: + /* if (!(t === ptrType$3.nil)) { */ case 1: _r = time.Now(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } t.data = $append(t.data, new timerData.ptr($clone(_r, time.Time), name, false)); /* } */ case 2: @@ -133650,9 +134878,9 @@ $packages["github.com/evanw/esbuild/internal/helpers"] = (function() { var {_r, name, t, $s, $r, $c} = $restore(this, {name}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: t = this; - /* */ if (!(t === ptrType$2.nil)) { $s = 1; continue; } + /* */ if (!(t === ptrType$3.nil)) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (!(t === ptrType$2.nil)) { */ case 1: + /* if (!(t === ptrType$3.nil)) { */ case 1: _r = time.Now(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } t.data = $append(t.data, new timerData.ptr($clone(_r, time.Time), name, true)); /* } */ case 2: @@ -133662,18 +134890,18 @@ $packages["github.com/evanw/esbuild/internal/helpers"] = (function() { $ptrType(Timer).prototype.Fork = function Fork() { var t; t = this; - if (!(t === ptrType$2.nil)) { + if (!(t === ptrType$3.nil)) { return new Timer.ptr(sliceType$2.nil, new sync.Mutex.ptr(0, 0)); } - return ptrType$2.nil; + return ptrType$3.nil; }; $ptrType(Timer).prototype.Join = function Join(other) { var {other, t, $s, $deferred, $r, $c} = $restore(this, {other}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); t = this; - /* */ if (!(t === ptrType$2.nil) && !(other === ptrType$2.nil)) { $s = 1; continue; } + /* */ if (!(t === ptrType$3.nil) && !(other === ptrType$3.nil)) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (!(t === ptrType$2.nil) && !(other === ptrType$2.nil)) { */ case 1: + /* if (!(t === ptrType$3.nil) && !(other === ptrType$3.nil)) { */ case 1: $r = t.mutex.Lock(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $deferred.push([$methodVal(t.mutex, "Unlock"), []]); t.data = $appendSlice(t.data, other.data); @@ -133685,7 +134913,7 @@ $packages["github.com/evanw/esbuild/internal/helpers"] = (function() { var {_i, _r, _ref, indent, item, last, log, notes, stack, t, top, top$1, x, $s, $r, $c} = $restore(this, {log}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: t = this; - if (t === ptrType$2.nil) { + if (t === ptrType$3.nil) { $s = -1; return; } notes = sliceType$3.nil; @@ -133700,7 +134928,7 @@ $packages["github.com/evanw/esbuild/internal/helpers"] = (function() { /* */ $s = 4; continue; /* if (!item.isEnd) { */ case 3: top = new pair.ptr($clone(item, timerData), ((notes.$length >>> 0))); - notes = $append(notes, new logger.MsgData.ptr($ifaceNil, ptrType$4.nil, "", true)); + notes = $append(notes, new logger.MsgData.ptr($ifaceNil, ptrType$5.nil, "", true)); stack = $append(stack, top); indent = indent + (1) >> 0; $s = 5; continue; @@ -133718,7 +134946,7 @@ $packages["github.com/evanw/esbuild/internal/helpers"] = (function() { _i++; $s = 1; continue; case 2: - $r = $clone(log, logger.Log).AddIDWithNotes(0, 2, ptrType$5.nil, $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range), "Timing information (times may not nest hierarchically due to parallelism)", notes); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = $clone(log, logger.Log).AddIDWithNotes(0, 2, ptrType$6.nil, $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range), "Timing information (times may not nest hierarchically due to parallelism)", notes); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* */ } return; } var $f = {$blk: Log, $c: true, $r, _i, _r, _ref, indent, item, last, log, notes, stack, t, top, top$1, x, $s};return $f; }; @@ -133763,7 +134991,7 @@ $packages["github.com/evanw/esbuild/internal/helpers"] = (function() { StringArrayToQuotedCommaSeparatedString = function StringArrayToQuotedCommaSeparatedString$1(a) { var {_i, _r, _r$1, _ref, a, i, sb, str, $s, $r, $c} = $restore(this, {a}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - sb = new strings.Builder.ptr(ptrType$1.nil, sliceType$1.nil); + sb = new strings.Builder.ptr(ptrType$2.nil, sliceType$1.nil); _ref = a; _i = 0; /* while (true) { */ case 1: @@ -133795,7 +135023,7 @@ $packages["github.com/evanw/esbuild/internal/helpers"] = (function() { lines = $subslice(lines, 1); } } - sb = new strings.Builder.ptr(ptrType$1.nil, sliceType$1.nil); + sb = new strings.Builder.ptr(ptrType$2.nil, sliceType$1.nil); _ref = lines; _i = 0; while (true) { @@ -133840,7 +135068,7 @@ $packages["github.com/evanw/esbuild/internal/helpers"] = (function() { i = 0; while (true) { if (!(i < count)) { break; } - ((i < 0 || i >= flags.$length) ? ($throwRuntimeError("index out of range"), undefined) : flags.$array[flags.$offset + i]).Add(1); + ((i < 0 || i >= flags.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(flags.$array, flags.$offset + i, ptrType$7)).Add(1); i = i + (1) >> 0; } return new Serializer.ptr(flags); @@ -133853,7 +135081,7 @@ $packages["github.com/evanw/esbuild/internal/helpers"] = (function() { /* */ if (i > 0) { $s = 1; continue; } /* */ $s = 2; continue; /* if (i > 0) { */ case 1: - $r = (x = s.flags, x$1 = i - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Wait(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = (x = s.flags, x$1 = i - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + x$1, ptrType$7))).Wait(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 2: $s = -1; return; /* */ } return; } var $f = {$blk: Enter, $c: true, $r, i, s, x, x$1, $s};return $f; @@ -133861,7 +135089,7 @@ $packages["github.com/evanw/esbuild/internal/helpers"] = (function() { $ptrType(Serializer).prototype.Leave = function Leave(i) { var i, s, x; s = this; - (x = s.flags, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])).Done(); + (x = s.flags, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + i, ptrType$7))).Done(); }; canPrintWithoutEscape = function canPrintWithoutEscape$1(c, asciiOnly) { var asciiOnly, c; @@ -134013,7 +135241,7 @@ $packages["github.com/evanw/esbuild/internal/helpers"] = (function() { if (!strings.HasPrefix(filePath, "/")) { filePath = "/" + filePath; } - return new url.URL.ptr("file", "", ptrType$6.nil, "", filePath, "", false, false, "", "", ""); + return new url.URL.ptr("file", "", ptrType$8.nil, "", filePath, "", false, false, "", "", ""); }; $pkg.FileURLFromFilePath = FileURLFromFilePath; FilePathFromFileURL = function FilePathFromFileURL$1(fs$1, fileURL) { @@ -134177,7 +135405,7 @@ $packages["github.com/evanw/esbuild/internal/helpers"] = (function() { $pkg.ParseGlobPattern = ParseGlobPattern; GlobPatternToString = function GlobPatternToString$1(pattern) { var _1, _i, _ref, part, pattern, sb; - sb = new strings.Builder.ptr(ptrType$1.nil, sliceType$1.nil); + sb = new strings.Builder.ptr(ptrType$2.nil, sliceType$1.nil); _ref = pattern; _i = 0; while (true) { @@ -134400,7 +135628,7 @@ $packages["github.com/evanw/esbuild/internal/helpers"] = (function() { EncodeStringAsPercentEscapedDataURL = function EncodeStringAsPercentEscapedDataURL$1(mimeType, text) { var _tuple, c, c$1, hex, i, mimeType, n, runStart, sb, text, trailingStart, width; hex = "0123456789ABCDEF"; - sb = new strings.Builder.ptr(ptrType$1.nil, sliceType$1.nil); + sb = new strings.Builder.ptr(ptrType$2.nil, sliceType$1.nil); n = text.length; i = 0; runStart = 0; @@ -134454,7 +135682,7 @@ $packages["github.com/evanw/esbuild/internal/helpers"] = (function() { if (i < 0) { return text; } - b = new strings.Builder.ptr(ptrType$1.nil, sliceType$1.nil); + b = new strings.Builder.ptr(ptrType$2.nil, sliceType$1.nil); while (true) { b.WriteString($substring(text, 0, (i + 1 >> 0))); text = $substring(text, (i + 1 >> 0)); @@ -134501,9 +135729,9 @@ $packages["github.com/evanw/esbuild/internal/helpers"] = (function() { }; BitSet.prototype.String = function(...$args) { return this.$val.String(...$args); }; TypoDetector.methods = [{prop: "MaybeCorrectTypo", name: "MaybeCorrectTypo", pkg: "", typ: $funcType([$String], [$String, $Bool], false)}]; - ptrType$2.methods = [{prop: "Begin", name: "Begin", pkg: "", typ: $funcType([$String], [], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Fork", name: "Fork", pkg: "", typ: $funcType([], [ptrType$2], false)}, {prop: "Join", name: "Join", pkg: "", typ: $funcType([ptrType$2], [], false)}, {prop: "Log", name: "Log", pkg: "", typ: $funcType([logger.Log], [], false)}]; - ptrType$8.methods = [{prop: "Enter", name: "Enter", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Leave", name: "Leave", pkg: "", typ: $funcType([$Int], [], false)}]; - ptrType$9.methods = [{prop: "AddString", name: "AddString", pkg: "", typ: $funcType([$String], [], false)}, {prop: "AddBytes", name: "AddBytes", pkg: "", typ: $funcType([sliceType$1], [], false)}, {prop: "LastByte", name: "LastByte", pkg: "", typ: $funcType([], [$Uint8], false)}, {prop: "Length", name: "Length", pkg: "", typ: $funcType([], [$Uint32], false)}, {prop: "EnsureNewlineAtEnd", name: "EnsureNewlineAtEnd", pkg: "", typ: $funcType([], [], false)}, {prop: "Done", name: "Done", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "Contains", name: "Contains", pkg: "", typ: $funcType([$String, sliceType$1], [$Bool], false)}]; + ptrType$3.methods = [{prop: "Begin", name: "Begin", pkg: "", typ: $funcType([$String], [], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Fork", name: "Fork", pkg: "", typ: $funcType([], [ptrType$3], false)}, {prop: "Join", name: "Join", pkg: "", typ: $funcType([ptrType$3], [], false)}, {prop: "Log", name: "Log", pkg: "", typ: $funcType([logger.Log], [], false)}]; + ptrType$9.methods = [{prop: "Enter", name: "Enter", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Leave", name: "Leave", pkg: "", typ: $funcType([$Int], [], false)}]; + ptrType$10.methods = [{prop: "AddString", name: "AddString", pkg: "", typ: $funcType([$String], [], false)}, {prop: "AddBytes", name: "AddBytes", pkg: "", typ: $funcType([sliceType$1], [], false)}, {prop: "LastByte", name: "LastByte", pkg: "", typ: $funcType([], [$Uint8], false)}, {prop: "Length", name: "Length", pkg: "", typ: $funcType([], [$Uint32], false)}, {prop: "EnsureNewlineAtEnd", name: "EnsureNewlineAtEnd", pkg: "", typ: $funcType([], [], false)}, {prop: "Done", name: "Done", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "Contains", name: "Contains", pkg: "", typ: $funcType([$String, sliceType$1], [$Bool], false)}]; F64.methods = [{prop: "Value", name: "Value", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "IsNaN", name: "IsNaN", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Neg", name: "Neg", pkg: "", typ: $funcType([], [F64], false)}, {prop: "Abs", name: "Abs", pkg: "", typ: $funcType([], [F64], false)}, {prop: "Sin", name: "Sin", pkg: "", typ: $funcType([], [F64], false)}, {prop: "Cos", name: "Cos", pkg: "", typ: $funcType([], [F64], false)}, {prop: "Log2", name: "Log2", pkg: "", typ: $funcType([], [F64], false)}, {prop: "Round", name: "Round", pkg: "", typ: $funcType([], [F64], false)}, {prop: "Floor", name: "Floor", pkg: "", typ: $funcType([], [F64], false)}, {prop: "Ceil", name: "Ceil", pkg: "", typ: $funcType([], [F64], false)}, {prop: "Squared", name: "Squared", pkg: "", typ: $funcType([], [F64], false)}, {prop: "Cubed", name: "Cubed", pkg: "", typ: $funcType([], [F64], false)}, {prop: "Sqrt", name: "Sqrt", pkg: "", typ: $funcType([], [F64], false)}, {prop: "Cbrt", name: "Cbrt", pkg: "", typ: $funcType([], [F64], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([F64], [F64], false)}, {prop: "AddConst", name: "AddConst", pkg: "", typ: $funcType([$Float64], [F64], false)}, {prop: "Sub", name: "Sub", pkg: "", typ: $funcType([F64], [F64], false)}, {prop: "SubConst", name: "SubConst", pkg: "", typ: $funcType([$Float64], [F64], false)}, {prop: "Mul", name: "Mul", pkg: "", typ: $funcType([F64], [F64], false)}, {prop: "MulConst", name: "MulConst", pkg: "", typ: $funcType([$Float64], [F64], false)}, {prop: "Div", name: "Div", pkg: "", typ: $funcType([F64], [F64], false)}, {prop: "DivConst", name: "DivConst", pkg: "", typ: $funcType([$Float64], [F64], false)}, {prop: "Pow", name: "Pow", pkg: "", typ: $funcType([F64], [F64], false)}, {prop: "PowConst", name: "PowConst", pkg: "", typ: $funcType([$Float64], [F64], false)}, {prop: "Atan2", name: "Atan2", pkg: "", typ: $funcType([F64], [F64], false)}, {prop: "WithSignFrom", name: "WithSignFrom", pkg: "", typ: $funcType([F64], [F64], false)}]; BitSet.methods = [{prop: "HasBit", name: "HasBit", pkg: "", typ: $funcType([$Uint], [$Bool], false)}, {prop: "SetBit", name: "SetBit", pkg: "", typ: $funcType([$Uint], [], false)}, {prop: "Equals", name: "Equals", pkg: "", typ: $funcType([BitSet], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; TypoDetector.init("github.com/evanw/esbuild/internal/helpers", [{prop: "oneCharTypos", name: "oneCharTypos", embedded: false, exported: false, typ: mapType, tag: ""}]); @@ -134541,7 +135769,7 @@ $packages["github.com/evanw/esbuild/internal/helpers"] = (function() { return $pkg; })(); $packages["github.com/evanw/esbuild/internal/ast"] = (function() { - var $pkg = {}, $init, helpers, logger, sort, ImportKind, ImportRecordFlags, ImportRecord, AssertOrWithKeyword, ImportAssertOrWith, AssertOrWithEntry, GlobPattern, Index32, SymbolKind, Ref, LocRef, ImportItemStatus, SymbolFlags, Symbol, SlotNamespace, SlotCounts, NamespaceAlias, SymbolMap, CharFreq, NameMinifier, charAndCount, charAndCountArray, ptrType, ptrType$1, sliceType, sliceType$1, ptrType$2, ptrType$3, sliceType$2, sliceType$3, sliceType$4, ptrType$4, ptrType$5, ptrType$6, ptrType$7, FindAssertOrWithEntry, MakeIndex32, NewSymbolMap, FollowSymbols, FollowAllSymbols, MergeSymbols; + var $pkg = {}, $init, helpers, logger, sort, ImportKind, ImportRecordFlags, ImportRecord, AssertOrWithKeyword, ImportAssertOrWith, AssertOrWithEntry, GlobPattern, Index32, SymbolKind, Ref, LocRef, ImportItemStatus, SymbolFlags, Symbol, SlotNamespace, SlotCounts, NamespaceAlias, SymbolMap, CharFreq, NameMinifier, charAndCount, charAndCountArray, ptrType, ptrType$1, ptrType$2, sliceType, sliceType$1, ptrType$3, ptrType$4, ptrType$5, ptrType$6, sliceType$2, sliceType$3, sliceType$4, ptrType$7, FindAssertOrWithEntry, MakeIndex32, NewSymbolMap, FollowSymbols, FollowAllSymbols, MergeSymbols; helpers = $packages["github.com/evanw/esbuild/internal/helpers"]; logger = $packages["github.com/evanw/esbuild/internal/logger"]; sort = $packages["sort"]; @@ -134550,8 +135778,8 @@ $packages["github.com/evanw/esbuild/internal/ast"] = (function() { ImportRecord = $newType(0, $kindStruct, "ast.ImportRecord", true, "github.com/evanw/esbuild/internal/ast", true, function(AssertOrWith_, GlobPattern_, Path_, Range_, ErrorHandlerLoc_, SourceIndex_, CopySourceIndex_, Flags_, Kind_) { this.$val = this; if (arguments.length === 0) { - this.AssertOrWith = ptrType$2.nil; - this.GlobPattern = ptrType$3.nil; + this.AssertOrWith = ptrType$5.nil; + this.GlobPattern = ptrType$6.nil; this.Path = new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0); this.Range = new logger.Range.ptr(new logger.Loc.ptr(0), 0); this.ErrorHandlerLoc = new logger.Loc.ptr(0); @@ -134654,7 +135882,7 @@ $packages["github.com/evanw/esbuild/internal/ast"] = (function() { Symbol = $newType(0, $kindStruct, "ast.Symbol", true, "github.com/evanw/esbuild/internal/ast", true, function(NamespaceAlias_, OriginalName_, Link_, UseCountEstimate_, ChunkIndex_, NestedScopeSlot_, Flags_, Kind_, ImportItemStatus_) { this.$val = this; if (arguments.length === 0) { - this.NamespaceAlias = ptrType$4.nil; + this.NamespaceAlias = ptrType$7.nil; this.OriginalName = ""; this.Link = new Ref.ptr(0, 0); this.UseCountEstimate = 0; @@ -134743,18 +135971,18 @@ $packages["github.com/evanw/esbuild/internal/ast"] = (function() { $pkg.charAndCountArray = charAndCountArray; $pkg.$finishSetup = function() { ptrType = $ptrType(AssertOrWithEntry); - ptrType$1 = $ptrType($Uint32); + ptrType$1 = $ptrType(SlotCounts); + ptrType$2 = $ptrType($Uint32); sliceType = $sliceType(Symbol); sliceType$1 = $sliceType(sliceType); - ptrType$2 = $ptrType(ImportAssertOrWith); - ptrType$3 = $ptrType(GlobPattern); + ptrType$3 = $ptrType(Symbol); + ptrType$4 = $ptrType(CharFreq); + ptrType$5 = $ptrType(ImportAssertOrWith); + ptrType$6 = $ptrType(GlobPattern); sliceType$2 = $sliceType(AssertOrWithEntry); sliceType$3 = $sliceType($Uint16); sliceType$4 = $sliceType(helpers.GlobPart); - ptrType$4 = $ptrType(NamespaceAlias); - ptrType$5 = $ptrType(Symbol); - ptrType$6 = $ptrType(SlotCounts); - ptrType$7 = $ptrType(CharFreq); + ptrType$7 = $ptrType(NamespaceAlias); ImportKind.prototype.StringForMetafile = function StringForMetafile() { var _1, kind; kind = this.$val; @@ -134913,14 +136141,14 @@ $packages["github.com/evanw/esbuild/internal/ast"] = (function() { return 0; }; $ptrType(SlotCounts).prototype.UnionMax = function UnionMax(b) { - var _i, _ref, a, ai, b, bi, i; + var _i, _ref, a, ai, b, bi, i, x; a = this.$val; - _ref = a; + _ref = (a === ptrType$1.nil && $throwNilPointerError(), a); _i = 0; while (true) { if (!(_i < 4)) { break; } i = _i; - ai = $indexPtr((a), i, ptrType$1); + ai = (x = (a === ptrType$1.nil && $throwNilPointerError(), a), ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x, i, ptrType$2))); bi = ((i < 0 || i >= b.length) ? ($throwRuntimeError("index out of range"), undefined) : b[i]); if (ai.$get() < bi) { ai.$set(bi); @@ -134936,7 +136164,7 @@ $packages["github.com/evanw/esbuild/internal/ast"] = (function() { $ptrType(SymbolMap).prototype.Get = function Get(ref) { var ref, sm, x, x$1, x$2, x$3; sm = this; - return (x = (x$1 = sm.SymbolsForSource, x$2 = ref.SourceIndex, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])), x$3 = ref.InnerIndex, ((x$3 < 0 || x$3 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$3])); + return (x = (x$1 = sm.SymbolsForSource, x$2 = ref.SourceIndex, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])), x$3 = ref.InnerIndex, ((x$3 < 0 || x$3 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + x$3, ptrType$3))); }; SymbolMap.prototype.Get = function(...$args) { return this.$val.Get(...$args); }; FollowSymbols = function FollowSymbols$1(symbols, ref) { @@ -135007,17 +136235,17 @@ $packages["github.com/evanw/esbuild/internal/ast"] = (function() { c = text.charCodeAt(i); if (c >= 97 && c <= 122) { _index = c - 97 << 24 >>> 24; - (x$1 = freq, ((_index < 0 || _index >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[_index] = ((x = freq, ((_index < 0 || _index >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[_index])) + (delta) >> 0))); + (x$1 = (freq === ptrType$4.nil && $throwNilPointerError(), freq), ((_index < 0 || _index >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[_index] = ((x = (freq === ptrType$4.nil && $throwNilPointerError(), freq), ((_index < 0 || _index >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[_index])) + (delta) >> 0))); } else if (c >= 65 && c <= 90) { _index$1 = c - 39 << 24 >>> 24; - (x$3 = freq, ((_index$1 < 0 || _index$1 >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[_index$1] = ((x$2 = freq, ((_index$1 < 0 || _index$1 >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[_index$1])) + (delta) >> 0))); + (x$3 = (freq === ptrType$4.nil && $throwNilPointerError(), freq), ((_index$1 < 0 || _index$1 >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[_index$1] = ((x$2 = (freq === ptrType$4.nil && $throwNilPointerError(), freq), ((_index$1 < 0 || _index$1 >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[_index$1])) + (delta) >> 0))); } else if (c >= 48 && c <= 57) { _index$2 = c + 4 << 24 >>> 24; - (x$5 = freq, ((_index$2 < 0 || _index$2 >= x$5.length) ? ($throwRuntimeError("index out of range"), undefined) : x$5[_index$2] = ((x$4 = freq, ((_index$2 < 0 || _index$2 >= x$4.length) ? ($throwRuntimeError("index out of range"), undefined) : x$4[_index$2])) + (delta) >> 0))); + (x$5 = (freq === ptrType$4.nil && $throwNilPointerError(), freq), ((_index$2 < 0 || _index$2 >= x$5.length) ? ($throwRuntimeError("index out of range"), undefined) : x$5[_index$2] = ((x$4 = (freq === ptrType$4.nil && $throwNilPointerError(), freq), ((_index$2 < 0 || _index$2 >= x$4.length) ? ($throwRuntimeError("index out of range"), undefined) : x$4[_index$2])) + (delta) >> 0))); } else if ((c === 95)) { - freq[62] = (freq[62] + (delta) >> 0); + (freq === ptrType$4.nil && $throwNilPointerError(), freq)[62] = ((freq === ptrType$4.nil && $throwNilPointerError(), freq)[62] + (delta) >> 0); } else if ((c === 36)) { - freq[63] = (freq[63] + (delta) >> 0); + (freq === ptrType$4.nil && $throwNilPointerError(), freq)[63] = ((freq === ptrType$4.nil && $throwNilPointerError(), freq)[63] + (delta) >> 0); } i = i + (1) >> 0; } @@ -135028,7 +136256,7 @@ $packages["github.com/evanw/esbuild/internal/ast"] = (function() { i = 0; while (true) { if (!(i < 64)) { break; } - (x$2 = freq, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i] = ((x = freq, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i])) + ((x$1 = other, ((i < 0 || i >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[i]))) >> 0))); + (x$2 = (freq === ptrType$4.nil && $throwNilPointerError(), freq), ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i] = ((x = (freq === ptrType$4.nil && $throwNilPointerError(), freq), ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i])) + ((x$1 = (other === ptrType$4.nil && $throwNilPointerError(), other), ((i < 0 || i >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[i]))) >> 0))); i = i + (1) >> 0; } }; @@ -135107,20 +136335,20 @@ $packages["github.com/evanw/esbuild/internal/ast"] = (function() { Index32.methods = [{prop: "IsValid", name: "IsValid", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetIndex", name: "GetIndex", pkg: "", typ: $funcType([], [$Uint32], false)}]; SymbolKind.methods = [{prop: "IsPrivate", name: "IsPrivate", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsHoisted", name: "IsHoisted", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsHoistedOrFunction", name: "IsHoistedOrFunction", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsFunction", name: "IsFunction", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsUnboundOrInjected", name: "IsUnboundOrInjected", pkg: "", typ: $funcType([], [$Bool], false)}]; SymbolFlags.methods = [{prop: "Has", name: "Has", pkg: "", typ: $funcType([SymbolFlags], [$Bool], false)}]; - ptrType$5.methods = [{prop: "MergeContentsWith", name: "MergeContentsWith", pkg: "", typ: $funcType([ptrType$5], [], false)}, {prop: "SlotNamespace", name: "SlotNamespace", pkg: "", typ: $funcType([], [SlotNamespace], false)}]; - ptrType$6.methods = [{prop: "UnionMax", name: "UnionMax", pkg: "", typ: $funcType([SlotCounts], [], false)}]; - SymbolMap.methods = [{prop: "Get", name: "Get", pkg: "", typ: $funcType([Ref], [ptrType$5], false)}]; - ptrType$7.methods = [{prop: "Scan", name: "Scan", pkg: "", typ: $funcType([$String, $Int32], [], false)}, {prop: "Include", name: "Include", pkg: "", typ: $funcType([ptrType$7], [], false)}]; + ptrType$3.methods = [{prop: "MergeContentsWith", name: "MergeContentsWith", pkg: "", typ: $funcType([ptrType$3], [], false)}, {prop: "SlotNamespace", name: "SlotNamespace", pkg: "", typ: $funcType([], [SlotNamespace], false)}]; + ptrType$1.methods = [{prop: "UnionMax", name: "UnionMax", pkg: "", typ: $funcType([SlotCounts], [], false)}]; + SymbolMap.methods = [{prop: "Get", name: "Get", pkg: "", typ: $funcType([Ref], [ptrType$3], false)}]; + ptrType$4.methods = [{prop: "Scan", name: "Scan", pkg: "", typ: $funcType([$String, $Int32], [], false)}, {prop: "Include", name: "Include", pkg: "", typ: $funcType([ptrType$4], [], false)}]; NameMinifier.methods = [{prop: "ShuffleByCharFreq", name: "ShuffleByCharFreq", pkg: "", typ: $funcType([CharFreq], [NameMinifier], false)}, {prop: "NumberToMinifiedName", name: "NumberToMinifiedName", pkg: "", typ: $funcType([$Int], [$String], false)}]; charAndCountArray.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}]; - ImportRecord.init("", [{prop: "AssertOrWith", name: "AssertOrWith", embedded: false, exported: true, typ: ptrType$2, tag: ""}, {prop: "GlobPattern", name: "GlobPattern", embedded: false, exported: true, typ: ptrType$3, tag: ""}, {prop: "Path", name: "Path", embedded: false, exported: true, typ: logger.Path, tag: ""}, {prop: "Range", name: "Range", embedded: false, exported: true, typ: logger.Range, tag: ""}, {prop: "ErrorHandlerLoc", name: "ErrorHandlerLoc", embedded: false, exported: true, typ: logger.Loc, tag: ""}, {prop: "SourceIndex", name: "SourceIndex", embedded: false, exported: true, typ: Index32, tag: ""}, {prop: "CopySourceIndex", name: "CopySourceIndex", embedded: false, exported: true, typ: Index32, tag: ""}, {prop: "Flags", name: "Flags", embedded: false, exported: true, typ: ImportRecordFlags, tag: ""}, {prop: "Kind", name: "Kind", embedded: false, exported: true, typ: ImportKind, tag: ""}]); + ImportRecord.init("", [{prop: "AssertOrWith", name: "AssertOrWith", embedded: false, exported: true, typ: ptrType$5, tag: ""}, {prop: "GlobPattern", name: "GlobPattern", embedded: false, exported: true, typ: ptrType$6, tag: ""}, {prop: "Path", name: "Path", embedded: false, exported: true, typ: logger.Path, tag: ""}, {prop: "Range", name: "Range", embedded: false, exported: true, typ: logger.Range, tag: ""}, {prop: "ErrorHandlerLoc", name: "ErrorHandlerLoc", embedded: false, exported: true, typ: logger.Loc, tag: ""}, {prop: "SourceIndex", name: "SourceIndex", embedded: false, exported: true, typ: Index32, tag: ""}, {prop: "CopySourceIndex", name: "CopySourceIndex", embedded: false, exported: true, typ: Index32, tag: ""}, {prop: "Flags", name: "Flags", embedded: false, exported: true, typ: ImportRecordFlags, tag: ""}, {prop: "Kind", name: "Kind", embedded: false, exported: true, typ: ImportKind, tag: ""}]); ImportAssertOrWith.init("", [{prop: "Entries", name: "Entries", embedded: false, exported: true, typ: sliceType$2, tag: ""}, {prop: "KeywordLoc", name: "KeywordLoc", embedded: false, exported: true, typ: logger.Loc, tag: ""}, {prop: "InnerOpenBraceLoc", name: "InnerOpenBraceLoc", embedded: false, exported: true, typ: logger.Loc, tag: ""}, {prop: "InnerCloseBraceLoc", name: "InnerCloseBraceLoc", embedded: false, exported: true, typ: logger.Loc, tag: ""}, {prop: "OuterOpenBraceLoc", name: "OuterOpenBraceLoc", embedded: false, exported: true, typ: logger.Loc, tag: ""}, {prop: "OuterCloseBraceLoc", name: "OuterCloseBraceLoc", embedded: false, exported: true, typ: logger.Loc, tag: ""}, {prop: "Keyword", name: "Keyword", embedded: false, exported: true, typ: AssertOrWithKeyword, tag: ""}]); AssertOrWithEntry.init("", [{prop: "Key", name: "Key", embedded: false, exported: true, typ: sliceType$3, tag: ""}, {prop: "Value", name: "Value", embedded: false, exported: true, typ: sliceType$3, tag: ""}, {prop: "KeyLoc", name: "KeyLoc", embedded: false, exported: true, typ: logger.Loc, tag: ""}, {prop: "ValueLoc", name: "ValueLoc", embedded: false, exported: true, typ: logger.Loc, tag: ""}, {prop: "PreferQuotedKey", name: "PreferQuotedKey", embedded: false, exported: true, typ: $Bool, tag: ""}]); GlobPattern.init("", [{prop: "Parts", name: "Parts", embedded: false, exported: true, typ: sliceType$4, tag: ""}, {prop: "ExportAlias", name: "ExportAlias", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Kind", name: "Kind", embedded: false, exported: true, typ: ImportKind, tag: ""}]); Index32.init("github.com/evanw/esbuild/internal/ast", [{prop: "flippedBits", name: "flippedBits", embedded: false, exported: false, typ: $Uint32, tag: ""}]); Ref.init("", [{prop: "SourceIndex", name: "SourceIndex", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "InnerIndex", name: "InnerIndex", embedded: false, exported: true, typ: $Uint32, tag: ""}]); LocRef.init("", [{prop: "Loc", name: "Loc", embedded: false, exported: true, typ: logger.Loc, tag: ""}, {prop: "Ref", name: "Ref", embedded: false, exported: true, typ: Ref, tag: ""}]); - Symbol.init("", [{prop: "NamespaceAlias", name: "NamespaceAlias", embedded: false, exported: true, typ: ptrType$4, tag: ""}, {prop: "OriginalName", name: "OriginalName", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Link", name: "Link", embedded: false, exported: true, typ: Ref, tag: ""}, {prop: "UseCountEstimate", name: "UseCountEstimate", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "ChunkIndex", name: "ChunkIndex", embedded: false, exported: true, typ: Index32, tag: ""}, {prop: "NestedScopeSlot", name: "NestedScopeSlot", embedded: false, exported: true, typ: Index32, tag: ""}, {prop: "Flags", name: "Flags", embedded: false, exported: true, typ: SymbolFlags, tag: ""}, {prop: "Kind", name: "Kind", embedded: false, exported: true, typ: SymbolKind, tag: ""}, {prop: "ImportItemStatus", name: "ImportItemStatus", embedded: false, exported: true, typ: ImportItemStatus, tag: ""}]); + Symbol.init("", [{prop: "NamespaceAlias", name: "NamespaceAlias", embedded: false, exported: true, typ: ptrType$7, tag: ""}, {prop: "OriginalName", name: "OriginalName", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Link", name: "Link", embedded: false, exported: true, typ: Ref, tag: ""}, {prop: "UseCountEstimate", name: "UseCountEstimate", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "ChunkIndex", name: "ChunkIndex", embedded: false, exported: true, typ: Index32, tag: ""}, {prop: "NestedScopeSlot", name: "NestedScopeSlot", embedded: false, exported: true, typ: Index32, tag: ""}, {prop: "Flags", name: "Flags", embedded: false, exported: true, typ: SymbolFlags, tag: ""}, {prop: "Kind", name: "Kind", embedded: false, exported: true, typ: SymbolKind, tag: ""}, {prop: "ImportItemStatus", name: "ImportItemStatus", embedded: false, exported: true, typ: ImportItemStatus, tag: ""}]); SlotCounts.init($Uint32, 4); NamespaceAlias.init("", [{prop: "Alias", name: "Alias", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "NamespaceRef", name: "NamespaceRef", embedded: false, exported: true, typ: Ref, tag: ""}]); SymbolMap.init("", [{prop: "SymbolsForSource", name: "SymbolsForSource", embedded: false, exported: true, typ: sliceType$1, tag: ""}]); @@ -138062,7 +139290,7 @@ $packages["github.com/evanw/esbuild/internal/css_ast"] = (function() { bts = _tmp$1; if (!((ats === ptrType$13.nil) === (bts === ptrType$13.nil))) { $s = -1; return false; - } else if (!(ats === ptrType$13.nil) && !(bts === ptrType$13.nil) && !$clone(ats, NamespacedName).Equal($clone(bts, NamespacedName))) { + } else if (!(ats === ptrType$13.nil) && !(bts === ptrType$13.nil) && !$clone(ats, NamespacedName).Equal($clone((bts === ptrType$13.nil && $throwNilPointerError(), bts), NamespacedName))) { $s = -1; return false; } if (!((ai.SubclassSelectors.$length === bi.SubclassSelectors.$length))) { @@ -138182,11 +139410,11 @@ $packages["github.com/evanw/esbuild/internal/css_ast"] = (function() { }; NamespacedName.prototype.Range = function(...$args) { return this.$val.Range(...$args); }; $ptrType(NamespacedName).prototype.Clone = function Clone$2() { - var clone, n, prefix; + var clone, n, prefix, x; n = this; clone = $clone(n, NamespacedName); if (!(n.NamespacePrefix === ptrType$16.nil)) { - prefix = $clone(n.NamespacePrefix, NameToken); + prefix = $clone((x = n.NamespacePrefix, (x === ptrType$16.nil && $throwNilPointerError(), x)), NameToken); clone.NamespacePrefix = prefix; } return clone; @@ -138215,7 +139443,7 @@ $packages["github.com/evanw/esbuild/internal/css_ast"] = (function() { $ptrType(SSHash).prototype.Clone = function Clone$3() { var clone, ss; ss = this; - clone = $clone(ss, SSHash); + clone = $clone((ss === ptrType$17.nil && $throwNilPointerError(), ss), SSHash); return clone; }; $ptrType(SSClass).prototype.Equal = function Equal$16(ss, check) { @@ -138235,7 +139463,7 @@ $packages["github.com/evanw/esbuild/internal/css_ast"] = (function() { $ptrType(SSClass).prototype.Clone = function Clone$4() { var clone, ss; ss = this; - clone = $clone(ss, SSClass); + clone = $clone((ss === ptrType$18.nil && $throwNilPointerError(), ss), SSClass); return clone; }; $ptrType(SSAttribute).prototype.Equal = function Equal$17(ss, check) { @@ -138258,7 +139486,7 @@ $packages["github.com/evanw/esbuild/internal/css_ast"] = (function() { $ptrType(SSAttribute).prototype.Clone = function Clone$5() { var clone, ss; ss = this; - clone = $clone(ss, SSAttribute); + clone = $clone((ss === ptrType$19.nil && $throwNilPointerError(), ss), SSAttribute); NamespacedName.copy(clone.NamespacedName, $clone(ss.NamespacedName, NamespacedName).Clone()); return clone; }; @@ -138281,7 +139509,7 @@ $packages["github.com/evanw/esbuild/internal/css_ast"] = (function() { $ptrType(SSPseudoClass).prototype.Clone = function Clone$6() { var clone, ss; ss = this; - clone = $clone(ss, SSPseudoClass); + clone = $clone((ss === ptrType$15.nil && $throwNilPointerError(), ss), SSPseudoClass); if (!(ss.Args === sliceType$3.nil)) { ss.Args = CloneTokensWithoutImportRecords(ss.Args); } @@ -138378,7 +139606,7 @@ $packages["github.com/evanw/esbuild/internal/css_ast"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: clone = [clone]; ss = this; - clone[0] = $clone(ss, SSPseudoClassWithSelectorList); + clone[0] = $clone((ss === ptrType$14.nil && $throwNilPointerError(), ss), SSPseudoClassWithSelectorList); clone[0].Selectors = $makeSlice(sliceType$6, ss.Selectors.$length); _ref = ss.Selectors; _i = 0; @@ -138868,7 +140096,7 @@ $packages["github.com/evanw/esbuild/internal/compat"] = (function() { return $pkg; })(); $packages["github.com/evanw/esbuild/internal/js_ast"] = (function() { - var $pkg = {}, $init, ast, compat, helpers, logger, math, strconv, strings, unicode, utf8, HelperContext, StmtsCanBeRemovedIfUnusedFlags, L, OpCode, AssignTarget, OpTableEntry, Decorator, PropertyKind, ClassStaticBlock, PropertyFlags, Property, PropertyBinding, Arg, Fn, FnBody, Class, ArrayBinding, Binding, B, BMissing, BIdentifier, BArray, BObject, Expr, E, EArray, EUnary, EBinary, EBoolean, EMissing, ESuper, ENull, EUndefined, EThis, ENewTarget, EImportMeta, ENew, CallKind, OptionalChain, ECall, EDot, EIndex, EArrow, EFunction, EClass, EIdentifier, EImportIdentifier, EPrivateIdentifier, ENameOfSymbol, EJSXElement, EJSXText, ENumber, EBigInt, EObject, ESpread, EString, TemplatePart, ETemplate, ERegExp, EInlinedEnum, AnnotationFlags, EAnnotation, EAwait, EYield, EIf, ERequireString, ERequireResolveString, EImportString, EImportCall, Stmt, S, SBlock, SEmpty, STypeScript, SComment, SDebugger, SDirective, SExportClause, SExportFrom, SExportDefault, ExportStarAlias, SExportStar, SExportEquals, SLazyExport, SExpr, EnumValue, SEnum, SNamespace, SFunction, SClass, SLabel, SIf, SFor, SForIn, SForOf, SDoWhile, SWhile, SWith, Catch, Finally, STry, Case, SSwitch, SImport, SReturn, SThrow, LocalKind, SLocal, SBreak, SContinue, ClauseItem, Decl, ScopeKind, ScopeMember, Scope, StrictModeKind, TSNamespaceScope, TSNamespaceMembers, TSNamespaceMember, TSNamespaceMemberData, TSNamespaceMemberProperty, TSNamespaceMemberNamespace, TSNamespaceMemberEnumNumber, TSNamespaceMemberEnumString, ExportsKind, ModuleType, ModuleTypeData, AST, TSEnumValue, ConstValueKind, ConstValue, NamedImport, NamedExport, Part, Dependency, DeclaredSymbol, SymbolUse, SymbolCallUse, sliceType, sliceType$1, sliceType$2, ptrType, sliceType$3, ptrType$1, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, ptrType$11, ptrType$12, ptrType$13, ptrType$14, ptrType$15, ptrType$16, sliceType$4, ptrType$17, ptrType$18, ptrType$19, ptrType$20, ptrType$21, ptrType$22, sliceType$5, sliceType$6, ptrType$23, sliceType$7, ptrType$24, ptrType$25, ptrType$26, ptrType$27, ptrType$28, ptrType$29, ptrType$30, sliceType$8, ptrType$31, ptrType$32, ptrType$33, sliceType$9, ptrType$34, ptrType$35, ptrType$36, ptrType$37, ptrType$38, ptrType$39, ptrType$40, ptrType$41, ptrType$42, ptrType$43, ptrType$44, ptrType$45, sliceType$10, funcType, ptrType$46, sliceType$11, sliceType$12, sliceType$13, ptrType$47, ptrType$48, ptrType$49, ptrType$50, ptrType$51, ptrType$52, ptrType$53, ptrType$54, ptrType$55, ptrType$56, ptrType$57, ptrType$58, ptrType$59, ptrType$60, ptrType$61, ptrType$62, ptrType$63, sliceType$14, ptrType$64, ptrType$65, ptrType$66, ptrType$67, sliceType$15, ptrType$68, ptrType$69, ptrType$70, ptrType$71, ptrType$72, ptrType$73, ptrType$74, ptrType$75, ptrType$76, ptrType$77, ptrType$78, sliceType$16, ptrType$79, ptrType$80, ptrType$81, ptrType$82, sliceType$17, ptrType$83, ptrType$84, ptrType$85, ptrType$86, sliceType$18, sliceType$19, sliceType$20, mapType, mapType$1, ptrType$87, sliceType$21, sliceType$22, ptrType$88, sliceType$23, sliceType$24, arrayType, mapType$2, mapType$3, mapType$4, mapType$5, mapType$6, mapType$7, mapType$8, mapType$9, sliceType$25, sliceType$26, mapType$10, mapType$11, mapType$12, mapType$13, idStartES5AndESNext, idContinueES5AndESNext, idStartES5OrESNext, idContinueES5OrESNext, IsIdentifier, IsIdentifierES5AndESNext, ForceValidIdentifier, IsIdentifierUTF16, IsIdentifierES5AndESNextUTF16, IsIdentifierStart, IsIdentifierContinue, IsIdentifierStartES5AndESNext, IsIdentifierContinueES5AndESNext, IsWhitespace, MakeHelperContext, IsPropertyAccess, IsOptionalChain, Assign, AssignStmt, Not, MaybeSimplifyNot, MaybeSimplifyEqualityComparison, IsSymbolInstance, IsPrimitiveLiteral, MergedKnownPrimitiveTypes, KnownPrimitiveType, CanChangeStrictToLoose, TypeofWithoutSideEffects, JoinWithLeftAssociativeOp, JoinWithComma, JoinAllWithComma, ConvertBindingToExpr, simplifyUnusedStringAdditionChain, ToInt32, ToUint32, isInt32OrUint32, ToNumberWithoutSideEffects, ToStringWithoutSideEffects, extractNumericValue, extractNumericValues, extractStringValue, extractStringValues, stringCompareUCS2, approximatePrintedIntCharCount, ShouldFoldBinaryOperatorWhenMinifying, FoldBinaryOperator, IsBinaryNullAndUndefined, CheckEqualityBigInt, CheckEqualityIfNoSideEffects, ValuesLookTheSame, TryToInsertOptionalChain, joinStrings, TryToStringOnNumberSafely, foldAdditionPreProcess, FoldStringAddition, InlinePrimitivesIntoTemplate, ToNullOrUndefinedWithSideEffects, ToBooleanWithSideEffects, StringToEquivalentNumberValue, InlineSpreadsOfArrayLiterals, MangleObjectSpread, ForEachIdentifierBindingInDecls, ForEachIdentifierBinding, ExprToConstValue, ConstValueToExpr, GenerateNonUniqueNameFromPath, EnsureValidIdentifier; + var $pkg = {}, $init, ast, compat, helpers, logger, math, strconv, strings, unicode, utf8, HelperContext, StmtsCanBeRemovedIfUnusedFlags, L, OpCode, AssignTarget, OpTableEntry, Decorator, PropertyKind, ClassStaticBlock, PropertyFlags, Property, PropertyBinding, Arg, Fn, FnBody, Class, ArrayBinding, Binding, B, BMissing, BIdentifier, BArray, BObject, Expr, E, EArray, EUnary, EBinary, EBoolean, EMissing, ESuper, ENull, EUndefined, EThis, ENewTarget, EImportMeta, ENew, CallKind, OptionalChain, ECall, EDot, EIndex, EArrow, EFunction, EClass, EIdentifier, EImportIdentifier, EPrivateIdentifier, ENameOfSymbol, EJSXElement, EJSXText, ENumber, EBigInt, EObject, ESpread, EString, TemplatePart, ETemplate, ERegExp, EInlinedEnum, AnnotationFlags, EAnnotation, EAwait, EYield, EIf, ERequireString, ERequireResolveString, EImportString, EImportCall, Stmt, S, SBlock, SEmpty, STypeScript, SComment, SDebugger, SDirective, SExportClause, SExportFrom, SExportDefault, ExportStarAlias, SExportStar, SExportEquals, SLazyExport, SExpr, EnumValue, SEnum, SNamespace, SFunction, SClass, SLabel, SIf, SFor, SForIn, SForOf, SDoWhile, SWhile, SWith, Catch, Finally, STry, Case, SSwitch, SImport, SReturn, SThrow, LocalKind, SLocal, SBreak, SContinue, ClauseItem, Decl, ScopeKind, ScopeMember, Scope, StrictModeKind, TSNamespaceScope, TSNamespaceMembers, TSNamespaceMember, TSNamespaceMemberData, TSNamespaceMemberProperty, TSNamespaceMemberNamespace, TSNamespaceMemberEnumNumber, TSNamespaceMemberEnumString, ExportsKind, ModuleType, ModuleTypeData, AST, TSEnumValue, ConstValueKind, ConstValue, NamedImport, NamedExport, Part, Dependency, DeclaredSymbol, SymbolUse, SymbolCallUse, sliceType, sliceType$1, sliceType$2, ptrType, sliceType$3, ptrType$1, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, ptrType$11, ptrType$12, ptrType$13, ptrType$14, ptrType$15, ptrType$16, sliceType$4, ptrType$17, ptrType$18, ptrType$19, ptrType$20, ptrType$21, ptrType$22, sliceType$5, sliceType$6, ptrType$23, sliceType$7, ptrType$24, ptrType$25, ptrType$26, ptrType$27, ptrType$28, ptrType$29, ptrType$30, sliceType$8, ptrType$31, ptrType$32, ptrType$33, sliceType$9, ptrType$34, ptrType$35, ptrType$36, ptrType$37, ptrType$38, ptrType$39, ptrType$40, ptrType$41, ptrType$42, ptrType$43, ptrType$44, ptrType$45, ptrType$46, sliceType$10, funcType, ptrType$47, sliceType$11, sliceType$12, sliceType$13, ptrType$48, ptrType$49, ptrType$50, ptrType$51, ptrType$52, ptrType$53, ptrType$54, ptrType$55, ptrType$56, ptrType$57, ptrType$58, ptrType$59, ptrType$60, ptrType$61, ptrType$62, ptrType$63, ptrType$64, sliceType$14, ptrType$65, ptrType$66, ptrType$67, ptrType$68, sliceType$15, ptrType$69, ptrType$70, ptrType$71, ptrType$72, ptrType$73, ptrType$74, ptrType$75, ptrType$76, ptrType$77, ptrType$78, ptrType$79, sliceType$16, ptrType$80, ptrType$81, ptrType$82, ptrType$83, sliceType$17, ptrType$84, ptrType$85, ptrType$86, ptrType$87, sliceType$18, sliceType$19, sliceType$20, mapType, mapType$1, ptrType$88, sliceType$21, sliceType$22, ptrType$89, sliceType$23, sliceType$24, arrayType, mapType$2, mapType$3, mapType$4, mapType$5, mapType$6, mapType$7, mapType$8, mapType$9, sliceType$25, sliceType$26, mapType$10, mapType$11, mapType$12, mapType$13, idStartES5AndESNext, idContinueES5AndESNext, idStartES5OrESNext, idContinueES5OrESNext, IsIdentifier, IsIdentifierES5AndESNext, ForceValidIdentifier, IsIdentifierUTF16, IsIdentifierES5AndESNextUTF16, IsIdentifierStart, IsIdentifierContinue, IsIdentifierStartES5AndESNext, IsIdentifierContinueES5AndESNext, IsWhitespace, MakeHelperContext, IsPropertyAccess, IsOptionalChain, Assign, AssignStmt, Not, MaybeSimplifyNot, MaybeSimplifyEqualityComparison, IsSymbolInstance, IsPrimitiveLiteral, MergedKnownPrimitiveTypes, KnownPrimitiveType, CanChangeStrictToLoose, TypeofWithoutSideEffects, JoinWithLeftAssociativeOp, JoinWithComma, JoinAllWithComma, ConvertBindingToExpr, simplifyUnusedStringAdditionChain, ToInt32, ToUint32, isInt32OrUint32, ToNumberWithoutSideEffects, ToStringWithoutSideEffects, extractNumericValue, extractNumericValues, extractStringValue, extractStringValues, stringCompareUCS2, approximatePrintedIntCharCount, ShouldFoldBinaryOperatorWhenMinifying, FoldBinaryOperator, IsBinaryNullAndUndefined, CheckEqualityBigInt, CheckEqualityIfNoSideEffects, ValuesLookTheSame, TryToInsertOptionalChain, joinStrings, TryToStringOnNumberSafely, foldAdditionPreProcess, FoldStringAddition, InlinePrimitivesIntoTemplate, ToNullOrUndefinedWithSideEffects, ToBooleanWithSideEffects, StringToEquivalentNumberValue, InlineSpreadsOfArrayLiterals, MangleObjectSpread, ForEachIdentifierBindingInDecls, ForEachIdentifierBinding, ExprToConstValue, ConstValueToExpr, GenerateNonUniqueNameFromPath, EnsureValidIdentifier; ast = $packages["github.com/evanw/esbuild/internal/ast"]; compat = $packages["github.com/evanw/esbuild/internal/compat"]; helpers = $packages["github.com/evanw/esbuild/internal/helpers"]; @@ -138989,7 +140217,7 @@ $packages["github.com/evanw/esbuild/internal/js_ast"] = (function() { Fn = $newType(0, $kindStruct, "js_ast.Fn", true, "github.com/evanw/esbuild/internal/js_ast", true, function(Name_, Args_, Body_, ArgumentsRef_, OpenParenLoc_, IsAsync_, IsGenerator_, HasRestArg_, HasIfScope_, HasNoSideEffectsComment_, IsUniqueFormalParameters_) { this.$val = this; if (arguments.length === 0) { - this.Name = ptrType$46.nil; + this.Name = ptrType$47.nil; this.Args = sliceType$11.nil; this.Body = new FnBody.ptr(new SBlock.ptr(sliceType$10.nil, new logger.Loc.ptr(0)), new logger.Loc.ptr(0)); this.ArgumentsRef = new ast.Ref.ptr(0, 0); @@ -139028,7 +140256,7 @@ $packages["github.com/evanw/esbuild/internal/js_ast"] = (function() { this.$val = this; if (arguments.length === 0) { this.Decorators = sliceType$7.nil; - this.Name = ptrType$46.nil; + this.Name = ptrType$47.nil; this.ExtendsOrNil = new Expr.ptr($ifaceNil, new logger.Loc.ptr(0)); this.Properties = sliceType$6.nil; this.ClassKeyword = new logger.Range.ptr(new logger.Loc.ptr(0), 0); @@ -139287,7 +140515,7 @@ $packages["github.com/evanw/esbuild/internal/js_ast"] = (function() { EFunction = $newType(0, $kindStruct, "js_ast.EFunction", true, "github.com/evanw/esbuild/internal/js_ast", true, function(Fn_) { this.$val = this; if (arguments.length === 0) { - this.Fn = new Fn.ptr(ptrType$46.nil, sliceType$11.nil, new FnBody.ptr(new SBlock.ptr(sliceType$10.nil, new logger.Loc.ptr(0)), new logger.Loc.ptr(0)), new ast.Ref.ptr(0, 0), new logger.Loc.ptr(0), false, false, false, false, false, false); + this.Fn = new Fn.ptr(ptrType$47.nil, sliceType$11.nil, new FnBody.ptr(new SBlock.ptr(sliceType$10.nil, new logger.Loc.ptr(0)), new logger.Loc.ptr(0)), new ast.Ref.ptr(0, 0), new logger.Loc.ptr(0), false, false, false, false, false, false); return; } this.Fn = Fn_; @@ -139295,7 +140523,7 @@ $packages["github.com/evanw/esbuild/internal/js_ast"] = (function() { EClass = $newType(0, $kindStruct, "js_ast.EClass", true, "github.com/evanw/esbuild/internal/js_ast", true, function(Class_) { this.$val = this; if (arguments.length === 0) { - this.Class = new Class.ptr(sliceType$7.nil, ptrType$46.nil, new Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), sliceType$6.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Loc.ptr(0), new logger.Loc.ptr(0), false, false); + this.Class = new Class.ptr(sliceType$7.nil, ptrType$47.nil, new Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), sliceType$6.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Loc.ptr(0), new logger.Loc.ptr(0), false, false); return; } this.Class = Class_; @@ -139659,7 +140887,7 @@ $packages["github.com/evanw/esbuild/internal/js_ast"] = (function() { SExportStar = $newType(0, $kindStruct, "js_ast.SExportStar", true, "github.com/evanw/esbuild/internal/js_ast", true, function(Alias_, NamespaceRef_, ImportRecordIndex_) { this.$val = this; if (arguments.length === 0) { - this.Alias = ptrType$64.nil; + this.Alias = ptrType$65.nil; this.NamespaceRef = new ast.Ref.ptr(0, 0); this.ImportRecordIndex = 0; return; @@ -139739,7 +140967,7 @@ $packages["github.com/evanw/esbuild/internal/js_ast"] = (function() { SFunction = $newType(0, $kindStruct, "js_ast.SFunction", true, "github.com/evanw/esbuild/internal/js_ast", true, function(Fn_, IsExport_) { this.$val = this; if (arguments.length === 0) { - this.Fn = new Fn.ptr(ptrType$46.nil, sliceType$11.nil, new FnBody.ptr(new SBlock.ptr(sliceType$10.nil, new logger.Loc.ptr(0)), new logger.Loc.ptr(0)), new ast.Ref.ptr(0, 0), new logger.Loc.ptr(0), false, false, false, false, false, false); + this.Fn = new Fn.ptr(ptrType$47.nil, sliceType$11.nil, new FnBody.ptr(new SBlock.ptr(sliceType$10.nil, new logger.Loc.ptr(0)), new logger.Loc.ptr(0)), new ast.Ref.ptr(0, 0), new logger.Loc.ptr(0), false, false, false, false, false, false); this.IsExport = false; return; } @@ -139749,7 +140977,7 @@ $packages["github.com/evanw/esbuild/internal/js_ast"] = (function() { SClass = $newType(0, $kindStruct, "js_ast.SClass", true, "github.com/evanw/esbuild/internal/js_ast", true, function(Class_, IsExport_) { this.$val = this; if (arguments.length === 0) { - this.Class = new Class.ptr(sliceType$7.nil, ptrType$46.nil, new Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), sliceType$6.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Loc.ptr(0), new logger.Loc.ptr(0), false, false); + this.Class = new Class.ptr(sliceType$7.nil, ptrType$47.nil, new Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), sliceType$6.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Loc.ptr(0), new logger.Loc.ptr(0), false, false); this.IsExport = false; return; } @@ -139893,8 +141121,8 @@ $packages["github.com/evanw/esbuild/internal/js_ast"] = (function() { STry = $newType(0, $kindStruct, "js_ast.STry", true, "github.com/evanw/esbuild/internal/js_ast", true, function(Catch_, Finally_, Block_, BlockLoc_) { this.$val = this; if (arguments.length === 0) { - this.Catch = ptrType$78.nil; - this.Finally = ptrType$44.nil; + this.Catch = ptrType$79.nil; + this.Finally = ptrType$45.nil; this.Block = new SBlock.ptr(sliceType$10.nil, new logger.Loc.ptr(0)); this.BlockLoc = new logger.Loc.ptr(0); return; @@ -139933,9 +141161,9 @@ $packages["github.com/evanw/esbuild/internal/js_ast"] = (function() { SImport = $newType(0, $kindStruct, "js_ast.SImport", true, "github.com/evanw/esbuild/internal/js_ast", true, function(DefaultName_, Items_, StarNameLoc_, NamespaceRef_, ImportRecordIndex_, IsSingleLine_) { this.$val = this; if (arguments.length === 0) { - this.DefaultName = ptrType$46.nil; - this.Items = ptrType$80.nil; - this.StarNameLoc = ptrType$81.nil; + this.DefaultName = ptrType$47.nil; + this.Items = ptrType$81.nil; + this.StarNameLoc = ptrType$82.nil; this.NamespaceRef = new ast.Ref.ptr(0, 0); this.ImportRecordIndex = 0; this.IsSingleLine = false; @@ -139982,7 +141210,7 @@ $packages["github.com/evanw/esbuild/internal/js_ast"] = (function() { SBreak = $newType(0, $kindStruct, "js_ast.SBreak", true, "github.com/evanw/esbuild/internal/js_ast", true, function(Label_) { this.$val = this; if (arguments.length === 0) { - this.Label = ptrType$46.nil; + this.Label = ptrType$47.nil; return; } this.Label = Label_; @@ -139990,7 +141218,7 @@ $packages["github.com/evanw/esbuild/internal/js_ast"] = (function() { SContinue = $newType(0, $kindStruct, "js_ast.SContinue", true, "github.com/evanw/esbuild/internal/js_ast", true, function(Label_) { this.$val = this; if (arguments.length === 0) { - this.Label = ptrType$46.nil; + this.Label = ptrType$47.nil; return; } this.Label = Label_; @@ -140033,8 +141261,8 @@ $packages["github.com/evanw/esbuild/internal/js_ast"] = (function() { Scope = $newType(0, $kindStruct, "js_ast.Scope", true, "github.com/evanw/esbuild/internal/js_ast", true, function(TSNamespace_, Parent_, Children_, Members_, Replaced_, Generated_, UseStrictLoc_, Label_, LabelStmtIsLoop_, ContainsDirectEval_, ForbidArguments_, IsAfterConstLocalPrefix_, StrictMode_, Kind_) { this.$val = this; if (arguments.length === 0) { - this.TSNamespace = ptrType$85.nil; - this.Parent = ptrType$86.nil; + this.TSNamespace = ptrType$86.nil; + this.Parent = ptrType$87.nil; this.Children = sliceType$18.nil; this.Members = false; this.Replaced = sliceType$19.nil; @@ -140123,7 +141351,7 @@ $packages["github.com/evanw/esbuild/internal/js_ast"] = (function() { ModuleTypeData = $newType(0, $kindStruct, "js_ast.ModuleTypeData", true, "github.com/evanw/esbuild/internal/js_ast", true, function(Source_, Range_, Type_) { this.$val = this; if (arguments.length === 0) { - this.Source = ptrType$87.nil; + this.Source = ptrType$88.nil; this.Range = new logger.Range.ptr(new logger.Loc.ptr(0), 0); this.Type = 0; return; @@ -140135,12 +141363,12 @@ $packages["github.com/evanw/esbuild/internal/js_ast"] = (function() { AST = $newType(0, $kindStruct, "js_ast.AST", true, "github.com/evanw/esbuild/internal/js_ast", true, function(ModuleTypeData_, Parts_, Symbols_, ExprComments_, ModuleScope_, CharFreq_, ManifestForYarnPnP_, Hashbang_, Directives_, URLForCSS_, TopLevelSymbolToPartsFromParser_, TSEnums_, ConstValues_, MangledProps_, ReservedProps_, ImportRecords_, NamedImports_, NamedExports_, ExportStarImportRecords_, SourceMapComment_, ExportKeyword_, TopLevelAwaitKeyword_, LiveTopLevelAwaitKeyword_, ExportsRef_, ModuleRef_, WrapperRef_, ApproximateLineCount_, NestedScopeSlotCounts_, HasLazyExport_, UsesExportsRef_, UsesModuleRef_, ExportsKind_) { this.$val = this; if (arguments.length === 0) { - this.ModuleTypeData = new ModuleTypeData.ptr(ptrType$87.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0); + this.ModuleTypeData = new ModuleTypeData.ptr(ptrType$88.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0); this.Parts = sliceType$21.nil; this.Symbols = sliceType$22.nil; this.ExprComments = false; - this.ModuleScope = ptrType$86.nil; - this.CharFreq = ptrType$88.nil; + this.ModuleScope = ptrType$87.nil; + this.CharFreq = ptrType$89.nil; this.ManifestForYarnPnP = new Expr.ptr($ifaceNil, new logger.Loc.ptr(0)); this.Hashbang = ""; this.Directives = sliceType$9.nil; @@ -140502,77 +141730,78 @@ $packages["github.com/evanw/esbuild/internal/js_ast"] = (function() { ptrType$32 = $ptrType(SExpr); ptrType$33 = $ptrType(SReturn); sliceType$9 = $sliceType($String); - ptrType$34 = $ptrType(EClass); - ptrType$35 = $ptrType(SFunction); - ptrType$36 = $ptrType(SEmpty); - ptrType$37 = $ptrType(SImport); - ptrType$38 = $ptrType(SClass); - ptrType$39 = $ptrType(SLocal); - ptrType$40 = $ptrType(STry); - ptrType$41 = $ptrType(SExportFrom); - ptrType$42 = $ptrType(SExportClause); - ptrType$43 = $ptrType(SExportDefault); - ptrType$44 = $ptrType(Finally); - ptrType$45 = $ptrType(EImportIdentifier); + ptrType$34 = $ptrType(TemplatePart); + ptrType$35 = $ptrType(EClass); + ptrType$36 = $ptrType(SFunction); + ptrType$37 = $ptrType(SEmpty); + ptrType$38 = $ptrType(SImport); + ptrType$39 = $ptrType(SClass); + ptrType$40 = $ptrType(SLocal); + ptrType$41 = $ptrType(STry); + ptrType$42 = $ptrType(SExportFrom); + ptrType$43 = $ptrType(SExportClause); + ptrType$44 = $ptrType(SExportDefault); + ptrType$45 = $ptrType(Finally); + ptrType$46 = $ptrType(EImportIdentifier); sliceType$10 = $sliceType(Stmt); funcType = $funcType([ast.Ref], [$Bool], false); - ptrType$46 = $ptrType(ast.LocRef); + ptrType$47 = $ptrType(ast.LocRef); sliceType$11 = $sliceType(Arg); sliceType$12 = $sliceType(ArrayBinding); sliceType$13 = $sliceType(PropertyBinding); - ptrType$47 = $ptrType(ESuper); - ptrType$48 = $ptrType(ENewTarget); - ptrType$49 = $ptrType(EPrivateIdentifier); - ptrType$50 = $ptrType(ENameOfSymbol); - ptrType$51 = $ptrType(EJSXElement); - ptrType$52 = $ptrType(EJSXText); - ptrType$53 = $ptrType(EAwait); - ptrType$54 = $ptrType(EYield); - ptrType$55 = $ptrType(ERequireString); - ptrType$56 = $ptrType(ERequireResolveString); - ptrType$57 = $ptrType(EImportString); - ptrType$58 = $ptrType(EImportCall); - ptrType$59 = $ptrType(SBlock); - ptrType$60 = $ptrType(STypeScript); - ptrType$61 = $ptrType(SComment); - ptrType$62 = $ptrType(SDebugger); - ptrType$63 = $ptrType(SDirective); + ptrType$48 = $ptrType(ESuper); + ptrType$49 = $ptrType(ENewTarget); + ptrType$50 = $ptrType(EPrivateIdentifier); + ptrType$51 = $ptrType(ENameOfSymbol); + ptrType$52 = $ptrType(EJSXElement); + ptrType$53 = $ptrType(EJSXText); + ptrType$54 = $ptrType(EAwait); + ptrType$55 = $ptrType(EYield); + ptrType$56 = $ptrType(ERequireString); + ptrType$57 = $ptrType(ERequireResolveString); + ptrType$58 = $ptrType(EImportString); + ptrType$59 = $ptrType(EImportCall); + ptrType$60 = $ptrType(SBlock); + ptrType$61 = $ptrType(STypeScript); + ptrType$62 = $ptrType(SComment); + ptrType$63 = $ptrType(SDebugger); + ptrType$64 = $ptrType(SDirective); sliceType$14 = $sliceType(ClauseItem); - ptrType$64 = $ptrType(ExportStarAlias); - ptrType$65 = $ptrType(SExportStar); - ptrType$66 = $ptrType(SExportEquals); - ptrType$67 = $ptrType(SLazyExport); + ptrType$65 = $ptrType(ExportStarAlias); + ptrType$66 = $ptrType(SExportStar); + ptrType$67 = $ptrType(SExportEquals); + ptrType$68 = $ptrType(SLazyExport); sliceType$15 = $sliceType(EnumValue); - ptrType$68 = $ptrType(SEnum); - ptrType$69 = $ptrType(SNamespace); - ptrType$70 = $ptrType(SLabel); - ptrType$71 = $ptrType(SIf); - ptrType$72 = $ptrType(SFor); - ptrType$73 = $ptrType(SForIn); - ptrType$74 = $ptrType(SForOf); - ptrType$75 = $ptrType(SDoWhile); - ptrType$76 = $ptrType(SWhile); - ptrType$77 = $ptrType(SWith); - ptrType$78 = $ptrType(Catch); + ptrType$69 = $ptrType(SEnum); + ptrType$70 = $ptrType(SNamespace); + ptrType$71 = $ptrType(SLabel); + ptrType$72 = $ptrType(SIf); + ptrType$73 = $ptrType(SFor); + ptrType$74 = $ptrType(SForIn); + ptrType$75 = $ptrType(SForOf); + ptrType$76 = $ptrType(SDoWhile); + ptrType$77 = $ptrType(SWhile); + ptrType$78 = $ptrType(SWith); + ptrType$79 = $ptrType(Catch); sliceType$16 = $sliceType(Case); - ptrType$79 = $ptrType(SSwitch); - ptrType$80 = $ptrType(sliceType$14); - ptrType$81 = $ptrType(logger.Loc); - ptrType$82 = $ptrType(SThrow); + ptrType$80 = $ptrType(SSwitch); + ptrType$81 = $ptrType(sliceType$14); + ptrType$82 = $ptrType(logger.Loc); + ptrType$83 = $ptrType(SThrow); sliceType$17 = $sliceType(Decl); - ptrType$83 = $ptrType(SBreak); - ptrType$84 = $ptrType(SContinue); - ptrType$85 = $ptrType(TSNamespaceScope); - ptrType$86 = $ptrType(Scope); - sliceType$18 = $sliceType(ptrType$86); + ptrType$84 = $ptrType(SBreak); + ptrType$85 = $ptrType(SContinue); + ptrType$86 = $ptrType(TSNamespaceScope); + ptrType$87 = $ptrType(Scope); + sliceType$18 = $sliceType(ptrType$87); sliceType$19 = $sliceType(ScopeMember); sliceType$20 = $sliceType(ast.Ref); mapType = $mapType($String, ScopeMember); mapType$1 = $mapType($String, ast.Ref); - ptrType$87 = $ptrType(logger.Source); + ptrType$88 = $ptrType(logger.Source); sliceType$21 = $sliceType(Part); sliceType$22 = $sliceType(ast.Symbol); - ptrType$88 = $ptrType(ast.CharFreq); + ptrType$89 = $ptrType(ast.CharFreq); sliceType$23 = $sliceType(ast.ImportRecord); sliceType$24 = $sliceType($Uint32); arrayType = $arrayType($Uint32, 4); @@ -141162,7 +142391,7 @@ $packages["github.com/evanw/esbuild/internal/js_ast"] = (function() { comma = _tuple[0]; ok = _tuple[1]; if (ok && (comma.Op === 36)) { - clone = $clone(comma, EBinary); + clone = $clone((comma === ptrType$16.nil && $throwNilPointerError(), comma), EBinary); Expr.copy(clone.Right, JoinWithLeftAssociativeOp(op, $clone(clone.Right, Expr), $clone(b, Expr))); return new Expr.ptr(clone, $clone(a.Loc, logger.Loc)); } @@ -141421,7 +142650,7 @@ $packages["github.com/evanw/esbuild/internal/js_ast"] = (function() { _i$3++; $s = 38; continue; case 39: - clone$1[0] = $clone(e$6, EArray); + clone$1[0] = $clone((e$6 === ptrType$28.nil && $throwNilPointerError(), e$6), EArray); clone$1[0].Items = items; $s = -1; return new Expr.ptr(clone$1[0], $clone(expr.Loc, logger.Loc)); /* } */ case 37: @@ -141478,7 +142707,7 @@ $packages["github.com/evanw/esbuild/internal/js_ast"] = (function() { _i$6++; $s = 49; continue; case 50: - clone$2[0] = $clone(e$7, EObject); + clone$2[0] = $clone((e$7 === ptrType$29.nil && $throwNilPointerError(), e$7), EObject); clone$2[0].Properties = properties; $s = -1; return new Expr.ptr(clone$2[0], $clone(expr.Loc, logger.Loc)); /* } */ case 48: @@ -141687,7 +142916,7 @@ $packages["github.com/evanw/esbuild/internal/js_ast"] = (function() { if (!target$1.IsAsync) { $s = -1; return s.Value; } else { - clone[0] = $clone(target$1, EArrow); + clone[0] = $clone((target$1 === ptrType$13.nil && $throwNilPointerError(), target$1), EArrow); (x$1 = clone[0].Body.Block.Stmts, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])).Data = new SReturn.ptr($clone(s.Value, Expr)); clone[0].PreferExpr = true; $s = -1; return new Expr.ptr(new ECall.ptr($clone(new Expr.ptr(clone[0], $clone(e$11.Target.Loc, logger.Loc)), Expr), sliceType$5.nil, new logger.Loc.ptr(0), 0, 0, false, false), $clone(expr.Loc, logger.Loc)); @@ -142929,7 +144158,7 @@ $packages["github.com/evanw/esbuild/internal/js_ast"] = (function() { if (parts.$length === 0) { headCooked = $appendSlice($appendSlice(headCooked, str$1.Value), part.TailCooked); } else { - prevPart = (x = parts.$length - 1 >> 0, ((x < 0 || x >= parts.$length) ? ($throwRuntimeError("index out of range"), undefined) : parts.$array[parts.$offset + x])); + prevPart = (x = parts.$length - 1 >> 0, ((x < 0 || x >= parts.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(parts.$array, parts.$offset + x, ptrType$34))); prevPart.TailCooked = $appendSlice($appendSlice(prevPart.TailCooked, str$1.Value), part.TailCooked); } } else { @@ -142975,7 +144204,7 @@ $packages["github.com/evanw/esbuild/internal/js_ast"] = (function() { sideEffects = _tmp$1; ok = _tmp$2; return [isNullOrUndefined, sideEffects, ok]; - } else if ($assertType(_ref, ptrType$29, true)[1] || $assertType(_ref, ptrType$28, true)[1] || $assertType(_ref, ptrType$34, true)[1]) { + } else if ($assertType(_ref, ptrType$29, true)[1] || $assertType(_ref, ptrType$28, true)[1] || $assertType(_ref, ptrType$35, true)[1]) { e$3 = _ref; _tmp$3 = false; _tmp$4 = 0; @@ -143145,7 +144374,7 @@ $packages["github.com/evanw/esbuild/internal/js_ast"] = (function() { sideEffects = _tmp$16; ok = _tmp$17; return [boolean$1, sideEffects, ok]; - } else if ($assertType(_ref, ptrType$29, true)[1] || $assertType(_ref, ptrType$28, true)[1] || $assertType(_ref, ptrType$34, true)[1]) { + } else if ($assertType(_ref, ptrType$29, true)[1] || $assertType(_ref, ptrType$28, true)[1] || $assertType(_ref, ptrType$35, true)[1]) { e$8 = _ref; _tmp$18 = true; _tmp$19 = 0; @@ -143394,24 +144623,24 @@ $packages["github.com/evanw/esbuild/internal/js_ast"] = (function() { /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } stmt = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), Stmt); _ref$1 = stmt.Data; - /* */ if ($assertType(_ref$1, ptrType$35, true)[1] || $assertType(_ref$1, ptrType$36, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref$1, ptrType$37, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref$1, ptrType$38, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref$1, ptrType$36, true)[1] || $assertType(_ref$1, ptrType$37, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref$1, ptrType$38, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref$1, ptrType$39, true)[1]) { $s = 5; continue; } /* */ if ($assertType(_ref$1, ptrType$33, true)[1]) { $s = 6; continue; } /* */ if ($assertType(_ref$1, ptrType$32, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref$1, ptrType$39, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref$1, ptrType$40, true)[1]) { $s = 9; continue; } - /* */ if ($assertType(_ref$1, ptrType$41, true)[1]) { $s = 10; continue; } - /* */ if ($assertType(_ref$1, ptrType$42, true)[1]) { $s = 11; continue; } - /* */ if ($assertType(_ref$1, ptrType$43, true)[1]) { $s = 12; continue; } + /* */ if ($assertType(_ref$1, ptrType$40, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref$1, ptrType$41, true)[1]) { $s = 9; continue; } + /* */ if ($assertType(_ref$1, ptrType$42, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref$1, ptrType$43, true)[1]) { $s = 11; continue; } + /* */ if ($assertType(_ref$1, ptrType$44, true)[1]) { $s = 12; continue; } /* */ $s = 13; continue; - /* if ($assertType(_ref$1, ptrType$35, true)[1] || $assertType(_ref$1, ptrType$36, true)[1]) { */ case 3: + /* if ($assertType(_ref$1, ptrType$36, true)[1] || $assertType(_ref$1, ptrType$37, true)[1]) { */ case 3: s = _ref$1; $s = 14; continue; - /* } else if ($assertType(_ref$1, ptrType$37, true)[1]) { */ case 4: + /* } else if ($assertType(_ref$1, ptrType$38, true)[1]) { */ case 4: s$1 = _ref$1.$val; $s = 14; continue; - /* } else if ($assertType(_ref$1, ptrType$38, true)[1]) { */ case 5: + /* } else if ($assertType(_ref$1, ptrType$39, true)[1]) { */ case 5: s$2 = _ref$1.$val; _r = $clone(ctx, HelperContext).ClassCanBeRemovedIfUnused($clone(s$2.Class, Class)); /* */ $s = 17; case 17: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (!_r) { $s = 15; continue; } @@ -143445,7 +144674,7 @@ $packages["github.com/evanw/esbuild/internal/js_ast"] = (function() { } /* } */ case 24: $s = 14; continue; - /* } else if ($assertType(_ref$1, ptrType$39, true)[1]) { */ case 8: + /* } else if ($assertType(_ref$1, ptrType$40, true)[1]) { */ case 8: s$5 = _ref$1.$val; if (s$5.Kind === 4) { $s = -1; return false; @@ -143517,11 +144746,11 @@ $packages["github.com/evanw/esbuild/internal/js_ast"] = (function() { $s = 26; continue; case 27: $s = 14; continue; - /* } else if ($assertType(_ref$1, ptrType$40, true)[1]) { */ case 9: + /* } else if ($assertType(_ref$1, ptrType$41, true)[1]) { */ case 9: s$6 = _ref$1.$val; _r$5 = $clone(ctx, HelperContext).StmtsCanBeRemovedIfUnused(s$6.Block.Stmts, 0); /* */ $s = 48; case 48: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } if (!_r$5) { _v$3 = true; $s = 47; continue s; } - if (!(!(s$6.Finally === ptrType$44.nil))) { _v$4 = false; $s = 49; continue s; } + if (!(!(s$6.Finally === ptrType$45.nil))) { _v$4 = false; $s = 49; continue s; } _r$6 = $clone(ctx, HelperContext).StmtsCanBeRemovedIfUnused(s$6.Finally.Block.Stmts, 0); /* */ $s = 50; case 50: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _v$4 = !_r$6; case 49: _v$3 = _v$4; case 47: @@ -143531,21 +144760,21 @@ $packages["github.com/evanw/esbuild/internal/js_ast"] = (function() { $s = -1; return false; /* } */ case 46: $s = 14; continue; - /* } else if ($assertType(_ref$1, ptrType$41, true)[1]) { */ case 10: + /* } else if ($assertType(_ref$1, ptrType$42, true)[1]) { */ case 10: s$7 = _ref$1.$val; $s = 14; continue; - /* } else if ($assertType(_ref$1, ptrType$42, true)[1]) { */ case 11: + /* } else if ($assertType(_ref$1, ptrType$43, true)[1]) { */ case 11: s$8 = _ref$1.$val; if (!(((((flags & 1) >>> 0)) === 0))) { $s = -1; return false; } $s = 14; continue; - /* } else if ($assertType(_ref$1, ptrType$43, true)[1]) { */ case 12: + /* } else if ($assertType(_ref$1, ptrType$44, true)[1]) { */ case 12: s$9 = _ref$1.$val; _ref$6 = s$9.Value.Data; /* */ if ($assertType(_ref$6, ptrType$32, true)[1]) { $s = 51; continue; } - /* */ if ($assertType(_ref$6, ptrType$35, true)[1]) { $s = 52; continue; } - /* */ if ($assertType(_ref$6, ptrType$38, true)[1]) { $s = 53; continue; } + /* */ if ($assertType(_ref$6, ptrType$36, true)[1]) { $s = 52; continue; } + /* */ if ($assertType(_ref$6, ptrType$39, true)[1]) { $s = 53; continue; } /* */ $s = 54; continue; /* if ($assertType(_ref$6, ptrType$32, true)[1]) { */ case 51: s2 = _ref$6.$val; @@ -143556,10 +144785,10 @@ $packages["github.com/evanw/esbuild/internal/js_ast"] = (function() { $s = -1; return false; /* } */ case 57: $s = 55; continue; - /* } else if ($assertType(_ref$6, ptrType$35, true)[1]) { */ case 52: + /* } else if ($assertType(_ref$6, ptrType$36, true)[1]) { */ case 52: s2$1 = _ref$6.$val; $s = 55; continue; - /* } else if ($assertType(_ref$6, ptrType$38, true)[1]) { */ case 53: + /* } else if ($assertType(_ref$6, ptrType$39, true)[1]) { */ case 53: s2$2 = _ref$6.$val; _r$8 = $clone(ctx, HelperContext).ClassCanBeRemovedIfUnused($clone(s2$2.Class, Class)); /* */ $s = 61; case 61: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } /* */ if (!_r$8) { $s = 59; continue; } @@ -143678,9 +144907,9 @@ $packages["github.com/evanw/esbuild/internal/js_ast"] = (function() { /* */ if ($assertType(_ref, ptrType$5, true)[1]) { $s = 2; continue; } /* */ if ($assertType(_ref, ptrType$6, true)[1] || $assertType(_ref, ptrType$7, true)[1] || $assertType(_ref, ptrType$24, true)[1] || $assertType(_ref, ptrType$8, true)[1] || $assertType(_ref, ptrType$9, true)[1] || $assertType(_ref, ptrType$10, true)[1] || $assertType(_ref, ptrType$11, true)[1] || $assertType(_ref, ptrType$25, true)[1] || $assertType(_ref, ptrType$14, true)[1] || $assertType(_ref, ptrType$12, true)[1] || $assertType(_ref, ptrType$13, true)[1] || $assertType(_ref, ptrType$26, true)[1]) { $s = 3; continue; } /* */ if ($assertType(_ref, ptrType$1, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$34, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$35, true)[1]) { $s = 5; continue; } /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType$45, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref, ptrType$46, true)[1]) { $s = 7; continue; } /* */ if ($assertType(_ref, ptrType$18, true)[1]) { $s = 8; continue; } /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 9; continue; } /* */ if ($assertType(_ref, ptrType$29, true)[1]) { $s = 10; continue; } @@ -143704,7 +144933,7 @@ $packages["github.com/evanw/esbuild/internal/js_ast"] = (function() { /* } else if ($assertType(_ref, ptrType$1, true)[1]) { */ case 4: e$3 = _ref.$val; $s = -1; return e$3.CanBeRemovedIfUnused; - /* } else if ($assertType(_ref, ptrType$34, true)[1]) { */ case 5: + /* } else if ($assertType(_ref, ptrType$35, true)[1]) { */ case 5: e$4 = _ref.$val; _r$1 = $clone(ctx, HelperContext).ClassCanBeRemovedIfUnused($clone(e$4.Class, Class)); /* */ $s = 19; case 19: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $24r$1 = _r$1; @@ -143723,7 +144952,7 @@ $packages["github.com/evanw/esbuild/internal/js_ast"] = (function() { $s = -1; return true; /* } */ case 22: $s = 16; continue; - /* } else if ($assertType(_ref, ptrType$45, true)[1]) { */ case 7: + /* } else if ($assertType(_ref, ptrType$46, true)[1]) { */ case 7: e$6 = _ref.$val; $s = -1; return true; /* } else if ($assertType(_ref, ptrType$18, true)[1]) { */ case 8: @@ -144136,7 +145365,7 @@ $packages["github.com/evanw/esbuild/internal/js_ast"] = (function() { i = _i$1; p = $clone(((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]), Property); if ((p.Kind === 2) || (p.Kind === 3)) { - clone[0] = $clone(v$1, EObject); + clone[0] = $clone((v$1 === ptrType$29.nil && $throwNilPointerError(), v$1), EObject); clone[0].Properties = $subslice(v$1.Properties, i); property.ValueOrNil.Data = clone[0]; result = $append(result, property); @@ -144147,7 +145376,7 @@ $packages["github.com/evanw/esbuild/internal/js_ast"] = (function() { str = _tuple[0]; ok = _tuple[1]; if (ok && helpers.UTF16EqualsString(str.Value, "__proto__")) { - clone$1[0] = $clone(v$1, EObject); + clone$1[0] = $clone((v$1 === ptrType$29.nil && $throwNilPointerError(), v$1), EObject); clone$1[0].Properties = $subslice(v$1.Properties, i); property.ValueOrNil.Data = clone$1[0]; result = $append(result, property); @@ -144326,7 +145555,7 @@ $packages["github.com/evanw/esbuild/internal/js_ast"] = (function() { /* */ $s = 23; continue; /* if (yesIsSpread && noIsSpread) { */ case 22: temp[0] = new EIf.ptr($clone(test, Expr), $clone(yesSpread.Value, Expr), $clone(noSpread.Value, Expr)); - clone[0] = $clone(y$1, ECall); + clone[0] = $clone((y$1 === ptrType$3.nil && $throwNilPointerError(), y$1), ECall); clone[0].Args = $appendSlice(new sliceType$5([]), clone[0].Args); _r$5 = $clone(ctx, HelperContext).MangleIfExpr($clone(loc, logger.Loc), temp[0], unsupportedFeatures); /* */ $s = 24; case 24: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } Expr.copy((x$4 = clone[0].Args, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])), new Expr.ptr(new ESpread.ptr($clone(_r$5, Expr)), $clone(loc, logger.Loc))); @@ -144336,7 +145565,7 @@ $packages["github.com/evanw/esbuild/internal/js_ast"] = (function() { /* */ $s = 26; continue; /* if (!yesIsSpread && !noIsSpread) { */ case 25: temp$1[0] = new EIf.ptr($clone(test, Expr), $clone((x$5 = y$1.Args, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0])), Expr), $clone((x$6 = n$1.Args, (0 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + 0])), Expr)); - clone$1[0] = $clone(y$1, ECall); + clone$1[0] = $clone((y$1 === ptrType$3.nil && $throwNilPointerError(), y$1), ECall); clone$1[0].Args = $appendSlice(new sliceType$5([]), clone$1[0].Args); _r$6 = $clone(ctx, HelperContext).MangleIfExpr($clone(loc, logger.Loc), temp$1[0], unsupportedFeatures); /* */ $s = 27; case 27: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } Expr.copy((x$7 = clone$1[0].Args, (0 >= x$7.$length ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + 0])), _r$6); @@ -144705,11 +145934,11 @@ $packages["github.com/evanw/esbuild/internal/js_ast"] = (function() { ptrType$16.methods = [{prop: "isExpr", name: "isExpr", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; ptrType$8.methods = [{prop: "isExpr", name: "isExpr", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; ptrType$24.methods = [{prop: "isExpr", name: "isExpr", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; - ptrType$47.methods = [{prop: "isExpr", name: "isExpr", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; + ptrType$48.methods = [{prop: "isExpr", name: "isExpr", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; ptrType$6.methods = [{prop: "isExpr", name: "isExpr", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; ptrType$7.methods = [{prop: "isExpr", name: "isExpr", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; ptrType$25.methods = [{prop: "isExpr", name: "isExpr", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; - ptrType$48.methods = [{prop: "isExpr", name: "isExpr", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; + ptrType$49.methods = [{prop: "isExpr", name: "isExpr", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; ptrType$26.methods = [{prop: "isExpr", name: "isExpr", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; ptrType$30.methods = [{prop: "isExpr", name: "isExpr", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; ptrType$3.methods = [{prop: "isExpr", name: "isExpr", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}, {prop: "HasSameFlagsAs", name: "HasSameFlagsAs", pkg: "", typ: $funcType([ptrType$3], [$Bool], false)}]; @@ -144717,13 +145946,13 @@ $packages["github.com/evanw/esbuild/internal/js_ast"] = (function() { ptrType$2.methods = [{prop: "isExpr", name: "isExpr", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}, {prop: "HasSameFlagsAs", name: "HasSameFlagsAs", pkg: "", typ: $funcType([ptrType$2], [$Bool], false)}]; ptrType$13.methods = [{prop: "isExpr", name: "isExpr", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; ptrType$12.methods = [{prop: "isExpr", name: "isExpr", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; - ptrType$34.methods = [{prop: "isExpr", name: "isExpr", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; + ptrType$35.methods = [{prop: "isExpr", name: "isExpr", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; ptrType$27.methods = [{prop: "isExpr", name: "isExpr", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; - ptrType$45.methods = [{prop: "isExpr", name: "isExpr", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; - ptrType$49.methods = [{prop: "isExpr", name: "isExpr", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; + ptrType$46.methods = [{prop: "isExpr", name: "isExpr", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; ptrType$50.methods = [{prop: "isExpr", name: "isExpr", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; ptrType$51.methods = [{prop: "isExpr", name: "isExpr", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; ptrType$52.methods = [{prop: "isExpr", name: "isExpr", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; + ptrType$53.methods = [{prop: "isExpr", name: "isExpr", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; ptrType$9.methods = [{prop: "isExpr", name: "isExpr", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; ptrType$10.methods = [{prop: "isExpr", name: "isExpr", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; ptrType$29.methods = [{prop: "isExpr", name: "isExpr", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; @@ -144734,31 +145963,30 @@ $packages["github.com/evanw/esbuild/internal/js_ast"] = (function() { ptrType$5.methods = [{prop: "isExpr", name: "isExpr", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; AnnotationFlags.methods = [{prop: "Has", name: "Has", pkg: "", typ: $funcType([AnnotationFlags], [$Bool], false)}]; ptrType$4.methods = [{prop: "isExpr", name: "isExpr", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; - ptrType$53.methods = [{prop: "isExpr", name: "isExpr", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; ptrType$54.methods = [{prop: "isExpr", name: "isExpr", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; - ptrType$18.methods = [{prop: "isExpr", name: "isExpr", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; ptrType$55.methods = [{prop: "isExpr", name: "isExpr", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; + ptrType$18.methods = [{prop: "isExpr", name: "isExpr", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; ptrType$56.methods = [{prop: "isExpr", name: "isExpr", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; ptrType$57.methods = [{prop: "isExpr", name: "isExpr", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; ptrType$58.methods = [{prop: "isExpr", name: "isExpr", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; - ptrType$59.methods = [{prop: "isStmt", name: "isStmt", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; - ptrType$36.methods = [{prop: "isStmt", name: "isStmt", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; + ptrType$59.methods = [{prop: "isExpr", name: "isExpr", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; ptrType$60.methods = [{prop: "isStmt", name: "isStmt", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; + ptrType$37.methods = [{prop: "isStmt", name: "isStmt", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; ptrType$61.methods = [{prop: "isStmt", name: "isStmt", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; ptrType$62.methods = [{prop: "isStmt", name: "isStmt", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; ptrType$63.methods = [{prop: "isStmt", name: "isStmt", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; - ptrType$42.methods = [{prop: "isStmt", name: "isStmt", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; - ptrType$41.methods = [{prop: "isStmt", name: "isStmt", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; + ptrType$64.methods = [{prop: "isStmt", name: "isStmt", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; ptrType$43.methods = [{prop: "isStmt", name: "isStmt", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; - ptrType$65.methods = [{prop: "isStmt", name: "isStmt", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; + ptrType$42.methods = [{prop: "isStmt", name: "isStmt", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; + ptrType$44.methods = [{prop: "isStmt", name: "isStmt", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; ptrType$66.methods = [{prop: "isStmt", name: "isStmt", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; ptrType$67.methods = [{prop: "isStmt", name: "isStmt", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; - ptrType$32.methods = [{prop: "isStmt", name: "isStmt", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; ptrType$68.methods = [{prop: "isStmt", name: "isStmt", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; + ptrType$32.methods = [{prop: "isStmt", name: "isStmt", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; ptrType$69.methods = [{prop: "isStmt", name: "isStmt", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; - ptrType$35.methods = [{prop: "isStmt", name: "isStmt", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; - ptrType$38.methods = [{prop: "isStmt", name: "isStmt", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; ptrType$70.methods = [{prop: "isStmt", name: "isStmt", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; + ptrType$36.methods = [{prop: "isStmt", name: "isStmt", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; + ptrType$39.methods = [{prop: "isStmt", name: "isStmt", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; ptrType$71.methods = [{prop: "isStmt", name: "isStmt", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; ptrType$72.methods = [{prop: "isStmt", name: "isStmt", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; ptrType$73.methods = [{prop: "isStmt", name: "isStmt", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; @@ -144766,17 +145994,18 @@ $packages["github.com/evanw/esbuild/internal/js_ast"] = (function() { ptrType$75.methods = [{prop: "isStmt", name: "isStmt", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; ptrType$76.methods = [{prop: "isStmt", name: "isStmt", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; ptrType$77.methods = [{prop: "isStmt", name: "isStmt", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; - ptrType$40.methods = [{prop: "isStmt", name: "isStmt", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; - ptrType$79.methods = [{prop: "isStmt", name: "isStmt", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; - ptrType$37.methods = [{prop: "isStmt", name: "isStmt", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; + ptrType$78.methods = [{prop: "isStmt", name: "isStmt", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; + ptrType$41.methods = [{prop: "isStmt", name: "isStmt", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; + ptrType$80.methods = [{prop: "isStmt", name: "isStmt", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; + ptrType$38.methods = [{prop: "isStmt", name: "isStmt", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; ptrType$33.methods = [{prop: "isStmt", name: "isStmt", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; - ptrType$82.methods = [{prop: "isStmt", name: "isStmt", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; - LocalKind.methods = [{prop: "IsUsing", name: "IsUsing", pkg: "", typ: $funcType([], [$Bool], false)}]; - ptrType$39.methods = [{prop: "isStmt", name: "isStmt", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; ptrType$83.methods = [{prop: "isStmt", name: "isStmt", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; + LocalKind.methods = [{prop: "IsUsing", name: "IsUsing", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$40.methods = [{prop: "isStmt", name: "isStmt", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; ptrType$84.methods = [{prop: "isStmt", name: "isStmt", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; + ptrType$85.methods = [{prop: "isStmt", name: "isStmt", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; ScopeKind.methods = [{prop: "StopsHoisting", name: "StopsHoisting", pkg: "", typ: $funcType([], [$Bool], false)}]; - ptrType$86.methods = [{prop: "RecursiveSetStrictMode", name: "RecursiveSetStrictMode", pkg: "", typ: $funcType([StrictModeKind], [], false)}]; + ptrType$87.methods = [{prop: "RecursiveSetStrictMode", name: "RecursiveSetStrictMode", pkg: "", typ: $funcType([StrictModeKind], [], false)}]; TSNamespaceMemberProperty.methods = [{prop: "isTSNamespaceMember", name: "isTSNamespaceMember", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; TSNamespaceMemberNamespace.methods = [{prop: "isTSNamespaceMember", name: "isTSNamespaceMember", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; TSNamespaceMemberEnumNumber.methods = [{prop: "isTSNamespaceMember", name: "isTSNamespaceMember", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]; @@ -144790,9 +146019,9 @@ $packages["github.com/evanw/esbuild/internal/js_ast"] = (function() { Property.init("", [{prop: "ClassStaticBlock", name: "ClassStaticBlock", embedded: false, exported: true, typ: ptrType$23, tag: ""}, {prop: "Key", name: "Key", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "ValueOrNil", name: "ValueOrNil", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "InitializerOrNil", name: "InitializerOrNil", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Decorators", name: "Decorators", embedded: false, exported: true, typ: sliceType$7, tag: ""}, {prop: "Loc", name: "Loc", embedded: false, exported: true, typ: logger.Loc, tag: ""}, {prop: "CloseBracketLoc", name: "CloseBracketLoc", embedded: false, exported: true, typ: logger.Loc, tag: ""}, {prop: "Kind", name: "Kind", embedded: false, exported: true, typ: PropertyKind, tag: ""}, {prop: "Flags", name: "Flags", embedded: false, exported: true, typ: PropertyFlags, tag: ""}]); PropertyBinding.init("", [{prop: "Key", name: "Key", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Value", name: "Value", embedded: false, exported: true, typ: Binding, tag: ""}, {prop: "DefaultValueOrNil", name: "DefaultValueOrNil", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Loc", name: "Loc", embedded: false, exported: true, typ: logger.Loc, tag: ""}, {prop: "CloseBracketLoc", name: "CloseBracketLoc", embedded: false, exported: true, typ: logger.Loc, tag: ""}, {prop: "IsComputed", name: "IsComputed", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "IsSpread", name: "IsSpread", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "PreferQuotedKey", name: "PreferQuotedKey", embedded: false, exported: true, typ: $Bool, tag: ""}]); Arg.init("", [{prop: "Binding", name: "Binding", embedded: false, exported: true, typ: Binding, tag: ""}, {prop: "DefaultOrNil", name: "DefaultOrNil", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Decorators", name: "Decorators", embedded: false, exported: true, typ: sliceType$7, tag: ""}, {prop: "IsTypeScriptCtorField", name: "IsTypeScriptCtorField", embedded: false, exported: true, typ: $Bool, tag: ""}]); - Fn.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: ptrType$46, tag: ""}, {prop: "Args", name: "Args", embedded: false, exported: true, typ: sliceType$11, tag: ""}, {prop: "Body", name: "Body", embedded: false, exported: true, typ: FnBody, tag: ""}, {prop: "ArgumentsRef", name: "ArgumentsRef", embedded: false, exported: true, typ: ast.Ref, tag: ""}, {prop: "OpenParenLoc", name: "OpenParenLoc", embedded: false, exported: true, typ: logger.Loc, tag: ""}, {prop: "IsAsync", name: "IsAsync", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "IsGenerator", name: "IsGenerator", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasRestArg", name: "HasRestArg", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasIfScope", name: "HasIfScope", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasNoSideEffectsComment", name: "HasNoSideEffectsComment", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "IsUniqueFormalParameters", name: "IsUniqueFormalParameters", embedded: false, exported: true, typ: $Bool, tag: ""}]); + Fn.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: ptrType$47, tag: ""}, {prop: "Args", name: "Args", embedded: false, exported: true, typ: sliceType$11, tag: ""}, {prop: "Body", name: "Body", embedded: false, exported: true, typ: FnBody, tag: ""}, {prop: "ArgumentsRef", name: "ArgumentsRef", embedded: false, exported: true, typ: ast.Ref, tag: ""}, {prop: "OpenParenLoc", name: "OpenParenLoc", embedded: false, exported: true, typ: logger.Loc, tag: ""}, {prop: "IsAsync", name: "IsAsync", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "IsGenerator", name: "IsGenerator", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasRestArg", name: "HasRestArg", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasIfScope", name: "HasIfScope", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HasNoSideEffectsComment", name: "HasNoSideEffectsComment", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "IsUniqueFormalParameters", name: "IsUniqueFormalParameters", embedded: false, exported: true, typ: $Bool, tag: ""}]); FnBody.init("", [{prop: "Block", name: "Block", embedded: false, exported: true, typ: SBlock, tag: ""}, {prop: "Loc", name: "Loc", embedded: false, exported: true, typ: logger.Loc, tag: ""}]); - Class.init("", [{prop: "Decorators", name: "Decorators", embedded: false, exported: true, typ: sliceType$7, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: ptrType$46, tag: ""}, {prop: "ExtendsOrNil", name: "ExtendsOrNil", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Properties", name: "Properties", embedded: false, exported: true, typ: sliceType$6, tag: ""}, {prop: "ClassKeyword", name: "ClassKeyword", embedded: false, exported: true, typ: logger.Range, tag: ""}, {prop: "BodyLoc", name: "BodyLoc", embedded: false, exported: true, typ: logger.Loc, tag: ""}, {prop: "CloseBraceLoc", name: "CloseBraceLoc", embedded: false, exported: true, typ: logger.Loc, tag: ""}, {prop: "ShouldLowerStandardDecorators", name: "ShouldLowerStandardDecorators", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "UseDefineForClassFields", name: "UseDefineForClassFields", embedded: false, exported: true, typ: $Bool, tag: ""}]); + Class.init("", [{prop: "Decorators", name: "Decorators", embedded: false, exported: true, typ: sliceType$7, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: ptrType$47, tag: ""}, {prop: "ExtendsOrNil", name: "ExtendsOrNil", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Properties", name: "Properties", embedded: false, exported: true, typ: sliceType$6, tag: ""}, {prop: "ClassKeyword", name: "ClassKeyword", embedded: false, exported: true, typ: logger.Range, tag: ""}, {prop: "BodyLoc", name: "BodyLoc", embedded: false, exported: true, typ: logger.Loc, tag: ""}, {prop: "CloseBraceLoc", name: "CloseBraceLoc", embedded: false, exported: true, typ: logger.Loc, tag: ""}, {prop: "ShouldLowerStandardDecorators", name: "ShouldLowerStandardDecorators", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "UseDefineForClassFields", name: "UseDefineForClassFields", embedded: false, exported: true, typ: $Bool, tag: ""}]); ArrayBinding.init("", [{prop: "Binding", name: "Binding", embedded: false, exported: true, typ: Binding, tag: ""}, {prop: "DefaultValueOrNil", name: "DefaultValueOrNil", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Loc", name: "Loc", embedded: false, exported: true, typ: logger.Loc, tag: ""}]); Binding.init("", [{prop: "Data", name: "Data", embedded: false, exported: true, typ: B, tag: ""}, {prop: "Loc", name: "Loc", embedded: false, exported: true, typ: logger.Loc, tag: ""}]); B.init([{prop: "isBinding", name: "isBinding", pkg: "github.com/evanw/esbuild/internal/js_ast", typ: $funcType([], [], false)}]); @@ -144855,7 +146084,7 @@ $packages["github.com/evanw/esbuild/internal/js_ast"] = (function() { SExportFrom.init("", [{prop: "Items", name: "Items", embedded: false, exported: true, typ: sliceType$14, tag: ""}, {prop: "NamespaceRef", name: "NamespaceRef", embedded: false, exported: true, typ: ast.Ref, tag: ""}, {prop: "ImportRecordIndex", name: "ImportRecordIndex", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "IsSingleLine", name: "IsSingleLine", embedded: false, exported: true, typ: $Bool, tag: ""}]); SExportDefault.init("", [{prop: "Value", name: "Value", embedded: false, exported: true, typ: Stmt, tag: ""}, {prop: "DefaultName", name: "DefaultName", embedded: false, exported: true, typ: ast.LocRef, tag: ""}]); ExportStarAlias.init("", [{prop: "OriginalName", name: "OriginalName", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Loc", name: "Loc", embedded: false, exported: true, typ: logger.Loc, tag: ""}]); - SExportStar.init("", [{prop: "Alias", name: "Alias", embedded: false, exported: true, typ: ptrType$64, tag: ""}, {prop: "NamespaceRef", name: "NamespaceRef", embedded: false, exported: true, typ: ast.Ref, tag: ""}, {prop: "ImportRecordIndex", name: "ImportRecordIndex", embedded: false, exported: true, typ: $Uint32, tag: ""}]); + SExportStar.init("", [{prop: "Alias", name: "Alias", embedded: false, exported: true, typ: ptrType$65, tag: ""}, {prop: "NamespaceRef", name: "NamespaceRef", embedded: false, exported: true, typ: ast.Ref, tag: ""}, {prop: "ImportRecordIndex", name: "ImportRecordIndex", embedded: false, exported: true, typ: $Uint32, tag: ""}]); SExportEquals.init("", [{prop: "Value", name: "Value", embedded: false, exported: true, typ: Expr, tag: ""}]); SLazyExport.init("", [{prop: "Value", name: "Value", embedded: false, exported: true, typ: Expr, tag: ""}]); SExpr.init("", [{prop: "Value", name: "Value", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "IsFromClassOrFnThatCanBeRemovedIfUnused", name: "IsFromClassOrFnThatCanBeRemovedIfUnused", embedded: false, exported: true, typ: $Bool, tag: ""}]); @@ -144874,19 +146103,19 @@ $packages["github.com/evanw/esbuild/internal/js_ast"] = (function() { SWith.init("", [{prop: "Value", name: "Value", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Body", name: "Body", embedded: false, exported: true, typ: Stmt, tag: ""}, {prop: "BodyLoc", name: "BodyLoc", embedded: false, exported: true, typ: logger.Loc, tag: ""}, {prop: "IsSingleLineBody", name: "IsSingleLineBody", embedded: false, exported: true, typ: $Bool, tag: ""}]); Catch.init("", [{prop: "BindingOrNil", name: "BindingOrNil", embedded: false, exported: true, typ: Binding, tag: ""}, {prop: "Block", name: "Block", embedded: false, exported: true, typ: SBlock, tag: ""}, {prop: "Loc", name: "Loc", embedded: false, exported: true, typ: logger.Loc, tag: ""}, {prop: "BlockLoc", name: "BlockLoc", embedded: false, exported: true, typ: logger.Loc, tag: ""}]); Finally.init("", [{prop: "Block", name: "Block", embedded: false, exported: true, typ: SBlock, tag: ""}, {prop: "Loc", name: "Loc", embedded: false, exported: true, typ: logger.Loc, tag: ""}]); - STry.init("", [{prop: "Catch", name: "Catch", embedded: false, exported: true, typ: ptrType$78, tag: ""}, {prop: "Finally", name: "Finally", embedded: false, exported: true, typ: ptrType$44, tag: ""}, {prop: "Block", name: "Block", embedded: false, exported: true, typ: SBlock, tag: ""}, {prop: "BlockLoc", name: "BlockLoc", embedded: false, exported: true, typ: logger.Loc, tag: ""}]); + STry.init("", [{prop: "Catch", name: "Catch", embedded: false, exported: true, typ: ptrType$79, tag: ""}, {prop: "Finally", name: "Finally", embedded: false, exported: true, typ: ptrType$45, tag: ""}, {prop: "Block", name: "Block", embedded: false, exported: true, typ: SBlock, tag: ""}, {prop: "BlockLoc", name: "BlockLoc", embedded: false, exported: true, typ: logger.Loc, tag: ""}]); Case.init("", [{prop: "ValueOrNil", name: "ValueOrNil", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Body", name: "Body", embedded: false, exported: true, typ: sliceType$10, tag: ""}, {prop: "Loc", name: "Loc", embedded: false, exported: true, typ: logger.Loc, tag: ""}]); SSwitch.init("", [{prop: "Test", name: "Test", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Cases", name: "Cases", embedded: false, exported: true, typ: sliceType$16, tag: ""}, {prop: "BodyLoc", name: "BodyLoc", embedded: false, exported: true, typ: logger.Loc, tag: ""}, {prop: "CloseBraceLoc", name: "CloseBraceLoc", embedded: false, exported: true, typ: logger.Loc, tag: ""}]); - SImport.init("", [{prop: "DefaultName", name: "DefaultName", embedded: false, exported: true, typ: ptrType$46, tag: ""}, {prop: "Items", name: "Items", embedded: false, exported: true, typ: ptrType$80, tag: ""}, {prop: "StarNameLoc", name: "StarNameLoc", embedded: false, exported: true, typ: ptrType$81, tag: ""}, {prop: "NamespaceRef", name: "NamespaceRef", embedded: false, exported: true, typ: ast.Ref, tag: ""}, {prop: "ImportRecordIndex", name: "ImportRecordIndex", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "IsSingleLine", name: "IsSingleLine", embedded: false, exported: true, typ: $Bool, tag: ""}]); + SImport.init("", [{prop: "DefaultName", name: "DefaultName", embedded: false, exported: true, typ: ptrType$47, tag: ""}, {prop: "Items", name: "Items", embedded: false, exported: true, typ: ptrType$81, tag: ""}, {prop: "StarNameLoc", name: "StarNameLoc", embedded: false, exported: true, typ: ptrType$82, tag: ""}, {prop: "NamespaceRef", name: "NamespaceRef", embedded: false, exported: true, typ: ast.Ref, tag: ""}, {prop: "ImportRecordIndex", name: "ImportRecordIndex", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "IsSingleLine", name: "IsSingleLine", embedded: false, exported: true, typ: $Bool, tag: ""}]); SReturn.init("", [{prop: "ValueOrNil", name: "ValueOrNil", embedded: false, exported: true, typ: Expr, tag: ""}]); SThrow.init("", [{prop: "Value", name: "Value", embedded: false, exported: true, typ: Expr, tag: ""}]); SLocal.init("", [{prop: "Decls", name: "Decls", embedded: false, exported: true, typ: sliceType$17, tag: ""}, {prop: "Kind", name: "Kind", embedded: false, exported: true, typ: LocalKind, tag: ""}, {prop: "IsExport", name: "IsExport", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "WasTSImportEquals", name: "WasTSImportEquals", embedded: false, exported: true, typ: $Bool, tag: ""}]); - SBreak.init("", [{prop: "Label", name: "Label", embedded: false, exported: true, typ: ptrType$46, tag: ""}]); - SContinue.init("", [{prop: "Label", name: "Label", embedded: false, exported: true, typ: ptrType$46, tag: ""}]); + SBreak.init("", [{prop: "Label", name: "Label", embedded: false, exported: true, typ: ptrType$47, tag: ""}]); + SContinue.init("", [{prop: "Label", name: "Label", embedded: false, exported: true, typ: ptrType$47, tag: ""}]); ClauseItem.init("", [{prop: "Alias", name: "Alias", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "OriginalName", name: "OriginalName", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "AliasLoc", name: "AliasLoc", embedded: false, exported: true, typ: logger.Loc, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: ast.LocRef, tag: ""}]); Decl.init("", [{prop: "Binding", name: "Binding", embedded: false, exported: true, typ: Binding, tag: ""}, {prop: "ValueOrNil", name: "ValueOrNil", embedded: false, exported: true, typ: Expr, tag: ""}]); ScopeMember.init("", [{prop: "Ref", name: "Ref", embedded: false, exported: true, typ: ast.Ref, tag: ""}, {prop: "Loc", name: "Loc", embedded: false, exported: true, typ: logger.Loc, tag: ""}]); - Scope.init("", [{prop: "TSNamespace", name: "TSNamespace", embedded: false, exported: true, typ: ptrType$85, tag: ""}, {prop: "Parent", name: "Parent", embedded: false, exported: true, typ: ptrType$86, tag: ""}, {prop: "Children", name: "Children", embedded: false, exported: true, typ: sliceType$18, tag: ""}, {prop: "Members", name: "Members", embedded: false, exported: true, typ: mapType, tag: ""}, {prop: "Replaced", name: "Replaced", embedded: false, exported: true, typ: sliceType$19, tag: ""}, {prop: "Generated", name: "Generated", embedded: false, exported: true, typ: sliceType$20, tag: ""}, {prop: "UseStrictLoc", name: "UseStrictLoc", embedded: false, exported: true, typ: logger.Loc, tag: ""}, {prop: "Label", name: "Label", embedded: false, exported: true, typ: ast.LocRef, tag: ""}, {prop: "LabelStmtIsLoop", name: "LabelStmtIsLoop", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "ContainsDirectEval", name: "ContainsDirectEval", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "ForbidArguments", name: "ForbidArguments", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "IsAfterConstLocalPrefix", name: "IsAfterConstLocalPrefix", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "StrictMode", name: "StrictMode", embedded: false, exported: true, typ: StrictModeKind, tag: ""}, {prop: "Kind", name: "Kind", embedded: false, exported: true, typ: ScopeKind, tag: ""}]); + Scope.init("", [{prop: "TSNamespace", name: "TSNamespace", embedded: false, exported: true, typ: ptrType$86, tag: ""}, {prop: "Parent", name: "Parent", embedded: false, exported: true, typ: ptrType$87, tag: ""}, {prop: "Children", name: "Children", embedded: false, exported: true, typ: sliceType$18, tag: ""}, {prop: "Members", name: "Members", embedded: false, exported: true, typ: mapType, tag: ""}, {prop: "Replaced", name: "Replaced", embedded: false, exported: true, typ: sliceType$19, tag: ""}, {prop: "Generated", name: "Generated", embedded: false, exported: true, typ: sliceType$20, tag: ""}, {prop: "UseStrictLoc", name: "UseStrictLoc", embedded: false, exported: true, typ: logger.Loc, tag: ""}, {prop: "Label", name: "Label", embedded: false, exported: true, typ: ast.LocRef, tag: ""}, {prop: "LabelStmtIsLoop", name: "LabelStmtIsLoop", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "ContainsDirectEval", name: "ContainsDirectEval", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "ForbidArguments", name: "ForbidArguments", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "IsAfterConstLocalPrefix", name: "IsAfterConstLocalPrefix", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "StrictMode", name: "StrictMode", embedded: false, exported: true, typ: StrictModeKind, tag: ""}, {prop: "Kind", name: "Kind", embedded: false, exported: true, typ: ScopeKind, tag: ""}]); TSNamespaceScope.init("", [{prop: "ExportedMembers", name: "ExportedMembers", embedded: false, exported: true, typ: TSNamespaceMembers, tag: ""}, {prop: "LazilyGeneratedProperyAccesses", name: "LazilyGeneratedProperyAccesses", embedded: false, exported: true, typ: mapType$1, tag: ""}, {prop: "ArgRef", name: "ArgRef", embedded: false, exported: true, typ: ast.Ref, tag: ""}, {prop: "IsEnumScope", name: "IsEnumScope", embedded: false, exported: true, typ: $Bool, tag: ""}]); TSNamespaceMembers.init($String, TSNamespaceMember); TSNamespaceMember.init("", [{prop: "Data", name: "Data", embedded: false, exported: true, typ: TSNamespaceMemberData, tag: ""}, {prop: "Loc", name: "Loc", embedded: false, exported: true, typ: logger.Loc, tag: ""}, {prop: "IsEnumValue", name: "IsEnumValue", embedded: false, exported: true, typ: $Bool, tag: ""}]); @@ -144895,8 +146124,8 @@ $packages["github.com/evanw/esbuild/internal/js_ast"] = (function() { TSNamespaceMemberNamespace.init("", [{prop: "ExportedMembers", name: "ExportedMembers", embedded: false, exported: true, typ: TSNamespaceMembers, tag: ""}]); TSNamespaceMemberEnumNumber.init("", [{prop: "Value", name: "Value", embedded: false, exported: true, typ: $Float64, tag: ""}]); TSNamespaceMemberEnumString.init("", [{prop: "Value", name: "Value", embedded: false, exported: true, typ: sliceType$4, tag: ""}]); - ModuleTypeData.init("", [{prop: "Source", name: "Source", embedded: false, exported: true, typ: ptrType$87, tag: ""}, {prop: "Range", name: "Range", embedded: false, exported: true, typ: logger.Range, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: ModuleType, tag: ""}]); - AST.init("", [{prop: "ModuleTypeData", name: "ModuleTypeData", embedded: false, exported: true, typ: ModuleTypeData, tag: ""}, {prop: "Parts", name: "Parts", embedded: false, exported: true, typ: sliceType$21, tag: ""}, {prop: "Symbols", name: "Symbols", embedded: false, exported: true, typ: sliceType$22, tag: ""}, {prop: "ExprComments", name: "ExprComments", embedded: false, exported: true, typ: mapType$2, tag: ""}, {prop: "ModuleScope", name: "ModuleScope", embedded: false, exported: true, typ: ptrType$86, tag: ""}, {prop: "CharFreq", name: "CharFreq", embedded: false, exported: true, typ: ptrType$88, tag: ""}, {prop: "ManifestForYarnPnP", name: "ManifestForYarnPnP", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Hashbang", name: "Hashbang", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Directives", name: "Directives", embedded: false, exported: true, typ: sliceType$9, tag: ""}, {prop: "URLForCSS", name: "URLForCSS", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "TopLevelSymbolToPartsFromParser", name: "TopLevelSymbolToPartsFromParser", embedded: false, exported: true, typ: mapType$3, tag: ""}, {prop: "TSEnums", name: "TSEnums", embedded: false, exported: true, typ: mapType$5, tag: ""}, {prop: "ConstValues", name: "ConstValues", embedded: false, exported: true, typ: mapType$6, tag: ""}, {prop: "MangledProps", name: "MangledProps", embedded: false, exported: true, typ: mapType$1, tag: ""}, {prop: "ReservedProps", name: "ReservedProps", embedded: false, exported: true, typ: mapType$7, tag: ""}, {prop: "ImportRecords", name: "ImportRecords", embedded: false, exported: true, typ: sliceType$23, tag: ""}, {prop: "NamedImports", name: "NamedImports", embedded: false, exported: true, typ: mapType$8, tag: ""}, {prop: "NamedExports", name: "NamedExports", embedded: false, exported: true, typ: mapType$9, tag: ""}, {prop: "ExportStarImportRecords", name: "ExportStarImportRecords", embedded: false, exported: true, typ: sliceType$24, tag: ""}, {prop: "SourceMapComment", name: "SourceMapComment", embedded: false, exported: true, typ: logger.Span, tag: ""}, {prop: "ExportKeyword", name: "ExportKeyword", embedded: false, exported: true, typ: logger.Range, tag: ""}, {prop: "TopLevelAwaitKeyword", name: "TopLevelAwaitKeyword", embedded: false, exported: true, typ: logger.Range, tag: ""}, {prop: "LiveTopLevelAwaitKeyword", name: "LiveTopLevelAwaitKeyword", embedded: false, exported: true, typ: logger.Range, tag: ""}, {prop: "ExportsRef", name: "ExportsRef", embedded: false, exported: true, typ: ast.Ref, tag: ""}, {prop: "ModuleRef", name: "ModuleRef", embedded: false, exported: true, typ: ast.Ref, tag: ""}, {prop: "WrapperRef", name: "WrapperRef", embedded: false, exported: true, typ: ast.Ref, tag: ""}, {prop: "ApproximateLineCount", name: "ApproximateLineCount", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "NestedScopeSlotCounts", name: "NestedScopeSlotCounts", embedded: false, exported: true, typ: ast.SlotCounts, tag: ""}, {prop: "HasLazyExport", name: "HasLazyExport", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "UsesExportsRef", name: "UsesExportsRef", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "UsesModuleRef", name: "UsesModuleRef", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "ExportsKind", name: "ExportsKind", embedded: false, exported: true, typ: ExportsKind, tag: ""}]); + ModuleTypeData.init("", [{prop: "Source", name: "Source", embedded: false, exported: true, typ: ptrType$88, tag: ""}, {prop: "Range", name: "Range", embedded: false, exported: true, typ: logger.Range, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: ModuleType, tag: ""}]); + AST.init("", [{prop: "ModuleTypeData", name: "ModuleTypeData", embedded: false, exported: true, typ: ModuleTypeData, tag: ""}, {prop: "Parts", name: "Parts", embedded: false, exported: true, typ: sliceType$21, tag: ""}, {prop: "Symbols", name: "Symbols", embedded: false, exported: true, typ: sliceType$22, tag: ""}, {prop: "ExprComments", name: "ExprComments", embedded: false, exported: true, typ: mapType$2, tag: ""}, {prop: "ModuleScope", name: "ModuleScope", embedded: false, exported: true, typ: ptrType$87, tag: ""}, {prop: "CharFreq", name: "CharFreq", embedded: false, exported: true, typ: ptrType$89, tag: ""}, {prop: "ManifestForYarnPnP", name: "ManifestForYarnPnP", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Hashbang", name: "Hashbang", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Directives", name: "Directives", embedded: false, exported: true, typ: sliceType$9, tag: ""}, {prop: "URLForCSS", name: "URLForCSS", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "TopLevelSymbolToPartsFromParser", name: "TopLevelSymbolToPartsFromParser", embedded: false, exported: true, typ: mapType$3, tag: ""}, {prop: "TSEnums", name: "TSEnums", embedded: false, exported: true, typ: mapType$5, tag: ""}, {prop: "ConstValues", name: "ConstValues", embedded: false, exported: true, typ: mapType$6, tag: ""}, {prop: "MangledProps", name: "MangledProps", embedded: false, exported: true, typ: mapType$1, tag: ""}, {prop: "ReservedProps", name: "ReservedProps", embedded: false, exported: true, typ: mapType$7, tag: ""}, {prop: "ImportRecords", name: "ImportRecords", embedded: false, exported: true, typ: sliceType$23, tag: ""}, {prop: "NamedImports", name: "NamedImports", embedded: false, exported: true, typ: mapType$8, tag: ""}, {prop: "NamedExports", name: "NamedExports", embedded: false, exported: true, typ: mapType$9, tag: ""}, {prop: "ExportStarImportRecords", name: "ExportStarImportRecords", embedded: false, exported: true, typ: sliceType$24, tag: ""}, {prop: "SourceMapComment", name: "SourceMapComment", embedded: false, exported: true, typ: logger.Span, tag: ""}, {prop: "ExportKeyword", name: "ExportKeyword", embedded: false, exported: true, typ: logger.Range, tag: ""}, {prop: "TopLevelAwaitKeyword", name: "TopLevelAwaitKeyword", embedded: false, exported: true, typ: logger.Range, tag: ""}, {prop: "LiveTopLevelAwaitKeyword", name: "LiveTopLevelAwaitKeyword", embedded: false, exported: true, typ: logger.Range, tag: ""}, {prop: "ExportsRef", name: "ExportsRef", embedded: false, exported: true, typ: ast.Ref, tag: ""}, {prop: "ModuleRef", name: "ModuleRef", embedded: false, exported: true, typ: ast.Ref, tag: ""}, {prop: "WrapperRef", name: "WrapperRef", embedded: false, exported: true, typ: ast.Ref, tag: ""}, {prop: "ApproximateLineCount", name: "ApproximateLineCount", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "NestedScopeSlotCounts", name: "NestedScopeSlotCounts", embedded: false, exported: true, typ: ast.SlotCounts, tag: ""}, {prop: "HasLazyExport", name: "HasLazyExport", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "UsesExportsRef", name: "UsesExportsRef", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "UsesModuleRef", name: "UsesModuleRef", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "ExportsKind", name: "ExportsKind", embedded: false, exported: true, typ: ExportsKind, tag: ""}]); TSEnumValue.init("", [{prop: "String", name: "String", embedded: false, exported: true, typ: sliceType$4, tag: ""}, {prop: "Number", name: "Number", embedded: false, exported: true, typ: $Float64, tag: ""}]); ConstValue.init("", [{prop: "Number", name: "Number", embedded: false, exported: true, typ: $Float64, tag: ""}, {prop: "Kind", name: "Kind", embedded: false, exported: true, typ: ConstValueKind, tag: ""}]); NamedImport.init("", [{prop: "Alias", name: "Alias", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "LocalPartsWithUses", name: "LocalPartsWithUses", embedded: false, exported: true, typ: sliceType$24, tag: ""}, {prop: "AliasLoc", name: "AliasLoc", embedded: false, exported: true, typ: logger.Loc, tag: ""}, {prop: "NamespaceRef", name: "NamespaceRef", embedded: false, exported: true, typ: ast.Ref, tag: ""}, {prop: "ImportRecordIndex", name: "ImportRecordIndex", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "AliasIsStar", name: "AliasIsStar", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "IsExported", name: "IsExported", embedded: false, exported: true, typ: $Bool, tag: ""}]); @@ -144940,7 +146169,7 @@ $packages["github.com/evanw/esbuild/internal/js_ast"] = (function() { return $pkg; })(); $packages["github.com/evanw/esbuild/internal/config"] = (function() { - var $pkg = {}, $init, fmt, ast, compat, css_ast, helpers, js_ast, logger, math, regexp, strings, sync, atomic, DefineExpr, DefineData, DefineFlags, ProcessedDefines, JSXOptions, TSJSX, TSOptions, TSConfigJSX, TSConfig, Platform, SourceMap, LegalComments, Loader, Format, StdinInfo, WildcardPattern, ExternalMatchers, ExternalSettings, Mode, MaybeBool, CancelFlag, Options, TSImportsNotUsedAsValues, TSUnusedImportFlags, TSTarget, TSAlwaysStrict, PathPlaceholder, PathTemplate, PathPlaceholders, InjectedDefine, InjectedFile, InjectableExport, Plugin, OnStart, OnStartResult, OnResolve, OnResolveArgs, OnResolveResult, OnLoad, OnLoadArgs, OnLoadResult, ptrType, sliceType, sliceType$1, ptrType$1, sliceType$2, ptrType$2, ptrType$3, ptrType$4, ptrType$5, sliceType$3, sliceType$4, ptrType$6, sliceType$5, mapType, mapType$1, ptrType$7, ptrType$8, ptrType$9, sliceType$6, mapType$2, ptrType$10, ptrType$11, sliceType$7, sliceType$8, sliceType$9, ptrType$12, mapType$3, funcType, funcType$1, mapType$4, mapType$5, mapType$6, sliceType$10, sliceType$11, sliceType$12, sliceType$13, funcType$2, sliceType$14, funcType$3, funcType$4, processedGlobalsMutex, processedGlobals, knownGlobals, mergeDefineData, ProcessDefines, LoaderFromFileExtension, TemplateToString, HasPlaceholder, SubstituteTemplate, ShouldCallRuntimeRequire, PluginAppliesToPath, PrettyPrintTargetEnvironment; + var $pkg = {}, $init, fmt, ast, compat, css_ast, helpers, js_ast, logger, math, regexp, strings, sync, atomic, DefineExpr, DefineData, DefineFlags, ProcessedDefines, JSXOptions, TSJSX, TSOptions, TSConfigJSX, TSConfig, Platform, SourceMap, LegalComments, Loader, Format, StdinInfo, WildcardPattern, ExternalMatchers, ExternalSettings, Mode, MaybeBool, CancelFlag, Options, TSImportsNotUsedAsValues, TSUnusedImportFlags, TSTarget, TSAlwaysStrict, PathPlaceholder, PathTemplate, PathPlaceholders, InjectedDefine, InjectedFile, InjectableExport, Plugin, OnStart, OnStartResult, OnResolve, OnResolveArgs, OnResolveResult, OnLoad, OnLoadArgs, OnLoadResult, ptrType, sliceType, sliceType$1, ptrType$1, sliceType$2, ptrType$2, ptrType$3, ptrType$4, ptrType$5, sliceType$3, sliceType$4, ptrType$6, ptrType$7, sliceType$5, mapType, mapType$1, ptrType$8, ptrType$9, ptrType$10, sliceType$6, mapType$2, ptrType$11, ptrType$12, sliceType$7, sliceType$8, sliceType$9, ptrType$13, mapType$3, funcType, funcType$1, mapType$4, mapType$5, mapType$6, sliceType$10, sliceType$11, sliceType$12, sliceType$13, funcType$2, sliceType$14, funcType$3, funcType$4, processedGlobalsMutex, processedGlobals, knownGlobals, mergeDefineData, ProcessDefines, LoaderFromFileExtension, TemplateToString, HasPlaceholder, SubstituteTemplate, ShouldCallRuntimeRequire, PluginAppliesToPath, PrettyPrintTargetEnvironment; fmt = $packages["fmt"]; ast = $packages["github.com/evanw/esbuild/internal/ast"]; compat = $packages["github.com/evanw/esbuild/internal/compat"]; @@ -145117,12 +146346,12 @@ $packages["github.com/evanw/esbuild/internal/config"] = (function() { Options = $newType(0, $kindStruct, "config.Options", true, "github.com/evanw/esbuild/internal/config", true, function(ModuleTypeData_, Defines_, TSAlwaysStrict_, MangleProps_, ReserveProps_, CancelFlag_, ExclusiveMangleCacheUpdate_, OriginalTargetEnv_, DropLabels_, ExtensionOrder_, MainFields_, Conditions_, AbsNodePaths_, ExternalSettings_, ExternalPackages_, PackageAliases_, AbsOutputFile_, AbsOutputDir_, AbsOutputBase_, OutputExtensionJS_, OutputExtensionCSS_, GlobalName_, TSConfigPath_, TSConfigRaw_, ExtensionToLoader_, PublicPath_, InjectPaths_, InjectedDefines_, InjectedFiles_, JSBanner_, JSFooter_, CSSBanner_, CSSFooter_, EntryPathTemplate_, ChunkPathTemplate_, AssetPathTemplate_, Plugins_, SourceRoot_, Stdin_, JSX_, LineLimit_, CSSPrefixData_, UnsupportedJSFeatures_, UnsupportedCSSFeatures_, UnsupportedJSFeatureOverrides_, UnsupportedJSFeatureOverridesMask_, UnsupportedCSSFeatureOverrides_, UnsupportedCSSFeatureOverridesMask_, TS_, Mode_, PreserveSymlinks_, MinifyWhitespace_, MinifyIdentifiers_, MinifySyntax_, ProfilerNames_, CodeSplitting_, WatchMode_, AllowOverwrite_, LegalComments_, WriteToStdout_, OmitRuntimeForTests_, OmitJSXRuntimeForTests_, ASCIIOnly_, KeepNames_, IgnoreDCEAnnotations_, TreeShaking_, DropDebugger_, MangleQuoted_, Platform_, OutputFormat_, NeedsMetafile_, SourceMap_, ExcludeSourcesContent_) { this.$val = this; if (arguments.length === 0) { - this.ModuleTypeData = new js_ast.ModuleTypeData.ptr(ptrType$10.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0); + this.ModuleTypeData = new js_ast.ModuleTypeData.ptr(ptrType$11.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0); this.Defines = ptrType.nil; - this.TSAlwaysStrict = ptrType$11.nil; - this.MangleProps = ptrType$6.nil; - this.ReserveProps = ptrType$6.nil; - this.CancelFlag = ptrType$4.nil; + this.TSAlwaysStrict = ptrType$12.nil; + this.MangleProps = ptrType$7.nil; + this.ReserveProps = ptrType$7.nil; + this.CancelFlag = ptrType$3.nil; this.ExclusiveMangleCacheUpdate = $throwNilPointerError; this.OriginalTargetEnv = ""; this.DropLabels = sliceType.nil; @@ -145155,7 +146384,7 @@ $packages["github.com/evanw/esbuild/internal/config"] = (function() { this.AssetPathTemplate = sliceType$4.nil; this.Plugins = sliceType$9.nil; this.SourceRoot = ""; - this.Stdin = ptrType$12.nil; + this.Stdin = ptrType$13.nil; this.JSX = new JSXOptions.ptr(new DefineExpr.ptr($ifaceNil, sliceType.nil, new ast.Index32.ptr(0)), new DefineExpr.ptr($ifaceNil, sliceType.nil, new ast.Index32.ptr(0)), false, false, false, "", false, false); this.LineLimit = 0; this.CSSPrefixData = false; @@ -145381,7 +146610,7 @@ $packages["github.com/evanw/esbuild/internal/config"] = (function() { OnResolve = $newType(0, $kindStruct, "config.OnResolve", true, "github.com/evanw/esbuild/internal/config", true, function(Filter_, Callback_, Name_, Namespace_) { this.$val = this; if (arguments.length === 0) { - this.Filter = ptrType$6.nil; + this.Filter = ptrType$7.nil; this.Callback = $throwNilPointerError; this.Name = ""; this.Namespace = ""; @@ -145437,7 +146666,7 @@ $packages["github.com/evanw/esbuild/internal/config"] = (function() { OnLoad = $newType(0, $kindStruct, "config.OnLoad", true, "github.com/evanw/esbuild/internal/config", true, function(Filter_, Callback_, Name_, Namespace_) { this.$val = this; if (arguments.length === 0) { - this.Filter = ptrType$6.nil; + this.Filter = ptrType$7.nil; this.Callback = $throwNilPointerError; this.Name = ""; this.Namespace = ""; @@ -145530,26 +146759,27 @@ $packages["github.com/evanw/esbuild/internal/config"] = (function() { ptrType$1 = $ptrType(DefineExpr); sliceType$2 = $sliceType(DefineData); ptrType$2 = $ptrType($String); - ptrType$3 = $ptrType($Uint32); - ptrType$4 = $ptrType(CancelFlag); + ptrType$3 = $ptrType(CancelFlag); + ptrType$4 = $ptrType($Uint32); ptrType$5 = $ptrType(strings.Builder); sliceType$3 = $sliceType($Uint8); sliceType$4 = $sliceType(PathTemplate); - ptrType$6 = $ptrType(regexp.Regexp); + ptrType$6 = $ptrType(PathTemplate); + ptrType$7 = $ptrType(regexp.Regexp); sliceType$5 = $sliceType($emptyInterface); mapType = $mapType($String, DefineData); mapType$1 = $mapType($String, sliceType$2); - ptrType$7 = $ptrType(JSXOptions); - ptrType$8 = $ptrType(TSConfigJSX); - ptrType$9 = $ptrType(TSConfig); + ptrType$8 = $ptrType(JSXOptions); + ptrType$9 = $ptrType(TSConfigJSX); + ptrType$10 = $ptrType(TSConfig); sliceType$6 = $sliceType(WildcardPattern); mapType$2 = $mapType($String, $Bool); - ptrType$10 = $ptrType(logger.Source); - ptrType$11 = $ptrType(TSAlwaysStrict); + ptrType$11 = $ptrType(logger.Source); + ptrType$12 = $ptrType(TSAlwaysStrict); sliceType$7 = $sliceType(InjectedDefine); sliceType$8 = $sliceType(InjectedFile); sliceType$9 = $sliceType(Plugin); - ptrType$12 = $ptrType(StdinInfo); + ptrType$13 = $ptrType(StdinInfo); mapType$3 = $mapType($String, $emptyInterface); funcType = $funcType([mapType$3, mapType$2], [], false); funcType$1 = $funcType([funcType], [], false); @@ -145588,7 +146818,7 @@ $packages["github.com/evanw/esbuild/internal/config"] = (function() { /* */ $s = 5; continue; /* if (!(processedGlobals === ptrType.nil)) { */ case 4: $deferred.push([$methodVal(processedGlobalsMutex, "Unlock"), []]); - $24r = processedGlobals; + $24r = (processedGlobals === ptrType.nil && $throwNilPointerError(), processedGlobals); $s = 6; case 6: return $24r; /* } */ case 5: $r = processedGlobalsMutex.Unlock(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } @@ -145832,12 +147062,12 @@ $packages["github.com/evanw/esbuild/internal/config"] = (function() { $ptrType(CancelFlag).prototype.Cancel = function Cancel() { var flag; flag = this; - atomic.StoreUint32((flag.$ptr_uint32 || (flag.$ptr_uint32 = new ptrType$3(function() { return this.$target.uint32; }, function($v) { this.$target.uint32 = $v; }, flag))), 1); + atomic.StoreUint32((flag === ptrType$3.nil && $throwNilPointerError(), (flag.$ptr_uint32 || (flag.$ptr_uint32 = new ptrType$4(function() { return this.$target.uint32; }, function($v) { this.$target.uint32 = $v; }, flag)))), 1); }; $ptrType(CancelFlag).prototype.DidCancel = function DidCancel() { var flag; flag = this; - return !(flag === ptrType$4.nil) && !((atomic.LoadUint32((flag.$ptr_uint32 || (flag.$ptr_uint32 = new ptrType$3(function() { return this.$target.uint32; }, function($v) { this.$target.uint32 = $v; }, flag)))) === 0)); + return !(flag === ptrType$3.nil) && !((atomic.LoadUint32((flag === ptrType$3.nil && $throwNilPointerError(), (flag.$ptr_uint32 || (flag.$ptr_uint32 = new ptrType$4(function() { return this.$target.uint32; }, function($v) { this.$target.uint32 = $v; }, flag))))) === 0)); }; $ptrType(PathPlaceholders).prototype.Get = function Get(placeholder) { var _1, placeholder, placeholders; @@ -145928,7 +147158,7 @@ $packages["github.com/evanw/esbuild/internal/config"] = (function() { } last = result.$length - 1 >> 0; if (last >= 0 && (((last < 0 || last >= result.$length) ? ($throwRuntimeError("index out of range"), undefined) : result.$array[result.$offset + last]).Placeholder === 0)) { - last$1 = ((last < 0 || last >= result.$length) ? ($throwRuntimeError("index out of range"), undefined) : result.$array[result.$offset + last]); + last$1 = ((last < 0 || last >= result.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(result.$array, result.$offset + last, ptrType$6)); last$1.Data = last$1.Data + (part$1.Data); last$1.Placeholder = part$1.Placeholder; } else { @@ -145991,13 +147221,13 @@ $packages["github.com/evanw/esbuild/internal/config"] = (function() { }; $pkg.PrettyPrintTargetEnvironment = PrettyPrintTargetEnvironment; DefineFlags.methods = [{prop: "Has", name: "Has", pkg: "", typ: $funcType([DefineFlags], [$Bool], false)}]; - ptrType$8.methods = [{prop: "ApplyExtendedConfig", name: "ApplyExtendedConfig", pkg: "", typ: $funcType([TSConfigJSX], [], false)}, {prop: "ApplyTo", name: "ApplyTo", pkg: "", typ: $funcType([ptrType$7], [], false)}]; - ptrType$9.methods = [{prop: "ApplyExtendedConfig", name: "ApplyExtendedConfig", pkg: "", typ: $funcType([TSConfig], [], false)}, {prop: "UnusedImportFlags", name: "UnusedImportFlags", pkg: "", typ: $funcType([], [TSUnusedImportFlags], false)}]; + ptrType$9.methods = [{prop: "ApplyExtendedConfig", name: "ApplyExtendedConfig", pkg: "", typ: $funcType([TSConfigJSX], [], false)}, {prop: "ApplyTo", name: "ApplyTo", pkg: "", typ: $funcType([ptrType$8], [], false)}]; + ptrType$10.methods = [{prop: "ApplyExtendedConfig", name: "ApplyExtendedConfig", pkg: "", typ: $funcType([TSConfig], [], false)}, {prop: "UnusedImportFlags", name: "UnusedImportFlags", pkg: "", typ: $funcType([], [TSUnusedImportFlags], false)}]; LegalComments.methods = [{prop: "HasExternalFile", name: "HasExternalFile", pkg: "", typ: $funcType([], [$Bool], false)}]; Loader.methods = [{prop: "IsTypeScript", name: "IsTypeScript", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsCSS", name: "IsCSS", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "CanHaveSourceMap", name: "CanHaveSourceMap", pkg: "", typ: $funcType([], [$Bool], false)}]; Format.methods = [{prop: "KeepESMImportExportSyntax", name: "KeepESMImportExportSyntax", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; ExternalMatchers.methods = [{prop: "HasMatchers", name: "HasMatchers", pkg: "", typ: $funcType([], [$Bool], false)}]; - ptrType$4.methods = [{prop: "Cancel", name: "Cancel", pkg: "", typ: $funcType([], [], false)}, {prop: "DidCancel", name: "DidCancel", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$3.methods = [{prop: "Cancel", name: "Cancel", pkg: "", typ: $funcType([], [], false)}, {prop: "DidCancel", name: "DidCancel", pkg: "", typ: $funcType([], [$Bool], false)}]; PathPlaceholders.methods = [{prop: "Get", name: "Get", pkg: "", typ: $funcType([PathPlaceholder], [ptrType$2], false)}]; DefineExpr.init("", [{prop: "Constant", name: "Constant", embedded: false, exported: true, typ: js_ast.E, tag: ""}, {prop: "Parts", name: "Parts", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "InjectedDefineIndex", name: "InjectedDefineIndex", embedded: false, exported: true, typ: ast.Index32, tag: ""}]); DefineData.init("", [{prop: "KeyParts", name: "KeyParts", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "DefineExpr", name: "DefineExpr", embedded: false, exported: true, typ: ptrType$1, tag: ""}, {prop: "Flags", name: "Flags", embedded: false, exported: true, typ: DefineFlags, tag: ""}]); @@ -146011,7 +147241,7 @@ $packages["github.com/evanw/esbuild/internal/config"] = (function() { ExternalMatchers.init("", [{prop: "Exact", name: "Exact", embedded: false, exported: true, typ: mapType$2, tag: ""}, {prop: "Patterns", name: "Patterns", embedded: false, exported: true, typ: sliceType$6, tag: ""}]); ExternalSettings.init("", [{prop: "PreResolve", name: "PreResolve", embedded: false, exported: true, typ: ExternalMatchers, tag: ""}, {prop: "PostResolve", name: "PostResolve", embedded: false, exported: true, typ: ExternalMatchers, tag: ""}]); CancelFlag.init("github.com/evanw/esbuild/internal/config", [{prop: "uint32", name: "uint32", embedded: true, exported: false, typ: $Uint32, tag: ""}]); - Options.init("", [{prop: "ModuleTypeData", name: "ModuleTypeData", embedded: false, exported: true, typ: js_ast.ModuleTypeData, tag: ""}, {prop: "Defines", name: "Defines", embedded: false, exported: true, typ: ptrType, tag: ""}, {prop: "TSAlwaysStrict", name: "TSAlwaysStrict", embedded: false, exported: true, typ: ptrType$11, tag: ""}, {prop: "MangleProps", name: "MangleProps", embedded: false, exported: true, typ: ptrType$6, tag: ""}, {prop: "ReserveProps", name: "ReserveProps", embedded: false, exported: true, typ: ptrType$6, tag: ""}, {prop: "CancelFlag", name: "CancelFlag", embedded: false, exported: true, typ: ptrType$4, tag: ""}, {prop: "ExclusiveMangleCacheUpdate", name: "ExclusiveMangleCacheUpdate", embedded: false, exported: true, typ: funcType$1, tag: ""}, {prop: "OriginalTargetEnv", name: "OriginalTargetEnv", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "DropLabels", name: "DropLabels", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "ExtensionOrder", name: "ExtensionOrder", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "MainFields", name: "MainFields", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "Conditions", name: "Conditions", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "AbsNodePaths", name: "AbsNodePaths", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "ExternalSettings", name: "ExternalSettings", embedded: false, exported: true, typ: ExternalSettings, tag: ""}, {prop: "ExternalPackages", name: "ExternalPackages", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "PackageAliases", name: "PackageAliases", embedded: false, exported: true, typ: mapType$4, tag: ""}, {prop: "AbsOutputFile", name: "AbsOutputFile", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "AbsOutputDir", name: "AbsOutputDir", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "AbsOutputBase", name: "AbsOutputBase", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "OutputExtensionJS", name: "OutputExtensionJS", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "OutputExtensionCSS", name: "OutputExtensionCSS", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "GlobalName", name: "GlobalName", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "TSConfigPath", name: "TSConfigPath", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "TSConfigRaw", name: "TSConfigRaw", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "ExtensionToLoader", name: "ExtensionToLoader", embedded: false, exported: true, typ: mapType$5, tag: ""}, {prop: "PublicPath", name: "PublicPath", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "InjectPaths", name: "InjectPaths", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "InjectedDefines", name: "InjectedDefines", embedded: false, exported: true, typ: sliceType$7, tag: ""}, {prop: "InjectedFiles", name: "InjectedFiles", embedded: false, exported: true, typ: sliceType$8, tag: ""}, {prop: "JSBanner", name: "JSBanner", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "JSFooter", name: "JSFooter", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "CSSBanner", name: "CSSBanner", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "CSSFooter", name: "CSSFooter", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "EntryPathTemplate", name: "EntryPathTemplate", embedded: false, exported: true, typ: sliceType$4, tag: ""}, {prop: "ChunkPathTemplate", name: "ChunkPathTemplate", embedded: false, exported: true, typ: sliceType$4, tag: ""}, {prop: "AssetPathTemplate", name: "AssetPathTemplate", embedded: false, exported: true, typ: sliceType$4, tag: ""}, {prop: "Plugins", name: "Plugins", embedded: false, exported: true, typ: sliceType$9, tag: ""}, {prop: "SourceRoot", name: "SourceRoot", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Stdin", name: "Stdin", embedded: false, exported: true, typ: ptrType$12, tag: ""}, {prop: "JSX", name: "JSX", embedded: false, exported: true, typ: JSXOptions, tag: ""}, {prop: "LineLimit", name: "LineLimit", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "CSSPrefixData", name: "CSSPrefixData", embedded: false, exported: true, typ: mapType$6, tag: ""}, {prop: "UnsupportedJSFeatures", name: "UnsupportedJSFeatures", embedded: false, exported: true, typ: compat.JSFeature, tag: ""}, {prop: "UnsupportedCSSFeatures", name: "UnsupportedCSSFeatures", embedded: false, exported: true, typ: compat.CSSFeature, tag: ""}, {prop: "UnsupportedJSFeatureOverrides", name: "UnsupportedJSFeatureOverrides", embedded: false, exported: true, typ: compat.JSFeature, tag: ""}, {prop: "UnsupportedJSFeatureOverridesMask", name: "UnsupportedJSFeatureOverridesMask", embedded: false, exported: true, typ: compat.JSFeature, tag: ""}, {prop: "UnsupportedCSSFeatureOverrides", name: "UnsupportedCSSFeatureOverrides", embedded: false, exported: true, typ: compat.CSSFeature, tag: ""}, {prop: "UnsupportedCSSFeatureOverridesMask", name: "UnsupportedCSSFeatureOverridesMask", embedded: false, exported: true, typ: compat.CSSFeature, tag: ""}, {prop: "TS", name: "TS", embedded: false, exported: true, typ: TSOptions, tag: ""}, {prop: "Mode", name: "Mode", embedded: false, exported: true, typ: Mode, tag: ""}, {prop: "PreserveSymlinks", name: "PreserveSymlinks", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "MinifyWhitespace", name: "MinifyWhitespace", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "MinifyIdentifiers", name: "MinifyIdentifiers", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "MinifySyntax", name: "MinifySyntax", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "ProfilerNames", name: "ProfilerNames", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "CodeSplitting", name: "CodeSplitting", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "WatchMode", name: "WatchMode", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "AllowOverwrite", name: "AllowOverwrite", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "LegalComments", name: "LegalComments", embedded: false, exported: true, typ: LegalComments, tag: ""}, {prop: "WriteToStdout", name: "WriteToStdout", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "OmitRuntimeForTests", name: "OmitRuntimeForTests", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "OmitJSXRuntimeForTests", name: "OmitJSXRuntimeForTests", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "ASCIIOnly", name: "ASCIIOnly", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "KeepNames", name: "KeepNames", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "IgnoreDCEAnnotations", name: "IgnoreDCEAnnotations", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "TreeShaking", name: "TreeShaking", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "DropDebugger", name: "DropDebugger", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "MangleQuoted", name: "MangleQuoted", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Platform", name: "Platform", embedded: false, exported: true, typ: Platform, tag: ""}, {prop: "OutputFormat", name: "OutputFormat", embedded: false, exported: true, typ: Format, tag: ""}, {prop: "NeedsMetafile", name: "NeedsMetafile", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "SourceMap", name: "SourceMap", embedded: false, exported: true, typ: SourceMap, tag: ""}, {prop: "ExcludeSourcesContent", name: "ExcludeSourcesContent", embedded: false, exported: true, typ: $Bool, tag: ""}]); + Options.init("", [{prop: "ModuleTypeData", name: "ModuleTypeData", embedded: false, exported: true, typ: js_ast.ModuleTypeData, tag: ""}, {prop: "Defines", name: "Defines", embedded: false, exported: true, typ: ptrType, tag: ""}, {prop: "TSAlwaysStrict", name: "TSAlwaysStrict", embedded: false, exported: true, typ: ptrType$12, tag: ""}, {prop: "MangleProps", name: "MangleProps", embedded: false, exported: true, typ: ptrType$7, tag: ""}, {prop: "ReserveProps", name: "ReserveProps", embedded: false, exported: true, typ: ptrType$7, tag: ""}, {prop: "CancelFlag", name: "CancelFlag", embedded: false, exported: true, typ: ptrType$3, tag: ""}, {prop: "ExclusiveMangleCacheUpdate", name: "ExclusiveMangleCacheUpdate", embedded: false, exported: true, typ: funcType$1, tag: ""}, {prop: "OriginalTargetEnv", name: "OriginalTargetEnv", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "DropLabels", name: "DropLabels", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "ExtensionOrder", name: "ExtensionOrder", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "MainFields", name: "MainFields", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "Conditions", name: "Conditions", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "AbsNodePaths", name: "AbsNodePaths", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "ExternalSettings", name: "ExternalSettings", embedded: false, exported: true, typ: ExternalSettings, tag: ""}, {prop: "ExternalPackages", name: "ExternalPackages", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "PackageAliases", name: "PackageAliases", embedded: false, exported: true, typ: mapType$4, tag: ""}, {prop: "AbsOutputFile", name: "AbsOutputFile", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "AbsOutputDir", name: "AbsOutputDir", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "AbsOutputBase", name: "AbsOutputBase", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "OutputExtensionJS", name: "OutputExtensionJS", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "OutputExtensionCSS", name: "OutputExtensionCSS", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "GlobalName", name: "GlobalName", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "TSConfigPath", name: "TSConfigPath", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "TSConfigRaw", name: "TSConfigRaw", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "ExtensionToLoader", name: "ExtensionToLoader", embedded: false, exported: true, typ: mapType$5, tag: ""}, {prop: "PublicPath", name: "PublicPath", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "InjectPaths", name: "InjectPaths", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "InjectedDefines", name: "InjectedDefines", embedded: false, exported: true, typ: sliceType$7, tag: ""}, {prop: "InjectedFiles", name: "InjectedFiles", embedded: false, exported: true, typ: sliceType$8, tag: ""}, {prop: "JSBanner", name: "JSBanner", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "JSFooter", name: "JSFooter", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "CSSBanner", name: "CSSBanner", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "CSSFooter", name: "CSSFooter", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "EntryPathTemplate", name: "EntryPathTemplate", embedded: false, exported: true, typ: sliceType$4, tag: ""}, {prop: "ChunkPathTemplate", name: "ChunkPathTemplate", embedded: false, exported: true, typ: sliceType$4, tag: ""}, {prop: "AssetPathTemplate", name: "AssetPathTemplate", embedded: false, exported: true, typ: sliceType$4, tag: ""}, {prop: "Plugins", name: "Plugins", embedded: false, exported: true, typ: sliceType$9, tag: ""}, {prop: "SourceRoot", name: "SourceRoot", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Stdin", name: "Stdin", embedded: false, exported: true, typ: ptrType$13, tag: ""}, {prop: "JSX", name: "JSX", embedded: false, exported: true, typ: JSXOptions, tag: ""}, {prop: "LineLimit", name: "LineLimit", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "CSSPrefixData", name: "CSSPrefixData", embedded: false, exported: true, typ: mapType$6, tag: ""}, {prop: "UnsupportedJSFeatures", name: "UnsupportedJSFeatures", embedded: false, exported: true, typ: compat.JSFeature, tag: ""}, {prop: "UnsupportedCSSFeatures", name: "UnsupportedCSSFeatures", embedded: false, exported: true, typ: compat.CSSFeature, tag: ""}, {prop: "UnsupportedJSFeatureOverrides", name: "UnsupportedJSFeatureOverrides", embedded: false, exported: true, typ: compat.JSFeature, tag: ""}, {prop: "UnsupportedJSFeatureOverridesMask", name: "UnsupportedJSFeatureOverridesMask", embedded: false, exported: true, typ: compat.JSFeature, tag: ""}, {prop: "UnsupportedCSSFeatureOverrides", name: "UnsupportedCSSFeatureOverrides", embedded: false, exported: true, typ: compat.CSSFeature, tag: ""}, {prop: "UnsupportedCSSFeatureOverridesMask", name: "UnsupportedCSSFeatureOverridesMask", embedded: false, exported: true, typ: compat.CSSFeature, tag: ""}, {prop: "TS", name: "TS", embedded: false, exported: true, typ: TSOptions, tag: ""}, {prop: "Mode", name: "Mode", embedded: false, exported: true, typ: Mode, tag: ""}, {prop: "PreserveSymlinks", name: "PreserveSymlinks", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "MinifyWhitespace", name: "MinifyWhitespace", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "MinifyIdentifiers", name: "MinifyIdentifiers", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "MinifySyntax", name: "MinifySyntax", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "ProfilerNames", name: "ProfilerNames", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "CodeSplitting", name: "CodeSplitting", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "WatchMode", name: "WatchMode", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "AllowOverwrite", name: "AllowOverwrite", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "LegalComments", name: "LegalComments", embedded: false, exported: true, typ: LegalComments, tag: ""}, {prop: "WriteToStdout", name: "WriteToStdout", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "OmitRuntimeForTests", name: "OmitRuntimeForTests", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "OmitJSXRuntimeForTests", name: "OmitJSXRuntimeForTests", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "ASCIIOnly", name: "ASCIIOnly", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "KeepNames", name: "KeepNames", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "IgnoreDCEAnnotations", name: "IgnoreDCEAnnotations", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "TreeShaking", name: "TreeShaking", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "DropDebugger", name: "DropDebugger", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "MangleQuoted", name: "MangleQuoted", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Platform", name: "Platform", embedded: false, exported: true, typ: Platform, tag: ""}, {prop: "OutputFormat", name: "OutputFormat", embedded: false, exported: true, typ: Format, tag: ""}, {prop: "NeedsMetafile", name: "NeedsMetafile", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "SourceMap", name: "SourceMap", embedded: false, exported: true, typ: SourceMap, tag: ""}, {prop: "ExcludeSourcesContent", name: "ExcludeSourcesContent", embedded: false, exported: true, typ: $Bool, tag: ""}]); TSAlwaysStrict.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Source", name: "Source", embedded: false, exported: true, typ: logger.Source, tag: ""}, {prop: "Range", name: "Range", embedded: false, exported: true, typ: logger.Range, tag: ""}, {prop: "Value", name: "Value", embedded: false, exported: true, typ: $Bool, tag: ""}]); PathTemplate.init("", [{prop: "Data", name: "Data", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Placeholder", name: "Placeholder", embedded: false, exported: true, typ: PathPlaceholder, tag: ""}]); PathPlaceholders.init("", [{prop: "Dir", name: "Dir", embedded: false, exported: true, typ: ptrType$2, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: ptrType$2, tag: ""}, {prop: "Hash", name: "Hash", embedded: false, exported: true, typ: ptrType$2, tag: ""}, {prop: "Ext", name: "Ext", embedded: false, exported: true, typ: ptrType$2, tag: ""}]); @@ -146021,10 +147251,10 @@ $packages["github.com/evanw/esbuild/internal/config"] = (function() { Plugin.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "OnStart", name: "OnStart", embedded: false, exported: true, typ: sliceType$11, tag: ""}, {prop: "OnResolve", name: "OnResolve", embedded: false, exported: true, typ: sliceType$12, tag: ""}, {prop: "OnLoad", name: "OnLoad", embedded: false, exported: true, typ: sliceType$13, tag: ""}]); OnStart.init("", [{prop: "Callback", name: "Callback", embedded: false, exported: true, typ: funcType$2, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}]); OnStartResult.init("", [{prop: "ThrownError", name: "ThrownError", embedded: false, exported: true, typ: $error, tag: ""}, {prop: "Msgs", name: "Msgs", embedded: false, exported: true, typ: sliceType$14, tag: ""}]); - OnResolve.init("", [{prop: "Filter", name: "Filter", embedded: false, exported: true, typ: ptrType$6, tag: ""}, {prop: "Callback", name: "Callback", embedded: false, exported: true, typ: funcType$3, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Namespace", name: "Namespace", embedded: false, exported: true, typ: $String, tag: ""}]); + OnResolve.init("", [{prop: "Filter", name: "Filter", embedded: false, exported: true, typ: ptrType$7, tag: ""}, {prop: "Callback", name: "Callback", embedded: false, exported: true, typ: funcType$3, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Namespace", name: "Namespace", embedded: false, exported: true, typ: $String, tag: ""}]); OnResolveArgs.init("", [{prop: "Path", name: "Path", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "ResolveDir", name: "ResolveDir", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "PluginData", name: "PluginData", embedded: false, exported: true, typ: $emptyInterface, tag: ""}, {prop: "Importer", name: "Importer", embedded: false, exported: true, typ: logger.Path, tag: ""}, {prop: "Kind", name: "Kind", embedded: false, exported: true, typ: ast.ImportKind, tag: ""}, {prop: "With", name: "With", embedded: false, exported: true, typ: logger.ImportAttributes, tag: ""}]); OnResolveResult.init("", [{prop: "PluginName", name: "PluginName", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Msgs", name: "Msgs", embedded: false, exported: true, typ: sliceType$14, tag: ""}, {prop: "ThrownError", name: "ThrownError", embedded: false, exported: true, typ: $error, tag: ""}, {prop: "AbsWatchFiles", name: "AbsWatchFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "AbsWatchDirs", name: "AbsWatchDirs", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "PluginData", name: "PluginData", embedded: false, exported: true, typ: $emptyInterface, tag: ""}, {prop: "Path", name: "Path", embedded: false, exported: true, typ: logger.Path, tag: ""}, {prop: "External", name: "External", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "IsSideEffectFree", name: "IsSideEffectFree", embedded: false, exported: true, typ: $Bool, tag: ""}]); - OnLoad.init("", [{prop: "Filter", name: "Filter", embedded: false, exported: true, typ: ptrType$6, tag: ""}, {prop: "Callback", name: "Callback", embedded: false, exported: true, typ: funcType$4, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Namespace", name: "Namespace", embedded: false, exported: true, typ: $String, tag: ""}]); + OnLoad.init("", [{prop: "Filter", name: "Filter", embedded: false, exported: true, typ: ptrType$7, tag: ""}, {prop: "Callback", name: "Callback", embedded: false, exported: true, typ: funcType$4, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Namespace", name: "Namespace", embedded: false, exported: true, typ: $String, tag: ""}]); OnLoadArgs.init("", [{prop: "PluginData", name: "PluginData", embedded: false, exported: true, typ: $emptyInterface, tag: ""}, {prop: "Path", name: "Path", embedded: false, exported: true, typ: logger.Path, tag: ""}]); OnLoadResult.init("", [{prop: "PluginName", name: "PluginName", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Contents", name: "Contents", embedded: false, exported: true, typ: ptrType$2, tag: ""}, {prop: "AbsResolveDir", name: "AbsResolveDir", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "PluginData", name: "PluginData", embedded: false, exported: true, typ: $emptyInterface, tag: ""}, {prop: "Msgs", name: "Msgs", embedded: false, exported: true, typ: sliceType$14, tag: ""}, {prop: "ThrownError", name: "ThrownError", embedded: false, exported: true, typ: $error, tag: ""}, {prop: "AbsWatchFiles", name: "AbsWatchFiles", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "AbsWatchDirs", name: "AbsWatchDirs", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "Loader", name: "Loader", embedded: false, exported: true, typ: Loader, tag: ""}]); }; @@ -146053,7 +147283,7 @@ $packages["github.com/evanw/esbuild/internal/config"] = (function() { return $pkg; })(); $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { - var $pkg = {}, $init, fmt, ast, compat, config, css_ast, css_lexer, helpers, logger, math, strconv, strings, calcTermWithOp, calcTerm, calcSum, calcProduct, calcNegate, calcInvert, calcNumeric, calcValue, parseSelectorOpts, parseComplexSelectorOpts, parser, Options, symbolMode, optionsThatSupportStructuralEquality, ruleContext, listOfDeclarationsOpts, ruleEntry, hashEntry, callEntry, DuplicateRuleRemover, atRuleValidity, atRuleContext, convertTokensOpts, parseQualifiedRuleOpts, endOfRuleScan, lowerNestingContext, leadingCombinatorStrip, gradientKind, parsedGradient, colorStop, valueWithUnit, parsedColorStop, composesContext, parsedColor, boxSide, boxTracker, unitSafetyStatus, unitSafetyTracker, borderRadiusCorner, borderRadiusTracker, colorSpace, sign, stopInfo, nameWithLoc, foundFlags, sliceType, sliceType$1, ptrType, ptrType$1, ptrType$2, ptrType$3, ptrType$4, sliceType$2, ptrType$5, ptrType$6, sliceType$3, ptrType$7, sliceType$4, ptrType$8, ptrType$9, ptrType$10, sliceType$5, sliceType$6, sliceType$7, ptrType$11, ptrType$12, ptrType$13, sliceType$8, sliceType$9, sliceType$10, sliceType$11, sliceType$12, sliceType$13, sliceType$14, sliceType$15, sliceType$16, sliceType$17, ptrType$14, sliceType$18, arrayType, ptrType$15, ptrType$16, ptrType$17, ptrType$18, ptrType$19, ptrType$20, ptrType$21, ptrType$22, sliceType$19, sliceType$20, sliceType$21, ptrType$23, ptrType$24, ptrType$25, ptrType$26, sliceType$22, sliceType$23, ptrType$27, arrayType$1, sliceType$24, ptrType$28, structType, sliceType$25, ptrType$29, sliceType$26, sliceType$27, sliceType$28, sliceType$29, ptrType$30, ptrType$31, arrayType$2, arrayType$3, sliceType$30, arrayType$4, sliceType$31, sliceType$32, ptrType$32, arrayType$5, ptrType$33, funcType, ptrType$34, mapType, ptrType$35, mapType$1, mapType$2, mapType$3, ptrType$36, mapType$4, ptrType$37, mapType$5, ptrType$38, ptrType$39, ptrType$40, nonDeprecatedElementsSupportedByIE7, specialAtRules, atKnownRuleCanBeRemovedIfEmpty, predefinedCounterStyles, cssWideAndReservedKeywords, genericFamilyNames, fontSizeKeywords, shortColorName, colorNameToHex, floatToStringForCalc, tryToParseCalcTerm, mergeCompoundSelectors, containsLocalOrGlobalSelector, analyzeLeadingAmpersand, parseInteger, OptionsFromConfig, Parse, MakeDuplicateRuleMangler, isSafeSelectors, shiftDot, mangleDimension, mangleNumber, compoundSelectorTermCount, complexSelectorTermCount, turnPercentIntoNumberIfShorter, parseGradient, removeImpliedPositions, switchToSinglePositions, switchToDoublePositions, removeColorInterpolation, tryToParseColorStops, tryToParseValue, tryToExpandGradient, formatFloat, makeDimensionOrPercentToken, makePositionToken, makeColorToken, interpolateHues, interpolateColors, interpolatePositions, premultiply, unpremultiply, isValidCustomIdent, isFontSize, parseHex, compactHex, expandHex, hexR, hexG, hexB, hexA, floatToStringForColor, degreesForAngle, lowerAlphaPercentageToNumber, looksLikeColor, parseColor, hwbToRgb, hslToRgb, hueToRgb, packRGBA, floatToByte, parseAlphaByte, parseColorByte, tryToConvertToHexWithoutClipping, isInvalidAnimationName, expandTokenQuad, compactTokenQuad, lin_srgb, gam_srgb, lin_srgb_to_xyz, xyz_to_lin_srgb, lin_p3, gam_p3, lin_p3_to_xyz, xyz_to_lin_p3, lin_prophoto, gam_prophoto, lin_prophoto_to_xyz, xyz_to_lin_prophoto, lin_a98rgb, gam_a98rgb, lin_a98rgb_to_xyz, xyz_to_lin_a98rgb, lin_2020, gam_2020, lin_2020_to_xyz, xyz_to_lin_2020, d65_to_d50, d50_to_d65, xyz_to_lab, lab_to_xyz, lab_to_lch, lch_to_lab, xyz_to_oklab, oklab_to_xyz, oklab_to_oklch, oklch_to_oklab, multiplyMatrices, delta_eok, gamut_mapping_xyz_to_srgb, hsl_to_rgb, rgb_to_hsl, hwb_to_rgb, rgb_to_hwb, xyz_to_colorSpace, colorSpace_to_xyz; + var $pkg = {}, $init, fmt, ast, compat, config, css_ast, css_lexer, helpers, logger, math, strconv, strings, calcTermWithOp, calcTerm, calcSum, calcProduct, calcNegate, calcInvert, calcNumeric, calcValue, parseSelectorOpts, parseComplexSelectorOpts, parser, Options, symbolMode, optionsThatSupportStructuralEquality, ruleContext, listOfDeclarationsOpts, ruleEntry, hashEntry, callEntry, DuplicateRuleRemover, atRuleValidity, atRuleContext, convertTokensOpts, parseQualifiedRuleOpts, endOfRuleScan, lowerNestingContext, leadingCombinatorStrip, gradientKind, parsedGradient, colorStop, valueWithUnit, parsedColorStop, composesContext, parsedColor, boxSide, boxTracker, unitSafetyStatus, unitSafetyTracker, borderRadiusCorner, borderRadiusTracker, colorSpace, sign, stopInfo, nameWithLoc, foundFlags, sliceType, sliceType$1, ptrType, ptrType$1, ptrType$2, ptrType$3, ptrType$4, sliceType$2, ptrType$5, ptrType$6, sliceType$3, ptrType$7, sliceType$4, ptrType$8, ptrType$9, ptrType$10, sliceType$5, sliceType$6, sliceType$7, ptrType$11, ptrType$12, ptrType$13, sliceType$8, sliceType$9, sliceType$10, sliceType$11, sliceType$12, sliceType$13, sliceType$14, sliceType$15, sliceType$16, sliceType$17, ptrType$14, sliceType$18, arrayType, ptrType$15, ptrType$16, ptrType$17, ptrType$18, ptrType$19, ptrType$20, ptrType$21, ptrType$22, sliceType$19, sliceType$20, sliceType$21, ptrType$23, ptrType$24, ptrType$25, ptrType$26, sliceType$22, ptrType$27, sliceType$23, ptrType$28, arrayType$1, ptrType$29, sliceType$24, ptrType$30, structType, sliceType$25, ptrType$31, sliceType$26, sliceType$27, ptrType$32, sliceType$28, ptrType$33, sliceType$29, ptrType$34, ptrType$35, arrayType$2, arrayType$3, sliceType$30, arrayType$4, sliceType$31, sliceType$32, ptrType$36, arrayType$5, ptrType$37, funcType, mapType, ptrType$38, mapType$1, mapType$2, mapType$3, ptrType$39, mapType$4, ptrType$40, mapType$5, ptrType$41, ptrType$42, ptrType$43, nonDeprecatedElementsSupportedByIE7, specialAtRules, atKnownRuleCanBeRemovedIfEmpty, predefinedCounterStyles, cssWideAndReservedKeywords, genericFamilyNames, fontSizeKeywords, shortColorName, colorNameToHex, floatToStringForCalc, tryToParseCalcTerm, mergeCompoundSelectors, containsLocalOrGlobalSelector, analyzeLeadingAmpersand, parseInteger, OptionsFromConfig, Parse, MakeDuplicateRuleMangler, isSafeSelectors, shiftDot, mangleDimension, mangleNumber, compoundSelectorTermCount, complexSelectorTermCount, turnPercentIntoNumberIfShorter, parseGradient, removeImpliedPositions, switchToSinglePositions, switchToDoublePositions, removeColorInterpolation, tryToParseColorStops, tryToParseValue, tryToExpandGradient, formatFloat, makeDimensionOrPercentToken, makePositionToken, makeColorToken, interpolateHues, interpolateColors, interpolatePositions, premultiply, unpremultiply, isValidCustomIdent, isFontSize, parseHex, compactHex, expandHex, hexR, hexG, hexB, hexA, floatToStringForColor, degreesForAngle, lowerAlphaPercentageToNumber, looksLikeColor, parseColor, hwbToRgb, hslToRgb, hueToRgb, packRGBA, floatToByte, parseAlphaByte, parseColorByte, tryToConvertToHexWithoutClipping, isInvalidAnimationName, expandTokenQuad, compactTokenQuad, lin_srgb, gam_srgb, lin_srgb_to_xyz, xyz_to_lin_srgb, lin_p3, gam_p3, lin_p3_to_xyz, xyz_to_lin_p3, lin_prophoto, gam_prophoto, lin_prophoto_to_xyz, xyz_to_lin_prophoto, lin_a98rgb, gam_a98rgb, lin_a98rgb_to_xyz, xyz_to_lin_a98rgb, lin_2020, gam_2020, lin_2020_to_xyz, xyz_to_lin_2020, d65_to_d50, d50_to_d65, xyz_to_lab, lab_to_xyz, lab_to_lch, lch_to_lab, xyz_to_oklab, oklab_to_xyz, oklab_to_oklch, oklch_to_oklab, multiplyMatrices, delta_eok, gamut_mapping_xyz_to_srgb, hsl_to_rgb, rgb_to_hsl, hwb_to_rgb, rgb_to_hwb, xyz_to_colorSpace, colorSpace_to_xyz; fmt = $packages["fmt"]; ast = $packages["github.com/evanw/esbuild/internal/ast"]; compat = $packages["github.com/evanw/esbuild/internal/compat"]; @@ -146403,7 +147633,7 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { this.$val = this; if (arguments.length === 0) { this.positionTerms = sliceType$26.nil; - this.midpoint = ptrType$29.nil; + this.midpoint = ptrType$31.nil; this.x = new helpers.F64.ptr(0); this.y = new helpers.F64.ptr(0); this.z = new helpers.F64.ptr(0); @@ -146667,43 +147897,46 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { ptrType$25 = $ptrType(ast.ImportAssertOrWith); ptrType$26 = $ptrType(ast.GlobPattern); sliceType$22 = $sliceType(css_ast.KeyframeBlock); + ptrType$27 = $ptrType(css_ast.Token); sliceType$23 = $sliceType(ast.Ref); - ptrType$27 = $ptrType(css_ast.SSClass); + ptrType$28 = $ptrType(css_ast.SSClass); arrayType$1 = $arrayType(css_lexer.T, 4); + ptrType$29 = $ptrType(css_ast.ComplexSelector); sliceType$24 = $sliceType($Int); - ptrType$28 = $ptrType($Int); + ptrType$30 = $ptrType($Int); structType = $structType("", []); sliceType$25 = $sliceType(colorStop); - ptrType$29 = $ptrType(valueWithUnit); + ptrType$31 = $ptrType(valueWithUnit); sliceType$26 = $sliceType(valueWithUnit); sliceType$27 = $sliceType(parsedColorStop); + ptrType$32 = $ptrType(parsedColorStop); sliceType$28 = $sliceType(stopInfo); + ptrType$33 = $ptrType(stopInfo); sliceType$29 = $sliceType(nameWithLoc); - ptrType$30 = $ptrType(css_ast.Composes); - ptrType$31 = $ptrType($Bool); + ptrType$34 = $ptrType(css_ast.Composes); + ptrType$35 = $ptrType($Bool); arrayType$2 = $arrayType(boxSide, 4); arrayType$3 = $arrayType(css_ast.Token, 4); sliceType$30 = $sliceType(boxSide); arrayType$4 = $arrayType(borderRadiusCorner, 4); sliceType$31 = $sliceType(borderRadiusCorner); sliceType$32 = $sliceType(css_ast.ImportedComposesName); - ptrType$32 = $ptrType(css_ast.RDeclaration); + ptrType$36 = $ptrType(css_ast.RDeclaration); arrayType$5 = $arrayType($Float64, 9); - ptrType$33 = $ptrType(lowerNestingContext); + ptrType$37 = $ptrType(lowerNestingContext); funcType = $funcType([logger.Loc], [css_ast.ComplexSelector], false); - ptrType$34 = $ptrType(css_ast.Token); mapType = $mapType($String, structType); - ptrType$35 = $ptrType(parser); - mapType$1 = $mapType(ast.Ref, ptrType$30); + ptrType$38 = $ptrType(parser); + mapType$1 = $mapType(ast.Ref, ptrType$34); mapType$2 = $mapType($String, ast.LocRef); mapType$3 = $mapType(logger.Loc, structType); - ptrType$36 = $ptrType(Options); + ptrType$39 = $ptrType(Options); mapType$4 = $mapType(css_ast.D, compat.CSSPrefix); - ptrType$37 = $ptrType(DuplicateRuleRemover); + ptrType$40 = $ptrType(DuplicateRuleRemover); mapType$5 = $mapType($Uint32, hashEntry); - ptrType$38 = $ptrType(boxTracker); - ptrType$39 = $ptrType(unitSafetyTracker); - ptrType$40 = $ptrType(borderRadiusTracker); + ptrType$41 = $ptrType(boxTracker); + ptrType$42 = $ptrType(unitSafetyTracker); + ptrType$43 = $ptrType(borderRadiusTracker); $ptrType(parser).prototype.tryToReduceCalcExpression = function tryToReduceCalcExpression(token) { var {_r, _r$1, _tuple, ok, p, result, term, token, whitespace, $s, $r, $c} = $restore(this, {token}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: @@ -146823,7 +148056,7 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { /* */ if (ok$5 && numeric.number < 0) { $s = 11; continue; } /* */ $s = 12; continue; /* if (ok$5 && numeric.number < 0) { */ case 11: - clone = $clone(numeric, calcNumeric); + clone = $clone((numeric === ptrType$3.nil && $throwNilPointerError(), numeric), calcNumeric); clone.number = -clone.number; _r$3 = clone.convertToToken(whitespace); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _tuple$6 = _r$3; @@ -149721,7 +150954,7 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { logger.Loc.copy(closeBraceLoc$3, new logger.Loc.ptr(0)); /* } */ case 166: if ((prelude$2.$length === 1) && lowerAtToken === "counter-style") { - t$3 = (0 >= prelude$2.$length ? ($throwRuntimeError("index out of range"), undefined) : prelude$2.$array[prelude$2.$offset + 0]); + t$3 = (0 >= prelude$2.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(prelude$2.$array, prelude$2.$offset + 0, ptrType$27)); if (t$3.Kind === 28) { t$3.Kind = 38; t$3.PayloadIndex = p.symbolForName($clone(t$3.Loc, logger.Loc), t$3.Text).Ref.InnerIndex; @@ -149760,7 +150993,7 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { /* */ if (prelude$2.$length >= 1 && lowerAtToken === "container") { $s = 177; continue; } /* */ $s = 178; continue; /* if (prelude$2.$length >= 1 && lowerAtToken === "container") { */ case 177: - t$4 = (0 >= prelude$2.$length ? ($throwRuntimeError("index out of range"), undefined) : prelude$2.$array[prelude$2.$offset + 0]); + t$4 = (0 >= prelude$2.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(prelude$2.$array, prelude$2.$offset + 0, ptrType$27)); if (!(t$4.Kind === 28)) { _v$1 = false; $s = 181; continue s; } _r$48 = strings.ToLower(t$4.Text); /* */ $s = 182; case 182: if($c) { $c = false; _r$48 = _r$48.$blk(); } if (_r$48 && _r$48.$blk !== undefined) { break s; } _v$1 = !(_r$48 === "not"); case 181: @@ -150065,7 +151298,7 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { while (true) { if (!(_i$2 < _ref$2.$length)) { break; } i$1 = _i$2; - token$1 = ((i$1 < 0 || i$1 >= result.$length) ? ($throwRuntimeError("index out of range"), undefined) : result.$array[result.$offset + i$1]); + token$1 = ((i$1 < 0 || i$1 >= result.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(result.$array, result.$offset + i$1, ptrType$27)); if (i$1 === 0) { token$1.Whitespace = (token$1.Whitespace & (254)) >>> 0; } @@ -150259,7 +151492,7 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { if (!(_i$2 < _ref$2.$length)) { break; } i = _i$2; ss = $clone(((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]), css_ast.SubclassSelector); - _tuple$1 = $assertType(ss.Data, ptrType$27, true); + _tuple$1 = $assertType(ss.Data, ptrType$28, true); class$1 = _tuple$1[0]; ok$1 = _tuple$1[1]; if (i > 0 || !ok$1) { @@ -150722,7 +151955,7 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { /* */ } return; } var $f = {$blk: addExpansionError, $c: true, $r, _arg, _arg$1, _arg$2, _r, loc, n, p, $s};return $f; }; $ptrType(parser).prototype.lowerNestingInRuleWithContext = function lowerNestingInRuleWithContext(rule, context) { - var {_i, _i$1, _i$2, _i$3, _i$4, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, carry, childContext, childContext$1, complex, complex$1, compound, compound$1, context, i, i$1, i$2, index, indices, n, n$1, offset, oldSelectorsComplexity, oldSelectorsLen, p, parent, parent$1, r, r$1, r$2, results, results$1, rule, sel, selectors, x, x$1, x$2, $s, $r, $c} = $restore(this, {rule, context}); + var {_i, _i$1, _i$2, _i$3, _i$4, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, carry, childContext, childContext$1, complex, complex$1, compound, compound$1, context, i, i$1, i$2, index, indices, n, n$1, offset, oldSelectorsComplexity, oldSelectorsLen, p, parent, parent$1, r, r$1, r$2, results, results$1, rule, sel, selectors, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {rule, context}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: childContext = [childContext]; childContext$1 = [childContext$1]; @@ -150743,7 +151976,7 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { while (true) { if (!(_i < _ref$1.$length)) { break; } i = _i; - sel = (x = r.Selectors, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + sel = (x = r.Selectors, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + i, ptrType$29))); if ($clone(sel, css_ast.ComplexSelector).IsRelative()) { sel.Selectors = $appendSlice(new sliceType$5([$clone(new css_ast.CompoundSelector.ptr(ptrType$10.nil, sliceType$6.nil, new sliceType$7([$clone(rule.Loc, logger.Loc)]), new css_ast.Combinator.ptr(new logger.Loc.ptr(0), 0), false), css_ast.CompoundSelector)]), sel.Selectors); } @@ -150757,7 +151990,7 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { /* while (true) { */ case 8: /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 9; continue; } i$1 = _i$1; - complex = (x$1 = r.Selectors, ((i$1 < 0 || i$1 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$1])); + complex = (x$1 = r.Selectors, ((i$1 < 0 || i$1 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + i$1, ptrType$29))); results = $makeSlice(sliceType$5, 0, complex.Selectors.$length); _r = p.multipleComplexSelectorsToSingleComplexSelector(context[0].parentSelectors); /* */ $s = 10; case 10: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } parent = _r; @@ -150817,7 +152050,7 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { carry = indices[0].$length; while (true) { if (!(carry > 0)) { break; } - index = $indexPtr(indices[0].$array, indices[0].$offset + (carry - 1 >> 0), ptrType$28); + index = (x$3 = carry - 1 >> 0, ((x$3 < 0 || x$3 >= indices[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(indices[0].$array, indices[0].$offset + x$3, ptrType$30))); if ((index.$get() + 1 >> 0) < context[0].parentSelectors.$length) { index.$set(index.$get() + (1) >> 0); break; @@ -150875,7 +152108,7 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { $s = -1; return new css_ast.Rule.ptr($ifaceNil, new logger.Loc.ptr(0)); /* } */ case 4: $s = -1; return rule; - /* */ } return; } var $f = {$blk: lowerNestingInRuleWithContext, $c: true, $r, _i, _i$1, _i$2, _i$3, _i$4, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, carry, childContext, childContext$1, complex, complex$1, compound, compound$1, context, i, i$1, i$2, index, indices, n, n$1, offset, oldSelectorsComplexity, oldSelectorsLen, p, parent, parent$1, r, r$1, r$2, results, results$1, rule, sel, selectors, x, x$1, x$2, $s};return $f; + /* */ } return; } var $f = {$blk: lowerNestingInRuleWithContext, $c: true, $r, _i, _i$1, _i$2, _i$3, _i$4, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, carry, childContext, childContext$1, complex, complex$1, compound, compound$1, context, i, i$1, i$2, index, indices, n, n$1, offset, oldSelectorsComplexity, oldSelectorsLen, p, parent, parent$1, r, r$1, r$2, results, results$1, rule, sel, selectors, x, x$1, x$2, x$3, $s};return $f; }; $ptrType(parser).prototype.substituteAmpersandsInCompoundSelector = function substituteAmpersandsInCompoundSelector(sel, replacementFn, results, strip) { var {_i, _i$1, _i$2, _i$3, _r, _r$1, _r$2, _ref, _ref$1, _ref$2, _ref$3, _tuple, class$1, complex, inner, last, nestingSelectorLoc, ok, outer, p, replacement, replacementFn, results, sel, sel$1, single, ss, strip, subclassSelectorPrefix, x, x$1, $s, $r, $c} = $restore(this, {sel, replacementFn, results, strip}); @@ -151063,7 +152296,7 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { /* while (true) { */ case 1: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } i = _i; - token = ((i < 0 || i >= tokens.$length) ? ($throwRuntimeError("index out of range"), undefined) : tokens.$array[tokens.$offset + i]); + token = ((i < 0 || i >= tokens.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(tokens.$array, tokens.$offset + i, ptrType$27)); /* */ if (token.Kind === 26) { $s = 3; continue; } /* */ $s = 4; continue; /* if (token.Kind === 26) { */ case 3: @@ -151129,10 +152362,10 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { $s = 30; continue; /* } else if (_1 === ("translate")) { */ case 10: if (n === 1) { - (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]).TurnLengthOrPercentageIntoNumberIfZero(); + (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(args.$array, args.$offset + 0, ptrType$27)).TurnLengthOrPercentageIntoNumberIfZero(); } else if (n === 3) { - _tmp$6 = (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]); - _tmp$7 = (2 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 2]); + _tmp$6 = (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(args.$array, args.$offset + 0, ptrType$27)); + _tmp$7 = (2 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(args.$array, args.$offset + 2, ptrType$27)); tx = _tmp$6; ty = _tmp$7; tx.TurnLengthOrPercentageIntoNumberIfZero(); @@ -151148,12 +152381,12 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { /* } else if (_1 === ("translatex")) { */ case 11: if (n === 1) { token.Text = "translate"; - (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]).TurnLengthOrPercentageIntoNumberIfZero(); + (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(args.$array, args.$offset + 0, ptrType$27)).TurnLengthOrPercentageIntoNumberIfZero(); } $s = 30; continue; /* } else if (_1 === ("translatey")) { */ case 12: if (n === 1) { - (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]).TurnLengthOrPercentageIntoNumberIfZero(); + (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(args.$array, args.$offset + 0, ptrType$27)).TurnLengthOrPercentageIntoNumberIfZero(); } $s = 30; continue; /* } else if (_1 === ("scale")) { */ case 13: @@ -151161,16 +152394,16 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { /* */ if (n === 3) { $s = 32; continue; } /* */ $s = 33; continue; /* if (n === 1) { */ case 31: - $r = turnPercentIntoNumberIfShorter((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = turnPercentIntoNumberIfShorter((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(args.$array, args.$offset + 0, ptrType$27))); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 33; continue; /* } else if (n === 3) { */ case 32: - _tmp$8 = (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]); - _tmp$9 = (2 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 2]); + _tmp$8 = (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(args.$array, args.$offset + 0, ptrType$27)); + _tmp$9 = (2 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(args.$array, args.$offset + 2, ptrType$27)); sx = _tmp$8; sy = _tmp$9; $r = turnPercentIntoNumberIfShorter(sx); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = turnPercentIntoNumberIfShorter(sy); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if ($clone(sx, css_ast.Token).EqualIgnoringWhitespace($clone(sy, css_ast.Token))) { + if ($clone(sx, css_ast.Token).EqualIgnoringWhitespace($clone((sy === ptrType$27.nil && $throwNilPointerError(), sy), css_ast.Token))) { token.Children.$set($subslice(args, 0, 1)); } else if ($clone(sy, css_ast.Token).IsOne()) { token.Text = "scaleX"; @@ -151185,33 +152418,33 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { /* */ if (n === 1) { $s = 37; continue; } /* */ $s = 38; continue; /* if (n === 1) { */ case 37: - $r = turnPercentIntoNumberIfShorter((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = turnPercentIntoNumberIfShorter((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(args.$array, args.$offset + 0, ptrType$27))); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 38: $s = 30; continue; /* } else if (_1 === ("scaley")) { */ case 15: /* */ if (n === 1) { $s = 40; continue; } /* */ $s = 41; continue; /* if (n === 1) { */ case 40: - $r = turnPercentIntoNumberIfShorter((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = turnPercentIntoNumberIfShorter((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(args.$array, args.$offset + 0, ptrType$27))); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 41: $s = 30; continue; /* } else if (_1 === ("rotate")) { */ case 16: if (n === 1) { - (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]).TurnLengthIntoNumberIfZero(); + (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(args.$array, args.$offset + 0, ptrType$27)).TurnLengthIntoNumberIfZero(); } $s = 30; continue; /* } else if (_1 === ("rotatez")) { */ case 17: if (n === 1) { token.Text = "rotate"; - (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]).TurnLengthIntoNumberIfZero(); + (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(args.$array, args.$offset + 0, ptrType$27)).TurnLengthIntoNumberIfZero(); } $s = 30; continue; /* } else if (_1 === ("skew")) { */ case 18: if (n === 1) { - (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]).TurnLengthIntoNumberIfZero(); + (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(args.$array, args.$offset + 0, ptrType$27)).TurnLengthIntoNumberIfZero(); } else if (n === 3) { - _tmp$10 = (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]); - _tmp$11 = (2 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 2]); + _tmp$10 = (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(args.$array, args.$offset + 0, ptrType$27)); + _tmp$11 = (2 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(args.$array, args.$offset + 2, ptrType$27)); ax = _tmp$10; ay = _tmp$11; ax.TurnLengthIntoNumberIfZero(); @@ -151224,12 +152457,12 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { /* } else if (_1 === ("skewx")) { */ case 19: if (n === 1) { token.Text = "skew"; - (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]).TurnLengthIntoNumberIfZero(); + (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(args.$array, args.$offset + 0, ptrType$27)).TurnLengthIntoNumberIfZero(); } $s = 30; continue; /* } else if (_1 === ("skewy")) { */ case 20: if (n === 1) { - (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]).TurnLengthIntoNumberIfZero(); + (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(args.$array, args.$offset + 0, ptrType$27)).TurnLengthIntoNumberIfZero(); } $s = 30; continue; /* } else if (_1 === ("matrix3d")) { */ case 21: @@ -151263,9 +152496,9 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { $s = 30; continue; /* } else if (_1 === ("translate3d")) { */ case 22: if (n === 5) { - _tmp$14 = (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]); - _tmp$15 = (2 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 2]); - _tmp$16 = (4 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 4]); + _tmp$14 = (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(args.$array, args.$offset + 0, ptrType$27)); + _tmp$15 = (2 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(args.$array, args.$offset + 2, ptrType$27)); + _tmp$16 = (4 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(args.$array, args.$offset + 4, ptrType$27)); tx$1 = _tmp$14; ty$1 = _tmp$15; tz = _tmp$16; @@ -151280,16 +152513,16 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { $s = 30; continue; /* } else if (_1 === ("translatez")) { */ case 23: if (n === 1) { - (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]).TurnLengthIntoNumberIfZero(); + (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(args.$array, args.$offset + 0, ptrType$27)).TurnLengthIntoNumberIfZero(); } $s = 30; continue; /* } else if (_1 === ("scale3d")) { */ case 24: /* */ if (n === 5) { $s = 43; continue; } /* */ $s = 44; continue; /* if (n === 5) { */ case 43: - _tmp$17 = (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]); - _tmp$18 = (2 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 2]); - _tmp$19 = (4 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 4]); + _tmp$17 = (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(args.$array, args.$offset + 0, ptrType$27)); + _tmp$18 = (2 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(args.$array, args.$offset + 2, ptrType$27)); + _tmp$19 = (4 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(args.$array, args.$offset + 4, ptrType$27)); sx$2 = _tmp$17; sy$2 = _tmp$18; sz = _tmp$19; @@ -151306,15 +152539,15 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { /* */ if (n === 1) { $s = 48; continue; } /* */ $s = 49; continue; /* if (n === 1) { */ case 48: - $r = turnPercentIntoNumberIfShorter((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = turnPercentIntoNumberIfShorter((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(args.$array, args.$offset + 0, ptrType$27))); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 49: $s = 30; continue; /* } else if (_1 === ("rotate3d")) { */ case 26: if (n === 7) { - _tmp$20 = (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]); - _tmp$21 = (2 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 2]); - _tmp$22 = (4 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 4]); - _tmp$23 = (6 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 6]); + _tmp$20 = (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(args.$array, args.$offset + 0, ptrType$27)); + _tmp$21 = (2 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(args.$array, args.$offset + 2, ptrType$27)); + _tmp$22 = (4 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(args.$array, args.$offset + 4, ptrType$27)); + _tmp$23 = (6 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(args.$array, args.$offset + 6, ptrType$27)); x$1 = _tmp$20; y$2 = _tmp$21; z = _tmp$22; @@ -151331,17 +152564,17 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { $s = 30; continue; /* } else if (_1 === ("rotatex")) { */ case 27: if (n === 1) { - (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]).TurnLengthIntoNumberIfZero(); + (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(args.$array, args.$offset + 0, ptrType$27)).TurnLengthIntoNumberIfZero(); } $s = 30; continue; /* } else if (_1 === ("rotatey")) { */ case 28: if (n === 1) { - (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]).TurnLengthIntoNumberIfZero(); + (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(args.$array, args.$offset + 0, ptrType$27)).TurnLengthIntoNumberIfZero(); } $s = 30; continue; /* } else if (_1 === ("perspective")) { */ case 29: if (n === 1) { - (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]).TurnLengthIntoNumberIfZero(); + (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(args.$array, args.$offset + 0, ptrType$27)).TurnLengthIntoNumberIfZero(); } /* } */ case 30: case 7: @@ -151437,7 +152670,7 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { if (noneCount > 0) { $s = -1; return; } - t$1 = ((typeIndex < 0 || typeIndex >= tokens.$length) ? ($throwRuntimeError("index out of range"), undefined) : tokens.$array[tokens.$offset + typeIndex]); + t$1 = ((typeIndex < 0 || typeIndex >= tokens.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(tokens.$array, tokens.$offset + typeIndex, ptrType$27)); if (t$1.Kind === 28) { t$1.Kind = 38; t$1.PayloadIndex = p.symbolForName($clone(t$1.Loc, logger.Loc), t$1.Text).Ref.InnerIndex; @@ -151633,7 +152866,7 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { if (stop.hasColorSpace) { hasColorSpace = true; } - if (!(stop.midpoint === ptrType$29.nil)) { + if (!(stop.midpoint === ptrType$31.nil)) { hasMidpoint = true; } _i++; @@ -151935,7 +153168,7 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { /* */ } return; } var $f = {$blk: removeColorInterpolation$1, $c: true, $r, _1, _2, _index, _r, _r$1, colorSpace$1, end, hue, hueMethod$1, i, in$1, method, n, remaining, space, start, tokens, x, x$1, x$2, $s};return $f; }; tryToParseColorStops = function tryToParseColorStops$1(gradient) { - var {_i, _i$1, _i$2, _i$3, _i$4, _i$5, _r, _r$1, _r$2, _r$3, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _tmp, _tmp$1, _tmp$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, b, color, colorStops, first, from, fromStop, g, gradient, i, i$1, i$2, i$3, i$4, info, info$1, infos, j, last, midpoint, next$1, ok, ok$1, ok$2, parsedStop, position, position$1, prev, prevPos, r, stop, stop$1, stop$2, stop$3, stop$4, t, to, toStop, toStop$1, x, x$1, x$10, x$11, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {gradient}); + var {_i, _i$1, _i$2, _i$3, _i$4, _i$5, _r, _r$1, _r$2, _r$3, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _tmp, _tmp$1, _tmp$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, b, color, colorStops, first, from, fromStop, g, gradient, i, i$1, i$2, i$3, i$4, info, info$1, infos, j, last, midpoint, next$1, ok, ok$1, ok$2, parsedStop, position, position$1, prev, prevPos, r, stop, stop$1, stop$2, stop$3, stop$4, t, to, toStop, toStop$1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {gradient}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: colorStops = sliceType$27.nil; _ref = gradient.colorStops; @@ -151979,7 +153212,7 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { helpers.F64.copy(g, _tuple$3[1]); helpers.F64.copy(b, _tuple$3[2]); /* } */ case 6: - parsedStop = new parsedColorStop.ptr(sliceType$26.nil, ptrType$29.nil, $clone(color.x, helpers.F64), $clone(color.y, helpers.F64), $clone(color.z, helpers.F64), $clone($clone(helpers.NewF64((hexA(color.hex))), helpers.F64).DivConst(255), helpers.F64), $clone(r, helpers.F64), $clone(g, helpers.F64), $clone(b, helpers.F64), new helpers.F64.ptr(0), new helpers.F64.ptr(0), new helpers.F64.ptr(0), color.hasColorSpace); + parsedStop = new parsedColorStop.ptr(sliceType$26.nil, ptrType$31.nil, $clone(color.x, helpers.F64), $clone(color.y, helpers.F64), $clone(color.z, helpers.F64), $clone($clone(helpers.NewF64((hexA(color.hex))), helpers.F64).DivConst(255), helpers.F64), $clone(r, helpers.F64), $clone(g, helpers.F64), $clone(b, helpers.F64), new helpers.F64.ptr(0), new helpers.F64.ptr(0), new helpers.F64.ptr(0), color.hasColorSpace); _ref$1 = stop.positions; _i$1 = 0; while (true) { @@ -152014,11 +153247,11 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { $s = 1; continue; case 2: if (colorStops.$length > 0) { - first = (0 >= colorStops.$length ? ($throwRuntimeError("index out of range"), undefined) : colorStops.$array[colorStops.$offset + 0]); + first = (0 >= colorStops.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(colorStops.$array, colorStops.$offset + 0, ptrType$32)); if (first.positionTerms.$length === 0) { first.positionTerms = new sliceType$26([$clone(new valueWithUnit.ptr("%", $clone(helpers.NewF64(0), helpers.F64)), valueWithUnit)]); } - last = (x = colorStops.$length - 1 >> 0, ((x < 0 || x >= colorStops.$length) ? ($throwRuntimeError("index out of range"), undefined) : colorStops.$array[colorStops.$offset + x])); + last = (x = colorStops.$length - 1 >> 0, ((x < 0 || x >= colorStops.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(colorStops.$array, colorStops.$offset + x, ptrType$32))); if (last.positionTerms.$length === 0) { last.positionTerms = new sliceType$26([$clone(new valueWithUnit.ptr("%", $clone(helpers.NewF64(100), helpers.F64)), valueWithUnit)]); } @@ -152033,23 +153266,23 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { while (true) { if (!(j >= 0)) { break; } prev = $clone(((j < 0 || j >= colorStops.$length) ? ($throwRuntimeError("index out of range"), undefined) : colorStops.$array[colorStops.$offset + j]), parsedColorStop); - if (!(prev.midpoint === ptrType$29.nil)) { - valueWithUnit.copy(prevPos, prev.midpoint); + if (!(prev.midpoint === ptrType$31.nil)) { + valueWithUnit.copy(prevPos, (x$1 = prev.midpoint, (x$1 === ptrType$31.nil && $throwNilPointerError(), x$1))); break; } if (prev.positionTerms.$length === 1) { - valueWithUnit.copy(prevPos, (x$1 = prev.positionTerms, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0]))); + valueWithUnit.copy(prevPos, (x$2 = prev.positionTerms, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0]))); break; } j = j - (1) >> 0; } if (stop$1.positionTerms.$length === 1) { - if (prevPos.unit === (x$2 = stop$1.positionTerms, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])).unit) { - helpers.F64.copy((x$4 = stop$1.positionTerms, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])).value, helpers.Max2($clone(prevPos.value, helpers.F64), $clone((x$3 = stop$1.positionTerms, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])).value, helpers.F64))); + if (prevPos.unit === (x$3 = stop$1.positionTerms, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])).unit) { + helpers.F64.copy((x$5 = stop$1.positionTerms, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0])).value, helpers.Max2($clone(prevPos.value, helpers.F64), $clone((x$4 = stop$1.positionTerms, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])).value, helpers.F64))); } - valueWithUnit.copy(prevPos, (x$5 = stop$1.positionTerms, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0]))); + valueWithUnit.copy(prevPos, (x$6 = stop$1.positionTerms, (0 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + 0]))); } - if (!(stop$1.midpoint === ptrType$29.nil) && prevPos.unit === stop$1.midpoint.unit) { + if (!(stop$1.midpoint === ptrType$31.nil) && prevPos.unit === stop$1.midpoint.unit) { helpers.F64.copy(stop$1.midpoint.value, helpers.Max2($clone(prevPos.value, helpers.F64), $clone(stop$1.midpoint.value, helpers.F64))); } _i$2++; @@ -152065,18 +153298,18 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { _i$3++; continue; } - info = ((i$2 < 0 || i$2 >= infos.$length) ? ($throwRuntimeError("index out of range"), undefined) : infos.$array[infos.$offset + i$2]); + info = ((i$2 < 0 || i$2 >= infos.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(infos.$array, infos.$offset + i$2, ptrType$33)); from = i$2 - 1 >> 0; while (true) { if (!(from >= 0)) { break; } fromStop = $clone(((from < 0 || from >= colorStops.$length) ? ($throwRuntimeError("index out of range"), undefined) : colorStops.$array[colorStops.$offset + from]), parsedColorStop); info.fromCount = info.fromCount + (1) >> 0; - if (!(fromStop.midpoint === ptrType$29.nil)) { - valueWithUnit.copy(info.fromPos, fromStop.midpoint); + if (!(fromStop.midpoint === ptrType$31.nil)) { + valueWithUnit.copy(info.fromPos, (x$7 = fromStop.midpoint, (x$7 === ptrType$31.nil && $throwNilPointerError(), x$7))); break; } if (fromStop.positionTerms.$length === 1) { - valueWithUnit.copy(info.fromPos, (x$6 = fromStop.positionTerms, (0 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + 0]))); + valueWithUnit.copy(info.fromPos, (x$8 = fromStop.positionTerms, (0 >= x$8.$length ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + 0]))); break; } from = from - (1) >> 0; @@ -152086,14 +153319,14 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { if (!(to < colorStops.$length)) { break; } info.toCount = info.toCount + (1) >> 0; toStop = $clone(((to < 0 || to >= colorStops.$length) ? ($throwRuntimeError("index out of range"), undefined) : colorStops.$array[colorStops.$offset + to]), parsedColorStop); - if (!(toStop.midpoint === ptrType$29.nil)) { - valueWithUnit.copy(info.toPos, toStop.midpoint); + if (!(toStop.midpoint === ptrType$31.nil)) { + valueWithUnit.copy(info.toPos, (x$9 = toStop.midpoint, (x$9 === ptrType$31.nil && $throwNilPointerError(), x$9))); break; } if ((to + 1 >> 0) < colorStops.$length) { - toStop$1 = $clone((x$7 = to + 1 >> 0, ((x$7 < 0 || x$7 >= colorStops.$length) ? ($throwRuntimeError("index out of range"), undefined) : colorStops.$array[colorStops.$offset + x$7])), parsedColorStop); + toStop$1 = $clone((x$10 = to + 1 >> 0, ((x$10 < 0 || x$10 >= colorStops.$length) ? ($throwRuntimeError("index out of range"), undefined) : colorStops.$array[colorStops.$offset + x$10])), parsedColorStop); if (toStop$1.positionTerms.$length === 1) { - valueWithUnit.copy(info.toPos, (x$8 = toStop$1.positionTerms, (0 >= x$8.$length ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + 0]))); + valueWithUnit.copy(info.toPos, (x$11 = toStop$1.positionTerms, (0 >= x$11.$length ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + 0]))); break; } } @@ -152124,9 +153357,9 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { if (!(_i$5 < _ref$5.$length)) { break; } i$4 = _i$5; stop$4 = $clone(((_i$5 < 0 || _i$5 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$5]), parsedColorStop); - if (!(stop$4.midpoint === ptrType$29.nil)) { - next$1 = $clone((x$9 = i$4 + 1 >> 0, ((x$9 < 0 || x$9 >= colorStops.$length) ? ($throwRuntimeError("index out of range"), undefined) : colorStops.$array[colorStops.$offset + x$9])), parsedColorStop); - if (!((stop$4.positionTerms.$length === 1)) || !(stop$4.midpoint.unit === (x$10 = stop$4.positionTerms, (0 >= x$10.$length ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + 0])).unit) || !((next$1.positionTerms.$length === 1)) || !(stop$4.midpoint.unit === (x$11 = next$1.positionTerms, (0 >= x$11.$length ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + 0])).unit)) { + if (!(stop$4.midpoint === ptrType$31.nil)) { + next$1 = $clone((x$12 = i$4 + 1 >> 0, ((x$12 < 0 || x$12 >= colorStops.$length) ? ($throwRuntimeError("index out of range"), undefined) : colorStops.$array[colorStops.$offset + x$12])), parsedColorStop); + if (!((stop$4.positionTerms.$length === 1)) || !(stop$4.midpoint.unit === (x$13 = stop$4.positionTerms, (0 >= x$13.$length ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + 0])).unit) || !((next$1.positionTerms.$length === 1)) || !(stop$4.midpoint.unit === (x$14 = next$1.positionTerms, (0 >= x$14.$length ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + 0])).unit)) { $s = -1; return [sliceType$27.nil, false]; } } @@ -152134,7 +153367,7 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { } } $s = -1; return [colorStops, true]; - /* */ } return; } var $f = {$blk: tryToParseColorStops$1, $c: true, $r, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _r, _r$1, _r$2, _r$3, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _tmp, _tmp$1, _tmp$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, b, color, colorStops, first, from, fromStop, g, gradient, i, i$1, i$2, i$3, i$4, info, info$1, infos, j, last, midpoint, next$1, ok, ok$1, ok$2, parsedStop, position, position$1, prev, prevPos, r, stop, stop$1, stop$2, stop$3, stop$4, t, to, toStop, toStop$1, x, x$1, x$10, x$11, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; + /* */ } return; } var $f = {$blk: tryToParseColorStops$1, $c: true, $r, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _r, _r$1, _r$2, _r$3, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _tmp, _tmp$1, _tmp$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, b, color, colorStops, first, from, fromStop, g, gradient, i, i$1, i$2, i$3, i$4, info, info$1, infos, j, last, midpoint, next$1, ok, ok$1, ok$2, parsedStop, position, position$1, prev, prevPos, r, stop, stop$1, stop$2, stop$3, stop$4, t, to, toStop, toStop$1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; }; tryToParseValue = function tryToParseValue$1(token, kind) { var _1, _2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, degrees, dimensionValue, err, err$1, err$2, err$3, kind, ok, percent, percentageValue, result, success, token, zero; @@ -152212,7 +153445,7 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { /* while (true) { */ case 1: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } i = _i; - stop = ((i < 0 || i >= colorStops.$length) ? ($throwRuntimeError("index out of range"), undefined) : colorStops.$array[colorStops.$offset + i]); + stop = ((i < 0 || i >= colorStops.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(colorStops.$array, colorStops.$offset + i, ptrType$32)); _r = xyz_to_colorSpace($clone(stop.x, helpers.F64), $clone(stop.y, helpers.F64), $clone(stop.z, helpers.F64), colorSpace$1[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; v0 = $clone(_tuple[0], helpers.F64); @@ -152231,7 +153464,7 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { if ($clone((x = first.positionTerms, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).value, helpers.F64).Value() < 0) { helpers.F64.copy((x$2 = (0 >= colorStops.$length ? ($throwRuntimeError("index out of range"), undefined) : colorStops.$array[colorStops.$offset + 0]).positionTerms, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])).value, helpers.NewF64(0)); } else if ($clone((x$1 = first.positionTerms, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])).value, helpers.F64).Value() > 0) { - first.midpoint = ptrType$29.nil; + first.midpoint = ptrType$31.nil; first.positionTerms = new sliceType$26([$clone(new valueWithUnit.ptr((x$3 = first.positionTerms, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])).unit, $clone(helpers.NewF64(0), helpers.F64)), valueWithUnit)]); colorStops = $appendSlice(new sliceType$27([$clone(first, parsedColorStop)]), colorStops); } @@ -152254,7 +153487,7 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { } t = $clone($clone($clone(prevT, helpers.F64).Add($clone(nextT, helpers.F64)), helpers.F64).DivConst(2), helpers.F64); positionT = $clone(t, helpers.F64); - if (!(from.midpoint === ptrType$29.nil)) { + if (!(from.midpoint === ptrType$31.nil)) { fromPos = $clone((x$7 = from.positionTerms, (0 >= x$7.$length ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + 0])).value, helpers.F64); toPos = $clone((x$8 = to.positionTerms, (0 >= x$8.$length ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + 0])).value, helpers.F64); stopPos = $clone(helpers.Lerp($clone(fromPos, helpers.F64), $clone(toPos, helpers.F64), $clone(t, helpers.F64)), helpers.F64); @@ -152494,7 +153727,7 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } term = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), valueWithUnit); _r = findUnit(term.unit); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - ptr = (x = _r, ((x < 0 || x >= result[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : result[0].$array[result[0].$offset + x])); + ptr = (x = _r, ((x < 0 || x >= result[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(result[0].$array, result[0].$offset + x, ptrType$31))); helpers.F64.copy(ptr.value, $clone($clone($clone($clone(t, helpers.F64).Neg(), helpers.F64).AddConst(1), helpers.F64).Mul($clone(term.value, helpers.F64)), helpers.F64).Add($clone(ptr.value, helpers.F64))); _i++; $s = 1; continue; @@ -152505,7 +153738,7 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 5; continue; } term$1 = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), valueWithUnit); _r$1 = findUnit(term$1.unit); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - ptr$1 = (x$1 = _r$1, ((x$1 < 0 || x$1 >= result[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : result[0].$array[result[0].$offset + x$1])); + ptr$1 = (x$1 = _r$1, ((x$1 < 0 || x$1 >= result[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(result[0].$array, result[0].$offset + x$1, ptrType$31))); helpers.F64.copy(ptr$1.value, $clone($clone(t, helpers.F64).Mul($clone(term$1.value, helpers.F64)), helpers.F64).Add($clone(ptr$1.value, helpers.F64))); _i$1++; $s = 4; continue; @@ -152866,7 +154099,7 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { if (!((t$1.Kind === 28))) { /* break; */ $s = 2; continue; } - $r = p.handleSingleContainerName(((i$1 < 0 || i$1 >= tokens.$length) ? ($throwRuntimeError("index out of range"), undefined) : tokens.$array[tokens.$offset + i$1])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.handleSingleContainerName(((i$1 < 0 || i$1 >= tokens.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(tokens.$array, tokens.$offset + i$1, ptrType$27))); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _i$1++; $s = 1; continue; case 2: @@ -152892,7 +154125,7 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { /* while (true) { */ case 1: /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 2; continue; } i = _i$1; - $r = p.handleSingleContainerName(((i < 0 || i >= tokens.$length) ? ($throwRuntimeError("index out of range"), undefined) : tokens.$array[tokens.$offset + i])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.handleSingleContainerName(((i < 0 || i >= tokens.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(tokens.$array, tokens.$offset + i, ptrType$27))); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _i$1++; $s = 1; continue; case 2: @@ -152946,7 +154179,7 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { while (true) { if (!(_i$1 < _ref$1.$length)) { break; } parentRef = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), ast.Ref); - composes = (_entry = $mapIndex(p.composes,ast.Ref.keyFor(parentRef)), _entry !== undefined ? _entry.v : ptrType$30.nil); + composes = (_entry = $mapIndex(p.composes,ast.Ref.keyFor(parentRef)), _entry !== undefined ? _entry.v : ptrType$34.nil); _ref$2 = names; _i$2 = 0; while (true) { @@ -153005,7 +154238,7 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { while (true) { if (!(_i$3 < _ref$3.$length)) { break; } parentRef$1 = $clone(((_i$3 < 0 || _i$3 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$3]), ast.Ref); - composes$1 = (_entry$1 = $mapIndex(p.composes,ast.Ref.keyFor(parentRef$1)), _entry$1 !== undefined ? _entry$1.v : ptrType$30.nil); + composes$1 = (_entry$1 = $mapIndex(p.composes,ast.Ref.keyFor(parentRef$1)), _entry$1 !== undefined ? _entry$1.v : ptrType$34.nil); _ref$4 = names; _i$4 = 0; while (true) { @@ -153157,7 +154390,7 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { /* */ $s = 13; continue; /* if (ok) { */ case 12: hex = expandHex(hex); - _r = p.tryToGenerateColor($clone(token, css_ast.Token), $clone(new parsedColor.ptr(new helpers.F64.ptr(0), new helpers.F64.ptr(0), new helpers.F64.ptr(0), hex, false), parsedColor), ptrType$31.nil); /* */ $s = 14; case 14: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = p.tryToGenerateColor($clone(token, css_ast.Token), $clone(new parsedColor.ptr(new helpers.F64.ptr(0), new helpers.F64.ptr(0), new helpers.F64.ptr(0), hex, false), parsedColor), ptrType$35.nil); /* */ $s = 14; case 14: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $24r = _r; $s = 15; case 15: return $24r; /* } */ case 13: @@ -153169,7 +154402,7 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { /* */ if (ok$1) { $s = 16; continue; } /* */ $s = 17; continue; /* if (ok$1) { */ case 16: - _r$1 = p.tryToGenerateColor($clone(token, css_ast.Token), $clone(new parsedColor.ptr(new helpers.F64.ptr(0), new helpers.F64.ptr(0), new helpers.F64.ptr(0), hex$1, false), parsedColor), ptrType$31.nil); /* */ $s = 18; case 18: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1 = p.tryToGenerateColor($clone(token, css_ast.Token), $clone(new parsedColor.ptr(new helpers.F64.ptr(0), new helpers.F64.ptr(0), new helpers.F64.ptr(0), hex$1, false), parsedColor), ptrType$35.nil); /* */ $s = 18; case 18: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $24r$1 = _r$1; $s = 19; case 19: return $24r$1; /* } */ case 17: @@ -154082,12 +155315,12 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { result = _tuple[0]; ok = _tuple[1]; /* */ if (ok) { $s = 5; continue; } - /* */ if (!(wouldClipColor === ptrType$31.nil)) { $s = 6; continue; } + /* */ if (!(wouldClipColor === ptrType$35.nil)) { $s = 6; continue; } /* */ $s = 7; continue; /* if (ok) { */ case 5: hex = result; $s = 8; continue; - /* } else if (!(wouldClipColor === ptrType$31.nil)) { */ case 6: + /* } else if (!(wouldClipColor === ptrType$35.nil)) { */ case 6: wouldClipColor.$set(true); $s = -1; return token; /* } else { */ case 7: @@ -154710,7 +155943,7 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { /* */ if (!found.name) { $s = 29; continue; } /* */ $s = 30; continue; /* if (!found.name) { */ case 29: - $r = p.handleSingleAnimationName(((i < 0 || i >= tokens.$length) ? ($throwRuntimeError("index out of range"), undefined) : tokens.$array[tokens.$offset + i])); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.handleSingleAnimationName(((i < 0 || i >= tokens.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(tokens.$array, tokens.$offset + i, ptrType$27))); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } found.name = true; _i++; /* continue; */ $s = 1; continue; @@ -154720,7 +155953,7 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { /* */ if (!found.name) { $s = 32; continue; } /* */ $s = 33; continue; /* if (!found.name) { */ case 32: - $r = p.handleSingleAnimationName(((i < 0 || i >= tokens.$length) ? ($throwRuntimeError("index out of range"), undefined) : tokens.$array[tokens.$offset + i])); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.handleSingleAnimationName(((i < 0 || i >= tokens.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(tokens.$array, tokens.$offset + i, ptrType$27))); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } found.name = true; _i++; /* continue; */ $s = 1; continue; @@ -154746,7 +155979,7 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { /* */ if ((t.Kind === 28) || (t.Kind === 35)) { $s = 3; continue; } /* */ $s = 4; continue; /* if ((t.Kind === 28) || (t.Kind === 35)) { */ case 3: - $r = p.handleSingleAnimationName(((i < 0 || i >= tokens.$length) ? ($throwRuntimeError("index out of range"), undefined) : tokens.$array[tokens.$offset + i])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.handleSingleAnimationName(((i < 0 || i >= tokens.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(tokens.$array, tokens.$offset + i, ptrType$27))); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 4: _i++; $s = 1; continue; @@ -154879,7 +156112,7 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { while (true) { if (!(_i < _ref.$length)) { break; } ref = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), ast.Ref); - _tuple = (_entry = $mapIndex(p.composes,ast.Ref.keyFor(ref)), _entry !== undefined ? [_entry.v, true] : [ptrType$30.nil, false]); + _tuple = (_entry = $mapIndex(p.composes,ast.Ref.keyFor(ref)), _entry !== undefined ? [_entry.v, true] : [ptrType$34.nil, false]); composes = _tuple[0]; ok = _tuple[1]; if (!ok) { @@ -154896,7 +156129,7 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { while (true) { if (!(_i$1 < _ref$1.$length)) { break; } rule = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), css_ast.Rule); - _tuple$1 = $assertType(rule.Data, ptrType$32, true); + _tuple$1 = $assertType(rule.Data, ptrType$36, true); decl = _tuple$1[0]; ok$1 = _tuple$1[1]; if (ok$1 && !((decl.Key === 106))) { @@ -154913,24 +156146,24 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { clone = [clone]; rule$1 = $clone(((i < 0 || i >= rules.$length) ? ($throwRuntimeError("index out of range"), undefined) : rules.$array[rules.$offset + i]), css_ast.Rule); rewrittenRules = $append(rewrittenRules, rule$1); - _tuple$2 = $assertType(rule$1.Data, ptrType$32, true); + _tuple$2 = $assertType(rule$1.Data, ptrType$36, true); decl$1 = _tuple$2[0]; ok$2 = _tuple$2[1]; if (!ok$2) { i = i + (1) >> 0; /* continue; */ $s = 1; continue; } - wouldClipColor = ptrType$31.nil; + wouldClipColor = ptrType$35.nil; if (wouldClipColorFlag[0]) { wouldClipColorFlag[0] = false; - clone[0] = $clone(decl$1, css_ast.RDeclaration); + clone[0] = $clone((decl$1 === ptrType$36.nil && $throwNilPointerError(), decl$1), css_ast.RDeclaration); clone[0].Value = css_ast.CloneTokensWithoutImportRecords(clone[0].Value); decl$1 = clone[0]; rule$1.Data = decl$1; n = rewrittenRules.$length - 2 >> 0; rewrittenRules = $append($subslice(rewrittenRules, 0, n), rule$1, ((n < 0 || n >= rewrittenRules.$length) ? ($throwRuntimeError("index out of range"), undefined) : rewrittenRules.$array[rewrittenRules.$offset + n])); } else { - wouldClipColor = (wouldClipColorFlag.$ptr || (wouldClipColorFlag.$ptr = new ptrType$31(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, wouldClipColorFlag))); + wouldClipColor = (wouldClipColorFlag.$ptr || (wouldClipColorFlag.$ptr = new ptrType$35(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, wouldClipColorFlag))); } _1 = decl$1.Key; /* */ if (_1 === (106)) { $s = 4; continue; } @@ -154993,7 +156226,7 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { /* } */ case 50: $s = 45; continue; /* } else { */ case 44: - $r = p.handleComposesPragma($clone(composesContext$1, composesContext), decl$1.Value); /* */ $s = 52; case 52: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.handleComposesPragma($clone((composesContext$1 === ptrType$7.nil && $throwNilPointerError(), composesContext$1), composesContext), decl$1.Value); /* */ $s = 52; case 52: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 45: rewrittenRules = $subslice(rewrittenRules, 0, (rewrittenRules.$length - 1 >> 0)); /* } */ case 41: @@ -155067,7 +156300,7 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { /* */ if (decl$1.Value.$length === 1) { $s = 72; continue; } /* */ $s = 73; continue; /* if (decl$1.Value.$length === 1) { */ case 72: - $r = p.processListStyleType((x$4 = decl$1.Value, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0]))); /* */ $s = 74; case 74: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.processListStyleType((x$4 = decl$1.Value, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$4.$array, x$4.$offset + 0, ptrType$27)))); /* */ $s = 74; case 74: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 73: $s = 39; continue; /* } else if (_1 === (134)) { */ case 16: @@ -155189,7 +156422,7 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { /* */ if (p.options.optionsThatSupportStructuralEquality.minifySyntax) { $s = 120; continue; } /* */ $s = 121; continue; /* if (p.options.optionsThatSupportStructuralEquality.minifySyntax) { */ case 120: - $r = inset.mangleSide(rewrittenRules, $assertType(((i$3 < 0 || i$3 >= decls.$length) ? ($throwRuntimeError("index out of range"), undefined) : decls.$array[decls.$offset + i$3]).Data, ptrType$32), p.options.optionsThatSupportStructuralEquality.minifyWhitespace, i$3); /* */ $s = 122; case 122: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = inset.mangleSide(rewrittenRules, $assertType(((i$3 < 0 || i$3 >= decls.$length) ? ($throwRuntimeError("index out of range"), undefined) : decls.$array[decls.$offset + i$3]).Data, ptrType$36), p.options.optionsThatSupportStructuralEquality.minifyWhitespace, i$3); /* */ $s = 122; case 122: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 121: _i$4++; $s = 118; continue; @@ -155278,7 +156511,7 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { while (true) { if (!(_i$5 < _ref$5.$length)) { break; } rule$2 = $clone(((_i$5 < 0 || _i$5 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$5]), css_ast.Rule); - _tuple$6 = $assertType(rule$2.Data, ptrType$32, true); + _tuple$6 = $assertType(rule$2.Data, ptrType$36, true); decl$2 = _tuple$6[0]; ok$6 = _tuple$6[1]; if (ok$6) { @@ -155308,7 +156541,7 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { j = rewrittenRules.$length - 2 >> 0; while (true) { if (!(j >= 0)) { break; } - _tuple$7 = $assertType(((j < 0 || j >= rewrittenRules.$length) ? ($throwRuntimeError("index out of range"), undefined) : rewrittenRules.$array[rewrittenRules.$offset + j]).Data, ptrType$32, true); + _tuple$7 = $assertType(((j < 0 || j >= rewrittenRules.$length) ? ($throwRuntimeError("index out of range"), undefined) : rewrittenRules.$array[rewrittenRules.$offset + j]).Data, ptrType$36, true); prev = _tuple$7[0]; ok$7 = _tuple$7[1]; if (ok$7 && (prev.Key === decl$1.Key)) { @@ -156152,13 +157385,13 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { ptrType$4.methods = [{prop: "convertToToken", name: "convertToToken", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([css_ast.WhitespaceFlags], [css_ast.Token, $Bool], false)}, {prop: "partiallySimplify", name: "partiallySimplify", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([], [calcTerm], false)}]; ptrType$3.methods = [{prop: "convertToToken", name: "convertToToken", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([css_ast.WhitespaceFlags], [css_ast.Token, $Bool], false)}, {prop: "partiallySimplify", name: "partiallySimplify", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([], [calcTerm], false)}]; ptrType$6.methods = [{prop: "convertToToken", name: "convertToToken", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([css_ast.WhitespaceFlags], [css_ast.Token, $Bool], false)}, {prop: "partiallySimplify", name: "partiallySimplify", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([], [calcTerm], false)}]; - ptrType$35.methods = [{prop: "tryToReduceCalcExpression", name: "tryToReduceCalcExpression", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([css_ast.Token], [css_ast.Token], false)}, {prop: "parseSelectorList", name: "parseSelectorList", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([parseSelectorOpts], [sliceType$3, $Bool], false)}, {prop: "flattenLocalAndGlobalSelectors", name: "flattenLocalAndGlobalSelectors", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$3, css_ast.ComplexSelector], [sliceType$3], false)}, {prop: "parseComplexSelector", name: "parseComplexSelector", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([parseComplexSelectorOpts], [css_ast.ComplexSelector, $Bool], false)}, {prop: "nameToken", name: "nameToken", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([], [css_ast.NameToken], false)}, {prop: "parseCompoundSelector", name: "parseCompoundSelector", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([parseComplexSelectorOpts], [css_ast.CompoundSelector, $Bool], false)}, {prop: "parseAttributeSelector", name: "parseAttributeSelector", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([], [css_ast.SSAttribute, logger.Range], false)}, {prop: "parsePseudoClassSelector", name: "parsePseudoClassSelector", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([logger.Loc, $Bool], [css_ast.SS, logger.Range], false)}, {prop: "parseAnyValue", name: "parseAnyValue", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([], [sliceType$8], false)}, {prop: "parseCombinator", name: "parseCombinator", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([], [css_ast.Combinator], false)}, {prop: "parseNthIndex", name: "parseNthIndex", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([], [css_ast.NthIndex, $Bool], false)}, {prop: "computeCharacterFrequency", name: "computeCharacterFrequency", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([], [ptrType$14], false)}, {prop: "advance", name: "advance", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([], [], false)}, {prop: "at", name: "at", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([$Int], [css_lexer.Token], false)}, {prop: "current", name: "current", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([], [css_lexer.Token], false)}, {prop: "next", name: "next", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([], [css_lexer.Token], false)}, {prop: "raw", name: "raw", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([], [$String], false)}, {prop: "decoded", name: "decoded", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([], [$String], false)}, {prop: "peek", name: "peek", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([css_lexer.T], [$Bool], false)}, {prop: "eat", name: "eat", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([css_lexer.T], [$Bool], false)}, {prop: "expect", name: "expect", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([css_lexer.T], [$Bool], false)}, {prop: "expectWithMatchingLoc", name: "expectWithMatchingLoc", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([css_lexer.T, logger.Loc], [$Bool], false)}, {prop: "unexpected", name: "unexpected", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([], [], false)}, {prop: "symbolForName", name: "symbolForName", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([logger.Loc, $String], [ast.LocRef], false)}, {prop: "recordAtLayerRule", name: "recordAtLayerRule", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$17], [], false)}, {prop: "parseListOfRules", name: "parseListOfRules", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([ruleContext], [sliceType$18], false)}, {prop: "parseListOfDeclarations", name: "parseListOfDeclarations", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([listOfDeclarationsOpts], [sliceType$18], false)}, {prop: "mangleRules", name: "mangleRules", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$18, $Bool], [sliceType$18], false)}, {prop: "parseURLOrString", name: "parseURLOrString", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([], [$String, logger.Range, $Bool], false)}, {prop: "expectURLOrString", name: "expectURLOrString", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([], [$String, logger.Range, $Bool], false)}, {prop: "parseAtRule", name: "parseAtRule", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([atRuleContext], [css_ast.Rule], false)}, {prop: "expectValidLayerNameIdent", name: "expectValidLayerNameIdent", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([], [$String, $Bool], false)}, {prop: "convertTokens", name: "convertTokens", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$8], [sliceType$1], false)}, {prop: "convertTokensHelper", name: "convertTokensHelper", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$8, css_lexer.T, convertTokensOpts], [sliceType$1, sliceType$8], false)}, {prop: "parseSelectorRule", name: "parseSelectorRule", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([$Bool, parseSelectorOpts], [css_ast.Rule], false)}, {prop: "parseQualifiedRule", name: "parseQualifiedRule", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([parseQualifiedRuleOpts], [css_ast.Rule], false)}, {prop: "scanForEndOfRule", name: "scanForEndOfRule", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([], [endOfRuleScan, $Int], false)}, {prop: "parseDeclaration", name: "parseDeclaration", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([], [css_ast.Rule], false)}, {prop: "parseComponentValue", name: "parseComponentValue", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([], [], false)}, {prop: "parseBlock", name: "parseBlock", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([css_lexer.T, css_lexer.T], [], false)}, {prop: "lowerNestingInRule", name: "lowerNestingInRule", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([css_ast.Rule, sliceType$18], [sliceType$18], false)}, {prop: "lowerNestingInRulesAndReturnRemaining", name: "lowerNestingInRulesAndReturnRemaining", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$18, ptrType$33], [sliceType$18], false)}, {prop: "addExpansionError", name: "addExpansionError", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([logger.Loc, $Int], [], false)}, {prop: "lowerNestingInRuleWithContext", name: "lowerNestingInRuleWithContext", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([css_ast.Rule, ptrType$33], [css_ast.Rule], false)}, {prop: "substituteAmpersandsInCompoundSelector", name: "substituteAmpersandsInCompoundSelector", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([css_ast.CompoundSelector, funcType, sliceType$5, leadingCombinatorStrip], [sliceType$5], false)}, {prop: "multipleComplexSelectorsToSingleComplexSelector", name: "multipleComplexSelectorsToSingleComplexSelector", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$3], [funcType], false)}, {prop: "reportNestingWithGeneratedPseudoClassIs", name: "reportNestingWithGeneratedPseudoClassIs", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([logger.Loc], [], false)}, {prop: "mangleTransforms", name: "mangleTransforms", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$1], [sliceType$1], false)}, {prop: "processListStyleShorthand", name: "processListStyleShorthand", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$1], [], false)}, {prop: "processListStyleType", name: "processListStyleType", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([ptrType$34], [], false)}, {prop: "generateGradient", name: "generateGradient", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([css_ast.Token, parsedGradient], [css_ast.Token], false)}, {prop: "lowerAndMinifyGradient", name: "lowerAndMinifyGradient", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([css_ast.Token, ptrType$31], [css_ast.Token], false)}, {prop: "mangleFontWeight", name: "mangleFontWeight", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([css_ast.Token], [css_ast.Token], false)}, {prop: "mangleFontFamily", name: "mangleFontFamily", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$1], [sliceType$1, $Bool], false)}, {prop: "mangleFamilyNameOrGenericName", name: "mangleFamilyNameOrGenericName", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$1, sliceType$1], [sliceType$1, sliceType$1, $Bool], false)}, {prop: "mangleFont", name: "mangleFont", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$1], [sliceType$1], false)}, {prop: "processContainerShorthand", name: "processContainerShorthand", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$1], [], false)}, {prop: "processContainerName", name: "processContainerName", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$1], [], false)}, {prop: "handleSingleContainerName", name: "handleSingleContainerName", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([ptrType$34], [], false)}, {prop: "handleComposesPragma", name: "handleComposesPragma", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([composesContext, sliceType$1], [], false)}, {prop: "lowerAndMinifyColor", name: "lowerAndMinifyColor", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([css_ast.Token, ptrType$31], [css_ast.Token], false)}, {prop: "tryToGenerateColor", name: "tryToGenerateColor", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([css_ast.Token, parsedColor, ptrType$31], [css_ast.Token], false)}, {prop: "lowerAndMangleBoxShadow", name: "lowerAndMangleBoxShadow", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$1, ptrType$31], [sliceType$1], false)}, {prop: "lowerAndMangleBoxShadows", name: "lowerAndMangleBoxShadows", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$1, ptrType$31], [sliceType$1], false)}, {prop: "processAnimationShorthand", name: "processAnimationShorthand", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$1], [], false)}, {prop: "processAnimationName", name: "processAnimationName", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$1], [], false)}, {prop: "handleSingleAnimationName", name: "handleSingleAnimationName", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([ptrType$34], [], false)}, {prop: "commaToken", name: "commaToken", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([logger.Loc], [css_ast.Token], false)}, {prop: "processDeclarations", name: "processDeclarations", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$18, ptrType$7], [sliceType$18], false)}, {prop: "insertPrefixedDeclaration", name: "insertPrefixedDeclaration", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$18, $String, logger.Loc, ptrType$32, mapType], [sliceType$18], false)}, {prop: "lowerInset", name: "lowerInset", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([logger.Loc, ptrType$32], [sliceType$18, $Bool], false)}]; - ptrType$36.methods = [{prop: "Equal", name: "Equal", pkg: "", typ: $funcType([ptrType$36], [$Bool], false)}]; - ptrType$37.methods = [{prop: "RemoveDuplicateRulesInPlace", name: "RemoveDuplicateRulesInPlace", pkg: "", typ: $funcType([$Uint32, sliceType$18, sliceType$12], [sliceType$18], false)}]; - ptrType$38.methods = [{prop: "updateSide", name: "updateSide", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$18, $Int, boxSide], [], false)}, {prop: "mangleSides", name: "mangleSides", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$18, ptrType$32, $Bool], [], false)}, {prop: "mangleSide", name: "mangleSide", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$18, ptrType$32, $Bool, $Int], [], false)}, {prop: "compactRules", name: "compactRules", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$18, logger.Range, $Bool], [], false)}]; + ptrType$38.methods = [{prop: "tryToReduceCalcExpression", name: "tryToReduceCalcExpression", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([css_ast.Token], [css_ast.Token], false)}, {prop: "parseSelectorList", name: "parseSelectorList", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([parseSelectorOpts], [sliceType$3, $Bool], false)}, {prop: "flattenLocalAndGlobalSelectors", name: "flattenLocalAndGlobalSelectors", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$3, css_ast.ComplexSelector], [sliceType$3], false)}, {prop: "parseComplexSelector", name: "parseComplexSelector", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([parseComplexSelectorOpts], [css_ast.ComplexSelector, $Bool], false)}, {prop: "nameToken", name: "nameToken", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([], [css_ast.NameToken], false)}, {prop: "parseCompoundSelector", name: "parseCompoundSelector", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([parseComplexSelectorOpts], [css_ast.CompoundSelector, $Bool], false)}, {prop: "parseAttributeSelector", name: "parseAttributeSelector", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([], [css_ast.SSAttribute, logger.Range], false)}, {prop: "parsePseudoClassSelector", name: "parsePseudoClassSelector", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([logger.Loc, $Bool], [css_ast.SS, logger.Range], false)}, {prop: "parseAnyValue", name: "parseAnyValue", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([], [sliceType$8], false)}, {prop: "parseCombinator", name: "parseCombinator", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([], [css_ast.Combinator], false)}, {prop: "parseNthIndex", name: "parseNthIndex", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([], [css_ast.NthIndex, $Bool], false)}, {prop: "computeCharacterFrequency", name: "computeCharacterFrequency", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([], [ptrType$14], false)}, {prop: "advance", name: "advance", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([], [], false)}, {prop: "at", name: "at", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([$Int], [css_lexer.Token], false)}, {prop: "current", name: "current", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([], [css_lexer.Token], false)}, {prop: "next", name: "next", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([], [css_lexer.Token], false)}, {prop: "raw", name: "raw", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([], [$String], false)}, {prop: "decoded", name: "decoded", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([], [$String], false)}, {prop: "peek", name: "peek", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([css_lexer.T], [$Bool], false)}, {prop: "eat", name: "eat", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([css_lexer.T], [$Bool], false)}, {prop: "expect", name: "expect", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([css_lexer.T], [$Bool], false)}, {prop: "expectWithMatchingLoc", name: "expectWithMatchingLoc", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([css_lexer.T, logger.Loc], [$Bool], false)}, {prop: "unexpected", name: "unexpected", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([], [], false)}, {prop: "symbolForName", name: "symbolForName", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([logger.Loc, $String], [ast.LocRef], false)}, {prop: "recordAtLayerRule", name: "recordAtLayerRule", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$17], [], false)}, {prop: "parseListOfRules", name: "parseListOfRules", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([ruleContext], [sliceType$18], false)}, {prop: "parseListOfDeclarations", name: "parseListOfDeclarations", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([listOfDeclarationsOpts], [sliceType$18], false)}, {prop: "mangleRules", name: "mangleRules", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$18, $Bool], [sliceType$18], false)}, {prop: "parseURLOrString", name: "parseURLOrString", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([], [$String, logger.Range, $Bool], false)}, {prop: "expectURLOrString", name: "expectURLOrString", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([], [$String, logger.Range, $Bool], false)}, {prop: "parseAtRule", name: "parseAtRule", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([atRuleContext], [css_ast.Rule], false)}, {prop: "expectValidLayerNameIdent", name: "expectValidLayerNameIdent", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([], [$String, $Bool], false)}, {prop: "convertTokens", name: "convertTokens", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$8], [sliceType$1], false)}, {prop: "convertTokensHelper", name: "convertTokensHelper", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$8, css_lexer.T, convertTokensOpts], [sliceType$1, sliceType$8], false)}, {prop: "parseSelectorRule", name: "parseSelectorRule", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([$Bool, parseSelectorOpts], [css_ast.Rule], false)}, {prop: "parseQualifiedRule", name: "parseQualifiedRule", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([parseQualifiedRuleOpts], [css_ast.Rule], false)}, {prop: "scanForEndOfRule", name: "scanForEndOfRule", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([], [endOfRuleScan, $Int], false)}, {prop: "parseDeclaration", name: "parseDeclaration", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([], [css_ast.Rule], false)}, {prop: "parseComponentValue", name: "parseComponentValue", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([], [], false)}, {prop: "parseBlock", name: "parseBlock", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([css_lexer.T, css_lexer.T], [], false)}, {prop: "lowerNestingInRule", name: "lowerNestingInRule", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([css_ast.Rule, sliceType$18], [sliceType$18], false)}, {prop: "lowerNestingInRulesAndReturnRemaining", name: "lowerNestingInRulesAndReturnRemaining", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$18, ptrType$37], [sliceType$18], false)}, {prop: "addExpansionError", name: "addExpansionError", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([logger.Loc, $Int], [], false)}, {prop: "lowerNestingInRuleWithContext", name: "lowerNestingInRuleWithContext", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([css_ast.Rule, ptrType$37], [css_ast.Rule], false)}, {prop: "substituteAmpersandsInCompoundSelector", name: "substituteAmpersandsInCompoundSelector", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([css_ast.CompoundSelector, funcType, sliceType$5, leadingCombinatorStrip], [sliceType$5], false)}, {prop: "multipleComplexSelectorsToSingleComplexSelector", name: "multipleComplexSelectorsToSingleComplexSelector", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$3], [funcType], false)}, {prop: "reportNestingWithGeneratedPseudoClassIs", name: "reportNestingWithGeneratedPseudoClassIs", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([logger.Loc], [], false)}, {prop: "mangleTransforms", name: "mangleTransforms", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$1], [sliceType$1], false)}, {prop: "processListStyleShorthand", name: "processListStyleShorthand", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$1], [], false)}, {prop: "processListStyleType", name: "processListStyleType", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([ptrType$27], [], false)}, {prop: "generateGradient", name: "generateGradient", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([css_ast.Token, parsedGradient], [css_ast.Token], false)}, {prop: "lowerAndMinifyGradient", name: "lowerAndMinifyGradient", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([css_ast.Token, ptrType$35], [css_ast.Token], false)}, {prop: "mangleFontWeight", name: "mangleFontWeight", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([css_ast.Token], [css_ast.Token], false)}, {prop: "mangleFontFamily", name: "mangleFontFamily", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$1], [sliceType$1, $Bool], false)}, {prop: "mangleFamilyNameOrGenericName", name: "mangleFamilyNameOrGenericName", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$1, sliceType$1], [sliceType$1, sliceType$1, $Bool], false)}, {prop: "mangleFont", name: "mangleFont", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$1], [sliceType$1], false)}, {prop: "processContainerShorthand", name: "processContainerShorthand", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$1], [], false)}, {prop: "processContainerName", name: "processContainerName", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$1], [], false)}, {prop: "handleSingleContainerName", name: "handleSingleContainerName", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([ptrType$27], [], false)}, {prop: "handleComposesPragma", name: "handleComposesPragma", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([composesContext, sliceType$1], [], false)}, {prop: "lowerAndMinifyColor", name: "lowerAndMinifyColor", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([css_ast.Token, ptrType$35], [css_ast.Token], false)}, {prop: "tryToGenerateColor", name: "tryToGenerateColor", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([css_ast.Token, parsedColor, ptrType$35], [css_ast.Token], false)}, {prop: "lowerAndMangleBoxShadow", name: "lowerAndMangleBoxShadow", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$1, ptrType$35], [sliceType$1], false)}, {prop: "lowerAndMangleBoxShadows", name: "lowerAndMangleBoxShadows", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$1, ptrType$35], [sliceType$1], false)}, {prop: "processAnimationShorthand", name: "processAnimationShorthand", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$1], [], false)}, {prop: "processAnimationName", name: "processAnimationName", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$1], [], false)}, {prop: "handleSingleAnimationName", name: "handleSingleAnimationName", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([ptrType$27], [], false)}, {prop: "commaToken", name: "commaToken", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([logger.Loc], [css_ast.Token], false)}, {prop: "processDeclarations", name: "processDeclarations", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$18, ptrType$7], [sliceType$18], false)}, {prop: "insertPrefixedDeclaration", name: "insertPrefixedDeclaration", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$18, $String, logger.Loc, ptrType$36, mapType], [sliceType$18], false)}, {prop: "lowerInset", name: "lowerInset", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([logger.Loc, ptrType$36], [sliceType$18, $Bool], false)}]; + ptrType$39.methods = [{prop: "Equal", name: "Equal", pkg: "", typ: $funcType([ptrType$39], [$Bool], false)}]; + ptrType$40.methods = [{prop: "RemoveDuplicateRulesInPlace", name: "RemoveDuplicateRulesInPlace", pkg: "", typ: $funcType([$Uint32, sliceType$18, sliceType$12], [sliceType$18], false)}]; + ptrType$41.methods = [{prop: "updateSide", name: "updateSide", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$18, $Int, boxSide], [], false)}, {prop: "mangleSides", name: "mangleSides", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$18, ptrType$36, $Bool], [], false)}, {prop: "mangleSide", name: "mangleSide", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$18, ptrType$36, $Bool, $Int], [], false)}, {prop: "compactRules", name: "compactRules", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$18, logger.Range, $Bool], [], false)}]; unitSafetyTracker.methods = [{prop: "isSafeWith", name: "isSafeWith", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([unitSafetyTracker], [$Bool], false)}]; - ptrType$39.methods = [{prop: "includeUnitOf", name: "includeUnitOf", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([css_ast.Token], [], false)}]; - ptrType$40.methods = [{prop: "updateCorner", name: "updateCorner", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$18, $Int, borderRadiusCorner], [], false)}, {prop: "mangleCorners", name: "mangleCorners", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$18, ptrType$32, $Bool], [], false)}, {prop: "mangleCorner", name: "mangleCorner", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$18, ptrType$32, $Bool, $Int], [], false)}, {prop: "compactRules", name: "compactRules", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$18, logger.Range, $Bool], [], false)}]; + ptrType$42.methods = [{prop: "includeUnitOf", name: "includeUnitOf", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([css_ast.Token], [], false)}]; + ptrType$43.methods = [{prop: "updateCorner", name: "updateCorner", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$18, $Int, borderRadiusCorner], [], false)}, {prop: "mangleCorners", name: "mangleCorners", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$18, ptrType$36, $Bool], [], false)}, {prop: "mangleCorner", name: "mangleCorner", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$18, ptrType$36, $Bool, $Int], [], false)}, {prop: "compactRules", name: "compactRules", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([sliceType$18, logger.Range, $Bool], [], false)}]; colorSpace.methods = [{prop: "isPolar", name: "isPolar", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([], [$Bool], false)}]; calcTermWithOp.init("github.com/evanw/esbuild/internal/css_parser", [{prop: "data", name: "data", embedded: false, exported: false, typ: calcTerm, tag: ""}, {prop: "opLoc", name: "opLoc", embedded: false, exported: false, typ: logger.Loc, tag: ""}]); calcTerm.init([{prop: "convertToToken", name: "convertToToken", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([css_ast.WhitespaceFlags], [css_ast.Token, $Bool], false)}, {prop: "partiallySimplify", name: "partiallySimplify", pkg: "github.com/evanw/esbuild/internal/css_parser", typ: $funcType([], [calcTerm], false)}]); @@ -156186,7 +157419,7 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { parsedGradient.init("github.com/evanw/esbuild/internal/css_parser", [{prop: "leadingTokens", name: "leadingTokens", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "colorStops", name: "colorStops", embedded: false, exported: false, typ: sliceType$25, tag: ""}, {prop: "kind", name: "kind", embedded: false, exported: false, typ: gradientKind, tag: ""}, {prop: "repeating", name: "repeating", embedded: false, exported: false, typ: $Bool, tag: ""}]); colorStop.init("github.com/evanw/esbuild/internal/css_parser", [{prop: "positions", name: "positions", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "color", name: "color", embedded: false, exported: false, typ: css_ast.Token, tag: ""}, {prop: "midpoint", name: "midpoint", embedded: false, exported: false, typ: css_ast.Token, tag: ""}]); valueWithUnit.init("github.com/evanw/esbuild/internal/css_parser", [{prop: "unit", name: "unit", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "value", name: "value", embedded: false, exported: false, typ: helpers.F64, tag: ""}]); - parsedColorStop.init("github.com/evanw/esbuild/internal/css_parser", [{prop: "positionTerms", name: "positionTerms", embedded: false, exported: false, typ: sliceType$26, tag: ""}, {prop: "midpoint", name: "midpoint", embedded: false, exported: false, typ: ptrType$29, tag: ""}, {prop: "x", name: "x", embedded: false, exported: false, typ: helpers.F64, tag: ""}, {prop: "y", name: "y", embedded: false, exported: false, typ: helpers.F64, tag: ""}, {prop: "z", name: "z", embedded: false, exported: false, typ: helpers.F64, tag: ""}, {prop: "alpha", name: "alpha", embedded: false, exported: false, typ: helpers.F64, tag: ""}, {prop: "r", name: "r", embedded: false, exported: false, typ: helpers.F64, tag: ""}, {prop: "g", name: "g", embedded: false, exported: false, typ: helpers.F64, tag: ""}, {prop: "b", name: "b", embedded: false, exported: false, typ: helpers.F64, tag: ""}, {prop: "v0", name: "v0", embedded: false, exported: false, typ: helpers.F64, tag: ""}, {prop: "v1", name: "v1", embedded: false, exported: false, typ: helpers.F64, tag: ""}, {prop: "v2", name: "v2", embedded: false, exported: false, typ: helpers.F64, tag: ""}, {prop: "hasColorSpace", name: "hasColorSpace", embedded: false, exported: false, typ: $Bool, tag: ""}]); + parsedColorStop.init("github.com/evanw/esbuild/internal/css_parser", [{prop: "positionTerms", name: "positionTerms", embedded: false, exported: false, typ: sliceType$26, tag: ""}, {prop: "midpoint", name: "midpoint", embedded: false, exported: false, typ: ptrType$31, tag: ""}, {prop: "x", name: "x", embedded: false, exported: false, typ: helpers.F64, tag: ""}, {prop: "y", name: "y", embedded: false, exported: false, typ: helpers.F64, tag: ""}, {prop: "z", name: "z", embedded: false, exported: false, typ: helpers.F64, tag: ""}, {prop: "alpha", name: "alpha", embedded: false, exported: false, typ: helpers.F64, tag: ""}, {prop: "r", name: "r", embedded: false, exported: false, typ: helpers.F64, tag: ""}, {prop: "g", name: "g", embedded: false, exported: false, typ: helpers.F64, tag: ""}, {prop: "b", name: "b", embedded: false, exported: false, typ: helpers.F64, tag: ""}, {prop: "v0", name: "v0", embedded: false, exported: false, typ: helpers.F64, tag: ""}, {prop: "v1", name: "v1", embedded: false, exported: false, typ: helpers.F64, tag: ""}, {prop: "v2", name: "v2", embedded: false, exported: false, typ: helpers.F64, tag: ""}, {prop: "hasColorSpace", name: "hasColorSpace", embedded: false, exported: false, typ: $Bool, tag: ""}]); composesContext.init("github.com/evanw/esbuild/internal/css_parser", [{prop: "parentRefs", name: "parentRefs", embedded: false, exported: false, typ: sliceType$23, tag: ""}, {prop: "parentRange", name: "parentRange", embedded: false, exported: false, typ: logger.Range, tag: ""}, {prop: "problemRange", name: "problemRange", embedded: false, exported: false, typ: logger.Range, tag: ""}]); parsedColor.init("github.com/evanw/esbuild/internal/css_parser", [{prop: "x", name: "x", embedded: false, exported: false, typ: helpers.F64, tag: ""}, {prop: "y", name: "y", embedded: false, exported: false, typ: helpers.F64, tag: ""}, {prop: "z", name: "z", embedded: false, exported: false, typ: helpers.F64, tag: ""}, {prop: "hex", name: "hex", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "hasColorSpace", name: "hasColorSpace", embedded: false, exported: false, typ: $Bool, tag: ""}]); boxSide.init("github.com/evanw/esbuild/internal/css_parser", [{prop: "token", name: "token", embedded: false, exported: false, typ: css_ast.Token, tag: ""}, {prop: "unitSafety", name: "unitSafety", embedded: false, exported: false, typ: unitSafetyTracker, tag: ""}, {prop: "ruleIndex", name: "ruleIndex", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "wasSingleRule", name: "wasSingleRule", embedded: false, exported: false, typ: $Bool, tag: ""}]); @@ -156227,7 +157460,7 @@ $packages["github.com/evanw/esbuild/internal/css_parser"] = (function() { return $pkg; })(); $packages["github.com/evanw/esbuild/internal/js_lexer"] = (function() { - var $pkg = {}, $init, fmt, ast, config, helpers, js_ast, logger, strconv, strings, utf8, T, MaybeSubstring, Lexer, CommentBefore, LexerPanic, JSONFlavor, identifierKind, sliceType, sliceType$1, sliceType$2, sliceType$3, sliceType$4, ptrType, ptrType$1, jsxEntity, tokenToString, NewLexer, NewLexerGlobalName, NewLexerJSON, RangeOfIdentifier, RangeOfImportAssertOrWith, decodeJSXEntities, fixWhitespaceAndDecodeJSXEntities, hasPrefixWithWordBoundary, scanForPragmaArg; + var $pkg = {}, $init, fmt, ast, config, helpers, js_ast, logger, strconv, strings, utf8, T, MaybeSubstring, Lexer, CommentBefore, LexerPanic, JSONFlavor, identifierKind, sliceType, sliceType$1, sliceType$2, sliceType$3, sliceType$4, ptrType, ptrType$1, tokenToString, jsxEntity, NewLexer, NewLexerGlobalName, NewLexerJSON, RangeOfIdentifier, RangeOfImportAssertOrWith, decodeJSXEntities, fixWhitespaceAndDecodeJSXEntities, hasPrefixWithWordBoundary, scanForPragmaArg; fmt = $packages["fmt"]; ast = $packages["github.com/evanw/esbuild/internal/ast"]; config = $packages["github.com/evanw/esbuild/internal/config"]; @@ -158901,8 +160134,8 @@ $packages["github.com/evanw/esbuild/internal/js_lexer"] = (function() { $r = strconv.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = strings.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = utf8.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - jsxEntity = $makeMap($String.keyFor, [{ k: "quot", v: 34 }, { k: "amp", v: 38 }, { k: "apos", v: 39 }, { k: "lt", v: 60 }, { k: "gt", v: 62 }, { k: "nbsp", v: 160 }, { k: "iexcl", v: 161 }, { k: "cent", v: 162 }, { k: "pound", v: 163 }, { k: "curren", v: 164 }, { k: "yen", v: 165 }, { k: "brvbar", v: 166 }, { k: "sect", v: 167 }, { k: "uml", v: 168 }, { k: "copy", v: 169 }, { k: "ordf", v: 170 }, { k: "laquo", v: 171 }, { k: "not", v: 172 }, { k: "shy", v: 173 }, { k: "reg", v: 174 }, { k: "macr", v: 175 }, { k: "deg", v: 176 }, { k: "plusmn", v: 177 }, { k: "sup2", v: 178 }, { k: "sup3", v: 179 }, { k: "acute", v: 180 }, { k: "micro", v: 181 }, { k: "para", v: 182 }, { k: "middot", v: 183 }, { k: "cedil", v: 184 }, { k: "sup1", v: 185 }, { k: "ordm", v: 186 }, { k: "raquo", v: 187 }, { k: "frac14", v: 188 }, { k: "frac12", v: 189 }, { k: "frac34", v: 190 }, { k: "iquest", v: 191 }, { k: "Agrave", v: 192 }, { k: "Aacute", v: 193 }, { k: "Acirc", v: 194 }, { k: "Atilde", v: 195 }, { k: "Auml", v: 196 }, { k: "Aring", v: 197 }, { k: "AElig", v: 198 }, { k: "Ccedil", v: 199 }, { k: "Egrave", v: 200 }, { k: "Eacute", v: 201 }, { k: "Ecirc", v: 202 }, { k: "Euml", v: 203 }, { k: "Igrave", v: 204 }, { k: "Iacute", v: 205 }, { k: "Icirc", v: 206 }, { k: "Iuml", v: 207 }, { k: "ETH", v: 208 }, { k: "Ntilde", v: 209 }, { k: "Ograve", v: 210 }, { k: "Oacute", v: 211 }, { k: "Ocirc", v: 212 }, { k: "Otilde", v: 213 }, { k: "Ouml", v: 214 }, { k: "times", v: 215 }, { k: "Oslash", v: 216 }, { k: "Ugrave", v: 217 }, { k: "Uacute", v: 218 }, { k: "Ucirc", v: 219 }, { k: "Uuml", v: 220 }, { k: "Yacute", v: 221 }, { k: "THORN", v: 222 }, { k: "szlig", v: 223 }, { k: "agrave", v: 224 }, { k: "aacute", v: 225 }, { k: "acirc", v: 226 }, { k: "atilde", v: 227 }, { k: "auml", v: 228 }, { k: "aring", v: 229 }, { k: "aelig", v: 230 }, { k: "ccedil", v: 231 }, { k: "egrave", v: 232 }, { k: "eacute", v: 233 }, { k: "ecirc", v: 234 }, { k: "euml", v: 235 }, { k: "igrave", v: 236 }, { k: "iacute", v: 237 }, { k: "icirc", v: 238 }, { k: "iuml", v: 239 }, { k: "eth", v: 240 }, { k: "ntilde", v: 241 }, { k: "ograve", v: 242 }, { k: "oacute", v: 243 }, { k: "ocirc", v: 244 }, { k: "otilde", v: 245 }, { k: "ouml", v: 246 }, { k: "divide", v: 247 }, { k: "oslash", v: 248 }, { k: "ugrave", v: 249 }, { k: "uacute", v: 250 }, { k: "ucirc", v: 251 }, { k: "uuml", v: 252 }, { k: "yacute", v: 253 }, { k: "thorn", v: 254 }, { k: "yuml", v: 255 }, { k: "OElig", v: 338 }, { k: "oelig", v: 339 }, { k: "Scaron", v: 352 }, { k: "scaron", v: 353 }, { k: "Yuml", v: 376 }, { k: "fnof", v: 402 }, { k: "circ", v: 710 }, { k: "tilde", v: 732 }, { k: "Alpha", v: 913 }, { k: "Beta", v: 914 }, { k: "Gamma", v: 915 }, { k: "Delta", v: 916 }, { k: "Epsilon", v: 917 }, { k: "Zeta", v: 918 }, { k: "Eta", v: 919 }, { k: "Theta", v: 920 }, { k: "Iota", v: 921 }, { k: "Kappa", v: 922 }, { k: "Lambda", v: 923 }, { k: "Mu", v: 924 }, { k: "Nu", v: 925 }, { k: "Xi", v: 926 }, { k: "Omicron", v: 927 }, { k: "Pi", v: 928 }, { k: "Rho", v: 929 }, { k: "Sigma", v: 931 }, { k: "Tau", v: 932 }, { k: "Upsilon", v: 933 }, { k: "Phi", v: 934 }, { k: "Chi", v: 935 }, { k: "Psi", v: 936 }, { k: "Omega", v: 937 }, { k: "alpha", v: 945 }, { k: "beta", v: 946 }, { k: "gamma", v: 947 }, { k: "delta", v: 948 }, { k: "epsilon", v: 949 }, { k: "zeta", v: 950 }, { k: "eta", v: 951 }, { k: "theta", v: 952 }, { k: "iota", v: 953 }, { k: "kappa", v: 954 }, { k: "lambda", v: 955 }, { k: "mu", v: 956 }, { k: "nu", v: 957 }, { k: "xi", v: 958 }, { k: "omicron", v: 959 }, { k: "pi", v: 960 }, { k: "rho", v: 961 }, { k: "sigmaf", v: 962 }, { k: "sigma", v: 963 }, { k: "tau", v: 964 }, { k: "upsilon", v: 965 }, { k: "phi", v: 966 }, { k: "chi", v: 967 }, { k: "psi", v: 968 }, { k: "omega", v: 969 }, { k: "thetasym", v: 977 }, { k: "upsih", v: 978 }, { k: "piv", v: 982 }, { k: "ensp", v: 8194 }, { k: "emsp", v: 8195 }, { k: "thinsp", v: 8201 }, { k: "zwnj", v: 8204 }, { k: "zwj", v: 8205 }, { k: "lrm", v: 8206 }, { k: "rlm", v: 8207 }, { k: "ndash", v: 8211 }, { k: "mdash", v: 8212 }, { k: "lsquo", v: 8216 }, { k: "rsquo", v: 8217 }, { k: "sbquo", v: 8218 }, { k: "ldquo", v: 8220 }, { k: "rdquo", v: 8221 }, { k: "bdquo", v: 8222 }, { k: "dagger", v: 8224 }, { k: "Dagger", v: 8225 }, { k: "bull", v: 8226 }, { k: "hellip", v: 8230 }, { k: "permil", v: 8240 }, { k: "prime", v: 8242 }, { k: "Prime", v: 8243 }, { k: "lsaquo", v: 8249 }, { k: "rsaquo", v: 8250 }, { k: "oline", v: 8254 }, { k: "frasl", v: 8260 }, { k: "euro", v: 8364 }, { k: "image", v: 8465 }, { k: "weierp", v: 8472 }, { k: "real", v: 8476 }, { k: "trade", v: 8482 }, { k: "alefsym", v: 8501 }, { k: "larr", v: 8592 }, { k: "uarr", v: 8593 }, { k: "rarr", v: 8594 }, { k: "darr", v: 8595 }, { k: "harr", v: 8596 }, { k: "crarr", v: 8629 }, { k: "lArr", v: 8656 }, { k: "uArr", v: 8657 }, { k: "rArr", v: 8658 }, { k: "dArr", v: 8659 }, { k: "hArr", v: 8660 }, { k: "forall", v: 8704 }, { k: "part", v: 8706 }, { k: "exist", v: 8707 }, { k: "empty", v: 8709 }, { k: "nabla", v: 8711 }, { k: "isin", v: 8712 }, { k: "notin", v: 8713 }, { k: "ni", v: 8715 }, { k: "prod", v: 8719 }, { k: "sum", v: 8721 }, { k: "minus", v: 8722 }, { k: "lowast", v: 8727 }, { k: "radic", v: 8730 }, { k: "prop", v: 8733 }, { k: "infin", v: 8734 }, { k: "ang", v: 8736 }, { k: "and", v: 8743 }, { k: "or", v: 8744 }, { k: "cap", v: 8745 }, { k: "cup", v: 8746 }, { k: "int", v: 8747 }, { k: "there4", v: 8756 }, { k: "sim", v: 8764 }, { k: "cong", v: 8773 }, { k: "asymp", v: 8776 }, { k: "ne", v: 8800 }, { k: "equiv", v: 8801 }, { k: "le", v: 8804 }, { k: "ge", v: 8805 }, { k: "sub", v: 8834 }, { k: "sup", v: 8835 }, { k: "nsub", v: 8836 }, { k: "sube", v: 8838 }, { k: "supe", v: 8839 }, { k: "oplus", v: 8853 }, { k: "otimes", v: 8855 }, { k: "perp", v: 8869 }, { k: "sdot", v: 8901 }, { k: "lceil", v: 8968 }, { k: "rceil", v: 8969 }, { k: "lfloor", v: 8970 }, { k: "rfloor", v: 8971 }, { k: "lang", v: 9001 }, { k: "rang", v: 9002 }, { k: "loz", v: 9674 }, { k: "spades", v: 9824 }, { k: "clubs", v: 9827 }, { k: "hearts", v: 9829 }, { k: "diams", v: 9830 }]); tokenToString = $makeMap(T.keyFor, [{ k: 0, v: "end of file" }, { k: 1, v: "syntax error" }, { k: 2, v: "hashbang comment" }, { k: 3, v: "template literal" }, { k: 4, v: "number" }, { k: 5, v: "string" }, { k: 6, v: "bigint" }, { k: 7, v: "template literal" }, { k: 8, v: "template literal" }, { k: 9, v: "template literal" }, { k: 10, v: "\"&\"" }, { k: 11, v: "\"&&\"" }, { k: 12, v: "\"*\"" }, { k: 13, v: "\"**\"" }, { k: 14, v: "\"@\"" }, { k: 15, v: "\"|\"" }, { k: 16, v: "\"||\"" }, { k: 17, v: "\"^\"" }, { k: 18, v: "\"}\"" }, { k: 19, v: "\"]\"" }, { k: 20, v: "\")\"" }, { k: 21, v: "\":\"" }, { k: 22, v: "\",\"" }, { k: 23, v: "\".\"" }, { k: 24, v: "\"...\"" }, { k: 25, v: "\"==\"" }, { k: 26, v: "\"===\"" }, { k: 27, v: "\"=>\"" }, { k: 28, v: "\"!\"" }, { k: 29, v: "\"!=\"" }, { k: 30, v: "\"!==\"" }, { k: 31, v: "\">\"" }, { k: 32, v: "\">=\"" }, { k: 33, v: "\">>\"" }, { k: 34, v: "\">>>\"" }, { k: 35, v: "\"<\"" }, { k: 36, v: "\"<=\"" }, { k: 37, v: "\"<<\"" }, { k: 38, v: "\"-\"" }, { k: 39, v: "\"--\"" }, { k: 40, v: "\"{\"" }, { k: 41, v: "\"[\"" }, { k: 42, v: "\"(\"" }, { k: 43, v: "\"%\"" }, { k: 44, v: "\"+\"" }, { k: 45, v: "\"++\"" }, { k: 46, v: "\"?\"" }, { k: 47, v: "\"?.\"" }, { k: 48, v: "\"??\"" }, { k: 49, v: "\";\"" }, { k: 50, v: "\"/\"" }, { k: 51, v: "\"~\"" }, { k: 52, v: "\"&&=\"" }, { k: 53, v: "\"&=\"" }, { k: 54, v: "\"**=\"" }, { k: 55, v: "\"*=\"" }, { k: 56, v: "\"||=\"" }, { k: 57, v: "\"|=\"" }, { k: 58, v: "\"^=\"" }, { k: 59, v: "\"=\"" }, { k: 60, v: "\">>=\"" }, { k: 61, v: "\">>>=\"" }, { k: 62, v: "\"<<=\"" }, { k: 63, v: "\"-=\"" }, { k: 64, v: "\"%=\"" }, { k: 65, v: "\"+=\"" }, { k: 66, v: "\"??=\"" }, { k: 67, v: "\"/=\"" }, { k: 68, v: "private identifier" }, { k: 69, v: "identifier" }, { k: 70, v: "escaped keyword" }, { k: 71, v: "\"break\"" }, { k: 72, v: "\"case\"" }, { k: 73, v: "\"catch\"" }, { k: 74, v: "\"class\"" }, { k: 75, v: "\"const\"" }, { k: 76, v: "\"continue\"" }, { k: 77, v: "\"debugger\"" }, { k: 78, v: "\"default\"" }, { k: 79, v: "\"delete\"" }, { k: 80, v: "\"do\"" }, { k: 81, v: "\"else\"" }, { k: 82, v: "\"enum\"" }, { k: 83, v: "\"export\"" }, { k: 84, v: "\"extends\"" }, { k: 85, v: "\"false\"" }, { k: 86, v: "\"finally\"" }, { k: 87, v: "\"for\"" }, { k: 88, v: "\"function\"" }, { k: 89, v: "\"if\"" }, { k: 90, v: "\"import\"" }, { k: 91, v: "\"in\"" }, { k: 92, v: "\"instanceof\"" }, { k: 93, v: "\"new\"" }, { k: 94, v: "\"null\"" }, { k: 95, v: "\"return\"" }, { k: 96, v: "\"super\"" }, { k: 97, v: "\"switch\"" }, { k: 98, v: "\"this\"" }, { k: 99, v: "\"throw\"" }, { k: 100, v: "\"true\"" }, { k: 101, v: "\"try\"" }, { k: 102, v: "\"typeof\"" }, { k: 103, v: "\"var\"" }, { k: 104, v: "\"void\"" }, { k: 105, v: "\"while\"" }, { k: 106, v: "\"with\"" }]); + jsxEntity = $makeMap($String.keyFor, [{ k: "quot", v: 34 }, { k: "amp", v: 38 }, { k: "apos", v: 39 }, { k: "lt", v: 60 }, { k: "gt", v: 62 }, { k: "nbsp", v: 160 }, { k: "iexcl", v: 161 }, { k: "cent", v: 162 }, { k: "pound", v: 163 }, { k: "curren", v: 164 }, { k: "yen", v: 165 }, { k: "brvbar", v: 166 }, { k: "sect", v: 167 }, { k: "uml", v: 168 }, { k: "copy", v: 169 }, { k: "ordf", v: 170 }, { k: "laquo", v: 171 }, { k: "not", v: 172 }, { k: "shy", v: 173 }, { k: "reg", v: 174 }, { k: "macr", v: 175 }, { k: "deg", v: 176 }, { k: "plusmn", v: 177 }, { k: "sup2", v: 178 }, { k: "sup3", v: 179 }, { k: "acute", v: 180 }, { k: "micro", v: 181 }, { k: "para", v: 182 }, { k: "middot", v: 183 }, { k: "cedil", v: 184 }, { k: "sup1", v: 185 }, { k: "ordm", v: 186 }, { k: "raquo", v: 187 }, { k: "frac14", v: 188 }, { k: "frac12", v: 189 }, { k: "frac34", v: 190 }, { k: "iquest", v: 191 }, { k: "Agrave", v: 192 }, { k: "Aacute", v: 193 }, { k: "Acirc", v: 194 }, { k: "Atilde", v: 195 }, { k: "Auml", v: 196 }, { k: "Aring", v: 197 }, { k: "AElig", v: 198 }, { k: "Ccedil", v: 199 }, { k: "Egrave", v: 200 }, { k: "Eacute", v: 201 }, { k: "Ecirc", v: 202 }, { k: "Euml", v: 203 }, { k: "Igrave", v: 204 }, { k: "Iacute", v: 205 }, { k: "Icirc", v: 206 }, { k: "Iuml", v: 207 }, { k: "ETH", v: 208 }, { k: "Ntilde", v: 209 }, { k: "Ograve", v: 210 }, { k: "Oacute", v: 211 }, { k: "Ocirc", v: 212 }, { k: "Otilde", v: 213 }, { k: "Ouml", v: 214 }, { k: "times", v: 215 }, { k: "Oslash", v: 216 }, { k: "Ugrave", v: 217 }, { k: "Uacute", v: 218 }, { k: "Ucirc", v: 219 }, { k: "Uuml", v: 220 }, { k: "Yacute", v: 221 }, { k: "THORN", v: 222 }, { k: "szlig", v: 223 }, { k: "agrave", v: 224 }, { k: "aacute", v: 225 }, { k: "acirc", v: 226 }, { k: "atilde", v: 227 }, { k: "auml", v: 228 }, { k: "aring", v: 229 }, { k: "aelig", v: 230 }, { k: "ccedil", v: 231 }, { k: "egrave", v: 232 }, { k: "eacute", v: 233 }, { k: "ecirc", v: 234 }, { k: "euml", v: 235 }, { k: "igrave", v: 236 }, { k: "iacute", v: 237 }, { k: "icirc", v: 238 }, { k: "iuml", v: 239 }, { k: "eth", v: 240 }, { k: "ntilde", v: 241 }, { k: "ograve", v: 242 }, { k: "oacute", v: 243 }, { k: "ocirc", v: 244 }, { k: "otilde", v: 245 }, { k: "ouml", v: 246 }, { k: "divide", v: 247 }, { k: "oslash", v: 248 }, { k: "ugrave", v: 249 }, { k: "uacute", v: 250 }, { k: "ucirc", v: 251 }, { k: "uuml", v: 252 }, { k: "yacute", v: 253 }, { k: "thorn", v: 254 }, { k: "yuml", v: 255 }, { k: "OElig", v: 338 }, { k: "oelig", v: 339 }, { k: "Scaron", v: 352 }, { k: "scaron", v: 353 }, { k: "Yuml", v: 376 }, { k: "fnof", v: 402 }, { k: "circ", v: 710 }, { k: "tilde", v: 732 }, { k: "Alpha", v: 913 }, { k: "Beta", v: 914 }, { k: "Gamma", v: 915 }, { k: "Delta", v: 916 }, { k: "Epsilon", v: 917 }, { k: "Zeta", v: 918 }, { k: "Eta", v: 919 }, { k: "Theta", v: 920 }, { k: "Iota", v: 921 }, { k: "Kappa", v: 922 }, { k: "Lambda", v: 923 }, { k: "Mu", v: 924 }, { k: "Nu", v: 925 }, { k: "Xi", v: 926 }, { k: "Omicron", v: 927 }, { k: "Pi", v: 928 }, { k: "Rho", v: 929 }, { k: "Sigma", v: 931 }, { k: "Tau", v: 932 }, { k: "Upsilon", v: 933 }, { k: "Phi", v: 934 }, { k: "Chi", v: 935 }, { k: "Psi", v: 936 }, { k: "Omega", v: 937 }, { k: "alpha", v: 945 }, { k: "beta", v: 946 }, { k: "gamma", v: 947 }, { k: "delta", v: 948 }, { k: "epsilon", v: 949 }, { k: "zeta", v: 950 }, { k: "eta", v: 951 }, { k: "theta", v: 952 }, { k: "iota", v: 953 }, { k: "kappa", v: 954 }, { k: "lambda", v: 955 }, { k: "mu", v: 956 }, { k: "nu", v: 957 }, { k: "xi", v: 958 }, { k: "omicron", v: 959 }, { k: "pi", v: 960 }, { k: "rho", v: 961 }, { k: "sigmaf", v: 962 }, { k: "sigma", v: 963 }, { k: "tau", v: 964 }, { k: "upsilon", v: 965 }, { k: "phi", v: 966 }, { k: "chi", v: 967 }, { k: "psi", v: 968 }, { k: "omega", v: 969 }, { k: "thetasym", v: 977 }, { k: "upsih", v: 978 }, { k: "piv", v: 982 }, { k: "ensp", v: 8194 }, { k: "emsp", v: 8195 }, { k: "thinsp", v: 8201 }, { k: "zwnj", v: 8204 }, { k: "zwj", v: 8205 }, { k: "lrm", v: 8206 }, { k: "rlm", v: 8207 }, { k: "ndash", v: 8211 }, { k: "mdash", v: 8212 }, { k: "lsquo", v: 8216 }, { k: "rsquo", v: 8217 }, { k: "sbquo", v: 8218 }, { k: "ldquo", v: 8220 }, { k: "rdquo", v: 8221 }, { k: "bdquo", v: 8222 }, { k: "dagger", v: 8224 }, { k: "Dagger", v: 8225 }, { k: "bull", v: 8226 }, { k: "hellip", v: 8230 }, { k: "permil", v: 8240 }, { k: "prime", v: 8242 }, { k: "Prime", v: 8243 }, { k: "lsaquo", v: 8249 }, { k: "rsaquo", v: 8250 }, { k: "oline", v: 8254 }, { k: "frasl", v: 8260 }, { k: "euro", v: 8364 }, { k: "image", v: 8465 }, { k: "weierp", v: 8472 }, { k: "real", v: 8476 }, { k: "trade", v: 8482 }, { k: "alefsym", v: 8501 }, { k: "larr", v: 8592 }, { k: "uarr", v: 8593 }, { k: "rarr", v: 8594 }, { k: "darr", v: 8595 }, { k: "harr", v: 8596 }, { k: "crarr", v: 8629 }, { k: "lArr", v: 8656 }, { k: "uArr", v: 8657 }, { k: "rArr", v: 8658 }, { k: "dArr", v: 8659 }, { k: "hArr", v: 8660 }, { k: "forall", v: 8704 }, { k: "part", v: 8706 }, { k: "exist", v: 8707 }, { k: "empty", v: 8709 }, { k: "nabla", v: 8711 }, { k: "isin", v: 8712 }, { k: "notin", v: 8713 }, { k: "ni", v: 8715 }, { k: "prod", v: 8719 }, { k: "sum", v: 8721 }, { k: "minus", v: 8722 }, { k: "lowast", v: 8727 }, { k: "radic", v: 8730 }, { k: "prop", v: 8733 }, { k: "infin", v: 8734 }, { k: "ang", v: 8736 }, { k: "and", v: 8743 }, { k: "or", v: 8744 }, { k: "cap", v: 8745 }, { k: "cup", v: 8746 }, { k: "int", v: 8747 }, { k: "there4", v: 8756 }, { k: "sim", v: 8764 }, { k: "cong", v: 8773 }, { k: "asymp", v: 8776 }, { k: "ne", v: 8800 }, { k: "equiv", v: 8801 }, { k: "le", v: 8804 }, { k: "ge", v: 8805 }, { k: "sub", v: 8834 }, { k: "sup", v: 8835 }, { k: "nsub", v: 8836 }, { k: "sube", v: 8838 }, { k: "supe", v: 8839 }, { k: "oplus", v: 8853 }, { k: "otimes", v: 8855 }, { k: "perp", v: 8869 }, { k: "sdot", v: 8901 }, { k: "lceil", v: 8968 }, { k: "rceil", v: 8969 }, { k: "lfloor", v: 8970 }, { k: "rfloor", v: 8971 }, { k: "lang", v: 9001 }, { k: "rang", v: 9002 }, { k: "loz", v: 9674 }, { k: "spades", v: 9824 }, { k: "clubs", v: 9827 }, { k: "hearts", v: 9829 }, { k: "diams", v: 9830 }]); $pkg.Keywords = $makeMap($String.keyFor, [{ k: "break", v: 71 }, { k: "case", v: 72 }, { k: "catch", v: 73 }, { k: "class", v: 74 }, { k: "const", v: 75 }, { k: "continue", v: 76 }, { k: "debugger", v: 77 }, { k: "default", v: 78 }, { k: "delete", v: 79 }, { k: "do", v: 80 }, { k: "else", v: 81 }, { k: "enum", v: 82 }, { k: "export", v: 83 }, { k: "extends", v: 84 }, { k: "false", v: 85 }, { k: "finally", v: 86 }, { k: "for", v: 87 }, { k: "function", v: 88 }, { k: "if", v: 89 }, { k: "import", v: 90 }, { k: "in", v: 91 }, { k: "instanceof", v: 92 }, { k: "new", v: 93 }, { k: "null", v: 94 }, { k: "return", v: 95 }, { k: "super", v: 96 }, { k: "switch", v: 97 }, { k: "this", v: 98 }, { k: "throw", v: 99 }, { k: "true", v: 100 }, { k: "try", v: 101 }, { k: "typeof", v: 102 }, { k: "var", v: 103 }, { k: "void", v: 104 }, { k: "while", v: 105 }, { k: "with", v: 106 }]); $pkg.StrictModeReservedWords = $makeMap($String.keyFor, [{ k: "implements", v: true }, { k: "interface", v: true }, { k: "let", v: true }, { k: "package", v: true }, { k: "private", v: true }, { k: "protected", v: true }, { k: "public", v: true }, { k: "static", v: true }, { k: "yield", v: true }]); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; @@ -158911,7 +160144,7 @@ $packages["github.com/evanw/esbuild/internal/js_lexer"] = (function() { return $pkg; })(); $packages["github.com/evanw/esbuild/internal/renamer"] = (function() { - var $pkg = {}, $init, fmt, ast, js_ast, js_lexer, sort, strconv, sync, atomic, Renamer, symbolSlot, MinifyRenamer, StableSymbolCount, StableSymbolCountArray, slotAndCount, slotAndCountArray, NumberRenamer, numberScope, nameUse, ExportRenamer, sliceType, sliceType$1, sliceType$2, arrayType, ptrType, ptrType$1, ptrType$2, arrayType$1, ptrType$3, sliceType$3, ptrType$4, sliceType$4, sliceType$5, sliceType$6, ptrType$5, ptrType$7, mapType, sliceType$7, ptrType$8, ptrType$9, mapType$1, mapType$2, ptrType$10, sliceType$8, mapType$3, ptrType$11, ptrType$12, ComputeReservedNames, computeReservedNamesForScope, NewMinifyRenamer, AssignNestedScopeSlots, assignNestedScopeSlotsHelper, NewNumberRenamer; + var $pkg = {}, $init, fmt, ast, js_ast, js_lexer, sort, strconv, sync, atomic, Renamer, symbolSlot, MinifyRenamer, StableSymbolCount, StableSymbolCountArray, slotAndCount, slotAndCountArray, NumberRenamer, numberScope, nameUse, ExportRenamer, sliceType, sliceType$1, sliceType$2, arrayType, ptrType, ptrType$1, ptrType$2, ptrType$3, arrayType$1, ptrType$4, sliceType$3, ptrType$5, ptrType$6, sliceType$4, sliceType$5, sliceType$6, ptrType$7, ptrType$9, mapType, sliceType$7, ptrType$10, ptrType$11, mapType$1, mapType$2, ptrType$12, sliceType$8, mapType$3, ptrType$13, ptrType$14, ComputeReservedNames, computeReservedNamesForScope, NewMinifyRenamer, AssignNestedScopeSlots, assignNestedScopeSlotsHelper, NewNumberRenamer; fmt = $packages["fmt"]; ast = $packages["github.com/evanw/esbuild/internal/ast"]; js_ast = $packages["github.com/evanw/esbuild/internal/js_ast"]; @@ -158975,7 +160208,7 @@ $packages["github.com/evanw/esbuild/internal/renamer"] = (function() { this.$val = this; if (arguments.length === 0) { this.symbols = new ast.SymbolMap.ptr(sliceType$1.nil); - this.root = new numberScope.ptr(ptrType$4.nil, false); + this.root = new numberScope.ptr(ptrType$6.nil, false); this.names = sliceType$5.nil; return; } @@ -158986,7 +160219,7 @@ $packages["github.com/evanw/esbuild/internal/renamer"] = (function() { numberScope = $newType(0, $kindStruct, "renamer.numberScope", true, "github.com/evanw/esbuild/internal/renamer", false, function(parent_, nameCounts_) { this.$val = this; if (arguments.length === 0) { - this.parent = ptrType$4.nil; + this.parent = ptrType$6.nil; this.nameCounts = false; return; } @@ -159021,28 +160254,30 @@ $packages["github.com/evanw/esbuild/internal/renamer"] = (function() { sliceType$2 = $sliceType(symbolSlot); arrayType = $arrayType(sliceType$2, 4); ptrType = $ptrType(ast.NamespaceAlias); - ptrType$1 = $ptrType($Uint32); - ptrType$2 = $ptrType(sliceType$2); + ptrType$1 = $ptrType(symbolSlot); + ptrType$2 = $ptrType($Uint32); + ptrType$3 = $ptrType(sliceType$2); arrayType$1 = $arrayType($Uint32, 4); - ptrType$3 = $ptrType(ast.SlotCounts); + ptrType$4 = $ptrType(ast.SlotCounts); sliceType$3 = $sliceType($Int); - ptrType$4 = $ptrType(numberScope); + ptrType$5 = $ptrType(ast.Symbol); + ptrType$6 = $ptrType(numberScope); sliceType$4 = $sliceType($String); sliceType$5 = $sliceType(sliceType$4); sliceType$6 = $sliceType($emptyInterface); - ptrType$5 = $ptrType(sliceType$3); - ptrType$7 = $ptrType(StableSymbolCountArray); + ptrType$7 = $ptrType(sliceType$3); + ptrType$9 = $ptrType(StableSymbolCountArray); mapType = $mapType(ast.Ref, js_ast.SymbolUse); sliceType$7 = $sliceType($Uint32); - ptrType$8 = $ptrType(ast.NameMinifier); - ptrType$9 = $ptrType(MinifyRenamer); + ptrType$10 = $ptrType(ast.NameMinifier); + ptrType$11 = $ptrType(MinifyRenamer); mapType$1 = $mapType($String, $Uint32); mapType$2 = $mapType(ast.Ref, $Uint32); - ptrType$10 = $ptrType(js_ast.Scope); - sliceType$8 = $sliceType(ptrType$10); + ptrType$12 = $ptrType(js_ast.Scope); + sliceType$8 = $sliceType(ptrType$12); mapType$3 = $mapType($Uint32, sliceType$8); - ptrType$11 = $ptrType(NumberRenamer); - ptrType$12 = $ptrType(ExportRenamer); + ptrType$13 = $ptrType(NumberRenamer); + ptrType$14 = $ptrType(ExportRenamer); ComputeReservedNames = function ComputeReservedNames$1(moduleScopes, symbols) { var _entry, _entry$1, _i, _i$1, _i$2, _key, _key$1, _key$2, _key$3, _keys, _keys$1, _ref, _ref$1, _ref$2, _size, _size$1, k, k$1, moduleScopes, names, scope, symbols; names = new $global.Map(); @@ -159234,17 +160469,17 @@ $packages["github.com/evanw/esbuild/internal/renamer"] = (function() { } i = $clone(symbol.NestedScopeSlot, ast.Index32); if ($clone(i, ast.Index32).IsValid()) { - slot = (x = (x$1 = r.slots, ((ns < 0 || ns >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[ns])), x$2 = $clone(i, ast.Index32).GetIndex(), ((x$2 < 0 || x$2 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$2])); - atomic.AddUint32((slot.$ptr_count || (slot.$ptr_count = new ptrType$1(function() { return this.$target.count; }, function($v) { this.$target.count = $v; }, slot))), count); + slot = (x = (x$1 = r.slots, ((ns < 0 || ns >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[ns])), x$2 = $clone(i, ast.Index32).GetIndex(), ((x$2 < 0 || x$2 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + x$2, ptrType$1))); + atomic.AddUint32((slot === ptrType$1.nil && $throwNilPointerError(), (slot.$ptr_count || (slot.$ptr_count = new ptrType$2(function() { return this.$target.count; }, function($v) { this.$target.count = $v; }, slot)))), count); if (new ast.SymbolFlags(symbol.Flags).Has(2)) { - atomic.StoreUint32((slot.$ptr_needsCapitalForJSX || (slot.$ptr_needsCapitalForJSX = new ptrType$1(function() { return this.$target.needsCapitalForJSX; }, function($v) { this.$target.needsCapitalForJSX = $v; }, slot))), 1); + atomic.StoreUint32((slot === ptrType$1.nil && $throwNilPointerError(), (slot.$ptr_needsCapitalForJSX || (slot.$ptr_needsCapitalForJSX = new ptrType$2(function() { return this.$target.needsCapitalForJSX; }, function($v) { this.$target.needsCapitalForJSX = $v; }, slot)))), 1); } return; } topLevelSymbols.$set($append(topLevelSymbols.$get(), new StableSymbolCount.ptr((x$3 = ref.SourceIndex, ((x$3 < 0 || x$3 >= stableSourceIndices.$length) ? ($throwRuntimeError("index out of range"), undefined) : stableSourceIndices.$array[stableSourceIndices.$offset + x$3])), $clone(ref, ast.Ref), count))); }; $ptrType(MinifyRenamer).prototype.AllocateTopLevelSymbolSlots = function AllocateTopLevelSymbolSlots(topLevelSymbols) { - var _entry, _i, _key, _ref, _tuple, i, needsCapitalForJSX, ok, r, slot, slots, stable, symbol, topLevelSymbols, x; + var _entry, _i, _key, _ref, _tuple, i, needsCapitalForJSX, ok, r, slot, slots, stable, symbol, topLevelSymbols, x, x$1, x$2; r = this; _ref = topLevelSymbols; _i = 0; @@ -159252,12 +160487,12 @@ $packages["github.com/evanw/esbuild/internal/renamer"] = (function() { if (!(_i < _ref.$length)) { break; } stable = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), StableSymbolCount); symbol = $clone(r.symbols, ast.SymbolMap).Get($clone(stable.Ref, ast.Ref)); - slots = $indexPtr(r.slots, symbol.SlotNamespace(), ptrType$2); + slots = (x = r.slots, x$1 = symbol.SlotNamespace(), ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x, x$1, ptrType$3))); _tuple = (_entry = $mapIndex(r.topLevelSymbolToSlot,ast.Ref.keyFor(stable.Ref)), _entry !== undefined ? [_entry.v, true] : [0, false]); i = _tuple[0]; ok = _tuple[1]; if (ok) { - slot = (x = slots.$get(), ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + slot = (x$2 = slots.$get(), ((i < 0 || i >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$2.$array, x$2.$offset + i, ptrType$1))); slot.count = slot.count + (stable.Count) >>> 0; if (new ast.SymbolFlags(symbol.Flags).Has(2)) { slot.needsCapitalForJSX = 1; @@ -159301,7 +160536,7 @@ $packages["github.com/evanw/esbuild/internal/renamer"] = (function() { while (true) { if (!(_i$2 < _ref$2.$length)) { break; } data = $clone(((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]), slotAndCount); - slot = (x = data.slot, ((x < 0 || x >= slots.$length) ? ($throwRuntimeError("index out of range"), undefined) : slots.$array[slots.$offset + x])); + slot = (x = data.slot, ((x < 0 || x >= slots.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(slots.$array, slots.$offset + x, ptrType$1))); name = $clone(minifier, ast.NameMinifier).NumberToMinifiedName(nextName); nextName = nextName + (1) >> 0; _1 = ((ns << 24 >>> 24)); @@ -159372,7 +160607,7 @@ $packages["github.com/evanw/esbuild/internal/renamer"] = (function() { /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 2; continue; } child = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); _r = assignNestedScopeSlotsHelper(child, symbols, $clone(arrayType$1.zero(), ast.SlotCounts)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $r = new ptrType$3(slotCounts).UnionMax($clone(_r, ast.SlotCounts)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = new ptrType$4(slotCounts).UnionMax($clone(_r, ast.SlotCounts)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _i$2++; $s = 1; continue; case 2: @@ -159430,7 +160665,7 @@ $packages["github.com/evanw/esbuild/internal/renamer"] = (function() { while (true) { if (!(_i$1 < _ref$1.$length)) { break; } innerIndex = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - symbol = ((innerIndex < 0 || innerIndex >= symbols.$length) ? ($throwRuntimeError("index out of range"), undefined) : symbols.$array[symbols.$offset + innerIndex]); + symbol = ((innerIndex < 0 || innerIndex >= symbols.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(symbols.$array, symbols.$offset + innerIndex, ptrType$5)); ns = symbol.SlotNamespace(); if (!((ns === 4)) && !$clone(symbol.NestedScopeSlot, ast.Index32).IsValid()) { ast.Index32.copy(symbol.NestedScopeSlot, ast.MakeIndex32(((ns < 0 || ns >= slot.length) ? ($throwRuntimeError("index out of range"), undefined) : slot[ns]))); @@ -159443,7 +160678,7 @@ $packages["github.com/evanw/esbuild/internal/renamer"] = (function() { while (true) { if (!(_i$2 < _ref$2.$length)) { break; } ref = $clone(((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]), ast.Ref); - symbol$1 = (x = ref.InnerIndex, ((x < 0 || x >= symbols.$length) ? ($throwRuntimeError("index out of range"), undefined) : symbols.$array[symbols.$offset + x])); + symbol$1 = (x = ref.InnerIndex, ((x < 0 || x >= symbols.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(symbols.$array, symbols.$offset + x, ptrType$5))); ns$1 = symbol$1.SlotNamespace(); if (!((ns$1 === 4)) && !$clone(symbol$1.NestedScopeSlot, ast.Index32).IsValid()) { ast.Index32.copy(symbol$1.NestedScopeSlot, ast.MakeIndex32(((ns$1 < 0 || ns$1 >= slot.length) ? ($throwRuntimeError("index out of range"), undefined) : slot[ns$1]))); @@ -159452,7 +160687,7 @@ $packages["github.com/evanw/esbuild/internal/renamer"] = (function() { _i$2++; } if (!($equal(scope.Label.Ref, ast.InvalidRef, ast.Ref))) { - symbol$2 = (x$1 = scope.Label.Ref.InnerIndex, ((x$1 < 0 || x$1 >= symbols.$length) ? ($throwRuntimeError("index out of range"), undefined) : symbols.$array[symbols.$offset + x$1])); + symbol$2 = (x$1 = scope.Label.Ref.InnerIndex, ((x$1 < 0 || x$1 >= symbols.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(symbols.$array, symbols.$offset + x$1, ptrType$5))); ast.Index32.copy(symbol$2.NestedScopeSlot, ast.MakeIndex32(slot[1])); slot[1] = (slot[1] + (1) >>> 0); } @@ -159463,7 +160698,7 @@ $packages["github.com/evanw/esbuild/internal/renamer"] = (function() { /* if (!(_i$3 < _ref$3.$length)) { break; } */ if(!(_i$3 < _ref$3.$length)) { $s = 3; continue; } child = ((_i$3 < 0 || _i$3 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$3]); _r = assignNestedScopeSlotsHelper(child, symbols, $clone(slot, ast.SlotCounts)); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $r = new ptrType$3(slotCounts).UnionMax($clone(_r, ast.SlotCounts)); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = new ptrType$4(slotCounts).UnionMax($clone(_r, ast.SlotCounts)); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _i$3++; $s = 2; continue; case 3: @@ -159497,7 +160732,7 @@ $packages["github.com/evanw/esbuild/internal/renamer"] = (function() { $ptrType(slotAndCountArray).prototype.Less = function(...$args) { return this.$get().Less(...$args); }; NewNumberRenamer = function NewNumberRenamer$1(symbols, reservedNames) { var reservedNames, symbols; - return new NumberRenamer.ptr($clone(symbols, ast.SymbolMap), $clone(new numberScope.ptr(ptrType$4.nil, reservedNames), numberScope), $makeSlice(sliceType$5, symbols.SymbolsForSource.$length)); + return new NumberRenamer.ptr($clone(symbols, ast.SymbolMap), $clone(new numberScope.ptr(ptrType$6.nil, reservedNames), numberScope), $makeSlice(sliceType$5, symbols.SymbolsForSource.$length)); }; $pkg.NewNumberRenamer = NewNumberRenamer; $ptrType(NumberRenamer).prototype.NameForSymbol = function NameForSymbol$2(ref) { @@ -159667,7 +160902,7 @@ $packages["github.com/evanw/esbuild/internal/renamer"] = (function() { /* while (true) { */ case 1: /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 2; continue; } scope = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - $r = r[0].assignNamesRecursive(scope, sourceIndex$1, r[0].root, (sorted.$ptr || (sorted.$ptr = new ptrType$5(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, sorted)))); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = r[0].assignNamesRecursive(scope, sourceIndex$1, r[0].root, (sorted.$ptr || (sorted.$ptr = new ptrType$7(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, sorted)))); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _i$1++; $s = 1; continue; case 2: @@ -159696,7 +160931,7 @@ $packages["github.com/evanw/esbuild/internal/renamer"] = (function() { return 1; } s = s.parent; - if (s === ptrType$4.nil) { + if (s === ptrType$6.nil) { return 0; } } @@ -159768,12 +161003,12 @@ $packages["github.com/evanw/esbuild/internal/renamer"] = (function() { r.count = r.count + (1) >> 0; return name; }; - ptrType$9.methods = [{prop: "NameForSymbol", name: "NameForSymbol", pkg: "", typ: $funcType([ast.Ref], [$String], false)}, {prop: "AccumulateSymbolUseCounts", name: "AccumulateSymbolUseCounts", pkg: "", typ: $funcType([ptrType$7, mapType, sliceType$7], [], false)}, {prop: "AccumulateSymbolCount", name: "AccumulateSymbolCount", pkg: "", typ: $funcType([ptrType$7, ast.Ref, $Uint32, sliceType$7], [], false)}, {prop: "AllocateTopLevelSymbolSlots", name: "AllocateTopLevelSymbolSlots", pkg: "", typ: $funcType([StableSymbolCountArray], [], false)}, {prop: "AssignNamesByFrequency", name: "AssignNamesByFrequency", pkg: "", typ: $funcType([ptrType$8], [], false)}]; + ptrType$11.methods = [{prop: "NameForSymbol", name: "NameForSymbol", pkg: "", typ: $funcType([ast.Ref], [$String], false)}, {prop: "AccumulateSymbolUseCounts", name: "AccumulateSymbolUseCounts", pkg: "", typ: $funcType([ptrType$9, mapType, sliceType$7], [], false)}, {prop: "AccumulateSymbolCount", name: "AccumulateSymbolCount", pkg: "", typ: $funcType([ptrType$9, ast.Ref, $Uint32, sliceType$7], [], false)}, {prop: "AllocateTopLevelSymbolSlots", name: "AllocateTopLevelSymbolSlots", pkg: "", typ: $funcType([StableSymbolCountArray], [], false)}, {prop: "AssignNamesByFrequency", name: "AssignNamesByFrequency", pkg: "", typ: $funcType([ptrType$10], [], false)}]; StableSymbolCountArray.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}]; slotAndCountArray.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}]; - ptrType$11.methods = [{prop: "NameForSymbol", name: "NameForSymbol", pkg: "", typ: $funcType([ast.Ref], [$String], false)}, {prop: "AddTopLevelSymbol", name: "AddTopLevelSymbol", pkg: "", typ: $funcType([ast.Ref], [], false)}, {prop: "assignName", name: "assignName", pkg: "github.com/evanw/esbuild/internal/renamer", typ: $funcType([ptrType$4, ast.Ref], [], false)}, {prop: "assignNamesInScope", name: "assignNamesInScope", pkg: "github.com/evanw/esbuild/internal/renamer", typ: $funcType([ptrType$10, $Uint32, ptrType$4, ptrType$5], [ptrType$4], false)}, {prop: "assignNamesRecursive", name: "assignNamesRecursive", pkg: "github.com/evanw/esbuild/internal/renamer", typ: $funcType([ptrType$10, $Uint32, ptrType$4, ptrType$5], [], false)}, {prop: "AssignNamesByScope", name: "AssignNamesByScope", pkg: "", typ: $funcType([mapType$3], [], false)}]; - ptrType$4.methods = [{prop: "findNameUse", name: "findNameUse", pkg: "github.com/evanw/esbuild/internal/renamer", typ: $funcType([$String], [nameUse], false)}, {prop: "findUnusedName", name: "findUnusedName", pkg: "github.com/evanw/esbuild/internal/renamer", typ: $funcType([$String, ast.SlotNamespace], [$String], false)}]; - ptrType$12.methods = [{prop: "NextRenamedName", name: "NextRenamedName", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "NextMinifiedName", name: "NextMinifiedName", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$13.methods = [{prop: "NameForSymbol", name: "NameForSymbol", pkg: "", typ: $funcType([ast.Ref], [$String], false)}, {prop: "AddTopLevelSymbol", name: "AddTopLevelSymbol", pkg: "", typ: $funcType([ast.Ref], [], false)}, {prop: "assignName", name: "assignName", pkg: "github.com/evanw/esbuild/internal/renamer", typ: $funcType([ptrType$6, ast.Ref], [], false)}, {prop: "assignNamesInScope", name: "assignNamesInScope", pkg: "github.com/evanw/esbuild/internal/renamer", typ: $funcType([ptrType$12, $Uint32, ptrType$6, ptrType$7], [ptrType$6], false)}, {prop: "assignNamesRecursive", name: "assignNamesRecursive", pkg: "github.com/evanw/esbuild/internal/renamer", typ: $funcType([ptrType$12, $Uint32, ptrType$6, ptrType$7], [], false)}, {prop: "AssignNamesByScope", name: "AssignNamesByScope", pkg: "", typ: $funcType([mapType$3], [], false)}]; + ptrType$6.methods = [{prop: "findNameUse", name: "findNameUse", pkg: "github.com/evanw/esbuild/internal/renamer", typ: $funcType([$String], [nameUse], false)}, {prop: "findUnusedName", name: "findUnusedName", pkg: "github.com/evanw/esbuild/internal/renamer", typ: $funcType([$String, ast.SlotNamespace], [$String], false)}]; + ptrType$14.methods = [{prop: "NextRenamedName", name: "NextRenamedName", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "NextMinifiedName", name: "NextMinifiedName", pkg: "", typ: $funcType([], [$String], false)}]; Renamer.init([{prop: "NameForSymbol", name: "NameForSymbol", pkg: "", typ: $funcType([ast.Ref], [$String], false)}]); symbolSlot.init("github.com/evanw/esbuild/internal/renamer", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "count", name: "count", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "needsCapitalForJSX", name: "needsCapitalForJSX", embedded: false, exported: false, typ: $Uint32, tag: ""}]); MinifyRenamer.init("github.com/evanw/esbuild/internal/renamer", [{prop: "reservedNames", name: "reservedNames", embedded: false, exported: false, typ: mapType$1, tag: ""}, {prop: "slots", name: "slots", embedded: false, exported: false, typ: arrayType, tag: ""}, {prop: "topLevelSymbolToSlot", name: "topLevelSymbolToSlot", embedded: false, exported: false, typ: mapType$2, tag: ""}, {prop: "symbols", name: "symbols", embedded: false, exported: false, typ: ast.SymbolMap, tag: ""}]); @@ -159782,7 +161017,7 @@ $packages["github.com/evanw/esbuild/internal/renamer"] = (function() { slotAndCount.init("github.com/evanw/esbuild/internal/renamer", [{prop: "slot", name: "slot", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "count", name: "count", embedded: false, exported: false, typ: $Uint32, tag: ""}]); slotAndCountArray.init(slotAndCount); NumberRenamer.init("github.com/evanw/esbuild/internal/renamer", [{prop: "symbols", name: "symbols", embedded: false, exported: false, typ: ast.SymbolMap, tag: ""}, {prop: "root", name: "root", embedded: false, exported: false, typ: numberScope, tag: ""}, {prop: "names", name: "names", embedded: false, exported: false, typ: sliceType$5, tag: ""}]); - numberScope.init("github.com/evanw/esbuild/internal/renamer", [{prop: "parent", name: "parent", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "nameCounts", name: "nameCounts", embedded: false, exported: false, typ: mapType$1, tag: ""}]); + numberScope.init("github.com/evanw/esbuild/internal/renamer", [{prop: "parent", name: "parent", embedded: false, exported: false, typ: ptrType$6, tag: ""}, {prop: "nameCounts", name: "nameCounts", embedded: false, exported: false, typ: mapType$1, tag: ""}]); ExportRenamer.init("github.com/evanw/esbuild/internal/renamer", [{prop: "used", name: "used", embedded: false, exported: false, typ: mapType$1, tag: ""}, {prop: "count", name: "count", embedded: false, exported: false, typ: $Int, tag: ""}]); }; $init = function() { @@ -159860,7 +161095,7 @@ $packages["github.com/evanw/esbuild/internal/runtime"] = (function() { return $pkg; })(); $packages["github.com/evanw/esbuild/internal/sourcemap"] = (function() { - var $pkg = {}, $init, bytes, ast, helpers, logger, strings, utf8, Mapping, SourceMap, SourceContent, LineColumnOffset, SourceMapPieces, SourceMapShift, SourceMapState, LineOffsetTable, MappingsBuffer, Chunk, ChunkBuilder, sliceType, ptrType, sliceType$1, sliceType$2, sliceType$3, sliceType$4, ptrType$1, sliceType$5, sliceType$6, sliceType$7, sliceType$8, sliceType$9, ptrType$2, sliceType$10, ptrType$3, mapType, base64, encodeVLQ, DecodeVLQ, DecodeVLQUTF16, AppendSourceMapChunk, appendMappingToBuffer, GenerateLineOffsetTables, MakeChunkBuilder; + var $pkg = {}, $init, bytes, ast, helpers, logger, strings, utf8, Mapping, SourceMap, SourceContent, LineColumnOffset, SourceMapPieces, SourceMapShift, SourceMapState, LineOffsetTable, MappingsBuffer, Chunk, ChunkBuilder, sliceType, ptrType, sliceType$1, sliceType$2, sliceType$3, sliceType$4, ptrType$1, sliceType$5, ptrType$2, sliceType$6, sliceType$7, sliceType$8, sliceType$9, ptrType$3, sliceType$10, ptrType$4, mapType, base64, encodeVLQ, DecodeVLQ, DecodeVLQUTF16, AppendSourceMapChunk, appendMappingToBuffer, GenerateLineOffsetTables, MakeChunkBuilder; bytes = $packages["bytes"]; ast = $packages["github.com/evanw/esbuild/internal/ast"]; helpers = $packages["github.com/evanw/esbuild/internal/helpers"]; @@ -160057,13 +161292,14 @@ $packages["github.com/evanw/esbuild/internal/sourcemap"] = (function() { sliceType$4 = $sliceType(LineOffsetTable); ptrType$1 = $ptrType(SourceMap); sliceType$5 = $sliceType(sliceType); + ptrType$2 = $ptrType(LineOffsetTable); sliceType$6 = $sliceType($String); sliceType$7 = $sliceType(SourceContent); sliceType$8 = $sliceType(Mapping); sliceType$9 = $sliceType($Uint16); - ptrType$2 = $ptrType(LineColumnOffset); + ptrType$3 = $ptrType(LineColumnOffset); sliceType$10 = $sliceType(SourceMapShift); - ptrType$3 = $ptrType(ChunkBuilder); + ptrType$4 = $ptrType(ChunkBuilder); mapType = $mapType($String, $Uint32); $ptrType(SourceMap).prototype.Find = function Find(line, column) { var _q, column, count, i, index, line, mapping, mapping$1, mappings, sm, step, x; @@ -160084,7 +161320,7 @@ $packages["github.com/evanw/esbuild/internal/sourcemap"] = (function() { } } if (index > 0) { - mapping$1 = (x = index - 1 >> 0, ((x < 0 || x >= mappings.$length) ? ($throwRuntimeError("index out of range"), undefined) : mappings.$array[mappings.$offset + x])); + mapping$1 = (x = index - 1 >> 0, ((x < 0 || x >= mappings.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(mappings.$array, mappings.$offset + x, ptrType))); if (mapping$1.GeneratedLine === line) { return mapping$1; } @@ -160495,7 +161731,7 @@ $packages["github.com/evanw/esbuild/internal/sourcemap"] = (function() { } } originalLine = originalLine - (1) >> 0; - line = ((originalLine < 0 || originalLine >= lineOffsetTables.$length) ? ($throwRuntimeError("index out of range"), undefined) : lineOffsetTables.$array[lineOffsetTables.$offset + originalLine]); + line = ((originalLine < 0 || originalLine >= lineOffsetTables.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(lineOffsetTables.$array, lineOffsetTables.$offset + originalLine, ptrType$2)); originalColumn = (((originalLoc.Start - line.byteOffsetToStartOfLine >> 0) >> 0)); if (!(line.columnsForNonASCII === sliceType$3.nil) && originalColumn >= ((line.byteOffsetToFirstNonASCII >> 0))) { originalColumn = (((x = line.columnsForNonASCII, x$1 = originalColumn - ((line.byteOffsetToFirstNonASCII >> 0)) >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])) >> 0)); @@ -160612,9 +161848,9 @@ $packages["github.com/evanw/esbuild/internal/sourcemap"] = (function() { }; ptrType$1.methods = [{prop: "Find", name: "Find", pkg: "", typ: $funcType([$Int32, $Int32], [ptrType], false)}]; LineColumnOffset.methods = [{prop: "ComesBefore", name: "ComesBefore", pkg: "", typ: $funcType([LineColumnOffset], [$Bool], false)}]; - ptrType$2.methods = [{prop: "Add", name: "Add", pkg: "", typ: $funcType([LineColumnOffset], [], false)}, {prop: "AdvanceBytes", name: "AdvanceBytes", pkg: "", typ: $funcType([sliceType], [], false)}, {prop: "AdvanceString", name: "AdvanceString", pkg: "", typ: $funcType([$String], [], false)}]; + ptrType$3.methods = [{prop: "Add", name: "Add", pkg: "", typ: $funcType([LineColumnOffset], [], false)}, {prop: "AdvanceBytes", name: "AdvanceBytes", pkg: "", typ: $funcType([sliceType], [], false)}, {prop: "AdvanceString", name: "AdvanceString", pkg: "", typ: $funcType([$String], [], false)}]; SourceMapPieces.methods = [{prop: "HasContent", name: "HasContent", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Finalize", name: "Finalize", pkg: "", typ: $funcType([sliceType$10], [sliceType], false)}]; - ptrType$3.methods = [{prop: "AddSourceMapping", name: "AddSourceMapping", pkg: "", typ: $funcType([logger.Loc, $String, sliceType], [], false)}, {prop: "GenerateChunk", name: "GenerateChunk", pkg: "", typ: $funcType([sliceType], [Chunk], false)}, {prop: "updateGeneratedLineAndColumn", name: "updateGeneratedLineAndColumn", pkg: "github.com/evanw/esbuild/internal/sourcemap", typ: $funcType([sliceType], [], false)}, {prop: "appendMapping", name: "appendMapping", pkg: "github.com/evanw/esbuild/internal/sourcemap", typ: $funcType([$String, SourceMapState], [], false)}, {prop: "appendMappingWithoutRemapping", name: "appendMappingWithoutRemapping", pkg: "github.com/evanw/esbuild/internal/sourcemap", typ: $funcType([SourceMapState], [], false)}]; + ptrType$4.methods = [{prop: "AddSourceMapping", name: "AddSourceMapping", pkg: "", typ: $funcType([logger.Loc, $String, sliceType], [], false)}, {prop: "GenerateChunk", name: "GenerateChunk", pkg: "", typ: $funcType([sliceType], [Chunk], false)}, {prop: "updateGeneratedLineAndColumn", name: "updateGeneratedLineAndColumn", pkg: "github.com/evanw/esbuild/internal/sourcemap", typ: $funcType([sliceType], [], false)}, {prop: "appendMapping", name: "appendMapping", pkg: "github.com/evanw/esbuild/internal/sourcemap", typ: $funcType([$String, SourceMapState], [], false)}, {prop: "appendMappingWithoutRemapping", name: "appendMappingWithoutRemapping", pkg: "github.com/evanw/esbuild/internal/sourcemap", typ: $funcType([SourceMapState], [], false)}]; Mapping.init("", [{prop: "GeneratedLine", name: "GeneratedLine", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "GeneratedColumn", name: "GeneratedColumn", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "SourceIndex", name: "SourceIndex", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "OriginalLine", name: "OriginalLine", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "OriginalColumn", name: "OriginalColumn", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "OriginalName", name: "OriginalName", embedded: false, exported: true, typ: ast.Index32, tag: ""}]); SourceMap.init("", [{prop: "Sources", name: "Sources", embedded: false, exported: true, typ: sliceType$6, tag: ""}, {prop: "SourcesContent", name: "SourcesContent", embedded: false, exported: true, typ: sliceType$7, tag: ""}, {prop: "Mappings", name: "Mappings", embedded: false, exported: true, typ: sliceType$8, tag: ""}, {prop: "Names", name: "Names", embedded: false, exported: true, typ: sliceType$6, tag: ""}]); SourceContent.init("", [{prop: "Quoted", name: "Quoted", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Value", name: "Value", embedded: false, exported: true, typ: sliceType$9, tag: ""}]); @@ -160643,7 +161879,7 @@ $packages["github.com/evanw/esbuild/internal/sourcemap"] = (function() { return $pkg; })(); $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { - var $pkg = {}, $init, fmt, ast, compat, config, helpers, js_ast, js_lexer, logger, renamer, runtime, sourcemap, math, big, url, regexp, sort, strings, utf8, skipTypeFlags, typeParameterFlags, skipTypeScriptTypeParametersResult, skipTypeScriptTypeArgumentsOpts, mappingArray, jsonParser, JSONOptions, classLoweringInfo, classKind, lowerClassContext, propertyAnalysis, strictModeFeature, objRestMode, lowerUsingDeclarationContext, parser, globPatternImport, namespaceImportItems, stringLocalForYarnPnP, injectedSymbolSource, injectedDotName, importNamespaceCallKind, importNamespaceCall, thenCatchChain, Options, optionsThatSupportStructuralEquality, tempRef, scopeOrder, awaitOrYield, fnOrArrowDataParse, fnOrArrowDataVisit, fnOnlyDataVisit, livenessStatus, switchCaseLiveness, duplicateCaseValue, duplicateCaseChecker, duplicatePropertiesIn, mergeResult, scopeMemberArray, JSXImport, deferredErrors, deferredArrowArgErrors, propertyOpts, wasOriginallyDotOrIndex, parenExprOpts, invalidLog, syntaxFeature, exprFlag, parseBindingOpts, fnKind, parseClassOpts, deferredDecorators, decoratorContextFlags, lexicalDecl, parseStmtOpts, generateTempRefArg, findSymbolResult, prependTempRefsOpts, stmtsKind, substituteStatus, bindingOpts, relocateVarsMode, captureValueMode, visitClassResult, visitArgsOpts, typeofStringOrder, exprIn, exprOut, binaryExprVisitor, globPart, identifierOpts, visitFnOpts, importsExportsScanResult, whyESM, sourceMapSection, keyKind, existingKey, sliceType, sliceType$1, sliceType$2, sliceType$3, ptrType, ptrType$1, sliceType$4, ptrType$2, sliceType$5, sliceType$6, sliceType$7, ptrType$3, ptrType$4, sliceType$8, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, ptrType$11, sliceType$9, sliceType$10, sliceType$11, ptrType$12, ptrType$13, ptrType$14, ptrType$15, sliceType$12, ptrType$16, ptrType$17, ptrType$18, sliceType$13, ptrType$19, sliceType$14, ptrType$20, sliceType$15, ptrType$21, ptrType$22, ptrType$23, ptrType$24, ptrType$25, ptrType$26, ptrType$27, ptrType$28, ptrType$29, ptrType$30, ptrType$31, ptrType$32, ptrType$33, ptrType$34, ptrType$35, ptrType$36, arrayType, ptrType$37, ptrType$38, sliceType$16, sliceType$17, sliceType$18, sliceType$19, ptrType$39, ptrType$40, ptrType$41, ptrType$42, ptrType$43, ptrType$44, ptrType$45, ptrType$46, ptrType$47, ptrType$48, ptrType$49, ptrType$50, ptrType$51, ptrType$52, sliceType$20, funcType, sliceType$21, ptrType$53, ptrType$54, ptrType$55, ptrType$56, ptrType$57, ptrType$58, ptrType$59, sliceType$22, ptrType$60, ptrType$61, ptrType$62, ptrType$63, sliceType$23, ptrType$64, ptrType$65, arrayType$1, ptrType$66, ptrType$67, ptrType$68, ptrType$69, ptrType$70, sliceType$24, sliceType$25, sliceType$26, ptrType$71, ptrType$72, sliceType$27, ptrType$73, ptrType$74, sliceType$28, structType, ptrType$75, ptrType$76, ptrType$77, ptrType$78, ptrType$79, ptrType$80, ptrType$81, ptrType$82, ptrType$83, sliceType$29, ptrType$84, ptrType$85, ptrType$86, ptrType$87, ptrType$88, ptrType$89, ptrType$90, ptrType$91, ptrType$92, ptrType$93, ptrType$94, ptrType$95, ptrType$96, sliceType$30, ptrType$97, sliceType$31, ptrType$98, ptrType$99, ptrType$100, ptrType$101, ptrType$102, ptrType$103, ptrType$104, sliceType$32, sliceType$33, ptrType$105, sliceType$34, sliceType$35, sliceType$36, sliceType$37, sliceType$38, sliceType$39, sliceType$40, sliceType$41, sliceType$42, sliceType$43, sliceType$44, ptrType$106, arrayType$2, ptrType$107, arrayType$3, ptrType$108, ptrType$109, mapType, ptrType$110, mapType$1, funcType$1, ptrType$111, ptrType$112, funcType$2, ptrType$113, funcType$3, ptrType$114, ptrType$115, ptrType$116, mapType$2, mapType$3, mapType$4, mapType$5, mapType$6, mapType$7, mapType$8, mapType$9, mapType$10, mapType$11, mapType$12, mapType$13, mapType$14, mapType$15, mapType$16, mapType$17, mapType$18, mapType$19, mapType$20, mapType$21, mapType$22, mapType$23, mapType$24, mapType$25, mapType$26, ptrType$117, ptrType$118, mapType$27, ptrType$119, tsTypeIdentifierMap, permanentReservedProps, defaultJSXFactory, defaultJSXFragment, ParseSourceMap, ParseJSON, isValidJSON, fieldOrAccessorOrder, cloneKeyForLowerClass, findFirstTopLevelSuperCall, bindingHasObjectRest, exprHasObjectRest, couldPotentiallyThrow, OptionsForYarnPnP, OptionsFromConfig, isSameRegexp, jsxExprsEqual, analyzeSwitchCasesForLiveness, duplicateCaseHash, duplicateCaseEquals, isJumpStatement, jumpStmtsLookTheSame, defineValueCanBeUsedInAssignTarget, tagOrFragmentHelpText, findIdentifiers, shouldKeepStmtInDeadControlFlow, stmtsToSingleStmt, statementCaresAboutScope, dropFirstStatement, mangleFor, appendIfOrLabelBodyPreservingScope, tryToInlineCaseBody, isUnsightlyPrimitive, isSafeForConstLocalPrefix, isSimpleParameterList, fnBodyContainsUseStrict, locAfterOp, isEvalOrArguments, containsClosingScriptTag, remapExprLocsInJSON, newParser, Parse, LazyExportAST, GlobResolveAST, ParseDefineExpr, sortedKeysOfMapStringLocRef, ParseGlobalName; + var $pkg = {}, $init, fmt, ast, compat, config, helpers, js_ast, js_lexer, logger, renamer, runtime, sourcemap, math, big, url, regexp, sort, strings, utf8, skipTypeFlags, typeParameterFlags, skipTypeScriptTypeParametersResult, skipTypeScriptTypeArgumentsOpts, mappingArray, jsonParser, JSONOptions, classLoweringInfo, classKind, lowerClassContext, propertyAnalysis, strictModeFeature, objRestMode, lowerUsingDeclarationContext, parser, globPatternImport, namespaceImportItems, stringLocalForYarnPnP, injectedSymbolSource, injectedDotName, importNamespaceCallKind, importNamespaceCall, thenCatchChain, Options, optionsThatSupportStructuralEquality, tempRef, scopeOrder, awaitOrYield, fnOrArrowDataParse, fnOrArrowDataVisit, fnOnlyDataVisit, livenessStatus, switchCaseLiveness, duplicateCaseValue, duplicateCaseChecker, duplicatePropertiesIn, mergeResult, scopeMemberArray, JSXImport, deferredErrors, deferredArrowArgErrors, propertyOpts, wasOriginallyDotOrIndex, parenExprOpts, invalidLog, syntaxFeature, exprFlag, parseBindingOpts, fnKind, parseClassOpts, deferredDecorators, decoratorContextFlags, lexicalDecl, parseStmtOpts, generateTempRefArg, findSymbolResult, prependTempRefsOpts, stmtsKind, substituteStatus, bindingOpts, relocateVarsMode, captureValueMode, visitClassResult, visitArgsOpts, typeofStringOrder, exprIn, exprOut, binaryExprVisitor, globPart, identifierOpts, visitFnOpts, importsExportsScanResult, whyESM, sourceMapSection, keyKind, existingKey, sliceType, sliceType$1, sliceType$2, sliceType$3, ptrType, ptrType$1, sliceType$4, ptrType$2, sliceType$5, sliceType$6, sliceType$7, ptrType$3, ptrType$4, sliceType$8, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, ptrType$11, sliceType$9, sliceType$10, sliceType$11, ptrType$12, ptrType$13, ptrType$14, ptrType$15, sliceType$12, ptrType$16, ptrType$17, ptrType$18, sliceType$13, ptrType$19, sliceType$14, ptrType$20, sliceType$15, ptrType$21, ptrType$22, ptrType$23, ptrType$24, ptrType$25, ptrType$26, ptrType$27, ptrType$28, ptrType$29, ptrType$30, ptrType$31, ptrType$32, ptrType$33, ptrType$34, ptrType$35, ptrType$36, ptrType$37, ptrType$38, arrayType, ptrType$39, ptrType$40, sliceType$16, sliceType$17, sliceType$18, sliceType$19, ptrType$41, ptrType$42, ptrType$43, ptrType$44, ptrType$45, ptrType$46, ptrType$47, ptrType$48, ptrType$49, ptrType$50, ptrType$51, ptrType$52, ptrType$53, ptrType$54, ptrType$55, sliceType$20, funcType, sliceType$21, ptrType$56, ptrType$57, ptrType$58, ptrType$59, ptrType$60, ptrType$61, ptrType$62, sliceType$22, ptrType$63, ptrType$64, ptrType$65, ptrType$66, sliceType$23, ptrType$67, ptrType$68, arrayType$1, ptrType$69, ptrType$70, ptrType$71, ptrType$72, ptrType$73, ptrType$74, sliceType$24, sliceType$25, sliceType$26, ptrType$75, ptrType$76, sliceType$27, ptrType$77, ptrType$78, sliceType$28, structType, ptrType$79, ptrType$80, ptrType$81, ptrType$82, ptrType$83, ptrType$84, ptrType$85, ptrType$86, ptrType$87, sliceType$29, ptrType$88, ptrType$89, ptrType$90, ptrType$91, ptrType$92, ptrType$93, ptrType$94, ptrType$95, ptrType$96, ptrType$97, ptrType$98, ptrType$99, ptrType$100, ptrType$101, ptrType$102, ptrType$103, ptrType$104, sliceType$30, ptrType$105, sliceType$31, ptrType$106, ptrType$107, ptrType$108, ptrType$109, ptrType$110, ptrType$111, ptrType$112, ptrType$113, sliceType$32, sliceType$33, ptrType$114, sliceType$34, ptrType$115, sliceType$35, sliceType$36, sliceType$37, sliceType$38, sliceType$39, sliceType$40, sliceType$41, sliceType$42, sliceType$43, ptrType$116, sliceType$44, ptrType$117, arrayType$2, ptrType$118, arrayType$3, ptrType$119, ptrType$120, mapType, ptrType$121, mapType$1, funcType$1, ptrType$122, ptrType$123, funcType$2, funcType$3, ptrType$124, mapType$2, mapType$3, mapType$4, mapType$5, mapType$6, mapType$7, mapType$8, mapType$9, mapType$10, mapType$11, mapType$12, mapType$13, mapType$14, mapType$15, mapType$16, mapType$17, mapType$18, mapType$19, mapType$20, mapType$21, mapType$22, mapType$23, mapType$24, mapType$25, mapType$26, ptrType$125, mapType$27, ptrType$126, tsTypeIdentifierMap, permanentReservedProps, defaultJSXFactory, defaultJSXFragment, ParseSourceMap, ParseJSON, isValidJSON, fieldOrAccessorOrder, cloneKeyForLowerClass, findFirstTopLevelSuperCall, bindingHasObjectRest, exprHasObjectRest, couldPotentiallyThrow, OptionsForYarnPnP, OptionsFromConfig, isSameRegexp, jsxExprsEqual, analyzeSwitchCasesForLiveness, duplicateCaseHash, duplicateCaseEquals, isJumpStatement, jumpStmtsLookTheSame, defineValueCanBeUsedInAssignTarget, tagOrFragmentHelpText, findIdentifiers, shouldKeepStmtInDeadControlFlow, stmtsToSingleStmt, statementCaresAboutScope, dropFirstStatement, mangleFor, appendIfOrLabelBodyPreservingScope, tryToInlineCaseBody, isUnsightlyPrimitive, isSafeForConstLocalPrefix, isSimpleParameterList, fnBodyContainsUseStrict, locAfterOp, isEvalOrArguments, containsClosingScriptTag, remapExprLocsInJSON, newParser, Parse, LazyExportAST, GlobResolveAST, ParseDefineExpr, sortedKeysOfMapStringLocRef, ParseGlobalName; fmt = $packages["fmt"]; ast = $packages["github.com/evanw/esbuild/internal/ast"]; compat = $packages["github.com/evanw/esbuild/internal/compat"]; @@ -160726,11 +161962,11 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { if (arguments.length === 0) { this.nameToKeep = ""; this.kind = 0; - this.class$2 = ptrType$29.nil; + this.class$2 = ptrType$30.nil; this.classLoc = new logger.Loc.ptr(0); this.classExpr = new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)); this.defaultName = new ast.LocRef.ptr(new logger.Loc.ptr(0), new ast.Ref.ptr(0, 0)); - this.ctor = ptrType$28.nil; + this.ctor = ptrType$29.nil; this.extendsRef = new ast.Ref.ptr(0, 0); this.parameterFields = sliceType$8.nil; this.instanceMembers = sliceType$8.nil; @@ -160794,7 +162030,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { propertyAnalysis = $newType(0, $kindStruct, "js_parser.propertyAnalysis", true, "github.com/evanw/esbuild/internal/js_parser", false, function(private$0_, propExperimentalDecorators_, propDecorators_, mustLowerField_, needsValueOfKey_, rewriteAutoAccessorToGetSet_, shouldOmitFieldInitializer_, staticFieldToBlockAssign_, isComputedPropertyCopiedOrMoved_) { this.$val = this; if (arguments.length === 0) { - this.private$0 = ptrType$24.nil; + this.private$0 = ptrType$25.nil; this.propExperimentalDecorators = sliceType$11.nil; this.propDecorators = sliceType$11.nil; this.mustLowerField = false; @@ -160832,7 +162068,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { parser = $newType(0, $kindStruct, "js_parser.parser", true, "github.com/evanw/esbuild/internal/js_parser", false, function(options_, log_, source_, tracker_, fnOrArrowDataParse_, fnOnlyDataVisit_, allocatedNames_, currentScope_, scopesForCurrentPart_, symbols_, astHelpers_, tsUseCounts_, injectedDefineSymbols_, injectedSymbolSources_, injectedDotNames_, dropLabelsMap_, exprComments_, mangledProps_, reservedProps_, symbolUses_, importSymbolPropertyUses_, symbolCallUses_, declaredSymbols_, globPatternImports_, runtimeImports_, duplicateCaseChecker_, unrepresentableIdentifiers_, legacyOctalLiterals_, scopesInOrderForEnum_, binaryExprStack_, hoistedRefForSloppyModeBlockFn_, privateGetters_, privateSetters_, refToTSNamespaceMemberData_, tsNamespaceTarget_, tsNamespaceMemberData_, emittedNamespaceVars_, isExportedInsideNamespace_, localTypeNames_, tsEnums_, constValues_, propDerivedCtorValue_, propMethodDecoratorScope_, enclosingNamespaceArgRef_, importRecords_, importRecordsForCurrentPart_, exportStarImportRecords_, importItemsForNamespace_, isImportItem_, namedImports_, namedExports_, topLevelSymbolToParts_, importNamespaceCCMap_, scopesInOrder_, nameToKeep_, nameToKeepIsFor_, stmtExprValue_, callTarget_, dotOrIndexTarget_, templateTag_, deleteTarget_, loopBody_, suspiciousLogicalOperatorInsideArrow_, moduleScope_, manifestForYarnPnP_, stringLocalsForYarnPnP_, awaitTarget_, thenCatchChain_, relocatedTopLevelVars_, lowerAllOfThesePrivateNames_, tempLetsToDeclare_, tempRefsToDeclare_, topLevelTempRefsToDeclare_, lexer_, parseExperimentalDecoratorNesting_, tempRefCount_, topLevelTempRefCount_, jsxSourceLoc_, jsxSourceLine_, jsxSourceColumn_, exportsRef_, requireRef_, moduleRef_, importMetaRef_, promiseRef_, regExpRef_, bigIntRef_, superCtorRef_, jsxRuntimeImports_, jsxLegacyImports_, weakMapRef_, weakSetRef_, esmImportStatementKeyword_, esmImportMeta_, esmExportKeyword_, enclosingClassKeyword_, topLevelAwaitKeyword_, liveTopLevelAwaitKeyword_, latestArrowArgLoc_, forbidSuffixAfterAsLoc_, firstJSXElementLoc_, fnOrArrowDataVisit_, afterArrowBodyLoc_, suppressWarningsAboutWeirdCode_, isFileConsideredToHaveESMExports_, isFileConsideredESM_, hasNonLocalExportDeclareInsideNamespace_, shouldFoldTypeScriptConstantExpressions_, allowIn_, allowPrivateIdentifiers_, hasTopLevelReturn_, latestReturnHadSemicolon_, messageAboutThisIsUndefined_, isControlFlowDead_, shouldAddKeyComment_, willWrapModuleInTryCatchForUsing_) { this.$val = this; if (arguments.length === 0) { - this.options = new Options.ptr(sliceType$22.nil, new config.JSXOptions.ptr(new config.DefineExpr.ptr($ifaceNil, sliceType.nil, new ast.Index32.ptr(0)), new config.DefineExpr.ptr($ifaceNil, sliceType.nil, new ast.Index32.ptr(0)), false, false, false, "", false, false), ptrType$60.nil, ptrType$61.nil, ptrType$61.nil, sliceType.nil, ptrType$62.nil, new optionsThatSupportStructuralEquality.ptr("", new js_ast.ModuleTypeData.ptr(ptrType$63.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0), new compat.JSFeature(0, 0), new compat.JSFeature(0, 0), new compat.JSFeature(0, 0), new config.TSOptions.ptr(new config.TSConfig.ptr(0, 0, 0, 0, 0, 0), false, false), 0, 0, 0, false, false, false, false, false, false, false, false, false, false, false, false)); + this.options = new Options.ptr(sliceType$22.nil, new config.JSXOptions.ptr(new config.DefineExpr.ptr($ifaceNil, sliceType.nil, new ast.Index32.ptr(0)), new config.DefineExpr.ptr($ifaceNil, sliceType.nil, new ast.Index32.ptr(0)), false, false, false, "", false, false), ptrType$63.nil, ptrType$64.nil, ptrType$64.nil, sliceType.nil, ptrType$65.nil, new optionsThatSupportStructuralEquality.ptr("", new js_ast.ModuleTypeData.ptr(ptrType$66.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0), new compat.JSFeature(0, 0), new compat.JSFeature(0, 0), new compat.JSFeature(0, 0), new config.TSOptions.ptr(new config.TSConfig.ptr(0, 0, 0, 0, 0, 0), false, false), 0, 0, 0, false, false, false, false, false, false, false, false, false, false, false, false)); this.log = new logger.Log.ptr($throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, 0, false); this.source = new logger.Source.ptr("", "", "", new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), 0); this.tracker = new logger.LineColumnTracker.ptr("", "", 0, 0, 0, 0, false, false, false); @@ -161070,7 +162306,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { globPatternImport = $newType(0, $kindStruct, "js_parser.globPatternImport", true, "github.com/evanw/esbuild/internal/js_parser", false, function(assertOrWith_, parts_, name_, approximateRange_, ref_, kind_) { this.$val = this; if (arguments.length === 0) { - this.assertOrWith = ptrType$72.nil; + this.assertOrWith = ptrType$76.nil; this.parts = sliceType$33.nil; this.name = ""; this.approximateRange = new logger.Range.ptr(new logger.Loc.ptr(0), 0); @@ -161155,12 +162391,12 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { if (arguments.length === 0) { this.injectedFiles = sliceType$22.nil; this.jsx = new config.JSXOptions.ptr(new config.DefineExpr.ptr($ifaceNil, sliceType.nil, new ast.Index32.ptr(0)), new config.DefineExpr.ptr($ifaceNil, sliceType.nil, new ast.Index32.ptr(0)), false, false, false, "", false, false); - this.tsAlwaysStrict = ptrType$60.nil; - this.mangleProps = ptrType$61.nil; - this.reserveProps = ptrType$61.nil; + this.tsAlwaysStrict = ptrType$63.nil; + this.mangleProps = ptrType$64.nil; + this.reserveProps = ptrType$64.nil; this.dropLabels = sliceType.nil; - this.defines = ptrType$62.nil; - this.optionsThatSupportStructuralEquality = new optionsThatSupportStructuralEquality.ptr("", new js_ast.ModuleTypeData.ptr(ptrType$63.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0), new compat.JSFeature(0, 0), new compat.JSFeature(0, 0), new compat.JSFeature(0, 0), new config.TSOptions.ptr(new config.TSConfig.ptr(0, 0, 0, 0, 0, 0), false, false), 0, 0, 0, false, false, false, false, false, false, false, false, false, false, false, false); + this.defines = ptrType$65.nil; + this.optionsThatSupportStructuralEquality = new optionsThatSupportStructuralEquality.ptr("", new js_ast.ModuleTypeData.ptr(ptrType$66.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0), new compat.JSFeature(0, 0), new compat.JSFeature(0, 0), new compat.JSFeature(0, 0), new config.TSOptions.ptr(new config.TSConfig.ptr(0, 0, 0, 0, 0, 0), false, false), 0, 0, 0, false, false, false, false, false, false, false, false, false, false, false, false); return; } this.injectedFiles = injectedFiles_; @@ -161176,7 +162412,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { this.$val = this; if (arguments.length === 0) { this.originalTargetEnv = ""; - this.moduleTypeData = new js_ast.ModuleTypeData.ptr(ptrType$63.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0); + this.moduleTypeData = new js_ast.ModuleTypeData.ptr(ptrType$66.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0); this.unsupportedJSFeatures = new compat.JSFeature(0, 0); this.unsupportedJSFeatureOverrides = new compat.JSFeature(0, 0); this.unsupportedJSFeatureOverridesMask = new compat.JSFeature(0, 0); @@ -161531,7 +162767,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { prependTempRefsOpts = $newType(0, $kindStruct, "js_parser.prependTempRefsOpts", true, "github.com/evanw/esbuild/internal/js_parser", false, function(fnBodyLoc_, kind_) { this.$val = this; if (arguments.length === 0) { - this.fnBodyLoc = ptrType$76.nil; + this.fnBodyLoc = ptrType$80.nil; this.kind = 0; return; } @@ -161616,7 +162852,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { binaryExprVisitor = $newType(0, $kindStruct, "js_parser.binaryExprVisitor", true, "github.com/evanw/esbuild/internal/js_parser", false, function(e_, loc_, in$2_, leftIn_, isStmtExpr_, oldSilenceWarningAboutThisBeingUndefined_) { this.$val = this; if (arguments.length === 0) { - this.e = ptrType$45.nil; + this.e = ptrType$47.nil; this.loc = new logger.Loc.ptr(0); this.in$2 = new exprIn.ptr(false, false, false, false, false, 0); this.leftIn = new exprIn.ptr(false, false, false, false, false, 0); @@ -161823,112 +163059,122 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { sliceType$15 = $sliceType(logger.Range); ptrType$21 = $ptrType(js_ast.ENull); ptrType$22 = $ptrType(js_ast.EBoolean); - ptrType$23 = $ptrType(js_ast.EIndex); - ptrType$24 = $ptrType(js_ast.EPrivateIdentifier); - ptrType$25 = $ptrType(js_ast.EDot); - ptrType$26 = $ptrType(js_ast.ESpread); - ptrType$27 = $ptrType(js_ast.ESuper); - ptrType$28 = $ptrType(js_ast.EFunction); - ptrType$29 = $ptrType(js_ast.Class); - ptrType$30 = $ptrType(js_ast.EClass); - ptrType$31 = $ptrType(js_ast.SExportDefault); - ptrType$32 = $ptrType(js_ast.EIdentifier); - ptrType$33 = $ptrType(js_ast.EUndefined); - ptrType$34 = $ptrType(js_ast.BIdentifier); - ptrType$35 = $ptrType(js_ast.Expr); - ptrType$36 = $ptrType(js_ast.ENameOfSymbol); + ptrType$23 = $ptrType(ast.Symbol); + ptrType$24 = $ptrType(js_ast.EIndex); + ptrType$25 = $ptrType(js_ast.EPrivateIdentifier); + ptrType$26 = $ptrType(js_ast.EDot); + ptrType$27 = $ptrType(js_ast.ESpread); + ptrType$28 = $ptrType(js_ast.ESuper); + ptrType$29 = $ptrType(js_ast.EFunction); + ptrType$30 = $ptrType(js_ast.Class); + ptrType$31 = $ptrType(js_ast.EClass); + ptrType$32 = $ptrType(js_ast.SExportDefault); + ptrType$33 = $ptrType(js_ast.EIdentifier); + ptrType$34 = $ptrType(js_ast.EUndefined); + ptrType$35 = $ptrType(js_ast.BIdentifier); + ptrType$36 = $ptrType(js_ast.Expr); + ptrType$37 = $ptrType(js_ast.Property); + ptrType$38 = $ptrType(js_ast.ENameOfSymbol); arrayType = $arrayType($Int, 4); - ptrType$37 = $ptrType(sliceType$11); - ptrType$38 = $ptrType(js_ast.SEmpty); + ptrType$39 = $ptrType(sliceType$11); + ptrType$40 = $ptrType(js_ast.SEmpty); sliceType$16 = $sliceType(ptrType$1); sliceType$17 = $sliceType(js_ast.ScopeMember); sliceType$18 = $sliceType(ast.Ref); sliceType$19 = $sliceType(js_ast.ClauseItem); - ptrType$39 = $ptrType(js_ast.ECall); - ptrType$40 = $ptrType(js_ast.SReturn); - ptrType$41 = $ptrType(js_ast.SThrow); - ptrType$42 = $ptrType(js_ast.SIf); - ptrType$43 = $ptrType(js_ast.SSwitch); - ptrType$44 = $ptrType(js_ast.SFor); - ptrType$45 = $ptrType(js_ast.EBinary); - ptrType$46 = $ptrType($Bool); - ptrType$47 = $ptrType(js_ast.EUnary); - ptrType$48 = $ptrType(js_ast.SBlock); - ptrType$49 = $ptrType(js_ast.Catch); - ptrType$50 = $ptrType(js_ast.Finally); - ptrType$51 = $ptrType(js_ast.BArray); - ptrType$52 = $ptrType(js_ast.BObject); + ptrType$41 = $ptrType(js_ast.ECall); + ptrType$42 = $ptrType(js_ast.SReturn); + ptrType$43 = $ptrType(js_ast.SThrow); + ptrType$44 = $ptrType(js_ast.SIf); + ptrType$45 = $ptrType(js_ast.SSwitch); + ptrType$46 = $ptrType(js_ast.SFor); + ptrType$47 = $ptrType(js_ast.EBinary); + ptrType$48 = $ptrType($Bool); + ptrType$49 = $ptrType(js_ast.SBlock); + ptrType$50 = $ptrType(js_ast.EUnary); + ptrType$51 = $ptrType(js_ast.Catch); + ptrType$52 = $ptrType(js_ast.Finally); + ptrType$53 = $ptrType(js_ast.BArray); + ptrType$54 = $ptrType(js_ast.BObject); + ptrType$55 = $ptrType(js_ast.Stmt); sliceType$20 = $sliceType(syntaxFeature); funcType = $funcType([], [js_ast.Expr], false); sliceType$21 = $sliceType(funcType); - ptrType$53 = $ptrType(js_ast.EBigInt); - ptrType$54 = $ptrType(js_ast.EArrow); - ptrType$55 = $ptrType(js_ast.SDirective); - ptrType$56 = $ptrType(js_ast.SImport); - ptrType$57 = $ptrType(js_ast.SExportFrom); - ptrType$58 = $ptrType(js_ast.SExportStar); - ptrType$59 = $ptrType(js_ast.SExportClause); + ptrType$56 = $ptrType(js_ast.EBigInt); + ptrType$57 = $ptrType(js_ast.EArrow); + ptrType$58 = $ptrType(js_ast.SDirective); + ptrType$59 = $ptrType(js_ast.SImport); + ptrType$60 = $ptrType(js_ast.SExportFrom); + ptrType$61 = $ptrType(js_ast.SExportStar); + ptrType$62 = $ptrType(js_ast.SExportClause); sliceType$22 = $sliceType(config.InjectedFile); - ptrType$60 = $ptrType(config.TSAlwaysStrict); - ptrType$61 = $ptrType(regexp.Regexp); - ptrType$62 = $ptrType(config.ProcessedDefines); - ptrType$63 = $ptrType(logger.Source); + ptrType$63 = $ptrType(config.TSAlwaysStrict); + ptrType$64 = $ptrType(regexp.Regexp); + ptrType$65 = $ptrType(config.ProcessedDefines); + ptrType$66 = $ptrType(logger.Source); sliceType$23 = $sliceType(switchCaseLiveness); - ptrType$64 = $ptrType(js_ast.SBreak); - ptrType$65 = $ptrType(js_ast.SContinue); + ptrType$67 = $ptrType(js_ast.SBreak); + ptrType$68 = $ptrType(js_ast.SContinue); arrayType$1 = $arrayType($Uint8, 32); - ptrType$66 = $ptrType($Uint8); - ptrType$67 = $ptrType(js_ast.EInlinedEnum); - ptrType$68 = $ptrType(ast.NamespaceAlias); - ptrType$69 = $ptrType(deferredErrors); - ptrType$70 = $ptrType(js_ast.EMissing); + ptrType$69 = $ptrType($Uint8); + ptrType$70 = $ptrType(js_ast.EInlinedEnum); + ptrType$71 = $ptrType(ast.NamespaceAlias); + ptrType$72 = $ptrType(ast.AssertOrWithEntry); + ptrType$73 = $ptrType(deferredErrors); + ptrType$74 = $ptrType(js_ast.EMissing); sliceType$24 = $sliceType(js_ast.ArrayBinding); sliceType$25 = $sliceType(js_ast.PropertyBinding); sliceType$26 = $sliceType(js_ast.TemplatePart); - ptrType$71 = $ptrType(js_ast.ENew); - ptrType$72 = $ptrType(ast.ImportAssertOrWith); + ptrType$75 = $ptrType(js_ast.ENew); + ptrType$76 = $ptrType(ast.ImportAssertOrWith); sliceType$27 = $sliceType(ast.AssertOrWithEntry); - ptrType$73 = $ptrType(js_ast.STypeScript); - ptrType$74 = $ptrType(js_ast.ExportStarAlias); + ptrType$77 = $ptrType(js_ast.STypeScript); + ptrType$78 = $ptrType(js_ast.ExportStarAlias); sliceType$28 = $sliceType(js_ast.Case); structType = $structType("", []); - ptrType$75 = $ptrType(sliceType$19); - ptrType$76 = $ptrType(logger.Loc); - ptrType$77 = $ptrType(ast.GlobPattern); - ptrType$78 = $ptrType(js_ast.SDebugger); - ptrType$79 = $ptrType(js_ast.SWhile); - ptrType$80 = $ptrType(js_ast.SDoWhile); - ptrType$81 = $ptrType(js_ast.SForIn); - ptrType$82 = $ptrType(js_ast.SForOf); - ptrType$83 = $ptrType(js_ast.SLabel); + ptrType$79 = $ptrType(sliceType$19); + ptrType$80 = $ptrType(logger.Loc); + ptrType$81 = $ptrType(ast.GlobPattern); + ptrType$82 = $ptrType(js_ast.SDebugger); + ptrType$83 = $ptrType(js_ast.SWhile); + ptrType$84 = $ptrType(js_ast.SDoWhile); + ptrType$85 = $ptrType(js_ast.SForIn); + ptrType$86 = $ptrType(js_ast.SForOf); + ptrType$87 = $ptrType(js_ast.SLabel); sliceType$29 = $sliceType(tempRef); - ptrType$84 = $ptrType(js_ast.SComment); - ptrType$85 = $ptrType(js_ast.SExportEquals); - ptrType$86 = $ptrType(js_ast.STry); - ptrType$87 = $ptrType(js_ast.EAwait); - ptrType$88 = $ptrType(js_ast.EYield); - ptrType$89 = $ptrType(js_ast.EImportCall); - ptrType$90 = $ptrType(js_ast.EIf); - ptrType$91 = $ptrType(js_ast.ETemplate); - ptrType$92 = $ptrType(js_ast.BMissing); - ptrType$93 = $ptrType(js_ast.SWith); - ptrType$94 = $ptrType(js_ast.ERegExp); - ptrType$95 = $ptrType(js_ast.EThis); - ptrType$96 = $ptrType(js_ast.EImportMeta); + ptrType$88 = $ptrType(js_ast.SComment); + ptrType$89 = $ptrType(js_ast.SExportEquals); + ptrType$90 = $ptrType(js_ast.STry); + ptrType$91 = $ptrType(js_ast.Decl); + ptrType$92 = $ptrType(js_ast.EAwait); + ptrType$93 = $ptrType(js_ast.EYield); + ptrType$94 = $ptrType(js_ast.EImportCall); + ptrType$95 = $ptrType(js_ast.EIf); + ptrType$96 = $ptrType(js_ast.ETemplate); + ptrType$97 = $ptrType(js_ast.BMissing); + ptrType$98 = $ptrType(js_ast.ArrayBinding); + ptrType$99 = $ptrType(js_ast.SWith); + ptrType$100 = $ptrType(js_ast.Case); + ptrType$101 = $ptrType(js_ast.ERegExp); + ptrType$102 = $ptrType(js_ast.EThis); + ptrType$103 = $ptrType(js_ast.Arg); + ptrType$104 = $ptrType(js_ast.EImportMeta); sliceType$30 = $sliceType(config.DefineData); - ptrType$97 = $ptrType(config.DefineExpr); + ptrType$105 = $ptrType(config.DefineExpr); sliceType$31 = $sliceType(injectedDotName); - ptrType$98 = $ptrType(js_ast.TSNamespaceMemberEnumNumber); - ptrType$99 = $ptrType(js_ast.TSNamespaceMemberEnumString); - ptrType$100 = $ptrType(js_ast.EImportIdentifier); - ptrType$101 = $ptrType(js_ast.EJSXText); - ptrType$102 = $ptrType(js_ast.ENewTarget); - ptrType$103 = $ptrType(js_ast.EJSXElement); - ptrType$104 = $ptrType(sliceType$10); + ptrType$106 = $ptrType(ast.ImportRecord); + ptrType$107 = $ptrType(js_ast.TSNamespaceMemberEnumNumber); + ptrType$108 = $ptrType(js_ast.TSNamespaceMemberEnumString); + ptrType$109 = $ptrType(js_ast.EImportIdentifier); + ptrType$110 = $ptrType(js_ast.EJSXText); + ptrType$111 = $ptrType(js_ast.ENewTarget); + ptrType$112 = $ptrType(js_ast.EJSXElement); + ptrType$113 = $ptrType(sliceType$10); sliceType$32 = $sliceType(globPart); sliceType$33 = $sliceType(helpers.GlobPart); - ptrType$105 = $ptrType(strings.Builder); + ptrType$114 = $ptrType(strings.Builder); sliceType$34 = $sliceType($Uint8); + ptrType$115 = $ptrType(js_ast.Fn); sliceType$35 = $sliceType($Uint32); sliceType$36 = $sliceType(js_ast.DeclaredSymbol); sliceType$37 = $sliceType(js_ast.Dependency); @@ -161938,25 +163184,23 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { sliceType$41 = $sliceType(duplicateCaseValue); sliceType$42 = $sliceType(binaryExprVisitor); sliceType$43 = $sliceType(ast.ImportRecord); + ptrType$116 = $ptrType(Options); sliceType$44 = $sliceType(js_ast.Part); - ptrType$106 = $ptrType(ast.CharFreq); + ptrType$117 = $ptrType(ast.CharFreq); arrayType$2 = $arrayType($Uint32, 4); - ptrType$107 = $ptrType($Uint32); + ptrType$118 = $ptrType($Uint32); arrayType$3 = $arrayType($Int32, 64); - ptrType$108 = $ptrType(jsonParser); - ptrType$109 = $ptrType(parser); + ptrType$119 = $ptrType(jsonParser); + ptrType$120 = $ptrType(parser); mapType = $mapType($Int, ast.Ref); - ptrType$110 = $ptrType(lowerClassContext); + ptrType$121 = $ptrType(lowerClassContext); mapType$1 = $mapType($Int, $Int); funcType$1 = $funcType([js_ast.Expr], [js_ast.Expr], false); - ptrType$111 = $ptrType(lowerUsingDeclarationContext); - ptrType$112 = $ptrType(js_ast.FnBody); + ptrType$122 = $ptrType(lowerUsingDeclarationContext); + ptrType$123 = $ptrType(js_ast.FnBody); funcType$2 = $funcType([js_ast.Expr, js_ast.Expr], [js_ast.Expr], false); - ptrType$113 = $ptrType(js_ast.Stmt); funcType$3 = $funcType([js_ast.Expr, js_ast.Expr], [], false); - ptrType$114 = $ptrType(ast.ImportRecord); - ptrType$115 = $ptrType(js_ast.Fn); - ptrType$116 = $ptrType(importsExportsScanResult); + ptrType$124 = $ptrType(importsExportsScanResult); mapType$2 = $mapType($String, ast.LocRef); mapType$3 = $mapType(ast.Ref, injectedSymbolSource); mapType$4 = $mapType($String, sliceType$31); @@ -161982,10 +163226,9 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { mapType$24 = $mapType(ast.Ref, sliceType$35); mapType$25 = $mapType(importNamespaceCall, $Bool); mapType$26 = $mapType(ast.Ref, stringLocalForYarnPnP); - ptrType$117 = $ptrType(Options); - ptrType$118 = $ptrType(duplicateCaseChecker); + ptrType$125 = $ptrType(duplicateCaseChecker); mapType$27 = $mapType($String, logger.Range); - ptrType$119 = $ptrType(binaryExprVisitor); + ptrType$126 = $ptrType(binaryExprVisitor); $ptrType(parser).prototype.skipTypeScriptBinding = function skipTypeScriptBinding() { var {_1, _2, foundIdentifier, p, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: @@ -163520,7 +164763,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ } return; } var $f = {$blk: parseTypeScriptNamespaceStmt, $c: true, $r, _entry, _entry$1, _entry$2, _i, _i$1, _key, _key$1, _key$10, _key$2, _key$3, _key$4, _key$5, _key$6, _key$7, _key$8, _key$9, _r, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _ref$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, dotLoc, exportedMembers, hasNonLocalExportDeclareInsideNamespace, importEqualsCount, loc, local, member, member$1, member$2, member$3, memberData, memberData$1, name, name$1, name$2, nameLoc, nameText, nsMemberData, nsMemberData$1, nsMemberData$2, ok, ok$1, ok$2, ok$3, ok$4, ok$5, oldFnOrArrowData, oldHasNonLocalExportDeclareInsideNamespace, opts, p, s, s$1, s$2, s$3, s$4, scopeIndex, stmt, stmt$1, stmts, tsNamespace, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s};return $f; }; $ptrType(parser).prototype.generateClosureForTypeScriptNamespaceOrEnum = function generateClosureForTypeScriptNamespaceOrEnum(stmts, stmtLoc, isExport, nameLoc, nameRef, argRef, stmtsInsideClosure) { - var {_arg, _arg$1, _arg$2, _arg$3, _entry, _key, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, argExpr, argRef, args, decls, expr, isExport, name, nameLoc, nameRef, ok, p, stmtLoc, stmts, stmtsInsideClosure, symbol, targetExpr, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r, $c} = $restore(this, {stmts, stmtLoc, isExport, nameLoc, nameRef, argRef, stmtsInsideClosure}); + var {_arg, _arg$1, _arg$2, _arg$3, _entry, _key, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, argExpr, argRef, args, decls, expr, isExport, name, nameLoc, nameRef, ok, p, stmtLoc, stmts, stmtsInsideClosure, symbol, targetExpr, x, x$1, x$10, x$11, x$12, x$13, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {stmts, stmtLoc, isExport, nameLoc, nameRef, argRef, stmtsInsideClosure}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; symbol = $clone((x = p.symbols, x$1 = nameRef.InnerIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])), ast.Symbol); @@ -163546,11 +164789,11 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ $s = 5; continue; /* if (isExport && !(p.enclosingNamespaceArgRef === ptrType$11.nil)) { */ case 4: _arg = $clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(nameRef, ast.Ref), false, false, false), $clone(nameLoc, logger.Loc)), js_ast.Expr); - _r = p.dotOrMangledPropVisit($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(p.enclosingNamespaceArgRef, ast.Ref), false, false, false), $clone(nameLoc, logger.Loc)), js_ast.Expr), (x$4 = p.symbols, x$5 = nameRef.InnerIndex, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])).OriginalName, $clone(nameLoc, logger.Loc)); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = p.dotOrMangledPropVisit($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone((x$4 = p.enclosingNamespaceArgRef, (x$4 === ptrType$11.nil && $throwNilPointerError(), x$4)), ast.Ref), false, false, false), $clone(nameLoc, logger.Loc)), js_ast.Expr), (x$5 = p.symbols, x$6 = nameRef.InnerIndex, ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$6])).OriginalName, $clone(nameLoc, logger.Loc)); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _arg$1 = $clone(new js_ast.Expr.ptr(new js_ast.EBinary.ptr($clone(new js_ast.Expr.ptr(_r, $clone(nameLoc, logger.Loc)), js_ast.Expr), $clone(new js_ast.Expr.ptr(new js_ast.EObject.ptr(sliceType$9.nil, new logger.Loc.ptr(0), new logger.Loc.ptr(0), false, false), $clone(nameLoc, logger.Loc)), js_ast.Expr), 51), $clone(nameLoc, logger.Loc)), js_ast.Expr); _r$1 = js_ast.Assign(_arg, _arg$1); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } js_ast.Expr.copy(argExpr, _r$1); - p.recordUsage($clone(p.enclosingNamespaceArgRef, ast.Ref)); + p.recordUsage($clone((x$7 = p.enclosingNamespaceArgRef, (x$7 === ptrType$11.nil && $throwNilPointerError(), x$7)), ast.Ref)); p.recordUsage($clone(nameRef, ast.Ref)); $s = 6; continue; /* } else { */ case 5: @@ -163562,16 +164805,16 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ if (isExport && !(p.enclosingNamespaceArgRef === ptrType$11.nil)) { $s = 9; continue; } /* */ $s = 10; continue; /* if (isExport && !(p.enclosingNamespaceArgRef === ptrType$11.nil)) { */ case 9: - name = (x$6 = p.symbols, x$7 = nameRef.InnerIndex, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])).OriginalName; + name = (x$8 = p.symbols, x$9 = nameRef.InnerIndex, ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + x$9])).OriginalName; _arg$2 = $clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(nameRef, ast.Ref), false, false, false), $clone(nameLoc, logger.Loc)), js_ast.Expr); - _r$2 = p.dotOrMangledPropVisit($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(p.enclosingNamespaceArgRef, ast.Ref), false, false, false), $clone(nameLoc, logger.Loc)), js_ast.Expr), name, $clone(nameLoc, logger.Loc)); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = p.dotOrMangledPropVisit($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(p.enclosingNamespaceArgRef, ast.Ref), false, false, false), $clone(nameLoc, logger.Loc)), js_ast.Expr), name, $clone(nameLoc, logger.Loc)); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$2 = p.dotOrMangledPropVisit($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone((x$10 = p.enclosingNamespaceArgRef, (x$10 === ptrType$11.nil && $throwNilPointerError(), x$10)), ast.Ref), false, false, false), $clone(nameLoc, logger.Loc)), js_ast.Expr), name, $clone(nameLoc, logger.Loc)); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = p.dotOrMangledPropVisit($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone((x$11 = p.enclosingNamespaceArgRef, (x$11 === ptrType$11.nil && $throwNilPointerError(), x$11)), ast.Ref), false, false, false), $clone(nameLoc, logger.Loc)), js_ast.Expr), name, $clone(nameLoc, logger.Loc)); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _r$4 = js_ast.Assign($clone(new js_ast.Expr.ptr(_r$3, $clone(nameLoc, logger.Loc)), js_ast.Expr), $clone(new js_ast.Expr.ptr(new js_ast.EObject.ptr(sliceType$9.nil, new logger.Loc.ptr(0), new logger.Loc.ptr(0), false, false), $clone(nameLoc, logger.Loc)), js_ast.Expr)); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _arg$3 = $clone(new js_ast.Expr.ptr(new js_ast.EBinary.ptr($clone(new js_ast.Expr.ptr(_r$2, $clone(nameLoc, logger.Loc)), js_ast.Expr), $clone(_r$4, js_ast.Expr), 31), $clone(nameLoc, logger.Loc)), js_ast.Expr); _r$5 = js_ast.Assign(_arg$2, _arg$3); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } js_ast.Expr.copy(argExpr, _r$5); - p.recordUsage($clone(p.enclosingNamespaceArgRef, ast.Ref)); - p.recordUsage($clone(p.enclosingNamespaceArgRef, ast.Ref)); + p.recordUsage($clone((x$12 = p.enclosingNamespaceArgRef, (x$12 === ptrType$11.nil && $throwNilPointerError(), x$12)), ast.Ref)); + p.recordUsage($clone((x$13 = p.enclosingNamespaceArgRef, (x$13 === ptrType$11.nil && $throwNilPointerError(), x$13)), ast.Ref)); p.recordUsage($clone(nameRef, ast.Ref)); $s = 11; continue; /* } else { */ case 10: @@ -163597,7 +164840,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } stmts = $append(stmts, new js_ast.Stmt.ptr(new js_ast.SExpr.ptr($clone(new js_ast.Expr.ptr(new js_ast.ECall.ptr($clone(targetExpr, js_ast.Expr), new sliceType$6([$clone(argExpr, js_ast.Expr)]), new logger.Loc.ptr(0), 0, 0, false, false), $clone(stmtLoc, logger.Loc)), js_ast.Expr), false), $clone(stmtLoc, logger.Loc))); $s = -1; return stmts; - /* */ } return; } var $f = {$blk: generateClosureForTypeScriptNamespaceOrEnum, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _entry, _key, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, argExpr, argRef, args, decls, expr, isExport, name, nameLoc, nameRef, ok, p, stmtLoc, stmts, stmtsInsideClosure, symbol, targetExpr, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s};return $f; + /* */ } return; } var $f = {$blk: generateClosureForTypeScriptNamespaceOrEnum, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _entry, _key, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, argExpr, argRef, args, decls, expr, isExport, name, nameLoc, nameRef, ok, p, stmtLoc, stmts, stmtsInsideClosure, symbol, targetExpr, x, x$1, x$10, x$11, x$12, x$13, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; }; $ptrType(parser).prototype.generateClosureForTypeScriptEnum = function generateClosureForTypeScriptEnum(stmts, stmtLoc, isExport, nameLoc, nameRef, argRef, exprsInsideClosure, allValuesArePure) { var {$24r, _entry, _i, _i$1, _key, _r, _ref, _ref$1, allValuesArePure, argExpr, argRef, args, decls, expr, expr$1, exprsInsideClosure, isExport, joined, joined$1, nameLoc, nameRef, p, stmtLoc, stmts, stmtsInsideClosure, stmtsInsideClosure$1, symbol, targetExpr, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {stmts, stmtLoc, isExport, nameLoc, nameRef, argRef, exprsInsideClosure, allValuesArePure}); @@ -164425,7 +165668,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $ptrType(parser).prototype.privateSymbolNeedsToBeLowered = function privateSymbolNeedsToBeLowered(private$1) { var p, private$1, symbol, x, x$1; p = this; - symbol = (x = p.symbols, x$1 = private$1.Ref.InnerIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + symbol = (x = p.symbols, x$1 = private$1.Ref.InnerIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + x$1, ptrType$23))); return p.options.optionsThatSupportStructuralEquality.unsupportedJSFeatures.Has(compat.SymbolFeature(symbol.Kind)) || new ast.SymbolFlags(symbol.Flags).Has(8); }; $ptrType(parser).prototype.lowerPrivateBrandCheck = function lowerPrivateBrandCheck(target, loc, private$1) { @@ -164514,29 +165757,29 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $ptrType(parser).prototype.extractPrivateIndex = function extractPrivateIndex(target) { var _tuple, _tuple$1, index, ok, ok$1, p, private$1, target; p = this; - _tuple = $assertType(target.Data, ptrType$23, true); + _tuple = $assertType(target.Data, ptrType$24, true); index = _tuple[0]; ok = _tuple[1]; if (ok) { - _tuple$1 = $assertType(index.Index.Data, ptrType$24, true); + _tuple$1 = $assertType(index.Index.Data, ptrType$25, true); private$1 = _tuple$1[0]; ok$1 = _tuple$1[1]; if (ok$1 && p.privateSymbolNeedsToBeLowered(private$1)) { return [index.Target, index.Index.Loc, private$1]; } } - return [new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), new logger.Loc.ptr(0), ptrType$24.nil]; + return [new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), new logger.Loc.ptr(0), ptrType$25.nil]; }; $ptrType(parser).prototype.extractSuperProperty = function extractSuperProperty(target) { var _ref, e, e$1, p, target; p = this; _ref = target.Data; - if ($assertType(_ref, ptrType$25, true)[1]) { + if ($assertType(_ref, ptrType$26, true)[1]) { e = _ref.$val; if (p.shouldLowerSuperPropertyAccess($clone(e.Target, js_ast.Expr))) { return new js_ast.Expr.ptr(new js_ast.EString.ptr(helpers.StringToUTF16(e.Name), new logger.Loc.ptr(0), false, false, false), $clone(e.NameLoc, logger.Loc)); } - } else if ($assertType(_ref, ptrType$23, true)[1]) { + } else if ($assertType(_ref, ptrType$24, true)[1]) { e$1 = _ref.$val; if (p.shouldLowerSuperPropertyAccess($clone(e$1.Target, js_ast.Expr))) { return e$1.Index; @@ -164549,7 +165792,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { p = this; didLower = false; _ref = expr.Data; - switch (0) { default: if ($assertType(_ref, ptrType$26, true)[1]) { + switch (0) { default: if ($assertType(_ref, ptrType$27, true)[1]) { e = _ref.$val; _tuple = p.lowerSuperPropertyOrPrivateInAssign($clone(e.Value, js_ast.Expr)); value = $clone(_tuple[0], js_ast.Expr); @@ -164558,21 +165801,21 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { js_ast.Expr.copy(e.Value, value); didLower = true; } - } else if ($assertType(_ref, ptrType$25, true)[1]) { + } else if ($assertType(_ref, ptrType$26, true)[1]) { e$1 = _ref.$val; if (p.shouldLowerSuperPropertyAccess($clone(e$1.Target, js_ast.Expr))) { key = new js_ast.Expr.ptr(new js_ast.EString.ptr(helpers.StringToUTF16(e$1.Name), new logger.Loc.ptr(0), false, false, false), $clone(e$1.NameLoc, logger.Loc)); js_ast.Expr.copy(expr, p.callSuperPropertyWrapper($clone(expr.Loc, logger.Loc), $clone(key, js_ast.Expr))); didLower = true; } - } else if ($assertType(_ref, ptrType$23, true)[1]) { + } else if ($assertType(_ref, ptrType$24, true)[1]) { e$2 = _ref.$val; if (p.shouldLowerSuperPropertyAccess($clone(e$2.Target, js_ast.Expr))) { js_ast.Expr.copy(expr, p.callSuperPropertyWrapper($clone(expr.Loc, logger.Loc), $clone(e$2.Index, js_ast.Expr))); didLower = true; break; } - _tuple$1 = $assertType(e$2.Index.Data, ptrType$24, true); + _tuple$1 = $assertType(e$2.Index.Data, ptrType$25, true); private$1 = _tuple$1[0]; ok$1 = _tuple$1[1]; if (ok$1 && p.privateSymbolNeedsToBeLowered(private$1)) { @@ -164631,16 +165874,16 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { var _tuple, expr, isSuper, p; p = this; if (p.fnOrArrowDataVisit.shouldLowerSuperPropertyAccess) { - _tuple = $assertType(expr.Data, ptrType$27, true); + _tuple = $assertType(expr.Data, ptrType$28, true); isSuper = _tuple[1]; return isSuper; } return false; }; $ptrType(parser).prototype.callSuperPropertyWrapper = function callSuperPropertyWrapper(loc, key) { - var class$1, key, loc, p, ref, this$1; + var class$1, key, loc, p, ref, this$1, x; p = this; - ref = $clone(p.fnOnlyDataVisit.innerClassNameRef, ast.Ref); + ref = $clone((x = p.fnOnlyDataVisit.innerClassNameRef, (x === ptrType$11.nil && $throwNilPointerError(), x)), ast.Ref); p.recordUsage($clone(ref, ast.Ref)); class$1 = new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(ref, ast.Ref), false, false, false), $clone(loc, logger.Loc)); this$1 = new js_ast.Expr.ptr(js_ast.EThisShared, $clone(loc, logger.Loc)); @@ -164654,9 +165897,9 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { return new js_ast.Expr.ptr(new js_ast.EDot.ptr($clone(p.callRuntime($clone(loc, logger.Loc), "__superWrapper", new sliceType$6([$clone(class$1, js_ast.Expr), $clone(this$1, js_ast.Expr), $clone(key, js_ast.Expr)])), js_ast.Expr), "_", $clone(loc, logger.Loc), 0, false, false, false), $clone(loc, logger.Loc)); }; $ptrType(parser).prototype.lowerSuperPropertyGet = function lowerSuperPropertyGet(loc, key) { - var class$1, key, loc, p, ref, this$1; + var class$1, key, loc, p, ref, this$1, x; p = this; - ref = $clone(p.fnOnlyDataVisit.innerClassNameRef, ast.Ref); + ref = $clone((x = p.fnOnlyDataVisit.innerClassNameRef, (x === ptrType$11.nil && $throwNilPointerError(), x)), ast.Ref); p.recordUsage($clone(ref, ast.Ref)); class$1 = new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(ref, ast.Ref), false, false, false), $clone(loc, logger.Loc)); this$1 = new js_ast.Expr.ptr(js_ast.EThisShared, $clone(loc, logger.Loc)); @@ -164670,9 +165913,9 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { return p.callRuntime($clone(loc, logger.Loc), "__superGet", new sliceType$6([$clone(class$1, js_ast.Expr), $clone(this$1, js_ast.Expr), $clone(key, js_ast.Expr)])); }; $ptrType(parser).prototype.lowerSuperPropertySet = function lowerSuperPropertySet(loc, key, value) { - var class$1, key, loc, p, ref, this$1, value; + var class$1, key, loc, p, ref, this$1, value, x; p = this; - ref = $clone(p.fnOnlyDataVisit.innerClassNameRef, ast.Ref); + ref = $clone((x = p.fnOnlyDataVisit.innerClassNameRef, (x === ptrType$11.nil && $throwNilPointerError(), x)), ast.Ref); p.recordUsage($clone(ref, ast.Ref)); class$1 = new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(ref, ast.Ref), false, false, false), $clone(loc, logger.Loc)); this$1 = new js_ast.Expr.ptr(js_ast.EThisShared, $clone(loc, logger.Loc)); @@ -164711,13 +165954,13 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { p = this; key = new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)); _ref = call.Target.Data; - if ($assertType(_ref, ptrType$25, true)[1]) { + if ($assertType(_ref, ptrType$26, true)[1]) { e = _ref.$val; if (!p.shouldLowerSuperPropertyAccess($clone(e.Target, js_ast.Expr))) { return; } js_ast.Expr.copy(key, new js_ast.Expr.ptr(new js_ast.EString.ptr(helpers.StringToUTF16(e.Name), new logger.Loc.ptr(0), false, false, false), $clone(e.NameLoc, logger.Loc))); - } else if ($assertType(_ref, ptrType$23, true)[1]) { + } else if ($assertType(_ref, ptrType$24, true)[1]) { e$1 = _ref.$val; if (!p.shouldLowerSuperPropertyAccess($clone(e$1.Target, js_ast.Expr))) { return; @@ -164753,7 +165996,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { while (true) { if (!(_i$1 < _ref$1.$length)) { break; } prop$1 = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), js_ast.Property); - _tuple = $assertType(prop$1.Key.Data, ptrType$24, true); + _tuple = $assertType(prop$1.Key.Data, ptrType$25, true); private$1 = _tuple[0]; ok = _tuple[1]; if (ok) { @@ -164780,7 +166023,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { _i$2++; continue; } - _tuple$1 = $assertType(prop$2.Key.Data, ptrType$24, true); + _tuple$1 = $assertType(prop$2.Key.Data, ptrType$25, true); private$2 = _tuple$1[0]; ok$1 = _tuple$1[1]; if (ok$1) { @@ -164817,7 +166060,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { key = _tuple$2[0]; ok$2 = _tuple$2[1]; if (ok$2 && helpers.UTF16EqualsString(key.Value, "constructor")) { - _tuple$3 = $assertType(prop$2.ValueOrNil.Data, ptrType$28, true); + _tuple$3 = $assertType(prop$2.ValueOrNil.Data, ptrType$29, true); fn = _tuple$3[0]; ok$3 = _tuple$3[1]; if (ok$3) { @@ -164865,15 +166108,15 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { var {$24r, _r, _tuple, _tuple$1, _tuple$2, _tuple$3, classLoweringInfo$1, ctx, e, expr, nameToKeep, ok, p, result, s, s$1, s2, stmt, symbol, x, x$1, x$2, x$3, x$4, x$5, $s, $r, $c} = $restore(this, {stmt, expr, result, nameToKeep}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; - ctx = new lowerClassContext.ptr(nameToKeep, 0, ptrType$29.nil, new logger.Loc.ptr(0), new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), new ast.LocRef.ptr(new logger.Loc.ptr(0), new ast.Ref.ptr(0, 0)), ptrType$28.nil, $clone(ast.InvalidRef, ast.Ref), sliceType$8.nil, sliceType$8.nil, sliceType$8.nil, 0, new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), sliceType$6.nil, sliceType$6.nil, sliceType$6.nil, sliceType$6.nil, sliceType$6.nil, $clone(ast.InvalidRef, ast.Ref), new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), false, false, false, sliceType$6.nil, sliceType$6.nil, sliceType$6.nil, sliceType$6.nil, $clone(ast.InvalidRef, ast.Ref), $clone(ast.InvalidRef, ast.Ref), $throwNilPointerError, $throwNilPointerError, false); + ctx = new lowerClassContext.ptr(nameToKeep, 0, ptrType$30.nil, new logger.Loc.ptr(0), new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), new ast.LocRef.ptr(new logger.Loc.ptr(0), new ast.Ref.ptr(0, 0)), ptrType$29.nil, $clone(ast.InvalidRef, ast.Ref), sliceType$8.nil, sliceType$8.nil, sliceType$8.nil, 0, new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), sliceType$6.nil, sliceType$6.nil, sliceType$6.nil, sliceType$6.nil, sliceType$6.nil, $clone(ast.InvalidRef, ast.Ref), new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), false, false, false, sliceType$6.nil, sliceType$6.nil, sliceType$6.nil, sliceType$6.nil, $clone(ast.InvalidRef, ast.Ref), $clone(ast.InvalidRef, ast.Ref), $throwNilPointerError, $throwNilPointerError, false); if ($interfaceIsEqual(stmt.Data, $ifaceNil)) { - _tuple = $assertType(expr.Data, ptrType$30, true); + _tuple = $assertType(expr.Data, ptrType$31, true); e = _tuple[0]; ctx.class$2 = e.Class; js_ast.Expr.copy(ctx.classExpr, expr); ctx.kind = 0; if (!(ctx.class$2.Name === ptrType$12.nil)) { - symbol = (x = p.symbols, x$1 = ctx.class$2.Name.Ref.InnerIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + symbol = (x = p.symbols, x$1 = ctx.class$2.Name.Ref.InnerIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + x$1, ptrType$23))); ctx.nameToKeep = symbol.OriginalName; if (!($equal(result.innerClassNameRef, ast.InvalidRef, ast.Ref))) { p.mergeSymbols($clone(result.innerClassNameRef, ast.Ref), $clone(ctx.class$2.Name.Ref, ast.Ref)); @@ -164897,7 +166140,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { ctx.kind = 1; } } else { - _tuple$2 = $assertType(stmt.Data, ptrType$31, true); + _tuple$2 = $assertType(stmt.Data, ptrType$32, true); s$1 = _tuple$2[0]; _tuple$3 = $assertType(s$1.Value.Data, ptrType$7, true); s2 = _tuple$3[0]; @@ -164927,12 +166170,12 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { var ctx, p, result; ctx = this; ctx.nameFunc = (function lowerClassContext·enableNameCapture·func1() { - var {_r, _r$1, _tuple, classExpr, name, $s, $r, $c} = $restore(this, {}); + var {_r, _r$1, _tuple, classExpr, name, x, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: /* */ if (ctx.kind === 0) { $s = 1; continue; } /* */ $s = 2; continue; /* if (ctx.kind === 0) { */ case 1: - classExpr = new js_ast.EClass.ptr($clone(ctx.class$2, js_ast.Class)); + classExpr = new js_ast.EClass.ptr($clone((x = ctx.class$2, (x === ptrType$30.nil && $throwNilPointerError(), x)), js_ast.Class)); ctx.class$2 = classExpr.Class; _tuple = p.captureValueWithPossibleSideEffects($clone(ctx.classLoc, logger.Loc), 2, $clone(new js_ast.Expr.ptr(classExpr, $clone(ctx.classLoc, logger.Loc)), js_ast.Expr), 0); ctx.nameFunc = _tuple[0]; @@ -164943,7 +166186,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { _r$1 = ctx.nameFunc(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } name = $clone(_r$1, js_ast.Expr); if (!(ctx.class$2.Name === ptrType$12.nil)) { - p.mergeSymbols($clone(ctx.class$2.Name.Ref, ast.Ref), $clone($assertType(name.Data, ptrType$32).Ref, ast.Ref)); + p.mergeSymbols($clone(ctx.class$2.Name.Ref, ast.Ref), $clone($assertType(name.Data, ptrType$33).Ref, ast.Ref)); ctx.class$2.Name = ptrType$12.nil; } $s = -1; return name; @@ -164963,14 +166206,14 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $s = -1; return new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(ctx.class$2.Name.Ref, ast.Ref), false, false, false), $clone(ctx.class$2.Name.Loc, logger.Loc)); /* } */ case 3: $s = -1; return new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)); - /* */ } return; } var $f = {$blk: lowerClassContext·enableNameCapture·func1, $c: true, $r, _r, _r$1, _tuple, classExpr, name, $s};return $f; + /* */ } return; } var $f = {$blk: lowerClassContext·enableNameCapture·func1, $c: true, $r, _r, _r$1, _tuple, classExpr, name, x, $s};return $f; }); }; $ptrType(lowerClassContext).prototype.lowerField = function lowerField(p, prop, private$1, shouldOmitFieldInitializer, staticFieldToBlockAssign, initializerIndex) { var {_r, _r$1, _r$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, args, args$1, args$2, ctx, init, initializerIndex, key, key$1, loc, memberExpr, mustLowerPrivate, ok, ok$1, ok$2, ok$3, ok$4, p, private$1, prop, ref, shouldOmitFieldInitializer, staticFieldToBlockAssign, str, target, value, value$1, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {p, prop, private$1, shouldOmitFieldInitializer, staticFieldToBlockAssign, initializerIndex}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: ctx = this; - mustLowerPrivate = !(private$1 === ptrType$24.nil) && p.privateSymbolNeedsToBeLowered(private$1); + mustLowerPrivate = !(private$1 === ptrType$25.nil) && p.privateSymbolNeedsToBeLowered(private$1); ref = $clone(ast.InvalidRef, ast.Ref); /* */ if (!shouldOmitFieldInitializer) { $s = 1; continue; } /* */ $s = 2; continue; @@ -165006,7 +166249,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { js_ast.Expr.copy(value, new js_ast.Expr.ptr(js_ast.EThisShared, $clone(loc, logger.Loc))); /* } */ case 11: args = new sliceType$6([$clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(ctx.decoratorContextRef, ast.Ref), false, false, false), $clone(loc, logger.Loc)), js_ast.Expr), $clone(new js_ast.Expr.ptr(new js_ast.ENumber.ptr(((((4 + ($imul(2, initializerIndex)) >> 0)) << 1 >> 0))), $clone(loc, logger.Loc)), js_ast.Expr), $clone(value, js_ast.Expr)]); - _tuple = $assertType(init.Data, ptrType$33, true); + _tuple = $assertType(init.Data, ptrType$34, true); ok = _tuple[1]; if (!ok) { args = $append(args, init); @@ -165026,14 +166269,14 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { p.recordUsage($clone(ref, ast.Ref)); key = new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(ref, ast.Ref), false, false, false), $clone(prop.Key.Loc, logger.Loc)); args$1 = new sliceType$6([$clone(target, js_ast.Expr), $clone(key, js_ast.Expr)]); - _tuple$1 = $assertType(init.Data, ptrType$33, true); + _tuple$1 = $assertType(init.Data, ptrType$34, true); ok$1 = _tuple$1[1]; if (!ok$1) { args$1 = $append(args$1, init); } js_ast.Expr.copy(memberExpr, p.callRuntime($clone(loc, logger.Loc), "__privateAdd", args$1)); p.recordUsage($clone(ref, ast.Ref)); - } else if (private$1 === ptrType$24.nil && ctx.class$2.UseDefineForClassFields) { + } else if (private$1 === ptrType$25.nil && ctx.class$2.UseDefineForClassFields) { if (p.shouldAddKeyComment) { _tuple$2 = $assertType(prop.Key.Data, ptrType$16, true); str = _tuple$2[0]; @@ -165043,7 +166286,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } } args$2 = new sliceType$6([$clone(target, js_ast.Expr), $clone(prop.Key, js_ast.Expr)]); - _tuple$3 = $assertType(init.Data, ptrType$33, true); + _tuple$3 = $assertType(init.Data, ptrType$34, true); ok$3 = _tuple$3[1]; if (!ok$3) { args$2 = $append(args$2, init); @@ -165086,7 +166329,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { ctx.instanceMembers = $append(ctx.instanceMembers, new js_ast.Stmt.ptr(new js_ast.SExpr.ptr($clone(memberExpr, js_ast.Expr), false), $clone(loc, logger.Loc))); } /* } */ case 2: - if (private$1 === ptrType$24.nil || mustLowerPrivate) { + if (private$1 === ptrType$25.nil || mustLowerPrivate) { $s = -1; return [new js_ast.Property.ptr(ptrType$20.nil, new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), sliceType$11.nil, new logger.Loc.ptr(0), new logger.Loc.ptr(0), 0, 0), ref, false]; } js_ast.Expr.copy(prop.InitializerOrNil, new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0))); @@ -165103,9 +166346,9 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } else { ref = ctx.privateInstanceMethodRef; } - /* */ if ($equal(ref, ast.InvalidRef, ast.Ref)) { $s = 1; continue; } + /* */ if ($equal((ref === ptrType$11.nil && $throwNilPointerError(), ref), ast.InvalidRef, ast.Ref)) { $s = 1; continue; } /* */ $s = 2; continue; - /* if ($equal(ref, ast.InvalidRef, ast.Ref)) { */ case 1: + /* if ($equal((ref === ptrType$11.nil && $throwNilPointerError(), ref), ast.InvalidRef, ast.Ref)) { */ case 1: name = ""; if (new js_ast.PropertyFlags(prop.Flags).Has(2)) { name = "_static"; @@ -165118,13 +166361,13 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { _r = fmt.Sprintf("_%s%s", new sliceType$1([new $String(ctx.nameToKeep), new $String(name)])); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } name = _r; /* } */ case 4: - ast.Ref.copy(ref, p.generateTempRef(0, name)); + ast.Ref.copy((ref === ptrType$11.nil && $throwNilPointerError(), ref), p.generateTempRef(0, name)); if ($equal(p.weakSetRef, ast.InvalidRef, ast.Ref)) { ast.Ref.copy(p.weakSetRef, p.newSymbol(0, "WeakSet")); p.moduleScope.Generated = $append(p.moduleScope.Generated, p.weakSetRef); } - ctx.privateMembers = $append(ctx.privateMembers, js_ast.Assign($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(ref, ast.Ref), false, false, false), $clone(ctx.classLoc, logger.Loc)), js_ast.Expr), $clone(new js_ast.Expr.ptr(new js_ast.ENew.ptr($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(p.weakSetRef, ast.Ref), false, false, false), $clone(ctx.classLoc, logger.Loc)), js_ast.Expr), sliceType$6.nil, new logger.Loc.ptr(0), false, false), $clone(ctx.classLoc, logger.Loc)), js_ast.Expr))); - p.recordUsage($clone(ref, ast.Ref)); + ctx.privateMembers = $append(ctx.privateMembers, js_ast.Assign($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone((ref === ptrType$11.nil && $throwNilPointerError(), ref), ast.Ref), false, false, false), $clone(ctx.classLoc, logger.Loc)), js_ast.Expr), $clone(new js_ast.Expr.ptr(new js_ast.ENew.ptr($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(p.weakSetRef, ast.Ref), false, false, false), $clone(ctx.classLoc, logger.Loc)), js_ast.Expr), sliceType$6.nil, new logger.Loc.ptr(0), false, false), $clone(ctx.classLoc, logger.Loc)), js_ast.Expr))); + p.recordUsage($clone((ref === ptrType$11.nil && $throwNilPointerError(), ref), ast.Ref)); p.recordUsage($clone(p.weakSetRef, ast.Ref)); target = new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)); /* */ if (new js_ast.PropertyFlags(prop.Flags).Has(2)) { $s = 6; continue; } @@ -165136,15 +166379,15 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* } else { */ case 7: js_ast.Expr.copy(target, new js_ast.Expr.ptr(js_ast.EThisShared, $clone(ctx.classLoc, logger.Loc))); /* } */ case 8: - methodExpr = $clone(p.callRuntime($clone(ctx.classLoc, logger.Loc), "__privateAdd", new sliceType$6([$clone(target, js_ast.Expr), $clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(ref, ast.Ref), false, false, false), $clone(ctx.classLoc, logger.Loc)), js_ast.Expr)])), js_ast.Expr); - p.recordUsage($clone(ref, ast.Ref)); + methodExpr = $clone(p.callRuntime($clone(ctx.classLoc, logger.Loc), "__privateAdd", new sliceType$6([$clone(target, js_ast.Expr), $clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone((ref === ptrType$11.nil && $throwNilPointerError(), ref), ast.Ref), false, false, false), $clone(ctx.classLoc, logger.Loc)), js_ast.Expr)])), js_ast.Expr); + p.recordUsage($clone((ref === ptrType$11.nil && $throwNilPointerError(), ref), ast.Ref)); if (new js_ast.PropertyFlags(prop.Flags).Has(2)) { ctx.staticPrivateMethods = $append(ctx.staticPrivateMethods, methodExpr); } else { ctx.instancePrivateMethods = $append(ctx.instancePrivateMethods, new js_ast.Stmt.ptr(new js_ast.SExpr.ptr($clone(methodExpr, js_ast.Expr), false), $clone(ctx.classLoc, logger.Loc))); } /* } */ case 2: - ast.Ref.copy((x = p.symbols, x$1 = private$1.Ref.InnerIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Link, ref); + ast.Ref.copy((x = p.symbols, x$1 = private$1.Ref.InnerIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Link, (ref === ptrType$11.nil && $throwNilPointerError(), ref)); $s = -1; return; /* */ } return; } var $f = {$blk: lowerPrivateMethod, $c: true, $r, _r, _r$1, ctx, methodExpr, name, p, private$1, prop, ref, target, x, x$1, $s};return $f; }; @@ -165152,9 +166395,9 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { var {_entry, _entry$1, _i, _r, _r$1, _ref, _tuple, _tuple$1, _tuple$2, arg, ctx, fn, id, key, methodRef, ok, ok$1, ok$2, p, private$1, prop, x, x$1, x$2, x$3, x$4, x$5, $s, $r, $c} = $restore(this, {p, prop, private$1}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: ctx = this; - /* */ if (!(private$1 === ptrType$24.nil) && p.privateSymbolNeedsToBeLowered(private$1)) { $s = 1; continue; } + /* */ if (!(private$1 === ptrType$25.nil) && p.privateSymbolNeedsToBeLowered(private$1)) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (!(private$1 === ptrType$24.nil) && p.privateSymbolNeedsToBeLowered(private$1)) { */ case 1: + /* if (!(private$1 === ptrType$25.nil) && p.privateSymbolNeedsToBeLowered(private$1)) { */ case 1: $r = ctx.lowerPrivateMethod(p, $clone(prop, js_ast.Property), private$1); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } methodRef = $clone(p.generateTempRef(0, "_"), ast.Ref); if (prop.Kind === 3) { @@ -165172,7 +166415,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ if (ok && helpers.UTF16EqualsString(key.Value, "constructor")) { $s = 4; continue; } /* */ $s = 5; continue; /* if (ok && helpers.UTF16EqualsString(key.Value, "constructor")) { */ case 4: - _tuple$1 = $assertType(prop.ValueOrNil.Data, ptrType$28, true); + _tuple$1 = $assertType(prop.ValueOrNil.Data, ptrType$29, true); fn = _tuple$1[0]; ok$1 = _tuple$1[1]; /* */ if (ok$1) { $s = 6; continue; } @@ -165190,7 +166433,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ if (arg.IsTypeScriptCtorField) { $s = 12; continue; } /* */ $s = 13; continue; /* if (arg.IsTypeScriptCtorField) { */ case 12: - _tuple$2 = $assertType(arg.Binding.Data, ptrType$34, true); + _tuple$2 = $assertType(arg.Binding.Data, ptrType$35, true); id = _tuple$2[0]; ok$2 = _tuple$2[1]; /* */ if (ok$2) { $s = 14; continue; } @@ -165212,16 +166455,16 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { }; $ptrType(lowerClassContext).prototype.analyzeProperty = function analyzeProperty(p, prop, classLoweringInfo$1) { var _tuple, analysis, classLoweringInfo$1, ctx, mustLowerPrivate, p, prop; - analysis = new propertyAnalysis.ptr(ptrType$24.nil, sliceType$11.nil, sliceType$11.nil, false, false, false, false, false, false); + analysis = new propertyAnalysis.ptr(ptrType$25.nil, sliceType$11.nil, sliceType$11.nil, false, false, false, false, false, false); ctx = this; - _tuple = $assertType(prop.Key.Data, ptrType$24, true); + _tuple = $assertType(prop.Key.Data, ptrType$25, true); analysis.private$0 = _tuple[0]; - mustLowerPrivate = !(analysis.private$0 === ptrType$24.nil) && p.privateSymbolNeedsToBeLowered(analysis.private$0); + mustLowerPrivate = !(analysis.private$0 === ptrType$25.nil) && p.privateSymbolNeedsToBeLowered(analysis.private$0); analysis.shouldOmitFieldInitializer = p.options.optionsThatSupportStructuralEquality.ts.Parse && !new js_ast.PropertyKind(prop.Kind).IsMethodDefinition() && $interfaceIsEqual(prop.InitializerOrNil.Data, $ifaceNil) && !ctx.class$2.UseDefineForClassFields && !mustLowerPrivate && !ctx.class$2.ShouldLowerStandardDecorators; if (!new js_ast.PropertyKind(prop.Kind).IsMethodDefinition()) { if (new js_ast.PropertyFlags(prop.Flags).Has(2)) { analysis.mustLowerField = classLoweringInfo$1.lowerAllStaticFields; - } else if ((prop.Kind === 0) && p.options.optionsThatSupportStructuralEquality.ts.Parse && !ctx.class$2.UseDefineForClassFields && analysis.private$0 === ptrType$24.nil) { + } else if ((prop.Kind === 0) && p.options.optionsThatSupportStructuralEquality.ts.Parse && !ctx.class$2.UseDefineForClassFields && analysis.private$0 === ptrType$25.nil) { analysis.mustLowerField = true; } else { analysis.mustLowerField = classLoweringInfo$1.lowerAllInstanceFields; @@ -165237,7 +166480,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { analysis.propDecorators = prop.Decorators; } analysis.rewriteAutoAccessorToGetSet = (analysis.propDecorators.$length === 0) && (prop.Kind === 4) && (p.options.optionsThatSupportStructuralEquality.unsupportedJSFeatures.Has(new compat.JSFeature(0, 262144)) || analysis.mustLowerField); - analysis.staticFieldToBlockAssign = (prop.Kind === 0) && !analysis.mustLowerField && !ctx.class$2.UseDefineForClassFields && new js_ast.PropertyFlags(prop.Flags).Has(2) && analysis.private$0 === ptrType$24.nil; + analysis.staticFieldToBlockAssign = (prop.Kind === 0) && !analysis.mustLowerField && !ctx.class$2.UseDefineForClassFields && new js_ast.PropertyFlags(prop.Flags).Has(2) && analysis.private$0 === ptrType$25.nil; analysis.needsValueOfKey = true; if (new js_ast.PropertyFlags(prop.Flags).Has(1) && (analysis.propExperimentalDecorators.$length > 0 || analysis.propDecorators.$length > 0 || analysis.mustLowerField || analysis.staticFieldToBlockAssign || analysis.rewriteAutoAccessorToGetSet)) { analysis.isComputedPropertyCopiedOrMoved = true; @@ -165254,10 +166497,10 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { if ($assertType(_ref, ptrType$16, true)[1]) { k = _ref.$val; return helpers.UTF16ToString(k.Value); - } else if ($assertType(_ref, ptrType$32, true)[1]) { + } else if ($assertType(_ref, ptrType$33, true)[1]) { k$1 = _ref.$val; return (x = p.symbols, x$1 = k$1.Ref.InnerIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).OriginalName; - } else if ($assertType(_ref, ptrType$24, true)[1]) { + } else if ($assertType(_ref, ptrType$25, true)[1]) { k$2 = _ref.$val; return $substring((x$2 = p.symbols, x$3 = k$2.Ref.InnerIndex, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])).OriginalName, 1); } else { @@ -165270,12 +166513,12 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { propertyKeyTempRefs = false; decoratorTempRefs = false; ctx = this; - nextComputedPropertyKey = ptrType$35.nil; + nextComputedPropertyKey = ptrType$36.nil; propIndex = ctx.class$2.Properties.$length - 1 >> 0; while (true) { if (!(propIndex >= 0)) { break; } - prop = (x = ctx.class$2.Properties, ((propIndex < 0 || propIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + propIndex])); - analysis = $clone(ctx.analyzeProperty(p, $clone(prop, js_ast.Property), $clone(classLoweringInfo$1, classLoweringInfo)), propertyAnalysis); + prop = (x = ctx.class$2.Properties, ((propIndex < 0 || propIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + propIndex, ptrType$37))); + analysis = $clone(ctx.analyzeProperty(p, $clone((prop === ptrType$37.nil && $throwNilPointerError(), prop), js_ast.Property), $clone(classLoweringInfo$1, classLoweringInfo)), propertyAnalysis); decorators = new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)); if (analysis.propDecorators.$length > 0) { name = p.propertyNameHint($clone(prop.Key, js_ast.Expr)); @@ -165303,9 +166546,9 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { _key = propIndex; (decoratorTempRefs || $throwRuntimeError("assignment to entry in nil map")).set($Int.keyFor(_key), { k: _key, v: $clone(ref, ast.Ref) }); } _ref$1 = prop.Key.Data; - if ($assertType(_ref$1, ptrType$16, true)[1] || $assertType(_ref$1, ptrType$36, true)[1] || $assertType(_ref$1, ptrType$18, true)[1] || $assertType(_ref$1, ptrType$24, true)[1]) { - if (!(nextComputedPropertyKey === ptrType$35.nil)) { - js_ast.Expr.copy(nextComputedPropertyKey, js_ast.JoinWithComma($clone(decorators, js_ast.Expr), $clone(nextComputedPropertyKey, js_ast.Expr))); + if ($assertType(_ref$1, ptrType$16, true)[1] || $assertType(_ref$1, ptrType$38, true)[1] || $assertType(_ref$1, ptrType$18, true)[1] || $assertType(_ref$1, ptrType$25, true)[1]) { + if (!(nextComputedPropertyKey === ptrType$36.nil)) { + js_ast.Expr.copy((nextComputedPropertyKey === ptrType$36.nil && $throwNilPointerError(), nextComputedPropertyKey), js_ast.JoinWithComma($clone(decorators, js_ast.Expr), $clone((nextComputedPropertyKey === ptrType$36.nil && $throwNilPointerError(), nextComputedPropertyKey), js_ast.Expr))); } else { js_ast.Expr.copy(ctx.computedPropertyChain, js_ast.JoinWithComma($clone(decorators, js_ast.Expr), $clone(ctx.computedPropertyChain, js_ast.Expr))); } @@ -165328,8 +166571,8 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { js_ast.Expr.copy(prop.Key, new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(ref$1, ast.Ref), false, false, false), $clone(prop.Key.Loc, logger.Loc))); p.recordUsage($clone(ref$1, ast.Ref)); } - if (!(nextComputedPropertyKey === ptrType$35.nil)) { - js_ast.Expr.copy(nextComputedPropertyKey, js_ast.JoinWithComma($clone(inlineKey, js_ast.Expr), $clone(nextComputedPropertyKey, js_ast.Expr))); + if (!(nextComputedPropertyKey === ptrType$36.nil)) { + js_ast.Expr.copy((nextComputedPropertyKey === ptrType$36.nil && $throwNilPointerError(), nextComputedPropertyKey), js_ast.JoinWithComma($clone(inlineKey, js_ast.Expr), $clone((nextComputedPropertyKey === ptrType$36.nil && $throwNilPointerError(), nextComputedPropertyKey), js_ast.Expr))); } else { js_ast.Expr.copy(ctx.computedPropertyChain, js_ast.JoinWithComma($clone(inlineKey, js_ast.Expr), $clone(ctx.computedPropertyChain, js_ast.Expr))); } @@ -165389,7 +166632,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { return [0, false]; }; $ptrType(lowerClassContext).prototype.processProperties = function processProperties(p, classLoweringInfo$1, result) { - var {_1, _2, _arg, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _entry$6, _entry$7, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _key, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _v, analysis, arg, args, args$1, atLoc, atLoc$1, autoAccessorWeakMapRef, classLoweringInfo$1, counts, ctx, decorator, decorator$1, decorator$2, decorator$3, decoratorTempRefs, decorators, decoratorsRef, decoratorsRef$1, descriptorKind, element, flags, fn, i, i$1, i$2, i$3, i$4, indices, initializerIndex, isConstructor, keep, key, key$1, keyExprNoSideEffects, keyLoc, kind, loc, loc$1, name, ok, ok$1, ok$2, ok$3, ok$4, p, privateFnRef, privateGetFnRef, privateSetFnRef, prop, prop$1, prop$2, propIndex, propIndex$1, properties, propertyKeyTempRefs, ref, ref$1, ref$2, result, target, values, values$1, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {p, classLoweringInfo$1, result}); + var {_1, _2, _arg, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _entry$6, _entry$7, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _key, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _v, analysis, arg, args, args$1, atLoc, atLoc$1, autoAccessorWeakMapRef, classLoweringInfo$1, counts, ctx, decorator, decorator$1, decorator$2, decorator$3, decoratorTempRefs, decorators, decoratorsRef, decoratorsRef$1, descriptorKind, element, flags, fn, i, i$1, i$2, i$3, i$4, indices, initializerIndex, isConstructor, keep, key, key$1, keyExprNoSideEffects, keyLoc, kind, loc, loc$1, name, ok, ok$1, ok$2, ok$3, ok$4, p, privateFnRef, privateGetFnRef, privateSetFnRef, prop, prop$1, prop$2, propIndex, propIndex$1, properties, propertyKeyTempRefs, ref, ref$1, ref$2, result, target, values, values$1, x, x$1, x$10, x$11, x$12, x$13, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {p, classLoweringInfo$1, result}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: ctx = this; properties = $makeSlice(sliceType$9, 0, ctx.class$2.Properties.$length); @@ -165483,7 +166726,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ if (classLoweringInfo$1.lowerAllStaticFields) { $s = 9; continue; } /* */ $s = 10; continue; /* if (classLoweringInfo$1.lowerAllStaticFields) { */ case 9: - $r = ctx.lowerStaticBlock(p, $clone(prop$2.Loc, logger.Loc), $clone(prop$2.ClassStaticBlock, js_ast.ClassStaticBlock)); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = ctx.lowerStaticBlock(p, $clone(prop$2.Loc, logger.Loc), $clone((x$1 = prop$2.ClassStaticBlock, (x$1 === ptrType$20.nil && $throwNilPointerError(), x$1)), js_ast.ClassStaticBlock)); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _i$3++; /* continue; */ $s = 5; continue; /* } */ case 10: @@ -165492,7 +166735,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* continue; */ $s = 5; continue; /* } */ case 8: if (p.options.optionsThatSupportStructuralEquality.ts.Parse && new js_ast.PropertyKind(prop$2.Kind).IsMethodDefinition()) { - _tuple$3 = $assertType(prop$2.ValueOrNil.Data, ptrType$28, true); + _tuple$3 = $assertType(prop$2.ValueOrNil.Data, ptrType$29, true); fn = _tuple$3[0]; ok$2 = _tuple$3[1]; if (ok$2) { @@ -165515,9 +166758,9 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { while (true) { if (!(_i$5 < _ref$5.$length)) { break; } decorator$1 = $clone(((_i$5 < 0 || _i$5 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$5]), js_ast.Decorator); - decorators = (prop$2.$ptr_Decorators || (prop$2.$ptr_Decorators = new ptrType$37(function() { return this.$target.Decorators; }, function($v) { this.$target.Decorators = $v; }, prop$2))); + decorators = (prop$2.$ptr_Decorators || (prop$2.$ptr_Decorators = new ptrType$39(function() { return this.$target.Decorators; }, function($v) { this.$target.Decorators = $v; }, prop$2))); if (isConstructor) { - decorators = (x$1 = ctx.class$2, (x$1.$ptr_Decorators || (x$1.$ptr_Decorators = new ptrType$37(function() { return this.$target.Decorators; }, function($v) { this.$target.Decorators = $v; }, x$1)))); + decorators = (x$2 = ctx.class$2, (x$2 === ptrType$30.nil && $throwNilPointerError(), (x$2.$ptr_Decorators || (x$2.$ptr_Decorators = new ptrType$39(function() { return this.$target.Decorators; }, function($v) { this.$target.Decorators = $v; }, x$2))))); } decorators.$set($append(decorators.$get(), new js_ast.Decorator.ptr($clone(p.callRuntime($clone(decorator$1.Value.Loc, logger.Loc), "__decorateParam", new sliceType$6([$clone(new js_ast.Expr.ptr(new js_ast.ENumber.ptr((i$3)), $clone(decorator$1.Value.Loc, logger.Loc)), js_ast.Expr), $clone(decorator$1.Value, js_ast.Expr)])), js_ast.Expr), $clone(decorator$1.AtLoc, logger.Loc), false))); ((i$3 < 0 || i$3 >= args.$length) ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + i$3]).Decorators = sliceType$11.nil; @@ -165579,7 +166822,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { prop$2.Decorators = sliceType$11.nil; loc$1 = $clone(prop$2.Loc, logger.Loc); keyLoc = $clone(prop$2.Key.Loc, logger.Loc); - atLoc$1 = $clone((x$2 = analysis.propDecorators, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])).AtLoc, logger.Loc); + atLoc$1 = $clone((x$3 = analysis.propDecorators, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])).AtLoc, logger.Loc); flags = 0; _1 = prop$2.Kind; if (_1 === (1)) { @@ -165599,7 +166842,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { if (new js_ast.PropertyFlags(prop$2.Flags).Has(2)) { flags = flags | (8); } - if (!(analysis.private$0 === ptrType$24.nil)) { + if (!(analysis.private$0 === ptrType$25.nil)) { flags = flags | (16); } key$1 = new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)); @@ -165607,8 +166850,8 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { if ($equal(ctx.decoratorContextRef, ast.InvalidRef, ast.Ref)) { ast.Ref.copy(ctx.decoratorContextRef, p.generateTempRef(0, "_init")); } - if (!(analysis.private$0 === ptrType$24.nil)) { - js_ast.Expr.copy(key$1, new js_ast.Expr.ptr(new js_ast.EString.ptr(helpers.StringToUTF16((x$3 = p.symbols, x$4 = analysis.private$0.Ref.InnerIndex, ((x$4 < 0 || x$4 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + x$4])).OriginalName), new logger.Loc.ptr(0), false, false, false), $clone(loc$1, logger.Loc))); + if (!(analysis.private$0 === ptrType$25.nil)) { + js_ast.Expr.copy(key$1, new js_ast.Expr.ptr(new js_ast.EString.ptr(helpers.StringToUTF16((x$4 = p.symbols, x$5 = analysis.private$0.Ref.InnerIndex, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])).OriginalName), new logger.Loc.ptr(0), false, false, false), $clone(loc$1, logger.Loc))); } else { js_ast.Expr.copy(key$1, cloneKeyForLowerClass($clone(keyExprNoSideEffects, js_ast.Expr))); } @@ -165616,9 +166859,9 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { p.recordUsage($clone(ctx.decoratorContextRef, ast.Ref)); p.recordUsage($clone(decoratorsRef$1, ast.Ref)); privateFnRef = $clone(ast.InvalidRef, ast.Ref); - /* */ if (!(analysis.private$0 === ptrType$24.nil)) { $s = 21; continue; } + /* */ if (!(analysis.private$0 === ptrType$25.nil)) { $s = 21; continue; } /* */ $s = 22; continue; - /* if (!(analysis.private$0 === ptrType$24.nil)) { */ case 21: + /* if (!(analysis.private$0 === ptrType$25.nil)) { */ case 21: args$1 = $append(args$1, new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(analysis.private$0.Ref, ast.Ref), false, false, false), $clone(keyLoc, logger.Loc))); p.recordUsage($clone(analysis.private$0.Ref, ast.Ref)); _2 = prop$2.Kind; @@ -165648,7 +166891,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { kind = 8; } ref$1 = $clone(p.newSymbol(kind, "#" + p.propertyNameHint($clone(prop$2.Key, js_ast.Expr))), ast.Ref); - (x$7 = p.symbols, x$8 = ref$1.InnerIndex, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8])).Flags = ((x$5 = p.symbols, x$6 = ref$1.InnerIndex, ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$6])).Flags | (8)) >>> 0; + (x$8 = p.symbols, x$9 = ref$1.InnerIndex, ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + x$9])).Flags = ((x$6 = p.symbols, x$7 = ref$1.InnerIndex, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])).Flags | (8)) >>> 0; _r$5 = ctx.lowerField(p, $clone(prop$2, js_ast.Property), new js_ast.EPrivateIdentifier.ptr($clone(ref$1, ast.Ref)), false, false, initializerIndex); /* */ $s = 27; case 27: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _tuple$6 = _r$5; autoAccessorWeakMapRef = $clone(_tuple$6[1], ast.Ref); @@ -165659,12 +166902,12 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { if (!($equal(privateFnRef, ast.InvalidRef, ast.Ref))) { js_ast.Expr.copy(element, js_ast.Assign($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(privateFnRef, ast.Ref), false, false, false), $clone(keyLoc, logger.Loc)), js_ast.Expr), $clone(element, js_ast.Expr))); p.recordUsage($clone(privateFnRef, ast.Ref)); - } else if ((prop$2.Kind === 4) && !(analysis.private$0 === ptrType$24.nil)) { + } else if ((prop$2.Kind === 4) && !(analysis.private$0 === ptrType$25.nil)) { ref$2 = $clone(p.generateTempRef(0, ""), ast.Ref); privateGetFnRef = $clone(p.generateTempRef(0, "_"), ast.Ref); privateSetFnRef = $clone(p.generateTempRef(0, "_"), ast.Ref); - ast.Ref.copy((x$9 = p.symbols, x$10 = privateGetFnRef.InnerIndex, ((x$10 < 0 || x$10 >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + x$10])).Link, (_entry$6 = $mapIndex(p.privateGetters,ast.Ref.keyFor(analysis.private$0.Ref)), _entry$6 !== undefined ? _entry$6.v : new ast.Ref.ptr(0, 0))); - ast.Ref.copy((x$11 = p.symbols, x$12 = privateSetFnRef.InnerIndex, ((x$12 < 0 || x$12 >= x$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + x$12])).Link, (_entry$7 = $mapIndex(p.privateSetters,ast.Ref.keyFor(analysis.private$0.Ref)), _entry$7 !== undefined ? _entry$7.v : new ast.Ref.ptr(0, 0))); + ast.Ref.copy((x$10 = p.symbols, x$11 = privateGetFnRef.InnerIndex, ((x$11 < 0 || x$11 >= x$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + x$11])).Link, (_entry$6 = $mapIndex(p.privateGetters,ast.Ref.keyFor(analysis.private$0.Ref)), _entry$6 !== undefined ? _entry$6.v : new ast.Ref.ptr(0, 0))); + ast.Ref.copy((x$12 = p.symbols, x$13 = privateSetFnRef.InnerIndex, ((x$13 < 0 || x$13 >= x$12.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + x$13])).Link, (_entry$7 = $mapIndex(p.privateSetters,ast.Ref.keyFor(analysis.private$0.Ref)), _entry$7 !== undefined ? _entry$7.v : new ast.Ref.ptr(0, 0))); js_ast.Expr.copy(element, js_ast.JoinWithComma($clone(js_ast.JoinWithComma($clone(js_ast.Assign($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(ref$2, ast.Ref), false, false, false), $clone(loc$1, logger.Loc)), js_ast.Expr), $clone(element, js_ast.Expr)), js_ast.Expr), $clone(js_ast.Assign($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(privateGetFnRef, ast.Ref), false, false, false), $clone(keyLoc, logger.Loc)), js_ast.Expr), $clone(new js_ast.Expr.ptr(new js_ast.EDot.ptr($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(ref$2, ast.Ref), false, false, false), $clone(loc$1, logger.Loc)), js_ast.Expr), "get", $clone(loc$1, logger.Loc), 0, false, false, false), $clone(loc$1, logger.Loc)), js_ast.Expr)), js_ast.Expr)), js_ast.Expr), $clone(js_ast.Assign($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(privateSetFnRef, ast.Ref), false, false, false), $clone(keyLoc, logger.Loc)), js_ast.Expr), $clone(new js_ast.Expr.ptr(new js_ast.EDot.ptr($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(ref$2, ast.Ref), false, false, false), $clone(loc$1, logger.Loc)), js_ast.Expr), "set", $clone(loc$1, logger.Loc), 0, false, false, false), $clone(loc$1, logger.Loc)), js_ast.Expr)), js_ast.Expr))); p.recordUsage($clone(ref$2, ast.Ref)); p.recordUsage($clone(privateGetFnRef, ast.Ref)); @@ -165688,9 +166931,9 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ if (prop$2.Kind === 4) { $s = 28; continue; } /* */ $s = 29; continue; /* if (prop$2.Kind === 4) { */ case 28: - /* */ if (!(analysis.private$0 === ptrType$24.nil)) { $s = 30; continue; } + /* */ if (!(analysis.private$0 === ptrType$25.nil)) { $s = 30; continue; } /* */ $s = 31; continue; - /* if (!(analysis.private$0 === ptrType$24.nil)) { */ case 30: + /* if (!(analysis.private$0 === ptrType$25.nil)) { */ case 30: $r = ctx.lowerPrivateMethod(p, $clone(prop$2, js_ast.Property), analysis.private$0); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 31: _i$3++; @@ -165733,7 +166976,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { case 6: ctx.class$2.Properties = properties; $s = -1; return; - /* */ } return; } var $f = {$blk: processProperties, $c: true, $r, _1, _2, _arg, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _entry$6, _entry$7, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _key, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _v, analysis, arg, args, args$1, atLoc, atLoc$1, autoAccessorWeakMapRef, classLoweringInfo$1, counts, ctx, decorator, decorator$1, decorator$2, decorator$3, decoratorTempRefs, decorators, decoratorsRef, decoratorsRef$1, descriptorKind, element, flags, fn, i, i$1, i$2, i$3, i$4, indices, initializerIndex, isConstructor, keep, key, key$1, keyExprNoSideEffects, keyLoc, kind, loc, loc$1, name, ok, ok$1, ok$2, ok$3, ok$4, p, privateFnRef, privateGetFnRef, privateSetFnRef, prop, prop$1, prop$2, propIndex, propIndex$1, properties, propertyKeyTempRefs, ref, ref$1, ref$2, result, target, values, values$1, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; + /* */ } return; } var $f = {$blk: processProperties, $c: true, $r, _1, _2, _arg, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _entry$6, _entry$7, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _key, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _v, analysis, arg, args, args$1, atLoc, atLoc$1, autoAccessorWeakMapRef, classLoweringInfo$1, counts, ctx, decorator, decorator$1, decorator$2, decorator$3, decoratorTempRefs, decorators, decoratorsRef, decoratorsRef$1, descriptorKind, element, flags, fn, i, i$1, i$2, i$3, i$4, indices, initializerIndex, isConstructor, keep, key, key$1, keyExprNoSideEffects, keyLoc, kind, loc, loc$1, name, ok, ok$1, ok$2, ok$3, ok$4, p, privateFnRef, privateGetFnRef, privateSetFnRef, prop, prop$1, prop$2, propIndex, propIndex$1, properties, propertyKeyTempRefs, ref, ref$1, ref$2, result, target, values, values$1, x, x$1, x$10, x$11, x$12, x$13, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; }; $ptrType(lowerClassContext).prototype.lowerStaticBlock = function lowerStaticBlock(p, loc, block) { var {_i, _r, _ref, _ref$1, block, ctx, isAllExprs, loc, p, s, s$1, s$2, stmt, $s, $r, $c} = $restore(this, {p, loc, block}); @@ -165747,7 +166990,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { if (!(_i < _ref.$length)) { break; } stmt = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), js_ast.Stmt); _ref$1 = stmt.Data; - if ($assertType(_ref$1, ptrType$38, true)[1]) { + if ($assertType(_ref$1, ptrType$40, true)[1]) { s = _ref$1.$val; } else if ($assertType(_ref$1, ptrType$13, true)[1]) { s$1 = _ref$1.$val; @@ -165786,7 +167029,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { if ($assertType(_ref, ptrType$16, true)[1]) { k = _ref.$val; storageName = "#" + helpers.UTF16ToString(k.Value); - } else if ($assertType(_ref, ptrType$24, true)[1]) { + } else if ($assertType(_ref, ptrType$25, true)[1]) { k$1 = _ref.$val; storageName = "#_" + $substring((x = p.symbols, x$1 = k$1.Ref.InnerIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).OriginalName, 1); } else { @@ -165855,10 +167098,10 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { var {argumentsRef, classLoweringInfo$1, ctorProp, ctx, decoratorInstanceMethodExtraInitializers, generatedStmts, i, j, p, result, target, x, x$1, x$2, x$3, x$4, x$5, $s, $r, $c} = $restore(this, {p, classLoweringInfo$1, result}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: ctx = this; - if ((ctx.parameterFields.$length === 0) && !ctx.decoratorCallInstanceMethodExtraInitializers && (ctx.instancePrivateMethods.$length === 0) && (ctx.instanceMembers.$length === 0) && (ctx.ctor === ptrType$28.nil || $equal(result.superCtorRef, ast.InvalidRef, ast.Ref))) { + if ((ctx.parameterFields.$length === 0) && !ctx.decoratorCallInstanceMethodExtraInitializers && (ctx.instancePrivateMethods.$length === 0) && (ctx.instanceMembers.$length === 0) && (ctx.ctor === ptrType$29.nil || $equal(result.superCtorRef, ast.InvalidRef, ast.Ref))) { $s = -1; return; } - if (ctx.ctor === ptrType$28.nil) { + if (ctx.ctor === ptrType$29.nil) { ctx.ctor = new js_ast.EFunction.ptr($clone(new js_ast.Fn.ptr(ptrType$12.nil, sliceType$10.nil, $clone(new js_ast.FnBody.ptr(new js_ast.SBlock.ptr(sliceType$8.nil, new logger.Loc.ptr(0)), $clone(ctx.classLoc, logger.Loc)), js_ast.FnBody), new ast.Ref.ptr(0, 0), new logger.Loc.ptr(0), false, false, false, false, false, false), js_ast.Fn)); ctx.class$2.Properties = $append(ctx.class$2.Properties, new js_ast.Property.ptr(ptrType$20.nil, $clone(new js_ast.Expr.ptr(new js_ast.EString.ptr(helpers.StringToUTF16("constructor"), new logger.Loc.ptr(0), false, false, false), $clone(ctx.classLoc, logger.Loc)), js_ast.Expr), $clone(new js_ast.Expr.ptr(ctx.ctor, $clone(ctx.classLoc, logger.Loc)), js_ast.Expr), new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), sliceType$11.nil, $clone(ctx.classLoc, logger.Loc), new logger.Loc.ptr(0), 1, 0)); if (!($interfaceIsEqual(ctx.class$2.ExtendsOrNil.Data, $ifaceNil))) { @@ -165905,7 +167148,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ } return; } var $f = {$blk: insertInitializersIntoConstructor, $c: true, $r, argumentsRef, classLoweringInfo$1, ctorProp, ctx, decoratorInstanceMethodExtraInitializers, generatedStmts, i, j, p, result, target, x, x$1, x$2, x$3, x$4, x$5, $s};return $f; }; $ptrType(lowerClassContext).prototype.finishAndGenerateCode = function finishAndGenerateCode(p, result) { - var {_1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _i, _i$1, _i$2, _r, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, base, captureRef, classDecorators, classExperimentalDecorators, classExpr, ctx, decorateClassExpr, decorator, expr, expr$1, hasPotentialInnerClassNameEscape, i, init, kind, mustConvertStmtToExpr, name, nameForClassDecorators, nameToJoin, outerClassNameDecl, p, prefixExprs, result, stmts, suffixExprs, values, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r, $c} = $restore(this, {p, result}); + var {_1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _i, _i$1, _i$2, _r, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, base, captureRef, classDecorators, classExperimentalDecorators, classExpr, ctx, decorateClassExpr, decorator, expr, expr$1, hasPotentialInnerClassNameEscape, i, init, kind, mustConvertStmtToExpr, name, nameForClassDecorators, nameToJoin, outerClassNameDecl, p, prefixExprs, result, stmts, suffixExprs, values, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {p, result}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: classExpr = [classExpr]; ctx = this; @@ -165953,11 +167196,11 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* if (ctx.kind === 0) { */ case 12: _r$6 = ctx.nameFunc(); /* */ $s = 15; case 15: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } name = $clone(_r$6, js_ast.Expr); - ast.LocRef.copy(nameForClassDecorators, new ast.LocRef.ptr($clone(name.Loc, logger.Loc), $clone($assertType(name.Data, ptrType$32).Ref, ast.Ref))); + ast.LocRef.copy(nameForClassDecorators, new ast.LocRef.ptr($clone(name.Loc, logger.Loc), $clone($assertType(name.Data, ptrType$33).Ref, ast.Ref))); $s = 14; continue; /* } else { */ case 13: if (!(ctx.class$2.Name === ptrType$12.nil)) { - ast.LocRef.copy(nameForClassDecorators, ctx.class$2.Name); + ast.LocRef.copy(nameForClassDecorators, (x = ctx.class$2.Name, (x === ptrType$12.nil && $throwNilPointerError(), x))); } else if (ctx.kind === 3) { ast.LocRef.copy(nameForClassDecorators, ctx.defaultName); } else { @@ -166063,7 +167306,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { _i$1++; } if (!($equal(nameForClassDecorators.Ref, ast.InvalidRef, ast.Ref))) { - classExpr[0] = new js_ast.EClass.ptr($clone(ctx.class$2, js_ast.Class)); + classExpr[0] = new js_ast.EClass.ptr($clone((x$1 = ctx.class$2, (x$1 === ptrType$30.nil && $throwNilPointerError(), x$1)), js_ast.Class)); ctx.class$2 = classExpr[0].Class; init = new js_ast.Expr.ptr(classExpr[0], $clone(ctx.classLoc, logger.Loc)); if (!($equal(result.innerClassNameRef, ast.InvalidRef, ast.Ref))) { @@ -166079,7 +167322,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { ctx.class$2.Name = ptrType$12.nil; } } else if (hasPotentialInnerClassNameEscape) { - captureRef = $clone(p.newSymbol(27, (x = p.symbols, x$1 = result.innerClassNameRef.InnerIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).OriginalName), ast.Ref); + captureRef = $clone(p.newSymbol(27, (x$2 = p.symbols, x$3 = result.innerClassNameRef.InnerIndex, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])).OriginalName), ast.Ref); p.currentScope.Generated = $append(p.currentScope.Generated, captureRef); p.recordDeclaredSymbol($clone(captureRef, ast.Ref)); p.mergeSymbols($clone(result.innerClassNameRef, ast.Ref), $clone(captureRef, ast.Ref)); @@ -166098,15 +167341,15 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } else { _1 = ctx.kind; if (_1 === (1)) { - stmts = $append(stmts, new js_ast.Stmt.ptr(new js_ast.SClass.ptr($clone(ctx.class$2, js_ast.Class), false), $clone(ctx.classLoc, logger.Loc))); + stmts = $append(stmts, new js_ast.Stmt.ptr(new js_ast.SClass.ptr($clone((x$4 = ctx.class$2, (x$4 === ptrType$30.nil && $throwNilPointerError(), x$4)), js_ast.Class), false), $clone(ctx.classLoc, logger.Loc))); } else if (_1 === (2)) { - stmts = $append(stmts, new js_ast.Stmt.ptr(new js_ast.SClass.ptr($clone(ctx.class$2, js_ast.Class), true), $clone(ctx.classLoc, logger.Loc))); + stmts = $append(stmts, new js_ast.Stmt.ptr(new js_ast.SClass.ptr($clone((x$5 = ctx.class$2, (x$5 === ptrType$30.nil && $throwNilPointerError(), x$5)), js_ast.Class), true), $clone(ctx.classLoc, logger.Loc))); } else if (_1 === (3)) { - stmts = $append(stmts, new js_ast.Stmt.ptr(new js_ast.SExportDefault.ptr($clone(new js_ast.Stmt.ptr(new js_ast.SClass.ptr($clone(ctx.class$2, js_ast.Class), false), $clone(ctx.classLoc, logger.Loc)), js_ast.Stmt), $clone(ctx.defaultName, ast.LocRef)), $clone(ctx.classLoc, logger.Loc))); + stmts = $append(stmts, new js_ast.Stmt.ptr(new js_ast.SExportDefault.ptr($clone(new js_ast.Stmt.ptr(new js_ast.SClass.ptr($clone((x$6 = ctx.class$2, (x$6 === ptrType$30.nil && $throwNilPointerError(), x$6)), js_ast.Class), false), $clone(ctx.classLoc, logger.Loc)), js_ast.Stmt), $clone(ctx.defaultName, ast.LocRef)), $clone(ctx.classLoc, logger.Loc))); } if (!(ctx.class$2.Name === ptrType$12.nil) && !($equal(result.innerClassNameRef, ast.InvalidRef, ast.Ref))) { if (p.currentScope.ContainsDirectEval) { - (x$6 = p.symbols, x$7 = ctx.class$2.Name.Ref.InnerIndex, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])).Flags = ((x$2 = p.symbols, x$3 = ctx.class$2.Name.Ref.InnerIndex, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])).Flags | (((((x$4 = p.symbols, x$5 = result.innerClassNameRef.InnerIndex, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])).Flags & 1) >>> 0)))) >>> 0; + (x$11 = p.symbols, x$12 = ctx.class$2.Name.Ref.InnerIndex, ((x$12 < 0 || x$12 >= x$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + x$12])).Flags = ((x$7 = p.symbols, x$8 = ctx.class$2.Name.Ref.InnerIndex, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8])).Flags | (((((x$9 = p.symbols, x$10 = result.innerClassNameRef.InnerIndex, ((x$10 < 0 || x$10 >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + x$10])).Flags & 1) >>> 0)))) >>> 0; } p.mergeSymbols($clone(result.innerClassNameRef, ast.Ref), $clone(ctx.class$2.Name.Ref, ast.Ref)); } @@ -166126,30 +167369,30 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { stmts = $append(stmts, new js_ast.Stmt.ptr(new js_ast.SExportClause.ptr(new sliceType$19([$clone(new js_ast.ClauseItem.ptr("default", "", new logger.Loc.ptr(0), $clone(ctx.defaultName, ast.LocRef)), js_ast.ClauseItem)]), false), $clone(ctx.classLoc, logger.Loc))); } $s = -1; return [stmts, new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0))]; - /* */ } return; } var $f = {$blk: finishAndGenerateCode, $c: true, $r, _1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _i, _i$1, _i$2, _r, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, base, captureRef, classDecorators, classExperimentalDecorators, classExpr, ctx, decorateClassExpr, decorator, expr, expr$1, hasPotentialInnerClassNameEscape, i, init, kind, mustConvertStmtToExpr, name, nameForClassDecorators, nameToJoin, outerClassNameDecl, p, prefixExprs, result, stmts, suffixExprs, values, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s};return $f; + /* */ } return; } var $f = {$blk: finishAndGenerateCode, $c: true, $r, _1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _i, _i$1, _i$2, _r, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, base, captureRef, classDecorators, classExperimentalDecorators, classExpr, ctx, decorateClassExpr, decorator, expr, expr$1, hasPotentialInnerClassNameEscape, i, init, kind, mustConvertStmtToExpr, name, nameForClassDecorators, nameToJoin, outerClassNameDecl, p, prefixExprs, result, stmts, suffixExprs, values, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; }; cloneKeyForLowerClass = function cloneKeyForLowerClass$1(key) { var _ref, clone, clone$1, clone$2, clone$3, clone$4, k, k$1, k$2, k$3, k$4, k$5, key; _ref = key.Data; if ($assertType(_ref, ptrType$18, true)[1]) { k = _ref.$val; - clone = $clone(k, js_ast.ENumber); + clone = $clone((k === ptrType$18.nil && $throwNilPointerError(), k), js_ast.ENumber); key.Data = clone; } else if ($assertType(_ref, ptrType$16, true)[1]) { k$1 = _ref.$val; - clone$1 = $clone(k$1, js_ast.EString); + clone$1 = $clone((k$1 === ptrType$16.nil && $throwNilPointerError(), k$1), js_ast.EString); key.Data = clone$1; - } else if ($assertType(_ref, ptrType$32, true)[1]) { + } else if ($assertType(_ref, ptrType$33, true)[1]) { k$2 = _ref.$val; - clone$2 = $clone(k$2, js_ast.EIdentifier); + clone$2 = $clone((k$2 === ptrType$33.nil && $throwNilPointerError(), k$2), js_ast.EIdentifier); key.Data = clone$2; - } else if ($assertType(_ref, ptrType$36, true)[1]) { + } else if ($assertType(_ref, ptrType$38, true)[1]) { k$3 = _ref.$val; - clone$3 = $clone(k$3, js_ast.ENameOfSymbol); + clone$3 = $clone((k$3 === ptrType$38.nil && $throwNilPointerError(), k$3), js_ast.ENameOfSymbol); key.Data = clone$3; - } else if ($assertType(_ref, ptrType$24, true)[1]) { + } else if ($assertType(_ref, ptrType$25, true)[1]) { k$4 = _ref.$val; - clone$4 = $clone(k$4, js_ast.EPrivateIdentifier); + clone$4 = $clone((k$4 === ptrType$25.nil && $throwNilPointerError(), k$4), js_ast.EPrivateIdentifier); key.Data = clone$4; } else { k$5 = _ref; @@ -166174,7 +167417,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { stmt = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), js_ast.Stmt); before = new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)); callLoc = new logger.Loc.ptr(0); - callData = ptrType$39.nil; + callData = ptrType$41.nil; after = new js_ast.Stmt.ptr($ifaceNil, new logger.Loc.ptr(0)); _ref$1 = stmt.Data; if ($assertType(_ref$1, ptrType$13, true)[1]) { @@ -166184,7 +167427,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { loc = $clone(_tuple[1], logger.Loc); c = _tuple[2]; a = $clone(_tuple[3], js_ast.Expr); - if (!(c === ptrType$39.nil)) { + if (!(c === ptrType$41.nil)) { _tmp = $clone(b, js_ast.Expr); _tmp$1 = $clone(loc, logger.Loc); _tmp$2 = c; @@ -166196,7 +167439,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { js_ast.Stmt.copy(after, new js_ast.Stmt.ptr(s, $clone(a.Loc, logger.Loc))); } } - } else if ($assertType(_ref$1, ptrType$40, true)[1]) { + } else if ($assertType(_ref$1, ptrType$42, true)[1]) { s$1 = _ref$1.$val; if (!($interfaceIsEqual(s$1.ValueOrNil.Data, $ifaceNil))) { _tuple$1 = findFirstTopLevelSuperCall($clone(s$1.ValueOrNil, js_ast.Expr), $clone(superCtorRef, ast.Ref)); @@ -166204,7 +167447,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { loc$1 = $clone(_tuple$1[1], logger.Loc); c$1 = _tuple$1[2]; a$1 = $clone(_tuple$1[3], js_ast.Expr); - if (!(c$1 === ptrType$39.nil) && !($interfaceIsEqual(a$1.Data, $ifaceNil))) { + if (!(c$1 === ptrType$41.nil) && !($interfaceIsEqual(a$1.Data, $ifaceNil))) { _tmp$3 = $clone(b$1, js_ast.Expr); _tmp$4 = $clone(loc$1, logger.Loc); _tmp$5 = c$1; @@ -166215,14 +167458,14 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { js_ast.Stmt.copy(after, new js_ast.Stmt.ptr(s$1, $clone(a$1.Loc, logger.Loc))); } } - } else if ($assertType(_ref$1, ptrType$41, true)[1]) { + } else if ($assertType(_ref$1, ptrType$43, true)[1]) { s$2 = _ref$1.$val; _tuple$2 = findFirstTopLevelSuperCall($clone(s$2.Value, js_ast.Expr), $clone(superCtorRef, ast.Ref)); b$2 = $clone(_tuple$2[0], js_ast.Expr); loc$2 = $clone(_tuple$2[1], logger.Loc); c$2 = _tuple$2[2]; a$2 = $clone(_tuple$2[3], js_ast.Expr); - if (!(c$2 === ptrType$39.nil) && !($interfaceIsEqual(a$2.Data, $ifaceNil))) { + if (!(c$2 === ptrType$41.nil) && !($interfaceIsEqual(a$2.Data, $ifaceNil))) { _tmp$6 = $clone(b$2, js_ast.Expr); _tmp$7 = $clone(loc$2, logger.Loc); _tmp$8 = c$2; @@ -166232,14 +167475,14 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { js_ast.Expr.copy(s$2.Value, a$2); js_ast.Stmt.copy(after, new js_ast.Stmt.ptr(s$2, $clone(a$2.Loc, logger.Loc))); } - } else if ($assertType(_ref$1, ptrType$42, true)[1]) { + } else if ($assertType(_ref$1, ptrType$44, true)[1]) { s$3 = _ref$1.$val; _tuple$3 = findFirstTopLevelSuperCall($clone(s$3.Test, js_ast.Expr), $clone(superCtorRef, ast.Ref)); b$3 = $clone(_tuple$3[0], js_ast.Expr); loc$3 = $clone(_tuple$3[1], logger.Loc); c$3 = _tuple$3[2]; a$3 = $clone(_tuple$3[3], js_ast.Expr); - if (!(c$3 === ptrType$39.nil) && !($interfaceIsEqual(a$3.Data, $ifaceNil))) { + if (!(c$3 === ptrType$41.nil) && !($interfaceIsEqual(a$3.Data, $ifaceNil))) { _tmp$9 = $clone(b$3, js_ast.Expr); _tmp$10 = $clone(loc$3, logger.Loc); _tmp$11 = c$3; @@ -166249,14 +167492,14 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { js_ast.Expr.copy(s$3.Test, a$3); js_ast.Stmt.copy(after, new js_ast.Stmt.ptr(s$3, $clone(a$3.Loc, logger.Loc))); } - } else if ($assertType(_ref$1, ptrType$43, true)[1]) { + } else if ($assertType(_ref$1, ptrType$45, true)[1]) { s$4 = _ref$1.$val; _tuple$4 = findFirstTopLevelSuperCall($clone(s$4.Test, js_ast.Expr), $clone(superCtorRef, ast.Ref)); b$4 = $clone(_tuple$4[0], js_ast.Expr); loc$4 = $clone(_tuple$4[1], logger.Loc); c$4 = _tuple$4[2]; a$4 = $clone(_tuple$4[3], js_ast.Expr); - if (!(c$4 === ptrType$39.nil) && !($interfaceIsEqual(a$4.Data, $ifaceNil))) { + if (!(c$4 === ptrType$41.nil) && !($interfaceIsEqual(a$4.Data, $ifaceNil))) { _tmp$12 = $clone(b$4, js_ast.Expr); _tmp$13 = $clone(loc$4, logger.Loc); _tmp$14 = c$4; @@ -166266,7 +167509,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { js_ast.Expr.copy(s$4.Test, a$4); js_ast.Stmt.copy(after, new js_ast.Stmt.ptr(s$4, $clone(a$4.Loc, logger.Loc))); } - } else if ($assertType(_ref$1, ptrType$44, true)[1]) { + } else if ($assertType(_ref$1, ptrType$46, true)[1]) { s$5 = _ref$1.$val; _tuple$5 = $assertType(s$5.InitOrNil.Data, ptrType$13, true); expr = _tuple$5[0]; @@ -166277,7 +167520,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { loc$5 = $clone(_tuple$6[1], logger.Loc); c$5 = _tuple$6[2]; a$5 = $clone(_tuple$6[3], js_ast.Expr); - if (!(c$5 === ptrType$39.nil)) { + if (!(c$5 === ptrType$41.nil)) { _tmp$15 = $clone(b$5, js_ast.Expr); _tmp$16 = $clone(loc$5, logger.Loc); _tmp$17 = c$5; @@ -166293,7 +167536,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } } } - if (!(callData === ptrType$39.nil)) { + if (!(callData === ptrType$41.nil)) { callData.Target.Data = js_ast.ESuperShared; p.ignoreUsage($clone(superCtorRef, ast.Ref)); stmtsBefore = $subslice(body.Block.Stmts, 0, i); @@ -166331,11 +167574,11 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { }; findFirstTopLevelSuperCall = function findFirstTopLevelSuperCall$1(expr, superCtorRef) { var _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, after, after$1, before, before$1, call, call$1, call$2, comma, expr, loc, loc$1, ok, ok$1, ok$2, superCtorRef, target; - _tuple = $assertType(expr.Data, ptrType$39, true); + _tuple = $assertType(expr.Data, ptrType$41, true); call = _tuple[0]; ok = _tuple[1]; if (ok) { - _tuple$1 = $assertType(call.Target.Data, ptrType$32, true); + _tuple$1 = $assertType(call.Target.Data, ptrType$33, true); target = _tuple$1[0]; ok$1 = _tuple$1[1]; if (ok$1 && $equal(target.Ref, superCtorRef, ast.Ref)) { @@ -166343,7 +167586,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { return [new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), expr.Loc, call, new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0))]; } } - _tuple$2 = $assertType(expr.Data, ptrType$45, true); + _tuple$2 = $assertType(expr.Data, ptrType$47, true); comma = _tuple$2[0]; ok$2 = _tuple$2[1]; if (ok$2 && (comma.Op === 36)) { @@ -166352,7 +167595,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { loc = $clone(_tuple$3[1], logger.Loc); call$1 = _tuple$3[2]; after = $clone(_tuple$3[3], js_ast.Expr); - if (!(call$1 === ptrType$39.nil)) { + if (!(call$1 === ptrType$41.nil)) { return [before, loc, call$1, js_ast.JoinWithComma($clone(after, js_ast.Expr), $clone(comma.Right, js_ast.Expr))]; } _tuple$4 = findFirstTopLevelSuperCall($clone(comma.Right, js_ast.Expr), $clone(superCtorRef, ast.Ref)); @@ -166360,11 +167603,11 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { loc$1 = $clone(_tuple$4[1], logger.Loc); call$2 = _tuple$4[2]; after$1 = $clone(_tuple$4[3], js_ast.Expr); - if (!(call$2 === ptrType$39.nil)) { + if (!(call$2 === ptrType$41.nil)) { return [js_ast.JoinWithComma($clone(comma.Left, js_ast.Expr), $clone(before$1, js_ast.Expr)), loc$1, call$2, after$1]; } } - return [new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), new logger.Loc.ptr(0), ptrType$39.nil, new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0))]; + return [new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), new logger.Loc.ptr(0), ptrType$41.nil, new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0))]; }; $ptrType(parser).prototype.markSyntaxFeature = function markSyntaxFeature(feature, r) { var {_1, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$16, _arg$17, _arg$18, _arg$19, _arg$2, _arg$20, _arg$21, _arg$22, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, didGenerateError, feature, kind, kind$1, name, p, r, where, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {feature, r}); @@ -166663,29 +167906,29 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ } return; } var $f = {$blk: markAsyncFn, $c: true, $r, $24r, _r, asyncRange, didGenerateError, feature, isGenerator, p, $s};return $f; }; $ptrType(parser).prototype.captureThis = function captureThis() { - var p, ref, ref$1; + var p, ref, ref$1, x; p = this; if (p.fnOnlyDataVisit.thisCaptureRef === ptrType$11.nil) { ref = $clone(p.newSymbol(1, "_this"), ast.Ref); p.fnOnlyDataVisit.thisCaptureRef = ref; } - ref$1 = $clone(p.fnOnlyDataVisit.thisCaptureRef, ast.Ref); + ref$1 = $clone((x = p.fnOnlyDataVisit.thisCaptureRef, (x === ptrType$11.nil && $throwNilPointerError(), x)), ast.Ref); p.recordUsage($clone(ref$1, ast.Ref)); return ref$1; }; $ptrType(parser).prototype.captureArguments = function captureArguments() { - var p, ref, ref$1; + var p, ref, ref$1, x; p = this; if (p.fnOnlyDataVisit.argumentsCaptureRef === ptrType$11.nil) { ref = $clone(p.newSymbol(1, "_arguments"), ast.Ref); p.fnOnlyDataVisit.argumentsCaptureRef = ref; } - ref$1 = $clone(p.fnOnlyDataVisit.argumentsCaptureRef, ast.Ref); + ref$1 = $clone((x = p.fnOnlyDataVisit.argumentsCaptureRef, (x === ptrType$11.nil && $throwNilPointerError(), x)), ast.Ref); p.recordUsage($clone(ref$1, ast.Ref)); return ref$1; }; $ptrType(parser).prototype.lowerFunction = function lowerFunction(isAsync, isGenerator, args, bodyLoc, bodyBlock, preferExpr, hasRestArg, isArrow) { - var {_arg, _arg$1, _entry, _i, _i$1, _i$2, _i$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, _ref$2, _ref$3, _tuple, _tuple$1, _tuple$2, arg, arg$1, arg$2, arg$3, argRef, argRef$1, args, bodyBlock, bodyLoc, callAsync, couldThrowErrors, decls, fn, forwardedArgs, hasRestArg, hasThisValue, i, i$1, i$2, id, init, isArrow, isAsync, isGenerator, item, items, name, ok, ok$1, p, preferExpr, prefixStmts, ref, target, thisValue, usesArgumentsRef, x, $s, $r, $c} = $restore(this, {isAsync, isGenerator, args, bodyLoc, bodyBlock, preferExpr, hasRestArg, isArrow}); + var {_arg, _arg$1, _entry, _i, _i$1, _i$2, _i$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, _ref$2, _ref$3, _tuple, _tuple$1, _tuple$2, arg, arg$1, arg$2, arg$3, argRef, argRef$1, args, bodyBlock, bodyLoc, callAsync, couldThrowErrors, decls, fn, forwardedArgs, hasRestArg, hasThisValue, i, i$1, i$2, id, init, isArrow, isAsync, isGenerator, item, items, name, ok, ok$1, p, preferExpr, prefixStmts, ref, target, thisValue, usesArgumentsRef, x, x$1, x$2, $s, $r, $c} = $restore(this, {isAsync, isGenerator, args, bodyLoc, bodyBlock, preferExpr, hasRestArg, isArrow}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; /* */ if (p.options.optionsThatSupportStructuralEquality.unsupportedJSFeatures.Has(new compat.JSFeature(1024, 0))) { $s = 1; continue; } @@ -166722,10 +167965,10 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { bodyBlock.Stmts = $appendSlice(prefixStmts, bodyBlock.Stmts); } /* } */ case 2: - /* */ if (isAsync.$get() && (p.options.optionsThatSupportStructuralEquality.unsupportedJSFeatures.Has(new compat.JSFeature(0, 8)) || (!(isGenerator === ptrType$46.nil) && isGenerator.$get() && p.options.optionsThatSupportStructuralEquality.unsupportedJSFeatures.Has(new compat.JSFeature(0, 16))))) { $s = 9; continue; } + /* */ if (isAsync.$get() && (p.options.optionsThatSupportStructuralEquality.unsupportedJSFeatures.Has(new compat.JSFeature(0, 8)) || (!(isGenerator === ptrType$48.nil) && isGenerator.$get() && p.options.optionsThatSupportStructuralEquality.unsupportedJSFeatures.Has(new compat.JSFeature(0, 16))))) { $s = 9; continue; } /* */ $s = 10; continue; - /* if (isAsync.$get() && (p.options.optionsThatSupportStructuralEquality.unsupportedJSFeatures.Has(new compat.JSFeature(0, 8)) || (!(isGenerator === ptrType$46.nil) && isGenerator.$get() && p.options.optionsThatSupportStructuralEquality.unsupportedJSFeatures.Has(new compat.JSFeature(0, 16))))) { */ case 9: - if (!(preferExpr === ptrType$46.nil)) { + /* if (isAsync.$get() && (p.options.optionsThatSupportStructuralEquality.unsupportedJSFeatures.Has(new compat.JSFeature(0, 8)) || (!(isGenerator === ptrType$48.nil) && isGenerator.$get() && p.options.optionsThatSupportStructuralEquality.unsupportedJSFeatures.Has(new compat.JSFeature(0, 16))))) { */ case 9: + if (!(preferExpr === ptrType$48.nil)) { preferExpr.$set(true); } _r$2 = p.valueForThis($clone(bodyLoc, logger.Loc), false, 0, false, false); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } @@ -166737,7 +167980,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } else if (!hasThisValue) { js_ast.Expr.copy(thisValue, new js_ast.Expr.ptr(js_ast.EThisShared, $clone(bodyLoc, logger.Loc))); } - fn = new js_ast.Fn.ptr(ptrType$12.nil, sliceType$10.nil, $clone(new js_ast.FnBody.ptr($clone(bodyBlock, js_ast.SBlock), $clone(bodyLoc, logger.Loc)), js_ast.FnBody), new ast.Ref.ptr(0, 0), new logger.Loc.ptr(0), false, true, false, false, false, false); + fn = new js_ast.Fn.ptr(ptrType$12.nil, sliceType$10.nil, $clone(new js_ast.FnBody.ptr($clone((bodyBlock === ptrType$49.nil && $throwNilPointerError(), bodyBlock), js_ast.SBlock), $clone(bodyLoc, logger.Loc)), js_ast.FnBody), new ast.Ref.ptr(0, 0), new logger.Loc.ptr(0), false, true, false, false, false, false); bodyBlock.Stmts = sliceType$8.nil; couldThrowErrors = false; _ref$1 = args.$get(); @@ -166745,7 +167988,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { while (true) { if (!(_i$1 < _ref$1.$length)) { break; } arg$1 = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), js_ast.Arg); - _tuple$2 = $assertType(arg$1.Binding.Data, ptrType$34, true); + _tuple$2 = $assertType(arg$1.Binding.Data, ptrType$35, true); ok$1 = _tuple$2[1]; if (!ok$1 || (!($interfaceIsEqual(arg$1.DefaultOrNil.Data, $ifaceNil)) && couldPotentiallyThrow(arg$1.DefaultOrNil.Data))) { couldThrowErrors = true; @@ -166753,7 +167996,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } _i$1++; } - usesArgumentsRef = !isArrow && !(p.fnOnlyDataVisit.argumentsRef === ptrType$11.nil) && (_entry = $mapIndex(p.symbolUses,ast.Ref.keyFor(p.fnOnlyDataVisit.argumentsRef)), _entry !== undefined ? _entry.v : new js_ast.SymbolUse.ptr(0)).CountEstimate > 0; + usesArgumentsRef = !isArrow && !(p.fnOnlyDataVisit.argumentsRef === ptrType$11.nil) && (_entry = $mapIndex(p.symbolUses,ast.Ref.keyFor((x$1 = p.fnOnlyDataVisit.argumentsRef, (x$1 === ptrType$11.nil && $throwNilPointerError(), x$1)))), _entry !== undefined ? _entry.v : new js_ast.SymbolUse.ptr(0)).CountEstimate > 0; forwardedArgs = new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)); /* */ if (!couldThrowErrors && !usesArgumentsRef) { $s = 12; continue; } /* */ $s = 13; continue; @@ -166786,7 +168029,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ if (!isArrow) { $s = 19; continue; } /* */ $s = 20; continue; /* if (!isArrow) { */ case 19: - js_ast.Expr.copy(forwardedArgs, new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(p.fnOnlyDataVisit.argumentsRef, ast.Ref), false, false, false), $clone(bodyLoc, logger.Loc))); + js_ast.Expr.copy(forwardedArgs, new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone((x$2 = p.fnOnlyDataVisit.argumentsRef, (x$2 === ptrType$11.nil && $throwNilPointerError(), x$2)), ast.Ref), false, false, false), $clone(bodyLoc, logger.Loc))); $s = 21; continue; /* } else { */ case 20: /* */ if (args.$get().$length < fn.Args.$length) { $s = 22; continue; } @@ -166807,7 +168050,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { if (!(_i$3 < _ref$3.$length)) { break; } i$2 = _i$3; arg$3 = $clone(((_i$3 < 0 || _i$3 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$3]), js_ast.Arg); - id = $assertType(arg$3.Binding.Data, ptrType$34); + id = $assertType(arg$3.Binding.Data, ptrType$35); item = new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(id.Ref, ast.Ref), false, false, false), $clone(arg$3.Binding.Loc, logger.Loc)); if (hasRestArg.$get() && ((i$2 + 1 >> 0) === args.$get().$length)) { item.Data = new js_ast.ESpread.ptr($clone(item, js_ast.Expr)); @@ -166819,7 +168062,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* } */ case 21: /* } */ case 14: name = ""; - if (!(isGenerator === ptrType$46.nil) && isGenerator.$get()) { + if (!(isGenerator === ptrType$48.nil) && isGenerator.$get()) { name = "__asyncGenerator"; isGenerator.$set(false); } else { @@ -166830,7 +168073,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { bodyBlock.Stmts = new sliceType$8([$clone(new js_ast.Stmt.ptr(new js_ast.SReturn.ptr($clone(callAsync, js_ast.Expr)), $clone(bodyLoc, logger.Loc)), js_ast.Stmt)]); /* } */ case 10: $s = -1; return; - /* */ } return; } var $f = {$blk: lowerFunction, $c: true, $r, _arg, _arg$1, _entry, _i, _i$1, _i$2, _i$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, _ref$2, _ref$3, _tuple, _tuple$1, _tuple$2, arg, arg$1, arg$2, arg$3, argRef, argRef$1, args, bodyBlock, bodyLoc, callAsync, couldThrowErrors, decls, fn, forwardedArgs, hasRestArg, hasThisValue, i, i$1, i$2, id, init, isArrow, isAsync, isGenerator, item, items, name, ok, ok$1, p, preferExpr, prefixStmts, ref, target, thisValue, usesArgumentsRef, x, $s};return $f; + /* */ } return; } var $f = {$blk: lowerFunction, $c: true, $r, _arg, _arg$1, _entry, _i, _i$1, _i$2, _i$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, _ref$2, _ref$3, _tuple, _tuple$1, _tuple$2, arg, arg$1, arg$2, arg$3, argRef, argRef$1, args, bodyBlock, bodyLoc, callAsync, couldThrowErrors, decls, fn, forwardedArgs, hasRestArg, hasThisValue, i, i$1, i$2, id, init, isArrow, isAsync, isGenerator, item, items, name, ok, ok$1, p, preferExpr, prefixStmts, ref, target, thisValue, usesArgumentsRef, x, x$1, x$2, $s};return $f; }; $ptrType(parser).prototype.lowerOptionalChain = function lowerOptionalChain(expr, in$1, childOut) { var {$24r, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, chain, childOut, containsPrivateName, e, e$1, e$10, e$11, e$2, e$3, e$4, e$5, e$6, e$7, e$8, e$9, endsWithPropertyAccess, expr, exprFunc, exprWrapFunc, i, in$1, isNullOrUndefined, key, loc, ok, ok$1, ok$2, ok$3, ok$4, ok$5, ok$6, originalExpr, p, parentThisArgFunc, parentThisArgWrapFunc, private$1, private$2, private$3, private$4, privateThisFunc, privateThisWrapFunc, result, sideEffects, startsWithCall, targetFunc, targetFunc$1, targetWrapFunc, thisArg, valueWhenUndefined, wrapFunc, wrapFunc$1, x, $s, $r, $c} = $restore(this, {expr, in$1, childOut}); @@ -166847,7 +168090,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { while (true) { chain = $append(chain, expr); _ref = expr.Data; - if ($assertType(_ref, ptrType$25, true)[1]) { + if ($assertType(_ref, ptrType$26, true)[1]) { e = _ref.$val; js_ast.Expr.copy(expr, e.Target); if (chain.$length === 1) { @@ -166856,13 +168099,13 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { if (e.OptionalChain === 1) { break flatten; } - } else if ($assertType(_ref, ptrType$23, true)[1]) { + } else if ($assertType(_ref, ptrType$24, true)[1]) { e$1 = _ref.$val; js_ast.Expr.copy(expr, e$1.Target); if (chain.$length === 1) { endsWithPropertyAccess = true; } - _tuple = $assertType(e$1.Index.Data, ptrType$24, true); + _tuple = $assertType(e$1.Index.Data, ptrType$25, true); private$1 = _tuple[0]; ok = _tuple[1]; if (ok && p.privateSymbolNeedsToBeLowered(private$1)) { @@ -166871,14 +168114,14 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { if (e$1.OptionalChain === 1) { break flatten; } - } else if ($assertType(_ref, ptrType$39, true)[1]) { + } else if ($assertType(_ref, ptrType$41, true)[1]) { e$2 = _ref.$val; js_ast.Expr.copy(expr, e$2.Target); if (e$2.OptionalChain === 1) { startsWithCall = true; break flatten; } - } else if ($assertType(_ref, ptrType$47, true)[1]) { + } else if ($assertType(_ref, ptrType$50, true)[1]) { e$3 = _ref.$val; js_ast.Expr.copy(valueWhenUndefined, new js_ast.Expr.ptr(new js_ast.EBoolean.ptr(true), $clone(loc, logger.Loc))); js_ast.Expr.copy(expr, e$3.Value); @@ -166910,13 +168153,13 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $s = 3; continue; /* } else { */ case 2: _ref$1 = expr.Data; - if ($assertType(_ref$1, ptrType$21, true)[1] || $assertType(_ref$1, ptrType$33, true)[1]) { + if ($assertType(_ref$1, ptrType$21, true)[1] || $assertType(_ref$1, ptrType$34, true)[1]) { $s = -1; return [valueWhenUndefined, new exprOut.ptr($throwNilPointerError, $throwNilPointerError, false, false, false)]; } /* } */ case 3: _tuple$2 = p.extractPrivateIndex($clone(expr, js_ast.Expr)); private$2 = _tuple$2[2]; - if (!(private$2 === ptrType$24.nil)) { + if (!(private$2 === ptrType$25.nil)) { containsPrivateName = true; } if (!p.options.optionsThatSupportStructuralEquality.unsupportedJSFeatures.Has(new compat.JSFeature(4096, 0)) && !containsPrivateName) { @@ -166935,12 +168178,12 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $s = 15; continue; /* } else { */ case 14: _ref$2 = expr.Data; - /* */ if ($assertType(_ref$2, ptrType$25, true)[1]) { $s = 17; continue; } - /* */ if ($assertType(_ref$2, ptrType$23, true)[1]) { $s = 18; continue; } + /* */ if ($assertType(_ref$2, ptrType$26, true)[1]) { $s = 17; continue; } + /* */ if ($assertType(_ref$2, ptrType$24, true)[1]) { $s = 18; continue; } /* */ $s = 19; continue; - /* switch (0) { default: if ($assertType(_ref$2, ptrType$25, true)[1]) { */ case 17: + /* switch (0) { default: if ($assertType(_ref$2, ptrType$26, true)[1]) { */ case 17: e$5 = _ref$2.$val; - _tuple$3 = $assertType(e$5.Target.Data, ptrType$27, true); + _tuple$3 = $assertType(e$5.Target.Data, ptrType$28, true); ok$2 = _tuple$3[1]; /* */ if (ok$2) { $s = 20; continue; } /* */ $s = 21; continue; @@ -166962,9 +168205,9 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { targetWrapFunc = wrapFunc; /* } */ case 22: $s = 19; continue; - /* } else if ($assertType(_ref$2, ptrType$23, true)[1]) { */ case 18: + /* } else if ($assertType(_ref$2, ptrType$24, true)[1]) { */ case 18: e$6 = _ref$2.$val; - _tuple$5 = $assertType(e$6.Target.Data, ptrType$27, true); + _tuple$5 = $assertType(e$6.Target.Data, ptrType$28, true); ok$3 = _tuple$5[1]; /* */ if (ok$3) { $s = 25; continue; } /* */ $s = 26; continue; @@ -166979,7 +168222,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { targetFunc$1 = _tuple$6[0]; wrapFunc$1 = _tuple$6[1]; targetWrapFunc = wrapFunc$1; - _tuple$7 = $assertType(e$6.Index.Data, ptrType$24, true); + _tuple$7 = $assertType(e$6.Index.Data, ptrType$25, true); private$3 = _tuple$7[0]; ok$4 = _tuple$7[1]; /* */ if (ok$4 && p.privateSymbolNeedsToBeLowered(private$3)) { $s = 28; continue; } @@ -167024,18 +168267,18 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { js_ast.Expr.copy(result, _r$12); /* } */ case 40: _ref$3 = ((i < 0 || i >= chain.$length) ? ($throwRuntimeError("index out of range"), undefined) : chain.$array[chain.$offset + i]).Data; - /* */ if ($assertType(_ref$3, ptrType$25, true)[1]) { $s = 42; continue; } - /* */ if ($assertType(_ref$3, ptrType$23, true)[1]) { $s = 43; continue; } - /* */ if ($assertType(_ref$3, ptrType$39, true)[1]) { $s = 44; continue; } - /* */ if ($assertType(_ref$3, ptrType$47, true)[1]) { $s = 45; continue; } + /* */ if ($assertType(_ref$3, ptrType$26, true)[1]) { $s = 42; continue; } + /* */ if ($assertType(_ref$3, ptrType$24, true)[1]) { $s = 43; continue; } + /* */ if ($assertType(_ref$3, ptrType$41, true)[1]) { $s = 44; continue; } + /* */ if ($assertType(_ref$3, ptrType$50, true)[1]) { $s = 45; continue; } /* */ $s = 46; continue; - /* switch (0) { default: if ($assertType(_ref$3, ptrType$25, true)[1]) { */ case 42: + /* switch (0) { default: if ($assertType(_ref$3, ptrType$26, true)[1]) { */ case 42: e$7 = _ref$3.$val; js_ast.Expr.copy(result, new js_ast.Expr.ptr(new js_ast.EDot.ptr($clone(result, js_ast.Expr), e$7.Name, $clone(e$7.NameLoc, logger.Loc), 0, false, false, false), $clone(loc, logger.Loc))); $s = 47; continue; - /* } else if ($assertType(_ref$3, ptrType$23, true)[1]) { */ case 43: + /* } else if ($assertType(_ref$3, ptrType$24, true)[1]) { */ case 43: e$8 = _ref$3.$val; - _tuple$10 = $assertType(e$8.Index.Data, ptrType$24, true); + _tuple$10 = $assertType(e$8.Index.Data, ptrType$25, true); private$4 = _tuple$10[0]; ok$5 = _tuple$10[1]; /* */ if (ok$5 && p.privateSymbolNeedsToBeLowered(private$4)) { $s = 48; continue; } @@ -167044,7 +168287,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ if (i > 0) { $s = 50; continue; } /* */ $s = 51; continue; /* if (i > 0) { */ case 50: - _tuple$11 = $assertType((x = i - 1 >> 0, ((x < 0 || x >= chain.$length) ? ($throwRuntimeError("index out of range"), undefined) : chain.$array[chain.$offset + x])).Data, ptrType$39, true); + _tuple$11 = $assertType((x = i - 1 >> 0, ((x < 0 || x >= chain.$length) ? ($throwRuntimeError("index out of range"), undefined) : chain.$array[chain.$offset + x])).Data, ptrType$41, true); ok$6 = _tuple$11[1]; /* */ if (ok$6) { $s = 52; continue; } /* */ $s = 53; continue; @@ -167062,7 +168305,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* } */ case 49: js_ast.Expr.copy(result, new js_ast.Expr.ptr(new js_ast.EIndex.ptr($clone(result, js_ast.Expr), $clone(e$8.Index, js_ast.Expr), new logger.Loc.ptr(0), 0, false, false, false), $clone(loc, logger.Loc))); $s = 47; continue; - /* } else if ($assertType(_ref$3, ptrType$39, true)[1]) { */ case 44: + /* } else if ($assertType(_ref$3, ptrType$41, true)[1]) { */ case 44: e$9 = _ref$3.$val; if ((i === (chain.$length - 1 >> 0)) && !($interfaceIsEqual(thisArg.Data, $ifaceNil))) { js_ast.Expr.copy(result, new js_ast.Expr.ptr(new js_ast.ECall.ptr($clone(new js_ast.Expr.ptr(new js_ast.EDot.ptr($clone(result, js_ast.Expr), "call", $clone(loc, logger.Loc), 0, false, false, false), $clone(loc, logger.Loc)), js_ast.Expr), $appendSlice(new sliceType$6([$clone(thisArg, js_ast.Expr)]), e$9.Args), new logger.Loc.ptr(0), 0, 2, e$9.IsMultiLine, e$9.CanBeUnwrappedIfUnused), $clone(loc, logger.Loc))); @@ -167079,7 +168322,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* } */ case 56: js_ast.Expr.copy(result, new js_ast.Expr.ptr(new js_ast.ECall.ptr($clone(result, js_ast.Expr), e$9.Args, new logger.Loc.ptr(0), 0, e$9.Kind, e$9.IsMultiLine, e$9.CanBeUnwrappedIfUnused), $clone(loc, logger.Loc))); $s = 47; continue; - /* } else if ($assertType(_ref$3, ptrType$47, true)[1]) { */ case 45: + /* } else if ($assertType(_ref$3, ptrType$50, true)[1]) { */ case 45: e$10 = _ref$3.$val; js_ast.Expr.copy(result, new js_ast.Expr.ptr(new js_ast.EUnary.ptr($clone(result, js_ast.Expr), 6, false, e$10.WasOriginallyDeleteOfIdentifierOrPropertyAccess), $clone(loc, logger.Loc))); $s = 47; continue; @@ -167127,11 +168370,11 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; _ref = value.Data; - /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$23, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$32, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$24, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$33, true)[1]) { $s = 3; continue; } /* */ $s = 4; continue; - /* if ($assertType(_ref, ptrType$25, true)[1]) { */ case 1: + /* if ($assertType(_ref, ptrType$26, true)[1]) { */ case 1: left = _ref.$val; /* */ if (left.OptionalChain === 0) { $s = 5; continue; } /* */ $s = 6; continue; @@ -167149,7 +168392,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $s = 11; case 11: return $24r; /* } */ case 6: $s = 4; continue; - /* } else if ($assertType(_ref, ptrType$23, true)[1]) { */ case 2: + /* } else if ($assertType(_ref, ptrType$24, true)[1]) { */ case 2: left$1 = _ref.$val; /* */ if (left$1.OptionalChain === 0) { $s = 12; continue; } /* */ $s = 13; continue; @@ -167173,7 +168416,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $s = 21; case 21: return $24r$1; /* } */ case 13: $s = 4; continue; - /* } else if ($assertType(_ref, ptrType$32, true)[1]) { */ case 3: + /* } else if ($assertType(_ref, ptrType$33, true)[1]) { */ case 3: left$2 = _ref.$val; _r$11 = callback($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(left$2.Ref, ast.Ref), false, false, false), $clone(value.Loc, logger.Loc)), js_ast.Expr), $clone(value, js_ast.Expr)); /* */ $s = 22; case 22: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } $24r$2 = _r$11; @@ -167193,9 +168436,9 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { target = $clone(_tuple[0], js_ast.Expr); privateLoc = $clone(_tuple[1], logger.Loc); private$1 = _tuple[2]; - /* */ if (!(private$1 === ptrType$24.nil)) { $s = 1; continue; } + /* */ if (!(private$1 === ptrType$25.nil)) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (!(private$1 === ptrType$24.nil)) { */ case 1: + /* if (!(private$1 === ptrType$25.nil)) { */ case 1: _tuple$1 = p[0].captureValueWithPossibleSideEffects($clone(loc[0], logger.Loc), 2, $clone(target, js_ast.Expr), 0); targetFunc = _tuple$1[0]; targetWrapFunc = _tuple$1[1]; @@ -167233,9 +168476,9 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { target = $clone(_tuple[0], js_ast.Expr); privateLoc = $clone(_tuple[1], logger.Loc); private$1 = _tuple[2]; - /* */ if (!(private$1 === ptrType$24.nil)) { $s = 1; continue; } + /* */ if (!(private$1 === ptrType$25.nil)) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (!(private$1 === ptrType$24.nil)) { */ case 1: + /* if (!(private$1 === ptrType$25.nil)) { */ case 1: /* */ if (p[0].options.optionsThatSupportStructuralEquality.unsupportedJSFeatures.Has(new compat.JSFeature(128, 0))) { $s = 3; continue; } /* */ $s = 4; continue; /* if (p[0].options.optionsThatSupportStructuralEquality.unsupportedJSFeatures.Has(new compat.JSFeature(128, 0))) { */ case 3: @@ -167297,9 +168540,9 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { target = $clone(_tuple[0], js_ast.Expr); privateLoc = $clone(_tuple[1], logger.Loc); private$1 = _tuple[2]; - /* */ if (!(private$1 === ptrType$24.nil)) { $s = 1; continue; } + /* */ if (!(private$1 === ptrType$25.nil)) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (!(private$1 === ptrType$24.nil)) { */ case 1: + /* if (!(private$1 === ptrType$25.nil)) { */ case 1: _tuple$1 = p.captureValueWithPossibleSideEffects($clone(loc[0], logger.Loc), 2, $clone(target, js_ast.Expr), 0); targetFunc = _tuple$1[0]; targetWrapFunc = _tuple$1[1]; @@ -167417,7 +168660,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { body = sliceType$8.nil; closeBraceLoc = new logger.Loc.ptr(0); body = $append(body, loop.Init); - _tuple = $assertType(loop.Body.Data, ptrType$48, true); + _tuple = $assertType(loop.Body.Data, ptrType$49, true); block = _tuple[0]; ok = _tuple[1]; if (ok) { @@ -167430,12 +168673,12 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { awaitTempCallIter = new js_ast.Expr.ptr(new js_ast.ECall.ptr($clone(new js_ast.Expr.ptr(new js_ast.EDot.ptr($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(tempRef$1, ast.Ref), false, false, false), $clone(loc, logger.Loc)), js_ast.Expr), "call", $clone(loc, logger.Loc), 0, false, false, false), $clone(loc, logger.Loc)), js_ast.Expr), new sliceType$6([$clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(iterRef, ast.Ref), false, false, false), $clone(loc, logger.Loc)), js_ast.Expr)]), new logger.Loc.ptr(0), 0, 2, false, false), $clone(loc, logger.Loc)); js_ast.Expr.copy(awaitIterNext, p.maybeLowerAwait($clone(awaitIterNext.Loc, logger.Loc), new js_ast.EAwait.ptr($clone(awaitIterNext, js_ast.Expr)))); js_ast.Expr.copy(awaitTempCallIter, p.maybeLowerAwait($clone(awaitTempCallIter.Loc, logger.Loc), new js_ast.EAwait.ptr($clone(awaitTempCallIter, js_ast.Expr)))); - return $append(stmts, new js_ast.Stmt.ptr(new js_ast.STry.ptr(new js_ast.Catch.ptr($clone(new js_ast.Binding.ptr(new js_ast.BIdentifier.ptr($clone(tempRef$1, ast.Ref)), $clone(loc, logger.Loc)), js_ast.Binding), $clone(new js_ast.SBlock.ptr(new sliceType$8([$clone(new js_ast.Stmt.ptr(new js_ast.SExpr.ptr($clone(new js_ast.Expr.ptr(new js_ast.EBinary.ptr($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(errorRef, ast.Ref), false, false, false), $clone(loc, logger.Loc)), js_ast.Expr), $clone(new js_ast.Expr.ptr(new js_ast.EArray.ptr(new sliceType$6([$clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(tempRef$1, ast.Ref), false, false, false), $clone(loc, logger.Loc)), js_ast.Expr)]), new logger.Loc.ptr(0), new logger.Loc.ptr(0), true, false), $clone(loc, logger.Loc)), js_ast.Expr), 37), $clone(loc, logger.Loc)), js_ast.Expr), false), $clone(loc, logger.Loc)), js_ast.Stmt)]), new logger.Loc.ptr(0)), js_ast.SBlock), $clone(loc, logger.Loc), new logger.Loc.ptr(0)), new js_ast.Finally.ptr($clone(new js_ast.SBlock.ptr(new sliceType$8([$clone(new js_ast.Stmt.ptr(new js_ast.STry.ptr(ptrType$49.nil, new js_ast.Finally.ptr($clone(new js_ast.SBlock.ptr(new sliceType$8([$clone(new js_ast.Stmt.ptr(new js_ast.SIf.ptr($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(errorRef, ast.Ref), false, false, false), $clone(loc, logger.Loc)), js_ast.Expr), $clone(new js_ast.Stmt.ptr(new js_ast.SThrow.ptr($clone(new js_ast.Expr.ptr(new js_ast.EIndex.ptr($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(errorRef, ast.Ref), false, false, false), $clone(loc, logger.Loc)), js_ast.Expr), $clone(new js_ast.Expr.ptr(new js_ast.ENumber.ptr(0), $clone(loc, logger.Loc)), js_ast.Expr), new logger.Loc.ptr(0), 0, false, false, false), $clone(loc, logger.Loc)), js_ast.Expr)), $clone(loc, logger.Loc)), js_ast.Stmt), new js_ast.Stmt.ptr($ifaceNil, new logger.Loc.ptr(0)), false, false), $clone(loc, logger.Loc)), js_ast.Stmt)]), new logger.Loc.ptr(0)), js_ast.SBlock), $clone(loc, logger.Loc)), $clone(new js_ast.SBlock.ptr(new sliceType$8([$clone(new js_ast.Stmt.ptr(new js_ast.SExpr.ptr($clone(new js_ast.Expr.ptr(new js_ast.EBinary.ptr($clone(new js_ast.Expr.ptr(new js_ast.EBinary.ptr($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(moreRef, ast.Ref), false, false, false), $clone(loc, logger.Loc)), js_ast.Expr), $clone(new js_ast.Expr.ptr(new js_ast.EBinary.ptr($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(tempRef$1, ast.Ref), false, false, false), $clone(loc, logger.Loc)), js_ast.Expr), $clone(new js_ast.Expr.ptr(new js_ast.EDot.ptr($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(iterRef, ast.Ref), false, false, false), $clone(loc, logger.Loc)), js_ast.Expr), "return", $clone(loc, logger.Loc), 0, false, false, false), $clone(loc, logger.Loc)), js_ast.Expr), 37), $clone(loc, logger.Loc)), js_ast.Expr), 32), $clone(loc, logger.Loc)), js_ast.Expr), $clone(awaitTempCallIter, js_ast.Expr), 32), $clone(loc, logger.Loc)), js_ast.Expr), false), $clone(loc, logger.Loc)), js_ast.Stmt)]), new logger.Loc.ptr(0)), js_ast.SBlock), $clone(loc, logger.Loc)), $clone(loc, logger.Loc)), js_ast.Stmt)]), new logger.Loc.ptr(0)), js_ast.SBlock), $clone(loc, logger.Loc)), $clone(new js_ast.SBlock.ptr(new sliceType$8([$clone(new js_ast.Stmt.ptr(new js_ast.SFor.ptr($clone(new js_ast.Stmt.ptr(new js_ast.SLocal.ptr(new sliceType$7([$clone(new js_ast.Decl.ptr($clone(new js_ast.Binding.ptr(new js_ast.BIdentifier.ptr($clone(iterRef, ast.Ref)), $clone(loc, logger.Loc)), js_ast.Binding), $clone(p.callRuntime($clone(loc, logger.Loc), "__forAwait", new sliceType$6([$clone(loop.Value, js_ast.Expr)])), js_ast.Expr)), js_ast.Decl), $clone(new js_ast.Decl.ptr($clone(new js_ast.Binding.ptr(new js_ast.BIdentifier.ptr($clone(moreRef, ast.Ref)), $clone(loc, logger.Loc)), js_ast.Binding), new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0))), js_ast.Decl), $clone(new js_ast.Decl.ptr($clone(new js_ast.Binding.ptr(new js_ast.BIdentifier.ptr($clone(tempRef$1, ast.Ref)), $clone(loc, logger.Loc)), js_ast.Binding), new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0))), js_ast.Decl), $clone(new js_ast.Decl.ptr($clone(new js_ast.Binding.ptr(new js_ast.BIdentifier.ptr($clone(errorRef, ast.Ref)), $clone(loc, logger.Loc)), js_ast.Binding), new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0))), js_ast.Decl)]), 0, false, false), $clone(loc, logger.Loc)), js_ast.Stmt), $clone(new js_ast.Expr.ptr(new js_ast.EBinary.ptr($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(moreRef, ast.Ref), false, false, false), $clone(loc, logger.Loc)), js_ast.Expr), $clone(new js_ast.Expr.ptr(new js_ast.EUnary.ptr($clone(new js_ast.Expr.ptr(new js_ast.EDot.ptr($clone(new js_ast.Expr.ptr(new js_ast.EBinary.ptr($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(tempRef$1, ast.Ref), false, false, false), $clone(loc, logger.Loc)), js_ast.Expr), $clone(awaitIterNext, js_ast.Expr), 37), $clone(loc, logger.Loc)), js_ast.Expr), "done", $clone(loc, logger.Loc), 0, false, false, false), $clone(loc, logger.Loc)), js_ast.Expr), 3, false, false), $clone(loc, logger.Loc)), js_ast.Expr), 37), $clone(loc, logger.Loc)), js_ast.Expr), $clone(new js_ast.Expr.ptr(new js_ast.EBinary.ptr($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(moreRef, ast.Ref), false, false, false), $clone(loc, logger.Loc)), js_ast.Expr), $clone(new js_ast.Expr.ptr(new js_ast.EBoolean.ptr(false), $clone(loc, logger.Loc)), js_ast.Expr), 37), $clone(loc, logger.Loc)), js_ast.Expr), $clone(new js_ast.Stmt.ptr(new js_ast.SBlock.ptr(body, $clone(closeBraceLoc, logger.Loc)), $clone(loop.Body.Loc, logger.Loc)), js_ast.Stmt), false), $clone(loc, logger.Loc)), js_ast.Stmt)]), new logger.Loc.ptr(0)), js_ast.SBlock), $clone(loc, logger.Loc)), $clone(loc, logger.Loc))); + return $append(stmts, new js_ast.Stmt.ptr(new js_ast.STry.ptr(new js_ast.Catch.ptr($clone(new js_ast.Binding.ptr(new js_ast.BIdentifier.ptr($clone(tempRef$1, ast.Ref)), $clone(loc, logger.Loc)), js_ast.Binding), $clone(new js_ast.SBlock.ptr(new sliceType$8([$clone(new js_ast.Stmt.ptr(new js_ast.SExpr.ptr($clone(new js_ast.Expr.ptr(new js_ast.EBinary.ptr($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(errorRef, ast.Ref), false, false, false), $clone(loc, logger.Loc)), js_ast.Expr), $clone(new js_ast.Expr.ptr(new js_ast.EArray.ptr(new sliceType$6([$clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(tempRef$1, ast.Ref), false, false, false), $clone(loc, logger.Loc)), js_ast.Expr)]), new logger.Loc.ptr(0), new logger.Loc.ptr(0), true, false), $clone(loc, logger.Loc)), js_ast.Expr), 37), $clone(loc, logger.Loc)), js_ast.Expr), false), $clone(loc, logger.Loc)), js_ast.Stmt)]), new logger.Loc.ptr(0)), js_ast.SBlock), $clone(loc, logger.Loc), new logger.Loc.ptr(0)), new js_ast.Finally.ptr($clone(new js_ast.SBlock.ptr(new sliceType$8([$clone(new js_ast.Stmt.ptr(new js_ast.STry.ptr(ptrType$51.nil, new js_ast.Finally.ptr($clone(new js_ast.SBlock.ptr(new sliceType$8([$clone(new js_ast.Stmt.ptr(new js_ast.SIf.ptr($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(errorRef, ast.Ref), false, false, false), $clone(loc, logger.Loc)), js_ast.Expr), $clone(new js_ast.Stmt.ptr(new js_ast.SThrow.ptr($clone(new js_ast.Expr.ptr(new js_ast.EIndex.ptr($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(errorRef, ast.Ref), false, false, false), $clone(loc, logger.Loc)), js_ast.Expr), $clone(new js_ast.Expr.ptr(new js_ast.ENumber.ptr(0), $clone(loc, logger.Loc)), js_ast.Expr), new logger.Loc.ptr(0), 0, false, false, false), $clone(loc, logger.Loc)), js_ast.Expr)), $clone(loc, logger.Loc)), js_ast.Stmt), new js_ast.Stmt.ptr($ifaceNil, new logger.Loc.ptr(0)), false, false), $clone(loc, logger.Loc)), js_ast.Stmt)]), new logger.Loc.ptr(0)), js_ast.SBlock), $clone(loc, logger.Loc)), $clone(new js_ast.SBlock.ptr(new sliceType$8([$clone(new js_ast.Stmt.ptr(new js_ast.SExpr.ptr($clone(new js_ast.Expr.ptr(new js_ast.EBinary.ptr($clone(new js_ast.Expr.ptr(new js_ast.EBinary.ptr($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(moreRef, ast.Ref), false, false, false), $clone(loc, logger.Loc)), js_ast.Expr), $clone(new js_ast.Expr.ptr(new js_ast.EBinary.ptr($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(tempRef$1, ast.Ref), false, false, false), $clone(loc, logger.Loc)), js_ast.Expr), $clone(new js_ast.Expr.ptr(new js_ast.EDot.ptr($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(iterRef, ast.Ref), false, false, false), $clone(loc, logger.Loc)), js_ast.Expr), "return", $clone(loc, logger.Loc), 0, false, false, false), $clone(loc, logger.Loc)), js_ast.Expr), 37), $clone(loc, logger.Loc)), js_ast.Expr), 32), $clone(loc, logger.Loc)), js_ast.Expr), $clone(awaitTempCallIter, js_ast.Expr), 32), $clone(loc, logger.Loc)), js_ast.Expr), false), $clone(loc, logger.Loc)), js_ast.Stmt)]), new logger.Loc.ptr(0)), js_ast.SBlock), $clone(loc, logger.Loc)), $clone(loc, logger.Loc)), js_ast.Stmt)]), new logger.Loc.ptr(0)), js_ast.SBlock), $clone(loc, logger.Loc)), $clone(new js_ast.SBlock.ptr(new sliceType$8([$clone(new js_ast.Stmt.ptr(new js_ast.SFor.ptr($clone(new js_ast.Stmt.ptr(new js_ast.SLocal.ptr(new sliceType$7([$clone(new js_ast.Decl.ptr($clone(new js_ast.Binding.ptr(new js_ast.BIdentifier.ptr($clone(iterRef, ast.Ref)), $clone(loc, logger.Loc)), js_ast.Binding), $clone(p.callRuntime($clone(loc, logger.Loc), "__forAwait", new sliceType$6([$clone(loop.Value, js_ast.Expr)])), js_ast.Expr)), js_ast.Decl), $clone(new js_ast.Decl.ptr($clone(new js_ast.Binding.ptr(new js_ast.BIdentifier.ptr($clone(moreRef, ast.Ref)), $clone(loc, logger.Loc)), js_ast.Binding), new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0))), js_ast.Decl), $clone(new js_ast.Decl.ptr($clone(new js_ast.Binding.ptr(new js_ast.BIdentifier.ptr($clone(tempRef$1, ast.Ref)), $clone(loc, logger.Loc)), js_ast.Binding), new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0))), js_ast.Decl), $clone(new js_ast.Decl.ptr($clone(new js_ast.Binding.ptr(new js_ast.BIdentifier.ptr($clone(errorRef, ast.Ref)), $clone(loc, logger.Loc)), js_ast.Binding), new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0))), js_ast.Decl)]), 0, false, false), $clone(loc, logger.Loc)), js_ast.Stmt), $clone(new js_ast.Expr.ptr(new js_ast.EBinary.ptr($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(moreRef, ast.Ref), false, false, false), $clone(loc, logger.Loc)), js_ast.Expr), $clone(new js_ast.Expr.ptr(new js_ast.EUnary.ptr($clone(new js_ast.Expr.ptr(new js_ast.EDot.ptr($clone(new js_ast.Expr.ptr(new js_ast.EBinary.ptr($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(tempRef$1, ast.Ref), false, false, false), $clone(loc, logger.Loc)), js_ast.Expr), $clone(awaitIterNext, js_ast.Expr), 37), $clone(loc, logger.Loc)), js_ast.Expr), "done", $clone(loc, logger.Loc), 0, false, false, false), $clone(loc, logger.Loc)), js_ast.Expr), 3, false, false), $clone(loc, logger.Loc)), js_ast.Expr), 37), $clone(loc, logger.Loc)), js_ast.Expr), $clone(new js_ast.Expr.ptr(new js_ast.EBinary.ptr($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(moreRef, ast.Ref), false, false, false), $clone(loc, logger.Loc)), js_ast.Expr), $clone(new js_ast.Expr.ptr(new js_ast.EBoolean.ptr(false), $clone(loc, logger.Loc)), js_ast.Expr), 37), $clone(loc, logger.Loc)), js_ast.Expr), $clone(new js_ast.Stmt.ptr(new js_ast.SBlock.ptr(body, $clone(closeBraceLoc, logger.Loc)), $clone(loop.Body.Loc, logger.Loc)), js_ast.Stmt), false), $clone(loc, logger.Loc)), js_ast.Stmt)]), new logger.Loc.ptr(0)), js_ast.SBlock), $clone(loc, logger.Loc)), $clone(loc, logger.Loc))); }; bindingHasObjectRest = function bindingHasObjectRest$1(binding) { var _i, _i$1, _ref, _ref$1, _ref$2, b, b$1, binding, item, property; _ref = binding.Data; - if ($assertType(_ref, ptrType$51, true)[1]) { + if ($assertType(_ref, ptrType$53, true)[1]) { b = _ref.$val; _ref$1 = b.Items; _i = 0; @@ -167447,7 +168690,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } _i++; } - } else if ($assertType(_ref, ptrType$52, true)[1]) { + } else if ($assertType(_ref, ptrType$54, true)[1]) { b$1 = _ref.$val; _ref$2 = b$1.Properties; _i$1 = 0; @@ -167465,7 +168708,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { exprHasObjectRest = function exprHasObjectRest$1(expr) { var _i, _i$1, _ref, _ref$1, _ref$2, e, e$1, e$2, expr, item, property; _ref = expr.Data; - if ($assertType(_ref, ptrType$45, true)[1]) { + if ($assertType(_ref, ptrType$47, true)[1]) { e = _ref.$val; if ((e.Op === 37) && exprHasObjectRest($clone(e.Left, js_ast.Expr))) { return true; @@ -167590,14 +168833,14 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* } */ case 8: /* } */ case 3: if (!($interfaceIsEqual(bodyPrefixStmt.Data, $ifaceNil))) { - _tuple$1 = $assertType(body.Data, ptrType$48, true); + _tuple$1 = $assertType(body.Data, ptrType$49, true); block = _tuple$1[0]; ok$1 = _tuple$1[1]; if (ok$1) { stmts = $makeSlice(sliceType$8, 0, (1 + block.Stmts.$length >> 0)); block.Stmts = $appendSlice($append(stmts, bodyPrefixStmt), block.Stmts); } else { - body.Data = new js_ast.SBlock.ptr(new sliceType$8([$clone(bodyPrefixStmt, js_ast.Stmt), $clone(body, js_ast.Stmt)]), new logger.Loc.ptr(0)); + body.Data = new js_ast.SBlock.ptr(new sliceType$8([$clone(bodyPrefixStmt, js_ast.Stmt), $clone((body === ptrType$55.nil && $throwNilPointerError(), body), js_ast.Stmt)]), new logger.Loc.ptr(0)); } } $s = -1; return; @@ -167730,11 +168973,11 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: found = false; _ref$1 = expr.Data; - /* */ if ($assertType(_ref$1, ptrType$45, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref$1, ptrType$47, true)[1]) { $s = 1; continue; } /* */ if ($assertType(_ref$1, ptrType$17, true)[1]) { $s = 2; continue; } /* */ if ($assertType(_ref$1, ptrType$15, true)[1]) { $s = 3; continue; } /* */ $s = 4; continue; - /* if ($assertType(_ref$1, ptrType$45, true)[1]) { */ case 1: + /* if ($assertType(_ref$1, ptrType$47, true)[1]) { */ case 1: e = _ref$1.$val; if (!(e.Op === 37)) { _v = false; $s = 7; continue s; } _r = findRestBindings[0]($clone(e.Left, js_ast.Expr)); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } @@ -167840,14 +169083,14 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: split = [split]; binding = split[0]; - _tuple = $assertType(binding.Data, ptrType$45, true); + _tuple = $assertType(binding.Data, ptrType$47, true); binary = _tuple[0]; ok$1 = _tuple[1]; if (ok$1 && (binary.Op === 37)) { binding = binary.Left; } splitRef = $clone(p[0].generateTempRef(declare[0], ""), ast.Ref); - deferredBinding = $clone(binding, js_ast.Expr); + deferredBinding = $clone((binding === ptrType$36.nil && $throwNilPointerError(), binding), js_ast.Expr); binding.Data = new js_ast.EIdentifier.ptr($clone(splitRef, ast.Ref), false, false, false); items = $append(before, split[0]); tailExpr = new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)); @@ -167884,10 +169127,10 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { js_ast.Expr.copy(init, new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(ref, ast.Ref), false, false, false), $clone(init.Loc, logger.Loc))); js_ast.Expr.copy(afterSplitInit, new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(ref, ast.Ref), false, false, false), $clone(init.Loc, logger.Loc))); /* } */ case 2: - split = (x = upToSplit.$length - 1 >> 0, ((x < 0 || x >= upToSplit.$length) ? ($throwRuntimeError("index out of range"), undefined) : upToSplit.$array[upToSplit.$offset + x])); + split = (x = upToSplit.$length - 1 >> 0, ((x < 0 || x >= upToSplit.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(upToSplit.$array, upToSplit.$offset + x, ptrType$37))); binding = split.ValueOrNil; splitRef = $clone(p[0].generateTempRef(declare[0], ""), ast.Ref); - deferredBinding = $clone(binding, js_ast.Expr); + deferredBinding = $clone((binding === ptrType$36.nil && $throwNilPointerError(), binding), js_ast.Expr); binding.Data = new js_ast.EIdentifier.ptr($clone(splitRef, ast.Ref), false, false, false); p[0].recordUsage($clone(splitRef, ast.Ref)); $r = assign[0]($clone(new js_ast.Expr.ptr(new js_ast.EObject.ptr(upToSplit, new logger.Loc.ptr(0), new logger.Loc.ptr(0), isSingleLine, false), $clone(binding.Loc, logger.Loc)), js_ast.Expr), $clone(init, js_ast.Expr)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } @@ -167935,7 +169178,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* while (true) { */ case 9: /* if (!(_i$1 < _ref$3.$length)) { break; } */ if(!(_i$1 < _ref$3.$length)) { $s = 10; continue; } i$1 = _i$1; - property = (x$1 = e$1.Properties, ((i$1 < 0 || i$1 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$1])); + property = (x$1 = e$1.Properties, ((i$1 < 0 || i$1 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + i$1, ptrType$37))); /* */ if (property.Kind === 5) { $s = 11; continue; } /* */ $s = 12; continue; /* if (property.Kind === 5) { */ case 11: @@ -168010,7 +169253,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { capturedKey = (function parser·captureKeyForObjectRest·func2() { return new js_ast.Expr.ptr(new js_ast.EBinary.ptr($clone(new js_ast.Expr.ptr(new js_ast.ENumber.ptr(k$1.Value), $clone(loc, logger.Loc)), js_ast.Expr), $clone(new js_ast.Expr.ptr(new js_ast.EString.ptr(sliceType$3.nil, new logger.Loc.ptr(0), false, false, false), $clone(loc, logger.Loc)), js_ast.Expr), 11), $clone(loc, logger.Loc)); }); - } else if ($assertType(_ref, ptrType$32, true)[1]) { + } else if ($assertType(_ref, ptrType$33, true)[1]) { k$2 = _ref.$val; capturedKey = (function parser·captureKeyForObjectRest·func3() { p.recordUsage($clone(k$2.Ref, ast.Ref)); @@ -168113,7 +169356,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { couldPotentiallyThrow = function couldPotentiallyThrow$1(data) { var _ref, data; _ref = data; - if ($assertType(_ref, ptrType$21, true)[1] || $assertType(_ref, ptrType$33, true)[1] || $assertType(_ref, ptrType$22, true)[1] || $assertType(_ref, ptrType$18, true)[1] || $assertType(_ref, ptrType$53, true)[1] || $assertType(_ref, ptrType$16, true)[1] || $assertType(_ref, ptrType$28, true)[1] || $assertType(_ref, ptrType$54, true)[1]) { + if ($assertType(_ref, ptrType$21, true)[1] || $assertType(_ref, ptrType$34, true)[1] || $assertType(_ref, ptrType$22, true)[1] || $assertType(_ref, ptrType$18, true)[1] || $assertType(_ref, ptrType$56, true)[1] || $assertType(_ref, ptrType$16, true)[1] || $assertType(_ref, ptrType$29, true)[1] || $assertType(_ref, ptrType$57, true)[1]) { return false; } return true; @@ -168126,9 +169369,9 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { target = $clone(_tuple[0], js_ast.Expr); loc = $clone(_tuple[1], logger.Loc); private$1 = _tuple[2]; - /* */ if (!(private$1 === ptrType$24.nil)) { $s = 1; continue; } + /* */ if (!(private$1 === ptrType$25.nil)) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (!(private$1 === ptrType$24.nil)) { */ case 1: + /* if (!(private$1 === ptrType$25.nil)) { */ case 1: _r = p.lowerPrivateSetBinOp($clone(target, js_ast.Expr), $clone(loc, logger.Loc), private$1, op, $clone(right, js_ast.Expr)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $24r = _r; $s = 4; case 4: return $24r; @@ -168227,19 +169470,19 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { s = [s]; stmt = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), js_ast.Stmt); _ref$1 = stmt.Data; - /* */ if ($assertType(_ref$1, ptrType$55, true)[1] || $assertType(_ref$1, ptrType$56, true)[1] || $assertType(_ref$1, ptrType$57, true)[1] || $assertType(_ref$1, ptrType$58, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref$1, ptrType$59, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref$1, ptrType$58, true)[1] || $assertType(_ref$1, ptrType$59, true)[1] || $assertType(_ref$1, ptrType$60, true)[1] || $assertType(_ref$1, ptrType$61, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref$1, ptrType$62, true)[1]) { $s = 4; continue; } /* */ if ($assertType(_ref$1, ptrType$6, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref$1, ptrType$31, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref$1, ptrType$32, true)[1]) { $s = 6; continue; } /* */ if ($assertType(_ref$1, ptrType$10, true)[1]) { $s = 7; continue; } /* */ $s = 8; continue; - /* if ($assertType(_ref$1, ptrType$55, true)[1] || $assertType(_ref$1, ptrType$56, true)[1] || $assertType(_ref$1, ptrType$57, true)[1] || $assertType(_ref$1, ptrType$58, true)[1]) { */ case 3: + /* if ($assertType(_ref$1, ptrType$58, true)[1] || $assertType(_ref$1, ptrType$59, true)[1] || $assertType(_ref$1, ptrType$60, true)[1] || $assertType(_ref$1, ptrType$61, true)[1]) { */ case 3: s$1 = _ref$1; result = $append(result, stmt); _i++; /* continue; */ $s = 1; continue; $s = 8; continue; - /* } else if ($assertType(_ref$1, ptrType$59, true)[1]) { */ case 4: + /* } else if ($assertType(_ref$1, ptrType$62, true)[1]) { */ case 4: s$2 = _ref$1.$val; exports[0] = $appendSlice(exports[0], s$2.Items); _i++; @@ -168253,7 +169496,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* continue; */ $s = 1; continue; } $s = 8; continue; - /* } else if ($assertType(_ref$1, ptrType$31, true)[1]) { */ case 6: + /* } else if ($assertType(_ref$1, ptrType$32, true)[1]) { */ case 6: s$4 = _ref$1.$val; _tuple = $assertType(s$4.Value.Data, ptrType$6, true); ok = _tuple[1]; @@ -168323,17 +169566,17 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; binding = $clone((x = init.Decls, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).Binding, js_ast.Binding); - id = $assertType(binding.Data, ptrType$34); + id = $assertType(binding.Data, ptrType$35); tempRef$1 = $clone(p.generateTempRef(1, "_" + (x$1 = p.symbols, x$2 = id.Ref.InnerIndex, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])).OriginalName), ast.Ref); - _tuple = $assertType(body.Data, ptrType$48, true); + _tuple = $assertType(body.Data, ptrType$49, true); block = _tuple[0]; ok = _tuple[1]; if (!ok) { block = new js_ast.SBlock.ptr(sliceType$8.nil, new logger.Loc.ptr(0)); - _tuple$1 = $assertType(body.Data, ptrType$38, true); + _tuple$1 = $assertType(body.Data, ptrType$40, true); ok$1 = _tuple$1[1]; if (!ok$1) { - block.Stmts = $append(block.Stmts, body); + block.Stmts = $append(block.Stmts, (body === ptrType$55.nil && $throwNilPointerError(), body)); } body.Data = block; } @@ -168383,7 +169626,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ } return; } var $f = {$blk: maybeLowerUsingDeclarationsInSwitch, $c: true, $r, $24r, _i, _i$1, _r, _ref, _ref$1, c, c$1, ctx, loc, p, s, shouldLower, $s};return $f; }; OptionsForYarnPnP = function OptionsForYarnPnP$1() { - return new Options.ptr(sliceType$22.nil, new config.JSXOptions.ptr(new config.DefineExpr.ptr($ifaceNil, sliceType.nil, new ast.Index32.ptr(0)), new config.DefineExpr.ptr($ifaceNil, sliceType.nil, new ast.Index32.ptr(0)), false, false, false, "", false, false), ptrType$60.nil, ptrType$61.nil, ptrType$61.nil, sliceType.nil, ptrType$62.nil, $clone(new optionsThatSupportStructuralEquality.ptr("", new js_ast.ModuleTypeData.ptr(ptrType$63.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0), new compat.JSFeature(0, 0), new compat.JSFeature(0, 0), new compat.JSFeature(0, 0), new config.TSOptions.ptr(new config.TSConfig.ptr(0, 0, 0, 0, 0, 0), false, false), 0, 0, 0, false, false, false, false, false, false, false, false, false, false, false, true), optionsThatSupportStructuralEquality)); + return new Options.ptr(sliceType$22.nil, new config.JSXOptions.ptr(new config.DefineExpr.ptr($ifaceNil, sliceType.nil, new ast.Index32.ptr(0)), new config.DefineExpr.ptr($ifaceNil, sliceType.nil, new ast.Index32.ptr(0)), false, false, false, "", false, false), ptrType$63.nil, ptrType$64.nil, ptrType$64.nil, sliceType.nil, ptrType$65.nil, $clone(new optionsThatSupportStructuralEquality.ptr("", new js_ast.ModuleTypeData.ptr(ptrType$66.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0), new compat.JSFeature(0, 0), new compat.JSFeature(0, 0), new compat.JSFeature(0, 0), new config.TSOptions.ptr(new config.TSConfig.ptr(0, 0, 0, 0, 0, 0), false, false), 0, 0, 0, false, false, false, false, false, false, false, false, false, false, false, true), optionsThatSupportStructuralEquality)); }; $pkg.OptionsForYarnPnP = OptionsForYarnPnP; OptionsFromConfig = function OptionsFromConfig$1(options) { @@ -168392,12 +169635,12 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { }; $pkg.OptionsFromConfig = OptionsFromConfig; $ptrType(Options).prototype.Equal = function Equal(b) { - var _i, _i$1, _ref, _ref$1, a, b, i, j, x, x$1, x$2, x$3, y; + var _i, _i$1, _ref, _ref$1, a, b, i, j, x, x$1, x$2, x$3, x$4, x$5, y; a = this; if (!($equal(a.optionsThatSupportStructuralEquality, b.optionsThatSupportStructuralEquality, optionsThatSupportStructuralEquality))) { return false; } - if ((a.tsAlwaysStrict === ptrType$60.nil && !(b.tsAlwaysStrict === ptrType$60.nil)) || (!(a.tsAlwaysStrict === ptrType$60.nil) && b.tsAlwaysStrict === ptrType$60.nil) || (!(a.tsAlwaysStrict === ptrType$60.nil) && !(b.tsAlwaysStrict === ptrType$60.nil) && !($equal(a.tsAlwaysStrict, b.tsAlwaysStrict, config.TSAlwaysStrict)))) { + if ((a.tsAlwaysStrict === ptrType$63.nil && !(b.tsAlwaysStrict === ptrType$63.nil)) || (!(a.tsAlwaysStrict === ptrType$63.nil) && b.tsAlwaysStrict === ptrType$63.nil) || (!(a.tsAlwaysStrict === ptrType$63.nil) && !(b.tsAlwaysStrict === ptrType$63.nil) && !($equal((x = a.tsAlwaysStrict, (x === ptrType$63.nil && $throwNilPointerError(), x)), (x$1 = b.tsAlwaysStrict, (x$1 === ptrType$63.nil && $throwNilPointerError(), x$1)), config.TSAlwaysStrict)))) { return false; } if (!isSameRegexp(a.mangleProps, b.mangleProps) || !isSameRegexp(a.reserveProps, b.reserveProps)) { @@ -168414,17 +169657,17 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { while (true) { if (!(_i < _ref.$length)) { break; } i = _i; - x = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), config.InjectedFile); - y = $clone((x$1 = b.injectedFiles, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])), config.InjectedFile); - if (!($equal(x.Source, y.Source, logger.Source)) || !(x.DefineName === y.DefineName) || !((x.Exports.$length === y.Exports.$length))) { + x$2 = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), config.InjectedFile); + y = $clone((x$3 = b.injectedFiles, ((i < 0 || i >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + i])), config.InjectedFile); + if (!($equal(x$2.Source, y.Source, logger.Source)) || !(x$2.DefineName === y.DefineName) || !((x$2.Exports.$length === y.Exports.$length))) { return false; } - _ref$1 = x.Exports; + _ref$1 = x$2.Exports; _i$1 = 0; while (true) { if (!(_i$1 < _ref$1.$length)) { break; } j = _i$1; - if (!($equal((x$2 = x.Exports, ((j < 0 || j >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + j])), (x$3 = y.Exports, ((j < 0 || j >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + j])), config.InjectableExport))) { + if (!($equal((x$4 = x$2.Exports, ((j < 0 || j >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + j])), (x$5 = y.Exports, ((j < 0 || j >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + j])), config.InjectableExport))) { return false; } _i$1++; @@ -168434,17 +169677,17 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { if (!(a.jsx.Parse === b.jsx.Parse) || !jsxExprsEqual($clone(a.jsx.Factory, config.DefineExpr), $clone(b.jsx.Factory, config.DefineExpr)) || !jsxExprsEqual($clone(a.jsx.Fragment, config.DefineExpr), $clone(b.jsx.Fragment, config.DefineExpr))) { return false; } - if ((!(a.defines === ptrType$62.nil) || !(b.defines === ptrType$62.nil)) && (a.defines === ptrType$62.nil || b.defines === ptrType$62.nil || !(((a.defines.IdentifierDefines ? a.defines.IdentifierDefines.size : 0) === (b.defines.IdentifierDefines ? b.defines.IdentifierDefines.size : 0))) || !(((a.defines.DotDefines ? a.defines.DotDefines.size : 0) === (b.defines.DotDefines ? b.defines.DotDefines.size : 0))))) { + if ((!(a.defines === ptrType$65.nil) || !(b.defines === ptrType$65.nil)) && (a.defines === ptrType$65.nil || b.defines === ptrType$65.nil || !(((a.defines.IdentifierDefines ? a.defines.IdentifierDefines.size : 0) === (b.defines.IdentifierDefines ? b.defines.IdentifierDefines.size : 0))) || !(((a.defines.DotDefines ? a.defines.DotDefines.size : 0) === (b.defines.DotDefines ? b.defines.DotDefines.size : 0))))) { $panic(new $String("Internal error")); } return true; }; isSameRegexp = function isSameRegexp$1(a, b) { var a, b; - if (a === ptrType$61.nil) { - return b === ptrType$61.nil; + if (a === ptrType$64.nil) { + return b === ptrType$64.nil; } else { - return !(b === ptrType$61.nil) && a.String() === b.String(); + return !(b === ptrType$64.nil) && a.String() === b.String(); } }; jsxExprsEqual = function jsxExprsEqual$1(a, b) { @@ -168502,11 +169745,11 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { while (true) { if (!(stmts.$length > 0)) { break; } _ref$1 = (x = stmts.$length - 1 >> 0, ((x < 0 || x >= stmts.$length) ? ($throwRuntimeError("index out of range"), undefined) : stmts.$array[stmts.$offset + x])).Data; - if ($assertType(_ref$1, ptrType$48, true)[1]) { + if ($assertType(_ref$1, ptrType$49, true)[1]) { s$1 = _ref$1.$val; stmts = s$1.Stmts; continue; - } else if ($assertType(_ref$1, ptrType$64, true)[1] || $assertType(_ref$1, ptrType$65, true)[1] || $assertType(_ref$1, ptrType$40, true)[1] || $assertType(_ref$1, ptrType$41, true)[1]) { + } else if ($assertType(_ref$1, ptrType$67, true)[1] || $assertType(_ref$1, ptrType$68, true)[1] || $assertType(_ref$1, ptrType$42, true)[1] || $assertType(_ref$1, ptrType$43, true)[1]) { s$2 = _ref$1; canFallThrough = false; } @@ -168551,7 +169794,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } }; $ptrType(duplicateCaseChecker).prototype.check = function check(p, expr) { - var {_i, _q, _r, _r$1, _ref, _tuple, _tuple$1, _tuple$2, _tuple$3, bucket, c, couldBeIncorrect, dc, earlierRange, entry, equals, expr, hash, kind, laterRange, mask, ok, ok$1, ok$2, p, text, y, $s, $r, $c} = $restore(this, {p, expr}); + var {_i, _q, _r, _r$1, _ref, _tuple, _tuple$1, _tuple$2, _tuple$3, bucket, c, couldBeIncorrect, dc, earlierRange, entry, equals, expr, hash, kind, laterRange, mask, ok, ok$1, ok$2, p, text, x, x$1, y, $s, $r, $c} = $restore(this, {p, expr}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: dc = this; _tuple = duplicateCaseHash($clone(expr, js_ast.Expr)); @@ -168561,7 +169804,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ $s = 2; continue; /* if (ok) { */ case 1: bucket = (_r = hash % 251, _r === _r ? _r : $throwRuntimeError("integer divide by zero")); - entry = $indexPtr(dc.bloomFilter, (_q = bucket / 8, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")), ptrType$66); + entry = (x = dc.bloomFilter, x$1 = (_q = bucket / 8, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")), ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x, x$1, ptrType$69))); mask = (y = ((_r$1 = bucket % 8, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero"))), y < 32 ? (1 << y) : 0) << 24 >>> 24; /* */ if (!(((((entry.$get() & mask) >>> 0)) === 0))) { $s = 3; continue; } /* */ $s = 4; continue; @@ -168616,18 +169859,18 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { dc.cases = $append(dc.cases, new duplicateCaseValue.ptr($clone(expr, js_ast.Expr), hash)); /* } */ case 2: $s = -1; return; - /* */ } return; } var $f = {$blk: check, $c: true, $r, _i, _q, _r, _r$1, _ref, _tuple, _tuple$1, _tuple$2, _tuple$3, bucket, c, couldBeIncorrect, dc, earlierRange, entry, equals, expr, hash, kind, laterRange, mask, ok, ok$1, ok$2, p, text, y, $s};return $f; + /* */ } return; } var $f = {$blk: check, $c: true, $r, _i, _q, _r, _r$1, _ref, _tuple, _tuple$1, _tuple$2, _tuple$3, bucket, c, couldBeIncorrect, dc, earlierRange, entry, equals, expr, hash, kind, laterRange, mask, ok, ok$1, ok$2, p, text, x, x$1, y, $s};return $f; }; duplicateCaseHash = function duplicateCaseHash$1(expr) { var _i, _i$1, _ref, _ref$1, _ref$2, _rune, _tuple, _tuple$1, _tuple$2, bits, c, c$1, e, e$1, e$2, e$3, e$4, e$5, e$6, e$7, e$8, e$9, expr, hash, hash$1, index, ok, ok$1, ok$2, target, target$1; _ref = expr.Data; - if ($assertType(_ref, ptrType$67, true)[1]) { + if ($assertType(_ref, ptrType$70, true)[1]) { e = _ref.$val; return duplicateCaseHash($clone(e.Value, js_ast.Expr)); } else if ($assertType(_ref, ptrType$21, true)[1]) { e$1 = _ref.$val; return [0, true]; - } else if ($assertType(_ref, ptrType$33, true)[1]) { + } else if ($assertType(_ref, ptrType$34, true)[1]) { e$2 = _ref.$val; return [1, true]; } else if ($assertType(_ref, ptrType$22, true)[1]) { @@ -168652,7 +169895,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { _i++; } return [hash, true]; - } else if ($assertType(_ref, ptrType$53, true)[1]) { + } else if ($assertType(_ref, ptrType$56, true)[1]) { e$6 = _ref.$val; hash$1 = 5; _ref$2 = e$6.Value; @@ -168665,10 +169908,10 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { _i$1 += _rune[1]; } return [hash$1, true]; - } else if ($assertType(_ref, ptrType$32, true)[1]) { + } else if ($assertType(_ref, ptrType$33, true)[1]) { e$7 = _ref.$val; return [helpers.HashCombine(6, e$7.Ref.InnerIndex), true]; - } else if ($assertType(_ref, ptrType$25, true)[1]) { + } else if ($assertType(_ref, ptrType$26, true)[1]) { e$8 = _ref.$val; _tuple = duplicateCaseHash($clone(e$8.Target, js_ast.Expr)); target = _tuple[0]; @@ -168676,7 +169919,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { if (ok) { return [helpers.HashCombineString(helpers.HashCombine(7, target), e$8.Name), true]; } - } else if ($assertType(_ref, ptrType$23, true)[1]) { + } else if ($assertType(_ref, ptrType$24, true)[1]) { e$9 = _ref.$val; _tuple$1 = duplicateCaseHash($clone(e$9.Target, js_ast.Expr)); target$1 = _tuple$1[0]; @@ -168696,7 +169939,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { var _ref, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, a, a$1, a$2, a$3, a$4, a$5, a$6, a$7, a$8, a$9, b, b$1, b$2, b$3, b$4, b$5, b$6, b$7, couldBeIncorrect, equal, equals, equals$1, equals$2, equals$3, left, ok, ok$1, ok$10, ok$2, ok$3, ok$4, ok$5, ok$6, ok$7, ok$8, ok$9, right; equals = false; couldBeIncorrect = false; - _tuple = $assertType(right.Data, ptrType$67, true); + _tuple = $assertType(right.Data, ptrType$70, true); b = _tuple[0]; ok = _tuple[1]; if (ok) { @@ -168706,7 +169949,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { return [equals, couldBeIncorrect]; } _ref = left.Data; - if ($assertType(_ref, ptrType$67, true)[1]) { + if ($assertType(_ref, ptrType$70, true)[1]) { a = _ref.$val; _tuple$2 = duplicateCaseEquals($clone(a.Value, js_ast.Expr), $clone(right, js_ast.Expr)); equals = _tuple$2[0]; @@ -168721,9 +169964,9 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { equals = _tmp; couldBeIncorrect = _tmp$1; return [equals, couldBeIncorrect]; - } else if ($assertType(_ref, ptrType$33, true)[1]) { + } else if ($assertType(_ref, ptrType$34, true)[1]) { a$2 = _ref.$val; - _tuple$4 = $assertType(right.Data, ptrType$33, true); + _tuple$4 = $assertType(right.Data, ptrType$34, true); ok$2 = _tuple$4[1]; _tmp$2 = ok$2; _tmp$3 = false; @@ -168760,9 +170003,9 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { equals = _tmp$8; couldBeIncorrect = _tmp$9; return [equals, couldBeIncorrect]; - } else if ($assertType(_ref, ptrType$53, true)[1]) { + } else if ($assertType(_ref, ptrType$56, true)[1]) { a$6 = _ref.$val; - _tuple$8 = $assertType(right.Data, ptrType$53, true); + _tuple$8 = $assertType(right.Data, ptrType$56, true); b$4 = _tuple$8[0]; ok$6 = _tuple$8[1]; if (ok$6) { @@ -168775,9 +170018,9 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { couldBeIncorrect = _tmp$11; return [equals, couldBeIncorrect]; } - } else if ($assertType(_ref, ptrType$32, true)[1]) { + } else if ($assertType(_ref, ptrType$33, true)[1]) { a$7 = _ref.$val; - _tuple$10 = $assertType(right.Data, ptrType$32, true); + _tuple$10 = $assertType(right.Data, ptrType$33, true); b$5 = _tuple$10[0]; ok$8 = _tuple$10[1]; _tmp$12 = ok$8 && $equal(a$7.Ref, b$5.Ref, ast.Ref); @@ -168785,9 +170028,9 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { equals = _tmp$12; couldBeIncorrect = _tmp$13; return [equals, couldBeIncorrect]; - } else if ($assertType(_ref, ptrType$25, true)[1]) { + } else if ($assertType(_ref, ptrType$26, true)[1]) { a$8 = _ref.$val; - _tuple$11 = $assertType(right.Data, ptrType$25, true); + _tuple$11 = $assertType(right.Data, ptrType$26, true); b$6 = _tuple$11[0]; ok$9 = _tuple$11[1]; if (ok$9 && (a$8.OptionalChain === b$6.OptionalChain) && a$8.Name === b$6.Name) { @@ -168799,9 +170042,9 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { couldBeIncorrect = _tmp$15; return [equals, couldBeIncorrect]; } - } else if ($assertType(_ref, ptrType$23, true)[1]) { + } else if ($assertType(_ref, ptrType$24, true)[1]) { a$9 = _ref.$val; - _tuple$13 = $assertType(right.Data, ptrType$23, true); + _tuple$13 = $assertType(right.Data, ptrType$24, true); b$7 = _tuple$13[0]; ok$10 = _tuple$13[1]; if (ok$10 && (a$9.OptionalChain === b$7.OptionalChain)) { @@ -168909,7 +170152,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { isJumpStatement = function isJumpStatement$1(data) { var _ref, data; _ref = data; - if ($assertType(_ref, ptrType$64, true)[1] || $assertType(_ref, ptrType$65, true)[1] || $assertType(_ref, ptrType$40, true)[1] || $assertType(_ref, ptrType$41, true)[1]) { + if ($assertType(_ref, ptrType$67, true)[1] || $assertType(_ref, ptrType$68, true)[1] || $assertType(_ref, ptrType$42, true)[1] || $assertType(_ref, ptrType$43, true)[1]) { return true; } return false; @@ -168917,27 +170160,27 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { jumpStmtsLookTheSame = function jumpStmtsLookTheSame$1(left, right) { var _ref, _tuple, _tuple$1, _tuple$2, _tuple$3, a, a$1, a$2, a$3, b, b$1, b$2, b$3, left, ok, ok$1, ok$2, ok$3, right; _ref = left; - if ($assertType(_ref, ptrType$64, true)[1]) { + if ($assertType(_ref, ptrType$67, true)[1]) { a = _ref.$val; - _tuple = $assertType(right, ptrType$64, true); + _tuple = $assertType(right, ptrType$67, true); b = _tuple[0]; ok = _tuple[1]; return ok && (a.Label === ptrType$12.nil) === (b.Label === ptrType$12.nil) && (a.Label === ptrType$12.nil || $equal(a.Label.Ref, b.Label.Ref, ast.Ref)); - } else if ($assertType(_ref, ptrType$65, true)[1]) { + } else if ($assertType(_ref, ptrType$68, true)[1]) { a$1 = _ref.$val; - _tuple$1 = $assertType(right, ptrType$65, true); + _tuple$1 = $assertType(right, ptrType$68, true); b$1 = _tuple$1[0]; ok$1 = _tuple$1[1]; return ok$1 && (a$1.Label === ptrType$12.nil) === (b$1.Label === ptrType$12.nil) && (a$1.Label === ptrType$12.nil || $equal(a$1.Label.Ref, b$1.Label.Ref, ast.Ref)); - } else if ($assertType(_ref, ptrType$40, true)[1]) { + } else if ($assertType(_ref, ptrType$42, true)[1]) { a$2 = _ref.$val; - _tuple$2 = $assertType(right, ptrType$40, true); + _tuple$2 = $assertType(right, ptrType$42, true); b$2 = _tuple$2[0]; ok$2 = _tuple$2[1]; return ok$2 && ($interfaceIsEqual(a$2.ValueOrNil.Data, $ifaceNil)) === ($interfaceIsEqual(b$2.ValueOrNil.Data, $ifaceNil)) && ($interfaceIsEqual(a$2.ValueOrNil.Data, $ifaceNil) || js_ast.ValuesLookTheSame(a$2.ValueOrNil.Data, b$2.ValueOrNil.Data)); - } else if ($assertType(_ref, ptrType$41, true)[1]) { + } else if ($assertType(_ref, ptrType$43, true)[1]) { a$3 = _ref.$val; - _tuple$3 = $assertType(right, ptrType$41, true); + _tuple$3 = $assertType(right, ptrType$43, true); b$3 = _tuple$3[0]; ok$3 = _tuple$3[1]; return ok$3 && js_ast.ValuesLookTheSame(a$3.Value.Data, b$3.Value.Data); @@ -169105,7 +170348,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { var kind, name, p, ref; p = this; ref = new ast.Ref.ptr(p.source.Index, ((p.symbols.$length >>> 0))); - p.symbols = $append(p.symbols, new ast.Symbol.ptr(ptrType$68.nil, name, $clone(ast.InvalidRef, ast.Ref), 0, new ast.Index32.ptr(0), new ast.Index32.ptr(0), 0, kind, 0)); + p.symbols = $append(p.symbols, new ast.Symbol.ptr(ptrType$71.nil, name, $clone(ast.InvalidRef, ast.Ref), 0, new ast.Index32.ptr(0), new ast.Index32.ptr(0), 0, kind, 0)); if (p.options.optionsThatSupportStructuralEquality.ts.Parse) { p.tsUseCounts = $append(p.tsUseCounts, 0); } @@ -169117,12 +170360,12 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { if ($equal(old, new$1, ast.Ref)) { return new$1; } - oldSymbol = (x = p.symbols, x$1 = old.InnerIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + oldSymbol = (x = p.symbols, x$1 = old.InnerIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + x$1, ptrType$23))); if (!($equal(oldSymbol.Link, ast.InvalidRef, ast.Ref))) { ast.Ref.copy(oldSymbol.Link, p.mergeSymbols($clone(oldSymbol.Link, ast.Ref), $clone(new$1, ast.Ref))); return oldSymbol.Link; } - newSymbol$1 = (x$2 = p.symbols, x$3 = new$1.InnerIndex, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])); + newSymbol$1 = (x$2 = p.symbols, x$3 = new$1.InnerIndex, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$2.$array, x$2.$offset + x$3, ptrType$23))); if (!($equal(newSymbol$1.Link, ast.InvalidRef, ast.Ref))) { ast.Ref.copy(newSymbol$1.Link, p.mergeSymbols($clone(old, ast.Ref), $clone(newSymbol$1.Link, ast.Ref))); return newSymbol$1.Link; @@ -169201,7 +170444,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ if (ok) { $s = 2; continue; } /* */ $s = 3; continue; /* if (ok) { */ case 2: - symbol = (x = p.symbols, x$1 = existing.Ref.InnerIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + symbol = (x = p.symbols, x$1 = existing.Ref.InnerIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + x$1, ptrType$23))); _1 = p.canMergeSymbols(p.currentScope, symbol.Kind, kind); /* */ if (_1 === (0)) { $s = 5; continue; } /* */ if (_1 === (3)) { $s = 6; continue; } @@ -169274,7 +170517,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* while (true) { */ case 3: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } replaced = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), js_ast.ScopeMember); - symbol = (x = p.symbols, x$1 = replaced.Ref.InnerIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + symbol = (x = p.symbols, x$1 = replaced.Ref.InnerIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + x$1, ptrType$23))); /* */ if (new ast.SymbolKind(symbol.Kind).IsFunction()) { $s = 5; continue; } /* */ $s = 6; continue; /* if (new ast.SymbolKind(symbol.Kind).IsFunction()) { */ case 5: @@ -169344,7 +170587,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* while (true) { */ case 22: /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 23; continue; } member$2 = $clone(((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]), js_ast.ScopeMember); - symbol$1 = (x$4 = p.symbols, x$5 = member$2.Ref.InnerIndex, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])); + symbol$1 = (x$4 = p.symbols, x$5 = member$2.Ref.InnerIndex, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$4.$array, x$4.$offset + x$5, ptrType$23))); /* */ if ((scope.Parent.Kind === 5) && !((symbol$1.Kind === 1))) { $s = 24; continue; } /* */ $s = 25; continue; /* if ((scope.Parent.Kind === 5) && !((symbol$1.Kind === 1))) { */ case 24: @@ -169376,7 +170619,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { p.hoistedRefForSloppyModeBlockFn = new $global.Map(); } _key$1 = $clone(member$2.Ref, ast.Ref); (p.hoistedRefForSloppyModeBlockFn || $throwRuntimeError("assignment to entry in nil map")).set(ast.Ref.keyFor(_key$1), { k: _key$1, v: $clone(hoistedRef, ast.Ref) }); - symbol$1 = (x$6 = p.symbols, x$7 = hoistedRef.InnerIndex, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])); + symbol$1 = (x$6 = p.symbols, x$7 = hoistedRef.InnerIndex, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$6.$array, x$6.$offset + x$7, ptrType$23))); ast.Ref.copy(member$2.Ref, hoistedRef); isSloppyModeBlockLevelFnStmt = true; } @@ -169391,7 +170634,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ if (ok$2) { $s = 31; continue; } /* */ $s = 32; continue; /* if (ok$2) { */ case 31: - existingSymbol = (x$8 = p.symbols, x$9 = existingMember$1.Ref.InnerIndex, ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + x$9])); + existingSymbol = (x$8 = p.symbols, x$9 = existingMember$1.Ref.InnerIndex, ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$8.$array, x$8.$offset + x$9, ptrType$23))); if ((existingSymbol.Kind === 0) || (existingSymbol.Kind === 1) || (new ast.SymbolKind(existingSymbol.Kind).IsFunction() && ((s.Kind === 6) || (s.Kind === 8)))) { ast.Ref.copy(symbol$1.Link, existingMember$1.Ref); _key$2 = symbol$1.OriginalName; (s.Members || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$2), { k: _key$2, v: $clone(existingMember$1, js_ast.ScopeMember) }); @@ -169497,14 +170740,14 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { p = this; while (true) { _ref = expr.Data; - if ($assertType(_ref, ptrType$32, true)[1]) { + if ($assertType(_ref, ptrType$33, true)[1]) { e = _ref.$val; p.ignoreUsage($clone(e.Ref, ast.Ref)); - } else if ($assertType(_ref, ptrType$25, true)[1]) { + } else if ($assertType(_ref, ptrType$26, true)[1]) { e$1 = _ref.$val; js_ast.Expr.copy(expr, e$1.Target); continue; - } else if ($assertType(_ref, ptrType$23, true)[1]) { + } else if ($assertType(_ref, ptrType$24, true)[1]) { e$2 = _ref.$val; _tuple = $assertType(e$2.Index.Data, ptrType$16, true); ok = _tuple[1]; @@ -169726,7 +170969,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { defineValueCanBeUsedInAssignTarget = function defineValueCanBeUsedInAssignTarget$1(data) { var _ref, data; _ref = data; - if ($assertType(_ref, ptrType$32, true)[1] || $assertType(_ref, ptrType$25, true)[1]) { + if ($assertType(_ref, ptrType$33, true)[1] || $assertType(_ref, ptrType$26, true)[1]) { return true; } return false; @@ -169738,14 +170981,14 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { if (!($interfaceIsEqual(expr.Data, $ifaceNil))) { parts = sliceType.nil; while (true) { - _tuple = $assertType(expr.Data, ptrType$32, true); + _tuple = $assertType(expr.Data, ptrType$33, true); id = _tuple[0]; ok = _tuple[1]; if (ok) { parts = $append(parts, p.loadNameFromRef($clone(id.Ref, ast.Ref))); break; } else { - _tuple$1 = $assertType(expr.Data, ptrType$25, true); + _tuple$1 = $assertType(expr.Data, ptrType$26, true); dot = _tuple$1[0]; ok$1 = _tuple$1[1]; if (ok$1) { @@ -169753,7 +170996,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { parts = $append(parts, "."); js_ast.Expr.copy(expr, dot.Target); } else { - _tuple$2 = $assertType(expr.Data, ptrType$23, true); + _tuple$2 = $assertType(expr.Data, ptrType$24, true); index = _tuple$2[0]; ok$2 = _tuple$2[1]; if (ok$2) { @@ -169829,14 +171072,14 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { p = this; _ref = key.Data; /* */ if ($assertType(_ref, ptrType$16, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$24, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 2; continue; } /* */ $s = 3; continue; /* if ($assertType(_ref, ptrType$16, true)[1]) { */ case 1: k = _ref.$val; _r = fmt.Sprintf("%q", new sliceType$1([new $String(helpers.UTF16ToString(k.Value))])); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $24r = _r; $s = 5; case 5: return $24r; - /* } else if ($assertType(_ref, ptrType$24, true)[1]) { */ case 2: + /* } else if ($assertType(_ref, ptrType$25, true)[1]) { */ case 2: k$1 = _ref.$val; _r$1 = fmt.Sprintf("%q", new sliceType$1([new $String(p.loadNameFromRef($clone(k$1.Ref, ast.Ref)))])); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $24r$1 = _r$1; @@ -169856,13 +171099,13 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } }; $ptrType(parser).prototype.notesForAssertTypeJSON = function notesForAssertTypeJSON(record, alias) { - var {$24r, _r, alias, p, record, $s, $r, $c} = $restore(this, {record, alias}); + var {$24r, _r, alias, p, record, x, $s, $r, $c} = $restore(this, {record, alias}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; _r = fmt.Sprintf("You can either keep the import assertion and only use the \"default\" import, or you can remove the import assertion and use the %q import.", new sliceType$1([new $String(alias)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = new sliceType$4([$clone(p.tracker.MsgData($clone(js_lexer.RangeOfImportAssertOrWith($clone(p.source, logger.Source), $clone(ast.FindAssertOrWithEntry(record.AssertOrWith.Entries, "type"), ast.AssertOrWithEntry), 2), logger.Range), "The JSON import assertion is here:"), logger.MsgData), $clone(new logger.MsgData.ptr($ifaceNil, ptrType$2.nil, _r, false), logger.MsgData)]); + $24r = new sliceType$4([$clone(p.tracker.MsgData($clone(js_lexer.RangeOfImportAssertOrWith($clone(p.source, logger.Source), $clone((x = ast.FindAssertOrWithEntry(record.AssertOrWith.Entries, "type"), (x === ptrType$72.nil && $throwNilPointerError(), x)), ast.AssertOrWithEntry), 2), logger.Range), "The JSON import assertion is here:"), logger.MsgData), $clone(new logger.MsgData.ptr($ifaceNil, ptrType$2.nil, _r, false), logger.MsgData)]); $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: notesForAssertTypeJSON, $c: true, $r, $24r, _r, alias, p, record, $s};return $f; + /* */ } return; } var $f = {$blk: notesForAssertTypeJSON, $c: true, $r, $24r, _r, alias, p, record, x, $s};return $f; }; $ptrType(parser).prototype.parseStringLiteral = function parseStringLiteral() { var {_r, _r$1, hasPropertyKeyComment, legacyOctalLoc, loc, name, p, text, value, value$1, $s, $r, $c} = $restore(this, {}); @@ -169976,7 +171219,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ if (p.options.optionsThatSupportStructuralEquality.ts.Parse && (p.lexer.Token === 21) && wasIdentifier && opts.isClass) { $s = 25; continue; } /* */ $s = 26; continue; /* if (p.options.optionsThatSupportStructuralEquality.ts.Parse && (p.lexer.Token === 21) && wasIdentifier && opts.isClass) { */ case 25: - _tuple = $assertType(expr.Data, ptrType$32, true); + _tuple = $assertType(expr.Data, ptrType$33, true); ok = _tuple[1]; /* */ if (ok) { $s = 27; continue; } /* */ $s = 28; continue; @@ -170055,7 +171298,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* if (!opts.isAsync) { */ case 64: _r$5 = p.markSyntaxFeature(new compat.JSFeature(256, 0), $clone(nameRange, logger.Range)); /* */ $s = 66; case 66: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _r$5; - _r$6 = p.parseProperty($clone(startLoc, logger.Loc), 2, $clone(opts, propertyOpts), ptrType$69.nil); /* */ $s = 67; case 67: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$6 = p.parseProperty($clone(startLoc, logger.Loc), 2, $clone(opts, propertyOpts), ptrType$73.nil); /* */ $s = 67; case 67: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } $24r$1 = _r$6; $s = 68; case 68: return $24r$1; /* } */ case 65: @@ -170066,7 +171309,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* if (!opts.isAsync) { */ case 69: _r$7 = p.markSyntaxFeature(new compat.JSFeature(256, 0), $clone(nameRange, logger.Range)); /* */ $s = 71; case 71: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _r$7; - _r$8 = p.parseProperty($clone(startLoc, logger.Loc), 3, $clone(opts, propertyOpts), ptrType$69.nil); /* */ $s = 72; case 72: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$8 = p.parseProperty($clone(startLoc, logger.Loc), 3, $clone(opts, propertyOpts), ptrType$73.nil); /* */ $s = 72; case 72: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } $24r$2 = _r$8; $s = 73; case 73: return $24r$2; /* } */ case 70: @@ -170075,7 +171318,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ if (!p.lexer.HasNewlineBefore && !opts.isAsync && opts.isClass) { $s = 74; continue; } /* */ $s = 75; continue; /* if (!p.lexer.HasNewlineBefore && !opts.isAsync && opts.isClass) { */ case 74: - _r$9 = p.parseProperty($clone(startLoc, logger.Loc), 4, $clone(opts, propertyOpts), ptrType$69.nil); /* */ $s = 76; case 76: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$9 = p.parseProperty($clone(startLoc, logger.Loc), 4, $clone(opts, propertyOpts), ptrType$73.nil); /* */ $s = 76; case 76: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } $24r$3 = _r$9; $s = 77; case 77: return $24r$3; /* } */ case 75: @@ -170086,7 +171329,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* if (!p.lexer.HasNewlineBefore && !opts.isAsync) { */ case 78: opts.isAsync = true; logger.Range.copy(opts.asyncRange, nameRange); - _r$10 = p.parseProperty($clone(startLoc, logger.Loc), 1, $clone(opts, propertyOpts), ptrType$69.nil); /* */ $s = 80; case 80: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$10 = p.parseProperty($clone(startLoc, logger.Loc), 1, $clone(opts, propertyOpts), ptrType$73.nil); /* */ $s = 80; case 80: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } $24r$4 = _r$10; $s = 81; case 81: return $24r$4; /* } */ case 79: @@ -170096,7 +171339,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ $s = 83; continue; /* if (!opts.isStatic && !opts.isAsync && opts.isClass) { */ case 82: opts.isStatic = true; - _r$11 = p.parseProperty($clone(startLoc, logger.Loc), kind, $clone(opts, propertyOpts), ptrType$69.nil); /* */ $s = 84; case 84: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _r$11 = p.parseProperty($clone(startLoc, logger.Loc), kind, $clone(opts, propertyOpts), ptrType$73.nil); /* */ $s = 84; case 84: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } $24r$5 = _r$11; $s = 85; case 85: return $24r$5; /* } */ case 83: @@ -170107,7 +171350,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* if (!p.lexer.HasNewlineBefore && opts.isClass && p.options.optionsThatSupportStructuralEquality.ts.Parse && (opts.tsDeclareRange.Len === 0)) { */ case 86: logger.Range.copy(opts.tsDeclareRange, nameRange); scopeIndex = p.scopesInOrder.$length; - _r$12 = p.parseProperty($clone(startLoc, logger.Loc), kind, $clone(opts, propertyOpts), ptrType$69.nil); /* */ $s = 88; case 88: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _r$12 = p.parseProperty($clone(startLoc, logger.Loc), kind, $clone(opts, propertyOpts), ptrType$73.nil); /* */ $s = 88; case 88: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } _tuple$1 = _r$12; prop = $clone(_tuple$1[0], js_ast.Property); ok$1 = _tuple$1[1]; @@ -170125,7 +171368,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* if (!p.lexer.HasNewlineBefore && opts.isClass && p.options.optionsThatSupportStructuralEquality.ts.Parse && !opts.isTSAbstract) { */ case 89: opts.isTSAbstract = true; scopeIndex$1 = p.scopesInOrder.$length; - _r$13 = p.parseProperty($clone(startLoc, logger.Loc), kind, $clone(opts, propertyOpts), ptrType$69.nil); /* */ $s = 91; case 91: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _r$13 = p.parseProperty($clone(startLoc, logger.Loc), kind, $clone(opts, propertyOpts), ptrType$73.nil); /* */ $s = 91; case 91: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } _tuple$2 = _r$13; prop$1 = $clone(_tuple$2[0], js_ast.Property); ok$2 = _tuple$2[1]; @@ -170141,7 +171384,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ if (opts.isClass && p.options.optionsThatSupportStructuralEquality.ts.Parse) { $s = 92; continue; } /* */ $s = 93; continue; /* if (opts.isClass && p.options.optionsThatSupportStructuralEquality.ts.Parse) { */ case 92: - _r$14 = p.parseProperty($clone(startLoc, logger.Loc), kind, $clone(opts, propertyOpts), ptrType$69.nil); /* */ $s = 94; case 94: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _r$14 = p.parseProperty($clone(startLoc, logger.Loc), kind, $clone(opts, propertyOpts), ptrType$73.nil); /* */ $s = 94; case 94: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } $24r$6 = _r$14; $s = 95; case 95: return $24r$6; /* } */ case 93: @@ -170188,9 +171431,9 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { ref = $clone(p.storeNameInRef($clone(name$1, js_lexer.MaybeSubstring)), ast.Ref); value = new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(ref, ast.Ref), false, false, false), $clone(key.Loc, logger.Loc)); initializerOrNil = new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)); - /* */ if (!(errors === ptrType$69.nil) && (p.lexer.Token === 59)) { $s = 110; continue; } + /* */ if (!(errors === ptrType$73.nil) && (p.lexer.Token === 59)) { $s = 110; continue; } /* */ $s = 111; continue; - /* if (!(errors === ptrType$69.nil) && (p.lexer.Token === 59)) { */ case 110: + /* if (!(errors === ptrType$73.nil) && (p.lexer.Token === 59)) { */ case 110: logger.Range.copy(errors.invalidExprDefaultValue, p.lexer.Range()); $r = p.lexer.Next(); /* */ $s = 112; case 112: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _r$19 = p.parseExpr(1); /* */ $s = 113; case 113: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } @@ -170265,7 +171508,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { p.fnOrArrowDataParse.isThisDisallowed = oldIsThisDisallowed; p.fnOrArrowDataParse.allowSuperProperty = oldAllowSuperProperty; /* } */ case 139: - _tuple$4 = $assertType(key.Data, ptrType$24, true); + _tuple$4 = $assertType(key.Data, ptrType$25, true); private$1 = _tuple$4[0]; ok$4 = _tuple$4[1]; /* */ if (ok$4) { $s = 142; continue; } @@ -170453,7 +171696,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { kind = 1; /* } */ case 196: case 192: - _tuple$7 = $assertType(key.Data, ptrType$24, true); + _tuple$7 = $assertType(key.Data, ptrType$25, true); private$2 = _tuple$7[0]; ok$6 = _tuple$7[1]; /* */ if (ok$6) { $s = 207; continue; } @@ -170620,12 +171863,12 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { var {_entry, _key, _r, _r$1, _v, _v$1, name, p, reservedProps, $s, $r, $c} = $restore(this, {name}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; - if (p.options.mangleProps === ptrType$61.nil) { + if (p.options.mangleProps === ptrType$64.nil) { $s = -1; return false; } _r = p.options.mangleProps.MatchString(name); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } if (!(_r && !(_entry = $mapIndex(permanentReservedProps,$String.keyFor(name)), _entry !== undefined ? _entry.v : false))) { _v = false; $s = 3; continue s; } - if (p.options.reserveProps === ptrType$61.nil) { _v$1 = true; $s = 5; continue s; } + if (p.options.reserveProps === ptrType$64.nil) { _v$1 = true; $s = 5; continue s; } _r$1 = p.options.reserveProps.MatchString(name); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _v$1 = !_r$1; case 5: _v = _v$1; case 3: @@ -170732,7 +171975,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { expr = $clone(_r$2, js_ast.Expr); fnOrArrowDataParse.copy(p.fnOrArrowDataParse, oldFnOrArrowData); $s = -1; return new js_ast.EArrow.ptr(args, $clone(new js_ast.FnBody.ptr($clone(new js_ast.SBlock.ptr(new sliceType$8([$clone(new js_ast.Stmt.ptr(new js_ast.SReturn.ptr($clone(expr, js_ast.Expr)), $clone(expr.Loc, logger.Loc)), js_ast.Stmt)]), new logger.Loc.ptr(0)), js_ast.SBlock), $clone(arrowLoc, logger.Loc)), js_ast.FnBody), false, false, true, false); - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$54.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseArrowBody, $c: true, $r, _i, _r, _r$1, _r$2, _ref, arg, args, arrowLoc, body, data, expr, oldFnOrArrowData, p, x, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$57.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseArrowBody, $c: true, $r, _i, _r, _r$1, _r$2, _ref, arg, args, arrowLoc, body, data, expr, oldFnOrArrowData, p, x, $s, $deferred};return $f; } } }; $ptrType(parser).prototype.checkForArrowAfterTheCurrentToken = function checkForArrowAfterTheCurrentToken() { var {isArrowAfterThisToken, oldLexer, p, $s, $deferred, $r, $c} = $restore(this, {}); @@ -171018,7 +172261,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 29; continue; } item$1 = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), js_ast.Expr); isSpread$1 = false; - _tuple = $assertType(item$1.Data, ptrType$26, true); + _tuple = $assertType(item$1.Data, ptrType$27, true); spread = _tuple[0]; ok = _tuple[1]; if (ok) { @@ -171123,7 +172366,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; initializerOrNil = new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)); - _tuple = $assertType(expr.Data, ptrType$45, true); + _tuple = $assertType(expr.Data, ptrType$47, true); assign = _tuple[0]; ok = _tuple[1]; if (ok && (assign.Op === 37)) { @@ -171155,15 +172398,15 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; _ref = expr.Data; - /* */ if ($assertType(_ref, ptrType$70, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$32, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$74, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$33, true)[1]) { $s = 2; continue; } /* */ if ($assertType(_ref, ptrType$17, true)[1]) { $s = 3; continue; } /* */ if ($assertType(_ref, ptrType$15, true)[1]) { $s = 4; continue; } /* */ $s = 5; continue; - /* if ($assertType(_ref, ptrType$70, true)[1]) { */ case 1: + /* if ($assertType(_ref, ptrType$74, true)[1]) { */ case 1: e = _ref.$val; $s = -1; return [new js_ast.Binding.ptr(js_ast.BMissingShared, $clone(expr.Loc, logger.Loc)), invalidLog$1]; - /* } else if ($assertType(_ref, ptrType$32, true)[1]) { */ case 2: + /* } else if ($assertType(_ref, ptrType$33, true)[1]) { */ case 2: e$1 = _ref.$val; $s = -1; return [new js_ast.Binding.ptr(new js_ast.BIdentifier.ptr($clone(e$1.Ref, ast.Ref)), $clone(expr.Loc, logger.Loc)), invalidLog$1]; /* } else if ($assertType(_ref, ptrType$17, true)[1]) { */ case 3: @@ -171179,7 +172422,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* while (true) { */ case 7: /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 8; continue; } item = $clone(((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]), js_ast.Expr); - _tuple = $assertType(item.Data, ptrType$26, true); + _tuple = $assertType(item.Data, ptrType$27, true); i = _tuple[0]; ok = _tuple[1]; /* */ if (ok) { $s = 9; continue; } @@ -171187,7 +172430,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* if (ok) { */ case 9: isSpread = true; js_ast.Expr.copy(item, i.Value); - _tuple$1 = $assertType(item.Data, ptrType$32, true); + _tuple$1 = $assertType(item.Data, ptrType$33, true); ok$1 = _tuple$1[1]; /* */ if (!ok$1) { $s = 11; continue; } /* */ $s = 12; continue; @@ -171321,7 +172564,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $r = $clone(p.log, logger.Log).AddError(p.tracker, $clone(superRange, logger.Range), "Unexpected \"super\""); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return new js_ast.Expr.ptr(js_ast.ESuperShared, $clone(loc, logger.Loc)); /* } else if (_1 === (42)) { */ case 3: - if (!(errors === ptrType$69.nil)) { + if (!(errors === ptrType$73.nil)) { errors.invalidParens = $append(errors.invalidParens, p.lexer.Range()); } $r = p.lexer.Next(); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } @@ -171550,7 +172793,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* if (p.lexer.Token === 13) { */ case 123: $r = p.lexer.Unexpected(); /* */ $s = 125; case 125: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 124: - _tuple$1 = $assertType(value$7.Data, ptrType$32, true); + _tuple$1 = $assertType(value$7.Data, ptrType$33, true); valueIsIdentifier = _tuple$1[1]; $s = -1; return new js_ast.Expr.ptr(new js_ast.EUnary.ptr($clone(value$7, js_ast.Expr), 5, valueIsIdentifier, false), $clone(loc, logger.Loc)); /* } else if (_1 === (79)) { */ case 17: @@ -171562,13 +172805,13 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* if (p.lexer.Token === 13) { */ case 128: $r = p.lexer.Unexpected(); /* */ $s = 130; case 130: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 129: - _tuple$2 = $assertType(value$8.Data, ptrType$23, true); + _tuple$2 = $assertType(value$8.Data, ptrType$24, true); index = _tuple$2[0]; ok = _tuple$2[1]; /* */ if (ok) { $s = 131; continue; } /* */ $s = 132; continue; /* if (ok) { */ case 131: - _tuple$3 = $assertType(index.Index.Data, ptrType$24, true); + _tuple$3 = $assertType(index.Index.Data, ptrType$25, true); private$1 = _tuple$3[0]; ok$1 = _tuple$3[1]; /* */ if (ok$1) { $s = 133; continue; } @@ -171583,7 +172826,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $r = $clone(p.log, logger.Log).AddError(_arg, _arg$1, _arg$2); /* */ $s = 136; case 136: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 134: /* } */ case 132: - _tuple$4 = $assertType(value$8.Data, ptrType$32, true); + _tuple$4 = $assertType(value$8.Data, ptrType$33, true); valueIsIdentifier$1 = _tuple$4[1]; $s = -1; return new js_ast.Expr.ptr(new js_ast.EUnary.ptr($clone(value$8, js_ast.Expr), 6, false, valueIsIdentifier$1 || js_ast.IsPropertyAccess($clone(value$8, js_ast.Expr))), $clone(loc, logger.Loc)); /* } else if (_1 === (44)) { */ case 18: @@ -171700,9 +172943,9 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { items = $append(items, new js_ast.Expr.ptr(js_ast.EMissingShared, $clone(p.lexer.Loc(), logger.Loc))); $s = 190; continue; /* } else if (_7 === (24)) { */ case 188: - /* */ if (!(errors === ptrType$69.nil)) { $s = 191; continue; } + /* */ if (!(errors === ptrType$73.nil)) { $s = 191; continue; } /* */ $s = 192; continue; - /* if (!(errors === ptrType$69.nil)) { */ case 191: + /* if (!(errors === ptrType$73.nil)) { */ case 191: logger.Range.copy(errors.arraySpreadFeature, p.lexer.Range()); $s = 193; continue; /* } else { */ case 192: @@ -171743,11 +172986,11 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $r = p.lexer.Expect(19); /* */ $s = 199; case 199: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } p.allowIn = oldAllowIn$1; /* */ if (p.willNeedBindingPattern()) { $s = 200; continue; } - /* */ if (errors === ptrType$69.nil) { $s = 201; continue; } + /* */ if (errors === ptrType$73.nil) { $s = 201; continue; } /* */ $s = 202; continue; /* if (p.willNeedBindingPattern()) { */ case 200: $s = 203; continue; - /* } else if (errors === ptrType$69.nil) { */ case 201: + /* } else if (errors === ptrType$73.nil) { */ case 201: $r = p.logExprErrors(selfErrors[0]); /* */ $s = 204; case 204: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 203; continue; /* } else { */ case 202: @@ -171804,11 +173047,11 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $r = p.lexer.Expect(18); /* */ $s = 215; case 215: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } p.allowIn = oldAllowIn$2; /* */ if (p.willNeedBindingPattern()) { $s = 216; continue; } - /* */ if (errors === ptrType$69.nil) { $s = 217; continue; } + /* */ if (errors === ptrType$73.nil) { $s = 217; continue; } /* */ $s = 218; continue; /* if (p.willNeedBindingPattern()) { */ case 216: $s = 219; continue; - /* } else if (errors === ptrType$69.nil) { */ case 217: + /* } else if (errors === ptrType$73.nil) { */ case 217: $r = p.logExprErrors(selfErrors$1[0]); /* */ $s = 220; case 220: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 219; continue; /* } else { */ case 218: @@ -172007,7 +173250,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { var {$24r, _r, level, p, $s, $r, $c} = $restore(this, {level}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; - _r = p.parseExprCommon(level, ptrType$69.nil, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = p.parseExprCommon(level, ptrType$73.nil, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $24r = _r; $s = 2; case 2: return $24r; /* */ } return; } var $f = {$blk: parseExpr$1, $c: true, $r, $24r, _r, level, p, $s};return $f; @@ -172016,7 +173259,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { var {$24r, _r, flags, level, p, $s, $r, $c} = $restore(this, {level, flags}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; - _r = p.parseExprCommon(level, ptrType$69.nil, flags); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = p.parseExprCommon(level, ptrType$73.nil, flags); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $24r = _r; $s = 2; case 2: return $24r; /* */ } return; } var $f = {$blk: parseExprWithFlags, $c: true, $r, $24r, _r, flags, level, p, $s};return $f; @@ -172033,10 +173276,10 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* if (!(((((lexerCommentFlags & 5) >>> 0)) === 0)) && !p.options.optionsThatSupportStructuralEquality.ignoreDCEAnnotations) { */ case 2: if (!(((((lexerCommentFlags & 4) >>> 0)) === 0))) { _ref = expr.Data; - if ($assertType(_ref, ptrType$54, true)[1]) { + if ($assertType(_ref, ptrType$57, true)[1]) { e = _ref.$val; e.HasNoSideEffectsComment = true; - } else if ($assertType(_ref, ptrType$28, true)[1]) { + } else if ($assertType(_ref, ptrType$29, true)[1]) { e$1 = _ref.$val; e$1.Fn.HasNoSideEffectsComment = true; } @@ -172047,10 +173290,10 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { _r$1 = p.parseSuffix($clone(expr, js_ast.Expr), 20, errors, flags); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } js_ast.Expr.copy(expr, _r$1); _ref$1 = expr.Data; - if ($assertType(_ref$1, ptrType$39, true)[1]) { + if ($assertType(_ref$1, ptrType$41, true)[1]) { e$2 = _ref$1.$val; e$2.CanBeUnwrappedIfUnused = true; - } else if ($assertType(_ref$1, ptrType$71, true)[1]) { + } else if ($assertType(_ref$1, ptrType$75, true)[1]) { e$3 = _ref$1.$val; e$3.CanBeUnwrappedIfUnused = true; } @@ -172153,7 +173396,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ if ((p.lexer.Token === 68) && p.allowPrivateIdentifiers) { $s = 69; continue; } /* */ $s = 70; continue; /* if ((p.lexer.Token === 68) && p.allowPrivateIdentifiers) { */ case 69: - _tuple = $assertType(left.Data, ptrType$27, true); + _tuple = $assertType(left.Data, ptrType$28, true); ok = _tuple[1]; /* */ if (ok) { $s = 72; continue; } /* */ $s = 73; continue; @@ -172345,9 +173588,9 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ if (p.options.optionsThatSupportStructuralEquality.ts.Parse && $equal(left.Loc, p.latestArrowArgLoc, logger.Loc) && ((p.lexer.Token === 21) || (p.lexer.Token === 20) || (p.lexer.Token === 22))) { $s = 122; continue; } /* */ $s = 123; continue; /* if (p.options.optionsThatSupportStructuralEquality.ts.Parse && $equal(left.Loc, p.latestArrowArgLoc, logger.Loc) && ((p.lexer.Token === 21) || (p.lexer.Token === 20) || (p.lexer.Token === 22))) { */ case 122: - /* */ if (errors === ptrType$69.nil) { $s = 124; continue; } + /* */ if (errors === ptrType$73.nil) { $s = 124; continue; } /* */ $s = 125; continue; - /* if (errors === ptrType$69.nil) { */ case 124: + /* if (errors === ptrType$73.nil) { */ case 124: $r = p.lexer.Unexpected(); /* */ $s = 126; case 126: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 125: logger.Range.copy(errors.invalidExprAfterQuestion, p.lexer.Range()); @@ -172655,7 +173898,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ if (level < 6) { $s = 207; continue; } /* */ $s = 208; continue; /* if (level < 6) { */ case 207: - _r$46 = p.parseSuffix($clone(left, js_ast.Expr), 7, ptrType$69.nil, flags); /* */ $s = 209; case 209: if($c) { $c = false; _r$46 = _r$46.$blk(); } if (_r$46 && _r$46.$blk !== undefined) { break s; } + _r$46 = p.parseSuffix($clone(left, js_ast.Expr), 7, ptrType$73.nil, flags); /* */ $s = 209; case 209: if($c) { $c = false; _r$46 = _r$46.$blk(); } if (_r$46 && _r$46.$blk !== undefined) { break s; } js_ast.Expr.copy(left, _r$46); /* */ if (p.lexer.Token === 48) { $s = 210; continue; } /* */ $s = 211; continue; @@ -172687,7 +173930,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ if (level < 6) { $s = 220; continue; } /* */ $s = 221; continue; /* if (level < 6) { */ case 220: - _r$49 = p.parseSuffix($clone(left, js_ast.Expr), 7, ptrType$69.nil, flags); /* */ $s = 222; case 222: if($c) { $c = false; _r$49 = _r$49.$blk(); } if (_r$49 && _r$49.$blk !== undefined) { break s; } + _r$49 = p.parseSuffix($clone(left, js_ast.Expr), 7, ptrType$73.nil, flags); /* */ $s = 222; case 222: if($c) { $c = false; _r$49 = _r$49.$blk(); } if (_r$49 && _r$49.$blk !== undefined) { break s; } js_ast.Expr.copy(left, _r$49); /* */ if (p.lexer.Token === 48) { $s = 223; continue; } /* */ $s = 224; continue; @@ -172771,7 +174014,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { if (p.suppressWarningsAboutWeirdCode) { kind$3 = 4; } - _tuple$8 = $assertType(left.Data, ptrType$47, true); + _tuple$8 = $assertType(left.Data, ptrType$50, true); e = _tuple$8[0]; ok$2 = _tuple$8[1]; /* */ if (ok$2 && (e.Op === 3)) { $s = 243; continue; } @@ -172795,7 +174038,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { if (p.suppressWarningsAboutWeirdCode) { kind$4 = 4; } - _tuple$9 = $assertType(left.Data, ptrType$47, true); + _tuple$9 = $assertType(left.Data, ptrType$50, true); e$1 = _tuple$9[0]; ok$3 = _tuple$9[1]; /* */ if (ok$3 && (e$1.Op === 3)) { $s = 249; continue; } @@ -172860,7 +174103,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { if (opts.isForAwaitLoopInit) { flags = (flags | (4)) >>> 0; } - _r = p.parseExprCommon(0, ptrType$69.nil, flags); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = p.parseExprCommon(0, ptrType$73.nil, flags); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $24r = [_r, new js_ast.Stmt.ptr($ifaceNil, new logger.Loc.ptr(0)), sliceType$7.nil]; $s = 4; case 4: return $24r; /* } */ case 2: @@ -172948,15 +174191,15 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* if (p.lexer.Token === 13) { */ case 38: $r = p.lexer.Unexpected(); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 39: - _r$6 = p.parseSuffix($clone(value, js_ast.Expr), 18, ptrType$69.nil, 0); /* */ $s = 41; case 41: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$6 = p.parseSuffix($clone(value, js_ast.Expr), 18, ptrType$73.nil, 0); /* */ $s = 41; case 41: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } js_ast.Expr.copy(value, _r$6); expr = new js_ast.Expr.ptr(new js_ast.EAwait.ptr($clone(value, js_ast.Expr)), $clone(tokenRange.Loc, logger.Loc)); - _r$7 = p.parseSuffix($clone(expr, js_ast.Expr), 0, ptrType$69.nil, 0); /* */ $s = 42; case 42: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$7 = p.parseSuffix($clone(expr, js_ast.Expr), 0, ptrType$73.nil, 0); /* */ $s = 42; case 42: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } $24r$1 = [_r$7, new js_ast.Stmt.ptr($ifaceNil, new logger.Loc.ptr(0)), sliceType$7.nil]; $s = 43; case 43: return $24r$1; /* } */ case 9: expr$1 = new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(p.storeNameInRef($clone(name, js_lexer.MaybeSubstring)), ast.Ref), false, false, false), $clone(tokenRange.Loc, logger.Loc)); - _r$8 = p.parseSuffix($clone(expr$1, js_ast.Expr), 0, ptrType$69.nil, 0); /* */ $s = 44; case 44: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$8 = p.parseSuffix($clone(expr$1, js_ast.Expr), 0, ptrType$73.nil, 0); /* */ $s = 44; case 44: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } $24r$2 = [_r$8, new js_ast.Stmt.ptr($ifaceNil, new logger.Loc.ptr(0)), sliceType$7.nil]; $s = 45; case 45: return $24r$2; /* */ } return; } var $f = {$blk: parseExprOrLetOrUsingStmt, $c: true, $r, $24r, $24r$1, $24r$2, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, couldBeAwaitUsing, couldBeLet, couldBeUsing, decls, decls$1, decls$2, expr, expr$1, flags, isLet, name, opts, p, raw, tokenRange, usingLoc, usingRange, value, $s};return $f; @@ -173505,26 +174748,26 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { js_ast.Expr.copy(valueOrNil, _r$1); if (!p.options.optionsThatSupportStructuralEquality.ignoreDCEAnnotations && (kind === 22)) { _ref = valueOrNil.Data; - if ($assertType(_ref, ptrType$54, true)[1]) { + if ($assertType(_ref, ptrType$57, true)[1]) { e = _ref.$val; if (opts.hasNoSideEffectsComment) { e.HasNoSideEffectsComment = true; } if (e.HasNoSideEffectsComment && !opts.isTypeScriptDeclare) { - _tuple = $assertType(local.Data, ptrType$34, true); + _tuple = $assertType(local.Data, ptrType$35, true); b = _tuple[0]; ok = _tuple[1]; if (ok) { (x$2 = p.symbols, x$3 = b.Ref.InnerIndex, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])).Flags = ((x = p.symbols, x$1 = b.Ref.InnerIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Flags | (1024)) >>> 0; } } - } else if ($assertType(_ref, ptrType$28, true)[1]) { + } else if ($assertType(_ref, ptrType$29, true)[1]) { e$1 = _ref.$val; if (opts.hasNoSideEffectsComment) { e$1.Fn.HasNoSideEffectsComment = true; } if (e$1.Fn.HasNoSideEffectsComment && !opts.isTypeScriptDeclare) { - _tuple$1 = $assertType(local.Data, ptrType$34, true); + _tuple$1 = $assertType(local.Data, ptrType$35, true); b$1 = _tuple$1[0]; ok$1 = _tuple$1[1]; if (ok$1) { @@ -173561,7 +174804,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { if (kind === 3) { what = "declaration"; } - _tuple = $assertType(d.Binding.Data, ptrType$34, true); + _tuple = $assertType(d.Binding.Data, ptrType$35, true); id = _tuple[0]; ok = _tuple[1]; /* */ if (ok) { $s = 5; continue; } @@ -173604,7 +174847,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $s = 3; continue; /* } else if ((decls.$length === 1) && !($interfaceIsEqual((0 >= decls.$length ? ($throwRuntimeError("index out of range"), undefined) : decls.$array[decls.$offset + 0]).ValueOrNil.Data, $ifaceNil))) { */ case 2: if (isVar) { - _tuple = $assertType((0 >= decls.$length ? ($throwRuntimeError("index out of range"), undefined) : decls.$array[decls.$offset + 0]).Binding.Data, ptrType$34, true); + _tuple = $assertType((0 >= decls.$length ? ($throwRuntimeError("index out of range"), undefined) : decls.$array[decls.$offset + 0]).Binding.Data, ptrType$35, true); ok = _tuple[1]; if (ok) { $s = -1; return; @@ -174391,7 +175634,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { if (opts.decorators.$length > 0) { hasPropertyDecorator = true; } - _r$4 = p.parseProperty($clone(p.saveExprCommentsHere(), logger.Loc), 0, $clone(opts, propertyOpts), ptrType$69.nil); /* */ $s = 23; case 23: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4 = p.parseProperty($clone(p.saveExprCommentsHere(), logger.Loc), 0, $clone(opts, propertyOpts), ptrType$73.nil); /* */ $s = 23; case 23: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _tuple = _r$4; property = $clone(_tuple[0], js_ast.Property); ok = _tuple[1]; @@ -174472,7 +175715,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* } else { */ case 4: $r = p.lexer.Expect(5); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 5: - assertOrWith = ptrType$72.nil; + assertOrWith = ptrType$76.nil; /* */ if ((p.lexer.Token === 106) || (!p.lexer.HasNewlineBefore && p.lexer.IsContextualKeyword("assert"))) { $s = 8; continue; } /* */ $s = 9; continue; /* if ((p.lexer.Token === 106) || (!p.lexer.HasNewlineBefore && p.lexer.IsContextualKeyword("assert"))) { */ case 8: @@ -174865,7 +176108,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ } return; } var $f = {$blk: parseDecorator, $c: true, $r, _1, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _r$4, _tuple, args, closeParenLoc, isMultiLine, memberExpr, name, name$1, nameRange, note, notes, p, syntaxError, text, value, wrapRange, $s};return $f; }; $ptrType(parser).prototype.parseStmt = function parseStmt(opts) { - var {$24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$13, $24r$14, $24r$15, $24r$16, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _1, _2, _3, _4, _5, _6, _7, _8, _9, _entry, _i, _key, _key$1, _key$2, _key$3, _key$4, _r, _r$1, _r$10, _r$100, _r$101, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _r$5, _r$50, _r$51, _r$52, _r$53, _r$54, _r$55, _r$56, _r$57, _r$58, _r$59, _r$6, _r$60, _r$61, _r$62, _r$63, _r$64, _r$65, _r$66, _r$67, _r$68, _r$69, _r$7, _r$70, _r$71, _r$72, _r$73, _r$74, _r$75, _r$76, _r$77, _r$78, _r$79, _r$8, _r$80, _r$81, _r$82, _r$83, _r$84, _r$85, _r$86, _r$87, _r$88, _r$89, _r$9, _r$90, _r$91, _r$92, _r$93, _r$94, _r$95, _r$96, _r$97, _r$98, _r$99, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, alias, assertOrWith, assertOrWith$1, assertOrWith$2, asyncRange, asyncRange$1, awaitRange, badLetRange, bindingOrNil, blockLoc, blockLoc$1, body, body$1, body$2, body$3, body$4, body$5, body$6, body$7, bodyLoc, bodyLoc$1, bodyScopes, caseLoc, caseScopeMap, caseScopeStart, caseScopes, cases, catch$1, catchLoc, closeBraceLoc, closeBraceLoc$1, closeBraceLoc$2, closeBraceLoc$3, closeBraceLoc$4, createDefaultName, decls, decls$1, decls$2, decls$3, decorators, defaultLoc, defaultName, defaultName$1, defaultName$2, defaultName$3, defaultName$4, defaultName$5, didGenerateError, endLoc, expr, expr$1, expr$2, expr$3, expr$4, expr$5, finally$1, finallyLoc, flags, flags$1, flags$2, foundDefault, i, i$1, ident, importRecordIndex, importRecordIndex$1, initLoc, initOrNil, isIdentifier, isIdentifier$1, isSingleLine, isSingleLine$1, isSingleLine$2, isSingleLineBody, isSingleLineBody$1, isSingleLineBody$2, isSingleLineBody$3, isSingleLineBody$4, isSingleLineNo, isSingleLineStmt, isSingleLineYes, isVar, it, item, itemRefs, items, items$1, items$2, kind, loc, local, local$1, local$2, name, name$1, name$10, name$11, name$2, name$3, name$4, name$5, name$6, name$7, name$8, name$9, nameLoc, nameRange, nameSubstring, namespaceRef, namespaceRef$1, nestedOpts, noOrNil, ok, ok$1, ok$10, ok$2, ok$3, ok$4, ok$5, ok$6, ok$7, ok$8, ok$9, oldLexer, opts, p, pathLoc, pathLoc$1, pathRange, pathText, pathText$1, pathText$2, previousExportKeyword, previousImportStatementKeyword, ref, ref$1, ref$2, s, s$1, s$10, s$11, s$12, s$13, s$2, s$3, s$4, s$5, s$6, s$7, s$8, s$9, scopeIndex, scopeIndex$1, starLoc, starLoc$1, stmt, stmt$1, stmt$2, stmt$3, stmt$4, stmt$5, stmt$6, stmt$7, stmt$8, stmts, stmts$1, stmts$2, switchScopeStart, test, test$1, test$2, test$3, test$4, testOrNil, typeDeclarationData, typeRange, updateOrNil, value, value$1, value$2, value$3, value$4, wasOriginallyBareImport, x, x$1, x$2, x$3, x$4, x$5, x$6, yes, $s, $deferred, $r, $c} = $restore(this, {opts}); + var {$24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$13, $24r$14, $24r$15, $24r$16, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _1, _2, _3, _4, _5, _6, _7, _8, _9, _entry, _i, _key, _key$1, _key$2, _key$3, _key$4, _r, _r$1, _r$10, _r$100, _r$101, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _r$5, _r$50, _r$51, _r$52, _r$53, _r$54, _r$55, _r$56, _r$57, _r$58, _r$59, _r$6, _r$60, _r$61, _r$62, _r$63, _r$64, _r$65, _r$66, _r$67, _r$68, _r$69, _r$7, _r$70, _r$71, _r$72, _r$73, _r$74, _r$75, _r$76, _r$77, _r$78, _r$79, _r$8, _r$80, _r$81, _r$82, _r$83, _r$84, _r$85, _r$86, _r$87, _r$88, _r$89, _r$9, _r$90, _r$91, _r$92, _r$93, _r$94, _r$95, _r$96, _r$97, _r$98, _r$99, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, alias, assertOrWith, assertOrWith$1, assertOrWith$2, asyncRange, asyncRange$1, awaitRange, badLetRange, bindingOrNil, blockLoc, blockLoc$1, body, body$1, body$2, body$3, body$4, body$5, body$6, body$7, bodyLoc, bodyLoc$1, bodyScopes, caseLoc, caseScopeMap, caseScopeStart, caseScopes, cases, catch$1, catchLoc, closeBraceLoc, closeBraceLoc$1, closeBraceLoc$2, closeBraceLoc$3, closeBraceLoc$4, createDefaultName, decls, decls$1, decls$2, decls$3, decorators, defaultLoc, defaultName, defaultName$1, defaultName$2, defaultName$3, defaultName$4, defaultName$5, didGenerateError, endLoc, expr, expr$1, expr$2, expr$3, expr$4, expr$5, finally$1, finallyLoc, flags, flags$1, flags$2, foundDefault, i, i$1, ident, importRecordIndex, importRecordIndex$1, initLoc, initOrNil, isIdentifier, isIdentifier$1, isSingleLine, isSingleLine$1, isSingleLine$2, isSingleLineBody, isSingleLineBody$1, isSingleLineBody$2, isSingleLineBody$3, isSingleLineBody$4, isSingleLineNo, isSingleLineStmt, isSingleLineYes, isVar, it, item, itemRefs, items, items$1, items$2, kind, loc, local, local$1, local$2, name, name$1, name$10, name$11, name$2, name$3, name$4, name$5, name$6, name$7, name$8, name$9, nameLoc, nameRange, nameSubstring, namespaceRef, namespaceRef$1, nestedOpts, noOrNil, ok, ok$1, ok$10, ok$2, ok$3, ok$4, ok$5, ok$6, ok$7, ok$8, ok$9, oldLexer, opts, p, pathLoc, pathLoc$1, pathRange, pathText, pathText$1, pathText$2, previousExportKeyword, previousImportStatementKeyword, ref, ref$1, ref$2, s, s$1, s$10, s$11, s$12, s$13, s$2, s$3, s$4, s$5, s$6, s$7, s$8, s$9, scopeIndex, scopeIndex$1, starLoc, starLoc$1, stmt, stmt$1, stmt$2, stmt$3, stmt$4, stmt$5, stmt$6, stmt$7, stmt$8, stmts, stmts$1, stmts$2, switchScopeStart, test, test$1, test$2, test$3, test$4, testOrNil, typeDeclarationData, typeRange, updateOrNil, value, value$1, value$2, value$3, value$4, wasOriginallyBareImport, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, yes, $s, $deferred, $r, $c} = $restore(this, {opts}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); decls = [decls]; defaultLoc = [defaultLoc]; @@ -175055,7 +176298,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $r = p[0].lexer.Next(); /* */ $s = 100; case 100: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _r$7 = p[0].parseFnStmt($clone(loc, logger.Loc), $clone(new parseStmtOpts.ptr(ptrType$5.nil, 1, false, false, false, false, true, false, false, false, false, opts.hasNoSideEffectsComment, false), parseStmtOpts), true, $clone(asyncRange$1, logger.Range)); /* */ $s = 101; case 101: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } stmt$1 = $clone(_r$7, js_ast.Stmt); - _tuple = $assertType(stmt$1.Data, ptrType$73, true); + _tuple = $assertType(stmt$1.Data, ptrType$77, true); ok = _tuple[1]; if (ok) { $s = -1; return stmt$1; @@ -175078,7 +176321,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { _r$9 = createDefaultName(); /* */ $s = 106; case 106: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } defaultName$1 = $clone(_r$9, ast.LocRef); _r$10 = p[0].parseAsyncPrefixExpr($clone(asyncRange$1, logger.Range), 1, 0); /* */ $s = 107; case 107: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _r$11 = p[0].parseSuffix($clone(_r$10, js_ast.Expr), 1, ptrType$69.nil, 0); /* */ $s = 108; case 108: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _r$11 = p[0].parseSuffix($clone(_r$10, js_ast.Expr), 1, ptrType$73.nil, 0); /* */ $s = 108; case 108: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } expr = $clone(_r$11, js_ast.Expr); $r = p[0].lexer.ExpectOrInsertSemicolon(); /* */ $s = 109; case 109: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return new js_ast.Stmt.ptr(new js_ast.SExportDefault.ptr($clone(new js_ast.Stmt.ptr(new js_ast.SExpr.ptr($clone(expr, js_ast.Expr), false), $clone(loc, logger.Loc)), js_ast.Stmt), $clone(defaultName$1, ast.LocRef)), $clone(loc, logger.Loc)); @@ -175090,11 +176333,11 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { stmt$2 = $clone(_r$12, js_ast.Stmt); defaultName$2 = new ast.LocRef.ptr(new logger.Loc.ptr(0), new ast.Ref.ptr(0, 0)); _ref = stmt$2.Data; - /* */ if ($assertType(_ref, ptrType$73, true)[1] || $assertType(_ref, ptrType$13, true)[1]) { $s = 113; continue; } + /* */ if ($assertType(_ref, ptrType$77, true)[1] || $assertType(_ref, ptrType$13, true)[1]) { $s = 113; continue; } /* */ if ($assertType(_ref, ptrType$6, true)[1]) { $s = 114; continue; } /* */ if ($assertType(_ref, ptrType$7, true)[1]) { $s = 115; continue; } /* */ $s = 116; continue; - /* if ($assertType(_ref, ptrType$73, true)[1] || $assertType(_ref, ptrType$13, true)[1]) { */ case 113: + /* if ($assertType(_ref, ptrType$77, true)[1] || $assertType(_ref, ptrType$13, true)[1]) { */ case 113: s$1 = _ref; $s = -1; return stmt$2; /* } else if ($assertType(_ref, ptrType$6, true)[1]) { */ case 114: @@ -175134,7 +176377,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ if (p[0].options.optionsThatSupportStructuralEquality.ts.Parse && isIdentifier && name === "abstract" && !p[0].lexer.HasNewlineBefore) { $s = 127; continue; } /* */ $s = 128; continue; /* if (p[0].options.optionsThatSupportStructuralEquality.ts.Parse && isIdentifier && name === "abstract" && !p[0].lexer.HasNewlineBefore) { */ case 127: - _tuple$2 = $assertType(expr$1.Data, ptrType$32, true); + _tuple$2 = $assertType(expr$1.Data, ptrType$33, true); ok$2 = _tuple$2[1]; /* */ if (ok$2 && (p[0].lexer.Token === 74)) { $s = 129; continue; } /* */ $s = 130; continue; @@ -175169,10 +176412,10 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* } */ case 139: $r = p[0].lexer.Next(); /* */ $s = 141; case 141: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } namespaceRef = new ast.Ref.ptr(0, 0); - alias = ptrType$74.nil; + alias = ptrType$78.nil; pathRange = new logger.Range.ptr(new logger.Loc.ptr(0), 0); pathText = ""; - assertOrWith = ptrType$72.nil; + assertOrWith = ptrType$76.nil; flags = 0; /* */ if (p[0].lexer.IsContextualKeyword("as")) { $s = 142; continue; } /* */ $s = 143; continue; @@ -175288,13 +176531,13 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { if ($assertType(_ref$1, ptrType$7, true)[1]) { s$6 = _ref$1.$val; $s = -1; return stmt$4; - } else if ($assertType(_ref$1, ptrType$31, true)[1]) { + } else if ($assertType(_ref$1, ptrType$32, true)[1]) { s$7 = _ref$1.$val; _ref$2 = s$7.Value.Data; if ($assertType(_ref$2, ptrType$7, true)[1]) { $s = -1; return stmt$4; } - } else if ($assertType(_ref$1, ptrType$73, true)[1]) { + } else if ($assertType(_ref$1, ptrType$77, true)[1]) { s$8 = _ref$1.$val; if (s$8.WasDeclareClass) { p[0].discardScopesUpTo(scopeIndex); @@ -175506,8 +176749,8 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { p[0].popScope(); closeBraceLoc$1 = $clone(p[0].lexer.Loc(), logger.Loc); $r = p[0].lexer.Next(); /* */ $s = 268; case 268: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - catch$1 = ptrType$49.nil; - finally$1 = ptrType$50.nil; + catch$1 = ptrType$51.nil; + finally$1 = ptrType$52.nil; /* */ if (p[0].lexer.Token === 73) { $s = 269; continue; } /* */ $s = 270; continue; /* if (p[0].lexer.Token === 73) { */ case 269: @@ -175537,7 +176780,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* } */ case 279: $r = p[0].lexer.Expect(20); /* */ $s = 282; case 282: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } kind = 27; - _tuple$9 = $assertType(bindingOrNil.Data, ptrType$34, true); + _tuple$9 = $assertType(bindingOrNil.Data, ptrType$35, true); ok$5 = _tuple$9[1]; if (ok$5) { kind = 3; @@ -175556,9 +176799,9 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { catch$1 = new js_ast.Catch.ptr($clone(bindingOrNil, js_ast.Binding), $clone(new js_ast.SBlock.ptr(stmts, $clone(closeBraceLoc$2, logger.Loc)), js_ast.SBlock), $clone(catchLoc, logger.Loc), $clone(blockLoc$1, logger.Loc)); p[0].popScope(); /* } */ case 270: - /* */ if ((p[0].lexer.Token === 86) || catch$1 === ptrType$49.nil) { $s = 288; continue; } + /* */ if ((p[0].lexer.Token === 86) || catch$1 === ptrType$51.nil) { $s = 288; continue; } /* */ $s = 289; continue; - /* if ((p[0].lexer.Token === 86) || catch$1 === ptrType$49.nil) { */ case 288: + /* if ((p[0].lexer.Token === 86) || catch$1 === ptrType$51.nil) { */ case 288: finallyLoc = $clone(p[0].lexer.Loc(), logger.Loc); _r$55 = p[0].pushScopeForParsePass(0, $clone(finallyLoc, logger.Loc)); /* */ $s = 290; case 290: if($c) { $c = false; _r$55 = _r$55.$blk(); } if (_r$55 && _r$55.$blk !== undefined) { break s; } _r$55; @@ -175757,7 +177000,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { previousImportStatementKeyword = $clone(p[0].esmImportStatementKeyword, logger.Range); logger.Range.copy(p[0].esmImportStatementKeyword, p[0].lexer.Range()); $r = p[0].lexer.Next(); /* */ $s = 370; case 370: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - stmt[0] = new js_ast.SImport.ptr(ptrType$12.nil, ptrType$75.nil, ptrType$76.nil, new ast.Ref.ptr(0, 0), 0, false); + stmt[0] = new js_ast.SImport.ptr(ptrType$12.nil, ptrType$79.nil, ptrType$80.nil, new ast.Ref.ptr(0, 0), 0, false); wasOriginallyBareImport = false; /* */ if ((opts.isExport || (opts.isNamespaceScope && !opts.isTypeScriptDeclare)) && !((p[0].lexer.Token === 69))) { $s = 371; continue; } /* */ $s = 372; continue; @@ -175774,7 +177017,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* if ((_6 === (42)) || (_6 === (23))) { */ case 375: logger.Range.copy(p[0].esmImportStatementKeyword, previousImportStatementKeyword); _r$71 = p[0].parseImportExpr($clone(loc, logger.Loc), 0); /* */ $s = 382; case 382: if($c) { $c = false; _r$71 = _r$71.$blk(); } if (_r$71 && _r$71.$blk !== undefined) { break s; } - _r$72 = p[0].parseSuffix($clone(_r$71, js_ast.Expr), 0, ptrType$69.nil, 0); /* */ $s = 383; case 383: if($c) { $c = false; _r$72 = _r$72.$blk(); } if (_r$72 && _r$72.$blk !== undefined) { break s; } + _r$72 = p[0].parseSuffix($clone(_r$71, js_ast.Expr), 0, ptrType$73.nil, 0); /* */ $s = 383; case 383: if($c) { $c = false; _r$72 = _r$72.$blk(); } if (_r$72 && _r$72.$blk !== undefined) { break s; } expr$3 = $clone(_r$72, js_ast.Expr); $r = p[0].lexer.ExpectOrInsertSemicolon(); /* */ $s = 384; case 384: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return new js_ast.Stmt.ptr(new js_ast.SExpr.ptr($clone(expr$3, js_ast.Expr), false), $clone(loc, logger.Loc)); @@ -175813,7 +177056,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { _tuple$14 = _r$73; items[0] = _tuple$14[0]; isSingleLine$1 = _tuple$14[1]; - stmt[0].Items = (items.$ptr || (items.$ptr = new ptrType$75(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, items))); + stmt[0].Items = (items.$ptr || (items.$ptr = new ptrType$79(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, items))); stmt[0].IsSingleLine = isSingleLine$1; $r = p[0].lexer.ExpectContextualKeyword("from"); /* */ $s = 399; case 399: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 381; continue; @@ -175911,7 +177154,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { _tuple$15 = _r$80; items$1[0] = _tuple$15[0]; isSingleLine$2 = _tuple$15[1]; - stmt[0].Items = (items$1.$ptr || (items$1.$ptr = new ptrType$75(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, items$1))); + stmt[0].Items = (items$1.$ptr || (items$1.$ptr = new ptrType$79(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, items$1))); stmt[0].IsSingleLine = isSingleLine$2; $s = 444; continue; /* } else { */ case 443: @@ -175933,21 +177176,21 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { assertOrWith$2 = _tuple$16[2]; flags$2 = _tuple$16[3]; $r = p[0].lexer.ExpectOrInsertSemicolon(); /* */ $s = 453; case 453: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (p[0].options.optionsThatSupportStructuralEquality.ts.Parse && (p[0].options.optionsThatSupportStructuralEquality.ts.Config.UnusedImportFlags() === 2) && !(stmt[0].Items === ptrType$75.nil) && (stmt[0].Items.$get().$length === 0)) { + if (p[0].options.optionsThatSupportStructuralEquality.ts.Parse && (p[0].options.optionsThatSupportStructuralEquality.ts.Config.UnusedImportFlags() === 2) && !(stmt[0].Items === ptrType$79.nil) && (stmt[0].Items.$get().$length === 0)) { if (stmt[0].DefaultName === ptrType$12.nil) { $s = -1; return new js_ast.Stmt.ptr(js_ast.STypeScriptShared, $clone(loc, logger.Loc)); } - stmt[0].Items = ptrType$75.nil; + stmt[0].Items = ptrType$79.nil; } if (wasOriginallyBareImport) { flags$2 = (flags$2 | (512)) >>> 0; } stmt[0].ImportRecordIndex = p[0].addImportRecord(1, $clone(pathLoc$1, logger.Range), pathText$2, assertOrWith$2, flags$2); - /* */ if (!(stmt[0].StarNameLoc === ptrType$76.nil)) { $s = 454; continue; } + /* */ if (!(stmt[0].StarNameLoc === ptrType$80.nil)) { $s = 454; continue; } /* */ $s = 455; continue; - /* if (!(stmt[0].StarNameLoc === ptrType$76.nil)) { */ case 454: + /* if (!(stmt[0].StarNameLoc === ptrType$80.nil)) { */ case 454: name$4 = p[0].loadNameFromRef($clone(stmt[0].NamespaceRef, ast.Ref)); - _r$82 = p[0].declareSymbol(21, $clone(stmt[0].StarNameLoc, logger.Loc), name$4); /* */ $s = 457; case 457: if($c) { $c = false; _r$82 = _r$82.$blk(); } if (_r$82 && _r$82.$blk !== undefined) { break s; } + _r$82 = p[0].declareSymbol(21, $clone((x$5 = stmt[0].StarNameLoc, (x$5 === ptrType$80.nil && $throwNilPointerError(), x$5)), logger.Loc), name$4); /* */ $s = 457; case 457: if($c) { $c = false; _r$82 = _r$82.$blk(); } if (_r$82 && _r$82.$blk !== undefined) { break s; } ast.Ref.copy(stmt[0].NamespaceRef, _r$82); $s = 456; continue; /* } else { */ case 455: @@ -175965,9 +177208,9 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { _key$1 = $clone(ref$1, ast.Ref); (p[0].isImportItem || $throwRuntimeError("assignment to entry in nil map")).set(ast.Ref.keyFor(_key$1), { k: _key$1, v: true }); ast.Ref.copy(stmt[0].DefaultName.Ref, ref$1); /* } */ case 459: - /* */ if (!(stmt[0].Items === ptrType$75.nil)) { $s = 461; continue; } + /* */ if (!(stmt[0].Items === ptrType$79.nil)) { $s = 461; continue; } /* */ $s = 462; continue; - /* if (!(stmt[0].Items === ptrType$75.nil)) { */ case 461: + /* if (!(stmt[0].Items === ptrType$79.nil)) { */ case 461: _ref$3 = stmt[0].Items.$get(); _i = 0; /* while (true) { */ case 463: @@ -175979,7 +177222,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { ref$2 = $clone(_r$84, ast.Ref); $r = p[0].checkForUnrepresentableIdentifier($clone(item.AliasLoc, logger.Loc), item.Alias); /* */ $s = 466; case 466: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _key$2 = $clone(ref$2, ast.Ref); (p[0].isImportItem || $throwRuntimeError("assignment to entry in nil map")).set(ast.Ref.keyFor(_key$2), { k: _key$2, v: true }); - ast.Ref.copy((x$5 = stmt[0].Items.$get(), ((i$1 < 0 || i$1 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + i$1])).Name.Ref, ref$2); + ast.Ref.copy((x$6 = stmt[0].Items.$get(), ((i$1 < 0 || i$1 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + i$1])).Name.Ref, ref$2); _key$3 = item.Alias; (itemRefs || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$3), { k: _key$3, v: $clone(new ast.LocRef.ptr($clone(item.Name.Loc, logger.Loc), $clone(ref$2, ast.Ref)), ast.LocRef) }); _i++; $s = 463; continue; @@ -176062,7 +177305,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $s = 501; case 501: return $24r$14; /* } */ case 498: _r$92 = p[0].parseAsyncPrefixExpr($clone(nameRange, logger.Range), 0, 0); /* */ $s = 502; case 502: if($c) { $c = false; _r$92 = _r$92.$blk(); } if (_r$92 && _r$92.$blk !== undefined) { break s; } - _r$93 = p[0].parseSuffix($clone(_r$92, js_ast.Expr), 0, ptrType$69.nil, 0); /* */ $s = 503; case 503: if($c) { $c = false; _r$93 = _r$93.$blk(); } if (_r$93 && _r$93.$blk !== undefined) { break s; } + _r$93 = p[0].parseSuffix($clone(_r$92, js_ast.Expr), 0, ptrType$73.nil, 0); /* */ $s = 503; case 503: if($c) { $c = false; _r$93 = _r$93.$blk(); } if (_r$93 && _r$93.$blk !== undefined) { break s; } js_ast.Expr.copy(expr$5, _r$93); $s = 495; continue; /* } else { */ case 494: @@ -176081,7 +177324,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ if (isIdentifier$1) { $s = 508; continue; } /* */ $s = 509; continue; /* if (isIdentifier$1) { */ case 508: - _tuple$18 = $assertType(expr$5.Data, ptrType$32, true); + _tuple$18 = $assertType(expr$5.Data, ptrType$33, true); ident = _tuple$18[0]; ok$9 = _tuple$18[1]; /* */ if (ok$9) { $s = 510; continue; } @@ -176143,7 +177386,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ $s = 538; continue; /* if (opts.isExport) { */ case 537: $r = $clone(p[0].log, logger.Log).AddError(p[0].tracker, $clone(nameRange, logger.Range), "Unexpected \"interface\""); /* */ $s = 539; case 539: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $panic((x$6 = new js_lexer.LexerPanic.ptr(), new x$6.constructor.elem(x$6))); + $panic((x$7 = new js_lexer.LexerPanic.ptr(), new x$7.constructor.elem(x$7))); /* } */ case 538: $s = 526; continue; /* } else if (_9 === ("abstract")) { */ case 523: @@ -176188,14 +177431,14 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { stmt$8 = $clone(_r$101, js_ast.Stmt); typeDeclarationData = js_ast.STypeScriptShared; _ref$4 = stmt$8.Data; - /* */ if ($assertType(_ref$4, ptrType$38, true)[1]) { $s = 558; continue; } - /* */ if ($assertType(_ref$4, ptrType$73, true)[1]) { $s = 559; continue; } + /* */ if ($assertType(_ref$4, ptrType$40, true)[1]) { $s = 558; continue; } + /* */ if ($assertType(_ref$4, ptrType$77, true)[1]) { $s = 559; continue; } /* */ if ($assertType(_ref$4, ptrType$10, true)[1]) { $s = 560; continue; } /* */ $s = 561; continue; - /* if ($assertType(_ref$4, ptrType$38, true)[1]) { */ case 558: + /* if ($assertType(_ref$4, ptrType$40, true)[1]) { */ case 558: s$9 = _ref$4.$val; $s = -1; return new js_ast.Stmt.ptr(new js_ast.SExpr.ptr($clone(expr$5, js_ast.Expr), false), $clone(loc, logger.Loc)); - /* } else if ($assertType(_ref$4, ptrType$73, true)[1]) { */ case 559: + /* } else if ($assertType(_ref$4, ptrType$77, true)[1]) { */ case 559: s$10 = _ref$4.$val; typeDeclarationData = s$10; $s = 562; continue; @@ -176239,13 +177482,13 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* } */ case 25: case 1: $s = -1; return new js_ast.Stmt.ptr($ifaceNil, new logger.Loc.ptr(0)); - /* */ } return; } } catch(err) { $err = err; $s = -1; return new js_ast.Stmt.ptr($ifaceNil, new logger.Loc.ptr(0)); } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseStmt, $c: true, $r, $24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$13, $24r$14, $24r$15, $24r$16, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _1, _2, _3, _4, _5, _6, _7, _8, _9, _entry, _i, _key, _key$1, _key$2, _key$3, _key$4, _r, _r$1, _r$10, _r$100, _r$101, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _r$5, _r$50, _r$51, _r$52, _r$53, _r$54, _r$55, _r$56, _r$57, _r$58, _r$59, _r$6, _r$60, _r$61, _r$62, _r$63, _r$64, _r$65, _r$66, _r$67, _r$68, _r$69, _r$7, _r$70, _r$71, _r$72, _r$73, _r$74, _r$75, _r$76, _r$77, _r$78, _r$79, _r$8, _r$80, _r$81, _r$82, _r$83, _r$84, _r$85, _r$86, _r$87, _r$88, _r$89, _r$9, _r$90, _r$91, _r$92, _r$93, _r$94, _r$95, _r$96, _r$97, _r$98, _r$99, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, alias, assertOrWith, assertOrWith$1, assertOrWith$2, asyncRange, asyncRange$1, awaitRange, badLetRange, bindingOrNil, blockLoc, blockLoc$1, body, body$1, body$2, body$3, body$4, body$5, body$6, body$7, bodyLoc, bodyLoc$1, bodyScopes, caseLoc, caseScopeMap, caseScopeStart, caseScopes, cases, catch$1, catchLoc, closeBraceLoc, closeBraceLoc$1, closeBraceLoc$2, closeBraceLoc$3, closeBraceLoc$4, createDefaultName, decls, decls$1, decls$2, decls$3, decorators, defaultLoc, defaultName, defaultName$1, defaultName$2, defaultName$3, defaultName$4, defaultName$5, didGenerateError, endLoc, expr, expr$1, expr$2, expr$3, expr$4, expr$5, finally$1, finallyLoc, flags, flags$1, flags$2, foundDefault, i, i$1, ident, importRecordIndex, importRecordIndex$1, initLoc, initOrNil, isIdentifier, isIdentifier$1, isSingleLine, isSingleLine$1, isSingleLine$2, isSingleLineBody, isSingleLineBody$1, isSingleLineBody$2, isSingleLineBody$3, isSingleLineBody$4, isSingleLineNo, isSingleLineStmt, isSingleLineYes, isVar, it, item, itemRefs, items, items$1, items$2, kind, loc, local, local$1, local$2, name, name$1, name$10, name$11, name$2, name$3, name$4, name$5, name$6, name$7, name$8, name$9, nameLoc, nameRange, nameSubstring, namespaceRef, namespaceRef$1, nestedOpts, noOrNil, ok, ok$1, ok$10, ok$2, ok$3, ok$4, ok$5, ok$6, ok$7, ok$8, ok$9, oldLexer, opts, p, pathLoc, pathLoc$1, pathRange, pathText, pathText$1, pathText$2, previousExportKeyword, previousImportStatementKeyword, ref, ref$1, ref$2, s, s$1, s$10, s$11, s$12, s$13, s$2, s$3, s$4, s$5, s$6, s$7, s$8, s$9, scopeIndex, scopeIndex$1, starLoc, starLoc$1, stmt, stmt$1, stmt$2, stmt$3, stmt$4, stmt$5, stmt$6, stmt$7, stmt$8, stmts, stmts$1, stmts$2, switchScopeStart, test, test$1, test$2, test$3, test$4, testOrNil, typeDeclarationData, typeRange, updateOrNil, value, value$1, value$2, value$3, value$4, wasOriginallyBareImport, x, x$1, x$2, x$3, x$4, x$5, x$6, yes, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; return new js_ast.Stmt.ptr($ifaceNil, new logger.Loc.ptr(0)); } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseStmt, $c: true, $r, $24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$13, $24r$14, $24r$15, $24r$16, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _1, _2, _3, _4, _5, _6, _7, _8, _9, _entry, _i, _key, _key$1, _key$2, _key$3, _key$4, _r, _r$1, _r$10, _r$100, _r$101, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _r$5, _r$50, _r$51, _r$52, _r$53, _r$54, _r$55, _r$56, _r$57, _r$58, _r$59, _r$6, _r$60, _r$61, _r$62, _r$63, _r$64, _r$65, _r$66, _r$67, _r$68, _r$69, _r$7, _r$70, _r$71, _r$72, _r$73, _r$74, _r$75, _r$76, _r$77, _r$78, _r$79, _r$8, _r$80, _r$81, _r$82, _r$83, _r$84, _r$85, _r$86, _r$87, _r$88, _r$89, _r$9, _r$90, _r$91, _r$92, _r$93, _r$94, _r$95, _r$96, _r$97, _r$98, _r$99, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, alias, assertOrWith, assertOrWith$1, assertOrWith$2, asyncRange, asyncRange$1, awaitRange, badLetRange, bindingOrNil, blockLoc, blockLoc$1, body, body$1, body$2, body$3, body$4, body$5, body$6, body$7, bodyLoc, bodyLoc$1, bodyScopes, caseLoc, caseScopeMap, caseScopeStart, caseScopes, cases, catch$1, catchLoc, closeBraceLoc, closeBraceLoc$1, closeBraceLoc$2, closeBraceLoc$3, closeBraceLoc$4, createDefaultName, decls, decls$1, decls$2, decls$3, decorators, defaultLoc, defaultName, defaultName$1, defaultName$2, defaultName$3, defaultName$4, defaultName$5, didGenerateError, endLoc, expr, expr$1, expr$2, expr$3, expr$4, expr$5, finally$1, finallyLoc, flags, flags$1, flags$2, foundDefault, i, i$1, ident, importRecordIndex, importRecordIndex$1, initLoc, initOrNil, isIdentifier, isIdentifier$1, isSingleLine, isSingleLine$1, isSingleLine$2, isSingleLineBody, isSingleLineBody$1, isSingleLineBody$2, isSingleLineBody$3, isSingleLineBody$4, isSingleLineNo, isSingleLineStmt, isSingleLineYes, isVar, it, item, itemRefs, items, items$1, items$2, kind, loc, local, local$1, local$2, name, name$1, name$10, name$11, name$2, name$3, name$4, name$5, name$6, name$7, name$8, name$9, nameLoc, nameRange, nameSubstring, namespaceRef, namespaceRef$1, nestedOpts, noOrNil, ok, ok$1, ok$10, ok$2, ok$3, ok$4, ok$5, ok$6, ok$7, ok$8, ok$9, oldLexer, opts, p, pathLoc, pathLoc$1, pathRange, pathText, pathText$1, pathText$2, previousExportKeyword, previousImportStatementKeyword, ref, ref$1, ref$2, s, s$1, s$10, s$11, s$12, s$13, s$2, s$3, s$4, s$5, s$6, s$7, s$8, s$9, scopeIndex, scopeIndex$1, starLoc, starLoc$1, stmt, stmt$1, stmt$2, stmt$3, stmt$4, stmt$5, stmt$6, stmt$7, stmt$8, stmts, stmts$1, stmts$2, switchScopeStart, test, test$1, test$2, test$3, test$4, testOrNil, typeDeclarationData, typeRange, updateOrNil, value, value$1, value$2, value$3, value$4, wasOriginallyBareImport, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, yes, $s, $deferred};return $f; } } }; $ptrType(parser).prototype.addImportRecord = function addImportRecord(kind, pathRange, text, assertOrWith, flags) { var assertOrWith, flags, index, kind, p, pathRange, text; p = this; index = ((p.importRecords.$length >>> 0)); - p.importRecords = $append(p.importRecords, new ast.ImportRecord.ptr(assertOrWith, ptrType$77.nil, $clone(new logger.Path.ptr(text, "", "", new logger.ImportAttributes.ptr(""), 0), logger.Path), $clone(pathRange, logger.Range), new logger.Loc.ptr(0), new ast.Index32.ptr(0), new ast.Index32.ptr(0), flags, kind)); + p.importRecords = $append(p.importRecords, new ast.ImportRecord.ptr(assertOrWith, ptrType$81.nil, $clone(new logger.Path.ptr(text, "", "", new logger.ImportAttributes.ptr(""), 0), logger.Path), $clone(pathRange, logger.Range), new logger.Loc.ptr(0), new ast.Index32.ptr(0), new ast.Index32.ptr(0), flags, kind)); return index; }; $ptrType(parser).prototype.parseFnBody = function parseFnBody(data) { @@ -176305,7 +177548,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { _r = p.parseStmt($clone(opts, parseStmtOpts)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } stmt = $clone(_r, js_ast.Stmt); if (p.options.optionsThatSupportStructuralEquality.ts.Parse) { - _tuple = $assertType(stmt.Data, ptrType$73, true); + _tuple = $assertType(stmt.Data, ptrType$77, true); ok = _tuple[1]; if (ok) { /* continue; */ $s = 1; continue; @@ -176340,7 +177583,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ if (!p.suppressWarningsAboutWeirdCode) { $s = 4; continue; } /* */ $s = 5; continue; /* if (!p.suppressWarningsAboutWeirdCode) { */ case 4: - _tuple$3 = $assertType(stmt.Data, ptrType$40, true); + _tuple$3 = $assertType(stmt.Data, ptrType$42, true); s = _tuple$3[0]; ok$3 = _tuple$3[1]; /* */ if (ok$3 && $interfaceIsEqual(s.ValueOrNil.Data, $ifaceNil) && !p.latestReturnHadSemicolon) { $s = 6; continue; } @@ -176524,10 +177767,10 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { findIdentifiers = function findIdentifiers$1(binding, identifiers) { var _i, _i$1, _ref, _ref$1, _ref$2, b, b$1, b$2, binding, identifiers, item, property; _ref = binding.Data; - if ($assertType(_ref, ptrType$34, true)[1]) { + if ($assertType(_ref, ptrType$35, true)[1]) { b = _ref.$val; identifiers = $append(identifiers, new js_ast.Decl.ptr($clone(binding, js_ast.Binding), new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)))); - } else if ($assertType(_ref, ptrType$51, true)[1]) { + } else if ($assertType(_ref, ptrType$53, true)[1]) { b$1 = _ref.$val; _ref$1 = b$1.Items; _i = 0; @@ -176537,7 +177780,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { identifiers = findIdentifiers($clone(item.Binding, js_ast.Binding), identifiers); _i++; } - } else if ($assertType(_ref, ptrType$52, true)[1]) { + } else if ($assertType(_ref, ptrType$54, true)[1]) { b$2 = _ref.$val; _ref$2 = b$2.Properties; _i$1 = 0; @@ -176553,7 +177796,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { shouldKeepStmtInDeadControlFlow = function shouldKeepStmtInDeadControlFlow$1(stmt) { var _i, _i$1, _ref, _ref$1, _ref$2, child, decl, identifiers, s, s$1, s$10, s$2, s$3, s$4, s$5, s$6, s$7, s$8, s$9, stmt; _ref = stmt.Data; - if ($assertType(_ref, ptrType$38, true)[1] || $assertType(_ref, ptrType$13, true)[1] || $assertType(_ref, ptrType$41, true)[1] || $assertType(_ref, ptrType$40, true)[1] || $assertType(_ref, ptrType$64, true)[1] || $assertType(_ref, ptrType$65, true)[1] || $assertType(_ref, ptrType$7, true)[1] || $assertType(_ref, ptrType$78, true)[1]) { + if ($assertType(_ref, ptrType$40, true)[1] || $assertType(_ref, ptrType$13, true)[1] || $assertType(_ref, ptrType$43, true)[1] || $assertType(_ref, ptrType$42, true)[1] || $assertType(_ref, ptrType$67, true)[1] || $assertType(_ref, ptrType$68, true)[1] || $assertType(_ref, ptrType$7, true)[1] || $assertType(_ref, ptrType$82, true)[1]) { s = _ref; return false; } else if ($assertType(_ref, ptrType$10, true)[1]) { @@ -176575,7 +177818,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } s$1.Decls = identifiers; return true; - } else if ($assertType(_ref, ptrType$48, true)[1]) { + } else if ($assertType(_ref, ptrType$49, true)[1]) { s$2 = _ref.$val; _ref$2 = s$2.Stmts; _i$1 = 0; @@ -176588,25 +177831,25 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { _i$1++; } return false; - } else if ($assertType(_ref, ptrType$42, true)[1]) { + } else if ($assertType(_ref, ptrType$44, true)[1]) { s$3 = _ref.$val; return shouldKeepStmtInDeadControlFlow($clone(s$3.Yes, js_ast.Stmt)) || (!($interfaceIsEqual(s$3.NoOrNil.Data, $ifaceNil)) && shouldKeepStmtInDeadControlFlow($clone(s$3.NoOrNil, js_ast.Stmt))); - } else if ($assertType(_ref, ptrType$79, true)[1]) { + } else if ($assertType(_ref, ptrType$83, true)[1]) { s$4 = _ref.$val; return shouldKeepStmtInDeadControlFlow($clone(s$4.Body, js_ast.Stmt)); - } else if ($assertType(_ref, ptrType$80, true)[1]) { + } else if ($assertType(_ref, ptrType$84, true)[1]) { s$5 = _ref.$val; return shouldKeepStmtInDeadControlFlow($clone(s$5.Body, js_ast.Stmt)); - } else if ($assertType(_ref, ptrType$44, true)[1]) { + } else if ($assertType(_ref, ptrType$46, true)[1]) { s$6 = _ref.$val; return (!($interfaceIsEqual(s$6.InitOrNil.Data, $ifaceNil)) && shouldKeepStmtInDeadControlFlow($clone(s$6.InitOrNil, js_ast.Stmt))) || shouldKeepStmtInDeadControlFlow($clone(s$6.Body, js_ast.Stmt)); - } else if ($assertType(_ref, ptrType$81, true)[1]) { + } else if ($assertType(_ref, ptrType$85, true)[1]) { s$7 = _ref.$val; return shouldKeepStmtInDeadControlFlow($clone(s$7.Init, js_ast.Stmt)) || shouldKeepStmtInDeadControlFlow($clone(s$7.Body, js_ast.Stmt)); - } else if ($assertType(_ref, ptrType$82, true)[1]) { + } else if ($assertType(_ref, ptrType$86, true)[1]) { s$8 = _ref.$val; return shouldKeepStmtInDeadControlFlow($clone(s$8.Init, js_ast.Stmt)) || shouldKeepStmtInDeadControlFlow($clone(s$8.Body, js_ast.Stmt)); - } else if ($assertType(_ref, ptrType$83, true)[1]) { + } else if ($assertType(_ref, ptrType$87, true)[1]) { s$9 = _ref.$val; return shouldKeepStmtInDeadControlFlow($clone(s$9.Stmt, js_ast.Stmt)); } else { @@ -176615,7 +177858,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } }; $ptrType(parser).prototype.visitStmtsAndPrependTempRefs = function visitStmtsAndPrependTempRefs(stmts, opts) { - var {_i, _r, _ref, _ref$1, decls, oldTempRefCount, oldTempRefs, opts, p, ref, ref$1, split, stmts, temp, x, x$1, $s, $r, $c} = $restore(this, {stmts, opts}); + var {_i, _r, _ref, _ref$1, decls, oldTempRefCount, oldTempRefs, opts, p, ref, ref$1, split, stmts, temp, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {stmts, opts}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; oldTempRefs = p.tempRefsToDeclare; @@ -176624,16 +177867,16 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { p.tempRefCount = 0; _r = p.visitStmts(stmts, opts.kind); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } stmts = _r; - if (!(opts.fnBodyLoc === ptrType$76.nil)) { + if (!(opts.fnBodyLoc === ptrType$80.nil)) { ref = p.fnOnlyDataVisit.thisCaptureRef; if (!(ref === ptrType$11.nil)) { - p.tempRefsToDeclare = $append(p.tempRefsToDeclare, new tempRef.ptr($clone(new js_ast.Expr.ptr(js_ast.EThisShared, $clone(opts.fnBodyLoc, logger.Loc)), js_ast.Expr), $clone(ref, ast.Ref))); - p.currentScope.Generated = $append(p.currentScope.Generated, ref); + p.tempRefsToDeclare = $append(p.tempRefsToDeclare, new tempRef.ptr($clone(new js_ast.Expr.ptr(js_ast.EThisShared, $clone((x = opts.fnBodyLoc, (x === ptrType$80.nil && $throwNilPointerError(), x)), logger.Loc)), js_ast.Expr), $clone((ref === ptrType$11.nil && $throwNilPointerError(), ref), ast.Ref))); + p.currentScope.Generated = $append(p.currentScope.Generated, (ref === ptrType$11.nil && $throwNilPointerError(), ref)); } ref$1 = p.fnOnlyDataVisit.argumentsCaptureRef; if (!(ref$1 === ptrType$11.nil)) { - p.tempRefsToDeclare = $append(p.tempRefsToDeclare, new tempRef.ptr($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(p.fnOnlyDataVisit.argumentsRef, ast.Ref), false, false, false), $clone(opts.fnBodyLoc, logger.Loc)), js_ast.Expr), $clone(ref$1, ast.Ref))); - p.currentScope.Generated = $append(p.currentScope.Generated, ref$1); + p.tempRefsToDeclare = $append(p.tempRefsToDeclare, new tempRef.ptr($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone((x$2 = p.fnOnlyDataVisit.argumentsRef, (x$2 === ptrType$11.nil && $throwNilPointerError(), x$2)), ast.Ref), false, false, false), $clone((x$1 = opts.fnBodyLoc, (x$1 === ptrType$80.nil && $throwNilPointerError(), x$1)), logger.Loc)), js_ast.Expr), $clone((ref$1 === ptrType$11.nil && $throwNilPointerError(), ref$1), ast.Ref))); + p.currentScope.Generated = $append(p.currentScope.Generated, (ref$1 === ptrType$11.nil && $throwNilPointerError(), ref$1)); } } if (p.currentScope === p.moduleScope && !(p.topLevelTempRefsToDeclare === sliceType$29.nil)) { @@ -176646,7 +177889,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { while (true) { if (!(_i < _ref.$length)) { break; } temp = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), tempRef); - if ((x = p.symbols, x$1 = temp.ref.InnerIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).UseCountEstimate > 0) { + if ((x$3 = p.symbols, x$4 = temp.ref.InnerIndex, ((x$4 < 0 || x$4 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + x$4])).UseCountEstimate > 0) { decls = $append(decls, new js_ast.Decl.ptr($clone(new js_ast.Binding.ptr(new js_ast.BIdentifier.ptr($clone(temp.ref, ast.Ref)), new logger.Loc.ptr(0)), js_ast.Binding), $clone(temp.valueOrNil, js_ast.Expr))); p.recordDeclaredSymbol($clone(temp.ref, ast.Ref)); } @@ -176657,7 +177900,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { while (true) { if (!(split < stmts.$length)) { break; } _ref$1 = ((split < 0 || split >= stmts.$length) ? ($throwRuntimeError("index out of range"), undefined) : stmts.$array[stmts.$offset + split]).Data; - if ($assertType(_ref$1, ptrType$84, true)[1] || $assertType(_ref$1, ptrType$55, true)[1]) { + if ($assertType(_ref$1, ptrType$88, true)[1] || $assertType(_ref$1, ptrType$58, true)[1]) { split = split + (1) >> 0; continue; } @@ -176668,7 +177911,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { p.tempRefsToDeclare = oldTempRefs; p.tempRefCount = oldTempRefCount; $s = -1; return stmts; - /* */ } return; } var $f = {$blk: visitStmtsAndPrependTempRefs, $c: true, $r, _i, _r, _ref, _ref$1, decls, oldTempRefCount, oldTempRefs, opts, p, ref, ref$1, split, stmts, temp, x, x$1, $s};return $f; + /* */ } return; } var $f = {$blk: visitStmtsAndPrependTempRefs, $c: true, $r, _i, _r, _ref, _ref$1, decls, oldTempRefCount, oldTempRefs, opts, p, ref, ref$1, split, stmts, temp, x, x$1, x$2, x$3, x$4, $s};return $f; }; $ptrType(parser).prototype.visitStmts = function visitStmts(stmts, kind) { var {$24r, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _i, _i$1, _i$2, _i$3, _i$4, _key, _key$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, after, assign, before, ctx, decls, end, fnStmts, hoistedRef, hoistedRef$1, i, i$1, index, kind, kind$1, letDecls, nonFnStmts, ok, ok$1, ok$2, ok$3, ok$4, ok$5, ok$6, oldIsControlFlowDead, oldScopesInOrder, oldTempLetsToDeclare, p, preprocessedEnums, prevS, prevStmt, ref, s, s$1, s$2, s$3, s$4, stmt, stmt$1, stmt$2, stmt$3, stmts, varDecls, visited, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {stmts, kind}); @@ -176715,11 +177958,11 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { i$1 = _i$1; stmt$1 = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), js_ast.Stmt); _ref$2 = stmt$1.Data; - /* */ if ($assertType(_ref$2, ptrType$85, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref$2, ptrType$89, true)[1]) { $s = 10; continue; } /* */ if ($assertType(_ref$2, ptrType$6, true)[1]) { $s = 11; continue; } /* */ if ($assertType(_ref$2, ptrType$9, true)[1]) { $s = 12; continue; } /* */ $s = 13; continue; - /* if ($assertType(_ref$2, ptrType$85, true)[1]) { */ case 10: + /* if ($assertType(_ref$2, ptrType$89, true)[1]) { */ case 10: s = _ref$2.$val; _r$1 = p.visitAndAppendStmt(after, $clone(stmt$1, js_ast.Stmt)); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } after = _r$1; @@ -176900,7 +178143,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { i = _i; stmt = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), js_ast.Stmt); _ref$1 = stmt.Data; - if ($assertType(_ref$1, ptrType$38, true)[1] || $assertType(_ref$1, ptrType$84, true)[1] || $assertType(_ref$1, ptrType$55, true)[1] || $assertType(_ref$1, ptrType$78, true)[1] || $assertType(_ref$1, ptrType$73, true)[1]) { + if ($assertType(_ref$1, ptrType$40, true)[1] || $assertType(_ref$1, ptrType$88, true)[1] || $assertType(_ref$1, ptrType$58, true)[1] || $assertType(_ref$1, ptrType$82, true)[1] || $assertType(_ref$1, ptrType$77, true)[1]) { s = _ref$1; _i++; continue; @@ -176913,7 +178156,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { while (true) { if (!(_i$1 < _ref$2.$length)) { break; } d = $clone(((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]), js_ast.Decl); - _tuple = $assertType(d.Binding.Data, ptrType$34, true); + _tuple = $assertType(d.Binding.Data, ptrType$35, true); id = _tuple[0]; ok = _tuple[1]; if (ok) { @@ -176964,7 +178207,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ $s = 8; continue; /* if (ok$2 && !((prevS.Kind === 0))) { */ case 7: last = $clone((x$4 = prevS.Decls, x$5 = prevS.Decls.$length - 1 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])), js_ast.Decl); - _tuple$3 = $assertType(last.Binding.Data, ptrType$34, true); + _tuple$3 = $assertType(last.Binding.Data, ptrType$35, true); id$1 = _tuple$3[0]; ok$3 = _tuple$3[1]; /* */ if (ok$3) { $s = 9; continue; } @@ -176996,18 +178239,18 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { case 6: /* } */ case 4: _ref$4 = stmt$1.Data; - /* */ if ($assertType(_ref$4, ptrType$38, true)[1]) { $s = 16; continue; } + /* */ if ($assertType(_ref$4, ptrType$40, true)[1]) { $s = 16; continue; } /* */ if ($assertType(_ref$4, ptrType$10, true)[1]) { $s = 17; continue; } /* */ if ($assertType(_ref$4, ptrType$13, true)[1]) { $s = 18; continue; } - /* */ if ($assertType(_ref$4, ptrType$43, true)[1]) { $s = 19; continue; } - /* */ if ($assertType(_ref$4, ptrType$42, true)[1]) { $s = 20; continue; } - /* */ if ($assertType(_ref$4, ptrType$40, true)[1]) { $s = 21; continue; } - /* */ if ($assertType(_ref$4, ptrType$41, true)[1]) { $s = 22; continue; } - /* */ if ($assertType(_ref$4, ptrType$64, true)[1] || $assertType(_ref$4, ptrType$65, true)[1]) { $s = 23; continue; } - /* */ if ($assertType(_ref$4, ptrType$44, true)[1]) { $s = 24; continue; } - /* */ if ($assertType(_ref$4, ptrType$86, true)[1]) { $s = 25; continue; } + /* */ if ($assertType(_ref$4, ptrType$45, true)[1]) { $s = 19; continue; } + /* */ if ($assertType(_ref$4, ptrType$44, true)[1]) { $s = 20; continue; } + /* */ if ($assertType(_ref$4, ptrType$42, true)[1]) { $s = 21; continue; } + /* */ if ($assertType(_ref$4, ptrType$43, true)[1]) { $s = 22; continue; } + /* */ if ($assertType(_ref$4, ptrType$67, true)[1] || $assertType(_ref$4, ptrType$68, true)[1]) { $s = 23; continue; } + /* */ if ($assertType(_ref$4, ptrType$46, true)[1]) { $s = 24; continue; } + /* */ if ($assertType(_ref$4, ptrType$90, true)[1]) { $s = 25; continue; } /* */ $s = 26; continue; - /* if ($assertType(_ref$4, ptrType$38, true)[1]) { */ case 16: + /* if ($assertType(_ref$4, ptrType$40, true)[1]) { */ case 16: s$2 = _ref$4.$val; _i$2++; /* continue; */ $s = 1; continue; @@ -177043,7 +178286,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } } $s = 26; continue; - /* } else if ($assertType(_ref$4, ptrType$43, true)[1]) { */ case 19: + /* } else if ($assertType(_ref$4, ptrType$45, true)[1]) { */ case 19: s$5 = _ref$4.$val; if (result.$length > 0) { prevStmt$2 = $clone((x$10 = result.$length - 1 >> 0, ((x$10 < 0 || x$10 >= result.$length) ? ($throwRuntimeError("index out of range"), undefined) : result.$array[result.$offset + x$10])), js_ast.Stmt); @@ -177056,7 +178299,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } } $s = 26; continue; - /* } else if ($assertType(_ref$4, ptrType$42, true)[1]) { */ case 20: + /* } else if ($assertType(_ref$4, ptrType$44, true)[1]) { */ case 20: s$6 = _ref$4.$val; if (result.$length > 0) { prevStmt$3 = $clone((x$11 = result.$length - 1 >> 0, ((x$11 < 0 || x$11 >= result.$length) ? ($throwRuntimeError("index out of range"), undefined) : result.$array[result.$offset + x$11])), js_ast.Stmt); @@ -177074,7 +178317,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { optimizeImplicitJump = false; if (result.$length > 0) { prevStmt$4 = $clone((x$12 = result.$length - 1 >> 0, ((x$12 < 0 || x$12 >= result.$length) ? ($throwRuntimeError("index out of range"), undefined) : result.$array[result.$offset + x$12])), js_ast.Stmt); - _tuple$8 = $assertType(prevStmt$4.Data, ptrType$42, true); + _tuple$8 = $assertType(prevStmt$4.Data, ptrType$44, true); prevS$5 = _tuple$8[0]; ok$8 = _tuple$8[1]; if (ok$8 && $interfaceIsEqual(prevS$5.NoOrNil.Data, $ifaceNil) && jumpStmtsLookTheSame(prevS$5.Yes.Data, s$6.Yes.Data)) { @@ -177083,7 +178326,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } } if (kind === 2) { - _tuple$9 = $assertType(s$6.Yes.Data, ptrType$65, true); + _tuple$9 = $assertType(s$6.Yes.Data, ptrType$68, true); continueS = _tuple$9[0]; ok$9 = _tuple$9[1]; if (ok$9 && continueS.Label === ptrType$12.nil) { @@ -177091,7 +178334,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } } if (kind === 3) { - _tuple$10 = $assertType(s$6.Yes.Data, ptrType$40, true); + _tuple$10 = $assertType(s$6.Yes.Data, ptrType$42, true); returnS = _tuple$10[0]; ok$10 = _tuple$10[1]; if (ok$10 && $interfaceIsEqual(returnS.ValueOrNil.Data, $ifaceNil)) { @@ -177142,7 +178385,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { js_ast.Stmt.copy(stmt$1, s$6.NoOrNil); js_ast.Stmt.copy(s$6.NoOrNil, new js_ast.Stmt.ptr($ifaceNil, new logger.Loc.ptr(0))); ok$11 = false; - _tuple$11 = $assertType(stmt$1.Data, ptrType$42, true); + _tuple$11 = $assertType(stmt$1.Data, ptrType$44, true); s$6 = _tuple$11[0]; ok$11 = _tuple$11[1]; if (!ok$11 || !isJumpStatement(s$6.Yes.Data) || $interfaceIsEqual(s$6.NoOrNil.Data, $ifaceNil)) { @@ -177158,7 +178401,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } /* } */ case 28: $s = 26; continue; - /* } else if ($assertType(_ref$4, ptrType$40, true)[1]) { */ case 21: + /* } else if ($assertType(_ref$4, ptrType$42, true)[1]) { */ case 21: s$7 = _ref$4.$val; if (result.$length > 0 && !($interfaceIsEqual(s$7.ValueOrNil.Data, $ifaceNil))) { prevStmt$5 = $clone((x$13 = result.$length - 1 >> 0, ((x$13 < 0 || x$13 >= result.$length) ? ($throwRuntimeError("index out of range"), undefined) : result.$array[result.$offset + x$13])), js_ast.Stmt); @@ -177173,7 +178416,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } isControlFlowDead = true; $s = 26; continue; - /* } else if ($assertType(_ref$4, ptrType$41, true)[1]) { */ case 22: + /* } else if ($assertType(_ref$4, ptrType$43, true)[1]) { */ case 22: s$8 = _ref$4.$val; if (result.$length > 0) { prevStmt$6 = $clone((x$15 = result.$length - 1 >> 0, ((x$15 < 0 || x$15 >= result.$length) ? ($throwRuntimeError("index out of range"), undefined) : result.$array[result.$offset + x$15])), js_ast.Stmt); @@ -177188,11 +178431,11 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } isControlFlowDead = true; $s = 26; continue; - /* } else if ($assertType(_ref$4, ptrType$64, true)[1] || $assertType(_ref$4, ptrType$65, true)[1]) { */ case 23: + /* } else if ($assertType(_ref$4, ptrType$67, true)[1] || $assertType(_ref$4, ptrType$68, true)[1]) { */ case 23: s$9 = _ref$4; isControlFlowDead = true; $s = 26; continue; - /* } else if ($assertType(_ref$4, ptrType$44, true)[1]) { */ case 24: + /* } else if ($assertType(_ref$4, ptrType$46, true)[1]) { */ case 24: s$10 = _ref$4.$val; if (result.$length > 0) { prevStmt$7 = $clone((x$17 = result.$length - 1 >> 0, ((x$17 < 0 || x$17 >= result.$length) ? ($throwRuntimeError("index out of range"), undefined) : result.$array[result.$offset + x$17])), js_ast.Stmt); @@ -177246,10 +178489,10 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } } $s = 26; continue; - /* } else if ($assertType(_ref$4, ptrType$86, true)[1]) { */ case 25: + /* } else if ($assertType(_ref$4, ptrType$90, true)[1]) { */ case 25: s$11 = _ref$4.$val; - if (!p.options.optionsThatSupportStructuralEquality.unsupportedJSFeatures.Has(new compat.JSFeature(2048, 0)) && !(s$11.Catch === ptrType$49.nil)) { - _tuple$19 = $assertType(s$11.Catch.BindingOrNil.Data, ptrType$34, true); + if (!p.options.optionsThatSupportStructuralEquality.unsupportedJSFeatures.Has(new compat.JSFeature(2048, 0)) && !(s$11.Catch === ptrType$51.nil)) { + _tuple$19 = $assertType(s$11.Catch.BindingOrNil.Data, ptrType$35, true); id$2 = _tuple$19[0]; ok$19 = _tuple$19[1]; if (ok$19) { @@ -177271,14 +178514,14 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { if (result.$length > 0) { _1 = kind; if (_1 === (2)) { - _tuple$20 = $assertType((x$24 = result.$length - 1 >> 0, ((x$24 < 0 || x$24 >= result.$length) ? ($throwRuntimeError("index out of range"), undefined) : result.$array[result.$offset + x$24])).Data, ptrType$65, true); + _tuple$20 = $assertType((x$24 = result.$length - 1 >> 0, ((x$24 < 0 || x$24 >= result.$length) ? ($throwRuntimeError("index out of range"), undefined) : result.$array[result.$offset + x$24])).Data, ptrType$68, true); continueS$1 = _tuple$20[0]; ok$20 = _tuple$20[1]; if (ok$20 && continueS$1.Label === ptrType$12.nil) { result = $subslice(result, 0, (result.$length - 1 >> 0)); } } else if (_1 === (3)) { - _tuple$21 = $assertType((x$25 = result.$length - 1 >> 0, ((x$25 < 0 || x$25 >= result.$length) ? ($throwRuntimeError("index out of range"), undefined) : result.$array[result.$offset + x$25])).Data, ptrType$40, true); + _tuple$21 = $assertType((x$25 = result.$length - 1 >> 0, ((x$25 < 0 || x$25 >= result.$length) ? ($throwRuntimeError("index out of range"), undefined) : result.$array[result.$offset + x$25])).Data, ptrType$42, true); returnS$1 = _tuple$21[0]; ok$21 = _tuple$21[1]; if (ok$21 && $interfaceIsEqual(returnS$1.ValueOrNil.Data, $ifaceNil)) { @@ -177290,7 +178533,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ $s = 38; continue; /* if (result.$length >= 2) { */ case 37: lastStmt = $clone((x$26 = result.$length - 1 >> 0, ((x$26 < 0 || x$26 >= result.$length) ? ($throwRuntimeError("index out of range"), undefined) : result.$array[result.$offset + x$26])), js_ast.Stmt); - _tuple$22 = $assertType(lastStmt.Data, ptrType$40, true); + _tuple$22 = $assertType(lastStmt.Data, ptrType$42, true); lastReturn = _tuple$22[0]; ok$22 = _tuple$22[1]; /* */ if (ok$22) { $s = 39; continue; } @@ -177302,7 +178545,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { prevStmt$8 = $clone(((prevIndex < 0 || prevIndex >= result.$length) ? ($throwRuntimeError("index out of range"), undefined) : result.$array[result.$offset + prevIndex]), js_ast.Stmt); _ref$6 = prevStmt$8.Data; /* */ if ($assertType(_ref$6, ptrType$13, true)[1]) { $s = 44; continue; } - /* */ if ($assertType(_ref$6, ptrType$42, true)[1]) { $s = 45; continue; } + /* */ if ($assertType(_ref$6, ptrType$44, true)[1]) { $s = 45; continue; } /* */ $s = 46; continue; /* if ($assertType(_ref$6, ptrType$13, true)[1]) { */ case 44: prevS$9 = _ref$6.$val; @@ -177314,12 +178557,12 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { js_ast.Stmt.copy(((prevIndex < 0 || prevIndex >= result.$length) ? ($throwRuntimeError("index out of range"), undefined) : result.$array[result.$offset + prevIndex]), lastStmt); result = $subslice(result, 0, (result.$length - 1 >> 0)); $s = 47; continue; - /* } else if ($assertType(_ref$6, ptrType$42, true)[1]) { */ case 45: + /* } else if ($assertType(_ref$6, ptrType$44, true)[1]) { */ case 45: prevS$10 = _ref$6.$val; if (!($interfaceIsEqual(prevS$10.NoOrNil.Data, $ifaceNil))) { /* break returnLoop; */ $s = 43; continue s; } - _tuple$23 = $assertType(prevS$10.Yes.Data, ptrType$40, true); + _tuple$23 = $assertType(prevS$10.Yes.Data, ptrType$42, true); prevReturn = _tuple$23[0]; ok$23 = _tuple$23[1]; if (!ok$23) { @@ -177333,7 +178576,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { if ($interfaceIsEqual(right.Data, $ifaceNil)) { js_ast.Expr.copy(right, new js_ast.Expr.ptr(js_ast.EUndefinedShared, $clone(lastStmt.Loc, logger.Loc))); } - _tuple$24 = $assertType(prevS$10.Test.Data, ptrType$47, true); + _tuple$24 = $assertType(prevS$10.Test.Data, ptrType$50, true); not = _tuple$24[0]; ok$24 = _tuple$24[1]; if (ok$24 && (not.Op === 3)) { @@ -177343,7 +178586,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { js_ast.Expr.copy(left, _tmp); js_ast.Expr.copy(right, _tmp$1); } - _tuple$25 = $assertType(prevS$10.Test.Data, ptrType$45, true); + _tuple$25 = $assertType(prevS$10.Test.Data, ptrType$47, true); comma = _tuple$25[0]; ok$25 = _tuple$25[1]; /* */ if (ok$25 && (comma.Op === 36)) { $s = 48; continue; } @@ -177371,7 +178614,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { case 43: $s = 41; continue; /* } else { */ case 40: - _tuple$26 = $assertType(lastStmt.Data, ptrType$41, true); + _tuple$26 = $assertType(lastStmt.Data, ptrType$43, true); lastThrow = _tuple$26[0]; ok$26 = _tuple$26[1]; /* */ if (ok$26) { $s = 54; continue; } @@ -177383,7 +178626,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { prevStmt$9 = $clone(((prevIndex$1 < 0 || prevIndex$1 >= result.$length) ? ($throwRuntimeError("index out of range"), undefined) : result.$array[result.$offset + prevIndex$1]), js_ast.Stmt); _ref$7 = prevStmt$9.Data; /* */ if ($assertType(_ref$7, ptrType$13, true)[1]) { $s = 58; continue; } - /* */ if ($assertType(_ref$7, ptrType$42, true)[1]) { $s = 59; continue; } + /* */ if ($assertType(_ref$7, ptrType$44, true)[1]) { $s = 59; continue; } /* */ $s = 60; continue; /* if ($assertType(_ref$7, ptrType$13, true)[1]) { */ case 58: prevS$12 = _ref$7.$val; @@ -177392,12 +178635,12 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { js_ast.Stmt.copy(((prevIndex$1 < 0 || prevIndex$1 >= result.$length) ? ($throwRuntimeError("index out of range"), undefined) : result.$array[result.$offset + prevIndex$1]), lastStmt); result = $subslice(result, 0, (result.$length - 1 >> 0)); $s = 61; continue; - /* } else if ($assertType(_ref$7, ptrType$42, true)[1]) { */ case 59: + /* } else if ($assertType(_ref$7, ptrType$44, true)[1]) { */ case 59: prevS$13 = _ref$7.$val; if (!($interfaceIsEqual(prevS$13.NoOrNil.Data, $ifaceNil))) { /* break throwLoop; */ $s = 57; continue s; } - _tuple$27 = $assertType(prevS$13.Yes.Data, ptrType$41, true); + _tuple$27 = $assertType(prevS$13.Yes.Data, ptrType$43, true); prevThrow = _tuple$27[0]; ok$27 = _tuple$27[1]; if (!ok$27) { @@ -177405,7 +178648,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } left$1 = $clone(prevThrow.Value, js_ast.Expr); right$1 = $clone(lastThrow.Value, js_ast.Expr); - _tuple$28 = $assertType(prevS$13.Test.Data, ptrType$47, true); + _tuple$28 = $assertType(prevS$13.Test.Data, ptrType$50, true); not$1 = _tuple$28[0]; ok$28 = _tuple$28[1]; if (ok$28 && (not$1.Op === 3)) { @@ -177415,7 +178658,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { js_ast.Expr.copy(left$1, _tmp$2); js_ast.Expr.copy(right$1, _tmp$3); } - _tuple$29 = $assertType(prevS$13.Test.Data, ptrType$45, true); + _tuple$29 = $assertType(prevS$13.Test.Data, ptrType$47, true); comma$1 = _tuple$29[0]; ok$29 = _tuple$29[1]; /* */ if (ok$29 && (comma$1.Op === 36)) { $s = 62; continue; } @@ -177451,45 +178694,45 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { var {_r, _r$1, _ref, _tuple, _tuple$1, expr, first, new$1, ok, p, ref, replacement, replacementCanBeRemoved, s, s$1, s$2, s$3, s$4, s$5, status, stmt, x, $s, $r, $c} = $restore(this, {stmt, ref, replacement}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; - expr = ptrType$35.nil; + expr = ptrType$36.nil; _ref = stmt.Data; if ($assertType(_ref, ptrType$13, true)[1]) { s = _ref.$val; expr = s.Value; - } else if ($assertType(_ref, ptrType$41, true)[1]) { + } else if ($assertType(_ref, ptrType$43, true)[1]) { s$1 = _ref.$val; expr = s$1.Value; - } else if ($assertType(_ref, ptrType$40, true)[1]) { + } else if ($assertType(_ref, ptrType$42, true)[1]) { s$2 = _ref.$val; expr = s$2.ValueOrNil; - } else if ($assertType(_ref, ptrType$42, true)[1]) { + } else if ($assertType(_ref, ptrType$44, true)[1]) { s$3 = _ref.$val; expr = s$3.Test; - } else if ($assertType(_ref, ptrType$43, true)[1]) { + } else if ($assertType(_ref, ptrType$45, true)[1]) { s$4 = _ref.$val; expr = s$4.Test; } else if ($assertType(_ref, ptrType$10, true)[1]) { s$5 = _ref.$val; - first = (x = s$5.Decls, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); + first = (x = s$5.Decls, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + 0, ptrType$91))); if (!($interfaceIsEqual(first.ValueOrNil.Data, $ifaceNil))) { - _tuple = $assertType(first.Binding.Data, ptrType$34, true); + _tuple = $assertType(first.Binding.Data, ptrType$35, true); ok = _tuple[1]; if (ok) { expr = first.ValueOrNil; } } } - /* */ if (!(expr === ptrType$35.nil)) { $s = 1; continue; } + /* */ if (!(expr === ptrType$36.nil)) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (!(expr === ptrType$35.nil)) { */ case 1: + /* if (!(expr === ptrType$36.nil)) { */ case 1: _r = $clone(p.astHelpers, js_ast.HelperContext).ExprCanBeRemovedIfUnused($clone(replacement, js_ast.Expr)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } replacementCanBeRemoved = _r; - _r$1 = p.substituteSingleUseSymbolInExpr($clone(expr, js_ast.Expr), $clone(ref, ast.Ref), $clone(replacement, js_ast.Expr), replacementCanBeRemoved); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1 = p.substituteSingleUseSymbolInExpr($clone((expr === ptrType$36.nil && $throwNilPointerError(), expr), js_ast.Expr), $clone(ref, ast.Ref), $clone(replacement, js_ast.Expr), replacementCanBeRemoved); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$1 = _r$1; new$1 = $clone(_tuple$1[0], js_ast.Expr); status = _tuple$1[1]; if (status === 1) { - js_ast.Expr.copy(expr, new$1); + js_ast.Expr.copy((expr === ptrType$36.nil && $throwNilPointerError(), expr), new$1); $s = -1; return true; } /* } */ case 2: @@ -177501,29 +178744,29 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; _ref = expr.Data; - /* */ if ($assertType(_ref, ptrType$32, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$87, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$88, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$89, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$47, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref, ptrType$45, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref, ptrType$90, true)[1]) { $s = 9; continue; } - /* */ if ($assertType(_ref, ptrType$23, true)[1]) { $s = 10; continue; } - /* */ if ($assertType(_ref, ptrType$39, true)[1]) { $s = 11; continue; } + /* */ if ($assertType(_ref, ptrType$33, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$92, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$93, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$94, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$50, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref, ptrType$47, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref, ptrType$95, true)[1]) { $s = 9; continue; } + /* */ if ($assertType(_ref, ptrType$24, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref, ptrType$41, true)[1]) { $s = 11; continue; } /* */ if ($assertType(_ref, ptrType$17, true)[1]) { $s = 12; continue; } /* */ if ($assertType(_ref, ptrType$15, true)[1]) { $s = 13; continue; } - /* */ if ($assertType(_ref, ptrType$91, true)[1]) { $s = 14; continue; } + /* */ if ($assertType(_ref, ptrType$96, true)[1]) { $s = 14; continue; } /* */ $s = 15; continue; - /* switch (0) { default: if ($assertType(_ref, ptrType$32, true)[1]) { */ case 1: + /* switch (0) { default: if ($assertType(_ref, ptrType$33, true)[1]) { */ case 1: e = _ref.$val; if ($equal(e.Ref, ref, ast.Ref)) { p.ignoreUsage($clone(ref, ast.Ref)); $s = -1; return [replacement, 1]; } $s = 15; continue; - /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 2: + /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 2: e$1 = _ref.$val; _r = p.substituteSingleUseSymbolInExpr($clone(e$1.Value, js_ast.Expr), $clone(ref, ast.Ref), $clone(replacement, js_ast.Expr), replacementCanBeRemoved); /* */ $s = 16; case 16: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; @@ -177534,7 +178777,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $s = -1; return [expr, status]; } $s = 15; continue; - /* } else if ($assertType(_ref, ptrType$87, true)[1]) { */ case 3: + /* } else if ($assertType(_ref, ptrType$92, true)[1]) { */ case 3: e$2 = _ref.$val; _r$1 = p.substituteSingleUseSymbolInExpr($clone(e$2.Value, js_ast.Expr), $clone(ref, ast.Ref), $clone(replacement, js_ast.Expr), replacementCanBeRemoved); /* */ $s = 17; case 17: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$1 = _r$1; @@ -177545,7 +178788,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $s = -1; return [expr, status$1]; } $s = 15; continue; - /* } else if ($assertType(_ref, ptrType$88, true)[1]) { */ case 4: + /* } else if ($assertType(_ref, ptrType$93, true)[1]) { */ case 4: e$3 = _ref.$val; /* */ if (!($interfaceIsEqual(e$3.ValueOrNil.Data, $ifaceNil))) { $s = 18; continue; } /* */ $s = 19; continue; @@ -177560,7 +178803,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } /* } */ case 19: $s = 15; continue; - /* } else if ($assertType(_ref, ptrType$89, true)[1]) { */ case 5: + /* } else if ($assertType(_ref, ptrType$94, true)[1]) { */ case 5: e$4 = _ref.$val; _r$3 = p.substituteSingleUseSymbolInExpr($clone(e$4.Expr, js_ast.Expr), $clone(ref, ast.Ref), $clone(replacement, js_ast.Expr), replacementCanBeRemoved); /* */ $s = 21; case 21: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _tuple$3 = _r$3; @@ -177579,7 +178822,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $s = -1; return [expr, 0]; /* } */ case 23: $s = 15; continue; - /* } else if ($assertType(_ref, ptrType$47, true)[1]) { */ case 6: + /* } else if ($assertType(_ref, ptrType$50, true)[1]) { */ case 6: e$5 = _ref.$val; _1 = e$5.Op; /* */ if ((_1 === (8)) || (_1 === (10)) || (_1 === (7)) || (_1 === (9)) || (_1 === (6))) { $s = 27; continue; } @@ -177598,7 +178841,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* } */ case 29: case 26: $s = 15; continue; - /* } else if ($assertType(_ref, ptrType$25, true)[1]) { */ case 7: + /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 7: e$6 = _ref.$val; _r$6 = p.substituteSingleUseSymbolInExpr($clone(e$6.Target, js_ast.Expr), $clone(ref, ast.Ref), $clone(replacement, js_ast.Expr), replacementCanBeRemoved); /* */ $s = 31; case 31: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _tuple$5 = _r$6; @@ -177609,7 +178852,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $s = -1; return [expr, status$5]; } $s = 15; continue; - /* } else if ($assertType(_ref, ptrType$45, true)[1]) { */ case 8: + /* } else if ($assertType(_ref, ptrType$47, true)[1]) { */ case 8: e$7 = _ref.$val; /* */ if (new js_ast.OpCode(e$7.Op).BinaryAssignTarget() === 0) { $s = 32; continue; } _r$7 = $clone(p.astHelpers, js_ast.HelperContext).ExprCanBeRemovedIfUnused($clone(e$7.Left, js_ast.Expr)); /* */ $s = 36; case 36: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } @@ -177640,7 +178883,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $s = -1; return [expr, status$7]; } $s = 15; continue; - /* } else if ($assertType(_ref, ptrType$90, true)[1]) { */ case 9: + /* } else if ($assertType(_ref, ptrType$95, true)[1]) { */ case 9: e$8 = _ref.$val; _r$10 = p.substituteSingleUseSymbolInExpr($clone(e$8.Test, js_ast.Expr), $clone(ref, ast.Ref), $clone(replacement, js_ast.Expr), replacementCanBeRemoved); /* */ $s = 39; case 39: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } _tuple$8 = _r$10; @@ -177674,7 +178917,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } /* } */ case 41: $s = 15; continue; - /* } else if ($assertType(_ref, ptrType$23, true)[1]) { */ case 10: + /* } else if ($assertType(_ref, ptrType$24, true)[1]) { */ case 10: e$9 = _ref.$val; _r$13 = p.substituteSingleUseSymbolInExpr($clone(e$9.Target, js_ast.Expr), $clone(ref, ast.Ref), $clone(replacement, js_ast.Expr), replacementCanBeRemoved); /* */ $s = 44; case 44: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } _tuple$11 = _r$13; @@ -177697,14 +178940,14 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } /* } */ case 46: $s = 15; continue; - /* } else if ($assertType(_ref, ptrType$39, true)[1]) { */ case 11: + /* } else if ($assertType(_ref, ptrType$41, true)[1]) { */ case 11: e$10 = _ref.$val; - _tuple$13 = $assertType(replacement.Data, ptrType$25, true); + _tuple$13 = $assertType(replacement.Data, ptrType$26, true); isDot = _tuple$13[1]; - _tuple$14 = $assertType(replacement.Data, ptrType$23, true); + _tuple$14 = $assertType(replacement.Data, ptrType$24, true); isIndex = _tuple$14[1]; if (isDot || isIndex) { - _tuple$15 = $assertType(e$10.Target.Data, ptrType$32, true); + _tuple$15 = $assertType(e$10.Target.Data, ptrType$33, true); id = _tuple$15[0]; ok = _tuple$15[1]; if (ok && $equal(id.Ref, ref, ast.Ref)) { @@ -177798,7 +179041,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $s = 57; continue; case 58: $s = 15; continue; - /* } else if ($assertType(_ref, ptrType$91, true)[1]) { */ case 14: + /* } else if ($assertType(_ref, ptrType$96, true)[1]) { */ case 14: e$13 = _ref.$val; /* */ if (!($interfaceIsEqual(e$13.TagOrNil.Data, $ifaceNil))) { $s = 65; continue; } /* */ $s = 66; continue; @@ -177864,7 +179107,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { var {_r, _r$1, _tuple, _tuple$1, block, fn, hasIfScope, kind, ok, ok$1, p, stmt, stmts, $s, $r, $c} = $restore(this, {stmt, kind}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; - _tuple = $assertType(stmt.Data, ptrType$48, true); + _tuple = $assertType(stmt.Data, ptrType$49, true); block = _tuple[0]; ok = _tuple[1]; /* */ if (ok) { $s = 1; continue; } @@ -177937,7 +179180,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* while (true) { */ case 6: /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 7; continue; } i = _i; - d = (x = s$1.Decls, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + d = (x = s$1.Decls, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + i, ptrType$91))); $r = p.visitBinding($clone(d.Binding, js_ast.Binding), $clone(new bindingOpts.ptr(false), bindingOpts)); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* */ if (!($interfaceIsEqual(d.ValueOrNil.Data, $ifaceNil))) { $s = 9; continue; } /* */ $s = 10; continue; @@ -177969,15 +179212,15 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; _ref = binding.Data; - /* */ if ($assertType(_ref, ptrType$92, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$34, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$51, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$52, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$97, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$35, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$53, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$54, true)[1]) { $s = 4; continue; } /* */ $s = 5; continue; - /* if ($assertType(_ref, ptrType$92, true)[1]) { */ case 1: + /* if ($assertType(_ref, ptrType$97, true)[1]) { */ case 1: b = _ref.$val; $s = 6; continue; - /* } else if ($assertType(_ref, ptrType$34, true)[1]) { */ case 2: + /* } else if ($assertType(_ref, ptrType$35, true)[1]) { */ case 2: b$1 = _ref.$val; p.recordDeclaredSymbol($clone(b$1.Ref, ast.Ref)); name = (x = p.symbols, x$1 = b$1.Ref.InnerIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).OriginalName; @@ -178006,19 +179249,19 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* } */ case 12: /* } */ case 9: $s = 6; continue; - /* } else if ($assertType(_ref, ptrType$51, true)[1]) { */ case 3: + /* } else if ($assertType(_ref, ptrType$53, true)[1]) { */ case 3: b$2 = _ref.$val; _ref$1 = b$2.Items; _i = 0; /* while (true) { */ case 17: /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 18; continue; } i = _i; - item = (x$2 = b$2.Items, ((i < 0 || i >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i])); + item = (x$2 = b$2.Items, ((i < 0 || i >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$2.$array, x$2.$offset + i, ptrType$98))); $r = p.visitBinding($clone(item.Binding, js_ast.Binding), $clone(opts, bindingOpts)); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* */ if (!($interfaceIsEqual(item.DefaultValueOrNil.Data, $ifaceNil))) { $s = 20; continue; } /* */ $s = 21; continue; /* if (!($interfaceIsEqual(item.DefaultValueOrNil.Data, $ifaceNil))) { */ case 20: - _tuple = $assertType(item.Binding.Data, ptrType$34, true); + _tuple = $assertType(item.Binding.Data, ptrType$35, true); id = _tuple[0]; ok = _tuple[1]; if (ok) { @@ -178032,7 +179275,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $s = 17; continue; case 18: $s = 6; continue; - /* } else if ($assertType(_ref, ptrType$52, true)[1]) { */ case 4: + /* } else if ($assertType(_ref, ptrType$54, true)[1]) { */ case 4: b$3 = _ref.$val; _ref$2 = b$3.Properties; _i$1 = 0; @@ -178051,7 +179294,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ if (!($interfaceIsEqual(property.DefaultValueOrNil.Data, $ifaceNil))) { $s = 29; continue; } /* */ $s = 30; continue; /* if (!($interfaceIsEqual(property.DefaultValueOrNil.Data, $ifaceNil))) { */ case 29: - _tuple$2 = $assertType(property.Value.Data, ptrType$34, true); + _tuple$2 = $assertType(property.Value.Data, ptrType$35, true); id$1 = _tuple$2[0]; ok$1 = _tuple$2[1]; if (ok$1) { @@ -178076,7 +179319,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { statementCaresAboutScope = function statementCaresAboutScope$1(stmt) { var _ref, s, s$1, s$2, stmt; _ref = stmt.Data; - if ($assertType(_ref, ptrType$48, true)[1] || $assertType(_ref, ptrType$38, true)[1] || $assertType(_ref, ptrType$78, true)[1] || $assertType(_ref, ptrType$13, true)[1] || $assertType(_ref, ptrType$42, true)[1] || $assertType(_ref, ptrType$44, true)[1] || $assertType(_ref, ptrType$81, true)[1] || $assertType(_ref, ptrType$82, true)[1] || $assertType(_ref, ptrType$80, true)[1] || $assertType(_ref, ptrType$79, true)[1] || $assertType(_ref, ptrType$93, true)[1] || $assertType(_ref, ptrType$86, true)[1] || $assertType(_ref, ptrType$43, true)[1] || $assertType(_ref, ptrType$40, true)[1] || $assertType(_ref, ptrType$41, true)[1] || $assertType(_ref, ptrType$64, true)[1] || $assertType(_ref, ptrType$65, true)[1] || $assertType(_ref, ptrType$55, true)[1] || $assertType(_ref, ptrType$83, true)[1]) { + if ($assertType(_ref, ptrType$49, true)[1] || $assertType(_ref, ptrType$40, true)[1] || $assertType(_ref, ptrType$82, true)[1] || $assertType(_ref, ptrType$13, true)[1] || $assertType(_ref, ptrType$44, true)[1] || $assertType(_ref, ptrType$46, true)[1] || $assertType(_ref, ptrType$85, true)[1] || $assertType(_ref, ptrType$86, true)[1] || $assertType(_ref, ptrType$84, true)[1] || $assertType(_ref, ptrType$83, true)[1] || $assertType(_ref, ptrType$99, true)[1] || $assertType(_ref, ptrType$90, true)[1] || $assertType(_ref, ptrType$45, true)[1] || $assertType(_ref, ptrType$42, true)[1] || $assertType(_ref, ptrType$43, true)[1] || $assertType(_ref, ptrType$67, true)[1] || $assertType(_ref, ptrType$68, true)[1] || $assertType(_ref, ptrType$58, true)[1] || $assertType(_ref, ptrType$87, true)[1]) { s = _ref; return false; } else if ($assertType(_ref, ptrType$10, true)[1]) { @@ -178089,7 +179332,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { }; dropFirstStatement = function dropFirstStatement$1(body, replaceOrNil) { var _tuple, block, body, ok, replaceOrNil, x, x$1, x$2; - _tuple = $assertType(body.Data, ptrType$48, true); + _tuple = $assertType(body.Data, ptrType$49, true); block = _tuple[0]; ok = _tuple[1]; if (ok && block.Stmts.$length > 0) { @@ -178110,22 +179353,22 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { mangleFor = function mangleFor$1(s) { var _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, block, breakS, breakS$1, first, ifS, not, ok, ok$1, ok$2, ok$3, ok$4, s, unary, x; first = $clone(s.Body, js_ast.Stmt); - _tuple = $assertType(first.Data, ptrType$48, true); + _tuple = $assertType(first.Data, ptrType$49, true); block = _tuple[0]; ok = _tuple[1]; if (ok && block.Stmts.$length > 0) { js_ast.Stmt.copy(first, (x = block.Stmts, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))); } - _tuple$1 = $assertType(first.Data, ptrType$42, true); + _tuple$1 = $assertType(first.Data, ptrType$44, true); ifS = _tuple$1[0]; ok$1 = _tuple$1[1]; if (ok$1) { - _tuple$2 = $assertType(ifS.Yes.Data, ptrType$64, true); + _tuple$2 = $assertType(ifS.Yes.Data, ptrType$67, true); breakS = _tuple$2[0]; ok$2 = _tuple$2[1]; if (ok$2 && breakS.Label === ptrType$12.nil) { not = new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)); - _tuple$3 = $assertType(ifS.Test.Data, ptrType$47, true); + _tuple$3 = $assertType(ifS.Test.Data, ptrType$50, true); unary = _tuple$3[0]; ok$3 = _tuple$3[1]; if (ok$3 && (unary.Op === 3)) { @@ -178142,7 +179385,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { return; } if (!($interfaceIsEqual(ifS.NoOrNil.Data, $ifaceNil))) { - _tuple$4 = $assertType(ifS.NoOrNil.Data, ptrType$64, true); + _tuple$4 = $assertType(ifS.NoOrNil.Data, ptrType$67, true); breakS$1 = _tuple$4[0]; ok$4 = _tuple$4[1]; if (ok$4 && breakS$1.Label === ptrType$12.nil) { @@ -178159,7 +179402,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { }; appendIfOrLabelBodyPreservingScope = function appendIfOrLabelBodyPreservingScope$1(stmts, body) { var _i, _ref, _tuple, block, body, keepBlock, ok, stmt, stmts; - _tuple = $assertType(body.Data, ptrType$48, true); + _tuple = $assertType(body.Data, ptrType$49, true); block = _tuple[0]; ok = _tuple[1]; if (ok) { @@ -178252,7 +179495,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ if ($interfaceIsEqual(s.NoOrNil.Data, $ifaceNil)) { $s = 21; continue; } /* */ $s = 22; continue; /* if ($interfaceIsEqual(s.NoOrNil.Data, $ifaceNil)) { */ case 21: - _tuple$2 = $assertType(s.Test.Data, ptrType$47, true); + _tuple$2 = $assertType(s.Test.Data, ptrType$50, true); not = _tuple$2[0]; ok$2 = _tuple$2[1]; if (ok$2 && (not.Op === 3)) { @@ -178274,7 +179517,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* } */ case 23: $s = 20; continue; /* } else { */ case 19: - _tuple$4 = $assertType(s.Yes.Data, ptrType$38, true); + _tuple$4 = $assertType(s.Yes.Data, ptrType$40, true); ok$4 = _tuple$4[1]; /* */ if (ok$4) { $s = 27; continue; } /* */ $s = 28; continue; @@ -178296,7 +179539,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { no$1 = _tuple$5[0]; ok$5 = _tuple$5[1]; if (ok$5) { - _tuple$6 = $assertType(s.Test.Data, ptrType$47, true); + _tuple$6 = $assertType(s.Test.Data, ptrType$50, true); not$1 = _tuple$6[0]; ok$6 = _tuple$6[1]; if (ok$6 && (not$1.Op === 3)) { @@ -178305,7 +179548,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { js_ast.Expr.copy(expr, js_ast.JoinWithLeftAssociativeOp(31, $clone(s.Test, js_ast.Expr), $clone(no$1.Value, js_ast.Expr))); } } else { - _tuple$7 = $assertType(s.Test.Data, ptrType$47, true); + _tuple$7 = $assertType(s.Test.Data, ptrType$50, true); not$2 = _tuple$7[0]; ok$7 = _tuple$7[1]; if (ok$7 && (not$2.Op === 3)) { @@ -178322,7 +179565,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $s = 29; continue; /* } else { */ case 28: if (!($interfaceIsEqual(s.NoOrNil.Data, $ifaceNil))) { - _tuple$8 = $assertType(s.Test.Data, ptrType$47, true); + _tuple$8 = $assertType(s.Test.Data, ptrType$50, true); not$3 = _tuple$8[0]; ok$8 = _tuple$8[1]; if (ok$8 && (not$3.Op === 3)) { @@ -178333,7 +179576,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { js_ast.Stmt.copy(s.NoOrNil, _tmp$1); } } else { - _tuple$9 = $assertType(s.Yes.Data, ptrType$42, true); + _tuple$9 = $assertType(s.Yes.Data, ptrType$44, true); s2 = _tuple$9[0]; ok$9 = _tuple$9[1]; if (ok$9 && $interfaceIsEqual(s2.NoOrNil.Data, $ifaceNil)) { @@ -178357,7 +179600,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { var name, p, value; p = this; js_ast.Expr.copy(value, p.callRuntime($clone(value.Loc, logger.Loc), "__name", new sliceType$6([$clone(value, js_ast.Expr), $clone(new js_ast.Expr.ptr(new js_ast.EString.ptr(helpers.StringToUTF16(name), new logger.Loc.ptr(0), false, false, false), $clone(value.Loc, logger.Loc)), js_ast.Expr)]))); - $assertType(value.Data, ptrType$39).CanBeUnwrappedIfUnused = true; + $assertType(value.Data, ptrType$41).CanBeUnwrappedIfUnused = true; return value; }; $ptrType(parser).prototype.keepClassOrFnSymbolName = function keepClassOrFnSymbolName(loc, expr, name) { @@ -178366,7 +179609,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { return new js_ast.Stmt.ptr(new js_ast.SExpr.ptr($clone(p.callRuntime($clone(loc, logger.Loc), "__name", new sliceType$6([$clone(expr, js_ast.Expr), $clone(new js_ast.Expr.ptr(new js_ast.EString.ptr(helpers.StringToUTF16(name), new logger.Loc.ptr(0), false, false, false), $clone(loc, logger.Loc)), js_ast.Expr)])), js_ast.Expr), true), $clone(loc, logger.Loc)); }; $ptrType(parser).prototype.visitAndAppendStmt = function visitAndAppendStmt(stmts, stmt) { - var {$24r, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _i, _i$1, _i$10, _i$11, _i$12, _i$13, _i$14, _i$15, _i$16, _i$17, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _i$8, _i$9, _key, _key$1, _key$10, _key$11, _key$12, _key$2, _key$3, _key$4, _key$5, _key$6, _key$7, _key$8, _key$9, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _r$5, _r$50, _r$51, _r$52, _r$53, _r$54, _r$55, _r$56, _r$57, _r$58, _r$59, _r$6, _r$60, _r$61, _r$62, _r$63, _r$64, _r$65, _r$66, _r$67, _r$68, _r$69, _r$7, _r$70, _r$71, _r$72, _r$73, _r$74, _r$75, _r$76, _r$77, _r$8, _r$9, _ref, _ref$1, _ref$10, _ref$11, _ref$12, _ref$13, _ref$14, _ref$15, _ref$16, _ref$17, _ref$18, _ref$19, _ref$2, _ref$20, _ref$21, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _ref$9, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$2, _tuple$20, _tuple$21, _tuple$22, _tuple$23, _tuple$24, _tuple$25, _tuple$26, _tuple$27, _tuple$28, _tuple$29, _tuple$3, _tuple$30, _tuple$31, _tuple$32, _tuple$33, _tuple$34, _tuple$35, _tuple$36, _tuple$37, _tuple$38, _tuple$39, _tuple$4, _tuple$40, _tuple$41, _tuple$42, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, allValuesArePure, arg, arg$1, assign, assign$1, assignTarget, block, body, boolean$1, boolean$2, boolean$3, c, c$1, c$2, c$3, c$4, cases, child, childStmt, classStmt, classStmt$1, classStmts, classStmts$1, clone, d, decl, decl$1, decl$2, e, e$1, e$2, end, end$1, exportedMembers, finallyNeedsBlock, fn, fn$1, forS, hasNumericValue, hasSideEffectFreeArguments, hasStringValue, i, i$1, i$2, i$3, id, id$1, id$2, id$3, id$4, id$5, init, init$1, init$2, inlined, isAlwaysDead, isLoop, isTaken, item, item$1, item$2, keepCatch, local, local$1, local$2, lowered, member, member$1, member$2, name, name$1, name$2, name$3, name$4, name$5, name$6, name$7, name$8, nameToExport, nextNumericValue, notes, ok, ok$1, ok$10, ok$11, ok$12, ok$13, ok$14, ok$15, ok$16, ok$17, ok$18, ok$19, ok$2, ok$20, ok$21, ok$22, ok$23, ok$24, ok$25, ok$26, ok$27, ok$28, ok$29, ok$3, ok$30, ok$31, ok$32, ok$33, ok$34, ok$35, ok$36, ok$37, ok$4, ok$5, ok$6, ok$7, ok$8, ok$9, old, old$1, old$2, old$3, old$4, oldEnclosingNamespaceArgRef, oldIsInsideSwitch, oldShouldFoldTypeScriptConstantExpressions, oldShouldFoldTypeScriptConstantExpressions$1, p, r, r$1, r$2, r$3, ref, ref$1, ref$2, replacement, replacement$1, result, result$1, result$2, ret, retID, s, s$1, s$10, s$11, s$12, s$13, s$14, s$15, s$16, s$17, s$18, s$19, s$2, s$20, s$21, s$22, s$23, s$24, s$25, s$26, s$27, s$28, s$29, s$3, s$30, s$31, s$4, s$5, s$6, s$7, s$8, s$9, s2, s2$1, s2$2, s2$3, s2$4, s2$5, scope, shouldDropLabel, shouldTrimUnsightlyPrimitives, sideEffects, sideEffects$1, stmt, stmt2, stmt2$1, stmts, stmtsInsideNamespace, str, symbol, symbol$1, t, target, testOrNil, try$1, tsTopLevelEnumValues, underlyingValue, value, value$1, value$2, valueExprs, wasAfterAfterConstLocalPrefix, wasExportInsideNamespace, wrapIdentifier, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$25, x$26, x$27, x$28, x$29, x$3, x$30, x$31, x$32, x$33, x$34, x$35, x$36, x$37, x$38, x$39, x$4, x$40, x$41, x$42, x$43, x$44, x$45, x$46, x$47, x$48, x$49, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {stmts, stmt}); + var {$24r, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _i, _i$1, _i$10, _i$11, _i$12, _i$13, _i$14, _i$15, _i$16, _i$17, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _i$8, _i$9, _key, _key$1, _key$10, _key$11, _key$12, _key$2, _key$3, _key$4, _key$5, _key$6, _key$7, _key$8, _key$9, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _r$5, _r$50, _r$51, _r$52, _r$53, _r$54, _r$55, _r$56, _r$57, _r$58, _r$59, _r$6, _r$60, _r$61, _r$62, _r$63, _r$64, _r$65, _r$66, _r$67, _r$68, _r$69, _r$7, _r$70, _r$71, _r$72, _r$73, _r$74, _r$75, _r$76, _r$77, _r$8, _r$9, _ref, _ref$1, _ref$10, _ref$11, _ref$12, _ref$13, _ref$14, _ref$15, _ref$16, _ref$17, _ref$18, _ref$19, _ref$2, _ref$20, _ref$21, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _ref$9, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$2, _tuple$20, _tuple$21, _tuple$22, _tuple$23, _tuple$24, _tuple$25, _tuple$26, _tuple$27, _tuple$28, _tuple$29, _tuple$3, _tuple$30, _tuple$31, _tuple$32, _tuple$33, _tuple$34, _tuple$35, _tuple$36, _tuple$37, _tuple$38, _tuple$39, _tuple$4, _tuple$40, _tuple$41, _tuple$42, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, allValuesArePure, arg, arg$1, assign, assign$1, assignTarget, block, body, boolean$1, boolean$2, boolean$3, c, c$1, c$2, c$3, c$4, cases, child, childStmt, classStmt, classStmt$1, classStmts, classStmts$1, clone, d, decl, decl$1, decl$2, e, e$1, e$2, end, end$1, exportedMembers, finallyNeedsBlock, fn, fn$1, forS, hasNumericValue, hasSideEffectFreeArguments, hasStringValue, i, i$1, i$2, i$3, id, id$1, id$2, id$3, id$4, id$5, init, init$1, init$2, inlined, isAlwaysDead, isLoop, isTaken, item, item$1, item$2, keepCatch, local, local$1, local$2, lowered, member, member$1, member$2, name, name$1, name$2, name$3, name$4, name$5, name$6, name$7, name$8, nameToExport, nextNumericValue, notes, ok, ok$1, ok$10, ok$11, ok$12, ok$13, ok$14, ok$15, ok$16, ok$17, ok$18, ok$19, ok$2, ok$20, ok$21, ok$22, ok$23, ok$24, ok$25, ok$26, ok$27, ok$28, ok$29, ok$3, ok$30, ok$31, ok$32, ok$33, ok$34, ok$35, ok$36, ok$37, ok$4, ok$5, ok$6, ok$7, ok$8, ok$9, old, old$1, old$2, old$3, old$4, oldEnclosingNamespaceArgRef, oldIsInsideSwitch, oldShouldFoldTypeScriptConstantExpressions, oldShouldFoldTypeScriptConstantExpressions$1, p, r, r$1, r$2, r$3, ref, ref$1, ref$2, replacement, replacement$1, result, result$1, result$2, ret, retID, s, s$1, s$10, s$11, s$12, s$13, s$14, s$15, s$16, s$17, s$18, s$19, s$2, s$20, s$21, s$22, s$23, s$24, s$25, s$26, s$27, s$28, s$29, s$3, s$30, s$31, s$4, s$5, s$6, s$7, s$8, s$9, s2, s2$1, s2$2, s2$3, s2$4, s2$5, scope, shouldDropLabel, shouldTrimUnsightlyPrimitives, sideEffects, sideEffects$1, stmt, stmt2, stmt2$1, stmts, stmtsInsideNamespace, str, symbol, symbol$1, t, target, testOrNil, try$1, tsTopLevelEnumValues, underlyingValue, value, value$1, value$2, valueExprs, wasAfterAfterConstLocalPrefix, wasExportInsideNamespace, wrapIdentifier, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$25, x$26, x$27, x$28, x$29, x$3, x$30, x$31, x$32, x$33, x$34, x$35, x$36, x$37, x$38, x$39, x$4, x$40, x$41, x$42, x$43, x$44, x$45, x$46, x$47, x$48, x$49, x$5, x$50, x$51, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {stmts, stmt}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: block = [block]; clone = [clone]; @@ -178376,54 +179619,54 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { wasAfterAfterConstLocalPrefix = p[0].currentScope.IsAfterConstLocalPrefix; p[0].currentScope.IsAfterConstLocalPrefix = true; _ref = stmt.Data; - /* */ if ($assertType(_ref, ptrType$38, true)[1] || $assertType(_ref, ptrType$84, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$78, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$73, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$55, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$56, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$59, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType$57, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref, ptrType$58, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref, ptrType$31, true)[1]) { $s = 9; continue; } - /* */ if ($assertType(_ref, ptrType$85, true)[1]) { $s = 10; continue; } - /* */ if ($assertType(_ref, ptrType$64, true)[1]) { $s = 11; continue; } - /* */ if ($assertType(_ref, ptrType$65, true)[1]) { $s = 12; continue; } - /* */ if ($assertType(_ref, ptrType$83, true)[1]) { $s = 13; continue; } + /* */ if ($assertType(_ref, ptrType$40, true)[1] || $assertType(_ref, ptrType$88, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$82, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$77, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$58, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$59, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$62, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$60, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref, ptrType$61, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref, ptrType$32, true)[1]) { $s = 9; continue; } + /* */ if ($assertType(_ref, ptrType$89, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref, ptrType$67, true)[1]) { $s = 11; continue; } + /* */ if ($assertType(_ref, ptrType$68, true)[1]) { $s = 12; continue; } + /* */ if ($assertType(_ref, ptrType$87, true)[1]) { $s = 13; continue; } /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 14; continue; } /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 15; continue; } - /* */ if ($assertType(_ref, ptrType$41, true)[1]) { $s = 16; continue; } - /* */ if ($assertType(_ref, ptrType$40, true)[1]) { $s = 17; continue; } - /* */ if ($assertType(_ref, ptrType$48, true)[1]) { $s = 18; continue; } - /* */ if ($assertType(_ref, ptrType$93, true)[1]) { $s = 19; continue; } - /* */ if ($assertType(_ref, ptrType$79, true)[1]) { $s = 20; continue; } - /* */ if ($assertType(_ref, ptrType$80, true)[1]) { $s = 21; continue; } - /* */ if ($assertType(_ref, ptrType$42, true)[1]) { $s = 22; continue; } - /* */ if ($assertType(_ref, ptrType$44, true)[1]) { $s = 23; continue; } - /* */ if ($assertType(_ref, ptrType$81, true)[1]) { $s = 24; continue; } - /* */ if ($assertType(_ref, ptrType$82, true)[1]) { $s = 25; continue; } - /* */ if ($assertType(_ref, ptrType$86, true)[1]) { $s = 26; continue; } - /* */ if ($assertType(_ref, ptrType$43, true)[1]) { $s = 27; continue; } + /* */ if ($assertType(_ref, ptrType$43, true)[1]) { $s = 16; continue; } + /* */ if ($assertType(_ref, ptrType$42, true)[1]) { $s = 17; continue; } + /* */ if ($assertType(_ref, ptrType$49, true)[1]) { $s = 18; continue; } + /* */ if ($assertType(_ref, ptrType$99, true)[1]) { $s = 19; continue; } + /* */ if ($assertType(_ref, ptrType$83, true)[1]) { $s = 20; continue; } + /* */ if ($assertType(_ref, ptrType$84, true)[1]) { $s = 21; continue; } + /* */ if ($assertType(_ref, ptrType$44, true)[1]) { $s = 22; continue; } + /* */ if ($assertType(_ref, ptrType$46, true)[1]) { $s = 23; continue; } + /* */ if ($assertType(_ref, ptrType$85, true)[1]) { $s = 24; continue; } + /* */ if ($assertType(_ref, ptrType$86, true)[1]) { $s = 25; continue; } + /* */ if ($assertType(_ref, ptrType$90, true)[1]) { $s = 26; continue; } + /* */ if ($assertType(_ref, ptrType$45, true)[1]) { $s = 27; continue; } /* */ if ($assertType(_ref, ptrType$6, true)[1]) { $s = 28; continue; } /* */ if ($assertType(_ref, ptrType$7, true)[1]) { $s = 29; continue; } /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 30; continue; } /* */ if ($assertType(_ref, ptrType$8, true)[1]) { $s = 31; continue; } /* */ $s = 32; continue; - /* if ($assertType(_ref, ptrType$38, true)[1] || $assertType(_ref, ptrType$84, true)[1]) { */ case 1: + /* if ($assertType(_ref, ptrType$40, true)[1] || $assertType(_ref, ptrType$88, true)[1]) { */ case 1: s$1 = _ref; p[0].currentScope.IsAfterConstLocalPrefix = wasAfterAfterConstLocalPrefix; $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$78, true)[1]) { */ case 2: + /* } else if ($assertType(_ref, ptrType$82, true)[1]) { */ case 2: s$2 = _ref.$val; p[0].currentScope.IsAfterConstLocalPrefix = wasAfterAfterConstLocalPrefix; if (p[0].options.optionsThatSupportStructuralEquality.dropDebugger) { $s = -1; return stmts; } $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$73, true)[1]) { */ case 3: + /* } else if ($assertType(_ref, ptrType$77, true)[1]) { */ case 3: s$3 = _ref.$val; p[0].currentScope.IsAfterConstLocalPrefix = wasAfterAfterConstLocalPrefix; $s = -1; return stmts; - /* } else if ($assertType(_ref, ptrType$55, true)[1]) { */ case 4: + /* } else if ($assertType(_ref, ptrType$58, true)[1]) { */ case 4: s$4 = _ref.$val; p[0].currentScope.IsAfterConstLocalPrefix = wasAfterAfterConstLocalPrefix; /* */ if (p[0].isStrictMode() && s$4.LegacyOctalLoc.Start > 0) { $s = 34; continue; } @@ -178432,13 +179675,13 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $r = p[0].markStrictModeFeature(6, $clone(p[0].source.RangeOfLegacyOctalEscape($clone(s$4.LegacyOctalLoc, logger.Loc)), logger.Range), ""); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 35: $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$56, true)[1]) { */ case 5: + /* } else if ($assertType(_ref, ptrType$59, true)[1]) { */ case 5: s$5 = _ref.$val; p[0].recordDeclaredSymbol($clone(s$5.NamespaceRef, ast.Ref)); if (!(s$5.DefaultName === ptrType$12.nil)) { p[0].recordDeclaredSymbol($clone(s$5.DefaultName.Ref, ast.Ref)); } - if (!(s$5.Items === ptrType$75.nil)) { + if (!(s$5.Items === ptrType$79.nil)) { _ref$1 = s$5.Items.$get(); _i = 0; while (true) { @@ -178449,7 +179692,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } } $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$59, true)[1]) { */ case 6: + /* } else if ($assertType(_ref, ptrType$62, true)[1]) { */ case 6: s$6 = _ref.$val; end = 0; _ref$2 = s$6.Items; @@ -178484,7 +179727,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { case 38: s$6.Items = $subslice(s$6.Items, 0, end); $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$57, true)[1]) { */ case 7: + /* } else if ($assertType(_ref, ptrType$60, true)[1]) { */ case 7: s$7 = _ref.$val; name$1 = p[0].loadNameFromRef($clone(s$7.NamespaceRef, ast.Ref)); ast.Ref.copy(s$7.NamespaceRef, p[0].newSymbol(27, name$1)); @@ -178504,20 +179747,20 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { _i$2++; } $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$58, true)[1]) { */ case 8: + /* } else if ($assertType(_ref, ptrType$61, true)[1]) { */ case 8: s$8 = _ref.$val; name$3 = p[0].loadNameFromRef($clone(s$8.NamespaceRef, ast.Ref)); ast.Ref.copy(s$8.NamespaceRef, p[0].newSymbol(27, name$3)); p[0].currentScope.Generated = $append(p[0].currentScope.Generated, s$8.NamespaceRef); p[0].recordDeclaredSymbol($clone(s$8.NamespaceRef, ast.Ref)); - if (!(s$8.Alias === ptrType$74.nil)) { + if (!(s$8.Alias === ptrType$78.nil)) { if (p[0].options.optionsThatSupportStructuralEquality.unsupportedJSFeatures.Has(new compat.JSFeature(0, 8388608))) { p[0].recordUsage($clone(s$8.NamespaceRef, ast.Ref)); - $s = -1; return $append(stmts, new js_ast.Stmt.ptr(new js_ast.SImport.ptr(ptrType$12.nil, ptrType$75.nil, s$8.Alias.Loc, $clone(s$8.NamespaceRef, ast.Ref), s$8.ImportRecordIndex, false), $clone(stmt.Loc, logger.Loc)), new js_ast.Stmt.ptr(new js_ast.SExportClause.ptr(new sliceType$19([$clone(new js_ast.ClauseItem.ptr(s$8.Alias.OriginalName, s$8.Alias.OriginalName, $clone(s$8.Alias.Loc, logger.Loc), $clone(new ast.LocRef.ptr($clone(s$8.Alias.Loc, logger.Loc), $clone(s$8.NamespaceRef, ast.Ref)), ast.LocRef)), js_ast.ClauseItem)]), true), $clone(stmt.Loc, logger.Loc))); + $s = -1; return $append(stmts, new js_ast.Stmt.ptr(new js_ast.SImport.ptr(ptrType$12.nil, ptrType$79.nil, s$8.Alias.Loc, $clone(s$8.NamespaceRef, ast.Ref), s$8.ImportRecordIndex, false), $clone(stmt.Loc, logger.Loc)), new js_ast.Stmt.ptr(new js_ast.SExportClause.ptr(new sliceType$19([$clone(new js_ast.ClauseItem.ptr(s$8.Alias.OriginalName, s$8.Alias.OriginalName, $clone(s$8.Alias.Loc, logger.Loc), $clone(new ast.LocRef.ptr($clone(s$8.Alias.Loc, logger.Loc), $clone(s$8.NamespaceRef, ast.Ref)), ast.LocRef)), js_ast.ClauseItem)]), true), $clone(stmt.Loc, logger.Loc))); } } $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$31, true)[1]) { */ case 9: + /* } else if ($assertType(_ref, ptrType$32, true)[1]) { */ case 9: s$9 = _ref.$val; p[0].recordDeclaredSymbol($clone(s$9.DefaultName.Ref, ast.Ref)); _ref$4 = s$9.Value.Data; @@ -178532,7 +179775,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { _r$2 = p[0].visitExpr($clone(s2.Value, js_ast.Expr)); /* */ $s = 51; case 51: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } js_ast.Expr.copy(s2.Value, _r$2); if (p[0].options.optionsThatSupportStructuralEquality.ts.Parse) { - _tuple = $assertType(s2.Value.Data, ptrType$32, true); + _tuple = $assertType(s2.Value.Data, ptrType$33, true); id = _tuple[0]; ok = _tuple[1]; if (ok) { @@ -178600,7 +179843,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { (x$14 = p[0].symbols, x$15 = s$9.DefaultName.Ref.InnerIndex, ((x$15 < 0 || x$15 >= x$14.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + x$15])).OriginalName = p[0].source.IdentifierName + "_default"; } $s = -1; return stmts; - /* } else if ($assertType(_ref, ptrType$85, true)[1]) { */ case 10: + /* } else if ($assertType(_ref, ptrType$89, true)[1]) { */ case 10: s$10 = _ref.$val; _arg$3 = $clone(new js_ast.Expr.ptr(new js_ast.EDot.ptr($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(p[0].moduleRef, ast.Ref), false, false, false), $clone(stmt.Loc, logger.Loc)), js_ast.Expr), "exports", $clone(stmt.Loc, logger.Loc), 0, false, false, false), $clone(stmt.Loc, logger.Loc)), js_ast.Expr); _r$5 = p[0].visitExpr($clone(s$10.Value, js_ast.Expr)); /* */ $s = 55; case 55: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } @@ -178609,7 +179852,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { stmts = $append(stmts, _r$6); p[0].recordUsage($clone(p[0].moduleRef, ast.Ref)); $s = -1; return stmts; - /* } else if ($assertType(_ref, ptrType$64, true)[1]) { */ case 11: + /* } else if ($assertType(_ref, ptrType$67, true)[1]) { */ case 11: s$11 = _ref.$val; /* */ if (!(s$11.Label === ptrType$12.nil)) { $s = 57; continue; } /* */ if (!p[0].fnOrArrowDataVisit.isInsideLoop && !p[0].fnOrArrowDataVisit.isInsideSwitch) { $s = 58; continue; } @@ -178625,7 +179868,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $r = $clone(p[0].log, logger.Log).AddError(p[0].tracker, $clone(r$1, logger.Range), "Cannot use \"break\" here:"); /* */ $s = 61; case 61: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 59: $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$65, true)[1]) { */ case 12: + /* } else if ($assertType(_ref, ptrType$68, true)[1]) { */ case 12: s$12 = _ref.$val; /* */ if (!(s$12.Label === ptrType$12.nil)) { $s = 62; continue; } /* */ if (!p[0].fnOrArrowDataVisit.isInsideLoop) { $s = 63; continue; } @@ -178657,7 +179900,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $r = $clone(p[0].log, logger.Log).AddError(p[0].tracker, $clone(r$3, logger.Range), "Cannot use \"continue\" here:"); /* */ $s = 70; case 70: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 64: $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$83, true)[1]) { */ case 13: + /* } else if ($assertType(_ref, ptrType$87, true)[1]) { */ case 13: s$13 = _ref.$val; /* */ if (p[0].isStrictMode()) { $s = 71; continue; } /* */ $s = 72; continue; @@ -178705,7 +179948,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { case 81: ast.LocRef.copy(p[0].currentScope.Label, new ast.LocRef.ptr($clone(s$13.Name.Loc, logger.Loc), $clone(ref$2, ast.Ref))); _ref$6 = s$13.Stmt.Data; - if ($assertType(_ref$6, ptrType$44, true)[1] || $assertType(_ref$6, ptrType$81, true)[1] || $assertType(_ref$6, ptrType$82, true)[1] || $assertType(_ref$6, ptrType$79, true)[1] || $assertType(_ref$6, ptrType$80, true)[1]) { + if ($assertType(_ref$6, ptrType$46, true)[1] || $assertType(_ref$6, ptrType$85, true)[1] || $assertType(_ref$6, ptrType$86, true)[1] || $assertType(_ref$6, ptrType$83, true)[1] || $assertType(_ref$6, ptrType$84, true)[1]) { p[0].currentScope.LabelStmtIsLoop = true; } _tuple$6 = (_entry$2 = $mapIndex(p[0].dropLabelsMap,$String.keyFor(name$7)), _entry$2 !== undefined ? [_entry$2.v, true] : [new structType.ptr(), false]); @@ -178722,7 +179965,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $s = -1; return stmts; } if (p[0].options.optionsThatSupportStructuralEquality.minifySyntax) { - _tuple$7 = $assertType(s$13.Stmt.Data, ptrType$64, true); + _tuple$7 = $assertType(s$13.Stmt.Data, ptrType$67, true); child = _tuple$7[0]; ok$4 = _tuple$7[1]; if (ok$4 && !(child.Label === ptrType$12.nil) && $equal(child.Label.Ref, s$13.Name.Ref, ast.Ref)) { @@ -178732,11 +179975,11 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $s = -1; return appendIfOrLabelBodyPreservingScope(stmts, $clone(s$13.Stmt, js_ast.Stmt)); } } - _tuple$8 = $assertType(s$13.Stmt.Data, ptrType$86, true); + _tuple$8 = $assertType(s$13.Stmt.Data, ptrType$90, true); try$1 = _tuple$8[0]; ok$5 = _tuple$8[1]; if (ok$5 && (try$1.Block.Stmts.$length === 1)) { - _tuple$9 = $assertType((x$20 = try$1.Block.Stmts, (0 >= x$20.$length ? ($throwRuntimeError("index out of range"), undefined) : x$20.$array[x$20.$offset + 0])).Data, ptrType$44, true); + _tuple$9 = $assertType((x$20 = try$1.Block.Stmts, (0 >= x$20.$length ? ($throwRuntimeError("index out of range"), undefined) : x$20.$array[x$20.$offset + 0])).Data, ptrType$46, true); ok$6 = _tuple$9[1]; if (ok$6) { js_ast.Stmt.copy((x$22 = try$1.Block.Stmts, (0 >= x$22.$length ? ($throwRuntimeError("index out of range"), undefined) : x$22.$array[x$22.$offset + 0])), new js_ast.Stmt.ptr(new js_ast.SLabel.ptr($clone((x$21 = try$1.Block.Stmts, (0 >= x$21.$length ? ($throwRuntimeError("index out of range"), undefined) : x$21.$array[x$21.$offset + 0])), js_ast.Stmt), $clone(s$13.Name, ast.LocRef), s$13.IsSingleLineStmt), $clone(stmt.Loc, logger.Loc))); @@ -178766,14 +180009,14 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* while (true) { */ case 95: /* if (!(_i$4 < _ref$7.$length)) { break; } */ if(!(_i$4 < _ref$7.$length)) { $s = 96; continue; } i$1 = _i$4; - d = (x$23 = s$14.Decls, ((i$1 < 0 || i$1 >= x$23.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$23.$array[x$23.$offset + i$1])); + d = (x$23 = s$14.Decls, ((i$1 < 0 || i$1 >= x$23.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$23.$array, x$23.$offset + i$1, ptrType$91))); $r = p[0].visitBinding($clone(d.Binding, js_ast.Binding), $clone(new bindingOpts.ptr(false), bindingOpts)); /* */ $s = 97; case 97: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* */ if (!($interfaceIsEqual(d.ValueOrNil.Data, $ifaceNil))) { $s = 98; continue; } /* */ $s = 99; continue; /* if (!($interfaceIsEqual(d.ValueOrNil.Data, $ifaceNil))) { */ case 98: oldShouldFoldTypeScriptConstantExpressions = p[0].shouldFoldTypeScriptConstantExpressions; p[0].shouldFoldTypeScriptConstantExpressions = p[0].options.optionsThatSupportStructuralEquality.minifySyntax && !p[0].currentScope.IsAfterConstLocalPrefix; - _tuple$10 = $assertType(d.Binding.Data, ptrType$34, true); + _tuple$10 = $assertType(d.Binding.Data, ptrType$35, true); id$1 = _tuple$10[0]; ok$7 = _tuple$10[1]; if (ok$7) { @@ -178784,10 +180027,10 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { js_ast.Expr.copy(d.ValueOrNil, _r$15); p[0].shouldFoldTypeScriptConstantExpressions = oldShouldFoldTypeScriptConstantExpressions; if (p[0].options.optionsThatSupportStructuralEquality.minifySyntax && (s$14.Kind === 1)) { - _tuple$11 = $assertType(d.Binding.Data, ptrType$34, true); + _tuple$11 = $assertType(d.Binding.Data, ptrType$35, true); ok$8 = _tuple$11[1]; if (ok$8) { - _tuple$12 = $assertType(d.ValueOrNil.Data, ptrType$33, true); + _tuple$12 = $assertType(d.ValueOrNil.Data, ptrType$34, true); ok$9 = _tuple$12[1]; if (ok$9) { js_ast.Expr.copy(d.ValueOrNil, new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0))); @@ -178799,7 +180042,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { str = _tuple$13[0]; ok$10 = _tuple$13[1]; if (ok$10) { - _tuple$14 = $assertType(d.Binding.Data, ptrType$34, true); + _tuple$14 = $assertType(d.Binding.Data, ptrType$35, true); id$2 = _tuple$14[0]; ok$11 = _tuple$14[1]; if (ok$11) { @@ -178812,7 +180055,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } /* } */ case 99: if (p[0].options.optionsThatSupportStructuralEquality.minifySyntax && !p[0].currentScope.IsAfterConstLocalPrefix) { - _tuple$15 = $assertType(d.Binding.Data, ptrType$34, true); + _tuple$15 = $assertType(d.Binding.Data, ptrType$35, true); id$3 = _tuple$15[0]; ok$12 = _tuple$15[1]; if (ok$12) { @@ -178841,13 +180084,13 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ $s = 102; continue; /* if (s$14.IsExport && !(p[0].enclosingNamespaceArgRef === ptrType$11.nil)) { */ case 101: wrapIdentifier = (function(block, clone, p, s) { return function parser·visitAndAppendStmt·func1(loc, ref$3) { - var {$24r, _r$16, loc, ref$3, x$26, x$27, $s, $r, $c} = $restore(this, {loc, ref$3}); + var {$24r, _r$16, loc, ref$3, x$26, x$27, x$28, x$29, $s, $r, $c} = $restore(this, {loc, ref$3}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p[0].recordUsage($clone(p[0].enclosingNamespaceArgRef, ast.Ref)); - _r$16 = p[0].dotOrMangledPropVisit($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(p[0].enclosingNamespaceArgRef, ast.Ref), false, false, false), $clone(loc, logger.Loc)), js_ast.Expr), (x$26 = p[0].symbols, x$27 = ref$3.InnerIndex, ((x$27 < 0 || x$27 >= x$26.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$26.$array[x$26.$offset + x$27])).OriginalName, $clone(loc, logger.Loc)); /* */ $s = 1; case 1: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + p[0].recordUsage($clone((x$26 = p[0].enclosingNamespaceArgRef, (x$26 === ptrType$11.nil && $throwNilPointerError(), x$26)), ast.Ref)); + _r$16 = p[0].dotOrMangledPropVisit($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone((x$27 = p[0].enclosingNamespaceArgRef, (x$27 === ptrType$11.nil && $throwNilPointerError(), x$27)), ast.Ref), false, false, false), $clone(loc, logger.Loc)), js_ast.Expr), (x$28 = p[0].symbols, x$29 = ref$3.InnerIndex, ((x$29 < 0 || x$29 >= x$28.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$28.$array[x$28.$offset + x$29])).OriginalName, $clone(loc, logger.Loc)); /* */ $s = 1; case 1: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } $24r = new js_ast.Expr.ptr(_r$16, $clone(loc, logger.Loc)); $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: parser·visitAndAppendStmt·func1, $c: true, $r, $24r, _r$16, loc, ref$3, x$26, x$27, $s};return $f; + /* */ } return; } var $f = {$blk: parser·visitAndAppendStmt·func1, $c: true, $r, $24r, _r$16, loc, ref$3, x$26, x$27, x$28, x$29, $s};return $f; }; })(block, clone, p, s); _ref$8 = s$14.Decls; _i$5 = 0; @@ -178927,12 +180170,12 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } /* } */ case 115: $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$41, true)[1]) { */ case 16: + /* } else if ($assertType(_ref, ptrType$43, true)[1]) { */ case 16: s$16 = _ref.$val; _r$22 = p[0].visitExpr($clone(s$16.Value, js_ast.Expr)); /* */ $s = 117; case 117: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } js_ast.Expr.copy(s$16.Value, _r$22); $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$40, true)[1]) { */ case 17: + /* } else if ($assertType(_ref, ptrType$42, true)[1]) { */ case 17: s$17 = _ref.$val; /* */ if (p[0].fnOrArrowDataVisit.isOutsideFnOrArrow) { $s = 118; continue; } /* */ $s = 119; continue; @@ -178954,7 +180197,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { _r$23 = p[0].visitExpr($clone(s$17.ValueOrNil, js_ast.Expr)); /* */ $s = 126; case 126: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } js_ast.Expr.copy(s$17.ValueOrNil, _r$23); if (p[0].options.optionsThatSupportStructuralEquality.minifySyntax && (!p[0].fnOrArrowDataVisit.isAsync || !p[0].fnOrArrowDataVisit.isGenerator)) { - _tuple$19 = $assertType(s$17.ValueOrNil.Data, ptrType$33, true); + _tuple$19 = $assertType(s$17.ValueOrNil.Data, ptrType$34, true); ok$15 = _tuple$19[1]; if (ok$15) { js_ast.Expr.copy(s$17.ValueOrNil, new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0))); @@ -178962,7 +180205,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } /* } */ case 125: $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$48, true)[1]) { */ case 18: + /* } else if ($assertType(_ref, ptrType$49, true)[1]) { */ case 18: s$18 = _ref.$val; $r = p[0].pushScopeForVisitPass(0, $clone(stmt.Loc, logger.Loc)); /* */ $s = 127; case 127: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* */ if ($interfaceIsEqual(p[0].loopBody, s$18)) { $s = 128; continue; } @@ -178984,7 +180227,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } } $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$93, true)[1]) { */ case 19: + /* } else if ($assertType(_ref, ptrType$99, true)[1]) { */ case 19: s$19 = _ref.$val; $r = p[0].markStrictModeFeature(0, $clone(js_lexer.RangeOfIdentifier($clone(p[0].source, logger.Source), $clone(stmt.Loc, logger.Loc)), logger.Range), ""); /* */ $s = 133; case 133: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _r$26 = p[0].visitExpr($clone(s$19.Value, js_ast.Expr)); /* */ $s = 134; case 134: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } @@ -178994,7 +180237,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { js_ast.Stmt.copy(s$19.Body, _r$27); p[0].popScope(); $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$79, true)[1]) { */ case 20: + /* } else if ($assertType(_ref, ptrType$83, true)[1]) { */ case 20: s$20 = _ref.$val; _r$28 = p[0].visitExpr($clone(s$20.Test, js_ast.Expr)); /* */ $s = 137; case 137: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } js_ast.Expr.copy(s$20.Test, _r$28); @@ -179018,7 +180261,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { js_ast.Stmt.copy(stmt, new js_ast.Stmt.ptr(forS, $clone(stmt.Loc, logger.Loc))); /* } */ case 140: $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$80, true)[1]) { */ case 21: + /* } else if ($assertType(_ref, ptrType$84, true)[1]) { */ case 21: s$21 = _ref.$val; _r$31 = p[0].visitLoopBody($clone(s$21.Body, js_ast.Stmt)); /* */ $s = 142; case 142: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } js_ast.Stmt.copy(s$21.Body, _r$31); @@ -179031,7 +180274,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { js_ast.Expr.copy(s$21.Test, _r$33); /* } */ case 145: $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$42, true)[1]) { */ case 22: + /* } else if ($assertType(_ref, ptrType$44, true)[1]) { */ case 22: s$22 = _ref.$val; _r$34 = p[0].visitExpr($clone(s$22.Test, js_ast.Expr)); /* */ $s = 147; case 147: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } js_ast.Expr.copy(s$22.Test, _r$34); @@ -179074,7 +180317,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { js_ast.Stmt.copy(s$22.NoOrNil, _r$39); /* } */ case 160: if (p[0].options.optionsThatSupportStructuralEquality.minifySyntax) { - _tuple$22 = $assertType(s$22.NoOrNil.Data, ptrType$38, true); + _tuple$22 = $assertType(s$22.NoOrNil.Data, ptrType$40, true); ok$18 = _tuple$22[1]; if (ok$18) { js_ast.Stmt.copy(s$22.NoOrNil, new js_ast.Stmt.ptr($ifaceNil, new logger.Loc.ptr(0))); @@ -179089,7 +180332,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $s = 166; case 166: return $24r; /* } */ case 164: $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$44, true)[1]) { */ case 23: + /* } else if ($assertType(_ref, ptrType$46, true)[1]) { */ case 23: s$23 = _ref.$val; $r = p[0].pushScopeForVisitPass(0, $clone(stmt.Loc, logger.Loc)); /* */ $s = 167; case 167: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* */ if (!($interfaceIsEqual(s$23.InitOrNil.Data, $ifaceNil))) { $s = 168; continue; } @@ -179152,7 +180395,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { mangleFor(s$23); } $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$81, true)[1]) { */ case 24: + /* } else if ($assertType(_ref, ptrType$85, true)[1]) { */ case 24: s$24 = _ref.$val; $r = p[0].pushScopeForVisitPass(0, $clone(stmt.Loc, logger.Loc)); /* */ $s = 186; case 186: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _r$47 = p[0].visitForLoopInit($clone(s$24.Init, js_ast.Stmt), true); /* */ $s = 187; case 187: if($c) { $c = false; _r$47 = _r$47.$blk(); } if (_r$47 && _r$47.$blk !== undefined) { break s; } @@ -179167,8 +180410,8 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ if (ok$22 && (local.Kind === 0) && (local.Decls.$length === 1)) { $s = 190; continue; } /* */ $s = 191; continue; /* if (ok$22 && (local.Kind === 0) && (local.Decls.$length === 1)) { */ case 190: - decl$2 = (x$28 = local.Decls, (0 >= x$28.$length ? ($throwRuntimeError("index out of range"), undefined) : x$28.$array[x$28.$offset + 0])); - _tuple$27 = $assertType(decl$2.Binding.Data, ptrType$34, true); + decl$2 = (x$28 = local.Decls, (0 >= x$28.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$28.$array, x$28.$offset + 0, ptrType$91))); + _tuple$27 = $assertType(decl$2.Binding.Data, ptrType$35, true); id$4 = _tuple$27[0]; ok$23 = _tuple$27[1]; /* */ if (ok$23 && !($interfaceIsEqual(decl$2.ValueOrNil.Data, $ifaceNil))) { $s = 192; continue; } @@ -179196,7 +180439,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { p[0].popScope(); $r = p[0].lowerObjectRestInForLoopInit($clone(s$24.Init, js_ast.Stmt), s$24.Body); /* */ $s = 198; case 198: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$82, true)[1]) { */ case 25: + /* } else if ($assertType(_ref, ptrType$86, true)[1]) { */ case 25: s$25 = _ref.$val; /* */ if (s$25.Await.Len > 0 && p[0].fnOrArrowDataVisit.isOutsideFnOrArrow) { $s = 199; continue; } /* */ $s = 200; continue; @@ -179277,11 +180520,11 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $s = -1; return p[0].lowerForAwaitLoop($clone(stmt.Loc, logger.Loc), s$25, stmts); } $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$86, true)[1]) { */ case 26: + /* } else if ($assertType(_ref, ptrType$90, true)[1]) { */ case 26: s$26 = _ref.$val; $r = p[0].pushScopeForVisitPass(0, $clone(stmt.Loc, logger.Loc)); /* */ $s = 230; case 230: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } if (p[0].fnOrArrowDataVisit.tryBodyCount === 0) { - if (!(s$26.Catch === ptrType$49.nil)) { + if (!(s$26.Catch === ptrType$51.nil)) { logger.Loc.copy(p[0].fnOrArrowDataVisit.tryCatchLoc, s$26.Catch.Loc); } else { logger.Loc.copy(p[0].fnOrArrowDataVisit.tryCatchLoc, stmt.Loc); @@ -179292,9 +180535,9 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { s$26.Block.Stmts = _r$57; p[0].fnOrArrowDataVisit.tryBodyCount = p[0].fnOrArrowDataVisit.tryBodyCount - (1) >> 0; p[0].popScope(); - /* */ if (!(s$26.Catch === ptrType$49.nil)) { $s = 232; continue; } + /* */ if (!(s$26.Catch === ptrType$51.nil)) { $s = 232; continue; } /* */ $s = 233; continue; - /* if (!(s$26.Catch === ptrType$49.nil)) { */ case 232: + /* if (!(s$26.Catch === ptrType$51.nil)) { */ case 232: old$3 = p[0].isControlFlowDead; if (s$26.Block.Stmts.$length === 0) { p[0].isControlFlowDead = true; @@ -179313,9 +180556,9 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { p[0].popScope(); p[0].isControlFlowDead = old$3; /* } */ case 233: - /* */ if (!(s$26.Finally === ptrType$50.nil)) { $s = 241; continue; } + /* */ if (!(s$26.Finally === ptrType$52.nil)) { $s = 241; continue; } /* */ $s = 242; continue; - /* if (!(s$26.Finally === ptrType$50.nil)) { */ case 241: + /* if (!(s$26.Finally === ptrType$52.nil)) { */ case 241: $r = p[0].pushScopeForVisitPass(0, $clone(s$26.Finally.Loc, logger.Loc)); /* */ $s = 243; case 243: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _r$59 = p[0].visitStmts(s$26.Finally.Block.Stmts, 0); /* */ $s = 244; case 244: if($c) { $c = false; _r$59 = _r$59.$blk(); } if (_r$59 && _r$59.$blk !== undefined) { break s; } s$26.Finally.Block.Stmts = _r$59; @@ -179323,7 +180566,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* } */ case 242: if (p[0].options.optionsThatSupportStructuralEquality.minifySyntax && (s$26.Block.Stmts.$length === 0)) { keepCatch = false; - if (!(s$26.Catch === ptrType$49.nil)) { + if (!(s$26.Catch === ptrType$51.nil)) { _ref$10 = s$26.Catch.Block.Stmts; _i$7 = 0; while (true) { @@ -179337,7 +180580,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } } if (!keepCatch) { - if (s$26.Finally === ptrType$50.nil) { + if (s$26.Finally === ptrType$52.nil) { $s = -1; return stmts; } finallyNeedsBlock = false; @@ -179360,7 +180603,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } } $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$43, true)[1]) { */ case 27: + /* } else if ($assertType(_ref, ptrType$45, true)[1]) { */ case 27: s$27 = _ref.$val; _r$60 = p[0].visitExpr($clone(s$27.Test, js_ast.Expr)); /* */ $s = 245; case 245: if($c) { $c = false; _r$60 = _r$60.$blk(); } if (_r$60 && _r$60.$blk !== undefined) { break s; } js_ast.Expr.copy(s$27.Test, _r$60); @@ -179372,7 +180615,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* while (true) { */ case 247: /* if (!(_i$9 < _ref$12.$length)) { break; } */ if(!(_i$9 < _ref$12.$length)) { $s = 248; continue; } i$2 = _i$9; - c = (x$29 = s$27.Cases, ((i$2 < 0 || i$2 >= x$29.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$29.$array[x$29.$offset + i$2])); + c = (x$29 = s$27.Cases, ((i$2 < 0 || i$2 >= x$29.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$29.$array, x$29.$offset + i$2, ptrType$100))); /* */ if (!($interfaceIsEqual(c.ValueOrNil.Data, $ifaceNil))) { $s = 249; continue; } /* */ $s = 250; continue; /* if (!($interfaceIsEqual(c.ValueOrNil.Data, $ifaceNil))) { */ case 249: @@ -179502,7 +180745,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { while (true) { if (!(_i$13 < _ref$16.$length)) { break; } arg = $clone(((_i$13 < 0 || _i$13 >= _ref$16.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$16.$array[_ref$16.$offset + _i$13]), js_ast.Arg); - _tuple$35 = $assertType(arg.Binding.Data, ptrType$34, true); + _tuple$35 = $assertType(arg.Binding.Data, ptrType$35, true); ok$31 = _tuple$35[1]; if (!ok$31) { hasSideEffectFreeArguments = false; @@ -179516,15 +180759,15 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } else if ((s$28.Fn.Args.$length === 1) && (s$28.Fn.Body.Block.Stmts.$length === 1)) { arg$1 = $clone((x$38 = s$28.Fn.Args, (0 >= x$38.$length ? ($throwRuntimeError("index out of range"), undefined) : x$38.$array[x$38.$offset + 0])), js_ast.Arg); if ($interfaceIsEqual(arg$1.DefaultOrNil.Data, $ifaceNil)) { - _tuple$36 = $assertType(arg$1.Binding.Data, ptrType$34, true); + _tuple$36 = $assertType(arg$1.Binding.Data, ptrType$35, true); id$5 = _tuple$36[0]; ok$32 = _tuple$36[1]; if (ok$32) { - _tuple$37 = $assertType((x$39 = s$28.Fn.Body.Block.Stmts, (0 >= x$39.$length ? ($throwRuntimeError("index out of range"), undefined) : x$39.$array[x$39.$offset + 0])).Data, ptrType$40, true); + _tuple$37 = $assertType((x$39 = s$28.Fn.Body.Block.Stmts, (0 >= x$39.$length ? ($throwRuntimeError("index out of range"), undefined) : x$39.$array[x$39.$offset + 0])).Data, ptrType$42, true); ret = _tuple$37[0]; ok$33 = _tuple$37[1]; if (ok$33) { - _tuple$38 = $assertType(ret.ValueOrNil.Data, ptrType$32, true); + _tuple$38 = $assertType(ret.ValueOrNil.Data, ptrType$33, true); retID = _tuple$38[0]; ok$34 = _tuple$38[1]; if (ok$34 && $equal(id$5.Ref, retID.Ref, ast.Ref)) { @@ -179539,7 +180782,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ $s = 278; continue; /* if (s$28.IsExport && !(p[0].enclosingNamespaceArgRef === ptrType$11.nil)) { */ case 277: s$28.IsExport = false; - _r$67 = p[0].dotOrMangledPropVisit($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(p[0].enclosingNamespaceArgRef, ast.Ref), false, false, false), $clone(stmt.Loc, logger.Loc)), js_ast.Expr), (x$44 = p[0].symbols, x$45 = s$28.Fn.Name.Ref.InnerIndex, ((x$45 < 0 || x$45 >= x$44.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$44.$array[x$44.$offset + x$45])).OriginalName, $clone(s$28.Fn.Name.Loc, logger.Loc)); /* */ $s = 280; case 280: if($c) { $c = false; _r$67 = _r$67.$blk(); } if (_r$67 && _r$67.$blk !== undefined) { break s; } + _r$67 = p[0].dotOrMangledPropVisit($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone((x$44 = p[0].enclosingNamespaceArgRef, (x$44 === ptrType$11.nil && $throwNilPointerError(), x$44)), ast.Ref), false, false, false), $clone(stmt.Loc, logger.Loc)), js_ast.Expr), (x$45 = p[0].symbols, x$46 = s$28.Fn.Name.Ref.InnerIndex, ((x$46 < 0 || x$46 >= x$45.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$45.$array[x$45.$offset + x$46])).OriginalName, $clone(s$28.Fn.Name.Loc, logger.Loc)); /* */ $s = 280; case 280: if($c) { $c = false; _r$67 = _r$67.$blk(); } if (_r$67 && _r$67.$blk !== undefined) { break s; } _r$68 = js_ast.AssignStmt($clone(new js_ast.Expr.ptr(_r$67, $clone(stmt.Loc, logger.Loc)), js_ast.Expr), $clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(s$28.Fn.Name.Ref, ast.Ref), false, false, false), $clone(s$28.Fn.Name.Loc, logger.Loc)), js_ast.Expr)); /* */ $s = 281; case 281: if($c) { $c = false; _r$68 = _r$68.$blk(); } if (_r$68 && _r$68.$blk !== undefined) { break s; } stmts = $append(stmts, stmt, _r$68); $s = 279; continue; @@ -179547,7 +180790,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { stmts = $append(stmts, stmt); /* } */ case 279: if (p[0].options.optionsThatSupportStructuralEquality.keepNames) { - symbol$1 = (x$46 = p[0].symbols, x$47 = s$28.Fn.Name.Ref.InnerIndex, ((x$47 < 0 || x$47 >= x$46.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$46.$array[x$46.$offset + x$47])); + symbol$1 = (x$47 = p[0].symbols, x$48 = s$28.Fn.Name.Ref.InnerIndex, ((x$48 < 0 || x$48 >= x$47.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$47.$array, x$47.$offset + x$48, ptrType$23))); symbol$1.Flags = (symbol$1.Flags | (4)) >>> 0; fn$1 = new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(s$28.Fn.Name.Ref, ast.Ref), false, false, false), $clone(s$28.Fn.Name.Loc, logger.Loc)); stmts = $append(stmts, p[0].keepClassOrFnSymbolName($clone(s$28.Fn.Name.Loc, logger.Loc), $clone(fn$1, js_ast.Expr), symbol$1.OriginalName)); @@ -179560,7 +180803,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { nameToExport = ""; wasExportInsideNamespace = s$29.IsExport && !(p[0].enclosingNamespaceArgRef === ptrType$11.nil); if (wasExportInsideNamespace) { - nameToExport = (x$48 = p[0].symbols, x$49 = s$29.Class.Name.Ref.InnerIndex, ((x$49 < 0 || x$49 >= x$48.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$48.$array[x$48.$offset + x$49])).OriginalName; + nameToExport = (x$49 = p[0].symbols, x$50 = s$29.Class.Name.Ref.InnerIndex, ((x$50 < 0 || x$50 >= x$49.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$49.$array[x$49.$offset + x$50])).OriginalName; s$29.IsExport = false; } _r$70 = p[0].lowerClass($clone(stmt, js_ast.Stmt), $clone(new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), js_ast.Expr), $clone(result$2, visitClassResult), ""); /* */ $s = 283; case 283: if($c) { $c = false; _r$70 = _r$70.$blk(); } if (_r$70 && _r$70.$blk !== undefined) { break s; } @@ -179585,7 +180828,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ if (wasExportInsideNamespace) { $s = 284; continue; } /* */ $s = 285; continue; /* if (wasExportInsideNamespace) { */ case 284: - _r$71 = p[0].dotOrMangledPropVisit($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(p[0].enclosingNamespaceArgRef, ast.Ref), false, false, false), $clone(stmt.Loc, logger.Loc)), js_ast.Expr), nameToExport, $clone(s$29.Class.Name.Loc, logger.Loc)); /* */ $s = 286; case 286: if($c) { $c = false; _r$71 = _r$71.$blk(); } if (_r$71 && _r$71.$blk !== undefined) { break s; } + _r$71 = p[0].dotOrMangledPropVisit($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone((x$51 = p[0].enclosingNamespaceArgRef, (x$51 === ptrType$11.nil && $throwNilPointerError(), x$51)), ast.Ref), false, false, false), $clone(stmt.Loc, logger.Loc)), js_ast.Expr), nameToExport, $clone(s$29.Class.Name.Loc, logger.Loc)); /* */ $s = 286; case 286: if($c) { $c = false; _r$71 = _r$71.$blk(); } if (_r$71 && _r$71.$blk !== undefined) { break s; } _r$72 = js_ast.AssignStmt($clone(new js_ast.Expr.ptr(_r$71, $clone(stmt.Loc, logger.Loc)), js_ast.Expr), $clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(s$29.Class.Name.Ref, ast.Ref), false, false, false), $clone(s$29.Class.Name.Loc, logger.Loc)), js_ast.Expr)); /* */ $s = 287; case 287: if($c) { $c = false; _r$72 = _r$72.$blk(); } if (_r$72 && _r$72.$blk !== undefined) { break s; } stmts = $append(stmts, _r$72); /* } */ case 285: @@ -179633,7 +180876,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { js_ast.Expr.copy(value$2.ValueOrNil, _r$73); hasNumericValue = false; underlyingValue = $clone(value$2.ValueOrNil, js_ast.Expr); - _tuple$41 = $assertType(value$2.ValueOrNil.Data, ptrType$67, true); + _tuple$41 = $assertType(value$2.ValueOrNil.Data, ptrType$70, true); inlined = _tuple$41[0]; ok$36 = _tuple$41[1]; if (ok$36) { @@ -179749,7 +180992,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { p[0].enclosingNamespaceArgRef = s[0].Arg; $r = p[0].pushScopeForVisitPass(6, $clone(stmt.Loc, logger.Loc)); /* */ $s = 311; case 311: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } p[0].recordDeclaredSymbol($clone(s[0].Arg, ast.Ref)); - _r$76 = p[0].visitStmtsAndPrependTempRefs(s[0].Stmts, $clone(new prependTempRefsOpts.ptr(ptrType$76.nil, 3), prependTempRefsOpts)); /* */ $s = 312; case 312: if($c) { $c = false; _r$76 = _r$76.$blk(); } if (_r$76 && _r$76.$blk !== undefined) { break s; } + _r$76 = p[0].visitStmtsAndPrependTempRefs(s[0].Stmts, $clone(new prependTempRefsOpts.ptr(ptrType$80.nil, 3), prependTempRefsOpts)); /* */ $s = 312; case 312: if($c) { $c = false; _r$76 = _r$76.$blk(); } if (_r$76 && _r$76.$blk !== undefined) { break s; } stmtsInsideNamespace = _r$76; p[0].popScope(); p[0].enclosingNamespaceArgRef = oldEnclosingNamespaceArgRef; @@ -179762,12 +181005,12 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* } */ case 33: stmts = $append(stmts, stmt); $s = -1; return stmts; - /* */ } return; } var $f = {$blk: visitAndAppendStmt, $c: true, $r, $24r, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _i, _i$1, _i$10, _i$11, _i$12, _i$13, _i$14, _i$15, _i$16, _i$17, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _i$8, _i$9, _key, _key$1, _key$10, _key$11, _key$12, _key$2, _key$3, _key$4, _key$5, _key$6, _key$7, _key$8, _key$9, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _r$5, _r$50, _r$51, _r$52, _r$53, _r$54, _r$55, _r$56, _r$57, _r$58, _r$59, _r$6, _r$60, _r$61, _r$62, _r$63, _r$64, _r$65, _r$66, _r$67, _r$68, _r$69, _r$7, _r$70, _r$71, _r$72, _r$73, _r$74, _r$75, _r$76, _r$77, _r$8, _r$9, _ref, _ref$1, _ref$10, _ref$11, _ref$12, _ref$13, _ref$14, _ref$15, _ref$16, _ref$17, _ref$18, _ref$19, _ref$2, _ref$20, _ref$21, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _ref$9, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$2, _tuple$20, _tuple$21, _tuple$22, _tuple$23, _tuple$24, _tuple$25, _tuple$26, _tuple$27, _tuple$28, _tuple$29, _tuple$3, _tuple$30, _tuple$31, _tuple$32, _tuple$33, _tuple$34, _tuple$35, _tuple$36, _tuple$37, _tuple$38, _tuple$39, _tuple$4, _tuple$40, _tuple$41, _tuple$42, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, allValuesArePure, arg, arg$1, assign, assign$1, assignTarget, block, body, boolean$1, boolean$2, boolean$3, c, c$1, c$2, c$3, c$4, cases, child, childStmt, classStmt, classStmt$1, classStmts, classStmts$1, clone, d, decl, decl$1, decl$2, e, e$1, e$2, end, end$1, exportedMembers, finallyNeedsBlock, fn, fn$1, forS, hasNumericValue, hasSideEffectFreeArguments, hasStringValue, i, i$1, i$2, i$3, id, id$1, id$2, id$3, id$4, id$5, init, init$1, init$2, inlined, isAlwaysDead, isLoop, isTaken, item, item$1, item$2, keepCatch, local, local$1, local$2, lowered, member, member$1, member$2, name, name$1, name$2, name$3, name$4, name$5, name$6, name$7, name$8, nameToExport, nextNumericValue, notes, ok, ok$1, ok$10, ok$11, ok$12, ok$13, ok$14, ok$15, ok$16, ok$17, ok$18, ok$19, ok$2, ok$20, ok$21, ok$22, ok$23, ok$24, ok$25, ok$26, ok$27, ok$28, ok$29, ok$3, ok$30, ok$31, ok$32, ok$33, ok$34, ok$35, ok$36, ok$37, ok$4, ok$5, ok$6, ok$7, ok$8, ok$9, old, old$1, old$2, old$3, old$4, oldEnclosingNamespaceArgRef, oldIsInsideSwitch, oldShouldFoldTypeScriptConstantExpressions, oldShouldFoldTypeScriptConstantExpressions$1, p, r, r$1, r$2, r$3, ref, ref$1, ref$2, replacement, replacement$1, result, result$1, result$2, ret, retID, s, s$1, s$10, s$11, s$12, s$13, s$14, s$15, s$16, s$17, s$18, s$19, s$2, s$20, s$21, s$22, s$23, s$24, s$25, s$26, s$27, s$28, s$29, s$3, s$30, s$31, s$4, s$5, s$6, s$7, s$8, s$9, s2, s2$1, s2$2, s2$3, s2$4, s2$5, scope, shouldDropLabel, shouldTrimUnsightlyPrimitives, sideEffects, sideEffects$1, stmt, stmt2, stmt2$1, stmts, stmtsInsideNamespace, str, symbol, symbol$1, t, target, testOrNil, try$1, tsTopLevelEnumValues, underlyingValue, value, value$1, value$2, valueExprs, wasAfterAfterConstLocalPrefix, wasExportInsideNamespace, wrapIdentifier, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$25, x$26, x$27, x$28, x$29, x$3, x$30, x$31, x$32, x$33, x$34, x$35, x$36, x$37, x$38, x$39, x$4, x$40, x$41, x$42, x$43, x$44, x$45, x$46, x$47, x$48, x$49, x$5, x$6, x$7, x$8, x$9, $s};return $f; + /* */ } return; } var $f = {$blk: visitAndAppendStmt, $c: true, $r, $24r, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _i, _i$1, _i$10, _i$11, _i$12, _i$13, _i$14, _i$15, _i$16, _i$17, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _i$8, _i$9, _key, _key$1, _key$10, _key$11, _key$12, _key$2, _key$3, _key$4, _key$5, _key$6, _key$7, _key$8, _key$9, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _r$5, _r$50, _r$51, _r$52, _r$53, _r$54, _r$55, _r$56, _r$57, _r$58, _r$59, _r$6, _r$60, _r$61, _r$62, _r$63, _r$64, _r$65, _r$66, _r$67, _r$68, _r$69, _r$7, _r$70, _r$71, _r$72, _r$73, _r$74, _r$75, _r$76, _r$77, _r$8, _r$9, _ref, _ref$1, _ref$10, _ref$11, _ref$12, _ref$13, _ref$14, _ref$15, _ref$16, _ref$17, _ref$18, _ref$19, _ref$2, _ref$20, _ref$21, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _ref$9, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$2, _tuple$20, _tuple$21, _tuple$22, _tuple$23, _tuple$24, _tuple$25, _tuple$26, _tuple$27, _tuple$28, _tuple$29, _tuple$3, _tuple$30, _tuple$31, _tuple$32, _tuple$33, _tuple$34, _tuple$35, _tuple$36, _tuple$37, _tuple$38, _tuple$39, _tuple$4, _tuple$40, _tuple$41, _tuple$42, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, allValuesArePure, arg, arg$1, assign, assign$1, assignTarget, block, body, boolean$1, boolean$2, boolean$3, c, c$1, c$2, c$3, c$4, cases, child, childStmt, classStmt, classStmt$1, classStmts, classStmts$1, clone, d, decl, decl$1, decl$2, e, e$1, e$2, end, end$1, exportedMembers, finallyNeedsBlock, fn, fn$1, forS, hasNumericValue, hasSideEffectFreeArguments, hasStringValue, i, i$1, i$2, i$3, id, id$1, id$2, id$3, id$4, id$5, init, init$1, init$2, inlined, isAlwaysDead, isLoop, isTaken, item, item$1, item$2, keepCatch, local, local$1, local$2, lowered, member, member$1, member$2, name, name$1, name$2, name$3, name$4, name$5, name$6, name$7, name$8, nameToExport, nextNumericValue, notes, ok, ok$1, ok$10, ok$11, ok$12, ok$13, ok$14, ok$15, ok$16, ok$17, ok$18, ok$19, ok$2, ok$20, ok$21, ok$22, ok$23, ok$24, ok$25, ok$26, ok$27, ok$28, ok$29, ok$3, ok$30, ok$31, ok$32, ok$33, ok$34, ok$35, ok$36, ok$37, ok$4, ok$5, ok$6, ok$7, ok$8, ok$9, old, old$1, old$2, old$3, old$4, oldEnclosingNamespaceArgRef, oldIsInsideSwitch, oldShouldFoldTypeScriptConstantExpressions, oldShouldFoldTypeScriptConstantExpressions$1, p, r, r$1, r$2, r$3, ref, ref$1, ref$2, replacement, replacement$1, result, result$1, result$2, ret, retID, s, s$1, s$10, s$11, s$12, s$13, s$14, s$15, s$16, s$17, s$18, s$19, s$2, s$20, s$21, s$22, s$23, s$24, s$25, s$26, s$27, s$28, s$29, s$3, s$30, s$31, s$4, s$5, s$6, s$7, s$8, s$9, s2, s2$1, s2$2, s2$3, s2$4, s2$5, scope, shouldDropLabel, shouldTrimUnsightlyPrimitives, sideEffects, sideEffects$1, stmt, stmt2, stmt2$1, stmts, stmtsInsideNamespace, str, symbol, symbol$1, t, target, testOrNil, try$1, tsTopLevelEnumValues, underlyingValue, value, value$1, value$2, valueExprs, wasAfterAfterConstLocalPrefix, wasExportInsideNamespace, wrapIdentifier, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$25, x$26, x$27, x$28, x$29, x$3, x$30, x$31, x$32, x$33, x$34, x$35, x$36, x$37, x$38, x$39, x$4, x$40, x$41, x$42, x$43, x$44, x$45, x$46, x$47, x$48, x$49, x$5, x$50, x$51, x$6, x$7, x$8, x$9, $s};return $f; }; tryToInlineCaseBody = function tryToInlineCaseBody$1(openBraceLoc, stmts, closeBraceLoc) { var _i, _ref, _ref$1, _tuple, block, caresAboutScope, closeBraceLoc, i, ok, openBraceLoc, s, s$1, s$2, s$3, stmt, stmts; if (stmts.$length === 1) { - _tuple = $assertType((0 >= stmts.$length ? ($throwRuntimeError("index out of range"), undefined) : stmts.$array[stmts.$offset + 0]).Data, ptrType$48, true); + _tuple = $assertType((0 >= stmts.$length ? ($throwRuntimeError("index out of range"), undefined) : stmts.$array[stmts.$offset + 0]).Data, ptrType$49, true); block = _tuple[0]; ok = _tuple[1]; if (ok) { @@ -179783,7 +181026,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { i = _i; stmt = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), js_ast.Stmt); _ref$1 = stmt.Data; - if ($assertType(_ref$1, ptrType$38, true)[1] || $assertType(_ref$1, ptrType$55, true)[1] || $assertType(_ref$1, ptrType$84, true)[1] || $assertType(_ref$1, ptrType$13, true)[1] || $assertType(_ref$1, ptrType$78, true)[1] || $assertType(_ref$1, ptrType$65, true)[1] || $assertType(_ref$1, ptrType$40, true)[1] || $assertType(_ref$1, ptrType$41, true)[1]) { + if ($assertType(_ref$1, ptrType$40, true)[1] || $assertType(_ref$1, ptrType$58, true)[1] || $assertType(_ref$1, ptrType$88, true)[1] || $assertType(_ref$1, ptrType$13, true)[1] || $assertType(_ref$1, ptrType$82, true)[1] || $assertType(_ref$1, ptrType$68, true)[1] || $assertType(_ref$1, ptrType$42, true)[1] || $assertType(_ref$1, ptrType$43, true)[1]) { s = _ref$1; _i++; continue; @@ -179792,7 +181035,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { if (!((s$1.Kind === 0))) { caresAboutScope = true; } - } else if ($assertType(_ref$1, ptrType$64, true)[1]) { + } else if ($assertType(_ref$1, ptrType$67, true)[1]) { s$2 = _ref$1.$val; if (!(s$2.Label === ptrType$12.nil)) { return [sliceType$8.nil, false]; @@ -179813,7 +181056,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { isUnsightlyPrimitive = function isUnsightlyPrimitive$1(data) { var _ref, data; _ref = data; - if ($assertType(_ref, ptrType$22, true)[1] || $assertType(_ref, ptrType$21, true)[1] || $assertType(_ref, ptrType$33, true)[1] || $assertType(_ref, ptrType$18, true)[1] || $assertType(_ref, ptrType$53, true)[1] || $assertType(_ref, ptrType$16, true)[1]) { + if ($assertType(_ref, ptrType$22, true)[1] || $assertType(_ref, ptrType$21, true)[1] || $assertType(_ref, ptrType$34, true)[1] || $assertType(_ref, ptrType$18, true)[1] || $assertType(_ref, ptrType$56, true)[1] || $assertType(_ref, ptrType$16, true)[1]) { return true; } return false; @@ -179821,7 +181064,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { isSafeForConstLocalPrefix = function isSafeForConstLocalPrefix$1(expr) { var _i, _ref, _ref$1, e, e$1, e$2, expr, item; _ref = expr.Data; - if ($assertType(_ref, ptrType$70, true)[1] || $assertType(_ref, ptrType$16, true)[1] || $assertType(_ref, ptrType$94, true)[1] || $assertType(_ref, ptrType$53, true)[1] || $assertType(_ref, ptrType$28, true)[1] || $assertType(_ref, ptrType$54, true)[1]) { + if ($assertType(_ref, ptrType$74, true)[1] || $assertType(_ref, ptrType$16, true)[1] || $assertType(_ref, ptrType$101, true)[1] || $assertType(_ref, ptrType$56, true)[1] || $assertType(_ref, ptrType$29, true)[1] || $assertType(_ref, ptrType$57, true)[1]) { e = _ref; return true; } else if ($assertType(_ref, ptrType$17, true)[1]) { @@ -179912,7 +181155,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { var {$24r, _r, _r$1, _r$2, _tuple, e, expr, ok, p, visit, $s, $r, $c} = $restore(this, {expr, visit}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; - _tuple = $assertType(expr.Data, ptrType$90, true); + _tuple = $assertType(expr.Data, ptrType$95, true); e = _tuple[0]; ok = _tuple[1]; /* */ if (ok) { $s = 1; continue; } @@ -179946,7 +181189,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* if (_v) { */ case 3: $s = -1; return false; /* } */ case 4: - _tuple = $assertType(arg.Binding.Data, ptrType$34, true); + _tuple = $assertType(arg.Binding.Data, ptrType$35, true); ok = _tuple[1]; if (!ok) { $s = -1; return false; @@ -179976,12 +181219,12 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { valueFunc = (function parser·captureValueWithPossibleSideEffects·func2() { return new js_ast.Expr.ptr(js_ast.ENullShared, $clone(loc, logger.Loc)); }); - } else if ($assertType(_ref, ptrType$33, true)[1]) { + } else if ($assertType(_ref, ptrType$34, true)[1]) { e$1 = _ref.$val; valueFunc = (function parser·captureValueWithPossibleSideEffects·func3() { return new js_ast.Expr.ptr(js_ast.EUndefinedShared, $clone(loc, logger.Loc)); }); - } else if ($assertType(_ref, ptrType$95, true)[1]) { + } else if ($assertType(_ref, ptrType$102, true)[1]) { e$2 = _ref.$val; valueFunc = (function parser·captureValueWithPossibleSideEffects·func4() { return new js_ast.Expr.ptr(js_ast.EThisShared, $clone(loc, logger.Loc)); @@ -179996,7 +181239,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { valueFunc = (function parser·captureValueWithPossibleSideEffects·func6() { return new js_ast.Expr.ptr(new js_ast.ENumber.ptr(e$4.Value), $clone(loc, logger.Loc)); }); - } else if ($assertType(_ref, ptrType$53, true)[1]) { + } else if ($assertType(_ref, ptrType$56, true)[1]) { e$5 = _ref.$val; valueFunc = (function parser·captureValueWithPossibleSideEffects·func7() { return new js_ast.Expr.ptr(new js_ast.EBigInt.ptr(e$5.Value), $clone(loc, logger.Loc)); @@ -180006,12 +181249,12 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { valueFunc = (function parser·captureValueWithPossibleSideEffects·func8() { return new js_ast.Expr.ptr(new js_ast.EString.ptr(e$6.Value, new logger.Loc.ptr(0), false, false, false), $clone(loc, logger.Loc)); }); - } else if ($assertType(_ref, ptrType$24, true)[1]) { + } else if ($assertType(_ref, ptrType$25, true)[1]) { e$7 = _ref.$val; valueFunc = (function parser·captureValueWithPossibleSideEffects·func9() { return new js_ast.Expr.ptr(new js_ast.EPrivateIdentifier.ptr($clone(e$7.Ref, ast.Ref)), $clone(loc, logger.Loc)); }); - } else if ($assertType(_ref, ptrType$32, true)[1]) { + } else if ($assertType(_ref, ptrType$33, true)[1]) { e$8 = _ref.$val; if (mode === 0) { valueFunc = (function parser·captureValueWithPossibleSideEffects·func10() { @@ -180102,7 +181345,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { while (true) { if (!(_i < _ref.$length)) { break; } prop = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), js_ast.Property); - _tuple = $assertType(prop.Key.Data, ptrType$24, true); + _tuple = $assertType(prop.Key.Data, ptrType$25, true); private$1 = _tuple[0]; ok = _tuple[1]; if (ok) { @@ -180118,11 +181361,11 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { while (true) { if (!(_i$1 < _ref$1.$length)) { break; } prop$1 = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), js_ast.Property); - _tuple$1 = $assertType(prop$1.Key.Data, ptrType$24, true); + _tuple$1 = $assertType(prop$1.Key.Data, ptrType$25, true); private$2 = _tuple$1[0]; ok$1 = _tuple$1[1]; if (ok$1) { - symbol = (x$6 = p.symbols, x$7 = private$2.Ref.InnerIndex, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])); + symbol = (x$6 = p.symbols, x$7 = private$2.Ref.InnerIndex, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$6.$array, x$6.$offset + x$7, ptrType$23))); if ((_entry = $mapIndex(p.lowerAllOfThesePrivateNames,$String.keyFor(symbol.OriginalName)), _entry !== undefined ? _entry.v : false)) { symbol.Flags = (symbol.Flags | (8)) >>> 0; recomputeClassLoweringInfo = true; @@ -180176,7 +181419,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* while (true) { */ case 10: /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 11; continue; } i = _i$2; - property = (x$12 = class$1.Properties, ((i < 0 || i >= x$12.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + i])); + property = (x$12 = class$1.Properties, ((i < 0 || i >= x$12.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$12.$array, x$12.$offset + i, ptrType$37))); /* */ if (property.Kind === 7) { $s = 12; continue; } /* */ $s = 13; continue; /* if (property.Kind === 7) { */ case 12: @@ -180200,7 +181443,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* } */ case 13: _r$3 = p.visitDecorators(property.Decorators, result.bodyScope); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } property.Decorators = _r$3; - _tuple$2 = $assertType(property.Key.Data, ptrType$24, true); + _tuple$2 = $assertType(property.Key.Data, ptrType$25, true); private$3 = _tuple$2[0]; ok$2 = _tuple$2[1]; /* */ if (ok$2) { $s = 17; continue; } @@ -180220,7 +181463,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { (x$15 = p.symbols, x$16 = result.innerClassNameRef.InnerIndex, ((x$16 < 0 || x$16 >= x$15.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$15.$array[x$15.$offset + x$16])).Kind = 22; } if (p.options.optionsThatSupportStructuralEquality.minifySyntax) { - _tuple$4 = $assertType(key.Data, ptrType$67, true); + _tuple$4 = $assertType(key.Data, ptrType$70, true); inlined = _tuple$4[0]; ok$3 = _tuple$4[1]; if (ok$3) { @@ -180231,7 +181474,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } } _ref$4 = key.Data; - if ($assertType(_ref$4, ptrType$18, true)[1] || $assertType(_ref$4, ptrType$36, true)[1]) { + if ($assertType(_ref$4, ptrType$18, true)[1] || $assertType(_ref$4, ptrType$38, true)[1]) { k = _ref$4; property.Flags = (property.Flags & (254)) >>> 0; } else if ($assertType(_ref$4, ptrType$16, true)[1]) { @@ -180270,7 +181513,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { p.fnOnlyDataVisit.innerClassNameRef = result.innerClassNameRef; nameToKeep$1 = ""; isLoweredPrivateMethod = false; - _tuple$6 = $assertType(property.Key.Data, ptrType$24, true); + _tuple$6 = $assertType(property.Key.Data, ptrType$25, true); private$4 = _tuple$6[0]; ok$5 = _tuple$6[1]; if (ok$5) { @@ -180333,7 +181576,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* if (!p.suppressWarningsAboutWeirdCode) { */ case 27: $r = p.warnAboutDuplicateProperties(class$1.Properties, 1); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 28: - _r$7 = $clone(p.astHelpers, js_ast.HelperContext).ClassCanBeRemovedIfUnused($clone(class$1, js_ast.Class)); /* */ $s = 30; case 30: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$7 = $clone(p.astHelpers, js_ast.HelperContext).ClassCanBeRemovedIfUnused($clone((class$1 === ptrType$30.nil && $throwNilPointerError(), class$1), js_ast.Class)); /* */ $s = 30; case 30: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } result.canBeRemovedIfUnused = _r$7; if (p.options.optionsThatSupportStructuralEquality.keepNames && !(nameToKeep === "")) { propertyPreventsKeepNames = false; @@ -180397,7 +181640,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { while (true) { if (!(_i < _ref.$length)) { break; } arg = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), js_ast.Arg); - _tuple = $assertType(arg.Binding.Data, ptrType$34, true); + _tuple = $assertType(arg.Binding.Data, ptrType$35, true); ok = _tuple[1]; if (!ok || !($interfaceIsEqual(arg.DefaultOrNil.Data, $ifaceNil))) { return false; @@ -180414,11 +181657,11 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { if (!(_i < _ref.$length)) { break; } stmt = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), js_ast.Stmt); _ref$1 = stmt.Data; - if ($assertType(_ref$1, ptrType$84, true)[1]) { + if ($assertType(_ref$1, ptrType$88, true)[1]) { s = _ref$1.$val; _i++; continue; - } else if ($assertType(_ref$1, ptrType$55, true)[1]) { + } else if ($assertType(_ref$1, ptrType$58, true)[1]) { s$1 = _ref$1.$val; if (helpers.UTF16EqualsString(s$1.Value, "use strict")) { return [stmt.Loc, true]; @@ -180453,7 +181696,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* while (true) { */ case 4: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 5; continue; } i = _i; - arg = ((i < 0 || i >= args.$length) ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + i]); + arg = ((i < 0 || i >= args.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(args.$array, args.$offset + i, ptrType$103)); _r = p.visitDecorators(arg.Decorators, opts.decoratorScope); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } arg.Decorators = _r; $r = p.visitBinding($clone(arg.Binding, js_ast.Binding), $clone(new bindingOpts.ptr(duplicateArgCheck), bindingOpts)); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } @@ -180474,13 +181717,13 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; _ref = expr.Data; - /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$23, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$95, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$96, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$32, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$24, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$102, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$104, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$33, true)[1]) { $s = 5; continue; } /* */ $s = 6; continue; - /* if ($assertType(_ref, ptrType$25, true)[1]) { */ case 1: + /* if ($assertType(_ref, ptrType$26, true)[1]) { */ case 1: e = _ref.$val; /* */ if (parts.$length > 1) { $s = 7; continue; } /* */ $s = 8; continue; @@ -180493,7 +181736,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $s = 11; case 11: return $24r; /* } */ case 8: $s = 6; continue; - /* } else if ($assertType(_ref, ptrType$23, true)[1]) { */ case 2: + /* } else if ($assertType(_ref, ptrType$24, true)[1]) { */ case 2: e$1 = _ref.$val; /* */ if (parts.$length > 1) { $s = 12; continue; } /* */ $s = 13; continue; @@ -180513,16 +181756,16 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* } */ case 15: /* } */ case 13: $s = 6; continue; - /* } else if ($assertType(_ref, ptrType$95, true)[1]) { */ case 3: + /* } else if ($assertType(_ref, ptrType$102, true)[1]) { */ case 3: e$2 = _ref.$val; if (!p.fnOnlyDataVisit.isThisNested) { $s = -1; return (parts.$length === 1) && (0 >= parts.$length ? ($throwRuntimeError("index out of range"), undefined) : parts.$array[parts.$offset + 0]) === "this"; } $s = 6; continue; - /* } else if ($assertType(_ref, ptrType$96, true)[1]) { */ case 4: + /* } else if ($assertType(_ref, ptrType$104, true)[1]) { */ case 4: e$3 = _ref.$val; $s = -1; return (parts.$length === 2) && (0 >= parts.$length ? ($throwRuntimeError("index out of range"), undefined) : parts.$array[parts.$offset + 0]) === "import" && (1 >= parts.$length ? ($throwRuntimeError("index out of range"), undefined) : parts.$array[parts.$offset + 1]) === "meta"; - /* } else if ($assertType(_ref, ptrType$32, true)[1]) { */ case 5: + /* } else if ($assertType(_ref, ptrType$33, true)[1]) { */ case 5: e$4 = _ref.$val; /* */ if (parts.$length === 1) { $s = 19; continue; } /* */ $s = 20; continue; @@ -180544,7 +181787,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ } return; } var $f = {$blk: isDotOrIndexDefineMatch, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _ref, _tuple, _v, _v$1, e, e$1, e$2, e$3, e$4, expr, last, last$1, name, ok, p, parts, result, str, x, x$1, $s};return $f; }; $ptrType(parser).prototype.instantiateDefineExpr = function instantiateDefineExpr(loc, expr, opts) { - var {$24r, $24r$1, _1, _entry, _entry$1, _i, _i$1, _i$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, _ref$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, define, defines, expr, expr$1, firstPart, importMeta, loc, name, names, ok, ok$1, ok$2, ok$3, ok$4, opts, p, part, parts, ref, result, thisValue, value, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {loc, expr, opts}); + var {$24r, $24r$1, _1, _entry, _entry$1, _i, _i$1, _i$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, _ref$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, define, defines, expr, expr$1, firstPart, importMeta, loc, name, names, ok, ok$1, ok$2, ok$3, ok$4, opts, p, part, parts, ref, result, thisValue, value, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {loc, expr, opts}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; if (!($interfaceIsEqual(expr.Constant, $ifaceNil))) { @@ -180574,10 +181817,10 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* while (true) { */ case 5: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 6; continue; } define = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), config.DefineData); - /* */ if (!(define.DefineExpr === ptrType$97.nil) && helpers.StringArraysEqual(define.KeyParts, parts)) { $s = 7; continue; } + /* */ if (!(define.DefineExpr === ptrType$105.nil) && helpers.StringArraysEqual(define.KeyParts, parts)) { $s = 7; continue; } /* */ $s = 8; continue; - /* if (!(define.DefineExpr === ptrType$97.nil) && helpers.StringArraysEqual(define.KeyParts, parts)) { */ case 7: - _r = p.instantiateDefineExpr($clone(loc, logger.Loc), $clone(define.DefineExpr, config.DefineExpr), $clone(opts, identifierOpts)); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* if (!(define.DefineExpr === ptrType$105.nil) && helpers.StringArraysEqual(define.KeyParts, parts)) { */ case 7: + _r = p.instantiateDefineExpr($clone(loc, logger.Loc), $clone((x$3 = define.DefineExpr, (x$3 === ptrType$105.nil && $throwNilPointerError(), x$3)), config.DefineExpr), $clone(opts, identifierOpts)); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $24r = _r; $s = 10; case 10: return $24r; /* } */ case 8: @@ -180586,7 +181829,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { case 6: /* } */ case 4: /* } */ case 2: - _tuple$1 = (_entry$1 = $mapIndex(p.injectedDotNames,$String.keyFor((x$3 = parts.$length - 1 >> 0, ((x$3 < 0 || x$3 >= parts.$length) ? ($throwRuntimeError("index out of range"), undefined) : parts.$array[parts.$offset + x$3])))), _entry$1 !== undefined ? [_entry$1.v, true] : [sliceType$31.nil, false]); + _tuple$1 = (_entry$1 = $mapIndex(p.injectedDotNames,$String.keyFor((x$4 = parts.$length - 1 >> 0, ((x$4 < 0 || x$4 >= parts.$length) ? ($throwRuntimeError("index out of range"), undefined) : parts.$array[parts.$offset + x$4])))), _entry$1 !== undefined ? [_entry$1.v, true] : [sliceType$31.nil, false]); names = _tuple$1[0]; ok$1 = _tuple$1[1]; /* */ if (ok$1) { $s = 11; continue; } @@ -180686,7 +181929,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $s = 30; continue; case 31: $s = -1; return value; - /* */ } return; } var $f = {$blk: instantiateDefineExpr, $c: true, $r, $24r, $24r$1, _1, _entry, _entry$1, _i, _i$1, _i$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, _ref$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, define, defines, expr, expr$1, firstPart, importMeta, loc, name, names, ok, ok$1, ok$2, ok$3, ok$4, opts, p, part, parts, ref, result, thisValue, value, x, x$1, x$2, x$3, $s};return $f; + /* */ } return; } var $f = {$blk: instantiateDefineExpr, $c: true, $r, $24r, $24r$1, _1, _entry, _entry$1, _i, _i$1, _i$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, _ref$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, define, defines, expr, expr$1, firstPart, importMeta, loc, name, names, ok, ok$1, ok$2, ok$3, ok$4, opts, p, part, parts, ref, result, thisValue, value, x, x$1, x$2, x$3, x$4, $s};return $f; }; $ptrType(parser).prototype.instantiateInjectDotName = function instantiateInjectDotName(loc, name, assignTarget) { var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _entry, _r, _r$1, _r$2, _tuple, assignTarget, joined, loc, name, ok, p, r, ref, tracker, where, x, x$1, $s, $r, $c} = $restore(this, {loc, name, assignTarget}); @@ -180762,7 +182005,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { js_ast.Expr.copy(b, _tmp$1); } } - _tuple$1 = $assertType(a.Data, ptrType$47, true); + _tuple$1 = $assertType(a.Data, ptrType$50, true); typeof$1 = _tuple$1[0]; ok$1 = _tuple$1[1]; /* */ if (ok$1 && (typeof$1.Op === 5)) { $s = 1; continue; } @@ -180806,7 +182049,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { p = this; _ref = value.Data; /* */ if ($assertType(_ref, ptrType$18, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$17, true)[1] || $assertType(_ref, ptrType$54, true)[1] || $assertType(_ref, ptrType$30, true)[1] || $assertType(_ref, ptrType$28, true)[1] || $assertType(_ref, ptrType$15, true)[1] || $assertType(_ref, ptrType$94, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$17, true)[1] || $assertType(_ref, ptrType$57, true)[1] || $assertType(_ref, ptrType$31, true)[1] || $assertType(_ref, ptrType$29, true)[1] || $assertType(_ref, ptrType$15, true)[1] || $assertType(_ref, ptrType$101, true)[1]) { $s = 2; continue; } /* */ $s = 3; continue; /* if ($assertType(_ref, ptrType$18, true)[1]) { */ case 1: e = _ref.$val; @@ -180847,7 +182090,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $s = -1; return true; /* } */ case 9: $s = 3; continue; - /* } else if ($assertType(_ref, ptrType$17, true)[1] || $assertType(_ref, ptrType$54, true)[1] || $assertType(_ref, ptrType$30, true)[1] || $assertType(_ref, ptrType$28, true)[1] || $assertType(_ref, ptrType$15, true)[1] || $assertType(_ref, ptrType$94, true)[1]) { */ case 2: + /* } else if ($assertType(_ref, ptrType$17, true)[1] || $assertType(_ref, ptrType$57, true)[1] || $assertType(_ref, ptrType$31, true)[1] || $assertType(_ref, ptrType$29, true)[1] || $assertType(_ref, ptrType$15, true)[1] || $assertType(_ref, ptrType$101, true)[1]) { */ case 2: e$1 = _ref; /* */ if (op.length > 2) { $s = 12; continue; } /* */ $s = 13; continue; @@ -180873,7 +182116,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { var {$24r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _i, _key, _key$1, _key$2, _key$3, _key$4, _r, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _ref$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, assignTarget, hasProtoNull, id, id$1, importItems, isCallTarget, isDeleteTarget, isTemplateTag, isUnsafe, item, key, kind, loc, m, m$1, m$2, member, name, nameLoc, ns, object, ok, ok$1, ok$2, ok$3, ok$4, ok$5, ok$6, ok$7, ok$8, ok$9, p, preferQuotedKey, prop, properties, record, replace, s, symbol, t, t$1, target, use, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {loc, assignTarget, isDeleteTarget, target, name, nameLoc, isCallTarget, isTemplateTag, preferQuotedKey}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; - _tuple = $assertType(target.Data, ptrType$32, true); + _tuple = $assertType(target.Data, ptrType$33, true); id = _tuple[0]; ok = _tuple[1]; /* */ if (ok) { $s = 1; continue; } @@ -180894,7 +182137,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ if (!ok$2) { $s = 7; continue; } /* */ $s = 8; continue; /* if (!ok$2) { */ case 7: - record = (x = p.importRecords, x$1 = importItems.importRecordIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + record = (x = p.importRecords, x$1 = importItems.importRecordIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + x$1, ptrType$106))); /* */ if (!(((((record.Flags & 2048) >>> 0)) === 0)) && !(name === "default")) { $s = 9; continue; } /* */ $s = 10; continue; /* if (!(((((record.Flags & 2048) >>> 0)) === 0)) && !(name === "default")) { */ case 9: @@ -180917,7 +182160,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { p.moduleScope.Generated = $append(p.moduleScope.Generated, item.Ref); _key = name; (importItems.entries || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: $clone(item, ast.LocRef) }); _key$1 = $clone(item.Ref, ast.Ref); (p.isImportItem || $throwRuntimeError("assignment to entry in nil map")).set(ast.Ref.keyFor(_key$1), { k: _key$1, v: true }); - symbol = (x$2 = p.symbols, x$3 = item.Ref.InnerIndex, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])); + symbol = (x$2 = p.symbols, x$3 = item.Ref.InnerIndex, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$2.$array, x$2.$offset + x$3, ptrType$23))); if (p.options.optionsThatSupportStructuralEquality.mode === 0) { symbol.NamespaceAlias = new ast.NamespaceAlias.ptr(name, $clone(id.Ref, ast.Ref)); } else { @@ -181011,15 +182254,15 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ $s = 30; continue; /* if (ok$7) { */ case 29: _ref$1 = member.Data; - /* */ if ($assertType(_ref$1, ptrType$98, true)[1]) { $s = 31; continue; } - /* */ if ($assertType(_ref$1, ptrType$99, true)[1]) { $s = 32; continue; } + /* */ if ($assertType(_ref$1, ptrType$107, true)[1]) { $s = 31; continue; } + /* */ if ($assertType(_ref$1, ptrType$108, true)[1]) { $s = 32; continue; } /* */ if ($assertType(_ref$1, ptrType$3, true)[1]) { $s = 33; continue; } /* */ $s = 34; continue; - /* if ($assertType(_ref$1, ptrType$98, true)[1]) { */ case 31: + /* if ($assertType(_ref$1, ptrType$107, true)[1]) { */ case 31: m = _ref$1.$val; p.ignoreUsageOfIdentifierInDotChain($clone(target, js_ast.Expr)); $s = -1; return [p.wrapInlinedEnum($clone(new js_ast.Expr.ptr(new js_ast.ENumber.ptr(m.Value), $clone(loc, logger.Loc)), js_ast.Expr), name), true]; - /* } else if ($assertType(_ref$1, ptrType$99, true)[1]) { */ case 32: + /* } else if ($assertType(_ref$1, ptrType$108, true)[1]) { */ case 32: m$1 = _ref$1.$val; p.ignoreUsageOfIdentifierInDotChain($clone(target, js_ast.Expr)); $s = -1; return [p.wrapInlinedEnum($clone(new js_ast.Expr.ptr(new js_ast.EString.ptr(m$1.Value, new logger.Loc.ptr(0), false, false, false), $clone(loc, logger.Loc)), js_ast.Expr), name), true]; @@ -181041,7 +182284,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* } */ case 28: /* } */ case 26: if ((p.options.optionsThatSupportStructuralEquality.mode === 2) && !p.isControlFlowDead) { - _tuple$8 = $assertType(target.Data, ptrType$100, true); + _tuple$8 = $assertType(target.Data, ptrType$109, true); id$1 = _tuple$8[0]; ok$8 = _tuple$8[1]; if (ok$8) { @@ -181072,7 +182315,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { if (name === "length") { $s = -1; return [new js_ast.Expr.ptr(new js_ast.ENumber.ptr((t.Value.$length)), $clone(loc, logger.Loc)), true]; } - } else if ($assertType(_ref$2, ptrType$67, true)[1]) { + } else if ($assertType(_ref$2, ptrType$70, true)[1]) { t$1 = _ref$2.$val; _tuple$9 = $assertType(t$1.Value.Data, ptrType$16, true); s = _tuple$9[0]; @@ -181096,26 +182339,26 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ } return; } var $f = {$blk: visitExpr, $c: true, $r, _r, _tuple, expr, p, $s};return $f; }; $ptrType(parser).prototype.valueForThis = function valueForThis(loc, shouldLog, assignTarget, isCallTarget, isDeleteTarget) { - var {$24r, _entry, _r, _tuple, _tuple$1, assignTarget, data, data$1, isCallTarget, isDeleteTarget, kind, loc, notes, ok, p, shouldLog, $s, $r, $c} = $restore(this, {loc, shouldLog, assignTarget, isCallTarget, isDeleteTarget}); + var {$24r, _entry, _r, _tuple, _tuple$1, assignTarget, data, data$1, isCallTarget, isDeleteTarget, kind, loc, notes, ok, p, shouldLog, x, x$1, x$2, $s, $r, $c} = $restore(this, {loc, shouldLog, assignTarget, isCallTarget, isDeleteTarget}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; if (p.fnOnlyDataVisit.shouldReplaceThisWithInnerClassNameRef) { - p.recordUsage($clone(p.fnOnlyDataVisit.innerClassNameRef, ast.Ref)); - $s = -1; return [new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(p.fnOnlyDataVisit.innerClassNameRef, ast.Ref), false, false, false), $clone(loc, logger.Loc)), true]; + p.recordUsage($clone((x = p.fnOnlyDataVisit.innerClassNameRef, (x === ptrType$11.nil && $throwNilPointerError(), x)), ast.Ref)); + $s = -1; return [new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone((x$1 = p.fnOnlyDataVisit.innerClassNameRef, (x$1 === ptrType$11.nil && $throwNilPointerError(), x$1)), ast.Ref), false, false, false), $clone(loc, logger.Loc)), true]; } /* */ if (!p.fnOnlyDataVisit.isThisNested) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!p.fnOnlyDataVisit.isThisNested) { */ case 1: - _tuple = (_entry = $mapIndex(p.options.defines.IdentifierDefines,$String.keyFor("this")), _entry !== undefined ? [_entry.v, true] : [new config.DefineData.ptr(sliceType.nil, ptrType$97.nil, 0), false]); + _tuple = (_entry = $mapIndex(p.options.defines.IdentifierDefines,$String.keyFor("this")), _entry !== undefined ? [_entry.v, true] : [new config.DefineData.ptr(sliceType.nil, ptrType$105.nil, 0), false]); data = $clone(_tuple[0], config.DefineData); ok = _tuple[1]; /* */ if (ok) { $s = 3; continue; } /* */ $s = 4; continue; /* if (ok) { */ case 3: - /* */ if (!(data.DefineExpr === ptrType$97.nil)) { $s = 5; continue; } + /* */ if (!(data.DefineExpr === ptrType$105.nil)) { $s = 5; continue; } /* */ $s = 6; continue; - /* if (!(data.DefineExpr === ptrType$97.nil)) { */ case 5: - _r = p.instantiateDefineExpr($clone(loc, logger.Loc), $clone(data.DefineExpr, config.DefineExpr), $clone(new identifierOpts.ptr(assignTarget, isCallTarget, isDeleteTarget, false, false, false), identifierOpts)); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* if (!(data.DefineExpr === ptrType$105.nil)) { */ case 5: + _r = p.instantiateDefineExpr($clone(loc, logger.Loc), $clone((x$2 = data.DefineExpr, (x$2 === ptrType$105.nil && $throwNilPointerError(), x$2)), config.DefineExpr), $clone(new identifierOpts.ptr(assignTarget, isCallTarget, isDeleteTarget, false, false, false), identifierOpts)); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $24r = [_r, true]; $s = 8; case 8: return $24r; /* } */ case 6: @@ -181142,7 +182385,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* } */ case 11: /* } */ case 2: $s = -1; return [new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), false]; - /* */ } return; } var $f = {$blk: valueForThis, $c: true, $r, $24r, _entry, _r, _tuple, _tuple$1, assignTarget, data, data$1, isCallTarget, isDeleteTarget, kind, loc, notes, ok, p, shouldLog, $s};return $f; + /* */ } return; } var $f = {$blk: valueForThis, $c: true, $r, $24r, _entry, _r, _tuple, _tuple$1, assignTarget, data, data$1, isCallTarget, isDeleteTarget, kind, loc, notes, ok, p, shouldLog, x, x$1, x$2, $s};return $f; }; $ptrType(parser).prototype.valueForImportMeta = function valueForImportMeta(loc) { var loc, p; @@ -181183,7 +182426,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { var _ref, e, e$1, e$2, e$3, e$4, expr, name, p; p = this; _ref = expr.Data; - if ($assertType(_ref, ptrType$32, true)[1]) { + if ($assertType(_ref, ptrType$33, true)[1]) { e = _ref.$val; if (p.isStrictMode()) { name = p.loadNameFromRef($clone(e.Ref, ast.Ref)); @@ -181192,10 +182435,10 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } } return true; - } else if ($assertType(_ref, ptrType$25, true)[1]) { + } else if ($assertType(_ref, ptrType$26, true)[1]) { e$1 = _ref.$val; return e$1.OptionalChain === 0; - } else if ($assertType(_ref, ptrType$23, true)[1]) { + } else if ($assertType(_ref, ptrType$24, true)[1]) { e$2 = _ref.$val; return e$2.OptionalChain === 0; } else if ($assertType(_ref, ptrType$15, true)[1]) { @@ -181368,7 +182611,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ } return; } var $f = {$blk: isUnsupportedRegularExpression, $c: true, $r, _1, _2, _3, _arg, _arg$1, _arg$2, _arg$3, _i, _r, _r$1, _r$2, _ref, _rune, c, c$1, c$2, end, end$1, end$2, flags, i, i$1, isUnicode, isUnsupported, loc, p, parenDepth, pattern, r, r$1, tail, tail$1, value, what, where, $s};return $f; }; $ptrType(parser).prototype.visitExprInOut = function visitExprInOut(expr, in$1) { - var {$24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$13, $24r$14, $24r$15, $24r$16, $24r$17, $24r$18, $24r$19, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _1, _2, _3, _4, _5, _6, _7, _8, _9, __self, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$16, _arg$17, _arg$18, _arg$19, _arg$2, _arg$20, _arg$21, _arg$22, _arg$23, _arg$24, _arg$25, _arg$26, _arg$27, _arg$28, _arg$29, _arg$3, _arg$30, _arg$31, _arg$32, _arg$33, _arg$34, _arg$35, _arg$36, _arg$37, _arg$38, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _entry, _entry$1, _entry$10, _entry$2, _entry$3, _entry$4, _entry$5, _entry$6, _entry$7, _entry$8, _entry$9, _i, _i$1, _i$10, _i$11, _i$12, _i$13, _i$14, _i$15, _i$16, _i$17, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _i$8, _i$9, _r, _r$1, _r$10, _r$100, _r$101, _r$102, _r$103, _r$104, _r$105, _r$106, _r$107, _r$108, _r$109, _r$11, _r$110, _r$111, _r$112, _r$113, _r$114, _r$115, _r$116, _r$117, _r$118, _r$119, _r$12, _r$120, _r$121, _r$122, _r$123, _r$124, _r$125, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _r$5, _r$50, _r$51, _r$52, _r$53, _r$54, _r$55, _r$56, _r$57, _r$58, _r$59, _r$6, _r$60, _r$61, _r$62, _r$63, _r$64, _r$65, _r$66, _r$67, _r$68, _r$69, _r$7, _r$70, _r$71, _r$72, _r$73, _r$74, _r$75, _r$76, _r$77, _r$78, _r$79, _r$8, _r$80, _r$81, _r$82, _r$83, _r$84, _r$85, _r$86, _r$87, _r$88, _r$89, _r$9, _r$90, _r$91, _r$92, _r$93, _r$94, _r$95, _r$96, _r$97, _r$98, _r$99, _ref, _ref$1, _ref$10, _ref$11, _ref$12, _ref$13, _ref$14, _ref$15, _ref$16, _ref$17, _ref$18, _ref$19, _ref$2, _ref$20, _ref$21, _ref$22, _ref$23, _ref$24, _ref$25, _ref$26, _ref$27, _ref$28, _ref$29, _ref$3, _ref$30, _ref$31, _ref$32, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _ref$9, _tuple, _tuple$1, _tuple$10, _tuple$100, _tuple$101, _tuple$102, _tuple$103, _tuple$104, _tuple$105, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$2, _tuple$20, _tuple$21, _tuple$22, _tuple$23, _tuple$24, _tuple$25, _tuple$26, _tuple$27, _tuple$28, _tuple$29, _tuple$3, _tuple$30, _tuple$31, _tuple$32, _tuple$33, _tuple$34, _tuple$35, _tuple$36, _tuple$37, _tuple$38, _tuple$39, _tuple$4, _tuple$40, _tuple$41, _tuple$42, _tuple$43, _tuple$44, _tuple$45, _tuple$46, _tuple$47, _tuple$48, _tuple$49, _tuple$5, _tuple$50, _tuple$51, _tuple$52, _tuple$53, _tuple$54, _tuple$55, _tuple$56, _tuple$57, _tuple$58, _tuple$59, _tuple$6, _tuple$60, _tuple$61, _tuple$62, _tuple$63, _tuple$64, _tuple$65, _tuple$66, _tuple$67, _tuple$68, _tuple$69, _tuple$7, _tuple$70, _tuple$71, _tuple$72, _tuple$73, _tuple$74, _tuple$75, _tuple$76, _tuple$77, _tuple$78, _tuple$79, _tuple$8, _tuple$80, _tuple$81, _tuple$82, _tuple$83, _tuple$84, _tuple$85, _tuple$86, _tuple$87, _tuple$88, _tuple$89, _tuple$9, _tuple$90, _tuple$91, _tuple$92, _tuple$93, _tuple$94, _tuple$95, _tuple$96, _tuple$97, _tuple$98, _tuple$99, _v, _v$1, a, a$1, afterIndex, arg, arg$1, arg$10, arg$2, arg$3, arg$4, arg$5, arg$6, arg$7, arg$8, arg$9, args, args$1, args$2, assertOrWith, asyncArrowNeedsToBeLowered, binary, binary$1, boolean$1, boolean$2, boolean$3, charCodes, childIn, childOrNil, childOrNil$1, children, childrenValue, closeBracket, comma, containsOptionalChain, containsOptionalChain$1, containsOptionalChain$2, couldBeObjectCreate, couldBeRequireResolve, data, data$1, define, define$1, define$2, defines, defines$1, defines$2, dot, dot$1, dot$2, e, e$1, e$10, e$11, e$12, e$13, e$14, e$15, e$16, e$17, e$18, e$19, e$2, e$20, e$21, e$22, e$23, e$24, e$25, e$26, e$27, e$28, e$29, e$3, e$4, e$5, e$6, e$7, e$8, e$9, e2, e2$1, e2$2, e2$3, e2$4, e2$5, e2$6, e2$7, e2$8, e2$9, end, entries, expr, flags, flags$1, fn, hasIndex, hasKey, hasSpread, hasSpread$1, hasSpread$2, hasSpread$3, hasSpread$4, i, i$1, i$2, i$3, i$4, i$5, i$6, id, id$1, id$2, id$3, id$4, id$5, id$6, id$7, id$8, id$9, importMeta, in$1, index, index$1, index$2, inlined, innerClassNameRef, intValue, isAwaitTarget, isCallTarget, isCallTarget$1, isCallTarget$2, isCallTarget$3, isCallTarget$4, isDeleteTarget, isDeleteTarget$1, isDeleteTarget$2, isDeleteTarget$3, isDeleteTarget$4, isInlinedConstant, isParenthesizedOptionalChain, isStaticChildren, isTemplateTag, isTemplateTag$1, isThenCatchTarget, item, jsx, jsxSourceColumn, jsxSourceLine, k, k$1, key, key$1, key$2, keyProperty, keyword, kind, kind$1, kind$2, kind$3, kind$4, kind$5, kind$6, left, leftBinary, leftIn, loc, loc$1, loc$2, log, log$1, mangled, mangled$1, methodCallMustBeReplacedWithUndefined, msg, n, name, name$1, name$2, name$3, name$4, name$5, nameToKeep, nameToKeep$1, nameToKeep$2, names, names$1, new$1, new$2, new$3, notes, num, num$1, number, number$1, number$2, number$3, numberValue, numberValue$1, object, ok, ok$1, ok$10, ok$11, ok$12, ok$13, ok$14, ok$15, ok$16, ok$17, ok$18, ok$19, ok$2, ok$20, ok$21, ok$22, ok$23, ok$24, ok$25, ok$26, ok$27, ok$28, ok$29, ok$3, ok$30, ok$31, ok$32, ok$33, ok$34, ok$35, ok$36, ok$37, ok$38, ok$39, ok$4, ok$40, ok$41, ok$42, ok$43, ok$44, ok$45, ok$46, ok$47, ok$48, ok$49, ok$5, ok$50, ok$51, ok$52, ok$53, ok$54, ok$55, ok$56, ok$57, ok$58, ok$59, ok$6, ok$60, ok$61, ok$62, ok$63, ok$64, ok$65, ok$66, ok$67, ok$68, ok$69, ok$7, ok$70, ok$71, ok$72, ok$73, ok$74, ok$8, ok$9, old, old$1, oldFnOrArrowData, oldInnerClassNameRef, oldInsideAsyncArrowFn, oldIsControlFlowDead, oldIsInStaticClassContext, omitWarnings, out, out$1, out$2, out$3, p, p$1, part, part$1, pattern, preferQuotedKey, private$1, private$2, private$3, private$4, prop, propName, properties, property, property$1, property$2, property$3, property$4, propsLoc, protoRange, r, r$1, r$10, r$11, r$12, r$13, r$14, r$15, r$2, r$3, r$4, r$5, r$6, r$7, r$8, r$9, radix, regExpRef, result, result$1, result$2, result$3, result$4, s, s$1, seenPropsSpread, shouldLowerTemplateLiteral, shouldRemove, shouldUseCreateElement, sideEffects, sideEffects$1, size, source, source$1, stackBottom, stmt, str, str$1, str$10, str$2, str$3, str$4, str$5, str$6, str$7, str$8, str$9, stringInJSTable, stringInJSTable$1, superPropLoc, symbol, symbol$1, symbol$2, symbol$3, symbol$4, t, t$1, t$2, t$3, t$4, tag, tag$1, tag$2, tagIsLoweredOptionalChain, tagOut, tagThisFunc, tagWrapFunc, target, target$1, target$10, target$11, target$12, target$13, target$14, target$15, target$2, target$3, target$4, target$5, target$6, target$7, target$8, target$9, targetFunc, targetFunc$1, targetWrapFunc, targetWrapFunc$1, text, text$1, text$2, text$3, tracker, typeof$1, v, v$1, value, value$1, value$2, value$3, value$4, value$5, value$6, value$7, value$8, wasIdentifierBeforeVisit, where, why, whyLoc, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$25, x$26, x$27, x$28, x$29, x$3, x$30, x$31, x$32, x$33, x$34, x$35, x$36, x$37, x$38, x$39, x$4, x$40, x$41, x$42, x$43, x$44, x$45, x$46, x$47, x$48, x$49, x$5, x$50, x$51, x$52, x$53, x$54, x$55, x$56, x$57, x$58, x$59, x$6, x$60, x$61, x$62, x$63, x$64, x$65, x$66, x$67, x$68, x$69, x$7, x$70, x$71, x$72, x$8, x$9, $s, $r, $c} = $restore(this, {expr, in$1}); + var {$24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$13, $24r$14, $24r$15, $24r$16, $24r$17, $24r$18, $24r$19, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _1, _2, _3, _4, _5, _6, _7, _8, _9, __self, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$16, _arg$17, _arg$18, _arg$19, _arg$2, _arg$20, _arg$21, _arg$22, _arg$23, _arg$24, _arg$25, _arg$26, _arg$27, _arg$28, _arg$29, _arg$3, _arg$30, _arg$31, _arg$32, _arg$33, _arg$34, _arg$35, _arg$36, _arg$37, _arg$38, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _entry, _entry$1, _entry$10, _entry$2, _entry$3, _entry$4, _entry$5, _entry$6, _entry$7, _entry$8, _entry$9, _i, _i$1, _i$10, _i$11, _i$12, _i$13, _i$14, _i$15, _i$16, _i$17, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _i$8, _i$9, _r, _r$1, _r$10, _r$100, _r$101, _r$102, _r$103, _r$104, _r$105, _r$106, _r$107, _r$108, _r$109, _r$11, _r$110, _r$111, _r$112, _r$113, _r$114, _r$115, _r$116, _r$117, _r$118, _r$119, _r$12, _r$120, _r$121, _r$122, _r$123, _r$124, _r$125, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _r$5, _r$50, _r$51, _r$52, _r$53, _r$54, _r$55, _r$56, _r$57, _r$58, _r$59, _r$6, _r$60, _r$61, _r$62, _r$63, _r$64, _r$65, _r$66, _r$67, _r$68, _r$69, _r$7, _r$70, _r$71, _r$72, _r$73, _r$74, _r$75, _r$76, _r$77, _r$78, _r$79, _r$8, _r$80, _r$81, _r$82, _r$83, _r$84, _r$85, _r$86, _r$87, _r$88, _r$89, _r$9, _r$90, _r$91, _r$92, _r$93, _r$94, _r$95, _r$96, _r$97, _r$98, _r$99, _ref, _ref$1, _ref$10, _ref$11, _ref$12, _ref$13, _ref$14, _ref$15, _ref$16, _ref$17, _ref$18, _ref$19, _ref$2, _ref$20, _ref$21, _ref$22, _ref$23, _ref$24, _ref$25, _ref$26, _ref$27, _ref$28, _ref$29, _ref$3, _ref$30, _ref$31, _ref$32, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _ref$9, _tuple, _tuple$1, _tuple$10, _tuple$100, _tuple$101, _tuple$102, _tuple$103, _tuple$104, _tuple$105, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$2, _tuple$20, _tuple$21, _tuple$22, _tuple$23, _tuple$24, _tuple$25, _tuple$26, _tuple$27, _tuple$28, _tuple$29, _tuple$3, _tuple$30, _tuple$31, _tuple$32, _tuple$33, _tuple$34, _tuple$35, _tuple$36, _tuple$37, _tuple$38, _tuple$39, _tuple$4, _tuple$40, _tuple$41, _tuple$42, _tuple$43, _tuple$44, _tuple$45, _tuple$46, _tuple$47, _tuple$48, _tuple$49, _tuple$5, _tuple$50, _tuple$51, _tuple$52, _tuple$53, _tuple$54, _tuple$55, _tuple$56, _tuple$57, _tuple$58, _tuple$59, _tuple$6, _tuple$60, _tuple$61, _tuple$62, _tuple$63, _tuple$64, _tuple$65, _tuple$66, _tuple$67, _tuple$68, _tuple$69, _tuple$7, _tuple$70, _tuple$71, _tuple$72, _tuple$73, _tuple$74, _tuple$75, _tuple$76, _tuple$77, _tuple$78, _tuple$79, _tuple$8, _tuple$80, _tuple$81, _tuple$82, _tuple$83, _tuple$84, _tuple$85, _tuple$86, _tuple$87, _tuple$88, _tuple$89, _tuple$9, _tuple$90, _tuple$91, _tuple$92, _tuple$93, _tuple$94, _tuple$95, _tuple$96, _tuple$97, _tuple$98, _tuple$99, _v, _v$1, a, a$1, afterIndex, arg, arg$1, arg$10, arg$2, arg$3, arg$4, arg$5, arg$6, arg$7, arg$8, arg$9, args, args$1, args$2, assertOrWith, asyncArrowNeedsToBeLowered, binary, binary$1, boolean$1, boolean$2, boolean$3, charCodes, childIn, childOrNil, childOrNil$1, children, childrenValue, closeBracket, comma, containsOptionalChain, containsOptionalChain$1, containsOptionalChain$2, couldBeObjectCreate, couldBeRequireResolve, data, data$1, define, define$1, define$2, defines, defines$1, defines$2, dot, dot$1, dot$2, e, e$1, e$10, e$11, e$12, e$13, e$14, e$15, e$16, e$17, e$18, e$19, e$2, e$20, e$21, e$22, e$23, e$24, e$25, e$26, e$27, e$28, e$29, e$3, e$4, e$5, e$6, e$7, e$8, e$9, e2, e2$1, e2$2, e2$3, e2$4, e2$5, e2$6, e2$7, e2$8, e2$9, end, entries, expr, flags, flags$1, fn, hasIndex, hasKey, hasSpread, hasSpread$1, hasSpread$2, hasSpread$3, hasSpread$4, i, i$1, i$2, i$3, i$4, i$5, i$6, id, id$1, id$2, id$3, id$4, id$5, id$6, id$7, id$8, id$9, importMeta, in$1, index, index$1, index$2, inlined, innerClassNameRef, intValue, isAwaitTarget, isCallTarget, isCallTarget$1, isCallTarget$2, isCallTarget$3, isCallTarget$4, isDeleteTarget, isDeleteTarget$1, isDeleteTarget$2, isDeleteTarget$3, isDeleteTarget$4, isInlinedConstant, isParenthesizedOptionalChain, isStaticChildren, isTemplateTag, isTemplateTag$1, isThenCatchTarget, item, jsx, jsxSourceColumn, jsxSourceLine, k, k$1, key, key$1, key$2, keyProperty, keyword, kind, kind$1, kind$2, kind$3, kind$4, kind$5, kind$6, left, leftBinary, leftIn, loc, loc$1, loc$2, log, log$1, mangled, mangled$1, methodCallMustBeReplacedWithUndefined, msg, n, name, name$1, name$2, name$3, name$4, name$5, nameToKeep, nameToKeep$1, nameToKeep$2, names, names$1, new$1, new$2, new$3, notes, num, num$1, number, number$1, number$2, number$3, numberValue, numberValue$1, object, ok, ok$1, ok$10, ok$11, ok$12, ok$13, ok$14, ok$15, ok$16, ok$17, ok$18, ok$19, ok$2, ok$20, ok$21, ok$22, ok$23, ok$24, ok$25, ok$26, ok$27, ok$28, ok$29, ok$3, ok$30, ok$31, ok$32, ok$33, ok$34, ok$35, ok$36, ok$37, ok$38, ok$39, ok$4, ok$40, ok$41, ok$42, ok$43, ok$44, ok$45, ok$46, ok$47, ok$48, ok$49, ok$5, ok$50, ok$51, ok$52, ok$53, ok$54, ok$55, ok$56, ok$57, ok$58, ok$59, ok$6, ok$60, ok$61, ok$62, ok$63, ok$64, ok$65, ok$66, ok$67, ok$68, ok$69, ok$7, ok$70, ok$71, ok$72, ok$73, ok$74, ok$8, ok$9, old, old$1, oldFnOrArrowData, oldInnerClassNameRef, oldInsideAsyncArrowFn, oldIsControlFlowDead, oldIsInStaticClassContext, omitWarnings, out, out$1, out$2, out$3, p, p$1, part, part$1, pattern, preferQuotedKey, private$1, private$2, private$3, private$4, prop, propName, properties, property, property$1, property$2, property$3, property$4, propsLoc, protoRange, r, r$1, r$10, r$11, r$12, r$13, r$14, r$15, r$2, r$3, r$4, r$5, r$6, r$7, r$8, r$9, radix, regExpRef, result, result$1, result$2, result$3, result$4, s, s$1, seenPropsSpread, shouldLowerTemplateLiteral, shouldRemove, shouldUseCreateElement, sideEffects, sideEffects$1, size, source, source$1, stackBottom, stmt, str, str$1, str$10, str$2, str$3, str$4, str$5, str$6, str$7, str$8, str$9, stringInJSTable, stringInJSTable$1, superPropLoc, symbol, symbol$1, symbol$2, symbol$3, symbol$4, t, t$1, t$2, t$3, t$4, tag, tag$1, tag$2, tagIsLoweredOptionalChain, tagOut, tagThisFunc, tagWrapFunc, target, target$1, target$10, target$11, target$12, target$13, target$14, target$15, target$2, target$3, target$4, target$5, target$6, target$7, target$8, target$9, targetFunc, targetFunc$1, targetWrapFunc, targetWrapFunc$1, text, text$1, text$2, text$3, tracker, typeof$1, v, v$1, value, value$1, value$2, value$3, value$4, value$5, value$6, value$7, value$8, wasIdentifierBeforeVisit, where, why, whyLoc, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$25, x$26, x$27, x$28, x$29, x$3, x$30, x$31, x$32, x$33, x$34, x$35, x$36, x$37, x$38, x$39, x$4, x$40, x$41, x$42, x$43, x$44, x$45, x$46, x$47, x$48, x$49, x$5, x$50, x$51, x$52, x$53, x$54, x$55, x$56, x$57, x$58, x$59, x$6, x$60, x$61, x$62, x$63, x$64, x$65, x$66, x$67, x$68, x$69, x$7, x$70, x$71, x$72, x$73, x$74, x$75, x$76, x$77, x$78, x$8, x$9, $s, $r, $c} = $restore(this, {expr, in$1}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: assertOrWith = [assertOrWith]; e = [e]; @@ -181388,39 +182631,39 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $r = $clone(p[0].log, logger.Log).AddError(p[0].tracker, $clone(new logger.Range.ptr($clone(expr[0].Loc, logger.Loc), 0), logger.Range), "Invalid assignment target"); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 2: _ref = expr[0].Data; - /* */ if ($assertType(_ref, ptrType$21, true)[1] || $assertType(_ref, ptrType$27, true)[1] || $assertType(_ref, ptrType$22, true)[1] || $assertType(_ref, ptrType$33, true)[1] || $assertType(_ref, ptrType$101, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$53, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$36, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType$94, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref, ptrType$102, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref, ptrType$21, true)[1] || $assertType(_ref, ptrType$28, true)[1] || $assertType(_ref, ptrType$22, true)[1] || $assertType(_ref, ptrType$34, true)[1] || $assertType(_ref, ptrType$110, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$56, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$38, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$101, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref, ptrType$111, true)[1]) { $s = 8; continue; } /* */ if ($assertType(_ref, ptrType$16, true)[1]) { $s = 9; continue; } /* */ if ($assertType(_ref, ptrType$18, true)[1]) { $s = 10; continue; } - /* */ if ($assertType(_ref, ptrType$95, true)[1]) { $s = 11; continue; } - /* */ if ($assertType(_ref, ptrType$96, true)[1]) { $s = 12; continue; } - /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 13; continue; } - /* */ if ($assertType(_ref, ptrType$32, true)[1]) { $s = 14; continue; } - /* */ if ($assertType(_ref, ptrType$103, true)[1]) { $s = 15; continue; } - /* */ if ($assertType(_ref, ptrType$91, true)[1]) { $s = 16; continue; } - /* */ if ($assertType(_ref, ptrType$45, true)[1]) { $s = 17; continue; } - /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 18; continue; } - /* */ if ($assertType(_ref, ptrType$23, true)[1]) { $s = 19; continue; } - /* */ if ($assertType(_ref, ptrType$47, true)[1]) { $s = 20; continue; } - /* */ if ($assertType(_ref, ptrType$90, true)[1]) { $s = 21; continue; } - /* */ if ($assertType(_ref, ptrType$87, true)[1]) { $s = 22; continue; } - /* */ if ($assertType(_ref, ptrType$88, true)[1]) { $s = 23; continue; } + /* */ if ($assertType(_ref, ptrType$102, true)[1]) { $s = 11; continue; } + /* */ if ($assertType(_ref, ptrType$104, true)[1]) { $s = 12; continue; } + /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 13; continue; } + /* */ if ($assertType(_ref, ptrType$33, true)[1]) { $s = 14; continue; } + /* */ if ($assertType(_ref, ptrType$112, true)[1]) { $s = 15; continue; } + /* */ if ($assertType(_ref, ptrType$96, true)[1]) { $s = 16; continue; } + /* */ if ($assertType(_ref, ptrType$47, true)[1]) { $s = 17; continue; } + /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 18; continue; } + /* */ if ($assertType(_ref, ptrType$24, true)[1]) { $s = 19; continue; } + /* */ if ($assertType(_ref, ptrType$50, true)[1]) { $s = 20; continue; } + /* */ if ($assertType(_ref, ptrType$95, true)[1]) { $s = 21; continue; } + /* */ if ($assertType(_ref, ptrType$92, true)[1]) { $s = 22; continue; } + /* */ if ($assertType(_ref, ptrType$93, true)[1]) { $s = 23; continue; } /* */ if ($assertType(_ref, ptrType$17, true)[1]) { $s = 24; continue; } /* */ if ($assertType(_ref, ptrType$15, true)[1]) { $s = 25; continue; } - /* */ if ($assertType(_ref, ptrType$89, true)[1]) { $s = 26; continue; } - /* */ if ($assertType(_ref, ptrType$39, true)[1]) { $s = 27; continue; } - /* */ if ($assertType(_ref, ptrType$71, true)[1]) { $s = 28; continue; } - /* */ if ($assertType(_ref, ptrType$54, true)[1]) { $s = 29; continue; } - /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 30; continue; } - /* */ if ($assertType(_ref, ptrType$30, true)[1]) { $s = 31; continue; } + /* */ if ($assertType(_ref, ptrType$94, true)[1]) { $s = 26; continue; } + /* */ if ($assertType(_ref, ptrType$41, true)[1]) { $s = 27; continue; } + /* */ if ($assertType(_ref, ptrType$75, true)[1]) { $s = 28; continue; } + /* */ if ($assertType(_ref, ptrType$57, true)[1]) { $s = 29; continue; } + /* */ if ($assertType(_ref, ptrType$29, true)[1]) { $s = 30; continue; } + /* */ if ($assertType(_ref, ptrType$31, true)[1]) { $s = 31; continue; } /* */ $s = 32; continue; - /* switch (0) { default: if ($assertType(_ref, ptrType$21, true)[1] || $assertType(_ref, ptrType$27, true)[1] || $assertType(_ref, ptrType$22, true)[1] || $assertType(_ref, ptrType$33, true)[1] || $assertType(_ref, ptrType$101, true)[1]) { */ case 4: + /* switch (0) { default: if ($assertType(_ref, ptrType$21, true)[1] || $assertType(_ref, ptrType$28, true)[1] || $assertType(_ref, ptrType$22, true)[1] || $assertType(_ref, ptrType$34, true)[1] || $assertType(_ref, ptrType$110, true)[1]) { */ case 4: e$2 = _ref; $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$53, true)[1]) { */ case 5: + /* } else if ($assertType(_ref, ptrType$56, true)[1]) { */ case 5: e$3 = _ref.$val; /* */ if (p[0].options.optionsThatSupportStructuralEquality.unsupportedJSFeatures.Has(new compat.JSFeature(0, 32))) { $s = 34; continue; } /* */ $s = 35; continue; @@ -181430,11 +182673,11 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { p[0].recordUsage($clone(p[0].makeBigIntRef(), ast.Ref)); /* } */ case 35: $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$36, true)[1]) { */ case 6: + /* } else if ($assertType(_ref, ptrType$38, true)[1]) { */ case 6: e$4 = _ref.$val; ast.Ref.copy(e$4.Ref, p[0].symbolForMangledProp(p[0].loadNameFromRef($clone(e$4.Ref, ast.Ref)))); $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$94, true)[1]) { */ case 7: + /* } else if ($assertType(_ref, ptrType$101, true)[1]) { */ case 7: e$5 = _ref.$val; _r$1 = p[0].isUnsupportedRegularExpression($clone(expr[0].Loc, logger.Loc), e$5.Value); /* */ $s = 37; case 37: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple = _r$1; @@ -181451,7 +182694,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $s = -1; return [new js_ast.Expr.ptr(new js_ast.ENew.ptr($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(regExpRef, ast.Ref), false, false, false), $clone(expr[0].Loc, logger.Loc)), js_ast.Expr), args, $clone(new logger.Loc.ptr(expr[0].Loc.Start + ((e$5.Value.length >> 0)) >> 0), logger.Loc), false, false), $clone(expr[0].Loc, logger.Loc)), new exprOut.ptr($throwNilPointerError, $throwNilPointerError, false, false, false)]; } $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$102, true)[1]) { */ case 8: + /* } else if ($assertType(_ref, ptrType$111, true)[1]) { */ case 8: e$6 = _ref.$val; /* */ if (!p[0].fnOnlyDataVisit.isNewTargetAllowed) { $s = 38; continue; } /* */ $s = 39; continue; @@ -181501,7 +182744,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* } */ case 56: /* } */ case 54: $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$95, true)[1]) { */ case 11: + /* } else if ($assertType(_ref, ptrType$102, true)[1]) { */ case 11: e$9 = _ref.$val; isDeleteTarget = $interfaceIsEqual(e$9, p[0].deleteTarget); isCallTarget = $interfaceIsEqual(e$9, p[0].callTarget); @@ -181517,7 +182760,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $s = -1; return [new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(p[0].captureThis(), ast.Ref), false, false, false), $clone(expr[0].Loc, logger.Loc)), new exprOut.ptr($throwNilPointerError, $throwNilPointerError, false, false, false)]; } $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$96, true)[1]) { */ case 12: + /* } else if ($assertType(_ref, ptrType$104, true)[1]) { */ case 12: e$10 = _ref.$val; isDeleteTarget$1 = $interfaceIsEqual(e$10, p[0].deleteTarget); isCallTarget$1 = $interfaceIsEqual(e$10, p[0].callTarget); @@ -181536,10 +182779,10 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ if (_r$4) { $s = 63; continue; } /* */ $s = 64; continue; /* if (_r$4) { */ case 63: - /* */ if (!(define.DefineExpr === ptrType$97.nil)) { $s = 66; continue; } + /* */ if (!(define.DefineExpr === ptrType$105.nil)) { $s = 66; continue; } /* */ $s = 67; continue; - /* if (!(define.DefineExpr === ptrType$97.nil)) { */ case 66: - _r$5 = p[0].instantiateDefineExpr($clone(expr[0].Loc, logger.Loc), $clone(define.DefineExpr, config.DefineExpr), $clone(new identifierOpts.ptr(in$1.assignTarget, isCallTarget$1, isDeleteTarget$1, false, false, false), identifierOpts)); /* */ $s = 68; case 68: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* if (!(define.DefineExpr === ptrType$105.nil)) { */ case 66: + _r$5 = p[0].instantiateDefineExpr($clone(expr[0].Loc, logger.Loc), $clone((x = define.DefineExpr, (x === ptrType$105.nil && $throwNilPointerError(), x)), config.DefineExpr), $clone(new identifierOpts.ptr(in$1.assignTarget, isCallTarget$1, isDeleteTarget$1, false, false, false), identifierOpts)); /* */ $s = 68; case 68: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } $24r = [_r$5, new exprOut.ptr($throwNilPointerError, $throwNilPointerError, false, false, false)]; $s = 69; case 69: return $24r; /* } */ case 67: @@ -181600,12 +182843,12 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $s = -1; return [importMeta, new exprOut.ptr($throwNilPointerError, $throwNilPointerError, false, false, false)]; } $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 13: + /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 13: e$11 = _ref.$val; _r$10 = p[0].visitExpr($clone(e$11.Value, js_ast.Expr)); /* */ $s = 85; case 85: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } js_ast.Expr.copy(e$11.Value, _r$10); $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$32, true)[1]) { */ case 14: + /* } else if ($assertType(_ref, ptrType$33, true)[1]) { */ case 14: e$12 = _ref.$val; isCallTarget$2 = $interfaceIsEqual(e$12, p[0].callTarget); isDeleteTarget$2 = $interfaceIsEqual(e$12, p[0].deleteTarget); @@ -181619,9 +182862,9 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { result = $clone(_r$11, findSymbolResult); e$12.MustKeepDueToWithStmt = result.isInsideWithScope; ast.Ref.copy(e$12.Ref, result.ref); - /* */ if ((x = p[0].symbols, x$1 = result.ref.InnerIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Kind === 7) { $s = 90; continue; } + /* */ if ((x$1 = p[0].symbols, x$2 = result.ref.InnerIndex, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])).Kind === 7) { $s = 90; continue; } /* */ $s = 91; continue; - /* if ((x = p[0].symbols, x$1 = result.ref.InnerIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Kind === 7) { */ case 90: + /* if ((x$1 = p[0].symbols, x$2 = result.ref.InnerIndex, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])).Kind === 7) { */ case 90: _arg$5 = p[0].tracker; _arg$6 = $clone(js_lexer.RangeOfIdentifier($clone(p[0].source, logger.Source), $clone(expr[0].Loc, logger.Loc)), logger.Range); _r$12 = fmt.Sprintf("Accessing class %q before initialization will throw", new sliceType$1([new $String(name$2)])); /* */ $s = 92; case 92: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } @@ -181632,7 +182875,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ if (!((in$1.assignTarget === 0))) { $s = 94; continue; } /* */ $s = 95; continue; /* if (!((in$1.assignTarget === 0))) { */ case 94: - _1 = (x$2 = p[0].symbols, x$3 = result.ref.InnerIndex, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])).Kind; + _1 = (x$3 = p[0].symbols, x$4 = result.ref.InnerIndex, ((x$4 < 0 || x$4 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + x$4])).Kind; /* */ if (_1 === (22)) { $s = 97; continue; } /* */ if (_1 === (23)) { $s = 98; continue; } /* */ $s = 99; continue; @@ -181688,19 +182931,19 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { case 96: /* } */ case 95: methodCallMustBeReplacedWithUndefined = false; - /* */ if (new ast.SymbolKind((x$4 = p[0].symbols, x$5 = e$12.Ref.InnerIndex, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])).Kind).IsUnboundOrInjected() && !result.isInsideWithScope && !($interfaceIsEqual(e$12, p[0].deleteTarget))) { $s = 115; continue; } + /* */ if (new ast.SymbolKind((x$5 = p[0].symbols, x$6 = e$12.Ref.InnerIndex, ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$6])).Kind).IsUnboundOrInjected() && !result.isInsideWithScope && !($interfaceIsEqual(e$12, p[0].deleteTarget))) { $s = 115; continue; } /* */ $s = 116; continue; - /* if (new ast.SymbolKind((x$4 = p[0].symbols, x$5 = e$12.Ref.InnerIndex, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])).Kind).IsUnboundOrInjected() && !result.isInsideWithScope && !($interfaceIsEqual(e$12, p[0].deleteTarget))) { */ case 115: - _tuple$8 = (_entry$6 = $mapIndex(p[0].options.defines.IdentifierDefines,$String.keyFor(name$2)), _entry$6 !== undefined ? [_entry$6.v, true] : [new config.DefineData.ptr(sliceType.nil, ptrType$97.nil, 0), false]); + /* if (new ast.SymbolKind((x$5 = p[0].symbols, x$6 = e$12.Ref.InnerIndex, ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$6])).Kind).IsUnboundOrInjected() && !result.isInsideWithScope && !($interfaceIsEqual(e$12, p[0].deleteTarget))) { */ case 115: + _tuple$8 = (_entry$6 = $mapIndex(p[0].options.defines.IdentifierDefines,$String.keyFor(name$2)), _entry$6 !== undefined ? [_entry$6.v, true] : [new config.DefineData.ptr(sliceType.nil, ptrType$105.nil, 0), false]); data = $clone(_tuple$8[0], config.DefineData); ok$7 = _tuple$8[1]; /* */ if (ok$7) { $s = 117; continue; } /* */ $s = 118; continue; /* if (ok$7) { */ case 117: - /* */ if (!(data.DefineExpr === ptrType$97.nil)) { $s = 119; continue; } + /* */ if (!(data.DefineExpr === ptrType$105.nil)) { $s = 119; continue; } /* */ $s = 120; continue; - /* if (!(data.DefineExpr === ptrType$97.nil)) { */ case 119: - _r$20 = p[0].instantiateDefineExpr($clone(expr[0].Loc, logger.Loc), $clone(data.DefineExpr, config.DefineExpr), $clone(new identifierOpts.ptr(in$1.assignTarget, isCallTarget$2, isDeleteTarget$2, false, false, false), identifierOpts)); /* */ $s = 121; case 121: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + /* if (!(data.DefineExpr === ptrType$105.nil)) { */ case 119: + _r$20 = p[0].instantiateDefineExpr($clone(expr[0].Loc, logger.Loc), $clone((x$7 = data.DefineExpr, (x$7 === ptrType$105.nil && $throwNilPointerError(), x$7)), config.DefineExpr), $clone(new identifierOpts.ptr(in$1.assignTarget, isCallTarget$2, isDeleteTarget$2, false, false, false), identifierOpts)); /* */ $s = 121; case 121: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } new$1 = $clone(_r$20, js_ast.Expr); /* */ if ((in$1.assignTarget === 0) || defineValueCanBeUsedInAssignTarget(new$1.Data)) { $s = 122; continue; } /* */ $s = 123; continue; @@ -181725,7 +182968,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { _r$21 = p[0].handleIdentifier($clone(expr[0].Loc, logger.Loc), e$12, $clone(new identifierOpts.ptr(in$1.assignTarget, isCallTarget$2, isDeleteTarget$2, false, true, false), identifierOpts)); /* */ $s = 126; case 126: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } $24r$2 = [_r$21, new exprOut.ptr($throwNilPointerError, $throwNilPointerError, false, false, methodCallMustBeReplacedWithUndefined)]; $s = 127; case 127: return $24r$2; - /* } else if ($assertType(_ref, ptrType$103, true)[1]) { */ case 15: + /* } else if ($assertType(_ref, ptrType$112, true)[1]) { */ case 15: e$13 = _ref.$val; propsLoc = $clone(expr[0].Loc, logger.Loc); jsxSourceLine = 0; @@ -181775,7 +183018,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { hasSpread = true; $s = 136; continue; /* } else { */ case 135: - _tuple$10 = $assertType(property.Key.Data, ptrType$36, true); + _tuple$10 = $assertType(property.Key.Data, ptrType$38, true); mangled = _tuple$10[0]; ok$8 = _tuple$10[1]; /* */ if (ok$8) { $s = 137; continue; } @@ -181800,7 +183043,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { _r$25 = p[0].visitExpr($clone(property.InitializerOrNil, js_ast.Expr)); /* */ $s = 146; case 146: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } js_ast.Expr.copy(property.InitializerOrNil, _r$25); /* } */ case 145: - js_ast.Property.copy((x$6 = e$13.Properties, ((i < 0 || i >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + i])), property); + js_ast.Property.copy((x$8 = e$13.Properties, ((i < 0 || i >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + i])), property); _i$2++; $s = 132; continue; case 133: @@ -181820,7 +183063,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ $s = 152; continue; /* if (!($interfaceIsEqual(childOrNil.Data, $ifaceNil))) { */ case 151: _r$26 = p[0].visitExpr($clone(childOrNil, js_ast.Expr)); /* */ $s = 153; case 153: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - js_ast.Expr.copy((x$7 = e$13.NullableChildren, ((i$1 < 0 || i$1 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + i$1])), _r$26); + js_ast.Expr.copy((x$9 = e$13.NullableChildren, ((i$1 < 0 || i$1 >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + i$1])), _r$26); /* } */ case 152: _i$3++; $s = 149; continue; @@ -181830,12 +183073,12 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ $s = 155; continue; /* if (p[0].options.jsx.Preserve) { */ case 154: _ref$5 = e$13.TagOrNil.Data; - if ($assertType(_ref$5, ptrType$32, true)[1]) { + if ($assertType(_ref$5, ptrType$33, true)[1]) { tag = _ref$5.$val; - (x$10 = p[0].symbols, x$11 = tag.Ref.InnerIndex, ((x$11 < 0 || x$11 >= x$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + x$11])).Flags = ((x$8 = p[0].symbols, x$9 = tag.Ref.InnerIndex, ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + x$9])).Flags | (2)) >>> 0; - } else if ($assertType(_ref$5, ptrType$100, true)[1]) { + (x$12 = p[0].symbols, x$13 = tag.Ref.InnerIndex, ((x$13 < 0 || x$13 >= x$12.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + x$13])).Flags = ((x$10 = p[0].symbols, x$11 = tag.Ref.InnerIndex, ((x$11 < 0 || x$11 >= x$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + x$11])).Flags | (2)) >>> 0; + } else if ($assertType(_ref$5, ptrType$109, true)[1]) { tag$1 = _ref$5.$val; - (x$14 = p[0].symbols, x$15 = tag$1.Ref.InnerIndex, ((x$15 < 0 || x$15 >= x$14.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + x$15])).Flags = ((x$12 = p[0].symbols, x$13 = tag$1.Ref.InnerIndex, ((x$13 < 0 || x$13 >= x$12.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + x$13])).Flags | (2)) >>> 0; + (x$16 = p[0].symbols, x$17 = tag$1.Ref.InnerIndex, ((x$17 < 0 || x$17 >= x$16.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$16.$array[x$16.$offset + x$17])).Flags = ((x$14 = p[0].symbols, x$15 = tag$1.Ref.InnerIndex, ((x$15 < 0 || x$15 >= x$14.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + x$15])).Flags | (2)) >>> 0; } $s = 156; continue; /* } else { */ case 155: @@ -181981,7 +183224,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { if (children.$length > 1) { childrenValue.Data = new js_ast.EArray.ptr(children, new logger.Loc.ptr(0), new logger.Loc.ptr(0), false, false); } else { - _tuple$14 = $assertType(childrenValue.Data, ptrType$26, true); + _tuple$14 = $assertType(childrenValue.Data, ptrType$27, true); ok$12 = _tuple$14[1]; if (ok$12) { childrenValue.Data = new js_ast.EArray.ptr(new sliceType$6([$clone(childrenValue, js_ast.Expr)]), new logger.Loc.ptr(0), new logger.Loc.ptr(0), false, false); @@ -181999,14 +183242,14 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { args$2 = $append(args$2, new js_ast.Expr.ptr(new js_ast.EObject.ptr(new sliceType$9([$clone(new js_ast.Property.ptr(ptrType$20.nil, $clone(new js_ast.Expr.ptr(new js_ast.EString.ptr(helpers.StringToUTF16("fileName"), new logger.Loc.ptr(0), false, false, false), $clone(expr[0].Loc, logger.Loc)), js_ast.Expr), $clone(new js_ast.Expr.ptr(new js_ast.EString.ptr(helpers.StringToUTF16(p[0].source.PrettyPath), new logger.Loc.ptr(0), false, false, false), $clone(expr[0].Loc, logger.Loc)), js_ast.Expr), new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), sliceType$11.nil, new logger.Loc.ptr(0), new logger.Loc.ptr(0), 0, 0), js_ast.Property), $clone(new js_ast.Property.ptr(ptrType$20.nil, $clone(new js_ast.Expr.ptr(new js_ast.EString.ptr(helpers.StringToUTF16("lineNumber"), new logger.Loc.ptr(0), false, false, false), $clone(expr[0].Loc, logger.Loc)), js_ast.Expr), $clone(new js_ast.Expr.ptr(new js_ast.ENumber.ptr(((jsxSourceLine + 1 >> 0))), $clone(expr[0].Loc, logger.Loc)), js_ast.Expr), new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), sliceType$11.nil, new logger.Loc.ptr(0), new logger.Loc.ptr(0), 0, 0), js_ast.Property), $clone(new js_ast.Property.ptr(ptrType$20.nil, $clone(new js_ast.Expr.ptr(new js_ast.EString.ptr(helpers.StringToUTF16("columnNumber"), new logger.Loc.ptr(0), false, false, false), $clone(expr[0].Loc, logger.Loc)), js_ast.Expr), $clone(new js_ast.Expr.ptr(new js_ast.ENumber.ptr(((jsxSourceColumn + 1 >> 0))), $clone(expr[0].Loc, logger.Loc)), js_ast.Expr), new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), sliceType$11.nil, new logger.Loc.ptr(0), new logger.Loc.ptr(0), 0, 0), js_ast.Property)]), new logger.Loc.ptr(0), new logger.Loc.ptr(0), false, false), $clone(expr[0].Loc, logger.Loc))); __self = new js_ast.Expr.ptr(js_ast.EThisShared, $clone(expr[0].Loc, logger.Loc)); if (p[0].fnOnlyDataVisit.shouldReplaceThisWithInnerClassNameRef) { - p[0].recordUsage($clone(p[0].fnOnlyDataVisit.innerClassNameRef, ast.Ref)); - __self.Data = new js_ast.EIdentifier.ptr($clone(p[0].fnOnlyDataVisit.innerClassNameRef, ast.Ref), false, false, false); + p[0].recordUsage($clone((x$18 = p[0].fnOnlyDataVisit.innerClassNameRef, (x$18 === ptrType$11.nil && $throwNilPointerError(), x$18)), ast.Ref)); + __self.Data = new js_ast.EIdentifier.ptr($clone((x$19 = p[0].fnOnlyDataVisit.innerClassNameRef, (x$19 === ptrType$11.nil && $throwNilPointerError(), x$19)), ast.Ref), false, false, false); } else if (!p[0].fnOnlyDataVisit.isThisNested && !((p[0].options.optionsThatSupportStructuralEquality.mode === 0))) { __self.Data = js_ast.EUndefinedShared; } else if (p[0].fnOrArrowDataVisit.isDerivedClassCtor) { __self.Data = js_ast.EUndefinedShared; } - _tuple$15 = $assertType(__self.Data, ptrType$33, true); + _tuple$15 = $assertType(__self.Data, ptrType$34, true); ok$13 = _tuple$15[1]; if (!ok$13) { args$2 = $append(args$2, __self); @@ -182022,7 +183265,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* } */ case 166: /* } */ case 156: $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$91, true)[1]) { */ case 16: + /* } else if ($assertType(_ref, ptrType$96, true)[1]) { */ case 16: e$14 = _ref.$val; /* */ if (e$14.LegacyOctalLoc.Start > 0) { $s = 189; continue; } /* */ $s = 190; continue; @@ -182037,10 +183280,10 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { tagIsLoweredOptionalChain = false; if (p[0].options.optionsThatSupportStructuralEquality.unsupportedJSFeatures.Has(new compat.JSFeature(4096, 0))) { _ref$9 = e$14.TagOrNil.Data; - if ($assertType(_ref$9, ptrType$25, true)[1]) { + if ($assertType(_ref$9, ptrType$26, true)[1]) { target$1 = _ref$9.$val; tagIsLoweredOptionalChain = !((target$1.OptionalChain === 0)); - } else if ($assertType(_ref$9, ptrType$23, true)[1]) { + } else if ($assertType(_ref$9, ptrType$24, true)[1]) { target$2 = _ref$9.$val; tagIsLoweredOptionalChain = !((target$2.OptionalChain === 0)); } @@ -182053,19 +183296,19 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { js_ast.Expr.copy(e$14.TagOrNil, tag$2); tagThisFunc = tagOut.thisArgFunc; tagWrapFunc = tagOut.thisArgWrapFunc; - _tuple$17 = $assertType(tag$2.Data, ptrType$32, true); + _tuple$17 = $assertType(tag$2.Data, ptrType$33, true); id = _tuple$17[0]; ok$14 = _tuple$17[1]; - if (ok$14 && new ast.SymbolFlags((x$16 = p[0].symbols, x$17 = id.Ref.InnerIndex, ((x$17 < 0 || x$17 >= x$16.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$16.$array[x$16.$offset + x$17])).Flags).Has(1024)) { + if (ok$14 && new ast.SymbolFlags((x$20 = p[0].symbols, x$21 = id.Ref.InnerIndex, ((x$21 < 0 || x$21 >= x$20.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$20.$array[x$20.$offset + x$21])).Flags).Has(1024)) { e$14.CanBeUnwrappedIfUnused = true; } _tuple$18 = p[0].extractPrivateIndex($clone(e$14.TagOrNil, js_ast.Expr)); target$3 = $clone(_tuple$18[0], js_ast.Expr); loc = $clone(_tuple$18[1], logger.Loc); private$1 = _tuple$18[2]; - /* */ if (!(private$1 === ptrType$24.nil)) { $s = 195; continue; } + /* */ if (!(private$1 === ptrType$25.nil)) { $s = 195; continue; } /* */ $s = 196; continue; - /* if (!(private$1 === ptrType$24.nil)) { */ case 195: + /* if (!(private$1 === ptrType$25.nil)) { */ case 195: _tuple$19 = p[0].captureValueWithPossibleSideEffects($clone(target$3.Loc, logger.Loc), 2, $clone(target$3, js_ast.Expr), 1); targetFunc = _tuple$19[0]; targetWrapFunc = _tuple$19[1]; @@ -182083,7 +183326,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { i$2 = _i$7; part = $clone(((_i$7 < 0 || _i$7 >= _ref$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$10.$array[_ref$10.$offset + _i$7]), js_ast.TemplatePart); _r$38 = p[0].visitExpr($clone(part.Value, js_ast.Expr)); /* */ $s = 203; case 203: if($c) { $c = false; _r$38 = _r$38.$blk(); } if (_r$38 && _r$38.$blk !== undefined) { break s; } - js_ast.Expr.copy((x$18 = e$14.Parts, ((i$2 < 0 || i$2 >= x$18.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$18.$array[x$18.$offset + i$2])).Value, _r$38); + js_ast.Expr.copy((x$22 = e$14.Parts, ((i$2 < 0 || i$2 >= x$22.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$22.$array[x$22.$offset + i$2])).Value, _r$38); _i$7++; $s = 201; continue; case 202: @@ -182114,7 +183357,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ if (shouldLowerTemplateLiteral) { $s = 204; continue; } /* */ $s = 205; continue; /* if (shouldLowerTemplateLiteral) { */ case 204: - _tuple$20 = $assertType(expr[0].Data, ptrType$91, true); + _tuple$20 = $assertType(expr[0].Data, ptrType$96, true); e$29 = _tuple$20[0]; ok$15 = _tuple$20[1]; /* */ if (ok$15) { $s = 206; continue; } @@ -182126,7 +183369,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* } */ case 207: /* } */ case 205: $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$45, true)[1]) { */ case 17: + /* } else if ($assertType(_ref, ptrType$47, true)[1]) { */ case 17: e$15 = _ref.$val; v = new binaryExprVisitor.ptr(e$15, $clone(expr[0].Loc, logger.Loc), $clone(in$1, exprIn), new exprIn.ptr(false, false, false, false, false, 0), false, false); stackBottom = p[0].binaryExprStack.$length; @@ -182139,7 +183382,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } left = $clone(v.e.Left, js_ast.Expr); leftIn = $clone(v.leftIn, exprIn); - _tuple$21 = $assertType(left.Data, ptrType$45, true); + _tuple$21 = $assertType(left.Data, ptrType$47, true); leftBinary = _tuple$21[0]; ok$16 = _tuple$21[1]; /* */ if (!ok$16 || !((leftIn.assignTarget === 0))) { $s = 213; continue; } @@ -182161,7 +183404,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { if (n < stackBottom) { /* break; */ $s = 218; continue; } - v$1 = $clone((x$19 = p[0].binaryExprStack, ((n < 0 || n >= x$19.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$19.$array[x$19.$offset + n])), binaryExprVisitor); + v$1 = $clone((x$23 = p[0].binaryExprStack, ((n < 0 || n >= x$23.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$23.$array[x$23.$offset + n])), binaryExprVisitor); p[0].binaryExprStack = $subslice(p[0].binaryExprStack, 0, n); js_ast.Expr.copy(v$1.e.Left, expr[0]); _r$43 = v$1.visitRightAndFinish(p[0]); /* */ $s = 219; case 219: if($c) { $c = false; _r$43 = _r$43.$blk(); } if (_r$43 && _r$43.$blk !== undefined) { break s; } @@ -182169,7 +183412,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $s = 217; continue; case 218: $s = -1; return [expr[0], new exprOut.ptr($throwNilPointerError, $throwNilPointerError, false, false, false)]; - /* } else if ($assertType(_ref, ptrType$25, true)[1]) { */ case 18: + /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 18: e$16 = _ref.$val; isDeleteTarget$3 = $interfaceIsEqual(e$16, p[0].deleteTarget); isCallTarget$3 = $interfaceIsEqual(e$16, p[0].callTarget); @@ -182189,10 +183432,10 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ if (_r$44) { $s = 224; continue; } /* */ $s = 225; continue; /* if (_r$44) { */ case 224: - /* */ if (!(define$1.DefineExpr === ptrType$97.nil)) { $s = 227; continue; } + /* */ if (!(define$1.DefineExpr === ptrType$105.nil)) { $s = 227; continue; } /* */ $s = 228; continue; - /* if (!(define$1.DefineExpr === ptrType$97.nil)) { */ case 227: - _r$45 = p[0].instantiateDefineExpr($clone(expr[0].Loc, logger.Loc), $clone(define$1.DefineExpr, config.DefineExpr), $clone(new identifierOpts.ptr(in$1.assignTarget, isCallTarget$3, isDeleteTarget$3, false, false, false), identifierOpts)); /* */ $s = 229; case 229: if($c) { $c = false; _r$45 = _r$45.$blk(); } if (_r$45 && _r$45.$blk !== undefined) { break s; } + /* if (!(define$1.DefineExpr === ptrType$105.nil)) { */ case 227: + _r$45 = p[0].instantiateDefineExpr($clone(expr[0].Loc, logger.Loc), $clone((x$24 = define$1.DefineExpr, (x$24 === ptrType$105.nil && $throwNilPointerError(), x$24)), config.DefineExpr), $clone(new identifierOpts.ptr(in$1.assignTarget, isCallTarget$3, isDeleteTarget$3, false, false, false), identifierOpts)); /* */ $s = 229; case 229: if($c) { $c = false; _r$45 = _r$45.$blk(); } if (_r$45 && _r$45.$blk !== undefined) { break s; } new$2 = $clone(_r$45, js_ast.Expr); /* */ if ((in$1.assignTarget === 0) || defineValueCanBeUsedInAssignTarget(new$2.Data)) { $s = 230; continue; } /* */ $s = 231; continue; @@ -182296,7 +183539,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } /* } */ case 249: $s = -1; return [new js_ast.Expr.ptr(e$16, $clone(expr[0].Loc, logger.Loc)), out]; - /* } else if ($assertType(_ref, ptrType$23, true)[1]) { */ case 19: + /* } else if ($assertType(_ref, ptrType$24, true)[1]) { */ case 19: e$17 = _ref.$val; isCallTarget$4 = $interfaceIsEqual(e$17, p[0].callTarget); isTemplateTag$1 = $interfaceIsEqual(e$17, p[0].templateTag); @@ -182322,10 +183565,10 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ if (_r$51) { $s = 257; continue; } /* */ $s = 258; continue; /* if (_r$51) { */ case 257: - /* */ if (!(define$2.DefineExpr === ptrType$97.nil)) { $s = 260; continue; } + /* */ if (!(define$2.DefineExpr === ptrType$105.nil)) { $s = 260; continue; } /* */ $s = 261; continue; - /* if (!(define$2.DefineExpr === ptrType$97.nil)) { */ case 260: - _r$52 = p[0].instantiateDefineExpr($clone(expr[0].Loc, logger.Loc), $clone(define$2.DefineExpr, config.DefineExpr), $clone(new identifierOpts.ptr(in$1.assignTarget, isCallTarget$4, isDeleteTarget$4, false, false, false), identifierOpts)); /* */ $s = 262; case 262: if($c) { $c = false; _r$52 = _r$52.$blk(); } if (_r$52 && _r$52.$blk !== undefined) { break s; } + /* if (!(define$2.DefineExpr === ptrType$105.nil)) { */ case 260: + _r$52 = p[0].instantiateDefineExpr($clone(expr[0].Loc, logger.Loc), $clone((x$25 = define$2.DefineExpr, (x$25 === ptrType$105.nil && $throwNilPointerError(), x$25)), config.DefineExpr), $clone(new identifierOpts.ptr(in$1.assignTarget, isCallTarget$4, isDeleteTarget$4, false, false, false), identifierOpts)); /* */ $s = 262; case 262: if($c) { $c = false; _r$52 = _r$52.$blk(); } if (_r$52 && _r$52.$blk !== undefined) { break s; } new$3 = $clone(_r$52, js_ast.Expr); /* */ if ((in$1.assignTarget === 0) || defineValueCanBeUsedInAssignTarget(new$3.Data)) { $s = 263; continue; } /* */ $s = 264; continue; @@ -182388,7 +183631,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { target$5 = $clone(_tuple$30[0], js_ast.Expr); out$1 = $clone(_tuple$30[1], exprOut); js_ast.Expr.copy(e$17.Target, target$5); - _tuple$31 = $assertType(e$17.Index.Data, ptrType$24, true); + _tuple$31 = $assertType(e$17.Index.Data, ptrType$25, true); private$2 = _tuple$31[0]; ok$23 = _tuple$31[1]; /* */ if (ok$23) { $s = 275; continue; } @@ -182398,7 +183641,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { _r$56 = p[0].findSymbol($clone(e$17.Index.Loc, logger.Loc), name$4); /* */ $s = 278; case 278: if($c) { $c = false; _r$56 = _r$56.$blk(); } if (_r$56 && _r$56.$blk !== undefined) { break s; } result$2 = $clone(_r$56, findSymbolResult); ast.Ref.copy(private$2.Ref, result$2.ref); - kind$2 = (x$20 = p[0].symbols, x$21 = result$2.ref.InnerIndex, ((x$21 < 0 || x$21 >= x$20.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$20.$array[x$20.$offset + x$21])).Kind; + kind$2 = (x$26 = p[0].symbols, x$27 = result$2.ref.InnerIndex, ((x$27 < 0 || x$27 >= x$26.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$26.$array[x$26.$offset + x$27])).Kind; /* */ if (!new ast.SymbolKind(kind$2).IsPrivate()) { $s = 279; continue; } /* */ $s = 280; continue; /* if (!new ast.SymbolKind(kind$2).IsPrivate()) { */ case 279: @@ -182488,16 +183731,16 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ if ((p[0].options.optionsThatSupportStructuralEquality.mode === 2) && (!((in$1.assignTarget === 0)) || isDeleteTarget$4)) { $s = 302; continue; } /* */ $s = 303; continue; /* if ((p[0].options.optionsThatSupportStructuralEquality.mode === 2) && (!((in$1.assignTarget === 0)) || isDeleteTarget$4)) { */ case 302: - _tuple$35 = $assertType(e$17.Target.Data, ptrType$32, true); + _tuple$35 = $assertType(e$17.Target.Data, ptrType$33, true); id$1 = _tuple$35[0]; ok$26 = _tuple$35[1]; - /* */ if (ok$26 && ((x$22 = p[0].symbols, x$23 = id$1.Ref.InnerIndex, ((x$23 < 0 || x$23 >= x$22.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$22.$array[x$22.$offset + x$23])).Kind === 21)) { $s = 304; continue; } + /* */ if (ok$26 && ((x$28 = p[0].symbols, x$29 = id$1.Ref.InnerIndex, ((x$29 < 0 || x$29 >= x$28.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$28.$array[x$28.$offset + x$29])).Kind === 21)) { $s = 304; continue; } /* */ $s = 305; continue; - /* if (ok$26 && ((x$22 = p[0].symbols, x$23 = id$1.Ref.InnerIndex, ((x$23 < 0 || x$23 >= x$22.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$22.$array[x$22.$offset + x$23])).Kind === 21)) { */ case 304: + /* if (ok$26 && ((x$28 = p[0].symbols, x$29 = id$1.Ref.InnerIndex, ((x$29 < 0 || x$29 >= x$28.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$28.$array[x$28.$offset + x$29])).Kind === 21)) { */ case 304: r$12 = $clone(js_lexer.RangeOfIdentifier($clone(p[0].source, logger.Source), $clone(e$17.Target.Loc, logger.Loc)), logger.Range); _arg$31 = p[0].tracker; _arg$32 = $clone(r$12, logger.Range); - _r$64 = fmt.Sprintf("Cannot assign to property on import %q", new sliceType$1([new $String((x$24 = p[0].symbols, x$25 = id$1.Ref.InnerIndex, ((x$25 < 0 || x$25 >= x$24.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$24.$array[x$24.$offset + x$25])).OriginalName)])); /* */ $s = 306; case 306: if($c) { $c = false; _r$64 = _r$64.$blk(); } if (_r$64 && _r$64.$blk !== undefined) { break s; } + _r$64 = fmt.Sprintf("Cannot assign to property on import %q", new sliceType$1([new $String((x$30 = p[0].symbols, x$31 = id$1.Ref.InnerIndex, ((x$31 < 0 || x$31 >= x$30.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$30.$array[x$30.$offset + x$31])).OriginalName)])); /* */ $s = 306; case 306: if($c) { $c = false; _r$64 = _r$64.$blk(); } if (_r$64 && _r$64.$blk !== undefined) { break s; } _arg$33 = _r$64; _arg$34 = new sliceType$4([$clone(new logger.MsgData.ptr($ifaceNil, ptrType$2.nil, "Imports are immutable in JavaScript. To modify the value of this import, you must export a setter function in the imported file and then import and call that function here instead.", false), logger.MsgData)]); $r = $clone(p[0].log, logger.Log).AddErrorWithNotes(_arg$31, _arg$32, _arg$33, _arg$34); /* */ $s = 307; case 307: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } @@ -182524,13 +183767,13 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { if (ok$28) { intValue = math.Floor(index$1.Value); if ((index$1.Value === intValue) && intValue >= 0 && intValue < (target$6.Value.$length)) { - $s = -1; return [new js_ast.Expr.ptr(new js_ast.EString.ptr(new sliceType$3([(x$26 = target$6.Value, x$27 = ((intValue >> 0)), ((x$27 < 0 || x$27 >= x$26.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$26.$array[x$26.$offset + x$27]))]), new logger.Loc.ptr(0), false, false, false), $clone(expr[0].Loc, logger.Loc)), out$1]; + $s = -1; return [new js_ast.Expr.ptr(new js_ast.EString.ptr(new sliceType$3([(x$32 = target$6.Value, x$33 = ((intValue >> 0)), ((x$33 < 0 || x$33 >= x$32.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$32.$array[x$32.$offset + x$33]))]), new logger.Loc.ptr(0), false, false, false), $clone(expr[0].Loc, logger.Loc)), out$1]; } } } } $s = -1; return [new js_ast.Expr.ptr(e$17, $clone(expr[0].Loc, logger.Loc)), out$1]; - /* } else if ($assertType(_ref, ptrType$47, true)[1]) { */ case 20: + /* } else if ($assertType(_ref, ptrType$50, true)[1]) { */ case 20: e$18 = _ref.$val; _3 = e$18.Op; /* */ if (_3 === (5)) { $s = 309; continue; } @@ -182550,27 +183793,27 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* } else if (_3 === (6)) { */ case 310: superPropLoc = new logger.Loc.ptr(0); _ref$16 = e$18.Value.Data; - /* */ if ($assertType(_ref$16, ptrType$25, true)[1]) { $s = 314; continue; } - /* */ if ($assertType(_ref$16, ptrType$23, true)[1]) { $s = 315; continue; } - /* */ if ($assertType(_ref$16, ptrType$32, true)[1]) { $s = 316; continue; } + /* */ if ($assertType(_ref$16, ptrType$26, true)[1]) { $s = 314; continue; } + /* */ if ($assertType(_ref$16, ptrType$24, true)[1]) { $s = 315; continue; } + /* */ if ($assertType(_ref$16, ptrType$33, true)[1]) { $s = 316; continue; } /* */ $s = 317; continue; - /* if ($assertType(_ref$16, ptrType$25, true)[1]) { */ case 314: + /* if ($assertType(_ref$16, ptrType$26, true)[1]) { */ case 314: e2 = _ref$16.$val; - _tuple$40 = $assertType(e2.Target.Data, ptrType$27, true); + _tuple$40 = $assertType(e2.Target.Data, ptrType$28, true); ok$30 = _tuple$40[1]; if (ok$30) { logger.Loc.copy(superPropLoc, e2.Target.Loc); } $s = 317; continue; - /* } else if ($assertType(_ref$16, ptrType$23, true)[1]) { */ case 315: + /* } else if ($assertType(_ref$16, ptrType$24, true)[1]) { */ case 315: e2$1 = _ref$16.$val; - _tuple$41 = $assertType(e2$1.Target.Data, ptrType$27, true); + _tuple$41 = $assertType(e2$1.Target.Data, ptrType$28, true); ok$31 = _tuple$41[1]; if (ok$31) { logger.Loc.copy(superPropLoc, e2$1.Target.Loc); } $s = 317; continue; - /* } else if ($assertType(_ref$16, ptrType$32, true)[1]) { */ case 316: + /* } else if ($assertType(_ref$16, ptrType$33, true)[1]) { */ case 316: e2$2 = _ref$16.$val; $r = p[0].markStrictModeFeature(1, $clone(js_lexer.RangeOfIdentifier($clone(p[0].source, logger.Source), $clone(e$18.Value.Loc, logger.Loc)), logger.Range), ""); /* */ $s = 318; case 318: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 317: @@ -182680,7 +183923,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { target$7 = $clone(_tuple$49[0], js_ast.Expr); loc$1 = $clone(_tuple$49[1], logger.Loc); private$3 = _tuple$49[2]; - if (!(private$3 === ptrType$24.nil)) { + if (!(private$3 === ptrType$25.nil)) { $s = -1; return [p[0].lowerPrivateSetUnOp($clone(target$7, js_ast.Expr), $clone(loc$1, logger.Loc), private$3, e$18.Op), new exprOut.ptr($throwNilPointerError, $throwNilPointerError, false, false, false)]; } property$3 = $clone(p[0].extractSuperProperty($clone(e$18.Value, js_ast.Expr)), js_ast.Expr); @@ -182692,7 +183935,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* } */ case 312: case 308: if (p[0].options.optionsThatSupportStructuralEquality.minifySyntax && !((e$18.Op === 6)) && !((e$18.Op === 5))) { - _tuple$50 = $assertType(e$18.Value.Data, ptrType$45, true); + _tuple$50 = $assertType(e$18.Value.Data, ptrType$47, true); comma = _tuple$50[0]; ok$37 = _tuple$50[1]; if (ok$37 && (comma.Op === 36)) { @@ -182700,7 +183943,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } } $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$90, true)[1]) { */ case 21: + /* } else if ($assertType(_ref, ptrType$95, true)[1]) { */ case 21: e$19 = _ref.$val; _r$71 = p[0].visitExpr($clone(e$19.Test, js_ast.Expr)); /* */ $s = 343; case 343: if($c) { $c = false; _r$71 = _r$71.$blk(); } if (_r$71 && _r$71.$blk !== undefined) { break s; } js_ast.Expr.copy(e$19.Test, _r$71); @@ -182785,7 +184028,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $s = 376; case 376: return $24r$12; /* } */ case 374: $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$87, true)[1]) { */ case 22: + /* } else if ($assertType(_ref, ptrType$92, true)[1]) { */ case 22: e$20 = _ref.$val; /* */ if (p[0].fnOrArrowDataVisit.isOutsideFnOrArrow) { $s = 377; continue; } /* */ $s = 378; continue; @@ -182806,7 +184049,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { _r$86 = p[0].visitExpr($clone(e$20.Value, js_ast.Expr)); /* */ $s = 385; case 385: if($c) { $c = false; _r$86 = _r$86.$blk(); } if (_r$86 && _r$86.$blk !== undefined) { break s; } js_ast.Expr.copy(e$20.Value, _r$86); $s = -1; return [p[0].maybeLowerAwait($clone(expr[0].Loc, logger.Loc), e$20), new exprOut.ptr($throwNilPointerError, $throwNilPointerError, false, false, false)]; - /* } else if ($assertType(_ref, ptrType$88, true)[1]) { */ case 23: + /* } else if ($assertType(_ref, ptrType$93, true)[1]) { */ case 23: e$21 = _ref.$val; /* */ if (!($interfaceIsEqual(e$21.ValueOrNil.Data, $ifaceNil))) { $s = 386; continue; } /* */ $s = 387; continue; @@ -182839,21 +184082,21 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { i$3 = _i$12; item = $clone(((_i$12 < 0 || _i$12 >= _ref$17.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$17.$array[_ref$17.$offset + _i$12]), js_ast.Expr); _ref$18 = item.Data; - /* */ if ($assertType(_ref$18, ptrType$70, true)[1]) { $s = 397; continue; } - /* */ if ($assertType(_ref$18, ptrType$26, true)[1]) { $s = 398; continue; } - /* */ if ($assertType(_ref$18, ptrType$45, true)[1]) { $s = 399; continue; } + /* */ if ($assertType(_ref$18, ptrType$74, true)[1]) { $s = 397; continue; } + /* */ if ($assertType(_ref$18, ptrType$27, true)[1]) { $s = 398; continue; } + /* */ if ($assertType(_ref$18, ptrType$47, true)[1]) { $s = 399; continue; } /* */ $s = 400; continue; - /* if ($assertType(_ref$18, ptrType$70, true)[1]) { */ case 397: + /* if ($assertType(_ref$18, ptrType$74, true)[1]) { */ case 397: e2$3 = _ref$18.$val; $s = 401; continue; - /* } else if ($assertType(_ref$18, ptrType$26, true)[1]) { */ case 398: + /* } else if ($assertType(_ref$18, ptrType$27, true)[1]) { */ case 398: e2$4 = _ref$18.$val; _r$89 = p[0].visitExprInOut($clone(e2$4.Value, js_ast.Expr), $clone(new exprIn.ptr(false, false, false, false, false, in$1.assignTarget), exprIn)); /* */ $s = 402; case 402: if($c) { $c = false; _r$89 = _r$89.$blk(); } if (_r$89 && _r$89.$blk !== undefined) { break s; } _tuple$58 = _r$89; js_ast.Expr.copy(e2$4.Value, _tuple$58[0]); hasSpread$1 = true; $s = 401; continue; - /* } else if ($assertType(_ref$18, ptrType$45, true)[1]) { */ case 399: + /* } else if ($assertType(_ref$18, ptrType$47, true)[1]) { */ case 399: e2$5 = _ref$18.$val; /* */ if (!((in$1.assignTarget === 0)) && (e2$5.Op === 37)) { $s = 403; continue; } /* */ $s = 404; continue; @@ -182861,11 +184104,11 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { _r$90 = p[0].visitExprInOut($clone(e2$5.Left, js_ast.Expr), $clone(new exprIn.ptr(false, false, false, false, false, 1), exprIn)); /* */ $s = 406; case 406: if($c) { $c = false; _r$90 = _r$90.$blk(); } if (_r$90 && _r$90.$blk !== undefined) { break s; } _tuple$59 = _r$90; js_ast.Expr.copy(e2$5.Left, _tuple$59[0]); - _tuple$60 = $assertType(e2$5.Left.Data, ptrType$32, true); + _tuple$60 = $assertType(e2$5.Left.Data, ptrType$33, true); id$2 = _tuple$60[0]; ok$39 = _tuple$60[1]; if (ok$39) { - p[0].nameToKeep = (x$28 = p[0].symbols, x$29 = id$2.Ref.InnerIndex, ((x$29 < 0 || x$29 >= x$28.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$28.$array[x$28.$offset + x$29])).OriginalName; + p[0].nameToKeep = (x$34 = p[0].symbols, x$35 = id$2.Ref.InnerIndex, ((x$35 < 0 || x$35 >= x$34.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$34.$array[x$34.$offset + x$35])).OriginalName; p[0].nameToKeepIsFor = e2$5.Right.Data; } _r$91 = p[0].visitExpr($clone(e2$5.Right, js_ast.Expr)); /* */ $s = 407; case 407: if($c) { $c = false; _r$91 = _r$91.$blk(); } if (_r$91 && _r$91.$blk !== undefined) { break s; } @@ -182883,7 +184126,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { _tuple$62 = _r$93; js_ast.Expr.copy(item, _tuple$62[0]); /* } */ case 401: - js_ast.Expr.copy((x$30 = e$22.Items, ((i$3 < 0 || i$3 >= x$30.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$30.$array[x$30.$offset + i$3])), item); + js_ast.Expr.copy((x$36 = e$22.Items, ((i$3 < 0 || i$3 >= x$36.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$36.$array[x$36.$offset + i$3])), item); _i$12++; $s = 395; continue; case 396: @@ -182912,12 +184155,12 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* while (true) { */ case 416: /* if (!(_i$13 < _ref$19.$length)) { break; } */ if(!(_i$13 < _ref$19.$length)) { $s = 417; continue; } i$4 = _i$13; - property$4 = (x$31 = e$23.Properties, ((i$4 < 0 || i$4 >= x$31.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$31.$array[x$31.$offset + i$4])); + property$4 = (x$37 = e$23.Properties, ((i$4 < 0 || i$4 >= x$37.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$37.$array, x$37.$offset + i$4, ptrType$37))); /* */ if (!((property$4.Kind === 5))) { $s = 418; continue; } /* */ $s = 419; continue; /* if (!((property$4.Kind === 5))) { */ case 418: key$1 = $clone(property$4.Key, js_ast.Expr); - _tuple$63 = $assertType(key$1.Data, ptrType$36, true); + _tuple$63 = $assertType(key$1.Data, ptrType$38, true); mangled$1 = _tuple$63[0]; ok$40 = _tuple$63[1]; /* */ if (ok$40) { $s = 421; continue; } @@ -182952,7 +184195,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* } */ case 428: /* } */ case 426: if (p[0].options.optionsThatSupportStructuralEquality.minifySyntax && new js_ast.PropertyFlags(property$4.Flags).Has(1)) { - _tuple$66 = $assertType(key$1.Data, ptrType$67, true); + _tuple$66 = $assertType(key$1.Data, ptrType$70, true); inlined = _tuple$66[0]; ok$42 = _tuple$66[1]; if (ok$42) { @@ -182963,7 +184206,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } } _ref$21 = key$1.Data; - if ($assertType(_ref$21, ptrType$18, true)[1] || $assertType(_ref$21, ptrType$36, true)[1]) { + if ($assertType(_ref$21, ptrType$18, true)[1] || $assertType(_ref$21, ptrType$38, true)[1]) { k = _ref$21; property$4.Flags = (property$4.Flags & (254)) >>> 0; } else if ($assertType(_ref$21, ptrType$16, true)[1]) { @@ -182978,7 +184221,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { hasSpread$2 = true; /* } */ case 420: if (!((in$1.assignTarget === 0)) && $interfaceIsEqual(property$4.InitializerOrNil.Data, $ifaceNil) && !($interfaceIsEqual(property$4.ValueOrNil.Data, $ifaceNil))) { - _tuple$67 = $assertType(property$4.ValueOrNil.Data, ptrType$45, true); + _tuple$67 = $assertType(property$4.ValueOrNil.Data, ptrType$47, true); binary = _tuple$67[0]; ok$43 = _tuple$67[1]; if (ok$43 && (binary.Op === 37)) { @@ -182992,7 +184235,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { oldIsInStaticClassContext = p[0].fnOnlyDataVisit.isInStaticClassContext; oldInnerClassNameRef = p[0].fnOnlyDataVisit.innerClassNameRef; if ((property$4.Kind === 1) && p[0].options.optionsThatSupportStructuralEquality.unsupportedJSFeatures.Has(new compat.JSFeature(0, 8))) { - _tuple$68 = $assertType(property$4.ValueOrNil.Data, ptrType$28, true); + _tuple$68 = $assertType(property$4.ValueOrNil.Data, ptrType$29, true); fn = _tuple$68[0]; ok$44 = _tuple$68[1]; if (ok$44 && fn.Fn.IsAsync) { @@ -183019,11 +184262,11 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ if (!($interfaceIsEqual(property$4.InitializerOrNil.Data, $ifaceNil))) { $s = 436; continue; } /* */ $s = 437; continue; /* if (!($interfaceIsEqual(property$4.InitializerOrNil.Data, $ifaceNil))) { */ case 436: - _tuple$71 = $assertType(property$4.ValueOrNil.Data, ptrType$32, true); + _tuple$71 = $assertType(property$4.ValueOrNil.Data, ptrType$33, true); id$3 = _tuple$71[0]; ok$46 = _tuple$71[1]; if (ok$46) { - p[0].nameToKeep = (x$32 = p[0].symbols, x$33 = id$3.Ref.InnerIndex, ((x$33 < 0 || x$33 >= x$32.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$32.$array[x$32.$offset + x$33])).OriginalName; + p[0].nameToKeep = (x$38 = p[0].symbols, x$39 = id$3.Ref.InnerIndex, ((x$39 < 0 || x$39 >= x$38.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$38.$array[x$38.$offset + x$39])).OriginalName; p[0].nameToKeepIsFor = property$4.InitializerOrNil.Data; } _r$97 = p[0].visitExpr($clone(property$4.InitializerOrNil, js_ast.Expr)); /* */ $s = 438; case 438: if($c) { $c = false; _r$97 = _r$97.$blk(); } if (_r$97 && _r$97.$blk !== undefined) { break s; } @@ -183055,20 +184298,20 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { e$23.Properties = js_ast.MangleObjectSpread(e$23.Properties); } value$6 = $clone(p[0].lowerObjectSpread($clone(expr[0].Loc, logger.Loc), e$23), js_ast.Expr); - if (!($equal(innerClassNameRef[0], ast.InvalidRef, ast.Ref)) && (x$34 = p[0].symbols, x$35 = innerClassNameRef[0].InnerIndex, ((x$35 < 0 || x$35 >= x$34.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$34.$array[x$34.$offset + x$35])).UseCountEstimate > 0) { + if (!($equal(innerClassNameRef[0], ast.InvalidRef, ast.Ref)) && (x$40 = p[0].symbols, x$41 = innerClassNameRef[0].InnerIndex, ((x$41 < 0 || x$41 >= x$40.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$40.$array[x$40.$offset + x$41])).UseCountEstimate > 0) { p[0].recordUsage($clone(innerClassNameRef[0], ast.Ref)); js_ast.Expr.copy(value$6, js_ast.Assign($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(innerClassNameRef[0], ast.Ref), false, false, false), $clone(expr[0].Loc, logger.Loc)), js_ast.Expr), $clone(value$6, js_ast.Expr))); } $s = -1; return [value$6, new exprOut.ptr($throwNilPointerError, $throwNilPointerError, false, false, false)]; } $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$89, true)[1]) { */ case 26: + /* } else if ($assertType(_ref, ptrType$94, true)[1]) { */ case 26: e[0] = _ref.$val; isAwaitTarget[0] = $interfaceIsEqual(e[0], p[0].awaitTarget); isThenCatchTarget[0] = $interfaceIsEqual(e[0], p[0].thenCatchChain.nextTarget) && p[0].thenCatchChain.hasCatch; _r$98 = p[0].visitExpr($clone(e[0].Expr, js_ast.Expr)); /* */ $s = 442; case 442: if($c) { $c = false; _r$98 = _r$98.$blk(); } if (_r$98 && _r$98.$blk !== undefined) { break s; } js_ast.Expr.copy(e[0].Expr, _r$98); - assertOrWith[0] = ptrType$72.nil; + assertOrWith[0] = ptrType$76.nil; flags[0] = 0; /* */ if (!($interfaceIsEqual(e[0].OptionsOrNil.Data, $ifaceNil))) { $s = 443; continue; } /* */ $s = 444; continue; @@ -183086,7 +184329,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ if (object.Properties.$length === 1) { $s = 448; continue; } /* */ $s = 449; continue; /* if (object.Properties.$length === 1) { */ case 448: - prop = $clone((x$36 = object.Properties, (0 >= x$36.$length ? ($throwRuntimeError("index out of range"), undefined) : x$36.$array[x$36.$offset + 0])), js_ast.Property); + prop = $clone((x$42 = object.Properties, (0 >= x$42.$length ? ($throwRuntimeError("index out of range"), undefined) : x$42.$array[x$42.$offset + 0])), js_ast.Property); /* */ if ((prop.Kind === 0) && !new js_ast.PropertyFlags(prop.Flags).Has(1)) { $s = 451; continue; } /* */ $s = 452; continue; /* if ((prop.Kind === 0) && !new js_ast.PropertyFlags(prop.Flags).Has(1)) { */ case 451: @@ -183215,7 +184458,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* } */ case 478: /* } */ case 444: _r$103 = p[0].maybeTransposeIfExprChain($clone(e[0].Expr, js_ast.Expr), (function(assertOrWith, e, e$1, expr, flags, innerClassNameRef, isAwaitTarget, isThenCatchTarget, omitWarnings, p, t) { return function parser·visitExprInOut·func1(arg) { - var {_tuple$79, arg, body, importRecordIndex, ok$54, r$15, record, record$1, str$9, then, value$10, value$9, x$37, x$38, $s, $r, $c} = $restore(this, {arg}); + var {_tuple$79, arg, body, importRecordIndex, ok$54, r$15, record, record$1, str$9, then, value$10, value$9, x$43, x$44, $s, $r, $c} = $restore(this, {arg}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: _tuple$79 = $assertType(arg.Data, ptrType$16, true); str$9 = _tuple$79[0]; @@ -183226,11 +184469,11 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } importRecordIndex = p[0].addImportRecord(3, $clone(p[0].source.RangeOfString($clone(arg.Loc, logger.Loc)), logger.Range), helpers.UTF16ToString(str$9.Value), assertOrWith[0], flags[0]); if (isAwaitTarget[0] && !((p[0].fnOrArrowDataVisit.tryBodyCount === 0))) { - record = (x$37 = p[0].importRecords, ((importRecordIndex < 0 || importRecordIndex >= x$37.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$37.$array[x$37.$offset + importRecordIndex])); + record = (x$43 = p[0].importRecords, ((importRecordIndex < 0 || importRecordIndex >= x$43.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$43.$array, x$43.$offset + importRecordIndex, ptrType$106))); record.Flags = (record.Flags | (256)) >>> 0; logger.Loc.copy(record.ErrorHandlerLoc, p[0].fnOrArrowDataVisit.tryCatchLoc); } else if (isThenCatchTarget[0]) { - record$1 = (x$38 = p[0].importRecords, ((importRecordIndex < 0 || importRecordIndex >= x$38.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$38.$array[x$38.$offset + importRecordIndex])); + record$1 = (x$44 = p[0].importRecords, ((importRecordIndex < 0 || importRecordIndex >= x$44.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$44.$array, x$44.$offset + importRecordIndex, ptrType$106))); record$1.Flags = (record$1.Flags | (256)) >>> 0; logger.Loc.copy(record$1.ErrorHandlerLoc, p[0].thenCatchChain.catchLoc); } @@ -183257,21 +184500,21 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $s = -1; return new js_ast.Expr.ptr(new js_ast.ECall.ptr($clone(new js_ast.Expr.ptr(new js_ast.EDot.ptr($clone(new js_ast.Expr.ptr(new js_ast.ECall.ptr($clone(new js_ast.Expr.ptr(new js_ast.EDot.ptr($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(p[0].makePromiseRef(), ast.Ref), false, false, false), $clone(expr[0].Loc, logger.Loc)), js_ast.Expr), "resolve", $clone(expr[0].Loc, logger.Loc), 0, false, false, false), $clone(expr[0].Loc, logger.Loc)), js_ast.Expr), sliceType$6.nil, new logger.Loc.ptr(0), 0, 2, false, false), $clone(expr[0].Loc, logger.Loc)), js_ast.Expr), "then", $clone(expr[0].Loc, logger.Loc), 0, false, false, false), $clone(expr[0].Loc, logger.Loc)), js_ast.Expr), new sliceType$6([$clone(then, js_ast.Expr)]), new logger.Loc.ptr(0), 0, 2, false, false), $clone(expr[0].Loc, logger.Loc)); } $s = -1; return new js_ast.Expr.ptr(new js_ast.EImportCall.ptr($clone(arg, js_ast.Expr), $clone(e[0].OptionsOrNil, js_ast.Expr), $clone(e[0].CloseParenLoc, logger.Loc)), $clone(expr[0].Loc, logger.Loc)); - /* */ } return; } var $f = {$blk: parser·visitExprInOut·func1, $c: true, $r, _tuple$79, arg, body, importRecordIndex, ok$54, r$15, record, record$1, str$9, then, value$10, value$9, x$37, x$38, $s};return $f; + /* */ } return; } var $f = {$blk: parser·visitExprInOut·func1, $c: true, $r, _tuple$79, arg, body, importRecordIndex, ok$54, r$15, record, record$1, str$9, then, value$10, value$9, x$43, x$44, $s};return $f; }; })(assertOrWith, e, e$1, expr, flags, innerClassNameRef, isAwaitTarget, isThenCatchTarget, omitWarnings, p, t)); /* */ $s = 489; case 489: if($c) { $c = false; _r$103 = _r$103.$blk(); } if (_r$103 && _r$103.$blk !== undefined) { break s; } $24r$14 = [_r$103, new exprOut.ptr($throwNilPointerError, $throwNilPointerError, false, false, false)]; $s = 490; case 490: return $24r$14; - /* } else if ($assertType(_ref, ptrType$39, true)[1]) { */ case 27: + /* } else if ($assertType(_ref, ptrType$41, true)[1]) { */ case 27: e$1[0] = _ref.$val; p[0].callTarget = e$1[0].Target.Data; thenCatchChain.copy(p[0].thenCatchChain, new thenCatchChain.ptr(e$1[0].Target.Data, $clone(p[0].thenCatchChain.catchLoc, logger.Loc), e$1[0].Args.$length >= 2, $interfaceIsEqual(p[0].thenCatchChain.nextTarget, e$1[0]) && p[0].thenCatchChain.hasCatch)); if (p[0].thenCatchChain.hasMultipleArgs) { - logger.Loc.copy(p[0].thenCatchChain.catchLoc, (x$37 = e$1[0].Args, (1 >= x$37.$length ? ($throwRuntimeError("index out of range"), undefined) : x$37.$array[x$37.$offset + 1])).Loc); + logger.Loc.copy(p[0].thenCatchChain.catchLoc, (x$43 = e$1[0].Args, (1 >= x$43.$length ? ($throwRuntimeError("index out of range"), undefined) : x$43.$array[x$43.$offset + 1])).Loc); } couldBeRequireResolve = false; couldBeObjectCreate = false; if (e$1[0].Args.$length === 1) { - _tuple$79 = $assertType(e$1[0].Target.Data, ptrType$25, true); + _tuple$79 = $assertType(e$1[0].Target.Data, ptrType$26, true); dot$1 = _tuple$79[0]; ok$54 = _tuple$79[1]; if (ok$54 && (dot$1.OptionalChain === 0)) { @@ -183285,13 +184528,13 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { wasIdentifierBeforeVisit = false; isParenthesizedOptionalChain = false; _ref$23 = e$1[0].Target.Data; - if ($assertType(_ref$23, ptrType$32, true)[1]) { + if ($assertType(_ref$23, ptrType$33, true)[1]) { e2$7 = _ref$23.$val; wasIdentifierBeforeVisit = true; - } else if ($assertType(_ref$23, ptrType$25, true)[1]) { + } else if ($assertType(_ref$23, ptrType$26, true)[1]) { e2$8 = _ref$23.$val; isParenthesizedOptionalChain = (e$1[0].OptionalChain === 0) && !((e2$8.OptionalChain === 0)); - } else if ($assertType(_ref$23, ptrType$23, true)[1]) { + } else if ($assertType(_ref$23, ptrType$24, true)[1]) { e2$9 = _ref$23.$val; isParenthesizedOptionalChain = (e$1[0].OptionalChain === 0) && !((e2$9.OptionalChain === 0)); } @@ -183318,12 +184561,12 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { arg = $clone(((_i$15 < 0 || _i$15 >= _ref$24.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$24.$array[_ref$24.$offset + _i$15]), js_ast.Expr); _r$105 = p[0].visitExpr($clone(arg, js_ast.Expr)); /* */ $s = 495; case 495: if($c) { $c = false; _r$105 = _r$105.$blk(); } if (_r$105 && _r$105.$blk !== undefined) { break s; } js_ast.Expr.copy(arg, _r$105); - _tuple$81 = $assertType(arg.Data, ptrType$26, true); + _tuple$81 = $assertType(arg.Data, ptrType$27, true); ok$55 = _tuple$81[1]; if (ok$55) { hasSpread$3 = true; } - js_ast.Expr.copy((x$38 = e$1[0].Args, ((i$5 < 0 || i$5 >= x$38.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$38.$array[x$38.$offset + i$5])), arg); + js_ast.Expr.copy((x$44 = e$1[0].Args, ((i$5 < 0 || i$5 >= x$44.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$44.$array[x$44.$offset + i$5])), arg); _i$15++; $s = 493; continue; case 494: @@ -183331,10 +184574,10 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ $s = 497; continue; /* if (!e$1[0].CanBeUnwrappedIfUnused) { */ case 496: _ref$25 = e$1[0].Target.Data; - /* */ if ($assertType(_ref$25, ptrType$54, true)[1]) { $s = 498; continue; } - /* */ if ($assertType(_ref$25, ptrType$28, true)[1]) { $s = 499; continue; } + /* */ if ($assertType(_ref$25, ptrType$57, true)[1]) { $s = 498; continue; } + /* */ if ($assertType(_ref$25, ptrType$29, true)[1]) { $s = 499; continue; } /* */ $s = 500; continue; - /* if ($assertType(_ref$25, ptrType$54, true)[1]) { */ case 498: + /* if ($assertType(_ref$25, ptrType$57, true)[1]) { */ case 498: target$9 = _ref$25.$val; if (!(!target$9.IsAsync)) { _v = false; $s = 503; continue s; } _r$106 = p[0].iifeCanBeRemovedIfUnused(target$9.Args, $clone(target$9.Body, js_ast.FnBody)); /* */ $s = 504; case 504: if($c) { $c = false; _r$106 = _r$106.$blk(); } if (_r$106 && _r$106.$blk !== undefined) { break s; } @@ -183345,7 +184588,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { e$1[0].CanBeUnwrappedIfUnused = true; /* } */ case 502: $s = 500; continue; - /* } else if ($assertType(_ref$25, ptrType$28, true)[1]) { */ case 499: + /* } else if ($assertType(_ref$25, ptrType$29, true)[1]) { */ case 499: target$10 = _ref$25.$val; if (!(!target$10.Fn.IsAsync && !target$10.Fn.IsGenerator)) { _v$1 = false; $s = 507; continue s; } _r$107 = p[0].iifeCanBeRemovedIfUnused(target$10.Fn.Args, $clone(target$10.Fn.Body, js_ast.FnBody)); /* */ $s = 508; case 508: if($c) { $c = false; _r$107 = _r$107.$blk(); } if (_r$107 && _r$107.$blk !== undefined) { break s; } @@ -183360,48 +184603,48 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ if (p[0].options.optionsThatSupportStructuralEquality.decodeHydrateRuntimeStateYarnPnP) { $s = 509; continue; } /* */ $s = 510; continue; /* if (p[0].options.optionsThatSupportStructuralEquality.decodeHydrateRuntimeStateYarnPnP) { */ case 509: - _tuple$82 = $assertType(e$1[0].Target.Data, ptrType$32, true); + _tuple$82 = $assertType(e$1[0].Target.Data, ptrType$33, true); id$4 = _tuple$82[0]; ok$56 = _tuple$82[1]; - /* */ if (ok$56 && (x$39 = p[0].symbols, x$40 = id$4.Ref.InnerIndex, ((x$40 < 0 || x$40 >= x$39.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$39.$array[x$39.$offset + x$40])).OriginalName === "hydrateRuntimeState" && e$1[0].Args.$length >= 1) { $s = 511; continue; } + /* */ if (ok$56 && (x$45 = p[0].symbols, x$46 = id$4.Ref.InnerIndex, ((x$46 < 0 || x$46 >= x$45.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$45.$array[x$45.$offset + x$46])).OriginalName === "hydrateRuntimeState" && e$1[0].Args.$length >= 1) { $s = 511; continue; } /* */ $s = 512; continue; - /* if (ok$56 && (x$39 = p[0].symbols, x$40 = id$4.Ref.InnerIndex, ((x$40 < 0 || x$40 >= x$39.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$39.$array[x$39.$offset + x$40])).OriginalName === "hydrateRuntimeState" && e$1[0].Args.$length >= 1) { */ case 511: - _ref$26 = (x$41 = e$1[0].Args, (0 >= x$41.$length ? ($throwRuntimeError("index out of range"), undefined) : x$41.$array[x$41.$offset + 0])).Data; + /* if (ok$56 && (x$45 = p[0].symbols, x$46 = id$4.Ref.InnerIndex, ((x$46 < 0 || x$46 >= x$45.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$45.$array[x$45.$offset + x$46])).OriginalName === "hydrateRuntimeState" && e$1[0].Args.$length >= 1) { */ case 511: + _ref$26 = (x$47 = e$1[0].Args, (0 >= x$47.$length ? ($throwRuntimeError("index out of range"), undefined) : x$47.$array[x$47.$offset + 0])).Data; /* */ if ($assertType(_ref$26, ptrType$15, true)[1]) { $s = 513; continue; } - /* */ if ($assertType(_ref$26, ptrType$39, true)[1]) { $s = 514; continue; } + /* */ if ($assertType(_ref$26, ptrType$41, true)[1]) { $s = 514; continue; } /* */ $s = 515; continue; /* if ($assertType(_ref$26, ptrType$15, true)[1]) { */ case 513: arg$1 = _ref$26.$val; - arg$3 = $clone((x$42 = e$1[0].Args, (0 >= x$42.$length ? ($throwRuntimeError("index out of range"), undefined) : x$42.$array[x$42.$offset + 0])), js_ast.Expr); + arg$3 = $clone((x$48 = e$1[0].Args, (0 >= x$48.$length ? ($throwRuntimeError("index out of range"), undefined) : x$48.$array[x$48.$offset + 0])), js_ast.Expr); if (isValidJSON($clone(arg$3, js_ast.Expr))) { js_ast.Expr.copy(p[0].manifestForYarnPnP, arg$3); } $s = 515; continue; - /* } else if ($assertType(_ref$26, ptrType$39, true)[1]) { */ case 514: + /* } else if ($assertType(_ref$26, ptrType$41, true)[1]) { */ case 514: arg$2 = _ref$26.$val; /* */ if (arg$2.Args.$length === 1) { $s = 516; continue; } /* */ $s = 517; continue; /* if (arg$2.Args.$length === 1) { */ case 516: - _tuple$83 = $assertType(arg$2.Target.Data, ptrType$25, true); + _tuple$83 = $assertType(arg$2.Target.Data, ptrType$26, true); dot$2 = _tuple$83[0]; ok$57 = _tuple$83[1]; /* */ if (ok$57 && dot$2.Name === "parse") { $s = 518; continue; } /* */ $s = 519; continue; /* if (ok$57 && dot$2.Name === "parse") { */ case 518: - _tuple$84 = $assertType(dot$2.Target.Data, ptrType$32, true); + _tuple$84 = $assertType(dot$2.Target.Data, ptrType$33, true); id$5 = _tuple$84[0]; ok$58 = _tuple$84[1]; /* */ if (ok$58) { $s = 520; continue; } /* */ $s = 521; continue; /* if (ok$58) { */ case 520: - symbol = (x$43 = p[0].symbols, x$44 = id$5.Ref.InnerIndex, ((x$44 < 0 || x$44 >= x$43.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$43.$array[x$43.$offset + x$44])); + symbol = (x$49 = p[0].symbols, x$50 = id$5.Ref.InnerIndex, ((x$50 < 0 || x$50 >= x$49.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$49.$array, x$49.$offset + x$50, ptrType$23))); /* */ if ((symbol.Kind === 0) && symbol.OriginalName === "JSON") { $s = 522; continue; } /* */ $s = 523; continue; /* if ((symbol.Kind === 0) && symbol.OriginalName === "JSON") { */ case 522: - arg$4 = $clone((x$45 = arg$2.Args, (0 >= x$45.$length ? ($throwRuntimeError("index out of range"), undefined) : x$45.$array[x$45.$offset + 0])), js_ast.Expr); + arg$4 = $clone((x$51 = arg$2.Args, (0 >= x$51.$length ? ($throwRuntimeError("index out of range"), undefined) : x$51.$array[x$51.$offset + 0])), js_ast.Expr); _ref$27 = arg$4.Data; /* */ if ($assertType(_ref$27, ptrType$16, true)[1]) { $s = 524; continue; } - /* */ if ($assertType(_ref$27, ptrType$32, true)[1]) { $s = 525; continue; } + /* */ if ($assertType(_ref$27, ptrType$33, true)[1]) { $s = 525; continue; } /* */ $s = 526; continue; /* if ($assertType(_ref$27, ptrType$16, true)[1]) { */ case 524: a = _ref$27.$val; @@ -183413,7 +184656,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { js_ast.Expr.copy(p[0].manifestForYarnPnP, _tuple$85[0]); remapExprLocsInJSON(p[0].manifestForYarnPnP, stringInJSTable); $s = 526; continue; - /* } else if ($assertType(_ref$27, ptrType$32, true)[1]) { */ case 525: + /* } else if ($assertType(_ref$27, ptrType$33, true)[1]) { */ case 525: a$1 = _ref$27.$val; _tuple$86 = (_entry$10 = $mapIndex(p[0].stringLocalsForYarnPnP,ast.Ref.keyFor(a$1.Ref)), _entry$10 !== undefined ? [_entry$10.v, true] : [new stringLocalForYarnPnP.ptr(sliceType$3.nil, new logger.Loc.ptr(0)), false]); data$1 = $clone(_tuple$86[0], stringLocalForYarnPnP); @@ -183445,24 +184688,24 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { e$1[0].Args = js_ast.InlineSpreadsOfArrayLiterals(e$1[0].Args); } _ref$28 = target$8.Data; - /* */ if ($assertType(_ref$28, ptrType$100, true)[1]) { $s = 531; continue; } - /* */ if ($assertType(_ref$28, ptrType$32, true)[1]) { $s = 532; continue; } - /* */ if ($assertType(_ref$28, ptrType$25, true)[1]) { $s = 533; continue; } - /* */ if ($assertType(_ref$28, ptrType$23, true)[1]) { $s = 534; continue; } - /* */ if ($assertType(_ref$28, ptrType$27, true)[1]) { $s = 535; continue; } + /* */ if ($assertType(_ref$28, ptrType$109, true)[1]) { $s = 531; continue; } + /* */ if ($assertType(_ref$28, ptrType$33, true)[1]) { $s = 532; continue; } + /* */ if ($assertType(_ref$28, ptrType$26, true)[1]) { $s = 533; continue; } + /* */ if ($assertType(_ref$28, ptrType$24, true)[1]) { $s = 534; continue; } + /* */ if ($assertType(_ref$28, ptrType$28, true)[1]) { $s = 535; continue; } /* */ $s = 536; continue; - /* if ($assertType(_ref$28, ptrType$100, true)[1]) { */ case 531: + /* if ($assertType(_ref$28, ptrType$109, true)[1]) { */ case 531: t$1 = _ref$28.$val; if (p[0].options.optionsThatSupportStructuralEquality.minifySyntax && !p[0].isControlFlowDead) { p[0].convertSymbolUseToCall($clone(t$1.Ref, ast.Ref), (e$1[0].Args.$length === 1) && !hasSpread$3); } $s = 536; continue; - /* } else if ($assertType(_ref$28, ptrType$32, true)[1]) { */ case 532: + /* } else if ($assertType(_ref$28, ptrType$33, true)[1]) { */ case 532: t$2 = _ref$28.$val; /* */ if (e$1[0].OptionalChain === 0) { $s = 537; continue; } /* */ $s = 538; continue; /* if (e$1[0].OptionalChain === 0) { */ case 537: - symbol$1 = $clone((x$46 = p[0].symbols, x$47 = t$2.Ref.InnerIndex, ((x$47 < 0 || x$47 >= x$46.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$46.$array[x$46.$offset + x$47])), ast.Symbol); + symbol$1 = $clone((x$52 = p[0].symbols, x$53 = t$2.Ref.InnerIndex, ((x$53 < 0 || x$53 >= x$52.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$52.$array[x$52.$offset + x$53])), ast.Symbol); /* */ if (wasIdentifierBeforeVisit && symbol$1.OriginalName === "eval") { $s = 539; continue; } /* */ if (new ast.SymbolFlags(symbol$1.Flags).Has(1024)) { $s = 540; continue; } /* */ $s = 541; continue; @@ -183492,7 +184735,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ if (p[0].options.optionsThatSupportStructuralEquality.minifySyntax && t$2.CanBeRemovedIfUnused && e$1[0].Args.$length <= 1 && !hasSpread$3) { $s = 543; continue; } /* */ $s = 544; continue; /* if (p[0].options.optionsThatSupportStructuralEquality.minifySyntax && t$2.CanBeRemovedIfUnused && e$1[0].Args.$length <= 1 && !hasSpread$3) { */ case 543: - symbol$2 = (x$48 = p[0].symbols, x$49 = t$2.Ref.InnerIndex, ((x$49 < 0 || x$49 >= x$48.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$48.$array[x$48.$offset + x$49])); + symbol$2 = (x$54 = p[0].symbols, x$55 = t$2.Ref.InnerIndex, ((x$55 < 0 || x$55 >= x$54.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$54.$array, x$54.$offset + x$55, ptrType$23))); /* */ if (symbol$2.Kind === 0) { $s = 545; continue; } /* */ $s = 546; continue; /* if (symbol$2.Kind === 0) { */ case 545: @@ -183508,7 +184751,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* if (e$1[0].Args.$length === 0) { */ case 553: $s = -1; return [new js_ast.Expr.ptr(new js_ast.EBoolean.ptr(false), $clone(expr[0].Loc, logger.Loc)), new exprOut.ptr($throwNilPointerError, $throwNilPointerError, false, false, false)]; /* } else { */ case 554: - _r$110 = $clone(p[0].astHelpers, js_ast.HelperContext).SimplifyBooleanExpr($clone((x$50 = e$1[0].Args, (0 >= x$50.$length ? ($throwRuntimeError("index out of range"), undefined) : x$50.$array[x$50.$offset + 0])), js_ast.Expr)); /* */ $s = 556; case 556: if($c) { $c = false; _r$110 = _r$110.$blk(); } if (_r$110 && _r$110.$blk !== undefined) { break s; } + _r$110 = $clone(p[0].astHelpers, js_ast.HelperContext).SimplifyBooleanExpr($clone((x$56 = e$1[0].Args, (0 >= x$56.$length ? ($throwRuntimeError("index out of range"), undefined) : x$56.$array[x$56.$offset + 0])), js_ast.Expr)); /* */ $s = 556; case 556: if($c) { $c = false; _r$110 = _r$110.$blk(); } if (_r$110 && _r$110.$blk !== undefined) { break s; } expr[0].Data = new js_ast.EUnary.ptr($clone(_r$110, js_ast.Expr), 3, false, false); $s = -1; return [js_ast.Not($clone(expr[0], js_ast.Expr)), new exprOut.ptr($throwNilPointerError, $throwNilPointerError, false, false, false)]; /* } */ case 555: @@ -183517,7 +184760,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { if (e$1[0].Args.$length === 0) { $s = -1; return [new js_ast.Expr.ptr(new js_ast.ENumber.ptr(0), $clone(expr[0].Loc, logger.Loc)), new exprOut.ptr($throwNilPointerError, $throwNilPointerError, false, false, false)]; } else { - arg$5 = $clone((x$51 = e$1[0].Args, (0 >= x$51.$length ? ($throwRuntimeError("index out of range"), undefined) : x$51.$array[x$51.$offset + 0])), js_ast.Expr); + arg$5 = $clone((x$57 = e$1[0].Args, (0 >= x$57.$length ? ($throwRuntimeError("index out of range"), undefined) : x$57.$array[x$57.$offset + 0])), js_ast.Expr); _6 = js_ast.KnownPrimitiveType(arg$5.Data); if (_6 === (5)) { $s = -1; return [arg$5, new exprOut.ptr($throwNilPointerError, $throwNilPointerError, false, false, false)]; @@ -183538,7 +184781,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { if (e$1[0].Args.$length === 0) { $s = -1; return [new js_ast.Expr.ptr(new js_ast.EString.ptr(sliceType$3.nil, new logger.Loc.ptr(0), false, false, false), $clone(expr[0].Loc, logger.Loc)), new exprOut.ptr($throwNilPointerError, $throwNilPointerError, false, false, false)]; } else { - arg$6 = $clone((x$52 = e$1[0].Args, (0 >= x$52.$length ? ($throwRuntimeError("index out of range"), undefined) : x$52.$array[x$52.$offset + 0])), js_ast.Expr); + arg$6 = $clone((x$58 = e$1[0].Args, (0 >= x$58.$length ? ($throwRuntimeError("index out of range"), undefined) : x$58.$array[x$58.$offset + 0])), js_ast.Expr); _7 = js_ast.KnownPrimitiveType(arg$6.Data); if (_7 === (6)) { $s = -1; return [arg$6, new exprOut.ptr($throwNilPointerError, $throwNilPointerError, false, false, false)]; @@ -183547,7 +184790,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $s = 552; continue; /* } else if (_5 === ("BigInt")) { */ case 551: if (e$1[0].Args.$length === 1) { - arg$7 = $clone((x$53 = e$1[0].Args, (0 >= x$53.$length ? ($throwRuntimeError("index out of range"), undefined) : x$53.$array[x$53.$offset + 0])), js_ast.Expr); + arg$7 = $clone((x$59 = e$1[0].Args, (0 >= x$59.$length ? ($throwRuntimeError("index out of range"), undefined) : x$59.$array[x$59.$offset + 0])), js_ast.Expr); _8 = js_ast.KnownPrimitiveType(arg$7.Data); if (_8 === (7)) { $s = -1; return [arg$7, new exprOut.ptr($throwNilPointerError, $throwNilPointerError, false, false, false)]; @@ -183564,30 +184807,30 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { p[0].convertSymbolUseToCall($clone(t$2.Ref, ast.Ref), (e$1[0].Args.$length === 1) && !hasSpread$3); } $s = 536; continue; - /* } else if ($assertType(_ref$28, ptrType$25, true)[1]) { */ case 533: + /* } else if ($assertType(_ref$28, ptrType$26, true)[1]) { */ case 533: t[0] = _ref$28.$val; /* */ if (couldBeRequireResolve && t[0].Name === "resolve") { $s = 557; continue; } /* */ $s = 558; continue; /* if (couldBeRequireResolve && t[0].Name === "resolve") { */ case 557: - _tuple$89 = $assertType(t[0].Target.Data, ptrType$32, true); + _tuple$89 = $assertType(t[0].Target.Data, ptrType$33, true); id$6 = _tuple$89[0]; ok$61 = _tuple$89[1]; /* */ if (ok$61 && $equal(id$6.Ref, p[0].requireRef, ast.Ref)) { $s = 559; continue; } /* */ $s = 560; continue; /* if (ok$61 && $equal(id$6.Ref, p[0].requireRef, ast.Ref)) { */ case 559: p[0].ignoreUsage($clone(p[0].requireRef, ast.Ref)); - _r$111 = p[0].maybeTransposeIfExprChain($clone((x$54 = e$1[0].Args, (0 >= x$54.$length ? ($throwRuntimeError("index out of range"), undefined) : x$54.$array[x$54.$offset + 0])), js_ast.Expr), (function(assertOrWith, e, e$1, expr, flags, innerClassNameRef, isAwaitTarget, isThenCatchTarget, omitWarnings, p, t) { return function parser·visitExprInOut·func2(arg$8) { - var _tuple$90, arg$8, importRecordIndex, ok$62, record, str$9, x$55, x$56, x$57; - _tuple$90 = $assertType((x$55 = e$1[0].Args, (0 >= x$55.$length ? ($throwRuntimeError("index out of range"), undefined) : x$55.$array[x$55.$offset + 0])).Data, ptrType$16, true); + _r$111 = p[0].maybeTransposeIfExprChain($clone((x$60 = e$1[0].Args, (0 >= x$60.$length ? ($throwRuntimeError("index out of range"), undefined) : x$60.$array[x$60.$offset + 0])), js_ast.Expr), (function(assertOrWith, e, e$1, expr, flags, innerClassNameRef, isAwaitTarget, isThenCatchTarget, omitWarnings, p, t) { return function parser·visitExprInOut·func2(arg$8) { + var _tuple$90, arg$8, importRecordIndex, ok$62, record, str$9, x$61, x$62, x$63; + _tuple$90 = $assertType((x$61 = e$1[0].Args, (0 >= x$61.$length ? ($throwRuntimeError("index out of range"), undefined) : x$61.$array[x$61.$offset + 0])).Data, ptrType$16, true); str$9 = _tuple$90[0]; ok$62 = _tuple$90[1]; if (ok$62) { if (p[0].isControlFlowDead) { return new js_ast.Expr.ptr(js_ast.ENullShared, $clone(expr[0].Loc, logger.Loc)); } - importRecordIndex = p[0].addImportRecord(4, $clone(p[0].source.RangeOfString($clone((x$56 = e$1[0].Args, (0 >= x$56.$length ? ($throwRuntimeError("index out of range"), undefined) : x$56.$array[x$56.$offset + 0])).Loc, logger.Loc)), logger.Range), helpers.UTF16ToString(str$9.Value), ptrType$72.nil, 0); + importRecordIndex = p[0].addImportRecord(4, $clone(p[0].source.RangeOfString($clone((x$62 = e$1[0].Args, (0 >= x$62.$length ? ($throwRuntimeError("index out of range"), undefined) : x$62.$array[x$62.$offset + 0])).Loc, logger.Loc)), logger.Range), helpers.UTF16ToString(str$9.Value), ptrType$76.nil, 0); if (!((p[0].fnOrArrowDataVisit.tryBodyCount === 0))) { - record = (x$57 = p[0].importRecords, ((importRecordIndex < 0 || importRecordIndex >= x$57.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$57.$array[x$57.$offset + importRecordIndex])); + record = (x$63 = p[0].importRecords, ((importRecordIndex < 0 || importRecordIndex >= x$63.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$63.$array, x$63.$offset + importRecordIndex, ptrType$106))); record.Flags = (record.Flags | (256)) >>> 0; logger.Loc.copy(record.ErrorHandlerLoc, p[0].fnOrArrowDataVisit.tryCatchLoc); } @@ -183601,13 +184844,13 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* } */ case 560: /* } */ case 558: if (couldBeObjectCreate && t[0].Name === "create") { - _tuple$90 = $assertType(t[0].Target.Data, ptrType$32, true); + _tuple$90 = $assertType(t[0].Target.Data, ptrType$33, true); id$7 = _tuple$90[0]; ok$62 = _tuple$90[1]; if (ok$62) { - symbol$3 = (x$55 = p[0].symbols, x$56 = id$7.Ref.InnerIndex, ((x$56 < 0 || x$56 >= x$55.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$55.$array[x$55.$offset + x$56])); + symbol$3 = (x$61 = p[0].symbols, x$62 = id$7.Ref.InnerIndex, ((x$62 < 0 || x$62 >= x$61.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$61.$array, x$61.$offset + x$62, ptrType$23))); if ((symbol$3.Kind === 0) && symbol$3.OriginalName === "Object") { - _ref$29 = (x$57 = e$1[0].Args, (0 >= x$57.$length ? ($throwRuntimeError("index out of range"), undefined) : x$57.$array[x$57.$offset + 0])).Data; + _ref$29 = (x$63 = e$1[0].Args, (0 >= x$63.$length ? ($throwRuntimeError("index out of range"), undefined) : x$63.$array[x$63.$offset + 0])).Data; if ($assertType(_ref$29, ptrType$21, true)[1] || $assertType(_ref$29, ptrType$15, true)[1]) { e$1[0].CanBeUnwrappedIfUnused = true; } @@ -183626,7 +184869,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { if (e$1[0].Args.$length === 0) { hasIndex = true; } else { - _tuple$92 = $assertType((x$58 = e$1[0].Args, (0 >= x$58.$length ? ($throwRuntimeError("index out of range"), undefined) : x$58.$array[x$58.$offset + 0])).Data, ptrType$18, true); + _tuple$92 = $assertType((x$64 = e$1[0].Args, (0 >= x$64.$length ? ($throwRuntimeError("index out of range"), undefined) : x$64.$array[x$64.$offset + 0])).Data, ptrType$18, true); num = _tuple$92[0]; ok$64 = _tuple$92[1]; if (ok$64 && (num.Value === math.Trunc(num.Value)) && math.Abs(num.Value) <= 2.147483647e+09) { @@ -183636,18 +184879,18 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } if (hasIndex) { if (index$2 >= 0 && index$2 < str$9.Value.$length) { - $s = -1; return [new js_ast.Expr.ptr(new js_ast.ENumber.ptr(((x$59 = str$9.Value, ((index$2 < 0 || index$2 >= x$59.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$59.$array[x$59.$offset + index$2])))), $clone(expr[0].Loc, logger.Loc)), new exprOut.ptr($throwNilPointerError, $throwNilPointerError, false, false, false)]; + $s = -1; return [new js_ast.Expr.ptr(new js_ast.ENumber.ptr(((x$65 = str$9.Value, ((index$2 < 0 || index$2 >= x$65.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$65.$array[x$65.$offset + index$2])))), $clone(expr[0].Loc, logger.Loc)), new exprOut.ptr($throwNilPointerError, $throwNilPointerError, false, false, false)]; } else { $s = -1; return [new js_ast.Expr.ptr(new js_ast.ENumber.ptr(math.NaN()), $clone(expr[0].Loc, logger.Loc)), new exprOut.ptr($throwNilPointerError, $throwNilPointerError, false, false, false)]; } } } } else if (_9 === ("fromCharCode")) { - _tuple$93 = $assertType(t[0].Target.Data, ptrType$32, true); + _tuple$93 = $assertType(t[0].Target.Data, ptrType$33, true); id$8 = _tuple$93[0]; ok$65 = _tuple$93[1]; if (ok$65) { - symbol$4 = (x$60 = p[0].symbols, x$61 = id$8.Ref.InnerIndex, ((x$61 < 0 || x$61 >= x$60.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$60.$array[x$60.$offset + x$61])); + symbol$4 = (x$66 = p[0].symbols, x$67 = id$8.Ref.InnerIndex, ((x$67 < 0 || x$67 >= x$66.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$66.$array, x$66.$offset + x$67, ptrType$23))); if ((symbol$4.Kind === 0) && symbol$4.OriginalName === "String") { charCodes = $makeSlice(sliceType$3, 0, e$1[0].Args.$length); _ref$30 = e$1[0].Args; @@ -183677,7 +184920,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { if (e$1[0].Args.$length === 0) { radix = 10; } else if (e$1[0].Args.$length === 1) { - _tuple$95 = $assertType((x$62 = e$1[0].Args, (0 >= x$62.$length ? ($throwRuntimeError("index out of range"), undefined) : x$62.$array[x$62.$offset + 0])).Data, ptrType$18, true); + _tuple$95 = $assertType((x$68 = e$1[0].Args, (0 >= x$68.$length ? ($throwRuntimeError("index out of range"), undefined) : x$68.$array[x$68.$offset + 0])).Data, ptrType$18, true); num$1 = _tuple$95[0]; ok$67 = _tuple$95[1]; if (ok$67 && (num$1.Value === math.Trunc(num$1.Value)) && num$1.Value >= 2 && num$1.Value <= 36) { @@ -183692,7 +184935,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $s = -1; return [new js_ast.Expr.ptr(new js_ast.EString.ptr(helpers.StringToUTF16(str$10), new logger.Loc.ptr(0), false, false, false), $clone(expr[0].Loc, logger.Loc)), new exprOut.ptr($throwNilPointerError, $throwNilPointerError, false, false, false)]; } } - } else if ($assertType(_ref$31, ptrType$94, true)[1]) { + } else if ($assertType(_ref$31, ptrType$101, true)[1]) { target$12 = _ref$31.$val; if (e$1[0].Args.$length === 0) { $s = -1; return [new js_ast.Expr.ptr(new js_ast.EString.ptr(helpers.StringToUTF16(target$12.Value), new logger.Loc.ptr(0), false, false, false), $clone(expr[0].Loc, logger.Loc)), new exprOut.ptr($throwNilPointerError, $throwNilPointerError, false, false, false)]; @@ -183718,13 +184961,13 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { e$1[0].CanBeUnwrappedIfUnused = true; } $s = 536; continue; - /* } else if ($assertType(_ref$28, ptrType$23, true)[1]) { */ case 534: + /* } else if ($assertType(_ref$28, ptrType$24, true)[1]) { */ case 534: t$3 = _ref$28.$val; if (t$3.CallCanBeUnwrappedIfUnused) { e$1[0].CanBeUnwrappedIfUnused = true; } $s = 536; continue; - /* } else if ($assertType(_ref$28, ptrType$27, true)[1]) { */ case 535: + /* } else if ($assertType(_ref$28, ptrType$28, true)[1]) { */ case 535: t$4 = _ref$28.$val; if (!($equal(p[0].superCtorRef, ast.InvalidRef, ast.Ref))) { p[0].recordUsage($clone(p[0].superCtorRef, ast.Ref)); @@ -183754,9 +184997,9 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { target$15 = $clone(_tuple$97[0], js_ast.Expr); loc$2 = $clone(_tuple$97[1], logger.Loc); private$4 = _tuple$97[2]; - /* */ if (!(private$4 === ptrType$24.nil)) { $s = 573; continue; } + /* */ if (!(private$4 === ptrType$25.nil)) { $s = 573; continue; } /* */ $s = 574; continue; - /* if (!(private$4 === ptrType$24.nil)) { */ case 573: + /* if (!(private$4 === ptrType$25.nil)) { */ case 573: _tuple$98 = p[0].captureValueWithPossibleSideEffects($clone(target$15.Loc, logger.Loc), 2, $clone(target$15, js_ast.Expr), 1); targetFunc$1 = _tuple$98[0]; targetWrapFunc$1 = _tuple$98[1]; @@ -183772,7 +185015,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ if (!((p[0].options.optionsThatSupportStructuralEquality.mode === 0)) && (e$1[0].OptionalChain === 0)) { $s = 580; continue; } /* */ $s = 581; continue; /* if (!((p[0].options.optionsThatSupportStructuralEquality.mode === 0)) && (e$1[0].OptionalChain === 0)) { */ case 580: - _tuple$99 = $assertType(e$1[0].Target.Data, ptrType$32, true); + _tuple$99 = $assertType(e$1[0].Target.Data, ptrType$33, true); id$9 = _tuple$99[0]; ok$69 = _tuple$99[1]; /* */ if (ok$69 && $equal(id$9.Ref, p[0].requireRef, ast.Ref)) { $s = 582; continue; } @@ -183786,8 +185029,8 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ $s = 587; continue; /* if (e$1[0].Args.$length === 1) { */ case 586: p[0].ignoreUsage($clone(p[0].requireRef, ast.Ref)); - _r$118 = p[0].maybeTransposeIfExprChain($clone((x$63 = e$1[0].Args, (0 >= x$63.$length ? ($throwRuntimeError("index out of range"), undefined) : x$63.$array[x$63.$offset + 0])), js_ast.Expr), (function(assertOrWith, e, e$1, expr, flags, innerClassNameRef, isAwaitTarget, isThenCatchTarget, omitWarnings, p, t) { return function parser·visitExprInOut·func3(arg$10) { - var {_tuple$100, arg$10, importRecordIndex, ok$70, r$15, r$16, record, str$11, value$9, x$64, $s, $r, $c} = $restore(this, {arg$10}); + _r$118 = p[0].maybeTransposeIfExprChain($clone((x$69 = e$1[0].Args, (0 >= x$69.$length ? ($throwRuntimeError("index out of range"), undefined) : x$69.$array[x$69.$offset + 0])), js_ast.Expr), (function(assertOrWith, e, e$1, expr, flags, innerClassNameRef, isAwaitTarget, isThenCatchTarget, omitWarnings, p, t) { return function parser·visitExprInOut·func3(arg$10) { + var {_tuple$100, arg$10, importRecordIndex, ok$70, r$15, r$16, record, str$11, value$9, x$70, $s, $r, $c} = $restore(this, {arg$10}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: _tuple$100 = $assertType(arg$10.Data, ptrType$16, true); str$11 = _tuple$100[0]; @@ -183798,9 +185041,9 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { if (p[0].isControlFlowDead) { $s = -1; return new js_ast.Expr.ptr(js_ast.ENullShared, $clone(expr[0].Loc, logger.Loc)); } - importRecordIndex = p[0].addImportRecord(2, $clone(p[0].source.RangeOfString($clone(arg$10.Loc, logger.Loc)), logger.Range), helpers.UTF16ToString(str$11.Value), ptrType$72.nil, 0); + importRecordIndex = p[0].addImportRecord(2, $clone(p[0].source.RangeOfString($clone(arg$10.Loc, logger.Loc)), logger.Range), helpers.UTF16ToString(str$11.Value), ptrType$76.nil, 0); if (!((p[0].fnOrArrowDataVisit.tryBodyCount === 0))) { - record = (x$64 = p[0].importRecords, ((importRecordIndex < 0 || importRecordIndex >= x$64.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$64.$array[x$64.$offset + importRecordIndex])); + record = (x$70 = p[0].importRecords, ((importRecordIndex < 0 || importRecordIndex >= x$70.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$70.$array, x$70.$offset + importRecordIndex, ptrType$106))); record.Flags = (record.Flags | (256)) >>> 0; logger.Loc.copy(record.ErrorHandlerLoc, p[0].fnOrArrowDataVisit.tryCatchLoc); } @@ -183814,7 +185057,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $s = -1; return new js_ast.Expr.ptr(new js_ast.ERequireString.ptr(importRecordIndex, $clone(e$1[0].CloseParenLoc, logger.Loc)), $clone(expr[0].Loc, logger.Loc)); /* } */ case 2: if (p[0].options.optionsThatSupportStructuralEquality.mode === 2) { - value$9 = $clone(p[0].handleGlobPattern($clone(arg$10, js_ast.Expr), 2, "globRequire", ptrType$72.nil), js_ast.Expr); + value$9 = $clone(p[0].handleGlobPattern($clone(arg$10, js_ast.Expr), 2, "globRequire", ptrType$76.nil), js_ast.Expr); if (!($interfaceIsEqual(value$9.Data, $ifaceNil))) { $s = -1; return value$9; } @@ -183822,7 +185065,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { r$16 = $clone(js_lexer.RangeOfIdentifier($clone(p[0].source, logger.Source), $clone(e$1[0].Target.Loc, logger.Loc)), logger.Range); $r = $clone(p[0].log, logger.Log).AddID(32, 4, p[0].tracker, $clone(r$16, logger.Range), "This call to \"require\" will not be bundled because the argument is not a string literal"); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return new js_ast.Expr.ptr(new js_ast.ECall.ptr($clone(p[0].valueToSubstituteForRequire($clone(e$1[0].Target.Loc, logger.Loc)), js_ast.Expr), new sliceType$6([$clone(arg$10, js_ast.Expr)]), $clone(e$1[0].CloseParenLoc, logger.Loc), 0, 0, false, false), $clone(expr[0].Loc, logger.Loc)); - /* */ } return; } var $f = {$blk: parser·visitExprInOut·func3, $c: true, $r, _tuple$100, arg$10, importRecordIndex, ok$70, r$15, r$16, record, str$11, value$9, x$64, $s};return $f; + /* */ } return; } var $f = {$blk: parser·visitExprInOut·func3, $c: true, $r, _tuple$100, arg$10, importRecordIndex, ok$70, r$15, r$16, record, str$11, value$9, x$70, $s};return $f; }; })(assertOrWith, e, e$1, expr, flags, innerClassNameRef, isAwaitTarget, isThenCatchTarget, omitWarnings, p, t)); /* */ $s = 589; case 589: if($c) { $c = false; _r$118 = _r$118.$blk(); } if (_r$118 && _r$118.$blk !== undefined) { break s; } $24r$19 = [_r$118, new exprOut.ptr($throwNilPointerError, $throwNilPointerError, false, false, false)]; $s = 590; case 590: return $24r$19; @@ -183845,7 +185088,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { out$3.thisArgWrapFunc = $throwNilPointerError; } $s = -1; return [expr[0], out$3]; - /* } else if ($assertType(_ref, ptrType$71, true)[1]) { */ case 28: + /* } else if ($assertType(_ref, ptrType$75, true)[1]) { */ case 28: e$24 = _ref.$val; hasSpread$4 = false; _r$120 = p[0].visitExpr($clone(e$24.Target, js_ast.Expr)); /* */ $s = 593; case 593: if($c) { $c = false; _r$120 = _r$120.$blk(); } if (_r$120 && _r$120.$blk !== undefined) { break s; } @@ -183859,12 +185102,12 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { arg$10 = $clone(((_i$17 < 0 || _i$17 >= _ref$32.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$32.$array[_ref$32.$offset + _i$17]), js_ast.Expr); _r$121 = p[0].visitExpr($clone(arg$10, js_ast.Expr)); /* */ $s = 597; case 597: if($c) { $c = false; _r$121 = _r$121.$blk(); } if (_r$121 && _r$121.$blk !== undefined) { break s; } js_ast.Expr.copy(arg$10, _r$121); - _tuple$100 = $assertType(arg$10.Data, ptrType$26, true); + _tuple$100 = $assertType(arg$10.Data, ptrType$27, true); ok$70 = _tuple$100[1]; if (ok$70) { hasSpread$4 = true; } - js_ast.Expr.copy((x$64 = e$24.Args, ((i$6 < 0 || i$6 >= x$64.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$64.$array[x$64.$offset + i$6])), arg$10); + js_ast.Expr.copy((x$70 = e$24.Args, ((i$6 < 0 || i$6 >= x$70.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$70.$array[x$70.$offset + i$6])), arg$10); _i$17++; $s = 595; continue; case 596: @@ -183873,21 +185116,21 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } p[0].maybeMarkKnownGlobalConstructorAsPure(e$24); $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$54, true)[1]) { */ case 29: + /* } else if ($assertType(_ref, ptrType$57, true)[1]) { */ case 29: e$25 = _ref.$val; nameToKeep = ""; if ($interfaceIsEqual(p[0].nameToKeepIsFor, e$25)) { nameToKeep = p[0].nameToKeep; } - if (e$25.PreferExpr && (e$25.Args.$length === 1) && $interfaceIsEqual((x$65 = e$25.Args, (0 >= x$65.$length ? ($throwRuntimeError("index out of range"), undefined) : x$65.$array[x$65.$offset + 0])).DefaultOrNil.Data, $ifaceNil) && (e$25.Body.Block.Stmts.$length === 1)) { - _tuple$101 = $assertType((x$66 = e$25.Args, (0 >= x$66.$length ? ($throwRuntimeError("index out of range"), undefined) : x$66.$array[x$66.$offset + 0])).Binding.Data, ptrType$34, true); + if (e$25.PreferExpr && (e$25.Args.$length === 1) && $interfaceIsEqual((x$71 = e$25.Args, (0 >= x$71.$length ? ($throwRuntimeError("index out of range"), undefined) : x$71.$array[x$71.$offset + 0])).DefaultOrNil.Data, $ifaceNil) && (e$25.Body.Block.Stmts.$length === 1)) { + _tuple$101 = $assertType((x$72 = e$25.Args, (0 >= x$72.$length ? ($throwRuntimeError("index out of range"), undefined) : x$72.$array[x$72.$offset + 0])).Binding.Data, ptrType$35, true); ok$71 = _tuple$101[1]; if (ok$71) { - _tuple$102 = $assertType((x$67 = e$25.Body.Block.Stmts, (0 >= x$67.$length ? ($throwRuntimeError("index out of range"), undefined) : x$67.$array[x$67.$offset + 0])).Data, ptrType$40, true); + _tuple$102 = $assertType((x$73 = e$25.Body.Block.Stmts, (0 >= x$73.$length ? ($throwRuntimeError("index out of range"), undefined) : x$73.$array[x$73.$offset + 0])).Data, ptrType$42, true); stmt = _tuple$102[0]; ok$72 = _tuple$102[1]; if (ok$72) { - _tuple$103 = $assertType(stmt.ValueOrNil.Data, ptrType$45, true); + _tuple$103 = $assertType(stmt.ValueOrNil.Data, ptrType$47, true); binary$1 = _tuple$103[0]; ok$73 = _tuple$103[1]; if (ok$73 && ((binary$1.Op === 32) || (binary$1.Op === 31))) { @@ -183906,13 +185149,13 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $r = p[0].pushScopeForVisitPass(7, $clone(expr[0].Loc, logger.Loc)); /* */ $s = 598; case 598: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = p[0].visitArgs(e$25.Args, $clone(new visitArgsOpts.ptr(e$25.Body.Block.Stmts, ptrType$1.nil, e$25.HasRestArg, true), visitArgsOpts)); /* */ $s = 599; case 599: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = p[0].pushScopeForVisitPass(8, $clone(e$25.Body.Loc, logger.Loc)); /* */ $s = 600; case 600: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$122 = p[0].visitStmtsAndPrependTempRefs(e$25.Body.Block.Stmts, $clone(new prependTempRefsOpts.ptr(ptrType$76.nil, 3), prependTempRefsOpts)); /* */ $s = 601; case 601: if($c) { $c = false; _r$122 = _r$122.$blk(); } if (_r$122 && _r$122.$blk !== undefined) { break s; } + _r$122 = p[0].visitStmtsAndPrependTempRefs(e$25.Body.Block.Stmts, $clone(new prependTempRefsOpts.ptr(ptrType$80.nil, 3), prependTempRefsOpts)); /* */ $s = 601; case 601: if($c) { $c = false; _r$122 = _r$122.$blk(); } if (_r$122 && _r$122.$blk !== undefined) { break s; } e$25.Body.Block.Stmts = _r$122; p[0].popScope(); - $r = p[0].lowerFunction((e$25.$ptr_IsAsync || (e$25.$ptr_IsAsync = new ptrType$46(function() { return this.$target.IsAsync; }, function($v) { this.$target.IsAsync = $v; }, e$25))), ptrType$46.nil, (e$25.$ptr_Args || (e$25.$ptr_Args = new ptrType$104(function() { return this.$target.Args; }, function($v) { this.$target.Args = $v; }, e$25))), $clone(e$25.Body.Loc, logger.Loc), e$25.Body.Block, (e$25.$ptr_PreferExpr || (e$25.$ptr_PreferExpr = new ptrType$46(function() { return this.$target.PreferExpr; }, function($v) { this.$target.PreferExpr = $v; }, e$25))), (e$25.$ptr_HasRestArg || (e$25.$ptr_HasRestArg = new ptrType$46(function() { return this.$target.HasRestArg; }, function($v) { this.$target.HasRestArg = $v; }, e$25))), true); /* */ $s = 602; case 602: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p[0].lowerFunction((e$25 === ptrType$57.nil && $throwNilPointerError(), (e$25.$ptr_IsAsync || (e$25.$ptr_IsAsync = new ptrType$48(function() { return this.$target.IsAsync; }, function($v) { this.$target.IsAsync = $v; }, e$25)))), ptrType$48.nil, (e$25 === ptrType$57.nil && $throwNilPointerError(), (e$25.$ptr_Args || (e$25.$ptr_Args = new ptrType$113(function() { return this.$target.Args; }, function($v) { this.$target.Args = $v; }, e$25)))), $clone(e$25.Body.Loc, logger.Loc), e$25.Body.Block, (e$25 === ptrType$57.nil && $throwNilPointerError(), (e$25.$ptr_PreferExpr || (e$25.$ptr_PreferExpr = new ptrType$48(function() { return this.$target.PreferExpr; }, function($v) { this.$target.PreferExpr = $v; }, e$25)))), (e$25 === ptrType$57.nil && $throwNilPointerError(), (e$25.$ptr_HasRestArg || (e$25.$ptr_HasRestArg = new ptrType$48(function() { return this.$target.HasRestArg; }, function($v) { this.$target.HasRestArg = $v; }, e$25)))), true); /* */ $s = 602; case 602: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } p[0].popScope(); if (p[0].options.optionsThatSupportStructuralEquality.minifySyntax && (e$25.Body.Block.Stmts.$length === 1)) { - _tuple$104 = $assertType((x$68 = e$25.Body.Block.Stmts, (0 >= x$68.$length ? ($throwRuntimeError("index out of range"), undefined) : x$68.$array[x$68.$offset + 0])).Data, ptrType$40, true); + _tuple$104 = $assertType((x$74 = e$25.Body.Block.Stmts, (0 >= x$74.$length ? ($throwRuntimeError("index out of range"), undefined) : x$74.$array[x$74.$offset + 0])).Data, ptrType$42, true); s$1 = _tuple$104[0]; ok$74 = _tuple$104[1]; if (ok$74) { @@ -183932,7 +185175,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { js_ast.Expr.copy(expr[0], p[0].keepExprSymbolName($clone(expr[0], js_ast.Expr), nameToKeep)); } $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$28, true)[1]) { */ case 30: + /* } else if ($assertType(_ref, ptrType$29, true)[1]) { */ case 30: e$26 = _ref.$val; nameToKeep$1 = ""; if ($interfaceIsEqual(p[0].nameToKeepIsFor, e$26)) { @@ -183940,18 +185183,18 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } $r = p[0].visitFn(e$26.Fn, $clone(expr[0].Loc, logger.Loc), $clone(new visitFnOpts.ptr(in$1.isMethod, $interfaceIsEqual(e$26, p[0].propDerivedCtorValue), in$1.isLoweredPrivateMethod), visitFnOpts)); /* */ $s = 603; case 603: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } name$5 = e$26.Fn.Name; - if (p[0].options.optionsThatSupportStructuralEquality.minifySyntax && !p[0].currentScope.ContainsDirectEval && !(name$5 === ptrType$12.nil) && ((x$69 = p[0].symbols, x$70 = name$5.Ref.InnerIndex, ((x$70 < 0 || x$70 >= x$69.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$69.$array[x$69.$offset + x$70])).UseCountEstimate === 0)) { + if (p[0].options.optionsThatSupportStructuralEquality.minifySyntax && !p[0].currentScope.ContainsDirectEval && !(name$5 === ptrType$12.nil) && ((x$75 = p[0].symbols, x$76 = name$5.Ref.InnerIndex, ((x$76 < 0 || x$76 >= x$75.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$75.$array[x$75.$offset + x$76])).UseCountEstimate === 0)) { e$26.Fn.Name = ptrType$12.nil; } if (p[0].options.optionsThatSupportStructuralEquality.keepNames && (!in$1.isMethod || in$1.isLoweredPrivateMethod)) { if (!(name$5 === ptrType$12.nil)) { - js_ast.Expr.copy(expr[0], p[0].keepExprSymbolName($clone(expr[0], js_ast.Expr), (x$71 = p[0].symbols, x$72 = name$5.Ref.InnerIndex, ((x$72 < 0 || x$72 >= x$71.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$71.$array[x$71.$offset + x$72])).OriginalName)); + js_ast.Expr.copy(expr[0], p[0].keepExprSymbolName($clone(expr[0], js_ast.Expr), (x$77 = p[0].symbols, x$78 = name$5.Ref.InnerIndex, ((x$78 < 0 || x$78 >= x$77.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$77.$array[x$77.$offset + x$78])).OriginalName)); } else if (!(nameToKeep$1 === "")) { js_ast.Expr.copy(expr[0], p[0].keepExprSymbolName($clone(expr[0], js_ast.Expr), nameToKeep$1)); } } $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$30, true)[1]) { */ case 31: + /* } else if ($assertType(_ref, ptrType$31, true)[1]) { */ case 31: e$27 = _ref.$val; nameToKeep$2 = ""; if ($interfaceIsEqual(p[0].nameToKeepIsFor, e$27)) { @@ -183972,14 +185215,14 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $panic(new $String(_r$125)); /* } } */ case 33: $s = -1; return [expr[0], new exprOut.ptr($throwNilPointerError, $throwNilPointerError, false, false, false)]; - /* */ } return; } var $f = {$blk: visitExprInOut, $c: true, $r, $24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$13, $24r$14, $24r$15, $24r$16, $24r$17, $24r$18, $24r$19, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _1, _2, _3, _4, _5, _6, _7, _8, _9, __self, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$16, _arg$17, _arg$18, _arg$19, _arg$2, _arg$20, _arg$21, _arg$22, _arg$23, _arg$24, _arg$25, _arg$26, _arg$27, _arg$28, _arg$29, _arg$3, _arg$30, _arg$31, _arg$32, _arg$33, _arg$34, _arg$35, _arg$36, _arg$37, _arg$38, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _entry, _entry$1, _entry$10, _entry$2, _entry$3, _entry$4, _entry$5, _entry$6, _entry$7, _entry$8, _entry$9, _i, _i$1, _i$10, _i$11, _i$12, _i$13, _i$14, _i$15, _i$16, _i$17, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _i$8, _i$9, _r, _r$1, _r$10, _r$100, _r$101, _r$102, _r$103, _r$104, _r$105, _r$106, _r$107, _r$108, _r$109, _r$11, _r$110, _r$111, _r$112, _r$113, _r$114, _r$115, _r$116, _r$117, _r$118, _r$119, _r$12, _r$120, _r$121, _r$122, _r$123, _r$124, _r$125, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _r$5, _r$50, _r$51, _r$52, _r$53, _r$54, _r$55, _r$56, _r$57, _r$58, _r$59, _r$6, _r$60, _r$61, _r$62, _r$63, _r$64, _r$65, _r$66, _r$67, _r$68, _r$69, _r$7, _r$70, _r$71, _r$72, _r$73, _r$74, _r$75, _r$76, _r$77, _r$78, _r$79, _r$8, _r$80, _r$81, _r$82, _r$83, _r$84, _r$85, _r$86, _r$87, _r$88, _r$89, _r$9, _r$90, _r$91, _r$92, _r$93, _r$94, _r$95, _r$96, _r$97, _r$98, _r$99, _ref, _ref$1, _ref$10, _ref$11, _ref$12, _ref$13, _ref$14, _ref$15, _ref$16, _ref$17, _ref$18, _ref$19, _ref$2, _ref$20, _ref$21, _ref$22, _ref$23, _ref$24, _ref$25, _ref$26, _ref$27, _ref$28, _ref$29, _ref$3, _ref$30, _ref$31, _ref$32, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _ref$9, _tuple, _tuple$1, _tuple$10, _tuple$100, _tuple$101, _tuple$102, _tuple$103, _tuple$104, _tuple$105, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$2, _tuple$20, _tuple$21, _tuple$22, _tuple$23, _tuple$24, _tuple$25, _tuple$26, _tuple$27, _tuple$28, _tuple$29, _tuple$3, _tuple$30, _tuple$31, _tuple$32, _tuple$33, _tuple$34, _tuple$35, _tuple$36, _tuple$37, _tuple$38, _tuple$39, _tuple$4, _tuple$40, _tuple$41, _tuple$42, _tuple$43, _tuple$44, _tuple$45, _tuple$46, _tuple$47, _tuple$48, _tuple$49, _tuple$5, _tuple$50, _tuple$51, _tuple$52, _tuple$53, _tuple$54, _tuple$55, _tuple$56, _tuple$57, _tuple$58, _tuple$59, _tuple$6, _tuple$60, _tuple$61, _tuple$62, _tuple$63, _tuple$64, _tuple$65, _tuple$66, _tuple$67, _tuple$68, _tuple$69, _tuple$7, _tuple$70, _tuple$71, _tuple$72, _tuple$73, _tuple$74, _tuple$75, _tuple$76, _tuple$77, _tuple$78, _tuple$79, _tuple$8, _tuple$80, _tuple$81, _tuple$82, _tuple$83, _tuple$84, _tuple$85, _tuple$86, _tuple$87, _tuple$88, _tuple$89, _tuple$9, _tuple$90, _tuple$91, _tuple$92, _tuple$93, _tuple$94, _tuple$95, _tuple$96, _tuple$97, _tuple$98, _tuple$99, _v, _v$1, a, a$1, afterIndex, arg, arg$1, arg$10, arg$2, arg$3, arg$4, arg$5, arg$6, arg$7, arg$8, arg$9, args, args$1, args$2, assertOrWith, asyncArrowNeedsToBeLowered, binary, binary$1, boolean$1, boolean$2, boolean$3, charCodes, childIn, childOrNil, childOrNil$1, children, childrenValue, closeBracket, comma, containsOptionalChain, containsOptionalChain$1, containsOptionalChain$2, couldBeObjectCreate, couldBeRequireResolve, data, data$1, define, define$1, define$2, defines, defines$1, defines$2, dot, dot$1, dot$2, e, e$1, e$10, e$11, e$12, e$13, e$14, e$15, e$16, e$17, e$18, e$19, e$2, e$20, e$21, e$22, e$23, e$24, e$25, e$26, e$27, e$28, e$29, e$3, e$4, e$5, e$6, e$7, e$8, e$9, e2, e2$1, e2$2, e2$3, e2$4, e2$5, e2$6, e2$7, e2$8, e2$9, end, entries, expr, flags, flags$1, fn, hasIndex, hasKey, hasSpread, hasSpread$1, hasSpread$2, hasSpread$3, hasSpread$4, i, i$1, i$2, i$3, i$4, i$5, i$6, id, id$1, id$2, id$3, id$4, id$5, id$6, id$7, id$8, id$9, importMeta, in$1, index, index$1, index$2, inlined, innerClassNameRef, intValue, isAwaitTarget, isCallTarget, isCallTarget$1, isCallTarget$2, isCallTarget$3, isCallTarget$4, isDeleteTarget, isDeleteTarget$1, isDeleteTarget$2, isDeleteTarget$3, isDeleteTarget$4, isInlinedConstant, isParenthesizedOptionalChain, isStaticChildren, isTemplateTag, isTemplateTag$1, isThenCatchTarget, item, jsx, jsxSourceColumn, jsxSourceLine, k, k$1, key, key$1, key$2, keyProperty, keyword, kind, kind$1, kind$2, kind$3, kind$4, kind$5, kind$6, left, leftBinary, leftIn, loc, loc$1, loc$2, log, log$1, mangled, mangled$1, methodCallMustBeReplacedWithUndefined, msg, n, name, name$1, name$2, name$3, name$4, name$5, nameToKeep, nameToKeep$1, nameToKeep$2, names, names$1, new$1, new$2, new$3, notes, num, num$1, number, number$1, number$2, number$3, numberValue, numberValue$1, object, ok, ok$1, ok$10, ok$11, ok$12, ok$13, ok$14, ok$15, ok$16, ok$17, ok$18, ok$19, ok$2, ok$20, ok$21, ok$22, ok$23, ok$24, ok$25, ok$26, ok$27, ok$28, ok$29, ok$3, ok$30, ok$31, ok$32, ok$33, ok$34, ok$35, ok$36, ok$37, ok$38, ok$39, ok$4, ok$40, ok$41, ok$42, ok$43, ok$44, ok$45, ok$46, ok$47, ok$48, ok$49, ok$5, ok$50, ok$51, ok$52, ok$53, ok$54, ok$55, ok$56, ok$57, ok$58, ok$59, ok$6, ok$60, ok$61, ok$62, ok$63, ok$64, ok$65, ok$66, ok$67, ok$68, ok$69, ok$7, ok$70, ok$71, ok$72, ok$73, ok$74, ok$8, ok$9, old, old$1, oldFnOrArrowData, oldInnerClassNameRef, oldInsideAsyncArrowFn, oldIsControlFlowDead, oldIsInStaticClassContext, omitWarnings, out, out$1, out$2, out$3, p, p$1, part, part$1, pattern, preferQuotedKey, private$1, private$2, private$3, private$4, prop, propName, properties, property, property$1, property$2, property$3, property$4, propsLoc, protoRange, r, r$1, r$10, r$11, r$12, r$13, r$14, r$15, r$2, r$3, r$4, r$5, r$6, r$7, r$8, r$9, radix, regExpRef, result, result$1, result$2, result$3, result$4, s, s$1, seenPropsSpread, shouldLowerTemplateLiteral, shouldRemove, shouldUseCreateElement, sideEffects, sideEffects$1, size, source, source$1, stackBottom, stmt, str, str$1, str$10, str$2, str$3, str$4, str$5, str$6, str$7, str$8, str$9, stringInJSTable, stringInJSTable$1, superPropLoc, symbol, symbol$1, symbol$2, symbol$3, symbol$4, t, t$1, t$2, t$3, t$4, tag, tag$1, tag$2, tagIsLoweredOptionalChain, tagOut, tagThisFunc, tagWrapFunc, target, target$1, target$10, target$11, target$12, target$13, target$14, target$15, target$2, target$3, target$4, target$5, target$6, target$7, target$8, target$9, targetFunc, targetFunc$1, targetWrapFunc, targetWrapFunc$1, text, text$1, text$2, text$3, tracker, typeof$1, v, v$1, value, value$1, value$2, value$3, value$4, value$5, value$6, value$7, value$8, wasIdentifierBeforeVisit, where, why, whyLoc, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$25, x$26, x$27, x$28, x$29, x$3, x$30, x$31, x$32, x$33, x$34, x$35, x$36, x$37, x$38, x$39, x$4, x$40, x$41, x$42, x$43, x$44, x$45, x$46, x$47, x$48, x$49, x$5, x$50, x$51, x$52, x$53, x$54, x$55, x$56, x$57, x$58, x$59, x$6, x$60, x$61, x$62, x$63, x$64, x$65, x$66, x$67, x$68, x$69, x$7, x$70, x$71, x$72, x$8, x$9, $s};return $f; + /* */ } return; } var $f = {$blk: visitExprInOut, $c: true, $r, $24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$13, $24r$14, $24r$15, $24r$16, $24r$17, $24r$18, $24r$19, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _1, _2, _3, _4, _5, _6, _7, _8, _9, __self, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$16, _arg$17, _arg$18, _arg$19, _arg$2, _arg$20, _arg$21, _arg$22, _arg$23, _arg$24, _arg$25, _arg$26, _arg$27, _arg$28, _arg$29, _arg$3, _arg$30, _arg$31, _arg$32, _arg$33, _arg$34, _arg$35, _arg$36, _arg$37, _arg$38, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _entry, _entry$1, _entry$10, _entry$2, _entry$3, _entry$4, _entry$5, _entry$6, _entry$7, _entry$8, _entry$9, _i, _i$1, _i$10, _i$11, _i$12, _i$13, _i$14, _i$15, _i$16, _i$17, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _i$8, _i$9, _r, _r$1, _r$10, _r$100, _r$101, _r$102, _r$103, _r$104, _r$105, _r$106, _r$107, _r$108, _r$109, _r$11, _r$110, _r$111, _r$112, _r$113, _r$114, _r$115, _r$116, _r$117, _r$118, _r$119, _r$12, _r$120, _r$121, _r$122, _r$123, _r$124, _r$125, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _r$5, _r$50, _r$51, _r$52, _r$53, _r$54, _r$55, _r$56, _r$57, _r$58, _r$59, _r$6, _r$60, _r$61, _r$62, _r$63, _r$64, _r$65, _r$66, _r$67, _r$68, _r$69, _r$7, _r$70, _r$71, _r$72, _r$73, _r$74, _r$75, _r$76, _r$77, _r$78, _r$79, _r$8, _r$80, _r$81, _r$82, _r$83, _r$84, _r$85, _r$86, _r$87, _r$88, _r$89, _r$9, _r$90, _r$91, _r$92, _r$93, _r$94, _r$95, _r$96, _r$97, _r$98, _r$99, _ref, _ref$1, _ref$10, _ref$11, _ref$12, _ref$13, _ref$14, _ref$15, _ref$16, _ref$17, _ref$18, _ref$19, _ref$2, _ref$20, _ref$21, _ref$22, _ref$23, _ref$24, _ref$25, _ref$26, _ref$27, _ref$28, _ref$29, _ref$3, _ref$30, _ref$31, _ref$32, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _ref$9, _tuple, _tuple$1, _tuple$10, _tuple$100, _tuple$101, _tuple$102, _tuple$103, _tuple$104, _tuple$105, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$2, _tuple$20, _tuple$21, _tuple$22, _tuple$23, _tuple$24, _tuple$25, _tuple$26, _tuple$27, _tuple$28, _tuple$29, _tuple$3, _tuple$30, _tuple$31, _tuple$32, _tuple$33, _tuple$34, _tuple$35, _tuple$36, _tuple$37, _tuple$38, _tuple$39, _tuple$4, _tuple$40, _tuple$41, _tuple$42, _tuple$43, _tuple$44, _tuple$45, _tuple$46, _tuple$47, _tuple$48, _tuple$49, _tuple$5, _tuple$50, _tuple$51, _tuple$52, _tuple$53, _tuple$54, _tuple$55, _tuple$56, _tuple$57, _tuple$58, _tuple$59, _tuple$6, _tuple$60, _tuple$61, _tuple$62, _tuple$63, _tuple$64, _tuple$65, _tuple$66, _tuple$67, _tuple$68, _tuple$69, _tuple$7, _tuple$70, _tuple$71, _tuple$72, _tuple$73, _tuple$74, _tuple$75, _tuple$76, _tuple$77, _tuple$78, _tuple$79, _tuple$8, _tuple$80, _tuple$81, _tuple$82, _tuple$83, _tuple$84, _tuple$85, _tuple$86, _tuple$87, _tuple$88, _tuple$89, _tuple$9, _tuple$90, _tuple$91, _tuple$92, _tuple$93, _tuple$94, _tuple$95, _tuple$96, _tuple$97, _tuple$98, _tuple$99, _v, _v$1, a, a$1, afterIndex, arg, arg$1, arg$10, arg$2, arg$3, arg$4, arg$5, arg$6, arg$7, arg$8, arg$9, args, args$1, args$2, assertOrWith, asyncArrowNeedsToBeLowered, binary, binary$1, boolean$1, boolean$2, boolean$3, charCodes, childIn, childOrNil, childOrNil$1, children, childrenValue, closeBracket, comma, containsOptionalChain, containsOptionalChain$1, containsOptionalChain$2, couldBeObjectCreate, couldBeRequireResolve, data, data$1, define, define$1, define$2, defines, defines$1, defines$2, dot, dot$1, dot$2, e, e$1, e$10, e$11, e$12, e$13, e$14, e$15, e$16, e$17, e$18, e$19, e$2, e$20, e$21, e$22, e$23, e$24, e$25, e$26, e$27, e$28, e$29, e$3, e$4, e$5, e$6, e$7, e$8, e$9, e2, e2$1, e2$2, e2$3, e2$4, e2$5, e2$6, e2$7, e2$8, e2$9, end, entries, expr, flags, flags$1, fn, hasIndex, hasKey, hasSpread, hasSpread$1, hasSpread$2, hasSpread$3, hasSpread$4, i, i$1, i$2, i$3, i$4, i$5, i$6, id, id$1, id$2, id$3, id$4, id$5, id$6, id$7, id$8, id$9, importMeta, in$1, index, index$1, index$2, inlined, innerClassNameRef, intValue, isAwaitTarget, isCallTarget, isCallTarget$1, isCallTarget$2, isCallTarget$3, isCallTarget$4, isDeleteTarget, isDeleteTarget$1, isDeleteTarget$2, isDeleteTarget$3, isDeleteTarget$4, isInlinedConstant, isParenthesizedOptionalChain, isStaticChildren, isTemplateTag, isTemplateTag$1, isThenCatchTarget, item, jsx, jsxSourceColumn, jsxSourceLine, k, k$1, key, key$1, key$2, keyProperty, keyword, kind, kind$1, kind$2, kind$3, kind$4, kind$5, kind$6, left, leftBinary, leftIn, loc, loc$1, loc$2, log, log$1, mangled, mangled$1, methodCallMustBeReplacedWithUndefined, msg, n, name, name$1, name$2, name$3, name$4, name$5, nameToKeep, nameToKeep$1, nameToKeep$2, names, names$1, new$1, new$2, new$3, notes, num, num$1, number, number$1, number$2, number$3, numberValue, numberValue$1, object, ok, ok$1, ok$10, ok$11, ok$12, ok$13, ok$14, ok$15, ok$16, ok$17, ok$18, ok$19, ok$2, ok$20, ok$21, ok$22, ok$23, ok$24, ok$25, ok$26, ok$27, ok$28, ok$29, ok$3, ok$30, ok$31, ok$32, ok$33, ok$34, ok$35, ok$36, ok$37, ok$38, ok$39, ok$4, ok$40, ok$41, ok$42, ok$43, ok$44, ok$45, ok$46, ok$47, ok$48, ok$49, ok$5, ok$50, ok$51, ok$52, ok$53, ok$54, ok$55, ok$56, ok$57, ok$58, ok$59, ok$6, ok$60, ok$61, ok$62, ok$63, ok$64, ok$65, ok$66, ok$67, ok$68, ok$69, ok$7, ok$70, ok$71, ok$72, ok$73, ok$74, ok$8, ok$9, old, old$1, oldFnOrArrowData, oldInnerClassNameRef, oldInsideAsyncArrowFn, oldIsControlFlowDead, oldIsInStaticClassContext, omitWarnings, out, out$1, out$2, out$3, p, p$1, part, part$1, pattern, preferQuotedKey, private$1, private$2, private$3, private$4, prop, propName, properties, property, property$1, property$2, property$3, property$4, propsLoc, protoRange, r, r$1, r$10, r$11, r$12, r$13, r$14, r$15, r$2, r$3, r$4, r$5, r$6, r$7, r$8, r$9, radix, regExpRef, result, result$1, result$2, result$3, result$4, s, s$1, seenPropsSpread, shouldLowerTemplateLiteral, shouldRemove, shouldUseCreateElement, sideEffects, sideEffects$1, size, source, source$1, stackBottom, stmt, str, str$1, str$10, str$2, str$3, str$4, str$5, str$6, str$7, str$8, str$9, stringInJSTable, stringInJSTable$1, superPropLoc, symbol, symbol$1, symbol$2, symbol$3, symbol$4, t, t$1, t$2, t$3, t$4, tag, tag$1, tag$2, tagIsLoweredOptionalChain, tagOut, tagThisFunc, tagWrapFunc, target, target$1, target$10, target$11, target$12, target$13, target$14, target$15, target$2, target$3, target$4, target$5, target$6, target$7, target$8, target$9, targetFunc, targetFunc$1, targetWrapFunc, targetWrapFunc$1, text, text$1, text$2, text$3, tracker, typeof$1, v, v$1, value, value$1, value$2, value$3, value$4, value$5, value$6, value$7, value$8, wasIdentifierBeforeVisit, where, why, whyLoc, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$25, x$26, x$27, x$28, x$29, x$3, x$30, x$31, x$32, x$33, x$34, x$35, x$36, x$37, x$38, x$39, x$4, x$40, x$41, x$42, x$43, x$44, x$45, x$46, x$47, x$48, x$49, x$5, x$50, x$51, x$52, x$53, x$54, x$55, x$56, x$57, x$58, x$59, x$6, x$60, x$61, x$62, x$63, x$64, x$65, x$66, x$67, x$68, x$69, x$7, x$70, x$71, x$72, x$73, x$74, x$75, x$76, x$77, x$78, x$8, x$9, $s};return $f; }; $ptrType(binaryExprVisitor).prototype.checkAndPrepare = function checkAndPrepare(p) { var {_arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, _tuple$1, e, name, ok, ok$1, p, private$1, r, result, symbol, v, x, x$1, $s, $r, $c} = $restore(this, {p}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: v = this; e = v.e; - _tuple = $assertType(e.Left.Data, ptrType$24, true); + _tuple = $assertType(e.Left.Data, ptrType$25, true); private$1 = _tuple[0]; ok = _tuple[1]; /* */ if (ok && (e.Op === 21)) { $s = 1; continue; } @@ -183989,7 +185232,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { _r = p.findSymbol($clone(e.Left.Loc, logger.Loc), name); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } result = $clone(_r, findSymbolResult); ast.Ref.copy(private$1.Ref, result.ref); - symbol = (x = p.symbols, x$1 = result.ref.InnerIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + symbol = (x = p.symbols, x$1 = result.ref.InnerIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + x$1, ptrType$23))); /* */ if (!new ast.SymbolKind(symbol.Kind).IsPrivate()) { $s = 4; continue; } /* */ $s = 5; continue; /* if (!new ast.SymbolKind(symbol.Kind).IsPrivate()) { */ case 4: @@ -184009,7 +185252,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* } */ case 2: v.isStmtExpr = $interfaceIsEqual(e, p.stmtExprValue); v.oldSilenceWarningAboutThisBeingUndefined = p.fnOnlyDataVisit.silenceMessageAboutThisBeingUndefined; - _tuple$1 = $assertType(e.Left.Data, ptrType$95, true); + _tuple$1 = $assertType(e.Left.Data, ptrType$102, true); ok$1 = _tuple$1[1]; if (ok$1 && (e.Op === 32)) { p.fnOnlyDataVisit.silenceMessageAboutThisBeingUndefined = true; @@ -184090,7 +185333,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { js_ast.Expr.copy(e.Right, _tuple$3[0]); $s = 8; continue; /* } else if ((_1 === (37)) || (_1 === (51)) || (_1 === (52)) || (_1 === (50))) { */ case 6: - _tuple$4 = $assertType(e.Left.Data, ptrType$32, true); + _tuple$4 = $assertType(e.Left.Data, ptrType$33, true); id = _tuple$4[0]; ok$3 = _tuple$4[1]; if (ok$3) { @@ -184179,12 +185422,12 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* } */ case 59: $r = p.warnAboutTypeofAndString($clone(e.Left, js_ast.Expr), $clone(e.Right, js_ast.Expr), 1); /* */ $s = 62; case 62: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } if (p.options.optionsThatSupportStructuralEquality.minifySyntax) { - _tuple$6 = $assertType(e.Left.Data, ptrType$33, true); + _tuple$6 = $assertType(e.Left.Data, ptrType$34, true); ok$5 = _tuple$6[1]; if (ok$5) { e.Left.Data = js_ast.ENullShared; } else { - _tuple$7 = $assertType(e.Right.Data, ptrType$33, true); + _tuple$7 = $assertType(e.Right.Data, ptrType$34, true); ok$6 = _tuple$7[1]; if (ok$6) { e.Right.Data = js_ast.ENullShared; @@ -184243,12 +185486,12 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* } */ case 69: $r = p.warnAboutTypeofAndString($clone(e.Left, js_ast.Expr), $clone(e.Right, js_ast.Expr), 1); /* */ $s = 72; case 72: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } if (p.options.optionsThatSupportStructuralEquality.minifySyntax) { - _tuple$12 = $assertType(e.Left.Data, ptrType$33, true); + _tuple$12 = $assertType(e.Left.Data, ptrType$34, true); ok$11 = _tuple$12[1]; if (ok$11) { e.Left.Data = js_ast.ENullShared; } else { - _tuple$13 = $assertType(e.Right.Data, ptrType$33, true); + _tuple$13 = $assertType(e.Right.Data, ptrType$34, true); ok$12 = _tuple$13[1]; if (ok$12) { e.Right.Data = js_ast.ENullShared; @@ -184338,7 +185581,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } /* } */ case 79: if (p.options.optionsThatSupportStructuralEquality.minifySyntax) { - _tuple$18 = $assertType(e.Right.Data, ptrType$45, true); + _tuple$18 = $assertType(e.Right.Data, ptrType$47, true); right = _tuple$18[0]; ok$17 = _tuple$18[1]; if (ok$17 && (right.Op === 30)) { @@ -184398,7 +185641,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } /* } */ case 91: if (p.options.optionsThatSupportStructuralEquality.minifySyntax) { - _tuple$20 = $assertType(e.Right.Data, ptrType$45, true); + _tuple$20 = $assertType(e.Right.Data, ptrType$47, true); right$1 = _tuple$20[0]; ok$19 = _tuple$20[1]; if (ok$19 && (right$1.Op === 31)) { @@ -184460,7 +185703,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } /* } */ case 99: if (p.options.optionsThatSupportStructuralEquality.minifySyntax) { - _tuple$23 = $assertType(e.Right.Data, ptrType$45, true); + _tuple$23 = $assertType(e.Right.Data, ptrType$47, true); right$3 = _tuple$23[0]; ok$22 = _tuple$23[1]; if (ok$22 && (right$3.Op === 32)) { @@ -184483,7 +185726,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { if (!($interfaceIsEqual(result$9.Data, $ifaceNil))) { $s = -1; return result$9; } - _tuple$25 = $assertType(e.Left.Data, ptrType$45, true); + _tuple$25 = $assertType(e.Left.Data, ptrType$47, true); left$2 = _tuple$25[0]; ok$24 = _tuple$25[1]; if (ok$24 && (left$2.Op === 11)) { @@ -184503,7 +185746,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { target = $clone(_tuple$26[0], js_ast.Expr); loc = $clone(_tuple$26[1], logger.Loc); private$1 = _tuple$26[2]; - if (!(private$1 === ptrType$24.nil)) { + if (!(private$1 === ptrType$25.nil)) { $s = -1; return p.lowerPrivateSet($clone(target, js_ast.Expr), $clone(loc, logger.Loc), private$1, $clone(e.Right, js_ast.Expr)); } property = $clone(p.extractSuperProperty($clone(e.Left, js_ast.Expr)), js_ast.Expr); @@ -184527,7 +185770,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ if (!((p.options.optionsThatSupportStructuralEquality.mode === 0)) && p.isFileConsideredToHaveESMExports && !p.isControlFlowDead) { $s = 109; continue; } /* */ $s = 110; continue; /* if (!((p.options.optionsThatSupportStructuralEquality.mode === 0)) && p.isFileConsideredToHaveESMExports && !p.isControlFlowDead) { */ case 109: - _tuple$28 = $assertType(e.Left.Data, ptrType$25, true); + _tuple$28 = $assertType(e.Left.Data, ptrType$26, true); dot = _tuple$28[0]; ok$26 = _tuple$28[1]; /* */ if (ok$26) { $s = 111; continue; } @@ -184536,22 +185779,22 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { name = ""; loc$1 = new logger.Loc.ptr(0); _ref = dot.Target.Data; - if ($assertType(_ref, ptrType$32, true)[1]) { + if ($assertType(_ref, ptrType$33, true)[1]) { target$1 = _ref.$val; - symbol = (x$2 = p.symbols, x$3 = target$1.Ref.InnerIndex, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])); + symbol = (x$2 = p.symbols, x$3 = target$1.Ref.InnerIndex, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$2.$array, x$2.$offset + x$3, ptrType$23))); if ((symbol.Kind === 0) && ((symbol.OriginalName === "module" && dot.Name === "exports") || symbol.OriginalName === "exports") && !new ast.SymbolFlags(symbol.Flags).Has(32)) { name = symbol.OriginalName; logger.Loc.copy(loc$1, dot.Target.Loc); symbol.Flags = (symbol.Flags | (32)) >>> 0; } - } else if ($assertType(_ref, ptrType$25, true)[1]) { + } else if ($assertType(_ref, ptrType$26, true)[1]) { target$2 = _ref.$val; if (target$2.Name === "exports") { - _tuple$29 = $assertType(target$2.Target.Data, ptrType$32, true); + _tuple$29 = $assertType(target$2.Target.Data, ptrType$33, true); id$1 = _tuple$29[0]; ok$27 = _tuple$29[1]; if (ok$27) { - symbol$1 = (x$4 = p.symbols, x$5 = id$1.Ref.InnerIndex, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])); + symbol$1 = (x$4 = p.symbols, x$5 = id$1.Ref.InnerIndex, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$4.$array, x$4.$offset + x$5, ptrType$23))); if ((symbol$1.Kind === 0) && symbol$1.OriginalName === "module" && !new ast.SymbolFlags(symbol$1.Flags).Has(32)) { name = symbol$1.OriginalName; logger.Loc.copy(loc$1, target$2.Target.Loc); @@ -184709,7 +185952,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* } */ case 54: case 27: if (p.options.optionsThatSupportStructuralEquality.minifySyntax && !((e.Op === 36))) { - _tuple$34 = $assertType(e.Left.Data, ptrType$45, true); + _tuple$34 = $assertType(e.Left.Data, ptrType$47, true); comma = _tuple$34[0]; ok$31 = _tuple$34[1]; if (ok$31 && (comma.Op === 36)) { @@ -184731,7 +185974,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { while (true) { if (!(_i < _ref$1.$length)) { break; } i = _i; - remapExprLocsInJSON((x = e.Items, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])), table); + remapExprLocsInJSON((x = e.Items, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + i, ptrType$36))), table); _i++; } } else if ($assertType(_ref, ptrType$15, true)[1]) { @@ -184817,13 +186060,13 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } _i$2++; } - if (assertOrWith === ptrType$72.nil) { - if (!(globPattern.assertOrWith === ptrType$72.nil)) { + if (assertOrWith === ptrType$76.nil) { + if (!(globPattern.assertOrWith === ptrType$76.nil)) { _i$1++; continue; } } else { - if (globPattern.assertOrWith === ptrType$72.nil) { + if (globPattern.assertOrWith === ptrType$76.nil) { _i$1++; continue; } @@ -184855,7 +186098,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { break; } if ($equal(ref, ast.InvalidRef, ast.Ref) && !(prefix === "")) { - sb = new strings.Builder.ptr(ptrType$105.nil, sliceType$34.nil); + sb = new strings.Builder.ptr(ptrType$114.nil, sliceType$34.nil); sb.WriteString(prefix); _ref$4 = parts; _i$4 = 0; @@ -184897,7 +186140,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { switch (0) { default: if ($assertType(_ref, ptrType$16, true)[1]) { e = _ref.$val; return [new sliceType$32([$clone(new globPart.ptr(helpers.UTF16ToString(e.Value), false), globPart)]), p.source.RangeOfString($clone(expr.Loc, logger.Loc))]; - } else if ($assertType(_ref, ptrType$91, true)[1]) { + } else if ($assertType(_ref, ptrType$96, true)[1]) { e$1 = _ref.$val; if (!($interfaceIsEqual(e$1.TagOrNil.Data, $ifaceNil))) { break; @@ -184937,7 +186180,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { i = i + (1) >> 0; } return [pattern, templateRange]; - } else if ($assertType(_ref, ptrType$45, true)[1]) { + } else if ($assertType(_ref, ptrType$47, true)[1]) { e$2 = _ref.$val; if (!((e$2.Op === 11))) { break; @@ -184958,10 +186201,10 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } pattern$1 = $append(pattern$1, new globPart.ptr("", true)); _ref$2 = e$2.Right.Data; - if ($assertType(_ref$2, ptrType$32, true)[1]) { + if ($assertType(_ref$2, ptrType$33, true)[1]) { right = _ref$2.$val; leftRange.Len = $clone(js_lexer.RangeOfIdentifier($clone(p.source, logger.Source), $clone(e$2.Right.Loc, logger.Loc)), logger.Range).End() - leftRange.Loc.Start >> 0; - } else if ($assertType(_ref$2, ptrType$39, true)[1]) { + } else if ($assertType(_ref$2, ptrType$41, true)[1]) { right$1 = _ref$2.$val; if (right$1.CloseParenLoc.Start > 0) { leftRange.Len = (right$1.CloseParenLoc.Start + 1 >> 0) - leftRange.Loc.Start >> 0; @@ -184998,7 +186241,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ if (!((p.options.optionsThatSupportStructuralEquality.outputFormat === 0))) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!((p.options.optionsThatSupportStructuralEquality.outputFormat === 0))) { */ case 1: - _tuple = $assertType(target.Data, ptrType$32, true); + _tuple = $assertType(target.Data, ptrType$33, true); id = _tuple[0]; ok = _tuple[1]; /* */ if (ok && !((_entry = $mapIndex(p.importItemsForNamespace,ast.Ref.keyFor(id.Ref)), _entry !== undefined ? _entry.v : new namespaceImportItems.ptr(false, 0)).entries === false)) { $s = 3; continue; } @@ -185073,7 +186316,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $ptrType(parser).prototype.maybeMarkKnownGlobalConstructorAsPure = function maybeMarkKnownGlobalConstructorAsPure(e) { var _1, _2, _i, _ref, _ref$1, _ref$2, _ref$3, _tuple, _tuple$1, allEntriesAreArrays, arg, arg$1, arg$2, arg$3, arg$4, arg$5, e, id, item, n, n$1, n$2, n$3, ok, ok$1, p, symbol, x, x$1, x$2, x$3, x$4, x$5; p = this; - _tuple = $assertType(e.Target.Data, ptrType$32, true); + _tuple = $assertType(e.Target.Data, ptrType$33, true); id = _tuple[0]; ok = _tuple[1]; if (ok) { @@ -185089,7 +186332,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } if (n === 1) { _ref = (x$2 = e.Args, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])).Data; - if ($assertType(_ref, ptrType$21, true)[1] || $assertType(_ref, ptrType$33, true)[1]) { + if ($assertType(_ref, ptrType$21, true)[1] || $assertType(_ref, ptrType$34, true)[1]) { arg = _ref; e.CanBeUnwrappedIfUnused = true; } else if ($assertType(_ref, ptrType$17, true)[1]) { @@ -185122,7 +186365,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } if (n$2 === 1) { _ref$1 = (x$4 = e.Args, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])).Data; - if ($assertType(_ref$1, ptrType$17, true)[1] || $assertType(_ref$1, ptrType$21, true)[1] || $assertType(_ref$1, ptrType$33, true)[1]) { + if ($assertType(_ref$1, ptrType$17, true)[1] || $assertType(_ref$1, ptrType$21, true)[1] || $assertType(_ref$1, ptrType$34, true)[1]) { e.CanBeUnwrappedIfUnused = true; } else { } @@ -185135,7 +186378,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } if (n$3 === 1) { _ref$2 = (x$5 = e.Args, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0])).Data; - if ($assertType(_ref$2, ptrType$21, true)[1] || $assertType(_ref$2, ptrType$33, true)[1]) { + if ($assertType(_ref$2, ptrType$21, true)[1] || $assertType(_ref$2, ptrType$34, true)[1]) { arg$3 = _ref$2; e.CanBeUnwrappedIfUnused = true; } else if ($assertType(_ref$2, ptrType$17, true)[1]) { @@ -185167,7 +186410,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } }; $ptrType(parser).prototype.handleIdentifier = function handleIdentifier(loc, e, opts) { - var {_arg, _arg$1, _arg$10, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, data, e, isInsideUnsupportedArrow, isInsideUnsupportedAsyncArrow, kind, loc, m, m$1, m$2, m$3, m$4, m$5, member, name, notes, ns, nsAlias, nsRef, ok, ok$1, ok$2, ok$3, ok$4, ok$5, opts, originalName, p, propertyAccess, r, ref, setterHint, symbol, tsMemberData, tsMemberData$1, value, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {loc, e, opts}); + var {_arg, _arg$1, _arg$10, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, data, e, isInsideUnsupportedArrow, isInsideUnsupportedAsyncArrow, kind, loc, m, m$1, m$2, m$3, m$4, m$5, member, name, notes, ns, nsAlias, nsRef, ok, ok$1, ok$2, ok$3, ok$4, ok$5, opts, originalName, p, propertyAccess, r, ref, setterHint, symbol, tsMemberData, tsMemberData$1, value, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {loc, e, opts}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; ref = $clone(e.Ref, ast.Ref); @@ -185180,19 +186423,19 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $s = -1; return js_ast.ConstValueToExpr($clone(loc, logger.Loc), $clone(value, js_ast.ConstValue)); } } - if (!(p.fnOnlyDataVisit.argumentsRef === ptrType$11.nil) && $equal(ref, p.fnOnlyDataVisit.argumentsRef, ast.Ref)) { + if (!(p.fnOnlyDataVisit.argumentsRef === ptrType$11.nil) && $equal(ref, (x = p.fnOnlyDataVisit.argumentsRef, (x === ptrType$11.nil && $throwNilPointerError(), x)), ast.Ref)) { isInsideUnsupportedArrow = p.fnOrArrowDataVisit.isArrow && p.options.optionsThatSupportStructuralEquality.unsupportedJSFeatures.Has(new compat.JSFeature(0, 4)); isInsideUnsupportedAsyncArrow = p.fnOnlyDataVisit.isInsideAsyncArrowFn && p.options.optionsThatSupportStructuralEquality.unsupportedJSFeatures.Has(new compat.JSFeature(0, 8)); if (isInsideUnsupportedArrow || isInsideUnsupportedAsyncArrow) { $s = -1; return new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(p.captureArguments(), ast.Ref), false, false, false), $clone(loc, logger.Loc)); } } - /* */ if ((!((opts.assignTarget === 0)) || (opts.isDeleteTarget && ((x = p.symbols, x$1 = ref.InnerIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).ImportItemStatus === 1))) && ((x$2 = p.symbols, x$3 = ref.InnerIndex, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])).Kind === 21)) { $s = 1; continue; } + /* */ if ((!((opts.assignTarget === 0)) || (opts.isDeleteTarget && ((x$1 = p.symbols, x$2 = ref.InnerIndex, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])).ImportItemStatus === 1))) && ((x$3 = p.symbols, x$4 = ref.InnerIndex, ((x$4 < 0 || x$4 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + x$4])).Kind === 21)) { $s = 1; continue; } /* */ $s = 2; continue; - /* if ((!((opts.assignTarget === 0)) || (opts.isDeleteTarget && ((x = p.symbols, x$1 = ref.InnerIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).ImportItemStatus === 1))) && ((x$2 = p.symbols, x$3 = ref.InnerIndex, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])).Kind === 21)) { */ case 1: + /* if ((!((opts.assignTarget === 0)) || (opts.isDeleteTarget && ((x$1 = p.symbols, x$2 = ref.InnerIndex, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])).ImportItemStatus === 1))) && ((x$3 = p.symbols, x$4 = ref.InnerIndex, ((x$4 < 0 || x$4 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + x$4])).Kind === 21)) { */ case 1: r = $clone(js_lexer.RangeOfIdentifier($clone(p.source, logger.Source), $clone(loc, logger.Loc)), logger.Range); setterHint = ""; - originalName = (x$4 = p.symbols, x$5 = ref.InnerIndex, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])).OriginalName; + originalName = (x$5 = p.symbols, x$6 = ref.InnerIndex, ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$6])).OriginalName; /* */ if (js_ast.IsIdentifier(originalName) && !(originalName === "_")) { $s = 3; continue; } /* */ $s = 4; continue; /* if (js_ast.IsIdentifier(originalName) && !(originalName === "_")) { */ case 3: @@ -185239,11 +186482,11 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ if ((opts.assignTarget === 0) && !opts.isDeleteTarget) { $s = 19; continue; } /* */ $s = 20; continue; /* if ((opts.assignTarget === 0) && !opts.isDeleteTarget) { */ case 19: - symbol = (x$6 = p.symbols, x$7 = ref.InnerIndex, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])); + symbol = (x$7 = p.symbols, x$8 = ref.InnerIndex, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$7.$array, x$7.$offset + x$8, ptrType$23))); nsAlias = symbol.NamespaceAlias; - /* */ if (!(nsAlias === ptrType$68.nil)) { $s = 21; continue; } + /* */ if (!(nsAlias === ptrType$71.nil)) { $s = 21; continue; } /* */ $s = 22; continue; - /* if (!(nsAlias === ptrType$68.nil)) { */ case 21: + /* if (!(nsAlias === ptrType$71.nil)) { */ case 21: _r$6 = p.dotOrMangledPropVisit($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(nsAlias.NamespaceRef, ast.Ref), false, false, false), $clone(loc, logger.Loc)), js_ast.Expr), symbol.OriginalName, $clone(loc, logger.Loc)); /* */ $s = 23; case 23: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } data = _r$6; _tuple$1 = (_entry$1 = $mapIndex(p.refToTSNamespaceMemberData,ast.Ref.keyFor(nsAlias.NamespaceRef)), _entry$1 !== undefined ? [_entry$1.v, true] : [$ifaceNil, false]); @@ -185259,10 +186502,10 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { ok$3 = _tuple$3[1]; if (ok$3) { _ref = member.Data; - if ($assertType(_ref, ptrType$98, true)[1]) { + if ($assertType(_ref, ptrType$107, true)[1]) { m = _ref.$val; $s = -1; return p.wrapInlinedEnum($clone(new js_ast.Expr.ptr(new js_ast.ENumber.ptr(m.Value), $clone(loc, logger.Loc)), js_ast.Expr), nsAlias.Alias); - } else if ($assertType(_ref, ptrType$99, true)[1]) { + } else if ($assertType(_ref, ptrType$108, true)[1]) { m$1 = _ref.$val; $s = -1; return p.wrapInlinedEnum($clone(new js_ast.Expr.ptr(new js_ast.EString.ptr(m$1.Value, new logger.Loc.ptr(0), false, false, false), $clone(loc, logger.Loc)), js_ast.Expr), nsAlias.Alias); } else if ($assertType(_ref, ptrType$3, true)[1]) { @@ -185284,12 +186527,12 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { ok$4 = _tuple$4[1]; if (ok$4) { _ref$1 = tsMemberData$1; - if ($assertType(_ref$1, ptrType$98, true)[1]) { + if ($assertType(_ref$1, ptrType$107, true)[1]) { m$3 = _ref$1.$val; - $s = -1; return p.wrapInlinedEnum($clone(new js_ast.Expr.ptr(new js_ast.ENumber.ptr(m$3.Value), $clone(loc, logger.Loc)), js_ast.Expr), (x$8 = p.symbols, x$9 = ref.InnerIndex, ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + x$9])).OriginalName); - } else if ($assertType(_ref$1, ptrType$99, true)[1]) { + $s = -1; return p.wrapInlinedEnum($clone(new js_ast.Expr.ptr(new js_ast.ENumber.ptr(m$3.Value), $clone(loc, logger.Loc)), js_ast.Expr), (x$9 = p.symbols, x$10 = ref.InnerIndex, ((x$10 < 0 || x$10 >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + x$10])).OriginalName); + } else if ($assertType(_ref$1, ptrType$108, true)[1]) { m$4 = _ref$1.$val; - $s = -1; return p.wrapInlinedEnum($clone(new js_ast.Expr.ptr(new js_ast.EString.ptr(m$4.Value, new logger.Loc.ptr(0), false, false, false), $clone(loc, logger.Loc)), js_ast.Expr), (x$10 = p.symbols, x$11 = ref.InnerIndex, ((x$11 < 0 || x$11 >= x$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + x$11])).OriginalName); + $s = -1; return p.wrapInlinedEnum($clone(new js_ast.Expr.ptr(new js_ast.EString.ptr(m$4.Value, new logger.Loc.ptr(0), false, false, false), $clone(loc, logger.Loc)), js_ast.Expr), (x$11 = p.symbols, x$12 = ref.InnerIndex, ((x$12 < 0 || x$12 >= x$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + x$12])).OriginalName); } else if ($assertType(_ref$1, ptrType$3, true)[1]) { m$5 = _ref$1.$val; p.tsNamespaceTarget = e; @@ -185305,7 +186548,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ if (ok$5) { $s = 26; continue; } /* */ $s = 27; continue; /* if (ok$5) { */ case 26: - name = (x$12 = p.symbols, x$13 = ref.InnerIndex, ((x$13 < 0 || x$13 >= x$12.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + x$13])).OriginalName; + name = (x$13 = p.symbols, x$14 = ref.InnerIndex, ((x$14 < 0 || x$14 >= x$13.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + x$14])).OriginalName; p.recordUsage($clone(nsRef, ast.Ref)); _r$7 = p.dotOrMangledPropVisit($clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(nsRef, ast.Ref), false, false, false), $clone(loc, logger.Loc)), js_ast.Expr), name, $clone(loc, logger.Loc)); /* */ $s = 28; case 28: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } propertyAccess = _r$7; @@ -185326,10 +186569,10 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $s = -1; return p.valueToSubstituteForRequire($clone(loc, logger.Loc)); /* } */ case 30: if (!((opts.assignTarget === 0))) { - (x$16 = p.symbols, x$17 = e.Ref.InnerIndex, ((x$17 < 0 || x$17 >= x$16.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$16.$array[x$16.$offset + x$17])).Flags = ((x$14 = p.symbols, x$15 = e.Ref.InnerIndex, ((x$15 < 0 || x$15 >= x$14.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + x$15])).Flags | (64)) >>> 0; + (x$17 = p.symbols, x$18 = e.Ref.InnerIndex, ((x$18 < 0 || x$18 >= x$17.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$17.$array[x$17.$offset + x$18])).Flags = ((x$15 = p.symbols, x$16 = e.Ref.InnerIndex, ((x$16 < 0 || x$16 >= x$15.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$15.$array[x$15.$offset + x$16])).Flags | (64)) >>> 0; } $s = -1; return new js_ast.Expr.ptr(e, $clone(loc, logger.Loc)); - /* */ } return; } var $f = {$blk: handleIdentifier, $c: true, $r, _arg, _arg$1, _arg$10, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, data, e, isInsideUnsupportedArrow, isInsideUnsupportedAsyncArrow, kind, loc, m, m$1, m$2, m$3, m$4, m$5, member, name, notes, ns, nsAlias, nsRef, ok, ok$1, ok$2, ok$3, ok$4, ok$5, opts, originalName, p, propertyAccess, r, ref, setterHint, symbol, tsMemberData, tsMemberData$1, value, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; + /* */ } return; } var $f = {$blk: handleIdentifier, $c: true, $r, _arg, _arg$1, _arg$10, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, data, e, isInsideUnsupportedArrow, isInsideUnsupportedAsyncArrow, kind, loc, m, m$1, m$2, m$3, m$4, m$5, member, name, notes, ns, nsAlias, nsRef, ok, ok$1, ok$2, ok$3, ok$4, ok$5, opts, originalName, p, propertyAccess, r, ref, setterHint, symbol, tsMemberData, tsMemberData$1, value, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; }; $ptrType(parser).prototype.visitFn = function visitFn(fn, scopeLoc, opts) { var {_r, decoratorScope, fn, oldFnOnlyData, oldFnOrArrowData, opts, p, scopeLoc, x, x$1, $s, $r, $c} = $restore(this, {fn, scopeLoc, opts}); @@ -185359,7 +186602,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { _r = p.visitStmtsAndPrependTempRefs(fn.Body.Block.Stmts, $clone(new prependTempRefsOpts.ptr(fn.Body.Loc, 3), prependTempRefsOpts)); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } fn.Body.Block.Stmts = _r; p.popScope(); - $r = p.lowerFunction((fn.$ptr_IsAsync || (fn.$ptr_IsAsync = new ptrType$46(function() { return this.$target.IsAsync; }, function($v) { this.$target.IsAsync = $v; }, fn))), (fn.$ptr_IsGenerator || (fn.$ptr_IsGenerator = new ptrType$46(function() { return this.$target.IsGenerator; }, function($v) { this.$target.IsGenerator = $v; }, fn))), (fn.$ptr_Args || (fn.$ptr_Args = new ptrType$104(function() { return this.$target.Args; }, function($v) { this.$target.Args = $v; }, fn))), $clone(fn.Body.Loc, logger.Loc), fn.Body.Block, ptrType$46.nil, (fn.$ptr_HasRestArg || (fn.$ptr_HasRestArg = new ptrType$46(function() { return this.$target.HasRestArg; }, function($v) { this.$target.HasRestArg = $v; }, fn))), false); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.lowerFunction((fn === ptrType$115.nil && $throwNilPointerError(), (fn.$ptr_IsAsync || (fn.$ptr_IsAsync = new ptrType$48(function() { return this.$target.IsAsync; }, function($v) { this.$target.IsAsync = $v; }, fn)))), (fn === ptrType$115.nil && $throwNilPointerError(), (fn.$ptr_IsGenerator || (fn.$ptr_IsGenerator = new ptrType$48(function() { return this.$target.IsGenerator; }, function($v) { this.$target.IsGenerator = $v; }, fn)))), (fn === ptrType$115.nil && $throwNilPointerError(), (fn.$ptr_Args || (fn.$ptr_Args = new ptrType$113(function() { return this.$target.Args; }, function($v) { this.$target.Args = $v; }, fn)))), $clone(fn.Body.Loc, logger.Loc), fn.Body.Block, ptrType$48.nil, (fn === ptrType$115.nil && $throwNilPointerError(), (fn.$ptr_HasRestArg || (fn.$ptr_HasRestArg = new ptrType$48(function() { return this.$target.HasRestArg; }, function($v) { this.$target.HasRestArg = $v; }, fn)))), false); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } p.popScope(); fnOrArrowDataVisit.copy(p.fnOrArrowDataVisit, oldFnOrArrowData); fnOnlyDataVisit.copy(p.fnOnlyDataVisit, oldFnOnlyData); @@ -185400,7 +186643,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { decl = $clone((x = s.Decls, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])), js_ast.Decl); value = $clone((x$1 = s.Decls, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])).ValueOrNil, js_ast.Expr); while (true) { - _tuple = $assertType(value.Data, ptrType$25, true); + _tuple = $assertType(value.Data, ptrType$26, true); dot = _tuple[0]; ok = _tuple[1]; if (ok) { @@ -185411,15 +186654,15 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } valueRef = $clone(ast.InvalidRef, ast.Ref); _ref = value.Data; - if ($assertType(_ref, ptrType$32, true)[1]) { + if ($assertType(_ref, ptrType$33, true)[1]) { v = _ref.$val; ast.Ref.copy(valueRef, v.Ref); - } else if ($assertType(_ref, ptrType$100, true)[1]) { + } else if ($assertType(_ref, ptrType$109, true)[1]) { v$1 = _ref.$val; ast.Ref.copy(valueRef, v$1.Ref); } if (!($equal(valueRef, ast.InvalidRef, ast.Ref))) { - ref = $clone($assertType(decl.Binding.Data, ptrType$34).Ref, ast.Ref); + ref = $clone($assertType(decl.Binding.Data, ptrType$35).Ref, ast.Ref); if ((x$2 = p.symbols, x$3 = ref.InnerIndex, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])).UseCountEstimate === 0) { p.ignoreUsage($clone(valueRef, ast.Ref)); result.removedImportEquals = true; @@ -185456,7 +186699,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { return result; }; $ptrType(parser).prototype.scanForImportsAndExports = function scanForImportsAndExports(stmts) { - var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _entry, _entry$1, _entry$2, _entry$3, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _i$8, _i$9, _key, _key$1, _key$2, _key$3, _key$4, _key$5, _key$6, _keys, _r, _r$1, _r$2, _r$3, _ref, _ref$1, _ref$10, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _ref$9, _size, _tuple, _tuple$1, alias, alias$1, foundImports, importItems, importItems$1, isUnusedInTypeScript, item, item$1, item$2, item$3, item$4, item$5, item$6, itemsEnd, keepUnusedImports, name, ok, ok$1, p, record, record$1, record$2, result, s, s$1, s$2, s$3, s$4, s$5, s$6, s$7, sorted, stmt, stmts, stmtsEnd, symbol, symbol$1, symbol$2, unusedImportFlags, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$25, x$26, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {stmts}); + var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _entry, _entry$1, _entry$2, _entry$3, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _i$8, _i$9, _key, _key$1, _key$2, _key$3, _key$4, _key$5, _key$6, _keys, _r, _r$1, _r$2, _r$3, _ref, _ref$1, _ref$10, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _ref$9, _size, _tuple, _tuple$1, alias, alias$1, foundImports, importItems, importItems$1, isUnusedInTypeScript, item, item$1, item$2, item$3, item$4, item$5, item$6, itemsEnd, keepUnusedImports, name, ok, ok$1, p, record, record$1, record$2, result, s, s$1, s$2, s$3, s$4, s$5, s$6, s$7, sorted, stmt, stmts, stmtsEnd, symbol, symbol$1, symbol$2, unusedImportFlags, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$25, x$26, x$27, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {stmts}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = [p]; result = [result]; @@ -185470,22 +186713,22 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } stmt = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), js_ast.Stmt); _ref$1 = stmt.Data; - /* */ if ($assertType(_ref$1, ptrType$56, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref$1, ptrType$59, true)[1]) { $s = 3; continue; } /* */ if ($assertType(_ref$1, ptrType$6, true)[1]) { $s = 4; continue; } /* */ if ($assertType(_ref$1, ptrType$7, true)[1]) { $s = 5; continue; } /* */ if ($assertType(_ref$1, ptrType$10, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref$1, ptrType$31, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref$1, ptrType$59, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref$1, ptrType$58, true)[1]) { $s = 9; continue; } - /* */ if ($assertType(_ref$1, ptrType$57, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref$1, ptrType$32, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref$1, ptrType$62, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref$1, ptrType$61, true)[1]) { $s = 9; continue; } + /* */ if ($assertType(_ref$1, ptrType$60, true)[1]) { $s = 10; continue; } /* */ $s = 11; continue; - /* if ($assertType(_ref$1, ptrType$56, true)[1]) { */ case 3: + /* if ($assertType(_ref$1, ptrType$59, true)[1]) { */ case 3: s = _ref$1.$val; - record = (x = p[0].importRecords, x$1 = s.ImportRecordIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + record = (x = p[0].importRecords, x$1 = s.ImportRecordIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + x$1, ptrType$106))); keepUnusedImports = p[0].options.optionsThatSupportStructuralEquality.ts.Parse && !(((((unusedImportFlags & 2) >>> 0)) === 0)) && !((p[0].options.optionsThatSupportStructuralEquality.mode === 2)) && !p[0].options.optionsThatSupportStructuralEquality.minifyIdentifiers; - /* */ if (!(((((record.Flags & 2048) >>> 0)) === 0)) && (p[0].options.optionsThatSupportStructuralEquality.mode === 2) && !(s.Items === ptrType$75.nil)) { $s = 12; continue; } + /* */ if (!(((((record.Flags & 2048) >>> 0)) === 0)) && (p[0].options.optionsThatSupportStructuralEquality.mode === 2) && !(s.Items === ptrType$79.nil)) { $s = 12; continue; } /* */ $s = 13; continue; - /* if (!(((((record.Flags & 2048) >>> 0)) === 0)) && (p[0].options.optionsThatSupportStructuralEquality.mode === 2) && !(s.Items === ptrType$75.nil)) { */ case 12: + /* if (!(((((record.Flags & 2048) >>> 0)) === 0)) && (p[0].options.optionsThatSupportStructuralEquality.mode === 2) && !(s.Items === ptrType$79.nil)) { */ case 12: _ref$2 = s.Items.$get(); _i$1 = 0; /* while (true) { */ case 14: @@ -185523,7 +186766,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { s.DefaultName = ptrType$12.nil; } } - if (!(s.StarNameLoc === ptrType$76.nil)) { + if (!(s.StarNameLoc === ptrType$80.nil)) { foundImports = true; symbol$1 = $clone((x$8 = p[0].symbols, x$9 = s.NamespaceRef.InnerIndex, ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + x$9])), ast.Symbol); if (p[0].options.optionsThatSupportStructuralEquality.ts.Parse && (!(((x$10 = p[0].tsUseCounts, x$11 = s.NamespaceRef.InnerIndex, ((x$11 < 0 || x$11 >= x$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + x$11])) === 0)) || !(((((p[0].options.optionsThatSupportStructuralEquality.ts.Config.UnusedImportFlags() & 2) >>> 0)) === 0)))) { @@ -185534,11 +186777,11 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { importItems = $clone(_tuple[0], namespaceImportItems); ok = _tuple[1]; if (ok && ((importItems.entries ? importItems.entries.size : 0) === 0)) { - s.StarNameLoc = ptrType$76.nil; + s.StarNameLoc = ptrType$80.nil; } } } - if (!(s.Items === ptrType$75.nil)) { + if (!(s.Items === ptrType$79.nil)) { foundImports = true; itemsEnd = 0; _ref$3 = s.Items.$get(); @@ -185557,7 +186800,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { _i$2++; } if (itemsEnd === 0) { - s.Items = ptrType$75.nil; + s.Items = ptrType$79.nil; } else { s.Items.$set($subslice((s.Items.$get()), 0, itemsEnd)); } @@ -185573,9 +186816,9 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ if (!((p[0].options.optionsThatSupportStructuralEquality.mode === 0))) { $s = 21; continue; } /* */ $s = 22; continue; /* if (!((p[0].options.optionsThatSupportStructuralEquality.mode === 0))) { */ case 21: - /* */ if (!(s.StarNameLoc === ptrType$76.nil)) { $s = 23; continue; } + /* */ if (!(s.StarNameLoc === ptrType$80.nil)) { $s = 23; continue; } /* */ $s = 24; continue; - /* if (!(s.StarNameLoc === ptrType$76.nil)) { */ case 23: + /* if (!(s.StarNameLoc === ptrType$80.nil)) { */ case 23: _tuple$1 = (_entry$1 = $mapIndex(p[0].importItemsForNamespace,ast.Ref.keyFor(s.NamespaceRef)), _entry$1 !== undefined ? [_entry$1.v, true] : [new namespaceImportItems.ptr(false, 0), false]); importItems$1 = $clone(_tuple$1[0], namespaceImportItems); ok$1 = _tuple$1[1]; @@ -185616,10 +186859,10 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { if (!(s.DefaultName === ptrType$12.nil)) { _key$2 = $clone(s.DefaultName.Ref, ast.Ref); (p[0].namedImports || $throwRuntimeError("assignment to entry in nil map")).set(ast.Ref.keyFor(_key$2), { k: _key$2, v: $clone(new js_ast.NamedImport.ptr("default", sliceType$35.nil, $clone(s.DefaultName.Loc, logger.Loc), $clone(s.NamespaceRef, ast.Ref), s.ImportRecordIndex, false, false), js_ast.NamedImport) }); } - if (!(s.StarNameLoc === ptrType$76.nil)) { - _key$3 = $clone(s.NamespaceRef, ast.Ref); (p[0].namedImports || $throwRuntimeError("assignment to entry in nil map")).set(ast.Ref.keyFor(_key$3), { k: _key$3, v: $clone(new js_ast.NamedImport.ptr("", sliceType$35.nil, $clone(s.StarNameLoc, logger.Loc), $clone(ast.InvalidRef, ast.Ref), s.ImportRecordIndex, true, false), js_ast.NamedImport) }); + if (!(s.StarNameLoc === ptrType$80.nil)) { + _key$3 = $clone(s.NamespaceRef, ast.Ref); (p[0].namedImports || $throwRuntimeError("assignment to entry in nil map")).set(ast.Ref.keyFor(_key$3), { k: _key$3, v: $clone(new js_ast.NamedImport.ptr("", sliceType$35.nil, $clone((x$19 = s.StarNameLoc, (x$19 === ptrType$80.nil && $throwNilPointerError(), x$19)), logger.Loc), $clone(ast.InvalidRef, ast.Ref), s.ImportRecordIndex, true, false), js_ast.NamedImport) }); } - if (!(s.Items === ptrType$75.nil)) { + if (!(s.Items === ptrType$79.nil)) { _ref$6 = s.Items.$get(); _i$5 = 0; while (true) { @@ -185631,12 +186874,12 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } /* } */ case 22: p[0].importRecordsForCurrentPart = $append(p[0].importRecordsForCurrentPart, s.ImportRecordIndex); - if (!(s.StarNameLoc === ptrType$76.nil)) { + if (!(s.StarNameLoc === ptrType$80.nil)) { record.Flags = (record.Flags | (2)) >>> 0; } if (!(s.DefaultName === ptrType$12.nil)) { record.Flags = (record.Flags | (4)) >>> 0; - } else if (!(s.Items === ptrType$75.nil)) { + } else if (!(s.Items === ptrType$79.nil)) { _ref$7 = s.Items.$get(); _i$6 = 0; while (true) { @@ -185656,7 +186899,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ if (s$1.IsExport) { $s = 28; continue; } /* */ $s = 29; continue; /* if (s$1.IsExport) { */ case 28: - $r = p[0].recordExport($clone(s$1.Fn.Name.Loc, logger.Loc), (x$19 = p[0].symbols, x$20 = s$1.Fn.Name.Ref.InnerIndex, ((x$20 < 0 || x$20 >= x$19.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$19.$array[x$19.$offset + x$20])).OriginalName, $clone(s$1.Fn.Name.Ref, ast.Ref)); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p[0].recordExport($clone(s$1.Fn.Name.Loc, logger.Loc), (x$20 = p[0].symbols, x$21 = s$1.Fn.Name.Ref.InnerIndex, ((x$21 < 0 || x$21 >= x$20.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$20.$array[x$20.$offset + x$21])).OriginalName, $clone(s$1.Fn.Name.Ref, ast.Ref)); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 29: $s = 11; continue; /* } else if ($assertType(_ref$1, ptrType$7, true)[1]) { */ case 5: @@ -185664,7 +186907,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ if (s$2.IsExport) { $s = 31; continue; } /* */ $s = 32; continue; /* if (s$2.IsExport) { */ case 31: - $r = p[0].recordExport($clone(s$2.Class.Name.Loc, logger.Loc), (x$21 = p[0].symbols, x$22 = s$2.Class.Name.Ref.InnerIndex, ((x$22 < 0 || x$22 >= x$21.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$21.$array[x$21.$offset + x$22])).OriginalName, $clone(s$2.Class.Name.Ref, ast.Ref)); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p[0].recordExport($clone(s$2.Class.Name.Loc, logger.Loc), (x$22 = p[0].symbols, x$23 = s$2.Class.Name.Ref.InnerIndex, ((x$23 < 0 || x$23 >= x$22.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$22.$array[x$22.$offset + x$23])).OriginalName, $clone(s$2.Class.Name.Ref, ast.Ref)); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 32: $s = 11; continue; /* } else if ($assertType(_ref$1, ptrType$10, true)[1]) { */ case 6: @@ -185673,11 +186916,11 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ $s = 35; continue; /* if (s$3.IsExport) { */ case 34: $r = js_ast.ForEachIdentifierBindingInDecls(s$3.Decls, (function(p, result) { return function parser·scanForImportsAndExports·func1(loc, b) { - var {b, loc, x$23, x$24, $s, $r, $c} = $restore(this, {loc, b}); + var {b, loc, x$24, x$25, $s, $r, $c} = $restore(this, {loc, b}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = p[0].recordExport($clone(loc, logger.Loc), (x$23 = p[0].symbols, x$24 = b.Ref.InnerIndex, ((x$24 < 0 || x$24 >= x$23.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$23.$array[x$23.$offset + x$24])).OriginalName, $clone(b.Ref, ast.Ref)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p[0].recordExport($clone(loc, logger.Loc), (x$24 = p[0].symbols, x$25 = b.Ref.InnerIndex, ((x$25 < 0 || x$25 >= x$24.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$24.$array[x$24.$offset + x$25])).OriginalName, $clone(b.Ref, ast.Ref)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } var $f = {$blk: parser·scanForImportsAndExports·func1, $c: true, $r, b, loc, x$23, x$24, $s};return $f; + /* */ } return; } var $f = {$blk: parser·scanForImportsAndExports·func1, $c: true, $r, b, loc, x$24, x$25, $s};return $f; }; })(p, result)); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 35: if (p[0].checkForUnusedTSImportEquals(s$3, result[0])) { @@ -185685,11 +186928,11 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* continue; */ $s = 1; continue; } $s = 11; continue; - /* } else if ($assertType(_ref$1, ptrType$31, true)[1]) { */ case 7: + /* } else if ($assertType(_ref$1, ptrType$32, true)[1]) { */ case 7: s$4 = _ref$1.$val; $r = p[0].recordExport($clone(s$4.DefaultName.Loc, logger.Loc), "default", $clone(s$4.DefaultName.Ref, ast.Ref)); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 11; continue; - /* } else if ($assertType(_ref$1, ptrType$59, true)[1]) { */ case 8: + /* } else if ($assertType(_ref$1, ptrType$62, true)[1]) { */ case 8: s$5 = _ref$1.$val; _ref$8 = s$5.Items; _i$7 = 0; @@ -185701,13 +186944,13 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $s = 38; continue; case 39: $s = 11; continue; - /* } else if ($assertType(_ref$1, ptrType$58, true)[1]) { */ case 9: + /* } else if ($assertType(_ref$1, ptrType$61, true)[1]) { */ case 9: s$6 = _ref$1.$val; - record$1 = (x$23 = p[0].importRecords, x$24 = s$6.ImportRecordIndex, ((x$24 < 0 || x$24 >= x$23.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$23.$array[x$23.$offset + x$24])); + record$1 = (x$24 = p[0].importRecords, x$25 = s$6.ImportRecordIndex, ((x$25 < 0 || x$25 >= x$24.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$24.$array, x$24.$offset + x$25, ptrType$106))); p[0].importRecordsForCurrentPart = $append(p[0].importRecordsForCurrentPart, s$6.ImportRecordIndex); - /* */ if (!(s$6.Alias === ptrType$74.nil)) { $s = 41; continue; } + /* */ if (!(s$6.Alias === ptrType$78.nil)) { $s = 41; continue; } /* */ $s = 42; continue; - /* if (!(s$6.Alias === ptrType$74.nil)) { */ case 41: + /* if (!(s$6.Alias === ptrType$78.nil)) { */ case 41: _key$5 = $clone(s$6.NamespaceRef, ast.Ref); (p[0].namedImports || $throwRuntimeError("assignment to entry in nil map")).set(ast.Ref.keyFor(_key$5), { k: _key$5, v: $clone(new js_ast.NamedImport.ptr("", sliceType$35.nil, $clone(s$6.Alias.Loc, logger.Loc), $clone(ast.InvalidRef, ast.Ref), s$6.ImportRecordIndex, true, true), js_ast.NamedImport) }); $r = p[0].recordExport($clone(s$6.Alias.Loc, logger.Loc), s$6.Alias.OriginalName, $clone(s$6.NamespaceRef, ast.Ref)); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } record$1.Flags = (record$1.Flags | (2)) >>> 0; @@ -185716,9 +186959,9 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { p[0].exportStarImportRecords = $append(p[0].exportStarImportRecords, s$6.ImportRecordIndex); /* } */ case 43: $s = 11; continue; - /* } else if ($assertType(_ref$1, ptrType$57, true)[1]) { */ case 10: + /* } else if ($assertType(_ref$1, ptrType$60, true)[1]) { */ case 10: s$7 = _ref$1.$val; - record$2 = (x$25 = p[0].importRecords, x$26 = s$7.ImportRecordIndex, ((x$26 < 0 || x$26 >= x$25.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$25.$array[x$25.$offset + x$26])); + record$2 = (x$26 = p[0].importRecords, x$27 = s$7.ImportRecordIndex, ((x$27 < 0 || x$27 >= x$26.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$26.$array, x$26.$offset + x$27, ptrType$106))); p[0].importRecordsForCurrentPart = $append(p[0].importRecordsForCurrentPart, s$7.ImportRecordIndex); _ref$9 = s$7.Items; _i$8 = 0; @@ -185770,7 +187013,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { case 2: result[0].stmts = $subslice(stmts, 0, stmtsEnd); $s = -1; return result[0]; - /* */ } return; } var $f = {$blk: scanForImportsAndExports, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _entry, _entry$1, _entry$2, _entry$3, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _i$8, _i$9, _key, _key$1, _key$2, _key$3, _key$4, _key$5, _key$6, _keys, _r, _r$1, _r$2, _r$3, _ref, _ref$1, _ref$10, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _ref$9, _size, _tuple, _tuple$1, alias, alias$1, foundImports, importItems, importItems$1, isUnusedInTypeScript, item, item$1, item$2, item$3, item$4, item$5, item$6, itemsEnd, keepUnusedImports, name, ok, ok$1, p, record, record$1, record$2, result, s, s$1, s$2, s$3, s$4, s$5, s$6, s$7, sorted, stmt, stmts, stmtsEnd, symbol, symbol$1, symbol$2, unusedImportFlags, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$25, x$26, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; + /* */ } return; } var $f = {$blk: scanForImportsAndExports, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _entry, _entry$1, _entry$2, _entry$3, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _i$8, _i$9, _key, _key$1, _key$2, _key$3, _key$4, _key$5, _key$6, _keys, _r, _r$1, _r$2, _r$3, _ref, _ref$1, _ref$10, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _ref$9, _size, _tuple, _tuple$1, alias, alias$1, foundImports, importItems, importItems$1, isUnusedInTypeScript, item, item$1, item$2, item$3, item$4, item$5, item$6, itemsEnd, keepUnusedImports, name, ok, ok$1, p, record, record$1, record$2, result, s, s$1, s$2, s$3, s$4, s$5, s$6, s$7, sorted, stmt, stmts, stmtsEnd, symbol, symbol$1, symbol$2, unusedImportFlags, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$25, x$26, x$27, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; }; $ptrType(parser).prototype.appendPart = function appendPart(parts, stmts) { var {_entry, _i, _key, _r, _r$1, _ref, alreadyDeclared, flags, link, local, p, part, parts, stmts, x, x$1, $s, $r, $c} = $restore(this, {parts, stmts}); @@ -185782,7 +187025,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { p.declaredSymbols = sliceType$36.nil; p.importRecordsForCurrentPart = sliceType$35.nil; p.scopesForCurrentPart = sliceType$16.nil; - _r = p.visitStmtsAndPrependTempRefs(stmts, $clone(new prependTempRefsOpts.ptr(ptrType$76.nil, 0), prependTempRefsOpts)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = p.visitStmtsAndPrependTempRefs(stmts, $clone(new prependTempRefsOpts.ptr(ptrType$80.nil, 0), prependTempRefsOpts)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } part = new js_ast.Part.ptr(_r, sliceType$16.nil, sliceType$35.nil, sliceType$36.nil, p.symbolUses, false, false, sliceType$37.nil, false, false, false); if (!(p.currentScope === p.moduleScope)) { $panic(new $String("Internal error: Scope stack imbalance")); @@ -185834,14 +187077,14 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { defaultDefines = [defaultDefines]; p = [p]; source = [source]; - /* */ if (options.defines === ptrType$62.nil) { $s = 1; continue; } + /* */ if (options.defines === ptrType$65.nil) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (options.defines === ptrType$62.nil) { */ case 1: + /* if (options.defines === ptrType$65.nil) { */ case 1: _r = config.ProcessDefines(sliceType$30.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } defaultDefines[0] = $clone(_r, config.ProcessedDefines); options.defines = defaultDefines[0]; /* } */ case 2: - p[0] = new parser.ptr($clone(options, Options), $clone(log, logger.Log), $clone(source[0], logger.Source), $clone(logger.MakeLineColumnTracker(source[0]), logger.LineColumnTracker), new fnOrArrowDataParse.ptr(ptrType.nil, ptrType$1.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Loc.ptr(0), 0, 0, false, false, false, false, false, false, false, false), new fnOnlyDataVisit.ptr(ptrType$11.nil, ptrType$11.nil, ptrType$11.nil, false, false, ptrType$11.nil, false, false, false, false, false), sliceType.nil, ptrType$1.nil, sliceType$16.nil, sliceType$39.nil, new js_ast.HelperContext.ptr($throwNilPointerError), sliceType$35.nil, sliceType$18.nil, false, false, false, false, false, false, false, false, false, sliceType$36.nil, sliceType$40.nil, new $global.Map(), new duplicateCaseChecker.ptr(sliceType$41.nil, arrayType$1.zero()), false, false, false, sliceType$42.nil, false, new $global.Map(), new $global.Map(), new $global.Map(), $ifaceNil, $ifaceNil, new $global.Map(), new $global.Map(), new $global.Map(), false, false, $ifaceNil, ptrType$1.nil, ptrType$11.nil, sliceType$43.nil, sliceType$35.nil, sliceType$35.nil, new $global.Map(), new $global.Map(), new $global.Map(), new $global.Map(), false, false, sliceType$5.nil, "", $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, ptrType$1.nil, new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), false, $ifaceNil, new thenCatchChain.ptr($ifaceNil, new logger.Loc.ptr(0), false, false), sliceType$38.nil, false, sliceType$18.nil, sliceType$29.nil, sliceType$29.nil, $clone(lexer, js_lexer.Lexer), 0, 0, 0, 0, 0, 0, new ast.Ref.ptr(0, 0), new ast.Ref.ptr(0, 0), new ast.Ref.ptr(0, 0), $clone(ast.InvalidRef, ast.Ref), $clone(ast.InvalidRef, ast.Ref), $clone(ast.InvalidRef, ast.Ref), $clone(ast.InvalidRef, ast.Ref), $clone(ast.InvalidRef, ast.Ref), new $global.Map(), new $global.Map(), $clone(ast.InvalidRef, ast.Ref), $clone(ast.InvalidRef, ast.Ref), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Loc.ptr(0), new logger.Loc.ptr(0), $clone(new logger.Loc.ptr(-1), logger.Loc), new fnOrArrowDataVisit.ptr(0, new logger.Loc.ptr(0), false, false, false, false, false, false, false, false), $clone(new logger.Loc.ptr(-1), logger.Loc), helpers.IsInsideNodeModules(source[0].KeyPath.Text), false, false, false, false, true, false, false, false, false, false, !(options.mangleProps === ptrType$61.nil) || !(options.reserveProps === ptrType$61.nil), false); + p[0] = new parser.ptr($clone((options === ptrType$116.nil && $throwNilPointerError(), options), Options), $clone(log, logger.Log), $clone(source[0], logger.Source), $clone(logger.MakeLineColumnTracker(source[0]), logger.LineColumnTracker), new fnOrArrowDataParse.ptr(ptrType.nil, ptrType$1.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Loc.ptr(0), 0, 0, false, false, false, false, false, false, false, false), new fnOnlyDataVisit.ptr(ptrType$11.nil, ptrType$11.nil, ptrType$11.nil, false, false, ptrType$11.nil, false, false, false, false, false), sliceType.nil, ptrType$1.nil, sliceType$16.nil, sliceType$39.nil, new js_ast.HelperContext.ptr($throwNilPointerError), sliceType$35.nil, sliceType$18.nil, false, false, false, false, false, false, false, false, false, sliceType$36.nil, sliceType$40.nil, new $global.Map(), new duplicateCaseChecker.ptr(sliceType$41.nil, arrayType$1.zero()), false, false, false, sliceType$42.nil, false, new $global.Map(), new $global.Map(), new $global.Map(), $ifaceNil, $ifaceNil, new $global.Map(), new $global.Map(), new $global.Map(), false, false, $ifaceNil, ptrType$1.nil, ptrType$11.nil, sliceType$43.nil, sliceType$35.nil, sliceType$35.nil, new $global.Map(), new $global.Map(), new $global.Map(), new $global.Map(), false, false, sliceType$5.nil, "", $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, ptrType$1.nil, new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), false, $ifaceNil, new thenCatchChain.ptr($ifaceNil, new logger.Loc.ptr(0), false, false), sliceType$38.nil, false, sliceType$18.nil, sliceType$29.nil, sliceType$29.nil, $clone(lexer, js_lexer.Lexer), 0, 0, 0, 0, 0, 0, new ast.Ref.ptr(0, 0), new ast.Ref.ptr(0, 0), new ast.Ref.ptr(0, 0), $clone(ast.InvalidRef, ast.Ref), $clone(ast.InvalidRef, ast.Ref), $clone(ast.InvalidRef, ast.Ref), $clone(ast.InvalidRef, ast.Ref), $clone(ast.InvalidRef, ast.Ref), new $global.Map(), new $global.Map(), $clone(ast.InvalidRef, ast.Ref), $clone(ast.InvalidRef, ast.Ref), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Loc.ptr(0), new logger.Loc.ptr(0), $clone(new logger.Loc.ptr(-1), logger.Loc), new fnOrArrowDataVisit.ptr(0, new logger.Loc.ptr(0), false, false, false, false, false, false, false, false), $clone(new logger.Loc.ptr(-1), logger.Loc), helpers.IsInsideNodeModules(source[0].KeyPath.Text), false, false, false, false, true, false, false, false, false, false, !(options.mangleProps === ptrType$64.nil) || !(options.reserveProps === ptrType$64.nil), false); if (options.dropLabels.$length > 0) { p[0].dropLabelsMap = new $global.Map(); _ref = options.dropLabels; @@ -185870,7 +187113,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); ok = [ok]; options = [options]; - result = new js_ast.AST.ptr(new js_ast.ModuleTypeData.ptr(ptrType$63.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0), sliceType$44.nil, sliceType$39.nil, false, ptrType$1.nil, ptrType$106.nil, new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), "", sliceType.nil, "", false, false, false, false, false, sliceType$43.nil, false, false, sliceType$35.nil, new logger.Span.ptr("", new logger.Range.ptr(new logger.Loc.ptr(0), 0)), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new ast.Ref.ptr(0, 0), new ast.Ref.ptr(0, 0), new ast.Ref.ptr(0, 0), 0, arrayType$2.zero(), false, false, false, 0); + result = new js_ast.AST.ptr(new js_ast.ModuleTypeData.ptr(ptrType$66.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0), sliceType$44.nil, sliceType$39.nil, false, ptrType$1.nil, ptrType$117.nil, new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), "", sliceType.nil, "", false, false, false, false, false, sliceType$43.nil, false, false, sliceType$35.nil, new logger.Span.ptr("", new logger.Range.ptr(new logger.Loc.ptr(0), 0)), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new ast.Ref.ptr(0, 0), new ast.Ref.ptr(0, 0), new ast.Ref.ptr(0, 0), 0, arrayType$2.zero(), false, false, false, 0); ok[0] = false; ok[0] = true; $deferred.push([(function(ok, options) { return function Parse·func1() { @@ -185914,7 +187157,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $r = p.prepareForVisitPass(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } directives = sliceType.nil; tsAlwaysStrict = p.options.tsAlwaysStrict; - if (!(tsAlwaysStrict === ptrType$60.nil) && tsAlwaysStrict.Value) { + if (!(tsAlwaysStrict === ptrType$63.nil) && tsAlwaysStrict.Value) { directives = $append(directives, "use strict"); } totalCount = 0; @@ -185925,10 +187168,10 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 9; continue; } stmt = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), js_ast.Stmt); _ref$1 = stmt.Data; - /* */ if ($assertType(_ref$1, ptrType$84, true)[1]) { $s = 10; continue; } - /* */ if ($assertType(_ref$1, ptrType$55, true)[1]) { $s = 11; continue; } + /* */ if ($assertType(_ref$1, ptrType$88, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref$1, ptrType$58, true)[1]) { $s = 11; continue; } /* */ $s = 12; continue; - /* if ($assertType(_ref$1, ptrType$84, true)[1]) { */ case 10: + /* if ($assertType(_ref$1, ptrType$88, true)[1]) { */ case 10: s = _ref$1.$val; js_ast.Stmt.copy(((keptCount < 0 || keptCount >= stmts.$length) ? ($throwRuntimeError("index out of range"), undefined) : stmts.$array[stmts.$offset + keptCount]), stmt); keptCount = keptCount + (1) >> 0; @@ -185936,7 +187179,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { _i++; /* continue; */ $s = 8; continue; $s = 12; continue; - /* } else if ($assertType(_ref$1, ptrType$55, true)[1]) { */ case 11: + /* } else if ($assertType(_ref$1, ptrType$58, true)[1]) { */ case 11: s$1 = _ref$1.$val; /* */ if (p.isStrictMode() && s$1.LegacyOctalLoc.Start > 0) { $s = 13; continue; } /* */ $s = 14; continue; @@ -186031,10 +187274,10 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } } if (file.IsCopyLoader) { - _tuple$1 = p.generateImportStmt(file.Source.KeyPath.Text, $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range), exportsNoConflict, before, symbols, ptrType$107.nil, (x$1 = file.Source, (x$1.$ptr_Index || (x$1.$ptr_Index = new ptrType$107(function() { return this.$target.Index; }, function($v) { this.$target.Index = $v; }, x$1))))); + _tuple$1 = p.generateImportStmt(file.Source.KeyPath.Text, $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range), exportsNoConflict, before, symbols, ptrType$118.nil, (x$1 = file.Source, (x$1.$ptr_Index || (x$1.$ptr_Index = new ptrType$118(function() { return this.$target.Index; }, function($v) { this.$target.Index = $v; }, x$1))))); before = _tuple$1[0]; } else { - _tuple$2 = p.generateImportStmt(file.Source.KeyPath.Text, $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range), exportsNoConflict, before, symbols, (x$2 = file.Source, (x$2.$ptr_Index || (x$2.$ptr_Index = new ptrType$107(function() { return this.$target.Index; }, function($v) { this.$target.Index = $v; }, x$2)))), ptrType$107.nil); + _tuple$2 = p.generateImportStmt(file.Source.KeyPath.Text, $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range), exportsNoConflict, before, symbols, (x$2 = file.Source, (x$2.$ptr_Index || (x$2.$ptr_Index = new ptrType$118(function() { return this.$target.Index; }, function($v) { this.$target.Index = $v; }, x$2)))), ptrType$118.nil); before = _tuple$2[0]; } _i$2++; @@ -186083,8 +187326,8 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { stmt$2 = $clone(((_i$6 < 0 || _i$6 >= _ref$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$7.$array[_ref$7.$offset + _i$6]), js_ast.Stmt); _ref$8 = stmt$2.Data; /* */ if ($assertType(_ref$8, ptrType$10, true)[1]) { $s = 29; continue; } - /* */ if ($assertType(_ref$8, ptrType$56, true)[1] || $assertType(_ref$8, ptrType$57, true)[1] || $assertType(_ref$8, ptrType$58, true)[1]) { $s = 30; continue; } - /* */ if ($assertType(_ref$8, ptrType$85, true)[1]) { $s = 31; continue; } + /* */ if ($assertType(_ref$8, ptrType$59, true)[1] || $assertType(_ref$8, ptrType$60, true)[1] || $assertType(_ref$8, ptrType$61, true)[1]) { $s = 30; continue; } + /* */ if ($assertType(_ref$8, ptrType$89, true)[1]) { $s = 31; continue; } /* */ if ($assertType(_ref$8, ptrType$9, true)[1]) { $s = 32; continue; } /* */ $s = 33; continue; /* if ($assertType(_ref$8, ptrType$10, true)[1]) { */ case 29: @@ -186095,7 +187338,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { /* if (!(_i$7 < _ref$9.$length)) { break; } */ if(!(_i$7 < _ref$9.$length)) { $s = 36; continue; } clone = [clone]; decl = $clone(((_i$7 < 0 || _i$7 >= _ref$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$9.$array[_ref$9.$offset + _i$7]), js_ast.Decl); - clone[0] = $clone(s$2, js_ast.SLocal); + clone[0] = $clone((s$2 === ptrType$10.nil && $throwNilPointerError(), s$2), js_ast.SLocal); clone[0].Decls = new sliceType$7([$clone(decl, js_ast.Decl)]); _r$5 = p.appendPart(parts, new sliceType$8([$clone(new js_ast.Stmt.ptr(clone[0], $clone(stmt$2.Loc, logger.Loc)), js_ast.Stmt)])); /* */ $s = 37; case 37: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } parts = _r$5; @@ -186103,7 +187346,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $s = 35; continue; case 36: $s = 34; continue; - /* } else if ($assertType(_ref$8, ptrType$56, true)[1] || $assertType(_ref$8, ptrType$57, true)[1] || $assertType(_ref$8, ptrType$58, true)[1]) { */ case 30: + /* } else if ($assertType(_ref$8, ptrType$59, true)[1] || $assertType(_ref$8, ptrType$60, true)[1] || $assertType(_ref$8, ptrType$61, true)[1]) { */ case 30: s$3 = _ref$8; /* */ if (!((p.options.optionsThatSupportStructuralEquality.mode === 0))) { $s = 38; continue; } /* */ $s = 39; continue; @@ -186116,7 +187359,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { parts = _r$7; /* } */ case 40: $s = 34; continue; - /* } else if ($assertType(_ref$8, ptrType$85, true)[1]) { */ case 31: + /* } else if ($assertType(_ref$8, ptrType$89, true)[1]) { */ case 31: s$4 = _ref$8.$val; _r$8 = p.appendPart(after, new sliceType$8([$clone(stmt$2, js_ast.Stmt)])); /* */ $s = 43; case 43: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } after = _r$8; @@ -186171,7 +187414,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { GlobResolveAST = function GlobResolveAST$1(log, source, importRecords, object, name) { var {$24r, _i, _r, _r$1, _ref, importRecordIndex, importRecordIndices, importRecords, log, name, nsExportPart, object, p, part, ref, source, $s, $r, $c} = $restore(this, {log, source, importRecords, object, name}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = newParser($clone(log, logger.Log), $clone(source, logger.Source), $clone(new js_lexer.Lexer.ptr(sliceType$15.nil, sliceType$15.nil, sliceType$15.nil, new js_lexer.MaybeSubstring.ptr("", new ast.Index32.ptr(0)), new logger.Log.ptr($throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, 0, false), new logger.Source.ptr("", "", "", new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), 0), new logger.Span.ptr("", new logger.Range.ptr(new logger.Loc.ptr(0), 0)), new logger.Span.ptr("", new logger.Range.ptr(new logger.Loc.ptr(0), 0)), new logger.Span.ptr("", new logger.Range.ptr(new logger.Loc.ptr(0), 0)), new logger.Span.ptr("", new logger.Range.ptr(new logger.Loc.ptr(0), 0)), new logger.Span.ptr("", new logger.Range.ptr(new logger.Loc.ptr(0), 0)), "", sliceType$3.nil, "", "", new logger.LineColumnTracker.ptr("", "", 0, 0, 0, 0, false, false, false), 0, 0, 0, 0, 0, 0, 0, new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Loc.ptr(0), new logger.Loc.ptr(0), new logger.Loc.ptr(0), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0, new logger.Loc.ptr(0), 0, 0, new config.TSOptions.ptr(new config.TSConfig.ptr(0, 0, 0, 0, 0, 0), false, false), false, 0, false, false, false, false, false), js_lexer.Lexer), new Options.ptr(sliceType$22.nil, new config.JSXOptions.ptr(new config.DefineExpr.ptr($ifaceNil, sliceType.nil, new ast.Index32.ptr(0)), new config.DefineExpr.ptr($ifaceNil, sliceType.nil, new ast.Index32.ptr(0)), false, false, false, "", false, false), ptrType$60.nil, ptrType$61.nil, ptrType$61.nil, sliceType.nil, ptrType$62.nil, new optionsThatSupportStructuralEquality.ptr("", new js_ast.ModuleTypeData.ptr(ptrType$63.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0), new compat.JSFeature(0, 0), new compat.JSFeature(0, 0), new compat.JSFeature(0, 0), new config.TSOptions.ptr(new config.TSConfig.ptr(0, 0, 0, 0, 0, 0), false, false), 0, 0, 0, false, false, false, false, false, false, false, false, false, false, false, false))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = newParser($clone(log, logger.Log), $clone(source, logger.Source), $clone(new js_lexer.Lexer.ptr(sliceType$15.nil, sliceType$15.nil, sliceType$15.nil, new js_lexer.MaybeSubstring.ptr("", new ast.Index32.ptr(0)), new logger.Log.ptr($throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, 0, false), new logger.Source.ptr("", "", "", new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), 0), new logger.Span.ptr("", new logger.Range.ptr(new logger.Loc.ptr(0), 0)), new logger.Span.ptr("", new logger.Range.ptr(new logger.Loc.ptr(0), 0)), new logger.Span.ptr("", new logger.Range.ptr(new logger.Loc.ptr(0), 0)), new logger.Span.ptr("", new logger.Range.ptr(new logger.Loc.ptr(0), 0)), new logger.Span.ptr("", new logger.Range.ptr(new logger.Loc.ptr(0), 0)), "", sliceType$3.nil, "", "", new logger.LineColumnTracker.ptr("", "", 0, 0, 0, 0, false, false, false), 0, 0, 0, 0, 0, 0, 0, new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Loc.ptr(0), new logger.Loc.ptr(0), new logger.Loc.ptr(0), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0, new logger.Loc.ptr(0), 0, 0, new config.TSOptions.ptr(new config.TSConfig.ptr(0, 0, 0, 0, 0, 0), false, false), false, 0, false, false, false, false, false), js_lexer.Lexer), new Options.ptr(sliceType$22.nil, new config.JSXOptions.ptr(new config.DefineExpr.ptr($ifaceNil, sliceType.nil, new ast.Index32.ptr(0)), new config.DefineExpr.ptr($ifaceNil, sliceType.nil, new ast.Index32.ptr(0)), false, false, false, "", false, false), ptrType$63.nil, ptrType$64.nil, ptrType$64.nil, sliceType.nil, ptrType$65.nil, new optionsThatSupportStructuralEquality.ptr("", new js_ast.ModuleTypeData.ptr(ptrType$66.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0), new compat.JSFeature(0, 0), new compat.JSFeature(0, 0), new compat.JSFeature(0, 0), new config.TSOptions.ptr(new config.TSConfig.ptr(0, 0, 0, 0, 0, 0), false, false), 0, 0, 0, false, false, false, false, false, false, false, false, false, false, false, false))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } p = _r; $r = p.prepareForVisitPass(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } nsExportPart = new js_ast.Part.ptr(sliceType$8.nil, sliceType$16.nil, sliceType$35.nil, sliceType$36.nil, new $global.Map(), false, false, sliceType$37.nil, true, false, false); @@ -186240,7 +187483,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $s = -1; return [new config.DefineExpr.ptr($ifaceNil, sliceType.nil, new ast.Index32.ptr(0)), $ifaceNil]; } _ref$1 = expr.Data; - if ($assertType(_ref$1, ptrType$21, true)[1] || $assertType(_ref$1, ptrType$22, true)[1] || $assertType(_ref$1, ptrType$16, true)[1] || $assertType(_ref$1, ptrType$18, true)[1] || $assertType(_ref$1, ptrType$53, true)[1]) { + if ($assertType(_ref$1, ptrType$21, true)[1] || $assertType(_ref$1, ptrType$22, true)[1] || $assertType(_ref$1, ptrType$16, true)[1] || $assertType(_ref$1, ptrType$18, true)[1] || $assertType(_ref$1, ptrType$56, true)[1]) { $s = -1; return [new config.DefineExpr.ptr(expr.Data, sliceType.nil, new ast.Index32.ptr(0)), $ifaceNil]; } $s = -1; return [new config.DefineExpr.ptr($ifaceNil, sliceType.nil, new ast.Index32.ptr(0)), expr.Data]; @@ -186277,7 +187520,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { p.fnOrArrowDataVisit.isOutsideFnOrArrow = true; p.moduleScope = p.currentScope; tsAlwaysStrict = p.options.tsAlwaysStrict; - if (!(tsAlwaysStrict === ptrType$60.nil) && tsAlwaysStrict.Value) { + if (!(tsAlwaysStrict === ptrType$63.nil) && tsAlwaysStrict.Value) { p.currentScope.StrictMode = 4; } p.isFileConsideredToHaveESMExports = p.esmExportKeyword.Len > 0 || p.esmImportMeta.Len > 0 || p.topLevelAwaitKeyword.Len > 0 || new js_ast.ModuleType(p.options.optionsThatSupportStructuralEquality.moduleTypeData.Type).IsESM(); @@ -186429,16 +187672,16 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { visit = [visit]; p[0] = this; if (!p[0].options.optionsThatSupportStructuralEquality.minifyIdentifiers || (p[0].source.Index === 0)) { - $s = -1; return ptrType$106.nil; + $s = -1; return ptrType$117.nil; } charFreq[0] = arrayType$3.zero(); - new ptrType$106(charFreq[0]).Scan(p[0].source.Contents, 1); + new ptrType$117(charFreq[0]).Scan(p[0].source.Contents, 1); _ref = p[0].lexer.AllComments; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } commentRange = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), logger.Range); - new ptrType$106(charFreq[0]).Scan(p[0].source.TextForRange($clone(commentRange, logger.Range)), -1); + new ptrType$117(charFreq[0]).Scan(p[0].source.TextForRange($clone(commentRange, logger.Range)), -1); _i++; } _ref$1 = p[0].importRecords; @@ -186447,7 +187690,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { if (!(_i$1 < _ref$1.$length)) { break; } record = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), ast.ImportRecord); if (!$clone(record.SourceIndex, ast.Index32).IsValid()) { - new ptrType$106(charFreq[0]).Scan(record.Path.Text, -1); + new ptrType$117(charFreq[0]).Scan(record.Path.Text, -1); } _i$1++; } @@ -186468,16 +187711,16 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { continue; } member = $clone(_entry.v, js_ast.ScopeMember); - symbol = (x = p[0].symbols, x$1 = member.Ref.InnerIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + symbol = (x = p[0].symbols, x$1 = member.Ref.InnerIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + x$1, ptrType$23))); if (!((symbol.SlotNamespace() === 4))) { - new ptrType$106(charFreq[0]).Scan(symbol.OriginalName, -((symbol.UseCountEstimate >> 0))); + new ptrType$117(charFreq[0]).Scan(symbol.OriginalName, -((symbol.UseCountEstimate >> 0))); } _i$2++; } if (!($equal(scope.Label.Ref, ast.InvalidRef, ast.Ref))) { - symbol$1 = (x$2 = p[0].symbols, x$3 = scope.Label.Ref.InnerIndex, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])); + symbol$1 = (x$2 = p[0].symbols, x$3 = scope.Label.Ref.InnerIndex, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$2.$array, x$2.$offset + x$3, ptrType$23))); if (!((symbol$1.SlotNamespace() === 4))) { - new ptrType$106(charFreq[0]).Scan(symbol$1.OriginalName, -((symbol$1.UseCountEstimate >> 0)) - 1 >> 0); + new ptrType$117(charFreq[0]).Scan(symbol$1.OriginalName, -((symbol$1.UseCountEstimate >> 0)) - 1 >> 0); } } _ref$3 = scope.Children; @@ -186506,8 +187749,8 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { continue; } ref = $clone(_entry.v, ast.Ref); - symbol = (x = p[0].symbols, x$1 = ref.InnerIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); - new ptrType$106(charFreq[0]).Scan(symbol.OriginalName, -((symbol.UseCountEstimate >> 0))); + symbol = (x = p[0].symbols, x$1 = ref.InnerIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + x$1, ptrType$23))); + new ptrType$117(charFreq[0]).Scan(symbol.OriginalName, -((symbol.UseCountEstimate >> 0))); _i$2++; } $s = -1; return charFreq[0]; @@ -186542,11 +187785,11 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { p.moduleScope.Generated = $append(p.moduleScope.Generated, namespaceRef); declaredSymbols = $makeSlice(sliceType$36, (1 + imports.$length >> 0)); clauseItems = $makeSlice(sliceType$19, imports.$length); - importRecordIndex = p.addImportRecord(1, $clone(pathRange, logger.Range), path, ptrType$72.nil, 0); - if (!(sourceIndex === ptrType$107.nil)) { + importRecordIndex = p.addImportRecord(1, $clone(pathRange, logger.Range), path, ptrType$76.nil, 0); + if (!(sourceIndex === ptrType$118.nil)) { ast.Index32.copy((x = p.importRecords, ((importRecordIndex < 0 || importRecordIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + importRecordIndex])).SourceIndex, ast.MakeIndex32(sourceIndex.$get())); } - if (!(copySourceIndex === ptrType$107.nil)) { + if (!(copySourceIndex === ptrType$118.nil)) { ast.Index32.copy((x$1 = p.importRecords, ((importRecordIndex < 0 || importRecordIndex >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + importRecordIndex])).CopySourceIndex, ast.MakeIndex32(copySourceIndex.$get())); } js_ast.DeclaredSymbol.copy((0 >= declaredSymbols.$length ? ($throwRuntimeError("index out of range"), undefined) : declaredSymbols.$array[declaredSymbols.$offset + 0]), new js_ast.DeclaredSymbol.ptr($clone(namespaceRef, ast.Ref), true)); @@ -186563,7 +187806,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { _key$2 = $clone(it$1.Ref, ast.Ref); (p.namedImports || $throwRuntimeError("assignment to entry in nil map")).set(ast.Ref.keyFor(_key$2), { k: _key$2, v: $clone(new js_ast.NamedImport.ptr(alias, sliceType$35.nil, $clone(it$1.Loc, logger.Loc), $clone(namespaceRef, ast.Ref), importRecordIndex, false, false), js_ast.NamedImport) }); _i$1++; } - return [$append(parts, new js_ast.Part.ptr(new sliceType$8([$clone(new js_ast.Stmt.ptr(new js_ast.SImport.ptr(ptrType$12.nil, (clauseItems$24ptr || (clauseItems$24ptr = new ptrType$75(function() { return clauseItems; }, function($v) { clauseItems = $v; }))), ptrType$76.nil, $clone(namespaceRef, ast.Ref), importRecordIndex, true), $clone(pathRange.Loc, logger.Loc)), js_ast.Stmt)]), sliceType$16.nil, new sliceType$35([importRecordIndex]), declaredSymbols, false, false, false, sliceType$37.nil, false, false, false)), importRecordIndex]; + return [$append(parts, new js_ast.Part.ptr(new sliceType$8([$clone(new js_ast.Stmt.ptr(new js_ast.SImport.ptr(ptrType$12.nil, (clauseItems$24ptr || (clauseItems$24ptr = new ptrType$79(function() { return clauseItems; }, function($v) { clauseItems = $v; }))), ptrType$80.nil, $clone(namespaceRef, ast.Ref), importRecordIndex, true), $clone(pathRange.Loc, logger.Loc)), js_ast.Stmt)]), sliceType$16.nil, new sliceType$35([importRecordIndex]), declaredSymbols, false, false, false, sliceType$37.nil, false, false, false)), importRecordIndex]; }; sortedKeysOfMapStringLocRef = function sortedKeysOfMapStringLocRef$1(in$1) { var {_entry, _i, _key, _keys, _ref, _size, in$1, key, keys, $s, $r, $c} = $restore(this, {in$1}); @@ -186600,7 +187843,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { _r = sortedKeysOfMapStringLocRef(p.runtimeImports); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } keys = _r; sourceIndex[0] = 0; - _tuple = p.generateImportStmt("", $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range), keys, before, p.runtimeImports, (sourceIndex.$ptr || (sourceIndex.$ptr = new ptrType$107(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, sourceIndex))), ptrType$107.nil); + _tuple = p.generateImportStmt("", $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range), keys, before, p.runtimeImports, (sourceIndex.$ptr || (sourceIndex.$ptr = new ptrType$118(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, sourceIndex))), ptrType$118.nil); before = _tuple[0]; /* } */ case 2: /* */ if ((p.jsxRuntimeImports ? p.jsxRuntimeImports.size : 0) > 0 && !p.options.optionsThatSupportStructuralEquality.omitJSXRuntimeForTests) { $s = 4; continue; } @@ -186614,7 +187857,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { } else { path = path + "/jsx-runtime"; } - _tuple$1 = p.generateImportStmt(path, $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range), keys$1, before, p.jsxRuntimeImports, ptrType$107.nil, ptrType$107.nil); + _tuple$1 = p.generateImportStmt(path, $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range), keys$1, before, p.jsxRuntimeImports, ptrType$118.nil, ptrType$118.nil); before = _tuple$1[0]; /* } */ case 5: /* */ if ((p.jsxLegacyImports ? p.jsxLegacyImports.size : 0) > 0 && !p.options.optionsThatSupportStructuralEquality.omitJSXRuntimeForTests) { $s = 7; continue; } @@ -186623,7 +187866,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { _r$2 = sortedKeysOfMapStringLocRef(p.jsxLegacyImports); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } keys$2 = _r$2; path$1 = p.options.jsx.ImportSource; - _tuple$2 = p.generateImportStmt(path$1, $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range), keys$2, before, p.jsxLegacyImports, ptrType$107.nil, ptrType$107.nil); + _tuple$2 = p.generateImportStmt(path$1, $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range), keys$2, before, p.jsxLegacyImports, ptrType$118.nil, ptrType$118.nil); before = _tuple$2[0]; /* } */ case 8: _ref = p.globPatternImports; @@ -186633,10 +187876,10 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { glob = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), globPatternImport); symbols = $makeMap($String.keyFor, [{ k: glob.name, v: $clone(new ast.LocRef.ptr($clone(glob.approximateRange.Loc, logger.Loc), $clone(glob.ref, ast.Ref)), ast.LocRef) }]); importRecordIndex = 0; - _tuple$3 = p.generateImportStmt(helpers.GlobPatternToString(glob.parts), $clone(glob.approximateRange, logger.Range), new sliceType([glob.name]), before, symbols, ptrType$107.nil, ptrType$107.nil); + _tuple$3 = p.generateImportStmt(helpers.GlobPatternToString(glob.parts), $clone(glob.approximateRange, logger.Range), new sliceType([glob.name]), before, symbols, ptrType$118.nil, ptrType$118.nil); before = _tuple$3[0]; importRecordIndex = _tuple$3[1]; - record = (x = p.importRecords, ((importRecordIndex < 0 || importRecordIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + importRecordIndex])); + record = (x = p.importRecords, ((importRecordIndex < 0 || importRecordIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + importRecordIndex, ptrType$106))); record.AssertOrWith = glob.assertOrWith; record.GlobPattern = new ast.GlobPattern.ptr(glob.parts, glob.name, glob.kind); _i++; @@ -186707,7 +187950,7 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { while (true) { if (!(_i$4 < _ref$4.$length)) { break; } stmt = $clone(((_i$4 < 0 || _i$4 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$4]), js_ast.Stmt); - _tuple$4 = $assertType(stmt.Data, ptrType$59, true); + _tuple$4 = $assertType(stmt.Data, ptrType$62, true); s = _tuple$4[0]; ok = _tuple$4[1]; if (ok) { @@ -186858,32 +188101,32 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { $pkg.ParseGlobalName = ParseGlobalName; skipTypeFlags.methods = [{prop: "has", name: "has", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([skipTypeFlags], [$Bool], false)}]; mappingArray.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}]; - ptrType$108.methods = [{prop: "parseMaybeTrailingComma", name: "parseMaybeTrailingComma", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_lexer.T], [$Bool], false)}, {prop: "parseExpr", name: "parseExpr", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [js_ast.Expr], false)}]; - ptrType$110.methods = [{prop: "enableNameCapture", name: "enableNameCapture", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$109, visitClassResult], [], false)}, {prop: "lowerField", name: "lowerField", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$109, js_ast.Property, ptrType$24, $Bool, $Bool, $Int], [js_ast.Property, ast.Ref, $Bool], false)}, {prop: "lowerPrivateMethod", name: "lowerPrivateMethod", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$109, js_ast.Property, ptrType$24], [], false)}, {prop: "lowerMethod", name: "lowerMethod", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$109, js_ast.Property, ptrType$24], [$Bool], false)}, {prop: "analyzeProperty", name: "analyzeProperty", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$109, js_ast.Property, classLoweringInfo], [propertyAnalysis], false)}, {prop: "hoistComputedProperties", name: "hoistComputedProperties", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$109, classLoweringInfo], [mapType, mapType], false)}, {prop: "processProperties", name: "processProperties", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$109, classLoweringInfo, visitClassResult], [], false)}, {prop: "lowerStaticBlock", name: "lowerStaticBlock", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$109, logger.Loc, js_ast.ClassStaticBlock], [], false)}, {prop: "rewriteAutoAccessorToGetSet", name: "rewriteAutoAccessorToGetSet", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$109, js_ast.Property, sliceType$9, js_ast.Expr, $Bool, ptrType$24, visitClassResult], [sliceType$9], false)}, {prop: "insertInitializersIntoConstructor", name: "insertInitializersIntoConstructor", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$109, classLoweringInfo, visitClassResult], [], false)}, {prop: "finishAndGenerateCode", name: "finishAndGenerateCode", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$109, visitClassResult], [sliceType$8, js_ast.Expr], false)}]; - ptrType$111.methods = [{prop: "scanStmts", name: "scanStmts", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$109, sliceType$8], [], false)}, {prop: "finalize", name: "finalize", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$109, sliceType$8, $Bool], [sliceType$8], false)}]; - ptrType$109.methods = [{prop: "skipTypeScriptBinding", name: "skipTypeScriptBinding", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [], false)}, {prop: "skipTypeScriptFnArgs", name: "skipTypeScriptFnArgs", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [], false)}, {prop: "skipTypeScriptParenOrFnType", name: "skipTypeScriptParenOrFnType", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [], false)}, {prop: "skipTypeScriptReturnType", name: "skipTypeScriptReturnType", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [], false)}, {prop: "skipTypeScriptType", name: "skipTypeScriptType", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.L], [], false)}, {prop: "skipTypeScriptTypeWithFlags", name: "skipTypeScriptTypeWithFlags", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.L, skipTypeFlags], [], false)}, {prop: "skipTypeScriptObjectType", name: "skipTypeScriptObjectType", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [], false)}, {prop: "skipTypeScriptTypeParameters", name: "skipTypeScriptTypeParameters", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([typeParameterFlags], [skipTypeScriptTypeParametersResult], false)}, {prop: "skipTypeScriptTypeArguments", name: "skipTypeScriptTypeArguments", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([skipTypeScriptTypeArgumentsOpts], [$Bool], false)}, {prop: "trySkipTypeArgumentsInExpressionWithBacktracking", name: "trySkipTypeArgumentsInExpressionWithBacktracking", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [$Bool], false)}, {prop: "trySkipTypeScriptTypeParametersThenOpenParenWithBacktracking", name: "trySkipTypeScriptTypeParametersThenOpenParenWithBacktracking", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [skipTypeScriptTypeParametersResult], false)}, {prop: "trySkipTypeScriptArrowReturnTypeWithBacktracking", name: "trySkipTypeScriptArrowReturnTypeWithBacktracking", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [$Bool], false)}, {prop: "trySkipTypeScriptArrowArgsWithBacktracking", name: "trySkipTypeScriptArrowArgsWithBacktracking", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [$Bool], false)}, {prop: "trySkipTypeScriptConstraintOfInferTypeWithBacktracking", name: "trySkipTypeScriptConstraintOfInferTypeWithBacktracking", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([skipTypeFlags], [$Bool], false)}, {prop: "isTSArrowFnJSX", name: "isTSArrowFnJSX", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [$Bool], false)}, {prop: "tsCanFollowTypeArgumentsInExpression", name: "tsCanFollowTypeArgumentsInExpression", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [$Bool], false)}, {prop: "tsIsBinaryOperator", name: "tsIsBinaryOperator", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [$Bool], false)}, {prop: "tsIsStartOfExpression", name: "tsIsStartOfExpression", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [$Bool], false)}, {prop: "tsIsStartOfLeftHandSideExpression", name: "tsIsStartOfLeftHandSideExpression", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [$Bool], false)}, {prop: "tsLookAheadNextTokenIsOpenParenOrLessThanOrDot", name: "tsLookAheadNextTokenIsOpenParenOrLessThanOrDot", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [$Bool], false)}, {prop: "tsIsIdentifier", name: "tsIsIdentifier", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [$Bool], false)}, {prop: "skipTypeScriptInterfaceStmt", name: "skipTypeScriptInterfaceStmt", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([parseStmtOpts], [], false)}, {prop: "skipTypeScriptTypeStmt", name: "skipTypeScriptTypeStmt", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([parseStmtOpts], [], false)}, {prop: "parseTypeScriptEnumStmt", name: "parseTypeScriptEnumStmt", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, parseStmtOpts], [js_ast.Stmt], false)}, {prop: "parseTypeScriptImportEqualsStmt", name: "parseTypeScriptImportEqualsStmt", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, parseStmtOpts, logger.Loc, $String], [js_ast.Stmt], false)}, {prop: "getOrCreateExportedNamespaceMembers", name: "getOrCreateExportedNamespaceMembers", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([$String, $Bool], [js_ast.TSNamespaceMembers], false)}, {prop: "parseTypeScriptNamespaceStmt", name: "parseTypeScriptNamespaceStmt", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, parseStmtOpts], [js_ast.Stmt], false)}, {prop: "generateClosureForTypeScriptNamespaceOrEnum", name: "generateClosureForTypeScriptNamespaceOrEnum", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([sliceType$8, logger.Loc, $Bool, logger.Loc, ast.Ref, ast.Ref, sliceType$8], [sliceType$8], false)}, {prop: "generateClosureForTypeScriptEnum", name: "generateClosureForTypeScriptEnum", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([sliceType$8, logger.Loc, $Bool, logger.Loc, ast.Ref, ast.Ref, sliceType$6, $Bool], [sliceType$8], false)}, {prop: "wrapInlinedEnum", name: "wrapInlinedEnum", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, $String], [js_ast.Expr], false)}, {prop: "privateSymbolNeedsToBeLowered", name: "privateSymbolNeedsToBeLowered", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$24], [$Bool], false)}, {prop: "lowerPrivateBrandCheck", name: "lowerPrivateBrandCheck", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, logger.Loc, ptrType$24], [js_ast.Expr], false)}, {prop: "lowerPrivateGet", name: "lowerPrivateGet", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, logger.Loc, ptrType$24], [js_ast.Expr], false)}, {prop: "lowerPrivateSet", name: "lowerPrivateSet", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, logger.Loc, ptrType$24, js_ast.Expr], [js_ast.Expr], false)}, {prop: "lowerPrivateSetUnOp", name: "lowerPrivateSetUnOp", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, logger.Loc, ptrType$24, js_ast.OpCode], [js_ast.Expr], false)}, {prop: "lowerPrivateSetBinOp", name: "lowerPrivateSetBinOp", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, logger.Loc, ptrType$24, js_ast.OpCode, js_ast.Expr], [js_ast.Expr], false)}, {prop: "extractPrivateIndex", name: "extractPrivateIndex", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr], [js_ast.Expr, logger.Loc, ptrType$24], false)}, {prop: "extractSuperProperty", name: "extractSuperProperty", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr], [js_ast.Expr], false)}, {prop: "lowerSuperPropertyOrPrivateInAssign", name: "lowerSuperPropertyOrPrivateInAssign", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr], [js_ast.Expr, $Bool], false)}, {prop: "shouldLowerSuperPropertyAccess", name: "shouldLowerSuperPropertyAccess", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr], [$Bool], false)}, {prop: "callSuperPropertyWrapper", name: "callSuperPropertyWrapper", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, js_ast.Expr], [js_ast.Expr], false)}, {prop: "lowerSuperPropertyGet", name: "lowerSuperPropertyGet", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, js_ast.Expr], [js_ast.Expr], false)}, {prop: "lowerSuperPropertySet", name: "lowerSuperPropertySet", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, js_ast.Expr, js_ast.Expr], [js_ast.Expr], false)}, {prop: "lowerSuperPropertySetBinOp", name: "lowerSuperPropertySetBinOp", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, js_ast.Expr, js_ast.OpCode, js_ast.Expr], [js_ast.Expr], false)}, {prop: "maybeLowerSuperPropertyGetInsideCall", name: "maybeLowerSuperPropertyGetInsideCall", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$39], [], false)}, {prop: "computeClassLoweringInfo", name: "computeClassLoweringInfo", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$29], [classLoweringInfo], false)}, {prop: "lowerClass", name: "lowerClass", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Stmt, js_ast.Expr, visitClassResult, $String], [sliceType$8, js_ast.Expr], false)}, {prop: "propertyNameHint", name: "propertyNameHint", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr], [$String], false)}, {prop: "insertStmtsAfterSuperCall", name: "insertStmtsAfterSuperCall", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$112, sliceType$8, ast.Ref], [], false)}, {prop: "markSyntaxFeature", name: "markSyntaxFeature", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([compat.JSFeature, logger.Range], [$Bool], false)}, {prop: "isStrictMode", name: "isStrictMode", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [$Bool], false)}, {prop: "isStrictModeOutputFormat", name: "isStrictModeOutputFormat", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [$Bool], false)}, {prop: "markStrictModeFeature", name: "markStrictModeFeature", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([strictModeFeature, logger.Range, $String], [], false)}, {prop: "whyStrictMode", name: "whyStrictMode", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$1], [$String, sliceType$4], false)}, {prop: "markAsyncFn", name: "markAsyncFn", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Range, $Bool], [$Bool], false)}, {prop: "captureThis", name: "captureThis", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [ast.Ref], false)}, {prop: "captureArguments", name: "captureArguments", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [ast.Ref], false)}, {prop: "lowerFunction", name: "lowerFunction", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$46, ptrType$46, ptrType$104, logger.Loc, ptrType$48, ptrType$46, ptrType$46, $Bool], [], false)}, {prop: "lowerOptionalChain", name: "lowerOptionalChain", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, exprIn, exprOut], [js_ast.Expr, exprOut], false)}, {prop: "lowerParenthesizedOptionalChain", name: "lowerParenthesizedOptionalChain", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, ptrType$39, exprOut], [js_ast.Expr], false)}, {prop: "lowerAssignmentOperator", name: "lowerAssignmentOperator", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, funcType$2], [js_ast.Expr], false)}, {prop: "lowerExponentiationAssignmentOperator", name: "lowerExponentiationAssignmentOperator", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, ptrType$45], [js_ast.Expr], false)}, {prop: "lowerNullishCoalescingAssignmentOperator", name: "lowerNullishCoalescingAssignmentOperator", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, ptrType$45], [js_ast.Expr, $Bool], false)}, {prop: "lowerLogicalAssignmentOperator", name: "lowerLogicalAssignmentOperator", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, ptrType$45, js_ast.OpCode], [js_ast.Expr, $Bool], false)}, {prop: "lowerNullishCoalescing", name: "lowerNullishCoalescing", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, js_ast.Expr, js_ast.Expr], [js_ast.Expr], false)}, {prop: "lowerObjectSpread", name: "lowerObjectSpread", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, ptrType$15], [js_ast.Expr], false)}, {prop: "maybeLowerAwait", name: "maybeLowerAwait", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, ptrType$87], [js_ast.Expr], false)}, {prop: "lowerForAwaitLoop", name: "lowerForAwaitLoop", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, ptrType$82, sliceType$8], [sliceType$8], false)}, {prop: "lowerObjectRestInDecls", name: "lowerObjectRestInDecls", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([sliceType$7], [sliceType$7], false)}, {prop: "lowerObjectRestInForLoopInit", name: "lowerObjectRestInForLoopInit", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Stmt, ptrType$113], [], false)}, {prop: "lowerObjectRestInCatchBinding", name: "lowerObjectRestInCatchBinding", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$49], [], false)}, {prop: "lowerAssign", name: "lowerAssign", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, js_ast.Expr, objRestMode], [js_ast.Expr, $Bool], false)}, {prop: "lowerObjectRestToDecls", name: "lowerObjectRestToDecls", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, js_ast.Expr, sliceType$7], [sliceType$7, $Bool], false)}, {prop: "lowerObjectRestHelper", name: "lowerObjectRestHelper", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, js_ast.Expr, funcType$3, generateTempRefArg, objRestMode], [funcType$1, $Bool], false)}, {prop: "captureKeyForObjectRest", name: "captureKeyForObjectRest", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr], [js_ast.Expr, funcType], false)}, {prop: "lowerTemplateLiteral", name: "lowerTemplateLiteral", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, ptrType$91, funcType, funcType$1], [js_ast.Expr], false)}, {prop: "maybeLowerSetBinOp", name: "maybeLowerSetBinOp", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, js_ast.OpCode, js_ast.Expr], [js_ast.Expr], false)}, {prop: "shouldLowerUsingDeclarations", name: "shouldLowerUsingDeclarations", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([sliceType$8], [$Bool], false)}, {prop: "lowerUsingDeclarationContext", name: "lowerUsingDeclarationContext", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [lowerUsingDeclarationContext], false)}, {prop: "lowerUsingDeclarationInForOf", name: "lowerUsingDeclarationInForOf", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, ptrType$10, ptrType$113], [], false)}, {prop: "maybeLowerUsingDeclarationsInSwitch", name: "maybeLowerUsingDeclarationsInSwitch", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, ptrType$43], [sliceType$8], false)}, {prop: "warnAboutDuplicateProperties", name: "warnAboutDuplicateProperties", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([sliceType$9, duplicatePropertiesIn], [], false)}, {prop: "selectLocalKind", name: "selectLocalKind", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.LocalKind], [js_ast.LocalKind], false)}, {prop: "pushScopeForParsePass", name: "pushScopeForParsePass", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.ScopeKind, logger.Loc], [$Int], false)}, {prop: "popScope", name: "popScope", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [], false)}, {prop: "popAndDiscardScope", name: "popAndDiscardScope", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([$Int], [], false)}, {prop: "popAndFlattenScope", name: "popAndFlattenScope", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([$Int], [], false)}, {prop: "discardScopesUpTo", name: "discardScopesUpTo", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([$Int], [], false)}, {prop: "newSymbol", name: "newSymbol", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ast.SymbolKind, $String], [ast.Ref], false)}, {prop: "mergeSymbols", name: "mergeSymbols", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ast.Ref, ast.Ref], [ast.Ref], false)}, {prop: "canMergeSymbols", name: "canMergeSymbols", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$1, ast.SymbolKind, ast.SymbolKind], [mergeResult], false)}, {prop: "addSymbolAlreadyDeclaredError", name: "addSymbolAlreadyDeclaredError", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([$String, logger.Loc, logger.Loc], [], false)}, {prop: "declareSymbol", name: "declareSymbol", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ast.SymbolKind, logger.Loc, $String], [ast.Ref], false)}, {prop: "hoistSymbols", name: "hoistSymbols", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$1], [], false)}, {prop: "declareBinding", name: "declareBinding", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ast.SymbolKind, js_ast.Binding, parseStmtOpts], [], false)}, {prop: "recordUsage", name: "recordUsage", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ast.Ref], [], false)}, {prop: "ignoreUsage", name: "ignoreUsage", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ast.Ref], [], false)}, {prop: "ignoreUsageOfIdentifierInDotChain", name: "ignoreUsageOfIdentifierInDotChain", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr], [], false)}, {prop: "importFromRuntime", name: "importFromRuntime", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, $String], [js_ast.Expr], false)}, {prop: "callRuntime", name: "callRuntime", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, $String, sliceType$6], [js_ast.Expr], false)}, {prop: "importJSXSymbol", name: "importJSXSymbol", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, JSXImport], [js_ast.Expr], false)}, {prop: "valueToSubstituteForRequire", name: "valueToSubstituteForRequire", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc], [js_ast.Expr], false)}, {prop: "makePromiseRef", name: "makePromiseRef", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [ast.Ref], false)}, {prop: "makeRegExpRef", name: "makeRegExpRef", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [ast.Ref], false)}, {prop: "makeBigIntRef", name: "makeBigIntRef", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [ast.Ref], false)}, {prop: "storeNameInRef", name: "storeNameInRef", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_lexer.MaybeSubstring], [ast.Ref], false)}, {prop: "loadNameFromRef", name: "loadNameFromRef", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ast.Ref], [$String], false)}, {prop: "logExprErrors", name: "logExprErrors", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$69], [], false)}, {prop: "logDeferredArrowArgErrors", name: "logDeferredArrowArgErrors", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$69], [], false)}, {prop: "logNullishCoalescingErrorPrecedenceError", name: "logNullishCoalescingErrorPrecedenceError", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([$String], [], false)}, {prop: "logAssignToDefine", name: "logAssignToDefine", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Range, $String, js_ast.Expr], [], false)}, {prop: "logArrowArgErrors", name: "logArrowArgErrors", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType], [], false)}, {prop: "keyNameForError", name: "keyNameForError", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr], [$String], false)}, {prop: "checkForLegacyOctalLiteral", name: "checkForLegacyOctalLiteral", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.E], [], false)}, {prop: "notesForAssertTypeJSON", name: "notesForAssertTypeJSON", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$114, $String], [sliceType$4], false)}, {prop: "parseStringLiteral", name: "parseStringLiteral", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [js_ast.Expr], false)}, {prop: "parseBigIntOrStringIfUnsupported", name: "parseBigIntOrStringIfUnsupported", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [js_ast.Expr], false)}, {prop: "parseProperty", name: "parseProperty", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, js_ast.PropertyKind, propertyOpts, ptrType$69], [js_ast.Property, $Bool], false)}, {prop: "parsePropertyBinding", name: "parsePropertyBinding", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [js_ast.PropertyBinding], false)}, {prop: "isMangledProp", name: "isMangledProp", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([$String], [$Bool], false)}, {prop: "symbolForMangledProp", name: "symbolForMangledProp", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([$String], [ast.Ref], false)}, {prop: "dotOrMangledPropParse", name: "dotOrMangledPropParse", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, js_lexer.MaybeSubstring, logger.Loc, js_ast.OptionalChain, wasOriginallyDotOrIndex], [js_ast.E], false)}, {prop: "dotOrMangledPropVisit", name: "dotOrMangledPropVisit", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, $String, logger.Loc], [js_ast.E], false)}, {prop: "parseArrowBody", name: "parseArrowBody", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([sliceType$10, fnOrArrowDataParse], [ptrType$54], false)}, {prop: "checkForArrowAfterTheCurrentToken", name: "checkForArrowAfterTheCurrentToken", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [$Bool], false)}, {prop: "parseAsyncPrefixExpr", name: "parseAsyncPrefixExpr", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Range, js_ast.L, exprFlag], [js_ast.Expr], false)}, {prop: "parseFnExpr", name: "parseFnExpr", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, $Bool, logger.Range], [js_ast.Expr], false)}, {prop: "parseParenExpr", name: "parseParenExpr", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, js_ast.L, parenExprOpts], [js_ast.Expr], false)}, {prop: "convertExprToBindingAndInitializer", name: "convertExprToBindingAndInitializer", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, invalidLog, $Bool], [js_ast.Binding, js_ast.Expr, invalidLog], false)}, {prop: "convertExprToBinding", name: "convertExprToBinding", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, invalidLog], [js_ast.Binding, invalidLog], false)}, {prop: "saveExprCommentsHere", name: "saveExprCommentsHere", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [logger.Loc], false)}, {prop: "parsePrefix", name: "parsePrefix", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.L, ptrType$69, exprFlag], [js_ast.Expr], false)}, {prop: "parseYieldExpr", name: "parseYieldExpr", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc], [js_ast.Expr], false)}, {prop: "willNeedBindingPattern", name: "willNeedBindingPattern", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [$Bool], false)}, {prop: "parseImportExpr", name: "parseImportExpr", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, js_ast.L], [js_ast.Expr], false)}, {prop: "parseExprOrBindings", name: "parseExprOrBindings", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.L, ptrType$69], [js_ast.Expr], false)}, {prop: "parseExpr", name: "parseExpr", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.L], [js_ast.Expr], false)}, {prop: "parseExprWithFlags", name: "parseExprWithFlags", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.L, exprFlag], [js_ast.Expr], false)}, {prop: "parseExprCommon", name: "parseExprCommon", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.L, ptrType$69, exprFlag], [js_ast.Expr], false)}, {prop: "parseSuffix", name: "parseSuffix", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, js_ast.L, ptrType$69, exprFlag], [js_ast.Expr], false)}, {prop: "parseExprOrLetOrUsingStmt", name: "parseExprOrLetOrUsingStmt", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([parseStmtOpts], [js_ast.Expr, js_ast.Stmt, sliceType$7], false)}, {prop: "parseCallArgs", name: "parseCallArgs", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [sliceType$6, logger.Loc, $Bool], false)}, {prop: "parseJSXNamespacedName", name: "parseJSXNamespacedName", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [logger.Range, js_lexer.MaybeSubstring], false)}, {prop: "parseJSXTag", name: "parseJSXTag", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [logger.Range, $String, js_ast.Expr], false)}, {prop: "parseJSXElement", name: "parseJSXElement", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc], [js_ast.Expr], false)}, {prop: "parseTemplateParts", name: "parseTemplateParts", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([$Bool], [sliceType$26, logger.Loc], false)}, {prop: "parseAndDeclareDecls", name: "parseAndDeclareDecls", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ast.SymbolKind, parseStmtOpts], [sliceType$7], false)}, {prop: "requireInitializers", name: "requireInitializers", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.LocalKind, sliceType$7], [], false)}, {prop: "forbidInitializers", name: "forbidInitializers", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([sliceType$7, $String, $Bool], [], false)}, {prop: "parseClauseAlias", name: "parseClauseAlias", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([$String], [js_lexer.MaybeSubstring], false)}, {prop: "parseImportClause", name: "parseImportClause", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [sliceType$19, $Bool], false)}, {prop: "parseExportClause", name: "parseExportClause", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [sliceType$19, $Bool], false)}, {prop: "parseBinding", name: "parseBinding", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([parseBindingOpts], [js_ast.Binding], false)}, {prop: "parseFn", name: "parseFn", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$12, logger.Range, decoratorContextFlags, fnOrArrowDataParse], [js_ast.Fn, $Bool], false)}, {prop: "validateFunctionName", name: "validateFunctionName", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Fn, fnKind], [], false)}, {prop: "validateDeclaredSymbolName", name: "validateDeclaredSymbolName", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, $String], [], false)}, {prop: "parseClassStmt", name: "parseClassStmt", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, parseStmtOpts], [js_ast.Stmt], false)}, {prop: "parseClassExpr", name: "parseClassExpr", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([sliceType$11], [js_ast.Expr], false)}, {prop: "parseClass", name: "parseClass", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Range, ptrType$12, parseClassOpts], [js_ast.Class], false)}, {prop: "parseLabelName", name: "parseLabelName", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [ptrType$12], false)}, {prop: "parsePath", name: "parsePath", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [logger.Range, $String, ptrType$72, ast.ImportRecordFlags], false)}, {prop: "maybeWarnAboutAssertKeyword", name: "maybeWarnAboutAssertKeyword", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc], [], false)}, {prop: "parseFnStmt", name: "parseFnStmt", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, parseStmtOpts, $Bool, logger.Range], [js_ast.Stmt], false)}, {prop: "parseDecorators", name: "parseDecorators", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$1, logger.Range, decoratorContextFlags], [sliceType$11], false)}, {prop: "parseDecorator", name: "parseDecorator", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [js_ast.Expr], false)}, {prop: "parseStmt", name: "parseStmt", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([parseStmtOpts], [js_ast.Stmt], false)}, {prop: "addImportRecord", name: "addImportRecord", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ast.ImportKind, logger.Range, $String, ptrType$72, ast.ImportRecordFlags], [$Uint32], false)}, {prop: "parseFnBody", name: "parseFnBody", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([fnOrArrowDataParse], [js_ast.FnBody], false)}, {prop: "forbidLexicalDecl", name: "forbidLexicalDecl", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc], [], false)}, {prop: "parseStmtsUpTo", name: "parseStmtsUpTo", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_lexer.T, parseStmtOpts], [sliceType$8], false)}, {prop: "generateTempRef", name: "generateTempRef", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([generateTempRefArg, $String], [ast.Ref], false)}, {prop: "generateTopLevelTempRef", name: "generateTopLevelTempRef", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [ast.Ref], false)}, {prop: "pushScopeForVisitPass", name: "pushScopeForVisitPass", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.ScopeKind, logger.Loc], [], false)}, {prop: "findSymbol", name: "findSymbol", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, $String], [findSymbolResult], false)}, {prop: "findLabelSymbol", name: "findLabelSymbol", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, $String], [ast.Ref, $Bool, $Bool], false)}, {prop: "visitStmtsAndPrependTempRefs", name: "visitStmtsAndPrependTempRefs", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([sliceType$8, prependTempRefsOpts], [sliceType$8], false)}, {prop: "visitStmts", name: "visitStmts", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([sliceType$8, stmtsKind], [sliceType$8], false)}, {prop: "mangleStmts", name: "mangleStmts", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([sliceType$8, stmtsKind], [sliceType$8], false)}, {prop: "substituteSingleUseSymbolInStmt", name: "substituteSingleUseSymbolInStmt", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Stmt, ast.Ref, js_ast.Expr], [$Bool], false)}, {prop: "substituteSingleUseSymbolInExpr", name: "substituteSingleUseSymbolInExpr", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, ast.Ref, js_ast.Expr, $Bool], [js_ast.Expr, substituteStatus], false)}, {prop: "visitLoopBody", name: "visitLoopBody", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Stmt], [js_ast.Stmt], false)}, {prop: "visitSingleStmt", name: "visitSingleStmt", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Stmt, stmtsKind], [js_ast.Stmt], false)}, {prop: "visitForLoopInit", name: "visitForLoopInit", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Stmt, $Bool], [js_ast.Stmt], false)}, {prop: "recordDeclaredSymbol", name: "recordDeclaredSymbol", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ast.Ref], [], false)}, {prop: "visitBinding", name: "visitBinding", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Binding, bindingOpts], [], false)}, {prop: "mangleIf", name: "mangleIf", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([sliceType$8, logger.Loc, ptrType$42], [sliceType$8], false)}, {prop: "keepExprSymbolName", name: "keepExprSymbolName", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, $String], [js_ast.Expr], false)}, {prop: "keepClassOrFnSymbolName", name: "keepClassOrFnSymbolName", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, js_ast.Expr, $String], [js_ast.Stmt], false)}, {prop: "visitAndAppendStmt", name: "visitAndAppendStmt", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([sliceType$8, js_ast.Stmt], [sliceType$8], false)}, {prop: "maybeRelocateVarsToTopLevel", name: "maybeRelocateVarsToTopLevel", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([sliceType$7, relocateVarsMode], [js_ast.Stmt, $Bool], false)}, {prop: "markExprAsParenthesized", name: "markExprAsParenthesized", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, logger.Loc, $Bool], [], false)}, {prop: "maybeTransposeIfExprChain", name: "maybeTransposeIfExprChain", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, funcType$1], [js_ast.Expr], false)}, {prop: "iifeCanBeRemovedIfUnused", name: "iifeCanBeRemovedIfUnused", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([sliceType$10, js_ast.FnBody], [$Bool], false)}, {prop: "captureValueWithPossibleSideEffects", name: "captureValueWithPossibleSideEffects", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, $Int, js_ast.Expr, captureValueMode], [funcType, funcType$1], false)}, {prop: "visitDecorators", name: "visitDecorators", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([sliceType$11, ptrType$1], [sliceType$11], false)}, {prop: "visitClass", name: "visitClass", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, ptrType$29, ast.Ref, $String], [visitClassResult], false)}, {prop: "visitArgs", name: "visitArgs", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([sliceType$10, visitArgsOpts], [], false)}, {prop: "isDotOrIndexDefineMatch", name: "isDotOrIndexDefineMatch", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, sliceType], [$Bool], false)}, {prop: "instantiateDefineExpr", name: "instantiateDefineExpr", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, config.DefineExpr, identifierOpts], [js_ast.Expr], false)}, {prop: "instantiateInjectDotName", name: "instantiateInjectDotName", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, injectedDotName, js_ast.AssignTarget], [js_ast.Expr], false)}, {prop: "checkForUnrepresentableIdentifier", name: "checkForUnrepresentableIdentifier", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, $String], [], false)}, {prop: "warnAboutTypeofAndString", name: "warnAboutTypeofAndString", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, js_ast.Expr, typeofStringOrder], [], false)}, {prop: "warnAboutEqualityCheck", name: "warnAboutEqualityCheck", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([$String, js_ast.Expr, logger.Loc], [$Bool], false)}, {prop: "maybeRewritePropertyAccess", name: "maybeRewritePropertyAccess", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, js_ast.AssignTarget, $Bool, js_ast.Expr, $String, logger.Loc, $Bool, $Bool, $Bool], [js_ast.Expr, $Bool], false)}, {prop: "visitExpr", name: "visitExpr", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr], [js_ast.Expr], false)}, {prop: "valueForThis", name: "valueForThis", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, $Bool, js_ast.AssignTarget, $Bool, $Bool], [js_ast.Expr, $Bool], false)}, {prop: "valueForImportMeta", name: "valueForImportMeta", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc], [js_ast.Expr, $Bool], false)}, {prop: "reportPrivateNameUsage", name: "reportPrivateNameUsage", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([$String], [], false)}, {prop: "isValidAssignmentTarget", name: "isValidAssignmentTarget", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr], [$Bool], false)}, {prop: "isUnsupportedRegularExpression", name: "isUnsupportedRegularExpression", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, $String], [$String, $String, $Bool], false)}, {prop: "visitExprInOut", name: "visitExprInOut", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, exprIn], [js_ast.Expr, exprOut], false)}, {prop: "handleGlobPattern", name: "handleGlobPattern", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, ast.ImportKind, $String, ptrType$72], [js_ast.Expr], false)}, {prop: "globPatternFromExpr", name: "globPatternFromExpr", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr], [sliceType$32, logger.Range], false)}, {prop: "convertSymbolUseToCall", name: "convertSymbolUseToCall", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ast.Ref, $Bool], [], false)}, {prop: "warnAboutImportNamespaceCall", name: "warnAboutImportNamespaceCall", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, importNamespaceCallKind], [], false)}, {prop: "maybeMarkKnownGlobalConstructorAsPure", name: "maybeMarkKnownGlobalConstructorAsPure", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$71], [], false)}, {prop: "handleIdentifier", name: "handleIdentifier", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, ptrType$32, identifierOpts], [js_ast.Expr], false)}, {prop: "visitFn", name: "visitFn", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$115, logger.Loc, visitFnOpts], [], false)}, {prop: "recordExport", name: "recordExport", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, $String, ast.Ref], [], false)}, {prop: "checkForUnusedTSImportEquals", name: "checkForUnusedTSImportEquals", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$10, ptrType$116], [$Bool], false)}, {prop: "scanForUnusedTSImportEquals", name: "scanForUnusedTSImportEquals", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([sliceType$8], [importsExportsScanResult], false)}, {prop: "scanForImportsAndExports", name: "scanForImportsAndExports", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([sliceType$8], [importsExportsScanResult], false)}, {prop: "appendPart", name: "appendPart", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([sliceType$44, sliceType$8], [sliceType$44], false)}, {prop: "whyESModule", name: "whyESModule", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [whyESM, sliceType$4], false)}, {prop: "prepareForVisitPass", name: "prepareForVisitPass", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [], false)}, {prop: "declareCommonJSSymbol", name: "declareCommonJSSymbol", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ast.SymbolKind, $String], [ast.Ref], false)}, {prop: "computeCharacterFrequency", name: "computeCharacterFrequency", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [ptrType$106], false)}, {prop: "generateImportStmt", name: "generateImportStmt", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([$String, logger.Range, sliceType, sliceType$44, mapType$2, ptrType$107, ptrType$107], [sliceType$44, $Uint32], false)}, {prop: "toAST", name: "toAST", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([sliceType$44, sliceType$44, sliceType$44, $String, sliceType], [js_ast.AST], false)}]; - ptrType$117.methods = [{prop: "Equal", name: "Equal", pkg: "", typ: $funcType([ptrType$117], [$Bool], false)}]; - ptrType$118.methods = [{prop: "reset", name: "reset", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [], false)}, {prop: "check", name: "check", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$109, js_ast.Expr], [], false)}]; + ptrType$119.methods = [{prop: "parseMaybeTrailingComma", name: "parseMaybeTrailingComma", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_lexer.T], [$Bool], false)}, {prop: "parseExpr", name: "parseExpr", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [js_ast.Expr], false)}]; + ptrType$121.methods = [{prop: "enableNameCapture", name: "enableNameCapture", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$120, visitClassResult], [], false)}, {prop: "lowerField", name: "lowerField", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$120, js_ast.Property, ptrType$25, $Bool, $Bool, $Int], [js_ast.Property, ast.Ref, $Bool], false)}, {prop: "lowerPrivateMethod", name: "lowerPrivateMethod", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$120, js_ast.Property, ptrType$25], [], false)}, {prop: "lowerMethod", name: "lowerMethod", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$120, js_ast.Property, ptrType$25], [$Bool], false)}, {prop: "analyzeProperty", name: "analyzeProperty", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$120, js_ast.Property, classLoweringInfo], [propertyAnalysis], false)}, {prop: "hoistComputedProperties", name: "hoistComputedProperties", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$120, classLoweringInfo], [mapType, mapType], false)}, {prop: "processProperties", name: "processProperties", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$120, classLoweringInfo, visitClassResult], [], false)}, {prop: "lowerStaticBlock", name: "lowerStaticBlock", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$120, logger.Loc, js_ast.ClassStaticBlock], [], false)}, {prop: "rewriteAutoAccessorToGetSet", name: "rewriteAutoAccessorToGetSet", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$120, js_ast.Property, sliceType$9, js_ast.Expr, $Bool, ptrType$25, visitClassResult], [sliceType$9], false)}, {prop: "insertInitializersIntoConstructor", name: "insertInitializersIntoConstructor", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$120, classLoweringInfo, visitClassResult], [], false)}, {prop: "finishAndGenerateCode", name: "finishAndGenerateCode", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$120, visitClassResult], [sliceType$8, js_ast.Expr], false)}]; + ptrType$122.methods = [{prop: "scanStmts", name: "scanStmts", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$120, sliceType$8], [], false)}, {prop: "finalize", name: "finalize", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$120, sliceType$8, $Bool], [sliceType$8], false)}]; + ptrType$120.methods = [{prop: "skipTypeScriptBinding", name: "skipTypeScriptBinding", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [], false)}, {prop: "skipTypeScriptFnArgs", name: "skipTypeScriptFnArgs", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [], false)}, {prop: "skipTypeScriptParenOrFnType", name: "skipTypeScriptParenOrFnType", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [], false)}, {prop: "skipTypeScriptReturnType", name: "skipTypeScriptReturnType", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [], false)}, {prop: "skipTypeScriptType", name: "skipTypeScriptType", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.L], [], false)}, {prop: "skipTypeScriptTypeWithFlags", name: "skipTypeScriptTypeWithFlags", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.L, skipTypeFlags], [], false)}, {prop: "skipTypeScriptObjectType", name: "skipTypeScriptObjectType", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [], false)}, {prop: "skipTypeScriptTypeParameters", name: "skipTypeScriptTypeParameters", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([typeParameterFlags], [skipTypeScriptTypeParametersResult], false)}, {prop: "skipTypeScriptTypeArguments", name: "skipTypeScriptTypeArguments", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([skipTypeScriptTypeArgumentsOpts], [$Bool], false)}, {prop: "trySkipTypeArgumentsInExpressionWithBacktracking", name: "trySkipTypeArgumentsInExpressionWithBacktracking", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [$Bool], false)}, {prop: "trySkipTypeScriptTypeParametersThenOpenParenWithBacktracking", name: "trySkipTypeScriptTypeParametersThenOpenParenWithBacktracking", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [skipTypeScriptTypeParametersResult], false)}, {prop: "trySkipTypeScriptArrowReturnTypeWithBacktracking", name: "trySkipTypeScriptArrowReturnTypeWithBacktracking", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [$Bool], false)}, {prop: "trySkipTypeScriptArrowArgsWithBacktracking", name: "trySkipTypeScriptArrowArgsWithBacktracking", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [$Bool], false)}, {prop: "trySkipTypeScriptConstraintOfInferTypeWithBacktracking", name: "trySkipTypeScriptConstraintOfInferTypeWithBacktracking", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([skipTypeFlags], [$Bool], false)}, {prop: "isTSArrowFnJSX", name: "isTSArrowFnJSX", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [$Bool], false)}, {prop: "tsCanFollowTypeArgumentsInExpression", name: "tsCanFollowTypeArgumentsInExpression", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [$Bool], false)}, {prop: "tsIsBinaryOperator", name: "tsIsBinaryOperator", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [$Bool], false)}, {prop: "tsIsStartOfExpression", name: "tsIsStartOfExpression", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [$Bool], false)}, {prop: "tsIsStartOfLeftHandSideExpression", name: "tsIsStartOfLeftHandSideExpression", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [$Bool], false)}, {prop: "tsLookAheadNextTokenIsOpenParenOrLessThanOrDot", name: "tsLookAheadNextTokenIsOpenParenOrLessThanOrDot", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [$Bool], false)}, {prop: "tsIsIdentifier", name: "tsIsIdentifier", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [$Bool], false)}, {prop: "skipTypeScriptInterfaceStmt", name: "skipTypeScriptInterfaceStmt", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([parseStmtOpts], [], false)}, {prop: "skipTypeScriptTypeStmt", name: "skipTypeScriptTypeStmt", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([parseStmtOpts], [], false)}, {prop: "parseTypeScriptEnumStmt", name: "parseTypeScriptEnumStmt", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, parseStmtOpts], [js_ast.Stmt], false)}, {prop: "parseTypeScriptImportEqualsStmt", name: "parseTypeScriptImportEqualsStmt", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, parseStmtOpts, logger.Loc, $String], [js_ast.Stmt], false)}, {prop: "getOrCreateExportedNamespaceMembers", name: "getOrCreateExportedNamespaceMembers", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([$String, $Bool], [js_ast.TSNamespaceMembers], false)}, {prop: "parseTypeScriptNamespaceStmt", name: "parseTypeScriptNamespaceStmt", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, parseStmtOpts], [js_ast.Stmt], false)}, {prop: "generateClosureForTypeScriptNamespaceOrEnum", name: "generateClosureForTypeScriptNamespaceOrEnum", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([sliceType$8, logger.Loc, $Bool, logger.Loc, ast.Ref, ast.Ref, sliceType$8], [sliceType$8], false)}, {prop: "generateClosureForTypeScriptEnum", name: "generateClosureForTypeScriptEnum", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([sliceType$8, logger.Loc, $Bool, logger.Loc, ast.Ref, ast.Ref, sliceType$6, $Bool], [sliceType$8], false)}, {prop: "wrapInlinedEnum", name: "wrapInlinedEnum", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, $String], [js_ast.Expr], false)}, {prop: "privateSymbolNeedsToBeLowered", name: "privateSymbolNeedsToBeLowered", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$25], [$Bool], false)}, {prop: "lowerPrivateBrandCheck", name: "lowerPrivateBrandCheck", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, logger.Loc, ptrType$25], [js_ast.Expr], false)}, {prop: "lowerPrivateGet", name: "lowerPrivateGet", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, logger.Loc, ptrType$25], [js_ast.Expr], false)}, {prop: "lowerPrivateSet", name: "lowerPrivateSet", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, logger.Loc, ptrType$25, js_ast.Expr], [js_ast.Expr], false)}, {prop: "lowerPrivateSetUnOp", name: "lowerPrivateSetUnOp", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, logger.Loc, ptrType$25, js_ast.OpCode], [js_ast.Expr], false)}, {prop: "lowerPrivateSetBinOp", name: "lowerPrivateSetBinOp", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, logger.Loc, ptrType$25, js_ast.OpCode, js_ast.Expr], [js_ast.Expr], false)}, {prop: "extractPrivateIndex", name: "extractPrivateIndex", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr], [js_ast.Expr, logger.Loc, ptrType$25], false)}, {prop: "extractSuperProperty", name: "extractSuperProperty", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr], [js_ast.Expr], false)}, {prop: "lowerSuperPropertyOrPrivateInAssign", name: "lowerSuperPropertyOrPrivateInAssign", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr], [js_ast.Expr, $Bool], false)}, {prop: "shouldLowerSuperPropertyAccess", name: "shouldLowerSuperPropertyAccess", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr], [$Bool], false)}, {prop: "callSuperPropertyWrapper", name: "callSuperPropertyWrapper", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, js_ast.Expr], [js_ast.Expr], false)}, {prop: "lowerSuperPropertyGet", name: "lowerSuperPropertyGet", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, js_ast.Expr], [js_ast.Expr], false)}, {prop: "lowerSuperPropertySet", name: "lowerSuperPropertySet", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, js_ast.Expr, js_ast.Expr], [js_ast.Expr], false)}, {prop: "lowerSuperPropertySetBinOp", name: "lowerSuperPropertySetBinOp", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, js_ast.Expr, js_ast.OpCode, js_ast.Expr], [js_ast.Expr], false)}, {prop: "maybeLowerSuperPropertyGetInsideCall", name: "maybeLowerSuperPropertyGetInsideCall", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$41], [], false)}, {prop: "computeClassLoweringInfo", name: "computeClassLoweringInfo", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$30], [classLoweringInfo], false)}, {prop: "lowerClass", name: "lowerClass", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Stmt, js_ast.Expr, visitClassResult, $String], [sliceType$8, js_ast.Expr], false)}, {prop: "propertyNameHint", name: "propertyNameHint", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr], [$String], false)}, {prop: "insertStmtsAfterSuperCall", name: "insertStmtsAfterSuperCall", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$123, sliceType$8, ast.Ref], [], false)}, {prop: "markSyntaxFeature", name: "markSyntaxFeature", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([compat.JSFeature, logger.Range], [$Bool], false)}, {prop: "isStrictMode", name: "isStrictMode", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [$Bool], false)}, {prop: "isStrictModeOutputFormat", name: "isStrictModeOutputFormat", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [$Bool], false)}, {prop: "markStrictModeFeature", name: "markStrictModeFeature", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([strictModeFeature, logger.Range, $String], [], false)}, {prop: "whyStrictMode", name: "whyStrictMode", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$1], [$String, sliceType$4], false)}, {prop: "markAsyncFn", name: "markAsyncFn", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Range, $Bool], [$Bool], false)}, {prop: "captureThis", name: "captureThis", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [ast.Ref], false)}, {prop: "captureArguments", name: "captureArguments", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [ast.Ref], false)}, {prop: "lowerFunction", name: "lowerFunction", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$48, ptrType$48, ptrType$113, logger.Loc, ptrType$49, ptrType$48, ptrType$48, $Bool], [], false)}, {prop: "lowerOptionalChain", name: "lowerOptionalChain", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, exprIn, exprOut], [js_ast.Expr, exprOut], false)}, {prop: "lowerParenthesizedOptionalChain", name: "lowerParenthesizedOptionalChain", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, ptrType$41, exprOut], [js_ast.Expr], false)}, {prop: "lowerAssignmentOperator", name: "lowerAssignmentOperator", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, funcType$2], [js_ast.Expr], false)}, {prop: "lowerExponentiationAssignmentOperator", name: "lowerExponentiationAssignmentOperator", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, ptrType$47], [js_ast.Expr], false)}, {prop: "lowerNullishCoalescingAssignmentOperator", name: "lowerNullishCoalescingAssignmentOperator", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, ptrType$47], [js_ast.Expr, $Bool], false)}, {prop: "lowerLogicalAssignmentOperator", name: "lowerLogicalAssignmentOperator", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, ptrType$47, js_ast.OpCode], [js_ast.Expr, $Bool], false)}, {prop: "lowerNullishCoalescing", name: "lowerNullishCoalescing", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, js_ast.Expr, js_ast.Expr], [js_ast.Expr], false)}, {prop: "lowerObjectSpread", name: "lowerObjectSpread", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, ptrType$15], [js_ast.Expr], false)}, {prop: "maybeLowerAwait", name: "maybeLowerAwait", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, ptrType$92], [js_ast.Expr], false)}, {prop: "lowerForAwaitLoop", name: "lowerForAwaitLoop", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, ptrType$86, sliceType$8], [sliceType$8], false)}, {prop: "lowerObjectRestInDecls", name: "lowerObjectRestInDecls", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([sliceType$7], [sliceType$7], false)}, {prop: "lowerObjectRestInForLoopInit", name: "lowerObjectRestInForLoopInit", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Stmt, ptrType$55], [], false)}, {prop: "lowerObjectRestInCatchBinding", name: "lowerObjectRestInCatchBinding", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$51], [], false)}, {prop: "lowerAssign", name: "lowerAssign", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, js_ast.Expr, objRestMode], [js_ast.Expr, $Bool], false)}, {prop: "lowerObjectRestToDecls", name: "lowerObjectRestToDecls", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, js_ast.Expr, sliceType$7], [sliceType$7, $Bool], false)}, {prop: "lowerObjectRestHelper", name: "lowerObjectRestHelper", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, js_ast.Expr, funcType$3, generateTempRefArg, objRestMode], [funcType$1, $Bool], false)}, {prop: "captureKeyForObjectRest", name: "captureKeyForObjectRest", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr], [js_ast.Expr, funcType], false)}, {prop: "lowerTemplateLiteral", name: "lowerTemplateLiteral", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, ptrType$96, funcType, funcType$1], [js_ast.Expr], false)}, {prop: "maybeLowerSetBinOp", name: "maybeLowerSetBinOp", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, js_ast.OpCode, js_ast.Expr], [js_ast.Expr], false)}, {prop: "shouldLowerUsingDeclarations", name: "shouldLowerUsingDeclarations", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([sliceType$8], [$Bool], false)}, {prop: "lowerUsingDeclarationContext", name: "lowerUsingDeclarationContext", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [lowerUsingDeclarationContext], false)}, {prop: "lowerUsingDeclarationInForOf", name: "lowerUsingDeclarationInForOf", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, ptrType$10, ptrType$55], [], false)}, {prop: "maybeLowerUsingDeclarationsInSwitch", name: "maybeLowerUsingDeclarationsInSwitch", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, ptrType$45], [sliceType$8], false)}, {prop: "warnAboutDuplicateProperties", name: "warnAboutDuplicateProperties", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([sliceType$9, duplicatePropertiesIn], [], false)}, {prop: "selectLocalKind", name: "selectLocalKind", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.LocalKind], [js_ast.LocalKind], false)}, {prop: "pushScopeForParsePass", name: "pushScopeForParsePass", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.ScopeKind, logger.Loc], [$Int], false)}, {prop: "popScope", name: "popScope", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [], false)}, {prop: "popAndDiscardScope", name: "popAndDiscardScope", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([$Int], [], false)}, {prop: "popAndFlattenScope", name: "popAndFlattenScope", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([$Int], [], false)}, {prop: "discardScopesUpTo", name: "discardScopesUpTo", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([$Int], [], false)}, {prop: "newSymbol", name: "newSymbol", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ast.SymbolKind, $String], [ast.Ref], false)}, {prop: "mergeSymbols", name: "mergeSymbols", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ast.Ref, ast.Ref], [ast.Ref], false)}, {prop: "canMergeSymbols", name: "canMergeSymbols", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$1, ast.SymbolKind, ast.SymbolKind], [mergeResult], false)}, {prop: "addSymbolAlreadyDeclaredError", name: "addSymbolAlreadyDeclaredError", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([$String, logger.Loc, logger.Loc], [], false)}, {prop: "declareSymbol", name: "declareSymbol", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ast.SymbolKind, logger.Loc, $String], [ast.Ref], false)}, {prop: "hoistSymbols", name: "hoistSymbols", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$1], [], false)}, {prop: "declareBinding", name: "declareBinding", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ast.SymbolKind, js_ast.Binding, parseStmtOpts], [], false)}, {prop: "recordUsage", name: "recordUsage", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ast.Ref], [], false)}, {prop: "ignoreUsage", name: "ignoreUsage", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ast.Ref], [], false)}, {prop: "ignoreUsageOfIdentifierInDotChain", name: "ignoreUsageOfIdentifierInDotChain", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr], [], false)}, {prop: "importFromRuntime", name: "importFromRuntime", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, $String], [js_ast.Expr], false)}, {prop: "callRuntime", name: "callRuntime", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, $String, sliceType$6], [js_ast.Expr], false)}, {prop: "importJSXSymbol", name: "importJSXSymbol", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, JSXImport], [js_ast.Expr], false)}, {prop: "valueToSubstituteForRequire", name: "valueToSubstituteForRequire", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc], [js_ast.Expr], false)}, {prop: "makePromiseRef", name: "makePromiseRef", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [ast.Ref], false)}, {prop: "makeRegExpRef", name: "makeRegExpRef", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [ast.Ref], false)}, {prop: "makeBigIntRef", name: "makeBigIntRef", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [ast.Ref], false)}, {prop: "storeNameInRef", name: "storeNameInRef", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_lexer.MaybeSubstring], [ast.Ref], false)}, {prop: "loadNameFromRef", name: "loadNameFromRef", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ast.Ref], [$String], false)}, {prop: "logExprErrors", name: "logExprErrors", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$73], [], false)}, {prop: "logDeferredArrowArgErrors", name: "logDeferredArrowArgErrors", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$73], [], false)}, {prop: "logNullishCoalescingErrorPrecedenceError", name: "logNullishCoalescingErrorPrecedenceError", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([$String], [], false)}, {prop: "logAssignToDefine", name: "logAssignToDefine", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Range, $String, js_ast.Expr], [], false)}, {prop: "logArrowArgErrors", name: "logArrowArgErrors", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType], [], false)}, {prop: "keyNameForError", name: "keyNameForError", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr], [$String], false)}, {prop: "checkForLegacyOctalLiteral", name: "checkForLegacyOctalLiteral", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.E], [], false)}, {prop: "notesForAssertTypeJSON", name: "notesForAssertTypeJSON", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$106, $String], [sliceType$4], false)}, {prop: "parseStringLiteral", name: "parseStringLiteral", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [js_ast.Expr], false)}, {prop: "parseBigIntOrStringIfUnsupported", name: "parseBigIntOrStringIfUnsupported", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [js_ast.Expr], false)}, {prop: "parseProperty", name: "parseProperty", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, js_ast.PropertyKind, propertyOpts, ptrType$73], [js_ast.Property, $Bool], false)}, {prop: "parsePropertyBinding", name: "parsePropertyBinding", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [js_ast.PropertyBinding], false)}, {prop: "isMangledProp", name: "isMangledProp", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([$String], [$Bool], false)}, {prop: "symbolForMangledProp", name: "symbolForMangledProp", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([$String], [ast.Ref], false)}, {prop: "dotOrMangledPropParse", name: "dotOrMangledPropParse", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, js_lexer.MaybeSubstring, logger.Loc, js_ast.OptionalChain, wasOriginallyDotOrIndex], [js_ast.E], false)}, {prop: "dotOrMangledPropVisit", name: "dotOrMangledPropVisit", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, $String, logger.Loc], [js_ast.E], false)}, {prop: "parseArrowBody", name: "parseArrowBody", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([sliceType$10, fnOrArrowDataParse], [ptrType$57], false)}, {prop: "checkForArrowAfterTheCurrentToken", name: "checkForArrowAfterTheCurrentToken", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [$Bool], false)}, {prop: "parseAsyncPrefixExpr", name: "parseAsyncPrefixExpr", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Range, js_ast.L, exprFlag], [js_ast.Expr], false)}, {prop: "parseFnExpr", name: "parseFnExpr", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, $Bool, logger.Range], [js_ast.Expr], false)}, {prop: "parseParenExpr", name: "parseParenExpr", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, js_ast.L, parenExprOpts], [js_ast.Expr], false)}, {prop: "convertExprToBindingAndInitializer", name: "convertExprToBindingAndInitializer", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, invalidLog, $Bool], [js_ast.Binding, js_ast.Expr, invalidLog], false)}, {prop: "convertExprToBinding", name: "convertExprToBinding", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, invalidLog], [js_ast.Binding, invalidLog], false)}, {prop: "saveExprCommentsHere", name: "saveExprCommentsHere", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [logger.Loc], false)}, {prop: "parsePrefix", name: "parsePrefix", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.L, ptrType$73, exprFlag], [js_ast.Expr], false)}, {prop: "parseYieldExpr", name: "parseYieldExpr", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc], [js_ast.Expr], false)}, {prop: "willNeedBindingPattern", name: "willNeedBindingPattern", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [$Bool], false)}, {prop: "parseImportExpr", name: "parseImportExpr", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, js_ast.L], [js_ast.Expr], false)}, {prop: "parseExprOrBindings", name: "parseExprOrBindings", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.L, ptrType$73], [js_ast.Expr], false)}, {prop: "parseExpr", name: "parseExpr", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.L], [js_ast.Expr], false)}, {prop: "parseExprWithFlags", name: "parseExprWithFlags", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.L, exprFlag], [js_ast.Expr], false)}, {prop: "parseExprCommon", name: "parseExprCommon", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.L, ptrType$73, exprFlag], [js_ast.Expr], false)}, {prop: "parseSuffix", name: "parseSuffix", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, js_ast.L, ptrType$73, exprFlag], [js_ast.Expr], false)}, {prop: "parseExprOrLetOrUsingStmt", name: "parseExprOrLetOrUsingStmt", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([parseStmtOpts], [js_ast.Expr, js_ast.Stmt, sliceType$7], false)}, {prop: "parseCallArgs", name: "parseCallArgs", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [sliceType$6, logger.Loc, $Bool], false)}, {prop: "parseJSXNamespacedName", name: "parseJSXNamespacedName", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [logger.Range, js_lexer.MaybeSubstring], false)}, {prop: "parseJSXTag", name: "parseJSXTag", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [logger.Range, $String, js_ast.Expr], false)}, {prop: "parseJSXElement", name: "parseJSXElement", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc], [js_ast.Expr], false)}, {prop: "parseTemplateParts", name: "parseTemplateParts", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([$Bool], [sliceType$26, logger.Loc], false)}, {prop: "parseAndDeclareDecls", name: "parseAndDeclareDecls", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ast.SymbolKind, parseStmtOpts], [sliceType$7], false)}, {prop: "requireInitializers", name: "requireInitializers", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.LocalKind, sliceType$7], [], false)}, {prop: "forbidInitializers", name: "forbidInitializers", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([sliceType$7, $String, $Bool], [], false)}, {prop: "parseClauseAlias", name: "parseClauseAlias", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([$String], [js_lexer.MaybeSubstring], false)}, {prop: "parseImportClause", name: "parseImportClause", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [sliceType$19, $Bool], false)}, {prop: "parseExportClause", name: "parseExportClause", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [sliceType$19, $Bool], false)}, {prop: "parseBinding", name: "parseBinding", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([parseBindingOpts], [js_ast.Binding], false)}, {prop: "parseFn", name: "parseFn", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$12, logger.Range, decoratorContextFlags, fnOrArrowDataParse], [js_ast.Fn, $Bool], false)}, {prop: "validateFunctionName", name: "validateFunctionName", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Fn, fnKind], [], false)}, {prop: "validateDeclaredSymbolName", name: "validateDeclaredSymbolName", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, $String], [], false)}, {prop: "parseClassStmt", name: "parseClassStmt", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, parseStmtOpts], [js_ast.Stmt], false)}, {prop: "parseClassExpr", name: "parseClassExpr", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([sliceType$11], [js_ast.Expr], false)}, {prop: "parseClass", name: "parseClass", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Range, ptrType$12, parseClassOpts], [js_ast.Class], false)}, {prop: "parseLabelName", name: "parseLabelName", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [ptrType$12], false)}, {prop: "parsePath", name: "parsePath", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [logger.Range, $String, ptrType$76, ast.ImportRecordFlags], false)}, {prop: "maybeWarnAboutAssertKeyword", name: "maybeWarnAboutAssertKeyword", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc], [], false)}, {prop: "parseFnStmt", name: "parseFnStmt", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, parseStmtOpts, $Bool, logger.Range], [js_ast.Stmt], false)}, {prop: "parseDecorators", name: "parseDecorators", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$1, logger.Range, decoratorContextFlags], [sliceType$11], false)}, {prop: "parseDecorator", name: "parseDecorator", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [js_ast.Expr], false)}, {prop: "parseStmt", name: "parseStmt", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([parseStmtOpts], [js_ast.Stmt], false)}, {prop: "addImportRecord", name: "addImportRecord", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ast.ImportKind, logger.Range, $String, ptrType$76, ast.ImportRecordFlags], [$Uint32], false)}, {prop: "parseFnBody", name: "parseFnBody", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([fnOrArrowDataParse], [js_ast.FnBody], false)}, {prop: "forbidLexicalDecl", name: "forbidLexicalDecl", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc], [], false)}, {prop: "parseStmtsUpTo", name: "parseStmtsUpTo", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_lexer.T, parseStmtOpts], [sliceType$8], false)}, {prop: "generateTempRef", name: "generateTempRef", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([generateTempRefArg, $String], [ast.Ref], false)}, {prop: "generateTopLevelTempRef", name: "generateTopLevelTempRef", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [ast.Ref], false)}, {prop: "pushScopeForVisitPass", name: "pushScopeForVisitPass", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.ScopeKind, logger.Loc], [], false)}, {prop: "findSymbol", name: "findSymbol", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, $String], [findSymbolResult], false)}, {prop: "findLabelSymbol", name: "findLabelSymbol", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, $String], [ast.Ref, $Bool, $Bool], false)}, {prop: "visitStmtsAndPrependTempRefs", name: "visitStmtsAndPrependTempRefs", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([sliceType$8, prependTempRefsOpts], [sliceType$8], false)}, {prop: "visitStmts", name: "visitStmts", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([sliceType$8, stmtsKind], [sliceType$8], false)}, {prop: "mangleStmts", name: "mangleStmts", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([sliceType$8, stmtsKind], [sliceType$8], false)}, {prop: "substituteSingleUseSymbolInStmt", name: "substituteSingleUseSymbolInStmt", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Stmt, ast.Ref, js_ast.Expr], [$Bool], false)}, {prop: "substituteSingleUseSymbolInExpr", name: "substituteSingleUseSymbolInExpr", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, ast.Ref, js_ast.Expr, $Bool], [js_ast.Expr, substituteStatus], false)}, {prop: "visitLoopBody", name: "visitLoopBody", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Stmt], [js_ast.Stmt], false)}, {prop: "visitSingleStmt", name: "visitSingleStmt", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Stmt, stmtsKind], [js_ast.Stmt], false)}, {prop: "visitForLoopInit", name: "visitForLoopInit", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Stmt, $Bool], [js_ast.Stmt], false)}, {prop: "recordDeclaredSymbol", name: "recordDeclaredSymbol", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ast.Ref], [], false)}, {prop: "visitBinding", name: "visitBinding", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Binding, bindingOpts], [], false)}, {prop: "mangleIf", name: "mangleIf", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([sliceType$8, logger.Loc, ptrType$44], [sliceType$8], false)}, {prop: "keepExprSymbolName", name: "keepExprSymbolName", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, $String], [js_ast.Expr], false)}, {prop: "keepClassOrFnSymbolName", name: "keepClassOrFnSymbolName", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, js_ast.Expr, $String], [js_ast.Stmt], false)}, {prop: "visitAndAppendStmt", name: "visitAndAppendStmt", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([sliceType$8, js_ast.Stmt], [sliceType$8], false)}, {prop: "maybeRelocateVarsToTopLevel", name: "maybeRelocateVarsToTopLevel", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([sliceType$7, relocateVarsMode], [js_ast.Stmt, $Bool], false)}, {prop: "markExprAsParenthesized", name: "markExprAsParenthesized", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, logger.Loc, $Bool], [], false)}, {prop: "maybeTransposeIfExprChain", name: "maybeTransposeIfExprChain", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, funcType$1], [js_ast.Expr], false)}, {prop: "iifeCanBeRemovedIfUnused", name: "iifeCanBeRemovedIfUnused", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([sliceType$10, js_ast.FnBody], [$Bool], false)}, {prop: "captureValueWithPossibleSideEffects", name: "captureValueWithPossibleSideEffects", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, $Int, js_ast.Expr, captureValueMode], [funcType, funcType$1], false)}, {prop: "visitDecorators", name: "visitDecorators", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([sliceType$11, ptrType$1], [sliceType$11], false)}, {prop: "visitClass", name: "visitClass", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, ptrType$30, ast.Ref, $String], [visitClassResult], false)}, {prop: "visitArgs", name: "visitArgs", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([sliceType$10, visitArgsOpts], [], false)}, {prop: "isDotOrIndexDefineMatch", name: "isDotOrIndexDefineMatch", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, sliceType], [$Bool], false)}, {prop: "instantiateDefineExpr", name: "instantiateDefineExpr", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, config.DefineExpr, identifierOpts], [js_ast.Expr], false)}, {prop: "instantiateInjectDotName", name: "instantiateInjectDotName", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, injectedDotName, js_ast.AssignTarget], [js_ast.Expr], false)}, {prop: "checkForUnrepresentableIdentifier", name: "checkForUnrepresentableIdentifier", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, $String], [], false)}, {prop: "warnAboutTypeofAndString", name: "warnAboutTypeofAndString", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, js_ast.Expr, typeofStringOrder], [], false)}, {prop: "warnAboutEqualityCheck", name: "warnAboutEqualityCheck", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([$String, js_ast.Expr, logger.Loc], [$Bool], false)}, {prop: "maybeRewritePropertyAccess", name: "maybeRewritePropertyAccess", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, js_ast.AssignTarget, $Bool, js_ast.Expr, $String, logger.Loc, $Bool, $Bool, $Bool], [js_ast.Expr, $Bool], false)}, {prop: "visitExpr", name: "visitExpr", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr], [js_ast.Expr], false)}, {prop: "valueForThis", name: "valueForThis", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, $Bool, js_ast.AssignTarget, $Bool, $Bool], [js_ast.Expr, $Bool], false)}, {prop: "valueForImportMeta", name: "valueForImportMeta", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc], [js_ast.Expr, $Bool], false)}, {prop: "reportPrivateNameUsage", name: "reportPrivateNameUsage", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([$String], [], false)}, {prop: "isValidAssignmentTarget", name: "isValidAssignmentTarget", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr], [$Bool], false)}, {prop: "isUnsupportedRegularExpression", name: "isUnsupportedRegularExpression", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, $String], [$String, $String, $Bool], false)}, {prop: "visitExprInOut", name: "visitExprInOut", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, exprIn], [js_ast.Expr, exprOut], false)}, {prop: "handleGlobPattern", name: "handleGlobPattern", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, ast.ImportKind, $String, ptrType$76], [js_ast.Expr], false)}, {prop: "globPatternFromExpr", name: "globPatternFromExpr", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr], [sliceType$32, logger.Range], false)}, {prop: "convertSymbolUseToCall", name: "convertSymbolUseToCall", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ast.Ref, $Bool], [], false)}, {prop: "warnAboutImportNamespaceCall", name: "warnAboutImportNamespaceCall", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([js_ast.Expr, importNamespaceCallKind], [], false)}, {prop: "maybeMarkKnownGlobalConstructorAsPure", name: "maybeMarkKnownGlobalConstructorAsPure", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$75], [], false)}, {prop: "handleIdentifier", name: "handleIdentifier", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, ptrType$33, identifierOpts], [js_ast.Expr], false)}, {prop: "visitFn", name: "visitFn", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$115, logger.Loc, visitFnOpts], [], false)}, {prop: "recordExport", name: "recordExport", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([logger.Loc, $String, ast.Ref], [], false)}, {prop: "checkForUnusedTSImportEquals", name: "checkForUnusedTSImportEquals", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$10, ptrType$124], [$Bool], false)}, {prop: "scanForUnusedTSImportEquals", name: "scanForUnusedTSImportEquals", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([sliceType$8], [importsExportsScanResult], false)}, {prop: "scanForImportsAndExports", name: "scanForImportsAndExports", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([sliceType$8], [importsExportsScanResult], false)}, {prop: "appendPart", name: "appendPart", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([sliceType$44, sliceType$8], [sliceType$44], false)}, {prop: "whyESModule", name: "whyESModule", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [whyESM, sliceType$4], false)}, {prop: "prepareForVisitPass", name: "prepareForVisitPass", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [], false)}, {prop: "declareCommonJSSymbol", name: "declareCommonJSSymbol", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ast.SymbolKind, $String], [ast.Ref], false)}, {prop: "computeCharacterFrequency", name: "computeCharacterFrequency", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [ptrType$117], false)}, {prop: "generateImportStmt", name: "generateImportStmt", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([$String, logger.Range, sliceType, sliceType$44, mapType$2, ptrType$118, ptrType$118], [sliceType$44, $Uint32], false)}, {prop: "toAST", name: "toAST", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([sliceType$44, sliceType$44, sliceType$44, $String, sliceType], [js_ast.AST], false)}]; + ptrType$116.methods = [{prop: "Equal", name: "Equal", pkg: "", typ: $funcType([ptrType$116], [$Bool], false)}]; + ptrType$125.methods = [{prop: "reset", name: "reset", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([], [], false)}, {prop: "check", name: "check", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$120, js_ast.Expr], [], false)}]; scopeMemberArray.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}]; - ptrType$69.methods = [{prop: "mergeInto", name: "mergeInto", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$69], [], false)}]; - ptrType$119.methods = [{prop: "checkAndPrepare", name: "checkAndPrepare", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$109], [js_ast.Expr], false)}, {prop: "visitRightAndFinish", name: "visitRightAndFinish", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$109], [js_ast.Expr], false)}]; + ptrType$73.methods = [{prop: "mergeInto", name: "mergeInto", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$73], [], false)}]; + ptrType$126.methods = [{prop: "checkAndPrepare", name: "checkAndPrepare", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$120], [js_ast.Expr], false)}, {prop: "visitRightAndFinish", name: "visitRightAndFinish", pkg: "github.com/evanw/esbuild/internal/js_parser", typ: $funcType([ptrType$120], [js_ast.Expr], false)}]; skipTypeScriptTypeArgumentsOpts.init("github.com/evanw/esbuild/internal/js_parser", [{prop: "isInsideJSXElement", name: "isInsideJSXElement", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "isParseTypeArgumentsInExpression", name: "isParseTypeArgumentsInExpression", embedded: false, exported: false, typ: $Bool, tag: ""}]); mappingArray.init(sourcemap.Mapping); jsonParser.init("github.com/evanw/esbuild/internal/js_parser", [{prop: "log", name: "log", embedded: false, exported: false, typ: logger.Log, tag: ""}, {prop: "source", name: "source", embedded: false, exported: false, typ: logger.Source, tag: ""}, {prop: "tracker", name: "tracker", embedded: false, exported: false, typ: logger.LineColumnTracker, tag: ""}, {prop: "lexer", name: "lexer", embedded: false, exported: false, typ: js_lexer.Lexer, tag: ""}, {prop: "options", name: "options", embedded: false, exported: false, typ: JSONOptions, tag: ""}, {prop: "suppressWarningsAboutWeirdCode", name: "suppressWarningsAboutWeirdCode", embedded: false, exported: false, typ: $Bool, tag: ""}]); JSONOptions.init("", [{prop: "UnsupportedJSFeatures", name: "UnsupportedJSFeatures", embedded: false, exported: true, typ: compat.JSFeature, tag: ""}, {prop: "Flavor", name: "Flavor", embedded: false, exported: true, typ: js_lexer.JSONFlavor, tag: ""}, {prop: "ErrorSuffix", name: "ErrorSuffix", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "IsForDefine", name: "IsForDefine", embedded: false, exported: true, typ: $Bool, tag: ""}]); classLoweringInfo.init("github.com/evanw/esbuild/internal/js_parser", [{prop: "lowerAllInstanceFields", name: "lowerAllInstanceFields", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "lowerAllStaticFields", name: "lowerAllStaticFields", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "shimSuperCtorCalls", name: "shimSuperCtorCalls", embedded: false, exported: false, typ: $Bool, tag: ""}]); - lowerClassContext.init("github.com/evanw/esbuild/internal/js_parser", [{prop: "nameToKeep", name: "nameToKeep", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "kind", name: "kind", embedded: false, exported: false, typ: classKind, tag: ""}, {prop: "class$2", name: "class", embedded: false, exported: false, typ: ptrType$29, tag: ""}, {prop: "classLoc", name: "classLoc", embedded: false, exported: false, typ: logger.Loc, tag: ""}, {prop: "classExpr", name: "classExpr", embedded: false, exported: false, typ: js_ast.Expr, tag: ""}, {prop: "defaultName", name: "defaultName", embedded: false, exported: false, typ: ast.LocRef, tag: ""}, {prop: "ctor", name: "ctor", embedded: false, exported: false, typ: ptrType$28, tag: ""}, {prop: "extendsRef", name: "extendsRef", embedded: false, exported: false, typ: ast.Ref, tag: ""}, {prop: "parameterFields", name: "parameterFields", embedded: false, exported: false, typ: sliceType$8, tag: ""}, {prop: "instanceMembers", name: "instanceMembers", embedded: false, exported: false, typ: sliceType$8, tag: ""}, {prop: "instancePrivateMethods", name: "instancePrivateMethods", embedded: false, exported: false, typ: sliceType$8, tag: ""}, {prop: "autoAccessorCount", name: "autoAccessorCount", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "computedPropertyChain", name: "computedPropertyChain", embedded: false, exported: false, typ: js_ast.Expr, tag: ""}, {prop: "privateMembers", name: "privateMembers", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "staticMembers", name: "staticMembers", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "staticPrivateMethods", name: "staticPrivateMethods", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "instanceExperimentalDecorators", name: "instanceExperimentalDecorators", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "staticExperimentalDecorators", name: "staticExperimentalDecorators", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "decoratorContextRef", name: "decoratorContextRef", embedded: false, exported: false, typ: ast.Ref, tag: ""}, {prop: "decoratorClassDecorators", name: "decoratorClassDecorators", embedded: false, exported: false, typ: js_ast.Expr, tag: ""}, {prop: "decoratorPropertyToInitializerMap", name: "decoratorPropertyToInitializerMap", embedded: false, exported: false, typ: mapType$1, tag: ""}, {prop: "decoratorCallInstanceMethodExtraInitializers", name: "decoratorCallInstanceMethodExtraInitializers", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "decoratorCallStaticMethodExtraInitializers", name: "decoratorCallStaticMethodExtraInitializers", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "decoratorStaticNonFieldElements", name: "decoratorStaticNonFieldElements", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "decoratorInstanceNonFieldElements", name: "decoratorInstanceNonFieldElements", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "decoratorStaticFieldElements", name: "decoratorStaticFieldElements", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "decoratorInstanceFieldElements", name: "decoratorInstanceFieldElements", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "privateInstanceMethodRef", name: "privateInstanceMethodRef", embedded: false, exported: false, typ: ast.Ref, tag: ""}, {prop: "privateStaticMethodRef", name: "privateStaticMethodRef", embedded: false, exported: false, typ: ast.Ref, tag: ""}, {prop: "nameFunc", name: "nameFunc", embedded: false, exported: false, typ: funcType, tag: ""}, {prop: "wrapFunc", name: "wrapFunc", embedded: false, exported: false, typ: funcType$1, tag: ""}, {prop: "didCaptureClassExpr", name: "didCaptureClassExpr", embedded: false, exported: false, typ: $Bool, tag: ""}]); - propertyAnalysis.init("github.com/evanw/esbuild/internal/js_parser", [{prop: "private$0", name: "private", embedded: false, exported: false, typ: ptrType$24, tag: ""}, {prop: "propExperimentalDecorators", name: "propExperimentalDecorators", embedded: false, exported: false, typ: sliceType$11, tag: ""}, {prop: "propDecorators", name: "propDecorators", embedded: false, exported: false, typ: sliceType$11, tag: ""}, {prop: "mustLowerField", name: "mustLowerField", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "needsValueOfKey", name: "needsValueOfKey", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "rewriteAutoAccessorToGetSet", name: "rewriteAutoAccessorToGetSet", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "shouldOmitFieldInitializer", name: "shouldOmitFieldInitializer", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "staticFieldToBlockAssign", name: "staticFieldToBlockAssign", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "isComputedPropertyCopiedOrMoved", name: "isComputedPropertyCopiedOrMoved", embedded: false, exported: false, typ: $Bool, tag: ""}]); + lowerClassContext.init("github.com/evanw/esbuild/internal/js_parser", [{prop: "nameToKeep", name: "nameToKeep", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "kind", name: "kind", embedded: false, exported: false, typ: classKind, tag: ""}, {prop: "class$2", name: "class", embedded: false, exported: false, typ: ptrType$30, tag: ""}, {prop: "classLoc", name: "classLoc", embedded: false, exported: false, typ: logger.Loc, tag: ""}, {prop: "classExpr", name: "classExpr", embedded: false, exported: false, typ: js_ast.Expr, tag: ""}, {prop: "defaultName", name: "defaultName", embedded: false, exported: false, typ: ast.LocRef, tag: ""}, {prop: "ctor", name: "ctor", embedded: false, exported: false, typ: ptrType$29, tag: ""}, {prop: "extendsRef", name: "extendsRef", embedded: false, exported: false, typ: ast.Ref, tag: ""}, {prop: "parameterFields", name: "parameterFields", embedded: false, exported: false, typ: sliceType$8, tag: ""}, {prop: "instanceMembers", name: "instanceMembers", embedded: false, exported: false, typ: sliceType$8, tag: ""}, {prop: "instancePrivateMethods", name: "instancePrivateMethods", embedded: false, exported: false, typ: sliceType$8, tag: ""}, {prop: "autoAccessorCount", name: "autoAccessorCount", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "computedPropertyChain", name: "computedPropertyChain", embedded: false, exported: false, typ: js_ast.Expr, tag: ""}, {prop: "privateMembers", name: "privateMembers", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "staticMembers", name: "staticMembers", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "staticPrivateMethods", name: "staticPrivateMethods", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "instanceExperimentalDecorators", name: "instanceExperimentalDecorators", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "staticExperimentalDecorators", name: "staticExperimentalDecorators", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "decoratorContextRef", name: "decoratorContextRef", embedded: false, exported: false, typ: ast.Ref, tag: ""}, {prop: "decoratorClassDecorators", name: "decoratorClassDecorators", embedded: false, exported: false, typ: js_ast.Expr, tag: ""}, {prop: "decoratorPropertyToInitializerMap", name: "decoratorPropertyToInitializerMap", embedded: false, exported: false, typ: mapType$1, tag: ""}, {prop: "decoratorCallInstanceMethodExtraInitializers", name: "decoratorCallInstanceMethodExtraInitializers", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "decoratorCallStaticMethodExtraInitializers", name: "decoratorCallStaticMethodExtraInitializers", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "decoratorStaticNonFieldElements", name: "decoratorStaticNonFieldElements", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "decoratorInstanceNonFieldElements", name: "decoratorInstanceNonFieldElements", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "decoratorStaticFieldElements", name: "decoratorStaticFieldElements", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "decoratorInstanceFieldElements", name: "decoratorInstanceFieldElements", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "privateInstanceMethodRef", name: "privateInstanceMethodRef", embedded: false, exported: false, typ: ast.Ref, tag: ""}, {prop: "privateStaticMethodRef", name: "privateStaticMethodRef", embedded: false, exported: false, typ: ast.Ref, tag: ""}, {prop: "nameFunc", name: "nameFunc", embedded: false, exported: false, typ: funcType, tag: ""}, {prop: "wrapFunc", name: "wrapFunc", embedded: false, exported: false, typ: funcType$1, tag: ""}, {prop: "didCaptureClassExpr", name: "didCaptureClassExpr", embedded: false, exported: false, typ: $Bool, tag: ""}]); + propertyAnalysis.init("github.com/evanw/esbuild/internal/js_parser", [{prop: "private$0", name: "private", embedded: false, exported: false, typ: ptrType$25, tag: ""}, {prop: "propExperimentalDecorators", name: "propExperimentalDecorators", embedded: false, exported: false, typ: sliceType$11, tag: ""}, {prop: "propDecorators", name: "propDecorators", embedded: false, exported: false, typ: sliceType$11, tag: ""}, {prop: "mustLowerField", name: "mustLowerField", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "needsValueOfKey", name: "needsValueOfKey", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "rewriteAutoAccessorToGetSet", name: "rewriteAutoAccessorToGetSet", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "shouldOmitFieldInitializer", name: "shouldOmitFieldInitializer", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "staticFieldToBlockAssign", name: "staticFieldToBlockAssign", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "isComputedPropertyCopiedOrMoved", name: "isComputedPropertyCopiedOrMoved", embedded: false, exported: false, typ: $Bool, tag: ""}]); lowerUsingDeclarationContext.init("github.com/evanw/esbuild/internal/js_parser", [{prop: "firstUsingLoc", name: "firstUsingLoc", embedded: false, exported: false, typ: logger.Loc, tag: ""}, {prop: "stackRef", name: "stackRef", embedded: false, exported: false, typ: ast.Ref, tag: ""}, {prop: "hasAwaitUsing", name: "hasAwaitUsing", embedded: false, exported: false, typ: $Bool, tag: ""}]); parser.init("github.com/evanw/esbuild/internal/js_parser", [{prop: "options", name: "options", embedded: false, exported: false, typ: Options, tag: ""}, {prop: "log", name: "log", embedded: false, exported: false, typ: logger.Log, tag: ""}, {prop: "source", name: "source", embedded: false, exported: false, typ: logger.Source, tag: ""}, {prop: "tracker", name: "tracker", embedded: false, exported: false, typ: logger.LineColumnTracker, tag: ""}, {prop: "fnOrArrowDataParse", name: "fnOrArrowDataParse", embedded: false, exported: false, typ: fnOrArrowDataParse, tag: ""}, {prop: "fnOnlyDataVisit", name: "fnOnlyDataVisit", embedded: false, exported: false, typ: fnOnlyDataVisit, tag: ""}, {prop: "allocatedNames", name: "allocatedNames", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "currentScope", name: "currentScope", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "scopesForCurrentPart", name: "scopesForCurrentPart", embedded: false, exported: false, typ: sliceType$16, tag: ""}, {prop: "symbols", name: "symbols", embedded: false, exported: false, typ: sliceType$39, tag: ""}, {prop: "astHelpers", name: "astHelpers", embedded: false, exported: false, typ: js_ast.HelperContext, tag: ""}, {prop: "tsUseCounts", name: "tsUseCounts", embedded: false, exported: false, typ: sliceType$35, tag: ""}, {prop: "injectedDefineSymbols", name: "injectedDefineSymbols", embedded: false, exported: false, typ: sliceType$18, tag: ""}, {prop: "injectedSymbolSources", name: "injectedSymbolSources", embedded: false, exported: false, typ: mapType$3, tag: ""}, {prop: "injectedDotNames", name: "injectedDotNames", embedded: false, exported: false, typ: mapType$4, tag: ""}, {prop: "dropLabelsMap", name: "dropLabelsMap", embedded: false, exported: false, typ: mapType$5, tag: ""}, {prop: "exprComments", name: "exprComments", embedded: false, exported: false, typ: mapType$6, tag: ""}, {prop: "mangledProps", name: "mangledProps", embedded: false, exported: false, typ: mapType$7, tag: ""}, {prop: "reservedProps", name: "reservedProps", embedded: false, exported: false, typ: mapType$8, tag: ""}, {prop: "symbolUses", name: "symbolUses", embedded: false, exported: false, typ: mapType$9, tag: ""}, {prop: "importSymbolPropertyUses", name: "importSymbolPropertyUses", embedded: false, exported: false, typ: mapType$11, tag: ""}, {prop: "symbolCallUses", name: "symbolCallUses", embedded: false, exported: false, typ: mapType$12, tag: ""}, {prop: "declaredSymbols", name: "declaredSymbols", embedded: false, exported: false, typ: sliceType$36, tag: ""}, {prop: "globPatternImports", name: "globPatternImports", embedded: false, exported: false, typ: sliceType$40, tag: ""}, {prop: "runtimeImports", name: "runtimeImports", embedded: false, exported: false, typ: mapType$2, tag: ""}, {prop: "duplicateCaseChecker", name: "duplicateCaseChecker", embedded: false, exported: false, typ: duplicateCaseChecker, tag: ""}, {prop: "unrepresentableIdentifiers", name: "unrepresentableIdentifiers", embedded: false, exported: false, typ: mapType$8, tag: ""}, {prop: "legacyOctalLiterals", name: "legacyOctalLiterals", embedded: false, exported: false, typ: mapType$13, tag: ""}, {prop: "scopesInOrderForEnum", name: "scopesInOrderForEnum", embedded: false, exported: false, typ: mapType$14, tag: ""}, {prop: "binaryExprStack", name: "binaryExprStack", embedded: false, exported: false, typ: sliceType$42, tag: ""}, {prop: "hoistedRefForSloppyModeBlockFn", name: "hoistedRefForSloppyModeBlockFn", embedded: false, exported: false, typ: mapType$15, tag: ""}, {prop: "privateGetters", name: "privateGetters", embedded: false, exported: false, typ: mapType$15, tag: ""}, {prop: "privateSetters", name: "privateSetters", embedded: false, exported: false, typ: mapType$15, tag: ""}, {prop: "refToTSNamespaceMemberData", name: "refToTSNamespaceMemberData", embedded: false, exported: false, typ: mapType$16, tag: ""}, {prop: "tsNamespaceTarget", name: "tsNamespaceTarget", embedded: false, exported: false, typ: js_ast.E, tag: ""}, {prop: "tsNamespaceMemberData", name: "tsNamespaceMemberData", embedded: false, exported: false, typ: js_ast.TSNamespaceMemberData, tag: ""}, {prop: "emittedNamespaceVars", name: "emittedNamespaceVars", embedded: false, exported: false, typ: mapType$17, tag: ""}, {prop: "isExportedInsideNamespace", name: "isExportedInsideNamespace", embedded: false, exported: false, typ: mapType$15, tag: ""}, {prop: "localTypeNames", name: "localTypeNames", embedded: false, exported: false, typ: mapType$8, tag: ""}, {prop: "tsEnums", name: "tsEnums", embedded: false, exported: false, typ: mapType$19, tag: ""}, {prop: "constValues", name: "constValues", embedded: false, exported: false, typ: mapType$20, tag: ""}, {prop: "propDerivedCtorValue", name: "propDerivedCtorValue", embedded: false, exported: false, typ: js_ast.E, tag: ""}, {prop: "propMethodDecoratorScope", name: "propMethodDecoratorScope", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "enclosingNamespaceArgRef", name: "enclosingNamespaceArgRef", embedded: false, exported: false, typ: ptrType$11, tag: ""}, {prop: "importRecords", name: "importRecords", embedded: false, exported: false, typ: sliceType$43, tag: ""}, {prop: "importRecordsForCurrentPart", name: "importRecordsForCurrentPart", embedded: false, exported: false, typ: sliceType$35, tag: ""}, {prop: "exportStarImportRecords", name: "exportStarImportRecords", embedded: false, exported: false, typ: sliceType$35, tag: ""}, {prop: "importItemsForNamespace", name: "importItemsForNamespace", embedded: false, exported: false, typ: mapType$21, tag: ""}, {prop: "isImportItem", name: "isImportItem", embedded: false, exported: false, typ: mapType$17, tag: ""}, {prop: "namedImports", name: "namedImports", embedded: false, exported: false, typ: mapType$22, tag: ""}, {prop: "namedExports", name: "namedExports", embedded: false, exported: false, typ: mapType$23, tag: ""}, {prop: "topLevelSymbolToParts", name: "topLevelSymbolToParts", embedded: false, exported: false, typ: mapType$24, tag: ""}, {prop: "importNamespaceCCMap", name: "importNamespaceCCMap", embedded: false, exported: false, typ: mapType$25, tag: ""}, {prop: "scopesInOrder", name: "scopesInOrder", embedded: false, exported: false, typ: sliceType$5, tag: ""}, {prop: "nameToKeep", name: "nameToKeep", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "nameToKeepIsFor", name: "nameToKeepIsFor", embedded: false, exported: false, typ: js_ast.E, tag: ""}, {prop: "stmtExprValue", name: "stmtExprValue", embedded: false, exported: false, typ: js_ast.E, tag: ""}, {prop: "callTarget", name: "callTarget", embedded: false, exported: false, typ: js_ast.E, tag: ""}, {prop: "dotOrIndexTarget", name: "dotOrIndexTarget", embedded: false, exported: false, typ: js_ast.E, tag: ""}, {prop: "templateTag", name: "templateTag", embedded: false, exported: false, typ: js_ast.E, tag: ""}, {prop: "deleteTarget", name: "deleteTarget", embedded: false, exported: false, typ: js_ast.E, tag: ""}, {prop: "loopBody", name: "loopBody", embedded: false, exported: false, typ: js_ast.S, tag: ""}, {prop: "suspiciousLogicalOperatorInsideArrow", name: "suspiciousLogicalOperatorInsideArrow", embedded: false, exported: false, typ: js_ast.E, tag: ""}, {prop: "moduleScope", name: "moduleScope", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "manifestForYarnPnP", name: "manifestForYarnPnP", embedded: false, exported: false, typ: js_ast.Expr, tag: ""}, {prop: "stringLocalsForYarnPnP", name: "stringLocalsForYarnPnP", embedded: false, exported: false, typ: mapType$26, tag: ""}, {prop: "awaitTarget", name: "awaitTarget", embedded: false, exported: false, typ: js_ast.E, tag: ""}, {prop: "thenCatchChain", name: "thenCatchChain", embedded: false, exported: false, typ: thenCatchChain, tag: ""}, {prop: "relocatedTopLevelVars", name: "relocatedTopLevelVars", embedded: false, exported: false, typ: sliceType$38, tag: ""}, {prop: "lowerAllOfThesePrivateNames", name: "lowerAllOfThesePrivateNames", embedded: false, exported: false, typ: mapType$8, tag: ""}, {prop: "tempLetsToDeclare", name: "tempLetsToDeclare", embedded: false, exported: false, typ: sliceType$18, tag: ""}, {prop: "tempRefsToDeclare", name: "tempRefsToDeclare", embedded: false, exported: false, typ: sliceType$29, tag: ""}, {prop: "topLevelTempRefsToDeclare", name: "topLevelTempRefsToDeclare", embedded: false, exported: false, typ: sliceType$29, tag: ""}, {prop: "lexer", name: "lexer", embedded: false, exported: false, typ: js_lexer.Lexer, tag: ""}, {prop: "parseExperimentalDecoratorNesting", name: "parseExperimentalDecoratorNesting", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "tempRefCount", name: "tempRefCount", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "topLevelTempRefCount", name: "topLevelTempRefCount", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "jsxSourceLoc", name: "jsxSourceLoc", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "jsxSourceLine", name: "jsxSourceLine", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "jsxSourceColumn", name: "jsxSourceColumn", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "exportsRef", name: "exportsRef", embedded: false, exported: false, typ: ast.Ref, tag: ""}, {prop: "requireRef", name: "requireRef", embedded: false, exported: false, typ: ast.Ref, tag: ""}, {prop: "moduleRef", name: "moduleRef", embedded: false, exported: false, typ: ast.Ref, tag: ""}, {prop: "importMetaRef", name: "importMetaRef", embedded: false, exported: false, typ: ast.Ref, tag: ""}, {prop: "promiseRef", name: "promiseRef", embedded: false, exported: false, typ: ast.Ref, tag: ""}, {prop: "regExpRef", name: "regExpRef", embedded: false, exported: false, typ: ast.Ref, tag: ""}, {prop: "bigIntRef", name: "bigIntRef", embedded: false, exported: false, typ: ast.Ref, tag: ""}, {prop: "superCtorRef", name: "superCtorRef", embedded: false, exported: false, typ: ast.Ref, tag: ""}, {prop: "jsxRuntimeImports", name: "jsxRuntimeImports", embedded: false, exported: false, typ: mapType$2, tag: ""}, {prop: "jsxLegacyImports", name: "jsxLegacyImports", embedded: false, exported: false, typ: mapType$2, tag: ""}, {prop: "weakMapRef", name: "weakMapRef", embedded: false, exported: false, typ: ast.Ref, tag: ""}, {prop: "weakSetRef", name: "weakSetRef", embedded: false, exported: false, typ: ast.Ref, tag: ""}, {prop: "esmImportStatementKeyword", name: "esmImportStatementKeyword", embedded: false, exported: false, typ: logger.Range, tag: ""}, {prop: "esmImportMeta", name: "esmImportMeta", embedded: false, exported: false, typ: logger.Range, tag: ""}, {prop: "esmExportKeyword", name: "esmExportKeyword", embedded: false, exported: false, typ: logger.Range, tag: ""}, {prop: "enclosingClassKeyword", name: "enclosingClassKeyword", embedded: false, exported: false, typ: logger.Range, tag: ""}, {prop: "topLevelAwaitKeyword", name: "topLevelAwaitKeyword", embedded: false, exported: false, typ: logger.Range, tag: ""}, {prop: "liveTopLevelAwaitKeyword", name: "liveTopLevelAwaitKeyword", embedded: false, exported: false, typ: logger.Range, tag: ""}, {prop: "latestArrowArgLoc", name: "latestArrowArgLoc", embedded: false, exported: false, typ: logger.Loc, tag: ""}, {prop: "forbidSuffixAfterAsLoc", name: "forbidSuffixAfterAsLoc", embedded: false, exported: false, typ: logger.Loc, tag: ""}, {prop: "firstJSXElementLoc", name: "firstJSXElementLoc", embedded: false, exported: false, typ: logger.Loc, tag: ""}, {prop: "fnOrArrowDataVisit", name: "fnOrArrowDataVisit", embedded: false, exported: false, typ: fnOrArrowDataVisit, tag: ""}, {prop: "afterArrowBodyLoc", name: "afterArrowBodyLoc", embedded: false, exported: false, typ: logger.Loc, tag: ""}, {prop: "suppressWarningsAboutWeirdCode", name: "suppressWarningsAboutWeirdCode", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "isFileConsideredToHaveESMExports", name: "isFileConsideredToHaveESMExports", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "isFileConsideredESM", name: "isFileConsideredESM", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "hasNonLocalExportDeclareInsideNamespace", name: "hasNonLocalExportDeclareInsideNamespace", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "shouldFoldTypeScriptConstantExpressions", name: "shouldFoldTypeScriptConstantExpressions", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "allowIn", name: "allowIn", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "allowPrivateIdentifiers", name: "allowPrivateIdentifiers", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "hasTopLevelReturn", name: "hasTopLevelReturn", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "latestReturnHadSemicolon", name: "latestReturnHadSemicolon", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "messageAboutThisIsUndefined", name: "messageAboutThisIsUndefined", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "isControlFlowDead", name: "isControlFlowDead", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "shouldAddKeyComment", name: "shouldAddKeyComment", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "willWrapModuleInTryCatchForUsing", name: "willWrapModuleInTryCatchForUsing", embedded: false, exported: false, typ: $Bool, tag: ""}]); - globPatternImport.init("github.com/evanw/esbuild/internal/js_parser", [{prop: "assertOrWith", name: "assertOrWith", embedded: false, exported: false, typ: ptrType$72, tag: ""}, {prop: "parts", name: "parts", embedded: false, exported: false, typ: sliceType$33, tag: ""}, {prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "approximateRange", name: "approximateRange", embedded: false, exported: false, typ: logger.Range, tag: ""}, {prop: "ref", name: "ref", embedded: false, exported: false, typ: ast.Ref, tag: ""}, {prop: "kind", name: "kind", embedded: false, exported: false, typ: ast.ImportKind, tag: ""}]); + globPatternImport.init("github.com/evanw/esbuild/internal/js_parser", [{prop: "assertOrWith", name: "assertOrWith", embedded: false, exported: false, typ: ptrType$76, tag: ""}, {prop: "parts", name: "parts", embedded: false, exported: false, typ: sliceType$33, tag: ""}, {prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "approximateRange", name: "approximateRange", embedded: false, exported: false, typ: logger.Range, tag: ""}, {prop: "ref", name: "ref", embedded: false, exported: false, typ: ast.Ref, tag: ""}, {prop: "kind", name: "kind", embedded: false, exported: false, typ: ast.ImportKind, tag: ""}]); namespaceImportItems.init("github.com/evanw/esbuild/internal/js_parser", [{prop: "entries", name: "entries", embedded: false, exported: false, typ: mapType$2, tag: ""}, {prop: "importRecordIndex", name: "importRecordIndex", embedded: false, exported: false, typ: $Uint32, tag: ""}]); stringLocalForYarnPnP.init("github.com/evanw/esbuild/internal/js_parser", [{prop: "value", name: "value", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "loc", name: "loc", embedded: false, exported: false, typ: logger.Loc, tag: ""}]); injectedSymbolSource.init("github.com/evanw/esbuild/internal/js_parser", [{prop: "source", name: "source", embedded: false, exported: false, typ: logger.Source, tag: ""}, {prop: "loc", name: "loc", embedded: false, exported: false, typ: logger.Loc, tag: ""}]); injectedDotName.init("github.com/evanw/esbuild/internal/js_parser", [{prop: "parts", name: "parts", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "injectedDefineIndex", name: "injectedDefineIndex", embedded: false, exported: false, typ: $Uint32, tag: ""}]); importNamespaceCall.init("github.com/evanw/esbuild/internal/js_parser", [{prop: "ref", name: "ref", embedded: false, exported: false, typ: ast.Ref, tag: ""}, {prop: "kind", name: "kind", embedded: false, exported: false, typ: importNamespaceCallKind, tag: ""}]); thenCatchChain.init("github.com/evanw/esbuild/internal/js_parser", [{prop: "nextTarget", name: "nextTarget", embedded: false, exported: false, typ: js_ast.E, tag: ""}, {prop: "catchLoc", name: "catchLoc", embedded: false, exported: false, typ: logger.Loc, tag: ""}, {prop: "hasMultipleArgs", name: "hasMultipleArgs", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "hasCatch", name: "hasCatch", embedded: false, exported: false, typ: $Bool, tag: ""}]); - Options.init("github.com/evanw/esbuild/internal/js_parser", [{prop: "injectedFiles", name: "injectedFiles", embedded: false, exported: false, typ: sliceType$22, tag: ""}, {prop: "jsx", name: "jsx", embedded: false, exported: false, typ: config.JSXOptions, tag: ""}, {prop: "tsAlwaysStrict", name: "tsAlwaysStrict", embedded: false, exported: false, typ: ptrType$60, tag: ""}, {prop: "mangleProps", name: "mangleProps", embedded: false, exported: false, typ: ptrType$61, tag: ""}, {prop: "reserveProps", name: "reserveProps", embedded: false, exported: false, typ: ptrType$61, tag: ""}, {prop: "dropLabels", name: "dropLabels", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "defines", name: "defines", embedded: false, exported: false, typ: ptrType$62, tag: ""}, {prop: "optionsThatSupportStructuralEquality", name: "optionsThatSupportStructuralEquality", embedded: true, exported: false, typ: optionsThatSupportStructuralEquality, tag: ""}]); + Options.init("github.com/evanw/esbuild/internal/js_parser", [{prop: "injectedFiles", name: "injectedFiles", embedded: false, exported: false, typ: sliceType$22, tag: ""}, {prop: "jsx", name: "jsx", embedded: false, exported: false, typ: config.JSXOptions, tag: ""}, {prop: "tsAlwaysStrict", name: "tsAlwaysStrict", embedded: false, exported: false, typ: ptrType$63, tag: ""}, {prop: "mangleProps", name: "mangleProps", embedded: false, exported: false, typ: ptrType$64, tag: ""}, {prop: "reserveProps", name: "reserveProps", embedded: false, exported: false, typ: ptrType$64, tag: ""}, {prop: "dropLabels", name: "dropLabels", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "defines", name: "defines", embedded: false, exported: false, typ: ptrType$65, tag: ""}, {prop: "optionsThatSupportStructuralEquality", name: "optionsThatSupportStructuralEquality", embedded: true, exported: false, typ: optionsThatSupportStructuralEquality, tag: ""}]); optionsThatSupportStructuralEquality.init("github.com/evanw/esbuild/internal/js_parser", [{prop: "originalTargetEnv", name: "originalTargetEnv", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "moduleTypeData", name: "moduleTypeData", embedded: false, exported: false, typ: js_ast.ModuleTypeData, tag: ""}, {prop: "unsupportedJSFeatures", name: "unsupportedJSFeatures", embedded: false, exported: false, typ: compat.JSFeature, tag: ""}, {prop: "unsupportedJSFeatureOverrides", name: "unsupportedJSFeatureOverrides", embedded: false, exported: false, typ: compat.JSFeature, tag: ""}, {prop: "unsupportedJSFeatureOverridesMask", name: "unsupportedJSFeatureOverridesMask", embedded: false, exported: false, typ: compat.JSFeature, tag: ""}, {prop: "ts", name: "ts", embedded: false, exported: false, typ: config.TSOptions, tag: ""}, {prop: "mode", name: "mode", embedded: false, exported: false, typ: config.Mode, tag: ""}, {prop: "platform", name: "platform", embedded: false, exported: false, typ: config.Platform, tag: ""}, {prop: "outputFormat", name: "outputFormat", embedded: false, exported: false, typ: config.Format, tag: ""}, {prop: "asciiOnly", name: "asciiOnly", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "keepNames", name: "keepNames", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "minifySyntax", name: "minifySyntax", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "minifyIdentifiers", name: "minifyIdentifiers", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "minifyWhitespace", name: "minifyWhitespace", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "omitRuntimeForTests", name: "omitRuntimeForTests", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "omitJSXRuntimeForTests", name: "omitJSXRuntimeForTests", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "ignoreDCEAnnotations", name: "ignoreDCEAnnotations", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "treeShaking", name: "treeShaking", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "dropDebugger", name: "dropDebugger", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "mangleQuoted", name: "mangleQuoted", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "decodeHydrateRuntimeStateYarnPnP", name: "decodeHydrateRuntimeStateYarnPnP", embedded: false, exported: false, typ: $Bool, tag: ""}]); tempRef.init("github.com/evanw/esbuild/internal/js_parser", [{prop: "valueOrNil", name: "valueOrNil", embedded: false, exported: false, typ: js_ast.Expr, tag: ""}, {prop: "ref", name: "ref", embedded: false, exported: false, typ: ast.Ref, tag: ""}]); scopeOrder.init("github.com/evanw/esbuild/internal/js_parser", [{prop: "scope", name: "scope", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "loc", name: "loc", embedded: false, exported: false, typ: logger.Loc, tag: ""}]); @@ -186905,13 +188148,13 @@ $packages["github.com/evanw/esbuild/internal/js_parser"] = (function() { deferredDecorators.init("github.com/evanw/esbuild/internal/js_parser", [{prop: "decorators", name: "decorators", embedded: false, exported: false, typ: sliceType$11, tag: ""}]); parseStmtOpts.init("github.com/evanw/esbuild/internal/js_parser", [{prop: "deferredDecorators", name: "deferredDecorators", embedded: false, exported: false, typ: ptrType$5, tag: ""}, {prop: "lexicalDecl", name: "lexicalDecl", embedded: false, exported: false, typ: lexicalDecl, tag: ""}, {prop: "isModuleScope", name: "isModuleScope", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "isNamespaceScope", name: "isNamespaceScope", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "isExport", name: "isExport", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "isExportDefault", name: "isExportDefault", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "isNameOptional", name: "isNameOptional", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "isTypeScriptDeclare", name: "isTypeScriptDeclare", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "isForLoopInit", name: "isForLoopInit", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "isForAwaitLoopInit", name: "isForAwaitLoopInit", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "allowDirectivePrologue", name: "allowDirectivePrologue", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "hasNoSideEffectsComment", name: "hasNoSideEffectsComment", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "isUsingStmt", name: "isUsingStmt", embedded: false, exported: false, typ: $Bool, tag: ""}]); findSymbolResult.init("github.com/evanw/esbuild/internal/js_parser", [{prop: "ref", name: "ref", embedded: false, exported: false, typ: ast.Ref, tag: ""}, {prop: "declareLoc", name: "declareLoc", embedded: false, exported: false, typ: logger.Loc, tag: ""}, {prop: "isInsideWithScope", name: "isInsideWithScope", embedded: false, exported: false, typ: $Bool, tag: ""}]); - prependTempRefsOpts.init("github.com/evanw/esbuild/internal/js_parser", [{prop: "fnBodyLoc", name: "fnBodyLoc", embedded: false, exported: false, typ: ptrType$76, tag: ""}, {prop: "kind", name: "kind", embedded: false, exported: false, typ: stmtsKind, tag: ""}]); + prependTempRefsOpts.init("github.com/evanw/esbuild/internal/js_parser", [{prop: "fnBodyLoc", name: "fnBodyLoc", embedded: false, exported: false, typ: ptrType$80, tag: ""}, {prop: "kind", name: "kind", embedded: false, exported: false, typ: stmtsKind, tag: ""}]); bindingOpts.init("github.com/evanw/esbuild/internal/js_parser", [{prop: "duplicateArgCheck", name: "duplicateArgCheck", embedded: false, exported: false, typ: mapType$27, tag: ""}]); visitClassResult.init("github.com/evanw/esbuild/internal/js_parser", [{prop: "bodyScope", name: "bodyScope", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "innerClassNameRef", name: "innerClassNameRef", embedded: false, exported: false, typ: ast.Ref, tag: ""}, {prop: "superCtorRef", name: "superCtorRef", embedded: false, exported: false, typ: ast.Ref, tag: ""}, {prop: "canBeRemovedIfUnused", name: "canBeRemovedIfUnused", embedded: false, exported: false, typ: $Bool, tag: ""}]); visitArgsOpts.init("github.com/evanw/esbuild/internal/js_parser", [{prop: "body", name: "body", embedded: false, exported: false, typ: sliceType$8, tag: ""}, {prop: "decoratorScope", name: "decoratorScope", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "hasRestArg", name: "hasRestArg", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "isUniqueFormalParameters", name: "isUniqueFormalParameters", embedded: false, exported: false, typ: $Bool, tag: ""}]); exprIn.init("github.com/evanw/esbuild/internal/js_parser", [{prop: "isMethod", name: "isMethod", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "isLoweredPrivateMethod", name: "isLoweredPrivateMethod", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "hasChainParent", name: "hasChainParent", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "storeThisArgForParentOptionalChain", name: "storeThisArgForParentOptionalChain", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "shouldMangleStringsAsProps", name: "shouldMangleStringsAsProps", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "assignTarget", name: "assignTarget", embedded: false, exported: false, typ: js_ast.AssignTarget, tag: ""}]); exprOut.init("github.com/evanw/esbuild/internal/js_parser", [{prop: "thisArgFunc", name: "thisArgFunc", embedded: false, exported: false, typ: funcType, tag: ""}, {prop: "thisArgWrapFunc", name: "thisArgWrapFunc", embedded: false, exported: false, typ: funcType$1, tag: ""}, {prop: "childContainsOptionalChain", name: "childContainsOptionalChain", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "callMustBeReplacedWithUndefined", name: "callMustBeReplacedWithUndefined", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "methodCallMustBeReplacedWithUndefined", name: "methodCallMustBeReplacedWithUndefined", embedded: false, exported: false, typ: $Bool, tag: ""}]); - binaryExprVisitor.init("github.com/evanw/esbuild/internal/js_parser", [{prop: "e", name: "e", embedded: false, exported: false, typ: ptrType$45, tag: ""}, {prop: "loc", name: "loc", embedded: false, exported: false, typ: logger.Loc, tag: ""}, {prop: "in$2", name: "in", embedded: false, exported: false, typ: exprIn, tag: ""}, {prop: "leftIn", name: "leftIn", embedded: false, exported: false, typ: exprIn, tag: ""}, {prop: "isStmtExpr", name: "isStmtExpr", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "oldSilenceWarningAboutThisBeingUndefined", name: "oldSilenceWarningAboutThisBeingUndefined", embedded: false, exported: false, typ: $Bool, tag: ""}]); + binaryExprVisitor.init("github.com/evanw/esbuild/internal/js_parser", [{prop: "e", name: "e", embedded: false, exported: false, typ: ptrType$47, tag: ""}, {prop: "loc", name: "loc", embedded: false, exported: false, typ: logger.Loc, tag: ""}, {prop: "in$2", name: "in", embedded: false, exported: false, typ: exprIn, tag: ""}, {prop: "leftIn", name: "leftIn", embedded: false, exported: false, typ: exprIn, tag: ""}, {prop: "isStmtExpr", name: "isStmtExpr", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "oldSilenceWarningAboutThisBeingUndefined", name: "oldSilenceWarningAboutThisBeingUndefined", embedded: false, exported: false, typ: $Bool, tag: ""}]); globPart.init("github.com/evanw/esbuild/internal/js_parser", [{prop: "text", name: "text", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "isWildcard", name: "isWildcard", embedded: false, exported: false, typ: $Bool, tag: ""}]); identifierOpts.init("github.com/evanw/esbuild/internal/js_parser", [{prop: "assignTarget", name: "assignTarget", embedded: false, exported: false, typ: js_ast.AssignTarget, tag: ""}, {prop: "isCallTarget", name: "isCallTarget", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "isDeleteTarget", name: "isDeleteTarget", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "preferQuotedKey", name: "preferQuotedKey", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "wasOriginallyIdentifier", name: "wasOriginallyIdentifier", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "matchAgainstDefines", name: "matchAgainstDefines", embedded: false, exported: false, typ: $Bool, tag: ""}]); visitFnOpts.init("github.com/evanw/esbuild/internal/js_parser", [{prop: "isMethod", name: "isMethod", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "isDerivedClassCtor", name: "isDerivedClassCtor", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "isLoweredPrivateMethod", name: "isLoweredPrivateMethod", embedded: false, exported: false, typ: $Bool, tag: ""}]); @@ -187458,7 +188701,7 @@ $packages["github.com/evanw/esbuild/internal/cache"] = (function() { return $pkg; })(); $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { - var $pkg = {}, $init, base64, errors, fmt, ast, cache, compat, config, fs, helpers, js_ast, js_lexer, js_parser, logger, url, path, regexp, sort, strings, sync, syscall, pnpData, pnpIdentAndReference, pnpPackage, pnpPackageLocatorByLocation, pnpStatus, pnpResult, pnpDataMode, TSConfigJSON, tsTargetKey, TSConfigPath, TSConfigPaths, PathPair, SideEffectsData, ResolveResult, suggestionRange, DebugMeta, Resolver, resolverQuery, debugLogs, flushMode, dirInfo, finalizeImportsExportsKind, packageJSON, mainField, browserPathKind, pjMap, pjKind, pjEntry, pjMapEntry, expansionKeysArray, pjStatus, pjDebug, esmReverseKind, DataURL, MIMEType, match, implicitExtensions, DeadCondition, sliceType, ptrType, sliceType$1, ptrType$1, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, sliceType$2, sliceType$3, sliceType$4, ptrType$11, ptrType$12, sliceType$5, ptrType$13, ptrType$14, ptrType$15, ptrType$16, ptrType$17, sliceType$6, sliceType$7, sliceType$8, sliceType$9, sliceType$10, ptrType$18, ptrType$19, ptrType$20, ptrType$21, ptrType$22, ptrType$23, ptrType$24, ptrType$25, ptrType$26, ptrType$27, sliceType$11, ptrType$28, ptrType$29, ptrType$30, ptrType$31, ptrType$32, ptrType$33, sliceType$12, sliceType$13, sliceType$14, ptrType$34, sliceType$15, sliceType$16, mapType, mapType$1, mapType$2, mapType$3, mapType$4, mapType$5, mapType$6, ptrType$35, sliceType$17, mapType$7, mapType$8, mapType$9, mapType$10, defaultMainFields, mainFieldsForFailure, errParseErrorImportCycle, errParseErrorAlreadyLogged, rewrittenFileExtensions, parseBareIdentifier, quoteOrNullIfEmpty, compileYarnPnPData, getStringOrNull, getDependencyTarget, ParseTSConfigJSON, getSubstitutedPathWithConfigDirTemplate, parseMemberExpressionForJSX, isValidTSConfigPathPattern, isSlash, isValidTSConfigPathNoBaseURLPattern, NewResolver, PrettyPath, getProperty, getString, getBool, hasCaseInsensitiveSuffix, IsPackagePath, globstarToEscapedRegexp, parseImportsExportsMap, findInvalidSegment, esmParsePackageName, ParseDataURL; + var $pkg = {}, $init, base64, errors, fmt, ast, cache, compat, config, fs, helpers, js_ast, js_lexer, js_parser, logger, url, path, regexp, sort, strings, sync, syscall, pnpData, pnpIdentAndReference, pnpPackage, pnpPackageLocatorByLocation, pnpStatus, pnpResult, pnpDataMode, TSConfigJSON, tsTargetKey, TSConfigPath, TSConfigPaths, PathPair, SideEffectsData, ResolveResult, suggestionRange, DebugMeta, Resolver, resolverQuery, debugLogs, flushMode, dirInfo, finalizeImportsExportsKind, packageJSON, mainField, browserPathKind, pjMap, pjKind, pjEntry, pjMapEntry, expansionKeysArray, pjStatus, pjDebug, esmReverseKind, DataURL, MIMEType, match, implicitExtensions, DeadCondition, sliceType, ptrType, sliceType$1, ptrType$1, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, sliceType$2, sliceType$3, sliceType$4, ptrType$11, ptrType$12, sliceType$5, ptrType$13, ptrType$14, ptrType$15, ptrType$16, ptrType$17, sliceType$6, sliceType$7, sliceType$8, sliceType$9, sliceType$10, ptrType$18, ptrType$19, ptrType$20, ptrType$21, ptrType$22, ptrType$23, ptrType$24, ptrType$25, ptrType$26, ptrType$27, ptrType$28, sliceType$11, ptrType$29, ptrType$30, ptrType$31, ptrType$32, ptrType$33, ptrType$34, sliceType$12, sliceType$13, sliceType$14, ptrType$35, sliceType$15, sliceType$16, mapType, mapType$1, mapType$2, mapType$3, mapType$4, mapType$5, mapType$6, ptrType$36, sliceType$17, mapType$7, mapType$8, mapType$9, mapType$10, defaultMainFields, mainFieldsForFailure, errParseErrorImportCycle, errParseErrorAlreadyLogged, rewrittenFileExtensions, parseBareIdentifier, quoteOrNullIfEmpty, compileYarnPnPData, getStringOrNull, getDependencyTarget, ParseTSConfigJSON, getSubstitutedPathWithConfigDirTemplate, parseMemberExpressionForJSX, isValidTSConfigPathPattern, isSlash, isValidTSConfigPathNoBaseURLPattern, NewResolver, PrettyPath, getProperty, getString, getBool, hasCaseInsensitiveSuffix, IsPackagePath, globstarToEscapedRegexp, parseImportsExportsMap, findInvalidSegment, esmParsePackageName, ParseDataURL; base64 = $packages["encoding/base64"]; errors = $packages["errors"]; fmt = $packages["fmt"]; @@ -187648,10 +188891,10 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { if (arguments.length === 0) { this.PathPair = new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false); this.PluginData = $ifaceNil; - this.DifferentCase = ptrType$21.nil; - this.PrimarySideEffectsData = ptrType$22.nil; + this.DifferentCase = ptrType$22.nil; + this.PrimarySideEffectsData = ptrType$23.nil; this.TSConfigJSX = new config.TSConfigJSX.ptr(sliceType.nil, sliceType.nil, ptrType$7.nil, 0); - this.TSConfig = ptrType$23.nil; + this.TSConfig = ptrType$24.nil; this.TSAlwaysStrict = ptrType$6.nil; this.ModuleTypeData = new js_ast.ModuleTypeData.ptr(ptrType$13.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0); return; @@ -187719,8 +188962,8 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { resolverQuery = $newType(0, $kindStruct, "resolver.resolverQuery", true, "github.com/evanw/esbuild/internal/resolver", false, function(Resolver_, debugMeta_, debugLogs_, kind_) { this.$val = this; if (arguments.length === 0) { - this.Resolver = ptrType$19.nil; - this.debugMeta = ptrType$20.nil; + this.Resolver = ptrType$20.nil; + this.debugMeta = ptrType$21.nil; this.debugLogs = ptrType.nil; this.kind = 0; return; @@ -187746,13 +188989,13 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { dirInfo = $newType(0, $kindStruct, "resolver.dirInfo", true, "github.com/evanw/esbuild/internal/resolver", false, function(parent_, enclosingBrowserScope_, absPath_, pnpManifestAbsPath_, entries_, packageJSON_, enclosingPackageJSON_, enclosingTSConfigJSON_, absRealPath_, isNodeModules_, hasNodeModules_, isInsideNodeModules_) { this.$val = this; if (arguments.length === 0) { - this.parent = ptrType$25.nil; - this.enclosingBrowserScope = ptrType$25.nil; + this.parent = ptrType$26.nil; + this.enclosingBrowserScope = ptrType$26.nil; this.absPath = ""; this.pnpManifestAbsPath = ""; - this.entries = new fs.DirEntries.ptr(false, ptrType$32.nil, ""); - this.packageJSON = ptrType$29.nil; - this.enclosingPackageJSON = ptrType$29.nil; + this.entries = new fs.DirEntries.ptr(false, ptrType$33.nil, ""); + this.packageJSON = ptrType$30.nil; + this.enclosingPackageJSON = ptrType$30.nil; this.enclosingTSConfigJSON = ptrType$9.nil; this.absRealPath = ""; this.isNodeModules = false; @@ -187784,9 +189027,9 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { this.browserMap = false; this.sideEffectsMap = false; this.sideEffectsRegexps = sliceType$12.nil; - this.sideEffectsData = ptrType$22.nil; - this.importsMap = ptrType$30.nil; - this.exportsMap = ptrType$30.nil; + this.sideEffectsData = ptrType$23.nil; + this.importsMap = ptrType$31.nil; + this.exportsMap = ptrType$31.nil; this.source = new logger.Source.ptr("", "", "", new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), 0); return; } @@ -187980,26 +189223,27 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { sliceType$9 = $sliceType(config.PathTemplate); sliceType$10 = $sliceType(config.Plugin); ptrType$18 = $ptrType(config.StdinInfo); - ptrType$19 = $ptrType(Resolver); - ptrType$20 = $ptrType(DebugMeta); - ptrType$21 = $ptrType(fs.DifferentCase); - ptrType$22 = $ptrType(SideEffectsData); - ptrType$23 = $ptrType(config.TSConfig); - ptrType$24 = $ptrType(ResolveResult); - ptrType$25 = $ptrType(dirInfo); - ptrType$26 = $ptrType(logger.Msg); - ptrType$27 = $ptrType(strings.Builder); + ptrType$19 = $ptrType(config.Options); + ptrType$20 = $ptrType(Resolver); + ptrType$21 = $ptrType(DebugMeta); + ptrType$22 = $ptrType(fs.DifferentCase); + ptrType$23 = $ptrType(SideEffectsData); + ptrType$24 = $ptrType(config.TSConfig); + ptrType$25 = $ptrType(ResolveResult); + ptrType$26 = $ptrType(dirInfo); + ptrType$27 = $ptrType(logger.Msg); + ptrType$28 = $ptrType(strings.Builder); sliceType$11 = $sliceType($Uint8); - ptrType$28 = $ptrType(fs.Entry); - ptrType$29 = $ptrType(packageJSON); - ptrType$30 = $ptrType(pjMap); - ptrType$31 = $ptrType(ptrType$5); - ptrType$32 = $ptrType(fs.accessedEntries); - ptrType$33 = $ptrType(js_ast.EBoolean); + ptrType$29 = $ptrType(fs.Entry); + ptrType$30 = $ptrType(packageJSON); + ptrType$31 = $ptrType(pjMap); + ptrType$32 = $ptrType(ptrType$5); + ptrType$33 = $ptrType(fs.accessedEntries); + ptrType$34 = $ptrType(js_ast.EBoolean); sliceType$12 = $sliceType(ptrType$1); sliceType$13 = $sliceType(pjEntry); sliceType$14 = $sliceType(pjMapEntry); - ptrType$34 = $ptrType(js_ast.ENumber); + ptrType$35 = $ptrType(js_ast.ENumber); sliceType$15 = $sliceType(logger.Range); sliceType$16 = $sliceType(logger.Span); mapType = $mapType($String, $Bool); @@ -188009,10 +189253,10 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { mapType$4 = $mapType($String, mapType$3); mapType$5 = $mapType($String, pnpPackageLocatorByLocation); mapType$6 = $mapType($String, sliceType$2); - ptrType$35 = $ptrType(PathPair); + ptrType$36 = $ptrType(PathPair); sliceType$17 = $sliceType(helpers.GlobPart); mapType$7 = $mapType($String, ResolveResult); - mapType$8 = $mapType($String, ptrType$25); + mapType$8 = $mapType($String, ptrType$26); mapType$9 = $mapType($String, mainField); mapType$10 = $mapType($String, ptrType$7); parseBareIdentifier = function parseBareIdentifier$1(specifier) { @@ -188842,7 +190086,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { _r$1 = extends$1(value$2, $clone(source[0].RangeOfString($clone(valueJSON.Loc, logger.Loc)), logger.Range)); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } base = _r$1; if (!(base === ptrType$9.nil)) { - result[0].applyExtendedConfig($clone(base, TSConfigJSON)); + result[0].applyExtendedConfig($clone((base === ptrType$9.nil && $throwNilPointerError(), base), TSConfigJSON)); } $s = 8; continue; /* } else { */ case 7: @@ -188866,7 +190110,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { _r$2 = extends$1(str, $clone(source[0].RangeOfString($clone(item.Loc, logger.Loc)), logger.Range)); /* */ $s = 16; case 16: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } base$1 = _r$2; if (!(base$1 === ptrType$9.nil)) { - result[0].applyExtendedConfig($clone(base$1, TSConfigJSON)); + result[0].applyExtendedConfig($clone((base$1 === ptrType$9.nil && $throwNilPointerError(), base$1), TSConfigJSON)); } /* } */ case 15: _i++; @@ -189514,7 +190758,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { } _r = fs$1.Cwd(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _r; - res = new Resolver.ptr(fs$1, $clone(log, logger.Log), caches, ptrType$9.nil, esmConditionsDefault, esmConditionsImport, esmConditionsRequire, cssExtensionOrder, nodeModulesExtensionOrder, new $global.Map(), false, ptrType$15.nil, $clone(options, config.Options), new sync.Mutex.ptr(0, 0)); + res = new Resolver.ptr(fs$1, $clone(log, logger.Log), caches, ptrType$9.nil, esmConditionsDefault, esmConditionsImport, esmConditionsRequire, cssExtensionOrder, nodeModulesExtensionOrder, new $global.Map(), false, ptrType$15.nil, $clone((options === ptrType$19.nil && $throwNilPointerError(), options), config.Options), new sync.Mutex.ptr(0, 0)); debugMeta[0] = new DebugMeta.ptr(sliceType$4.nil, "", "", 0, ""); /* */ if (!(options.TSConfigPath === "") || !(options.TSConfigRaw === "")) { $s = 2; continue; } /* */ $s = 3; continue; @@ -189687,7 +190931,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { /* } */ case 27: /* } */ case 24: $r = $clone(r, resolverQuery).flushDebugLogs(1); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return [new ResolveResult.ptr($clone(new PathPair.ptr($clone(new logger.Path.ptr(importPath, "", "", new logger.ImportAttributes.ptr(""), 0), logger.Path), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), true), PathPair), $ifaceNil, ptrType$21.nil, ptrType$22.nil, new config.TSConfigJSX.ptr(sliceType.nil, sliceType.nil, ptrType$7.nil, 0), ptrType$23.nil, ptrType$6.nil, new js_ast.ModuleTypeData.ptr(ptrType$13.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0)), debugMeta[0]]; + $s = -1; return [new ResolveResult.ptr($clone(new PathPair.ptr($clone(new logger.Path.ptr(importPath, "", "", new logger.ImportAttributes.ptr(""), 0), logger.Path), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), true), PathPair), $ifaceNil, ptrType$22.nil, ptrType$23.nil, new config.TSConfigJSX.ptr(sliceType.nil, sliceType.nil, ptrType$7.nil, 0), ptrType$24.nil, ptrType$6.nil, new js_ast.ModuleTypeData.ptr(ptrType$13.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0)), debugMeta[0]]; /* } */ case 22: _r$7 = $clone(r, resolverQuery).checkForBuiltInNodeModules(importPath); /* */ $s = 31; case 31: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _tuple = _r$7; @@ -189698,7 +190942,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { /* */ $s = 33; continue; /* if (ok) { */ case 32: $r = $clone(r, resolverQuery).flushDebugLogs(1); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return [new ResolveResult.ptr($clone(pathPair, PathPair), $ifaceNil, ptrType$21.nil, sideEffects, new config.TSConfigJSX.ptr(sliceType.nil, sliceType.nil, ptrType$7.nil, 0), ptrType$23.nil, ptrType$6.nil, new js_ast.ModuleTypeData.ptr(ptrType$13.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0)), debugMeta[0]]; + $s = -1; return [new ResolveResult.ptr($clone(pathPair, PathPair), $ifaceNil, ptrType$22.nil, sideEffects, new config.TSConfigJSX.ptr(sliceType.nil, sliceType.nil, ptrType$7.nil, 0), ptrType$24.nil, ptrType$6.nil, new js_ast.ModuleTypeData.ptr(ptrType$13.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0)), debugMeta[0]]; /* } */ case 33: _tuple$1 = ParseDataURL(importPath); parsed = $clone(_tuple$1[0], DataURL); @@ -189713,13 +190957,13 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { r.debugLogs.addNote("Putting this path in the \"dataurl\" namespace"); } $r = $clone(r, resolverQuery).flushDebugLogs(1); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return [new ResolveResult.ptr($clone(new PathPair.ptr($clone(new logger.Path.ptr(importPath, "dataurl", "", new logger.ImportAttributes.ptr(""), 0), logger.Path), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), PathPair), $ifaceNil, ptrType$21.nil, ptrType$22.nil, new config.TSConfigJSX.ptr(sliceType.nil, sliceType.nil, ptrType$7.nil, 0), ptrType$23.nil, ptrType$6.nil, new js_ast.ModuleTypeData.ptr(ptrType$13.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0)), debugMeta[0]]; + $s = -1; return [new ResolveResult.ptr($clone(new PathPair.ptr($clone(new logger.Path.ptr(importPath, "dataurl", "", new logger.ImportAttributes.ptr(""), 0), logger.Path), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), PathPair), $ifaceNil, ptrType$22.nil, ptrType$23.nil, new config.TSConfigJSX.ptr(sliceType.nil, sliceType.nil, ptrType$7.nil, 0), ptrType$24.nil, ptrType$6.nil, new js_ast.ModuleTypeData.ptr(ptrType$13.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0)), debugMeta[0]]; /* } */ case 38: if (!(r.debugLogs === ptrType.nil)) { r.debugLogs.addNote("Marking this data URL as external"); } $r = $clone(r, resolverQuery).flushDebugLogs(1); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return [new ResolveResult.ptr($clone(new PathPair.ptr($clone(new logger.Path.ptr(importPath, "", "", new logger.ImportAttributes.ptr(""), 0), logger.Path), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), true), PathPair), $ifaceNil, ptrType$21.nil, ptrType$22.nil, new config.TSConfigJSX.ptr(sliceType.nil, sliceType.nil, ptrType$7.nil, 0), ptrType$23.nil, ptrType$6.nil, new js_ast.ModuleTypeData.ptr(ptrType$13.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0)), debugMeta[0]]; + $s = -1; return [new ResolveResult.ptr($clone(new PathPair.ptr($clone(new logger.Path.ptr(importPath, "", "", new logger.ImportAttributes.ptr(""), 0), logger.Path), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), true), PathPair), $ifaceNil, ptrType$22.nil, ptrType$23.nil, new config.TSConfigJSX.ptr(sliceType.nil, sliceType.nil, ptrType$7.nil, 0), ptrType$24.nil, ptrType$6.nil, new js_ast.ModuleTypeData.ptr(ptrType$13.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0)), debugMeta[0]]; /* } */ case 36: /* */ if (sourceDir === "") { $s = 41; continue; } /* */ $s = 42; continue; @@ -189728,7 +190972,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { r.debugLogs.addNote("Cannot resolve this path without a directory"); } $r = $clone(r, resolverQuery).flushDebugLogs(0); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return [ptrType$24.nil, debugMeta[0]]; + $s = -1; return [ptrType$25.nil, debugMeta[0]]; /* } */ case 42: /* */ if (strings.ContainsRune(importPath, 42)) { $s = 44; continue; } /* */ $s = 45; continue; @@ -189737,7 +190981,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { r.debugLogs.addNote("Cannot resolve a path containing a wildcard character in a single-path context"); } $r = $clone(r, resolverQuery).flushDebugLogs(0); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return [ptrType$24.nil, debugMeta[0]]; + $s = -1; return [ptrType$25.nil, debugMeta[0]]; /* } */ case 45: $r = r.Resolver.mutex.Lock(); /* */ $s = 47; case 47: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $deferred.push([$methodVal(r.Resolver.mutex, "Unlock"), []]); @@ -189749,7 +190993,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { _r$9 = $clone(r, resolverQuery).dirInfoCached(_r$8); /* */ $s = 51; case 51: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } dirInfo$1 = _r$9; /* while (true) { */ case 52: - /* if (!(!(dirInfo$1 === ptrType$25.nil))) { break; } */ if(!(!(dirInfo$1 === ptrType$25.nil))) { $s = 53; continue; } + /* if (!(!(dirInfo$1 === ptrType$26.nil))) { break; } */ if(!(!(dirInfo$1 === ptrType$26.nil))) { $s = 53; continue; } absPath = dirInfo$1.pnpManifestAbsPath; /* */ if (!(absPath === "")) { $s = 54; continue; } /* */ $s = 55; continue; @@ -189801,23 +191045,23 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { /* } */ case 49: _r$16 = $clone(r, resolverQuery).dirInfoCached(sourceDir); /* */ $s = 69; case 69: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } sourceDirInfo = _r$16; - /* */ if (sourceDirInfo === ptrType$25.nil) { $s = 70; continue; } + /* */ if (sourceDirInfo === ptrType$26.nil) { $s = 70; continue; } /* */ $s = 71; continue; - /* if (sourceDirInfo === ptrType$25.nil) { */ case 70: - $24r = [ptrType$24.nil, debugMeta[0]]; + /* if (sourceDirInfo === ptrType$26.nil) { */ case 70: + $24r = [ptrType$25.nil, debugMeta[0]]; $s = 72; case 72: return $24r; /* } */ case 71: _r$17 = $clone(r, resolverQuery).resolveWithoutSymlinks(sourceDir, sourceDirInfo, importPath); /* */ $s = 73; case 73: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } result = _r$17; - /* */ if (result === ptrType$24.nil) { $s = 74; continue; } + /* */ if (result === ptrType$25.nil) { $s = 74; continue; } /* */ $s = 75; continue; - /* if (result === ptrType$24.nil) { */ case 74: + /* if (result === ptrType$25.nil) { */ case 74: suffix = strings.IndexAny(importPath, "?#"); /* */ if (suffix < 1) { $s = 76; continue; } /* */ $s = 77; continue; /* if (suffix < 1) { */ case 76: $r = $clone(r, resolverQuery).flushDebugLogs(0); /* */ $s = 78; case 78: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $24r$1 = [ptrType$24.nil, debugMeta[0]]; + $24r$1 = [ptrType$25.nil, debugMeta[0]]; $s = 79; case 79: return $24r$1; /* } */ case 77: /* */ if (!(r.debugLogs === ptrType.nil)) { $s = 80; continue; } @@ -189828,11 +191072,11 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { /* } */ case 81: _r$19 = $clone(r, resolverQuery).resolveWithoutSymlinks(sourceDir, sourceDirInfo, $substring(importPath, 0, suffix)); /* */ $s = 84; case 84: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } result2 = _r$19; - /* */ if (result2 === ptrType$24.nil) { $s = 85; continue; } + /* */ if (result2 === ptrType$25.nil) { $s = 85; continue; } /* */ $s = 86; continue; - /* if (result2 === ptrType$24.nil) { */ case 85: + /* if (result2 === ptrType$25.nil) { */ case 85: $r = $clone(r, resolverQuery).flushDebugLogs(0); /* */ $s = 88; case 88: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $24r$2 = [ptrType$24.nil, debugMeta[0]]; + $24r$2 = [ptrType$25.nil, debugMeta[0]]; $s = 89; case 89: return $24r$2; /* } else { */ case 86: result = result2; @@ -189846,7 +191090,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { $r = $clone(r, resolverQuery).flushDebugLogs(1); /* */ $s = 91; case 91: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $24r$3 = [result, debugMeta[0]]; $s = 92; case 92: return $24r$3; - /* */ } return; } } catch(err) { $err = err; $s = -1; return [ptrType$24.nil, new DebugMeta.ptr(sliceType$4.nil, "", "", 0, "")]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Resolve, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _entry, _i, _key, _keys, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _size, _tuple, _tuple$1, _tuple$2, _tuple$3, absPath, debugMeta, dirInfo$1, importPath, isExplicitlyExternal, json, json$1, key, kind, longestKey, longestValue, ok, ok$1, parsed, pathPair, r, res, result, result2, sideEffects, source, source$1, sourceDir, sourceDirInfo, suffix, tail, value, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; return [ptrType$25.nil, new DebugMeta.ptr(sliceType$4.nil, "", "", 0, "")]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Resolve, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _entry, _i, _key, _keys, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _size, _tuple, _tuple$1, _tuple$2, _tuple$3, absPath, debugMeta, dirInfo$1, importPath, isExplicitlyExternal, json, json$1, key, kind, longestKey, longestValue, ok, ok$1, parsed, pathPair, r, res, result, result2, sideEffects, source, source$1, sourceDir, sourceDirInfo, suffix, tail, value, $s, $deferred};return $f; } } }; $ptrType(Resolver).prototype.ResolveGlob = function ResolveGlob(sourceDir, importPathPattern, kind, prettyPattern) { var {$24r, $24r$1, _1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, canMatchOnSlash, debugMeta, dirPrefix, firstPrefix, i, importPathPattern, kind, part, prefix, prettyPattern, r, re, res, results, sb, slash, sourceDir, sourceDirInfo, star, suffix, visit, warning, wasGlobStar, $s, $deferred, $r, $c} = $restore(this, {sourceDir, importPathPattern, kind, prettyPattern}); @@ -189874,7 +191118,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { r[0].debugLogs.addNote("Ignoring empty glob pattern"); } $r = $clone(r[0], resolverQuery).flushDebugLogs(0); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return [false, ptrType$26.nil]; + $s = -1; return [false, ptrType$27.nil]; /* } */ case 5: firstPrefix = (0 >= importPathPattern.$length ? ($throwRuntimeError("index out of range"), undefined) : importPathPattern.$array[importPathPattern.$offset + 0]).Prefix; /* */ if (!strings.HasPrefix(firstPrefix, "./") && !strings.HasPrefix(firstPrefix, "../") && !strings.HasPrefix(firstPrefix, ".\\") && !strings.HasPrefix(firstPrefix, "..\\")) { $s = 7; continue; } @@ -189895,7 +191139,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { r[0].debugLogs.addNote("Ignoring glob import that doesn't start with \"./\" or \"../\""); } $r = $clone(r[0], resolverQuery).flushDebugLogs(0); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return [false, ptrType$26.nil]; + $s = -1; return [false, ptrType$27.nil]; /* } */ case 11: /* } */ case 8: dirPrefix = 0; @@ -189925,9 +191169,9 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { $deferred.push([$methodVal(r[0].Resolver.mutex, "Unlock"), []]); _r$4 = $clone(r[0], resolverQuery).dirInfoCached(sourceDir); /* */ $s = 22; case 22: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } sourceDirInfo = _r$4; - /* */ if (sourceDirInfo === ptrType$25.nil) { $s = 23; continue; } + /* */ if (sourceDirInfo === ptrType$26.nil) { $s = 23; continue; } /* */ $s = 24; continue; - /* if (sourceDirInfo === ptrType$25.nil) { */ case 23: + /* if (sourceDirInfo === ptrType$26.nil) { */ case 23: /* */ if (!(r[0].debugLogs === ptrType.nil)) { $s = 25; continue; } /* */ $s = 26; continue; /* if (!(r[0].debugLogs === ptrType.nil)) { */ case 25: @@ -189935,12 +191179,12 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { $r = r[0].debugLogs.addNote(_r$5); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 26: $r = $clone(r[0], resolverQuery).flushDebugLogs(0); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $24r = [false, ptrType$26.nil]; + $24r = [false, ptrType$27.nil]; $s = 30; case 30: return $24r; /* } */ case 24: canMatchOnSlash[0] = false; wasGlobStar = false; - sb = new strings.Builder.ptr(ptrType$27.nil, sliceType$11.nil); + sb = new strings.Builder.ptr(ptrType$28.nil, sliceType$11.nil); sb.WriteByte(94); _ref = importPathPattern; _i = 0; @@ -190009,9 +191253,9 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { _r$13 = r[0].Resolver.fs.Join(new sliceType([dirInfo$1.absPath, key])); /* */ $s = 19; case 19: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } _r$14 = $clone(r[0], resolverQuery).dirInfoCached(_r$13); /* */ $s = 20; case 20: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } childDirInfo = _r$14; - /* */ if (!(childDirInfo === ptrType$25.nil)) { $s = 21; continue; } + /* */ if (!(childDirInfo === ptrType$26.nil)) { $s = 21; continue; } /* */ $s = 22; continue; - /* if (!(childDirInfo === ptrType$25.nil)) { */ case 21: + /* if (!(childDirInfo === ptrType$26.nil)) { */ case 21: _arg$1 = childDirInfo; _r$15 = fmt.Sprintf("%s%s/", new sliceType$1([new $String(dir), new $String(key)])); /* */ $s = 23; case 23: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } _arg$2 = _r$15; @@ -190025,7 +191269,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { /* */ if (_r$16) { $s = 25; continue; } /* */ $s = 26; continue; /* if (_r$16) { */ case 25: - result[0] = new ResolveResult.ptr(new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), $ifaceNil, ptrType$21.nil, ptrType$22.nil, new config.TSConfigJSX.ptr(sliceType.nil, sliceType.nil, ptrType$7.nil, 0), ptrType$23.nil, ptrType$6.nil, new js_ast.ModuleTypeData.ptr(ptrType$13.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0)); + result[0] = new ResolveResult.ptr(new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), $ifaceNil, ptrType$22.nil, ptrType$23.nil, new config.TSConfigJSX.ptr(sliceType.nil, sliceType.nil, ptrType$7.nil, 0), ptrType$24.nil, ptrType$6.nil, new js_ast.ModuleTypeData.ptr(ptrType$13.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0)); _r$17 = $clone(r[0], resolverQuery).isExternal($clone(r[0].Resolver.options.ExternalSettings.PreResolve, config.ExternalMatchers), relPath, kind[0]); /* */ $s = 31; case 31: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } /* */ if (_r$17) { $s = 28; continue; } /* */ $s = 29; continue; @@ -190058,7 +191302,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { /* */ } return; } var $f = {$blk: Resolver·ResolveGlob·func1, $c: true, $r, _2, _arg, _arg$1, _arg$2, _i$1, _key, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$7, _r$8, _r$9, _ref$1, _tuple, _v, absPath, childDirInfo, dir, dirInfo$1, entry, key, relPath, result, $s};return $f; }; })(canMatchOnSlash, debugMeta, kind, r, re, results, visit); $r = visit[0](sourceDirInfo, $substring(firstPrefix, 0, dirPrefix)); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - warning = ptrType$26.nil; + warning = ptrType$27.nil; /* */ if ((results[0] ? results[0].size : 0) === 0) { $s = 33; continue; } /* */ $s = 34; continue; /* if ((results[0] ? results[0].size : 0) === 0) { */ case 33: @@ -190068,7 +191312,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { $r = $clone(r[0], resolverQuery).flushDebugLogs(1); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $24r$1 = [results[0], warning]; $s = 37; case 37: return $24r$1; - /* */ } return; } } catch(err) { $err = err; $s = -1; return [false, ptrType$26.nil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: ResolveGlob, $c: true, $r, $24r, $24r$1, _1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, canMatchOnSlash, debugMeta, dirPrefix, firstPrefix, i, importPathPattern, kind, part, prefix, prettyPattern, r, re, res, results, sb, slash, sourceDir, sourceDirInfo, star, suffix, visit, warning, wasGlobStar, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; return [false, ptrType$27.nil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: ResolveGlob, $c: true, $r, $24r, $24r$1, _1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, canMatchOnSlash, debugMeta, dirPrefix, firstPrefix, i, importPathPattern, kind, part, prefix, prettyPattern, r, re, res, results, sb, slash, sourceDir, sourceDirInfo, star, suffix, visit, warning, wasGlobStar, $s, $deferred};return $f; } } }; $ptrType(resolverQuery).prototype.isExternal = function isExternal(matchers, path$1, kind) { var {_entry, _i, _r, _ref, _tuple, kind, matchers, ok, path$1, pattern, r, $s, $r, $c} = $restore(this, {matchers, path$1, kind}); @@ -190122,15 +191366,15 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { /* */ if (ok) { $s = 4; continue; } /* */ $s = 5; continue; /* if (ok) { */ case 4: - result = new ResolveResult.ptr($clone(pair, PathPair), $ifaceNil, diffCase, ptrType$22.nil, new config.TSConfigJSX.ptr(sliceType.nil, sliceType.nil, ptrType$7.nil, 0), ptrType$23.nil, ptrType$6.nil, new js_ast.ModuleTypeData.ptr(ptrType$13.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0)); + result = new ResolveResult.ptr($clone(pair, PathPair), $ifaceNil, diffCase, ptrType$23.nil, new config.TSConfigJSX.ptr(sliceType.nil, sliceType.nil, ptrType$7.nil, 0), ptrType$24.nil, ptrType$6.nil, new js_ast.ModuleTypeData.ptr(ptrType$13.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0)); $r = $clone(r, resolverQuery).finalizeResolve(result); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = $clone(r, resolverQuery).flushDebugLogs(1); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $24r = [result, debugMeta[0]]; $s = 8; case 8: return $24r; /* } */ case 5: - $24r$1 = [ptrType$24.nil, debugMeta[0]]; + $24r$1 = [ptrType$25.nil, debugMeta[0]]; $s = 9; case 9: return $24r$1; - /* */ } return; } } catch(err) { $err = err; $s = -1; return [ptrType$24.nil, new DebugMeta.ptr(sliceType$4.nil, "", "", 0, "")]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: ProbeResolvePackageAsRelative, $c: true, $r, $24r, $24r$1, _r, _r$1, _tuple, absPath, debugMeta, diffCase, importPath, kind, ok, pair, r, res, result, sourceDir, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; return [ptrType$25.nil, new DebugMeta.ptr(sliceType$4.nil, "", "", 0, "")]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: ProbeResolvePackageAsRelative, $c: true, $r, $24r, $24r$1, _r, _r$1, _tuple, absPath, debugMeta, diffCase, importPath, kind, ok, pair, r, res, result, sourceDir, $s, $deferred};return $f; } } }; $ptrType(debugLogs).prototype.addNote = function addNote(text) { var d, text; @@ -190203,7 +191447,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { _r$2 = r.Resolver.fs.Dir(path$1.Text); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _r$3 = $clone(r, resolverQuery).dirInfoCached(_r$2); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } dirInfo$1 = _r$3; - if (dirInfo$1 === ptrType$25.nil) { + if (dirInfo$1 === ptrType$26.nil) { _i++; /* continue; */ $s = 10; continue; } @@ -190215,9 +191459,9 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { _r$5 = $clone(dirInfo$1.entries, fs.DirEntries).Get(base); /* */ $s = 17; case 17: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _tuple = _r$5; entry = _tuple[0]; - /* */ if (!(entry === ptrType$28.nil)) { $s = 18; continue; } + /* */ if (!(entry === ptrType$29.nil)) { $s = 18; continue; } /* */ $s = 19; continue; - /* if (!(entry === ptrType$28.nil)) { */ case 18: + /* if (!(entry === ptrType$29.nil)) { */ case 18: _r$6 = entry.Symlink(r.Resolver.fs); /* */ $s = 20; case 20: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } symlink = _r$6; /* */ if (!(symlink === "")) { $s = 21; continue; } @@ -190242,7 +191486,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { _r$9 = r.Resolver.fs.Dir(path$1.Text); /* */ $s = 31; case 31: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } _r$10 = $clone(r, resolverQuery).dirInfoCached(_r$9); /* */ $s = 32; case 32: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } dirInfo$1 = _r$10; - if (dirInfo$1 === ptrType$25.nil) { + if (dirInfo$1 === ptrType$26.nil) { _i++; /* continue; */ $s = 10; continue; } @@ -190260,9 +191504,9 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { /* continue; */ $s = 10; continue; } pkgJSON = dirInfo$1.enclosingPackageJSON; - /* */ if (!(pkgJSON === ptrType$29.nil)) { $s = 34; continue; } + /* */ if (!(pkgJSON === ptrType$30.nil)) { $s = 34; continue; } /* */ $s = 35; continue; - /* if (!(pkgJSON === ptrType$29.nil)) { */ case 34: + /* if (!(pkgJSON === ptrType$30.nil)) { */ case 34: /* */ if (!(pkgJSON.sideEffectsMap === false)) { $s = 36; continue; } /* */ $s = 37; continue; /* if (!(pkgJSON.sideEffectsMap === false)) { */ case 36: @@ -190355,7 +191599,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: result = [result]; r = this; - result[0] = new ResolveResult.ptr(new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), $ifaceNil, ptrType$21.nil, ptrType$22.nil, new config.TSConfigJSX.ptr(sliceType.nil, sliceType.nil, ptrType$7.nil, 0), ptrType$23.nil, ptrType$6.nil, new js_ast.ModuleTypeData.ptr(ptrType$13.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0)); + result[0] = new ResolveResult.ptr(new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), $ifaceNil, ptrType$22.nil, ptrType$23.nil, new config.TSConfigJSX.ptr(sliceType.nil, sliceType.nil, ptrType$7.nil, 0), ptrType$24.nil, ptrType$6.nil, new js_ast.ModuleTypeData.ptr(ptrType$13.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0)); if (strings.HasPrefix(importPath, "/")) { _v = true; $s = 3; continue s; } _r = r.Resolver.fs.IsAbs(importPath); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _v = _r; case 3: @@ -190378,7 +191622,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { ok = _tuple[1]; diffCase = _tuple[2]; if (ok) { - $s = -1; return new ResolveResult.ptr($clone(absolute, PathPair), $ifaceNil, diffCase, ptrType$22.nil, new config.TSConfigJSX.ptr(sliceType.nil, sliceType.nil, ptrType$7.nil, 0), ptrType$23.nil, ptrType$6.nil, new js_ast.ModuleTypeData.ptr(ptrType$13.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0)); + $s = -1; return new ResolveResult.ptr($clone(absolute, PathPair), $ifaceNil, diffCase, ptrType$23.nil, new config.TSConfigJSX.ptr(sliceType.nil, sliceType.nil, ptrType$7.nil, 0), ptrType$24.nil, ptrType$6.nil, new js_ast.ModuleTypeData.ptr(ptrType$13.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0)); } /* } */ case 10: _r$3 = $clone(r, resolverQuery).loadAsFileOrDirectory(importPath); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } @@ -190387,9 +191631,9 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { ok$1 = _tuple$1[1]; diffCase$1 = _tuple$1[2]; if (ok$1) { - $s = -1; return new ResolveResult.ptr($clone(absolute$1, PathPair), $ifaceNil, diffCase$1, ptrType$22.nil, new config.TSConfigJSX.ptr(sliceType.nil, sliceType.nil, ptrType$7.nil, 0), ptrType$23.nil, ptrType$6.nil, new js_ast.ModuleTypeData.ptr(ptrType$13.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0)); + $s = -1; return new ResolveResult.ptr($clone(absolute$1, PathPair), $ifaceNil, diffCase$1, ptrType$23.nil, new config.TSConfigJSX.ptr(sliceType.nil, sliceType.nil, ptrType$7.nil, 0), ptrType$24.nil, ptrType$6.nil, new js_ast.ModuleTypeData.ptr(ptrType$13.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0)); } else { - $s = -1; return ptrType$24.nil; + $s = -1; return ptrType$25.nil; } /* } */ case 2: isPackagePath = IsPackagePath(importPath); @@ -190410,7 +191654,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { _r$6 = fmt.Sprintf("The path %q was marked as external by the user", new sliceType$1([new $String(absPath)])); /* */ $s = 21; case 21: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } $r = r.debugLogs.addNote(_r$6); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 20: - $s = -1; return new ResolveResult.ptr($clone(new PathPair.ptr($clone(new logger.Path.ptr(absPath, "file", "", new logger.ImportAttributes.ptr(""), 0), logger.Path), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), true), PathPair), $ifaceNil, ptrType$21.nil, ptrType$22.nil, new config.TSConfigJSX.ptr(sliceType.nil, sliceType.nil, ptrType$7.nil, 0), ptrType$23.nil, ptrType$6.nil, new js_ast.ModuleTypeData.ptr(ptrType$13.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0)); + $s = -1; return new ResolveResult.ptr($clone(new PathPair.ptr($clone(new logger.Path.ptr(absPath, "file", "", new logger.ImportAttributes.ptr(""), 0), logger.Path), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), true), PathPair), $ifaceNil, ptrType$22.nil, ptrType$23.nil, new config.TSConfigJSX.ptr(sliceType.nil, sliceType.nil, ptrType$7.nil, 0), ptrType$24.nil, ptrType$6.nil, new js_ast.ModuleTypeData.ptr(ptrType$13.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0)); /* } */ case 17: hasTrailingSlash = importPath === "." || importPath === ".." || strings.HasSuffix(importPath, "/") || strings.HasSuffix(importPath, "/.") || strings.HasSuffix(importPath, "/.."); /* */ if (hasTrailingSlash) { $s = 23; continue; } @@ -190423,18 +191667,18 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { diffCase$2 = _tuple$2[2]; if (ok$2) { checkPackage = false; - ResolveResult.copy(result[0], new ResolveResult.ptr($clone(absolute$2, PathPair), $ifaceNil, diffCase$2, ptrType$22.nil, new config.TSConfigJSX.ptr(sliceType.nil, sliceType.nil, ptrType$7.nil, 0), ptrType$23.nil, ptrType$6.nil, new js_ast.ModuleTypeData.ptr(ptrType$13.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0))); + ResolveResult.copy(result[0], new ResolveResult.ptr($clone(absolute$2, PathPair), $ifaceNil, diffCase$2, ptrType$23.nil, new config.TSConfigJSX.ptr(sliceType.nil, sliceType.nil, ptrType$7.nil, 0), ptrType$24.nil, ptrType$6.nil, new js_ast.ModuleTypeData.ptr(ptrType$13.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0))); } else if (!checkPackage) { - $s = -1; return ptrType$24.nil; + $s = -1; return ptrType$25.nil; } $s = 25; continue; /* } else { */ case 24: _r$8 = r.Resolver.fs.Dir(absPath); /* */ $s = 27; case 27: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } _r$9 = $clone(r, resolverQuery).dirInfoCached(_r$8); /* */ $s = 28; case 28: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } importDirInfo = _r$9; - /* */ if (!(importDirInfo === ptrType$25.nil)) { $s = 29; continue; } + /* */ if (!(importDirInfo === ptrType$26.nil)) { $s = 29; continue; } /* */ $s = 30; continue; - /* if (!(importDirInfo === ptrType$25.nil)) { */ case 29: + /* if (!(importDirInfo === ptrType$26.nil)) { */ case 29: _r$10 = $clone(r, resolverQuery).checkBrowserMap(importDirInfo, absPath, 0); /* */ $s = 31; case 31: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } _tuple$3 = _r$10; remapped = _tuple$3[0]; @@ -190443,7 +191687,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { /* */ $s = 33; continue; /* if (ok$3) { */ case 32: if (remapped === ptrType$7.nil) { - $s = -1; return new ResolveResult.ptr($clone(new PathPair.ptr($clone(new logger.Path.ptr(absPath, "file", "", new logger.ImportAttributes.ptr(""), 1), logger.Path), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), PathPair), $ifaceNil, ptrType$21.nil, ptrType$22.nil, new config.TSConfigJSX.ptr(sliceType.nil, sliceType.nil, ptrType$7.nil, 0), ptrType$23.nil, ptrType$6.nil, new js_ast.ModuleTypeData.ptr(ptrType$13.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0)); + $s = -1; return new ResolveResult.ptr($clone(new PathPair.ptr($clone(new logger.Path.ptr(absPath, "file", "", new logger.ImportAttributes.ptr(""), 1), logger.Path), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), PathPair), $ifaceNil, ptrType$22.nil, ptrType$23.nil, new config.TSConfigJSX.ptr(sliceType.nil, sliceType.nil, ptrType$7.nil, 0), ptrType$24.nil, ptrType$6.nil, new js_ast.ModuleTypeData.ptr(ptrType$13.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0)); } _r$11 = $clone(r, resolverQuery).resolveWithoutRemapping(importDirInfo.enclosingBrowserScope, remapped.$get()); /* */ $s = 34; case 34: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } _tuple$4 = _r$11; @@ -190452,7 +191696,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { diffCase$3 = _tuple$4[2]; sideEffects = _tuple$4[3]; if (ok$4) { - ResolveResult.copy(result[0], new ResolveResult.ptr($clone(remappedResult, PathPair), $ifaceNil, diffCase$3, sideEffects, new config.TSConfigJSX.ptr(sliceType.nil, sliceType.nil, ptrType$7.nil, 0), ptrType$23.nil, ptrType$6.nil, new js_ast.ModuleTypeData.ptr(ptrType$13.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0))); + ResolveResult.copy(result[0], new ResolveResult.ptr($clone(remappedResult, PathPair), $ifaceNil, diffCase$3, sideEffects, new config.TSConfigJSX.ptr(sliceType.nil, sliceType.nil, ptrType$7.nil, 0), ptrType$24.nil, ptrType$6.nil, new js_ast.ModuleTypeData.ptr(ptrType$13.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0))); checkRelative = false; checkPackage = false; } @@ -190468,9 +191712,9 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { diffCase$4 = _tuple$5[2]; if (ok$5) { checkPackage = false; - ResolveResult.copy(result[0], new ResolveResult.ptr($clone(absolute$3, PathPair), $ifaceNil, diffCase$4, ptrType$22.nil, new config.TSConfigJSX.ptr(sliceType.nil, sliceType.nil, ptrType$7.nil, 0), ptrType$23.nil, ptrType$6.nil, new js_ast.ModuleTypeData.ptr(ptrType$13.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0))); + ResolveResult.copy(result[0], new ResolveResult.ptr($clone(absolute$3, PathPair), $ifaceNil, diffCase$4, ptrType$23.nil, new config.TSConfigJSX.ptr(sliceType.nil, sliceType.nil, ptrType$7.nil, 0), ptrType$24.nil, ptrType$6.nil, new js_ast.ModuleTypeData.ptr(ptrType$13.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0))); } else if (!checkPackage) { - $s = -1; return ptrType$24.nil; + $s = -1; return ptrType$25.nil; } /* } */ case 36: /* } */ case 25: @@ -190499,9 +191743,9 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { if (absolute$4.HasSecondary()) { logger.Path.copy(absolute$4.Secondary, new logger.Path.ptr(absolute$4.Secondary.Text, "file", "", new logger.ImportAttributes.ptr(""), 1)); } - $s = -1; return new ResolveResult.ptr($clone(absolute$4, PathPair), $ifaceNil, diffCase$5, sideEffects$1, new config.TSConfigJSX.ptr(sliceType.nil, sliceType.nil, ptrType$7.nil, 0), ptrType$23.nil, ptrType$6.nil, new js_ast.ModuleTypeData.ptr(ptrType$13.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0)); + $s = -1; return new ResolveResult.ptr($clone(absolute$4, PathPair), $ifaceNil, diffCase$5, sideEffects$1, new config.TSConfigJSX.ptr(sliceType.nil, sliceType.nil, ptrType$7.nil, 0), ptrType$24.nil, ptrType$6.nil, new js_ast.ModuleTypeData.ptr(ptrType$13.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0)); } else { - $s = -1; return new ResolveResult.ptr($clone(new PathPair.ptr($clone(new logger.Path.ptr(importPath, "", "", new logger.ImportAttributes.ptr(""), 1), logger.Path), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), PathPair), $ifaceNil, diffCase$5, ptrType$22.nil, new config.TSConfigJSX.ptr(sliceType.nil, sliceType.nil, ptrType$7.nil, 0), ptrType$23.nil, ptrType$6.nil, new js_ast.ModuleTypeData.ptr(ptrType$13.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0)); + $s = -1; return new ResolveResult.ptr($clone(new PathPair.ptr($clone(new logger.Path.ptr(importPath, "", "", new logger.ImportAttributes.ptr(""), 1), logger.Path), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), PathPair), $ifaceNil, diffCase$5, ptrType$23.nil, new config.TSConfigJSX.ptr(sliceType.nil, sliceType.nil, ptrType$7.nil, 0), ptrType$24.nil, ptrType$6.nil, new js_ast.ModuleTypeData.ptr(ptrType$13.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0)); } /* } */ case 44: importPath = remapped$1.$get(); @@ -190514,9 +191758,9 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { diffCase$6 = _tuple$8[2]; sideEffects$2 = _tuple$8[3]; if (ok$8) { - ResolveResult.copy(result[0], new ResolveResult.ptr($clone(absolute$5, PathPair), $ifaceNil, diffCase$6, sideEffects$2, new config.TSConfigJSX.ptr(sliceType.nil, sliceType.nil, ptrType$7.nil, 0), ptrType$23.nil, ptrType$6.nil, new js_ast.ModuleTypeData.ptr(ptrType$13.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0))); + ResolveResult.copy(result[0], new ResolveResult.ptr($clone(absolute$5, PathPair), $ifaceNil, diffCase$6, sideEffects$2, new config.TSConfigJSX.ptr(sliceType.nil, sliceType.nil, ptrType$7.nil, 0), ptrType$24.nil, ptrType$6.nil, new js_ast.ModuleTypeData.ptr(ptrType$13.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0))); } else { - $s = -1; return ptrType$24.nil; + $s = -1; return ptrType$25.nil; } /* } */ case 39: $s = -1; return result[0]; @@ -190540,9 +191784,9 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { absolute = $clone(_tuple[0], PathPair); ok = _tuple[1]; diffCase = _tuple[2]; - $s = -1; return [absolute, ok, diffCase, ptrType$22.nil]; + $s = -1; return [absolute, ok, diffCase, ptrType$23.nil]; /* } */ case 3: - $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$21.nil, ptrType$22.nil]; + $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$22.nil, ptrType$23.nil]; /* */ } return; } var $f = {$blk: resolveWithoutRemapping, $c: true, $r, $24r, _r, _r$1, _r$2, _tuple, absolute, diffCase, importPath, ok, r, sourceDirInfo, $s};return $f; }; resolverQuery.prototype.resolveWithoutRemapping = function(...$args) { return this.$val.resolveWithoutRemapping(...$args); }; @@ -190583,7 +191827,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { if (!(r.Resolver.tsConfigOverride === ptrType$9.nil)) { return r.Resolver.tsConfigOverride; } - if (!(dirInfo$1 === ptrType$25.nil)) { + if (!(dirInfo$1 === ptrType$26.nil)) { return dirInfo$1.enclosingTSConfigJSON; } return ptrType$9.nil; @@ -190593,25 +191837,25 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { var {_entry, _key, _key$1, _r, _r$1, _r$2, _tuple, cached, count, entries, ok, path$1, r, $s, $r, $c} = $restore(this, {path$1}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: r = this; - _tuple = (_entry = $mapIndex(r.Resolver.dirCache,$String.keyFor(path$1)), _entry !== undefined ? [_entry.v, true] : [ptrType$25.nil, false]); + _tuple = (_entry = $mapIndex(r.Resolver.dirCache,$String.keyFor(path$1)), _entry !== undefined ? [_entry.v, true] : [ptrType$26.nil, false]); cached = _tuple[0]; ok = _tuple[1]; /* */ if (!ok) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!ok) { */ case 1: - _key = path$1; (r.Resolver.dirCache || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: ptrType$25.nil }); + _key = path$1; (r.Resolver.dirCache || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: ptrType$26.nil }); _r = $clone(r, resolverQuery).dirInfoUncached(path$1); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } cached = _r; - if (!(cached === ptrType$25.nil)) { + if (!(cached === ptrType$26.nil)) { _key$1 = path$1; (r.Resolver.dirCache || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$1), { k: _key$1, v: cached }); } /* } */ case 2: /* */ if (!(r.debugLogs === ptrType.nil)) { $s = 4; continue; } /* */ $s = 5; continue; /* if (!(r.debugLogs === ptrType.nil)) { */ case 4: - /* */ if (cached === ptrType$25.nil) { $s = 6; continue; } + /* */ if (cached === ptrType$26.nil) { $s = 6; continue; } /* */ $s = 7; continue; - /* if (cached === ptrType$25.nil) { */ case 6: + /* if (cached === ptrType$26.nil) { */ case 6: _r$1 = fmt.Sprintf("Failed to read directory %q", new sliceType$1([new $String(path$1)])); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $r = r.debugLogs.addNote(_r$1); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 8; continue; @@ -190831,7 +192075,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { _r$13 = $clone(entries, fs.DirEntries).Get("package.json"); /* */ $s = 35; case 35: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } _tuple$5 = _r$13; entry = _tuple$5[0]; - if (!(!(entry === ptrType$28.nil))) { _v = false; $s = 38; continue s; } + if (!(!(entry === ptrType$29.nil))) { _v = false; $s = 38; continue s; } _r$14 = entry.Kind(r[0].Resolver.fs); /* */ $s = 39; case 39: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } _v = _r$14 === 2; case 38: /* */ if (_v) { $s = 36; continue; } @@ -190839,9 +192083,9 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { /* if (_v) { */ case 36: _r$15 = $clone(r[0], resolverQuery).parsePackageJSON(result.pkgDirPath); /* */ $s = 40; case 40: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } packageJSON$1 = _r$15; - /* */ if (!(packageJSON$1 === ptrType$29.nil) && !(packageJSON$1.exportsMap === ptrType$30.nil)) { $s = 41; continue; } + /* */ if (!(packageJSON$1 === ptrType$30.nil) && !(packageJSON$1.exportsMap === ptrType$31.nil)) { $s = 41; continue; } /* */ $s = 42; continue; - /* if (!(packageJSON$1 === ptrType$29.nil) && !(packageJSON$1.exportsMap === ptrType$30.nil)) { */ case 41: + /* if (!(packageJSON$1 === ptrType$30.nil) && !(packageJSON$1.exportsMap === ptrType$31.nil)) { */ case 41: _r$16 = $clone(r[0], resolverQuery).esmResolveAlgorithm(1, result.pkgIdent, "." + result.pkgSubpath, packageJSON$1, result.pkgDirPath, source[0].KeyPath.Text); /* */ $s = 43; case 43: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } _tuple$6 = _r$16; absolute = $clone(_tuple$6[0], PathPair); @@ -190908,9 +192152,9 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { /* if ($interfaceIsEqual(err$1, $ifaceNil)) { */ case 67: _r$27 = $clone(r[0], resolverQuery).parsePackageJSON(pkgDir); /* */ $s = 70; case 70: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } packageJSON$2 = _r$27; - /* */ if (!(packageJSON$2 === ptrType$29.nil)) { $s = 71; continue; } + /* */ if (!(packageJSON$2 === ptrType$30.nil)) { $s = 71; continue; } /* */ $s = 72; continue; - /* if (!(packageJSON$2 === ptrType$29.nil)) { */ case 71: + /* if (!(packageJSON$2 === ptrType$30.nil)) { */ case 71: /* */ if (!(packageJSON$2.tsconfig === "")) { $s = 73; continue; } /* */ $s = 74; continue; /* if (!(packageJSON$2.tsconfig === "")) { */ case 73: @@ -190923,9 +192167,9 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { join = _r$29; /* } */ case 76: /* } */ case 74: - /* */ if (!(packageJSON$2.exportsMap === ptrType$30.nil)) { $s = 79; continue; } + /* */ if (!(packageJSON$2.exportsMap === ptrType$31.nil)) { $s = 79; continue; } /* */ $s = 80; continue; - /* if (!(packageJSON$2.exportsMap === ptrType$30.nil)) { */ case 79: + /* if (!(packageJSON$2.exportsMap === ptrType$31.nil)) { */ case 79: /* */ if (!(r[0].debugLogs === ptrType.nil)) { $s = 81; continue; } /* */ $s = 82; continue; /* if (!(r[0].debugLogs === ptrType.nil)) { */ case 81: @@ -190998,7 +192242,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { _r$43 = $clone(entries$1, fs.DirEntries).Get(_r$42); /* */ $s = 106; case 106: if($c) { $c = false; _r$43 = _r$43.$blk(); } if (_r$43 && _r$43.$blk !== undefined) { break s; } _tuple$17 = _r$43; entry$1 = _tuple$17[0]; - if (!(!(entry$1 === ptrType$28.nil))) { _v$2 = false; $s = 109; continue s; } + if (!(!(entry$1 === ptrType$29.nil))) { _v$2 = false; $s = 109; continue s; } _r$44 = entry$1.Kind(r[0].Resolver.fs); /* */ $s = 110; case 110: if($c) { $c = false; _r$44 = _r$44.$blk(); } if (_r$44 && _r$44.$blk !== undefined) { break s; } _v$2 = _r$44 === 1; case 109: /* */ if (_v$2) { $s = 107; continue; } @@ -191061,7 +192305,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { _r$53 = $clone(entries$2, fs.DirEntries).Get(extendsBase); /* */ $s = 125; case 125: if($c) { $c = false; _r$53 = _r$53.$blk(); } if (_r$53 && _r$53.$blk !== undefined) { break s; } _tuple$21 = _r$53; entry$2 = _tuple$21[0]; - if (entry$2 === ptrType$28.nil) { _v$3 = true; $s = 128; continue s; } + if (entry$2 === ptrType$29.nil) { _v$3 = true; $s = 128; continue s; } _r$54 = entry$2.Kind(r[0].Resolver.fs); /* */ $s = 129; case 129: if($c) { $c = false; _r$54 = _r$54.$blk(); } if (_r$54 && _r$54.$blk !== undefined) { break s; } _v$3 = !((_r$54 === 2)); case 128: /* */ if (_v$3) { $s = 126; continue; } @@ -191070,7 +192314,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { _r$55 = $clone(entries$2, fs.DirEntries).Get(extendsBase + ".json"); /* */ $s = 130; case 130: if($c) { $c = false; _r$55 = _r$55.$blk(); } if (_r$55 && _r$55.$blk !== undefined) { break s; } _tuple$22 = _r$55; entry$3 = _tuple$22[0]; - if (!(!(entry$3 === ptrType$28.nil))) { _v$4 = false; $s = 133; continue s; } + if (!(!(entry$3 === ptrType$29.nil))) { _v$4 = false; $s = 133; continue s; } _r$56 = entry$3.Kind(r[0].Resolver.fs); /* */ $s = 134; case 134: if($c) { $c = false; _r$56 = _r$56.$blk(); } if (_r$56 && _r$56.$blk !== undefined) { break s; } _v$4 = _r$56 === 2; case 133: /* */ if (_v$4) { $s = 131; continue; } @@ -191138,7 +192382,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { /* while (true) { */ case 7: /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 8; continue; } path$1 = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), TSConfigPath); - _r$2 = isValidTSConfigPathNoBaseURLPattern(path$1.Text, $clone(r[0].Resolver.log, logger.Log), result.Paths.Source, (tracker$1.$ptr || (tracker$1.$ptr = new ptrType$31(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, tracker$1))), $clone(path$1.Loc, logger.Loc)); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2 = isValidTSConfigPathNoBaseURLPattern(path$1.Text, $clone(r[0].Resolver.log, logger.Log), result.Paths.Source, (tracker$1.$ptr || (tracker$1.$ptr = new ptrType$32(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, tracker$1))), $clone(path$1.Loc, logger.Loc)); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } /* */ if (_r$2) { $s = 9; continue; } /* */ $s = 10; continue; /* if (_r$2) { */ case 9: @@ -191163,7 +192407,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { var {_arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$16, _arg$17, _arg$18, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$10, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, _v$2, _v$3, _v$4, _v$5, base, entries, entry, entry$1, entry$2, entry$3, entry$4, err, err$1, info, ok, originalError, parentDir, parentInfo, path$1, pnp, pnp$1, pnp$2, r, symlink, symlink$1, tsConfigPath, $s, $r, $c} = $restore(this, {path$1}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: r = this; - parentInfo = ptrType$25.nil; + parentInfo = ptrType$26.nil; _r = r.Resolver.fs.Dir(path$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } parentDir = _r; /* */ if (!(parentDir === path$1)) { $s = 2; continue; } @@ -191171,8 +192415,8 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { /* if (!(parentDir === path$1)) { */ case 2: _r$1 = $clone(r, resolverQuery).dirInfoCached(parentDir); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } parentInfo = _r$1; - if (parentInfo === ptrType$25.nil) { - $s = -1; return ptrType$25.nil; + if (parentInfo === ptrType$26.nil) { + $s = -1; return ptrType$26.nil; } /* } */ case 3: _r$2 = r.Resolver.fs.ReadDirectory(path$1); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } @@ -191209,9 +192453,9 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { _arg$6 = _r$7; $r = $clone(r.Resolver.log, logger.Log).AddError(_arg$2, _arg$3, _arg$6); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 14: - $s = -1; return ptrType$25.nil; + $s = -1; return ptrType$26.nil; /* } */ case 12: - info = new dirInfo.ptr(parentInfo, ptrType$25.nil, path$1, "", $clone(entries, fs.DirEntries), ptrType$29.nil, ptrType$29.nil, ptrType$9.nil, "", false, false, false); + info = new dirInfo.ptr(parentInfo, ptrType$26.nil, path$1, "", $clone(entries, fs.DirEntries), ptrType$30.nil, ptrType$30.nil, ptrType$9.nil, "", false, false, false); _r$8 = r.Resolver.fs.Base(path$1); /* */ $s = 19; case 19: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } base = _r$8; /* */ if (base === "node_modules") { $s = 20; continue; } @@ -191224,16 +192468,16 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { _r$9 = $clone(entries, fs.DirEntries).Get("node_modules"); /* */ $s = 23; case 23: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } _tuple$1 = _r$9; entry = _tuple$1[0]; - /* */ if (!(entry === ptrType$28.nil)) { $s = 24; continue; } + /* */ if (!(entry === ptrType$29.nil)) { $s = 24; continue; } /* */ $s = 25; continue; - /* if (!(entry === ptrType$28.nil)) { */ case 24: + /* if (!(entry === ptrType$29.nil)) { */ case 24: _r$10 = entry.Kind(r.Resolver.fs); /* */ $s = 26; case 26: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } info.hasNodeModules = _r$10 === 1; /* } */ case 25: /* } */ case 22: - /* */ if (!(parentInfo === ptrType$25.nil)) { $s = 27; continue; } + /* */ if (!(parentInfo === ptrType$26.nil)) { $s = 27; continue; } /* */ $s = 28; continue; - /* if (!(parentInfo === ptrType$25.nil)) { */ case 27: + /* if (!(parentInfo === ptrType$26.nil)) { */ case 27: info.enclosingPackageJSON = parentInfo.enclosingPackageJSON; info.enclosingBrowserScope = parentInfo.enclosingBrowserScope; info.enclosingTSConfigJSON = parentInfo.enclosingTSConfigJSON; @@ -191246,9 +192490,9 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { _r$11 = $clone(parentInfo.entries, fs.DirEntries).Get(base); /* */ $s = 31; case 31: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } _tuple$2 = _r$11; entry$1 = _tuple$2[0]; - /* */ if (!(entry$1 === ptrType$28.nil)) { $s = 32; continue; } + /* */ if (!(entry$1 === ptrType$29.nil)) { $s = 32; continue; } /* */ $s = 33; continue; - /* if (!(entry$1 === ptrType$28.nil)) { */ case 32: + /* if (!(entry$1 === ptrType$29.nil)) { */ case 32: _r$12 = entry$1.Symlink(r.Resolver.fs); /* */ $s = 34; case 34: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } symlink = _r$12; /* */ if (!(symlink === "")) { $s = 35; continue; } @@ -191280,7 +192524,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { _r$16 = $clone(entries, fs.DirEntries).Get("package.json"); /* */ $s = 47; case 47: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } _tuple$3 = _r$16; entry$2 = _tuple$3[0]; - if (!(!(entry$2 === ptrType$28.nil))) { _v = false; $s = 50; continue s; } + if (!(!(entry$2 === ptrType$29.nil))) { _v = false; $s = 50; continue s; } _r$17 = entry$2.Kind(r.Resolver.fs); /* */ $s = 51; case 51: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } _v = _r$17 === 2; case 50: /* */ if (_v) { $s = 48; continue; } @@ -191288,7 +192532,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { /* if (_v) { */ case 48: _r$18 = $clone(r, resolverQuery).parsePackageJSON(path$1); /* */ $s = 52; case 52: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } info.packageJSON = _r$18; - if (!(info.packageJSON === ptrType$29.nil)) { + if (!(info.packageJSON === ptrType$30.nil)) { info.enclosingPackageJSON = info.packageJSON; if (!(info.packageJSON.browserMap === false)) { info.enclosingBrowserScope = info; @@ -191302,7 +192546,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { _r$19 = $clone(entries, fs.DirEntries).Get("tsconfig.json"); /* */ $s = 55; case 55: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } _tuple$4 = _r$19; entry$3 = _tuple$4[0]; - if (!(!(entry$3 === ptrType$28.nil))) { _v$1 = false; $s = 59; continue s; } + if (!(!(entry$3 === ptrType$29.nil))) { _v$1 = false; $s = 59; continue s; } _r$20 = entry$3.Kind(r.Resolver.fs); /* */ $s = 60; case 60: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } _v$1 = _r$20 === 2; case 59: /* */ if (_v$1) { $s = 56; continue; } @@ -191315,7 +192559,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { _r$22 = $clone(entries, fs.DirEntries).Get("jsconfig.json"); /* */ $s = 62; case 62: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } _tuple$5 = _r$22; entry$4 = _tuple$5[0]; - if (!(!(entry$4 === ptrType$28.nil))) { _v$2 = false; $s = 65; continue s; } + if (!(!(entry$4 === ptrType$29.nil))) { _v$2 = false; $s = 65; continue s; } _r$23 = entry$4.Kind(r.Resolver.fs); /* */ $s = 66; case 66: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } _v$2 = _r$23 === 2; case 65: /* */ if (_v$2) { $s = 63; continue; } @@ -191377,7 +192621,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { _r$32 = $clone(entries, fs.DirEntries).Get(".pnp.data.json"); /* */ $s = 88; case 88: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } _tuple$8 = _r$32; pnp = _tuple$8[0]; - if (!(!(pnp === ptrType$28.nil))) { _v$3 = false; $s = 92; continue s; } + if (!(!(pnp === ptrType$29.nil))) { _v$3 = false; $s = 92; continue s; } _r$33 = pnp.Kind(r.Resolver.fs); /* */ $s = 93; case 93: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } _v$3 = _r$33 === 2; case 92: /* */ if (_v$3) { $s = 89; continue; } @@ -191390,7 +192634,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { _r$35 = $clone(entries, fs.DirEntries).Get(".pnp.cjs"); /* */ $s = 95; case 95: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } _tuple$9 = _r$35; pnp$1 = _tuple$9[0]; - if (!(!(pnp$1 === ptrType$28.nil))) { _v$4 = false; $s = 99; continue s; } + if (!(!(pnp$1 === ptrType$29.nil))) { _v$4 = false; $s = 99; continue s; } _r$36 = pnp$1.Kind(r.Resolver.fs); /* */ $s = 100; case 100: if($c) { $c = false; _r$36 = _r$36.$blk(); } if (_r$36 && _r$36.$blk !== undefined) { break s; } _v$4 = _r$36 === 2; case 99: /* */ if (_v$4) { $s = 96; continue; } @@ -191403,7 +192647,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { _r$38 = $clone(entries, fs.DirEntries).Get(".pnp.js"); /* */ $s = 102; case 102: if($c) { $c = false; _r$38 = _r$38.$blk(); } if (_r$38 && _r$38.$blk !== undefined) { break s; } _tuple$10 = _r$38; pnp$2 = _tuple$10[0]; - if (!(!(pnp$2 === ptrType$28.nil))) { _v$5 = false; $s = 105; continue s; } + if (!(!(pnp$2 === ptrType$29.nil))) { _v$5 = false; $s = 105; continue s; } _r$39 = pnp$2.Kind(r.Resolver.fs); /* */ $s = 106; case 106: if($c) { $c = false; _r$39 = _r$39.$blk(); } if (_r$39 && _r$39.$blk !== undefined) { break s; } _v$5 = _r$39 === 2; case 105: /* */ if (_v$5) { $s = 103; continue; } @@ -191467,7 +192711,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { _arg$6 = _r$7; $r = $clone(r[0].Resolver.log, logger.Log).AddError(_arg$2, _arg$3, _arg$6); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 15: - $s = -1; return ["", false, ptrType$21.nil]; + $s = -1; return ["", false, ptrType$22.nil]; /* } */ case 13: tryFile = (function(dirPath, entries, r) { return function resolverQuery·loadAsFile·func1(base) { var {$24r, _r$10, _r$11, _r$12, _r$8, _r$9, _tuple$1, _v, base, baseWithSuffix, diffCase, entry, $s, $r, $c} = $restore(this, {base}); @@ -191483,7 +192727,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { _tuple$1 = _r$9; entry = _tuple$1[0]; diffCase = _tuple$1[1]; - if (!(!(entry === ptrType$28.nil))) { _v = false; $s = 8; continue s; } + if (!(!(entry === ptrType$29.nil))) { _v = false; $s = 8; continue s; } _r$10 = entry.Kind(r[0].Resolver.fs); /* */ $s = 9; case 9: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } _v = _r$10 === 2; case 8: /* */ if (_v) { $s = 6; continue; } @@ -191499,7 +192743,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { $24r = [_r$12, true, diffCase]; $s = 15; case 15: return $24r; /* } */ case 7: - $s = -1; return ["", false, ptrType$21.nil]; + $s = -1; return ["", false, ptrType$22.nil]; /* */ } return; } var $f = {$blk: resolverQuery·loadAsFile·func1, $c: true, $r, $24r, _r$10, _r$11, _r$12, _r$8, _r$9, _tuple$1, _v, base, baseWithSuffix, diffCase, entry, $s};return $f; }; })(dirPath, entries, r); _r$8 = r[0].Resolver.fs.Base(path$1); /* */ $s = 20; case 20: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } @@ -191571,8 +192815,8 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { _r$12 = fmt.Sprintf("Failed to find file %q", new sliceType$1([new $String(base)])); /* */ $s = 32; case 32: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } $r = r[0].debugLogs.addNote(_r$12); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 31: - $s = -1; return ["", false, ptrType$21.nil]; - /* */ } return; } } catch(err) { $err = err; $s = -1; return ["", false, ptrType$21.nil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: loadAsFile, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _entry, _i, _i$1, _i$2, _key, _keys, _r, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _size, _tuple, _tuple$1, _tuple$2, _tuple$3, absolute, absolute$1, absolute$2, base, diffCase, diffCase$1, diffCase$2, dirPath, entries, err, ext, ext$1, extensionOrder, exts, lastDot, ok, ok$1, ok$2, old, originalError, path$1, r, tryFile, $s, $deferred};return $f; } } + $s = -1; return ["", false, ptrType$22.nil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ["", false, ptrType$22.nil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: loadAsFile, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _entry, _i, _i$1, _i$2, _key, _keys, _r, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _size, _tuple, _tuple$1, _tuple$2, _tuple$3, absolute, absolute$1, absolute$2, base, diffCase, diffCase$1, diffCase$2, dirPath, entries, err, ext, ext$1, extensionOrder, exts, lastDot, ok, ok$1, ok$2, old, originalError, path$1, r, tryFile, $s, $deferred};return $f; } } }; resolverQuery.prototype.loadAsFile = function(...$args) { return this.$val.loadAsFile(...$args); }; $ptrType(resolverQuery).prototype.loadAsIndex = function loadAsIndex(dirInfo$1, extensionOrder) { @@ -191589,7 +192833,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { _tuple = _r; entry = _tuple[0]; diffCase = _tuple[1]; - if (!(!(entry === ptrType$28.nil))) { _v = false; $s = 6; continue s; } + if (!(!(entry === ptrType$29.nil))) { _v = false; $s = 6; continue s; } _r$1 = entry.Kind(r.Resolver.fs); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _v = _r$1 === 2; case 6: /* */ if (_v) { $s = 4; continue; } @@ -191618,7 +192862,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { _i++; $s = 1; continue; case 2: - $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$21.nil]; + $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$22.nil]; /* */ } return; } var $f = {$blk: loadAsIndex, $c: true, $r, $24r, _arg, _arg$1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _tuple, _v, base, diffCase, dirInfo$1, entry, ext, extensionOrder, r, $s};return $f; }; resolverQuery.prototype.loadAsIndex = function(...$args) { return this.$val.loadAsIndex(...$args); }; @@ -191636,7 +192880,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { /* */ $s = 4; continue; /* if (ok) { */ case 3: if (remapped === ptrType$7.nil) { - $s = -1; return [new PathPair.ptr($clone(new logger.Path.ptr(absPath, "file", "", new logger.ImportAttributes.ptr(""), 1), logger.Path), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), true, ptrType$21.nil]; + $s = -1; return [new PathPair.ptr($clone(new logger.Path.ptr(absPath, "file", "", new logger.ImportAttributes.ptr(""), 1), logger.Path), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), true, ptrType$22.nil]; } _r$2 = r.Resolver.fs.Join(new sliceType([path$1, remapped.$get()])); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } remappedAbs = _r$2; @@ -191650,18 +192894,18 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { } _r$4 = $clone(r, resolverQuery).dirInfoCached(remappedAbs); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } fieldDirInfo = _r$4; - /* */ if (!(fieldDirInfo === ptrType$25.nil)) { $s = 8; continue; } + /* */ if (!(fieldDirInfo === ptrType$26.nil)) { $s = 8; continue; } /* */ $s = 9; continue; - /* if (!(fieldDirInfo === ptrType$25.nil)) { */ case 8: + /* if (!(fieldDirInfo === ptrType$26.nil)) { */ case 8: _r$5 = $clone(r, resolverQuery).loadAsIndex(fieldDirInfo, extensionOrder); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _tuple$2 = _r$5; absolute$1 = $clone(_tuple$2[0], PathPair); ok$2 = _tuple$2[1]; if (ok$2) { - $s = -1; return [absolute$1, true, ptrType$21.nil]; + $s = -1; return [absolute$1, true, ptrType$22.nil]; } /* } */ case 9: - $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$21.nil]; + $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$22.nil]; /* } */ case 4: _r$6 = $clone(r, resolverQuery).loadAsIndex(dirInfo$1, extensionOrder); /* */ $s = 11; case 11: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } $24r = _r$6; @@ -191703,7 +192947,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { }; getBool = function getBool$1(json) { var _tuple, json, ok, value; - _tuple = $assertType(json.Data, ptrType$33, true); + _tuple = $assertType(json.Data, ptrType$34, true); value = _tuple[0]; ok = _tuple[1]; if (ok) { @@ -191755,8 +192999,8 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { /* } */ case 2: _r$1 = $clone(r, resolverQuery).dirInfoCached(path$1); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } dirInfo$1 = _r$1; - if (dirInfo$1 === ptrType$25.nil) { - $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$21.nil]; + if (dirInfo$1 === ptrType$26.nil) { + $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$22.nil]; } _r$2 = $clone(r, resolverQuery).loadAsMainField(dirInfo$1, path$1, extensionOrder); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _tuple = _r$2; @@ -191774,8 +193018,8 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { if (ok$1) { $s = -1; return [absolute$1, true, diffCase$1]; } - $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$21.nil]; - /* */ } return; } } catch(err) { $err = err; $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$21.nil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: loadAsDirectory, $c: true, $r, _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, absolute, absolute$1, diffCase, diffCase$1, dirInfo$1, extensionOrder, ok, ok$1, path$1, r, $s, $deferred};return $f; } } + $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$22.nil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$22.nil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: loadAsDirectory, $c: true, $r, _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, absolute, absolute$1, diffCase, diffCase$1, dirInfo$1, extensionOrder, ok, ok$1, path$1, r, $s, $deferred};return $f; } } }; resolverQuery.prototype.loadAsDirectory = function(...$args) { return this.$val.loadAsDirectory(...$args); }; $ptrType(resolverQuery).prototype.loadAsMainField = function loadAsMainField(dirInfo$1, path$1, extensionOrder) { @@ -191786,8 +193030,8 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { path$1 = [path$1]; r = [r]; r[0] = this; - if (dirInfo$1[0].packageJSON === ptrType$29.nil) { - $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$21.nil]; + if (dirInfo$1[0].packageJSON === ptrType$30.nil) { + $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$22.nil]; } mainFieldValues = dirInfo$1[0].packageJSON.mainFields; mainFieldKeys = r[0].Resolver.options.MainFields; @@ -191817,7 +193061,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { /* */ $s = 8; continue; /* if (ok) { */ case 7: if (remapped === ptrType$7.nil) { - $s = -1; return [new PathPair.ptr($clone(new logger.Path.ptr(fieldAbsPath, "file", "", new logger.ImportAttributes.ptr(""), 1), logger.Path), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), true, ptrType$21.nil]; + $s = -1; return [new PathPair.ptr($clone(new logger.Path.ptr(fieldAbsPath, "file", "", new logger.ImportAttributes.ptr(""), 1), logger.Path), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), true, ptrType$22.nil]; } _r$3 = r[0].Resolver.fs.Join(new sliceType([path$1[0], remapped.$get()])); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } fieldAbsPath = _r$3; @@ -191832,19 +193076,19 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { } _r$5 = $clone(r[0], resolverQuery).dirInfoCached(fieldAbsPath); /* */ $s = 11; case 11: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } fieldDirInfo = _r$5; - /* */ if (!(fieldDirInfo === ptrType$25.nil)) { $s = 12; continue; } + /* */ if (!(fieldDirInfo === ptrType$26.nil)) { $s = 12; continue; } /* */ $s = 13; continue; - /* if (!(fieldDirInfo === ptrType$25.nil)) { */ case 12: + /* if (!(fieldDirInfo === ptrType$26.nil)) { */ case 12: _r$6 = $clone(r[0], resolverQuery).loadAsIndexWithBrowserRemapping(fieldDirInfo, fieldAbsPath, extensionOrder[0]); /* */ $s = 14; case 14: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _tuple$2 = _r$6; absolute$1 = $clone(_tuple$2[0], PathPair); ok$2 = _tuple$2[1]; if (ok$2) { - $s = -1; return [absolute$1, true, ptrType$21.nil]; + $s = -1; return [absolute$1, true, ptrType$22.nil]; } /* } */ case 13: - $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$21.nil]; - /* */ } return; } } catch(err) { $err = err; $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$21.nil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: resolverQuery·loadAsMainField·func1, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, _tuple$2, absolute, absolute$1, diffCase, field, fieldAbsPath, fieldDirInfo, fieldRelPath, ok, ok$1, ok$2, remapped, $s, $deferred};return $f; } } + $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$22.nil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$22.nil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: resolverQuery·loadAsMainField·func1, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, _tuple$2, absolute, absolute$1, diffCase, field, fieldAbsPath, fieldDirInfo, fieldRelPath, ok, ok$1, ok$2, remapped, $s, $deferred};return $f; } } }; })(dirInfo$1, extensionOrder, path$1, r); /* */ if (!(r[0].debugLogs === ptrType.nil)) { $s = 1; continue; } /* */ $s = 2; continue; @@ -191890,7 +193134,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { /* if (autoMain && key === "module") { */ case 14: absoluteMain = new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false); okMain = false; - diffCaseMain = ptrType$21.nil; + diffCaseMain = ptrType$22.nil; _tuple$2 = (_entry$2 = $mapIndex(mainFieldValues,$String.keyFor("main")), _entry$2 !== undefined ? [_entry$2.v, true] : [new mainField.ptr("", new logger.Loc.ptr(0)), false]); main = $clone(_tuple$2[0], mainField); ok$1 = _tuple$2[1]; @@ -191995,8 +193239,8 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { $s = 42; continue; case 43: /* } */ case 41: - $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$21.nil]; - /* */ } return; } } catch(err) { $err = err; $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$21.nil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: loadAsMainField, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _entry, _entry$1, _entry$2, _entry$3, _i, _i$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, absolute, absolute$1, absolute$2, absoluteMain, autoMain, diffCase, diffCase$1, diffCase$2, diffCaseMain, dirInfo$1, extensionOrder, field, foundSomething, key, keyRange, loadMainField, main, main$1, mainFieldKeys, mainFieldValues, ok, ok$1, ok$2, ok$3, ok$4, okMain, path$1, r, tracker, value, $s, $deferred};return $f; } } + $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$22.nil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$22.nil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: loadAsMainField, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _entry, _entry$1, _entry$2, _entry$3, _i, _i$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, absolute, absolute$1, absolute$2, absoluteMain, autoMain, diffCase, diffCase$1, diffCase$2, diffCaseMain, dirInfo$1, extensionOrder, field, foundSomething, key, keyRange, loadMainField, main, main$1, mainFieldKeys, mainFieldValues, ok, ok$1, ok$2, ok$3, ok$4, okMain, path$1, r, tracker, value, $s, $deferred};return $f; } } }; resolverQuery.prototype.loadAsMainField = function(...$args) { return this.$val.loadAsMainField(...$args); }; hasCaseInsensitiveSuffix = function hasCaseInsensitiveSuffix$1(s, suffix) { @@ -192084,7 +193328,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { _i$1++; $s = 17; continue; case 18: - $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$21.nil]; + $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$22.nil]; /* } */ case 12: _i++; $s = 9; continue; @@ -192168,12 +193412,12 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { $s = 36; continue; case 37: /* } */ case 31: - $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$21.nil]; - /* */ } return; } } catch(err) { $err = err; $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$21.nil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: matchTSConfigPaths, $c: true, $r, _entry, _entry$1, _i, _i$1, _i$2, _i$3, _key, _key$1, _keys, _keys$1, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _size, _size$1, _tmp, _tmp$1, _tuple, _tuple$1, absBaseURL, absolute, absolute$1, absoluteOriginalPath, absoluteOriginalPath$1, diffCase, diffCase$1, key, key$1, longestMatch, longestMatchPrefixLength, longestMatchSuffixLength, matchedText, ok, ok$1, originalPath, originalPath$1, originalPath$2, originalPaths, originalPaths$1, path$1, prefix, r, starIndex, suffix, tsConfigJSON, $s, $deferred};return $f; } } + $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$22.nil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$22.nil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: matchTSConfigPaths, $c: true, $r, _entry, _entry$1, _i, _i$1, _i$2, _i$3, _key, _key$1, _keys, _keys$1, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _size, _size$1, _tmp, _tmp$1, _tuple, _tuple$1, absBaseURL, absolute, absolute$1, absoluteOriginalPath, absoluteOriginalPath$1, diffCase, diffCase$1, key, key$1, longestMatch, longestMatchPrefixLength, longestMatchSuffixLength, matchedText, ok, ok$1, originalPath, originalPath$1, originalPath$2, originalPaths, originalPaths$1, path$1, prefix, r, starIndex, suffix, tsConfigJSON, $s, $deferred};return $f; } } }; resolverQuery.prototype.matchTSConfigPaths = function(...$args) { return this.$val.matchTSConfigPaths(...$args); }; $ptrType(resolverQuery).prototype.loadPackageImports = function loadPackageImports(importPath, dirInfoPackageJSON) { - var {_1, _arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, absolute, absolute$1, conditions, debug, diffCase, diffCase$1, dirInfoPackageJSON, importPath, ok, ok$1, ok$2, packageJSON$1, pathPair, r, resolvedPath, sideEffects, sideEffects$1, status, tracker, tracker$1, $s, $deferred, $r, $c} = $restore(this, {importPath, dirInfoPackageJSON}); + var {_1, _arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, absolute, absolute$1, conditions, debug, diffCase, diffCase$1, dirInfoPackageJSON, importPath, ok, ok$1, ok$2, packageJSON$1, pathPair, r, resolvedPath, sideEffects, sideEffects$1, status, tracker, tracker$1, x, $s, $deferred, $r, $c} = $restore(this, {importPath, dirInfoPackageJSON}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); r = this; packageJSON$1 = dirInfoPackageJSON.packageJSON; @@ -192200,7 +193444,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { _arg$1 = _r$2; _r$3 = tracker.MsgData(_arg, _arg$1); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } r.debugMeta.notes = $append(r.debugMeta.notes, _r$3); - $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$21.nil, ptrType$22.nil]; + $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$22.nil, ptrType$23.nil]; /* } */ case 6: conditions = r.Resolver.esmConditionsDefault; _1 = r.kind; @@ -192228,7 +193472,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { ok = _tuple$2[1]; sideEffects = _tuple$2[2]; if (ok) { - $s = -1; return [pathPair, true, ptrType$21.nil, sideEffects]; + $s = -1; return [pathPair, true, ptrType$22.nil, sideEffects]; } _r$7 = $clone(r, resolverQuery).loadNodeModules(resolvedPath, dirInfoPackageJSON, true); /* */ $s = 18; case 18: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _tuple$3 = _r$7; @@ -192248,17 +193492,17 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { /* } */ case 20: $s = -1; return [absolute, ok$1, diffCase, sideEffects$1]; /* } */ case 16: - _r$10 = $clone(r, resolverQuery).finalizeImportsExportsResult(0, dirInfoPackageJSON.absPath, conditions, $clone(packageJSON$1.importsMap, pjMap), packageJSON$1, resolvedPath, status, $clone(debug, pjDebug), "", "", ""); /* */ $s = 23; case 23: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$10 = $clone(r, resolverQuery).finalizeImportsExportsResult(0, dirInfoPackageJSON.absPath, conditions, $clone((x = packageJSON$1.importsMap, (x === ptrType$31.nil && $throwNilPointerError(), x)), pjMap), packageJSON$1, resolvedPath, status, $clone(debug, pjDebug), "", "", ""); /* */ $s = 23; case 23: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } _tuple$4 = _r$10; absolute$1 = $clone(_tuple$4[0], PathPair); ok$2 = _tuple$4[1]; diffCase$1 = _tuple$4[2]; - $s = -1; return [absolute$1, ok$2, diffCase$1, ptrType$22.nil]; - /* */ } return; } } catch(err) { $err = err; $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$21.nil, ptrType$22.nil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: loadPackageImports, $c: true, $r, _1, _arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, absolute, absolute$1, conditions, debug, diffCase, diffCase$1, dirInfoPackageJSON, importPath, ok, ok$1, ok$2, packageJSON$1, pathPair, r, resolvedPath, sideEffects, sideEffects$1, status, tracker, tracker$1, $s, $deferred};return $f; } } + $s = -1; return [absolute$1, ok$2, diffCase$1, ptrType$23.nil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$22.nil, ptrType$23.nil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: loadPackageImports, $c: true, $r, _1, _arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, absolute, absolute$1, conditions, debug, diffCase, diffCase$1, dirInfoPackageJSON, importPath, ok, ok$1, ok$2, packageJSON$1, pathPair, r, resolvedPath, sideEffects, sideEffects$1, status, tracker, tracker$1, x, $s, $deferred};return $f; } } }; resolverQuery.prototype.loadPackageImports = function(...$args) { return this.$val.loadPackageImports(...$args); }; $ptrType(resolverQuery).prototype.esmResolveAlgorithm = function esmResolveAlgorithm(kind, esmPackageName, esmPackageSubpath, packageJSON$1, absPkgPath, absPath) { - var {$24r, _1, _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, absPath, absPkgPath, conditions, debug, esmPackageName, esmPackageSubpath, kind, packageJSON$1, r, resolvedPath, status, $s, $deferred, $r, $c} = $restore(this, {kind, esmPackageName, esmPackageSubpath, packageJSON$1, absPkgPath, absPath}); + var {$24r, _1, _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, absPath, absPkgPath, conditions, debug, esmPackageName, esmPackageSubpath, kind, packageJSON$1, r, resolvedPath, status, x, $s, $deferred, $r, $c} = $restore(this, {kind, esmPackageName, esmPackageSubpath, packageJSON$1, absPkgPath, absPath}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); r = this; /* */ if (!(r.debugLogs === ptrType.nil)) { $s = 1; continue; } @@ -192288,10 +193532,10 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { resolvedPath = _tuple$1[0]; status = _tuple$1[1]; pjDebug.copy(debug, _tuple$1[2]); - _r$3 = $clone(r, resolverQuery).finalizeImportsExportsResult(kind, absPkgPath, conditions, $clone(packageJSON$1.exportsMap, pjMap), packageJSON$1, resolvedPath, status, $clone(debug, pjDebug), esmPackageName, esmPackageSubpath, absPath); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3 = $clone(r, resolverQuery).finalizeImportsExportsResult(kind, absPkgPath, conditions, $clone((x = packageJSON$1.exportsMap, (x === ptrType$31.nil && $throwNilPointerError(), x)), pjMap), packageJSON$1, resolvedPath, status, $clone(debug, pjDebug), esmPackageName, esmPackageSubpath, absPath); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } $24r = _r$3; $s = 8; case 8: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$21.nil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: esmResolveAlgorithm, $c: true, $r, $24r, _1, _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, absPath, absPkgPath, conditions, debug, esmPackageName, esmPackageSubpath, kind, packageJSON$1, r, resolvedPath, status, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$22.nil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: esmResolveAlgorithm, $c: true, $r, $24r, _1, _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, absPath, absPkgPath, conditions, debug, esmPackageName, esmPackageSubpath, kind, packageJSON$1, r, resolvedPath, status, x, $s, $deferred};return $f; } } }; resolverQuery.prototype.esmResolveAlgorithm = function(...$args) { return this.$val.esmResolveAlgorithm(...$args); }; $ptrType(resolverQuery).prototype.loadNodeModules = function loadNodeModules(importPath, dirInfo$1, forbidImports) { @@ -192324,7 +193568,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { ok = _tuple[1]; diffCase = _tuple[2]; if (ok) { - $s = -1; return [absolute, true, diffCase, ptrType$22.nil]; + $s = -1; return [absolute, true, diffCase, ptrType$23.nil]; } /* } */ case 8: /* */ if (!(tsConfigJSON.BaseURL === ptrType$7.nil)) { $s = 10; continue; } @@ -192338,18 +193582,18 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { ok$1 = _tuple$1[1]; diffCase$1 = _tuple$1[2]; if (ok$1) { - $s = -1; return [absolute$1, true, diffCase$1, ptrType$22.nil]; + $s = -1; return [absolute$1, true, diffCase$1, ptrType$23.nil]; } /* } */ case 11: /* } */ case 6: dirInfoPackageJSON = dirInfo$1; while (true) { - if (!(!(dirInfoPackageJSON === ptrType$25.nil) && dirInfoPackageJSON.packageJSON === ptrType$29.nil)) { break; } + if (!(!(dirInfoPackageJSON === ptrType$26.nil) && dirInfoPackageJSON.packageJSON === ptrType$30.nil)) { break; } dirInfoPackageJSON = dirInfoPackageJSON.parent; } - /* */ if (!(dirInfoPackageJSON === ptrType$25.nil) && strings.HasPrefix(importPath[0], "#") && !forbidImports && !(dirInfoPackageJSON.packageJSON.importsMap === ptrType$30.nil)) { $s = 14; continue; } + /* */ if (!(dirInfoPackageJSON === ptrType$26.nil) && strings.HasPrefix(importPath[0], "#") && !forbidImports && !(dirInfoPackageJSON.packageJSON.importsMap === ptrType$31.nil)) { $s = 14; continue; } /* */ $s = 15; continue; - /* if (!(dirInfoPackageJSON === ptrType$25.nil) && strings.HasPrefix(importPath[0], "#") && !forbidImports && !(dirInfoPackageJSON.packageJSON.importsMap === ptrType$30.nil)) { */ case 14: + /* if (!(dirInfoPackageJSON === ptrType$26.nil) && strings.HasPrefix(importPath[0], "#") && !forbidImports && !(dirInfoPackageJSON.packageJSON.importsMap === ptrType$31.nil)) { */ case 14: _r$4 = $clone(r[0], resolverQuery).loadPackageImports(importPath[0], dirInfoPackageJSON); /* */ $s = 16; case 16: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } $24r = _r$4; $s = 17; case 17: return $24r; @@ -192358,7 +193602,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { if (!(r[0].debugLogs === ptrType.nil)) { r[0].debugLogs.addNote("Marking this path as external because it's a package path"); } - $s = -1; return [new PathPair.ptr($clone(new logger.Path.ptr(importPath[0], "", "", new logger.ImportAttributes.ptr(""), 0), logger.Path), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), true), true, ptrType$21.nil, ptrType$22.nil]; + $s = -1; return [new PathPair.ptr($clone(new logger.Path.ptr(importPath[0], "", "", new logger.ImportAttributes.ptr(""), 0), logger.Path), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), true), true, ptrType$22.nil, ptrType$23.nil]; } /* */ if (!(r[0].Resolver.pnpManifest === ptrType$15.nil)) { $s = 18; continue; } /* */ $s = 19; continue; @@ -192391,25 +193635,25 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { r[0].debugMeta.notes = new sliceType$4([$clone(_r$9, logger.MsgData)]); /* } */ case 27: case 24: - $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$21.nil, ptrType$22.nil]; + $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$22.nil, ptrType$23.nil]; /* } else if (result.status === 3) { */ case 22: _r$10 = r[0].Resolver.fs.Join(new sliceType([result.pkgDirPath, result.pkgSubpath])); /* */ $s = 32; case 32: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } absPath = _r$10; _r$11 = $clone(r[0], resolverQuery).dirInfoCached(result.pkgDirPath); /* */ $s = 33; case 33: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } pkgDirInfo = _r$11; - /* */ if (!(pkgDirInfo === ptrType$25.nil)) { $s = 34; continue; } + /* */ if (!(pkgDirInfo === ptrType$26.nil)) { $s = 34; continue; } /* */ $s = 35; continue; - /* if (!(pkgDirInfo === ptrType$25.nil)) { */ case 34: + /* if (!(pkgDirInfo === ptrType$26.nil)) { */ case 34: packageJSON$1 = pkgDirInfo.packageJSON; - /* */ if (!(packageJSON$1 === ptrType$29.nil) && !(packageJSON$1.exportsMap === ptrType$30.nil)) { $s = 36; continue; } + /* */ if (!(packageJSON$1 === ptrType$30.nil) && !(packageJSON$1.exportsMap === ptrType$31.nil)) { $s = 36; continue; } /* */ $s = 37; continue; - /* if (!(packageJSON$1 === ptrType$29.nil) && !(packageJSON$1.exportsMap === ptrType$30.nil)) { */ case 36: + /* if (!(packageJSON$1 === ptrType$30.nil) && !(packageJSON$1.exportsMap === ptrType$31.nil)) { */ case 36: _r$12 = $clone(r[0], resolverQuery).esmResolveAlgorithm(0, result.pkgIdent, "." + result.pkgSubpath, packageJSON$1, pkgDirInfo.absPath, absPath); /* */ $s = 38; case 38: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } _tuple$2 = _r$12; absolute$2 = $clone(_tuple$2[0], PathPair); ok$2 = _tuple$2[1]; diffCase$2 = _tuple$2[2]; - $s = -1; return [absolute$2, ok$2, diffCase$2, ptrType$22.nil]; + $s = -1; return [absolute$2, ok$2, diffCase$2, ptrType$23.nil]; /* } */ case 37: _r$13 = $clone(r[0], resolverQuery).checkBrowserMap(pkgDirInfo, absPath, 0); /* */ $s = 39; case 39: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } _tuple$3 = _r$13; @@ -192419,7 +193663,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { /* */ $s = 41; continue; /* if (ok$3) { */ case 40: if (remapped === ptrType$7.nil) { - $s = -1; return [new PathPair.ptr($clone(new logger.Path.ptr(absPath, "file", "", new logger.ImportAttributes.ptr(""), 1), logger.Path), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), true, ptrType$21.nil, ptrType$22.nil]; + $s = -1; return [new PathPair.ptr($clone(new logger.Path.ptr(absPath, "file", "", new logger.ImportAttributes.ptr(""), 1), logger.Path), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), true, ptrType$22.nil, ptrType$23.nil]; } _r$14 = $clone(r[0], resolverQuery).resolveWithoutRemapping(pkgDirInfo.enclosingBrowserScope, remapped.$get()); /* */ $s = 42; case 42: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } _tuple$4 = _r$14; @@ -192437,7 +193681,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { ok$5 = _tuple$5[1]; diffCase$4 = _tuple$5[2]; if (ok$5) { - $s = -1; return [absolute$3, true, diffCase$4, ptrType$22.nil]; + $s = -1; return [absolute$3, true, diffCase$4, ptrType$23.nil]; } /* } */ case 35: /* */ if (!(r[0].debugLogs === ptrType.nil)) { $s = 44; continue; } @@ -192446,7 +193690,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { _r$16 = fmt.Sprintf("Failed to resolve %q to a file", new sliceType$1([new $String(absPath)])); /* */ $s = 46; case 46: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } $r = r[0].debugLogs.addNote(_r$16); /* */ $s = 47; case 47: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 45: - $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$21.nil, ptrType$22.nil]; + $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$22.nil, ptrType$23.nil]; /* } */ case 23: /* } */ case 19: _tuple$6 = esmParsePackageName(importPath[0]); @@ -192459,13 +193703,13 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { _r$17 = fmt.Sprintf("Parsed package name %q and package subpath %q", new sliceType$1([new $String(esmPackageName[0]), new $String(esmPackageSubpath[0])])); /* */ $s = 50; case 50: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } $r = r[0].debugLogs.addNote(_r$17); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 49: - /* */ if (!(dirInfoPackageJSON === ptrType$25.nil)) { $s = 52; continue; } + /* */ if (!(dirInfoPackageJSON === ptrType$26.nil)) { $s = 52; continue; } /* */ $s = 53; continue; - /* if (!(dirInfoPackageJSON === ptrType$25.nil)) { */ case 52: + /* if (!(dirInfoPackageJSON === ptrType$26.nil)) { */ case 52: packageJSON$2 = dirInfoPackageJSON.packageJSON; - /* */ if (packageJSON$2.name === esmPackageName[0] && !(packageJSON$2.exportsMap === ptrType$30.nil)) { $s = 54; continue; } + /* */ if (packageJSON$2.name === esmPackageName[0] && !(packageJSON$2.exportsMap === ptrType$31.nil)) { $s = 54; continue; } /* */ $s = 55; continue; - /* if (packageJSON$2.name === esmPackageName[0] && !(packageJSON$2.exportsMap === ptrType$30.nil)) { */ case 54: + /* if (packageJSON$2.name === esmPackageName[0] && !(packageJSON$2.exportsMap === ptrType$31.nil)) { */ case 54: _arg$4 = esmPackageName[0]; _arg$5 = esmPackageSubpath[0]; _arg$6 = packageJSON$2; @@ -192477,7 +193721,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { absolute$4 = $clone(_tuple$7[0], PathPair); ok$6 = _tuple$7[1]; diffCase$5 = _tuple$7[2]; - $s = -1; return [absolute$4, ok$6, diffCase$5, ptrType$22.nil]; + $s = -1; return [absolute$4, ok$6, diffCase$5, ptrType$23.nil]; /* } */ case 55: /* } */ case 53: tryToResolvePackage = (function(esmOK, esmPackageName, esmPackageSubpath, importPath, r) { return function resolverQuery·loadNodeModules·func1(absDir) { @@ -192498,19 +193742,19 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { absPkgPath = _r$22; _r$23 = $clone(r[0], resolverQuery).dirInfoCached(absPkgPath); /* */ $s = 9; case 9: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } pkgDirInfo$1 = _r$23; - /* */ if (!(pkgDirInfo$1 === ptrType$25.nil)) { $s = 10; continue; } + /* */ if (!(pkgDirInfo$1 === ptrType$26.nil)) { $s = 10; continue; } /* */ $s = 11; continue; - /* if (!(pkgDirInfo$1 === ptrType$25.nil)) { */ case 10: + /* if (!(pkgDirInfo$1 === ptrType$26.nil)) { */ case 10: packageJSON$3 = pkgDirInfo$1.packageJSON; - /* */ if (!(packageJSON$3 === ptrType$29.nil) && !(packageJSON$3.exportsMap === ptrType$30.nil)) { $s = 12; continue; } + /* */ if (!(packageJSON$3 === ptrType$30.nil) && !(packageJSON$3.exportsMap === ptrType$31.nil)) { $s = 12; continue; } /* */ $s = 13; continue; - /* if (!(packageJSON$3 === ptrType$29.nil) && !(packageJSON$3.exportsMap === ptrType$30.nil)) { */ case 12: + /* if (!(packageJSON$3 === ptrType$30.nil) && !(packageJSON$3.exportsMap === ptrType$31.nil)) { */ case 12: _r$24 = $clone(r[0], resolverQuery).esmResolveAlgorithm(0, esmPackageName[0], esmPackageSubpath[0], packageJSON$3, absPkgPath, absPath$1); /* */ $s = 14; case 14: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } _tuple$8 = _r$24; absolute$5 = $clone(_tuple$8[0], PathPair); ok$7 = _tuple$8[1]; diffCase$6 = _tuple$8[2]; - $s = -1; return [absolute$5, ok$7, diffCase$6, ptrType$22.nil, true]; + $s = -1; return [absolute$5, ok$7, diffCase$6, ptrType$23.nil, true]; /* } */ case 13: _r$25 = $clone(r[0], resolverQuery).checkBrowserMap(pkgDirInfo$1, absPath$1, 0); /* */ $s = 15; case 15: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } _tuple$9 = _r$25; @@ -192520,7 +193764,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { /* */ $s = 17; continue; /* if (ok$8) { */ case 16: if (remapped$1 === ptrType$7.nil) { - $s = -1; return [new PathPair.ptr($clone(new logger.Path.ptr(absPath$1, "file", "", new logger.ImportAttributes.ptr(""), 1), logger.Path), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), true, ptrType$21.nil, ptrType$22.nil, true]; + $s = -1; return [new PathPair.ptr($clone(new logger.Path.ptr(absPath$1, "file", "", new logger.ImportAttributes.ptr(""), 1), logger.Path), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), true, ptrType$22.nil, ptrType$23.nil, true]; } _r$26 = $clone(r[0], resolverQuery).resolveWithoutRemapping(pkgDirInfo$1.enclosingBrowserScope, remapped$1.$get()); /* */ $s = 18; case 18: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } _tuple$10 = _r$26; @@ -192540,9 +193784,9 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { ok$10 = _tuple$11[1]; diffCase$8 = _tuple$11[2]; if (ok$10) { - $s = -1; return [absolute$6, true, diffCase$8, ptrType$22.nil, true]; + $s = -1; return [absolute$6, true, diffCase$8, ptrType$23.nil, true]; } - $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$21.nil, ptrType$22.nil, false]; + $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$22.nil, ptrType$23.nil, false]; /* */ } return; } var $f = {$blk: resolverQuery·loadNodeModules·func1, $c: true, $r, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _tuple$10, _tuple$11, _tuple$8, _tuple$9, absDir, absPath$1, absPkgPath, absolute$5, absolute$6, diffCase$6, diffCase$7, diffCase$8, ok$10, ok$7, ok$8, ok$9, packageJSON$3, pkgDirInfo$1, remapped$1, remappedResult$1, sideEffects$1, $s};return $f; }; })(esmOK, esmPackageName, esmPackageSubpath, importPath, r); /* while (true) { */ case 58: @@ -192562,7 +193806,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { } /* } */ case 61: dirInfo$1 = dirInfo$1.parent; - if (dirInfo$1 === ptrType$25.nil) { + if (dirInfo$1 === ptrType$26.nil) { /* break; */ $s = 59; continue; } $s = 58; continue; @@ -192585,8 +193829,8 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { _i++; $s = 64; continue; case 65: - $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$21.nil, ptrType$22.nil]; - /* */ } return; } } catch(err) { $err = err; $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$21.nil, ptrType$22.nil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: loadNodeModules, $c: true, $r, $24r, _1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _i, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, absDir, absPath, absolute, absolute$1, absolute$2, absolute$3, absolute$4, absolute$5, absolute$6, basePath, diffCase, diffCase$1, diffCase$2, diffCase$3, diffCase$4, diffCase$5, diffCase$6, diffCase$7, dirInfo$1, dirInfoPackageJSON, esmOK, esmPackageName, esmPackageSubpath, forbidImports, importPath, ok, ok$1, ok$2, ok$3, ok$4, ok$5, ok$6, ok$7, ok$8, packageJSON$1, packageJSON$2, pkgDirInfo, r, remapped, remappedResult, result, shouldStop, shouldStop$1, sideEffects, sideEffects$1, sideEffects$2, tryToResolvePackage, tsConfigJSON, $s, $deferred};return $f; } } + $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$22.nil, ptrType$23.nil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$22.nil, ptrType$23.nil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: loadNodeModules, $c: true, $r, $24r, _1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _i, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, absDir, absPath, absolute, absolute$1, absolute$2, absolute$3, absolute$4, absolute$5, absolute$6, basePath, diffCase, diffCase$1, diffCase$2, diffCase$3, diffCase$4, diffCase$5, diffCase$6, diffCase$7, dirInfo$1, dirInfoPackageJSON, esmOK, esmPackageName, esmPackageSubpath, forbidImports, importPath, ok, ok$1, ok$2, ok$3, ok$4, ok$5, ok$6, ok$7, ok$8, packageJSON$1, packageJSON$2, pkgDirInfo, r, remapped, remappedResult, result, shouldStop, shouldStop$1, sideEffects, sideEffects$1, sideEffects$2, tryToResolvePackage, tsConfigJSON, $s, $deferred};return $f; } } }; resolverQuery.prototype.loadNodeModules = function(...$args) { return this.$val.loadNodeModules(...$args); }; $ptrType(resolverQuery).prototype.checkForBuiltInNodeModules = function checkForBuiltInNodeModules(importPath) { @@ -192608,7 +193852,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { if (!(r.debugLogs === ptrType.nil)) { r.debugLogs.addNote("Marking this path as implicitly external due to the \"node:\" prefix"); } - sideEffects = ptrType$22.nil; + sideEffects = ptrType$23.nil; if ((_entry$1 = $mapIndex($pkg.BuiltInNodeModules,$String.keyFor(strings.TrimPrefix(importPath, "node:"))), _entry$1 !== undefined ? _entry$1.v : false)) { sideEffects = new SideEffectsData.ptr(ptrType$13.nil, "", new logger.Range.ptr(new logger.Loc.ptr(0), 0), false); } @@ -192630,7 +193874,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { $r = $clone(r, resolverQuery).flushDebugLogs(1); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return [new PathPair.ptr($clone(new logger.Path.ptr(importPath, "", "", new logger.ImportAttributes.ptr(""), 0), logger.Path), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), true), true, sideEffects]; /* } */ case 5: - $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$22.nil]; + $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$23.nil]; /* */ } return; } var $f = {$blk: checkForBuiltInNodeModules, $c: true, $r, _entry, _entry$1, convertImportToRequire, importPath, isImport, isRequire, r, sideEffects, $s};return $f; }; resolverQuery.prototype.checkForBuiltInNodeModules = function(...$args) { return this.$val.checkForBuiltInNodeModules(...$args); }; @@ -192664,7 +193908,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { _r$2 = fmt.Sprintf("Resolved to %q", new sliceType$1([new $String(absResolvedPath)])); /* */ $s = 16; case 16: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $r = r.debugLogs.addNote(_r$2); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 15: - $s = -1; return [new PathPair.ptr($clone(new logger.Path.ptr(absResolvedPath, "file", "", new logger.ImportAttributes.ptr(""), 0), logger.Path), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), true, ptrType$21.nil]; + $s = -1; return [new PathPair.ptr($clone(new logger.Path.ptr(absResolvedPath, "file", "", new logger.ImportAttributes.ptr(""), 0), logger.Path), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), true, ptrType$22.nil]; /* } */ case 13: _r$3 = r.Resolver.fs.Dir(absResolvedPath); /* */ $s = 18; case 18: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _r$4 = $clone(r, resolverQuery).dirInfoCached(_r$3); /* */ $s = 19; case 19: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } @@ -192675,9 +193919,9 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { if (new ast.ImportKind(r.kind).MustResolveToCSS()) { extensionOrder = r.Resolver.cssExtensionOrder; } - /* */ if (resolvedDirInfo === ptrType$25.nil) { $s = 21; continue; } + /* */ if (resolvedDirInfo === ptrType$26.nil) { $s = 21; continue; } /* */ $s = 22; continue; - /* if (resolvedDirInfo === ptrType$25.nil) { */ case 21: + /* if (resolvedDirInfo === ptrType$26.nil) { */ case 21: status = 12; $s = 23; continue; /* } else { */ case 22: @@ -192685,9 +193929,9 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { _tuple = _r$6; entry = _tuple[0]; diffCase = _tuple[1]; - /* */ if (entry === ptrType$28.nil) { $s = 25; continue; } + /* */ if (entry === ptrType$29.nil) { $s = 25; continue; } /* */ $s = 26; continue; - /* if (entry === ptrType$28.nil) { */ case 25: + /* if (entry === ptrType$29.nil) { */ case 25: _ref = rewrittenFileExtensions; _i = 0; _keys = _ref ? _ref.keys() : undefined; @@ -192717,9 +193961,9 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { _tuple$1 = _r$7; entry = _tuple$1[0]; diffCase = _tuple$1[1]; - /* */ if (!(entry === ptrType$28.nil)) { $s = 32; continue; } + /* */ if (!(entry === ptrType$29.nil)) { $s = 32; continue; } /* */ $s = 33; continue; - /* if (!(entry === ptrType$28.nil)) { */ case 32: + /* if (!(entry === ptrType$29.nil)) { */ case 32: _r$8 = r.Resolver.fs.Join(new sliceType([resolvedDirInfo.absPath, baseWithExt])); /* */ $s = 34; case 34: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } absResolvedPath = _r$8; /* break; */ $s = 30; continue; @@ -192730,9 +193974,9 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { /* break; */ $s = 28; continue; case 28: /* } */ case 26: - /* */ if (entry === ptrType$28.nil) { $s = 35; continue; } + /* */ if (entry === ptrType$29.nil) { $s = 35; continue; } /* */ $s = 36; continue; - /* if (entry === ptrType$28.nil) { */ case 35: + /* if (entry === ptrType$29.nil) { */ case 35: endsWithStar = status === 4; status = 12; /* */ if (endsWithStar) { $s = 38; continue; } @@ -192746,9 +193990,9 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { _r$9 = $clone(resolvedDirInfo.entries, fs.DirEntries).Get(base + ext$1); /* */ $s = 42; case 42: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } _tuple$2 = _r$9; entry$1 = _tuple$2[0]; - /* */ if (!(entry$1 === ptrType$28.nil)) { $s = 43; continue; } + /* */ if (!(entry$1 === ptrType$29.nil)) { $s = 43; continue; } /* */ $s = 44; continue; - /* if (!(entry$1 === ptrType$28.nil)) { */ case 43: + /* if (!(entry$1 === ptrType$29.nil)) { */ case 43: /* */ if (!(r.debugLogs === ptrType.nil)) { $s = 45; continue; } /* */ $s = 46; continue; /* if (!(r.debugLogs === ptrType.nil)) { */ case 45: @@ -192784,9 +194028,9 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { /* if (endsWithStar$1) { */ case 58: _r$13 = $clone(r, resolverQuery).dirInfoCached(absResolvedPath); /* */ $s = 60; case 60: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } resolvedDirInfo$1 = _r$13; - /* */ if (!(resolvedDirInfo$1 === ptrType$25.nil)) { $s = 61; continue; } + /* */ if (!(resolvedDirInfo$1 === ptrType$26.nil)) { $s = 61; continue; } /* */ $s = 62; continue; - /* if (!(resolvedDirInfo$1 === ptrType$25.nil)) { */ case 61: + /* if (!(resolvedDirInfo$1 === ptrType$26.nil)) { */ case 61: _ref$3 = extensionOrder; _i$3 = 0; /* while (true) { */ case 63: @@ -192796,7 +194040,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { _r$14 = $clone(resolvedDirInfo$1.entries, fs.DirEntries).Get(base$1); /* */ $s = 65; case 65: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } _tuple$3 = _r$14; entry$2 = _tuple$3[0]; - if (!(!(entry$2 === ptrType$28.nil))) { _v = false; $s = 68; continue s; } + if (!(!(entry$2 === ptrType$29.nil))) { _v = false; $s = 68; continue s; } _r$15 = entry$2.Kind(r.Resolver.fs); /* */ $s = 69; case 69: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } _v = _r$15 === 2; case 68: /* */ if (_v) { $s = 66; continue; } @@ -193089,7 +194333,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { case 140: /* } */ case 92: case 83: - $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$21.nil]; + $s = -1; return [new PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), false, ptrType$22.nil]; /* */ } return; } var $f = {$blk: finalizeImportsExportsResult, $c: true, $r, _1, _2, _3, _4, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$16, _arg$17, _arg$18, _arg$19, _arg$2, _arg$20, _arg$21, _arg$22, _arg$23, _arg$24, _arg$25, _arg$26, _arg$27, _arg$28, _arg$29, _arg$3, _arg$30, _arg$31, _arg$32, _arg$33, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _entry, _entry$1, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _key, _key$1, _keys, _keys$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _r$5, _r$50, _r$51, _r$52, _r$53, _r$54, _r$55, _r$56, _r$57, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _size, _size$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _v, absDirPath, absImportPath, absResolvedPath, absolute, absolute$1, actualImportPath, actualImportPath$1, actualImportPath$2, base, base$1, baseWithExt, conditions, debug, didSuggestEnablingCondition, diffCase, diffCase$1, endsWithStar, endsWithStar$1, entry, entry$1, entry$2, esmPackageName, esmPackageSubpath, ext, ext$1, ext$2, extensionOrder, exts, how, i, importExportMap, key, key$1, key$2, keys, kind, kind$1, lastDot, missingSuffix, ok, ok$1, ok$2, ok$3, old, packageJSON$1, query, r, relPath, resolvedDirInfo, resolvedDirInfo$1, resolvedPath, status, subpath, token, tracker, unmatchedConditions, why, $s};return $f; }; resolverQuery.prototype.finalizeImportsExportsResult = function(...$args) { return this.$val.finalizeImportsExportsResult(...$args); }; @@ -193117,9 +194361,9 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { ok[0] = _tmp$1; $s = -1; return [remapped[0], ok[0]]; } - /* */ if (resolveDirInfo.enclosingBrowserScope === ptrType$25.nil) { $s = 1; continue; } + /* */ if (resolveDirInfo.enclosingBrowserScope === ptrType$26.nil) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (resolveDirInfo.enclosingBrowserScope === ptrType$25.nil) { */ case 1: + /* if (resolveDirInfo.enclosingBrowserScope === ptrType$26.nil) { */ case 1: /* */ if (!(r[0].debugLogs === ptrType.nil)) { $s = 3; continue; } /* */ $s = 4; continue; /* if (!(r[0].debugLogs === ptrType.nil)) { */ case 3: @@ -193267,7 +194511,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { isInSamePackage = true; info = resolveDirInfo; while (true) { - if (!(!(info === ptrType$25.nil) && !(info === resolveDirInfo.enclosingBrowserScope))) { break; } + if (!(!(info === ptrType$26.nil) && !(info === resolveDirInfo.enclosingBrowserScope))) { break; } if (info.isNodeModules) { isInSamePackage = false; break; @@ -193351,7 +194595,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { _r$6 = fmt.Sprintf("Cannot read file %q: %s", new sliceType$1([_arg$4, _arg$5])); /* */ $s = 12; case 12: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _arg$6 = _r$6; $r = $clone(r.Resolver.log, logger.Log).AddError(_arg$2, _arg$3, _arg$6); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return ptrType$29.nil; + $s = -1; return ptrType$30.nil; /* } */ case 9: /* */ if (!(r.debugLogs === ptrType.nil)) { $s = 14; continue; } /* */ $s = 15; continue; @@ -193368,9 +194612,9 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { json = $clone(_tuple$1[0], js_ast.Expr); ok = _tuple$1[1]; if (!ok) { - $s = -1; return ptrType$29.nil; + $s = -1; return ptrType$30.nil; } - packageJSON$1 = new packageJSON.ptr("", new $global.Map(), new js_ast.ModuleTypeData.ptr(ptrType$13.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0), "", false, false, sliceType$12.nil, ptrType$22.nil, ptrType$30.nil, ptrType$30.nil, $clone(jsonSource[0], logger.Source)); + packageJSON$1 = new packageJSON.ptr("", new $global.Map(), new js_ast.ModuleTypeData.ptr(ptrType$13.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0), "", false, false, sliceType$12.nil, ptrType$23.nil, ptrType$31.nil, ptrType$31.nil, $clone(jsonSource[0], logger.Source)); _tuple$2 = getProperty($clone(json, js_ast.Expr), "name"); nameJSON = $clone(_tuple$2[0], js_ast.Expr); ok$1 = _tuple$2[2]; @@ -193549,10 +194793,10 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { /* */ $s = 49; continue; /* if (ok$17) { */ case 48: _ref$3 = sideEffectsJSON.Data; - /* */ if ($assertType(_ref$3, ptrType$33, true)[1]) { $s = 50; continue; } + /* */ if ($assertType(_ref$3, ptrType$34, true)[1]) { $s = 50; continue; } /* */ if ($assertType(_ref$3, ptrType$2, true)[1]) { $s = 51; continue; } /* */ $s = 52; continue; - /* if ($assertType(_ref$3, ptrType$33, true)[1]) { */ case 50: + /* if ($assertType(_ref$3, ptrType$34, true)[1]) { */ case 50: data = _ref$3.$val; if (!data.Value) { packageJSON$1.sideEffectsMap = new $global.Map(); @@ -193615,9 +194859,9 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { /* if (ok$19) { */ case 64: _r$13 = parseImportsExportsMap($clone(jsonSource[0], logger.Source), $clone(r.Resolver.log, logger.Log), $clone(importsJSON, js_ast.Expr), "imports", $clone(importsLoc, logger.Loc)); /* */ $s = 66; case 66: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } importsMap = _r$13; - /* */ if (!(importsMap === ptrType$30.nil)) { $s = 67; continue; } + /* */ if (!(importsMap === ptrType$31.nil)) { $s = 67; continue; } /* */ $s = 68; continue; - /* if (!(importsMap === ptrType$30.nil)) { */ case 67: + /* if (!(importsMap === ptrType$31.nil)) { */ case 67: /* */ if (!((importsMap.root.kind === 3))) { $s = 69; continue; } /* */ $s = 70; continue; /* if (!((importsMap.root.kind === 3))) { */ case 69: @@ -193635,7 +194879,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { /* if (ok$20) { */ case 72: _r$14 = parseImportsExportsMap($clone(jsonSource[0], logger.Source), $clone(r.Resolver.log, logger.Log), $clone(exportsJSON, js_ast.Expr), "exports", $clone(exportsLoc, logger.Loc)); /* */ $s = 74; case 74: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } exportsMap = _r$14; - if (!(exportsMap === ptrType$30.nil)) { + if (!(exportsMap === ptrType$31.nil)) { packageJSON$1.exportsMap = exportsMap; } /* } */ case 73: @@ -193645,7 +194889,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { resolverQuery.prototype.parsePackageJSON = function(...$args) { return this.$val.parsePackageJSON(...$args); }; globstarToEscapedRegexp = function globstarToEscapedRegexp$1(glob) { var _1, c, glob, hadWildcard, i, isGlobstar, n, nextChar, prevChar, sb, starCount; - sb = new strings.Builder.ptr(ptrType$27.nil, sliceType$11.nil); + sb = new strings.Builder.ptr(ptrType$28.nil, sliceType$11.nil); sb.WriteByte(94); hadWildcard = false; n = glob.length; @@ -193780,8 +195024,8 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { /* */ if ($assertType(_ref, ptrType$3, true)[1]) { $s = 2; continue; } /* */ if ($assertType(_ref, ptrType$2, true)[1]) { $s = 3; continue; } /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$33, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$34, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$34, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$35, true)[1]) { $s = 6; continue; } /* */ $s = 7; continue; /* if ($assertType(_ref, ptrType$4, true)[1]) { */ case 1: e = _ref.$val; @@ -193909,11 +195153,11 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { $r = $clone(log[0], logger.Log).AddIDWithNotes(55, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 23: $s = -1; return new pjEntry.ptr("", sliceType$13.nil, mapData, expansionKeys, $clone(firstToken$1, logger.Range), 3); - /* } else if ($assertType(_ref, ptrType$33, true)[1]) { */ case 5: + /* } else if ($assertType(_ref, ptrType$34, true)[1]) { */ case 5: e$4 = _ref.$val; logger.Range.copy(firstToken, js_lexer.RangeOfIdentifier($clone(source[0], logger.Source), $clone(expr.Loc, logger.Loc))); $s = 8; continue; - /* } else if ($assertType(_ref, ptrType$34, true)[1]) { */ case 6: + /* } else if ($assertType(_ref, ptrType$35, true)[1]) { */ case 6: e$5 = _ref.$val; logger.Range.copy(firstToken, source[0].RangeOfNumber($clone(expr.Loc, logger.Loc))); $s = 8; continue; @@ -193928,7 +195172,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { _r = visit[0]($clone(json, js_ast.Expr)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } root = $clone(_r, pjEntry); if (root.kind === 0) { - $s = -1; return ptrType$30.nil; + $s = -1; return ptrType$31.nil; } $s = -1; return new pjMap.ptr($clone(root, pjEntry), propertyKey, $clone(propertyKeyLoc, logger.Loc)); /* */ } return; } var $f = {$blk: parseImportsExportsMap$1, $c: true, $r, _r, json, log, propertyKey, propertyKeyLoc, root, source, tracker, visit, $s};return $f; @@ -194734,10 +195978,10 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { DataURL.prototype.DecodeData = function(...$args) { return this.$val.DecodeData(...$args); }; pnpStatus.methods = [{prop: "isError", name: "isError", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([], [$Bool], false)}]; ptrType$9.methods = [{prop: "applyExtendedConfig", name: "applyExtendedConfig", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([TSConfigJSON], [], false)}, {prop: "TSAlwaysStrictOrStrict", name: "TSAlwaysStrictOrStrict", pkg: "", typ: $funcType([], [ptrType$6], false)}]; - ptrType$35.methods = [{prop: "iter", name: "iter", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([], [sliceType$5], false)}, {prop: "HasSecondary", name: "HasSecondary", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$36.methods = [{prop: "iter", name: "iter", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([], [sliceType$5], false)}, {prop: "HasSecondary", name: "HasSecondary", pkg: "", typ: $funcType([], [$Bool], false)}]; DebugMeta.methods = [{prop: "LogErrorMsg", name: "LogErrorMsg", pkg: "", typ: $funcType([logger.Log, ptrType$13, logger.Range, $String, $String, sliceType$4], [], false)}]; - ptrType$19.methods = [{prop: "Resolve", name: "Resolve", pkg: "", typ: $funcType([$String, $String, ast.ImportKind], [ptrType$24, DebugMeta], false)}, {prop: "ResolveGlob", name: "ResolveGlob", pkg: "", typ: $funcType([$String, sliceType$17, ast.ImportKind, $String], [mapType$7, ptrType$26], false)}, {prop: "ProbeResolvePackageAsRelative", name: "ProbeResolvePackageAsRelative", pkg: "", typ: $funcType([$String, $String, ast.ImportKind], [ptrType$24, DebugMeta], false)}]; - resolverQuery.methods = [{prop: "resolveToUnqualified", name: "resolveToUnqualified", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String, $String, ptrType$15], [pnpResult], false)}, {prop: "findLocator", name: "findLocator", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([ptrType$15, $String], [pnpIdentAndReference, $Bool], false)}, {prop: "resolveViaFallback", name: "resolveViaFallback", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([ptrType$15, $String], [pnpIdentAndReference, $Bool], false)}, {prop: "getPackage", name: "getPackage", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([ptrType$15, $String, $String], [pnpPackage, $Bool], false)}, {prop: "extractYarnPnPDataFromJSON", name: "extractYarnPnPDataFromJSON", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String, pnpDataMode], [js_ast.Expr, logger.Source], false)}, {prop: "tryToExtractYarnPnPDataFromJS", name: "tryToExtractYarnPnPDataFromJS", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String, pnpDataMode], [js_ast.Expr, logger.Source], false)}, {prop: "isExternal", name: "isExternal", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([config.ExternalMatchers, $String, ast.ImportKind], [$Bool], false)}, {prop: "flushDebugLogs", name: "flushDebugLogs", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([flushMode], [], false)}, {prop: "finalizeResolve", name: "finalizeResolve", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([ptrType$24], [], false)}, {prop: "resolveWithoutSymlinks", name: "resolveWithoutSymlinks", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String, ptrType$25, $String], [ptrType$24], false)}, {prop: "resolveWithoutRemapping", name: "resolveWithoutRemapping", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([ptrType$25, $String], [PathPair, $Bool, ptrType$21, ptrType$22], false)}, {prop: "tsConfigForDir", name: "tsConfigForDir", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([ptrType$25], [ptrType$9], false)}, {prop: "dirInfoCached", name: "dirInfoCached", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String], [ptrType$25], false)}, {prop: "parseTSConfig", name: "parseTSConfig", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String, mapType, $String], [ptrType$9, $error], false)}, {prop: "parseTSConfigFromSource", name: "parseTSConfigFromSource", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([logger.Source, mapType, $String], [ptrType$9, $error], false)}, {prop: "dirInfoUncached", name: "dirInfoUncached", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String], [ptrType$25], false)}, {prop: "loadAsFile", name: "loadAsFile", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String, sliceType], [$String, $Bool, ptrType$21], false)}, {prop: "loadAsIndex", name: "loadAsIndex", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([ptrType$25, sliceType], [PathPair, $Bool, ptrType$21], false)}, {prop: "loadAsIndexWithBrowserRemapping", name: "loadAsIndexWithBrowserRemapping", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([ptrType$25, $String, sliceType], [PathPair, $Bool, ptrType$21], false)}, {prop: "loadAsFileOrDirectory", name: "loadAsFileOrDirectory", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String], [PathPair, $Bool, ptrType$21], false)}, {prop: "loadAsDirectory", name: "loadAsDirectory", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String], [PathPair, $Bool, ptrType$21], false)}, {prop: "loadAsMainField", name: "loadAsMainField", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([ptrType$25, $String, sliceType], [PathPair, $Bool, ptrType$21], false)}, {prop: "matchTSConfigPaths", name: "matchTSConfigPaths", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([ptrType$9, $String], [PathPair, $Bool, ptrType$21], false)}, {prop: "loadPackageImports", name: "loadPackageImports", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String, ptrType$25], [PathPair, $Bool, ptrType$21, ptrType$22], false)}, {prop: "esmResolveAlgorithm", name: "esmResolveAlgorithm", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([finalizeImportsExportsKind, $String, $String, ptrType$29, $String, $String], [PathPair, $Bool, ptrType$21], false)}, {prop: "loadNodeModules", name: "loadNodeModules", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String, ptrType$25, $Bool], [PathPair, $Bool, ptrType$21, ptrType$22], false)}, {prop: "checkForBuiltInNodeModules", name: "checkForBuiltInNodeModules", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String], [PathPair, $Bool, ptrType$22], false)}, {prop: "finalizeImportsExportsResult", name: "finalizeImportsExportsResult", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([finalizeImportsExportsKind, $String, mapType, pjMap, ptrType$29, $String, pjStatus, pjDebug, $String, $String, $String], [PathPair, $Bool, ptrType$21], false)}, {prop: "checkBrowserMap", name: "checkBrowserMap", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([ptrType$25, $String, browserPathKind], [ptrType$7, $Bool], false)}, {prop: "parsePackageJSON", name: "parsePackageJSON", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String], [ptrType$29], false)}, {prop: "esmHandlePostConditions", name: "esmHandlePostConditions", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String, pjStatus, pjDebug], [$String, pjStatus, pjDebug], false)}, {prop: "esmPackageImportsResolve", name: "esmPackageImportsResolve", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String, pjEntry, mapType], [$String, pjStatus, pjDebug], false)}, {prop: "esmPackageExportsResolve", name: "esmPackageExportsResolve", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String, $String, pjEntry, mapType], [$String, pjStatus, pjDebug], false)}, {prop: "esmPackageImportsExportsResolve", name: "esmPackageImportsExportsResolve", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String, pjEntry, $String, $Bool, mapType], [$String, pjStatus, pjDebug], false)}, {prop: "esmPackageTargetResolve", name: "esmPackageTargetResolve", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String, pjEntry, $String, $Bool, $Bool, mapType], [$String, pjStatus, pjDebug], false)}, {prop: "esmPackageExportsReverseResolve", name: "esmPackageExportsReverseResolve", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String, pjEntry, mapType], [$Bool, $String, logger.Range], false)}, {prop: "esmPackageImportsExportsReverseResolve", name: "esmPackageImportsExportsReverseResolve", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String, pjEntry, mapType], [$Bool, $String, logger.Range], false)}, {prop: "esmPackageTargetReverseResolve", name: "esmPackageTargetReverseResolve", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String, $String, pjEntry, esmReverseKind, mapType], [$Bool, $String, logger.Range], false)}]; + ptrType$20.methods = [{prop: "Resolve", name: "Resolve", pkg: "", typ: $funcType([$String, $String, ast.ImportKind], [ptrType$25, DebugMeta], false)}, {prop: "ResolveGlob", name: "ResolveGlob", pkg: "", typ: $funcType([$String, sliceType$17, ast.ImportKind, $String], [mapType$7, ptrType$27], false)}, {prop: "ProbeResolvePackageAsRelative", name: "ProbeResolvePackageAsRelative", pkg: "", typ: $funcType([$String, $String, ast.ImportKind], [ptrType$25, DebugMeta], false)}]; + resolverQuery.methods = [{prop: "resolveToUnqualified", name: "resolveToUnqualified", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String, $String, ptrType$15], [pnpResult], false)}, {prop: "findLocator", name: "findLocator", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([ptrType$15, $String], [pnpIdentAndReference, $Bool], false)}, {prop: "resolveViaFallback", name: "resolveViaFallback", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([ptrType$15, $String], [pnpIdentAndReference, $Bool], false)}, {prop: "getPackage", name: "getPackage", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([ptrType$15, $String, $String], [pnpPackage, $Bool], false)}, {prop: "extractYarnPnPDataFromJSON", name: "extractYarnPnPDataFromJSON", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String, pnpDataMode], [js_ast.Expr, logger.Source], false)}, {prop: "tryToExtractYarnPnPDataFromJS", name: "tryToExtractYarnPnPDataFromJS", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String, pnpDataMode], [js_ast.Expr, logger.Source], false)}, {prop: "isExternal", name: "isExternal", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([config.ExternalMatchers, $String, ast.ImportKind], [$Bool], false)}, {prop: "flushDebugLogs", name: "flushDebugLogs", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([flushMode], [], false)}, {prop: "finalizeResolve", name: "finalizeResolve", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([ptrType$25], [], false)}, {prop: "resolveWithoutSymlinks", name: "resolveWithoutSymlinks", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String, ptrType$26, $String], [ptrType$25], false)}, {prop: "resolveWithoutRemapping", name: "resolveWithoutRemapping", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([ptrType$26, $String], [PathPair, $Bool, ptrType$22, ptrType$23], false)}, {prop: "tsConfigForDir", name: "tsConfigForDir", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([ptrType$26], [ptrType$9], false)}, {prop: "dirInfoCached", name: "dirInfoCached", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String], [ptrType$26], false)}, {prop: "parseTSConfig", name: "parseTSConfig", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String, mapType, $String], [ptrType$9, $error], false)}, {prop: "parseTSConfigFromSource", name: "parseTSConfigFromSource", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([logger.Source, mapType, $String], [ptrType$9, $error], false)}, {prop: "dirInfoUncached", name: "dirInfoUncached", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String], [ptrType$26], false)}, {prop: "loadAsFile", name: "loadAsFile", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String, sliceType], [$String, $Bool, ptrType$22], false)}, {prop: "loadAsIndex", name: "loadAsIndex", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([ptrType$26, sliceType], [PathPair, $Bool, ptrType$22], false)}, {prop: "loadAsIndexWithBrowserRemapping", name: "loadAsIndexWithBrowserRemapping", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([ptrType$26, $String, sliceType], [PathPair, $Bool, ptrType$22], false)}, {prop: "loadAsFileOrDirectory", name: "loadAsFileOrDirectory", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String], [PathPair, $Bool, ptrType$22], false)}, {prop: "loadAsDirectory", name: "loadAsDirectory", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String], [PathPair, $Bool, ptrType$22], false)}, {prop: "loadAsMainField", name: "loadAsMainField", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([ptrType$26, $String, sliceType], [PathPair, $Bool, ptrType$22], false)}, {prop: "matchTSConfigPaths", name: "matchTSConfigPaths", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([ptrType$9, $String], [PathPair, $Bool, ptrType$22], false)}, {prop: "loadPackageImports", name: "loadPackageImports", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String, ptrType$26], [PathPair, $Bool, ptrType$22, ptrType$23], false)}, {prop: "esmResolveAlgorithm", name: "esmResolveAlgorithm", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([finalizeImportsExportsKind, $String, $String, ptrType$30, $String, $String], [PathPair, $Bool, ptrType$22], false)}, {prop: "loadNodeModules", name: "loadNodeModules", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String, ptrType$26, $Bool], [PathPair, $Bool, ptrType$22, ptrType$23], false)}, {prop: "checkForBuiltInNodeModules", name: "checkForBuiltInNodeModules", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String], [PathPair, $Bool, ptrType$23], false)}, {prop: "finalizeImportsExportsResult", name: "finalizeImportsExportsResult", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([finalizeImportsExportsKind, $String, mapType, pjMap, ptrType$30, $String, pjStatus, pjDebug, $String, $String, $String], [PathPair, $Bool, ptrType$22], false)}, {prop: "checkBrowserMap", name: "checkBrowserMap", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([ptrType$26, $String, browserPathKind], [ptrType$7, $Bool], false)}, {prop: "parsePackageJSON", name: "parsePackageJSON", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String], [ptrType$30], false)}, {prop: "esmHandlePostConditions", name: "esmHandlePostConditions", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String, pjStatus, pjDebug], [$String, pjStatus, pjDebug], false)}, {prop: "esmPackageImportsResolve", name: "esmPackageImportsResolve", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String, pjEntry, mapType], [$String, pjStatus, pjDebug], false)}, {prop: "esmPackageExportsResolve", name: "esmPackageExportsResolve", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String, $String, pjEntry, mapType], [$String, pjStatus, pjDebug], false)}, {prop: "esmPackageImportsExportsResolve", name: "esmPackageImportsExportsResolve", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String, pjEntry, $String, $Bool, mapType], [$String, pjStatus, pjDebug], false)}, {prop: "esmPackageTargetResolve", name: "esmPackageTargetResolve", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String, pjEntry, $String, $Bool, $Bool, mapType], [$String, pjStatus, pjDebug], false)}, {prop: "esmPackageExportsReverseResolve", name: "esmPackageExportsReverseResolve", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String, pjEntry, mapType], [$Bool, $String, logger.Range], false)}, {prop: "esmPackageImportsExportsReverseResolve", name: "esmPackageImportsExportsReverseResolve", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String, pjEntry, mapType], [$Bool, $String, logger.Range], false)}, {prop: "esmPackageTargetReverseResolve", name: "esmPackageTargetReverseResolve", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String, $String, pjEntry, esmReverseKind, mapType], [$Bool, $String, logger.Range], false)}]; ptrType.methods = [{prop: "addNote", name: "addNote", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String], [], false)}, {prop: "increaseIndent", name: "increaseIndent", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([], [], false)}, {prop: "decreaseIndent", name: "decreaseIndent", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([], [], false)}]; pjEntry.methods = [{prop: "valueForKey", name: "valueForKey", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([$String], [pjEntry, $Bool], false)}, {prop: "keysStartWithDot", name: "keysStartWithDot", pkg: "github.com/evanw/esbuild/internal/resolver", typ: $funcType([], [$Bool], false)}]; expansionKeysArray.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}]; @@ -194754,13 +195998,13 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { TSConfigPaths.init("", [{prop: "Map", name: "Map", embedded: false, exported: true, typ: mapType$6, tag: ""}, {prop: "Source", name: "Source", embedded: false, exported: true, typ: logger.Source, tag: ""}]); PathPair.init("", [{prop: "Primary", name: "Primary", embedded: false, exported: true, typ: logger.Path, tag: ""}, {prop: "Secondary", name: "Secondary", embedded: false, exported: true, typ: logger.Path, tag: ""}, {prop: "IsExternal", name: "IsExternal", embedded: false, exported: true, typ: $Bool, tag: ""}]); SideEffectsData.init("", [{prop: "Source", name: "Source", embedded: false, exported: true, typ: ptrType$13, tag: ""}, {prop: "PluginName", name: "PluginName", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Range", name: "Range", embedded: false, exported: true, typ: logger.Range, tag: ""}, {prop: "IsSideEffectsArrayInJSON", name: "IsSideEffectsArrayInJSON", embedded: false, exported: true, typ: $Bool, tag: ""}]); - ResolveResult.init("", [{prop: "PathPair", name: "PathPair", embedded: false, exported: true, typ: PathPair, tag: ""}, {prop: "PluginData", name: "PluginData", embedded: false, exported: true, typ: $emptyInterface, tag: ""}, {prop: "DifferentCase", name: "DifferentCase", embedded: false, exported: true, typ: ptrType$21, tag: ""}, {prop: "PrimarySideEffectsData", name: "PrimarySideEffectsData", embedded: false, exported: true, typ: ptrType$22, tag: ""}, {prop: "TSConfigJSX", name: "TSConfigJSX", embedded: false, exported: true, typ: config.TSConfigJSX, tag: ""}, {prop: "TSConfig", name: "TSConfig", embedded: false, exported: true, typ: ptrType$23, tag: ""}, {prop: "TSAlwaysStrict", name: "TSAlwaysStrict", embedded: false, exported: true, typ: ptrType$6, tag: ""}, {prop: "ModuleTypeData", name: "ModuleTypeData", embedded: false, exported: true, typ: js_ast.ModuleTypeData, tag: ""}]); + ResolveResult.init("", [{prop: "PathPair", name: "PathPair", embedded: false, exported: true, typ: PathPair, tag: ""}, {prop: "PluginData", name: "PluginData", embedded: false, exported: true, typ: $emptyInterface, tag: ""}, {prop: "DifferentCase", name: "DifferentCase", embedded: false, exported: true, typ: ptrType$22, tag: ""}, {prop: "PrimarySideEffectsData", name: "PrimarySideEffectsData", embedded: false, exported: true, typ: ptrType$23, tag: ""}, {prop: "TSConfigJSX", name: "TSConfigJSX", embedded: false, exported: true, typ: config.TSConfigJSX, tag: ""}, {prop: "TSConfig", name: "TSConfig", embedded: false, exported: true, typ: ptrType$24, tag: ""}, {prop: "TSAlwaysStrict", name: "TSAlwaysStrict", embedded: false, exported: true, typ: ptrType$6, tag: ""}, {prop: "ModuleTypeData", name: "ModuleTypeData", embedded: false, exported: true, typ: js_ast.ModuleTypeData, tag: ""}]); DebugMeta.init("github.com/evanw/esbuild/internal/resolver", [{prop: "notes", name: "notes", embedded: false, exported: false, typ: sliceType$4, tag: ""}, {prop: "suggestionText", name: "suggestionText", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "suggestionMessage", name: "suggestionMessage", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "suggestionRange", name: "suggestionRange", embedded: false, exported: false, typ: suggestionRange, tag: ""}, {prop: "ModifiedImportPath", name: "ModifiedImportPath", embedded: false, exported: true, typ: $String, tag: ""}]); Resolver.init("github.com/evanw/esbuild/internal/resolver", [{prop: "fs", name: "fs", embedded: false, exported: false, typ: fs.FS, tag: ""}, {prop: "log", name: "log", embedded: false, exported: false, typ: logger.Log, tag: ""}, {prop: "caches", name: "caches", embedded: false, exported: false, typ: ptrType$14, tag: ""}, {prop: "tsConfigOverride", name: "tsConfigOverride", embedded: false, exported: false, typ: ptrType$9, tag: ""}, {prop: "esmConditionsDefault", name: "esmConditionsDefault", embedded: false, exported: false, typ: mapType, tag: ""}, {prop: "esmConditionsImport", name: "esmConditionsImport", embedded: false, exported: false, typ: mapType, tag: ""}, {prop: "esmConditionsRequire", name: "esmConditionsRequire", embedded: false, exported: false, typ: mapType, tag: ""}, {prop: "cssExtensionOrder", name: "cssExtensionOrder", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "nodeModulesExtensionOrder", name: "nodeModulesExtensionOrder", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "dirCache", name: "dirCache", embedded: false, exported: false, typ: mapType$8, tag: ""}, {prop: "pnpManifestWasChecked", name: "pnpManifestWasChecked", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "pnpManifest", name: "pnpManifest", embedded: false, exported: false, typ: ptrType$15, tag: ""}, {prop: "options", name: "options", embedded: false, exported: false, typ: config.Options, tag: ""}, {prop: "mutex", name: "mutex", embedded: false, exported: false, typ: sync.Mutex, tag: ""}]); - resolverQuery.init("github.com/evanw/esbuild/internal/resolver", [{prop: "Resolver", name: "Resolver", embedded: true, exported: true, typ: ptrType$19, tag: ""}, {prop: "debugMeta", name: "debugMeta", embedded: false, exported: false, typ: ptrType$20, tag: ""}, {prop: "debugLogs", name: "debugLogs", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "kind", name: "kind", embedded: false, exported: false, typ: ast.ImportKind, tag: ""}]); + resolverQuery.init("github.com/evanw/esbuild/internal/resolver", [{prop: "Resolver", name: "Resolver", embedded: true, exported: true, typ: ptrType$20, tag: ""}, {prop: "debugMeta", name: "debugMeta", embedded: false, exported: false, typ: ptrType$21, tag: ""}, {prop: "debugLogs", name: "debugLogs", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "kind", name: "kind", embedded: false, exported: false, typ: ast.ImportKind, tag: ""}]); debugLogs.init("github.com/evanw/esbuild/internal/resolver", [{prop: "what", name: "what", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "indent", name: "indent", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "notes", name: "notes", embedded: false, exported: false, typ: sliceType$4, tag: ""}]); - dirInfo.init("github.com/evanw/esbuild/internal/resolver", [{prop: "parent", name: "parent", embedded: false, exported: false, typ: ptrType$25, tag: ""}, {prop: "enclosingBrowserScope", name: "enclosingBrowserScope", embedded: false, exported: false, typ: ptrType$25, tag: ""}, {prop: "absPath", name: "absPath", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "pnpManifestAbsPath", name: "pnpManifestAbsPath", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "entries", name: "entries", embedded: false, exported: false, typ: fs.DirEntries, tag: ""}, {prop: "packageJSON", name: "packageJSON", embedded: false, exported: false, typ: ptrType$29, tag: ""}, {prop: "enclosingPackageJSON", name: "enclosingPackageJSON", embedded: false, exported: false, typ: ptrType$29, tag: ""}, {prop: "enclosingTSConfigJSON", name: "enclosingTSConfigJSON", embedded: false, exported: false, typ: ptrType$9, tag: ""}, {prop: "absRealPath", name: "absRealPath", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "isNodeModules", name: "isNodeModules", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "hasNodeModules", name: "hasNodeModules", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "isInsideNodeModules", name: "isInsideNodeModules", embedded: false, exported: false, typ: $Bool, tag: ""}]); - packageJSON.init("github.com/evanw/esbuild/internal/resolver", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "mainFields", name: "mainFields", embedded: false, exported: false, typ: mapType$9, tag: ""}, {prop: "moduleTypeData", name: "moduleTypeData", embedded: false, exported: false, typ: js_ast.ModuleTypeData, tag: ""}, {prop: "tsconfig", name: "tsconfig", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "browserMap", name: "browserMap", embedded: false, exported: false, typ: mapType$10, tag: ""}, {prop: "sideEffectsMap", name: "sideEffectsMap", embedded: false, exported: false, typ: mapType, tag: ""}, {prop: "sideEffectsRegexps", name: "sideEffectsRegexps", embedded: false, exported: false, typ: sliceType$12, tag: ""}, {prop: "sideEffectsData", name: "sideEffectsData", embedded: false, exported: false, typ: ptrType$22, tag: ""}, {prop: "importsMap", name: "importsMap", embedded: false, exported: false, typ: ptrType$30, tag: ""}, {prop: "exportsMap", name: "exportsMap", embedded: false, exported: false, typ: ptrType$30, tag: ""}, {prop: "source", name: "source", embedded: false, exported: false, typ: logger.Source, tag: ""}]); + dirInfo.init("github.com/evanw/esbuild/internal/resolver", [{prop: "parent", name: "parent", embedded: false, exported: false, typ: ptrType$26, tag: ""}, {prop: "enclosingBrowserScope", name: "enclosingBrowserScope", embedded: false, exported: false, typ: ptrType$26, tag: ""}, {prop: "absPath", name: "absPath", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "pnpManifestAbsPath", name: "pnpManifestAbsPath", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "entries", name: "entries", embedded: false, exported: false, typ: fs.DirEntries, tag: ""}, {prop: "packageJSON", name: "packageJSON", embedded: false, exported: false, typ: ptrType$30, tag: ""}, {prop: "enclosingPackageJSON", name: "enclosingPackageJSON", embedded: false, exported: false, typ: ptrType$30, tag: ""}, {prop: "enclosingTSConfigJSON", name: "enclosingTSConfigJSON", embedded: false, exported: false, typ: ptrType$9, tag: ""}, {prop: "absRealPath", name: "absRealPath", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "isNodeModules", name: "isNodeModules", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "hasNodeModules", name: "hasNodeModules", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "isInsideNodeModules", name: "isInsideNodeModules", embedded: false, exported: false, typ: $Bool, tag: ""}]); + packageJSON.init("github.com/evanw/esbuild/internal/resolver", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "mainFields", name: "mainFields", embedded: false, exported: false, typ: mapType$9, tag: ""}, {prop: "moduleTypeData", name: "moduleTypeData", embedded: false, exported: false, typ: js_ast.ModuleTypeData, tag: ""}, {prop: "tsconfig", name: "tsconfig", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "browserMap", name: "browserMap", embedded: false, exported: false, typ: mapType$10, tag: ""}, {prop: "sideEffectsMap", name: "sideEffectsMap", embedded: false, exported: false, typ: mapType, tag: ""}, {prop: "sideEffectsRegexps", name: "sideEffectsRegexps", embedded: false, exported: false, typ: sliceType$12, tag: ""}, {prop: "sideEffectsData", name: "sideEffectsData", embedded: false, exported: false, typ: ptrType$23, tag: ""}, {prop: "importsMap", name: "importsMap", embedded: false, exported: false, typ: ptrType$31, tag: ""}, {prop: "exportsMap", name: "exportsMap", embedded: false, exported: false, typ: ptrType$31, tag: ""}, {prop: "source", name: "source", embedded: false, exported: false, typ: logger.Source, tag: ""}]); mainField.init("github.com/evanw/esbuild/internal/resolver", [{prop: "relPath", name: "relPath", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "keyLoc", name: "keyLoc", embedded: false, exported: false, typ: logger.Loc, tag: ""}]); pjMap.init("github.com/evanw/esbuild/internal/resolver", [{prop: "root", name: "root", embedded: false, exported: false, typ: pjEntry, tag: ""}, {prop: "propertyKey", name: "propertyKey", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "propertyKeyLoc", name: "propertyKeyLoc", embedded: false, exported: false, typ: logger.Loc, tag: ""}]); pjEntry.init("github.com/evanw/esbuild/internal/resolver", [{prop: "strData", name: "strData", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "arrData", name: "arrData", embedded: false, exported: false, typ: sliceType$13, tag: ""}, {prop: "mapData", name: "mapData", embedded: false, exported: false, typ: sliceType$14, tag: ""}, {prop: "expansionKeys", name: "expansionKeys", embedded: false, exported: false, typ: expansionKeysArray, tag: ""}, {prop: "firstToken", name: "firstToken", embedded: false, exported: false, typ: logger.Range, tag: ""}, {prop: "kind", name: "kind", embedded: false, exported: false, typ: pjKind, tag: ""}]); @@ -194806,7 +196050,7 @@ $packages["github.com/evanw/esbuild/internal/resolver"] = (function() { return $pkg; })(); $packages["github.com/evanw/esbuild/internal/graph"] = (function() { - var $pkg = {}, $init, ast, config, css_ast, helpers, js_ast, logger, resolver, runtime, sourcemap, sort, sync, WrapKind, JSReprMeta, ImportData, ExportData, InputFile, OutputFile, SideEffects, SideEffectsKind, InputFileRepr, JSRepr, CSSRepr, CopyRepr, entryPointKind, LinkerFile, EntryPoint, LinkerGraph, sliceType, ptrType, sliceType$1, ptrType$1, sliceType$2, sliceType$3, ptrType$2, ptrType$3, sliceType$4, ptrType$4, sliceType$5, sliceType$6, ptrType$5, sliceType$7, sliceType$8, sliceType$9, ptrType$6, ptrType$7, sliceType$10, ptrType$8, sliceType$11, sliceType$12, sliceType$13, sliceType$14, ptrType$9, ptrType$10, ptrType$11, ptrType$12, sliceType$15, mapType, mapType$1, mapType$2, mapType$3, ptrType$13, sliceType$16, ptrType$14, sliceType$17, ptrType$15, ptrType$16, arrayType, sliceType$18, sliceType$19, sliceType$20, ptrType$17, ptrType$18, ptrType$19, mapType$4, mapType$5, mapType$6, CloneLinkerGraph; + var $pkg = {}, $init, ast, config, css_ast, helpers, js_ast, logger, resolver, runtime, sourcemap, sort, sync, WrapKind, JSReprMeta, ImportData, ExportData, InputFile, OutputFile, SideEffects, SideEffectsKind, InputFileRepr, JSRepr, CSSRepr, CopyRepr, entryPointKind, LinkerFile, EntryPoint, LinkerGraph, sliceType, ptrType, sliceType$1, ptrType$1, sliceType$2, sliceType$3, ptrType$2, ptrType$3, ptrType$4, sliceType$4, ptrType$5, sliceType$5, sliceType$6, ptrType$6, sliceType$7, sliceType$8, sliceType$9, ptrType$7, ptrType$8, ptrType$9, ptrType$10, sliceType$10, ptrType$11, sliceType$11, sliceType$12, sliceType$13, sliceType$14, ptrType$12, ptrType$13, ptrType$14, ptrType$15, sliceType$15, mapType, mapType$1, mapType$2, mapType$3, ptrType$16, sliceType$16, ptrType$17, sliceType$17, ptrType$18, ptrType$19, arrayType, sliceType$18, sliceType$19, sliceType$20, ptrType$20, ptrType$21, mapType$4, mapType$5, mapType$6, CloneLinkerGraph; ast = $packages["github.com/evanw/esbuild/internal/ast"]; config = $packages["github.com/evanw/esbuild/internal/config"]; css_ast = $packages["github.com/evanw/esbuild/internal/css_ast"]; @@ -194825,8 +196069,8 @@ $packages["github.com/evanw/esbuild/internal/graph"] = (function() { this.IsProbablyTypeScriptType = false; this.ImportsToBind = false; this.ResolvedExports = false; - this.ResolvedExportStar = ptrType$11.nil; - this.ResolvedExportTypos = ptrType$12.nil; + this.ResolvedExportStar = ptrType$14.nil; + this.ResolvedExportTypos = ptrType$15.nil; this.SortedAndFilteredExportAliases = sliceType$15.nil; this.TopLevelSymbolToPartsOverlay = false; this.CJSExportCopies = sliceType$12.nil; @@ -194889,10 +196133,10 @@ $packages["github.com/evanw/esbuild/internal/graph"] = (function() { this.$val = this; if (arguments.length === 0) { this.Repr = $ifaceNil; - this.InputSourceMap = ptrType$13.nil; + this.InputSourceMap = ptrType$16.nil; this.AdditionalFiles = sliceType$16.nil; this.UniqueKeyForAdditionalFile = ""; - this.SideEffects = new SideEffects.ptr(ptrType$14.nil, 0); + this.SideEffects = new SideEffects.ptr(ptrType$17.nil, 0); this.Source = new logger.Source.ptr("", "", "", new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), 0); this.Loader = 0; this.OmitFromSourceMapsAndMetafile = false; @@ -194924,7 +196168,7 @@ $packages["github.com/evanw/esbuild/internal/graph"] = (function() { SideEffects = $newType(0, $kindStruct, "graph.SideEffects", true, "github.com/evanw/esbuild/internal/graph", true, function(Data_, Kind_) { this.$val = this; if (arguments.length === 0) { - this.Data = ptrType$14.nil; + this.Data = ptrType$17.nil; this.Kind = 0; return; } @@ -194936,8 +196180,8 @@ $packages["github.com/evanw/esbuild/internal/graph"] = (function() { JSRepr = $newType(0, $kindStruct, "graph.JSRepr", true, "github.com/evanw/esbuild/internal/graph", true, function(Meta_, AST_, CSSSourceIndex_) { this.$val = this; if (arguments.length === 0) { - this.Meta = new JSReprMeta.ptr(false, false, false, ptrType$11.nil, ptrType$12.nil, sliceType$15.nil, false, sliceType$12.nil, new ast.Index32.ptr(0), new ast.Index32.ptr(0), false, 0, false, false, false, false); - this.AST = new js_ast.AST.ptr(new js_ast.ModuleTypeData.ptr(ptrType$15.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0), sliceType$5.nil, sliceType$4.nil, false, ptrType$5.nil, ptrType$16.nil, new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), "", sliceType$15.nil, "", false, false, false, false, false, sliceType.nil, false, false, sliceType$1.nil, new logger.Span.ptr("", new logger.Range.ptr(new logger.Loc.ptr(0), 0)), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new ast.Ref.ptr(0, 0), new ast.Ref.ptr(0, 0), new ast.Ref.ptr(0, 0), 0, arrayType.zero(), false, false, false, 0); + this.Meta = new JSReprMeta.ptr(false, false, false, ptrType$14.nil, ptrType$15.nil, sliceType$15.nil, false, sliceType$12.nil, new ast.Index32.ptr(0), new ast.Index32.ptr(0), false, 0, false, false, false, false); + this.AST = new js_ast.AST.ptr(new js_ast.ModuleTypeData.ptr(ptrType$18.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0), sliceType$5.nil, sliceType$4.nil, false, ptrType$6.nil, ptrType$19.nil, new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), "", sliceType$15.nil, "", false, false, false, false, false, sliceType.nil, false, false, sliceType$1.nil, new logger.Span.ptr("", new logger.Range.ptr(new logger.Loc.ptr(0), 0)), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new ast.Ref.ptr(0, 0), new ast.Ref.ptr(0, 0), new ast.Ref.ptr(0, 0), 0, arrayType.zero(), false, false, false, 0); this.CSSSourceIndex = new ast.Index32.ptr(0); return; } @@ -194948,7 +196192,7 @@ $packages["github.com/evanw/esbuild/internal/graph"] = (function() { CSSRepr = $newType(0, $kindStruct, "graph.CSSRepr", true, "github.com/evanw/esbuild/internal/graph", true, function(AST_, JSSourceIndex_) { this.$val = this; if (arguments.length === 0) { - this.AST = new css_ast.AST.ptr(sliceType$4.nil, ptrType$16.nil, sliceType.nil, sliceType$18.nil, new logger.Span.ptr("", new logger.Range.ptr(new logger.Loc.ptr(0), 0)), 0, sliceType$19.nil, false, false, false, sliceType$20.nil, sliceType$20.nil); + this.AST = new css_ast.AST.ptr(sliceType$4.nil, ptrType$19.nil, sliceType.nil, sliceType$18.nil, new logger.Span.ptr("", new logger.Range.ptr(new logger.Loc.ptr(0), 0)), 0, sliceType$19.nil, false, false, false, sliceType$20.nil, sliceType$20.nil); this.JSSourceIndex = new ast.Index32.ptr(0); return; } @@ -194969,7 +196213,7 @@ $packages["github.com/evanw/esbuild/internal/graph"] = (function() { if (arguments.length === 0) { this.EntryBits = new helpers.BitSet.ptr(sliceType$17.nil); this.lazyLineColumnTracker = ptrType$1.nil; - this.InputFile = new InputFile.ptr($ifaceNil, ptrType$13.nil, sliceType$16.nil, "", new SideEffects.ptr(ptrType$14.nil, 0), new logger.Source.ptr("", "", "", new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), 0), 0, false); + this.InputFile = new InputFile.ptr($ifaceNil, ptrType$16.nil, sliceType$16.nil, "", new SideEffects.ptr(ptrType$17.nil, 0), new logger.Source.ptr("", "", "", new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), 0), 0, false); this.DistanceFromEntryPoint = 0; this.EntryPointChunkIndex = 0; this.entryPointKind = 0; @@ -195039,46 +196283,48 @@ $packages["github.com/evanw/esbuild/internal/graph"] = (function() { ptrType$1 = $ptrType(logger.LineColumnTracker); sliceType$2 = $sliceType(EntryPoint); sliceType$3 = $sliceType(LinkerFile); - ptrType$2 = $ptrType(JSRepr); - ptrType$3 = $ptrType(CSSRepr); + ptrType$2 = $ptrType(LinkerFile); + ptrType$3 = $ptrType(JSRepr); + ptrType$4 = $ptrType(CSSRepr); sliceType$4 = $sliceType(ast.Symbol); - ptrType$4 = $ptrType(ast.NamespaceAlias); + ptrType$5 = $ptrType(ast.NamespaceAlias); sliceType$5 = $sliceType(js_ast.Part); sliceType$6 = $sliceType(js_ast.Stmt); - ptrType$5 = $ptrType(js_ast.Scope); - sliceType$7 = $sliceType(ptrType$5); + ptrType$6 = $ptrType(js_ast.Scope); + sliceType$7 = $sliceType(ptrType$6); sliceType$8 = $sliceType(js_ast.DeclaredSymbol); sliceType$9 = $sliceType(js_ast.Dependency); - ptrType$6 = $ptrType(ast.ImportAssertOrWith); - ptrType$7 = $ptrType(ast.GlobPattern); + ptrType$7 = $ptrType(js_ast.Part); + ptrType$8 = $ptrType(ast.ImportAssertOrWith); + ptrType$9 = $ptrType(ast.GlobPattern); + ptrType$10 = $ptrType(ast.ImportRecord); sliceType$10 = $sliceType(ImportData); - ptrType$8 = $ptrType(js_ast.TSNamespaceScope); + ptrType$11 = $ptrType(js_ast.TSNamespaceScope); sliceType$11 = $sliceType(js_ast.ScopeMember); sliceType$12 = $sliceType(ast.Ref); sliceType$13 = $sliceType($Int); sliceType$14 = $sliceType(sliceType$4); - ptrType$9 = $ptrType(sliceType$4); - ptrType$10 = $ptrType(sliceType$12); - ptrType$11 = $ptrType(ExportData); - ptrType$12 = $ptrType(helpers.TypoDetector); + ptrType$12 = $ptrType(sliceType$4); + ptrType$13 = $ptrType(sliceType$12); + ptrType$14 = $ptrType(ExportData); + ptrType$15 = $ptrType(helpers.TypoDetector); sliceType$15 = $sliceType($String); mapType = $mapType(ast.Ref, $Bool); mapType$1 = $mapType(ast.Ref, ImportData); mapType$2 = $mapType($String, ExportData); mapType$3 = $mapType(ast.Ref, sliceType$1); - ptrType$13 = $ptrType(sourcemap.SourceMap); + ptrType$16 = $ptrType(sourcemap.SourceMap); sliceType$16 = $sliceType(OutputFile); - ptrType$14 = $ptrType(resolver.SideEffectsData); + ptrType$17 = $ptrType(resolver.SideEffectsData); sliceType$17 = $sliceType($Uint8); - ptrType$15 = $ptrType(logger.Source); - ptrType$16 = $ptrType(ast.CharFreq); + ptrType$18 = $ptrType(logger.Source); + ptrType$19 = $ptrType(ast.CharFreq); arrayType = $arrayType($Uint32, 4); sliceType$18 = $sliceType(css_ast.Rule); sliceType$19 = $sliceType(ast.LocRef); sliceType$20 = $sliceType(sliceType$15); - ptrType$17 = $ptrType(CopyRepr); - ptrType$18 = $ptrType(LinkerFile); - ptrType$19 = $ptrType(LinkerGraph); + ptrType$20 = $ptrType(CopyRepr); + ptrType$21 = $ptrType(LinkerGraph); mapType$4 = $mapType($String, js_ast.TSEnumValue); mapType$5 = $mapType(ast.Ref, mapType$4); mapType$6 = $mapType(ast.Ref, js_ast.ConstValue); @@ -195161,19 +196407,19 @@ $packages["github.com/evanw/esbuild/internal/graph"] = (function() { sourceIndex = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); ((sourceIndex < 0 || sourceIndex >= stableSourceIndices.$length) ? ($throwRuntimeError("index out of range"), undefined) : stableSourceIndices.$array[stableSourceIndices.$offset + sourceIndex] = ((stableIndex >>> 0))); $go((function(codeSplitting, dynamicImportEntryPoints, dynamicImportEntryPointsMutex, files, inputFiles, symbols, waitGroup) { return function CloneLinkerGraph·func1(sourceIndex$1) { - var {_entry, _entry$1, _entry$2, _i$2, _i$3, _i$4, _i$5, _i$6, _key, _key$1, _key$2, _key$3, _key$4, _key$5, _keys, _keys$1, _keys$2, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _size, _size$1, _size$2, alias, clone, clone$1, clone$2, file, fileSymbols, fileSymbols$1, i, importRecordIndex, k, name, namedImports, new$1, part, record, ref, repr, repr$1, resolvedExports, sourceIndex$1, uses, v, x$1, x$2, x$3, x$4, x$5, x$6, $s, $r, $c} = $restore(this, {sourceIndex$1}); + var {_entry, _entry$1, _entry$2, _i$2, _i$3, _i$4, _i$5, _i$6, _key, _key$1, _key$2, _key$3, _key$4, _key$5, _keys, _keys$1, _keys$2, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _size, _size$1, _size$2, alias, clone, clone$1, clone$2, file, fileSymbols, fileSymbols$1, i, importRecordIndex, k, name, namedImports, new$1, part, record, ref, repr, repr$1, resolvedExports, sourceIndex$1, uses, v, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r, $c} = $restore(this, {sourceIndex$1}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: clone = [clone]; clone$1 = [clone$1]; - file = ((sourceIndex$1 < 0 || sourceIndex$1 >= files[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : files[0].$array[files[0].$offset + sourceIndex$1]); + file = ((sourceIndex$1 < 0 || sourceIndex$1 >= files[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(files[0].$array, files[0].$offset + sourceIndex$1, ptrType$2)); InputFile.copy(file.InputFile, ((sourceIndex$1 < 0 || sourceIndex$1 >= inputFiles[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : inputFiles[0].$array[inputFiles[0].$offset + sourceIndex$1])); _ref$2 = file.InputFile.Repr; - /* */ if ($assertType(_ref$2, ptrType$2, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref$2, ptrType$3, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref$2, ptrType$3, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref$2, ptrType$4, true)[1]) { $s = 2; continue; } /* */ $s = 3; continue; - /* if ($assertType(_ref$2, ptrType$2, true)[1]) { */ case 1: + /* if ($assertType(_ref$2, ptrType$3, true)[1]) { */ case 1: repr = _ref$2.$val; - clone[0] = $clone(repr, JSRepr); + clone[0] = $clone((repr === ptrType$3.nil && $throwNilPointerError(), repr), JSRepr); repr = clone[0]; file.InputFile.Repr = repr; fileSymbols = $appendSlice(new sliceType$4([]), repr.AST.Symbols); @@ -195185,7 +196431,7 @@ $packages["github.com/evanw/esbuild/internal/graph"] = (function() { while (true) { if (!(_i$2 < _ref$3.$length)) { break; } i = _i$2; - part = (x$2 = repr.AST.Parts, ((i < 0 || i >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i])); + part = (x$2 = repr.AST.Parts, ((i < 0 || i >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$2.$array, x$2.$offset + i, ptrType$7))); clone$2 = (x$3 = (part.SymbolUses ? part.SymbolUses.size : 0), ((x$3 < 0 || x$3 > 2147483647) ? $throwRuntimeError("makemap: size out of range") : new $global.Map())); _ref$4 = part.SymbolUses; _i$3 = 0; @@ -195216,14 +196462,14 @@ $packages["github.com/evanw/esbuild/internal/graph"] = (function() { /* while (true) { */ case 6: /* if (!(_i$4 < _ref$5.$length)) { break; } */ if(!(_i$4 < _ref$5.$length)) { $s = 7; continue; } importRecordIndex = _i$4; - record = (x$4 = repr.AST.ImportRecords, ((importRecordIndex < 0 || importRecordIndex >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + importRecordIndex])); + record = (x$4 = repr.AST.ImportRecords, ((importRecordIndex < 0 || importRecordIndex >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$4.$array, x$4.$offset + importRecordIndex, ptrType$10))); /* */ if ($clone(record.SourceIndex, ast.Index32).IsValid() && (record.Kind === 3)) { $s = 8; continue; } /* */ $s = 9; continue; /* if ($clone(record.SourceIndex, ast.Index32).IsValid() && (record.Kind === 3)) { */ case 8: $r = dynamicImportEntryPointsMutex[0].Lock(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } dynamicImportEntryPoints[0] = $append(dynamicImportEntryPoints[0], $clone(record.SourceIndex, ast.Index32).GetIndex()); $r = dynamicImportEntryPointsMutex[0].Unlock(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - record.AssertOrWith = ptrType$6.nil; + record.AssertOrWith = ptrType$8.nil; /* } */ case 9: _i$4++; $s = 6; continue; @@ -195266,28 +196512,28 @@ $packages["github.com/evanw/esbuild/internal/graph"] = (function() { _key$5 = alias; (resolvedExports || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$5), { k: _key$5, v: $clone(new ExportData.ptr(sliceType$10.nil, $clone(name.Ref, ast.Ref), $clone(name.AliasLoc, logger.Loc), sourceIndex$1), ExportData) }); _i$6++; } - new$1 = new js_ast.Scope.ptr(ptrType$8.nil, ptrType$5.nil, sliceType$7.nil, false, sliceType$11.nil, sliceType$12.nil, new logger.Loc.ptr(0), new ast.LocRef.ptr(new logger.Loc.ptr(0), new ast.Ref.ptr(0, 0)), false, false, false, false, 0, 0); - js_ast.Scope.copy(new$1, repr.AST.ModuleScope); + new$1 = new js_ast.Scope.ptr(ptrType$11.nil, ptrType$6.nil, sliceType$7.nil, false, sliceType$11.nil, sliceType$12.nil, new logger.Loc.ptr(0), new ast.LocRef.ptr(new logger.Loc.ptr(0), new ast.Ref.ptr(0, 0)), false, false, false, false, 0, 0); + js_ast.Scope.copy((new$1 === ptrType$6.nil && $throwNilPointerError(), new$1), (x$6 = repr.AST.ModuleScope, (x$6 === ptrType$6.nil && $throwNilPointerError(), x$6))); new$1.Generated = $appendSlice(new sliceType$12([]), new$1.Generated); repr.AST.ModuleScope = new$1; repr.Meta.ResolvedExports = resolvedExports; repr.Meta.IsProbablyTypeScriptType = new $global.Map(); repr.Meta.ImportsToBind = new $global.Map(); $s = 3; continue; - /* } else if ($assertType(_ref$2, ptrType$3, true)[1]) { */ case 2: + /* } else if ($assertType(_ref$2, ptrType$4, true)[1]) { */ case 2: repr$1 = _ref$2.$val; - clone$1[0] = $clone(repr$1, CSSRepr); + clone$1[0] = $clone((repr$1 === ptrType$4.nil && $throwNilPointerError(), repr$1), CSSRepr); repr$1 = clone$1[0]; file.InputFile.Repr = repr$1; fileSymbols$1 = $appendSlice(new sliceType$4([]), repr$1.AST.Symbols); - (x$6 = symbols[0].SymbolsForSource, ((sourceIndex$1 < 0 || sourceIndex$1 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + sourceIndex$1] = fileSymbols$1)); + (x$7 = symbols[0].SymbolsForSource, ((sourceIndex$1 < 0 || sourceIndex$1 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + sourceIndex$1] = fileSymbols$1)); repr$1.AST.Symbols = sliceType$4.nil; repr$1.AST.ImportRecords = $appendSlice(new sliceType([]), repr$1.AST.ImportRecords); /* } */ case 3: file.DistanceFromEntryPoint = 4294967295; waitGroup[0].Done(); $s = -1; return; - /* */ } return; } var $f = {$blk: CloneLinkerGraph·func1, $c: true, $r, _entry, _entry$1, _entry$2, _i$2, _i$3, _i$4, _i$5, _i$6, _key, _key$1, _key$2, _key$3, _key$4, _key$5, _keys, _keys$1, _keys$2, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _size, _size$1, _size$2, alias, clone, clone$1, clone$2, file, fileSymbols, fileSymbols$1, i, importRecordIndex, k, name, namedImports, new$1, part, record, ref, repr, repr$1, resolvedExports, sourceIndex$1, uses, v, x$1, x$2, x$3, x$4, x$5, x$6, $s};return $f; + /* */ } return; } var $f = {$blk: CloneLinkerGraph·func1, $c: true, $r, _entry, _entry$1, _entry$2, _i$2, _i$3, _i$4, _i$5, _i$6, _key, _key$1, _key$2, _key$3, _key$4, _key$5, _keys, _keys$1, _keys$2, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _size, _size$1, _size$2, alias, clone, clone$1, clone$2, file, fileSymbols, fileSymbols$1, i, importRecordIndex, k, name, namedImports, new$1, part, record, ref, repr, repr$1, resolvedExports, sourceIndex$1, uses, v, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s};return $f; }; })(codeSplitting, dynamicImportEntryPoints, dynamicImportEntryPointsMutex, files, inputFiles, symbols, waitGroup), [sourceIndex]); _i$1++; $s = 1; continue; @@ -195299,7 +196545,7 @@ $packages["github.com/evanw/esbuild/internal/graph"] = (function() { while (true) { if (!(_i$2 < _ref$2.$length)) { break; } sourceIndex$1 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); - otherFile = ((sourceIndex$1 < 0 || sourceIndex$1 >= files[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : files[0].$array[files[0].$offset + sourceIndex$1]); + otherFile = ((sourceIndex$1 < 0 || sourceIndex$1 >= files[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(files[0].$array, files[0].$offset + sourceIndex$1, ptrType$2)); if (otherFile.entryPointKind === 0) { stableEntryPoints = $append(stableEntryPoints, ((((sourceIndex$1 < 0 || sourceIndex$1 >= stableSourceIndices.$length) ? ($throwRuntimeError("index out of range"), undefined) : stableSourceIndices.$array[stableSourceIndices.$offset + sourceIndex$1]) >> 0))); otherFile.entryPointKind = 2; @@ -195323,9 +196569,9 @@ $packages["github.com/evanw/esbuild/internal/graph"] = (function() { while (true) { if (!(_i$4 < _ref$4.$length)) { break; } sourceIndex$2 = ((_i$4 < 0 || _i$4 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$4]); - file = ((sourceIndex$2 < 0 || sourceIndex$2 >= files[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : files[0].$array[files[0].$offset + sourceIndex$2]); + file = ((sourceIndex$2 < 0 || sourceIndex$2 >= files[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(files[0].$array, files[0].$offset + sourceIndex$2, ptrType$2)); helpers.BitSet.copy(file.EntryBits, helpers.NewBitSet(bitCount)); - _tuple = $assertType(file.InputFile.Repr, ptrType$2, true); + _tuple = $assertType(file.InputFile.Repr, ptrType$3, true); repr = _tuple[0]; ok = _tuple[1]; if (ok && !(repr.AST.TSEnums === false)) { @@ -195350,7 +196596,7 @@ $packages["github.com/evanw/esbuild/internal/graph"] = (function() { _i$5++; } } - _tuple$1 = $assertType(file.InputFile.Repr, ptrType$2, true); + _tuple$1 = $assertType(file.InputFile.Repr, ptrType$3, true); repr$1 = _tuple$1[0]; ok$1 = _tuple$1[1]; if (ok$1 && !(repr$1.AST.ConstValues === false)) { @@ -195392,7 +196638,7 @@ $packages["github.com/evanw/esbuild/internal/graph"] = (function() { if (part.SymbolUses === false) { part.SymbolUses = new $global.Map(); } - repr = $assertType((x = g.Files, ((sourceIndex < 0 || sourceIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + sourceIndex])).InputFile.Repr, ptrType$2); + repr = $assertType((x = g.Files, ((sourceIndex < 0 || sourceIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + sourceIndex])).InputFile.Repr, ptrType$3); partIndex = ((repr.AST.Parts.$length >>> 0)); repr.AST.Parts = $append(repr.AST.Parts, part); _ref = part.DeclaredSymbols; @@ -195420,10 +196666,10 @@ $packages["github.com/evanw/esbuild/internal/graph"] = (function() { $ptrType(LinkerGraph).prototype.GenerateNewSymbol = function GenerateNewSymbol(sourceIndex, kind, originalName) { var g, generated, kind, originalName, ref, sourceIndex, sourceSymbols, x, x$1, x$2; g = this; - sourceSymbols = (x = g.Symbols.SymbolsForSource, $indexPtr(x.$array, x.$offset + sourceIndex, ptrType$9)); + sourceSymbols = (x = g.Symbols.SymbolsForSource, ((sourceIndex < 0 || sourceIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + sourceIndex, ptrType$12))); ref = new ast.Ref.ptr(sourceIndex, ((sourceSymbols.$get().$length >>> 0))); - sourceSymbols.$set($append(sourceSymbols.$get(), new ast.Symbol.ptr(ptrType$4.nil, originalName, $clone(ast.InvalidRef, ast.Ref), 0, new ast.Index32.ptr(0), new ast.Index32.ptr(0), 0, kind, 0))); - generated = (x$1 = $assertType((x$2 = g.Files, ((sourceIndex < 0 || sourceIndex >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + sourceIndex])).InputFile.Repr, ptrType$2).AST.ModuleScope, (x$1.$ptr_Generated || (x$1.$ptr_Generated = new ptrType$10(function() { return this.$target.Generated; }, function($v) { this.$target.Generated = $v; }, x$1)))); + sourceSymbols.$set($append(sourceSymbols.$get(), new ast.Symbol.ptr(ptrType$5.nil, originalName, $clone(ast.InvalidRef, ast.Ref), 0, new ast.Index32.ptr(0), new ast.Index32.ptr(0), 0, kind, 0))); + generated = (x$1 = $assertType((x$2 = g.Files, ((sourceIndex < 0 || sourceIndex >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + sourceIndex])).InputFile.Repr, ptrType$3).AST.ModuleScope, (x$1 === ptrType$6.nil && $throwNilPointerError(), (x$1.$ptr_Generated || (x$1.$ptr_Generated = new ptrType$13(function() { return this.$target.Generated; }, function($v) { this.$target.Generated = $v; }, x$1))))); generated.$set($append(generated.$get(), ref)); return ref; }; @@ -195433,8 +196679,8 @@ $packages["github.com/evanw/esbuild/internal/graph"] = (function() { if (useCount === 0) { return; } - repr = $assertType((x = g.Files, ((sourceIndex < 0 || sourceIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + sourceIndex])).InputFile.Repr, ptrType$2); - part = (x$1 = repr.AST.Parts, ((partIndex < 0 || partIndex >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + partIndex])); + repr = $assertType((x = g.Files, ((sourceIndex < 0 || sourceIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + sourceIndex])).InputFile.Repr, ptrType$3); + part = (x$1 = repr.AST.Parts, ((partIndex < 0 || partIndex >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + partIndex, ptrType$7))); use = $clone((_entry = $mapIndex(part.SymbolUses,ast.Ref.keyFor(ref)), _entry !== undefined ? _entry.v : new js_ast.SymbolUse.ptr(0)), js_ast.SymbolUse); use.CountEstimate = use.CountEstimate + (useCount) >>> 0; _key = $clone(ref, ast.Ref); (part.SymbolUses || $throwRuntimeError("assignment to entry in nil map")).set(ast.Ref.keyFor(_key), { k: _key, v: $clone(use, js_ast.SymbolUse) }); @@ -195447,7 +196693,7 @@ $packages["github.com/evanw/esbuild/internal/graph"] = (function() { if (!((sourceIndexToImportFrom === sourceIndex))) { _key$1 = $clone(ref, ast.Ref); (repr.Meta.ImportsToBind || $throwRuntimeError("assignment to entry in nil map")).set(ast.Ref.keyFor(_key$1), { k: _key$1, v: $clone(new ImportData.ptr(sliceType$9.nil, new logger.Loc.ptr(0), $clone(ref, ast.Ref), sourceIndexToImportFrom), ImportData) }); } - targetRepr = $assertType((x$2 = g.Files, ((sourceIndexToImportFrom < 0 || sourceIndexToImportFrom >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + sourceIndexToImportFrom])).InputFile.Repr, ptrType$2); + targetRepr = $assertType((x$2 = g.Files, ((sourceIndexToImportFrom < 0 || sourceIndexToImportFrom >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + sourceIndexToImportFrom])).InputFile.Repr, ptrType$3); _ref = targetRepr.TopLevelSymbolToParts($clone(ref, ast.Ref)); _i = 0; while (true) { @@ -195463,21 +196709,21 @@ $packages["github.com/evanw/esbuild/internal/graph"] = (function() { if (useCount === 0) { return; } - runtimeRepr = $assertType((x = g.Files, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).InputFile.Repr, ptrType$2); + runtimeRepr = $assertType((x = g.Files, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).InputFile.Repr, ptrType$3); ref = $clone((_entry = $mapIndex(runtimeRepr.AST.NamedExports,$String.keyFor(name)), _entry !== undefined ? _entry.v : new js_ast.NamedExport.ptr(new ast.Ref.ptr(0, 0), new logger.Loc.ptr(0))).Ref, ast.Ref); g.GenerateSymbolImportAndUse(sourceIndex, partIndex, $clone(ref, ast.Ref), useCount, 0); }; - ptrType$2.methods = [{prop: "ImportRecords", name: "ImportRecords", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "TopLevelSymbolToParts", name: "TopLevelSymbolToParts", pkg: "", typ: $funcType([ast.Ref], [sliceType$1], false)}]; - ptrType$3.methods = [{prop: "ImportRecords", name: "ImportRecords", pkg: "", typ: $funcType([], [ptrType], false)}]; - ptrType$17.methods = [{prop: "ImportRecords", name: "ImportRecords", pkg: "", typ: $funcType([], [ptrType], false)}]; - ptrType$18.methods = [{prop: "IsEntryPoint", name: "IsEntryPoint", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsUserSpecifiedEntryPoint", name: "IsUserSpecifiedEntryPoint", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "LineColumnTracker", name: "LineColumnTracker", pkg: "", typ: $funcType([], [ptrType$1], false)}]; - ptrType$19.methods = [{prop: "EntryPoints", name: "EntryPoints", pkg: "", typ: $funcType([], [sliceType$2], false)}, {prop: "AddPartToFile", name: "AddPartToFile", pkg: "", typ: $funcType([$Uint32, js_ast.Part], [$Uint32], false)}, {prop: "GenerateNewSymbol", name: "GenerateNewSymbol", pkg: "", typ: $funcType([$Uint32, ast.SymbolKind, $String], [ast.Ref], false)}, {prop: "GenerateSymbolImportAndUse", name: "GenerateSymbolImportAndUse", pkg: "", typ: $funcType([$Uint32, $Uint32, ast.Ref, $Uint32, $Uint32], [], false)}, {prop: "GenerateRuntimeSymbolImportAndUse", name: "GenerateRuntimeSymbolImportAndUse", pkg: "", typ: $funcType([$Uint32, $Uint32, $String, $Uint32], [], false)}]; - JSReprMeta.init("", [{prop: "IsProbablyTypeScriptType", name: "IsProbablyTypeScriptType", embedded: false, exported: true, typ: mapType, tag: ""}, {prop: "ImportsToBind", name: "ImportsToBind", embedded: false, exported: true, typ: mapType$1, tag: ""}, {prop: "ResolvedExports", name: "ResolvedExports", embedded: false, exported: true, typ: mapType$2, tag: ""}, {prop: "ResolvedExportStar", name: "ResolvedExportStar", embedded: false, exported: true, typ: ptrType$11, tag: ""}, {prop: "ResolvedExportTypos", name: "ResolvedExportTypos", embedded: false, exported: true, typ: ptrType$12, tag: ""}, {prop: "SortedAndFilteredExportAliases", name: "SortedAndFilteredExportAliases", embedded: false, exported: true, typ: sliceType$15, tag: ""}, {prop: "TopLevelSymbolToPartsOverlay", name: "TopLevelSymbolToPartsOverlay", embedded: false, exported: true, typ: mapType$3, tag: ""}, {prop: "CJSExportCopies", name: "CJSExportCopies", embedded: false, exported: true, typ: sliceType$12, tag: ""}, {prop: "WrapperPartIndex", name: "WrapperPartIndex", embedded: false, exported: true, typ: ast.Index32, tag: ""}, {prop: "EntryPointPartIndex", name: "EntryPointPartIndex", embedded: false, exported: true, typ: ast.Index32, tag: ""}, {prop: "IsAsyncOrHasAsyncDependency", name: "IsAsyncOrHasAsyncDependency", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Wrap", name: "Wrap", embedded: false, exported: true, typ: WrapKind, tag: ""}, {prop: "NeedsExportsVariable", name: "NeedsExportsVariable", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "ForceIncludeExportsForEntryPoint", name: "ForceIncludeExportsForEntryPoint", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "NeedsExportSymbolFromRuntime", name: "NeedsExportSymbolFromRuntime", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "DidWrapDependencies", name: "DidWrapDependencies", embedded: false, exported: true, typ: $Bool, tag: ""}]); + ptrType$3.methods = [{prop: "ImportRecords", name: "ImportRecords", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "TopLevelSymbolToParts", name: "TopLevelSymbolToParts", pkg: "", typ: $funcType([ast.Ref], [sliceType$1], false)}]; + ptrType$4.methods = [{prop: "ImportRecords", name: "ImportRecords", pkg: "", typ: $funcType([], [ptrType], false)}]; + ptrType$20.methods = [{prop: "ImportRecords", name: "ImportRecords", pkg: "", typ: $funcType([], [ptrType], false)}]; + ptrType$2.methods = [{prop: "IsEntryPoint", name: "IsEntryPoint", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsUserSpecifiedEntryPoint", name: "IsUserSpecifiedEntryPoint", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "LineColumnTracker", name: "LineColumnTracker", pkg: "", typ: $funcType([], [ptrType$1], false)}]; + ptrType$21.methods = [{prop: "EntryPoints", name: "EntryPoints", pkg: "", typ: $funcType([], [sliceType$2], false)}, {prop: "AddPartToFile", name: "AddPartToFile", pkg: "", typ: $funcType([$Uint32, js_ast.Part], [$Uint32], false)}, {prop: "GenerateNewSymbol", name: "GenerateNewSymbol", pkg: "", typ: $funcType([$Uint32, ast.SymbolKind, $String], [ast.Ref], false)}, {prop: "GenerateSymbolImportAndUse", name: "GenerateSymbolImportAndUse", pkg: "", typ: $funcType([$Uint32, $Uint32, ast.Ref, $Uint32, $Uint32], [], false)}, {prop: "GenerateRuntimeSymbolImportAndUse", name: "GenerateRuntimeSymbolImportAndUse", pkg: "", typ: $funcType([$Uint32, $Uint32, $String, $Uint32], [], false)}]; + JSReprMeta.init("", [{prop: "IsProbablyTypeScriptType", name: "IsProbablyTypeScriptType", embedded: false, exported: true, typ: mapType, tag: ""}, {prop: "ImportsToBind", name: "ImportsToBind", embedded: false, exported: true, typ: mapType$1, tag: ""}, {prop: "ResolvedExports", name: "ResolvedExports", embedded: false, exported: true, typ: mapType$2, tag: ""}, {prop: "ResolvedExportStar", name: "ResolvedExportStar", embedded: false, exported: true, typ: ptrType$14, tag: ""}, {prop: "ResolvedExportTypos", name: "ResolvedExportTypos", embedded: false, exported: true, typ: ptrType$15, tag: ""}, {prop: "SortedAndFilteredExportAliases", name: "SortedAndFilteredExportAliases", embedded: false, exported: true, typ: sliceType$15, tag: ""}, {prop: "TopLevelSymbolToPartsOverlay", name: "TopLevelSymbolToPartsOverlay", embedded: false, exported: true, typ: mapType$3, tag: ""}, {prop: "CJSExportCopies", name: "CJSExportCopies", embedded: false, exported: true, typ: sliceType$12, tag: ""}, {prop: "WrapperPartIndex", name: "WrapperPartIndex", embedded: false, exported: true, typ: ast.Index32, tag: ""}, {prop: "EntryPointPartIndex", name: "EntryPointPartIndex", embedded: false, exported: true, typ: ast.Index32, tag: ""}, {prop: "IsAsyncOrHasAsyncDependency", name: "IsAsyncOrHasAsyncDependency", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Wrap", name: "Wrap", embedded: false, exported: true, typ: WrapKind, tag: ""}, {prop: "NeedsExportsVariable", name: "NeedsExportsVariable", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "ForceIncludeExportsForEntryPoint", name: "ForceIncludeExportsForEntryPoint", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "NeedsExportSymbolFromRuntime", name: "NeedsExportSymbolFromRuntime", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "DidWrapDependencies", name: "DidWrapDependencies", embedded: false, exported: true, typ: $Bool, tag: ""}]); ImportData.init("", [{prop: "ReExports", name: "ReExports", embedded: false, exported: true, typ: sliceType$9, tag: ""}, {prop: "NameLoc", name: "NameLoc", embedded: false, exported: true, typ: logger.Loc, tag: ""}, {prop: "Ref", name: "Ref", embedded: false, exported: true, typ: ast.Ref, tag: ""}, {prop: "SourceIndex", name: "SourceIndex", embedded: false, exported: true, typ: $Uint32, tag: ""}]); ExportData.init("", [{prop: "PotentiallyAmbiguousExportStarRefs", name: "PotentiallyAmbiguousExportStarRefs", embedded: false, exported: true, typ: sliceType$10, tag: ""}, {prop: "Ref", name: "Ref", embedded: false, exported: true, typ: ast.Ref, tag: ""}, {prop: "NameLoc", name: "NameLoc", embedded: false, exported: true, typ: logger.Loc, tag: ""}, {prop: "SourceIndex", name: "SourceIndex", embedded: false, exported: true, typ: $Uint32, tag: ""}]); - InputFile.init("", [{prop: "Repr", name: "Repr", embedded: false, exported: true, typ: InputFileRepr, tag: ""}, {prop: "InputSourceMap", name: "InputSourceMap", embedded: false, exported: true, typ: ptrType$13, tag: ""}, {prop: "AdditionalFiles", name: "AdditionalFiles", embedded: false, exported: true, typ: sliceType$16, tag: ""}, {prop: "UniqueKeyForAdditionalFile", name: "UniqueKeyForAdditionalFile", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "SideEffects", name: "SideEffects", embedded: false, exported: true, typ: SideEffects, tag: ""}, {prop: "Source", name: "Source", embedded: false, exported: true, typ: logger.Source, tag: ""}, {prop: "Loader", name: "Loader", embedded: false, exported: true, typ: config.Loader, tag: ""}, {prop: "OmitFromSourceMapsAndMetafile", name: "OmitFromSourceMapsAndMetafile", embedded: false, exported: true, typ: $Bool, tag: ""}]); + InputFile.init("", [{prop: "Repr", name: "Repr", embedded: false, exported: true, typ: InputFileRepr, tag: ""}, {prop: "InputSourceMap", name: "InputSourceMap", embedded: false, exported: true, typ: ptrType$16, tag: ""}, {prop: "AdditionalFiles", name: "AdditionalFiles", embedded: false, exported: true, typ: sliceType$16, tag: ""}, {prop: "UniqueKeyForAdditionalFile", name: "UniqueKeyForAdditionalFile", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "SideEffects", name: "SideEffects", embedded: false, exported: true, typ: SideEffects, tag: ""}, {prop: "Source", name: "Source", embedded: false, exported: true, typ: logger.Source, tag: ""}, {prop: "Loader", name: "Loader", embedded: false, exported: true, typ: config.Loader, tag: ""}, {prop: "OmitFromSourceMapsAndMetafile", name: "OmitFromSourceMapsAndMetafile", embedded: false, exported: true, typ: $Bool, tag: ""}]); OutputFile.init("", [{prop: "JSONMetadataChunk", name: "JSONMetadataChunk", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "AbsPath", name: "AbsPath", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Contents", name: "Contents", embedded: false, exported: true, typ: sliceType$17, tag: ""}, {prop: "IsExecutable", name: "IsExecutable", embedded: false, exported: true, typ: $Bool, tag: ""}]); - SideEffects.init("", [{prop: "Data", name: "Data", embedded: false, exported: true, typ: ptrType$14, tag: ""}, {prop: "Kind", name: "Kind", embedded: false, exported: true, typ: SideEffectsKind, tag: ""}]); + SideEffects.init("", [{prop: "Data", name: "Data", embedded: false, exported: true, typ: ptrType$17, tag: ""}, {prop: "Kind", name: "Kind", embedded: false, exported: true, typ: SideEffectsKind, tag: ""}]); InputFileRepr.init([{prop: "ImportRecords", name: "ImportRecords", pkg: "", typ: $funcType([], [ptrType], false)}]); JSRepr.init("", [{prop: "Meta", name: "Meta", embedded: false, exported: true, typ: JSReprMeta, tag: ""}, {prop: "AST", name: "AST", embedded: false, exported: true, typ: js_ast.AST, tag: ""}, {prop: "CSSSourceIndex", name: "CSSSourceIndex", embedded: false, exported: true, typ: ast.Index32, tag: ""}]); CSSRepr.init("", [{prop: "AST", name: "AST", embedded: false, exported: true, typ: css_ast.AST, tag: ""}, {prop: "JSSourceIndex", name: "JSSourceIndex", embedded: false, exported: true, typ: ast.Index32, tag: ""}]); @@ -196089,7 +197335,7 @@ $packages["crypto/internal/randutil"] = (function() { return $pkg; })(); $packages["crypto/rand"] = (function() { - var $pkg = {}, $init, randutil, errors, js, io, big, js$1, reader, sliceType, ptrType$1, jsCrypto, uint8Array, init, Read; + var $pkg = {}, $init, randutil, errors, js, io, big, js$1, reader, sliceType, sliceType$1, ptrType$1, batchedGetRandom, jsCrypto, uint8Array, init, getRandom, Read, batched; randutil = $packages["crypto/internal/randutil"]; errors = $packages["errors"]; js = $packages["github.com/gopherjs/gopherjs/js"]; @@ -196100,9 +197346,18 @@ $packages["crypto/rand"] = (function() { $pkg.reader = reader; $pkg.$finishSetup = function() { sliceType = $sliceType($Uint8); + sliceType$1 = $sliceType($emptyInterface); ptrType$1 = $ptrType(reader); init = function init$1() { $pkg.Reader = new reader.ptr(); + batchedGetRandom = batched(getRandom, 65536); + }; + getRandom = function getRandom$1(b) { + var a, b; + a = $clone($clone(uint8Array, js$1.Value).New(new sliceType$1([new $Int(b.$length)])), js$1.Value); + $clone(jsCrypto, js$1.Value).Call("getRandomValues", new sliceType$1([new a.constructor.elem(a)])); + js$1.CopyBytesToGo(b, $clone(a, js$1.Value)); + return $ifaceNil; }; Read = function Read$1(b) { var {$24r, _r, _tuple, b, err, n, $s, $r, $c} = $restore(this, {b}); @@ -196118,6 +197373,29 @@ $packages["crypto/rand"] = (function() { /* */ } return; } var $f = {$blk: Read$1, $c: true, $r, $24r, _r, _tuple, b, err, n, $s};return $f; }; $pkg.Read = Read; + batched = function batched$1(f, readMax) { + var f, readMax; + return (function batched·func1(out) { + var {_r, err, out, read, $s, $r, $c} = $restore(this, {out}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + /* while (true) { */ case 1: + /* if (!(out.$length > 0)) { break; } */ if(!(out.$length > 0)) { $s = 2; continue; } + read = out.$length; + if (read > readMax) { + read = readMax; + } + _r = f($subslice(out, 0, read)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + out = $subslice(out, read); + $s = 1; continue; + case 2: + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: batched·func1, $c: true, $r, _r, err, out, read, $s};return $f; + }); + }; $ptrType(reader).prototype.Read = function Read$2(b) { var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, array, b, crypto, err, n, offset, r, randomBytes, require; n = 0; @@ -196173,6 +197451,7 @@ $packages["crypto/rand"] = (function() { $r = io.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = big.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = js$1.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + batchedGetRandom = $throwNilPointerError; $pkg.Reader = $ifaceNil; jsCrypto = $clone($clone(js$1.Global(), js$1.Value).Get("crypto"), js$1.Value); uint8Array = $clone($clone(js$1.Global(), js$1.Value).Get("Uint8Array"), js$1.Value); @@ -196335,7 +197614,7 @@ $packages["crypto/internal/alias"] = (function() { $pkg.AnyOverlap = AnyOverlap; InexactOverlap = function InexactOverlap$1(x, y) { var x, y; - if ((x.$length === 0) || (y.$length === 0) || $indexPtr(x.$array, x.$offset + 0, ptrType) === $indexPtr(y.$array, y.$offset + 0, ptrType)) { + if ((x.$length === 0) || (y.$length === 0) || (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + 0, ptrType)) === (0 >= y.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(y.$array, y.$offset + 0, ptrType))) { return false; } return AnyOverlap(x, y); @@ -196478,7 +197757,7 @@ $packages["crypto/subtle"] = (function() { return $pkg; })(); $packages["crypto/cipher"] = (function() { - var $pkg = {}, $init, bytes, alias, subtle, binary, errors, io, StreamReader, AEAD, gcmAble, gcmFieldElement, gcm, ctr, ctrAble, Block, Stream, BlockMode, cbc, cbcEncrypter, cbcEncAble, cbcDecrypter, cbcDecAble, sliceType, sliceType$1, arrayType, arrayType$1, ptrType, ptrType$1, ptrType$3, ptrType$4, ptrType$5, ptrType$6, errOpen, gcmReductionTable, NewGCM, newGCMWithNonceAndTagSize, reverseBits, gcmAdd, gcmDouble, gcmInc32, sliceForAppend, NewCTR, newCBC, NewCBCEncrypter, NewCBCDecrypter; + var $pkg = {}, $init, bytes, alias, subtle, binary, errors, io, StreamReader, AEAD, gcmAble, gcmFieldElement, gcm, ctr, ctrAble, Block, Stream, BlockMode, cbc, cbcEncrypter, cbcEncAble, cbcDecrypter, cbcDecAble, sliceType, sliceType$1, arrayType, arrayType$1, ptrType, ptrType$1, ptrType$2, ptrType$4, ptrType$5, ptrType$6, errOpen, gcmReductionTable, NewGCM, newGCMWithNonceAndTagSize, reverseBits, gcmAdd, gcmDouble, gcmInc32, sliceForAppend, NewCTR, newCBC, NewCBCEncrypter, NewCBCDecrypter; bytes = $packages["bytes"]; alias = $packages["crypto/internal/alias"]; subtle = $packages["crypto/subtle"]; @@ -196603,9 +197882,9 @@ $packages["crypto/cipher"] = (function() { sliceType$1 = $sliceType($Uint8); arrayType = $arrayType($Uint8, 16); arrayType$1 = $arrayType(gcmFieldElement, 16); - ptrType = $ptrType(cbcEncrypter); - ptrType$1 = $ptrType(cbcDecrypter); - ptrType$3 = $ptrType(gcmFieldElement); + ptrType = $ptrType(gcmFieldElement); + ptrType$1 = $ptrType(cbcEncrypter); + ptrType$2 = $ptrType(cbcDecrypter); ptrType$4 = $ptrType(arrayType); ptrType$5 = $ptrType(gcm); ptrType$6 = $ptrType(ctr); @@ -196667,8 +197946,8 @@ $packages["crypto/cipher"] = (function() { i = 2; while (true) { if (!(i < 16)) { break; } - gcmFieldElement.copy((x$5 = g.productTable, x$6 = reverseBits(i), ((x$6 < 0 || x$6 >= x$5.length) ? ($throwRuntimeError("index out of range"), undefined) : x$5[x$6])), gcmDouble((x$3 = g.productTable, x$4 = reverseBits((_q = i / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))), ((x$4 < 0 || x$4 >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[x$4])))); - gcmFieldElement.copy((x$9 = g.productTable, x$10 = reverseBits(i + 1 >> 0), ((x$10 < 0 || x$10 >= x$9.length) ? ($throwRuntimeError("index out of range"), undefined) : x$9[x$10])), gcmAdd((x$7 = g.productTable, x$8 = reverseBits(i), ((x$8 < 0 || x$8 >= x$7.length) ? ($throwRuntimeError("index out of range"), undefined) : x$7[x$8])), x[0])); + gcmFieldElement.copy((x$5 = g.productTable, x$6 = reverseBits(i), ((x$6 < 0 || x$6 >= x$5.length) ? ($throwRuntimeError("index out of range"), undefined) : x$5[x$6])), gcmDouble((x$3 = g.productTable, x$4 = reverseBits((_q = i / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))), ((x$4 < 0 || x$4 >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$3, x$4, ptrType))))); + gcmFieldElement.copy((x$9 = g.productTable, x$10 = reverseBits(i + 1 >> 0), ((x$10 < 0 || x$10 >= x$9.length) ? ($throwRuntimeError("index out of range"), undefined) : x$9[x$10])), gcmAdd((x$7 = g.productTable, x$8 = reverseBits(i), ((x$8 < 0 || x$8 >= x$7.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$7, x$8, ptrType))), x[0])); i = i + (2) >> 0; } $s = -1; return [g, $ifaceNil]; @@ -196813,7 +198092,7 @@ $packages["crypto/cipher"] = (function() { z.high = (x$1 = z.high, x$2 = $shiftLeft64(z.low, 60), new $Uint64(x$1.$high | x$2.$high, (x$1.$low | x$2.$low) >>> 0)); z.low = $shiftRightUint64(z.low, (4)); z.low = (x$3 = z.low, x$4 = $shiftLeft64((new $Uint64(0, (($flatten64(msw) < 0 || $flatten64(msw) >= gcmReductionTable.$length) ? ($throwRuntimeError("index out of range"), undefined) : gcmReductionTable.$array[gcmReductionTable.$offset + $flatten64(msw)]))), 48), new $Uint64(x$3.$high ^ x$4.$high, (x$3.$low ^ x$4.$low) >>> 0)); - t = (x$5 = g.productTable, x$6 = new $Uint64(word.$high & 0, (word.$low & 15) >>> 0), (($flatten64(x$6) < 0 || $flatten64(x$6) >= x$5.length) ? ($throwRuntimeError("index out of range"), undefined) : x$5[$flatten64(x$6)])); + t = (x$5 = g.productTable, x$6 = new $Uint64(word.$high & 0, (word.$low & 15) >>> 0), (($flatten64(x$6) < 0 || $flatten64(x$6) >= x$5.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$5, $flatten64(x$6), ptrType))); z.low = (x$7 = z.low, x$8 = t.low, new $Uint64(x$7.$high ^ x$8.$high, (x$7.$low ^ x$8.$low) >>> 0)); z.high = (x$9 = z.high, x$10 = t.high, new $Uint64(x$9.$high ^ x$10.$high, (x$9.$low ^ x$10.$low) >>> 0)); word = $shiftRightUint64(word, (4)); @@ -196821,7 +198100,7 @@ $packages["crypto/cipher"] = (function() { } i = i + (1) >> 0; } - gcmFieldElement.copy(y, z); + gcmFieldElement.copy((y === ptrType.nil && $throwNilPointerError(), y), z); }; $ptrType(gcm).prototype.updateBlocks = function updateBlocks(y, blocks) { var blocks, g, x, x$1, x$2, x$3, y; @@ -197032,7 +198311,7 @@ $packages["crypto/cipher"] = (function() { $s = 7; case 7: return $24r; /* } */ case 5: _r$2 = newCBC(b, iv); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r$1 = ($pointerOfStructConversion(_r$2, ptrType)); + $24r$1 = ($pointerOfStructConversion(_r$2, ptrType$1)); $s = 9; case 9: return $24r$1; /* */ } return; } var $f = {$blk: NewCBCEncrypter$1, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _tuple, b, cbc$1, iv, ok, $s};return $f; }; @@ -197097,7 +198376,7 @@ $packages["crypto/cipher"] = (function() { $s = 7; case 7: return $24r; /* } */ case 5: _r$2 = newCBC(b, iv); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r$1 = ($pointerOfStructConversion(_r$2, ptrType$1)); + $24r$1 = ($pointerOfStructConversion(_r$2, ptrType$2)); $s = 9; case 9: return $24r$1; /* */ } return; } var $f = {$blk: NewCBCDecrypter$1, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _tuple, b, cbc$1, iv, ok, $s};return $f; }; @@ -197154,10 +198433,10 @@ $packages["crypto/cipher"] = (function() { $copySlice(x.iv, iv); }; StreamReader.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}]; - ptrType$5.methods = [{prop: "NonceSize", name: "NonceSize", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Overhead", name: "Overhead", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Seal", name: "Seal", pkg: "", typ: $funcType([sliceType$1, sliceType$1, sliceType$1, sliceType$1], [sliceType$1], false)}, {prop: "Open", name: "Open", pkg: "", typ: $funcType([sliceType$1, sliceType$1, sliceType$1, sliceType$1], [sliceType$1, $error], false)}, {prop: "mul", name: "mul", pkg: "crypto/cipher", typ: $funcType([ptrType$3], [], false)}, {prop: "updateBlocks", name: "updateBlocks", pkg: "crypto/cipher", typ: $funcType([ptrType$3, sliceType$1], [], false)}, {prop: "update", name: "update", pkg: "crypto/cipher", typ: $funcType([ptrType$3, sliceType$1], [], false)}, {prop: "counterCrypt", name: "counterCrypt", pkg: "crypto/cipher", typ: $funcType([sliceType$1, sliceType$1, ptrType$4], [], false)}, {prop: "deriveCounter", name: "deriveCounter", pkg: "crypto/cipher", typ: $funcType([ptrType$4, sliceType$1], [], false)}, {prop: "auth", name: "auth", pkg: "crypto/cipher", typ: $funcType([sliceType$1, sliceType$1, sliceType$1, ptrType$4], [], false)}]; + ptrType$5.methods = [{prop: "NonceSize", name: "NonceSize", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Overhead", name: "Overhead", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Seal", name: "Seal", pkg: "", typ: $funcType([sliceType$1, sliceType$1, sliceType$1, sliceType$1], [sliceType$1], false)}, {prop: "Open", name: "Open", pkg: "", typ: $funcType([sliceType$1, sliceType$1, sliceType$1, sliceType$1], [sliceType$1, $error], false)}, {prop: "mul", name: "mul", pkg: "crypto/cipher", typ: $funcType([ptrType], [], false)}, {prop: "updateBlocks", name: "updateBlocks", pkg: "crypto/cipher", typ: $funcType([ptrType, sliceType$1], [], false)}, {prop: "update", name: "update", pkg: "crypto/cipher", typ: $funcType([ptrType, sliceType$1], [], false)}, {prop: "counterCrypt", name: "counterCrypt", pkg: "crypto/cipher", typ: $funcType([sliceType$1, sliceType$1, ptrType$4], [], false)}, {prop: "deriveCounter", name: "deriveCounter", pkg: "crypto/cipher", typ: $funcType([ptrType$4, sliceType$1], [], false)}, {prop: "auth", name: "auth", pkg: "crypto/cipher", typ: $funcType([sliceType$1, sliceType$1, sliceType$1, ptrType$4], [], false)}]; ptrType$6.methods = [{prop: "refill", name: "refill", pkg: "crypto/cipher", typ: $funcType([], [], false)}, {prop: "XORKeyStream", name: "XORKeyStream", pkg: "", typ: $funcType([sliceType$1, sliceType$1], [], false)}]; - ptrType.methods = [{prop: "BlockSize", name: "BlockSize", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "CryptBlocks", name: "CryptBlocks", pkg: "", typ: $funcType([sliceType$1, sliceType$1], [], false)}, {prop: "SetIV", name: "SetIV", pkg: "", typ: $funcType([sliceType$1], [], false)}]; ptrType$1.methods = [{prop: "BlockSize", name: "BlockSize", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "CryptBlocks", name: "CryptBlocks", pkg: "", typ: $funcType([sliceType$1, sliceType$1], [], false)}, {prop: "SetIV", name: "SetIV", pkg: "", typ: $funcType([sliceType$1], [], false)}]; + ptrType$2.methods = [{prop: "BlockSize", name: "BlockSize", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "CryptBlocks", name: "CryptBlocks", pkg: "", typ: $funcType([sliceType$1, sliceType$1], [], false)}, {prop: "SetIV", name: "SetIV", pkg: "", typ: $funcType([sliceType$1], [], false)}]; StreamReader.init("", [{prop: "S", name: "S", embedded: false, exported: true, typ: Stream, tag: ""}, {prop: "R", name: "R", embedded: false, exported: true, typ: io.Reader, tag: ""}]); AEAD.init([{prop: "NonceSize", name: "NonceSize", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Open", name: "Open", pkg: "", typ: $funcType([sliceType$1, sliceType$1, sliceType$1, sliceType$1], [sliceType$1, $error], false)}, {prop: "Overhead", name: "Overhead", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Seal", name: "Seal", pkg: "", typ: $funcType([sliceType$1, sliceType$1, sliceType$1, sliceType$1], [sliceType$1], false)}]); gcmAble.init([{prop: "NewGCM", name: "NewGCM", pkg: "", typ: $funcType([$Int, $Int], [AEAD, $error], false)}]); @@ -198186,7 +199465,7 @@ $packages["crypto/internal/edwards25519/field"] = (function() { rr2 = (x$5 = (x$6 = r2.lo, new $Uint64(x$6.$high & 524287, (x$6.$low & 4294967295) >>> 0)), new $Uint64(x$5.$high + c1.$high, x$5.$low + c1.$low)); rr3 = (x$7 = (x$8 = r3.lo, new $Uint64(x$8.$high & 524287, (x$8.$low & 4294967295) >>> 0)), new $Uint64(x$7.$high + c2.$high, x$7.$low + c2.$low)); rr4 = (x$9 = (x$10 = r4.lo, new $Uint64(x$10.$high & 524287, (x$10.$low & 4294967295) >>> 0)), new $Uint64(x$9.$high + c3.$high, x$9.$low + c3.$low)); - Element.copy(v, new Element.ptr(rr0, rr1, rr2, rr3, rr4)); + Element.copy((v === ptrType.nil && $throwNilPointerError(), v), new Element.ptr(rr0, rr1, rr2, rr3, rr4)); v.carryPropagate(); }; feSquareGeneric = function feSquareGeneric$1(v, a) { @@ -198228,7 +199507,7 @@ $packages["crypto/internal/edwards25519/field"] = (function() { rr2 = (x$5 = (x$6 = r2.lo, new $Uint64(x$6.$high & 524287, (x$6.$low & 4294967295) >>> 0)), new $Uint64(x$5.$high + c1.$high, x$5.$low + c1.$low)); rr3 = (x$7 = (x$8 = r3.lo, new $Uint64(x$8.$high & 524287, (x$8.$low & 4294967295) >>> 0)), new $Uint64(x$7.$high + c2.$high, x$7.$low + c2.$low)); rr4 = (x$9 = (x$10 = r4.lo, new $Uint64(x$10.$high & 524287, (x$10.$low & 4294967295) >>> 0)), new $Uint64(x$9.$high + c3.$high, x$9.$low + c3.$low)); - Element.copy(v, new Element.ptr(rr0, rr1, rr2, rr3, rr4)); + Element.copy((v === ptrType.nil && $throwNilPointerError(), v), new Element.ptr(rr0, rr1, rr2, rr3, rr4)); v.carryPropagate(); }; $ptrType(Element).prototype.carryPropagateGeneric = function carryPropagateGeneric() { @@ -198262,13 +199541,13 @@ $packages["crypto/internal/edwards25519/field"] = (function() { $ptrType(Element).prototype.Zero = function Zero() { var v; v = this; - Element.copy(v, feZero); + Element.copy((v === ptrType.nil && $throwNilPointerError(), v), (feZero === ptrType.nil && $throwNilPointerError(), feZero)); return v; }; $ptrType(Element).prototype.One = function One() { var v; v = this; - Element.copy(v, feOne); + Element.copy((v === ptrType.nil && $throwNilPointerError(), v), (feOne === ptrType.nil && $throwNilPointerError(), feOne)); return v; }; $ptrType(Element).prototype.reduce = function reduce() { @@ -198411,7 +199690,7 @@ $packages["crypto/internal/edwards25519/field"] = (function() { $ptrType(Element).prototype.Set = function Set(a) { var a, v; v = this; - Element.copy(v, a); + Element.copy((v === ptrType.nil && $throwNilPointerError(), v), (a === ptrType.nil && $throwNilPointerError(), a)); return v; }; $ptrType(Element).prototype.SetBytes = function SetBytes(x) { @@ -198441,7 +199720,7 @@ $packages["crypto/internal/edwards25519/field"] = (function() { $ptrType(Element).prototype.bytes = function bytes(out) { var _i, _i$1, _q, _r, _ref, _ref$1, bb, bitsOffset, buf, i, i$1, l, off, out, t, v, x, x$1; v = this; - t = $clone(v, Element); + t = $clone((v === ptrType.nil && $throwNilPointerError(), v), Element); t.reduce(); buf = arrayType$1.zero(); _ref = $toNativeArray($kindUint64, [t.l0, t.l1, t.l2, t.l3, t.l4]); @@ -198462,7 +199741,7 @@ $packages["crypto/internal/edwards25519/field"] = (function() { if (off >= 32) { break; } - (x$1 = out, ((off < 0 || off >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[off] = (((x = out, ((off < 0 || off >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[off])) | (bb)) >>> 0))); + (x$1 = (out === ptrType$1.nil && $throwNilPointerError(), out), ((off < 0 || off >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[off] = (((x = (out === ptrType$1.nil && $throwNilPointerError(), out), ((off < 0 || off >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[off])) | (bb)) >>> 0))); _i$1++; } _i++; @@ -198691,12 +199970,13 @@ $packages["crypto/internal/edwards25519/field"] = (function() { return $pkg; })(); $packages["crypto/internal/nistec/fiat"] = (function() { - var $pkg = {}, $init, subtle, errors, bits, p521Uint1, p521MontgomeryDomainFieldElement, P521Element, p384Uint1, p384MontgomeryDomainFieldElement, P384Element, p256Uint1, p256MontgomeryDomainFieldElement, P256Element, p224Uint1, p224MontgomeryDomainFieldElement, P224Element, arrayType, ptrType, sliceType, arrayType$1, ptrType$1, arrayType$2, arrayType$3, ptrType$2, arrayType$4, arrayType$5, ptrType$3, arrayType$6, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, p521CmovznzU64, p521Mul, p521Square, p521Add, p521Sub, p521SetOne, p521FromMontgomery, p521ToMontgomery, p521Selectznz, p521ToBytes, p521FromBytes, p521InvertEndianness, p384CmovznzU64, p384Mul, p384Square, p384Add, p384Sub, p384SetOne, p384FromMontgomery, p384ToMontgomery, p384Selectznz, p384ToBytes, p384FromBytes, p384InvertEndianness, p256CmovznzU64, p256Mul, p256Square, p256Add, p256Sub, p256SetOne, p256FromMontgomery, p256ToMontgomery, p256Selectznz, p256ToBytes, p256FromBytes, p256InvertEndianness, p224CmovznzU64, p224Mul, p224Square, p224Add, p224Sub, p224SetOne, p224FromMontgomery, p224ToMontgomery, p224Selectznz, p224ToBytes, p224FromBytes, p224InvertEndianness; + var $pkg = {}, $init, subtle, errors, bits, p521Uint1, p521MontgomeryDomainFieldElement, p521NonMontgomeryDomainFieldElement, P521Element, p384Uint1, p384MontgomeryDomainFieldElement, p384NonMontgomeryDomainFieldElement, P384Element, p256Uint1, p256MontgomeryDomainFieldElement, p256NonMontgomeryDomainFieldElement, P256Element, p224Uint1, p224MontgomeryDomainFieldElement, p224NonMontgomeryDomainFieldElement, P224Element, arrayType, ptrType, ptrType$1, ptrType$2, ptrType$3, arrayType$1, ptrType$4, sliceType, ptrType$5, arrayType$2, ptrType$6, ptrType$7, ptrType$8, arrayType$3, ptrType$9, ptrType$10, arrayType$4, ptrType$11, ptrType$12, ptrType$13, arrayType$5, ptrType$14, ptrType$15, ptrType$16, ptrType$17, arrayType$6, ptrType$18, ptrType$19, p521CmovznzU64, p521Mul, p521Square, p521Add, p521Sub, p521SetOne, p521FromMontgomery, p521ToMontgomery, p521Selectznz, p521ToBytes, p521FromBytes, p521InvertEndianness, p384CmovznzU64, p384Mul, p384Square, p384Add, p384Sub, p384SetOne, p384FromMontgomery, p384ToMontgomery, p384Selectznz, p384ToBytes, p384FromBytes, p384InvertEndianness, p256CmovznzU64, p256Mul, p256Square, p256Add, p256Sub, p256SetOne, p256FromMontgomery, p256ToMontgomery, p256Selectznz, p256ToBytes, p256FromBytes, p256InvertEndianness, p224CmovznzU64, p224Mul, p224Square, p224Add, p224Sub, p224SetOne, p224FromMontgomery, p224ToMontgomery, p224Selectznz, p224ToBytes, p224FromBytes, p224InvertEndianness; subtle = $packages["crypto/subtle"]; errors = $packages["errors"]; bits = $packages["math/bits"]; p521Uint1 = $newType(8, $kindUint64, "fiat.p521Uint1", true, "crypto/internal/nistec/fiat", false, null); p521MontgomeryDomainFieldElement = $newType(72, $kindArray, "fiat.p521MontgomeryDomainFieldElement", true, "crypto/internal/nistec/fiat", false, null); + p521NonMontgomeryDomainFieldElement = $newType(72, $kindArray, "fiat.p521NonMontgomeryDomainFieldElement", true, "crypto/internal/nistec/fiat", false, null); P521Element = $newType(0, $kindStruct, "fiat.P521Element", true, "crypto/internal/nistec/fiat", true, function(x_) { this.$val = this; if (arguments.length === 0) { @@ -198707,6 +199987,7 @@ $packages["crypto/internal/nistec/fiat"] = (function() { }); p384Uint1 = $newType(8, $kindUint64, "fiat.p384Uint1", true, "crypto/internal/nistec/fiat", false, null); p384MontgomeryDomainFieldElement = $newType(48, $kindArray, "fiat.p384MontgomeryDomainFieldElement", true, "crypto/internal/nistec/fiat", false, null); + p384NonMontgomeryDomainFieldElement = $newType(48, $kindArray, "fiat.p384NonMontgomeryDomainFieldElement", true, "crypto/internal/nistec/fiat", false, null); P384Element = $newType(0, $kindStruct, "fiat.P384Element", true, "crypto/internal/nistec/fiat", true, function(x_) { this.$val = this; if (arguments.length === 0) { @@ -198717,6 +199998,7 @@ $packages["crypto/internal/nistec/fiat"] = (function() { }); p256Uint1 = $newType(8, $kindUint64, "fiat.p256Uint1", true, "crypto/internal/nistec/fiat", false, null); p256MontgomeryDomainFieldElement = $newType(32, $kindArray, "fiat.p256MontgomeryDomainFieldElement", true, "crypto/internal/nistec/fiat", false, null); + p256NonMontgomeryDomainFieldElement = $newType(32, $kindArray, "fiat.p256NonMontgomeryDomainFieldElement", true, "crypto/internal/nistec/fiat", false, null); P256Element = $newType(0, $kindStruct, "fiat.P256Element", true, "crypto/internal/nistec/fiat", true, function(x_) { this.$val = this; if (arguments.length === 0) { @@ -198727,6 +200009,7 @@ $packages["crypto/internal/nistec/fiat"] = (function() { }); p224Uint1 = $newType(8, $kindUint64, "fiat.p224Uint1", true, "crypto/internal/nistec/fiat", false, null); p224MontgomeryDomainFieldElement = $newType(32, $kindArray, "fiat.p224MontgomeryDomainFieldElement", true, "crypto/internal/nistec/fiat", false, null); + p224NonMontgomeryDomainFieldElement = $newType(32, $kindArray, "fiat.p224NonMontgomeryDomainFieldElement", true, "crypto/internal/nistec/fiat", false, null); P224Element = $newType(0, $kindStruct, "fiat.P224Element", true, "crypto/internal/nistec/fiat", true, function(x_) { this.$val = this; if (arguments.length === 0) { @@ -198737,34 +200020,49 @@ $packages["crypto/internal/nistec/fiat"] = (function() { }); $pkg.p521Uint1 = p521Uint1; $pkg.p521MontgomeryDomainFieldElement = p521MontgomeryDomainFieldElement; + $pkg.p521NonMontgomeryDomainFieldElement = p521NonMontgomeryDomainFieldElement; $pkg.P521Element = P521Element; $pkg.p384Uint1 = p384Uint1; $pkg.p384MontgomeryDomainFieldElement = p384MontgomeryDomainFieldElement; + $pkg.p384NonMontgomeryDomainFieldElement = p384NonMontgomeryDomainFieldElement; $pkg.P384Element = P384Element; $pkg.p256Uint1 = p256Uint1; $pkg.p256MontgomeryDomainFieldElement = p256MontgomeryDomainFieldElement; + $pkg.p256NonMontgomeryDomainFieldElement = p256NonMontgomeryDomainFieldElement; $pkg.P256Element = P256Element; $pkg.p224Uint1 = p224Uint1; $pkg.p224MontgomeryDomainFieldElement = p224MontgomeryDomainFieldElement; + $pkg.p224NonMontgomeryDomainFieldElement = p224NonMontgomeryDomainFieldElement; $pkg.P224Element = P224Element; $pkg.$finishSetup = function() { arrayType = $arrayType($Uint64, 9); - ptrType = $ptrType($Uint64); - sliceType = $sliceType($Uint8); + ptrType = $ptrType(p521MontgomeryDomainFieldElement); + ptrType$1 = $ptrType($Uint64); + ptrType$2 = $ptrType(p521NonMontgomeryDomainFieldElement); + ptrType$3 = $ptrType(arrayType); arrayType$1 = $arrayType($Uint8, 66); - ptrType$1 = $ptrType(P521Element); + ptrType$4 = $ptrType(arrayType$1); + sliceType = $sliceType($Uint8); + ptrType$5 = $ptrType(P521Element); arrayType$2 = $arrayType($Uint64, 6); + ptrType$6 = $ptrType(p384MontgomeryDomainFieldElement); + ptrType$7 = $ptrType(p384NonMontgomeryDomainFieldElement); + ptrType$8 = $ptrType(arrayType$2); arrayType$3 = $arrayType($Uint8, 48); - ptrType$2 = $ptrType(P384Element); + ptrType$9 = $ptrType(arrayType$3); + ptrType$10 = $ptrType(P384Element); arrayType$4 = $arrayType($Uint64, 4); + ptrType$11 = $ptrType(p256MontgomeryDomainFieldElement); + ptrType$12 = $ptrType(p256NonMontgomeryDomainFieldElement); + ptrType$13 = $ptrType(arrayType$4); arrayType$5 = $arrayType($Uint8, 32); - ptrType$3 = $ptrType(P256Element); + ptrType$14 = $ptrType(arrayType$5); + ptrType$15 = $ptrType(P256Element); + ptrType$16 = $ptrType(p224MontgomeryDomainFieldElement); + ptrType$17 = $ptrType(p224NonMontgomeryDomainFieldElement); arrayType$6 = $arrayType($Uint8, 28); - ptrType$4 = $ptrType(P224Element); - ptrType$5 = $ptrType(arrayType$1); - ptrType$6 = $ptrType(arrayType$3); - ptrType$7 = $ptrType(arrayType$5); - ptrType$8 = $ptrType(arrayType$6); + ptrType$18 = $ptrType(arrayType$6); + ptrType$19 = $ptrType(P224Element); $ptrType(P521Element).prototype.Invert = function Invert(x) { var e, s, s$1, s$2, s$3, s$4, s$5, s$6, s$7, s$8, t0, x, z; e = this; @@ -198856,58 +200154,58 @@ $packages["crypto/internal/nistec/fiat"] = (function() { }; p521Mul = function p521Mul$1(out1, arg1, arg2) { var _tuple, _tuple$1, _tuple$10, _tuple$100, _tuple$101, _tuple$102, _tuple$103, _tuple$104, _tuple$105, _tuple$106, _tuple$107, _tuple$108, _tuple$109, _tuple$11, _tuple$110, _tuple$111, _tuple$112, _tuple$113, _tuple$114, _tuple$115, _tuple$116, _tuple$117, _tuple$118, _tuple$119, _tuple$12, _tuple$120, _tuple$121, _tuple$122, _tuple$123, _tuple$124, _tuple$125, _tuple$126, _tuple$127, _tuple$128, _tuple$129, _tuple$13, _tuple$130, _tuple$131, _tuple$132, _tuple$133, _tuple$134, _tuple$135, _tuple$136, _tuple$137, _tuple$138, _tuple$139, _tuple$14, _tuple$140, _tuple$141, _tuple$142, _tuple$143, _tuple$144, _tuple$145, _tuple$146, _tuple$147, _tuple$148, _tuple$149, _tuple$15, _tuple$150, _tuple$151, _tuple$152, _tuple$153, _tuple$154, _tuple$155, _tuple$156, _tuple$157, _tuple$158, _tuple$159, _tuple$16, _tuple$160, _tuple$161, _tuple$162, _tuple$163, _tuple$164, _tuple$165, _tuple$166, _tuple$167, _tuple$168, _tuple$169, _tuple$17, _tuple$170, _tuple$171, _tuple$172, _tuple$173, _tuple$174, _tuple$175, _tuple$176, _tuple$177, _tuple$178, _tuple$179, _tuple$18, _tuple$180, _tuple$181, _tuple$182, _tuple$183, _tuple$184, _tuple$185, _tuple$186, _tuple$187, _tuple$188, _tuple$189, _tuple$19, _tuple$190, _tuple$191, _tuple$192, _tuple$193, _tuple$194, _tuple$195, _tuple$196, _tuple$197, _tuple$198, _tuple$199, _tuple$2, _tuple$20, _tuple$200, _tuple$201, _tuple$202, _tuple$203, _tuple$204, _tuple$205, _tuple$206, _tuple$207, _tuple$208, _tuple$209, _tuple$21, _tuple$210, _tuple$211, _tuple$212, _tuple$213, _tuple$214, _tuple$215, _tuple$216, _tuple$217, _tuple$218, _tuple$219, _tuple$22, _tuple$220, _tuple$221, _tuple$222, _tuple$223, _tuple$224, _tuple$225, _tuple$226, _tuple$227, _tuple$228, _tuple$229, _tuple$23, _tuple$230, _tuple$231, _tuple$232, _tuple$233, _tuple$234, _tuple$235, _tuple$236, _tuple$237, _tuple$238, _tuple$239, _tuple$24, _tuple$240, _tuple$241, _tuple$242, _tuple$243, _tuple$244, _tuple$245, _tuple$246, _tuple$247, _tuple$248, _tuple$249, _tuple$25, _tuple$250, _tuple$251, _tuple$252, _tuple$253, _tuple$254, _tuple$255, _tuple$256, _tuple$257, _tuple$258, _tuple$259, _tuple$26, _tuple$260, _tuple$261, _tuple$262, _tuple$263, _tuple$264, _tuple$265, _tuple$266, _tuple$267, _tuple$268, _tuple$269, _tuple$27, _tuple$270, _tuple$271, _tuple$272, _tuple$273, _tuple$274, _tuple$275, _tuple$276, _tuple$277, _tuple$278, _tuple$279, _tuple$28, _tuple$280, _tuple$281, _tuple$282, _tuple$283, _tuple$284, _tuple$285, _tuple$286, _tuple$287, _tuple$288, _tuple$289, _tuple$29, _tuple$290, _tuple$291, _tuple$292, _tuple$293, _tuple$294, _tuple$295, _tuple$296, _tuple$297, _tuple$298, _tuple$299, _tuple$3, _tuple$30, _tuple$300, _tuple$301, _tuple$302, _tuple$303, _tuple$304, _tuple$305, _tuple$306, _tuple$307, _tuple$308, _tuple$309, _tuple$31, _tuple$310, _tuple$311, _tuple$312, _tuple$313, _tuple$314, _tuple$315, _tuple$316, _tuple$317, _tuple$318, _tuple$319, _tuple$32, _tuple$320, _tuple$321, _tuple$322, _tuple$323, _tuple$324, _tuple$325, _tuple$326, _tuple$327, _tuple$328, _tuple$329, _tuple$33, _tuple$330, _tuple$331, _tuple$332, _tuple$333, _tuple$334, _tuple$335, _tuple$336, _tuple$337, _tuple$338, _tuple$339, _tuple$34, _tuple$340, _tuple$341, _tuple$342, _tuple$343, _tuple$344, _tuple$345, _tuple$346, _tuple$347, _tuple$348, _tuple$349, _tuple$35, _tuple$350, _tuple$351, _tuple$352, _tuple$353, _tuple$354, _tuple$355, _tuple$356, _tuple$357, _tuple$358, _tuple$359, _tuple$36, _tuple$360, _tuple$361, _tuple$362, _tuple$363, _tuple$364, _tuple$365, _tuple$366, _tuple$367, _tuple$368, _tuple$369, _tuple$37, _tuple$370, _tuple$371, _tuple$372, _tuple$373, _tuple$374, _tuple$375, _tuple$376, _tuple$377, _tuple$378, _tuple$379, _tuple$38, _tuple$380, _tuple$381, _tuple$382, _tuple$383, _tuple$384, _tuple$385, _tuple$386, _tuple$387, _tuple$388, _tuple$389, _tuple$39, _tuple$390, _tuple$391, _tuple$392, _tuple$393, _tuple$394, _tuple$395, _tuple$396, _tuple$397, _tuple$398, _tuple$399, _tuple$4, _tuple$40, _tuple$400, _tuple$401, _tuple$402, _tuple$403, _tuple$404, _tuple$405, _tuple$406, _tuple$407, _tuple$408, _tuple$409, _tuple$41, _tuple$410, _tuple$411, _tuple$412, _tuple$413, _tuple$414, _tuple$415, _tuple$416, _tuple$417, _tuple$418, _tuple$419, _tuple$42, _tuple$420, _tuple$421, _tuple$422, _tuple$423, _tuple$424, _tuple$425, _tuple$426, _tuple$427, _tuple$428, _tuple$429, _tuple$43, _tuple$430, _tuple$431, _tuple$432, _tuple$433, _tuple$434, _tuple$435, _tuple$436, _tuple$437, _tuple$438, _tuple$439, _tuple$44, _tuple$440, _tuple$441, _tuple$442, _tuple$443, _tuple$444, _tuple$445, _tuple$446, _tuple$447, _tuple$448, _tuple$449, _tuple$45, _tuple$450, _tuple$451, _tuple$452, _tuple$453, _tuple$454, _tuple$455, _tuple$456, _tuple$457, _tuple$458, _tuple$459, _tuple$46, _tuple$460, _tuple$461, _tuple$462, _tuple$463, _tuple$464, _tuple$465, _tuple$466, _tuple$467, _tuple$468, _tuple$469, _tuple$47, _tuple$470, _tuple$471, _tuple$472, _tuple$473, _tuple$474, _tuple$475, _tuple$476, _tuple$477, _tuple$478, _tuple$479, _tuple$48, _tuple$480, _tuple$481, _tuple$482, _tuple$483, _tuple$484, _tuple$485, _tuple$49, _tuple$5, _tuple$50, _tuple$51, _tuple$52, _tuple$53, _tuple$54, _tuple$55, _tuple$56, _tuple$57, _tuple$58, _tuple$59, _tuple$6, _tuple$60, _tuple$61, _tuple$62, _tuple$63, _tuple$64, _tuple$65, _tuple$66, _tuple$67, _tuple$68, _tuple$69, _tuple$7, _tuple$70, _tuple$71, _tuple$72, _tuple$73, _tuple$74, _tuple$75, _tuple$76, _tuple$77, _tuple$78, _tuple$79, _tuple$8, _tuple$80, _tuple$81, _tuple$82, _tuple$83, _tuple$84, _tuple$85, _tuple$86, _tuple$87, _tuple$88, _tuple$89, _tuple$9, _tuple$90, _tuple$91, _tuple$92, _tuple$93, _tuple$94, _tuple$95, _tuple$96, _tuple$97, _tuple$98, _tuple$99, arg1, arg2, out1, x, x$1, x$10, x$100, x$101, x$102, x$103, x$104, x$105, x$106, x$107, x$108, x$109, x$11, x$110, x$111, x$112, x$113, x$114, x$115, x$116, x$117, x$118, x$119, x$12, x$120, x$121, x$122, x$123, x$124, x$125, x$126, x$127, x$128, x$129, x$13, x$130, x$131, x$132, x$133, x$134, x$135, x$136, x$137, x$138, x$139, x$14, x$140, x$141, x$142, x$143, x$144, x$145, x$146, x$147, x$148, x$149, x$15, x$150, x$151, x$152, x$153, x$154, x$155, x$156, x$157, x$158, x$159, x$16, x$160, x$161, x$162, x$163, x$164, x$165, x$166, x$167, x$168, x$169, x$17, x$170, x$171, x$172, x$173, x$174, x$175, x$176, x$177, x$178, x$179, x$18, x$180, x$181, x$182, x$183, x$184, x$185, x$186, x$187, x$188, x$189, x$19, x$190, x$191, x$192, x$193, x$194, x$195, x$196, x$197, x$198, x$199, x$2, x$20, x$200, x$201, x$202, x$203, x$204, x$205, x$206, x$207, x$208, x$209, x$21, x$210, x$211, x$212, x$213, x$214, x$215, x$216, x$217, x$218, x$219, x$22, x$220, x$221, x$222, x$223, x$224, x$225, x$226, x$227, x$228, x$229, x$23, x$230, x$231, x$232, x$233, x$234, x$235, x$236, x$237, x$238, x$239, x$24, x$240, x$241, x$242, x$243, x$244, x$245, x$246, x$247, x$248, x$249, x$25, x$250, x$251, x$252, x$253, x$254, x$255, x$256, x$257, x$258, x$259, x$26, x$260, x$261, x$262, x$263, x$264, x$265, x$266, x$267, x$268, x$269, x$27, x$270, x$271, x$272, x$273, x$274, x$275, x$276, x$277, x$278, x$279, x$28, x$280, x$281, x$282, x$283, x$284, x$285, x$286, x$287, x$288, x$289, x$29, x$290, x$291, x$292, x$293, x$294, x$295, x$296, x$297, x$298, x$299, x$3, x$30, x$300, x$301, x$302, x$303, x$304, x$305, x$306, x$307, x$308, x$309, x$31, x$310, x$311, x$312, x$313, x$314, x$315, x$316, x$317, x$318, x$319, x$32, x$320, x$321, x$322, x$323, x$324, x$325, x$326, x$327, x$328, x$329, x$33, x$330, x$331, x$332, x$333, x$334, x$335, x$336, x$337, x$338, x$339, x$34, x$340, x$341, x$342, x$343, x$344, x$345, x$346, x$347, x$348, x$349, x$35, x$350, x$351, x$352, x$353, x$354, x$355, x$356, x$36, x$37, x$38, x$39, x$4, x$40, x$41, x$42, x$43, x$44, x$45, x$46, x$47, x$48, x$49, x$5, x$50, x$51, x$52, x$53, x$54, x$55, x$56, x$57, x$58, x$59, x$6, x$60, x$61, x$62, x$63, x$64, x$65, x$66, x$67, x$68, x$69, x$7, x$70, x$71, x$72, x$73, x$74, x$75, x$76, x$77, x$78, x$79, x$8, x$80, x$81, x$82, x$83, x$84, x$85, x$86, x$87, x$88, x$89, x$9, x$90, x$91, x$92, x$93, x$94, x$95, x$96, x$97, x$98, x$99, x1, x10, x100, x1000, x1001, x1002, x1003, x1004, x1005, x1007, x1008, x1008$24ptr, x1009, x1009$24ptr, x101, x1010, x1010$24ptr, x1011, x1011$24ptr, x1012, x1012$24ptr, x1013, x1013$24ptr, x1014, x1014$24ptr, x1015, x1015$24ptr, x1016, x1016$24ptr, x102, x103, x104, x105, x106, x107, x108, x109, x11, x110, x111, x112, x113, x114, x115, x116, x117, x118, x119, x12, x120, x121, x122, x123, x124, x125, x126, x127, x128, x129, x13, x130, x131, x132, x133, x134, x135, x136, x137, x138, x139, x14, x140, x141, x142, x143, x144, x145, x146, x147, x148, x149, x15, x150, x151, x152, x153, x154, x155, x156, x157, x158, x159, x16, x160, x161, x162, x163, x164, x165, x166, x167, x168, x169, x17, x170, x171, x172, x173, x174, x175, x176, x177, x178, x179, x18, x180, x181, x182, x183, x184, x185, x186, x187, x188, x189, x19, x191, x192, x193, x194, x195, x196, x197, x198, x199, x2, x20, x200, x201, x202, x203, x204, x205, x206, x207, x208, x209, x21, x210, x211, x212, x213, x214, x215, x216, x217, x218, x219, x22, x220, x221, x222, x223, x224, x225, x226, x227, x228, x229, x23, x230, x231, x232, x233, x234, x235, x236, x237, x238, x239, x24, x240, x241, x242, x243, x244, x245, x246, x247, x248, x249, x25, x250, x251, x252, x253, x254, x255, x256, x257, x258, x259, x26, x260, x261, x262, x263, x264, x265, x266, x267, x268, x269, x27, x270, x271, x272, x273, x274, x275, x276, x277, x278, x279, x28, x280, x281, x282, x283, x284, x285, x286, x287, x288, x289, x29, x290, x291, x292, x293, x294, x295, x296, x297, x298, x299, x3, x30, x300, x302, x303, x304, x305, x306, x307, x308, x309, x31, x310, x311, x312, x313, x314, x315, x316, x317, x318, x319, x32, x320, x321, x322, x323, x324, x325, x326, x327, x328, x329, x33, x330, x331, x332, x333, x334, x335, x336, x337, x338, x339, x34, x340, x341, x342, x343, x344, x345, x346, x347, x348, x349, x35, x350, x351, x352, x353, x354, x355, x356, x357, x358, x359, x36, x360, x361, x362, x363, x364, x365, x366, x367, x368, x369, x37, x370, x371, x372, x373, x374, x375, x376, x377, x378, x379, x38, x380, x381, x382, x383, x384, x385, x386, x387, x388, x389, x39, x390, x391, x392, x393, x394, x395, x396, x397, x398, x399, x4, x40, x400, x401, x402, x403, x404, x405, x406, x407, x408, x409, x41, x410, x411, x413, x414, x415, x416, x417, x418, x419, x42, x420, x421, x422, x423, x424, x425, x426, x427, x428, x429, x43, x430, x431, x432, x433, x434, x435, x436, x437, x438, x439, x44, x440, x441, x442, x443, x444, x445, x446, x447, x448, x449, x45, x450, x451, x452, x453, x454, x455, x456, x457, x458, x459, x46, x460, x461, x462, x463, x464, x465, x466, x467, x468, x469, x47, x470, x471, x472, x473, x474, x475, x476, x477, x478, x479, x48, x480, x481, x482, x483, x484, x485, x486, x487, x488, x489, x49, x490, x491, x492, x493, x494, x495, x496, x497, x498, x499, x5, x50, x500, x501, x502, x503, x504, x505, x506, x507, x508, x509, x51, x510, x511, x512, x513, x514, x515, x516, x517, x518, x519, x52, x520, x521, x522, x524, x525, x526, x527, x528, x529, x53, x530, x531, x532, x533, x534, x535, x536, x537, x538, x539, x54, x540, x541, x542, x543, x544, x545, x546, x547, x548, x549, x55, x550, x551, x552, x553, x554, x555, x556, x557, x558, x559, x56, x560, x561, x562, x563, x564, x565, x566, x567, x568, x569, x57, x570, x571, x572, x573, x574, x575, x576, x577, x578, x579, x58, x580, x581, x582, x583, x584, x585, x586, x587, x588, x589, x59, x590, x591, x592, x593, x594, x595, x596, x597, x598, x599, x6, x60, x600, x601, x602, x603, x604, x605, x606, x607, x608, x609, x61, x610, x611, x612, x613, x614, x615, x616, x617, x618, x619, x62, x620, x621, x622, x623, x624, x625, x626, x627, x628, x629, x63, x630, x631, x632, x633, x635, x636, x637, x638, x639, x64, x640, x641, x642, x643, x644, x645, x646, x647, x648, x649, x65, x650, x651, x652, x653, x654, x655, x656, x657, x658, x659, x66, x660, x661, x662, x663, x664, x665, x666, x667, x668, x669, x67, x670, x671, x672, x673, x674, x675, x676, x677, x678, x679, x68, x680, x681, x682, x683, x684, x685, x686, x687, x688, x689, x69, x690, x691, x692, x693, x694, x695, x696, x697, x698, x699, x7, x70, x700, x701, x702, x703, x704, x705, x706, x707, x708, x709, x71, x710, x711, x712, x713, x714, x715, x716, x717, x718, x719, x72, x720, x721, x722, x723, x724, x725, x726, x727, x728, x729, x73, x730, x731, x732, x733, x734, x735, x736, x737, x738, x739, x74, x740, x741, x742, x743, x744, x746, x747, x748, x749, x75, x750, x751, x752, x753, x754, x755, x756, x757, x758, x759, x76, x760, x761, x762, x763, x764, x765, x766, x767, x768, x769, x77, x770, x771, x772, x773, x774, x775, x776, x777, x778, x779, x78, x780, x781, x782, x783, x784, x785, x786, x787, x788, x789, x79, x790, x791, x792, x793, x794, x795, x796, x797, x798, x799, x8, x800, x801, x802, x803, x804, x805, x806, x807, x808, x809, x81, x810, x811, x812, x813, x814, x815, x816, x817, x818, x819, x82, x820, x821, x822, x823, x824, x825, x826, x827, x828, x829, x83, x830, x831, x832, x833, x834, x835, x836, x837, x838, x839, x84, x840, x841, x842, x843, x844, x845, x846, x847, x848, x849, x85, x850, x851, x852, x853, x854, x855, x857, x858, x859, x86, x860, x861, x862, x863, x864, x865, x866, x867, x868, x869, x87, x870, x871, x872, x873, x874, x875, x876, x877, x878, x879, x88, x880, x881, x882, x883, x884, x885, x886, x887, x888, x889, x89, x890, x891, x892, x893, x894, x895, x896, x897, x898, x899, x9, x90, x900, x901, x902, x903, x904, x905, x906, x907, x908, x909, x91, x910, x911, x912, x913, x914, x915, x916, x917, x918, x919, x92, x920, x921, x922, x923, x924, x925, x926, x927, x928, x929, x93, x930, x931, x932, x933, x934, x935, x936, x937, x938, x939, x94, x940, x941, x942, x943, x944, x945, x946, x947, x948, x949, x95, x950, x951, x952, x953, x954, x955, x956, x957, x958, x959, x96, x960, x961, x962, x963, x964, x965, x966, x968, x969, x97, x970, x971, x972, x973, x974, x975, x976, x977, x978, x979, x98, x980, x981, x982, x983, x984, x985, x986, x987, x988, x989, x99, x990, x991, x992, x993, x994, x995, x996, x997, x998, x999; - x1 = arg1[1]; - x2 = arg1[2]; - x3 = arg1[3]; - x4 = arg1[4]; - x5 = arg1[5]; - x6 = arg1[6]; - x7 = arg1[7]; - x8 = arg1[8]; - x9 = arg1[0]; + x1 = (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[1]; + x2 = (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[2]; + x3 = (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[3]; + x4 = (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[4]; + x5 = (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[5]; + x6 = (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[6]; + x7 = (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[7]; + x8 = (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[8]; + x9 = (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[0]; x10 = new $Uint64(0, 0); x11 = new $Uint64(0, 0); - _tuple = bits.Mul64(x9, arg2[8]); + _tuple = bits.Mul64(x9, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[8]); x11 = _tuple[0]; x10 = _tuple[1]; x12 = new $Uint64(0, 0); x13 = new $Uint64(0, 0); - _tuple$1 = bits.Mul64(x9, arg2[7]); + _tuple$1 = bits.Mul64(x9, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[7]); x13 = _tuple$1[0]; x12 = _tuple$1[1]; x14 = new $Uint64(0, 0); x15 = new $Uint64(0, 0); - _tuple$2 = bits.Mul64(x9, arg2[6]); + _tuple$2 = bits.Mul64(x9, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[6]); x15 = _tuple$2[0]; x14 = _tuple$2[1]; x16 = new $Uint64(0, 0); x17 = new $Uint64(0, 0); - _tuple$3 = bits.Mul64(x9, arg2[5]); + _tuple$3 = bits.Mul64(x9, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[5]); x17 = _tuple$3[0]; x16 = _tuple$3[1]; x18 = new $Uint64(0, 0); x19 = new $Uint64(0, 0); - _tuple$4 = bits.Mul64(x9, arg2[4]); + _tuple$4 = bits.Mul64(x9, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[4]); x19 = _tuple$4[0]; x18 = _tuple$4[1]; x20 = new $Uint64(0, 0); x21 = new $Uint64(0, 0); - _tuple$5 = bits.Mul64(x9, arg2[3]); + _tuple$5 = bits.Mul64(x9, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[3]); x21 = _tuple$5[0]; x20 = _tuple$5[1]; x22 = new $Uint64(0, 0); x23 = new $Uint64(0, 0); - _tuple$6 = bits.Mul64(x9, arg2[2]); + _tuple$6 = bits.Mul64(x9, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[2]); x23 = _tuple$6[0]; x22 = _tuple$6[1]; x24 = new $Uint64(0, 0); x25 = new $Uint64(0, 0); - _tuple$7 = bits.Mul64(x9, arg2[1]); + _tuple$7 = bits.Mul64(x9, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[1]); x25 = _tuple$7[0]; x24 = _tuple$7[1]; x26 = new $Uint64(0, 0); x27 = new $Uint64(0, 0); - _tuple$8 = bits.Mul64(x9, arg2[0]); + _tuple$8 = bits.Mul64(x9, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[0]); x27 = _tuple$8[0]; x26 = _tuple$8[1]; x28 = new $Uint64(0, 0); @@ -199087,47 +200385,47 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x99 = _tuple$43[1]; x100 = new $Uint64(0, 0); x101 = new $Uint64(0, 0); - _tuple$44 = bits.Mul64(x1, arg2[8]); + _tuple$44 = bits.Mul64(x1, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[8]); x101 = _tuple$44[0]; x100 = _tuple$44[1]; x102 = new $Uint64(0, 0); x103 = new $Uint64(0, 0); - _tuple$45 = bits.Mul64(x1, arg2[7]); + _tuple$45 = bits.Mul64(x1, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[7]); x103 = _tuple$45[0]; x102 = _tuple$45[1]; x104 = new $Uint64(0, 0); x105 = new $Uint64(0, 0); - _tuple$46 = bits.Mul64(x1, arg2[6]); + _tuple$46 = bits.Mul64(x1, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[6]); x105 = _tuple$46[0]; x104 = _tuple$46[1]; x106 = new $Uint64(0, 0); x107 = new $Uint64(0, 0); - _tuple$47 = bits.Mul64(x1, arg2[5]); + _tuple$47 = bits.Mul64(x1, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[5]); x107 = _tuple$47[0]; x106 = _tuple$47[1]; x108 = new $Uint64(0, 0); x109 = new $Uint64(0, 0); - _tuple$48 = bits.Mul64(x1, arg2[4]); + _tuple$48 = bits.Mul64(x1, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[4]); x109 = _tuple$48[0]; x108 = _tuple$48[1]; x110 = new $Uint64(0, 0); x111 = new $Uint64(0, 0); - _tuple$49 = bits.Mul64(x1, arg2[3]); + _tuple$49 = bits.Mul64(x1, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[3]); x111 = _tuple$49[0]; x110 = _tuple$49[1]; x112 = new $Uint64(0, 0); x113 = new $Uint64(0, 0); - _tuple$50 = bits.Mul64(x1, arg2[2]); + _tuple$50 = bits.Mul64(x1, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[2]); x113 = _tuple$50[0]; x112 = _tuple$50[1]; x114 = new $Uint64(0, 0); x115 = new $Uint64(0, 0); - _tuple$51 = bits.Mul64(x1, arg2[1]); + _tuple$51 = bits.Mul64(x1, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[1]); x115 = _tuple$51[0]; x114 = _tuple$51[1]; x116 = new $Uint64(0, 0); x117 = new $Uint64(0, 0); - _tuple$52 = bits.Mul64(x1, arg2[0]); + _tuple$52 = bits.Mul64(x1, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[0]); x117 = _tuple$52[0]; x116 = _tuple$52[1]; x118 = new $Uint64(0, 0); @@ -199358,47 +200656,47 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x210 = (x$64 = ((x$65 = (new p521Uint1(x209.$high, x209.$low)), new $Uint64(x$65.$high, x$65.$low))), x$66 = ((x$67 = (new p521Uint1(x154.$high, x154.$low)), new $Uint64(x$67.$high, x$67.$low))), new $Uint64(x$64.$high + x$66.$high, x$64.$low + x$66.$low)); x211 = new $Uint64(0, 0); x212 = new $Uint64(0, 0); - _tuple$98 = bits.Mul64(x2, arg2[8]); + _tuple$98 = bits.Mul64(x2, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[8]); x212 = _tuple$98[0]; x211 = _tuple$98[1]; x213 = new $Uint64(0, 0); x214 = new $Uint64(0, 0); - _tuple$99 = bits.Mul64(x2, arg2[7]); + _tuple$99 = bits.Mul64(x2, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[7]); x214 = _tuple$99[0]; x213 = _tuple$99[1]; x215 = new $Uint64(0, 0); x216 = new $Uint64(0, 0); - _tuple$100 = bits.Mul64(x2, arg2[6]); + _tuple$100 = bits.Mul64(x2, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[6]); x216 = _tuple$100[0]; x215 = _tuple$100[1]; x217 = new $Uint64(0, 0); x218 = new $Uint64(0, 0); - _tuple$101 = bits.Mul64(x2, arg2[5]); + _tuple$101 = bits.Mul64(x2, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[5]); x218 = _tuple$101[0]; x217 = _tuple$101[1]; x219 = new $Uint64(0, 0); x220 = new $Uint64(0, 0); - _tuple$102 = bits.Mul64(x2, arg2[4]); + _tuple$102 = bits.Mul64(x2, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[4]); x220 = _tuple$102[0]; x219 = _tuple$102[1]; x221 = new $Uint64(0, 0); x222 = new $Uint64(0, 0); - _tuple$103 = bits.Mul64(x2, arg2[3]); + _tuple$103 = bits.Mul64(x2, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[3]); x222 = _tuple$103[0]; x221 = _tuple$103[1]; x223 = new $Uint64(0, 0); x224 = new $Uint64(0, 0); - _tuple$104 = bits.Mul64(x2, arg2[2]); + _tuple$104 = bits.Mul64(x2, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[2]); x224 = _tuple$104[0]; x223 = _tuple$104[1]; x225 = new $Uint64(0, 0); x226 = new $Uint64(0, 0); - _tuple$105 = bits.Mul64(x2, arg2[1]); + _tuple$105 = bits.Mul64(x2, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[1]); x226 = _tuple$105[0]; x225 = _tuple$105[1]; x227 = new $Uint64(0, 0); x228 = new $Uint64(0, 0); - _tuple$106 = bits.Mul64(x2, arg2[0]); + _tuple$106 = bits.Mul64(x2, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[0]); x228 = _tuple$106[0]; x227 = _tuple$106[1]; x229 = new $Uint64(0, 0); @@ -199629,47 +200927,47 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x321 = (x$104 = ((x$105 = (new p521Uint1(x320.$high, x320.$low)), new $Uint64(x$105.$high, x$105.$low))), x$106 = ((x$107 = (new p521Uint1(x265.$high, x265.$low)), new $Uint64(x$107.$high, x$107.$low))), new $Uint64(x$104.$high + x$106.$high, x$104.$low + x$106.$low)); x322 = new $Uint64(0, 0); x323 = new $Uint64(0, 0); - _tuple$152 = bits.Mul64(x3, arg2[8]); + _tuple$152 = bits.Mul64(x3, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[8]); x323 = _tuple$152[0]; x322 = _tuple$152[1]; x324 = new $Uint64(0, 0); x325 = new $Uint64(0, 0); - _tuple$153 = bits.Mul64(x3, arg2[7]); + _tuple$153 = bits.Mul64(x3, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[7]); x325 = _tuple$153[0]; x324 = _tuple$153[1]; x326 = new $Uint64(0, 0); x327 = new $Uint64(0, 0); - _tuple$154 = bits.Mul64(x3, arg2[6]); + _tuple$154 = bits.Mul64(x3, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[6]); x327 = _tuple$154[0]; x326 = _tuple$154[1]; x328 = new $Uint64(0, 0); x329 = new $Uint64(0, 0); - _tuple$155 = bits.Mul64(x3, arg2[5]); + _tuple$155 = bits.Mul64(x3, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[5]); x329 = _tuple$155[0]; x328 = _tuple$155[1]; x330 = new $Uint64(0, 0); x331 = new $Uint64(0, 0); - _tuple$156 = bits.Mul64(x3, arg2[4]); + _tuple$156 = bits.Mul64(x3, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[4]); x331 = _tuple$156[0]; x330 = _tuple$156[1]; x332 = new $Uint64(0, 0); x333 = new $Uint64(0, 0); - _tuple$157 = bits.Mul64(x3, arg2[3]); + _tuple$157 = bits.Mul64(x3, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[3]); x333 = _tuple$157[0]; x332 = _tuple$157[1]; x334 = new $Uint64(0, 0); x335 = new $Uint64(0, 0); - _tuple$158 = bits.Mul64(x3, arg2[2]); + _tuple$158 = bits.Mul64(x3, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[2]); x335 = _tuple$158[0]; x334 = _tuple$158[1]; x336 = new $Uint64(0, 0); x337 = new $Uint64(0, 0); - _tuple$159 = bits.Mul64(x3, arg2[1]); + _tuple$159 = bits.Mul64(x3, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[1]); x337 = _tuple$159[0]; x336 = _tuple$159[1]; x338 = new $Uint64(0, 0); x339 = new $Uint64(0, 0); - _tuple$160 = bits.Mul64(x3, arg2[0]); + _tuple$160 = bits.Mul64(x3, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[0]); x339 = _tuple$160[0]; x338 = _tuple$160[1]; x340 = new $Uint64(0, 0); @@ -199900,47 +201198,47 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x432 = (x$144 = ((x$145 = (new p521Uint1(x431.$high, x431.$low)), new $Uint64(x$145.$high, x$145.$low))), x$146 = ((x$147 = (new p521Uint1(x376.$high, x376.$low)), new $Uint64(x$147.$high, x$147.$low))), new $Uint64(x$144.$high + x$146.$high, x$144.$low + x$146.$low)); x433 = new $Uint64(0, 0); x434 = new $Uint64(0, 0); - _tuple$206 = bits.Mul64(x4, arg2[8]); + _tuple$206 = bits.Mul64(x4, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[8]); x434 = _tuple$206[0]; x433 = _tuple$206[1]; x435 = new $Uint64(0, 0); x436 = new $Uint64(0, 0); - _tuple$207 = bits.Mul64(x4, arg2[7]); + _tuple$207 = bits.Mul64(x4, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[7]); x436 = _tuple$207[0]; x435 = _tuple$207[1]; x437 = new $Uint64(0, 0); x438 = new $Uint64(0, 0); - _tuple$208 = bits.Mul64(x4, arg2[6]); + _tuple$208 = bits.Mul64(x4, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[6]); x438 = _tuple$208[0]; x437 = _tuple$208[1]; x439 = new $Uint64(0, 0); x440 = new $Uint64(0, 0); - _tuple$209 = bits.Mul64(x4, arg2[5]); + _tuple$209 = bits.Mul64(x4, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[5]); x440 = _tuple$209[0]; x439 = _tuple$209[1]; x441 = new $Uint64(0, 0); x442 = new $Uint64(0, 0); - _tuple$210 = bits.Mul64(x4, arg2[4]); + _tuple$210 = bits.Mul64(x4, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[4]); x442 = _tuple$210[0]; x441 = _tuple$210[1]; x443 = new $Uint64(0, 0); x444 = new $Uint64(0, 0); - _tuple$211 = bits.Mul64(x4, arg2[3]); + _tuple$211 = bits.Mul64(x4, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[3]); x444 = _tuple$211[0]; x443 = _tuple$211[1]; x445 = new $Uint64(0, 0); x446 = new $Uint64(0, 0); - _tuple$212 = bits.Mul64(x4, arg2[2]); + _tuple$212 = bits.Mul64(x4, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[2]); x446 = _tuple$212[0]; x445 = _tuple$212[1]; x447 = new $Uint64(0, 0); x448 = new $Uint64(0, 0); - _tuple$213 = bits.Mul64(x4, arg2[1]); + _tuple$213 = bits.Mul64(x4, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[1]); x448 = _tuple$213[0]; x447 = _tuple$213[1]; x449 = new $Uint64(0, 0); x450 = new $Uint64(0, 0); - _tuple$214 = bits.Mul64(x4, arg2[0]); + _tuple$214 = bits.Mul64(x4, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[0]); x450 = _tuple$214[0]; x449 = _tuple$214[1]; x451 = new $Uint64(0, 0); @@ -200171,47 +201469,47 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x543 = (x$184 = ((x$185 = (new p521Uint1(x542.$high, x542.$low)), new $Uint64(x$185.$high, x$185.$low))), x$186 = ((x$187 = (new p521Uint1(x487.$high, x487.$low)), new $Uint64(x$187.$high, x$187.$low))), new $Uint64(x$184.$high + x$186.$high, x$184.$low + x$186.$low)); x544 = new $Uint64(0, 0); x545 = new $Uint64(0, 0); - _tuple$260 = bits.Mul64(x5, arg2[8]); + _tuple$260 = bits.Mul64(x5, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[8]); x545 = _tuple$260[0]; x544 = _tuple$260[1]; x546 = new $Uint64(0, 0); x547 = new $Uint64(0, 0); - _tuple$261 = bits.Mul64(x5, arg2[7]); + _tuple$261 = bits.Mul64(x5, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[7]); x547 = _tuple$261[0]; x546 = _tuple$261[1]; x548 = new $Uint64(0, 0); x549 = new $Uint64(0, 0); - _tuple$262 = bits.Mul64(x5, arg2[6]); + _tuple$262 = bits.Mul64(x5, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[6]); x549 = _tuple$262[0]; x548 = _tuple$262[1]; x550 = new $Uint64(0, 0); x551 = new $Uint64(0, 0); - _tuple$263 = bits.Mul64(x5, arg2[5]); + _tuple$263 = bits.Mul64(x5, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[5]); x551 = _tuple$263[0]; x550 = _tuple$263[1]; x552 = new $Uint64(0, 0); x553 = new $Uint64(0, 0); - _tuple$264 = bits.Mul64(x5, arg2[4]); + _tuple$264 = bits.Mul64(x5, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[4]); x553 = _tuple$264[0]; x552 = _tuple$264[1]; x554 = new $Uint64(0, 0); x555 = new $Uint64(0, 0); - _tuple$265 = bits.Mul64(x5, arg2[3]); + _tuple$265 = bits.Mul64(x5, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[3]); x555 = _tuple$265[0]; x554 = _tuple$265[1]; x556 = new $Uint64(0, 0); x557 = new $Uint64(0, 0); - _tuple$266 = bits.Mul64(x5, arg2[2]); + _tuple$266 = bits.Mul64(x5, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[2]); x557 = _tuple$266[0]; x556 = _tuple$266[1]; x558 = new $Uint64(0, 0); x559 = new $Uint64(0, 0); - _tuple$267 = bits.Mul64(x5, arg2[1]); + _tuple$267 = bits.Mul64(x5, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[1]); x559 = _tuple$267[0]; x558 = _tuple$267[1]; x560 = new $Uint64(0, 0); x561 = new $Uint64(0, 0); - _tuple$268 = bits.Mul64(x5, arg2[0]); + _tuple$268 = bits.Mul64(x5, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[0]); x561 = _tuple$268[0]; x560 = _tuple$268[1]; x562 = new $Uint64(0, 0); @@ -200442,47 +201740,47 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x654 = (x$224 = ((x$225 = (new p521Uint1(x653.$high, x653.$low)), new $Uint64(x$225.$high, x$225.$low))), x$226 = ((x$227 = (new p521Uint1(x598.$high, x598.$low)), new $Uint64(x$227.$high, x$227.$low))), new $Uint64(x$224.$high + x$226.$high, x$224.$low + x$226.$low)); x655 = new $Uint64(0, 0); x656 = new $Uint64(0, 0); - _tuple$314 = bits.Mul64(x6, arg2[8]); + _tuple$314 = bits.Mul64(x6, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[8]); x656 = _tuple$314[0]; x655 = _tuple$314[1]; x657 = new $Uint64(0, 0); x658 = new $Uint64(0, 0); - _tuple$315 = bits.Mul64(x6, arg2[7]); + _tuple$315 = bits.Mul64(x6, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[7]); x658 = _tuple$315[0]; x657 = _tuple$315[1]; x659 = new $Uint64(0, 0); x660 = new $Uint64(0, 0); - _tuple$316 = bits.Mul64(x6, arg2[6]); + _tuple$316 = bits.Mul64(x6, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[6]); x660 = _tuple$316[0]; x659 = _tuple$316[1]; x661 = new $Uint64(0, 0); x662 = new $Uint64(0, 0); - _tuple$317 = bits.Mul64(x6, arg2[5]); + _tuple$317 = bits.Mul64(x6, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[5]); x662 = _tuple$317[0]; x661 = _tuple$317[1]; x663 = new $Uint64(0, 0); x664 = new $Uint64(0, 0); - _tuple$318 = bits.Mul64(x6, arg2[4]); + _tuple$318 = bits.Mul64(x6, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[4]); x664 = _tuple$318[0]; x663 = _tuple$318[1]; x665 = new $Uint64(0, 0); x666 = new $Uint64(0, 0); - _tuple$319 = bits.Mul64(x6, arg2[3]); + _tuple$319 = bits.Mul64(x6, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[3]); x666 = _tuple$319[0]; x665 = _tuple$319[1]; x667 = new $Uint64(0, 0); x668 = new $Uint64(0, 0); - _tuple$320 = bits.Mul64(x6, arg2[2]); + _tuple$320 = bits.Mul64(x6, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[2]); x668 = _tuple$320[0]; x667 = _tuple$320[1]; x669 = new $Uint64(0, 0); x670 = new $Uint64(0, 0); - _tuple$321 = bits.Mul64(x6, arg2[1]); + _tuple$321 = bits.Mul64(x6, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[1]); x670 = _tuple$321[0]; x669 = _tuple$321[1]; x671 = new $Uint64(0, 0); x672 = new $Uint64(0, 0); - _tuple$322 = bits.Mul64(x6, arg2[0]); + _tuple$322 = bits.Mul64(x6, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[0]); x672 = _tuple$322[0]; x671 = _tuple$322[1]; x673 = new $Uint64(0, 0); @@ -200713,47 +202011,47 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x765 = (x$264 = ((x$265 = (new p521Uint1(x764.$high, x764.$low)), new $Uint64(x$265.$high, x$265.$low))), x$266 = ((x$267 = (new p521Uint1(x709.$high, x709.$low)), new $Uint64(x$267.$high, x$267.$low))), new $Uint64(x$264.$high + x$266.$high, x$264.$low + x$266.$low)); x766 = new $Uint64(0, 0); x767 = new $Uint64(0, 0); - _tuple$368 = bits.Mul64(x7, arg2[8]); + _tuple$368 = bits.Mul64(x7, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[8]); x767 = _tuple$368[0]; x766 = _tuple$368[1]; x768 = new $Uint64(0, 0); x769 = new $Uint64(0, 0); - _tuple$369 = bits.Mul64(x7, arg2[7]); + _tuple$369 = bits.Mul64(x7, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[7]); x769 = _tuple$369[0]; x768 = _tuple$369[1]; x770 = new $Uint64(0, 0); x771 = new $Uint64(0, 0); - _tuple$370 = bits.Mul64(x7, arg2[6]); + _tuple$370 = bits.Mul64(x7, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[6]); x771 = _tuple$370[0]; x770 = _tuple$370[1]; x772 = new $Uint64(0, 0); x773 = new $Uint64(0, 0); - _tuple$371 = bits.Mul64(x7, arg2[5]); + _tuple$371 = bits.Mul64(x7, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[5]); x773 = _tuple$371[0]; x772 = _tuple$371[1]; x774 = new $Uint64(0, 0); x775 = new $Uint64(0, 0); - _tuple$372 = bits.Mul64(x7, arg2[4]); + _tuple$372 = bits.Mul64(x7, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[4]); x775 = _tuple$372[0]; x774 = _tuple$372[1]; x776 = new $Uint64(0, 0); x777 = new $Uint64(0, 0); - _tuple$373 = bits.Mul64(x7, arg2[3]); + _tuple$373 = bits.Mul64(x7, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[3]); x777 = _tuple$373[0]; x776 = _tuple$373[1]; x778 = new $Uint64(0, 0); x779 = new $Uint64(0, 0); - _tuple$374 = bits.Mul64(x7, arg2[2]); + _tuple$374 = bits.Mul64(x7, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[2]); x779 = _tuple$374[0]; x778 = _tuple$374[1]; x780 = new $Uint64(0, 0); x781 = new $Uint64(0, 0); - _tuple$375 = bits.Mul64(x7, arg2[1]); + _tuple$375 = bits.Mul64(x7, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[1]); x781 = _tuple$375[0]; x780 = _tuple$375[1]; x782 = new $Uint64(0, 0); x783 = new $Uint64(0, 0); - _tuple$376 = bits.Mul64(x7, arg2[0]); + _tuple$376 = bits.Mul64(x7, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[0]); x783 = _tuple$376[0]; x782 = _tuple$376[1]; x784 = new $Uint64(0, 0); @@ -200984,47 +202282,47 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x876 = (x$304 = ((x$305 = (new p521Uint1(x875.$high, x875.$low)), new $Uint64(x$305.$high, x$305.$low))), x$306 = ((x$307 = (new p521Uint1(x820.$high, x820.$low)), new $Uint64(x$307.$high, x$307.$low))), new $Uint64(x$304.$high + x$306.$high, x$304.$low + x$306.$low)); x877 = new $Uint64(0, 0); x878 = new $Uint64(0, 0); - _tuple$422 = bits.Mul64(x8, arg2[8]); + _tuple$422 = bits.Mul64(x8, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[8]); x878 = _tuple$422[0]; x877 = _tuple$422[1]; x879 = new $Uint64(0, 0); x880 = new $Uint64(0, 0); - _tuple$423 = bits.Mul64(x8, arg2[7]); + _tuple$423 = bits.Mul64(x8, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[7]); x880 = _tuple$423[0]; x879 = _tuple$423[1]; x881 = new $Uint64(0, 0); x882 = new $Uint64(0, 0); - _tuple$424 = bits.Mul64(x8, arg2[6]); + _tuple$424 = bits.Mul64(x8, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[6]); x882 = _tuple$424[0]; x881 = _tuple$424[1]; x883 = new $Uint64(0, 0); x884 = new $Uint64(0, 0); - _tuple$425 = bits.Mul64(x8, arg2[5]); + _tuple$425 = bits.Mul64(x8, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[5]); x884 = _tuple$425[0]; x883 = _tuple$425[1]; x885 = new $Uint64(0, 0); x886 = new $Uint64(0, 0); - _tuple$426 = bits.Mul64(x8, arg2[4]); + _tuple$426 = bits.Mul64(x8, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[4]); x886 = _tuple$426[0]; x885 = _tuple$426[1]; x887 = new $Uint64(0, 0); x888 = new $Uint64(0, 0); - _tuple$427 = bits.Mul64(x8, arg2[3]); + _tuple$427 = bits.Mul64(x8, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[3]); x888 = _tuple$427[0]; x887 = _tuple$427[1]; x889 = new $Uint64(0, 0); x890 = new $Uint64(0, 0); - _tuple$428 = bits.Mul64(x8, arg2[2]); + _tuple$428 = bits.Mul64(x8, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[2]); x890 = _tuple$428[0]; x889 = _tuple$428[1]; x891 = new $Uint64(0, 0); x892 = new $Uint64(0, 0); - _tuple$429 = bits.Mul64(x8, arg2[1]); + _tuple$429 = bits.Mul64(x8, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[1]); x892 = _tuple$429[0]; x891 = _tuple$429[1]; x893 = new $Uint64(0, 0); x894 = new $Uint64(0, 0); - _tuple$430 = bits.Mul64(x8, arg2[0]); + _tuple$430 = bits.Mul64(x8, (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[0]); x894 = _tuple$430[0]; x893 = _tuple$430[1]; x895 = new $Uint64(0, 0); @@ -201302,23 +202600,23 @@ $packages["crypto/internal/nistec/fiat"] = (function() { _tuple$485 = bits.Sub64(x987, new $Uint64(0, 0), ((x$356 = (new p521Uint1(x1005.$high, x1005.$low)), new $Uint64(x$356.$high, x$356.$low)))); x1007 = _tuple$485[1]; x1008 = new $Uint64(0, 0); - p521CmovznzU64((x1008$24ptr || (x1008$24ptr = new ptrType(function() { return x1008; }, function($v) { x1008 = $v; }))), (new p521Uint1(x1007.$high, x1007.$low)), x988, x969); + p521CmovznzU64((x1008$24ptr || (x1008$24ptr = new ptrType$1(function() { return x1008; }, function($v) { x1008 = $v; }))), (new p521Uint1(x1007.$high, x1007.$low)), x988, x969); x1009 = new $Uint64(0, 0); - p521CmovznzU64((x1009$24ptr || (x1009$24ptr = new ptrType(function() { return x1009; }, function($v) { x1009 = $v; }))), (new p521Uint1(x1007.$high, x1007.$low)), x990, x971); + p521CmovznzU64((x1009$24ptr || (x1009$24ptr = new ptrType$1(function() { return x1009; }, function($v) { x1009 = $v; }))), (new p521Uint1(x1007.$high, x1007.$low)), x990, x971); x1010 = new $Uint64(0, 0); - p521CmovznzU64((x1010$24ptr || (x1010$24ptr = new ptrType(function() { return x1010; }, function($v) { x1010 = $v; }))), (new p521Uint1(x1007.$high, x1007.$low)), x992, x973); + p521CmovznzU64((x1010$24ptr || (x1010$24ptr = new ptrType$1(function() { return x1010; }, function($v) { x1010 = $v; }))), (new p521Uint1(x1007.$high, x1007.$low)), x992, x973); x1011 = new $Uint64(0, 0); - p521CmovznzU64((x1011$24ptr || (x1011$24ptr = new ptrType(function() { return x1011; }, function($v) { x1011 = $v; }))), (new p521Uint1(x1007.$high, x1007.$low)), x994, x975); + p521CmovznzU64((x1011$24ptr || (x1011$24ptr = new ptrType$1(function() { return x1011; }, function($v) { x1011 = $v; }))), (new p521Uint1(x1007.$high, x1007.$low)), x994, x975); x1012 = new $Uint64(0, 0); - p521CmovznzU64((x1012$24ptr || (x1012$24ptr = new ptrType(function() { return x1012; }, function($v) { x1012 = $v; }))), (new p521Uint1(x1007.$high, x1007.$low)), x996, x977); + p521CmovznzU64((x1012$24ptr || (x1012$24ptr = new ptrType$1(function() { return x1012; }, function($v) { x1012 = $v; }))), (new p521Uint1(x1007.$high, x1007.$low)), x996, x977); x1013 = new $Uint64(0, 0); - p521CmovznzU64((x1013$24ptr || (x1013$24ptr = new ptrType(function() { return x1013; }, function($v) { x1013 = $v; }))), (new p521Uint1(x1007.$high, x1007.$low)), x998, x979); + p521CmovznzU64((x1013$24ptr || (x1013$24ptr = new ptrType$1(function() { return x1013; }, function($v) { x1013 = $v; }))), (new p521Uint1(x1007.$high, x1007.$low)), x998, x979); x1014 = new $Uint64(0, 0); - p521CmovznzU64((x1014$24ptr || (x1014$24ptr = new ptrType(function() { return x1014; }, function($v) { x1014 = $v; }))), (new p521Uint1(x1007.$high, x1007.$low)), x1000, x981); + p521CmovznzU64((x1014$24ptr || (x1014$24ptr = new ptrType$1(function() { return x1014; }, function($v) { x1014 = $v; }))), (new p521Uint1(x1007.$high, x1007.$low)), x1000, x981); x1015 = new $Uint64(0, 0); - p521CmovznzU64((x1015$24ptr || (x1015$24ptr = new ptrType(function() { return x1015; }, function($v) { x1015 = $v; }))), (new p521Uint1(x1007.$high, x1007.$low)), x1002, x983); + p521CmovznzU64((x1015$24ptr || (x1015$24ptr = new ptrType$1(function() { return x1015; }, function($v) { x1015 = $v; }))), (new p521Uint1(x1007.$high, x1007.$low)), x1002, x983); x1016 = new $Uint64(0, 0); - p521CmovznzU64((x1016$24ptr || (x1016$24ptr = new ptrType(function() { return x1016; }, function($v) { x1016 = $v; }))), (new p521Uint1(x1007.$high, x1007.$low)), x1004, x985); + p521CmovznzU64((x1016$24ptr || (x1016$24ptr = new ptrType$1(function() { return x1016; }, function($v) { x1016 = $v; }))), (new p521Uint1(x1007.$high, x1007.$low)), x1004, x985); out1.nilCheck, out1[0] = x1008; out1.nilCheck, out1[1] = x1009; out1.nilCheck, out1[2] = x1010; @@ -201331,58 +202629,58 @@ $packages["crypto/internal/nistec/fiat"] = (function() { }; p521Square = function p521Square$1(out1, arg1) { var _tuple, _tuple$1, _tuple$10, _tuple$100, _tuple$101, _tuple$102, _tuple$103, _tuple$104, _tuple$105, _tuple$106, _tuple$107, _tuple$108, _tuple$109, _tuple$11, _tuple$110, _tuple$111, _tuple$112, _tuple$113, _tuple$114, _tuple$115, _tuple$116, _tuple$117, _tuple$118, _tuple$119, _tuple$12, _tuple$120, _tuple$121, _tuple$122, _tuple$123, _tuple$124, _tuple$125, _tuple$126, _tuple$127, _tuple$128, _tuple$129, _tuple$13, _tuple$130, _tuple$131, _tuple$132, _tuple$133, _tuple$134, _tuple$135, _tuple$136, _tuple$137, _tuple$138, _tuple$139, _tuple$14, _tuple$140, _tuple$141, _tuple$142, _tuple$143, _tuple$144, _tuple$145, _tuple$146, _tuple$147, _tuple$148, _tuple$149, _tuple$15, _tuple$150, _tuple$151, _tuple$152, _tuple$153, _tuple$154, _tuple$155, _tuple$156, _tuple$157, _tuple$158, _tuple$159, _tuple$16, _tuple$160, _tuple$161, _tuple$162, _tuple$163, _tuple$164, _tuple$165, _tuple$166, _tuple$167, _tuple$168, _tuple$169, _tuple$17, _tuple$170, _tuple$171, _tuple$172, _tuple$173, _tuple$174, _tuple$175, _tuple$176, _tuple$177, _tuple$178, _tuple$179, _tuple$18, _tuple$180, _tuple$181, _tuple$182, _tuple$183, _tuple$184, _tuple$185, _tuple$186, _tuple$187, _tuple$188, _tuple$189, _tuple$19, _tuple$190, _tuple$191, _tuple$192, _tuple$193, _tuple$194, _tuple$195, _tuple$196, _tuple$197, _tuple$198, _tuple$199, _tuple$2, _tuple$20, _tuple$200, _tuple$201, _tuple$202, _tuple$203, _tuple$204, _tuple$205, _tuple$206, _tuple$207, _tuple$208, _tuple$209, _tuple$21, _tuple$210, _tuple$211, _tuple$212, _tuple$213, _tuple$214, _tuple$215, _tuple$216, _tuple$217, _tuple$218, _tuple$219, _tuple$22, _tuple$220, _tuple$221, _tuple$222, _tuple$223, _tuple$224, _tuple$225, _tuple$226, _tuple$227, _tuple$228, _tuple$229, _tuple$23, _tuple$230, _tuple$231, _tuple$232, _tuple$233, _tuple$234, _tuple$235, _tuple$236, _tuple$237, _tuple$238, _tuple$239, _tuple$24, _tuple$240, _tuple$241, _tuple$242, _tuple$243, _tuple$244, _tuple$245, _tuple$246, _tuple$247, _tuple$248, _tuple$249, _tuple$25, _tuple$250, _tuple$251, _tuple$252, _tuple$253, _tuple$254, _tuple$255, _tuple$256, _tuple$257, _tuple$258, _tuple$259, _tuple$26, _tuple$260, _tuple$261, _tuple$262, _tuple$263, _tuple$264, _tuple$265, _tuple$266, _tuple$267, _tuple$268, _tuple$269, _tuple$27, _tuple$270, _tuple$271, _tuple$272, _tuple$273, _tuple$274, _tuple$275, _tuple$276, _tuple$277, _tuple$278, _tuple$279, _tuple$28, _tuple$280, _tuple$281, _tuple$282, _tuple$283, _tuple$284, _tuple$285, _tuple$286, _tuple$287, _tuple$288, _tuple$289, _tuple$29, _tuple$290, _tuple$291, _tuple$292, _tuple$293, _tuple$294, _tuple$295, _tuple$296, _tuple$297, _tuple$298, _tuple$299, _tuple$3, _tuple$30, _tuple$300, _tuple$301, _tuple$302, _tuple$303, _tuple$304, _tuple$305, _tuple$306, _tuple$307, _tuple$308, _tuple$309, _tuple$31, _tuple$310, _tuple$311, _tuple$312, _tuple$313, _tuple$314, _tuple$315, _tuple$316, _tuple$317, _tuple$318, _tuple$319, _tuple$32, _tuple$320, _tuple$321, _tuple$322, _tuple$323, _tuple$324, _tuple$325, _tuple$326, _tuple$327, _tuple$328, _tuple$329, _tuple$33, _tuple$330, _tuple$331, _tuple$332, _tuple$333, _tuple$334, _tuple$335, _tuple$336, _tuple$337, _tuple$338, _tuple$339, _tuple$34, _tuple$340, _tuple$341, _tuple$342, _tuple$343, _tuple$344, _tuple$345, _tuple$346, _tuple$347, _tuple$348, _tuple$349, _tuple$35, _tuple$350, _tuple$351, _tuple$352, _tuple$353, _tuple$354, _tuple$355, _tuple$356, _tuple$357, _tuple$358, _tuple$359, _tuple$36, _tuple$360, _tuple$361, _tuple$362, _tuple$363, _tuple$364, _tuple$365, _tuple$366, _tuple$367, _tuple$368, _tuple$369, _tuple$37, _tuple$370, _tuple$371, _tuple$372, _tuple$373, _tuple$374, _tuple$375, _tuple$376, _tuple$377, _tuple$378, _tuple$379, _tuple$38, _tuple$380, _tuple$381, _tuple$382, _tuple$383, _tuple$384, _tuple$385, _tuple$386, _tuple$387, _tuple$388, _tuple$389, _tuple$39, _tuple$390, _tuple$391, _tuple$392, _tuple$393, _tuple$394, _tuple$395, _tuple$396, _tuple$397, _tuple$398, _tuple$399, _tuple$4, _tuple$40, _tuple$400, _tuple$401, _tuple$402, _tuple$403, _tuple$404, _tuple$405, _tuple$406, _tuple$407, _tuple$408, _tuple$409, _tuple$41, _tuple$410, _tuple$411, _tuple$412, _tuple$413, _tuple$414, _tuple$415, _tuple$416, _tuple$417, _tuple$418, _tuple$419, _tuple$42, _tuple$420, _tuple$421, _tuple$422, _tuple$423, _tuple$424, _tuple$425, _tuple$426, _tuple$427, _tuple$428, _tuple$429, _tuple$43, _tuple$430, _tuple$431, _tuple$432, _tuple$433, _tuple$434, _tuple$435, _tuple$436, _tuple$437, _tuple$438, _tuple$439, _tuple$44, _tuple$440, _tuple$441, _tuple$442, _tuple$443, _tuple$444, _tuple$445, _tuple$446, _tuple$447, _tuple$448, _tuple$449, _tuple$45, _tuple$450, _tuple$451, _tuple$452, _tuple$453, _tuple$454, _tuple$455, _tuple$456, _tuple$457, _tuple$458, _tuple$459, _tuple$46, _tuple$460, _tuple$461, _tuple$462, _tuple$463, _tuple$464, _tuple$465, _tuple$466, _tuple$467, _tuple$468, _tuple$469, _tuple$47, _tuple$470, _tuple$471, _tuple$472, _tuple$473, _tuple$474, _tuple$475, _tuple$476, _tuple$477, _tuple$478, _tuple$479, _tuple$48, _tuple$480, _tuple$481, _tuple$482, _tuple$483, _tuple$484, _tuple$485, _tuple$49, _tuple$5, _tuple$50, _tuple$51, _tuple$52, _tuple$53, _tuple$54, _tuple$55, _tuple$56, _tuple$57, _tuple$58, _tuple$59, _tuple$6, _tuple$60, _tuple$61, _tuple$62, _tuple$63, _tuple$64, _tuple$65, _tuple$66, _tuple$67, _tuple$68, _tuple$69, _tuple$7, _tuple$70, _tuple$71, _tuple$72, _tuple$73, _tuple$74, _tuple$75, _tuple$76, _tuple$77, _tuple$78, _tuple$79, _tuple$8, _tuple$80, _tuple$81, _tuple$82, _tuple$83, _tuple$84, _tuple$85, _tuple$86, _tuple$87, _tuple$88, _tuple$89, _tuple$9, _tuple$90, _tuple$91, _tuple$92, _tuple$93, _tuple$94, _tuple$95, _tuple$96, _tuple$97, _tuple$98, _tuple$99, arg1, out1, x, x$1, x$10, x$100, x$101, x$102, x$103, x$104, x$105, x$106, x$107, x$108, x$109, x$11, x$110, x$111, x$112, x$113, x$114, x$115, x$116, x$117, x$118, x$119, x$12, x$120, x$121, x$122, x$123, x$124, x$125, x$126, x$127, x$128, x$129, x$13, x$130, x$131, x$132, x$133, x$134, x$135, x$136, x$137, x$138, x$139, x$14, x$140, x$141, x$142, x$143, x$144, x$145, x$146, x$147, x$148, x$149, x$15, x$150, x$151, x$152, x$153, x$154, x$155, x$156, x$157, x$158, x$159, x$16, x$160, x$161, x$162, x$163, x$164, x$165, x$166, x$167, x$168, x$169, x$17, x$170, x$171, x$172, x$173, x$174, x$175, x$176, x$177, x$178, x$179, x$18, x$180, x$181, x$182, x$183, x$184, x$185, x$186, x$187, x$188, x$189, x$19, x$190, x$191, x$192, x$193, x$194, x$195, x$196, x$197, x$198, x$199, x$2, x$20, x$200, x$201, x$202, x$203, x$204, x$205, x$206, x$207, x$208, x$209, x$21, x$210, x$211, x$212, x$213, x$214, x$215, x$216, x$217, x$218, x$219, x$22, x$220, x$221, x$222, x$223, x$224, x$225, x$226, x$227, x$228, x$229, x$23, x$230, x$231, x$232, x$233, x$234, x$235, x$236, x$237, x$238, x$239, x$24, x$240, x$241, x$242, x$243, x$244, x$245, x$246, x$247, x$248, x$249, x$25, x$250, x$251, x$252, x$253, x$254, x$255, x$256, x$257, x$258, x$259, x$26, x$260, x$261, x$262, x$263, x$264, x$265, x$266, x$267, x$268, x$269, x$27, x$270, x$271, x$272, x$273, x$274, x$275, x$276, x$277, x$278, x$279, x$28, x$280, x$281, x$282, x$283, x$284, x$285, x$286, x$287, x$288, x$289, x$29, x$290, x$291, x$292, x$293, x$294, x$295, x$296, x$297, x$298, x$299, x$3, x$30, x$300, x$301, x$302, x$303, x$304, x$305, x$306, x$307, x$308, x$309, x$31, x$310, x$311, x$312, x$313, x$314, x$315, x$316, x$317, x$318, x$319, x$32, x$320, x$321, x$322, x$323, x$324, x$325, x$326, x$327, x$328, x$329, x$33, x$330, x$331, x$332, x$333, x$334, x$335, x$336, x$337, x$338, x$339, x$34, x$340, x$341, x$342, x$343, x$344, x$345, x$346, x$347, x$348, x$349, x$35, x$350, x$351, x$352, x$353, x$354, x$355, x$356, x$36, x$37, x$38, x$39, x$4, x$40, x$41, x$42, x$43, x$44, x$45, x$46, x$47, x$48, x$49, x$5, x$50, x$51, x$52, x$53, x$54, x$55, x$56, x$57, x$58, x$59, x$6, x$60, x$61, x$62, x$63, x$64, x$65, x$66, x$67, x$68, x$69, x$7, x$70, x$71, x$72, x$73, x$74, x$75, x$76, x$77, x$78, x$79, x$8, x$80, x$81, x$82, x$83, x$84, x$85, x$86, x$87, x$88, x$89, x$9, x$90, x$91, x$92, x$93, x$94, x$95, x$96, x$97, x$98, x$99, x1, x10, x100, x1000, x1001, x1002, x1003, x1004, x1005, x1007, x1008, x1008$24ptr, x1009, x1009$24ptr, x101, x1010, x1010$24ptr, x1011, x1011$24ptr, x1012, x1012$24ptr, x1013, x1013$24ptr, x1014, x1014$24ptr, x1015, x1015$24ptr, x1016, x1016$24ptr, x102, x103, x104, x105, x106, x107, x108, x109, x11, x110, x111, x112, x113, x114, x115, x116, x117, x118, x119, x12, x120, x121, x122, x123, x124, x125, x126, x127, x128, x129, x13, x130, x131, x132, x133, x134, x135, x136, x137, x138, x139, x14, x140, x141, x142, x143, x144, x145, x146, x147, x148, x149, x15, x150, x151, x152, x153, x154, x155, x156, x157, x158, x159, x16, x160, x161, x162, x163, x164, x165, x166, x167, x168, x169, x17, x170, x171, x172, x173, x174, x175, x176, x177, x178, x179, x18, x180, x181, x182, x183, x184, x185, x186, x187, x188, x189, x19, x191, x192, x193, x194, x195, x196, x197, x198, x199, x2, x20, x200, x201, x202, x203, x204, x205, x206, x207, x208, x209, x21, x210, x211, x212, x213, x214, x215, x216, x217, x218, x219, x22, x220, x221, x222, x223, x224, x225, x226, x227, x228, x229, x23, x230, x231, x232, x233, x234, x235, x236, x237, x238, x239, x24, x240, x241, x242, x243, x244, x245, x246, x247, x248, x249, x25, x250, x251, x252, x253, x254, x255, x256, x257, x258, x259, x26, x260, x261, x262, x263, x264, x265, x266, x267, x268, x269, x27, x270, x271, x272, x273, x274, x275, x276, x277, x278, x279, x28, x280, x281, x282, x283, x284, x285, x286, x287, x288, x289, x29, x290, x291, x292, x293, x294, x295, x296, x297, x298, x299, x3, x30, x300, x302, x303, x304, x305, x306, x307, x308, x309, x31, x310, x311, x312, x313, x314, x315, x316, x317, x318, x319, x32, x320, x321, x322, x323, x324, x325, x326, x327, x328, x329, x33, x330, x331, x332, x333, x334, x335, x336, x337, x338, x339, x34, x340, x341, x342, x343, x344, x345, x346, x347, x348, x349, x35, x350, x351, x352, x353, x354, x355, x356, x357, x358, x359, x36, x360, x361, x362, x363, x364, x365, x366, x367, x368, x369, x37, x370, x371, x372, x373, x374, x375, x376, x377, x378, x379, x38, x380, x381, x382, x383, x384, x385, x386, x387, x388, x389, x39, x390, x391, x392, x393, x394, x395, x396, x397, x398, x399, x4, x40, x400, x401, x402, x403, x404, x405, x406, x407, x408, x409, x41, x410, x411, x413, x414, x415, x416, x417, x418, x419, x42, x420, x421, x422, x423, x424, x425, x426, x427, x428, x429, x43, x430, x431, x432, x433, x434, x435, x436, x437, x438, x439, x44, x440, x441, x442, x443, x444, x445, x446, x447, x448, x449, x45, x450, x451, x452, x453, x454, x455, x456, x457, x458, x459, x46, x460, x461, x462, x463, x464, x465, x466, x467, x468, x469, x47, x470, x471, x472, x473, x474, x475, x476, x477, x478, x479, x48, x480, x481, x482, x483, x484, x485, x486, x487, x488, x489, x49, x490, x491, x492, x493, x494, x495, x496, x497, x498, x499, x5, x50, x500, x501, x502, x503, x504, x505, x506, x507, x508, x509, x51, x510, x511, x512, x513, x514, x515, x516, x517, x518, x519, x52, x520, x521, x522, x524, x525, x526, x527, x528, x529, x53, x530, x531, x532, x533, x534, x535, x536, x537, x538, x539, x54, x540, x541, x542, x543, x544, x545, x546, x547, x548, x549, x55, x550, x551, x552, x553, x554, x555, x556, x557, x558, x559, x56, x560, x561, x562, x563, x564, x565, x566, x567, x568, x569, x57, x570, x571, x572, x573, x574, x575, x576, x577, x578, x579, x58, x580, x581, x582, x583, x584, x585, x586, x587, x588, x589, x59, x590, x591, x592, x593, x594, x595, x596, x597, x598, x599, x6, x60, x600, x601, x602, x603, x604, x605, x606, x607, x608, x609, x61, x610, x611, x612, x613, x614, x615, x616, x617, x618, x619, x62, x620, x621, x622, x623, x624, x625, x626, x627, x628, x629, x63, x630, x631, x632, x633, x635, x636, x637, x638, x639, x64, x640, x641, x642, x643, x644, x645, x646, x647, x648, x649, x65, x650, x651, x652, x653, x654, x655, x656, x657, x658, x659, x66, x660, x661, x662, x663, x664, x665, x666, x667, x668, x669, x67, x670, x671, x672, x673, x674, x675, x676, x677, x678, x679, x68, x680, x681, x682, x683, x684, x685, x686, x687, x688, x689, x69, x690, x691, x692, x693, x694, x695, x696, x697, x698, x699, x7, x70, x700, x701, x702, x703, x704, x705, x706, x707, x708, x709, x71, x710, x711, x712, x713, x714, x715, x716, x717, x718, x719, x72, x720, x721, x722, x723, x724, x725, x726, x727, x728, x729, x73, x730, x731, x732, x733, x734, x735, x736, x737, x738, x739, x74, x740, x741, x742, x743, x744, x746, x747, x748, x749, x75, x750, x751, x752, x753, x754, x755, x756, x757, x758, x759, x76, x760, x761, x762, x763, x764, x765, x766, x767, x768, x769, x77, x770, x771, x772, x773, x774, x775, x776, x777, x778, x779, x78, x780, x781, x782, x783, x784, x785, x786, x787, x788, x789, x79, x790, x791, x792, x793, x794, x795, x796, x797, x798, x799, x8, x800, x801, x802, x803, x804, x805, x806, x807, x808, x809, x81, x810, x811, x812, x813, x814, x815, x816, x817, x818, x819, x82, x820, x821, x822, x823, x824, x825, x826, x827, x828, x829, x83, x830, x831, x832, x833, x834, x835, x836, x837, x838, x839, x84, x840, x841, x842, x843, x844, x845, x846, x847, x848, x849, x85, x850, x851, x852, x853, x854, x855, x857, x858, x859, x86, x860, x861, x862, x863, x864, x865, x866, x867, x868, x869, x87, x870, x871, x872, x873, x874, x875, x876, x877, x878, x879, x88, x880, x881, x882, x883, x884, x885, x886, x887, x888, x889, x89, x890, x891, x892, x893, x894, x895, x896, x897, x898, x899, x9, x90, x900, x901, x902, x903, x904, x905, x906, x907, x908, x909, x91, x910, x911, x912, x913, x914, x915, x916, x917, x918, x919, x92, x920, x921, x922, x923, x924, x925, x926, x927, x928, x929, x93, x930, x931, x932, x933, x934, x935, x936, x937, x938, x939, x94, x940, x941, x942, x943, x944, x945, x946, x947, x948, x949, x95, x950, x951, x952, x953, x954, x955, x956, x957, x958, x959, x96, x960, x961, x962, x963, x964, x965, x966, x968, x969, x97, x970, x971, x972, x973, x974, x975, x976, x977, x978, x979, x98, x980, x981, x982, x983, x984, x985, x986, x987, x988, x989, x99, x990, x991, x992, x993, x994, x995, x996, x997, x998, x999; - x1 = arg1[1]; - x2 = arg1[2]; - x3 = arg1[3]; - x4 = arg1[4]; - x5 = arg1[5]; - x6 = arg1[6]; - x7 = arg1[7]; - x8 = arg1[8]; - x9 = arg1[0]; + x1 = (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[1]; + x2 = (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[2]; + x3 = (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[3]; + x4 = (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[4]; + x5 = (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[5]; + x6 = (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[6]; + x7 = (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[7]; + x8 = (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[8]; + x9 = (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[0]; x10 = new $Uint64(0, 0); x11 = new $Uint64(0, 0); - _tuple = bits.Mul64(x9, arg1[8]); + _tuple = bits.Mul64(x9, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[8]); x11 = _tuple[0]; x10 = _tuple[1]; x12 = new $Uint64(0, 0); x13 = new $Uint64(0, 0); - _tuple$1 = bits.Mul64(x9, arg1[7]); + _tuple$1 = bits.Mul64(x9, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[7]); x13 = _tuple$1[0]; x12 = _tuple$1[1]; x14 = new $Uint64(0, 0); x15 = new $Uint64(0, 0); - _tuple$2 = bits.Mul64(x9, arg1[6]); + _tuple$2 = bits.Mul64(x9, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[6]); x15 = _tuple$2[0]; x14 = _tuple$2[1]; x16 = new $Uint64(0, 0); x17 = new $Uint64(0, 0); - _tuple$3 = bits.Mul64(x9, arg1[5]); + _tuple$3 = bits.Mul64(x9, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[5]); x17 = _tuple$3[0]; x16 = _tuple$3[1]; x18 = new $Uint64(0, 0); x19 = new $Uint64(0, 0); - _tuple$4 = bits.Mul64(x9, arg1[4]); + _tuple$4 = bits.Mul64(x9, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[4]); x19 = _tuple$4[0]; x18 = _tuple$4[1]; x20 = new $Uint64(0, 0); x21 = new $Uint64(0, 0); - _tuple$5 = bits.Mul64(x9, arg1[3]); + _tuple$5 = bits.Mul64(x9, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[3]); x21 = _tuple$5[0]; x20 = _tuple$5[1]; x22 = new $Uint64(0, 0); x23 = new $Uint64(0, 0); - _tuple$6 = bits.Mul64(x9, arg1[2]); + _tuple$6 = bits.Mul64(x9, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[2]); x23 = _tuple$6[0]; x22 = _tuple$6[1]; x24 = new $Uint64(0, 0); x25 = new $Uint64(0, 0); - _tuple$7 = bits.Mul64(x9, arg1[1]); + _tuple$7 = bits.Mul64(x9, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[1]); x25 = _tuple$7[0]; x24 = _tuple$7[1]; x26 = new $Uint64(0, 0); x27 = new $Uint64(0, 0); - _tuple$8 = bits.Mul64(x9, arg1[0]); + _tuple$8 = bits.Mul64(x9, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[0]); x27 = _tuple$8[0]; x26 = _tuple$8[1]; x28 = new $Uint64(0, 0); @@ -201562,47 +202860,47 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x99 = _tuple$43[1]; x100 = new $Uint64(0, 0); x101 = new $Uint64(0, 0); - _tuple$44 = bits.Mul64(x1, arg1[8]); + _tuple$44 = bits.Mul64(x1, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[8]); x101 = _tuple$44[0]; x100 = _tuple$44[1]; x102 = new $Uint64(0, 0); x103 = new $Uint64(0, 0); - _tuple$45 = bits.Mul64(x1, arg1[7]); + _tuple$45 = bits.Mul64(x1, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[7]); x103 = _tuple$45[0]; x102 = _tuple$45[1]; x104 = new $Uint64(0, 0); x105 = new $Uint64(0, 0); - _tuple$46 = bits.Mul64(x1, arg1[6]); + _tuple$46 = bits.Mul64(x1, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[6]); x105 = _tuple$46[0]; x104 = _tuple$46[1]; x106 = new $Uint64(0, 0); x107 = new $Uint64(0, 0); - _tuple$47 = bits.Mul64(x1, arg1[5]); + _tuple$47 = bits.Mul64(x1, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[5]); x107 = _tuple$47[0]; x106 = _tuple$47[1]; x108 = new $Uint64(0, 0); x109 = new $Uint64(0, 0); - _tuple$48 = bits.Mul64(x1, arg1[4]); + _tuple$48 = bits.Mul64(x1, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[4]); x109 = _tuple$48[0]; x108 = _tuple$48[1]; x110 = new $Uint64(0, 0); x111 = new $Uint64(0, 0); - _tuple$49 = bits.Mul64(x1, arg1[3]); + _tuple$49 = bits.Mul64(x1, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[3]); x111 = _tuple$49[0]; x110 = _tuple$49[1]; x112 = new $Uint64(0, 0); x113 = new $Uint64(0, 0); - _tuple$50 = bits.Mul64(x1, arg1[2]); + _tuple$50 = bits.Mul64(x1, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[2]); x113 = _tuple$50[0]; x112 = _tuple$50[1]; x114 = new $Uint64(0, 0); x115 = new $Uint64(0, 0); - _tuple$51 = bits.Mul64(x1, arg1[1]); + _tuple$51 = bits.Mul64(x1, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[1]); x115 = _tuple$51[0]; x114 = _tuple$51[1]; x116 = new $Uint64(0, 0); x117 = new $Uint64(0, 0); - _tuple$52 = bits.Mul64(x1, arg1[0]); + _tuple$52 = bits.Mul64(x1, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[0]); x117 = _tuple$52[0]; x116 = _tuple$52[1]; x118 = new $Uint64(0, 0); @@ -201833,47 +203131,47 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x210 = (x$64 = ((x$65 = (new p521Uint1(x209.$high, x209.$low)), new $Uint64(x$65.$high, x$65.$low))), x$66 = ((x$67 = (new p521Uint1(x154.$high, x154.$low)), new $Uint64(x$67.$high, x$67.$low))), new $Uint64(x$64.$high + x$66.$high, x$64.$low + x$66.$low)); x211 = new $Uint64(0, 0); x212 = new $Uint64(0, 0); - _tuple$98 = bits.Mul64(x2, arg1[8]); + _tuple$98 = bits.Mul64(x2, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[8]); x212 = _tuple$98[0]; x211 = _tuple$98[1]; x213 = new $Uint64(0, 0); x214 = new $Uint64(0, 0); - _tuple$99 = bits.Mul64(x2, arg1[7]); + _tuple$99 = bits.Mul64(x2, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[7]); x214 = _tuple$99[0]; x213 = _tuple$99[1]; x215 = new $Uint64(0, 0); x216 = new $Uint64(0, 0); - _tuple$100 = bits.Mul64(x2, arg1[6]); + _tuple$100 = bits.Mul64(x2, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[6]); x216 = _tuple$100[0]; x215 = _tuple$100[1]; x217 = new $Uint64(0, 0); x218 = new $Uint64(0, 0); - _tuple$101 = bits.Mul64(x2, arg1[5]); + _tuple$101 = bits.Mul64(x2, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[5]); x218 = _tuple$101[0]; x217 = _tuple$101[1]; x219 = new $Uint64(0, 0); x220 = new $Uint64(0, 0); - _tuple$102 = bits.Mul64(x2, arg1[4]); + _tuple$102 = bits.Mul64(x2, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[4]); x220 = _tuple$102[0]; x219 = _tuple$102[1]; x221 = new $Uint64(0, 0); x222 = new $Uint64(0, 0); - _tuple$103 = bits.Mul64(x2, arg1[3]); + _tuple$103 = bits.Mul64(x2, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[3]); x222 = _tuple$103[0]; x221 = _tuple$103[1]; x223 = new $Uint64(0, 0); x224 = new $Uint64(0, 0); - _tuple$104 = bits.Mul64(x2, arg1[2]); + _tuple$104 = bits.Mul64(x2, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[2]); x224 = _tuple$104[0]; x223 = _tuple$104[1]; x225 = new $Uint64(0, 0); x226 = new $Uint64(0, 0); - _tuple$105 = bits.Mul64(x2, arg1[1]); + _tuple$105 = bits.Mul64(x2, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[1]); x226 = _tuple$105[0]; x225 = _tuple$105[1]; x227 = new $Uint64(0, 0); x228 = new $Uint64(0, 0); - _tuple$106 = bits.Mul64(x2, arg1[0]); + _tuple$106 = bits.Mul64(x2, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[0]); x228 = _tuple$106[0]; x227 = _tuple$106[1]; x229 = new $Uint64(0, 0); @@ -202104,47 +203402,47 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x321 = (x$104 = ((x$105 = (new p521Uint1(x320.$high, x320.$low)), new $Uint64(x$105.$high, x$105.$low))), x$106 = ((x$107 = (new p521Uint1(x265.$high, x265.$low)), new $Uint64(x$107.$high, x$107.$low))), new $Uint64(x$104.$high + x$106.$high, x$104.$low + x$106.$low)); x322 = new $Uint64(0, 0); x323 = new $Uint64(0, 0); - _tuple$152 = bits.Mul64(x3, arg1[8]); + _tuple$152 = bits.Mul64(x3, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[8]); x323 = _tuple$152[0]; x322 = _tuple$152[1]; x324 = new $Uint64(0, 0); x325 = new $Uint64(0, 0); - _tuple$153 = bits.Mul64(x3, arg1[7]); + _tuple$153 = bits.Mul64(x3, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[7]); x325 = _tuple$153[0]; x324 = _tuple$153[1]; x326 = new $Uint64(0, 0); x327 = new $Uint64(0, 0); - _tuple$154 = bits.Mul64(x3, arg1[6]); + _tuple$154 = bits.Mul64(x3, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[6]); x327 = _tuple$154[0]; x326 = _tuple$154[1]; x328 = new $Uint64(0, 0); x329 = new $Uint64(0, 0); - _tuple$155 = bits.Mul64(x3, arg1[5]); + _tuple$155 = bits.Mul64(x3, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[5]); x329 = _tuple$155[0]; x328 = _tuple$155[1]; x330 = new $Uint64(0, 0); x331 = new $Uint64(0, 0); - _tuple$156 = bits.Mul64(x3, arg1[4]); + _tuple$156 = bits.Mul64(x3, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[4]); x331 = _tuple$156[0]; x330 = _tuple$156[1]; x332 = new $Uint64(0, 0); x333 = new $Uint64(0, 0); - _tuple$157 = bits.Mul64(x3, arg1[3]); + _tuple$157 = bits.Mul64(x3, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[3]); x333 = _tuple$157[0]; x332 = _tuple$157[1]; x334 = new $Uint64(0, 0); x335 = new $Uint64(0, 0); - _tuple$158 = bits.Mul64(x3, arg1[2]); + _tuple$158 = bits.Mul64(x3, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[2]); x335 = _tuple$158[0]; x334 = _tuple$158[1]; x336 = new $Uint64(0, 0); x337 = new $Uint64(0, 0); - _tuple$159 = bits.Mul64(x3, arg1[1]); + _tuple$159 = bits.Mul64(x3, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[1]); x337 = _tuple$159[0]; x336 = _tuple$159[1]; x338 = new $Uint64(0, 0); x339 = new $Uint64(0, 0); - _tuple$160 = bits.Mul64(x3, arg1[0]); + _tuple$160 = bits.Mul64(x3, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[0]); x339 = _tuple$160[0]; x338 = _tuple$160[1]; x340 = new $Uint64(0, 0); @@ -202375,47 +203673,47 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x432 = (x$144 = ((x$145 = (new p521Uint1(x431.$high, x431.$low)), new $Uint64(x$145.$high, x$145.$low))), x$146 = ((x$147 = (new p521Uint1(x376.$high, x376.$low)), new $Uint64(x$147.$high, x$147.$low))), new $Uint64(x$144.$high + x$146.$high, x$144.$low + x$146.$low)); x433 = new $Uint64(0, 0); x434 = new $Uint64(0, 0); - _tuple$206 = bits.Mul64(x4, arg1[8]); + _tuple$206 = bits.Mul64(x4, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[8]); x434 = _tuple$206[0]; x433 = _tuple$206[1]; x435 = new $Uint64(0, 0); x436 = new $Uint64(0, 0); - _tuple$207 = bits.Mul64(x4, arg1[7]); + _tuple$207 = bits.Mul64(x4, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[7]); x436 = _tuple$207[0]; x435 = _tuple$207[1]; x437 = new $Uint64(0, 0); x438 = new $Uint64(0, 0); - _tuple$208 = bits.Mul64(x4, arg1[6]); + _tuple$208 = bits.Mul64(x4, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[6]); x438 = _tuple$208[0]; x437 = _tuple$208[1]; x439 = new $Uint64(0, 0); x440 = new $Uint64(0, 0); - _tuple$209 = bits.Mul64(x4, arg1[5]); + _tuple$209 = bits.Mul64(x4, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[5]); x440 = _tuple$209[0]; x439 = _tuple$209[1]; x441 = new $Uint64(0, 0); x442 = new $Uint64(0, 0); - _tuple$210 = bits.Mul64(x4, arg1[4]); + _tuple$210 = bits.Mul64(x4, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[4]); x442 = _tuple$210[0]; x441 = _tuple$210[1]; x443 = new $Uint64(0, 0); x444 = new $Uint64(0, 0); - _tuple$211 = bits.Mul64(x4, arg1[3]); + _tuple$211 = bits.Mul64(x4, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[3]); x444 = _tuple$211[0]; x443 = _tuple$211[1]; x445 = new $Uint64(0, 0); x446 = new $Uint64(0, 0); - _tuple$212 = bits.Mul64(x4, arg1[2]); + _tuple$212 = bits.Mul64(x4, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[2]); x446 = _tuple$212[0]; x445 = _tuple$212[1]; x447 = new $Uint64(0, 0); x448 = new $Uint64(0, 0); - _tuple$213 = bits.Mul64(x4, arg1[1]); + _tuple$213 = bits.Mul64(x4, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[1]); x448 = _tuple$213[0]; x447 = _tuple$213[1]; x449 = new $Uint64(0, 0); x450 = new $Uint64(0, 0); - _tuple$214 = bits.Mul64(x4, arg1[0]); + _tuple$214 = bits.Mul64(x4, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[0]); x450 = _tuple$214[0]; x449 = _tuple$214[1]; x451 = new $Uint64(0, 0); @@ -202646,47 +203944,47 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x543 = (x$184 = ((x$185 = (new p521Uint1(x542.$high, x542.$low)), new $Uint64(x$185.$high, x$185.$low))), x$186 = ((x$187 = (new p521Uint1(x487.$high, x487.$low)), new $Uint64(x$187.$high, x$187.$low))), new $Uint64(x$184.$high + x$186.$high, x$184.$low + x$186.$low)); x544 = new $Uint64(0, 0); x545 = new $Uint64(0, 0); - _tuple$260 = bits.Mul64(x5, arg1[8]); + _tuple$260 = bits.Mul64(x5, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[8]); x545 = _tuple$260[0]; x544 = _tuple$260[1]; x546 = new $Uint64(0, 0); x547 = new $Uint64(0, 0); - _tuple$261 = bits.Mul64(x5, arg1[7]); + _tuple$261 = bits.Mul64(x5, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[7]); x547 = _tuple$261[0]; x546 = _tuple$261[1]; x548 = new $Uint64(0, 0); x549 = new $Uint64(0, 0); - _tuple$262 = bits.Mul64(x5, arg1[6]); + _tuple$262 = bits.Mul64(x5, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[6]); x549 = _tuple$262[0]; x548 = _tuple$262[1]; x550 = new $Uint64(0, 0); x551 = new $Uint64(0, 0); - _tuple$263 = bits.Mul64(x5, arg1[5]); + _tuple$263 = bits.Mul64(x5, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[5]); x551 = _tuple$263[0]; x550 = _tuple$263[1]; x552 = new $Uint64(0, 0); x553 = new $Uint64(0, 0); - _tuple$264 = bits.Mul64(x5, arg1[4]); + _tuple$264 = bits.Mul64(x5, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[4]); x553 = _tuple$264[0]; x552 = _tuple$264[1]; x554 = new $Uint64(0, 0); x555 = new $Uint64(0, 0); - _tuple$265 = bits.Mul64(x5, arg1[3]); + _tuple$265 = bits.Mul64(x5, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[3]); x555 = _tuple$265[0]; x554 = _tuple$265[1]; x556 = new $Uint64(0, 0); x557 = new $Uint64(0, 0); - _tuple$266 = bits.Mul64(x5, arg1[2]); + _tuple$266 = bits.Mul64(x5, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[2]); x557 = _tuple$266[0]; x556 = _tuple$266[1]; x558 = new $Uint64(0, 0); x559 = new $Uint64(0, 0); - _tuple$267 = bits.Mul64(x5, arg1[1]); + _tuple$267 = bits.Mul64(x5, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[1]); x559 = _tuple$267[0]; x558 = _tuple$267[1]; x560 = new $Uint64(0, 0); x561 = new $Uint64(0, 0); - _tuple$268 = bits.Mul64(x5, arg1[0]); + _tuple$268 = bits.Mul64(x5, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[0]); x561 = _tuple$268[0]; x560 = _tuple$268[1]; x562 = new $Uint64(0, 0); @@ -202917,47 +204215,47 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x654 = (x$224 = ((x$225 = (new p521Uint1(x653.$high, x653.$low)), new $Uint64(x$225.$high, x$225.$low))), x$226 = ((x$227 = (new p521Uint1(x598.$high, x598.$low)), new $Uint64(x$227.$high, x$227.$low))), new $Uint64(x$224.$high + x$226.$high, x$224.$low + x$226.$low)); x655 = new $Uint64(0, 0); x656 = new $Uint64(0, 0); - _tuple$314 = bits.Mul64(x6, arg1[8]); + _tuple$314 = bits.Mul64(x6, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[8]); x656 = _tuple$314[0]; x655 = _tuple$314[1]; x657 = new $Uint64(0, 0); x658 = new $Uint64(0, 0); - _tuple$315 = bits.Mul64(x6, arg1[7]); + _tuple$315 = bits.Mul64(x6, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[7]); x658 = _tuple$315[0]; x657 = _tuple$315[1]; x659 = new $Uint64(0, 0); x660 = new $Uint64(0, 0); - _tuple$316 = bits.Mul64(x6, arg1[6]); + _tuple$316 = bits.Mul64(x6, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[6]); x660 = _tuple$316[0]; x659 = _tuple$316[1]; x661 = new $Uint64(0, 0); x662 = new $Uint64(0, 0); - _tuple$317 = bits.Mul64(x6, arg1[5]); + _tuple$317 = bits.Mul64(x6, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[5]); x662 = _tuple$317[0]; x661 = _tuple$317[1]; x663 = new $Uint64(0, 0); x664 = new $Uint64(0, 0); - _tuple$318 = bits.Mul64(x6, arg1[4]); + _tuple$318 = bits.Mul64(x6, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[4]); x664 = _tuple$318[0]; x663 = _tuple$318[1]; x665 = new $Uint64(0, 0); x666 = new $Uint64(0, 0); - _tuple$319 = bits.Mul64(x6, arg1[3]); + _tuple$319 = bits.Mul64(x6, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[3]); x666 = _tuple$319[0]; x665 = _tuple$319[1]; x667 = new $Uint64(0, 0); x668 = new $Uint64(0, 0); - _tuple$320 = bits.Mul64(x6, arg1[2]); + _tuple$320 = bits.Mul64(x6, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[2]); x668 = _tuple$320[0]; x667 = _tuple$320[1]; x669 = new $Uint64(0, 0); x670 = new $Uint64(0, 0); - _tuple$321 = bits.Mul64(x6, arg1[1]); + _tuple$321 = bits.Mul64(x6, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[1]); x670 = _tuple$321[0]; x669 = _tuple$321[1]; x671 = new $Uint64(0, 0); x672 = new $Uint64(0, 0); - _tuple$322 = bits.Mul64(x6, arg1[0]); + _tuple$322 = bits.Mul64(x6, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[0]); x672 = _tuple$322[0]; x671 = _tuple$322[1]; x673 = new $Uint64(0, 0); @@ -203188,47 +204486,47 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x765 = (x$264 = ((x$265 = (new p521Uint1(x764.$high, x764.$low)), new $Uint64(x$265.$high, x$265.$low))), x$266 = ((x$267 = (new p521Uint1(x709.$high, x709.$low)), new $Uint64(x$267.$high, x$267.$low))), new $Uint64(x$264.$high + x$266.$high, x$264.$low + x$266.$low)); x766 = new $Uint64(0, 0); x767 = new $Uint64(0, 0); - _tuple$368 = bits.Mul64(x7, arg1[8]); + _tuple$368 = bits.Mul64(x7, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[8]); x767 = _tuple$368[0]; x766 = _tuple$368[1]; x768 = new $Uint64(0, 0); x769 = new $Uint64(0, 0); - _tuple$369 = bits.Mul64(x7, arg1[7]); + _tuple$369 = bits.Mul64(x7, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[7]); x769 = _tuple$369[0]; x768 = _tuple$369[1]; x770 = new $Uint64(0, 0); x771 = new $Uint64(0, 0); - _tuple$370 = bits.Mul64(x7, arg1[6]); + _tuple$370 = bits.Mul64(x7, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[6]); x771 = _tuple$370[0]; x770 = _tuple$370[1]; x772 = new $Uint64(0, 0); x773 = new $Uint64(0, 0); - _tuple$371 = bits.Mul64(x7, arg1[5]); + _tuple$371 = bits.Mul64(x7, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[5]); x773 = _tuple$371[0]; x772 = _tuple$371[1]; x774 = new $Uint64(0, 0); x775 = new $Uint64(0, 0); - _tuple$372 = bits.Mul64(x7, arg1[4]); + _tuple$372 = bits.Mul64(x7, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[4]); x775 = _tuple$372[0]; x774 = _tuple$372[1]; x776 = new $Uint64(0, 0); x777 = new $Uint64(0, 0); - _tuple$373 = bits.Mul64(x7, arg1[3]); + _tuple$373 = bits.Mul64(x7, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[3]); x777 = _tuple$373[0]; x776 = _tuple$373[1]; x778 = new $Uint64(0, 0); x779 = new $Uint64(0, 0); - _tuple$374 = bits.Mul64(x7, arg1[2]); + _tuple$374 = bits.Mul64(x7, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[2]); x779 = _tuple$374[0]; x778 = _tuple$374[1]; x780 = new $Uint64(0, 0); x781 = new $Uint64(0, 0); - _tuple$375 = bits.Mul64(x7, arg1[1]); + _tuple$375 = bits.Mul64(x7, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[1]); x781 = _tuple$375[0]; x780 = _tuple$375[1]; x782 = new $Uint64(0, 0); x783 = new $Uint64(0, 0); - _tuple$376 = bits.Mul64(x7, arg1[0]); + _tuple$376 = bits.Mul64(x7, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[0]); x783 = _tuple$376[0]; x782 = _tuple$376[1]; x784 = new $Uint64(0, 0); @@ -203459,47 +204757,47 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x876 = (x$304 = ((x$305 = (new p521Uint1(x875.$high, x875.$low)), new $Uint64(x$305.$high, x$305.$low))), x$306 = ((x$307 = (new p521Uint1(x820.$high, x820.$low)), new $Uint64(x$307.$high, x$307.$low))), new $Uint64(x$304.$high + x$306.$high, x$304.$low + x$306.$low)); x877 = new $Uint64(0, 0); x878 = new $Uint64(0, 0); - _tuple$422 = bits.Mul64(x8, arg1[8]); + _tuple$422 = bits.Mul64(x8, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[8]); x878 = _tuple$422[0]; x877 = _tuple$422[1]; x879 = new $Uint64(0, 0); x880 = new $Uint64(0, 0); - _tuple$423 = bits.Mul64(x8, arg1[7]); + _tuple$423 = bits.Mul64(x8, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[7]); x880 = _tuple$423[0]; x879 = _tuple$423[1]; x881 = new $Uint64(0, 0); x882 = new $Uint64(0, 0); - _tuple$424 = bits.Mul64(x8, arg1[6]); + _tuple$424 = bits.Mul64(x8, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[6]); x882 = _tuple$424[0]; x881 = _tuple$424[1]; x883 = new $Uint64(0, 0); x884 = new $Uint64(0, 0); - _tuple$425 = bits.Mul64(x8, arg1[5]); + _tuple$425 = bits.Mul64(x8, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[5]); x884 = _tuple$425[0]; x883 = _tuple$425[1]; x885 = new $Uint64(0, 0); x886 = new $Uint64(0, 0); - _tuple$426 = bits.Mul64(x8, arg1[4]); + _tuple$426 = bits.Mul64(x8, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[4]); x886 = _tuple$426[0]; x885 = _tuple$426[1]; x887 = new $Uint64(0, 0); x888 = new $Uint64(0, 0); - _tuple$427 = bits.Mul64(x8, arg1[3]); + _tuple$427 = bits.Mul64(x8, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[3]); x888 = _tuple$427[0]; x887 = _tuple$427[1]; x889 = new $Uint64(0, 0); x890 = new $Uint64(0, 0); - _tuple$428 = bits.Mul64(x8, arg1[2]); + _tuple$428 = bits.Mul64(x8, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[2]); x890 = _tuple$428[0]; x889 = _tuple$428[1]; x891 = new $Uint64(0, 0); x892 = new $Uint64(0, 0); - _tuple$429 = bits.Mul64(x8, arg1[1]); + _tuple$429 = bits.Mul64(x8, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[1]); x892 = _tuple$429[0]; x891 = _tuple$429[1]; x893 = new $Uint64(0, 0); x894 = new $Uint64(0, 0); - _tuple$430 = bits.Mul64(x8, arg1[0]); + _tuple$430 = bits.Mul64(x8, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[0]); x894 = _tuple$430[0]; x893 = _tuple$430[1]; x895 = new $Uint64(0, 0); @@ -203777,23 +205075,23 @@ $packages["crypto/internal/nistec/fiat"] = (function() { _tuple$485 = bits.Sub64(x987, new $Uint64(0, 0), ((x$356 = (new p521Uint1(x1005.$high, x1005.$low)), new $Uint64(x$356.$high, x$356.$low)))); x1007 = _tuple$485[1]; x1008 = new $Uint64(0, 0); - p521CmovznzU64((x1008$24ptr || (x1008$24ptr = new ptrType(function() { return x1008; }, function($v) { x1008 = $v; }))), (new p521Uint1(x1007.$high, x1007.$low)), x988, x969); + p521CmovznzU64((x1008$24ptr || (x1008$24ptr = new ptrType$1(function() { return x1008; }, function($v) { x1008 = $v; }))), (new p521Uint1(x1007.$high, x1007.$low)), x988, x969); x1009 = new $Uint64(0, 0); - p521CmovznzU64((x1009$24ptr || (x1009$24ptr = new ptrType(function() { return x1009; }, function($v) { x1009 = $v; }))), (new p521Uint1(x1007.$high, x1007.$low)), x990, x971); + p521CmovznzU64((x1009$24ptr || (x1009$24ptr = new ptrType$1(function() { return x1009; }, function($v) { x1009 = $v; }))), (new p521Uint1(x1007.$high, x1007.$low)), x990, x971); x1010 = new $Uint64(0, 0); - p521CmovznzU64((x1010$24ptr || (x1010$24ptr = new ptrType(function() { return x1010; }, function($v) { x1010 = $v; }))), (new p521Uint1(x1007.$high, x1007.$low)), x992, x973); + p521CmovznzU64((x1010$24ptr || (x1010$24ptr = new ptrType$1(function() { return x1010; }, function($v) { x1010 = $v; }))), (new p521Uint1(x1007.$high, x1007.$low)), x992, x973); x1011 = new $Uint64(0, 0); - p521CmovznzU64((x1011$24ptr || (x1011$24ptr = new ptrType(function() { return x1011; }, function($v) { x1011 = $v; }))), (new p521Uint1(x1007.$high, x1007.$low)), x994, x975); + p521CmovznzU64((x1011$24ptr || (x1011$24ptr = new ptrType$1(function() { return x1011; }, function($v) { x1011 = $v; }))), (new p521Uint1(x1007.$high, x1007.$low)), x994, x975); x1012 = new $Uint64(0, 0); - p521CmovznzU64((x1012$24ptr || (x1012$24ptr = new ptrType(function() { return x1012; }, function($v) { x1012 = $v; }))), (new p521Uint1(x1007.$high, x1007.$low)), x996, x977); + p521CmovznzU64((x1012$24ptr || (x1012$24ptr = new ptrType$1(function() { return x1012; }, function($v) { x1012 = $v; }))), (new p521Uint1(x1007.$high, x1007.$low)), x996, x977); x1013 = new $Uint64(0, 0); - p521CmovznzU64((x1013$24ptr || (x1013$24ptr = new ptrType(function() { return x1013; }, function($v) { x1013 = $v; }))), (new p521Uint1(x1007.$high, x1007.$low)), x998, x979); + p521CmovznzU64((x1013$24ptr || (x1013$24ptr = new ptrType$1(function() { return x1013; }, function($v) { x1013 = $v; }))), (new p521Uint1(x1007.$high, x1007.$low)), x998, x979); x1014 = new $Uint64(0, 0); - p521CmovznzU64((x1014$24ptr || (x1014$24ptr = new ptrType(function() { return x1014; }, function($v) { x1014 = $v; }))), (new p521Uint1(x1007.$high, x1007.$low)), x1000, x981); + p521CmovznzU64((x1014$24ptr || (x1014$24ptr = new ptrType$1(function() { return x1014; }, function($v) { x1014 = $v; }))), (new p521Uint1(x1007.$high, x1007.$low)), x1000, x981); x1015 = new $Uint64(0, 0); - p521CmovznzU64((x1015$24ptr || (x1015$24ptr = new ptrType(function() { return x1015; }, function($v) { x1015 = $v; }))), (new p521Uint1(x1007.$high, x1007.$low)), x1002, x983); + p521CmovznzU64((x1015$24ptr || (x1015$24ptr = new ptrType$1(function() { return x1015; }, function($v) { x1015 = $v; }))), (new p521Uint1(x1007.$high, x1007.$low)), x1002, x983); x1016 = new $Uint64(0, 0); - p521CmovznzU64((x1016$24ptr || (x1016$24ptr = new ptrType(function() { return x1016; }, function($v) { x1016 = $v; }))), (new p521Uint1(x1007.$high, x1007.$low)), x1004, x985); + p521CmovznzU64((x1016$24ptr || (x1016$24ptr = new ptrType$1(function() { return x1016; }, function($v) { x1016 = $v; }))), (new p521Uint1(x1007.$high, x1007.$low)), x1004, x985); out1.nilCheck, out1[0] = x1008; out1.nilCheck, out1[1] = x1009; out1.nilCheck, out1[2] = x1010; @@ -203808,47 +205106,47 @@ $packages["crypto/internal/nistec/fiat"] = (function() { var _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, arg1, arg2, out1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, x1, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x2, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x3, x30, x31, x32, x33, x34, x35, x36, x38, x39, x39$24ptr, x4, x40, x40$24ptr, x41, x41$24ptr, x42, x42$24ptr, x43, x43$24ptr, x44, x44$24ptr, x45, x45$24ptr, x46, x46$24ptr, x47, x47$24ptr, x5, x6, x7, x8, x9; x1 = new $Uint64(0, 0); x2 = new $Uint64(0, 0); - _tuple = bits.Add64(arg1[0], arg2[0], new $Uint64(0, 0)); + _tuple = bits.Add64((arg1 === ptrType.nil && $throwNilPointerError(), arg1)[0], (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[0], new $Uint64(0, 0)); x1 = _tuple[0]; x2 = _tuple[1]; x3 = new $Uint64(0, 0); x4 = new $Uint64(0, 0); - _tuple$1 = bits.Add64(arg1[1], arg2[1], ((x = (new p521Uint1(x2.$high, x2.$low)), new $Uint64(x.$high, x.$low)))); + _tuple$1 = bits.Add64((arg1 === ptrType.nil && $throwNilPointerError(), arg1)[1], (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[1], ((x = (new p521Uint1(x2.$high, x2.$low)), new $Uint64(x.$high, x.$low)))); x3 = _tuple$1[0]; x4 = _tuple$1[1]; x5 = new $Uint64(0, 0); x6 = new $Uint64(0, 0); - _tuple$2 = bits.Add64(arg1[2], arg2[2], ((x$1 = (new p521Uint1(x4.$high, x4.$low)), new $Uint64(x$1.$high, x$1.$low)))); + _tuple$2 = bits.Add64((arg1 === ptrType.nil && $throwNilPointerError(), arg1)[2], (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[2], ((x$1 = (new p521Uint1(x4.$high, x4.$low)), new $Uint64(x$1.$high, x$1.$low)))); x5 = _tuple$2[0]; x6 = _tuple$2[1]; x7 = new $Uint64(0, 0); x8 = new $Uint64(0, 0); - _tuple$3 = bits.Add64(arg1[3], arg2[3], ((x$2 = (new p521Uint1(x6.$high, x6.$low)), new $Uint64(x$2.$high, x$2.$low)))); + _tuple$3 = bits.Add64((arg1 === ptrType.nil && $throwNilPointerError(), arg1)[3], (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[3], ((x$2 = (new p521Uint1(x6.$high, x6.$low)), new $Uint64(x$2.$high, x$2.$low)))); x7 = _tuple$3[0]; x8 = _tuple$3[1]; x9 = new $Uint64(0, 0); x10 = new $Uint64(0, 0); - _tuple$4 = bits.Add64(arg1[4], arg2[4], ((x$3 = (new p521Uint1(x8.$high, x8.$low)), new $Uint64(x$3.$high, x$3.$low)))); + _tuple$4 = bits.Add64((arg1 === ptrType.nil && $throwNilPointerError(), arg1)[4], (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[4], ((x$3 = (new p521Uint1(x8.$high, x8.$low)), new $Uint64(x$3.$high, x$3.$low)))); x9 = _tuple$4[0]; x10 = _tuple$4[1]; x11 = new $Uint64(0, 0); x12 = new $Uint64(0, 0); - _tuple$5 = bits.Add64(arg1[5], arg2[5], ((x$4 = (new p521Uint1(x10.$high, x10.$low)), new $Uint64(x$4.$high, x$4.$low)))); + _tuple$5 = bits.Add64((arg1 === ptrType.nil && $throwNilPointerError(), arg1)[5], (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[5], ((x$4 = (new p521Uint1(x10.$high, x10.$low)), new $Uint64(x$4.$high, x$4.$low)))); x11 = _tuple$5[0]; x12 = _tuple$5[1]; x13 = new $Uint64(0, 0); x14 = new $Uint64(0, 0); - _tuple$6 = bits.Add64(arg1[6], arg2[6], ((x$5 = (new p521Uint1(x12.$high, x12.$low)), new $Uint64(x$5.$high, x$5.$low)))); + _tuple$6 = bits.Add64((arg1 === ptrType.nil && $throwNilPointerError(), arg1)[6], (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[6], ((x$5 = (new p521Uint1(x12.$high, x12.$low)), new $Uint64(x$5.$high, x$5.$low)))); x13 = _tuple$6[0]; x14 = _tuple$6[1]; x15 = new $Uint64(0, 0); x16 = new $Uint64(0, 0); - _tuple$7 = bits.Add64(arg1[7], arg2[7], ((x$6 = (new p521Uint1(x14.$high, x14.$low)), new $Uint64(x$6.$high, x$6.$low)))); + _tuple$7 = bits.Add64((arg1 === ptrType.nil && $throwNilPointerError(), arg1)[7], (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[7], ((x$6 = (new p521Uint1(x14.$high, x14.$low)), new $Uint64(x$6.$high, x$6.$low)))); x15 = _tuple$7[0]; x16 = _tuple$7[1]; x17 = new $Uint64(0, 0); x18 = new $Uint64(0, 0); - _tuple$8 = bits.Add64(arg1[8], arg2[8], ((x$7 = (new p521Uint1(x16.$high, x16.$low)), new $Uint64(x$7.$high, x$7.$low)))); + _tuple$8 = bits.Add64((arg1 === ptrType.nil && $throwNilPointerError(), arg1)[8], (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[8], ((x$7 = (new p521Uint1(x16.$high, x16.$low)), new $Uint64(x$7.$high, x$7.$low)))); x17 = _tuple$8[0]; x18 = _tuple$8[1]; x19 = new $Uint64(0, 0); @@ -203900,23 +205198,23 @@ $packages["crypto/internal/nistec/fiat"] = (function() { _tuple$18 = bits.Sub64(((x$16 = (new p521Uint1(x18.$high, x18.$low)), new $Uint64(x$16.$high, x$16.$low))), new $Uint64(0, 0), ((x$17 = (new p521Uint1(x36.$high, x36.$low)), new $Uint64(x$17.$high, x$17.$low)))); x38 = _tuple$18[1]; x39 = new $Uint64(0, 0); - p521CmovznzU64((x39$24ptr || (x39$24ptr = new ptrType(function() { return x39; }, function($v) { x39 = $v; }))), (new p521Uint1(x38.$high, x38.$low)), x19, x1); + p521CmovznzU64((x39$24ptr || (x39$24ptr = new ptrType$1(function() { return x39; }, function($v) { x39 = $v; }))), (new p521Uint1(x38.$high, x38.$low)), x19, x1); x40 = new $Uint64(0, 0); - p521CmovznzU64((x40$24ptr || (x40$24ptr = new ptrType(function() { return x40; }, function($v) { x40 = $v; }))), (new p521Uint1(x38.$high, x38.$low)), x21, x3); + p521CmovznzU64((x40$24ptr || (x40$24ptr = new ptrType$1(function() { return x40; }, function($v) { x40 = $v; }))), (new p521Uint1(x38.$high, x38.$low)), x21, x3); x41 = new $Uint64(0, 0); - p521CmovznzU64((x41$24ptr || (x41$24ptr = new ptrType(function() { return x41; }, function($v) { x41 = $v; }))), (new p521Uint1(x38.$high, x38.$low)), x23, x5); + p521CmovznzU64((x41$24ptr || (x41$24ptr = new ptrType$1(function() { return x41; }, function($v) { x41 = $v; }))), (new p521Uint1(x38.$high, x38.$low)), x23, x5); x42 = new $Uint64(0, 0); - p521CmovznzU64((x42$24ptr || (x42$24ptr = new ptrType(function() { return x42; }, function($v) { x42 = $v; }))), (new p521Uint1(x38.$high, x38.$low)), x25, x7); + p521CmovznzU64((x42$24ptr || (x42$24ptr = new ptrType$1(function() { return x42; }, function($v) { x42 = $v; }))), (new p521Uint1(x38.$high, x38.$low)), x25, x7); x43 = new $Uint64(0, 0); - p521CmovznzU64((x43$24ptr || (x43$24ptr = new ptrType(function() { return x43; }, function($v) { x43 = $v; }))), (new p521Uint1(x38.$high, x38.$low)), x27, x9); + p521CmovznzU64((x43$24ptr || (x43$24ptr = new ptrType$1(function() { return x43; }, function($v) { x43 = $v; }))), (new p521Uint1(x38.$high, x38.$low)), x27, x9); x44 = new $Uint64(0, 0); - p521CmovznzU64((x44$24ptr || (x44$24ptr = new ptrType(function() { return x44; }, function($v) { x44 = $v; }))), (new p521Uint1(x38.$high, x38.$low)), x29, x11); + p521CmovznzU64((x44$24ptr || (x44$24ptr = new ptrType$1(function() { return x44; }, function($v) { x44 = $v; }))), (new p521Uint1(x38.$high, x38.$low)), x29, x11); x45 = new $Uint64(0, 0); - p521CmovznzU64((x45$24ptr || (x45$24ptr = new ptrType(function() { return x45; }, function($v) { x45 = $v; }))), (new p521Uint1(x38.$high, x38.$low)), x31, x13); + p521CmovznzU64((x45$24ptr || (x45$24ptr = new ptrType$1(function() { return x45; }, function($v) { x45 = $v; }))), (new p521Uint1(x38.$high, x38.$low)), x31, x13); x46 = new $Uint64(0, 0); - p521CmovznzU64((x46$24ptr || (x46$24ptr = new ptrType(function() { return x46; }, function($v) { x46 = $v; }))), (new p521Uint1(x38.$high, x38.$low)), x33, x15); + p521CmovznzU64((x46$24ptr || (x46$24ptr = new ptrType$1(function() { return x46; }, function($v) { x46 = $v; }))), (new p521Uint1(x38.$high, x38.$low)), x33, x15); x47 = new $Uint64(0, 0); - p521CmovznzU64((x47$24ptr || (x47$24ptr = new ptrType(function() { return x47; }, function($v) { x47 = $v; }))), (new p521Uint1(x38.$high, x38.$low)), x35, x17); + p521CmovznzU64((x47$24ptr || (x47$24ptr = new ptrType$1(function() { return x47; }, function($v) { x47 = $v; }))), (new p521Uint1(x38.$high, x38.$low)), x35, x17); out1.nilCheck, out1[0] = x39; out1.nilCheck, out1[1] = x40; out1.nilCheck, out1[2] = x41; @@ -203931,51 +205229,51 @@ $packages["crypto/internal/nistec/fiat"] = (function() { var _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, arg1, arg2, out1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, x1, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x19$24ptr, x2, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x3, x30, x31, x32, x33, x34, x35, x36, x4, x5, x6, x7, x8, x9; x1 = new $Uint64(0, 0); x2 = new $Uint64(0, 0); - _tuple = bits.Sub64(arg1[0], arg2[0], new $Uint64(0, 0)); + _tuple = bits.Sub64((arg1 === ptrType.nil && $throwNilPointerError(), arg1)[0], (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[0], new $Uint64(0, 0)); x1 = _tuple[0]; x2 = _tuple[1]; x3 = new $Uint64(0, 0); x4 = new $Uint64(0, 0); - _tuple$1 = bits.Sub64(arg1[1], arg2[1], ((x = (new p521Uint1(x2.$high, x2.$low)), new $Uint64(x.$high, x.$low)))); + _tuple$1 = bits.Sub64((arg1 === ptrType.nil && $throwNilPointerError(), arg1)[1], (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[1], ((x = (new p521Uint1(x2.$high, x2.$low)), new $Uint64(x.$high, x.$low)))); x3 = _tuple$1[0]; x4 = _tuple$1[1]; x5 = new $Uint64(0, 0); x6 = new $Uint64(0, 0); - _tuple$2 = bits.Sub64(arg1[2], arg2[2], ((x$1 = (new p521Uint1(x4.$high, x4.$low)), new $Uint64(x$1.$high, x$1.$low)))); + _tuple$2 = bits.Sub64((arg1 === ptrType.nil && $throwNilPointerError(), arg1)[2], (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[2], ((x$1 = (new p521Uint1(x4.$high, x4.$low)), new $Uint64(x$1.$high, x$1.$low)))); x5 = _tuple$2[0]; x6 = _tuple$2[1]; x7 = new $Uint64(0, 0); x8 = new $Uint64(0, 0); - _tuple$3 = bits.Sub64(arg1[3], arg2[3], ((x$2 = (new p521Uint1(x6.$high, x6.$low)), new $Uint64(x$2.$high, x$2.$low)))); + _tuple$3 = bits.Sub64((arg1 === ptrType.nil && $throwNilPointerError(), arg1)[3], (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[3], ((x$2 = (new p521Uint1(x6.$high, x6.$low)), new $Uint64(x$2.$high, x$2.$low)))); x7 = _tuple$3[0]; x8 = _tuple$3[1]; x9 = new $Uint64(0, 0); x10 = new $Uint64(0, 0); - _tuple$4 = bits.Sub64(arg1[4], arg2[4], ((x$3 = (new p521Uint1(x8.$high, x8.$low)), new $Uint64(x$3.$high, x$3.$low)))); + _tuple$4 = bits.Sub64((arg1 === ptrType.nil && $throwNilPointerError(), arg1)[4], (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[4], ((x$3 = (new p521Uint1(x8.$high, x8.$low)), new $Uint64(x$3.$high, x$3.$low)))); x9 = _tuple$4[0]; x10 = _tuple$4[1]; x11 = new $Uint64(0, 0); x12 = new $Uint64(0, 0); - _tuple$5 = bits.Sub64(arg1[5], arg2[5], ((x$4 = (new p521Uint1(x10.$high, x10.$low)), new $Uint64(x$4.$high, x$4.$low)))); + _tuple$5 = bits.Sub64((arg1 === ptrType.nil && $throwNilPointerError(), arg1)[5], (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[5], ((x$4 = (new p521Uint1(x10.$high, x10.$low)), new $Uint64(x$4.$high, x$4.$low)))); x11 = _tuple$5[0]; x12 = _tuple$5[1]; x13 = new $Uint64(0, 0); x14 = new $Uint64(0, 0); - _tuple$6 = bits.Sub64(arg1[6], arg2[6], ((x$5 = (new p521Uint1(x12.$high, x12.$low)), new $Uint64(x$5.$high, x$5.$low)))); + _tuple$6 = bits.Sub64((arg1 === ptrType.nil && $throwNilPointerError(), arg1)[6], (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[6], ((x$5 = (new p521Uint1(x12.$high, x12.$low)), new $Uint64(x$5.$high, x$5.$low)))); x13 = _tuple$6[0]; x14 = _tuple$6[1]; x15 = new $Uint64(0, 0); x16 = new $Uint64(0, 0); - _tuple$7 = bits.Sub64(arg1[7], arg2[7], ((x$6 = (new p521Uint1(x14.$high, x14.$low)), new $Uint64(x$6.$high, x$6.$low)))); + _tuple$7 = bits.Sub64((arg1 === ptrType.nil && $throwNilPointerError(), arg1)[7], (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[7], ((x$6 = (new p521Uint1(x14.$high, x14.$low)), new $Uint64(x$6.$high, x$6.$low)))); x15 = _tuple$7[0]; x16 = _tuple$7[1]; x17 = new $Uint64(0, 0); x18 = new $Uint64(0, 0); - _tuple$8 = bits.Sub64(arg1[8], arg2[8], ((x$7 = (new p521Uint1(x16.$high, x16.$low)), new $Uint64(x$7.$high, x$7.$low)))); + _tuple$8 = bits.Sub64((arg1 === ptrType.nil && $throwNilPointerError(), arg1)[8], (arg2 === ptrType.nil && $throwNilPointerError(), arg2)[8], ((x$7 = (new p521Uint1(x16.$high, x16.$low)), new $Uint64(x$7.$high, x$7.$low)))); x17 = _tuple$8[0]; x18 = _tuple$8[1]; x19 = new $Uint64(0, 0); - p521CmovznzU64((x19$24ptr || (x19$24ptr = new ptrType(function() { return x19; }, function($v) { x19 = $v; }))), (new p521Uint1(x18.$high, x18.$low)), new $Uint64(0, 0), new $Uint64(4294967295, 4294967295)); + p521CmovznzU64((x19$24ptr || (x19$24ptr = new ptrType$1(function() { return x19; }, function($v) { x19 = $v; }))), (new p521Uint1(x18.$high, x18.$low)), new $Uint64(0, 0), new $Uint64(4294967295, 4294967295)); x20 = new $Uint64(0, 0); x21 = new $Uint64(0, 0); _tuple$9 = bits.Add64(x1, x19, new $Uint64(0, 0)); @@ -204043,7 +205341,7 @@ $packages["crypto/internal/nistec/fiat"] = (function() { }; p521FromMontgomery = function p521FromMontgomery$1(out1, arg1) { var _tuple, _tuple$1, _tuple$10, _tuple$100, _tuple$101, _tuple$102, _tuple$103, _tuple$104, _tuple$105, _tuple$106, _tuple$107, _tuple$108, _tuple$109, _tuple$11, _tuple$110, _tuple$111, _tuple$112, _tuple$113, _tuple$114, _tuple$115, _tuple$116, _tuple$117, _tuple$118, _tuple$119, _tuple$12, _tuple$120, _tuple$121, _tuple$122, _tuple$123, _tuple$124, _tuple$125, _tuple$126, _tuple$127, _tuple$128, _tuple$129, _tuple$13, _tuple$130, _tuple$131, _tuple$132, _tuple$133, _tuple$134, _tuple$135, _tuple$136, _tuple$137, _tuple$138, _tuple$139, _tuple$14, _tuple$140, _tuple$141, _tuple$142, _tuple$143, _tuple$144, _tuple$145, _tuple$146, _tuple$147, _tuple$148, _tuple$149, _tuple$15, _tuple$150, _tuple$151, _tuple$152, _tuple$153, _tuple$154, _tuple$155, _tuple$156, _tuple$157, _tuple$158, _tuple$159, _tuple$16, _tuple$160, _tuple$161, _tuple$162, _tuple$163, _tuple$164, _tuple$165, _tuple$166, _tuple$167, _tuple$168, _tuple$169, _tuple$17, _tuple$170, _tuple$171, _tuple$172, _tuple$173, _tuple$174, _tuple$175, _tuple$176, _tuple$177, _tuple$178, _tuple$179, _tuple$18, _tuple$180, _tuple$181, _tuple$182, _tuple$183, _tuple$184, _tuple$185, _tuple$186, _tuple$187, _tuple$188, _tuple$189, _tuple$19, _tuple$190, _tuple$191, _tuple$192, _tuple$193, _tuple$194, _tuple$195, _tuple$196, _tuple$197, _tuple$198, _tuple$199, _tuple$2, _tuple$20, _tuple$200, _tuple$201, _tuple$202, _tuple$203, _tuple$204, _tuple$205, _tuple$206, _tuple$207, _tuple$208, _tuple$209, _tuple$21, _tuple$210, _tuple$211, _tuple$212, _tuple$213, _tuple$214, _tuple$215, _tuple$216, _tuple$217, _tuple$218, _tuple$219, _tuple$22, _tuple$220, _tuple$221, _tuple$222, _tuple$223, _tuple$224, _tuple$225, _tuple$226, _tuple$227, _tuple$228, _tuple$229, _tuple$23, _tuple$230, _tuple$231, _tuple$232, _tuple$233, _tuple$234, _tuple$235, _tuple$236, _tuple$237, _tuple$238, _tuple$239, _tuple$24, _tuple$240, _tuple$241, _tuple$242, _tuple$243, _tuple$244, _tuple$245, _tuple$246, _tuple$247, _tuple$248, _tuple$249, _tuple$25, _tuple$250, _tuple$251, _tuple$252, _tuple$253, _tuple$254, _tuple$255, _tuple$256, _tuple$257, _tuple$258, _tuple$259, _tuple$26, _tuple$260, _tuple$261, _tuple$262, _tuple$263, _tuple$264, _tuple$265, _tuple$266, _tuple$267, _tuple$268, _tuple$269, _tuple$27, _tuple$270, _tuple$271, _tuple$272, _tuple$273, _tuple$274, _tuple$275, _tuple$276, _tuple$277, _tuple$278, _tuple$279, _tuple$28, _tuple$280, _tuple$281, _tuple$282, _tuple$283, _tuple$284, _tuple$285, _tuple$286, _tuple$287, _tuple$288, _tuple$289, _tuple$29, _tuple$290, _tuple$291, _tuple$292, _tuple$293, _tuple$294, _tuple$295, _tuple$296, _tuple$297, _tuple$298, _tuple$299, _tuple$3, _tuple$30, _tuple$300, _tuple$301, _tuple$302, _tuple$303, _tuple$304, _tuple$305, _tuple$306, _tuple$307, _tuple$31, _tuple$32, _tuple$33, _tuple$34, _tuple$35, _tuple$36, _tuple$37, _tuple$38, _tuple$39, _tuple$4, _tuple$40, _tuple$41, _tuple$42, _tuple$43, _tuple$44, _tuple$45, _tuple$46, _tuple$47, _tuple$48, _tuple$49, _tuple$5, _tuple$50, _tuple$51, _tuple$52, _tuple$53, _tuple$54, _tuple$55, _tuple$56, _tuple$57, _tuple$58, _tuple$59, _tuple$6, _tuple$60, _tuple$61, _tuple$62, _tuple$63, _tuple$64, _tuple$65, _tuple$66, _tuple$67, _tuple$68, _tuple$69, _tuple$7, _tuple$70, _tuple$71, _tuple$72, _tuple$73, _tuple$74, _tuple$75, _tuple$76, _tuple$77, _tuple$78, _tuple$79, _tuple$8, _tuple$80, _tuple$81, _tuple$82, _tuple$83, _tuple$84, _tuple$85, _tuple$86, _tuple$87, _tuple$88, _tuple$89, _tuple$9, _tuple$90, _tuple$91, _tuple$92, _tuple$93, _tuple$94, _tuple$95, _tuple$96, _tuple$97, _tuple$98, _tuple$99, arg1, out1, x, x$1, x$10, x$100, x$101, x$102, x$103, x$104, x$105, x$106, x$107, x$108, x$109, x$11, x$110, x$111, x$112, x$113, x$114, x$115, x$116, x$117, x$118, x$119, x$12, x$120, x$121, x$122, x$123, x$124, x$125, x$126, x$127, x$128, x$129, x$13, x$130, x$131, x$132, x$133, x$134, x$135, x$136, x$137, x$138, x$139, x$14, x$140, x$141, x$142, x$143, x$144, x$145, x$146, x$147, x$148, x$149, x$15, x$150, x$151, x$152, x$153, x$154, x$155, x$156, x$157, x$158, x$159, x$16, x$160, x$161, x$162, x$163, x$164, x$165, x$166, x$167, x$168, x$169, x$17, x$170, x$171, x$172, x$173, x$174, x$175, x$176, x$177, x$178, x$179, x$18, x$180, x$181, x$182, x$183, x$184, x$185, x$186, x$187, x$188, x$189, x$19, x$190, x$191, x$192, x$193, x$194, x$195, x$196, x$197, x$198, x$199, x$2, x$20, x$200, x$201, x$202, x$203, x$204, x$205, x$206, x$207, x$208, x$209, x$21, x$210, x$211, x$212, x$213, x$214, x$215, x$216, x$217, x$218, x$219, x$22, x$220, x$221, x$222, x$223, x$224, x$225, x$226, x$227, x$228, x$229, x$23, x$230, x$231, x$232, x$233, x$234, x$235, x$236, x$237, x$238, x$239, x$24, x$240, x$241, x$242, x$243, x$244, x$245, x$246, x$247, x$248, x$249, x$25, x$250, x$251, x$252, x$253, x$254, x$255, x$256, x$257, x$258, x$259, x$26, x$260, x$261, x$262, x$263, x$264, x$265, x$266, x$267, x$268, x$27, x$28, x$29, x$3, x$30, x$31, x$32, x$33, x$34, x$35, x$36, x$37, x$38, x$39, x$4, x$40, x$41, x$42, x$43, x$44, x$45, x$46, x$47, x$48, x$49, x$5, x$50, x$51, x$52, x$53, x$54, x$55, x$56, x$57, x$58, x$59, x$6, x$60, x$61, x$62, x$63, x$64, x$65, x$66, x$67, x$68, x$69, x$7, x$70, x$71, x$72, x$73, x$74, x$75, x$76, x$77, x$78, x$79, x$8, x$80, x$81, x$82, x$83, x$84, x$85, x$86, x$87, x$88, x$89, x$9, x$90, x$91, x$92, x$93, x$94, x$95, x$96, x$97, x$98, x$99, x1, x10, x100, x101, x102, x103, x105, x106, x107, x108, x109, x11, x110, x111, x112, x113, x114, x115, x116, x117, x118, x119, x12, x120, x121, x122, x123, x124, x125, x126, x127, x128, x129, x13, x130, x131, x132, x133, x134, x135, x136, x137, x138, x139, x14, x140, x141, x142, x143, x144, x145, x146, x147, x148, x149, x15, x150, x151, x152, x153, x154, x155, x156, x157, x158, x159, x16, x160, x161, x162, x163, x164, x165, x166, x167, x168, x169, x17, x170, x171, x173, x174, x175, x176, x177, x178, x179, x18, x180, x181, x182, x183, x184, x185, x186, x187, x188, x189, x19, x190, x191, x192, x193, x194, x195, x196, x197, x198, x199, x2, x20, x200, x201, x202, x203, x204, x205, x206, x207, x208, x209, x21, x210, x211, x212, x213, x214, x215, x216, x217, x218, x219, x22, x220, x221, x222, x223, x224, x225, x226, x227, x228, x229, x23, x230, x231, x232, x233, x234, x235, x236, x237, x238, x239, x24, x241, x242, x243, x244, x245, x246, x247, x248, x249, x25, x250, x251, x252, x253, x254, x255, x256, x257, x258, x259, x26, x260, x261, x262, x263, x264, x265, x266, x267, x268, x269, x27, x270, x271, x272, x273, x274, x275, x276, x277, x278, x279, x28, x280, x281, x282, x283, x284, x285, x286, x287, x288, x289, x29, x290, x291, x292, x293, x294, x295, x296, x297, x298, x299, x3, x30, x300, x301, x302, x303, x304, x305, x306, x307, x309, x31, x310, x311, x312, x313, x314, x315, x316, x317, x318, x319, x32, x320, x321, x322, x323, x324, x325, x326, x327, x328, x329, x33, x330, x331, x332, x333, x334, x335, x336, x337, x338, x339, x34, x340, x341, x342, x343, x344, x345, x346, x347, x348, x349, x35, x350, x351, x352, x353, x354, x355, x356, x357, x358, x359, x360, x361, x362, x363, x364, x365, x366, x367, x368, x369, x37, x370, x371, x372, x373, x374, x375, x377, x378, x379, x38, x380, x381, x382, x383, x384, x385, x386, x387, x388, x389, x39, x390, x391, x392, x393, x394, x395, x396, x397, x398, x399, x4, x40, x400, x401, x402, x403, x404, x405, x406, x407, x408, x409, x41, x410, x411, x412, x413, x414, x415, x416, x417, x418, x419, x42, x420, x421, x422, x423, x424, x425, x426, x427, x428, x429, x43, x430, x431, x432, x433, x434, x435, x436, x437, x438, x439, x44, x440, x441, x442, x443, x445, x446, x447, x448, x449, x45, x450, x451, x452, x453, x454, x455, x456, x457, x458, x459, x46, x460, x461, x462, x463, x464, x465, x466, x467, x468, x469, x47, x470, x471, x472, x473, x474, x475, x476, x477, x478, x479, x48, x480, x481, x482, x483, x484, x485, x486, x487, x488, x489, x49, x490, x491, x492, x493, x494, x495, x496, x497, x498, x499, x5, x50, x500, x501, x502, x503, x504, x505, x506, x507, x508, x509, x51, x510, x511, x513, x514, x515, x516, x517, x518, x519, x52, x520, x521, x522, x523, x524, x525, x526, x527, x528, x529, x53, x530, x531, x532, x533, x534, x535, x536, x537, x538, x539, x54, x540, x541, x542, x543, x544, x545, x546, x547, x548, x549, x55, x550, x551, x552, x553, x554, x555, x556, x557, x558, x559, x56, x560, x561, x562, x563, x564, x565, x566, x567, x568, x569, x57, x570, x571, x572, x573, x574, x575, x576, x577, x578, x579, x58, x581, x582, x583, x584, x585, x586, x587, x588, x589, x59, x590, x591, x592, x593, x594, x595, x596, x597, x598, x599, x6, x60, x600, x601, x602, x603, x604, x605, x606, x607, x608, x609, x61, x610, x611, x612, x613, x614, x615, x616, x618, x619, x619$24ptr, x62, x620, x620$24ptr, x621, x621$24ptr, x622, x622$24ptr, x623, x623$24ptr, x624, x624$24ptr, x625, x625$24ptr, x626, x626$24ptr, x627, x627$24ptr, x63, x64, x65, x66, x67, x68, x69, x7, x70, x71, x72, x73, x74, x75, x76, x77, x78, x79, x8, x80, x81, x82, x83, x84, x85, x86, x87, x88, x89, x9, x90, x91, x92, x93, x94, x95, x96, x97, x98, x99; - x1 = arg1[0]; + x1 = (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[0]; x2 = new $Uint64(0, 0); x3 = new $Uint64(0, 0); _tuple = bits.Mul64(x1, new $Uint64(0, 511)); @@ -204174,7 +205472,7 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x53 = _tuple$25[1]; x54 = new $Uint64(0, 0); x55 = new $Uint64(0, 0); - _tuple$26 = bits.Add64(x38, arg1[1], new $Uint64(0, 0)); + _tuple$26 = bits.Add64(x38, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[1], new $Uint64(0, 0)); x54 = _tuple$26[0]; x55 = _tuple$26[1]; x56 = new $Uint64(0, 0); @@ -204342,7 +205640,7 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x121 = _tuple$59[1]; x122 = new $Uint64(0, 0); x123 = new $Uint64(0, 0); - _tuple$60 = bits.Add64(x106, arg1[2], new $Uint64(0, 0)); + _tuple$60 = bits.Add64(x106, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[2], new $Uint64(0, 0)); x122 = _tuple$60[0]; x123 = _tuple$60[1]; x124 = new $Uint64(0, 0); @@ -204510,7 +205808,7 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x189 = _tuple$93[1]; x190 = new $Uint64(0, 0); x191 = new $Uint64(0, 0); - _tuple$94 = bits.Add64(x174, arg1[3], new $Uint64(0, 0)); + _tuple$94 = bits.Add64(x174, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[3], new $Uint64(0, 0)); x190 = _tuple$94[0]; x191 = _tuple$94[1]; x192 = new $Uint64(0, 0); @@ -204678,7 +205976,7 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x257 = _tuple$127[1]; x258 = new $Uint64(0, 0); x259 = new $Uint64(0, 0); - _tuple$128 = bits.Add64(x242, arg1[4], new $Uint64(0, 0)); + _tuple$128 = bits.Add64(x242, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[4], new $Uint64(0, 0)); x258 = _tuple$128[0]; x259 = _tuple$128[1]; x260 = new $Uint64(0, 0); @@ -204846,7 +206144,7 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x325 = _tuple$161[1]; x326 = new $Uint64(0, 0); x327 = new $Uint64(0, 0); - _tuple$162 = bits.Add64(x310, arg1[5], new $Uint64(0, 0)); + _tuple$162 = bits.Add64(x310, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[5], new $Uint64(0, 0)); x326 = _tuple$162[0]; x327 = _tuple$162[1]; x328 = new $Uint64(0, 0); @@ -205014,7 +206312,7 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x393 = _tuple$195[1]; x394 = new $Uint64(0, 0); x395 = new $Uint64(0, 0); - _tuple$196 = bits.Add64(x378, arg1[6], new $Uint64(0, 0)); + _tuple$196 = bits.Add64(x378, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[6], new $Uint64(0, 0)); x394 = _tuple$196[0]; x395 = _tuple$196[1]; x396 = new $Uint64(0, 0); @@ -205182,7 +206480,7 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x461 = _tuple$229[1]; x462 = new $Uint64(0, 0); x463 = new $Uint64(0, 0); - _tuple$230 = bits.Add64(x446, arg1[7], new $Uint64(0, 0)); + _tuple$230 = bits.Add64(x446, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[7], new $Uint64(0, 0)); x462 = _tuple$230[0]; x463 = _tuple$230[1]; x464 = new $Uint64(0, 0); @@ -205350,7 +206648,7 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x529 = _tuple$263[1]; x530 = new $Uint64(0, 0); x531 = new $Uint64(0, 0); - _tuple$264 = bits.Add64(x514, arg1[8], new $Uint64(0, 0)); + _tuple$264 = bits.Add64(x514, (arg1 === ptrType.nil && $throwNilPointerError(), arg1)[8], new $Uint64(0, 0)); x530 = _tuple$264[0]; x531 = _tuple$264[1]; x532 = new $Uint64(0, 0); @@ -205566,23 +206864,23 @@ $packages["crypto/internal/nistec/fiat"] = (function() { _tuple$307 = bits.Sub64(new $Uint64(0, 0), new $Uint64(0, 0), ((x$268 = (new p521Uint1(x616.$high, x616.$low)), new $Uint64(x$268.$high, x$268.$low)))); x618 = _tuple$307[1]; x619 = new $Uint64(0, 0); - p521CmovznzU64((x619$24ptr || (x619$24ptr = new ptrType(function() { return x619; }, function($v) { x619 = $v; }))), (new p521Uint1(x618.$high, x618.$low)), x599, x582); + p521CmovznzU64((x619$24ptr || (x619$24ptr = new ptrType$1(function() { return x619; }, function($v) { x619 = $v; }))), (new p521Uint1(x618.$high, x618.$low)), x599, x582); x620 = new $Uint64(0, 0); - p521CmovznzU64((x620$24ptr || (x620$24ptr = new ptrType(function() { return x620; }, function($v) { x620 = $v; }))), (new p521Uint1(x618.$high, x618.$low)), x601, x584); + p521CmovznzU64((x620$24ptr || (x620$24ptr = new ptrType$1(function() { return x620; }, function($v) { x620 = $v; }))), (new p521Uint1(x618.$high, x618.$low)), x601, x584); x621 = new $Uint64(0, 0); - p521CmovznzU64((x621$24ptr || (x621$24ptr = new ptrType(function() { return x621; }, function($v) { x621 = $v; }))), (new p521Uint1(x618.$high, x618.$low)), x603, x586); + p521CmovznzU64((x621$24ptr || (x621$24ptr = new ptrType$1(function() { return x621; }, function($v) { x621 = $v; }))), (new p521Uint1(x618.$high, x618.$low)), x603, x586); x622 = new $Uint64(0, 0); - p521CmovznzU64((x622$24ptr || (x622$24ptr = new ptrType(function() { return x622; }, function($v) { x622 = $v; }))), (new p521Uint1(x618.$high, x618.$low)), x605, x588); + p521CmovznzU64((x622$24ptr || (x622$24ptr = new ptrType$1(function() { return x622; }, function($v) { x622 = $v; }))), (new p521Uint1(x618.$high, x618.$low)), x605, x588); x623 = new $Uint64(0, 0); - p521CmovznzU64((x623$24ptr || (x623$24ptr = new ptrType(function() { return x623; }, function($v) { x623 = $v; }))), (new p521Uint1(x618.$high, x618.$low)), x607, x590); + p521CmovznzU64((x623$24ptr || (x623$24ptr = new ptrType$1(function() { return x623; }, function($v) { x623 = $v; }))), (new p521Uint1(x618.$high, x618.$low)), x607, x590); x624 = new $Uint64(0, 0); - p521CmovznzU64((x624$24ptr || (x624$24ptr = new ptrType(function() { return x624; }, function($v) { x624 = $v; }))), (new p521Uint1(x618.$high, x618.$low)), x609, x592); + p521CmovznzU64((x624$24ptr || (x624$24ptr = new ptrType$1(function() { return x624; }, function($v) { x624 = $v; }))), (new p521Uint1(x618.$high, x618.$low)), x609, x592); x625 = new $Uint64(0, 0); - p521CmovznzU64((x625$24ptr || (x625$24ptr = new ptrType(function() { return x625; }, function($v) { x625 = $v; }))), (new p521Uint1(x618.$high, x618.$low)), x611, x594); + p521CmovznzU64((x625$24ptr || (x625$24ptr = new ptrType$1(function() { return x625; }, function($v) { x625 = $v; }))), (new p521Uint1(x618.$high, x618.$low)), x611, x594); x626 = new $Uint64(0, 0); - p521CmovznzU64((x626$24ptr || (x626$24ptr = new ptrType(function() { return x626; }, function($v) { x626 = $v; }))), (new p521Uint1(x618.$high, x618.$low)), x613, x596); + p521CmovznzU64((x626$24ptr || (x626$24ptr = new ptrType$1(function() { return x626; }, function($v) { x626 = $v; }))), (new p521Uint1(x618.$high, x618.$low)), x613, x596); x627 = new $Uint64(0, 0); - p521CmovznzU64((x627$24ptr || (x627$24ptr = new ptrType(function() { return x627; }, function($v) { x627 = $v; }))), (new p521Uint1(x618.$high, x618.$low)), x615, x598); + p521CmovznzU64((x627$24ptr || (x627$24ptr = new ptrType$1(function() { return x627; }, function($v) { x627 = $v; }))), (new p521Uint1(x618.$high, x618.$low)), x615, x598); out1.nilCheck, out1[0] = x619; out1.nilCheck, out1[1] = x620; out1.nilCheck, out1[2] = x621; @@ -205597,12 +206895,12 @@ $packages["crypto/internal/nistec/fiat"] = (function() { var _tuple, _tuple$1, _tuple$10, _tuple$100, _tuple$101, _tuple$102, _tuple$103, _tuple$104, _tuple$105, _tuple$106, _tuple$107, _tuple$108, _tuple$109, _tuple$11, _tuple$110, _tuple$111, _tuple$112, _tuple$113, _tuple$114, _tuple$115, _tuple$116, _tuple$117, _tuple$118, _tuple$119, _tuple$12, _tuple$120, _tuple$121, _tuple$122, _tuple$123, _tuple$124, _tuple$125, _tuple$126, _tuple$127, _tuple$128, _tuple$129, _tuple$13, _tuple$130, _tuple$131, _tuple$132, _tuple$133, _tuple$134, _tuple$135, _tuple$136, _tuple$137, _tuple$138, _tuple$139, _tuple$14, _tuple$140, _tuple$141, _tuple$142, _tuple$143, _tuple$144, _tuple$145, _tuple$146, _tuple$147, _tuple$148, _tuple$149, _tuple$15, _tuple$150, _tuple$151, _tuple$152, _tuple$153, _tuple$154, _tuple$155, _tuple$156, _tuple$157, _tuple$158, _tuple$159, _tuple$16, _tuple$160, _tuple$161, _tuple$162, _tuple$163, _tuple$164, _tuple$165, _tuple$166, _tuple$167, _tuple$168, _tuple$169, _tuple$17, _tuple$170, _tuple$171, _tuple$172, _tuple$173, _tuple$174, _tuple$175, _tuple$176, _tuple$177, _tuple$178, _tuple$179, _tuple$18, _tuple$180, _tuple$181, _tuple$182, _tuple$183, _tuple$184, _tuple$185, _tuple$186, _tuple$187, _tuple$188, _tuple$189, _tuple$19, _tuple$190, _tuple$191, _tuple$192, _tuple$193, _tuple$194, _tuple$195, _tuple$196, _tuple$197, _tuple$198, _tuple$199, _tuple$2, _tuple$20, _tuple$200, _tuple$201, _tuple$202, _tuple$203, _tuple$204, _tuple$205, _tuple$206, _tuple$207, _tuple$208, _tuple$209, _tuple$21, _tuple$210, _tuple$211, _tuple$212, _tuple$213, _tuple$214, _tuple$215, _tuple$216, _tuple$217, _tuple$218, _tuple$219, _tuple$22, _tuple$220, _tuple$221, _tuple$222, _tuple$223, _tuple$224, _tuple$225, _tuple$226, _tuple$227, _tuple$228, _tuple$229, _tuple$23, _tuple$230, _tuple$231, _tuple$232, _tuple$233, _tuple$234, _tuple$235, _tuple$236, _tuple$237, _tuple$238, _tuple$239, _tuple$24, _tuple$240, _tuple$241, _tuple$242, _tuple$243, _tuple$244, _tuple$245, _tuple$246, _tuple$247, _tuple$248, _tuple$249, _tuple$25, _tuple$250, _tuple$251, _tuple$252, _tuple$253, _tuple$254, _tuple$255, _tuple$256, _tuple$257, _tuple$258, _tuple$259, _tuple$26, _tuple$260, _tuple$261, _tuple$262, _tuple$263, _tuple$264, _tuple$265, _tuple$266, _tuple$267, _tuple$268, _tuple$269, _tuple$27, _tuple$270, _tuple$271, _tuple$272, _tuple$273, _tuple$274, _tuple$275, _tuple$276, _tuple$28, _tuple$29, _tuple$3, _tuple$30, _tuple$31, _tuple$32, _tuple$33, _tuple$34, _tuple$35, _tuple$36, _tuple$37, _tuple$38, _tuple$39, _tuple$4, _tuple$40, _tuple$41, _tuple$42, _tuple$43, _tuple$44, _tuple$45, _tuple$46, _tuple$47, _tuple$48, _tuple$49, _tuple$5, _tuple$50, _tuple$51, _tuple$52, _tuple$53, _tuple$54, _tuple$55, _tuple$56, _tuple$57, _tuple$58, _tuple$59, _tuple$6, _tuple$60, _tuple$61, _tuple$62, _tuple$63, _tuple$64, _tuple$65, _tuple$66, _tuple$67, _tuple$68, _tuple$69, _tuple$7, _tuple$70, _tuple$71, _tuple$72, _tuple$73, _tuple$74, _tuple$75, _tuple$76, _tuple$77, _tuple$78, _tuple$79, _tuple$8, _tuple$80, _tuple$81, _tuple$82, _tuple$83, _tuple$84, _tuple$85, _tuple$86, _tuple$87, _tuple$88, _tuple$89, _tuple$9, _tuple$90, _tuple$91, _tuple$92, _tuple$93, _tuple$94, _tuple$95, _tuple$96, _tuple$97, _tuple$98, _tuple$99, arg1, out1, x, x$1, x$10, x$100, x$101, x$102, x$103, x$104, x$105, x$106, x$107, x$108, x$109, x$11, x$110, x$111, x$112, x$113, x$114, x$115, x$116, x$117, x$118, x$119, x$12, x$120, x$121, x$122, x$123, x$124, x$125, x$126, x$127, x$128, x$129, x$13, x$130, x$131, x$132, x$133, x$134, x$135, x$136, x$137, x$138, x$139, x$14, x$140, x$141, x$142, x$143, x$144, x$145, x$146, x$147, x$148, x$149, x$15, x$150, x$151, x$152, x$153, x$154, x$155, x$156, x$157, x$158, x$159, x$16, x$160, x$161, x$162, x$163, x$164, x$165, x$166, x$167, x$168, x$169, x$17, x$170, x$171, x$172, x$173, x$174, x$175, x$176, x$177, x$178, x$179, x$18, x$180, x$181, x$182, x$183, x$184, x$185, x$186, x$187, x$188, x$189, x$19, x$190, x$191, x$192, x$193, x$194, x$195, x$196, x$197, x$198, x$199, x$2, x$20, x$200, x$201, x$202, x$203, x$204, x$205, x$206, x$207, x$208, x$209, x$21, x$210, x$211, x$212, x$213, x$214, x$215, x$216, x$217, x$218, x$219, x$22, x$220, x$221, x$222, x$223, x$224, x$225, x$226, x$227, x$228, x$229, x$23, x$230, x$231, x$232, x$233, x$24, x$25, x$26, x$27, x$28, x$29, x$3, x$30, x$31, x$32, x$33, x$34, x$35, x$36, x$37, x$38, x$39, x$4, x$40, x$41, x$42, x$43, x$44, x$45, x$46, x$47, x$48, x$49, x$5, x$50, x$51, x$52, x$53, x$54, x$55, x$56, x$57, x$58, x$59, x$6, x$60, x$61, x$62, x$63, x$64, x$65, x$66, x$67, x$68, x$69, x$7, x$70, x$71, x$72, x$73, x$74, x$75, x$76, x$77, x$78, x$79, x$8, x$80, x$81, x$82, x$83, x$84, x$85, x$86, x$87, x$88, x$89, x$9, x$90, x$91, x$92, x$93, x$94, x$95, x$96, x$97, x$98, x$99, x1, x10, x100, x101, x102, x103, x104, x105, x106, x107, x108, x11, x110, x111, x112, x113, x114, x115, x116, x117, x118, x119, x12, x120, x121, x122, x123, x124, x125, x126, x127, x128, x129, x13, x130, x131, x132, x133, x134, x135, x136, x137, x138, x139, x14, x140, x141, x142, x143, x144, x145, x146, x147, x148, x149, x15, x150, x151, x152, x153, x154, x155, x156, x157, x158, x159, x16, x160, x161, x162, x163, x164, x165, x166, x167, x168, x169, x17, x170, x171, x172, x173, x174, x175, x176, x178, x179, x18, x180, x181, x182, x183, x184, x185, x186, x187, x188, x189, x19, x190, x191, x192, x193, x194, x195, x196, x197, x198, x199, x2, x20, x200, x201, x202, x203, x204, x205, x206, x207, x208, x209, x21, x210, x211, x212, x213, x214, x215, x216, x217, x218, x219, x22, x220, x221, x222, x223, x224, x225, x226, x227, x228, x229, x23, x230, x231, x232, x233, x234, x235, x236, x237, x238, x239, x24, x240, x241, x242, x243, x244, x246, x247, x248, x249, x25, x250, x251, x252, x253, x254, x255, x256, x257, x258, x259, x26, x260, x261, x262, x263, x264, x265, x266, x267, x268, x269, x27, x270, x271, x272, x273, x274, x275, x276, x277, x278, x279, x28, x280, x281, x282, x283, x284, x285, x286, x287, x288, x289, x29, x290, x291, x292, x293, x294, x295, x296, x297, x298, x299, x3, x30, x300, x301, x302, x303, x304, x305, x306, x307, x308, x309, x31, x310, x311, x312, x314, x315, x316, x317, x318, x319, x32, x320, x321, x322, x323, x324, x325, x326, x327, x328, x329, x33, x330, x331, x332, x333, x334, x335, x336, x337, x338, x339, x34, x340, x341, x342, x343, x344, x345, x346, x347, x348, x349, x35, x350, x351, x352, x353, x354, x355, x356, x357, x358, x359, x36, x360, x361, x362, x363, x364, x365, x366, x367, x368, x369, x37, x370, x371, x372, x373, x374, x375, x376, x377, x378, x379, x38, x380, x382, x383, x384, x385, x386, x387, x388, x389, x39, x390, x391, x392, x393, x394, x395, x396, x397, x398, x399, x4, x40, x400, x401, x402, x403, x404, x405, x406, x407, x408, x409, x410, x411, x412, x413, x414, x415, x416, x417, x418, x419, x42, x420, x421, x422, x423, x424, x425, x426, x427, x428, x429, x43, x430, x431, x432, x433, x434, x435, x436, x437, x438, x439, x44, x440, x441, x442, x443, x444, x445, x446, x447, x448, x45, x450, x451, x452, x453, x454, x455, x456, x457, x458, x459, x46, x460, x461, x462, x463, x464, x465, x466, x467, x468, x469, x47, x470, x471, x472, x473, x474, x475, x476, x477, x478, x479, x48, x480, x481, x482, x483, x484, x485, x486, x487, x488, x489, x49, x490, x491, x492, x493, x494, x495, x496, x497, x498, x499, x5, x50, x500, x501, x502, x503, x504, x505, x506, x507, x508, x509, x51, x510, x511, x512, x513, x514, x515, x516, x518, x519, x52, x520, x521, x522, x523, x524, x525, x526, x527, x528, x529, x53, x530, x531, x532, x533, x534, x535, x536, x537, x538, x539, x54, x540, x541, x542, x543, x544, x545, x546, x547, x548, x549, x55, x550, x551, x552, x553, x555, x556, x556$24ptr, x557, x557$24ptr, x558, x558$24ptr, x559, x559$24ptr, x56, x560, x560$24ptr, x561, x561$24ptr, x562, x562$24ptr, x563, x563$24ptr, x564, x564$24ptr, x57, x58, x59, x6, x60, x61, x62, x63, x64, x65, x66, x67, x68, x69, x7, x70, x71, x72, x73, x74, x75, x76, x77, x78, x79, x8, x80, x81, x82, x83, x84, x85, x86, x87, x88, x89, x9, x90, x91, x92, x93, x94, x95, x96, x97, x98, x99; x1 = new $Uint64(0, 0); x2 = new $Uint64(0, 0); - _tuple = bits.Mul64(arg1[0], new $Uint64(16384, 0)); + _tuple = bits.Mul64((arg1 === ptrType$2.nil && $throwNilPointerError(), arg1)[0], new $Uint64(16384, 0)); x2 = _tuple[0]; x1 = _tuple[1]; x3 = new $Uint64(0, 0); x4 = new $Uint64(0, 0); - _tuple$1 = bits.Mul64(arg1[1], new $Uint64(16384, 0)); + _tuple$1 = bits.Mul64((arg1 === ptrType$2.nil && $throwNilPointerError(), arg1)[1], new $Uint64(16384, 0)); x4 = _tuple$1[0]; x3 = _tuple$1[1]; x5 = new $Uint64(0, 0); @@ -205740,7 +207038,7 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x58 = _tuple$28[1]; x59 = new $Uint64(0, 0); x60 = new $Uint64(0, 0); - _tuple$29 = bits.Mul64(arg1[2], new $Uint64(16384, 0)); + _tuple$29 = bits.Mul64((arg1 === ptrType$2.nil && $throwNilPointerError(), arg1)[2], new $Uint64(16384, 0)); x60 = _tuple$29[0]; x59 = _tuple$29[1]; x61 = new $Uint64(0, 0); @@ -205908,7 +207206,7 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x126 = _tuple$62[1]; x127 = new $Uint64(0, 0); x128 = new $Uint64(0, 0); - _tuple$63 = bits.Mul64(arg1[3], new $Uint64(16384, 0)); + _tuple$63 = bits.Mul64((arg1 === ptrType$2.nil && $throwNilPointerError(), arg1)[3], new $Uint64(16384, 0)); x128 = _tuple$63[0]; x127 = _tuple$63[1]; x129 = new $Uint64(0, 0); @@ -206076,7 +207374,7 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x194 = _tuple$96[1]; x195 = new $Uint64(0, 0); x196 = new $Uint64(0, 0); - _tuple$97 = bits.Mul64(arg1[4], new $Uint64(16384, 0)); + _tuple$97 = bits.Mul64((arg1 === ptrType$2.nil && $throwNilPointerError(), arg1)[4], new $Uint64(16384, 0)); x196 = _tuple$97[0]; x195 = _tuple$97[1]; x197 = new $Uint64(0, 0); @@ -206244,7 +207542,7 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x262 = _tuple$130[1]; x263 = new $Uint64(0, 0); x264 = new $Uint64(0, 0); - _tuple$131 = bits.Mul64(arg1[5], new $Uint64(16384, 0)); + _tuple$131 = bits.Mul64((arg1 === ptrType$2.nil && $throwNilPointerError(), arg1)[5], new $Uint64(16384, 0)); x264 = _tuple$131[0]; x263 = _tuple$131[1]; x265 = new $Uint64(0, 0); @@ -206412,7 +207710,7 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x330 = _tuple$164[1]; x331 = new $Uint64(0, 0); x332 = new $Uint64(0, 0); - _tuple$165 = bits.Mul64(arg1[6], new $Uint64(16384, 0)); + _tuple$165 = bits.Mul64((arg1 === ptrType$2.nil && $throwNilPointerError(), arg1)[6], new $Uint64(16384, 0)); x332 = _tuple$165[0]; x331 = _tuple$165[1]; x333 = new $Uint64(0, 0); @@ -206580,7 +207878,7 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x398 = _tuple$198[1]; x399 = new $Uint64(0, 0); x400 = new $Uint64(0, 0); - _tuple$199 = bits.Mul64(arg1[7], new $Uint64(16384, 0)); + _tuple$199 = bits.Mul64((arg1 === ptrType$2.nil && $throwNilPointerError(), arg1)[7], new $Uint64(16384, 0)); x400 = _tuple$199[0]; x399 = _tuple$199[1]; x401 = new $Uint64(0, 0); @@ -206748,7 +208046,7 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x466 = _tuple$232[1]; x467 = new $Uint64(0, 0); x468 = new $Uint64(0, 0); - _tuple$233 = bits.Mul64(arg1[8], new $Uint64(16384, 0)); + _tuple$233 = bits.Mul64((arg1 === ptrType$2.nil && $throwNilPointerError(), arg1)[8], new $Uint64(16384, 0)); x468 = _tuple$233[0]; x467 = _tuple$233[1]; x469 = new $Uint64(0, 0); @@ -206964,23 +208262,23 @@ $packages["crypto/internal/nistec/fiat"] = (function() { _tuple$276 = bits.Sub64(new $Uint64(0, 0), new $Uint64(0, 0), ((x$233 = (new p521Uint1(x553.$high, x553.$low)), new $Uint64(x$233.$high, x$233.$low)))); x555 = _tuple$276[1]; x556 = new $Uint64(0, 0); - p521CmovznzU64((x556$24ptr || (x556$24ptr = new ptrType(function() { return x556; }, function($v) { x556 = $v; }))), (new p521Uint1(x555.$high, x555.$low)), x536, x519); + p521CmovznzU64((x556$24ptr || (x556$24ptr = new ptrType$1(function() { return x556; }, function($v) { x556 = $v; }))), (new p521Uint1(x555.$high, x555.$low)), x536, x519); x557 = new $Uint64(0, 0); - p521CmovznzU64((x557$24ptr || (x557$24ptr = new ptrType(function() { return x557; }, function($v) { x557 = $v; }))), (new p521Uint1(x555.$high, x555.$low)), x538, x521); + p521CmovznzU64((x557$24ptr || (x557$24ptr = new ptrType$1(function() { return x557; }, function($v) { x557 = $v; }))), (new p521Uint1(x555.$high, x555.$low)), x538, x521); x558 = new $Uint64(0, 0); - p521CmovznzU64((x558$24ptr || (x558$24ptr = new ptrType(function() { return x558; }, function($v) { x558 = $v; }))), (new p521Uint1(x555.$high, x555.$low)), x540, x523); + p521CmovznzU64((x558$24ptr || (x558$24ptr = new ptrType$1(function() { return x558; }, function($v) { x558 = $v; }))), (new p521Uint1(x555.$high, x555.$low)), x540, x523); x559 = new $Uint64(0, 0); - p521CmovznzU64((x559$24ptr || (x559$24ptr = new ptrType(function() { return x559; }, function($v) { x559 = $v; }))), (new p521Uint1(x555.$high, x555.$low)), x542, x525); + p521CmovznzU64((x559$24ptr || (x559$24ptr = new ptrType$1(function() { return x559; }, function($v) { x559 = $v; }))), (new p521Uint1(x555.$high, x555.$low)), x542, x525); x560 = new $Uint64(0, 0); - p521CmovznzU64((x560$24ptr || (x560$24ptr = new ptrType(function() { return x560; }, function($v) { x560 = $v; }))), (new p521Uint1(x555.$high, x555.$low)), x544, x527); + p521CmovznzU64((x560$24ptr || (x560$24ptr = new ptrType$1(function() { return x560; }, function($v) { x560 = $v; }))), (new p521Uint1(x555.$high, x555.$low)), x544, x527); x561 = new $Uint64(0, 0); - p521CmovznzU64((x561$24ptr || (x561$24ptr = new ptrType(function() { return x561; }, function($v) { x561 = $v; }))), (new p521Uint1(x555.$high, x555.$low)), x546, x529); + p521CmovznzU64((x561$24ptr || (x561$24ptr = new ptrType$1(function() { return x561; }, function($v) { x561 = $v; }))), (new p521Uint1(x555.$high, x555.$low)), x546, x529); x562 = new $Uint64(0, 0); - p521CmovznzU64((x562$24ptr || (x562$24ptr = new ptrType(function() { return x562; }, function($v) { x562 = $v; }))), (new p521Uint1(x555.$high, x555.$low)), x548, x531); + p521CmovznzU64((x562$24ptr || (x562$24ptr = new ptrType$1(function() { return x562; }, function($v) { x562 = $v; }))), (new p521Uint1(x555.$high, x555.$low)), x548, x531); x563 = new $Uint64(0, 0); - p521CmovznzU64((x563$24ptr || (x563$24ptr = new ptrType(function() { return x563; }, function($v) { x563 = $v; }))), (new p521Uint1(x555.$high, x555.$low)), x550, x533); + p521CmovznzU64((x563$24ptr || (x563$24ptr = new ptrType$1(function() { return x563; }, function($v) { x563 = $v; }))), (new p521Uint1(x555.$high, x555.$low)), x550, x533); x564 = new $Uint64(0, 0); - p521CmovznzU64((x564$24ptr || (x564$24ptr = new ptrType(function() { return x564; }, function($v) { x564 = $v; }))), (new p521Uint1(x555.$high, x555.$low)), x552, x535); + p521CmovznzU64((x564$24ptr || (x564$24ptr = new ptrType$1(function() { return x564; }, function($v) { x564 = $v; }))), (new p521Uint1(x555.$high, x555.$low)), x552, x535); out1.nilCheck, out1[0] = x556; out1.nilCheck, out1[1] = x557; out1.nilCheck, out1[2] = x558; @@ -206994,23 +208292,23 @@ $packages["crypto/internal/nistec/fiat"] = (function() { p521Selectznz = function p521Selectznz$1(out1, arg1, arg2, arg3) { var arg1, arg2, arg3, out1, x1, x1$24ptr, x2, x2$24ptr, x3, x3$24ptr, x4, x4$24ptr, x5, x5$24ptr, x6, x6$24ptr, x7, x7$24ptr, x8, x8$24ptr, x9, x9$24ptr; x1 = new $Uint64(0, 0); - p521CmovznzU64((x1$24ptr || (x1$24ptr = new ptrType(function() { return x1; }, function($v) { x1 = $v; }))), arg1, arg2[0], arg3[0]); + p521CmovznzU64((x1$24ptr || (x1$24ptr = new ptrType$1(function() { return x1; }, function($v) { x1 = $v; }))), arg1, (arg2 === ptrType$3.nil && $throwNilPointerError(), arg2)[0], (arg3 === ptrType$3.nil && $throwNilPointerError(), arg3)[0]); x2 = new $Uint64(0, 0); - p521CmovznzU64((x2$24ptr || (x2$24ptr = new ptrType(function() { return x2; }, function($v) { x2 = $v; }))), arg1, arg2[1], arg3[1]); + p521CmovznzU64((x2$24ptr || (x2$24ptr = new ptrType$1(function() { return x2; }, function($v) { x2 = $v; }))), arg1, (arg2 === ptrType$3.nil && $throwNilPointerError(), arg2)[1], (arg3 === ptrType$3.nil && $throwNilPointerError(), arg3)[1]); x3 = new $Uint64(0, 0); - p521CmovznzU64((x3$24ptr || (x3$24ptr = new ptrType(function() { return x3; }, function($v) { x3 = $v; }))), arg1, arg2[2], arg3[2]); + p521CmovznzU64((x3$24ptr || (x3$24ptr = new ptrType$1(function() { return x3; }, function($v) { x3 = $v; }))), arg1, (arg2 === ptrType$3.nil && $throwNilPointerError(), arg2)[2], (arg3 === ptrType$3.nil && $throwNilPointerError(), arg3)[2]); x4 = new $Uint64(0, 0); - p521CmovznzU64((x4$24ptr || (x4$24ptr = new ptrType(function() { return x4; }, function($v) { x4 = $v; }))), arg1, arg2[3], arg3[3]); + p521CmovznzU64((x4$24ptr || (x4$24ptr = new ptrType$1(function() { return x4; }, function($v) { x4 = $v; }))), arg1, (arg2 === ptrType$3.nil && $throwNilPointerError(), arg2)[3], (arg3 === ptrType$3.nil && $throwNilPointerError(), arg3)[3]); x5 = new $Uint64(0, 0); - p521CmovznzU64((x5$24ptr || (x5$24ptr = new ptrType(function() { return x5; }, function($v) { x5 = $v; }))), arg1, arg2[4], arg3[4]); + p521CmovznzU64((x5$24ptr || (x5$24ptr = new ptrType$1(function() { return x5; }, function($v) { x5 = $v; }))), arg1, (arg2 === ptrType$3.nil && $throwNilPointerError(), arg2)[4], (arg3 === ptrType$3.nil && $throwNilPointerError(), arg3)[4]); x6 = new $Uint64(0, 0); - p521CmovznzU64((x6$24ptr || (x6$24ptr = new ptrType(function() { return x6; }, function($v) { x6 = $v; }))), arg1, arg2[5], arg3[5]); + p521CmovznzU64((x6$24ptr || (x6$24ptr = new ptrType$1(function() { return x6; }, function($v) { x6 = $v; }))), arg1, (arg2 === ptrType$3.nil && $throwNilPointerError(), arg2)[5], (arg3 === ptrType$3.nil && $throwNilPointerError(), arg3)[5]); x7 = new $Uint64(0, 0); - p521CmovznzU64((x7$24ptr || (x7$24ptr = new ptrType(function() { return x7; }, function($v) { x7 = $v; }))), arg1, arg2[6], arg3[6]); + p521CmovznzU64((x7$24ptr || (x7$24ptr = new ptrType$1(function() { return x7; }, function($v) { x7 = $v; }))), arg1, (arg2 === ptrType$3.nil && $throwNilPointerError(), arg2)[6], (arg3 === ptrType$3.nil && $throwNilPointerError(), arg3)[6]); x8 = new $Uint64(0, 0); - p521CmovznzU64((x8$24ptr || (x8$24ptr = new ptrType(function() { return x8; }, function($v) { x8 = $v; }))), arg1, arg2[7], arg3[7]); + p521CmovznzU64((x8$24ptr || (x8$24ptr = new ptrType$1(function() { return x8; }, function($v) { x8 = $v; }))), arg1, (arg2 === ptrType$3.nil && $throwNilPointerError(), arg2)[7], (arg3 === ptrType$3.nil && $throwNilPointerError(), arg3)[7]); x9 = new $Uint64(0, 0); - p521CmovznzU64((x9$24ptr || (x9$24ptr = new ptrType(function() { return x9; }, function($v) { x9 = $v; }))), arg1, arg2[8], arg3[8]); + p521CmovznzU64((x9$24ptr || (x9$24ptr = new ptrType$1(function() { return x9; }, function($v) { x9 = $v; }))), arg1, (arg2 === ptrType$3.nil && $throwNilPointerError(), arg2)[8], (arg3 === ptrType$3.nil && $throwNilPointerError(), arg3)[8]); out1.nilCheck, out1[0] = x1; out1.nilCheck, out1[1] = x2; out1.nilCheck, out1[2] = x3; @@ -207023,15 +208321,15 @@ $packages["crypto/internal/nistec/fiat"] = (function() { }; p521ToBytes = function p521ToBytes$1(out1, arg1) { var arg1, out1, x, x1, x10, x100, x101, x102, x103, x104, x105, x106, x107, x108, x109, x11, x110, x111, x112, x113, x114, x115, x116, x117, x118, x119, x12, x120, x121, x122, x123, x13, x14, x15, x16, x17, x18, x19, x2, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x3, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x4, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x5, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x6, x60, x61, x62, x63, x64, x65, x66, x67, x68, x69, x7, x70, x71, x72, x73, x74, x75, x76, x77, x78, x79, x8, x80, x81, x82, x83, x84, x85, x86, x87, x88, x89, x9, x90, x91, x92, x93, x94, x95, x96, x97, x98, x99; - x1 = arg1[8]; - x2 = arg1[7]; - x3 = arg1[6]; - x4 = arg1[5]; - x5 = arg1[4]; - x6 = arg1[3]; - x7 = arg1[2]; - x8 = arg1[1]; - x9 = arg1[0]; + x1 = (arg1 === ptrType$3.nil && $throwNilPointerError(), arg1)[8]; + x2 = (arg1 === ptrType$3.nil && $throwNilPointerError(), arg1)[7]; + x3 = (arg1 === ptrType$3.nil && $throwNilPointerError(), arg1)[6]; + x4 = (arg1 === ptrType$3.nil && $throwNilPointerError(), arg1)[5]; + x5 = (arg1 === ptrType$3.nil && $throwNilPointerError(), arg1)[4]; + x6 = (arg1 === ptrType$3.nil && $throwNilPointerError(), arg1)[3]; + x7 = (arg1 === ptrType$3.nil && $throwNilPointerError(), arg1)[2]; + x8 = (arg1 === ptrType$3.nil && $throwNilPointerError(), arg1)[1]; + x9 = (arg1 === ptrType$3.nil && $throwNilPointerError(), arg1)[0]; x10 = ((((x9.$low << 24 >>> 24)) & 255) >>> 0); x11 = $shiftRightUint64(x9, 8); x12 = ((((x11.$low << 24 >>> 24)) & 255) >>> 0); @@ -207215,72 +208513,72 @@ $packages["crypto/internal/nistec/fiat"] = (function() { }; p521FromBytes = function p521FromBytes$1(out1, arg1) { var arg1, out1, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, x1, x10, x100, x101, x102, x103, x104, x105, x106, x107, x108, x109, x11, x110, x111, x112, x113, x114, x115, x116, x117, x118, x119, x12, x120, x121, x122, x123, x13, x14, x15, x16, x17, x18, x19, x2, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x3, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x4, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x5, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x6, x60, x61, x62, x63, x64, x65, x66, x67, x68, x69, x7, x70, x71, x72, x73, x74, x75, x76, x77, x78, x79, x8, x80, x81, x82, x83, x84, x85, x86, x87, x88, x89, x9, x90, x91, x92, x93, x94, x95, x96, x97, x98, x99; - x1 = $shiftLeft64(((x = (new p521Uint1(0, arg1[65])), new $Uint64(x.$high, x.$low))), 8); - x2 = arg1[64]; - x3 = $shiftLeft64((new $Uint64(0, arg1[63])), 56); - x4 = $shiftLeft64((new $Uint64(0, arg1[62])), 48); - x5 = $shiftLeft64((new $Uint64(0, arg1[61])), 40); - x6 = $shiftLeft64((new $Uint64(0, arg1[60])), 32); - x7 = $shiftLeft64((new $Uint64(0, arg1[59])), 24); - x8 = $shiftLeft64((new $Uint64(0, arg1[58])), 16); - x9 = $shiftLeft64((new $Uint64(0, arg1[57])), 8); - x10 = arg1[56]; - x11 = $shiftLeft64((new $Uint64(0, arg1[55])), 56); - x12 = $shiftLeft64((new $Uint64(0, arg1[54])), 48); - x13 = $shiftLeft64((new $Uint64(0, arg1[53])), 40); - x14 = $shiftLeft64((new $Uint64(0, arg1[52])), 32); - x15 = $shiftLeft64((new $Uint64(0, arg1[51])), 24); - x16 = $shiftLeft64((new $Uint64(0, arg1[50])), 16); - x17 = $shiftLeft64((new $Uint64(0, arg1[49])), 8); - x18 = arg1[48]; - x19 = $shiftLeft64((new $Uint64(0, arg1[47])), 56); - x20 = $shiftLeft64((new $Uint64(0, arg1[46])), 48); - x21 = $shiftLeft64((new $Uint64(0, arg1[45])), 40); - x22 = $shiftLeft64((new $Uint64(0, arg1[44])), 32); - x23 = $shiftLeft64((new $Uint64(0, arg1[43])), 24); - x24 = $shiftLeft64((new $Uint64(0, arg1[42])), 16); - x25 = $shiftLeft64((new $Uint64(0, arg1[41])), 8); - x26 = arg1[40]; - x27 = $shiftLeft64((new $Uint64(0, arg1[39])), 56); - x28 = $shiftLeft64((new $Uint64(0, arg1[38])), 48); - x29 = $shiftLeft64((new $Uint64(0, arg1[37])), 40); - x30 = $shiftLeft64((new $Uint64(0, arg1[36])), 32); - x31 = $shiftLeft64((new $Uint64(0, arg1[35])), 24); - x32 = $shiftLeft64((new $Uint64(0, arg1[34])), 16); - x33 = $shiftLeft64((new $Uint64(0, arg1[33])), 8); - x34 = arg1[32]; - x35 = $shiftLeft64((new $Uint64(0, arg1[31])), 56); - x36 = $shiftLeft64((new $Uint64(0, arg1[30])), 48); - x37 = $shiftLeft64((new $Uint64(0, arg1[29])), 40); - x38 = $shiftLeft64((new $Uint64(0, arg1[28])), 32); - x39 = $shiftLeft64((new $Uint64(0, arg1[27])), 24); - x40 = $shiftLeft64((new $Uint64(0, arg1[26])), 16); - x41 = $shiftLeft64((new $Uint64(0, arg1[25])), 8); - x42 = arg1[24]; - x43 = $shiftLeft64((new $Uint64(0, arg1[23])), 56); - x44 = $shiftLeft64((new $Uint64(0, arg1[22])), 48); - x45 = $shiftLeft64((new $Uint64(0, arg1[21])), 40); - x46 = $shiftLeft64((new $Uint64(0, arg1[20])), 32); - x47 = $shiftLeft64((new $Uint64(0, arg1[19])), 24); - x48 = $shiftLeft64((new $Uint64(0, arg1[18])), 16); - x49 = $shiftLeft64((new $Uint64(0, arg1[17])), 8); - x50 = arg1[16]; - x51 = $shiftLeft64((new $Uint64(0, arg1[15])), 56); - x52 = $shiftLeft64((new $Uint64(0, arg1[14])), 48); - x53 = $shiftLeft64((new $Uint64(0, arg1[13])), 40); - x54 = $shiftLeft64((new $Uint64(0, arg1[12])), 32); - x55 = $shiftLeft64((new $Uint64(0, arg1[11])), 24); - x56 = $shiftLeft64((new $Uint64(0, arg1[10])), 16); - x57 = $shiftLeft64((new $Uint64(0, arg1[9])), 8); - x58 = arg1[8]; - x59 = $shiftLeft64((new $Uint64(0, arg1[7])), 56); - x60 = $shiftLeft64((new $Uint64(0, arg1[6])), 48); - x61 = $shiftLeft64((new $Uint64(0, arg1[5])), 40); - x62 = $shiftLeft64((new $Uint64(0, arg1[4])), 32); - x63 = $shiftLeft64((new $Uint64(0, arg1[3])), 24); - x64 = $shiftLeft64((new $Uint64(0, arg1[2])), 16); - x65 = $shiftLeft64((new $Uint64(0, arg1[1])), 8); - x66 = arg1[0]; + x1 = $shiftLeft64(((x = (new p521Uint1(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[65])), new $Uint64(x.$high, x.$low))), 8); + x2 = (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[64]; + x3 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[63])), 56); + x4 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[62])), 48); + x5 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[61])), 40); + x6 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[60])), 32); + x7 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[59])), 24); + x8 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[58])), 16); + x9 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[57])), 8); + x10 = (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[56]; + x11 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[55])), 56); + x12 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[54])), 48); + x13 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[53])), 40); + x14 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[52])), 32); + x15 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[51])), 24); + x16 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[50])), 16); + x17 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[49])), 8); + x18 = (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[48]; + x19 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[47])), 56); + x20 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[46])), 48); + x21 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[45])), 40); + x22 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[44])), 32); + x23 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[43])), 24); + x24 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[42])), 16); + x25 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[41])), 8); + x26 = (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[40]; + x27 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[39])), 56); + x28 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[38])), 48); + x29 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[37])), 40); + x30 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[36])), 32); + x31 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[35])), 24); + x32 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[34])), 16); + x33 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[33])), 8); + x34 = (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[32]; + x35 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[31])), 56); + x36 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[30])), 48); + x37 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[29])), 40); + x38 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[28])), 32); + x39 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[27])), 24); + x40 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[26])), 16); + x41 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[25])), 8); + x42 = (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[24]; + x43 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[23])), 56); + x44 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[22])), 48); + x45 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[21])), 40); + x46 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[20])), 32); + x47 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[19])), 24); + x48 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[18])), 16); + x49 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[17])), 8); + x50 = (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[16]; + x51 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[15])), 56); + x52 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[14])), 48); + x53 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[13])), 40); + x54 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[12])), 32); + x55 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[11])), 24); + x56 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[10])), 16); + x57 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[9])), 8); + x58 = (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[8]; + x59 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[7])), 56); + x60 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[6])), 48); + x61 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[5])), 40); + x62 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[4])), 32); + x63 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[3])), 24); + x64 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[2])), 16); + x65 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[1])), 8); + x66 = (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[0]; x67 = (x$1 = (new $Uint64(0, x66)), new $Uint64(x65.$high + x$1.$high, x65.$low + x$1.$low)); x68 = new $Uint64(x64.$high + x67.$high, x64.$low + x67.$low); x69 = new $Uint64(x63.$high + x68.$high, x63.$low + x68.$low); @@ -207393,7 +208691,7 @@ $packages["crypto/internal/nistec/fiat"] = (function() { var _i, _ref, e, i, in$1, minusOneEncoding, tmp, v; e = this; if (!((v.$length === 66))) { - return [ptrType$1.nil, errors.New("invalid P521Element encoding")]; + return [ptrType$5.nil, errors.New("invalid P521Element encoding")]; } minusOneEncoding = new P521Element.ptr(arrayType.zero()).Sub(new P521Element.ptr(arrayType.zero()), new P521Element.ptr(arrayType.zero()).One()).Bytes(); _ref = v; @@ -207405,7 +208703,7 @@ $packages["crypto/internal/nistec/fiat"] = (function() { break; } if (((i < 0 || i >= v.$length) ? ($throwRuntimeError("index out of range"), undefined) : v.$array[v.$offset + i]) > ((i < 0 || i >= minusOneEncoding.$length) ? ($throwRuntimeError("index out of range"), undefined) : minusOneEncoding.$array[minusOneEncoding.$offset + i])) { - return [ptrType$1.nil, errors.New("invalid P521Element encoding")]; + return [ptrType$5.nil, errors.New("invalid P521Element encoding")]; } _i++; } @@ -207568,40 +208866,40 @@ $packages["crypto/internal/nistec/fiat"] = (function() { }; p384Mul = function p384Mul$1(out1, arg1, arg2) { var _tuple, _tuple$1, _tuple$10, _tuple$100, _tuple$101, _tuple$102, _tuple$103, _tuple$104, _tuple$105, _tuple$106, _tuple$107, _tuple$108, _tuple$109, _tuple$11, _tuple$110, _tuple$111, _tuple$112, _tuple$113, _tuple$114, _tuple$115, _tuple$116, _tuple$117, _tuple$118, _tuple$119, _tuple$12, _tuple$120, _tuple$121, _tuple$122, _tuple$123, _tuple$124, _tuple$125, _tuple$126, _tuple$127, _tuple$128, _tuple$129, _tuple$13, _tuple$130, _tuple$131, _tuple$132, _tuple$133, _tuple$134, _tuple$135, _tuple$136, _tuple$137, _tuple$138, _tuple$139, _tuple$14, _tuple$140, _tuple$141, _tuple$142, _tuple$143, _tuple$144, _tuple$145, _tuple$146, _tuple$147, _tuple$148, _tuple$149, _tuple$15, _tuple$150, _tuple$151, _tuple$152, _tuple$153, _tuple$154, _tuple$155, _tuple$156, _tuple$157, _tuple$158, _tuple$159, _tuple$16, _tuple$160, _tuple$161, _tuple$162, _tuple$163, _tuple$164, _tuple$165, _tuple$166, _tuple$167, _tuple$168, _tuple$169, _tuple$17, _tuple$170, _tuple$171, _tuple$172, _tuple$173, _tuple$174, _tuple$175, _tuple$176, _tuple$177, _tuple$178, _tuple$179, _tuple$18, _tuple$180, _tuple$181, _tuple$182, _tuple$183, _tuple$184, _tuple$185, _tuple$186, _tuple$187, _tuple$188, _tuple$189, _tuple$19, _tuple$190, _tuple$191, _tuple$192, _tuple$193, _tuple$194, _tuple$195, _tuple$196, _tuple$197, _tuple$198, _tuple$199, _tuple$2, _tuple$20, _tuple$200, _tuple$201, _tuple$202, _tuple$203, _tuple$204, _tuple$205, _tuple$206, _tuple$207, _tuple$208, _tuple$209, _tuple$21, _tuple$210, _tuple$211, _tuple$212, _tuple$213, _tuple$214, _tuple$215, _tuple$216, _tuple$217, _tuple$218, _tuple$219, _tuple$22, _tuple$220, _tuple$221, _tuple$23, _tuple$24, _tuple$25, _tuple$26, _tuple$27, _tuple$28, _tuple$29, _tuple$3, _tuple$30, _tuple$31, _tuple$32, _tuple$33, _tuple$34, _tuple$35, _tuple$36, _tuple$37, _tuple$38, _tuple$39, _tuple$4, _tuple$40, _tuple$41, _tuple$42, _tuple$43, _tuple$44, _tuple$45, _tuple$46, _tuple$47, _tuple$48, _tuple$49, _tuple$5, _tuple$50, _tuple$51, _tuple$52, _tuple$53, _tuple$54, _tuple$55, _tuple$56, _tuple$57, _tuple$58, _tuple$59, _tuple$6, _tuple$60, _tuple$61, _tuple$62, _tuple$63, _tuple$64, _tuple$65, _tuple$66, _tuple$67, _tuple$68, _tuple$69, _tuple$7, _tuple$70, _tuple$71, _tuple$72, _tuple$73, _tuple$74, _tuple$75, _tuple$76, _tuple$77, _tuple$78, _tuple$79, _tuple$8, _tuple$80, _tuple$81, _tuple$82, _tuple$83, _tuple$84, _tuple$85, _tuple$86, _tuple$87, _tuple$88, _tuple$89, _tuple$9, _tuple$90, _tuple$91, _tuple$92, _tuple$93, _tuple$94, _tuple$95, _tuple$96, _tuple$97, _tuple$98, _tuple$99, arg1, arg2, out1, x, x$1, x$10, x$100, x$101, x$102, x$103, x$104, x$105, x$106, x$107, x$108, x$109, x$11, x$110, x$111, x$112, x$113, x$114, x$115, x$116, x$117, x$118, x$119, x$12, x$120, x$121, x$122, x$123, x$124, x$125, x$126, x$127, x$128, x$129, x$13, x$130, x$131, x$132, x$133, x$134, x$135, x$136, x$137, x$138, x$139, x$14, x$140, x$141, x$142, x$143, x$144, x$145, x$146, x$147, x$148, x$149, x$15, x$150, x$151, x$152, x$153, x$154, x$155, x$156, x$157, x$158, x$159, x$16, x$160, x$161, x$162, x$163, x$164, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$25, x$26, x$27, x$28, x$29, x$3, x$30, x$31, x$32, x$33, x$34, x$35, x$36, x$37, x$38, x$39, x$4, x$40, x$41, x$42, x$43, x$44, x$45, x$46, x$47, x$48, x$49, x$5, x$50, x$51, x$52, x$53, x$54, x$55, x$56, x$57, x$58, x$59, x$6, x$60, x$61, x$62, x$63, x$64, x$65, x$66, x$67, x$68, x$69, x$7, x$70, x$71, x$72, x$73, x$74, x$75, x$76, x$77, x$78, x$79, x$8, x$80, x$81, x$82, x$83, x$84, x$85, x$86, x$87, x$88, x$89, x$9, x$90, x$91, x$92, x$93, x$94, x$95, x$96, x$97, x$98, x$99, x1, x10, x100, x101, x102, x103, x104, x105, x106, x108, x109, x11, x110, x111, x112, x113, x114, x115, x116, x117, x118, x119, x12, x120, x121, x122, x123, x124, x125, x126, x127, x128, x129, x13, x130, x132, x133, x134, x135, x136, x137, x138, x139, x14, x140, x141, x142, x143, x144, x145, x146, x147, x148, x149, x15, x150, x151, x152, x153, x154, x155, x156, x157, x158, x159, x16, x160, x161, x162, x163, x164, x165, x166, x167, x168, x169, x17, x170, x171, x172, x173, x174, x175, x176, x177, x178, x179, x18, x180, x181, x182, x183, x185, x186, x187, x188, x189, x19, x190, x191, x192, x193, x194, x195, x196, x197, x198, x199, x2, x20, x200, x201, x202, x203, x204, x205, x206, x207, x209, x21, x210, x211, x212, x213, x214, x215, x216, x217, x218, x219, x22, x220, x221, x222, x223, x224, x225, x226, x227, x228, x229, x23, x230, x231, x232, x233, x234, x235, x236, x237, x238, x239, x24, x240, x241, x242, x243, x244, x245, x246, x247, x248, x249, x25, x250, x251, x252, x253, x254, x255, x256, x257, x258, x259, x26, x260, x262, x263, x264, x265, x266, x267, x268, x269, x27, x270, x271, x272, x273, x274, x275, x276, x277, x278, x279, x28, x280, x281, x282, x283, x284, x286, x287, x288, x289, x29, x290, x291, x292, x293, x294, x295, x296, x297, x298, x299, x3, x30, x300, x301, x302, x303, x304, x305, x306, x307, x308, x309, x310, x311, x312, x313, x314, x315, x316, x317, x318, x319, x32, x320, x321, x322, x323, x324, x325, x326, x327, x328, x329, x33, x330, x331, x332, x333, x334, x335, x336, x337, x339, x34, x340, x341, x342, x343, x344, x345, x346, x347, x348, x349, x35, x350, x351, x352, x353, x354, x355, x356, x357, x358, x359, x36, x360, x361, x363, x364, x365, x366, x367, x368, x369, x37, x370, x371, x372, x373, x374, x375, x376, x377, x378, x379, x38, x380, x381, x382, x383, x384, x385, x386, x387, x388, x389, x39, x390, x391, x392, x393, x394, x395, x396, x397, x398, x399, x4, x40, x400, x401, x402, x403, x404, x405, x406, x407, x408, x409, x41, x410, x411, x412, x413, x414, x416, x417, x418, x419, x42, x420, x421, x422, x423, x424, x425, x426, x427, x428, x429, x43, x430, x431, x432, x433, x434, x435, x436, x437, x438, x44, x440, x441, x442, x443, x444, x445, x446, x447, x448, x449, x45, x450, x451, x452, x453, x454, x455, x456, x457, x458, x459, x46, x460, x461, x462, x463, x464, x465, x467, x468, x468$24ptr, x469, x469$24ptr, x47, x470, x470$24ptr, x471, x471$24ptr, x472, x472$24ptr, x473, x473$24ptr, x48, x49, x5, x50, x51, x52, x53, x54, x56, x57, x58, x59, x6, x60, x61, x62, x63, x64, x65, x66, x67, x68, x69, x7, x70, x71, x72, x73, x74, x75, x76, x77, x78, x79, x8, x80, x81, x82, x83, x84, x85, x86, x87, x88, x89, x9, x90, x91, x92, x93, x94, x95, x96, x97, x98, x99; - x1 = arg1[1]; - x2 = arg1[2]; - x3 = arg1[3]; - x4 = arg1[4]; - x5 = arg1[5]; - x6 = arg1[0]; + x1 = (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[1]; + x2 = (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[2]; + x3 = (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[3]; + x4 = (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[4]; + x5 = (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[5]; + x6 = (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[0]; x7 = new $Uint64(0, 0); x8 = new $Uint64(0, 0); - _tuple = bits.Mul64(x6, arg2[5]); + _tuple = bits.Mul64(x6, (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[5]); x8 = _tuple[0]; x7 = _tuple[1]; x9 = new $Uint64(0, 0); x10 = new $Uint64(0, 0); - _tuple$1 = bits.Mul64(x6, arg2[4]); + _tuple$1 = bits.Mul64(x6, (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[4]); x10 = _tuple$1[0]; x9 = _tuple$1[1]; x11 = new $Uint64(0, 0); x12 = new $Uint64(0, 0); - _tuple$2 = bits.Mul64(x6, arg2[3]); + _tuple$2 = bits.Mul64(x6, (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[3]); x12 = _tuple$2[0]; x11 = _tuple$2[1]; x13 = new $Uint64(0, 0); x14 = new $Uint64(0, 0); - _tuple$3 = bits.Mul64(x6, arg2[2]); + _tuple$3 = bits.Mul64(x6, (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[2]); x14 = _tuple$3[0]; x13 = _tuple$3[1]; x15 = new $Uint64(0, 0); x16 = new $Uint64(0, 0); - _tuple$4 = bits.Mul64(x6, arg2[1]); + _tuple$4 = bits.Mul64(x6, (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[1]); x16 = _tuple$4[0]; x15 = _tuple$4[1]; x17 = new $Uint64(0, 0); x18 = new $Uint64(0, 0); - _tuple$5 = bits.Mul64(x6, arg2[0]); + _tuple$5 = bits.Mul64(x6, (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[0]); x18 = _tuple$5[0]; x17 = _tuple$5[1]; x19 = new $Uint64(0, 0); @@ -207724,32 +209022,32 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x68 = _tuple$29[1]; x69 = new $Uint64(0, 0); x70 = new $Uint64(0, 0); - _tuple$30 = bits.Mul64(x1, arg2[5]); + _tuple$30 = bits.Mul64(x1, (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[5]); x70 = _tuple$30[0]; x69 = _tuple$30[1]; x71 = new $Uint64(0, 0); x72 = new $Uint64(0, 0); - _tuple$31 = bits.Mul64(x1, arg2[4]); + _tuple$31 = bits.Mul64(x1, (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[4]); x72 = _tuple$31[0]; x71 = _tuple$31[1]; x73 = new $Uint64(0, 0); x74 = new $Uint64(0, 0); - _tuple$32 = bits.Mul64(x1, arg2[3]); + _tuple$32 = bits.Mul64(x1, (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[3]); x74 = _tuple$32[0]; x73 = _tuple$32[1]; x75 = new $Uint64(0, 0); x76 = new $Uint64(0, 0); - _tuple$33 = bits.Mul64(x1, arg2[2]); + _tuple$33 = bits.Mul64(x1, (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[2]); x76 = _tuple$33[0]; x75 = _tuple$33[1]; x77 = new $Uint64(0, 0); x78 = new $Uint64(0, 0); - _tuple$34 = bits.Mul64(x1, arg2[1]); + _tuple$34 = bits.Mul64(x1, (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[1]); x78 = _tuple$34[0]; x77 = _tuple$34[1]; x79 = new $Uint64(0, 0); x80 = new $Uint64(0, 0); - _tuple$35 = bits.Mul64(x1, arg2[0]); + _tuple$35 = bits.Mul64(x1, (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[0]); x80 = _tuple$35[0]; x79 = _tuple$35[1]; x81 = new $Uint64(0, 0); @@ -207908,32 +209206,32 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x145 = (x$43 = ((x$44 = (new p384Uint1(x144.$high, x144.$low)), new $Uint64(x$44.$high, x$44.$low))), x$45 = ((x$46 = (new p384Uint1(x105.$high, x105.$low)), new $Uint64(x$46.$high, x$46.$low))), new $Uint64(x$43.$high + x$45.$high, x$43.$low + x$45.$low)); x146 = new $Uint64(0, 0); x147 = new $Uint64(0, 0); - _tuple$67 = bits.Mul64(x2, arg2[5]); + _tuple$67 = bits.Mul64(x2, (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[5]); x147 = _tuple$67[0]; x146 = _tuple$67[1]; x148 = new $Uint64(0, 0); x149 = new $Uint64(0, 0); - _tuple$68 = bits.Mul64(x2, arg2[4]); + _tuple$68 = bits.Mul64(x2, (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[4]); x149 = _tuple$68[0]; x148 = _tuple$68[1]; x150 = new $Uint64(0, 0); x151 = new $Uint64(0, 0); - _tuple$69 = bits.Mul64(x2, arg2[3]); + _tuple$69 = bits.Mul64(x2, (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[3]); x151 = _tuple$69[0]; x150 = _tuple$69[1]; x152 = new $Uint64(0, 0); x153 = new $Uint64(0, 0); - _tuple$70 = bits.Mul64(x2, arg2[2]); + _tuple$70 = bits.Mul64(x2, (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[2]); x153 = _tuple$70[0]; x152 = _tuple$70[1]; x154 = new $Uint64(0, 0); x155 = new $Uint64(0, 0); - _tuple$71 = bits.Mul64(x2, arg2[1]); + _tuple$71 = bits.Mul64(x2, (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[1]); x155 = _tuple$71[0]; x154 = _tuple$71[1]; x156 = new $Uint64(0, 0); x157 = new $Uint64(0, 0); - _tuple$72 = bits.Mul64(x2, arg2[0]); + _tuple$72 = bits.Mul64(x2, (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[0]); x157 = _tuple$72[0]; x156 = _tuple$72[1]; x158 = new $Uint64(0, 0); @@ -208092,32 +209390,32 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x222 = (x$71 = ((x$72 = (new p384Uint1(x221.$high, x221.$low)), new $Uint64(x$72.$high, x$72.$low))), x$73 = ((x$74 = (new p384Uint1(x182.$high, x182.$low)), new $Uint64(x$74.$high, x$74.$low))), new $Uint64(x$71.$high + x$73.$high, x$71.$low + x$73.$low)); x223 = new $Uint64(0, 0); x224 = new $Uint64(0, 0); - _tuple$104 = bits.Mul64(x3, arg2[5]); + _tuple$104 = bits.Mul64(x3, (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[5]); x224 = _tuple$104[0]; x223 = _tuple$104[1]; x225 = new $Uint64(0, 0); x226 = new $Uint64(0, 0); - _tuple$105 = bits.Mul64(x3, arg2[4]); + _tuple$105 = bits.Mul64(x3, (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[4]); x226 = _tuple$105[0]; x225 = _tuple$105[1]; x227 = new $Uint64(0, 0); x228 = new $Uint64(0, 0); - _tuple$106 = bits.Mul64(x3, arg2[3]); + _tuple$106 = bits.Mul64(x3, (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[3]); x228 = _tuple$106[0]; x227 = _tuple$106[1]; x229 = new $Uint64(0, 0); x230 = new $Uint64(0, 0); - _tuple$107 = bits.Mul64(x3, arg2[2]); + _tuple$107 = bits.Mul64(x3, (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[2]); x230 = _tuple$107[0]; x229 = _tuple$107[1]; x231 = new $Uint64(0, 0); x232 = new $Uint64(0, 0); - _tuple$108 = bits.Mul64(x3, arg2[1]); + _tuple$108 = bits.Mul64(x3, (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[1]); x232 = _tuple$108[0]; x231 = _tuple$108[1]; x233 = new $Uint64(0, 0); x234 = new $Uint64(0, 0); - _tuple$109 = bits.Mul64(x3, arg2[0]); + _tuple$109 = bits.Mul64(x3, (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[0]); x234 = _tuple$109[0]; x233 = _tuple$109[1]; x235 = new $Uint64(0, 0); @@ -208276,32 +209574,32 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x299 = (x$99 = ((x$100 = (new p384Uint1(x298.$high, x298.$low)), new $Uint64(x$100.$high, x$100.$low))), x$101 = ((x$102 = (new p384Uint1(x259.$high, x259.$low)), new $Uint64(x$102.$high, x$102.$low))), new $Uint64(x$99.$high + x$101.$high, x$99.$low + x$101.$low)); x300 = new $Uint64(0, 0); x301 = new $Uint64(0, 0); - _tuple$141 = bits.Mul64(x4, arg2[5]); + _tuple$141 = bits.Mul64(x4, (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[5]); x301 = _tuple$141[0]; x300 = _tuple$141[1]; x302 = new $Uint64(0, 0); x303 = new $Uint64(0, 0); - _tuple$142 = bits.Mul64(x4, arg2[4]); + _tuple$142 = bits.Mul64(x4, (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[4]); x303 = _tuple$142[0]; x302 = _tuple$142[1]; x304 = new $Uint64(0, 0); x305 = new $Uint64(0, 0); - _tuple$143 = bits.Mul64(x4, arg2[3]); + _tuple$143 = bits.Mul64(x4, (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[3]); x305 = _tuple$143[0]; x304 = _tuple$143[1]; x306 = new $Uint64(0, 0); x307 = new $Uint64(0, 0); - _tuple$144 = bits.Mul64(x4, arg2[2]); + _tuple$144 = bits.Mul64(x4, (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[2]); x307 = _tuple$144[0]; x306 = _tuple$144[1]; x308 = new $Uint64(0, 0); x309 = new $Uint64(0, 0); - _tuple$145 = bits.Mul64(x4, arg2[1]); + _tuple$145 = bits.Mul64(x4, (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[1]); x309 = _tuple$145[0]; x308 = _tuple$145[1]; x310 = new $Uint64(0, 0); x311 = new $Uint64(0, 0); - _tuple$146 = bits.Mul64(x4, arg2[0]); + _tuple$146 = bits.Mul64(x4, (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[0]); x311 = _tuple$146[0]; x310 = _tuple$146[1]; x312 = new $Uint64(0, 0); @@ -208460,32 +209758,32 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x376 = (x$127 = ((x$128 = (new p384Uint1(x375.$high, x375.$low)), new $Uint64(x$128.$high, x$128.$low))), x$129 = ((x$130 = (new p384Uint1(x336.$high, x336.$low)), new $Uint64(x$130.$high, x$130.$low))), new $Uint64(x$127.$high + x$129.$high, x$127.$low + x$129.$low)); x377 = new $Uint64(0, 0); x378 = new $Uint64(0, 0); - _tuple$178 = bits.Mul64(x5, arg2[5]); + _tuple$178 = bits.Mul64(x5, (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[5]); x378 = _tuple$178[0]; x377 = _tuple$178[1]; x379 = new $Uint64(0, 0); x380 = new $Uint64(0, 0); - _tuple$179 = bits.Mul64(x5, arg2[4]); + _tuple$179 = bits.Mul64(x5, (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[4]); x380 = _tuple$179[0]; x379 = _tuple$179[1]; x381 = new $Uint64(0, 0); x382 = new $Uint64(0, 0); - _tuple$180 = bits.Mul64(x5, arg2[3]); + _tuple$180 = bits.Mul64(x5, (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[3]); x382 = _tuple$180[0]; x381 = _tuple$180[1]; x383 = new $Uint64(0, 0); x384 = new $Uint64(0, 0); - _tuple$181 = bits.Mul64(x5, arg2[2]); + _tuple$181 = bits.Mul64(x5, (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[2]); x384 = _tuple$181[0]; x383 = _tuple$181[1]; x385 = new $Uint64(0, 0); x386 = new $Uint64(0, 0); - _tuple$182 = bits.Mul64(x5, arg2[1]); + _tuple$182 = bits.Mul64(x5, (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[1]); x386 = _tuple$182[0]; x385 = _tuple$182[1]; x387 = new $Uint64(0, 0); x388 = new $Uint64(0, 0); - _tuple$183 = bits.Mul64(x5, arg2[0]); + _tuple$183 = bits.Mul64(x5, (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[0]); x388 = _tuple$183[0]; x387 = _tuple$183[1]; x389 = new $Uint64(0, 0); @@ -208676,17 +209974,17 @@ $packages["crypto/internal/nistec/fiat"] = (function() { _tuple$221 = bits.Sub64(x453, new $Uint64(0, 0), ((x$164 = (new p384Uint1(x465.$high, x465.$low)), new $Uint64(x$164.$high, x$164.$low)))); x467 = _tuple$221[1]; x468 = new $Uint64(0, 0); - p384CmovznzU64((x468$24ptr || (x468$24ptr = new ptrType(function() { return x468; }, function($v) { x468 = $v; }))), (new p384Uint1(x467.$high, x467.$low)), x454, x441); + p384CmovznzU64((x468$24ptr || (x468$24ptr = new ptrType$1(function() { return x468; }, function($v) { x468 = $v; }))), (new p384Uint1(x467.$high, x467.$low)), x454, x441); x469 = new $Uint64(0, 0); - p384CmovznzU64((x469$24ptr || (x469$24ptr = new ptrType(function() { return x469; }, function($v) { x469 = $v; }))), (new p384Uint1(x467.$high, x467.$low)), x456, x443); + p384CmovznzU64((x469$24ptr || (x469$24ptr = new ptrType$1(function() { return x469; }, function($v) { x469 = $v; }))), (new p384Uint1(x467.$high, x467.$low)), x456, x443); x470 = new $Uint64(0, 0); - p384CmovznzU64((x470$24ptr || (x470$24ptr = new ptrType(function() { return x470; }, function($v) { x470 = $v; }))), (new p384Uint1(x467.$high, x467.$low)), x458, x445); + p384CmovznzU64((x470$24ptr || (x470$24ptr = new ptrType$1(function() { return x470; }, function($v) { x470 = $v; }))), (new p384Uint1(x467.$high, x467.$low)), x458, x445); x471 = new $Uint64(0, 0); - p384CmovznzU64((x471$24ptr || (x471$24ptr = new ptrType(function() { return x471; }, function($v) { x471 = $v; }))), (new p384Uint1(x467.$high, x467.$low)), x460, x447); + p384CmovznzU64((x471$24ptr || (x471$24ptr = new ptrType$1(function() { return x471; }, function($v) { x471 = $v; }))), (new p384Uint1(x467.$high, x467.$low)), x460, x447); x472 = new $Uint64(0, 0); - p384CmovznzU64((x472$24ptr || (x472$24ptr = new ptrType(function() { return x472; }, function($v) { x472 = $v; }))), (new p384Uint1(x467.$high, x467.$low)), x462, x449); + p384CmovznzU64((x472$24ptr || (x472$24ptr = new ptrType$1(function() { return x472; }, function($v) { x472 = $v; }))), (new p384Uint1(x467.$high, x467.$low)), x462, x449); x473 = new $Uint64(0, 0); - p384CmovznzU64((x473$24ptr || (x473$24ptr = new ptrType(function() { return x473; }, function($v) { x473 = $v; }))), (new p384Uint1(x467.$high, x467.$low)), x464, x451); + p384CmovznzU64((x473$24ptr || (x473$24ptr = new ptrType$1(function() { return x473; }, function($v) { x473 = $v; }))), (new p384Uint1(x467.$high, x467.$low)), x464, x451); out1.nilCheck, out1[0] = x468; out1.nilCheck, out1[1] = x469; out1.nilCheck, out1[2] = x470; @@ -208696,40 +209994,40 @@ $packages["crypto/internal/nistec/fiat"] = (function() { }; p384Square = function p384Square$1(out1, arg1) { var _tuple, _tuple$1, _tuple$10, _tuple$100, _tuple$101, _tuple$102, _tuple$103, _tuple$104, _tuple$105, _tuple$106, _tuple$107, _tuple$108, _tuple$109, _tuple$11, _tuple$110, _tuple$111, _tuple$112, _tuple$113, _tuple$114, _tuple$115, _tuple$116, _tuple$117, _tuple$118, _tuple$119, _tuple$12, _tuple$120, _tuple$121, _tuple$122, _tuple$123, _tuple$124, _tuple$125, _tuple$126, _tuple$127, _tuple$128, _tuple$129, _tuple$13, _tuple$130, _tuple$131, _tuple$132, _tuple$133, _tuple$134, _tuple$135, _tuple$136, _tuple$137, _tuple$138, _tuple$139, _tuple$14, _tuple$140, _tuple$141, _tuple$142, _tuple$143, _tuple$144, _tuple$145, _tuple$146, _tuple$147, _tuple$148, _tuple$149, _tuple$15, _tuple$150, _tuple$151, _tuple$152, _tuple$153, _tuple$154, _tuple$155, _tuple$156, _tuple$157, _tuple$158, _tuple$159, _tuple$16, _tuple$160, _tuple$161, _tuple$162, _tuple$163, _tuple$164, _tuple$165, _tuple$166, _tuple$167, _tuple$168, _tuple$169, _tuple$17, _tuple$170, _tuple$171, _tuple$172, _tuple$173, _tuple$174, _tuple$175, _tuple$176, _tuple$177, _tuple$178, _tuple$179, _tuple$18, _tuple$180, _tuple$181, _tuple$182, _tuple$183, _tuple$184, _tuple$185, _tuple$186, _tuple$187, _tuple$188, _tuple$189, _tuple$19, _tuple$190, _tuple$191, _tuple$192, _tuple$193, _tuple$194, _tuple$195, _tuple$196, _tuple$197, _tuple$198, _tuple$199, _tuple$2, _tuple$20, _tuple$200, _tuple$201, _tuple$202, _tuple$203, _tuple$204, _tuple$205, _tuple$206, _tuple$207, _tuple$208, _tuple$209, _tuple$21, _tuple$210, _tuple$211, _tuple$212, _tuple$213, _tuple$214, _tuple$215, _tuple$216, _tuple$217, _tuple$218, _tuple$219, _tuple$22, _tuple$220, _tuple$221, _tuple$23, _tuple$24, _tuple$25, _tuple$26, _tuple$27, _tuple$28, _tuple$29, _tuple$3, _tuple$30, _tuple$31, _tuple$32, _tuple$33, _tuple$34, _tuple$35, _tuple$36, _tuple$37, _tuple$38, _tuple$39, _tuple$4, _tuple$40, _tuple$41, _tuple$42, _tuple$43, _tuple$44, _tuple$45, _tuple$46, _tuple$47, _tuple$48, _tuple$49, _tuple$5, _tuple$50, _tuple$51, _tuple$52, _tuple$53, _tuple$54, _tuple$55, _tuple$56, _tuple$57, _tuple$58, _tuple$59, _tuple$6, _tuple$60, _tuple$61, _tuple$62, _tuple$63, _tuple$64, _tuple$65, _tuple$66, _tuple$67, _tuple$68, _tuple$69, _tuple$7, _tuple$70, _tuple$71, _tuple$72, _tuple$73, _tuple$74, _tuple$75, _tuple$76, _tuple$77, _tuple$78, _tuple$79, _tuple$8, _tuple$80, _tuple$81, _tuple$82, _tuple$83, _tuple$84, _tuple$85, _tuple$86, _tuple$87, _tuple$88, _tuple$89, _tuple$9, _tuple$90, _tuple$91, _tuple$92, _tuple$93, _tuple$94, _tuple$95, _tuple$96, _tuple$97, _tuple$98, _tuple$99, arg1, out1, x, x$1, x$10, x$100, x$101, x$102, x$103, x$104, x$105, x$106, x$107, x$108, x$109, x$11, x$110, x$111, x$112, x$113, x$114, x$115, x$116, x$117, x$118, x$119, x$12, x$120, x$121, x$122, x$123, x$124, x$125, x$126, x$127, x$128, x$129, x$13, x$130, x$131, x$132, x$133, x$134, x$135, x$136, x$137, x$138, x$139, x$14, x$140, x$141, x$142, x$143, x$144, x$145, x$146, x$147, x$148, x$149, x$15, x$150, x$151, x$152, x$153, x$154, x$155, x$156, x$157, x$158, x$159, x$16, x$160, x$161, x$162, x$163, x$164, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$25, x$26, x$27, x$28, x$29, x$3, x$30, x$31, x$32, x$33, x$34, x$35, x$36, x$37, x$38, x$39, x$4, x$40, x$41, x$42, x$43, x$44, x$45, x$46, x$47, x$48, x$49, x$5, x$50, x$51, x$52, x$53, x$54, x$55, x$56, x$57, x$58, x$59, x$6, x$60, x$61, x$62, x$63, x$64, x$65, x$66, x$67, x$68, x$69, x$7, x$70, x$71, x$72, x$73, x$74, x$75, x$76, x$77, x$78, x$79, x$8, x$80, x$81, x$82, x$83, x$84, x$85, x$86, x$87, x$88, x$89, x$9, x$90, x$91, x$92, x$93, x$94, x$95, x$96, x$97, x$98, x$99, x1, x10, x100, x101, x102, x103, x104, x105, x106, x108, x109, x11, x110, x111, x112, x113, x114, x115, x116, x117, x118, x119, x12, x120, x121, x122, x123, x124, x125, x126, x127, x128, x129, x13, x130, x132, x133, x134, x135, x136, x137, x138, x139, x14, x140, x141, x142, x143, x144, x145, x146, x147, x148, x149, x15, x150, x151, x152, x153, x154, x155, x156, x157, x158, x159, x16, x160, x161, x162, x163, x164, x165, x166, x167, x168, x169, x17, x170, x171, x172, x173, x174, x175, x176, x177, x178, x179, x18, x180, x181, x182, x183, x185, x186, x187, x188, x189, x19, x190, x191, x192, x193, x194, x195, x196, x197, x198, x199, x2, x20, x200, x201, x202, x203, x204, x205, x206, x207, x209, x21, x210, x211, x212, x213, x214, x215, x216, x217, x218, x219, x22, x220, x221, x222, x223, x224, x225, x226, x227, x228, x229, x23, x230, x231, x232, x233, x234, x235, x236, x237, x238, x239, x24, x240, x241, x242, x243, x244, x245, x246, x247, x248, x249, x25, x250, x251, x252, x253, x254, x255, x256, x257, x258, x259, x26, x260, x262, x263, x264, x265, x266, x267, x268, x269, x27, x270, x271, x272, x273, x274, x275, x276, x277, x278, x279, x28, x280, x281, x282, x283, x284, x286, x287, x288, x289, x29, x290, x291, x292, x293, x294, x295, x296, x297, x298, x299, x3, x30, x300, x301, x302, x303, x304, x305, x306, x307, x308, x309, x310, x311, x312, x313, x314, x315, x316, x317, x318, x319, x32, x320, x321, x322, x323, x324, x325, x326, x327, x328, x329, x33, x330, x331, x332, x333, x334, x335, x336, x337, x339, x34, x340, x341, x342, x343, x344, x345, x346, x347, x348, x349, x35, x350, x351, x352, x353, x354, x355, x356, x357, x358, x359, x36, x360, x361, x363, x364, x365, x366, x367, x368, x369, x37, x370, x371, x372, x373, x374, x375, x376, x377, x378, x379, x38, x380, x381, x382, x383, x384, x385, x386, x387, x388, x389, x39, x390, x391, x392, x393, x394, x395, x396, x397, x398, x399, x4, x40, x400, x401, x402, x403, x404, x405, x406, x407, x408, x409, x41, x410, x411, x412, x413, x414, x416, x417, x418, x419, x42, x420, x421, x422, x423, x424, x425, x426, x427, x428, x429, x43, x430, x431, x432, x433, x434, x435, x436, x437, x438, x44, x440, x441, x442, x443, x444, x445, x446, x447, x448, x449, x45, x450, x451, x452, x453, x454, x455, x456, x457, x458, x459, x46, x460, x461, x462, x463, x464, x465, x467, x468, x468$24ptr, x469, x469$24ptr, x47, x470, x470$24ptr, x471, x471$24ptr, x472, x472$24ptr, x473, x473$24ptr, x48, x49, x5, x50, x51, x52, x53, x54, x56, x57, x58, x59, x6, x60, x61, x62, x63, x64, x65, x66, x67, x68, x69, x7, x70, x71, x72, x73, x74, x75, x76, x77, x78, x79, x8, x80, x81, x82, x83, x84, x85, x86, x87, x88, x89, x9, x90, x91, x92, x93, x94, x95, x96, x97, x98, x99; - x1 = arg1[1]; - x2 = arg1[2]; - x3 = arg1[3]; - x4 = arg1[4]; - x5 = arg1[5]; - x6 = arg1[0]; + x1 = (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[1]; + x2 = (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[2]; + x3 = (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[3]; + x4 = (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[4]; + x5 = (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[5]; + x6 = (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[0]; x7 = new $Uint64(0, 0); x8 = new $Uint64(0, 0); - _tuple = bits.Mul64(x6, arg1[5]); + _tuple = bits.Mul64(x6, (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[5]); x8 = _tuple[0]; x7 = _tuple[1]; x9 = new $Uint64(0, 0); x10 = new $Uint64(0, 0); - _tuple$1 = bits.Mul64(x6, arg1[4]); + _tuple$1 = bits.Mul64(x6, (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[4]); x10 = _tuple$1[0]; x9 = _tuple$1[1]; x11 = new $Uint64(0, 0); x12 = new $Uint64(0, 0); - _tuple$2 = bits.Mul64(x6, arg1[3]); + _tuple$2 = bits.Mul64(x6, (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[3]); x12 = _tuple$2[0]; x11 = _tuple$2[1]; x13 = new $Uint64(0, 0); x14 = new $Uint64(0, 0); - _tuple$3 = bits.Mul64(x6, arg1[2]); + _tuple$3 = bits.Mul64(x6, (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[2]); x14 = _tuple$3[0]; x13 = _tuple$3[1]; x15 = new $Uint64(0, 0); x16 = new $Uint64(0, 0); - _tuple$4 = bits.Mul64(x6, arg1[1]); + _tuple$4 = bits.Mul64(x6, (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[1]); x16 = _tuple$4[0]; x15 = _tuple$4[1]; x17 = new $Uint64(0, 0); x18 = new $Uint64(0, 0); - _tuple$5 = bits.Mul64(x6, arg1[0]); + _tuple$5 = bits.Mul64(x6, (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[0]); x18 = _tuple$5[0]; x17 = _tuple$5[1]; x19 = new $Uint64(0, 0); @@ -208852,32 +210150,32 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x68 = _tuple$29[1]; x69 = new $Uint64(0, 0); x70 = new $Uint64(0, 0); - _tuple$30 = bits.Mul64(x1, arg1[5]); + _tuple$30 = bits.Mul64(x1, (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[5]); x70 = _tuple$30[0]; x69 = _tuple$30[1]; x71 = new $Uint64(0, 0); x72 = new $Uint64(0, 0); - _tuple$31 = bits.Mul64(x1, arg1[4]); + _tuple$31 = bits.Mul64(x1, (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[4]); x72 = _tuple$31[0]; x71 = _tuple$31[1]; x73 = new $Uint64(0, 0); x74 = new $Uint64(0, 0); - _tuple$32 = bits.Mul64(x1, arg1[3]); + _tuple$32 = bits.Mul64(x1, (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[3]); x74 = _tuple$32[0]; x73 = _tuple$32[1]; x75 = new $Uint64(0, 0); x76 = new $Uint64(0, 0); - _tuple$33 = bits.Mul64(x1, arg1[2]); + _tuple$33 = bits.Mul64(x1, (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[2]); x76 = _tuple$33[0]; x75 = _tuple$33[1]; x77 = new $Uint64(0, 0); x78 = new $Uint64(0, 0); - _tuple$34 = bits.Mul64(x1, arg1[1]); + _tuple$34 = bits.Mul64(x1, (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[1]); x78 = _tuple$34[0]; x77 = _tuple$34[1]; x79 = new $Uint64(0, 0); x80 = new $Uint64(0, 0); - _tuple$35 = bits.Mul64(x1, arg1[0]); + _tuple$35 = bits.Mul64(x1, (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[0]); x80 = _tuple$35[0]; x79 = _tuple$35[1]; x81 = new $Uint64(0, 0); @@ -209036,32 +210334,32 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x145 = (x$43 = ((x$44 = (new p384Uint1(x144.$high, x144.$low)), new $Uint64(x$44.$high, x$44.$low))), x$45 = ((x$46 = (new p384Uint1(x105.$high, x105.$low)), new $Uint64(x$46.$high, x$46.$low))), new $Uint64(x$43.$high + x$45.$high, x$43.$low + x$45.$low)); x146 = new $Uint64(0, 0); x147 = new $Uint64(0, 0); - _tuple$67 = bits.Mul64(x2, arg1[5]); + _tuple$67 = bits.Mul64(x2, (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[5]); x147 = _tuple$67[0]; x146 = _tuple$67[1]; x148 = new $Uint64(0, 0); x149 = new $Uint64(0, 0); - _tuple$68 = bits.Mul64(x2, arg1[4]); + _tuple$68 = bits.Mul64(x2, (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[4]); x149 = _tuple$68[0]; x148 = _tuple$68[1]; x150 = new $Uint64(0, 0); x151 = new $Uint64(0, 0); - _tuple$69 = bits.Mul64(x2, arg1[3]); + _tuple$69 = bits.Mul64(x2, (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[3]); x151 = _tuple$69[0]; x150 = _tuple$69[1]; x152 = new $Uint64(0, 0); x153 = new $Uint64(0, 0); - _tuple$70 = bits.Mul64(x2, arg1[2]); + _tuple$70 = bits.Mul64(x2, (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[2]); x153 = _tuple$70[0]; x152 = _tuple$70[1]; x154 = new $Uint64(0, 0); x155 = new $Uint64(0, 0); - _tuple$71 = bits.Mul64(x2, arg1[1]); + _tuple$71 = bits.Mul64(x2, (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[1]); x155 = _tuple$71[0]; x154 = _tuple$71[1]; x156 = new $Uint64(0, 0); x157 = new $Uint64(0, 0); - _tuple$72 = bits.Mul64(x2, arg1[0]); + _tuple$72 = bits.Mul64(x2, (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[0]); x157 = _tuple$72[0]; x156 = _tuple$72[1]; x158 = new $Uint64(0, 0); @@ -209220,32 +210518,32 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x222 = (x$71 = ((x$72 = (new p384Uint1(x221.$high, x221.$low)), new $Uint64(x$72.$high, x$72.$low))), x$73 = ((x$74 = (new p384Uint1(x182.$high, x182.$low)), new $Uint64(x$74.$high, x$74.$low))), new $Uint64(x$71.$high + x$73.$high, x$71.$low + x$73.$low)); x223 = new $Uint64(0, 0); x224 = new $Uint64(0, 0); - _tuple$104 = bits.Mul64(x3, arg1[5]); + _tuple$104 = bits.Mul64(x3, (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[5]); x224 = _tuple$104[0]; x223 = _tuple$104[1]; x225 = new $Uint64(0, 0); x226 = new $Uint64(0, 0); - _tuple$105 = bits.Mul64(x3, arg1[4]); + _tuple$105 = bits.Mul64(x3, (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[4]); x226 = _tuple$105[0]; x225 = _tuple$105[1]; x227 = new $Uint64(0, 0); x228 = new $Uint64(0, 0); - _tuple$106 = bits.Mul64(x3, arg1[3]); + _tuple$106 = bits.Mul64(x3, (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[3]); x228 = _tuple$106[0]; x227 = _tuple$106[1]; x229 = new $Uint64(0, 0); x230 = new $Uint64(0, 0); - _tuple$107 = bits.Mul64(x3, arg1[2]); + _tuple$107 = bits.Mul64(x3, (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[2]); x230 = _tuple$107[0]; x229 = _tuple$107[1]; x231 = new $Uint64(0, 0); x232 = new $Uint64(0, 0); - _tuple$108 = bits.Mul64(x3, arg1[1]); + _tuple$108 = bits.Mul64(x3, (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[1]); x232 = _tuple$108[0]; x231 = _tuple$108[1]; x233 = new $Uint64(0, 0); x234 = new $Uint64(0, 0); - _tuple$109 = bits.Mul64(x3, arg1[0]); + _tuple$109 = bits.Mul64(x3, (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[0]); x234 = _tuple$109[0]; x233 = _tuple$109[1]; x235 = new $Uint64(0, 0); @@ -209404,32 +210702,32 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x299 = (x$99 = ((x$100 = (new p384Uint1(x298.$high, x298.$low)), new $Uint64(x$100.$high, x$100.$low))), x$101 = ((x$102 = (new p384Uint1(x259.$high, x259.$low)), new $Uint64(x$102.$high, x$102.$low))), new $Uint64(x$99.$high + x$101.$high, x$99.$low + x$101.$low)); x300 = new $Uint64(0, 0); x301 = new $Uint64(0, 0); - _tuple$141 = bits.Mul64(x4, arg1[5]); + _tuple$141 = bits.Mul64(x4, (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[5]); x301 = _tuple$141[0]; x300 = _tuple$141[1]; x302 = new $Uint64(0, 0); x303 = new $Uint64(0, 0); - _tuple$142 = bits.Mul64(x4, arg1[4]); + _tuple$142 = bits.Mul64(x4, (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[4]); x303 = _tuple$142[0]; x302 = _tuple$142[1]; x304 = new $Uint64(0, 0); x305 = new $Uint64(0, 0); - _tuple$143 = bits.Mul64(x4, arg1[3]); + _tuple$143 = bits.Mul64(x4, (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[3]); x305 = _tuple$143[0]; x304 = _tuple$143[1]; x306 = new $Uint64(0, 0); x307 = new $Uint64(0, 0); - _tuple$144 = bits.Mul64(x4, arg1[2]); + _tuple$144 = bits.Mul64(x4, (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[2]); x307 = _tuple$144[0]; x306 = _tuple$144[1]; x308 = new $Uint64(0, 0); x309 = new $Uint64(0, 0); - _tuple$145 = bits.Mul64(x4, arg1[1]); + _tuple$145 = bits.Mul64(x4, (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[1]); x309 = _tuple$145[0]; x308 = _tuple$145[1]; x310 = new $Uint64(0, 0); x311 = new $Uint64(0, 0); - _tuple$146 = bits.Mul64(x4, arg1[0]); + _tuple$146 = bits.Mul64(x4, (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[0]); x311 = _tuple$146[0]; x310 = _tuple$146[1]; x312 = new $Uint64(0, 0); @@ -209588,32 +210886,32 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x376 = (x$127 = ((x$128 = (new p384Uint1(x375.$high, x375.$low)), new $Uint64(x$128.$high, x$128.$low))), x$129 = ((x$130 = (new p384Uint1(x336.$high, x336.$low)), new $Uint64(x$130.$high, x$130.$low))), new $Uint64(x$127.$high + x$129.$high, x$127.$low + x$129.$low)); x377 = new $Uint64(0, 0); x378 = new $Uint64(0, 0); - _tuple$178 = bits.Mul64(x5, arg1[5]); + _tuple$178 = bits.Mul64(x5, (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[5]); x378 = _tuple$178[0]; x377 = _tuple$178[1]; x379 = new $Uint64(0, 0); x380 = new $Uint64(0, 0); - _tuple$179 = bits.Mul64(x5, arg1[4]); + _tuple$179 = bits.Mul64(x5, (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[4]); x380 = _tuple$179[0]; x379 = _tuple$179[1]; x381 = new $Uint64(0, 0); x382 = new $Uint64(0, 0); - _tuple$180 = bits.Mul64(x5, arg1[3]); + _tuple$180 = bits.Mul64(x5, (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[3]); x382 = _tuple$180[0]; x381 = _tuple$180[1]; x383 = new $Uint64(0, 0); x384 = new $Uint64(0, 0); - _tuple$181 = bits.Mul64(x5, arg1[2]); + _tuple$181 = bits.Mul64(x5, (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[2]); x384 = _tuple$181[0]; x383 = _tuple$181[1]; x385 = new $Uint64(0, 0); x386 = new $Uint64(0, 0); - _tuple$182 = bits.Mul64(x5, arg1[1]); + _tuple$182 = bits.Mul64(x5, (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[1]); x386 = _tuple$182[0]; x385 = _tuple$182[1]; x387 = new $Uint64(0, 0); x388 = new $Uint64(0, 0); - _tuple$183 = bits.Mul64(x5, arg1[0]); + _tuple$183 = bits.Mul64(x5, (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[0]); x388 = _tuple$183[0]; x387 = _tuple$183[1]; x389 = new $Uint64(0, 0); @@ -209804,17 +211102,17 @@ $packages["crypto/internal/nistec/fiat"] = (function() { _tuple$221 = bits.Sub64(x453, new $Uint64(0, 0), ((x$164 = (new p384Uint1(x465.$high, x465.$low)), new $Uint64(x$164.$high, x$164.$low)))); x467 = _tuple$221[1]; x468 = new $Uint64(0, 0); - p384CmovznzU64((x468$24ptr || (x468$24ptr = new ptrType(function() { return x468; }, function($v) { x468 = $v; }))), (new p384Uint1(x467.$high, x467.$low)), x454, x441); + p384CmovznzU64((x468$24ptr || (x468$24ptr = new ptrType$1(function() { return x468; }, function($v) { x468 = $v; }))), (new p384Uint1(x467.$high, x467.$low)), x454, x441); x469 = new $Uint64(0, 0); - p384CmovznzU64((x469$24ptr || (x469$24ptr = new ptrType(function() { return x469; }, function($v) { x469 = $v; }))), (new p384Uint1(x467.$high, x467.$low)), x456, x443); + p384CmovznzU64((x469$24ptr || (x469$24ptr = new ptrType$1(function() { return x469; }, function($v) { x469 = $v; }))), (new p384Uint1(x467.$high, x467.$low)), x456, x443); x470 = new $Uint64(0, 0); - p384CmovznzU64((x470$24ptr || (x470$24ptr = new ptrType(function() { return x470; }, function($v) { x470 = $v; }))), (new p384Uint1(x467.$high, x467.$low)), x458, x445); + p384CmovznzU64((x470$24ptr || (x470$24ptr = new ptrType$1(function() { return x470; }, function($v) { x470 = $v; }))), (new p384Uint1(x467.$high, x467.$low)), x458, x445); x471 = new $Uint64(0, 0); - p384CmovznzU64((x471$24ptr || (x471$24ptr = new ptrType(function() { return x471; }, function($v) { x471 = $v; }))), (new p384Uint1(x467.$high, x467.$low)), x460, x447); + p384CmovznzU64((x471$24ptr || (x471$24ptr = new ptrType$1(function() { return x471; }, function($v) { x471 = $v; }))), (new p384Uint1(x467.$high, x467.$low)), x460, x447); x472 = new $Uint64(0, 0); - p384CmovznzU64((x472$24ptr || (x472$24ptr = new ptrType(function() { return x472; }, function($v) { x472 = $v; }))), (new p384Uint1(x467.$high, x467.$low)), x462, x449); + p384CmovznzU64((x472$24ptr || (x472$24ptr = new ptrType$1(function() { return x472; }, function($v) { x472 = $v; }))), (new p384Uint1(x467.$high, x467.$low)), x462, x449); x473 = new $Uint64(0, 0); - p384CmovznzU64((x473$24ptr || (x473$24ptr = new ptrType(function() { return x473; }, function($v) { x473 = $v; }))), (new p384Uint1(x467.$high, x467.$low)), x464, x451); + p384CmovznzU64((x473$24ptr || (x473$24ptr = new ptrType$1(function() { return x473; }, function($v) { x473 = $v; }))), (new p384Uint1(x467.$high, x467.$low)), x464, x451); out1.nilCheck, out1[0] = x468; out1.nilCheck, out1[1] = x469; out1.nilCheck, out1[2] = x470; @@ -209826,32 +211124,32 @@ $packages["crypto/internal/nistec/fiat"] = (function() { var _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, arg1, arg2, out1, x, x$1, x$10, x$11, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, x1, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x2, x20, x21, x22, x23, x24, x26, x27, x27$24ptr, x28, x28$24ptr, x29, x29$24ptr, x3, x30, x30$24ptr, x31, x31$24ptr, x32, x32$24ptr, x4, x5, x6, x7, x8, x9; x1 = new $Uint64(0, 0); x2 = new $Uint64(0, 0); - _tuple = bits.Add64(arg1[0], arg2[0], new $Uint64(0, 0)); + _tuple = bits.Add64((arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[0], (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[0], new $Uint64(0, 0)); x1 = _tuple[0]; x2 = _tuple[1]; x3 = new $Uint64(0, 0); x4 = new $Uint64(0, 0); - _tuple$1 = bits.Add64(arg1[1], arg2[1], ((x = (new p384Uint1(x2.$high, x2.$low)), new $Uint64(x.$high, x.$low)))); + _tuple$1 = bits.Add64((arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[1], (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[1], ((x = (new p384Uint1(x2.$high, x2.$low)), new $Uint64(x.$high, x.$low)))); x3 = _tuple$1[0]; x4 = _tuple$1[1]; x5 = new $Uint64(0, 0); x6 = new $Uint64(0, 0); - _tuple$2 = bits.Add64(arg1[2], arg2[2], ((x$1 = (new p384Uint1(x4.$high, x4.$low)), new $Uint64(x$1.$high, x$1.$low)))); + _tuple$2 = bits.Add64((arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[2], (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[2], ((x$1 = (new p384Uint1(x4.$high, x4.$low)), new $Uint64(x$1.$high, x$1.$low)))); x5 = _tuple$2[0]; x6 = _tuple$2[1]; x7 = new $Uint64(0, 0); x8 = new $Uint64(0, 0); - _tuple$3 = bits.Add64(arg1[3], arg2[3], ((x$2 = (new p384Uint1(x6.$high, x6.$low)), new $Uint64(x$2.$high, x$2.$low)))); + _tuple$3 = bits.Add64((arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[3], (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[3], ((x$2 = (new p384Uint1(x6.$high, x6.$low)), new $Uint64(x$2.$high, x$2.$low)))); x7 = _tuple$3[0]; x8 = _tuple$3[1]; x9 = new $Uint64(0, 0); x10 = new $Uint64(0, 0); - _tuple$4 = bits.Add64(arg1[4], arg2[4], ((x$3 = (new p384Uint1(x8.$high, x8.$low)), new $Uint64(x$3.$high, x$3.$low)))); + _tuple$4 = bits.Add64((arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[4], (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[4], ((x$3 = (new p384Uint1(x8.$high, x8.$low)), new $Uint64(x$3.$high, x$3.$low)))); x9 = _tuple$4[0]; x10 = _tuple$4[1]; x11 = new $Uint64(0, 0); x12 = new $Uint64(0, 0); - _tuple$5 = bits.Add64(arg1[5], arg2[5], ((x$4 = (new p384Uint1(x10.$high, x10.$low)), new $Uint64(x$4.$high, x$4.$low)))); + _tuple$5 = bits.Add64((arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[5], (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[5], ((x$4 = (new p384Uint1(x10.$high, x10.$low)), new $Uint64(x$4.$high, x$4.$low)))); x11 = _tuple$5[0]; x12 = _tuple$5[1]; x13 = new $Uint64(0, 0); @@ -209888,17 +211186,17 @@ $packages["crypto/internal/nistec/fiat"] = (function() { _tuple$12 = bits.Sub64(((x$10 = (new p384Uint1(x12.$high, x12.$low)), new $Uint64(x$10.$high, x$10.$low))), new $Uint64(0, 0), ((x$11 = (new p384Uint1(x24.$high, x24.$low)), new $Uint64(x$11.$high, x$11.$low)))); x26 = _tuple$12[1]; x27 = new $Uint64(0, 0); - p384CmovznzU64((x27$24ptr || (x27$24ptr = new ptrType(function() { return x27; }, function($v) { x27 = $v; }))), (new p384Uint1(x26.$high, x26.$low)), x13, x1); + p384CmovznzU64((x27$24ptr || (x27$24ptr = new ptrType$1(function() { return x27; }, function($v) { x27 = $v; }))), (new p384Uint1(x26.$high, x26.$low)), x13, x1); x28 = new $Uint64(0, 0); - p384CmovznzU64((x28$24ptr || (x28$24ptr = new ptrType(function() { return x28; }, function($v) { x28 = $v; }))), (new p384Uint1(x26.$high, x26.$low)), x15, x3); + p384CmovznzU64((x28$24ptr || (x28$24ptr = new ptrType$1(function() { return x28; }, function($v) { x28 = $v; }))), (new p384Uint1(x26.$high, x26.$low)), x15, x3); x29 = new $Uint64(0, 0); - p384CmovznzU64((x29$24ptr || (x29$24ptr = new ptrType(function() { return x29; }, function($v) { x29 = $v; }))), (new p384Uint1(x26.$high, x26.$low)), x17, x5); + p384CmovznzU64((x29$24ptr || (x29$24ptr = new ptrType$1(function() { return x29; }, function($v) { x29 = $v; }))), (new p384Uint1(x26.$high, x26.$low)), x17, x5); x30 = new $Uint64(0, 0); - p384CmovznzU64((x30$24ptr || (x30$24ptr = new ptrType(function() { return x30; }, function($v) { x30 = $v; }))), (new p384Uint1(x26.$high, x26.$low)), x19, x7); + p384CmovznzU64((x30$24ptr || (x30$24ptr = new ptrType$1(function() { return x30; }, function($v) { x30 = $v; }))), (new p384Uint1(x26.$high, x26.$low)), x19, x7); x31 = new $Uint64(0, 0); - p384CmovznzU64((x31$24ptr || (x31$24ptr = new ptrType(function() { return x31; }, function($v) { x31 = $v; }))), (new p384Uint1(x26.$high, x26.$low)), x21, x9); + p384CmovznzU64((x31$24ptr || (x31$24ptr = new ptrType$1(function() { return x31; }, function($v) { x31 = $v; }))), (new p384Uint1(x26.$high, x26.$low)), x21, x9); x32 = new $Uint64(0, 0); - p384CmovznzU64((x32$24ptr || (x32$24ptr = new ptrType(function() { return x32; }, function($v) { x32 = $v; }))), (new p384Uint1(x26.$high, x26.$low)), x23, x11); + p384CmovznzU64((x32$24ptr || (x32$24ptr = new ptrType$1(function() { return x32; }, function($v) { x32 = $v; }))), (new p384Uint1(x26.$high, x26.$low)), x23, x11); out1.nilCheck, out1[0] = x27; out1.nilCheck, out1[1] = x28; out1.nilCheck, out1[2] = x29; @@ -209910,36 +211208,36 @@ $packages["crypto/internal/nistec/fiat"] = (function() { var _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, arg1, arg2, out1, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, x1, x10, x11, x12, x13, x13$24ptr, x14, x15, x16, x17, x18, x19, x2, x20, x21, x22, x23, x24, x3, x4, x5, x6, x7, x8, x9; x1 = new $Uint64(0, 0); x2 = new $Uint64(0, 0); - _tuple = bits.Sub64(arg1[0], arg2[0], new $Uint64(0, 0)); + _tuple = bits.Sub64((arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[0], (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[0], new $Uint64(0, 0)); x1 = _tuple[0]; x2 = _tuple[1]; x3 = new $Uint64(0, 0); x4 = new $Uint64(0, 0); - _tuple$1 = bits.Sub64(arg1[1], arg2[1], ((x = (new p384Uint1(x2.$high, x2.$low)), new $Uint64(x.$high, x.$low)))); + _tuple$1 = bits.Sub64((arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[1], (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[1], ((x = (new p384Uint1(x2.$high, x2.$low)), new $Uint64(x.$high, x.$low)))); x3 = _tuple$1[0]; x4 = _tuple$1[1]; x5 = new $Uint64(0, 0); x6 = new $Uint64(0, 0); - _tuple$2 = bits.Sub64(arg1[2], arg2[2], ((x$1 = (new p384Uint1(x4.$high, x4.$low)), new $Uint64(x$1.$high, x$1.$low)))); + _tuple$2 = bits.Sub64((arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[2], (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[2], ((x$1 = (new p384Uint1(x4.$high, x4.$low)), new $Uint64(x$1.$high, x$1.$low)))); x5 = _tuple$2[0]; x6 = _tuple$2[1]; x7 = new $Uint64(0, 0); x8 = new $Uint64(0, 0); - _tuple$3 = bits.Sub64(arg1[3], arg2[3], ((x$2 = (new p384Uint1(x6.$high, x6.$low)), new $Uint64(x$2.$high, x$2.$low)))); + _tuple$3 = bits.Sub64((arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[3], (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[3], ((x$2 = (new p384Uint1(x6.$high, x6.$low)), new $Uint64(x$2.$high, x$2.$low)))); x7 = _tuple$3[0]; x8 = _tuple$3[1]; x9 = new $Uint64(0, 0); x10 = new $Uint64(0, 0); - _tuple$4 = bits.Sub64(arg1[4], arg2[4], ((x$3 = (new p384Uint1(x8.$high, x8.$low)), new $Uint64(x$3.$high, x$3.$low)))); + _tuple$4 = bits.Sub64((arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[4], (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[4], ((x$3 = (new p384Uint1(x8.$high, x8.$low)), new $Uint64(x$3.$high, x$3.$low)))); x9 = _tuple$4[0]; x10 = _tuple$4[1]; x11 = new $Uint64(0, 0); x12 = new $Uint64(0, 0); - _tuple$5 = bits.Sub64(arg1[5], arg2[5], ((x$4 = (new p384Uint1(x10.$high, x10.$low)), new $Uint64(x$4.$high, x$4.$low)))); + _tuple$5 = bits.Sub64((arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[5], (arg2 === ptrType$6.nil && $throwNilPointerError(), arg2)[5], ((x$4 = (new p384Uint1(x10.$high, x10.$low)), new $Uint64(x$4.$high, x$4.$low)))); x11 = _tuple$5[0]; x12 = _tuple$5[1]; x13 = new $Uint64(0, 0); - p384CmovznzU64((x13$24ptr || (x13$24ptr = new ptrType(function() { return x13; }, function($v) { x13 = $v; }))), (new p384Uint1(x12.$high, x12.$low)), new $Uint64(0, 0), new $Uint64(4294967295, 4294967295)); + p384CmovznzU64((x13$24ptr || (x13$24ptr = new ptrType$1(function() { return x13; }, function($v) { x13 = $v; }))), (new p384Uint1(x12.$high, x12.$low)), new $Uint64(0, 0), new $Uint64(4294967295, 4294967295)); x14 = new $Uint64(0, 0); x15 = new $Uint64(0, 0); _tuple$6 = bits.Add64(x1, new $Uint64(x13.$high & 0, (x13.$low & 4294967295) >>> 0), new $Uint64(0, 0)); @@ -209986,7 +211284,7 @@ $packages["crypto/internal/nistec/fiat"] = (function() { }; p384FromMontgomery = function p384FromMontgomery$1(out1, arg1) { var _tuple, _tuple$1, _tuple$10, _tuple$100, _tuple$101, _tuple$102, _tuple$103, _tuple$104, _tuple$105, _tuple$106, _tuple$107, _tuple$108, _tuple$109, _tuple$11, _tuple$110, _tuple$111, _tuple$112, _tuple$113, _tuple$114, _tuple$115, _tuple$116, _tuple$117, _tuple$118, _tuple$119, _tuple$12, _tuple$120, _tuple$121, _tuple$122, _tuple$123, _tuple$124, _tuple$125, _tuple$126, _tuple$127, _tuple$128, _tuple$129, _tuple$13, _tuple$130, _tuple$131, _tuple$132, _tuple$133, _tuple$134, _tuple$135, _tuple$136, _tuple$137, _tuple$138, _tuple$139, _tuple$14, _tuple$140, _tuple$141, _tuple$142, _tuple$143, _tuple$144, _tuple$145, _tuple$146, _tuple$147, _tuple$148, _tuple$149, _tuple$15, _tuple$150, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$2, _tuple$20, _tuple$21, _tuple$22, _tuple$23, _tuple$24, _tuple$25, _tuple$26, _tuple$27, _tuple$28, _tuple$29, _tuple$3, _tuple$30, _tuple$31, _tuple$32, _tuple$33, _tuple$34, _tuple$35, _tuple$36, _tuple$37, _tuple$38, _tuple$39, _tuple$4, _tuple$40, _tuple$41, _tuple$42, _tuple$43, _tuple$44, _tuple$45, _tuple$46, _tuple$47, _tuple$48, _tuple$49, _tuple$5, _tuple$50, _tuple$51, _tuple$52, _tuple$53, _tuple$54, _tuple$55, _tuple$56, _tuple$57, _tuple$58, _tuple$59, _tuple$6, _tuple$60, _tuple$61, _tuple$62, _tuple$63, _tuple$64, _tuple$65, _tuple$66, _tuple$67, _tuple$68, _tuple$69, _tuple$7, _tuple$70, _tuple$71, _tuple$72, _tuple$73, _tuple$74, _tuple$75, _tuple$76, _tuple$77, _tuple$78, _tuple$79, _tuple$8, _tuple$80, _tuple$81, _tuple$82, _tuple$83, _tuple$84, _tuple$85, _tuple$86, _tuple$87, _tuple$88, _tuple$89, _tuple$9, _tuple$90, _tuple$91, _tuple$92, _tuple$93, _tuple$94, _tuple$95, _tuple$96, _tuple$97, _tuple$98, _tuple$99, arg1, out1, x, x$1, x$10, x$100, x$101, x$102, x$103, x$104, x$105, x$106, x$107, x$108, x$109, x$11, x$110, x$111, x$112, x$113, x$114, x$115, x$116, x$117, x$118, x$119, x$12, x$120, x$121, x$122, x$123, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$25, x$26, x$27, x$28, x$29, x$3, x$30, x$31, x$32, x$33, x$34, x$35, x$36, x$37, x$38, x$39, x$4, x$40, x$41, x$42, x$43, x$44, x$45, x$46, x$47, x$48, x$49, x$5, x$50, x$51, x$52, x$53, x$54, x$55, x$56, x$57, x$58, x$59, x$6, x$60, x$61, x$62, x$63, x$64, x$65, x$66, x$67, x$68, x$69, x$7, x$70, x$71, x$72, x$73, x$74, x$75, x$76, x$77, x$78, x$79, x$8, x$80, x$81, x$82, x$83, x$84, x$85, x$86, x$87, x$88, x$89, x$9, x$90, x$91, x$92, x$93, x$94, x$95, x$96, x$97, x$98, x$99, x1, x10, x100, x101, x102, x104, x105, x106, x107, x108, x109, x11, x110, x111, x112, x113, x114, x115, x116, x117, x118, x119, x12, x120, x121, x122, x123, x124, x125, x127, x128, x129, x13, x130, x131, x132, x133, x134, x135, x136, x137, x138, x139, x14, x140, x141, x142, x143, x144, x145, x146, x147, x148, x149, x15, x150, x151, x152, x154, x155, x156, x157, x158, x159, x16, x160, x161, x162, x163, x164, x165, x166, x167, x168, x169, x17, x170, x171, x172, x173, x174, x175, x177, x178, x179, x18, x180, x181, x182, x183, x184, x185, x186, x187, x188, x189, x19, x190, x191, x192, x193, x194, x195, x196, x197, x198, x199, x2, x20, x200, x201, x202, x204, x205, x206, x207, x208, x209, x21, x210, x211, x212, x213, x214, x215, x216, x217, x218, x219, x22, x220, x221, x222, x223, x224, x225, x227, x228, x229, x23, x230, x231, x232, x233, x234, x235, x236, x237, x238, x239, x24, x240, x241, x242, x243, x244, x245, x246, x247, x248, x249, x25, x250, x251, x252, x254, x255, x256, x257, x258, x259, x260, x261, x262, x263, x264, x265, x266, x267, x268, x269, x27, x270, x271, x272, x273, x274, x275, x277, x278, x279, x28, x280, x281, x282, x283, x284, x285, x286, x287, x288, x289, x29, x290, x291, x292, x293, x294, x295, x296, x297, x298, x299, x30, x300, x301, x303, x304, x304$24ptr, x305, x305$24ptr, x306, x306$24ptr, x307, x307$24ptr, x308, x308$24ptr, x309, x309$24ptr, x31, x32, x33, x34, x35, x36, x37, x38, x39, x4, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x5, x50, x51, x52, x54, x55, x56, x57, x58, x59, x6, x60, x61, x62, x63, x64, x65, x66, x67, x68, x69, x7, x70, x71, x72, x73, x74, x75, x77, x78, x79, x8, x80, x81, x82, x83, x84, x85, x86, x87, x88, x89, x9, x90, x91, x92, x93, x94, x95, x96, x97, x98, x99; - x1 = arg1[0]; + x1 = (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[0]; x2 = new $Uint64(0, 0); _tuple = bits.Mul64(x1, new $Uint64(1, 1)); x2 = _tuple[1]; @@ -210080,7 +211378,7 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x39 = _tuple$18[1]; x40 = new $Uint64(0, 0); x41 = new $Uint64(0, 0); - _tuple$19 = bits.Add64(x28, arg1[1], new $Uint64(0, 0)); + _tuple$19 = bits.Add64(x28, (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[1], new $Uint64(0, 0)); x40 = _tuple$19[0]; x41 = _tuple$19[1]; x42 = new $Uint64(0, 0); @@ -210201,7 +211499,7 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x89 = _tuple$43[1]; x90 = new $Uint64(0, 0); x91 = new $Uint64(0, 0); - _tuple$44 = bits.Add64(x78, arg1[2], new $Uint64(0, 0)); + _tuple$44 = bits.Add64(x78, (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[2], new $Uint64(0, 0)); x90 = _tuple$44[0]; x91 = _tuple$44[1]; x92 = new $Uint64(0, 0); @@ -210322,7 +211620,7 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x139 = _tuple$68[1]; x140 = new $Uint64(0, 0); x141 = new $Uint64(0, 0); - _tuple$69 = bits.Add64(x128, arg1[3], new $Uint64(0, 0)); + _tuple$69 = bits.Add64(x128, (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[3], new $Uint64(0, 0)); x140 = _tuple$69[0]; x141 = _tuple$69[1]; x142 = new $Uint64(0, 0); @@ -210443,7 +211741,7 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x189 = _tuple$93[1]; x190 = new $Uint64(0, 0); x191 = new $Uint64(0, 0); - _tuple$94 = bits.Add64(x178, arg1[4], new $Uint64(0, 0)); + _tuple$94 = bits.Add64(x178, (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[4], new $Uint64(0, 0)); x190 = _tuple$94[0]; x191 = _tuple$94[1]; x192 = new $Uint64(0, 0); @@ -210564,7 +211862,7 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x239 = _tuple$118[1]; x240 = new $Uint64(0, 0); x241 = new $Uint64(0, 0); - _tuple$119 = bits.Add64(x228, arg1[5], new $Uint64(0, 0)); + _tuple$119 = bits.Add64(x228, (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[5], new $Uint64(0, 0)); x240 = _tuple$119[0]; x241 = _tuple$119[1]; x242 = new $Uint64(0, 0); @@ -210717,17 +212015,17 @@ $packages["crypto/internal/nistec/fiat"] = (function() { _tuple$150 = bits.Sub64(((x$122 = (new p384Uint1(x289.$high, x289.$low)), new $Uint64(x$122.$high, x$122.$low))), new $Uint64(0, 0), ((x$123 = (new p384Uint1(x301.$high, x301.$low)), new $Uint64(x$123.$high, x$123.$low)))); x303 = _tuple$150[1]; x304 = new $Uint64(0, 0); - p384CmovznzU64((x304$24ptr || (x304$24ptr = new ptrType(function() { return x304; }, function($v) { x304 = $v; }))), (new p384Uint1(x303.$high, x303.$low)), x290, x278); + p384CmovznzU64((x304$24ptr || (x304$24ptr = new ptrType$1(function() { return x304; }, function($v) { x304 = $v; }))), (new p384Uint1(x303.$high, x303.$low)), x290, x278); x305 = new $Uint64(0, 0); - p384CmovznzU64((x305$24ptr || (x305$24ptr = new ptrType(function() { return x305; }, function($v) { x305 = $v; }))), (new p384Uint1(x303.$high, x303.$low)), x292, x280); + p384CmovznzU64((x305$24ptr || (x305$24ptr = new ptrType$1(function() { return x305; }, function($v) { x305 = $v; }))), (new p384Uint1(x303.$high, x303.$low)), x292, x280); x306 = new $Uint64(0, 0); - p384CmovznzU64((x306$24ptr || (x306$24ptr = new ptrType(function() { return x306; }, function($v) { x306 = $v; }))), (new p384Uint1(x303.$high, x303.$low)), x294, x282); + p384CmovznzU64((x306$24ptr || (x306$24ptr = new ptrType$1(function() { return x306; }, function($v) { x306 = $v; }))), (new p384Uint1(x303.$high, x303.$low)), x294, x282); x307 = new $Uint64(0, 0); - p384CmovznzU64((x307$24ptr || (x307$24ptr = new ptrType(function() { return x307; }, function($v) { x307 = $v; }))), (new p384Uint1(x303.$high, x303.$low)), x296, x284); + p384CmovznzU64((x307$24ptr || (x307$24ptr = new ptrType$1(function() { return x307; }, function($v) { x307 = $v; }))), (new p384Uint1(x303.$high, x303.$low)), x296, x284); x308 = new $Uint64(0, 0); - p384CmovznzU64((x308$24ptr || (x308$24ptr = new ptrType(function() { return x308; }, function($v) { x308 = $v; }))), (new p384Uint1(x303.$high, x303.$low)), x298, x286); + p384CmovznzU64((x308$24ptr || (x308$24ptr = new ptrType$1(function() { return x308; }, function($v) { x308 = $v; }))), (new p384Uint1(x303.$high, x303.$low)), x298, x286); x309 = new $Uint64(0, 0); - p384CmovznzU64((x309$24ptr || (x309$24ptr = new ptrType(function() { return x309; }, function($v) { x309 = $v; }))), (new p384Uint1(x303.$high, x303.$low)), x300, x288); + p384CmovznzU64((x309$24ptr || (x309$24ptr = new ptrType$1(function() { return x309; }, function($v) { x309 = $v; }))), (new p384Uint1(x303.$high, x303.$low)), x300, x288); out1.nilCheck, out1[0] = x304; out1.nilCheck, out1[1] = x305; out1.nilCheck, out1[2] = x306; @@ -210737,12 +212035,12 @@ $packages["crypto/internal/nistec/fiat"] = (function() { }; p384ToMontgomery = function p384ToMontgomery$1(out1, arg1) { var _tuple, _tuple$1, _tuple$10, _tuple$100, _tuple$101, _tuple$102, _tuple$103, _tuple$104, _tuple$105, _tuple$106, _tuple$107, _tuple$108, _tuple$109, _tuple$11, _tuple$110, _tuple$111, _tuple$112, _tuple$113, _tuple$114, _tuple$115, _tuple$116, _tuple$117, _tuple$118, _tuple$119, _tuple$12, _tuple$120, _tuple$121, _tuple$122, _tuple$123, _tuple$124, _tuple$125, _tuple$126, _tuple$127, _tuple$128, _tuple$129, _tuple$13, _tuple$130, _tuple$131, _tuple$132, _tuple$133, _tuple$134, _tuple$135, _tuple$136, _tuple$137, _tuple$138, _tuple$139, _tuple$14, _tuple$140, _tuple$141, _tuple$142, _tuple$143, _tuple$144, _tuple$145, _tuple$146, _tuple$147, _tuple$148, _tuple$149, _tuple$15, _tuple$150, _tuple$151, _tuple$152, _tuple$153, _tuple$154, _tuple$155, _tuple$156, _tuple$157, _tuple$158, _tuple$159, _tuple$16, _tuple$160, _tuple$161, _tuple$162, _tuple$163, _tuple$164, _tuple$165, _tuple$166, _tuple$167, _tuple$168, _tuple$169, _tuple$17, _tuple$170, _tuple$171, _tuple$172, _tuple$173, _tuple$174, _tuple$175, _tuple$176, _tuple$177, _tuple$178, _tuple$179, _tuple$18, _tuple$180, _tuple$181, _tuple$182, _tuple$183, _tuple$184, _tuple$185, _tuple$186, _tuple$187, _tuple$188, _tuple$189, _tuple$19, _tuple$190, _tuple$191, _tuple$192, _tuple$193, _tuple$194, _tuple$195, _tuple$196, _tuple$197, _tuple$198, _tuple$2, _tuple$20, _tuple$21, _tuple$22, _tuple$23, _tuple$24, _tuple$25, _tuple$26, _tuple$27, _tuple$28, _tuple$29, _tuple$3, _tuple$30, _tuple$31, _tuple$32, _tuple$33, _tuple$34, _tuple$35, _tuple$36, _tuple$37, _tuple$38, _tuple$39, _tuple$4, _tuple$40, _tuple$41, _tuple$42, _tuple$43, _tuple$44, _tuple$45, _tuple$46, _tuple$47, _tuple$48, _tuple$49, _tuple$5, _tuple$50, _tuple$51, _tuple$52, _tuple$53, _tuple$54, _tuple$55, _tuple$56, _tuple$57, _tuple$58, _tuple$59, _tuple$6, _tuple$60, _tuple$61, _tuple$62, _tuple$63, _tuple$64, _tuple$65, _tuple$66, _tuple$67, _tuple$68, _tuple$69, _tuple$7, _tuple$70, _tuple$71, _tuple$72, _tuple$73, _tuple$74, _tuple$75, _tuple$76, _tuple$77, _tuple$78, _tuple$79, _tuple$8, _tuple$80, _tuple$81, _tuple$82, _tuple$83, _tuple$84, _tuple$85, _tuple$86, _tuple$87, _tuple$88, _tuple$89, _tuple$9, _tuple$90, _tuple$91, _tuple$92, _tuple$93, _tuple$94, _tuple$95, _tuple$96, _tuple$97, _tuple$98, _tuple$99, arg1, out1, x, x$1, x$10, x$100, x$101, x$102, x$103, x$104, x$105, x$106, x$107, x$108, x$109, x$11, x$110, x$111, x$112, x$113, x$114, x$115, x$116, x$117, x$118, x$119, x$12, x$120, x$121, x$122, x$123, x$124, x$125, x$126, x$127, x$128, x$129, x$13, x$130, x$131, x$132, x$133, x$134, x$135, x$136, x$137, x$138, x$139, x$14, x$140, x$141, x$142, x$143, x$144, x$145, x$146, x$147, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$25, x$26, x$27, x$28, x$29, x$3, x$30, x$31, x$32, x$33, x$34, x$35, x$36, x$37, x$38, x$39, x$4, x$40, x$41, x$42, x$43, x$44, x$45, x$46, x$47, x$48, x$49, x$5, x$50, x$51, x$52, x$53, x$54, x$55, x$56, x$57, x$58, x$59, x$6, x$60, x$61, x$62, x$63, x$64, x$65, x$66, x$67, x$68, x$69, x$7, x$70, x$71, x$72, x$73, x$74, x$75, x$76, x$77, x$78, x$79, x$8, x$80, x$81, x$82, x$83, x$84, x$85, x$86, x$87, x$88, x$89, x$9, x$90, x$91, x$92, x$93, x$94, x$95, x$96, x$97, x$98, x$99, x1, x10, x100, x101, x102, x103, x104, x105, x106, x107, x108, x109, x11, x110, x111, x112, x114, x115, x116, x117, x118, x119, x12, x120, x121, x122, x123, x124, x125, x126, x127, x128, x129, x13, x130, x131, x132, x133, x134, x135, x136, x137, x138, x139, x14, x140, x141, x142, x143, x144, x145, x146, x147, x148, x149, x15, x150, x151, x152, x153, x154, x155, x157, x158, x159, x16, x160, x161, x162, x163, x164, x165, x166, x167, x168, x169, x17, x170, x171, x172, x173, x174, x175, x176, x177, x178, x18, x180, x181, x182, x183, x184, x185, x186, x187, x188, x189, x19, x190, x191, x192, x193, x194, x195, x196, x197, x198, x199, x2, x20, x200, x201, x202, x203, x204, x205, x206, x207, x208, x209, x21, x210, x211, x212, x213, x214, x215, x216, x217, x218, x219, x22, x220, x221, x223, x224, x225, x226, x227, x228, x229, x23, x230, x231, x232, x233, x234, x235, x236, x237, x238, x239, x240, x241, x242, x243, x244, x246, x247, x248, x249, x25, x250, x251, x252, x253, x254, x255, x256, x257, x258, x259, x26, x260, x261, x262, x263, x264, x265, x266, x267, x268, x269, x27, x270, x271, x272, x273, x274, x275, x276, x277, x278, x279, x28, x280, x281, x282, x283, x284, x285, x286, x287, x289, x29, x290, x291, x292, x293, x294, x295, x296, x297, x298, x299, x3, x30, x300, x301, x302, x303, x304, x305, x306, x307, x308, x309, x31, x310, x312, x313, x314, x315, x316, x317, x318, x319, x32, x320, x321, x322, x323, x324, x325, x326, x327, x328, x329, x33, x330, x331, x332, x333, x334, x335, x336, x337, x338, x339, x34, x340, x341, x342, x343, x344, x345, x346, x347, x348, x349, x35, x350, x351, x352, x353, x355, x356, x357, x358, x359, x36, x360, x361, x362, x363, x364, x365, x366, x367, x368, x369, x37, x370, x371, x372, x373, x374, x375, x376, x378, x379, x38, x380, x381, x382, x383, x384, x385, x386, x387, x388, x389, x39, x390, x391, x392, x393, x394, x395, x396, x397, x398, x399, x4, x40, x400, x401, x402, x404, x405, x405$24ptr, x406, x406$24ptr, x407, x407$24ptr, x408, x408$24ptr, x409, x409$24ptr, x41, x410, x410$24ptr, x42, x43, x44, x45, x46, x48, x49, x5, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x6, x60, x61, x62, x63, x64, x65, x66, x67, x68, x69, x7, x70, x71, x72, x73, x74, x75, x76, x77, x78, x79, x8, x80, x81, x82, x83, x84, x85, x86, x87, x88, x89, x9, x91, x92, x93, x94, x95, x96, x97, x98, x99; - x1 = arg1[1]; - x2 = arg1[2]; - x3 = arg1[3]; - x4 = arg1[4]; - x5 = arg1[5]; - x6 = arg1[0]; + x1 = (arg1 === ptrType$7.nil && $throwNilPointerError(), arg1)[1]; + x2 = (arg1 === ptrType$7.nil && $throwNilPointerError(), arg1)[2]; + x3 = (arg1 === ptrType$7.nil && $throwNilPointerError(), arg1)[3]; + x4 = (arg1 === ptrType$7.nil && $throwNilPointerError(), arg1)[4]; + x5 = (arg1 === ptrType$7.nil && $throwNilPointerError(), arg1)[5]; + x6 = (arg1 === ptrType$7.nil && $throwNilPointerError(), arg1)[0]; x7 = new $Uint64(0, 0); x8 = new $Uint64(0, 0); _tuple = bits.Mul64(x6, new $Uint64(2, 0)); @@ -211713,17 +213011,17 @@ $packages["crypto/internal/nistec/fiat"] = (function() { _tuple$198 = bits.Sub64(((x$146 = (new p384Uint1(x390.$high, x390.$low)), new $Uint64(x$146.$high, x$146.$low))), new $Uint64(0, 0), ((x$147 = (new p384Uint1(x402.$high, x402.$low)), new $Uint64(x$147.$high, x$147.$low)))); x404 = _tuple$198[1]; x405 = new $Uint64(0, 0); - p384CmovznzU64((x405$24ptr || (x405$24ptr = new ptrType(function() { return x405; }, function($v) { x405 = $v; }))), (new p384Uint1(x404.$high, x404.$low)), x391, x379); + p384CmovznzU64((x405$24ptr || (x405$24ptr = new ptrType$1(function() { return x405; }, function($v) { x405 = $v; }))), (new p384Uint1(x404.$high, x404.$low)), x391, x379); x406 = new $Uint64(0, 0); - p384CmovznzU64((x406$24ptr || (x406$24ptr = new ptrType(function() { return x406; }, function($v) { x406 = $v; }))), (new p384Uint1(x404.$high, x404.$low)), x393, x381); + p384CmovznzU64((x406$24ptr || (x406$24ptr = new ptrType$1(function() { return x406; }, function($v) { x406 = $v; }))), (new p384Uint1(x404.$high, x404.$low)), x393, x381); x407 = new $Uint64(0, 0); - p384CmovznzU64((x407$24ptr || (x407$24ptr = new ptrType(function() { return x407; }, function($v) { x407 = $v; }))), (new p384Uint1(x404.$high, x404.$low)), x395, x383); + p384CmovznzU64((x407$24ptr || (x407$24ptr = new ptrType$1(function() { return x407; }, function($v) { x407 = $v; }))), (new p384Uint1(x404.$high, x404.$low)), x395, x383); x408 = new $Uint64(0, 0); - p384CmovznzU64((x408$24ptr || (x408$24ptr = new ptrType(function() { return x408; }, function($v) { x408 = $v; }))), (new p384Uint1(x404.$high, x404.$low)), x397, x385); + p384CmovznzU64((x408$24ptr || (x408$24ptr = new ptrType$1(function() { return x408; }, function($v) { x408 = $v; }))), (new p384Uint1(x404.$high, x404.$low)), x397, x385); x409 = new $Uint64(0, 0); - p384CmovznzU64((x409$24ptr || (x409$24ptr = new ptrType(function() { return x409; }, function($v) { x409 = $v; }))), (new p384Uint1(x404.$high, x404.$low)), x399, x387); + p384CmovznzU64((x409$24ptr || (x409$24ptr = new ptrType$1(function() { return x409; }, function($v) { x409 = $v; }))), (new p384Uint1(x404.$high, x404.$low)), x399, x387); x410 = new $Uint64(0, 0); - p384CmovznzU64((x410$24ptr || (x410$24ptr = new ptrType(function() { return x410; }, function($v) { x410 = $v; }))), (new p384Uint1(x404.$high, x404.$low)), x401, x389); + p384CmovznzU64((x410$24ptr || (x410$24ptr = new ptrType$1(function() { return x410; }, function($v) { x410 = $v; }))), (new p384Uint1(x404.$high, x404.$low)), x401, x389); out1.nilCheck, out1[0] = x405; out1.nilCheck, out1[1] = x406; out1.nilCheck, out1[2] = x407; @@ -211734,17 +213032,17 @@ $packages["crypto/internal/nistec/fiat"] = (function() { p384Selectznz = function p384Selectznz$1(out1, arg1, arg2, arg3) { var arg1, arg2, arg3, out1, x1, x1$24ptr, x2, x2$24ptr, x3, x3$24ptr, x4, x4$24ptr, x5, x5$24ptr, x6, x6$24ptr; x1 = new $Uint64(0, 0); - p384CmovznzU64((x1$24ptr || (x1$24ptr = new ptrType(function() { return x1; }, function($v) { x1 = $v; }))), arg1, arg2[0], arg3[0]); + p384CmovznzU64((x1$24ptr || (x1$24ptr = new ptrType$1(function() { return x1; }, function($v) { x1 = $v; }))), arg1, (arg2 === ptrType$8.nil && $throwNilPointerError(), arg2)[0], (arg3 === ptrType$8.nil && $throwNilPointerError(), arg3)[0]); x2 = new $Uint64(0, 0); - p384CmovznzU64((x2$24ptr || (x2$24ptr = new ptrType(function() { return x2; }, function($v) { x2 = $v; }))), arg1, arg2[1], arg3[1]); + p384CmovznzU64((x2$24ptr || (x2$24ptr = new ptrType$1(function() { return x2; }, function($v) { x2 = $v; }))), arg1, (arg2 === ptrType$8.nil && $throwNilPointerError(), arg2)[1], (arg3 === ptrType$8.nil && $throwNilPointerError(), arg3)[1]); x3 = new $Uint64(0, 0); - p384CmovznzU64((x3$24ptr || (x3$24ptr = new ptrType(function() { return x3; }, function($v) { x3 = $v; }))), arg1, arg2[2], arg3[2]); + p384CmovznzU64((x3$24ptr || (x3$24ptr = new ptrType$1(function() { return x3; }, function($v) { x3 = $v; }))), arg1, (arg2 === ptrType$8.nil && $throwNilPointerError(), arg2)[2], (arg3 === ptrType$8.nil && $throwNilPointerError(), arg3)[2]); x4 = new $Uint64(0, 0); - p384CmovznzU64((x4$24ptr || (x4$24ptr = new ptrType(function() { return x4; }, function($v) { x4 = $v; }))), arg1, arg2[3], arg3[3]); + p384CmovznzU64((x4$24ptr || (x4$24ptr = new ptrType$1(function() { return x4; }, function($v) { x4 = $v; }))), arg1, (arg2 === ptrType$8.nil && $throwNilPointerError(), arg2)[3], (arg3 === ptrType$8.nil && $throwNilPointerError(), arg3)[3]); x5 = new $Uint64(0, 0); - p384CmovznzU64((x5$24ptr || (x5$24ptr = new ptrType(function() { return x5; }, function($v) { x5 = $v; }))), arg1, arg2[4], arg3[4]); + p384CmovznzU64((x5$24ptr || (x5$24ptr = new ptrType$1(function() { return x5; }, function($v) { x5 = $v; }))), arg1, (arg2 === ptrType$8.nil && $throwNilPointerError(), arg2)[4], (arg3 === ptrType$8.nil && $throwNilPointerError(), arg3)[4]); x6 = new $Uint64(0, 0); - p384CmovznzU64((x6$24ptr || (x6$24ptr = new ptrType(function() { return x6; }, function($v) { x6 = $v; }))), arg1, arg2[5], arg3[5]); + p384CmovznzU64((x6$24ptr || (x6$24ptr = new ptrType$1(function() { return x6; }, function($v) { x6 = $v; }))), arg1, (arg2 === ptrType$8.nil && $throwNilPointerError(), arg2)[5], (arg3 === ptrType$8.nil && $throwNilPointerError(), arg3)[5]); out1.nilCheck, out1[0] = x1; out1.nilCheck, out1[1] = x2; out1.nilCheck, out1[2] = x3; @@ -211754,12 +213052,12 @@ $packages["crypto/internal/nistec/fiat"] = (function() { }; p384ToBytes = function p384ToBytes$1(out1, arg1) { var arg1, out1, x1, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x2, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x3, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x4, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x5, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x6, x60, x61, x62, x63, x64, x65, x66, x67, x68, x69, x7, x70, x71, x72, x73, x74, x75, x76, x77, x78, x79, x8, x80, x81, x82, x83, x84, x85, x86, x87, x88, x89, x9, x90; - x1 = arg1[5]; - x2 = arg1[4]; - x3 = arg1[3]; - x4 = arg1[2]; - x5 = arg1[1]; - x6 = arg1[0]; + x1 = (arg1 === ptrType$8.nil && $throwNilPointerError(), arg1)[5]; + x2 = (arg1 === ptrType$8.nil && $throwNilPointerError(), arg1)[4]; + x3 = (arg1 === ptrType$8.nil && $throwNilPointerError(), arg1)[3]; + x4 = (arg1 === ptrType$8.nil && $throwNilPointerError(), arg1)[2]; + x5 = (arg1 === ptrType$8.nil && $throwNilPointerError(), arg1)[1]; + x6 = (arg1 === ptrType$8.nil && $throwNilPointerError(), arg1)[0]; x7 = ((((x6.$low << 24 >>> 24)) & 255) >>> 0); x8 = $shiftRightUint64(x6, 8); x9 = ((((x8.$low << 24 >>> 24)) & 255) >>> 0); @@ -211895,54 +213193,54 @@ $packages["crypto/internal/nistec/fiat"] = (function() { }; p384FromBytes = function p384FromBytes$1(out1, arg1) { var arg1, out1, x, x$1, x$2, x$3, x$4, x$5, x1, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x2, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x3, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x4, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x5, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x6, x60, x61, x62, x63, x64, x65, x66, x67, x68, x69, x7, x70, x71, x72, x73, x74, x75, x76, x77, x78, x79, x8, x80, x81, x82, x83, x84, x85, x86, x87, x88, x89, x9, x90; - x1 = $shiftLeft64((new $Uint64(0, arg1[47])), 56); - x2 = $shiftLeft64((new $Uint64(0, arg1[46])), 48); - x3 = $shiftLeft64((new $Uint64(0, arg1[45])), 40); - x4 = $shiftLeft64((new $Uint64(0, arg1[44])), 32); - x5 = $shiftLeft64((new $Uint64(0, arg1[43])), 24); - x6 = $shiftLeft64((new $Uint64(0, arg1[42])), 16); - x7 = $shiftLeft64((new $Uint64(0, arg1[41])), 8); - x8 = arg1[40]; - x9 = $shiftLeft64((new $Uint64(0, arg1[39])), 56); - x10 = $shiftLeft64((new $Uint64(0, arg1[38])), 48); - x11 = $shiftLeft64((new $Uint64(0, arg1[37])), 40); - x12 = $shiftLeft64((new $Uint64(0, arg1[36])), 32); - x13 = $shiftLeft64((new $Uint64(0, arg1[35])), 24); - x14 = $shiftLeft64((new $Uint64(0, arg1[34])), 16); - x15 = $shiftLeft64((new $Uint64(0, arg1[33])), 8); - x16 = arg1[32]; - x17 = $shiftLeft64((new $Uint64(0, arg1[31])), 56); - x18 = $shiftLeft64((new $Uint64(0, arg1[30])), 48); - x19 = $shiftLeft64((new $Uint64(0, arg1[29])), 40); - x20 = $shiftLeft64((new $Uint64(0, arg1[28])), 32); - x21 = $shiftLeft64((new $Uint64(0, arg1[27])), 24); - x22 = $shiftLeft64((new $Uint64(0, arg1[26])), 16); - x23 = $shiftLeft64((new $Uint64(0, arg1[25])), 8); - x24 = arg1[24]; - x25 = $shiftLeft64((new $Uint64(0, arg1[23])), 56); - x26 = $shiftLeft64((new $Uint64(0, arg1[22])), 48); - x27 = $shiftLeft64((new $Uint64(0, arg1[21])), 40); - x28 = $shiftLeft64((new $Uint64(0, arg1[20])), 32); - x29 = $shiftLeft64((new $Uint64(0, arg1[19])), 24); - x30 = $shiftLeft64((new $Uint64(0, arg1[18])), 16); - x31 = $shiftLeft64((new $Uint64(0, arg1[17])), 8); - x32 = arg1[16]; - x33 = $shiftLeft64((new $Uint64(0, arg1[15])), 56); - x34 = $shiftLeft64((new $Uint64(0, arg1[14])), 48); - x35 = $shiftLeft64((new $Uint64(0, arg1[13])), 40); - x36 = $shiftLeft64((new $Uint64(0, arg1[12])), 32); - x37 = $shiftLeft64((new $Uint64(0, arg1[11])), 24); - x38 = $shiftLeft64((new $Uint64(0, arg1[10])), 16); - x39 = $shiftLeft64((new $Uint64(0, arg1[9])), 8); - x40 = arg1[8]; - x41 = $shiftLeft64((new $Uint64(0, arg1[7])), 56); - x42 = $shiftLeft64((new $Uint64(0, arg1[6])), 48); - x43 = $shiftLeft64((new $Uint64(0, arg1[5])), 40); - x44 = $shiftLeft64((new $Uint64(0, arg1[4])), 32); - x45 = $shiftLeft64((new $Uint64(0, arg1[3])), 24); - x46 = $shiftLeft64((new $Uint64(0, arg1[2])), 16); - x47 = $shiftLeft64((new $Uint64(0, arg1[1])), 8); - x48 = arg1[0]; + x1 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[47])), 56); + x2 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[46])), 48); + x3 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[45])), 40); + x4 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[44])), 32); + x5 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[43])), 24); + x6 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[42])), 16); + x7 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[41])), 8); + x8 = (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[40]; + x9 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[39])), 56); + x10 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[38])), 48); + x11 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[37])), 40); + x12 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[36])), 32); + x13 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[35])), 24); + x14 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[34])), 16); + x15 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[33])), 8); + x16 = (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[32]; + x17 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[31])), 56); + x18 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[30])), 48); + x19 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[29])), 40); + x20 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[28])), 32); + x21 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[27])), 24); + x22 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[26])), 16); + x23 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[25])), 8); + x24 = (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[24]; + x25 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[23])), 56); + x26 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[22])), 48); + x27 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[21])), 40); + x28 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[20])), 32); + x29 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[19])), 24); + x30 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[18])), 16); + x31 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[17])), 8); + x32 = (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[16]; + x33 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[15])), 56); + x34 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[14])), 48); + x35 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[13])), 40); + x36 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[12])), 32); + x37 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[11])), 24); + x38 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[10])), 16); + x39 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[9])), 8); + x40 = (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[8]; + x41 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[7])), 56); + x42 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[6])), 48); + x43 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[5])), 40); + x44 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[4])), 32); + x45 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[3])), 24); + x46 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[2])), 16); + x47 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[1])), 8); + x48 = (arg1 === ptrType$9.nil && $throwNilPointerError(), arg1)[0]; x49 = (x = (new $Uint64(0, x48)), new $Uint64(x47.$high + x.$high, x47.$low + x.$low)); x50 = new $Uint64(x46.$high + x49.$high, x46.$low + x49.$low); x51 = new $Uint64(x45.$high + x50.$high, x45.$low + x50.$low); @@ -212037,7 +213335,7 @@ $packages["crypto/internal/nistec/fiat"] = (function() { var _i, _ref, e, i, in$1, minusOneEncoding, tmp, v; e = this; if (!((v.$length === 48))) { - return [ptrType$2.nil, errors.New("invalid P384Element encoding")]; + return [ptrType$10.nil, errors.New("invalid P384Element encoding")]; } minusOneEncoding = new P384Element.ptr(arrayType$2.zero()).Sub(new P384Element.ptr(arrayType$2.zero()), new P384Element.ptr(arrayType$2.zero()).One()).Bytes(); _ref = v; @@ -212049,7 +213347,7 @@ $packages["crypto/internal/nistec/fiat"] = (function() { break; } if (((i < 0 || i >= v.$length) ? ($throwRuntimeError("index out of range"), undefined) : v.$array[v.$offset + i]) > ((i < 0 || i >= minusOneEncoding.$length) ? ($throwRuntimeError("index out of range"), undefined) : minusOneEncoding.$array[minusOneEncoding.$offset + i])) { - return [ptrType$2.nil, errors.New("invalid P384Element encoding")]; + return [ptrType$10.nil, errors.New("invalid P384Element encoding")]; } _i++; } @@ -212191,28 +213489,28 @@ $packages["crypto/internal/nistec/fiat"] = (function() { }; p256Mul = function p256Mul$1(out1, arg1, arg2) { var _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$2, _tuple$20, _tuple$21, _tuple$22, _tuple$23, _tuple$24, _tuple$25, _tuple$26, _tuple$27, _tuple$28, _tuple$29, _tuple$3, _tuple$30, _tuple$31, _tuple$32, _tuple$33, _tuple$34, _tuple$35, _tuple$36, _tuple$37, _tuple$38, _tuple$39, _tuple$4, _tuple$40, _tuple$41, _tuple$42, _tuple$43, _tuple$44, _tuple$45, _tuple$46, _tuple$47, _tuple$48, _tuple$49, _tuple$5, _tuple$50, _tuple$51, _tuple$52, _tuple$53, _tuple$54, _tuple$55, _tuple$56, _tuple$57, _tuple$58, _tuple$59, _tuple$6, _tuple$60, _tuple$61, _tuple$62, _tuple$63, _tuple$64, _tuple$65, _tuple$66, _tuple$67, _tuple$68, _tuple$69, _tuple$7, _tuple$70, _tuple$71, _tuple$72, _tuple$73, _tuple$74, _tuple$75, _tuple$76, _tuple$77, _tuple$78, _tuple$79, _tuple$8, _tuple$80, _tuple$81, _tuple$82, _tuple$83, _tuple$9, arg1, arg2, out1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$25, x$26, x$27, x$28, x$29, x$3, x$30, x$31, x$32, x$33, x$34, x$35, x$36, x$37, x$38, x$39, x$4, x$40, x$41, x$42, x$43, x$44, x$45, x$46, x$47, x$48, x$49, x$5, x$50, x$51, x$52, x$53, x$54, x$55, x$56, x$57, x$58, x$59, x$6, x$60, x$61, x$62, x$63, x$64, x$65, x$66, x$67, x$68, x$7, x$8, x$9, x1, x10, x100, x101, x102, x103, x104, x105, x106, x107, x108, x109, x11, x110, x111, x112, x113, x114, x115, x116, x117, x119, x12, x120, x121, x122, x123, x124, x125, x126, x127, x128, x129, x13, x130, x131, x132, x133, x134, x135, x136, x137, x138, x139, x14, x140, x141, x142, x143, x144, x145, x146, x147, x148, x149, x15, x150, x151, x152, x153, x154, x155, x156, x157, x158, x159, x16, x160, x161, x162, x164, x165, x166, x167, x168, x169, x17, x170, x171, x172, x173, x174, x175, x176, x177, x178, x179, x18, x180, x181, x183, x184, x184$24ptr, x185, x185$24ptr, x186, x186$24ptr, x187, x187$24ptr, x19, x2, x20, x21, x22, x23, x24, x25, x26, x27, x28, x3, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x4, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x5, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x6, x60, x61, x62, x63, x64, x65, x66, x67, x68, x69, x7, x70, x71, x72, x74, x75, x76, x77, x78, x79, x8, x80, x81, x82, x83, x84, x85, x86, x87, x88, x89, x9, x90, x91, x92, x93, x94, x95, x96, x97, x98, x99; - x1 = arg1[1]; - x2 = arg1[2]; - x3 = arg1[3]; - x4 = arg1[0]; + x1 = (arg1 === ptrType$11.nil && $throwNilPointerError(), arg1)[1]; + x2 = (arg1 === ptrType$11.nil && $throwNilPointerError(), arg1)[2]; + x3 = (arg1 === ptrType$11.nil && $throwNilPointerError(), arg1)[3]; + x4 = (arg1 === ptrType$11.nil && $throwNilPointerError(), arg1)[0]; x5 = new $Uint64(0, 0); x6 = new $Uint64(0, 0); - _tuple = bits.Mul64(x4, arg2[3]); + _tuple = bits.Mul64(x4, (arg2 === ptrType$11.nil && $throwNilPointerError(), arg2)[3]); x6 = _tuple[0]; x5 = _tuple[1]; x7 = new $Uint64(0, 0); x8 = new $Uint64(0, 0); - _tuple$1 = bits.Mul64(x4, arg2[2]); + _tuple$1 = bits.Mul64(x4, (arg2 === ptrType$11.nil && $throwNilPointerError(), arg2)[2]); x8 = _tuple$1[0]; x7 = _tuple$1[1]; x9 = new $Uint64(0, 0); x10 = new $Uint64(0, 0); - _tuple$2 = bits.Mul64(x4, arg2[1]); + _tuple$2 = bits.Mul64(x4, (arg2 === ptrType$11.nil && $throwNilPointerError(), arg2)[1]); x10 = _tuple$2[0]; x9 = _tuple$2[1]; x11 = new $Uint64(0, 0); x12 = new $Uint64(0, 0); - _tuple$3 = bits.Mul64(x4, arg2[0]); + _tuple$3 = bits.Mul64(x4, (arg2 === ptrType$11.nil && $throwNilPointerError(), arg2)[0]); x12 = _tuple$3[0]; x11 = _tuple$3[1]; x13 = new $Uint64(0, 0); @@ -212277,22 +213575,22 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x38 = _tuple$15[1]; x39 = new $Uint64(0, 0); x40 = new $Uint64(0, 0); - _tuple$16 = bits.Mul64(x1, arg2[3]); + _tuple$16 = bits.Mul64(x1, (arg2 === ptrType$11.nil && $throwNilPointerError(), arg2)[3]); x40 = _tuple$16[0]; x39 = _tuple$16[1]; x41 = new $Uint64(0, 0); x42 = new $Uint64(0, 0); - _tuple$17 = bits.Mul64(x1, arg2[2]); + _tuple$17 = bits.Mul64(x1, (arg2 === ptrType$11.nil && $throwNilPointerError(), arg2)[2]); x42 = _tuple$17[0]; x41 = _tuple$17[1]; x43 = new $Uint64(0, 0); x44 = new $Uint64(0, 0); - _tuple$18 = bits.Mul64(x1, arg2[1]); + _tuple$18 = bits.Mul64(x1, (arg2 === ptrType$11.nil && $throwNilPointerError(), arg2)[1]); x44 = _tuple$18[0]; x43 = _tuple$18[1]; x45 = new $Uint64(0, 0); x46 = new $Uint64(0, 0); - _tuple$19 = bits.Mul64(x1, arg2[0]); + _tuple$19 = bits.Mul64(x1, (arg2 === ptrType$11.nil && $throwNilPointerError(), arg2)[0]); x46 = _tuple$19[0]; x45 = _tuple$19[1]; x47 = new $Uint64(0, 0); @@ -212383,22 +213681,22 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x83 = (x$25 = ((x$26 = (new p256Uint1(x82.$high, x82.$low)), new $Uint64(x$26.$high, x$26.$low))), x$27 = ((x$28 = (new p256Uint1(x63.$high, x63.$low)), new $Uint64(x$28.$high, x$28.$low))), new $Uint64(x$25.$high + x$27.$high, x$25.$low + x$27.$low)); x84 = new $Uint64(0, 0); x85 = new $Uint64(0, 0); - _tuple$37 = bits.Mul64(x2, arg2[3]); + _tuple$37 = bits.Mul64(x2, (arg2 === ptrType$11.nil && $throwNilPointerError(), arg2)[3]); x85 = _tuple$37[0]; x84 = _tuple$37[1]; x86 = new $Uint64(0, 0); x87 = new $Uint64(0, 0); - _tuple$38 = bits.Mul64(x2, arg2[2]); + _tuple$38 = bits.Mul64(x2, (arg2 === ptrType$11.nil && $throwNilPointerError(), arg2)[2]); x87 = _tuple$38[0]; x86 = _tuple$38[1]; x88 = new $Uint64(0, 0); x89 = new $Uint64(0, 0); - _tuple$39 = bits.Mul64(x2, arg2[1]); + _tuple$39 = bits.Mul64(x2, (arg2 === ptrType$11.nil && $throwNilPointerError(), arg2)[1]); x89 = _tuple$39[0]; x88 = _tuple$39[1]; x90 = new $Uint64(0, 0); x91 = new $Uint64(0, 0); - _tuple$40 = bits.Mul64(x2, arg2[0]); + _tuple$40 = bits.Mul64(x2, (arg2 === ptrType$11.nil && $throwNilPointerError(), arg2)[0]); x91 = _tuple$40[0]; x90 = _tuple$40[1]; x92 = new $Uint64(0, 0); @@ -212489,22 +213787,22 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x128 = (x$43 = ((x$44 = (new p256Uint1(x127.$high, x127.$low)), new $Uint64(x$44.$high, x$44.$low))), x$45 = ((x$46 = (new p256Uint1(x108.$high, x108.$low)), new $Uint64(x$46.$high, x$46.$low))), new $Uint64(x$43.$high + x$45.$high, x$43.$low + x$45.$low)); x129 = new $Uint64(0, 0); x130 = new $Uint64(0, 0); - _tuple$58 = bits.Mul64(x3, arg2[3]); + _tuple$58 = bits.Mul64(x3, (arg2 === ptrType$11.nil && $throwNilPointerError(), arg2)[3]); x130 = _tuple$58[0]; x129 = _tuple$58[1]; x131 = new $Uint64(0, 0); x132 = new $Uint64(0, 0); - _tuple$59 = bits.Mul64(x3, arg2[2]); + _tuple$59 = bits.Mul64(x3, (arg2 === ptrType$11.nil && $throwNilPointerError(), arg2)[2]); x132 = _tuple$59[0]; x131 = _tuple$59[1]; x133 = new $Uint64(0, 0); x134 = new $Uint64(0, 0); - _tuple$60 = bits.Mul64(x3, arg2[1]); + _tuple$60 = bits.Mul64(x3, (arg2 === ptrType$11.nil && $throwNilPointerError(), arg2)[1]); x134 = _tuple$60[0]; x133 = _tuple$60[1]; x135 = new $Uint64(0, 0); x136 = new $Uint64(0, 0); - _tuple$61 = bits.Mul64(x3, arg2[0]); + _tuple$61 = bits.Mul64(x3, (arg2 === ptrType$11.nil && $throwNilPointerError(), arg2)[0]); x136 = _tuple$61[0]; x135 = _tuple$61[1]; x137 = new $Uint64(0, 0); @@ -212617,13 +213915,13 @@ $packages["crypto/internal/nistec/fiat"] = (function() { _tuple$83 = bits.Sub64(x173, new $Uint64(0, 0), ((x$68 = (new p256Uint1(x181.$high, x181.$low)), new $Uint64(x$68.$high, x$68.$low)))); x183 = _tuple$83[1]; x184 = new $Uint64(0, 0); - p256CmovznzU64((x184$24ptr || (x184$24ptr = new ptrType(function() { return x184; }, function($v) { x184 = $v; }))), (new p256Uint1(x183.$high, x183.$low)), x174, x165); + p256CmovznzU64((x184$24ptr || (x184$24ptr = new ptrType$1(function() { return x184; }, function($v) { x184 = $v; }))), (new p256Uint1(x183.$high, x183.$low)), x174, x165); x185 = new $Uint64(0, 0); - p256CmovznzU64((x185$24ptr || (x185$24ptr = new ptrType(function() { return x185; }, function($v) { x185 = $v; }))), (new p256Uint1(x183.$high, x183.$low)), x176, x167); + p256CmovznzU64((x185$24ptr || (x185$24ptr = new ptrType$1(function() { return x185; }, function($v) { x185 = $v; }))), (new p256Uint1(x183.$high, x183.$low)), x176, x167); x186 = new $Uint64(0, 0); - p256CmovznzU64((x186$24ptr || (x186$24ptr = new ptrType(function() { return x186; }, function($v) { x186 = $v; }))), (new p256Uint1(x183.$high, x183.$low)), x178, x169); + p256CmovznzU64((x186$24ptr || (x186$24ptr = new ptrType$1(function() { return x186; }, function($v) { x186 = $v; }))), (new p256Uint1(x183.$high, x183.$low)), x178, x169); x187 = new $Uint64(0, 0); - p256CmovznzU64((x187$24ptr || (x187$24ptr = new ptrType(function() { return x187; }, function($v) { x187 = $v; }))), (new p256Uint1(x183.$high, x183.$low)), x180, x171); + p256CmovznzU64((x187$24ptr || (x187$24ptr = new ptrType$1(function() { return x187; }, function($v) { x187 = $v; }))), (new p256Uint1(x183.$high, x183.$low)), x180, x171); out1.nilCheck, out1[0] = x184; out1.nilCheck, out1[1] = x185; out1.nilCheck, out1[2] = x186; @@ -212631,28 +213929,28 @@ $packages["crypto/internal/nistec/fiat"] = (function() { }; p256Square = function p256Square$1(out1, arg1) { var _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$2, _tuple$20, _tuple$21, _tuple$22, _tuple$23, _tuple$24, _tuple$25, _tuple$26, _tuple$27, _tuple$28, _tuple$29, _tuple$3, _tuple$30, _tuple$31, _tuple$32, _tuple$33, _tuple$34, _tuple$35, _tuple$36, _tuple$37, _tuple$38, _tuple$39, _tuple$4, _tuple$40, _tuple$41, _tuple$42, _tuple$43, _tuple$44, _tuple$45, _tuple$46, _tuple$47, _tuple$48, _tuple$49, _tuple$5, _tuple$50, _tuple$51, _tuple$52, _tuple$53, _tuple$54, _tuple$55, _tuple$56, _tuple$57, _tuple$58, _tuple$59, _tuple$6, _tuple$60, _tuple$61, _tuple$62, _tuple$63, _tuple$64, _tuple$65, _tuple$66, _tuple$67, _tuple$68, _tuple$69, _tuple$7, _tuple$70, _tuple$71, _tuple$72, _tuple$73, _tuple$74, _tuple$75, _tuple$76, _tuple$77, _tuple$78, _tuple$79, _tuple$8, _tuple$80, _tuple$81, _tuple$82, _tuple$83, _tuple$9, arg1, out1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$25, x$26, x$27, x$28, x$29, x$3, x$30, x$31, x$32, x$33, x$34, x$35, x$36, x$37, x$38, x$39, x$4, x$40, x$41, x$42, x$43, x$44, x$45, x$46, x$47, x$48, x$49, x$5, x$50, x$51, x$52, x$53, x$54, x$55, x$56, x$57, x$58, x$59, x$6, x$60, x$61, x$62, x$63, x$64, x$65, x$66, x$67, x$68, x$7, x$8, x$9, x1, x10, x100, x101, x102, x103, x104, x105, x106, x107, x108, x109, x11, x110, x111, x112, x113, x114, x115, x116, x117, x119, x12, x120, x121, x122, x123, x124, x125, x126, x127, x128, x129, x13, x130, x131, x132, x133, x134, x135, x136, x137, x138, x139, x14, x140, x141, x142, x143, x144, x145, x146, x147, x148, x149, x15, x150, x151, x152, x153, x154, x155, x156, x157, x158, x159, x16, x160, x161, x162, x164, x165, x166, x167, x168, x169, x17, x170, x171, x172, x173, x174, x175, x176, x177, x178, x179, x18, x180, x181, x183, x184, x184$24ptr, x185, x185$24ptr, x186, x186$24ptr, x187, x187$24ptr, x19, x2, x20, x21, x22, x23, x24, x25, x26, x27, x28, x3, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x4, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x5, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x6, x60, x61, x62, x63, x64, x65, x66, x67, x68, x69, x7, x70, x71, x72, x74, x75, x76, x77, x78, x79, x8, x80, x81, x82, x83, x84, x85, x86, x87, x88, x89, x9, x90, x91, x92, x93, x94, x95, x96, x97, x98, x99; - x1 = arg1[1]; - x2 = arg1[2]; - x3 = arg1[3]; - x4 = arg1[0]; + x1 = (arg1 === ptrType$11.nil && $throwNilPointerError(), arg1)[1]; + x2 = (arg1 === ptrType$11.nil && $throwNilPointerError(), arg1)[2]; + x3 = (arg1 === ptrType$11.nil && $throwNilPointerError(), arg1)[3]; + x4 = (arg1 === ptrType$11.nil && $throwNilPointerError(), arg1)[0]; x5 = new $Uint64(0, 0); x6 = new $Uint64(0, 0); - _tuple = bits.Mul64(x4, arg1[3]); + _tuple = bits.Mul64(x4, (arg1 === ptrType$11.nil && $throwNilPointerError(), arg1)[3]); x6 = _tuple[0]; x5 = _tuple[1]; x7 = new $Uint64(0, 0); x8 = new $Uint64(0, 0); - _tuple$1 = bits.Mul64(x4, arg1[2]); + _tuple$1 = bits.Mul64(x4, (arg1 === ptrType$11.nil && $throwNilPointerError(), arg1)[2]); x8 = _tuple$1[0]; x7 = _tuple$1[1]; x9 = new $Uint64(0, 0); x10 = new $Uint64(0, 0); - _tuple$2 = bits.Mul64(x4, arg1[1]); + _tuple$2 = bits.Mul64(x4, (arg1 === ptrType$11.nil && $throwNilPointerError(), arg1)[1]); x10 = _tuple$2[0]; x9 = _tuple$2[1]; x11 = new $Uint64(0, 0); x12 = new $Uint64(0, 0); - _tuple$3 = bits.Mul64(x4, arg1[0]); + _tuple$3 = bits.Mul64(x4, (arg1 === ptrType$11.nil && $throwNilPointerError(), arg1)[0]); x12 = _tuple$3[0]; x11 = _tuple$3[1]; x13 = new $Uint64(0, 0); @@ -212717,22 +214015,22 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x38 = _tuple$15[1]; x39 = new $Uint64(0, 0); x40 = new $Uint64(0, 0); - _tuple$16 = bits.Mul64(x1, arg1[3]); + _tuple$16 = bits.Mul64(x1, (arg1 === ptrType$11.nil && $throwNilPointerError(), arg1)[3]); x40 = _tuple$16[0]; x39 = _tuple$16[1]; x41 = new $Uint64(0, 0); x42 = new $Uint64(0, 0); - _tuple$17 = bits.Mul64(x1, arg1[2]); + _tuple$17 = bits.Mul64(x1, (arg1 === ptrType$11.nil && $throwNilPointerError(), arg1)[2]); x42 = _tuple$17[0]; x41 = _tuple$17[1]; x43 = new $Uint64(0, 0); x44 = new $Uint64(0, 0); - _tuple$18 = bits.Mul64(x1, arg1[1]); + _tuple$18 = bits.Mul64(x1, (arg1 === ptrType$11.nil && $throwNilPointerError(), arg1)[1]); x44 = _tuple$18[0]; x43 = _tuple$18[1]; x45 = new $Uint64(0, 0); x46 = new $Uint64(0, 0); - _tuple$19 = bits.Mul64(x1, arg1[0]); + _tuple$19 = bits.Mul64(x1, (arg1 === ptrType$11.nil && $throwNilPointerError(), arg1)[0]); x46 = _tuple$19[0]; x45 = _tuple$19[1]; x47 = new $Uint64(0, 0); @@ -212823,22 +214121,22 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x83 = (x$25 = ((x$26 = (new p256Uint1(x82.$high, x82.$low)), new $Uint64(x$26.$high, x$26.$low))), x$27 = ((x$28 = (new p256Uint1(x63.$high, x63.$low)), new $Uint64(x$28.$high, x$28.$low))), new $Uint64(x$25.$high + x$27.$high, x$25.$low + x$27.$low)); x84 = new $Uint64(0, 0); x85 = new $Uint64(0, 0); - _tuple$37 = bits.Mul64(x2, arg1[3]); + _tuple$37 = bits.Mul64(x2, (arg1 === ptrType$11.nil && $throwNilPointerError(), arg1)[3]); x85 = _tuple$37[0]; x84 = _tuple$37[1]; x86 = new $Uint64(0, 0); x87 = new $Uint64(0, 0); - _tuple$38 = bits.Mul64(x2, arg1[2]); + _tuple$38 = bits.Mul64(x2, (arg1 === ptrType$11.nil && $throwNilPointerError(), arg1)[2]); x87 = _tuple$38[0]; x86 = _tuple$38[1]; x88 = new $Uint64(0, 0); x89 = new $Uint64(0, 0); - _tuple$39 = bits.Mul64(x2, arg1[1]); + _tuple$39 = bits.Mul64(x2, (arg1 === ptrType$11.nil && $throwNilPointerError(), arg1)[1]); x89 = _tuple$39[0]; x88 = _tuple$39[1]; x90 = new $Uint64(0, 0); x91 = new $Uint64(0, 0); - _tuple$40 = bits.Mul64(x2, arg1[0]); + _tuple$40 = bits.Mul64(x2, (arg1 === ptrType$11.nil && $throwNilPointerError(), arg1)[0]); x91 = _tuple$40[0]; x90 = _tuple$40[1]; x92 = new $Uint64(0, 0); @@ -212929,22 +214227,22 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x128 = (x$43 = ((x$44 = (new p256Uint1(x127.$high, x127.$low)), new $Uint64(x$44.$high, x$44.$low))), x$45 = ((x$46 = (new p256Uint1(x108.$high, x108.$low)), new $Uint64(x$46.$high, x$46.$low))), new $Uint64(x$43.$high + x$45.$high, x$43.$low + x$45.$low)); x129 = new $Uint64(0, 0); x130 = new $Uint64(0, 0); - _tuple$58 = bits.Mul64(x3, arg1[3]); + _tuple$58 = bits.Mul64(x3, (arg1 === ptrType$11.nil && $throwNilPointerError(), arg1)[3]); x130 = _tuple$58[0]; x129 = _tuple$58[1]; x131 = new $Uint64(0, 0); x132 = new $Uint64(0, 0); - _tuple$59 = bits.Mul64(x3, arg1[2]); + _tuple$59 = bits.Mul64(x3, (arg1 === ptrType$11.nil && $throwNilPointerError(), arg1)[2]); x132 = _tuple$59[0]; x131 = _tuple$59[1]; x133 = new $Uint64(0, 0); x134 = new $Uint64(0, 0); - _tuple$60 = bits.Mul64(x3, arg1[1]); + _tuple$60 = bits.Mul64(x3, (arg1 === ptrType$11.nil && $throwNilPointerError(), arg1)[1]); x134 = _tuple$60[0]; x133 = _tuple$60[1]; x135 = new $Uint64(0, 0); x136 = new $Uint64(0, 0); - _tuple$61 = bits.Mul64(x3, arg1[0]); + _tuple$61 = bits.Mul64(x3, (arg1 === ptrType$11.nil && $throwNilPointerError(), arg1)[0]); x136 = _tuple$61[0]; x135 = _tuple$61[1]; x137 = new $Uint64(0, 0); @@ -213057,13 +214355,13 @@ $packages["crypto/internal/nistec/fiat"] = (function() { _tuple$83 = bits.Sub64(x173, new $Uint64(0, 0), ((x$68 = (new p256Uint1(x181.$high, x181.$low)), new $Uint64(x$68.$high, x$68.$low)))); x183 = _tuple$83[1]; x184 = new $Uint64(0, 0); - p256CmovznzU64((x184$24ptr || (x184$24ptr = new ptrType(function() { return x184; }, function($v) { x184 = $v; }))), (new p256Uint1(x183.$high, x183.$low)), x174, x165); + p256CmovznzU64((x184$24ptr || (x184$24ptr = new ptrType$1(function() { return x184; }, function($v) { x184 = $v; }))), (new p256Uint1(x183.$high, x183.$low)), x174, x165); x185 = new $Uint64(0, 0); - p256CmovznzU64((x185$24ptr || (x185$24ptr = new ptrType(function() { return x185; }, function($v) { x185 = $v; }))), (new p256Uint1(x183.$high, x183.$low)), x176, x167); + p256CmovznzU64((x185$24ptr || (x185$24ptr = new ptrType$1(function() { return x185; }, function($v) { x185 = $v; }))), (new p256Uint1(x183.$high, x183.$low)), x176, x167); x186 = new $Uint64(0, 0); - p256CmovznzU64((x186$24ptr || (x186$24ptr = new ptrType(function() { return x186; }, function($v) { x186 = $v; }))), (new p256Uint1(x183.$high, x183.$low)), x178, x169); + p256CmovznzU64((x186$24ptr || (x186$24ptr = new ptrType$1(function() { return x186; }, function($v) { x186 = $v; }))), (new p256Uint1(x183.$high, x183.$low)), x178, x169); x187 = new $Uint64(0, 0); - p256CmovznzU64((x187$24ptr || (x187$24ptr = new ptrType(function() { return x187; }, function($v) { x187 = $v; }))), (new p256Uint1(x183.$high, x183.$low)), x180, x171); + p256CmovznzU64((x187$24ptr || (x187$24ptr = new ptrType$1(function() { return x187; }, function($v) { x187 = $v; }))), (new p256Uint1(x183.$high, x183.$low)), x180, x171); out1.nilCheck, out1[0] = x184; out1.nilCheck, out1[1] = x185; out1.nilCheck, out1[2] = x186; @@ -213073,22 +214371,22 @@ $packages["crypto/internal/nistec/fiat"] = (function() { var _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, arg1, arg2, out1, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x1, x10, x11, x12, x13, x14, x15, x16, x18, x19, x19$24ptr, x2, x20, x20$24ptr, x21, x21$24ptr, x22, x22$24ptr, x3, x4, x5, x6, x7, x8, x9; x1 = new $Uint64(0, 0); x2 = new $Uint64(0, 0); - _tuple = bits.Add64(arg1[0], arg2[0], new $Uint64(0, 0)); + _tuple = bits.Add64((arg1 === ptrType$11.nil && $throwNilPointerError(), arg1)[0], (arg2 === ptrType$11.nil && $throwNilPointerError(), arg2)[0], new $Uint64(0, 0)); x1 = _tuple[0]; x2 = _tuple[1]; x3 = new $Uint64(0, 0); x4 = new $Uint64(0, 0); - _tuple$1 = bits.Add64(arg1[1], arg2[1], ((x = (new p256Uint1(x2.$high, x2.$low)), new $Uint64(x.$high, x.$low)))); + _tuple$1 = bits.Add64((arg1 === ptrType$11.nil && $throwNilPointerError(), arg1)[1], (arg2 === ptrType$11.nil && $throwNilPointerError(), arg2)[1], ((x = (new p256Uint1(x2.$high, x2.$low)), new $Uint64(x.$high, x.$low)))); x3 = _tuple$1[0]; x4 = _tuple$1[1]; x5 = new $Uint64(0, 0); x6 = new $Uint64(0, 0); - _tuple$2 = bits.Add64(arg1[2], arg2[2], ((x$1 = (new p256Uint1(x4.$high, x4.$low)), new $Uint64(x$1.$high, x$1.$low)))); + _tuple$2 = bits.Add64((arg1 === ptrType$11.nil && $throwNilPointerError(), arg1)[2], (arg2 === ptrType$11.nil && $throwNilPointerError(), arg2)[2], ((x$1 = (new p256Uint1(x4.$high, x4.$low)), new $Uint64(x$1.$high, x$1.$low)))); x5 = _tuple$2[0]; x6 = _tuple$2[1]; x7 = new $Uint64(0, 0); x8 = new $Uint64(0, 0); - _tuple$3 = bits.Add64(arg1[3], arg2[3], ((x$2 = (new p256Uint1(x6.$high, x6.$low)), new $Uint64(x$2.$high, x$2.$low)))); + _tuple$3 = bits.Add64((arg1 === ptrType$11.nil && $throwNilPointerError(), arg1)[3], (arg2 === ptrType$11.nil && $throwNilPointerError(), arg2)[3], ((x$2 = (new p256Uint1(x6.$high, x6.$low)), new $Uint64(x$2.$high, x$2.$low)))); x7 = _tuple$3[0]; x8 = _tuple$3[1]; x9 = new $Uint64(0, 0); @@ -213115,13 +214413,13 @@ $packages["crypto/internal/nistec/fiat"] = (function() { _tuple$8 = bits.Sub64(((x$6 = (new p256Uint1(x8.$high, x8.$low)), new $Uint64(x$6.$high, x$6.$low))), new $Uint64(0, 0), ((x$7 = (new p256Uint1(x16.$high, x16.$low)), new $Uint64(x$7.$high, x$7.$low)))); x18 = _tuple$8[1]; x19 = new $Uint64(0, 0); - p256CmovznzU64((x19$24ptr || (x19$24ptr = new ptrType(function() { return x19; }, function($v) { x19 = $v; }))), (new p256Uint1(x18.$high, x18.$low)), x9, x1); + p256CmovznzU64((x19$24ptr || (x19$24ptr = new ptrType$1(function() { return x19; }, function($v) { x19 = $v; }))), (new p256Uint1(x18.$high, x18.$low)), x9, x1); x20 = new $Uint64(0, 0); - p256CmovznzU64((x20$24ptr || (x20$24ptr = new ptrType(function() { return x20; }, function($v) { x20 = $v; }))), (new p256Uint1(x18.$high, x18.$low)), x11, x3); + p256CmovznzU64((x20$24ptr || (x20$24ptr = new ptrType$1(function() { return x20; }, function($v) { x20 = $v; }))), (new p256Uint1(x18.$high, x18.$low)), x11, x3); x21 = new $Uint64(0, 0); - p256CmovznzU64((x21$24ptr || (x21$24ptr = new ptrType(function() { return x21; }, function($v) { x21 = $v; }))), (new p256Uint1(x18.$high, x18.$low)), x13, x5); + p256CmovznzU64((x21$24ptr || (x21$24ptr = new ptrType$1(function() { return x21; }, function($v) { x21 = $v; }))), (new p256Uint1(x18.$high, x18.$low)), x13, x5); x22 = new $Uint64(0, 0); - p256CmovznzU64((x22$24ptr || (x22$24ptr = new ptrType(function() { return x22; }, function($v) { x22 = $v; }))), (new p256Uint1(x18.$high, x18.$low)), x15, x7); + p256CmovznzU64((x22$24ptr || (x22$24ptr = new ptrType$1(function() { return x22; }, function($v) { x22 = $v; }))), (new p256Uint1(x18.$high, x18.$low)), x15, x7); out1.nilCheck, out1[0] = x19; out1.nilCheck, out1[1] = x20; out1.nilCheck, out1[2] = x21; @@ -213131,26 +214429,26 @@ $packages["crypto/internal/nistec/fiat"] = (function() { var _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, arg1, arg2, out1, x, x$1, x$2, x$3, x$4, x$5, x1, x10, x11, x12, x13, x14, x15, x16, x2, x3, x4, x5, x6, x7, x8, x9, x9$24ptr; x1 = new $Uint64(0, 0); x2 = new $Uint64(0, 0); - _tuple = bits.Sub64(arg1[0], arg2[0], new $Uint64(0, 0)); + _tuple = bits.Sub64((arg1 === ptrType$11.nil && $throwNilPointerError(), arg1)[0], (arg2 === ptrType$11.nil && $throwNilPointerError(), arg2)[0], new $Uint64(0, 0)); x1 = _tuple[0]; x2 = _tuple[1]; x3 = new $Uint64(0, 0); x4 = new $Uint64(0, 0); - _tuple$1 = bits.Sub64(arg1[1], arg2[1], ((x = (new p256Uint1(x2.$high, x2.$low)), new $Uint64(x.$high, x.$low)))); + _tuple$1 = bits.Sub64((arg1 === ptrType$11.nil && $throwNilPointerError(), arg1)[1], (arg2 === ptrType$11.nil && $throwNilPointerError(), arg2)[1], ((x = (new p256Uint1(x2.$high, x2.$low)), new $Uint64(x.$high, x.$low)))); x3 = _tuple$1[0]; x4 = _tuple$1[1]; x5 = new $Uint64(0, 0); x6 = new $Uint64(0, 0); - _tuple$2 = bits.Sub64(arg1[2], arg2[2], ((x$1 = (new p256Uint1(x4.$high, x4.$low)), new $Uint64(x$1.$high, x$1.$low)))); + _tuple$2 = bits.Sub64((arg1 === ptrType$11.nil && $throwNilPointerError(), arg1)[2], (arg2 === ptrType$11.nil && $throwNilPointerError(), arg2)[2], ((x$1 = (new p256Uint1(x4.$high, x4.$low)), new $Uint64(x$1.$high, x$1.$low)))); x5 = _tuple$2[0]; x6 = _tuple$2[1]; x7 = new $Uint64(0, 0); x8 = new $Uint64(0, 0); - _tuple$3 = bits.Sub64(arg1[3], arg2[3], ((x$2 = (new p256Uint1(x6.$high, x6.$low)), new $Uint64(x$2.$high, x$2.$low)))); + _tuple$3 = bits.Sub64((arg1 === ptrType$11.nil && $throwNilPointerError(), arg1)[3], (arg2 === ptrType$11.nil && $throwNilPointerError(), arg2)[3], ((x$2 = (new p256Uint1(x6.$high, x6.$low)), new $Uint64(x$2.$high, x$2.$low)))); x7 = _tuple$3[0]; x8 = _tuple$3[1]; x9 = new $Uint64(0, 0); - p256CmovznzU64((x9$24ptr || (x9$24ptr = new ptrType(function() { return x9; }, function($v) { x9 = $v; }))), (new p256Uint1(x8.$high, x8.$low)), new $Uint64(0, 0), new $Uint64(4294967295, 4294967295)); + p256CmovznzU64((x9$24ptr || (x9$24ptr = new ptrType$1(function() { return x9; }, function($v) { x9 = $v; }))), (new p256Uint1(x8.$high, x8.$low)), new $Uint64(0, 0), new $Uint64(4294967295, 4294967295)); x10 = new $Uint64(0, 0); x11 = new $Uint64(0, 0); _tuple$4 = bits.Add64(x1, x9, new $Uint64(0, 0)); @@ -213183,7 +214481,7 @@ $packages["crypto/internal/nistec/fiat"] = (function() { }; p256FromMontgomery = function p256FromMontgomery$1(out1, arg1) { var _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$2, _tuple$20, _tuple$21, _tuple$22, _tuple$23, _tuple$24, _tuple$25, _tuple$26, _tuple$27, _tuple$28, _tuple$29, _tuple$3, _tuple$30, _tuple$31, _tuple$32, _tuple$33, _tuple$34, _tuple$35, _tuple$36, _tuple$37, _tuple$38, _tuple$39, _tuple$4, _tuple$40, _tuple$41, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, arg1, out1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$25, x$26, x$27, x$28, x$29, x$3, x$30, x$31, x$32, x$33, x$34, x$35, x$36, x$37, x$38, x$39, x$4, x$40, x$41, x$42, x$43, x$5, x$6, x$7, x$8, x$9, x1, x11, x12, x13, x14, x15, x16, x17, x18, x19, x2, x20, x21, x22, x23, x25, x26, x27, x28, x29, x3, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x4, x40, x41, x42, x43, x44, x45, x47, x48, x49, x5, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x6, x60, x61, x62, x63, x64, x65, x66, x67, x69, x7, x70, x71, x72, x73, x74, x75, x76, x77, x78, x79, x8, x80, x81, x82, x83, x84, x86, x87, x87$24ptr, x88, x88$24ptr, x89, x89$24ptr, x9, x90, x90$24ptr; - x1 = arg1[0]; + x1 = (arg1 === ptrType$11.nil && $throwNilPointerError(), arg1)[0]; x2 = new $Uint64(0, 0); x3 = new $Uint64(0, 0); _tuple = bits.Mul64(x1, new $Uint64(4294967295, 1)); @@ -213214,7 +214512,7 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x13 = _tuple$5[1]; x14 = new $Uint64(0, 0); x15 = new $Uint64(0, 0); - _tuple$6 = bits.Add64(x12, arg1[1], new $Uint64(0, 0)); + _tuple$6 = bits.Add64(x12, (arg1 === ptrType$11.nil && $throwNilPointerError(), arg1)[1], new $Uint64(0, 0)); x14 = _tuple$6[0]; x15 = _tuple$6[1]; x16 = new $Uint64(0, 0); @@ -213257,7 +214555,7 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x31 = _tuple$14[1]; x32 = new $Uint64(0, 0); x33 = new $Uint64(0, 0); - _tuple$15 = bits.Add64(x26, arg1[2], new $Uint64(0, 0)); + _tuple$15 = bits.Add64(x26, (arg1 === ptrType$11.nil && $throwNilPointerError(), arg1)[2], new $Uint64(0, 0)); x32 = _tuple$15[0]; x33 = _tuple$15[1]; x34 = new $Uint64(0, 0); @@ -213310,7 +214608,7 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x53 = _tuple$25[1]; x54 = new $Uint64(0, 0); x55 = new $Uint64(0, 0); - _tuple$26 = bits.Add64(x48, arg1[3], new $Uint64(0, 0)); + _tuple$26 = bits.Add64(x48, (arg1 === ptrType$11.nil && $throwNilPointerError(), arg1)[3], new $Uint64(0, 0)); x54 = _tuple$26[0]; x55 = _tuple$26[1]; x56 = new $Uint64(0, 0); @@ -213386,13 +214684,13 @@ $packages["crypto/internal/nistec/fiat"] = (function() { _tuple$41 = bits.Sub64(new $Uint64(0, 0), new $Uint64(0, 0), ((x$43 = (new p256Uint1(x84.$high, x84.$low)), new $Uint64(x$43.$high, x$43.$low)))); x86 = _tuple$41[1]; x87 = new $Uint64(0, 0); - p256CmovznzU64((x87$24ptr || (x87$24ptr = new ptrType(function() { return x87; }, function($v) { x87 = $v; }))), (new p256Uint1(x86.$high, x86.$low)), x77, x70); + p256CmovznzU64((x87$24ptr || (x87$24ptr = new ptrType$1(function() { return x87; }, function($v) { x87 = $v; }))), (new p256Uint1(x86.$high, x86.$low)), x77, x70); x88 = new $Uint64(0, 0); - p256CmovznzU64((x88$24ptr || (x88$24ptr = new ptrType(function() { return x88; }, function($v) { x88 = $v; }))), (new p256Uint1(x86.$high, x86.$low)), x79, x72); + p256CmovznzU64((x88$24ptr || (x88$24ptr = new ptrType$1(function() { return x88; }, function($v) { x88 = $v; }))), (new p256Uint1(x86.$high, x86.$low)), x79, x72); x89 = new $Uint64(0, 0); - p256CmovznzU64((x89$24ptr || (x89$24ptr = new ptrType(function() { return x89; }, function($v) { x89 = $v; }))), (new p256Uint1(x86.$high, x86.$low)), x81, x74); + p256CmovznzU64((x89$24ptr || (x89$24ptr = new ptrType$1(function() { return x89; }, function($v) { x89 = $v; }))), (new p256Uint1(x86.$high, x86.$low)), x81, x74); x90 = new $Uint64(0, 0); - p256CmovznzU64((x90$24ptr || (x90$24ptr = new ptrType(function() { return x90; }, function($v) { x90 = $v; }))), (new p256Uint1(x86.$high, x86.$low)), x83, x76); + p256CmovznzU64((x90$24ptr || (x90$24ptr = new ptrType$1(function() { return x90; }, function($v) { x90 = $v; }))), (new p256Uint1(x86.$high, x86.$low)), x83, x76); out1.nilCheck, out1[0] = x87; out1.nilCheck, out1[1] = x88; out1.nilCheck, out1[2] = x89; @@ -213400,10 +214698,10 @@ $packages["crypto/internal/nistec/fiat"] = (function() { }; p256ToMontgomery = function p256ToMontgomery$1(out1, arg1) { var _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$2, _tuple$20, _tuple$21, _tuple$22, _tuple$23, _tuple$24, _tuple$25, _tuple$26, _tuple$27, _tuple$28, _tuple$29, _tuple$3, _tuple$30, _tuple$31, _tuple$32, _tuple$33, _tuple$34, _tuple$35, _tuple$36, _tuple$37, _tuple$38, _tuple$39, _tuple$4, _tuple$40, _tuple$41, _tuple$42, _tuple$43, _tuple$44, _tuple$45, _tuple$46, _tuple$47, _tuple$48, _tuple$49, _tuple$5, _tuple$50, _tuple$51, _tuple$52, _tuple$53, _tuple$54, _tuple$55, _tuple$56, _tuple$57, _tuple$58, _tuple$59, _tuple$6, _tuple$60, _tuple$61, _tuple$62, _tuple$63, _tuple$64, _tuple$65, _tuple$66, _tuple$67, _tuple$68, _tuple$69, _tuple$7, _tuple$70, _tuple$71, _tuple$72, _tuple$73, _tuple$74, _tuple$75, _tuple$76, _tuple$77, _tuple$78, _tuple$79, _tuple$8, _tuple$80, _tuple$9, arg1, out1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$25, x$26, x$27, x$28, x$29, x$3, x$30, x$31, x$32, x$33, x$34, x$35, x$36, x$37, x$38, x$39, x$4, x$40, x$41, x$42, x$43, x$44, x$45, x$46, x$47, x$48, x$49, x$5, x$50, x$51, x$52, x$53, x$54, x$55, x$56, x$57, x$58, x$59, x$6, x$60, x$61, x$62, x$63, x$64, x$65, x$66, x$67, x$68, x$69, x$7, x$70, x$71, x$8, x$9, x1, x10, x100, x101, x102, x103, x104, x105, x106, x108, x109, x11, x110, x111, x112, x113, x114, x115, x116, x117, x118, x119, x12, x120, x121, x122, x123, x124, x125, x126, x127, x128, x129, x13, x130, x131, x132, x133, x134, x135, x136, x137, x138, x139, x14, x140, x141, x142, x143, x144, x145, x146, x148, x149, x15, x150, x151, x152, x153, x154, x155, x156, x157, x158, x159, x16, x160, x161, x162, x163, x164, x166, x167, x167$24ptr, x168, x168$24ptr, x169, x169$24ptr, x17, x170, x170$24ptr, x18, x19, x2, x20, x21, x22, x23, x24, x25, x26, x28, x29, x3, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x4, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x5, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x6, x60, x61, x62, x63, x64, x65, x66, x68, x69, x7, x70, x71, x72, x73, x74, x75, x76, x77, x78, x79, x8, x80, x81, x82, x83, x84, x85, x86, x87, x88, x89, x9, x90, x91, x92, x93, x94, x95, x96, x97, x98, x99; - x1 = arg1[1]; - x2 = arg1[2]; - x3 = arg1[3]; - x4 = arg1[0]; + x1 = (arg1 === ptrType$12.nil && $throwNilPointerError(), arg1)[1]; + x2 = (arg1 === ptrType$12.nil && $throwNilPointerError(), arg1)[2]; + x3 = (arg1 === ptrType$12.nil && $throwNilPointerError(), arg1)[3]; + x4 = (arg1 === ptrType$12.nil && $throwNilPointerError(), arg1)[0]; x5 = new $Uint64(0, 0); x6 = new $Uint64(0, 0); _tuple = bits.Mul64(x4, new $Uint64(4, 4294967293)); @@ -213800,13 +215098,13 @@ $packages["crypto/internal/nistec/fiat"] = (function() { _tuple$80 = bits.Sub64(((x$70 = (new p256Uint1(x156.$high, x156.$low)), new $Uint64(x$70.$high, x$70.$low))), new $Uint64(0, 0), ((x$71 = (new p256Uint1(x164.$high, x164.$low)), new $Uint64(x$71.$high, x$71.$low)))); x166 = _tuple$80[1]; x167 = new $Uint64(0, 0); - p256CmovznzU64((x167$24ptr || (x167$24ptr = new ptrType(function() { return x167; }, function($v) { x167 = $v; }))), (new p256Uint1(x166.$high, x166.$low)), x157, x149); + p256CmovznzU64((x167$24ptr || (x167$24ptr = new ptrType$1(function() { return x167; }, function($v) { x167 = $v; }))), (new p256Uint1(x166.$high, x166.$low)), x157, x149); x168 = new $Uint64(0, 0); - p256CmovznzU64((x168$24ptr || (x168$24ptr = new ptrType(function() { return x168; }, function($v) { x168 = $v; }))), (new p256Uint1(x166.$high, x166.$low)), x159, x151); + p256CmovznzU64((x168$24ptr || (x168$24ptr = new ptrType$1(function() { return x168; }, function($v) { x168 = $v; }))), (new p256Uint1(x166.$high, x166.$low)), x159, x151); x169 = new $Uint64(0, 0); - p256CmovznzU64((x169$24ptr || (x169$24ptr = new ptrType(function() { return x169; }, function($v) { x169 = $v; }))), (new p256Uint1(x166.$high, x166.$low)), x161, x153); + p256CmovznzU64((x169$24ptr || (x169$24ptr = new ptrType$1(function() { return x169; }, function($v) { x169 = $v; }))), (new p256Uint1(x166.$high, x166.$low)), x161, x153); x170 = new $Uint64(0, 0); - p256CmovznzU64((x170$24ptr || (x170$24ptr = new ptrType(function() { return x170; }, function($v) { x170 = $v; }))), (new p256Uint1(x166.$high, x166.$low)), x163, x155); + p256CmovznzU64((x170$24ptr || (x170$24ptr = new ptrType$1(function() { return x170; }, function($v) { x170 = $v; }))), (new p256Uint1(x166.$high, x166.$low)), x163, x155); out1.nilCheck, out1[0] = x167; out1.nilCheck, out1[1] = x168; out1.nilCheck, out1[2] = x169; @@ -213815,13 +215113,13 @@ $packages["crypto/internal/nistec/fiat"] = (function() { p256Selectznz = function p256Selectznz$1(out1, arg1, arg2, arg3) { var arg1, arg2, arg3, out1, x1, x1$24ptr, x2, x2$24ptr, x3, x3$24ptr, x4, x4$24ptr; x1 = new $Uint64(0, 0); - p256CmovznzU64((x1$24ptr || (x1$24ptr = new ptrType(function() { return x1; }, function($v) { x1 = $v; }))), arg1, arg2[0], arg3[0]); + p256CmovznzU64((x1$24ptr || (x1$24ptr = new ptrType$1(function() { return x1; }, function($v) { x1 = $v; }))), arg1, (arg2 === ptrType$13.nil && $throwNilPointerError(), arg2)[0], (arg3 === ptrType$13.nil && $throwNilPointerError(), arg3)[0]); x2 = new $Uint64(0, 0); - p256CmovznzU64((x2$24ptr || (x2$24ptr = new ptrType(function() { return x2; }, function($v) { x2 = $v; }))), arg1, arg2[1], arg3[1]); + p256CmovznzU64((x2$24ptr || (x2$24ptr = new ptrType$1(function() { return x2; }, function($v) { x2 = $v; }))), arg1, (arg2 === ptrType$13.nil && $throwNilPointerError(), arg2)[1], (arg3 === ptrType$13.nil && $throwNilPointerError(), arg3)[1]); x3 = new $Uint64(0, 0); - p256CmovznzU64((x3$24ptr || (x3$24ptr = new ptrType(function() { return x3; }, function($v) { x3 = $v; }))), arg1, arg2[2], arg3[2]); + p256CmovznzU64((x3$24ptr || (x3$24ptr = new ptrType$1(function() { return x3; }, function($v) { x3 = $v; }))), arg1, (arg2 === ptrType$13.nil && $throwNilPointerError(), arg2)[2], (arg3 === ptrType$13.nil && $throwNilPointerError(), arg3)[2]); x4 = new $Uint64(0, 0); - p256CmovznzU64((x4$24ptr || (x4$24ptr = new ptrType(function() { return x4; }, function($v) { x4 = $v; }))), arg1, arg2[3], arg3[3]); + p256CmovznzU64((x4$24ptr || (x4$24ptr = new ptrType$1(function() { return x4; }, function($v) { x4 = $v; }))), arg1, (arg2 === ptrType$13.nil && $throwNilPointerError(), arg2)[3], (arg3 === ptrType$13.nil && $throwNilPointerError(), arg3)[3]); out1.nilCheck, out1[0] = x1; out1.nilCheck, out1[1] = x2; out1.nilCheck, out1[2] = x3; @@ -213829,10 +215127,10 @@ $packages["crypto/internal/nistec/fiat"] = (function() { }; p256ToBytes = function p256ToBytes$1(out1, arg1) { var arg1, out1, x1, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x2, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x3, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x4, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x5, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x6, x60, x7, x8, x9; - x1 = arg1[3]; - x2 = arg1[2]; - x3 = arg1[1]; - x4 = arg1[0]; + x1 = (arg1 === ptrType$13.nil && $throwNilPointerError(), arg1)[3]; + x2 = (arg1 === ptrType$13.nil && $throwNilPointerError(), arg1)[2]; + x3 = (arg1 === ptrType$13.nil && $throwNilPointerError(), arg1)[1]; + x4 = (arg1 === ptrType$13.nil && $throwNilPointerError(), arg1)[0]; x5 = ((((x4.$low << 24 >>> 24)) & 255) >>> 0); x6 = $shiftRightUint64(x4, 8); x7 = ((((x6.$low << 24 >>> 24)) & 255) >>> 0); @@ -213924,38 +215222,38 @@ $packages["crypto/internal/nistec/fiat"] = (function() { }; p256FromBytes = function p256FromBytes$1(out1, arg1) { var arg1, out1, x, x$1, x$2, x$3, x1, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x2, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x3, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x4, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x5, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x6, x60, x7, x8, x9; - x1 = $shiftLeft64((new $Uint64(0, arg1[31])), 56); - x2 = $shiftLeft64((new $Uint64(0, arg1[30])), 48); - x3 = $shiftLeft64((new $Uint64(0, arg1[29])), 40); - x4 = $shiftLeft64((new $Uint64(0, arg1[28])), 32); - x5 = $shiftLeft64((new $Uint64(0, arg1[27])), 24); - x6 = $shiftLeft64((new $Uint64(0, arg1[26])), 16); - x7 = $shiftLeft64((new $Uint64(0, arg1[25])), 8); - x8 = arg1[24]; - x9 = $shiftLeft64((new $Uint64(0, arg1[23])), 56); - x10 = $shiftLeft64((new $Uint64(0, arg1[22])), 48); - x11 = $shiftLeft64((new $Uint64(0, arg1[21])), 40); - x12 = $shiftLeft64((new $Uint64(0, arg1[20])), 32); - x13 = $shiftLeft64((new $Uint64(0, arg1[19])), 24); - x14 = $shiftLeft64((new $Uint64(0, arg1[18])), 16); - x15 = $shiftLeft64((new $Uint64(0, arg1[17])), 8); - x16 = arg1[16]; - x17 = $shiftLeft64((new $Uint64(0, arg1[15])), 56); - x18 = $shiftLeft64((new $Uint64(0, arg1[14])), 48); - x19 = $shiftLeft64((new $Uint64(0, arg1[13])), 40); - x20 = $shiftLeft64((new $Uint64(0, arg1[12])), 32); - x21 = $shiftLeft64((new $Uint64(0, arg1[11])), 24); - x22 = $shiftLeft64((new $Uint64(0, arg1[10])), 16); - x23 = $shiftLeft64((new $Uint64(0, arg1[9])), 8); - x24 = arg1[8]; - x25 = $shiftLeft64((new $Uint64(0, arg1[7])), 56); - x26 = $shiftLeft64((new $Uint64(0, arg1[6])), 48); - x27 = $shiftLeft64((new $Uint64(0, arg1[5])), 40); - x28 = $shiftLeft64((new $Uint64(0, arg1[4])), 32); - x29 = $shiftLeft64((new $Uint64(0, arg1[3])), 24); - x30 = $shiftLeft64((new $Uint64(0, arg1[2])), 16); - x31 = $shiftLeft64((new $Uint64(0, arg1[1])), 8); - x32 = arg1[0]; + x1 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$14.nil && $throwNilPointerError(), arg1)[31])), 56); + x2 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$14.nil && $throwNilPointerError(), arg1)[30])), 48); + x3 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$14.nil && $throwNilPointerError(), arg1)[29])), 40); + x4 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$14.nil && $throwNilPointerError(), arg1)[28])), 32); + x5 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$14.nil && $throwNilPointerError(), arg1)[27])), 24); + x6 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$14.nil && $throwNilPointerError(), arg1)[26])), 16); + x7 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$14.nil && $throwNilPointerError(), arg1)[25])), 8); + x8 = (arg1 === ptrType$14.nil && $throwNilPointerError(), arg1)[24]; + x9 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$14.nil && $throwNilPointerError(), arg1)[23])), 56); + x10 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$14.nil && $throwNilPointerError(), arg1)[22])), 48); + x11 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$14.nil && $throwNilPointerError(), arg1)[21])), 40); + x12 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$14.nil && $throwNilPointerError(), arg1)[20])), 32); + x13 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$14.nil && $throwNilPointerError(), arg1)[19])), 24); + x14 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$14.nil && $throwNilPointerError(), arg1)[18])), 16); + x15 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$14.nil && $throwNilPointerError(), arg1)[17])), 8); + x16 = (arg1 === ptrType$14.nil && $throwNilPointerError(), arg1)[16]; + x17 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$14.nil && $throwNilPointerError(), arg1)[15])), 56); + x18 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$14.nil && $throwNilPointerError(), arg1)[14])), 48); + x19 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$14.nil && $throwNilPointerError(), arg1)[13])), 40); + x20 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$14.nil && $throwNilPointerError(), arg1)[12])), 32); + x21 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$14.nil && $throwNilPointerError(), arg1)[11])), 24); + x22 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$14.nil && $throwNilPointerError(), arg1)[10])), 16); + x23 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$14.nil && $throwNilPointerError(), arg1)[9])), 8); + x24 = (arg1 === ptrType$14.nil && $throwNilPointerError(), arg1)[8]; + x25 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$14.nil && $throwNilPointerError(), arg1)[7])), 56); + x26 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$14.nil && $throwNilPointerError(), arg1)[6])), 48); + x27 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$14.nil && $throwNilPointerError(), arg1)[5])), 40); + x28 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$14.nil && $throwNilPointerError(), arg1)[4])), 32); + x29 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$14.nil && $throwNilPointerError(), arg1)[3])), 24); + x30 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$14.nil && $throwNilPointerError(), arg1)[2])), 16); + x31 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$14.nil && $throwNilPointerError(), arg1)[1])), 8); + x32 = (arg1 === ptrType$14.nil && $throwNilPointerError(), arg1)[0]; x33 = (x = (new $Uint64(0, x32)), new $Uint64(x31.$high + x.$high, x31.$low + x.$low)); x34 = new $Uint64(x30.$high + x33.$high, x30.$low + x33.$low); x35 = new $Uint64(x29.$high + x34.$high, x29.$low + x34.$low); @@ -214034,7 +215332,7 @@ $packages["crypto/internal/nistec/fiat"] = (function() { var _i, _ref, e, i, in$1, minusOneEncoding, tmp, v; e = this; if (!((v.$length === 32))) { - return [ptrType$3.nil, errors.New("invalid P256Element encoding")]; + return [ptrType$15.nil, errors.New("invalid P256Element encoding")]; } minusOneEncoding = new P256Element.ptr(arrayType$4.zero()).Sub(new P256Element.ptr(arrayType$4.zero()), new P256Element.ptr(arrayType$4.zero()).One()).Bytes(); _ref = v; @@ -214046,7 +215344,7 @@ $packages["crypto/internal/nistec/fiat"] = (function() { break; } if (((i < 0 || i >= v.$length) ? ($throwRuntimeError("index out of range"), undefined) : v.$array[v.$offset + i]) > ((i < 0 || i >= minusOneEncoding.$length) ? ($throwRuntimeError("index out of range"), undefined) : minusOneEncoding.$array[minusOneEncoding.$offset + i])) { - return [ptrType$3.nil, errors.New("invalid P256Element encoding")]; + return [ptrType$15.nil, errors.New("invalid P256Element encoding")]; } _i++; } @@ -214191,28 +215489,28 @@ $packages["crypto/internal/nistec/fiat"] = (function() { }; p224Mul = function p224Mul$1(out1, arg1, arg2) { var _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$2, _tuple$20, _tuple$21, _tuple$22, _tuple$23, _tuple$24, _tuple$25, _tuple$26, _tuple$27, _tuple$28, _tuple$29, _tuple$3, _tuple$30, _tuple$31, _tuple$32, _tuple$33, _tuple$34, _tuple$35, _tuple$36, _tuple$37, _tuple$38, _tuple$39, _tuple$4, _tuple$40, _tuple$41, _tuple$42, _tuple$43, _tuple$44, _tuple$45, _tuple$46, _tuple$47, _tuple$48, _tuple$49, _tuple$5, _tuple$50, _tuple$51, _tuple$52, _tuple$53, _tuple$54, _tuple$55, _tuple$56, _tuple$57, _tuple$58, _tuple$59, _tuple$6, _tuple$60, _tuple$61, _tuple$62, _tuple$63, _tuple$64, _tuple$65, _tuple$66, _tuple$67, _tuple$68, _tuple$69, _tuple$7, _tuple$70, _tuple$71, _tuple$72, _tuple$73, _tuple$74, _tuple$75, _tuple$76, _tuple$77, _tuple$78, _tuple$79, _tuple$8, _tuple$80, _tuple$81, _tuple$82, _tuple$83, _tuple$84, _tuple$85, _tuple$86, _tuple$87, _tuple$88, _tuple$89, _tuple$9, _tuple$90, _tuple$91, arg1, arg2, out1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$25, x$26, x$27, x$28, x$29, x$3, x$30, x$31, x$32, x$33, x$34, x$35, x$36, x$37, x$38, x$39, x$4, x$40, x$41, x$42, x$43, x$44, x$45, x$46, x$47, x$48, x$49, x$5, x$50, x$51, x$52, x$53, x$54, x$55, x$56, x$57, x$58, x$59, x$6, x$60, x$61, x$62, x$63, x$64, x$65, x$66, x$67, x$68, x$69, x$7, x$70, x$71, x$72, x$8, x$9, x1, x10, x100, x101, x102, x103, x104, x105, x106, x107, x108, x109, x11, x110, x111, x112, x113, x114, x115, x116, x117, x119, x12, x120, x121, x122, x123, x124, x125, x126, x127, x128, x129, x13, x131, x132, x133, x134, x135, x136, x137, x138, x139, x14, x140, x141, x142, x143, x144, x145, x146, x147, x148, x149, x15, x150, x151, x152, x153, x154, x155, x156, x157, x158, x159, x16, x160, x161, x162, x163, x164, x165, x166, x168, x169, x17, x170, x171, x172, x173, x174, x175, x176, x177, x178, x18, x180, x181, x182, x183, x184, x185, x186, x187, x188, x189, x19, x190, x191, x192, x193, x194, x195, x196, x197, x199, x2, x20, x200, x200$24ptr, x201, x201$24ptr, x202, x202$24ptr, x203, x203$24ptr, x22, x23, x24, x25, x26, x27, x28, x29, x3, x30, x31, x32, x34, x35, x36, x37, x38, x39, x4, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x5, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x6, x60, x61, x62, x63, x64, x65, x66, x67, x68, x7, x70, x71, x72, x73, x74, x75, x76, x77, x78, x79, x8, x80, x82, x83, x84, x85, x86, x87, x88, x89, x9, x90, x91, x92, x93, x94, x95, x96, x97, x98, x99; - x1 = arg1[1]; - x2 = arg1[2]; - x3 = arg1[3]; - x4 = arg1[0]; + x1 = (arg1 === ptrType$16.nil && $throwNilPointerError(), arg1)[1]; + x2 = (arg1 === ptrType$16.nil && $throwNilPointerError(), arg1)[2]; + x3 = (arg1 === ptrType$16.nil && $throwNilPointerError(), arg1)[3]; + x4 = (arg1 === ptrType$16.nil && $throwNilPointerError(), arg1)[0]; x5 = new $Uint64(0, 0); x6 = new $Uint64(0, 0); - _tuple = bits.Mul64(x4, arg2[3]); + _tuple = bits.Mul64(x4, (arg2 === ptrType$16.nil && $throwNilPointerError(), arg2)[3]); x6 = _tuple[0]; x5 = _tuple[1]; x7 = new $Uint64(0, 0); x8 = new $Uint64(0, 0); - _tuple$1 = bits.Mul64(x4, arg2[2]); + _tuple$1 = bits.Mul64(x4, (arg2 === ptrType$16.nil && $throwNilPointerError(), arg2)[2]); x8 = _tuple$1[0]; x7 = _tuple$1[1]; x9 = new $Uint64(0, 0); x10 = new $Uint64(0, 0); - _tuple$2 = bits.Mul64(x4, arg2[1]); + _tuple$2 = bits.Mul64(x4, (arg2 === ptrType$16.nil && $throwNilPointerError(), arg2)[1]); x10 = _tuple$2[0]; x9 = _tuple$2[1]; x11 = new $Uint64(0, 0); x12 = new $Uint64(0, 0); - _tuple$3 = bits.Mul64(x4, arg2[0]); + _tuple$3 = bits.Mul64(x4, (arg2 === ptrType$16.nil && $throwNilPointerError(), arg2)[0]); x12 = _tuple$3[0]; x11 = _tuple$3[1]; x13 = new $Uint64(0, 0); @@ -214285,22 +215583,22 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x42 = _tuple$17[1]; x43 = new $Uint64(0, 0); x44 = new $Uint64(0, 0); - _tuple$18 = bits.Mul64(x1, arg2[3]); + _tuple$18 = bits.Mul64(x1, (arg2 === ptrType$16.nil && $throwNilPointerError(), arg2)[3]); x44 = _tuple$18[0]; x43 = _tuple$18[1]; x45 = new $Uint64(0, 0); x46 = new $Uint64(0, 0); - _tuple$19 = bits.Mul64(x1, arg2[2]); + _tuple$19 = bits.Mul64(x1, (arg2 === ptrType$16.nil && $throwNilPointerError(), arg2)[2]); x46 = _tuple$19[0]; x45 = _tuple$19[1]; x47 = new $Uint64(0, 0); x48 = new $Uint64(0, 0); - _tuple$20 = bits.Mul64(x1, arg2[1]); + _tuple$20 = bits.Mul64(x1, (arg2 === ptrType$16.nil && $throwNilPointerError(), arg2)[1]); x48 = _tuple$20[0]; x47 = _tuple$20[1]; x49 = new $Uint64(0, 0); x50 = new $Uint64(0, 0); - _tuple$21 = bits.Mul64(x1, arg2[0]); + _tuple$21 = bits.Mul64(x1, (arg2 === ptrType$16.nil && $throwNilPointerError(), arg2)[0]); x50 = _tuple$21[0]; x49 = _tuple$21[1]; x51 = new $Uint64(0, 0); @@ -214399,22 +215697,22 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x91 = (x$27 = ((x$28 = (new p224Uint1(x90.$high, x90.$low)), new $Uint64(x$28.$high, x$28.$low))), x$29 = ((x$30 = (new p224Uint1(x67.$high, x67.$low)), new $Uint64(x$30.$high, x$30.$low))), new $Uint64(x$27.$high + x$29.$high, x$27.$low + x$29.$low)); x92 = new $Uint64(0, 0); x93 = new $Uint64(0, 0); - _tuple$41 = bits.Mul64(x2, arg2[3]); + _tuple$41 = bits.Mul64(x2, (arg2 === ptrType$16.nil && $throwNilPointerError(), arg2)[3]); x93 = _tuple$41[0]; x92 = _tuple$41[1]; x94 = new $Uint64(0, 0); x95 = new $Uint64(0, 0); - _tuple$42 = bits.Mul64(x2, arg2[2]); + _tuple$42 = bits.Mul64(x2, (arg2 === ptrType$16.nil && $throwNilPointerError(), arg2)[2]); x95 = _tuple$42[0]; x94 = _tuple$42[1]; x96 = new $Uint64(0, 0); x97 = new $Uint64(0, 0); - _tuple$43 = bits.Mul64(x2, arg2[1]); + _tuple$43 = bits.Mul64(x2, (arg2 === ptrType$16.nil && $throwNilPointerError(), arg2)[1]); x97 = _tuple$43[0]; x96 = _tuple$43[1]; x98 = new $Uint64(0, 0); x99 = new $Uint64(0, 0); - _tuple$44 = bits.Mul64(x2, arg2[0]); + _tuple$44 = bits.Mul64(x2, (arg2 === ptrType$16.nil && $throwNilPointerError(), arg2)[0]); x99 = _tuple$44[0]; x98 = _tuple$44[1]; x100 = new $Uint64(0, 0); @@ -214513,22 +215811,22 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x140 = (x$46 = ((x$47 = (new p224Uint1(x139.$high, x139.$low)), new $Uint64(x$47.$high, x$47.$low))), x$48 = ((x$49 = (new p224Uint1(x116.$high, x116.$low)), new $Uint64(x$49.$high, x$49.$low))), new $Uint64(x$46.$high + x$48.$high, x$46.$low + x$48.$low)); x141 = new $Uint64(0, 0); x142 = new $Uint64(0, 0); - _tuple$64 = bits.Mul64(x3, arg2[3]); + _tuple$64 = bits.Mul64(x3, (arg2 === ptrType$16.nil && $throwNilPointerError(), arg2)[3]); x142 = _tuple$64[0]; x141 = _tuple$64[1]; x143 = new $Uint64(0, 0); x144 = new $Uint64(0, 0); - _tuple$65 = bits.Mul64(x3, arg2[2]); + _tuple$65 = bits.Mul64(x3, (arg2 === ptrType$16.nil && $throwNilPointerError(), arg2)[2]); x144 = _tuple$65[0]; x143 = _tuple$65[1]; x145 = new $Uint64(0, 0); x146 = new $Uint64(0, 0); - _tuple$66 = bits.Mul64(x3, arg2[1]); + _tuple$66 = bits.Mul64(x3, (arg2 === ptrType$16.nil && $throwNilPointerError(), arg2)[1]); x146 = _tuple$66[0]; x145 = _tuple$66[1]; x147 = new $Uint64(0, 0); x148 = new $Uint64(0, 0); - _tuple$67 = bits.Mul64(x3, arg2[0]); + _tuple$67 = bits.Mul64(x3, (arg2 === ptrType$16.nil && $throwNilPointerError(), arg2)[0]); x148 = _tuple$67[0]; x147 = _tuple$67[1]; x149 = new $Uint64(0, 0); @@ -214649,13 +215947,13 @@ $packages["crypto/internal/nistec/fiat"] = (function() { _tuple$91 = bits.Sub64(x189, new $Uint64(0, 0), ((x$72 = (new p224Uint1(x197.$high, x197.$low)), new $Uint64(x$72.$high, x$72.$low)))); x199 = _tuple$91[1]; x200 = new $Uint64(0, 0); - p224CmovznzU64((x200$24ptr || (x200$24ptr = new ptrType(function() { return x200; }, function($v) { x200 = $v; }))), (new p224Uint1(x199.$high, x199.$low)), x190, x181); + p224CmovznzU64((x200$24ptr || (x200$24ptr = new ptrType$1(function() { return x200; }, function($v) { x200 = $v; }))), (new p224Uint1(x199.$high, x199.$low)), x190, x181); x201 = new $Uint64(0, 0); - p224CmovznzU64((x201$24ptr || (x201$24ptr = new ptrType(function() { return x201; }, function($v) { x201 = $v; }))), (new p224Uint1(x199.$high, x199.$low)), x192, x183); + p224CmovznzU64((x201$24ptr || (x201$24ptr = new ptrType$1(function() { return x201; }, function($v) { x201 = $v; }))), (new p224Uint1(x199.$high, x199.$low)), x192, x183); x202 = new $Uint64(0, 0); - p224CmovznzU64((x202$24ptr || (x202$24ptr = new ptrType(function() { return x202; }, function($v) { x202 = $v; }))), (new p224Uint1(x199.$high, x199.$low)), x194, x185); + p224CmovznzU64((x202$24ptr || (x202$24ptr = new ptrType$1(function() { return x202; }, function($v) { x202 = $v; }))), (new p224Uint1(x199.$high, x199.$low)), x194, x185); x203 = new $Uint64(0, 0); - p224CmovznzU64((x203$24ptr || (x203$24ptr = new ptrType(function() { return x203; }, function($v) { x203 = $v; }))), (new p224Uint1(x199.$high, x199.$low)), x196, x187); + p224CmovznzU64((x203$24ptr || (x203$24ptr = new ptrType$1(function() { return x203; }, function($v) { x203 = $v; }))), (new p224Uint1(x199.$high, x199.$low)), x196, x187); out1.nilCheck, out1[0] = x200; out1.nilCheck, out1[1] = x201; out1.nilCheck, out1[2] = x202; @@ -214663,28 +215961,28 @@ $packages["crypto/internal/nistec/fiat"] = (function() { }; p224Square = function p224Square$1(out1, arg1) { var _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$2, _tuple$20, _tuple$21, _tuple$22, _tuple$23, _tuple$24, _tuple$25, _tuple$26, _tuple$27, _tuple$28, _tuple$29, _tuple$3, _tuple$30, _tuple$31, _tuple$32, _tuple$33, _tuple$34, _tuple$35, _tuple$36, _tuple$37, _tuple$38, _tuple$39, _tuple$4, _tuple$40, _tuple$41, _tuple$42, _tuple$43, _tuple$44, _tuple$45, _tuple$46, _tuple$47, _tuple$48, _tuple$49, _tuple$5, _tuple$50, _tuple$51, _tuple$52, _tuple$53, _tuple$54, _tuple$55, _tuple$56, _tuple$57, _tuple$58, _tuple$59, _tuple$6, _tuple$60, _tuple$61, _tuple$62, _tuple$63, _tuple$64, _tuple$65, _tuple$66, _tuple$67, _tuple$68, _tuple$69, _tuple$7, _tuple$70, _tuple$71, _tuple$72, _tuple$73, _tuple$74, _tuple$75, _tuple$76, _tuple$77, _tuple$78, _tuple$79, _tuple$8, _tuple$80, _tuple$81, _tuple$82, _tuple$83, _tuple$84, _tuple$85, _tuple$86, _tuple$87, _tuple$88, _tuple$89, _tuple$9, _tuple$90, _tuple$91, arg1, out1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$25, x$26, x$27, x$28, x$29, x$3, x$30, x$31, x$32, x$33, x$34, x$35, x$36, x$37, x$38, x$39, x$4, x$40, x$41, x$42, x$43, x$44, x$45, x$46, x$47, x$48, x$49, x$5, x$50, x$51, x$52, x$53, x$54, x$55, x$56, x$57, x$58, x$59, x$6, x$60, x$61, x$62, x$63, x$64, x$65, x$66, x$67, x$68, x$69, x$7, x$70, x$71, x$72, x$8, x$9, x1, x10, x100, x101, x102, x103, x104, x105, x106, x107, x108, x109, x11, x110, x111, x112, x113, x114, x115, x116, x117, x119, x12, x120, x121, x122, x123, x124, x125, x126, x127, x128, x129, x13, x131, x132, x133, x134, x135, x136, x137, x138, x139, x14, x140, x141, x142, x143, x144, x145, x146, x147, x148, x149, x15, x150, x151, x152, x153, x154, x155, x156, x157, x158, x159, x16, x160, x161, x162, x163, x164, x165, x166, x168, x169, x17, x170, x171, x172, x173, x174, x175, x176, x177, x178, x18, x180, x181, x182, x183, x184, x185, x186, x187, x188, x189, x19, x190, x191, x192, x193, x194, x195, x196, x197, x199, x2, x20, x200, x200$24ptr, x201, x201$24ptr, x202, x202$24ptr, x203, x203$24ptr, x22, x23, x24, x25, x26, x27, x28, x29, x3, x30, x31, x32, x34, x35, x36, x37, x38, x39, x4, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x5, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x6, x60, x61, x62, x63, x64, x65, x66, x67, x68, x7, x70, x71, x72, x73, x74, x75, x76, x77, x78, x79, x8, x80, x82, x83, x84, x85, x86, x87, x88, x89, x9, x90, x91, x92, x93, x94, x95, x96, x97, x98, x99; - x1 = arg1[1]; - x2 = arg1[2]; - x3 = arg1[3]; - x4 = arg1[0]; + x1 = (arg1 === ptrType$16.nil && $throwNilPointerError(), arg1)[1]; + x2 = (arg1 === ptrType$16.nil && $throwNilPointerError(), arg1)[2]; + x3 = (arg1 === ptrType$16.nil && $throwNilPointerError(), arg1)[3]; + x4 = (arg1 === ptrType$16.nil && $throwNilPointerError(), arg1)[0]; x5 = new $Uint64(0, 0); x6 = new $Uint64(0, 0); - _tuple = bits.Mul64(x4, arg1[3]); + _tuple = bits.Mul64(x4, (arg1 === ptrType$16.nil && $throwNilPointerError(), arg1)[3]); x6 = _tuple[0]; x5 = _tuple[1]; x7 = new $Uint64(0, 0); x8 = new $Uint64(0, 0); - _tuple$1 = bits.Mul64(x4, arg1[2]); + _tuple$1 = bits.Mul64(x4, (arg1 === ptrType$16.nil && $throwNilPointerError(), arg1)[2]); x8 = _tuple$1[0]; x7 = _tuple$1[1]; x9 = new $Uint64(0, 0); x10 = new $Uint64(0, 0); - _tuple$2 = bits.Mul64(x4, arg1[1]); + _tuple$2 = bits.Mul64(x4, (arg1 === ptrType$16.nil && $throwNilPointerError(), arg1)[1]); x10 = _tuple$2[0]; x9 = _tuple$2[1]; x11 = new $Uint64(0, 0); x12 = new $Uint64(0, 0); - _tuple$3 = bits.Mul64(x4, arg1[0]); + _tuple$3 = bits.Mul64(x4, (arg1 === ptrType$16.nil && $throwNilPointerError(), arg1)[0]); x12 = _tuple$3[0]; x11 = _tuple$3[1]; x13 = new $Uint64(0, 0); @@ -214757,22 +216055,22 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x42 = _tuple$17[1]; x43 = new $Uint64(0, 0); x44 = new $Uint64(0, 0); - _tuple$18 = bits.Mul64(x1, arg1[3]); + _tuple$18 = bits.Mul64(x1, (arg1 === ptrType$16.nil && $throwNilPointerError(), arg1)[3]); x44 = _tuple$18[0]; x43 = _tuple$18[1]; x45 = new $Uint64(0, 0); x46 = new $Uint64(0, 0); - _tuple$19 = bits.Mul64(x1, arg1[2]); + _tuple$19 = bits.Mul64(x1, (arg1 === ptrType$16.nil && $throwNilPointerError(), arg1)[2]); x46 = _tuple$19[0]; x45 = _tuple$19[1]; x47 = new $Uint64(0, 0); x48 = new $Uint64(0, 0); - _tuple$20 = bits.Mul64(x1, arg1[1]); + _tuple$20 = bits.Mul64(x1, (arg1 === ptrType$16.nil && $throwNilPointerError(), arg1)[1]); x48 = _tuple$20[0]; x47 = _tuple$20[1]; x49 = new $Uint64(0, 0); x50 = new $Uint64(0, 0); - _tuple$21 = bits.Mul64(x1, arg1[0]); + _tuple$21 = bits.Mul64(x1, (arg1 === ptrType$16.nil && $throwNilPointerError(), arg1)[0]); x50 = _tuple$21[0]; x49 = _tuple$21[1]; x51 = new $Uint64(0, 0); @@ -214871,22 +216169,22 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x91 = (x$27 = ((x$28 = (new p224Uint1(x90.$high, x90.$low)), new $Uint64(x$28.$high, x$28.$low))), x$29 = ((x$30 = (new p224Uint1(x67.$high, x67.$low)), new $Uint64(x$30.$high, x$30.$low))), new $Uint64(x$27.$high + x$29.$high, x$27.$low + x$29.$low)); x92 = new $Uint64(0, 0); x93 = new $Uint64(0, 0); - _tuple$41 = bits.Mul64(x2, arg1[3]); + _tuple$41 = bits.Mul64(x2, (arg1 === ptrType$16.nil && $throwNilPointerError(), arg1)[3]); x93 = _tuple$41[0]; x92 = _tuple$41[1]; x94 = new $Uint64(0, 0); x95 = new $Uint64(0, 0); - _tuple$42 = bits.Mul64(x2, arg1[2]); + _tuple$42 = bits.Mul64(x2, (arg1 === ptrType$16.nil && $throwNilPointerError(), arg1)[2]); x95 = _tuple$42[0]; x94 = _tuple$42[1]; x96 = new $Uint64(0, 0); x97 = new $Uint64(0, 0); - _tuple$43 = bits.Mul64(x2, arg1[1]); + _tuple$43 = bits.Mul64(x2, (arg1 === ptrType$16.nil && $throwNilPointerError(), arg1)[1]); x97 = _tuple$43[0]; x96 = _tuple$43[1]; x98 = new $Uint64(0, 0); x99 = new $Uint64(0, 0); - _tuple$44 = bits.Mul64(x2, arg1[0]); + _tuple$44 = bits.Mul64(x2, (arg1 === ptrType$16.nil && $throwNilPointerError(), arg1)[0]); x99 = _tuple$44[0]; x98 = _tuple$44[1]; x100 = new $Uint64(0, 0); @@ -214985,22 +216283,22 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x140 = (x$46 = ((x$47 = (new p224Uint1(x139.$high, x139.$low)), new $Uint64(x$47.$high, x$47.$low))), x$48 = ((x$49 = (new p224Uint1(x116.$high, x116.$low)), new $Uint64(x$49.$high, x$49.$low))), new $Uint64(x$46.$high + x$48.$high, x$46.$low + x$48.$low)); x141 = new $Uint64(0, 0); x142 = new $Uint64(0, 0); - _tuple$64 = bits.Mul64(x3, arg1[3]); + _tuple$64 = bits.Mul64(x3, (arg1 === ptrType$16.nil && $throwNilPointerError(), arg1)[3]); x142 = _tuple$64[0]; x141 = _tuple$64[1]; x143 = new $Uint64(0, 0); x144 = new $Uint64(0, 0); - _tuple$65 = bits.Mul64(x3, arg1[2]); + _tuple$65 = bits.Mul64(x3, (arg1 === ptrType$16.nil && $throwNilPointerError(), arg1)[2]); x144 = _tuple$65[0]; x143 = _tuple$65[1]; x145 = new $Uint64(0, 0); x146 = new $Uint64(0, 0); - _tuple$66 = bits.Mul64(x3, arg1[1]); + _tuple$66 = bits.Mul64(x3, (arg1 === ptrType$16.nil && $throwNilPointerError(), arg1)[1]); x146 = _tuple$66[0]; x145 = _tuple$66[1]; x147 = new $Uint64(0, 0); x148 = new $Uint64(0, 0); - _tuple$67 = bits.Mul64(x3, arg1[0]); + _tuple$67 = bits.Mul64(x3, (arg1 === ptrType$16.nil && $throwNilPointerError(), arg1)[0]); x148 = _tuple$67[0]; x147 = _tuple$67[1]; x149 = new $Uint64(0, 0); @@ -215121,13 +216419,13 @@ $packages["crypto/internal/nistec/fiat"] = (function() { _tuple$91 = bits.Sub64(x189, new $Uint64(0, 0), ((x$72 = (new p224Uint1(x197.$high, x197.$low)), new $Uint64(x$72.$high, x$72.$low)))); x199 = _tuple$91[1]; x200 = new $Uint64(0, 0); - p224CmovznzU64((x200$24ptr || (x200$24ptr = new ptrType(function() { return x200; }, function($v) { x200 = $v; }))), (new p224Uint1(x199.$high, x199.$low)), x190, x181); + p224CmovznzU64((x200$24ptr || (x200$24ptr = new ptrType$1(function() { return x200; }, function($v) { x200 = $v; }))), (new p224Uint1(x199.$high, x199.$low)), x190, x181); x201 = new $Uint64(0, 0); - p224CmovznzU64((x201$24ptr || (x201$24ptr = new ptrType(function() { return x201; }, function($v) { x201 = $v; }))), (new p224Uint1(x199.$high, x199.$low)), x192, x183); + p224CmovznzU64((x201$24ptr || (x201$24ptr = new ptrType$1(function() { return x201; }, function($v) { x201 = $v; }))), (new p224Uint1(x199.$high, x199.$low)), x192, x183); x202 = new $Uint64(0, 0); - p224CmovznzU64((x202$24ptr || (x202$24ptr = new ptrType(function() { return x202; }, function($v) { x202 = $v; }))), (new p224Uint1(x199.$high, x199.$low)), x194, x185); + p224CmovznzU64((x202$24ptr || (x202$24ptr = new ptrType$1(function() { return x202; }, function($v) { x202 = $v; }))), (new p224Uint1(x199.$high, x199.$low)), x194, x185); x203 = new $Uint64(0, 0); - p224CmovznzU64((x203$24ptr || (x203$24ptr = new ptrType(function() { return x203; }, function($v) { x203 = $v; }))), (new p224Uint1(x199.$high, x199.$low)), x196, x187); + p224CmovznzU64((x203$24ptr || (x203$24ptr = new ptrType$1(function() { return x203; }, function($v) { x203 = $v; }))), (new p224Uint1(x199.$high, x199.$low)), x196, x187); out1.nilCheck, out1[0] = x200; out1.nilCheck, out1[1] = x201; out1.nilCheck, out1[2] = x202; @@ -215137,22 +216435,22 @@ $packages["crypto/internal/nistec/fiat"] = (function() { var _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, arg1, arg2, out1, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x1, x10, x11, x12, x13, x14, x15, x16, x18, x19, x19$24ptr, x2, x20, x20$24ptr, x21, x21$24ptr, x22, x22$24ptr, x3, x4, x5, x6, x7, x8, x9; x1 = new $Uint64(0, 0); x2 = new $Uint64(0, 0); - _tuple = bits.Add64(arg1[0], arg2[0], new $Uint64(0, 0)); + _tuple = bits.Add64((arg1 === ptrType$16.nil && $throwNilPointerError(), arg1)[0], (arg2 === ptrType$16.nil && $throwNilPointerError(), arg2)[0], new $Uint64(0, 0)); x1 = _tuple[0]; x2 = _tuple[1]; x3 = new $Uint64(0, 0); x4 = new $Uint64(0, 0); - _tuple$1 = bits.Add64(arg1[1], arg2[1], ((x = (new p224Uint1(x2.$high, x2.$low)), new $Uint64(x.$high, x.$low)))); + _tuple$1 = bits.Add64((arg1 === ptrType$16.nil && $throwNilPointerError(), arg1)[1], (arg2 === ptrType$16.nil && $throwNilPointerError(), arg2)[1], ((x = (new p224Uint1(x2.$high, x2.$low)), new $Uint64(x.$high, x.$low)))); x3 = _tuple$1[0]; x4 = _tuple$1[1]; x5 = new $Uint64(0, 0); x6 = new $Uint64(0, 0); - _tuple$2 = bits.Add64(arg1[2], arg2[2], ((x$1 = (new p224Uint1(x4.$high, x4.$low)), new $Uint64(x$1.$high, x$1.$low)))); + _tuple$2 = bits.Add64((arg1 === ptrType$16.nil && $throwNilPointerError(), arg1)[2], (arg2 === ptrType$16.nil && $throwNilPointerError(), arg2)[2], ((x$1 = (new p224Uint1(x4.$high, x4.$low)), new $Uint64(x$1.$high, x$1.$low)))); x5 = _tuple$2[0]; x6 = _tuple$2[1]; x7 = new $Uint64(0, 0); x8 = new $Uint64(0, 0); - _tuple$3 = bits.Add64(arg1[3], arg2[3], ((x$2 = (new p224Uint1(x6.$high, x6.$low)), new $Uint64(x$2.$high, x$2.$low)))); + _tuple$3 = bits.Add64((arg1 === ptrType$16.nil && $throwNilPointerError(), arg1)[3], (arg2 === ptrType$16.nil && $throwNilPointerError(), arg2)[3], ((x$2 = (new p224Uint1(x6.$high, x6.$low)), new $Uint64(x$2.$high, x$2.$low)))); x7 = _tuple$3[0]; x8 = _tuple$3[1]; x9 = new $Uint64(0, 0); @@ -215179,13 +216477,13 @@ $packages["crypto/internal/nistec/fiat"] = (function() { _tuple$8 = bits.Sub64(((x$6 = (new p224Uint1(x8.$high, x8.$low)), new $Uint64(x$6.$high, x$6.$low))), new $Uint64(0, 0), ((x$7 = (new p224Uint1(x16.$high, x16.$low)), new $Uint64(x$7.$high, x$7.$low)))); x18 = _tuple$8[1]; x19 = new $Uint64(0, 0); - p224CmovznzU64((x19$24ptr || (x19$24ptr = new ptrType(function() { return x19; }, function($v) { x19 = $v; }))), (new p224Uint1(x18.$high, x18.$low)), x9, x1); + p224CmovznzU64((x19$24ptr || (x19$24ptr = new ptrType$1(function() { return x19; }, function($v) { x19 = $v; }))), (new p224Uint1(x18.$high, x18.$low)), x9, x1); x20 = new $Uint64(0, 0); - p224CmovznzU64((x20$24ptr || (x20$24ptr = new ptrType(function() { return x20; }, function($v) { x20 = $v; }))), (new p224Uint1(x18.$high, x18.$low)), x11, x3); + p224CmovznzU64((x20$24ptr || (x20$24ptr = new ptrType$1(function() { return x20; }, function($v) { x20 = $v; }))), (new p224Uint1(x18.$high, x18.$low)), x11, x3); x21 = new $Uint64(0, 0); - p224CmovznzU64((x21$24ptr || (x21$24ptr = new ptrType(function() { return x21; }, function($v) { x21 = $v; }))), (new p224Uint1(x18.$high, x18.$low)), x13, x5); + p224CmovznzU64((x21$24ptr || (x21$24ptr = new ptrType$1(function() { return x21; }, function($v) { x21 = $v; }))), (new p224Uint1(x18.$high, x18.$low)), x13, x5); x22 = new $Uint64(0, 0); - p224CmovznzU64((x22$24ptr || (x22$24ptr = new ptrType(function() { return x22; }, function($v) { x22 = $v; }))), (new p224Uint1(x18.$high, x18.$low)), x15, x7); + p224CmovznzU64((x22$24ptr || (x22$24ptr = new ptrType$1(function() { return x22; }, function($v) { x22 = $v; }))), (new p224Uint1(x18.$high, x18.$low)), x15, x7); out1.nilCheck, out1[0] = x19; out1.nilCheck, out1[1] = x20; out1.nilCheck, out1[2] = x21; @@ -215195,26 +216493,26 @@ $packages["crypto/internal/nistec/fiat"] = (function() { var _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, arg1, arg2, out1, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x1, x10, x11, x12, x13, x14, x15, x16, x2, x3, x4, x5, x6, x7, x8, x9, x9$24ptr; x1 = new $Uint64(0, 0); x2 = new $Uint64(0, 0); - _tuple = bits.Sub64(arg1[0], arg2[0], new $Uint64(0, 0)); + _tuple = bits.Sub64((arg1 === ptrType$16.nil && $throwNilPointerError(), arg1)[0], (arg2 === ptrType$16.nil && $throwNilPointerError(), arg2)[0], new $Uint64(0, 0)); x1 = _tuple[0]; x2 = _tuple[1]; x3 = new $Uint64(0, 0); x4 = new $Uint64(0, 0); - _tuple$1 = bits.Sub64(arg1[1], arg2[1], ((x = (new p224Uint1(x2.$high, x2.$low)), new $Uint64(x.$high, x.$low)))); + _tuple$1 = bits.Sub64((arg1 === ptrType$16.nil && $throwNilPointerError(), arg1)[1], (arg2 === ptrType$16.nil && $throwNilPointerError(), arg2)[1], ((x = (new p224Uint1(x2.$high, x2.$low)), new $Uint64(x.$high, x.$low)))); x3 = _tuple$1[0]; x4 = _tuple$1[1]; x5 = new $Uint64(0, 0); x6 = new $Uint64(0, 0); - _tuple$2 = bits.Sub64(arg1[2], arg2[2], ((x$1 = (new p224Uint1(x4.$high, x4.$low)), new $Uint64(x$1.$high, x$1.$low)))); + _tuple$2 = bits.Sub64((arg1 === ptrType$16.nil && $throwNilPointerError(), arg1)[2], (arg2 === ptrType$16.nil && $throwNilPointerError(), arg2)[2], ((x$1 = (new p224Uint1(x4.$high, x4.$low)), new $Uint64(x$1.$high, x$1.$low)))); x5 = _tuple$2[0]; x6 = _tuple$2[1]; x7 = new $Uint64(0, 0); x8 = new $Uint64(0, 0); - _tuple$3 = bits.Sub64(arg1[3], arg2[3], ((x$2 = (new p224Uint1(x6.$high, x6.$low)), new $Uint64(x$2.$high, x$2.$low)))); + _tuple$3 = bits.Sub64((arg1 === ptrType$16.nil && $throwNilPointerError(), arg1)[3], (arg2 === ptrType$16.nil && $throwNilPointerError(), arg2)[3], ((x$2 = (new p224Uint1(x6.$high, x6.$low)), new $Uint64(x$2.$high, x$2.$low)))); x7 = _tuple$3[0]; x8 = _tuple$3[1]; x9 = new $Uint64(0, 0); - p224CmovznzU64((x9$24ptr || (x9$24ptr = new ptrType(function() { return x9; }, function($v) { x9 = $v; }))), (new p224Uint1(x8.$high, x8.$low)), new $Uint64(0, 0), new $Uint64(4294967295, 4294967295)); + p224CmovznzU64((x9$24ptr || (x9$24ptr = new ptrType$1(function() { return x9; }, function($v) { x9 = $v; }))), (new p224Uint1(x8.$high, x8.$low)), new $Uint64(0, 0), new $Uint64(4294967295, 4294967295)); x10 = new $Uint64(0, 0); x11 = new $Uint64(0, 0); _tuple$4 = bits.Add64(x1, ((x$3 = (x$4 = (new p224Uint1(x9.$high, x9.$low)), new p224Uint1(x$4.$high & 0, (x$4.$low & 1) >>> 0)), new $Uint64(x$3.$high, x$3.$low))), new $Uint64(0, 0)); @@ -215247,7 +216545,7 @@ $packages["crypto/internal/nistec/fiat"] = (function() { }; p224FromMontgomery = function p224FromMontgomery$1(out1, arg1) { var _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$2, _tuple$20, _tuple$21, _tuple$22, _tuple$23, _tuple$24, _tuple$25, _tuple$26, _tuple$27, _tuple$28, _tuple$29, _tuple$3, _tuple$30, _tuple$31, _tuple$32, _tuple$33, _tuple$34, _tuple$35, _tuple$36, _tuple$37, _tuple$38, _tuple$39, _tuple$4, _tuple$40, _tuple$41, _tuple$42, _tuple$43, _tuple$44, _tuple$45, _tuple$46, _tuple$47, _tuple$48, _tuple$49, _tuple$5, _tuple$50, _tuple$51, _tuple$52, _tuple$53, _tuple$6, _tuple$7, _tuple$8, _tuple$9, arg1, out1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$25, x$26, x$27, x$28, x$29, x$3, x$30, x$31, x$32, x$33, x$34, x$35, x$36, x$37, x$38, x$39, x$4, x$40, x$41, x$42, x$43, x$44, x$45, x$46, x$47, x$48, x$49, x$5, x$50, x$51, x$52, x$53, x$54, x$6, x$7, x$8, x$9, x1, x10, x100, x101, x102, x103, x104, x105, x106, x107, x108, x11, x110, x111, x111$24ptr, x112, x112$24ptr, x113, x113$24ptr, x114, x114$24ptr, x12, x13, x15, x16, x17, x18, x19, x2, x20, x21, x22, x23, x24, x25, x26, x27, x28, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x4, x41, x42, x43, x44, x45, x46, x47, x48, x49, x5, x50, x51, x52, x53, x54, x56, x57, x58, x59, x6, x60, x61, x62, x63, x64, x65, x67, x68, x69, x7, x70, x71, x72, x73, x74, x75, x76, x77, x78, x79, x8, x80, x82, x83, x84, x85, x86, x87, x88, x89, x9, x90, x91, x93, x94, x95, x96, x97, x98, x99; - x1 = arg1[0]; + x1 = (arg1 === ptrType$16.nil && $throwNilPointerError(), arg1)[0]; x2 = new $Uint64(0, 0); _tuple = bits.Mul64(x1, new $Uint64(4294967295, 4294967295)); x2 = _tuple[1]; @@ -215296,7 +216594,7 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x21 = _tuple$9[1]; x22 = new $Uint64(0, 0); x23 = new $Uint64(0, 0); - _tuple$10 = bits.Add64(x16, arg1[1], new $Uint64(0, 0)); + _tuple$10 = bits.Add64(x16, (arg1 === ptrType$16.nil && $throwNilPointerError(), arg1)[1], new $Uint64(0, 0)); x22 = _tuple$10[0]; x23 = _tuple$10[1]; x24 = new $Uint64(0, 0); @@ -215357,7 +216655,7 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x47 = _tuple$22[1]; x48 = new $Uint64(0, 0); x49 = new $Uint64(0, 0); - _tuple$23 = bits.Add64(x42, arg1[2], new $Uint64(0, 0)); + _tuple$23 = bits.Add64(x42, (arg1 === ptrType$16.nil && $throwNilPointerError(), arg1)[2], new $Uint64(0, 0)); x48 = _tuple$23[0]; x49 = _tuple$23[1]; x50 = new $Uint64(0, 0); @@ -215418,7 +216716,7 @@ $packages["crypto/internal/nistec/fiat"] = (function() { x73 = _tuple$35[1]; x74 = new $Uint64(0, 0); x75 = new $Uint64(0, 0); - _tuple$36 = bits.Add64(x68, arg1[3], new $Uint64(0, 0)); + _tuple$36 = bits.Add64(x68, (arg1 === ptrType$16.nil && $throwNilPointerError(), arg1)[3], new $Uint64(0, 0)); x74 = _tuple$36[0]; x75 = _tuple$36[1]; x76 = new $Uint64(0, 0); @@ -215502,13 +216800,13 @@ $packages["crypto/internal/nistec/fiat"] = (function() { _tuple$53 = bits.Sub64(new $Uint64(0, 0), new $Uint64(0, 0), ((x$54 = (new p224Uint1(x108.$high, x108.$low)), new $Uint64(x$54.$high, x$54.$low)))); x110 = _tuple$53[1]; x111 = new $Uint64(0, 0); - p224CmovznzU64((x111$24ptr || (x111$24ptr = new ptrType(function() { return x111; }, function($v) { x111 = $v; }))), (new p224Uint1(x110.$high, x110.$low)), x101, x94); + p224CmovznzU64((x111$24ptr || (x111$24ptr = new ptrType$1(function() { return x111; }, function($v) { x111 = $v; }))), (new p224Uint1(x110.$high, x110.$low)), x101, x94); x112 = new $Uint64(0, 0); - p224CmovznzU64((x112$24ptr || (x112$24ptr = new ptrType(function() { return x112; }, function($v) { x112 = $v; }))), (new p224Uint1(x110.$high, x110.$low)), x103, x96); + p224CmovznzU64((x112$24ptr || (x112$24ptr = new ptrType$1(function() { return x112; }, function($v) { x112 = $v; }))), (new p224Uint1(x110.$high, x110.$low)), x103, x96); x113 = new $Uint64(0, 0); - p224CmovznzU64((x113$24ptr || (x113$24ptr = new ptrType(function() { return x113; }, function($v) { x113 = $v; }))), (new p224Uint1(x110.$high, x110.$low)), x105, x98); + p224CmovznzU64((x113$24ptr || (x113$24ptr = new ptrType$1(function() { return x113; }, function($v) { x113 = $v; }))), (new p224Uint1(x110.$high, x110.$low)), x105, x98); x114 = new $Uint64(0, 0); - p224CmovznzU64((x114$24ptr || (x114$24ptr = new ptrType(function() { return x114; }, function($v) { x114 = $v; }))), (new p224Uint1(x110.$high, x110.$low)), x107, x100); + p224CmovznzU64((x114$24ptr || (x114$24ptr = new ptrType$1(function() { return x114; }, function($v) { x114 = $v; }))), (new p224Uint1(x110.$high, x110.$low)), x107, x100); out1.nilCheck, out1[0] = x111; out1.nilCheck, out1[1] = x112; out1.nilCheck, out1[2] = x113; @@ -215516,10 +216814,10 @@ $packages["crypto/internal/nistec/fiat"] = (function() { }; p224ToMontgomery = function p224ToMontgomery$1(out1, arg1) { var _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$2, _tuple$20, _tuple$21, _tuple$22, _tuple$23, _tuple$24, _tuple$25, _tuple$26, _tuple$27, _tuple$28, _tuple$29, _tuple$3, _tuple$30, _tuple$31, _tuple$32, _tuple$33, _tuple$34, _tuple$35, _tuple$36, _tuple$37, _tuple$38, _tuple$39, _tuple$4, _tuple$40, _tuple$41, _tuple$42, _tuple$43, _tuple$44, _tuple$45, _tuple$46, _tuple$47, _tuple$48, _tuple$49, _tuple$5, _tuple$50, _tuple$51, _tuple$52, _tuple$53, _tuple$54, _tuple$55, _tuple$56, _tuple$57, _tuple$58, _tuple$59, _tuple$6, _tuple$60, _tuple$61, _tuple$62, _tuple$63, _tuple$64, _tuple$65, _tuple$66, _tuple$67, _tuple$68, _tuple$69, _tuple$7, _tuple$70, _tuple$71, _tuple$72, _tuple$73, _tuple$74, _tuple$75, _tuple$76, _tuple$77, _tuple$78, _tuple$79, _tuple$8, _tuple$80, _tuple$81, _tuple$82, _tuple$83, _tuple$84, _tuple$9, arg1, out1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$25, x$26, x$27, x$28, x$29, x$3, x$30, x$31, x$32, x$33, x$34, x$35, x$36, x$37, x$38, x$39, x$4, x$40, x$41, x$42, x$43, x$44, x$45, x$46, x$47, x$48, x$49, x$5, x$50, x$51, x$52, x$53, x$54, x$55, x$56, x$57, x$58, x$59, x$6, x$60, x$61, x$62, x$63, x$64, x$65, x$66, x$67, x$68, x$69, x$7, x$70, x$71, x$72, x$73, x$74, x$75, x$76, x$77, x$78, x$79, x$8, x$80, x$81, x$9, x1, x10, x100, x101, x102, x103, x105, x106, x107, x108, x109, x11, x110, x111, x112, x113, x114, x116, x117, x118, x119, x12, x120, x121, x122, x123, x124, x125, x126, x127, x128, x129, x13, x130, x131, x132, x133, x134, x135, x136, x137, x138, x139, x14, x140, x141, x142, x143, x144, x145, x147, x148, x149, x15, x150, x151, x152, x153, x154, x155, x156, x158, x159, x16, x160, x161, x162, x163, x164, x165, x166, x167, x168, x169, x17, x170, x171, x172, x173, x175, x176, x176$24ptr, x177, x177$24ptr, x178, x178$24ptr, x179, x179$24ptr, x18, x19, x2, x21, x22, x23, x24, x25, x26, x27, x28, x29, x3, x30, x32, x33, x34, x35, x36, x37, x38, x39, x4, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x5, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x6, x60, x61, x63, x64, x65, x66, x67, x68, x69, x7, x70, x71, x72, x74, x75, x76, x77, x78, x79, x8, x80, x81, x82, x83, x84, x85, x86, x87, x88, x89, x9, x90, x91, x92, x93, x94, x95, x96, x97, x98, x99; - x1 = arg1[1]; - x2 = arg1[2]; - x3 = arg1[3]; - x4 = arg1[0]; + x1 = (arg1 === ptrType$17.nil && $throwNilPointerError(), arg1)[1]; + x2 = (arg1 === ptrType$17.nil && $throwNilPointerError(), arg1)[2]; + x3 = (arg1 === ptrType$17.nil && $throwNilPointerError(), arg1)[3]; + x4 = (arg1 === ptrType$17.nil && $throwNilPointerError(), arg1)[0]; x5 = new $Uint64(0, 0); x6 = new $Uint64(0, 0); _tuple = bits.Mul64(x4, new $Uint64(0, 4294967295)); @@ -215929,13 +217227,13 @@ $packages["crypto/internal/nistec/fiat"] = (function() { _tuple$84 = bits.Sub64(new $Uint64(0, 0), new $Uint64(0, 0), ((x$81 = (new p224Uint1(x173.$high, x173.$low)), new $Uint64(x$81.$high, x$81.$low)))); x175 = _tuple$84[1]; x176 = new $Uint64(0, 0); - p224CmovznzU64((x176$24ptr || (x176$24ptr = new ptrType(function() { return x176; }, function($v) { x176 = $v; }))), (new p224Uint1(x175.$high, x175.$low)), x166, x159); + p224CmovznzU64((x176$24ptr || (x176$24ptr = new ptrType$1(function() { return x176; }, function($v) { x176 = $v; }))), (new p224Uint1(x175.$high, x175.$low)), x166, x159); x177 = new $Uint64(0, 0); - p224CmovznzU64((x177$24ptr || (x177$24ptr = new ptrType(function() { return x177; }, function($v) { x177 = $v; }))), (new p224Uint1(x175.$high, x175.$low)), x168, x161); + p224CmovznzU64((x177$24ptr || (x177$24ptr = new ptrType$1(function() { return x177; }, function($v) { x177 = $v; }))), (new p224Uint1(x175.$high, x175.$low)), x168, x161); x178 = new $Uint64(0, 0); - p224CmovznzU64((x178$24ptr || (x178$24ptr = new ptrType(function() { return x178; }, function($v) { x178 = $v; }))), (new p224Uint1(x175.$high, x175.$low)), x170, x163); + p224CmovznzU64((x178$24ptr || (x178$24ptr = new ptrType$1(function() { return x178; }, function($v) { x178 = $v; }))), (new p224Uint1(x175.$high, x175.$low)), x170, x163); x179 = new $Uint64(0, 0); - p224CmovznzU64((x179$24ptr || (x179$24ptr = new ptrType(function() { return x179; }, function($v) { x179 = $v; }))), (new p224Uint1(x175.$high, x175.$low)), x172, x165); + p224CmovznzU64((x179$24ptr || (x179$24ptr = new ptrType$1(function() { return x179; }, function($v) { x179 = $v; }))), (new p224Uint1(x175.$high, x175.$low)), x172, x165); out1.nilCheck, out1[0] = x176; out1.nilCheck, out1[1] = x177; out1.nilCheck, out1[2] = x178; @@ -215944,13 +217242,13 @@ $packages["crypto/internal/nistec/fiat"] = (function() { p224Selectznz = function p224Selectznz$1(out1, arg1, arg2, arg3) { var arg1, arg2, arg3, out1, x1, x1$24ptr, x2, x2$24ptr, x3, x3$24ptr, x4, x4$24ptr; x1 = new $Uint64(0, 0); - p224CmovznzU64((x1$24ptr || (x1$24ptr = new ptrType(function() { return x1; }, function($v) { x1 = $v; }))), arg1, arg2[0], arg3[0]); + p224CmovznzU64((x1$24ptr || (x1$24ptr = new ptrType$1(function() { return x1; }, function($v) { x1 = $v; }))), arg1, (arg2 === ptrType$13.nil && $throwNilPointerError(), arg2)[0], (arg3 === ptrType$13.nil && $throwNilPointerError(), arg3)[0]); x2 = new $Uint64(0, 0); - p224CmovznzU64((x2$24ptr || (x2$24ptr = new ptrType(function() { return x2; }, function($v) { x2 = $v; }))), arg1, arg2[1], arg3[1]); + p224CmovznzU64((x2$24ptr || (x2$24ptr = new ptrType$1(function() { return x2; }, function($v) { x2 = $v; }))), arg1, (arg2 === ptrType$13.nil && $throwNilPointerError(), arg2)[1], (arg3 === ptrType$13.nil && $throwNilPointerError(), arg3)[1]); x3 = new $Uint64(0, 0); - p224CmovznzU64((x3$24ptr || (x3$24ptr = new ptrType(function() { return x3; }, function($v) { x3 = $v; }))), arg1, arg2[2], arg3[2]); + p224CmovznzU64((x3$24ptr || (x3$24ptr = new ptrType$1(function() { return x3; }, function($v) { x3 = $v; }))), arg1, (arg2 === ptrType$13.nil && $throwNilPointerError(), arg2)[2], (arg3 === ptrType$13.nil && $throwNilPointerError(), arg3)[2]); x4 = new $Uint64(0, 0); - p224CmovznzU64((x4$24ptr || (x4$24ptr = new ptrType(function() { return x4; }, function($v) { x4 = $v; }))), arg1, arg2[3], arg3[3]); + p224CmovznzU64((x4$24ptr || (x4$24ptr = new ptrType$1(function() { return x4; }, function($v) { x4 = $v; }))), arg1, (arg2 === ptrType$13.nil && $throwNilPointerError(), arg2)[3], (arg3 === ptrType$13.nil && $throwNilPointerError(), arg3)[3]); out1.nilCheck, out1[0] = x1; out1.nilCheck, out1[1] = x2; out1.nilCheck, out1[2] = x3; @@ -215958,10 +217256,10 @@ $packages["crypto/internal/nistec/fiat"] = (function() { }; p224ToBytes = function p224ToBytes$1(out1, arg1) { var arg1, out1, x1, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x2, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x3, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x4, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x5, x50, x51, x52, x6, x7, x8, x9; - x1 = arg1[3]; - x2 = arg1[2]; - x3 = arg1[1]; - x4 = arg1[0]; + x1 = (arg1 === ptrType$13.nil && $throwNilPointerError(), arg1)[3]; + x2 = (arg1 === ptrType$13.nil && $throwNilPointerError(), arg1)[2]; + x3 = (arg1 === ptrType$13.nil && $throwNilPointerError(), arg1)[1]; + x4 = (arg1 === ptrType$13.nil && $throwNilPointerError(), arg1)[0]; x5 = ((((x4.$low << 24 >>> 24)) & 255) >>> 0); x6 = $shiftRightUint64(x4, 8); x7 = ((((x6.$low << 24 >>> 24)) & 255) >>> 0); @@ -216041,34 +217339,34 @@ $packages["crypto/internal/nistec/fiat"] = (function() { }; p224FromBytes = function p224FromBytes$1(out1, arg1) { var arg1, out1, x, x$1, x$2, x$3, x1, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x2, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x3, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x4, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x5, x50, x51, x52, x6, x7, x8, x9; - x1 = $shiftLeft64((new $Uint64(0, arg1[27])), 24); - x2 = $shiftLeft64((new $Uint64(0, arg1[26])), 16); - x3 = $shiftLeft64((new $Uint64(0, arg1[25])), 8); - x4 = arg1[24]; - x5 = $shiftLeft64((new $Uint64(0, arg1[23])), 56); - x6 = $shiftLeft64((new $Uint64(0, arg1[22])), 48); - x7 = $shiftLeft64((new $Uint64(0, arg1[21])), 40); - x8 = $shiftLeft64((new $Uint64(0, arg1[20])), 32); - x9 = $shiftLeft64((new $Uint64(0, arg1[19])), 24); - x10 = $shiftLeft64((new $Uint64(0, arg1[18])), 16); - x11 = $shiftLeft64((new $Uint64(0, arg1[17])), 8); - x12 = arg1[16]; - x13 = $shiftLeft64((new $Uint64(0, arg1[15])), 56); - x14 = $shiftLeft64((new $Uint64(0, arg1[14])), 48); - x15 = $shiftLeft64((new $Uint64(0, arg1[13])), 40); - x16 = $shiftLeft64((new $Uint64(0, arg1[12])), 32); - x17 = $shiftLeft64((new $Uint64(0, arg1[11])), 24); - x18 = $shiftLeft64((new $Uint64(0, arg1[10])), 16); - x19 = $shiftLeft64((new $Uint64(0, arg1[9])), 8); - x20 = arg1[8]; - x21 = $shiftLeft64((new $Uint64(0, arg1[7])), 56); - x22 = $shiftLeft64((new $Uint64(0, arg1[6])), 48); - x23 = $shiftLeft64((new $Uint64(0, arg1[5])), 40); - x24 = $shiftLeft64((new $Uint64(0, arg1[4])), 32); - x25 = $shiftLeft64((new $Uint64(0, arg1[3])), 24); - x26 = $shiftLeft64((new $Uint64(0, arg1[2])), 16); - x27 = $shiftLeft64((new $Uint64(0, arg1[1])), 8); - x28 = arg1[0]; + x1 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$18.nil && $throwNilPointerError(), arg1)[27])), 24); + x2 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$18.nil && $throwNilPointerError(), arg1)[26])), 16); + x3 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$18.nil && $throwNilPointerError(), arg1)[25])), 8); + x4 = (arg1 === ptrType$18.nil && $throwNilPointerError(), arg1)[24]; + x5 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$18.nil && $throwNilPointerError(), arg1)[23])), 56); + x6 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$18.nil && $throwNilPointerError(), arg1)[22])), 48); + x7 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$18.nil && $throwNilPointerError(), arg1)[21])), 40); + x8 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$18.nil && $throwNilPointerError(), arg1)[20])), 32); + x9 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$18.nil && $throwNilPointerError(), arg1)[19])), 24); + x10 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$18.nil && $throwNilPointerError(), arg1)[18])), 16); + x11 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$18.nil && $throwNilPointerError(), arg1)[17])), 8); + x12 = (arg1 === ptrType$18.nil && $throwNilPointerError(), arg1)[16]; + x13 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$18.nil && $throwNilPointerError(), arg1)[15])), 56); + x14 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$18.nil && $throwNilPointerError(), arg1)[14])), 48); + x15 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$18.nil && $throwNilPointerError(), arg1)[13])), 40); + x16 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$18.nil && $throwNilPointerError(), arg1)[12])), 32); + x17 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$18.nil && $throwNilPointerError(), arg1)[11])), 24); + x18 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$18.nil && $throwNilPointerError(), arg1)[10])), 16); + x19 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$18.nil && $throwNilPointerError(), arg1)[9])), 8); + x20 = (arg1 === ptrType$18.nil && $throwNilPointerError(), arg1)[8]; + x21 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$18.nil && $throwNilPointerError(), arg1)[7])), 56); + x22 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$18.nil && $throwNilPointerError(), arg1)[6])), 48); + x23 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$18.nil && $throwNilPointerError(), arg1)[5])), 40); + x24 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$18.nil && $throwNilPointerError(), arg1)[4])), 32); + x25 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$18.nil && $throwNilPointerError(), arg1)[3])), 24); + x26 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$18.nil && $throwNilPointerError(), arg1)[2])), 16); + x27 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$18.nil && $throwNilPointerError(), arg1)[1])), 8); + x28 = (arg1 === ptrType$18.nil && $throwNilPointerError(), arg1)[0]; x29 = (x = (new $Uint64(0, x28)), new $Uint64(x27.$high + x.$high, x27.$low + x.$low)); x30 = new $Uint64(x26.$high + x29.$high, x26.$low + x29.$low); x31 = new $Uint64(x25.$high + x30.$high, x25.$low + x30.$low); @@ -216143,7 +217441,7 @@ $packages["crypto/internal/nistec/fiat"] = (function() { var _i, _ref, e, i, in$1, minusOneEncoding, tmp, v; e = this; if (!((v.$length === 28))) { - return [ptrType$4.nil, errors.New("invalid P224Element encoding")]; + return [ptrType$19.nil, errors.New("invalid P224Element encoding")]; } minusOneEncoding = new P224Element.ptr(arrayType$4.zero()).Sub(new P224Element.ptr(arrayType$4.zero()), new P224Element.ptr(arrayType$4.zero()).One()).Bytes(); _ref = v; @@ -216155,7 +217453,7 @@ $packages["crypto/internal/nistec/fiat"] = (function() { break; } if (((i < 0 || i >= v.$length) ? ($throwRuntimeError("index out of range"), undefined) : v.$array[v.$offset + i]) > ((i < 0 || i >= minusOneEncoding.$length) ? ($throwRuntimeError("index out of range"), undefined) : minusOneEncoding.$array[minusOneEncoding.$offset + i])) { - return [ptrType$4.nil, errors.New("invalid P224Element encoding")]; + return [ptrType$19.nil, errors.New("invalid P224Element encoding")]; } _i++; } @@ -216209,17 +217507,21 @@ $packages["crypto/internal/nistec/fiat"] = (function() { i = i + (1) >> 0; } }; - ptrType$1.methods = [{prop: "Invert", name: "Invert", pkg: "", typ: $funcType([ptrType$1], [ptrType$1], false)}, {prop: "One", name: "One", pkg: "", typ: $funcType([], [ptrType$1], false)}, {prop: "Equal", name: "Equal", pkg: "", typ: $funcType([ptrType$1], [$Int], false)}, {prop: "IsZero", name: "IsZero", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([ptrType$1], [ptrType$1], false)}, {prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "bytes", name: "bytes", pkg: "crypto/internal/nistec/fiat", typ: $funcType([ptrType$5], [sliceType], false)}, {prop: "SetBytes", name: "SetBytes", pkg: "", typ: $funcType([sliceType], [ptrType$1, $error], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([ptrType$1, ptrType$1], [ptrType$1], false)}, {prop: "Sub", name: "Sub", pkg: "", typ: $funcType([ptrType$1, ptrType$1], [ptrType$1], false)}, {prop: "Mul", name: "Mul", pkg: "", typ: $funcType([ptrType$1, ptrType$1], [ptrType$1], false)}, {prop: "Square", name: "Square", pkg: "", typ: $funcType([ptrType$1], [ptrType$1], false)}, {prop: "Select", name: "Select", pkg: "", typ: $funcType([ptrType$1, ptrType$1, $Int], [ptrType$1], false)}]; - ptrType$2.methods = [{prop: "Invert", name: "Invert", pkg: "", typ: $funcType([ptrType$2], [ptrType$2], false)}, {prop: "One", name: "One", pkg: "", typ: $funcType([], [ptrType$2], false)}, {prop: "Equal", name: "Equal", pkg: "", typ: $funcType([ptrType$2], [$Int], false)}, {prop: "IsZero", name: "IsZero", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([ptrType$2], [ptrType$2], false)}, {prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "bytes", name: "bytes", pkg: "crypto/internal/nistec/fiat", typ: $funcType([ptrType$6], [sliceType], false)}, {prop: "SetBytes", name: "SetBytes", pkg: "", typ: $funcType([sliceType], [ptrType$2, $error], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "Sub", name: "Sub", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "Mul", name: "Mul", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "Square", name: "Square", pkg: "", typ: $funcType([ptrType$2], [ptrType$2], false)}, {prop: "Select", name: "Select", pkg: "", typ: $funcType([ptrType$2, ptrType$2, $Int], [ptrType$2], false)}]; - ptrType$3.methods = [{prop: "Invert", name: "Invert", pkg: "", typ: $funcType([ptrType$3], [ptrType$3], false)}, {prop: "One", name: "One", pkg: "", typ: $funcType([], [ptrType$3], false)}, {prop: "Equal", name: "Equal", pkg: "", typ: $funcType([ptrType$3], [$Int], false)}, {prop: "IsZero", name: "IsZero", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([ptrType$3], [ptrType$3], false)}, {prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "bytes", name: "bytes", pkg: "crypto/internal/nistec/fiat", typ: $funcType([ptrType$7], [sliceType], false)}, {prop: "SetBytes", name: "SetBytes", pkg: "", typ: $funcType([sliceType], [ptrType$3, $error], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([ptrType$3, ptrType$3], [ptrType$3], false)}, {prop: "Sub", name: "Sub", pkg: "", typ: $funcType([ptrType$3, ptrType$3], [ptrType$3], false)}, {prop: "Mul", name: "Mul", pkg: "", typ: $funcType([ptrType$3, ptrType$3], [ptrType$3], false)}, {prop: "Square", name: "Square", pkg: "", typ: $funcType([ptrType$3], [ptrType$3], false)}, {prop: "Select", name: "Select", pkg: "", typ: $funcType([ptrType$3, ptrType$3, $Int], [ptrType$3], false)}]; - ptrType$4.methods = [{prop: "Invert", name: "Invert", pkg: "", typ: $funcType([ptrType$4], [ptrType$4], false)}, {prop: "One", name: "One", pkg: "", typ: $funcType([], [ptrType$4], false)}, {prop: "Equal", name: "Equal", pkg: "", typ: $funcType([ptrType$4], [$Int], false)}, {prop: "IsZero", name: "IsZero", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([ptrType$4], [ptrType$4], false)}, {prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "bytes", name: "bytes", pkg: "crypto/internal/nistec/fiat", typ: $funcType([ptrType$8], [sliceType], false)}, {prop: "SetBytes", name: "SetBytes", pkg: "", typ: $funcType([sliceType], [ptrType$4, $error], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([ptrType$4, ptrType$4], [ptrType$4], false)}, {prop: "Sub", name: "Sub", pkg: "", typ: $funcType([ptrType$4, ptrType$4], [ptrType$4], false)}, {prop: "Mul", name: "Mul", pkg: "", typ: $funcType([ptrType$4, ptrType$4], [ptrType$4], false)}, {prop: "Square", name: "Square", pkg: "", typ: $funcType([ptrType$4], [ptrType$4], false)}, {prop: "Select", name: "Select", pkg: "", typ: $funcType([ptrType$4, ptrType$4, $Int], [ptrType$4], false)}]; + ptrType$5.methods = [{prop: "Invert", name: "Invert", pkg: "", typ: $funcType([ptrType$5], [ptrType$5], false)}, {prop: "One", name: "One", pkg: "", typ: $funcType([], [ptrType$5], false)}, {prop: "Equal", name: "Equal", pkg: "", typ: $funcType([ptrType$5], [$Int], false)}, {prop: "IsZero", name: "IsZero", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([ptrType$5], [ptrType$5], false)}, {prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "bytes", name: "bytes", pkg: "crypto/internal/nistec/fiat", typ: $funcType([ptrType$4], [sliceType], false)}, {prop: "SetBytes", name: "SetBytes", pkg: "", typ: $funcType([sliceType], [ptrType$5, $error], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([ptrType$5, ptrType$5], [ptrType$5], false)}, {prop: "Sub", name: "Sub", pkg: "", typ: $funcType([ptrType$5, ptrType$5], [ptrType$5], false)}, {prop: "Mul", name: "Mul", pkg: "", typ: $funcType([ptrType$5, ptrType$5], [ptrType$5], false)}, {prop: "Square", name: "Square", pkg: "", typ: $funcType([ptrType$5], [ptrType$5], false)}, {prop: "Select", name: "Select", pkg: "", typ: $funcType([ptrType$5, ptrType$5, $Int], [ptrType$5], false)}]; + ptrType$10.methods = [{prop: "Invert", name: "Invert", pkg: "", typ: $funcType([ptrType$10], [ptrType$10], false)}, {prop: "One", name: "One", pkg: "", typ: $funcType([], [ptrType$10], false)}, {prop: "Equal", name: "Equal", pkg: "", typ: $funcType([ptrType$10], [$Int], false)}, {prop: "IsZero", name: "IsZero", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([ptrType$10], [ptrType$10], false)}, {prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "bytes", name: "bytes", pkg: "crypto/internal/nistec/fiat", typ: $funcType([ptrType$9], [sliceType], false)}, {prop: "SetBytes", name: "SetBytes", pkg: "", typ: $funcType([sliceType], [ptrType$10, $error], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([ptrType$10, ptrType$10], [ptrType$10], false)}, {prop: "Sub", name: "Sub", pkg: "", typ: $funcType([ptrType$10, ptrType$10], [ptrType$10], false)}, {prop: "Mul", name: "Mul", pkg: "", typ: $funcType([ptrType$10, ptrType$10], [ptrType$10], false)}, {prop: "Square", name: "Square", pkg: "", typ: $funcType([ptrType$10], [ptrType$10], false)}, {prop: "Select", name: "Select", pkg: "", typ: $funcType([ptrType$10, ptrType$10, $Int], [ptrType$10], false)}]; + ptrType$15.methods = [{prop: "Invert", name: "Invert", pkg: "", typ: $funcType([ptrType$15], [ptrType$15], false)}, {prop: "One", name: "One", pkg: "", typ: $funcType([], [ptrType$15], false)}, {prop: "Equal", name: "Equal", pkg: "", typ: $funcType([ptrType$15], [$Int], false)}, {prop: "IsZero", name: "IsZero", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([ptrType$15], [ptrType$15], false)}, {prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "bytes", name: "bytes", pkg: "crypto/internal/nistec/fiat", typ: $funcType([ptrType$14], [sliceType], false)}, {prop: "SetBytes", name: "SetBytes", pkg: "", typ: $funcType([sliceType], [ptrType$15, $error], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([ptrType$15, ptrType$15], [ptrType$15], false)}, {prop: "Sub", name: "Sub", pkg: "", typ: $funcType([ptrType$15, ptrType$15], [ptrType$15], false)}, {prop: "Mul", name: "Mul", pkg: "", typ: $funcType([ptrType$15, ptrType$15], [ptrType$15], false)}, {prop: "Square", name: "Square", pkg: "", typ: $funcType([ptrType$15], [ptrType$15], false)}, {prop: "Select", name: "Select", pkg: "", typ: $funcType([ptrType$15, ptrType$15, $Int], [ptrType$15], false)}]; + ptrType$19.methods = [{prop: "Invert", name: "Invert", pkg: "", typ: $funcType([ptrType$19], [ptrType$19], false)}, {prop: "One", name: "One", pkg: "", typ: $funcType([], [ptrType$19], false)}, {prop: "Equal", name: "Equal", pkg: "", typ: $funcType([ptrType$19], [$Int], false)}, {prop: "IsZero", name: "IsZero", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([ptrType$19], [ptrType$19], false)}, {prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "bytes", name: "bytes", pkg: "crypto/internal/nistec/fiat", typ: $funcType([ptrType$18], [sliceType], false)}, {prop: "SetBytes", name: "SetBytes", pkg: "", typ: $funcType([sliceType], [ptrType$19, $error], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([ptrType$19, ptrType$19], [ptrType$19], false)}, {prop: "Sub", name: "Sub", pkg: "", typ: $funcType([ptrType$19, ptrType$19], [ptrType$19], false)}, {prop: "Mul", name: "Mul", pkg: "", typ: $funcType([ptrType$19, ptrType$19], [ptrType$19], false)}, {prop: "Square", name: "Square", pkg: "", typ: $funcType([ptrType$19], [ptrType$19], false)}, {prop: "Select", name: "Select", pkg: "", typ: $funcType([ptrType$19, ptrType$19, $Int], [ptrType$19], false)}]; p521MontgomeryDomainFieldElement.init($Uint64, 9); + p521NonMontgomeryDomainFieldElement.init($Uint64, 9); P521Element.init("crypto/internal/nistec/fiat", [{prop: "x", name: "x", embedded: false, exported: false, typ: p521MontgomeryDomainFieldElement, tag: ""}]); p384MontgomeryDomainFieldElement.init($Uint64, 6); + p384NonMontgomeryDomainFieldElement.init($Uint64, 6); P384Element.init("crypto/internal/nistec/fiat", [{prop: "x", name: "x", embedded: false, exported: false, typ: p384MontgomeryDomainFieldElement, tag: ""}]); p256MontgomeryDomainFieldElement.init($Uint64, 4); + p256NonMontgomeryDomainFieldElement.init($Uint64, 4); P256Element.init("crypto/internal/nistec/fiat", [{prop: "x", name: "x", embedded: false, exported: false, typ: p256MontgomeryDomainFieldElement, tag: ""}]); p224MontgomeryDomainFieldElement.init($Uint64, 4); + p224NonMontgomeryDomainFieldElement.init($Uint64, 4); P224Element.init("crypto/internal/nistec/fiat", [{prop: "x", name: "x", embedded: false, exported: false, typ: p224MontgomeryDomainFieldElement, tag: ""}]); }; $init = function() { @@ -216652,7 +217954,7 @@ $packages["crypto/internal/nistec"] = (function() { while (true) { if (!(i < 16)) { break; } cond = subtle.ConstantTimeByteEq(i, n); - p.Select((x = table, x$1 = i - 1 << 24 >>> 24, ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])), p, cond); + p.Select((x = (table === ptrType$10.nil && $throwNilPointerError(), table), x$1 = i - 1 << 24 >>> 24, ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])), p, cond); i = i + (1) << 24 >>> 24; } }; @@ -216726,12 +218028,12 @@ $packages["crypto/internal/nistec"] = (function() { i = 0; /* while (true) { */ case 1: /* if (!(i < 132)) { break; } */ if(!(i < 132)) { $s = 2; continue; } - (x = p521GeneratorTable, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i]))[0] = NewP521Point().Set(base); + (x = (p521GeneratorTable === ptrType$1.nil && $throwNilPointerError(), p521GeneratorTable), ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i]))[0] = NewP521Point().Set(base); j = 1; /* while (true) { */ case 3: /* if (!(j < 15)) { break; } */ if(!(j < 15)) { $s = 4; continue; } - _r = NewP521Point().Add((x$1 = (x$2 = p521GeneratorTable, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i])), x$3 = j - 1 >> 0, ((x$3 < 0 || x$3 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$3])), base); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - (x$4 = (x$5 = p521GeneratorTable, ((i < 0 || i >= x$5.length) ? ($throwRuntimeError("index out of range"), undefined) : x$5[i])), ((j < 0 || j >= x$4.length) ? ($throwRuntimeError("index out of range"), undefined) : x$4[j] = _r)); + _r = NewP521Point().Add((x$1 = (x$2 = (p521GeneratorTable === ptrType$1.nil && $throwNilPointerError(), p521GeneratorTable), ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i])), x$3 = j - 1 >> 0, ((x$3 < 0 || x$3 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$3])), base); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + (x$4 = (x$5 = (p521GeneratorTable === ptrType$1.nil && $throwNilPointerError(), p521GeneratorTable), ((i < 0 || i >= x$5.length) ? ($throwRuntimeError("index out of range"), undefined) : x$5[i])), ((j < 0 || j >= x$4.length) ? ($throwRuntimeError("index out of range"), undefined) : x$4[j] = _r)); j = j + (1) >> 0; $s = 3; continue; case 4: @@ -216753,7 +218055,7 @@ $packages["crypto/internal/nistec"] = (function() { /* */ } return; } var $f = {$blk: generatorTable, $c: true, $r, p, $s};return $f; }; $ptrType(P521Point).prototype.ScalarBaseMult = function ScalarBaseMult(scalar) { - var {_i, _r, _r$1, _r$2, _ref, byte$1, p, scalar, t, tableIndex, tables, windowValue, x, x$1, $s, $r, $c} = $restore(this, {scalar}); + var {_i, _r, _r$1, _r$2, _ref, byte$1, p, scalar, t, tableIndex, tables, windowValue, $s, $r, $c} = $restore(this, {scalar}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; if (!((scalar.$length === 66))) { @@ -216770,12 +218072,12 @@ $packages["crypto/internal/nistec"] = (function() { /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } byte$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); windowValue = byte$1 >>> 4 << 24 >>> 24; - new ptrType$10((x = tables, ((tableIndex < 0 || tableIndex >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[tableIndex]))).Select(t, windowValue); + new ptrType$10(((tableIndex < 0 || tableIndex >= tables.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(tables, tableIndex, ptrType$10))).Select(t, windowValue); _r$1 = p.Add(p, t); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _r$1; tableIndex = tableIndex - (1) >> 0; windowValue = (byte$1 & 15) >>> 0; - new ptrType$10((x$1 = tables, ((tableIndex < 0 || tableIndex >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[tableIndex]))).Select(t, windowValue); + new ptrType$10(((tableIndex < 0 || tableIndex >= tables.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(tables, tableIndex, ptrType$10))).Select(t, windowValue); _r$2 = p.Add(p, t); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _r$2; tableIndex = tableIndex - (1) >> 0; @@ -216783,7 +218085,7 @@ $packages["crypto/internal/nistec"] = (function() { $s = 2; continue; case 3: $s = -1; return [p, $ifaceNil]; - /* */ } return; } var $f = {$blk: ScalarBaseMult, $c: true, $r, _i, _r, _r$1, _r$2, _ref, byte$1, p, scalar, t, tableIndex, tables, windowValue, x, x$1, $s};return $f; + /* */ } return; } var $f = {$blk: ScalarBaseMult, $c: true, $r, _i, _r, _r$1, _r$2, _ref, byte$1, p, scalar, t, tableIndex, tables, windowValue, $s};return $f; }; p521Sqrt = function p521Sqrt$1(e, x) { var candidate, e, isSquare, square, x; @@ -217107,7 +218409,7 @@ $packages["crypto/internal/nistec"] = (function() { while (true) { if (!(i < 16)) { break; } cond = subtle.ConstantTimeByteEq(i, n); - p.Select((x = table, x$1 = i - 1 << 24 >>> 24, ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])), p, cond); + p.Select((x = (table === ptrType$12.nil && $throwNilPointerError(), table), x$1 = i - 1 << 24 >>> 24, ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])), p, cond); i = i + (1) << 24 >>> 24; } }; @@ -217181,12 +218483,12 @@ $packages["crypto/internal/nistec"] = (function() { i = 0; /* while (true) { */ case 1: /* if (!(i < 96)) { break; } */ if(!(i < 96)) { $s = 2; continue; } - (x = p384GeneratorTable, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i]))[0] = NewP384Point().Set(base); + (x = (p384GeneratorTable === ptrType$3.nil && $throwNilPointerError(), p384GeneratorTable), ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i]))[0] = NewP384Point().Set(base); j = 1; /* while (true) { */ case 3: /* if (!(j < 15)) { break; } */ if(!(j < 15)) { $s = 4; continue; } - _r = NewP384Point().Add((x$1 = (x$2 = p384GeneratorTable, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i])), x$3 = j - 1 >> 0, ((x$3 < 0 || x$3 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$3])), base); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - (x$4 = (x$5 = p384GeneratorTable, ((i < 0 || i >= x$5.length) ? ($throwRuntimeError("index out of range"), undefined) : x$5[i])), ((j < 0 || j >= x$4.length) ? ($throwRuntimeError("index out of range"), undefined) : x$4[j] = _r)); + _r = NewP384Point().Add((x$1 = (x$2 = (p384GeneratorTable === ptrType$3.nil && $throwNilPointerError(), p384GeneratorTable), ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i])), x$3 = j - 1 >> 0, ((x$3 < 0 || x$3 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$3])), base); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + (x$4 = (x$5 = (p384GeneratorTable === ptrType$3.nil && $throwNilPointerError(), p384GeneratorTable), ((i < 0 || i >= x$5.length) ? ($throwRuntimeError("index out of range"), undefined) : x$5[i])), ((j < 0 || j >= x$4.length) ? ($throwRuntimeError("index out of range"), undefined) : x$4[j] = _r)); j = j + (1) >> 0; $s = 3; continue; case 4: @@ -217208,7 +218510,7 @@ $packages["crypto/internal/nistec"] = (function() { /* */ } return; } var $f = {$blk: generatorTable$1, $c: true, $r, p, $s};return $f; }; $ptrType(P384Point).prototype.ScalarBaseMult = function ScalarBaseMult$1(scalar) { - var {_i, _r, _r$1, _r$2, _ref, byte$1, p, scalar, t, tableIndex, tables, windowValue, x, x$1, $s, $r, $c} = $restore(this, {scalar}); + var {_i, _r, _r$1, _r$2, _ref, byte$1, p, scalar, t, tableIndex, tables, windowValue, $s, $r, $c} = $restore(this, {scalar}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; if (!((scalar.$length === 48))) { @@ -217225,12 +218527,12 @@ $packages["crypto/internal/nistec"] = (function() { /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } byte$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); windowValue = byte$1 >>> 4 << 24 >>> 24; - new ptrType$12((x = tables, ((tableIndex < 0 || tableIndex >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[tableIndex]))).Select(t, windowValue); + new ptrType$12(((tableIndex < 0 || tableIndex >= tables.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(tables, tableIndex, ptrType$12))).Select(t, windowValue); _r$1 = p.Add(p, t); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _r$1; tableIndex = tableIndex - (1) >> 0; windowValue = (byte$1 & 15) >>> 0; - new ptrType$12((x$1 = tables, ((tableIndex < 0 || tableIndex >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[tableIndex]))).Select(t, windowValue); + new ptrType$12(((tableIndex < 0 || tableIndex >= tables.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(tables, tableIndex, ptrType$12))).Select(t, windowValue); _r$2 = p.Add(p, t); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _r$2; tableIndex = tableIndex - (1) >> 0; @@ -217238,7 +218540,7 @@ $packages["crypto/internal/nistec"] = (function() { $s = 2; continue; case 3: $s = -1; return [p, $ifaceNil]; - /* */ } return; } var $f = {$blk: ScalarBaseMult$1, $c: true, $r, _i, _r, _r$1, _r$2, _ref, byte$1, p, scalar, t, tableIndex, tables, windowValue, x, x$1, $s};return $f; + /* */ } return; } var $f = {$blk: ScalarBaseMult$1, $c: true, $r, _i, _r, _r$1, _r$2, _ref, byte$1, p, scalar, t, tableIndex, tables, windowValue, $s};return $f; }; p384Sqrt = function p384Sqrt$1(e, x) { var candidate, e, isSquare, square, x; @@ -217652,7 +218954,7 @@ $packages["crypto/internal/nistec"] = (function() { while (true) { if (!(i < 16)) { break; } cond = subtle.ConstantTimeByteEq(i, n); - p.Select((x = table, x$1 = i - 1 << 24 >>> 24, ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])), p, cond); + p.Select((x = (table === ptrType$14.nil && $throwNilPointerError(), table), x$1 = i - 1 << 24 >>> 24, ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])), p, cond); i = i + (1) << 24 >>> 24; } }; @@ -217726,12 +219028,12 @@ $packages["crypto/internal/nistec"] = (function() { i = 0; /* while (true) { */ case 1: /* if (!(i < 64)) { break; } */ if(!(i < 64)) { $s = 2; continue; } - (x = p256GeneratorTable, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i]))[0] = NewP256Point().Set(base); + (x = (p256GeneratorTable === ptrType$5.nil && $throwNilPointerError(), p256GeneratorTable), ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i]))[0] = NewP256Point().Set(base); j = 1; /* while (true) { */ case 3: /* if (!(j < 15)) { break; } */ if(!(j < 15)) { $s = 4; continue; } - _r = NewP256Point().Add((x$1 = (x$2 = p256GeneratorTable, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i])), x$3 = j - 1 >> 0, ((x$3 < 0 || x$3 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$3])), base); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - (x$4 = (x$5 = p256GeneratorTable, ((i < 0 || i >= x$5.length) ? ($throwRuntimeError("index out of range"), undefined) : x$5[i])), ((j < 0 || j >= x$4.length) ? ($throwRuntimeError("index out of range"), undefined) : x$4[j] = _r)); + _r = NewP256Point().Add((x$1 = (x$2 = (p256GeneratorTable === ptrType$5.nil && $throwNilPointerError(), p256GeneratorTable), ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i])), x$3 = j - 1 >> 0, ((x$3 < 0 || x$3 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$3])), base); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + (x$4 = (x$5 = (p256GeneratorTable === ptrType$5.nil && $throwNilPointerError(), p256GeneratorTable), ((i < 0 || i >= x$5.length) ? ($throwRuntimeError("index out of range"), undefined) : x$5[i])), ((j < 0 || j >= x$4.length) ? ($throwRuntimeError("index out of range"), undefined) : x$4[j] = _r)); j = j + (1) >> 0; $s = 3; continue; case 4: @@ -217753,7 +219055,7 @@ $packages["crypto/internal/nistec"] = (function() { /* */ } return; } var $f = {$blk: generatorTable$2, $c: true, $r, p, $s};return $f; }; $ptrType(P256Point).prototype.ScalarBaseMult = function ScalarBaseMult$2(scalar) { - var {_i, _r, _r$1, _r$2, _ref, byte$1, p, scalar, t, tableIndex, tables, windowValue, x, x$1, $s, $r, $c} = $restore(this, {scalar}); + var {_i, _r, _r$1, _r$2, _ref, byte$1, p, scalar, t, tableIndex, tables, windowValue, $s, $r, $c} = $restore(this, {scalar}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; if (!((scalar.$length === 32))) { @@ -217770,12 +219072,12 @@ $packages["crypto/internal/nistec"] = (function() { /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } byte$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); windowValue = byte$1 >>> 4 << 24 >>> 24; - new ptrType$14((x = tables, ((tableIndex < 0 || tableIndex >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[tableIndex]))).Select(t, windowValue); + new ptrType$14(((tableIndex < 0 || tableIndex >= tables.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(tables, tableIndex, ptrType$14))).Select(t, windowValue); _r$1 = p.Add(p, t); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _r$1; tableIndex = tableIndex - (1) >> 0; windowValue = (byte$1 & 15) >>> 0; - new ptrType$14((x$1 = tables, ((tableIndex < 0 || tableIndex >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[tableIndex]))).Select(t, windowValue); + new ptrType$14(((tableIndex < 0 || tableIndex >= tables.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(tables, tableIndex, ptrType$14))).Select(t, windowValue); _r$2 = p.Add(p, t); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _r$2; tableIndex = tableIndex - (1) >> 0; @@ -217783,7 +219085,7 @@ $packages["crypto/internal/nistec"] = (function() { $s = 2; continue; case 3: $s = -1; return [p, $ifaceNil]; - /* */ } return; } var $f = {$blk: ScalarBaseMult$2, $c: true, $r, _i, _r, _r$1, _r$2, _ref, byte$1, p, scalar, t, tableIndex, tables, windowValue, x, x$1, $s};return $f; + /* */ } return; } var $f = {$blk: ScalarBaseMult$2, $c: true, $r, _i, _r, _r$1, _r$2, _ref, byte$1, p, scalar, t, tableIndex, tables, windowValue, $s};return $f; }; p256Sqrt = function p256Sqrt$1(e, x) { var candidate, e, isSquare, square, x; @@ -217858,10 +219160,10 @@ $packages["crypto/internal/nistec"] = (function() { } }; p224SqrtCandidate = function p224SqrtCandidate$1(r, x) { - var {cond, i, j, p224MinusOne, r, s, s$1, s$2, s$3, s$4, s$5, s$6, t0, t1, v, w, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {r, x}); + var {cond, i, j, p224MinusOne, r, s, s$1, s$2, s$3, s$4, s$5, s$6, t0, t1, v, w, x, x$1, x$2, $s, $r, $c} = $restore(this, {r, x}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: $r = p224GGOnce.Do((function p224SqrtCandidate·func1() { - var _i, _ref, i, x$1, x$2, x$3, x$4; + var _i, _ref, i, x$1; p224GG = arrayType$3.zero(); _ref = p224GG; _i = 0; @@ -217869,9 +219171,9 @@ $packages["crypto/internal/nistec"] = (function() { if (!(_i < 96)) { break; } i = _i; if (i === 0) { - (x$1 = p224GG, ((i < 0 || i >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[i])).SetBytes(new sliceType([106, 15, 236, 103, 133, 152, 167, 146, 12, 85, 178, 212, 11, 45, 111, 251, 190, 163, 216, 206, 243, 251, 54, 50, 220, 105, 27, 116])); + ((i < 0 || i >= p224GG.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(p224GG, i, ptrType$7)).SetBytes(new sliceType([106, 15, 236, 103, 133, 152, 167, 146, 12, 85, 178, 212, 11, 45, 111, 251, 190, 163, 216, 206, 243, 251, 54, 50, 220, 105, 27, 116])); } else { - (x$2 = p224GG, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i])).Square((x$3 = p224GG, x$4 = i - 1 >> 0, ((x$4 < 0 || x$4 >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[x$4]))); + ((i < 0 || i >= p224GG.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(p224GG, i, ptrType$7)).Square((x$1 = i - 1 >> 0, ((x$1 < 0 || x$1 >= p224GG.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(p224GG, x$1, ptrType$7)))); } _i++; } @@ -217952,12 +219254,12 @@ $packages["crypto/internal/nistec"] = (function() { j = j + (1) >> 0; } cond = w.Equal(p224MinusOne); - v.Select(t0.Mul(v, (x$1 = p224GG, x$2 = 96 - i >> 0, ((x$2 < 0 || x$2 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$2]))), v, cond); - r.Select(t0.Mul(r, (x$3 = p224GG, x$4 = (96 - i >> 0) - 1 >> 0, ((x$4 < 0 || x$4 >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[x$4]))), r, cond); + v.Select(t0.Mul(v, (x$1 = 96 - i >> 0, ((x$1 < 0 || x$1 >= p224GG.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(p224GG, x$1, ptrType$7)))), v, cond); + r.Select(t0.Mul(r, (x$2 = (96 - i >> 0) - 1 >> 0, ((x$2 < 0 || x$2 >= p224GG.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(p224GG, x$2, ptrType$7)))), r, cond); i = i - (1) >> 0; } $s = -1; return; - /* */ } return; } var $f = {$blk: p224SqrtCandidate$1, $c: true, $r, cond, i, j, p224MinusOne, r, s, s$1, s$2, s$3, s$4, s$5, s$6, t0, t1, v, w, x, x$1, x$2, x$3, x$4, $s};return $f; + /* */ } return; } var $f = {$blk: p224SqrtCandidate$1, $c: true, $r, cond, i, j, p224MinusOne, r, s, s$1, s$2, s$3, s$4, s$5, s$6, t0, t1, v, w, x, x$1, x$2, $s};return $f; }; NewP224Point = function NewP224Point$1() { return new P224Point.ptr(new fiat.P224Element.ptr(arrayType$15.zero()), new fiat.P224Element.ptr(arrayType$15.zero()).One(), new fiat.P224Element.ptr(arrayType$15.zero())); @@ -218260,7 +219562,7 @@ $packages["crypto/internal/nistec"] = (function() { while (true) { if (!(i < 16)) { break; } cond = subtle.ConstantTimeByteEq(i, n); - p.Select((x = table, x$1 = i - 1 << 24 >>> 24, ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])), p, cond); + p.Select((x = (table === ptrType$16.nil && $throwNilPointerError(), table), x$1 = i - 1 << 24 >>> 24, ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])), p, cond); i = i + (1) << 24 >>> 24; } }; @@ -218334,12 +219636,12 @@ $packages["crypto/internal/nistec"] = (function() { i = 0; /* while (true) { */ case 1: /* if (!(i < 56)) { break; } */ if(!(i < 56)) { $s = 2; continue; } - (x = p224GeneratorTable, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i]))[0] = NewP224Point().Set(base); + (x = (p224GeneratorTable === ptrType$8.nil && $throwNilPointerError(), p224GeneratorTable), ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i]))[0] = NewP224Point().Set(base); j = 1; /* while (true) { */ case 3: /* if (!(j < 15)) { break; } */ if(!(j < 15)) { $s = 4; continue; } - _r = NewP224Point().Add((x$1 = (x$2 = p224GeneratorTable, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i])), x$3 = j - 1 >> 0, ((x$3 < 0 || x$3 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$3])), base); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - (x$4 = (x$5 = p224GeneratorTable, ((i < 0 || i >= x$5.length) ? ($throwRuntimeError("index out of range"), undefined) : x$5[i])), ((j < 0 || j >= x$4.length) ? ($throwRuntimeError("index out of range"), undefined) : x$4[j] = _r)); + _r = NewP224Point().Add((x$1 = (x$2 = (p224GeneratorTable === ptrType$8.nil && $throwNilPointerError(), p224GeneratorTable), ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i])), x$3 = j - 1 >> 0, ((x$3 < 0 || x$3 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$3])), base); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + (x$4 = (x$5 = (p224GeneratorTable === ptrType$8.nil && $throwNilPointerError(), p224GeneratorTable), ((i < 0 || i >= x$5.length) ? ($throwRuntimeError("index out of range"), undefined) : x$5[i])), ((j < 0 || j >= x$4.length) ? ($throwRuntimeError("index out of range"), undefined) : x$4[j] = _r)); j = j + (1) >> 0; $s = 3; continue; case 4: @@ -218361,7 +219663,7 @@ $packages["crypto/internal/nistec"] = (function() { /* */ } return; } var $f = {$blk: generatorTable$3, $c: true, $r, p, $s};return $f; }; $ptrType(P224Point).prototype.ScalarBaseMult = function ScalarBaseMult$3(scalar) { - var {_i, _r, _r$1, _r$2, _ref, byte$1, p, scalar, t, tableIndex, tables, windowValue, x, x$1, $s, $r, $c} = $restore(this, {scalar}); + var {_i, _r, _r$1, _r$2, _ref, byte$1, p, scalar, t, tableIndex, tables, windowValue, $s, $r, $c} = $restore(this, {scalar}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; if (!((scalar.$length === 28))) { @@ -218378,12 +219680,12 @@ $packages["crypto/internal/nistec"] = (function() { /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } byte$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); windowValue = byte$1 >>> 4 << 24 >>> 24; - new ptrType$16((x = tables, ((tableIndex < 0 || tableIndex >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[tableIndex]))).Select(t, windowValue); + new ptrType$16(((tableIndex < 0 || tableIndex >= tables.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(tables, tableIndex, ptrType$16))).Select(t, windowValue); _r$1 = p.Add(p, t); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _r$1; tableIndex = tableIndex - (1) >> 0; windowValue = (byte$1 & 15) >>> 0; - new ptrType$16((x$1 = tables, ((tableIndex < 0 || tableIndex >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[tableIndex]))).Select(t, windowValue); + new ptrType$16(((tableIndex < 0 || tableIndex >= tables.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(tables, tableIndex, ptrType$16))).Select(t, windowValue); _r$2 = p.Add(p, t); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _r$2; tableIndex = tableIndex - (1) >> 0; @@ -218391,7 +219693,7 @@ $packages["crypto/internal/nistec"] = (function() { $s = 2; continue; case 3: $s = -1; return [p, $ifaceNil]; - /* */ } return; } var $f = {$blk: ScalarBaseMult$3, $c: true, $r, _i, _r, _r$1, _r$2, _ref, byte$1, p, scalar, t, tableIndex, tables, windowValue, x, x$1, $s};return $f; + /* */ } return; } var $f = {$blk: ScalarBaseMult$3, $c: true, $r, _i, _r, _r$1, _r$2, _ref, byte$1, p, scalar, t, tableIndex, tables, windowValue, $s};return $f; }; p224Sqrt = function p224Sqrt$1(e, x) { var {candidate, e, isSquare, square, x, $s, $r, $c} = $restore(this, {e, x}); @@ -218720,7 +220022,7 @@ $packages["crypto/ecdh"] = (function() { if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [ptrType.nil, err$1]; } - if ((x = c.scalarOrder, $indexPtr(x.$array, x.$offset + 0, ptrType$4)) === $indexPtr(p521Order.$array, p521Order.$offset + 0, ptrType$4)) { + if ((x = c.scalarOrder, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + 0, ptrType$4))) === (0 >= p521Order.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(p521Order.$array, p521Order.$offset + 0, ptrType$4))) { (0 >= key$1.$length ? ($throwRuntimeError("index out of range"), undefined) : key$1.$array[key$1.$offset + 0] = (((0 >= key$1.$length ? ($throwRuntimeError("index out of range"), undefined) : key$1.$array[key$1.$offset + 0]) & (1)) >>> 0)); } (1 >= key$1.$length ? ($throwRuntimeError("index out of range"), undefined) : key$1.$array[key$1.$offset + 1] = (((1 >= key$1.$length ? ($throwRuntimeError("index out of range"), undefined) : key$1.$array[key$1.$offset + 1]) ^ (66)) << 24 >>> 24)); @@ -218758,7 +220060,7 @@ $packages["crypto/ecdh"] = (function() { if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [ptrType.nil, err$1]; } - if ((x = c.scalarOrder, $indexPtr(x.$array, x.$offset + 0, ptrType$4)) === $indexPtr(p521Order.$array, p521Order.$offset + 0, ptrType$4)) { + if ((x = c.scalarOrder, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + 0, ptrType$4))) === (0 >= p521Order.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(p521Order.$array, p521Order.$offset + 0, ptrType$4))) { (0 >= key$1.$length ? ($throwRuntimeError("index out of range"), undefined) : key$1.$array[key$1.$offset + 0] = (((0 >= key$1.$length ? ($throwRuntimeError("index out of range"), undefined) : key$1.$array[key$1.$offset + 0]) & (1)) >>> 0)); } (1 >= key$1.$length ? ($throwRuntimeError("index out of range"), undefined) : key$1.$array[key$1.$offset + 1] = (((1 >= key$1.$length ? ($throwRuntimeError("index out of range"), undefined) : key$1.$array[key$1.$offset + 1]) ^ (66)) << 24 >>> 24)); @@ -218796,7 +220098,7 @@ $packages["crypto/ecdh"] = (function() { if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [ptrType.nil, err$1]; } - if ((x = c.scalarOrder, $indexPtr(x.$array, x.$offset + 0, ptrType$4)) === $indexPtr(p521Order.$array, p521Order.$offset + 0, ptrType$4)) { + if ((x = c.scalarOrder, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + 0, ptrType$4))) === (0 >= p521Order.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(p521Order.$array, p521Order.$offset + 0, ptrType$4))) { (0 >= key$1.$length ? ($throwRuntimeError("index out of range"), undefined) : key$1.$array[key$1.$offset + 0] = (((0 >= key$1.$length ? ($throwRuntimeError("index out of range"), undefined) : key$1.$array[key$1.$offset + 0]) & (1)) >>> 0)); } (1 >= key$1.$length ? ($throwRuntimeError("index out of range"), undefined) : key$1.$array[key$1.$offset + 1] = (((1 >= key$1.$length ? ($throwRuntimeError("index out of range"), undefined) : key$1.$array[key$1.$offset + 1]) ^ (66)) << 24 >>> 24)); @@ -221274,7 +222576,8 @@ $packages["crypto/elliptic"] = (function() { return $pkg; })(); $packages["crypto/internal/bigmod"] = (function() { - var $pkg = {}, $init, errors, big, bits, choice, Nat, Modulus, sliceType, sliceType$1, ptrType, sliceType$2, ptrType$1, ptrType$2, montgomeryLoop, not, ctSelect, ctEq, NewNat, rr, minusInverseModW, NewModulusFromBig, bitLen, montgomeryLoopGeneric; + var $pkg = {}, $init, binary, errors, big, bits, choice, Nat, Modulus, sliceType, sliceType$1, ptrType, ptrType$1, sliceType$2, ptrType$2, not, ctMask, ctEq, NewNat, bigEndianUint, rr, minusInverseModW, NewModulusFromBig, bitLen, addMulVVW; + binary = $packages["encoding/binary"]; errors = $packages["errors"]; big = $packages["math/big"]; bits = $packages["math/bits"]; @@ -221308,21 +222611,16 @@ $packages["crypto/internal/bigmod"] = (function() { sliceType = $sliceType($Uint); sliceType$1 = $sliceType($Uint8); ptrType = $ptrType(Nat); + ptrType$1 = $ptrType(Modulus); sliceType$2 = $sliceType($Int); - ptrType$1 = $ptrType(big.Int); - ptrType$2 = $ptrType(Modulus); - montgomeryLoop = function montgomeryLoop$1(d, a, b, m, m0inv) { - var a, b, d, m, m0inv; - return montgomeryLoopGeneric(d, a, b, m, m0inv); - }; + ptrType$2 = $ptrType(big.Int); not = function not$1(c) { var c; return (1 ^ c) >>> 0; }; - ctSelect = function ctSelect$1(on, x, y) { - var mask, on, x, y; - mask = -((on >>> 0)) >>> 0; - return (y ^ (((mask & (((y ^ x) >>> 0))) >>> 0))) >>> 0; + ctMask = function ctMask$1(on) { + var on; + return -((on >>> 0)) >>> 0; }; ctEq = function ctEq$1(x, y) { var _tuple, _tuple$1, c1, c2, x, y; @@ -221334,7 +222632,7 @@ $packages["crypto/internal/bigmod"] = (function() { }; NewNat = function NewNat$1() { var limbs; - limbs = $makeSlice(sliceType, 0, 67); + limbs = $makeSlice(sliceType, 0, 64); return new Nat.ptr(limbs); }; $pkg.NewNat = NewNat; @@ -221388,60 +222686,44 @@ $packages["crypto/internal/bigmod"] = (function() { return x; }; $ptrType(Nat).prototype.setBig = function setBig(n) { - var _i, _q, _ref, i, limbs, n, outI, requiredLimbs, shift, x, x$1, x$2, x$3, xi, y, y$1; + var _i, _ref, i, limbs, n, x, x$1; x = this; - requiredLimbs = (_q = (((n.BitLen() + 31 >> 0) - 1 >> 0)) / 31, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); - x.reset(requiredLimbs); - outI = 0; - shift = 0; limbs = n.Bits(); + x.reset(limbs.$length); _ref = limbs; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } i = _i; - xi = ((((i < 0 || i >= limbs.$length) ? ($throwRuntimeError("index out of range"), undefined) : limbs.$array[limbs.$offset + i]) >>> 0)); - (x$2 = x.limbs, ((outI < 0 || outI >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + outI] = (((x$1 = x.limbs, ((outI < 0 || outI >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + outI])) | ((((((y = shift, y < 32 ? (xi << y) : 0) >>> 0)) & 2147483647) >>> 0))) >>> 0))); - outI = outI + (1) >> 0; - if (outI === requiredLimbs) { - return x; - } - (x$3 = x.limbs, ((outI < 0 || outI >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + outI] = ((y$1 = ((31 - shift >> 0)), y$1 < 32 ? (xi >>> y$1) : 0) >>> 0))); - shift = shift + (1) >> 0; - if (shift === 31) { - shift = 0; - outI = outI + (1) >> 0; - } + (x$1 = x.limbs, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i] = ((((i < 0 || i >= limbs.$length) ? ($throwRuntimeError("index out of range"), undefined) : limbs.$array[limbs.$offset + i]) >>> 0)))); _i++; } return x; }; $ptrType(Nat).prototype.Bytes = function Bytes(m) { - var _i, _ref, bytes, consumed, limb, m, outI, remainingBits, shift, x, y, y$1; + var _i, _ref, bytes, i, j, limb, m, x, y; x = this; - bytes = $makeSlice(sliceType$1, m.Size()); - shift = 0; - outI = bytes.$length - 1 >> 0; + i = m.Size(); + bytes = $makeSlice(sliceType$1, i); _ref = x.limbs; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } limb = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - remainingBits = 31; + j = 0; while (true) { - if (!(remainingBits >= 8)) { break; } - ((outI < 0 || outI >= bytes.$length) ? ($throwRuntimeError("index out of range"), undefined) : bytes.$array[bytes.$offset + outI] = ((((outI < 0 || outI >= bytes.$length) ? ($throwRuntimeError("index out of range"), undefined) : bytes.$array[bytes.$offset + outI]) | (((y = shift, y < 32 ? (((limb << 24 >>> 24)) << y) : 0) << 24 >>> 24))) >>> 0)); - consumed = 8 - shift >> 0; - limb = (y$1 = (consumed), y$1 < 32 ? (limb >>> y$1) : 0) >>> 0; - remainingBits = remainingBits - (consumed) >> 0; - shift = 0; - outI = outI - (1) >> 0; - if (outI < 0) { - return bytes; - } - } - ((outI < 0 || outI >= bytes.$length) ? ($throwRuntimeError("index out of range"), undefined) : bytes.$array[bytes.$offset + outI] = ((limb << 24 >>> 24))); - shift = remainingBits; + if (!(j < 4)) { break; } + i = i - (1) >> 0; + if (i < 0) { + if (limb === 0) { + break; + } + $panic(new $String("bigmod: modulus is smaller than nat")); + } + ((i < 0 || i >= bytes.$length) ? ($throwRuntimeError("index out of range"), undefined) : bytes.$array[bytes.$offset + i] = ((limb << 24 >>> 24))); + limb = (y = (8), y < 32 ? (limb >>> y) : 0) >>> 0; + j = j + (1) >> 0; + } _i++; } return bytes; @@ -221465,39 +222747,43 @@ $packages["crypto/internal/bigmod"] = (function() { if (!($interfaceIsEqual(err, $ifaceNil))) { return [ptrType.nil, err]; } - leading = 31 - bitLen((x$1 = x.limbs, x$2 = x.limbs.$length - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2]))) >> 0; + leading = 32 - bitLen((x$1 = x.limbs, x$2 = x.limbs.$length - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2]))) >> 0; if (leading < m.leading) { - return [ptrType.nil, errors.New("input overflows the modulus")]; + return [ptrType.nil, errors.New("input overflows the modulus size")]; } - x.sub(x.cmpGeq(m.nat), m.nat); + x.maybeSubtractModulus(0, m); return [x, $ifaceNil]; }; + bigEndianUint = function bigEndianUint$1(buf) { + var buf; + if (false) { + return (($clone(binary.BigEndian, binary.bigEndian).Uint64(buf).$low >>> 0)); + } + return (($clone(binary.BigEndian, binary.bigEndian).Uint32(buf) >>> 0)); + }; $ptrType(Nat).prototype.setBytes = function setBytes(b, m) { - var b, bi, i, m, outI, overflow, shift, x, x$1, x$2, x$3, x$4, x$5, y, y$1; + var _tmp, _tmp$1, b, i, k, m, s, x, x$1, x$2, x$3, x$4, y; x = this; - outI = 0; - shift = 0; x.resetFor(m); - i = b.$length - 1 >> 0; + _tmp = b.$length; + _tmp$1 = 0; + i = _tmp; + k = _tmp$1; while (true) { - if (!(i >= 0)) { break; } - bi = ((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i]); - (x$2 = x.limbs, ((outI < 0 || outI >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + outI] = (((x$1 = x.limbs, ((outI < 0 || outI >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + outI])) | (((y = shift, y < 32 ? (((bi >>> 0)) << y) : 0) >>> 0))) >>> 0))); - shift = shift + (8) >> 0; - if (shift >= 31) { - shift = shift - (31) >> 0; - (x$4 = x.limbs, ((outI < 0 || outI >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + outI] = (((x$3 = x.limbs, ((outI < 0 || outI >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + outI])) & (2147483647)) >>> 0))); - overflow = (y$1 = ((8 - shift >> 0)), y$1 < 32 ? (bi >>> y$1) : 0) << 24 >>> 24; - outI = outI + (1) >> 0; - if (outI >= x.limbs.$length) { - if (overflow > 0 || i > 0) { - return errors.New("input overflows the modulus"); - } - break; - } - (x$5 = x.limbs, ((outI < 0 || outI >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + outI] = ((overflow >>> 0)))); - } + if (!(k < x.limbs.$length && i >= 4)) { break; } + (x$1 = x.limbs, ((k < 0 || k >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + k] = bigEndianUint($subslice(b, (i - 4 >> 0), i)))); + i = i - (4) >> 0; + k = k + (1) >> 0; + } + s = 0; + while (true) { + if (!(s < 32 && k < x.limbs.$length && i > 0)) { break; } + (x$4 = x.limbs, ((k < 0 || k >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + k] = (((x$2 = x.limbs, ((k < 0 || k >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + k])) | (((y = s, y < 32 ? ((((x$3 = i - 1 >> 0, ((x$3 < 0 || x$3 >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + x$3])) >>> 0)) << y) : 0) >>> 0))) >>> 0))); i = i - (1) >> 0; + s = s + (8) >> 0; + } + if (i > 0) { + return errors.New("input overflows the modulus size"); } return $ifaceNil; }; @@ -221531,7 +222817,7 @@ $packages["crypto/internal/bigmod"] = (function() { return zero; }; $ptrType(Nat).prototype.cmpGeq = function cmpGeq(y) { - var c, i, size, x, xLimbs, y, yLimbs; + var _tuple, c, i, size, x, xLimbs, y, yLimbs; x = this; size = x.limbs.$length; xLimbs = $subslice(x.limbs, 0, size); @@ -221540,27 +222826,29 @@ $packages["crypto/internal/bigmod"] = (function() { i = 0; while (true) { if (!(i < size)) { break; } - c = (((((i < 0 || i >= xLimbs.$length) ? ($throwRuntimeError("index out of range"), undefined) : xLimbs.$array[xLimbs.$offset + i]) - ((i < 0 || i >= yLimbs.$length) ? ($throwRuntimeError("index out of range"), undefined) : yLimbs.$array[yLimbs.$offset + i]) >>> 0) - c >>> 0)) >>> 31 >>> 0; + _tuple = bits.Sub(((i < 0 || i >= xLimbs.$length) ? ($throwRuntimeError("index out of range"), undefined) : xLimbs.$array[xLimbs.$offset + i]), ((i < 0 || i >= yLimbs.$length) ? ($throwRuntimeError("index out of range"), undefined) : yLimbs.$array[yLimbs.$offset + i]), c); + c = _tuple[1]; i = i + (1) >> 0; } return not(((c >>> 0))); }; $ptrType(Nat).prototype.assign = function assign(on, y) { - var i, on, size, x, xLimbs, y, yLimbs; + var i, mask, on, size, x, xLimbs, y, yLimbs; x = this; size = x.limbs.$length; xLimbs = $subslice(x.limbs, 0, size); yLimbs = $subslice(y.limbs, 0, size); + mask = ctMask(on); i = 0; while (true) { if (!(i < size)) { break; } - ((i < 0 || i >= xLimbs.$length) ? ($throwRuntimeError("index out of range"), undefined) : xLimbs.$array[xLimbs.$offset + i] = ctSelect(on, ((i < 0 || i >= yLimbs.$length) ? ($throwRuntimeError("index out of range"), undefined) : yLimbs.$array[yLimbs.$offset + i]), ((i < 0 || i >= xLimbs.$length) ? ($throwRuntimeError("index out of range"), undefined) : xLimbs.$array[xLimbs.$offset + i]))); + ((i < 0 || i >= xLimbs.$length) ? ($throwRuntimeError("index out of range"), undefined) : xLimbs.$array[xLimbs.$offset + i] = ((((i < 0 || i >= xLimbs.$length) ? ($throwRuntimeError("index out of range"), undefined) : xLimbs.$array[xLimbs.$offset + i]) ^ (((mask & (((((i < 0 || i >= xLimbs.$length) ? ($throwRuntimeError("index out of range"), undefined) : xLimbs.$array[xLimbs.$offset + i]) ^ ((i < 0 || i >= yLimbs.$length) ? ($throwRuntimeError("index out of range"), undefined) : yLimbs.$array[yLimbs.$offset + i])) >>> 0))) >>> 0))) >>> 0)); i = i + (1) >> 0; } return x; }; - $ptrType(Nat).prototype.add = function add(on, y) { - var c, i, on, res, size, x, xLimbs, y, yLimbs; + $ptrType(Nat).prototype.add = function add(y) { + var _tuple, c, i, size, x, xLimbs, y, yLimbs; c = 0; x = this; size = x.limbs.$length; @@ -221569,15 +222857,15 @@ $packages["crypto/internal/bigmod"] = (function() { i = 0; while (true) { if (!(i < size)) { break; } - res = (((i < 0 || i >= xLimbs.$length) ? ($throwRuntimeError("index out of range"), undefined) : xLimbs.$array[xLimbs.$offset + i]) + ((i < 0 || i >= yLimbs.$length) ? ($throwRuntimeError("index out of range"), undefined) : yLimbs.$array[yLimbs.$offset + i]) >>> 0) + c >>> 0; - ((i < 0 || i >= xLimbs.$length) ? ($throwRuntimeError("index out of range"), undefined) : xLimbs.$array[xLimbs.$offset + i] = ctSelect(on, (res & 2147483647) >>> 0, ((i < 0 || i >= xLimbs.$length) ? ($throwRuntimeError("index out of range"), undefined) : xLimbs.$array[xLimbs.$offset + i]))); - c = res >>> 31 >>> 0; + _tuple = bits.Add(((i < 0 || i >= xLimbs.$length) ? ($throwRuntimeError("index out of range"), undefined) : xLimbs.$array[xLimbs.$offset + i]), ((i < 0 || i >= yLimbs.$length) ? ($throwRuntimeError("index out of range"), undefined) : yLimbs.$array[yLimbs.$offset + i]), c); + ((i < 0 || i >= xLimbs.$length) ? ($throwRuntimeError("index out of range"), undefined) : xLimbs.$array[xLimbs.$offset + i] = _tuple[0]); + c = _tuple[1]; i = i + (1) >> 0; } return c; }; - $ptrType(Nat).prototype.sub = function sub(on, y) { - var c, i, on, res, size, x, xLimbs, y, yLimbs; + $ptrType(Nat).prototype.sub = function sub(y) { + var _tuple, c, i, size, x, xLimbs, y, yLimbs; c = 0; x = this; size = x.limbs.$length; @@ -221586,9 +222874,9 @@ $packages["crypto/internal/bigmod"] = (function() { i = 0; while (true) { if (!(i < size)) { break; } - res = (((i < 0 || i >= xLimbs.$length) ? ($throwRuntimeError("index out of range"), undefined) : xLimbs.$array[xLimbs.$offset + i]) - ((i < 0 || i >= yLimbs.$length) ? ($throwRuntimeError("index out of range"), undefined) : yLimbs.$array[yLimbs.$offset + i]) >>> 0) - c >>> 0; - ((i < 0 || i >= xLimbs.$length) ? ($throwRuntimeError("index out of range"), undefined) : xLimbs.$array[xLimbs.$offset + i] = ctSelect(on, (res & 2147483647) >>> 0, ((i < 0 || i >= xLimbs.$length) ? ($throwRuntimeError("index out of range"), undefined) : xLimbs.$array[xLimbs.$offset + i]))); - c = res >>> 31 >>> 0; + _tuple = bits.Sub(((i < 0 || i >= xLimbs.$length) ? ($throwRuntimeError("index out of range"), undefined) : xLimbs.$array[xLimbs.$offset + i]), ((i < 0 || i >= yLimbs.$length) ? ($throwRuntimeError("index out of range"), undefined) : yLimbs.$array[yLimbs.$offset + i]), c); + ((i < 0 || i >= xLimbs.$length) ? ($throwRuntimeError("index out of range"), undefined) : xLimbs.$array[xLimbs.$offset + i] = _tuple[0]); + c = _tuple[1]; i = i + (1) >> 0; } return c; @@ -221615,16 +222903,22 @@ $packages["crypto/internal/bigmod"] = (function() { y = $imul(y, ((2 - ($imul(x, y) >>> 0) >>> 0))) >>> 0; i = i + (1) >> 0; } - return 2147483648 - (((y & 2147483647) >>> 0)) >>> 0; + return -y >>> 0; }; NewModulusFromBig = function NewModulusFromBig$1(n) { - var m, n, x, x$1, x$2; + var b, m, n, x, x$1, x$2; + b = n.Bits(); + if (b.$length === 0) { + return [ptrType$1.nil, errors.New("modulus must be >= 0")]; + } else if (!(((((0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]) & 1) >>> 0) === 1))) { + return [ptrType$1.nil, errors.New("modulus must be odd")]; + } m = new Modulus.ptr(ptrType.nil, 0, 0, ptrType.nil); m.nat = NewNat().setBig(n); - m.leading = 31 - bitLen((x = m.nat.limbs, x$1 = m.nat.limbs.$length - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1]))) >> 0; + m.leading = 32 - bitLen((x = m.nat.limbs, x$1 = m.nat.limbs.$length - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1]))) >> 0; m.m0inv = minusInverseModW((x$2 = m.nat.limbs, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0]))); m.rr = rr(m); - return m; + return [m, $ifaceNil]; }; $pkg.NewModulusFromBig = NewModulusFromBig; bitLen = function bitLen$1(n) { @@ -221645,7 +222939,7 @@ $packages["crypto/internal/bigmod"] = (function() { $ptrType(Modulus).prototype.BitLen = function BitLen() { var m; m = this; - return ($imul(m.nat.limbs.$length, 31)) - (m.leading) >> 0; + return ($imul(m.nat.limbs.$length, 32)) - (m.leading) >> 0; }; $ptrType(Modulus).prototype.Nat = function Nat$1() { var m; @@ -221653,7 +222947,7 @@ $packages["crypto/internal/bigmod"] = (function() { return m.nat; }; $ptrType(Nat).prototype.shiftIn = function shiftIn(y, m) { - var borrow, carry, d, dLimbs, i, i$1, l, m, mLimbs, needSubtraction, res, size, x, xLimbs, y, y$1; + var _tuple, _tuple$1, borrow, carry, d, dLimbs, i, i$1, l, m, mLimbs, mask, needSubtraction, size, x, xLimbs, y, y$1; x = this; d = NewNat().resetFor(m); size = m.nat.limbs.$length; @@ -221661,24 +222955,25 @@ $packages["crypto/internal/bigmod"] = (function() { dLimbs = $subslice(d.limbs, 0, size); mLimbs = $subslice(m.nat.limbs, 0, size); needSubtraction = 0; - i = 30; + i = 31; while (true) { if (!(i >= 0)) { break; } carry = ((((y$1 = i, y$1 < 32 ? (y >>> y$1) : 0) >>> 0)) & 1) >>> 0; borrow = 0; + mask = ctMask(needSubtraction); i$1 = 0; while (true) { if (!(i$1 < size)) { break; } - l = ctSelect(needSubtraction, ((i$1 < 0 || i$1 >= dLimbs.$length) ? ($throwRuntimeError("index out of range"), undefined) : dLimbs.$array[dLimbs.$offset + i$1]), ((i$1 < 0 || i$1 >= xLimbs.$length) ? ($throwRuntimeError("index out of range"), undefined) : xLimbs.$array[xLimbs.$offset + i$1])); - res = (l << 1 >>> 0) + carry >>> 0; - ((i$1 < 0 || i$1 >= xLimbs.$length) ? ($throwRuntimeError("index out of range"), undefined) : xLimbs.$array[xLimbs.$offset + i$1] = ((res & 2147483647) >>> 0)); - carry = res >>> 31 >>> 0; - res = (((i$1 < 0 || i$1 >= xLimbs.$length) ? ($throwRuntimeError("index out of range"), undefined) : xLimbs.$array[xLimbs.$offset + i$1]) - ((i$1 < 0 || i$1 >= mLimbs.$length) ? ($throwRuntimeError("index out of range"), undefined) : mLimbs.$array[mLimbs.$offset + i$1]) >>> 0) - borrow >>> 0; - ((i$1 < 0 || i$1 >= dLimbs.$length) ? ($throwRuntimeError("index out of range"), undefined) : dLimbs.$array[dLimbs.$offset + i$1] = ((res & 2147483647) >>> 0)); - borrow = res >>> 31 >>> 0; + l = (((i$1 < 0 || i$1 >= xLimbs.$length) ? ($throwRuntimeError("index out of range"), undefined) : xLimbs.$array[xLimbs.$offset + i$1]) ^ (((mask & (((((i$1 < 0 || i$1 >= xLimbs.$length) ? ($throwRuntimeError("index out of range"), undefined) : xLimbs.$array[xLimbs.$offset + i$1]) ^ ((i$1 < 0 || i$1 >= dLimbs.$length) ? ($throwRuntimeError("index out of range"), undefined) : dLimbs.$array[dLimbs.$offset + i$1])) >>> 0))) >>> 0))) >>> 0; + _tuple = bits.Add(l, l, carry); + ((i$1 < 0 || i$1 >= xLimbs.$length) ? ($throwRuntimeError("index out of range"), undefined) : xLimbs.$array[xLimbs.$offset + i$1] = _tuple[0]); + carry = _tuple[1]; + _tuple$1 = bits.Sub(((i$1 < 0 || i$1 >= xLimbs.$length) ? ($throwRuntimeError("index out of range"), undefined) : xLimbs.$array[xLimbs.$offset + i$1]), ((i$1 < 0 || i$1 >= mLimbs.$length) ? ($throwRuntimeError("index out of range"), undefined) : mLimbs.$array[mLimbs.$offset + i$1]), borrow); + ((i$1 < 0 || i$1 >= dLimbs.$length) ? ($throwRuntimeError("index out of range"), undefined) : dLimbs.$array[dLimbs.$offset + i$1] = _tuple$1[0]); + borrow = _tuple$1[1]; i$1 = i$1 + (1) >> 0; } - needSubtraction = ctEq(carry, borrow); + needSubtraction = (not(((borrow >>> 0))) | ((carry >>> 0))) >>> 0; i = i - (1) >> 0; } return x.assign(needSubtraction, d); @@ -221707,121 +223002,79 @@ $packages["crypto/internal/bigmod"] = (function() { return out; }; $ptrType(Nat).prototype.ExpandFor = function ExpandFor(m) { - var m, out; - out = this; - return out.expand(m.nat.limbs.$length); + var m, x; + x = this; + return x.expand(m.nat.limbs.$length); }; $ptrType(Nat).prototype.resetFor = function resetFor(m) { var m, out; out = this; return out.reset(m.nat.limbs.$length); }; + $ptrType(Nat).prototype.maybeSubtractModulus = function maybeSubtractModulus(always, m) { + var always, keep, m, t, underflow, x; + x = this; + t = NewNat().set(x); + underflow = t.sub(m.nat); + keep = (not(((underflow >>> 0))) | (always)) >>> 0; + x.assign(keep, t); + }; $ptrType(Nat).prototype.Sub = function Sub(y, m) { - var m, underflow, x, y; + var m, t, underflow, x, y; x = this; - underflow = x.sub(1, y); - x.add(((underflow >>> 0)), m.nat); + underflow = x.sub(y); + t = NewNat().set(x); + t.add(m.nat); + x.assign(((underflow >>> 0)), t); return x; }; $ptrType(Nat).prototype.Add = function Add(y, m) { - var m, needSubtraction, overflow, underflow, x, y; + var m, overflow, x, y; x = this; - overflow = x.add(1, y); - underflow = not(x.cmpGeq(m.nat)); - needSubtraction = ctEq(overflow, ((underflow >>> 0))); - x.sub(needSubtraction, m.nat); + overflow = x.add(y); + x.maybeSubtractModulus(((overflow >>> 0)), m); return x; }; $ptrType(Nat).prototype.montgomeryRepresentation = function montgomeryRepresentation(m) { var m, x; x = this; - return x.montgomeryMul(NewNat().set(x), m.rr, m); + return x.montgomeryMul(x, m.rr, m); }; $ptrType(Nat).prototype.montgomeryReduction = function montgomeryReduction(m) { - var m, t0, t1, x, x$1; + var m, one, x, x$1; x = this; - t0 = NewNat().set(x); - t1 = NewNat().ExpandFor(m); - (x$1 = t1.limbs, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0] = 1)); - return x.montgomeryMul(t0, t1, m); + one = NewNat().ExpandFor(m); + (x$1 = one.limbs, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0] = 1)); + return x.montgomeryMul(x, one, m); }; - $ptrType(Nat).prototype.montgomeryMul = function montgomeryMul(a, b, m) { - var a, b, d, m, needSubtraction, overflow, underflow; - d = this; - d.resetFor(m); - if (!((a.limbs.$length === m.nat.limbs.$length)) || !((b.limbs.$length === m.nat.limbs.$length))) { - $panic(new $String("bigmod: invalid montgomeryMul input")); - } - overflow = montgomeryLoop(d.limbs, a.limbs, b.limbs, m.nat.limbs, m.m0inv); - underflow = not(d.cmpGeq(m.nat)); - needSubtraction = ctEq(overflow, ((underflow >>> 0))); - d.sub(needSubtraction, m.nat); - return d; - }; - montgomeryLoopGeneric = function montgomeryLoopGeneric$1(d, a, b, m, m0inv) { - var _i, _ref, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, a, ai, b, c, c$1, carry, d, f, hi, hi$1, j, lo, lo$1, m, m0inv, overflow, size, x, x$1, z, z_hi, z_hi$1, z_lo, z_lo$1; - overflow = 0; - size = d.$length; - a = $subslice(a, 0, size); - b = $subslice(b, 0, size); - m = $subslice(m, 0, size); - _ref = a; + addMulVVW = function addMulVVW$1(z, x, y) { + var _i, _ref, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, c, carry, hi, i, lo, x, x$1, y, z; + carry = 0; + $unused((x$1 = z.$length - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1]))); + _ref = z; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } - ai = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _tuple = bits.Mul(ai, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0])); + i = _i; + _tuple = bits.Mul(((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]), y); hi = _tuple[0]; lo = _tuple[1]; - _tuple$1 = bits.Add((0 >= d.$length ? ($throwRuntimeError("index out of range"), undefined) : d.$array[d.$offset + 0]), lo, 0); - z_lo = _tuple$1[0]; + _tuple$1 = bits.Add(lo, ((i < 0 || i >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + i]), 0); + lo = _tuple$1[0]; c = _tuple$1[1]; - f = ((($imul(z_lo, m0inv) >>> 0)) & 2147483647) >>> 0; - _tuple$2 = bits.Add(0, hi, c); - z_hi = _tuple$2[0]; - _tuple$3 = bits.Mul(f, (0 >= m.$length ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + 0])); - hi = _tuple$3[0]; - lo = _tuple$3[1]; - _tuple$4 = bits.Add(z_lo, lo, 0); - z_lo = _tuple$4[0]; - c = _tuple$4[1]; - _tuple$5 = bits.Add(z_hi, hi, c); - z_hi = _tuple$5[0]; - carry = ((z_hi << 1 >>> 0) | (z_lo >>> 31 >>> 0)) >>> 0; - j = 1; - while (true) { - if (!(j < size)) { break; } - _tuple$6 = bits.Mul(ai, ((j < 0 || j >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + j])); - hi$1 = _tuple$6[0]; - lo$1 = _tuple$6[1]; - _tuple$7 = bits.Add(((j < 0 || j >= d.$length) ? ($throwRuntimeError("index out of range"), undefined) : d.$array[d.$offset + j]), lo$1, 0); - z_lo$1 = _tuple$7[0]; - c$1 = _tuple$7[1]; - _tuple$8 = bits.Add(0, hi$1, c$1); - z_hi$1 = _tuple$8[0]; - _tuple$9 = bits.Mul(f, ((j < 0 || j >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + j])); - hi$1 = _tuple$9[0]; - lo$1 = _tuple$9[1]; - _tuple$10 = bits.Add(z_lo$1, lo$1, 0); - z_lo$1 = _tuple$10[0]; - c$1 = _tuple$10[1]; - _tuple$11 = bits.Add(z_hi$1, hi$1, c$1); - z_hi$1 = _tuple$11[0]; - _tuple$12 = bits.Add(z_lo$1, carry, 0); - z_lo$1 = _tuple$12[0]; - c$1 = _tuple$12[1]; - _tuple$13 = bits.Add(z_hi$1, 0, c$1); - z_hi$1 = _tuple$13[0]; - (x = j - 1 >> 0, ((x < 0 || x >= d.$length) ? ($throwRuntimeError("index out of range"), undefined) : d.$array[d.$offset + x] = ((z_lo$1 & 2147483647) >>> 0))); - carry = ((z_hi$1 << 1 >>> 0) | (z_lo$1 >>> 31 >>> 0)) >>> 0; - j = j + (1) >> 0; - } - z = overflow + carry >>> 0; - (x$1 = size - 1 >> 0, ((x$1 < 0 || x$1 >= d.$length) ? ($throwRuntimeError("index out of range"), undefined) : d.$array[d.$offset + x$1] = ((z & 2147483647) >>> 0))); - overflow = z >>> 31 >>> 0; + _tuple$2 = bits.Add(hi, 0, c); + hi = _tuple$2[0]; + _tuple$3 = bits.Add(lo, carry, 0); + lo = _tuple$3[0]; + c = _tuple$3[1]; + _tuple$4 = bits.Add(hi, 0, c); + hi = _tuple$4[0]; + carry = hi; + ((i < 0 || i >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + i] = lo); _i++; } - return overflow; + carry = carry; + return carry; }; $ptrType(Nat).prototype.Mul = function Mul(y, m) { var m, x, xR, y; @@ -221830,7 +223083,7 @@ $packages["crypto/internal/bigmod"] = (function() { return x.montgomeryMul(xR, y, m); }; $ptrType(Nat).prototype.Exp = function Exp(x, e, m) { - var _i, _i$1, _i$2, _ref, _ref$1, _ref$2, b, e, i, i$1, j, k, m, out, t0, t1, table, x, x$1, x$2, y; + var _i, _i$1, _i$2, _ref, _ref$1, _ref$2, b, e, i, i$1, j, k, m, out, table, tmp, x, x$1, x$2, y; out = this; table = $toNativeArray($kindPtr, [NewNat(), NewNat(), NewNat(), NewNat(), NewNat(), NewNat(), NewNat(), NewNat(), NewNat(), NewNat(), NewNat(), NewNat(), NewNat(), NewNat(), NewNat()]); table[0].set(x).montgomeryRepresentation(m); @@ -221843,8 +223096,7 @@ $packages["crypto/internal/bigmod"] = (function() { out.resetFor(m); (x$2 = out.limbs, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0] = 1)); out.montgomeryRepresentation(m); - t0 = NewNat().ExpandFor(m); - t1 = NewNat().ExpandFor(m); + tmp = NewNat().ExpandFor(m); _ref = e; _i = 0; while (true) { @@ -221855,38 +223107,84 @@ $packages["crypto/internal/bigmod"] = (function() { while (true) { if (!(_i$1 < _ref$1.$length)) { break; } j = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - t1.montgomeryMul(out, out, m); - out.montgomeryMul(t1, t1, m); - t1.montgomeryMul(out, out, m); - out.montgomeryMul(t1, t1, m); + out.montgomeryMul(out, out, m); + out.montgomeryMul(out, out, m); + out.montgomeryMul(out, out, m); + out.montgomeryMul(out, out, m); k = (((((((y = j, y < 32 ? (b >>> y) : 0) << 24 >>> 24)) & 15) >>> 0) >>> 0)); _ref$2 = table; _i$2 = 0; while (true) { if (!(_i$2 < 15)) { break; } i$1 = _i$2; - t0.assign(ctEq(k, (((i$1 + 1 >> 0) >>> 0))), ((i$1 < 0 || i$1 >= table.length) ? ($throwRuntimeError("index out of range"), undefined) : table[i$1])); + tmp.assign(ctEq(k, (((i$1 + 1 >> 0) >>> 0))), ((i$1 < 0 || i$1 >= table.length) ? ($throwRuntimeError("index out of range"), undefined) : table[i$1])); _i$2++; } - t1.montgomeryMul(out, t0, m); - out.assign(not(ctEq(k, 0)), t1); + tmp.montgomeryMul(out, tmp, m); + out.assign(not(ctEq(k, 0)), tmp); _i$1++; } _i++; } return out.montgomeryReduction(m); }; - ptrType.methods = [{prop: "expand", name: "expand", pkg: "crypto/internal/bigmod", typ: $funcType([$Int], [ptrType], false)}, {prop: "reset", name: "reset", pkg: "crypto/internal/bigmod", typ: $funcType([$Int], [ptrType], false)}, {prop: "set", name: "set", pkg: "crypto/internal/bigmod", typ: $funcType([ptrType], [ptrType], false)}, {prop: "setBig", name: "setBig", pkg: "crypto/internal/bigmod", typ: $funcType([ptrType$1], [ptrType], false)}, {prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([ptrType$2], [sliceType$1], false)}, {prop: "SetBytes", name: "SetBytes", pkg: "", typ: $funcType([sliceType$1, ptrType$2], [ptrType, $error], false)}, {prop: "SetOverflowingBytes", name: "SetOverflowingBytes", pkg: "", typ: $funcType([sliceType$1, ptrType$2], [ptrType, $error], false)}, {prop: "setBytes", name: "setBytes", pkg: "crypto/internal/bigmod", typ: $funcType([sliceType$1, ptrType$2], [$error], false)}, {prop: "Equal", name: "Equal", pkg: "", typ: $funcType([ptrType], [choice], false)}, {prop: "IsZero", name: "IsZero", pkg: "", typ: $funcType([], [choice], false)}, {prop: "cmpGeq", name: "cmpGeq", pkg: "crypto/internal/bigmod", typ: $funcType([ptrType], [choice], false)}, {prop: "assign", name: "assign", pkg: "crypto/internal/bigmod", typ: $funcType([choice, ptrType], [ptrType], false)}, {prop: "add", name: "add", pkg: "crypto/internal/bigmod", typ: $funcType([choice, ptrType], [$Uint], false)}, {prop: "sub", name: "sub", pkg: "crypto/internal/bigmod", typ: $funcType([choice, ptrType], [$Uint], false)}, {prop: "shiftIn", name: "shiftIn", pkg: "crypto/internal/bigmod", typ: $funcType([$Uint, ptrType$2], [ptrType], false)}, {prop: "Mod", name: "Mod", pkg: "", typ: $funcType([ptrType, ptrType$2], [ptrType], false)}, {prop: "ExpandFor", name: "ExpandFor", pkg: "", typ: $funcType([ptrType$2], [ptrType], false)}, {prop: "resetFor", name: "resetFor", pkg: "crypto/internal/bigmod", typ: $funcType([ptrType$2], [ptrType], false)}, {prop: "Sub", name: "Sub", pkg: "", typ: $funcType([ptrType, ptrType$2], [ptrType], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([ptrType, ptrType$2], [ptrType], false)}, {prop: "montgomeryRepresentation", name: "montgomeryRepresentation", pkg: "crypto/internal/bigmod", typ: $funcType([ptrType$2], [ptrType], false)}, {prop: "montgomeryReduction", name: "montgomeryReduction", pkg: "crypto/internal/bigmod", typ: $funcType([ptrType$2], [ptrType], false)}, {prop: "montgomeryMul", name: "montgomeryMul", pkg: "crypto/internal/bigmod", typ: $funcType([ptrType, ptrType, ptrType$2], [ptrType], false)}, {prop: "Mul", name: "Mul", pkg: "", typ: $funcType([ptrType, ptrType$2], [ptrType], false)}, {prop: "Exp", name: "Exp", pkg: "", typ: $funcType([ptrType, sliceType$1, ptrType$2], [ptrType], false)}]; - ptrType$2.methods = [{prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "BitLen", name: "BitLen", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Nat", name: "Nat", pkg: "", typ: $funcType([], [ptrType], false)}]; + $ptrType(Nat).prototype.ExpShort = function ExpShort(x, e, m) { + var e, i, k, m, out, tmp, x, x$1, xR, y; + out = this; + xR = NewNat().set(x).montgomeryRepresentation(m); + out.resetFor(m); + (x$1 = out.limbs, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0] = 1)); + out.montgomeryRepresentation(m); + tmp = NewNat().ExpandFor(m); + i = 32 - bitLen(e) >> 0; + while (true) { + if (!(i < 32)) { break; } + out.montgomeryMul(out, out, m); + k = ((((y = (((32 - i >> 0) - 1 >> 0)), y < 32 ? (e >>> y) : 0) >>> 0)) & 1) >>> 0; + tmp.montgomeryMul(out, xR, m); + out.assign(ctEq(k, 1), tmp); + i = i + (1) >> 0; + } + return out.montgomeryReduction(m); + }; + $ptrType(Nat).prototype.montgomeryMul = function montgomeryMul(a, b, m) { + var T, Y, _tuple, a, aLimbs, b, bLimbs, c, c1, c2, d, i, m, mLimbs, n, x, x$1, x$2; + x = this; + n = m.nat.limbs.$length; + mLimbs = $subslice(m.nat.limbs, 0, n); + aLimbs = $subslice(a.limbs, 0, n); + bLimbs = $subslice(b.limbs, 0, n); + T = $makeSlice(sliceType, ($imul(n, 2))); + c = 0; + i = 0; + while (true) { + if (!(i < n)) { break; } + $unused((x$1 = n + i >> 0, ((x$1 < 0 || x$1 >= T.$length) ? ($throwRuntimeError("index out of range"), undefined) : T.$array[T.$offset + x$1]))); + d = ((i < 0 || i >= bLimbs.$length) ? ($throwRuntimeError("index out of range"), undefined) : bLimbs.$array[bLimbs.$offset + i]); + c1 = addMulVVW($subslice(T, i, (n + i >> 0)), aLimbs, d); + Y = $imul(((i < 0 || i >= T.$length) ? ($throwRuntimeError("index out of range"), undefined) : T.$array[T.$offset + i]), m.m0inv) >>> 0; + c2 = addMulVVW($subslice(T, i, (n + i >> 0)), mLimbs, Y); + _tuple = bits.Add(c1, c2, c); + (x$2 = n + i >> 0, ((x$2 < 0 || x$2 >= T.$length) ? ($throwRuntimeError("index out of range"), undefined) : T.$array[T.$offset + x$2] = _tuple[0])); + c = _tuple[1]; + i = i + (1) >> 0; + } + $copySlice(x.reset(n).limbs, $subslice(T, n)); + x.maybeSubtractModulus(((c >>> 0)), m); + return x; + }; + ptrType.methods = [{prop: "expand", name: "expand", pkg: "crypto/internal/bigmod", typ: $funcType([$Int], [ptrType], false)}, {prop: "reset", name: "reset", pkg: "crypto/internal/bigmod", typ: $funcType([$Int], [ptrType], false)}, {prop: "set", name: "set", pkg: "crypto/internal/bigmod", typ: $funcType([ptrType], [ptrType], false)}, {prop: "setBig", name: "setBig", pkg: "crypto/internal/bigmod", typ: $funcType([ptrType$2], [ptrType], false)}, {prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([ptrType$1], [sliceType$1], false)}, {prop: "SetBytes", name: "SetBytes", pkg: "", typ: $funcType([sliceType$1, ptrType$1], [ptrType, $error], false)}, {prop: "SetOverflowingBytes", name: "SetOverflowingBytes", pkg: "", typ: $funcType([sliceType$1, ptrType$1], [ptrType, $error], false)}, {prop: "setBytes", name: "setBytes", pkg: "crypto/internal/bigmod", typ: $funcType([sliceType$1, ptrType$1], [$error], false)}, {prop: "Equal", name: "Equal", pkg: "", typ: $funcType([ptrType], [choice], false)}, {prop: "IsZero", name: "IsZero", pkg: "", typ: $funcType([], [choice], false)}, {prop: "cmpGeq", name: "cmpGeq", pkg: "crypto/internal/bigmod", typ: $funcType([ptrType], [choice], false)}, {prop: "assign", name: "assign", pkg: "crypto/internal/bigmod", typ: $funcType([choice, ptrType], [ptrType], false)}, {prop: "add", name: "add", pkg: "crypto/internal/bigmod", typ: $funcType([ptrType], [$Uint], false)}, {prop: "sub", name: "sub", pkg: "crypto/internal/bigmod", typ: $funcType([ptrType], [$Uint], false)}, {prop: "shiftIn", name: "shiftIn", pkg: "crypto/internal/bigmod", typ: $funcType([$Uint, ptrType$1], [ptrType], false)}, {prop: "Mod", name: "Mod", pkg: "", typ: $funcType([ptrType, ptrType$1], [ptrType], false)}, {prop: "ExpandFor", name: "ExpandFor", pkg: "", typ: $funcType([ptrType$1], [ptrType], false)}, {prop: "resetFor", name: "resetFor", pkg: "crypto/internal/bigmod", typ: $funcType([ptrType$1], [ptrType], false)}, {prop: "maybeSubtractModulus", name: "maybeSubtractModulus", pkg: "crypto/internal/bigmod", typ: $funcType([choice, ptrType$1], [], false)}, {prop: "Sub", name: "Sub", pkg: "", typ: $funcType([ptrType, ptrType$1], [ptrType], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([ptrType, ptrType$1], [ptrType], false)}, {prop: "montgomeryRepresentation", name: "montgomeryRepresentation", pkg: "crypto/internal/bigmod", typ: $funcType([ptrType$1], [ptrType], false)}, {prop: "montgomeryReduction", name: "montgomeryReduction", pkg: "crypto/internal/bigmod", typ: $funcType([ptrType$1], [ptrType], false)}, {prop: "Mul", name: "Mul", pkg: "", typ: $funcType([ptrType, ptrType$1], [ptrType], false)}, {prop: "Exp", name: "Exp", pkg: "", typ: $funcType([ptrType, sliceType$1, ptrType$1], [ptrType], false)}, {prop: "ExpShort", name: "ExpShort", pkg: "", typ: $funcType([ptrType, $Uint, ptrType$1], [ptrType], false)}, {prop: "montgomeryMul", name: "montgomeryMul", pkg: "crypto/internal/bigmod", typ: $funcType([ptrType, ptrType, ptrType$1], [ptrType], false)}]; + ptrType$1.methods = [{prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "BitLen", name: "BitLen", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Nat", name: "Nat", pkg: "", typ: $funcType([], [ptrType], false)}]; Nat.init("crypto/internal/bigmod", [{prop: "limbs", name: "limbs", embedded: false, exported: false, typ: sliceType, tag: ""}]); Modulus.init("crypto/internal/bigmod", [{prop: "nat", name: "nat", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "leading", name: "leading", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "m0inv", name: "m0inv", embedded: false, exported: false, typ: $Uint, tag: ""}, {prop: "rr", name: "rr", embedded: false, exported: false, typ: ptrType, tag: ""}]); }; $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: - $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = big.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = bits.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = binary.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errors.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = big.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = bits.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; @@ -221909,7 +223207,7 @@ $packages["crypto/internal/boring/bbig"] = (function() { return $pkg; })(); $packages["crypto/sha512"] = (function() { - var $pkg = {}, $init, crypto, boring, binary, errors, hash, bits, digest, sliceType, arrayType, sliceType$1, arrayType$1, arrayType$2, arrayType$3, arrayType$4, ptrType$3, _K, block, blockGeneric, init, consumeUint64, New, New512_224, New512_256, New384, Sum512; + var $pkg = {}, $init, crypto, boring, binary, errors, hash, bits, digest, sliceType, arrayType, sliceType$1, arrayType$1, arrayType$2, ptrType, arrayType$3, arrayType$4, _K, block, blockGeneric, init, consumeUint64, New, New512_224, New512_256, New384, Sum512; crypto = $packages["crypto"]; boring = $packages["crypto/internal/boring"]; binary = $packages["encoding/binary"]; @@ -221939,9 +223237,9 @@ $packages["crypto/sha512"] = (function() { sliceType$1 = $sliceType($Uint8); arrayType$1 = $arrayType($Uint64, 8); arrayType$2 = $arrayType($Uint8, 128); + ptrType = $ptrType(digest); arrayType$3 = $arrayType($Uint8, 64); arrayType$4 = $arrayType($Uint8, 144); - ptrType$3 = $ptrType(digest); block = function block$1(dig, p) { var dig, p; blockGeneric(dig, p); @@ -222264,7 +223562,7 @@ $packages["crypto/sha512"] = (function() { boring.Unreachable(); } d0 = new digest.ptr(arrayType$1.zero(), arrayType$2.zero(), 0, new $Uint64(0, 0), 0); - digest.copy(d0, d); + digest.copy((d0 === ptrType.nil && $throwNilPointerError(), d0), (d === ptrType.nil && $throwNilPointerError(), d)); hash$1 = $clone(d0.checkSum(), arrayType$3); _1 = d0.function$4; if (_1 === (6)) { @@ -222320,7 +223618,7 @@ $packages["crypto/sha512"] = (function() { return d.checkSum(); }; $pkg.Sum512 = Sum512; - ptrType$3.methods = [{prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}, {prop: "MarshalBinary", name: "MarshalBinary", pkg: "", typ: $funcType([], [sliceType$1, $error], false)}, {prop: "UnmarshalBinary", name: "UnmarshalBinary", pkg: "", typ: $funcType([sliceType$1], [$error], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "BlockSize", name: "BlockSize", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "Sum", name: "Sum", pkg: "", typ: $funcType([sliceType$1], [sliceType$1], false)}, {prop: "checkSum", name: "checkSum", pkg: "crypto/sha512", typ: $funcType([], [arrayType$3], false)}]; + ptrType.methods = [{prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}, {prop: "MarshalBinary", name: "MarshalBinary", pkg: "", typ: $funcType([], [sliceType$1, $error], false)}, {prop: "UnmarshalBinary", name: "UnmarshalBinary", pkg: "", typ: $funcType([sliceType$1], [$error], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "BlockSize", name: "BlockSize", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "Sum", name: "Sum", pkg: "", typ: $funcType([sliceType$1], [sliceType$1], false)}, {prop: "checkSum", name: "checkSum", pkg: "crypto/sha512", typ: $funcType([], [arrayType$3], false)}]; digest.init("crypto/sha512", [{prop: "h", name: "h", embedded: false, exported: false, typ: arrayType$1, tag: ""}, {prop: "x", name: "x", embedded: false, exported: false, typ: arrayType$2, tag: ""}, {prop: "nx", name: "nx", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "len", name: "len", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "function$4", name: "function", embedded: false, exported: false, typ: crypto.Hash, tag: ""}]); }; $init = function() { @@ -222340,7 +223638,7 @@ $packages["crypto/sha512"] = (function() { return $pkg; })(); $packages["unicode/utf16"] = (function() { - var $pkg = {}, $init, sliceType$1, IsSurrogate, DecodeRune, Decode; + var $pkg = {}, $init, sliceType$1, IsSurrogate, DecodeRune, Decode, decode; $pkg.$finishSetup = function() { sliceType$1 = $sliceType($Int32); IsSurrogate = function IsSurrogate$1(r) { @@ -222357,27 +223655,31 @@ $packages["unicode/utf16"] = (function() { }; $pkg.DecodeRune = DecodeRune; Decode = function Decode$1(s) { - var a, i, n, r, s, x, x$1, x$2; - a = $makeSlice(sliceType$1, s.$length); - n = 0; + var buf, s; + buf = $makeSlice(sliceType$1, 0, 64); + return decode(s, buf); + }; + $pkg.Decode = Decode; + decode = function decode$1(s, buf) { + var ar, buf, i, r, s, x, x$1, x$2; i = 0; while (true) { if (!(i < s.$length)) { break; } + ar = 0; r = ((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i]); if ((r < 55296) || (57344 <= r)) { - ((n < 0 || n >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + n] = ((r >> 0))); + ar = ((r >> 0)); } else if (55296 <= r && r < 56320 && (i + 1 >> 0) < s.$length && 56320 <= (x = i + 1 >> 0, ((x < 0 || x >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + x])) && (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + x$1])) < 57344) { - ((n < 0 || n >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + n] = DecodeRune(((r >> 0)), (((x$2 = i + 1 >> 0, ((x$2 < 0 || x$2 >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + x$2])) >> 0)))); + ar = DecodeRune(((r >> 0)), (((x$2 = i + 1 >> 0, ((x$2 < 0 || x$2 >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + x$2])) >> 0))); i = i + (1) >> 0; } else { - ((n < 0 || n >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + n] = 65533); + ar = 65533; } - n = n + (1) >> 0; + buf = $append(buf, ar); i = i + (1) >> 0; } - return $subslice(a, 0, n); + return buf; }; - $pkg.Decode = Decode; }; $init = function() { $pkg.$init = function() {}; @@ -222388,7 +223690,7 @@ $packages["unicode/utf16"] = (function() { return $pkg; })(); $packages["encoding/asn1"] = (function() { - var $pkg = {}, $init, bytes, errors, fmt, math, big, reflect, sort, strconv, strings, time, utf16, utf8, encoder, byteEncoder, bytesEncoder, stringEncoder, multiEncoder, setEncoder, taggedEncoder, int64Encoder, bitStringEncoder, oidEncoder, tagAndLength, fieldParameters, StructuralError, SyntaxError, BitString, ObjectIdentifier, Enumerated, Flag, RawValue, RawContent, invalidUnmarshalError, sliceType, ptrType, ptrType$1, sliceType$1, sliceType$2, arrayType, sliceType$3, ptrType$2, ptrType$3, sliceType$4, arrayType$1, sliceType$5, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, ptrType$11, ptrType$12, ptrType$13, byte00Encoder, byteFFEncoder, bigOne, bitStringType, x, objectIdentifierType, enumeratedType, flagType, timeType, x$1, rawValueType, x$2, rawContentsType, bigIntType, base128IntLength, appendBase128Int, makeBigInt, appendLength, lengthLength, appendTagAndLength, makeObjectIdentifier, makePrintableString, makeIA5String, makeNumericString, makeUTF8String, appendTwoDigits, appendFourDigits, outsideUTCRange, makeUTCTime, makeGeneralizedTime, appendUTCTime, appendGeneralizedTime, appendTimeCommon, stripTagAndLength, makeBody, makeField, Marshal, MarshalWithParams, parseFieldParameters, getUniversalType, parseBool, checkInteger, parseInt64, parseInt32, parseBigInt, parseBitString, parseObjectIdentifier, parseBase128Int, parseUTCTime, parseGeneralizedTime, parseNumericString, isNumeric, parsePrintableString, isPrintable, parseIA5String, parseT61String, parseUTF8String, parseBMPString, parseTagAndLength, parseSequenceOf, invalidLength, parseField, canHaveDefaultValue, setDefaultValue, Unmarshal, UnmarshalWithParams; + var $pkg = {}, $init, bytes, errors, fmt, math, big, reflect, sort, strconv, strings, time, utf16, utf8, encoder, byteEncoder, bytesEncoder, stringEncoder, multiEncoder, setEncoder, taggedEncoder, int64Encoder, bitStringEncoder, oidEncoder, tagAndLength, fieldParameters, StructuralError, SyntaxError, BitString, ObjectIdentifier, Enumerated, Flag, RawValue, RawContent, invalidUnmarshalError, sliceType, ptrType, ptrType$1, sliceType$1, sliceType$2, arrayType, sliceType$3, ptrType$2, ptrType$3, sliceType$4, arrayType$1, ptrType$4, sliceType$5, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, ptrType$11, ptrType$12, ptrType$13, ptrType$14, byte00Encoder, byteFFEncoder, bigOne, bitStringType, x, objectIdentifierType, enumeratedType, flagType, timeType, x$1, rawValueType, x$2, rawContentsType, bigIntType, base128IntLength, appendBase128Int, makeBigInt, appendLength, lengthLength, appendTagAndLength, makeObjectIdentifier, makePrintableString, makeIA5String, makeNumericString, makeUTF8String, appendTwoDigits, appendFourDigits, outsideUTCRange, makeUTCTime, makeGeneralizedTime, appendUTCTime, appendGeneralizedTime, appendTimeCommon, stripTagAndLength, makeBody, makeField, Marshal, MarshalWithParams, parseFieldParameters, getUniversalType, parseBool, checkInteger, parseInt64, parseInt32, parseBigInt, parseBitString, parseObjectIdentifier, parseBase128Int, parseUTCTime, parseGeneralizedTime, parseNumericString, isNumeric, parsePrintableString, isPrintable, parseIA5String, parseT61String, parseUTF8String, parseBMPString, parseTagAndLength, parseSequenceOf, invalidLength, parseField, canHaveDefaultValue, setDefaultValue, Unmarshal, UnmarshalWithParams; bytes = $packages["bytes"]; errors = $packages["errors"]; fmt = $packages["fmt"]; @@ -222558,17 +223860,18 @@ $packages["encoding/asn1"] = (function() { ptrType$3 = $ptrType($Int); sliceType$4 = $sliceType($emptyInterface); arrayType$1 = $arrayType($Uint8, 8); + ptrType$4 = $ptrType(strings.Builder); sliceType$5 = $sliceType($Uint16); - ptrType$4 = $ptrType(reflect.rtype); - ptrType$5 = $ptrType(RawValue); - ptrType$6 = $ptrType(ObjectIdentifier); - ptrType$7 = $ptrType(BitString); - ptrType$8 = $ptrType(time.Time); - ptrType$9 = $ptrType(Enumerated); - ptrType$10 = $ptrType(Flag); - ptrType$11 = $ptrType(ptrType$1); - ptrType$12 = $ptrType(taggedEncoder); - ptrType$13 = $ptrType(invalidUnmarshalError); + ptrType$5 = $ptrType($packages["internal/abi"].Type); + ptrType$6 = $ptrType(RawValue); + ptrType$7 = $ptrType(ObjectIdentifier); + ptrType$8 = $ptrType(BitString); + ptrType$9 = $ptrType(time.Time); + ptrType$10 = $ptrType(Enumerated); + ptrType$11 = $ptrType(Flag); + ptrType$12 = $ptrType(ptrType$1); + ptrType$13 = $ptrType(taggedEncoder); + ptrType$14 = $ptrType(invalidUnmarshalError); byteEncoder.prototype.Len = function Len() { var c; c = this.$val; @@ -223163,7 +224466,7 @@ $packages["encoding/asn1"] = (function() { return $subslice(in$1, offset); }; makeBody = function makeBody$1(value, params) { - var {$24r, $24r$1, $24r$10, $24r$11, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _1, _2, _3, _4, _5, _arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$32, _tmp$33, _tmp$34, _tmp$35, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$10, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, bytes$1, e, err, fp, i, i$1, i$2, l, m, m$1, n, n1, params, s, sliceType$4, startingField, t, t$1, v, value, x$3, x$4, x$5, x$6, $s, $r, $c} = $restore(this, {value, params}); + var {$24r, $24r$1, $24r$10, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _1, _2, _3, _4, _5, _arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$32, _tmp$33, _tmp$34, _tmp$35, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$10, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, bytes$1, e, err, fp, i, i$1, i$2, l, m, m$1, n, n1, params, s, sliceType$4, startingField, t, t$1, v, value, x$3, x$4, x$5, x$6, $s, $r, $c} = $restore(this, {value, params}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: e = $ifaceNil; err = $ifaceNil; @@ -223289,59 +224592,52 @@ $packages["encoding/asn1"] = (function() { /* */ if ($interfaceIsEqual(_r$13.Type, rawContentsType)) { $s = 40; continue; } /* */ $s = 41; continue; /* if ($interfaceIsEqual(_r$13.Type, rawContentsType)) { */ case 40: - _r$14 = $clone(v, reflect.Value).Field(0); /* */ $s = 43; case 43: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - s = _r$14; - _r$15 = $clone(s, reflect.Value).Len(); /* */ $s = 46; case 46: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - /* */ if (_r$15 > 0) { $s = 44; continue; } - /* */ $s = 45; continue; - /* if (_r$15 > 0) { */ case 44: - _r$16 = $clone(s, reflect.Value).Bytes(); /* */ $s = 47; case 47: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - bytes$1 = _r$16; + s = $clone(v, reflect.Value).Field(0); + if ($clone(s, reflect.Value).Len() > 0) { + bytes$1 = $clone(s, reflect.Value).Bytes(); _tmp$14 = ($convertSliceType(stripTagAndLength(bytes$1), bytesEncoder)); _tmp$15 = $ifaceNil; e = _tmp$14; err = _tmp$15; $s = -1; return [e, err]; - /* } */ case 45: + } startingField = 1; /* } */ case 41: n1 = n - startingField >> 0; _3 = n1; - /* */ if (_3 === (0)) { $s = 49; continue; } - /* */ if (_3 === (1)) { $s = 50; continue; } - /* */ $s = 51; continue; - /* if (_3 === (0)) { */ case 49: + /* */ if (_3 === (0)) { $s = 44; continue; } + /* */ if (_3 === (1)) { $s = 45; continue; } + /* */ $s = 46; continue; + /* if (_3 === (0)) { */ case 44: _tmp$16 = (bytesEncoder.nil); _tmp$17 = $ifaceNil; e = _tmp$16; err = _tmp$17; $s = -1; return [e, err]; - /* } else if (_3 === (1)) { */ case 50: - _r$17 = $clone(v, reflect.Value).Field(startingField); /* */ $s = 53; case 53: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - _arg = $clone(_r$17, reflect.Value); - _r$18 = t$1.Field(startingField); /* */ $s = 54; case 54: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - _r$19 = new reflect.StructTag(_r$18.Tag).Get("asn1"); /* */ $s = 55; case 55: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - _r$20 = parseFieldParameters(_r$19); /* */ $s = 56; case 56: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - _arg$1 = $clone(_r$20, fieldParameters); - _r$21 = makeField(_arg, _arg$1); /* */ $s = 57; case 57: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } - _tuple$4 = _r$21; + /* } else if (_3 === (1)) { */ case 45: + _arg = $clone($clone(v, reflect.Value).Field(startingField), reflect.Value); + _r$14 = t$1.Field(startingField); /* */ $s = 48; case 48: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _r$15 = new reflect.StructTag(_r$14.Tag).Get("asn1"); /* */ $s = 49; case 49: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + _r$16 = parseFieldParameters(_r$15); /* */ $s = 50; case 50: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + _arg$1 = $clone(_r$16, fieldParameters); + _r$17 = makeField(_arg, _arg$1); /* */ $s = 51; case 51: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + _tuple$4 = _r$17; e = _tuple$4[0]; err = _tuple$4[1]; $24r$5 = [e, err]; - $s = 58; case 58: return $24r$5; - /* } else { */ case 51: + $s = 52; case 52: return $24r$5; + /* } else { */ case 46: m = $makeSlice(sliceType$2, n1); i$1 = 0; - /* while (true) { */ case 59: - /* if (!(i$1 < n1)) { break; } */ if(!(i$1 < n1)) { $s = 60; continue; } - _r$22 = $clone(v, reflect.Value).Field(i$1 + startingField >> 0); /* */ $s = 61; case 61: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _arg$2 = $clone(_r$22, reflect.Value); - _r$23 = t$1.Field(i$1 + startingField >> 0); /* */ $s = 62; case 62: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _r$24 = new reflect.StructTag(_r$23.Tag).Get("asn1"); /* */ $s = 63; case 63: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - _r$25 = parseFieldParameters(_r$24); /* */ $s = 64; case 64: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - _arg$3 = $clone(_r$25, fieldParameters); - _r$26 = makeField(_arg$2, _arg$3); /* */ $s = 65; case 65: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - _tuple$5 = _r$26; + /* while (true) { */ case 53: + /* if (!(i$1 < n1)) { break; } */ if(!(i$1 < n1)) { $s = 54; continue; } + _arg$2 = $clone($clone(v, reflect.Value).Field(i$1 + startingField >> 0), reflect.Value); + _r$18 = t$1.Field(i$1 + startingField >> 0); /* */ $s = 55; case 55: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + _r$19 = new reflect.StructTag(_r$18.Tag).Get("asn1"); /* */ $s = 56; case 56: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + _r$20 = parseFieldParameters(_r$19); /* */ $s = 57; case 57: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + _arg$3 = $clone(_r$20, fieldParameters); + _r$21 = makeField(_arg$2, _arg$3); /* */ $s = 58; case 58: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + _tuple$5 = _r$21; ((i$1 < 0 || i$1 >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + i$1] = _tuple$5[0]); err = _tuple$5[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { @@ -223352,60 +224648,55 @@ $packages["encoding/asn1"] = (function() { $s = -1; return [e, err]; } i$1 = i$1 + (1) >> 0; - $s = 59; continue; - case 60: + $s = 53; continue; + case 54: _tmp$20 = ($convertSliceType(m, multiEncoder)); _tmp$21 = $ifaceNil; e = _tmp$20; err = _tmp$21; $s = -1; return [e, err]; - /* } */ case 52: - case 48: + /* } */ case 47: + case 43: $s = 31; continue; /* } else if (_2 === (23)) { */ case 29: sliceType$4 = $clone(v, reflect.Value).Type(); - _r$27 = sliceType$4.Elem(); /* */ $s = 68; case 68: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - _r$28 = _r$27.Kind(); /* */ $s = 69; case 69: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - /* */ if (_r$28 === 8) { $s = 66; continue; } - /* */ $s = 67; continue; - /* if (_r$28 === 8) { */ case 66: - _r$29 = $clone(v, reflect.Value).Bytes(); /* */ $s = 70; case 70: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } - _tmp$22 = ($convertSliceType(_r$29, bytesEncoder)); + _r$22 = sliceType$4.Elem(); /* */ $s = 61; case 61: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + _r$23 = _r$22.Kind(); /* */ $s = 62; case 62: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + /* */ if (_r$23 === 8) { $s = 59; continue; } + /* */ $s = 60; continue; + /* if (_r$23 === 8) { */ case 59: + _tmp$22 = ($convertSliceType($clone(v, reflect.Value).Bytes(), bytesEncoder)); _tmp$23 = $ifaceNil; e = _tmp$22; err = _tmp$23; - $24r$6 = [e, err]; - $s = 71; case 71: return $24r$6; - /* } */ case 67: + $s = -1; return [e, err]; + /* } */ case 60: fp = new fieldParameters.ptr(false, false, false, false, ptrType$2.nil, ptrType$3.nil, 0, 0, false, false); - _r$30 = $clone(v, reflect.Value).Len(); /* */ $s = 73; case 73: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } - l = _r$30; + l = $clone(v, reflect.Value).Len(); _4 = l; - /* */ if (_4 === (0)) { $s = 74; continue; } - /* */ if (_4 === (1)) { $s = 75; continue; } - /* */ $s = 76; continue; - /* if (_4 === (0)) { */ case 74: + /* */ if (_4 === (0)) { $s = 64; continue; } + /* */ if (_4 === (1)) { $s = 65; continue; } + /* */ $s = 66; continue; + /* if (_4 === (0)) { */ case 64: _tmp$24 = (bytesEncoder.nil); _tmp$25 = $ifaceNil; e = _tmp$24; err = _tmp$25; $s = -1; return [e, err]; - /* } else if (_4 === (1)) { */ case 75: - _r$31 = $clone(v, reflect.Value).Index(0); /* */ $s = 78; case 78: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } - _r$32 = makeField($clone(_r$31, reflect.Value), $clone(fp, fieldParameters)); /* */ $s = 79; case 79: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } - _tuple$6 = _r$32; + /* } else if (_4 === (1)) { */ case 65: + _r$24 = makeField($clone($clone(v, reflect.Value).Index(0), reflect.Value), $clone(fp, fieldParameters)); /* */ $s = 68; case 68: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _tuple$6 = _r$24; e = _tuple$6[0]; err = _tuple$6[1]; - $24r$7 = [e, err]; - $s = 80; case 80: return $24r$7; - /* } else { */ case 76: + $24r$6 = [e, err]; + $s = 69; case 69: return $24r$6; + /* } else { */ case 66: m$1 = $makeSlice(sliceType$2, l); i$2 = 0; - /* while (true) { */ case 81: - /* if (!(i$2 < l)) { break; } */ if(!(i$2 < l)) { $s = 82; continue; } - _r$33 = $clone(v, reflect.Value).Index(i$2); /* */ $s = 83; case 83: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } - _r$34 = makeField($clone(_r$33, reflect.Value), $clone(fp, fieldParameters)); /* */ $s = 84; case 84: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } - _tuple$7 = _r$34; + /* while (true) { */ case 70: + /* if (!(i$2 < l)) { break; } */ if(!(i$2 < l)) { $s = 71; continue; } + _r$25 = makeField($clone($clone(v, reflect.Value).Index(i$2), reflect.Value), $clone(fp, fieldParameters)); /* */ $s = 72; case 72: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _tuple$7 = _r$25; ((i$2 < 0 || i$2 >= m$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : m$1.$array[m$1.$offset + i$2] = _tuple$7[0]); err = _tuple$7[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { @@ -223416,8 +224707,8 @@ $packages["encoding/asn1"] = (function() { $s = -1; return [e, err]; } i$2 = i$2 + (1) >> 0; - $s = 81; continue; - case 82: + $s = 70; continue; + case 71: if (params.set) { _tmp$28 = ($convertSliceType(m$1, setEncoder)); _tmp$29 = $ifaceNil; @@ -223430,50 +224721,50 @@ $packages["encoding/asn1"] = (function() { e = _tmp$30; err = _tmp$31; $s = -1; return [e, err]; - /* } */ case 77: - case 72: + /* } */ case 67: + case 63: $s = 31; continue; /* } else if (_2 === (24)) { */ case 30: _5 = params.stringType; - /* */ if (_5 === (22)) { $s = 86; continue; } - /* */ if (_5 === (19)) { $s = 87; continue; } - /* */ if (_5 === (18)) { $s = 88; continue; } - /* */ $s = 89; continue; - /* if (_5 === (22)) { */ case 86: - _r$35 = $clone(v, reflect.Value).String(); /* */ $s = 91; case 91: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } - _r$36 = makeIA5String(_r$35); /* */ $s = 92; case 92: if($c) { $c = false; _r$36 = _r$36.$blk(); } if (_r$36 && _r$36.$blk !== undefined) { break s; } - _tuple$8 = _r$36; + /* */ if (_5 === (22)) { $s = 74; continue; } + /* */ if (_5 === (19)) { $s = 75; continue; } + /* */ if (_5 === (18)) { $s = 76; continue; } + /* */ $s = 77; continue; + /* if (_5 === (22)) { */ case 74: + _r$26 = $clone(v, reflect.Value).String(); /* */ $s = 79; case 79: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + _r$27 = makeIA5String(_r$26); /* */ $s = 80; case 80: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + _tuple$8 = _r$27; e = _tuple$8[0]; err = _tuple$8[1]; - $24r$8 = [e, err]; - $s = 93; case 93: return $24r$8; - /* } else if (_5 === (19)) { */ case 87: - _r$37 = $clone(v, reflect.Value).String(); /* */ $s = 94; case 94: if($c) { $c = false; _r$37 = _r$37.$blk(); } if (_r$37 && _r$37.$blk !== undefined) { break s; } - _r$38 = makePrintableString(_r$37); /* */ $s = 95; case 95: if($c) { $c = false; _r$38 = _r$38.$blk(); } if (_r$38 && _r$38.$blk !== undefined) { break s; } - _tuple$9 = _r$38; + $24r$7 = [e, err]; + $s = 81; case 81: return $24r$7; + /* } else if (_5 === (19)) { */ case 75: + _r$28 = $clone(v, reflect.Value).String(); /* */ $s = 82; case 82: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + _r$29 = makePrintableString(_r$28); /* */ $s = 83; case 83: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + _tuple$9 = _r$29; e = _tuple$9[0]; err = _tuple$9[1]; - $24r$9 = [e, err]; - $s = 96; case 96: return $24r$9; - /* } else if (_5 === (18)) { */ case 88: - _r$39 = $clone(v, reflect.Value).String(); /* */ $s = 97; case 97: if($c) { $c = false; _r$39 = _r$39.$blk(); } if (_r$39 && _r$39.$blk !== undefined) { break s; } - _r$40 = makeNumericString(_r$39); /* */ $s = 98; case 98: if($c) { $c = false; _r$40 = _r$40.$blk(); } if (_r$40 && _r$40.$blk !== undefined) { break s; } - _tuple$10 = _r$40; + $24r$8 = [e, err]; + $s = 84; case 84: return $24r$8; + /* } else if (_5 === (18)) { */ case 76: + _r$30 = $clone(v, reflect.Value).String(); /* */ $s = 85; case 85: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } + _r$31 = makeNumericString(_r$30); /* */ $s = 86; case 86: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } + _tuple$10 = _r$31; e = _tuple$10[0]; err = _tuple$10[1]; - $24r$10 = [e, err]; - $s = 99; case 99: return $24r$10; - /* } else { */ case 89: - _r$41 = $clone(v, reflect.Value).String(); /* */ $s = 100; case 100: if($c) { $c = false; _r$41 = _r$41.$blk(); } if (_r$41 && _r$41.$blk !== undefined) { break s; } - _r$42 = makeUTF8String(_r$41); /* */ $s = 101; case 101: if($c) { $c = false; _r$42 = _r$42.$blk(); } if (_r$42 && _r$42.$blk !== undefined) { break s; } - _tmp$32 = _r$42; + $24r$9 = [e, err]; + $s = 87; case 87: return $24r$9; + /* } else { */ case 77: + _r$32 = $clone(v, reflect.Value).String(); /* */ $s = 88; case 88: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } + _r$33 = makeUTF8String(_r$32); /* */ $s = 89; case 89: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } + _tmp$32 = _r$33; _tmp$33 = $ifaceNil; e = _tmp$32; err = _tmp$33; - $24r$11 = [e, err]; - $s = 102; case 102: return $24r$11; - /* } */ case 90: - case 85: + $24r$10 = [e, err]; + $s = 90; case 90: return $24r$10; + /* } */ case 78: + case 73: /* } */ case 31: case 25: _tmp$34 = $ifaceNil; @@ -223481,10 +224772,10 @@ $packages["encoding/asn1"] = (function() { e = _tmp$34; err = _tmp$35; $s = -1; return [e, err]; - /* */ } return; } var $f = {$blk: makeBody$1, $c: true, $r, $24r, $24r$1, $24r$10, $24r$11, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _1, _2, _3, _4, _5, _arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$32, _tmp$33, _tmp$34, _tmp$35, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$10, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, bytes$1, e, err, fp, i, i$1, i$2, l, m, m$1, n, n1, params, s, sliceType$4, startingField, t, t$1, v, value, x$3, x$4, x$5, x$6, $s};return $f; + /* */ } return; } var $f = {$blk: makeBody$1, $c: true, $r, $24r, $24r$1, $24r$10, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _1, _2, _3, _4, _5, _arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$32, _tmp$33, _tmp$34, _tmp$35, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$10, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, bytes$1, e, err, fp, i, i$1, i$2, l, m, m$1, n, n1, params, s, sliceType$4, startingField, t, t$1, v, value, x$3, x$4, x$5, x$6, $s};return $f; }; makeField = function makeField$1(v, params) { - var {$24r, $24r$1, $24r$2, _1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _i, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _rune, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _v, _v$1, _v$2, bodyLen, class$1, defaultValue, e, err, isCompound, matchAny, ok, params, r, rv, t, t$1, tag, tt, v, x$3, x$4, x$5, x$6, $s, $r, $c} = $restore(this, {v, params}); + var {$24r, $24r$1, $24r$2, _1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _i, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _rune, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _v, _v$1, bodyLen, class$1, defaultValue, e, err, isCompound, matchAny, ok, params, r, rv, t, t$1, tag, tt, v, x$3, x$4, x$5, x$6, $s, $r, $c} = $restore(this, {v, params}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: e = $ifaceNil; err = $ifaceNil; @@ -223505,71 +224796,63 @@ $packages["encoding/asn1"] = (function() { /* */ if (_v) { $s = 5; continue; } /* */ $s = 6; continue; /* if (_v) { */ case 5: - _r$2 = $clone(v, reflect.Value).Elem(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = makeField($clone(_r$2, reflect.Value), $clone(params, fieldParameters)); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple = _r$3; + _r$2 = makeField($clone($clone(v, reflect.Value).Elem(), reflect.Value), $clone(params, fieldParameters)); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = _r$2; e = _tuple[0]; err = _tuple[1]; $24r$1 = [e, err]; - $s = 11; case 11: return $24r$1; + $s = 10; case 10: return $24r$1; /* } */ case 6: - if (!($clone(v, reflect.Value).Kind() === 23)) { _v$1 = false; $s = 14; continue s; } - _r$4 = $clone(v, reflect.Value).Len(); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _v$1 = _r$4 === 0; case 14: - /* */ if (_v$1 && params.omitEmpty) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (_v$1 && params.omitEmpty) { */ case 12: + if (($clone(v, reflect.Value).Kind() === 23) && ($clone(v, reflect.Value).Len() === 0) && params.omitEmpty) { _tmp$2 = (bytesEncoder.nil); _tmp$3 = $ifaceNil; e = _tmp$2; err = _tmp$3; $s = -1; return [e, err]; - /* } */ case 13: - /* */ if (params.optional && !(params.defaultValue === ptrType$2.nil) && canHaveDefaultValue($clone(v, reflect.Value).Kind())) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (params.optional && !(params.defaultValue === ptrType$2.nil) && canHaveDefaultValue($clone(v, reflect.Value).Kind())) { */ case 16: - _r$5 = $clone(reflect.New($clone(v, reflect.Value).Type()), reflect.Value).Elem(); /* */ $s = 18; case 18: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - defaultValue = _r$5; + } + /* */ if (params.optional && !(params.defaultValue === ptrType$2.nil) && canHaveDefaultValue($clone(v, reflect.Value).Kind())) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (params.optional && !(params.defaultValue === ptrType$2.nil) && canHaveDefaultValue($clone(v, reflect.Value).Kind())) { */ case 11: + defaultValue = $clone(reflect.New($clone(v, reflect.Value).Type()), reflect.Value).Elem(); $clone(defaultValue, reflect.Value).SetInt(params.defaultValue.$get()); - _r$6 = $clone(v, reflect.Value).Interface(); /* */ $s = 21; case 21: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _arg = _r$6; - _r$7 = $clone(defaultValue, reflect.Value).Interface(); /* */ $s = 22; case 22: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _arg$1 = _r$7; - _r$8 = reflect.DeepEqual(_arg, _arg$1); /* */ $s = 23; case 23: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - /* */ if (_r$8) { $s = 19; continue; } - /* */ $s = 20; continue; - /* if (_r$8) { */ case 19: + _r$3 = $clone(v, reflect.Value).Interface(); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _arg = _r$3; + _r$4 = $clone(defaultValue, reflect.Value).Interface(); /* */ $s = 16; case 16: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _arg$1 = _r$4; + _r$5 = reflect.DeepEqual(_arg, _arg$1); /* */ $s = 17; case 17: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (_r$5) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (_r$5) { */ case 13: _tmp$4 = (bytesEncoder.nil); _tmp$5 = $ifaceNil; e = _tmp$4; err = _tmp$5; $s = -1; return [e, err]; - /* } */ case 20: - /* } */ case 17: - /* */ if (params.optional && params.defaultValue === ptrType$2.nil) { $s = 24; continue; } - /* */ $s = 25; continue; - /* if (params.optional && params.defaultValue === ptrType$2.nil) { */ case 24: - _r$9 = $clone(v, reflect.Value).Interface(); /* */ $s = 28; case 28: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _arg$2 = _r$9; - _r$10 = reflect.Zero($clone(v, reflect.Value).Type()); /* */ $s = 29; case 29: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _r$11 = $clone(_r$10, reflect.Value).Interface(); /* */ $s = 30; case 30: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _arg$3 = _r$11; - _r$12 = reflect.DeepEqual(_arg$2, _arg$3); /* */ $s = 31; case 31: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - /* */ if (_r$12) { $s = 26; continue; } - /* */ $s = 27; continue; - /* if (_r$12) { */ case 26: + /* } */ case 14: + /* } */ case 12: + /* */ if (params.optional && params.defaultValue === ptrType$2.nil) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (params.optional && params.defaultValue === ptrType$2.nil) { */ case 18: + _r$6 = $clone(v, reflect.Value).Interface(); /* */ $s = 22; case 22: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _arg$2 = _r$6; + _r$7 = $clone(reflect.Zero($clone(v, reflect.Value).Type()), reflect.Value).Interface(); /* */ $s = 23; case 23: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _arg$3 = _r$7; + _r$8 = reflect.DeepEqual(_arg$2, _arg$3); /* */ $s = 24; case 24: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + /* */ if (_r$8) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (_r$8) { */ case 20: _tmp$6 = (bytesEncoder.nil); _tmp$7 = $ifaceNil; e = _tmp$6; err = _tmp$7; $s = -1; return [e, err]; - /* } */ case 27: - /* } */ case 25: - /* */ if ($interfaceIsEqual($clone(v, reflect.Value).Type(), rawValueType)) { $s = 32; continue; } - /* */ $s = 33; continue; - /* if ($interfaceIsEqual($clone(v, reflect.Value).Type(), rawValueType)) { */ case 32: - _r$13 = $clone(v, reflect.Value).Interface(); /* */ $s = 34; case 34: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - rv = $clone($assertType(_r$13, RawValue), RawValue); + /* } */ case 21: + /* } */ case 19: + /* */ if ($interfaceIsEqual($clone(v, reflect.Value).Type(), rawValueType)) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if ($interfaceIsEqual($clone(v, reflect.Value).Type(), rawValueType)) { */ case 25: + _r$9 = $clone(v, reflect.Value).Interface(); /* */ $s = 27; case 27: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + rv = $clone($assertType(_r$9, RawValue), RawValue); if (!((rv.FullBytes.$length === 0))) { _tmp$8 = ($convertSliceType(rv.FullBytes, bytesEncoder)); _tmp$9 = $ifaceNil; @@ -223585,24 +224868,24 @@ $packages["encoding/asn1"] = (function() { e = _tmp$10; err = _tmp$11; $s = -1; return [e, err]; - /* } */ case 33: - _r$14 = getUniversalType($clone(v, reflect.Value).Type()); /* */ $s = 35; case 35: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - _tuple$1 = _r$14; + /* } */ case 26: + _r$10 = getUniversalType($clone(v, reflect.Value).Type()); /* */ $s = 28; case 28: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _tuple$1 = _r$10; matchAny = _tuple$1[0]; tag = _tuple$1[1]; isCompound = _tuple$1[2]; ok = _tuple$1[3]; - /* */ if (!ok || matchAny) { $s = 36; continue; } - /* */ $s = 37; continue; - /* if (!ok || matchAny) { */ case 36: + /* */ if (!ok || matchAny) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if (!ok || matchAny) { */ case 29: _tmp$12 = $ifaceNil; - _r$15 = fmt.Sprintf("unknown Go type: %v", new sliceType$4([$clone(v, reflect.Value).Type()])); /* */ $s = 38; case 38: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - _tmp$13 = (x$3 = new StructuralError.ptr(_r$15), new x$3.constructor.elem(x$3)); + _r$11 = fmt.Sprintf("unknown Go type: %v", new sliceType$4([$clone(v, reflect.Value).Type()])); /* */ $s = 31; case 31: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _tmp$13 = (x$3 = new StructuralError.ptr(_r$11), new x$3.constructor.elem(x$3)); e = _tmp$12; err = _tmp$13; $24r$2 = [e, err]; - $s = 39; case 39: return $24r$2; - /* } */ case 37: + $s = 32; case 32: return $24r$2; + /* } */ case 30: if (!((params.timeType === 0)) && !((tag === 23))) { _tmp$14 = $ifaceNil; _tmp$15 = (x$4 = new StructuralError.ptr("explicit time type given to non-time member"), new x$4.constructor.elem(x$4)); @@ -223618,57 +224901,57 @@ $packages["encoding/asn1"] = (function() { $s = -1; return [e, err]; } _1 = tag; - /* */ if (_1 === (19)) { $s = 41; continue; } - /* */ if (_1 === (23)) { $s = 42; continue; } - /* */ $s = 43; continue; - /* if (_1 === (19)) { */ case 41: - /* */ if (params.stringType === 0) { $s = 44; continue; } - /* */ $s = 45; continue; - /* if (params.stringType === 0) { */ case 44: - _r$16 = $clone(v, reflect.Value).String(); /* */ $s = 47; case 47: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - _ref = _r$16; + /* */ if (_1 === (19)) { $s = 34; continue; } + /* */ if (_1 === (23)) { $s = 35; continue; } + /* */ $s = 36; continue; + /* if (_1 === (19)) { */ case 34: + /* */ if (params.stringType === 0) { $s = 37; continue; } + /* */ $s = 38; continue; + /* if (params.stringType === 0) { */ case 37: + _r$12 = $clone(v, reflect.Value).String(); /* */ $s = 40; case 40: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _ref = _r$12; _i = 0; - /* while (true) { */ case 48: - /* if (!(_i < _ref.length)) { break; } */ if(!(_i < _ref.length)) { $s = 49; continue; } + /* while (true) { */ case 41: + /* if (!(_i < _ref.length)) { break; } */ if(!(_i < _ref.length)) { $s = 42; continue; } _rune = $decodeRune(_ref, _i); r = _rune[0]; - /* */ if (r >= 128 || !isPrintable(((r << 24 >>> 24)), false, false)) { $s = 50; continue; } - /* */ $s = 51; continue; - /* if (r >= 128 || !isPrintable(((r << 24 >>> 24)), false, false)) { */ case 50: - _r$17 = $clone(v, reflect.Value).String(); /* */ $s = 54; case 54: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - _r$18 = utf8.ValidString(_r$17); /* */ $s = 55; case 55: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - /* */ if (!_r$18) { $s = 52; continue; } - /* */ $s = 53; continue; - /* if (!_r$18) { */ case 52: + /* */ if (r >= 128 || !isPrintable(((r << 24 >>> 24)), false, false)) { $s = 43; continue; } + /* */ $s = 44; continue; + /* if (r >= 128 || !isPrintable(((r << 24 >>> 24)), false, false)) { */ case 43: + _r$13 = $clone(v, reflect.Value).String(); /* */ $s = 47; case 47: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _r$14 = utf8.ValidString(_r$13); /* */ $s = 48; case 48: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + /* */ if (!_r$14) { $s = 45; continue; } + /* */ $s = 46; continue; + /* if (!_r$14) { */ case 45: _tmp$18 = $ifaceNil; _tmp$19 = errors.New("asn1: string not valid UTF-8"); e = _tmp$18; err = _tmp$19; $s = -1; return [e, err]; - /* } */ case 53: + /* } */ case 46: tag = 12; - /* break; */ $s = 49; continue; - /* } */ case 51: + /* break; */ $s = 42; continue; + /* } */ case 44: _i += _rune[1]; - $s = 48; continue; - case 49: - $s = 46; continue; - /* } else { */ case 45: + $s = 41; continue; + case 42: + $s = 39; continue; + /* } else { */ case 38: tag = params.stringType; - /* } */ case 46: - $s = 43; continue; - /* } else if (_1 === (23)) { */ case 42: - if (params.timeType === 24) { _v$2 = true; $s = 58; continue s; } - _r$19 = $clone(v, reflect.Value).Interface(); /* */ $s = 59; case 59: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - _r$20 = outsideUTCRange($clone($assertType(_r$19, time.Time), time.Time)); /* */ $s = 60; case 60: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - _v$2 = _r$20; case 58: - /* */ if (_v$2) { $s = 56; continue; } - /* */ $s = 57; continue; - /* if (_v$2) { */ case 56: + /* } */ case 39: + $s = 36; continue; + /* } else if (_1 === (23)) { */ case 35: + if (params.timeType === 24) { _v$1 = true; $s = 51; continue s; } + _r$15 = $clone(v, reflect.Value).Interface(); /* */ $s = 52; case 52: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + _r$16 = outsideUTCRange($clone($assertType(_r$15, time.Time), time.Time)); /* */ $s = 53; case 53: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + _v$1 = _r$16; case 51: + /* */ if (_v$1) { $s = 49; continue; } + /* */ $s = 50; continue; + /* if (_v$1) { */ case 49: tag = 24; - /* } */ case 57: - /* } */ case 43: - case 40: + /* } */ case 50: + /* } */ case 36: + case 33: if (params.set) { if (!((tag === 16))) { _tmp$20 = $ifaceNil; @@ -223683,8 +224966,8 @@ $packages["encoding/asn1"] = (function() { params.set = true; } t$1 = new taggedEncoder.ptr(arrayType$1.zero(), $ifaceNil, $ifaceNil); - _r$21 = makeBody($clone(v, reflect.Value), $clone(params, fieldParameters)); /* */ $s = 61; case 61: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } - _tuple$2 = _r$21; + _r$17 = makeBody($clone(v, reflect.Value), $clone(params, fieldParameters)); /* */ $s = 54; case 54: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + _tuple$2 = _r$17; t$1.body = _tuple$2[0]; err = _tuple$2[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { @@ -223694,12 +224977,12 @@ $packages["encoding/asn1"] = (function() { err = _tmp$23; $s = -1; return [e, err]; } - _r$22 = t$1.body.Len(); /* */ $s = 62; case 62: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - bodyLen = _r$22; + _r$18 = t$1.body.Len(); /* */ $s = 55; case 55: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + bodyLen = _r$18; class$1 = 0; - /* */ if (!(params.tag === ptrType$3.nil)) { $s = 63; continue; } - /* */ $s = 64; continue; - /* if (!(params.tag === ptrType$3.nil)) { */ case 63: + /* */ if (!(params.tag === ptrType$3.nil)) { $s = 56; continue; } + /* */ $s = 57; continue; + /* if (!(params.tag === ptrType$3.nil)) { */ case 56: if (params.application) { class$1 = 1; } else if (params.private$3) { @@ -223707,32 +224990,32 @@ $packages["encoding/asn1"] = (function() { } else { class$1 = 2; } - /* */ if (params.explicit) { $s = 65; continue; } - /* */ $s = 66; continue; - /* if (params.explicit) { */ case 65: + /* */ if (params.explicit) { $s = 58; continue; } + /* */ $s = 59; continue; + /* if (params.explicit) { */ case 58: t$1.tag = ($convertSliceType(appendTagAndLength($subslice(new sliceType(t$1.scratch), 0, 0), $clone(new tagAndLength.ptr(0, tag, bodyLen, isCompound), tagAndLength)), bytesEncoder)); tt = new taggedEncoder.ptr(arrayType$1.zero(), $ifaceNil, $ifaceNil); tt.body = t$1; _arg$4 = $subslice(new sliceType(tt.scratch), 0, 0); - _r$23 = t$1.tag.Len(); /* */ $s = 67; case 67: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _arg$5 = $clone(new tagAndLength.ptr(class$1, params.tag.$get(), bodyLen + _r$23 >> 0, true), tagAndLength); - _r$24 = appendTagAndLength(_arg$4, _arg$5); /* */ $s = 68; case 68: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - tt.tag = ($convertSliceType(_r$24, bytesEncoder)); + _r$19 = t$1.tag.Len(); /* */ $s = 60; case 60: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + _arg$5 = $clone(new tagAndLength.ptr(class$1, params.tag.$get(), bodyLen + _r$19 >> 0, true), tagAndLength); + _r$20 = appendTagAndLength(_arg$4, _arg$5); /* */ $s = 61; case 61: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + tt.tag = ($convertSliceType(_r$20, bytesEncoder)); _tmp$24 = tt; _tmp$25 = $ifaceNil; e = _tmp$24; err = _tmp$25; $s = -1; return [e, err]; - /* } */ case 66: + /* } */ case 59: tag = params.tag.$get(); - /* } */ case 64: + /* } */ case 57: t$1.tag = ($convertSliceType(appendTagAndLength($subslice(new sliceType(t$1.scratch), 0, 0), $clone(new tagAndLength.ptr(class$1, tag, bodyLen, isCompound), tagAndLength)), bytesEncoder)); _tmp$26 = t$1; _tmp$27 = $ifaceNil; e = _tmp$26; err = _tmp$27; $s = -1; return [e, err]; - /* */ } return; } var $f = {$blk: makeField$1, $c: true, $r, $24r, $24r$1, $24r$2, _1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _i, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _rune, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _v, _v$1, _v$2, bodyLen, class$1, defaultValue, e, err, isCompound, matchAny, ok, params, r, rv, t, t$1, tag, tt, v, x$3, x$4, x$5, x$6, $s};return $f; + /* */ } return; } var $f = {$blk: makeField$1, $c: true, $r, $24r, $24r$1, $24r$2, _1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _i, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _rune, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _v, _v$1, bodyLen, class$1, defaultValue, e, err, isCompound, matchAny, ok, params, r, rv, t, t$1, tag, tt, v, x$3, x$4, x$5, x$6, $s};return $f; }; Marshal = function Marshal$1(val) { var {$24r, _r, val, $s, $r, $c} = $restore(this, {val}); @@ -223744,21 +225027,20 @@ $packages["encoding/asn1"] = (function() { }; $pkg.Marshal = Marshal; MarshalWithParams = function MarshalWithParams$1(val, params) { - var {_r, _r$1, _r$2, _tuple, b, e, err, params, val, $s, $r, $c} = $restore(this, {val, params}); + var {_r, _r$1, _tuple, b, e, err, params, val, $s, $r, $c} = $restore(this, {val, params}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = reflect.ValueOf(val); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = makeField($clone(_r, reflect.Value), $clone(parseFieldParameters(params), fieldParameters)); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; + _r = makeField($clone(reflect.ValueOf(val), reflect.Value), $clone(parseFieldParameters(params), fieldParameters)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; e = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [sliceType.nil, err]; } - _r$2 = e.Len(); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - b = $makeSlice(sliceType, _r$2); - $r = e.Encode(b); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = e.Len(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + b = $makeSlice(sliceType, _r$1); + $r = e.Encode(b); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return [b, $ifaceNil]; - /* */ } return; } var $f = {$blk: MarshalWithParams$1, $c: true, $r, _r, _r$1, _r$2, _tuple, b, e, err, params, val, $s};return $f; + /* */ } return; } var $f = {$blk: MarshalWithParams$1, $c: true, $r, _r, _r$1, _tuple, b, e, err, params, val, $s};return $f; }; $pkg.MarshalWithParams = MarshalWithParams; parseFieldParameters = function parseFieldParameters$1(str) { @@ -224171,9 +225453,11 @@ $packages["encoding/asn1"] = (function() { }; $ptrType(ObjectIdentifier).prototype.Equal = function(...$args) { return this.$get().Equal(...$args); }; ObjectIdentifier.prototype.String = function String() { - var _i, _ref, i, oi, s, v; + var _i, _ref, buf, i, oi, s, v; oi = this; - s = ""; + s = new strings.Builder.ptr(ptrType$4.nil, sliceType.nil); + s.Grow(32); + buf = $makeSlice(sliceType, 0, 19); _ref = oi; _i = 0; while (true) { @@ -224181,12 +225465,12 @@ $packages["encoding/asn1"] = (function() { i = _i; v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); if (i > 0) { - s = s + ("."); + s.WriteByte(46); } - s = s + (strconv.Itoa(v)); + s.Write(strconv.AppendInt(buf, (new $Int64(0, v)), 10)); _i++; } - return s; + return s.String(); }; $ptrType(ObjectIdentifier).prototype.String = function(...$args) { return this.$get().String(...$args); }; parseObjectIdentifier = function parseObjectIdentifier$1(bytes$1) { @@ -224310,14 +225594,14 @@ $packages["encoding/asn1"] = (function() { ret = new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil); err = $ifaceNil; s = ($bytesToString(bytes$1)); - _r = time.Parse("20060102150405Z0700", s); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = time.Parse("20060102150405.999999999Z0700", s); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; time.Time.copy(ret, _tuple[0]); err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [ret, err]; } - _r$1 = $clone(ret, time.Time).Format("20060102150405Z0700"); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1 = $clone(ret, time.Time).Format("20060102150405.999999999Z0700"); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } serialized = _r$1; /* */ if (!(serialized === s)) { $s = 3; continue; } /* */ $s = 4; continue; @@ -224512,9 +225796,9 @@ $packages["encoding/asn1"] = (function() { return [ret, offset, err]; }; parseSequenceOf = function parseSequenceOf$1(bytes$1, sliceType$6, elemType) { - var {_1, _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, _tuple$2, bytes$1, compoundType, elemType, err, expectedTag, i, matchAny, numElements, offset, offset$1, ok, params, ret, sliceType$6, t, x$3, x$4, x$5, $s, $r, $c} = $restore(this, {bytes$1, sliceType$6, elemType}); + var {_1, _r, _r$1, _r$2, _tuple, _tuple$1, _tuple$2, bytes$1, compoundType, elemType, err, expectedTag, i, matchAny, numElements, offset, offset$1, ok, params, ret, sliceType$6, t, x$3, x$4, x$5, $s, $r, $c} = $restore(this, {bytes$1, sliceType$6, elemType}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - ret = new reflect.Value.ptr(ptrType$4.nil, 0, 0); + ret = new reflect.Value.ptr(ptrType$5.nil, 0, 0); err = $ifaceNil; _r = getUniversalType(elemType); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; @@ -224562,9 +225846,8 @@ $packages["encoding/asn1"] = (function() { i = 0; /* while (true) { */ case 3: /* if (!(i < numElements)) { break; } */ if(!(i < numElements)) { $s = 4; continue; } - _r$2 = $clone(ret, reflect.Value).Index(i); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = parseField($clone(_r$2, reflect.Value), bytes$1, offset$1, $clone(params, fieldParameters)); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple$2 = _r$3; + _r$2 = parseField($clone($clone(ret, reflect.Value).Index(i), reflect.Value), bytes$1, offset$1, $clone(params, fieldParameters)); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$2 = _r$2; offset$1 = _tuple$2[0]; err = _tuple$2[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { @@ -224574,14 +225857,14 @@ $packages["encoding/asn1"] = (function() { $s = 3; continue; case 4: $s = -1; return [ret, err]; - /* */ } return; } var $f = {$blk: parseSequenceOf$1, $c: true, $r, _1, _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, _tuple$2, bytes$1, compoundType, elemType, err, expectedTag, i, matchAny, numElements, offset, offset$1, ok, params, ret, sliceType$6, t, x$3, x$4, x$5, $s};return $f; + /* */ } return; } var $f = {$blk: parseSequenceOf$1, $c: true, $r, _1, _r, _r$1, _r$2, _tuple, _tuple$1, _tuple$2, bytes$1, compoundType, elemType, err, expectedTag, i, matchAny, numElements, offset, offset$1, ok, params, ret, sliceType$6, t, x$3, x$4, x$5, $s};return $f; }; invalidLength = function invalidLength$1(offset, length, sliceLength) { var length, offset, sliceLength; return (offset + length >> 0) < offset || (offset + length >> 0) > sliceLength; }; parseField = function parseField$1(v, bytes$1, initOffset, params) { - var {_1, _2, _3, _4, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$2, _tuple$20, _tuple$21, _tuple$22, _tuple$23, _tuple$24, _tuple$25, _tuple$26, _tuple$27, _tuple$28, _tuple$29, _tuple$3, _tuple$30, _tuple$31, _tuple$32, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, bytes$1, bytes$2, compoundType, err, err1, err1$1, err1$2, err1$3, err1$4, err1$5, expectedClass, expectedClass$1, expectedTag, field, fieldType, i, i$1, ifaceType, initOffset, innerBytes, innerBytes$1, innerOffset, matchAny, matchAnyClassAndTag, newSlice, offset, ok, ok$1, ok1, params, parsedBool, parsedInt, parsedInt$1, parsedInt$2, parsedInt$3, result, sliceType$6, structType, t, t$1, universalTag, v, v$1, v$2, v$3, v$4, v$5, v$6, v$7, v$8, val, x$10, x$11, x$12, x$13, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {v, bytes$1, initOffset, params}); + var {_1, _2, _3, _4, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$2, _tuple$20, _tuple$21, _tuple$22, _tuple$23, _tuple$24, _tuple$25, _tuple$26, _tuple$27, _tuple$28, _tuple$29, _tuple$3, _tuple$30, _tuple$31, _tuple$32, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, bytes$1, bytes$2, compoundType, err, err1, err1$1, err1$2, err1$3, err1$4, err1$5, expectedClass, expectedClass$1, expectedTag, field, fieldType, i, i$1, ifaceType, initOffset, innerBytes, innerBytes$1, innerOffset, matchAny, matchAnyClassAndTag, newSlice, offset, ok, ok$1, ok1, params, parsedBool, parsedInt, parsedInt$1, parsedInt$2, parsedInt$3, result, sliceType$6, structType, t, t$1, universalTag, v, v$1, v$2, v$3, v$4, v$5, v$6, v$7, v$8, val, x$10, x$11, x$12, x$13, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {v, bytes$1, initOffset, params}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: offset = 0; err = $ifaceNil; @@ -224701,8 +225984,7 @@ $packages["encoding/asn1"] = (function() { /* */ if (!($interfaceIsEqual(result, $ifaceNil))) { $s = 24; continue; } /* */ $s = 25; continue; /* if (!($interfaceIsEqual(result, $ifaceNil))) { */ case 24: - _r$4 = reflect.ValueOf(result); /* */ $s = 26; case 26: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $r = $clone(v, reflect.Value).Set($clone(_r$4, reflect.Value)); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = $clone(v, reflect.Value).Set($clone(reflect.ValueOf(result), reflect.Value)); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 25: $s = -1; return [offset, err]; /* } */ case 2: @@ -224750,19 +226032,19 @@ $packages["encoding/asn1"] = (function() { $s = -1; return [offset, err]; } } - _r$5 = getUniversalType(fieldType); /* */ $s = 28; case 28: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _tuple$14 = _r$5; + _r$4 = getUniversalType(fieldType); /* */ $s = 27; case 27: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$14 = _r$4; matchAny = _tuple$14[0]; universalTag = _tuple$14[1]; compoundType = _tuple$14[2]; ok1 = _tuple$14[3]; - /* */ if (!ok1) { $s = 29; continue; } - /* */ $s = 30; continue; - /* if (!ok1) { */ case 29: - _r$6 = fmt.Sprintf("unknown Go type: %v", new sliceType$4([fieldType])); /* */ $s = 31; case 31: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - err = (x$8 = new StructuralError.ptr(_r$6), new x$8.constructor.elem(x$8)); + /* */ if (!ok1) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (!ok1) { */ case 28: + _r$5 = fmt.Sprintf("unknown Go type: %v", new sliceType$4([fieldType])); /* */ $s = 30; case 30: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + err = (x$8 = new StructuralError.ptr(_r$5), new x$8.constructor.elem(x$8)); $s = -1; return [offset, err]; - /* } */ case 30: + /* } */ case 29: if (universalTag === 19) { if (t$1.class$0 === 0) { _2 = t$1.tag; @@ -224797,76 +226079,76 @@ $packages["encoding/asn1"] = (function() { expectedTag = params.tag.$get(); matchAnyClassAndTag = false; } - /* */ if (!matchAnyClassAndTag && (!((t$1.class$0 === expectedClass$1)) || !((t$1.tag === expectedTag))) || (!matchAny && !(t$1.isCompound === compoundType))) { $s = 32; continue; } - /* */ $s = 33; continue; - /* if (!matchAnyClassAndTag && (!((t$1.class$0 === expectedClass$1)) || !((t$1.tag === expectedTag))) || (!matchAny && !(t$1.isCompound === compoundType))) { */ case 32: + /* */ if (!matchAnyClassAndTag && (!((t$1.class$0 === expectedClass$1)) || !((t$1.tag === expectedTag))) || (!matchAny && !(t$1.isCompound === compoundType))) { $s = 31; continue; } + /* */ $s = 32; continue; + /* if (!matchAnyClassAndTag && (!((t$1.class$0 === expectedClass$1)) || !((t$1.tag === expectedTag))) || (!matchAny && !(t$1.isCompound === compoundType))) { */ case 31: ok$1 = setDefaultValue($clone(v, reflect.Value), $clone(params, fieldParameters)); - /* */ if (ok$1) { $s = 34; continue; } - /* */ $s = 35; continue; - /* if (ok$1) { */ case 34: + /* */ if (ok$1) { $s = 33; continue; } + /* */ $s = 34; continue; + /* if (ok$1) { */ case 33: offset = initOffset; - $s = 36; continue; - /* } else { */ case 35: + $s = 35; continue; + /* } else { */ case 34: _arg = new $Int(expectedTag); _arg$1 = new t$1.constructor.elem(t$1); _arg$2 = new params.constructor.elem(params); - _r$7 = fieldType.Name(); /* */ $s = 37; case 37: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _arg$3 = new $String(_r$7); + _r$6 = fieldType.Name(); /* */ $s = 36; case 36: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _arg$3 = new $String(_r$6); _arg$4 = new $Int(offset); - _r$8 = fmt.Sprintf("tags don't match (%d vs %+v) %+v %s @%d", new sliceType$4([_arg, _arg$1, _arg$2, _arg$3, _arg$4])); /* */ $s = 38; case 38: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - err = (x$9 = new StructuralError.ptr(_r$8), new x$9.constructor.elem(x$9)); - /* } */ case 36: + _r$7 = fmt.Sprintf("tags don't match (%d vs %+v) %+v %s @%d", new sliceType$4([_arg, _arg$1, _arg$2, _arg$3, _arg$4])); /* */ $s = 37; case 37: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + err = (x$9 = new StructuralError.ptr(_r$7), new x$9.constructor.elem(x$9)); + /* } */ case 35: $s = -1; return [offset, err]; - /* } */ case 33: + /* } */ case 32: if (invalidLength(offset, t$1.length, bytes$1.$length)) { err = (x$10 = new SyntaxError.ptr("data truncated"), new x$10.constructor.elem(x$10)); $s = -1; return [offset, err]; } innerBytes$1 = $subslice(bytes$1, offset, (offset + t$1.length >> 0)); offset = offset + (t$1.length) >> 0; - _r$9 = $clone($clone(v, reflect.Value).Addr(), reflect.Value).Interface(); /* */ $s = 39; case 39: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _ref = _r$9; - /* */ if ($assertType(_ref, ptrType$5, true)[1]) { $s = 40; continue; } - /* */ if ($assertType(_ref, ptrType$6, true)[1]) { $s = 41; continue; } - /* */ if ($assertType(_ref, ptrType$7, true)[1]) { $s = 42; continue; } - /* */ if ($assertType(_ref, ptrType$8, true)[1]) { $s = 43; continue; } - /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 44; continue; } - /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 45; continue; } - /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 46; continue; } - /* */ $s = 47; continue; - /* if ($assertType(_ref, ptrType$5, true)[1]) { */ case 40: + _r$8 = $clone($clone(v, reflect.Value).Addr(), reflect.Value).Interface(); /* */ $s = 38; case 38: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _ref = _r$8; + /* */ if ($assertType(_ref, ptrType$6, true)[1]) { $s = 39; continue; } + /* */ if ($assertType(_ref, ptrType$7, true)[1]) { $s = 40; continue; } + /* */ if ($assertType(_ref, ptrType$8, true)[1]) { $s = 41; continue; } + /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 42; continue; } + /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 43; continue; } + /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 44; continue; } + /* */ if ($assertType(_ref, ptrType$12, true)[1]) { $s = 45; continue; } + /* */ $s = 46; continue; + /* if ($assertType(_ref, ptrType$6, true)[1]) { */ case 39: v$1 = _ref.$val; - RawValue.copy(v$1, new RawValue.ptr(t$1.class$0, t$1.tag, t$1.isCompound, innerBytes$1, $subslice(bytes$1, initOffset, offset))); + RawValue.copy((v$1 === ptrType$6.nil && $throwNilPointerError(), v$1), new RawValue.ptr(t$1.class$0, t$1.tag, t$1.isCompound, innerBytes$1, $subslice(bytes$1, initOffset, offset))); $s = -1; return [offset, err]; - /* } else if ($assertType(_ref, ptrType$6, true)[1]) { */ case 41: + /* } else if ($assertType(_ref, ptrType$7, true)[1]) { */ case 40: v$2 = _ref.$val; _tuple$15 = parseObjectIdentifier(innerBytes$1); v$2.$set(_tuple$15[0]); err = _tuple$15[1]; $s = -1; return [offset, err]; - /* } else if ($assertType(_ref, ptrType$7, true)[1]) { */ case 42: + /* } else if ($assertType(_ref, ptrType$8, true)[1]) { */ case 41: v$3 = _ref.$val; _tuple$16 = parseBitString(innerBytes$1); - BitString.copy(v$3, _tuple$16[0]); + BitString.copy((v$3 === ptrType$8.nil && $throwNilPointerError(), v$3), _tuple$16[0]); err = _tuple$16[1]; $s = -1; return [offset, err]; - /* } else if ($assertType(_ref, ptrType$8, true)[1]) { */ case 43: + /* } else if ($assertType(_ref, ptrType$9, true)[1]) { */ case 42: v$4 = _ref.$val; - /* */ if (universalTag === 23) { $s = 48; continue; } - /* */ $s = 49; continue; - /* if (universalTag === 23) { */ case 48: - _r$10 = parseUTCTime(innerBytes$1); /* */ $s = 50; case 50: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _tuple$17 = _r$10; - time.Time.copy(v$4, _tuple$17[0]); + /* */ if (universalTag === 23) { $s = 47; continue; } + /* */ $s = 48; continue; + /* if (universalTag === 23) { */ case 47: + _r$9 = parseUTCTime(innerBytes$1); /* */ $s = 49; case 49: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _tuple$17 = _r$9; + time.Time.copy((v$4 === ptrType$9.nil && $throwNilPointerError(), v$4), _tuple$17[0]); err = _tuple$17[1]; $s = -1; return [offset, err]; - /* } */ case 49: - _r$11 = parseGeneralizedTime(innerBytes$1); /* */ $s = 51; case 51: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _tuple$18 = _r$11; - time.Time.copy(v$4, _tuple$18[0]); + /* } */ case 48: + _r$10 = parseGeneralizedTime(innerBytes$1); /* */ $s = 50; case 50: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _tuple$18 = _r$10; + time.Time.copy((v$4 === ptrType$9.nil && $throwNilPointerError(), v$4), _tuple$18[0]); err = _tuple$18[1]; $s = -1; return [offset, err]; - /* } else if ($assertType(_ref, ptrType$9, true)[1]) { */ case 44: + /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 43: v$5 = _ref.$val; _tuple$19 = parseInt32(innerBytes$1); parsedInt = _tuple$19[0]; @@ -224876,14 +226158,14 @@ $packages["encoding/asn1"] = (function() { } err = err1; $s = -1; return [offset, err]; - /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 45: + /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 44: v$6 = _ref.$val; v$6.$set(true); $s = -1; return [offset, err]; - /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 46: + /* } else if ($assertType(_ref, ptrType$12, true)[1]) { */ case 45: v$7 = _ref.$val; - _r$12 = parseBigInt(innerBytes$1); /* */ $s = 52; case 52: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _tuple$20 = _r$12; + _r$11 = parseBigInt(innerBytes$1); /* */ $s = 51; case 51: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _tuple$20 = _r$11; parsedInt$1 = _tuple$20[0]; err1$1 = _tuple$20[1]; if ($interfaceIsEqual(err1$1, $ifaceNil)) { @@ -224891,16 +226173,16 @@ $packages["encoding/asn1"] = (function() { } err = err1$1; $s = -1; return [offset, err]; - /* } */ case 47: + /* } */ case 46: val = v; _3 = $clone(val, reflect.Value).Kind(); - /* */ if (_3 === (1)) { $s = 54; continue; } - /* */ if ((_3 === (2)) || (_3 === (5)) || (_3 === (6))) { $s = 55; continue; } - /* */ if (_3 === (25)) { $s = 56; continue; } - /* */ if (_3 === (23)) { $s = 57; continue; } - /* */ if (_3 === (24)) { $s = 58; continue; } - /* */ $s = 59; continue; - /* if (_3 === (1)) { */ case 54: + /* */ if (_3 === (1)) { $s = 53; continue; } + /* */ if ((_3 === (2)) || (_3 === (5)) || (_3 === (6))) { $s = 54; continue; } + /* */ if (_3 === (25)) { $s = 55; continue; } + /* */ if (_3 === (23)) { $s = 56; continue; } + /* */ if (_3 === (24)) { $s = 57; continue; } + /* */ $s = 58; continue; + /* if (_3 === (1)) { */ case 53: _tuple$21 = parseBool(innerBytes$1); parsedBool = _tuple$21[0]; err1$2 = _tuple$21[1]; @@ -224909,11 +226191,11 @@ $packages["encoding/asn1"] = (function() { } err = err1$2; $s = -1; return [offset, err]; - /* } else if ((_3 === (2)) || (_3 === (5)) || (_3 === (6))) { */ case 55: - _r$13 = $clone(val, reflect.Value).Type().Size(); /* */ $s = 63; case 63: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - /* */ if (_r$13 === 4) { $s = 60; continue; } - /* */ $s = 61; continue; - /* if (_r$13 === 4) { */ case 60: + /* } else if ((_3 === (2)) || (_3 === (5)) || (_3 === (6))) { */ case 54: + _r$12 = $clone(val, reflect.Value).Type().Size(); /* */ $s = 62; case 62: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + /* */ if (_r$12 === 4) { $s = 59; continue; } + /* */ $s = 60; continue; + /* if (_r$12 === 4) { */ case 59: _tuple$22 = parseInt32(innerBytes$1); parsedInt$2 = _tuple$22[0]; err1$3 = _tuple$22[1]; @@ -224921,8 +226203,8 @@ $packages["encoding/asn1"] = (function() { $clone(val, reflect.Value).SetInt((new $Int64(0, parsedInt$2))); } err = err1$3; - $s = 62; continue; - /* } else { */ case 61: + $s = 61; continue; + /* } else { */ case 60: _tuple$23 = parseInt64(innerBytes$1); parsedInt$3 = _tuple$23[0]; err1$4 = _tuple$23[1]; @@ -224930,152 +226212,146 @@ $packages["encoding/asn1"] = (function() { $clone(val, reflect.Value).SetInt(parsedInt$3); } err = err1$4; - /* } */ case 62: + /* } */ case 61: $s = -1; return [offset, err]; - /* } else if (_3 === (25)) { */ case 56: + /* } else if (_3 === (25)) { */ case 55: structType = fieldType; i = 0; - /* while (true) { */ case 64: - _r$14 = structType.NumField(); /* */ $s = 66; case 66: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - /* if (!(i < _r$14)) { break; } */ if(!(i < _r$14)) { $s = 65; continue; } - _r$15 = structType.Field(i); /* */ $s = 69; case 69: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - _r$16 = $clone(_r$15, reflect.StructField).IsExported(); /* */ $s = 70; case 70: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - /* */ if (!_r$16) { $s = 67; continue; } - /* */ $s = 68; continue; - /* if (!_r$16) { */ case 67: + /* while (true) { */ case 63: + _r$13 = structType.NumField(); /* */ $s = 65; case 65: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + /* if (!(i < _r$13)) { break; } */ if(!(i < _r$13)) { $s = 64; continue; } + _r$14 = structType.Field(i); /* */ $s = 68; case 68: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _r$15 = $clone(_r$14, reflect.StructField).IsExported(); /* */ $s = 69; case 69: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + /* */ if (!_r$15) { $s = 66; continue; } + /* */ $s = 67; continue; + /* if (!_r$15) { */ case 66: err = (x$11 = new StructuralError.ptr("struct contains unexported fields"), new x$11.constructor.elem(x$11)); $s = -1; return [offset, err]; - /* } */ case 68: + /* } */ case 67: i = i + (1) >> 0; - $s = 64; continue; - case 65: - _r$17 = structType.NumField(); /* */ $s = 74; case 74: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - if (!(_r$17 > 0)) { _v$1 = false; $s = 73; continue s; } - _r$18 = structType.Field(0); /* */ $s = 75; case 75: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - _v$1 = $interfaceIsEqual(_r$18.Type, rawContentsType); case 73: - /* */ if (_v$1) { $s = 71; continue; } - /* */ $s = 72; continue; - /* if (_v$1) { */ case 71: + $s = 63; continue; + case 64: + _r$16 = structType.NumField(); /* */ $s = 73; case 73: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + if (!(_r$16 > 0)) { _v$1 = false; $s = 72; continue s; } + _r$17 = structType.Field(0); /* */ $s = 74; case 74: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + _v$1 = $interfaceIsEqual(_r$17.Type, rawContentsType); case 72: + /* */ if (_v$1) { $s = 70; continue; } + /* */ $s = 71; continue; + /* if (_v$1) { */ case 70: bytes$2 = $subslice(bytes$1, initOffset, offset); - _r$19 = $clone(val, reflect.Value).Field(0); /* */ $s = 76; case 76: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - _r$20 = reflect.ValueOf(($convertSliceType(bytes$2, RawContent))); /* */ $s = 77; case 77: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - $r = $clone(_r$19, reflect.Value).Set($clone(_r$20, reflect.Value)); /* */ $s = 78; case 78: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 72: + $r = $clone($clone(val, reflect.Value).Field(0), reflect.Value).Set($clone(reflect.ValueOf(($convertSliceType(bytes$2, RawContent))), reflect.Value)); /* */ $s = 75; case 75: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 71: innerOffset = 0; i$1 = 0; - /* while (true) { */ case 79: - _r$21 = structType.NumField(); /* */ $s = 81; case 81: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } - /* if (!(i$1 < _r$21)) { break; } */ if(!(i$1 < _r$21)) { $s = 80; continue; } - _r$22 = structType.Field(i$1); /* */ $s = 82; case 82: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - field = $clone(_r$22, reflect.StructField); + /* while (true) { */ case 76: + _r$18 = structType.NumField(); /* */ $s = 78; case 78: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + /* if (!(i$1 < _r$18)) { break; } */ if(!(i$1 < _r$18)) { $s = 77; continue; } + _r$19 = structType.Field(i$1); /* */ $s = 79; case 79: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + field = $clone(_r$19, reflect.StructField); if ((i$1 === 0) && $interfaceIsEqual(field.Type, rawContentsType)) { i$1 = i$1 + (1) >> 0; - /* continue; */ $s = 79; continue; + /* continue; */ $s = 76; continue; } - _r$23 = $clone(val, reflect.Value).Field(i$1); /* */ $s = 83; case 83: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _r$24 = parseField($clone(_r$23, reflect.Value), innerBytes$1, innerOffset, $clone(parseFieldParameters(new reflect.StructTag(field.Tag).Get("asn1")), fieldParameters)); /* */ $s = 84; case 84: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - _tuple$24 = _r$24; + _r$20 = parseField($clone($clone(val, reflect.Value).Field(i$1), reflect.Value), innerBytes$1, innerOffset, $clone(parseFieldParameters(new reflect.StructTag(field.Tag).Get("asn1")), fieldParameters)); /* */ $s = 80; case 80: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + _tuple$24 = _r$20; innerOffset = _tuple$24[0]; err = _tuple$24[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [offset, err]; } i$1 = i$1 + (1) >> 0; - $s = 79; continue; - case 80: + $s = 76; continue; + case 77: $s = -1; return [offset, err]; - /* } else if (_3 === (23)) { */ case 57: + /* } else if (_3 === (23)) { */ case 56: sliceType$6 = fieldType; - _r$25 = sliceType$6.Elem(); /* */ $s = 87; case 87: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - _r$26 = _r$25.Kind(); /* */ $s = 88; case 88: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - /* */ if (_r$26 === 8) { $s = 85; continue; } - /* */ $s = 86; continue; - /* if (_r$26 === 8) { */ case 85: - _r$27 = reflect.MakeSlice(sliceType$6, innerBytes$1.$length, innerBytes$1.$length); /* */ $s = 89; case 89: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - $r = $clone(val, reflect.Value).Set($clone(_r$27, reflect.Value)); /* */ $s = 90; case 90: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _arg$5 = $clone(val, reflect.Value); - _r$28 = reflect.ValueOf(innerBytes$1); /* */ $s = 91; case 91: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - _arg$6 = $clone(_r$28, reflect.Value); - _r$29 = reflect.Copy(_arg$5, _arg$6); /* */ $s = 92; case 92: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } - _r$29; + _r$21 = sliceType$6.Elem(); /* */ $s = 83; case 83: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + _r$22 = _r$21.Kind(); /* */ $s = 84; case 84: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + /* */ if (_r$22 === 8) { $s = 81; continue; } + /* */ $s = 82; continue; + /* if (_r$22 === 8) { */ case 81: + _r$23 = reflect.MakeSlice(sliceType$6, innerBytes$1.$length, innerBytes$1.$length); /* */ $s = 85; case 85: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + $r = $clone(val, reflect.Value).Set($clone(_r$23, reflect.Value)); /* */ $s = 86; case 86: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$24 = reflect.Copy($clone(val, reflect.Value), $clone(reflect.ValueOf(innerBytes$1), reflect.Value)); /* */ $s = 87; case 87: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _r$24; $s = -1; return [offset, err]; - /* } */ case 86: - _arg$7 = innerBytes$1; - _arg$8 = sliceType$6; - _r$30 = sliceType$6.Elem(); /* */ $s = 93; case 93: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } - _arg$9 = _r$30; - _r$31 = parseSequenceOf(_arg$7, _arg$8, _arg$9); /* */ $s = 94; case 94: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } - _tuple$25 = _r$31; + /* } */ case 82: + _arg$5 = innerBytes$1; + _arg$6 = sliceType$6; + _r$25 = sliceType$6.Elem(); /* */ $s = 88; case 88: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _arg$7 = _r$25; + _r$26 = parseSequenceOf(_arg$5, _arg$6, _arg$7); /* */ $s = 89; case 89: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + _tuple$25 = _r$26; newSlice = _tuple$25[0]; err1$5 = _tuple$25[1]; - /* */ if ($interfaceIsEqual(err1$5, $ifaceNil)) { $s = 95; continue; } - /* */ $s = 96; continue; - /* if ($interfaceIsEqual(err1$5, $ifaceNil)) { */ case 95: - $r = $clone(val, reflect.Value).Set($clone(newSlice, reflect.Value)); /* */ $s = 97; case 97: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 96: + /* */ if ($interfaceIsEqual(err1$5, $ifaceNil)) { $s = 90; continue; } + /* */ $s = 91; continue; + /* if ($interfaceIsEqual(err1$5, $ifaceNil)) { */ case 90: + $r = $clone(val, reflect.Value).Set($clone(newSlice, reflect.Value)); /* */ $s = 92; case 92: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 91: err = err1$5; $s = -1; return [offset, err]; - /* } else if (_3 === (24)) { */ case 58: + /* } else if (_3 === (24)) { */ case 57: v$8 = ""; _4 = universalTag; - /* */ if (_4 === (19)) { $s = 99; continue; } - /* */ if (_4 === (18)) { $s = 100; continue; } - /* */ if (_4 === (22)) { $s = 101; continue; } - /* */ if (_4 === (20)) { $s = 102; continue; } - /* */ if (_4 === (12)) { $s = 103; continue; } - /* */ if (_4 === (27)) { $s = 104; continue; } - /* */ if (_4 === (30)) { $s = 105; continue; } - /* */ $s = 106; continue; - /* if (_4 === (19)) { */ case 99: + /* */ if (_4 === (19)) { $s = 94; continue; } + /* */ if (_4 === (18)) { $s = 95; continue; } + /* */ if (_4 === (22)) { $s = 96; continue; } + /* */ if (_4 === (20)) { $s = 97; continue; } + /* */ if (_4 === (12)) { $s = 98; continue; } + /* */ if (_4 === (27)) { $s = 99; continue; } + /* */ if (_4 === (30)) { $s = 100; continue; } + /* */ $s = 101; continue; + /* if (_4 === (19)) { */ case 94: _tuple$26 = parsePrintableString(innerBytes$1); v$8 = _tuple$26[0]; err = _tuple$26[1]; - $s = 107; continue; - /* } else if (_4 === (18)) { */ case 100: + $s = 102; continue; + /* } else if (_4 === (18)) { */ case 95: _tuple$27 = parseNumericString(innerBytes$1); v$8 = _tuple$27[0]; err = _tuple$27[1]; - $s = 107; continue; - /* } else if (_4 === (22)) { */ case 101: + $s = 102; continue; + /* } else if (_4 === (22)) { */ case 96: _tuple$28 = parseIA5String(innerBytes$1); v$8 = _tuple$28[0]; err = _tuple$28[1]; - $s = 107; continue; - /* } else if (_4 === (20)) { */ case 102: + $s = 102; continue; + /* } else if (_4 === (20)) { */ case 97: _tuple$29 = parseT61String(innerBytes$1); v$8 = _tuple$29[0]; err = _tuple$29[1]; - $s = 107; continue; - /* } else if (_4 === (12)) { */ case 103: + $s = 102; continue; + /* } else if (_4 === (12)) { */ case 98: _tuple$30 = parseUTF8String(innerBytes$1); v$8 = _tuple$30[0]; err = _tuple$30[1]; - $s = 107; continue; - /* } else if (_4 === (27)) { */ case 104: + $s = 102; continue; + /* } else if (_4 === (27)) { */ case 99: _tuple$31 = parseT61String(innerBytes$1); v$8 = _tuple$31[0]; err = _tuple$31[1]; - $s = 107; continue; - /* } else if (_4 === (30)) { */ case 105: + $s = 102; continue; + /* } else if (_4 === (30)) { */ case 100: _tuple$32 = parseBMPString(innerBytes$1); v$8 = _tuple$32[0]; err = _tuple$32[1]; - $s = 107; continue; - /* } else { */ case 106: - _r$32 = fmt.Sprintf("internal error: unknown string type %d", new sliceType$4([new $Int(universalTag)])); /* */ $s = 108; case 108: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } - err = (x$12 = new SyntaxError.ptr(_r$32), new x$12.constructor.elem(x$12)); - /* } */ case 107: - case 98: + $s = 102; continue; + /* } else { */ case 101: + _r$27 = fmt.Sprintf("internal error: unknown string type %d", new sliceType$4([new $Int(universalTag)])); /* */ $s = 103; case 103: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + err = (x$12 = new SyntaxError.ptr(_r$27), new x$12.constructor.elem(x$12)); + /* } */ case 102: + case 93: if ($interfaceIsEqual(err, $ifaceNil)) { $clone(val, reflect.Value).SetString(v$8); } $s = -1; return [offset, err]; - /* } */ case 59: - case 53: - _r$33 = $clone(v, reflect.Value).Type().String(); /* */ $s = 109; case 109: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } - err = (x$13 = new StructuralError.ptr("unsupported: " + _r$33), new x$13.constructor.elem(x$13)); + /* } */ case 58: + case 52: + _r$28 = $clone(v, reflect.Value).Type().String(); /* */ $s = 104; case 104: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + err = (x$13 = new StructuralError.ptr("unsupported: " + _r$28), new x$13.constructor.elem(x$13)); $s = -1; return [offset, err]; - /* */ } return; } var $f = {$blk: parseField$1, $c: true, $r, _1, _2, _3, _4, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$2, _tuple$20, _tuple$21, _tuple$22, _tuple$23, _tuple$24, _tuple$25, _tuple$26, _tuple$27, _tuple$28, _tuple$29, _tuple$3, _tuple$30, _tuple$31, _tuple$32, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, bytes$1, bytes$2, compoundType, err, err1, err1$1, err1$2, err1$3, err1$4, err1$5, expectedClass, expectedClass$1, expectedTag, field, fieldType, i, i$1, ifaceType, initOffset, innerBytes, innerBytes$1, innerOffset, matchAny, matchAnyClassAndTag, newSlice, offset, ok, ok$1, ok1, params, parsedBool, parsedInt, parsedInt$1, parsedInt$2, parsedInt$3, result, sliceType$6, structType, t, t$1, universalTag, v, v$1, v$2, v$3, v$4, v$5, v$6, v$7, v$8, val, x$10, x$11, x$12, x$13, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; + /* */ } return; } var $f = {$blk: parseField$1, $c: true, $r, _1, _2, _3, _4, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$2, _tuple$20, _tuple$21, _tuple$22, _tuple$23, _tuple$24, _tuple$25, _tuple$26, _tuple$27, _tuple$28, _tuple$29, _tuple$3, _tuple$30, _tuple$31, _tuple$32, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, bytes$1, bytes$2, compoundType, err, err1, err1$1, err1$2, err1$3, err1$4, err1$5, expectedClass, expectedClass$1, expectedTag, field, fieldType, i, i$1, ifaceType, initOffset, innerBytes, innerBytes$1, innerOffset, matchAny, matchAnyClassAndTag, newSlice, offset, ok, ok$1, ok1, params, parsedBool, parsedInt, parsedInt$1, parsedInt$2, parsedInt$3, result, sliceType$6, structType, t, t$1, universalTag, v, v$1, v$2, v$3, v$4, v$5, v$6, v$7, v$8, val, x$10, x$11, x$12, x$13, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; }; canHaveDefaultValue = function canHaveDefaultValue$1(k) { var _1, k; @@ -225135,12 +226411,11 @@ $packages["encoding/asn1"] = (function() { /* */ } return; } var $f = {$blk: Error$2, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, e, $s};return $f; }; UnmarshalWithParams = function UnmarshalWithParams$1(b, val, params) { - var {_r, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, b, err, offset, params, rest, v, val, $s, $r, $c} = $restore(this, {b, val, params}); + var {_r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, b, err, offset, params, rest, v, val, $s, $r, $c} = $restore(this, {b, val, params}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: rest = sliceType.nil; err = $ifaceNil; - _r = reflect.ValueOf(val); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - v = _r; + v = reflect.ValueOf(val); if (!(($clone(v, reflect.Value).Kind() === 22)) || $clone(v, reflect.Value).IsNil()) { _tmp = sliceType.nil; _tmp$1 = new invalidUnmarshalError.ptr(reflect.TypeOf(val)); @@ -225148,9 +226423,8 @@ $packages["encoding/asn1"] = (function() { err = _tmp$1; $s = -1; return [rest, err]; } - _r$1 = $clone(v, reflect.Value).Elem(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = parseField($clone(_r$1, reflect.Value), b, 0, $clone(parseFieldParameters(params), fieldParameters)); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple = _r$2; + _r = parseField($clone($clone(v, reflect.Value).Elem(), reflect.Value), b, 0, $clone(parseFieldParameters(params), fieldParameters)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; offset = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { @@ -225165,7 +226439,7 @@ $packages["encoding/asn1"] = (function() { rest = _tmp$4; err = _tmp$5; $s = -1; return [rest, err]; - /* */ } return; } var $f = {$blk: UnmarshalWithParams$1, $c: true, $r, _r, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, b, err, offset, params, rest, v, val, $s};return $f; + /* */ } return; } var $f = {$blk: UnmarshalWithParams$1, $c: true, $r, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, b, err, offset, params, rest, v, val, $s};return $f; }; $pkg.UnmarshalWithParams = UnmarshalWithParams; byteEncoder.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Encode", name: "Encode", pkg: "", typ: $funcType([sliceType], [], false)}]; @@ -225173,7 +226447,7 @@ $packages["encoding/asn1"] = (function() { stringEncoder.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Encode", name: "Encode", pkg: "", typ: $funcType([sliceType], [], false)}]; multiEncoder.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Encode", name: "Encode", pkg: "", typ: $funcType([sliceType], [], false)}]; setEncoder.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Encode", name: "Encode", pkg: "", typ: $funcType([sliceType], [], false)}]; - ptrType$12.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Encode", name: "Encode", pkg: "", typ: $funcType([sliceType], [], false)}]; + ptrType$13.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Encode", name: "Encode", pkg: "", typ: $funcType([sliceType], [], false)}]; int64Encoder.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Encode", name: "Encode", pkg: "", typ: $funcType([sliceType], [], false)}]; bitStringEncoder.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Encode", name: "Encode", pkg: "", typ: $funcType([sliceType], [], false)}]; oidEncoder.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Encode", name: "Encode", pkg: "", typ: $funcType([sliceType], [], false)}]; @@ -225181,7 +226455,7 @@ $packages["encoding/asn1"] = (function() { SyntaxError.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; BitString.methods = [{prop: "At", name: "At", pkg: "", typ: $funcType([$Int], [$Int], false)}, {prop: "RightAlign", name: "RightAlign", pkg: "", typ: $funcType([], [sliceType], false)}]; ObjectIdentifier.methods = [{prop: "Equal", name: "Equal", pkg: "", typ: $funcType([ObjectIdentifier], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$13.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$14.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; encoder.init([{prop: "Encode", name: "Encode", pkg: "", typ: $funcType([sliceType], [], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}]); bytesEncoder.init($Uint8); multiEncoder.init(encoder); @@ -225325,9 +226599,9 @@ $packages["vendor/golang.org/x/crypto/cryptobyte"] = (function() { ptrType$13 = $ptrType(big.Int); ptrType$14 = $ptrType(sliceType); sliceType$2 = $sliceType($Int); - ptrType$15 = $ptrType(asn1$1.Tag); - ptrType$16 = $ptrType(asn1.ObjectIdentifier); - ptrType$17 = $ptrType(time.Time); + ptrType$15 = $ptrType(time.Time); + ptrType$16 = $ptrType(asn1$1.Tag); + ptrType$17 = $ptrType(asn1.ObjectIdentifier); ptrType$18 = $ptrType(asn1.BitString); $ptrType(String).prototype.read = function read(n) { var n, s, v; @@ -225687,7 +226961,7 @@ $packages["vendor/golang.org/x/crypto/cryptobyte"] = (function() { b.err = _r; $s = -1; return; /* } */ case 3: - if (b.fixedSize && !((x$5 = b.result, $indexPtr(x$5.$array, x$5.$offset + 0, ptrType$2)) === (x$6 = child.result, $indexPtr(x$6.$array, x$6.$offset + 0, ptrType$2)))) { + if (b.fixedSize && !((x$5 = b.result, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$5.$array, x$5.$offset + 0, ptrType$2))) === (x$6 = child.result, (0 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$6.$array, x$6.$offset + 0, ptrType$2))))) { $panic(new $String("cryptobyte: BuilderContinuation reallocated a fixed-size buffer")); } b.result = child.result; @@ -225725,6 +226999,9 @@ $packages["vendor/golang.org/x/crypto/cryptobyte"] = (function() { if (length < 0) { $panic(new $String("cryptobyte: internal error")); } + if (n < 0) { + $panic(new $String("cryptobyte: attempted to unwrite negative number of bytes")); + } if (n > length) { $panic(new $String("cryptobyte: attempted to unwrite more than was written")); } @@ -226095,7 +227372,7 @@ $packages["vendor/golang.org/x/crypto/cryptobyte"] = (function() { return true; }; $ptrType(String).prototype.ReadASN1Integer = function ReadASN1Integer(out) { - var {$24r, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _v, _v$1, i, out, out$1, out$2, out$3, out$4, out$5, s, u, $s, $r, $c} = $restore(this, {out}); + var {$24r, _r, _ref, i, out, out$1, out$2, out$3, out$4, out$5, s, u, $s, $r, $c} = $restore(this, {out}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: i = [i]; u = [u]; @@ -226109,42 +227386,24 @@ $packages["vendor/golang.org/x/crypto/cryptobyte"] = (function() { /* if ($assertType(_ref, ptrType$4, true)[1] || $assertType(_ref, ptrType$5, true)[1] || $assertType(_ref, ptrType$6, true)[1] || $assertType(_ref, ptrType$7, true)[1] || $assertType(_ref, ptrType$8, true)[1]) { */ case 1: out$1 = _ref; i[0] = new $Int64(0, 0); - if (!s.readASN1Int64((i.$ptr || (i.$ptr = new ptrType$8(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, i))))) { _v = true; $s = 9; continue s; } - _r = reflect.ValueOf(out$1); /* */ $s = 10; case 10: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = $clone(_r, reflect.Value).Elem(); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = $clone(_r$1, reflect.Value).OverflowInt(i[0]); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _v = _r$2; case 9: - /* */ if (_v) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (_v) { */ case 7: + if (!s.readASN1Int64((i.$ptr || (i.$ptr = new ptrType$8(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, i)))) || $clone($clone(reflect.ValueOf(out$1), reflect.Value).Elem(), reflect.Value).OverflowInt(i[0])) { $s = -1; return false; - /* } */ case 8: - _r$3 = reflect.ValueOf(out$1); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$4 = $clone(_r$3, reflect.Value).Elem(); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $r = $clone(_r$4, reflect.Value).SetInt(i[0]); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + } + $clone($clone(reflect.ValueOf(out$1), reflect.Value).Elem(), reflect.Value).SetInt(i[0]); $s = -1; return true; /* } else if ($assertType(_ref, ptrType$9, true)[1] || $assertType(_ref, ptrType$2, true)[1] || $assertType(_ref, ptrType$10, true)[1] || $assertType(_ref, ptrType$11, true)[1] || $assertType(_ref, ptrType$12, true)[1]) { */ case 2: out$2 = _ref; u[0] = new $Uint64(0, 0); - if (!s.readASN1Uint64((u.$ptr || (u.$ptr = new ptrType$12(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, u))))) { _v$1 = true; $s = 18; continue s; } - _r$5 = reflect.ValueOf(out$2); /* */ $s = 19; case 19: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$6 = $clone(_r$5, reflect.Value).Elem(); /* */ $s = 20; case 20: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _r$7 = $clone(_r$6, reflect.Value).OverflowUint(u[0]); /* */ $s = 21; case 21: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _v$1 = _r$7; case 18: - /* */ if (_v$1) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (_v$1) { */ case 16: + if (!s.readASN1Uint64((u.$ptr || (u.$ptr = new ptrType$12(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, u)))) || $clone($clone(reflect.ValueOf(out$2), reflect.Value).Elem(), reflect.Value).OverflowUint(u[0])) { $s = -1; return false; - /* } */ case 17: - _r$8 = reflect.ValueOf(out$2); /* */ $s = 22; case 22: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _r$9 = $clone(_r$8, reflect.Value).Elem(); /* */ $s = 23; case 23: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - $r = $clone(_r$9, reflect.Value).SetUint(u[0]); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + } + $clone($clone(reflect.ValueOf(out$2), reflect.Value).Elem(), reflect.Value).SetUint(u[0]); $s = -1; return true; /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 3: out$3 = _ref.$val; - _r$10 = s.readASN1BigInt(out$3); /* */ $s = 25; case 25: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - $24r = _r$10; - $s = 26; case 26: return $24r; + _r = s.readASN1BigInt(out$3); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 8; case 8: return $24r; /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 4: out$4 = _ref.$val; $s = -1; return s.readASN1Bytes(out$4); @@ -226153,7 +227412,7 @@ $packages["vendor/golang.org/x/crypto/cryptobyte"] = (function() { $panic(new $String("out does not point to an integer type")); /* } */ case 6: $s = -1; return false; - /* */ } return; } var $f = {$blk: ReadASN1Integer, $c: true, $r, $24r, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _v, _v$1, i, out, out$1, out$2, out$3, out$4, out$5, s, u, $s};return $f; + /* */ } return; } var $f = {$blk: ReadASN1Integer, $c: true, $r, $24r, _r, _ref, i, out, out$1, out$2, out$3, out$4, out$5, s, u, $s};return $f; }; checkASN1Integer = function checkASN1Integer$1(bytes) { var bytes; @@ -226306,6 +227565,9 @@ $packages["vendor/golang.org/x/crypto/cryptobyte"] = (function() { } ret = (y = (7), y < 32 ? (ret << y) : 0) >> 0; b = (x = s.read(1), (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); + if ((i === 0) && (b === 128)) { + return false; + } ret = ret | (((((b & 127) >>> 0) >> 0))); if (((b & 128) >>> 0) === 0) { out.$set(ret); @@ -226368,7 +227630,7 @@ $packages["vendor/golang.org/x/crypto/cryptobyte"] = (function() { if (!(serialized === t)) { $s = -1; return false; } - time.Time.copy(out, res); + time.Time.copy((out === ptrType$15.nil && $throwNilPointerError(), out), res); $s = -1; return true; /* */ } return; } var $f = {$blk: ReadASN1GeneralizedTime, $c: true, $r, _r, _r$1, _tuple, bytes, err, out, res, s, serialized, t, $s};return $f; }; @@ -226412,7 +227674,7 @@ $packages["vendor/golang.org/x/crypto/cryptobyte"] = (function() { _r$4 = $clone(res, time.Time).AddDate(-100, 0, 0); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } time.Time.copy(res, _r$4); /* } */ case 7: - time.Time.copy(out, res); + time.Time.copy((out === ptrType$15.nil && $throwNilPointerError(), out), res); $s = -1; return true; /* */ } return; } var $f = {$blk: ReadASN1UTCTime, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, bytes, err, formatStr, out, res, s, serialized, t, $s};return $f; }; @@ -226449,13 +227711,13 @@ $packages["vendor/golang.org/x/crypto/cryptobyte"] = (function() { $ptrType(String).prototype.ReadASN1Bytes = function ReadASN1Bytes(out, tag) { var _ptr, out, s, tag; s = this; - return s.ReadASN1(((_ptr = out, new ptrType$3(function() { return $convertSliceType(_ptr.$get(), String); }, function($v) { _ptr.$set($convertSliceType($v, sliceType)); }, _ptr.$target))), tag); + return s.ReadASN1(((_ptr = out, new ptrType$3(function() { return $convertSliceType(_ptr.$get(), String); }, function($v) { _ptr.$set($convertSliceType($v, sliceType)); }, _ptr.$target, _ptr.$index))), tag); }; $ptrType(String).prototype.ReadASN1 = function ReadASN1(out, tag) { var out, s, t, t$24ptr, tag; s = this; t = 0; - if (!s.ReadAnyASN1(out, (t$24ptr || (t$24ptr = new ptrType$15(function() { return t; }, function($v) { t = $v; })))) || !((t === tag))) { + if (!s.ReadAnyASN1(out, (t$24ptr || (t$24ptr = new ptrType$16(function() { return t; }, function($v) { t = $v; })))) || !((t === tag))) { return false; } return true; @@ -226464,7 +227726,7 @@ $packages["vendor/golang.org/x/crypto/cryptobyte"] = (function() { var out, s, t, t$24ptr, tag; s = this; t = 0; - if (!s.ReadAnyASN1Element(out, (t$24ptr || (t$24ptr = new ptrType$15(function() { return t; }, function($v) { t = $v; })))) || !((t === tag))) { + if (!s.ReadAnyASN1Element(out, (t$24ptr || (t$24ptr = new ptrType$16(function() { return t; }, function($v) { t = $v; })))) || !((t === tag))) { return false; } return true; @@ -226516,7 +227778,7 @@ $packages["vendor/golang.org/x/crypto/cryptobyte"] = (function() { return s.ReadASN1((unused$24ptr || (unused$24ptr = new ptrType$3(function() { return unused; }, function($v) { unused = $v; }))), tag); }; $ptrType(String).prototype.ReadOptionalASN1Integer = function ReadOptionalASN1Integer(out, tag, defaultValue) { - var {_r, _r$1, _r$2, _r$3, _ref, _tuple, defaultValue, defaultValue$1, i, ok, out, present, s, tag, $s, $r, $c} = $restore(this, {out, tag, defaultValue}); + var {_r, _ref, _tuple, defaultValue, defaultValue$1, i, ok, out, present, s, tag, $s, $r, $c} = $restore(this, {out, tag, defaultValue}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: i = [i]; present = [present]; @@ -226534,10 +227796,7 @@ $packages["vendor/golang.org/x/crypto/cryptobyte"] = (function() { /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 4; continue; } /* */ $s = 5; continue; /* if ($assertType(_ref, ptrType$4, true)[1] || $assertType(_ref, ptrType$5, true)[1] || $assertType(_ref, ptrType$6, true)[1] || $assertType(_ref, ptrType$7, true)[1] || $assertType(_ref, ptrType$8, true)[1] || $assertType(_ref, ptrType$9, true)[1] || $assertType(_ref, ptrType$2, true)[1] || $assertType(_ref, ptrType$10, true)[1] || $assertType(_ref, ptrType$11, true)[1] || $assertType(_ref, ptrType$12, true)[1] || $assertType(_ref, ptrType$14, true)[1]) { */ case 3: - _r = reflect.ValueOf(out); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = $clone(_r, reflect.Value).Elem(); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = reflect.ValueOf(defaultValue); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $r = $clone(_r$1, reflect.Value).Set($clone(_r$2, reflect.Value)); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = $clone($clone(reflect.ValueOf(out), reflect.Value).Elem(), reflect.Value).Set($clone(reflect.ValueOf(defaultValue), reflect.Value)); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 6; continue; /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 4: _tuple = $assertType(defaultValue, ptrType$13, true); @@ -226554,14 +227813,14 @@ $packages["vendor/golang.org/x/crypto/cryptobyte"] = (function() { /* } */ case 6: $s = -1; return true; /* } */ case 2: - _r$3 = (i.$ptr || (i.$ptr = new ptrType$3(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, i))).ReadASN1Integer(out); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (!_r$3 || !i[0].Empty()) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (!_r$3 || !i[0].Empty()) { */ case 11: + _r = (i.$ptr || (i.$ptr = new ptrType$3(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, i))).ReadASN1Integer(out); /* */ $s = 10; case 10: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!_r || !i[0].Empty()) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!_r || !i[0].Empty()) { */ case 8: $s = -1; return false; - /* } */ case 12: + /* } */ case 9: $s = -1; return true; - /* */ } return; } var $f = {$blk: ReadOptionalASN1Integer, $c: true, $r, _r, _r$1, _r$2, _r$3, _ref, _tuple, defaultValue, defaultValue$1, i, ok, out, present, s, tag, $s};return $f; + /* */ } return; } var $f = {$blk: ReadOptionalASN1Integer, $c: true, $r, _r, _ref, _tuple, defaultValue, defaultValue$1, i, ok, out, present, s, tag, $s};return $f; }; $ptrType(String).prototype.ReadOptionalASN1OctetString = function ReadOptionalASN1OctetString(out, outPresent, tag) { var child, child$24ptr, oct, oct$24ptr, out, outPresent, present, present$24ptr, s, tag; @@ -226612,7 +227871,7 @@ $packages["vendor/golang.org/x/crypto/cryptobyte"] = (function() { if (((tag & 31) >>> 0) === 31) { return false; } - if (!(outTag === ptrType$15.nil)) { + if (!(outTag === ptrType$16.nil)) { outTag.$set(((tag << 24 >>> 24))); } _tmp$2 = 0; @@ -226644,7 +227903,7 @@ $packages["vendor/golang.org/x/crypto/cryptobyte"] = (function() { } length = headerLen + len32 >>> 0; } - if (((length >> 0)) < 0 || !s.ReadBytes(((_ptr = out, new ptrType$14(function() { return $convertSliceType(_ptr.$get(), sliceType); }, function($v) { _ptr.$set($convertSliceType($v, String)); }, _ptr.$target))), ((length >> 0)))) { + if (((length >> 0)) < 0 || !s.ReadBytes(((_ptr = out, new ptrType$14(function() { return $convertSliceType(_ptr.$get(), sliceType); }, function($v) { _ptr.$set($convertSliceType($v, String)); }, _ptr.$target, _ptr.$index))), ((length >> 0)))) { return false; } if (skipHeader && !out.Skip(((headerLen >> 0)))) { @@ -226653,7 +227912,7 @@ $packages["vendor/golang.org/x/crypto/cryptobyte"] = (function() { return true; }; String.methods = [{prop: "Empty", name: "Empty", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "PeekASN1Tag", name: "PeekASN1Tag", pkg: "", typ: $funcType([asn1$1.Tag], [$Bool], false)}]; - ptrType$3.methods = [{prop: "read", name: "read", pkg: "vendor/golang.org/x/crypto/cryptobyte", typ: $funcType([$Int], [sliceType], false)}, {prop: "Skip", name: "Skip", pkg: "", typ: $funcType([$Int], [$Bool], false)}, {prop: "ReadUint8", name: "ReadUint8", pkg: "", typ: $funcType([ptrType$2], [$Bool], false)}, {prop: "ReadUint16", name: "ReadUint16", pkg: "", typ: $funcType([ptrType$10], [$Bool], false)}, {prop: "ReadUint24", name: "ReadUint24", pkg: "", typ: $funcType([ptrType$11], [$Bool], false)}, {prop: "ReadUint32", name: "ReadUint32", pkg: "", typ: $funcType([ptrType$11], [$Bool], false)}, {prop: "ReadUint64", name: "ReadUint64", pkg: "", typ: $funcType([ptrType$12], [$Bool], false)}, {prop: "readUnsigned", name: "readUnsigned", pkg: "vendor/golang.org/x/crypto/cryptobyte", typ: $funcType([ptrType$11, $Int], [$Bool], false)}, {prop: "readLengthPrefixed", name: "readLengthPrefixed", pkg: "vendor/golang.org/x/crypto/cryptobyte", typ: $funcType([$Int, ptrType$3], [$Bool], false)}, {prop: "ReadUint8LengthPrefixed", name: "ReadUint8LengthPrefixed", pkg: "", typ: $funcType([ptrType$3], [$Bool], false)}, {prop: "ReadUint16LengthPrefixed", name: "ReadUint16LengthPrefixed", pkg: "", typ: $funcType([ptrType$3], [$Bool], false)}, {prop: "ReadUint24LengthPrefixed", name: "ReadUint24LengthPrefixed", pkg: "", typ: $funcType([ptrType$3], [$Bool], false)}, {prop: "ReadBytes", name: "ReadBytes", pkg: "", typ: $funcType([ptrType$14, $Int], [$Bool], false)}, {prop: "CopyBytes", name: "CopyBytes", pkg: "", typ: $funcType([sliceType], [$Bool], false)}, {prop: "ReadASN1Boolean", name: "ReadASN1Boolean", pkg: "", typ: $funcType([ptrType$1], [$Bool], false)}, {prop: "ReadASN1Integer", name: "ReadASN1Integer", pkg: "", typ: $funcType([$emptyInterface], [$Bool], false)}, {prop: "readASN1BigInt", name: "readASN1BigInt", pkg: "vendor/golang.org/x/crypto/cryptobyte", typ: $funcType([ptrType$13], [$Bool], false)}, {prop: "readASN1Bytes", name: "readASN1Bytes", pkg: "vendor/golang.org/x/crypto/cryptobyte", typ: $funcType([ptrType$14], [$Bool], false)}, {prop: "readASN1Int64", name: "readASN1Int64", pkg: "vendor/golang.org/x/crypto/cryptobyte", typ: $funcType([ptrType$8], [$Bool], false)}, {prop: "readASN1Uint64", name: "readASN1Uint64", pkg: "vendor/golang.org/x/crypto/cryptobyte", typ: $funcType([ptrType$12], [$Bool], false)}, {prop: "ReadASN1Int64WithTag", name: "ReadASN1Int64WithTag", pkg: "", typ: $funcType([ptrType$8, asn1$1.Tag], [$Bool], false)}, {prop: "ReadASN1Enum", name: "ReadASN1Enum", pkg: "", typ: $funcType([ptrType$4], [$Bool], false)}, {prop: "readBase128Int", name: "readBase128Int", pkg: "vendor/golang.org/x/crypto/cryptobyte", typ: $funcType([ptrType$4], [$Bool], false)}, {prop: "ReadASN1ObjectIdentifier", name: "ReadASN1ObjectIdentifier", pkg: "", typ: $funcType([ptrType$16], [$Bool], false)}, {prop: "ReadASN1GeneralizedTime", name: "ReadASN1GeneralizedTime", pkg: "", typ: $funcType([ptrType$17], [$Bool], false)}, {prop: "ReadASN1UTCTime", name: "ReadASN1UTCTime", pkg: "", typ: $funcType([ptrType$17], [$Bool], false)}, {prop: "ReadASN1BitString", name: "ReadASN1BitString", pkg: "", typ: $funcType([ptrType$18], [$Bool], false)}, {prop: "ReadASN1BitStringAsBytes", name: "ReadASN1BitStringAsBytes", pkg: "", typ: $funcType([ptrType$14], [$Bool], false)}, {prop: "ReadASN1Bytes", name: "ReadASN1Bytes", pkg: "", typ: $funcType([ptrType$14, asn1$1.Tag], [$Bool], false)}, {prop: "ReadASN1", name: "ReadASN1", pkg: "", typ: $funcType([ptrType$3, asn1$1.Tag], [$Bool], false)}, {prop: "ReadASN1Element", name: "ReadASN1Element", pkg: "", typ: $funcType([ptrType$3, asn1$1.Tag], [$Bool], false)}, {prop: "ReadAnyASN1", name: "ReadAnyASN1", pkg: "", typ: $funcType([ptrType$3, ptrType$15], [$Bool], false)}, {prop: "ReadAnyASN1Element", name: "ReadAnyASN1Element", pkg: "", typ: $funcType([ptrType$3, ptrType$15], [$Bool], false)}, {prop: "SkipASN1", name: "SkipASN1", pkg: "", typ: $funcType([asn1$1.Tag], [$Bool], false)}, {prop: "ReadOptionalASN1", name: "ReadOptionalASN1", pkg: "", typ: $funcType([ptrType$3, ptrType$1, asn1$1.Tag], [$Bool], false)}, {prop: "SkipOptionalASN1", name: "SkipOptionalASN1", pkg: "", typ: $funcType([asn1$1.Tag], [$Bool], false)}, {prop: "ReadOptionalASN1Integer", name: "ReadOptionalASN1Integer", pkg: "", typ: $funcType([$emptyInterface, asn1$1.Tag, $emptyInterface], [$Bool], false)}, {prop: "ReadOptionalASN1OctetString", name: "ReadOptionalASN1OctetString", pkg: "", typ: $funcType([ptrType$14, ptrType$1, asn1$1.Tag], [$Bool], false)}, {prop: "ReadOptionalASN1Boolean", name: "ReadOptionalASN1Boolean", pkg: "", typ: $funcType([ptrType$1, $Bool], [$Bool], false)}, {prop: "readASN1", name: "readASN1", pkg: "vendor/golang.org/x/crypto/cryptobyte", typ: $funcType([ptrType$3, ptrType$15, $Bool], [$Bool], false)}]; + ptrType$3.methods = [{prop: "read", name: "read", pkg: "vendor/golang.org/x/crypto/cryptobyte", typ: $funcType([$Int], [sliceType], false)}, {prop: "Skip", name: "Skip", pkg: "", typ: $funcType([$Int], [$Bool], false)}, {prop: "ReadUint8", name: "ReadUint8", pkg: "", typ: $funcType([ptrType$2], [$Bool], false)}, {prop: "ReadUint16", name: "ReadUint16", pkg: "", typ: $funcType([ptrType$10], [$Bool], false)}, {prop: "ReadUint24", name: "ReadUint24", pkg: "", typ: $funcType([ptrType$11], [$Bool], false)}, {prop: "ReadUint32", name: "ReadUint32", pkg: "", typ: $funcType([ptrType$11], [$Bool], false)}, {prop: "ReadUint64", name: "ReadUint64", pkg: "", typ: $funcType([ptrType$12], [$Bool], false)}, {prop: "readUnsigned", name: "readUnsigned", pkg: "vendor/golang.org/x/crypto/cryptobyte", typ: $funcType([ptrType$11, $Int], [$Bool], false)}, {prop: "readLengthPrefixed", name: "readLengthPrefixed", pkg: "vendor/golang.org/x/crypto/cryptobyte", typ: $funcType([$Int, ptrType$3], [$Bool], false)}, {prop: "ReadUint8LengthPrefixed", name: "ReadUint8LengthPrefixed", pkg: "", typ: $funcType([ptrType$3], [$Bool], false)}, {prop: "ReadUint16LengthPrefixed", name: "ReadUint16LengthPrefixed", pkg: "", typ: $funcType([ptrType$3], [$Bool], false)}, {prop: "ReadUint24LengthPrefixed", name: "ReadUint24LengthPrefixed", pkg: "", typ: $funcType([ptrType$3], [$Bool], false)}, {prop: "ReadBytes", name: "ReadBytes", pkg: "", typ: $funcType([ptrType$14, $Int], [$Bool], false)}, {prop: "CopyBytes", name: "CopyBytes", pkg: "", typ: $funcType([sliceType], [$Bool], false)}, {prop: "ReadASN1Boolean", name: "ReadASN1Boolean", pkg: "", typ: $funcType([ptrType$1], [$Bool], false)}, {prop: "ReadASN1Integer", name: "ReadASN1Integer", pkg: "", typ: $funcType([$emptyInterface], [$Bool], false)}, {prop: "readASN1BigInt", name: "readASN1BigInt", pkg: "vendor/golang.org/x/crypto/cryptobyte", typ: $funcType([ptrType$13], [$Bool], false)}, {prop: "readASN1Bytes", name: "readASN1Bytes", pkg: "vendor/golang.org/x/crypto/cryptobyte", typ: $funcType([ptrType$14], [$Bool], false)}, {prop: "readASN1Int64", name: "readASN1Int64", pkg: "vendor/golang.org/x/crypto/cryptobyte", typ: $funcType([ptrType$8], [$Bool], false)}, {prop: "readASN1Uint64", name: "readASN1Uint64", pkg: "vendor/golang.org/x/crypto/cryptobyte", typ: $funcType([ptrType$12], [$Bool], false)}, {prop: "ReadASN1Int64WithTag", name: "ReadASN1Int64WithTag", pkg: "", typ: $funcType([ptrType$8, asn1$1.Tag], [$Bool], false)}, {prop: "ReadASN1Enum", name: "ReadASN1Enum", pkg: "", typ: $funcType([ptrType$4], [$Bool], false)}, {prop: "readBase128Int", name: "readBase128Int", pkg: "vendor/golang.org/x/crypto/cryptobyte", typ: $funcType([ptrType$4], [$Bool], false)}, {prop: "ReadASN1ObjectIdentifier", name: "ReadASN1ObjectIdentifier", pkg: "", typ: $funcType([ptrType$17], [$Bool], false)}, {prop: "ReadASN1GeneralizedTime", name: "ReadASN1GeneralizedTime", pkg: "", typ: $funcType([ptrType$15], [$Bool], false)}, {prop: "ReadASN1UTCTime", name: "ReadASN1UTCTime", pkg: "", typ: $funcType([ptrType$15], [$Bool], false)}, {prop: "ReadASN1BitString", name: "ReadASN1BitString", pkg: "", typ: $funcType([ptrType$18], [$Bool], false)}, {prop: "ReadASN1BitStringAsBytes", name: "ReadASN1BitStringAsBytes", pkg: "", typ: $funcType([ptrType$14], [$Bool], false)}, {prop: "ReadASN1Bytes", name: "ReadASN1Bytes", pkg: "", typ: $funcType([ptrType$14, asn1$1.Tag], [$Bool], false)}, {prop: "ReadASN1", name: "ReadASN1", pkg: "", typ: $funcType([ptrType$3, asn1$1.Tag], [$Bool], false)}, {prop: "ReadASN1Element", name: "ReadASN1Element", pkg: "", typ: $funcType([ptrType$3, asn1$1.Tag], [$Bool], false)}, {prop: "ReadAnyASN1", name: "ReadAnyASN1", pkg: "", typ: $funcType([ptrType$3, ptrType$16], [$Bool], false)}, {prop: "ReadAnyASN1Element", name: "ReadAnyASN1Element", pkg: "", typ: $funcType([ptrType$3, ptrType$16], [$Bool], false)}, {prop: "SkipASN1", name: "SkipASN1", pkg: "", typ: $funcType([asn1$1.Tag], [$Bool], false)}, {prop: "ReadOptionalASN1", name: "ReadOptionalASN1", pkg: "", typ: $funcType([ptrType$3, ptrType$1, asn1$1.Tag], [$Bool], false)}, {prop: "SkipOptionalASN1", name: "SkipOptionalASN1", pkg: "", typ: $funcType([asn1$1.Tag], [$Bool], false)}, {prop: "ReadOptionalASN1Integer", name: "ReadOptionalASN1Integer", pkg: "", typ: $funcType([$emptyInterface, asn1$1.Tag, $emptyInterface], [$Bool], false)}, {prop: "ReadOptionalASN1OctetString", name: "ReadOptionalASN1OctetString", pkg: "", typ: $funcType([ptrType$14, ptrType$1, asn1$1.Tag], [$Bool], false)}, {prop: "ReadOptionalASN1Boolean", name: "ReadOptionalASN1Boolean", pkg: "", typ: $funcType([ptrType$1, $Bool], [$Bool], false)}, {prop: "readASN1", name: "readASN1", pkg: "vendor/golang.org/x/crypto/cryptobyte", typ: $funcType([ptrType$3, ptrType$16, $Bool], [$Bool], false)}]; ptrType.methods = [{prop: "SetError", name: "SetError", pkg: "", typ: $funcType([$error], [], false)}, {prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType, $error], false)}, {prop: "BytesOrPanic", name: "BytesOrPanic", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "AddUint8", name: "AddUint8", pkg: "", typ: $funcType([$Uint8], [], false)}, {prop: "AddUint16", name: "AddUint16", pkg: "", typ: $funcType([$Uint16], [], false)}, {prop: "AddUint24", name: "AddUint24", pkg: "", typ: $funcType([$Uint32], [], false)}, {prop: "AddUint32", name: "AddUint32", pkg: "", typ: $funcType([$Uint32], [], false)}, {prop: "AddUint64", name: "AddUint64", pkg: "", typ: $funcType([$Uint64], [], false)}, {prop: "AddBytes", name: "AddBytes", pkg: "", typ: $funcType([sliceType], [], false)}, {prop: "AddUint8LengthPrefixed", name: "AddUint8LengthPrefixed", pkg: "", typ: $funcType([BuilderContinuation], [], false)}, {prop: "AddUint16LengthPrefixed", name: "AddUint16LengthPrefixed", pkg: "", typ: $funcType([BuilderContinuation], [], false)}, {prop: "AddUint24LengthPrefixed", name: "AddUint24LengthPrefixed", pkg: "", typ: $funcType([BuilderContinuation], [], false)}, {prop: "AddUint32LengthPrefixed", name: "AddUint32LengthPrefixed", pkg: "", typ: $funcType([BuilderContinuation], [], false)}, {prop: "callContinuation", name: "callContinuation", pkg: "vendor/golang.org/x/crypto/cryptobyte", typ: $funcType([BuilderContinuation, ptrType], [], false)}, {prop: "addLengthPrefixed", name: "addLengthPrefixed", pkg: "vendor/golang.org/x/crypto/cryptobyte", typ: $funcType([$Int, $Bool, BuilderContinuation], [], false)}, {prop: "flushChild", name: "flushChild", pkg: "vendor/golang.org/x/crypto/cryptobyte", typ: $funcType([], [], false)}, {prop: "add", name: "add", pkg: "vendor/golang.org/x/crypto/cryptobyte", typ: $funcType([sliceType], [], true)}, {prop: "Unwrite", name: "Unwrite", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "AddValue", name: "AddValue", pkg: "", typ: $funcType([MarshalingValue], [], false)}, {prop: "AddASN1Int64", name: "AddASN1Int64", pkg: "", typ: $funcType([$Int64], [], false)}, {prop: "AddASN1Int64WithTag", name: "AddASN1Int64WithTag", pkg: "", typ: $funcType([$Int64, asn1$1.Tag], [], false)}, {prop: "AddASN1Enum", name: "AddASN1Enum", pkg: "", typ: $funcType([$Int64], [], false)}, {prop: "addASN1Signed", name: "addASN1Signed", pkg: "vendor/golang.org/x/crypto/cryptobyte", typ: $funcType([asn1$1.Tag, $Int64], [], false)}, {prop: "AddASN1Uint64", name: "AddASN1Uint64", pkg: "", typ: $funcType([$Uint64], [], false)}, {prop: "AddASN1BigInt", name: "AddASN1BigInt", pkg: "", typ: $funcType([ptrType$13], [], false)}, {prop: "AddASN1OctetString", name: "AddASN1OctetString", pkg: "", typ: $funcType([sliceType], [], false)}, {prop: "AddASN1GeneralizedTime", name: "AddASN1GeneralizedTime", pkg: "", typ: $funcType([time.Time], [], false)}, {prop: "AddASN1UTCTime", name: "AddASN1UTCTime", pkg: "", typ: $funcType([time.Time], [], false)}, {prop: "AddASN1BitString", name: "AddASN1BitString", pkg: "", typ: $funcType([sliceType], [], false)}, {prop: "addBase128Int", name: "addBase128Int", pkg: "vendor/golang.org/x/crypto/cryptobyte", typ: $funcType([$Int64], [], false)}, {prop: "AddASN1ObjectIdentifier", name: "AddASN1ObjectIdentifier", pkg: "", typ: $funcType([asn1.ObjectIdentifier], [], false)}, {prop: "AddASN1Boolean", name: "AddASN1Boolean", pkg: "", typ: $funcType([$Bool], [], false)}, {prop: "AddASN1NULL", name: "AddASN1NULL", pkg: "", typ: $funcType([], [], false)}, {prop: "MarshalASN1", name: "MarshalASN1", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "AddASN1", name: "AddASN1", pkg: "", typ: $funcType([asn1$1.Tag, BuilderContinuation], [], false)}]; String.init($Uint8); Builder.init("vendor/golang.org/x/crypto/cryptobyte", [{prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "result", name: "result", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "fixedSize", name: "fixedSize", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "child", name: "child", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "offset", name: "offset", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "pendingLenLen", name: "pendingLenLen", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "pendingIsASN1", name: "pendingIsASN1", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "inContinuation", name: "inContinuation", embedded: false, exported: false, typ: ptrType$1, tag: ""}]); @@ -228545,56 +229804,80 @@ $packages["crypto/ecdsa"] = (function() { /* */ } return; } var $f = {$blk: p521$1, $c: true, $r, $s};return $f; }; precomputeParams[15 /* *crypto/internal/nistec.P224Point */] = function precomputeParams$1(c, curve) { - var {_r, _r$1, _r$2, c, curve, params, $s, $r, $c} = $restore(this, {c, curve}); + var {_r, _r$1, _r$2, _tuple, c, curve, err, params, $s, $r, $c} = $restore(this, {c, curve}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: _r = curve.Params(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } params = _r; c.curve = curve; - c.N = bigmod.NewModulusFromBig(params.N); + err = $ifaceNil; + _tuple = bigmod.NewModulusFromBig(params.N); + c.N = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $panic(err); + } _r$1 = new big.Int.ptr(false, big.nat.nil).Sub(params.N, big.NewInt(new $Int64(0, 2))); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _r$2 = _r$1.Bytes(); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } c.nMinus2 = _r$2; $s = -1; return; - /* */ } return; } var $f = {$blk: precomputeParams$1, $c: true, $r, _r, _r$1, _r$2, c, curve, params, $s};return $f; + /* */ } return; } var $f = {$blk: precomputeParams$1, $c: true, $r, _r, _r$1, _r$2, _tuple, c, curve, err, params, $s};return $f; }; precomputeParams[19 /* *crypto/internal/nistec.P256Point */] = function precomputeParams$2(c, curve) { - var {_r, _r$1, _r$2, c, curve, params, $s, $r, $c} = $restore(this, {c, curve}); + var {_r, _r$1, _r$2, _tuple, c, curve, err, params, $s, $r, $c} = $restore(this, {c, curve}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: _r = curve.Params(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } params = _r; c.curve = curve; - c.N = bigmod.NewModulusFromBig(params.N); + err = $ifaceNil; + _tuple = bigmod.NewModulusFromBig(params.N); + c.N = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $panic(err); + } _r$1 = new big.Int.ptr(false, big.nat.nil).Sub(params.N, big.NewInt(new $Int64(0, 2))); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _r$2 = _r$1.Bytes(); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } c.nMinus2 = _r$2; $s = -1; return; - /* */ } return; } var $f = {$blk: precomputeParams$2, $c: true, $r, _r, _r$1, _r$2, c, curve, params, $s};return $f; + /* */ } return; } var $f = {$blk: precomputeParams$2, $c: true, $r, _r, _r$1, _r$2, _tuple, c, curve, err, params, $s};return $f; }; precomputeParams[23 /* *crypto/internal/nistec.P384Point */] = function precomputeParams$3(c, curve) { - var {_r, _r$1, _r$2, c, curve, params, $s, $r, $c} = $restore(this, {c, curve}); + var {_r, _r$1, _r$2, _tuple, c, curve, err, params, $s, $r, $c} = $restore(this, {c, curve}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: _r = curve.Params(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } params = _r; c.curve = curve; - c.N = bigmod.NewModulusFromBig(params.N); + err = $ifaceNil; + _tuple = bigmod.NewModulusFromBig(params.N); + c.N = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $panic(err); + } _r$1 = new big.Int.ptr(false, big.nat.nil).Sub(params.N, big.NewInt(new $Int64(0, 2))); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _r$2 = _r$1.Bytes(); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } c.nMinus2 = _r$2; $s = -1; return; - /* */ } return; } var $f = {$blk: precomputeParams$3, $c: true, $r, _r, _r$1, _r$2, c, curve, params, $s};return $f; + /* */ } return; } var $f = {$blk: precomputeParams$3, $c: true, $r, _r, _r$1, _r$2, _tuple, c, curve, err, params, $s};return $f; }; precomputeParams[27 /* *crypto/internal/nistec.P521Point */] = function precomputeParams$4(c, curve) { - var {_r, _r$1, _r$2, c, curve, params, $s, $r, $c} = $restore(this, {c, curve}); + var {_r, _r$1, _r$2, _tuple, c, curve, err, params, $s, $r, $c} = $restore(this, {c, curve}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: _r = curve.Params(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } params = _r; c.curve = curve; - c.N = bigmod.NewModulusFromBig(params.N); + err = $ifaceNil; + _tuple = bigmod.NewModulusFromBig(params.N); + c.N = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $panic(err); + } _r$1 = new big.Int.ptr(false, big.nat.nil).Sub(params.N, big.NewInt(new $Int64(0, 2))); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _r$2 = _r$1.Bytes(); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } c.nMinus2 = _r$2; $s = -1; return; - /* */ } return; } var $f = {$blk: precomputeParams$4, $c: true, $r, _r, _r$1, _r$2, c, curve, params, $s};return $f; + /* */ } return; } var $f = {$blk: precomputeParams$4, $c: true, $r, _r, _r$1, _r$2, _tuple, c, curve, err, params, $s};return $f; }; ptrType$8.methods = [{prop: "ECDH", name: "ECDH", pkg: "", typ: $funcType([], [ptrType$7, $error], false)}, {prop: "Equal", name: "Equal", pkg: "", typ: $funcType([crypto.PublicKey], [$Bool], false)}]; ptrType$4.methods = [{prop: "ECDH", name: "ECDH", pkg: "", typ: $funcType([], [ptrType$9, $error], false)}, {prop: "Public", name: "Public", pkg: "", typ: $funcType([], [crypto.PublicKey], false)}, {prop: "Equal", name: "Equal", pkg: "", typ: $funcType([crypto.PrivateKey], [$Bool], false)}, {prop: "Sign", name: "Sign", pkg: "", typ: $funcType([io.Reader, sliceType, crypto.SignerOpts], [sliceType, $error], false)}]; @@ -228652,7 +229935,7 @@ $packages["crypto/ecdsa"] = (function() { return $pkg; })(); $packages["crypto/internal/edwards25519"] = (function() { - var $pkg = {}, $init, field, subtle, binary, errors, bits, sync, projLookupTable, affineLookupTable, nafLookupTable5, nafLookupTable8, fiatScalarUint1, fiatScalarMontgomeryDomainFieldElement, Scalar, projP1xP1, projP2, Point, incomparable, projCached, affineCached, arrayType, arrayType$1, structType, arrayType$2, structType$1, arrayType$3, sliceType, funcType, arrayType$4, arrayType$5, ptrType, sliceType$1, arrayType$6, arrayType$7, ptrType$1, ptrType$2, arrayType$8, ptrType$3, arrayType$9, arrayType$10, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, ptrType$11, basepointTablePrecomp, basepointNafTablePrecomp, scalarTwo168, scalarTwo336, scalarMinusOneBytes, feOne, d, _, _tuple, identity, _$1, _tuple$1, generator, _$2, _tuple$2, d2, basepointTable, basepointNafTable, fiatScalarCmovznzU64, fiatScalarMul, fiatScalarAdd, fiatScalarSub, fiatScalarOpp, fiatScalarNonzero, fiatScalarFromMontgomery, fiatScalarToMontgomery, fiatScalarToBytes, fiatScalarFromBytes, NewScalar, isReduced, checkInitialized, NewIdentityPoint, NewGeneratorPoint, copyFieldElement; + var $pkg = {}, $init, field, subtle, binary, errors, bits, sync, projLookupTable, affineLookupTable, nafLookupTable5, nafLookupTable8, fiatScalarUint1, fiatScalarMontgomeryDomainFieldElement, fiatScalarNonMontgomeryDomainFieldElement, Scalar, projP1xP1, projP2, Point, incomparable, projCached, affineCached, arrayType, arrayType$1, structType, arrayType$2, structType$1, arrayType$3, sliceType, funcType, arrayType$4, ptrType, ptrType$1, ptrType$2, arrayType$5, ptrType$3, sliceType$1, arrayType$6, arrayType$7, ptrType$4, ptrType$5, ptrType$6, ptrType$7, arrayType$8, ptrType$8, ptrType$9, arrayType$9, arrayType$10, ptrType$10, ptrType$11, ptrType$12, ptrType$13, ptrType$14, basepointTablePrecomp, basepointNafTablePrecomp, scalarTwo168, scalarTwo336, scalarMinusOneBytes, feOne, d, _, _tuple, identity, _$1, _tuple$1, generator, _$2, _tuple$2, d2, basepointTable, basepointNafTable, fiatScalarCmovznzU64, fiatScalarMul, fiatScalarAdd, fiatScalarSub, fiatScalarOpp, fiatScalarNonzero, fiatScalarFromMontgomery, fiatScalarToMontgomery, fiatScalarToBytes, fiatScalarFromBytes, NewScalar, isReduced, checkInitialized, NewIdentityPoint, NewGeneratorPoint, copyFieldElement; field = $packages["crypto/internal/edwards25519/field"]; subtle = $packages["crypto/subtle"]; binary = $packages["encoding/binary"]; @@ -228693,6 +229976,7 @@ $packages["crypto/internal/edwards25519"] = (function() { }); fiatScalarUint1 = $newType(8, $kindUint64, "edwards25519.fiatScalarUint1", true, "crypto/internal/edwards25519", false, null); fiatScalarMontgomeryDomainFieldElement = $newType(32, $kindArray, "edwards25519.fiatScalarMontgomeryDomainFieldElement", true, "crypto/internal/edwards25519", false, null); + fiatScalarNonMontgomeryDomainFieldElement = $newType(32, $kindArray, "edwards25519.fiatScalarNonMontgomeryDomainFieldElement", true, "crypto/internal/edwards25519", false, null); Scalar = $newType(0, $kindStruct, "edwards25519.Scalar", true, "crypto/internal/edwards25519", true, function(s_) { this.$val = this; if (arguments.length === 0) { @@ -228727,21 +230011,21 @@ $packages["crypto/internal/edwards25519"] = (function() { this.Y = Y_; this.Z = Z_; }); - Point = $newType(0, $kindStruct, "edwards25519.Point", true, "crypto/internal/edwards25519", true, function(x_, y_, z_, t_, _$4_) { + Point = $newType(0, $kindStruct, "edwards25519.Point", true, "crypto/internal/edwards25519", true, function(_$0_, x_, y_, z_, t_) { this.$val = this; if (arguments.length === 0) { + this._$0 = arrayType$4.zero(); this.x = new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)); this.y = new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)); this.z = new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)); this.t = new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)); - this._$4 = arrayType$4.zero(); return; } + this._$0 = _$0_; this.x = x_; this.y = y_; this.z = z_; this.t = t_; - this._$4 = _$4_; }); incomparable = $newType(0, $kindArray, "edwards25519.incomparable", true, "crypto/internal/edwards25519", false, null); projCached = $newType(0, $kindStruct, "edwards25519.projCached", true, "crypto/internal/edwards25519", false, function(YplusX_, YminusX_, Z_, T2d_) { @@ -228776,6 +230060,7 @@ $packages["crypto/internal/edwards25519"] = (function() { $pkg.nafLookupTable8 = nafLookupTable8; $pkg.fiatScalarUint1 = fiatScalarUint1; $pkg.fiatScalarMontgomeryDomainFieldElement = fiatScalarMontgomeryDomainFieldElement; + $pkg.fiatScalarNonMontgomeryDomainFieldElement = fiatScalarNonMontgomeryDomainFieldElement; $pkg.Scalar = Scalar; $pkg.projP1xP1 = projP1xP1; $pkg.projP2 = projP2; @@ -228793,78 +230078,81 @@ $packages["crypto/internal/edwards25519"] = (function() { sliceType = $sliceType($Uint8); funcType = $funcType([], [], false); arrayType$4 = $arrayType(funcType, 0); + ptrType = $ptrType(projCached); + ptrType$1 = $ptrType(affineCached); + ptrType$2 = $ptrType(affineLookupTable); arrayType$5 = $arrayType($Int8, 64); - ptrType = $ptrType(Point); - sliceType$1 = $sliceType(ptrType); + ptrType$3 = $ptrType(Point); + sliceType$1 = $sliceType(ptrType$3); arrayType$6 = $arrayType(projCached, 8); arrayType$7 = $arrayType($Int8, 256); - ptrType$1 = $ptrType($Uint64); - ptrType$2 = $ptrType(Scalar); + ptrType$4 = $ptrType(fiatScalarMontgomeryDomainFieldElement); + ptrType$5 = $ptrType($Uint64); + ptrType$6 = $ptrType(arrayType$3); + ptrType$7 = $ptrType(fiatScalarNonMontgomeryDomainFieldElement); arrayType$8 = $arrayType($Uint8, 32); - ptrType$3 = $ptrType(arrayType$8); + ptrType$8 = $ptrType(arrayType$8); + ptrType$9 = $ptrType(Scalar); arrayType$9 = $arrayType($Uint8, 64); arrayType$10 = $arrayType($Uint64, 5); - ptrType$4 = $ptrType(projCached); - ptrType$5 = $ptrType(projLookupTable); - ptrType$6 = $ptrType(affineCached); - ptrType$7 = $ptrType(affineLookupTable); - ptrType$8 = $ptrType(nafLookupTable5); - ptrType$9 = $ptrType(nafLookupTable8); - ptrType$10 = $ptrType(projP1xP1); - ptrType$11 = $ptrType(projP2); + ptrType$10 = $ptrType(projLookupTable); + ptrType$11 = $ptrType(nafLookupTable5); + ptrType$12 = $ptrType(nafLookupTable8); + ptrType$13 = $ptrType(projP1xP1); + ptrType$14 = $ptrType(projP2); $ptrType(projLookupTable).prototype.FromP3 = function FromP3(q) { var i, q, tmpP1xP1, tmpP3, v, x, x$1, x$2; v = this; - v.points[0].FromP3(q); - tmpP3 = new Point.ptr(new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), arrayType$4.zero()); + $indexPtr(v.points, 0, ptrType).FromP3(q); + tmpP3 = new Point.ptr(arrayType$4.zero(), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0))); tmpP1xP1 = new projP1xP1.ptr(new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0))); i = 0; while (true) { if (!(i < 7)) { break; } - (x = v.points, x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])).FromP3(tmpP3.fromP1xP1(tmpP1xP1.Add(q, (x$2 = v.points, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i]))))); + (x = v.points, x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x, x$1, ptrType))).FromP3(tmpP3.fromP1xP1(tmpP1xP1.Add(q, (x$2 = v.points, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$2, i, ptrType)))))); i = i + (1) >> 0; } }; $ptrType(affineLookupTable).prototype.FromP3 = function FromP3$1(q) { var i, q, tmpP1xP1, tmpP3, v, x, x$1, x$2; v = this; - v.points[0].FromP3(q); - tmpP3 = new Point.ptr(new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), arrayType$4.zero()); + $indexPtr(v.points, 0, ptrType$1).FromP3(q); + tmpP3 = new Point.ptr(arrayType$4.zero(), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0))); tmpP1xP1 = new projP1xP1.ptr(new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0))); i = 0; while (true) { if (!(i < 7)) { break; } - (x = v.points, x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])).FromP3(tmpP3.fromP1xP1(tmpP1xP1.AddAffine(q, (x$2 = v.points, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i]))))); + (x = v.points, x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x, x$1, ptrType$1))).FromP3(tmpP3.fromP1xP1(tmpP1xP1.AddAffine(q, (x$2 = v.points, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$2, i, ptrType$1)))))); i = i + (1) >> 0; } }; $ptrType(nafLookupTable5).prototype.FromP3 = function FromP3$2(q) { var i, q, q2, tmpP1xP1, tmpP3, v, x, x$1, x$2; v = this; - v.points[0].FromP3(q); - q2 = new Point.ptr(new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), arrayType$4.zero()); + $indexPtr(v.points, 0, ptrType).FromP3(q); + q2 = new Point.ptr(arrayType$4.zero(), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0))); q2.Add(q, q); - tmpP3 = new Point.ptr(new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), arrayType$4.zero()); + tmpP3 = new Point.ptr(arrayType$4.zero(), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0))); tmpP1xP1 = new projP1xP1.ptr(new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0))); i = 0; while (true) { if (!(i < 7)) { break; } - (x = v.points, x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])).FromP3(tmpP3.fromP1xP1(tmpP1xP1.Add(q2, (x$2 = v.points, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i]))))); + (x = v.points, x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x, x$1, ptrType))).FromP3(tmpP3.fromP1xP1(tmpP1xP1.Add(q2, (x$2 = v.points, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$2, i, ptrType)))))); i = i + (1) >> 0; } }; $ptrType(nafLookupTable8).prototype.FromP3 = function FromP3$3(q) { var i, q, q2, tmpP1xP1, tmpP3, v, x, x$1, x$2; v = this; - v.points[0].FromP3(q); - q2 = new Point.ptr(new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), arrayType$4.zero()); + $indexPtr(v.points, 0, ptrType$1).FromP3(q); + q2 = new Point.ptr(arrayType$4.zero(), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0))); q2.Add(q, q); - tmpP3 = new Point.ptr(new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), arrayType$4.zero()); + tmpP3 = new Point.ptr(arrayType$4.zero(), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0))); tmpP1xP1 = new projP1xP1.ptr(new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0))); i = 0; while (true) { if (!(i < 63)) { break; } - (x = v.points, x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])).FromP3(tmpP3.fromP1xP1(tmpP1xP1.AddAffine(q2, (x$2 = v.points, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i]))))); + (x = v.points, x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x, x$1, ptrType$1))).FromP3(tmpP3.fromP1xP1(tmpP1xP1.AddAffine(q2, (x$2 = v.points, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$2, i, ptrType$1)))))); i = i + (1) >> 0; } }; @@ -228878,7 +230166,7 @@ $packages["crypto/internal/edwards25519"] = (function() { while (true) { if (!(j <= 8)) { break; } cond = subtle.ConstantTimeByteEq(xabs, ((j << 24 >>> 24))); - dest.Select((x$1 = v.points, x$2 = j - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$2])), dest, cond); + dest.Select((x$1 = v.points, x$2 = j - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1, x$2, ptrType))), dest, cond); j = j + (1) >> 0; } dest.CondNeg((((xmask & 1) >> 0))); @@ -228893,7 +230181,7 @@ $packages["crypto/internal/edwards25519"] = (function() { while (true) { if (!(j <= 8)) { break; } cond = subtle.ConstantTimeByteEq(xabs, ((j << 24 >>> 24))); - dest.Select((x$1 = v.points, x$2 = j - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$2])), dest, cond); + dest.Select((x$1 = v.points, x$2 = j - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1, x$2, ptrType$1))), dest, cond); j = j + (1) >> 0; } dest.CondNeg((((xmask & 1) >> 0))); @@ -228901,12 +230189,12 @@ $packages["crypto/internal/edwards25519"] = (function() { $ptrType(nafLookupTable5).prototype.SelectInto = function SelectInto$2(dest, x) { var _q, dest, v, x, x$1, x$2; v = this; - projCached.copy(dest, (x$1 = v.points, x$2 = (_q = x / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), ((x$2 < 0 || x$2 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$2]))); + projCached.copy((dest === ptrType.nil && $throwNilPointerError(), dest), (x$1 = v.points, x$2 = (_q = x / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), ((x$2 < 0 || x$2 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$2]))); }; $ptrType(nafLookupTable8).prototype.SelectInto = function SelectInto$3(dest, x) { var _q, dest, v, x, x$1, x$2; v = this; - affineCached.copy(dest, (x$1 = v.points, x$2 = (_q = x / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), ((x$2 < 0 || x$2 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$2]))); + affineCached.copy((dest === ptrType$1.nil && $throwNilPointerError(), dest), (x$1 = v.points, x$2 = (_q = x / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), ((x$2 < 0 || x$2 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$2]))); }; basepointTable = function basepointTable$1() { var {$s, $r, $c} = $restore(this, {}); @@ -228917,7 +230205,7 @@ $packages["crypto/internal/edwards25519"] = (function() { i = 0; while (true) { if (!(i < 32)) { break; } - (x = basepointTablePrecomp.table, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i])).FromP3(p); + (x = basepointTablePrecomp.table, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x, i, ptrType$2))).FromP3(p); j = 0; while (true) { if (!(j < 8)) { break; } @@ -228931,7 +230219,7 @@ $packages["crypto/internal/edwards25519"] = (function() { /* */ } return; } var $f = {$blk: basepointTable$1, $c: true, $r, $s};return $f; }; $ptrType(Point).prototype.ScalarBaseMult = function ScalarBaseMult(x) { - var {_q, _q$1, _r, basepointTable$2, digits, i, i$1, multiple, tmp1, tmp2, v, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {x}); + var {_q, _q$1, _r, basepointTable$2, digits, i, i$1, multiple, tmp1, tmp2, v, x, x$1, x$2, $s, $r, $c} = $restore(this, {x}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: v = this; _r = basepointTable(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } @@ -228944,7 +230232,7 @@ $packages["crypto/internal/edwards25519"] = (function() { i = 1; while (true) { if (!(i < 64)) { break; } - (x$1 = basepointTable$2, x$2 = (_q = i / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), ((x$2 < 0 || x$2 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$2])).SelectInto(multiple, ((i < 0 || i >= digits.length) ? ($throwRuntimeError("index out of range"), undefined) : digits[i])); + (x$1 = (_q = i / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), ((x$1 < 0 || x$1 >= basepointTable$2.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(basepointTable$2, x$1, ptrType$2))).SelectInto(multiple, ((i < 0 || i >= digits.length) ? ($throwRuntimeError("index out of range"), undefined) : digits[i])); tmp1.AddAffine(v, multiple); v.fromP1xP1(tmp1); i = i + (2) >> 0; @@ -228961,13 +230249,13 @@ $packages["crypto/internal/edwards25519"] = (function() { i$1 = 0; while (true) { if (!(i$1 < 64)) { break; } - (x$3 = basepointTable$2, x$4 = (_q$1 = i$1 / 2, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")), ((x$4 < 0 || x$4 >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[x$4])).SelectInto(multiple, ((i$1 < 0 || i$1 >= digits.length) ? ($throwRuntimeError("index out of range"), undefined) : digits[i$1])); + (x$2 = (_q$1 = i$1 / 2, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")), ((x$2 < 0 || x$2 >= basepointTable$2.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(basepointTable$2, x$2, ptrType$2))).SelectInto(multiple, ((i$1 < 0 || i$1 >= digits.length) ? ($throwRuntimeError("index out of range"), undefined) : digits[i$1])); tmp1.AddAffine(v, multiple); v.fromP1xP1(tmp1); i$1 = i$1 + (2) >> 0; } $s = -1; return v; - /* */ } return; } var $f = {$blk: ScalarBaseMult, $c: true, $r, _q, _q$1, _r, basepointTable$2, digits, i, i$1, multiple, tmp1, tmp2, v, x, x$1, x$2, x$3, x$4, $s};return $f; + /* */ } return; } var $f = {$blk: ScalarBaseMult, $c: true, $r, _q, _q$1, _r, basepointTable$2, digits, i, i$1, multiple, tmp1, tmp2, v, x, x$1, x$2, $s};return $f; }; $ptrType(Point).prototype.ScalarMult = function ScalarMult(x, q) { var digits, i, multiple, q, table, tmp1, tmp2, v, x; @@ -229071,28 +230359,28 @@ $packages["crypto/internal/edwards25519"] = (function() { }; fiatScalarMul = function fiatScalarMul$1(out1, arg1, arg2) { var _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$20, _tuple$21, _tuple$22, _tuple$23, _tuple$24, _tuple$25, _tuple$26, _tuple$27, _tuple$28, _tuple$29, _tuple$3, _tuple$30, _tuple$31, _tuple$32, _tuple$33, _tuple$34, _tuple$35, _tuple$36, _tuple$37, _tuple$38, _tuple$39, _tuple$4, _tuple$40, _tuple$41, _tuple$42, _tuple$43, _tuple$44, _tuple$45, _tuple$46, _tuple$47, _tuple$48, _tuple$49, _tuple$5, _tuple$50, _tuple$51, _tuple$52, _tuple$53, _tuple$54, _tuple$55, _tuple$56, _tuple$57, _tuple$58, _tuple$59, _tuple$6, _tuple$60, _tuple$61, _tuple$62, _tuple$63, _tuple$64, _tuple$65, _tuple$66, _tuple$67, _tuple$68, _tuple$69, _tuple$7, _tuple$70, _tuple$71, _tuple$72, _tuple$73, _tuple$74, _tuple$75, _tuple$76, _tuple$77, _tuple$78, _tuple$79, _tuple$8, _tuple$80, _tuple$81, _tuple$82, _tuple$83, _tuple$84, _tuple$85, _tuple$86, _tuple$87, _tuple$88, _tuple$89, _tuple$9, _tuple$90, arg1, arg2, out1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$25, x$26, x$27, x$28, x$29, x$3, x$30, x$31, x$32, x$33, x$34, x$35, x$36, x$37, x$38, x$39, x$4, x$40, x$41, x$42, x$43, x$44, x$45, x$46, x$47, x$48, x$49, x$5, x$50, x$51, x$52, x$53, x$54, x$55, x$56, x$57, x$58, x$59, x$6, x$60, x$61, x$62, x$63, x$64, x$65, x$66, x$67, x$68, x$7, x$8, x$9, x1, x10, x100, x101, x102, x103, x104, x105, x106, x107, x108, x109, x11, x110, x111, x112, x113, x115, x116, x117, x118, x119, x12, x120, x121, x122, x123, x125, x126, x127, x128, x129, x13, x130, x131, x132, x133, x134, x135, x136, x137, x138, x139, x14, x140, x141, x142, x143, x144, x145, x146, x147, x148, x149, x15, x150, x151, x152, x153, x154, x155, x156, x157, x158, x159, x16, x160, x162, x163, x164, x165, x166, x167, x168, x169, x17, x170, x172, x173, x174, x175, x176, x177, x178, x179, x18, x180, x181, x182, x183, x184, x185, x186, x187, x188, x189, x19, x191, x192, x192$24ptr, x193, x193$24ptr, x194, x194$24ptr, x195, x195$24ptr, x2, x20, x22, x23, x24, x25, x26, x27, x28, x29, x3, x30, x32, x33, x34, x35, x36, x37, x38, x39, x4, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x5, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x6, x60, x61, x62, x63, x64, x65, x66, x68, x69, x7, x70, x71, x72, x73, x74, x75, x76, x78, x79, x8, x80, x81, x82, x83, x84, x85, x86, x87, x88, x89, x9, x90, x91, x92, x93, x94, x95, x96, x97, x98, x99; - x1 = arg1[1]; - x2 = arg1[2]; - x3 = arg1[3]; - x4 = arg1[0]; + x1 = (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[1]; + x2 = (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[2]; + x3 = (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[3]; + x4 = (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[0]; x5 = new $Uint64(0, 0); x6 = new $Uint64(0, 0); - _tuple$3 = bits.Mul64(x4, arg2[3]); + _tuple$3 = bits.Mul64(x4, (arg2 === ptrType$4.nil && $throwNilPointerError(), arg2)[3]); x6 = _tuple$3[0]; x5 = _tuple$3[1]; x7 = new $Uint64(0, 0); x8 = new $Uint64(0, 0); - _tuple$4 = bits.Mul64(x4, arg2[2]); + _tuple$4 = bits.Mul64(x4, (arg2 === ptrType$4.nil && $throwNilPointerError(), arg2)[2]); x8 = _tuple$4[0]; x7 = _tuple$4[1]; x9 = new $Uint64(0, 0); x10 = new $Uint64(0, 0); - _tuple$5 = bits.Mul64(x4, arg2[1]); + _tuple$5 = bits.Mul64(x4, (arg2 === ptrType$4.nil && $throwNilPointerError(), arg2)[1]); x10 = _tuple$5[0]; x9 = _tuple$5[1]; x11 = new $Uint64(0, 0); x12 = new $Uint64(0, 0); - _tuple$6 = bits.Mul64(x4, arg2[0]); + _tuple$6 = bits.Mul64(x4, (arg2 === ptrType$4.nil && $throwNilPointerError(), arg2)[0]); x12 = _tuple$6[0]; x11 = _tuple$6[1]; x13 = new $Uint64(0, 0); @@ -229160,22 +230448,22 @@ $packages["crypto/internal/edwards25519"] = (function() { x40 = _tuple$19[1]; x41 = new $Uint64(0, 0); x42 = new $Uint64(0, 0); - _tuple$20 = bits.Mul64(x1, arg2[3]); + _tuple$20 = bits.Mul64(x1, (arg2 === ptrType$4.nil && $throwNilPointerError(), arg2)[3]); x42 = _tuple$20[0]; x41 = _tuple$20[1]; x43 = new $Uint64(0, 0); x44 = new $Uint64(0, 0); - _tuple$21 = bits.Mul64(x1, arg2[2]); + _tuple$21 = bits.Mul64(x1, (arg2 === ptrType$4.nil && $throwNilPointerError(), arg2)[2]); x44 = _tuple$21[0]; x43 = _tuple$21[1]; x45 = new $Uint64(0, 0); x46 = new $Uint64(0, 0); - _tuple$22 = bits.Mul64(x1, arg2[1]); + _tuple$22 = bits.Mul64(x1, (arg2 === ptrType$4.nil && $throwNilPointerError(), arg2)[1]); x46 = _tuple$22[0]; x45 = _tuple$22[1]; x47 = new $Uint64(0, 0); x48 = new $Uint64(0, 0); - _tuple$23 = bits.Mul64(x1, arg2[0]); + _tuple$23 = bits.Mul64(x1, (arg2 === ptrType$4.nil && $throwNilPointerError(), arg2)[0]); x48 = _tuple$23[0]; x47 = _tuple$23[1]; x49 = new $Uint64(0, 0); @@ -229269,22 +230557,22 @@ $packages["crypto/internal/edwards25519"] = (function() { x87 = (x$25 = ((x$26 = (new fiatScalarUint1(x86.$high, x86.$low)), new $Uint64(x$26.$high, x$26.$low))), x$27 = ((x$28 = (new fiatScalarUint1(x65.$high, x65.$low)), new $Uint64(x$28.$high, x$28.$low))), new $Uint64(x$25.$high + x$27.$high, x$25.$low + x$27.$low)); x88 = new $Uint64(0, 0); x89 = new $Uint64(0, 0); - _tuple$42 = bits.Mul64(x2, arg2[3]); + _tuple$42 = bits.Mul64(x2, (arg2 === ptrType$4.nil && $throwNilPointerError(), arg2)[3]); x89 = _tuple$42[0]; x88 = _tuple$42[1]; x90 = new $Uint64(0, 0); x91 = new $Uint64(0, 0); - _tuple$43 = bits.Mul64(x2, arg2[2]); + _tuple$43 = bits.Mul64(x2, (arg2 === ptrType$4.nil && $throwNilPointerError(), arg2)[2]); x91 = _tuple$43[0]; x90 = _tuple$43[1]; x92 = new $Uint64(0, 0); x93 = new $Uint64(0, 0); - _tuple$44 = bits.Mul64(x2, arg2[1]); + _tuple$44 = bits.Mul64(x2, (arg2 === ptrType$4.nil && $throwNilPointerError(), arg2)[1]); x93 = _tuple$44[0]; x92 = _tuple$44[1]; x94 = new $Uint64(0, 0); x95 = new $Uint64(0, 0); - _tuple$45 = bits.Mul64(x2, arg2[0]); + _tuple$45 = bits.Mul64(x2, (arg2 === ptrType$4.nil && $throwNilPointerError(), arg2)[0]); x95 = _tuple$45[0]; x94 = _tuple$45[1]; x96 = new $Uint64(0, 0); @@ -229378,22 +230666,22 @@ $packages["crypto/internal/edwards25519"] = (function() { x134 = (x$43 = ((x$44 = (new fiatScalarUint1(x133.$high, x133.$low)), new $Uint64(x$44.$high, x$44.$low))), x$45 = ((x$46 = (new fiatScalarUint1(x112.$high, x112.$low)), new $Uint64(x$46.$high, x$46.$low))), new $Uint64(x$43.$high + x$45.$high, x$43.$low + x$45.$low)); x135 = new $Uint64(0, 0); x136 = new $Uint64(0, 0); - _tuple$64 = bits.Mul64(x3, arg2[3]); + _tuple$64 = bits.Mul64(x3, (arg2 === ptrType$4.nil && $throwNilPointerError(), arg2)[3]); x136 = _tuple$64[0]; x135 = _tuple$64[1]; x137 = new $Uint64(0, 0); x138 = new $Uint64(0, 0); - _tuple$65 = bits.Mul64(x3, arg2[2]); + _tuple$65 = bits.Mul64(x3, (arg2 === ptrType$4.nil && $throwNilPointerError(), arg2)[2]); x138 = _tuple$65[0]; x137 = _tuple$65[1]; x139 = new $Uint64(0, 0); x140 = new $Uint64(0, 0); - _tuple$66 = bits.Mul64(x3, arg2[1]); + _tuple$66 = bits.Mul64(x3, (arg2 === ptrType$4.nil && $throwNilPointerError(), arg2)[1]); x140 = _tuple$66[0]; x139 = _tuple$66[1]; x141 = new $Uint64(0, 0); x142 = new $Uint64(0, 0); - _tuple$67 = bits.Mul64(x3, arg2[0]); + _tuple$67 = bits.Mul64(x3, (arg2 === ptrType$4.nil && $throwNilPointerError(), arg2)[0]); x142 = _tuple$67[0]; x141 = _tuple$67[1]; x143 = new $Uint64(0, 0); @@ -229509,13 +230797,13 @@ $packages["crypto/internal/edwards25519"] = (function() { _tuple$90 = bits.Sub64(x181, new $Uint64(0, 0), ((x$68 = (new fiatScalarUint1(x189.$high, x189.$low)), new $Uint64(x$68.$high, x$68.$low)))); x191 = _tuple$90[1]; x192 = new $Uint64(0, 0); - fiatScalarCmovznzU64((x192$24ptr || (x192$24ptr = new ptrType$1(function() { return x192; }, function($v) { x192 = $v; }))), (new fiatScalarUint1(x191.$high, x191.$low)), x182, x173); + fiatScalarCmovznzU64((x192$24ptr || (x192$24ptr = new ptrType$5(function() { return x192; }, function($v) { x192 = $v; }))), (new fiatScalarUint1(x191.$high, x191.$low)), x182, x173); x193 = new $Uint64(0, 0); - fiatScalarCmovznzU64((x193$24ptr || (x193$24ptr = new ptrType$1(function() { return x193; }, function($v) { x193 = $v; }))), (new fiatScalarUint1(x191.$high, x191.$low)), x184, x175); + fiatScalarCmovznzU64((x193$24ptr || (x193$24ptr = new ptrType$5(function() { return x193; }, function($v) { x193 = $v; }))), (new fiatScalarUint1(x191.$high, x191.$low)), x184, x175); x194 = new $Uint64(0, 0); - fiatScalarCmovznzU64((x194$24ptr || (x194$24ptr = new ptrType$1(function() { return x194; }, function($v) { x194 = $v; }))), (new fiatScalarUint1(x191.$high, x191.$low)), x186, x177); + fiatScalarCmovznzU64((x194$24ptr || (x194$24ptr = new ptrType$5(function() { return x194; }, function($v) { x194 = $v; }))), (new fiatScalarUint1(x191.$high, x191.$low)), x186, x177); x195 = new $Uint64(0, 0); - fiatScalarCmovznzU64((x195$24ptr || (x195$24ptr = new ptrType$1(function() { return x195; }, function($v) { x195 = $v; }))), (new fiatScalarUint1(x191.$high, x191.$low)), x188, x179); + fiatScalarCmovznzU64((x195$24ptr || (x195$24ptr = new ptrType$5(function() { return x195; }, function($v) { x195 = $v; }))), (new fiatScalarUint1(x191.$high, x191.$low)), x188, x179); out1.nilCheck, out1[0] = x192; out1.nilCheck, out1[1] = x193; out1.nilCheck, out1[2] = x194; @@ -229525,22 +230813,22 @@ $packages["crypto/internal/edwards25519"] = (function() { var _tuple$10, _tuple$11, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, arg1, arg2, out1, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x1, x10, x11, x12, x13, x14, x15, x16, x18, x19, x19$24ptr, x2, x20, x20$24ptr, x21, x21$24ptr, x22, x22$24ptr, x3, x4, x5, x6, x7, x8, x9; x1 = new $Uint64(0, 0); x2 = new $Uint64(0, 0); - _tuple$3 = bits.Add64(arg1[0], arg2[0], new $Uint64(0, 0)); + _tuple$3 = bits.Add64((arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[0], (arg2 === ptrType$4.nil && $throwNilPointerError(), arg2)[0], new $Uint64(0, 0)); x1 = _tuple$3[0]; x2 = _tuple$3[1]; x3 = new $Uint64(0, 0); x4 = new $Uint64(0, 0); - _tuple$4 = bits.Add64(arg1[1], arg2[1], ((x = (new fiatScalarUint1(x2.$high, x2.$low)), new $Uint64(x.$high, x.$low)))); + _tuple$4 = bits.Add64((arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[1], (arg2 === ptrType$4.nil && $throwNilPointerError(), arg2)[1], ((x = (new fiatScalarUint1(x2.$high, x2.$low)), new $Uint64(x.$high, x.$low)))); x3 = _tuple$4[0]; x4 = _tuple$4[1]; x5 = new $Uint64(0, 0); x6 = new $Uint64(0, 0); - _tuple$5 = bits.Add64(arg1[2], arg2[2], ((x$1 = (new fiatScalarUint1(x4.$high, x4.$low)), new $Uint64(x$1.$high, x$1.$low)))); + _tuple$5 = bits.Add64((arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[2], (arg2 === ptrType$4.nil && $throwNilPointerError(), arg2)[2], ((x$1 = (new fiatScalarUint1(x4.$high, x4.$low)), new $Uint64(x$1.$high, x$1.$low)))); x5 = _tuple$5[0]; x6 = _tuple$5[1]; x7 = new $Uint64(0, 0); x8 = new $Uint64(0, 0); - _tuple$6 = bits.Add64(arg1[3], arg2[3], ((x$2 = (new fiatScalarUint1(x6.$high, x6.$low)), new $Uint64(x$2.$high, x$2.$low)))); + _tuple$6 = bits.Add64((arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[3], (arg2 === ptrType$4.nil && $throwNilPointerError(), arg2)[3], ((x$2 = (new fiatScalarUint1(x6.$high, x6.$low)), new $Uint64(x$2.$high, x$2.$low)))); x7 = _tuple$6[0]; x8 = _tuple$6[1]; x9 = new $Uint64(0, 0); @@ -229567,13 +230855,13 @@ $packages["crypto/internal/edwards25519"] = (function() { _tuple$11 = bits.Sub64(((x$6 = (new fiatScalarUint1(x8.$high, x8.$low)), new $Uint64(x$6.$high, x$6.$low))), new $Uint64(0, 0), ((x$7 = (new fiatScalarUint1(x16.$high, x16.$low)), new $Uint64(x$7.$high, x$7.$low)))); x18 = _tuple$11[1]; x19 = new $Uint64(0, 0); - fiatScalarCmovznzU64((x19$24ptr || (x19$24ptr = new ptrType$1(function() { return x19; }, function($v) { x19 = $v; }))), (new fiatScalarUint1(x18.$high, x18.$low)), x9, x1); + fiatScalarCmovznzU64((x19$24ptr || (x19$24ptr = new ptrType$5(function() { return x19; }, function($v) { x19 = $v; }))), (new fiatScalarUint1(x18.$high, x18.$low)), x9, x1); x20 = new $Uint64(0, 0); - fiatScalarCmovznzU64((x20$24ptr || (x20$24ptr = new ptrType$1(function() { return x20; }, function($v) { x20 = $v; }))), (new fiatScalarUint1(x18.$high, x18.$low)), x11, x3); + fiatScalarCmovznzU64((x20$24ptr || (x20$24ptr = new ptrType$5(function() { return x20; }, function($v) { x20 = $v; }))), (new fiatScalarUint1(x18.$high, x18.$low)), x11, x3); x21 = new $Uint64(0, 0); - fiatScalarCmovznzU64((x21$24ptr || (x21$24ptr = new ptrType$1(function() { return x21; }, function($v) { x21 = $v; }))), (new fiatScalarUint1(x18.$high, x18.$low)), x13, x5); + fiatScalarCmovznzU64((x21$24ptr || (x21$24ptr = new ptrType$5(function() { return x21; }, function($v) { x21 = $v; }))), (new fiatScalarUint1(x18.$high, x18.$low)), x13, x5); x22 = new $Uint64(0, 0); - fiatScalarCmovznzU64((x22$24ptr || (x22$24ptr = new ptrType$1(function() { return x22; }, function($v) { x22 = $v; }))), (new fiatScalarUint1(x18.$high, x18.$low)), x15, x7); + fiatScalarCmovznzU64((x22$24ptr || (x22$24ptr = new ptrType$5(function() { return x22; }, function($v) { x22 = $v; }))), (new fiatScalarUint1(x18.$high, x18.$low)), x15, x7); out1.nilCheck, out1[0] = x19; out1.nilCheck, out1[1] = x20; out1.nilCheck, out1[2] = x21; @@ -229583,26 +230871,26 @@ $packages["crypto/internal/edwards25519"] = (function() { var _tuple$10, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, arg1, arg2, out1, x, x$1, x$2, x$3, x$4, x$5, x1, x10, x11, x12, x13, x14, x15, x16, x2, x3, x4, x5, x6, x7, x8, x9, x9$24ptr; x1 = new $Uint64(0, 0); x2 = new $Uint64(0, 0); - _tuple$3 = bits.Sub64(arg1[0], arg2[0], new $Uint64(0, 0)); + _tuple$3 = bits.Sub64((arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[0], (arg2 === ptrType$4.nil && $throwNilPointerError(), arg2)[0], new $Uint64(0, 0)); x1 = _tuple$3[0]; x2 = _tuple$3[1]; x3 = new $Uint64(0, 0); x4 = new $Uint64(0, 0); - _tuple$4 = bits.Sub64(arg1[1], arg2[1], ((x = (new fiatScalarUint1(x2.$high, x2.$low)), new $Uint64(x.$high, x.$low)))); + _tuple$4 = bits.Sub64((arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[1], (arg2 === ptrType$4.nil && $throwNilPointerError(), arg2)[1], ((x = (new fiatScalarUint1(x2.$high, x2.$low)), new $Uint64(x.$high, x.$low)))); x3 = _tuple$4[0]; x4 = _tuple$4[1]; x5 = new $Uint64(0, 0); x6 = new $Uint64(0, 0); - _tuple$5 = bits.Sub64(arg1[2], arg2[2], ((x$1 = (new fiatScalarUint1(x4.$high, x4.$low)), new $Uint64(x$1.$high, x$1.$low)))); + _tuple$5 = bits.Sub64((arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[2], (arg2 === ptrType$4.nil && $throwNilPointerError(), arg2)[2], ((x$1 = (new fiatScalarUint1(x4.$high, x4.$low)), new $Uint64(x$1.$high, x$1.$low)))); x5 = _tuple$5[0]; x6 = _tuple$5[1]; x7 = new $Uint64(0, 0); x8 = new $Uint64(0, 0); - _tuple$6 = bits.Sub64(arg1[3], arg2[3], ((x$2 = (new fiatScalarUint1(x6.$high, x6.$low)), new $Uint64(x$2.$high, x$2.$low)))); + _tuple$6 = bits.Sub64((arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[3], (arg2 === ptrType$4.nil && $throwNilPointerError(), arg2)[3], ((x$2 = (new fiatScalarUint1(x6.$high, x6.$low)), new $Uint64(x$2.$high, x$2.$low)))); x7 = _tuple$6[0]; x8 = _tuple$6[1]; x9 = new $Uint64(0, 0); - fiatScalarCmovznzU64((x9$24ptr || (x9$24ptr = new ptrType$1(function() { return x9; }, function($v) { x9 = $v; }))), (new fiatScalarUint1(x8.$high, x8.$low)), new $Uint64(0, 0), new $Uint64(4294967295, 4294967295)); + fiatScalarCmovznzU64((x9$24ptr || (x9$24ptr = new ptrType$5(function() { return x9; }, function($v) { x9 = $v; }))), (new fiatScalarUint1(x8.$high, x8.$low)), new $Uint64(0, 0), new $Uint64(4294967295, 4294967295)); x10 = new $Uint64(0, 0); x11 = new $Uint64(0, 0); _tuple$7 = bits.Add64(x1, new $Uint64(x9.$high & 1477600026, (x9.$low & 1559614445) >>> 0), new $Uint64(0, 0)); @@ -229630,26 +230918,26 @@ $packages["crypto/internal/edwards25519"] = (function() { var _tuple$10, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, arg1, out1, x, x$1, x$2, x$3, x$4, x$5, x1, x10, x11, x12, x13, x14, x15, x16, x2, x3, x4, x5, x6, x7, x8, x9, x9$24ptr; x1 = new $Uint64(0, 0); x2 = new $Uint64(0, 0); - _tuple$3 = bits.Sub64(new $Uint64(0, 0), arg1[0], new $Uint64(0, 0)); + _tuple$3 = bits.Sub64(new $Uint64(0, 0), (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[0], new $Uint64(0, 0)); x1 = _tuple$3[0]; x2 = _tuple$3[1]; x3 = new $Uint64(0, 0); x4 = new $Uint64(0, 0); - _tuple$4 = bits.Sub64(new $Uint64(0, 0), arg1[1], ((x = (new fiatScalarUint1(x2.$high, x2.$low)), new $Uint64(x.$high, x.$low)))); + _tuple$4 = bits.Sub64(new $Uint64(0, 0), (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[1], ((x = (new fiatScalarUint1(x2.$high, x2.$low)), new $Uint64(x.$high, x.$low)))); x3 = _tuple$4[0]; x4 = _tuple$4[1]; x5 = new $Uint64(0, 0); x6 = new $Uint64(0, 0); - _tuple$5 = bits.Sub64(new $Uint64(0, 0), arg1[2], ((x$1 = (new fiatScalarUint1(x4.$high, x4.$low)), new $Uint64(x$1.$high, x$1.$low)))); + _tuple$5 = bits.Sub64(new $Uint64(0, 0), (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[2], ((x$1 = (new fiatScalarUint1(x4.$high, x4.$low)), new $Uint64(x$1.$high, x$1.$low)))); x5 = _tuple$5[0]; x6 = _tuple$5[1]; x7 = new $Uint64(0, 0); x8 = new $Uint64(0, 0); - _tuple$6 = bits.Sub64(new $Uint64(0, 0), arg1[3], ((x$2 = (new fiatScalarUint1(x6.$high, x6.$low)), new $Uint64(x$2.$high, x$2.$low)))); + _tuple$6 = bits.Sub64(new $Uint64(0, 0), (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[3], ((x$2 = (new fiatScalarUint1(x6.$high, x6.$low)), new $Uint64(x$2.$high, x$2.$low)))); x7 = _tuple$6[0]; x8 = _tuple$6[1]; x9 = new $Uint64(0, 0); - fiatScalarCmovznzU64((x9$24ptr || (x9$24ptr = new ptrType$1(function() { return x9; }, function($v) { x9 = $v; }))), (new fiatScalarUint1(x8.$high, x8.$low)), new $Uint64(0, 0), new $Uint64(4294967295, 4294967295)); + fiatScalarCmovznzU64((x9$24ptr || (x9$24ptr = new ptrType$5(function() { return x9; }, function($v) { x9 = $v; }))), (new fiatScalarUint1(x8.$high, x8.$low)), new $Uint64(0, 0), new $Uint64(4294967295, 4294967295)); x10 = new $Uint64(0, 0); x11 = new $Uint64(0, 0); _tuple$7 = bits.Add64(x1, new $Uint64(x9.$high & 1477600026, (x9.$low & 1559614445) >>> 0), new $Uint64(0, 0)); @@ -229675,12 +230963,12 @@ $packages["crypto/internal/edwards25519"] = (function() { }; fiatScalarNonzero = function fiatScalarNonzero$1(out1, arg1) { var arg1, out1, x, x$1, x$2, x$3, x$4, x$5, x1; - x1 = (x = arg1[0], x$1 = (x$2 = arg1[1], x$3 = (x$4 = arg1[2], x$5 = arg1[3], new $Uint64(x$4.$high | x$5.$high, (x$4.$low | x$5.$low) >>> 0)), new $Uint64(x$2.$high | x$3.$high, (x$2.$low | x$3.$low) >>> 0)), new $Uint64(x.$high | x$1.$high, (x.$low | x$1.$low) >>> 0)); + x1 = (x = (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[0], x$1 = (x$2 = (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[1], x$3 = (x$4 = (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[2], x$5 = (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[3], new $Uint64(x$4.$high | x$5.$high, (x$4.$low | x$5.$low) >>> 0)), new $Uint64(x$2.$high | x$3.$high, (x$2.$low | x$3.$low) >>> 0)), new $Uint64(x.$high | x$1.$high, (x.$low | x$1.$low) >>> 0)); out1.$set(x1); }; fiatScalarFromMontgomery = function fiatScalarFromMontgomery$1(out1, arg1) { var _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$20, _tuple$21, _tuple$22, _tuple$23, _tuple$24, _tuple$25, _tuple$26, _tuple$27, _tuple$28, _tuple$29, _tuple$3, _tuple$30, _tuple$31, _tuple$32, _tuple$33, _tuple$34, _tuple$35, _tuple$36, _tuple$37, _tuple$38, _tuple$39, _tuple$4, _tuple$40, _tuple$41, _tuple$42, _tuple$43, _tuple$44, _tuple$45, _tuple$46, _tuple$47, _tuple$48, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, arg1, out1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$25, x$26, x$27, x$28, x$29, x$3, x$30, x$31, x$32, x$33, x$34, x$35, x$36, x$37, x$38, x$39, x$4, x$40, x$41, x$42, x$43, x$5, x$6, x$7, x$8, x$9, x1, x10, x11, x13, x14, x15, x16, x17, x18, x2, x20, x21, x22, x23, x24, x25, x26, x27, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x4, x40, x41, x42, x44, x45, x46, x47, x48, x49, x5, x50, x51, x53, x54, x55, x56, x57, x58, x59, x6, x60, x61, x62, x63, x64, x65, x66, x68, x69, x7, x70, x71, x72, x73, x74, x75, x77, x78, x79, x8, x80, x81, x82, x83, x84, x85, x86, x87, x88, x89, x9, x90, x91, x92, x94, x95, x95$24ptr, x96, x96$24ptr, x97, x97$24ptr, x98, x98$24ptr; - x1 = arg1[0]; + x1 = (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[0]; x2 = new $Uint64(0, 0); _tuple$3 = bits.Mul64(x1, new $Uint64(3535084963, 307527195)); x2 = _tuple$3[1]; @@ -229714,7 +231002,7 @@ $packages["crypto/internal/edwards25519"] = (function() { x15 = _tuple$9[1]; x16 = new $Uint64(0, 0); x17 = new $Uint64(0, 0); - _tuple$10 = bits.Add64(x14, arg1[1], new $Uint64(0, 0)); + _tuple$10 = bits.Add64(x14, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[1], new $Uint64(0, 0)); x16 = _tuple$10[0]; x17 = _tuple$10[1]; x18 = new $Uint64(0, 0); @@ -229760,7 +231048,7 @@ $packages["crypto/internal/edwards25519"] = (function() { x35 = _tuple$19[1]; x36 = new $Uint64(0, 0); x37 = new $Uint64(0, 0); - _tuple$20 = bits.Add64(x30, arg1[2], new $Uint64(0, 0)); + _tuple$20 = bits.Add64(x30, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[2], new $Uint64(0, 0)); x36 = _tuple$20[0]; x37 = _tuple$20[1]; x38 = new $Uint64(0, 0); @@ -229816,7 +231104,7 @@ $packages["crypto/internal/edwards25519"] = (function() { x59 = _tuple$31[1]; x60 = new $Uint64(0, 0); x61 = new $Uint64(0, 0); - _tuple$32 = bits.Add64(x54, arg1[3], new $Uint64(0, 0)); + _tuple$32 = bits.Add64(x54, (arg1 === ptrType$4.nil && $throwNilPointerError(), arg1)[3], new $Uint64(0, 0)); x60 = _tuple$32[0]; x61 = _tuple$32[1]; x62 = new $Uint64(0, 0); @@ -229895,13 +231183,13 @@ $packages["crypto/internal/edwards25519"] = (function() { _tuple$48 = bits.Sub64(new $Uint64(0, 0), new $Uint64(0, 0), ((x$43 = (new fiatScalarUint1(x92.$high, x92.$low)), new $Uint64(x$43.$high, x$43.$low)))); x94 = _tuple$48[1]; x95 = new $Uint64(0, 0); - fiatScalarCmovznzU64((x95$24ptr || (x95$24ptr = new ptrType$1(function() { return x95; }, function($v) { x95 = $v; }))), (new fiatScalarUint1(x94.$high, x94.$low)), x85, x78); + fiatScalarCmovznzU64((x95$24ptr || (x95$24ptr = new ptrType$5(function() { return x95; }, function($v) { x95 = $v; }))), (new fiatScalarUint1(x94.$high, x94.$low)), x85, x78); x96 = new $Uint64(0, 0); - fiatScalarCmovznzU64((x96$24ptr || (x96$24ptr = new ptrType$1(function() { return x96; }, function($v) { x96 = $v; }))), (new fiatScalarUint1(x94.$high, x94.$low)), x87, x80); + fiatScalarCmovznzU64((x96$24ptr || (x96$24ptr = new ptrType$5(function() { return x96; }, function($v) { x96 = $v; }))), (new fiatScalarUint1(x94.$high, x94.$low)), x87, x80); x97 = new $Uint64(0, 0); - fiatScalarCmovznzU64((x97$24ptr || (x97$24ptr = new ptrType$1(function() { return x97; }, function($v) { x97 = $v; }))), (new fiatScalarUint1(x94.$high, x94.$low)), x89, x82); + fiatScalarCmovznzU64((x97$24ptr || (x97$24ptr = new ptrType$5(function() { return x97; }, function($v) { x97 = $v; }))), (new fiatScalarUint1(x94.$high, x94.$low)), x89, x82); x98 = new $Uint64(0, 0); - fiatScalarCmovznzU64((x98$24ptr || (x98$24ptr = new ptrType$1(function() { return x98; }, function($v) { x98 = $v; }))), (new fiatScalarUint1(x94.$high, x94.$low)), x91, x84); + fiatScalarCmovznzU64((x98$24ptr || (x98$24ptr = new ptrType$5(function() { return x98; }, function($v) { x98 = $v; }))), (new fiatScalarUint1(x94.$high, x94.$low)), x91, x84); out1.nilCheck, out1[0] = x95; out1.nilCheck, out1[1] = x96; out1.nilCheck, out1[2] = x97; @@ -229909,10 +231197,10 @@ $packages["crypto/internal/edwards25519"] = (function() { }; fiatScalarToMontgomery = function fiatScalarToMontgomery$1(out1, arg1) { var _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$20, _tuple$21, _tuple$22, _tuple$23, _tuple$24, _tuple$25, _tuple$26, _tuple$27, _tuple$28, _tuple$29, _tuple$3, _tuple$30, _tuple$31, _tuple$32, _tuple$33, _tuple$34, _tuple$35, _tuple$36, _tuple$37, _tuple$38, _tuple$39, _tuple$4, _tuple$40, _tuple$41, _tuple$42, _tuple$43, _tuple$44, _tuple$45, _tuple$46, _tuple$47, _tuple$48, _tuple$49, _tuple$5, _tuple$50, _tuple$51, _tuple$52, _tuple$53, _tuple$54, _tuple$55, _tuple$56, _tuple$57, _tuple$58, _tuple$59, _tuple$6, _tuple$60, _tuple$61, _tuple$62, _tuple$63, _tuple$64, _tuple$65, _tuple$66, _tuple$67, _tuple$68, _tuple$69, _tuple$7, _tuple$70, _tuple$71, _tuple$72, _tuple$73, _tuple$74, _tuple$75, _tuple$76, _tuple$77, _tuple$78, _tuple$79, _tuple$8, _tuple$80, _tuple$81, _tuple$82, _tuple$83, _tuple$9, arg1, out1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$25, x$26, x$27, x$28, x$29, x$3, x$30, x$31, x$32, x$33, x$34, x$35, x$36, x$37, x$38, x$39, x$4, x$40, x$41, x$42, x$43, x$44, x$45, x$46, x$47, x$48, x$49, x$5, x$50, x$51, x$52, x$53, x$54, x$55, x$56, x$57, x$58, x$59, x$6, x$60, x$61, x$62, x$63, x$64, x$65, x$66, x$67, x$68, x$69, x$7, x$70, x$71, x$72, x$73, x$8, x$9, x1, x10, x101, x102, x103, x104, x105, x106, x107, x108, x11, x110, x111, x112, x113, x114, x115, x116, x117, x118, x119, x12, x120, x121, x122, x123, x124, x125, x126, x127, x128, x129, x13, x130, x131, x132, x133, x134, x135, x136, x137, x138, x139, x14, x141, x142, x143, x144, x145, x146, x147, x148, x15, x150, x151, x152, x153, x154, x155, x156, x157, x158, x159, x16, x160, x161, x162, x163, x164, x165, x167, x168, x168$24ptr, x169, x169$24ptr, x17, x170, x170$24ptr, x171, x171$24ptr, x18, x19, x2, x21, x22, x23, x24, x25, x26, x27, x28, x3, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x4, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x5, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x6, x61, x62, x63, x64, x65, x66, x67, x68, x7, x70, x71, x72, x73, x74, x75, x76, x77, x78, x79, x8, x80, x81, x82, x83, x84, x85, x86, x87, x88, x89, x9, x90, x91, x92, x93, x94, x95, x96, x97, x98, x99; - x1 = arg1[1]; - x2 = arg1[2]; - x3 = arg1[3]; - x4 = arg1[0]; + x1 = (arg1 === ptrType$7.nil && $throwNilPointerError(), arg1)[1]; + x2 = (arg1 === ptrType$7.nil && $throwNilPointerError(), arg1)[2]; + x3 = (arg1 === ptrType$7.nil && $throwNilPointerError(), arg1)[3]; + x4 = (arg1 === ptrType$7.nil && $throwNilPointerError(), arg1)[0]; x5 = new $Uint64(0, 0); x6 = new $Uint64(0, 0); _tuple$3 = bits.Mul64(x4, new $Uint64(60375323, 2083559997)); @@ -230302,13 +231590,13 @@ $packages["crypto/internal/edwards25519"] = (function() { _tuple$83 = bits.Sub64(new $Uint64(0, 0), new $Uint64(0, 0), ((x$73 = (new fiatScalarUint1(x165.$high, x165.$low)), new $Uint64(x$73.$high, x$73.$low)))); x167 = _tuple$83[1]; x168 = new $Uint64(0, 0); - fiatScalarCmovznzU64((x168$24ptr || (x168$24ptr = new ptrType$1(function() { return x168; }, function($v) { x168 = $v; }))), (new fiatScalarUint1(x167.$high, x167.$low)), x158, x151); + fiatScalarCmovznzU64((x168$24ptr || (x168$24ptr = new ptrType$5(function() { return x168; }, function($v) { x168 = $v; }))), (new fiatScalarUint1(x167.$high, x167.$low)), x158, x151); x169 = new $Uint64(0, 0); - fiatScalarCmovznzU64((x169$24ptr || (x169$24ptr = new ptrType$1(function() { return x169; }, function($v) { x169 = $v; }))), (new fiatScalarUint1(x167.$high, x167.$low)), x160, x153); + fiatScalarCmovznzU64((x169$24ptr || (x169$24ptr = new ptrType$5(function() { return x169; }, function($v) { x169 = $v; }))), (new fiatScalarUint1(x167.$high, x167.$low)), x160, x153); x170 = new $Uint64(0, 0); - fiatScalarCmovznzU64((x170$24ptr || (x170$24ptr = new ptrType$1(function() { return x170; }, function($v) { x170 = $v; }))), (new fiatScalarUint1(x167.$high, x167.$low)), x162, x155); + fiatScalarCmovznzU64((x170$24ptr || (x170$24ptr = new ptrType$5(function() { return x170; }, function($v) { x170 = $v; }))), (new fiatScalarUint1(x167.$high, x167.$low)), x162, x155); x171 = new $Uint64(0, 0); - fiatScalarCmovznzU64((x171$24ptr || (x171$24ptr = new ptrType$1(function() { return x171; }, function($v) { x171 = $v; }))), (new fiatScalarUint1(x167.$high, x167.$low)), x164, x157); + fiatScalarCmovznzU64((x171$24ptr || (x171$24ptr = new ptrType$5(function() { return x171; }, function($v) { x171 = $v; }))), (new fiatScalarUint1(x167.$high, x167.$low)), x164, x157); out1.nilCheck, out1[0] = x168; out1.nilCheck, out1[1] = x169; out1.nilCheck, out1[2] = x170; @@ -230316,10 +231604,10 @@ $packages["crypto/internal/edwards25519"] = (function() { }; fiatScalarToBytes = function fiatScalarToBytes$1(out1, arg1) { var arg1, out1, x1, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x2, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x3, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x4, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x5, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x6, x60, x7, x8, x9; - x1 = arg1[3]; - x2 = arg1[2]; - x3 = arg1[1]; - x4 = arg1[0]; + x1 = (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[3]; + x2 = (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[2]; + x3 = (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[1]; + x4 = (arg1 === ptrType$6.nil && $throwNilPointerError(), arg1)[0]; x5 = ((((x4.$low << 24 >>> 24)) & 255) >>> 0); x6 = $shiftRightUint64(x4, 8); x7 = ((((x6.$low << 24 >>> 24)) & 255) >>> 0); @@ -230411,38 +231699,38 @@ $packages["crypto/internal/edwards25519"] = (function() { }; fiatScalarFromBytes = function fiatScalarFromBytes$1(out1, arg1) { var arg1, out1, x, x$1, x$2, x$3, x1, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x2, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x3, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x4, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x5, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x6, x60, x7, x8, x9; - x1 = $shiftLeft64((new $Uint64(0, arg1[31])), 56); - x2 = $shiftLeft64((new $Uint64(0, arg1[30])), 48); - x3 = $shiftLeft64((new $Uint64(0, arg1[29])), 40); - x4 = $shiftLeft64((new $Uint64(0, arg1[28])), 32); - x5 = $shiftLeft64((new $Uint64(0, arg1[27])), 24); - x6 = $shiftLeft64((new $Uint64(0, arg1[26])), 16); - x7 = $shiftLeft64((new $Uint64(0, arg1[25])), 8); - x8 = arg1[24]; - x9 = $shiftLeft64((new $Uint64(0, arg1[23])), 56); - x10 = $shiftLeft64((new $Uint64(0, arg1[22])), 48); - x11 = $shiftLeft64((new $Uint64(0, arg1[21])), 40); - x12 = $shiftLeft64((new $Uint64(0, arg1[20])), 32); - x13 = $shiftLeft64((new $Uint64(0, arg1[19])), 24); - x14 = $shiftLeft64((new $Uint64(0, arg1[18])), 16); - x15 = $shiftLeft64((new $Uint64(0, arg1[17])), 8); - x16 = arg1[16]; - x17 = $shiftLeft64((new $Uint64(0, arg1[15])), 56); - x18 = $shiftLeft64((new $Uint64(0, arg1[14])), 48); - x19 = $shiftLeft64((new $Uint64(0, arg1[13])), 40); - x20 = $shiftLeft64((new $Uint64(0, arg1[12])), 32); - x21 = $shiftLeft64((new $Uint64(0, arg1[11])), 24); - x22 = $shiftLeft64((new $Uint64(0, arg1[10])), 16); - x23 = $shiftLeft64((new $Uint64(0, arg1[9])), 8); - x24 = arg1[8]; - x25 = $shiftLeft64((new $Uint64(0, arg1[7])), 56); - x26 = $shiftLeft64((new $Uint64(0, arg1[6])), 48); - x27 = $shiftLeft64((new $Uint64(0, arg1[5])), 40); - x28 = $shiftLeft64((new $Uint64(0, arg1[4])), 32); - x29 = $shiftLeft64((new $Uint64(0, arg1[3])), 24); - x30 = $shiftLeft64((new $Uint64(0, arg1[2])), 16); - x31 = $shiftLeft64((new $Uint64(0, arg1[1])), 8); - x32 = arg1[0]; + x1 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$8.nil && $throwNilPointerError(), arg1)[31])), 56); + x2 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$8.nil && $throwNilPointerError(), arg1)[30])), 48); + x3 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$8.nil && $throwNilPointerError(), arg1)[29])), 40); + x4 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$8.nil && $throwNilPointerError(), arg1)[28])), 32); + x5 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$8.nil && $throwNilPointerError(), arg1)[27])), 24); + x6 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$8.nil && $throwNilPointerError(), arg1)[26])), 16); + x7 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$8.nil && $throwNilPointerError(), arg1)[25])), 8); + x8 = (arg1 === ptrType$8.nil && $throwNilPointerError(), arg1)[24]; + x9 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$8.nil && $throwNilPointerError(), arg1)[23])), 56); + x10 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$8.nil && $throwNilPointerError(), arg1)[22])), 48); + x11 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$8.nil && $throwNilPointerError(), arg1)[21])), 40); + x12 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$8.nil && $throwNilPointerError(), arg1)[20])), 32); + x13 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$8.nil && $throwNilPointerError(), arg1)[19])), 24); + x14 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$8.nil && $throwNilPointerError(), arg1)[18])), 16); + x15 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$8.nil && $throwNilPointerError(), arg1)[17])), 8); + x16 = (arg1 === ptrType$8.nil && $throwNilPointerError(), arg1)[16]; + x17 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$8.nil && $throwNilPointerError(), arg1)[15])), 56); + x18 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$8.nil && $throwNilPointerError(), arg1)[14])), 48); + x19 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$8.nil && $throwNilPointerError(), arg1)[13])), 40); + x20 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$8.nil && $throwNilPointerError(), arg1)[12])), 32); + x21 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$8.nil && $throwNilPointerError(), arg1)[11])), 24); + x22 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$8.nil && $throwNilPointerError(), arg1)[10])), 16); + x23 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$8.nil && $throwNilPointerError(), arg1)[9])), 8); + x24 = (arg1 === ptrType$8.nil && $throwNilPointerError(), arg1)[8]; + x25 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$8.nil && $throwNilPointerError(), arg1)[7])), 56); + x26 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$8.nil && $throwNilPointerError(), arg1)[6])), 48); + x27 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$8.nil && $throwNilPointerError(), arg1)[5])), 40); + x28 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$8.nil && $throwNilPointerError(), arg1)[4])), 32); + x29 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$8.nil && $throwNilPointerError(), arg1)[3])), 24); + x30 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$8.nil && $throwNilPointerError(), arg1)[2])), 16); + x31 = $shiftLeft64((new $Uint64(0, (arg1 === ptrType$8.nil && $throwNilPointerError(), arg1)[1])), 8); + x32 = (arg1 === ptrType$8.nil && $throwNilPointerError(), arg1)[0]; x33 = (x = (new $Uint64(0, x32)), new $Uint64(x31.$high + x.$high, x31.$low + x.$low)); x34 = new $Uint64(x30.$high + x33.$high, x30.$low + x33.$low); x35 = new $Uint64(x29.$high + x34.$high, x29.$low + x34.$low); @@ -230513,14 +231801,14 @@ $packages["crypto/internal/edwards25519"] = (function() { $ptrType(Scalar).prototype.Set = function Set(x) { var s, x; s = this; - Scalar.copy(s, x); + Scalar.copy((s === ptrType$9.nil && $throwNilPointerError(), s), (x === ptrType$9.nil && $throwNilPointerError(), x)); return s; }; $ptrType(Scalar).prototype.SetUniformBytes = function SetUniformBytes(x) { var s, t, x; s = this; if (!((x.$length === 64))) { - return [ptrType$2.nil, errors.New("edwards25519: invalid SetUniformBytes input length")]; + return [ptrType$9.nil, errors.New("edwards25519: invalid SetUniformBytes input length")]; } s.setShortBytes($subslice(x, 0, 21)); t = new Scalar.ptr(arrayType$3.zero()).setShortBytes($subslice(x, 21, 42)); @@ -230545,12 +231833,12 @@ $packages["crypto/internal/edwards25519"] = (function() { var s, x; s = this; if (!((x.$length === 32))) { - return [ptrType$2.nil, errors.New("invalid scalar length")]; + return [ptrType$9.nil, errors.New("invalid scalar length")]; } if (!isReduced(x)) { - return [ptrType$2.nil, errors.New("invalid scalar encoding")]; + return [ptrType$9.nil, errors.New("invalid scalar encoding")]; } - fiatScalarFromBytes((s.s), ($sliceToGoArray(x, ptrType$3))); + fiatScalarFromBytes((s.s), ($sliceToGoArray(x, ptrType$8))); fiatScalarToMontgomery(s.s, (s.s)); return [s, $ifaceNil]; }; @@ -230575,7 +231863,7 @@ $packages["crypto/internal/edwards25519"] = (function() { var s, wideBytes, x; s = this; if (!((x.$length === 32))) { - return [ptrType$2.nil, errors.New("edwards25519: invalid SetBytesWithClamping input length")]; + return [ptrType$9.nil, errors.New("edwards25519: invalid SetBytesWithClamping input length")]; } wideBytes = arrayType$9.zero(); $copySlice(new sliceType(wideBytes), x); @@ -230604,7 +231892,7 @@ $packages["crypto/internal/edwards25519"] = (function() { diff = arrayType$3.zero(); fiatScalarSub(diff, s.s, t.s); nonzero = new $Uint64(0, 0); - fiatScalarNonzero((nonzero$24ptr || (nonzero$24ptr = new ptrType$1(function() { return nonzero; }, function($v) { nonzero = $v; }))), (diff)); + fiatScalarNonzero((nonzero$24ptr || (nonzero$24ptr = new ptrType$5(function() { return nonzero; }, function($v) { nonzero = $v; }))), (diff)); nonzero = (x = $shiftRightUint64(nonzero, 32), new $Uint64(nonzero.$high | x.$high, (nonzero.$low | x.$low) >>> 0)); nonzero = (x$1 = $shiftRightUint64(nonzero, 16), new $Uint64(nonzero.$high | x$1.$high, (nonzero.$low | x$1.$low) >>> 0)); nonzero = (x$2 = $shiftRightUint64(nonzero, 8), new $Uint64(nonzero.$high | x$2.$high, (nonzero.$low | x$2.$low) >>> 0)); @@ -230711,11 +231999,11 @@ $packages["crypto/internal/edwards25519"] = (function() { return v; }; NewIdentityPoint = function NewIdentityPoint$1() { - return new Point.ptr(new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), arrayType$4.zero()).Set(identity); + return new Point.ptr(arrayType$4.zero(), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0))).Set(identity); }; $pkg.NewIdentityPoint = NewIdentityPoint; NewGeneratorPoint = function NewGeneratorPoint$1() { - return new Point.ptr(new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), arrayType$4.zero()).Set(generator); + return new Point.ptr(arrayType$4.zero(), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0))).Set(generator); }; $pkg.NewGeneratorPoint = NewGeneratorPoint; $ptrType(projCached).prototype.Zero = function Zero$1() { @@ -230738,7 +232026,7 @@ $packages["crypto/internal/edwards25519"] = (function() { $ptrType(Point).prototype.Set = function Set$1(u) { var u, v; v = this; - Point.copy(v, u); + Point.copy((v === ptrType$3.nil && $throwNilPointerError(), v), (u === ptrType$3.nil && $throwNilPointerError(), u)); return v; }; $ptrType(Point).prototype.Bytes = function Bytes$1() { @@ -230771,7 +232059,7 @@ $packages["crypto/internal/edwards25519"] = (function() { y = _tuple$3[0]; err = _tuple$3[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { - return [ptrType.nil, errors.New("edwards25519: invalid point encoding length")]; + return [ptrType$3.nil, errors.New("edwards25519: invalid point encoding length")]; } y2 = new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)).Square(y); u = new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)).Subtract(y2, feOne); @@ -230781,7 +232069,7 @@ $packages["crypto/internal/edwards25519"] = (function() { xx = _tuple$4[0]; wasSquare = _tuple$4[1]; if (wasSquare === 0) { - return [ptrType.nil, errors.New("edwards25519: invalid point encoding")]; + return [ptrType$3.nil, errors.New("edwards25519: invalid point encoding")]; } xxNeg = new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)).Negate(xx); xx = xx.Select(xxNeg, xx, ((((31 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 31]) >>> 7 << 24 >>> 24) >> 0))); @@ -231060,25 +232348,26 @@ $packages["crypto/internal/edwards25519"] = (function() { v.T2d.Select(new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)).Negate(v.T2d), v.T2d, cond); return v; }; - ptrType$5.methods = [{prop: "FromP3", name: "FromP3", pkg: "", typ: $funcType([ptrType], [], false)}, {prop: "SelectInto", name: "SelectInto", pkg: "", typ: $funcType([ptrType$4, $Int8], [], false)}]; - ptrType$7.methods = [{prop: "FromP3", name: "FromP3", pkg: "", typ: $funcType([ptrType], [], false)}, {prop: "SelectInto", name: "SelectInto", pkg: "", typ: $funcType([ptrType$6, $Int8], [], false)}]; - ptrType$8.methods = [{prop: "FromP3", name: "FromP3", pkg: "", typ: $funcType([ptrType], [], false)}, {prop: "SelectInto", name: "SelectInto", pkg: "", typ: $funcType([ptrType$4, $Int8], [], false)}]; - ptrType$9.methods = [{prop: "FromP3", name: "FromP3", pkg: "", typ: $funcType([ptrType], [], false)}, {prop: "SelectInto", name: "SelectInto", pkg: "", typ: $funcType([ptrType$6, $Int8], [], false)}]; - ptrType$2.methods = [{prop: "MultiplyAdd", name: "MultiplyAdd", pkg: "", typ: $funcType([ptrType$2, ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "Subtract", name: "Subtract", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "Negate", name: "Negate", pkg: "", typ: $funcType([ptrType$2], [ptrType$2], false)}, {prop: "Multiply", name: "Multiply", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([ptrType$2], [ptrType$2], false)}, {prop: "SetUniformBytes", name: "SetUniformBytes", pkg: "", typ: $funcType([sliceType], [ptrType$2, $error], false)}, {prop: "setShortBytes", name: "setShortBytes", pkg: "crypto/internal/edwards25519", typ: $funcType([sliceType], [ptrType$2], false)}, {prop: "SetCanonicalBytes", name: "SetCanonicalBytes", pkg: "", typ: $funcType([sliceType], [ptrType$2, $error], false)}, {prop: "SetBytesWithClamping", name: "SetBytesWithClamping", pkg: "", typ: $funcType([sliceType], [ptrType$2, $error], false)}, {prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "bytes", name: "bytes", pkg: "crypto/internal/edwards25519", typ: $funcType([ptrType$3], [sliceType], false)}, {prop: "Equal", name: "Equal", pkg: "", typ: $funcType([ptrType$2], [$Int], false)}, {prop: "nonAdjacentForm", name: "nonAdjacentForm", pkg: "crypto/internal/edwards25519", typ: $funcType([$Uint], [arrayType$7], false)}, {prop: "signedRadix16", name: "signedRadix16", pkg: "crypto/internal/edwards25519", typ: $funcType([], [arrayType$5], false)}]; - ptrType$10.methods = [{prop: "Add", name: "Add", pkg: "", typ: $funcType([ptrType, ptrType$4], [ptrType$10], false)}, {prop: "Sub", name: "Sub", pkg: "", typ: $funcType([ptrType, ptrType$4], [ptrType$10], false)}, {prop: "AddAffine", name: "AddAffine", pkg: "", typ: $funcType([ptrType, ptrType$6], [ptrType$10], false)}, {prop: "SubAffine", name: "SubAffine", pkg: "", typ: $funcType([ptrType, ptrType$6], [ptrType$10], false)}, {prop: "Double", name: "Double", pkg: "", typ: $funcType([ptrType$11], [ptrType$10], false)}]; - ptrType$11.methods = [{prop: "Zero", name: "Zero", pkg: "", typ: $funcType([], [ptrType$11], false)}, {prop: "FromP1xP1", name: "FromP1xP1", pkg: "", typ: $funcType([ptrType$10], [ptrType$11], false)}, {prop: "FromP3", name: "FromP3", pkg: "", typ: $funcType([ptrType], [ptrType$11], false)}]; - ptrType.methods = [{prop: "ScalarBaseMult", name: "ScalarBaseMult", pkg: "", typ: $funcType([ptrType$2], [ptrType], false)}, {prop: "ScalarMult", name: "ScalarMult", pkg: "", typ: $funcType([ptrType$2, ptrType], [ptrType], false)}, {prop: "VarTimeDoubleScalarBaseMult", name: "VarTimeDoubleScalarBaseMult", pkg: "", typ: $funcType([ptrType$2, ptrType, ptrType$2], [ptrType], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([ptrType], [ptrType], false)}, {prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "bytes", name: "bytes", pkg: "crypto/internal/edwards25519", typ: $funcType([ptrType$3], [sliceType], false)}, {prop: "SetBytes", name: "SetBytes", pkg: "", typ: $funcType([sliceType], [ptrType, $error], false)}, {prop: "fromP1xP1", name: "fromP1xP1", pkg: "crypto/internal/edwards25519", typ: $funcType([ptrType$10], [ptrType], false)}, {prop: "fromP2", name: "fromP2", pkg: "crypto/internal/edwards25519", typ: $funcType([ptrType$11], [ptrType], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([ptrType, ptrType], [ptrType], false)}, {prop: "Subtract", name: "Subtract", pkg: "", typ: $funcType([ptrType, ptrType], [ptrType], false)}, {prop: "Negate", name: "Negate", pkg: "", typ: $funcType([ptrType], [ptrType], false)}, {prop: "Equal", name: "Equal", pkg: "", typ: $funcType([ptrType], [$Int], false)}]; - ptrType$4.methods = [{prop: "Zero", name: "Zero", pkg: "", typ: $funcType([], [ptrType$4], false)}, {prop: "FromP3", name: "FromP3", pkg: "", typ: $funcType([ptrType], [ptrType$4], false)}, {prop: "Select", name: "Select", pkg: "", typ: $funcType([ptrType$4, ptrType$4, $Int], [ptrType$4], false)}, {prop: "CondNeg", name: "CondNeg", pkg: "", typ: $funcType([$Int], [ptrType$4], false)}]; - ptrType$6.methods = [{prop: "Zero", name: "Zero", pkg: "", typ: $funcType([], [ptrType$6], false)}, {prop: "FromP3", name: "FromP3", pkg: "", typ: $funcType([ptrType], [ptrType$6], false)}, {prop: "Select", name: "Select", pkg: "", typ: $funcType([ptrType$6, ptrType$6, $Int], [ptrType$6], false)}, {prop: "CondNeg", name: "CondNeg", pkg: "", typ: $funcType([$Int], [ptrType$6], false)}]; + ptrType$10.methods = [{prop: "FromP3", name: "FromP3", pkg: "", typ: $funcType([ptrType$3], [], false)}, {prop: "SelectInto", name: "SelectInto", pkg: "", typ: $funcType([ptrType, $Int8], [], false)}]; + ptrType$2.methods = [{prop: "FromP3", name: "FromP3", pkg: "", typ: $funcType([ptrType$3], [], false)}, {prop: "SelectInto", name: "SelectInto", pkg: "", typ: $funcType([ptrType$1, $Int8], [], false)}]; + ptrType$11.methods = [{prop: "FromP3", name: "FromP3", pkg: "", typ: $funcType([ptrType$3], [], false)}, {prop: "SelectInto", name: "SelectInto", pkg: "", typ: $funcType([ptrType, $Int8], [], false)}]; + ptrType$12.methods = [{prop: "FromP3", name: "FromP3", pkg: "", typ: $funcType([ptrType$3], [], false)}, {prop: "SelectInto", name: "SelectInto", pkg: "", typ: $funcType([ptrType$1, $Int8], [], false)}]; + ptrType$9.methods = [{prop: "MultiplyAdd", name: "MultiplyAdd", pkg: "", typ: $funcType([ptrType$9, ptrType$9, ptrType$9], [ptrType$9], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([ptrType$9, ptrType$9], [ptrType$9], false)}, {prop: "Subtract", name: "Subtract", pkg: "", typ: $funcType([ptrType$9, ptrType$9], [ptrType$9], false)}, {prop: "Negate", name: "Negate", pkg: "", typ: $funcType([ptrType$9], [ptrType$9], false)}, {prop: "Multiply", name: "Multiply", pkg: "", typ: $funcType([ptrType$9, ptrType$9], [ptrType$9], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([ptrType$9], [ptrType$9], false)}, {prop: "SetUniformBytes", name: "SetUniformBytes", pkg: "", typ: $funcType([sliceType], [ptrType$9, $error], false)}, {prop: "setShortBytes", name: "setShortBytes", pkg: "crypto/internal/edwards25519", typ: $funcType([sliceType], [ptrType$9], false)}, {prop: "SetCanonicalBytes", name: "SetCanonicalBytes", pkg: "", typ: $funcType([sliceType], [ptrType$9, $error], false)}, {prop: "SetBytesWithClamping", name: "SetBytesWithClamping", pkg: "", typ: $funcType([sliceType], [ptrType$9, $error], false)}, {prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "bytes", name: "bytes", pkg: "crypto/internal/edwards25519", typ: $funcType([ptrType$8], [sliceType], false)}, {prop: "Equal", name: "Equal", pkg: "", typ: $funcType([ptrType$9], [$Int], false)}, {prop: "nonAdjacentForm", name: "nonAdjacentForm", pkg: "crypto/internal/edwards25519", typ: $funcType([$Uint], [arrayType$7], false)}, {prop: "signedRadix16", name: "signedRadix16", pkg: "crypto/internal/edwards25519", typ: $funcType([], [arrayType$5], false)}]; + ptrType$13.methods = [{prop: "Add", name: "Add", pkg: "", typ: $funcType([ptrType$3, ptrType], [ptrType$13], false)}, {prop: "Sub", name: "Sub", pkg: "", typ: $funcType([ptrType$3, ptrType], [ptrType$13], false)}, {prop: "AddAffine", name: "AddAffine", pkg: "", typ: $funcType([ptrType$3, ptrType$1], [ptrType$13], false)}, {prop: "SubAffine", name: "SubAffine", pkg: "", typ: $funcType([ptrType$3, ptrType$1], [ptrType$13], false)}, {prop: "Double", name: "Double", pkg: "", typ: $funcType([ptrType$14], [ptrType$13], false)}]; + ptrType$14.methods = [{prop: "Zero", name: "Zero", pkg: "", typ: $funcType([], [ptrType$14], false)}, {prop: "FromP1xP1", name: "FromP1xP1", pkg: "", typ: $funcType([ptrType$13], [ptrType$14], false)}, {prop: "FromP3", name: "FromP3", pkg: "", typ: $funcType([ptrType$3], [ptrType$14], false)}]; + ptrType$3.methods = [{prop: "ScalarBaseMult", name: "ScalarBaseMult", pkg: "", typ: $funcType([ptrType$9], [ptrType$3], false)}, {prop: "ScalarMult", name: "ScalarMult", pkg: "", typ: $funcType([ptrType$9, ptrType$3], [ptrType$3], false)}, {prop: "VarTimeDoubleScalarBaseMult", name: "VarTimeDoubleScalarBaseMult", pkg: "", typ: $funcType([ptrType$9, ptrType$3, ptrType$9], [ptrType$3], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([ptrType$3], [ptrType$3], false)}, {prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "bytes", name: "bytes", pkg: "crypto/internal/edwards25519", typ: $funcType([ptrType$8], [sliceType], false)}, {prop: "SetBytes", name: "SetBytes", pkg: "", typ: $funcType([sliceType], [ptrType$3, $error], false)}, {prop: "fromP1xP1", name: "fromP1xP1", pkg: "crypto/internal/edwards25519", typ: $funcType([ptrType$13], [ptrType$3], false)}, {prop: "fromP2", name: "fromP2", pkg: "crypto/internal/edwards25519", typ: $funcType([ptrType$14], [ptrType$3], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([ptrType$3, ptrType$3], [ptrType$3], false)}, {prop: "Subtract", name: "Subtract", pkg: "", typ: $funcType([ptrType$3, ptrType$3], [ptrType$3], false)}, {prop: "Negate", name: "Negate", pkg: "", typ: $funcType([ptrType$3], [ptrType$3], false)}, {prop: "Equal", name: "Equal", pkg: "", typ: $funcType([ptrType$3], [$Int], false)}]; + ptrType.methods = [{prop: "Zero", name: "Zero", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "FromP3", name: "FromP3", pkg: "", typ: $funcType([ptrType$3], [ptrType], false)}, {prop: "Select", name: "Select", pkg: "", typ: $funcType([ptrType, ptrType, $Int], [ptrType], false)}, {prop: "CondNeg", name: "CondNeg", pkg: "", typ: $funcType([$Int], [ptrType], false)}]; + ptrType$1.methods = [{prop: "Zero", name: "Zero", pkg: "", typ: $funcType([], [ptrType$1], false)}, {prop: "FromP3", name: "FromP3", pkg: "", typ: $funcType([ptrType$3], [ptrType$1], false)}, {prop: "Select", name: "Select", pkg: "", typ: $funcType([ptrType$1, ptrType$1, $Int], [ptrType$1], false)}, {prop: "CondNeg", name: "CondNeg", pkg: "", typ: $funcType([$Int], [ptrType$1], false)}]; projLookupTable.init("crypto/internal/edwards25519", [{prop: "points", name: "points", embedded: false, exported: false, typ: arrayType$6, tag: ""}]); affineLookupTable.init("crypto/internal/edwards25519", [{prop: "points", name: "points", embedded: false, exported: false, typ: arrayType, tag: ""}]); nafLookupTable5.init("crypto/internal/edwards25519", [{prop: "points", name: "points", embedded: false, exported: false, typ: arrayType$6, tag: ""}]); nafLookupTable8.init("crypto/internal/edwards25519", [{prop: "points", name: "points", embedded: false, exported: false, typ: arrayType$2, tag: ""}]); fiatScalarMontgomeryDomainFieldElement.init($Uint64, 4); + fiatScalarNonMontgomeryDomainFieldElement.init($Uint64, 4); Scalar.init("crypto/internal/edwards25519", [{prop: "s", name: "s", embedded: false, exported: false, typ: fiatScalarMontgomeryDomainFieldElement, tag: ""}]); projP1xP1.init("", [{prop: "X", name: "X", embedded: false, exported: true, typ: field.Element, tag: ""}, {prop: "Y", name: "Y", embedded: false, exported: true, typ: field.Element, tag: ""}, {prop: "Z", name: "Z", embedded: false, exported: true, typ: field.Element, tag: ""}, {prop: "T", name: "T", embedded: false, exported: true, typ: field.Element, tag: ""}]); projP2.init("", [{prop: "X", name: "X", embedded: false, exported: true, typ: field.Element, tag: ""}, {prop: "Y", name: "Y", embedded: false, exported: true, typ: field.Element, tag: ""}, {prop: "Z", name: "Z", embedded: false, exported: true, typ: field.Element, tag: ""}]); - Point.init("crypto/internal/edwards25519", [{prop: "x", name: "x", embedded: false, exported: false, typ: field.Element, tag: ""}, {prop: "y", name: "y", embedded: false, exported: false, typ: field.Element, tag: ""}, {prop: "z", name: "z", embedded: false, exported: false, typ: field.Element, tag: ""}, {prop: "t", name: "t", embedded: false, exported: false, typ: field.Element, tag: ""}, {prop: "_$4", name: "_", embedded: false, exported: false, typ: incomparable, tag: ""}]); + Point.init("crypto/internal/edwards25519", [{prop: "_$0", name: "_", embedded: false, exported: false, typ: incomparable, tag: ""}, {prop: "x", name: "x", embedded: false, exported: false, typ: field.Element, tag: ""}, {prop: "y", name: "y", embedded: false, exported: false, typ: field.Element, tag: ""}, {prop: "z", name: "z", embedded: false, exported: false, typ: field.Element, tag: ""}, {prop: "t", name: "t", embedded: false, exported: false, typ: field.Element, tag: ""}]); incomparable.init(funcType, 0); projCached.init("", [{prop: "YplusX", name: "YplusX", embedded: false, exported: true, typ: field.Element, tag: ""}, {prop: "YminusX", name: "YminusX", embedded: false, exported: true, typ: field.Element, tag: ""}, {prop: "Z", name: "Z", embedded: false, exported: true, typ: field.Element, tag: ""}, {prop: "T2d", name: "T2d", embedded: false, exported: true, typ: field.Element, tag: ""}]); affineCached.init("", [{prop: "YplusX", name: "YplusX", embedded: false, exported: true, typ: field.Element, tag: ""}, {prop: "YminusX", name: "YminusX", embedded: false, exported: true, typ: field.Element, tag: ""}, {prop: "T2d", name: "T2d", embedded: false, exported: true, typ: field.Element, tag: ""}]); @@ -231100,9 +232389,9 @@ $packages["crypto/internal/edwards25519"] = (function() { feOne = new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)).One(); _tuple = new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)).SetBytes(new sliceType([163, 120, 89, 19, 202, 77, 235, 117, 171, 216, 65, 65, 77, 10, 112, 0, 152, 232, 121, 119, 121, 64, 199, 140, 115, 254, 111, 43, 238, 108, 3, 82])); d = _tuple[0]; - _tuple$1 = new Point.ptr(new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), arrayType$4.zero()).SetBytes(new sliceType([1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])); + _tuple$1 = new Point.ptr(arrayType$4.zero(), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0))).SetBytes(new sliceType([1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])); identity = _tuple$1[0]; - _tuple$2 = new Point.ptr(new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), arrayType$4.zero()).SetBytes(new sliceType([88, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102])); + _tuple$2 = new Point.ptr(arrayType$4.zero(), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0))).SetBytes(new sliceType([88, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102])); generator = _tuple$2[0]; d2 = new field.Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)).Add(d, d); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; @@ -231111,12 +232400,13 @@ $packages["crypto/internal/edwards25519"] = (function() { return $pkg; })(); $packages["crypto/ed25519"] = (function() { - var $pkg = {}, $init, bytes, crypto, edwards25519, rand, sha512, errors, io, strconv, PublicKey, PrivateKey, Options, sliceType, ptrType, arrayType, funcType, arrayType$1, NewKeyFromSeed, newKeyFromSeed, Sign, sign, Verify, verify; + var $pkg = {}, $init, bytes, crypto, edwards25519, rand, sha512, subtle, errors, io, strconv, PublicKey, PrivateKey, Options, sliceType, ptrType, arrayType, funcType, arrayType$1, NewKeyFromSeed, newKeyFromSeed, Sign, sign, Verify, verify; bytes = $packages["bytes"]; crypto = $packages["crypto"]; edwards25519 = $packages["crypto/internal/edwards25519"]; rand = $packages["crypto/rand"]; sha512 = $packages["crypto/sha512"]; + subtle = $packages["crypto/subtle"]; errors = $packages["errors"]; io = $packages["io"]; strconv = $packages["strconv"]; @@ -231150,7 +232440,7 @@ $packages["crypto/ed25519"] = (function() { if (!ok) { return false; } - return bytes.Equal($convertSliceType(pub, sliceType), $convertSliceType(xx, sliceType)); + return subtle.ConstantTimeCompare($convertSliceType(pub, sliceType), $convertSliceType(xx, sliceType)) === 1; }; $ptrType(PublicKey).prototype.Equal = function(...$args) { return this.$get().Equal(...$args); }; PrivateKey.prototype.Public = function Public() { @@ -231170,7 +232460,7 @@ $packages["crypto/ed25519"] = (function() { if (!ok) { return false; } - return bytes.Equal($convertSliceType(priv, sliceType), $convertSliceType(xx, sliceType)); + return subtle.ConstantTimeCompare($convertSliceType(priv, sliceType), $convertSliceType(xx, sliceType)) === 1; }; $ptrType(PrivateKey).prototype.Equal = function(...$args) { return this.$get().Equal(...$args); }; PrivateKey.prototype.Seed = function Seed() { @@ -231180,7 +232470,7 @@ $packages["crypto/ed25519"] = (function() { }; $ptrType(PrivateKey).prototype.Seed = function(...$args) { return this.$get().Seed(...$args); }; PrivateKey.prototype.Sign = function Sign$1(rand$1, message, opts) { - var {$24r, _r, _r$1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, context, err, hash, l, l$1, message, ok, opts, opts$1, priv, rand$1, signature, signature$1, signature$2, $s, $r, $c} = $restore(this, {rand$1, message, opts}); + var {$24r, _r, _r$1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, context, err, hash, l, l$1, l$2, message, ok, opts, opts$1, priv, rand$1, signature, signature$1, signature$2, $s, $r, $c} = $restore(this, {rand$1, message, opts}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: signature = sliceType.nil; err = $ifaceNil; @@ -231193,24 +232483,24 @@ $packages["crypto/ed25519"] = (function() { ok = _tuple[1]; if (ok) { context = opts$1.Context; - } - l = context.length; - if (l > 255) { - _tmp = sliceType.nil; - _tmp$1 = errors.New("ed25519: bad Ed25519ph context length: " + strconv.Itoa(l)); - signature = _tmp; - err = _tmp$1; - $s = -1; return [signature, err]; } /* */ if ((hash === 7)) { $s = 3; continue; } /* */ if ((hash === 0) && !(context === "")) { $s = 4; continue; } /* */ if ((hash === 0)) { $s = 5; continue; } /* */ $s = 6; continue; /* if ((hash === 7)) { */ case 3: - l$1 = message.$length; - if (!((l$1 === 64))) { + l = message.$length; + if (!((l === 64))) { + _tmp = sliceType.nil; + _tmp$1 = errors.New("ed25519: bad Ed25519ph message hash length: " + strconv.Itoa(l)); + signature = _tmp; + err = _tmp$1; + $s = -1; return [signature, err]; + } + l$1 = context.length; + if (l$1 > 255) { _tmp$2 = sliceType.nil; - _tmp$3 = errors.New("ed25519: bad Ed25519ph message hash length: " + strconv.Itoa(l$1)); + _tmp$3 = errors.New("ed25519: bad Ed25519ph context length: " + strconv.Itoa(l$1)); signature = _tmp$2; err = _tmp$3; $s = -1; return [signature, err]; @@ -231223,31 +232513,39 @@ $packages["crypto/ed25519"] = (function() { err = _tmp$5; $s = -1; return [signature, err]; /* } else if ((hash === 0) && !(context === "")) { */ case 4: + l$2 = context.length; + if (l$2 > 255) { + _tmp$6 = sliceType.nil; + _tmp$7 = errors.New("ed25519: bad Ed25519ctx context length: " + strconv.Itoa(l$2)); + signature = _tmp$6; + err = _tmp$7; + $s = -1; return [signature, err]; + } signature$2 = $makeSlice(sliceType, 64); $r = sign(signature$2, $convertSliceType(priv, sliceType), message, "SigEd25519 no Ed25519 collisions\x00", context); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _tmp$6 = signature$2; - _tmp$7 = $ifaceNil; - signature = _tmp$6; - err = _tmp$7; - $s = -1; return [signature, err]; - /* } else if ((hash === 0)) { */ case 5: - _r$1 = Sign(priv, message); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tmp$8 = _r$1; + _tmp$8 = signature$2; _tmp$9 = $ifaceNil; signature = _tmp$8; err = _tmp$9; + $s = -1; return [signature, err]; + /* } else if ((hash === 0)) { */ case 5: + _r$1 = Sign(priv, message); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tmp$10 = _r$1; + _tmp$11 = $ifaceNil; + signature = _tmp$10; + err = _tmp$11; $24r = [signature, err]; $s = 11; case 11: return $24r; /* } else { */ case 6: - _tmp$10 = sliceType.nil; - _tmp$11 = errors.New("ed25519: expected opts.HashFunc() zero (unhashed message, for standard Ed25519) or SHA-512 (for Ed25519ph)"); - signature = _tmp$10; - err = _tmp$11; + _tmp$12 = sliceType.nil; + _tmp$13 = errors.New("ed25519: expected opts.HashFunc() zero (unhashed message, for standard Ed25519) or SHA-512 (for Ed25519ph)"); + signature = _tmp$12; + err = _tmp$13; $s = -1; return [signature, err]; /* } */ case 7: case 2: $s = -1; return [signature, err]; - /* */ } return; } var $f = {$blk: Sign$1, $c: true, $r, $24r, _r, _r$1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, context, err, hash, l, l$1, message, ok, opts, opts$1, priv, rand$1, signature, signature$1, signature$2, $s};return $f; + /* */ } return; } var $f = {$blk: Sign$1, $c: true, $r, $24r, _r, _r$1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, context, err, hash, l, l$1, l$2, message, ok, opts, opts$1, priv, rand$1, signature, signature$1, signature$2, $s};return $f; }; $ptrType(PrivateKey).prototype.Sign = function(...$args) { return this.$get().Sign(...$args); }; $ptrType(Options).prototype.HashFunc = function HashFunc() { @@ -231278,7 +232576,7 @@ $packages["crypto/ed25519"] = (function() { if (!($interfaceIsEqual(err, $ifaceNil))) { $panic(new $String("ed25519: internal error: setting scalar failed")); } - _r = (new edwards25519.Point.ptr(new $packages["crypto/internal/edwards25519/field"].Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new $packages["crypto/internal/edwards25519/field"].Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new $packages["crypto/internal/edwards25519/field"].Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new $packages["crypto/internal/edwards25519/field"].Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), arrayType$1.zero())).ScalarBaseMult(s); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = (new edwards25519.Point.ptr(arrayType$1.zero(), new $packages["crypto/internal/edwards25519/field"].Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new $packages["crypto/internal/edwards25519/field"].Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new $packages["crypto/internal/edwards25519/field"].Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new $packages["crypto/internal/edwards25519/field"].Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)))).ScalarBaseMult(s); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } A = _r; publicKey = A.Bytes(); $copySlice(privateKey, seed); @@ -231338,7 +232636,7 @@ $packages["crypto/ed25519"] = (function() { if (!($interfaceIsEqual(err, $ifaceNil))) { $panic(new $String("ed25519: internal error: setting scalar failed")); } - _r$6 = (new edwards25519.Point.ptr(new $packages["crypto/internal/edwards25519/field"].Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new $packages["crypto/internal/edwards25519/field"].Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new $packages["crypto/internal/edwards25519/field"].Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new $packages["crypto/internal/edwards25519/field"].Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), arrayType$1.zero())).ScalarBaseMult(r); /* */ $s = 9; case 9: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$6 = (new edwards25519.Point.ptr(arrayType$1.zero(), new $packages["crypto/internal/edwards25519/field"].Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new $packages["crypto/internal/edwards25519/field"].Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new $packages["crypto/internal/edwards25519/field"].Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new $packages["crypto/internal/edwards25519/field"].Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)))).ScalarBaseMult(r); /* */ $s = 9; case 9: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } R = _r$6; kh = sha512.New(); /* */ if (!(domPrefix === "")) { $s = 10; continue; } @@ -231391,7 +232689,7 @@ $packages["crypto/ed25519"] = (function() { if (!((sig.$length === 64)) || !(((((63 >= sig.$length ? ($throwRuntimeError("index out of range"), undefined) : sig.$array[sig.$offset + 63]) & 224) >>> 0) === 0))) { $s = -1; return false; } - _tuple = (new edwards25519.Point.ptr(new $packages["crypto/internal/edwards25519/field"].Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new $packages["crypto/internal/edwards25519/field"].Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new $packages["crypto/internal/edwards25519/field"].Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new $packages["crypto/internal/edwards25519/field"].Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), arrayType$1.zero())).SetBytes($convertSliceType(publicKey, sliceType)); + _tuple = (new edwards25519.Point.ptr(arrayType$1.zero(), new $packages["crypto/internal/edwards25519/field"].Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new $packages["crypto/internal/edwards25519/field"].Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new $packages["crypto/internal/edwards25519/field"].Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new $packages["crypto/internal/edwards25519/field"].Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)))).SetBytes($convertSliceType(publicKey, sliceType)); A = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { @@ -231429,8 +232727,8 @@ $packages["crypto/ed25519"] = (function() { if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return false; } - minusA = (new edwards25519.Point.ptr(new $packages["crypto/internal/edwards25519/field"].Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new $packages["crypto/internal/edwards25519/field"].Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new $packages["crypto/internal/edwards25519/field"].Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new $packages["crypto/internal/edwards25519/field"].Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), arrayType$1.zero())).Negate(A); - _r$7 = (new edwards25519.Point.ptr(new $packages["crypto/internal/edwards25519/field"].Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new $packages["crypto/internal/edwards25519/field"].Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new $packages["crypto/internal/edwards25519/field"].Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new $packages["crypto/internal/edwards25519/field"].Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), arrayType$1.zero())).VarTimeDoubleScalarBaseMult(k, minusA, S); /* */ $s = 10; case 10: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + minusA = (new edwards25519.Point.ptr(arrayType$1.zero(), new $packages["crypto/internal/edwards25519/field"].Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new $packages["crypto/internal/edwards25519/field"].Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new $packages["crypto/internal/edwards25519/field"].Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new $packages["crypto/internal/edwards25519/field"].Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)))).Negate(A); + _r$7 = (new edwards25519.Point.ptr(arrayType$1.zero(), new $packages["crypto/internal/edwards25519/field"].Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new $packages["crypto/internal/edwards25519/field"].Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new $packages["crypto/internal/edwards25519/field"].Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)), new $packages["crypto/internal/edwards25519/field"].Element.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)))).VarTimeDoubleScalarBaseMult(k, minusA, S); /* */ $s = 10; case 10: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } R = _r$7; $s = -1; return bytes.Equal($subslice(sig, 0, 32), R.Bytes()); /* */ } return; } var $f = {$blk: verify$1, $c: true, $r, A, R, S, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, _tuple$1, _tuple$2, context, domPrefix, err, hramDigest, k, kh, l, message, minusA, publicKey, sig, $s};return $f; @@ -231450,9 +232748,10 @@ $packages["crypto/ed25519"] = (function() { $r = edwards25519.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = rand.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = sha512.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = errors.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = io.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = strconv.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = subtle.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errors.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; @@ -231685,7 +232984,7 @@ $packages["crypto/hmac"] = (function() { return $pkg; })(); $packages["crypto/md5"] = (function() { - var $pkg = {}, $init, crypto, binary, errors, hash, bits, digest, sliceType, arrayType, arrayType$1, arrayType$2, ptrType, block, blockGeneric, init, consumeUint64, consumeUint32, New; + var $pkg = {}, $init, crypto, binary, errors, hash, bits, digest, sliceType, arrayType, arrayType$1, ptrType, arrayType$2, block, blockGeneric, init, consumeUint64, consumeUint32, New; crypto = $packages["crypto"]; binary = $packages["encoding/binary"]; errors = $packages["errors"]; @@ -231710,8 +233009,8 @@ $packages["crypto/md5"] = (function() { sliceType = $sliceType($Uint8); arrayType = $arrayType($Uint32, 4); arrayType$1 = $arrayType($Uint8, 64); - arrayType$2 = $arrayType($Uint8, 16); ptrType = $ptrType(digest); + arrayType$2 = $arrayType($Uint8, 16); block = function block$1(dig, p) { var dig, p; blockGeneric(dig, p); @@ -231952,7 +233251,7 @@ $packages["crypto/md5"] = (function() { $ptrType(digest).prototype.Sum = function Sum$1(in$1) { var d, d0, hash$1, in$1; d = this; - d0 = $clone(d, digest); + d0 = $clone((d === ptrType.nil && $throwNilPointerError(), d), digest); hash$1 = $clone(d0.checkSum(), arrayType$2); return $appendSlice(in$1, new sliceType(hash$1)); }; @@ -232114,7 +233413,7 @@ $packages["crypto/rc4"] = (function() { return $pkg; })(); $packages["crypto/rsa"] = (function() { - var $pkg = {}, $init, bytes, crypto, bigmod, boring, bbig, randutil, rand, subtle, binary, errors, hash, io, math, big, PublicKey, OAEPOptions, PrivateKey, PrecomputedValues, CRTValue, PSSOptions, PKCS1v15DecryptOptions, sliceType, ptrType, ptrType$1, ptrType$2, ptrType$3, ptrType$4, ptrType$5, sliceType$1, sliceType$2, ptrType$6, arrayType, ptrType$7, ptrType$8, arrayType$1, ptrType$9, bigOne, errPublicModulus, errPublicExponentSmall, errPublicExponentLarge, invalidSaltLenErr, hashPrefixes, checkPub, incCounter, mgf1XOR, encrypt, intToBytes, decrypt, decryptOAEP, emsaPSSEncode, emsaPSSVerify, signPSSWithSalt, SignPSS, VerifyPSS, EncryptPKCS1v15, DecryptPKCS1v15, DecryptPKCS1v15SessionKey, decryptPKCS1v15, nonZeroRandomBytes, SignPKCS1v15, VerifyPKCS1v15, pkcs1v15HashInfo, boringPublicKey, boringPrivateKey; + var $pkg = {}, $init, bytes, crypto, bigmod, boring, bbig, randutil, rand, subtle, errors, hash, io, math, big, PublicKey, OAEPOptions, PrivateKey, PrecomputedValues, CRTValue, PSSOptions, PKCS1v15DecryptOptions, sliceType, ptrType, ptrType$1, ptrType$2, ptrType$3, ptrType$4, ptrType$5, sliceType$1, sliceType$2, ptrType$6, arrayType, ptrType$7, ptrType$8, ptrType$9, ptrType$10, arrayType$1, ptrType$11, bigOne, errPublicModulus, errPublicExponentSmall, errPublicExponentLarge, invalidSaltLenErr, hashPrefixes, checkPub, bigIntEqual, incCounter, mgf1XOR, encrypt, decrypt, decryptOAEP, emsaPSSEncode, emsaPSSVerify, signPSSWithSalt, SignPSS, VerifyPSS, EncryptPKCS1v15, DecryptPKCS1v15, DecryptPKCS1v15SessionKey, decryptPKCS1v15, nonZeroRandomBytes, SignPKCS1v15, VerifyPKCS1v15, pkcs1v15HashInfo, boringPublicKey, boringPrivateKey; bytes = $packages["bytes"]; crypto = $packages["crypto"]; bigmod = $packages["crypto/internal/bigmod"]; @@ -232123,7 +233422,6 @@ $packages["crypto/rsa"] = (function() { randutil = $packages["crypto/internal/randutil"]; rand = $packages["crypto/rand"]; subtle = $packages["crypto/subtle"]; - binary = $packages["encoding/binary"]; errors = $packages["errors"]; hash = $packages["hash"]; io = $packages["io"]; @@ -232234,10 +233532,12 @@ $packages["crypto/rsa"] = (function() { sliceType$2 = $sliceType(CRTValue); ptrType$6 = $ptrType(bigmod.Modulus); arrayType = $arrayType($Uint8, 4); - ptrType$7 = $ptrType(boring.PublicKeyRSA); - ptrType$8 = $ptrType(bigmod.Nat); + ptrType$7 = $ptrType(arrayType); + ptrType$8 = $ptrType(boring.PublicKeyRSA); + ptrType$9 = $ptrType(CRTValue); + ptrType$10 = $ptrType(bigmod.Nat); arrayType$1 = $arrayType($Uint8, 8); - ptrType$9 = $ptrType(boring.PrivateKeyRSA); + ptrType$11 = $ptrType(boring.PrivateKeyRSA); $ptrType(PublicKey).prototype.Size = function Size() { var _q, pub; pub = this; @@ -232252,7 +233552,7 @@ $packages["crypto/rsa"] = (function() { if (!ok) { return false; } - return (pub.N.Cmp(xx.N) === 0) && (pub.E === xx.E); + return bigIntEqual(pub.N, xx.N) && (pub.E === xx.E); }; checkPub = function checkPub$1(pub) { var pub; @@ -232281,7 +233581,7 @@ $packages["crypto/rsa"] = (function() { if (!ok) { return false; } - if (!priv.PublicKey.Equal(xx.PublicKey) || !((priv.D.Cmp(xx.D) === 0))) { + if (!priv.PublicKey.Equal(xx.PublicKey) || !bigIntEqual(priv.D, xx.D)) { return false; } if (!((priv.Primes.$length === xx.Primes.$length))) { @@ -232292,13 +233592,17 @@ $packages["crypto/rsa"] = (function() { while (true) { if (!(_i < _ref.$length)) { break; } i = _i; - if (!(((x$1 = priv.Primes, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])).Cmp((x$2 = xx.Primes, ((i < 0 || i >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i]))) === 0))) { + if (!bigIntEqual((x$1 = priv.Primes, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])), (x$2 = xx.Primes, ((i < 0 || i >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i])))) { return false; } _i++; } return true; }; + bigIntEqual = function bigIntEqual$1(a, b) { + var a, b; + return subtle.ConstantTimeCompare(a.Bytes(), b.Bytes()) === 1; + }; $ptrType(PrivateKey).prototype.Sign = function Sign(rand$1, digest, opts) { var {$24r, $24r$1, _arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$2, _tuple, digest, ok, opts, priv, pssOpts, rand$1, $s, $r, $c} = $restore(this, {rand$1, digest, opts}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: @@ -232472,19 +233776,19 @@ $packages["crypto/rsa"] = (function() { }; incCounter = function incCounter$1(c) { var c; - c[3] = (c[3] + (1) << 24 >>> 24); - if (!((c[3] === 0))) { + (c === ptrType$7.nil && $throwNilPointerError(), c)[3] = ((c === ptrType$7.nil && $throwNilPointerError(), c)[3] + (1) << 24 >>> 24); + if (!(((c === ptrType$7.nil && $throwNilPointerError(), c)[3] === 0))) { return; } - c[2] = (c[2] + (1) << 24 >>> 24); - if (!((c[2] === 0))) { + (c === ptrType$7.nil && $throwNilPointerError(), c)[2] = ((c === ptrType$7.nil && $throwNilPointerError(), c)[2] + (1) << 24 >>> 24); + if (!(((c === ptrType$7.nil && $throwNilPointerError(), c)[2] === 0))) { return; } - c[1] = (c[1] + (1) << 24 >>> 24); - if (!((c[1] === 0))) { + (c === ptrType$7.nil && $throwNilPointerError(), c)[1] = ((c === ptrType$7.nil && $throwNilPointerError(), c)[1] + (1) << 24 >>> 24); + if (!(((c === ptrType$7.nil && $throwNilPointerError(), c)[1] === 0))) { return; } - c[0] = (c[0] + (1) << 24 >>> 24); + (c === ptrType$7.nil && $throwNilPointerError(), c)[0] = ((c === ptrType$7.nil && $throwNilPointerError(), c)[0] + (1) << 24 >>> 24); }; mgf1XOR = function mgf1XOR$1(out, hash$1, seed) { var {_r, _r$1, _r$2, counter, digest, done, hash$1, i, out, seed, $s, $r, $c} = $restore(this, {out, hash$1, seed}); @@ -232516,36 +233820,52 @@ $packages["crypto/rsa"] = (function() { /* */ } return; } var $f = {$blk: mgf1XOR$1, $c: true, $r, _r, _r$1, _r$2, counter, digest, done, hash$1, i, out, seed, $s};return $f; }; encrypt = function encrypt$1(pub, plaintext) { - var N, _tuple, e, err, m, plaintext, pub; + var N, _tuple, _tuple$1, e, err, m, plaintext, pub; boring.Unreachable(); - N = bigmod.NewModulusFromBig(pub.N); - _tuple = bigmod.NewNat().SetBytes(plaintext, N); - m = _tuple[0]; + _tuple = bigmod.NewModulusFromBig(pub.N); + N = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { return [sliceType.nil, err]; } - e = intToBytes(pub.E); - return [bigmod.NewNat().Exp(m, e, N).Bytes(N), $ifaceNil]; - }; - intToBytes = function intToBytes$1(i) { - var b, i; - b = $makeSlice(sliceType, 8); - $clone(binary.BigEndian, binary.bigEndian).PutUint64(b, (new $Uint64(0, i))); - while (true) { - if (!(b.$length > 1 && ((0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]) === 0))) { break; } - b = $subslice(b, 1); + _tuple$1 = bigmod.NewNat().SetBytes(plaintext, N); + m = _tuple$1[0]; + err = _tuple$1[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + return [sliceType.nil, err]; } - return b; + e = ((pub.E >>> 0)); + return [bigmod.NewNat().ExpShort(m, e, N).Bytes(N), $ifaceNil]; }; $ptrType(PrivateKey).prototype.Precompute = function Precompute() { - var {_r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, i, prime, priv, r, values, x, x$1, x$10, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {}); + var {_r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, err, i, prime, priv, r, values, x, x$1, x$10, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: priv = this; if (priv.Precomputed.n === ptrType$6.nil && (priv.Primes.$length === 2)) { - priv.Precomputed.n = bigmod.NewModulusFromBig(priv.PublicKey.N); - priv.Precomputed.p = bigmod.NewModulusFromBig((x = priv.Primes, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))); - priv.Precomputed.q = bigmod.NewModulusFromBig((x$1 = priv.Primes, (1 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 1]))); + err = $ifaceNil; + _tuple = bigmod.NewModulusFromBig(priv.PublicKey.N); + priv.Precomputed.n = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return; + } + _tuple$1 = bigmod.NewModulusFromBig((x = priv.Primes, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))); + priv.Precomputed.p = _tuple$1[0]; + err = _tuple$1[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + priv.Precomputed.n = ptrType$6.nil; + $s = -1; return; + } + _tuple$2 = bigmod.NewModulusFromBig((x$1 = priv.Primes, (1 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 1]))); + priv.Precomputed.q = _tuple$2[0]; + err = _tuple$2[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp = ptrType$6.nil; + _tmp$1 = ptrType$6.nil; + priv.Precomputed.n = _tmp; + priv.Precomputed.p = _tmp$1; + $s = -1; return; + } } if (!(priv.Precomputed.Dp === ptrType$1.nil)) { $s = -1; return; @@ -232567,7 +233887,7 @@ $packages["crypto/rsa"] = (function() { /* while (true) { */ case 7: /* if (!(i < priv.Primes.$length)) { break; } */ if(!(i < priv.Primes.$length)) { $s = 8; continue; } prime = (x$8 = priv.Primes, ((i < 0 || i >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + i])); - values = (x$9 = priv.Precomputed.CRTValues, x$10 = i - 2 >> 0, ((x$10 < 0 || x$10 >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + x$10])); + values = (x$9 = priv.Precomputed.CRTValues, x$10 = i - 2 >> 0, ((x$10 < 0 || x$10 >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$9.$array, x$9.$offset + x$10, ptrType$9))); _r$6 = new big.Int.ptr(false, big.nat.nil).Sub(prime, bigOne); /* */ $s = 9; case 9: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } values.Exp = _r$6; _r$7 = values.Exp.Mod(priv.D, values.Exp); /* */ $s = 10; case 10: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } @@ -232581,28 +233901,33 @@ $packages["crypto/rsa"] = (function() { $s = 7; continue; case 8: $s = -1; return; - /* */ } return; } var $f = {$blk: Precompute, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, i, prime, priv, r, values, x, x$1, x$10, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; + /* */ } return; } var $f = {$blk: Precompute, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, err, i, prime, priv, r, values, x, x$1, x$10, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; }; decrypt = function decrypt$1(priv, ciphertext, check) { - var N, P, Q, Qinv, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, _tuple$2, c, c1, check, ciphertext, err, err$1, m, m2, priv, t0; + var N, P, Q, Qinv, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, _tuple$2, _tuple$3, c, c1, check, ciphertext, err, err$1, m, m2, priv, t0; if (priv.Primes.$length <= 2) { boring.Unreachable(); } err = $ifaceNil; - _tmp = ptrType$8.nil; - _tmp$1 = ptrType$8.nil; + _tmp = ptrType$10.nil; + _tmp$1 = ptrType$10.nil; m = _tmp; c = _tmp$1; N = ptrType$6.nil; t0 = bigmod.NewNat(); if (priv.Precomputed.n === ptrType$6.nil) { - N = bigmod.NewModulusFromBig(priv.PublicKey.N); - _tuple = bigmod.NewNat().SetBytes(ciphertext, N); - c = _tuple[0]; + _tuple = bigmod.NewModulusFromBig(priv.PublicKey.N); + N = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { return [sliceType.nil, $pkg.ErrDecryption]; } + _tuple$1 = bigmod.NewNat().SetBytes(ciphertext, N); + c = _tuple$1[0]; + err = _tuple$1[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + return [sliceType.nil, $pkg.ErrDecryption]; + } m = bigmod.NewNat().Exp(c, priv.D.Bytes(), N); } else { N = priv.Precomputed.n; @@ -232610,15 +233935,15 @@ $packages["crypto/rsa"] = (function() { _tmp$3 = priv.Precomputed.q; P = _tmp$2; Q = _tmp$3; - _tuple$1 = bigmod.NewNat().SetBytes(priv.Precomputed.Qinv.Bytes(), P); - Qinv = _tuple$1[0]; - err$1 = _tuple$1[1]; + _tuple$2 = bigmod.NewNat().SetBytes(priv.Precomputed.Qinv.Bytes(), P); + Qinv = _tuple$2[0]; + err$1 = _tuple$2[1]; if (!($interfaceIsEqual(err$1, $ifaceNil))) { return [sliceType.nil, $pkg.ErrDecryption]; } - _tuple$2 = bigmod.NewNat().SetBytes(ciphertext, N); - c = _tuple$2[0]; - err$1 = _tuple$2[1]; + _tuple$3 = bigmod.NewNat().SetBytes(ciphertext, N); + c = _tuple$3[0]; + err$1 = _tuple$3[1]; if (!($interfaceIsEqual(err$1, $ifaceNil))) { return [sliceType.nil, $pkg.ErrDecryption]; } @@ -232630,7 +233955,7 @@ $packages["crypto/rsa"] = (function() { m.Add(m2.ExpandFor(N), N); } if (check) { - c1 = bigmod.NewNat().Exp(m, intToBytes(priv.PublicKey.E), N); + c1 = bigmod.NewNat().ExpShort(m, ((priv.PublicKey.E >>> 0)), N); if (!((c1.Equal(c) === 1))) { return [sliceType.nil, $pkg.ErrDecryption]; } @@ -232997,7 +234322,7 @@ $packages["crypto/rsa"] = (function() { (x = (em.$length - msg.$length >> 0) - 1 >> 0, ((x < 0 || x >= em.$length) ? ($throwRuntimeError("index out of range"), undefined) : em.$array[em.$offset + x] = 0)); $copySlice(mm, msg); if (false) { - bkey$1 = ptrType$7.nil; + bkey$1 = ptrType$8.nil; _tuple$1 = boringPublicKey(pub); bkey$1 = _tuple$1[0]; err$2 = _tuple$1[1]; @@ -233083,7 +234408,7 @@ $packages["crypto/rsa"] = (function() { return [valid, em, index, err]; } if (false) { - bkey = ptrType$9.nil; + bkey = ptrType$11.nil; _tuple = boringPrivateKey(priv); bkey = _tuple[0]; err = _tuple[1]; @@ -233315,12 +234640,11 @@ $packages["crypto/rsa"] = (function() { $r = randutil.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = rand.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = subtle.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = binary.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = errors.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = hash.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = io.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = math.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = big.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errors.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = hash.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = math.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = big.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } bigOne = big.NewInt(new $Int64(0, 1)); errPublicModulus = errors.New("crypto/rsa: missing public modulus"); errPublicExponentSmall = errors.New("crypto/rsa: public exponent too small"); @@ -233336,7 +234660,7 @@ $packages["crypto/rsa"] = (function() { return $pkg; })(); $packages["crypto/sha1"] = (function() { - var $pkg = {}, $init, crypto, binary, errors, hash, bits, digest, arrayType, sliceType, arrayType$1, arrayType$2, arrayType$3, arrayType$4, arrayType$5, ptrType, block, blockGeneric, init, consumeUint64, consumeUint32, New, boringNewSHA1, boringUnreachable; + var $pkg = {}, $init, crypto, binary, errors, hash, bits, digest, arrayType, sliceType, arrayType$1, arrayType$2, ptrType, arrayType$3, arrayType$4, arrayType$5, block, blockGeneric, init, consumeUint64, consumeUint32, New, boringNewSHA1, boringUnreachable; crypto = $packages["crypto"]; binary = $packages["encoding/binary"]; errors = $packages["errors"]; @@ -233362,10 +234686,10 @@ $packages["crypto/sha1"] = (function() { sliceType = $sliceType($Uint8); arrayType$1 = $arrayType($Uint32, 5); arrayType$2 = $arrayType($Uint8, 64); + ptrType = $ptrType(digest); arrayType$3 = $arrayType($Uint8, 20); arrayType$4 = $arrayType($Uint8, 72); arrayType$5 = $arrayType($Uint8, 8); - ptrType = $ptrType(digest); block = function block$1(dig, p) { var dig, p; blockGeneric(dig, p); @@ -233422,7 +234746,7 @@ $packages["crypto/sha1"] = (function() { while (true) { if (!(i$1 < 20)) { break; } tmp = ((((((x$4 = ((i$1 - 3 >> 0)) & 15, ((x$4 < 0 || x$4 >= w.length) ? ($throwRuntimeError("index out of range"), undefined) : w[x$4])) ^ (x$5 = ((i$1 - 8 >> 0)) & 15, ((x$5 < 0 || x$5 >= w.length) ? ($throwRuntimeError("index out of range"), undefined) : w[x$5]))) >>> 0) ^ (x$6 = ((i$1 - 14 >> 0)) & 15, ((x$6 < 0 || x$6 >= w.length) ? ($throwRuntimeError("index out of range"), undefined) : w[x$6]))) >>> 0) ^ (x$7 = (i$1) & 15, ((x$7 < 0 || x$7 >= w.length) ? ($throwRuntimeError("index out of range"), undefined) : w[x$7]))) >>> 0; - (x$8 = i$1 & 15, ((x$8 < 0 || x$8 >= w.length) ? ($throwRuntimeError("index out of range"), undefined) : w[x$8] = (((tmp << 1 >>> 0) | (tmp >>> 31 >>> 0)) >>> 0))); + (x$8 = i$1 & 15, ((x$8 < 0 || x$8 >= w.length) ? ($throwRuntimeError("index out of range"), undefined) : w[x$8] = bits.RotateLeft32(tmp, 1))); f$1 = (((b & c) >>> 0) | ((((~b >>> 0)) & d) >>> 0)) >>> 0; t$1 = (((bits.RotateLeft32(a, 5) + f$1 >>> 0) + e >>> 0) + (x$9 = i$1 & 15, ((x$9 < 0 || x$9 >= w.length) ? ($throwRuntimeError("index out of range"), undefined) : w[x$9])) >>> 0) + 1518500249 >>> 0; _tmp$15 = t$1; @@ -233440,7 +234764,7 @@ $packages["crypto/sha1"] = (function() { while (true) { if (!(i$1 < 40)) { break; } tmp$1 = ((((((x$10 = ((i$1 - 3 >> 0)) & 15, ((x$10 < 0 || x$10 >= w.length) ? ($throwRuntimeError("index out of range"), undefined) : w[x$10])) ^ (x$11 = ((i$1 - 8 >> 0)) & 15, ((x$11 < 0 || x$11 >= w.length) ? ($throwRuntimeError("index out of range"), undefined) : w[x$11]))) >>> 0) ^ (x$12 = ((i$1 - 14 >> 0)) & 15, ((x$12 < 0 || x$12 >= w.length) ? ($throwRuntimeError("index out of range"), undefined) : w[x$12]))) >>> 0) ^ (x$13 = (i$1) & 15, ((x$13 < 0 || x$13 >= w.length) ? ($throwRuntimeError("index out of range"), undefined) : w[x$13]))) >>> 0; - (x$14 = i$1 & 15, ((x$14 < 0 || x$14 >= w.length) ? ($throwRuntimeError("index out of range"), undefined) : w[x$14] = (((tmp$1 << 1 >>> 0) | (tmp$1 >>> 31 >>> 0)) >>> 0))); + (x$14 = i$1 & 15, ((x$14 < 0 || x$14 >= w.length) ? ($throwRuntimeError("index out of range"), undefined) : w[x$14] = bits.RotateLeft32(tmp$1, 1))); f$2 = (((b ^ c) >>> 0) ^ d) >>> 0; t$2 = (((bits.RotateLeft32(a, 5) + f$2 >>> 0) + e >>> 0) + (x$15 = i$1 & 15, ((x$15 < 0 || x$15 >= w.length) ? ($throwRuntimeError("index out of range"), undefined) : w[x$15])) >>> 0) + 1859775393 >>> 0; _tmp$20 = t$2; @@ -233458,7 +234782,7 @@ $packages["crypto/sha1"] = (function() { while (true) { if (!(i$1 < 60)) { break; } tmp$2 = ((((((x$16 = ((i$1 - 3 >> 0)) & 15, ((x$16 < 0 || x$16 >= w.length) ? ($throwRuntimeError("index out of range"), undefined) : w[x$16])) ^ (x$17 = ((i$1 - 8 >> 0)) & 15, ((x$17 < 0 || x$17 >= w.length) ? ($throwRuntimeError("index out of range"), undefined) : w[x$17]))) >>> 0) ^ (x$18 = ((i$1 - 14 >> 0)) & 15, ((x$18 < 0 || x$18 >= w.length) ? ($throwRuntimeError("index out of range"), undefined) : w[x$18]))) >>> 0) ^ (x$19 = (i$1) & 15, ((x$19 < 0 || x$19 >= w.length) ? ($throwRuntimeError("index out of range"), undefined) : w[x$19]))) >>> 0; - (x$20 = i$1 & 15, ((x$20 < 0 || x$20 >= w.length) ? ($throwRuntimeError("index out of range"), undefined) : w[x$20] = (((tmp$2 << 1 >>> 0) | (tmp$2 >>> 31 >>> 0)) >>> 0))); + (x$20 = i$1 & 15, ((x$20 < 0 || x$20 >= w.length) ? ($throwRuntimeError("index out of range"), undefined) : w[x$20] = bits.RotateLeft32(tmp$2, 1))); f$3 = (((((((b | c) >>> 0)) & d) >>> 0)) | (((b & c) >>> 0))) >>> 0; t$3 = (((bits.RotateLeft32(a, 5) + f$3 >>> 0) + e >>> 0) + (x$21 = i$1 & 15, ((x$21 < 0 || x$21 >= w.length) ? ($throwRuntimeError("index out of range"), undefined) : w[x$21])) >>> 0) + 2400959708 >>> 0; _tmp$25 = t$3; @@ -233476,7 +234800,7 @@ $packages["crypto/sha1"] = (function() { while (true) { if (!(i$1 < 80)) { break; } tmp$3 = ((((((x$22 = ((i$1 - 3 >> 0)) & 15, ((x$22 < 0 || x$22 >= w.length) ? ($throwRuntimeError("index out of range"), undefined) : w[x$22])) ^ (x$23 = ((i$1 - 8 >> 0)) & 15, ((x$23 < 0 || x$23 >= w.length) ? ($throwRuntimeError("index out of range"), undefined) : w[x$23]))) >>> 0) ^ (x$24 = ((i$1 - 14 >> 0)) & 15, ((x$24 < 0 || x$24 >= w.length) ? ($throwRuntimeError("index out of range"), undefined) : w[x$24]))) >>> 0) ^ (x$25 = (i$1) & 15, ((x$25 < 0 || x$25 >= w.length) ? ($throwRuntimeError("index out of range"), undefined) : w[x$25]))) >>> 0; - (x$26 = i$1 & 15, ((x$26 < 0 || x$26 >= w.length) ? ($throwRuntimeError("index out of range"), undefined) : w[x$26] = (((tmp$3 << 1 >>> 0) | (tmp$3 >>> 31 >>> 0)) >>> 0))); + (x$26 = i$1 & 15, ((x$26 < 0 || x$26 >= w.length) ? ($throwRuntimeError("index out of range"), undefined) : w[x$26] = bits.RotateLeft32(tmp$3, 1))); f$4 = (((b ^ c) >>> 0) ^ d) >>> 0; t$4 = (((bits.RotateLeft32(a, 5) + f$4 >>> 0) + e >>> 0) + (x$27 = i$1 & 15, ((x$27 < 0 || x$27 >= w.length) ? ($throwRuntimeError("index out of range"), undefined) : w[x$27])) >>> 0) + 3395469782 >>> 0; _tmp$30 = t$4; @@ -233633,7 +234957,7 @@ $packages["crypto/sha1"] = (function() { var d, d0, hash$1, in$1; d = this; boringUnreachable(); - d0 = $clone(d, digest); + d0 = $clone((d === ptrType.nil && $throwNilPointerError(), d), digest); hash$1 = $clone(d0.checkSum(), arrayType$3); return $appendSlice(in$1, new sliceType(hash$1)); }; @@ -233667,7 +234991,7 @@ $packages["crypto/sha1"] = (function() { $ptrType(digest).prototype.ConstantTimeSum = function ConstantTimeSum(in$1) { var d, d0, hash$1, in$1; d = this; - d0 = $clone(d, digest); + d0 = $clone((d === ptrType.nil && $throwNilPointerError(), d), digest); hash$1 = $clone(d0.constSum(), arrayType$3); return $appendSlice(in$1, new sliceType(hash$1)); }; @@ -233764,7 +235088,7 @@ $packages["crypto/sha1"] = (function() { return $pkg; })(); $packages["crypto/sha256"] = (function() { - var $pkg = {}, $init, crypto, boring, binary, errors, hash, bits, digest, sliceType, arrayType, sliceType$1, arrayType$1, arrayType$2, arrayType$3, arrayType$4, arrayType$5, ptrType, ptrType$1, _K, block, blockGeneric, init, consumeUint64, consumeUint32, New, New224, Sum224; + var $pkg = {}, $init, crypto, boring, binary, errors, hash, bits, digest, sliceType, arrayType, sliceType$1, arrayType$1, arrayType$2, ptrType, arrayType$3, arrayType$4, arrayType$5, ptrType$1, _K, block, blockGeneric, init, consumeUint64, consumeUint32, New, New224, Sum224; crypto = $packages["crypto"]; boring = $packages["crypto/internal/boring"]; binary = $packages["encoding/binary"]; @@ -233794,11 +235118,11 @@ $packages["crypto/sha256"] = (function() { sliceType$1 = $sliceType($Uint8); arrayType$1 = $arrayType($Uint32, 8); arrayType$2 = $arrayType($Uint8, 64); + ptrType = $ptrType(digest); arrayType$3 = $arrayType($Uint8, 32); arrayType$4 = $arrayType($Uint8, 72); arrayType$5 = $arrayType($Uint8, 28); - ptrType = $ptrType(arrayType$5); - ptrType$1 = $ptrType(digest); + ptrType$1 = $ptrType(arrayType$5); block = function block$1(dig, p) { var dig, p; blockGeneric(dig, p); @@ -234068,7 +235392,7 @@ $packages["crypto/sha256"] = (function() { var d, d0, hash$1, in$1; d = this; boring.Unreachable(); - d0 = $clone(d, digest); + d0 = $clone((d === ptrType.nil && $throwNilPointerError(), d), digest); hash$1 = $clone(d0.checkSum(), arrayType$3); if (d0.is224) { return $appendSlice(in$1, $subslice(new sliceType$1(hash$1), 0, 28)); @@ -234117,11 +235441,11 @@ $packages["crypto/sha256"] = (function() { d.Reset(); d.Write(data); sum = $clone(d.checkSum(), arrayType$3); - ap = ($sliceToGoArray(new sliceType$1(sum), ptrType)); - return ap; + ap = ($sliceToGoArray(new sliceType$1(sum), ptrType$1)); + return (ap === ptrType$1.nil && $throwNilPointerError(), ap); }; $pkg.Sum224 = Sum224; - ptrType$1.methods = [{prop: "MarshalBinary", name: "MarshalBinary", pkg: "", typ: $funcType([], [sliceType$1, $error], false)}, {prop: "UnmarshalBinary", name: "UnmarshalBinary", pkg: "", typ: $funcType([sliceType$1], [$error], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "BlockSize", name: "BlockSize", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "Sum", name: "Sum", pkg: "", typ: $funcType([sliceType$1], [sliceType$1], false)}, {prop: "checkSum", name: "checkSum", pkg: "crypto/sha256", typ: $funcType([], [arrayType$3], false)}]; + ptrType.methods = [{prop: "MarshalBinary", name: "MarshalBinary", pkg: "", typ: $funcType([], [sliceType$1, $error], false)}, {prop: "UnmarshalBinary", name: "UnmarshalBinary", pkg: "", typ: $funcType([sliceType$1], [$error], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "BlockSize", name: "BlockSize", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "Sum", name: "Sum", pkg: "", typ: $funcType([sliceType$1], [sliceType$1], false)}, {prop: "checkSum", name: "checkSum", pkg: "crypto/sha256", typ: $funcType([], [arrayType$3], false)}]; digest.init("crypto/sha256", [{prop: "h", name: "h", embedded: false, exported: false, typ: arrayType$1, tag: ""}, {prop: "x", name: "x", embedded: false, exported: false, typ: arrayType$2, tag: ""}, {prop: "nx", name: "nx", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "len", name: "len", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "is224", name: "is224", embedded: false, exported: false, typ: $Bool, tag: ""}]); }; $init = function() { @@ -235065,7 +236389,7 @@ $packages["internal/singleflight"] = (function() { return $pkg; })(); $packages["net/netip"] = (function() { - var $pkg = {}, $init, errors, bytealg, itoa, math, bits, strconv, uint128, parseAddrError, AddrPort, Prefix, Addr, ptrType, arrayType, arrayType$1, sliceType, arrayType$2, ptrType$1, ptrType$2, ptrType$3, ptrType$4, z0, z4, z6noz, mask6, IPv6Unspecified, IPv4Unspecified, AddrFrom4, AddrFrom16, ParseAddr, parseIPv4, parseIPv6, AddrFromSlice, appendDecimal, appendHex, appendHexPad, AddrPortFrom, splitAddrPort, ParseAddrPort, joinHostPort, PrefixFrom, ParsePrefix, stringsLastIndexByte, beUint64, bePutUint64, bePutUint32, leUint16, lePutUint16; + var $pkg = {}, $init, errors, bytealg, itoa, math, bits, strconv, uint128, parseAddrError, AddrPort, Prefix, Addr, ptrType, ptrType$1, arrayType, arrayType$1, sliceType, ptrType$2, ptrType$3, ptrType$4, arrayType$2, z0, z4, z6noz, mask6, IPv6Unspecified, IPv4Unspecified, AddrFrom4, AddrFrom16, ParseAddr, parseIPv4, parseIPv6, AddrFromSlice, appendDecimal, appendHex, appendHexPad, AddrPortFrom, splitAddrPort, ParseAddrPort, joinHostPort, PrefixFrom, ParsePrefix, stringsLastIndexByte, beUint64, bePutUint64, bePutUint32, leUint16, lePutUint16; errors = $packages["errors"]; bytealg = $packages["internal/bytealg"]; itoa = $packages["internal/itoa"]; @@ -235104,15 +236428,15 @@ $packages["net/netip"] = (function() { this.ip = ip_; this.port = port_; }); - Prefix = $newType(0, $kindStruct, "netip.Prefix", true, "net/netip", true, function(ip_, bits_) { + Prefix = $newType(0, $kindStruct, "netip.Prefix", true, "net/netip", true, function(ip_, bitsPlusOne_) { this.$val = this; if (arguments.length === 0) { this.ip = new Addr.ptr(new uint128.ptr(new $Uint64(0, 0), new $Uint64(0, 0)), ""); - this.bits = 0; + this.bitsPlusOne = 0; return; } this.ip = ip_; - this.bits = bits_; + this.bitsPlusOne = bitsPlusOne_; }); Addr = $newType(0, $kindStruct, "netip.Addr", true, "net/netip", true, function(addr_, z_) { this.$val = this; @@ -235131,14 +236455,14 @@ $packages["net/netip"] = (function() { $pkg.Addr = Addr; $pkg.$finishSetup = function() { ptrType = $ptrType($Uint64); + ptrType$1 = $ptrType(uint128); arrayType = $arrayType($Uint8, 16); arrayType$1 = $arrayType($Uint8, 4); sliceType = $sliceType($Uint8); + ptrType$2 = $ptrType(Addr); + ptrType$3 = $ptrType(AddrPort); + ptrType$4 = $ptrType(Prefix); arrayType$2 = $arrayType(ptrType, 2); - ptrType$1 = $ptrType(uint128); - ptrType$2 = $ptrType(AddrPort); - ptrType$3 = $ptrType(Prefix); - ptrType$4 = $ptrType(Addr); mask6 = function mask6$1(n) { var n, x; return new uint128.ptr((x = $shiftRightUint64(new $Uint64(4294967295, 4294967295), n), new $Uint64(~x.$high, ~x.$low >>> 0)), $shiftLeft64(new $Uint64(4294967295, 4294967295), ((128 - n >> 0)))); @@ -235182,7 +236506,7 @@ $packages["net/netip"] = (function() { $ptrType(uint128).prototype.halves = function halves() { var u; u = this; - return $toNativeArray($kindPtr, [(u.$ptr_hi || (u.$ptr_hi = new ptrType(function() { return this.$target.hi; }, function($v) { this.$target.hi = $v; }, u))), (u.$ptr_lo || (u.$ptr_lo = new ptrType(function() { return this.$target.lo; }, function($v) { this.$target.lo = $v; }, u)))]); + return $toNativeArray($kindPtr, [(u === ptrType$1.nil && $throwNilPointerError(), (u.$ptr_hi || (u.$ptr_hi = new ptrType(function() { return this.$target.hi; }, function($v) { this.$target.hi = $v; }, u)))), (u === ptrType$1.nil && $throwNilPointerError(), (u.$ptr_lo || (u.$ptr_lo = new ptrType(function() { return this.$target.lo; }, function($v) { this.$target.lo = $v; }, u))))]); }; IPv6Unspecified = function IPv6Unspecified$1() { return new Addr.ptr(new uint128.ptr(new $Uint64(0, 0), new $Uint64(0, 0)), z6noz); @@ -235615,6 +236939,9 @@ $packages["net/netip"] = (function() { $ptrType(Addr).prototype.IsLinkLocalUnicast = function IsLinkLocalUnicast() { var ip; ip = this; + if ($clone(ip, Addr).Is4In6()) { + Addr.copy(ip, $clone(ip, Addr).Unmap()); + } if ($clone(ip, Addr).Is4()) { return ($clone(ip, Addr).v4(0) === 169) && ($clone(ip, Addr).v4(1) === 254); } @@ -235627,6 +236954,9 @@ $packages["net/netip"] = (function() { $ptrType(Addr).prototype.IsLoopback = function IsLoopback() { var ip, x, x$1; ip = this; + if ($clone(ip, Addr).Is4In6()) { + Addr.copy(ip, $clone(ip, Addr).Unmap()); + } if ($clone(ip, Addr).Is4()) { return $clone(ip, Addr).v4(0) === 127; } @@ -235639,6 +236969,9 @@ $packages["net/netip"] = (function() { $ptrType(Addr).prototype.IsMulticast = function IsMulticast() { var ip, x; ip = this; + if ($clone(ip, Addr).Is4In6()) { + Addr.copy(ip, $clone(ip, Addr).Unmap()); + } if ($clone(ip, Addr).Is4()) { return (($clone(ip, Addr).v4(0) & 240) >>> 0) === 224; } @@ -235651,7 +236984,7 @@ $packages["net/netip"] = (function() { $ptrType(Addr).prototype.IsInterfaceLocalMulticast = function IsInterfaceLocalMulticast() { var ip; ip = this; - if ($clone(ip, Addr).Is6()) { + if ($clone(ip, Addr).Is6() && !$clone(ip, Addr).Is4In6()) { return (($clone(ip, Addr).v6u16(0) & 65295) >>> 0) === 65281; } return false; @@ -235660,6 +236993,9 @@ $packages["net/netip"] = (function() { $ptrType(Addr).prototype.IsLinkLocalMulticast = function IsLinkLocalMulticast() { var ip; ip = this; + if ($clone(ip, Addr).Is4In6()) { + Addr.copy(ip, $clone(ip, Addr).Unmap()); + } if ($clone(ip, Addr).Is4()) { return ($clone(ip, Addr).v4(0) === 224) && ($clone(ip, Addr).v4(1) === 0) && ($clone(ip, Addr).v4(2) === 0); } @@ -235675,6 +237011,9 @@ $packages["net/netip"] = (function() { if (ip.z === z0) { return false; } + if ($clone(ip, Addr).Is4In6()) { + Addr.copy(ip, $clone(ip, Addr).Unmap()); + } if ($clone(ip, Addr).Is4() && ($equal(ip, IPv4Unspecified(), Addr) || $equal(ip, AddrFrom4($clone($toNativeArray($kindUint8, [255, 255, 255, 255]), arrayType$1)), Addr))) { return false; } @@ -235684,6 +237023,9 @@ $packages["net/netip"] = (function() { $ptrType(Addr).prototype.IsPrivate = function IsPrivate() { var ip; ip = this; + if ($clone(ip, Addr).Is4In6()) { + Addr.copy(ip, $clone(ip, Addr).Unmap()); + } if ($clone(ip, Addr).Is4()) { return ($clone(ip, Addr).v4(0) === 10) || (($clone(ip, Addr).v4(0) === 172) && ((($clone(ip, Addr).v4(1) & 240) >>> 0) === 16)) || (($clone(ip, Addr).v4(0) === 192) && ($clone(ip, Addr).v4(1) === 168)); } @@ -235996,13 +237338,13 @@ $packages["net/netip"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: ip = this; if (text.$length === 0) { - Addr.copy(ip, new Addr.ptr(new uint128.ptr(new $Uint64(0, 0), new $Uint64(0, 0)), "")); + Addr.copy((ip === ptrType$2.nil && $throwNilPointerError(), ip), new Addr.ptr(new uint128.ptr(new $Uint64(0, 0), new $Uint64(0, 0)), "")); $s = -1; return $ifaceNil; } err = $ifaceNil; _r = ParseAddr(($bytesToString(text))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; - Addr.copy(ip, _tuple[0]); + Addr.copy((ip === ptrType$2.nil && $throwNilPointerError(), ip), _tuple[0]); err = _tuple[1]; $s = -1; return err; /* */ } return; } var $f = {$blk: UnmarshalText, $c: true, $r, _r, _tuple, err, ip, text, $s};return $f; @@ -236038,16 +237380,16 @@ $packages["net/netip"] = (function() { ip = this; n = b.$length; if ((n === 0)) { - Addr.copy(ip, new Addr.ptr(new uint128.ptr(new $Uint64(0, 0), new $Uint64(0, 0)), "")); + Addr.copy((ip === ptrType$2.nil && $throwNilPointerError(), ip), new Addr.ptr(new uint128.ptr(new $Uint64(0, 0), new $Uint64(0, 0)), "")); return $ifaceNil; } else if ((n === 4)) { - Addr.copy(ip, AddrFrom4($clone(($clone(b, arrayType$1)), arrayType$1))); + Addr.copy((ip === ptrType$2.nil && $throwNilPointerError(), ip), AddrFrom4($clone(($clone(b, arrayType$1)), arrayType$1))); return $ifaceNil; } else if ((n === 16)) { - Addr.copy(ip, AddrFrom16($clone(($clone(b, arrayType)), arrayType))); + Addr.copy((ip === ptrType$2.nil && $throwNilPointerError(), ip), AddrFrom16($clone(($clone(b, arrayType)), arrayType))); return $ifaceNil; } else if (n > 16) { - Addr.copy(ip, $clone(AddrFrom16($clone(($clone($subslice(b, 0, 16), arrayType)), arrayType)), Addr).WithZone(($bytesToString($subslice(b, 16))))); + Addr.copy((ip === ptrType$2.nil && $throwNilPointerError(), ip), $clone(AddrFrom16($clone(($clone($subslice(b, 0, 16), arrayType)), arrayType)), Addr).WithZone(($bytesToString($subslice(b, 16))))); return $ifaceNil; } return errors.New("unexpected slice size"); @@ -236260,13 +237602,13 @@ $packages["net/netip"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; if (text.$length === 0) { - AddrPort.copy(p, new AddrPort.ptr(new Addr.ptr(new uint128.ptr(new $Uint64(0, 0), new $Uint64(0, 0)), ""), 0)); + AddrPort.copy((p === ptrType$3.nil && $throwNilPointerError(), p), new AddrPort.ptr(new Addr.ptr(new uint128.ptr(new $Uint64(0, 0), new $Uint64(0, 0)), ""), 0)); $s = -1; return $ifaceNil; } err = $ifaceNil; _r = ParseAddrPort(($bytesToString(text))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; - AddrPort.copy(p, _tuple[0]); + AddrPort.copy((p === ptrType$3.nil && $throwNilPointerError(), p), _tuple[0]); err = _tuple[1]; $s = -1; return err; /* */ } return; } var $f = {$blk: UnmarshalText$1, $c: true, $r, _r, _tuple, err, p, text, $s};return $f; @@ -236290,16 +237632,16 @@ $packages["net/netip"] = (function() { if (!($interfaceIsEqual(err, $ifaceNil))) { return err; } - AddrPort.copy(p, AddrPortFrom($clone(addr, Addr), leUint16($subslice(b, (b.$length - 2 >> 0))))); + AddrPort.copy((p === ptrType$3.nil && $throwNilPointerError(), p), AddrPortFrom($clone(addr, Addr), leUint16($subslice(b, (b.$length - 2 >> 0))))); return $ifaceNil; }; PrefixFrom = function PrefixFrom$1(ip, bits$1) { - var b16, bits$1, ip; - if (bits$1 < 0 || bits$1 > $clone(ip, Addr).BitLen()) { - bits$1 = -1; + var bits$1, bitsPlusOne, ip; + bitsPlusOne = 0; + if (!$clone(ip, Addr).isZero() && bits$1 >= 0 && bits$1 <= $clone(ip, Addr).BitLen()) { + bitsPlusOne = ((bits$1 << 24 >>> 24)) + 1 << 24 >>> 24; } - b16 = ((bits$1 << 16 >> 16)); - return new Prefix.ptr($clone($clone(ip, Addr).withoutZone(), Addr), b16); + return new Prefix.ptr($clone($clone(ip, Addr).withoutZone(), Addr), bitsPlusOne); }; $pkg.PrefixFrom = PrefixFrom; $ptrType(Prefix).prototype.Addr = function Addr$2() { @@ -236311,13 +237653,13 @@ $packages["net/netip"] = (function() { $ptrType(Prefix).prototype.Bits = function Bits() { var p; p = this; - return ((p.bits >> 0)); + return ((p.bitsPlusOne >> 0)) - 1 >> 0; }; Prefix.prototype.Bits = function(...$args) { return this.$val.Bits(...$args); }; $ptrType(Prefix).prototype.IsValid = function IsValid$2() { var p; p = this; - return !$clone(p.ip, Addr).isZero() && p.bits >= 0 && ((p.bits >> 0)) <= $clone(p.ip, Addr).BitLen(); + return p.bitsPlusOne > 0; }; Prefix.prototype.IsValid = function(...$args) { return this.$val.IsValid(...$args); }; $ptrType(Prefix).prototype.isZero = function isZero$2() { @@ -236329,7 +237671,7 @@ $packages["net/netip"] = (function() { $ptrType(Prefix).prototype.IsSingleIP = function IsSingleIP() { var p; p = this; - return !((p.bits === 0)) && (((p.bits >> 0)) === $clone(p.ip, Addr).BitLen()); + return $clone(p, Prefix).IsValid() && ($clone(p, Prefix).Bits() === $clone(p.ip, Addr).BitLen()); }; Prefix.prototype.IsSingleIP = function(...$args) { return this.$val.IsSingleIP(...$args); }; ParsePrefix = function ParsePrefix$1(s) { @@ -236373,15 +237715,11 @@ $packages["net/netip"] = (function() { }; $pkg.ParsePrefix = ParsePrefix; $ptrType(Prefix).prototype.Masked = function Masked() { - var _tuple, err, m, p; + var _tuple, m, p; p = this; - _tuple = $clone(p.ip, Addr).Prefix(((p.bits >> 0))); + _tuple = $clone(p.ip, Addr).Prefix($clone(p, Prefix).Bits()); m = $clone(_tuple[0], Prefix); - err = _tuple[1]; - if ($interfaceIsEqual(err, $ifaceNil)) { - return m; - } - return new Prefix.ptr(new Addr.ptr(new uint128.ptr(new $Uint64(0, 0), new $Uint64(0, 0)), ""), 0); + return m; }; Prefix.prototype.Masked = function(...$args) { return this.$val.Masked(...$args); }; $ptrType(Prefix).prototype.Contains = function Contains(ip) { @@ -236398,14 +237736,14 @@ $packages["net/netip"] = (function() { return false; } if ($clone(ip, Addr).Is4()) { - return (($shiftRightUint64(((x = ip.addr.lo, x$1 = p.ip.addr.lo, new $Uint64(x.$high ^ x$1.$high, (x.$low ^ x$1.$low) >>> 0))), ((((32 - p.bits << 16 >> 16)) & 63))).$low >>> 0)) === 0; + return (($shiftRightUint64(((x = ip.addr.lo, x$1 = p.ip.addr.lo, new $Uint64(x.$high ^ x$1.$high, (x.$low ^ x$1.$low) >>> 0))), ((((32 - $clone(p, Prefix).Bits() >> 0)) & 63))).$low >>> 0)) === 0; } else { - return $clone($clone($clone(ip.addr, uint128).xor($clone(p.ip.addr, uint128)), uint128).and($clone(mask6(((p.bits >> 0))), uint128)), uint128).isZero(); + return $clone($clone($clone(ip.addr, uint128).xor($clone(p.ip.addr, uint128)), uint128).and($clone(mask6($clone(p, Prefix).Bits()), uint128)), uint128).isZero(); } }; Prefix.prototype.Contains = function(...$args) { return this.$val.Contains(...$args); }; $ptrType(Prefix).prototype.Overlaps = function Overlaps(o) { - var _tuple, _tuple$1, err, minBits, o, p; + var _tmp, _tmp$1, _tuple, _tuple$1, err, minBits, o, ob, p, pb; p = this; if (!$clone(p, Prefix).IsValid() || !$clone(o, Prefix).IsValid()) { return false; @@ -236417,22 +237755,26 @@ $packages["net/netip"] = (function() { return false; } minBits = 0; - if (p.bits < o.bits) { - minBits = p.bits; + _tmp = $clone(p, Prefix).Bits(); + _tmp$1 = $clone(o, Prefix).Bits(); + pb = _tmp; + ob = _tmp$1; + if (pb < ob) { + minBits = pb; } else { - minBits = o.bits; + minBits = ob; } if (minBits === 0) { return true; } err = $ifaceNil; - _tuple = $clone(p.ip, Addr).Prefix(((minBits >> 0))); + _tuple = $clone(p.ip, Addr).Prefix(minBits); Prefix.copy(p, _tuple[0]); err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { return false; } - _tuple$1 = $clone(o.ip, Addr).Prefix(((minBits >> 0))); + _tuple$1 = $clone(o.ip, Addr).Prefix(minBits); Prefix.copy(o, _tuple$1[0]); err = _tuple$1[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { @@ -236461,7 +237803,7 @@ $packages["net/netip"] = (function() { } } b = $append(b, 47); - b = appendDecimal(b, ((p.bits << 24 >>> 24))); + b = appendDecimal(b, (($clone(p, Prefix).Bits() << 24 >>> 24))); return b; }; Prefix.prototype.AppendTo = function(...$args) { return this.$val.AppendTo(...$args); }; @@ -236486,13 +237828,13 @@ $packages["net/netip"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; if (text.$length === 0) { - Prefix.copy(p, new Prefix.ptr(new Addr.ptr(new uint128.ptr(new $Uint64(0, 0), new $Uint64(0, 0)), ""), 0)); + Prefix.copy((p === ptrType$4.nil && $throwNilPointerError(), p), new Prefix.ptr(new Addr.ptr(new uint128.ptr(new $Uint64(0, 0), new $Uint64(0, 0)), ""), 0)); $s = -1; return $ifaceNil; } err = $ifaceNil; _r = ParsePrefix(($bytesToString(text))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; - Prefix.copy(p, _tuple[0]); + Prefix.copy((p === ptrType$4.nil && $throwNilPointerError(), p), _tuple[0]); err = _tuple[1]; $s = -1; return err; /* */ } return; } var $f = {$blk: UnmarshalText$2, $c: true, $r, _r, _tuple, err, p, text, $s};return $f; @@ -236516,7 +237858,7 @@ $packages["net/netip"] = (function() { if (!($interfaceIsEqual(err, $ifaceNil))) { return err; } - Prefix.copy(p, PrefixFrom($clone(addr, Addr), (((x = b.$length - 1 >> 0, ((x < 0 || x >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + x])) >> 0)))); + Prefix.copy((p === ptrType$4.nil && $throwNilPointerError(), p), PrefixFrom($clone(addr, Addr), (((x = b.$length - 1 >> 0, ((x < 0 || x >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + x])) >> 0)))); return $ifaceNil; }; $ptrType(Prefix).prototype.String = function String$2() { @@ -236525,7 +237867,7 @@ $packages["net/netip"] = (function() { if (!$clone(p, Prefix).IsValid()) { return "invalid Prefix"; } - return $clone(p.ip, Addr).String() + "/" + itoa.Itoa(((p.bits >> 0))); + return $clone(p.ip, Addr).String() + "/" + itoa.Itoa($clone(p, Prefix).Bits()); }; Prefix.prototype.String = function(...$args) { return this.$val.String(...$args); }; stringsLastIndexByte = function stringsLastIndexByte$1(s, b) { @@ -236603,15 +237945,15 @@ $packages["net/netip"] = (function() { ptrType$1.methods = [{prop: "halves", name: "halves", pkg: "net/netip", typ: $funcType([], [arrayType$2], false)}]; parseAddrError.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; AddrPort.methods = [{prop: "Addr", name: "Addr", pkg: "", typ: $funcType([], [Addr], false)}, {prop: "Port", name: "Port", pkg: "", typ: $funcType([], [$Uint16], false)}, {prop: "IsValid", name: "IsValid", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "AppendTo", name: "AppendTo", pkg: "", typ: $funcType([sliceType], [sliceType], false)}, {prop: "MarshalText", name: "MarshalText", pkg: "", typ: $funcType([], [sliceType, $error], false)}, {prop: "MarshalBinary", name: "MarshalBinary", pkg: "", typ: $funcType([], [sliceType, $error], false)}]; - ptrType$2.methods = [{prop: "UnmarshalText", name: "UnmarshalText", pkg: "", typ: $funcType([sliceType], [$error], false)}, {prop: "UnmarshalBinary", name: "UnmarshalBinary", pkg: "", typ: $funcType([sliceType], [$error], false)}]; - Prefix.methods = [{prop: "Addr", name: "Addr", pkg: "", typ: $funcType([], [Addr], false)}, {prop: "Bits", name: "Bits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "IsValid", name: "IsValid", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "isZero", name: "isZero", pkg: "net/netip", typ: $funcType([], [$Bool], false)}, {prop: "IsSingleIP", name: "IsSingleIP", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Masked", name: "Masked", pkg: "", typ: $funcType([], [Prefix], false)}, {prop: "Contains", name: "Contains", pkg: "", typ: $funcType([Addr], [$Bool], false)}, {prop: "Overlaps", name: "Overlaps", pkg: "", typ: $funcType([Prefix], [$Bool], false)}, {prop: "AppendTo", name: "AppendTo", pkg: "", typ: $funcType([sliceType], [sliceType], false)}, {prop: "MarshalText", name: "MarshalText", pkg: "", typ: $funcType([], [sliceType, $error], false)}, {prop: "MarshalBinary", name: "MarshalBinary", pkg: "", typ: $funcType([], [sliceType, $error], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; ptrType$3.methods = [{prop: "UnmarshalText", name: "UnmarshalText", pkg: "", typ: $funcType([sliceType], [$error], false)}, {prop: "UnmarshalBinary", name: "UnmarshalBinary", pkg: "", typ: $funcType([sliceType], [$error], false)}]; - Addr.methods = [{prop: "v4", name: "v4", pkg: "net/netip", typ: $funcType([$Uint8], [$Uint8], false)}, {prop: "v6", name: "v6", pkg: "net/netip", typ: $funcType([$Uint8], [$Uint8], false)}, {prop: "v6u16", name: "v6u16", pkg: "net/netip", typ: $funcType([$Uint8], [$Uint16], false)}, {prop: "isZero", name: "isZero", pkg: "net/netip", typ: $funcType([], [$Bool], false)}, {prop: "IsValid", name: "IsValid", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "BitLen", name: "BitLen", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Compare", name: "Compare", pkg: "", typ: $funcType([Addr], [$Int], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([Addr], [$Bool], false)}, {prop: "Is4", name: "Is4", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Is4In6", name: "Is4In6", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Is6", name: "Is6", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Unmap", name: "Unmap", pkg: "", typ: $funcType([], [Addr], false)}, {prop: "withoutZone", name: "withoutZone", pkg: "net/netip", typ: $funcType([], [Addr], false)}, {prop: "hasZone", name: "hasZone", pkg: "net/netip", typ: $funcType([], [$Bool], false)}, {prop: "IsLinkLocalUnicast", name: "IsLinkLocalUnicast", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsLoopback", name: "IsLoopback", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsMulticast", name: "IsMulticast", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsInterfaceLocalMulticast", name: "IsInterfaceLocalMulticast", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsLinkLocalMulticast", name: "IsLinkLocalMulticast", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsGlobalUnicast", name: "IsGlobalUnicast", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsPrivate", name: "IsPrivate", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsUnspecified", name: "IsUnspecified", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Prefix", name: "Prefix", pkg: "", typ: $funcType([$Int], [Prefix, $error], false)}, {prop: "As16", name: "As16", pkg: "", typ: $funcType([], [arrayType], false)}, {prop: "As4", name: "As4", pkg: "", typ: $funcType([], [arrayType$1], false)}, {prop: "AsSlice", name: "AsSlice", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "Next", name: "Next", pkg: "", typ: $funcType([], [Addr], false)}, {prop: "Prev", name: "Prev", pkg: "", typ: $funcType([], [Addr], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "AppendTo", name: "AppendTo", pkg: "", typ: $funcType([sliceType], [sliceType], false)}, {prop: "string4", name: "string4", pkg: "net/netip", typ: $funcType([], [$String], false)}, {prop: "appendTo4", name: "appendTo4", pkg: "net/netip", typ: $funcType([sliceType], [sliceType], false)}, {prop: "string6", name: "string6", pkg: "net/netip", typ: $funcType([], [$String], false)}, {prop: "appendTo6", name: "appendTo6", pkg: "net/netip", typ: $funcType([sliceType], [sliceType], false)}, {prop: "StringExpanded", name: "StringExpanded", pkg: "", typ: $funcType([], [$String], false)}, {prop: "MarshalText", name: "MarshalText", pkg: "", typ: $funcType([], [sliceType, $error], false)}, {prop: "marshalBinaryWithTrailingBytes", name: "marshalBinaryWithTrailingBytes", pkg: "net/netip", typ: $funcType([$Int], [sliceType], false)}, {prop: "MarshalBinary", name: "MarshalBinary", pkg: "", typ: $funcType([], [sliceType, $error], false)}, {prop: "Zone", name: "Zone", pkg: "", typ: $funcType([], [$String], false)}, {prop: "WithZone", name: "WithZone", pkg: "", typ: $funcType([$String], [Addr], false)}]; + Prefix.methods = [{prop: "Addr", name: "Addr", pkg: "", typ: $funcType([], [Addr], false)}, {prop: "Bits", name: "Bits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "IsValid", name: "IsValid", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "isZero", name: "isZero", pkg: "net/netip", typ: $funcType([], [$Bool], false)}, {prop: "IsSingleIP", name: "IsSingleIP", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Masked", name: "Masked", pkg: "", typ: $funcType([], [Prefix], false)}, {prop: "Contains", name: "Contains", pkg: "", typ: $funcType([Addr], [$Bool], false)}, {prop: "Overlaps", name: "Overlaps", pkg: "", typ: $funcType([Prefix], [$Bool], false)}, {prop: "AppendTo", name: "AppendTo", pkg: "", typ: $funcType([sliceType], [sliceType], false)}, {prop: "MarshalText", name: "MarshalText", pkg: "", typ: $funcType([], [sliceType, $error], false)}, {prop: "MarshalBinary", name: "MarshalBinary", pkg: "", typ: $funcType([], [sliceType, $error], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; ptrType$4.methods = [{prop: "UnmarshalText", name: "UnmarshalText", pkg: "", typ: $funcType([sliceType], [$error], false)}, {prop: "UnmarshalBinary", name: "UnmarshalBinary", pkg: "", typ: $funcType([sliceType], [$error], false)}]; + Addr.methods = [{prop: "v4", name: "v4", pkg: "net/netip", typ: $funcType([$Uint8], [$Uint8], false)}, {prop: "v6", name: "v6", pkg: "net/netip", typ: $funcType([$Uint8], [$Uint8], false)}, {prop: "v6u16", name: "v6u16", pkg: "net/netip", typ: $funcType([$Uint8], [$Uint16], false)}, {prop: "isZero", name: "isZero", pkg: "net/netip", typ: $funcType([], [$Bool], false)}, {prop: "IsValid", name: "IsValid", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "BitLen", name: "BitLen", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Compare", name: "Compare", pkg: "", typ: $funcType([Addr], [$Int], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([Addr], [$Bool], false)}, {prop: "Is4", name: "Is4", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Is4In6", name: "Is4In6", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Is6", name: "Is6", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Unmap", name: "Unmap", pkg: "", typ: $funcType([], [Addr], false)}, {prop: "withoutZone", name: "withoutZone", pkg: "net/netip", typ: $funcType([], [Addr], false)}, {prop: "hasZone", name: "hasZone", pkg: "net/netip", typ: $funcType([], [$Bool], false)}, {prop: "IsLinkLocalUnicast", name: "IsLinkLocalUnicast", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsLoopback", name: "IsLoopback", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsMulticast", name: "IsMulticast", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsInterfaceLocalMulticast", name: "IsInterfaceLocalMulticast", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsLinkLocalMulticast", name: "IsLinkLocalMulticast", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsGlobalUnicast", name: "IsGlobalUnicast", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsPrivate", name: "IsPrivate", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsUnspecified", name: "IsUnspecified", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Prefix", name: "Prefix", pkg: "", typ: $funcType([$Int], [Prefix, $error], false)}, {prop: "As16", name: "As16", pkg: "", typ: $funcType([], [arrayType], false)}, {prop: "As4", name: "As4", pkg: "", typ: $funcType([], [arrayType$1], false)}, {prop: "AsSlice", name: "AsSlice", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "Next", name: "Next", pkg: "", typ: $funcType([], [Addr], false)}, {prop: "Prev", name: "Prev", pkg: "", typ: $funcType([], [Addr], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "AppendTo", name: "AppendTo", pkg: "", typ: $funcType([sliceType], [sliceType], false)}, {prop: "string4", name: "string4", pkg: "net/netip", typ: $funcType([], [$String], false)}, {prop: "appendTo4", name: "appendTo4", pkg: "net/netip", typ: $funcType([sliceType], [sliceType], false)}, {prop: "string6", name: "string6", pkg: "net/netip", typ: $funcType([], [$String], false)}, {prop: "appendTo6", name: "appendTo6", pkg: "net/netip", typ: $funcType([sliceType], [sliceType], false)}, {prop: "StringExpanded", name: "StringExpanded", pkg: "", typ: $funcType([], [$String], false)}, {prop: "MarshalText", name: "MarshalText", pkg: "", typ: $funcType([], [sliceType, $error], false)}, {prop: "marshalBinaryWithTrailingBytes", name: "marshalBinaryWithTrailingBytes", pkg: "net/netip", typ: $funcType([$Int], [sliceType], false)}, {prop: "MarshalBinary", name: "MarshalBinary", pkg: "", typ: $funcType([], [sliceType, $error], false)}, {prop: "Zone", name: "Zone", pkg: "", typ: $funcType([], [$String], false)}, {prop: "WithZone", name: "WithZone", pkg: "", typ: $funcType([$String], [Addr], false)}]; + ptrType$2.methods = [{prop: "UnmarshalText", name: "UnmarshalText", pkg: "", typ: $funcType([sliceType], [$error], false)}, {prop: "UnmarshalBinary", name: "UnmarshalBinary", pkg: "", typ: $funcType([sliceType], [$error], false)}]; uint128.init("net/netip", [{prop: "hi", name: "hi", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "lo", name: "lo", embedded: false, exported: false, typ: $Uint64, tag: ""}]); parseAddrError.init("net/netip", [{prop: "in$0", name: "in", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "msg", name: "msg", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "at", name: "at", embedded: false, exported: false, typ: $String, tag: ""}]); AddrPort.init("net/netip", [{prop: "ip", name: "ip", embedded: false, exported: false, typ: Addr, tag: ""}, {prop: "port", name: "port", embedded: false, exported: false, typ: $Uint16, tag: ""}]); - Prefix.init("net/netip", [{prop: "ip", name: "ip", embedded: false, exported: false, typ: Addr, tag: ""}, {prop: "bits", name: "bits", embedded: false, exported: false, typ: $Int16, tag: ""}]); + Prefix.init("net/netip", [{prop: "ip", name: "ip", embedded: false, exported: false, typ: Addr, tag: ""}, {prop: "bitsPlusOne", name: "bitsPlusOne", embedded: false, exported: false, typ: $Uint8, tag: ""}]); Addr.init("net/netip", [{prop: "addr", name: "addr", embedded: false, exported: false, typ: uint128, tag: ""}, {prop: "z", name: "z", embedded: false, exported: false, typ: $String, tag: ""}]); }; $init = function() { @@ -236632,7 +237974,7 @@ $packages["net/netip"] = (function() { return $pkg; })(); $packages["vendor/golang.org/x/net/dns/dnsmessage"] = (function() { - var $pkg = {}, $init, errors, Type, Class, OpCode, RCode, nestedError, Header, section, header, Resource, ResourceBody, Parser, ResourceHeader, Name, Question, CNAMEResource, MXResource, NSResource, PTRResource, SOAResource, TXTResource, SRVResource, AResource, AAAAResource, OPTResource, Option, UnknownResource, sliceType, arrayType, sliceType$1, sliceType$2, sliceType$3, arrayType$1, arrayType$2, sliceType$4, ptrType$1, ptrType$2, ptrType$4, mapType, ptrType$5, ptrType$6, ptrType$8, ptrType$9, ptrType$10, ptrType$11, ptrType$12, ptrType$13, ptrType$14, ptrType$15, ptrType$16, ptrType$17, ptrType$18, ptrType$19, ptrType$20, ptrType$21, ptrType$22, typeNames, classNames, rCodeNames, errBaseLen, errCalcLen, errReserved, errTooManyPtr, errInvalidPtr, errNilResouceBody, errResourceLen, errSegTooLong, errZeroSegLen, errResTooLong, errTooManyQuestions, errTooManyAnswers, errTooManyAuthorities, errTooManyAdditionals, errNonCanonicalName, errStringTooLong, errCompressedSRV, sectionNames, printUint8Bytes, printByteSlice, printString, printUint16, printUint32, printBool, skipResource, unpackUint16, skipUint16, unpackType, skipType, unpackClass, skipClass, unpackUint32, skipUint32, unpackText, unpackBytes, skipName, unpackResourceBody, unpackCNAMEResource, unpackMXResource, unpackNSResource, unpackPTRResource, unpackSOAResource, unpackTXTResource, unpackSRVResource, unpackAResource, unpackAAAAResource, unpackOPTResource, unpackUnknownResource; + var $pkg = {}, $init, errors, Type, Class, OpCode, RCode, nestedError, Header, section, header, Resource, ResourceBody, Parser, ResourceHeader, Name, Question, CNAMEResource, MXResource, NSResource, PTRResource, SOAResource, TXTResource, SRVResource, AResource, AAAAResource, OPTResource, Option, UnknownResource, sliceType, arrayType, ptrType, sliceType$1, sliceType$2, sliceType$3, arrayType$1, arrayType$2, sliceType$4, ptrType$1, ptrType$2, ptrType$4, ptrType$5, ptrType$6, ptrType$8, mapType, ptrType$10, ptrType$11, ptrType$12, ptrType$13, ptrType$14, ptrType$15, ptrType$16, ptrType$17, ptrType$18, ptrType$19, ptrType$20, ptrType$21, ptrType$22, typeNames, classNames, rCodeNames, errBaseLen, errCalcLen, errReserved, errTooManyPtr, errInvalidPtr, errInvalidName, errNilResouceBody, errResourceLen, errSegTooLong, errNameTooLong, errZeroSegLen, errResTooLong, errTooManyQuestions, errTooManyAnswers, errTooManyAuthorities, errTooManyAdditionals, errNonCanonicalName, errStringTooLong, errCompressedSRV, sectionNames, printUint8Bytes, printByteSlice, printString, printUint16, printUint32, printBool, skipResource, unpackUint16, skipUint16, unpackType, skipType, unpackClass, skipClass, unpackUint32, skipUint32, unpackText, unpackBytes, skipName, unpackResourceBody, unpackCNAMEResource, unpackMXResource, unpackNSResource, unpackPTRResource, unpackSOAResource, unpackTXTResource, unpackSRVResource, unpackAResource, unpackAAAAResource, unpackOPTResource, unpackUnknownResource; errors = $packages["errors"]; Type = $newType(2, $kindUint16, "dnsmessage.Type", true, "vendor/golang.org/x/net/dns/dnsmessage", true, null); Class = $newType(2, $kindUint16, "dnsmessage.Class", true, "vendor/golang.org/x/net/dns/dnsmessage", true, null); @@ -236911,32 +238253,32 @@ $packages["vendor/golang.org/x/net/dns/dnsmessage"] = (function() { $pkg.$finishSetup = function() { sliceType = $sliceType($Uint8); arrayType = $arrayType($Uint8, 255); + ptrType = $ptrType(Parser); sliceType$1 = $sliceType(Question); sliceType$2 = $sliceType(Resource); sliceType$3 = $sliceType($String); arrayType$1 = $arrayType($Uint8, 4); arrayType$2 = $arrayType($Uint8, 16); sliceType$4 = $sliceType(Option); - ptrType$1 = $ptrType(nestedError); - ptrType$2 = $ptrType(Header); - ptrType$4 = $ptrType(header); + ptrType$1 = $ptrType(Question); + ptrType$2 = $ptrType(Resource); + ptrType$4 = $ptrType(Option); + ptrType$5 = $ptrType(nestedError); + ptrType$6 = $ptrType(Header); + ptrType$8 = $ptrType(header); mapType = $mapType($String, $Int); - ptrType$5 = $ptrType(Resource); - ptrType$6 = $ptrType(Parser); - ptrType$8 = $ptrType(ResourceHeader); - ptrType$9 = $ptrType(Name); - ptrType$10 = $ptrType(Question); - ptrType$11 = $ptrType(CNAMEResource); - ptrType$12 = $ptrType(MXResource); - ptrType$13 = $ptrType(NSResource); - ptrType$14 = $ptrType(PTRResource); - ptrType$15 = $ptrType(SOAResource); - ptrType$16 = $ptrType(TXTResource); - ptrType$17 = $ptrType(SRVResource); - ptrType$18 = $ptrType(AResource); - ptrType$19 = $ptrType(AAAAResource); - ptrType$20 = $ptrType(OPTResource); - ptrType$21 = $ptrType(Option); + ptrType$10 = $ptrType(ResourceHeader); + ptrType$11 = $ptrType(Name); + ptrType$12 = $ptrType(CNAMEResource); + ptrType$13 = $ptrType(MXResource); + ptrType$14 = $ptrType(NSResource); + ptrType$15 = $ptrType(PTRResource); + ptrType$16 = $ptrType(SOAResource); + ptrType$17 = $ptrType(TXTResource); + ptrType$18 = $ptrType(SRVResource); + ptrType$19 = $ptrType(AResource); + ptrType$20 = $ptrType(AAAAResource); + ptrType$21 = $ptrType(OPTResource); ptrType$22 = $ptrType(UnknownResource); Type.prototype.String = function String() { var _entry, _tuple, n, ok, t; @@ -237190,7 +238532,7 @@ $packages["vendor/golang.org/x/net/dns/dnsmessage"] = (function() { var _tuple, err, msg, p; p = this; if (!(p.msg === sliceType.nil)) { - Parser.copy(p, new Parser.ptr(sliceType.nil, new header.ptr(0, 0, 0, 0, 0, 0), 0, 0, 0, false, new ResourceHeader.ptr(new Name.ptr(arrayType.zero(), 0), 0, 0, 0, 0))); + Parser.copy((p === ptrType.nil && $throwNilPointerError(), p), new Parser.ptr(sliceType.nil, new header.ptr(0, 0, 0, 0, 0, 0), 0, 0, 0, false, new ResourceHeader.ptr(new Name.ptr(arrayType.zero(), 0), 0, 0, 0, 0))); } p.msg = msg; err = $ifaceNil; @@ -237913,7 +239255,7 @@ $packages["vendor/golang.org/x/net/dns/dnsmessage"] = (function() { return n.unpackCompressed(msg, off, true); }; $ptrType(Name).prototype.unpackCompressed = function unpackCompressed(msg, off, allowCompression) { - var _1, allowCompression, c, c1, currOff, endOff, msg, n, name, newOff, off, ptr; + var _1, _i, _ref, allowCompression, c, c1, currOff, endOff, msg, n, name, newOff, off, ptr, v; n = this; currOff = off; newOff = off; @@ -237935,6 +239277,16 @@ $packages["vendor/golang.org/x/net/dns/dnsmessage"] = (function() { if (endOff > msg.$length) { return [off, errCalcLen]; } + _ref = $subslice(msg, currOff, endOff); + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (v === 46) { + return [off, errInvalidName]; + } + _i++; + } name = $appendSlice(name, $subslice(msg, currOff, endOff)); name = $append(name, 46); currOff = endOff; @@ -237962,8 +239314,8 @@ $packages["vendor/golang.org/x/net/dns/dnsmessage"] = (function() { if (name.$length === 0) { name = $append(name, 46); } - if (name.$length > 255) { - return [off, errCalcLen]; + if (name.$length > 254) { + return [off, errNameTooLong]; } n.Length = ((name.$length << 24 >>> 24)); if (ptr === 0) { @@ -238336,7 +239688,7 @@ $packages["vendor/golang.org/x/net/dns/dnsmessage"] = (function() { if (r.Options.$length === 0) { return s + "}}"; } - s = s + ((x = r.Options, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).GoString()); + s = s + ((x = r.Options, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + 0, ptrType$4))).GoString()); _ref = $subslice(r.Options, 1); _i = 0; while (true) { @@ -238398,16 +239750,15 @@ $packages["vendor/golang.org/x/net/dns/dnsmessage"] = (function() { Class.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}]; OpCode.methods = [{prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}]; RCode.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$1.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$2.methods = [{prop: "pack", name: "pack", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([], [$Uint16, $Uint16], false)}, {prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$4.methods = [{prop: "count", name: "count", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([section], [$Uint16], false)}, {prop: "pack", name: "pack", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([sliceType], [sliceType], false)}, {prop: "unpack", name: "unpack", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([sliceType, $Int], [$Int, $error], false)}, {prop: "header", name: "header", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([], [Header], false)}]; - ptrType$5.methods = [{prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}, {prop: "pack", name: "pack", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([sliceType, mapType, $Int], [sliceType, $error], false)}]; - ptrType$6.methods = [{prop: "Start", name: "Start", pkg: "", typ: $funcType([sliceType], [Header, $error], false)}, {prop: "checkAdvance", name: "checkAdvance", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([section], [$error], false)}, {prop: "resource", name: "resource", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([section], [Resource, $error], false)}, {prop: "resourceHeader", name: "resourceHeader", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([section], [ResourceHeader, $error], false)}, {prop: "skipResource", name: "skipResource", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([section], [$error], false)}, {prop: "Question", name: "Question", pkg: "", typ: $funcType([], [Question, $error], false)}, {prop: "AllQuestions", name: "AllQuestions", pkg: "", typ: $funcType([], [sliceType$1, $error], false)}, {prop: "SkipQuestion", name: "SkipQuestion", pkg: "", typ: $funcType([], [$error], false)}, {prop: "SkipAllQuestions", name: "SkipAllQuestions", pkg: "", typ: $funcType([], [$error], false)}, {prop: "AnswerHeader", name: "AnswerHeader", pkg: "", typ: $funcType([], [ResourceHeader, $error], false)}, {prop: "Answer", name: "Answer", pkg: "", typ: $funcType([], [Resource, $error], false)}, {prop: "AllAnswers", name: "AllAnswers", pkg: "", typ: $funcType([], [sliceType$2, $error], false)}, {prop: "SkipAnswer", name: "SkipAnswer", pkg: "", typ: $funcType([], [$error], false)}, {prop: "SkipAllAnswers", name: "SkipAllAnswers", pkg: "", typ: $funcType([], [$error], false)}, {prop: "AuthorityHeader", name: "AuthorityHeader", pkg: "", typ: $funcType([], [ResourceHeader, $error], false)}, {prop: "Authority", name: "Authority", pkg: "", typ: $funcType([], [Resource, $error], false)}, {prop: "AllAuthorities", name: "AllAuthorities", pkg: "", typ: $funcType([], [sliceType$2, $error], false)}, {prop: "SkipAuthority", name: "SkipAuthority", pkg: "", typ: $funcType([], [$error], false)}, {prop: "SkipAllAuthorities", name: "SkipAllAuthorities", pkg: "", typ: $funcType([], [$error], false)}, {prop: "AdditionalHeader", name: "AdditionalHeader", pkg: "", typ: $funcType([], [ResourceHeader, $error], false)}, {prop: "Additional", name: "Additional", pkg: "", typ: $funcType([], [Resource, $error], false)}, {prop: "AllAdditionals", name: "AllAdditionals", pkg: "", typ: $funcType([], [sliceType$2, $error], false)}, {prop: "SkipAdditional", name: "SkipAdditional", pkg: "", typ: $funcType([], [$error], false)}, {prop: "SkipAllAdditionals", name: "SkipAllAdditionals", pkg: "", typ: $funcType([], [$error], false)}, {prop: "CNAMEResource", name: "CNAMEResource", pkg: "", typ: $funcType([], [CNAMEResource, $error], false)}, {prop: "MXResource", name: "MXResource", pkg: "", typ: $funcType([], [MXResource, $error], false)}, {prop: "NSResource", name: "NSResource", pkg: "", typ: $funcType([], [NSResource, $error], false)}, {prop: "PTRResource", name: "PTRResource", pkg: "", typ: $funcType([], [PTRResource, $error], false)}, {prop: "SOAResource", name: "SOAResource", pkg: "", typ: $funcType([], [SOAResource, $error], false)}, {prop: "TXTResource", name: "TXTResource", pkg: "", typ: $funcType([], [TXTResource, $error], false)}, {prop: "SRVResource", name: "SRVResource", pkg: "", typ: $funcType([], [SRVResource, $error], false)}, {prop: "AResource", name: "AResource", pkg: "", typ: $funcType([], [AResource, $error], false)}, {prop: "AAAAResource", name: "AAAAResource", pkg: "", typ: $funcType([], [AAAAResource, $error], false)}, {prop: "OPTResource", name: "OPTResource", pkg: "", typ: $funcType([], [OPTResource, $error], false)}, {prop: "UnknownResource", name: "UnknownResource", pkg: "", typ: $funcType([], [UnknownResource, $error], false)}]; - ptrType$8.methods = [{prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}, {prop: "pack", name: "pack", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([sliceType, mapType, $Int], [sliceType, $Int, $error], false)}, {prop: "unpack", name: "unpack", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([sliceType, $Int], [$Int, $error], false)}, {prop: "fixLen", name: "fixLen", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([sliceType, $Int, $Int], [$error], false)}, {prop: "SetEDNS0", name: "SetEDNS0", pkg: "", typ: $funcType([$Int, RCode, $Bool], [$error], false)}, {prop: "DNSSECAllowed", name: "DNSSECAllowed", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "ExtendedRCode", name: "ExtendedRCode", pkg: "", typ: $funcType([RCode], [RCode], false)}]; + ptrType$5.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$6.methods = [{prop: "pack", name: "pack", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([], [$Uint16, $Uint16], false)}, {prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$8.methods = [{prop: "count", name: "count", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([section], [$Uint16], false)}, {prop: "pack", name: "pack", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([sliceType], [sliceType], false)}, {prop: "unpack", name: "unpack", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([sliceType, $Int], [$Int, $error], false)}, {prop: "header", name: "header", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([], [Header], false)}]; + ptrType$2.methods = [{prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}, {prop: "pack", name: "pack", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([sliceType, mapType, $Int], [sliceType, $error], false)}]; + ptrType.methods = [{prop: "Start", name: "Start", pkg: "", typ: $funcType([sliceType], [Header, $error], false)}, {prop: "checkAdvance", name: "checkAdvance", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([section], [$error], false)}, {prop: "resource", name: "resource", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([section], [Resource, $error], false)}, {prop: "resourceHeader", name: "resourceHeader", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([section], [ResourceHeader, $error], false)}, {prop: "skipResource", name: "skipResource", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([section], [$error], false)}, {prop: "Question", name: "Question", pkg: "", typ: $funcType([], [Question, $error], false)}, {prop: "AllQuestions", name: "AllQuestions", pkg: "", typ: $funcType([], [sliceType$1, $error], false)}, {prop: "SkipQuestion", name: "SkipQuestion", pkg: "", typ: $funcType([], [$error], false)}, {prop: "SkipAllQuestions", name: "SkipAllQuestions", pkg: "", typ: $funcType([], [$error], false)}, {prop: "AnswerHeader", name: "AnswerHeader", pkg: "", typ: $funcType([], [ResourceHeader, $error], false)}, {prop: "Answer", name: "Answer", pkg: "", typ: $funcType([], [Resource, $error], false)}, {prop: "AllAnswers", name: "AllAnswers", pkg: "", typ: $funcType([], [sliceType$2, $error], false)}, {prop: "SkipAnswer", name: "SkipAnswer", pkg: "", typ: $funcType([], [$error], false)}, {prop: "SkipAllAnswers", name: "SkipAllAnswers", pkg: "", typ: $funcType([], [$error], false)}, {prop: "AuthorityHeader", name: "AuthorityHeader", pkg: "", typ: $funcType([], [ResourceHeader, $error], false)}, {prop: "Authority", name: "Authority", pkg: "", typ: $funcType([], [Resource, $error], false)}, {prop: "AllAuthorities", name: "AllAuthorities", pkg: "", typ: $funcType([], [sliceType$2, $error], false)}, {prop: "SkipAuthority", name: "SkipAuthority", pkg: "", typ: $funcType([], [$error], false)}, {prop: "SkipAllAuthorities", name: "SkipAllAuthorities", pkg: "", typ: $funcType([], [$error], false)}, {prop: "AdditionalHeader", name: "AdditionalHeader", pkg: "", typ: $funcType([], [ResourceHeader, $error], false)}, {prop: "Additional", name: "Additional", pkg: "", typ: $funcType([], [Resource, $error], false)}, {prop: "AllAdditionals", name: "AllAdditionals", pkg: "", typ: $funcType([], [sliceType$2, $error], false)}, {prop: "SkipAdditional", name: "SkipAdditional", pkg: "", typ: $funcType([], [$error], false)}, {prop: "SkipAllAdditionals", name: "SkipAllAdditionals", pkg: "", typ: $funcType([], [$error], false)}, {prop: "CNAMEResource", name: "CNAMEResource", pkg: "", typ: $funcType([], [CNAMEResource, $error], false)}, {prop: "MXResource", name: "MXResource", pkg: "", typ: $funcType([], [MXResource, $error], false)}, {prop: "NSResource", name: "NSResource", pkg: "", typ: $funcType([], [NSResource, $error], false)}, {prop: "PTRResource", name: "PTRResource", pkg: "", typ: $funcType([], [PTRResource, $error], false)}, {prop: "SOAResource", name: "SOAResource", pkg: "", typ: $funcType([], [SOAResource, $error], false)}, {prop: "TXTResource", name: "TXTResource", pkg: "", typ: $funcType([], [TXTResource, $error], false)}, {prop: "SRVResource", name: "SRVResource", pkg: "", typ: $funcType([], [SRVResource, $error], false)}, {prop: "AResource", name: "AResource", pkg: "", typ: $funcType([], [AResource, $error], false)}, {prop: "AAAAResource", name: "AAAAResource", pkg: "", typ: $funcType([], [AAAAResource, $error], false)}, {prop: "OPTResource", name: "OPTResource", pkg: "", typ: $funcType([], [OPTResource, $error], false)}, {prop: "UnknownResource", name: "UnknownResource", pkg: "", typ: $funcType([], [UnknownResource, $error], false)}]; + ptrType$10.methods = [{prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}, {prop: "pack", name: "pack", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([sliceType, mapType, $Int], [sliceType, $Int, $error], false)}, {prop: "unpack", name: "unpack", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([sliceType, $Int], [$Int, $error], false)}, {prop: "fixLen", name: "fixLen", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([sliceType, $Int, $Int], [$error], false)}, {prop: "SetEDNS0", name: "SetEDNS0", pkg: "", typ: $funcType([$Int, RCode, $Bool], [$error], false)}, {prop: "DNSSECAllowed", name: "DNSSECAllowed", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "ExtendedRCode", name: "ExtendedRCode", pkg: "", typ: $funcType([RCode], [RCode], false)}]; Name.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$9.methods = [{prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}, {prop: "pack", name: "pack", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([sliceType, mapType, $Int], [sliceType, $error], false)}, {prop: "unpack", name: "unpack", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([sliceType, $Int], [$Int, $error], false)}, {prop: "unpackCompressed", name: "unpackCompressed", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([sliceType, $Int, $Bool], [$Int, $error], false)}]; - ptrType$10.methods = [{prop: "pack", name: "pack", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([sliceType, mapType, $Int], [sliceType, $error], false)}, {prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$11.methods = [{prop: "realType", name: "realType", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([], [Type], false)}, {prop: "pack", name: "pack", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([sliceType, mapType, $Int], [sliceType, $error], false)}, {prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$11.methods = [{prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}, {prop: "pack", name: "pack", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([sliceType, mapType, $Int], [sliceType, $error], false)}, {prop: "unpack", name: "unpack", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([sliceType, $Int], [$Int, $error], false)}, {prop: "unpackCompressed", name: "unpackCompressed", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([sliceType, $Int, $Bool], [$Int, $error], false)}]; + ptrType$1.methods = [{prop: "pack", name: "pack", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([sliceType, mapType, $Int], [sliceType, $error], false)}, {prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}]; ptrType$12.methods = [{prop: "realType", name: "realType", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([], [Type], false)}, {prop: "pack", name: "pack", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([sliceType, mapType, $Int], [sliceType, $error], false)}, {prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}]; ptrType$13.methods = [{prop: "realType", name: "realType", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([], [Type], false)}, {prop: "pack", name: "pack", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([sliceType, mapType, $Int], [sliceType, $error], false)}, {prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}]; ptrType$14.methods = [{prop: "realType", name: "realType", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([], [Type], false)}, {prop: "pack", name: "pack", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([sliceType, mapType, $Int], [sliceType, $error], false)}, {prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}]; @@ -238415,9 +239766,10 @@ $packages["vendor/golang.org/x/net/dns/dnsmessage"] = (function() { ptrType$16.methods = [{prop: "realType", name: "realType", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([], [Type], false)}, {prop: "pack", name: "pack", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([sliceType, mapType, $Int], [sliceType, $error], false)}, {prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}]; ptrType$17.methods = [{prop: "realType", name: "realType", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([], [Type], false)}, {prop: "pack", name: "pack", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([sliceType, mapType, $Int], [sliceType, $error], false)}, {prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}]; ptrType$18.methods = [{prop: "realType", name: "realType", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([], [Type], false)}, {prop: "pack", name: "pack", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([sliceType, mapType, $Int], [sliceType, $error], false)}, {prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$19.methods = [{prop: "realType", name: "realType", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([], [Type], false)}, {prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}, {prop: "pack", name: "pack", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([sliceType, mapType, $Int], [sliceType, $error], false)}]; - ptrType$20.methods = [{prop: "realType", name: "realType", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([], [Type], false)}, {prop: "pack", name: "pack", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([sliceType, mapType, $Int], [sliceType, $error], false)}, {prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$21.methods = [{prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$19.methods = [{prop: "realType", name: "realType", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([], [Type], false)}, {prop: "pack", name: "pack", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([sliceType, mapType, $Int], [sliceType, $error], false)}, {prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$20.methods = [{prop: "realType", name: "realType", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([], [Type], false)}, {prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}, {prop: "pack", name: "pack", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([sliceType, mapType, $Int], [sliceType, $error], false)}]; + ptrType$21.methods = [{prop: "realType", name: "realType", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([], [Type], false)}, {prop: "pack", name: "pack", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([sliceType, mapType, $Int], [sliceType, $error], false)}, {prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$4.methods = [{prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}]; ptrType$22.methods = [{prop: "realType", name: "realType", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([], [Type], false)}, {prop: "pack", name: "pack", pkg: "vendor/golang.org/x/net/dns/dnsmessage", typ: $funcType([sliceType, mapType, $Int], [sliceType, $error], false)}, {prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}]; nestedError.init("vendor/golang.org/x/net/dns/dnsmessage", [{prop: "s", name: "s", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}]); Header.init("", [{prop: "ID", name: "ID", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Response", name: "Response", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "OpCode", name: "OpCode", embedded: false, exported: true, typ: OpCode, tag: ""}, {prop: "Authoritative", name: "Authoritative", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Truncated", name: "Truncated", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "RecursionDesired", name: "RecursionDesired", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "RecursionAvailable", name: "RecursionAvailable", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "AuthenticData", name: "AuthenticData", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "CheckingDisabled", name: "CheckingDisabled", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "RCode", name: "RCode", embedded: false, exported: true, typ: RCode, tag: ""}]); @@ -238455,9 +239807,11 @@ $packages["vendor/golang.org/x/net/dns/dnsmessage"] = (function() { errReserved = errors.New("segment prefix is reserved"); errTooManyPtr = errors.New("too many pointers (>10)"); errInvalidPtr = errors.New("invalid pointer"); + errInvalidName = errors.New("invalid dns name"); errNilResouceBody = errors.New("nil resource body"); errResourceLen = errors.New("insufficient data for resource body length"); errSegTooLong = errors.New("segment length too long"); + errNameTooLong = errors.New("name too long"); errZeroSegLen = errors.New("zero length segment"); errResTooLong = errors.New("resource length too long"); errTooManyQuestions = errors.New("too many Questions to pack (>65535)"); @@ -238474,15 +239828,17 @@ $packages["vendor/golang.org/x/net/dns/dnsmessage"] = (function() { return $pkg; })(); $packages["net"] = (function() { - var $pkg = {}, $init, context, errors, bytealg, itoa, nettrace, poll, singleflight, io, netip, os, runtime, sort, sync, atomic, syscall, time, dnsmessage, UnixAddr, UnixConn, UnixListener, UDPAddr, addrPortUDPAddr, UDPConn, TCPAddr, TCPConn, TCPListener, sockaddr, rawConn, rawListener, file, netFD, bufferedPipe, Addr, Conn, conn, PacketConn, Listener, Error, canceledError, OpError, timeout, temporary, ParseError, AddrError, UnknownNetworkError, timeoutError, DNSError, writerOnly, HardwareAddr, Resolver, onlyValuesCtx, ipStackCapabilities, addrList, IPAddr, IPConn, IP, IPMask, IPNet, Interface, Flags, ipv6ZoneCache, dnsConfig, SRV, MX, NS, Dialer, sysDialer, ListenConfig, sysListener, policyTableEntry, policyTable, dialResult, ptrType, sliceType, ptrType$3, sliceType$1, arrayType, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, ptrType$11, ptrType$12, ptrType$13, arrayType$1, ptrType$14, ptrType$15, ptrType$16, ptrType$17, ptrType$18, ptrType$19, ptrType$20, ptrType$21, structType$2, ptrType$23, ptrType$24, ptrType$25, sliceType$4, ptrType$26, ptrType$27, ptrType$28, ptrType$29, sliceType$5, ptrType$30, sliceType$6, ptrType$31, sliceType$7, ptrType$32, sliceType$8, arrayType$2, sliceType$9, ptrType$33, sliceType$10, ptrType$34, funcType, sliceType$11, ptrType$35, structType$3, sliceType$12, ptrType$37, ptrType$38, sliceType$13, sliceType$14, funcType$1, funcType$2, ptrType$40, chanType$5, chanType$6, ptrType$44, ptrType$45, ptrType$47, funcType$3, ptrType$48, funcType$4, ptrType$49, ptrType$50, mapType$3, mapType$4, ptrType$51, funcType$5, funcType$6, ptrType$52, funcType$7, ptrType$53, ptrType$54, onceReadServices, listenersMu, portCounterMu, netGo, dnsWaitGroup, ipStackCaps, testHookDialTCP, listeners, portCounter, errNoSuitableAddress, errMissingAddress, errCanceled, aLongTimeAgo, errTimeout, errNoSuchHost, errClosed, protocols, services, errMalformedDNSRecordsDetail, v4InV6Prefix, classAMask, classBMask, classCMask, errInvalidInterface, errInvalidInterfaceIndex, errInvalidInterfaceName, errNoSuchInterface, errNoSuchMulticastInterface, flagNames, zoneCache, testHookLookupIP, testHookSetKeepAlive, rfc6724policyTable, setReadMsgCloseOnExec, unixSocket, sotypeToNet, ResolveUnixAddr, newUnixConn, UDPAddrFromAddrPort, newUDPConn, setNoDelay, setKeepAlivePeriod, selfConnect, spuriousENOTAVAIL, newTCPConn, splice, setReadBuffer, setWriteBuffer, setKeepAlive, setLinger, sendFile, newRawConn, newRawListener, readServices, goLookupPort, parsePort, open, countAnyByte, splitAtBytes, getFields, dtoi, xtoi, appendHex, last, lowerASCIIBytes, init, nextPort, socket, newBufferedPipe, sysSocket, mapErr, genericReadFrom, lookupProtocol, lookupProtocolMap, lookupPortMap, withUnexpiredValuesPreserved, lookupIPReturn, ipAddrsEface, favoriteAddrFamily, internetSocket, ipToSockaddrInet4, ipToSockaddrInet6, ipToSockaddr, addrPortToSockaddrInet4, addrPortToSockaddrInet6, supportsIPv4, supportsIPv4map, isIPv4, filterAddrList, ipv4only, ipv6only, SplitHostPort, splitHostZone, JoinHostPort, loopbackIP, stripIPv4Header, newIPConn, IPv4, IPv4Mask, isZeros, allFF, ubtoa, hexString, ipEmptyString, simpleMaskLength, networkNumberAndMask, parseIPv4, parseIPv6Zone, parseIPv6, ParseIP, parseIPZone, interfaceTable, interfaceAddrTable, interfaceMulticastAddrTable, isConnError, isDomainName, minNonzeroTime, partialDeadline, parseNetwork, Dial, Listen; + var $pkg = {}, $init, context, errors, bytealg, godebug, itoa, nettrace, poll, singleflight, io, fs, netip, os, runtime, sort, sync, atomic, syscall, time, dnsmessage, UnixAddr, UnixConn, UnixListener, UDPAddr, addrPortUDPAddr, UDPConn, TCPAddr, TCPConn, TCPListener, sockaddr, rawConn, rawListener, file, netFD, fakeNetAddr, fakeNetFD, bufferedPipe, Addr, Conn, conn, PacketConn, Listener, Error, canceledError, OpError, timeout, temporary, ParseError, AddrError, UnknownNetworkError, timeoutError, DNSError, writerOnly, HardwareAddr, Resolver, onlyValuesCtx, ipStackCapabilities, addrList, IPAddr, IPConn, IP, IPMask, IPNet, Interface, Flags, ipv6ZoneCache, dnsConfig, SRV, MX, NS, mptcpStatus, Dialer, sysDialer, ListenConfig, sysListener, policyTableEntry, policyTable, dialResult, ptrType, sliceType, ptrType$3, sliceType$1, arrayType, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, ptrType$11, ptrType$12, ptrType$13, arrayType$1, ptrType$14, ptrType$15, ptrType$16, ptrType$17, ptrType$18, ptrType$19, ptrType$20, ptrType$21, ptrType$22, structType$2, ptrType$24, ptrType$25, sliceType$4, ptrType$26, ptrType$27, ptrType$28, ptrType$29, ptrType$30, sliceType$5, ptrType$31, sliceType$6, ptrType$32, sliceType$7, ptrType$33, sliceType$8, arrayType$2, sliceType$9, ptrType$34, sliceType$10, ptrType$35, funcType, sliceType$11, ptrType$36, structType$3, sliceType$12, ptrType$38, ptrType$39, sliceType$13, sliceType$14, ptrType$41, ptrType$42, ptrType$43, funcType$1, funcType$2, ptrType$45, chanType$5, chanType$6, ptrType$49, ptrType$50, ptrType$52, funcType$3, ptrType$53, funcType$4, ptrType$54, ptrType$55, mapType$3, mapType$4, funcType$5, funcType$6, ptrType$56, funcType$7, ptrType$57, onceReadServices, listenersMu, portCounterMu, dnsWaitGroup, ipStackCaps, testHookDialTCP, listeners, portCounter, errNoSuitableAddress, errMissingAddress, errCanceled, aLongTimeAgo, errTimeout, errNoSuchHost, errClosed, protocols, services, errMalformedDNSRecordsDetail, v4InV6Prefix, classAMask, classBMask, classCMask, errInvalidInterface, errInvalidInterfaceIndex, errInvalidInterfaceName, errNoSuchInterface, errNoSuchMulticastInterface, flagNames, zoneCache, testHookLookupIP, testHookSetKeepAlive, multipathtcp, rfc6724policyTable, setReadMsgCloseOnExec, unixSocket, sotypeToNet, ResolveUnixAddr, newUnixConn, UDPAddrFromAddrPort, newUDPConn, setNoDelay, setKeepAlivePeriod, selfConnect, spuriousENOTAVAIL, newTCPConn, splice, setReadBuffer, setWriteBuffer, setKeepAlive, setLinger, sendFile, newRawConn, newRawListener, readServices, goLookupPort, parsePort, open, countAnyByte, splitAtBytes, getFields, dtoi, last, lowerASCIIBytes, nextPort, socket, fakeIPAndPort, fakeTCPAddr, fakeUDPAddr, fakeUnixAddr, fakelistener, fakeconn, newBufferedPipe, sysSocket, mapErr, genericReadFrom, isUsingMultipathTCP, lookupProtocol, lookupProtocolMap, lookupPortMap, withUnexpiredValuesPreserved, lookupIPReturn, ipAddrsEface, favoriteAddrFamily, internetSocket, ipToSockaddrInet4, ipToSockaddrInet6, ipToSockaddr, addrPortToSockaddrInet4, addrPortToSockaddrInet6, supportsIPv4, supportsIPv4map, isIPv4, filterAddrList, ipv4only, ipv6only, SplitHostPort, JoinHostPort, loopbackIP, stripIPv4Header, newIPConn, IPv4, IPv4Mask, isZeros, allFF, hexString, ipEmptyString, simpleMaskLength, networkNumberAndMask, ParseIP, parseIP, interfaceTable, interfaceAddrTable, interfaceMulticastAddrTable, isConnError, isDomainName, minNonzeroTime, partialDeadline, parseNetwork, Dial, Listen; context = $packages["context"]; errors = $packages["errors"]; bytealg = $packages["internal/bytealg"]; + godebug = $packages["internal/godebug"]; itoa = $packages["internal/itoa"]; nettrace = $packages["internal/nettrace"]; poll = $packages["internal/poll"]; singleflight = $packages["internal/singleflight"]; io = $packages["io"]; + fs = $packages["io/fs"]; netip = $packages["net/netip"]; os = $packages["os"]; runtime = $packages["runtime"]; @@ -238576,7 +239932,7 @@ $packages["net"] = (function() { this.$val = this; if (arguments.length === 0) { this.fd = ptrType$4.nil; - this.lc = new ListenConfig.ptr($throwNilPointerError, new time.Duration(0, 0)); + this.lc = new ListenConfig.ptr($throwNilPointerError, new time.Duration(0, 0), 0); return; } this.fd = fd_; @@ -238611,30 +239967,20 @@ $packages["net"] = (function() { this.data = data_; this.atEOF = atEOF_; }); - netFD = $newType(0, $kindStruct, "net.netFD", true, "net", false, function(r_, w_, incoming_, closedMu_, closed_, listener_, family_, sotype_, net_, laddr_, raddr_, pfd_, isConnected_) { + netFD = $newType(0, $kindStruct, "net.netFD", true, "net", false, function(fakeNetFD_, family_, sotype_, net_, laddr_, raddr_, pfd_, isConnected_) { this.$val = this; if (arguments.length === 0) { - this.r = ptrType$24.nil; - this.w = ptrType$24.nil; - this.incoming = $chanNil; - this.closedMu = new sync.Mutex.ptr(0, 0); - this.closed = false; - this.listener = false; + this.fakeNetFD = ptrType$25.nil; this.family = 0; this.sotype = 0; this.net = ""; this.laddr = $ifaceNil; this.raddr = $ifaceNil; - this.pfd = new poll.FD.ptr(new poll.fdMutex.ptr(new $Uint64(0, 0), 0, 0), 0, new poll.pollDesc.ptr(ptrType$25.nil, false), ptrType$26.nil, 0, 0, false, false, false); + this.pfd = new poll.FD.ptr(new poll.fdMutex.ptr(new $Uint64(0, 0), 0, 0), 0, new poll.SysFile.ptr(ptrType$26.nil), new poll.pollDesc.ptr(ptrType$22.nil, false), 0, 0, false, false, false); this.isConnected = false; return; } - this.r = r_; - this.w = w_; - this.incoming = incoming_; - this.closedMu = closedMu_; - this.closed = closed_; - this.listener = listener_; + this.fakeNetFD = fakeNetFD_; this.family = family_; this.sotype = sotype_; this.net = net_; @@ -238643,6 +239989,34 @@ $packages["net"] = (function() { this.pfd = pfd_; this.isConnected = isConnected_; }); + fakeNetAddr = $newType(0, $kindStruct, "net.fakeNetAddr", true, "net", false, function(network_, address_) { + this.$val = this; + if (arguments.length === 0) { + this.network = ""; + this.address = ""; + return; + } + this.network = network_; + this.address = address_; + }); + fakeNetFD = $newType(0, $kindStruct, "net.fakeNetFD", true, "net", false, function(listener_, r_, w_, incoming_, closedMu_, closed_) { + this.$val = this; + if (arguments.length === 0) { + this.listener = new fakeNetAddr.ptr("", ""); + this.r = ptrType$27.nil; + this.w = ptrType$27.nil; + this.incoming = $chanNil; + this.closedMu = new sync.Mutex.ptr(0, 0); + this.closed = false; + return; + } + this.listener = listener_; + this.r = r_; + this.w = w_; + this.incoming = incoming_; + this.closedMu = closedMu_; + this.closed = closed_; + }); bufferedPipe = $newType(0, $kindStruct, "net.bufferedPipe", true, "net", false, function(softLimit_, mu_, buf_, closed_, rCond_, wCond_, rDeadline_, wDeadline_) { this.$val = this; if (arguments.length === 0) { @@ -238914,7 +240288,8 @@ $packages["net"] = (function() { } this.Host = Host_; }); - Dialer = $newType(0, $kindStruct, "net.Dialer", true, "net", true, function(Timeout_, Deadline_, LocalAddr_, DualStack_, FallbackDelay_, KeepAlive_, Resolver_, Cancel_, Control_, ControlContext_) { + mptcpStatus = $newType(1, $kindUint8, "net.mptcpStatus", true, "net", false, null); + Dialer = $newType(0, $kindStruct, "net.Dialer", true, "net", true, function(Timeout_, Deadline_, LocalAddr_, DualStack_, FallbackDelay_, KeepAlive_, Resolver_, Cancel_, Control_, ControlContext_, mptcpStatus_) { this.$val = this; if (arguments.length === 0) { this.Timeout = new time.Duration(0, 0); @@ -238927,6 +240302,7 @@ $packages["net"] = (function() { this.Cancel = $chanNil; this.Control = $throwNilPointerError; this.ControlContext = $throwNilPointerError; + this.mptcpStatus = 0; return; } this.Timeout = Timeout_; @@ -238939,11 +240315,12 @@ $packages["net"] = (function() { this.Cancel = Cancel_; this.Control = Control_; this.ControlContext = ControlContext_; + this.mptcpStatus = mptcpStatus_; }); sysDialer = $newType(0, $kindStruct, "net.sysDialer", true, "net", false, function(Dialer_, network_, address_, testHookDialTCP_) { this.$val = this; if (arguments.length === 0) { - this.Dialer = new Dialer.ptr(new time.Duration(0, 0), new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil), $ifaceNil, false, new time.Duration(0, 0), new time.Duration(0, 0), ptrType$10.nil, $chanNil, $throwNilPointerError, $throwNilPointerError); + this.Dialer = new Dialer.ptr(new time.Duration(0, 0), new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil), $ifaceNil, false, new time.Duration(0, 0), new time.Duration(0, 0), ptrType$10.nil, $chanNil, $throwNilPointerError, $throwNilPointerError, 0); this.network = ""; this.address = ""; this.testHookDialTCP = $throwNilPointerError; @@ -238954,20 +240331,22 @@ $packages["net"] = (function() { this.address = address_; this.testHookDialTCP = testHookDialTCP_; }); - ListenConfig = $newType(0, $kindStruct, "net.ListenConfig", true, "net", true, function(Control_, KeepAlive_) { + ListenConfig = $newType(0, $kindStruct, "net.ListenConfig", true, "net", true, function(Control_, KeepAlive_, mptcpStatus_) { this.$val = this; if (arguments.length === 0) { this.Control = $throwNilPointerError; this.KeepAlive = new time.Duration(0, 0); + this.mptcpStatus = 0; return; } this.Control = Control_; this.KeepAlive = KeepAlive_; + this.mptcpStatus = mptcpStatus_; }); sysListener = $newType(0, $kindStruct, "net.sysListener", true, "net", false, function(ListenConfig_, network_, address_) { this.$val = this; if (arguments.length === 0) { - this.ListenConfig = new ListenConfig.ptr($throwNilPointerError, new time.Duration(0, 0)); + this.ListenConfig = new ListenConfig.ptr($throwNilPointerError, new time.Duration(0, 0), 0); this.network = ""; this.address = ""; return; @@ -239017,6 +240396,8 @@ $packages["net"] = (function() { $pkg.rawListener = rawListener; $pkg.file = file; $pkg.netFD = netFD; + $pkg.fakeNetAddr = fakeNetAddr; + $pkg.fakeNetFD = fakeNetFD; $pkg.bufferedPipe = bufferedPipe; $pkg.Addr = Addr; $pkg.Conn = Conn; @@ -239051,6 +240432,7 @@ $packages["net"] = (function() { $pkg.SRV = SRV; $pkg.MX = MX; $pkg.NS = NS; + $pkg.mptcpStatus = mptcpStatus; $pkg.Dialer = Dialer; $pkg.sysDialer = sysDialer; $pkg.ListenConfig = ListenConfig; @@ -239083,58 +240465,60 @@ $packages["net"] = (function() { ptrType$19 = $ptrType(os.SyscallError); ptrType$20 = $ptrType(TCPListener); ptrType$21 = $ptrType(rawConn); + ptrType$22 = $ptrType(poll.FD); structType$2 = $structType("", []); - ptrType$23 = $ptrType(file); - ptrType$24 = $ptrType(bufferedPipe); - ptrType$25 = $ptrType(poll.FD); + ptrType$24 = $ptrType(file); + ptrType$25 = $ptrType(fakeNetFD); sliceType$4 = $sliceType(syscall.Iovec); ptrType$26 = $ptrType(sliceType$4); - ptrType$27 = $ptrType(conn); - ptrType$28 = $ptrType(AddrError); - ptrType$29 = $ptrType(DNSError); + ptrType$27 = $ptrType(bufferedPipe); + ptrType$28 = $ptrType(conn); + ptrType$29 = $ptrType(AddrError); + ptrType$30 = $ptrType(DNSError); sliceType$5 = $sliceType(IPAddr); - ptrType$30 = $ptrType(SRV); - sliceType$6 = $sliceType(ptrType$30); - ptrType$31 = $ptrType(MX); - sliceType$7 = $sliceType(ptrType$31); - ptrType$32 = $ptrType(NS); - sliceType$8 = $sliceType(ptrType$32); + ptrType$31 = $ptrType(SRV); + sliceType$6 = $sliceType(ptrType$31); + ptrType$32 = $ptrType(MX); + sliceType$7 = $sliceType(ptrType$32); + ptrType$33 = $ptrType(NS); + sliceType$8 = $sliceType(ptrType$33); arrayType$2 = $arrayType($Uint8, 25); sliceType$9 = $sliceType(IP); - ptrType$33 = $ptrType(IPAddr); + ptrType$34 = $ptrType(IPAddr); sliceType$10 = $sliceType(netip.Addr); - ptrType$34 = $ptrType(nettrace.Trace); + ptrType$35 = $ptrType(nettrace.Trace); funcType = $funcType([context.Context, $String, $String], [sliceType$5, $error], false); sliceType$11 = $sliceType($emptyInterface); - ptrType$35 = $ptrType(dnsConfig); + ptrType$36 = $ptrType(dnsConfig); structType$3 = $structType("net", [{prop: "laddr", name: "laddr", embedded: false, exported: false, typ: TCPAddr, tag: ""}, {prop: "value", name: "value", embedded: false, exported: false, typ: $Int, tag: ""}]); sliceType$12 = $sliceType(structType$3); - ptrType$37 = $ptrType(IPConn); - ptrType$38 = $ptrType(IPNet); + ptrType$38 = $ptrType(IPConn); + ptrType$39 = $ptrType(IPNet); sliceType$13 = $sliceType(Interface); sliceType$14 = $sliceType(Addr); + ptrType$41 = $ptrType(Dialer); + ptrType$42 = $ptrType(mptcpStatus); + ptrType$43 = $ptrType(ListenConfig); funcType$1 = $funcType([$Uintptr], [], false); funcType$2 = $funcType([$Uintptr], [$Bool], false); - ptrType$40 = $ptrType(rawListener); + ptrType$45 = $ptrType(rawListener); chanType$5 = $chanType(structType$2, false, true); chanType$6 = $chanType(ptrType$4, false, false); - ptrType$44 = $ptrType(ParseError); - ptrType$45 = $ptrType(timeoutError); - ptrType$47 = $ptrType(singleflight.Group); + ptrType$49 = $ptrType(ParseError); + ptrType$50 = $ptrType(timeoutError); + ptrType$52 = $ptrType(singleflight.Group); funcType$3 = $funcType([context.Context, $String, $String], [Conn, $error], false); - ptrType$48 = $ptrType(ipStackCapabilities); + ptrType$53 = $ptrType(ipStackCapabilities); funcType$4 = $funcType([Addr], [$Bool], false); - ptrType$49 = $ptrType(IP); - ptrType$50 = $ptrType(ipv6ZoneCache); + ptrType$54 = $ptrType(IP); + ptrType$55 = $ptrType(ipv6ZoneCache); mapType$3 = $mapType($String, $Int); mapType$4 = $mapType($Int, $String); - ptrType$51 = $ptrType(Dialer); funcType$5 = $funcType([$String, $String, syscall.RawConn], [$error], false); funcType$6 = $funcType([context.Context, $String, $String, syscall.RawConn], [$error], false); - ptrType$52 = $ptrType(sysDialer); + ptrType$56 = $ptrType(sysDialer); funcType$7 = $funcType([context.Context, $String, ptrType$16, ptrType$16], [ptrType$17, $error], false); - ptrType$53 = $ptrType(ListenConfig); - ptrType$54 = $ptrType(sysListener); + ptrType$57 = $ptrType(sysListener); setReadMsgCloseOnExec = function setReadMsgCloseOnExec$1(oob) { var oob; }; @@ -239228,7 +240612,7 @@ $packages["net"] = (function() { var _ref, _tuple, addr, b, c, err, n, sa, sa$1; c = this; addr = ptrType$6.nil; - _tuple = c.conn.fd.readFrom(b); + _tuple = c.conn.fd.fakeNetFD.readFrom(b); n = _tuple[0]; sa = _tuple[1]; err = _tuple[2]; @@ -239250,7 +240634,7 @@ $packages["net"] = (function() { err = $ifaceNil; c = this; sa = $ifaceNil; - _tuple = c.conn.fd.readMsg(b, oob, 0); + _tuple = c.conn.fd.fakeNetFD.readMsg(b, oob, 0); n = _tuple[0]; oobn = _tuple[1]; flags = _tuple[2]; @@ -239281,7 +240665,7 @@ $packages["net"] = (function() { return [0, new syscall.Errno(97)]; } sa = new syscall.SockaddrUnix.ptr(addr.Name); - return c.conn.fd.writeTo(b, sa); + return c.conn.fd.fakeNetFD.writeTo(b, sa); }; $ptrType(UnixConn).prototype.writeMsg = function writeMsg(b, oob, addr) { var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, addr, b, c, err, n, oob, oobn, sa; @@ -239311,7 +240695,7 @@ $packages["net"] = (function() { } sa = new syscall.SockaddrUnix.ptr(addr.Name); } - _tuple = c.conn.fd.writeMsg(b, oob, sa); + _tuple = c.conn.fd.fakeNetFD.writeMsg(b, oob, sa); n = _tuple[0]; oobn = _tuple[1]; err = _tuple[2]; @@ -239349,7 +240733,7 @@ $packages["net"] = (function() { var {_r, _tuple, err, fd, ln, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: ln = this; - _r = ln.fd.accept(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = ln.fd.fakeNetFD.accept(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; fd = _tuple[0]; err = _tuple[1]; @@ -239376,7 +240760,7 @@ $packages["net"] = (function() { $s = -1; return; /* */ } return; } var $f = {$blk: UnixListener·close·func1, $c: true, $r, _r, $s};return $f; }; })(ln)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r = ln[0].fd.Close(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = ln[0].fd.fakeNetFD.Close(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $24r = _r; $s = 3; case 3: return $24r; /* */ } return; } var $f = {$blk: close, $c: true, $r, $24r, _r, ln, $s};return $f; @@ -239384,7 +240768,7 @@ $packages["net"] = (function() { $ptrType(UnixListener).prototype.file = function file$1() { var _tuple, err, f, ln; ln = this; - _tuple = ln.fd.dup(); + _tuple = ln.fd.fakeNetFD.dup(); f = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { @@ -239507,7 +240891,7 @@ $packages["net"] = (function() { if (!c.conn.ok()) { $s = -1; return new syscall.Errno(22); } - _r = c.conn.fd.closeRead(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = c.conn.fd.fakeNetFD.closeRead(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return new OpError.ptr("close", c.conn.fd.net, c.conn.fd.laddr, c.conn.fd.raddr, err); @@ -239522,7 +240906,7 @@ $packages["net"] = (function() { if (!c.conn.ok()) { $s = -1; return new syscall.Errno(22); } - _r = c.conn.fd.closeWrite(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = c.conn.fd.fakeNetFD.closeWrite(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return new OpError.ptr("close", c.conn.fd.net, c.conn.fd.laddr, c.conn.fd.raddr, err); @@ -239802,17 +241186,17 @@ $packages["net"] = (function() { /* */ $s = 4; continue; /* if (_1 === (2)) { */ case 2: from[0] = new syscall.SockaddrInet4.ptr(0, arrayType$1.zero()); - _tuple = c.conn.fd.readFromInet4(b, from[0]); + _tuple = c.conn.fd.fakeNetFD.readFromInet4(b, from[0]); n = _tuple[0]; err = _tuple[1]; if ($interfaceIsEqual(err, $ifaceNil)) { ip = $clone(from[0].Addr, arrayType$1); - UDPAddr.copy(addr, new UDPAddr.ptr($convertSliceType(new sliceType$1(ip), IP), from[0].Port, "")); + UDPAddr.copy((addr === ptrType$13.nil && $throwNilPointerError(), addr), new UDPAddr.ptr($convertSliceType(new sliceType$1(ip), IP), from[0].Port, "")); } $s = 4; continue; /* } else if (_1 === (3)) { */ case 3: from$1[0] = new syscall.SockaddrInet6.ptr(0, 0, arrayType.zero()); - _tuple$1 = c.conn.fd.readFromInet6(b, from$1[0]); + _tuple$1 = c.conn.fd.fakeNetFD.readFromInet6(b, from$1[0]); n = _tuple$1[0]; err = _tuple$1[1]; /* */ if ($interfaceIsEqual(err, $ifaceNil)) { $s = 5; continue; } @@ -239820,7 +241204,7 @@ $packages["net"] = (function() { /* if ($interfaceIsEqual(err, $ifaceNil)) { */ case 5: ip$1 = $clone(from$1[0].Addr, arrayType); _r = zoneCache.name(((from$1[0].ZoneId >> 0))); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - UDPAddr.copy(addr, new UDPAddr.ptr($convertSliceType(new sliceType$1(ip$1), IP), from$1[0].Port, _r)); + UDPAddr.copy((addr === ptrType$13.nil && $throwNilPointerError(), addr), new UDPAddr.ptr($convertSliceType(new sliceType$1(ip$1), IP), from$1[0].Port, _r)); /* } */ case 6: /* } */ case 4: case 1: @@ -239847,7 +241231,7 @@ $packages["net"] = (function() { /* */ $s = 4; continue; /* if (_1 === (2)) { */ case 2: from[0] = new syscall.SockaddrInet4.ptr(0, arrayType$1.zero()); - _tuple = c.conn.fd.readFromInet4(b, from[0]); + _tuple = c.conn.fd.fakeNetFD.readFromInet4(b, from[0]); n = _tuple[0]; err = _tuple[1]; if ($interfaceIsEqual(err, $ifaceNil)) { @@ -239857,7 +241241,7 @@ $packages["net"] = (function() { $s = 4; continue; /* } else if (_1 === (3)) { */ case 3: from$1[0] = new syscall.SockaddrInet6.ptr(0, 0, arrayType.zero()); - _tuple$1 = c.conn.fd.readFromInet6(b, from$1[0]); + _tuple$1 = c.conn.fd.fakeNetFD.readFromInet6(b, from$1[0]); n = _tuple$1[0]; err = _tuple$1[1]; /* */ if ($interfaceIsEqual(err, $ifaceNil)) { $s = 5; continue; } @@ -239899,7 +241283,7 @@ $packages["net"] = (function() { /* */ $s = 4; continue; /* if (_1 === (2)) { */ case 2: sa[0] = new syscall.SockaddrInet4.ptr(0, arrayType$1.zero()); - _tuple = c.conn.fd.readMsgInet4(b, oob, 0, sa[0]); + _tuple = c.conn.fd.fakeNetFD.readMsgInet4(b, oob, 0, sa[0]); n = _tuple[0]; oobn = _tuple[1]; flags = _tuple[2]; @@ -239909,7 +241293,7 @@ $packages["net"] = (function() { $s = 4; continue; /* } else if (_1 === (3)) { */ case 3: sa$1[0] = new syscall.SockaddrInet6.ptr(0, 0, arrayType.zero()); - _tuple$1 = c.conn.fd.readMsgInet6(b, oob, 0, sa$1[0]); + _tuple$1 = c.conn.fd.fakeNetFD.readMsgInet6(b, oob, 0, sa$1[0]); n = _tuple$1[0]; oobn = _tuple$1[1]; flags = _tuple$1[2]; @@ -239946,7 +241330,7 @@ $packages["net"] = (function() { if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [0, err]; } - $s = -1; return c.conn.fd.writeToInet4(b, sa[0]); + $s = -1; return c.conn.fd.fakeNetFD.writeToInet4(b, sa[0]); /* } else if (_1 === (3)) { */ case 3: _r = ipToSockaddrInet6(addr.IP, addr.Port, addr.Zone); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple$1 = _r; @@ -239955,7 +241339,7 @@ $packages["net"] = (function() { if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [0, err$1]; } - $s = -1; return c.conn.fd.writeToInet6(b, sa$1[0]); + $s = -1; return c.conn.fd.fakeNetFD.writeToInet6(b, sa$1[0]); /* } else { */ case 4: $s = -1; return [0, new AddrError.ptr("invalid address family", addr.IP.String())]; /* } */ case 5: @@ -239986,7 +241370,7 @@ $packages["net"] = (function() { if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [0, err]; } - $s = -1; return c.conn.fd.writeToInet4(b, sa[0]); + $s = -1; return c.conn.fd.fakeNetFD.writeToInet4(b, sa[0]); /* } else if (_1 === (3)) { */ case 3: _r = addrPortToSockaddrInet6($clone(addr, netip.AddrPort)); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple$1 = _r; @@ -239995,7 +241379,7 @@ $packages["net"] = (function() { if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [0, err$1]; } - $s = -1; return c.conn.fd.writeToInet6(b, sa$1[0]); + $s = -1; return c.conn.fd.fakeNetFD.writeToInet6(b, sa$1[0]); /* } else { */ case 4: $s = -1; return [0, new AddrError.ptr("invalid address family", $clone($clone(addr, netip.AddrPort).Addr(), netip.Addr).String())]; /* } */ case 5: @@ -240041,7 +241425,7 @@ $packages["net"] = (function() { err = _tmp$8; $s = -1; return [n, oobn, err]; } - _tuple$1 = c.conn.fd.writeMsg(b, oob, sa); + _tuple$1 = c.conn.fd.fakeNetFD.writeMsg(b, oob, sa); n = _tuple$1[0]; oobn = _tuple$1[1]; err = _tuple$1[2]; @@ -240092,7 +241476,7 @@ $packages["net"] = (function() { err = _tmp$8; $s = -1; return [n, oobn, err]; } - _tuple$1 = c.conn.fd.writeMsgInet4(b, oob, sa[0]); + _tuple$1 = c.conn.fd.fakeNetFD.writeMsgInet4(b, oob, sa[0]); n = _tuple$1[0]; oobn = _tuple$1[1]; err = _tuple$1[2]; @@ -240111,7 +241495,7 @@ $packages["net"] = (function() { err = _tmp$11; $s = -1; return [n, oobn, err]; } - _tuple$3 = c.conn.fd.writeMsgInet6(b, oob, sa$1[0]); + _tuple$3 = c.conn.fd.fakeNetFD.writeMsgInet6(b, oob, sa$1[0]); n = _tuple$3[0]; oobn = _tuple$3[1]; err = _tuple$3[2]; @@ -240587,7 +241971,16 @@ $packages["net"] = (function() { /* */ } return; } var $f = {$blk: dialTCP, $c: true, $r, $24r, $24r$1, $24r$2, _r, _r$1, _r$2, ctx, h, h$1, laddr, raddr, sd, $s};return $f; }; $ptrType(sysDialer).prototype.doDialTCP = function doDialTCP(ctx, laddr, raddr) { - var {$24r, _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, ctrlCtxFn, ctx, err, fd, i, laddr, raddr, sd, $s, $r, $c} = $restore(this, {ctx, laddr, raddr}); + var {$24r, _r, ctx, laddr, raddr, sd, $s, $r, $c} = $restore(this, {ctx, laddr, raddr}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + sd = this; + _r = sd.doDialTCPProto(ctx, laddr, raddr, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: doDialTCP, $c: true, $r, $24r, _r, ctx, laddr, raddr, sd, $s};return $f; + }; + $ptrType(sysDialer).prototype.doDialTCPProto = function doDialTCPProto(ctx, laddr, raddr, proto) { + var {$24r, _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, ctrlCtxFn, ctx, err, fd, i, laddr, proto, raddr, sd, $s, $r, $c} = $restore(this, {ctx, laddr, raddr, proto}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: sd = [sd]; sd[0] = this; @@ -240595,16 +241988,16 @@ $packages["net"] = (function() { /* */ if (ctrlCtxFn === $throwNilPointerError && !(sd[0].Dialer.Control === $throwNilPointerError)) { $s = 1; continue; } /* */ $s = 2; continue; /* if (ctrlCtxFn === $throwNilPointerError && !(sd[0].Dialer.Control === $throwNilPointerError)) { */ case 1: - ctrlCtxFn = (function(sd) { return function sysDialer·doDialTCP·func1(cxt, network, address, c) { + ctrlCtxFn = (function(sd) { return function sysDialer·doDialTCPProto·func1(cxt, network, address, c) { var {$24r, _r, address, c, cxt, network, $s, $r, $c} = $restore(this, {cxt, network, address, c}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: _r = sd[0].Dialer.Control(network, address, c); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $24r = _r; $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: sysDialer·doDialTCP·func1, $c: true, $r, $24r, _r, address, c, cxt, network, $s};return $f; + /* */ } return; } var $f = {$blk: sysDialer·doDialTCPProto·func1, $c: true, $r, $24r, _r, address, c, cxt, network, $s};return $f; }; })(sd); /* } */ case 2: - _r = internetSocket(ctx, sd[0].network, laddr, raddr, 1, 0, "dial", ctrlCtxFn); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = internetSocket(ctx, sd[0].network, laddr, raddr, 1, proto, "dial", ctrlCtxFn); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; fd = _tuple[0]; err = _tuple[1]; @@ -240614,10 +242007,10 @@ $packages["net"] = (function() { /* */ if ($interfaceIsEqual(err, $ifaceNil)) { $s = 6; continue; } /* */ $s = 7; continue; /* if ($interfaceIsEqual(err, $ifaceNil)) { */ case 6: - _r$1 = fd.Close(); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1 = fd.fakeNetFD.Close(); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _r$1; /* } */ case 7: - _r$2 = internetSocket(ctx, sd[0].network, laddr, raddr, 1, 0, "dial", ctrlCtxFn); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2 = internetSocket(ctx, sd[0].network, laddr, raddr, 1, proto, "dial", ctrlCtxFn); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _tuple$1 = _r$2; fd = _tuple$1[0]; err = _tuple$1[1]; @@ -240630,7 +242023,7 @@ $packages["net"] = (function() { _r$3 = newTCPConn(fd, sd[0].Dialer.KeepAlive, testHookSetKeepAlive); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } $24r = [_r$3, $ifaceNil]; $s = 11; case 11: return $24r; - /* */ } return; } var $f = {$blk: doDialTCP, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, ctrlCtxFn, ctx, err, fd, i, laddr, raddr, sd, $s};return $f; + /* */ } return; } var $f = {$blk: doDialTCPProto, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, ctrlCtxFn, ctx, err, fd, i, laddr, proto, raddr, sd, $s};return $f; }; selfConnect = function selfConnect$1(fd, err) { var err, fd, l, r; @@ -240669,7 +242062,7 @@ $packages["net"] = (function() { var {$24r, _r, _r$1, _tuple, err, fd, ln, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: ln = this; - _r = ln.fd.accept(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = ln.fd.fakeNetFD.accept(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; fd = _tuple[0]; err = _tuple[1]; @@ -240685,7 +242078,7 @@ $packages["net"] = (function() { var {$24r, _r, ln, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: ln = this; - _r = ln.fd.Close(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = ln.fd.fakeNetFD.Close(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $24r = _r; $s = 2; case 2: return $24r; /* */ } return; } var $f = {$blk: close$1, $c: true, $r, $24r, _r, ln, $s};return $f; @@ -240693,7 +242086,7 @@ $packages["net"] = (function() { $ptrType(TCPListener).prototype.file = function file$2() { var _tuple, err, f, ln; ln = this; - _tuple = ln.fd.dup(); + _tuple = ln.fd.fakeNetFD.dup(); f = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { @@ -240702,7 +242095,16 @@ $packages["net"] = (function() { return [f, $ifaceNil]; }; $ptrType(sysListener).prototype.listenTCP = function listenTCP(ctx, laddr) { - var {_r, _tuple, ctrlCtxFn, ctx, err, fd, laddr, sl, $s, $r, $c} = $restore(this, {ctx, laddr}); + var {$24r, _r, ctx, laddr, sl, $s, $r, $c} = $restore(this, {ctx, laddr}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + sl = this; + _r = sl.listenTCPProto(ctx, laddr, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: listenTCP, $c: true, $r, $24r, _r, ctx, laddr, sl, $s};return $f; + }; + $ptrType(sysListener).prototype.listenTCPProto = function listenTCPProto(ctx, laddr, proto) { + var {_r, _tuple, ctrlCtxFn, ctx, err, fd, laddr, proto, sl, $s, $r, $c} = $restore(this, {ctx, laddr, proto}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: sl = [sl]; sl[0] = this; @@ -240710,16 +242112,16 @@ $packages["net"] = (function() { /* */ if (!(sl[0].ListenConfig.Control === $throwNilPointerError)) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!(sl[0].ListenConfig.Control === $throwNilPointerError)) { */ case 1: - ctrlCtxFn = (function(sl) { return function sysListener·listenTCP·func1(cxt, network, address, c) { + ctrlCtxFn = (function(sl) { return function sysListener·listenTCPProto·func1(cxt, network, address, c) { var {$24r, _r, address, c, cxt, network, $s, $r, $c} = $restore(this, {cxt, network, address, c}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: _r = sl[0].ListenConfig.Control(network, address, c); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $24r = _r; $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: sysListener·listenTCP·func1, $c: true, $r, $24r, _r, address, c, cxt, network, $s};return $f; + /* */ } return; } var $f = {$blk: sysListener·listenTCPProto·func1, $c: true, $r, $24r, _r, address, c, cxt, network, $s};return $f; }; })(sl); /* } */ case 2: - _r = internetSocket(ctx, sl[0].network, laddr, $ifaceNil, 1, 0, "listen", ctrlCtxFn); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = internetSocket(ctx, sl[0].network, laddr, $ifaceNil, 1, proto, "listen", ctrlCtxFn); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; fd = _tuple[0]; err = _tuple[1]; @@ -240727,7 +242129,7 @@ $packages["net"] = (function() { $s = -1; return [ptrType$20.nil, err]; } $s = -1; return [new TCPListener.ptr(fd, $clone(sl[0].ListenConfig, ListenConfig)), $ifaceNil]; - /* */ } return; } var $f = {$blk: listenTCP, $c: true, $r, _r, _tuple, ctrlCtxFn, ctx, err, fd, laddr, sl, $s};return $f; + /* */ } return; } var $f = {$blk: listenTCPProto, $c: true, $r, _r, _tuple, ctrlCtxFn, ctx, err, fd, laddr, proto, sl, $s};return $f; }; $ptrType(TCPAddr).prototype.AddrPort = function AddrPort$1() { var _tuple, a, na; @@ -240806,7 +242208,7 @@ $packages["net"] = (function() { if (!c.conn.ok()) { $s = -1; return new syscall.Errno(22); } - _r = c.conn.fd.closeRead(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = c.conn.fd.fakeNetFD.closeRead(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return new OpError.ptr("close", c.conn.fd.net, c.conn.fd.laddr, c.conn.fd.raddr, err); @@ -240821,7 +242223,7 @@ $packages["net"] = (function() { if (!c.conn.ok()) { $s = -1; return new syscall.Errno(22); } - _r = c.conn.fd.closeWrite(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = c.conn.fd.fakeNetFD.closeWrite(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return new OpError.ptr("close", c.conn.fd.net, c.conn.fd.laddr, c.conn.fd.raddr, err); @@ -240877,6 +242279,14 @@ $packages["net"] = (function() { } return $ifaceNil; }; + $ptrType(TCPConn).prototype.MultipathTCP = function MultipathTCP() { + var c; + c = this; + if (!c.conn.ok()) { + return [false, new syscall.Errno(22)]; + } + return [isUsingMultipathTCP(c.conn.fd), $ifaceNil]; + }; newTCPConn = function newTCPConn$1(fd, keepAlive, keepAliveHook) { var {fd, keepAlive, keepAliveHook, $s, $r, $c} = $restore(this, {fd, keepAlive, keepAliveHook}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: @@ -241086,6 +242496,14 @@ $packages["net"] = (function() { $s = -1; return err; /* */ } return; } var $f = {$blk: Write, $c: true, $r, _r, c, err, f, $s};return $f; }; + $ptrType(rawConn).prototype.PollFD = function PollFD() { + var c; + c = this; + if (!c.ok()) { + return ptrType$22.nil; + } + return c.fd.pfd; + }; newRawConn = function newRawConn$1(fd) { var fd; return [new rawConn.ptr(fd), $ifaceNil]; @@ -241327,7 +242745,7 @@ $packages["net"] = (function() { fd = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [ptrType$23.nil, err]; + $s = -1; return [ptrType$24.nil, err]; } $s = -1; return [new file.ptr(fd, $makeSlice(sliceType$1, 0, 65536), false), $ifaceNil]; /* */ } return; } var $f = {$blk: open$1, $c: true, $r, _r, _tuple, err, fd, name, $s};return $f; @@ -241410,71 +242828,6 @@ $packages["net"] = (function() { ok$3 = _tmp$8; return [n, i, ok$3]; }; - xtoi = function xtoi$1(s) { - var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, i, n, ok$3, s; - n = 0; - i = 0; - ok$3 = false; - n = 0; - i = 0; - while (true) { - if (!(i < s.length)) { break; } - if (48 <= s.charCodeAt(i) && s.charCodeAt(i) <= 57) { - n = $imul(n, (16)); - n = n + ((((s.charCodeAt(i) - 48 << 24 >>> 24) >> 0))) >> 0; - } else if (97 <= s.charCodeAt(i) && s.charCodeAt(i) <= 102) { - n = $imul(n, (16)); - n = n + (((((s.charCodeAt(i) - 97 << 24 >>> 24) >> 0)) + 10 >> 0)) >> 0; - } else if (65 <= s.charCodeAt(i) && s.charCodeAt(i) <= 70) { - n = $imul(n, (16)); - n = n + (((((s.charCodeAt(i) - 65 << 24 >>> 24) >> 0)) + 10 >> 0)) >> 0; - } else { - break; - } - if (n >= 16777215) { - _tmp = 0; - _tmp$1 = i; - _tmp$2 = false; - n = _tmp; - i = _tmp$1; - ok$3 = _tmp$2; - return [n, i, ok$3]; - } - i = i + (1) >> 0; - } - if (i === 0) { - _tmp$3 = 0; - _tmp$4 = i; - _tmp$5 = false; - n = _tmp$3; - i = _tmp$4; - ok$3 = _tmp$5; - return [n, i, ok$3]; - } - _tmp$6 = n; - _tmp$7 = i; - _tmp$8 = true; - n = _tmp$6; - i = _tmp$7; - ok$3 = _tmp$8; - return [n, i, ok$3]; - }; - appendHex = function appendHex$1(dst, i) { - var dst, i, j, v, y; - if (i === 0) { - return $append(dst, 48); - } - j = 7; - while (true) { - if (!(j >= 0)) { break; } - v = (y = ((($imul(j, 4)) >>> 0)), y < 32 ? (i >>> y) : 0) >>> 0; - if (v > 0) { - dst = $append(dst, "0123456789abcdef".charCodeAt(((v & 15) >>> 0))); - } - j = j - (1) >> 0; - } - return dst; - }; last = function last$1(s, b) { var b, i, s; i = s.length; @@ -241502,9 +242855,6 @@ $packages["net"] = (function() { _i++; } }; - init = function init$2() { - netGo = true; - }; nextPort = function nextPort$1() { var {$24r, $s, $deferred, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); @@ -241516,48 +242866,207 @@ $packages["net"] = (function() { /* */ } return; } } catch(err) { $err = err; $s = -1; return 0; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: nextPort$1, $c: true, $r, $24r, $s, $deferred};return $f; } } }; socket = function socket$1(ctx, net, family$3, sotype, proto, ipv6only$1, laddr, raddr, ctrlCtxFn) { - var {_entry, _key, _r, _r$1, _tuple, ctrlCtxFn, ctx, family$3, fd, fd2, ipv6only$1, l, l$1, laddr, net, ok$3, proto, raddr, sotype, $s, $r, $c} = $restore(this, {ctx, net, family$3, sotype, proto, ipv6only$1, laddr, raddr, ctrlCtxFn}); + var {$24r, $24r$1, _r, _r$1, ctrlCtxFn, ctx, family$3, fd, fd2, ipv6only$1, laddr, net, proto, raddr, sotype, $s, $r, $c} = $restore(this, {ctx, net, family$3, sotype, proto, ipv6only$1, laddr, raddr, ctrlCtxFn}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - fd = new netFD.ptr(ptrType$24.nil, ptrType$24.nil, $chanNil, new sync.Mutex.ptr(0, 0), false, false, family$3, sotype, net, $ifaceNil, $ifaceNil, new poll.FD.ptr(new poll.fdMutex.ptr(new $Uint64(0, 0), 0, 0), 0, new poll.pollDesc.ptr(ptrType$25.nil, false), ptrType$26.nil, 0, 0, false, false, false), false); + fd = new netFD.ptr(ptrType$25.nil, family$3, sotype, net, $ifaceNil, $ifaceNil, new poll.FD.ptr(new poll.fdMutex.ptr(new $Uint64(0, 0), 0, 0), 0, new poll.SysFile.ptr(ptrType$26.nil), new poll.pollDesc.ptr(ptrType$22.nil, false), 0, 0, false, false, false), false); /* */ if (!($interfaceIsEqual(laddr, $ifaceNil)) && $interfaceIsEqual(raddr, $ifaceNil)) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!($interfaceIsEqual(laddr, $ifaceNil)) && $interfaceIsEqual(raddr, $ifaceNil)) { */ case 1: - l = $assertType(laddr, ptrType$16); + _r = fakelistener(fd, laddr); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; + /* } */ case 2: + fd2 = new netFD.ptr(ptrType$25.nil, family$3, sotype, net, $ifaceNil, $ifaceNil, new poll.FD.ptr(new poll.fdMutex.ptr(new $Uint64(0, 0), 0, 0), 0, new poll.SysFile.ptr(ptrType$26.nil), new poll.pollDesc.ptr(ptrType$22.nil, false), 0, 0, false, false, false), false); + _r$1 = fakeconn(fd, fd2, laddr, raddr); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r$1 = _r$1; + $s = 6; case 6: return $24r$1; + /* */ } return; } var $f = {$blk: socket$1, $c: true, $r, $24r, $24r$1, _r, _r$1, ctrlCtxFn, ctx, family$3, fd, fd2, ipv6only$1, laddr, net, proto, raddr, sotype, $s};return $f; + }; + fakeIPAndPort = function fakeIPAndPort$1(ip, port) { + var {_r, ip, port, $s, $r, $c} = $restore(this, {ip, port}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (ip === IP.nil) { + ip = IPv4(127, 0, 0, 1); + } + /* */ if (port === 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (port === 0) { */ case 1: _r = nextPort(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - fd.laddr = new TCPAddr.ptr(l.IP, _r, l.Zone); - fd.listener = true; - fd.incoming = new $Chan(ptrType$4, 1024); - $r = listenersMu.Lock(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _key = $assertType(fd.laddr, ptrType$16).String(); (listeners || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: fd }); - $r = listenersMu.Unlock(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return [fd, $ifaceNil]; + port = _r; /* } */ case 2: - _r$1 = nextPort(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - fd.laddr = new TCPAddr.ptr(IPv4(127, 0, 0, 1), _r$1, ""); + $s = -1; return [ip, port]; + /* */ } return; } var $f = {$blk: fakeIPAndPort$1, $c: true, $r, _r, ip, port, $s};return $f; + }; + fakeTCPAddr = function fakeTCPAddr$1(addr) { + var {_r, _tmp, _tmp$1, _tmp$2, _tuple, addr, ip, port, zone, $s, $r, $c} = $restore(this, {addr}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + ip = IP.nil; + port = 0; + zone = ""; + if (!(addr === ptrType$16.nil)) { + _tmp = addr.IP; + _tmp$1 = addr.Port; + _tmp$2 = addr.Zone; + ip = _tmp; + port = _tmp$1; + zone = _tmp$2; + } + _r = fakeIPAndPort(ip, port); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + ip = _tuple[0]; + port = _tuple[1]; + $s = -1; return new TCPAddr.ptr(ip, port, zone); + /* */ } return; } var $f = {$blk: fakeTCPAddr$1, $c: true, $r, _r, _tmp, _tmp$1, _tmp$2, _tuple, addr, ip, port, zone, $s};return $f; + }; + fakeUDPAddr = function fakeUDPAddr$1(addr) { + var {_r, _tmp, _tmp$1, _tmp$2, _tuple, addr, ip, port, zone, $s, $r, $c} = $restore(this, {addr}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + ip = IP.nil; + port = 0; + zone = ""; + if (!(addr === ptrType$13.nil)) { + _tmp = addr.IP; + _tmp$1 = addr.Port; + _tmp$2 = addr.Zone; + ip = _tmp; + port = _tmp$1; + zone = _tmp$2; + } + _r = fakeIPAndPort(ip, port); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + ip = _tuple[0]; + port = _tuple[1]; + $s = -1; return new UDPAddr.ptr(ip, port, zone); + /* */ } return; } var $f = {$blk: fakeUDPAddr$1, $c: true, $r, _r, _tmp, _tmp$1, _tmp$2, _tuple, addr, ip, port, zone, $s};return $f; + }; + fakeUnixAddr = function fakeUnixAddr$1(sotype, addr) { + var _1, _tmp, _tmp$1, addr, name, net, sotype; + _tmp = ""; + _tmp$1 = ""; + net = _tmp; + name = _tmp$1; + if (!(addr === ptrType$6.nil)) { + name = addr.Name; + } + _1 = sotype; + if (_1 === (2)) { + net = "unixgram"; + } else if (_1 === (4)) { + net = "unixpacket"; + } else { + net = "unix"; + } + return new UnixAddr.ptr(name, net); + }; + fakelistener = function fakelistener$1(fd, laddr) { + var {$24r, $24r$1, _entry, _key, _r, _r$1, _r$2, _r$3, _ref, _tuple, exists, fd, l, l$1, l$2, l$3, laddr, listener, $s, $deferred, $r, $c} = $restore(this, {fd, laddr}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + _ref = laddr; + /* */ if ($assertType(_ref, ptrType$16, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$6, true)[1]) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if ($assertType(_ref, ptrType$16, true)[1]) { */ case 1: + l = _ref.$val; + _r = fakeTCPAddr(l); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + laddr = _r; + $s = 5; continue; + /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 2: + l$1 = _ref.$val; + _r$1 = fakeUDPAddr(l$1); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + laddr = _r$1; + $s = 5; continue; + /* } else if ($assertType(_ref, ptrType$6, true)[1]) { */ case 3: + l$2 = _ref.$val; + if (l$2.Name === "") { + $s = -1; return [ptrType$4.nil, new syscall.Errno(2)]; + } + laddr = fakeUnixAddr(fd.sotype, l$2); + $s = 5; continue; + /* } else { */ case 4: + l$3 = _ref; + $s = -1; return [ptrType$4.nil, new syscall.Errno(95)]; + /* } */ case 5: + _r$2 = laddr.Network(); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = laddr.String(); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + listener = new fakeNetAddr.ptr(_r$2, _r$3); + fd.fakeNetFD = new fakeNetFD.ptr($clone(listener, fakeNetAddr), ptrType$27.nil, ptrType$27.nil, new $Chan(ptrType$4, 1024), new sync.Mutex.ptr(0, 0), false); + fd.laddr = laddr; + $r = listenersMu.Lock(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(listenersMu, "Unlock"), []]); + _tuple = (_entry = $mapIndex(listeners,fakeNetAddr.keyFor(listener)), _entry !== undefined ? [_entry.v, true] : [ptrType$4.nil, false]); + exists = _tuple[1]; + /* */ if (exists) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (exists) { */ case 11: + $24r = [ptrType$4.nil, new syscall.Errno(98)]; + $s = 13; case 13: return $24r; + /* } */ case 12: + _key = $clone(listener, fakeNetAddr); (listeners || $throwRuntimeError("assignment to entry in nil map")).set(fakeNetAddr.keyFor(_key), { k: _key, v: fd }); + $24r$1 = [fd, $ifaceNil]; + $s = 14; case 14: return $24r$1; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [ptrType$4.nil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: fakelistener$1, $c: true, $r, $24r, $24r$1, _entry, _key, _r, _r$1, _r$2, _r$3, _ref, _tuple, exists, fd, l, l$1, l$2, l$3, laddr, listener, $s, $deferred};return $f; } } + }; + fakeconn = function fakeconn$1(fd, fd2, laddr, raddr) { + var {$24r, $24r$1, _entry, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _tuple, fd, fd2, l, laddr, listener, ok$3, r, r$1, r$2, r$3, raddr, $s, $deferred, $r, $c} = $restore(this, {fd, fd2, laddr, raddr}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + _ref = raddr; + /* */ if ($assertType(_ref, ptrType$16, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$6, true)[1]) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if ($assertType(_ref, ptrType$16, true)[1]) { */ case 1: + r = _ref.$val; + _r = fakeTCPAddr(r); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + r = _r; + raddr = r; + _r$1 = fakeTCPAddr($assertType(laddr, ptrType$16)); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + laddr = _r$1; + $s = 5; continue; + /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 2: + r$1 = _ref.$val; + _r$2 = fakeUDPAddr(r$1); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + r$1 = _r$2; + raddr = r$1; + _r$3 = fakeUDPAddr($assertType(laddr, ptrType$13)); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + laddr = _r$3; + $s = 5; continue; + /* } else if ($assertType(_ref, ptrType$6, true)[1]) { */ case 3: + r$2 = _ref.$val; + r$2 = fakeUnixAddr(fd.sotype, r$2); + raddr = r$2; + laddr = new UnixAddr.ptr(r$2.Name, r$2.Net); + $s = 5; continue; + /* } else { */ case 4: + r$3 = _ref; + $s = -1; return [ptrType$4.nil, new syscall.Errno(97)]; + /* } */ case 5: + fd.laddr = laddr; fd.raddr = raddr; - fd.r = newBufferedPipe(65536); - fd.w = newBufferedPipe(65536); - fd2 = new netFD.ptr(ptrType$24.nil, ptrType$24.nil, $chanNil, new sync.Mutex.ptr(0, 0), false, false, fd.family, sotype, net, $ifaceNil, $ifaceNil, new poll.FD.ptr(new poll.fdMutex.ptr(new $Uint64(0, 0), 0, 0), 0, new poll.pollDesc.ptr(ptrType$25.nil, false), ptrType$26.nil, 0, 0, false, false, false), false); + fd.fakeNetFD = new fakeNetFD.ptr(new fakeNetAddr.ptr("", ""), newBufferedPipe(65536), newBufferedPipe(65536), $chanNil, new sync.Mutex.ptr(0, 0), false); + fd2.fakeNetFD = new fakeNetFD.ptr(new fakeNetAddr.ptr("", ""), fd.fakeNetFD.w, fd.fakeNetFD.r, $chanNil, new sync.Mutex.ptr(0, 0), false); fd2.laddr = fd.raddr; fd2.raddr = fd.laddr; - fd2.r = fd.w; - fd2.w = fd.r; - $r = listenersMu.Lock(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _tuple = (_entry = $mapIndex(listeners,$String.keyFor($assertType(fd.raddr, ptrType$16).String())), _entry !== undefined ? [_entry.v, true] : [ptrType$4.nil, false]); - l$1 = _tuple[0]; + _r$4 = fd.raddr.Network(); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$5 = fd.raddr.String(); /* */ $s = 11; case 11: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + listener = new fakeNetAddr.ptr(_r$4, _r$5); + $r = listenersMu.Lock(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(listenersMu, "Unlock"), []]); + _tuple = (_entry = $mapIndex(listeners,fakeNetAddr.keyFor(listener)), _entry !== undefined ? [_entry.v, true] : [ptrType$4.nil, false]); + l = _tuple[0]; ok$3 = _tuple[1]; - /* */ if (!ok$3) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (!ok$3) { */ case 8: - $r = listenersMu.Unlock(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return [ptrType$4.nil, new syscall.Errno(111)]; - /* } */ case 9: - $r = $send(l$1.incoming, fd2); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = listenersMu.Unlock(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return [fd, $ifaceNil]; - /* */ } return; } var $f = {$blk: socket$1, $c: true, $r, _entry, _key, _r, _r$1, _tuple, ctrlCtxFn, ctx, family$3, fd, fd2, ipv6only$1, l, l$1, laddr, net, ok$3, proto, raddr, sotype, $s};return $f; + /* */ if (!ok$3) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (!ok$3) { */ case 13: + $24r = [ptrType$4.nil, new syscall.Errno(111)]; + $s = 15; case 15: return $24r; + /* } */ case 14: + $r = $send(l.fakeNetFD.incoming, fd2); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $24r$1 = [fd, $ifaceNil]; + $s = 17; case 17: return $24r$1; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [ptrType$4.nil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: fakeconn$1, $c: true, $r, $24r, $24r$1, _entry, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _tuple, fd, fd2, l, laddr, listener, ok$3, r, r$1, r$2, r$3, raddr, $s, $deferred};return $f; } } }; - $ptrType(netFD).prototype.Read = function Read$3(p) { + $ptrType(fakeNetFD).prototype.Read = function Read$3(p) { var {$24r, _r, _tuple, err, fd, n, p, $s, $r, $c} = $restore(this, {p}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: n = 0; @@ -241571,7 +243080,7 @@ $packages["net"] = (function() { $s = 2; case 2: return $24r; /* */ } return; } var $f = {$blk: Read$3, $c: true, $r, $24r, _r, _tuple, err, fd, n, p, $s};return $f; }; - $ptrType(netFD).prototype.Write = function Write$3(p) { + $ptrType(fakeNetFD).prototype.Write = function Write$3(p) { var {$24r, _r, _tuple, err, fd, nn, p, $s, $r, $c} = $restore(this, {p}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: nn = 0; @@ -241585,8 +243094,8 @@ $packages["net"] = (function() { $s = 2; case 2: return $24r; /* */ } return; } var $f = {$blk: Write$3, $c: true, $r, $24r, _r, _tuple, err, fd, nn, p, $s};return $f; }; - $ptrType(netFD).prototype.Close = function Close$3() { - var {_r, fd, $s, $r, $c} = $restore(this, {}); + $ptrType(fakeNetFD).prototype.Close = function Close$3() { + var {fd, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: fd = this; $r = fd.closedMu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } @@ -241598,23 +243107,22 @@ $packages["net"] = (function() { /* } */ case 3: fd.closed = true; $r = fd.closedMu.Unlock(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (fd.listener) { $s = 6; continue; } + /* */ if (!($equal(fd.listener, (new fakeNetAddr.ptr("", "")), fakeNetAddr))) { $s = 6; continue; } /* */ $s = 7; continue; - /* if (fd.listener) { */ case 6: + /* if (!($equal(fd.listener, (new fakeNetAddr.ptr("", "")), fakeNetAddr))) { */ case 6: $r = listenersMu.Lock(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r = fd.laddr.String(); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $mapDelete(listeners, $String.keyFor(_r)); + $mapDelete(listeners, fakeNetAddr.keyFor(fd.listener)); $close(fd.incoming); - fd.listener = false; - $r = listenersMu.Unlock(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + fakeNetAddr.copy(fd.listener, new fakeNetAddr.ptr("", "")); + $r = listenersMu.Unlock(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return $ifaceNil; /* } */ case 7: - $r = fd.r.Close(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = fd.w.Close(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fd.r.Close(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fd.w.Close(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: Close$3, $c: true, $r, _r, fd, $s};return $f; + /* */ } return; } var $f = {$blk: Close$3, $c: true, $r, fd, $s};return $f; }; - $ptrType(netFD).prototype.closeRead = function closeRead() { + $ptrType(fakeNetFD).prototype.closeRead = function closeRead() { var {fd, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: fd = this; @@ -241622,7 +243130,7 @@ $packages["net"] = (function() { $s = -1; return $ifaceNil; /* */ } return; } var $f = {$blk: closeRead, $c: true, $r, fd, $s};return $f; }; - $ptrType(netFD).prototype.closeWrite = function closeWrite() { + $ptrType(fakeNetFD).prototype.closeWrite = function closeWrite() { var {fd, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: fd = this; @@ -241630,7 +243138,7 @@ $packages["net"] = (function() { $s = -1; return $ifaceNil; /* */ } return; } var $f = {$blk: closeWrite, $c: true, $r, fd, $s};return $f; }; - $ptrType(netFD).prototype.accept = function accept$2() { + $ptrType(fakeNetFD).prototype.accept = function accept$2() { var {_r, _tuple, c, fd, ok$3, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: fd = this; @@ -241644,7 +243152,7 @@ $packages["net"] = (function() { $s = -1; return [c, $ifaceNil]; /* */ } return; } var $f = {$blk: accept$2, $c: true, $r, _r, _tuple, c, fd, ok$3, $s};return $f; }; - $ptrType(netFD).prototype.SetDeadline = function SetDeadline$3(t) { + $ptrType(fakeNetFD).prototype.SetDeadline = function SetDeadline$3(t) { var {fd, t, $s, $r, $c} = $restore(this, {t}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: fd = this; @@ -241653,7 +243161,7 @@ $packages["net"] = (function() { $s = -1; return $ifaceNil; /* */ } return; } var $f = {$blk: SetDeadline$3, $c: true, $r, fd, t, $s};return $f; }; - $ptrType(netFD).prototype.SetReadDeadline = function SetReadDeadline$1(t) { + $ptrType(fakeNetFD).prototype.SetReadDeadline = function SetReadDeadline$1(t) { var {fd, t, $s, $r, $c} = $restore(this, {t}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: fd = this; @@ -241661,7 +243169,7 @@ $packages["net"] = (function() { $s = -1; return $ifaceNil; /* */ } return; } var $f = {$blk: SetReadDeadline$1, $c: true, $r, fd, t, $s};return $f; }; - $ptrType(netFD).prototype.SetWriteDeadline = function SetWriteDeadline$1(t) { + $ptrType(fakeNetFD).prototype.SetWriteDeadline = function SetWriteDeadline$1(t) { var {fd, t, $s, $r, $c} = $restore(this, {t}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: fd = this; @@ -241793,7 +243301,7 @@ $packages["net"] = (function() { var family$3, proto, sotype; return [0, new syscall.Errno(38)]; }; - $ptrType(netFD).prototype.readFrom = function readFrom$3(p) { + $ptrType(fakeNetFD).prototype.readFrom = function readFrom$3(p) { var _tmp, _tmp$1, _tmp$2, err, fd, n, p, sa; n = 0; sa = $ifaceNil; @@ -241807,7 +243315,7 @@ $packages["net"] = (function() { err = _tmp$2; return [n, sa, err]; }; - $ptrType(netFD).prototype.readFromInet4 = function readFromInet4(p, sa) { + $ptrType(fakeNetFD).prototype.readFromInet4 = function readFromInet4(p, sa) { var _tmp, _tmp$1, err, fd, n, p, sa; n = 0; err = $ifaceNil; @@ -241818,7 +243326,7 @@ $packages["net"] = (function() { err = _tmp$1; return [n, err]; }; - $ptrType(netFD).prototype.readFromInet6 = function readFromInet6(p, sa) { + $ptrType(fakeNetFD).prototype.readFromInet6 = function readFromInet6(p, sa) { var _tmp, _tmp$1, err, fd, n, p, sa; n = 0; err = $ifaceNil; @@ -241829,7 +243337,7 @@ $packages["net"] = (function() { err = _tmp$1; return [n, err]; }; - $ptrType(netFD).prototype.readMsg = function readMsg$2(p, oob, flags) { + $ptrType(fakeNetFD).prototype.readMsg = function readMsg$2(p, oob, flags) { var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, err, fd, flags, n, oob, oobn, p, retflags, sa; n = 0; oobn = 0; @@ -241849,7 +243357,7 @@ $packages["net"] = (function() { err = _tmp$4; return [n, oobn, retflags, sa, err]; }; - $ptrType(netFD).prototype.readMsgInet4 = function readMsgInet4(p, oob, flags, sa) { + $ptrType(fakeNetFD).prototype.readMsgInet4 = function readMsgInet4(p, oob, flags, sa) { var _tmp, _tmp$1, _tmp$2, _tmp$3, err, fd, flags, n, oob, oobn, p, retflags, sa; n = 0; oobn = 0; @@ -241866,7 +243374,7 @@ $packages["net"] = (function() { err = _tmp$3; return [n, oobn, retflags, err]; }; - $ptrType(netFD).prototype.readMsgInet6 = function readMsgInet6(p, oob, flags, sa) { + $ptrType(fakeNetFD).prototype.readMsgInet6 = function readMsgInet6(p, oob, flags, sa) { var _tmp, _tmp$1, _tmp$2, _tmp$3, err, fd, flags, n, oob, oobn, p, retflags, sa; n = 0; oobn = 0; @@ -241883,7 +243391,7 @@ $packages["net"] = (function() { err = _tmp$3; return [n, oobn, retflags, err]; }; - $ptrType(netFD).prototype.writeMsgInet4 = function writeMsgInet4(p, oob, sa) { + $ptrType(fakeNetFD).prototype.writeMsgInet4 = function writeMsgInet4(p, oob, sa) { var _tmp, _tmp$1, _tmp$2, err, fd, n, oob, oobn, p, sa; n = 0; oobn = 0; @@ -241897,7 +243405,7 @@ $packages["net"] = (function() { err = _tmp$2; return [n, oobn, err]; }; - $ptrType(netFD).prototype.writeMsgInet6 = function writeMsgInet6(p, oob, sa) { + $ptrType(fakeNetFD).prototype.writeMsgInet6 = function writeMsgInet6(p, oob, sa) { var _tmp, _tmp$1, _tmp$2, err, fd, n, oob, oobn, p, sa; n = 0; oobn = 0; @@ -241911,7 +243419,7 @@ $packages["net"] = (function() { err = _tmp$2; return [n, oobn, err]; }; - $ptrType(netFD).prototype.writeTo = function writeTo$2(p, sa) { + $ptrType(fakeNetFD).prototype.writeTo = function writeTo$2(p, sa) { var _tmp, _tmp$1, err, fd, n, p, sa; n = 0; err = $ifaceNil; @@ -241922,7 +243430,7 @@ $packages["net"] = (function() { err = _tmp$1; return [n, err]; }; - $ptrType(netFD).prototype.writeToInet4 = function writeToInet4(p, sa) { + $ptrType(fakeNetFD).prototype.writeToInet4 = function writeToInet4(p, sa) { var _tmp, _tmp$1, err, fd, n, p, sa; n = 0; err = $ifaceNil; @@ -241933,7 +243441,7 @@ $packages["net"] = (function() { err = _tmp$1; return [n, err]; }; - $ptrType(netFD).prototype.writeToInet6 = function writeToInet6(p, sa) { + $ptrType(fakeNetFD).prototype.writeToInet6 = function writeToInet6(p, sa) { var _tmp, _tmp$1, err, fd, n, p, sa; n = 0; err = $ifaceNil; @@ -241944,7 +243452,7 @@ $packages["net"] = (function() { err = _tmp$1; return [n, err]; }; - $ptrType(netFD).prototype.writeMsg = function writeMsg$2(p, oob, sa) { + $ptrType(fakeNetFD).prototype.writeMsg = function writeMsg$2(p, oob, sa) { var _tmp, _tmp$1, _tmp$2, err, fd, n, oob, oobn, p, sa; n = 0; oobn = 0; @@ -241958,7 +243466,7 @@ $packages["net"] = (function() { err = _tmp$2; return [n, oobn, err]; }; - $ptrType(netFD).prototype.dup = function dup() { + $ptrType(fakeNetFD).prototype.dup = function dup() { var _tmp, _tmp$1, err, f, fd; f = ptrType$8.nil; err = $ifaceNil; @@ -241972,7 +243480,7 @@ $packages["net"] = (function() { $ptrType(conn).prototype.ok = function ok$3() { var c; c = this; - return !(c === ptrType$27.nil) && !(c.fd === ptrType$4.nil); + return !(c === ptrType$28.nil) && !(c.fd === ptrType$4.nil); }; $ptrType(conn).prototype.Read = function Read$5(b) { var {_r, _tuple, b, c, err, n, $s, $r, $c} = $restore(this, {b}); @@ -241981,7 +243489,7 @@ $packages["net"] = (function() { if (!c.ok()) { $s = -1; return [0, new syscall.Errno(22)]; } - _r = c.fd.Read(b); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = c.fd.fakeNetFD.Read(b); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; n = _tuple[0]; err = _tuple[1]; @@ -241998,7 +243506,7 @@ $packages["net"] = (function() { if (!c.ok()) { $s = -1; return [0, new syscall.Errno(22)]; } - _r = c.fd.Write(b); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = c.fd.fakeNetFD.Write(b); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; n = _tuple[0]; err = _tuple[1]; @@ -242015,7 +243523,7 @@ $packages["net"] = (function() { if (!c.ok()) { $s = -1; return new syscall.Errno(22); } - _r = c.fd.Close(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = c.fd.fakeNetFD.Close(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { err = new OpError.ptr("close", c.fd.net, c.fd.laddr, c.fd.raddr, err); @@ -242046,7 +243554,7 @@ $packages["net"] = (function() { if (!c.ok()) { $s = -1; return new syscall.Errno(22); } - _r = c.fd.SetDeadline($clone(t, time.Time)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = c.fd.fakeNetFD.SetDeadline($clone(t, time.Time)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return new OpError.ptr("set", c.fd.net, $ifaceNil, c.fd.laddr, err); @@ -242061,7 +243569,7 @@ $packages["net"] = (function() { if (!c.ok()) { $s = -1; return new syscall.Errno(22); } - _r = c.fd.SetReadDeadline($clone(t, time.Time)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = c.fd.fakeNetFD.SetReadDeadline($clone(t, time.Time)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return new OpError.ptr("set", c.fd.net, $ifaceNil, c.fd.laddr, err); @@ -242076,7 +243584,7 @@ $packages["net"] = (function() { if (!c.ok()) { $s = -1; return new syscall.Errno(22); } - _r = c.fd.SetWriteDeadline($clone(t, time.Time)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = c.fd.fakeNetFD.SetWriteDeadline($clone(t, time.Time)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return new OpError.ptr("set", c.fd.net, $ifaceNil, c.fd.laddr, err); @@ -242113,7 +243621,7 @@ $packages["net"] = (function() { f = ptrType$8.nil; err = $ifaceNil; c = this; - _tuple = c.fd.dup(); + _tuple = c.fd.fakeNetFD.dup(); f = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { @@ -242258,7 +243766,7 @@ $packages["net"] = (function() { $ptrType(AddrError).prototype.Error = function Error$4() { var e, s; e = this; - if (e === ptrType$28.nil) { + if (e === ptrType$29.nil) { return ""; } s = e.Err; @@ -242318,7 +243826,7 @@ $packages["net"] = (function() { $ptrType(DNSError).prototype.Error = function Error$9() { var e, s; e = this; - if (e === ptrType$29.nil) { + if (e === ptrType$30.nil) { return ""; } s = "lookup " + e.Name; @@ -242351,6 +243859,28 @@ $packages["net"] = (function() { $s = 2; case 2: return $24r; /* */ } return; } var $f = {$blk: genericReadFrom$1, $c: true, $r, $24r, _r, _tuple, err, n, r, w, x, $s};return $f; }; + $ptrType(sysDialer).prototype.dialMPTCP = function dialMPTCP(ctx, laddr, raddr) { + var {$24r, _r, ctx, laddr, raddr, sd, $s, $r, $c} = $restore(this, {ctx, laddr, raddr}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + sd = this; + _r = sd.dialTCP(ctx, laddr, raddr); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: dialMPTCP, $c: true, $r, $24r, _r, ctx, laddr, raddr, sd, $s};return $f; + }; + $ptrType(sysListener).prototype.listenMPTCP = function listenMPTCP(ctx, laddr) { + var {$24r, _r, ctx, laddr, sl, $s, $r, $c} = $restore(this, {ctx, laddr}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + sl = this; + _r = sl.listenTCP(ctx, laddr); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: listenMPTCP, $c: true, $r, $24r, _r, ctx, laddr, sl, $s};return $f; + }; + isUsingMultipathTCP = function isUsingMultipathTCP$1(fd) { + var fd; + return false; + }; HardwareAddr.prototype.String = function String$4() { var _i, _ref, a, b, buf, i; a = this; @@ -242535,7 +244065,7 @@ $packages["net"] = (function() { return r.lookupGroup; }; $ptrType(Resolver).prototype.LookupHost = function LookupHost$2(ctx, host) { - var {$24r, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, addrs, ctx, err, host, ip, r, $s, $r, $c} = $restore(this, {ctx, host}); + var {$24r, _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, addrs, ctx, err, err$1, host, r, $s, $r, $c} = $restore(this, {ctx, host}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: addrs = sliceType.nil; err = $ifaceNil; @@ -242551,9 +244081,10 @@ $packages["net"] = (function() { $24r = [addrs, err]; $s = 4; case 4: return $24r; /* } */ case 2: - _tuple = parseIPZone(host); - ip = _tuple[0]; - if (!(ip === IP.nil)) { + _r$1 = netip.ParseAddr(host); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + err$1 = _tuple[1]; + if ($interfaceIsEqual(err$1, $ifaceNil)) { _tmp$2 = new sliceType([host]); _tmp$3 = $ifaceNil; addrs = _tmp$2; @@ -242564,7 +244095,7 @@ $packages["net"] = (function() { addrs = _tuple$1[0]; err = _tuple$1[1]; $s = -1; return [addrs, err]; - /* */ } return; } var $f = {$blk: LookupHost$2, $c: true, $r, $24r, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, addrs, ctx, err, host, ip, r, $s};return $f; + /* */ } return; } var $f = {$blk: LookupHost$2, $c: true, $r, $24r, _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, addrs, ctx, err, err$1, host, r, $s};return $f; }; $ptrType(Resolver).prototype.LookupIPAddr = function LookupIPAddr(ctx, host) { var {$24r, _r, ctx, host, r, $s, $r, $c} = $restore(this, {ctx, host}); @@ -242610,7 +244141,7 @@ $packages["net"] = (function() { while (true) { if (!(_i < _ref.$length)) { break; } addr = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - ips = $append(ips, $assertType(addr, ptrType$33).IP); + ips = $append(ips, $assertType(addr, ptrType$34).IP); _i++; } $s = -1; return [ips, $ifaceNil]; @@ -242668,7 +244199,7 @@ $packages["net"] = (function() { return new onlyValuesCtx.ptr(context.Background(), lookupCtx); }; $ptrType(Resolver).prototype.lookupIPAddr = function lookupIPAddr(ctx, network, host) { - var {$24r, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _selection, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, addrs, alt, ch, ctx, ctxErr, dnsWaitGroupDone, err, err$1, host, ip, isTimeout, lookupGroupCancel, lookupGroupCtx, lookupKey, network, ok$4, ok$5, r, r$1, resolverFunc, terr, trace, x, x$1, zone, $s, $r, $c} = $restore(this, {ctx, network, host}); + var {$24r, _r, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _selection, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, addrs, alt, ch, ctx, ctxErr, dnsWaitGroupDone, err, err$1, err$2, host, ip, isTimeout, lookupGroupCancel, lookupGroupCtx, lookupKey, network, ok$4, ok$5, r, r$1, resolverFunc, terr, trace, x, x$1, $s, $r, $c} = $restore(this, {ctx, network, host}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: host = [host]; lookupGroupCtx = [lookupGroupCtx]; @@ -242682,126 +244213,127 @@ $packages["net"] = (function() { $24r = [sliceType$5.nil, new DNSError.ptr(_r, host[0], "", false, false, true)]; $s = 4; case 4: return $24r; /* } */ case 2: - _tuple = parseIPZone(host[0]); - ip = _tuple[0]; - zone = _tuple[1]; - if (!(ip === IP.nil)) { - $s = -1; return [new sliceType$5([$clone(new IPAddr.ptr(ip, zone), IPAddr)]), $ifaceNil]; + _r$1 = netip.ParseAddr(host[0]); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + ip = $clone(_tuple[0], netip.Addr); + err = _tuple[1]; + if ($interfaceIsEqual(err, $ifaceNil)) { + $s = -1; return [new sliceType$5([$clone(new IPAddr.ptr(($convertSliceType($clone(ip, netip.Addr).AsSlice(), IP)).To16(), $clone(ip, netip.Addr).Zone()), IPAddr)]), $ifaceNil]; } - _r$1 = ctx.Value((x = new nettrace.TraceKey.ptr(), new x.constructor.elem(x))); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$1 = $assertType(_r$1, ptrType$34, true); + _r$2 = ctx.Value((x = new nettrace.TraceKey.ptr(), new x.constructor.elem(x))); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$1 = $assertType(_r$2, ptrType$35, true); trace = _tuple$1[0]; - /* */ if (!(trace === ptrType$34.nil) && !(trace.DNSStart === $throwNilPointerError)) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (!(trace === ptrType$34.nil) && !(trace.DNSStart === $throwNilPointerError)) { */ case 6: - $r = trace.DNSStart(host[0]); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 7: + /* */ if (!(trace === ptrType$35.nil) && !(trace.DNSStart === $throwNilPointerError)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!(trace === ptrType$35.nil) && !(trace.DNSStart === $throwNilPointerError)) { */ case 7: + $r = trace.DNSStart(host[0]); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 8: resolverFunc[0] = $methodVal(r, "lookupIP"); - _r$2 = ctx.Value((x$1 = new nettrace.LookupIPAltResolverKey.ptr(), new x$1.constructor.elem(x$1))); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple$2 = $assertType(_r$2, funcType, true); + _r$3 = ctx.Value((x$1 = new nettrace.LookupIPAltResolverKey.ptr(), new x$1.constructor.elem(x$1))); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$2 = $assertType(_r$3, funcType, true); alt = _tuple$2[0]; if (!(alt === $throwNilPointerError)) { resolverFunc[0] = alt; } - _r$3 = context.WithCancel(withUnexpiredValuesPreserved(ctx)); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple$3 = _r$3; + _r$4 = context.WithCancel(withUnexpiredValuesPreserved(ctx)); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$3 = _r$4; lookupGroupCtx[0] = _tuple$3[0]; lookupGroupCancel = _tuple$3[1]; lookupKey = network[0] + "\x00" + host[0]; dnsWaitGroup.Add(1); - _r$4 = r.getLookupGroup().DoChan(lookupKey, (function(host, lookupGroupCtx, network, resolverFunc) { return function Resolver·lookupIPAddr·func1() { - var {$24r$1, _r$4, _returncast, $s, $r, $c} = $restore(this, {}); + _r$5 = r.getLookupGroup().DoChan(lookupKey, (function(host, lookupGroupCtx, network, resolverFunc) { return function Resolver·lookupIPAddr·func1() { + var {$24r$1, _r$5, _returncast, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$4 = testHookLookupIP(lookupGroupCtx[0], resolverFunc[0], network[0], host[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _returncast = _r$4; + _r$5 = testHookLookupIP(lookupGroupCtx[0], resolverFunc[0], network[0], host[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _returncast = _r$5; $24r$1 = [_returncast[0], _returncast[1]]; $s = 2; case 2: return $24r$1; - /* */ } return; } var $f = {$blk: Resolver·lookupIPAddr·func1, $c: true, $r, $24r$1, _r$4, _returncast, $s};return $f; - }; })(host, lookupGroupCtx, network, resolverFunc)); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - ch = _r$4; + /* */ } return; } var $f = {$blk: Resolver·lookupIPAddr·func1, $c: true, $r, $24r$1, _r$5, _returncast, $s};return $f; + }; })(host, lookupGroupCtx, network, resolverFunc)); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + ch = _r$5; dnsWaitGroupDone = (function(host, lookupGroupCtx, network, resolverFunc) { return function Resolver·lookupIPAddr·func2(ch$1, cancelFn) { - var {_r$5, cancelFn, ch$1, $s, $r, $c} = $restore(this, {ch$1, cancelFn}); + var {_r$6, cancelFn, ch$1, $s, $r, $c} = $restore(this, {ch$1, cancelFn}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$5 = $recv(ch$1); /* */ $s = 1; case 1: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$5[0]; + _r$6 = $recv(ch$1); /* */ $s = 1; case 1: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$6[0]; dnsWaitGroup.Done(); $r = cancelFn(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } var $f = {$blk: Resolver·lookupIPAddr·func2, $c: true, $r, _r$5, cancelFn, ch$1, $s};return $f; + /* */ } return; } var $f = {$blk: Resolver·lookupIPAddr·func2, $c: true, $r, _r$6, cancelFn, ch$1, $s};return $f; }; })(host, lookupGroupCtx, network, resolverFunc); - _r$5 = ctx.Done(); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$6 = $select([[_r$5], [ch]]); /* */ $s = 13; case 13: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _selection = _r$6; - /* */ if (_selection[0] === 0) { $s = 14; continue; } - /* */ if (_selection[0] === 1) { $s = 15; continue; } - /* */ $s = 16; continue; - /* if (_selection[0] === 0) { */ case 14: - _r$7 = r.getLookupGroup().ForgetUnshared(lookupKey); /* */ $s = 20; case 20: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - /* */ if (_r$7) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (_r$7) { */ case 17: - $r = lookupGroupCancel(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$6 = ctx.Done(); /* */ $s = 13; case 13: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$7 = $select([[_r$6], [ch]]); /* */ $s = 14; case 14: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _selection = _r$7; + /* */ if (_selection[0] === 0) { $s = 15; continue; } + /* */ if (_selection[0] === 1) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (_selection[0] === 0) { */ case 15: + _r$8 = r.getLookupGroup().ForgetUnshared(lookupKey); /* */ $s = 21; case 21: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + /* */ if (_r$8) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (_r$8) { */ case 18: + $r = lookupGroupCancel(); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $go(dnsWaitGroupDone, [ch, (function(host, lookupGroupCtx, network, resolverFunc) { return function Resolver·lookupIPAddr·func3() { }; })(host, lookupGroupCtx, network, resolverFunc)]); - $s = 19; continue; - /* } else { */ case 18: + $s = 20; continue; + /* } else { */ case 19: $go(dnsWaitGroupDone, [ch, lookupGroupCancel]); - /* } */ case 19: - _r$8 = ctx.Err(); /* */ $s = 22; case 22: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - ctxErr = _r$8; - _r$9 = mapErr(ctxErr).Error(); /* */ $s = 23; case 23: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - err = new DNSError.ptr(_r$9, host[0], "", $interfaceIsEqual(ctxErr, context.DeadlineExceeded), false, false); - /* */ if (!(trace === ptrType$34.nil) && !(trace.DNSDone === $throwNilPointerError)) { $s = 24; continue; } - /* */ $s = 25; continue; - /* if (!(trace === ptrType$34.nil) && !(trace.DNSDone === $throwNilPointerError)) { */ case 24: - $r = trace.DNSDone(sliceType$11.nil, false, err); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 25: - $s = -1; return [sliceType$5.nil, err]; - /* } else if (_selection[0] === 1) { */ case 15: + /* } */ case 20: + _r$9 = ctx.Err(); /* */ $s = 23; case 23: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + ctxErr = _r$9; + _r$10 = mapErr(ctxErr).Error(); /* */ $s = 24; case 24: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + err$1 = new DNSError.ptr(_r$10, host[0], "", $interfaceIsEqual(ctxErr, context.DeadlineExceeded), false, false); + /* */ if (!(trace === ptrType$35.nil) && !(trace.DNSDone === $throwNilPointerError)) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (!(trace === ptrType$35.nil) && !(trace.DNSDone === $throwNilPointerError)) { */ case 25: + $r = trace.DNSDone(sliceType$11.nil, false, err$1); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 26: + $s = -1; return [sliceType$5.nil, err$1]; + /* } else if (_selection[0] === 1) { */ case 16: r$1 = $clone(_selection[1][0], singleflight.Result); dnsWaitGroup.Done(); - $r = lookupGroupCancel(); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - err$1 = r$1.Err; - /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 28; continue; } - /* */ $s = 29; continue; - /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 28: - _tuple$4 = $assertType(err$1, ptrType$29, true); + $r = lookupGroupCancel(); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + err$2 = r$1.Err; + /* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 29: + _tuple$4 = $assertType(err$2, ptrType$30, true); ok$4 = _tuple$4[1]; - /* */ if (!ok$4) { $s = 30; continue; } - /* */ $s = 31; continue; - /* if (!ok$4) { */ case 30: + /* */ if (!ok$4) { $s = 31; continue; } + /* */ $s = 32; continue; + /* if (!ok$4) { */ case 31: isTimeout = false; - /* */ if ($interfaceIsEqual(err$1, context.DeadlineExceeded)) { $s = 32; continue; } - /* */ $s = 33; continue; - /* if ($interfaceIsEqual(err$1, context.DeadlineExceeded)) { */ case 32: + /* */ if ($interfaceIsEqual(err$2, context.DeadlineExceeded)) { $s = 33; continue; } + /* */ $s = 34; continue; + /* if ($interfaceIsEqual(err$2, context.DeadlineExceeded)) { */ case 33: isTimeout = true; - $s = 34; continue; - /* } else { */ case 33: - _tuple$5 = $assertType(err$1, timeout, true); + $s = 35; continue; + /* } else { */ case 34: + _tuple$5 = $assertType(err$2, timeout, true); terr = _tuple$5[0]; ok$5 = _tuple$5[1]; - /* */ if (ok$5) { $s = 35; continue; } - /* */ $s = 36; continue; - /* if (ok$5) { */ case 35: - _r$10 = terr.Timeout(); /* */ $s = 37; case 37: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - isTimeout = _r$10; - /* } */ case 36: - /* } */ case 34: - _r$11 = err$1.Error(); /* */ $s = 38; case 38: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - err$1 = new DNSError.ptr(_r$11, host[0], "", isTimeout, false, false); - /* } */ case 31: - /* } */ case 29: - /* */ if (!(trace === ptrType$34.nil) && !(trace.DNSDone === $throwNilPointerError)) { $s = 39; continue; } - /* */ $s = 40; continue; - /* if (!(trace === ptrType$34.nil) && !(trace.DNSDone === $throwNilPointerError)) { */ case 39: + /* */ if (ok$5) { $s = 36; continue; } + /* */ $s = 37; continue; + /* if (ok$5) { */ case 36: + _r$11 = terr.Timeout(); /* */ $s = 38; case 38: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + isTimeout = _r$11; + /* } */ case 37: + /* } */ case 35: + _r$12 = err$2.Error(); /* */ $s = 39; case 39: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + err$2 = new DNSError.ptr(_r$12, host[0], "", isTimeout, false, false); + /* } */ case 32: + /* } */ case 30: + /* */ if (!(trace === ptrType$35.nil) && !(trace.DNSDone === $throwNilPointerError)) { $s = 40; continue; } + /* */ $s = 41; continue; + /* if (!(trace === ptrType$35.nil) && !(trace.DNSDone === $throwNilPointerError)) { */ case 40: _tuple$6 = $assertType(r$1.Val, sliceType$5, true); addrs = _tuple$6[0]; - $r = trace.DNSDone(ipAddrsEface(addrs), r$1.Shared, err$1); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 40: - $s = -1; return lookupIPReturn(r$1.Val, err$1, r$1.Shared); - /* } */ case 16: + $r = trace.DNSDone(ipAddrsEface(addrs), r$1.Shared, err$2); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 41: + $s = -1; return lookupIPReturn(r$1.Val, err$2, r$1.Shared); + /* } */ case 17: $s = -1; return [sliceType$5.nil, $ifaceNil]; - /* */ } return; } var $f = {$blk: lookupIPAddr, $c: true, $r, $24r, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _selection, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, addrs, alt, ch, ctx, ctxErr, dnsWaitGroupDone, err, err$1, host, ip, isTimeout, lookupGroupCancel, lookupGroupCtx, lookupKey, network, ok$4, ok$5, r, r$1, resolverFunc, terr, trace, x, x$1, zone, $s};return $f; + /* */ } return; } var $f = {$blk: lookupIPAddr, $c: true, $r, $24r, _r, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _selection, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, addrs, alt, ch, ctx, ctxErr, dnsWaitGroupDone, err, err$1, err$2, host, ip, isTimeout, lookupGroupCancel, lookupGroupCtx, lookupKey, network, ok$4, ok$5, r, r$1, resolverFunc, terr, trace, x, x$1, $s};return $f; }; lookupIPReturn = function lookupIPReturn$1(addrsi, err, shared) { var addrs, addrsi, clone, err, shared; @@ -242912,7 +244444,7 @@ $packages["net"] = (function() { while (true) { if (!(_i < _ref.$length)) { break; } addr = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (addr === ptrType$30.nil) { + if (addr === ptrType$31.nil) { _i++; continue; } @@ -242943,7 +244475,7 @@ $packages["net"] = (function() { while (true) { if (!(_i < _ref.$length)) { break; } mx = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (mx === ptrType$31.nil) { + if (mx === ptrType$32.nil) { _i++; continue; } @@ -242974,7 +244506,7 @@ $packages["net"] = (function() { while (true) { if (!(_i < _ref.$length)) { break; } ns = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (ns === ptrType$32.nil) { + if (ns === ptrType$33.nil) { _i++; continue; } @@ -243021,7 +244553,7 @@ $packages["net"] = (function() { return [filteredNames, $ifaceNil]; }; $ptrType(ipStackCapabilities).prototype.probe = function probe() { - var {_1, _2, _i, _r, _r$1, _ref, _tuple, _tuple$1, _tuple$2, err, err$1, err$2, i, p, probes, s, s$1, sa, $s, $deferred, $r, $c} = $restore(this, {}); + var {_1, _2, _i, _r, _r$1, _r$2, _ref, _tuple, _tuple$1, _tuple$2, err, err$1, err$2, i, p, probes, s, s$1, sa, $s, $deferred, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); p = this; _tuple = sysSocket(2, 1, 6); @@ -243039,37 +244571,38 @@ $packages["net"] = (function() { p.ipv4Enabled = true; /* } */ case 4: case 1: - probes = new sliceType$12([$clone(new structType$3.ptr($clone(new TCPAddr.ptr(ParseIP("::1"), 0, ""), TCPAddr), 1), structType$3), $clone(new structType$3.ptr($clone(new TCPAddr.ptr(IPv4(127, 0, 0, 1), 0, ""), TCPAddr), 0), structType$3)]); + _r$1 = ParseIP("::1"); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + probes = new sliceType$12([$clone(new structType$3.ptr($clone(new TCPAddr.ptr(_r$1, 0, ""), TCPAddr), 1), structType$3), $clone(new structType$3.ptr($clone(new TCPAddr.ptr(IPv4(127, 0, 0, 1), 0, ""), TCPAddr), 0), structType$3)]); _2 = "js"; if (_2 === ("dragonfly") || _2 === ("openbsd")) { probes = $subslice(probes, 0, 1); } _ref = probes; _i = 0; - /* while (true) { */ case 6: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 7; continue; } + /* while (true) { */ case 7: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 8; continue; } i = _i; _tuple$1 = sysSocket(3, 1, 6); s$1 = _tuple$1[0]; err$1 = _tuple$1[1]; if (!($interfaceIsEqual(err$1, $ifaceNil))) { _i++; - /* continue; */ $s = 6; continue; + /* continue; */ $s = 7; continue; } $deferred.push([poll.CloseFunc, [s$1]]); syscall.SetsockoptInt(s$1, 41, 1, ((i < 0 || i >= probes.$length) ? ($throwRuntimeError("index out of range"), undefined) : probes.$array[probes.$offset + i]).value); - _r$1 = ((i < 0 || i >= probes.$length) ? ($throwRuntimeError("index out of range"), undefined) : probes.$array[probes.$offset + i]).laddr.sockaddr(3); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$2 = _r$1; + _r$2 = ((i < 0 || i >= probes.$length) ? ($throwRuntimeError("index out of range"), undefined) : probes.$array[probes.$offset + i]).laddr.sockaddr(3); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$2 = _r$2; sa = _tuple$2[0]; err$1 = _tuple$2[1]; if (!($interfaceIsEqual(err$1, $ifaceNil))) { _i++; - /* continue; */ $s = 6; continue; + /* continue; */ $s = 7; continue; } err$2 = syscall.Bind(s$1, sa); if (!($interfaceIsEqual(err$2, $ifaceNil))) { _i++; - /* continue; */ $s = 6; continue; + /* continue; */ $s = 7; continue; } if (i === 0) { p.ipv6Enabled = true; @@ -243077,10 +244610,10 @@ $packages["net"] = (function() { p.ipv4MappedIPv6Enabled = true; } _i++; - $s = 6; continue; - case 7: + $s = 7; continue; + case 8: $s = -1; return; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: probe, $c: true, $r, _1, _2, _i, _r, _r$1, _ref, _tuple, _tuple$1, _tuple$2, err, err$1, err$2, i, p, probes, s, s$1, sa, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: probe, $c: true, $r, _1, _2, _i, _r, _r$1, _r$2, _ref, _tuple, _tuple$1, _tuple$2, err, err$1, err$2, i, p, probes, s, s$1, sa, $s, $deferred};return $f; } } }; favoriteAddrFamily = function favoriteAddrFamily$1(network, laddr, raddr, mode) { var {$24r, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _v, _v$1, _v$2, _v$3, _v$4, _v$5, family$3, ipv6only$1, laddr, mode, network, raddr, $s, $r, $c} = $restore(this, {network, laddr, raddr, mode}); @@ -243295,7 +244828,7 @@ $packages["net"] = (function() { } else if ($assertType(_ref, ptrType$13, true)[1]) { addr$2 = _ref.$val; return !(addr$2.IP.To4() === IP.nil); - } else if ($assertType(_ref, ptrType$33, true)[1]) { + } else if ($assertType(_ref, ptrType$34, true)[1]) { addr$3 = _ref.$val; return !(addr$3.IP.To4() === IP.nil); } @@ -243528,21 +245061,6 @@ $packages["net"] = (function() { /* */ } return; } var $f = {$blk: SplitHostPort$1, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, addrErr, end, err, host, hostport, i, j, k, port, $s};return $f; }; $pkg.SplitHostPort = SplitHostPort; - splitHostZone = function splitHostZone$1(s) { - var _tmp, _tmp$1, host, i, s, zone; - host = ""; - zone = ""; - i = last(s, 37); - if (i > 0) { - _tmp = $substring(s, 0, i); - _tmp$1 = $substring(s, (i + 1 >> 0)); - host = _tmp; - zone = _tmp$1; - } else { - host = s; - } - return [host, zone]; - }; JoinHostPort = function JoinHostPort$1(host, port) { var host, port; if (bytealg.IndexByteString(host, 58) >= 0) { @@ -243649,7 +245167,7 @@ $packages["net"] = (function() { $ptrType(IPAddr).prototype.family = function family$3() { var a; a = this; - if (a === ptrType$33.nil || a.IP.$length <= 4) { + if (a === ptrType$34.nil || a.IP.$length <= 4) { return 2; } if (!(a.IP.To4() === IP.nil)) { @@ -243661,7 +245179,7 @@ $packages["net"] = (function() { var {$24r, _r, a, family$4, $s, $r, $c} = $restore(this, {family$4}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: a = this; - if (a === ptrType$33.nil) { + if (a === ptrType$34.nil) { $s = -1; return [$ifaceNil, $ifaceNil]; } _r = ipToSockaddr(family$4, a.IP, 0, a.Zone); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } @@ -243678,8 +245196,8 @@ $packages["net"] = (function() { var {_r, _ref, _tuple, addr, b, c, err, n, sa, sa$1, sa$2, $s, $r, $c} = $restore(this, {b}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: c = this; - addr = ptrType$33.nil; - _tuple = c.conn.fd.readFrom(b); + addr = ptrType$34.nil; + _tuple = c.conn.fd.fakeNetFD.readFrom(b); n = _tuple[0]; sa = _tuple[1]; err = _tuple[2]; @@ -243721,11 +245239,11 @@ $packages["net"] = (function() { n = 0; oobn = 0; flags = 0; - addr = ptrType$33.nil; + addr = ptrType$34.nil; err = $ifaceNil; c = this; sa = $ifaceNil; - _tuple = c.conn.fd.readMsg(b, oob, 0); + _tuple = c.conn.fd.fakeNetFD.readMsg(b, oob, 0); n = _tuple[0]; oobn = _tuple[1]; flags = _tuple[2]; @@ -243754,7 +245272,7 @@ $packages["net"] = (function() { if (c.conn.fd.isConnected) { $s = -1; return [0, $pkg.ErrWriteToConnected]; } - if (addr === ptrType$33.nil) { + if (addr === ptrType$34.nil) { $s = -1; return [0, errMissingAddress]; } _r = addr.sockaddr(c.conn.fd.family); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } @@ -243764,7 +245282,7 @@ $packages["net"] = (function() { if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [0, err]; } - $s = -1; return c.conn.fd.writeTo(b, sa); + $s = -1; return c.conn.fd.fakeNetFD.writeTo(b, sa); /* */ } return; } var $f = {$blk: writeTo$3, $c: true, $r, _r, _tuple, addr, b, c, err, sa, $s};return $f; }; $ptrType(IPConn).prototype.writeMsg = function writeMsg$3(b, oob, addr) { @@ -243783,7 +245301,7 @@ $packages["net"] = (function() { err = _tmp$2; $s = -1; return [n, oobn, err]; } - if (addr === ptrType$33.nil) { + if (addr === ptrType$34.nil) { _tmp$3 = 0; _tmp$4 = 0; _tmp$5 = errMissingAddress; @@ -243805,7 +245323,7 @@ $packages["net"] = (function() { err = _tmp$8; $s = -1; return [n, oobn, err]; } - _tuple$1 = c.conn.fd.writeMsg(b, oob, sa); + _tuple$1 = c.conn.fd.fakeNetFD.writeMsg(b, oob, sa); n = _tuple$1[0]; oobn = _tuple$1[1]; err = _tuple$1[2]; @@ -243822,12 +245340,12 @@ $packages["net"] = (function() { proto = _tuple[1]; err = _tuple[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [ptrType$37.nil, err]; + $s = -1; return [ptrType$38.nil, err]; } _1 = network; if (_1 === ("ip") || _1 === ("ip4") || _1 === ("ip6")) { } else { - $s = -1; return [ptrType$37.nil, new UnknownNetworkError((sd[0].network))]; + $s = -1; return [ptrType$38.nil, new UnknownNetworkError((sd[0].network))]; } ctrlCtxFn = sd[0].Dialer.ControlContext; /* */ if (ctrlCtxFn === $throwNilPointerError && !(sd[0].Dialer.Control === $throwNilPointerError)) { $s = 1; continue; } @@ -243847,7 +245365,7 @@ $packages["net"] = (function() { fd = _tuple$1[0]; err = _tuple$1[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [ptrType$37.nil, err]; + $s = -1; return [ptrType$38.nil, err]; } $s = -1; return [newIPConn(fd), $ifaceNil]; /* */ } return; } var $f = {$blk: dialIP, $c: true, $r, _1, _r, _tuple, _tuple$1, ctrlCtxFn, ctx, err, fd, laddr, network, proto, raddr, sd, $s};return $f; @@ -243862,12 +245380,12 @@ $packages["net"] = (function() { proto = _tuple[1]; err = _tuple[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [ptrType$37.nil, err]; + $s = -1; return [ptrType$38.nil, err]; } _1 = network; if (_1 === ("ip") || _1 === ("ip4") || _1 === ("ip6")) { } else { - $s = -1; return [ptrType$37.nil, new UnknownNetworkError((sl[0].network))]; + $s = -1; return [ptrType$38.nil, new UnknownNetworkError((sl[0].network))]; } ctrlCtxFn = $throwNilPointerError; /* */ if (!(sl[0].ListenConfig.Control === $throwNilPointerError)) { $s = 1; continue; } @@ -243887,7 +245405,7 @@ $packages["net"] = (function() { fd = _tuple$1[0]; err = _tuple$1[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [ptrType$37.nil, err]; + $s = -1; return [ptrType$38.nil, err]; } $s = -1; return [newIPConn(fd), $ifaceNil]; /* */ } return; } var $f = {$blk: listenIP, $c: true, $r, _1, _r, _tuple, _tuple$1, ctrlCtxFn, ctx, err, fd, laddr, network, proto, sl, $s};return $f; @@ -243900,7 +245418,7 @@ $packages["net"] = (function() { $ptrType(IPAddr).prototype.String = function String$5() { var a, ip; a = this; - if (a === ptrType$33.nil) { + if (a === ptrType$34.nil) { return ""; } ip = ipEmptyString(a.IP); @@ -243912,7 +245430,7 @@ $packages["net"] = (function() { $ptrType(IPAddr).prototype.isWildcard = function isWildcard$3() { var a; a = this; - if (a === ptrType$33.nil || a.IP === IP.nil) { + if (a === ptrType$34.nil || a.IP === IP.nil) { return true; } return a.IP.IsUnspecified(); @@ -243920,7 +245438,7 @@ $packages["net"] = (function() { $ptrType(IPAddr).prototype.opAddr = function opAddr$3() { var a; a = this; - if (a === ptrType$33.nil) { + if (a === ptrType$34.nil) { return $ifaceNil; } return a; @@ -243939,7 +245457,7 @@ $packages["net"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: c = this; if (!c.conn.ok()) { - $s = -1; return [0, ptrType$33.nil, new syscall.Errno(22)]; + $s = -1; return [0, ptrType$34.nil, new syscall.Errno(22)]; } _r = c.readFrom(b); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; @@ -243967,7 +245485,7 @@ $packages["net"] = (function() { if (!($interfaceIsEqual(err, $ifaceNil))) { err = new OpError.ptr("read", c.conn.fd.net, c.conn.fd.laddr, c.conn.fd.raddr, err); } - if (addr === ptrType$33.nil) { + if (addr === ptrType$34.nil) { $s = -1; return [n, $ifaceNil, err]; } $s = -1; return [n, addr, err]; @@ -243979,14 +245497,14 @@ $packages["net"] = (function() { n = 0; oobn = 0; flags = 0; - addr = ptrType$33.nil; + addr = ptrType$34.nil; err = $ifaceNil; c = this; if (!c.conn.ok()) { _tmp = 0; _tmp$1 = 0; _tmp$2 = 0; - _tmp$3 = ptrType$33.nil; + _tmp$3 = ptrType$34.nil; _tmp$4 = new syscall.Errno(22); n = _tmp; oobn = _tmp$1; @@ -244032,7 +245550,7 @@ $packages["net"] = (function() { if (!c.conn.ok()) { $s = -1; return [0, new syscall.Errno(22)]; } - _tuple = $assertType(addr, ptrType$33, true); + _tuple = $assertType(addr, ptrType$34, true); a = _tuple[0]; ok$4 = _tuple[1]; if (!ok$4) { @@ -244257,84 +245775,20 @@ $packages["net"] = (function() { return out; }; $ptrType(IP).prototype.Mask = function(...$args) { return this.$get().Mask(...$args); }; - ubtoa = function ubtoa$1(dst, start, v) { - var _q, _q$1, _q$2, _r, _r$1, _r$2, dst, start, v, x, x$1, x$2; - if (v < 10) { - ((start < 0 || start >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + start] = (v + 48 << 24 >>> 24)); - return 1; - } else if (v < 100) { - (x = start + 1 >> 0, ((x < 0 || x >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x] = ((_r = v % 10, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) + 48 << 24 >>> 24))); - ((start < 0 || start >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + start] = ((_q = v / 10, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")) + 48 << 24 >>> 24)); - return 2; - } - (x$1 = start + 2 >> 0, ((x$1 < 0 || x$1 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$1] = ((_r$1 = v % 10, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) + 48 << 24 >>> 24))); - (x$2 = start + 1 >> 0, ((x$2 < 0 || x$2 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$2] = ((_r$2 = ((_q$1 = v / 10, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero"))) % 10, _r$2 === _r$2 ? _r$2 : $throwRuntimeError("integer divide by zero")) + 48 << 24 >>> 24))); - ((start < 0 || start >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + start] = ((_q$2 = v / 100, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >>> 0 : $throwRuntimeError("integer divide by zero")) + 48 << 24 >>> 24)); - return 3; - }; IP.prototype.String = function String$6() { - var b, b$1, e0, e1, i, i$1, ip, j, n, p, p4, x, x$1; + var ip, p4; ip = this; - p = ip; if (ip.$length === 0) { return ""; } - p4 = p.To4(); - if (p4.$length === 4) { - b = $makeSlice(sliceType$1, 15); - n = ubtoa(b, 0, (0 >= p4.$length ? ($throwRuntimeError("index out of range"), undefined) : p4.$array[p4.$offset + 0])); - ((n < 0 || n >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + n] = 46); - n = n + (1) >> 0; - n = n + (ubtoa(b, n, (1 >= p4.$length ? ($throwRuntimeError("index out of range"), undefined) : p4.$array[p4.$offset + 1]))) >> 0; - ((n < 0 || n >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + n] = 46); - n = n + (1) >> 0; - n = n + (ubtoa(b, n, (2 >= p4.$length ? ($throwRuntimeError("index out of range"), undefined) : p4.$array[p4.$offset + 2]))) >> 0; - ((n < 0 || n >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + n] = 46); - n = n + (1) >> 0; - n = n + (ubtoa(b, n, (3 >= p4.$length ? ($throwRuntimeError("index out of range"), undefined) : p4.$array[p4.$offset + 3]))) >> 0; - return ($bytesToString($subslice(b, 0, n))); - } - if (!((p.$length === 16))) { + if (!((ip.$length === 4)) && !((ip.$length === 16))) { return "?" + hexString($convertSliceType(ip, sliceType$1)); } - e0 = -1; - e1 = -1; - i = 0; - while (true) { - if (!(i < 16)) { break; } - j = i; - while (true) { - if (!(j < 16 && (((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]) === 0) && ((x = j + 1 >> 0, ((x < 0 || x >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x])) === 0))) { break; } - j = j + (2) >> 0; - } - if (j > i && (j - i >> 0) > (e1 - e0 >> 0)) { - e0 = i; - e1 = j; - i = j; - } - i = i + (2) >> 0; - } - if ((e1 - e0 >> 0) <= 2) { - e0 = -1; - e1 = -1; - } - b$1 = $makeSlice(sliceType$1, 0, 39); - i$1 = 0; - while (true) { - if (!(i$1 < 16)) { break; } - if (i$1 === e0) { - b$1 = $append(b$1, 58, 58); - i$1 = e1; - if (i$1 >= 16) { - break; - } - } else if (i$1 > 0) { - b$1 = $append(b$1, 58); - } - b$1 = appendHex(b$1, (((((((i$1 < 0 || i$1 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i$1]) >>> 0)) << 8 >>> 0)) | (((x$1 = i$1 + 1 >> 0, ((x$1 < 0 || x$1 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$1])) >>> 0))) >>> 0); - i$1 = i$1 + (2) >> 0; + p4 = ip.To4(); + if (p4.$length === 4) { + return $clone(netip.AddrFrom4($clone(($clone(p4, arrayType$1)), arrayType$1)), netip.Addr).String(); } - return ($bytesToString(b$1)); + return $clone(netip.AddrFrom16($clone(($clone(ip, arrayType)), arrayType)), netip.Addr).String(); }; $ptrType(IP).prototype.String = function(...$args) { return this.$get().String(...$args); }; hexString = function hexString$1(b) { @@ -244374,19 +245828,22 @@ $packages["net"] = (function() { }; $ptrType(IP).prototype.MarshalText = function(...$args) { return this.$get().MarshalText(...$args); }; $ptrType(IP).prototype.UnmarshalText = function UnmarshalText(text) { - var ip, s, text, x; + var {_r, ip, s, text, x, $s, $r, $c} = $restore(this, {text}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: ip = this; if (text.$length === 0) { ip.$set(IP.nil); - return $ifaceNil; + $s = -1; return $ifaceNil; } s = ($bytesToString(text)); - x = ParseIP(s); + _r = ParseIP(s); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + x = _r; if (x === IP.nil) { - return new ParseError.ptr("IP address", s); + $s = -1; return new ParseError.ptr("IP address", s); } ip.$set(x); - return $ifaceNil; + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: UnmarshalText, $c: true, $r, _r, ip, s, text, x, $s};return $f; }; IP.prototype.Equal = function Equal(x) { var ip, x; @@ -244541,7 +245998,7 @@ $packages["net"] = (function() { $ptrType(IPNet).prototype.String = function String$8() { var _tuple, l, m, n, nn; n = this; - if (n === ptrType$38.nil) { + if (n === ptrType$39.nil) { return ""; } _tuple = networkNumberAndMask(n); @@ -244556,176 +246013,32 @@ $packages["net"] = (function() { } return nn.String() + "/" + itoa.Uitoa(((l >>> 0))); }; - parseIPv4 = function parseIPv4$1(s) { - var _tuple, c, i, n, ok$4, p, s; - p = arrayType$1.zero(); - i = 0; - while (true) { - if (!(i < 4)) { break; } - if (s.length === 0) { - return IP.nil; - } - if (i > 0) { - if (!((s.charCodeAt(0) === 46))) { - return IP.nil; - } - s = $substring(s, 1); - } - _tuple = dtoi(s); - n = _tuple[0]; - c = _tuple[1]; - ok$4 = _tuple[2]; - if (!ok$4 || n > 255) { - return IP.nil; - } - if (c > 1 && (s.charCodeAt(0) === 48)) { - return IP.nil; - } - s = $substring(s, c); - ((i < 0 || i >= p.length) ? ($throwRuntimeError("index out of range"), undefined) : p[i] = ((n << 24 >>> 24))); - i = i + (1) >> 0; - } - if (!((s.length === 0))) { - return IP.nil; - } - return IPv4(p[0], p[1], p[2], p[3]); - }; - parseIPv6Zone = function parseIPv6Zone$1(s) { - var _tuple, s, zone; - _tuple = splitHostZone(s); - s = _tuple[0]; - zone = _tuple[1]; - return [parseIPv6(s), zone]; - }; - parseIPv6 = function parseIPv6$1(s) { - var _tuple, c, ellipsis, i, ip, ip4, j, j$1, n, n$1, ok$4, s, x, x$1, x$2, x$3, x$4; - ip = IP.nil; - ip = $makeSlice(IP, 16); - ellipsis = -1; - if (s.length >= 2 && (s.charCodeAt(0) === 58) && (s.charCodeAt(1) === 58)) { - ellipsis = 0; - s = $substring(s, 2); - if (s.length === 0) { - ip = ip; - return ip; - } - } - i = 0; - while (true) { - if (!(i < 16)) { break; } - _tuple = xtoi(s); - n = _tuple[0]; - c = _tuple[1]; - ok$4 = _tuple[2]; - if (!ok$4 || n > 65535) { - ip = IP.nil; - return ip; - } - if (c < s.length && (s.charCodeAt(c) === 46)) { - if (ellipsis < 0 && !((i === 12))) { - ip = IP.nil; - return ip; - } - if ((i + 4 >> 0) > 16) { - ip = IP.nil; - return ip; - } - ip4 = parseIPv4(s); - if (ip4 === IP.nil) { - ip = IP.nil; - return ip; - } - ((i < 0 || i >= ip.$length) ? ($throwRuntimeError("index out of range"), undefined) : ip.$array[ip.$offset + i] = (12 >= ip4.$length ? ($throwRuntimeError("index out of range"), undefined) : ip4.$array[ip4.$offset + 12])); - (x = i + 1 >> 0, ((x < 0 || x >= ip.$length) ? ($throwRuntimeError("index out of range"), undefined) : ip.$array[ip.$offset + x] = (13 >= ip4.$length ? ($throwRuntimeError("index out of range"), undefined) : ip4.$array[ip4.$offset + 13]))); - (x$1 = i + 2 >> 0, ((x$1 < 0 || x$1 >= ip.$length) ? ($throwRuntimeError("index out of range"), undefined) : ip.$array[ip.$offset + x$1] = (14 >= ip4.$length ? ($throwRuntimeError("index out of range"), undefined) : ip4.$array[ip4.$offset + 14]))); - (x$2 = i + 3 >> 0, ((x$2 < 0 || x$2 >= ip.$length) ? ($throwRuntimeError("index out of range"), undefined) : ip.$array[ip.$offset + x$2] = (15 >= ip4.$length ? ($throwRuntimeError("index out of range"), undefined) : ip4.$array[ip4.$offset + 15]))); - s = ""; - i = i + (4) >> 0; - break; - } - ((i < 0 || i >= ip.$length) ? ($throwRuntimeError("index out of range"), undefined) : ip.$array[ip.$offset + i] = (((n >> 8 >> 0) << 24 >>> 24))); - (x$3 = i + 1 >> 0, ((x$3 < 0 || x$3 >= ip.$length) ? ($throwRuntimeError("index out of range"), undefined) : ip.$array[ip.$offset + x$3] = ((n << 24 >>> 24)))); - i = i + (2) >> 0; - s = $substring(s, c); - if (s.length === 0) { - break; - } - if (!((s.charCodeAt(0) === 58)) || (s.length === 1)) { - ip = IP.nil; - return ip; - } - s = $substring(s, 1); - if (s.charCodeAt(0) === 58) { - if (ellipsis >= 0) { - ip = IP.nil; - return ip; - } - ellipsis = i; - s = $substring(s, 1); - if (s.length === 0) { - break; - } - } - } - if (!((s.length === 0))) { - ip = IP.nil; - return ip; - } - if (i < 16) { - if (ellipsis < 0) { - ip = IP.nil; - return ip; - } - n$1 = 16 - i >> 0; - j = i - 1 >> 0; - while (true) { - if (!(j >= ellipsis)) { break; } - (x$4 = j + n$1 >> 0, ((x$4 < 0 || x$4 >= ip.$length) ? ($throwRuntimeError("index out of range"), undefined) : ip.$array[ip.$offset + x$4] = ((j < 0 || j >= ip.$length) ? ($throwRuntimeError("index out of range"), undefined) : ip.$array[ip.$offset + j]))); - j = j - (1) >> 0; - } - j$1 = (ellipsis + n$1 >> 0) - 1 >> 0; - while (true) { - if (!(j$1 >= ellipsis)) { break; } - ((j$1 < 0 || j$1 >= ip.$length) ? ($throwRuntimeError("index out of range"), undefined) : ip.$array[ip.$offset + j$1] = 0); - j$1 = j$1 - (1) >> 0; - } - } else if (ellipsis >= 0) { - ip = IP.nil; - return ip; - } - ip = ip; - return ip; - }; ParseIP = function ParseIP$1(s) { - var _1, i, s; - i = 0; - while (true) { - if (!(i < s.length)) { break; } - _1 = s.charCodeAt(i); - if (_1 === (46)) { - return parseIPv4(s); - } else if (_1 === (58)) { - return parseIPv6(s); - } - i = i + (1) >> 0; + var {_r, _tuple, addr, s, valid, $s, $r, $c} = $restore(this, {s}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = parseIP(s); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + addr = $clone(_tuple[0], arrayType); + valid = _tuple[1]; + if (valid) { + $s = -1; return ($convertSliceType(new sliceType$1(addr), IP)); } - return IP.nil; + $s = -1; return IP.nil; + /* */ } return; } var $f = {$blk: ParseIP$1, $c: true, $r, _r, _tuple, addr, s, valid, $s};return $f; }; $pkg.ParseIP = ParseIP; - parseIPZone = function parseIPZone$1(s) { - var _1, i, s; - i = 0; - while (true) { - if (!(i < s.length)) { break; } - _1 = s.charCodeAt(i); - if (_1 === (46)) { - return [parseIPv4(s), ""]; - } else if (_1 === (58)) { - return parseIPv6Zone(s); - } - i = i + (1) >> 0; + parseIP = function parseIP$1(s) { + var {_r, _tuple, err, ip, s, $s, $r, $c} = $restore(this, {s}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = netip.ParseAddr(s); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + ip = $clone(_tuple[0], netip.Addr); + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil)) || !($clone(ip, netip.Addr).Zone() === "")) { + $s = -1; return [arrayType.zero(), false]; } - return [IP.nil, ""]; + $s = -1; return [$clone(ip, netip.Addr).As16(), true]; + /* */ } return; } var $f = {$blk: parseIP$1, $c: true, $r, _r, _tuple, err, ip, s, $s};return $f; }; interfaceTable = function interfaceTable$1(ifindex) { var ifindex; @@ -244962,6 +246275,35 @@ $packages["net"] = (function() { } return nonNumeric; }; + $ptrType(mptcpStatus).prototype.get = function get() { + var {_1, _r, m, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + m = this; + _1 = m.$get(); + if (_1 === (1)) { + $s = -1; return true; + } else if (_1 === (2)) { + $s = -1; return false; + } + _r = multipathtcp.Value(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r === "1") { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r === "1") { */ case 1: + $r = multipathtcp.IncNonDefault(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return true; + /* } */ case 2: + $s = -1; return false; + /* */ } return; } var $f = {$blk: get, $c: true, $r, _1, _r, m, $s};return $f; + }; + $ptrType(mptcpStatus).prototype.set = function set$1(use) { + var m, use; + m = this; + if (use) { + m.$set(1); + } else { + m.$set(2); + } + }; $ptrType(Dialer).prototype.dualStack = function dualStack() { var d, x; d = this; @@ -245153,7 +246495,7 @@ $packages["net"] = (function() { } tcp = ptrType$16.nil; udp = ptrType$13.nil; - ip = ptrType$33.nil; + ip = ptrType$34.nil; wildcard = false; _ref = hint; if ($assertType(_ref, ptrType$16, true)[1]) { @@ -245164,7 +246506,7 @@ $packages["net"] = (function() { hint$2 = _ref.$val; udp = hint$2; wildcard = udp.isWildcard(); - } else if ($assertType(_ref, ptrType$33, true)[1]) { + } else if ($assertType(_ref, ptrType$34, true)[1]) { hint$3 = _ref.$val; ip = hint$3; wildcard = ip.isWildcard(); @@ -245199,7 +246541,7 @@ $packages["net"] = (function() { /* continue; */ $s = 11; continue; } naddrs = $append(naddrs, addr$4); - } else if ($assertType(_ref$2, ptrType$33, true)[1]) { + } else if ($assertType(_ref$2, ptrType$34, true)[1]) { addr$5 = _ref$2.$val; if (!wildcard && !addr$5.isWildcard() && !addr$5.IP.matchAddrFamily(ip.IP)) { _i++; @@ -245221,10 +246563,24 @@ $packages["net"] = (function() { $s = -1; return [naddrs, $ifaceNil]; /* */ } return; } var $f = {$blk: resolveAddrList, $c: true, $r, $24r, $24r$1, $24r$2, _1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _ref$1, _ref$2, _tuple, _tuple$1, _tuple$2, _v, addr, addr$1, addr$2, addr$3, addr$4, addr$5, addrs, afnet, ctx, err, err$1, hint, hint$1, hint$2, hint$3, ip, naddrs, network, op, r, tcp, udp, wildcard, $s};return $f; }; + $ptrType(Dialer).prototype.MultipathTCP = function MultipathTCP$1() { + var {$24r, _r, d, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + d = this; + _r = (d === ptrType$41.nil && $throwNilPointerError(), (d.$ptr_mptcpStatus || (d.$ptr_mptcpStatus = new ptrType$42(function() { return this.$target.mptcpStatus; }, function($v) { this.$target.mptcpStatus = $v; }, d)))).get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: MultipathTCP$1, $c: true, $r, $24r, _r, d, $s};return $f; + }; + $ptrType(Dialer).prototype.SetMultipathTCP = function SetMultipathTCP(use) { + var d, use; + d = this; + (d === ptrType$41.nil && $throwNilPointerError(), (d.$ptr_mptcpStatus || (d.$ptr_mptcpStatus = new ptrType$42(function() { return this.$target.mptcpStatus; }, function($v) { this.$target.mptcpStatus = $v; }, d)))).set(use); + }; Dial = function Dial$1(network, address) { var {$24r, _r, address, d, network, $s, $r, $c} = $restore(this, {network, address}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - d = new Dialer.ptr(new time.Duration(0, 0), new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil), $ifaceNil, false, new time.Duration(0, 0), new time.Duration(0, 0), ptrType$10.nil, $chanNil, $throwNilPointerError, $throwNilPointerError); + d = new Dialer.ptr(new time.Duration(0, 0), new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil), $ifaceNil, false, new time.Duration(0, 0), new time.Duration(0, 0), ptrType$10.nil, $chanNil, $throwNilPointerError, $throwNilPointerError, 0); _r = d.Dial(network, address); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $24r = _r; $s = 2; case 2: return $24r; @@ -245304,12 +246660,12 @@ $packages["net"] = (function() { /* } */ case 10: resolveCtx = ctx; _r$5 = ctx.Value((x = new nettrace.TraceKey.ptr(), new x.constructor.elem(x))); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _tuple$3 = $assertType(_r$5, ptrType$34, true); + _tuple$3 = $assertType(_r$5, ptrType$35, true); trace = _tuple$3[0]; - /* */ if (!(trace === ptrType$34.nil)) { $s = 13; continue; } + /* */ if (!(trace === ptrType$35.nil)) { $s = 13; continue; } /* */ $s = 14; continue; - /* if (!(trace === ptrType$34.nil)) { */ case 13: - shadow[0] = $clone(trace, nettrace.Trace); + /* if (!(trace === ptrType$35.nil)) { */ case 13: + shadow[0] = $clone((trace === ptrType$35.nil && $throwNilPointerError(), trace), nettrace.Trace); shadow[0].ConnectStart = $throwNilPointerError; shadow[0].ConnectDone = $throwNilPointerError; _r$6 = context.WithValue(resolveCtx, (x$1 = new nettrace.TraceKey.ptr(), new x$1.constructor.elem(x$1)), shadow[0]); /* */ $s = 15; case 15: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } @@ -245325,7 +246681,7 @@ $packages["net"] = (function() { $24r = [$ifaceNil, new OpError.ptr("dial", network, $ifaceNil, $ifaceNil, err)]; $s = 19; case 19: return $24r; /* } */ case 18: - sd = new sysDialer.ptr($clone(d, Dialer), network, address, $throwNilPointerError); + sd = new sysDialer.ptr($clone((d === ptrType$41.nil && $throwNilPointerError(), d), Dialer), network, address, $throwNilPointerError); _tmp = addrList.nil; _tmp$1 = addrList.nil; primaries = _tmp; @@ -245529,7 +246885,7 @@ $packages["net"] = (function() { /* */ } return; } } catch(err) { $err = err; $s = -1; return [$ifaceNil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: dialSerial, $c: true, $r, $24r, $24r$1, $24r$2, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _selection, _tuple, _tuple$1, _tuple$2, _tuple$3, c, cancel, ctx, deadline$1, dialCtx, err, err$1, firstErr, hasDeadline, i, partialDeadline$2, ra, ras, sd, $s, $deferred};return $f; } } }; $ptrType(sysDialer).prototype.dialSingle = function dialSingle(ctx, ra) { - var {$24r, $24r$1, $24r$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, c, ctx, err, la, la$1, la$2, la$3, la$4, ra, ra$1, ra$2, ra$3, ra$4, ra$5, raStr, sd, trace, x, $s, $deferred, $r, $c} = $restore(this, {ctx, ra}); + var {$24r, $24r$1, $24r$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, c, ctx, err, la, la$1, la$2, la$3, la$4, ra, ra$1, ra$2, ra$3, ra$4, ra$5, raStr, sd, trace, x, $s, $deferred, $r, $c} = $restore(this, {ctx, ra}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); err = [err]; raStr = [raStr]; @@ -245539,11 +246895,11 @@ $packages["net"] = (function() { err[0] = $ifaceNil; sd[0] = this; _r = ctx.Value((x = new nettrace.TraceKey.ptr(), new x.constructor.elem(x))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = $assertType(_r, ptrType$34, true); + _tuple = $assertType(_r, ptrType$35, true); trace[0] = _tuple[0]; - /* */ if (!(trace[0] === ptrType$34.nil)) { $s = 2; continue; } + /* */ if (!(trace[0] === ptrType$35.nil)) { $s = 2; continue; } /* */ $s = 3; continue; - /* if (!(trace[0] === ptrType$34.nil)) { */ case 2: + /* if (!(trace[0] === ptrType$35.nil)) { */ case 2: _r$1 = ra.String(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } raStr[0] = _r$1; /* */ if (!(trace[0].ConnectStart === $throwNilPointerError)) { $s = 5; continue; } @@ -245567,44 +246923,55 @@ $packages["net"] = (function() { _ref = ra; /* */ if ($assertType(_ref, ptrType$16, true)[1]) { $s = 10; continue; } /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 11; continue; } - /* */ if ($assertType(_ref, ptrType$33, true)[1]) { $s = 12; continue; } + /* */ if ($assertType(_ref, ptrType$34, true)[1]) { $s = 12; continue; } /* */ if ($assertType(_ref, ptrType$6, true)[1]) { $s = 13; continue; } /* */ $s = 14; continue; /* if ($assertType(_ref, ptrType$16, true)[1]) { */ case 10: ra$1 = _ref.$val; _tuple$1 = $assertType(la, ptrType$16, true); la$1 = _tuple$1[0]; - _r$2 = sd[0].dialTCP(ctx, la$1, ra$1); /* */ $s = 16; case 16: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple$2 = _r$2; - c = _tuple$2[0]; - err[0] = _tuple$2[1]; + _r$2 = sd[0].Dialer.MultipathTCP(); /* */ $s = 19; case 19: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (_r$2) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (_r$2) { */ case 16: + _r$3 = sd[0].dialMPTCP(ctx, la$1, ra$1); /* */ $s = 20; case 20: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$2 = _r$3; + c = _tuple$2[0]; + err[0] = _tuple$2[1]; + $s = 18; continue; + /* } else { */ case 17: + _r$4 = sd[0].dialTCP(ctx, la$1, ra$1); /* */ $s = 21; case 21: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$3 = _r$4; + c = _tuple$3[0]; + err[0] = _tuple$3[1]; + /* } */ case 18: $s = 15; continue; /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 11: ra$2 = _ref.$val; - _tuple$3 = $assertType(la, ptrType$13, true); - la$2 = _tuple$3[0]; - _r$3 = sd[0].dialUDP(ctx, la$2, ra$2); /* */ $s = 17; case 17: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple$4 = _r$3; - c = _tuple$4[0]; - err[0] = _tuple$4[1]; + _tuple$4 = $assertType(la, ptrType$13, true); + la$2 = _tuple$4[0]; + _r$5 = sd[0].dialUDP(ctx, la$2, ra$2); /* */ $s = 22; case 22: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$5 = _r$5; + c = _tuple$5[0]; + err[0] = _tuple$5[1]; $s = 15; continue; - /* } else if ($assertType(_ref, ptrType$33, true)[1]) { */ case 12: + /* } else if ($assertType(_ref, ptrType$34, true)[1]) { */ case 12: ra$3 = _ref.$val; - _tuple$5 = $assertType(la, ptrType$33, true); - la$3 = _tuple$5[0]; - _r$4 = sd[0].dialIP(ctx, la$3, ra$3); /* */ $s = 18; case 18: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _tuple$6 = _r$4; - c = _tuple$6[0]; - err[0] = _tuple$6[1]; + _tuple$6 = $assertType(la, ptrType$34, true); + la$3 = _tuple$6[0]; + _r$6 = sd[0].dialIP(ctx, la$3, ra$3); /* */ $s = 23; case 23: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _tuple$7 = _r$6; + c = _tuple$7[0]; + err[0] = _tuple$7[1]; $s = 15; continue; /* } else if ($assertType(_ref, ptrType$6, true)[1]) { */ case 13: ra$4 = _ref.$val; - _tuple$7 = $assertType(la, ptrType$6, true); - la$4 = _tuple$7[0]; - _r$5 = sd[0].dialUnix(ctx, la$4, ra$4); /* */ $s = 19; case 19: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _tuple$8 = _r$5; - c = _tuple$8[0]; - err[0] = _tuple$8[1]; + _tuple$8 = $assertType(la, ptrType$6, true); + la$4 = _tuple$8[0]; + _r$7 = sd[0].dialUnix(ctx, la$4, ra$4); /* */ $s = 24; case 24: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _tuple$9 = _r$7; + c = _tuple$9[0]; + err[0] = _tuple$9[1]; $s = 15; continue; /* } else { */ case 14: ra$5 = _ref; @@ -245613,28 +246980,42 @@ $packages["net"] = (function() { c = _tmp; err[0] = _tmp$1; $24r = [c, err[0]]; - $s = 20; case 20: return $24r; + $s = 25; case 25: return $24r; /* } */ case 15: - /* */ if (!($interfaceIsEqual(err[0], $ifaceNil))) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if (!($interfaceIsEqual(err[0], $ifaceNil))) { */ case 21: + /* */ if (!($interfaceIsEqual(err[0], $ifaceNil))) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (!($interfaceIsEqual(err[0], $ifaceNil))) { */ case 26: _tmp$2 = $ifaceNil; _tmp$3 = new OpError.ptr("dial", sd[0].network, la, ra, err[0]); c = _tmp$2; err[0] = _tmp$3; $24r$1 = [c, err[0]]; - $s = 23; case 23: return $24r$1; - /* } */ case 22: + $s = 28; case 28: return $24r$1; + /* } */ case 27: _tmp$4 = c; _tmp$5 = $ifaceNil; c = _tmp$4; err[0] = _tmp$5; $24r$2 = [c, err[0]]; - $s = 24; case 24: return $24r$2; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [c, err[0]]; } if($curGoroutine.asleep) { var $f = {$blk: dialSingle, $c: true, $r, $24r, $24r$1, $24r$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, c, ctx, err, la, la$1, la$2, la$3, la$4, ra, ra$1, ra$2, ra$3, ra$4, ra$5, raStr, sd, trace, x, $s, $deferred};return $f; } } + $s = 29; case 29: return $24r$2; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [c, err[0]]; } if($curGoroutine.asleep) { var $f = {$blk: dialSingle, $c: true, $r, $24r, $24r$1, $24r$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, c, ctx, err, la, la$1, la$2, la$3, la$4, ra, ra$1, ra$2, ra$3, ra$4, ra$5, raStr, sd, trace, x, $s, $deferred};return $f; } } + }; + $ptrType(ListenConfig).prototype.MultipathTCP = function MultipathTCP$2() { + var {$24r, _r, lc, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + lc = this; + _r = (lc === ptrType$43.nil && $throwNilPointerError(), (lc.$ptr_mptcpStatus || (lc.$ptr_mptcpStatus = new ptrType$42(function() { return this.$target.mptcpStatus; }, function($v) { this.$target.mptcpStatus = $v; }, lc)))).get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: MultipathTCP$2, $c: true, $r, $24r, _r, lc, $s};return $f; + }; + $ptrType(ListenConfig).prototype.SetMultipathTCP = function SetMultipathTCP$1(use) { + var lc, use; + lc = this; + (lc === ptrType$43.nil && $throwNilPointerError(), (lc.$ptr_mptcpStatus || (lc.$ptr_mptcpStatus = new ptrType$42(function() { return this.$target.mptcpStatus; }, function($v) { this.$target.mptcpStatus = $v; }, lc)))).set(use); }; $ptrType(ListenConfig).prototype.Listen = function Listen$1(ctx, network, address) { - var {_r, _r$1, _r$2, _r$3, _ref, _tuple, _tuple$1, _tuple$2, address, addrs, ctx, err, l, la, la$1, la$2, la$3, lc, network, sl, $s, $r, $c} = $restore(this, {ctx, network, address}); + var {_r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _tuple, _tuple$1, _tuple$2, _tuple$3, address, addrs, ctx, err, l, la, la$1, la$2, la$3, lc, network, sl, $s, $r, $c} = $restore(this, {ctx, network, address}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: lc = this; _r = $pkg.DefaultResolver.resolveAddrList(ctx, "listen", network, address, $ifaceNil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } @@ -245644,7 +247025,7 @@ $packages["net"] = (function() { if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, new OpError.ptr("listen", network, $ifaceNil, $ifaceNil, err)]; } - sl = new sysListener.ptr($clone(lc, ListenConfig), network, address); + sl = new sysListener.ptr($clone((lc === ptrType$43.nil && $throwNilPointerError(), lc), ListenConfig), network, address); l = $ifaceNil; _r$1 = addrs.first(isIPv4); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } la = _r$1; @@ -245654,17 +247035,28 @@ $packages["net"] = (function() { /* */ $s = 5; continue; /* if ($assertType(_ref, ptrType$16, true)[1]) { */ case 3: la$1 = _ref.$val; - _r$2 = sl.listenTCP(ctx, la$1); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple$1 = _r$2; - l = _tuple$1[0]; - err = _tuple$1[1]; + _r$2 = sl.ListenConfig.MultipathTCP(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (_r$2) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (_r$2) { */ case 7: + _r$3 = sl.listenMPTCP(ctx, la$1); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$1 = _r$3; + l = _tuple$1[0]; + err = _tuple$1[1]; + $s = 9; continue; + /* } else { */ case 8: + _r$4 = sl.listenTCP(ctx, la$1); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$2 = _r$4; + l = _tuple$2[0]; + err = _tuple$2[1]; + /* } */ case 9: $s = 6; continue; /* } else if ($assertType(_ref, ptrType$6, true)[1]) { */ case 4: la$2 = _ref.$val; - _r$3 = sl.listenUnix(ctx, la$2); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple$2 = _r$3; - l = _tuple$2[0]; - err = _tuple$2[1]; + _r$5 = sl.listenUnix(ctx, la$2); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$3 = _r$5; + l = _tuple$3[0]; + err = _tuple$3[1]; $s = 6; continue; /* } else { */ case 5: la$3 = _ref; @@ -245674,7 +247066,7 @@ $packages["net"] = (function() { $s = -1; return [$ifaceNil, new OpError.ptr("listen", sl.network, $ifaceNil, la, err)]; } $s = -1; return [l, $ifaceNil]; - /* */ } return; } var $f = {$blk: Listen$1, $c: true, $r, _r, _r$1, _r$2, _r$3, _ref, _tuple, _tuple$1, _tuple$2, address, addrs, ctx, err, l, la, la$1, la$2, la$3, lc, network, sl, $s};return $f; + /* */ } return; } var $f = {$blk: Listen$1, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _tuple, _tuple$1, _tuple$2, _tuple$3, address, addrs, ctx, err, l, la, la$1, la$2, la$3, lc, network, sl, $s};return $f; }; $ptrType(ListenConfig).prototype.ListenPacket = function ListenPacket$1(ctx, network, address) { var {_r, _r$1, _r$2, _r$3, _r$4, _ref, _tuple, _tuple$1, _tuple$2, _tuple$3, address, addrs, c, ctx, err, la, la$1, la$2, la$3, la$4, lc, network, sl, $s, $r, $c} = $restore(this, {ctx, network, address}); @@ -245687,13 +247079,13 @@ $packages["net"] = (function() { if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [$ifaceNil, new OpError.ptr("listen", network, $ifaceNil, $ifaceNil, err)]; } - sl = new sysListener.ptr($clone(lc, ListenConfig), network, address); + sl = new sysListener.ptr($clone((lc === ptrType$43.nil && $throwNilPointerError(), lc), ListenConfig), network, address); c = $ifaceNil; _r$1 = addrs.first(isIPv4); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } la = _r$1; _ref = la; /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$33, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$34, true)[1]) { $s = 4; continue; } /* */ if ($assertType(_ref, ptrType$6, true)[1]) { $s = 5; continue; } /* */ $s = 6; continue; /* if ($assertType(_ref, ptrType$13, true)[1]) { */ case 3: @@ -245703,7 +247095,7 @@ $packages["net"] = (function() { c = _tuple$1[0]; err = _tuple$1[1]; $s = 7; continue; - /* } else if ($assertType(_ref, ptrType$33, true)[1]) { */ case 4: + /* } else if ($assertType(_ref, ptrType$34, true)[1]) { */ case 4: la$2 = _ref.$val; _r$3 = sl.listenIP(ctx, la$2); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _tuple$2 = _r$3; @@ -245730,7 +247122,7 @@ $packages["net"] = (function() { Listen = function Listen$2(network, address) { var {$24r, _r, address, lc, network, $s, $r, $c} = $restore(this, {network, address}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - lc = new ListenConfig.ptr($throwNilPointerError, new time.Duration(0, 0)); + lc = new ListenConfig.ptr($throwNilPointerError, new time.Duration(0, 0), 0); _r = lc.Listen(context.Background(), network, address); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $24r = _r; $s = 2; case 2: return $24r; @@ -245763,40 +247155,41 @@ $packages["net"] = (function() { addrPortUDPAddr.methods = [{prop: "Network", name: "Network", pkg: "", typ: $funcType([], [$String], false)}]; ptrType$14.methods = [{prop: "readFrom", name: "readFrom", pkg: "net", typ: $funcType([sliceType$1, ptrType$13], [$Int, ptrType$13, $error], false)}, {prop: "readFromAddrPort", name: "readFromAddrPort", pkg: "net", typ: $funcType([sliceType$1], [$Int, netip.AddrPort, $error], false)}, {prop: "readMsg", name: "readMsg", pkg: "net", typ: $funcType([sliceType$1, sliceType$1], [$Int, $Int, $Int, netip.AddrPort, $error], false)}, {prop: "writeTo", name: "writeTo", pkg: "net", typ: $funcType([sliceType$1, ptrType$13], [$Int, $error], false)}, {prop: "writeToAddrPort", name: "writeToAddrPort", pkg: "net", typ: $funcType([sliceType$1, netip.AddrPort], [$Int, $error], false)}, {prop: "writeMsg", name: "writeMsg", pkg: "net", typ: $funcType([sliceType$1, sliceType$1, ptrType$13], [$Int, $Int, $error], false)}, {prop: "writeMsgAddrPort", name: "writeMsgAddrPort", pkg: "net", typ: $funcType([sliceType$1, sliceType$1, netip.AddrPort], [$Int, $Int, $error], false)}, {prop: "SyscallConn", name: "SyscallConn", pkg: "", typ: $funcType([], [syscall.RawConn, $error], false)}, {prop: "ReadFromUDP", name: "ReadFromUDP", pkg: "", typ: $funcType([sliceType$1], [$Int, ptrType$13, $error], false)}, {prop: "readFromUDP", name: "readFromUDP", pkg: "net", typ: $funcType([sliceType$1, ptrType$13], [$Int, ptrType$13, $error], false)}, {prop: "ReadFrom", name: "ReadFrom", pkg: "", typ: $funcType([sliceType$1], [$Int, Addr, $error], false)}, {prop: "ReadFromUDPAddrPort", name: "ReadFromUDPAddrPort", pkg: "", typ: $funcType([sliceType$1], [$Int, netip.AddrPort, $error], false)}, {prop: "ReadMsgUDP", name: "ReadMsgUDP", pkg: "", typ: $funcType([sliceType$1, sliceType$1], [$Int, $Int, $Int, ptrType$13, $error], false)}, {prop: "ReadMsgUDPAddrPort", name: "ReadMsgUDPAddrPort", pkg: "", typ: $funcType([sliceType$1, sliceType$1], [$Int, $Int, $Int, netip.AddrPort, $error], false)}, {prop: "WriteToUDP", name: "WriteToUDP", pkg: "", typ: $funcType([sliceType$1, ptrType$13], [$Int, $error], false)}, {prop: "WriteToUDPAddrPort", name: "WriteToUDPAddrPort", pkg: "", typ: $funcType([sliceType$1, netip.AddrPort], [$Int, $error], false)}, {prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([sliceType$1, Addr], [$Int, $error], false)}, {prop: "WriteMsgUDP", name: "WriteMsgUDP", pkg: "", typ: $funcType([sliceType$1, sliceType$1, ptrType$13], [$Int, $Int, $error], false)}, {prop: "WriteMsgUDPAddrPort", name: "WriteMsgUDPAddrPort", pkg: "", typ: $funcType([sliceType$1, sliceType$1, netip.AddrPort], [$Int, $Int, $error], false)}]; ptrType$16.methods = [{prop: "family", name: "family", pkg: "net", typ: $funcType([], [$Int], false)}, {prop: "sockaddr", name: "sockaddr", pkg: "net", typ: $funcType([$Int], [syscall.Sockaddr, $error], false)}, {prop: "toLocal", name: "toLocal", pkg: "net", typ: $funcType([$String], [sockaddr], false)}, {prop: "AddrPort", name: "AddrPort", pkg: "", typ: $funcType([], [netip.AddrPort], false)}, {prop: "Network", name: "Network", pkg: "", typ: $funcType([], [$String], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "isWildcard", name: "isWildcard", pkg: "net", typ: $funcType([], [$Bool], false)}, {prop: "opAddr", name: "opAddr", pkg: "net", typ: $funcType([], [Addr], false)}]; - ptrType$17.methods = [{prop: "readFrom", name: "readFrom", pkg: "net", typ: $funcType([io.Reader], [$Int64, $error], false)}, {prop: "SyscallConn", name: "SyscallConn", pkg: "", typ: $funcType([], [syscall.RawConn, $error], false)}, {prop: "ReadFrom", name: "ReadFrom", pkg: "", typ: $funcType([io.Reader], [$Int64, $error], false)}, {prop: "CloseRead", name: "CloseRead", pkg: "", typ: $funcType([], [$error], false)}, {prop: "CloseWrite", name: "CloseWrite", pkg: "", typ: $funcType([], [$error], false)}, {prop: "SetLinger", name: "SetLinger", pkg: "", typ: $funcType([$Int], [$error], false)}, {prop: "SetKeepAlive", name: "SetKeepAlive", pkg: "", typ: $funcType([$Bool], [$error], false)}, {prop: "SetKeepAlivePeriod", name: "SetKeepAlivePeriod", pkg: "", typ: $funcType([time.Duration], [$error], false)}, {prop: "SetNoDelay", name: "SetNoDelay", pkg: "", typ: $funcType([$Bool], [$error], false)}]; + ptrType$17.methods = [{prop: "readFrom", name: "readFrom", pkg: "net", typ: $funcType([io.Reader], [$Int64, $error], false)}, {prop: "SyscallConn", name: "SyscallConn", pkg: "", typ: $funcType([], [syscall.RawConn, $error], false)}, {prop: "ReadFrom", name: "ReadFrom", pkg: "", typ: $funcType([io.Reader], [$Int64, $error], false)}, {prop: "CloseRead", name: "CloseRead", pkg: "", typ: $funcType([], [$error], false)}, {prop: "CloseWrite", name: "CloseWrite", pkg: "", typ: $funcType([], [$error], false)}, {prop: "SetLinger", name: "SetLinger", pkg: "", typ: $funcType([$Int], [$error], false)}, {prop: "SetKeepAlive", name: "SetKeepAlive", pkg: "", typ: $funcType([$Bool], [$error], false)}, {prop: "SetKeepAlivePeriod", name: "SetKeepAlivePeriod", pkg: "", typ: $funcType([time.Duration], [$error], false)}, {prop: "SetNoDelay", name: "SetNoDelay", pkg: "", typ: $funcType([$Bool], [$error], false)}, {prop: "MultipathTCP", name: "MultipathTCP", pkg: "", typ: $funcType([], [$Bool, $error], false)}]; ptrType$20.methods = [{prop: "ok", name: "ok", pkg: "net", typ: $funcType([], [$Bool], false)}, {prop: "accept", name: "accept", pkg: "net", typ: $funcType([], [ptrType$17, $error], false)}, {prop: "close", name: "close", pkg: "net", typ: $funcType([], [$error], false)}, {prop: "file", name: "file", pkg: "net", typ: $funcType([], [ptrType$8, $error], false)}, {prop: "SyscallConn", name: "SyscallConn", pkg: "", typ: $funcType([], [syscall.RawConn, $error], false)}, {prop: "AcceptTCP", name: "AcceptTCP", pkg: "", typ: $funcType([], [ptrType$17, $error], false)}, {prop: "Accept", name: "Accept", pkg: "", typ: $funcType([], [Conn, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Addr", name: "Addr", pkg: "", typ: $funcType([], [Addr], false)}, {prop: "SetDeadline", name: "SetDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "File", name: "File", pkg: "", typ: $funcType([], [ptrType$8, $error], false)}]; - ptrType$21.methods = [{prop: "ok", name: "ok", pkg: "net", typ: $funcType([], [$Bool], false)}, {prop: "Control", name: "Control", pkg: "", typ: $funcType([funcType$1], [$error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([funcType$2], [$error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([funcType$2], [$error], false)}]; - ptrType$40.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([funcType$2], [$error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([funcType$2], [$error], false)}]; - ptrType$23.methods = [{prop: "close", name: "close", pkg: "net", typ: $funcType([], [], false)}, {prop: "getLineFromData", name: "getLineFromData", pkg: "net", typ: $funcType([], [$String, $Bool], false)}, {prop: "readLine", name: "readLine", pkg: "net", typ: $funcType([], [$String, $Bool], false)}, {prop: "stat", name: "stat", pkg: "net", typ: $funcType([], [time.Time, $Int64, $error], false)}]; - ptrType$4.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "closeRead", name: "closeRead", pkg: "net", typ: $funcType([], [$error], false)}, {prop: "closeWrite", name: "closeWrite", pkg: "net", typ: $funcType([], [$error], false)}, {prop: "accept", name: "accept", pkg: "net", typ: $funcType([], [ptrType$4, $error], false)}, {prop: "SetDeadline", name: "SetDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetReadDeadline", name: "SetReadDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetWriteDeadline", name: "SetWriteDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "readFrom", name: "readFrom", pkg: "net", typ: $funcType([sliceType$1], [$Int, syscall.Sockaddr, $error], false)}, {prop: "readFromInet4", name: "readFromInet4", pkg: "net", typ: $funcType([sliceType$1, ptrType$11], [$Int, $error], false)}, {prop: "readFromInet6", name: "readFromInet6", pkg: "net", typ: $funcType([sliceType$1, ptrType$12], [$Int, $error], false)}, {prop: "readMsg", name: "readMsg", pkg: "net", typ: $funcType([sliceType$1, sliceType$1, $Int], [$Int, $Int, $Int, syscall.Sockaddr, $error], false)}, {prop: "readMsgInet4", name: "readMsgInet4", pkg: "net", typ: $funcType([sliceType$1, sliceType$1, $Int, ptrType$11], [$Int, $Int, $Int, $error], false)}, {prop: "readMsgInet6", name: "readMsgInet6", pkg: "net", typ: $funcType([sliceType$1, sliceType$1, $Int, ptrType$12], [$Int, $Int, $Int, $error], false)}, {prop: "writeMsgInet4", name: "writeMsgInet4", pkg: "net", typ: $funcType([sliceType$1, sliceType$1, ptrType$11], [$Int, $Int, $error], false)}, {prop: "writeMsgInet6", name: "writeMsgInet6", pkg: "net", typ: $funcType([sliceType$1, sliceType$1, ptrType$12], [$Int, $Int, $error], false)}, {prop: "writeTo", name: "writeTo", pkg: "net", typ: $funcType([sliceType$1, syscall.Sockaddr], [$Int, $error], false)}, {prop: "writeToInet4", name: "writeToInet4", pkg: "net", typ: $funcType([sliceType$1, ptrType$11], [$Int, $error], false)}, {prop: "writeToInet6", name: "writeToInet6", pkg: "net", typ: $funcType([sliceType$1, ptrType$12], [$Int, $error], false)}, {prop: "writeMsg", name: "writeMsg", pkg: "net", typ: $funcType([sliceType$1, sliceType$1, syscall.Sockaddr], [$Int, $Int, $error], false)}, {prop: "dup", name: "dup", pkg: "net", typ: $funcType([], [ptrType$8, $error], false)}]; - ptrType$24.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [], false)}, {prop: "SetReadDeadline", name: "SetReadDeadline", pkg: "", typ: $funcType([time.Time], [], false)}, {prop: "SetWriteDeadline", name: "SetWriteDeadline", pkg: "", typ: $funcType([time.Time], [], false)}]; - ptrType$27.methods = [{prop: "ok", name: "ok", pkg: "net", typ: $funcType([], [$Bool], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "LocalAddr", name: "LocalAddr", pkg: "", typ: $funcType([], [Addr], false)}, {prop: "RemoteAddr", name: "RemoteAddr", pkg: "", typ: $funcType([], [Addr], false)}, {prop: "SetDeadline", name: "SetDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetReadDeadline", name: "SetReadDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetWriteDeadline", name: "SetWriteDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetReadBuffer", name: "SetReadBuffer", pkg: "", typ: $funcType([$Int], [$error], false)}, {prop: "SetWriteBuffer", name: "SetWriteBuffer", pkg: "", typ: $funcType([$Int], [$error], false)}, {prop: "File", name: "File", pkg: "", typ: $funcType([], [ptrType$8, $error], false)}]; + ptrType$21.methods = [{prop: "ok", name: "ok", pkg: "net", typ: $funcType([], [$Bool], false)}, {prop: "Control", name: "Control", pkg: "", typ: $funcType([funcType$1], [$error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([funcType$2], [$error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([funcType$2], [$error], false)}, {prop: "PollFD", name: "PollFD", pkg: "", typ: $funcType([], [ptrType$22], false)}]; + ptrType$45.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([funcType$2], [$error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([funcType$2], [$error], false)}]; + ptrType$24.methods = [{prop: "close", name: "close", pkg: "net", typ: $funcType([], [], false)}, {prop: "getLineFromData", name: "getLineFromData", pkg: "net", typ: $funcType([], [$String, $Bool], false)}, {prop: "readLine", name: "readLine", pkg: "net", typ: $funcType([], [$String, $Bool], false)}, {prop: "stat", name: "stat", pkg: "net", typ: $funcType([], [time.Time, $Int64, $error], false)}]; + ptrType$25.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "closeRead", name: "closeRead", pkg: "net", typ: $funcType([], [$error], false)}, {prop: "closeWrite", name: "closeWrite", pkg: "net", typ: $funcType([], [$error], false)}, {prop: "accept", name: "accept", pkg: "net", typ: $funcType([], [ptrType$4, $error], false)}, {prop: "SetDeadline", name: "SetDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetReadDeadline", name: "SetReadDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetWriteDeadline", name: "SetWriteDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "connect", name: "connect", pkg: "net", typ: $funcType([context.Context, syscall.Sockaddr, syscall.Sockaddr], [syscall.Sockaddr, $error], false)}, {prop: "readFrom", name: "readFrom", pkg: "net", typ: $funcType([sliceType$1], [$Int, syscall.Sockaddr, $error], false)}, {prop: "readFromInet4", name: "readFromInet4", pkg: "net", typ: $funcType([sliceType$1, ptrType$11], [$Int, $error], false)}, {prop: "readFromInet6", name: "readFromInet6", pkg: "net", typ: $funcType([sliceType$1, ptrType$12], [$Int, $error], false)}, {prop: "readMsg", name: "readMsg", pkg: "net", typ: $funcType([sliceType$1, sliceType$1, $Int], [$Int, $Int, $Int, syscall.Sockaddr, $error], false)}, {prop: "readMsgInet4", name: "readMsgInet4", pkg: "net", typ: $funcType([sliceType$1, sliceType$1, $Int, ptrType$11], [$Int, $Int, $Int, $error], false)}, {prop: "readMsgInet6", name: "readMsgInet6", pkg: "net", typ: $funcType([sliceType$1, sliceType$1, $Int, ptrType$12], [$Int, $Int, $Int, $error], false)}, {prop: "writeMsgInet4", name: "writeMsgInet4", pkg: "net", typ: $funcType([sliceType$1, sliceType$1, ptrType$11], [$Int, $Int, $error], false)}, {prop: "writeMsgInet6", name: "writeMsgInet6", pkg: "net", typ: $funcType([sliceType$1, sliceType$1, ptrType$12], [$Int, $Int, $error], false)}, {prop: "writeTo", name: "writeTo", pkg: "net", typ: $funcType([sliceType$1, syscall.Sockaddr], [$Int, $error], false)}, {prop: "writeToInet4", name: "writeToInet4", pkg: "net", typ: $funcType([sliceType$1, ptrType$11], [$Int, $error], false)}, {prop: "writeToInet6", name: "writeToInet6", pkg: "net", typ: $funcType([sliceType$1, ptrType$12], [$Int, $error], false)}, {prop: "writeMsg", name: "writeMsg", pkg: "net", typ: $funcType([sliceType$1, sliceType$1, syscall.Sockaddr], [$Int, $Int, $error], false)}, {prop: "dup", name: "dup", pkg: "net", typ: $funcType([], [ptrType$8, $error], false)}]; + ptrType$27.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [], false)}, {prop: "SetReadDeadline", name: "SetReadDeadline", pkg: "", typ: $funcType([time.Time], [], false)}, {prop: "SetWriteDeadline", name: "SetWriteDeadline", pkg: "", typ: $funcType([time.Time], [], false)}]; + ptrType$28.methods = [{prop: "ok", name: "ok", pkg: "net", typ: $funcType([], [$Bool], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "LocalAddr", name: "LocalAddr", pkg: "", typ: $funcType([], [Addr], false)}, {prop: "RemoteAddr", name: "RemoteAddr", pkg: "", typ: $funcType([], [Addr], false)}, {prop: "SetDeadline", name: "SetDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetReadDeadline", name: "SetReadDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetWriteDeadline", name: "SetWriteDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetReadBuffer", name: "SetReadBuffer", pkg: "", typ: $funcType([$Int], [$error], false)}, {prop: "SetWriteBuffer", name: "SetWriteBuffer", pkg: "", typ: $funcType([$Int], [$error], false)}, {prop: "File", name: "File", pkg: "", typ: $funcType([], [ptrType$8, $error], false)}]; canceledError.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Is", name: "Is", pkg: "", typ: $funcType([$error], [$Bool], false)}]; ptrType$18.methods = [{prop: "Unwrap", name: "Unwrap", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false)}]; - ptrType$44.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false)}]; - ptrType$28.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false)}]; - UnknownNetworkError.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false)}]; - ptrType$45.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Is", name: "Is", pkg: "", typ: $funcType([$error], [$Bool], false)}]; + ptrType$49.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false)}]; ptrType$29.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false)}]; + UnknownNetworkError.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$50.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Is", name: "Is", pkg: "", typ: $funcType([$error], [$Bool], false)}]; + ptrType$30.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false)}]; HardwareAddr.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$10.methods = [{prop: "lookup", name: "lookup", pkg: "net", typ: $funcType([context.Context, $String, dnsmessage.Type, ptrType$35], [dnsmessage.Parser, $String, $error], false)}, {prop: "lookupHost", name: "lookupHost", pkg: "net", typ: $funcType([context.Context, $String], [sliceType, $error], false)}, {prop: "lookupIP", name: "lookupIP", pkg: "net", typ: $funcType([context.Context, $String, $String], [sliceType$5, $error], false)}, {prop: "lookupPort", name: "lookupPort", pkg: "net", typ: $funcType([context.Context, $String, $String], [$Int, $error], false)}, {prop: "lookupCNAME", name: "lookupCNAME", pkg: "net", typ: $funcType([context.Context, $String], [$String, $error], false)}, {prop: "lookupSRV", name: "lookupSRV", pkg: "net", typ: $funcType([context.Context, $String, $String, $String], [$String, sliceType$6, $error], false)}, {prop: "lookupMX", name: "lookupMX", pkg: "net", typ: $funcType([context.Context, $String], [sliceType$7, $error], false)}, {prop: "lookupNS", name: "lookupNS", pkg: "net", typ: $funcType([context.Context, $String], [sliceType$8, $error], false)}, {prop: "lookupTXT", name: "lookupTXT", pkg: "net", typ: $funcType([context.Context, $String], [sliceType, $error], false)}, {prop: "lookupAddr", name: "lookupAddr", pkg: "net", typ: $funcType([context.Context, $String], [sliceType, $error], false)}, {prop: "preferGo", name: "preferGo", pkg: "net", typ: $funcType([], [$Bool], false)}, {prop: "strictErrors", name: "strictErrors", pkg: "net", typ: $funcType([], [$Bool], false)}, {prop: "getLookupGroup", name: "getLookupGroup", pkg: "net", typ: $funcType([], [ptrType$47], false)}, {prop: "LookupHost", name: "LookupHost", pkg: "", typ: $funcType([context.Context, $String], [sliceType, $error], false)}, {prop: "LookupIPAddr", name: "LookupIPAddr", pkg: "", typ: $funcType([context.Context, $String], [sliceType$5, $error], false)}, {prop: "LookupIP", name: "LookupIP", pkg: "", typ: $funcType([context.Context, $String, $String], [sliceType$9, $error], false)}, {prop: "LookupNetIP", name: "LookupNetIP", pkg: "", typ: $funcType([context.Context, $String, $String], [sliceType$10, $error], false)}, {prop: "lookupIPAddr", name: "lookupIPAddr", pkg: "net", typ: $funcType([context.Context, $String, $String], [sliceType$5, $error], false)}, {prop: "LookupPort", name: "LookupPort", pkg: "", typ: $funcType([context.Context, $String, $String], [$Int, $error], false)}, {prop: "LookupCNAME", name: "LookupCNAME", pkg: "", typ: $funcType([context.Context, $String], [$String, $error], false)}, {prop: "LookupSRV", name: "LookupSRV", pkg: "", typ: $funcType([context.Context, $String, $String, $String], [$String, sliceType$6, $error], false)}, {prop: "LookupMX", name: "LookupMX", pkg: "", typ: $funcType([context.Context, $String], [sliceType$7, $error], false)}, {prop: "LookupNS", name: "LookupNS", pkg: "", typ: $funcType([context.Context, $String], [sliceType$8, $error], false)}, {prop: "LookupTXT", name: "LookupTXT", pkg: "", typ: $funcType([context.Context, $String], [sliceType, $error], false)}, {prop: "LookupAddr", name: "LookupAddr", pkg: "", typ: $funcType([context.Context, $String], [sliceType, $error], false)}, {prop: "dial", name: "dial", pkg: "net", typ: $funcType([context.Context, $String, $String], [Conn, $error], false)}, {prop: "goLookupSRV", name: "goLookupSRV", pkg: "net", typ: $funcType([context.Context, $String, $String, $String], [$String, sliceType$6, $error], false)}, {prop: "goLookupMX", name: "goLookupMX", pkg: "net", typ: $funcType([context.Context, $String], [sliceType$7, $error], false)}, {prop: "goLookupNS", name: "goLookupNS", pkg: "net", typ: $funcType([context.Context, $String], [sliceType$8, $error], false)}, {prop: "goLookupTXT", name: "goLookupTXT", pkg: "net", typ: $funcType([context.Context, $String], [sliceType, $error], false)}, {prop: "internetAddrList", name: "internetAddrList", pkg: "net", typ: $funcType([context.Context, $String, $String], [addrList, $error], false)}, {prop: "resolveAddrList", name: "resolveAddrList", pkg: "net", typ: $funcType([context.Context, $String, $String, $String, Addr], [addrList, $error], false)}]; + ptrType$10.methods = [{prop: "lookup", name: "lookup", pkg: "net", typ: $funcType([context.Context, $String, dnsmessage.Type, ptrType$36], [dnsmessage.Parser, $String, $error], false)}, {prop: "lookupHost", name: "lookupHost", pkg: "net", typ: $funcType([context.Context, $String], [sliceType, $error], false)}, {prop: "lookupIP", name: "lookupIP", pkg: "net", typ: $funcType([context.Context, $String, $String], [sliceType$5, $error], false)}, {prop: "lookupPort", name: "lookupPort", pkg: "net", typ: $funcType([context.Context, $String, $String], [$Int, $error], false)}, {prop: "lookupCNAME", name: "lookupCNAME", pkg: "net", typ: $funcType([context.Context, $String], [$String, $error], false)}, {prop: "lookupSRV", name: "lookupSRV", pkg: "net", typ: $funcType([context.Context, $String, $String, $String], [$String, sliceType$6, $error], false)}, {prop: "lookupMX", name: "lookupMX", pkg: "net", typ: $funcType([context.Context, $String], [sliceType$7, $error], false)}, {prop: "lookupNS", name: "lookupNS", pkg: "net", typ: $funcType([context.Context, $String], [sliceType$8, $error], false)}, {prop: "lookupTXT", name: "lookupTXT", pkg: "net", typ: $funcType([context.Context, $String], [sliceType, $error], false)}, {prop: "lookupAddr", name: "lookupAddr", pkg: "net", typ: $funcType([context.Context, $String], [sliceType, $error], false)}, {prop: "preferGo", name: "preferGo", pkg: "net", typ: $funcType([], [$Bool], false)}, {prop: "strictErrors", name: "strictErrors", pkg: "net", typ: $funcType([], [$Bool], false)}, {prop: "getLookupGroup", name: "getLookupGroup", pkg: "net", typ: $funcType([], [ptrType$52], false)}, {prop: "LookupHost", name: "LookupHost", pkg: "", typ: $funcType([context.Context, $String], [sliceType, $error], false)}, {prop: "LookupIPAddr", name: "LookupIPAddr", pkg: "", typ: $funcType([context.Context, $String], [sliceType$5, $error], false)}, {prop: "LookupIP", name: "LookupIP", pkg: "", typ: $funcType([context.Context, $String, $String], [sliceType$9, $error], false)}, {prop: "LookupNetIP", name: "LookupNetIP", pkg: "", typ: $funcType([context.Context, $String, $String], [sliceType$10, $error], false)}, {prop: "lookupIPAddr", name: "lookupIPAddr", pkg: "net", typ: $funcType([context.Context, $String, $String], [sliceType$5, $error], false)}, {prop: "LookupPort", name: "LookupPort", pkg: "", typ: $funcType([context.Context, $String, $String], [$Int, $error], false)}, {prop: "LookupCNAME", name: "LookupCNAME", pkg: "", typ: $funcType([context.Context, $String], [$String, $error], false)}, {prop: "LookupSRV", name: "LookupSRV", pkg: "", typ: $funcType([context.Context, $String, $String, $String], [$String, sliceType$6, $error], false)}, {prop: "LookupMX", name: "LookupMX", pkg: "", typ: $funcType([context.Context, $String], [sliceType$7, $error], false)}, {prop: "LookupNS", name: "LookupNS", pkg: "", typ: $funcType([context.Context, $String], [sliceType$8, $error], false)}, {prop: "LookupTXT", name: "LookupTXT", pkg: "", typ: $funcType([context.Context, $String], [sliceType, $error], false)}, {prop: "LookupAddr", name: "LookupAddr", pkg: "", typ: $funcType([context.Context, $String], [sliceType, $error], false)}, {prop: "dial", name: "dial", pkg: "net", typ: $funcType([context.Context, $String, $String], [Conn, $error], false)}, {prop: "goLookupSRV", name: "goLookupSRV", pkg: "net", typ: $funcType([context.Context, $String, $String, $String], [$String, sliceType$6, $error], false)}, {prop: "goLookupMX", name: "goLookupMX", pkg: "net", typ: $funcType([context.Context, $String], [sliceType$7, $error], false)}, {prop: "goLookupNS", name: "goLookupNS", pkg: "net", typ: $funcType([context.Context, $String], [sliceType$8, $error], false)}, {prop: "goLookupTXT", name: "goLookupTXT", pkg: "net", typ: $funcType([context.Context, $String], [sliceType, $error], false)}, {prop: "internetAddrList", name: "internetAddrList", pkg: "net", typ: $funcType([context.Context, $String, $String], [addrList, $error], false)}, {prop: "resolveAddrList", name: "resolveAddrList", pkg: "net", typ: $funcType([context.Context, $String, $String, $String, Addr], [addrList, $error], false)}]; ptrType$3.methods = [{prop: "Value", name: "Value", pkg: "", typ: $funcType([$emptyInterface], [$emptyInterface], false)}]; - ptrType$48.methods = [{prop: "probe", name: "probe", pkg: "net", typ: $funcType([], [], false)}]; + ptrType$53.methods = [{prop: "probe", name: "probe", pkg: "net", typ: $funcType([], [], false)}]; addrList.methods = [{prop: "forResolve", name: "forResolve", pkg: "net", typ: $funcType([$String, $String], [Addr], false)}, {prop: "first", name: "first", pkg: "net", typ: $funcType([funcType$4], [Addr], false)}, {prop: "partition", name: "partition", pkg: "net", typ: $funcType([funcType$4], [addrList, addrList], false)}]; - ptrType$33.methods = [{prop: "family", name: "family", pkg: "net", typ: $funcType([], [$Int], false)}, {prop: "sockaddr", name: "sockaddr", pkg: "net", typ: $funcType([$Int], [syscall.Sockaddr, $error], false)}, {prop: "toLocal", name: "toLocal", pkg: "net", typ: $funcType([$String], [sockaddr], false)}, {prop: "Network", name: "Network", pkg: "", typ: $funcType([], [$String], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "isWildcard", name: "isWildcard", pkg: "net", typ: $funcType([], [$Bool], false)}, {prop: "opAddr", name: "opAddr", pkg: "net", typ: $funcType([], [Addr], false)}]; - ptrType$37.methods = [{prop: "readFrom", name: "readFrom", pkg: "net", typ: $funcType([sliceType$1], [$Int, ptrType$33, $error], false)}, {prop: "readMsg", name: "readMsg", pkg: "net", typ: $funcType([sliceType$1, sliceType$1], [$Int, $Int, $Int, ptrType$33, $error], false)}, {prop: "writeTo", name: "writeTo", pkg: "net", typ: $funcType([sliceType$1, ptrType$33], [$Int, $error], false)}, {prop: "writeMsg", name: "writeMsg", pkg: "net", typ: $funcType([sliceType$1, sliceType$1, ptrType$33], [$Int, $Int, $error], false)}, {prop: "SyscallConn", name: "SyscallConn", pkg: "", typ: $funcType([], [syscall.RawConn, $error], false)}, {prop: "ReadFromIP", name: "ReadFromIP", pkg: "", typ: $funcType([sliceType$1], [$Int, ptrType$33, $error], false)}, {prop: "ReadFrom", name: "ReadFrom", pkg: "", typ: $funcType([sliceType$1], [$Int, Addr, $error], false)}, {prop: "ReadMsgIP", name: "ReadMsgIP", pkg: "", typ: $funcType([sliceType$1, sliceType$1], [$Int, $Int, $Int, ptrType$33, $error], false)}, {prop: "WriteToIP", name: "WriteToIP", pkg: "", typ: $funcType([sliceType$1, ptrType$33], [$Int, $error], false)}, {prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([sliceType$1, Addr], [$Int, $error], false)}, {prop: "WriteMsgIP", name: "WriteMsgIP", pkg: "", typ: $funcType([sliceType$1, sliceType$1, ptrType$33], [$Int, $Int, $error], false)}]; + ptrType$34.methods = [{prop: "family", name: "family", pkg: "net", typ: $funcType([], [$Int], false)}, {prop: "sockaddr", name: "sockaddr", pkg: "net", typ: $funcType([$Int], [syscall.Sockaddr, $error], false)}, {prop: "toLocal", name: "toLocal", pkg: "net", typ: $funcType([$String], [sockaddr], false)}, {prop: "Network", name: "Network", pkg: "", typ: $funcType([], [$String], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "isWildcard", name: "isWildcard", pkg: "net", typ: $funcType([], [$Bool], false)}, {prop: "opAddr", name: "opAddr", pkg: "net", typ: $funcType([], [Addr], false)}]; + ptrType$38.methods = [{prop: "readFrom", name: "readFrom", pkg: "net", typ: $funcType([sliceType$1], [$Int, ptrType$34, $error], false)}, {prop: "readMsg", name: "readMsg", pkg: "net", typ: $funcType([sliceType$1, sliceType$1], [$Int, $Int, $Int, ptrType$34, $error], false)}, {prop: "writeTo", name: "writeTo", pkg: "net", typ: $funcType([sliceType$1, ptrType$34], [$Int, $error], false)}, {prop: "writeMsg", name: "writeMsg", pkg: "net", typ: $funcType([sliceType$1, sliceType$1, ptrType$34], [$Int, $Int, $error], false)}, {prop: "SyscallConn", name: "SyscallConn", pkg: "", typ: $funcType([], [syscall.RawConn, $error], false)}, {prop: "ReadFromIP", name: "ReadFromIP", pkg: "", typ: $funcType([sliceType$1], [$Int, ptrType$34, $error], false)}, {prop: "ReadFrom", name: "ReadFrom", pkg: "", typ: $funcType([sliceType$1], [$Int, Addr, $error], false)}, {prop: "ReadMsgIP", name: "ReadMsgIP", pkg: "", typ: $funcType([sliceType$1, sliceType$1], [$Int, $Int, $Int, ptrType$34, $error], false)}, {prop: "WriteToIP", name: "WriteToIP", pkg: "", typ: $funcType([sliceType$1, ptrType$34], [$Int, $error], false)}, {prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([sliceType$1, Addr], [$Int, $error], false)}, {prop: "WriteMsgIP", name: "WriteMsgIP", pkg: "", typ: $funcType([sliceType$1, sliceType$1, ptrType$34], [$Int, $Int, $error], false)}]; IP.methods = [{prop: "IsUnspecified", name: "IsUnspecified", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsLoopback", name: "IsLoopback", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsPrivate", name: "IsPrivate", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsMulticast", name: "IsMulticast", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsInterfaceLocalMulticast", name: "IsInterfaceLocalMulticast", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsLinkLocalMulticast", name: "IsLinkLocalMulticast", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsLinkLocalUnicast", name: "IsLinkLocalUnicast", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsGlobalUnicast", name: "IsGlobalUnicast", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "To4", name: "To4", pkg: "", typ: $funcType([], [IP], false)}, {prop: "To16", name: "To16", pkg: "", typ: $funcType([], [IP], false)}, {prop: "DefaultMask", name: "DefaultMask", pkg: "", typ: $funcType([], [IPMask], false)}, {prop: "Mask", name: "Mask", pkg: "", typ: $funcType([IPMask], [IP], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "MarshalText", name: "MarshalText", pkg: "", typ: $funcType([], [sliceType$1, $error], false)}, {prop: "Equal", name: "Equal", pkg: "", typ: $funcType([IP], [$Bool], false)}, {prop: "matchAddrFamily", name: "matchAddrFamily", pkg: "net", typ: $funcType([IP], [$Bool], false)}]; - ptrType$49.methods = [{prop: "UnmarshalText", name: "UnmarshalText", pkg: "", typ: $funcType([sliceType$1], [$error], false)}]; + ptrType$54.methods = [{prop: "UnmarshalText", name: "UnmarshalText", pkg: "", typ: $funcType([sliceType$1], [$error], false)}]; IPMask.methods = [{prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int, $Int], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$38.methods = [{prop: "Contains", name: "Contains", pkg: "", typ: $funcType([IP], [$Bool], false)}, {prop: "Network", name: "Network", pkg: "", typ: $funcType([], [$String], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$39.methods = [{prop: "Contains", name: "Contains", pkg: "", typ: $funcType([IP], [$Bool], false)}, {prop: "Network", name: "Network", pkg: "", typ: $funcType([], [$String], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; ptrType$15.methods = [{prop: "Addrs", name: "Addrs", pkg: "", typ: $funcType([], [sliceType$14, $error], false)}, {prop: "MulticastAddrs", name: "MulticastAddrs", pkg: "", typ: $funcType([], [sliceType$14, $error], false)}]; Flags.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$50.methods = [{prop: "update", name: "update", pkg: "net", typ: $funcType([sliceType$13, $Bool], [$Bool], false)}, {prop: "name", name: "name", pkg: "net", typ: $funcType([$Int], [$String], false)}, {prop: "index", name: "index", pkg: "net", typ: $funcType([$String], [$Int], false)}]; - ptrType$35.methods = [{prop: "serverOffset", name: "serverOffset", pkg: "net", typ: $funcType([], [$Uint32], false)}]; - ptrType$51.methods = [{prop: "dualStack", name: "dualStack", pkg: "net", typ: $funcType([], [$Bool], false)}, {prop: "deadline", name: "deadline", pkg: "net", typ: $funcType([context.Context, time.Time], [time.Time], false)}, {prop: "resolver", name: "resolver", pkg: "net", typ: $funcType([], [ptrType$10], false)}, {prop: "fallbackDelay", name: "fallbackDelay", pkg: "net", typ: $funcType([], [time.Duration], false)}, {prop: "Dial", name: "Dial", pkg: "", typ: $funcType([$String, $String], [Conn, $error], false)}, {prop: "DialContext", name: "DialContext", pkg: "", typ: $funcType([context.Context, $String, $String], [Conn, $error], false)}]; - ptrType$52.methods = [{prop: "dialUnix", name: "dialUnix", pkg: "net", typ: $funcType([context.Context, ptrType$6, ptrType$6], [ptrType$7, $error], false)}, {prop: "dialUDP", name: "dialUDP", pkg: "net", typ: $funcType([context.Context, ptrType$13, ptrType$13], [ptrType$14, $error], false)}, {prop: "dialTCP", name: "dialTCP", pkg: "net", typ: $funcType([context.Context, ptrType$16, ptrType$16], [ptrType$17, $error], false)}, {prop: "doDialTCP", name: "doDialTCP", pkg: "net", typ: $funcType([context.Context, ptrType$16, ptrType$16], [ptrType$17, $error], false)}, {prop: "dialIP", name: "dialIP", pkg: "net", typ: $funcType([context.Context, ptrType$33, ptrType$33], [ptrType$37, $error], false)}, {prop: "dialParallel", name: "dialParallel", pkg: "net", typ: $funcType([context.Context, addrList, addrList], [Conn, $error], false)}, {prop: "dialSerial", name: "dialSerial", pkg: "net", typ: $funcType([context.Context, addrList], [Conn, $error], false)}, {prop: "dialSingle", name: "dialSingle", pkg: "net", typ: $funcType([context.Context, Addr], [Conn, $error], false)}]; - ptrType$53.methods = [{prop: "Listen", name: "Listen", pkg: "", typ: $funcType([context.Context, $String, $String], [Listener, $error], false)}, {prop: "ListenPacket", name: "ListenPacket", pkg: "", typ: $funcType([context.Context, $String, $String], [PacketConn, $error], false)}]; - ptrType$54.methods = [{prop: "listenUnix", name: "listenUnix", pkg: "net", typ: $funcType([context.Context, ptrType$6], [ptrType$9, $error], false)}, {prop: "listenUnixgram", name: "listenUnixgram", pkg: "net", typ: $funcType([context.Context, ptrType$6], [ptrType$7, $error], false)}, {prop: "listenUDP", name: "listenUDP", pkg: "net", typ: $funcType([context.Context, ptrType$13], [ptrType$14, $error], false)}, {prop: "listenMulticastUDP", name: "listenMulticastUDP", pkg: "net", typ: $funcType([context.Context, ptrType$15, ptrType$13], [ptrType$14, $error], false)}, {prop: "listenTCP", name: "listenTCP", pkg: "net", typ: $funcType([context.Context, ptrType$16], [ptrType$20, $error], false)}, {prop: "listenIP", name: "listenIP", pkg: "net", typ: $funcType([context.Context, ptrType$33], [ptrType$37, $error], false)}]; + ptrType$55.methods = [{prop: "update", name: "update", pkg: "net", typ: $funcType([sliceType$13, $Bool], [$Bool], false)}, {prop: "name", name: "name", pkg: "net", typ: $funcType([$Int], [$String], false)}, {prop: "index", name: "index", pkg: "net", typ: $funcType([$String], [$Int], false)}]; + ptrType$36.methods = [{prop: "serverOffset", name: "serverOffset", pkg: "net", typ: $funcType([], [$Uint32], false)}]; + ptrType$42.methods = [{prop: "get", name: "get", pkg: "net", typ: $funcType([], [$Bool], false)}, {prop: "set", name: "set", pkg: "net", typ: $funcType([$Bool], [], false)}]; + ptrType$41.methods = [{prop: "dualStack", name: "dualStack", pkg: "net", typ: $funcType([], [$Bool], false)}, {prop: "deadline", name: "deadline", pkg: "net", typ: $funcType([context.Context, time.Time], [time.Time], false)}, {prop: "resolver", name: "resolver", pkg: "net", typ: $funcType([], [ptrType$10], false)}, {prop: "fallbackDelay", name: "fallbackDelay", pkg: "net", typ: $funcType([], [time.Duration], false)}, {prop: "MultipathTCP", name: "MultipathTCP", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "SetMultipathTCP", name: "SetMultipathTCP", pkg: "", typ: $funcType([$Bool], [], false)}, {prop: "Dial", name: "Dial", pkg: "", typ: $funcType([$String, $String], [Conn, $error], false)}, {prop: "DialContext", name: "DialContext", pkg: "", typ: $funcType([context.Context, $String, $String], [Conn, $error], false)}]; + ptrType$56.methods = [{prop: "dialUnix", name: "dialUnix", pkg: "net", typ: $funcType([context.Context, ptrType$6, ptrType$6], [ptrType$7, $error], false)}, {prop: "dialUDP", name: "dialUDP", pkg: "net", typ: $funcType([context.Context, ptrType$13, ptrType$13], [ptrType$14, $error], false)}, {prop: "dialTCP", name: "dialTCP", pkg: "net", typ: $funcType([context.Context, ptrType$16, ptrType$16], [ptrType$17, $error], false)}, {prop: "doDialTCP", name: "doDialTCP", pkg: "net", typ: $funcType([context.Context, ptrType$16, ptrType$16], [ptrType$17, $error], false)}, {prop: "doDialTCPProto", name: "doDialTCPProto", pkg: "net", typ: $funcType([context.Context, ptrType$16, ptrType$16, $Int], [ptrType$17, $error], false)}, {prop: "dialMPTCP", name: "dialMPTCP", pkg: "net", typ: $funcType([context.Context, ptrType$16, ptrType$16], [ptrType$17, $error], false)}, {prop: "dialIP", name: "dialIP", pkg: "net", typ: $funcType([context.Context, ptrType$34, ptrType$34], [ptrType$38, $error], false)}, {prop: "dialParallel", name: "dialParallel", pkg: "net", typ: $funcType([context.Context, addrList, addrList], [Conn, $error], false)}, {prop: "dialSerial", name: "dialSerial", pkg: "net", typ: $funcType([context.Context, addrList], [Conn, $error], false)}, {prop: "dialSingle", name: "dialSingle", pkg: "net", typ: $funcType([context.Context, Addr], [Conn, $error], false)}]; + ptrType$43.methods = [{prop: "MultipathTCP", name: "MultipathTCP", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "SetMultipathTCP", name: "SetMultipathTCP", pkg: "", typ: $funcType([$Bool], [], false)}, {prop: "Listen", name: "Listen", pkg: "", typ: $funcType([context.Context, $String, $String], [Listener, $error], false)}, {prop: "ListenPacket", name: "ListenPacket", pkg: "", typ: $funcType([context.Context, $String, $String], [PacketConn, $error], false)}]; + ptrType$57.methods = [{prop: "listenUnix", name: "listenUnix", pkg: "net", typ: $funcType([context.Context, ptrType$6], [ptrType$9, $error], false)}, {prop: "listenUnixgram", name: "listenUnixgram", pkg: "net", typ: $funcType([context.Context, ptrType$6], [ptrType$7, $error], false)}, {prop: "listenUDP", name: "listenUDP", pkg: "net", typ: $funcType([context.Context, ptrType$13], [ptrType$14, $error], false)}, {prop: "listenMulticastUDP", name: "listenMulticastUDP", pkg: "net", typ: $funcType([context.Context, ptrType$15, ptrType$13], [ptrType$14, $error], false)}, {prop: "listenTCP", name: "listenTCP", pkg: "net", typ: $funcType([context.Context, ptrType$16], [ptrType$20, $error], false)}, {prop: "listenTCPProto", name: "listenTCPProto", pkg: "net", typ: $funcType([context.Context, ptrType$16, $Int], [ptrType$20, $error], false)}, {prop: "listenMPTCP", name: "listenMPTCP", pkg: "net", typ: $funcType([context.Context, ptrType$16], [ptrType$20, $error], false)}, {prop: "listenIP", name: "listenIP", pkg: "net", typ: $funcType([context.Context, ptrType$34], [ptrType$38, $error], false)}]; policyTable.methods = [{prop: "Classify", name: "Classify", pkg: "", typ: $funcType([netip.Addr], [policyTableEntry], false)}]; UnixAddr.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Net", name: "Net", embedded: false, exported: true, typ: $String, tag: ""}]); UnixConn.init("net", [{prop: "conn", name: "conn", embedded: true, exported: false, typ: conn, tag: ""}]); @@ -245811,7 +247204,9 @@ $packages["net"] = (function() { rawConn.init("net", [{prop: "fd", name: "fd", embedded: false, exported: false, typ: ptrType$4, tag: ""}]); rawListener.init("net", [{prop: "rawConn", name: "rawConn", embedded: true, exported: false, typ: rawConn, tag: ""}]); file.init("net", [{prop: "file", name: "file", embedded: false, exported: false, typ: ptrType$8, tag: ""}, {prop: "data", name: "data", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "atEOF", name: "atEOF", embedded: false, exported: false, typ: $Bool, tag: ""}]); - netFD.init("net", [{prop: "r", name: "r", embedded: false, exported: false, typ: ptrType$24, tag: ""}, {prop: "w", name: "w", embedded: false, exported: false, typ: ptrType$24, tag: ""}, {prop: "incoming", name: "incoming", embedded: false, exported: false, typ: chanType$6, tag: ""}, {prop: "closedMu", name: "closedMu", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "closed", name: "closed", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "listener", name: "listener", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "family", name: "family", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "sotype", name: "sotype", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "net", name: "net", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "laddr", name: "laddr", embedded: false, exported: false, typ: Addr, tag: ""}, {prop: "raddr", name: "raddr", embedded: false, exported: false, typ: Addr, tag: ""}, {prop: "pfd", name: "pfd", embedded: false, exported: false, typ: poll.FD, tag: ""}, {prop: "isConnected", name: "isConnected", embedded: false, exported: false, typ: $Bool, tag: ""}]); + netFD.init("net", [{prop: "fakeNetFD", name: "fakeNetFD", embedded: true, exported: false, typ: ptrType$25, tag: ""}, {prop: "family", name: "family", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "sotype", name: "sotype", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "net", name: "net", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "laddr", name: "laddr", embedded: false, exported: false, typ: Addr, tag: ""}, {prop: "raddr", name: "raddr", embedded: false, exported: false, typ: Addr, tag: ""}, {prop: "pfd", name: "pfd", embedded: false, exported: false, typ: poll.FD, tag: ""}, {prop: "isConnected", name: "isConnected", embedded: false, exported: false, typ: $Bool, tag: ""}]); + fakeNetAddr.init("net", [{prop: "network", name: "network", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "address", name: "address", embedded: false, exported: false, typ: $String, tag: ""}]); + fakeNetFD.init("net", [{prop: "listener", name: "listener", embedded: false, exported: false, typ: fakeNetAddr, tag: ""}, {prop: "r", name: "r", embedded: false, exported: false, typ: ptrType$27, tag: ""}, {prop: "w", name: "w", embedded: false, exported: false, typ: ptrType$27, tag: ""}, {prop: "incoming", name: "incoming", embedded: false, exported: false, typ: chanType$6, tag: ""}, {prop: "closedMu", name: "closedMu", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "closed", name: "closed", embedded: false, exported: false, typ: $Bool, tag: ""}]); bufferedPipe.init("net", [{prop: "softLimit", name: "softLimit", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "mu", name: "mu", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "buf", name: "buf", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "closed", name: "closed", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "rCond", name: "rCond", embedded: false, exported: false, typ: sync.Cond, tag: ""}, {prop: "wCond", name: "wCond", embedded: false, exported: false, typ: sync.Cond, tag: ""}, {prop: "rDeadline", name: "rDeadline", embedded: false, exported: false, typ: time.Time, tag: ""}, {prop: "wDeadline", name: "wDeadline", embedded: false, exported: false, typ: time.Time, tag: ""}]); Addr.init([{prop: "Network", name: "Network", pkg: "", typ: $funcType([], [$String], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]); Conn.init([{prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "LocalAddr", name: "LocalAddr", pkg: "", typ: $funcType([], [Addr], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "RemoteAddr", name: "RemoteAddr", pkg: "", typ: $funcType([], [Addr], false)}, {prop: "SetDeadline", name: "SetDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetReadDeadline", name: "SetReadDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetWriteDeadline", name: "SetWriteDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}]); @@ -245844,9 +247239,9 @@ $packages["net"] = (function() { SRV.init("", [{prop: "Target", name: "Target", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Port", name: "Port", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Priority", name: "Priority", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Weight", name: "Weight", embedded: false, exported: true, typ: $Uint16, tag: ""}]); MX.init("", [{prop: "Host", name: "Host", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Pref", name: "Pref", embedded: false, exported: true, typ: $Uint16, tag: ""}]); NS.init("", [{prop: "Host", name: "Host", embedded: false, exported: true, typ: $String, tag: ""}]); - Dialer.init("", [{prop: "Timeout", name: "Timeout", embedded: false, exported: true, typ: time.Duration, tag: ""}, {prop: "Deadline", name: "Deadline", embedded: false, exported: true, typ: time.Time, tag: ""}, {prop: "LocalAddr", name: "LocalAddr", embedded: false, exported: true, typ: Addr, tag: ""}, {prop: "DualStack", name: "DualStack", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "FallbackDelay", name: "FallbackDelay", embedded: false, exported: true, typ: time.Duration, tag: ""}, {prop: "KeepAlive", name: "KeepAlive", embedded: false, exported: true, typ: time.Duration, tag: ""}, {prop: "Resolver", name: "Resolver", embedded: false, exported: true, typ: ptrType$10, tag: ""}, {prop: "Cancel", name: "Cancel", embedded: false, exported: true, typ: chanType$5, tag: ""}, {prop: "Control", name: "Control", embedded: false, exported: true, typ: funcType$5, tag: ""}, {prop: "ControlContext", name: "ControlContext", embedded: false, exported: true, typ: funcType$6, tag: ""}]); + Dialer.init("net", [{prop: "Timeout", name: "Timeout", embedded: false, exported: true, typ: time.Duration, tag: ""}, {prop: "Deadline", name: "Deadline", embedded: false, exported: true, typ: time.Time, tag: ""}, {prop: "LocalAddr", name: "LocalAddr", embedded: false, exported: true, typ: Addr, tag: ""}, {prop: "DualStack", name: "DualStack", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "FallbackDelay", name: "FallbackDelay", embedded: false, exported: true, typ: time.Duration, tag: ""}, {prop: "KeepAlive", name: "KeepAlive", embedded: false, exported: true, typ: time.Duration, tag: ""}, {prop: "Resolver", name: "Resolver", embedded: false, exported: true, typ: ptrType$10, tag: ""}, {prop: "Cancel", name: "Cancel", embedded: false, exported: true, typ: chanType$5, tag: ""}, {prop: "Control", name: "Control", embedded: false, exported: true, typ: funcType$5, tag: ""}, {prop: "ControlContext", name: "ControlContext", embedded: false, exported: true, typ: funcType$6, tag: ""}, {prop: "mptcpStatus", name: "mptcpStatus", embedded: false, exported: false, typ: mptcpStatus, tag: ""}]); sysDialer.init("net", [{prop: "Dialer", name: "Dialer", embedded: true, exported: true, typ: Dialer, tag: ""}, {prop: "network", name: "network", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "address", name: "address", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "testHookDialTCP", name: "testHookDialTCP", embedded: false, exported: false, typ: funcType$7, tag: ""}]); - ListenConfig.init("", [{prop: "Control", name: "Control", embedded: false, exported: true, typ: funcType$5, tag: ""}, {prop: "KeepAlive", name: "KeepAlive", embedded: false, exported: true, typ: time.Duration, tag: ""}]); + ListenConfig.init("net", [{prop: "Control", name: "Control", embedded: false, exported: true, typ: funcType$5, tag: ""}, {prop: "KeepAlive", name: "KeepAlive", embedded: false, exported: true, typ: time.Duration, tag: ""}, {prop: "mptcpStatus", name: "mptcpStatus", embedded: false, exported: false, typ: mptcpStatus, tag: ""}]); sysListener.init("net", [{prop: "ListenConfig", name: "ListenConfig", embedded: true, exported: true, typ: ListenConfig, tag: ""}, {prop: "network", name: "network", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "address", name: "address", embedded: false, exported: false, typ: $String, tag: ""}]); policyTableEntry.init("", [{prop: "Prefix", name: "Prefix", embedded: false, exported: true, typ: netip.Prefix, tag: ""}, {prop: "Precedence", name: "Precedence", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Label", name: "Label", embedded: false, exported: true, typ: $Uint8, tag: ""}]); policyTable.init(policyTableEntry); @@ -245858,24 +247253,25 @@ $packages["net"] = (function() { $r = context.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = errors.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = bytealg.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = itoa.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = nettrace.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = poll.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = singleflight.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = io.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = netip.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = os.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = runtime.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = sort.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = sync.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = atomic.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = syscall.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = time.$init(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = dnsmessage.$init(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = godebug.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = itoa.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = nettrace.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = poll.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = singleflight.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fs.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = netip.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = os.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sort.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = atomic.$init(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = syscall.$init(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = time.$init(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = dnsmessage.$init(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } onceReadServices = new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0)); listenersMu = new sync.Mutex.ptr(0, 0); portCounterMu = new sync.Mutex.ptr(0, 0); - netGo = false; dnsWaitGroup = new sync.WaitGroup.ptr(0, $chanNil, new $Uint64(0, 0), 0); ipStackCaps = new ipStackCapabilities.ptr(new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0)), false, false, false); testHookDialTCP = $throwNilPointerError; @@ -245923,15 +247319,15 @@ $packages["net"] = (function() { testHookSetKeepAlive = (function func4(param) { var param; }); + multipathtcp = godebug.New("multipathtcp"); rfc6724policyTable = new policyTable([$clone(new policyTableEntry.ptr($clone(netip.PrefixFrom($clone(netip.AddrFrom16($clone($toNativeArray($kindUint8, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]), arrayType)), netip.Addr), 128), netip.Prefix), 50, 0), policyTableEntry), $clone(new policyTableEntry.ptr($clone(netip.PrefixFrom($clone(netip.AddrFrom16($clone($toNativeArray($kindUint8, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 0, 0, 0, 0]), arrayType)), netip.Addr), 96), netip.Prefix), 35, 4), policyTableEntry), $clone(new policyTableEntry.ptr($clone(netip.PrefixFrom($clone(netip.AddrFrom16($clone(arrayType.zero(), arrayType)), netip.Addr), 96), netip.Prefix), 1, 3), policyTableEntry), $clone(new policyTableEntry.ptr($clone(netip.PrefixFrom($clone(netip.AddrFrom16($clone($toNativeArray($kindUint8, [32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), arrayType)), netip.Addr), 32), netip.Prefix), 5, 5), policyTableEntry), $clone(new policyTableEntry.ptr($clone(netip.PrefixFrom($clone(netip.AddrFrom16($clone($toNativeArray($kindUint8, [32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), arrayType)), netip.Addr), 16), netip.Prefix), 30, 2), policyTableEntry), $clone(new policyTableEntry.ptr($clone(netip.PrefixFrom($clone(netip.AddrFrom16($clone($toNativeArray($kindUint8, [63, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), arrayType)), netip.Addr), 16), netip.Prefix), 1, 12), policyTableEntry), $clone(new policyTableEntry.ptr($clone(netip.PrefixFrom($clone(netip.AddrFrom16($clone($toNativeArray($kindUint8, [254, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), arrayType)), netip.Addr), 10), netip.Prefix), 1, 11), policyTableEntry), $clone(new policyTableEntry.ptr($clone(netip.PrefixFrom($clone(netip.AddrFrom16($clone($toNativeArray($kindUint8, [252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), arrayType)), netip.Addr), 7), netip.Prefix), 3, 13), policyTableEntry), $clone(new policyTableEntry.ptr($clone(netip.PrefixFrom($clone(netip.AddrFrom16($clone(arrayType.zero(), arrayType)), netip.Addr), 0), netip.Prefix), 40, 1), policyTableEntry)]); - init(); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $packages["crypto/x509"] = (function() { - var $pkg = {}, $init, bytes, crypto, aes, cipher, des, dsa, ecdh, ecdsa, ed25519, elliptic, md5, rsa, sha1, sha256, sha512, pkix, asn1, hex, pem, errors, fmt, godebug, io, fs, big, net, url, os, filepath, reflect, runtime, strconv, strings, sync, time, unicode, utf16, utf8, cryptobyte, asn1$1, publicKeyInfo, authKeyId, SignatureAlgorithm, PublicKeyAlgorithm, pssParameters, KeyUsage, ExtKeyUsage, Certificate, InsecureAlgorithmError, ConstraintViolationError, UnhandledCriticalExtension, InvalidReason, CertificateInvalidError, HostnameError, UnknownAuthorityError, SystemRootsError, VerifyOptions, rfc2821Mailbox, ecPrivateKey, pkcs8, pkcs1PrivateKey, pkcs1AdditionalRSAPrime, pkcs1PublicKey, sum224, CertPool, lazyCert, pubKeyEqual, ptrType, structType, sliceType, sliceType$1, structType$1, sliceType$2, sliceType$3, sliceType$4, ptrType$1, ptrType$2, ptrType$3, sliceType$6, ptrType$5, sliceType$8, ptrType$7, sliceType$11, ptrType$8, ptrType$9, sliceType$13, ptrType$10, sliceType$15, sliceType$18, ptrType$14, sliceType$19, ptrType$15, sliceType$20, ptrType$17, ptrType$18, sliceType$21, sliceType$22, ptrType$19, ptrType$20, ptrType$21, sliceType$23, sliceType$24, ptrType$22, ptrType$23, sliceType$25, sliceType$26, ptrType$25, sliceType$27, ptrType$27, ptrType$28, sliceType$28, sliceType$29, structType$3, sliceType$30, funcType, ptrType$29, funcType$2, mapType, mapType$1, once, systemRootsMu, systemRoots, systemRootsErr, publicKeyAlgoName, oidSignatureMD2WithRSA, oidSignatureMD5WithRSA, oidSignatureSHA1WithRSA, oidSignatureSHA256WithRSA, oidSignatureSHA384WithRSA, oidSignatureSHA512WithRSA, oidSignatureRSAPSS, oidSignatureDSAWithSHA1, oidSignatureDSAWithSHA256, oidSignatureECDSAWithSHA1, oidSignatureECDSAWithSHA256, oidSignatureECDSAWithSHA384, oidSignatureECDSAWithSHA512, oidSignatureEd25519, oidSHA256, oidSHA384, oidSHA512, oidMGF1, oidISOSignatureSHA1WithRSA, signatureAlgorithmDetails, hashToPSSParameters, oidPublicKeyRSA, oidPublicKeyDSA, oidPublicKeyECDSA, oidPublicKeyX25519, oidPublicKeyEd25519, oidNamedCurveP224, oidNamedCurveP256, oidNamedCurveP384, oidNamedCurveP521, oidExtKeyUsageAny, oidExtKeyUsageServerAuth, oidExtKeyUsageClientAuth, oidExtKeyUsageCodeSigning, oidExtKeyUsageEmailProtection, oidExtKeyUsageIPSECEndSystem, oidExtKeyUsageIPSECTunnel, oidExtKeyUsageIPSECUser, oidExtKeyUsageTimeStamping, oidExtKeyUsageOCSPSigning, oidExtKeyUsageMicrosoftServerGatedCrypto, oidExtKeyUsageNetscapeServerGatedCrypto, oidExtKeyUsageMicrosoftCommercialCodeSigning, oidExtKeyUsageMicrosoftKernelCodeSigning, extKeyUsageOIDs, x509sha1, oidExtensionAuthorityKeyId, oidExtensionSubjectAltName, oidExtensionNameConstraints, oidExtensionAuthorityInfoAccess, oidAuthorityInfoAccessOcsp, oidAuthorityInfoAccessIssuers, errNotParsed, certFiles, certDirectories, forceFallback, getSignatureAlgorithmFromAI, getPublicKeyAlgorithmFromOID, namedCurveFromOID, extKeyUsageFromOID, signaturePublicKeyAlgoMismatchError, checkSignature, oidInExtensions, isIA5String, signingParamsForPublicKey, parseRFC2821Mailbox, domainToReverseLabels, matchEmailConstraint, matchURIConstraint, matchIPConstraint, matchDomainConstraint, appendToFreshChain, alreadyInChain, validHostnamePattern, validHostnameInput, validHostname, matchExactly, matchHostnames, toLowerCaseASCII, checkChainForKeyUsage, ParseECPrivateKey, parseECPrivateKey, loadSystemRoots, readUniqueDirectoryEntries, isSameDirSymlink, systemRootsPool, initSystemRoots, ParsePKCS8PrivateKey, ParsePKCS1PrivateKey, isPrintable, parseASN1String, parseName, parseAI, parseTime, parseValidity, parseExtension, parsePublicKey, parseKeyUsageExtension, parseBasicConstraintsExtension, forEachSAN, parseSANExtension, parseExtKeyUsageExtension, parseCertificatePoliciesExtension, isValidIPMask, parseNameConstraintsExtension, processExtensions, parseCertificate, ParseCertificate, boringAllowCert, NewCertPool; + var $pkg = {}, $init, bytes, crypto, aes, cipher, des, dsa, ecdh, ecdsa, ed25519, elliptic, md5, rsa, sha1, sha256, sha512, pkix, asn1, hex, pem, errors, fmt, godebug, io, fs, big, net, url, os, filepath, reflect, runtime, strconv, strings, sync, time, unicode, utf16, utf8, cryptobyte, asn1$1, publicKeyInfo, authKeyId, SignatureAlgorithm, PublicKeyAlgorithm, pssParameters, KeyUsage, ExtKeyUsage, Certificate, InsecureAlgorithmError, ConstraintViolationError, UnhandledCriticalExtension, InvalidReason, CertificateInvalidError, HostnameError, UnknownAuthorityError, SystemRootsError, VerifyOptions, rfc2821Mailbox, ecPrivateKey, pkcs8, pkcs1PrivateKey, pkcs1AdditionalRSAPrime, pkcs1PublicKey, sum224, CertPool, lazyCert, pubKeyEqual, ptrType, structType, sliceType, sliceType$1, structType$1, sliceType$2, sliceType$3, sliceType$4, ptrType$1, ptrType$2, ptrType$3, sliceType$6, ptrType$5, sliceType$8, ptrType$7, sliceType$11, ptrType$8, ptrType$9, sliceType$13, ptrType$10, sliceType$15, sliceType$18, ptrType$14, sliceType$19, ptrType$15, sliceType$20, ptrType$17, ptrType$18, sliceType$21, sliceType$22, ptrType$19, ptrType$20, ptrType$21, sliceType$23, sliceType$24, ptrType$22, ptrType$23, sliceType$25, sliceType$26, ptrType$25, sliceType$27, ptrType$27, ptrType$28, ptrType$29, sliceType$28, sliceType$30, structType$3, sliceType$31, funcType, ptrType$30, funcType$2, mapType, mapType$1, once, systemRootsMu, systemRoots, systemRootsErr, publicKeyAlgoName, oidSignatureMD2WithRSA, oidSignatureMD5WithRSA, oidSignatureSHA1WithRSA, oidSignatureSHA256WithRSA, oidSignatureSHA384WithRSA, oidSignatureSHA512WithRSA, oidSignatureRSAPSS, oidSignatureDSAWithSHA1, oidSignatureDSAWithSHA256, oidSignatureECDSAWithSHA1, oidSignatureECDSAWithSHA256, oidSignatureECDSAWithSHA384, oidSignatureECDSAWithSHA512, oidSignatureEd25519, oidSHA256, oidSHA384, oidSHA512, oidMGF1, oidISOSignatureSHA1WithRSA, signatureAlgorithmDetails, hashToPSSParameters, oidPublicKeyRSA, oidPublicKeyDSA, oidPublicKeyECDSA, oidPublicKeyX25519, oidPublicKeyEd25519, oidNamedCurveP224, oidNamedCurveP256, oidNamedCurveP384, oidNamedCurveP521, oidExtKeyUsageAny, oidExtKeyUsageServerAuth, oidExtKeyUsageClientAuth, oidExtKeyUsageCodeSigning, oidExtKeyUsageEmailProtection, oidExtKeyUsageIPSECEndSystem, oidExtKeyUsageIPSECTunnel, oidExtKeyUsageIPSECUser, oidExtKeyUsageTimeStamping, oidExtKeyUsageOCSPSigning, oidExtKeyUsageMicrosoftServerGatedCrypto, oidExtKeyUsageNetscapeServerGatedCrypto, oidExtKeyUsageMicrosoftCommercialCodeSigning, oidExtKeyUsageMicrosoftKernelCodeSigning, extKeyUsageOIDs, x509sha1, oidExtensionAuthorityKeyId, oidExtensionSubjectAltName, oidExtensionNameConstraints, oidExtensionAuthorityInfoAccess, oidAuthorityInfoAccessOcsp, oidAuthorityInfoAccessIssuers, errNotParsed, certFiles, certDirectories, x509usefallbackroots, getSignatureAlgorithmFromAI, getPublicKeyAlgorithmFromOID, namedCurveFromOID, extKeyUsageFromOID, signaturePublicKeyAlgoMismatchError, checkSignature, oidInExtensions, isIA5String, signingParamsForPublicKey, parseRFC2821Mailbox, domainToReverseLabels, matchEmailConstraint, matchURIConstraint, matchIPConstraint, matchDomainConstraint, appendToFreshChain, alreadyInChain, validHostnamePattern, validHostnameInput, validHostname, matchExactly, matchHostnames, toLowerCaseASCII, checkChainForKeyUsage, ParseECPrivateKey, parseECPrivateKey, loadSystemRoots, readUniqueDirectoryEntries, isSameDirSymlink, systemRootsPool, initSystemRoots, ParsePKCS8PrivateKey, ParsePKCS1PrivateKey, isPrintable, parseASN1String, parseName, parseAI, parseTime, parseValidity, parseExtension, parsePublicKey, parseKeyUsageExtension, parseBasicConstraintsExtension, forEachSAN, parseSANExtension, parseExtKeyUsageExtension, parseCertificatePoliciesExtension, isValidIPMask, parseNameConstraintsExtension, processExtensions, parseCertificate, ParseCertificate, boringAllowCert, NewCertPool; bytes = $packages["bytes"]; crypto = $packages["crypto"]; aes = $packages["crypto/aes"]; @@ -246257,7 +247653,7 @@ $packages["crypto/x509"] = (function() { this.$val = this; if (arguments.length === 0) { this.byName = false; - this.lazyCerts = sliceType$29.nil; + this.lazyCerts = sliceType$30.nil; this.haveSum = false; this.systemPool = false; return; @@ -246349,12 +247745,13 @@ $packages["crypto/x509"] = (function() { sliceType$27 = $sliceType($Uint16); ptrType$27 = $ptrType(cryptobyte.String); ptrType$28 = $ptrType(asn1$1.Tag); + ptrType$29 = $ptrType(pkcs1PublicKey); sliceType$28 = $sliceType(ptrType$18); - sliceType$29 = $sliceType(lazyCert); + sliceType$30 = $sliceType(lazyCert); structType$3 = $structType("crypto/x509", [{prop: "Once", name: "Once", embedded: true, exported: true, typ: sync.Once, tag: ""}, {prop: "v", name: "v", embedded: false, exported: false, typ: ptrType$5, tag: ""}]); - sliceType$30 = $sliceType(sliceType$1); + sliceType$31 = $sliceType(sliceType$1); funcType = $funcType([$emptyInterface, $emptyInterface], [$Bool, $error], false); - ptrType$29 = $ptrType(VerifyOptions); + ptrType$30 = $ptrType(VerifyOptions); funcType$2 = $funcType([], [ptrType$5, $error], false); mapType = $mapType($String, sliceType$3); mapType$1 = $mapType(sum224, $Bool); @@ -246593,7 +247990,7 @@ $packages["crypto/x509"] = (function() { /* */ } return; } var $f = {$blk: signaturePublicKeyAlgoMismatchError$1, $c: true, $r, $24r, _r, expectedPubKeyAlgo, pubKey, $s};return $f; }; checkSignature = function checkSignature$1(algo, signed, signature, publicKey, allowSHA1) { - var {$24r, $24r$1, $24r$2, $24r$3, _1, _i, _r, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _v, algo, allowSHA1, details, err, h, hashType, pub, pub$1, pub$2, pubKeyAlgo, publicKey, signature, signed, $s, $r, $c} = $restore(this, {algo, signed, signature, publicKey, allowSHA1}); + var {$24r, $24r$1, $24r$2, $24r$3, _1, _i, _r, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, algo, allowSHA1, details, err, h, hashType, pub, pub$1, pub$2, pubKeyAlgo, publicKey, signature, signed, $s, $r, $c} = $restore(this, {algo, signed, signature, publicKey, allowSHA1}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: err = $ifaceNil; hashType = 0; @@ -246624,24 +248021,27 @@ $packages["crypto/x509"] = (function() { err = new InsecureAlgorithmError(((algo >> 0))); $s = -1; return err; /* } else if (_1 === (3)) { */ case 4: - if (!(!allowSHA1)) { _v = false; $s = 9; continue s; } - _r = x509sha1.Value(); /* */ $s = 10; case 10: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _v = !(_r === "1"); case 9: - /* */ if (_v) { $s = 7; continue; } + /* */ if (!allowSHA1) { $s = 7; continue; } /* */ $s = 8; continue; - /* if (_v) { */ case 7: - err = new InsecureAlgorithmError(((algo >> 0))); - $s = -1; return err; + /* if (!allowSHA1) { */ case 7: + _r = x509sha1.Value(); /* */ $s = 11; case 11: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!(_r === "1")) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!(_r === "1")) { */ case 9: + err = new InsecureAlgorithmError(((algo >> 0))); + $s = -1; return err; + /* } */ case 10: + $r = x509sha1.IncNonDefault(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 8: if (!new crypto.Hash(hashType).Available()) { err = $pkg.ErrUnsupportedAlgorithm; $s = -1; return err; } - _r$1 = new crypto.Hash(hashType).New(); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1 = new crypto.Hash(hashType).New(); /* */ $s = 13; case 13: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } h = _r$1; - _r$2 = h.Write(signed); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2 = h.Write(signed); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _r$2; - _r$3 = h.Sum(sliceType$1.nil); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3 = h.Sum(sliceType$1.nil); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } signed = _r$3; $s = 6; continue; /* } else { */ case 5: @@ -246649,81 +248049,81 @@ $packages["crypto/x509"] = (function() { err = $pkg.ErrUnsupportedAlgorithm; $s = -1; return err; } - _r$4 = new crypto.Hash(hashType).New(); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4 = new crypto.Hash(hashType).New(); /* */ $s = 16; case 16: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } h = _r$4; - _r$5 = h.Write(signed); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$5 = h.Write(signed); /* */ $s = 17; case 17: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _r$5; - _r$6 = h.Sum(sliceType$1.nil); /* */ $s = 16; case 16: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$6 = h.Sum(sliceType$1.nil); /* */ $s = 18; case 18: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } signed = _r$6; /* } */ case 6: case 1: _ref$1 = publicKey; - /* */ if ($assertType(_ref$1, ptrType$2, true)[1]) { $s = 17; continue; } - /* */ if ($assertType(_ref$1, ptrType$3, true)[1]) { $s = 18; continue; } - /* */ if ($assertType(_ref$1, ed25519.PublicKey, true)[1]) { $s = 19; continue; } - /* */ $s = 20; continue; - /* if ($assertType(_ref$1, ptrType$2, true)[1]) { */ case 17: + /* */ if ($assertType(_ref$1, ptrType$2, true)[1]) { $s = 19; continue; } + /* */ if ($assertType(_ref$1, ptrType$3, true)[1]) { $s = 20; continue; } + /* */ if ($assertType(_ref$1, ed25519.PublicKey, true)[1]) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if ($assertType(_ref$1, ptrType$2, true)[1]) { */ case 19: pub = _ref$1.$val; - /* */ if (!((pubKeyAlgo === 1))) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if (!((pubKeyAlgo === 1))) { */ case 21: - _r$7 = signaturePublicKeyAlgoMismatchError(pubKeyAlgo, pub); /* */ $s = 23; case 23: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + /* */ if (!((pubKeyAlgo === 1))) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (!((pubKeyAlgo === 1))) { */ case 23: + _r$7 = signaturePublicKeyAlgoMismatchError(pubKeyAlgo, pub); /* */ $s = 25; case 25: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } err = _r$7; $24r = err; - $s = 24; case 24: return $24r; - /* } */ case 22: - /* */ if (new SignatureAlgorithm(algo).isRSAPSS()) { $s = 25; continue; } - /* */ $s = 26; continue; - /* if (new SignatureAlgorithm(algo).isRSAPSS()) { */ case 25: - _r$8 = rsa.VerifyPSS(pub, hashType, signed, signature, new rsa.PSSOptions.ptr(-1, 0)); /* */ $s = 28; case 28: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + $s = 26; case 26: return $24r; + /* } */ case 24: + /* */ if (new SignatureAlgorithm(algo).isRSAPSS()) { $s = 27; continue; } + /* */ $s = 28; continue; + /* if (new SignatureAlgorithm(algo).isRSAPSS()) { */ case 27: + _r$8 = rsa.VerifyPSS(pub, hashType, signed, signature, new rsa.PSSOptions.ptr(-1, 0)); /* */ $s = 30; case 30: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } err = _r$8; $24r$1 = err; - $s = 29; case 29: return $24r$1; - /* } else { */ case 26: + $s = 31; case 31: return $24r$1; + /* } else { */ case 28: err = rsa.VerifyPKCS1v15(pub, hashType, signed, signature); $s = -1; return err; - /* } */ case 27: - $s = 20; continue; - /* } else if ($assertType(_ref$1, ptrType$3, true)[1]) { */ case 18: + /* } */ case 29: + $s = 22; continue; + /* } else if ($assertType(_ref$1, ptrType$3, true)[1]) { */ case 20: pub$1 = _ref$1.$val; - /* */ if (!((pubKeyAlgo === 3))) { $s = 30; continue; } - /* */ $s = 31; continue; - /* if (!((pubKeyAlgo === 3))) { */ case 30: - _r$9 = signaturePublicKeyAlgoMismatchError(pubKeyAlgo, pub$1); /* */ $s = 32; case 32: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + /* */ if (!((pubKeyAlgo === 3))) { $s = 32; continue; } + /* */ $s = 33; continue; + /* if (!((pubKeyAlgo === 3))) { */ case 32: + _r$9 = signaturePublicKeyAlgoMismatchError(pubKeyAlgo, pub$1); /* */ $s = 34; case 34: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } err = _r$9; $24r$2 = err; - $s = 33; case 33: return $24r$2; - /* } */ case 31: - _r$10 = ecdsa.VerifyASN1(pub$1, signed, signature); /* */ $s = 36; case 36: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - /* */ if (!_r$10) { $s = 34; continue; } - /* */ $s = 35; continue; - /* if (!_r$10) { */ case 34: + $s = 35; case 35: return $24r$2; + /* } */ case 33: + _r$10 = ecdsa.VerifyASN1(pub$1, signed, signature); /* */ $s = 38; case 38: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + /* */ if (!_r$10) { $s = 36; continue; } + /* */ $s = 37; continue; + /* if (!_r$10) { */ case 36: err = errors.New("x509: ECDSA verification failure"); $s = -1; return err; - /* } */ case 35: + /* } */ case 37: $s = -1; return err; - /* } else if ($assertType(_ref$1, ed25519.PublicKey, true)[1]) { */ case 19: + /* } else if ($assertType(_ref$1, ed25519.PublicKey, true)[1]) { */ case 21: pub$2 = _ref$1.$val; - /* */ if (!((pubKeyAlgo === 4))) { $s = 37; continue; } - /* */ $s = 38; continue; - /* if (!((pubKeyAlgo === 4))) { */ case 37: - _r$11 = signaturePublicKeyAlgoMismatchError(pubKeyAlgo, pub$2); /* */ $s = 39; case 39: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + /* */ if (!((pubKeyAlgo === 4))) { $s = 39; continue; } + /* */ $s = 40; continue; + /* if (!((pubKeyAlgo === 4))) { */ case 39: + _r$11 = signaturePublicKeyAlgoMismatchError(pubKeyAlgo, pub$2); /* */ $s = 41; case 41: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } err = _r$11; $24r$3 = err; - $s = 40; case 40: return $24r$3; - /* } */ case 38: - _r$12 = ed25519.Verify(pub$2, signed, signature); /* */ $s = 43; case 43: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - /* */ if (!_r$12) { $s = 41; continue; } - /* */ $s = 42; continue; - /* if (!_r$12) { */ case 41: + $s = 42; case 42: return $24r$3; + /* } */ case 40: + _r$12 = ed25519.Verify(pub$2, signed, signature); /* */ $s = 45; case 45: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + /* */ if (!_r$12) { $s = 43; continue; } + /* */ $s = 44; continue; + /* if (!_r$12) { */ case 43: err = errors.New("x509: Ed25519 verification failure"); $s = -1; return err; - /* } */ case 42: + /* } */ case 44: $s = -1; return err; - /* } */ case 20: + /* } */ case 22: err = $pkg.ErrUnsupportedAlgorithm; $s = -1; return err; - /* */ } return; } var $f = {$blk: checkSignature$1, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, _1, _i, _r, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _v, algo, allowSHA1, details, err, h, hashType, pub, pub$1, pub$2, pubKeyAlgo, publicKey, signature, signed, $s};return $f; + /* */ } return; } var $f = {$blk: checkSignature$1, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, _1, _i, _r, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, algo, allowSHA1, details, err, h, hashType, pub, pub$1, pub$2, pubKeyAlgo, publicKey, signature, signed, $s};return $f; }; $ptrType(Certificate).prototype.CheckCRLSignature = function CheckCRLSignature(crl) { var {$24r, _r, _r$1, algo, c, crl, $s, $r, $c} = $restore(this, {crl}); @@ -246996,17 +248396,19 @@ $packages["crypto/x509"] = (function() { }; CertificateInvalidError.prototype.Error = function(...$args) { return this.$val.Error(...$args); }; $ptrType(HostnameError).prototype.Error = function Error$4() { - var _i, _ref, c, h, ip, san, valid; + var {_i, _r, _ref, c, h, ip, san, valid, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: h = this; c = h.Certificate; if (!c.hasSANExtension() && matchHostnames(c.Subject.CommonName, h.Host)) { - return "x509: certificate relies on legacy Common Name field, use SANs instead"; + $s = -1; return "x509: certificate relies on legacy Common Name field, use SANs instead"; } valid = ""; - ip = net.ParseIP(h.Host); + _r = net.ParseIP(h.Host); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + ip = _r; if (!(ip === net.IP.nil)) { if (c.IPAddresses.$length === 0) { - return "x509: cannot validate certificate for " + h.Host + " because it doesn't contain any IP SANs"; + $s = -1; return "x509: cannot validate certificate for " + h.Host + " because it doesn't contain any IP SANs"; } _ref = c.IPAddresses; _i = 0; @@ -247023,9 +248425,10 @@ $packages["crypto/x509"] = (function() { valid = strings.Join(c.DNSNames, ", "); } if (valid.length === 0) { - return "x509: certificate is not valid for any names, but wanted to match " + h.Host; + $s = -1; return "x509: certificate is not valid for any names, but wanted to match " + h.Host; } - return "x509: certificate is valid for " + valid + ", not " + h.Host; + $s = -1; return "x509: certificate is valid for " + valid + ", not " + h.Host; + /* */ } return; } var $f = {$blk: Error$4, $c: true, $r, _i, _r, _ref, c, h, ip, san, valid, $s};return $f; }; HostnameError.prototype.Error = function(...$args) { return this.$val.Error(...$args); }; $ptrType(UnknownAuthorityError).prototype.Error = function Error$5() { @@ -247279,7 +248682,7 @@ $packages["crypto/x509"] = (function() { /* */ } return; } var $f = {$blk: matchEmailConstraint$1, $c: true, $r, $24r, $24r$1, _r, _r$1, _tuple, constraint, constraintMailbox, mailbox, ok, $s};return $f; }; matchURIConstraint = function matchURIConstraint$1(uri, constraint) { - var {$24r, $24r$1, $24r$2, _r, _r$1, _r$2, _r$3, _tuple, constraint, err, host, uri, $s, $r, $c} = $restore(this, {uri, constraint}); + var {$24r, $24r$1, $24r$2, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _v, constraint, err, host, uri, $s, $r, $c} = $restore(this, {uri, constraint}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: host = uri.Host; /* */ if (host.length === 0) { $s = 1; continue; } @@ -247301,17 +248704,20 @@ $packages["crypto/x509"] = (function() { $s = -1; return [false, err]; } /* } */ case 6: - /* */ if (strings.HasPrefix(host, "[") && strings.HasSuffix(host, "]") || !(net.ParseIP(host) === net.IP.nil)) { $s = 8; continue; } + if (strings.HasPrefix(host, "[") && strings.HasSuffix(host, "]")) { _v = true; $s = 10; continue s; } + _r$2 = net.ParseIP(host); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v = !(_r$2 === net.IP.nil); case 10: + /* */ if (_v) { $s = 8; continue; } /* */ $s = 9; continue; - /* if (strings.HasPrefix(host, "[") && strings.HasSuffix(host, "]") || !(net.ParseIP(host) === net.IP.nil)) { */ case 8: - _r$2 = fmt.Errorf("URI with IP (%q) cannot be matched against constraints", new sliceType$6([new $String(uri.String())])); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r$1 = [false, _r$2]; - $s = 11; case 11: return $24r$1; + /* if (_v) { */ case 8: + _r$3 = fmt.Errorf("URI with IP (%q) cannot be matched against constraints", new sliceType$6([new $String(uri.String())])); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r$1 = [false, _r$3]; + $s = 13; case 13: return $24r$1; /* } */ case 9: - _r$3 = matchDomainConstraint(host, constraint); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r$2 = _r$3; - $s = 13; case 13: return $24r$2; - /* */ } return; } var $f = {$blk: matchURIConstraint$1, $c: true, $r, $24r, $24r$1, $24r$2, _r, _r$1, _r$2, _r$3, _tuple, constraint, err, host, uri, $s};return $f; + _r$4 = matchDomainConstraint(host, constraint); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r$2 = _r$4; + $s = 15; case 15: return $24r$2; + /* */ } return; } var $f = {$blk: matchURIConstraint$1, $c: true, $r, $24r, $24r$1, $24r$2, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _v, constraint, err, host, uri, $s};return $f; }; matchIPConstraint = function matchIPConstraint$1(ip, constraint) { var _i, _ref, constraint, i, ip, mask, x, x$1; @@ -247380,89 +248786,81 @@ $packages["crypto/x509"] = (function() { /* */ } return; } var $f = {$blk: matchDomainConstraint$1, $c: true, $r, $24r, $24r$1, _i, _r, _r$1, _ref, _tuple, _tuple$1, constraint, constraintLabel, constraintLabels, domain, domainLabels, i, mustHaveSubdomains, ok, $s};return $f; }; $ptrType(Certificate).prototype.checkNameConstraints = function checkNameConstraints(count, maxConstraintComparisons, nameType, name, parsedName, match, permitted, excluded) { - var {$24r, $24r$1, $24r$2, $24r$3, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, c, constraint, constraint$1, count, err, err$1, excluded, excludedValue, i, i$1, match, match$1, maxConstraintComparisons, name, nameType, ok, parsedName, permitted, permittedValue, x, x$1, x$2, x$3, x$4, x$5, $s, $r, $c} = $restore(this, {count, maxConstraintComparisons, nameType, name, parsedName, match, permitted, excluded}); + var {$24r, $24r$1, $24r$2, $24r$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, _tuple$1, c, constraint, constraint$1, count, err, err$1, excluded, excludedValue, i, i$1, match, match$1, maxConstraintComparisons, name, nameType, ok, parsedName, permitted, permittedValue, x, x$1, x$2, x$3, x$4, x$5, $s, $r, $c} = $restore(this, {count, maxConstraintComparisons, nameType, name, parsedName, match, permitted, excluded}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: c = this; - _r = reflect.ValueOf(excluded); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - excludedValue = _r; - _r$1 = $clone(excludedValue, reflect.Value).Len(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - count.$set(count.$get() + (_r$1) >> 0); + excludedValue = reflect.ValueOf(excluded); + count.$set(count.$get() + ($clone(excludedValue, reflect.Value).Len()) >> 0); if (count.$get() > maxConstraintComparisons) { $s = -1; return (x = new CertificateInvalidError.ptr(c, 8, ""), new x.constructor.elem(x)); } i = 0; - /* while (true) { */ case 3: - _r$2 = $clone(excludedValue, reflect.Value).Len(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* if (!(i < _r$2)) { break; } */ if(!(i < _r$2)) { $s = 4; continue; } - _r$3 = $clone(excludedValue, reflect.Value).Index(i); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$4 = $clone(_r$3, reflect.Value).Interface(); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - constraint = _r$4; - _r$5 = match(parsedName, constraint); /* */ $s = 8; case 8: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _tuple = _r$5; + /* while (true) { */ case 1: + /* if (!(i < $clone(excludedValue, reflect.Value).Len())) { break; } */ if(!(i < $clone(excludedValue, reflect.Value).Len())) { $s = 2; continue; } + _r = $clone($clone(excludedValue, reflect.Value).Index(i), reflect.Value).Interface(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + constraint = _r; + _r$1 = match(parsedName, constraint); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; match$1 = _tuple[0]; err = _tuple[1]; - /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 9; continue; } + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 5: + _r$2 = err.Error(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = (x$1 = new CertificateInvalidError.ptr(c, 2, _r$2), new x$1.constructor.elem(x$1)); + $s = 8; case 8: return $24r; + /* } */ case 6: + /* */ if (match$1) { $s = 9; continue; } /* */ $s = 10; continue; - /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 9: - _r$6 = err.Error(); /* */ $s = 11; case 11: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - $24r = (x$1 = new CertificateInvalidError.ptr(c, 2, _r$6), new x$1.constructor.elem(x$1)); - $s = 12; case 12: return $24r; + /* if (match$1) { */ case 9: + _r$3 = fmt.Sprintf("%s %q is excluded by constraint %q", new sliceType$6([new $String(nameType), new $String(name), constraint])); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r$1 = (x$2 = new CertificateInvalidError.ptr(c, 2, _r$3), new x$2.constructor.elem(x$2)); + $s = 12; case 12: return $24r$1; /* } */ case 10: - /* */ if (match$1) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (match$1) { */ case 13: - _r$7 = fmt.Sprintf("%s %q is excluded by constraint %q", new sliceType$6([new $String(nameType), new $String(name), constraint])); /* */ $s = 15; case 15: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - $24r$1 = (x$2 = new CertificateInvalidError.ptr(c, 2, _r$7), new x$2.constructor.elem(x$2)); - $s = 16; case 16: return $24r$1; - /* } */ case 14: i = i + (1) >> 0; - $s = 3; continue; - case 4: - _r$8 = reflect.ValueOf(permitted); /* */ $s = 17; case 17: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - permittedValue = _r$8; - _r$9 = $clone(permittedValue, reflect.Value).Len(); /* */ $s = 18; case 18: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - count.$set(count.$get() + (_r$9) >> 0); + $s = 1; continue; + case 2: + permittedValue = reflect.ValueOf(permitted); + count.$set(count.$get() + ($clone(permittedValue, reflect.Value).Len()) >> 0); if (count.$get() > maxConstraintComparisons) { $s = -1; return (x$3 = new CertificateInvalidError.ptr(c, 8, ""), new x$3.constructor.elem(x$3)); } ok = true; i$1 = 0; - /* while (true) { */ case 19: - _r$10 = $clone(permittedValue, reflect.Value).Len(); /* */ $s = 21; case 21: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - /* if (!(i$1 < _r$10)) { break; } */ if(!(i$1 < _r$10)) { $s = 20; continue; } - _r$11 = $clone(permittedValue, reflect.Value).Index(i$1); /* */ $s = 22; case 22: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _r$12 = $clone(_r$11, reflect.Value).Interface(); /* */ $s = 23; case 23: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - constraint$1 = _r$12; + /* while (true) { */ case 13: + /* if (!(i$1 < $clone(permittedValue, reflect.Value).Len())) { break; } */ if(!(i$1 < $clone(permittedValue, reflect.Value).Len())) { $s = 14; continue; } + _r$4 = $clone($clone(permittedValue, reflect.Value).Index(i$1), reflect.Value).Interface(); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + constraint$1 = _r$4; err$1 = $ifaceNil; - _r$13 = match(parsedName, constraint$1); /* */ $s = 24; case 24: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - _tuple$1 = _r$13; + _r$5 = match(parsedName, constraint$1); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$1 = _r$5; ok = _tuple$1[0]; err$1 = _tuple$1[1]; - /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 25; continue; } - /* */ $s = 26; continue; - /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 25: - _r$14 = err$1.Error(); /* */ $s = 27; case 27: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - $24r$2 = (x$4 = new CertificateInvalidError.ptr(c, 2, _r$14), new x$4.constructor.elem(x$4)); - $s = 28; case 28: return $24r$2; - /* } */ case 26: + /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 17: + _r$6 = err$1.Error(); /* */ $s = 19; case 19: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $24r$2 = (x$4 = new CertificateInvalidError.ptr(c, 2, _r$6), new x$4.constructor.elem(x$4)); + $s = 20; case 20: return $24r$2; + /* } */ case 18: if (ok) { - /* break; */ $s = 20; continue; + /* break; */ $s = 14; continue; } i$1 = i$1 + (1) >> 0; - $s = 19; continue; - case 20: - /* */ if (!ok) { $s = 29; continue; } - /* */ $s = 30; continue; - /* if (!ok) { */ case 29: - _r$15 = fmt.Sprintf("%s %q is not permitted by any constraint", new sliceType$6([new $String(nameType), new $String(name)])); /* */ $s = 31; case 31: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - $24r$3 = (x$5 = new CertificateInvalidError.ptr(c, 2, _r$15), new x$5.constructor.elem(x$5)); - $s = 32; case 32: return $24r$3; - /* } */ case 30: + $s = 13; continue; + case 14: + /* */ if (!ok) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (!ok) { */ case 21: + _r$7 = fmt.Sprintf("%s %q is not permitted by any constraint", new sliceType$6([new $String(nameType), new $String(name)])); /* */ $s = 23; case 23: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $24r$3 = (x$5 = new CertificateInvalidError.ptr(c, 2, _r$7), new x$5.constructor.elem(x$5)); + $s = 24; case 24: return $24r$3; + /* } */ case 22: $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: checkNameConstraints, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, c, constraint, constraint$1, count, err, err$1, excluded, excludedValue, i, i$1, match, match$1, maxConstraintComparisons, name, nameType, ok, parsedName, permitted, permittedValue, x, x$1, x$2, x$3, x$4, x$5, $s};return $f; + /* */ } return; } var $f = {$blk: checkNameConstraints, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, _tuple$1, c, constraint, constraint$1, count, err, err$1, excluded, excludedValue, i, i$1, match, match$1, maxConstraintComparisons, name, nameType, ok, parsedName, permitted, permittedValue, x, x$1, x$2, x$3, x$4, x$5, $s};return $f; }; $ptrType(Certificate).prototype.isValid = function isValid(certType, currentChain, opts) { - var {$24r, $24r$1, _arg, _arg$1, _arg$2, _arg$3, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, c, certType, child, comparisonCount, currentChain, err, leaf, maxConstraintComparisons, now, numIntermediates, opts, sanCert, toCheck, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r, $c} = $restore(this, {certType, currentChain, opts}); + var {$24r, $24r$1, _arg, _arg$1, _arg$2, _arg$3, _i, _i$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _ref$1, c, c$1, certType, child, comparisonCount, currentChain, err, maxConstraintComparisons, now, numIntermediates, opts, sanCert, toCheck, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r, $c} = $restore(this, {certType, currentChain, opts}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: c = [c]; comparisonCount = [comparisonCount]; @@ -247509,28 +248907,30 @@ $packages["crypto/x509"] = (function() { maxConstraintComparisons[0] = 250000; } comparisonCount[0] = 0; - leaf = ptrType$5.nil; if ((certType === 1) || (certType === 2)) { if (currentChain.$length === 0) { $s = -1; return errors.New("x509: internal error: empty chain when appending CA cert"); } - leaf = (0 >= currentChain.$length ? ($throwRuntimeError("index out of range"), undefined) : currentChain.$array[currentChain.$offset + 0]); } /* */ if (((certType === 1) || (certType === 2)) && c[0].hasNameConstraints()) { $s = 15; continue; } /* */ $s = 16; continue; /* if (((certType === 1) || (certType === 2)) && c[0].hasNameConstraints()) { */ case 15: toCheck = new sliceType$20([]); - if (leaf.hasSANExtension()) { - toCheck = $append(toCheck, leaf); - } - if (c[0].hasSANExtension()) { - toCheck = $append(toCheck, c[0]); - } - _ref = toCheck; + _ref = currentChain; _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + c$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (c$1.hasSANExtension()) { + toCheck = $append(toCheck, c$1); + } + _i++; + } + _ref$1 = toCheck; + _i$1 = 0; /* while (true) { */ case 17: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 18; continue; } - sanCert = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 18; continue; } + sanCert = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); _r$7 = forEachSAN($convertSliceType(sanCert.getSANExtension(), cryptobyte.String), (function(c, comparisonCount, maxConstraintComparisons) { return function Certificate·isValid·func1(tag, data) { var {$24r$2, $24r$3, $24r$4, $24r$5, _1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, data, err, err$1, err$2, err$3, err$4, ip, l, mailbox, name, name$1, name$2, ok, ok$1, tag, uri, $s, $r, $c} = $restore(this, {tag, data}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: @@ -247642,7 +249042,7 @@ $packages["crypto/x509"] = (function() { if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return err; } - _i++; + _i$1++; $s = 17; continue; case 18: /* } */ case 16: @@ -247659,10 +249059,10 @@ $packages["crypto/x509"] = (function() { $s = -1; return (x$7 = new CertificateInvalidError.ptr(c[0], 4, ""), new x$7.constructor.elem(x$7)); } $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: isValid, $c: true, $r, $24r, $24r$1, _arg, _arg$1, _arg$2, _arg$3, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, c, certType, child, comparisonCount, currentChain, err, leaf, maxConstraintComparisons, now, numIntermediates, opts, sanCert, toCheck, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s};return $f; + /* */ } return; } var $f = {$blk: isValid, $c: true, $r, $24r, $24r$1, _arg, _arg$1, _arg$2, _arg$3, _i, _i$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _ref$1, c, c$1, certType, child, comparisonCount, currentChain, err, maxConstraintComparisons, now, numIntermediates, opts, sanCert, toCheck, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s};return $f; }; $ptrType(Certificate).prototype.Verify = function Verify(opts) { - var {$24r, _i, _i$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, c, c$1, candidate, candidateChains, chains, eku, err, err$1, err$2, i, opts, platformChains, systemPool, x, x$1, $s, $r, $c} = $restore(this, {opts}); + var {$24r, _i, _i$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, c, c$1, candidate, candidateChains, chains, eku, err, err$1, err$2, i, opts, platformChains, systemPool, x, x$1, $s, $r, $c} = $restore(this, {opts}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: opts = [opts]; chains = sliceType$21.nil; @@ -247745,21 +249145,24 @@ $packages["crypto/x509"] = (function() { if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [chains, err]; } - if (opts[0].DNSName.length > 0) { - err = c.VerifyHostname(opts[0].DNSName); + /* */ if (opts[0].DNSName.length > 0) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (opts[0].DNSName.length > 0) { */ case 15: + _r$5 = c.VerifyHostname(opts[0].DNSName); /* */ $s = 17; case 17: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + err = _r$5; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [chains, err]; } - } + /* } */ case 16: candidateChains = sliceType$21.nil; - /* */ if (opts[0].Roots.contains(c)) { $s = 15; continue; } - /* */ $s = 16; continue; - /* if (opts[0].Roots.contains(c)) { */ case 15: + /* */ if (opts[0].Roots.contains(c)) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (opts[0].Roots.contains(c)) { */ case 18: candidateChains = new sliceType$21([new sliceType$20([c])]); - $s = 17; continue; - /* } else { */ case 16: - _r$5 = c.buildChains(new sliceType$20([c]), ptrType$17.nil, opts[0]); /* */ $s = 18; case 18: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _tuple$3 = _r$5; + $s = 20; continue; + /* } else { */ case 19: + _r$6 = c.buildChains(new sliceType$20([c]), ptrType$17.nil, opts[0]); /* */ $s = 21; case 21: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _tuple$3 = _r$6; candidateChains = _tuple$3[0]; err = _tuple$3[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { @@ -247769,7 +249172,7 @@ $packages["crypto/x509"] = (function() { err = _tmp$11; $s = -1; return [chains, err]; } - /* } */ case 17: + /* } */ case 20: if (opts[0].KeyUsages.$length === 0) { opts[0].KeyUsages = new sliceType$22([1]); } @@ -247810,7 +249213,7 @@ $packages["crypto/x509"] = (function() { chains = _tmp$16; err = _tmp$17; $s = -1; return [chains, err]; - /* */ } return; } var $f = {$blk: Verify, $c: true, $r, $24r, _i, _i$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, c, c$1, candidate, candidateChains, chains, eku, err, err$1, err$2, i, opts, platformChains, systemPool, x, x$1, $s};return $f; + /* */ } return; } var $f = {$blk: Verify, $c: true, $r, $24r, _i, _i$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, c, c$1, candidate, candidateChains, chains, eku, err, err$1, err$2, i, opts, platformChains, systemPool, x, x$1, $s};return $f; }; appendToFreshChain = function appendToFreshChain$1(chain, cert) { var cert, chain, n, x; @@ -247895,12 +249298,14 @@ $packages["crypto/x509"] = (function() { hintErr[0] = $ifaceNil; hintCert[0] = ptrType$5.nil; considerCandidate = (function(c, chains, currentChain, err, hintCert, hintErr, opts, sigChecks) { return function Certificate·buildChains·func1(certType, candidate) { - var {_1, _r, _r$1, _r$2, _r$3, _tuple, candidate, certType, childChains, err$1, $s, $r, $c} = $restore(this, {certType, candidate}); + var {_1, _r, _r$1, _r$2, _r$3, _tuple, _v, candidate, certType, childChains, err$1, $s, $r, $c} = $restore(this, {certType, candidate}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = alreadyInChain(candidate, currentChain[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - /* */ if (_r) { $s = 1; continue; } + if ($interfaceIsEqual(candidate.PublicKey, $ifaceNil)) { _v = true; $s = 3; continue s; } + _r = alreadyInChain(candidate, currentChain[0]); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r; case 3: + /* */ if (_v) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (_r) { */ case 1: + /* if (_v) { */ case 1: $s = -1; return; /* } */ case 2: if (sigChecks[0] === ptrType$17.nil) { @@ -247911,7 +249316,7 @@ $packages["crypto/x509"] = (function() { err[0] = errors.New("x509: signature check attempts limit reached while verifying certificate chain"); $s = -1; return; } - _r$1 = c[0].CheckSignatureFrom(candidate); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1 = c[0].CheckSignatureFrom(candidate); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } err$1 = _r$1; if (!($interfaceIsEqual(err$1, $ifaceNil))) { if ($interfaceIsEqual(hintErr[0], $ifaceNil)) { @@ -247920,7 +249325,7 @@ $packages["crypto/x509"] = (function() { } $s = -1; return; } - _r$2 = candidate.isValid(certType, currentChain[0], opts[0]); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2 = candidate.isValid(certType, currentChain[0], opts[0]); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } err[0] = _r$2; if (!($interfaceIsEqual(err[0], $ifaceNil))) { if ($interfaceIsEqual(hintErr[0], $ifaceNil)) { @@ -247930,23 +249335,23 @@ $packages["crypto/x509"] = (function() { $s = -1; return; } _1 = certType; - /* */ if (_1 === (2)) { $s = 7; continue; } - /* */ if (_1 === (1)) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (_1 === (2)) { */ case 7: + /* */ if (_1 === (2)) { $s = 8; continue; } + /* */ if (_1 === (1)) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (_1 === (2)) { */ case 8: chains[0] = $append(chains[0], appendToFreshChain(currentChain[0], candidate)); - $s = 9; continue; - /* } else if (_1 === (1)) { */ case 8: + $s = 10; continue; + /* } else if (_1 === (1)) { */ case 9: childChains = sliceType$21.nil; - _r$3 = candidate.buildChains(appendToFreshChain(currentChain[0], candidate), sigChecks[0], opts[0]); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3 = candidate.buildChains(appendToFreshChain(currentChain[0], candidate), sigChecks[0], opts[0]); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _tuple = _r$3; childChains = _tuple[0]; err[0] = _tuple[1]; chains[0] = $appendSlice(chains[0], childChains); - /* } */ case 9: - case 6: + /* } */ case 10: + case 7: $s = -1; return; - /* */ } return; } var $f = {$blk: Certificate·buildChains·func1, $c: true, $r, _1, _r, _r$1, _r$2, _r$3, _tuple, candidate, certType, childChains, err$1, $s};return $f; + /* */ } return; } var $f = {$blk: Certificate·buildChains·func1, $c: true, $r, _1, _r, _r$1, _r$2, _r$3, _tuple, _v, candidate, certType, childChains, err$1, $s};return $f; }; })(c, chains, currentChain, err, hintCert, hintErr, opts, sigChecks); _r = opts[0].Roots.findPotentialParents(c[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _ref = _r; @@ -248112,13 +249517,15 @@ $packages["crypto/x509"] = (function() { return ($bytesToString(out)); }; $ptrType(Certificate).prototype.VerifyHostname = function VerifyHostname(h) { - var _i, _i$1, _ref, _ref$1, c, candidate, candidateIP, candidateName, h, ip, match, validCandidateName, x, x$1; + var {_i, _i$1, _r, _ref, _ref$1, c, candidate, candidateIP, candidateName, h, ip, match, validCandidateName, x, x$1, $s, $r, $c} = $restore(this, {h}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: c = this; candidateIP = h; if (h.length >= 3 && (h.charCodeAt(0) === 91) && (h.charCodeAt((h.length - 1 >> 0)) === 93)) { candidateIP = $substring(h, 1, (h.length - 1 >> 0)); } - ip = net.ParseIP(candidateIP); + _r = net.ParseIP(candidateIP); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + ip = _r; if (!(ip === net.IP.nil)) { _ref = c.IPAddresses; _i = 0; @@ -248126,11 +249533,11 @@ $packages["crypto/x509"] = (function() { if (!(_i < _ref.$length)) { break; } candidate = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); if (ip.Equal(candidate)) { - return $ifaceNil; + $s = -1; return $ifaceNil; } _i++; } - return (x = new HostnameError.ptr(c, candidateIP), new x.constructor.elem(x)); + $s = -1; return (x = new HostnameError.ptr(c, candidateIP), new x.constructor.elem(x)); } candidateName = toLowerCaseASCII(h); validCandidateName = validHostnameInput(candidateName); @@ -248141,16 +249548,17 @@ $packages["crypto/x509"] = (function() { match = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); if (validCandidateName && validHostnamePattern(match)) { if (matchHostnames(match, candidateName)) { - return $ifaceNil; + $s = -1; return $ifaceNil; } } else { if (matchExactly(match, candidateName)) { - return $ifaceNil; + $s = -1; return $ifaceNil; } } _i$1++; } - return (x$1 = new HostnameError.ptr(c, h), new x$1.constructor.elem(x$1)); + $s = -1; return (x$1 = new HostnameError.ptr(c, h), new x$1.constructor.elem(x$1)); + /* */ } return; } var $f = {$blk: VerifyHostname, $c: true, $r, _i, _i$1, _r, _ref, _ref$1, c, candidate, candidateIP, candidateName, h, ip, match, validCandidateName, x, x$1, $s};return $f; }; checkChainForKeyUsage = function checkChainForKeyUsage$1(chain, keyUsages) { var _i, _i$1, _i$2, _ref, _ref$1, _ref$2, cert, chain, i, i$1, keyUsages, requestedUsage, usage, usage$1, usages, usagesRemaining; @@ -248994,7 +250402,7 @@ $packages["crypto/x509"] = (function() { /* if (!_r) { */ case 9: $s = -1; return [$ifaceNil, errors.New("x509: invalid RSA modulus")]; /* } */ case 10: - _r$1 = (der.$ptr || (der.$ptr = new ptrType$27(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, der))).ReadASN1Integer((p.$ptr_E || (p.$ptr_E = new ptrType$17(function() { return this.$target.E; }, function($v) { this.$target.E = $v; }, p)))); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1 = (der.$ptr || (der.$ptr = new ptrType$27(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, der))).ReadASN1Integer((p === ptrType$29.nil && $throwNilPointerError(), (p.$ptr_E || (p.$ptr_E = new ptrType$17(function() { return this.$target.E; }, function($v) { this.$target.E = $v; }, p))))); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } /* */ if (!_r$1) { $s = 12; continue; } /* */ $s = 13; continue; /* if (!_r$1) { */ case 12: @@ -249104,22 +250512,22 @@ $packages["crypto/x509"] = (function() { maxPathLen = [maxPathLen]; isCA[0] = false; if (!(der.$ptr || (der.$ptr = new ptrType$27(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, der))).ReadASN1((der.$ptr || (der.$ptr = new ptrType$27(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, der))), 48)) { - $s = -1; return [false, 0, errors.New("x509: invalid basic constraints a")]; + $s = -1; return [false, 0, errors.New("x509: invalid basic constraints")]; } if (der[0].PeekASN1Tag(1)) { if (!(der.$ptr || (der.$ptr = new ptrType$27(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, der))).ReadASN1Boolean((isCA.$ptr || (isCA.$ptr = new ptrType$7(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, isCA))))) { - $s = -1; return [false, 0, errors.New("x509: invalid basic constraints b")]; + $s = -1; return [false, 0, errors.New("x509: invalid basic constraints")]; } } maxPathLen[0] = -1; - /* */ if (!der[0].Empty() && der[0].PeekASN1Tag(2)) { $s = 1; continue; } + /* */ if (der[0].PeekASN1Tag(2)) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (!der[0].Empty() && der[0].PeekASN1Tag(2)) { */ case 1: + /* if (der[0].PeekASN1Tag(2)) { */ case 1: _r = (der.$ptr || (der.$ptr = new ptrType$27(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, der))).ReadASN1Integer((maxPathLen.$ptr || (maxPathLen.$ptr = new ptrType$17(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, maxPathLen)))); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (!_r) { $s = 3; continue; } /* */ $s = 4; continue; /* if (!_r) { */ case 3: - $s = -1; return [false, 0, errors.New("x509: invalid basic constraints c")]; + $s = -1; return [false, 0, errors.New("x509: invalid basic constraints")]; /* } */ case 4: /* } */ case 2: $s = -1; return [isCA[0], maxPathLen[0], $ifaceNil]; @@ -249349,7 +250757,7 @@ $packages["crypto/x509"] = (function() { $s = -1; return [unhandled[0], err]; } getValues = (function(excluded, haveExcluded, havePermitted, permitted, toplevel, unhandled) { return function parseNameConstraintsExtension·func1(subtrees) { - var {$24r, $24r$1, $24r$10, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _1, _2, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$30, _tmp$31, _tmp$32, _tmp$33, _tmp$34, _tmp$35, _tmp$36, _tmp$37, _tmp$38, _tmp$39, _tmp$40, _tmp$41, _tmp$42, _tmp$43, _tmp$44, _tmp$45, _tmp$46, _tmp$47, _tmp$48, _tmp$49, _tmp$50, _tmp$51, _tmp$52, _tmp$53, _tmp$54, _tmp$55, _tmp$56, _tmp$57, _tmp$58, _tmp$59, _tmp$60, _tmp$61, _tmp$62, _tmp$63, _tmp$64, _tmp$65, _tmp$66, _tmp$67, _tmp$68, _tmp$69, _tmp$70, _tmp$71, _tmp$72, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, constraint, dnsNames, dnsTag, domain, domain$1, domain$2, emailTag, emails, err$1, err$2, err$3, err$4, ip, ipTag, ips, l, mask, ok, ok$1, ok$2, ok$3, seq, subtrees, subtrees$24ptr, tag, trimmedDomain, trimmedDomain$1, uriDomains, uriTag, value, $s, $r, $c} = $restore(this, {subtrees}); + var {$24r, $24r$1, $24r$10, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _1, _2, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$30, _tmp$31, _tmp$32, _tmp$33, _tmp$34, _tmp$35, _tmp$36, _tmp$37, _tmp$38, _tmp$39, _tmp$40, _tmp$41, _tmp$42, _tmp$43, _tmp$44, _tmp$45, _tmp$46, _tmp$47, _tmp$48, _tmp$49, _tmp$50, _tmp$51, _tmp$52, _tmp$53, _tmp$54, _tmp$55, _tmp$56, _tmp$57, _tmp$58, _tmp$59, _tmp$60, _tmp$61, _tmp$62, _tmp$63, _tmp$64, _tmp$65, _tmp$66, _tmp$67, _tmp$68, _tmp$69, _tmp$70, _tmp$71, _tmp$72, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, constraint, dnsNames, dnsTag, domain, domain$1, domain$2, emailTag, emails, err$1, err$2, err$3, err$4, ip, ipTag, ips, l, mask, ok, ok$1, ok$2, ok$3, seq, subtrees, subtrees$24ptr, tag, trimmedDomain, trimmedDomain$1, uriDomains, uriTag, value, $s, $r, $c} = $restore(this, {subtrees}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: dnsNames = sliceType$4.nil; ips = sliceType$28.nil; @@ -249587,22 +250995,23 @@ $packages["crypto/x509"] = (function() { $24r$8 = [dnsNames, ips, emails, uriDomains, err$1]; $s = 57; case 57: return $24r$8; /* } */ case 54: - /* */ if (!(net.ParseIP(domain$2) === net.IP.nil)) { $s = 58; continue; } + _r$15 = net.ParseIP(domain$2); /* */ $s = 60; case 60: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + /* */ if (!(_r$15 === net.IP.nil)) { $s = 58; continue; } /* */ $s = 59; continue; - /* if (!(net.ParseIP(domain$2) === net.IP.nil)) { */ case 58: + /* if (!(_r$15 === net.IP.nil)) { */ case 58: _tmp$58 = sliceType$4.nil; _tmp$59 = sliceType$28.nil; _tmp$60 = sliceType$4.nil; _tmp$61 = sliceType$4.nil; - _r$15 = fmt.Errorf("x509: failed to parse URI constraint %q: cannot be IP address", new sliceType$6([new $String(domain$2)])); /* */ $s = 60; case 60: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - _tmp$62 = _r$15; + _r$16 = fmt.Errorf("x509: failed to parse URI constraint %q: cannot be IP address", new sliceType$6([new $String(domain$2)])); /* */ $s = 61; case 61: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + _tmp$62 = _r$16; dnsNames = _tmp$58; ips = _tmp$59; emails = _tmp$60; uriDomains = _tmp$61; err$1 = _tmp$62; $24r$9 = [dnsNames, ips, emails, uriDomains, err$1]; - $s = 61; case 61: return $24r$9; + $s = 62; case 62: return $24r$9; /* } */ case 59: trimmedDomain$1 = domain$2; if (trimmedDomain$1.length > 0 && (trimmedDomain$1.charCodeAt(0) === 46)) { @@ -249610,23 +251019,23 @@ $packages["crypto/x509"] = (function() { } _tuple$3 = domainToReverseLabels(trimmedDomain$1); ok$3 = _tuple$3[1]; - /* */ if (!ok$3) { $s = 62; continue; } - /* */ $s = 63; continue; - /* if (!ok$3) { */ case 62: + /* */ if (!ok$3) { $s = 63; continue; } + /* */ $s = 64; continue; + /* if (!ok$3) { */ case 63: _tmp$63 = sliceType$4.nil; _tmp$64 = sliceType$28.nil; _tmp$65 = sliceType$4.nil; _tmp$66 = sliceType$4.nil; - _r$16 = fmt.Errorf("x509: failed to parse URI constraint %q", new sliceType$6([new $String(domain$2)])); /* */ $s = 64; case 64: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - _tmp$67 = _r$16; + _r$17 = fmt.Errorf("x509: failed to parse URI constraint %q", new sliceType$6([new $String(domain$2)])); /* */ $s = 65; case 65: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + _tmp$67 = _r$17; dnsNames = _tmp$63; ips = _tmp$64; emails = _tmp$65; uriDomains = _tmp$66; err$1 = _tmp$67; $24r$10 = [dnsNames, ips, emails, uriDomains, err$1]; - $s = 65; case 65: return $24r$10; - /* } */ case 63: + $s = 66; case 66: return $24r$10; + /* } */ case 64: uriDomains = $append(uriDomains, domain$2); $s = 13; continue; /* } else { */ case 12: @@ -249646,7 +251055,7 @@ $packages["crypto/x509"] = (function() { uriDomains = _tmp$71; err$1 = _tmp$72; $s = -1; return [dnsNames, ips, emails, uriDomains, err$1]; - /* */ } return; } var $f = {$blk: parseNameConstraintsExtension·func1, $c: true, $r, $24r, $24r$1, $24r$10, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _1, _2, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$30, _tmp$31, _tmp$32, _tmp$33, _tmp$34, _tmp$35, _tmp$36, _tmp$37, _tmp$38, _tmp$39, _tmp$40, _tmp$41, _tmp$42, _tmp$43, _tmp$44, _tmp$45, _tmp$46, _tmp$47, _tmp$48, _tmp$49, _tmp$50, _tmp$51, _tmp$52, _tmp$53, _tmp$54, _tmp$55, _tmp$56, _tmp$57, _tmp$58, _tmp$59, _tmp$60, _tmp$61, _tmp$62, _tmp$63, _tmp$64, _tmp$65, _tmp$66, _tmp$67, _tmp$68, _tmp$69, _tmp$70, _tmp$71, _tmp$72, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, constraint, dnsNames, dnsTag, domain, domain$1, domain$2, emailTag, emails, err$1, err$2, err$3, err$4, ip, ipTag, ips, l, mask, ok, ok$1, ok$2, ok$3, seq, subtrees, subtrees$24ptr, tag, trimmedDomain, trimmedDomain$1, uriDomains, uriTag, value, $s};return $f; + /* */ } return; } var $f = {$blk: parseNameConstraintsExtension·func1, $c: true, $r, $24r, $24r$1, $24r$10, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _1, _2, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$30, _tmp$31, _tmp$32, _tmp$33, _tmp$34, _tmp$35, _tmp$36, _tmp$37, _tmp$38, _tmp$39, _tmp$40, _tmp$41, _tmp$42, _tmp$43, _tmp$44, _tmp$45, _tmp$46, _tmp$47, _tmp$48, _tmp$49, _tmp$50, _tmp$51, _tmp$52, _tmp$53, _tmp$54, _tmp$55, _tmp$56, _tmp$57, _tmp$58, _tmp$59, _tmp$60, _tmp$61, _tmp$62, _tmp$63, _tmp$64, _tmp$65, _tmp$66, _tmp$67, _tmp$68, _tmp$69, _tmp$70, _tmp$71, _tmp$72, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, constraint, dnsNames, dnsTag, domain, domain$1, domain$2, emailTag, emails, err$1, err$2, err$3, err$4, ip, ipTag, ips, l, mask, ok, ok$1, ok$2, ok$3, seq, subtrees, subtrees$24ptr, tag, trimmedDomain, trimmedDomain$1, uriDomains, uriTag, value, $s};return $f; }; })(excluded, haveExcluded, havePermitted, permitted, toplevel, unhandled); _r = getValues(permitted[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; @@ -249914,7 +251323,7 @@ $packages["crypto/x509"] = (function() { if (!(tbs.$ptr || (tbs.$ptr = new ptrType$27(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, tbs))).ReadASN1((tbs.$ptr || (tbs.$ptr = new ptrType$27(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, tbs))), 48)) { $s = -1; return [ptrType$5.nil, errors.New("x509: malformed tbs certificate")]; } - _r = (tbs.$ptr || (tbs.$ptr = new ptrType$27(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, tbs))).ReadOptionalASN1Integer((cert.$ptr_Version || (cert.$ptr_Version = new ptrType$17(function() { return this.$target.Version; }, function($v) { this.$target.Version = $v; }, cert))), new asn1$1.Tag(new asn1$1.Tag(0).Constructed()).ContextSpecific(), new $Int(0)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = (tbs.$ptr || (tbs.$ptr = new ptrType$27(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, tbs))).ReadOptionalASN1Integer((cert === ptrType$5.nil && $throwNilPointerError(), (cert.$ptr_Version || (cert.$ptr_Version = new ptrType$17(function() { return this.$target.Version; }, function($v) { this.$target.Version = $v; }, cert)))), new asn1$1.Tag(new asn1$1.Tag(0).Constructed()).ContextSpecific(), new $Int(0)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (!_r) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!_r) { */ case 1: @@ -250108,7 +251517,7 @@ $packages["crypto/x509"] = (function() { return true; }; NewCertPool = function NewCertPool$1() { - return new CertPool.ptr(new $global.Map(), sliceType$29.nil, new $global.Map(), false); + return new CertPool.ptr(new $global.Map(), sliceType$30.nil, new $global.Map(), false); }; $pkg.NewCertPool = NewCertPool; $ptrType(CertPool).prototype.len = function len() { @@ -250131,7 +251540,7 @@ $packages["crypto/x509"] = (function() { $ptrType(CertPool).prototype.Clone = function Clone() { var _entry, _entry$1, _i, _i$1, _key, _key$1, _key$2, _key$3, _keys, _keys$1, _ref, _ref$1, _size, _size$1, indexes, k, k$1, p, s, v, x, x$1; s = this; - p = new CertPool.ptr((x = (s.byName ? s.byName.size : 0), ((x < 0 || x > 2147483647) ? $throwRuntimeError("makemap: size out of range") : new $global.Map())), $makeSlice(sliceType$29, s.lazyCerts.$length), (x$1 = (s.haveSum ? s.haveSum.size : 0), ((x$1 < 0 || x$1 > 2147483647) ? $throwRuntimeError("makemap: size out of range") : new $global.Map())), s.systemPool); + p = new CertPool.ptr((x = (s.byName ? s.byName.size : 0), ((x < 0 || x > 2147483647) ? $throwRuntimeError("makemap: size out of range") : new $global.Map())), $makeSlice(sliceType$30, s.lazyCerts.$length), (x$1 = (s.haveSum ? s.haveSum.size : 0), ((x$1 < 0 || x$1 > 2147483647) ? $throwRuntimeError("makemap: size out of range") : new $global.Map())), s.systemPool); _ref = s.byName; _i = 0; _keys = _ref ? _ref.keys() : undefined; @@ -250304,7 +251713,7 @@ $packages["crypto/x509"] = (function() { $ptrType(CertPool).prototype.Subjects = function Subjects() { var _i, _ref, i, lc, res, s; s = this; - res = $makeSlice(sliceType$30, s.len()); + res = $makeSlice(sliceType$31, s.len()); _ref = s.lazyCerts; _i = 0; while (true) { @@ -250347,7 +251756,7 @@ $packages["crypto/x509"] = (function() { }; SignatureAlgorithm.methods = [{prop: "isRSAPSS", name: "isRSAPSS", pkg: "crypto/x509", typ: $funcType([], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; PublicKeyAlgorithm.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$5.methods = [{prop: "Equal", name: "Equal", pkg: "", typ: $funcType([ptrType$5], [$Bool], false)}, {prop: "hasSANExtension", name: "hasSANExtension", pkg: "crypto/x509", typ: $funcType([], [$Bool], false)}, {prop: "CheckSignatureFrom", name: "CheckSignatureFrom", pkg: "", typ: $funcType([ptrType$5], [$error], false)}, {prop: "CheckSignature", name: "CheckSignature", pkg: "", typ: $funcType([SignatureAlgorithm, sliceType$1, sliceType$1], [$error], false)}, {prop: "hasNameConstraints", name: "hasNameConstraints", pkg: "crypto/x509", typ: $funcType([], [$Bool], false)}, {prop: "getSANExtension", name: "getSANExtension", pkg: "crypto/x509", typ: $funcType([], [sliceType$1], false)}, {prop: "CheckCRLSignature", name: "CheckCRLSignature", pkg: "", typ: $funcType([ptrType$10], [$error], false)}, {prop: "CreateCRL", name: "CreateCRL", pkg: "", typ: $funcType([io.Reader, $emptyInterface, sliceType$13, time.Time, time.Time], [sliceType$1, $error], false)}, {prop: "checkNameConstraints", name: "checkNameConstraints", pkg: "crypto/x509", typ: $funcType([ptrType$17, $Int, $String, $String, $emptyInterface, funcType, $emptyInterface, $emptyInterface], [$error], false)}, {prop: "isValid", name: "isValid", pkg: "crypto/x509", typ: $funcType([$Int, sliceType$20, ptrType$29], [$error], false)}, {prop: "Verify", name: "Verify", pkg: "", typ: $funcType([VerifyOptions], [sliceType$21, $error], false)}, {prop: "buildChains", name: "buildChains", pkg: "crypto/x509", typ: $funcType([sliceType$20, ptrType$17, ptrType$29], [sliceType$21, $error], false)}, {prop: "VerifyHostname", name: "VerifyHostname", pkg: "", typ: $funcType([$String], [$error], false)}, {prop: "systemVerify", name: "systemVerify", pkg: "crypto/x509", typ: $funcType([ptrType$29], [sliceType$21, $error], false)}]; + ptrType$5.methods = [{prop: "Equal", name: "Equal", pkg: "", typ: $funcType([ptrType$5], [$Bool], false)}, {prop: "hasSANExtension", name: "hasSANExtension", pkg: "crypto/x509", typ: $funcType([], [$Bool], false)}, {prop: "CheckSignatureFrom", name: "CheckSignatureFrom", pkg: "", typ: $funcType([ptrType$5], [$error], false)}, {prop: "CheckSignature", name: "CheckSignature", pkg: "", typ: $funcType([SignatureAlgorithm, sliceType$1, sliceType$1], [$error], false)}, {prop: "hasNameConstraints", name: "hasNameConstraints", pkg: "crypto/x509", typ: $funcType([], [$Bool], false)}, {prop: "getSANExtension", name: "getSANExtension", pkg: "crypto/x509", typ: $funcType([], [sliceType$1], false)}, {prop: "CheckCRLSignature", name: "CheckCRLSignature", pkg: "", typ: $funcType([ptrType$10], [$error], false)}, {prop: "CreateCRL", name: "CreateCRL", pkg: "", typ: $funcType([io.Reader, $emptyInterface, sliceType$13, time.Time, time.Time], [sliceType$1, $error], false)}, {prop: "checkNameConstraints", name: "checkNameConstraints", pkg: "crypto/x509", typ: $funcType([ptrType$17, $Int, $String, $String, $emptyInterface, funcType, $emptyInterface, $emptyInterface], [$error], false)}, {prop: "isValid", name: "isValid", pkg: "crypto/x509", typ: $funcType([$Int, sliceType$20, ptrType$30], [$error], false)}, {prop: "Verify", name: "Verify", pkg: "", typ: $funcType([VerifyOptions], [sliceType$21, $error], false)}, {prop: "buildChains", name: "buildChains", pkg: "crypto/x509", typ: $funcType([sliceType$20, ptrType$17, ptrType$30], [sliceType$21, $error], false)}, {prop: "VerifyHostname", name: "VerifyHostname", pkg: "", typ: $funcType([$String], [$error], false)}, {prop: "systemVerify", name: "systemVerify", pkg: "crypto/x509", typ: $funcType([ptrType$30], [sliceType$21, $error], false)}]; InsecureAlgorithmError.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; ConstraintViolationError.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; UnhandledCriticalExtension.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; @@ -250355,7 +251764,7 @@ $packages["crypto/x509"] = (function() { HostnameError.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; UnknownAuthorityError.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; SystemRootsError.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Unwrap", name: "Unwrap", pkg: "", typ: $funcType([], [$error], false)}]; - ptrType.methods = [{prop: "len", name: "len", pkg: "crypto/x509", typ: $funcType([], [$Int], false)}, {prop: "cert", name: "cert", pkg: "crypto/x509", typ: $funcType([$Int], [ptrType$5, $error], false)}, {prop: "Clone", name: "Clone", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "findPotentialParents", name: "findPotentialParents", pkg: "crypto/x509", typ: $funcType([ptrType$5], [sliceType$20], false)}, {prop: "contains", name: "contains", pkg: "crypto/x509", typ: $funcType([ptrType$5], [$Bool], false)}, {prop: "AddCert", name: "AddCert", pkg: "", typ: $funcType([ptrType$5], [], false)}, {prop: "addCertFunc", name: "addCertFunc", pkg: "crypto/x509", typ: $funcType([sum224, $String, funcType$2], [], false)}, {prop: "AppendCertsFromPEM", name: "AppendCertsFromPEM", pkg: "", typ: $funcType([sliceType$1], [$Bool], false)}, {prop: "Subjects", name: "Subjects", pkg: "", typ: $funcType([], [sliceType$30], false)}, {prop: "Equal", name: "Equal", pkg: "", typ: $funcType([ptrType], [$Bool], false)}]; + ptrType.methods = [{prop: "len", name: "len", pkg: "crypto/x509", typ: $funcType([], [$Int], false)}, {prop: "cert", name: "cert", pkg: "crypto/x509", typ: $funcType([$Int], [ptrType$5, $error], false)}, {prop: "Clone", name: "Clone", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "findPotentialParents", name: "findPotentialParents", pkg: "crypto/x509", typ: $funcType([ptrType$5], [sliceType$20], false)}, {prop: "contains", name: "contains", pkg: "crypto/x509", typ: $funcType([ptrType$5], [$Bool], false)}, {prop: "AddCert", name: "AddCert", pkg: "", typ: $funcType([ptrType$5], [], false)}, {prop: "addCertFunc", name: "addCertFunc", pkg: "crypto/x509", typ: $funcType([sum224, $String, funcType$2], [], false)}, {prop: "AppendCertsFromPEM", name: "AppendCertsFromPEM", pkg: "", typ: $funcType([sliceType$1], [$Bool], false)}, {prop: "Subjects", name: "Subjects", pkg: "", typ: $funcType([], [sliceType$31], false)}, {prop: "Equal", name: "Equal", pkg: "", typ: $funcType([ptrType], [$Bool], false)}]; publicKeyInfo.init("", [{prop: "Raw", name: "Raw", embedded: false, exported: true, typ: asn1.RawContent, tag: ""}, {prop: "Algorithm", name: "Algorithm", embedded: false, exported: true, typ: pkix.AlgorithmIdentifier, tag: ""}, {prop: "PublicKey", name: "PublicKey", embedded: false, exported: true, typ: asn1.BitString, tag: ""}]); authKeyId.init("", [{prop: "Id", name: "Id", embedded: false, exported: true, typ: sliceType$1, tag: "asn1:\"optional,tag:0\""}]); pssParameters.init("", [{prop: "Hash", name: "Hash", embedded: false, exported: true, typ: pkix.AlgorithmIdentifier, tag: "asn1:\"explicit,tag:0\""}, {prop: "MGF", name: "MGF", embedded: false, exported: true, typ: pkix.AlgorithmIdentifier, tag: "asn1:\"explicit,tag:1\""}, {prop: "SaltLength", name: "SaltLength", embedded: false, exported: true, typ: $Int, tag: "asn1:\"explicit,tag:2\""}, {prop: "TrailerField", name: "TrailerField", embedded: false, exported: true, typ: $Int, tag: "asn1:\"optional,explicit,tag:3,default:1\""}]); @@ -250374,7 +251783,7 @@ $packages["crypto/x509"] = (function() { pkcs1AdditionalRSAPrime.init("", [{prop: "Prime", name: "Prime", embedded: false, exported: true, typ: ptrType$1, tag: ""}, {prop: "Exp", name: "Exp", embedded: false, exported: true, typ: ptrType$1, tag: ""}, {prop: "Coeff", name: "Coeff", embedded: false, exported: true, typ: ptrType$1, tag: ""}]); pkcs1PublicKey.init("", [{prop: "N", name: "N", embedded: false, exported: true, typ: ptrType$1, tag: ""}, {prop: "E", name: "E", embedded: false, exported: true, typ: $Int, tag: ""}]); sum224.init($Uint8, 28); - CertPool.init("crypto/x509", [{prop: "byName", name: "byName", embedded: false, exported: false, typ: mapType, tag: ""}, {prop: "lazyCerts", name: "lazyCerts", embedded: false, exported: false, typ: sliceType$29, tag: ""}, {prop: "haveSum", name: "haveSum", embedded: false, exported: false, typ: mapType$1, tag: ""}, {prop: "systemPool", name: "systemPool", embedded: false, exported: false, typ: $Bool, tag: ""}]); + CertPool.init("crypto/x509", [{prop: "byName", name: "byName", embedded: false, exported: false, typ: mapType, tag: ""}, {prop: "lazyCerts", name: "lazyCerts", embedded: false, exported: false, typ: sliceType$30, tag: ""}, {prop: "haveSum", name: "haveSum", embedded: false, exported: false, typ: mapType$1, tag: ""}, {prop: "systemPool", name: "systemPool", embedded: false, exported: false, typ: $Bool, tag: ""}]); lazyCert.init("crypto/x509", [{prop: "rawSubject", name: "rawSubject", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "getCert", name: "getCert", embedded: false, exported: false, typ: funcType$2, tag: ""}]); pubKeyEqual.init([{prop: "Equal", name: "Equal", pkg: "", typ: $funcType([crypto.PublicKey], [$Bool], false)}]); }; @@ -250482,7 +251891,7 @@ $packages["crypto/x509"] = (function() { errNotParsed = errors.New("x509: missing ASN.1 contents; use ParseCertificate"); certFiles = new sliceType$4([]); certDirectories = new sliceType$4([]); - forceFallback = godebug.New("x509usefallbackroots"); + x509usefallbackroots = godebug.New("x509usefallbackroots"); $pkg.IncorrectPasswordError = errors.New("x509: decryption password incorrect"); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; @@ -250490,47 +251899,28 @@ $packages["crypto/x509"] = (function() { return $pkg; })(); $packages["vendor/golang.org/x/crypto/internal/alias"] = (function() { - var $pkg = {}, $init, reflect, ptrType, AnyOverlap, InexactOverlap; - reflect = $packages["reflect"]; + var $pkg = {}, $init, js, ptrType, AnyOverlap, InexactOverlap; + js = $packages["github.com/gopherjs/gopherjs/js"]; $pkg.$finishSetup = function() { ptrType = $ptrType($Uint8); AnyOverlap = function AnyOverlap$1(x, y) { - var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _v, _v$1, x, y, $s, $r, $c} = $restore(this, {x, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (!(x.$length > 0 && y.$length > 0)) { _v$1 = false; $s = 2; continue s; } - _r = reflect.ValueOf($indexPtr(x.$array, x.$offset + 0, ptrType)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = $clone(_r, reflect.Value).Pointer(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = reflect.ValueOf($indexPtr(y.$array, y.$offset + (y.$length - 1 >> 0), ptrType)); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = $clone(_r$2, reflect.Value).Pointer(); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _v$1 = _r$1 <= _r$3; case 2: - if (!(_v$1)) { _v = false; $s = 1; continue s; } - _r$4 = reflect.ValueOf($indexPtr(y.$array, y.$offset + 0, ptrType)); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$5 = $clone(_r$4, reflect.Value).Pointer(); /* */ $s = 8; case 8: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$6 = reflect.ValueOf($indexPtr(x.$array, x.$offset + (x.$length - 1 >> 0), ptrType)); /* */ $s = 9; case 9: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _r$7 = $clone(_r$6, reflect.Value).Pointer(); /* */ $s = 10; case 10: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _v = _r$5 <= _r$7; case 1: - $24r = _v; - $s = 11; case 11: return $24r; - /* */ } return; } var $f = {$blk: AnyOverlap$1, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _v, _v$1, x, y, $s};return $f; + var x, y; + return x.$length > 0 && y.$length > 0 && x.$array === y.$array && ($parseInt(x.$offset) >> 0) <= ((($parseInt(y.$offset) >> 0) + y.$length >> 0) - 1 >> 0) && ($parseInt(y.$offset) >> 0) <= ((($parseInt(x.$offset) >> 0) + x.$length >> 0) - 1 >> 0); }; $pkg.AnyOverlap = AnyOverlap; InexactOverlap = function InexactOverlap$1(x, y) { - var {$24r, _r, x, y, $s, $r, $c} = $restore(this, {x, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if ((x.$length === 0) || (y.$length === 0) || $indexPtr(x.$array, x.$offset + 0, ptrType) === $indexPtr(y.$array, y.$offset + 0, ptrType)) { - $s = -1; return false; + var x, y; + if ((x.$length === 0) || (y.$length === 0) || (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + 0, ptrType)) === (0 >= y.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(y.$array, y.$offset + 0, ptrType))) { + return false; } - _r = AnyOverlap(x, y); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: InexactOverlap$1, $c: true, $r, $24r, _r, x, y, $s};return $f; + return AnyOverlap(x, y); }; $pkg.InexactOverlap = InexactOverlap; }; $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: - $r = reflect.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; @@ -250681,22 +252071,18 @@ $packages["vendor/golang.org/x/crypto/chacha20"] = (function() { } }; $ptrType(Cipher).prototype.XORKeyStream = function XORKeyStream(dst, src) { - var {_i, _q, _r, _r$1, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, b, buf, dst, full, i, keyStream, numBlocks, numBlocks$1, s, src, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, $s, $r, $c} = $restore(this, {dst, src}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var _i, _q, _r, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, b, buf, dst, full, i, keyStream, numBlocks, numBlocks$1, s, src, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8; s = this; if (src.$length === 0) { - $s = -1; return; + return; } if (dst.$length < src.$length) { $panic(new $String("chacha20: output smaller than input")); } dst = $subslice(dst, 0, src.$length); - _r = alias.InexactOverlap(dst, src); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - /* */ if (_r) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (_r) { */ case 1: + if (alias.InexactOverlap(dst, src)) { $panic(new $String("chacha20: invalid buffer overlap")); - /* } */ case 2: + } if (!((s.len === 0))) { keyStream = $subslice(new sliceType(s.buf), (64 - s.len >> 0)); if (src.$length < keyStream.$length) { @@ -250719,7 +252105,7 @@ $packages["vendor/golang.org/x/crypto/chacha20"] = (function() { src = _tmp$1; } if (src.$length === 0) { - $s = -1; return; + return; } numBlocks = $div64(((x$1 = (x$2 = (new $Uint64(0, src.$length)), new $Uint64(x$2.$high + 0, x$2.$low + 64)), new $Uint64(x$1.$high - 0, x$1.$low - 1))), new $Uint64(0, 64), false); if (s.overflow || (x$3 = (x$4 = (new $Uint64(0, s.counter)), new $Uint64(x$4.$high + numBlocks.$high, x$4.$low + numBlocks.$low)), (x$3.$high > 1 || (x$3.$high === 1 && x$3.$low > 0)))) { @@ -250727,7 +252113,7 @@ $packages["vendor/golang.org/x/crypto/chacha20"] = (function() { } else if ((x$5 = (x$6 = (new $Uint64(0, s.counter)), new $Uint64(x$6.$high + numBlocks.$high, x$6.$low + numBlocks.$low)), (x$5.$high === 1 && x$5.$low === 0))) { s.overflow = true; } - full = src.$length - (_r$1 = src.$length % 64, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) >> 0; + full = src.$length - (_r = src.$length % 64, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) >> 0; if (full > 0) { s.xorKeyStreamBlocks($subslice(dst, 0, full), $subslice(src, 0, full)); } @@ -250742,7 +252128,7 @@ $packages["vendor/golang.org/x/crypto/chacha20"] = (function() { $copySlice(buf, src); s.xorKeyStreamBlocksGeneric(buf, buf); s.len = buf.$length - $copySlice(dst, buf) >> 0; - $s = -1; return; + return; } if (src.$length > 0) { arrayType$2.copy(s.buf, arrayType$2.zero()); @@ -250750,8 +252136,6 @@ $packages["vendor/golang.org/x/crypto/chacha20"] = (function() { s.xorKeyStreamBlocks(new sliceType(s.buf), new sliceType(s.buf)); s.len = 64 - $copySlice(dst, new sliceType(s.buf)) >> 0; } - $s = -1; return; - /* */ } return; } var $f = {$blk: XORKeyStream, $c: true, $r, _i, _q, _r, _r$1, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, b, buf, dst, full, i, keyStream, numBlocks, numBlocks$1, s, src, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, $s};return $f; }; $ptrType(Cipher).prototype.xorKeyStreamBlocksGeneric = function xorKeyStreamBlocksGeneric(dst, src) { var _r, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, c0, c1, c10, c11, c13, c14, c15, c2, c3, c4, c5, c6, c7, c8, c9, dst, fcr0, fcr12, fcr4, fcr8, i, s, src, x0, x1, x10, x11, x12, x13, x14, x15, x2, x3, x4, x5, x6, x7, x8, x9; @@ -251011,7 +252395,7 @@ $packages["vendor/golang.org/x/crypto/chacha20"] = (function() { return $pkg; })(); $packages["vendor/golang.org/x/crypto/internal/poly1305"] = (function() { - var $pkg = {}, $init, subtle, binary, bits, macState, macGeneric, uint128, MAC, mac, arrayType, arrayType$1, arrayType$2, sliceType, ptrType, ptrType$1, ptrType$2, initialize, mul64, add128, shiftRightBy2, updateGeneric, select64, finalize, New, bitsAdd64, bitsSub64, bitsMul64; + var $pkg = {}, $init, subtle, binary, bits, macState, macGeneric, uint128, MAC, mac, arrayType, arrayType$1, arrayType$2, sliceType, ptrType, ptrType$1, ptrType$2, ptrType$3, ptrType$4, initialize, mul64, add128, shiftRightBy2, updateGeneric, select64, finalize, New, bitsAdd64, bitsSub64, bitsMul64; subtle = $packages["crypto/subtle"]; binary = $packages["encoding/binary"]; bits = $packages["math/bits"]; @@ -251077,9 +252461,11 @@ $packages["vendor/golang.org/x/crypto/internal/poly1305"] = (function() { arrayType$1 = $arrayType($Uint64, 2); arrayType$2 = $arrayType($Uint8, 16); sliceType = $sliceType($Uint8); - ptrType = $ptrType(arrayType$2); - ptrType$1 = $ptrType(macGeneric); - ptrType$2 = $ptrType(MAC); + ptrType = $ptrType(arrayType); + ptrType$1 = $ptrType(arrayType$1); + ptrType$2 = $ptrType(arrayType$2); + ptrType$3 = $ptrType(macGeneric); + ptrType$4 = $ptrType(MAC); $ptrType(macGeneric).prototype.Write = function Write(p) { var _r, h, n, n$1, nn, p; h = this; @@ -251244,9 +252630,9 @@ $packages["vendor/golang.org/x/crypto/internal/poly1305"] = (function() { }; finalize = function finalize$1(out, h, s) { var _tmp, _tmp$1, _tmp$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, b, c, h, h0, h1, h2, hMinusP0, hMinusP1, out, s; - _tmp = h[0]; - _tmp$1 = h[1]; - _tmp$2 = h[2]; + _tmp = (h === ptrType.nil && $throwNilPointerError(), h)[0]; + _tmp$1 = (h === ptrType.nil && $throwNilPointerError(), h)[1]; + _tmp$2 = (h === ptrType.nil && $throwNilPointerError(), h)[2]; h0 = _tmp; h1 = _tmp$1; h2 = _tmp$2; @@ -251260,10 +252646,10 @@ $packages["vendor/golang.org/x/crypto/internal/poly1305"] = (function() { b = _tuple$2[1]; h0 = select64(b, h0, hMinusP0); h1 = select64(b, h1, hMinusP1); - _tuple$3 = bitsAdd64(h0, s[0], new $Uint64(0, 0)); + _tuple$3 = bitsAdd64(h0, (s === ptrType$1.nil && $throwNilPointerError(), s)[0], new $Uint64(0, 0)); h0 = _tuple$3[0]; c = _tuple$3[1]; - _tuple$4 = bitsAdd64(h1, s[1], c); + _tuple$4 = bitsAdd64(h1, (s === ptrType$1.nil && $throwNilPointerError(), s)[1], c); h1 = _tuple$4[0]; $clone(binary.LittleEndian, binary.littleEndian).PutUint64($subslice(new sliceType(out), 0, 8), h0); $clone(binary.LittleEndian, binary.littleEndian).PutUint64($subslice(new sliceType(out), 8, 16), h1); @@ -251336,8 +252722,8 @@ $packages["vendor/golang.org/x/crypto/internal/poly1305"] = (function() { lo = _tuple[1]; return [hi, lo]; }; - ptrType$1.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "Sum", name: "Sum", pkg: "", typ: $funcType([ptrType], [], false)}]; - ptrType$2.methods = [{prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "Sum", name: "Sum", pkg: "", typ: $funcType([sliceType], [sliceType], false)}, {prop: "Verify", name: "Verify", pkg: "", typ: $funcType([sliceType], [$Bool], false)}]; + ptrType$3.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "Sum", name: "Sum", pkg: "", typ: $funcType([ptrType$2], [], false)}]; + ptrType$4.methods = [{prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "Sum", name: "Sum", pkg: "", typ: $funcType([sliceType], [sliceType], false)}, {prop: "Verify", name: "Verify", pkg: "", typ: $funcType([sliceType], [$Bool], false)}]; macState.init("vendor/golang.org/x/crypto/internal/poly1305", [{prop: "h", name: "h", embedded: false, exported: false, typ: arrayType, tag: ""}, {prop: "r", name: "r", embedded: false, exported: false, typ: arrayType$1, tag: ""}, {prop: "s", name: "s", embedded: false, exported: false, typ: arrayType$1, tag: ""}]); macGeneric.init("vendor/golang.org/x/crypto/internal/poly1305", [{prop: "macState", name: "macState", embedded: true, exported: false, typ: macState, tag: ""}, {prop: "buffer", name: "buffer", embedded: false, exported: false, typ: arrayType$2, tag: ""}, {prop: "offset", name: "offset", embedded: false, exported: false, typ: $Int, tag: ""}]); uint128.init("vendor/golang.org/x/crypto/internal/poly1305", [{prop: "lo", name: "lo", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "hi", name: "hi", embedded: false, exported: false, typ: $Uint64, tag: ""}]); @@ -251379,22 +252765,14 @@ $packages["vendor/golang.org/x/crypto/chacha20poly1305"] = (function() { arrayType$2 = $arrayType($Uint8, 8); ptrType$1 = $ptrType(chacha20poly1305); $ptrType(chacha20poly1305).prototype.seal = function seal(dst, nonce, plaintext, additionalData) { - var {$24r, _r, additionalData, c, dst, nonce, plaintext, $s, $r, $c} = $restore(this, {dst, nonce, plaintext, additionalData}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var additionalData, c, dst, nonce, plaintext; c = this; - _r = c.sealGeneric(dst, nonce, plaintext, additionalData); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: seal, $c: true, $r, $24r, _r, additionalData, c, dst, nonce, plaintext, $s};return $f; + return c.sealGeneric(dst, nonce, plaintext, additionalData); }; $ptrType(chacha20poly1305).prototype.open = function open(dst, nonce, ciphertext, additionalData) { - var {$24r, _r, additionalData, c, ciphertext, dst, nonce, $s, $r, $c} = $restore(this, {dst, nonce, ciphertext, additionalData}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var additionalData, c, ciphertext, dst, nonce; c = this; - _r = c.openGeneric(dst, nonce, ciphertext, additionalData); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: open, $c: true, $r, $24r, _r, additionalData, c, ciphertext, dst, nonce, $s};return $f; + return c.openGeneric(dst, nonce, ciphertext, additionalData); }; writeWithPadding = function writeWithPadding$1(p, b) { var _r, b, buf, p, padLen, rem; @@ -251413,9 +252791,7 @@ $packages["vendor/golang.org/x/crypto/chacha20poly1305"] = (function() { p.Write(new sliceType(buf)); }; $ptrType(chacha20poly1305).prototype.sealGeneric = function sealGeneric(dst, nonce, plaintext, additionalData) { - var {_r, _tmp, _tmp$1, _tuple, _tuple$1, additionalData, c, ciphertext, dst, nonce, out, p, plaintext, polyKey, ret, s, tag, $s, $r, $c} = $restore(this, {dst, nonce, plaintext, additionalData}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - polyKey = [polyKey]; + var _tmp, _tmp$1, _tuple, _tuple$1, additionalData, c, ciphertext, dst, nonce, out, p, plaintext, polyKey, ret, s, tag; c = this; _tuple = sliceForAppend(dst, plaintext.$length + 16 >> 0); ret = _tuple[0]; @@ -251424,40 +252800,34 @@ $packages["vendor/golang.org/x/crypto/chacha20poly1305"] = (function() { _tmp$1 = $subslice(out, plaintext.$length); ciphertext = _tmp; tag = _tmp$1; - _r = alias.InexactOverlap(out, plaintext); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - /* */ if (_r) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (_r) { */ case 1: + if (alias.InexactOverlap(out, plaintext)) { $panic(new $String("chacha20poly1305: invalid buffer overlap")); - /* } */ case 2: - polyKey[0] = arrayType.zero(); + } + polyKey = arrayType.zero(); _tuple$1 = chacha20.NewUnauthenticatedCipher(new sliceType(c.key), nonce); s = _tuple$1[0]; - $r = s.XORKeyStream(new sliceType(polyKey[0]), new sliceType(polyKey[0])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + s.XORKeyStream(new sliceType(polyKey), new sliceType(polyKey)); s.SetCounter(1); - $r = s.XORKeyStream(ciphertext, plaintext); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - p = poly1305.New(polyKey[0]); + s.XORKeyStream(ciphertext, plaintext); + p = poly1305.New(polyKey); writeWithPadding(p, additionalData); writeWithPadding(p, ciphertext); writeUint64(p, additionalData.$length); writeUint64(p, plaintext.$length); p.Sum($subslice(tag, 0, 0)); - $s = -1; return ret; - /* */ } return; } var $f = {$blk: sealGeneric, $c: true, $r, _r, _tmp, _tmp$1, _tuple, _tuple$1, additionalData, c, ciphertext, dst, nonce, out, p, plaintext, polyKey, ret, s, tag, $s};return $f; + return ret; }; $ptrType(chacha20poly1305).prototype.openGeneric = function openGeneric(dst, nonce, ciphertext, additionalData) { - var {_i, _r, _ref, _tuple, _tuple$1, additionalData, c, ciphertext, dst, i, nonce, out, p, polyKey, ret, s, tag, $s, $r, $c} = $restore(this, {dst, nonce, ciphertext, additionalData}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - polyKey = [polyKey]; + var _i, _ref, _tuple, _tuple$1, additionalData, c, ciphertext, dst, i, nonce, out, p, polyKey, ret, s, tag; c = this; tag = $subslice(ciphertext, (ciphertext.$length - 16 >> 0)); ciphertext = $subslice(ciphertext, 0, (ciphertext.$length - 16 >> 0)); - polyKey[0] = arrayType.zero(); + polyKey = arrayType.zero(); _tuple = chacha20.NewUnauthenticatedCipher(new sliceType(c.key), nonce); s = _tuple[0]; - $r = s.XORKeyStream(new sliceType(polyKey[0]), new sliceType(polyKey[0])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + s.XORKeyStream(new sliceType(polyKey), new sliceType(polyKey)); s.SetCounter(1); - p = poly1305.New(polyKey[0]); + p = poly1305.New(polyKey); writeWithPadding(p, additionalData); writeWithPadding(p, ciphertext); writeUint64(p, additionalData.$length); @@ -251465,12 +252835,9 @@ $packages["vendor/golang.org/x/crypto/chacha20poly1305"] = (function() { _tuple$1 = sliceForAppend(dst, ciphertext.$length); ret = _tuple$1[0]; out = _tuple$1[1]; - _r = alias.InexactOverlap(out, ciphertext); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - /* */ if (_r) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (_r) { */ case 2: + if (alias.InexactOverlap(out, ciphertext)) { $panic(new $String("chacha20poly1305: invalid buffer overlap")); - /* } */ case 3: + } if (!p.Verify(tag)) { _ref = out; _i = 0; @@ -251480,11 +252847,10 @@ $packages["vendor/golang.org/x/crypto/chacha20poly1305"] = (function() { ((i < 0 || i >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + i] = 0); _i++; } - $s = -1; return [sliceType.nil, errOpen]; + return [sliceType.nil, errOpen]; } - $r = s.XORKeyStream(out, ciphertext); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return [ret, $ifaceNil]; - /* */ } return; } var $f = {$blk: openGeneric, $c: true, $r, _i, _r, _ref, _tuple, _tuple$1, additionalData, c, ciphertext, dst, i, nonce, out, p, polyKey, ret, s, tag, $s};return $f; + s.XORKeyStream(out, ciphertext); + return [ret, $ifaceNil]; }; New = function New$1(key) { var key, ret; @@ -251507,8 +252873,7 @@ $packages["vendor/golang.org/x/crypto/chacha20poly1305"] = (function() { return 16; }; $ptrType(chacha20poly1305).prototype.Seal = function Seal$1(dst, nonce, plaintext, additionalData) { - var {$24r, _r, additionalData, c, dst, nonce, plaintext, x, $s, $r, $c} = $restore(this, {dst, nonce, plaintext, additionalData}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var additionalData, c, dst, nonce, plaintext, x; c = this; if (!((nonce.$length === 12))) { $panic(new $String("chacha20poly1305: bad nonce length passed to Seal")); @@ -251516,28 +252881,21 @@ $packages["vendor/golang.org/x/crypto/chacha20poly1305"] = (function() { if ((x = (new $Uint64(0, plaintext.$length)), (x.$high > 63 || (x.$high === 63 && x.$low > 4294967232)))) { $panic(new $String("chacha20poly1305: plaintext too large")); } - _r = c.seal(dst, nonce, plaintext, additionalData); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Seal$1, $c: true, $r, $24r, _r, additionalData, c, dst, nonce, plaintext, x, $s};return $f; + return c.seal(dst, nonce, plaintext, additionalData); }; $ptrType(chacha20poly1305).prototype.Open = function Open$1(dst, nonce, ciphertext, additionalData) { - var {$24r, _r, additionalData, c, ciphertext, dst, nonce, x, $s, $r, $c} = $restore(this, {dst, nonce, ciphertext, additionalData}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var additionalData, c, ciphertext, dst, nonce, x; c = this; if (!((nonce.$length === 12))) { $panic(new $String("chacha20poly1305: bad nonce length passed to Open")); } if (ciphertext.$length < 16) { - $s = -1; return [sliceType.nil, errOpen]; + return [sliceType.nil, errOpen]; } if ((x = (new $Uint64(0, ciphertext.$length)), (x.$high > 63 || (x.$high === 63 && x.$low > 4294967248)))) { $panic(new $String("chacha20poly1305: ciphertext too large")); } - _r = c.open(dst, nonce, ciphertext, additionalData); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Open$1, $c: true, $r, $24r, _r, additionalData, c, ciphertext, dst, nonce, x, $s};return $f; + return c.open(dst, nonce, ciphertext, additionalData); }; sliceForAppend = function sliceForAppend$1(in$1, n) { var head, in$1, n, tail, total; @@ -251678,7 +253036,7 @@ $packages["vendor/golang.org/x/crypto/hkdf"] = (function() { return $pkg; })(); $packages["crypto/tls"] = (function() { - var $pkg = {}, $init, bytes, list, context, crypto, aes, cipher, des, ecdh, ecdsa, ed25519, elliptic, hmac, boring, md5, rand, rc4, rsa, sha1, sha256, sha512, subtle, x509, binary, pem, errors, fmt, hash, cpu, godebug, io, net, os, runtime, strconv, strings, sync, atomic, time, chacha20poly1305, cryptobyte, hkdf, listener, Dialer, sessionState, sessionStateTLS13, finishedHash, keyAgreement, rsaKeyAgreement, ecdheKeyAgreement, serverHandshakeStateTLS13, serverHandshakeState, marshalingFunction, clientHelloMsg, serverHelloMsg, encryptedExtensionsMsg, endOfEarlyDataMsg, keyUpdateMsg, newSessionTicketMsgTLS13, certificateRequestMsgTLS13, certificateMsg, certificateMsgTLS13, serverKeyExchangeMsg, certificateStatusMsg, serverHelloDoneMsg, clientKeyExchangeMsg, finishedMsg, certificateRequestMsg, certificateVerifyMsg, newSessionTicketMsg, helloRequestMsg, transcriptHash, clientHandshakeStateTLS13, clientHandshakeState, Conn, halfConn, permanentError, cbcMode, RecordHeaderError, atLeastReader, recordType, CurveID, keyShare, pskIdentity, ConnectionState, ClientAuthType, ClientSessionState, ClientSessionCache, SignatureScheme, ClientHelloInfo, CertificateRequestInfo, RenegotiationSupport, Config, ticketKey, Certificate, handshakeMessage, CertificateVerificationError, cipherSuite, cipherSuiteTLS13, aead, prefixNonceAEAD, xorNonceAEAD, constantTimeHash, cthWrapper, cacheEntry, certCache, activeCert, alert, binaryMarshaler, sliceType, sliceType$1, ptrType, sliceType$2, sliceType$3, arrayType, sliceType$4, sliceType$5, sliceType$6, sliceType$7, ptrType$1, ptrType$2, sliceType$8, ptrType$3, sliceType$9, ptrType$4, structType, sliceType$10, ptrType$5, sliceType$11, ptrType$6, sliceType$12, ptrType$7, sliceType$13, sliceType$14, arrayType$1, arrayType$2, arrayType$3, arrayType$4, ptrType$8, ptrType$9, ptrType$10, ptrType$11, ptrType$12, ptrType$13, ptrType$14, ptrType$15, ptrType$16, ptrType$17, ptrType$18, ptrType$19, ptrType$20, ptrType$21, ptrType$22, ptrType$23, ptrType$24, ptrType$25, ptrType$26, ptrType$27, ptrType$28, ptrType$29, ptrType$30, ptrType$31, ptrType$32, ptrType$33, ptrType$34, ptrType$35, sliceType$15, ptrType$36, sliceType$16, sliceType$17, ptrType$37, ptrType$38, ptrType$39, ptrType$40, ptrType$41, ptrType$42, ptrType$43, arrayType$5, ptrType$44, arrayType$6, ptrType$45, ptrType$46, ptrType$47, structType$1, arrayType$7, funcType, ptrType$52, ptrType$53, ptrType$54, ptrType$55, ptrType$56, ptrType$57, funcType$1, ptrType$58, ptrType$59, ptrType$60, ptrType$61, ptrType$62, ptrType$63, ptrType$64, funcType$2, funcType$3, ptrType$65, ptrType$66, ptrType$67, ptrType$68, ptrType$69, sliceType$19, funcType$4, mapType, funcType$5, funcType$6, funcType$7, funcType$8, funcType$9, ptrType$71, funcType$10, funcType$11, funcType$12, funcType$13, ptrType$72, ptrType$73, ptrType$74, ptrType$75, fipsSupportedSignatureAlgorithms, testingOnlyForceClientHelloSignatureAlgorithms, testingOnlyForceDowngradeCanary, writerMutex, emptyConfig, emptyConfig$24ptr, masterSecretLabel, keyExpansionLabel, clientFinishedLabel, serverFinishedLabel, errClientKeyExchange, errServerKeyExchange, tlsmaxrsasize, outBufPool, errShutdown, errEarlyCloseWrite, _SignatureScheme_index_8, _CurveID_index_0, _ClientAuthType_index, directSigning, helloRetryRequestRandom, defaultSupportedSignatureAlgorithms, deprecatedSessionTicketKey, supportedVersions, defaultCurvePreferences, errNoCertificates, hasGCMAsmAMD64, hasGCMAsmARM64, hasGCMAsmS390X, hasAESGCMHardwareSupport, disabledCipherSuites, aesgcmCiphers, cipherSuitesTLS13, defaultCipherSuitesTLS13, defaultCipherSuitesTLS13NoAES, cipherSuites, cipherSuitesPreferenceOrder, cipherSuitesPreferenceOrderNoAES, defaultCipherSuitesLen, defaultCipherSuites, clientCertCache, signaturePadding, rsaSignatureSchemes, alertText, Server, Client, NewListener, dial, LoadX509KeyPair, X509KeyPair, parsePrivateKey, splitPreMasterSecret, pHash, prf10, prf12, prfAndHashForVersion, prfForVersion, masterFromPreMasterSecret, keysFromMasterSecret, newFinishedHash, noExportedKeyingMaterial, ekmFromMasterSecret, needFIPS, supportedSignatureAlgorithms, fipsMinVersion, fipsMaxVersion, fipsCurvePreferences, fipsCipherSuites, generateECDHEKey, curveForCurveID, curveIDForCurve, sha1Hash, md5SHA1Hash, hashForServerKeyExchange, cloneHash, illegalClientHelloChange, negotiateALPN, supportsECDHE, clientHelloInfo, addBytesWithLength, addUint64, readUint64, readUint8LengthPrefixed, readUint16LengthPrefixed, readUint24LengthPrefixed, marshalCertificate, unmarshalCertificate, transcriptMsg, checkALPN, checkKeySize, certificateRequestInfoFromMsg, clientSessionCacheKey, hostnameInSNI, extractPadding, roundUp, sliceForAppend, requiresClientCert, supportedVersionsFromMax, defaultConfig, unexpectedMessageError, isSupportedSignatureAlgorithm, selectCipherSuite, aesgcmPreferred, cipherRC4, cipher3DES, cipherAES, macSHA1, macSHA256, aeadAESGCM, aeadAESGCMTLS13, aeadChaCha20Poly1305, newConstantTimeHash, tls10MAC, rsaKA, ecdheECDSAKA, ecdheRSAKA, mutualCipherSuite, cipherSuiteByID, mutualCipherSuiteTLS13, cipherSuiteTLS13ByID, verifyHandshakeSignature, signedMessage, typeAndHashFromSignatureScheme, legacyTypeAndHashFromPublicKey, signatureSchemesForCertificate, selectSignatureScheme, unsupportedCertificateError; + var $pkg = {}, $init, bytes, list, context, crypto, aes, cipher, des, ecdh, ecdsa, ed25519, elliptic, hmac, boring, md5, rand, rc4, rsa, sha1, sha256, sha512, subtle, x509, binary, pem, errors, fmt, hash, cpu, godebug, io, net, os, runtime, strconv, strings, sync, atomic, time, chacha20poly1305, cryptobyte, hkdf, listener, Dialer, SessionState, ClientSessionState, QUICEncryptionLevel, QUICEventKind, QUICEvent, quicState, finishedHash, keyAgreement, rsaKeyAgreement, ecdheKeyAgreement, serverHandshakeStateTLS13, serverHandshakeState, marshalingFunction, clientHelloMsg, serverHelloMsg, encryptedExtensionsMsg, endOfEarlyDataMsg, keyUpdateMsg, newSessionTicketMsgTLS13, certificateRequestMsgTLS13, certificateMsg, certificateMsgTLS13, serverKeyExchangeMsg, certificateStatusMsg, serverHelloDoneMsg, clientKeyExchangeMsg, finishedMsg, certificateRequestMsg, certificateVerifyMsg, newSessionTicketMsg, helloRequestMsg, transcriptHash, clientHandshakeStateTLS13, clientHandshakeState, Conn, halfConn, permanentError, cbcMode, RecordHeaderError, atLeastReader, recordType, CurveID, keyShare, pskIdentity, ConnectionState, ClientAuthType, ClientSessionCache, SignatureScheme, ClientHelloInfo, CertificateRequestInfo, RenegotiationSupport, Config, ticketKey, Certificate, handshakeMessage, CertificateVerificationError, cipherSuite, cipherSuiteTLS13, aead, prefixNonceAEAD, xorNonceAEAD, constantTimeHash, cthWrapper, cacheEntry, certCache, activeCert, AlertError, alert, binaryMarshaler, sliceType, sliceType$1, ptrType, sliceType$2, sliceType$3, arrayType, sliceType$4, sliceType$5, sliceType$6, sliceType$7, ptrType$1, ptrType$2, sliceType$8, ptrType$3, sliceType$9, ptrType$4, structType, sliceType$10, ptrType$5, ptrType$6, sliceType$11, ptrType$7, sliceType$12, ptrType$8, sliceType$13, sliceType$14, arrayType$1, arrayType$2, arrayType$3, arrayType$4, ptrType$9, ptrType$10, ptrType$11, ptrType$12, ptrType$13, ptrType$14, ptrType$15, ptrType$16, ptrType$17, ptrType$18, ptrType$19, ptrType$20, ptrType$21, ptrType$22, ptrType$23, ptrType$24, ptrType$25, sliceType$15, arrayType$5, structType$1, ptrType$27, ptrType$28, ptrType$29, ptrType$30, ptrType$31, ptrType$32, ptrType$33, ptrType$34, ptrType$35, ptrType$36, ptrType$37, ptrType$38, ptrType$39, ptrType$40, sliceType$16, sliceType$17, sliceType$18, ptrType$41, ptrType$42, ptrType$43, ptrType$44, ptrType$45, ptrType$46, ptrType$47, ptrType$48, arrayType$6, ptrType$49, arrayType$7, ptrType$50, ptrType$51, arrayType$8, funcType, ptrType$56, ptrType$57, ptrType$58, ptrType$59, chanType, chanType$1, ptrType$61, funcType$1, ptrType$62, ptrType$63, ptrType$64, ptrType$65, ptrType$66, ptrType$67, ptrType$68, funcType$2, funcType$3, ptrType$69, ptrType$70, ptrType$71, ptrType$72, ptrType$73, sliceType$20, funcType$4, mapType, funcType$5, funcType$6, funcType$7, funcType$8, funcType$9, funcType$10, funcType$11, ptrType$75, funcType$12, funcType$13, funcType$14, funcType$15, ptrType$76, ptrType$77, ptrType$78, ptrType$79, fipsSupportedSignatureAlgorithms, testingOnlyForceClientHelloSignatureAlgorithms, testingOnlyForceDowngradeCanary, writerMutex, emptyConfig, emptyConfig$24ptr, masterSecretLabel, extendedMasterSecretLabel, keyExpansionLabel, clientFinishedLabel, serverFinishedLabel, errClientKeyExchange, errServerKeyExchange, tlsmaxrsasize, outBufPool, errShutdown, errEarlyCloseWrite, _SignatureScheme_index_8, _CurveID_index_0, _ClientAuthType_index, directSigning, defaultSupportedSignatureAlgorithms, helloRetryRequestRandom, deprecatedSessionTicketKey, supportedVersions, defaultCurvePreferences, errNoCertificates, cipherSuites, cipherSuitesTLS13, cipherSuitesPreferenceOrder, cipherSuitesPreferenceOrderNoAES, disabledCipherSuites, defaultCipherSuitesLen, defaultCipherSuites, defaultCipherSuitesTLS13, defaultCipherSuitesTLS13NoAES, hasGCMAsmAMD64, hasGCMAsmARM64, hasGCMAsmS390X, hasAESGCMHardwareSupport, aesgcmCiphers, globalCertCache, signaturePadding, rsaSignatureSchemes, alertText, Server, Client, NewListener, dial, LoadX509KeyPair, X509KeyPair, parsePrivateKey, certificatesToBytesSlice, ParseSessionState, splitPreMasterSecret, pHash, prf10, prf12, prfAndHashForVersion, prfForVersion, masterFromPreMasterSecret, extMasterFromPreMasterSecret, keysFromMasterSecret, newFinishedHash, noExportedKeyingMaterial, ekmFromMasterSecret, needFIPS, supportedSignatureAlgorithms, fipsMinVersion, fipsMaxVersion, fipsCurvePreferences, fipsCipherSuites, generateECDHEKey, curveForCurveID, curveIDForCurve, sha1Hash, md5SHA1Hash, hashForServerKeyExchange, cloneHash, illegalClientHelloChange, negotiateALPN, supportsECDHE, clientHelloInfo, addBytesWithLength, addUint64, readUint64, readUint8LengthPrefixed, readUint16LengthPrefixed, readUint24LengthPrefixed, marshalCertificate, unmarshalCertificate, transcriptMsg, checkALPN, checkKeySize, certificateRequestInfoFromMsg, hostnameInSNI, extractPadding, roundUp, sliceForAppend, requiresClientCert, supportedVersionsFromMax, defaultConfig, unexpectedMessageError, isSupportedSignatureAlgorithm, selectCipherSuite, aesgcmPreferred, cipherRC4, cipher3DES, cipherAES, macSHA1, macSHA256, aeadAESGCM, aeadAESGCMTLS13, aeadChaCha20Poly1305, newConstantTimeHash, tls10MAC, rsaKA, ecdheECDSAKA, ecdheRSAKA, mutualCipherSuite, cipherSuiteByID, mutualCipherSuiteTLS13, cipherSuiteTLS13ByID, verifyHandshakeSignature, signedMessage, typeAndHashFromSignatureScheme, legacyTypeAndHashFromPublicKey, signatureSchemesForCertificate, selectSignatureScheme, unsupportedCertificateError; bytes = $packages["bytes"]; list = $packages["container/list"]; context = $packages["context"]; @@ -251724,7 +253082,7 @@ $packages["crypto/tls"] = (function() { this.$val = this; if (arguments.length === 0) { this.Listener = $ifaceNil; - this.config = ptrType$5.nil; + this.config = ptrType$6.nil; return; } this.Listener = Listener_; @@ -251733,44 +253091,102 @@ $packages["crypto/tls"] = (function() { Dialer = $newType(0, $kindStruct, "tls.Dialer", true, "crypto/tls", true, function(NetDialer_, Config_) { this.$val = this; if (arguments.length === 0) { - this.NetDialer = ptrType$11.nil; - this.Config = ptrType$5.nil; + this.NetDialer = ptrType$12.nil; + this.Config = ptrType$6.nil; return; } this.NetDialer = NetDialer_; this.Config = Config_; }); - sessionState = $newType(0, $kindStruct, "tls.sessionState", true, "crypto/tls", false, function(vers_, cipherSuite_, createdAt_, masterSecret_, certificates_, usedOldKey_) { + SessionState = $newType(0, $kindStruct, "tls.SessionState", true, "crypto/tls", true, function(Extra_, EarlyData_, version_, isClient_, cipherSuite_, createdAt_, secret_, extMasterSecret_, peerCertificates_, activeCertHandles_, ocspResponse_, scts_, verifiedChains_, alpnProtocol_, useBy_, ageAdd_) { this.$val = this; if (arguments.length === 0) { - this.vers = 0; + this.Extra = sliceType$11.nil; + this.EarlyData = false; + this.version = 0; + this.isClient = false; this.cipherSuite = 0; this.createdAt = new $Uint64(0, 0); - this.masterSecret = sliceType$6.nil; - this.certificates = sliceType$11.nil; - this.usedOldKey = false; + this.secret = sliceType$6.nil; + this.extMasterSecret = false; + this.peerCertificates = sliceType$12.nil; + this.activeCertHandles = sliceType$13.nil; + this.ocspResponse = sliceType$6.nil; + this.scts = sliceType$11.nil; + this.verifiedChains = sliceType$14.nil; + this.alpnProtocol = ""; + this.useBy = new $Uint64(0, 0); + this.ageAdd = 0; return; } - this.vers = vers_; + this.Extra = Extra_; + this.EarlyData = EarlyData_; + this.version = version_; + this.isClient = isClient_; this.cipherSuite = cipherSuite_; this.createdAt = createdAt_; - this.masterSecret = masterSecret_; - this.certificates = certificates_; - this.usedOldKey = usedOldKey_; + this.secret = secret_; + this.extMasterSecret = extMasterSecret_; + this.peerCertificates = peerCertificates_; + this.activeCertHandles = activeCertHandles_; + this.ocspResponse = ocspResponse_; + this.scts = scts_; + this.verifiedChains = verifiedChains_; + this.alpnProtocol = alpnProtocol_; + this.useBy = useBy_; + this.ageAdd = ageAdd_; }); - sessionStateTLS13 = $newType(0, $kindStruct, "tls.sessionStateTLS13", true, "crypto/tls", false, function(cipherSuite_, createdAt_, resumptionSecret_, certificate_) { + ClientSessionState = $newType(0, $kindStruct, "tls.ClientSessionState", true, "crypto/tls", true, function(ticket_, session_) { this.$val = this; if (arguments.length === 0) { - this.cipherSuite = 0; - this.createdAt = new $Uint64(0, 0); - this.resumptionSecret = sliceType$6.nil; - this.certificate = new Certificate.ptr(sliceType$11.nil, $ifaceNil, sliceType.nil, sliceType$6.nil, sliceType$11.nil, ptrType$6.nil); + this.ticket = sliceType$6.nil; + this.session = ptrType$21.nil; return; } - this.cipherSuite = cipherSuite_; - this.createdAt = createdAt_; - this.resumptionSecret = resumptionSecret_; - this.certificate = certificate_; + this.ticket = ticket_; + this.session = session_; + }); + QUICEncryptionLevel = $newType(4, $kindInt, "tls.QUICEncryptionLevel", true, "crypto/tls", true, null); + QUICEventKind = $newType(4, $kindInt, "tls.QUICEventKind", true, "crypto/tls", true, null); + QUICEvent = $newType(0, $kindStruct, "tls.QUICEvent", true, "crypto/tls", true, function(Kind_, Level_, Data_, Suite_) { + this.$val = this; + if (arguments.length === 0) { + this.Kind = 0; + this.Level = 0; + this.Data = sliceType$6.nil; + this.Suite = 0; + return; + } + this.Kind = Kind_; + this.Level = Level_; + this.Data = Data_; + this.Suite = Suite_; + }); + quicState = $newType(0, $kindStruct, "tls.quicState", true, "crypto/tls", false, function(events_, nextEvent_, eventArr_, started_, signalc_, blockedc_, cancelc_, cancel_, readbuf_, transportParams_) { + this.$val = this; + if (arguments.length === 0) { + this.events = sliceType$15.nil; + this.nextEvent = 0; + this.eventArr = arrayType$5.zero(); + this.started = false; + this.signalc = $chanNil; + this.blockedc = $chanNil; + this.cancelc = $chanNil; + this.cancel = $throwNilPointerError; + this.readbuf = sliceType$6.nil; + this.transportParams = sliceType$6.nil; + return; + } + this.events = events_; + this.nextEvent = nextEvent_; + this.eventArr = eventArr_; + this.started = started_; + this.signalc = signalc_; + this.blockedc = blockedc_; + this.cancelc = cancelc_; + this.cancel = cancel_; + this.readbuf = readbuf_; + this.transportParams = transportParams_; }); finishedHash = $newType(0, $kindStruct, "tls.finishedHash", true, "crypto/tls", false, function(client_, server_, clientMD5_, serverMD5_, buffer_, version_, prf_) { this.$val = this; @@ -251799,8 +253215,8 @@ $packages["crypto/tls"] = (function() { if (arguments.length === 0) { this.version = 0; this.isRSA = false; - this.key = ptrType$23.nil; - this.ckx = ptrType$25.nil; + this.key = ptrType$29.nil; + this.ckx = ptrType$31.nil; this.preMasterSecret = sliceType$6.nil; return; } @@ -251810,17 +253226,18 @@ $packages["crypto/tls"] = (function() { this.ckx = ckx_; this.preMasterSecret = preMasterSecret_; }); - serverHandshakeStateTLS13 = $newType(0, $kindStruct, "tls.serverHandshakeStateTLS13", true, "crypto/tls", false, function(c_, ctx_, clientHello_, hello_, sentDummyCCS_, usingPSK_, suite_, cert_, sigAlg_, earlySecret_, sharedKey_, handshakeSecret_, masterSecret_, trafficSecret_, transcript_, clientFinished_) { + serverHandshakeStateTLS13 = $newType(0, $kindStruct, "tls.serverHandshakeStateTLS13", true, "crypto/tls", false, function(c_, ctx_, clientHello_, hello_, sentDummyCCS_, usingPSK_, earlyData_, suite_, cert_, sigAlg_, earlySecret_, sharedKey_, handshakeSecret_, masterSecret_, trafficSecret_, transcript_, clientFinished_) { this.$val = this; if (arguments.length === 0) { - this.c = ptrType$8.nil; + this.c = ptrType$9.nil; this.ctx = $ifaceNil; - this.clientHello = ptrType$27.nil; - this.hello = ptrType$31.nil; + this.clientHello = ptrType$33.nil; + this.hello = ptrType$38.nil; this.sentDummyCCS = false; this.usingPSK = false; - this.suite = ptrType$2.nil; - this.cert = ptrType$32.nil; + this.earlyData = false; + this.suite = ptrType$3.nil; + this.cert = ptrType$34.nil; this.sigAlg = 0; this.earlySecret = sliceType$6.nil; this.sharedKey = sliceType$6.nil; @@ -251837,6 +253254,7 @@ $packages["crypto/tls"] = (function() { this.hello = hello_; this.sentDummyCCS = sentDummyCCS_; this.usingPSK = usingPSK_; + this.earlyData = earlyData_; this.suite = suite_; this.cert = cert_; this.sigAlg = sigAlg_; @@ -251851,19 +253269,19 @@ $packages["crypto/tls"] = (function() { serverHandshakeState = $newType(0, $kindStruct, "tls.serverHandshakeState", true, "crypto/tls", false, function(c_, ctx_, clientHello_, hello_, suite_, ecdheOk_, ecSignOk_, rsaDecryptOk_, rsaSignOk_, sessionState_, finishedHash_, masterSecret_, cert_) { this.$val = this; if (arguments.length === 0) { - this.c = ptrType$8.nil; + this.c = ptrType$9.nil; this.ctx = $ifaceNil; - this.clientHello = ptrType$27.nil; - this.hello = ptrType$31.nil; - this.suite = ptrType$3.nil; + this.clientHello = ptrType$33.nil; + this.hello = ptrType$38.nil; + this.suite = ptrType$2.nil; this.ecdheOk = false; this.ecSignOk = false; this.rsaDecryptOk = false; this.rsaSignOk = false; - this.sessionState = ptrType$33.nil; + this.sessionState = ptrType$21.nil; this.finishedHash = new finishedHash.ptr($ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, sliceType$6.nil, 0, $throwNilPointerError); this.masterSecret = sliceType$6.nil; - this.cert = ptrType$32.nil; + this.cert = ptrType$34.nil; return; } this.c = c_; @@ -251881,7 +253299,7 @@ $packages["crypto/tls"] = (function() { this.cert = cert_; }); marshalingFunction = $newType(4, $kindFunc, "tls.marshalingFunction", true, "crypto/tls", false, null); - clientHelloMsg = $newType(0, $kindStruct, "tls.clientHelloMsg", true, "crypto/tls", false, function(raw_, vers_, random_, sessionId_, cipherSuites_, compressionMethods_, serverName_, ocspStapling_, supportedCurves_, supportedPoints_, ticketSupported_, sessionTicket_, supportedSignatureAlgorithms_, supportedSignatureAlgorithmsCert_, secureRenegotiationSupported_, secureRenegotiation_, alpnProtocols_, scts_, supportedVersions_, cookie_, keyShares_, earlyData_, pskModes_, pskIdentities_, pskBinders_) { + clientHelloMsg = $newType(0, $kindStruct, "tls.clientHelloMsg", true, "crypto/tls", false, function(raw_, vers_, random_, sessionId_, cipherSuites_, compressionMethods_, serverName_, ocspStapling_, supportedCurves_, supportedPoints_, ticketSupported_, sessionTicket_, supportedSignatureAlgorithms_, supportedSignatureAlgorithmsCert_, secureRenegotiationSupported_, secureRenegotiation_, extendedMasterSecret_, alpnProtocols_, scts_, supportedVersions_, cookie_, keyShares_, earlyData_, pskModes_, pskIdentities_, pskBinders_, quicTransportParameters_) { this.$val = this; if (arguments.length === 0) { this.raw = sliceType$6.nil; @@ -251900,15 +253318,17 @@ $packages["crypto/tls"] = (function() { this.supportedSignatureAlgorithmsCert = sliceType.nil; this.secureRenegotiationSupported = false; this.secureRenegotiation = sliceType$6.nil; + this.extendedMasterSecret = false; this.alpnProtocols = sliceType$2.nil; this.scts = false; this.supportedVersions = sliceType$3.nil; this.cookie = sliceType$6.nil; - this.keyShares = sliceType$16.nil; + this.keyShares = sliceType$17.nil; this.earlyData = false; this.pskModes = sliceType$6.nil; - this.pskIdentities = sliceType$17.nil; + this.pskIdentities = sliceType$18.nil; this.pskBinders = sliceType$11.nil; + this.quicTransportParameters = sliceType$6.nil; return; } this.raw = raw_; @@ -251927,6 +253347,7 @@ $packages["crypto/tls"] = (function() { this.supportedSignatureAlgorithmsCert = supportedSignatureAlgorithmsCert_; this.secureRenegotiationSupported = secureRenegotiationSupported_; this.secureRenegotiation = secureRenegotiation_; + this.extendedMasterSecret = extendedMasterSecret_; this.alpnProtocols = alpnProtocols_; this.scts = scts_; this.supportedVersions = supportedVersions_; @@ -251936,8 +253357,9 @@ $packages["crypto/tls"] = (function() { this.pskModes = pskModes_; this.pskIdentities = pskIdentities_; this.pskBinders = pskBinders_; + this.quicTransportParameters = quicTransportParameters_; }); - serverHelloMsg = $newType(0, $kindStruct, "tls.serverHelloMsg", true, "crypto/tls", false, function(raw_, vers_, random_, sessionId_, cipherSuite_, compressionMethod_, ocspStapling_, ticketSupported_, secureRenegotiationSupported_, secureRenegotiation_, alpnProtocol_, scts_, supportedVersion_, serverShare_, selectedIdentityPresent_, selectedIdentity_, supportedPoints_, cookie_, selectedGroup_) { + serverHelloMsg = $newType(0, $kindStruct, "tls.serverHelloMsg", true, "crypto/tls", false, function(raw_, vers_, random_, sessionId_, cipherSuite_, compressionMethod_, ocspStapling_, ticketSupported_, secureRenegotiationSupported_, secureRenegotiation_, extendedMasterSecret_, alpnProtocol_, scts_, supportedVersion_, serverShare_, selectedIdentityPresent_, selectedIdentity_, supportedPoints_, cookie_, selectedGroup_) { this.$val = this; if (arguments.length === 0) { this.raw = sliceType$6.nil; @@ -251950,6 +253372,7 @@ $packages["crypto/tls"] = (function() { this.ticketSupported = false; this.secureRenegotiationSupported = false; this.secureRenegotiation = sliceType$6.nil; + this.extendedMasterSecret = false; this.alpnProtocol = ""; this.scts = sliceType$11.nil; this.supportedVersion = 0; @@ -251971,6 +253394,7 @@ $packages["crypto/tls"] = (function() { this.ticketSupported = ticketSupported_; this.secureRenegotiationSupported = secureRenegotiationSupported_; this.secureRenegotiation = secureRenegotiation_; + this.extendedMasterSecret = extendedMasterSecret_; this.alpnProtocol = alpnProtocol_; this.scts = scts_; this.supportedVersion = supportedVersion_; @@ -251981,15 +253405,19 @@ $packages["crypto/tls"] = (function() { this.cookie = cookie_; this.selectedGroup = selectedGroup_; }); - encryptedExtensionsMsg = $newType(0, $kindStruct, "tls.encryptedExtensionsMsg", true, "crypto/tls", false, function(raw_, alpnProtocol_) { + encryptedExtensionsMsg = $newType(0, $kindStruct, "tls.encryptedExtensionsMsg", true, "crypto/tls", false, function(raw_, alpnProtocol_, quicTransportParameters_, earlyData_) { this.$val = this; if (arguments.length === 0) { this.raw = sliceType$6.nil; this.alpnProtocol = ""; + this.quicTransportParameters = sliceType$6.nil; + this.earlyData = false; return; } this.raw = raw_; this.alpnProtocol = alpnProtocol_; + this.quicTransportParameters = quicTransportParameters_; + this.earlyData = earlyData_; }); endOfEarlyDataMsg = $newType(0, $kindStruct, "tls.endOfEarlyDataMsg", true, "crypto/tls", false, function() { this.$val = this; }); keyUpdateMsg = $newType(0, $kindStruct, "tls.keyUpdateMsg", true, "crypto/tls", false, function(raw_, updateRequested_) { @@ -252052,7 +253480,7 @@ $packages["crypto/tls"] = (function() { this.$val = this; if (arguments.length === 0) { this.raw = sliceType$6.nil; - this.certificate = new Certificate.ptr(sliceType$11.nil, $ifaceNil, sliceType.nil, sliceType$6.nil, sliceType$11.nil, ptrType$6.nil); + this.certificate = new Certificate.ptr(sliceType$11.nil, $ifaceNil, sliceType.nil, sliceType$6.nil, sliceType$11.nil, ptrType$7.nil); this.ocspStapling = false; this.scts = false; return; @@ -252148,18 +253576,18 @@ $packages["crypto/tls"] = (function() { clientHandshakeStateTLS13 = $newType(0, $kindStruct, "tls.clientHandshakeStateTLS13", true, "crypto/tls", false, function(c_, ctx_, serverHello_, hello_, ecdheKey_, session_, earlySecret_, binderKey_, certReq_, usingPSK_, sentDummyCCS_, suite_, transcript_, masterSecret_, trafficSecret_) { this.$val = this; if (arguments.length === 0) { - this.c = ptrType$8.nil; + this.c = ptrType$9.nil; this.ctx = $ifaceNil; - this.serverHello = ptrType$31.nil; - this.hello = ptrType$27.nil; - this.ecdheKey = ptrType$23.nil; - this.session = ptrType$39.nil; + this.serverHello = ptrType$38.nil; + this.hello = ptrType$33.nil; + this.ecdheKey = ptrType$29.nil; + this.session = ptrType$21.nil; this.earlySecret = sliceType$6.nil; this.binderKey = sliceType$6.nil; - this.certReq = ptrType$41.nil; + this.certReq = ptrType$44.nil; this.usingPSK = false; this.sentDummyCCS = false; - this.suite = ptrType$2.nil; + this.suite = ptrType$3.nil; this.transcript = $ifaceNil; this.masterSecret = sliceType$6.nil; this.trafficSecret = sliceType$6.nil; @@ -252181,17 +253609,18 @@ $packages["crypto/tls"] = (function() { this.masterSecret = masterSecret_; this.trafficSecret = trafficSecret_; }); - clientHandshakeState = $newType(0, $kindStruct, "tls.clientHandshakeState", true, "crypto/tls", false, function(c_, ctx_, serverHello_, hello_, suite_, finishedHash_, masterSecret_, session_) { + clientHandshakeState = $newType(0, $kindStruct, "tls.clientHandshakeState", true, "crypto/tls", false, function(c_, ctx_, serverHello_, hello_, suite_, finishedHash_, masterSecret_, session_, ticket_) { this.$val = this; if (arguments.length === 0) { - this.c = ptrType$8.nil; + this.c = ptrType$9.nil; this.ctx = $ifaceNil; - this.serverHello = ptrType$31.nil; - this.hello = ptrType$27.nil; - this.suite = ptrType$3.nil; + this.serverHello = ptrType$38.nil; + this.hello = ptrType$33.nil; + this.suite = ptrType$2.nil; this.finishedHash = new finishedHash.ptr($ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, sliceType$6.nil, 0, $throwNilPointerError); this.masterSecret = sliceType$6.nil; - this.session = ptrType$39.nil; + this.session = ptrType$21.nil; + this.ticket = sliceType$6.nil; return; } this.c = c_; @@ -252202,20 +253631,23 @@ $packages["crypto/tls"] = (function() { this.finishedHash = finishedHash_; this.masterSecret = masterSecret_; this.session = session_; + this.ticket = ticket_; }); - Conn = $newType(0, $kindStruct, "tls.Conn", true, "crypto/tls", true, function(conn_, isClient_, handshakeFn_, isHandshakeComplete_, handshakeMutex_, handshakeErr_, vers_, haveVers_, config_, handshakes_, didResume_, cipherSuite_, ocspResponse_, scts_, peerCertificates_, activeCertHandles_, verifiedChains_, serverName_, secureRenegotiation_, ekm_, resumptionSecret_, ticketKeys_, clientFinishedIsFirst_, closeNotifyErr_, closeNotifySent_, clientFinished_, serverFinished_, clientProtocol_, in$28_, out_, rawInput_, input_, hand_, buffering_, sendBuf_, bytesSent_, packetsSent_, retryCount_, activeCall_, tmp_) { + Conn = $newType(0, $kindStruct, "tls.Conn", true, "crypto/tls", true, function(conn_, isClient_, handshakeFn_, quic_, isHandshakeComplete_, handshakeMutex_, handshakeErr_, vers_, haveVers_, config_, handshakes_, extMasterSecret_, didResume_, cipherSuite_, ocspResponse_, scts_, peerCertificates_, activeCertHandles_, verifiedChains_, serverName_, secureRenegotiation_, ekm_, resumptionSecret_, ticketKeys_, clientFinishedIsFirst_, closeNotifyErr_, closeNotifySent_, clientFinished_, serverFinished_, clientProtocol_, in$30_, out_, rawInput_, input_, hand_, buffering_, sendBuf_, bytesSent_, packetsSent_, retryCount_, activeCall_, tmp_) { this.$val = this; if (arguments.length === 0) { this.conn = $ifaceNil; this.isClient = false; this.handshakeFn = $throwNilPointerError; + this.quic = ptrType$5.nil; this.isHandshakeComplete = new atomic.Bool.ptr(new atomic.noCopy.ptr(), 0); this.handshakeMutex = new sync.Mutex.ptr(0, 0); this.handshakeErr = $ifaceNil; this.vers = 0; this.haveVers = false; - this.config = ptrType$5.nil; + this.config = ptrType$6.nil; this.handshakes = 0; + this.extMasterSecret = false; this.didResume = false; this.cipherSuite = 0; this.ocspResponse = sliceType$6.nil; @@ -252234,8 +253666,8 @@ $packages["crypto/tls"] = (function() { this.clientFinished = arrayType$1.zero(); this.serverFinished = arrayType$1.zero(); this.clientProtocol = ""; - this.in$28 = new halfConn.ptr(new sync.Mutex.ptr(0, 0), $ifaceNil, 0, $ifaceNil, $ifaceNil, arrayType$2.zero(), arrayType$3.zero(), $ifaceNil, $ifaceNil, sliceType$6.nil); - this.out = new halfConn.ptr(new sync.Mutex.ptr(0, 0), $ifaceNil, 0, $ifaceNil, $ifaceNil, arrayType$2.zero(), arrayType$3.zero(), $ifaceNil, $ifaceNil, sliceType$6.nil); + this.in$30 = new halfConn.ptr(new sync.Mutex.ptr(0, 0), $ifaceNil, 0, $ifaceNil, $ifaceNil, arrayType$2.zero(), arrayType$3.zero(), $ifaceNil, $ifaceNil, 0, sliceType$6.nil); + this.out = new halfConn.ptr(new sync.Mutex.ptr(0, 0), $ifaceNil, 0, $ifaceNil, $ifaceNil, arrayType$2.zero(), arrayType$3.zero(), $ifaceNil, $ifaceNil, 0, sliceType$6.nil); this.rawInput = new bytes.Buffer.ptr(sliceType$6.nil, 0, 0); this.input = new bytes.Reader.ptr(sliceType$6.nil, new $Int64(0, 0), 0); this.hand = new bytes.Buffer.ptr(sliceType$6.nil, 0, 0); @@ -252251,6 +253683,7 @@ $packages["crypto/tls"] = (function() { this.conn = conn_; this.isClient = isClient_; this.handshakeFn = handshakeFn_; + this.quic = quic_; this.isHandshakeComplete = isHandshakeComplete_; this.handshakeMutex = handshakeMutex_; this.handshakeErr = handshakeErr_; @@ -252258,6 +253691,7 @@ $packages["crypto/tls"] = (function() { this.haveVers = haveVers_; this.config = config_; this.handshakes = handshakes_; + this.extMasterSecret = extMasterSecret_; this.didResume = didResume_; this.cipherSuite = cipherSuite_; this.ocspResponse = ocspResponse_; @@ -252276,7 +253710,7 @@ $packages["crypto/tls"] = (function() { this.clientFinished = clientFinished_; this.serverFinished = serverFinished_; this.clientProtocol = clientProtocol_; - this.in$28 = in$28_; + this.in$30 = in$30_; this.out = out_; this.rawInput = rawInput_; this.input = input_; @@ -252289,7 +253723,7 @@ $packages["crypto/tls"] = (function() { this.activeCall = activeCall_; this.tmp = tmp_; }); - halfConn = $newType(0, $kindStruct, "tls.halfConn", true, "crypto/tls", false, function(Mutex_, err_, version_, cipher_, mac_, seq_, scratchBuf_, nextCipher_, nextMac_, trafficSecret_) { + halfConn = $newType(0, $kindStruct, "tls.halfConn", true, "crypto/tls", false, function(Mutex_, err_, version_, cipher_, mac_, seq_, scratchBuf_, nextCipher_, nextMac_, level_, trafficSecret_) { this.$val = this; if (arguments.length === 0) { this.Mutex = new sync.Mutex.ptr(0, 0); @@ -252301,6 +253735,7 @@ $packages["crypto/tls"] = (function() { this.scratchBuf = arrayType$3.zero(); this.nextCipher = $ifaceNil; this.nextMac = $ifaceNil; + this.level = 0; this.trafficSecret = sliceType$6.nil; return; } @@ -252313,6 +253748,7 @@ $packages["crypto/tls"] = (function() { this.scratchBuf = scratchBuf_; this.nextCipher = nextCipher_; this.nextMac = nextMac_; + this.level = level_; this.trafficSecret = trafficSecret_; }); permanentError = $newType(0, $kindStruct, "tls.permanentError", true, "crypto/tls", false, function(err_) { @@ -252328,7 +253764,7 @@ $packages["crypto/tls"] = (function() { this.$val = this; if (arguments.length === 0) { this.Msg = ""; - this.RecordHeader = arrayType$6.zero(); + this.RecordHeader = arrayType$7.zero(); this.Conn = $ifaceNil; return; } @@ -252401,36 +253837,6 @@ $packages["crypto/tls"] = (function() { this.ekm = ekm_; }); ClientAuthType = $newType(4, $kindInt, "tls.ClientAuthType", true, "crypto/tls", true, null); - ClientSessionState = $newType(0, $kindStruct, "tls.ClientSessionState", true, "crypto/tls", true, function(sessionTicket_, vers_, cipherSuite_, masterSecret_, serverCertificates_, verifiedChains_, receivedAt_, ocspResponse_, scts_, nonce_, useBy_, ageAdd_) { - this.$val = this; - if (arguments.length === 0) { - this.sessionTicket = sliceType$6.nil; - this.vers = 0; - this.cipherSuite = 0; - this.masterSecret = sliceType$6.nil; - this.serverCertificates = sliceType$12.nil; - this.verifiedChains = sliceType$14.nil; - this.receivedAt = new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$9.nil); - this.ocspResponse = sliceType$6.nil; - this.scts = sliceType$11.nil; - this.nonce = sliceType$6.nil; - this.useBy = new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$9.nil); - this.ageAdd = 0; - return; - } - this.sessionTicket = sessionTicket_; - this.vers = vers_; - this.cipherSuite = cipherSuite_; - this.masterSecret = masterSecret_; - this.serverCertificates = serverCertificates_; - this.verifiedChains = verifiedChains_; - this.receivedAt = receivedAt_; - this.ocspResponse = ocspResponse_; - this.scts = scts_; - this.nonce = nonce_; - this.useBy = useBy_; - this.ageAdd = ageAdd_; - }); ClientSessionCache = $newType(8, $kindInterface, "tls.ClientSessionCache", true, "crypto/tls", true, null); SignatureScheme = $newType(2, $kindUint16, "tls.SignatureScheme", true, "crypto/tls", true, null); ClientHelloInfo = $newType(0, $kindStruct, "tls.ClientHelloInfo", true, "crypto/tls", true, function(CipherSuites_, ServerName_, SupportedCurves_, SupportedPoints_, SignatureSchemes_, SupportedProtos_, SupportedVersions_, Conn_, config_, ctx_) { @@ -252444,7 +253850,7 @@ $packages["crypto/tls"] = (function() { this.SupportedProtos = sliceType$2.nil; this.SupportedVersions = sliceType$3.nil; this.Conn = $ifaceNil; - this.config = ptrType$5.nil; + this.config = ptrType$6.nil; this.ctx = $ifaceNil; return; } @@ -252474,7 +253880,7 @@ $packages["crypto/tls"] = (function() { this.ctx = ctx_; }); RenegotiationSupport = $newType(4, $kindInt, "tls.RenegotiationSupport", true, "crypto/tls", true, null); - Config = $newType(0, $kindStruct, "tls.Config", true, "crypto/tls", true, function(Rand_, Time_, Certificates_, NameToCertificate_, GetCertificate_, GetClientCertificate_, GetConfigForClient_, VerifyPeerCertificate_, VerifyConnection_, RootCAs_, NextProtos_, ServerName_, ClientAuth_, ClientCAs_, InsecureSkipVerify_, CipherSuites_, PreferServerCipherSuites_, SessionTicketsDisabled_, SessionTicketKey_, ClientSessionCache_, MinVersion_, MaxVersion_, CurvePreferences_, DynamicRecordSizingDisabled_, Renegotiation_, KeyLogWriter_, mutex_, sessionTicketKeys_, autoSessionTicketKeys_) { + Config = $newType(0, $kindStruct, "tls.Config", true, "crypto/tls", true, function(Rand_, Time_, Certificates_, NameToCertificate_, GetCertificate_, GetClientCertificate_, GetConfigForClient_, VerifyPeerCertificate_, VerifyConnection_, RootCAs_, NextProtos_, ServerName_, ClientAuth_, ClientCAs_, InsecureSkipVerify_, CipherSuites_, PreferServerCipherSuites_, SessionTicketsDisabled_, SessionTicketKey_, ClientSessionCache_, UnwrapSession_, WrapSession_, MinVersion_, MaxVersion_, CurvePreferences_, DynamicRecordSizingDisabled_, Renegotiation_, KeyLogWriter_, mutex_, sessionTicketKeys_, autoSessionTicketKeys_) { this.$val = this; if (arguments.length === 0) { this.Rand = $ifaceNil; @@ -252497,6 +253903,8 @@ $packages["crypto/tls"] = (function() { this.SessionTicketsDisabled = false; this.SessionTicketKey = arrayType.zero(); this.ClientSessionCache = $ifaceNil; + this.UnwrapSession = $throwNilPointerError; + this.WrapSession = $throwNilPointerError; this.MinVersion = 0; this.MaxVersion = 0; this.CurvePreferences = sliceType$4.nil; @@ -252528,6 +253936,8 @@ $packages["crypto/tls"] = (function() { this.SessionTicketsDisabled = SessionTicketsDisabled_; this.SessionTicketKey = SessionTicketKey_; this.ClientSessionCache = ClientSessionCache_; + this.UnwrapSession = UnwrapSession_; + this.WrapSession = WrapSession_; this.MinVersion = MinVersion_; this.MaxVersion = MaxVersion_; this.CurvePreferences = CurvePreferences_; @@ -252538,16 +253948,14 @@ $packages["crypto/tls"] = (function() { this.sessionTicketKeys = sessionTicketKeys_; this.autoSessionTicketKeys = autoSessionTicketKeys_; }); - ticketKey = $newType(0, $kindStruct, "tls.ticketKey", true, "crypto/tls", false, function(keyName_, aesKey_, hmacKey_, created_) { + ticketKey = $newType(0, $kindStruct, "tls.ticketKey", true, "crypto/tls", false, function(aesKey_, hmacKey_, created_) { this.$val = this; if (arguments.length === 0) { - this.keyName = arrayType$4.zero(); this.aesKey = arrayType$4.zero(); this.hmacKey = arrayType$4.zero(); - this.created = new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$9.nil); + this.created = new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$10.nil); return; } - this.keyName = keyName_; this.aesKey = aesKey_; this.hmacKey = hmacKey_; this.created = created_; @@ -252560,7 +253968,7 @@ $packages["crypto/tls"] = (function() { this.SupportedSignatureAlgorithms = sliceType.nil; this.OCSPStaple = sliceType$6.nil; this.SignedCertificateTimestamps = sliceType$11.nil; - this.Leaf = ptrType$6.nil; + this.Leaf = ptrType$7.nil; return; } this.Certificate = Certificate_; @@ -252653,7 +254061,7 @@ $packages["crypto/tls"] = (function() { this.$val = this; if (arguments.length === 0) { this.refs = new atomic.Int64.ptr(new atomic.noCopy.ptr(), new atomic.align64.ptr(), new $Int64(0, 0)); - this.cert = ptrType$6.nil; + this.cert = ptrType$7.nil; return; } this.refs = refs_; @@ -252662,7 +254070,7 @@ $packages["crypto/tls"] = (function() { certCache = $newType(0, $kindStruct, "tls.certCache", true, "crypto/tls", false, function(Map_) { this.$val = this; if (arguments.length === 0) { - this.Map = new sync.Map.ptr(new sync.Mutex.ptr(0, 0), new atomic.Pointer[20 /* sync.readOnly */].ptr(ptrType$4.nil), false, 0); + this.Map = new sync.Map.ptr(new sync.Mutex.ptr(0, 0), new atomic.Pointer[30 /* sync.readOnly */].ptr(ptrType$4.nil), false, 0); return; } this.Map = Map_; @@ -252670,17 +254078,22 @@ $packages["crypto/tls"] = (function() { activeCert = $newType(0, $kindStruct, "tls.activeCert", true, "crypto/tls", false, function(cert_) { this.$val = this; if (arguments.length === 0) { - this.cert = ptrType$6.nil; + this.cert = ptrType$7.nil; return; } this.cert = cert_; }); + AlertError = $newType(1, $kindUint8, "tls.AlertError", true, "crypto/tls", true, null); alert = $newType(1, $kindUint8, "tls.alert", true, "crypto/tls", false, null); binaryMarshaler = $newType(8, $kindInterface, "tls.binaryMarshaler", true, "crypto/tls", false, null); $pkg.listener = listener; $pkg.Dialer = Dialer; - $pkg.sessionState = sessionState; - $pkg.sessionStateTLS13 = sessionStateTLS13; + $pkg.SessionState = SessionState; + $pkg.ClientSessionState = ClientSessionState; + $pkg.QUICEncryptionLevel = QUICEncryptionLevel; + $pkg.QUICEventKind = QUICEventKind; + $pkg.QUICEvent = QUICEvent; + $pkg.quicState = quicState; $pkg.finishedHash = finishedHash; $pkg.keyAgreement = keyAgreement; $pkg.rsaKeyAgreement = rsaKeyAgreement; @@ -252721,7 +254134,6 @@ $packages["crypto/tls"] = (function() { $pkg.pskIdentity = pskIdentity; $pkg.ConnectionState = ConnectionState; $pkg.ClientAuthType = ClientAuthType; - $pkg.ClientSessionState = ClientSessionState; $pkg.ClientSessionCache = ClientSessionCache; $pkg.SignatureScheme = SignatureScheme; $pkg.ClientHelloInfo = ClientHelloInfo; @@ -252742,6 +254154,7 @@ $packages["crypto/tls"] = (function() { $pkg.cacheEntry = cacheEntry; $pkg.certCache = certCache; $pkg.activeCert = activeCert; + $pkg.AlertError = AlertError; $pkg.alert = alert; $pkg.binaryMarshaler = binaryMarshaler; $pkg.$finishSetup = function() { @@ -252756,120 +254169,128 @@ $packages["crypto/tls"] = (function() { sliceType$6 = $sliceType($Uint8); sliceType$7 = $sliceType($emptyInterface); ptrType$1 = $ptrType(sliceType$6); - ptrType$2 = $ptrType(cipherSuiteTLS13); + ptrType$2 = $ptrType(cipherSuite); sliceType$8 = $sliceType(ptrType$2); - ptrType$3 = $ptrType(cipherSuite); + ptrType$3 = $ptrType(cipherSuiteTLS13); sliceType$9 = $sliceType(ptrType$3); ptrType$4 = $ptrType(sync.readOnly); structType = $structType("crypto/tls", [{prop: "scheme", name: "scheme", embedded: false, exported: false, typ: SignatureScheme, tag: ""}, {prop: "minModulusBytes", name: "minModulusBytes", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "maxVersion", name: "maxVersion", embedded: false, exported: false, typ: $Uint16, tag: ""}]); sliceType$10 = $sliceType(structType); - ptrType$5 = $ptrType(Config); + ptrType$5 = $ptrType(quicState); + ptrType$6 = $ptrType(Config); sliceType$11 = $sliceType(sliceType$6); - ptrType$6 = $ptrType(x509.Certificate); - sliceType$12 = $sliceType(ptrType$6); - ptrType$7 = $ptrType(activeCert); - sliceType$13 = $sliceType(ptrType$7); + ptrType$7 = $ptrType(x509.Certificate); + sliceType$12 = $sliceType(ptrType$7); + ptrType$8 = $ptrType(activeCert); + sliceType$13 = $sliceType(ptrType$8); sliceType$14 = $sliceType(sliceType$12); arrayType$1 = $arrayType($Uint8, 12); arrayType$2 = $arrayType($Uint8, 8); arrayType$3 = $arrayType($Uint8, 13); arrayType$4 = $arrayType($Uint8, 16); - ptrType$8 = $ptrType(Conn); - ptrType$9 = $ptrType(time.Location); - ptrType$10 = $ptrType(net.Resolver); - ptrType$11 = $ptrType(net.Dialer); - ptrType$12 = $ptrType(pem.Block); - ptrType$13 = $ptrType(rsa.PublicKey); - ptrType$14 = $ptrType(ecdsa.PublicKey); - ptrType$15 = $ptrType(rsa.PrivateKey); - ptrType$16 = $ptrType(ecdsa.PrivateKey); - ptrType$17 = $ptrType(cryptobyte.Builder); - ptrType$18 = $ptrType($Bool); - ptrType$19 = $ptrType(cryptobyte.String); - ptrType$20 = $ptrType($Uint16); - ptrType$21 = $ptrType($Uint64); - ptrType$22 = $ptrType($Uint8); - ptrType$23 = $ptrType(ecdh.PrivateKey); - ptrType$24 = $ptrType(serverKeyExchangeMsg); - ptrType$25 = $ptrType(clientKeyExchangeMsg); - ptrType$26 = $ptrType(keyShare); - ptrType$27 = $ptrType(clientHelloMsg); - ptrType$28 = $ptrType(certificateMsgTLS13); - ptrType$29 = $ptrType(certificateVerifyMsg); - ptrType$30 = $ptrType(finishedMsg); - ptrType$31 = $ptrType(serverHelloMsg); - ptrType$32 = $ptrType(Certificate); - ptrType$33 = $ptrType(sessionState); - ptrType$34 = $ptrType(certificateRequestMsg); - ptrType$35 = $ptrType(certificateMsg); - sliceType$15 = $sliceType(x509.ExtKeyUsage); - ptrType$36 = $ptrType($Uint32); - sliceType$16 = $sliceType(keyShare); - sliceType$17 = $sliceType(pskIdentity); - ptrType$37 = $ptrType(CurveID); - ptrType$38 = $ptrType(SignatureScheme); - ptrType$39 = $ptrType(ClientSessionState); - ptrType$40 = $ptrType(encryptedExtensionsMsg); - ptrType$41 = $ptrType(certificateRequestMsgTLS13); - ptrType$42 = $ptrType(certificateStatusMsg); - ptrType$43 = $ptrType(serverHelloDoneMsg); - arrayType$5 = $arrayType($Uint8, 24); - ptrType$44 = $ptrType(newSessionTicketMsg); - arrayType$6 = $arrayType($Uint8, 5); - ptrType$45 = $ptrType(helloRequestMsg); - ptrType$46 = $ptrType(newSessionTicketMsgTLS13); - ptrType$47 = $ptrType(keyUpdateMsg); + ptrType$9 = $ptrType(Conn); + ptrType$10 = $ptrType(time.Location); + ptrType$11 = $ptrType(net.Resolver); + ptrType$12 = $ptrType(net.Dialer); + ptrType$13 = $ptrType(pem.Block); + ptrType$14 = $ptrType(rsa.PublicKey); + ptrType$15 = $ptrType(ecdsa.PublicKey); + ptrType$16 = $ptrType(rsa.PrivateKey); + ptrType$17 = $ptrType(ecdsa.PrivateKey); + ptrType$18 = $ptrType(cryptobyte.Builder); + ptrType$19 = $ptrType($Bool); + ptrType$20 = $ptrType(cryptobyte.String); + ptrType$21 = $ptrType(SessionState); + ptrType$22 = $ptrType($Uint16); + ptrType$23 = $ptrType($Uint8); + ptrType$24 = $ptrType($Uint64); + ptrType$25 = $ptrType($Uint32); + sliceType$15 = $sliceType(QUICEvent); + arrayType$5 = $arrayType(QUICEvent, 8); structType$1 = $structType("", []); - arrayType$7 = $arrayType($Uint8, 64); - funcType = $funcType([ptrType$7], [], false); - ptrType$52 = $ptrType(cacheEntry); - ptrType$53 = $ptrType(ed25519.PrivateKey); - ptrType$54 = $ptrType(listener); - ptrType$55 = $ptrType(Dialer); - ptrType$56 = $ptrType(sessionStateTLS13); - ptrType$57 = $ptrType(finishedHash); + ptrType$27 = $ptrType(alert); + ptrType$28 = $ptrType(QUICEvent); + ptrType$29 = $ptrType(ecdh.PrivateKey); + ptrType$30 = $ptrType(serverKeyExchangeMsg); + ptrType$31 = $ptrType(clientKeyExchangeMsg); + ptrType$32 = $ptrType(keyShare); + ptrType$33 = $ptrType(clientHelloMsg); + ptrType$34 = $ptrType(Certificate); + ptrType$35 = $ptrType(certificateMsgTLS13); + ptrType$36 = $ptrType(certificateVerifyMsg); + ptrType$37 = $ptrType(finishedMsg); + ptrType$38 = $ptrType(serverHelloMsg); + ptrType$39 = $ptrType(certificateRequestMsg); + ptrType$40 = $ptrType(certificateMsg); + sliceType$16 = $sliceType(x509.ExtKeyUsage); + sliceType$17 = $sliceType(keyShare); + sliceType$18 = $sliceType(pskIdentity); + ptrType$41 = $ptrType(CurveID); + ptrType$42 = $ptrType(encryptedExtensionsMsg); + ptrType$43 = $ptrType(newSessionTicketMsgTLS13); + ptrType$44 = $ptrType(certificateRequestMsgTLS13); + ptrType$45 = $ptrType(certificateStatusMsg); + ptrType$46 = $ptrType(SignatureScheme); + ptrType$47 = $ptrType(ClientSessionState); + ptrType$48 = $ptrType(serverHelloDoneMsg); + arrayType$6 = $arrayType($Uint8, 24); + ptrType$49 = $ptrType(newSessionTicketMsg); + arrayType$7 = $arrayType($Uint8, 5); + ptrType$50 = $ptrType(helloRequestMsg); + ptrType$51 = $ptrType(keyUpdateMsg); + arrayType$8 = $arrayType($Uint8, 64); + funcType = $funcType([ptrType$8], [], false); + ptrType$56 = $ptrType(cacheEntry); + ptrType$57 = $ptrType(ed25519.PrivateKey); + ptrType$58 = $ptrType(listener); + ptrType$59 = $ptrType(Dialer); + chanType = $chanType(structType$1, false, false); + chanType$1 = $chanType(structType$1, false, true); + ptrType$61 = $ptrType(finishedHash); funcType$1 = $funcType([sliceType$6, sliceType$6, sliceType$6, sliceType$6], [], false); - ptrType$58 = $ptrType(ecdheKeyAgreement); - ptrType$59 = $ptrType(serverHandshakeStateTLS13); - ptrType$60 = $ptrType(serverHandshakeState); - ptrType$61 = $ptrType(endOfEarlyDataMsg); - ptrType$62 = $ptrType(clientHandshakeStateTLS13); - ptrType$63 = $ptrType(clientHandshakeState); - ptrType$64 = $ptrType(CertificateRequestInfo); + ptrType$62 = $ptrType(ecdheKeyAgreement); + ptrType$63 = $ptrType(serverHandshakeStateTLS13); + ptrType$64 = $ptrType(serverHandshakeState); + ptrType$65 = $ptrType(endOfEarlyDataMsg); + ptrType$66 = $ptrType(clientHandshakeStateTLS13); + ptrType$67 = $ptrType(clientHandshakeState); + ptrType$68 = $ptrType(CertificateRequestInfo); funcType$2 = $funcType([context.Context], [$error], false); funcType$3 = $funcType([$String, sliceType$6, $Int], [sliceType$6, $error], false); - ptrType$65 = $ptrType(halfConn); - ptrType$66 = $ptrType(permanentError); - ptrType$67 = $ptrType(atLeastReader); - ptrType$68 = $ptrType(ConnectionState); - ptrType$69 = $ptrType(ClientHelloInfo); - sliceType$19 = $sliceType(arrayType); + ptrType$69 = $ptrType(halfConn); + ptrType$70 = $ptrType(permanentError); + ptrType$71 = $ptrType(atLeastReader); + ptrType$72 = $ptrType(ConnectionState); + ptrType$73 = $ptrType(ClientHelloInfo); + sliceType$20 = $sliceType(arrayType); funcType$4 = $funcType([], [time.Time], false); - mapType = $mapType($String, ptrType$32); - funcType$5 = $funcType([ptrType$69], [ptrType$32, $error], false); - funcType$6 = $funcType([ptrType$64], [ptrType$32, $error], false); - funcType$7 = $funcType([ptrType$69], [ptrType$5, $error], false); + mapType = $mapType($String, ptrType$34); + funcType$5 = $funcType([ptrType$73], [ptrType$34, $error], false); + funcType$6 = $funcType([ptrType$68], [ptrType$34, $error], false); + funcType$7 = $funcType([ptrType$73], [ptrType$6, $error], false); funcType$8 = $funcType([sliceType$11, sliceType$14], [$error], false); funcType$9 = $funcType([ConnectionState], [$error], false); - ptrType$71 = $ptrType(CertificateVerificationError); - funcType$10 = $funcType([$Uint16], [keyAgreement], false); - funcType$11 = $funcType([sliceType$6, sliceType$6, $Bool], [$emptyInterface], false); - funcType$12 = $funcType([sliceType$6], [hash.Hash], false); - funcType$13 = $funcType([sliceType$6, sliceType$6], [aead], false); - ptrType$72 = $ptrType(prefixNonceAEAD); - ptrType$73 = $ptrType(xorNonceAEAD); - ptrType$74 = $ptrType(cthWrapper); - ptrType$75 = $ptrType(certCache); + funcType$10 = $funcType([sliceType$6, ConnectionState], [ptrType$21, $error], false); + funcType$11 = $funcType([ConnectionState, ptrType$21], [sliceType$6, $error], false); + ptrType$75 = $ptrType(CertificateVerificationError); + funcType$12 = $funcType([$Uint16], [keyAgreement], false); + funcType$13 = $funcType([sliceType$6, sliceType$6, $Bool], [$emptyInterface], false); + funcType$14 = $funcType([sliceType$6], [hash.Hash], false); + funcType$15 = $funcType([sliceType$6, sliceType$6], [aead], false); + ptrType$76 = $ptrType(prefixNonceAEAD); + ptrType$77 = $ptrType(xorNonceAEAD); + ptrType$78 = $ptrType(cthWrapper); + ptrType$79 = $ptrType(certCache); Server = function Server$1(conn, config) { var c, config, conn; - c = new Conn.ptr(conn, false, $throwNilPointerError, new atomic.Bool.ptr(new atomic.noCopy.ptr(), 0), new sync.Mutex.ptr(0, 0), $ifaceNil, 0, false, config, 0, false, 0, sliceType$6.nil, sliceType$11.nil, sliceType$12.nil, sliceType$13.nil, sliceType$14.nil, "", false, $throwNilPointerError, sliceType$6.nil, sliceType$5.nil, false, $ifaceNil, false, arrayType$1.zero(), arrayType$1.zero(), "", new halfConn.ptr(new sync.Mutex.ptr(0, 0), $ifaceNil, 0, $ifaceNil, $ifaceNil, arrayType$2.zero(), arrayType$3.zero(), $ifaceNil, $ifaceNil, sliceType$6.nil), new halfConn.ptr(new sync.Mutex.ptr(0, 0), $ifaceNil, 0, $ifaceNil, $ifaceNil, arrayType$2.zero(), arrayType$3.zero(), $ifaceNil, $ifaceNil, sliceType$6.nil), new bytes.Buffer.ptr(sliceType$6.nil, 0, 0), new bytes.Reader.ptr(sliceType$6.nil, new $Int64(0, 0), 0), new bytes.Buffer.ptr(sliceType$6.nil, 0, 0), false, sliceType$6.nil, new $Int64(0, 0), new $Int64(0, 0), 0, new atomic.Int32.ptr(new atomic.noCopy.ptr(), 0), arrayType$4.zero()); + c = new Conn.ptr(conn, false, $throwNilPointerError, ptrType$5.nil, new atomic.Bool.ptr(new atomic.noCopy.ptr(), 0), new sync.Mutex.ptr(0, 0), $ifaceNil, 0, false, config, 0, false, false, 0, sliceType$6.nil, sliceType$11.nil, sliceType$12.nil, sliceType$13.nil, sliceType$14.nil, "", false, $throwNilPointerError, sliceType$6.nil, sliceType$5.nil, false, $ifaceNil, false, arrayType$1.zero(), arrayType$1.zero(), "", new halfConn.ptr(new sync.Mutex.ptr(0, 0), $ifaceNil, 0, $ifaceNil, $ifaceNil, arrayType$2.zero(), arrayType$3.zero(), $ifaceNil, $ifaceNil, 0, sliceType$6.nil), new halfConn.ptr(new sync.Mutex.ptr(0, 0), $ifaceNil, 0, $ifaceNil, $ifaceNil, arrayType$2.zero(), arrayType$3.zero(), $ifaceNil, $ifaceNil, 0, sliceType$6.nil), new bytes.Buffer.ptr(sliceType$6.nil, 0, 0), new bytes.Reader.ptr(sliceType$6.nil, new $Int64(0, 0), 0), new bytes.Buffer.ptr(sliceType$6.nil, 0, 0), false, sliceType$6.nil, new $Int64(0, 0), new $Int64(0, 0), 0, new atomic.Int32.ptr(new atomic.noCopy.ptr(), 0), arrayType$4.zero()); c.handshakeFn = $methodVal(c, "serverHandshake"); return c; }; $pkg.Server = Server; Client = function Client$1(conn, config) { var c, config, conn; - c = new Conn.ptr(conn, true, $throwNilPointerError, new atomic.Bool.ptr(new atomic.noCopy.ptr(), 0), new sync.Mutex.ptr(0, 0), $ifaceNil, 0, false, config, 0, false, 0, sliceType$6.nil, sliceType$11.nil, sliceType$12.nil, sliceType$13.nil, sliceType$14.nil, "", false, $throwNilPointerError, sliceType$6.nil, sliceType$5.nil, false, $ifaceNil, false, arrayType$1.zero(), arrayType$1.zero(), "", new halfConn.ptr(new sync.Mutex.ptr(0, 0), $ifaceNil, 0, $ifaceNil, $ifaceNil, arrayType$2.zero(), arrayType$3.zero(), $ifaceNil, $ifaceNil, sliceType$6.nil), new halfConn.ptr(new sync.Mutex.ptr(0, 0), $ifaceNil, 0, $ifaceNil, $ifaceNil, arrayType$2.zero(), arrayType$3.zero(), $ifaceNil, $ifaceNil, sliceType$6.nil), new bytes.Buffer.ptr(sliceType$6.nil, 0, 0), new bytes.Reader.ptr(sliceType$6.nil, new $Int64(0, 0), 0), new bytes.Buffer.ptr(sliceType$6.nil, 0, 0), false, sliceType$6.nil, new $Int64(0, 0), new $Int64(0, 0), 0, new atomic.Int32.ptr(new atomic.noCopy.ptr(), 0), arrayType$4.zero()); + c = new Conn.ptr(conn, true, $throwNilPointerError, ptrType$5.nil, new atomic.Bool.ptr(new atomic.noCopy.ptr(), 0), new sync.Mutex.ptr(0, 0), $ifaceNil, 0, false, config, 0, false, false, 0, sliceType$6.nil, sliceType$11.nil, sliceType$12.nil, sliceType$13.nil, sliceType$14.nil, "", false, $throwNilPointerError, sliceType$6.nil, sliceType$5.nil, false, $ifaceNil, false, arrayType$1.zero(), arrayType$1.zero(), "", new halfConn.ptr(new sync.Mutex.ptr(0, 0), $ifaceNil, 0, $ifaceNil, $ifaceNil, arrayType$2.zero(), arrayType$3.zero(), $ifaceNil, $ifaceNil, 0, sliceType$6.nil), new halfConn.ptr(new sync.Mutex.ptr(0, 0), $ifaceNil, 0, $ifaceNil, $ifaceNil, arrayType$2.zero(), arrayType$3.zero(), $ifaceNil, $ifaceNil, 0, sliceType$6.nil), new bytes.Buffer.ptr(sliceType$6.nil, 0, 0), new bytes.Reader.ptr(sliceType$6.nil, new $Int64(0, 0), 0), new bytes.Buffer.ptr(sliceType$6.nil, 0, 0), false, sliceType$6.nil, new $Int64(0, 0), new $Int64(0, 0), 0, new atomic.Int32.ptr(new atomic.noCopy.ptr(), 0), arrayType$4.zero()); c.handshakeFn = $methodVal(c, "clientHandshake"); return c; }; @@ -252890,7 +254311,7 @@ $packages["crypto/tls"] = (function() { }; NewListener = function NewListener$1(inner, config) { var config, inner, l; - l = new listener.ptr($ifaceNil, ptrType$5.nil); + l = new listener.ptr($ifaceNil, ptrType$6.nil); l.Listener = inner; l.config = config; return l; @@ -252926,7 +254347,7 @@ $packages["crypto/tls"] = (function() { /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 8; continue; } /* */ $s = 9; continue; /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 8: - $24r = [ptrType$8.nil, err]; + $24r = [ptrType$9.nil, err]; $s = 10; case 10: return $24r; /* } */ case 9: colonPos = strings.LastIndex(addr, ":"); @@ -252934,7 +254355,7 @@ $packages["crypto/tls"] = (function() { colonPos = addr.length; } hostname = $substring(addr, 0, colonPos); - if (config === ptrType$5.nil) { + if (config === ptrType$6.nil) { config = defaultConfig(); } /* */ if (config.ServerName === "") { $s = 11; continue; } @@ -252953,12 +254374,12 @@ $packages["crypto/tls"] = (function() { /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 15: _r$5 = rawConn.Close(); /* */ $s = 17; case 17: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _r$5; - $24r$1 = [ptrType$8.nil, err$1]; + $24r$1 = [ptrType$9.nil, err$1]; $s = 18; case 18: return $24r$1; /* } */ case 16: $24r$2 = [conn, $ifaceNil]; $s = 19; case 19: return $24r$2; - /* */ } return; } } catch(err) { $err = err; $s = -1; return [ptrType$8.nil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: dial$1, $c: true, $r, $24r, $24r$1, $24r$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, _tuple$2, addr, c, cancel, cancel$1, colonPos, config, conn, ctx, err, err$1, hostname, netDialer, network, rawConn, x, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; return [ptrType$9.nil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: dial$1, $c: true, $r, $24r, $24r$1, $24r$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, _tuple$2, addr, c, cancel, cancel$1, colonPos, config, conn, ctx, err, err$1, hostname, netDialer, network, rawConn, x, $s, $deferred};return $f; } } }; $ptrType(Dialer).prototype.Dial = function Dial$2(network, addr) { var {$24r, _r, addr, d, network, $s, $r, $c} = $restore(this, {network, addr}); @@ -252972,10 +254393,10 @@ $packages["crypto/tls"] = (function() { $ptrType(Dialer).prototype.netDialer = function netDialer() { var d; d = this; - if (!(d.NetDialer === ptrType$11.nil)) { + if (!(d.NetDialer === ptrType$12.nil)) { return d.NetDialer; } - return new net.Dialer.ptr(new time.Duration(0, 0), new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$9.nil), $ifaceNil, false, new time.Duration(0, 0), new time.Duration(0, 0), ptrType$10.nil, $chanNil, $throwNilPointerError, $throwNilPointerError); + return new net.Dialer.ptr(new time.Duration(0, 0), new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$10.nil), $ifaceNil, false, new time.Duration(0, 0), new time.Duration(0, 0), ptrType$11.nil, $chanNil, $throwNilPointerError, $throwNilPointerError, 0); }; $ptrType(Dialer).prototype.DialContext = function DialContext(ctx, network, addr) { var {_r, _tuple, addr, c, ctx, d, err, network, $s, $r, $c} = $restore(this, {ctx, network, addr}); @@ -252999,14 +254420,14 @@ $packages["crypto/tls"] = (function() { certPEMBlock = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [new Certificate.ptr(sliceType$11.nil, $ifaceNil, sliceType.nil, sliceType$6.nil, sliceType$11.nil, ptrType$6.nil), err]; + $s = -1; return [new Certificate.ptr(sliceType$11.nil, $ifaceNil, sliceType.nil, sliceType$6.nil, sliceType$11.nil, ptrType$7.nil), err]; } _r$1 = os.ReadFile(keyFile); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$1 = _r$1; keyPEMBlock = _tuple$1[0]; err = _tuple$1[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [new Certificate.ptr(sliceType$11.nil, $ifaceNil, sliceType.nil, sliceType$6.nil, sliceType$11.nil, ptrType$6.nil), err]; + $s = -1; return [new Certificate.ptr(sliceType$11.nil, $ifaceNil, sliceType.nil, sliceType$6.nil, sliceType$11.nil, ptrType$7.nil), err]; } _r$2 = X509KeyPair(certPEMBlock, keyPEMBlock); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $24r = _r$2; @@ -253019,17 +254440,17 @@ $packages["crypto/tls"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: fail = (function X509KeyPair·func1(err) { var err; - return [new Certificate.ptr(sliceType$11.nil, $ifaceNil, sliceType.nil, sliceType$6.nil, sliceType$11.nil, ptrType$6.nil), err]; + return [new Certificate.ptr(sliceType$11.nil, $ifaceNil, sliceType.nil, sliceType$6.nil, sliceType$11.nil, ptrType$7.nil), err]; }); - cert = new Certificate.ptr(sliceType$11.nil, $ifaceNil, sliceType.nil, sliceType$6.nil, sliceType$11.nil, ptrType$6.nil); + cert = new Certificate.ptr(sliceType$11.nil, $ifaceNil, sliceType.nil, sliceType$6.nil, sliceType$11.nil, ptrType$7.nil); skippedBlockTypes = sliceType$2.nil; /* while (true) { */ case 1: - certDERBlock = ptrType$12.nil; + certDERBlock = ptrType$13.nil; _r = pem.Decode(certPEMBlock); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; certDERBlock = _tuple[0]; certPEMBlock = _tuple[1]; - if (certDERBlock === ptrType$12.nil) { + if (certDERBlock === ptrType$13.nil) { /* break; */ $s = 2; continue; } if (certDERBlock.Type === "CERTIFICATE") { @@ -253062,15 +254483,15 @@ $packages["crypto/tls"] = (function() { $s = 16; case 16: return $24r$2; /* } */ case 5: skippedBlockTypes = $subslice(skippedBlockTypes, 0, 0); - keyDERBlock = ptrType$12.nil; + keyDERBlock = ptrType$13.nil; /* while (true) { */ case 17: _r$5 = pem.Decode(keyPEMBlock); /* */ $s = 19; case 19: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _tuple$1 = _r$5; keyDERBlock = _tuple$1[0]; keyPEMBlock = _tuple$1[1]; - /* */ if (keyDERBlock === ptrType$12.nil) { $s = 20; continue; } + /* */ if (keyDERBlock === ptrType$13.nil) { $s = 20; continue; } /* */ $s = 21; continue; - /* if (keyDERBlock === ptrType$12.nil) { */ case 20: + /* if (keyDERBlock === ptrType$13.nil) { */ case 20: /* */ if (skippedBlockTypes.$length === 0) { $s = 22; continue; } /* */ $s = 23; continue; /* if (skippedBlockTypes.$length === 0) { */ case 22: @@ -253119,13 +254540,13 @@ $packages["crypto/tls"] = (function() { $s = 42; case 42: return $24r$7; /* } */ case 40: _ref = x509Cert.PublicKey; - /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 43; continue; } - /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 44; continue; } + /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 43; continue; } + /* */ if ($assertType(_ref, ptrType$15, true)[1]) { $s = 44; continue; } /* */ if ($assertType(_ref, ed25519.PublicKey, true)[1]) { $s = 45; continue; } /* */ $s = 46; continue; - /* if ($assertType(_ref, ptrType$13, true)[1]) { */ case 43: + /* if ($assertType(_ref, ptrType$14, true)[1]) { */ case 43: pub = _ref.$val; - _tuple$4 = $assertType(cert.PrivateKey, ptrType$15, true); + _tuple$4 = $assertType(cert.PrivateKey, ptrType$16, true); priv = _tuple$4[0]; ok = _tuple$4[1]; /* */ if (!ok) { $s = 48; continue; } @@ -253143,9 +254564,9 @@ $packages["crypto/tls"] = (function() { $s = 55; case 55: return $24r$9; /* } */ case 53: $s = 47; continue; - /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 44: + /* } else if ($assertType(_ref, ptrType$15, true)[1]) { */ case 44: pub$1 = _ref.$val; - _tuple$5 = $assertType(cert.PrivateKey, ptrType$16, true); + _tuple$5 = $assertType(cert.PrivateKey, ptrType$17, true); priv$1 = _tuple$5[0]; ok$1 = _tuple$5[1]; /* */ if (!ok$1) { $s = 56; continue; } @@ -253209,7 +254630,7 @@ $packages["crypto/tls"] = (function() { err$1 = _tuple$1[1]; if ($interfaceIsEqual(err$1, $ifaceNil)) { _ref = key$1; - if ($assertType(_ref, ptrType$15, true)[1] || $assertType(_ref, ptrType$16, true)[1] || $assertType(_ref, ed25519.PrivateKey, true)[1]) { + if ($assertType(_ref, ptrType$16, true)[1] || $assertType(_ref, ptrType$17, true)[1] || $assertType(_ref, ed25519.PrivateKey, true)[1]) { key$2 = _ref; $s = -1; return [key$2, $ifaceNil]; } else { @@ -253227,113 +254648,306 @@ $packages["crypto/tls"] = (function() { $s = -1; return [$ifaceNil, errors.New("tls: failed to parse private key")]; /* */ } return; } var $f = {$blk: parsePrivateKey$1, $c: true, $r, _r, _r$1, _r$2, _ref, _tuple, _tuple$1, _tuple$2, der, err, err$1, err$2, key, key$1, key$2, key$3, key$4, $s};return $f; }; - $ptrType(sessionState).prototype.marshal = function marshal() { - var {b, m, $s, $r, $c} = $restore(this, {}); + $ptrType(SessionState).prototype.Bytes = function Bytes() { + var {b, s, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: b = [b]; - m = [m]; - m[0] = this; - b[0] = new cryptobyte.Builder.ptr($ifaceNil, sliceType$6.nil, false, ptrType$17.nil, 0, 0, false, ptrType$18.nil); - b[0].AddUint16(m[0].vers); - b[0].AddUint16(m[0].cipherSuite); - addUint64(b[0], m[0].createdAt); - $r = b[0].AddUint16LengthPrefixed((function(b, m) { return function sessionState·marshal·func1(b$1) { + s = [s]; + s[0] = this; + b[0] = new cryptobyte.Builder.ptr($ifaceNil, sliceType$6.nil, false, ptrType$18.nil, 0, 0, false, ptrType$19.nil); + b[0].AddUint16(s[0].version); + if (s[0].isClient) { + b[0].AddUint8(2); + } else { + b[0].AddUint8(1); + } + b[0].AddUint16(s[0].cipherSuite); + addUint64(b[0], s[0].createdAt); + $r = b[0].AddUint8LengthPrefixed((function(b, s) { return function SessionState·Bytes·func1(b$1) { var b$1; - b$1.AddBytes(m[0].masterSecret); - }; })(b, m)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = b[0].AddUint24LengthPrefixed((function(b, m) { return function sessionState·marshal·func2(b$1) { - var {_i, _ref, b$1, cert, $s, $r, $c} = $restore(this, {b$1}); + b$1.AddBytes(s[0].secret); + }; })(b, s)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = b[0].AddUint24LengthPrefixed((function(b, s) { return function SessionState·Bytes·func2(b$1) { + var {_i, _ref, b$1, extra, $s, $r, $c} = $restore(this, {b$1}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - cert = [cert]; - _ref = m[0].certificates; + extra = [extra]; + _ref = s[0].Extra; _i = 0; /* while (true) { */ case 1: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - cert[0] = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - $r = b$1.AddUint24LengthPrefixed((function(b, cert, m) { return function sessionState·marshal·func2·func1(b$2) { + extra[0] = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = b$1.AddUint24LengthPrefixed((function(b, extra, s) { return function SessionState·Bytes·func2·func1(b$2) { var b$2; - b$2.AddBytes(cert[0]); - }; })(b, cert, m)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + b$2.AddBytes(extra[0]); + }; })(b, extra, s)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: SessionState·Bytes·func2, $c: true, $r, _i, _ref, b$1, extra, $s};return $f; + }; })(b, s)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (s[0].extMasterSecret) { + b[0].AddUint8(1); + } else { + b[0].AddUint8(0); + } + if (s[0].EarlyData) { + b[0].AddUint8(1); + } else { + b[0].AddUint8(0); + } + $r = marshalCertificate(b[0], $clone(new Certificate.ptr(certificatesToBytesSlice(s[0].peerCertificates), $ifaceNil, sliceType.nil, s[0].ocspResponse, s[0].scts, ptrType$7.nil), Certificate)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = b[0].AddUint24LengthPrefixed((function(b, s) { return function SessionState·Bytes·func3(b$1) { + var {_i, _ref, b$1, chain, $s, $r, $c} = $restore(this, {b$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + chain = [chain]; + _ref = s[0].verifiedChains; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + chain[0] = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = b$1.AddUint24LengthPrefixed((function(b, chain, s) { return function SessionState·Bytes·func3·func1(b$2) { + var {_i$1, _ref$1, b$2, cert, $s, $r, $c} = $restore(this, {b$2}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + cert = [cert]; + if (chain[0].$length === 0) { + b$2.SetError(errors.New("tls: internal error: empty verified chain")); + $s = -1; return; + } + _ref$1 = $subslice(chain[0], 1); + _i$1 = 0; + /* while (true) { */ case 1: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 2; continue; } + cert[0] = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + $r = b$2.AddUint24LengthPrefixed((function(b, cert, chain, s) { return function SessionState·Bytes·func3·func1·func1(b$3) { + var b$3; + b$3.AddBytes(cert[0].Raw); + }; })(b, cert, chain, s)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: SessionState·Bytes·func3·func1, $c: true, $r, _i$1, _ref$1, b$2, cert, $s};return $f; + }; })(b, chain, s)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _i++; $s = 1; continue; case 2: $s = -1; return; - /* */ } return; } var $f = {$blk: sessionState·marshal·func2, $c: true, $r, _i, _ref, b$1, cert, $s};return $f; - }; })(b, m)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } var $f = {$blk: SessionState·Bytes·func3, $c: true, $r, _i, _ref, b$1, chain, $s};return $f; + }; })(b, s)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (s[0].EarlyData) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (s[0].EarlyData) { */ case 5: + $r = b[0].AddUint8LengthPrefixed((function(b, s) { return function SessionState·Bytes·func4(b$1) { + var b$1; + b$1.AddBytes((new sliceType$6($stringToBytes(s[0].alpnProtocol)))); + }; })(b, s)); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + if (s[0].isClient) { + if (s[0].version >= 772) { + addUint64(b[0], s[0].useBy); + b[0].AddUint32(s[0].ageAdd); + } + } $s = -1; return b[0].Bytes(); - /* */ } return; } var $f = {$blk: marshal, $c: true, $r, b, m, $s};return $f; + /* */ } return; } var $f = {$blk: Bytes, $c: true, $r, b, s, $s};return $f; }; - $ptrType(sessionState).prototype.unmarshal = function unmarshal(data) { - var cert, certList, certList$24ptr, data, m, ok, s, s$24ptr; - m = this; - sessionState.copy(m, new sessionState.ptr(0, 0, new $Uint64(0, 0), sliceType$6.nil, sliceType$11.nil, m.usedOldKey)); - s = ($convertSliceType(data, cryptobyte.String)); - ok = (s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))).ReadUint16((m.$ptr_vers || (m.$ptr_vers = new ptrType$20(function() { return this.$target.vers; }, function($v) { this.$target.vers = $v; }, m)))) && (s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))).ReadUint16((m.$ptr_cipherSuite || (m.$ptr_cipherSuite = new ptrType$20(function() { return this.$target.cipherSuite; }, function($v) { this.$target.cipherSuite = $v; }, m)))) && readUint64((s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))), (m.$ptr_createdAt || (m.$ptr_createdAt = new ptrType$21(function() { return this.$target.createdAt; }, function($v) { this.$target.createdAt = $v; }, m)))) && readUint16LengthPrefixed((s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))), (m.$ptr_masterSecret || (m.$ptr_masterSecret = new ptrType$1(function() { return this.$target.masterSecret; }, function($v) { this.$target.masterSecret = $v; }, m)))) && !((m.masterSecret.$length === 0)); - if (!ok) { - return false; + certificatesToBytesSlice = function certificatesToBytesSlice$1(certs) { + var _i, _ref, c, certs, s; + s = $makeSlice(sliceType$11, 0, certs.$length); + _ref = certs; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + s = $append(s, c.Raw); + _i++; } - certList = cryptobyte.String.nil; - if (!(s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))).ReadUint24LengthPrefixed((certList$24ptr || (certList$24ptr = new ptrType$19(function() { return certList; }, function($v) { certList = $v; }))))) { - return false; + return s; + }; + ParseSessionState = function ParseSessionState$1(data) { + var {_1, _2, _i, _r, _r$1, _ref, _tmp, _tmp$1, _tmp$2, _tuple, _tuple$1, alpn, c, c$1, cert, cert$1, cert$2, certList, chain, chainList, data, e, earlyData, err, err$1, extMasterSecret, extra, isClient, s, ss, typ, x, $s, $r, $c} = $restore(this, {data}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + alpn = [alpn]; + cert = [cert]; + chainList = [chainList]; + earlyData = [earlyData]; + extMasterSecret = [extMasterSecret]; + extra = [extra]; + s = [s]; + typ = [typ]; + ss = new SessionState.ptr(sliceType$11.nil, false, 0, false, 0, new $Uint64(0, 0), sliceType$6.nil, false, sliceType$12.nil, sliceType$13.nil, sliceType$6.nil, sliceType$11.nil, sliceType$14.nil, "", new $Uint64(0, 0), 0); + s[0] = ($convertSliceType(data, cryptobyte.String)); + _tmp = 0; + _tmp$1 = 0; + _tmp$2 = 0; + typ[0] = _tmp; + extMasterSecret[0] = _tmp$1; + earlyData[0] = _tmp$2; + cert[0] = new Certificate.ptr(sliceType$11.nil, $ifaceNil, sliceType.nil, sliceType$6.nil, sliceType$11.nil, ptrType$7.nil); + extra[0] = cryptobyte.String.nil; + if (!(s.$ptr || (s.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s))).ReadUint16((ss === ptrType$21.nil && $throwNilPointerError(), (ss.$ptr_version || (ss.$ptr_version = new ptrType$22(function() { return this.$target.version; }, function($v) { this.$target.version = $v; }, ss))))) || !(s.$ptr || (s.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s))).ReadUint8((typ.$ptr || (typ.$ptr = new ptrType$23(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, typ)))) || (!((typ[0] === 1)) && !((typ[0] === 2))) || !(s.$ptr || (s.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s))).ReadUint16((ss === ptrType$21.nil && $throwNilPointerError(), (ss.$ptr_cipherSuite || (ss.$ptr_cipherSuite = new ptrType$22(function() { return this.$target.cipherSuite; }, function($v) { this.$target.cipherSuite = $v; }, ss))))) || !readUint64((s.$ptr || (s.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s))), (ss === ptrType$21.nil && $throwNilPointerError(), (ss.$ptr_createdAt || (ss.$ptr_createdAt = new ptrType$24(function() { return this.$target.createdAt; }, function($v) { this.$target.createdAt = $v; }, ss))))) || !readUint8LengthPrefixed((s.$ptr || (s.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s))), (ss === ptrType$21.nil && $throwNilPointerError(), (ss.$ptr_secret || (ss.$ptr_secret = new ptrType$1(function() { return this.$target.secret; }, function($v) { this.$target.secret = $v; }, ss))))) || !(s.$ptr || (s.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s))).ReadUint24LengthPrefixed((extra.$ptr || (extra.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extra)))) || !(s.$ptr || (s.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s))).ReadUint8((extMasterSecret.$ptr || (extMasterSecret.$ptr = new ptrType$23(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extMasterSecret)))) || !(s.$ptr || (s.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s))).ReadUint8((earlyData.$ptr || (earlyData.$ptr = new ptrType$23(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, earlyData)))) || (ss.secret.$length === 0) || !unmarshalCertificate((s.$ptr || (s.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s))), cert[0])) { + $s = -1; return [ptrType$21.nil, errors.New("tls: invalid session encoding")]; } while (true) { - if (!(!certList.Empty())) { break; } - cert = [cert]; - cert[0] = sliceType$6.nil; - if (!readUint24LengthPrefixed((certList$24ptr || (certList$24ptr = new ptrType$19(function() { return certList; }, function($v) { certList = $v; }))), (cert.$ptr || (cert.$ptr = new ptrType$1(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, cert))))) { - return false; + if (!(!extra[0].Empty())) { break; } + e = [e]; + e[0] = sliceType$6.nil; + if (!readUint24LengthPrefixed((extra.$ptr || (extra.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extra))), (e.$ptr || (e.$ptr = new ptrType$1(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, e))))) { + $s = -1; return [ptrType$21.nil, errors.New("tls: invalid session encoding")]; + } + ss.Extra = $append(ss.Extra, e[0]); + } + _1 = extMasterSecret[0]; + if (_1 === (0)) { + ss.extMasterSecret = false; + } else if (_1 === (1)) { + ss.extMasterSecret = true; + } else { + $s = -1; return [ptrType$21.nil, errors.New("tls: invalid session encoding")]; + } + _2 = earlyData[0]; + if (_2 === (0)) { + ss.EarlyData = false; + } else if (_2 === (1)) { + ss.EarlyData = true; + } else { + $s = -1; return [ptrType$21.nil, errors.New("tls: invalid session encoding")]; + } + _ref = cert[0].Certificate; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + cert$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r = globalCertCache.newCert(cert$1); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + c = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [ptrType$21.nil, err]; } - m.certificates = $append(m.certificates, cert[0]); + ss.activeCertHandles = $append(ss.activeCertHandles, c); + ss.peerCertificates = $append(ss.peerCertificates, c.cert); + _i++; + $s = 1; continue; + case 2: + ss.ocspResponse = cert[0].OCSPStaple; + ss.scts = cert[0].SignedCertificateTimestamps; + chainList[0] = cryptobyte.String.nil; + if (!(s.$ptr || (s.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s))).ReadUint24LengthPrefixed((chainList.$ptr || (chainList.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, chainList))))) { + $s = -1; return [ptrType$21.nil, errors.New("tls: invalid session encoding")]; } - return s.Empty(); + /* while (true) { */ case 4: + /* if (!(!chainList[0].Empty())) { break; } */ if(!(!chainList[0].Empty())) { $s = 5; continue; } + certList = [certList]; + certList[0] = cryptobyte.String.nil; + if (!(chainList.$ptr || (chainList.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, chainList))).ReadUint24LengthPrefixed((certList.$ptr || (certList.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, certList))))) { + $s = -1; return [ptrType$21.nil, errors.New("tls: invalid session encoding")]; + } + chain = sliceType$12.nil; + if (ss.peerCertificates.$length === 0) { + $s = -1; return [ptrType$21.nil, errors.New("tls: invalid session encoding")]; + } + chain = $append(chain, (x = ss.peerCertificates, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))); + /* while (true) { */ case 6: + /* if (!(!certList[0].Empty())) { break; } */ if(!(!certList[0].Empty())) { $s = 7; continue; } + cert$2 = [cert$2]; + cert$2[0] = sliceType$6.nil; + if (!readUint24LengthPrefixed((certList.$ptr || (certList.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, certList))), (cert$2.$ptr || (cert$2.$ptr = new ptrType$1(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, cert$2))))) { + $s = -1; return [ptrType$21.nil, errors.New("tls: invalid session encoding")]; + } + _r$1 = globalCertCache.newCert(cert$2[0]); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + c$1 = _tuple$1[0]; + err$1 = _tuple$1[1]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [ptrType$21.nil, err$1]; + } + ss.activeCertHandles = $append(ss.activeCertHandles, c$1); + chain = $append(chain, c$1.cert); + $s = 6; continue; + case 7: + ss.verifiedChains = $append(ss.verifiedChains, chain); + $s = 4; continue; + case 5: + if (ss.EarlyData) { + alpn[0] = sliceType$6.nil; + if (!readUint8LengthPrefixed((s.$ptr || (s.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s))), (alpn.$ptr || (alpn.$ptr = new ptrType$1(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, alpn))))) { + $s = -1; return [ptrType$21.nil, errors.New("tls: invalid session encoding")]; + } + ss.alpnProtocol = ($bytesToString(alpn[0])); + } + isClient = typ[0] === 2; + if (!isClient) { + if (!s[0].Empty()) { + $s = -1; return [ptrType$21.nil, errors.New("tls: invalid session encoding")]; + } + $s = -1; return [ss, $ifaceNil]; + } + ss.isClient = true; + if (ss.peerCertificates.$length === 0) { + $s = -1; return [ptrType$21.nil, errors.New("tls: no server certificates in client session")]; + } + if (ss.version < 772) { + if (!s[0].Empty()) { + $s = -1; return [ptrType$21.nil, errors.New("tls: invalid session encoding")]; + } + $s = -1; return [ss, $ifaceNil]; + } + if (!(s.$ptr || (s.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s))).ReadUint64((ss === ptrType$21.nil && $throwNilPointerError(), (ss.$ptr_useBy || (ss.$ptr_useBy = new ptrType$24(function() { return this.$target.useBy; }, function($v) { this.$target.useBy = $v; }, ss))))) || !(s.$ptr || (s.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s))).ReadUint32((ss === ptrType$21.nil && $throwNilPointerError(), (ss.$ptr_ageAdd || (ss.$ptr_ageAdd = new ptrType$25(function() { return this.$target.ageAdd; }, function($v) { this.$target.ageAdd = $v; }, ss))))) || !s[0].Empty()) { + $s = -1; return [ptrType$21.nil, errors.New("tls: invalid session encoding")]; + } + $s = -1; return [ss, $ifaceNil]; + /* */ } return; } var $f = {$blk: ParseSessionState$1, $c: true, $r, _1, _2, _i, _r, _r$1, _ref, _tmp, _tmp$1, _tmp$2, _tuple, _tuple$1, alpn, c, c$1, cert, cert$1, cert$2, certList, chain, chainList, data, e, earlyData, err, err$1, extMasterSecret, extra, isClient, s, ss, typ, x, $s};return $f; }; - $ptrType(sessionStateTLS13).prototype.marshal = function marshal$1() { - var {b, m, $s, $r, $c} = $restore(this, {}); + $pkg.ParseSessionState = ParseSessionState; + $ptrType(Conn).prototype.sessionState = function sessionState() { + var {$24r, _r, _r$1, c, x, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - b = [b]; - m = [m]; - m[0] = this; - b[0] = new cryptobyte.Builder.ptr($ifaceNil, sliceType$6.nil, false, ptrType$17.nil, 0, 0, false, ptrType$18.nil); - b[0].AddUint16(772); - b[0].AddUint8(0); - b[0].AddUint16(m[0].cipherSuite); - addUint64(b[0], m[0].createdAt); - $r = b[0].AddUint8LengthPrefixed((function(b, m) { return function sessionStateTLS13·marshal·func1(b$1) { - var b$1; - b$1.AddBytes(m[0].resumptionSecret); - }; })(b, m)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = marshalCertificate(b[0], $clone(m[0].certificate, Certificate)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return b[0].Bytes(); - /* */ } return; } var $f = {$blk: marshal$1, $c: true, $r, b, m, $s};return $f; + c = this; + _r = c.config.time(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = $clone(_r, time.Time).Unix(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = [new SessionState.ptr(sliceType$11.nil, false, c.vers, c.isClient, c.cipherSuite, ((x = _r$1, new $Uint64(x.$high, x.$low))), sliceType$6.nil, c.extMasterSecret, c.peerCertificates, c.activeCertHandles, c.ocspResponse, c.scts, c.verifiedChains, c.clientProtocol, new $Uint64(0, 0), 0), $ifaceNil]; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: sessionState, $c: true, $r, $24r, _r, _r$1, c, x, $s};return $f; }; - $ptrType(sessionStateTLS13).prototype.unmarshal = function unmarshal$1(data) { - var data, m, revision, revision$24ptr, s, s$24ptr, version, version$24ptr; - m = this; - sessionStateTLS13.copy(m, new sessionStateTLS13.ptr(0, new $Uint64(0, 0), sliceType$6.nil, new Certificate.ptr(sliceType$11.nil, $ifaceNil, sliceType.nil, sliceType$6.nil, sliceType$11.nil, ptrType$6.nil))); - s = ($convertSliceType(data, cryptobyte.String)); - version = 0; - revision = 0; - return (s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))).ReadUint16((version$24ptr || (version$24ptr = new ptrType$20(function() { return version; }, function($v) { version = $v; })))) && (version === 772) && (s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))).ReadUint8((revision$24ptr || (revision$24ptr = new ptrType$22(function() { return revision; }, function($v) { revision = $v; })))) && (revision === 0) && (s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))).ReadUint16((m.$ptr_cipherSuite || (m.$ptr_cipherSuite = new ptrType$20(function() { return this.$target.cipherSuite; }, function($v) { this.$target.cipherSuite = $v; }, m)))) && readUint64((s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))), (m.$ptr_createdAt || (m.$ptr_createdAt = new ptrType$21(function() { return this.$target.createdAt; }, function($v) { this.$target.createdAt = $v; }, m)))) && readUint8LengthPrefixed((s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))), (m.$ptr_resumptionSecret || (m.$ptr_resumptionSecret = new ptrType$1(function() { return this.$target.resumptionSecret; }, function($v) { this.$target.resumptionSecret = $v; }, m)))) && !((m.resumptionSecret.$length === 0)) && unmarshalCertificate((s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))), m.certificate) && s.Empty(); + $ptrType(Config).prototype.EncryptTicket = function EncryptTicket(cs, ss) { + var {$24r, _r, _r$1, _r$2, _tuple, c, cs, err, ss, stateBytes, ticketKeys, $s, $r, $c} = $restore(this, {cs, ss}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + c = this; + _r = c.ticketKeys(ptrType$6.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + ticketKeys = _r; + _r$1 = ss.Bytes(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + stateBytes = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [sliceType$6.nil, err]; + } + _r$2 = c.encryptTicket(stateBytes, ticketKeys); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 4; case 4: return $24r; + /* */ } return; } var $f = {$blk: EncryptTicket, $c: true, $r, $24r, _r, _r$1, _r$2, _tuple, c, cs, err, ss, stateBytes, ticketKeys, $s};return $f; }; - $ptrType(Conn).prototype.encryptTicket = function encryptTicket(state) { - var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, block, c, encrypted, err, err$1, iv, key, keyName, mac, macBytes, state, x, $s, $r, $c} = $restore(this, {state}); + $ptrType(Config).prototype.encryptTicket = function encryptTicket(state, ticketKeys) { + var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, authenticated, block, c, ciphertext, encrypted, err, err$1, iv, key, mac, macBytes, state, ticketKeys, $s, $r, $c} = $restore(this, {state, ticketKeys}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: c = this; - if (c.ticketKeys.$length === 0) { + if (ticketKeys.$length === 0) { $s = -1; return [sliceType$6.nil, errors.New("tls: internal error: session ticket keys unavailable")]; } - encrypted = $makeSlice(sliceType$6, ((32 + state.$length >> 0) + 32 >> 0)); - keyName = $subslice(encrypted, 0, 16); - iv = $subslice(encrypted, 16, 32); + encrypted = $makeSlice(sliceType$6, ((16 + state.$length >> 0) + 32 >> 0)); + iv = $subslice(encrypted, 0, 16); + ciphertext = $subslice(encrypted, 16, (encrypted.$length - 32 >> 0)); + authenticated = $subslice(encrypted, 0, (encrypted.$length - 32 >> 0)); macBytes = $subslice(encrypted, (encrypted.$length - 32 >> 0)); - _r = io.ReadFull(c.config.rand(), iv); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = io.ReadFull(c.rand(), iv); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [sliceType$6.nil, err]; } - key = $clone((x = c.ticketKeys, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])), ticketKey); - $copySlice(keyName, new sliceType$6(key.keyName)); + key = $clone((0 >= ticketKeys.$length ? ($throwRuntimeError("index out of range"), undefined) : ticketKeys.$array[ticketKeys.$offset + 0]), ticketKey); _tuple$1 = aes.NewCipher(new sliceType$6(key.aesKey)); block = _tuple$1[0]; err$1 = _tuple$1[1]; @@ -253346,86 +254960,227 @@ $packages["crypto/tls"] = (function() { $s = 6; case 6: return $24r; /* } */ case 3: _r$3 = cipher.NewCTR(block, iv); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $r = _r$3.XORKeyStream($subslice(encrypted, 32), state); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = _r$3.XORKeyStream(ciphertext, state); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _r$4 = hmac.New(sha256.New, new sliceType$6(key.hmacKey)); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } mac = _r$4; - _r$5 = mac.Write($subslice(encrypted, 0, (encrypted.$length - 32 >> 0))); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$5 = mac.Write(authenticated); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _r$5; _r$6 = mac.Sum($subslice(macBytes, 0, 0)); /* */ $s = 11; case 11: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _r$6; $s = -1; return [encrypted, $ifaceNil]; - /* */ } return; } var $f = {$blk: encryptTicket, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, block, c, encrypted, err, err$1, iv, key, keyName, mac, macBytes, state, x, $s};return $f; + /* */ } return; } var $f = {$blk: encryptTicket, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, authenticated, block, c, ciphertext, encrypted, err, err$1, iv, key, mac, macBytes, state, ticketKeys, $s};return $f; }; - $ptrType(Conn).prototype.decryptTicket = function decryptTicket(encrypted) { - var {_i, _r, _r$1, _r$2, _r$3, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, block, c, candidateKey, ciphertext, encrypted, err, expected, i, iv, key, keyIndex, keyName, mac, macBytes, plaintext, usedOldKey, x, $s, $r, $c} = $restore(this, {encrypted}); + $ptrType(Config).prototype.DecryptTicket = function DecryptTicket(identity, cs) { + var {_r, _r$1, _r$2, _tuple, c, cs, err, identity, s, stateBytes, ticketKeys, $s, $r, $c} = $restore(this, {identity, cs}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - plaintext = sliceType$6.nil; - usedOldKey = false; c = this; - if (encrypted.$length < 64) { - _tmp = sliceType$6.nil; - _tmp$1 = false; - plaintext = _tmp; - usedOldKey = _tmp$1; - $s = -1; return [plaintext, usedOldKey]; + _r = c.ticketKeys(ptrType$6.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + ticketKeys = _r; + _r$1 = c.decryptTicket(identity, ticketKeys); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + stateBytes = _r$1; + if (stateBytes === sliceType$6.nil) { + $s = -1; return [ptrType$21.nil, $ifaceNil]; + } + _r$2 = ParseSessionState(stateBytes); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = _r$2; + s = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [ptrType$21.nil, $ifaceNil]; } - keyName = $subslice(encrypted, 0, 16); - iv = $subslice(encrypted, 16, 32); + $s = -1; return [s, $ifaceNil]; + /* */ } return; } var $f = {$blk: DecryptTicket, $c: true, $r, _r, _r$1, _r$2, _tuple, c, cs, err, identity, s, stateBytes, ticketKeys, $s};return $f; + }; + $ptrType(Config).prototype.decryptTicket = function decryptTicket(encrypted, ticketKeys) { + var {_i, _r, _r$1, _r$2, _r$3, _ref, _tuple, authenticated, block, c, ciphertext, encrypted, err, expected, iv, key, mac, macBytes, plaintext, ticketKeys, $s, $r, $c} = $restore(this, {encrypted, ticketKeys}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + c = this; + if (encrypted.$length < 48) { + $s = -1; return sliceType$6.nil; + } + iv = $subslice(encrypted, 0, 16); + ciphertext = $subslice(encrypted, 16, (encrypted.$length - 32 >> 0)); + authenticated = $subslice(encrypted, 0, (encrypted.$length - 32 >> 0)); macBytes = $subslice(encrypted, (encrypted.$length - 32 >> 0)); - ciphertext = $subslice(encrypted, 32, (encrypted.$length - 32 >> 0)); - keyIndex = -1; - _ref = c.ticketKeys; + _ref = ticketKeys; _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - candidateKey = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), ticketKey); - if (bytes.Equal(keyName, new sliceType$6(candidateKey.keyName))) { - keyIndex = i; - break; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + key = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), ticketKey); + _r = hmac.New(sha256.New, new sliceType$6(key.hmacKey)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + mac = _r; + _r$1 = mac.Write(authenticated); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + _r$2 = mac.Sum(sliceType$6.nil); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + expected = _r$2; + if (!((subtle.ConstantTimeCompare(macBytes, expected) === 1))) { + _i++; + /* continue; */ $s = 1; continue; } - _i++; + _tuple = aes.NewCipher(new sliceType$6(key.aesKey)); + block = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return sliceType$6.nil; + } + plaintext = $makeSlice(sliceType$6, ciphertext.$length); + _r$3 = cipher.NewCTR(block, iv); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $r = _r$3.XORKeyStream(plaintext, ciphertext); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return plaintext; + case 2: + $s = -1; return sliceType$6.nil; + /* */ } return; } var $f = {$blk: decryptTicket, $c: true, $r, _i, _r, _r$1, _r$2, _r$3, _ref, _tuple, authenticated, block, c, ciphertext, encrypted, err, expected, iv, key, mac, macBytes, plaintext, ticketKeys, $s};return $f; + }; + $ptrType(ClientSessionState).prototype.ResumptionState = function ResumptionState() { + var _tmp, _tmp$1, _tmp$2, cs, err, state, ticket; + ticket = sliceType$6.nil; + state = ptrType$21.nil; + err = $ifaceNil; + cs = this; + _tmp = cs.ticket; + _tmp$1 = cs.session; + _tmp$2 = $ifaceNil; + ticket = _tmp; + state = _tmp$1; + err = _tmp$2; + return [ticket, state, err]; + }; + QUICEncryptionLevel.prototype.String = function String() { + var {$24r, _1, _r, l, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + l = this.$val; + _1 = l; + /* */ if (_1 === (0)) { $s = 2; continue; } + /* */ if (_1 === (1)) { $s = 3; continue; } + /* */ if (_1 === (2)) { $s = 4; continue; } + /* */ if (_1 === (3)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_1 === (0)) { */ case 2: + $s = -1; return "Initial"; + /* } else if (_1 === (1)) { */ case 3: + $s = -1; return "Early"; + /* } else if (_1 === (2)) { */ case 4: + $s = -1; return "Handshake"; + /* } else if (_1 === (3)) { */ case 5: + $s = -1; return "Application"; + /* } else { */ case 6: + _r = fmt.Sprintf("QUICEncryptionLevel(%v)", new sliceType$7([new $Int(((l >> 0)))])); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 9; case 9: return $24r; + /* } */ case 7: + case 1: + $s = -1; return ""; + /* */ } return; } var $f = {$blk: String, $c: true, $r, $24r, _1, _r, l, $s};return $f; + }; + $ptrType(QUICEncryptionLevel).prototype.String = function(...$args) { return new QUICEncryptionLevel(this.$get()).String(...$args); }; + $ptrType(Conn).prototype.quicReadHandshakeBytes = function quicReadHandshakeBytes(n) { + var {_r, c, err, n, $s, $r, $c} = $restore(this, {n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + c = this; + /* while (true) { */ case 1: + /* if (!(c.hand.Len() < n)) { break; } */ if(!(c.hand.Len() < n)) { $s = 2; continue; } + _r = c.quicWaitForSignal(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $s = 1; continue; + case 2: + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: quicReadHandshakeBytes, $c: true, $r, _r, c, err, n, $s};return $f; + }; + $ptrType(Conn).prototype.quicSetReadSecret = function quicSetReadSecret(level, suite, secret) { + var c, level, secret, suite; + c = this; + c.quic.events = $append(c.quic.events, new QUICEvent.ptr(1, level, secret, suite)); + }; + $ptrType(Conn).prototype.quicSetWriteSecret = function quicSetWriteSecret(level, suite, secret) { + var c, level, secret, suite; + c = this; + c.quic.events = $append(c.quic.events, new QUICEvent.ptr(2, level, secret, suite)); + }; + $ptrType(Conn).prototype.quicWriteCryptoData = function quicWriteCryptoData(level, data) { + var c, data, last, level, x, x$1, x$2, x$3; + c = this; + last = ptrType$28.nil; + if (c.quic.events.$length > 0) { + last = (x = c.quic.events, x$1 = c.quic.events.$length - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + x$1, ptrType$28))); } - if (keyIndex === -1) { - _tmp$2 = sliceType$6.nil; - _tmp$3 = false; - plaintext = _tmp$2; - usedOldKey = _tmp$3; - $s = -1; return [plaintext, usedOldKey]; - } - key = (x = c.ticketKeys, ((keyIndex < 0 || keyIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + keyIndex])); - _r = hmac.New(sha256.New, new sliceType$6(key.hmacKey)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - mac = _r; - _r$1 = mac.Write($subslice(encrypted, 0, (encrypted.$length - 32 >> 0))); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - _r$2 = mac.Sum(sliceType$6.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - expected = _r$2; - if (!((subtle.ConstantTimeCompare(macBytes, expected) === 1))) { - _tmp$4 = sliceType$6.nil; - _tmp$5 = false; - plaintext = _tmp$4; - usedOldKey = _tmp$5; - $s = -1; return [plaintext, usedOldKey]; + if (last === ptrType$28.nil || !((last.Kind === 3)) || !((last.Level === level))) { + c.quic.events = $append(c.quic.events, new QUICEvent.ptr(3, level, sliceType$6.nil, 0)); + last = (x$2 = c.quic.events, x$3 = c.quic.events.$length - 1 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$2.$array, x$2.$offset + x$3, ptrType$28))); } - _tuple = aes.NewCipher(new sliceType$6(key.aesKey)); - block = _tuple[0]; - err = _tuple[1]; - if (!($interfaceIsEqual(err, $ifaceNil))) { - _tmp$6 = sliceType$6.nil; - _tmp$7 = false; - plaintext = _tmp$6; - usedOldKey = _tmp$7; - $s = -1; return [plaintext, usedOldKey]; - } - plaintext = $makeSlice(sliceType$6, ciphertext.$length); - _r$3 = cipher.NewCTR(block, iv); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $r = _r$3.XORKeyStream(plaintext, ciphertext); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _tmp$8 = plaintext; - _tmp$9 = keyIndex > 0; - plaintext = _tmp$8; - usedOldKey = _tmp$9; - $s = -1; return [plaintext, usedOldKey]; - /* */ } return; } var $f = {$blk: decryptTicket, $c: true, $r, _i, _r, _r$1, _r$2, _r$3, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, block, c, candidateKey, ciphertext, encrypted, err, expected, i, iv, key, keyIndex, keyName, mac, macBytes, plaintext, usedOldKey, x, $s};return $f; + last.Data = $appendSlice(last.Data, data); + }; + $ptrType(Conn).prototype.quicSetTransportParameters = function quicSetTransportParameters(params) { + var c, params; + c = this; + c.quic.events = $append(c.quic.events, new QUICEvent.ptr(4, 0, params, 0)); + }; + $ptrType(Conn).prototype.quicGetTransportParameters = function quicGetTransportParameters() { + var {_r, c, err, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + c = this; + if (c.quic.transportParams === sliceType$6.nil) { + c.quic.events = $append(c.quic.events, new QUICEvent.ptr(5, 0, sliceType$6.nil, 0)); + } + /* while (true) { */ case 1: + /* if (!(c.quic.transportParams === sliceType$6.nil)) { break; } */ if(!(c.quic.transportParams === sliceType$6.nil)) { $s = 2; continue; } + _r = c.quicWaitForSignal(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [sliceType$6.nil, err]; + } + $s = 1; continue; + case 2: + $s = -1; return [c.quic.transportParams, $ifaceNil]; + /* */ } return; } var $f = {$blk: quicGetTransportParameters, $c: true, $r, _r, c, err, $s};return $f; + }; + $ptrType(Conn).prototype.quicHandshakeComplete = function quicHandshakeComplete() { + var c; + c = this; + c.quic.events = $append(c.quic.events, new QUICEvent.ptr(7, 0, sliceType$6.nil, 0)); + }; + $ptrType(Conn).prototype.quicRejectedEarlyData = function quicRejectedEarlyData() { + var c; + c = this; + c.quic.events = $append(c.quic.events, new QUICEvent.ptr(6, 0, sliceType$6.nil, 0)); + }; + $ptrType(Conn).prototype.quicWaitForSignal = function quicWaitForSignal() { + var {$24r, $24r$1, $24r$2, _r, _r$1, _r$2, _r$3, _selection, _selection$1, c, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + c = this; + $r = c.handshakeMutex.Unlock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(c.handshakeMutex, "Lock"), []]); + _r = $select([[c.quic.blockedc, $clone(new structType$1.ptr(), structType$1)], [c.quic.cancelc]]); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _selection = _r; + /* */ if (_selection[0] === 0) { $s = 3; continue; } + /* */ if (_selection[0] === 1) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_selection[0] === 0) { */ case 3: + $s = 5; continue; + /* } else if (_selection[0] === 1) { */ case 4: + _r$1 = c.sendAlertLocked(0); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 7; case 7: return $24r; + /* } */ case 5: + _r$2 = $select([[c.quic.signalc, $clone(new structType$1.ptr(), structType$1)], [c.quic.cancelc]]); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _selection$1 = _r$2; + /* */ if (_selection$1[0] === 0) { $s = 9; continue; } + /* */ if (_selection$1[0] === 1) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (_selection$1[0] === 0) { */ case 9: + c.hand.Write(c.quic.readbuf); + c.quic.readbuf = sliceType$6.nil; + $s = 11; continue; + /* } else if (_selection$1[0] === 1) { */ case 10: + _r$3 = c.sendAlertLocked(0); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r$1 = _r$3; + $s = 13; case 13: return $24r$1; + /* } */ case 11: + $24r$2 = $ifaceNil; + $s = 14; case 14: return $24r$2; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: quicWaitForSignal, $c: true, $r, $24r, $24r$1, $24r$2, _r, _r$1, _r$2, _r$3, _selection, _selection$1, c, $s, $deferred};return $f; } } }; splitPreMasterSecret = function splitPreMasterSecret$1(secret) { var _q, _q$1, s1, s2, secret; @@ -253536,6 +255291,14 @@ $packages["crypto/tls"] = (function() { $s = -1; return masterSecret; /* */ } return; } var $f = {$blk: masterFromPreMasterSecret$1, $c: true, $r, clientRandom, masterSecret, preMasterSecret, seed, serverRandom, suite, version, $s};return $f; }; + extMasterFromPreMasterSecret = function extMasterFromPreMasterSecret$1(version, suite, preMasterSecret, transcript) { + var {masterSecret, preMasterSecret, suite, transcript, version, $s, $r, $c} = $restore(this, {version, suite, preMasterSecret, transcript}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + masterSecret = $makeSlice(sliceType$6, 48); + $r = prfForVersion(version, suite)(masterSecret, preMasterSecret, extendedMasterSecretLabel, transcript); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return masterSecret; + /* */ } return; } var $f = {$blk: extMasterFromPreMasterSecret$1, $c: true, $r, masterSecret, preMasterSecret, suite, transcript, version, $s};return $f; + }; keysFromMasterSecret = function keysFromMasterSecret$1(version, suite, masterSecret, clientRandom, serverRandom, macLen, keyLen, ivLen) { var {clientIV, clientKey, clientMAC, clientRandom, ivLen, keyLen, keyMaterial, macLen, masterSecret, n, seed, serverIV, serverKey, serverMAC, serverRandom, suite, version, $s, $r, $c} = $restore(this, {version, suite, masterSecret, clientRandom, serverRandom, macLen, keyLen, ivLen}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: @@ -253775,7 +255538,7 @@ $packages["crypto/tls"] = (function() { context$1 = [context$1]; label = [label]; c = this; - hkdfLabel = new cryptobyte.Builder.ptr($ifaceNil, sliceType$6.nil, false, ptrType$17.nil, 0, 0, false, ptrType$18.nil); + hkdfLabel = new cryptobyte.Builder.ptr($ifaceNil, sliceType$6.nil, false, ptrType$18.nil, 0, 0, false, ptrType$19.nil); hkdfLabel.AddUint16(((length << 16 >>> 16))); $r = hkdfLabel.AddUint8LengthPrefixed((function(context$1, label) { return function cipherSuiteTLS13·expandLabel·func1(b) { var b; @@ -253912,7 +255675,7 @@ $packages["crypto/tls"] = (function() { curve = _tuple[0]; ok = _tuple[1]; if (!ok) { - $s = -1; return [ptrType$23.nil, errors.New("tls: internal error: unsupported curve")]; + $s = -1; return [ptrType$29.nil, errors.New("tls: internal error: unsupported curve")]; } _r = curve.GenerateKey(rand$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $24r = _r; @@ -253952,7 +255715,7 @@ $packages["crypto/tls"] = (function() { $ptrType(rsaKeyAgreement).prototype.generateServerKeyExchange = function generateServerKeyExchange(config, cert, clientHello, hello) { var cert, clientHello, config, hello, ka; ka = this; - return [ptrType$24.nil, $ifaceNil]; + return [ptrType$30.nil, $ifaceNil]; }; rsaKeyAgreement.prototype.generateServerKeyExchange = function(...$args) { return this.$val.generateServerKeyExchange(...$args); }; $ptrType(rsaKeyAgreement).prototype.processClientKeyExchange = function processClientKeyExchange(config, cert, ckx, version) { @@ -254001,20 +255764,20 @@ $packages["crypto/tls"] = (function() { _tuple = _r; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [sliceType$6.nil, ptrType$25.nil, err]; + $s = -1; return [sliceType$6.nil, ptrType$31.nil, err]; } - _tuple$1 = $assertType(cert.PublicKey, ptrType$13, true); + _tuple$1 = $assertType(cert.PublicKey, ptrType$14, true); rsaKey = _tuple$1[0]; ok = _tuple$1[1]; if (!ok) { - $s = -1; return [sliceType$6.nil, ptrType$25.nil, errors.New("tls: server certificate contains incorrect key type for selected ciphersuite")]; + $s = -1; return [sliceType$6.nil, ptrType$31.nil, errors.New("tls: server certificate contains incorrect key type for selected ciphersuite")]; } _r$1 = rsa.EncryptPKCS1v15(config.rand(), rsaKey, preMasterSecret); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$2 = _r$1; encrypted = _tuple$2[0]; err = _tuple$2[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [sliceType$6.nil, ptrType$25.nil, err]; + $s = -1; return [sliceType$6.nil, ptrType$31.nil, err]; } ckx = new clientKeyExchangeMsg.ptr(sliceType$6.nil, sliceType$6.nil); ckx.ciphertext = $makeSlice(sliceType$6, (encrypted.$length + 2 >> 0)); @@ -254129,19 +255892,19 @@ $packages["crypto/tls"] = (function() { _i++; } if (curveID === 0) { - $s = -1; return [ptrType$24.nil, errors.New("tls: no supported elliptic curves offered")]; + $s = -1; return [ptrType$30.nil, errors.New("tls: no supported elliptic curves offered")]; } _tuple = curveForCurveID(curveID); ok = _tuple[1]; if (!ok) { - $s = -1; return [ptrType$24.nil, errors.New("tls: CurvePreferences includes unsupported curve")]; + $s = -1; return [ptrType$30.nil, errors.New("tls: CurvePreferences includes unsupported curve")]; } _r = generateECDHEKey(config.rand(), curveID); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple$1 = _r; key = _tuple$1[0]; err = _tuple$1[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [ptrType$24.nil, err]; + $s = -1; return [ptrType$30.nil, err]; } ka.key = key; _r$1 = key.PublicKey(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } @@ -254160,7 +255923,7 @@ $packages["crypto/tls"] = (function() { /* */ $s = 5; continue; /* if (!ok$1) { */ case 4: _r$3 = fmt.Errorf("tls: certificate private key of type %T does not implement crypto.Signer", new sliceType$7([cert.PrivateKey])); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r = [ptrType$24.nil, _r$3]; + $24r = [ptrType$30.nil, _r$3]; $s = 7; case 7: return $24r; /* } */ case 5: signatureAlgorithm = 0; @@ -254174,7 +255937,7 @@ $packages["crypto/tls"] = (function() { signatureAlgorithm = _tuple$3[0]; err = _tuple$3[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [ptrType$24.nil, err]; + $s = -1; return [ptrType$30.nil, err]; } _r$5 = typeAndHashFromSignatureScheme(signatureAlgorithm); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _tuple$4 = _r$5; @@ -254182,7 +255945,7 @@ $packages["crypto/tls"] = (function() { sigHash = _tuple$4[1]; err = _tuple$4[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [ptrType$24.nil, err]; + $s = -1; return [ptrType$30.nil, err]; } $s = 10; continue; /* } else { */ case 9: @@ -254193,11 +255956,11 @@ $packages["crypto/tls"] = (function() { sigHash = _tuple$5[1]; err = _tuple$5[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [ptrType$24.nil, err]; + $s = -1; return [ptrType$30.nil, err]; } /* } */ case 10: if (!(((sigType === 225) || (sigType === 226)) === ka.isRSA)) { - $s = -1; return [ptrType$24.nil, errors.New("tls: certificate cannot be used with the selected cipher suite")]; + $s = -1; return [ptrType$30.nil, errors.New("tls: certificate cannot be used with the selected cipher suite")]; } _r$8 = hashForServerKeyExchange(sigType, sigHash, ka.version, new sliceType$11([clientHello.random, hello.random, serverECDHEParams])); /* */ $s = 15; case 15: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } signed = _r$8; @@ -254214,7 +255977,7 @@ $packages["crypto/tls"] = (function() { /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 17: _r$10 = err.Error(); /* */ $s = 19; case 19: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } _r$11 = errors.New("tls: failed to sign ECDHE parameters: " + _r$10); /* */ $s = 20; case 20: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - $24r$1 = [ptrType$24.nil, _r$11]; + $24r$1 = [ptrType$30.nil, _r$11]; $s = 21; case 21: return $24r$1; /* } */ case 18: skx = new serverKeyExchangeMsg.ptr(sliceType$6.nil, sliceType$6.nil); @@ -254373,8 +256136,8 @@ $packages["crypto/tls"] = (function() { $ptrType(ecdheKeyAgreement).prototype.generateClientKeyExchange = function generateClientKeyExchange$1(config, clientHello, cert) { var cert, clientHello, config, ka; ka = this; - if (ka.ckx === ptrType$25.nil) { - return [sliceType$6.nil, ptrType$25.nil, errors.New("tls: missing ServerKeyExchange message")]; + if (ka.ckx === ptrType$31.nil) { + return [sliceType$6.nil, ptrType$31.nil, errors.New("tls: missing ServerKeyExchange message")]; } return [ka.preMasterSecret, ka.ckx, $ifaceNil]; }; @@ -254438,11 +256201,11 @@ $packages["crypto/tls"] = (function() { /* */ } return; } var $f = {$blk: handshake, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _tuple, c, err, err$1, err$2, err$3, err$4, err$5, err$6, err$7, err$8, hs, $s};return $f; }; $ptrType(serverHandshakeStateTLS13).prototype.processClientHello = function processClientHello() { - var {_i, _i$1, _i$2, _i$3, _i$4, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, c, clientKeyShare, err, err$1, err$2, group, hs, id, key, ks, ok, peerKey, preferenceList, preferredGroup, selectedGroup, suiteID, x, x$1, $s, $r, $c} = $restore(this, {}); + var {_i, _i$1, _i$2, _i$3, _i$4, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, c, clientKeyShare, err, err$1, err$2, group, hs, id, key, ks, ok, peerKey, preferenceList, preferredGroup, selectedGroup, selectedProto, suiteID, x, x$1, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: hs = this; c = hs.c; - hs.hello = new serverHelloMsg.ptr(sliceType$6.nil, 0, sliceType$6.nil, sliceType$6.nil, 0, 0, false, false, false, sliceType$6.nil, "", sliceType$11.nil, 0, new keyShare.ptr(0, sliceType$6.nil), false, 0, sliceType$6.nil, sliceType$6.nil, 0); + hs.hello = new serverHelloMsg.ptr(sliceType$6.nil, 0, sliceType$6.nil, sliceType$6.nil, 0, 0, false, false, false, sliceType$6.nil, false, "", sliceType$11.nil, 0, new keyShare.ptr(0, sliceType$6.nil), false, 0, sliceType$6.nil, sliceType$6.nil, 0); hs.hello.vers = 771; hs.hello.supportedVersion = c.vers; /* */ if (hs.clientHello.supportedVersions.$length === 0) { $s = 1; continue; } @@ -254497,13 +256260,23 @@ $packages["crypto/tls"] = (function() { _r$5; $s = -1; return errors.New("tls: initial handshake had non-empty renegotiation extension"); /* } */ case 19: - /* */ if (hs.clientHello.earlyData) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if (hs.clientHello.earlyData) { */ case 21: - _r$6 = c.sendAlert(110); /* */ $s = 23; case 23: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _r$6; + /* */ if (hs.clientHello.earlyData && !(c.quic === ptrType$5.nil)) { $s = 21; continue; } + /* */ if (hs.clientHello.earlyData) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (hs.clientHello.earlyData && !(c.quic === ptrType$5.nil)) { */ case 21: + /* */ if (hs.clientHello.pskIdentities.$length === 0) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (hs.clientHello.pskIdentities.$length === 0) { */ case 24: + _r$6 = c.sendAlert(47); /* */ $s = 26; case 26: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$6; + $s = -1; return errors.New("tls: early_data without pre_shared_key"); + /* } */ case 25: + $s = 23; continue; + /* } else if (hs.clientHello.earlyData) { */ case 22: + _r$7 = c.sendAlert(110); /* */ $s = 27; case 27: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$7; $s = -1; return errors.New("tls: client sent unexpected early data"); - /* } */ case 22: + /* } */ case 23: hs.hello.sessionId = hs.clientHello.sessionId; hs.hello.compressionMethod = 0; preferenceList = defaultCipherSuitesTLS13; @@ -254516,24 +256289,24 @@ $packages["crypto/tls"] = (function() { if (!(_i$1 < _ref$1.$length)) { break; } suiteID = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); hs.suite = mutualCipherSuiteTLS13(hs.clientHello.cipherSuites, suiteID); - if (!(hs.suite === ptrType$2.nil)) { + if (!(hs.suite === ptrType$3.nil)) { break; } _i$1++; } - /* */ if (hs.suite === ptrType$2.nil) { $s = 24; continue; } - /* */ $s = 25; continue; - /* if (hs.suite === ptrType$2.nil) { */ case 24: - _r$7 = c.sendAlert(40); /* */ $s = 26; case 26: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _r$7; + /* */ if (hs.suite === ptrType$3.nil) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (hs.suite === ptrType$3.nil) { */ case 28: + _r$8 = c.sendAlert(40); /* */ $s = 30; case 30: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$8; $s = -1; return errors.New("tls: no cipher suite supported by both client and server"); - /* } */ case 25: + /* } */ case 29: c.cipherSuite = hs.suite.id; hs.hello.cipherSuite = hs.suite.id; - _r$8 = new crypto.Hash(hs.suite.hash).New(); /* */ $s = 27; case 27: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - hs.transcript = _r$8; + _r$9 = new crypto.Hash(hs.suite.hash).New(); /* */ $s = 31; case 31: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + hs.transcript = _r$9; selectedGroup = 0; - clientKeyShare = ptrType$26.nil; + clientKeyShare = ptrType$32.nil; _ref$2 = c.config.curvePreferences(); _i$2 = 0; GroupSelection: @@ -254570,74 +256343,107 @@ $packages["crypto/tls"] = (function() { } _i$2++; } - /* */ if (selectedGroup === 0) { $s = 28; continue; } - /* */ $s = 29; continue; - /* if (selectedGroup === 0) { */ case 28: - _r$9 = c.sendAlert(40); /* */ $s = 30; case 30: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _r$9; + /* */ if (selectedGroup === 0) { $s = 32; continue; } + /* */ $s = 33; continue; + /* if (selectedGroup === 0) { */ case 32: + _r$10 = c.sendAlert(40); /* */ $s = 34; case 34: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$10; $s = -1; return errors.New("tls: no ECDHE curve supported by both client and server"); - /* } */ case 29: - /* */ if (clientKeyShare === ptrType$26.nil) { $s = 31; continue; } - /* */ $s = 32; continue; - /* if (clientKeyShare === ptrType$26.nil) { */ case 31: - _r$10 = hs.doHelloRetryRequest(selectedGroup); /* */ $s = 33; case 33: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - err$1 = _r$10; + /* } */ case 33: + /* */ if (clientKeyShare === ptrType$32.nil) { $s = 35; continue; } + /* */ $s = 36; continue; + /* if (clientKeyShare === ptrType$32.nil) { */ case 35: + _r$11 = hs.doHelloRetryRequest(selectedGroup); /* */ $s = 37; case 37: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + err$1 = _r$11; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return err$1; } - clientKeyShare = (x$1 = hs.clientHello.keyShares, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])); - /* } */ case 32: + clientKeyShare = (x$1 = hs.clientHello.keyShares, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + 0, ptrType$32))); + /* } */ case 36: _tuple$1 = curveForCurveID(selectedGroup); ok = _tuple$1[1]; - /* */ if (!ok) { $s = 34; continue; } - /* */ $s = 35; continue; - /* if (!ok) { */ case 34: - _r$11 = c.sendAlert(80); /* */ $s = 36; case 36: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _r$11; + /* */ if (!ok) { $s = 38; continue; } + /* */ $s = 39; continue; + /* if (!ok) { */ case 38: + _r$12 = c.sendAlert(80); /* */ $s = 40; case 40: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _r$12; $s = -1; return errors.New("tls: CurvePreferences includes unsupported curve"); - /* } */ case 35: - _r$12 = generateECDHEKey(c.config.rand(), selectedGroup); /* */ $s = 37; case 37: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _tuple$2 = _r$12; + /* } */ case 39: + _r$13 = generateECDHEKey(c.config.rand(), selectedGroup); /* */ $s = 41; case 41: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _tuple$2 = _r$13; key = _tuple$2[0]; err$2 = _tuple$2[1]; - /* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 38; continue; } - /* */ $s = 39; continue; - /* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 38: - _r$13 = c.sendAlert(80); /* */ $s = 40; case 40: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - _r$13; + /* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 42; continue; } + /* */ $s = 43; continue; + /* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 42: + _r$14 = c.sendAlert(80); /* */ $s = 44; case 44: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _r$14; $s = -1; return err$2; - /* } */ case 39: - _r$14 = key.PublicKey(); /* */ $s = 41; case 41: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - _r$15 = _r$14.Bytes(); /* */ $s = 42; case 42: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - keyShare.copy(hs.hello.serverShare, new keyShare.ptr(selectedGroup, _r$15)); - _r$16 = key.Curve().NewPublicKey(clientKeyShare.data); /* */ $s = 43; case 43: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - _tuple$3 = _r$16; + /* } */ case 43: + _r$15 = key.PublicKey(); /* */ $s = 45; case 45: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + _r$16 = _r$15.Bytes(); /* */ $s = 46; case 46: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + keyShare.copy(hs.hello.serverShare, new keyShare.ptr(selectedGroup, _r$16)); + _r$17 = key.Curve().NewPublicKey(clientKeyShare.data); /* */ $s = 47; case 47: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + _tuple$3 = _r$17; peerKey = _tuple$3[0]; err$2 = _tuple$3[1]; - /* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 44; continue; } - /* */ $s = 45; continue; - /* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 44: - _r$17 = c.sendAlert(47); /* */ $s = 46; case 46: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - _r$17; - $s = -1; return errors.New("tls: invalid client key share"); - /* } */ case 45: - _r$18 = key.ECDH(peerKey); /* */ $s = 47; case 47: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - _tuple$4 = _r$18; - hs.sharedKey = _tuple$4[0]; - err$2 = _tuple$4[1]; /* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 48; continue; } /* */ $s = 49; continue; /* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 48: - _r$19 = c.sendAlert(47); /* */ $s = 50; case 50: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - _r$19; + _r$18 = c.sendAlert(47); /* */ $s = 50; case 50: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + _r$18; $s = -1; return errors.New("tls: invalid client key share"); /* } */ case 49: + _r$19 = key.ECDH(peerKey); /* */ $s = 51; case 51: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + _tuple$4 = _r$19; + hs.sharedKey = _tuple$4[0]; + err$2 = _tuple$4[1]; + /* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 52; continue; } + /* */ $s = 53; continue; + /* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 52: + _r$20 = c.sendAlert(47); /* */ $s = 54; case 54: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + _r$20; + $s = -1; return errors.New("tls: invalid client key share"); + /* } */ case 53: + _r$21 = negotiateALPN(c.config.NextProtos, hs.clientHello.alpnProtocols, !(c.quic === ptrType$5.nil)); /* */ $s = 55; case 55: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + _tuple$5 = _r$21; + selectedProto = _tuple$5[0]; + err$2 = _tuple$5[1]; + /* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 56; continue; } + /* */ $s = 57; continue; + /* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 56: + _r$22 = c.sendAlert(120); /* */ $s = 58; case 58: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + _r$22; + $s = -1; return err$2; + /* } */ case 57: + c.clientProtocol = selectedProto; + /* */ if (!(c.quic === ptrType$5.nil)) { $s = 59; continue; } + /* */ $s = 60; continue; + /* if (!(c.quic === ptrType$5.nil)) { */ case 59: + /* */ if (hs.clientHello.quicTransportParameters === sliceType$6.nil) { $s = 62; continue; } + /* */ $s = 63; continue; + /* if (hs.clientHello.quicTransportParameters === sliceType$6.nil) { */ case 62: + _r$23 = c.sendAlert(109); /* */ $s = 64; case 64: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + _r$23; + $s = -1; return errors.New("tls: client did not send a quic_transport_parameters extension"); + /* } */ case 63: + c.quicSetTransportParameters(hs.clientHello.quicTransportParameters); + $s = 61; continue; + /* } else { */ case 60: + /* */ if (!(hs.clientHello.quicTransportParameters === sliceType$6.nil)) { $s = 65; continue; } + /* */ $s = 66; continue; + /* if (!(hs.clientHello.quicTransportParameters === sliceType$6.nil)) { */ case 65: + _r$24 = c.sendAlert(110); /* */ $s = 67; case 67: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _r$24; + $s = -1; return errors.New("tls: client sent an unexpected quic_transport_parameters extension"); + /* } */ case 66: + /* } */ case 61: c.serverName = hs.clientHello.serverName; $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: processClientHello, $c: true, $r, _i, _i$1, _i$2, _i$3, _i$4, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, c, clientKeyShare, err, err$1, err$2, group, hs, id, key, ks, ok, peerKey, preferenceList, preferredGroup, selectedGroup, suiteID, x, x$1, $s};return $f; + /* */ } return; } var $f = {$blk: processClientHello, $c: true, $r, _i, _i$1, _i$2, _i$3, _i$4, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, c, clientKeyShare, err, err$1, err$2, group, hs, id, key, ks, ok, peerKey, preferenceList, preferredGroup, selectedGroup, selectedProto, suiteID, x, x$1, $s};return $f; }; $ptrType(serverHandshakeStateTLS13).prototype.checkForResumption = function checkForResumption() { - var {_i, _i$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _tuple$1, binderKey, c, clientHelloBytes, createdAt, err, err$1, hs, i, identity, mode, modeOK, needClientCerts, ok, plaintext, psk, pskBinder, pskSuite, sessionHasClientCerts, sessionState$1, transcript, x, x$1, x$2, $s, $r, $c} = $restore(this, {}); + var {_i, _i$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _v, binderKey, c, clientHelloBytes, createdAt, earlyTrafficSecret, err, err$1, err$2, err$3, hs, i, identity, mode, modeOK, needClientCerts, plaintext, pskBinder, pskSuite, sessionHasClientCerts, sessionState$1, transcript, transcript$1, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: hs = this; c = hs.c; @@ -254678,34 +256484,59 @@ $packages["crypto/tls"] = (function() { if (i >= 5) { /* break; */ $s = 5; continue; } - _r$1 = c.decryptTicket(identity.label); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - plaintext = _tuple[0]; - if (plaintext === sliceType$6.nil) { - _i$1++; - /* continue; */ $s = 4; continue; - } - sessionState$1 = new sessionStateTLS13.ptr(0, new $Uint64(0, 0), sliceType$6.nil, new Certificate.ptr(sliceType$11.nil, $ifaceNil, sliceType.nil, sliceType$6.nil, sliceType$11.nil, ptrType$6.nil)); - ok = sessionState$1.unmarshal(plaintext); - if (!ok) { + sessionState$1 = ptrType$21.nil; + /* */ if (!(c.config.UnwrapSession === $throwNilPointerError)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (!(c.config.UnwrapSession === $throwNilPointerError)) { */ case 6: + err = $ifaceNil; + _r$1 = c.config.UnwrapSession(identity.label, $clone(c.connectionStateLocked(), ConnectionState)); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + sessionState$1 = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + if (sessionState$1 === ptrType$21.nil) { + _i$1++; + /* continue; */ $s = 4; continue; + } + $s = 8; continue; + /* } else { */ case 7: + _r$2 = c.config.decryptTicket(identity.label, c.ticketKeys); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + plaintext = _r$2; + if (plaintext === sliceType$6.nil) { + _i$1++; + /* continue; */ $s = 4; continue; + } + err$1 = $ifaceNil; + _r$3 = ParseSessionState(plaintext); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$1 = _r$3; + sessionState$1 = _tuple$1[0]; + err$1 = _tuple$1[1]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + _i$1++; + /* continue; */ $s = 4; continue; + } + /* } */ case 8: + if (!((sessionState$1.version === 772))) { _i$1++; /* continue; */ $s = 4; continue; } createdAt = $clone(time.Unix(((x = sessionState$1.createdAt, new $Int64(x.$high, x.$low))), new $Int64(0, 0)), time.Time); - _r$2 = c.config.time(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = $clone(_r$2, time.Time).Sub($clone(createdAt, time.Time)); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if ((x$1 = _r$3, (x$1.$high > 140815 || (x$1.$high === 140815 && x$1.$low > 4180213760)))) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if ((x$1 = _r$3, (x$1.$high > 140815 || (x$1.$high === 140815 && x$1.$low > 4180213760)))) { */ case 7: + _r$4 = c.config.time(); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$5 = $clone(_r$4, time.Time).Sub($clone(createdAt, time.Time)); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if ((x$1 = _r$5, (x$1.$high > 140815 || (x$1.$high === 140815 && x$1.$low > 4180213760)))) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if ((x$1 = _r$5, (x$1.$high > 140815 || (x$1.$high === 140815 && x$1.$low > 4180213760)))) { */ case 12: _i$1++; /* continue; */ $s = 4; continue; - /* } */ case 8: + /* } */ case 13: pskSuite = cipherSuiteTLS13ByID(sessionState$1.cipherSuite); - if (pskSuite === ptrType$2.nil || !((pskSuite.hash === hs.suite.hash))) { + if (pskSuite === ptrType$3.nil || !((pskSuite.hash === hs.suite.hash))) { _i$1++; /* continue; */ $s = 4; continue; } - sessionHasClientCerts = !((sessionState$1.certificate.Certificate.$length === 0)); + sessionHasClientCerts = !((sessionState$1.peerCertificates.$length === 0)); needClientCerts = requiresClientCert(c.config.ClientAuth); if (needClientCerts && !sessionHasClientCerts) { _i$1++; @@ -254715,56 +256546,82 @@ $packages["crypto/tls"] = (function() { _i$1++; /* continue; */ $s = 4; continue; } - _r$4 = hs.suite.expandLabel(sessionState$1.resumptionSecret, "resumption", sliceType$6.nil, new crypto.Hash(hs.suite.hash).Size()); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - psk = _r$4; - _r$5 = hs.suite.extract(psk, sliceType$6.nil); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - hs.earlySecret = _r$5; - _r$6 = hs.suite.deriveSecret(hs.earlySecret, "res binder", $ifaceNil); /* */ $s = 13; case 13: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - binderKey = _r$6; - _r$7 = cloneHash(hs.transcript, hs.suite.hash); /* */ $s = 14; case 14: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - transcript = _r$7; - /* */ if ($interfaceIsEqual(transcript, $ifaceNil)) { $s = 15; continue; } - /* */ $s = 16; continue; - /* if ($interfaceIsEqual(transcript, $ifaceNil)) { */ case 15: - _r$8 = c.sendAlert(80); /* */ $s = 17; case 17: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _r$8; - $s = -1; return errors.New("tls: internal error: failed to clone hash"); - /* } */ case 16: - _r$9 = hs.clientHello.marshalWithoutBinders(); /* */ $s = 18; case 18: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _tuple$1 = _r$9; - clientHelloBytes = _tuple$1[0]; - err = _tuple$1[1]; - /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 19; continue; } - /* */ $s = 20; continue; - /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 19: - _r$10 = c.sendAlert(80); /* */ $s = 21; case 21: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _r$10; - $s = -1; return err; - /* } */ case 20: - _r$11 = transcript.Write(clientHelloBytes); /* */ $s = 22; case 22: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _r$11; - _r$12 = hs.suite.finishedHash(binderKey, transcript); /* */ $s = 23; case 23: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - pskBinder = _r$12; - /* */ if (!hmac.Equal((x$2 = hs.clientHello.pskBinders, ((i < 0 || i >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i])), pskBinder)) { $s = 24; continue; } + if (!(sessionHasClientCerts)) { _v = false; $s = 18; continue s; } + _r$6 = c.config.time(); /* */ $s = 19; case 19: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$7 = $clone(_r$6, time.Time).After($clone((x$2 = sessionState$1.peerCertificates, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])).NotAfter, time.Time)); /* */ $s = 20; case 20: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _v = _r$7; case 18: + /* */ if (_v) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (_v) { */ case 16: + _i$1++; + /* continue; */ $s = 4; continue; + /* } */ case 17: + if (sessionHasClientCerts && c.config.ClientAuth >= 3 && (sessionState$1.verifiedChains.$length === 0)) { + _i$1++; + /* continue; */ $s = 4; continue; + } + _r$8 = hs.suite.extract(sessionState$1.secret, sliceType$6.nil); /* */ $s = 21; case 21: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + hs.earlySecret = _r$8; + _r$9 = hs.suite.deriveSecret(hs.earlySecret, "res binder", $ifaceNil); /* */ $s = 22; case 22: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + binderKey = _r$9; + _r$10 = cloneHash(hs.transcript, hs.suite.hash); /* */ $s = 23; case 23: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + transcript = _r$10; + /* */ if ($interfaceIsEqual(transcript, $ifaceNil)) { $s = 24; continue; } /* */ $s = 25; continue; - /* if (!hmac.Equal((x$2 = hs.clientHello.pskBinders, ((i < 0 || i >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i])), pskBinder)) { */ case 24: - _r$13 = c.sendAlert(51); /* */ $s = 26; case 26: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + /* if ($interfaceIsEqual(transcript, $ifaceNil)) { */ case 24: + _r$11 = c.sendAlert(80); /* */ $s = 26; case 26: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _r$11; + $s = -1; return errors.New("tls: internal error: failed to clone hash"); + /* } */ case 25: + _r$12 = hs.clientHello.marshalWithoutBinders(); /* */ $s = 27; case 27: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _tuple$2 = _r$12; + clientHelloBytes = _tuple$2[0]; + err$2 = _tuple$2[1]; + /* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 28: + _r$13 = c.sendAlert(80); /* */ $s = 30; case 30: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } _r$13; + $s = -1; return err$2; + /* } */ case 29: + _r$14 = transcript.Write(clientHelloBytes); /* */ $s = 31; case 31: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _r$14; + _r$15 = hs.suite.finishedHash(binderKey, transcript); /* */ $s = 32; case 32: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + pskBinder = _r$15; + /* */ if (!hmac.Equal((x$3 = hs.clientHello.pskBinders, ((i < 0 || i >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + i])), pskBinder)) { $s = 33; continue; } + /* */ $s = 34; continue; + /* if (!hmac.Equal((x$3 = hs.clientHello.pskBinders, ((i < 0 || i >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + i])), pskBinder)) { */ case 33: + _r$16 = c.sendAlert(51); /* */ $s = 35; case 35: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + _r$16; $s = -1; return errors.New("tls: invalid PSK binder"); - /* } */ case 25: + /* } */ case 34: + /* */ if (!(c.quic === ptrType$5.nil) && hs.clientHello.earlyData && (i === 0) && sessionState$1.EarlyData && (sessionState$1.cipherSuite === hs.suite.id) && sessionState$1.alpnProtocol === c.clientProtocol) { $s = 36; continue; } + /* */ $s = 37; continue; + /* if (!(c.quic === ptrType$5.nil) && hs.clientHello.earlyData && (i === 0) && sessionState$1.EarlyData && (sessionState$1.cipherSuite === hs.suite.id) && sessionState$1.alpnProtocol === c.clientProtocol) { */ case 36: + hs.earlyData = true; + _r$17 = new crypto.Hash(hs.suite.hash).New(); /* */ $s = 38; case 38: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + transcript$1 = _r$17; + _r$18 = transcriptMsg(hs.clientHello, transcript$1); /* */ $s = 39; case 39: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + err$3 = _r$18; + if (!($interfaceIsEqual(err$3, $ifaceNil))) { + $s = -1; return err$3; + } + _r$19 = hs.suite.deriveSecret(hs.earlySecret, "c e traffic", transcript$1); /* */ $s = 40; case 40: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + earlyTrafficSecret = _r$19; + c.quicSetReadSecret(1, hs.suite.id, earlyTrafficSecret); + /* } */ case 37: c.didResume = true; - _r$14 = c.processCertsFromClient($clone(sessionState$1.certificate, Certificate)); /* */ $s = 27; case 27: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - err$1 = _r$14; - if (!($interfaceIsEqual(err$1, $ifaceNil))) { - $s = -1; return err$1; - } + c.peerCertificates = sessionState$1.peerCertificates; + c.ocspResponse = sessionState$1.ocspResponse; + c.scts = sessionState$1.scts; + c.verifiedChains = sessionState$1.verifiedChains; hs.hello.selectedIdentityPresent = true; hs.hello.selectedIdentity = ((i << 16 >>> 16)); hs.usingPSK = true; $s = -1; return $ifaceNil; case 5: $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: checkForResumption, $c: true, $r, _i, _i$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _tuple$1, binderKey, c, clientHelloBytes, createdAt, err, err$1, hs, i, identity, mode, modeOK, needClientCerts, ok, plaintext, psk, pskBinder, pskSuite, sessionHasClientCerts, sessionState$1, transcript, x, x$1, x$2, $s};return $f; + /* */ } return; } var $f = {$blk: checkForResumption, $c: true, $r, _i, _i$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _v, binderKey, c, clientHelloBytes, createdAt, earlyTrafficSecret, err, err$1, err$2, err$3, hs, i, identity, mode, modeOK, needClientCerts, plaintext, pskBinder, pskSuite, sessionHasClientCerts, sessionState$1, transcript, transcript$1, x, x$1, x$2, x$3, $s};return $f; }; cloneHash = function cloneHash$1(in$1, h) { var {_r, _r$1, _r$2, _tuple, _tuple$1, _tuple$2, err, err$1, h, in$1, marshaler, ok, out, state, unmarshaler, $s, $r, $c} = $restore(this, {in$1, h}); @@ -254851,6 +256708,9 @@ $packages["crypto/tls"] = (function() { var {$24r, _r, hs, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: hs = this; + if (!(hs.c.quic === ptrType$5.nil)) { + $s = -1; return $ifaceNil; + } if (hs.sentDummyCCS) { $s = -1; return $ifaceNil; } @@ -254877,7 +256737,7 @@ $packages["crypto/tls"] = (function() { _r$2; _r$3 = hs.transcript.Write(chHash); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _r$3; - helloRetryRequest = new serverHelloMsg.ptr(sliceType$6.nil, hs.hello.vers, helloRetryRequestRandom, hs.hello.sessionId, hs.hello.cipherSuite, hs.hello.compressionMethod, false, false, false, sliceType$6.nil, "", sliceType$11.nil, hs.hello.supportedVersion, new keyShare.ptr(0, sliceType$6.nil), false, 0, sliceType$6.nil, sliceType$6.nil, selectedGroup); + helloRetryRequest = new serverHelloMsg.ptr(sliceType$6.nil, hs.hello.vers, helloRetryRequestRandom, hs.hello.sessionId, hs.hello.cipherSuite, hs.hello.compressionMethod, false, false, false, sliceType$6.nil, false, "", sliceType$11.nil, hs.hello.supportedVersion, new keyShare.ptr(0, sliceType$6.nil), false, 0, sliceType$6.nil, sliceType$6.nil, selectedGroup); _r$4 = hs.c.writeHandshakeRecord(helloRetryRequest, hs.transcript); /* */ $s = 6; case 6: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _tuple = _r$4; err$1 = _tuple[1]; @@ -254896,7 +256756,7 @@ $packages["crypto/tls"] = (function() { if (!($interfaceIsEqual(err$3, $ifaceNil))) { $s = -1; return err$3; } - _tuple$2 = $assertType(msg, ptrType$27, true); + _tuple$2 = $assertType(msg, ptrType$33, true); clientHello = _tuple$2[0]; ok = _tuple$2[1]; /* */ if (!ok) { $s = 9; continue; } @@ -255001,7 +256861,7 @@ $packages["crypto/tls"] = (function() { return !((ch.vers === ch1.vers)) || !bytes.Equal(ch.random, ch1.random) || !bytes.Equal(ch.sessionId, ch1.sessionId) || !bytes.Equal(ch.compressionMethods, ch1.compressionMethods) || !(ch.serverName === ch1.serverName) || !(ch.ocspStapling === ch1.ocspStapling) || !bytes.Equal(ch.supportedPoints, ch1.supportedPoints) || !(ch.ticketSupported === ch1.ticketSupported) || !bytes.Equal(ch.sessionTicket, ch1.sessionTicket) || !(ch.secureRenegotiationSupported === ch1.secureRenegotiationSupported) || !bytes.Equal(ch.secureRenegotiation, ch1.secureRenegotiation) || !(ch.scts === ch1.scts) || !bytes.Equal(ch.cookie, ch1.cookie) || !bytes.Equal(ch.pskModes, ch1.pskModes); }; $ptrType(serverHandshakeStateTLS13).prototype.sendServerParameters = function sendServerParameters() { - var {_arg, _arg$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, c, clientSecret, earlySecret, encryptedExtensions, err, err$1, err$2, err$3, err$4, hs, selectedProto, serverSecret, $s, $r, $c} = $restore(this, {}); + var {_arg, _arg$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, c, clientSecret, earlySecret, encryptedExtensions, err, err$1, err$2, err$3, err$4, err$5, hs, p, serverSecret, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: hs = this; c = hs.c; @@ -255035,50 +256895,63 @@ $packages["crypto/tls"] = (function() { hs.handshakeSecret = _r$5; _r$6 = hs.suite.deriveSecret(hs.handshakeSecret, "c hs traffic", hs.transcript); /* */ $s = 9; case 9: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } clientSecret = _r$6; - $r = c.in$28.setTrafficSecret(hs.suite, clientSecret); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = c.in$30.setTrafficSecret(hs.suite, 2, clientSecret); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _r$7 = hs.suite.deriveSecret(hs.handshakeSecret, "s hs traffic", hs.transcript); /* */ $s = 11; case 11: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } serverSecret = _r$7; - $r = c.out.setTrafficSecret(hs.suite, serverSecret); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$8 = c.config.writeKeyLog("CLIENT_HANDSHAKE_TRAFFIC_SECRET", hs.clientHello.random, clientSecret); /* */ $s = 13; case 13: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - err$3 = _r$8; - /* */ if (!($interfaceIsEqual(err$3, $ifaceNil))) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (!($interfaceIsEqual(err$3, $ifaceNil))) { */ case 14: - _r$9 = c.sendAlert(80); /* */ $s = 16; case 16: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _r$9; - $s = -1; return err$3; - /* } */ case 15: - _r$10 = c.config.writeKeyLog("SERVER_HANDSHAKE_TRAFFIC_SECRET", hs.clientHello.random, serverSecret); /* */ $s = 17; case 17: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - err$3 = _r$10; - /* */ if (!($interfaceIsEqual(err$3, $ifaceNil))) { $s = 18; continue; } - /* */ $s = 19; continue; - /* if (!($interfaceIsEqual(err$3, $ifaceNil))) { */ case 18: - _r$11 = c.sendAlert(80); /* */ $s = 20; case 20: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _r$11; + $r = c.out.setTrafficSecret(hs.suite, 2, serverSecret); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!(c.quic === ptrType$5.nil)) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (!(c.quic === ptrType$5.nil)) { */ case 13: + /* */ if (!((c.hand.Len() === 0))) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (!((c.hand.Len() === 0))) { */ case 15: + _r$8 = c.sendAlert(10); /* */ $s = 17; case 17: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$8; + /* } */ case 16: + c.quicSetWriteSecret(2, hs.suite.id, serverSecret); + c.quicSetReadSecret(2, hs.suite.id, clientSecret); + /* } */ case 14: + _r$9 = c.config.writeKeyLog("CLIENT_HANDSHAKE_TRAFFIC_SECRET", hs.clientHello.random, clientSecret); /* */ $s = 18; case 18: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + err$3 = _r$9; + /* */ if (!($interfaceIsEqual(err$3, $ifaceNil))) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (!($interfaceIsEqual(err$3, $ifaceNil))) { */ case 19: + _r$10 = c.sendAlert(80); /* */ $s = 21; case 21: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$10; $s = -1; return err$3; - /* } */ case 19: - encryptedExtensions = new encryptedExtensionsMsg.ptr(sliceType$6.nil, ""); - _r$12 = negotiateALPN(c.config.NextProtos, hs.clientHello.alpnProtocols); /* */ $s = 21; case 21: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _tuple$1 = _r$12; - selectedProto = _tuple$1[0]; - err$3 = _tuple$1[1]; - /* */ if (!($interfaceIsEqual(err$3, $ifaceNil))) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if (!($interfaceIsEqual(err$3, $ifaceNil))) { */ case 22: - _r$13 = c.sendAlert(120); /* */ $s = 24; case 24: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - _r$13; + /* } */ case 20: + _r$11 = c.config.writeKeyLog("SERVER_HANDSHAKE_TRAFFIC_SECRET", hs.clientHello.random, serverSecret); /* */ $s = 22; case 22: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + err$3 = _r$11; + /* */ if (!($interfaceIsEqual(err$3, $ifaceNil))) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (!($interfaceIsEqual(err$3, $ifaceNil))) { */ case 23: + _r$12 = c.sendAlert(80); /* */ $s = 25; case 25: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _r$12; $s = -1; return err$3; - /* } */ case 23: - encryptedExtensions.alpnProtocol = selectedProto; - c.clientProtocol = selectedProto; - _r$14 = hs.c.writeHandshakeRecord(encryptedExtensions, hs.transcript); /* */ $s = 25; case 25: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + /* } */ case 24: + encryptedExtensions = new encryptedExtensionsMsg.ptr(sliceType$6.nil, "", sliceType$6.nil, false); + encryptedExtensions.alpnProtocol = c.clientProtocol; + /* */ if (!(c.quic === ptrType$5.nil)) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (!(c.quic === ptrType$5.nil)) { */ case 26: + _r$13 = c.quicGetTransportParameters(); /* */ $s = 28; case 28: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _tuple$1 = _r$13; + p = _tuple$1[0]; + err$4 = _tuple$1[1]; + if (!($interfaceIsEqual(err$4, $ifaceNil))) { + $s = -1; return err$4; + } + encryptedExtensions.quicTransportParameters = p; + encryptedExtensions.earlyData = hs.earlyData; + /* } */ case 27: + _r$14 = hs.c.writeHandshakeRecord(encryptedExtensions, hs.transcript); /* */ $s = 29; case 29: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } _tuple$2 = _r$14; - err$4 = _tuple$2[1]; - if (!($interfaceIsEqual(err$4, $ifaceNil))) { - $s = -1; return err$4; + err$5 = _tuple$2[1]; + if (!($interfaceIsEqual(err$5, $ifaceNil))) { + $s = -1; return err$5; } $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: sendServerParameters, $c: true, $r, _arg, _arg$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, c, clientSecret, earlySecret, encryptedExtensions, err, err$1, err$2, err$3, err$4, hs, selectedProto, serverSecret, $s};return $f; + /* */ } return; } var $f = {$blk: sendServerParameters, $c: true, $r, _arg, _arg$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, c, clientSecret, earlySecret, encryptedExtensions, err, err$1, err$2, err$3, err$4, err$5, hs, p, serverSecret, $s};return $f; }; $ptrType(serverHandshakeStateTLS13).prototype.requestClientCert = function requestClientCert() { var hs; @@ -255086,7 +256959,7 @@ $packages["crypto/tls"] = (function() { return hs.c.config.ClientAuth >= 1 && !hs.usingPSK; }; $ptrType(serverHandshakeStateTLS13).prototype.sendServerCertificate = function sendServerCertificate() { - var {$24r, $24r$1, _q, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, c, certMsg, certReq, certVerifyMsg, err, err$1, err$2, err$3, hs, ok, public$1, rsaKey, sig, sigHash, sigType, signOpts, signed, $s, $r, $c} = $restore(this, {}); + var {$24r, $24r$1, _q, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, c, certMsg, certReq, certVerifyMsg, err, err$1, err$2, err$3, hs, ok, public$1, rsaKey, sig, sigHash, sigType, signOpts, signed, x, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: hs = this; c = hs.c; @@ -255110,8 +256983,8 @@ $packages["crypto/tls"] = (function() { $s = -1; return err; } /* } */ case 2: - certMsg = new certificateMsgTLS13.ptr(sliceType$6.nil, new Certificate.ptr(sliceType$11.nil, $ifaceNil, sliceType.nil, sliceType$6.nil, sliceType$11.nil, ptrType$6.nil), false, false); - Certificate.copy(certMsg.certificate, hs.cert); + certMsg = new certificateMsgTLS13.ptr(sliceType$6.nil, new Certificate.ptr(sliceType$11.nil, $ifaceNil, sliceType.nil, sliceType$6.nil, sliceType$11.nil, ptrType$7.nil), false, false); + Certificate.copy(certMsg.certificate, (x = hs.cert, (x === ptrType$34.nil && $throwNilPointerError(), x))); certMsg.scts = hs.clientHello.scts && hs.cert.SignedCertificateTimestamps.$length > 0; certMsg.ocspStapling = hs.clientHello.ocspStapling && hs.cert.OCSPStaple.$length > 0; _r$1 = hs.c.writeHandshakeRecord(certMsg, hs.transcript); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } @@ -255150,7 +257023,7 @@ $packages["crypto/tls"] = (function() { /* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 12: _r$6 = $assertType(hs.cert.PrivateKey, crypto.Signer).Public(); /* */ $s = 14; case 14: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } public$1 = _r$6; - _tuple$4 = $assertType(public$1, ptrType$13, true); + _tuple$4 = $assertType(public$1, ptrType$14, true); rsaKey = _tuple$4[0]; ok = _tuple$4[1]; /* */ if (ok && (sigType === 226) && (_q = rsaKey.N.BitLen() / 8, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) < (($imul(new crypto.Hash(sigHash).Size(), 2)) + 2 >> 0)) { $s = 15; continue; } @@ -255176,10 +257049,10 @@ $packages["crypto/tls"] = (function() { $s = -1; return err$3; } $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: sendServerCertificate, $c: true, $r, $24r, $24r$1, _q, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, c, certMsg, certReq, certVerifyMsg, err, err$1, err$2, err$3, hs, ok, public$1, rsaKey, sig, sigHash, sigType, signOpts, signed, $s};return $f; + /* */ } return; } var $f = {$blk: sendServerCertificate, $c: true, $r, $24r, $24r$1, _q, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, c, certMsg, certReq, certVerifyMsg, err, err$1, err$2, err$3, hs, ok, public$1, rsaKey, sig, sigHash, sigType, signOpts, signed, x, $s};return $f; }; $ptrType(serverHandshakeStateTLS13).prototype.sendServerFinished = function sendServerFinished() { - var {_arg, _arg$1, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, c, err, err$1, err$2, finished, hs, serverSecret, $s, $r, $c} = $restore(this, {}); + var {_arg, _arg$1, _r, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, c, err, err$1, err$2, finished, hs, serverSecret, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: hs = this; c = hs.c; @@ -255200,38 +257073,49 @@ $packages["crypto/tls"] = (function() { hs.trafficSecret = _r$4; _r$5 = hs.suite.deriveSecret(hs.masterSecret, "s ap traffic", hs.transcript); /* */ $s = 6; case 6: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } serverSecret = _r$5; - $r = c.out.setTrafficSecret(hs.suite, serverSecret); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$6 = c.config.writeKeyLog("CLIENT_TRAFFIC_SECRET_0", hs.clientHello.random, hs.trafficSecret); /* */ $s = 8; case 8: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - err$1 = _r$6; - /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 9: - _r$7 = c.sendAlert(80); /* */ $s = 11; case 11: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _r$7; + $r = c.out.setTrafficSecret(hs.suite, 3, serverSecret); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!(c.quic === ptrType$5.nil)) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!(c.quic === ptrType$5.nil)) { */ case 8: + /* */ if (!((c.hand.Len() === 0))) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (!((c.hand.Len() === 0))) { */ case 10: + _r$6 = c.sendAlert(10); /* */ $s = 12; case 12: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$6; + /* } */ case 11: + c.quicSetWriteSecret(3, hs.suite.id, serverSecret); + /* } */ case 9: + _r$7 = c.config.writeKeyLog("CLIENT_TRAFFIC_SECRET_0", hs.clientHello.random, hs.trafficSecret); /* */ $s = 13; case 13: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + err$1 = _r$7; + /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 14: + _r$8 = c.sendAlert(80); /* */ $s = 16; case 16: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$8; $s = -1; return err$1; - /* } */ case 10: - _r$8 = c.config.writeKeyLog("SERVER_TRAFFIC_SECRET_0", hs.clientHello.random, serverSecret); /* */ $s = 12; case 12: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - err$1 = _r$8; - /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 13: - _r$9 = c.sendAlert(80); /* */ $s = 15; case 15: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _r$9; + /* } */ case 15: + _r$9 = c.config.writeKeyLog("SERVER_TRAFFIC_SECRET_0", hs.clientHello.random, serverSecret); /* */ $s = 17; case 17: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + err$1 = _r$9; + /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 18: + _r$10 = c.sendAlert(80); /* */ $s = 20; case 20: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$10; $s = -1; return err$1; - /* } */ case 14: - _r$10 = hs.suite.exportKeyingMaterial(hs.masterSecret, hs.transcript); /* */ $s = 16; case 16: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - c.ekm = _r$10; - /* */ if (!hs.requestClientCert()) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (!hs.requestClientCert()) { */ case 17: - _r$11 = hs.sendSessionTickets(); /* */ $s = 19; case 19: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - err$2 = _r$11; + /* } */ case 19: + _r$11 = hs.suite.exportKeyingMaterial(hs.masterSecret, hs.transcript); /* */ $s = 21; case 21: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + c.ekm = _r$11; + /* */ if (!hs.requestClientCert()) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (!hs.requestClientCert()) { */ case 22: + _r$12 = hs.sendSessionTickets(); /* */ $s = 24; case 24: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + err$2 = _r$12; if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = -1; return err$2; } - /* } */ case 18: + /* } */ case 23: $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: sendServerFinished, $c: true, $r, _arg, _arg$1, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, c, err, err$1, err$2, finished, hs, serverSecret, $s};return $f; + /* */ } return; } var $f = {$blk: sendServerFinished, $c: true, $r, _arg, _arg$1, _r, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, c, err, err$1, err$2, finished, hs, serverSecret, $s};return $f; }; $ptrType(serverHandshakeStateTLS13).prototype.shouldSendSessionTickets = function shouldSendSessionTickets() { var _i, _ref, hs, pskMode; @@ -255239,6 +257123,9 @@ $packages["crypto/tls"] = (function() { if (hs.c.config.SessionTicketsDisabled) { return false; } + if (!(hs.c.quic === ptrType$5.nil)) { + return false; + } _ref = hs.clientHello.pskModes; _i = 0; while (true) { @@ -255252,11 +257139,11 @@ $packages["crypto/tls"] = (function() { return false; }; $ptrType(serverHandshakeStateTLS13).prototype.sendSessionTickets = function sendSessionTickets() { - var {_i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _tuple$1, _tuple$2, _tuple$3, ageAdd, c, cert, certsFromClient, err, err$1, err$2, finishedMsg$1, hs, m, resumptionSecret, state, stateBytes, x, $s, $r, $c} = $restore(this, {}); + var {$24r, _r, _r$1, _r$2, _r$3, c, err, finishedMsg$1, hs, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: hs = this; c = hs.c; - _r = hs.suite.finishedHash(c.in$28.trafficSecret, hs.transcript); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = hs.suite.finishedHash(c.in$30.trafficSecret, hs.transcript); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } hs.clientFinished = _r; finishedMsg$1 = new finishedMsg.ptr(sliceType$6.nil, hs.clientFinished); _r$1 = transcriptMsg(finishedMsg$1, hs.transcript); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } @@ -255264,59 +257151,87 @@ $packages["crypto/tls"] = (function() { if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return err; } + _r$2 = hs.suite.deriveSecret(hs.masterSecret, "res master", hs.transcript); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + c.resumptionSecret = _r$2; if (!hs.shouldSendSessionTickets()) { $s = -1; return $ifaceNil; } - _r$2 = hs.suite.deriveSecret(hs.masterSecret, "res master", hs.transcript); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - resumptionSecret = _r$2; - m = new newSessionTicketMsgTLS13.ptr(sliceType$6.nil, 0, 0, sliceType$6.nil, sliceType$6.nil, 0); - certsFromClient = sliceType$11.nil; - _ref = c.peerCertificates; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - cert = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - certsFromClient = $append(certsFromClient, cert.Raw); - _i++; + _r$3 = c.sendSessionTicket(false); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3; + $s = 5; case 5: return $24r; + /* */ } return; } var $f = {$blk: sendSessionTickets, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, c, err, finishedMsg$1, hs, $s};return $f; + }; + $ptrType(Conn).prototype.sendSessionTicket = function sendSessionTicket(earlyData) { + var {_r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, ageAdd, c, earlyData, err, err$1, err$2, m, psk, state, stateBytes, suite, $s, $r, $c} = $restore(this, {earlyData}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + c = this; + suite = cipherSuiteTLS13ByID(c.cipherSuite); + if (suite === ptrType$3.nil) { + $s = -1; return errors.New("tls: internal error: unknown cipher suite"); } - _r$3 = c.config.time(); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$4 = $clone(_r$3, time.Time).Unix(); /* */ $s = 5; case 5: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - state = new sessionStateTLS13.ptr(hs.suite.id, ((x = _r$4, new $Uint64(x.$high, x.$low))), resumptionSecret, $clone(new Certificate.ptr(certsFromClient, $ifaceNil, sliceType.nil, c.ocspResponse, c.scts, ptrType$6.nil), Certificate)); - _r$5 = state.marshal(); /* */ $s = 6; case 6: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _tuple = _r$5; - stateBytes = _tuple[0]; - err$1 = _tuple[1]; - /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 7: - _r$6 = c.sendAlert(80); /* */ $s = 9; case 9: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _r$6; - $s = -1; return err$1; - /* } */ case 8: - _r$7 = c.encryptTicket(stateBytes); /* */ $s = 10; case 10: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _tuple$1 = _r$7; - m.label = _tuple$1[0]; - err$1 = _tuple$1[1]; - if (!($interfaceIsEqual(err$1, $ifaceNil))) { - $s = -1; return err$1; + _r = suite.expandLabel(c.resumptionSecret, "resumption", sliceType$6.nil, new crypto.Hash(suite.hash).Size()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + psk = _r; + m = new newSessionTicketMsgTLS13.ptr(sliceType$6.nil, 0, 0, sliceType$6.nil, sliceType$6.nil, 0); + _r$1 = c.sessionState(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + state = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; } + state.secret = psk; + state.EarlyData = earlyData; + /* */ if (!(c.config.WrapSession === $throwNilPointerError)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!(c.config.WrapSession === $throwNilPointerError)) { */ case 3: + _r$2 = c.config.WrapSession($clone(c.connectionStateLocked(), ConnectionState), state); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$1 = _r$2; + m.label = _tuple$1[0]; + err = _tuple$1[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $s = 5; continue; + /* } else { */ case 4: + _r$3 = state.Bytes(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$2 = _r$3; + stateBytes = _tuple$2[0]; + err$1 = _tuple$2[1]; + /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 8: + _r$4 = c.sendAlert(80); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4; + $s = -1; return err$1; + /* } */ case 9: + _r$5 = c.config.encryptTicket(stateBytes, c.ticketKeys); /* */ $s = 11; case 11: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$3 = _r$5; + m.label = _tuple$3[0]; + err$1 = _tuple$3[1]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return err$1; + } + /* } */ case 5: m.lifetime = 604800; ageAdd = $makeSlice(sliceType$6, 4); - _r$8 = hs.c.config.rand().Read(ageAdd); /* */ $s = 11; case 11: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _tuple$2 = _r$8; - err$1 = _tuple$2[1]; - if (!($interfaceIsEqual(err$1, $ifaceNil))) { - $s = -1; return err$1; + _r$6 = c.config.rand().Read(ageAdd); /* */ $s = 12; case 12: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _tuple$4 = _r$6; + err = _tuple$4[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; } m.ageAdd = $clone(binary.LittleEndian, binary.littleEndian).Uint32(ageAdd); - _r$9 = c.writeHandshakeRecord(m, $ifaceNil); /* */ $s = 12; case 12: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _tuple$3 = _r$9; - err$2 = _tuple$3[1]; + if (earlyData) { + m.maxEarlyData = 4294967295; + } + _r$7 = c.writeHandshakeRecord(m, $ifaceNil); /* */ $s = 13; case 13: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _tuple$5 = _r$7; + err$2 = _tuple$5[1]; if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = -1; return err$2; } $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: sendSessionTickets, $c: true, $r, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _tuple$1, _tuple$2, _tuple$3, ageAdd, c, cert, certsFromClient, err, err$1, err$2, finishedMsg$1, hs, m, resumptionSecret, state, stateBytes, x, $s};return $f; + /* */ } return; } var $f = {$blk: sendSessionTicket, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, ageAdd, c, earlyData, err, err$1, err$2, m, psk, state, stateBytes, suite, $s};return $f; }; $ptrType(serverHandshakeStateTLS13).prototype.readClientCertificate = function readClientCertificate() { var {$24r, $24r$1, $24r$2, $24r$3, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, c, certMsg, certVerify, err, err$1, err$2, err$3, err$4, err$5, err$6, err$7, hs, msg, ok, ok$1, sigHash, sigType, signed, x, $s, $r, $c} = $restore(this, {}); @@ -255348,7 +257263,7 @@ $packages["crypto/tls"] = (function() { if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return err$1; } - _tuple$1 = $assertType(msg, ptrType$28, true); + _tuple$1 = $assertType(msg, ptrType$35, true); certMsg = _tuple$1[0]; ok = _tuple$1[1]; /* */ if (!ok) { $s = 10; continue; } @@ -255388,7 +257303,7 @@ $packages["crypto/tls"] = (function() { if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return err$1; } - _tuple$3 = $assertType(msg, ptrType$29, true); + _tuple$3 = $assertType(msg, ptrType$36, true); certVerify = _tuple$3[0]; ok$1 = _tuple$3[1]; /* */ if (!ok$1) { $s = 25; continue; } @@ -255466,7 +257381,7 @@ $packages["crypto/tls"] = (function() { if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return err; } - _tuple$1 = $assertType(msg, ptrType$30, true); + _tuple$1 = $assertType(msg, ptrType$37, true); finished = _tuple$1[0]; ok = _tuple$1[1]; /* */ if (!ok) { $s = 2; continue; } @@ -255485,7 +257400,7 @@ $packages["crypto/tls"] = (function() { _r$3; $s = -1; return errors.New("tls: invalid client finished hash"); /* } */ case 8: - $r = c.in$28.setTrafficSecret(hs.suite, hs.trafficSecret); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = c.in$30.setTrafficSecret(hs.suite, 3, hs.trafficSecret); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return $ifaceNil; /* */ } return; } var $f = {$blk: readClientFinished, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, c, err, finished, hs, msg, ok, $s};return $f; }; @@ -255503,19 +257418,19 @@ $packages["crypto/tls"] = (function() { /* */ if (c.vers === 772) { $s = 2; continue; } /* */ $s = 3; continue; /* if (c.vers === 772) { */ case 2: - hs = new serverHandshakeStateTLS13.ptr(c, ctx, clientHello, ptrType$31.nil, false, false, ptrType$2.nil, ptrType$32.nil, 0, sliceType$6.nil, sliceType$6.nil, sliceType$6.nil, sliceType$6.nil, sliceType$6.nil, $ifaceNil, sliceType$6.nil); + hs = new serverHandshakeStateTLS13.ptr(c, ctx, clientHello, ptrType$38.nil, false, false, false, ptrType$3.nil, ptrType$34.nil, 0, sliceType$6.nil, sliceType$6.nil, sliceType$6.nil, sliceType$6.nil, sliceType$6.nil, $ifaceNil, sliceType$6.nil); _r$1 = hs.handshake(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $24r = _r$1; $s = 5; case 5: return $24r; /* } */ case 3: - hs$1 = new serverHandshakeState.ptr(c, ctx, clientHello, ptrType$31.nil, ptrType$3.nil, false, false, false, false, ptrType$33.nil, new finishedHash.ptr($ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, sliceType$6.nil, 0, $throwNilPointerError), sliceType$6.nil, ptrType$32.nil); + hs$1 = new serverHandshakeState.ptr(c, ctx, clientHello, ptrType$38.nil, ptrType$2.nil, false, false, false, false, ptrType$21.nil, new finishedHash.ptr($ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, sliceType$6.nil, 0, $throwNilPointerError), sliceType$6.nil, ptrType$34.nil); _r$2 = hs$1.handshake(); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $24r$1 = _r$2; $s = 7; case 7: return $24r$1; /* */ } return; } var $f = {$blk: serverHandshake, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _tuple, c, clientHello, ctx, err, hs, hs$1, $s};return $f; }; $ptrType(serverHandshakeState).prototype.handshake = function handshake$1() { - var {_r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, c, err, err$1, err$10, err$11, err$12, err$13, err$2, err$3, err$4, err$5, err$6, err$7, err$8, err$9, hs, $s, $r, $c} = $restore(this, {}); + var {_r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, c, err, err$1, err$10, err$11, err$12, err$13, err$14, err$2, err$3, err$4, err$5, err$6, err$7, err$8, err$9, hs, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: hs = this; c = hs.c; @@ -255525,88 +257440,91 @@ $packages["crypto/tls"] = (function() { $s = -1; return err; } c.buffering = true; - _r$1 = hs.checkForResumption(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (_r$1) { */ case 2: - c.didResume = true; + _r$1 = hs.checkForResumption(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + err$1 = _r$1; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return err$1; + } + /* */ if (!(hs.sessionState === ptrType$21.nil)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!(hs.sessionState === ptrType$21.nil)) { */ case 3: _r$2 = hs.doResumeHandshake(); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - err$1 = _r$2; - if (!($interfaceIsEqual(err$1, $ifaceNil))) { - $s = -1; return err$1; - } - _r$3 = hs.establishKeys(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - err$2 = _r$3; + err$2 = _r$2; if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = -1; return err$2; } - _r$4 = hs.sendSessionTicket(); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - err$3 = _r$4; + _r$3 = hs.establishKeys(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + err$3 = _r$3; if (!($interfaceIsEqual(err$3, $ifaceNil))) { $s = -1; return err$3; } - _r$5 = hs.sendFinished(new sliceType$6(c.serverFinished)); /* */ $s = 9; case 9: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - err$4 = _r$5; + _r$4 = hs.sendSessionTicket(); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + err$4 = _r$4; if (!($interfaceIsEqual(err$4, $ifaceNil))) { $s = -1; return err$4; } - _r$6 = c.flush(); /* */ $s = 10; case 10: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _tuple = _r$6; - err$5 = _tuple[1]; + _r$5 = hs.sendFinished(new sliceType$6(c.serverFinished)); /* */ $s = 9; case 9: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + err$5 = _r$5; if (!($interfaceIsEqual(err$5, $ifaceNil))) { $s = -1; return err$5; } - c.clientFinishedIsFirst = false; - _r$7 = hs.readFinished(sliceType$6.nil); /* */ $s = 11; case 11: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - err$6 = _r$7; + _r$6 = c.flush(); /* */ $s = 10; case 10: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _tuple = _r$6; + err$6 = _tuple[1]; if (!($interfaceIsEqual(err$6, $ifaceNil))) { $s = -1; return err$6; } - $s = 4; continue; - /* } else { */ case 3: - _r$8 = hs.pickCipherSuite(); /* */ $s = 12; case 12: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - err$7 = _r$8; + c.clientFinishedIsFirst = false; + _r$7 = hs.readFinished(sliceType$6.nil); /* */ $s = 11; case 11: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + err$7 = _r$7; if (!($interfaceIsEqual(err$7, $ifaceNil))) { $s = -1; return err$7; } - _r$9 = hs.doFullHandshake(); /* */ $s = 13; case 13: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - err$8 = _r$9; + $s = 5; continue; + /* } else { */ case 4: + _r$8 = hs.pickCipherSuite(); /* */ $s = 12; case 12: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + err$8 = _r$8; if (!($interfaceIsEqual(err$8, $ifaceNil))) { $s = -1; return err$8; } - _r$10 = hs.establishKeys(); /* */ $s = 14; case 14: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - err$9 = _r$10; + _r$9 = hs.doFullHandshake(); /* */ $s = 13; case 13: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + err$9 = _r$9; if (!($interfaceIsEqual(err$9, $ifaceNil))) { $s = -1; return err$9; } - _r$11 = hs.readFinished(new sliceType$6(c.clientFinished)); /* */ $s = 15; case 15: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - err$10 = _r$11; + _r$10 = hs.establishKeys(); /* */ $s = 14; case 14: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + err$10 = _r$10; if (!($interfaceIsEqual(err$10, $ifaceNil))) { $s = -1; return err$10; } - c.clientFinishedIsFirst = true; - c.buffering = true; - _r$12 = hs.sendSessionTicket(); /* */ $s = 16; case 16: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - err$11 = _r$12; + _r$11 = hs.readFinished(new sliceType$6(c.clientFinished)); /* */ $s = 15; case 15: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + err$11 = _r$11; if (!($interfaceIsEqual(err$11, $ifaceNil))) { $s = -1; return err$11; } - _r$13 = hs.sendFinished(sliceType$6.nil); /* */ $s = 17; case 17: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - err$12 = _r$13; + c.clientFinishedIsFirst = true; + c.buffering = true; + _r$12 = hs.sendSessionTicket(); /* */ $s = 16; case 16: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + err$12 = _r$12; if (!($interfaceIsEqual(err$12, $ifaceNil))) { $s = -1; return err$12; } - _r$14 = c.flush(); /* */ $s = 18; case 18: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - _tuple$1 = _r$14; - err$13 = _tuple$1[1]; + _r$13 = hs.sendFinished(sliceType$6.nil); /* */ $s = 17; case 17: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + err$13 = _r$13; if (!($interfaceIsEqual(err$13, $ifaceNil))) { $s = -1; return err$13; } - /* } */ case 4: + _r$14 = c.flush(); /* */ $s = 18; case 18: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _tuple$1 = _r$14; + err$14 = _tuple$1[1]; + if (!($interfaceIsEqual(err$14, $ifaceNil))) { + $s = -1; return err$14; + } + /* } */ case 5: c.ekm = ekmFromMasterSecret(c.vers, hs.suite, hs.masterSecret, hs.clientHello.random, hs.hello.random); c.isHandshakeComplete.Store(true); $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: handshake$1, $c: true, $r, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, c, err, err$1, err$10, err$11, err$12, err$13, err$2, err$3, err$4, err$5, err$6, err$7, err$8, err$9, hs, $s};return $f; + /* */ } return; } var $f = {$blk: handshake$1, $c: true, $r, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, c, err, err$1, err$10, err$11, err$12, err$13, err$14, err$2, err$3, err$4, err$5, err$6, err$7, err$8, err$9, hs, $s};return $f; }; $ptrType(Conn).prototype.readClientHello = function readClientHello(ctx) { var {$24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, _tuple$1, _tuple$2, _tuple$3, c, chi, clientHello, clientVersions, configForClient, ctx, err, msg, ok, originalConfig, $s, $r, $c} = $restore(this, {ctx}); @@ -255617,9 +257535,9 @@ $packages["crypto/tls"] = (function() { msg = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [ptrType$27.nil, err]; + $s = -1; return [ptrType$33.nil, err]; } - _tuple$1 = $assertType(msg, ptrType$27, true); + _tuple$1 = $assertType(msg, ptrType$33, true); clientHello = _tuple$1[0]; ok = _tuple$1[1]; /* */ if (!ok) { $s = 2; continue; } @@ -255628,10 +257546,10 @@ $packages["crypto/tls"] = (function() { _r$1 = c.sendAlert(10); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _r$1; _r$2 = unexpectedMessageError(clientHello, msg); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = [ptrType$27.nil, _r$2]; + $24r = [ptrType$33.nil, _r$2]; $s = 6; case 6: return $24r; /* } */ case 3: - configForClient = ptrType$5.nil; + configForClient = ptrType$6.nil; originalConfig = c.config; /* */ if (!(c.config.GetConfigForClient === $throwNilPointerError)) { $s = 7; continue; } /* */ $s = 8; continue; @@ -255642,13 +257560,13 @@ $packages["crypto/tls"] = (function() { configForClient = _tuple$2[0]; err = _tuple$2[1]; /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 10; continue; } - /* */ if (!(configForClient === ptrType$5.nil)) { $s = 11; continue; } + /* */ if (!(configForClient === ptrType$6.nil)) { $s = 11; continue; } /* */ $s = 12; continue; /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 10: _r$4 = c.sendAlert(80); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _r$4; - $s = -1; return [ptrType$27.nil, err]; - /* } else if (!(configForClient === ptrType$5.nil)) { */ case 11: + $s = -1; return [ptrType$33.nil, err]; + /* } else if (!(configForClient === ptrType$6.nil)) { */ case 11: c.config = configForClient; /* } */ case 12: /* } */ case 8: @@ -255667,11 +257585,11 @@ $packages["crypto/tls"] = (function() { _r$6 = c.sendAlert(70); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _r$6; _r$7 = fmt.Errorf("tls: client offered only unsupported versions: %x", new sliceType$7([clientVersions])); /* */ $s = 18; case 18: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - $24r$1 = [ptrType$27.nil, _r$7]; + $24r$1 = [ptrType$33.nil, _r$7]; $s = 19; case 19: return $24r$1; /* } */ case 16: c.haveVers = true; - c.in$28.version = c.vers; + c.in$30.version = c.vers; c.out.version = c.vers; $s = -1; return [clientHello, $ifaceNil]; /* */ } return; } var $f = {$blk: readClientHello, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, _tuple$1, _tuple$2, _tuple$3, c, chi, clientHello, clientVersions, configForClient, ctx, err, msg, ok, originalConfig, $s};return $f; @@ -255681,7 +257599,7 @@ $packages["crypto/tls"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: hs = this; c = hs.c; - hs.hello = new serverHelloMsg.ptr(sliceType$6.nil, 0, sliceType$6.nil, sliceType$6.nil, 0, 0, false, false, false, sliceType$6.nil, "", sliceType$11.nil, 0, new keyShare.ptr(0, sliceType$6.nil), false, 0, sliceType$6.nil, sliceType$6.nil, 0); + hs.hello = new serverHelloMsg.ptr(sliceType$6.nil, 0, sliceType$6.nil, sliceType$6.nil, 0, 0, false, false, false, sliceType$6.nil, false, "", sliceType$11.nil, 0, new keyShare.ptr(0, sliceType$6.nil), false, 0, sliceType$6.nil, sliceType$6.nil, 0); hs.hello.vers = c.vers; foundCompression = false; _ref = hs.clientHello.compressionMethods; @@ -255730,12 +257648,13 @@ $packages["crypto/tls"] = (function() { _r$3; $s = -1; return errors.New("tls: initial handshake had non-empty renegotiation extension"); /* } */ case 9: + hs.hello.extendedMasterSecret = hs.clientHello.extendedMasterSecret; hs.hello.secureRenegotiationSupported = hs.clientHello.secureRenegotiationSupported; hs.hello.compressionMethod = 0; if (hs.clientHello.serverName.length > 0) { c.serverName = hs.clientHello.serverName; } - _r$4 = negotiateALPN(c.config.NextProtos, hs.clientHello.alpnProtocols); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4 = negotiateALPN(c.config.NextProtos, hs.clientHello.alpnProtocols, false); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _tuple$1 = _r$4; selectedProto = _tuple$1[0]; err = _tuple$1[1]; @@ -255782,17 +257701,17 @@ $packages["crypto/tls"] = (function() { /* if (ok) { */ case 23: _r$9 = priv.Public(); /* */ $s = 25; case 25: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } _ref$1 = _r$9; - /* */ if ($assertType(_ref$1, ptrType$14, true)[1]) { $s = 26; continue; } + /* */ if ($assertType(_ref$1, ptrType$15, true)[1]) { $s = 26; continue; } /* */ if ($assertType(_ref$1, ed25519.PublicKey, true)[1]) { $s = 27; continue; } - /* */ if ($assertType(_ref$1, ptrType$13, true)[1]) { $s = 28; continue; } + /* */ if ($assertType(_ref$1, ptrType$14, true)[1]) { $s = 28; continue; } /* */ $s = 29; continue; - /* if ($assertType(_ref$1, ptrType$14, true)[1]) { */ case 26: + /* if ($assertType(_ref$1, ptrType$15, true)[1]) { */ case 26: hs.ecSignOk = true; $s = 30; continue; /* } else if ($assertType(_ref$1, ed25519.PublicKey, true)[1]) { */ case 27: hs.ecSignOk = true; $s = 30; continue; - /* } else if ($assertType(_ref$1, ptrType$13, true)[1]) { */ case 28: + /* } else if ($assertType(_ref$1, ptrType$14, true)[1]) { */ case 28: hs.rsaSignOk = true; $s = 30; continue; /* } else { */ case 29: @@ -255813,9 +257732,9 @@ $packages["crypto/tls"] = (function() { /* if (ok$1) { */ case 35: _r$13 = priv$1.Public(); /* */ $s = 37; case 37: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } _ref$2 = _r$13; - /* */ if ($assertType(_ref$2, ptrType$13, true)[1]) { $s = 38; continue; } + /* */ if ($assertType(_ref$2, ptrType$14, true)[1]) { $s = 38; continue; } /* */ $s = 39; continue; - /* if ($assertType(_ref$2, ptrType$13, true)[1]) { */ case 38: + /* if ($assertType(_ref$2, ptrType$14, true)[1]) { */ case 38: hs.rsaDecryptOk = true; $s = 40; continue; /* } else { */ case 39: @@ -255831,12 +257750,21 @@ $packages["crypto/tls"] = (function() { $s = -1; return $ifaceNil; /* */ } return; } var $f = {$blk: processClientHello$1, $c: true, $r, $24r, $24r$1, _arg, _arg$1, _i, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, c, compression, err, foundCompression, hs, maxVers, ok, ok$1, priv, priv$1, selectedProto, serverRandom, $s};return $f; }; - negotiateALPN = function negotiateALPN$1(serverProtos, clientProtos) { - var {$24r, _i, _i$1, _r, _ref, _ref$1, c, clientProtos, http11fallback, s, serverProtos, $s, $r, $c} = $restore(this, {serverProtos, clientProtos}); + negotiateALPN = function negotiateALPN$1(serverProtos, clientProtos, quic) { + var {$24r, $24r$1, _i, _i$1, _r, _r$1, _ref, _ref$1, c, clientProtos, http11fallback, quic, s, serverProtos, $s, $r, $c} = $restore(this, {serverProtos, clientProtos, quic}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if ((serverProtos.$length === 0) || (clientProtos.$length === 0)) { + /* */ if ((serverProtos.$length === 0) || (clientProtos.$length === 0)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ((serverProtos.$length === 0) || (clientProtos.$length === 0)) { */ case 1: + /* */ if (quic && !((serverProtos.$length === 0))) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (quic && !((serverProtos.$length === 0))) { */ case 3: + _r = fmt.Errorf("tls: client did not request an application protocol", sliceType$7.nil); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = ["", _r]; + $s = 6; case 6: return $24r; + /* } */ case 4: $s = -1; return ["", $ifaceNil]; - } + /* } */ case 2: http11fallback = false; _ref = serverProtos; _i = 0; @@ -255861,10 +257789,10 @@ $packages["crypto/tls"] = (function() { if (http11fallback) { $s = -1; return ["", $ifaceNil]; } - _r = fmt.Errorf("tls: client requested unsupported application protocols (%s)", new sliceType$7([clientProtos])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = ["", _r]; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: negotiateALPN$1, $c: true, $r, $24r, _i, _i$1, _r, _ref, _ref$1, c, clientProtos, http11fallback, s, serverProtos, $s};return $f; + _r$1 = fmt.Errorf("tls: client requested unsupported application protocols (%s)", new sliceType$7([clientProtos])); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r$1 = ["", _r$1]; + $s = 8; case 8: return $24r$1; + /* */ } return; } var $f = {$blk: negotiateALPN$1, $c: true, $r, $24r, $24r$1, _i, _i$1, _r, _r$1, _ref, _ref$1, c, clientProtos, http11fallback, quic, s, serverProtos, $s};return $f; }; supportsECDHE = function supportsECDHE$1(c, supportedCurves, supportedPoints) { var _i, _i$1, _ref, _ref$1, c, curve, pointFormat, supportedCurves, supportedPoints, supportsCurve, supportsPointFormat; @@ -255928,9 +257856,9 @@ $packages["crypto/tls"] = (function() { } _r = selectCipherSuite(preferenceList, hs.clientHello.cipherSuites, $methodVal(hs, "cipherSuiteOk")); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } hs.suite = _r; - /* */ if (hs.suite === ptrType$3.nil) { $s = 2; continue; } + /* */ if (hs.suite === ptrType$2.nil) { $s = 2; continue; } /* */ $s = 3; continue; - /* if (hs.suite === ptrType$3.nil) { */ case 2: + /* if (hs.suite === ptrType$2.nil) { */ case 2: _r$1 = c.sendAlert(40); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _r$1; $s = -1; return errors.New("tls: no cipher suite supported by both client and server"); @@ -255982,35 +257910,54 @@ $packages["crypto/tls"] = (function() { return true; }; $ptrType(serverHandshakeState).prototype.checkForResumption = function checkForResumption$1() { - var {_i, _r, _r$1, _r$2, _r$3, _ref, _tuple, c, cipherSuiteOk$1, createdAt, hs, id, needClientCerts, ok, plaintext, sessionHasClientCerts, usedOldKey, x, x$1, $s, $r, $c} = $restore(this, {}); + var {_i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _tuple, _tuple$1, _v, c, cipherSuiteOk$1, createdAt, err, err$1, hs, id, needClientCerts, plaintext, sessionHasClientCerts, sessionState$1, ss, ss$1, suite, x, x$1, x$2, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: hs = this; c = hs.c; if (c.config.SessionTicketsDisabled) { - $s = -1; return false; - } - _r = c.decryptTicket(hs.clientHello.sessionTicket); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - plaintext = _tuple[0]; - usedOldKey = _tuple[1]; - if (plaintext === sliceType$6.nil) { - $s = -1; return false; - } - hs.sessionState = new sessionState.ptr(0, 0, new $Uint64(0, 0), sliceType$6.nil, sliceType$11.nil, usedOldKey); - ok = hs.sessionState.unmarshal(plaintext); - if (!ok) { - $s = -1; return false; + $s = -1; return $ifaceNil; } - createdAt = $clone(time.Unix(((x = hs.sessionState.createdAt, new $Int64(x.$high, x.$low))), new $Int64(0, 0)), time.Time); - _r$1 = c.config.time(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = $clone(_r$1, time.Time).Sub($clone(createdAt, time.Time)); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if ((x$1 = _r$2, (x$1.$high > 140815 || (x$1.$high === 140815 && x$1.$low > 4180213760)))) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if ((x$1 = _r$2, (x$1.$high > 140815 || (x$1.$high === 140815 && x$1.$low > 4180213760)))) { */ case 2: - $s = -1; return false; + sessionState$1 = ptrType$21.nil; + /* */ if (!(c.config.UnwrapSession === $throwNilPointerError)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(c.config.UnwrapSession === $throwNilPointerError)) { */ case 1: + _r = c.config.UnwrapSession(hs.clientHello.sessionTicket, $clone(c.connectionStateLocked(), ConnectionState)); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + ss = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + if (ss === ptrType$21.nil) { + $s = -1; return $ifaceNil; + } + sessionState$1 = ss; + $s = 3; continue; + /* } else { */ case 2: + _r$1 = c.config.decryptTicket(hs.clientHello.sessionTicket, c.ticketKeys); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + plaintext = _r$1; + if (plaintext === sliceType$6.nil) { + $s = -1; return $ifaceNil; + } + _r$2 = ParseSessionState(plaintext); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$1 = _r$2; + ss$1 = _tuple$1[0]; + err$1 = _tuple$1[1]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return $ifaceNil; + } + sessionState$1 = ss$1; /* } */ case 3: - if (!((c.vers === hs.sessionState.vers))) { - $s = -1; return false; + createdAt = $clone(time.Unix(((x = sessionState$1.createdAt, new $Int64(x.$high, x.$low))), new $Int64(0, 0)), time.Time); + _r$3 = c.config.time(); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$4 = $clone(_r$3, time.Time).Sub($clone(createdAt, time.Time)); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if ((x$1 = _r$4, (x$1.$high > 140815 || (x$1.$high === 140815 && x$1.$low > 4180213760)))) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if ((x$1 = _r$4, (x$1.$high > 140815 || (x$1.$high === 140815 && x$1.$low > 4180213760)))) { */ case 7: + $s = -1; return $ifaceNil; + /* } */ case 8: + if (!((c.vers === sessionState$1.version))) { + $s = -1; return $ifaceNil; } cipherSuiteOk$1 = false; _ref = hs.clientHello.cipherSuites; @@ -256018,40 +257965,66 @@ $packages["crypto/tls"] = (function() { while (true) { if (!(_i < _ref.$length)) { break; } id = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (id === hs.sessionState.cipherSuite) { + if (id === sessionState$1.cipherSuite) { cipherSuiteOk$1 = true; break; } _i++; } if (!cipherSuiteOk$1) { - $s = -1; return false; + $s = -1; return $ifaceNil; } - _r$3 = selectCipherSuite(new sliceType$3([hs.sessionState.cipherSuite]), c.config.cipherSuites(), $methodVal(hs, "cipherSuiteOk")); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - hs.suite = _r$3; - if (hs.suite === ptrType$3.nil) { - $s = -1; return false; + _r$5 = selectCipherSuite(new sliceType$3([sessionState$1.cipherSuite]), c.config.cipherSuites(), $methodVal(hs, "cipherSuiteOk")); /* */ $s = 11; case 11: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + suite = _r$5; + if (suite === ptrType$2.nil) { + $s = -1; return $ifaceNil; } - sessionHasClientCerts = !((hs.sessionState.certificates.$length === 0)); + sessionHasClientCerts = !((sessionState$1.peerCertificates.$length === 0)); needClientCerts = requiresClientCert(c.config.ClientAuth); if (needClientCerts && !sessionHasClientCerts) { - $s = -1; return false; + $s = -1; return $ifaceNil; } if (sessionHasClientCerts && (c.config.ClientAuth === 0)) { - $s = -1; return false; + $s = -1; return $ifaceNil; } - $s = -1; return true; - /* */ } return; } var $f = {$blk: checkForResumption$1, $c: true, $r, _i, _r, _r$1, _r$2, _r$3, _ref, _tuple, c, cipherSuiteOk$1, createdAt, hs, id, needClientCerts, ok, plaintext, sessionHasClientCerts, usedOldKey, x, x$1, $s};return $f; + if (!(sessionHasClientCerts)) { _v = false; $s = 14; continue s; } + _r$6 = c.config.time(); /* */ $s = 15; case 15: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$7 = $clone(_r$6, time.Time).After($clone((x$2 = sessionState$1.peerCertificates, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])).NotAfter, time.Time)); /* */ $s = 16; case 16: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _v = _r$7; case 14: + /* */ if (_v) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (_v) { */ case 12: + $s = -1; return $ifaceNil; + /* } */ case 13: + if (sessionHasClientCerts && c.config.ClientAuth >= 3 && (sessionState$1.verifiedChains.$length === 0)) { + $s = -1; return $ifaceNil; + } + if (!sessionState$1.extMasterSecret && hs.clientHello.extendedMasterSecret) { + $s = -1; return $ifaceNil; + } + if (sessionState$1.extMasterSecret && !hs.clientHello.extendedMasterSecret) { + $s = -1; return errors.New("tls: session supported extended_master_secret but client does not"); + } + c.peerCertificates = sessionState$1.peerCertificates; + c.ocspResponse = sessionState$1.ocspResponse; + c.scts = sessionState$1.scts; + c.verifiedChains = sessionState$1.verifiedChains; + c.extMasterSecret = sessionState$1.extMasterSecret; + hs.sessionState = sessionState$1; + hs.suite = suite; + c.didResume = true; + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: checkForResumption$1, $c: true, $r, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _tuple, _tuple$1, _v, c, cipherSuiteOk$1, createdAt, err, err$1, hs, id, needClientCerts, plaintext, sessionHasClientCerts, sessionState$1, ss, ss$1, suite, x, x$1, x$2, $s};return $f; }; $ptrType(serverHandshakeState).prototype.doResumeHandshake = function doResumeHandshake() { - var {_r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, c, err, err$1, err$2, err$3, hs, $s, $r, $c} = $restore(this, {}); + var {_r, _r$1, _r$2, _r$3, _r$4, _tuple, c, err, err$1, err$2, hs, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: hs = this; c = hs.c; hs.hello.cipherSuite = hs.suite.id; c.cipherSuite = hs.suite.id; hs.hello.sessionId = hs.clientHello.sessionId; - hs.hello.ticketSupported = hs.sessionState.usedOldKey; + hs.hello.ticketSupported = true; _r = newFinishedHash(c.vers, hs.suite); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } finishedHash.copy(hs.finishedHash, _r); hs.finishedHash.discardHandshakeBuffer(); @@ -256066,30 +258039,25 @@ $packages["crypto/tls"] = (function() { if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return err$1; } - _r$3 = c.processCertsFromClient($clone(new Certificate.ptr(hs.sessionState.certificates, $ifaceNil, sliceType.nil, sliceType$6.nil, sliceType$11.nil, ptrType$6.nil), Certificate)); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - err$2 = _r$3; - if (!($interfaceIsEqual(err$2, $ifaceNil))) { - $s = -1; return err$2; - } - /* */ if (!(c.config.VerifyConnection === $throwNilPointerError)) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (!(c.config.VerifyConnection === $throwNilPointerError)) { */ case 5: - _r$4 = c.config.VerifyConnection($clone(c.connectionStateLocked(), ConnectionState)); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - err$3 = _r$4; - /* */ if (!($interfaceIsEqual(err$3, $ifaceNil))) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (!($interfaceIsEqual(err$3, $ifaceNil))) { */ case 8: - _r$5 = c.sendAlert(42); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$5; - $s = -1; return err$3; - /* } */ case 9: - /* } */ case 6: - hs.masterSecret = hs.sessionState.masterSecret; + /* */ if (!(c.config.VerifyConnection === $throwNilPointerError)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!(c.config.VerifyConnection === $throwNilPointerError)) { */ case 4: + _r$3 = c.config.VerifyConnection($clone(c.connectionStateLocked(), ConnectionState)); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + err$2 = _r$3; + /* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 7: + _r$4 = c.sendAlert(42); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4; + $s = -1; return err$2; + /* } */ case 8: + /* } */ case 5: + hs.masterSecret = hs.sessionState.secret; $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: doResumeHandshake, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, c, err, err$1, err$2, err$3, hs, $s};return $f; + /* */ } return; } var $f = {$blk: doResumeHandshake, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _tuple, c, err, err$1, err$2, hs, $s};return $f; }; $ptrType(serverHandshakeState).prototype.doFullHandshake = function doFullHandshake() { - var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, c, certMsg, certMsg$1, certReq, certStatus, certVerify, ckx, err, err$1, err$10, err$11, err$12, err$13, err$2, err$3, err$4, err$5, err$6, err$7, err$8, err$9, helloDone, hs, keyAgreement$1, msg, ok, ok$1, ok$2, preMasterSecret, pub, sigHash, sigType, signed, skx, x, $s, $r, $c} = $restore(this, {}); + var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, _arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, c, certMsg, certMsg$1, certReq, certStatus, certVerify, ckx, err, err$1, err$10, err$11, err$12, err$13, err$2, err$3, err$4, err$5, err$6, err$7, err$8, err$9, helloDone, hs, keyAgreement$1, msg, ok, ok$1, ok$2, preMasterSecret, pub, sigHash, sigType, signed, skx, x, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: hs = this; c = hs.c; @@ -256147,9 +258115,9 @@ $packages["crypto/tls"] = (function() { _r$7; $s = -1; return err$4; /* } */ case 11: - /* */ if (!(skx === ptrType$24.nil)) { $s = 13; continue; } + /* */ if (!(skx === ptrType$30.nil)) { $s = 13; continue; } /* */ $s = 14; continue; - /* if (!(skx === ptrType$24.nil)) { */ case 13: + /* if (!(skx === ptrType$30.nil)) { */ case 13: _r$8 = hs.c.writeHandshakeRecord(skx, hs.finishedHash); /* */ $s = 15; case 15: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } _tuple$4 = _r$8; err$5 = _tuple$4[1]; @@ -256157,7 +258125,7 @@ $packages["crypto/tls"] = (function() { $s = -1; return err$5; } /* } */ case 14: - certReq = ptrType$34.nil; + certReq = ptrType$39.nil; /* */ if (c.config.ClientAuth >= 1) { $s = 16; continue; } /* */ $s = 17; continue; /* if (c.config.ClientAuth >= 1) { */ case 16: @@ -256201,7 +258169,7 @@ $packages["crypto/tls"] = (function() { /* */ if (c.config.ClientAuth >= 1) { $s = 22; continue; } /* */ $s = 23; continue; /* if (c.config.ClientAuth >= 1) { */ case 22: - _tuple$9 = $assertType(msg, ptrType$35, true); + _tuple$9 = $assertType(msg, ptrType$40, true); certMsg$1 = _tuple$9[0]; ok = _tuple$9[1]; /* */ if (!ok) { $s = 24; continue; } @@ -256213,7 +258181,7 @@ $packages["crypto/tls"] = (function() { $24r = _r$14; $s = 28; case 28: return $24r; /* } */ case 25: - _r$15 = c.processCertsFromClient($clone(new Certificate.ptr(certMsg$1.certificates, $ifaceNil, sliceType.nil, sliceType$6.nil, sliceType$11.nil, ptrType$6.nil), Certificate)); /* */ $s = 29; case 29: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + _r$15 = c.processCertsFromClient($clone(new Certificate.ptr(certMsg$1.certificates, $ifaceNil, sliceType.nil, sliceType$6.nil, sliceType$11.nil, ptrType$7.nil), Certificate)); /* */ $s = 29; case 29: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } err$9 = _r$15; if (!($interfaceIsEqual(err$9, $ifaceNil))) { $s = -1; return err$9; @@ -256242,7 +258210,7 @@ $packages["crypto/tls"] = (function() { $s = -1; return err$10; /* } */ case 35: /* } */ case 32: - _tuple$11 = $assertType(msg, ptrType$25, true); + _tuple$11 = $assertType(msg, ptrType$31, true); ckx = _tuple$11[0]; ok$1 = _tuple$11[1]; /* */ if (!ok$1) { $s = 37; continue; } @@ -256265,101 +258233,115 @@ $packages["crypto/tls"] = (function() { _r$22; $s = -1; return err$4; /* } */ case 44: - _r$23 = masterFromPreMasterSecret(c.vers, hs.suite, preMasterSecret, hs.clientHello.random, hs.hello.random); /* */ $s = 46; case 46: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - hs.masterSecret = _r$23; - _r$24 = c.config.writeKeyLog("CLIENT_RANDOM", hs.clientHello.random, hs.masterSecret); /* */ $s = 47; case 47: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - err$11 = _r$24; - /* */ if (!($interfaceIsEqual(err$11, $ifaceNil))) { $s = 48; continue; } - /* */ $s = 49; continue; - /* if (!($interfaceIsEqual(err$11, $ifaceNil))) { */ case 48: - _r$25 = c.sendAlert(80); /* */ $s = 50; case 50: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - _r$25; + /* */ if (hs.hello.extendedMasterSecret) { $s = 46; continue; } + /* */ $s = 47; continue; + /* if (hs.hello.extendedMasterSecret) { */ case 46: + c.extMasterSecret = true; + _arg = c.vers; + _arg$1 = hs.suite; + _arg$2 = preMasterSecret; + _r$23 = $clone(hs.finishedHash, finishedHash).Sum(); /* */ $s = 49; case 49: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + _arg$3 = _r$23; + _r$24 = extMasterFromPreMasterSecret(_arg, _arg$1, _arg$2, _arg$3); /* */ $s = 50; case 50: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + hs.masterSecret = _r$24; + $s = 48; continue; + /* } else { */ case 47: + _r$25 = masterFromPreMasterSecret(c.vers, hs.suite, preMasterSecret, hs.clientHello.random, hs.hello.random); /* */ $s = 51; case 51: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + hs.masterSecret = _r$25; + /* } */ case 48: + _r$26 = c.config.writeKeyLog("CLIENT_RANDOM", hs.clientHello.random, hs.masterSecret); /* */ $s = 52; case 52: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + err$11 = _r$26; + /* */ if (!($interfaceIsEqual(err$11, $ifaceNil))) { $s = 53; continue; } + /* */ $s = 54; continue; + /* if (!($interfaceIsEqual(err$11, $ifaceNil))) { */ case 53: + _r$27 = c.sendAlert(80); /* */ $s = 55; case 55: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + _r$27; $s = -1; return err$11; - /* } */ case 49: - /* */ if (c.peerCertificates.$length > 0) { $s = 51; continue; } - /* */ $s = 52; continue; - /* if (c.peerCertificates.$length > 0) { */ case 51: - _r$26 = c.readHandshake($ifaceNil); /* */ $s = 53; case 53: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - _tuple$13 = _r$26; + /* } */ case 54: + /* */ if (c.peerCertificates.$length > 0) { $s = 56; continue; } + /* */ $s = 57; continue; + /* if (c.peerCertificates.$length > 0) { */ case 56: + _r$28 = c.readHandshake($ifaceNil); /* */ $s = 58; case 58: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + _tuple$13 = _r$28; msg = _tuple$13[0]; err$4 = _tuple$13[1]; if (!($interfaceIsEqual(err$4, $ifaceNil))) { $s = -1; return err$4; } - _tuple$14 = $assertType(msg, ptrType$29, true); + _tuple$14 = $assertType(msg, ptrType$36, true); certVerify = _tuple$14[0]; ok$2 = _tuple$14[1]; - /* */ if (!ok$2) { $s = 54; continue; } - /* */ $s = 55; continue; - /* if (!ok$2) { */ case 54: - _r$27 = c.sendAlert(10); /* */ $s = 56; case 56: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - _r$27; - _r$28 = unexpectedMessageError(certVerify, msg); /* */ $s = 57; case 57: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - $24r$2 = _r$28; - $s = 58; case 58: return $24r$2; - /* } */ case 55: + /* */ if (!ok$2) { $s = 59; continue; } + /* */ $s = 60; continue; + /* if (!ok$2) { */ case 59: + _r$29 = c.sendAlert(10); /* */ $s = 61; case 61: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + _r$29; + _r$30 = unexpectedMessageError(certVerify, msg); /* */ $s = 62; case 62: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } + $24r$2 = _r$30; + $s = 63; case 63: return $24r$2; + /* } */ case 60: sigType = 0; sigHash = 0; - /* */ if (c.vers >= 771) { $s = 59; continue; } - /* */ $s = 60; continue; - /* if (c.vers >= 771) { */ case 59: - /* */ if (!isSupportedSignatureAlgorithm(certVerify.signatureAlgorithm, certReq.supportedSignatureAlgorithms)) { $s = 62; continue; } - /* */ $s = 63; continue; - /* if (!isSupportedSignatureAlgorithm(certVerify.signatureAlgorithm, certReq.supportedSignatureAlgorithms)) { */ case 62: - _r$29 = c.sendAlert(47); /* */ $s = 64; case 64: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } - _r$29; + /* */ if (c.vers >= 771) { $s = 64; continue; } + /* */ $s = 65; continue; + /* if (c.vers >= 771) { */ case 64: + /* */ if (!isSupportedSignatureAlgorithm(certVerify.signatureAlgorithm, certReq.supportedSignatureAlgorithms)) { $s = 67; continue; } + /* */ $s = 68; continue; + /* if (!isSupportedSignatureAlgorithm(certVerify.signatureAlgorithm, certReq.supportedSignatureAlgorithms)) { */ case 67: + _r$31 = c.sendAlert(47); /* */ $s = 69; case 69: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } + _r$31; $s = -1; return errors.New("tls: client certificate used with invalid signature algorithm"); - /* } */ case 63: - _r$30 = typeAndHashFromSignatureScheme(certVerify.signatureAlgorithm); /* */ $s = 65; case 65: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } - _tuple$15 = _r$30; + /* } */ case 68: + _r$32 = typeAndHashFromSignatureScheme(certVerify.signatureAlgorithm); /* */ $s = 70; case 70: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } + _tuple$15 = _r$32; sigType = _tuple$15[0]; sigHash = _tuple$15[1]; err$4 = _tuple$15[2]; - /* */ if (!($interfaceIsEqual(err$4, $ifaceNil))) { $s = 66; continue; } - /* */ $s = 67; continue; - /* if (!($interfaceIsEqual(err$4, $ifaceNil))) { */ case 66: - _r$31 = c.sendAlert(80); /* */ $s = 68; case 68: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } - $24r$3 = _r$31; - $s = 69; case 69: return $24r$3; - /* } */ case 67: - $s = 61; continue; - /* } else { */ case 60: - _r$32 = legacyTypeAndHashFromPublicKey(pub); /* */ $s = 70; case 70: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } - _tuple$16 = _r$32; - sigType = _tuple$16[0]; - sigHash = _tuple$16[1]; - err$4 = _tuple$16[2]; /* */ if (!($interfaceIsEqual(err$4, $ifaceNil))) { $s = 71; continue; } /* */ $s = 72; continue; /* if (!($interfaceIsEqual(err$4, $ifaceNil))) { */ case 71: - _r$33 = c.sendAlert(47); /* */ $s = 73; case 73: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } - _r$33; - $s = -1; return err$4; + _r$33 = c.sendAlert(80); /* */ $s = 73; case 73: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } + $24r$3 = _r$33; + $s = 74; case 74: return $24r$3; /* } */ case 72: - /* } */ case 61: - _r$34 = $clone(hs.finishedHash, finishedHash).hashForClientCertificate(sigType, sigHash); /* */ $s = 74; case 74: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } - signed = _r$34; - _r$35 = verifyHandshakeSignature(sigType, pub, sigHash, signed, certVerify.signature); /* */ $s = 75; case 75: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } - err$12 = _r$35; - /* */ if (!($interfaceIsEqual(err$12, $ifaceNil))) { $s = 76; continue; } - /* */ $s = 77; continue; - /* if (!($interfaceIsEqual(err$12, $ifaceNil))) { */ case 76: - _r$36 = c.sendAlert(51); /* */ $s = 78; case 78: if($c) { $c = false; _r$36 = _r$36.$blk(); } if (_r$36 && _r$36.$blk !== undefined) { break s; } - _r$36; - _r$37 = err$12.Error(); /* */ $s = 79; case 79: if($c) { $c = false; _r$37 = _r$37.$blk(); } if (_r$37 && _r$37.$blk !== undefined) { break s; } - _r$38 = errors.New("tls: invalid signature by the client certificate: " + _r$37); /* */ $s = 80; case 80: if($c) { $c = false; _r$38 = _r$38.$blk(); } if (_r$38 && _r$38.$blk !== undefined) { break s; } - $24r$4 = _r$38; - $s = 81; case 81: return $24r$4; - /* } */ case 77: - _r$39 = transcriptMsg(certVerify, hs.finishedHash); /* */ $s = 82; case 82: if($c) { $c = false; _r$39 = _r$39.$blk(); } if (_r$39 && _r$39.$blk !== undefined) { break s; } - err$13 = _r$39; + $s = 66; continue; + /* } else { */ case 65: + _r$34 = legacyTypeAndHashFromPublicKey(pub); /* */ $s = 75; case 75: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } + _tuple$16 = _r$34; + sigType = _tuple$16[0]; + sigHash = _tuple$16[1]; + err$4 = _tuple$16[2]; + /* */ if (!($interfaceIsEqual(err$4, $ifaceNil))) { $s = 76; continue; } + /* */ $s = 77; continue; + /* if (!($interfaceIsEqual(err$4, $ifaceNil))) { */ case 76: + _r$35 = c.sendAlert(47); /* */ $s = 78; case 78: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } + _r$35; + $s = -1; return err$4; + /* } */ case 77: + /* } */ case 66: + _r$36 = $clone(hs.finishedHash, finishedHash).hashForClientCertificate(sigType, sigHash); /* */ $s = 79; case 79: if($c) { $c = false; _r$36 = _r$36.$blk(); } if (_r$36 && _r$36.$blk !== undefined) { break s; } + signed = _r$36; + _r$37 = verifyHandshakeSignature(sigType, pub, sigHash, signed, certVerify.signature); /* */ $s = 80; case 80: if($c) { $c = false; _r$37 = _r$37.$blk(); } if (_r$37 && _r$37.$blk !== undefined) { break s; } + err$12 = _r$37; + /* */ if (!($interfaceIsEqual(err$12, $ifaceNil))) { $s = 81; continue; } + /* */ $s = 82; continue; + /* if (!($interfaceIsEqual(err$12, $ifaceNil))) { */ case 81: + _r$38 = c.sendAlert(51); /* */ $s = 83; case 83: if($c) { $c = false; _r$38 = _r$38.$blk(); } if (_r$38 && _r$38.$blk !== undefined) { break s; } + _r$38; + _r$39 = err$12.Error(); /* */ $s = 84; case 84: if($c) { $c = false; _r$39 = _r$39.$blk(); } if (_r$39 && _r$39.$blk !== undefined) { break s; } + _r$40 = errors.New("tls: invalid signature by the client certificate: " + _r$39); /* */ $s = 85; case 85: if($c) { $c = false; _r$40 = _r$40.$blk(); } if (_r$40 && _r$40.$blk !== undefined) { break s; } + $24r$4 = _r$40; + $s = 86; case 86: return $24r$4; + /* } */ case 82: + _r$41 = transcriptMsg(certVerify, hs.finishedHash); /* */ $s = 87; case 87: if($c) { $c = false; _r$41 = _r$41.$blk(); } if (_r$41 && _r$41.$blk !== undefined) { break s; } + err$13 = _r$41; if (!($interfaceIsEqual(err$13, $ifaceNil))) { $s = -1; return err$13; } - /* } */ case 52: + /* } */ case 57: hs.finishedHash.discardHandshakeBuffer(); $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: doFullHandshake, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, c, certMsg, certMsg$1, certReq, certStatus, certVerify, ckx, err, err$1, err$10, err$11, err$12, err$13, err$2, err$3, err$4, err$5, err$6, err$7, err$8, err$9, helloDone, hs, keyAgreement$1, msg, ok, ok$1, ok$2, preMasterSecret, pub, sigHash, sigType, signed, skx, x, $s};return $f; + /* */ } return; } var $f = {$blk: doFullHandshake, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, _arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, c, certMsg, certMsg$1, certReq, certStatus, certVerify, ckx, err, err$1, err$10, err$11, err$12, err$13, err$2, err$3, err$4, err$5, err$6, err$7, err$8, err$9, helloDone, hs, keyAgreement$1, msg, ok, ok$1, ok$2, preMasterSecret, pub, sigHash, sigType, signed, skx, x, $s};return $f; }; $ptrType(serverHandshakeState).prototype.establishKeys = function establishKeys() { var {_r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, c, clientCipher, clientHash, clientIV, clientKey, clientMAC, hs, serverCipher, serverHash, serverIV, serverKey, serverMAC, $s, $r, $c} = $restore(this, {}); @@ -256400,7 +258382,7 @@ $packages["crypto/tls"] = (function() { _r$6 = hs.suite.aead(serverKey, serverIV); /* */ $s = 10; case 10: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } serverCipher = _r$6; /* } */ case 4: - c.in$28.prepareCipherSpec(c.vers, clientCipher, clientHash); + c.in$30.prepareCipherSpec(c.vers, clientCipher, clientHash); c.out.prepareCipherSpec(c.vers, serverCipher, serverHash); $s = -1; return $ifaceNil; /* */ } return; } var $f = {$blk: establishKeys, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, c, clientCipher, clientHash, clientIV, clientKey, clientMAC, hs, serverCipher, serverHash, serverIV, serverKey, serverMAC, $s};return $f; @@ -256422,7 +258404,7 @@ $packages["crypto/tls"] = (function() { if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return err$1; } - _tuple$1 = $assertType(msg, ptrType$30, true); + _tuple$1 = $assertType(msg, ptrType$37, true); clientFinished = _tuple$1[0]; ok = _tuple$1[1]; /* */ if (!ok) { $s = 3; continue; } @@ -256452,8 +258434,8 @@ $packages["crypto/tls"] = (function() { $s = -1; return $ifaceNil; /* */ } return; } var $f = {$blk: readFinished, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, c, clientFinished, err, err$1, err$2, hs, msg, ok, out, verify, $s};return $f; }; - $ptrType(serverHandshakeState).prototype.sendSessionTicket = function sendSessionTicket() { - var {_i, _r, _r$1, _r$2, _r$3, _r$4, _ref, _tuple, _tuple$1, _tuple$2, c, cert, certsFromClient, createdAt, err, err$1, hs, m, state, stateBytes, x, $s, $r, $c} = $restore(this, {}); + $ptrType(serverHandshakeState).prototype.sendSessionTicket = function sendSessionTicket$1() { + var {_r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, c, err, err$1, err$2, hs, m, state, stateBytes, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: hs = this; if (!hs.hello.ticketSupported) { @@ -256461,44 +258443,52 @@ $packages["crypto/tls"] = (function() { } c = hs.c; m = new newSessionTicketMsg.ptr(sliceType$6.nil, sliceType$6.nil); - _r = c.config.time(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = $clone(_r, time.Time).Unix(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - createdAt = ((x = _r$1, new $Uint64(x.$high, x.$low))); - if (!(hs.sessionState === ptrType$33.nil)) { - createdAt = hs.sessionState.createdAt; - } - certsFromClient = sliceType$11.nil; - _ref = c.peerCertificates; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - cert = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - certsFromClient = $append(certsFromClient, cert.Raw); - _i++; - } - state = new sessionState.ptr(c.vers, hs.suite.id, createdAt, hs.masterSecret, certsFromClient, false); - _r$2 = state.marshal(); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple = _r$2; - stateBytes = _tuple[0]; + _r = c.sessionState(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + state = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return err; } - _r$3 = c.encryptTicket(stateBytes); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple$1 = _r$3; - m.ticket = _tuple$1[0]; - err = _tuple$1[1]; - if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return err; + state.secret = hs.masterSecret; + if (!(hs.sessionState === ptrType$21.nil)) { + state.createdAt = hs.sessionState.createdAt; } - _r$4 = hs.c.writeHandshakeRecord(m, hs.finishedHash); /* */ $s = 5; case 5: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _tuple$2 = _r$4; - err$1 = _tuple$2[1]; - if (!($interfaceIsEqual(err$1, $ifaceNil))) { - $s = -1; return err$1; + /* */ if (!(c.config.WrapSession === $throwNilPointerError)) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!(c.config.WrapSession === $throwNilPointerError)) { */ case 2: + _r$1 = c.config.WrapSession($clone(c.connectionStateLocked(), ConnectionState), state); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + m.ticket = _tuple$1[0]; + err = _tuple$1[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $s = 4; continue; + /* } else { */ case 3: + _r$2 = state.Bytes(); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$2 = _r$2; + stateBytes = _tuple$2[0]; + err$1 = _tuple$2[1]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return err$1; + } + _r$3 = c.config.encryptTicket(stateBytes, c.ticketKeys); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$3 = _r$3; + m.ticket = _tuple$3[0]; + err$1 = _tuple$3[1]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return err$1; + } + /* } */ case 4: + _r$4 = hs.c.writeHandshakeRecord(m, hs.finishedHash); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$4 = _r$4; + err$2 = _tuple$4[1]; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + $s = -1; return err$2; } $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: sendSessionTicket, $c: true, $r, _i, _r, _r$1, _r$2, _r$3, _r$4, _ref, _tuple, _tuple$1, _tuple$2, c, cert, certsFromClient, createdAt, err, err$1, hs, m, state, stateBytes, x, $s};return $f; + /* */ } return; } var $f = {$blk: sendSessionTicket$1, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, c, err, err$1, err$2, hs, m, state, stateBytes, $s};return $f; }; $ptrType(serverHandshakeState).prototype.sendFinished = function sendFinished(out) { var {_r, _r$1, _r$2, _tuple, c, err, err$1, finished, hs, out, $s, $r, $c} = $restore(this, {out}); @@ -256524,8 +258514,9 @@ $packages["crypto/tls"] = (function() { /* */ } return; } var $f = {$blk: sendFinished, $c: true, $r, _r, _r$1, _r$2, _tuple, c, err, err$1, finished, hs, out, $s};return $f; }; $ptrType(Conn).prototype.processCertsFromClient = function processCertsFromClient(certificate) { - var {$24r, $24r$1, $24r$2, _i, _i$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tuple, _tuple$1, _tuple$2, asn1Data, c, cert, certificate, certificates, certs, chains, err, err$1, err$2, i, max, n, ok, opts, $s, $r, $c} = $restore(this, {certificate}); + var {$24r, $24r$1, $24r$2, _i, _i$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tuple, _tuple$1, _tuple$2, asn1Data, c, cert, certificate, certificates, certs, chains, err, err$1, err$2, errCertificateInvalid, i, max, n, ok, opts, $s, $r, $c} = $restore(this, {certificate}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + errCertificateInvalid = [errCertificateInvalid]; c = this; certificates = certificate.Certificate; certs = $makeSlice(sliceType$12, certificates.$length); @@ -256553,7 +258544,7 @@ $packages["crypto/tls"] = (function() { /* */ if (((i < 0 || i >= certs.$length) ? ($throwRuntimeError("index out of range"), undefined) : certs.$array[certs.$offset + i]).PublicKeyAlgorithm === 1) { $s = 10; continue; } /* */ $s = 11; continue; /* if (((i < 0 || i >= certs.$length) ? ($throwRuntimeError("index out of range"), undefined) : certs.$array[certs.$offset + i]).PublicKeyAlgorithm === 1) { */ case 10: - n = $assertType(((i < 0 || i >= certs.$length) ? ($throwRuntimeError("index out of range"), undefined) : certs.$array[certs.$offset + i]).PublicKey, ptrType$13).N.BitLen(); + n = $assertType(((i < 0 || i >= certs.$length) ? ($throwRuntimeError("index out of range"), undefined) : certs.$array[certs.$offset + i]).PublicKey, ptrType$14).N.BitLen(); _r$4 = checkKeySize(n); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _tuple$1 = _r$4; max = _tuple$1[0]; @@ -256574,15 +258565,23 @@ $packages["crypto/tls"] = (function() { /* */ if ((certs.$length === 0) && requiresClientCert(c.config.ClientAuth)) { $s = 18; continue; } /* */ $s = 19; continue; /* if ((certs.$length === 0) && requiresClientCert(c.config.ClientAuth)) { */ case 18: - _r$7 = c.sendAlert(42); /* */ $s = 20; case 20: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _r$7; + /* */ if (c.vers === 772) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (c.vers === 772) { */ case 20: + _r$7 = c.sendAlert(116); /* */ $s = 23; case 23: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$7; + $s = 22; continue; + /* } else { */ case 21: + _r$8 = c.sendAlert(42); /* */ $s = 24; case 24: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$8; + /* } */ case 22: $s = -1; return errors.New("tls: client didn't provide a certificate"); /* } */ case 19: - /* */ if (c.config.ClientAuth >= 3 && certs.$length > 0) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if (c.config.ClientAuth >= 3 && certs.$length > 0) { */ case 21: - _r$8 = c.config.time(); /* */ $s = 23; case 23: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - opts = new x509.VerifyOptions.ptr("", x509.NewCertPool(), c.config.ClientCAs, $clone(_r$8, time.Time), new sliceType$15([2]), 0); + /* */ if (c.config.ClientAuth >= 3 && certs.$length > 0) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (c.config.ClientAuth >= 3 && certs.$length > 0) { */ case 25: + _r$9 = c.config.time(); /* */ $s = 27; case 27: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + opts = new x509.VerifyOptions.ptr("", x509.NewCertPool(), c.config.ClientCAs, $clone(_r$9, time.Time), new sliceType$16([2]), 0); _ref$1 = $subslice(certs, 1); _i$1 = 0; while (true) { @@ -256591,53 +258590,69 @@ $packages["crypto/tls"] = (function() { opts.Intermediates.AddCert(cert); _i$1++; } - _r$9 = (0 >= certs.$length ? ($throwRuntimeError("index out of range"), undefined) : certs.$array[certs.$offset + 0]).Verify($clone(opts, x509.VerifyOptions)); /* */ $s = 24; case 24: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _tuple$2 = _r$9; + _r$10 = (0 >= certs.$length ? ($throwRuntimeError("index out of range"), undefined) : certs.$array[certs.$offset + 0]).Verify($clone(opts, x509.VerifyOptions)); /* */ $s = 28; case 28: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _tuple$2 = _r$10; chains = _tuple$2[0]; err$1 = _tuple$2[1]; - /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 25; continue; } - /* */ $s = 26; continue; - /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 25: - _r$10 = c.sendAlert(42); /* */ $s = 27; case 27: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _r$10; + /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 29: + errCertificateInvalid[0] = new x509.CertificateInvalidError.ptr(ptrType$7.nil, 0, ""); + _r$11 = errors.As(err$1, new x509.UnknownAuthorityError.ptr(ptrType$7.nil, $ifaceNil, ptrType$7.nil)); /* */ $s = 35; case 35: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + /* */ if (_r$11) { $s = 31; continue; } + _r$12 = errors.As(err$1, errCertificateInvalid[0]); /* */ $s = 36; case 36: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + /* */ if (_r$12 && (errCertificateInvalid[0].Reason === 1)) { $s = 32; continue; } + /* */ $s = 33; continue; + /* if (_r$11) { */ case 31: + _r$13 = c.sendAlert(48); /* */ $s = 37; case 37: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _r$13; + $s = 34; continue; + /* } else if (_r$12 && (errCertificateInvalid[0].Reason === 1)) { */ case 32: + _r$14 = c.sendAlert(45); /* */ $s = 38; case 38: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _r$14; + $s = 34; continue; + /* } else { */ case 33: + _r$15 = c.sendAlert(42); /* */ $s = 39; case 39: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + _r$15; + /* } */ case 34: $s = -1; return new CertificateVerificationError.ptr(certs, err$1); - /* } */ case 26: + /* } */ case 30: c.verifiedChains = chains; - /* } */ case 22: + /* } */ case 26: c.peerCertificates = certs; c.ocspResponse = certificate.OCSPStaple; c.scts = certificate.SignedCertificateTimestamps; - /* */ if (certs.$length > 0) { $s = 28; continue; } - /* */ $s = 29; continue; - /* if (certs.$length > 0) { */ case 28: + /* */ if (certs.$length > 0) { $s = 40; continue; } + /* */ $s = 41; continue; + /* if (certs.$length > 0) { */ case 40: _ref$2 = (0 >= certs.$length ? ($throwRuntimeError("index out of range"), undefined) : certs.$array[certs.$offset + 0]).PublicKey; - /* */ if ($assertType(_ref$2, ptrType$14, true)[1] || $assertType(_ref$2, ptrType$13, true)[1] || $assertType(_ref$2, ed25519.PublicKey, true)[1]) { $s = 30; continue; } - /* */ $s = 31; continue; - /* if ($assertType(_ref$2, ptrType$14, true)[1] || $assertType(_ref$2, ptrType$13, true)[1] || $assertType(_ref$2, ed25519.PublicKey, true)[1]) { */ case 30: - $s = 32; continue; - /* } else { */ case 31: - _r$11 = c.sendAlert(43); /* */ $s = 33; case 33: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _r$11; - _r$12 = fmt.Errorf("tls: client certificate contains an unsupported public key of type %T", new sliceType$7([(0 >= certs.$length ? ($throwRuntimeError("index out of range"), undefined) : certs.$array[certs.$offset + 0]).PublicKey])); /* */ $s = 34; case 34: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - $24r$2 = _r$12; - $s = 35; case 35: return $24r$2; - /* } */ case 32: - /* } */ case 29: - /* */ if (!(c.config.VerifyPeerCertificate === $throwNilPointerError)) { $s = 36; continue; } - /* */ $s = 37; continue; - /* if (!(c.config.VerifyPeerCertificate === $throwNilPointerError)) { */ case 36: - _r$13 = c.config.VerifyPeerCertificate(certificates, c.verifiedChains); /* */ $s = 38; case 38: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - err$2 = _r$13; - /* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 39; continue; } - /* */ $s = 40; continue; - /* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 39: - _r$14 = c.sendAlert(42); /* */ $s = 41; case 41: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - _r$14; + /* */ if ($assertType(_ref$2, ptrType$15, true)[1] || $assertType(_ref$2, ptrType$14, true)[1] || $assertType(_ref$2, ed25519.PublicKey, true)[1]) { $s = 42; continue; } + /* */ $s = 43; continue; + /* if ($assertType(_ref$2, ptrType$15, true)[1] || $assertType(_ref$2, ptrType$14, true)[1] || $assertType(_ref$2, ed25519.PublicKey, true)[1]) { */ case 42: + $s = 44; continue; + /* } else { */ case 43: + _r$16 = c.sendAlert(43); /* */ $s = 45; case 45: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + _r$16; + _r$17 = fmt.Errorf("tls: client certificate contains an unsupported public key of type %T", new sliceType$7([(0 >= certs.$length ? ($throwRuntimeError("index out of range"), undefined) : certs.$array[certs.$offset + 0]).PublicKey])); /* */ $s = 46; case 46: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + $24r$2 = _r$17; + $s = 47; case 47: return $24r$2; + /* } */ case 44: + /* } */ case 41: + /* */ if (!(c.config.VerifyPeerCertificate === $throwNilPointerError)) { $s = 48; continue; } + /* */ $s = 49; continue; + /* if (!(c.config.VerifyPeerCertificate === $throwNilPointerError)) { */ case 48: + _r$18 = c.config.VerifyPeerCertificate(certificates, c.verifiedChains); /* */ $s = 50; case 50: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + err$2 = _r$18; + /* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 51; continue; } + /* */ $s = 52; continue; + /* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 51: + _r$19 = c.sendAlert(42); /* */ $s = 53; case 53: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + _r$19; $s = -1; return err$2; - /* } */ case 40: - /* } */ case 37: + /* } */ case 52: + /* } */ case 49: $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: processCertsFromClient, $c: true, $r, $24r, $24r$1, $24r$2, _i, _i$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tuple, _tuple$1, _tuple$2, asn1Data, c, cert, certificate, certificates, certs, chains, err, err$1, err$2, i, max, n, ok, opts, $s};return $f; + /* */ } return; } var $f = {$blk: processCertsFromClient, $c: true, $r, $24r, $24r$1, $24r$2, _i, _i$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tuple, _tuple$1, _tuple$2, asn1Data, c, cert, certificate, certificates, certs, chains, err, err$1, err$2, errCertificateInvalid, i, max, n, ok, opts, $s};return $f; }; clientHelloInfo = function clientHelloInfo$1(ctx, c, clientHello) { var c, clientHello, ctx, supportedVersions$1; @@ -256690,7 +258705,7 @@ $packages["crypto/tls"] = (function() { _tmp$1 = 0; hi = _tmp; lo = _tmp$1; - if (!s.ReadUint32((hi$24ptr || (hi$24ptr = new ptrType$36(function() { return hi; }, function($v) { hi = $v; })))) || !s.ReadUint32((lo$24ptr || (lo$24ptr = new ptrType$36(function() { return lo; }, function($v) { lo = $v; }))))) { + if (!s.ReadUint32((hi$24ptr || (hi$24ptr = new ptrType$25(function() { return hi; }, function($v) { hi = $v; })))) || !s.ReadUint32((lo$24ptr || (lo$24ptr = new ptrType$25(function() { return lo; }, function($v) { lo = $v; }))))) { return false; } out.$set((x = $shiftLeft64((new $Uint64(0, hi)), 32), x$1 = (new $Uint64(0, lo)), new $Uint64(x.$high | x$1.$high, (x.$low | x$1.$low) >>> 0))); @@ -256698,17 +258713,17 @@ $packages["crypto/tls"] = (function() { }; readUint8LengthPrefixed = function readUint8LengthPrefixed$1(s, out) { var _ptr, out, s; - return s.ReadUint8LengthPrefixed(((_ptr = out, new ptrType$19(function() { return $convertSliceType(_ptr.$get(), cryptobyte.String); }, function($v) { _ptr.$set($convertSliceType($v, sliceType$6)); }, _ptr.$target)))); + return s.ReadUint8LengthPrefixed(((_ptr = out, new ptrType$20(function() { return $convertSliceType(_ptr.$get(), cryptobyte.String); }, function($v) { _ptr.$set($convertSliceType($v, sliceType$6)); }, _ptr.$target, _ptr.$index)))); }; readUint16LengthPrefixed = function readUint16LengthPrefixed$1(s, out) { var _ptr, out, s; - return s.ReadUint16LengthPrefixed(((_ptr = out, new ptrType$19(function() { return $convertSliceType(_ptr.$get(), cryptobyte.String); }, function($v) { _ptr.$set($convertSliceType($v, sliceType$6)); }, _ptr.$target)))); + return s.ReadUint16LengthPrefixed(((_ptr = out, new ptrType$20(function() { return $convertSliceType(_ptr.$get(), cryptobyte.String); }, function($v) { _ptr.$set($convertSliceType($v, sliceType$6)); }, _ptr.$target, _ptr.$index)))); }; readUint24LengthPrefixed = function readUint24LengthPrefixed$1(s, out) { var _ptr, out, s; - return s.ReadUint24LengthPrefixed(((_ptr = out, new ptrType$19(function() { return $convertSliceType(_ptr.$get(), cryptobyte.String); }, function($v) { _ptr.$set($convertSliceType($v, sliceType$6)); }, _ptr.$target)))); + return s.ReadUint24LengthPrefixed(((_ptr = out, new ptrType$20(function() { return $convertSliceType(_ptr.$get(), cryptobyte.String); }, function($v) { _ptr.$set($convertSliceType($v, sliceType$6)); }, _ptr.$target, _ptr.$index)))); }; - $ptrType(clientHelloMsg).prototype.marshal = function marshal$2() { + $ptrType(clientHelloMsg).prototype.marshal = function marshal() { var {_tuple, _tuple$1, b, err, extBytes, exts, m, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: extBytes = [extBytes]; @@ -256717,7 +258732,7 @@ $packages["crypto/tls"] = (function() { if (!(m[0].raw === sliceType$6.nil)) { $s = -1; return [m[0].raw, $ifaceNil]; } - exts = new cryptobyte.Builder.ptr($ifaceNil, sliceType$6.nil, false, ptrType$17.nil, 0, 0, false, ptrType$18.nil); + exts = new cryptobyte.Builder.ptr($ifaceNil, sliceType$6.nil, false, ptrType$18.nil, 0, 0, false, ptrType$19.nil); /* */ if (m[0].serverName.length > 0) { $s = 1; continue; } /* */ $s = 2; continue; /* if (m[0].serverName.length > 0) { */ case 1: @@ -256856,6 +258871,10 @@ $packages["crypto/tls"] = (function() { /* */ } return; } var $f = {$blk: clientHelloMsg·marshal·func8, $c: true, $r, exts$1, $s};return $f; }; })(extBytes, m)); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 23: + if (m[0].extendedMasterSecret) { + exts.AddUint16(23); + exts.AddUint16(0); + } /* */ if (m[0].alpnProtocols.$length > 0) { $s = 25; continue; } /* */ $s = 26; continue; /* if (m[0].alpnProtocols.$length > 0) { */ case 25: @@ -256977,14 +258996,23 @@ $packages["crypto/tls"] = (function() { /* */ } return; } var $f = {$blk: clientHelloMsg·marshal·func13, $c: true, $r, exts$1, $s};return $f; }; })(extBytes, m)); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 38: - /* */ if (m[0].pskIdentities.$length > 0) { $s = 40; continue; } + /* */ if (!(m[0].quicTransportParameters === sliceType$6.nil)) { $s = 40; continue; } /* */ $s = 41; continue; - /* if (m[0].pskIdentities.$length > 0) { */ case 40: - exts.AddUint16(41); + /* if (!(m[0].quicTransportParameters === sliceType$6.nil)) { */ case 40: + exts.AddUint16(57); $r = exts.AddUint16LengthPrefixed((function(extBytes, m) { return function clientHelloMsg·marshal·func14(exts$1) { + var exts$1; + exts$1.AddBytes(m[0].quicTransportParameters); + }; })(extBytes, m)); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 41: + /* */ if (m[0].pskIdentities.$length > 0) { $s = 43; continue; } + /* */ $s = 44; continue; + /* if (m[0].pskIdentities.$length > 0) { */ case 43: + exts.AddUint16(41); + $r = exts.AddUint16LengthPrefixed((function(extBytes, m) { return function clientHelloMsg·marshal·func15(exts$1) { var {exts$1, $s, $r, $c} = $restore(this, {exts$1}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = exts$1.AddUint16LengthPrefixed((function(extBytes, m) { return function clientHelloMsg·marshal·func14·func1(exts$2) { + $r = exts$1.AddUint16LengthPrefixed((function(extBytes, m) { return function clientHelloMsg·marshal·func15·func1(exts$2) { var {_i, _ref, exts$2, psk, $s, $r, $c} = $restore(this, {exts$2}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: psk = [psk]; @@ -256993,7 +259021,7 @@ $packages["crypto/tls"] = (function() { /* while (true) { */ case 1: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } psk[0] = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), pskIdentity); - $r = exts$2.AddUint16LengthPrefixed((function(extBytes, m, psk) { return function clientHelloMsg·marshal·func14·func1·func1(exts$3) { + $r = exts$2.AddUint16LengthPrefixed((function(extBytes, m, psk) { return function clientHelloMsg·marshal·func15·func1·func1(exts$3) { var exts$3; exts$3.AddBytes(psk[0].label); }; })(extBytes, m, psk)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } @@ -257002,9 +259030,9 @@ $packages["crypto/tls"] = (function() { $s = 1; continue; case 2: $s = -1; return; - /* */ } return; } var $f = {$blk: clientHelloMsg·marshal·func14·func1, $c: true, $r, _i, _ref, exts$2, psk, $s};return $f; + /* */ } return; } var $f = {$blk: clientHelloMsg·marshal·func15·func1, $c: true, $r, _i, _ref, exts$2, psk, $s};return $f; }; })(extBytes, m)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = exts$1.AddUint16LengthPrefixed((function(extBytes, m) { return function clientHelloMsg·marshal·func14·func2(exts$2) { + $r = exts$1.AddUint16LengthPrefixed((function(extBytes, m) { return function clientHelloMsg·marshal·func15·func2(exts$2) { var {_i, _ref, binder, exts$2, $s, $r, $c} = $restore(this, {exts$2}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: binder = [binder]; @@ -257013,7 +259041,7 @@ $packages["crypto/tls"] = (function() { /* while (true) { */ case 1: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } binder[0] = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - $r = exts$2.AddUint8LengthPrefixed((function(binder, extBytes, m) { return function clientHelloMsg·marshal·func14·func2·func1(exts$3) { + $r = exts$2.AddUint8LengthPrefixed((function(binder, extBytes, m) { return function clientHelloMsg·marshal·func15·func2·func1(exts$3) { var exts$3; exts$3.AddBytes(binder[0]); }; })(binder, extBytes, m)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } @@ -257021,30 +259049,30 @@ $packages["crypto/tls"] = (function() { $s = 1; continue; case 2: $s = -1; return; - /* */ } return; } var $f = {$blk: clientHelloMsg·marshal·func14·func2, $c: true, $r, _i, _ref, binder, exts$2, $s};return $f; + /* */ } return; } var $f = {$blk: clientHelloMsg·marshal·func15·func2, $c: true, $r, _i, _ref, binder, exts$2, $s};return $f; }; })(extBytes, m)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } var $f = {$blk: clientHelloMsg·marshal·func14, $c: true, $r, exts$1, $s};return $f; - }; })(extBytes, m)); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 41: + /* */ } return; } var $f = {$blk: clientHelloMsg·marshal·func15, $c: true, $r, exts$1, $s};return $f; + }; })(extBytes, m)); /* */ $s = 45; case 45: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 44: _tuple = exts.Bytes(); extBytes[0] = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [sliceType$6.nil, err]; } - b = new cryptobyte.Builder.ptr($ifaceNil, sliceType$6.nil, false, ptrType$17.nil, 0, 0, false, ptrType$18.nil); + b = new cryptobyte.Builder.ptr($ifaceNil, sliceType$6.nil, false, ptrType$18.nil, 0, 0, false, ptrType$19.nil); b.AddUint8(1); - $r = b.AddUint24LengthPrefixed((function(extBytes, m) { return function clientHelloMsg·marshal·func15(b$1) { + $r = b.AddUint24LengthPrefixed((function(extBytes, m) { return function clientHelloMsg·marshal·func16(b$1) { var {b$1, $s, $r, $c} = $restore(this, {b$1}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: b$1.AddUint16(m[0].vers); $r = addBytesWithLength(b$1, m[0].random, 32); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = b$1.AddUint8LengthPrefixed((function(extBytes, m) { return function clientHelloMsg·marshal·func15·func1(b$2) { + $r = b$1.AddUint8LengthPrefixed((function(extBytes, m) { return function clientHelloMsg·marshal·func16·func1(b$2) { var b$2; b$2.AddBytes(m[0].sessionId); }; })(extBytes, m)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = b$1.AddUint16LengthPrefixed((function(extBytes, m) { return function clientHelloMsg·marshal·func15·func2(b$2) { + $r = b$1.AddUint16LengthPrefixed((function(extBytes, m) { return function clientHelloMsg·marshal·func16·func2(b$2) { var _i, _ref, b$2, suite; _ref = m[0].cipherSuites; _i = 0; @@ -257055,26 +259083,26 @@ $packages["crypto/tls"] = (function() { _i++; } }; })(extBytes, m)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = b$1.AddUint8LengthPrefixed((function(extBytes, m) { return function clientHelloMsg·marshal·func15·func3(b$2) { + $r = b$1.AddUint8LengthPrefixed((function(extBytes, m) { return function clientHelloMsg·marshal·func16·func3(b$2) { var b$2; b$2.AddBytes(m[0].compressionMethods); }; })(extBytes, m)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* */ if (extBytes[0].$length > 0) { $s = 5; continue; } /* */ $s = 6; continue; /* if (extBytes[0].$length > 0) { */ case 5: - $r = b$1.AddUint16LengthPrefixed((function(extBytes, m) { return function clientHelloMsg·marshal·func15·func4(b$2) { + $r = b$1.AddUint16LengthPrefixed((function(extBytes, m) { return function clientHelloMsg·marshal·func16·func4(b$2) { var b$2; b$2.AddBytes(extBytes[0]); }; })(extBytes, m)); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 6: $s = -1; return; - /* */ } return; } var $f = {$blk: clientHelloMsg·marshal·func15, $c: true, $r, b$1, $s};return $f; - }; })(extBytes, m)); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } var $f = {$blk: clientHelloMsg·marshal·func16, $c: true, $r, b$1, $s};return $f; + }; })(extBytes, m)); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _tuple$1 = b.Bytes(); m[0].raw = _tuple$1[0]; err = _tuple$1[1]; $s = -1; return [m[0].raw, err]; - /* */ } return; } var $f = {$blk: marshal$2, $c: true, $r, _tuple, _tuple$1, b, err, extBytes, exts, m, $s};return $f; + /* */ } return; } var $f = {$blk: marshal, $c: true, $r, _tuple, _tuple$1, b, err, extBytes, exts, m, $s};return $f; }; $ptrType(clientHelloMsg).prototype.marshalWithoutBinders = function marshalWithoutBinders() { var {_i, _r, _ref, _tuple, binder, bindersLen, err, fullMessage, m, $s, $r, $c} = $restore(this, {}); @@ -257160,16 +259188,16 @@ $packages["crypto/tls"] = (function() { $s = -1; return $ifaceNil; /* */ } return; } var $f = {$blk: updateBinders, $c: true, $r, _i, _r, _ref, _tuple, _tuple$1, b, err, err$1, helloBytes, i, lenWithoutBinders, m, out, pskBinders, x, $s};return $f; }; - $ptrType(clientHelloMsg).prototype.unmarshal = function unmarshal$2(data) { + $ptrType(clientHelloMsg).prototype.unmarshal = function unmarshal(data) { var _1, _entry, _key, _ptr, binder, binders, cipherSuites$1, cipherSuites$24ptr, clientShares, curve, curves, data, extData, extension, extensions, extensions$24ptr, identities, ignored, ks, m, nameList, nameType, proto, protoList, psk, s, s$24ptr, seenExts, serverName, sigAndAlg, sigAndAlg$1, sigAndAlgs, sigAndAlgs$1, statusType, suite, vers, versList; m = this; - clientHelloMsg.copy(m, new clientHelloMsg.ptr(data, 0, sliceType$6.nil, sliceType$6.nil, sliceType$3.nil, sliceType$6.nil, "", false, sliceType$4.nil, sliceType$6.nil, false, sliceType$6.nil, sliceType.nil, sliceType.nil, false, sliceType$6.nil, sliceType$2.nil, false, sliceType$3.nil, sliceType$6.nil, sliceType$16.nil, false, sliceType$6.nil, sliceType$17.nil, sliceType$11.nil)); + clientHelloMsg.copy((m === ptrType$33.nil && $throwNilPointerError(), m), new clientHelloMsg.ptr(data, 0, sliceType$6.nil, sliceType$6.nil, sliceType$3.nil, sliceType$6.nil, "", false, sliceType$4.nil, sliceType$6.nil, false, sliceType$6.nil, sliceType.nil, sliceType.nil, false, sliceType$6.nil, false, sliceType$2.nil, false, sliceType$3.nil, sliceType$6.nil, sliceType$17.nil, false, sliceType$6.nil, sliceType$18.nil, sliceType$11.nil, sliceType$6.nil)); s = ($convertSliceType(data, cryptobyte.String)); - if (!(s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))).Skip(4) || !(s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))).ReadUint16((m.$ptr_vers || (m.$ptr_vers = new ptrType$20(function() { return this.$target.vers; }, function($v) { this.$target.vers = $v; }, m)))) || !(s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))).ReadBytes((m.$ptr_random || (m.$ptr_random = new ptrType$1(function() { return this.$target.random; }, function($v) { this.$target.random = $v; }, m))), 32) || !readUint8LengthPrefixed((s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))), (m.$ptr_sessionId || (m.$ptr_sessionId = new ptrType$1(function() { return this.$target.sessionId; }, function($v) { this.$target.sessionId = $v; }, m))))) { + if (!(s$24ptr || (s$24ptr = new ptrType$20(function() { return s; }, function($v) { s = $v; }))).Skip(4) || !(s$24ptr || (s$24ptr = new ptrType$20(function() { return s; }, function($v) { s = $v; }))).ReadUint16((m === ptrType$33.nil && $throwNilPointerError(), (m.$ptr_vers || (m.$ptr_vers = new ptrType$22(function() { return this.$target.vers; }, function($v) { this.$target.vers = $v; }, m))))) || !(s$24ptr || (s$24ptr = new ptrType$20(function() { return s; }, function($v) { s = $v; }))).ReadBytes((m === ptrType$33.nil && $throwNilPointerError(), (m.$ptr_random || (m.$ptr_random = new ptrType$1(function() { return this.$target.random; }, function($v) { this.$target.random = $v; }, m)))), 32) || !readUint8LengthPrefixed((s$24ptr || (s$24ptr = new ptrType$20(function() { return s; }, function($v) { s = $v; }))), (m === ptrType$33.nil && $throwNilPointerError(), (m.$ptr_sessionId || (m.$ptr_sessionId = new ptrType$1(function() { return this.$target.sessionId; }, function($v) { this.$target.sessionId = $v; }, m)))))) { return false; } cipherSuites$1 = cryptobyte.String.nil; - if (!(s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))).ReadUint16LengthPrefixed((cipherSuites$24ptr || (cipherSuites$24ptr = new ptrType$19(function() { return cipherSuites$1; }, function($v) { cipherSuites$1 = $v; }))))) { + if (!(s$24ptr || (s$24ptr = new ptrType$20(function() { return s; }, function($v) { s = $v; }))).ReadUint16LengthPrefixed((cipherSuites$24ptr || (cipherSuites$24ptr = new ptrType$20(function() { return cipherSuites$1; }, function($v) { cipherSuites$1 = $v; }))))) { return false; } m.cipherSuites = new sliceType$3([]); @@ -257178,7 +259206,7 @@ $packages["crypto/tls"] = (function() { if (!(!cipherSuites$1.Empty())) { break; } suite = [suite]; suite[0] = 0; - if (!(cipherSuites$24ptr || (cipherSuites$24ptr = new ptrType$19(function() { return cipherSuites$1; }, function($v) { cipherSuites$1 = $v; }))).ReadUint16((suite.$ptr || (suite.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, suite))))) { + if (!(cipherSuites$24ptr || (cipherSuites$24ptr = new ptrType$20(function() { return cipherSuites$1; }, function($v) { cipherSuites$1 = $v; }))).ReadUint16((suite.$ptr || (suite.$ptr = new ptrType$22(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, suite))))) { return false; } if (suite[0] === 255) { @@ -257186,14 +259214,14 @@ $packages["crypto/tls"] = (function() { } m.cipherSuites = $append(m.cipherSuites, suite[0]); } - if (!readUint8LengthPrefixed((s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))), (m.$ptr_compressionMethods || (m.$ptr_compressionMethods = new ptrType$1(function() { return this.$target.compressionMethods; }, function($v) { this.$target.compressionMethods = $v; }, m))))) { + if (!readUint8LengthPrefixed((s$24ptr || (s$24ptr = new ptrType$20(function() { return s; }, function($v) { s = $v; }))), (m === ptrType$33.nil && $throwNilPointerError(), (m.$ptr_compressionMethods || (m.$ptr_compressionMethods = new ptrType$1(function() { return this.$target.compressionMethods; }, function($v) { this.$target.compressionMethods = $v; }, m)))))) { return false; } if (s.Empty()) { return true; } extensions = cryptobyte.String.nil; - if (!(s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))).ReadUint16LengthPrefixed((extensions$24ptr || (extensions$24ptr = new ptrType$19(function() { return extensions; }, function($v) { extensions = $v; })))) || !s.Empty()) { + if (!(s$24ptr || (s$24ptr = new ptrType$20(function() { return s; }, function($v) { s = $v; }))).ReadUint16LengthPrefixed((extensions$24ptr || (extensions$24ptr = new ptrType$20(function() { return extensions; }, function($v) { extensions = $v; })))) || !s.Empty()) { return false; } seenExts = new $global.Map(); @@ -257214,7 +259242,7 @@ $packages["crypto/tls"] = (function() { versList = [versList]; extension[0] = 0; extData[0] = cryptobyte.String.nil; - if (!(extensions$24ptr || (extensions$24ptr = new ptrType$19(function() { return extensions; }, function($v) { extensions = $v; }))).ReadUint16((extension.$ptr || (extension.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extension)))) || !(extensions$24ptr || (extensions$24ptr = new ptrType$19(function() { return extensions; }, function($v) { extensions = $v; }))).ReadUint16LengthPrefixed((extData.$ptr || (extData.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))))) { + if (!(extensions$24ptr || (extensions$24ptr = new ptrType$20(function() { return extensions; }, function($v) { extensions = $v; }))).ReadUint16((extension.$ptr || (extension.$ptr = new ptrType$22(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extension)))) || !(extensions$24ptr || (extensions$24ptr = new ptrType$20(function() { return extensions; }, function($v) { extensions = $v; }))).ReadUint16LengthPrefixed((extData.$ptr || (extData.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))))) { return false; } if ((_entry = $mapIndex(seenExts,$Uint16.keyFor(extension[0])), _entry !== undefined ? _entry.v : false)) { @@ -257224,7 +259252,7 @@ $packages["crypto/tls"] = (function() { _1 = extension[0]; if (_1 === (0)) { nameList[0] = cryptobyte.String.nil; - if (!(extData.$ptr || (extData.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint16LengthPrefixed((nameList.$ptr || (nameList.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, nameList)))) || nameList[0].Empty()) { + if (!(extData.$ptr || (extData.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint16LengthPrefixed((nameList.$ptr || (nameList.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, nameList)))) || nameList[0].Empty()) { return false; } while (true) { @@ -257233,7 +259261,7 @@ $packages["crypto/tls"] = (function() { serverName = [serverName]; nameType[0] = 0; serverName[0] = cryptobyte.String.nil; - if (!(nameList.$ptr || (nameList.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, nameList))).ReadUint8((nameType.$ptr || (nameType.$ptr = new ptrType$22(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, nameType)))) || !(nameList.$ptr || (nameList.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, nameList))).ReadUint16LengthPrefixed((serverName.$ptr || (serverName.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, serverName)))) || serverName[0].Empty()) { + if (!(nameList.$ptr || (nameList.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, nameList))).ReadUint8((nameType.$ptr || (nameType.$ptr = new ptrType$23(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, nameType)))) || !(nameList.$ptr || (nameList.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, nameList))).ReadUint16LengthPrefixed((serverName.$ptr || (serverName.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, serverName)))) || serverName[0].Empty()) { return false; } if (!((nameType[0] === 0))) { @@ -257250,74 +259278,76 @@ $packages["crypto/tls"] = (function() { } else if (_1 === (5)) { statusType[0] = 0; ignored[0] = cryptobyte.String.nil; - if (!(extData.$ptr || (extData.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint8((statusType.$ptr || (statusType.$ptr = new ptrType$22(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, statusType)))) || !(extData.$ptr || (extData.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint16LengthPrefixed((ignored.$ptr || (ignored.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, ignored)))) || !(extData.$ptr || (extData.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint16LengthPrefixed((ignored.$ptr || (ignored.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, ignored))))) { + if (!(extData.$ptr || (extData.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint8((statusType.$ptr || (statusType.$ptr = new ptrType$23(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, statusType)))) || !(extData.$ptr || (extData.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint16LengthPrefixed((ignored.$ptr || (ignored.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, ignored)))) || !(extData.$ptr || (extData.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint16LengthPrefixed((ignored.$ptr || (ignored.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, ignored))))) { return false; } m.ocspStapling = statusType[0] === 1; } else if (_1 === (10)) { curves[0] = cryptobyte.String.nil; - if (!(extData.$ptr || (extData.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint16LengthPrefixed((curves.$ptr || (curves.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, curves)))) || curves[0].Empty()) { + if (!(extData.$ptr || (extData.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint16LengthPrefixed((curves.$ptr || (curves.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, curves)))) || curves[0].Empty()) { return false; } while (true) { if (!(!curves[0].Empty())) { break; } curve = [curve]; curve[0] = 0; - if (!(curves.$ptr || (curves.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, curves))).ReadUint16((curve.$ptr || (curve.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, curve))))) { + if (!(curves.$ptr || (curves.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, curves))).ReadUint16((curve.$ptr || (curve.$ptr = new ptrType$22(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, curve))))) { return false; } m.supportedCurves = $append(m.supportedCurves, ((curve[0] << 16 >>> 16))); } } else if (_1 === (11)) { - if (!readUint8LengthPrefixed((extData.$ptr || (extData.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))), (m.$ptr_supportedPoints || (m.$ptr_supportedPoints = new ptrType$1(function() { return this.$target.supportedPoints; }, function($v) { this.$target.supportedPoints = $v; }, m)))) || (m.supportedPoints.$length === 0)) { + if (!readUint8LengthPrefixed((extData.$ptr || (extData.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))), (m === ptrType$33.nil && $throwNilPointerError(), (m.$ptr_supportedPoints || (m.$ptr_supportedPoints = new ptrType$1(function() { return this.$target.supportedPoints; }, function($v) { this.$target.supportedPoints = $v; }, m))))) || (m.supportedPoints.$length === 0)) { return false; } } else if (_1 === (35)) { m.ticketSupported = true; - (extData.$ptr || (extData.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadBytes((m.$ptr_sessionTicket || (m.$ptr_sessionTicket = new ptrType$1(function() { return this.$target.sessionTicket; }, function($v) { this.$target.sessionTicket = $v; }, m))), extData[0].$length); + (extData.$ptr || (extData.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadBytes((m === ptrType$33.nil && $throwNilPointerError(), (m.$ptr_sessionTicket || (m.$ptr_sessionTicket = new ptrType$1(function() { return this.$target.sessionTicket; }, function($v) { this.$target.sessionTicket = $v; }, m)))), extData[0].$length); } else if (_1 === (13)) { sigAndAlgs[0] = cryptobyte.String.nil; - if (!(extData.$ptr || (extData.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint16LengthPrefixed((sigAndAlgs.$ptr || (sigAndAlgs.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, sigAndAlgs)))) || sigAndAlgs[0].Empty()) { + if (!(extData.$ptr || (extData.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint16LengthPrefixed((sigAndAlgs.$ptr || (sigAndAlgs.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, sigAndAlgs)))) || sigAndAlgs[0].Empty()) { return false; } while (true) { if (!(!sigAndAlgs[0].Empty())) { break; } sigAndAlg = [sigAndAlg]; sigAndAlg[0] = 0; - if (!(sigAndAlgs.$ptr || (sigAndAlgs.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, sigAndAlgs))).ReadUint16((sigAndAlg.$ptr || (sigAndAlg.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, sigAndAlg))))) { + if (!(sigAndAlgs.$ptr || (sigAndAlgs.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, sigAndAlgs))).ReadUint16((sigAndAlg.$ptr || (sigAndAlg.$ptr = new ptrType$22(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, sigAndAlg))))) { return false; } m.supportedSignatureAlgorithms = $append(m.supportedSignatureAlgorithms, ((sigAndAlg[0] << 16 >>> 16))); } } else if (_1 === (50)) { sigAndAlgs$1[0] = cryptobyte.String.nil; - if (!(extData.$ptr || (extData.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint16LengthPrefixed((sigAndAlgs$1.$ptr || (sigAndAlgs$1.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, sigAndAlgs$1)))) || sigAndAlgs$1[0].Empty()) { + if (!(extData.$ptr || (extData.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint16LengthPrefixed((sigAndAlgs$1.$ptr || (sigAndAlgs$1.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, sigAndAlgs$1)))) || sigAndAlgs$1[0].Empty()) { return false; } while (true) { if (!(!sigAndAlgs$1[0].Empty())) { break; } sigAndAlg$1 = [sigAndAlg$1]; sigAndAlg$1[0] = 0; - if (!(sigAndAlgs$1.$ptr || (sigAndAlgs$1.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, sigAndAlgs$1))).ReadUint16((sigAndAlg$1.$ptr || (sigAndAlg$1.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, sigAndAlg$1))))) { + if (!(sigAndAlgs$1.$ptr || (sigAndAlgs$1.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, sigAndAlgs$1))).ReadUint16((sigAndAlg$1.$ptr || (sigAndAlg$1.$ptr = new ptrType$22(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, sigAndAlg$1))))) { return false; } m.supportedSignatureAlgorithmsCert = $append(m.supportedSignatureAlgorithmsCert, ((sigAndAlg$1[0] << 16 >>> 16))); } } else if (_1 === (65281)) { - if (!readUint8LengthPrefixed((extData.$ptr || (extData.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))), (m.$ptr_secureRenegotiation || (m.$ptr_secureRenegotiation = new ptrType$1(function() { return this.$target.secureRenegotiation; }, function($v) { this.$target.secureRenegotiation = $v; }, m))))) { + if (!readUint8LengthPrefixed((extData.$ptr || (extData.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))), (m === ptrType$33.nil && $throwNilPointerError(), (m.$ptr_secureRenegotiation || (m.$ptr_secureRenegotiation = new ptrType$1(function() { return this.$target.secureRenegotiation; }, function($v) { this.$target.secureRenegotiation = $v; }, m)))))) { return false; } m.secureRenegotiationSupported = true; + } else if (_1 === (23)) { + m.extendedMasterSecret = true; } else if (_1 === (16)) { protoList[0] = cryptobyte.String.nil; - if (!(extData.$ptr || (extData.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint16LengthPrefixed((protoList.$ptr || (protoList.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, protoList)))) || protoList[0].Empty()) { + if (!(extData.$ptr || (extData.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint16LengthPrefixed((protoList.$ptr || (protoList.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, protoList)))) || protoList[0].Empty()) { return false; } while (true) { if (!(!protoList[0].Empty())) { break; } proto = [proto]; proto[0] = cryptobyte.String.nil; - if (!(protoList.$ptr || (protoList.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, protoList))).ReadUint8LengthPrefixed((proto.$ptr || (proto.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, proto)))) || proto[0].Empty()) { + if (!(protoList.$ptr || (protoList.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, protoList))).ReadUint8LengthPrefixed((proto.$ptr || (proto.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, proto)))) || proto[0].Empty()) { return false; } m.alpnProtocols = $append(m.alpnProtocols, ($bytesToString(proto[0]))); @@ -257326,31 +259356,31 @@ $packages["crypto/tls"] = (function() { m.scts = true; } else if (_1 === (43)) { versList[0] = cryptobyte.String.nil; - if (!(extData.$ptr || (extData.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint8LengthPrefixed((versList.$ptr || (versList.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, versList)))) || versList[0].Empty()) { + if (!(extData.$ptr || (extData.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint8LengthPrefixed((versList.$ptr || (versList.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, versList)))) || versList[0].Empty()) { return false; } while (true) { if (!(!versList[0].Empty())) { break; } vers = [vers]; vers[0] = 0; - if (!(versList.$ptr || (versList.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, versList))).ReadUint16((vers.$ptr || (vers.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, vers))))) { + if (!(versList.$ptr || (versList.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, versList))).ReadUint16((vers.$ptr || (vers.$ptr = new ptrType$22(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, vers))))) { return false; } m.supportedVersions = $append(m.supportedVersions, vers[0]); } } else if (_1 === (44)) { - if (!readUint16LengthPrefixed((extData.$ptr || (extData.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))), (m.$ptr_cookie || (m.$ptr_cookie = new ptrType$1(function() { return this.$target.cookie; }, function($v) { this.$target.cookie = $v; }, m)))) || (m.cookie.$length === 0)) { + if (!readUint16LengthPrefixed((extData.$ptr || (extData.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))), (m === ptrType$33.nil && $throwNilPointerError(), (m.$ptr_cookie || (m.$ptr_cookie = new ptrType$1(function() { return this.$target.cookie; }, function($v) { this.$target.cookie = $v; }, m))))) || (m.cookie.$length === 0)) { return false; } } else if (_1 === (51)) { clientShares[0] = cryptobyte.String.nil; - if (!(extData.$ptr || (extData.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint16LengthPrefixed((clientShares.$ptr || (clientShares.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, clientShares))))) { + if (!(extData.$ptr || (extData.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint16LengthPrefixed((clientShares.$ptr || (clientShares.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, clientShares))))) { return false; } while (true) { if (!(!clientShares[0].Empty())) { break; } ks = new keyShare.ptr(0, sliceType$6.nil); - if (!(clientShares.$ptr || (clientShares.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, clientShares))).ReadUint16(((_ptr = (ks.$ptr_group || (ks.$ptr_group = new ptrType$37(function() { return this.$target.group; }, function($v) { this.$target.group = $v; }, ks))), new ptrType$20(function() { return (_ptr.$get() << 16 >>> 16); }, function($v) { _ptr.$set(($v << 16 >>> 16)); }, _ptr.$target)))) || !readUint16LengthPrefixed((clientShares.$ptr || (clientShares.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, clientShares))), (ks.$ptr_data || (ks.$ptr_data = new ptrType$1(function() { return this.$target.data; }, function($v) { this.$target.data = $v; }, ks)))) || (ks.data.$length === 0)) { + if (!(clientShares.$ptr || (clientShares.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, clientShares))).ReadUint16(((_ptr = (ks.$ptr_group || (ks.$ptr_group = new ptrType$41(function() { return this.$target.group; }, function($v) { this.$target.group = $v; }, ks))), new ptrType$22(function() { return (_ptr.$get() << 16 >>> 16); }, function($v) { _ptr.$set(($v << 16 >>> 16)); }, _ptr.$target, _ptr.$index)))) || !readUint16LengthPrefixed((clientShares.$ptr || (clientShares.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, clientShares))), (ks.$ptr_data || (ks.$ptr_data = new ptrType$1(function() { return this.$target.data; }, function($v) { this.$target.data = $v; }, ks)))) || (ks.data.$length === 0)) { return false; } m.keyShares = $append(m.keyShares, ks); @@ -257358,7 +259388,12 @@ $packages["crypto/tls"] = (function() { } else if (_1 === (42)) { m.earlyData = true; } else if (_1 === (45)) { - if (!readUint8LengthPrefixed((extData.$ptr || (extData.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))), (m.$ptr_pskModes || (m.$ptr_pskModes = new ptrType$1(function() { return this.$target.pskModes; }, function($v) { this.$target.pskModes = $v; }, m))))) { + if (!readUint8LengthPrefixed((extData.$ptr || (extData.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))), (m === ptrType$33.nil && $throwNilPointerError(), (m.$ptr_pskModes || (m.$ptr_pskModes = new ptrType$1(function() { return this.$target.pskModes; }, function($v) { this.$target.pskModes = $v; }, m)))))) { + return false; + } + } else if (_1 === (57)) { + m.quicTransportParameters = $makeSlice(sliceType$6, extData[0].$length); + if (!(extData.$ptr || (extData.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).CopyBytes(m.quicTransportParameters)) { return false; } } else if (_1 === (41)) { @@ -257366,26 +259401,26 @@ $packages["crypto/tls"] = (function() { return false; } identities[0] = cryptobyte.String.nil; - if (!(extData.$ptr || (extData.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint16LengthPrefixed((identities.$ptr || (identities.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, identities)))) || identities[0].Empty()) { + if (!(extData.$ptr || (extData.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint16LengthPrefixed((identities.$ptr || (identities.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, identities)))) || identities[0].Empty()) { return false; } while (true) { if (!(!identities[0].Empty())) { break; } psk = new pskIdentity.ptr(sliceType$6.nil, 0); - if (!readUint16LengthPrefixed((identities.$ptr || (identities.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, identities))), (psk.$ptr_label || (psk.$ptr_label = new ptrType$1(function() { return this.$target.label; }, function($v) { this.$target.label = $v; }, psk)))) || !(identities.$ptr || (identities.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, identities))).ReadUint32((psk.$ptr_obfuscatedTicketAge || (psk.$ptr_obfuscatedTicketAge = new ptrType$36(function() { return this.$target.obfuscatedTicketAge; }, function($v) { this.$target.obfuscatedTicketAge = $v; }, psk)))) || (psk.label.$length === 0)) { + if (!readUint16LengthPrefixed((identities.$ptr || (identities.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, identities))), (psk.$ptr_label || (psk.$ptr_label = new ptrType$1(function() { return this.$target.label; }, function($v) { this.$target.label = $v; }, psk)))) || !(identities.$ptr || (identities.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, identities))).ReadUint32((psk.$ptr_obfuscatedTicketAge || (psk.$ptr_obfuscatedTicketAge = new ptrType$25(function() { return this.$target.obfuscatedTicketAge; }, function($v) { this.$target.obfuscatedTicketAge = $v; }, psk)))) || (psk.label.$length === 0)) { return false; } m.pskIdentities = $append(m.pskIdentities, psk); } binders[0] = cryptobyte.String.nil; - if (!(extData.$ptr || (extData.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint16LengthPrefixed((binders.$ptr || (binders.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, binders)))) || binders[0].Empty()) { + if (!(extData.$ptr || (extData.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint16LengthPrefixed((binders.$ptr || (binders.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, binders)))) || binders[0].Empty()) { return false; } while (true) { if (!(!binders[0].Empty())) { break; } binder = [binder]; binder[0] = sliceType$6.nil; - if (!readUint8LengthPrefixed((binders.$ptr || (binders.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, binders))), (binder.$ptr || (binder.$ptr = new ptrType$1(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, binder)))) || (binder[0].$length === 0)) { + if (!readUint8LengthPrefixed((binders.$ptr || (binders.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, binders))), (binder.$ptr || (binder.$ptr = new ptrType$1(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, binder)))) || (binder[0].$length === 0)) { return false; } m.pskBinders = $append(m.pskBinders, binder[0]); @@ -257399,7 +259434,7 @@ $packages["crypto/tls"] = (function() { } return true; }; - $ptrType(serverHelloMsg).prototype.marshal = function marshal$3() { + $ptrType(serverHelloMsg).prototype.marshal = function marshal$1() { var {_tuple, _tuple$1, b, err, extBytes, exts, m, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: extBytes = [extBytes]; @@ -257408,7 +259443,7 @@ $packages["crypto/tls"] = (function() { if (!(m[0].raw === sliceType$6.nil)) { $s = -1; return [m[0].raw, $ifaceNil]; } - exts = new cryptobyte.Builder.ptr($ifaceNil, sliceType$6.nil, false, ptrType$17.nil, 0, 0, false, ptrType$18.nil); + exts = new cryptobyte.Builder.ptr($ifaceNil, sliceType$6.nil, false, ptrType$18.nil, 0, 0, false, ptrType$19.nil); if (m[0].ocspStapling) { exts.AddUint16(5); exts.AddUint16(0); @@ -257432,6 +259467,10 @@ $packages["crypto/tls"] = (function() { /* */ } return; } var $f = {$blk: serverHelloMsg·marshal·func1, $c: true, $r, exts$1, $s};return $f; }; })(extBytes, m)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 2: + if (m[0].extendedMasterSecret) { + exts.AddUint16(23); + exts.AddUint16(0); + } /* */ if (m[0].alpnProtocol.length > 0) { $s = 4; continue; } /* */ $s = 5; continue; /* if (m[0].alpnProtocol.length > 0) { */ case 4: @@ -257562,7 +259601,7 @@ $packages["crypto/tls"] = (function() { if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [sliceType$6.nil, err]; } - b = new cryptobyte.Builder.ptr($ifaceNil, sliceType$6.nil, false, ptrType$17.nil, 0, 0, false, ptrType$18.nil); + b = new cryptobyte.Builder.ptr($ifaceNil, sliceType$6.nil, false, ptrType$18.nil, 0, 0, false, ptrType$19.nil); b.AddUint8(2); $r = b.AddUint24LengthPrefixed((function(extBytes, m) { return function serverHelloMsg·marshal·func10(b$1) { var {b$1, $s, $r, $c} = $restore(this, {b$1}); @@ -257590,21 +259629,21 @@ $packages["crypto/tls"] = (function() { m[0].raw = _tuple$1[0]; err = _tuple$1[1]; $s = -1; return [m[0].raw, err]; - /* */ } return; } var $f = {$blk: marshal$3, $c: true, $r, _tuple, _tuple$1, b, err, extBytes, exts, m, $s};return $f; + /* */ } return; } var $f = {$blk: marshal$1, $c: true, $r, _tuple, _tuple$1, b, err, extBytes, exts, m, $s};return $f; }; - $ptrType(serverHelloMsg).prototype.unmarshal = function unmarshal$3(data) { + $ptrType(serverHelloMsg).prototype.unmarshal = function unmarshal$1(data) { var _1, _entry, _key, _ptr, _ptr$1, data, extData, extension, extensions, extensions$24ptr, m, proto, protoList, s, s$24ptr, sct, sctList, seenExts, x, x$1; m = this; - serverHelloMsg.copy(m, new serverHelloMsg.ptr(data, 0, sliceType$6.nil, sliceType$6.nil, 0, 0, false, false, false, sliceType$6.nil, "", sliceType$11.nil, 0, new keyShare.ptr(0, sliceType$6.nil), false, 0, sliceType$6.nil, sliceType$6.nil, 0)); + serverHelloMsg.copy((m === ptrType$38.nil && $throwNilPointerError(), m), new serverHelloMsg.ptr(data, 0, sliceType$6.nil, sliceType$6.nil, 0, 0, false, false, false, sliceType$6.nil, false, "", sliceType$11.nil, 0, new keyShare.ptr(0, sliceType$6.nil), false, 0, sliceType$6.nil, sliceType$6.nil, 0)); s = ($convertSliceType(data, cryptobyte.String)); - if (!(s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))).Skip(4) || !(s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))).ReadUint16((m.$ptr_vers || (m.$ptr_vers = new ptrType$20(function() { return this.$target.vers; }, function($v) { this.$target.vers = $v; }, m)))) || !(s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))).ReadBytes((m.$ptr_random || (m.$ptr_random = new ptrType$1(function() { return this.$target.random; }, function($v) { this.$target.random = $v; }, m))), 32) || !readUint8LengthPrefixed((s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))), (m.$ptr_sessionId || (m.$ptr_sessionId = new ptrType$1(function() { return this.$target.sessionId; }, function($v) { this.$target.sessionId = $v; }, m)))) || !(s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))).ReadUint16((m.$ptr_cipherSuite || (m.$ptr_cipherSuite = new ptrType$20(function() { return this.$target.cipherSuite; }, function($v) { this.$target.cipherSuite = $v; }, m)))) || !(s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))).ReadUint8((m.$ptr_compressionMethod || (m.$ptr_compressionMethod = new ptrType$22(function() { return this.$target.compressionMethod; }, function($v) { this.$target.compressionMethod = $v; }, m))))) { + if (!(s$24ptr || (s$24ptr = new ptrType$20(function() { return s; }, function($v) { s = $v; }))).Skip(4) || !(s$24ptr || (s$24ptr = new ptrType$20(function() { return s; }, function($v) { s = $v; }))).ReadUint16((m === ptrType$38.nil && $throwNilPointerError(), (m.$ptr_vers || (m.$ptr_vers = new ptrType$22(function() { return this.$target.vers; }, function($v) { this.$target.vers = $v; }, m))))) || !(s$24ptr || (s$24ptr = new ptrType$20(function() { return s; }, function($v) { s = $v; }))).ReadBytes((m === ptrType$38.nil && $throwNilPointerError(), (m.$ptr_random || (m.$ptr_random = new ptrType$1(function() { return this.$target.random; }, function($v) { this.$target.random = $v; }, m)))), 32) || !readUint8LengthPrefixed((s$24ptr || (s$24ptr = new ptrType$20(function() { return s; }, function($v) { s = $v; }))), (m === ptrType$38.nil && $throwNilPointerError(), (m.$ptr_sessionId || (m.$ptr_sessionId = new ptrType$1(function() { return this.$target.sessionId; }, function($v) { this.$target.sessionId = $v; }, m))))) || !(s$24ptr || (s$24ptr = new ptrType$20(function() { return s; }, function($v) { s = $v; }))).ReadUint16((m === ptrType$38.nil && $throwNilPointerError(), (m.$ptr_cipherSuite || (m.$ptr_cipherSuite = new ptrType$22(function() { return this.$target.cipherSuite; }, function($v) { this.$target.cipherSuite = $v; }, m))))) || !(s$24ptr || (s$24ptr = new ptrType$20(function() { return s; }, function($v) { s = $v; }))).ReadUint8((m === ptrType$38.nil && $throwNilPointerError(), (m.$ptr_compressionMethod || (m.$ptr_compressionMethod = new ptrType$23(function() { return this.$target.compressionMethod; }, function($v) { this.$target.compressionMethod = $v; }, m)))))) { return false; } if (s.Empty()) { return true; } extensions = cryptobyte.String.nil; - if (!(s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))).ReadUint16LengthPrefixed((extensions$24ptr || (extensions$24ptr = new ptrType$19(function() { return extensions; }, function($v) { extensions = $v; })))) || !s.Empty()) { + if (!(s$24ptr || (s$24ptr = new ptrType$20(function() { return s; }, function($v) { s = $v; }))).ReadUint16LengthPrefixed((extensions$24ptr || (extensions$24ptr = new ptrType$20(function() { return extensions; }, function($v) { extensions = $v; })))) || !s.Empty()) { return false; } seenExts = new $global.Map(); @@ -257617,7 +259656,7 @@ $packages["crypto/tls"] = (function() { sctList = [sctList]; extension[0] = 0; extData[0] = cryptobyte.String.nil; - if (!(extensions$24ptr || (extensions$24ptr = new ptrType$19(function() { return extensions; }, function($v) { extensions = $v; }))).ReadUint16((extension.$ptr || (extension.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extension)))) || !(extensions$24ptr || (extensions$24ptr = new ptrType$19(function() { return extensions; }, function($v) { extensions = $v; }))).ReadUint16LengthPrefixed((extData.$ptr || (extData.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))))) { + if (!(extensions$24ptr || (extensions$24ptr = new ptrType$20(function() { return extensions; }, function($v) { extensions = $v; }))).ReadUint16((extension.$ptr || (extension.$ptr = new ptrType$22(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extension)))) || !(extensions$24ptr || (extensions$24ptr = new ptrType$20(function() { return extensions; }, function($v) { extensions = $v; }))).ReadUint16LengthPrefixed((extData.$ptr || (extData.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))))) { return false; } if ((_entry = $mapIndex(seenExts,$Uint16.keyFor(extension[0])), _entry !== undefined ? _entry.v : false)) { @@ -257630,59 +259669,61 @@ $packages["crypto/tls"] = (function() { } else if (_1 === (35)) { m.ticketSupported = true; } else if (_1 === (65281)) { - if (!readUint8LengthPrefixed((extData.$ptr || (extData.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))), (m.$ptr_secureRenegotiation || (m.$ptr_secureRenegotiation = new ptrType$1(function() { return this.$target.secureRenegotiation; }, function($v) { this.$target.secureRenegotiation = $v; }, m))))) { + if (!readUint8LengthPrefixed((extData.$ptr || (extData.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))), (m === ptrType$38.nil && $throwNilPointerError(), (m.$ptr_secureRenegotiation || (m.$ptr_secureRenegotiation = new ptrType$1(function() { return this.$target.secureRenegotiation; }, function($v) { this.$target.secureRenegotiation = $v; }, m)))))) { return false; } m.secureRenegotiationSupported = true; + } else if (_1 === (23)) { + m.extendedMasterSecret = true; } else if (_1 === (16)) { protoList[0] = cryptobyte.String.nil; - if (!(extData.$ptr || (extData.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint16LengthPrefixed((protoList.$ptr || (protoList.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, protoList)))) || protoList[0].Empty()) { + if (!(extData.$ptr || (extData.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint16LengthPrefixed((protoList.$ptr || (protoList.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, protoList)))) || protoList[0].Empty()) { return false; } proto[0] = cryptobyte.String.nil; - if (!(protoList.$ptr || (protoList.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, protoList))).ReadUint8LengthPrefixed((proto.$ptr || (proto.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, proto)))) || proto[0].Empty() || !protoList[0].Empty()) { + if (!(protoList.$ptr || (protoList.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, protoList))).ReadUint8LengthPrefixed((proto.$ptr || (proto.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, proto)))) || proto[0].Empty() || !protoList[0].Empty()) { return false; } m.alpnProtocol = ($bytesToString(proto[0])); } else if (_1 === (18)) { sctList[0] = cryptobyte.String.nil; - if (!(extData.$ptr || (extData.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint16LengthPrefixed((sctList.$ptr || (sctList.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, sctList)))) || sctList[0].Empty()) { + if (!(extData.$ptr || (extData.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint16LengthPrefixed((sctList.$ptr || (sctList.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, sctList)))) || sctList[0].Empty()) { return false; } while (true) { if (!(!sctList[0].Empty())) { break; } sct = [sct]; sct[0] = sliceType$6.nil; - if (!readUint16LengthPrefixed((sctList.$ptr || (sctList.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, sctList))), (sct.$ptr || (sct.$ptr = new ptrType$1(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, sct)))) || (sct[0].$length === 0)) { + if (!readUint16LengthPrefixed((sctList.$ptr || (sctList.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, sctList))), (sct.$ptr || (sct.$ptr = new ptrType$1(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, sct)))) || (sct[0].$length === 0)) { return false; } m.scts = $append(m.scts, sct[0]); } } else if (_1 === (43)) { - if (!(extData.$ptr || (extData.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint16((m.$ptr_supportedVersion || (m.$ptr_supportedVersion = new ptrType$20(function() { return this.$target.supportedVersion; }, function($v) { this.$target.supportedVersion = $v; }, m))))) { + if (!(extData.$ptr || (extData.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint16((m === ptrType$38.nil && $throwNilPointerError(), (m.$ptr_supportedVersion || (m.$ptr_supportedVersion = new ptrType$22(function() { return this.$target.supportedVersion; }, function($v) { this.$target.supportedVersion = $v; }, m)))))) { return false; } } else if (_1 === (44)) { - if (!readUint16LengthPrefixed((extData.$ptr || (extData.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))), (m.$ptr_cookie || (m.$ptr_cookie = new ptrType$1(function() { return this.$target.cookie; }, function($v) { this.$target.cookie = $v; }, m)))) || (m.cookie.$length === 0)) { + if (!readUint16LengthPrefixed((extData.$ptr || (extData.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))), (m === ptrType$38.nil && $throwNilPointerError(), (m.$ptr_cookie || (m.$ptr_cookie = new ptrType$1(function() { return this.$target.cookie; }, function($v) { this.$target.cookie = $v; }, m))))) || (m.cookie.$length === 0)) { return false; } } else if (_1 === (51)) { if (extData[0].$length === 2) { - if (!(extData.$ptr || (extData.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint16(((_ptr = (m.$ptr_selectedGroup || (m.$ptr_selectedGroup = new ptrType$37(function() { return this.$target.selectedGroup; }, function($v) { this.$target.selectedGroup = $v; }, m))), new ptrType$20(function() { return (_ptr.$get() << 16 >>> 16); }, function($v) { _ptr.$set(($v << 16 >>> 16)); }, _ptr.$target))))) { + if (!(extData.$ptr || (extData.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint16(((_ptr = (m === ptrType$38.nil && $throwNilPointerError(), (m.$ptr_selectedGroup || (m.$ptr_selectedGroup = new ptrType$41(function() { return this.$target.selectedGroup; }, function($v) { this.$target.selectedGroup = $v; }, m)))), new ptrType$22(function() { return (_ptr.$get() << 16 >>> 16); }, function($v) { _ptr.$set(($v << 16 >>> 16)); }, _ptr.$target, _ptr.$index))))) { return false; } } else { - if (!(extData.$ptr || (extData.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint16(((_ptr$1 = (x = m.serverShare, (x.$ptr_group || (x.$ptr_group = new ptrType$37(function() { return this.$target.group; }, function($v) { this.$target.group = $v; }, x)))), new ptrType$20(function() { return (_ptr$1.$get() << 16 >>> 16); }, function($v) { _ptr$1.$set(($v << 16 >>> 16)); }, _ptr$1.$target)))) || !readUint16LengthPrefixed((extData.$ptr || (extData.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))), (x$1 = m.serverShare, (x$1.$ptr_data || (x$1.$ptr_data = new ptrType$1(function() { return this.$target.data; }, function($v) { this.$target.data = $v; }, x$1)))))) { + if (!(extData.$ptr || (extData.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint16(((_ptr$1 = (x = m.serverShare, (x.$ptr_group || (x.$ptr_group = new ptrType$41(function() { return this.$target.group; }, function($v) { this.$target.group = $v; }, x)))), new ptrType$22(function() { return (_ptr$1.$get() << 16 >>> 16); }, function($v) { _ptr$1.$set(($v << 16 >>> 16)); }, _ptr$1.$target, _ptr$1.$index)))) || !readUint16LengthPrefixed((extData.$ptr || (extData.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))), (x$1 = m.serverShare, (x$1.$ptr_data || (x$1.$ptr_data = new ptrType$1(function() { return this.$target.data; }, function($v) { this.$target.data = $v; }, x$1)))))) { return false; } } } else if (_1 === (41)) { m.selectedIdentityPresent = true; - if (!(extData.$ptr || (extData.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint16((m.$ptr_selectedIdentity || (m.$ptr_selectedIdentity = new ptrType$20(function() { return this.$target.selectedIdentity; }, function($v) { this.$target.selectedIdentity = $v; }, m))))) { + if (!(extData.$ptr || (extData.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint16((m === ptrType$38.nil && $throwNilPointerError(), (m.$ptr_selectedIdentity || (m.$ptr_selectedIdentity = new ptrType$22(function() { return this.$target.selectedIdentity; }, function($v) { this.$target.selectedIdentity = $v; }, m)))))) { return false; } } else if (_1 === (11)) { - if (!readUint8LengthPrefixed((extData.$ptr || (extData.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))), (m.$ptr_supportedPoints || (m.$ptr_supportedPoints = new ptrType$1(function() { return this.$target.supportedPoints; }, function($v) { this.$target.supportedPoints = $v; }, m)))) || (m.supportedPoints.$length === 0)) { + if (!readUint8LengthPrefixed((extData.$ptr || (extData.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))), (m === ptrType$38.nil && $throwNilPointerError(), (m.$ptr_supportedPoints || (m.$ptr_supportedPoints = new ptrType$1(function() { return this.$target.supportedPoints; }, function($v) { this.$target.supportedPoints = $v; }, m))))) || (m.supportedPoints.$length === 0)) { return false; } } else { @@ -257694,7 +259735,7 @@ $packages["crypto/tls"] = (function() { } return true; }; - $ptrType(encryptedExtensionsMsg).prototype.marshal = function marshal$4() { + $ptrType(encryptedExtensionsMsg).prototype.marshal = function marshal$2() { var {_tuple, b, err, m, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: m = [m]; @@ -257702,7 +259743,7 @@ $packages["crypto/tls"] = (function() { if (!(m[0].raw === sliceType$6.nil)) { $s = -1; return [m[0].raw, $ifaceNil]; } - b = new cryptobyte.Builder.ptr($ifaceNil, sliceType$6.nil, false, ptrType$17.nil, 0, 0, false, ptrType$18.nil); + b = new cryptobyte.Builder.ptr($ifaceNil, sliceType$6.nil, false, ptrType$18.nil, 0, 0, false, ptrType$19.nil); b.AddUint8(8); $r = b.AddUint24LengthPrefixed((function(m) { return function encryptedExtensionsMsg·marshal·func1(b$1) { var {b$1, $s, $r, $c} = $restore(this, {b$1}); @@ -257731,6 +259772,19 @@ $packages["crypto/tls"] = (function() { /* */ } return; } var $f = {$blk: encryptedExtensionsMsg·marshal·func1·func1·func1, $c: true, $r, b$3, $s};return $f; }; })(m)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 2: + /* */ if (!(m[0].quicTransportParameters === sliceType$6.nil)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!(m[0].quicTransportParameters === sliceType$6.nil)) { */ case 4: + b$2.AddUint16(57); + $r = b$2.AddUint16LengthPrefixed((function(m) { return function encryptedExtensionsMsg·marshal·func1·func1·func2(b$3) { + var b$3; + b$3.AddBytes(m[0].quicTransportParameters); + }; })(m)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 5: + if (m[0].earlyData) { + b$2.AddUint16(42); + b$2.AddUint16(0); + } $s = -1; return; /* */ } return; } var $f = {$blk: encryptedExtensionsMsg·marshal·func1·func1, $c: true, $r, b$2, $s};return $f; }; })(m)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } @@ -257742,15 +259796,15 @@ $packages["crypto/tls"] = (function() { m[0].raw = _tuple[0]; err = _tuple[1]; $s = -1; return [m[0].raw, err]; - /* */ } return; } var $f = {$blk: marshal$4, $c: true, $r, _tuple, b, err, m, $s};return $f; + /* */ } return; } var $f = {$blk: marshal$2, $c: true, $r, _tuple, b, err, m, $s};return $f; }; - $ptrType(encryptedExtensionsMsg).prototype.unmarshal = function unmarshal$4(data) { + $ptrType(encryptedExtensionsMsg).prototype.unmarshal = function unmarshal$2(data) { var _1, data, extData, extension, extensions, extensions$24ptr, m, proto, protoList, s, s$24ptr; m = this; - encryptedExtensionsMsg.copy(m, new encryptedExtensionsMsg.ptr(data, "")); + encryptedExtensionsMsg.copy((m === ptrType$42.nil && $throwNilPointerError(), m), new encryptedExtensionsMsg.ptr(data, "", sliceType$6.nil, false)); s = ($convertSliceType(data, cryptobyte.String)); extensions = cryptobyte.String.nil; - if (!(s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))).Skip(4) || !(s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))).ReadUint16LengthPrefixed((extensions$24ptr || (extensions$24ptr = new ptrType$19(function() { return extensions; }, function($v) { extensions = $v; })))) || !s.Empty()) { + if (!(s$24ptr || (s$24ptr = new ptrType$20(function() { return s; }, function($v) { s = $v; }))).Skip(4) || !(s$24ptr || (s$24ptr = new ptrType$20(function() { return s; }, function($v) { s = $v; }))).ReadUint16LengthPrefixed((extensions$24ptr || (extensions$24ptr = new ptrType$20(function() { return extensions; }, function($v) { extensions = $v; })))) || !s.Empty()) { return false; } while (true) { @@ -257761,20 +259815,27 @@ $packages["crypto/tls"] = (function() { protoList = [protoList]; extension[0] = 0; extData[0] = cryptobyte.String.nil; - if (!(extensions$24ptr || (extensions$24ptr = new ptrType$19(function() { return extensions; }, function($v) { extensions = $v; }))).ReadUint16((extension.$ptr || (extension.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extension)))) || !(extensions$24ptr || (extensions$24ptr = new ptrType$19(function() { return extensions; }, function($v) { extensions = $v; }))).ReadUint16LengthPrefixed((extData.$ptr || (extData.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))))) { + if (!(extensions$24ptr || (extensions$24ptr = new ptrType$20(function() { return extensions; }, function($v) { extensions = $v; }))).ReadUint16((extension.$ptr || (extension.$ptr = new ptrType$22(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extension)))) || !(extensions$24ptr || (extensions$24ptr = new ptrType$20(function() { return extensions; }, function($v) { extensions = $v; }))).ReadUint16LengthPrefixed((extData.$ptr || (extData.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))))) { return false; } _1 = extension[0]; if (_1 === (16)) { protoList[0] = cryptobyte.String.nil; - if (!(extData.$ptr || (extData.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint16LengthPrefixed((protoList.$ptr || (protoList.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, protoList)))) || protoList[0].Empty()) { + if (!(extData.$ptr || (extData.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint16LengthPrefixed((protoList.$ptr || (protoList.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, protoList)))) || protoList[0].Empty()) { return false; } proto[0] = cryptobyte.String.nil; - if (!(protoList.$ptr || (protoList.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, protoList))).ReadUint8LengthPrefixed((proto.$ptr || (proto.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, proto)))) || proto[0].Empty() || !protoList[0].Empty()) { + if (!(protoList.$ptr || (protoList.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, protoList))).ReadUint8LengthPrefixed((proto.$ptr || (proto.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, proto)))) || proto[0].Empty() || !protoList[0].Empty()) { return false; } m.alpnProtocol = ($bytesToString(proto[0])); + } else if (_1 === (57)) { + m.quicTransportParameters = $makeSlice(sliceType$6, extData[0].$length); + if (!(extData.$ptr || (extData.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).CopyBytes(m.quicTransportParameters)) { + return false; + } + } else if (_1 === (42)) { + m.earlyData = true; } else { continue; } @@ -257784,19 +259845,19 @@ $packages["crypto/tls"] = (function() { } return true; }; - $ptrType(endOfEarlyDataMsg).prototype.marshal = function marshal$5() { + $ptrType(endOfEarlyDataMsg).prototype.marshal = function marshal$3() { var m, x; m = this; x = $makeSlice(sliceType$6, 4); (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0] = 5); return [x, $ifaceNil]; }; - $ptrType(endOfEarlyDataMsg).prototype.unmarshal = function unmarshal$5(data) { + $ptrType(endOfEarlyDataMsg).prototype.unmarshal = function unmarshal$3(data) { var data, m; m = this; return data.$length === 4; }; - $ptrType(keyUpdateMsg).prototype.marshal = function marshal$6() { + $ptrType(keyUpdateMsg).prototype.marshal = function marshal$4() { var {_tuple, b, err, m, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: m = [m]; @@ -257804,7 +259865,7 @@ $packages["crypto/tls"] = (function() { if (!(m[0].raw === sliceType$6.nil)) { $s = -1; return [m[0].raw, $ifaceNil]; } - b = new cryptobyte.Builder.ptr($ifaceNil, sliceType$6.nil, false, ptrType$17.nil, 0, 0, false, ptrType$18.nil); + b = new cryptobyte.Builder.ptr($ifaceNil, sliceType$6.nil, false, ptrType$18.nil, 0, 0, false, ptrType$19.nil); b.AddUint8(24); $r = b.AddUint24LengthPrefixed((function(m) { return function keyUpdateMsg·marshal·func1(b$1) { var b$1; @@ -257819,15 +259880,15 @@ $packages["crypto/tls"] = (function() { m[0].raw = _tuple[0]; err = _tuple[1]; $s = -1; return [m[0].raw, err]; - /* */ } return; } var $f = {$blk: marshal$6, $c: true, $r, _tuple, b, err, m, $s};return $f; + /* */ } return; } var $f = {$blk: marshal$4, $c: true, $r, _tuple, b, err, m, $s};return $f; }; - $ptrType(keyUpdateMsg).prototype.unmarshal = function unmarshal$6(data) { + $ptrType(keyUpdateMsg).prototype.unmarshal = function unmarshal$4(data) { var _1, data, m, s, s$24ptr, updateRequested, updateRequested$24ptr; m = this; m.raw = data; s = ($convertSliceType(data, cryptobyte.String)); updateRequested = 0; - if (!(s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))).Skip(4) || !(s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))).ReadUint8((updateRequested$24ptr || (updateRequested$24ptr = new ptrType$22(function() { return updateRequested; }, function($v) { updateRequested = $v; })))) || !s.Empty()) { + if (!(s$24ptr || (s$24ptr = new ptrType$20(function() { return s; }, function($v) { s = $v; }))).Skip(4) || !(s$24ptr || (s$24ptr = new ptrType$20(function() { return s; }, function($v) { s = $v; }))).ReadUint8((updateRequested$24ptr || (updateRequested$24ptr = new ptrType$23(function() { return updateRequested; }, function($v) { updateRequested = $v; })))) || !s.Empty()) { return false; } _1 = updateRequested; @@ -257840,7 +259901,7 @@ $packages["crypto/tls"] = (function() { } return true; }; - $ptrType(newSessionTicketMsgTLS13).prototype.marshal = function marshal$7() { + $ptrType(newSessionTicketMsgTLS13).prototype.marshal = function marshal$5() { var {_tuple, b, err, m, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: m = [m]; @@ -257848,7 +259909,7 @@ $packages["crypto/tls"] = (function() { if (!(m[0].raw === sliceType$6.nil)) { $s = -1; return [m[0].raw, $ifaceNil]; } - b = new cryptobyte.Builder.ptr($ifaceNil, sliceType$6.nil, false, ptrType$17.nil, 0, 0, false, ptrType$18.nil); + b = new cryptobyte.Builder.ptr($ifaceNil, sliceType$6.nil, false, ptrType$18.nil, 0, 0, false, ptrType$19.nil); b.AddUint8(4); $r = b.AddUint24LengthPrefixed((function(m) { return function newSessionTicketMsgTLS13·marshal·func1(b$1) { var {b$1, $s, $r, $c} = $restore(this, {b$1}); @@ -257886,15 +259947,15 @@ $packages["crypto/tls"] = (function() { m[0].raw = _tuple[0]; err = _tuple[1]; $s = -1; return [m[0].raw, err]; - /* */ } return; } var $f = {$blk: marshal$7, $c: true, $r, _tuple, b, err, m, $s};return $f; + /* */ } return; } var $f = {$blk: marshal$5, $c: true, $r, _tuple, b, err, m, $s};return $f; }; - $ptrType(newSessionTicketMsgTLS13).prototype.unmarshal = function unmarshal$7(data) { + $ptrType(newSessionTicketMsgTLS13).prototype.unmarshal = function unmarshal$5(data) { var _1, data, extData, extension, extensions, extensions$24ptr, m, s, s$24ptr; m = this; - newSessionTicketMsgTLS13.copy(m, new newSessionTicketMsgTLS13.ptr(data, 0, 0, sliceType$6.nil, sliceType$6.nil, 0)); + newSessionTicketMsgTLS13.copy((m === ptrType$43.nil && $throwNilPointerError(), m), new newSessionTicketMsgTLS13.ptr(data, 0, 0, sliceType$6.nil, sliceType$6.nil, 0)); s = ($convertSliceType(data, cryptobyte.String)); extensions = cryptobyte.String.nil; - if (!(s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))).Skip(4) || !(s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))).ReadUint32((m.$ptr_lifetime || (m.$ptr_lifetime = new ptrType$36(function() { return this.$target.lifetime; }, function($v) { this.$target.lifetime = $v; }, m)))) || !(s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))).ReadUint32((m.$ptr_ageAdd || (m.$ptr_ageAdd = new ptrType$36(function() { return this.$target.ageAdd; }, function($v) { this.$target.ageAdd = $v; }, m)))) || !readUint8LengthPrefixed((s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))), (m.$ptr_nonce || (m.$ptr_nonce = new ptrType$1(function() { return this.$target.nonce; }, function($v) { this.$target.nonce = $v; }, m)))) || !readUint16LengthPrefixed((s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))), (m.$ptr_label || (m.$ptr_label = new ptrType$1(function() { return this.$target.label; }, function($v) { this.$target.label = $v; }, m)))) || !(s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))).ReadUint16LengthPrefixed((extensions$24ptr || (extensions$24ptr = new ptrType$19(function() { return extensions; }, function($v) { extensions = $v; })))) || !s.Empty()) { + if (!(s$24ptr || (s$24ptr = new ptrType$20(function() { return s; }, function($v) { s = $v; }))).Skip(4) || !(s$24ptr || (s$24ptr = new ptrType$20(function() { return s; }, function($v) { s = $v; }))).ReadUint32((m === ptrType$43.nil && $throwNilPointerError(), (m.$ptr_lifetime || (m.$ptr_lifetime = new ptrType$25(function() { return this.$target.lifetime; }, function($v) { this.$target.lifetime = $v; }, m))))) || !(s$24ptr || (s$24ptr = new ptrType$20(function() { return s; }, function($v) { s = $v; }))).ReadUint32((m === ptrType$43.nil && $throwNilPointerError(), (m.$ptr_ageAdd || (m.$ptr_ageAdd = new ptrType$25(function() { return this.$target.ageAdd; }, function($v) { this.$target.ageAdd = $v; }, m))))) || !readUint8LengthPrefixed((s$24ptr || (s$24ptr = new ptrType$20(function() { return s; }, function($v) { s = $v; }))), (m === ptrType$43.nil && $throwNilPointerError(), (m.$ptr_nonce || (m.$ptr_nonce = new ptrType$1(function() { return this.$target.nonce; }, function($v) { this.$target.nonce = $v; }, m))))) || !readUint16LengthPrefixed((s$24ptr || (s$24ptr = new ptrType$20(function() { return s; }, function($v) { s = $v; }))), (m === ptrType$43.nil && $throwNilPointerError(), (m.$ptr_label || (m.$ptr_label = new ptrType$1(function() { return this.$target.label; }, function($v) { this.$target.label = $v; }, m))))) || !(s$24ptr || (s$24ptr = new ptrType$20(function() { return s; }, function($v) { s = $v; }))).ReadUint16LengthPrefixed((extensions$24ptr || (extensions$24ptr = new ptrType$20(function() { return extensions; }, function($v) { extensions = $v; })))) || !s.Empty()) { return false; } while (true) { @@ -257903,12 +259964,12 @@ $packages["crypto/tls"] = (function() { extension = [extension]; extension[0] = 0; extData[0] = cryptobyte.String.nil; - if (!(extensions$24ptr || (extensions$24ptr = new ptrType$19(function() { return extensions; }, function($v) { extensions = $v; }))).ReadUint16((extension.$ptr || (extension.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extension)))) || !(extensions$24ptr || (extensions$24ptr = new ptrType$19(function() { return extensions; }, function($v) { extensions = $v; }))).ReadUint16LengthPrefixed((extData.$ptr || (extData.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))))) { + if (!(extensions$24ptr || (extensions$24ptr = new ptrType$20(function() { return extensions; }, function($v) { extensions = $v; }))).ReadUint16((extension.$ptr || (extension.$ptr = new ptrType$22(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extension)))) || !(extensions$24ptr || (extensions$24ptr = new ptrType$20(function() { return extensions; }, function($v) { extensions = $v; }))).ReadUint16LengthPrefixed((extData.$ptr || (extData.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))))) { return false; } _1 = extension[0]; if (_1 === (42)) { - if (!(extData.$ptr || (extData.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint32((m.$ptr_maxEarlyData || (m.$ptr_maxEarlyData = new ptrType$36(function() { return this.$target.maxEarlyData; }, function($v) { this.$target.maxEarlyData = $v; }, m))))) { + if (!(extData.$ptr || (extData.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint32((m === ptrType$43.nil && $throwNilPointerError(), (m.$ptr_maxEarlyData || (m.$ptr_maxEarlyData = new ptrType$25(function() { return this.$target.maxEarlyData; }, function($v) { this.$target.maxEarlyData = $v; }, m)))))) { return false; } } else { @@ -257920,7 +259981,7 @@ $packages["crypto/tls"] = (function() { } return true; }; - $ptrType(certificateRequestMsgTLS13).prototype.marshal = function marshal$8() { + $ptrType(certificateRequestMsgTLS13).prototype.marshal = function marshal$6() { var {_tuple, b, err, m, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: m = [m]; @@ -257928,7 +259989,7 @@ $packages["crypto/tls"] = (function() { if (!(m[0].raw === sliceType$6.nil)) { $s = -1; return [m[0].raw, $ifaceNil]; } - b = new cryptobyte.Builder.ptr($ifaceNil, sliceType$6.nil, false, ptrType$17.nil, 0, 0, false, ptrType$18.nil); + b = new cryptobyte.Builder.ptr($ifaceNil, sliceType$6.nil, false, ptrType$18.nil, 0, 0, false, ptrType$19.nil); b.AddUint8(13); $r = b.AddUint24LengthPrefixed((function(m) { return function certificateRequestMsgTLS13·marshal·func1(b$1) { var {b$1, $s, $r, $c} = $restore(this, {b$1}); @@ -258030,18 +260091,18 @@ $packages["crypto/tls"] = (function() { m[0].raw = _tuple[0]; err = _tuple[1]; $s = -1; return [m[0].raw, err]; - /* */ } return; } var $f = {$blk: marshal$8, $c: true, $r, _tuple, b, err, m, $s};return $f; + /* */ } return; } var $f = {$blk: marshal$6, $c: true, $r, _tuple, b, err, m, $s};return $f; }; - $ptrType(certificateRequestMsgTLS13).prototype.unmarshal = function unmarshal$8(data) { + $ptrType(certificateRequestMsgTLS13).prototype.unmarshal = function unmarshal$6(data) { var _1, _tmp, _tmp$1, auths, ca, context$1, context$24ptr, data, extData, extension, extensions, extensions$24ptr, m, s, s$24ptr, sigAndAlg, sigAndAlg$1, sigAndAlgs, sigAndAlgs$1; m = this; - certificateRequestMsgTLS13.copy(m, new certificateRequestMsgTLS13.ptr(data, false, false, sliceType.nil, sliceType.nil, sliceType$11.nil)); + certificateRequestMsgTLS13.copy((m === ptrType$44.nil && $throwNilPointerError(), m), new certificateRequestMsgTLS13.ptr(data, false, false, sliceType.nil, sliceType.nil, sliceType$11.nil)); s = ($convertSliceType(data, cryptobyte.String)); _tmp = cryptobyte.String.nil; _tmp$1 = cryptobyte.String.nil; context$1 = _tmp; extensions = _tmp$1; - if (!(s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))).Skip(4) || !(s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))).ReadUint8LengthPrefixed((context$24ptr || (context$24ptr = new ptrType$19(function() { return context$1; }, function($v) { context$1 = $v; })))) || !context$1.Empty() || !(s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))).ReadUint16LengthPrefixed((extensions$24ptr || (extensions$24ptr = new ptrType$19(function() { return extensions; }, function($v) { extensions = $v; })))) || !s.Empty()) { + if (!(s$24ptr || (s$24ptr = new ptrType$20(function() { return s; }, function($v) { s = $v; }))).Skip(4) || !(s$24ptr || (s$24ptr = new ptrType$20(function() { return s; }, function($v) { s = $v; }))).ReadUint8LengthPrefixed((context$24ptr || (context$24ptr = new ptrType$20(function() { return context$1; }, function($v) { context$1 = $v; })))) || !context$1.Empty() || !(s$24ptr || (s$24ptr = new ptrType$20(function() { return s; }, function($v) { s = $v; }))).ReadUint16LengthPrefixed((extensions$24ptr || (extensions$24ptr = new ptrType$20(function() { return extensions; }, function($v) { extensions = $v; })))) || !s.Empty()) { return false; } while (true) { @@ -258053,7 +260114,7 @@ $packages["crypto/tls"] = (function() { sigAndAlgs$1 = [sigAndAlgs$1]; extension[0] = 0; extData[0] = cryptobyte.String.nil; - if (!(extensions$24ptr || (extensions$24ptr = new ptrType$19(function() { return extensions; }, function($v) { extensions = $v; }))).ReadUint16((extension.$ptr || (extension.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extension)))) || !(extensions$24ptr || (extensions$24ptr = new ptrType$19(function() { return extensions; }, function($v) { extensions = $v; }))).ReadUint16LengthPrefixed((extData.$ptr || (extData.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))))) { + if (!(extensions$24ptr || (extensions$24ptr = new ptrType$20(function() { return extensions; }, function($v) { extensions = $v; }))).ReadUint16((extension.$ptr || (extension.$ptr = new ptrType$22(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extension)))) || !(extensions$24ptr || (extensions$24ptr = new ptrType$20(function() { return extensions; }, function($v) { extensions = $v; }))).ReadUint16LengthPrefixed((extData.$ptr || (extData.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))))) { return false; } _1 = extension[0]; @@ -258063,42 +260124,42 @@ $packages["crypto/tls"] = (function() { m.scts = true; } else if (_1 === (13)) { sigAndAlgs[0] = cryptobyte.String.nil; - if (!(extData.$ptr || (extData.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint16LengthPrefixed((sigAndAlgs.$ptr || (sigAndAlgs.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, sigAndAlgs)))) || sigAndAlgs[0].Empty()) { + if (!(extData.$ptr || (extData.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint16LengthPrefixed((sigAndAlgs.$ptr || (sigAndAlgs.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, sigAndAlgs)))) || sigAndAlgs[0].Empty()) { return false; } while (true) { if (!(!sigAndAlgs[0].Empty())) { break; } sigAndAlg = [sigAndAlg]; sigAndAlg[0] = 0; - if (!(sigAndAlgs.$ptr || (sigAndAlgs.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, sigAndAlgs))).ReadUint16((sigAndAlg.$ptr || (sigAndAlg.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, sigAndAlg))))) { + if (!(sigAndAlgs.$ptr || (sigAndAlgs.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, sigAndAlgs))).ReadUint16((sigAndAlg.$ptr || (sigAndAlg.$ptr = new ptrType$22(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, sigAndAlg))))) { return false; } m.supportedSignatureAlgorithms = $append(m.supportedSignatureAlgorithms, ((sigAndAlg[0] << 16 >>> 16))); } } else if (_1 === (50)) { sigAndAlgs$1[0] = cryptobyte.String.nil; - if (!(extData.$ptr || (extData.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint16LengthPrefixed((sigAndAlgs$1.$ptr || (sigAndAlgs$1.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, sigAndAlgs$1)))) || sigAndAlgs$1[0].Empty()) { + if (!(extData.$ptr || (extData.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint16LengthPrefixed((sigAndAlgs$1.$ptr || (sigAndAlgs$1.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, sigAndAlgs$1)))) || sigAndAlgs$1[0].Empty()) { return false; } while (true) { if (!(!sigAndAlgs$1[0].Empty())) { break; } sigAndAlg$1 = [sigAndAlg$1]; sigAndAlg$1[0] = 0; - if (!(sigAndAlgs$1.$ptr || (sigAndAlgs$1.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, sigAndAlgs$1))).ReadUint16((sigAndAlg$1.$ptr || (sigAndAlg$1.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, sigAndAlg$1))))) { + if (!(sigAndAlgs$1.$ptr || (sigAndAlgs$1.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, sigAndAlgs$1))).ReadUint16((sigAndAlg$1.$ptr || (sigAndAlg$1.$ptr = new ptrType$22(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, sigAndAlg$1))))) { return false; } m.supportedSignatureAlgorithmsCert = $append(m.supportedSignatureAlgorithmsCert, ((sigAndAlg$1[0] << 16 >>> 16))); } } else if (_1 === (47)) { auths[0] = cryptobyte.String.nil; - if (!(extData.$ptr || (extData.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint16LengthPrefixed((auths.$ptr || (auths.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, auths)))) || auths[0].Empty()) { + if (!(extData.$ptr || (extData.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint16LengthPrefixed((auths.$ptr || (auths.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, auths)))) || auths[0].Empty()) { return false; } while (true) { if (!(!auths[0].Empty())) { break; } ca = [ca]; ca[0] = sliceType$6.nil; - if (!readUint16LengthPrefixed((auths.$ptr || (auths.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, auths))), (ca.$ptr || (ca.$ptr = new ptrType$1(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, ca)))) || (ca[0].$length === 0)) { + if (!readUint16LengthPrefixed((auths.$ptr || (auths.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, auths))), (ca.$ptr || (ca.$ptr = new ptrType$1(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, ca)))) || (ca[0].$length === 0)) { return false; } m.certificateAuthorities = $append(m.certificateAuthorities, ca[0]); @@ -258112,7 +260173,7 @@ $packages["crypto/tls"] = (function() { } return true; }; - $ptrType(certificateMsg).prototype.marshal = function marshal$9() { + $ptrType(certificateMsg).prototype.marshal = function marshal$7() { var _i, _i$1, _ref, _ref$1, certificateOctets, i, length, m, slice, slice$1, x, y; m = this; if (!(m.raw === sliceType$6.nil)) { @@ -258153,7 +260214,7 @@ $packages["crypto/tls"] = (function() { m.raw = x; return [m.raw, $ifaceNil]; }; - $ptrType(certificateMsg).prototype.unmarshal = function unmarshal$9(data) { + $ptrType(certificateMsg).prototype.unmarshal = function unmarshal$7(data) { var certLen, certLen$1, certsLen, d, data, i, m, numCerts, x; m = this; if (data.$length < 7) { @@ -258191,7 +260252,7 @@ $packages["crypto/tls"] = (function() { } return true; }; - $ptrType(certificateMsgTLS13).prototype.marshal = function marshal$10() { + $ptrType(certificateMsgTLS13).prototype.marshal = function marshal$8() { var {_tuple, b, err, m, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: m = [m]; @@ -258199,7 +260260,7 @@ $packages["crypto/tls"] = (function() { if (!(m[0].raw === sliceType$6.nil)) { $s = -1; return [m[0].raw, $ifaceNil]; } - b = new cryptobyte.Builder.ptr($ifaceNil, sliceType$6.nil, false, ptrType$17.nil, 0, 0, false, ptrType$18.nil); + b = new cryptobyte.Builder.ptr($ifaceNil, sliceType$6.nil, false, ptrType$18.nil, 0, 0, false, ptrType$19.nil); b.AddUint8(11); $r = b.AddUint24LengthPrefixed((function(m) { return function certificateMsgTLS13·marshal·func1(b$1) { var {b$1, certificate, $s, $r, $c} = $restore(this, {b$1}); @@ -258221,7 +260282,7 @@ $packages["crypto/tls"] = (function() { m[0].raw = _tuple[0]; err = _tuple[1]; $s = -1; return [m[0].raw, err]; - /* */ } return; } var $f = {$blk: marshal$10, $c: true, $r, _tuple, b, err, m, $s};return $f; + /* */ } return; } var $f = {$blk: marshal$8, $c: true, $r, _tuple, b, err, m, $s};return $f; }; marshalCertificate = function marshalCertificate$1(b, certificate) { var {b, certificate, $s, $r, $c} = $restore(this, {b, certificate}); @@ -258306,13 +260367,13 @@ $packages["crypto/tls"] = (function() { $s = -1; return; /* */ } return; } var $f = {$blk: marshalCertificate$1, $c: true, $r, b, certificate, $s};return $f; }; - $ptrType(certificateMsgTLS13).prototype.unmarshal = function unmarshal$10(data) { + $ptrType(certificateMsgTLS13).prototype.unmarshal = function unmarshal$8(data) { var context$1, context$24ptr, data, m, s, s$24ptr; m = this; - certificateMsgTLS13.copy(m, new certificateMsgTLS13.ptr(data, new Certificate.ptr(sliceType$11.nil, $ifaceNil, sliceType.nil, sliceType$6.nil, sliceType$11.nil, ptrType$6.nil), false, false)); + certificateMsgTLS13.copy((m === ptrType$35.nil && $throwNilPointerError(), m), new certificateMsgTLS13.ptr(data, new Certificate.ptr(sliceType$11.nil, $ifaceNil, sliceType.nil, sliceType$6.nil, sliceType$11.nil, ptrType$7.nil), false, false)); s = ($convertSliceType(data, cryptobyte.String)); context$1 = cryptobyte.String.nil; - if (!(s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))).Skip(4) || !(s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))).ReadUint8LengthPrefixed((context$24ptr || (context$24ptr = new ptrType$19(function() { return context$1; }, function($v) { context$1 = $v; })))) || !context$1.Empty() || !unmarshalCertificate((s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))), m.certificate) || !s.Empty()) { + if (!(s$24ptr || (s$24ptr = new ptrType$20(function() { return s; }, function($v) { s = $v; }))).Skip(4) || !(s$24ptr || (s$24ptr = new ptrType$20(function() { return s; }, function($v) { s = $v; }))).ReadUint8LengthPrefixed((context$24ptr || (context$24ptr = new ptrType$20(function() { return context$1; }, function($v) { context$1 = $v; })))) || !context$1.Empty() || !unmarshalCertificate((s$24ptr || (s$24ptr = new ptrType$20(function() { return s; }, function($v) { s = $v; }))), m.certificate) || !s.Empty()) { return false; } m.scts = !(m.certificate.SignedCertificateTimestamps === sliceType$11.nil); @@ -258322,7 +260383,7 @@ $packages["crypto/tls"] = (function() { unmarshalCertificate = function unmarshalCertificate$1(s, certificate) { var _1, cert, certList, certList$24ptr, certificate, extData, extension, extensions, s, sct, sctList, statusType; certList = cryptobyte.String.nil; - if (!s.ReadUint24LengthPrefixed((certList$24ptr || (certList$24ptr = new ptrType$19(function() { return certList; }, function($v) { certList = $v; }))))) { + if (!s.ReadUint24LengthPrefixed((certList$24ptr || (certList$24ptr = new ptrType$20(function() { return certList; }, function($v) { certList = $v; }))))) { return false; } while (true) { @@ -258331,7 +260392,7 @@ $packages["crypto/tls"] = (function() { extensions = [extensions]; cert[0] = sliceType$6.nil; extensions[0] = cryptobyte.String.nil; - if (!readUint24LengthPrefixed((certList$24ptr || (certList$24ptr = new ptrType$19(function() { return certList; }, function($v) { certList = $v; }))), (cert.$ptr || (cert.$ptr = new ptrType$1(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, cert)))) || !(certList$24ptr || (certList$24ptr = new ptrType$19(function() { return certList; }, function($v) { certList = $v; }))).ReadUint16LengthPrefixed((extensions.$ptr || (extensions.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extensions))))) { + if (!readUint24LengthPrefixed((certList$24ptr || (certList$24ptr = new ptrType$20(function() { return certList; }, function($v) { certList = $v; }))), (cert.$ptr || (cert.$ptr = new ptrType$1(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, cert)))) || !(certList$24ptr || (certList$24ptr = new ptrType$20(function() { return certList; }, function($v) { certList = $v; }))).ReadUint16LengthPrefixed((extensions.$ptr || (extensions.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extensions))))) { return false; } certificate.Certificate = $append(certificate.Certificate, cert[0]); @@ -258343,7 +260404,7 @@ $packages["crypto/tls"] = (function() { statusType = [statusType]; extension[0] = 0; extData[0] = cryptobyte.String.nil; - if (!(extensions.$ptr || (extensions.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extensions))).ReadUint16((extension.$ptr || (extension.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extension)))) || !(extensions.$ptr || (extensions.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extensions))).ReadUint16LengthPrefixed((extData.$ptr || (extData.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))))) { + if (!(extensions.$ptr || (extensions.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extensions))).ReadUint16((extension.$ptr || (extension.$ptr = new ptrType$22(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extension)))) || !(extensions.$ptr || (extensions.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extensions))).ReadUint16LengthPrefixed((extData.$ptr || (extData.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))))) { return false; } if (certificate.Certificate.$length > 1) { @@ -258352,19 +260413,19 @@ $packages["crypto/tls"] = (function() { _1 = extension[0]; if (_1 === (5)) { statusType[0] = 0; - if (!(extData.$ptr || (extData.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint8((statusType.$ptr || (statusType.$ptr = new ptrType$22(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, statusType)))) || !((statusType[0] === 1)) || !readUint24LengthPrefixed((extData.$ptr || (extData.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))), (certificate.$ptr_OCSPStaple || (certificate.$ptr_OCSPStaple = new ptrType$1(function() { return this.$target.OCSPStaple; }, function($v) { this.$target.OCSPStaple = $v; }, certificate)))) || (certificate.OCSPStaple.$length === 0)) { + if (!(extData.$ptr || (extData.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint8((statusType.$ptr || (statusType.$ptr = new ptrType$23(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, statusType)))) || !((statusType[0] === 1)) || !readUint24LengthPrefixed((extData.$ptr || (extData.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))), (certificate === ptrType$34.nil && $throwNilPointerError(), (certificate.$ptr_OCSPStaple || (certificate.$ptr_OCSPStaple = new ptrType$1(function() { return this.$target.OCSPStaple; }, function($v) { this.$target.OCSPStaple = $v; }, certificate))))) || (certificate.OCSPStaple.$length === 0)) { return false; } } else if (_1 === (18)) { sctList[0] = cryptobyte.String.nil; - if (!(extData.$ptr || (extData.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint16LengthPrefixed((sctList.$ptr || (sctList.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, sctList)))) || sctList[0].Empty()) { + if (!(extData.$ptr || (extData.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, extData))).ReadUint16LengthPrefixed((sctList.$ptr || (sctList.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, sctList)))) || sctList[0].Empty()) { return false; } while (true) { if (!(!sctList[0].Empty())) { break; } sct = [sct]; sct[0] = sliceType$6.nil; - if (!readUint16LengthPrefixed((sctList.$ptr || (sctList.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, sctList))), (sct.$ptr || (sct.$ptr = new ptrType$1(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, sct)))) || (sct[0].$length === 0)) { + if (!readUint16LengthPrefixed((sctList.$ptr || (sctList.$ptr = new ptrType$20(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, sctList))), (sct.$ptr || (sct.$ptr = new ptrType$1(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, sct)))) || (sct[0].$length === 0)) { return false; } certificate.SignedCertificateTimestamps = $append(certificate.SignedCertificateTimestamps, sct[0]); @@ -258379,7 +260440,7 @@ $packages["crypto/tls"] = (function() { } return true; }; - $ptrType(serverKeyExchangeMsg).prototype.marshal = function marshal$11() { + $ptrType(serverKeyExchangeMsg).prototype.marshal = function marshal$9() { var length, m, x; m = this; if (!(m.raw === sliceType$6.nil)) { @@ -258395,7 +260456,7 @@ $packages["crypto/tls"] = (function() { m.raw = x; return [x, $ifaceNil]; }; - $ptrType(serverKeyExchangeMsg).prototype.unmarshal = function unmarshal$11(data) { + $ptrType(serverKeyExchangeMsg).prototype.unmarshal = function unmarshal$9(data) { var data, m; m = this; m.raw = data; @@ -258405,7 +260466,7 @@ $packages["crypto/tls"] = (function() { m.key = $subslice(data, 4); return true; }; - $ptrType(certificateStatusMsg).prototype.marshal = function marshal$12() { + $ptrType(certificateStatusMsg).prototype.marshal = function marshal$10() { var {_tuple, b, err, m, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: m = [m]; @@ -258413,7 +260474,7 @@ $packages["crypto/tls"] = (function() { if (!(m[0].raw === sliceType$6.nil)) { $s = -1; return [m[0].raw, $ifaceNil]; } - b = new cryptobyte.Builder.ptr($ifaceNil, sliceType$6.nil, false, ptrType$17.nil, 0, 0, false, ptrType$18.nil); + b = new cryptobyte.Builder.ptr($ifaceNil, sliceType$6.nil, false, ptrType$18.nil, 0, 0, false, ptrType$19.nil); b.AddUint8(22); $r = b.AddUint24LengthPrefixed((function(m) { return function certificateStatusMsg·marshal·func1(b$1) { var {b$1, $s, $r, $c} = $restore(this, {b$1}); @@ -258431,32 +260492,32 @@ $packages["crypto/tls"] = (function() { m[0].raw = _tuple[0]; err = _tuple[1]; $s = -1; return [m[0].raw, err]; - /* */ } return; } var $f = {$blk: marshal$12, $c: true, $r, _tuple, b, err, m, $s};return $f; + /* */ } return; } var $f = {$blk: marshal$10, $c: true, $r, _tuple, b, err, m, $s};return $f; }; - $ptrType(certificateStatusMsg).prototype.unmarshal = function unmarshal$12(data) { + $ptrType(certificateStatusMsg).prototype.unmarshal = function unmarshal$10(data) { var data, m, s, s$24ptr, statusType, statusType$24ptr; m = this; m.raw = data; s = ($convertSliceType(data, cryptobyte.String)); statusType = 0; - if (!(s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))).Skip(4) || !(s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))).ReadUint8((statusType$24ptr || (statusType$24ptr = new ptrType$22(function() { return statusType; }, function($v) { statusType = $v; })))) || !((statusType === 1)) || !readUint24LengthPrefixed((s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))), (m.$ptr_response || (m.$ptr_response = new ptrType$1(function() { return this.$target.response; }, function($v) { this.$target.response = $v; }, m)))) || (m.response.$length === 0) || !s.Empty()) { + if (!(s$24ptr || (s$24ptr = new ptrType$20(function() { return s; }, function($v) { s = $v; }))).Skip(4) || !(s$24ptr || (s$24ptr = new ptrType$20(function() { return s; }, function($v) { s = $v; }))).ReadUint8((statusType$24ptr || (statusType$24ptr = new ptrType$23(function() { return statusType; }, function($v) { statusType = $v; })))) || !((statusType === 1)) || !readUint24LengthPrefixed((s$24ptr || (s$24ptr = new ptrType$20(function() { return s; }, function($v) { s = $v; }))), (m === ptrType$45.nil && $throwNilPointerError(), (m.$ptr_response || (m.$ptr_response = new ptrType$1(function() { return this.$target.response; }, function($v) { this.$target.response = $v; }, m))))) || (m.response.$length === 0) || !s.Empty()) { return false; } return true; }; - $ptrType(serverHelloDoneMsg).prototype.marshal = function marshal$13() { + $ptrType(serverHelloDoneMsg).prototype.marshal = function marshal$11() { var m, x; m = this; x = $makeSlice(sliceType$6, 4); (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0] = 14); return [x, $ifaceNil]; }; - $ptrType(serverHelloDoneMsg).prototype.unmarshal = function unmarshal$13(data) { + $ptrType(serverHelloDoneMsg).prototype.unmarshal = function unmarshal$11(data) { var data, m; m = this; return data.$length === 4; }; - $ptrType(clientKeyExchangeMsg).prototype.marshal = function marshal$14() { + $ptrType(clientKeyExchangeMsg).prototype.marshal = function marshal$12() { var length, m, x; m = this; if (!(m.raw === sliceType$6.nil)) { @@ -258472,7 +260533,7 @@ $packages["crypto/tls"] = (function() { m.raw = x; return [x, $ifaceNil]; }; - $ptrType(clientKeyExchangeMsg).prototype.unmarshal = function unmarshal$14(data) { + $ptrType(clientKeyExchangeMsg).prototype.unmarshal = function unmarshal$12(data) { var data, l, m; m = this; m.raw = data; @@ -258486,7 +260547,7 @@ $packages["crypto/tls"] = (function() { m.ciphertext = $subslice(data, 4); return true; }; - $ptrType(finishedMsg).prototype.marshal = function marshal$15() { + $ptrType(finishedMsg).prototype.marshal = function marshal$13() { var {_tuple, b, err, m, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: m = [m]; @@ -258494,7 +260555,7 @@ $packages["crypto/tls"] = (function() { if (!(m[0].raw === sliceType$6.nil)) { $s = -1; return [m[0].raw, $ifaceNil]; } - b = new cryptobyte.Builder.ptr($ifaceNil, sliceType$6.nil, false, ptrType$17.nil, 0, 0, false, ptrType$18.nil); + b = new cryptobyte.Builder.ptr($ifaceNil, sliceType$6.nil, false, ptrType$18.nil, 0, 0, false, ptrType$19.nil); b.AddUint8(20); $r = b.AddUint24LengthPrefixed((function(m) { return function finishedMsg·marshal·func1(b$1) { var b$1; @@ -258505,16 +260566,16 @@ $packages["crypto/tls"] = (function() { m[0].raw = _tuple[0]; err = _tuple[1]; $s = -1; return [m[0].raw, err]; - /* */ } return; } var $f = {$blk: marshal$15, $c: true, $r, _tuple, b, err, m, $s};return $f; + /* */ } return; } var $f = {$blk: marshal$13, $c: true, $r, _tuple, b, err, m, $s};return $f; }; - $ptrType(finishedMsg).prototype.unmarshal = function unmarshal$15(data) { + $ptrType(finishedMsg).prototype.unmarshal = function unmarshal$13(data) { var data, m, s, s$24ptr; m = this; m.raw = data; s = ($convertSliceType(data, cryptobyte.String)); - return (s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))).Skip(1) && readUint24LengthPrefixed((s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))), (m.$ptr_verifyData || (m.$ptr_verifyData = new ptrType$1(function() { return this.$target.verifyData; }, function($v) { this.$target.verifyData = $v; }, m)))) && s.Empty(); + return (s$24ptr || (s$24ptr = new ptrType$20(function() { return s; }, function($v) { s = $v; }))).Skip(1) && readUint24LengthPrefixed((s$24ptr || (s$24ptr = new ptrType$20(function() { return s; }, function($v) { s = $v; }))), (m === ptrType$37.nil && $throwNilPointerError(), (m.$ptr_verifyData || (m.$ptr_verifyData = new ptrType$1(function() { return this.$target.verifyData; }, function($v) { this.$target.verifyData = $v; }, m))))) && s.Empty(); }; - $ptrType(certificateRequestMsg).prototype.marshal = function marshal$16() { + $ptrType(certificateRequestMsg).prototype.marshal = function marshal$14() { var _i, _i$1, _i$2, _ref, _ref$1, _ref$2, ca, ca$1, casLength, length, m, n, sigAlgo, x, y; m = this; if (!(m.raw === sliceType$6.nil)) { @@ -258576,7 +260637,7 @@ $packages["crypto/tls"] = (function() { m.raw = x; return [m.raw, $ifaceNil]; }; - $ptrType(certificateRequestMsg).prototype.unmarshal = function unmarshal$16(data) { + $ptrType(certificateRequestMsg).prototype.unmarshal = function unmarshal$14(data) { var _i, _q, _ref, caLen, cas, casLength, data, i, length, m, numCertTypes, numSigAlgos, sigAndHashLen, x; m = this; m.raw = data; @@ -258648,7 +260709,7 @@ $packages["crypto/tls"] = (function() { } return data.$length === 0; }; - $ptrType(certificateVerifyMsg).prototype.marshal = function marshal$17() { + $ptrType(certificateVerifyMsg).prototype.marshal = function marshal$15() { var {_tuple, b, err, m, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: m = [m]; @@ -258656,7 +260717,7 @@ $packages["crypto/tls"] = (function() { if (!(m[0].raw === sliceType$6.nil)) { $s = -1; return [m[0].raw, $ifaceNil]; } - b = new cryptobyte.Builder.ptr($ifaceNil, sliceType$6.nil, false, ptrType$17.nil, 0, 0, false, ptrType$18.nil); + b = new cryptobyte.Builder.ptr($ifaceNil, sliceType$6.nil, false, ptrType$18.nil, 0, 0, false, ptrType$19.nil); b.AddUint8(15); $r = b.AddUint24LengthPrefixed((function(m) { return function certificateVerifyMsg·marshal·func1(b$1) { var {b$1, $s, $r, $c} = $restore(this, {b$1}); @@ -258676,24 +260737,24 @@ $packages["crypto/tls"] = (function() { m[0].raw = _tuple[0]; err = _tuple[1]; $s = -1; return [m[0].raw, err]; - /* */ } return; } var $f = {$blk: marshal$17, $c: true, $r, _tuple, b, err, m, $s};return $f; + /* */ } return; } var $f = {$blk: marshal$15, $c: true, $r, _tuple, b, err, m, $s};return $f; }; - $ptrType(certificateVerifyMsg).prototype.unmarshal = function unmarshal$17(data) { + $ptrType(certificateVerifyMsg).prototype.unmarshal = function unmarshal$15(data) { var _ptr, data, m, s, s$24ptr; m = this; m.raw = data; s = ($convertSliceType(data, cryptobyte.String)); - if (!(s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))).Skip(4)) { + if (!(s$24ptr || (s$24ptr = new ptrType$20(function() { return s; }, function($v) { s = $v; }))).Skip(4)) { return false; } if (m.hasSignatureAlgorithm) { - if (!(s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))).ReadUint16(((_ptr = (m.$ptr_signatureAlgorithm || (m.$ptr_signatureAlgorithm = new ptrType$38(function() { return this.$target.signatureAlgorithm; }, function($v) { this.$target.signatureAlgorithm = $v; }, m))), new ptrType$20(function() { return (_ptr.$get() << 16 >>> 16); }, function($v) { _ptr.$set(($v << 16 >>> 16)); }, _ptr.$target))))) { + if (!(s$24ptr || (s$24ptr = new ptrType$20(function() { return s; }, function($v) { s = $v; }))).ReadUint16(((_ptr = (m === ptrType$36.nil && $throwNilPointerError(), (m.$ptr_signatureAlgorithm || (m.$ptr_signatureAlgorithm = new ptrType$46(function() { return this.$target.signatureAlgorithm; }, function($v) { this.$target.signatureAlgorithm = $v; }, m)))), new ptrType$22(function() { return (_ptr.$get() << 16 >>> 16); }, function($v) { _ptr.$set(($v << 16 >>> 16)); }, _ptr.$target, _ptr.$index))))) { return false; } } - return readUint16LengthPrefixed((s$24ptr || (s$24ptr = new ptrType$19(function() { return s; }, function($v) { s = $v; }))), (m.$ptr_signature || (m.$ptr_signature = new ptrType$1(function() { return this.$target.signature; }, function($v) { this.$target.signature = $v; }, m)))) && s.Empty(); + return readUint16LengthPrefixed((s$24ptr || (s$24ptr = new ptrType$20(function() { return s; }, function($v) { s = $v; }))), (m === ptrType$36.nil && $throwNilPointerError(), (m.$ptr_signature || (m.$ptr_signature = new ptrType$1(function() { return this.$target.signature; }, function($v) { this.$target.signature = $v; }, m))))) && s.Empty(); }; - $ptrType(newSessionTicketMsg).prototype.marshal = function marshal$18() { + $ptrType(newSessionTicketMsg).prototype.marshal = function marshal$16() { var length, m, ticketLen, x; m = this; if (!(m.raw === sliceType$6.nil)) { @@ -258712,7 +260773,7 @@ $packages["crypto/tls"] = (function() { m.raw = x; return [m.raw, $ifaceNil]; }; - $ptrType(newSessionTicketMsg).prototype.unmarshal = function unmarshal$18(data) { + $ptrType(newSessionTicketMsg).prototype.unmarshal = function unmarshal$16(data) { var data, length, m, ticketLen; m = this; m.raw = data; @@ -258730,10 +260791,10 @@ $packages["crypto/tls"] = (function() { m.ticket = $subslice(data, 10); return true; }; - $ptrType(helloRequestMsg).prototype.marshal = function marshal$19() { + $ptrType(helloRequestMsg).prototype.marshal = function marshal$17() { return [new sliceType$6([0, 0, 0, 0]), $ifaceNil]; }; - $ptrType(helloRequestMsg).prototype.unmarshal = function unmarshal$19(data) { + $ptrType(helloRequestMsg).prototype.unmarshal = function unmarshal$17(data) { var data; return data.$length === 4; }; @@ -258767,9 +260828,9 @@ $packages["crypto/tls"] = (function() { _r; $s = -1; return errors.New("tls: server selected TLS 1.3 in a renegotiation"); /* } */ case 2: - /* */ if (hs.ecdheKey === ptrType$23.nil || !((hs.hello.keyShares.$length === 1))) { $s = 4; continue; } + /* */ if (hs.ecdheKey === ptrType$29.nil || !((hs.hello.keyShares.$length === 1))) { $s = 4; continue; } /* */ $s = 5; continue; - /* if (hs.ecdheKey === ptrType$23.nil || !((hs.hello.keyShares.$length === 1))) { */ case 4: + /* if (hs.ecdheKey === ptrType$29.nil || !((hs.hello.keyShares.$length === 1))) { */ case 4: _r$1 = c.sendAlert(80); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $24r = _r$1; $s = 7; case 7: return $24r; @@ -258882,9 +260943,9 @@ $packages["crypto/tls"] = (function() { _r$2; $s = -1; return errors.New("tls: server sent an incorrect legacy version"); /* } */ case 8: - /* */ if (hs.serverHello.ocspStapling || hs.serverHello.ticketSupported || hs.serverHello.secureRenegotiationSupported || !((hs.serverHello.secureRenegotiation.$length === 0)) || !((hs.serverHello.alpnProtocol.length === 0)) || !((hs.serverHello.scts.$length === 0))) { $s = 10; continue; } + /* */ if (hs.serverHello.ocspStapling || hs.serverHello.ticketSupported || hs.serverHello.extendedMasterSecret || hs.serverHello.secureRenegotiationSupported || !((hs.serverHello.secureRenegotiation.$length === 0)) || !((hs.serverHello.alpnProtocol.length === 0)) || !((hs.serverHello.scts.$length === 0))) { $s = 10; continue; } /* */ $s = 11; continue; - /* if (hs.serverHello.ocspStapling || hs.serverHello.ticketSupported || hs.serverHello.secureRenegotiationSupported || !((hs.serverHello.secureRenegotiation.$length === 0)) || !((hs.serverHello.alpnProtocol.length === 0)) || !((hs.serverHello.scts.$length === 0))) { */ case 10: + /* if (hs.serverHello.ocspStapling || hs.serverHello.ticketSupported || hs.serverHello.extendedMasterSecret || hs.serverHello.secureRenegotiationSupported || !((hs.serverHello.secureRenegotiation.$length === 0)) || !((hs.serverHello.alpnProtocol.length === 0)) || !((hs.serverHello.scts.$length === 0))) { */ case 10: _r$3 = c.sendAlert(110); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _r$3; $s = -1; return errors.New("tls: server sent a ServerHello extension forbidden in TLS 1.3"); @@ -258904,16 +260965,16 @@ $packages["crypto/tls"] = (function() { $s = -1; return errors.New("tls: server selected unsupported compression format"); /* } */ case 17: selectedSuite = mutualCipherSuiteTLS13(hs.hello.cipherSuites, hs.serverHello.cipherSuite); - /* */ if (!(hs.suite === ptrType$2.nil) && !(selectedSuite === hs.suite)) { $s = 19; continue; } + /* */ if (!(hs.suite === ptrType$3.nil) && !(selectedSuite === hs.suite)) { $s = 19; continue; } /* */ $s = 20; continue; - /* if (!(hs.suite === ptrType$2.nil) && !(selectedSuite === hs.suite)) { */ case 19: + /* if (!(hs.suite === ptrType$3.nil) && !(selectedSuite === hs.suite)) { */ case 19: _r$6 = c.sendAlert(47); /* */ $s = 21; case 21: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _r$6; $s = -1; return errors.New("tls: server changed cipher suite after a HelloRetryRequest"); /* } */ case 20: - /* */ if (selectedSuite === ptrType$2.nil) { $s = 22; continue; } + /* */ if (selectedSuite === ptrType$3.nil) { $s = 22; continue; } /* */ $s = 23; continue; - /* if (selectedSuite === ptrType$2.nil) { */ case 22: + /* if (selectedSuite === ptrType$3.nil) { */ case 22: _r$7 = c.sendAlert(47); /* */ $s = 24; case 24: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _r$7; $s = -1; return errors.New("tls: server chose an unconfigured cipher suite"); @@ -258927,6 +260988,9 @@ $packages["crypto/tls"] = (function() { var {$24r, _r, hs, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: hs = this; + if (!(hs.c.quic === ptrType$5.nil)) { + $s = -1; return $ifaceNil; + } if (hs.sentDummyCCS) { $s = -1; return $ifaceNil; } @@ -258937,7 +261001,7 @@ $packages["crypto/tls"] = (function() { /* */ } return; } var $f = {$blk: sendDummyChangeCipherSpec$1, $c: true, $r, $24r, _r, hs, $s};return $f; }; $ptrType(clientHandshakeStateTLS13).prototype.processHelloRetryRequest = function processHelloRetryRequest() { - var {$24r, $24r$1, _i, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, c, chHash, curveID, curveOK, err, err$1, err$2, err$3, err$4, err$5, err$6, err$7, helloBytes, hs, id, key, msg, ok, ok$1, pskBinders, pskSuite, sentID, serverHello, ticketAge, transcript, x, $s, $r, $c} = $restore(this, {}); + var {$24r, $24r$1, _i, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, c, chHash, curveID, curveOK, err, err$1, err$2, err$3, err$4, err$5, err$6, err$7, helloBytes, hs, id, key, msg, ok, ok$1, pskBinders, pskSuite, sentID, serverHello, ticketAge, transcript, x, x$1, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: hs = this; c = hs.c; @@ -259025,16 +261089,16 @@ $packages["crypto/tls"] = (function() { hs.ecdheKey = key; _r$11 = key.PublicKey(); /* */ $s = 27; case 27: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } _r$12 = _r$11.Bytes(); /* */ $s = 28; case 28: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - hs.hello.keyShares = new sliceType$16([$clone(new keyShare.ptr(curveID, _r$12), keyShare)]); + hs.hello.keyShares = new sliceType$17([$clone(new keyShare.ptr(curveID, _r$12), keyShare)]); /* } */ case 13: hs.hello.raw = sliceType$6.nil; /* */ if (hs.hello.pskIdentities.$length > 0) { $s = 29; continue; } /* */ $s = 30; continue; /* if (hs.hello.pskIdentities.$length > 0) { */ case 29: pskSuite = cipherSuiteTLS13ByID(hs.session.cipherSuite); - /* */ if (pskSuite === ptrType$2.nil) { $s = 31; continue; } + /* */ if (pskSuite === ptrType$3.nil) { $s = 31; continue; } /* */ $s = 32; continue; - /* if (pskSuite === ptrType$2.nil) { */ case 31: + /* if (pskSuite === ptrType$3.nil) { */ case 31: _r$13 = c.sendAlert(80); /* */ $s = 33; case 33: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } $24r = _r$13; $s = 34; case 34: return $24r; @@ -259043,9 +261107,9 @@ $packages["crypto/tls"] = (function() { /* */ $s = 36; continue; /* if (pskSuite.hash === hs.suite.hash) { */ case 35: _r$14 = c.config.time(); /* */ $s = 38; case 38: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - _r$15 = $clone(_r$14, time.Time).Sub($clone(hs.session.receivedAt, time.Time)); /* */ $s = 39; case 39: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - ticketAge = (($div64(_r$15, new time.Duration(0, 1000000), false).$low >>> 0)); - (x = hs.hello.pskIdentities, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).obfuscatedTicketAge = ticketAge + hs.session.ageAdd >>> 0; + _r$15 = $clone(_r$14, time.Time).Sub($clone(time.Unix(((x = hs.session.createdAt, new $Int64(x.$high, x.$low))), new $Int64(0, 0)), time.Time)); /* */ $s = 39; case 39: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + ticketAge = _r$15; + (x$1 = hs.hello.pskIdentities, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])).obfuscatedTicketAge = (($div64(ticketAge, new time.Duration(0, 1000000), false).$low >>> 0)) + hs.session.ageAdd >>> 0; _r$16 = new crypto.Hash(hs.suite.hash).New(); /* */ $s = 40; case 40: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } transcript = _r$16; _r$17 = transcript.Write(new sliceType$6([254, 0, 0, ((chHash.$length << 24 >>> 24))])); /* */ $s = 41; case 41: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } @@ -259075,10 +261139,14 @@ $packages["crypto/tls"] = (function() { } $s = 37; continue; /* } else { */ case 36: - hs.hello.pskIdentities = sliceType$17.nil; + hs.hello.pskIdentities = sliceType$18.nil; hs.hello.pskBinders = sliceType$11.nil; /* } */ case 37: /* } */ case 30: + if (hs.hello.earlyData) { + hs.hello.earlyData = false; + c.quicRejectedEarlyData(); + } _r$24 = hs.c.writeHandshakeRecord(hs.hello, hs.transcript); /* */ $s = 48; case 48: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } _tuple$4 = _r$24; err$5 = _tuple$4[1]; @@ -259092,7 +261160,7 @@ $packages["crypto/tls"] = (function() { if (!($interfaceIsEqual(err$6, $ifaceNil))) { $s = -1; return err$6; } - _tuple$6 = $assertType(msg, ptrType$31, true); + _tuple$6 = $assertType(msg, ptrType$38, true); serverHello = _tuple$6[0]; ok$1 = _tuple$6[1]; /* */ if (!ok$1) { $s = 50; continue; } @@ -259111,7 +261179,7 @@ $packages["crypto/tls"] = (function() { $s = -1; return err$7; } $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: processHelloRetryRequest, $c: true, $r, $24r, $24r$1, _i, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, c, chHash, curveID, curveOK, err, err$1, err$2, err$3, err$4, err$5, err$6, err$7, helloBytes, hs, id, key, msg, ok, ok$1, pskBinders, pskSuite, sentID, serverHello, ticketAge, transcript, x, $s};return $f; + /* */ } return; } var $f = {$blk: processHelloRetryRequest, $c: true, $r, $24r, $24r$1, _i, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, c, chHash, curveID, curveOK, err, err$1, err$2, err$3, err$4, err$5, err$6, err$7, helloBytes, hs, id, key, msg, ok, ok$1, pskBinders, pskSuite, sentID, serverHello, ticketAge, transcript, x, x$1, $s};return $f; }; $ptrType(clientHandshakeStateTLS13).prototype.processServerHello = function processServerHello() { var {$24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _tuple, c, hs, pskSuite, sentID, $s, $r, $c} = $restore(this, {}); @@ -259165,17 +261233,17 @@ $packages["crypto/tls"] = (function() { _r$5; $s = -1; return errors.New("tls: server selected an invalid PSK"); /* } */ case 17: - /* */ if (!((hs.hello.pskIdentities.$length === 1)) || hs.session === ptrType$39.nil) { $s = 19; continue; } + /* */ if (!((hs.hello.pskIdentities.$length === 1)) || hs.session === ptrType$21.nil) { $s = 19; continue; } /* */ $s = 20; continue; - /* if (!((hs.hello.pskIdentities.$length === 1)) || hs.session === ptrType$39.nil) { */ case 19: + /* if (!((hs.hello.pskIdentities.$length === 1)) || hs.session === ptrType$21.nil) { */ case 19: _r$6 = c.sendAlert(80); /* */ $s = 21; case 21: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } $24r = _r$6; $s = 22; case 22: return $24r; /* } */ case 20: pskSuite = cipherSuiteTLS13ByID(hs.session.cipherSuite); - /* */ if (pskSuite === ptrType$2.nil) { $s = 23; continue; } + /* */ if (pskSuite === ptrType$3.nil) { $s = 23; continue; } /* */ $s = 24; continue; - /* if (pskSuite === ptrType$2.nil) { */ case 23: + /* if (pskSuite === ptrType$3.nil) { */ case 23: _r$7 = c.sendAlert(80); /* */ $s = 25; case 25: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } $24r$1 = _r$7; $s = 26; case 26: return $24r$1; @@ -259189,7 +261257,8 @@ $packages["crypto/tls"] = (function() { /* } */ case 28: hs.usingPSK = true; c.didResume = true; - c.peerCertificates = hs.session.serverCertificates; + c.peerCertificates = hs.session.peerCertificates; + c.activeCertHandles = hs.session.activeCertHandles; c.verifiedChains = hs.session.verifiedChains; c.ocspResponse = hs.session.ocspResponse; c.scts = hs.session.scts; @@ -259197,7 +261266,7 @@ $packages["crypto/tls"] = (function() { /* */ } return; } var $f = {$blk: processServerHello, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _tuple, c, hs, pskSuite, sentID, $s};return $f; }; $ptrType(clientHandshakeStateTLS13).prototype.establishHandshakeKeys = function establishHandshakeKeys() { - var {_arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, c, clientSecret, earlySecret, err, handshakeSecret, hs, peerKey, serverSecret, sharedKey, $s, $r, $c} = $restore(this, {}); + var {_arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, c, clientSecret, earlySecret, err, handshakeSecret, hs, peerKey, serverSecret, sharedKey, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: hs = this; c = hs.c; @@ -259237,38 +261306,50 @@ $packages["crypto/tls"] = (function() { handshakeSecret = _r$6; _r$7 = hs.suite.deriveSecret(handshakeSecret, "c hs traffic", hs.transcript); /* */ $s = 14; case 14: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } clientSecret = _r$7; - $r = c.out.setTrafficSecret(hs.suite, clientSecret); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = c.out.setTrafficSecret(hs.suite, 2, clientSecret); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _r$8 = hs.suite.deriveSecret(handshakeSecret, "s hs traffic", hs.transcript); /* */ $s = 16; case 16: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } serverSecret = _r$8; - $r = c.in$28.setTrafficSecret(hs.suite, serverSecret); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$9 = c.config.writeKeyLog("CLIENT_HANDSHAKE_TRAFFIC_SECRET", hs.hello.random, clientSecret); /* */ $s = 18; case 18: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - err = _r$9; - /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 19; continue; } - /* */ $s = 20; continue; - /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 19: - _r$10 = c.sendAlert(80); /* */ $s = 21; case 21: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _r$10; + $r = c.in$30.setTrafficSecret(hs.suite, 2, serverSecret); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!(c.quic === ptrType$5.nil)) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (!(c.quic === ptrType$5.nil)) { */ case 18: + /* */ if (!((c.hand.Len() === 0))) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (!((c.hand.Len() === 0))) { */ case 20: + _r$9 = c.sendAlert(10); /* */ $s = 22; case 22: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$9; + /* } */ case 21: + c.quicSetWriteSecret(2, hs.suite.id, clientSecret); + c.quicSetReadSecret(2, hs.suite.id, serverSecret); + /* } */ case 19: + _r$10 = c.config.writeKeyLog("CLIENT_HANDSHAKE_TRAFFIC_SECRET", hs.hello.random, clientSecret); /* */ $s = 23; case 23: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + err = _r$10; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 24: + _r$11 = c.sendAlert(80); /* */ $s = 26; case 26: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _r$11; $s = -1; return err; - /* } */ case 20: - _r$11 = c.config.writeKeyLog("SERVER_HANDSHAKE_TRAFFIC_SECRET", hs.hello.random, serverSecret); /* */ $s = 22; case 22: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - err = _r$11; - /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 23; continue; } - /* */ $s = 24; continue; - /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 23: - _r$12 = c.sendAlert(80); /* */ $s = 25; case 25: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _r$12; + /* } */ case 25: + _r$12 = c.config.writeKeyLog("SERVER_HANDSHAKE_TRAFFIC_SECRET", hs.hello.random, serverSecret); /* */ $s = 27; case 27: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + err = _r$12; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 28: + _r$13 = c.sendAlert(80); /* */ $s = 30; case 30: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _r$13; $s = -1; return err; - /* } */ case 24: + /* } */ case 29: _arg$2 = sliceType$6.nil; - _r$13 = hs.suite.deriveSecret(handshakeSecret, "derived", $ifaceNil); /* */ $s = 26; case 26: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - _arg$3 = _r$13; - _r$14 = hs.suite.extract(_arg$2, _arg$3); /* */ $s = 27; case 27: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - hs.masterSecret = _r$14; + _r$14 = hs.suite.deriveSecret(handshakeSecret, "derived", $ifaceNil); /* */ $s = 31; case 31: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _arg$3 = _r$14; + _r$15 = hs.suite.extract(_arg$2, _arg$3); /* */ $s = 32; case 32: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + hs.masterSecret = _r$15; $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: establishHandshakeKeys, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, c, clientSecret, earlySecret, err, handshakeSecret, hs, peerKey, serverSecret, sharedKey, $s};return $f; + /* */ } return; } var $f = {$blk: establishHandshakeKeys, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, c, clientSecret, earlySecret, err, handshakeSecret, hs, peerKey, serverSecret, sharedKey, $s};return $f; }; $ptrType(clientHandshakeStateTLS13).prototype.readServerParameters = function readServerParameters() { - var {$24r, _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, c, encryptedExtensions, err, err$1, hs, msg, ok, $s, $r, $c} = $restore(this, {}); + var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _tuple, _tuple$1, c, encryptedExtensions, err, err$1, hs, msg, ok, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: hs = this; c = hs.c; @@ -259279,7 +261360,7 @@ $packages["crypto/tls"] = (function() { if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return err; } - _tuple$1 = $assertType(msg, ptrType$40, true); + _tuple$1 = $assertType(msg, ptrType$42, true); encryptedExtensions = _tuple$1[0]; ok = _tuple$1[1]; /* */ if (!ok) { $s = 2; continue; } @@ -259291,17 +261372,66 @@ $packages["crypto/tls"] = (function() { $24r = _r$2; $s = 6; case 6: return $24r; /* } */ case 3: - err$1 = checkALPN(hs.hello.alpnProtocols, encryptedExtensions.alpnProtocol); + err$1 = checkALPN(hs.hello.alpnProtocols, encryptedExtensions.alpnProtocol, !(c.quic === ptrType$5.nil)); /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 7; continue; } /* */ $s = 8; continue; /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 7: - _r$3 = c.sendAlert(110); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3 = c.sendAlert(120); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _r$3; $s = -1; return err$1; /* } */ case 8: c.clientProtocol = encryptedExtensions.alpnProtocol; + /* */ if (!(c.quic === ptrType$5.nil)) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (!(c.quic === ptrType$5.nil)) { */ case 10: + /* */ if (encryptedExtensions.quicTransportParameters === sliceType$6.nil) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (encryptedExtensions.quicTransportParameters === sliceType$6.nil) { */ case 13: + _r$4 = c.sendAlert(109); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4; + $s = -1; return errors.New("tls: server did not send a quic_transport_parameters extension"); + /* } */ case 14: + c.quicSetTransportParameters(encryptedExtensions.quicTransportParameters); + $s = 12; continue; + /* } else { */ case 11: + /* */ if (!(encryptedExtensions.quicTransportParameters === sliceType$6.nil)) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (!(encryptedExtensions.quicTransportParameters === sliceType$6.nil)) { */ case 16: + _r$5 = c.sendAlert(110); /* */ $s = 18; case 18: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$5; + $s = -1; return errors.New("tls: server sent an unexpected quic_transport_parameters extension"); + /* } */ case 17: + /* } */ case 12: + /* */ if (!hs.hello.earlyData && encryptedExtensions.earlyData) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (!hs.hello.earlyData && encryptedExtensions.earlyData) { */ case 19: + _r$6 = c.sendAlert(110); /* */ $s = 21; case 21: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$6; + $s = -1; return errors.New("tls: server sent an unexpected early_data extension"); + /* } */ case 20: + if (hs.hello.earlyData && !encryptedExtensions.earlyData) { + c.quicRejectedEarlyData(); + } + /* */ if (encryptedExtensions.earlyData) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (encryptedExtensions.earlyData) { */ case 22: + /* */ if (!((hs.session.cipherSuite === c.cipherSuite))) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (!((hs.session.cipherSuite === c.cipherSuite))) { */ case 24: + _r$7 = c.sendAlert(40); /* */ $s = 26; case 26: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$7; + $s = -1; return errors.New("tls: server accepted 0-RTT with the wrong cipher suite"); + /* } */ case 25: + /* */ if (!(hs.session.alpnProtocol === c.clientProtocol)) { $s = 27; continue; } + /* */ $s = 28; continue; + /* if (!(hs.session.alpnProtocol === c.clientProtocol)) { */ case 27: + _r$8 = c.sendAlert(40); /* */ $s = 29; case 29: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$8; + $s = -1; return errors.New("tls: server accepted 0-RTT with the wrong ALPN"); + /* } */ case 28: + /* } */ case 23: $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: readServerParameters, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, c, encryptedExtensions, err, err$1, hs, msg, ok, $s};return $f; + /* */ } return; } var $f = {$blk: readServerParameters, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _tuple, _tuple$1, c, encryptedExtensions, err, err$1, hs, msg, ok, $s};return $f; }; $ptrType(clientHandshakeStateTLS13).prototype.readServerCertificate = function readServerCertificate() { var {$24r, $24r$1, $24r$2, $24r$3, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, c, certMsg, certReq, certVerify, err, err$1, err$2, err$3, err$4, hs, msg, ok, sigHash, sigType, signed, x, $s, $r, $c} = $restore(this, {}); @@ -259333,7 +261463,7 @@ $packages["crypto/tls"] = (function() { if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return err$1; } - _tuple$1 = $assertType(msg, ptrType$41, true); + _tuple$1 = $assertType(msg, ptrType$44, true); certReq = _tuple$1[0]; ok = _tuple$1[1]; /* */ if (ok) { $s = 10; continue; } @@ -259348,7 +261478,7 @@ $packages["crypto/tls"] = (function() { $s = -1; return err$1; } /* } */ case 11: - _tuple$3 = $assertType(msg, ptrType$28, true); + _tuple$3 = $assertType(msg, ptrType$35, true); certMsg = _tuple$3[0]; ok = _tuple$3[1]; /* */ if (!ok) { $s = 13; continue; } @@ -259381,7 +261511,7 @@ $packages["crypto/tls"] = (function() { if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return err$1; } - _tuple$5 = $assertType(msg, ptrType$29, true); + _tuple$5 = $assertType(msg, ptrType$36, true); certVerify = _tuple$5[0]; ok = _tuple$5[1]; /* */ if (!ok) { $s = 23; continue; } @@ -259453,7 +261583,7 @@ $packages["crypto/tls"] = (function() { if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return err; } - _tuple$1 = $assertType(msg, ptrType$30, true); + _tuple$1 = $assertType(msg, ptrType$37, true); finished = _tuple$1[0]; ok = _tuple$1[1]; /* */ if (!ok) { $s = 2; continue; } @@ -259465,7 +261595,7 @@ $packages["crypto/tls"] = (function() { $24r = _r$2; $s = 6; case 6: return $24r; /* } */ case 3: - _r$3 = hs.suite.finishedHash(c.in$28.trafficSecret, hs.transcript); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3 = hs.suite.finishedHash(c.in$30.trafficSecret, hs.transcript); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } expectedMAC = _r$3; /* */ if (!hmac.Equal(expectedMAC, finished.verifyData)) { $s = 8; continue; } /* */ $s = 9; continue; @@ -259483,7 +261613,7 @@ $packages["crypto/tls"] = (function() { hs.trafficSecret = _r$6; _r$7 = hs.suite.deriveSecret(hs.masterSecret, "s ap traffic", hs.transcript); /* */ $s = 13; case 13: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } serverSecret = _r$7; - $r = c.in$28.setTrafficSecret(hs.suite, serverSecret); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = c.in$30.setTrafficSecret(hs.suite, 3, serverSecret); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _r$8 = c.config.writeKeyLog("CLIENT_TRAFFIC_SECRET_0", hs.hello.random, hs.trafficSecret); /* */ $s = 15; case 15: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } err = _r$8; /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 16; continue; } @@ -259512,7 +261642,7 @@ $packages["crypto/tls"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: hs = this; c = hs.c; - if (hs.certReq === ptrType$41.nil) { + if (hs.certReq === ptrType$44.nil) { $s = -1; return $ifaceNil; } _r = c.getClientCertificate(new CertificateRequestInfo.ptr(hs.certReq.certificateAuthorities, hs.certReq.supportedSignatureAlgorithms, c.vers, hs.ctx)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } @@ -259522,8 +261652,8 @@ $packages["crypto/tls"] = (function() { if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return err; } - certMsg = new certificateMsgTLS13.ptr(sliceType$6.nil, new Certificate.ptr(sliceType$11.nil, $ifaceNil, sliceType.nil, sliceType$6.nil, sliceType$11.nil, ptrType$6.nil), false, false); - Certificate.copy(certMsg.certificate, cert); + certMsg = new certificateMsgTLS13.ptr(sliceType$6.nil, new Certificate.ptr(sliceType$11.nil, $ifaceNil, sliceType.nil, sliceType$6.nil, sliceType$11.nil, ptrType$7.nil), false, false); + Certificate.copy(certMsg.certificate, (cert === ptrType$34.nil && $throwNilPointerError(), cert)); certMsg.scts = hs.certReq.scts && cert.SignedCertificateTimestamps.$length > 0; certMsg.ocspStapling = hs.certReq.ocspStapling && cert.OCSPStaple.$length > 0; _r$1 = hs.c.writeHandshakeRecord(certMsg, hs.transcript); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } @@ -259591,7 +261721,7 @@ $packages["crypto/tls"] = (function() { /* */ } return; } var $f = {$blk: sendClientCertificate, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, c, cert, certMsg, certVerifyMsg, err, err$1, err$2, hs, sig, sigHash, sigType, signOpts, signed, $s};return $f; }; $ptrType(clientHandshakeStateTLS13).prototype.sendClientFinished = function sendClientFinished() { - var {_r, _r$1, _r$2, _tuple, c, err, finished, hs, $s, $r, $c} = $restore(this, {}); + var {_r, _r$1, _r$2, _r$3, _tuple, c, err, finished, hs, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: hs = this; c = hs.c; @@ -259603,18 +261733,29 @@ $packages["crypto/tls"] = (function() { if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return err; } - $r = c.out.setTrafficSecret(hs.suite, hs.trafficSecret); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = c.out.setTrafficSecret(hs.suite, 3, hs.trafficSecret); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* */ if (!c.config.SessionTicketsDisabled && !($interfaceIsEqual(c.config.ClientSessionCache, $ifaceNil))) { $s = 4; continue; } /* */ $s = 5; continue; /* if (!c.config.SessionTicketsDisabled && !($interfaceIsEqual(c.config.ClientSessionCache, $ifaceNil))) { */ case 4: _r$2 = hs.suite.deriveSecret(hs.masterSecret, "res master", hs.transcript); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } c.resumptionSecret = _r$2; /* } */ case 5: + /* */ if (!(c.quic === ptrType$5.nil)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!(c.quic === ptrType$5.nil)) { */ case 7: + /* */ if (!((c.hand.Len() === 0))) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!((c.hand.Len() === 0))) { */ case 9: + _r$3 = c.sendAlert(10); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + /* } */ case 10: + c.quicSetWriteSecret(3, hs.suite.id, hs.trafficSecret); + /* } */ case 8: $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: sendClientFinished, $c: true, $r, _r, _r$1, _r$2, _tuple, c, err, finished, hs, $s};return $f; + /* */ } return; } var $f = {$blk: sendClientFinished, $c: true, $r, _r, _r$1, _r$2, _r$3, _tuple, c, err, finished, hs, $s};return $f; }; $ptrType(Conn).prototype.handleNewSessionTicket = function handleNewSessionTicket(msg) { - var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, c, cacheKey, cipherSuite$1, lifetime, msg, session, $s, $r, $c} = $restore(this, {msg}); + var {$24r, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, c, cacheKey, cipherSuite$1, cs, err, lifetime, msg, psk, session, x, $s, $r, $c} = $restore(this, {msg}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: c = this; /* */ if (!c.isClient) { $s = 1; continue; } @@ -259638,32 +261779,59 @@ $packages["crypto/tls"] = (function() { _r$1; $s = -1; return errors.New("tls: received a session ticket with invalid lifetime"); /* } */ case 5: - cipherSuite$1 = cipherSuiteTLS13ByID(c.cipherSuite); - /* */ if (cipherSuite$1 === ptrType$2.nil || c.resumptionSecret === sliceType$6.nil) { $s = 7; continue; } + /* */ if (!(c.quic === ptrType$5.nil) && !((msg.maxEarlyData === 0)) && !((msg.maxEarlyData === 4294967295))) { $s = 7; continue; } /* */ $s = 8; continue; - /* if (cipherSuite$1 === ptrType$2.nil || c.resumptionSecret === sliceType$6.nil) { */ case 7: - _r$2 = c.sendAlert(80); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 10; case 10: return $24r; + /* if (!(c.quic === ptrType$5.nil) && !((msg.maxEarlyData === 0)) && !((msg.maxEarlyData === 4294967295))) { */ case 7: + _r$2 = c.sendAlert(47); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + $s = -1; return errors.New("tls: invalid early data for QUIC connection"); /* } */ case 8: - _r$3 = c.config.time(); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$4 = c.config.time(); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$5 = $clone(_r$4, time.Time).Add(lifetime); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - session = new ClientSessionState.ptr(msg.label, c.vers, c.cipherSuite, c.resumptionSecret, c.peerCertificates, c.verifiedChains, $clone(_r$3, time.Time), c.ocspResponse, c.scts, msg.nonce, $clone(_r$5, time.Time), msg.ageAdd); - _r$6 = c.conn.RemoteAddr(); /* */ $s = 14; case 14: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _r$7 = clientSessionCacheKey(_r$6, c.config); /* */ $s = 15; case 15: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - cacheKey = _r$7; - $r = c.config.ClientSessionCache.Put(cacheKey, session); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + cipherSuite$1 = cipherSuiteTLS13ByID(c.cipherSuite); + /* */ if (cipherSuite$1 === ptrType$3.nil || c.resumptionSecret === sliceType$6.nil) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (cipherSuite$1 === ptrType$3.nil || c.resumptionSecret === sliceType$6.nil) { */ case 10: + _r$3 = c.sendAlert(80); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3; + $s = 13; case 13: return $24r; + /* } */ case 11: + _r$4 = cipherSuite$1.expandLabel(c.resumptionSecret, "resumption", msg.nonce, new crypto.Hash(cipherSuite$1.hash).Size()); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + psk = _r$4; + _r$5 = c.sessionState(); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple = _r$5; + session = _tuple[0]; + err = _tuple[1]; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 16: + _r$6 = c.sendAlert(80); /* */ $s = 18; case 18: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$6; + $s = -1; return err; + /* } */ case 17: + session.secret = psk; + _r$7 = c.config.time(); /* */ $s = 19; case 19: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$8 = $clone(_r$7, time.Time).Add(lifetime); /* */ $s = 20; case 20: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$9 = $clone(_r$8, time.Time).Unix(); /* */ $s = 21; case 21: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + session.useBy = ((x = _r$9, new $Uint64(x.$high, x.$low))); + session.ageAdd = msg.ageAdd; + session.EarlyData = !(c.quic === ptrType$5.nil) && (msg.maxEarlyData === 4294967295); + cs = new ClientSessionState.ptr(msg.label, session); + _r$10 = c.clientSessionCacheKey(); /* */ $s = 22; case 22: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + cacheKey = _r$10; + /* */ if (!(cacheKey === "")) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (!(cacheKey === "")) { */ case 23: + $r = c.config.ClientSessionCache.Put(cacheKey, cs); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 24: $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: handleNewSessionTicket, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, c, cacheKey, cipherSuite$1, lifetime, msg, session, $s};return $f; + /* */ } return; } var $f = {$blk: handleNewSessionTicket, $c: true, $r, $24r, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, c, cacheKey, cipherSuite$1, cs, err, lifetime, msg, psk, session, x, $s};return $f; }; $ptrType(Conn).prototype.makeClientHello = function makeClientHello() { - var {$24r, $24r$1, _i, _i$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, c, clientHelloVersion, config, configCipherSuites, curveID, err, err$1, hello, key, l, nextProtosLength, ok, preferenceOrder, proto, suite, suiteId, supportedVersions$1, x, x$1, $s, $r, $c} = $restore(this, {}); + var {$24r, $24r$1, _i, _i$1, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, c, clientHelloVersion, config, configCipherSuites, curveID, err, err$1, err$2, hello, key, l, nextProtosLength, ok, p, preferenceOrder, proto, suite, suiteId, supportedVersions$1, x, x$1, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: c = this; config = c.config; if ((config.ServerName.length === 0) && !config.InsecureSkipVerify) { - $s = -1; return [ptrType$27.nil, ptrType$23.nil, errors.New("tls: either ServerName or InsecureSkipVerify must be specified in the tls.Config")]; + $s = -1; return [ptrType$33.nil, ptrType$29.nil, errors.New("tls: either ServerName or InsecureSkipVerify must be specified in the tls.Config")]; } nextProtosLength = 0; _ref = config.NextProtos; @@ -259673,24 +261841,25 @@ $packages["crypto/tls"] = (function() { proto = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); l = proto.length; if ((l === 0) || l > 255) { - $s = -1; return [ptrType$27.nil, ptrType$23.nil, errors.New("tls: invalid NextProtos value")]; + $s = -1; return [ptrType$33.nil, ptrType$29.nil, errors.New("tls: invalid NextProtos value")]; } else { nextProtosLength = nextProtosLength + ((1 + l >> 0)) >> 0; } _i++; } if (nextProtosLength > 65535) { - $s = -1; return [ptrType$27.nil, ptrType$23.nil, errors.New("tls: NextProtos values too large")]; + $s = -1; return [ptrType$33.nil, ptrType$29.nil, errors.New("tls: NextProtos values too large")]; } supportedVersions$1 = config.supportedVersions(true); if (supportedVersions$1.$length === 0) { - $s = -1; return [ptrType$27.nil, ptrType$23.nil, errors.New("tls: no supported versions satisfy MinVersion and MaxVersion")]; + $s = -1; return [ptrType$33.nil, ptrType$29.nil, errors.New("tls: no supported versions satisfy MinVersion and MaxVersion")]; } clientHelloVersion = config.maxSupportedVersion(true); if (clientHelloVersion > 771) { clientHelloVersion = 771; } - hello = new clientHelloMsg.ptr(sliceType$6.nil, clientHelloVersion, $makeSlice(sliceType$6, 32), $makeSlice(sliceType$6, 32), sliceType$3.nil, new sliceType$6([0]), hostnameInSNI(config.ServerName), true, config.curvePreferences(), new sliceType$6([0]), false, sliceType$6.nil, sliceType.nil, sliceType.nil, true, sliceType$6.nil, config.NextProtos, true, supportedVersions$1, sliceType$6.nil, sliceType$16.nil, false, sliceType$6.nil, sliceType$17.nil, sliceType$11.nil); + _r = hostnameInSNI(config.ServerName); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + hello = new clientHelloMsg.ptr(sliceType$6.nil, clientHelloVersion, $makeSlice(sliceType$6, 32), sliceType$6.nil, sliceType$3.nil, new sliceType$6([0]), _r, true, config.curvePreferences(), new sliceType$6([0]), false, sliceType$6.nil, sliceType.nil, sliceType.nil, true, sliceType$6.nil, true, config.NextProtos, true, supportedVersions$1, sliceType$6.nil, sliceType$17.nil, false, sliceType$6.nil, sliceType$18.nil, sliceType$11.nil, sliceType$6.nil); if (c.handshakes > 0) { hello.secureRenegotiation = new sliceType$6(c.clientFinished); } @@ -259706,7 +261875,7 @@ $packages["crypto/tls"] = (function() { if (!(_i$1 < _ref$1.$length)) { break; } suiteId = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); suite = mutualCipherSuite(configCipherSuites, suiteId); - if (suite === ptrType$3.nil) { + if (suite === ptrType$2.nil) { _i$1++; continue; } @@ -259717,27 +261886,32 @@ $packages["crypto/tls"] = (function() { hello.cipherSuites = $append(hello.cipherSuites, suiteId); _i$1++; } - _r = io.ReadFull(config.rand(), hello.random); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; + _r$1 = io.ReadFull(config.rand(), hello.random); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; err = _tuple[1]; - /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2: - _r$1 = err.Error(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = errors.New("tls: short read from Rand: " + _r$1); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = [ptrType$27.nil, ptrType$23.nil, _r$2]; - $s = 6; case 6: return $24r; - /* } */ case 3: - _r$3 = io.ReadFull(config.rand(), hello.sessionId); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple$1 = _r$3; - err$1 = _tuple$1[1]; - /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 8; continue; } + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 3: + _r$2 = err.Error(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = errors.New("tls: short read from Rand: " + _r$2); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = [ptrType$33.nil, ptrType$29.nil, _r$3]; + $s = 7; case 7: return $24r; + /* } */ case 4: + /* */ if (c.quic === ptrType$5.nil) { $s = 8; continue; } /* */ $s = 9; continue; - /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 8: - _r$4 = err$1.Error(); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$5 = errors.New("tls: short read from Rand: " + _r$4); /* */ $s = 11; case 11: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - $24r$1 = [ptrType$27.nil, ptrType$23.nil, _r$5]; - $s = 12; case 12: return $24r$1; + /* if (c.quic === ptrType$5.nil) { */ case 8: + hello.sessionId = $makeSlice(sliceType$6, 32); + _r$4 = io.ReadFull(config.rand(), hello.sessionId); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$1 = _r$4; + err$1 = _tuple$1[1]; + /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 11: + _r$5 = err$1.Error(); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$6 = errors.New("tls: short read from Rand: " + _r$5); /* */ $s = 14; case 14: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $24r$1 = [ptrType$33.nil, ptrType$29.nil, _r$6]; + $s = 15; case 15: return $24r$1; + /* } */ case 12: /* } */ case 9: if (hello.vers >= 771) { hello.supportedSignatureAlgorithms = supportedSignatureAlgorithms(); @@ -259745,10 +261919,13 @@ $packages["crypto/tls"] = (function() { if (!(testingOnlyForceClientHelloSignatureAlgorithms === sliceType.nil)) { hello.supportedSignatureAlgorithms = testingOnlyForceClientHelloSignatureAlgorithms; } - key = ptrType$23.nil; - /* */ if ((x = hello.supportedVersions, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) === 772) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if ((x = hello.supportedVersions, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) === 772) { */ case 13: + key = ptrType$29.nil; + /* */ if ((x = hello.supportedVersions, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) === 772) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if ((x = hello.supportedVersions, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) === 772) { */ case 16: + if (hello.supportedVersions.$length === 1) { + hello.cipherSuites = sliceType$3.nil; + } if (hasAESGCMHardwareSupport) { hello.cipherSuites = $appendSlice(hello.cipherSuites, defaultCipherSuitesTLS13); } else { @@ -259758,31 +261935,45 @@ $packages["crypto/tls"] = (function() { _tuple$2 = curveForCurveID(curveID); ok = _tuple$2[1]; if (!ok) { - $s = -1; return [ptrType$27.nil, ptrType$23.nil, errors.New("tls: CurvePreferences includes unsupported curve")]; + $s = -1; return [ptrType$33.nil, ptrType$29.nil, errors.New("tls: CurvePreferences includes unsupported curve")]; } - _r$6 = generateECDHEKey(config.rand(), curveID); /* */ $s = 15; case 15: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _tuple$3 = _r$6; + _r$7 = generateECDHEKey(config.rand(), curveID); /* */ $s = 18; case 18: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _tuple$3 = _r$7; key = _tuple$3[0]; err = _tuple$3[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [ptrType$27.nil, ptrType$23.nil, err]; + $s = -1; return [ptrType$33.nil, ptrType$29.nil, err]; } - _r$7 = key.PublicKey(); /* */ $s = 16; case 16: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _r$8 = _r$7.Bytes(); /* */ $s = 17; case 17: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - hello.keyShares = new sliceType$16([$clone(new keyShare.ptr(curveID, _r$8), keyShare)]); - /* } */ case 14: + _r$8 = key.PublicKey(); /* */ $s = 19; case 19: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$9 = _r$8.Bytes(); /* */ $s = 20; case 20: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + hello.keyShares = new sliceType$17([$clone(new keyShare.ptr(curveID, _r$9), keyShare)]); + /* } */ case 17: + /* */ if (!(c.quic === ptrType$5.nil)) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (!(c.quic === ptrType$5.nil)) { */ case 21: + _r$10 = c.quicGetTransportParameters(); /* */ $s = 23; case 23: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _tuple$4 = _r$10; + p = _tuple$4[0]; + err$2 = _tuple$4[1]; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + $s = -1; return [ptrType$33.nil, ptrType$29.nil, err$2]; + } + if (p === sliceType$6.nil) { + p = new sliceType$6([]); + } + hello.quicTransportParameters = p; + /* } */ case 22: $s = -1; return [hello, key, $ifaceNil]; - /* */ } return; } var $f = {$blk: makeClientHello, $c: true, $r, $24r, $24r$1, _i, _i$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, c, clientHelloVersion, config, configCipherSuites, curveID, err, err$1, hello, key, l, nextProtosLength, ok, preferenceOrder, proto, suite, suiteId, supportedVersions$1, x, x$1, $s};return $f; + /* */ } return; } var $f = {$blk: makeClientHello, $c: true, $r, $24r, $24r$1, _i, _i$1, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, c, clientHelloVersion, config, configCipherSuites, curveID, err, err$1, err$2, hello, key, l, nextProtosLength, ok, p, preferenceOrder, proto, suite, suiteId, supportedVersions$1, x, x$1, $s};return $f; }; $ptrType(Conn).prototype.clientHandshake = function clientHandshake(ctx) { - var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, binderKey, c, cacheKey, ctx, earlySecret, ecdheKey, err, err$1, err$2, err$3, hello, hs, hs$1, maxVers, msg, ok, serverHello, session, tls11Downgrade, tls12Downgrade, $s, $deferred, $r, $c} = $restore(this, {ctx}); + var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, _r, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, binderKey, c, ctx, earlySecret, earlyTrafficSecret, ecdheKey, err, err$1, err$2, err$3, err$4, hello, hs, hs$1, maxVers, msg, ok, serverHello, session, suite, tls11Downgrade, tls12Downgrade, transcript, $s, $deferred, $r, $c} = $restore(this, {ctx}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); c = [c]; - cacheKey = [cacheKey]; err = [err]; err[0] = $ifaceNil; c[0] = this; - if (c[0].config === ptrType$5.nil) { + if (c[0].config === ptrType$6.nil) { c[0].config = defaultConfig(); } c[0].didResume = false; @@ -259798,29 +261989,34 @@ $packages["crypto/tls"] = (function() { c[0].serverName = hello.serverName; _r$1 = c[0].loadSession(hello); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$1 = _r$1; - cacheKey[0] = _tuple$1[0]; - session = _tuple$1[1]; - earlySecret = _tuple$1[2]; - binderKey = _tuple$1[3]; - err[0] = _tuple$1[4]; + session = _tuple$1[0]; + earlySecret = _tuple$1[1]; + binderKey = _tuple$1[2]; + err[0] = _tuple$1[3]; if (!($interfaceIsEqual(err[0], $ifaceNil))) { err[0] = err[0]; $s = -1; return err[0]; } - /* */ if (!(cacheKey[0] === "") && !(session === ptrType$39.nil)) { $s = 3; continue; } + /* */ if (!(session === ptrType$21.nil)) { $s = 3; continue; } /* */ $s = 4; continue; - /* if (!(cacheKey[0] === "") && !(session === ptrType$39.nil)) { */ case 3: - $deferred.push([(function(c, cacheKey, err) { return function Conn·clientHandshake·func1() { - var {$s, $r, $c} = $restore(this, {}); + /* if (!(session === ptrType$21.nil)) { */ case 3: + $deferred.push([(function(c, err) { return function Conn·clientHandshake·func1() { + var {_r$2, cacheKey, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: /* */ if (!($interfaceIsEqual(err[0], $ifaceNil))) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!($interfaceIsEqual(err[0], $ifaceNil))) { */ case 1: - $r = c[0].config.ClientSessionCache.Put(cacheKey[0], ptrType$39.nil); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = c[0].clientSessionCacheKey(); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + cacheKey = _r$2; + /* */ if (!(cacheKey === "")) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!(cacheKey === "")) { */ case 4: + $r = c[0].config.ClientSessionCache.Put(cacheKey, ptrType$47.nil); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 5: /* } */ case 2: $s = -1; return; - /* */ } return; } var $f = {$blk: Conn·clientHandshake·func1, $c: true, $r, $s};return $f; - }; })(c, cacheKey, err), []]); + /* */ } return; } var $f = {$blk: Conn·clientHandshake·func1, $c: true, $r, _r$2, cacheKey, $s};return $f; + }; })(c, err), []]); /* } */ case 4: _r$2 = c[0].writeHandshakeRecord(hello, $ifaceNil); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _tuple$2 = _r$2; @@ -259832,262 +262028,266 @@ $packages["crypto/tls"] = (function() { $24r = err[0]; $s = 8; case 8: return $24r; /* } */ case 7: - _r$3 = c[0].readHandshake($ifaceNil); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple$3 = _r$3; + /* */ if (hello.earlyData) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (hello.earlyData) { */ case 9: + suite = cipherSuiteTLS13ByID(session.cipherSuite); + _r$3 = new crypto.Hash(suite.hash).New(); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + transcript = _r$3; + _r$4 = transcriptMsg(hello, transcript); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + err$2 = _r$4; + /* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 13: + err[0] = err$2; + $24r$1 = err[0]; + $s = 15; case 15: return $24r$1; + /* } */ case 14: + _r$5 = suite.deriveSecret(earlySecret, "c e traffic", transcript); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + earlyTrafficSecret = _r$5; + c[0].quicSetWriteSecret(1, suite.id, earlyTrafficSecret); + /* } */ case 10: + _r$6 = c[0].readHandshake($ifaceNil); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _tuple$3 = _r$6; msg = _tuple$3[0]; err[0] = _tuple$3[1]; - /* */ if (!($interfaceIsEqual(err[0], $ifaceNil))) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (!($interfaceIsEqual(err[0], $ifaceNil))) { */ case 10: + /* */ if (!($interfaceIsEqual(err[0], $ifaceNil))) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (!($interfaceIsEqual(err[0], $ifaceNil))) { */ case 18: err[0] = err[0]; - $24r$1 = err[0]; - $s = 12; case 12: return $24r$1; - /* } */ case 11: - _tuple$4 = $assertType(msg, ptrType$31, true); + $24r$2 = err[0]; + $s = 20; case 20: return $24r$2; + /* } */ case 19: + _tuple$4 = $assertType(msg, ptrType$38, true); serverHello = _tuple$4[0]; ok = _tuple$4[1]; - /* */ if (!ok) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (!ok) { */ case 13: - _r$4 = c[0].sendAlert(10); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$4; - _r$5 = unexpectedMessageError(serverHello, msg); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - err[0] = _r$5; - $24r$2 = err[0]; - $s = 17; case 17: return $24r$2; - /* } */ case 14: - _r$6 = c[0].pickTLSVersion(serverHello); /* */ $s = 18; case 18: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - err$2 = _r$6; - /* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 19; continue; } - /* */ $s = 20; continue; - /* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 19: - err[0] = err$2; + /* */ if (!ok) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (!ok) { */ case 21: + _r$7 = c[0].sendAlert(10); /* */ $s = 23; case 23: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$7; + _r$8 = unexpectedMessageError(serverHello, msg); /* */ $s = 24; case 24: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + err[0] = _r$8; $24r$3 = err[0]; - $s = 21; case 21: return $24r$3; - /* } */ case 20: + $s = 25; case 25: return $24r$3; + /* } */ case 22: + _r$9 = c[0].pickTLSVersion(serverHello); /* */ $s = 26; case 26: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + err$3 = _r$9; + /* */ if (!($interfaceIsEqual(err$3, $ifaceNil))) { $s = 27; continue; } + /* */ $s = 28; continue; + /* if (!($interfaceIsEqual(err$3, $ifaceNil))) { */ case 27: + err[0] = err$3; + $24r$4 = err[0]; + $s = 29; case 29: return $24r$4; + /* } */ case 28: maxVers = c[0].config.maxSupportedVersion(true); tls12Downgrade = ($bytesToString($subslice(serverHello.random, 24))) === "DOWNGRD\x01"; tls11Downgrade = ($bytesToString($subslice(serverHello.random, 24))) === "DOWNGRD\x00"; - /* */ if ((maxVers === 772) && c[0].vers <= 771 && (tls12Downgrade || tls11Downgrade) || (maxVers === 771) && c[0].vers <= 770 && tls11Downgrade) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if ((maxVers === 772) && c[0].vers <= 771 && (tls12Downgrade || tls11Downgrade) || (maxVers === 771) && c[0].vers <= 770 && tls11Downgrade) { */ case 22: - _r$7 = c[0].sendAlert(47); /* */ $s = 24; case 24: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _r$7; + /* */ if ((maxVers === 772) && c[0].vers <= 771 && (tls12Downgrade || tls11Downgrade) || (maxVers === 771) && c[0].vers <= 770 && tls11Downgrade) { $s = 30; continue; } + /* */ $s = 31; continue; + /* if ((maxVers === 772) && c[0].vers <= 771 && (tls12Downgrade || tls11Downgrade) || (maxVers === 771) && c[0].vers <= 770 && tls11Downgrade) { */ case 30: + _r$10 = c[0].sendAlert(47); /* */ $s = 32; case 32: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$10; err[0] = errors.New("tls: downgrade attempt detected, possibly due to a MitM attack or a broken middlebox"); - $24r$4 = err[0]; - $s = 25; case 25: return $24r$4; - /* } */ case 23: - /* */ if (c[0].vers === 772) { $s = 26; continue; } - /* */ $s = 27; continue; - /* if (c[0].vers === 772) { */ case 26: - hs = new clientHandshakeStateTLS13.ptr(c[0], ctx, serverHello, hello, ecdheKey, session, earlySecret, binderKey, ptrType$41.nil, false, false, ptrType$2.nil, $ifaceNil, sliceType$6.nil, sliceType$6.nil); - _r$8 = hs.handshake(); /* */ $s = 28; case 28: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - err[0] = _r$8; $24r$5 = err[0]; - $s = 29; case 29: return $24r$5; - /* } */ case 27: - hs$1 = new clientHandshakeState.ptr(c[0], ctx, serverHello, hello, ptrType$3.nil, new finishedHash.ptr($ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, sliceType$6.nil, 0, $throwNilPointerError), sliceType$6.nil, session); - _r$9 = hs$1.handshake(); /* */ $s = 30; case 30: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - err$3 = _r$9; - /* */ if (!($interfaceIsEqual(err$3, $ifaceNil))) { $s = 31; continue; } - /* */ $s = 32; continue; - /* if (!($interfaceIsEqual(err$3, $ifaceNil))) { */ case 31: - err[0] = err$3; - $24r$6 = err[0]; - $s = 33; case 33: return $24r$6; - /* } */ case 32: - /* */ if (!(cacheKey[0] === "") && !(hs$1.session === ptrType$39.nil) && !(session === hs$1.session)) { $s = 34; continue; } + $s = 33; case 33: return $24r$5; + /* } */ case 31: + /* */ if (c[0].vers === 772) { $s = 34; continue; } /* */ $s = 35; continue; - /* if (!(cacheKey[0] === "") && !(hs$1.session === ptrType$39.nil) && !(session === hs$1.session)) { */ case 34: - $r = c[0].config.ClientSessionCache.Put(cacheKey[0], hs$1.session); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* if (c[0].vers === 772) { */ case 34: + hs = new clientHandshakeStateTLS13.ptr(c[0], ctx, serverHello, hello, ecdheKey, session, earlySecret, binderKey, ptrType$44.nil, false, false, ptrType$3.nil, $ifaceNil, sliceType$6.nil, sliceType$6.nil); + _r$11 = hs.handshake(); /* */ $s = 36; case 36: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + err[0] = _r$11; + $24r$6 = err[0]; + $s = 37; case 37: return $24r$6; /* } */ case 35: + hs$1 = new clientHandshakeState.ptr(c[0], ctx, serverHello, hello, ptrType$2.nil, new finishedHash.ptr($ifaceNil, $ifaceNil, $ifaceNil, $ifaceNil, sliceType$6.nil, 0, $throwNilPointerError), sliceType$6.nil, session, sliceType$6.nil); + _r$12 = hs$1.handshake(); /* */ $s = 38; case 38: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + err$4 = _r$12; + /* */ if (!($interfaceIsEqual(err$4, $ifaceNil))) { $s = 39; continue; } + /* */ $s = 40; continue; + /* if (!($interfaceIsEqual(err$4, $ifaceNil))) { */ case 39: + err[0] = err$4; + $24r$7 = err[0]; + $s = 41; case 41: return $24r$7; + /* } */ case 40: err[0] = $ifaceNil; - $24r$7 = err[0]; - $s = 37; case 37: return $24r$7; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return err[0]; } if($curGoroutine.asleep) { var $f = {$blk: clientHandshake, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, binderKey, c, cacheKey, ctx, earlySecret, ecdheKey, err, err$1, err$2, err$3, hello, hs, hs$1, maxVers, msg, ok, serverHello, session, tls11Downgrade, tls12Downgrade, $s, $deferred};return $f; } } + $24r$8 = err[0]; + $s = 42; case 42: return $24r$8; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return err[0]; } if($curGoroutine.asleep) { var $f = {$blk: clientHandshake, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, _r, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, binderKey, c, ctx, earlySecret, earlyTrafficSecret, ecdheKey, err, err$1, err$2, err$3, err$4, hello, hs, hs$1, maxVers, msg, ok, serverHello, session, suite, tls11Downgrade, tls12Downgrade, transcript, $s, $deferred};return $f; } } }; $ptrType(Conn).prototype.loadSession = function loadSession(hello) { - var {_i, _i$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$32, _tmp$33, _tmp$34, _tmp$35, _tmp$36, _tmp$37, _tmp$38, _tmp$39, _tmp$4, _tmp$40, _tmp$41, _tmp$42, _tmp$43, _tmp$44, _tmp$45, _tmp$46, _tmp$47, _tmp$48, _tmp$49, _tmp$5, _tmp$50, _tmp$51, _tmp$52, _tmp$53, _tmp$54, _tmp$55, _tmp$56, _tmp$57, _tmp$58, _tmp$59, _tmp$6, _tmp$60, _tmp$61, _tmp$62, _tmp$63, _tmp$64, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, binderKey, c, cacheKey, cipherSuite$1, cipherSuiteOk$1, earlySecret, err, err$1, err$2, hello, helloBytes, identity, offeredID, offeredSuite, ok, psk, pskBinders, serverCert, session, ticketAge, transcript, v, versOk, x, x$1, $s, $r, $c} = $restore(this, {hello}); + var {_i, _i$1, _i$2, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$32, _tmp$33, _tmp$34, _tmp$35, _tmp$36, _tmp$37, _tmp$38, _tmp$39, _tmp$4, _tmp$40, _tmp$41, _tmp$42, _tmp$43, _tmp$44, _tmp$45, _tmp$46, _tmp$47, _tmp$48, _tmp$49, _tmp$5, _tmp$50, _tmp$51, _tmp$52, _tmp$53, _tmp$54, _tmp$55, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, alpn, binderKey, c, cacheKey, cipherSuite$1, cipherSuiteOk$1, cs, earlySecret, err, err$1, err$2, hello, helloBytes, identity, offeredID, offeredSuite, ok, pskBinders, session, ticketAge, transcript, v, versOk, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {hello}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - cacheKey = ""; - session = ptrType$39.nil; + session = ptrType$21.nil; earlySecret = sliceType$6.nil; binderKey = sliceType$6.nil; err = $ifaceNil; c = this; if (c.config.SessionTicketsDisabled || $interfaceIsEqual(c.config.ClientSessionCache, $ifaceNil)) { - _tmp = ""; - _tmp$1 = ptrType$39.nil; + _tmp = ptrType$21.nil; + _tmp$1 = sliceType$6.nil; _tmp$2 = sliceType$6.nil; - _tmp$3 = sliceType$6.nil; - _tmp$4 = $ifaceNil; - cacheKey = _tmp; - session = _tmp$1; - earlySecret = _tmp$2; - binderKey = _tmp$3; - err = _tmp$4; - $s = -1; return [cacheKey, session, earlySecret, binderKey, err]; + _tmp$3 = $ifaceNil; + session = _tmp; + earlySecret = _tmp$1; + binderKey = _tmp$2; + err = _tmp$3; + $s = -1; return [session, earlySecret, binderKey, err]; } hello.ticketSupported = true; if ((x = hello.supportedVersions, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) === 772) { hello.pskModes = new sliceType$6([1]); } if (!((c.handshakes === 0))) { - _tmp$5 = ""; - _tmp$6 = ptrType$39.nil; - _tmp$7 = sliceType$6.nil; - _tmp$8 = sliceType$6.nil; - _tmp$9 = $ifaceNil; - cacheKey = _tmp$5; - session = _tmp$6; - earlySecret = _tmp$7; - binderKey = _tmp$8; - err = _tmp$9; - $s = -1; return [cacheKey, session, earlySecret, binderKey, err]; + _tmp$4 = ptrType$21.nil; + _tmp$5 = sliceType$6.nil; + _tmp$6 = sliceType$6.nil; + _tmp$7 = $ifaceNil; + session = _tmp$4; + earlySecret = _tmp$5; + binderKey = _tmp$6; + err = _tmp$7; + $s = -1; return [session, earlySecret, binderKey, err]; } - _r = c.conn.RemoteAddr(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = clientSessionCacheKey(_r, c.config); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - cacheKey = _r$1; - _r$2 = c.config.ClientSessionCache.Get(cacheKey); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple = _r$2; - session = _tuple[0]; + _r = c.clientSessionCacheKey(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + cacheKey = _r; + if (cacheKey === "") { + _tmp$8 = ptrType$21.nil; + _tmp$9 = sliceType$6.nil; + _tmp$10 = sliceType$6.nil; + _tmp$11 = $ifaceNil; + session = _tmp$8; + earlySecret = _tmp$9; + binderKey = _tmp$10; + err = _tmp$11; + $s = -1; return [session, earlySecret, binderKey, err]; + } + _r$1 = c.config.ClientSessionCache.Get(cacheKey); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + cs = _tuple[0]; ok = _tuple[1]; - if (!ok || session === ptrType$39.nil) { - _tmp$10 = cacheKey; - _tmp$11 = ptrType$39.nil; - _tmp$12 = sliceType$6.nil; + if (!ok || cs === ptrType$47.nil) { + _tmp$12 = ptrType$21.nil; _tmp$13 = sliceType$6.nil; - _tmp$14 = $ifaceNil; - cacheKey = _tmp$10; - session = _tmp$11; - earlySecret = _tmp$12; - binderKey = _tmp$13; - err = _tmp$14; - $s = -1; return [cacheKey, session, earlySecret, binderKey, err]; + _tmp$14 = sliceType$6.nil; + _tmp$15 = $ifaceNil; + session = _tmp$12; + earlySecret = _tmp$13; + binderKey = _tmp$14; + err = _tmp$15; + $s = -1; return [session, earlySecret, binderKey, err]; } + session = cs.session; versOk = false; _ref = hello.supportedVersions; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (v === session.vers) { + if (v === session.version) { versOk = true; break; } _i++; } if (!versOk) { - _tmp$15 = cacheKey; - _tmp$16 = ptrType$39.nil; + _tmp$16 = ptrType$21.nil; _tmp$17 = sliceType$6.nil; _tmp$18 = sliceType$6.nil; _tmp$19 = $ifaceNil; - cacheKey = _tmp$15; session = _tmp$16; earlySecret = _tmp$17; binderKey = _tmp$18; err = _tmp$19; - $s = -1; return [cacheKey, session, earlySecret, binderKey, err]; + $s = -1; return [session, earlySecret, binderKey, err]; } - /* */ if (!c.config.InsecureSkipVerify) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (!c.config.InsecureSkipVerify) { */ case 4: + _r$2 = c.config.time(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = $clone(_r$2, time.Time).After($clone((x$1 = session.peerCertificates, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])).NotAfter, time.Time)); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_r$3) { */ case 3: + $r = c.config.ClientSessionCache.Put(cacheKey, ptrType$47.nil); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tmp$20 = ptrType$21.nil; + _tmp$21 = sliceType$6.nil; + _tmp$22 = sliceType$6.nil; + _tmp$23 = $ifaceNil; + session = _tmp$20; + earlySecret = _tmp$21; + binderKey = _tmp$22; + err = _tmp$23; + $s = -1; return [session, earlySecret, binderKey, err]; + /* } */ case 4: + /* */ if (!c.config.InsecureSkipVerify) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!c.config.InsecureSkipVerify) { */ case 8: if (session.verifiedChains.$length === 0) { - _tmp$20 = cacheKey; - _tmp$21 = ptrType$39.nil; - _tmp$22 = sliceType$6.nil; - _tmp$23 = sliceType$6.nil; - _tmp$24 = $ifaceNil; - cacheKey = _tmp$20; - session = _tmp$21; - earlySecret = _tmp$22; - binderKey = _tmp$23; - err = _tmp$24; - $s = -1; return [cacheKey, session, earlySecret, binderKey, err]; - } - serverCert = (x$1 = session.serverCertificates, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])); - _r$3 = c.config.time(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$4 = $clone(_r$3, time.Time).After($clone(serverCert.NotAfter, time.Time)); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if (_r$4) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (_r$4) { */ case 6: - $r = c.config.ClientSessionCache.Put(cacheKey, ptrType$39.nil); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _tmp$25 = cacheKey; - _tmp$26 = ptrType$39.nil; - _tmp$27 = sliceType$6.nil; - _tmp$28 = sliceType$6.nil; - _tmp$29 = $ifaceNil; - cacheKey = _tmp$25; - session = _tmp$26; - earlySecret = _tmp$27; - binderKey = _tmp$28; - err = _tmp$29; - $s = -1; return [cacheKey, session, earlySecret, binderKey, err]; - /* } */ case 7: - err$1 = serverCert.VerifyHostname(c.config.ServerName); + _tmp$24 = ptrType$21.nil; + _tmp$25 = sliceType$6.nil; + _tmp$26 = sliceType$6.nil; + _tmp$27 = $ifaceNil; + session = _tmp$24; + earlySecret = _tmp$25; + binderKey = _tmp$26; + err = _tmp$27; + $s = -1; return [session, earlySecret, binderKey, err]; + } + _r$4 = (x$2 = session.peerCertificates, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])).VerifyHostname(c.config.ServerName); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + err$1 = _r$4; if (!($interfaceIsEqual(err$1, $ifaceNil))) { - _tmp$30 = cacheKey; - _tmp$31 = ptrType$39.nil; - _tmp$32 = sliceType$6.nil; + _tmp$28 = ptrType$21.nil; + _tmp$29 = sliceType$6.nil; + _tmp$30 = sliceType$6.nil; + _tmp$31 = $ifaceNil; + session = _tmp$28; + earlySecret = _tmp$29; + binderKey = _tmp$30; + err = _tmp$31; + $s = -1; return [session, earlySecret, binderKey, err]; + } + /* } */ case 9: + if (!((session.version === 772))) { + if (mutualCipherSuite(hello.cipherSuites, session.cipherSuite) === ptrType$2.nil) { + _tmp$32 = ptrType$21.nil; _tmp$33 = sliceType$6.nil; - _tmp$34 = $ifaceNil; - cacheKey = _tmp$30; - session = _tmp$31; - earlySecret = _tmp$32; - binderKey = _tmp$33; - err = _tmp$34; - $s = -1; return [cacheKey, session, earlySecret, binderKey, err]; + _tmp$34 = sliceType$6.nil; + _tmp$35 = $ifaceNil; + session = _tmp$32; + earlySecret = _tmp$33; + binderKey = _tmp$34; + err = _tmp$35; + $s = -1; return [session, earlySecret, binderKey, err]; } - /* } */ case 5: - if (!((session.vers === 772))) { - if (mutualCipherSuite(hello.cipherSuites, session.cipherSuite) === ptrType$3.nil) { - _tmp$35 = cacheKey; - _tmp$36 = ptrType$39.nil; - _tmp$37 = sliceType$6.nil; - _tmp$38 = sliceType$6.nil; - _tmp$39 = $ifaceNil; - cacheKey = _tmp$35; - session = _tmp$36; - earlySecret = _tmp$37; - binderKey = _tmp$38; - err = _tmp$39; - $s = -1; return [cacheKey, session, earlySecret, binderKey, err]; - } - hello.sessionTicket = session.sessionTicket; - $s = -1; return [cacheKey, session, earlySecret, binderKey, err]; + hello.sessionTicket = cs.ticket; + $s = -1; return [session, earlySecret, binderKey, err]; } _r$5 = c.config.time(); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$6 = $clone(_r$5, time.Time).After($clone(session.useBy, time.Time)); /* */ $s = 14; case 14: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$6 = $clone(_r$5, time.Time).After($clone(time.Unix(((x$3 = session.useBy, new $Int64(x$3.$high, x$3.$low))), new $Int64(0, 0)), time.Time)); /* */ $s = 14; case 14: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } /* */ if (_r$6) { $s = 11; continue; } /* */ $s = 12; continue; /* if (_r$6) { */ case 11: - $r = c.config.ClientSessionCache.Put(cacheKey, ptrType$39.nil); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _tmp$40 = cacheKey; - _tmp$41 = ptrType$39.nil; - _tmp$42 = sliceType$6.nil; - _tmp$43 = sliceType$6.nil; - _tmp$44 = $ifaceNil; - cacheKey = _tmp$40; - session = _tmp$41; - earlySecret = _tmp$42; - binderKey = _tmp$43; - err = _tmp$44; - $s = -1; return [cacheKey, session, earlySecret, binderKey, err]; + $r = c.config.ClientSessionCache.Put(cacheKey, ptrType$47.nil); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tmp$36 = ptrType$21.nil; + _tmp$37 = sliceType$6.nil; + _tmp$38 = sliceType$6.nil; + _tmp$39 = $ifaceNil; + session = _tmp$36; + earlySecret = _tmp$37; + binderKey = _tmp$38; + err = _tmp$39; + $s = -1; return [session, earlySecret, binderKey, err]; /* } */ case 12: cipherSuite$1 = cipherSuiteTLS13ByID(session.cipherSuite); - if (cipherSuite$1 === ptrType$2.nil) { - _tmp$45 = cacheKey; - _tmp$46 = ptrType$39.nil; - _tmp$47 = sliceType$6.nil; - _tmp$48 = sliceType$6.nil; - _tmp$49 = $ifaceNil; - cacheKey = _tmp$45; - session = _tmp$46; - earlySecret = _tmp$47; - binderKey = _tmp$48; - err = _tmp$49; - $s = -1; return [cacheKey, session, earlySecret, binderKey, err]; + if (cipherSuite$1 === ptrType$3.nil) { + _tmp$40 = ptrType$21.nil; + _tmp$41 = sliceType$6.nil; + _tmp$42 = sliceType$6.nil; + _tmp$43 = $ifaceNil; + session = _tmp$40; + earlySecret = _tmp$41; + binderKey = _tmp$42; + err = _tmp$43; + $s = -1; return [session, earlySecret, binderKey, err]; } cipherSuiteOk$1 = false; _ref$1 = hello.cipherSuites; @@ -260096,77 +262296,84 @@ $packages["crypto/tls"] = (function() { if (!(_i$1 < _ref$1.$length)) { break; } offeredID = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); offeredSuite = cipherSuiteTLS13ByID(offeredID); - if (!(offeredSuite === ptrType$2.nil) && (offeredSuite.hash === cipherSuite$1.hash)) { + if (!(offeredSuite === ptrType$3.nil) && (offeredSuite.hash === cipherSuite$1.hash)) { cipherSuiteOk$1 = true; break; } _i$1++; } if (!cipherSuiteOk$1) { - _tmp$50 = cacheKey; - _tmp$51 = ptrType$39.nil; - _tmp$52 = sliceType$6.nil; - _tmp$53 = sliceType$6.nil; - _tmp$54 = $ifaceNil; - cacheKey = _tmp$50; - session = _tmp$51; - earlySecret = _tmp$52; - binderKey = _tmp$53; - err = _tmp$54; - $s = -1; return [cacheKey, session, earlySecret, binderKey, err]; + _tmp$44 = ptrType$21.nil; + _tmp$45 = sliceType$6.nil; + _tmp$46 = sliceType$6.nil; + _tmp$47 = $ifaceNil; + session = _tmp$44; + earlySecret = _tmp$45; + binderKey = _tmp$46; + err = _tmp$47; + $s = -1; return [session, earlySecret, binderKey, err]; + } + if (!(c.quic === ptrType$5.nil) && session.EarlyData) { + if (!(mutualCipherSuiteTLS13(hello.cipherSuites, session.cipherSuite) === ptrType$3.nil)) { + _ref$2 = hello.alpnProtocols; + _i$2 = 0; + while (true) { + if (!(_i$2 < _ref$2.$length)) { break; } + alpn = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); + if (alpn === session.alpnProtocol) { + hello.earlyData = true; + break; + } + _i$2++; + } + } } _r$7 = c.config.time(); /* */ $s = 16; case 16: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _r$8 = $clone(_r$7, time.Time).Sub($clone(session.receivedAt, time.Time)); /* */ $s = 17; case 17: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - ticketAge = (($div64(_r$8, new time.Duration(0, 1000000), false).$low >>> 0)); - identity = new pskIdentity.ptr(session.sessionTicket, ticketAge + session.ageAdd >>> 0); - hello.pskIdentities = new sliceType$17([$clone(identity, pskIdentity)]); + _r$8 = $clone(_r$7, time.Time).Sub($clone(time.Unix(((x$4 = session.createdAt, new $Int64(x$4.$high, x$4.$low))), new $Int64(0, 0)), time.Time)); /* */ $s = 17; case 17: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + ticketAge = _r$8; + identity = new pskIdentity.ptr(cs.ticket, (($div64(ticketAge, new time.Duration(0, 1000000), false).$low >>> 0)) + session.ageAdd >>> 0); + hello.pskIdentities = new sliceType$18([$clone(identity, pskIdentity)]); hello.pskBinders = new sliceType$11([$makeSlice(sliceType$6, new crypto.Hash(cipherSuite$1.hash).Size())]); - _r$9 = cipherSuite$1.expandLabel(session.masterSecret, "resumption", session.nonce, new crypto.Hash(cipherSuite$1.hash).Size()); /* */ $s = 18; case 18: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - psk = _r$9; - _r$10 = cipherSuite$1.extract(psk, sliceType$6.nil); /* */ $s = 19; case 19: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - earlySecret = _r$10; - _r$11 = cipherSuite$1.deriveSecret(earlySecret, "res binder", $ifaceNil); /* */ $s = 20; case 20: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - binderKey = _r$11; - _r$12 = new crypto.Hash(cipherSuite$1.hash).New(); /* */ $s = 21; case 21: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - transcript = _r$12; - _r$13 = hello.marshalWithoutBinders(); /* */ $s = 22; case 22: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - _tuple$1 = _r$13; + _r$9 = cipherSuite$1.extract(session.secret, sliceType$6.nil); /* */ $s = 18; case 18: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + earlySecret = _r$9; + _r$10 = cipherSuite$1.deriveSecret(earlySecret, "res binder", $ifaceNil); /* */ $s = 19; case 19: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + binderKey = _r$10; + _r$11 = new crypto.Hash(cipherSuite$1.hash).New(); /* */ $s = 20; case 20: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + transcript = _r$11; + _r$12 = hello.marshalWithoutBinders(); /* */ $s = 21; case 21: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _tuple$1 = _r$12; helloBytes = _tuple$1[0]; err = _tuple$1[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { - _tmp$55 = ""; - _tmp$56 = ptrType$39.nil; - _tmp$57 = sliceType$6.nil; - _tmp$58 = sliceType$6.nil; - _tmp$59 = err; - cacheKey = _tmp$55; - session = _tmp$56; - earlySecret = _tmp$57; - binderKey = _tmp$58; - err = _tmp$59; - $s = -1; return [cacheKey, session, earlySecret, binderKey, err]; - } - _r$14 = transcript.Write(helloBytes); /* */ $s = 23; case 23: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - _r$14; - _r$15 = cipherSuite$1.finishedHash(binderKey, transcript); /* */ $s = 24; case 24: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - pskBinders = new sliceType$11([_r$15]); - _r$16 = hello.updateBinders(pskBinders); /* */ $s = 25; case 25: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - err$2 = _r$16; + _tmp$48 = ptrType$21.nil; + _tmp$49 = sliceType$6.nil; + _tmp$50 = sliceType$6.nil; + _tmp$51 = err; + session = _tmp$48; + earlySecret = _tmp$49; + binderKey = _tmp$50; + err = _tmp$51; + $s = -1; return [session, earlySecret, binderKey, err]; + } + _r$13 = transcript.Write(helloBytes); /* */ $s = 22; case 22: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _r$13; + _r$14 = cipherSuite$1.finishedHash(binderKey, transcript); /* */ $s = 23; case 23: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + pskBinders = new sliceType$11([_r$14]); + _r$15 = hello.updateBinders(pskBinders); /* */ $s = 24; case 24: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + err$2 = _r$15; if (!($interfaceIsEqual(err$2, $ifaceNil))) { - _tmp$60 = ""; - _tmp$61 = ptrType$39.nil; - _tmp$62 = sliceType$6.nil; - _tmp$63 = sliceType$6.nil; - _tmp$64 = err$2; - cacheKey = _tmp$60; - session = _tmp$61; - earlySecret = _tmp$62; - binderKey = _tmp$63; - err = _tmp$64; - $s = -1; return [cacheKey, session, earlySecret, binderKey, err]; - } - $s = -1; return [cacheKey, session, earlySecret, binderKey, err]; - /* */ } return; } var $f = {$blk: loadSession, $c: true, $r, _i, _i$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$32, _tmp$33, _tmp$34, _tmp$35, _tmp$36, _tmp$37, _tmp$38, _tmp$39, _tmp$4, _tmp$40, _tmp$41, _tmp$42, _tmp$43, _tmp$44, _tmp$45, _tmp$46, _tmp$47, _tmp$48, _tmp$49, _tmp$5, _tmp$50, _tmp$51, _tmp$52, _tmp$53, _tmp$54, _tmp$55, _tmp$56, _tmp$57, _tmp$58, _tmp$59, _tmp$6, _tmp$60, _tmp$61, _tmp$62, _tmp$63, _tmp$64, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, binderKey, c, cacheKey, cipherSuite$1, cipherSuiteOk$1, earlySecret, err, err$1, err$2, hello, helloBytes, identity, offeredID, offeredSuite, ok, psk, pskBinders, serverCert, session, ticketAge, transcript, v, versOk, x, x$1, $s};return $f; + _tmp$52 = ptrType$21.nil; + _tmp$53 = sliceType$6.nil; + _tmp$54 = sliceType$6.nil; + _tmp$55 = err$2; + session = _tmp$52; + earlySecret = _tmp$53; + binderKey = _tmp$54; + err = _tmp$55; + $s = -1; return [session, earlySecret, binderKey, err]; + } + $s = -1; return [session, earlySecret, binderKey, err]; + /* */ } return; } var $f = {$blk: loadSession, $c: true, $r, _i, _i$1, _i$2, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$32, _tmp$33, _tmp$34, _tmp$35, _tmp$36, _tmp$37, _tmp$38, _tmp$39, _tmp$4, _tmp$40, _tmp$41, _tmp$42, _tmp$43, _tmp$44, _tmp$45, _tmp$46, _tmp$47, _tmp$48, _tmp$49, _tmp$5, _tmp$50, _tmp$51, _tmp$52, _tmp$53, _tmp$54, _tmp$55, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, alpn, binderKey, c, cacheKey, cipherSuite$1, cipherSuiteOk$1, cs, earlySecret, err, err$1, err$2, hello, helloBytes, identity, offeredID, offeredSuite, ok, pskBinders, session, ticketAge, transcript, v, versOk, x, x$1, x$2, x$3, x$4, $s};return $f; }; $ptrType(Conn).prototype.pickTLSVersion = function pickTLSVersion(serverHello) { var {$24r, _r, _r$1, _tuple, c, ok, peerVersion, serverHello, vers, $s, $r, $c} = $restore(this, {serverHello}); @@ -260190,13 +262397,13 @@ $packages["crypto/tls"] = (function() { /* } */ case 2: c.vers = vers; c.haveVers = true; - c.in$28.version = vers; + c.in$30.version = vers; c.out.version = vers; $s = -1; return $ifaceNil; /* */ } return; } var $f = {$blk: pickTLSVersion, $c: true, $r, $24r, _r, _r$1, _tuple, c, ok, peerVersion, serverHello, vers, $s};return $f; }; $ptrType(clientHandshakeState).prototype.handshake = function handshake$3() { - var {_r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, c, err, err$1, err$10, err$11, err$12, err$13, err$14, err$2, err$3, err$4, err$5, err$6, err$7, err$8, err$9, hs, isResume, $s, $r, $c} = $restore(this, {}); + var {_r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, c, err, err$1, err$10, err$11, err$12, err$13, err$14, err$15, err$2, err$3, err$4, err$5, err$6, err$7, err$8, err$9, hs, isResume, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: hs = this; c = hs.c; @@ -260302,19 +262509,24 @@ $packages["crypto/tls"] = (function() { $s = -1; return err$14; } /* } */ case 7: + _r$17 = hs.saveSessionTicket(); /* */ $s = 25; case 25: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + err$15 = _r$17; + if (!($interfaceIsEqual(err$15, $ifaceNil))) { + $s = -1; return err$15; + } c.ekm = ekmFromMasterSecret(c.vers, hs.suite, hs.masterSecret, hs.hello.random, hs.serverHello.random); c.isHandshakeComplete.Store(true); $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: handshake$3, $c: true, $r, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, c, err, err$1, err$10, err$11, err$12, err$13, err$14, err$2, err$3, err$4, err$5, err$6, err$7, err$8, err$9, hs, isResume, $s};return $f; + /* */ } return; } var $f = {$blk: handshake$3, $c: true, $r, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, c, err, err$1, err$10, err$11, err$12, err$13, err$14, err$15, err$2, err$3, err$4, err$5, err$6, err$7, err$8, err$9, hs, isResume, $s};return $f; }; $ptrType(clientHandshakeState).prototype.pickCipherSuite = function pickCipherSuite$1() { var {_r, hs, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: hs = this; hs.suite = mutualCipherSuite(hs.hello.cipherSuites, hs.serverHello.cipherSuite); - /* */ if (hs.suite === ptrType$3.nil) { $s = 1; continue; } + /* */ if (hs.suite === ptrType$2.nil) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (hs.suite === ptrType$3.nil) { */ case 1: + /* if (hs.suite === ptrType$2.nil) { */ case 1: _r = hs.c.sendAlert(40); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _r; $s = -1; return errors.New("tls: server chose an unconfigured cipher suite"); @@ -260324,7 +262536,7 @@ $packages["crypto/tls"] = (function() { /* */ } return; } var $f = {$blk: pickCipherSuite$1, $c: true, $r, _r, hs, $s};return $f; }; $ptrType(clientHandshakeState).prototype.doFullHandshake = function doFullHandshake$1() { - var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, c, certMsg, certReq, certRequested, certVerify, chainToSend, ckx, cri, cs, err, err$1, err$2, err$3, err$4, err$5, err$6, hs, key, keyAgreement$1, msg, ok, ok$1, preMasterSecret, shd, sigHash, sigType, signOpts, signatureAlgorithm, signed, skx, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {}); + var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, _arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, c, certMsg, certReq, certRequested, certVerify, chainToSend, ckx, cri, cs, err, err$1, err$2, err$3, err$4, err$5, err$6, hs, key, keyAgreement$1, msg, ok, ok$1, preMasterSecret, shd, sigHash, sigType, signOpts, signatureAlgorithm, signed, skx, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: hs = this; c = hs.c; @@ -260335,7 +262547,7 @@ $packages["crypto/tls"] = (function() { if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return err; } - _tuple$1 = $assertType(msg, ptrType$35, true); + _tuple$1 = $assertType(msg, ptrType$40, true); certMsg = _tuple$1[0]; ok = _tuple$1[1]; /* */ if (!ok || (certMsg.certificates.$length === 0)) { $s = 2; continue; } @@ -260354,7 +262566,7 @@ $packages["crypto/tls"] = (function() { if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return err; } - _tuple$3 = $assertType(msg, ptrType$42, true); + _tuple$3 = $assertType(msg, ptrType$45, true); cs = _tuple$3[0]; ok = _tuple$3[1]; /* */ if (ok) { $s = 8; continue; } @@ -260396,7 +262608,7 @@ $packages["crypto/tls"] = (function() { /* } */ case 16: _r$8 = hs.suite.ka(c.vers); /* */ $s = 21; case 21: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } keyAgreement$1 = _r$8; - _tuple$5 = $assertType(msg, ptrType$24, true); + _tuple$5 = $assertType(msg, ptrType$30, true); skx = _tuple$5[0]; ok = _tuple$5[1]; /* */ if (ok) { $s = 22; continue; } @@ -260419,9 +262631,9 @@ $packages["crypto/tls"] = (function() { $s = -1; return err; } /* } */ case 23: - chainToSend = ptrType$32.nil; + chainToSend = ptrType$34.nil; certRequested = false; - _tuple$7 = $assertType(msg, ptrType$34, true); + _tuple$7 = $assertType(msg, ptrType$39, true); certReq = _tuple$7[0]; ok = _tuple$7[1]; /* */ if (ok) { $s = 29; continue; } @@ -260449,7 +262661,7 @@ $packages["crypto/tls"] = (function() { $s = -1; return err; } /* } */ case 30: - _tuple$10 = $assertType(msg, ptrType$43, true); + _tuple$10 = $assertType(msg, ptrType$48, true); shd = _tuple$10[0]; ok = _tuple$10[1]; /* */ if (!ok) { $s = 37; continue; } @@ -260485,9 +262697,9 @@ $packages["crypto/tls"] = (function() { _r$20; $s = -1; return err; /* } */ case 47: - /* */ if (!(ckx === ptrType$25.nil)) { $s = 49; continue; } + /* */ if (!(ckx === ptrType$31.nil)) { $s = 49; continue; } /* */ $s = 50; continue; - /* if (!(ckx === ptrType$25.nil)) { */ case 49: + /* if (!(ckx === ptrType$31.nil)) { */ case 49: _r$21 = hs.c.writeHandshakeRecord(ckx, hs.finishedHash); /* */ $s = 51; case 51: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } _tuple$13 = _r$21; err$3 = _tuple$13[1]; @@ -260495,109 +262707,123 @@ $packages["crypto/tls"] = (function() { $s = -1; return err$3; } /* } */ case 50: - /* */ if (!(chainToSend === ptrType$32.nil) && chainToSend.Certificate.$length > 0) { $s = 52; continue; } + /* */ if (hs.serverHello.extendedMasterSecret) { $s = 52; continue; } /* */ $s = 53; continue; - /* if (!(chainToSend === ptrType$32.nil) && chainToSend.Certificate.$length > 0) { */ case 52: + /* if (hs.serverHello.extendedMasterSecret) { */ case 52: + c.extMasterSecret = true; + _arg = c.vers; + _arg$1 = hs.suite; + _arg$2 = preMasterSecret; + _r$22 = $clone(hs.finishedHash, finishedHash).Sum(); /* */ $s = 55; case 55: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + _arg$3 = _r$22; + _r$23 = extMasterFromPreMasterSecret(_arg, _arg$1, _arg$2, _arg$3); /* */ $s = 56; case 56: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + hs.masterSecret = _r$23; + $s = 54; continue; + /* } else { */ case 53: + _r$24 = masterFromPreMasterSecret(c.vers, hs.suite, preMasterSecret, hs.hello.random, hs.serverHello.random); /* */ $s = 57; case 57: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + hs.masterSecret = _r$24; + /* } */ case 54: + _r$25 = c.config.writeKeyLog("CLIENT_RANDOM", hs.hello.random, hs.masterSecret); /* */ $s = 58; case 58: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + err$4 = _r$25; + /* */ if (!($interfaceIsEqual(err$4, $ifaceNil))) { $s = 59; continue; } + /* */ $s = 60; continue; + /* if (!($interfaceIsEqual(err$4, $ifaceNil))) { */ case 59: + _r$26 = c.sendAlert(80); /* */ $s = 61; case 61: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + _r$26; + _r$27 = err$4.Error(); /* */ $s = 62; case 62: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + _r$28 = errors.New("tls: failed to write to key log: " + _r$27); /* */ $s = 63; case 63: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + $24r$2 = _r$28; + $s = 64; case 64: return $24r$2; + /* } */ case 60: + /* */ if (!(chainToSend === ptrType$34.nil) && chainToSend.Certificate.$length > 0) { $s = 65; continue; } + /* */ $s = 66; continue; + /* if (!(chainToSend === ptrType$34.nil) && chainToSend.Certificate.$length > 0) { */ case 65: certVerify = new certificateVerifyMsg.ptr(sliceType$6.nil, false, 0, sliceType$6.nil); _tuple$14 = $assertType(chainToSend.PrivateKey, crypto.Signer, true); key = _tuple$14[0]; ok$1 = _tuple$14[1]; - /* */ if (!ok$1) { $s = 54; continue; } - /* */ $s = 55; continue; - /* if (!ok$1) { */ case 54: - _r$22 = c.sendAlert(80); /* */ $s = 56; case 56: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _r$22; - _r$23 = fmt.Errorf("tls: client certificate private key of type %T does not implement crypto.Signer", new sliceType$7([chainToSend.PrivateKey])); /* */ $s = 57; case 57: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - $24r$2 = _r$23; - $s = 58; case 58: return $24r$2; - /* } */ case 55: + /* */ if (!ok$1) { $s = 67; continue; } + /* */ $s = 68; continue; + /* if (!ok$1) { */ case 67: + _r$29 = c.sendAlert(80); /* */ $s = 69; case 69: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + _r$29; + _r$30 = fmt.Errorf("tls: client certificate private key of type %T does not implement crypto.Signer", new sliceType$7([chainToSend.PrivateKey])); /* */ $s = 70; case 70: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } + $24r$3 = _r$30; + $s = 71; case 71: return $24r$3; + /* } */ case 68: sigType = 0; sigHash = 0; - /* */ if (c.vers >= 771) { $s = 59; continue; } - /* */ $s = 60; continue; - /* if (c.vers >= 771) { */ case 59: - _r$24 = selectSignatureScheme(c.vers, chainToSend, certReq.supportedSignatureAlgorithms); /* */ $s = 62; case 62: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - _tuple$15 = _r$24; + /* */ if (c.vers >= 771) { $s = 72; continue; } + /* */ $s = 73; continue; + /* if (c.vers >= 771) { */ case 72: + _r$31 = selectSignatureScheme(c.vers, chainToSend, certReq.supportedSignatureAlgorithms); /* */ $s = 75; case 75: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } + _tuple$15 = _r$31; signatureAlgorithm = _tuple$15[0]; - err$4 = _tuple$15[1]; - /* */ if (!($interfaceIsEqual(err$4, $ifaceNil))) { $s = 63; continue; } - /* */ $s = 64; continue; - /* if (!($interfaceIsEqual(err$4, $ifaceNil))) { */ case 63: - _r$25 = c.sendAlert(47); /* */ $s = 65; case 65: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - _r$25; - $s = -1; return err$4; - /* } */ case 64: - _r$26 = typeAndHashFromSignatureScheme(signatureAlgorithm); /* */ $s = 66; case 66: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - _tuple$16 = _r$26; + err$5 = _tuple$15[1]; + /* */ if (!($interfaceIsEqual(err$5, $ifaceNil))) { $s = 76; continue; } + /* */ $s = 77; continue; + /* if (!($interfaceIsEqual(err$5, $ifaceNil))) { */ case 76: + _r$32 = c.sendAlert(47); /* */ $s = 78; case 78: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } + _r$32; + $s = -1; return err$5; + /* } */ case 77: + _r$33 = typeAndHashFromSignatureScheme(signatureAlgorithm); /* */ $s = 79; case 79: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } + _tuple$16 = _r$33; sigType = _tuple$16[0]; sigHash = _tuple$16[1]; - err$4 = _tuple$16[2]; - /* */ if (!($interfaceIsEqual(err$4, $ifaceNil))) { $s = 67; continue; } - /* */ $s = 68; continue; - /* if (!($interfaceIsEqual(err$4, $ifaceNil))) { */ case 67: - _r$27 = c.sendAlert(80); /* */ $s = 69; case 69: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - $24r$3 = _r$27; - $s = 70; case 70: return $24r$3; - /* } */ case 68: + err$5 = _tuple$16[2]; + /* */ if (!($interfaceIsEqual(err$5, $ifaceNil))) { $s = 80; continue; } + /* */ $s = 81; continue; + /* if (!($interfaceIsEqual(err$5, $ifaceNil))) { */ case 80: + _r$34 = c.sendAlert(80); /* */ $s = 82; case 82: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } + $24r$4 = _r$34; + $s = 83; case 83: return $24r$4; + /* } */ case 81: certVerify.hasSignatureAlgorithm = true; certVerify.signatureAlgorithm = signatureAlgorithm; - $s = 61; continue; - /* } else { */ case 60: - _r$28 = key.Public(); /* */ $s = 71; case 71: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - _r$29 = legacyTypeAndHashFromPublicKey(_r$28); /* */ $s = 72; case 72: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } - _tuple$17 = _r$29; + $s = 74; continue; + /* } else { */ case 73: + _r$35 = key.Public(); /* */ $s = 84; case 84: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } + _r$36 = legacyTypeAndHashFromPublicKey(_r$35); /* */ $s = 85; case 85: if($c) { $c = false; _r$36 = _r$36.$blk(); } if (_r$36 && _r$36.$blk !== undefined) { break s; } + _tuple$17 = _r$36; sigType = _tuple$17[0]; sigHash = _tuple$17[1]; err = _tuple$17[2]; - /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 73; continue; } - /* */ $s = 74; continue; - /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 73: - _r$30 = c.sendAlert(47); /* */ $s = 75; case 75: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } - _r$30; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 86; continue; } + /* */ $s = 87; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 86: + _r$37 = c.sendAlert(47); /* */ $s = 88; case 88: if($c) { $c = false; _r$37 = _r$37.$blk(); } if (_r$37 && _r$37.$blk !== undefined) { break s; } + _r$37; $s = -1; return err; - /* } */ case 74: - /* } */ case 61: - _r$31 = $clone(hs.finishedHash, finishedHash).hashForClientCertificate(sigType, sigHash); /* */ $s = 76; case 76: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } - signed = _r$31; + /* } */ case 87: + /* } */ case 74: + _r$38 = $clone(hs.finishedHash, finishedHash).hashForClientCertificate(sigType, sigHash); /* */ $s = 89; case 89: if($c) { $c = false; _r$38 = _r$38.$blk(); } if (_r$38 && _r$38.$blk !== undefined) { break s; } + signed = _r$38; signOpts = (new crypto.Hash(sigHash)); if (sigType === 226) { signOpts = new rsa.PSSOptions.ptr(-1, sigHash); } - _r$32 = key.Sign(c.config.rand(), signed, signOpts); /* */ $s = 77; case 77: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } - _tuple$18 = _r$32; + _r$39 = key.Sign(c.config.rand(), signed, signOpts); /* */ $s = 90; case 90: if($c) { $c = false; _r$39 = _r$39.$blk(); } if (_r$39 && _r$39.$blk !== undefined) { break s; } + _tuple$18 = _r$39; certVerify.signature = _tuple$18[0]; err = _tuple$18[1]; - /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 78; continue; } - /* */ $s = 79; continue; - /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 78: - _r$33 = c.sendAlert(80); /* */ $s = 80; case 80: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } - _r$33; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 91; continue; } + /* */ $s = 92; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 91: + _r$40 = c.sendAlert(80); /* */ $s = 93; case 93: if($c) { $c = false; _r$40 = _r$40.$blk(); } if (_r$40 && _r$40.$blk !== undefined) { break s; } + _r$40; $s = -1; return err; - /* } */ case 79: - _r$34 = hs.c.writeHandshakeRecord(certVerify, hs.finishedHash); /* */ $s = 81; case 81: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } - _tuple$19 = _r$34; - err$5 = _tuple$19[1]; - if (!($interfaceIsEqual(err$5, $ifaceNil))) { - $s = -1; return err$5; + /* } */ case 92: + _r$41 = hs.c.writeHandshakeRecord(certVerify, hs.finishedHash); /* */ $s = 94; case 94: if($c) { $c = false; _r$41 = _r$41.$blk(); } if (_r$41 && _r$41.$blk !== undefined) { break s; } + _tuple$19 = _r$41; + err$6 = _tuple$19[1]; + if (!($interfaceIsEqual(err$6, $ifaceNil))) { + $s = -1; return err$6; } - /* } */ case 53: - _r$35 = masterFromPreMasterSecret(c.vers, hs.suite, preMasterSecret, hs.hello.random, hs.serverHello.random); /* */ $s = 82; case 82: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } - hs.masterSecret = _r$35; - _r$36 = c.config.writeKeyLog("CLIENT_RANDOM", hs.hello.random, hs.masterSecret); /* */ $s = 83; case 83: if($c) { $c = false; _r$36 = _r$36.$blk(); } if (_r$36 && _r$36.$blk !== undefined) { break s; } - err$6 = _r$36; - /* */ if (!($interfaceIsEqual(err$6, $ifaceNil))) { $s = 84; continue; } - /* */ $s = 85; continue; - /* if (!($interfaceIsEqual(err$6, $ifaceNil))) { */ case 84: - _r$37 = c.sendAlert(80); /* */ $s = 86; case 86: if($c) { $c = false; _r$37 = _r$37.$blk(); } if (_r$37 && _r$37.$blk !== undefined) { break s; } - _r$37; - _r$38 = err$6.Error(); /* */ $s = 87; case 87: if($c) { $c = false; _r$38 = _r$38.$blk(); } if (_r$38 && _r$38.$blk !== undefined) { break s; } - _r$39 = errors.New("tls: failed to write to key log: " + _r$38); /* */ $s = 88; case 88: if($c) { $c = false; _r$39 = _r$39.$blk(); } if (_r$39 && _r$39.$blk !== undefined) { break s; } - $24r$4 = _r$39; - $s = 89; case 89: return $24r$4; - /* } */ case 85: + /* } */ case 66: hs.finishedHash.discardHandshakeBuffer(); $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: doFullHandshake$1, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, c, certMsg, certReq, certRequested, certVerify, chainToSend, ckx, cri, cs, err, err$1, err$2, err$3, err$4, err$5, err$6, hs, key, keyAgreement$1, msg, ok, ok$1, preMasterSecret, shd, sigHash, sigType, signOpts, signatureAlgorithm, signed, skx, x, x$1, x$2, x$3, $s};return $f; + /* */ } return; } var $f = {$blk: doFullHandshake$1, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, _arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, c, certMsg, certReq, certRequested, certVerify, chainToSend, ckx, cri, cs, err, err$1, err$2, err$3, err$4, err$5, err$6, hs, key, keyAgreement$1, msg, ok, ok$1, preMasterSecret, shd, sigHash, sigType, signOpts, signatureAlgorithm, signed, skx, x, x$1, x$2, x$3, $s};return $f; }; $ptrType(clientHandshakeState).prototype.establishKeys = function establishKeys$1() { var {_r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, c, clientCipher, clientHash, clientIV, clientKey, clientMAC, hs, serverCipher, serverHash, serverIV, serverKey, serverMAC, $s, $r, $c} = $restore(this, {}); @@ -260638,7 +262864,7 @@ $packages["crypto/tls"] = (function() { _r$6 = hs.suite.aead(serverKey, serverIV); /* */ $s = 10; case 10: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } serverCipher = _r$6; /* } */ case 4: - c.in$28.prepareCipherSpec(c.vers, serverCipher, serverHash); + c.in$30.prepareCipherSpec(c.vers, serverCipher, serverHash); c.out.prepareCipherSpec(c.vers, clientCipher, clientHash); $s = -1; return $ifaceNil; /* */ } return; } var $f = {$blk: establishKeys$1, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, c, clientCipher, clientHash, clientIV, clientKey, clientMAC, hs, serverCipher, serverHash, serverIV, serverKey, serverMAC, $s};return $f; @@ -260646,10 +262872,10 @@ $packages["crypto/tls"] = (function() { $ptrType(clientHandshakeState).prototype.serverResumedSession = function serverResumedSession() { var hs; hs = this; - return !(hs.session === ptrType$39.nil) && !(hs.hello.sessionId === sliceType$6.nil) && bytes.Equal(hs.serverHello.sessionId, hs.hello.sessionId); + return !(hs.session === ptrType$21.nil) && !(hs.hello.sessionId === sliceType$6.nil) && bytes.Equal(hs.serverHello.sessionId, hs.hello.sessionId); }; $ptrType(clientHandshakeState).prototype.processServerHello = function processServerHello$1() { - var {_r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, c, err, err$1, expectedSecureRenegotiation, hs, $s, $r, $c} = $restore(this, {}); + var {_r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, c, err, err$1, expectedSecureRenegotiation, hs, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: hs = this; c = hs.c; @@ -260680,7 +262906,7 @@ $packages["crypto/tls"] = (function() { /* */ if (c.handshakes > 0 && c.secureRenegotiation) { $s = 10; continue; } /* */ $s = 11; continue; /* if (c.handshakes > 0 && c.secureRenegotiation) { */ case 10: - expectedSecureRenegotiation = arrayType$5.zero(); + expectedSecureRenegotiation = arrayType$6.zero(); $copySlice(new sliceType$6(expectedSecureRenegotiation), new sliceType$6(c.clientFinished)); $copySlice($subslice(new sliceType$6(expectedSecureRenegotiation), 12), new sliceType$6(c.serverFinished)); /* */ if (!bytes.Equal(hs.serverHello.secureRenegotiation, new sliceType$6(expectedSecureRenegotiation))) { $s = 12; continue; } @@ -260691,7 +262917,7 @@ $packages["crypto/tls"] = (function() { $s = -1; return [false, errors.New("tls: incorrect renegotiation extension contents")]; /* } */ case 13: /* } */ case 11: - err$1 = checkALPN(hs.hello.alpnProtocols, hs.serverHello.alpnProtocol); + err$1 = checkALPN(hs.hello.alpnProtocols, hs.serverHello.alpnProtocol, false); /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 15; continue; } /* */ $s = 16; continue; /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 15: @@ -260704,9 +262930,9 @@ $packages["crypto/tls"] = (function() { if (!hs.serverResumedSession()) { $s = -1; return [false, $ifaceNil]; } - /* */ if (!((hs.session.vers === c.vers))) { $s = 18; continue; } + /* */ if (!((hs.session.version === c.vers))) { $s = 18; continue; } /* */ $s = 19; continue; - /* if (!((hs.session.vers === c.vers))) { */ case 18: + /* if (!((hs.session.version === c.vers))) { */ case 18: _r$5 = c.sendAlert(40); /* */ $s = 20; case 20: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _r$5; $s = -1; return [false, errors.New("tls: server resumed a session with a different version")]; @@ -260718,19 +262944,31 @@ $packages["crypto/tls"] = (function() { _r$6; $s = -1; return [false, errors.New("tls: server resumed a session with a different cipher suite")]; /* } */ case 22: - hs.masterSecret = hs.session.masterSecret; - c.peerCertificates = hs.session.serverCertificates; + /* */ if (!(hs.session.extMasterSecret === hs.serverHello.extendedMasterSecret)) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (!(hs.session.extMasterSecret === hs.serverHello.extendedMasterSecret)) { */ case 24: + _r$7 = c.sendAlert(40); /* */ $s = 26; case 26: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$7; + $s = -1; return [false, errors.New("tls: server resumed a session with a different EMS extension")]; + /* } */ case 25: + hs.masterSecret = hs.session.secret; + c.extMasterSecret = hs.session.extMasterSecret; + c.peerCertificates = hs.session.peerCertificates; + c.activeCertHandles = hs.c.activeCertHandles; c.verifiedChains = hs.session.verifiedChains; c.ocspResponse = hs.session.ocspResponse; if ((c.scts.$length === 0) && !((hs.session.scts.$length === 0))) { c.scts = hs.session.scts; } $s = -1; return [true, $ifaceNil]; - /* */ } return; } var $f = {$blk: processServerHello$1, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, c, err, err$1, expectedSecureRenegotiation, hs, $s};return $f; + /* */ } return; } var $f = {$blk: processServerHello$1, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, c, err, err$1, expectedSecureRenegotiation, hs, $s};return $f; }; - checkALPN = function checkALPN$1(clientProtos, serverProto) { - var _i, _ref, clientProtos, proto, serverProto; + checkALPN = function checkALPN$1(clientProtos, serverProto, quic) { + var _i, _ref, clientProtos, proto, quic, serverProto; if (serverProto === "") { + if (quic && clientProtos.$length > 0) { + return errors.New("tls: server did not select an ALPN protocol"); + } return $ifaceNil; } if (clientProtos.$length === 0) { @@ -260765,7 +263003,7 @@ $packages["crypto/tls"] = (function() { if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return err$1; } - _tuple$1 = $assertType(msg, ptrType$30, true); + _tuple$1 = $assertType(msg, ptrType$37, true); serverFinished = _tuple$1[0]; ok = _tuple$1[1]; /* */ if (!ok) { $s = 3; continue; } @@ -260803,30 +263041,62 @@ $packages["crypto/tls"] = (function() { $s = -1; return $ifaceNil; } c = hs.c; - _r = c.readHandshake(hs.finishedHash); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; + /* */ if (!hs.hello.ticketSupported) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!hs.hello.ticketSupported) { */ case 1: + _r = c.sendAlert(47); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + $s = -1; return errors.New("tls: server sent unrequested session ticket"); + /* } */ case 2: + _r$1 = c.readHandshake(hs.finishedHash); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; msg = _tuple[0]; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return err; } - _tuple$1 = $assertType(msg, ptrType$44, true); + _tuple$1 = $assertType(msg, ptrType$49, true); sessionTicketMsg = _tuple$1[0]; ok = _tuple$1[1]; - /* */ if (!ok) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!ok) { */ case 2: - _r$1 = c.sendAlert(10); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - _r$2 = unexpectedMessageError(sessionTicketMsg, msg); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 6; case 6: return $24r; - /* } */ case 3: - _r$3 = c.config.time(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - hs.session = new ClientSessionState.ptr(sessionTicketMsg.ticket, c.vers, hs.suite.id, hs.masterSecret, c.peerCertificates, c.verifiedChains, $clone(_r$3, time.Time), c.ocspResponse, c.scts, sliceType$6.nil, new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$9.nil), 0); + /* */ if (!ok) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!ok) { */ case 5: + _r$2 = c.sendAlert(10); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + _r$3 = unexpectedMessageError(sessionTicketMsg, msg); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3; + $s = 9; case 9: return $24r; + /* } */ case 6: + hs.ticket = sessionTicketMsg.ticket; $s = -1; return $ifaceNil; /* */ } return; } var $f = {$blk: readSessionTicket, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, c, err, hs, msg, ok, sessionTicketMsg, $s};return $f; }; + $ptrType(clientHandshakeState).prototype.saveSessionTicket = function saveSessionTicket() { + var {_r, _r$1, _tuple, c, cacheKey, cs, err, hs, session, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + hs = this; + if (hs.ticket === sliceType$6.nil) { + $s = -1; return $ifaceNil; + } + c = hs.c; + _r = c.clientSessionCacheKey(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + cacheKey = _r; + if (cacheKey === "") { + $s = -1; return $ifaceNil; + } + _r$1 = c.sessionState(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + session = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + session.secret = hs.masterSecret; + cs = new ClientSessionState.ptr(hs.ticket, session); + $r = c.config.ClientSessionCache.Put(cacheKey, cs); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: saveSessionTicket, $c: true, $r, _r, _r$1, _tuple, c, cacheKey, cs, err, hs, session, $s};return $f; + }; $ptrType(clientHandshakeState).prototype.sendFinished = function sendFinished$1(out) { var {_r, _r$1, _r$2, _tuple, c, err, err$1, finished, hs, out, $s, $r, $c} = $restore(this, {out}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: @@ -260857,18 +263127,27 @@ $packages["crypto/tls"] = (function() { ok = false; _r = tlsmaxrsasize.Value(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } v = _r; - if (!(v === "")) { + /* */ if (!(v === "")) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!(v === "")) { */ case 2: _tuple = strconv.Atoi(v); max$1 = _tuple[0]; err = _tuple[1]; - if ($interfaceIsEqual(err, $ifaceNil)) { + /* */ if ($interfaceIsEqual(err, $ifaceNil)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ($interfaceIsEqual(err, $ifaceNil)) { */ case 4: + /* */ if (!((n <= max$1) === (n <= 8192))) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (!((n <= max$1) === (n <= 8192))) { */ case 6: + $r = tlsmaxrsasize.IncNonDefault(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 7: _tmp = max$1; _tmp$1 = n <= max$1; max = _tmp; ok = _tmp$1; $s = -1; return [max, ok]; - } - } + /* } */ case 5: + /* } */ case 3: _tmp$2 = 8192; _tmp$3 = n <= 8192; max = _tmp$2; @@ -260888,7 +263167,7 @@ $packages["crypto/tls"] = (function() { /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } i = _i; asn1Data = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r = clientCertCache.newCert(asn1Data); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = globalCertCache.newCert(asn1Data); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; cert = _tuple[0]; err = _tuple[1]; @@ -260905,7 +263184,7 @@ $packages["crypto/tls"] = (function() { /* */ if (cert.cert.PublicKeyAlgorithm === 1) { $s = 10; continue; } /* */ $s = 11; continue; /* if (cert.cert.PublicKeyAlgorithm === 1) { */ case 10: - n = $assertType(cert.cert.PublicKey, ptrType$13).N.BitLen(); + n = $assertType(cert.cert.PublicKey, ptrType$14).N.BitLen(); _r$4 = checkKeySize(n); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _tuple$1 = _r$4; max = _tuple$1[0]; @@ -260929,7 +263208,7 @@ $packages["crypto/tls"] = (function() { /* */ $s = 19; continue; /* if (!c.config.InsecureSkipVerify) { */ case 18: _r$7 = c.config.time(); /* */ $s = 20; case 20: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - opts = new x509.VerifyOptions.ptr(c.config.ServerName, x509.NewCertPool(), c.config.RootCAs, $clone(_r$7, time.Time), sliceType$15.nil, 0); + opts = new x509.VerifyOptions.ptr(c.config.ServerName, x509.NewCertPool(), c.config.RootCAs, $clone(_r$7, time.Time), sliceType$16.nil, 0); _ref$1 = $subslice(certs, 1); _i$1 = 0; while (true) { @@ -260952,9 +263231,9 @@ $packages["crypto/tls"] = (function() { /* } */ case 23: /* } */ case 19: _ref$2 = (0 >= certs.$length ? ($throwRuntimeError("index out of range"), undefined) : certs.$array[certs.$offset + 0]).PublicKey; - /* */ if ($assertType(_ref$2, ptrType$13, true)[1] || $assertType(_ref$2, ptrType$14, true)[1] || $assertType(_ref$2, ed25519.PublicKey, true)[1]) { $s = 25; continue; } + /* */ if ($assertType(_ref$2, ptrType$14, true)[1] || $assertType(_ref$2, ptrType$15, true)[1] || $assertType(_ref$2, ed25519.PublicKey, true)[1]) { $s = 25; continue; } /* */ $s = 26; continue; - /* switch (0) { default: if ($assertType(_ref$2, ptrType$13, true)[1] || $assertType(_ref$2, ptrType$14, true)[1] || $assertType(_ref$2, ed25519.PublicKey, true)[1]) { */ case 25: + /* switch (0) { default: if ($assertType(_ref$2, ptrType$14, true)[1] || $assertType(_ref$2, ptrType$15, true)[1] || $assertType(_ref$2, ed25519.PublicKey, true)[1]) { */ case 25: /* break; */ $s = 27; continue; $s = 27; continue; /* } else { */ case 26: @@ -261081,22 +263360,30 @@ $packages["crypto/tls"] = (function() { } $s = -1; return [chain[0], $ifaceNil]; case 6: - $s = -1; return [new Certificate.ptr(sliceType$11.nil, $ifaceNil, sliceType.nil, sliceType$6.nil, sliceType$11.nil, ptrType$6.nil), $ifaceNil]; + $s = -1; return [new Certificate.ptr(sliceType$11.nil, $ifaceNil, sliceType.nil, sliceType$6.nil, sliceType$11.nil, ptrType$7.nil), $ifaceNil]; /* */ } return; } var $f = {$blk: getClientCertificate, $c: true, $r, $24r, _i, _r, _r$1, _ref, c, chain, cri, err, $s};return $f; }; - clientSessionCacheKey = function clientSessionCacheKey$1(serverAddr, config) { - var {$24r, _r, config, serverAddr, $s, $r, $c} = $restore(this, {serverAddr, config}); + $ptrType(Conn).prototype.clientSessionCacheKey = function clientSessionCacheKey() { + var {$24r, _r, _r$1, c, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (config.ServerName.length > 0) { - $s = -1; return config.ServerName; + c = this; + if (c.config.ServerName.length > 0) { + $s = -1; return c.config.ServerName; } - _r = serverAddr.String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: clientSessionCacheKey$1, $c: true, $r, $24r, _r, config, serverAddr, $s};return $f; + /* */ if (!($interfaceIsEqual(c.conn, $ifaceNil))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!($interfaceIsEqual(c.conn, $ifaceNil))) { */ case 1: + _r = c.conn.RemoteAddr(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = _r.String(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 5; case 5: return $24r; + /* } */ case 2: + $s = -1; return ""; + /* */ } return; } var $f = {$blk: clientSessionCacheKey, $c: true, $r, $24r, _r, _r$1, c, $s};return $f; }; hostnameInSNI = function hostnameInSNI$1(name) { - var host, i, name; + var {_r, host, i, name, $s, $r, $c} = $restore(this, {name}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: host = name; if (host.length > 0 && (host.charCodeAt(0) === 91) && (host.charCodeAt((host.length - 1 >> 0)) === 93)) { host = $substring(host, 1, (host.length - 1 >> 0)); @@ -261105,14 +263392,18 @@ $packages["crypto/tls"] = (function() { if (i > 0) { host = $substring(host, 0, i); } - if (!(net.ParseIP(host) === net.IP.nil)) { - return ""; - } + _r = net.ParseIP(host); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!(_r === net.IP.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(_r === net.IP.nil)) { */ case 1: + $s = -1; return ""; + /* } */ case 2: while (true) { if (!(name.length > 0 && (name.charCodeAt((name.length - 1 >> 0)) === 46))) { break; } name = $substring(name, 0, (name.length - 1 >> 0)); } - return name; + $s = -1; return name; + /* */ } return; } var $f = {$blk: hostnameInSNI$1, $c: true, $r, _r, host, i, name, $s};return $f; }; $ptrType(Conn).prototype.LocalAddr = function LocalAddr() { var {$24r, _r, c, $s, $r, $c} = $restore(this, {}); @@ -261232,11 +263523,12 @@ $packages["crypto/tls"] = (function() { } return $ifaceNil; }; - $ptrType(halfConn).prototype.setTrafficSecret = function setTrafficSecret(suite, secret) { - var {_i, _r, _r$1, _ref, _tuple, hc, i, iv, key, secret, suite, x, $s, $r, $c} = $restore(this, {suite, secret}); + $ptrType(halfConn).prototype.setTrafficSecret = function setTrafficSecret(suite, level, secret) { + var {_i, _r, _r$1, _ref, _tuple, hc, i, iv, key, level, secret, suite, x, $s, $r, $c} = $restore(this, {suite, level, secret}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: hc = this; hc.trafficSecret = secret; + hc.level = level; _r = suite.trafficKey(secret); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; key = _tuple[0]; @@ -261252,7 +263544,7 @@ $packages["crypto/tls"] = (function() { _i++; } $s = -1; return; - /* */ } return; } var $f = {$blk: setTrafficSecret, $c: true, $r, _i, _r, _r$1, _ref, _tuple, hc, i, iv, key, secret, suite, x, $s};return $f; + /* */ } return; } var $f = {$blk: setTrafficSecret, $c: true, $r, _i, _r, _r$1, _ref, _tuple, hc, i, iv, key, level, secret, suite, x, $s};return $f; }; $ptrType(halfConn).prototype.incSeq = function incSeq() { var hc, i, x, x$1, x$2; @@ -261610,7 +263902,7 @@ $packages["crypto/tls"] = (function() { RecordHeaderError.prototype.Error = function(...$args) { return this.$val.Error(...$args); }; $ptrType(Conn).prototype.newRecordHeaderError = function newRecordHeaderError(conn, msg) { var c, conn, err, msg; - err = new RecordHeaderError.ptr("", arrayType$6.zero(), $ifaceNil); + err = new RecordHeaderError.ptr("", arrayType$7.zero(), $ifaceNil); c = this; err.Msg = msg; err.Conn = conn; @@ -261637,17 +263929,20 @@ $packages["crypto/tls"] = (function() { /* */ } return; } var $f = {$blk: readChangeCipherSpec, $c: true, $r, $24r, _r, c, $s};return $f; }; $ptrType(Conn).prototype.readRecordOrCCS = function readRecordOrCCS(expectChangeCipherSpec) { - var {$24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$13, $24r$14, $24r$15, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _1, _2, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _v, _v$1, c, data, e, e$1, err, err$1, err$2, err$3, expectChangeCipherSpec, handshakeComplete, hdr, msg, msg$1, n, ok, ok$1, record, typ, vers, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {expectChangeCipherSpec}); + var {$24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$13, $24r$14, $24r$15, $24r$16, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _1, _2, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _v, _v$1, c, data, e, e$1, err, err$1, err$2, err$3, expectChangeCipherSpec, expectedVers, handshakeComplete, hdr, msg, msg$1, n, ok, ok$1, record, typ, vers, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {expectChangeCipherSpec}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: c = this; - if (!($interfaceIsEqual(c.in$28.err, $ifaceNil))) { - $s = -1; return c.in$28.err; + if (!($interfaceIsEqual(c.in$30.err, $ifaceNil))) { + $s = -1; return c.in$30.err; } handshakeComplete = c.isHandshakeComplete.Load(); if (!((c.input.Len() === 0))) { - $s = -1; return c.in$28.setErrorLocked(errors.New("tls: internal error: attempted to read record with pending application data")); + $s = -1; return c.in$30.setErrorLocked(errors.New("tls: internal error: attempted to read record with pending application data")); } c.input.Reset(sliceType$6.nil); + if (!(c.quic === ptrType$5.nil)) { + $s = -1; return c.in$30.setErrorLocked(errors.New("tls: internal error: attempted to read record with QUIC transport")); + } _r = c.readFromUntil(c.conn, 5); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; } @@ -261665,7 +263960,7 @@ $packages["crypto/tls"] = (function() { /* */ if (_v) { $s = 4; continue; } /* */ $s = 5; continue; /* if (_v) { */ case 4: - c.in$28.setErrorLocked(err); + c.in$30.setErrorLocked(err); /* } */ case 5: $s = -1; return err; /* } */ case 3: @@ -261676,22 +263971,26 @@ $packages["crypto/tls"] = (function() { /* if (!handshakeComplete && (typ === 128)) { */ case 8: _r$2 = c.sendAlert(70); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _r$2; - $s = -1; return c.in$28.setErrorLocked((x = c.newRecordHeaderError($ifaceNil, "unsupported SSLv2 handshake received"), new x.constructor.elem(x))); + $s = -1; return c.in$30.setErrorLocked((x = c.newRecordHeaderError($ifaceNil, "unsupported SSLv2 handshake received"), new x.constructor.elem(x))); /* } */ case 9: vers = (((((1 >= hdr.$length ? ($throwRuntimeError("index out of range"), undefined) : hdr.$array[hdr.$offset + 1]) << 16 >>> 16)) << 8 << 16 >>> 16) | (((2 >= hdr.$length ? ($throwRuntimeError("index out of range"), undefined) : hdr.$array[hdr.$offset + 2]) << 16 >>> 16))) >>> 0; + expectedVers = c.vers; + if (expectedVers === 772) { + expectedVers = 771; + } n = ((((3 >= hdr.$length ? ($throwRuntimeError("index out of range"), undefined) : hdr.$array[hdr.$offset + 3]) >> 0)) << 8 >> 0) | (((4 >= hdr.$length ? ($throwRuntimeError("index out of range"), undefined) : hdr.$array[hdr.$offset + 4]) >> 0)); - /* */ if (c.haveVers && !((c.vers === 772)) && !((vers === c.vers))) { $s = 11; continue; } + /* */ if (c.haveVers && !((vers === expectedVers))) { $s = 11; continue; } /* */ $s = 12; continue; - /* if (c.haveVers && !((c.vers === 772)) && !((vers === c.vers))) { */ case 11: + /* if (c.haveVers && !((vers === expectedVers))) { */ case 11: _r$3 = c.sendAlert(70); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _r$3; - _r$4 = fmt.Sprintf("received record with version %x when expecting version %x", new sliceType$7([new $Uint16(vers), new $Uint16(c.vers)])); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4 = fmt.Sprintf("received record with version %x when expecting version %x", new sliceType$7([new $Uint16(vers), new $Uint16(expectedVers)])); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } msg = _r$4; - $s = -1; return c.in$28.setErrorLocked((x$1 = c.newRecordHeaderError($ifaceNil, msg), new x$1.constructor.elem(x$1))); + $s = -1; return c.in$30.setErrorLocked((x$1 = c.newRecordHeaderError($ifaceNil, msg), new x$1.constructor.elem(x$1))); /* } */ case 12: if (!c.haveVers) { if ((!((typ === 21)) && !((typ === 22))) || vers >= 4096) { - $s = -1; return c.in$28.setErrorLocked((x$2 = c.newRecordHeaderError(c.conn, "first record does not look like a TLS handshake"), new x$2.constructor.elem(x$2))); + $s = -1; return c.in$30.setErrorLocked((x$2 = c.newRecordHeaderError(c.conn, "first record does not look like a TLS handshake"), new x$2.constructor.elem(x$2))); } } /* */ if ((c.vers === 772) && n > 16640 || n > 18432) { $s = 15; continue; } @@ -261701,7 +264000,7 @@ $packages["crypto/tls"] = (function() { _r$5; _r$6 = fmt.Sprintf("oversized record received with length %d", new sliceType$7([new $Int(n)])); /* */ $s = 18; case 18: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } msg$1 = _r$6; - $s = -1; return c.in$28.setErrorLocked((x$3 = c.newRecordHeaderError($ifaceNil, msg$1), new x$3.constructor.elem(x$3))); + $s = -1; return c.in$30.setErrorLocked((x$3 = c.newRecordHeaderError($ifaceNil, msg$1), new x$3.constructor.elem(x$3))); /* } */ case 16: _r$7 = c.readFromUntil(c.conn, 5 + n >> 0); /* */ $s = 19; case 19: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } err$1 = _r$7; @@ -261717,12 +264016,12 @@ $packages["crypto/tls"] = (function() { /* */ if (_v$1) { $s = 22; continue; } /* */ $s = 23; continue; /* if (_v$1) { */ case 22: - c.in$28.setErrorLocked(err$1); + c.in$30.setErrorLocked(err$1); /* } */ case 23: $s = -1; return err$1; /* } */ case 21: record = c.rawInput.Next(5 + n >> 0); - _r$9 = c.in$28.decrypt(record); /* */ $s = 26; case 26: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$9 = c.in$30.decrypt(record); /* */ $s = 26; case 26: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } _tuple$2 = _r$9; data = _tuple$2[0]; typ = _tuple$2[1]; @@ -261731,7 +264030,7 @@ $packages["crypto/tls"] = (function() { /* */ $s = 28; continue; /* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 27: _r$10 = c.sendAlert($assertType(err$2, alert)); /* */ $s = 29; case 29: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _r$11 = c.in$28.setErrorLocked(_r$10); /* */ $s = 30; case 30: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _r$11 = c.in$30.setErrorLocked(_r$10); /* */ $s = 30; case 30: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } $24r = _r$11; $s = 31; case 31: return $24r; /* } */ case 28: @@ -261739,15 +264038,15 @@ $packages["crypto/tls"] = (function() { /* */ $s = 33; continue; /* if (data.$length > 16384) { */ case 32: _r$12 = c.sendAlert(22); /* */ $s = 34; case 34: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _r$13 = c.in$28.setErrorLocked(_r$12); /* */ $s = 35; case 35: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _r$13 = c.in$30.setErrorLocked(_r$12); /* */ $s = 35; case 35: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } $24r$1 = _r$13; $s = 36; case 36: return $24r$1; /* } */ case 33: - /* */ if ($interfaceIsEqual(c.in$28.cipher, $ifaceNil) && (typ === 23)) { $s = 37; continue; } + /* */ if ($interfaceIsEqual(c.in$30.cipher, $ifaceNil) && (typ === 23)) { $s = 37; continue; } /* */ $s = 38; continue; - /* if ($interfaceIsEqual(c.in$28.cipher, $ifaceNil) && (typ === 23)) { */ case 37: + /* if ($interfaceIsEqual(c.in$30.cipher, $ifaceNil) && (typ === 23)) { */ case 37: _r$14 = c.sendAlert(10); /* */ $s = 39; case 39: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - _r$15 = c.in$28.setErrorLocked(_r$14); /* */ $s = 40; case 40: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + _r$15 = c.in$30.setErrorLocked(_r$14); /* */ $s = 40; case 40: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } $24r$2 = _r$15; $s = 41; case 41: return $24r$2; /* } */ case 38: @@ -261758,7 +264057,7 @@ $packages["crypto/tls"] = (function() { /* */ $s = 43; continue; /* if ((c.vers === 772) && !((typ === 22)) && c.hand.Len() > 0) { */ case 42: _r$16 = c.sendAlert(10); /* */ $s = 44; case 44: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - _r$17 = c.in$28.setErrorLocked(_r$16); /* */ $s = 45; case 45: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + _r$17 = c.in$30.setErrorLocked(_r$16); /* */ $s = 45; case 45: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } $24r$3 = _r$17; $s = 46; case 46: return $24r$3; /* } */ case 43: @@ -261769,118 +264068,126 @@ $packages["crypto/tls"] = (function() { /* */ if (_1 === (22)) { $s = 51; continue; } /* */ $s = 52; continue; /* if (_1 === (21)) { */ case 48: - /* */ if (!((data.$length === 2))) { $s = 54; continue; } + /* */ if (!(c.quic === ptrType$5.nil)) { $s = 54; continue; } /* */ $s = 55; continue; - /* if (!((data.$length === 2))) { */ case 54: + /* if (!(c.quic === ptrType$5.nil)) { */ case 54: _r$18 = c.sendAlert(10); /* */ $s = 56; case 56: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - _r$19 = c.in$28.setErrorLocked(_r$18); /* */ $s = 57; case 57: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + _r$19 = c.in$30.setErrorLocked(_r$18); /* */ $s = 57; case 57: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } $24r$4 = _r$19; $s = 58; case 58: return $24r$4; /* } */ case 55: + /* */ if (!((data.$length === 2))) { $s = 59; continue; } + /* */ $s = 60; continue; + /* if (!((data.$length === 2))) { */ case 59: + _r$20 = c.sendAlert(10); /* */ $s = 61; case 61: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + _r$21 = c.in$30.setErrorLocked(_r$20); /* */ $s = 62; case 62: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + $24r$5 = _r$21; + $s = 63; case 63: return $24r$5; + /* } */ case 60: if ((((1 >= data.$length ? ($throwRuntimeError("index out of range"), undefined) : data.$array[data.$offset + 1]) << 24 >>> 24)) === 0) { - $s = -1; return c.in$28.setErrorLocked(io.EOF); + $s = -1; return c.in$30.setErrorLocked(io.EOF); } if (c.vers === 772) { - $s = -1; return c.in$28.setErrorLocked(new net.OpError.ptr("remote error", "", $ifaceNil, $ifaceNil, new alert((((1 >= data.$length ? ($throwRuntimeError("index out of range"), undefined) : data.$array[data.$offset + 1]) << 24 >>> 24))))); + $s = -1; return c.in$30.setErrorLocked(new net.OpError.ptr("remote error", "", $ifaceNil, $ifaceNil, new alert((((1 >= data.$length ? ($throwRuntimeError("index out of range"), undefined) : data.$array[data.$offset + 1]) << 24 >>> 24))))); } _2 = (0 >= data.$length ? ($throwRuntimeError("index out of range"), undefined) : data.$array[data.$offset + 0]); - /* */ if (_2 === (1)) { $s = 60; continue; } - /* */ if (_2 === (2)) { $s = 61; continue; } - /* */ $s = 62; continue; - /* if (_2 === (1)) { */ case 60: - _r$20 = c.retryReadRecord(expectChangeCipherSpec); /* */ $s = 64; case 64: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - $24r$5 = _r$20; - $s = 65; case 65: return $24r$5; - /* } else if (_2 === (2)) { */ case 61: - $s = -1; return c.in$28.setErrorLocked(new net.OpError.ptr("remote error", "", $ifaceNil, $ifaceNil, new alert((((1 >= data.$length ? ($throwRuntimeError("index out of range"), undefined) : data.$array[data.$offset + 1]) << 24 >>> 24))))); - /* } else { */ case 62: - _r$21 = c.sendAlert(10); /* */ $s = 66; case 66: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } - _r$22 = c.in$28.setErrorLocked(_r$21); /* */ $s = 67; case 67: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + /* */ if (_2 === (1)) { $s = 65; continue; } + /* */ if (_2 === (2)) { $s = 66; continue; } + /* */ $s = 67; continue; + /* if (_2 === (1)) { */ case 65: + _r$22 = c.retryReadRecord(expectChangeCipherSpec); /* */ $s = 69; case 69: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } $24r$6 = _r$22; - $s = 68; case 68: return $24r$6; - /* } */ case 63: - case 59: + $s = 70; case 70: return $24r$6; + /* } else if (_2 === (2)) { */ case 66: + $s = -1; return c.in$30.setErrorLocked(new net.OpError.ptr("remote error", "", $ifaceNil, $ifaceNil, new alert((((1 >= data.$length ? ($throwRuntimeError("index out of range"), undefined) : data.$array[data.$offset + 1]) << 24 >>> 24))))); + /* } else { */ case 67: + _r$23 = c.sendAlert(10); /* */ $s = 71; case 71: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + _r$24 = c.in$30.setErrorLocked(_r$23); /* */ $s = 72; case 72: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + $24r$7 = _r$24; + $s = 73; case 73: return $24r$7; + /* } */ case 68: + case 64: $s = 53; continue; /* } else if (_1 === (20)) { */ case 49: - /* */ if (!((data.$length === 1)) || !(((0 >= data.$length ? ($throwRuntimeError("index out of range"), undefined) : data.$array[data.$offset + 0]) === 1))) { $s = 69; continue; } - /* */ $s = 70; continue; - /* if (!((data.$length === 1)) || !(((0 >= data.$length ? ($throwRuntimeError("index out of range"), undefined) : data.$array[data.$offset + 0]) === 1))) { */ case 69: - _r$23 = c.sendAlert(50); /* */ $s = 71; case 71: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _r$24 = c.in$28.setErrorLocked(_r$23); /* */ $s = 72; case 72: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - $24r$7 = _r$24; - $s = 73; case 73: return $24r$7; - /* } */ case 70: - /* */ if (c.hand.Len() > 0) { $s = 74; continue; } + /* */ if (!((data.$length === 1)) || !(((0 >= data.$length ? ($throwRuntimeError("index out of range"), undefined) : data.$array[data.$offset + 0]) === 1))) { $s = 74; continue; } /* */ $s = 75; continue; - /* if (c.hand.Len() > 0) { */ case 74: - _r$25 = c.sendAlert(10); /* */ $s = 76; case 76: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - _r$26 = c.in$28.setErrorLocked(_r$25); /* */ $s = 77; case 77: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + /* if (!((data.$length === 1)) || !(((0 >= data.$length ? ($throwRuntimeError("index out of range"), undefined) : data.$array[data.$offset + 0]) === 1))) { */ case 74: + _r$25 = c.sendAlert(50); /* */ $s = 76; case 76: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _r$26 = c.in$30.setErrorLocked(_r$25); /* */ $s = 77; case 77: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } $24r$8 = _r$26; $s = 78; case 78: return $24r$8; /* } */ case 75: - /* */ if (c.vers === 772) { $s = 79; continue; } + /* */ if (c.hand.Len() > 0) { $s = 79; continue; } /* */ $s = 80; continue; - /* if (c.vers === 772) { */ case 79: - _r$27 = c.retryReadRecord(expectChangeCipherSpec); /* */ $s = 81; case 81: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - $24r$9 = _r$27; - $s = 82; case 82: return $24r$9; + /* if (c.hand.Len() > 0) { */ case 79: + _r$27 = c.sendAlert(10); /* */ $s = 81; case 81: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + _r$28 = c.in$30.setErrorLocked(_r$27); /* */ $s = 82; case 82: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + $24r$9 = _r$28; + $s = 83; case 83: return $24r$9; /* } */ case 80: - /* */ if (!expectChangeCipherSpec) { $s = 83; continue; } - /* */ $s = 84; continue; - /* if (!expectChangeCipherSpec) { */ case 83: - _r$28 = c.sendAlert(10); /* */ $s = 85; case 85: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - _r$29 = c.in$28.setErrorLocked(_r$28); /* */ $s = 86; case 86: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + /* */ if (c.vers === 772) { $s = 84; continue; } + /* */ $s = 85; continue; + /* if (c.vers === 772) { */ case 84: + _r$29 = c.retryReadRecord(expectChangeCipherSpec); /* */ $s = 86; case 86: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } $24r$10 = _r$29; $s = 87; case 87: return $24r$10; - /* } */ case 84: - err$3 = c.in$28.changeCipherSpec(); - /* */ if (!($interfaceIsEqual(err$3, $ifaceNil))) { $s = 88; continue; } + /* } */ case 85: + /* */ if (!expectChangeCipherSpec) { $s = 88; continue; } /* */ $s = 89; continue; - /* if (!($interfaceIsEqual(err$3, $ifaceNil))) { */ case 88: - _r$30 = c.sendAlert($assertType(err$3, alert)); /* */ $s = 90; case 90: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } - _r$31 = c.in$28.setErrorLocked(_r$30); /* */ $s = 91; case 91: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } + /* if (!expectChangeCipherSpec) { */ case 88: + _r$30 = c.sendAlert(10); /* */ $s = 90; case 90: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } + _r$31 = c.in$30.setErrorLocked(_r$30); /* */ $s = 91; case 91: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } $24r$11 = _r$31; $s = 92; case 92: return $24r$11; /* } */ case 89: - $s = 53; continue; - /* } else if (_1 === (23)) { */ case 50: - /* */ if (!handshakeComplete || expectChangeCipherSpec) { $s = 93; continue; } + err$3 = c.in$30.changeCipherSpec(); + /* */ if (!($interfaceIsEqual(err$3, $ifaceNil))) { $s = 93; continue; } /* */ $s = 94; continue; - /* if (!handshakeComplete || expectChangeCipherSpec) { */ case 93: - _r$32 = c.sendAlert(10); /* */ $s = 95; case 95: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } - _r$33 = c.in$28.setErrorLocked(_r$32); /* */ $s = 96; case 96: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } + /* if (!($interfaceIsEqual(err$3, $ifaceNil))) { */ case 93: + _r$32 = c.sendAlert($assertType(err$3, alert)); /* */ $s = 95; case 95: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } + _r$33 = c.in$30.setErrorLocked(_r$32); /* */ $s = 96; case 96: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } $24r$12 = _r$33; $s = 97; case 97: return $24r$12; /* } */ case 94: - /* */ if (data.$length === 0) { $s = 98; continue; } + $s = 53; continue; + /* } else if (_1 === (23)) { */ case 50: + /* */ if (!handshakeComplete || expectChangeCipherSpec) { $s = 98; continue; } /* */ $s = 99; continue; - /* if (data.$length === 0) { */ case 98: - _r$34 = c.retryReadRecord(expectChangeCipherSpec); /* */ $s = 100; case 100: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } - $24r$13 = _r$34; - $s = 101; case 101: return $24r$13; + /* if (!handshakeComplete || expectChangeCipherSpec) { */ case 98: + _r$34 = c.sendAlert(10); /* */ $s = 100; case 100: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } + _r$35 = c.in$30.setErrorLocked(_r$34); /* */ $s = 101; case 101: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } + $24r$13 = _r$35; + $s = 102; case 102: return $24r$13; /* } */ case 99: + /* */ if (data.$length === 0) { $s = 103; continue; } + /* */ $s = 104; continue; + /* if (data.$length === 0) { */ case 103: + _r$36 = c.retryReadRecord(expectChangeCipherSpec); /* */ $s = 105; case 105: if($c) { $c = false; _r$36 = _r$36.$blk(); } if (_r$36 && _r$36.$blk !== undefined) { break s; } + $24r$14 = _r$36; + $s = 106; case 106: return $24r$14; + /* } */ case 104: c.input.Reset(data); $s = 53; continue; /* } else if (_1 === (22)) { */ case 51: - /* */ if ((data.$length === 0) || expectChangeCipherSpec) { $s = 102; continue; } - /* */ $s = 103; continue; - /* if ((data.$length === 0) || expectChangeCipherSpec) { */ case 102: - _r$35 = c.sendAlert(10); /* */ $s = 104; case 104: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } - _r$36 = c.in$28.setErrorLocked(_r$35); /* */ $s = 105; case 105: if($c) { $c = false; _r$36 = _r$36.$blk(); } if (_r$36 && _r$36.$blk !== undefined) { break s; } - $24r$14 = _r$36; - $s = 106; case 106: return $24r$14; - /* } */ case 103: + /* */ if ((data.$length === 0) || expectChangeCipherSpec) { $s = 107; continue; } + /* */ $s = 108; continue; + /* if ((data.$length === 0) || expectChangeCipherSpec) { */ case 107: + _r$37 = c.sendAlert(10); /* */ $s = 109; case 109: if($c) { $c = false; _r$37 = _r$37.$blk(); } if (_r$37 && _r$37.$blk !== undefined) { break s; } + _r$38 = c.in$30.setErrorLocked(_r$37); /* */ $s = 110; case 110: if($c) { $c = false; _r$38 = _r$38.$blk(); } if (_r$38 && _r$38.$blk !== undefined) { break s; } + $24r$15 = _r$38; + $s = 111; case 111: return $24r$15; + /* } */ case 108: c.hand.Write(data); $s = 53; continue; /* } else { */ case 52: - _r$37 = c.sendAlert(10); /* */ $s = 107; case 107: if($c) { $c = false; _r$37 = _r$37.$blk(); } if (_r$37 && _r$37.$blk !== undefined) { break s; } - _r$38 = c.in$28.setErrorLocked(_r$37); /* */ $s = 108; case 108: if($c) { $c = false; _r$38 = _r$38.$blk(); } if (_r$38 && _r$38.$blk !== undefined) { break s; } - $24r$15 = _r$38; - $s = 109; case 109: return $24r$15; + _r$39 = c.sendAlert(10); /* */ $s = 112; case 112: if($c) { $c = false; _r$39 = _r$39.$blk(); } if (_r$39 && _r$39.$blk !== undefined) { break s; } + _r$40 = c.in$30.setErrorLocked(_r$39); /* */ $s = 113; case 113: if($c) { $c = false; _r$40 = _r$40.$blk(); } if (_r$40 && _r$40.$blk !== undefined) { break s; } + $24r$16 = _r$40; + $s = 114; case 114: return $24r$16; /* } */ case 53: case 47: $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: readRecordOrCCS, $c: true, $r, $24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$13, $24r$14, $24r$15, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _1, _2, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _v, _v$1, c, data, e, e$1, err, err$1, err$2, err$3, expectChangeCipherSpec, handshakeComplete, hdr, msg, msg$1, n, ok, ok$1, record, typ, vers, x, x$1, x$2, x$3, $s};return $f; + /* */ } return; } var $f = {$blk: readRecordOrCCS, $c: true, $r, $24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$13, $24r$14, $24r$15, $24r$16, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _1, _2, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _v, _v$1, c, data, e, e$1, err, err$1, err$2, err$3, expectChangeCipherSpec, expectedVers, handshakeComplete, hdr, msg, msg$1, n, ok, ok$1, record, typ, vers, x, x$1, x$2, x$3, $s};return $f; }; $ptrType(Conn).prototype.retryReadRecord = function retryReadRecord(expectChangeCipherSpec) { var {$24r, _r, _r$1, c, expectChangeCipherSpec, $s, $r, $c} = $restore(this, {expectChangeCipherSpec}); @@ -261892,7 +264199,7 @@ $packages["crypto/tls"] = (function() { /* if (c.retryCount > 16) { */ case 1: _r = c.sendAlert(10); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _r; - $s = -1; return c.in$28.setErrorLocked(errors.New("tls: too many ignored records")); + $s = -1; return c.in$30.setErrorLocked(errors.New("tls: too many ignored records")); /* } */ case 2: _r$1 = c.readRecordOrCCS(expectChangeCipherSpec); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $24r = _r$1; @@ -261939,6 +264246,9 @@ $packages["crypto/tls"] = (function() { var {_1, _r, _tuple, c, err, writeErr, $s, $r, $c} = $restore(this, {err}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: c = this; + if (!(c.quic === ptrType$5.nil)) { + $s = -1; return c.out.setErrorLocked(new net.OpError.ptr("local error", "", $ifaceNil, $ifaceNil, new alert(err))); + } _1 = err; if ((_1 === (100)) || (_1 === (0))) { c.tmp[0] = 1; @@ -262058,29 +264368,48 @@ $packages["crypto/tls"] = (function() { /* */ } return; } var $f = {$blk: flush, $c: true, $r, _r, _tuple, c, err, n, x, x$1, $s};return $f; }; $ptrType(Conn).prototype.writeRecordLocked = function writeRecordLocked(typ, data) { - var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, _tuple$2, c, data, err, err$1, err$2, m, maxPayload, n, outBuf, outBufPtr, typ, vers, $s, $deferred, $r, $c} = $restore(this, {typ, data}); + var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, _tuple$2, _tuple$3, c, data, err, err$1, err$2, err$3, m, maxPayload, n, outBuf, outBufPtr, typ, vers, $s, $deferred, $r, $c} = $restore(this, {typ, data}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); outBuf = [outBuf]; outBufPtr = [outBufPtr]; c = this; - _r = outBufPool.Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - outBufPtr[0] = $assertType(_r, ptrType$1); + /* */ if (!(c.quic === ptrType$5.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(c.quic === ptrType$5.nil)) { */ case 1: + if (!((typ === 22))) { + $s = -1; return [0, errors.New("tls: internal error: sending non-handshake message to QUIC transport")]; + } + c.quicWriteCryptoData(c.out.level, data); + /* */ if (!c.buffering) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!c.buffering) { */ case 3: + _r = c.flush(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, err]; + } + /* } */ case 4: + $s = -1; return [data.$length, $ifaceNil]; + /* } */ case 2: + _r$1 = outBufPool.Get(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + outBufPtr[0] = $assertType(_r$1, ptrType$1); outBuf[0] = outBufPtr[0].$get(); $deferred.push([(function(outBuf, outBufPtr) { return function Conn·writeRecordLocked·func1() { outBufPtr[0].$set(outBuf[0]); outBufPool.Put(outBufPtr[0]); }; })(outBuf, outBufPtr), []]); n = 0; - /* while (true) { */ case 2: - /* if (!(data.$length > 0)) { break; } */ if(!(data.$length > 0)) { $s = 3; continue; } + /* while (true) { */ case 7: + /* if (!(data.$length > 0)) { break; } */ if(!(data.$length > 0)) { $s = 8; continue; } m = data.$length; - _r$1 = c.maxPayloadSizeForWrite(typ); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - maxPayload = _r$1; + _r$2 = c.maxPayloadSizeForWrite(typ); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + maxPayload = _r$2; if (m > maxPayload) { m = maxPayload; } - _tuple = sliceForAppend($subslice(outBuf[0], 0, 0), 5); - outBuf[0] = _tuple[1]; + _tuple$1 = sliceForAppend($subslice(outBuf[0], 0, 0), 5); + outBuf[0] = _tuple$1[1]; (0 >= outBuf[0].$length ? ($throwRuntimeError("index out of range"), undefined) : outBuf[0].$array[outBuf[0].$offset + 0] = ((typ << 24 >>> 24))); vers = c.vers; if (vers === 0) { @@ -262092,38 +264421,38 @@ $packages["crypto/tls"] = (function() { (2 >= outBuf[0].$length ? ($throwRuntimeError("index out of range"), undefined) : outBuf[0].$array[outBuf[0].$offset + 2] = ((vers << 24 >>> 24))); (3 >= outBuf[0].$length ? ($throwRuntimeError("index out of range"), undefined) : outBuf[0].$array[outBuf[0].$offset + 3] = (((m >> 8 >> 0) << 24 >>> 24))); (4 >= outBuf[0].$length ? ($throwRuntimeError("index out of range"), undefined) : outBuf[0].$array[outBuf[0].$offset + 4] = ((m << 24 >>> 24))); - err = $ifaceNil; - _r$2 = c.out.encrypt(outBuf[0], $subslice(data, 0, m), c.config.rand()); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple$1 = _r$2; - outBuf[0] = _tuple$1[0]; - err = _tuple$1[1]; - if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [n, err]; - } - _r$3 = c.write(outBuf[0]); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + err$1 = $ifaceNil; + _r$3 = c.out.encrypt(outBuf[0], $subslice(data, 0, m), c.config.rand()); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _tuple$2 = _r$3; + outBuf[0] = _tuple$2[0]; err$1 = _tuple$2[1]; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [n, err$1]; } + _r$4 = c.write(outBuf[0]); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$3 = _r$4; + err$2 = _tuple$3[1]; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + $s = -1; return [n, err$2]; + } n = n + (m) >> 0; data = $subslice(data, m); - $s = 2; continue; - case 3: - /* */ if ((typ === 20) && !((c.vers === 772))) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if ((typ === 20) && !((c.vers === 772))) { */ case 7: - err$2 = c.out.changeCipherSpec(); - /* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 9: - _r$4 = c.sendAlertLocked($assertType(err$2, alert)); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $24r = [n, _r$4]; - $s = 12; case 12: return $24r; - /* } */ case 10: - /* } */ case 8: + $s = 7; continue; + case 8: + /* */ if ((typ === 20) && !((c.vers === 772))) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if ((typ === 20) && !((c.vers === 772))) { */ case 12: + err$3 = c.out.changeCipherSpec(); + /* */ if (!($interfaceIsEqual(err$3, $ifaceNil))) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (!($interfaceIsEqual(err$3, $ifaceNil))) { */ case 14: + _r$5 = c.sendAlertLocked($assertType(err$3, alert)); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $24r = [n, _r$5]; + $s = 17; case 17: return $24r; + /* } */ case 15: + /* } */ case 13: $s = -1; return [n, $ifaceNil]; - /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: writeRecordLocked, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, _tuple$2, c, data, err, err$1, err$2, m, maxPayload, n, outBuf, outBufPtr, typ, vers, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: writeRecordLocked, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, _tuple$2, _tuple$3, c, data, err, err$1, err$2, err$3, m, maxPayload, n, outBuf, outBufPtr, typ, vers, $s, $deferred};return $f; } } }; $ptrType(Conn).prototype.writeHandshakeRecord = function writeHandshakeRecord(msg, transcript) { var {$24r, $24r$1, _r, _r$1, _r$2, _tuple, c, data, err, msg, transcript, $s, $deferred, $r, $c} = $restore(this, {msg, transcript}); @@ -262165,141 +264494,166 @@ $packages["crypto/tls"] = (function() { $s = 3; case 3: return $24r; /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: writeChangeCipherRecord, $c: true, $r, $24r, _r, _tuple, c, err, $s, $deferred};return $f; } } }; - $ptrType(Conn).prototype.readHandshake = function readHandshake(transcript) { - var {$24r, $24r$1, $24r$2, _1, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, c, data, err, err$1, m, n, transcript, $s, $r, $c} = $restore(this, {transcript}); + $ptrType(Conn).prototype.readHandshakeBytes = function readHandshakeBytes(n) { + var {$24r, _r, _r$1, c, err, n, $s, $r, $c} = $restore(this, {n}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: c = this; - /* while (true) { */ case 1: - /* if (!(c.hand.Len() < 4)) { break; } */ if(!(c.hand.Len() < 4)) { $s = 2; continue; } - _r = c.readRecord(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - err = _r; + /* */ if (!(c.quic === ptrType$5.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(c.quic === ptrType$5.nil)) { */ case 1: + _r = c.quicReadHandshakeBytes(n); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; + /* } */ case 2: + /* while (true) { */ case 5: + /* if (!(c.hand.Len() < n)) { break; } */ if(!(c.hand.Len() < n)) { $s = 6; continue; } + _r$1 = c.readRecord(); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + err = _r$1; if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [$ifaceNil, err]; + $s = -1; return err; } - $s = 1; continue; - case 2: + $s = 5; continue; + case 6: + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: readHandshakeBytes, $c: true, $r, $24r, _r, _r$1, c, err, n, $s};return $f; + }; + $ptrType(Conn).prototype.readHandshake = function readHandshake(transcript) { + var {$24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _returncast, c, data, err, err$1, n, transcript, $s, $r, $c} = $restore(this, {transcript}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + c = this; + _r = c.readHandshakeBytes(4); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [$ifaceNil, err]; + } data = c.hand.Bytes(); n = (((((1 >= data.$length ? ($throwRuntimeError("index out of range"), undefined) : data.$array[data.$offset + 1]) >> 0)) << 16 >> 0) | ((((2 >= data.$length ? ($throwRuntimeError("index out of range"), undefined) : data.$array[data.$offset + 2]) >> 0)) << 8 >> 0)) | (((3 >= data.$length ? ($throwRuntimeError("index out of range"), undefined) : data.$array[data.$offset + 3]) >> 0)); - /* */ if (n > 65536) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (n > 65536) { */ case 4: - _r$1 = c.sendAlertLocked(80); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (n > 65536) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (n > 65536) { */ case 2: + _r$1 = c.sendAlertLocked(80); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _r$1; - _r$2 = fmt.Errorf("tls: handshake message of length %d bytes exceeds maximum of %d bytes", new sliceType$7([new $Int(n), new $Int(65536)])); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = c.in$28.setErrorLocked(_r$2); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$2 = fmt.Errorf("tls: handshake message of length %d bytes exceeds maximum of %d bytes", new sliceType$7([new $Int(n), new $Int(65536)])); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = c.in$30.setErrorLocked(_r$2); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } $24r = [$ifaceNil, _r$3]; - $s = 9; case 9: return $24r; - /* } */ case 5: - /* while (true) { */ case 10: - /* if (!(c.hand.Len() < (4 + n >> 0))) { break; } */ if(!(c.hand.Len() < (4 + n >> 0))) { $s = 11; continue; } - _r$4 = c.readRecord(); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - err$1 = _r$4; - if (!($interfaceIsEqual(err$1, $ifaceNil))) { - $s = -1; return [$ifaceNil, err$1]; - } - $s = 10; continue; - case 11: + $s = 7; case 7: return $24r; + /* } */ case 3: + _r$4 = c.readHandshakeBytes(4 + n >> 0); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + err$1 = _r$4; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [$ifaceNil, err$1]; + } data = c.hand.Next(4 + n >> 0); + _r$5 = c.unmarshalHandshakeMessage(data, transcript); /* */ $s = 9; case 9: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _returncast = _r$5; + $24r$1 = [_returncast[0], _returncast[1]]; + $s = 10; case 10: return $24r$1; + /* */ } return; } var $f = {$blk: readHandshake, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _returncast, c, data, err, err$1, n, transcript, $s};return $f; + }; + $ptrType(Conn).prototype.unmarshalHandshakeMessage = function unmarshalHandshakeMessage(data, transcript) { + var {$24r, $24r$1, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, c, data, m, transcript, $s, $r, $c} = $restore(this, {data, transcript}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + c = this; m = $ifaceNil; _1 = (0 >= data.$length ? ($throwRuntimeError("index out of range"), undefined) : data.$array[data.$offset + 0]); - /* */ if (_1 === (0)) { $s = 14; continue; } - /* */ if (_1 === (1)) { $s = 15; continue; } - /* */ if (_1 === (2)) { $s = 16; continue; } - /* */ if (_1 === (4)) { $s = 17; continue; } - /* */ if (_1 === (11)) { $s = 18; continue; } - /* */ if (_1 === (13)) { $s = 19; continue; } - /* */ if (_1 === (22)) { $s = 20; continue; } - /* */ if (_1 === (12)) { $s = 21; continue; } - /* */ if (_1 === (14)) { $s = 22; continue; } - /* */ if (_1 === (16)) { $s = 23; continue; } - /* */ if (_1 === (15)) { $s = 24; continue; } - /* */ if (_1 === (20)) { $s = 25; continue; } - /* */ if (_1 === (8)) { $s = 26; continue; } - /* */ if (_1 === (5)) { $s = 27; continue; } - /* */ if (_1 === (24)) { $s = 28; continue; } - /* */ $s = 29; continue; - /* if (_1 === (0)) { */ case 14: + /* */ if (_1 === (0)) { $s = 2; continue; } + /* */ if (_1 === (1)) { $s = 3; continue; } + /* */ if (_1 === (2)) { $s = 4; continue; } + /* */ if (_1 === (4)) { $s = 5; continue; } + /* */ if (_1 === (11)) { $s = 6; continue; } + /* */ if (_1 === (13)) { $s = 7; continue; } + /* */ if (_1 === (22)) { $s = 8; continue; } + /* */ if (_1 === (12)) { $s = 9; continue; } + /* */ if (_1 === (14)) { $s = 10; continue; } + /* */ if (_1 === (16)) { $s = 11; continue; } + /* */ if (_1 === (15)) { $s = 12; continue; } + /* */ if (_1 === (20)) { $s = 13; continue; } + /* */ if (_1 === (8)) { $s = 14; continue; } + /* */ if (_1 === (5)) { $s = 15; continue; } + /* */ if (_1 === (24)) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (_1 === (0)) { */ case 2: m = new helloRequestMsg.ptr(); - $s = 30; continue; - /* } else if (_1 === (1)) { */ case 15: - m = new clientHelloMsg.ptr(sliceType$6.nil, 0, sliceType$6.nil, sliceType$6.nil, sliceType$3.nil, sliceType$6.nil, "", false, sliceType$4.nil, sliceType$6.nil, false, sliceType$6.nil, sliceType.nil, sliceType.nil, false, sliceType$6.nil, sliceType$2.nil, false, sliceType$3.nil, sliceType$6.nil, sliceType$16.nil, false, sliceType$6.nil, sliceType$17.nil, sliceType$11.nil); - $s = 30; continue; - /* } else if (_1 === (2)) { */ case 16: - m = new serverHelloMsg.ptr(sliceType$6.nil, 0, sliceType$6.nil, sliceType$6.nil, 0, 0, false, false, false, sliceType$6.nil, "", sliceType$11.nil, 0, new keyShare.ptr(0, sliceType$6.nil), false, 0, sliceType$6.nil, sliceType$6.nil, 0); - $s = 30; continue; - /* } else if (_1 === (4)) { */ case 17: + $s = 18; continue; + /* } else if (_1 === (1)) { */ case 3: + m = new clientHelloMsg.ptr(sliceType$6.nil, 0, sliceType$6.nil, sliceType$6.nil, sliceType$3.nil, sliceType$6.nil, "", false, sliceType$4.nil, sliceType$6.nil, false, sliceType$6.nil, sliceType.nil, sliceType.nil, false, sliceType$6.nil, false, sliceType$2.nil, false, sliceType$3.nil, sliceType$6.nil, sliceType$17.nil, false, sliceType$6.nil, sliceType$18.nil, sliceType$11.nil, sliceType$6.nil); + $s = 18; continue; + /* } else if (_1 === (2)) { */ case 4: + m = new serverHelloMsg.ptr(sliceType$6.nil, 0, sliceType$6.nil, sliceType$6.nil, 0, 0, false, false, false, sliceType$6.nil, false, "", sliceType$11.nil, 0, new keyShare.ptr(0, sliceType$6.nil), false, 0, sliceType$6.nil, sliceType$6.nil, 0); + $s = 18; continue; + /* } else if (_1 === (4)) { */ case 5: if (c.vers === 772) { m = new newSessionTicketMsgTLS13.ptr(sliceType$6.nil, 0, 0, sliceType$6.nil, sliceType$6.nil, 0); } else { m = new newSessionTicketMsg.ptr(sliceType$6.nil, sliceType$6.nil); } - $s = 30; continue; - /* } else if (_1 === (11)) { */ case 18: + $s = 18; continue; + /* } else if (_1 === (11)) { */ case 6: if (c.vers === 772) { - m = new certificateMsgTLS13.ptr(sliceType$6.nil, new Certificate.ptr(sliceType$11.nil, $ifaceNil, sliceType.nil, sliceType$6.nil, sliceType$11.nil, ptrType$6.nil), false, false); + m = new certificateMsgTLS13.ptr(sliceType$6.nil, new Certificate.ptr(sliceType$11.nil, $ifaceNil, sliceType.nil, sliceType$6.nil, sliceType$11.nil, ptrType$7.nil), false, false); } else { m = new certificateMsg.ptr(sliceType$6.nil, sliceType$11.nil); } - $s = 30; continue; - /* } else if (_1 === (13)) { */ case 19: + $s = 18; continue; + /* } else if (_1 === (13)) { */ case 7: if (c.vers === 772) { m = new certificateRequestMsgTLS13.ptr(sliceType$6.nil, false, false, sliceType.nil, sliceType.nil, sliceType$11.nil); } else { m = new certificateRequestMsg.ptr(sliceType$6.nil, c.vers >= 771, sliceType$6.nil, sliceType.nil, sliceType$11.nil); } - $s = 30; continue; - /* } else if (_1 === (22)) { */ case 20: + $s = 18; continue; + /* } else if (_1 === (22)) { */ case 8: m = new certificateStatusMsg.ptr(sliceType$6.nil, sliceType$6.nil); - $s = 30; continue; - /* } else if (_1 === (12)) { */ case 21: + $s = 18; continue; + /* } else if (_1 === (12)) { */ case 9: m = new serverKeyExchangeMsg.ptr(sliceType$6.nil, sliceType$6.nil); - $s = 30; continue; - /* } else if (_1 === (14)) { */ case 22: + $s = 18; continue; + /* } else if (_1 === (14)) { */ case 10: m = new serverHelloDoneMsg.ptr(); - $s = 30; continue; - /* } else if (_1 === (16)) { */ case 23: + $s = 18; continue; + /* } else if (_1 === (16)) { */ case 11: m = new clientKeyExchangeMsg.ptr(sliceType$6.nil, sliceType$6.nil); - $s = 30; continue; - /* } else if (_1 === (15)) { */ case 24: + $s = 18; continue; + /* } else if (_1 === (15)) { */ case 12: m = new certificateVerifyMsg.ptr(sliceType$6.nil, c.vers >= 771, 0, sliceType$6.nil); - $s = 30; continue; - /* } else if (_1 === (20)) { */ case 25: + $s = 18; continue; + /* } else if (_1 === (20)) { */ case 13: m = new finishedMsg.ptr(sliceType$6.nil, sliceType$6.nil); - $s = 30; continue; - /* } else if (_1 === (8)) { */ case 26: - m = new encryptedExtensionsMsg.ptr(sliceType$6.nil, ""); - $s = 30; continue; - /* } else if (_1 === (5)) { */ case 27: + $s = 18; continue; + /* } else if (_1 === (8)) { */ case 14: + m = new encryptedExtensionsMsg.ptr(sliceType$6.nil, "", sliceType$6.nil, false); + $s = 18; continue; + /* } else if (_1 === (5)) { */ case 15: m = new endOfEarlyDataMsg.ptr(); - $s = 30; continue; - /* } else if (_1 === (24)) { */ case 28: + $s = 18; continue; + /* } else if (_1 === (24)) { */ case 16: m = new keyUpdateMsg.ptr(sliceType$6.nil, false); - $s = 30; continue; - /* } else { */ case 29: - _r$5 = c.sendAlert(10); /* */ $s = 31; case 31: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$6 = c.in$28.setErrorLocked(_r$5); /* */ $s = 32; case 32: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - $24r$1 = [$ifaceNil, _r$6]; - $s = 33; case 33: return $24r$1; - /* } */ case 30: - case 13: + $s = 18; continue; + /* } else { */ case 17: + _r = c.sendAlert(10); /* */ $s = 19; case 19: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = c.in$30.setErrorLocked(_r); /* */ $s = 20; case 20: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = [$ifaceNil, _r$1]; + $s = 21; case 21: return $24r; + /* } */ case 18: + case 1: data = $appendSlice((sliceType$6.nil), data); - _r$7 = m.unmarshal(data); /* */ $s = 36; case 36: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - /* */ if (!_r$7) { $s = 34; continue; } - /* */ $s = 35; continue; - /* if (!_r$7) { */ case 34: - _r$8 = c.sendAlert(10); /* */ $s = 37; case 37: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _r$9 = c.in$28.setErrorLocked(_r$8); /* */ $s = 38; case 38: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - $24r$2 = [$ifaceNil, _r$9]; - $s = 39; case 39: return $24r$2; - /* } */ case 35: - /* */ if (!($interfaceIsEqual(transcript, $ifaceNil))) { $s = 40; continue; } - /* */ $s = 41; continue; - /* if (!($interfaceIsEqual(transcript, $ifaceNil))) { */ case 40: - _r$10 = transcript.Write(data); /* */ $s = 42; case 42: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _r$10; - /* } */ case 41: + _r$2 = m.unmarshal(data); /* */ $s = 24; case 24: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (!_r$2) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (!_r$2) { */ case 22: + _r$3 = c.sendAlert(10); /* */ $s = 25; case 25: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$4 = c.in$30.setErrorLocked(_r$3); /* */ $s = 26; case 26: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r$1 = [$ifaceNil, _r$4]; + $s = 27; case 27: return $24r$1; + /* } */ case 23: + /* */ if (!($interfaceIsEqual(transcript, $ifaceNil))) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (!($interfaceIsEqual(transcript, $ifaceNil))) { */ case 28: + _r$5 = transcript.Write(data); /* */ $s = 30; case 30: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$5; + /* } */ case 29: $s = -1; return [m, $ifaceNil]; - /* */ } return; } var $f = {$blk: readHandshake, $c: true, $r, $24r, $24r$1, $24r$2, _1, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, c, data, err, err$1, m, n, transcript, $s};return $f; + /* */ } return; } var $f = {$blk: unmarshalHandshakeMessage, $c: true, $r, $24r, $24r$1, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, c, data, m, transcript, $s};return $f; }; $ptrType(Conn).prototype.Write = function Write$1(b) { var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, _r, _r$1, _r$2, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, b, c, err, err$1, err$2, err$3, m, n, n$1, ok, x, $s, $deferred, $r, $c} = $restore(this, {b}); @@ -262388,7 +264742,7 @@ $packages["crypto/tls"] = (function() { if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return err; } - _tuple$1 = $assertType(msg, ptrType$45, true); + _tuple$1 = $assertType(msg, ptrType$50, true); helloReq = _tuple$1[0]; ok = _tuple$1[1]; /* */ if (!ok) { $s = 2; continue; } @@ -262446,7 +264800,7 @@ $packages["crypto/tls"] = (function() { /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: handleRenegotiation, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, _tuple$1, c, err, helloReq, msg, ok, $s, $deferred};return $f; } } }; $ptrType(Conn).prototype.handlePostHandshakeMessage = function handlePostHandshakeMessage() { - var {$24r, $24r$1, $24r$2, $24r$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _tuple, c, err, msg, msg$1, msg$2, msg$3, $s, $r, $c} = $restore(this, {}); + var {$24r, $24r$1, $24r$2, $24r$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _tuple, c, err, msg, msg$1, msg$2, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: c = this; /* */ if (!((c.vers === 772))) { $s = 1; continue; } @@ -262469,82 +264823,86 @@ $packages["crypto/tls"] = (function() { /* if (c.retryCount > 16) { */ case 6: _r$2 = c.sendAlert(10); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _r$2; - $s = -1; return c.in$28.setErrorLocked(errors.New("tls: too many non-advancing records")); + $s = -1; return c.in$30.setErrorLocked(errors.New("tls: too many non-advancing records")); /* } */ case 7: _ref = msg; - /* */ if ($assertType(_ref, ptrType$46, true)[1]) { $s = 9; continue; } - /* */ if ($assertType(_ref, ptrType$47, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref, ptrType$43, true)[1]) { $s = 9; continue; } + /* */ if ($assertType(_ref, ptrType$51, true)[1]) { $s = 10; continue; } /* */ $s = 11; continue; - /* if ($assertType(_ref, ptrType$46, true)[1]) { */ case 9: + /* if ($assertType(_ref, ptrType$43, true)[1]) { */ case 9: msg$1 = _ref.$val; - _r$3 = c.handleNewSessionTicket(msg$1); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3 = c.handleNewSessionTicket(msg$1); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } $24r$1 = _r$3; - $s = 14; case 14: return $24r$1; - /* } else if ($assertType(_ref, ptrType$47, true)[1]) { */ case 10: + $s = 13; case 13: return $24r$1; + /* } else if ($assertType(_ref, ptrType$51, true)[1]) { */ case 10: msg$2 = _ref.$val; - _r$4 = c.handleKeyUpdate(msg$2); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4 = c.handleKeyUpdate(msg$2); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } $24r$2 = _r$4; - $s = 16; case 16: return $24r$2; - /* } else { */ case 11: - msg$3 = _ref; - _r$5 = c.sendAlert(10); /* */ $s = 17; case 17: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$5; - _r$6 = fmt.Errorf("tls: received unexpected handshake message of type %T", new sliceType$7([msg$3])); /* */ $s = 18; case 18: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - $24r$3 = _r$6; - $s = 19; case 19: return $24r$3; - /* } */ case 12: - $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: handlePostHandshakeMessage, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _tuple, c, err, msg, msg$1, msg$2, msg$3, $s};return $f; + $s = 15; case 15: return $24r$2; + /* } */ case 11: + _r$5 = c.sendAlert(10); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$5; + _r$6 = fmt.Errorf("tls: received unexpected handshake message of type %T", new sliceType$7([msg])); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $24r$3 = _r$6; + $s = 18; case 18: return $24r$3; + /* */ } return; } var $f = {$blk: handlePostHandshakeMessage, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _tuple, c, err, msg, msg$1, msg$2, $s};return $f; }; $ptrType(Conn).prototype.handleKeyUpdate = function handleKeyUpdate(keyUpdate) { - var {$24r, $24r$1, $24r$2, $24r$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, c, cipherSuite$1, err, keyUpdate, msg, msgBytes, newSecret, newSecret$1, $s, $deferred, $r, $c} = $restore(this, {keyUpdate}); + var {$24r, $24r$1, $24r$2, $24r$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, c, cipherSuite$1, err, keyUpdate, msg, msgBytes, newSecret, newSecret$1, $s, $deferred, $r, $c} = $restore(this, {keyUpdate}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); c = this; - cipherSuite$1 = cipherSuiteTLS13ByID(c.cipherSuite); - /* */ if (cipherSuite$1 === ptrType$2.nil) { $s = 1; continue; } + /* */ if (!(c.quic === ptrType$5.nil)) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (cipherSuite$1 === ptrType$2.nil) { */ case 1: - _r = c.sendAlert(80); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = c.in$28.setErrorLocked(_r); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 5; case 5: return $24r; + /* if (!(c.quic === ptrType$5.nil)) { */ case 1: + _r = c.sendAlert(10); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + $s = -1; return c.in$30.setErrorLocked(errors.New("tls: received unexpected key update message")); /* } */ case 2: - _r$2 = cipherSuite$1.nextTrafficSecret(c.in$28.trafficSecret); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - newSecret = _r$2; - $r = c.in$28.setTrafficSecret(cipherSuite$1, newSecret); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (keyUpdate.updateRequested) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (keyUpdate.updateRequested) { */ case 8: - $r = c.out.Mutex.Lock(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + cipherSuite$1 = cipherSuiteTLS13ByID(c.cipherSuite); + /* */ if (cipherSuite$1 === ptrType$3.nil) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (cipherSuite$1 === ptrType$3.nil) { */ case 4: + _r$1 = c.sendAlert(80); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = c.in$30.setErrorLocked(_r$1); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 8; case 8: return $24r; + /* } */ case 5: + _r$3 = cipherSuite$1.nextTrafficSecret(c.in$30.trafficSecret); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + newSecret = _r$3; + $r = c.in$30.setTrafficSecret(cipherSuite$1, 0, newSecret); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (keyUpdate.updateRequested) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (keyUpdate.updateRequested) { */ case 11: + $r = c.out.Mutex.Lock(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $deferred.push([$methodVal(c.out.Mutex, "Unlock"), []]); msg = new keyUpdateMsg.ptr(sliceType$6.nil, false); - _r$3 = msg.marshal(); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple = _r$3; + _r$4 = msg.marshal(); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple = _r$4; msgBytes = _tuple[0]; err = _tuple[1]; - /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 12: + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 15: $24r$1 = err; - $s = 14; case 14: return $24r$1; - /* } */ case 13: - _r$4 = c.writeRecordLocked(22, msgBytes); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _tuple$1 = _r$4; + $s = 17; case 17: return $24r$1; + /* } */ case 16: + _r$5 = c.writeRecordLocked(22, msgBytes); /* */ $s = 18; case 18: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$1 = _r$5; err = _tuple$1[1]; - /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 16: + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 19: c.out.setErrorLocked(err); $24r$2 = $ifaceNil; - $s = 18; case 18: return $24r$2; - /* } */ case 17: - _r$5 = cipherSuite$1.nextTrafficSecret(c.out.trafficSecret); /* */ $s = 19; case 19: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - newSecret$1 = _r$5; - $r = c.out.setTrafficSecret(cipherSuite$1, newSecret$1); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 9: + $s = 21; case 21: return $24r$2; + /* } */ case 20: + _r$6 = cipherSuite$1.nextTrafficSecret(c.out.trafficSecret); /* */ $s = 22; case 22: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + newSecret$1 = _r$6; + $r = c.out.setTrafficSecret(cipherSuite$1, 0, newSecret$1); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 12: $24r$3 = $ifaceNil; - $s = 21; case 21: return $24r$3; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: handleKeyUpdate, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, c, cipherSuite$1, err, keyUpdate, msg, msgBytes, newSecret, newSecret$1, $s, $deferred};return $f; } } + $s = 24; case 24: return $24r$3; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: handleKeyUpdate, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, c, cipherSuite$1, err, keyUpdate, msg, msgBytes, newSecret, newSecret$1, $s, $deferred};return $f; } } }; $ptrType(Conn).prototype.Read = function Read$1(b) { var {$24r, $24r$1, $24r$2, $24r$3, _r, _r$1, _r$2, _r$3, _tuple, b, c, err, err$1, err$2, err$3, n, x, $s, $deferred, $r, $c} = $restore(this, {b}); @@ -262558,8 +264916,8 @@ $packages["crypto/tls"] = (function() { if (b.$length === 0) { $s = -1; return [0, $ifaceNil]; } - $r = c.in$28.Mutex.Lock(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(c.in$28.Mutex, "Unlock"), []]); + $r = c.in$30.Mutex.Lock(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(c.in$30.Mutex, "Unlock"), []]); /* while (true) { */ case 3: /* if (!(c.input.Len() === 0)) { break; } */ if(!(c.input.Len() === 0)) { $s = 4; continue; } _r$1 = c.readRecord(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } @@ -262602,7 +264960,7 @@ $packages["crypto/tls"] = (function() { $s = 21; case 21: return $24r$3; /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Read$1, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, _r, _r$1, _r$2, _r$3, _tuple, b, c, err, err$1, err$2, err$3, n, x, $s, $deferred};return $f; } } }; - $ptrType(Conn).prototype.Close = function Close() { + $ptrType(Conn).prototype.Close = function Close$1() { var {$24r, _r, _r$1, _r$2, _r$3, alertErr, c, err, err$1, x, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: c = this; @@ -262642,7 +265000,7 @@ $packages["crypto/tls"] = (function() { $s = -1; return err$1; } $s = -1; return alertErr; - /* */ } return; } var $f = {$blk: Close, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, alertErr, c, err, err$1, x, $s};return $f; + /* */ } return; } var $f = {$blk: Close$1, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, alertErr, c, err, err$1, x, $s};return $f; }; $ptrType(Conn).prototype.CloseWrite = function CloseWrite() { var {$24r, _r, c, $s, $r, $c} = $restore(this, {}); @@ -262699,8 +265057,9 @@ $packages["crypto/tls"] = (function() { /* */ } return; } var $f = {$blk: HandshakeContext, $c: true, $r, $24r, _r, c, ctx, $s};return $f; }; $ptrType(Conn).prototype.handshakeContext = function handshakeContext(ctx) { - var {$24r, $24r$1, $24r$2, _r, _r$1, _r$2, _r$3, _tuple, c, cancel, ctx, done, err, handshakeCtx, interruptRes, ret, $s, $deferred, $r, $c} = $restore(this, {ctx}); + var {$24r, $24r$1, $24r$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, a, c, cancel, ctx, done, err, handshakeCtx, interruptRes, ret, $s, $deferred, $r, $c} = $restore(this, {ctx}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + a = [a]; c = [c]; done = [done]; handshakeCtx = [handshakeCtx]; @@ -262717,88 +265076,119 @@ $packages["crypto/tls"] = (function() { handshakeCtx[0] = _tuple[0]; cancel = _tuple[1]; $deferred.push([cancel, []]); - _r$1 = ctx.Done(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (!(_r$1 === $chanNil)) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!(_r$1 === $chanNil)) { */ case 2: + /* */ if (!(c[0].quic === ptrType$5.nil)) { $s = 2; continue; } + _r$1 = ctx.Done(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!(_r$1 === $chanNil)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!(c[0].quic === ptrType$5.nil)) { */ case 2: + _r$2 = handshakeCtx[0].Done(); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + c[0].quic.cancelc = _r$2; + c[0].quic.cancel = cancel; + $s = 4; continue; + /* } else if (!(_r$1 === $chanNil)) { */ case 3: done[0] = new $Chan(structType$1, 0); interruptRes[0] = new $Chan($error, 1); - $deferred.push([(function(c, done, handshakeCtx, interruptRes, ret) { return function Conn·handshakeContext·func1() { - var {_r$2, ctxErr, $s, $r, $c} = $restore(this, {}); + $deferred.push([(function(a, c, done, handshakeCtx, interruptRes, ret) { return function Conn·handshakeContext·func1() { + var {_r$3, ctxErr, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: $close(done[0]); - _r$2 = $recv(interruptRes[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - ctxErr = _r$2[0]; + _r$3 = $recv(interruptRes[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + ctxErr = _r$3[0]; if (!($interfaceIsEqual(ctxErr, $ifaceNil))) { ret[0] = ctxErr; } $s = -1; return; - /* */ } return; } var $f = {$blk: Conn·handshakeContext·func1, $c: true, $r, _r$2, ctxErr, $s};return $f; - }; })(c, done, handshakeCtx, interruptRes, ret), []]); - $go((function(c, done, handshakeCtx, interruptRes, ret) { return function Conn·handshakeContext·func2() { - var {_r$2, _r$3, _r$4, _r$5, _selection, $s, $r, $c} = $restore(this, {}); + /* */ } return; } var $f = {$blk: Conn·handshakeContext·func1, $c: true, $r, _r$3, ctxErr, $s};return $f; + }; })(a, c, done, handshakeCtx, interruptRes, ret), []]); + $go((function(a, c, done, handshakeCtx, interruptRes, ret) { return function Conn·handshakeContext·func2() { + var {_r$3, _r$4, _r$5, _r$6, _selection, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$2 = handshakeCtx[0].Done(); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = $select([[_r$2], [done[0]]]); /* */ $s = 2; case 2: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _selection = _r$3; + _r$3 = handshakeCtx[0].Done(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$4 = $select([[_r$3], [done[0]]]); /* */ $s = 2; case 2: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _selection = _r$4; /* */ if (_selection[0] === 0) { $s = 3; continue; } /* */ if (_selection[0] === 1) { $s = 4; continue; } /* */ $s = 5; continue; /* if (_selection[0] === 0) { */ case 3: - _r$4 = c[0].conn.Close(); /* */ $s = 6; case 6: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $unused(_r$4); - _r$5 = handshakeCtx[0].Err(); /* */ $s = 7; case 7: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - $r = $send(interruptRes[0], _r$5); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$5 = c[0].conn.Close(); /* */ $s = 6; case 6: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $unused(_r$5); + _r$6 = handshakeCtx[0].Err(); /* */ $s = 7; case 7: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $r = $send(interruptRes[0], _r$6); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 5; continue; /* } else if (_selection[0] === 1) { */ case 4: $r = $send(interruptRes[0], $ifaceNil); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 5: $s = -1; return; - /* */ } return; } var $f = {$blk: Conn·handshakeContext·func2, $c: true, $r, _r$2, _r$3, _r$4, _r$5, _selection, $s};return $f; - }; })(c, done, handshakeCtx, interruptRes, ret), []); - /* } */ case 3: - $r = c[0].handshakeMutex.Lock(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } var $f = {$blk: Conn·handshakeContext·func2, $c: true, $r, _r$3, _r$4, _r$5, _r$6, _selection, $s};return $f; + }; })(a, c, done, handshakeCtx, interruptRes, ret), []); + /* } */ case 4: + $r = c[0].handshakeMutex.Lock(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $deferred.push([$methodVal(c[0].handshakeMutex, "Unlock"), []]); err = c[0].handshakeErr; - /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 6: + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 8: ret[0] = err; $24r = ret[0]; - $s = 8; case 8: return $24r; - /* } */ case 7: - /* */ if (c[0].isHandshakeComplete.Load()) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (c[0].isHandshakeComplete.Load()) { */ case 9: + $s = 10; case 10: return $24r; + /* } */ case 9: + /* */ if (c[0].isHandshakeComplete.Load()) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (c[0].isHandshakeComplete.Load()) { */ case 11: ret[0] = $ifaceNil; $24r$1 = ret[0]; - $s = 11; case 11: return $24r$1; - /* } */ case 10: - $r = c[0].in$28.Mutex.Lock(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(c[0].in$28.Mutex, "Unlock"), []]); - _r$2 = c[0].handshakeFn(handshakeCtx[0]); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - c[0].handshakeErr = _r$2; - /* */ if ($interfaceIsEqual(c[0].handshakeErr, $ifaceNil)) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if ($interfaceIsEqual(c[0].handshakeErr, $ifaceNil)) { */ case 14: + $s = 13; case 13: return $24r$1; + /* } */ case 12: + $r = c[0].in$30.Mutex.Lock(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(c[0].in$30.Mutex, "Unlock"), []]); + _r$3 = c[0].handshakeFn(handshakeCtx[0]); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + c[0].handshakeErr = _r$3; + /* */ if ($interfaceIsEqual(c[0].handshakeErr, $ifaceNil)) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if ($interfaceIsEqual(c[0].handshakeErr, $ifaceNil)) { */ case 16: c[0].handshakes = c[0].handshakes + (1) >> 0; - $s = 16; continue; - /* } else { */ case 15: - _r$3 = c[0].flush(); /* */ $s = 17; case 17: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$3; - /* } */ case 16: + $s = 18; continue; + /* } else { */ case 17: + _r$4 = c[0].flush(); /* */ $s = 19; case 19: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4; + /* } */ case 18: if ($interfaceIsEqual(c[0].handshakeErr, $ifaceNil) && !c[0].isHandshakeComplete.Load()) { c[0].handshakeErr = errors.New("tls: internal error: handshake should have had a result"); } if (!($interfaceIsEqual(c[0].handshakeErr, $ifaceNil)) && c[0].isHandshakeComplete.Load()) { $panic(new $String("tls: internal error: handshake returned an error but is marked successful")); } + /* */ if (!(c[0].quic === ptrType$5.nil)) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (!(c[0].quic === ptrType$5.nil)) { */ case 20: + /* */ if ($interfaceIsEqual(c[0].handshakeErr, $ifaceNil)) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if ($interfaceIsEqual(c[0].handshakeErr, $ifaceNil)) { */ case 22: + c[0].quicHandshakeComplete(); + c[0].quicSetReadSecret(3, c[0].cipherSuite, c[0].in$30.trafficSecret); + $s = 24; continue; + /* } else { */ case 23: + a[0] = 0; + $r = c[0].out.Mutex.Lock(); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$5 = errors.As(c[0].out.err, (a.$ptr || (a.$ptr = new ptrType$27(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, a)))); /* */ $s = 28; case 28: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (!_r$5) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (!_r$5) { */ case 26: + a[0] = 80; + /* } */ case 27: + $r = c[0].out.Mutex.Unlock(); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$6 = fmt.Errorf("%w%.0w", new sliceType$7([c[0].handshakeErr, new AlertError(((a[0] << 24 >>> 24)))])); /* */ $s = 30; case 30: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + c[0].handshakeErr = _r$6; + /* } */ case 24: + $close(c[0].quic.blockedc); + $close(c[0].quic.signalc); + /* } */ case 21: ret[0] = c[0].handshakeErr; $24r$2 = ret[0]; - $s = 18; case 18: return $24r$2; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return ret[0]; } if($curGoroutine.asleep) { var $f = {$blk: handshakeContext, $c: true, $r, $24r, $24r$1, $24r$2, _r, _r$1, _r$2, _r$3, _tuple, c, cancel, ctx, done, err, handshakeCtx, interruptRes, ret, $s, $deferred};return $f; } } + $s = 31; case 31: return $24r$2; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return ret[0]; } if($curGoroutine.asleep) { var $f = {$blk: handshakeContext, $c: true, $r, $24r, $24r$1, $24r$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, a, c, cancel, ctx, done, err, handshakeCtx, interruptRes, ret, $s, $deferred};return $f; } } }; - $ptrType(Conn).prototype.ConnectionState = function ConnectionState$1() { + $ptrType(Conn).prototype.ConnectionState = function ConnectionState$2() { var {$24r, c, $s, $deferred, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); c = this; @@ -262806,7 +265196,7 @@ $packages["crypto/tls"] = (function() { $deferred.push([$methodVal(c.handshakeMutex, "Unlock"), []]); $24r = c.connectionStateLocked(); $s = 2; case 2: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return new ConnectionState.ptr(0, false, false, 0, "", false, "", sliceType$12.nil, sliceType$14.nil, sliceType$11.nil, sliceType$6.nil, sliceType$6.nil, $throwNilPointerError); } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: ConnectionState$1, $c: true, $r, $24r, c, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; return new ConnectionState.ptr(0, false, false, 0, "", false, "", sliceType$12.nil, sliceType$14.nil, sliceType$11.nil, sliceType$6.nil, sliceType$6.nil, $throwNilPointerError); } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: ConnectionState$2, $c: true, $r, $24r, c, $s, $deferred};return $f; } } }; $ptrType(Conn).prototype.connectionStateLocked = function connectionStateLocked() { var c, state; @@ -262823,7 +265213,7 @@ $packages["crypto/tls"] = (function() { state.VerifiedChains = c.verifiedChains; state.SignedCertificateTimestamps = c.scts; state.OCSPResponse = c.ocspResponse; - if (!c.didResume && !((c.vers === 772))) { + if ((!c.didResume || c.extMasterSecret) && !((c.vers === 772))) { if (c.clientFinishedIsFirst) { state.TLSUnique = new sliceType$6(c.clientFinished); } else { @@ -262848,7 +265238,7 @@ $packages["crypto/tls"] = (function() { /* */ } return; } } catch(err) { $err = err; $s = -1; return sliceType$6.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: OCSPResponse, $c: true, $r, $24r, c, $s, $deferred};return $f; } } }; $ptrType(Conn).prototype.VerifyHostname = function VerifyHostname(host) { - var {$24r, $24r$1, $24r$2, $24r$3, c, host, x, $s, $deferred, $r, $c} = $restore(this, {host}); + var {$24r, $24r$1, $24r$2, $24r$3, _r, c, host, x, $s, $deferred, $r, $c} = $restore(this, {host}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); c = this; $r = c.handshakeMutex.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } @@ -262871,11 +265261,12 @@ $packages["crypto/tls"] = (function() { $24r$2 = errors.New("tls: handshake did not verify certificate chain"); $s = 10; case 10: return $24r$2; /* } */ case 9: - $24r$3 = (x = c.peerCertificates, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).VerifyHostname(host); - $s = 11; case 11: return $24r$3; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: VerifyHostname, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, c, host, x, $s, $deferred};return $f; } } + _r = (x = c.peerCertificates, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).VerifyHostname(host); /* */ $s = 11; case 11: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r$3 = _r; + $s = 12; case 12: return $24r$3; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: VerifyHostname, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, _r, c, host, x, $s, $deferred};return $f; } } }; - SignatureScheme.prototype.String = function String() { + SignatureScheme.prototype.String = function String$1() { var i, x; i = this.$val; if ((i === 513)) { @@ -262902,7 +265293,7 @@ $packages["crypto/tls"] = (function() { } }; $ptrType(SignatureScheme).prototype.String = function(...$args) { return new SignatureScheme(this.$get()).String(...$args); }; - CurveID.prototype.String = function String$1() { + CurveID.prototype.String = function String$2() { var i, x; i = this.$val; if (23 <= i && i <= 25) { @@ -262915,7 +265306,7 @@ $packages["crypto/tls"] = (function() { } }; $ptrType(CurveID).prototype.String = function(...$args) { return new CurveID(this.$get()).String(...$args); }; - ClientAuthType.prototype.String = function String$2() { + ClientAuthType.prototype.String = function String$3() { var i, x; i = this.$val; if (i < 0 || i >= 5) { @@ -262955,12 +265346,11 @@ $packages["crypto/tls"] = (function() { $ptrType(Config).prototype.ticketKeyFromBytes = function ticketKeyFromBytes(b) { var {_r, b, c, hashed, key, $s, $r, $c} = $restore(this, {b}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - key = new ticketKey.ptr(arrayType$4.zero(), arrayType$4.zero(), arrayType$4.zero(), new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$9.nil)); + key = new ticketKey.ptr(arrayType$4.zero(), arrayType$4.zero(), new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$10.nil)); c = this; - hashed = $clone(sha512.Sum512(new sliceType$6(b)), arrayType$7); - $copySlice(new sliceType$6(key.keyName), $subslice(new sliceType$6(hashed), 0, 16)); - $copySlice(new sliceType$6(key.aesKey), $subslice(new sliceType$6(hashed), 16, 32)); - $copySlice(new sliceType$6(key.hmacKey), $subslice(new sliceType$6(hashed), 32, 48)); + hashed = $clone(sha512.Sum512(new sliceType$6(b)), arrayType$8); + $copySlice(new sliceType$6(key.aesKey), $subslice(new sliceType$6(hashed), 16)); + $copySlice(new sliceType$6(key.hmacKey), $subslice(new sliceType$6(hashed), 32)); _r = c.time(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } time.Time.copy(key.created, _r); ticketKey.copy(key, key); @@ -262971,14 +265361,14 @@ $packages["crypto/tls"] = (function() { var {$24r, c, $s, $deferred, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); c = this; - if (c === ptrType$5.nil) { - $s = -1; return ptrType$5.nil; + if (c === ptrType$6.nil) { + $s = -1; return ptrType$6.nil; } $r = c.mutex.RLock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $deferred.push([$methodVal(c.mutex, "RUnlock"), []]); - $24r = new Config.ptr(c.Rand, c.Time, c.Certificates, c.NameToCertificate, c.GetCertificate, c.GetClientCertificate, c.GetConfigForClient, c.VerifyPeerCertificate, c.VerifyConnection, c.RootCAs, c.NextProtos, c.ServerName, c.ClientAuth, c.ClientCAs, c.InsecureSkipVerify, c.CipherSuites, c.PreferServerCipherSuites, c.SessionTicketsDisabled, $clone(c.SessionTicketKey, arrayType), c.ClientSessionCache, c.MinVersion, c.MaxVersion, c.CurvePreferences, c.DynamicRecordSizingDisabled, c.Renegotiation, c.KeyLogWriter, new sync.RWMutex.ptr(new sync.Mutex.ptr(0, 0), 0, 0, new atomic.Int32.ptr(new atomic.noCopy.ptr(), 0), new atomic.Int32.ptr(new atomic.noCopy.ptr(), 0)), c.sessionTicketKeys, c.autoSessionTicketKeys); + $24r = new Config.ptr(c.Rand, c.Time, c.Certificates, c.NameToCertificate, c.GetCertificate, c.GetClientCertificate, c.GetConfigForClient, c.VerifyPeerCertificate, c.VerifyConnection, c.RootCAs, c.NextProtos, c.ServerName, c.ClientAuth, c.ClientCAs, c.InsecureSkipVerify, c.CipherSuites, c.PreferServerCipherSuites, c.SessionTicketsDisabled, $clone(c.SessionTicketKey, arrayType), c.ClientSessionCache, c.UnwrapSession, c.WrapSession, c.MinVersion, c.MaxVersion, c.CurvePreferences, c.DynamicRecordSizingDisabled, c.Renegotiation, c.KeyLogWriter, new sync.RWMutex.ptr(new sync.Mutex.ptr(0, 0), 0, 0, new atomic.Int32.ptr(new atomic.noCopy.ptr(), 0), new atomic.Int32.ptr(new atomic.noCopy.ptr(), 0)), c.sessionTicketKeys, c.autoSessionTicketKeys); $s = 2; case 2: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$5.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Clone, $c: true, $r, $24r, c, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$6.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Clone, $c: true, $r, $24r, c, $s, $deferred};return $f; } } }; $ptrType(Config).prototype.initLegacySessionTicketKeyRLocked = function initLegacySessionTicketKeyRLocked() { var {_r, _r$1, _r$2, _tuple, c, err, $s, $deferred, $r, $c} = $restore(this, {}); @@ -263017,9 +265407,9 @@ $packages["crypto/tls"] = (function() { var {$24r, $24r$1, $24r$2, $24r$3, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _tuple, _v, _v$1, c, configForClient, err, k, newKey, ret, valid, x, x$1, x$2, x$3, x$4, $s, $deferred, $r, $c} = $restore(this, {configForClient}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); c = this; - /* */ if (!(configForClient === ptrType$5.nil)) { $s = 1; continue; } + /* */ if (!(configForClient === ptrType$6.nil)) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (!(configForClient === ptrType$5.nil)) { */ case 1: + /* if (!(configForClient === ptrType$6.nil)) { */ case 1: $r = configForClient.mutex.RLock(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } if (configForClient.SessionTicketsDisabled) { $s = -1; return sliceType$5.nil; @@ -263175,15 +265565,15 @@ $packages["crypto/tls"] = (function() { _i++; continue; } - if ((c === ptrType$5.nil || (c.MinVersion === 0)) && isClient && v < 771) { + if ((c === ptrType$6.nil || (c.MinVersion === 0)) && isClient && v < 771) { _i++; continue; } - if (!(c === ptrType$5.nil) && !((c.MinVersion === 0)) && v < c.MinVersion) { + if (!(c === ptrType$6.nil) && !((c.MinVersion === 0)) && v < c.MinVersion) { _i++; continue; } - if (!(c === ptrType$5.nil) && !((c.MaxVersion === 0)) && v > c.MaxVersion) { + if (!(c === ptrType$6.nil) && !((c.MaxVersion === 0)) && v > c.MaxVersion) { _i++; continue; } @@ -263224,7 +265614,7 @@ $packages["crypto/tls"] = (function() { if (needFIPS()) { return fipsCurvePreferences(c); } - if (c === ptrType$5.nil || (c.CurvePreferences.$length === 0)) { + if (c === ptrType$6.nil || (c.CurvePreferences.$length === 0)) { return defaultCurvePreferences; } return c.CurvePreferences; @@ -263279,22 +265669,22 @@ $packages["crypto/tls"] = (function() { _tuple = _r; cert$1 = _tuple[0]; err = _tuple[1]; - if (!(cert$1 === ptrType$32.nil) || !($interfaceIsEqual(err, $ifaceNil))) { + if (!(cert$1 === ptrType$34.nil) || !($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [cert$1, err]; } /* } */ case 2: if (c.Certificates.$length === 0) { - $s = -1; return [ptrType$32.nil, errNoCertificates]; + $s = -1; return [ptrType$34.nil, errNoCertificates]; } if (c.Certificates.$length === 1) { - $s = -1; return [(x = c.Certificates, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])), $ifaceNil]; + $s = -1; return [(x = c.Certificates, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + 0, ptrType$34))), $ifaceNil]; } /* */ if (!(c.NameToCertificate === false)) { $s = 4; continue; } /* */ $s = 5; continue; /* if (!(c.NameToCertificate === false)) { */ case 4: _r$1 = strings.ToLower(clientHello.ServerName); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } name = _r$1; - _tuple$1 = (_entry = $mapIndex(c.NameToCertificate,$String.keyFor(name)), _entry !== undefined ? [_entry.v, true] : [ptrType$32.nil, false]); + _tuple$1 = (_entry = $mapIndex(c.NameToCertificate,$String.keyFor(name)), _entry !== undefined ? [_entry.v, true] : [ptrType$34.nil, false]); cert$2 = _tuple$1[0]; ok = _tuple$1[1]; if (ok) { @@ -263304,7 +265694,7 @@ $packages["crypto/tls"] = (function() { labels = strings.Split(name, "."); (0 >= labels.$length ? ($throwRuntimeError("index out of range"), undefined) : labels.$array[labels.$offset + 0] = "*"); wildcardName = strings.Join(labels, "."); - _tuple$2 = (_entry$1 = $mapIndex(c.NameToCertificate,$String.keyFor(wildcardName)), _entry$1 !== undefined ? [_entry$1.v, true] : [ptrType$32.nil, false]); + _tuple$2 = (_entry$1 = $mapIndex(c.NameToCertificate,$String.keyFor(wildcardName)), _entry$1 !== undefined ? [_entry$1.v, true] : [ptrType$34.nil, false]); cert$3 = _tuple$2[0]; ok$1 = _tuple$2[1]; if (ok$1) { @@ -263325,11 +265715,11 @@ $packages["crypto/tls"] = (function() { _i++; $s = 7; continue; case 8: - $s = -1; return [(x$1 = c.Certificates, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])), $ifaceNil]; + $s = -1; return [(x$1 = c.Certificates, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + 0, ptrType$34))), $ifaceNil]; /* */ } return; } var $f = {$blk: getCertificate, $c: true, $r, _entry, _entry$1, _i, _r, _r$1, _r$2, _ref, _tuple, _tuple$1, _tuple$2, c, cert, cert$1, cert$2, cert$3, clientHello, err, err$1, labels, name, ok, ok$1, wildcardName, x, x$1, $s};return $f; }; $ptrType(ClientHelloInfo).prototype.SupportsCertificate = function SupportsCertificate(c) { - var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, _1, _i, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, c, c$1, chi, cipherSuite$1, config, curve, curveOk, ecdsaCipherSuite, err, err$1, err$2, ok, ok$1, priv, pub, pub$1, pub$2, pub$3, supportsRSAFallback, vers, x509Cert, $s, $r, $c} = $restore(this, {c}); + var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, _1, _i, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, c, c$1, chi, cipherSuite$1, config, curve, curveOk, ecdsaCipherSuite, err, err$1, err$2, ok, ok$1, priv, pub, pub$1, pub$2, pub$3, supportsRSAFallback, vers, x509Cert, $s, $r, $c} = $restore(this, {c}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: c = [c]; chi = [chi]; @@ -263338,8 +265728,8 @@ $packages["crypto/tls"] = (function() { vers = [vers]; chi[0] = this; config[0] = chi[0].config; - if (config[0] === ptrType$5.nil) { - config[0] = new Config.ptr($ifaceNil, $throwNilPointerError, sliceType$1.nil, false, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, ptrType.nil, sliceType$2.nil, "", 0, ptrType.nil, false, sliceType$3.nil, false, false, arrayType.zero(), $ifaceNil, 0, 0, sliceType$4.nil, false, 0, $ifaceNil, new sync.RWMutex.ptr(new sync.Mutex.ptr(0, 0), 0, 0, new atomic.Int32.ptr(new atomic.noCopy.ptr(), 0), new atomic.Int32.ptr(new atomic.noCopy.ptr(), 0)), sliceType$5.nil, sliceType$5.nil); + if (config[0] === ptrType$6.nil) { + config[0] = new Config.ptr($ifaceNil, $throwNilPointerError, sliceType$1.nil, false, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, ptrType.nil, sliceType$2.nil, "", 0, ptrType.nil, false, sliceType$3.nil, false, false, arrayType.zero(), $ifaceNil, $throwNilPointerError, $throwNilPointerError, 0, 0, sliceType$4.nil, false, 0, $ifaceNil, new sync.RWMutex.ptr(new sync.Mutex.ptr(0, 0), 0, 0, new atomic.Int32.ptr(new atomic.noCopy.ptr(), 0), new atomic.Int32.ptr(new atomic.noCopy.ptr(), 0)), sliceType$5.nil, sliceType$5.nil); } _tuple = config[0].mutualVersion(false, chi[0].SupportedVersions); vers[0] = _tuple[0]; @@ -263361,17 +265751,18 @@ $packages["crypto/tls"] = (function() { $24r = _r$1; $s = 7; case 7: return $24r; /* } */ case 5: - err$1 = x509Cert.VerifyHostname(chi[0].ServerName); - /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 8: - _r$2 = fmt.Errorf("certificate is not valid for requested server name: %w", new sliceType$7([err$1])); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r$1 = _r$2; - $s = 11; case 11: return $24r$1; - /* } */ case 9: + _r$2 = x509Cert.VerifyHostname(chi[0].ServerName); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + err$1 = _r$2; + /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 9: + _r$3 = fmt.Errorf("certificate is not valid for requested server name: %w", new sliceType$7([err$1])); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r$1 = _r$3; + $s = 12; case 12: return $24r$1; + /* } */ case 10: /* } */ case 2: supportsRSAFallback = (function(c, chi, config, ecdsaCipherSuite, vers) { return function ClientHelloInfo·SupportsCertificate·func1(unsupported) { - var {_r$3, _r$4, _tuple$2, _tuple$3, ok$1, ok$2, priv, rsaCipherSuite, unsupported, $s, $r, $c} = $restore(this, {unsupported}); + var {_r$4, _r$5, _tuple$2, _tuple$3, ok$1, ok$2, priv, rsaCipherSuite, unsupported, $s, $r, $c} = $restore(this, {unsupported}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if (vers[0] === 772) { $s = -1; return unsupported; @@ -263382,8 +265773,8 @@ $packages["crypto/tls"] = (function() { /* */ if (ok$1) { $s = 1; continue; } /* */ $s = 2; continue; /* if (ok$1) { */ case 1: - _r$3 = priv.Public(); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple$3 = $assertType(_r$3, ptrType$13, true); + _r$4 = priv.Public(); /* */ $s = 4; case 4: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$3 = $assertType(_r$4, ptrType$14, true); ok$2 = _tuple$3[1]; if (!ok$2) { $s = -1; return unsupported; @@ -263392,7 +265783,7 @@ $packages["crypto/tls"] = (function() { /* } else { */ case 2: $s = -1; return unsupported; /* } */ case 3: - _r$4 = selectCipherSuite(chi[0].CipherSuites, config[0].cipherSuites(), (function(c, chi, config, ecdsaCipherSuite, vers) { return function ClientHelloInfo·SupportsCertificate·func1·func1(c$1) { + _r$5 = selectCipherSuite(chi[0].CipherSuites, config[0].cipherSuites(), (function(c, chi, config, ecdsaCipherSuite, vers) { return function ClientHelloInfo·SupportsCertificate·func1·func1(c$1) { var c$1; if (!(((c$1.flags & 1) === 0))) { return false; @@ -263401,78 +265792,78 @@ $packages["crypto/tls"] = (function() { return false; } return true; - }; })(c, chi, config, ecdsaCipherSuite, vers)); /* */ $s = 5; case 5: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - rsaCipherSuite = _r$4; - if (rsaCipherSuite === ptrType$3.nil) { + }; })(c, chi, config, ecdsaCipherSuite, vers)); /* */ $s = 5; case 5: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + rsaCipherSuite = _r$5; + if (rsaCipherSuite === ptrType$2.nil) { $s = -1; return unsupported; } $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: ClientHelloInfo·SupportsCertificate·func1, $c: true, $r, _r$3, _r$4, _tuple$2, _tuple$3, ok$1, ok$2, priv, rsaCipherSuite, unsupported, $s};return $f; + /* */ } return; } var $f = {$blk: ClientHelloInfo·SupportsCertificate·func1, $c: true, $r, _r$4, _r$5, _tuple$2, _tuple$3, ok$1, ok$2, priv, rsaCipherSuite, unsupported, $s};return $f; }; })(c, chi, config, ecdsaCipherSuite, vers); - /* */ if (chi[0].SignatureSchemes.$length > 0) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (chi[0].SignatureSchemes.$length > 0) { */ case 12: - _r$3 = selectSignatureScheme(vers[0], c[0], chi[0].SignatureSchemes); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple$2 = _r$3; + /* */ if (chi[0].SignatureSchemes.$length > 0) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (chi[0].SignatureSchemes.$length > 0) { */ case 13: + _r$4 = selectSignatureScheme(vers[0], c[0], chi[0].SignatureSchemes); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$2 = _r$4; err$2 = _tuple$2[1]; - /* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 15; continue; } - /* */ $s = 16; continue; - /* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 15: - _r$4 = supportsRSAFallback(err$2); /* */ $s = 17; case 17: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $24r$2 = _r$4; - $s = 18; case 18: return $24r$2; - /* } */ case 16: - /* } */ case 13: + /* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 16: + _r$5 = supportsRSAFallback(err$2); /* */ $s = 18; case 18: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $24r$2 = _r$5; + $s = 19; case 19: return $24r$2; + /* } */ case 17: + /* } */ case 14: if (vers[0] === 772) { $s = -1; return $ifaceNil; } - /* */ if (!supportsECDHE(config[0], chi[0].SupportedCurves, chi[0].SupportedPoints)) { $s = 19; continue; } - /* */ $s = 20; continue; - /* if (!supportsECDHE(config[0], chi[0].SupportedCurves, chi[0].SupportedPoints)) { */ case 19: - _r$5 = supportsRSAFallback(errors.New("client doesn't support ECDHE, can only use legacy RSA key exchange")); /* */ $s = 21; case 21: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - $24r$3 = _r$5; - $s = 22; case 22: return $24r$3; - /* } */ case 20: + /* */ if (!supportsECDHE(config[0], chi[0].SupportedCurves, chi[0].SupportedPoints)) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (!supportsECDHE(config[0], chi[0].SupportedCurves, chi[0].SupportedPoints)) { */ case 20: + _r$6 = supportsRSAFallback(errors.New("client doesn't support ECDHE, can only use legacy RSA key exchange")); /* */ $s = 22; case 22: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $24r$3 = _r$6; + $s = 23; case 23: return $24r$3; + /* } */ case 21: ecdsaCipherSuite[0] = false; _tuple$3 = $assertType(c[0].PrivateKey, crypto.Signer, true); priv = _tuple$3[0]; ok$1 = _tuple$3[1]; - /* */ if (ok$1) { $s = 23; continue; } - /* */ $s = 24; continue; - /* if (ok$1) { */ case 23: - _r$6 = priv.Public(); /* */ $s = 26; case 26: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _ref = _r$6; - /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 27; continue; } - /* */ if ($assertType(_ref, ed25519.PublicKey, true)[1]) { $s = 28; continue; } - /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 29; continue; } - /* */ $s = 30; continue; - /* if ($assertType(_ref, ptrType$14, true)[1]) { */ case 27: + /* */ if (ok$1) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (ok$1) { */ case 24: + _r$7 = priv.Public(); /* */ $s = 27; case 27: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _ref = _r$7; + /* */ if ($assertType(_ref, ptrType$15, true)[1]) { $s = 28; continue; } + /* */ if ($assertType(_ref, ed25519.PublicKey, true)[1]) { $s = 29; continue; } + /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 30; continue; } + /* */ $s = 31; continue; + /* if ($assertType(_ref, ptrType$15, true)[1]) { */ case 28: pub = _ref.$val; curve = 0; _1 = pub.Curve; - _r$7 = elliptic.P256(); /* */ $s = 38; case 38: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - /* */ if ($interfaceIsEqual(_1, (_r$7))) { $s = 33; continue; } - _r$8 = elliptic.P384(); /* */ $s = 39; case 39: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$8 = elliptic.P256(); /* */ $s = 39; case 39: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } /* */ if ($interfaceIsEqual(_1, (_r$8))) { $s = 34; continue; } - _r$9 = elliptic.P521(); /* */ $s = 40; case 40: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$9 = elliptic.P384(); /* */ $s = 40; case 40: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } /* */ if ($interfaceIsEqual(_1, (_r$9))) { $s = 35; continue; } - /* */ $s = 36; continue; - /* if ($interfaceIsEqual(_1, (_r$7))) { */ case 33: + _r$10 = elliptic.P521(); /* */ $s = 41; case 41: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + /* */ if ($interfaceIsEqual(_1, (_r$10))) { $s = 36; continue; } + /* */ $s = 37; continue; + /* if ($interfaceIsEqual(_1, (_r$8))) { */ case 34: curve = 23; - $s = 37; continue; - /* } else if ($interfaceIsEqual(_1, (_r$8))) { */ case 34: - curve = 24; - $s = 37; continue; + $s = 38; continue; /* } else if ($interfaceIsEqual(_1, (_r$9))) { */ case 35: + curve = 24; + $s = 38; continue; + /* } else if ($interfaceIsEqual(_1, (_r$10))) { */ case 36: curve = 25; - $s = 37; continue; - /* } else { */ case 36: - _r$10 = unsupportedCertificateError(c[0]); /* */ $s = 41; case 41: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _r$11 = supportsRSAFallback(_r$10); /* */ $s = 42; case 42: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - $24r$4 = _r$11; - $s = 43; case 43: return $24r$4; - /* } */ case 37: - case 32: + $s = 38; continue; + /* } else { */ case 37: + _r$11 = unsupportedCertificateError(c[0]); /* */ $s = 42; case 42: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _r$12 = supportsRSAFallback(_r$11); /* */ $s = 43; case 43: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + $24r$4 = _r$12; + $s = 44; case 44: return $24r$4; + /* } */ case 38: + case 33: curveOk = false; _ref$1 = chi[0].SupportedCurves; _i = 0; @@ -263489,32 +265880,32 @@ $packages["crypto/tls"] = (function() { $s = -1; return errors.New("client doesn't support certificate curve"); } ecdsaCipherSuite[0] = true; - $s = 31; continue; - /* } else if ($assertType(_ref, ed25519.PublicKey, true)[1]) { */ case 28: + $s = 32; continue; + /* } else if ($assertType(_ref, ed25519.PublicKey, true)[1]) { */ case 29: pub$1 = _ref.$val; if (vers[0] < 771 || (chi[0].SignatureSchemes.$length === 0)) { $s = -1; return errors.New("connection doesn't support Ed25519"); } ecdsaCipherSuite[0] = true; - $s = 31; continue; - /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 29: + $s = 32; continue; + /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 30: pub$2 = _ref.$val; - $s = 31; continue; - /* } else { */ case 30: + $s = 32; continue; + /* } else { */ case 31: pub$3 = _ref; - _r$12 = unsupportedCertificateError(c[0]); /* */ $s = 44; case 44: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _r$13 = supportsRSAFallback(_r$12); /* */ $s = 45; case 45: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - $24r$5 = _r$13; - $s = 46; case 46: return $24r$5; - /* } */ case 31: - $s = 25; continue; - /* } else { */ case 24: - _r$14 = unsupportedCertificateError(c[0]); /* */ $s = 47; case 47: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - _r$15 = supportsRSAFallback(_r$14); /* */ $s = 48; case 48: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - $24r$6 = _r$15; - $s = 49; case 49: return $24r$6; - /* } */ case 25: - _r$16 = selectCipherSuite(chi[0].CipherSuites, config[0].cipherSuites(), (function(c, chi, config, ecdsaCipherSuite, vers) { return function ClientHelloInfo·SupportsCertificate·func2(c$2) { + _r$13 = unsupportedCertificateError(c[0]); /* */ $s = 45; case 45: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _r$14 = supportsRSAFallback(_r$13); /* */ $s = 46; case 46: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + $24r$5 = _r$14; + $s = 47; case 47: return $24r$5; + /* } */ case 32: + $s = 26; continue; + /* } else { */ case 25: + _r$15 = unsupportedCertificateError(c[0]); /* */ $s = 48; case 48: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + _r$16 = supportsRSAFallback(_r$15); /* */ $s = 49; case 49: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + $24r$6 = _r$16; + $s = 50; case 50: return $24r$6; + /* } */ case 26: + _r$17 = selectCipherSuite(chi[0].CipherSuites, config[0].cipherSuites(), (function(c, chi, config, ecdsaCipherSuite, vers) { return function ClientHelloInfo·SupportsCertificate·func2(c$2) { var c$2; if ((c$2.flags & 1) === 0) { return false; @@ -263532,17 +265923,17 @@ $packages["crypto/tls"] = (function() { return false; } return true; - }; })(c, chi, config, ecdsaCipherSuite, vers)); /* */ $s = 50; case 50: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - cipherSuite$1 = _r$16; - /* */ if (cipherSuite$1 === ptrType$3.nil) { $s = 51; continue; } - /* */ $s = 52; continue; - /* if (cipherSuite$1 === ptrType$3.nil) { */ case 51: - _r$17 = supportsRSAFallback(errors.New("client doesn't support any cipher suites compatible with the certificate")); /* */ $s = 53; case 53: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - $24r$7 = _r$17; - $s = 54; case 54: return $24r$7; - /* } */ case 52: + }; })(c, chi, config, ecdsaCipherSuite, vers)); /* */ $s = 51; case 51: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + cipherSuite$1 = _r$17; + /* */ if (cipherSuite$1 === ptrType$2.nil) { $s = 52; continue; } + /* */ $s = 53; continue; + /* if (cipherSuite$1 === ptrType$2.nil) { */ case 52: + _r$18 = supportsRSAFallback(errors.New("client doesn't support any cipher suites compatible with the certificate")); /* */ $s = 54; case 54: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + $24r$7 = _r$18; + $s = 55; case 55: return $24r$7; + /* } */ case 53: $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: SupportsCertificate, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, _1, _i, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, c, c$1, chi, cipherSuite$1, config, curve, curveOk, ecdsaCipherSuite, err, err$1, err$2, ok, ok$1, priv, pub, pub$1, pub$2, pub$3, supportsRSAFallback, vers, x509Cert, $s};return $f; + /* */ } return; } var $f = {$blk: SupportsCertificate, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, _1, _i, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, c, c$1, chi, cipherSuite$1, config, curve, curveOk, ecdsaCipherSuite, err, err$1, err$2, ok, ok$1, priv, pub, pub$1, pub$2, pub$3, supportsRSAFallback, vers, x509Cert, $s};return $f; }; $ptrType(CertificateRequestInfo).prototype.SupportsCertificate = function SupportsCertificate$1(c) { var {$24r, _i, _i$1, _r, _r$1, _r$2, _ref, _ref$1, _tuple, _tuple$1, c, ca, cert, cri, err, err$1, j, x509Cert, $s, $r, $c} = $restore(this, {c}); @@ -263564,9 +265955,9 @@ $packages["crypto/tls"] = (function() { j = _i; cert = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); x509Cert = c.Leaf; - /* */ if (!((j === 0)) || x509Cert === ptrType$6.nil) { $s = 4; continue; } + /* */ if (!((j === 0)) || x509Cert === ptrType$7.nil) { $s = 4; continue; } /* */ $s = 5; continue; - /* if (!((j === 0)) || x509Cert === ptrType$6.nil) { */ case 4: + /* if (!((j === 0)) || x509Cert === ptrType$7.nil) { */ case 4: err$1 = $ifaceNil; _r$1 = x509.ParseCertificate(cert); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$1 = _r$1; @@ -263606,7 +265997,7 @@ $packages["crypto/tls"] = (function() { /* while (true) { */ case 1: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } i = _i; - cert = (x = c.Certificates, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + cert = (x = c.Certificates, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + i, ptrType$34))); _r = cert.leaf(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; x509Cert = _tuple[0]; @@ -263653,7 +266044,7 @@ $packages["crypto/tls"] = (function() { var {$24r, _r, c, x, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: c = this; - if (!(c.Leaf === ptrType$6.nil)) { + if (!(c.Leaf === ptrType$7.nil)) { $s = -1; return [c.Leaf, $ifaceNil]; } _r = x509.ParseCertificate((x = c.Certificate, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } @@ -263709,7 +266100,7 @@ $packages["crypto/tls"] = (function() { /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } id = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); candidate = cipherSuiteByID(id); - if (candidate === ptrType$3.nil) { _v = true; $s = 5; continue s; } + if (candidate === ptrType$2.nil) { _v = true; $s = 5; continue s; } _r = ok(candidate); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _v = !_r; case 5: /* */ if (_v) { $s = 3; continue; } @@ -263731,7 +266122,7 @@ $packages["crypto/tls"] = (function() { _i++; $s = 1; continue; case 2: - $s = -1; return ptrType$3.nil; + $s = -1; return ptrType$2.nil; /* */ } return; } var $f = {$blk: selectCipherSuite$1, $c: true, $r, _i, _i$1, _r, _ref, _ref$1, _v, candidate, id, ids, ok, suppID, supportedIDs, $s};return $f; }; aesgcmPreferred = function aesgcmPreferred$1(ciphers) { @@ -263742,11 +266133,11 @@ $packages["crypto/tls"] = (function() { if (!(_i < _ref.$length)) { break; } cID = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); c = cipherSuiteByID(cID); - if (!(c === ptrType$3.nil)) { + if (!(c === ptrType$2.nil)) { return (_entry = $mapIndex(aesgcmCiphers,$Uint16.keyFor(cID)), _entry !== undefined ? _entry.v : false); } c$1 = cipherSuiteTLS13ByID(cID); - if (!(c$1 === ptrType$2.nil)) { + if (!(c$1 === ptrType$3.nil)) { return (_entry$1 = $mapIndex(aesgcmCiphers,$Uint16.keyFor(cID)), _entry$1 !== undefined ? _entry$1.v : false); } _i++; @@ -264089,11 +266480,11 @@ $packages["crypto/tls"] = (function() { }; ecdheECDSAKA = function ecdheECDSAKA$1(version) { var version; - return new ecdheKeyAgreement.ptr(version, false, ptrType$23.nil, ptrType$25.nil, sliceType$6.nil); + return new ecdheKeyAgreement.ptr(version, false, ptrType$29.nil, ptrType$31.nil, sliceType$6.nil); }; ecdheRSAKA = function ecdheRSAKA$1(version) { var version; - return new ecdheKeyAgreement.ptr(version, true, ptrType$23.nil, ptrType$25.nil, sliceType$6.nil); + return new ecdheKeyAgreement.ptr(version, true, ptrType$29.nil, ptrType$31.nil, sliceType$6.nil); }; mutualCipherSuite = function mutualCipherSuite$1(have, want) { var _i, _ref, have, id, want; @@ -264107,7 +266498,7 @@ $packages["crypto/tls"] = (function() { } _i++; } - return ptrType$3.nil; + return ptrType$2.nil; }; cipherSuiteByID = function cipherSuiteByID$1(id) { var _i, _ref, cipherSuite$1, id; @@ -264121,7 +266512,7 @@ $packages["crypto/tls"] = (function() { } _i++; } - return ptrType$3.nil; + return ptrType$2.nil; }; mutualCipherSuiteTLS13 = function mutualCipherSuiteTLS13$1(have, want) { var _i, _ref, have, id, want; @@ -264135,7 +266526,7 @@ $packages["crypto/tls"] = (function() { } _i++; } - return ptrType$2.nil; + return ptrType$3.nil; }; cipherSuiteTLS13ByID = function cipherSuiteTLS13ByID$1(id) { var _i, _ref, cipherSuite$1, id; @@ -264149,7 +266540,7 @@ $packages["crypto/tls"] = (function() { } _i++; } - return ptrType$2.nil; + return ptrType$3.nil; }; $ptrType(certCache).prototype.active = function active(e) { var a, cc, e; @@ -264186,14 +266577,14 @@ $packages["crypto/tls"] = (function() { entry = _tuple[0]; ok = _tuple[1]; if (ok) { - $s = -1; return [cc.active($assertType(entry, ptrType$52)), $ifaceNil]; + $s = -1; return [cc.active($assertType(entry, ptrType$56)), $ifaceNil]; } _r$1 = x509.ParseCertificate(der); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$1 = _r$1; cert = _tuple$1[0]; err = _tuple$1[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [ptrType$7.nil, err]; + $s = -1; return [ptrType$8.nil, err]; } entry$1 = new cacheEntry.ptr(new atomic.Int64.ptr(new atomic.noCopy.ptr(), new atomic.align64.ptr(), new $Int64(0, 0)), cert); _r$2 = cc.Map.LoadOrStore(new $String(($bytesToString(der))), entry$1); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } @@ -264201,7 +266592,7 @@ $packages["crypto/tls"] = (function() { entry$2 = _tuple$2[0]; loaded = _tuple$2[1]; if (loaded) { - $s = -1; return [cc.active($assertType(entry$2, ptrType$52)), $ifaceNil]; + $s = -1; return [cc.active($assertType(entry$2, ptrType$56)), $ifaceNil]; } $s = -1; return [cc.active(entry$1), $ifaceNil]; /* */ } return; } var $f = {$blk: newCert, $c: true, $r, _r, _r$1, _r$2, _tuple, _tuple$1, _tuple$2, cc, cert, der, entry, entry$1, entry$2, err, loaded, ok, $s};return $f; @@ -264216,7 +266607,7 @@ $packages["crypto/tls"] = (function() { /* */ if (_1 === (226)) { $s = 5; continue; } /* */ $s = 6; continue; /* if (_1 === (227)) { */ case 2: - _tuple = $assertType(pubkey, ptrType$14, true); + _tuple = $assertType(pubkey, ptrType$15, true); pubKey = _tuple[0]; ok = _tuple[1]; /* */ if (!ok) { $s = 8; continue; } @@ -264252,7 +266643,7 @@ $packages["crypto/tls"] = (function() { /* } */ case 20: $s = 7; continue; /* } else if (_1 === (225)) { */ case 4: - _tuple$2 = $assertType(pubkey, ptrType$13, true); + _tuple$2 = $assertType(pubkey, ptrType$14, true); pubKey$2 = _tuple$2[0]; ok$2 = _tuple$2[1]; /* */ if (!ok$2) { $s = 22; continue; } @@ -264268,7 +266659,7 @@ $packages["crypto/tls"] = (function() { } $s = 7; continue; /* } else if (_1 === (226)) { */ case 5: - _tuple$3 = $assertType(pubkey, ptrType$13, true); + _tuple$3 = $assertType(pubkey, ptrType$14, true); pubKey$3 = _tuple$3[0]; ok$3 = _tuple$3[1]; /* */ if (!ok$3) { $s = 26; continue; } @@ -264407,11 +266798,11 @@ $packages["crypto/tls"] = (function() { hash$1 = 0; err = $ifaceNil; _ref = pub; - /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$15, true)[1]) { $s = 2; continue; } /* */ if ($assertType(_ref, ed25519.PublicKey, true)[1]) { $s = 3; continue; } /* */ $s = 4; continue; - /* if ($assertType(_ref, ptrType$13, true)[1]) { */ case 1: + /* if ($assertType(_ref, ptrType$14, true)[1]) { */ case 1: _tmp = 225; _tmp$1 = 8; _tmp$2 = $ifaceNil; @@ -264419,7 +266810,7 @@ $packages["crypto/tls"] = (function() { hash$1 = _tmp$1; err = _tmp$2; $s = -1; return [sigType, hash$1, err]; - /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 2: + /* } else if ($assertType(_ref, ptrType$15, true)[1]) { */ case 2: _tmp$3 = 227; _tmp$4 = 3; _tmp$5 = $ifaceNil; @@ -264463,11 +266854,11 @@ $packages["crypto/tls"] = (function() { sigAlgs = sliceType.nil; _r = priv.Public(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _ref = _r; - /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$15, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 3; continue; } /* */ if ($assertType(_ref, ed25519.PublicKey, true)[1]) { $s = 4; continue; } /* */ $s = 5; continue; - /* switch (0) { default: if ($assertType(_ref, ptrType$14, true)[1]) { */ case 2: + /* switch (0) { default: if ($assertType(_ref, ptrType$15, true)[1]) { */ case 2: pub = _ref.$val; if (!((version === 772))) { sigAlgs = new sliceType([1027, 1283, 1539, 515]); @@ -264495,7 +266886,7 @@ $packages["crypto/tls"] = (function() { /* } */ case 12: case 7: $s = 6; continue; - /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 3: + /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 3: pub$1 = _ref.$val; size = pub$1.Size(); sigAlgs = $makeSlice(sliceType, 0, rsaSignatureSchemes.$length); @@ -264572,13 +266963,13 @@ $packages["crypto/tls"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: _ref = cert.PrivateKey; /* */ if ($assertType(_ref, rsa.PrivateKey, true)[1] || $assertType(_ref, ecdsa.PrivateKey, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$53, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$57, true)[1]) { $s = 2; continue; } /* */ $s = 3; continue; /* if ($assertType(_ref, rsa.PrivateKey, true)[1] || $assertType(_ref, ecdsa.PrivateKey, true)[1]) { */ case 1: _r = fmt.Errorf("tls: unsupported certificate: private key is %T, expected *%T", new sliceType$7([cert.PrivateKey, cert.PrivateKey])); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $24r = _r; $s = 5; case 5: return $24r; - /* } else if ($assertType(_ref, ptrType$53, true)[1]) { */ case 2: + /* } else if ($assertType(_ref, ptrType$57, true)[1]) { */ case 2: _r$1 = fmt.Errorf("tls: unsupported certificate: private key is *ed25519.PrivateKey, expected ed25519.PrivateKey", sliceType$7.nil); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $24r$1 = _r$1; $s = 7; case 7: return $24r$1; @@ -264595,11 +266986,11 @@ $packages["crypto/tls"] = (function() { /* } */ case 9: _r$3 = signer.Public(); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _ref$1 = _r$3; - /* */ if ($assertType(_ref$1, ptrType$14, true)[1]) { $s = 13; continue; } - /* */ if ($assertType(_ref$1, ptrType$13, true)[1]) { $s = 14; continue; } + /* */ if ($assertType(_ref$1, ptrType$15, true)[1]) { $s = 13; continue; } + /* */ if ($assertType(_ref$1, ptrType$14, true)[1]) { $s = 14; continue; } /* */ if ($assertType(_ref$1, ed25519.PublicKey, true)[1]) { $s = 15; continue; } /* */ $s = 16; continue; - /* if ($assertType(_ref$1, ptrType$14, true)[1]) { */ case 13: + /* if ($assertType(_ref$1, ptrType$15, true)[1]) { */ case 13: pub = _ref$1.$val; _1 = pub.Curve; _r$4 = elliptic.P256(); /* */ $s = 24; case 24: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } @@ -264624,7 +267015,7 @@ $packages["crypto/tls"] = (function() { /* } */ case 23: case 18: $s = 17; continue; - /* } else if ($assertType(_ref$1, ptrType$13, true)[1]) { */ case 14: + /* } else if ($assertType(_ref$1, ptrType$14, true)[1]) { */ case 14: pub$1 = _ref$1.$val; _r$9 = fmt.Errorf("tls: certificate RSA key size too small for supported signature algorithms", sliceType$7.nil); /* */ $s = 30; case 30: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } $24r$4 = _r$9; @@ -264650,7 +267041,13 @@ $packages["crypto/tls"] = (function() { $s = 39; case 39: return $24r$7; /* */ } return; } var $f = {$blk: unsupportedCertificateError$1, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, _1, _arg, _r, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, cert, ok, pub, pub$1, pub$2, pub$3, signer, $s};return $f; }; - alert.prototype.String = function String$3() { + AlertError.prototype.Error = function Error$4() { + var e; + e = this.$val; + return new alert(((e << 24 >>> 24))).String(); + }; + $ptrType(AlertError).prototype.Error = function(...$args) { return new AlertError(this.$get()).Error(...$args); }; + alert.prototype.String = function String$4() { var _entry, _tuple, e, ok, s; e = this.$val; _tuple = (_entry = $mapIndex(alertText,alert.keyFor(e)), _entry !== undefined ? [_entry.v, true] : ["", false]); @@ -264662,77 +267059,81 @@ $packages["crypto/tls"] = (function() { return "tls: alert(" + strconv.Itoa(((e >> 0))) + ")"; }; $ptrType(alert).prototype.String = function(...$args) { return new alert(this.$get()).String(...$args); }; - alert.prototype.Error = function Error$4() { + alert.prototype.Error = function Error$5() { var e; e = this.$val; return new alert(e).String(); }; $ptrType(alert).prototype.Error = function(...$args) { return new alert(this.$get()).Error(...$args); }; - ptrType$54.methods = [{prop: "Accept", name: "Accept", pkg: "", typ: $funcType([], [net.Conn, $error], false)}]; - ptrType$55.methods = [{prop: "Dial", name: "Dial", pkg: "", typ: $funcType([$String, $String], [net.Conn, $error], false)}, {prop: "netDialer", name: "netDialer", pkg: "crypto/tls", typ: $funcType([], [ptrType$11], false)}, {prop: "DialContext", name: "DialContext", pkg: "", typ: $funcType([context.Context, $String, $String], [net.Conn, $error], false)}]; - ptrType$33.methods = [{prop: "marshal", name: "marshal", pkg: "crypto/tls", typ: $funcType([], [sliceType$6, $error], false)}, {prop: "unmarshal", name: "unmarshal", pkg: "crypto/tls", typ: $funcType([sliceType$6], [$Bool], false)}]; - ptrType$56.methods = [{prop: "marshal", name: "marshal", pkg: "crypto/tls", typ: $funcType([], [sliceType$6, $error], false)}, {prop: "unmarshal", name: "unmarshal", pkg: "crypto/tls", typ: $funcType([sliceType$6], [$Bool], false)}]; + ptrType$58.methods = [{prop: "Accept", name: "Accept", pkg: "", typ: $funcType([], [net.Conn, $error], false)}]; + ptrType$59.methods = [{prop: "Dial", name: "Dial", pkg: "", typ: $funcType([$String, $String], [net.Conn, $error], false)}, {prop: "netDialer", name: "netDialer", pkg: "crypto/tls", typ: $funcType([], [ptrType$12], false)}, {prop: "DialContext", name: "DialContext", pkg: "", typ: $funcType([context.Context, $String, $String], [net.Conn, $error], false)}]; + ptrType$21.methods = [{prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType$6, $error], false)}]; + ptrType$47.methods = [{prop: "ResumptionState", name: "ResumptionState", pkg: "", typ: $funcType([], [sliceType$6, ptrType$21, $error], false)}]; + QUICEncryptionLevel.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; finishedHash.methods = [{prop: "Sum", name: "Sum", pkg: "", typ: $funcType([], [sliceType$6], false)}, {prop: "clientSum", name: "clientSum", pkg: "crypto/tls", typ: $funcType([sliceType$6], [sliceType$6], false)}, {prop: "serverSum", name: "serverSum", pkg: "crypto/tls", typ: $funcType([sliceType$6], [sliceType$6], false)}, {prop: "hashForClientCertificate", name: "hashForClientCertificate", pkg: "crypto/tls", typ: $funcType([$Uint8, crypto.Hash], [sliceType$6], false)}]; - ptrType$57.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$6], [$Int, $error], false)}, {prop: "discardHandshakeBuffer", name: "discardHandshakeBuffer", pkg: "crypto/tls", typ: $funcType([], [], false)}]; - rsaKeyAgreement.methods = [{prop: "generateServerKeyExchange", name: "generateServerKeyExchange", pkg: "crypto/tls", typ: $funcType([ptrType$5, ptrType$32, ptrType$27, ptrType$31], [ptrType$24, $error], false)}, {prop: "processClientKeyExchange", name: "processClientKeyExchange", pkg: "crypto/tls", typ: $funcType([ptrType$5, ptrType$32, ptrType$25, $Uint16], [sliceType$6, $error], false)}, {prop: "processServerKeyExchange", name: "processServerKeyExchange", pkg: "crypto/tls", typ: $funcType([ptrType$5, ptrType$27, ptrType$31, ptrType$6, ptrType$24], [$error], false)}, {prop: "generateClientKeyExchange", name: "generateClientKeyExchange", pkg: "crypto/tls", typ: $funcType([ptrType$5, ptrType$27, ptrType$6], [sliceType$6, ptrType$25, $error], false)}]; - ptrType$58.methods = [{prop: "generateServerKeyExchange", name: "generateServerKeyExchange", pkg: "crypto/tls", typ: $funcType([ptrType$5, ptrType$32, ptrType$27, ptrType$31], [ptrType$24, $error], false)}, {prop: "processClientKeyExchange", name: "processClientKeyExchange", pkg: "crypto/tls", typ: $funcType([ptrType$5, ptrType$32, ptrType$25, $Uint16], [sliceType$6, $error], false)}, {prop: "processServerKeyExchange", name: "processServerKeyExchange", pkg: "crypto/tls", typ: $funcType([ptrType$5, ptrType$27, ptrType$31, ptrType$6, ptrType$24], [$error], false)}, {prop: "generateClientKeyExchange", name: "generateClientKeyExchange", pkg: "crypto/tls", typ: $funcType([ptrType$5, ptrType$27, ptrType$6], [sliceType$6, ptrType$25, $error], false)}]; - ptrType$59.methods = [{prop: "handshake", name: "handshake", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "processClientHello", name: "processClientHello", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "checkForResumption", name: "checkForResumption", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "pickCertificate", name: "pickCertificate", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "sendDummyChangeCipherSpec", name: "sendDummyChangeCipherSpec", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "doHelloRetryRequest", name: "doHelloRetryRequest", pkg: "crypto/tls", typ: $funcType([CurveID], [$error], false)}, {prop: "sendServerParameters", name: "sendServerParameters", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "requestClientCert", name: "requestClientCert", pkg: "crypto/tls", typ: $funcType([], [$Bool], false)}, {prop: "sendServerCertificate", name: "sendServerCertificate", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "sendServerFinished", name: "sendServerFinished", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "shouldSendSessionTickets", name: "shouldSendSessionTickets", pkg: "crypto/tls", typ: $funcType([], [$Bool], false)}, {prop: "sendSessionTickets", name: "sendSessionTickets", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "readClientCertificate", name: "readClientCertificate", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "readClientFinished", name: "readClientFinished", pkg: "crypto/tls", typ: $funcType([], [$error], false)}]; - ptrType$60.methods = [{prop: "handshake", name: "handshake", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "processClientHello", name: "processClientHello", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "pickCipherSuite", name: "pickCipherSuite", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "cipherSuiteOk", name: "cipherSuiteOk", pkg: "crypto/tls", typ: $funcType([ptrType$3], [$Bool], false)}, {prop: "checkForResumption", name: "checkForResumption", pkg: "crypto/tls", typ: $funcType([], [$Bool], false)}, {prop: "doResumeHandshake", name: "doResumeHandshake", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "doFullHandshake", name: "doFullHandshake", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "establishKeys", name: "establishKeys", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "readFinished", name: "readFinished", pkg: "crypto/tls", typ: $funcType([sliceType$6], [$error], false)}, {prop: "sendSessionTicket", name: "sendSessionTicket", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "sendFinished", name: "sendFinished", pkg: "crypto/tls", typ: $funcType([sliceType$6], [$error], false)}]; - marshalingFunction.methods = [{prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([ptrType$17], [$error], false)}]; - ptrType$27.methods = [{prop: "marshal", name: "marshal", pkg: "crypto/tls", typ: $funcType([], [sliceType$6, $error], false)}, {prop: "marshalWithoutBinders", name: "marshalWithoutBinders", pkg: "crypto/tls", typ: $funcType([], [sliceType$6, $error], false)}, {prop: "updateBinders", name: "updateBinders", pkg: "crypto/tls", typ: $funcType([sliceType$11], [$error], false)}, {prop: "unmarshal", name: "unmarshal", pkg: "crypto/tls", typ: $funcType([sliceType$6], [$Bool], false)}]; - ptrType$31.methods = [{prop: "marshal", name: "marshal", pkg: "crypto/tls", typ: $funcType([], [sliceType$6, $error], false)}, {prop: "unmarshal", name: "unmarshal", pkg: "crypto/tls", typ: $funcType([sliceType$6], [$Bool], false)}]; - ptrType$40.methods = [{prop: "marshal", name: "marshal", pkg: "crypto/tls", typ: $funcType([], [sliceType$6, $error], false)}, {prop: "unmarshal", name: "unmarshal", pkg: "crypto/tls", typ: $funcType([sliceType$6], [$Bool], false)}]; - ptrType$61.methods = [{prop: "marshal", name: "marshal", pkg: "crypto/tls", typ: $funcType([], [sliceType$6, $error], false)}, {prop: "unmarshal", name: "unmarshal", pkg: "crypto/tls", typ: $funcType([sliceType$6], [$Bool], false)}]; - ptrType$47.methods = [{prop: "marshal", name: "marshal", pkg: "crypto/tls", typ: $funcType([], [sliceType$6, $error], false)}, {prop: "unmarshal", name: "unmarshal", pkg: "crypto/tls", typ: $funcType([sliceType$6], [$Bool], false)}]; - ptrType$46.methods = [{prop: "marshal", name: "marshal", pkg: "crypto/tls", typ: $funcType([], [sliceType$6, $error], false)}, {prop: "unmarshal", name: "unmarshal", pkg: "crypto/tls", typ: $funcType([sliceType$6], [$Bool], false)}]; - ptrType$41.methods = [{prop: "marshal", name: "marshal", pkg: "crypto/tls", typ: $funcType([], [sliceType$6, $error], false)}, {prop: "unmarshal", name: "unmarshal", pkg: "crypto/tls", typ: $funcType([sliceType$6], [$Bool], false)}]; - ptrType$35.methods = [{prop: "marshal", name: "marshal", pkg: "crypto/tls", typ: $funcType([], [sliceType$6, $error], false)}, {prop: "unmarshal", name: "unmarshal", pkg: "crypto/tls", typ: $funcType([sliceType$6], [$Bool], false)}]; - ptrType$28.methods = [{prop: "marshal", name: "marshal", pkg: "crypto/tls", typ: $funcType([], [sliceType$6, $error], false)}, {prop: "unmarshal", name: "unmarshal", pkg: "crypto/tls", typ: $funcType([sliceType$6], [$Bool], false)}]; - ptrType$24.methods = [{prop: "marshal", name: "marshal", pkg: "crypto/tls", typ: $funcType([], [sliceType$6, $error], false)}, {prop: "unmarshal", name: "unmarshal", pkg: "crypto/tls", typ: $funcType([sliceType$6], [$Bool], false)}]; + ptrType$61.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$6], [$Int, $error], false)}, {prop: "discardHandshakeBuffer", name: "discardHandshakeBuffer", pkg: "crypto/tls", typ: $funcType([], [], false)}]; + rsaKeyAgreement.methods = [{prop: "generateServerKeyExchange", name: "generateServerKeyExchange", pkg: "crypto/tls", typ: $funcType([ptrType$6, ptrType$34, ptrType$33, ptrType$38], [ptrType$30, $error], false)}, {prop: "processClientKeyExchange", name: "processClientKeyExchange", pkg: "crypto/tls", typ: $funcType([ptrType$6, ptrType$34, ptrType$31, $Uint16], [sliceType$6, $error], false)}, {prop: "processServerKeyExchange", name: "processServerKeyExchange", pkg: "crypto/tls", typ: $funcType([ptrType$6, ptrType$33, ptrType$38, ptrType$7, ptrType$30], [$error], false)}, {prop: "generateClientKeyExchange", name: "generateClientKeyExchange", pkg: "crypto/tls", typ: $funcType([ptrType$6, ptrType$33, ptrType$7], [sliceType$6, ptrType$31, $error], false)}]; + ptrType$62.methods = [{prop: "generateServerKeyExchange", name: "generateServerKeyExchange", pkg: "crypto/tls", typ: $funcType([ptrType$6, ptrType$34, ptrType$33, ptrType$38], [ptrType$30, $error], false)}, {prop: "processClientKeyExchange", name: "processClientKeyExchange", pkg: "crypto/tls", typ: $funcType([ptrType$6, ptrType$34, ptrType$31, $Uint16], [sliceType$6, $error], false)}, {prop: "processServerKeyExchange", name: "processServerKeyExchange", pkg: "crypto/tls", typ: $funcType([ptrType$6, ptrType$33, ptrType$38, ptrType$7, ptrType$30], [$error], false)}, {prop: "generateClientKeyExchange", name: "generateClientKeyExchange", pkg: "crypto/tls", typ: $funcType([ptrType$6, ptrType$33, ptrType$7], [sliceType$6, ptrType$31, $error], false)}]; + ptrType$63.methods = [{prop: "handshake", name: "handshake", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "processClientHello", name: "processClientHello", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "checkForResumption", name: "checkForResumption", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "pickCertificate", name: "pickCertificate", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "sendDummyChangeCipherSpec", name: "sendDummyChangeCipherSpec", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "doHelloRetryRequest", name: "doHelloRetryRequest", pkg: "crypto/tls", typ: $funcType([CurveID], [$error], false)}, {prop: "sendServerParameters", name: "sendServerParameters", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "requestClientCert", name: "requestClientCert", pkg: "crypto/tls", typ: $funcType([], [$Bool], false)}, {prop: "sendServerCertificate", name: "sendServerCertificate", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "sendServerFinished", name: "sendServerFinished", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "shouldSendSessionTickets", name: "shouldSendSessionTickets", pkg: "crypto/tls", typ: $funcType([], [$Bool], false)}, {prop: "sendSessionTickets", name: "sendSessionTickets", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "readClientCertificate", name: "readClientCertificate", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "readClientFinished", name: "readClientFinished", pkg: "crypto/tls", typ: $funcType([], [$error], false)}]; + ptrType$64.methods = [{prop: "handshake", name: "handshake", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "processClientHello", name: "processClientHello", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "pickCipherSuite", name: "pickCipherSuite", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "cipherSuiteOk", name: "cipherSuiteOk", pkg: "crypto/tls", typ: $funcType([ptrType$2], [$Bool], false)}, {prop: "checkForResumption", name: "checkForResumption", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "doResumeHandshake", name: "doResumeHandshake", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "doFullHandshake", name: "doFullHandshake", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "establishKeys", name: "establishKeys", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "readFinished", name: "readFinished", pkg: "crypto/tls", typ: $funcType([sliceType$6], [$error], false)}, {prop: "sendSessionTicket", name: "sendSessionTicket", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "sendFinished", name: "sendFinished", pkg: "crypto/tls", typ: $funcType([sliceType$6], [$error], false)}]; + marshalingFunction.methods = [{prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([ptrType$18], [$error], false)}]; + ptrType$33.methods = [{prop: "marshal", name: "marshal", pkg: "crypto/tls", typ: $funcType([], [sliceType$6, $error], false)}, {prop: "marshalWithoutBinders", name: "marshalWithoutBinders", pkg: "crypto/tls", typ: $funcType([], [sliceType$6, $error], false)}, {prop: "updateBinders", name: "updateBinders", pkg: "crypto/tls", typ: $funcType([sliceType$11], [$error], false)}, {prop: "unmarshal", name: "unmarshal", pkg: "crypto/tls", typ: $funcType([sliceType$6], [$Bool], false)}]; + ptrType$38.methods = [{prop: "marshal", name: "marshal", pkg: "crypto/tls", typ: $funcType([], [sliceType$6, $error], false)}, {prop: "unmarshal", name: "unmarshal", pkg: "crypto/tls", typ: $funcType([sliceType$6], [$Bool], false)}]; ptrType$42.methods = [{prop: "marshal", name: "marshal", pkg: "crypto/tls", typ: $funcType([], [sliceType$6, $error], false)}, {prop: "unmarshal", name: "unmarshal", pkg: "crypto/tls", typ: $funcType([sliceType$6], [$Bool], false)}]; + ptrType$65.methods = [{prop: "marshal", name: "marshal", pkg: "crypto/tls", typ: $funcType([], [sliceType$6, $error], false)}, {prop: "unmarshal", name: "unmarshal", pkg: "crypto/tls", typ: $funcType([sliceType$6], [$Bool], false)}]; + ptrType$51.methods = [{prop: "marshal", name: "marshal", pkg: "crypto/tls", typ: $funcType([], [sliceType$6, $error], false)}, {prop: "unmarshal", name: "unmarshal", pkg: "crypto/tls", typ: $funcType([sliceType$6], [$Bool], false)}]; ptrType$43.methods = [{prop: "marshal", name: "marshal", pkg: "crypto/tls", typ: $funcType([], [sliceType$6, $error], false)}, {prop: "unmarshal", name: "unmarshal", pkg: "crypto/tls", typ: $funcType([sliceType$6], [$Bool], false)}]; - ptrType$25.methods = [{prop: "marshal", name: "marshal", pkg: "crypto/tls", typ: $funcType([], [sliceType$6, $error], false)}, {prop: "unmarshal", name: "unmarshal", pkg: "crypto/tls", typ: $funcType([sliceType$6], [$Bool], false)}]; - ptrType$30.methods = [{prop: "marshal", name: "marshal", pkg: "crypto/tls", typ: $funcType([], [sliceType$6, $error], false)}, {prop: "unmarshal", name: "unmarshal", pkg: "crypto/tls", typ: $funcType([sliceType$6], [$Bool], false)}]; - ptrType$34.methods = [{prop: "marshal", name: "marshal", pkg: "crypto/tls", typ: $funcType([], [sliceType$6, $error], false)}, {prop: "unmarshal", name: "unmarshal", pkg: "crypto/tls", typ: $funcType([sliceType$6], [$Bool], false)}]; - ptrType$29.methods = [{prop: "marshal", name: "marshal", pkg: "crypto/tls", typ: $funcType([], [sliceType$6, $error], false)}, {prop: "unmarshal", name: "unmarshal", pkg: "crypto/tls", typ: $funcType([sliceType$6], [$Bool], false)}]; ptrType$44.methods = [{prop: "marshal", name: "marshal", pkg: "crypto/tls", typ: $funcType([], [sliceType$6, $error], false)}, {prop: "unmarshal", name: "unmarshal", pkg: "crypto/tls", typ: $funcType([sliceType$6], [$Bool], false)}]; + ptrType$40.methods = [{prop: "marshal", name: "marshal", pkg: "crypto/tls", typ: $funcType([], [sliceType$6, $error], false)}, {prop: "unmarshal", name: "unmarshal", pkg: "crypto/tls", typ: $funcType([sliceType$6], [$Bool], false)}]; + ptrType$35.methods = [{prop: "marshal", name: "marshal", pkg: "crypto/tls", typ: $funcType([], [sliceType$6, $error], false)}, {prop: "unmarshal", name: "unmarshal", pkg: "crypto/tls", typ: $funcType([sliceType$6], [$Bool], false)}]; + ptrType$30.methods = [{prop: "marshal", name: "marshal", pkg: "crypto/tls", typ: $funcType([], [sliceType$6, $error], false)}, {prop: "unmarshal", name: "unmarshal", pkg: "crypto/tls", typ: $funcType([sliceType$6], [$Bool], false)}]; ptrType$45.methods = [{prop: "marshal", name: "marshal", pkg: "crypto/tls", typ: $funcType([], [sliceType$6, $error], false)}, {prop: "unmarshal", name: "unmarshal", pkg: "crypto/tls", typ: $funcType([sliceType$6], [$Bool], false)}]; - ptrType$62.methods = [{prop: "handshake", name: "handshake", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "checkServerHelloOrHRR", name: "checkServerHelloOrHRR", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "sendDummyChangeCipherSpec", name: "sendDummyChangeCipherSpec", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "processHelloRetryRequest", name: "processHelloRetryRequest", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "processServerHello", name: "processServerHello", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "establishHandshakeKeys", name: "establishHandshakeKeys", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "readServerParameters", name: "readServerParameters", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "readServerCertificate", name: "readServerCertificate", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "readServerFinished", name: "readServerFinished", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "sendClientCertificate", name: "sendClientCertificate", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "sendClientFinished", name: "sendClientFinished", pkg: "crypto/tls", typ: $funcType([], [$error], false)}]; - ptrType$63.methods = [{prop: "handshake", name: "handshake", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "pickCipherSuite", name: "pickCipherSuite", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "doFullHandshake", name: "doFullHandshake", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "establishKeys", name: "establishKeys", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "serverResumedSession", name: "serverResumedSession", pkg: "crypto/tls", typ: $funcType([], [$Bool], false)}, {prop: "processServerHello", name: "processServerHello", pkg: "crypto/tls", typ: $funcType([], [$Bool, $error], false)}, {prop: "readFinished", name: "readFinished", pkg: "crypto/tls", typ: $funcType([sliceType$6], [$error], false)}, {prop: "readSessionTicket", name: "readSessionTicket", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "sendFinished", name: "sendFinished", pkg: "crypto/tls", typ: $funcType([sliceType$6], [$error], false)}]; - ptrType$8.methods = [{prop: "encryptTicket", name: "encryptTicket", pkg: "crypto/tls", typ: $funcType([sliceType$6], [sliceType$6, $error], false)}, {prop: "decryptTicket", name: "decryptTicket", pkg: "crypto/tls", typ: $funcType([sliceType$6], [sliceType$6, $Bool], false)}, {prop: "serverHandshake", name: "serverHandshake", pkg: "crypto/tls", typ: $funcType([context.Context], [$error], false)}, {prop: "readClientHello", name: "readClientHello", pkg: "crypto/tls", typ: $funcType([context.Context], [ptrType$27, $error], false)}, {prop: "processCertsFromClient", name: "processCertsFromClient", pkg: "crypto/tls", typ: $funcType([Certificate], [$error], false)}, {prop: "handleNewSessionTicket", name: "handleNewSessionTicket", pkg: "crypto/tls", typ: $funcType([ptrType$46], [$error], false)}, {prop: "makeClientHello", name: "makeClientHello", pkg: "crypto/tls", typ: $funcType([], [ptrType$27, ptrType$23, $error], false)}, {prop: "clientHandshake", name: "clientHandshake", pkg: "crypto/tls", typ: $funcType([context.Context], [$error], false)}, {prop: "loadSession", name: "loadSession", pkg: "crypto/tls", typ: $funcType([ptrType$27], [$String, ptrType$39, sliceType$6, sliceType$6, $error], false)}, {prop: "pickTLSVersion", name: "pickTLSVersion", pkg: "crypto/tls", typ: $funcType([ptrType$31], [$error], false)}, {prop: "verifyServerCertificate", name: "verifyServerCertificate", pkg: "crypto/tls", typ: $funcType([sliceType$11], [$error], false)}, {prop: "getClientCertificate", name: "getClientCertificate", pkg: "crypto/tls", typ: $funcType([ptrType$64], [ptrType$32, $error], false)}, {prop: "LocalAddr", name: "LocalAddr", pkg: "", typ: $funcType([], [net.Addr], false)}, {prop: "RemoteAddr", name: "RemoteAddr", pkg: "", typ: $funcType([], [net.Addr], false)}, {prop: "SetDeadline", name: "SetDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetReadDeadline", name: "SetReadDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetWriteDeadline", name: "SetWriteDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "NetConn", name: "NetConn", pkg: "", typ: $funcType([], [net.Conn], false)}, {prop: "newRecordHeaderError", name: "newRecordHeaderError", pkg: "crypto/tls", typ: $funcType([net.Conn, $String], [RecordHeaderError], false)}, {prop: "readRecord", name: "readRecord", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "readChangeCipherSpec", name: "readChangeCipherSpec", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "readRecordOrCCS", name: "readRecordOrCCS", pkg: "crypto/tls", typ: $funcType([$Bool], [$error], false)}, {prop: "retryReadRecord", name: "retryReadRecord", pkg: "crypto/tls", typ: $funcType([$Bool], [$error], false)}, {prop: "readFromUntil", name: "readFromUntil", pkg: "crypto/tls", typ: $funcType([io.Reader, $Int], [$error], false)}, {prop: "sendAlertLocked", name: "sendAlertLocked", pkg: "crypto/tls", typ: $funcType([alert], [$error], false)}, {prop: "sendAlert", name: "sendAlert", pkg: "crypto/tls", typ: $funcType([alert], [$error], false)}, {prop: "maxPayloadSizeForWrite", name: "maxPayloadSizeForWrite", pkg: "crypto/tls", typ: $funcType([recordType], [$Int], false)}, {prop: "write", name: "write", pkg: "crypto/tls", typ: $funcType([sliceType$6], [$Int, $error], false)}, {prop: "flush", name: "flush", pkg: "crypto/tls", typ: $funcType([], [$Int, $error], false)}, {prop: "writeRecordLocked", name: "writeRecordLocked", pkg: "crypto/tls", typ: $funcType([recordType, sliceType$6], [$Int, $error], false)}, {prop: "writeHandshakeRecord", name: "writeHandshakeRecord", pkg: "crypto/tls", typ: $funcType([handshakeMessage, transcriptHash], [$Int, $error], false)}, {prop: "writeChangeCipherRecord", name: "writeChangeCipherRecord", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "readHandshake", name: "readHandshake", pkg: "crypto/tls", typ: $funcType([transcriptHash], [$emptyInterface, $error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$6], [$Int, $error], false)}, {prop: "handleRenegotiation", name: "handleRenegotiation", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "handlePostHandshakeMessage", name: "handlePostHandshakeMessage", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "handleKeyUpdate", name: "handleKeyUpdate", pkg: "crypto/tls", typ: $funcType([ptrType$47], [$error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$6], [$Int, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "CloseWrite", name: "CloseWrite", pkg: "", typ: $funcType([], [$error], false)}, {prop: "closeNotify", name: "closeNotify", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "Handshake", name: "Handshake", pkg: "", typ: $funcType([], [$error], false)}, {prop: "HandshakeContext", name: "HandshakeContext", pkg: "", typ: $funcType([context.Context], [$error], false)}, {prop: "handshakeContext", name: "handshakeContext", pkg: "crypto/tls", typ: $funcType([context.Context], [$error], false)}, {prop: "ConnectionState", name: "ConnectionState", pkg: "", typ: $funcType([], [ConnectionState], false)}, {prop: "connectionStateLocked", name: "connectionStateLocked", pkg: "crypto/tls", typ: $funcType([], [ConnectionState], false)}, {prop: "OCSPResponse", name: "OCSPResponse", pkg: "", typ: $funcType([], [sliceType$6], false)}, {prop: "VerifyHostname", name: "VerifyHostname", pkg: "", typ: $funcType([$String], [$error], false)}]; - ptrType$65.methods = [{prop: "setErrorLocked", name: "setErrorLocked", pkg: "crypto/tls", typ: $funcType([$error], [$error], false)}, {prop: "prepareCipherSpec", name: "prepareCipherSpec", pkg: "crypto/tls", typ: $funcType([$Uint16, $emptyInterface, hash.Hash], [], false)}, {prop: "changeCipherSpec", name: "changeCipherSpec", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "setTrafficSecret", name: "setTrafficSecret", pkg: "crypto/tls", typ: $funcType([ptrType$2, sliceType$6], [], false)}, {prop: "incSeq", name: "incSeq", pkg: "crypto/tls", typ: $funcType([], [], false)}, {prop: "explicitNonceLen", name: "explicitNonceLen", pkg: "crypto/tls", typ: $funcType([], [$Int], false)}, {prop: "decrypt", name: "decrypt", pkg: "crypto/tls", typ: $funcType([sliceType$6], [sliceType$6, recordType, $error], false)}, {prop: "encrypt", name: "encrypt", pkg: "crypto/tls", typ: $funcType([sliceType$6, sliceType$6, io.Reader], [sliceType$6, $error], false)}]; - ptrType$66.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Unwrap", name: "Unwrap", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$48.methods = [{prop: "marshal", name: "marshal", pkg: "crypto/tls", typ: $funcType([], [sliceType$6, $error], false)}, {prop: "unmarshal", name: "unmarshal", pkg: "crypto/tls", typ: $funcType([sliceType$6], [$Bool], false)}]; + ptrType$31.methods = [{prop: "marshal", name: "marshal", pkg: "crypto/tls", typ: $funcType([], [sliceType$6, $error], false)}, {prop: "unmarshal", name: "unmarshal", pkg: "crypto/tls", typ: $funcType([sliceType$6], [$Bool], false)}]; + ptrType$37.methods = [{prop: "marshal", name: "marshal", pkg: "crypto/tls", typ: $funcType([], [sliceType$6, $error], false)}, {prop: "unmarshal", name: "unmarshal", pkg: "crypto/tls", typ: $funcType([sliceType$6], [$Bool], false)}]; + ptrType$39.methods = [{prop: "marshal", name: "marshal", pkg: "crypto/tls", typ: $funcType([], [sliceType$6, $error], false)}, {prop: "unmarshal", name: "unmarshal", pkg: "crypto/tls", typ: $funcType([sliceType$6], [$Bool], false)}]; + ptrType$36.methods = [{prop: "marshal", name: "marshal", pkg: "crypto/tls", typ: $funcType([], [sliceType$6, $error], false)}, {prop: "unmarshal", name: "unmarshal", pkg: "crypto/tls", typ: $funcType([sliceType$6], [$Bool], false)}]; + ptrType$49.methods = [{prop: "marshal", name: "marshal", pkg: "crypto/tls", typ: $funcType([], [sliceType$6, $error], false)}, {prop: "unmarshal", name: "unmarshal", pkg: "crypto/tls", typ: $funcType([sliceType$6], [$Bool], false)}]; + ptrType$50.methods = [{prop: "marshal", name: "marshal", pkg: "crypto/tls", typ: $funcType([], [sliceType$6, $error], false)}, {prop: "unmarshal", name: "unmarshal", pkg: "crypto/tls", typ: $funcType([sliceType$6], [$Bool], false)}]; + ptrType$66.methods = [{prop: "handshake", name: "handshake", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "checkServerHelloOrHRR", name: "checkServerHelloOrHRR", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "sendDummyChangeCipherSpec", name: "sendDummyChangeCipherSpec", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "processHelloRetryRequest", name: "processHelloRetryRequest", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "processServerHello", name: "processServerHello", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "establishHandshakeKeys", name: "establishHandshakeKeys", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "readServerParameters", name: "readServerParameters", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "readServerCertificate", name: "readServerCertificate", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "readServerFinished", name: "readServerFinished", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "sendClientCertificate", name: "sendClientCertificate", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "sendClientFinished", name: "sendClientFinished", pkg: "crypto/tls", typ: $funcType([], [$error], false)}]; + ptrType$67.methods = [{prop: "handshake", name: "handshake", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "pickCipherSuite", name: "pickCipherSuite", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "doFullHandshake", name: "doFullHandshake", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "establishKeys", name: "establishKeys", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "serverResumedSession", name: "serverResumedSession", pkg: "crypto/tls", typ: $funcType([], [$Bool], false)}, {prop: "processServerHello", name: "processServerHello", pkg: "crypto/tls", typ: $funcType([], [$Bool, $error], false)}, {prop: "readFinished", name: "readFinished", pkg: "crypto/tls", typ: $funcType([sliceType$6], [$error], false)}, {prop: "readSessionTicket", name: "readSessionTicket", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "saveSessionTicket", name: "saveSessionTicket", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "sendFinished", name: "sendFinished", pkg: "crypto/tls", typ: $funcType([sliceType$6], [$error], false)}]; + ptrType$9.methods = [{prop: "sessionState", name: "sessionState", pkg: "crypto/tls", typ: $funcType([], [ptrType$21, $error], false)}, {prop: "quicReadHandshakeBytes", name: "quicReadHandshakeBytes", pkg: "crypto/tls", typ: $funcType([$Int], [$error], false)}, {prop: "quicSetReadSecret", name: "quicSetReadSecret", pkg: "crypto/tls", typ: $funcType([QUICEncryptionLevel, $Uint16, sliceType$6], [], false)}, {prop: "quicSetWriteSecret", name: "quicSetWriteSecret", pkg: "crypto/tls", typ: $funcType([QUICEncryptionLevel, $Uint16, sliceType$6], [], false)}, {prop: "quicWriteCryptoData", name: "quicWriteCryptoData", pkg: "crypto/tls", typ: $funcType([QUICEncryptionLevel, sliceType$6], [], false)}, {prop: "quicSetTransportParameters", name: "quicSetTransportParameters", pkg: "crypto/tls", typ: $funcType([sliceType$6], [], false)}, {prop: "quicGetTransportParameters", name: "quicGetTransportParameters", pkg: "crypto/tls", typ: $funcType([], [sliceType$6, $error], false)}, {prop: "quicHandshakeComplete", name: "quicHandshakeComplete", pkg: "crypto/tls", typ: $funcType([], [], false)}, {prop: "quicRejectedEarlyData", name: "quicRejectedEarlyData", pkg: "crypto/tls", typ: $funcType([], [], false)}, {prop: "quicWaitForSignal", name: "quicWaitForSignal", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "sendSessionTicket", name: "sendSessionTicket", pkg: "crypto/tls", typ: $funcType([$Bool], [$error], false)}, {prop: "serverHandshake", name: "serverHandshake", pkg: "crypto/tls", typ: $funcType([context.Context], [$error], false)}, {prop: "readClientHello", name: "readClientHello", pkg: "crypto/tls", typ: $funcType([context.Context], [ptrType$33, $error], false)}, {prop: "processCertsFromClient", name: "processCertsFromClient", pkg: "crypto/tls", typ: $funcType([Certificate], [$error], false)}, {prop: "handleNewSessionTicket", name: "handleNewSessionTicket", pkg: "crypto/tls", typ: $funcType([ptrType$43], [$error], false)}, {prop: "makeClientHello", name: "makeClientHello", pkg: "crypto/tls", typ: $funcType([], [ptrType$33, ptrType$29, $error], false)}, {prop: "clientHandshake", name: "clientHandshake", pkg: "crypto/tls", typ: $funcType([context.Context], [$error], false)}, {prop: "loadSession", name: "loadSession", pkg: "crypto/tls", typ: $funcType([ptrType$33], [ptrType$21, sliceType$6, sliceType$6, $error], false)}, {prop: "pickTLSVersion", name: "pickTLSVersion", pkg: "crypto/tls", typ: $funcType([ptrType$38], [$error], false)}, {prop: "verifyServerCertificate", name: "verifyServerCertificate", pkg: "crypto/tls", typ: $funcType([sliceType$11], [$error], false)}, {prop: "getClientCertificate", name: "getClientCertificate", pkg: "crypto/tls", typ: $funcType([ptrType$68], [ptrType$34, $error], false)}, {prop: "clientSessionCacheKey", name: "clientSessionCacheKey", pkg: "crypto/tls", typ: $funcType([], [$String], false)}, {prop: "LocalAddr", name: "LocalAddr", pkg: "", typ: $funcType([], [net.Addr], false)}, {prop: "RemoteAddr", name: "RemoteAddr", pkg: "", typ: $funcType([], [net.Addr], false)}, {prop: "SetDeadline", name: "SetDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetReadDeadline", name: "SetReadDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetWriteDeadline", name: "SetWriteDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "NetConn", name: "NetConn", pkg: "", typ: $funcType([], [net.Conn], false)}, {prop: "newRecordHeaderError", name: "newRecordHeaderError", pkg: "crypto/tls", typ: $funcType([net.Conn, $String], [RecordHeaderError], false)}, {prop: "readRecord", name: "readRecord", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "readChangeCipherSpec", name: "readChangeCipherSpec", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "readRecordOrCCS", name: "readRecordOrCCS", pkg: "crypto/tls", typ: $funcType([$Bool], [$error], false)}, {prop: "retryReadRecord", name: "retryReadRecord", pkg: "crypto/tls", typ: $funcType([$Bool], [$error], false)}, {prop: "readFromUntil", name: "readFromUntil", pkg: "crypto/tls", typ: $funcType([io.Reader, $Int], [$error], false)}, {prop: "sendAlertLocked", name: "sendAlertLocked", pkg: "crypto/tls", typ: $funcType([alert], [$error], false)}, {prop: "sendAlert", name: "sendAlert", pkg: "crypto/tls", typ: $funcType([alert], [$error], false)}, {prop: "maxPayloadSizeForWrite", name: "maxPayloadSizeForWrite", pkg: "crypto/tls", typ: $funcType([recordType], [$Int], false)}, {prop: "write", name: "write", pkg: "crypto/tls", typ: $funcType([sliceType$6], [$Int, $error], false)}, {prop: "flush", name: "flush", pkg: "crypto/tls", typ: $funcType([], [$Int, $error], false)}, {prop: "writeRecordLocked", name: "writeRecordLocked", pkg: "crypto/tls", typ: $funcType([recordType, sliceType$6], [$Int, $error], false)}, {prop: "writeHandshakeRecord", name: "writeHandshakeRecord", pkg: "crypto/tls", typ: $funcType([handshakeMessage, transcriptHash], [$Int, $error], false)}, {prop: "writeChangeCipherRecord", name: "writeChangeCipherRecord", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "readHandshakeBytes", name: "readHandshakeBytes", pkg: "crypto/tls", typ: $funcType([$Int], [$error], false)}, {prop: "readHandshake", name: "readHandshake", pkg: "crypto/tls", typ: $funcType([transcriptHash], [$emptyInterface, $error], false)}, {prop: "unmarshalHandshakeMessage", name: "unmarshalHandshakeMessage", pkg: "crypto/tls", typ: $funcType([sliceType$6, transcriptHash], [handshakeMessage, $error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$6], [$Int, $error], false)}, {prop: "handleRenegotiation", name: "handleRenegotiation", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "handlePostHandshakeMessage", name: "handlePostHandshakeMessage", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "handleKeyUpdate", name: "handleKeyUpdate", pkg: "crypto/tls", typ: $funcType([ptrType$51], [$error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$6], [$Int, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "CloseWrite", name: "CloseWrite", pkg: "", typ: $funcType([], [$error], false)}, {prop: "closeNotify", name: "closeNotify", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "Handshake", name: "Handshake", pkg: "", typ: $funcType([], [$error], false)}, {prop: "HandshakeContext", name: "HandshakeContext", pkg: "", typ: $funcType([context.Context], [$error], false)}, {prop: "handshakeContext", name: "handshakeContext", pkg: "crypto/tls", typ: $funcType([context.Context], [$error], false)}, {prop: "ConnectionState", name: "ConnectionState", pkg: "", typ: $funcType([], [ConnectionState], false)}, {prop: "connectionStateLocked", name: "connectionStateLocked", pkg: "crypto/tls", typ: $funcType([], [ConnectionState], false)}, {prop: "OCSPResponse", name: "OCSPResponse", pkg: "", typ: $funcType([], [sliceType$6], false)}, {prop: "VerifyHostname", name: "VerifyHostname", pkg: "", typ: $funcType([$String], [$error], false)}]; + ptrType$69.methods = [{prop: "setErrorLocked", name: "setErrorLocked", pkg: "crypto/tls", typ: $funcType([$error], [$error], false)}, {prop: "prepareCipherSpec", name: "prepareCipherSpec", pkg: "crypto/tls", typ: $funcType([$Uint16, $emptyInterface, hash.Hash], [], false)}, {prop: "changeCipherSpec", name: "changeCipherSpec", pkg: "crypto/tls", typ: $funcType([], [$error], false)}, {prop: "setTrafficSecret", name: "setTrafficSecret", pkg: "crypto/tls", typ: $funcType([ptrType$3, QUICEncryptionLevel, sliceType$6], [], false)}, {prop: "incSeq", name: "incSeq", pkg: "crypto/tls", typ: $funcType([], [], false)}, {prop: "explicitNonceLen", name: "explicitNonceLen", pkg: "crypto/tls", typ: $funcType([], [$Int], false)}, {prop: "decrypt", name: "decrypt", pkg: "crypto/tls", typ: $funcType([sliceType$6], [sliceType$6, recordType, $error], false)}, {prop: "encrypt", name: "encrypt", pkg: "crypto/tls", typ: $funcType([sliceType$6, sliceType$6, io.Reader], [sliceType$6, $error], false)}]; + ptrType$70.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Unwrap", name: "Unwrap", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false)}]; RecordHeaderError.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$67.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$6], [$Int, $error], false)}]; + ptrType$71.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$6], [$Int, $error], false)}]; CurveID.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$68.methods = [{prop: "ExportKeyingMaterial", name: "ExportKeyingMaterial", pkg: "", typ: $funcType([$String, sliceType$6, $Int], [sliceType$6, $error], false)}]; + ptrType$72.methods = [{prop: "ExportKeyingMaterial", name: "ExportKeyingMaterial", pkg: "", typ: $funcType([$String, sliceType$6, $Int], [sliceType$6, $error], false)}]; ClientAuthType.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; SignatureScheme.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$69.methods = [{prop: "Context", name: "Context", pkg: "", typ: $funcType([], [context.Context], false)}, {prop: "SupportsCertificate", name: "SupportsCertificate", pkg: "", typ: $funcType([ptrType$32], [$error], false)}]; - ptrType$64.methods = [{prop: "Context", name: "Context", pkg: "", typ: $funcType([], [context.Context], false)}, {prop: "SupportsCertificate", name: "SupportsCertificate", pkg: "", typ: $funcType([ptrType$32], [$error], false)}]; - ptrType$5.methods = [{prop: "ticketKeyFromBytes", name: "ticketKeyFromBytes", pkg: "crypto/tls", typ: $funcType([arrayType], [ticketKey], false)}, {prop: "Clone", name: "Clone", pkg: "", typ: $funcType([], [ptrType$5], false)}, {prop: "initLegacySessionTicketKeyRLocked", name: "initLegacySessionTicketKeyRLocked", pkg: "crypto/tls", typ: $funcType([], [], false)}, {prop: "ticketKeys", name: "ticketKeys", pkg: "crypto/tls", typ: $funcType([ptrType$5], [sliceType$5], false)}, {prop: "SetSessionTicketKeys", name: "SetSessionTicketKeys", pkg: "", typ: $funcType([sliceType$19], [], false)}, {prop: "rand", name: "rand", pkg: "crypto/tls", typ: $funcType([], [io.Reader], false)}, {prop: "time", name: "time", pkg: "crypto/tls", typ: $funcType([], [time.Time], false)}, {prop: "cipherSuites", name: "cipherSuites", pkg: "crypto/tls", typ: $funcType([], [sliceType$3], false)}, {prop: "supportedVersions", name: "supportedVersions", pkg: "crypto/tls", typ: $funcType([$Bool], [sliceType$3], false)}, {prop: "maxSupportedVersion", name: "maxSupportedVersion", pkg: "crypto/tls", typ: $funcType([$Bool], [$Uint16], false)}, {prop: "curvePreferences", name: "curvePreferences", pkg: "crypto/tls", typ: $funcType([], [sliceType$4], false)}, {prop: "supportsCurve", name: "supportsCurve", pkg: "crypto/tls", typ: $funcType([CurveID], [$Bool], false)}, {prop: "mutualVersion", name: "mutualVersion", pkg: "crypto/tls", typ: $funcType([$Bool, sliceType$3], [$Uint16, $Bool], false)}, {prop: "getCertificate", name: "getCertificate", pkg: "crypto/tls", typ: $funcType([ptrType$69], [ptrType$32, $error], false)}, {prop: "BuildNameToCertificate", name: "BuildNameToCertificate", pkg: "", typ: $funcType([], [], false)}, {prop: "writeKeyLog", name: "writeKeyLog", pkg: "crypto/tls", typ: $funcType([$String, sliceType$6, sliceType$6], [$error], false)}]; - ptrType$32.methods = [{prop: "leaf", name: "leaf", pkg: "crypto/tls", typ: $funcType([], [ptrType$6, $error], false)}]; - ptrType$71.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Unwrap", name: "Unwrap", pkg: "", typ: $funcType([], [$error], false)}]; - ptrType$2.methods = [{prop: "expandLabel", name: "expandLabel", pkg: "crypto/tls", typ: $funcType([sliceType$6, $String, sliceType$6, $Int], [sliceType$6], false)}, {prop: "deriveSecret", name: "deriveSecret", pkg: "crypto/tls", typ: $funcType([sliceType$6, $String, hash.Hash], [sliceType$6], false)}, {prop: "extract", name: "extract", pkg: "crypto/tls", typ: $funcType([sliceType$6, sliceType$6], [sliceType$6], false)}, {prop: "nextTrafficSecret", name: "nextTrafficSecret", pkg: "crypto/tls", typ: $funcType([sliceType$6], [sliceType$6], false)}, {prop: "trafficKey", name: "trafficKey", pkg: "crypto/tls", typ: $funcType([sliceType$6], [sliceType$6, sliceType$6], false)}, {prop: "finishedHash", name: "finishedHash", pkg: "crypto/tls", typ: $funcType([sliceType$6, hash.Hash], [sliceType$6], false)}, {prop: "exportKeyingMaterial", name: "exportKeyingMaterial", pkg: "crypto/tls", typ: $funcType([sliceType$6, hash.Hash], [funcType$3], false)}]; - ptrType$72.methods = [{prop: "NonceSize", name: "NonceSize", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Overhead", name: "Overhead", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "explicitNonceLen", name: "explicitNonceLen", pkg: "crypto/tls", typ: $funcType([], [$Int], false)}, {prop: "Seal", name: "Seal", pkg: "", typ: $funcType([sliceType$6, sliceType$6, sliceType$6, sliceType$6], [sliceType$6], false)}, {prop: "Open", name: "Open", pkg: "", typ: $funcType([sliceType$6, sliceType$6, sliceType$6, sliceType$6], [sliceType$6, $error], false)}]; - ptrType$73.methods = [{prop: "NonceSize", name: "NonceSize", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Overhead", name: "Overhead", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "explicitNonceLen", name: "explicitNonceLen", pkg: "crypto/tls", typ: $funcType([], [$Int], false)}, {prop: "Seal", name: "Seal", pkg: "", typ: $funcType([sliceType$6, sliceType$6, sliceType$6, sliceType$6], [sliceType$6], false)}, {prop: "Open", name: "Open", pkg: "", typ: $funcType([sliceType$6, sliceType$6, sliceType$6, sliceType$6], [sliceType$6, $error], false)}]; - ptrType$74.methods = [{prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "BlockSize", name: "BlockSize", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$6], [$Int, $error], false)}, {prop: "Sum", name: "Sum", pkg: "", typ: $funcType([sliceType$6], [sliceType$6], false)}]; - ptrType$75.methods = [{prop: "active", name: "active", pkg: "crypto/tls", typ: $funcType([ptrType$52], [ptrType$7], false)}, {prop: "evict", name: "evict", pkg: "crypto/tls", typ: $funcType([ptrType$52], [], false)}, {prop: "newCert", name: "newCert", pkg: "crypto/tls", typ: $funcType([sliceType$6], [ptrType$7, $error], false)}]; + ptrType$73.methods = [{prop: "Context", name: "Context", pkg: "", typ: $funcType([], [context.Context], false)}, {prop: "SupportsCertificate", name: "SupportsCertificate", pkg: "", typ: $funcType([ptrType$34], [$error], false)}]; + ptrType$68.methods = [{prop: "Context", name: "Context", pkg: "", typ: $funcType([], [context.Context], false)}, {prop: "SupportsCertificate", name: "SupportsCertificate", pkg: "", typ: $funcType([ptrType$34], [$error], false)}]; + ptrType$6.methods = [{prop: "EncryptTicket", name: "EncryptTicket", pkg: "", typ: $funcType([ConnectionState, ptrType$21], [sliceType$6, $error], false)}, {prop: "encryptTicket", name: "encryptTicket", pkg: "crypto/tls", typ: $funcType([sliceType$6, sliceType$5], [sliceType$6, $error], false)}, {prop: "DecryptTicket", name: "DecryptTicket", pkg: "", typ: $funcType([sliceType$6, ConnectionState], [ptrType$21, $error], false)}, {prop: "decryptTicket", name: "decryptTicket", pkg: "crypto/tls", typ: $funcType([sliceType$6, sliceType$5], [sliceType$6], false)}, {prop: "ticketKeyFromBytes", name: "ticketKeyFromBytes", pkg: "crypto/tls", typ: $funcType([arrayType], [ticketKey], false)}, {prop: "Clone", name: "Clone", pkg: "", typ: $funcType([], [ptrType$6], false)}, {prop: "initLegacySessionTicketKeyRLocked", name: "initLegacySessionTicketKeyRLocked", pkg: "crypto/tls", typ: $funcType([], [], false)}, {prop: "ticketKeys", name: "ticketKeys", pkg: "crypto/tls", typ: $funcType([ptrType$6], [sliceType$5], false)}, {prop: "SetSessionTicketKeys", name: "SetSessionTicketKeys", pkg: "", typ: $funcType([sliceType$20], [], false)}, {prop: "rand", name: "rand", pkg: "crypto/tls", typ: $funcType([], [io.Reader], false)}, {prop: "time", name: "time", pkg: "crypto/tls", typ: $funcType([], [time.Time], false)}, {prop: "cipherSuites", name: "cipherSuites", pkg: "crypto/tls", typ: $funcType([], [sliceType$3], false)}, {prop: "supportedVersions", name: "supportedVersions", pkg: "crypto/tls", typ: $funcType([$Bool], [sliceType$3], false)}, {prop: "maxSupportedVersion", name: "maxSupportedVersion", pkg: "crypto/tls", typ: $funcType([$Bool], [$Uint16], false)}, {prop: "curvePreferences", name: "curvePreferences", pkg: "crypto/tls", typ: $funcType([], [sliceType$4], false)}, {prop: "supportsCurve", name: "supportsCurve", pkg: "crypto/tls", typ: $funcType([CurveID], [$Bool], false)}, {prop: "mutualVersion", name: "mutualVersion", pkg: "crypto/tls", typ: $funcType([$Bool, sliceType$3], [$Uint16, $Bool], false)}, {prop: "getCertificate", name: "getCertificate", pkg: "crypto/tls", typ: $funcType([ptrType$73], [ptrType$34, $error], false)}, {prop: "BuildNameToCertificate", name: "BuildNameToCertificate", pkg: "", typ: $funcType([], [], false)}, {prop: "writeKeyLog", name: "writeKeyLog", pkg: "crypto/tls", typ: $funcType([$String, sliceType$6, sliceType$6], [$error], false)}]; + ptrType$34.methods = [{prop: "leaf", name: "leaf", pkg: "crypto/tls", typ: $funcType([], [ptrType$7, $error], false)}]; + ptrType$75.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Unwrap", name: "Unwrap", pkg: "", typ: $funcType([], [$error], false)}]; + ptrType$3.methods = [{prop: "expandLabel", name: "expandLabel", pkg: "crypto/tls", typ: $funcType([sliceType$6, $String, sliceType$6, $Int], [sliceType$6], false)}, {prop: "deriveSecret", name: "deriveSecret", pkg: "crypto/tls", typ: $funcType([sliceType$6, $String, hash.Hash], [sliceType$6], false)}, {prop: "extract", name: "extract", pkg: "crypto/tls", typ: $funcType([sliceType$6, sliceType$6], [sliceType$6], false)}, {prop: "nextTrafficSecret", name: "nextTrafficSecret", pkg: "crypto/tls", typ: $funcType([sliceType$6], [sliceType$6], false)}, {prop: "trafficKey", name: "trafficKey", pkg: "crypto/tls", typ: $funcType([sliceType$6], [sliceType$6, sliceType$6], false)}, {prop: "finishedHash", name: "finishedHash", pkg: "crypto/tls", typ: $funcType([sliceType$6, hash.Hash], [sliceType$6], false)}, {prop: "exportKeyingMaterial", name: "exportKeyingMaterial", pkg: "crypto/tls", typ: $funcType([sliceType$6, hash.Hash], [funcType$3], false)}]; + ptrType$76.methods = [{prop: "NonceSize", name: "NonceSize", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Overhead", name: "Overhead", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "explicitNonceLen", name: "explicitNonceLen", pkg: "crypto/tls", typ: $funcType([], [$Int], false)}, {prop: "Seal", name: "Seal", pkg: "", typ: $funcType([sliceType$6, sliceType$6, sliceType$6, sliceType$6], [sliceType$6], false)}, {prop: "Open", name: "Open", pkg: "", typ: $funcType([sliceType$6, sliceType$6, sliceType$6, sliceType$6], [sliceType$6, $error], false)}]; + ptrType$77.methods = [{prop: "NonceSize", name: "NonceSize", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Overhead", name: "Overhead", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "explicitNonceLen", name: "explicitNonceLen", pkg: "crypto/tls", typ: $funcType([], [$Int], false)}, {prop: "Seal", name: "Seal", pkg: "", typ: $funcType([sliceType$6, sliceType$6, sliceType$6, sliceType$6], [sliceType$6], false)}, {prop: "Open", name: "Open", pkg: "", typ: $funcType([sliceType$6, sliceType$6, sliceType$6, sliceType$6], [sliceType$6, $error], false)}]; + ptrType$78.methods = [{prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "BlockSize", name: "BlockSize", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$6], [$Int, $error], false)}, {prop: "Sum", name: "Sum", pkg: "", typ: $funcType([sliceType$6], [sliceType$6], false)}]; + ptrType$79.methods = [{prop: "active", name: "active", pkg: "crypto/tls", typ: $funcType([ptrType$56], [ptrType$8], false)}, {prop: "evict", name: "evict", pkg: "crypto/tls", typ: $funcType([ptrType$56], [], false)}, {prop: "newCert", name: "newCert", pkg: "crypto/tls", typ: $funcType([sliceType$6], [ptrType$8, $error], false)}]; + AlertError.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; alert.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; - listener.init("crypto/tls", [{prop: "Listener", name: "Listener", embedded: true, exported: true, typ: net.Listener, tag: ""}, {prop: "config", name: "config", embedded: false, exported: false, typ: ptrType$5, tag: ""}]); - Dialer.init("", [{prop: "NetDialer", name: "NetDialer", embedded: false, exported: true, typ: ptrType$11, tag: ""}, {prop: "Config", name: "Config", embedded: false, exported: true, typ: ptrType$5, tag: ""}]); - sessionState.init("crypto/tls", [{prop: "vers", name: "vers", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "cipherSuite", name: "cipherSuite", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "createdAt", name: "createdAt", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "masterSecret", name: "masterSecret", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "certificates", name: "certificates", embedded: false, exported: false, typ: sliceType$11, tag: ""}, {prop: "usedOldKey", name: "usedOldKey", embedded: false, exported: false, typ: $Bool, tag: ""}]); - sessionStateTLS13.init("crypto/tls", [{prop: "cipherSuite", name: "cipherSuite", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "createdAt", name: "createdAt", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "resumptionSecret", name: "resumptionSecret", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "certificate", name: "certificate", embedded: false, exported: false, typ: Certificate, tag: ""}]); + listener.init("crypto/tls", [{prop: "Listener", name: "Listener", embedded: true, exported: true, typ: net.Listener, tag: ""}, {prop: "config", name: "config", embedded: false, exported: false, typ: ptrType$6, tag: ""}]); + Dialer.init("", [{prop: "NetDialer", name: "NetDialer", embedded: false, exported: true, typ: ptrType$12, tag: ""}, {prop: "Config", name: "Config", embedded: false, exported: true, typ: ptrType$6, tag: ""}]); + SessionState.init("crypto/tls", [{prop: "Extra", name: "Extra", embedded: false, exported: true, typ: sliceType$11, tag: ""}, {prop: "EarlyData", name: "EarlyData", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "version", name: "version", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "isClient", name: "isClient", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "cipherSuite", name: "cipherSuite", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "createdAt", name: "createdAt", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "secret", name: "secret", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "extMasterSecret", name: "extMasterSecret", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "peerCertificates", name: "peerCertificates", embedded: false, exported: false, typ: sliceType$12, tag: ""}, {prop: "activeCertHandles", name: "activeCertHandles", embedded: false, exported: false, typ: sliceType$13, tag: ""}, {prop: "ocspResponse", name: "ocspResponse", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "scts", name: "scts", embedded: false, exported: false, typ: sliceType$11, tag: ""}, {prop: "verifiedChains", name: "verifiedChains", embedded: false, exported: false, typ: sliceType$14, tag: ""}, {prop: "alpnProtocol", name: "alpnProtocol", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "useBy", name: "useBy", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "ageAdd", name: "ageAdd", embedded: false, exported: false, typ: $Uint32, tag: ""}]); + ClientSessionState.init("crypto/tls", [{prop: "ticket", name: "ticket", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "session", name: "session", embedded: false, exported: false, typ: ptrType$21, tag: ""}]); + QUICEvent.init("", [{prop: "Kind", name: "Kind", embedded: false, exported: true, typ: QUICEventKind, tag: ""}, {prop: "Level", name: "Level", embedded: false, exported: true, typ: QUICEncryptionLevel, tag: ""}, {prop: "Data", name: "Data", embedded: false, exported: true, typ: sliceType$6, tag: ""}, {prop: "Suite", name: "Suite", embedded: false, exported: true, typ: $Uint16, tag: ""}]); + quicState.init("crypto/tls", [{prop: "events", name: "events", embedded: false, exported: false, typ: sliceType$15, tag: ""}, {prop: "nextEvent", name: "nextEvent", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "eventArr", name: "eventArr", embedded: false, exported: false, typ: arrayType$5, tag: ""}, {prop: "started", name: "started", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "signalc", name: "signalc", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "blockedc", name: "blockedc", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "cancelc", name: "cancelc", embedded: false, exported: false, typ: chanType$1, tag: ""}, {prop: "cancel", name: "cancel", embedded: false, exported: false, typ: context.CancelFunc, tag: ""}, {prop: "readbuf", name: "readbuf", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "transportParams", name: "transportParams", embedded: false, exported: false, typ: sliceType$6, tag: ""}]); finishedHash.init("crypto/tls", [{prop: "client", name: "client", embedded: false, exported: false, typ: hash.Hash, tag: ""}, {prop: "server", name: "server", embedded: false, exported: false, typ: hash.Hash, tag: ""}, {prop: "clientMD5", name: "clientMD5", embedded: false, exported: false, typ: hash.Hash, tag: ""}, {prop: "serverMD5", name: "serverMD5", embedded: false, exported: false, typ: hash.Hash, tag: ""}, {prop: "buffer", name: "buffer", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "version", name: "version", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "prf", name: "prf", embedded: false, exported: false, typ: funcType$1, tag: ""}]); - keyAgreement.init([{prop: "generateClientKeyExchange", name: "generateClientKeyExchange", pkg: "crypto/tls", typ: $funcType([ptrType$5, ptrType$27, ptrType$6], [sliceType$6, ptrType$25, $error], false)}, {prop: "generateServerKeyExchange", name: "generateServerKeyExchange", pkg: "crypto/tls", typ: $funcType([ptrType$5, ptrType$32, ptrType$27, ptrType$31], [ptrType$24, $error], false)}, {prop: "processClientKeyExchange", name: "processClientKeyExchange", pkg: "crypto/tls", typ: $funcType([ptrType$5, ptrType$32, ptrType$25, $Uint16], [sliceType$6, $error], false)}, {prop: "processServerKeyExchange", name: "processServerKeyExchange", pkg: "crypto/tls", typ: $funcType([ptrType$5, ptrType$27, ptrType$31, ptrType$6, ptrType$24], [$error], false)}]); + keyAgreement.init([{prop: "generateClientKeyExchange", name: "generateClientKeyExchange", pkg: "crypto/tls", typ: $funcType([ptrType$6, ptrType$33, ptrType$7], [sliceType$6, ptrType$31, $error], false)}, {prop: "generateServerKeyExchange", name: "generateServerKeyExchange", pkg: "crypto/tls", typ: $funcType([ptrType$6, ptrType$34, ptrType$33, ptrType$38], [ptrType$30, $error], false)}, {prop: "processClientKeyExchange", name: "processClientKeyExchange", pkg: "crypto/tls", typ: $funcType([ptrType$6, ptrType$34, ptrType$31, $Uint16], [sliceType$6, $error], false)}, {prop: "processServerKeyExchange", name: "processServerKeyExchange", pkg: "crypto/tls", typ: $funcType([ptrType$6, ptrType$33, ptrType$38, ptrType$7, ptrType$30], [$error], false)}]); rsaKeyAgreement.init("", []); - ecdheKeyAgreement.init("crypto/tls", [{prop: "version", name: "version", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "isRSA", name: "isRSA", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "key", name: "key", embedded: false, exported: false, typ: ptrType$23, tag: ""}, {prop: "ckx", name: "ckx", embedded: false, exported: false, typ: ptrType$25, tag: ""}, {prop: "preMasterSecret", name: "preMasterSecret", embedded: false, exported: false, typ: sliceType$6, tag: ""}]); - serverHandshakeStateTLS13.init("crypto/tls", [{prop: "c", name: "c", embedded: false, exported: false, typ: ptrType$8, tag: ""}, {prop: "ctx", name: "ctx", embedded: false, exported: false, typ: context.Context, tag: ""}, {prop: "clientHello", name: "clientHello", embedded: false, exported: false, typ: ptrType$27, tag: ""}, {prop: "hello", name: "hello", embedded: false, exported: false, typ: ptrType$31, tag: ""}, {prop: "sentDummyCCS", name: "sentDummyCCS", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "usingPSK", name: "usingPSK", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "suite", name: "suite", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "cert", name: "cert", embedded: false, exported: false, typ: ptrType$32, tag: ""}, {prop: "sigAlg", name: "sigAlg", embedded: false, exported: false, typ: SignatureScheme, tag: ""}, {prop: "earlySecret", name: "earlySecret", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "sharedKey", name: "sharedKey", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "handshakeSecret", name: "handshakeSecret", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "masterSecret", name: "masterSecret", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "trafficSecret", name: "trafficSecret", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "transcript", name: "transcript", embedded: false, exported: false, typ: hash.Hash, tag: ""}, {prop: "clientFinished", name: "clientFinished", embedded: false, exported: false, typ: sliceType$6, tag: ""}]); - serverHandshakeState.init("crypto/tls", [{prop: "c", name: "c", embedded: false, exported: false, typ: ptrType$8, tag: ""}, {prop: "ctx", name: "ctx", embedded: false, exported: false, typ: context.Context, tag: ""}, {prop: "clientHello", name: "clientHello", embedded: false, exported: false, typ: ptrType$27, tag: ""}, {prop: "hello", name: "hello", embedded: false, exported: false, typ: ptrType$31, tag: ""}, {prop: "suite", name: "suite", embedded: false, exported: false, typ: ptrType$3, tag: ""}, {prop: "ecdheOk", name: "ecdheOk", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "ecSignOk", name: "ecSignOk", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "rsaDecryptOk", name: "rsaDecryptOk", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "rsaSignOk", name: "rsaSignOk", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "sessionState", name: "sessionState", embedded: false, exported: false, typ: ptrType$33, tag: ""}, {prop: "finishedHash", name: "finishedHash", embedded: false, exported: false, typ: finishedHash, tag: ""}, {prop: "masterSecret", name: "masterSecret", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "cert", name: "cert", embedded: false, exported: false, typ: ptrType$32, tag: ""}]); - marshalingFunction.init([ptrType$17], [$error], false); - clientHelloMsg.init("crypto/tls", [{prop: "raw", name: "raw", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "vers", name: "vers", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "random", name: "random", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "sessionId", name: "sessionId", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "cipherSuites", name: "cipherSuites", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "compressionMethods", name: "compressionMethods", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "serverName", name: "serverName", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "ocspStapling", name: "ocspStapling", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "supportedCurves", name: "supportedCurves", embedded: false, exported: false, typ: sliceType$4, tag: ""}, {prop: "supportedPoints", name: "supportedPoints", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "ticketSupported", name: "ticketSupported", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "sessionTicket", name: "sessionTicket", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "supportedSignatureAlgorithms", name: "supportedSignatureAlgorithms", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "supportedSignatureAlgorithmsCert", name: "supportedSignatureAlgorithmsCert", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "secureRenegotiationSupported", name: "secureRenegotiationSupported", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "secureRenegotiation", name: "secureRenegotiation", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "alpnProtocols", name: "alpnProtocols", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "scts", name: "scts", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "supportedVersions", name: "supportedVersions", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "cookie", name: "cookie", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "keyShares", name: "keyShares", embedded: false, exported: false, typ: sliceType$16, tag: ""}, {prop: "earlyData", name: "earlyData", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "pskModes", name: "pskModes", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "pskIdentities", name: "pskIdentities", embedded: false, exported: false, typ: sliceType$17, tag: ""}, {prop: "pskBinders", name: "pskBinders", embedded: false, exported: false, typ: sliceType$11, tag: ""}]); - serverHelloMsg.init("crypto/tls", [{prop: "raw", name: "raw", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "vers", name: "vers", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "random", name: "random", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "sessionId", name: "sessionId", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "cipherSuite", name: "cipherSuite", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "compressionMethod", name: "compressionMethod", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "ocspStapling", name: "ocspStapling", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "ticketSupported", name: "ticketSupported", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "secureRenegotiationSupported", name: "secureRenegotiationSupported", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "secureRenegotiation", name: "secureRenegotiation", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "alpnProtocol", name: "alpnProtocol", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "scts", name: "scts", embedded: false, exported: false, typ: sliceType$11, tag: ""}, {prop: "supportedVersion", name: "supportedVersion", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "serverShare", name: "serverShare", embedded: false, exported: false, typ: keyShare, tag: ""}, {prop: "selectedIdentityPresent", name: "selectedIdentityPresent", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "selectedIdentity", name: "selectedIdentity", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "supportedPoints", name: "supportedPoints", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "cookie", name: "cookie", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "selectedGroup", name: "selectedGroup", embedded: false, exported: false, typ: CurveID, tag: ""}]); - encryptedExtensionsMsg.init("crypto/tls", [{prop: "raw", name: "raw", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "alpnProtocol", name: "alpnProtocol", embedded: false, exported: false, typ: $String, tag: ""}]); + ecdheKeyAgreement.init("crypto/tls", [{prop: "version", name: "version", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "isRSA", name: "isRSA", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "key", name: "key", embedded: false, exported: false, typ: ptrType$29, tag: ""}, {prop: "ckx", name: "ckx", embedded: false, exported: false, typ: ptrType$31, tag: ""}, {prop: "preMasterSecret", name: "preMasterSecret", embedded: false, exported: false, typ: sliceType$6, tag: ""}]); + serverHandshakeStateTLS13.init("crypto/tls", [{prop: "c", name: "c", embedded: false, exported: false, typ: ptrType$9, tag: ""}, {prop: "ctx", name: "ctx", embedded: false, exported: false, typ: context.Context, tag: ""}, {prop: "clientHello", name: "clientHello", embedded: false, exported: false, typ: ptrType$33, tag: ""}, {prop: "hello", name: "hello", embedded: false, exported: false, typ: ptrType$38, tag: ""}, {prop: "sentDummyCCS", name: "sentDummyCCS", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "usingPSK", name: "usingPSK", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "earlyData", name: "earlyData", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "suite", name: "suite", embedded: false, exported: false, typ: ptrType$3, tag: ""}, {prop: "cert", name: "cert", embedded: false, exported: false, typ: ptrType$34, tag: ""}, {prop: "sigAlg", name: "sigAlg", embedded: false, exported: false, typ: SignatureScheme, tag: ""}, {prop: "earlySecret", name: "earlySecret", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "sharedKey", name: "sharedKey", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "handshakeSecret", name: "handshakeSecret", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "masterSecret", name: "masterSecret", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "trafficSecret", name: "trafficSecret", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "transcript", name: "transcript", embedded: false, exported: false, typ: hash.Hash, tag: ""}, {prop: "clientFinished", name: "clientFinished", embedded: false, exported: false, typ: sliceType$6, tag: ""}]); + serverHandshakeState.init("crypto/tls", [{prop: "c", name: "c", embedded: false, exported: false, typ: ptrType$9, tag: ""}, {prop: "ctx", name: "ctx", embedded: false, exported: false, typ: context.Context, tag: ""}, {prop: "clientHello", name: "clientHello", embedded: false, exported: false, typ: ptrType$33, tag: ""}, {prop: "hello", name: "hello", embedded: false, exported: false, typ: ptrType$38, tag: ""}, {prop: "suite", name: "suite", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "ecdheOk", name: "ecdheOk", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "ecSignOk", name: "ecSignOk", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "rsaDecryptOk", name: "rsaDecryptOk", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "rsaSignOk", name: "rsaSignOk", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "sessionState", name: "sessionState", embedded: false, exported: false, typ: ptrType$21, tag: ""}, {prop: "finishedHash", name: "finishedHash", embedded: false, exported: false, typ: finishedHash, tag: ""}, {prop: "masterSecret", name: "masterSecret", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "cert", name: "cert", embedded: false, exported: false, typ: ptrType$34, tag: ""}]); + marshalingFunction.init([ptrType$18], [$error], false); + clientHelloMsg.init("crypto/tls", [{prop: "raw", name: "raw", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "vers", name: "vers", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "random", name: "random", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "sessionId", name: "sessionId", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "cipherSuites", name: "cipherSuites", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "compressionMethods", name: "compressionMethods", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "serverName", name: "serverName", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "ocspStapling", name: "ocspStapling", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "supportedCurves", name: "supportedCurves", embedded: false, exported: false, typ: sliceType$4, tag: ""}, {prop: "supportedPoints", name: "supportedPoints", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "ticketSupported", name: "ticketSupported", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "sessionTicket", name: "sessionTicket", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "supportedSignatureAlgorithms", name: "supportedSignatureAlgorithms", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "supportedSignatureAlgorithmsCert", name: "supportedSignatureAlgorithmsCert", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "secureRenegotiationSupported", name: "secureRenegotiationSupported", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "secureRenegotiation", name: "secureRenegotiation", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "extendedMasterSecret", name: "extendedMasterSecret", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "alpnProtocols", name: "alpnProtocols", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "scts", name: "scts", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "supportedVersions", name: "supportedVersions", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "cookie", name: "cookie", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "keyShares", name: "keyShares", embedded: false, exported: false, typ: sliceType$17, tag: ""}, {prop: "earlyData", name: "earlyData", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "pskModes", name: "pskModes", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "pskIdentities", name: "pskIdentities", embedded: false, exported: false, typ: sliceType$18, tag: ""}, {prop: "pskBinders", name: "pskBinders", embedded: false, exported: false, typ: sliceType$11, tag: ""}, {prop: "quicTransportParameters", name: "quicTransportParameters", embedded: false, exported: false, typ: sliceType$6, tag: ""}]); + serverHelloMsg.init("crypto/tls", [{prop: "raw", name: "raw", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "vers", name: "vers", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "random", name: "random", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "sessionId", name: "sessionId", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "cipherSuite", name: "cipherSuite", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "compressionMethod", name: "compressionMethod", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "ocspStapling", name: "ocspStapling", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "ticketSupported", name: "ticketSupported", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "secureRenegotiationSupported", name: "secureRenegotiationSupported", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "secureRenegotiation", name: "secureRenegotiation", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "extendedMasterSecret", name: "extendedMasterSecret", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "alpnProtocol", name: "alpnProtocol", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "scts", name: "scts", embedded: false, exported: false, typ: sliceType$11, tag: ""}, {prop: "supportedVersion", name: "supportedVersion", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "serverShare", name: "serverShare", embedded: false, exported: false, typ: keyShare, tag: ""}, {prop: "selectedIdentityPresent", name: "selectedIdentityPresent", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "selectedIdentity", name: "selectedIdentity", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "supportedPoints", name: "supportedPoints", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "cookie", name: "cookie", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "selectedGroup", name: "selectedGroup", embedded: false, exported: false, typ: CurveID, tag: ""}]); + encryptedExtensionsMsg.init("crypto/tls", [{prop: "raw", name: "raw", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "alpnProtocol", name: "alpnProtocol", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "quicTransportParameters", name: "quicTransportParameters", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "earlyData", name: "earlyData", embedded: false, exported: false, typ: $Bool, tag: ""}]); endOfEarlyDataMsg.init("", []); keyUpdateMsg.init("crypto/tls", [{prop: "raw", name: "raw", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "updateRequested", name: "updateRequested", embedded: false, exported: false, typ: $Bool, tag: ""}]); newSessionTicketMsgTLS13.init("crypto/tls", [{prop: "raw", name: "raw", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "lifetime", name: "lifetime", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "ageAdd", name: "ageAdd", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "nonce", name: "nonce", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "label", name: "label", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "maxEarlyData", name: "maxEarlyData", embedded: false, exported: false, typ: $Uint32, tag: ""}]); @@ -264749,36 +267150,35 @@ $packages["crypto/tls"] = (function() { newSessionTicketMsg.init("crypto/tls", [{prop: "raw", name: "raw", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "ticket", name: "ticket", embedded: false, exported: false, typ: sliceType$6, tag: ""}]); helloRequestMsg.init("", []); transcriptHash.init([{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$6], [$Int, $error], false)}]); - clientHandshakeStateTLS13.init("crypto/tls", [{prop: "c", name: "c", embedded: false, exported: false, typ: ptrType$8, tag: ""}, {prop: "ctx", name: "ctx", embedded: false, exported: false, typ: context.Context, tag: ""}, {prop: "serverHello", name: "serverHello", embedded: false, exported: false, typ: ptrType$31, tag: ""}, {prop: "hello", name: "hello", embedded: false, exported: false, typ: ptrType$27, tag: ""}, {prop: "ecdheKey", name: "ecdheKey", embedded: false, exported: false, typ: ptrType$23, tag: ""}, {prop: "session", name: "session", embedded: false, exported: false, typ: ptrType$39, tag: ""}, {prop: "earlySecret", name: "earlySecret", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "binderKey", name: "binderKey", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "certReq", name: "certReq", embedded: false, exported: false, typ: ptrType$41, tag: ""}, {prop: "usingPSK", name: "usingPSK", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "sentDummyCCS", name: "sentDummyCCS", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "suite", name: "suite", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "transcript", name: "transcript", embedded: false, exported: false, typ: hash.Hash, tag: ""}, {prop: "masterSecret", name: "masterSecret", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "trafficSecret", name: "trafficSecret", embedded: false, exported: false, typ: sliceType$6, tag: ""}]); - clientHandshakeState.init("crypto/tls", [{prop: "c", name: "c", embedded: false, exported: false, typ: ptrType$8, tag: ""}, {prop: "ctx", name: "ctx", embedded: false, exported: false, typ: context.Context, tag: ""}, {prop: "serverHello", name: "serverHello", embedded: false, exported: false, typ: ptrType$31, tag: ""}, {prop: "hello", name: "hello", embedded: false, exported: false, typ: ptrType$27, tag: ""}, {prop: "suite", name: "suite", embedded: false, exported: false, typ: ptrType$3, tag: ""}, {prop: "finishedHash", name: "finishedHash", embedded: false, exported: false, typ: finishedHash, tag: ""}, {prop: "masterSecret", name: "masterSecret", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "session", name: "session", embedded: false, exported: false, typ: ptrType$39, tag: ""}]); - Conn.init("crypto/tls", [{prop: "conn", name: "conn", embedded: false, exported: false, typ: net.Conn, tag: ""}, {prop: "isClient", name: "isClient", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "handshakeFn", name: "handshakeFn", embedded: false, exported: false, typ: funcType$2, tag: ""}, {prop: "isHandshakeComplete", name: "isHandshakeComplete", embedded: false, exported: false, typ: atomic.Bool, tag: ""}, {prop: "handshakeMutex", name: "handshakeMutex", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "handshakeErr", name: "handshakeErr", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "vers", name: "vers", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "haveVers", name: "haveVers", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "config", name: "config", embedded: false, exported: false, typ: ptrType$5, tag: ""}, {prop: "handshakes", name: "handshakes", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "didResume", name: "didResume", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "cipherSuite", name: "cipherSuite", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "ocspResponse", name: "ocspResponse", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "scts", name: "scts", embedded: false, exported: false, typ: sliceType$11, tag: ""}, {prop: "peerCertificates", name: "peerCertificates", embedded: false, exported: false, typ: sliceType$12, tag: ""}, {prop: "activeCertHandles", name: "activeCertHandles", embedded: false, exported: false, typ: sliceType$13, tag: ""}, {prop: "verifiedChains", name: "verifiedChains", embedded: false, exported: false, typ: sliceType$14, tag: ""}, {prop: "serverName", name: "serverName", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "secureRenegotiation", name: "secureRenegotiation", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "ekm", name: "ekm", embedded: false, exported: false, typ: funcType$3, tag: ""}, {prop: "resumptionSecret", name: "resumptionSecret", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "ticketKeys", name: "ticketKeys", embedded: false, exported: false, typ: sliceType$5, tag: ""}, {prop: "clientFinishedIsFirst", name: "clientFinishedIsFirst", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "closeNotifyErr", name: "closeNotifyErr", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "closeNotifySent", name: "closeNotifySent", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "clientFinished", name: "clientFinished", embedded: false, exported: false, typ: arrayType$1, tag: ""}, {prop: "serverFinished", name: "serverFinished", embedded: false, exported: false, typ: arrayType$1, tag: ""}, {prop: "clientProtocol", name: "clientProtocol", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "in$28", name: "in", embedded: false, exported: false, typ: halfConn, tag: ""}, {prop: "out", name: "out", embedded: false, exported: false, typ: halfConn, tag: ""}, {prop: "rawInput", name: "rawInput", embedded: false, exported: false, typ: bytes.Buffer, tag: ""}, {prop: "input", name: "input", embedded: false, exported: false, typ: bytes.Reader, tag: ""}, {prop: "hand", name: "hand", embedded: false, exported: false, typ: bytes.Buffer, tag: ""}, {prop: "buffering", name: "buffering", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "sendBuf", name: "sendBuf", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "bytesSent", name: "bytesSent", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "packetsSent", name: "packetsSent", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "retryCount", name: "retryCount", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "activeCall", name: "activeCall", embedded: false, exported: false, typ: atomic.Int32, tag: ""}, {prop: "tmp", name: "tmp", embedded: false, exported: false, typ: arrayType$4, tag: ""}]); - halfConn.init("crypto/tls", [{prop: "Mutex", name: "Mutex", embedded: true, exported: true, typ: sync.Mutex, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "version", name: "version", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "cipher", name: "cipher", embedded: false, exported: false, typ: $emptyInterface, tag: ""}, {prop: "mac", name: "mac", embedded: false, exported: false, typ: hash.Hash, tag: ""}, {prop: "seq", name: "seq", embedded: false, exported: false, typ: arrayType$2, tag: ""}, {prop: "scratchBuf", name: "scratchBuf", embedded: false, exported: false, typ: arrayType$3, tag: ""}, {prop: "nextCipher", name: "nextCipher", embedded: false, exported: false, typ: $emptyInterface, tag: ""}, {prop: "nextMac", name: "nextMac", embedded: false, exported: false, typ: hash.Hash, tag: ""}, {prop: "trafficSecret", name: "trafficSecret", embedded: false, exported: false, typ: sliceType$6, tag: ""}]); + clientHandshakeStateTLS13.init("crypto/tls", [{prop: "c", name: "c", embedded: false, exported: false, typ: ptrType$9, tag: ""}, {prop: "ctx", name: "ctx", embedded: false, exported: false, typ: context.Context, tag: ""}, {prop: "serverHello", name: "serverHello", embedded: false, exported: false, typ: ptrType$38, tag: ""}, {prop: "hello", name: "hello", embedded: false, exported: false, typ: ptrType$33, tag: ""}, {prop: "ecdheKey", name: "ecdheKey", embedded: false, exported: false, typ: ptrType$29, tag: ""}, {prop: "session", name: "session", embedded: false, exported: false, typ: ptrType$21, tag: ""}, {prop: "earlySecret", name: "earlySecret", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "binderKey", name: "binderKey", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "certReq", name: "certReq", embedded: false, exported: false, typ: ptrType$44, tag: ""}, {prop: "usingPSK", name: "usingPSK", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "sentDummyCCS", name: "sentDummyCCS", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "suite", name: "suite", embedded: false, exported: false, typ: ptrType$3, tag: ""}, {prop: "transcript", name: "transcript", embedded: false, exported: false, typ: hash.Hash, tag: ""}, {prop: "masterSecret", name: "masterSecret", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "trafficSecret", name: "trafficSecret", embedded: false, exported: false, typ: sliceType$6, tag: ""}]); + clientHandshakeState.init("crypto/tls", [{prop: "c", name: "c", embedded: false, exported: false, typ: ptrType$9, tag: ""}, {prop: "ctx", name: "ctx", embedded: false, exported: false, typ: context.Context, tag: ""}, {prop: "serverHello", name: "serverHello", embedded: false, exported: false, typ: ptrType$38, tag: ""}, {prop: "hello", name: "hello", embedded: false, exported: false, typ: ptrType$33, tag: ""}, {prop: "suite", name: "suite", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "finishedHash", name: "finishedHash", embedded: false, exported: false, typ: finishedHash, tag: ""}, {prop: "masterSecret", name: "masterSecret", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "session", name: "session", embedded: false, exported: false, typ: ptrType$21, tag: ""}, {prop: "ticket", name: "ticket", embedded: false, exported: false, typ: sliceType$6, tag: ""}]); + Conn.init("crypto/tls", [{prop: "conn", name: "conn", embedded: false, exported: false, typ: net.Conn, tag: ""}, {prop: "isClient", name: "isClient", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "handshakeFn", name: "handshakeFn", embedded: false, exported: false, typ: funcType$2, tag: ""}, {prop: "quic", name: "quic", embedded: false, exported: false, typ: ptrType$5, tag: ""}, {prop: "isHandshakeComplete", name: "isHandshakeComplete", embedded: false, exported: false, typ: atomic.Bool, tag: ""}, {prop: "handshakeMutex", name: "handshakeMutex", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "handshakeErr", name: "handshakeErr", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "vers", name: "vers", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "haveVers", name: "haveVers", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "config", name: "config", embedded: false, exported: false, typ: ptrType$6, tag: ""}, {prop: "handshakes", name: "handshakes", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "extMasterSecret", name: "extMasterSecret", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "didResume", name: "didResume", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "cipherSuite", name: "cipherSuite", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "ocspResponse", name: "ocspResponse", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "scts", name: "scts", embedded: false, exported: false, typ: sliceType$11, tag: ""}, {prop: "peerCertificates", name: "peerCertificates", embedded: false, exported: false, typ: sliceType$12, tag: ""}, {prop: "activeCertHandles", name: "activeCertHandles", embedded: false, exported: false, typ: sliceType$13, tag: ""}, {prop: "verifiedChains", name: "verifiedChains", embedded: false, exported: false, typ: sliceType$14, tag: ""}, {prop: "serverName", name: "serverName", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "secureRenegotiation", name: "secureRenegotiation", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "ekm", name: "ekm", embedded: false, exported: false, typ: funcType$3, tag: ""}, {prop: "resumptionSecret", name: "resumptionSecret", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "ticketKeys", name: "ticketKeys", embedded: false, exported: false, typ: sliceType$5, tag: ""}, {prop: "clientFinishedIsFirst", name: "clientFinishedIsFirst", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "closeNotifyErr", name: "closeNotifyErr", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "closeNotifySent", name: "closeNotifySent", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "clientFinished", name: "clientFinished", embedded: false, exported: false, typ: arrayType$1, tag: ""}, {prop: "serverFinished", name: "serverFinished", embedded: false, exported: false, typ: arrayType$1, tag: ""}, {prop: "clientProtocol", name: "clientProtocol", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "in$30", name: "in", embedded: false, exported: false, typ: halfConn, tag: ""}, {prop: "out", name: "out", embedded: false, exported: false, typ: halfConn, tag: ""}, {prop: "rawInput", name: "rawInput", embedded: false, exported: false, typ: bytes.Buffer, tag: ""}, {prop: "input", name: "input", embedded: false, exported: false, typ: bytes.Reader, tag: ""}, {prop: "hand", name: "hand", embedded: false, exported: false, typ: bytes.Buffer, tag: ""}, {prop: "buffering", name: "buffering", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "sendBuf", name: "sendBuf", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "bytesSent", name: "bytesSent", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "packetsSent", name: "packetsSent", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "retryCount", name: "retryCount", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "activeCall", name: "activeCall", embedded: false, exported: false, typ: atomic.Int32, tag: ""}, {prop: "tmp", name: "tmp", embedded: false, exported: false, typ: arrayType$4, tag: ""}]); + halfConn.init("crypto/tls", [{prop: "Mutex", name: "Mutex", embedded: true, exported: true, typ: sync.Mutex, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "version", name: "version", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "cipher", name: "cipher", embedded: false, exported: false, typ: $emptyInterface, tag: ""}, {prop: "mac", name: "mac", embedded: false, exported: false, typ: hash.Hash, tag: ""}, {prop: "seq", name: "seq", embedded: false, exported: false, typ: arrayType$2, tag: ""}, {prop: "scratchBuf", name: "scratchBuf", embedded: false, exported: false, typ: arrayType$3, tag: ""}, {prop: "nextCipher", name: "nextCipher", embedded: false, exported: false, typ: $emptyInterface, tag: ""}, {prop: "nextMac", name: "nextMac", embedded: false, exported: false, typ: hash.Hash, tag: ""}, {prop: "level", name: "level", embedded: false, exported: false, typ: QUICEncryptionLevel, tag: ""}, {prop: "trafficSecret", name: "trafficSecret", embedded: false, exported: false, typ: sliceType$6, tag: ""}]); permanentError.init("crypto/tls", [{prop: "err", name: "err", embedded: false, exported: false, typ: net.Error, tag: ""}]); cbcMode.init([{prop: "BlockSize", name: "BlockSize", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "CryptBlocks", name: "CryptBlocks", pkg: "", typ: $funcType([sliceType$6, sliceType$6], [], false)}, {prop: "SetIV", name: "SetIV", pkg: "", typ: $funcType([sliceType$6], [], false)}]); - RecordHeaderError.init("", [{prop: "Msg", name: "Msg", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "RecordHeader", name: "RecordHeader", embedded: false, exported: true, typ: arrayType$6, tag: ""}, {prop: "Conn", name: "Conn", embedded: false, exported: true, typ: net.Conn, tag: ""}]); + RecordHeaderError.init("", [{prop: "Msg", name: "Msg", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "RecordHeader", name: "RecordHeader", embedded: false, exported: true, typ: arrayType$7, tag: ""}, {prop: "Conn", name: "Conn", embedded: false, exported: true, typ: net.Conn, tag: ""}]); atLeastReader.init("", [{prop: "R", name: "R", embedded: false, exported: true, typ: io.Reader, tag: ""}, {prop: "N", name: "N", embedded: false, exported: true, typ: $Int64, tag: ""}]); keyShare.init("crypto/tls", [{prop: "group", name: "group", embedded: false, exported: false, typ: CurveID, tag: ""}, {prop: "data", name: "data", embedded: false, exported: false, typ: sliceType$6, tag: ""}]); pskIdentity.init("crypto/tls", [{prop: "label", name: "label", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "obfuscatedTicketAge", name: "obfuscatedTicketAge", embedded: false, exported: false, typ: $Uint32, tag: ""}]); ConnectionState.init("crypto/tls", [{prop: "Version", name: "Version", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "HandshakeComplete", name: "HandshakeComplete", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "DidResume", name: "DidResume", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "CipherSuite", name: "CipherSuite", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "NegotiatedProtocol", name: "NegotiatedProtocol", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "NegotiatedProtocolIsMutual", name: "NegotiatedProtocolIsMutual", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "ServerName", name: "ServerName", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "PeerCertificates", name: "PeerCertificates", embedded: false, exported: true, typ: sliceType$12, tag: ""}, {prop: "VerifiedChains", name: "VerifiedChains", embedded: false, exported: true, typ: sliceType$14, tag: ""}, {prop: "SignedCertificateTimestamps", name: "SignedCertificateTimestamps", embedded: false, exported: true, typ: sliceType$11, tag: ""}, {prop: "OCSPResponse", name: "OCSPResponse", embedded: false, exported: true, typ: sliceType$6, tag: ""}, {prop: "TLSUnique", name: "TLSUnique", embedded: false, exported: true, typ: sliceType$6, tag: ""}, {prop: "ekm", name: "ekm", embedded: false, exported: false, typ: funcType$3, tag: ""}]); - ClientSessionState.init("crypto/tls", [{prop: "sessionTicket", name: "sessionTicket", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "vers", name: "vers", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "cipherSuite", name: "cipherSuite", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "masterSecret", name: "masterSecret", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "serverCertificates", name: "serverCertificates", embedded: false, exported: false, typ: sliceType$12, tag: ""}, {prop: "verifiedChains", name: "verifiedChains", embedded: false, exported: false, typ: sliceType$14, tag: ""}, {prop: "receivedAt", name: "receivedAt", embedded: false, exported: false, typ: time.Time, tag: ""}, {prop: "ocspResponse", name: "ocspResponse", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "scts", name: "scts", embedded: false, exported: false, typ: sliceType$11, tag: ""}, {prop: "nonce", name: "nonce", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "useBy", name: "useBy", embedded: false, exported: false, typ: time.Time, tag: ""}, {prop: "ageAdd", name: "ageAdd", embedded: false, exported: false, typ: $Uint32, tag: ""}]); - ClientSessionCache.init([{prop: "Get", name: "Get", pkg: "", typ: $funcType([$String], [ptrType$39, $Bool], false)}, {prop: "Put", name: "Put", pkg: "", typ: $funcType([$String, ptrType$39], [], false)}]); - ClientHelloInfo.init("crypto/tls", [{prop: "CipherSuites", name: "CipherSuites", embedded: false, exported: true, typ: sliceType$3, tag: ""}, {prop: "ServerName", name: "ServerName", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "SupportedCurves", name: "SupportedCurves", embedded: false, exported: true, typ: sliceType$4, tag: ""}, {prop: "SupportedPoints", name: "SupportedPoints", embedded: false, exported: true, typ: sliceType$6, tag: ""}, {prop: "SignatureSchemes", name: "SignatureSchemes", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "SupportedProtos", name: "SupportedProtos", embedded: false, exported: true, typ: sliceType$2, tag: ""}, {prop: "SupportedVersions", name: "SupportedVersions", embedded: false, exported: true, typ: sliceType$3, tag: ""}, {prop: "Conn", name: "Conn", embedded: false, exported: true, typ: net.Conn, tag: ""}, {prop: "config", name: "config", embedded: false, exported: false, typ: ptrType$5, tag: ""}, {prop: "ctx", name: "ctx", embedded: false, exported: false, typ: context.Context, tag: ""}]); + ClientSessionCache.init([{prop: "Get", name: "Get", pkg: "", typ: $funcType([$String], [ptrType$47, $Bool], false)}, {prop: "Put", name: "Put", pkg: "", typ: $funcType([$String, ptrType$47], [], false)}]); + ClientHelloInfo.init("crypto/tls", [{prop: "CipherSuites", name: "CipherSuites", embedded: false, exported: true, typ: sliceType$3, tag: ""}, {prop: "ServerName", name: "ServerName", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "SupportedCurves", name: "SupportedCurves", embedded: false, exported: true, typ: sliceType$4, tag: ""}, {prop: "SupportedPoints", name: "SupportedPoints", embedded: false, exported: true, typ: sliceType$6, tag: ""}, {prop: "SignatureSchemes", name: "SignatureSchemes", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "SupportedProtos", name: "SupportedProtos", embedded: false, exported: true, typ: sliceType$2, tag: ""}, {prop: "SupportedVersions", name: "SupportedVersions", embedded: false, exported: true, typ: sliceType$3, tag: ""}, {prop: "Conn", name: "Conn", embedded: false, exported: true, typ: net.Conn, tag: ""}, {prop: "config", name: "config", embedded: false, exported: false, typ: ptrType$6, tag: ""}, {prop: "ctx", name: "ctx", embedded: false, exported: false, typ: context.Context, tag: ""}]); CertificateRequestInfo.init("crypto/tls", [{prop: "AcceptableCAs", name: "AcceptableCAs", embedded: false, exported: true, typ: sliceType$11, tag: ""}, {prop: "SignatureSchemes", name: "SignatureSchemes", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "Version", name: "Version", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "ctx", name: "ctx", embedded: false, exported: false, typ: context.Context, tag: ""}]); - Config.init("crypto/tls", [{prop: "Rand", name: "Rand", embedded: false, exported: true, typ: io.Reader, tag: ""}, {prop: "Time", name: "Time", embedded: false, exported: true, typ: funcType$4, tag: ""}, {prop: "Certificates", name: "Certificates", embedded: false, exported: true, typ: sliceType$1, tag: ""}, {prop: "NameToCertificate", name: "NameToCertificate", embedded: false, exported: true, typ: mapType, tag: ""}, {prop: "GetCertificate", name: "GetCertificate", embedded: false, exported: true, typ: funcType$5, tag: ""}, {prop: "GetClientCertificate", name: "GetClientCertificate", embedded: false, exported: true, typ: funcType$6, tag: ""}, {prop: "GetConfigForClient", name: "GetConfigForClient", embedded: false, exported: true, typ: funcType$7, tag: ""}, {prop: "VerifyPeerCertificate", name: "VerifyPeerCertificate", embedded: false, exported: true, typ: funcType$8, tag: ""}, {prop: "VerifyConnection", name: "VerifyConnection", embedded: false, exported: true, typ: funcType$9, tag: ""}, {prop: "RootCAs", name: "RootCAs", embedded: false, exported: true, typ: ptrType, tag: ""}, {prop: "NextProtos", name: "NextProtos", embedded: false, exported: true, typ: sliceType$2, tag: ""}, {prop: "ServerName", name: "ServerName", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "ClientAuth", name: "ClientAuth", embedded: false, exported: true, typ: ClientAuthType, tag: ""}, {prop: "ClientCAs", name: "ClientCAs", embedded: false, exported: true, typ: ptrType, tag: ""}, {prop: "InsecureSkipVerify", name: "InsecureSkipVerify", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "CipherSuites", name: "CipherSuites", embedded: false, exported: true, typ: sliceType$3, tag: ""}, {prop: "PreferServerCipherSuites", name: "PreferServerCipherSuites", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "SessionTicketsDisabled", name: "SessionTicketsDisabled", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "SessionTicketKey", name: "SessionTicketKey", embedded: false, exported: true, typ: arrayType, tag: ""}, {prop: "ClientSessionCache", name: "ClientSessionCache", embedded: false, exported: true, typ: ClientSessionCache, tag: ""}, {prop: "MinVersion", name: "MinVersion", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "MaxVersion", name: "MaxVersion", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "CurvePreferences", name: "CurvePreferences", embedded: false, exported: true, typ: sliceType$4, tag: ""}, {prop: "DynamicRecordSizingDisabled", name: "DynamicRecordSizingDisabled", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Renegotiation", name: "Renegotiation", embedded: false, exported: true, typ: RenegotiationSupport, tag: ""}, {prop: "KeyLogWriter", name: "KeyLogWriter", embedded: false, exported: true, typ: io.Writer, tag: ""}, {prop: "mutex", name: "mutex", embedded: false, exported: false, typ: sync.RWMutex, tag: ""}, {prop: "sessionTicketKeys", name: "sessionTicketKeys", embedded: false, exported: false, typ: sliceType$5, tag: ""}, {prop: "autoSessionTicketKeys", name: "autoSessionTicketKeys", embedded: false, exported: false, typ: sliceType$5, tag: ""}]); - ticketKey.init("crypto/tls", [{prop: "keyName", name: "keyName", embedded: false, exported: false, typ: arrayType$4, tag: ""}, {prop: "aesKey", name: "aesKey", embedded: false, exported: false, typ: arrayType$4, tag: ""}, {prop: "hmacKey", name: "hmacKey", embedded: false, exported: false, typ: arrayType$4, tag: ""}, {prop: "created", name: "created", embedded: false, exported: false, typ: time.Time, tag: ""}]); - Certificate.init("", [{prop: "Certificate", name: "Certificate", embedded: false, exported: true, typ: sliceType$11, tag: ""}, {prop: "PrivateKey", name: "PrivateKey", embedded: false, exported: true, typ: crypto.PrivateKey, tag: ""}, {prop: "SupportedSignatureAlgorithms", name: "SupportedSignatureAlgorithms", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "OCSPStaple", name: "OCSPStaple", embedded: false, exported: true, typ: sliceType$6, tag: ""}, {prop: "SignedCertificateTimestamps", name: "SignedCertificateTimestamps", embedded: false, exported: true, typ: sliceType$11, tag: ""}, {prop: "Leaf", name: "Leaf", embedded: false, exported: true, typ: ptrType$6, tag: ""}]); + Config.init("crypto/tls", [{prop: "Rand", name: "Rand", embedded: false, exported: true, typ: io.Reader, tag: ""}, {prop: "Time", name: "Time", embedded: false, exported: true, typ: funcType$4, tag: ""}, {prop: "Certificates", name: "Certificates", embedded: false, exported: true, typ: sliceType$1, tag: ""}, {prop: "NameToCertificate", name: "NameToCertificate", embedded: false, exported: true, typ: mapType, tag: ""}, {prop: "GetCertificate", name: "GetCertificate", embedded: false, exported: true, typ: funcType$5, tag: ""}, {prop: "GetClientCertificate", name: "GetClientCertificate", embedded: false, exported: true, typ: funcType$6, tag: ""}, {prop: "GetConfigForClient", name: "GetConfigForClient", embedded: false, exported: true, typ: funcType$7, tag: ""}, {prop: "VerifyPeerCertificate", name: "VerifyPeerCertificate", embedded: false, exported: true, typ: funcType$8, tag: ""}, {prop: "VerifyConnection", name: "VerifyConnection", embedded: false, exported: true, typ: funcType$9, tag: ""}, {prop: "RootCAs", name: "RootCAs", embedded: false, exported: true, typ: ptrType, tag: ""}, {prop: "NextProtos", name: "NextProtos", embedded: false, exported: true, typ: sliceType$2, tag: ""}, {prop: "ServerName", name: "ServerName", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "ClientAuth", name: "ClientAuth", embedded: false, exported: true, typ: ClientAuthType, tag: ""}, {prop: "ClientCAs", name: "ClientCAs", embedded: false, exported: true, typ: ptrType, tag: ""}, {prop: "InsecureSkipVerify", name: "InsecureSkipVerify", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "CipherSuites", name: "CipherSuites", embedded: false, exported: true, typ: sliceType$3, tag: ""}, {prop: "PreferServerCipherSuites", name: "PreferServerCipherSuites", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "SessionTicketsDisabled", name: "SessionTicketsDisabled", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "SessionTicketKey", name: "SessionTicketKey", embedded: false, exported: true, typ: arrayType, tag: ""}, {prop: "ClientSessionCache", name: "ClientSessionCache", embedded: false, exported: true, typ: ClientSessionCache, tag: ""}, {prop: "UnwrapSession", name: "UnwrapSession", embedded: false, exported: true, typ: funcType$10, tag: ""}, {prop: "WrapSession", name: "WrapSession", embedded: false, exported: true, typ: funcType$11, tag: ""}, {prop: "MinVersion", name: "MinVersion", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "MaxVersion", name: "MaxVersion", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "CurvePreferences", name: "CurvePreferences", embedded: false, exported: true, typ: sliceType$4, tag: ""}, {prop: "DynamicRecordSizingDisabled", name: "DynamicRecordSizingDisabled", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Renegotiation", name: "Renegotiation", embedded: false, exported: true, typ: RenegotiationSupport, tag: ""}, {prop: "KeyLogWriter", name: "KeyLogWriter", embedded: false, exported: true, typ: io.Writer, tag: ""}, {prop: "mutex", name: "mutex", embedded: false, exported: false, typ: sync.RWMutex, tag: ""}, {prop: "sessionTicketKeys", name: "sessionTicketKeys", embedded: false, exported: false, typ: sliceType$5, tag: ""}, {prop: "autoSessionTicketKeys", name: "autoSessionTicketKeys", embedded: false, exported: false, typ: sliceType$5, tag: ""}]); + ticketKey.init("crypto/tls", [{prop: "aesKey", name: "aesKey", embedded: false, exported: false, typ: arrayType$4, tag: ""}, {prop: "hmacKey", name: "hmacKey", embedded: false, exported: false, typ: arrayType$4, tag: ""}, {prop: "created", name: "created", embedded: false, exported: false, typ: time.Time, tag: ""}]); + Certificate.init("", [{prop: "Certificate", name: "Certificate", embedded: false, exported: true, typ: sliceType$11, tag: ""}, {prop: "PrivateKey", name: "PrivateKey", embedded: false, exported: true, typ: crypto.PrivateKey, tag: ""}, {prop: "SupportedSignatureAlgorithms", name: "SupportedSignatureAlgorithms", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "OCSPStaple", name: "OCSPStaple", embedded: false, exported: true, typ: sliceType$6, tag: ""}, {prop: "SignedCertificateTimestamps", name: "SignedCertificateTimestamps", embedded: false, exported: true, typ: sliceType$11, tag: ""}, {prop: "Leaf", name: "Leaf", embedded: false, exported: true, typ: ptrType$7, tag: ""}]); handshakeMessage.init([{prop: "marshal", name: "marshal", pkg: "crypto/tls", typ: $funcType([], [sliceType$6, $error], false)}, {prop: "unmarshal", name: "unmarshal", pkg: "crypto/tls", typ: $funcType([sliceType$6], [$Bool], false)}]); CertificateVerificationError.init("", [{prop: "UnverifiedCertificates", name: "UnverifiedCertificates", embedded: false, exported: true, typ: sliceType$12, tag: ""}, {prop: "Err", name: "Err", embedded: false, exported: true, typ: $error, tag: ""}]); - cipherSuite.init("crypto/tls", [{prop: "id", name: "id", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "keyLen", name: "keyLen", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "macLen", name: "macLen", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "ivLen", name: "ivLen", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "ka", name: "ka", embedded: false, exported: false, typ: funcType$10, tag: ""}, {prop: "flags", name: "flags", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "cipher", name: "cipher", embedded: false, exported: false, typ: funcType$11, tag: ""}, {prop: "mac", name: "mac", embedded: false, exported: false, typ: funcType$12, tag: ""}, {prop: "aead", name: "aead", embedded: false, exported: false, typ: funcType$13, tag: ""}]); - cipherSuiteTLS13.init("crypto/tls", [{prop: "id", name: "id", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "keyLen", name: "keyLen", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "aead", name: "aead", embedded: false, exported: false, typ: funcType$13, tag: ""}, {prop: "hash", name: "hash", embedded: false, exported: false, typ: crypto.Hash, tag: ""}]); + cipherSuite.init("crypto/tls", [{prop: "id", name: "id", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "keyLen", name: "keyLen", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "macLen", name: "macLen", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "ivLen", name: "ivLen", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "ka", name: "ka", embedded: false, exported: false, typ: funcType$12, tag: ""}, {prop: "flags", name: "flags", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "cipher", name: "cipher", embedded: false, exported: false, typ: funcType$13, tag: ""}, {prop: "mac", name: "mac", embedded: false, exported: false, typ: funcType$14, tag: ""}, {prop: "aead", name: "aead", embedded: false, exported: false, typ: funcType$15, tag: ""}]); + cipherSuiteTLS13.init("crypto/tls", [{prop: "id", name: "id", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "keyLen", name: "keyLen", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "aead", name: "aead", embedded: false, exported: false, typ: funcType$15, tag: ""}, {prop: "hash", name: "hash", embedded: false, exported: false, typ: crypto.Hash, tag: ""}]); aead.init([{prop: "NonceSize", name: "NonceSize", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Open", name: "Open", pkg: "", typ: $funcType([sliceType$6, sliceType$6, sliceType$6, sliceType$6], [sliceType$6, $error], false)}, {prop: "Overhead", name: "Overhead", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Seal", name: "Seal", pkg: "", typ: $funcType([sliceType$6, sliceType$6, sliceType$6, sliceType$6], [sliceType$6], false)}, {prop: "explicitNonceLen", name: "explicitNonceLen", pkg: "crypto/tls", typ: $funcType([], [$Int], false)}]); prefixNonceAEAD.init("crypto/tls", [{prop: "nonce", name: "nonce", embedded: false, exported: false, typ: arrayType$1, tag: ""}, {prop: "aead", name: "aead", embedded: false, exported: false, typ: cipher.AEAD, tag: ""}]); xorNonceAEAD.init("crypto/tls", [{prop: "nonceMask", name: "nonceMask", embedded: false, exported: false, typ: arrayType$1, tag: ""}, {prop: "aead", name: "aead", embedded: false, exported: false, typ: cipher.AEAD, tag: ""}]); constantTimeHash.init([{prop: "BlockSize", name: "BlockSize", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "ConstantTimeSum", name: "ConstantTimeSum", pkg: "", typ: $funcType([sliceType$6], [sliceType$6], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Sum", name: "Sum", pkg: "", typ: $funcType([sliceType$6], [sliceType$6], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$6], [$Int, $error], false)}]); cthWrapper.init("crypto/tls", [{prop: "h", name: "h", embedded: false, exported: false, typ: constantTimeHash, tag: ""}]); - cacheEntry.init("crypto/tls", [{prop: "refs", name: "refs", embedded: false, exported: false, typ: atomic.Int64, tag: ""}, {prop: "cert", name: "cert", embedded: false, exported: false, typ: ptrType$6, tag: ""}]); + cacheEntry.init("crypto/tls", [{prop: "refs", name: "refs", embedded: false, exported: false, typ: atomic.Int64, tag: ""}, {prop: "cert", name: "cert", embedded: false, exported: false, typ: ptrType$7, tag: ""}]); certCache.init("", [{prop: "Map", name: "Map", embedded: true, exported: true, typ: sync.Map, tag: ""}]); - activeCert.init("crypto/tls", [{prop: "cert", name: "cert", embedded: false, exported: false, typ: ptrType$6, tag: ""}]); + activeCert.init("crypto/tls", [{prop: "cert", name: "cert", embedded: false, exported: false, typ: ptrType$7, tag: ""}]); binaryMarshaler.init([{prop: "MarshalBinary", name: "MarshalBinary", pkg: "", typ: $funcType([], [sliceType$6, $error], false)}, {prop: "UnmarshalBinary", name: "UnmarshalBinary", pkg: "", typ: $funcType([sliceType$6], [$error], false)}]); }; $init = function() { @@ -264829,8 +267229,9 @@ $packages["crypto/tls"] = (function() { testingOnlyForceClientHelloSignatureAlgorithms = sliceType.nil; testingOnlyForceDowngradeCanary = false; writerMutex = new sync.Mutex.ptr(0, 0); - emptyConfig = new Config.ptr($ifaceNil, $throwNilPointerError, sliceType$1.nil, false, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, ptrType.nil, sliceType$2.nil, "", 0, ptrType.nil, false, sliceType$3.nil, false, false, arrayType.zero(), $ifaceNil, 0, 0, sliceType$4.nil, false, 0, $ifaceNil, new sync.RWMutex.ptr(new sync.Mutex.ptr(0, 0), 0, 0, new atomic.Int32.ptr(new atomic.noCopy.ptr(), 0), new atomic.Int32.ptr(new atomic.noCopy.ptr(), 0)), sliceType$5.nil, sliceType$5.nil); + emptyConfig = new Config.ptr($ifaceNil, $throwNilPointerError, sliceType$1.nil, false, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, ptrType.nil, sliceType$2.nil, "", 0, ptrType.nil, false, sliceType$3.nil, false, false, arrayType.zero(), $ifaceNil, $throwNilPointerError, $throwNilPointerError, 0, 0, sliceType$4.nil, false, 0, $ifaceNil, new sync.RWMutex.ptr(new sync.Mutex.ptr(0, 0), 0, 0, new atomic.Int32.ptr(new atomic.noCopy.ptr(), 0), new atomic.Int32.ptr(new atomic.noCopy.ptr(), 0)), sliceType$5.nil, sliceType$5.nil); masterSecretLabel = (new sliceType$6($stringToBytes("master secret"))); + extendedMasterSecretLabel = (new sliceType$6($stringToBytes("extended master secret"))); keyExpansionLabel = (new sliceType$6($stringToBytes("key expansion"))); clientFinishedLabel = (new sliceType$6($stringToBytes("client finished"))); serverFinishedLabel = (new sliceType$6($stringToBytes("server finished"))); @@ -264846,27 +267247,27 @@ $packages["crypto/tls"] = (function() { _CurveID_index_0 = $toNativeArray($kindUint8, [0, 9, 18, 27]); _ClientAuthType_index = $toNativeArray($kindUint8, [0, 12, 29, 49, 72, 98]); directSigning = 0; - helloRetryRequestRandom = new sliceType$6([207, 33, 173, 116, 229, 154, 97, 17, 190, 29, 140, 2, 30, 101, 184, 145, 194, 162, 17, 22, 122, 187, 140, 94, 7, 158, 9, 226, 200, 168, 51, 156]); defaultSupportedSignatureAlgorithms = new sliceType([2052, 1027, 2055, 2053, 2054, 1025, 1281, 1537, 1283, 1539, 513, 515]); + helloRetryRequestRandom = new sliceType$6([207, 33, 173, 116, 229, 154, 97, 17, 190, 29, 140, 2, 30, 101, 184, 145, 194, 162, 17, 22, 122, 187, 140, 94, 7, 158, 9, 226, 200, 168, 51, 156]); deprecatedSessionTicketKey = (new sliceType$6($stringToBytes("DEPRECATED"))); supportedVersions = new sliceType$3([772, 771, 770, 769]); defaultCurvePreferences = new sliceType$4([29, 23, 24, 25]); errNoCertificates = errors.New("tls: no certificates configured"); + cipherSuites = new sliceType$8([new cipherSuite.ptr(52392, 32, 0, 12, ecdheRSAKA, 5, $throwNilPointerError, $throwNilPointerError, aeadChaCha20Poly1305), new cipherSuite.ptr(52393, 32, 0, 12, ecdheECDSAKA, 7, $throwNilPointerError, $throwNilPointerError, aeadChaCha20Poly1305), new cipherSuite.ptr(49199, 16, 0, 4, ecdheRSAKA, 5, $throwNilPointerError, $throwNilPointerError, aeadAESGCM), new cipherSuite.ptr(49195, 16, 0, 4, ecdheECDSAKA, 7, $throwNilPointerError, $throwNilPointerError, aeadAESGCM), new cipherSuite.ptr(49200, 32, 0, 4, ecdheRSAKA, 13, $throwNilPointerError, $throwNilPointerError, aeadAESGCM), new cipherSuite.ptr(49196, 32, 0, 4, ecdheECDSAKA, 15, $throwNilPointerError, $throwNilPointerError, aeadAESGCM), new cipherSuite.ptr(49191, 16, 32, 16, ecdheRSAKA, 5, cipherAES, macSHA256, $throwNilPointerError), new cipherSuite.ptr(49171, 16, 20, 16, ecdheRSAKA, 1, cipherAES, macSHA1, $throwNilPointerError), new cipherSuite.ptr(49187, 16, 32, 16, ecdheECDSAKA, 7, cipherAES, macSHA256, $throwNilPointerError), new cipherSuite.ptr(49161, 16, 20, 16, ecdheECDSAKA, 3, cipherAES, macSHA1, $throwNilPointerError), new cipherSuite.ptr(49172, 32, 20, 16, ecdheRSAKA, 1, cipherAES, macSHA1, $throwNilPointerError), new cipherSuite.ptr(49162, 32, 20, 16, ecdheECDSAKA, 3, cipherAES, macSHA1, $throwNilPointerError), new cipherSuite.ptr(156, 16, 0, 4, rsaKA, 4, $throwNilPointerError, $throwNilPointerError, aeadAESGCM), new cipherSuite.ptr(157, 32, 0, 4, rsaKA, 12, $throwNilPointerError, $throwNilPointerError, aeadAESGCM), new cipherSuite.ptr(60, 16, 32, 16, rsaKA, 4, cipherAES, macSHA256, $throwNilPointerError), new cipherSuite.ptr(47, 16, 20, 16, rsaKA, 0, cipherAES, macSHA1, $throwNilPointerError), new cipherSuite.ptr(53, 32, 20, 16, rsaKA, 0, cipherAES, macSHA1, $throwNilPointerError), new cipherSuite.ptr(49170, 24, 20, 8, ecdheRSAKA, 1, cipher3DES, macSHA1, $throwNilPointerError), new cipherSuite.ptr(10, 24, 20, 8, rsaKA, 0, cipher3DES, macSHA1, $throwNilPointerError), new cipherSuite.ptr(5, 16, 20, 0, rsaKA, 0, cipherRC4, macSHA1, $throwNilPointerError), new cipherSuite.ptr(49169, 16, 20, 0, ecdheRSAKA, 1, cipherRC4, macSHA1, $throwNilPointerError), new cipherSuite.ptr(49159, 16, 20, 0, ecdheECDSAKA, 3, cipherRC4, macSHA1, $throwNilPointerError)]); + cipherSuitesTLS13 = new sliceType$9([new cipherSuiteTLS13.ptr(4865, 16, aeadAESGCMTLS13, 5), new cipherSuiteTLS13.ptr(4867, 32, aeadChaCha20Poly1305, 5), new cipherSuiteTLS13.ptr(4866, 32, aeadAESGCMTLS13, 6)]); + cipherSuitesPreferenceOrder = new sliceType$3([49195, 49199, 49196, 49200, 52393, 52392, 49161, 49171, 49162, 49172, 156, 157, 47, 53, 49170, 10, 49187, 49191, 60, 49159, 49169, 5]); + cipherSuitesPreferenceOrderNoAES = new sliceType$3([52393, 52392, 49195, 49199, 49196, 49200, 49161, 49171, 49162, 49172, 156, 157, 47, 53, 49170, 10, 49187, 49191, 60, 49159, 49169, 5]); + disabledCipherSuites = new sliceType$3([49187, 49191, 60, 49159, 49169, 5]); + defaultCipherSuitesLen = cipherSuitesPreferenceOrder.$length - disabledCipherSuites.$length >> 0; + defaultCipherSuites = $subslice(cipherSuitesPreferenceOrder, 0, defaultCipherSuitesLen); + defaultCipherSuitesTLS13 = new sliceType$3([4865, 4866, 4867]); + defaultCipherSuitesTLS13NoAES = new sliceType$3([4867, 4865, 4866]); hasGCMAsmAMD64 = cpu.X86.HasAES && cpu.X86.HasPCLMULQDQ; hasGCMAsmARM64 = cpu.ARM64.HasAES && cpu.ARM64.HasPMULL; hasGCMAsmS390X = cpu.S390X.HasAES && cpu.S390X.HasAESCBC && cpu.S390X.HasAESCTR && (cpu.S390X.HasGHASH || cpu.S390X.HasAESGCM); hasAESGCMHardwareSupport = false && hasGCMAsmAMD64 || false && hasGCMAsmARM64 || false && hasGCMAsmS390X; - disabledCipherSuites = new sliceType$3([49187, 49191, 60, 49159, 49169, 5]); aesgcmCiphers = $makeMap($Uint16.keyFor, [{ k: 49199, v: true }, { k: 49200, v: true }, { k: 49195, v: true }, { k: 49196, v: true }, { k: 4865, v: true }, { k: 4866, v: true }]); - cipherSuitesTLS13 = new sliceType$8([new cipherSuiteTLS13.ptr(4865, 16, aeadAESGCMTLS13, 5), new cipherSuiteTLS13.ptr(4867, 32, aeadChaCha20Poly1305, 5), new cipherSuiteTLS13.ptr(4866, 32, aeadAESGCMTLS13, 6)]); - defaultCipherSuitesTLS13 = new sliceType$3([4865, 4866, 4867]); - defaultCipherSuitesTLS13NoAES = new sliceType$3([4867, 4865, 4866]); - cipherSuites = new sliceType$9([new cipherSuite.ptr(52392, 32, 0, 12, ecdheRSAKA, 5, $throwNilPointerError, $throwNilPointerError, aeadChaCha20Poly1305), new cipherSuite.ptr(52393, 32, 0, 12, ecdheECDSAKA, 7, $throwNilPointerError, $throwNilPointerError, aeadChaCha20Poly1305), new cipherSuite.ptr(49199, 16, 0, 4, ecdheRSAKA, 5, $throwNilPointerError, $throwNilPointerError, aeadAESGCM), new cipherSuite.ptr(49195, 16, 0, 4, ecdheECDSAKA, 7, $throwNilPointerError, $throwNilPointerError, aeadAESGCM), new cipherSuite.ptr(49200, 32, 0, 4, ecdheRSAKA, 13, $throwNilPointerError, $throwNilPointerError, aeadAESGCM), new cipherSuite.ptr(49196, 32, 0, 4, ecdheECDSAKA, 15, $throwNilPointerError, $throwNilPointerError, aeadAESGCM), new cipherSuite.ptr(49191, 16, 32, 16, ecdheRSAKA, 5, cipherAES, macSHA256, $throwNilPointerError), new cipherSuite.ptr(49171, 16, 20, 16, ecdheRSAKA, 1, cipherAES, macSHA1, $throwNilPointerError), new cipherSuite.ptr(49187, 16, 32, 16, ecdheECDSAKA, 7, cipherAES, macSHA256, $throwNilPointerError), new cipherSuite.ptr(49161, 16, 20, 16, ecdheECDSAKA, 3, cipherAES, macSHA1, $throwNilPointerError), new cipherSuite.ptr(49172, 32, 20, 16, ecdheRSAKA, 1, cipherAES, macSHA1, $throwNilPointerError), new cipherSuite.ptr(49162, 32, 20, 16, ecdheECDSAKA, 3, cipherAES, macSHA1, $throwNilPointerError), new cipherSuite.ptr(156, 16, 0, 4, rsaKA, 4, $throwNilPointerError, $throwNilPointerError, aeadAESGCM), new cipherSuite.ptr(157, 32, 0, 4, rsaKA, 12, $throwNilPointerError, $throwNilPointerError, aeadAESGCM), new cipherSuite.ptr(60, 16, 32, 16, rsaKA, 4, cipherAES, macSHA256, $throwNilPointerError), new cipherSuite.ptr(47, 16, 20, 16, rsaKA, 0, cipherAES, macSHA1, $throwNilPointerError), new cipherSuite.ptr(53, 32, 20, 16, rsaKA, 0, cipherAES, macSHA1, $throwNilPointerError), new cipherSuite.ptr(49170, 24, 20, 8, ecdheRSAKA, 1, cipher3DES, macSHA1, $throwNilPointerError), new cipherSuite.ptr(10, 24, 20, 8, rsaKA, 0, cipher3DES, macSHA1, $throwNilPointerError), new cipherSuite.ptr(5, 16, 20, 0, rsaKA, 0, cipherRC4, macSHA1, $throwNilPointerError), new cipherSuite.ptr(49169, 16, 20, 0, ecdheRSAKA, 1, cipherRC4, macSHA1, $throwNilPointerError), new cipherSuite.ptr(49159, 16, 20, 0, ecdheECDSAKA, 3, cipherRC4, macSHA1, $throwNilPointerError)]); - cipherSuitesPreferenceOrder = new sliceType$3([49195, 49199, 49196, 49200, 52393, 52392, 49161, 49171, 49162, 49172, 156, 157, 47, 53, 49170, 10, 49187, 49191, 60, 49159, 49169, 5]); - cipherSuitesPreferenceOrderNoAES = new sliceType$3([52393, 52392, 49195, 49199, 49196, 49200, 49161, 49171, 49162, 49172, 156, 157, 47, 53, 49170, 10, 49187, 49191, 60, 49159, 49169, 5]); - defaultCipherSuitesLen = cipherSuitesPreferenceOrder.$length - disabledCipherSuites.$length >> 0; - defaultCipherSuites = $subslice(cipherSuitesPreferenceOrder, 0, defaultCipherSuitesLen); - clientCertCache = new certCache.ptr(new sync.Map.ptr(new sync.Mutex.ptr(0, 0), new atomic.Pointer[20 /* sync.readOnly */].ptr(ptrType$4.nil), false, 0)); + globalCertCache = new certCache.ptr(new sync.Map.ptr(new sync.Mutex.ptr(0, 0), new atomic.Pointer[30 /* sync.readOnly */].ptr(ptrType$4.nil), false, 0)); signaturePadding = new sliceType$6([32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32]); rsaSignatureSchemes = new sliceType$10([$clone(new structType.ptr(2052, ($imul(new crypto.Hash(5).Size(), 2)) + 2 >> 0, 772), structType), $clone(new structType.ptr(2053, ($imul(new crypto.Hash(6).Size(), 2)) + 2 >> 0, 772), structType), $clone(new structType.ptr(2054, ($imul(new crypto.Hash(7).Size(), 2)) + 2 >> 0, 772), structType), $clone(new structType.ptr(1025, (19 + new crypto.Hash(5).Size() >> 0) + 11 >> 0, 771), structType), $clone(new structType.ptr(1281, (19 + new crypto.Hash(6).Size() >> 0) + 11 >> 0, 771), structType), $clone(new structType.ptr(1537, (19 + new crypto.Hash(7).Size() >> 0) + 11 >> 0, 771), structType), $clone(new structType.ptr(513, (15 + new crypto.Hash(3).Size() >> 0) + 11 >> 0, 771), structType)]); alertText = $makeMap(alert.keyFor, [{ k: 0, v: "close notify" }, { k: 10, v: "unexpected message" }, { k: 20, v: "bad record MAC" }, { k: 21, v: "decryption failed" }, { k: 22, v: "record overflow" }, { k: 30, v: "decompression failure" }, { k: 40, v: "handshake failure" }, { k: 42, v: "bad certificate" }, { k: 43, v: "unsupported certificate" }, { k: 44, v: "revoked certificate" }, { k: 45, v: "expired certificate" }, { k: 46, v: "unknown certificate" }, { k: 47, v: "illegal parameter" }, { k: 48, v: "unknown certificate authority" }, { k: 49, v: "access denied" }, { k: 50, v: "error decoding message" }, { k: 51, v: "error decrypting message" }, { k: 60, v: "export restriction" }, { k: 70, v: "protocol version not supported" }, { k: 71, v: "insufficient security level" }, { k: 80, v: "internal error" }, { k: 86, v: "inappropriate fallback" }, { k: 90, v: "user canceled" }, { k: 100, v: "no renegotiation" }, { k: 109, v: "missing extension" }, { k: 110, v: "unsupported extension" }, { k: 111, v: "certificate unobtainable" }, { k: 112, v: "unrecognized name" }, { k: 113, v: "bad certificate status response" }, { k: 114, v: "bad certificate hash value" }, { k: 115, v: "unknown PSK identity" }, { k: 116, v: "certificate required" }, { k: 120, v: "no application protocol" }]); @@ -264875,46 +267276,61 @@ $packages["crypto/tls"] = (function() { $pkg.$init = $init; return $pkg; })(); +$packages["log/internal"] = (function() { + var $pkg = {}, $init; + $pkg.$finishSetup = function() { + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $pkg.DefaultOutput = $throwNilPointerError; + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); $packages["log"] = (function() { - var $pkg = {}, $init, fmt, nosync, io, os, runtime, atomic, time, Logger, sliceType, arrayType, ptrType, sliceType$1, ptrType$1, std, New, itoa, Printf, Fatalf; + var $pkg = {}, $init, fmt, nosync, io, internal, os, runtime, atomic, time, Logger, sliceType, sliceType$1, ptrType, ptrType$1, arrayType, sliceType$2, funcType, ptrType$2, std, bufferPool, New, itoa, formatHeader, getBuffer, putBuffer, init, Printf, Fatalf; fmt = $packages["fmt"]; nosync = $packages["github.com/gopherjs/gopherjs/nosync"]; io = $packages["io"]; + internal = $packages["log/internal"]; os = $packages["os"]; runtime = $packages["runtime"]; atomic = $packages["sync/atomic"]; time = $packages["time"]; - Logger = $newType(0, $kindStruct, "log.Logger", true, "log", true, function(mu_, prefix_, flag_, out_, buf_, isDiscard_) { + Logger = $newType(0, $kindStruct, "log.Logger", true, "log", true, function(outMu_, out_, prefix_, flag_, isDiscard_) { this.$val = this; if (arguments.length === 0) { - this.mu = new nosync.Mutex.ptr(false, false, false, false, 0); - this.prefix = ""; - this.flag = 0; + this.outMu = new nosync.Mutex.ptr(false, false, false, false, 0); this.out = $ifaceNil; - this.buf = sliceType.nil; + this.prefix = new atomic.Pointer[15 /* string */].ptr(ptrType$1.nil); + this.flag = new atomic.Int32.ptr(new atomic.noCopy.ptr(), 0); this.isDiscard = new atomic.Bool.ptr(new atomic.noCopy.ptr(), 0); return; } - this.mu = mu_; + this.outMu = outMu_; + this.out = out_; this.prefix = prefix_; this.flag = flag_; - this.out = out_; - this.buf = buf_; this.isDiscard = isDiscard_; }); $pkg.Logger = Logger; $pkg.$finishSetup = function() { - sliceType = $sliceType($Uint8); + sliceType = $sliceType($emptyInterface); + sliceType$1 = $sliceType($Uint8); + ptrType = $ptrType(sliceType$1); + ptrType$1 = $ptrType($String); arrayType = $arrayType($Uint8, 20); - ptrType = $ptrType(sliceType); - sliceType$1 = $sliceType($emptyInterface); - ptrType$1 = $ptrType(Logger); + sliceType$2 = $sliceType($Uintptr); + funcType = $funcType([sliceType$1], [sliceType$1], false); + ptrType$2 = $ptrType(Logger); New = function New$1(out, prefix, flag) { var flag, l, out, prefix; - l = new Logger.ptr(new nosync.Mutex.ptr(false, false, false, false, 0), prefix, flag, out, sliceType.nil, new atomic.Bool.ptr(new atomic.noCopy.ptr(), 0)); - if ($interfaceIsEqual(out, io.Discard)) { - l.isDiscard.Store(true); - } + l = new Logger.ptr(new nosync.Mutex.ptr(false, false, false, false, 0), $ifaceNil, new atomic.Pointer[15 /* string */].ptr(ptrType$1.nil), new atomic.Int32.ptr(new atomic.noCopy.ptr(), 0), new atomic.Bool.ptr(new atomic.noCopy.ptr(), 0)); + l.SetOutput(out); + l.SetPrefix(prefix); + l.SetFlags(flag); return l; }; $pkg.New = New; @@ -264922,8 +267338,8 @@ $packages["log"] = (function() { var l, w, $deferred; /* */ var $err = null; try { $deferred = []; $curGoroutine.deferStack.push($deferred); l = this; - l.mu.Lock(); - $deferred.push([$methodVal(l.mu, "Unlock"), []]); + l.outMu.Lock(); + $deferred.push([$methodVal(l.outMu, "Unlock"), []]); l.out = w; l.isDiscard.Store($interfaceIsEqual(w, io.Discard)); /* */ } catch(err) { $err = err; } finally { $callDeferred($deferred, $err); } @@ -264941,24 +267357,23 @@ $packages["log"] = (function() { i = q; } ((bp < 0 || bp >= b.length) ? ($throwRuntimeError("index out of range"), undefined) : b[bp] = (((48 + i >> 0) << 24 >>> 24))); - buf.$set($appendSlice(buf.$get(), $subslice(new sliceType(b), bp))); + buf.$set($appendSlice(buf.$get(), $subslice(new sliceType$1(b), bp))); }; - $ptrType(Logger).prototype.formatHeader = function formatHeader(buf, t, file, line) { - var {_q, _r, _r$1, _tuple, _tuple$1, buf, day, file, hour, i, l, line, min, month, sec, short$1, t, year, $s, $r, $c} = $restore(this, {buf, t, file, line}); + formatHeader = function formatHeader$1(buf, t, prefix, flag, file, line) { + var {_q, _r, _r$1, _tuple, _tuple$1, buf, day, file, flag, hour, i, line, min, month, prefix, sec, short$1, t, year, $s, $r, $c} = $restore(this, {buf, t, prefix, flag, file, line}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - l = this; - if ((l.flag & 64) === 0) { - buf.$set($appendSlice(buf.$get(), l.prefix)); + if ((flag & 64) === 0) { + buf.$set($appendSlice(buf.$get(), prefix)); } - /* */ if (!(((l.flag & 7) === 0))) { $s = 1; continue; } + /* */ if (!(((flag & 7) === 0))) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (!(((l.flag & 7) === 0))) { */ case 1: - if (!(((l.flag & 32) === 0))) { + /* if (!(((flag & 7) === 0))) { */ case 1: + if (!(((flag & 32) === 0))) { time.Time.copy(t, $clone(t, time.Time).UTC()); } - /* */ if (!(((l.flag & 1) === 0))) { $s = 3; continue; } + /* */ if (!(((flag & 1) === 0))) { $s = 3; continue; } /* */ $s = 4; continue; - /* if (!(((l.flag & 1) === 0))) { */ case 3: + /* if (!(((flag & 1) === 0))) { */ case 3: _r = $clone(t, time.Time).Date(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; year = _tuple[0]; @@ -264971,9 +267386,9 @@ $packages["log"] = (function() { itoa(buf, day, 2); buf.$set($append(buf.$get(), 32)); /* } */ case 4: - /* */ if (!(((l.flag & 6) === 0))) { $s = 6; continue; } + /* */ if (!(((flag & 6) === 0))) { $s = 6; continue; } /* */ $s = 7; continue; - /* if (!(((l.flag & 6) === 0))) { */ case 6: + /* if (!(((flag & 6) === 0))) { */ case 6: _r$1 = $clone(t, time.Time).Clock(); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple$1 = _r$1; hour = _tuple$1[0]; @@ -264984,15 +267399,15 @@ $packages["log"] = (function() { itoa(buf, min, 2); buf.$set($append(buf.$get(), 58)); itoa(buf, sec, 2); - if (!(((l.flag & 4) === 0))) { + if (!(((flag & 4) === 0))) { buf.$set($append(buf.$get(), 46)); itoa(buf, (_q = $clone(t, time.Time).Nanosecond() / 1000, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), 6); } buf.$set($append(buf.$get(), 32)); /* } */ case 7: /* } */ case 2: - if (!(((l.flag & 24) === 0))) { - if (!(((l.flag & 16) === 0))) { + if (!(((flag & 24) === 0))) { + if (!(((flag & 16) === 0))) { short$1 = file; i = file.length - 1 >> 0; while (true) { @@ -265010,88 +267425,159 @@ $packages["log"] = (function() { itoa(buf, line, -1); buf.$set($appendSlice(buf.$get(), ": ")); } - if (!(((l.flag & 64) === 0))) { - buf.$set($appendSlice(buf.$get(), l.prefix)); + if (!(((flag & 64) === 0))) { + buf.$set($appendSlice(buf.$get(), prefix)); } $s = -1; return; - /* */ } return; } var $f = {$blk: formatHeader, $c: true, $r, _q, _r, _r$1, _tuple, _tuple$1, buf, day, file, hour, i, l, line, min, month, sec, short$1, t, year, $s};return $f; + /* */ } return; } var $f = {$blk: formatHeader$1, $c: true, $r, _q, _r, _r$1, _tuple, _tuple$1, buf, day, file, flag, hour, i, line, min, month, prefix, sec, short$1, t, year, $s};return $f; + }; + getBuffer = function getBuffer$1() { + var {_r, p, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = bufferPool.Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + p = $assertType(_r, ptrType); + p.$set($subslice((p.$get()), 0, 0)); + $s = -1; return p; + /* */ } return; } var $f = {$blk: getBuffer$1, $c: true, $r, _r, p, $s};return $f; + }; + putBuffer = function putBuffer$1(p) { + var p; + if (p.$get().$capacity > 65536) { + p.$set(sliceType$1.nil); + } + bufferPool.Put(p); }; $ptrType(Logger).prototype.Output = function Output$1(calldepth, s) { - var {_r, _r$1, _tuple, _tuple$1, calldepth, err, file, l, line, now, ok, s, $s, $deferred, $r, $c} = $restore(this, {calldepth, s}); + var {$24r, _r, calldepth, l, s, $s, $r, $c} = $restore(this, {calldepth, s}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = [s]; + l = this; + calldepth = calldepth + (1) >> 0; + _r = l.output(0, calldepth, (function(s) { return function Logger·Output·func1(b) { + var b; + return $appendSlice(b, s[0]); + }; })(s)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Output$1, $c: true, $r, $24r, _r, calldepth, l, s, $s};return $f; + }; + $ptrType(Logger).prototype.output = function output(pc, calldepth, appendOutput) { + var {_r, _r$1, _r$2, _r$3, _tuple, _tuple$1, _tuple$2, appendOutput, buf, calldepth, err, f, file, flag, fs, l, line, now, ok, pc, prefix, x, x$1, $s, $deferred, $r, $c} = $restore(this, {pc, calldepth, appendOutput}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); l = this; + if (l.isDiscard.Load()) { + $s = -1; return $ifaceNil; + } _r = time.Now(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } now = $clone(_r, time.Time); + prefix = l.Prefix(); + flag = l.Flags(); file = ""; line = 0; - l.mu.Lock(); - $deferred.push([$methodVal(l.mu, "Unlock"), []]); - if (!(((l.flag & 24) === 0))) { - l.mu.Unlock(); - ok = false; - _tuple = runtime.Caller(calldepth); - file = _tuple[1]; - line = _tuple[2]; - ok = _tuple[3]; - if (!ok) { - file = "???"; - line = 0; - } - l.mu.Lock(); - } - l.buf = $subslice(l.buf, 0, 0); - $r = l.formatHeader((l.$ptr_buf || (l.$ptr_buf = new ptrType(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, l))), $clone(now, time.Time), file, line); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - l.buf = $appendSlice(l.buf, s); - if ((s.length === 0) || !((s.charCodeAt((s.length - 1 >> 0)) === 10))) { - l.buf = $append(l.buf, 10); - } - _r$1 = l.out.Write(l.buf); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$1 = _r$1; - err = _tuple$1[1]; + if (!(((flag & 24) === 0))) { + if (pc === 0) { + ok = false; + _tuple = runtime.Caller(calldepth); + file = _tuple[1]; + line = _tuple[2]; + ok = _tuple[3]; + if (!ok) { + file = "???"; + line = 0; + } + } else { + fs = runtime.CallersFrames(new sliceType$2([pc])); + _tuple$1 = fs.Next(); + f = $clone(_tuple$1[0], runtime.Frame); + file = f.File; + if (file === "") { + file = "???"; + } + line = f.Line; + } + } + _r$1 = getBuffer(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + buf = _r$1; + $deferred.push([putBuffer, [buf]]); + $r = formatHeader(buf, $clone(now, time.Time), prefix, flag, file, line); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = appendOutput(buf.$get()); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + buf.$set(_r$2); + if ((buf.$get().$length === 0) || !(((x = buf.$get(), x$1 = buf.$get().$length - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])) === 10))) { + buf.$set($append(buf.$get(), 10)); + } + l.outMu.Lock(); + $deferred.push([$methodVal(l.outMu, "Unlock"), []]); + _r$3 = l.out.Write(buf.$get()); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$2 = _r$3; + err = _tuple$2[1]; $s = -1; return err; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Output$1, $c: true, $r, _r, _r$1, _tuple, _tuple$1, calldepth, err, file, l, line, now, ok, s, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: output, $c: true, $r, _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, _tuple$2, appendOutput, buf, calldepth, err, f, file, flag, fs, l, line, now, ok, pc, prefix, x, x$1, $s, $deferred};return $f; } } }; - $ptrType(Logger).prototype.Printf = function Printf$1(format, v) { - var {_arg, _r, _r$1, format, l, v, $s, $r, $c} = $restore(this, {format, v}); + init = function init$1() { + internal.DefaultOutput = (function init·func1(pc, data) { + var {$24r, _r, data, pc, $s, $r, $c} = $restore(this, {pc, data}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + data = [data]; + _r = std.output(pc, 0, (function(data) { return function init·func1·func1(buf) { + var buf; + return $appendSlice(buf, data[0]); + }; })(data)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: init·func1, $c: true, $r, $24r, _r, data, pc, $s};return $f; + }); + }; + $ptrType(Logger).prototype.Print = function Print$1(v) { + var {_r, l, v, $s, $r, $c} = $restore(this, {v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + v = [v]; l = this; - if (l.isDiscard.Load()) { - $s = -1; return; - } - _r = fmt.Sprintf(format, v); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _arg = _r; - _r$1 = l.Output(2, _arg); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; + _r = l.output(0, 2, (function(v) { return function Logger·Print·func1(b) { + var {$24r, _r, b, $s, $r, $c} = $restore(this, {b}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = fmt.Append(b, v[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Logger·Print·func1, $c: true, $r, $24r, _r, b, $s};return $f; + }; })(v)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; $s = -1; return; - /* */ } return; } var $f = {$blk: Printf$1, $c: true, $r, _arg, _r, _r$1, format, l, v, $s};return $f; + /* */ } return; } var $f = {$blk: Print$1, $c: true, $r, _r, l, v, $s};return $f; }; - $ptrType(Logger).prototype.Print = function Print$1(v) { - var {_arg, _r, _r$1, l, v, $s, $r, $c} = $restore(this, {v}); + $ptrType(Logger).prototype.Printf = function Printf$1(format, v) { + var {_r, format, l, v, $s, $r, $c} = $restore(this, {format, v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + format = [format]; + v = [v]; l = this; - if (l.isDiscard.Load()) { - $s = -1; return; - } - _r = fmt.Sprint(v); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _arg = _r; - _r$1 = l.Output(2, _arg); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; + _r = l.output(0, 2, (function(format, v) { return function Logger·Printf·func1(b) { + var {$24r, _r, b, $s, $r, $c} = $restore(this, {b}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = fmt.Appendf(b, format[0], v[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Logger·Printf·func1, $c: true, $r, $24r, _r, b, $s};return $f; + }; })(format, v)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; $s = -1; return; - /* */ } return; } var $f = {$blk: Print$1, $c: true, $r, _arg, _r, _r$1, l, v, $s};return $f; + /* */ } return; } var $f = {$blk: Printf$1, $c: true, $r, _r, format, l, v, $s};return $f; }; $ptrType(Logger).prototype.Println = function Println$1(v) { - var {_arg, _r, _r$1, l, v, $s, $r, $c} = $restore(this, {v}); + var {_r, l, v, $s, $r, $c} = $restore(this, {v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + v = [v]; l = this; - if (l.isDiscard.Load()) { - $s = -1; return; - } - _r = fmt.Sprintln(v); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _arg = _r; - _r$1 = l.Output(2, _arg); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; + _r = l.output(0, 2, (function(v) { return function Logger·Println·func1(b) { + var {$24r, _r, b, $s, $r, $c} = $restore(this, {b}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = fmt.Appendln(b, v[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Logger·Println·func1, $c: true, $r, $24r, _r, b, $s};return $f; + }; })(v)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; $s = -1; return; - /* */ } return; } var $f = {$blk: Println$1, $c: true, $r, _arg, _r, _r$1, l, v, $s};return $f; + /* */ } return; } var $f = {$blk: Println$1, $c: true, $r, _r, l, v, $s};return $f; }; $ptrType(Logger).prototype.Fatal = function Fatal$1(v) { var {_arg, _r, _r$1, l, v, $s, $r, $c} = $restore(this, {v}); @@ -265166,62 +267652,54 @@ $packages["log"] = (function() { /* */ } return; } var $f = {$blk: Panicln$1, $c: true, $r, _r, _r$1, l, s, v, $s};return $f; }; $ptrType(Logger).prototype.Flags = function Flags$1() { - var l, $deferred; - /* */ var $err = null; try { $deferred = []; $curGoroutine.deferStack.push($deferred); + var l; l = this; - l.mu.Lock(); - $deferred.push([$methodVal(l.mu, "Unlock"), []]); - return l.flag; - /* */ } catch(err) { $err = err; return 0; } finally { $callDeferred($deferred, $err); } + return ((l.flag.Load() >> 0)); }; $ptrType(Logger).prototype.SetFlags = function SetFlags$1(flag) { - var flag, l, $deferred; - /* */ var $err = null; try { $deferred = []; $curGoroutine.deferStack.push($deferred); + var flag, l; l = this; - l.mu.Lock(); - $deferred.push([$methodVal(l.mu, "Unlock"), []]); - l.flag = flag; - /* */ } catch(err) { $err = err; } finally { $callDeferred($deferred, $err); } + l.flag.Store(((flag >> 0))); }; $ptrType(Logger).prototype.Prefix = function Prefix$1() { - var l, $deferred; - /* */ var $err = null; try { $deferred = []; $curGoroutine.deferStack.push($deferred); + var l, p; l = this; - l.mu.Lock(); - $deferred.push([$methodVal(l.mu, "Unlock"), []]); - return l.prefix; - /* */ } catch(err) { $err = err; return ""; } finally { $callDeferred($deferred, $err); } + p = l.prefix.Load(); + if (!(p === ptrType$1.nil)) { + return p.$get(); + } + return ""; }; $ptrType(Logger).prototype.SetPrefix = function SetPrefix$1(prefix) { - var l, prefix, $deferred; - /* */ var $err = null; try { $deferred = []; $curGoroutine.deferStack.push($deferred); + var l, prefix, prefix$24ptr; l = this; - l.mu.Lock(); - $deferred.push([$methodVal(l.mu, "Unlock"), []]); - l.prefix = prefix; - /* */ } catch(err) { $err = err; } finally { $callDeferred($deferred, $err); } + l.prefix.Store((prefix$24ptr || (prefix$24ptr = new ptrType$1(function() { return prefix; }, function($v) { prefix = $v; })))); }; $ptrType(Logger).prototype.Writer = function Writer$1() { var l, $deferred; /* */ var $err = null; try { $deferred = []; $curGoroutine.deferStack.push($deferred); l = this; - l.mu.Lock(); - $deferred.push([$methodVal(l.mu, "Unlock"), []]); + l.outMu.Lock(); + $deferred.push([$methodVal(l.outMu, "Unlock"), []]); return l.out; /* */ } catch(err) { $err = err; return $ifaceNil; } finally { $callDeferred($deferred, $err); } }; Printf = function Printf$2(format, v) { - var {_arg, _r, _r$1, format, v, $s, $r, $c} = $restore(this, {format, v}); + var {_r, format, v, $s, $r, $c} = $restore(this, {format, v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (std.isDiscard.Load()) { - $s = -1; return; - } - _r = fmt.Sprintf(format, v); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _arg = _r; - _r$1 = std.Output(2, _arg); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; + format = [format]; + v = [v]; + _r = std.output(0, 2, (function(format, v) { return function Printf·func1(b) { + var {$24r, _r, b, $s, $r, $c} = $restore(this, {b}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = fmt.Appendf(b, format[0], v[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Printf·func1, $c: true, $r, $24r, _r, b, $s};return $f; + }; })(format, v)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; $s = -1; return; - /* */ } return; } var $f = {$blk: Printf$2, $c: true, $r, _arg, _r, _r$1, format, v, $s};return $f; + /* */ } return; } var $f = {$blk: Printf$2, $c: true, $r, _r, format, v, $s};return $f; }; $pkg.Printf = Printf; Fatalf = function Fatalf$2(format, v) { @@ -265236,8 +267714,8 @@ $packages["log"] = (function() { /* */ } return; } var $f = {$blk: Fatalf$2, $c: true, $r, _arg, _r, _r$1, format, v, $s};return $f; }; $pkg.Fatalf = Fatalf; - ptrType$1.methods = [{prop: "SetOutput", name: "SetOutput", pkg: "", typ: $funcType([io.Writer], [], false)}, {prop: "formatHeader", name: "formatHeader", pkg: "log", typ: $funcType([ptrType, time.Time, $String, $Int], [], false)}, {prop: "Output", name: "Output", pkg: "", typ: $funcType([$Int, $String], [$error], false)}, {prop: "Printf", name: "Printf", pkg: "", typ: $funcType([$String, sliceType$1], [], true)}, {prop: "Print", name: "Print", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Println", name: "Println", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Fatal", name: "Fatal", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Fatalf", name: "Fatalf", pkg: "", typ: $funcType([$String, sliceType$1], [], true)}, {prop: "Fatalln", name: "Fatalln", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Panic", name: "Panic", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Panicf", name: "Panicf", pkg: "", typ: $funcType([$String, sliceType$1], [], true)}, {prop: "Panicln", name: "Panicln", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Flags", name: "Flags", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "SetFlags", name: "SetFlags", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Prefix", name: "Prefix", pkg: "", typ: $funcType([], [$String], false)}, {prop: "SetPrefix", name: "SetPrefix", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Writer", name: "Writer", pkg: "", typ: $funcType([], [io.Writer], false)}]; - Logger.init("log", [{prop: "mu", name: "mu", embedded: false, exported: false, typ: nosync.Mutex, tag: ""}, {prop: "prefix", name: "prefix", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "flag", name: "flag", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "out", name: "out", embedded: false, exported: false, typ: io.Writer, tag: ""}, {prop: "buf", name: "buf", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "isDiscard", name: "isDiscard", embedded: false, exported: false, typ: atomic.Bool, tag: ""}]); + ptrType$2.methods = [{prop: "SetOutput", name: "SetOutput", pkg: "", typ: $funcType([io.Writer], [], false)}, {prop: "Output", name: "Output", pkg: "", typ: $funcType([$Int, $String], [$error], false)}, {prop: "output", name: "output", pkg: "log", typ: $funcType([$Uintptr, $Int, funcType], [$error], false)}, {prop: "Print", name: "Print", pkg: "", typ: $funcType([sliceType], [], true)}, {prop: "Printf", name: "Printf", pkg: "", typ: $funcType([$String, sliceType], [], true)}, {prop: "Println", name: "Println", pkg: "", typ: $funcType([sliceType], [], true)}, {prop: "Fatal", name: "Fatal", pkg: "", typ: $funcType([sliceType], [], true)}, {prop: "Fatalf", name: "Fatalf", pkg: "", typ: $funcType([$String, sliceType], [], true)}, {prop: "Fatalln", name: "Fatalln", pkg: "", typ: $funcType([sliceType], [], true)}, {prop: "Panic", name: "Panic", pkg: "", typ: $funcType([sliceType], [], true)}, {prop: "Panicf", name: "Panicf", pkg: "", typ: $funcType([$String, sliceType], [], true)}, {prop: "Panicln", name: "Panicln", pkg: "", typ: $funcType([sliceType], [], true)}, {prop: "Flags", name: "Flags", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "SetFlags", name: "SetFlags", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Prefix", name: "Prefix", pkg: "", typ: $funcType([], [$String], false)}, {prop: "SetPrefix", name: "SetPrefix", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Writer", name: "Writer", pkg: "", typ: $funcType([], [io.Writer], false)}]; + Logger.init("log", [{prop: "outMu", name: "outMu", embedded: false, exported: false, typ: nosync.Mutex, tag: ""}, {prop: "out", name: "out", embedded: false, exported: false, typ: io.Writer, tag: ""}, {prop: "prefix", name: "prefix", embedded: false, exported: false, typ: atomic.Pointer[15 /* string */], tag: ""}, {prop: "flag", name: "flag", embedded: false, exported: false, typ: atomic.Int32, tag: ""}, {prop: "isDiscard", name: "isDiscard", embedded: false, exported: false, typ: atomic.Bool, tag: ""}]); }; $init = function() { $pkg.$init = function() {}; @@ -265245,11 +267723,16 @@ $packages["log"] = (function() { $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = nosync.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = io.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = os.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = runtime.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = atomic.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = time.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = internal.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = os.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = atomic.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = time.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } std = New(os.Stderr, "", 3); + bufferPool = new nosync.Pool.ptr(sliceType.nil, (function func1() { + return $newDataPointer(sliceType$1.nil, ptrType); + })); + init(); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; @@ -266075,10 +268558,10 @@ $packages["mime"] = (function() { $r = sync.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = unicode.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = utf8.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - mimeTypes = new sync.Map.ptr(new sync.Mutex.ptr(0, 0), new $packages["sync/atomic"].Pointer[20 /* sync.readOnly */].ptr(ptrType.nil), false, 0); - mimeTypesLower = new sync.Map.ptr(new sync.Mutex.ptr(0, 0), new $packages["sync/atomic"].Pointer[20 /* sync.readOnly */].ptr(ptrType.nil), false, 0); + mimeTypes = new sync.Map.ptr(new sync.Mutex.ptr(0, 0), new $packages["sync/atomic"].Pointer[30 /* sync.readOnly */].ptr(ptrType.nil), false, 0); + mimeTypesLower = new sync.Map.ptr(new sync.Mutex.ptr(0, 0), new $packages["sync/atomic"].Pointer[30 /* sync.readOnly */].ptr(ptrType.nil), false, 0); extensionsMu = new sync.Mutex.ptr(0, 0); - extensions = new sync.Map.ptr(new sync.Mutex.ptr(0, 0), new $packages["sync/atomic"].Pointer[20 /* sync.readOnly */].ptr(ptrType.nil), false, 0); + extensions = new sync.Map.ptr(new sync.Mutex.ptr(0, 0), new $packages["sync/atomic"].Pointer[30 /* sync.readOnly */].ptr(ptrType.nil), false, 0); osInitMime = $throwNilPointerError; mimeGlobs = new sliceType(["/usr/local/share/mime/globs2", "/usr/share/mime/globs2"]); typeFiles = new sliceType(["/etc/mime.types", "/etc/apache2/mime.types", "/etc/apache/mime.types", "/etc/httpd/conf/mime.types"]); @@ -266309,7 +268792,7 @@ $packages["mime/quotedprintable"] = (function() { return $pkg; })(); $packages["net/textproto"] = (function() { - var $pkg = {}, $init, bufio, bytes, errors, fmt, io, math, net, strconv, strings, sync, Error, ProtocolError, Reader, dotReader, MIMEHeader, sliceType, sliceType$1, ptrType$3, ptrType$4, ptrType$6, sliceType$2, ptrType$7, funcType, commonHeader, commonHeaderOnce, colon, nl, TrimString, isASCIISpace, isASCIILetter, NewReader, trim, parseCodeLine, readMIMEHeader, noValidation, mustHaveFieldNameColon, CanonicalMIMEHeaderKey, validHeaderFieldByte, validHeaderValueByte, canonicalMIMEHeaderKey, initCommonHeader; + var $pkg = {}, $init, bufio, bytes, errors, fmt, io, math, net, strconv, strings, sync, Error, ProtocolError, Reader, dotReader, MIMEHeader, sliceType, sliceType$1, ptrType$3, ptrType$4, ptrType$6, sliceType$2, ptrType$7, funcType, commonHeader, commonHeaderOnce, errMessageTooLarge, colon, nl, TrimString, isASCIISpace, isASCIILetter, NewReader, trim, parseCodeLine, readMIMEHeader, noValidation, mustHaveFieldNameColon, CanonicalMIMEHeaderKey, validHeaderFieldByte, validHeaderValueByte, canonicalMIMEHeaderKey, initCommonHeader; bufio = $packages["bufio"]; bytes = $packages["bytes"]; errors = $packages["errors"]; @@ -266414,7 +268897,7 @@ $packages["net/textproto"] = (function() { var {_r, _tuple, err, line, r, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: r = this; - _r = r.readLineSlice(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = r.readLineSlice(new $Int64(-1, 4294967295)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; line = _tuple[0]; err = _tuple[1]; @@ -266425,7 +268908,7 @@ $packages["net/textproto"] = (function() { var {_r, _tuple, err, line, r, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: r = this; - _r = r.readLineSlice(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = r.readLineSlice(new $Int64(-1, 4294967295)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; line = _tuple[0]; err = _tuple[1]; @@ -266435,8 +268918,8 @@ $packages["net/textproto"] = (function() { $s = -1; return [line, err]; /* */ } return; } var $f = {$blk: ReadLineBytes, $c: true, $r, _r, _tuple, err, line, r, $s};return $f; }; - $ptrType(Reader).prototype.readLineSlice = function readLineSlice() { - var {_r, _tuple, err, l, line, more, r, $s, $r, $c} = $restore(this, {}); + $ptrType(Reader).prototype.readLineSlice = function readLineSlice(lim) { + var {_r, _tuple, err, l, lim, line, more, r, x, x$1, x$2, $s, $r, $c} = $restore(this, {lim}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: r = this; $r = r.closeDot(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } @@ -266450,6 +268933,9 @@ $packages["net/textproto"] = (function() { if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [sliceType.nil, err]; } + if ((lim.$high > 0 || (lim.$high === 0 && lim.$low >= 0)) && (x = (x$1 = (new $Int64(0, line.$length)), x$2 = (new $Int64(0, l.$length)), new $Int64(x$1.$high + x$2.$high, x$1.$low + x$2.$low)), (x.$high > lim.$high || (x.$high === lim.$high && x.$low > lim.$low)))) { + $s = -1; return [sliceType.nil, errMessageTooLarge]; + } if (line === sliceType.nil && !more) { $s = -1; return [l, $ifaceNil]; } @@ -266460,13 +268946,13 @@ $packages["net/textproto"] = (function() { $s = 2; continue; case 3: $s = -1; return [line, $ifaceNil]; - /* */ } return; } var $f = {$blk: readLineSlice, $c: true, $r, _r, _tuple, err, l, line, more, r, $s};return $f; + /* */ } return; } var $f = {$blk: readLineSlice, $c: true, $r, _r, _tuple, err, l, lim, line, more, r, x, x$1, x$2, $s};return $f; }; $ptrType(Reader).prototype.ReadContinuedLine = function ReadContinuedLine() { var {_r, _tuple, err, line, r, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: r = this; - _r = r.readContinuedLineSlice(noValidation); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = r.readContinuedLineSlice(new $Int64(-1, 4294967295), noValidation); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; line = _tuple[0]; err = _tuple[1]; @@ -266491,7 +268977,7 @@ $packages["net/textproto"] = (function() { var {_r, _tuple, err, line, r, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: r = this; - _r = r.readContinuedLineSlice(noValidation); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = r.readContinuedLineSlice(new $Int64(-1, 4294967295), noValidation); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; line = _tuple[0]; err = _tuple[1]; @@ -266501,8 +268987,8 @@ $packages["net/textproto"] = (function() { $s = -1; return [line, err]; /* */ } return; } var $f = {$blk: ReadContinuedLineBytes, $c: true, $r, _r, _tuple, err, line, r, $s};return $f; }; - $ptrType(Reader).prototype.readContinuedLineSlice = function readContinuedLineSlice(validateFirstLine) { - var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, _tuple$2, err, err$1, err$2, line, line$1, peek, r, validateFirstLine, $s, $r, $c} = $restore(this, {validateFirstLine}); + $ptrType(Reader).prototype.readContinuedLineSlice = function readContinuedLineSlice(lim, validateFirstLine) { + var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, _tuple$2, err, err$1, err$2, lim, line, line$1, peek, r, validateFirstLine, x, x$1, x$2, $s, $r, $c} = $restore(this, {lim, validateFirstLine}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: r = this; /* */ if (validateFirstLine === $throwNilPointerError) { $s = 1; continue; } @@ -266512,7 +268998,7 @@ $packages["net/textproto"] = (function() { $24r = [sliceType.nil, _r]; $s = 4; case 4: return $24r; /* } */ case 2: - _r$1 = r.readLineSlice(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1 = r.readLineSlice(lim); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple = _r$1; line = _tuple[0]; err = _tuple[1]; @@ -266538,22 +269024,29 @@ $packages["net/textproto"] = (function() { } /* } */ case 8: r.buf = $appendSlice($subslice(r.buf, 0, 0), trim(line)); + if ((lim.$high < 0 || (lim.$high === 0 && lim.$low < 0))) { + lim = new $Int64(2147483647, 4294967295); + } + lim = (x = (new $Int64(0, r.buf.$length)), new $Int64(lim.$high - x.$high, lim.$low - x.$low)); /* while (true) { */ case 10: _r$4 = r.skipSpace(); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } /* if (!(_r$4 > 0)) { break; } */ if(!(_r$4 > 0)) { $s = 11; continue; } - _r$5 = r.readLineSlice(); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + r.buf = $append(r.buf, 32); + if ((x$1 = (new $Int64(0, r.buf.$length)), (x$1.$high > lim.$high || (x$1.$high === lim.$high && x$1.$low >= lim.$low)))) { + $s = -1; return [sliceType.nil, errMessageTooLarge]; + } + _r$5 = r.readLineSlice((x$2 = (new $Int64(0, r.buf.$length)), new $Int64(lim.$high - x$2.$high, lim.$low - x$2.$low))); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _tuple$2 = _r$5; line$1 = _tuple$2[0]; err$2 = _tuple$2[1]; if (!($interfaceIsEqual(err$2, $ifaceNil))) { /* break; */ $s = 11; continue; } - r.buf = $append(r.buf, 32); r.buf = $appendSlice(r.buf, trim(line$1)); $s = 10; continue; case 11: $s = -1; return [r.buf, $ifaceNil]; - /* */ } return; } var $f = {$blk: readContinuedLineSlice, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, _tuple$2, err, err$1, err$2, line, line$1, peek, r, validateFirstLine, $s};return $f; + /* */ } return; } var $f = {$blk: readContinuedLineSlice, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, _tuple$2, err, err$1, err$2, lim, line, line$1, peek, r, validateFirstLine, x, x$1, x$2, $s};return $f; }; $ptrType(Reader).prototype.skipSpace = function skipSpace() { var {_r, _tuple, c, err, n, r, $s, $r, $c} = $restore(this, {}); @@ -266871,7 +269364,7 @@ $packages["net/textproto"] = (function() { /* */ if ($interfaceIsEqual(err, $ifaceNil) && (((0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]) === 32) || ((0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]) === 9))) { $s = 3; continue; } /* */ $s = 4; continue; /* if ($interfaceIsEqual(err, $ifaceNil) && (((0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]) === 32) || ((0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]) === 9))) { */ case 3: - _r$2 = r.readLineSlice(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2 = r.readLineSlice(new $Int64(0, 80)); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _tuple$1 = _r$2; line = _tuple$1[0]; err$1 = _tuple$1[1]; @@ -266881,7 +269374,7 @@ $packages["net/textproto"] = (function() { $s = -1; return [m, new ProtocolError(("malformed MIME header initial line: " + ($bytesToString(line))))]; /* } */ case 4: /* while (true) { */ case 6: - _r$3 = r.readContinuedLineSlice(mustHaveFieldNameColon); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3 = r.readContinuedLineSlice(maxMemory, mustHaveFieldNameColon); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _tuple$2 = _r$3; kv = _tuple$2[0]; err$2 = _tuple$2[1]; @@ -266917,7 +269410,7 @@ $packages["net/textproto"] = (function() { } maxHeaders = (x$1 = new $Int64(0, 1), new $Int64(maxHeaders.$high - x$1.$high, maxHeaders.$low - x$1.$low)); if ((maxHeaders.$high < 0 || (maxHeaders.$high === 0 && maxHeaders.$low < 0))) { - $s = -1; return [false, errors.New("message too large")]; + $s = -1; return [false, errMessageTooLarge]; } value = ($bytesToString(bytes.TrimLeft(v, " \t"))); vv = (_entry = $mapIndex(m,$String.keyFor(key)), _entry !== undefined ? _entry.v : sliceType$2.nil); @@ -266927,7 +269420,7 @@ $packages["net/textproto"] = (function() { } maxMemory = (x$4 = (new $Int64(0, value.length)), new $Int64(maxMemory.$high - x$4.$high, maxMemory.$low - x$4.$low)); if ((maxMemory.$high < 0 || (maxMemory.$high === 0 && maxMemory.$low < 0))) { - $s = -1; return [m, errors.New("message too large")]; + $s = -1; return [m, errMessageTooLarge]; } if (vv === sliceType$2.nil && strs.$length > 0) { _tmp = $subslice(strs, 0, 1, 1); @@ -267178,7 +269671,7 @@ $packages["net/textproto"] = (function() { $ptrType(MIMEHeader).prototype.Del = function(...$args) { return new MIMEHeader(this.$get()).Del(...$args); }; ptrType$7.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; ProtocolError.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$6.methods = [{prop: "ReadLine", name: "ReadLine", pkg: "", typ: $funcType([], [$String, $error], false)}, {prop: "ReadLineBytes", name: "ReadLineBytes", pkg: "", typ: $funcType([], [sliceType, $error], false)}, {prop: "readLineSlice", name: "readLineSlice", pkg: "net/textproto", typ: $funcType([], [sliceType, $error], false)}, {prop: "ReadContinuedLine", name: "ReadContinuedLine", pkg: "", typ: $funcType([], [$String, $error], false)}, {prop: "ReadContinuedLineBytes", name: "ReadContinuedLineBytes", pkg: "", typ: $funcType([], [sliceType, $error], false)}, {prop: "readContinuedLineSlice", name: "readContinuedLineSlice", pkg: "net/textproto", typ: $funcType([funcType], [sliceType, $error], false)}, {prop: "skipSpace", name: "skipSpace", pkg: "net/textproto", typ: $funcType([], [$Int], false)}, {prop: "readCodeLine", name: "readCodeLine", pkg: "net/textproto", typ: $funcType([$Int], [$Int, $Bool, $String, $error], false)}, {prop: "ReadCodeLine", name: "ReadCodeLine", pkg: "", typ: $funcType([$Int], [$Int, $String, $error], false)}, {prop: "ReadResponse", name: "ReadResponse", pkg: "", typ: $funcType([$Int], [$Int, $String, $error], false)}, {prop: "DotReader", name: "DotReader", pkg: "", typ: $funcType([], [io.Reader], false)}, {prop: "closeDot", name: "closeDot", pkg: "net/textproto", typ: $funcType([], [], false)}, {prop: "ReadDotBytes", name: "ReadDotBytes", pkg: "", typ: $funcType([], [sliceType, $error], false)}, {prop: "ReadDotLines", name: "ReadDotLines", pkg: "", typ: $funcType([], [sliceType$2, $error], false)}, {prop: "ReadMIMEHeader", name: "ReadMIMEHeader", pkg: "", typ: $funcType([], [MIMEHeader, $error], false)}, {prop: "upcomingHeaderKeys", name: "upcomingHeaderKeys", pkg: "net/textproto", typ: $funcType([], [$Int], false)}]; + ptrType$6.methods = [{prop: "ReadLine", name: "ReadLine", pkg: "", typ: $funcType([], [$String, $error], false)}, {prop: "ReadLineBytes", name: "ReadLineBytes", pkg: "", typ: $funcType([], [sliceType, $error], false)}, {prop: "readLineSlice", name: "readLineSlice", pkg: "net/textproto", typ: $funcType([$Int64], [sliceType, $error], false)}, {prop: "ReadContinuedLine", name: "ReadContinuedLine", pkg: "", typ: $funcType([], [$String, $error], false)}, {prop: "ReadContinuedLineBytes", name: "ReadContinuedLineBytes", pkg: "", typ: $funcType([], [sliceType, $error], false)}, {prop: "readContinuedLineSlice", name: "readContinuedLineSlice", pkg: "net/textproto", typ: $funcType([$Int64, funcType], [sliceType, $error], false)}, {prop: "skipSpace", name: "skipSpace", pkg: "net/textproto", typ: $funcType([], [$Int], false)}, {prop: "readCodeLine", name: "readCodeLine", pkg: "net/textproto", typ: $funcType([$Int], [$Int, $Bool, $String, $error], false)}, {prop: "ReadCodeLine", name: "ReadCodeLine", pkg: "", typ: $funcType([$Int], [$Int, $String, $error], false)}, {prop: "ReadResponse", name: "ReadResponse", pkg: "", typ: $funcType([$Int], [$Int, $String, $error], false)}, {prop: "DotReader", name: "DotReader", pkg: "", typ: $funcType([], [io.Reader], false)}, {prop: "closeDot", name: "closeDot", pkg: "net/textproto", typ: $funcType([], [], false)}, {prop: "ReadDotBytes", name: "ReadDotBytes", pkg: "", typ: $funcType([], [sliceType, $error], false)}, {prop: "ReadDotLines", name: "ReadDotLines", pkg: "", typ: $funcType([], [sliceType$2, $error], false)}, {prop: "ReadMIMEHeader", name: "ReadMIMEHeader", pkg: "", typ: $funcType([], [MIMEHeader, $error], false)}, {prop: "upcomingHeaderKeys", name: "upcomingHeaderKeys", pkg: "net/textproto", typ: $funcType([], [$Int], false)}]; ptrType$4.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}]; MIMEHeader.methods = [{prop: "Add", name: "Add", pkg: "", typ: $funcType([$String, $String], [], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([$String, $String], [], false)}, {prop: "Get", name: "Get", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "Values", name: "Values", pkg: "", typ: $funcType([$String], [sliceType$2], false)}, {prop: "Del", name: "Del", pkg: "", typ: $funcType([$String], [], false)}]; Error.init("", [{prop: "Code", name: "Code", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Msg", name: "Msg", embedded: false, exported: true, typ: $String, tag: ""}]); @@ -267202,6 +269695,7 @@ $packages["net/textproto"] = (function() { $r = sync.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } commonHeader = false; commonHeaderOnce = new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0)); + errMessageTooLarge = errors.New("message too large"); colon = (new sliceType($stringToBytes(":"))); nl = (new sliceType($stringToBytes("\n"))); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; @@ -267630,14 +270124,19 @@ $packages["mime/multipart"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: _r = multipartMaxHeaders.Value(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } s = _r; - if (!(s === "")) { + /* */ if (!(s === "")) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!(s === "")) { */ case 2: _tuple = strconv.ParseInt(s, 10, 64); v = _tuple[0]; err = _tuple[1]; - if ($interfaceIsEqual(err, $ifaceNil) && (v.$high > 0 || (v.$high === 0 && v.$low >= 0))) { + /* */ if ($interfaceIsEqual(err, $ifaceNil) && (v.$high > 0 || (v.$high === 0 && v.$low >= 0))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ($interfaceIsEqual(err, $ifaceNil) && (v.$high > 0 || (v.$high === 0 && v.$low >= 0))) { */ case 4: + $r = multipartMaxHeaders.IncNonDefault(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return v; - } - } + /* } */ case 5: + /* } */ case 3: $s = -1; return new $Int64(0, 10000); /* */ } return; } var $f = {$blk: maxMIMEHeaders$1, $c: true, $r, _r, _tuple, err, s, v, $s};return $f; }; @@ -267779,7 +270278,7 @@ $packages["mime/multipart"] = (function() { /* */ } return; } var $f = {$blk: ReadForm, $c: true, $r, $24r, _r, maxMemory, r, $s};return $f; }; $ptrType(Reader).prototype.readForm = function readForm(maxMemory) { - var {$24r, $24r$1, $24r$10, $24r$11, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _, _entry, _entry$1, _entry$2, _i, _key, _key$1, _key$2, _keys, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _size, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, b, combineFiles, copyBuf, err, err$1, err$2, err$3, err$4, err$5, err$6, fh, file, fileOff, filename, form, maxFileMemoryBytes, maxHeaders, maxMemory, maxMemoryBytes, maxParts, n, n$1, name, numDiskFiles, p, r, remainingSize, s, v, v$1, x, x$1, x$10, x$11, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $deferred, $r, $c} = $restore(this, {maxMemory}); + var {$24r, $24r$1, $24r$10, $24r$11, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _, _entry, _entry$1, _entry$2, _i, _key, _key$1, _key$2, _keys, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _size, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, b, combineFiles, copyBuf, err, err$1, err$2, err$3, err$4, err$5, err$6, fh, file, fileOff, filename, form, maxFileMemoryBytes, maxHeaders, maxMemory, maxMemoryBytes, maxParts, n, n$1, name, numDiskFiles, p, r, remainingSize, s, v, v$1, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $deferred, $r, $c} = $restore(this, {maxMemory}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); combineFiles = [combineFiles]; err = [err]; @@ -267803,15 +270302,20 @@ $packages["mime/multipart"] = (function() { maxParts = 1000; _r$1 = multipartMaxParts.Value(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } s = _r$1; - if (!(s === "")) { + /* */ if (!(s === "")) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!(s === "")) { */ case 5: _tuple = strconv.Atoi(s); v = _tuple[0]; err$1 = _tuple[1]; - if ($interfaceIsEqual(err$1, $ifaceNil) && v >= 0) { + /* */ if ($interfaceIsEqual(err$1, $ifaceNil) && v >= 0) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if ($interfaceIsEqual(err$1, $ifaceNil) && v >= 0) { */ case 7: maxParts = v; - } - } - _r$2 = maxMIMEHeaders(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $r = multipartMaxParts.IncNonDefault(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 8: + /* } */ case 6: + _r$2 = maxMIMEHeaders(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } maxHeaders = _r$2; $deferred.push([(function(combineFiles, err, file, form, numDiskFiles) { return function Reader·readForm·func1() { var {_entry, _i, _i$1, _key, _keys, _r$3, _r$4, _r$5, _ref, _ref$1, _size, cerr, fh, fhs, $s, $r, $c} = $restore(this, {}); @@ -267866,6 +270370,9 @@ $packages["mime/multipart"] = (function() { /* */ } return; } var $f = {$blk: Reader·readForm·func1, $c: true, $r, _entry, _i, _i$1, _key, _keys, _r$3, _r$4, _r$5, _ref, _ref$1, _size, cerr, fh, fhs, $s};return $f; }; })(combineFiles, err, file, form, numDiskFiles), []]); maxFileMemoryBytes = maxMemory; + if ((maxFileMemoryBytes.$high === 2147483647 && maxFileMemoryBytes.$low === 4294967295)) { + maxFileMemoryBytes = (x = new $Int64(0, 1), new $Int64(maxFileMemoryBytes.$high - x.$high, maxFileMemoryBytes.$low - x.$low)); + } maxMemoryBytes = new $Int64(maxMemory.$high + 0, maxMemory.$low + 10485760); if ((maxMemoryBytes.$high < 0 || (maxMemoryBytes.$high === 0 && maxMemoryBytes.$low <= 0))) { if ((maxMemory.$high < 0 || (maxMemory.$high === 0 && maxMemory.$low < 0))) { @@ -267875,100 +270382,100 @@ $packages["mime/multipart"] = (function() { } } copyBuf = sliceType$1.nil; - /* while (true) { */ case 6: + /* while (true) { */ case 11: b = [b]; - _r$3 = r.nextPart(false, maxMemoryBytes, maxHeaders); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3 = r.nextPart(false, maxMemoryBytes, maxHeaders); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _tuple$1 = _r$3; p = _tuple$1[0]; err$2 = _tuple$1[1]; if ($interfaceIsEqual(err$2, io.EOF)) { - /* break; */ $s = 7; continue; + /* break; */ $s = 12; continue; } - /* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 9: + /* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 14: _tmp = ptrType$5.nil; _tmp$1 = err$2; _ = _tmp; err[0] = _tmp$1; $24r = [_, err[0]]; - $s = 11; case 11: return $24r; - /* } */ case 10: - /* */ if (maxParts <= 0) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (maxParts <= 0) { */ case 12: + $s = 16; case 16: return $24r; + /* } */ case 15: + /* */ if (maxParts <= 0) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (maxParts <= 0) { */ case 17: _tmp$2 = ptrType$5.nil; _tmp$3 = $pkg.ErrMessageTooLarge; _ = _tmp$2; err[0] = _tmp$3; $24r$1 = [_, err[0]]; - $s = 14; case 14: return $24r$1; - /* } */ case 13: + $s = 19; case 19: return $24r$1; + /* } */ case 18: maxParts = maxParts - (1) >> 0; - _r$4 = p.FormName(); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4 = p.FormName(); /* */ $s = 20; case 20: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } name = _r$4; if (name === "") { - /* continue; */ $s = 6; continue; + /* continue; */ $s = 11; continue; } - _r$5 = p.FileName(); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$5 = p.FileName(); /* */ $s = 21; case 21: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } filename = _r$5; - maxMemoryBytes = (x = (new $Int64(0, name.length)), new $Int64(maxMemoryBytes.$high - x.$high, maxMemoryBytes.$low - x.$low)); - maxMemoryBytes = (x$1 = new $Int64(0, 200), new $Int64(maxMemoryBytes.$high - x$1.$high, maxMemoryBytes.$low - x$1.$low)); - /* */ if ((maxMemoryBytes.$high < 0 || (maxMemoryBytes.$high === 0 && maxMemoryBytes.$low < 0))) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if ((maxMemoryBytes.$high < 0 || (maxMemoryBytes.$high === 0 && maxMemoryBytes.$low < 0))) { */ case 17: + maxMemoryBytes = (x$1 = (new $Int64(0, name.length)), new $Int64(maxMemoryBytes.$high - x$1.$high, maxMemoryBytes.$low - x$1.$low)); + maxMemoryBytes = (x$2 = new $Int64(0, 200), new $Int64(maxMemoryBytes.$high - x$2.$high, maxMemoryBytes.$low - x$2.$low)); + /* */ if ((maxMemoryBytes.$high < 0 || (maxMemoryBytes.$high === 0 && maxMemoryBytes.$low < 0))) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if ((maxMemoryBytes.$high < 0 || (maxMemoryBytes.$high === 0 && maxMemoryBytes.$low < 0))) { */ case 22: _tmp$4 = ptrType$5.nil; _tmp$5 = $pkg.ErrMessageTooLarge; _ = _tmp$4; err[0] = _tmp$5; $24r$2 = [_, err[0]]; - $s = 19; case 19: return $24r$2; - /* } */ case 18: + $s = 24; case 24: return $24r$2; + /* } */ case 23: b[0] = new bytes.Buffer.ptr(sliceType$1.nil, 0, 0); - /* */ if (filename === "") { $s = 20; continue; } - /* */ $s = 21; continue; - /* if (filename === "") { */ case 20: - _r$6 = io.CopyN(b[0], p, new $Int64(maxMemoryBytes.$high + 0, maxMemoryBytes.$low + 1)); /* */ $s = 22; case 22: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + /* */ if (filename === "") { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (filename === "") { */ case 25: + _r$6 = io.CopyN(b[0], p, new $Int64(maxMemoryBytes.$high + 0, maxMemoryBytes.$low + 1)); /* */ $s = 27; case 27: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _tuple$2 = _r$6; n = _tuple$2[0]; err$3 = _tuple$2[1]; - /* */ if (!($interfaceIsEqual(err$3, $ifaceNil)) && !($interfaceIsEqual(err$3, io.EOF))) { $s = 23; continue; } - /* */ $s = 24; continue; - /* if (!($interfaceIsEqual(err$3, $ifaceNil)) && !($interfaceIsEqual(err$3, io.EOF))) { */ case 23: + /* */ if (!($interfaceIsEqual(err$3, $ifaceNil)) && !($interfaceIsEqual(err$3, io.EOF))) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (!($interfaceIsEqual(err$3, $ifaceNil)) && !($interfaceIsEqual(err$3, io.EOF))) { */ case 28: _tmp$6 = ptrType$5.nil; _tmp$7 = err$3; _ = _tmp$6; err[0] = _tmp$7; $24r$3 = [_, err[0]]; - $s = 25; case 25: return $24r$3; - /* } */ case 24: - maxMemoryBytes = (x$2 = n, new $Int64(maxMemoryBytes.$high - x$2.$high, maxMemoryBytes.$low - x$2.$low)); - /* */ if ((maxMemoryBytes.$high < 0 || (maxMemoryBytes.$high === 0 && maxMemoryBytes.$low < 0))) { $s = 26; continue; } - /* */ $s = 27; continue; - /* if ((maxMemoryBytes.$high < 0 || (maxMemoryBytes.$high === 0 && maxMemoryBytes.$low < 0))) { */ case 26: + $s = 30; case 30: return $24r$3; + /* } */ case 29: + maxMemoryBytes = (x$3 = n, new $Int64(maxMemoryBytes.$high - x$3.$high, maxMemoryBytes.$low - x$3.$low)); + /* */ if ((maxMemoryBytes.$high < 0 || (maxMemoryBytes.$high === 0 && maxMemoryBytes.$low < 0))) { $s = 31; continue; } + /* */ $s = 32; continue; + /* if ((maxMemoryBytes.$high < 0 || (maxMemoryBytes.$high === 0 && maxMemoryBytes.$low < 0))) { */ case 31: _tmp$8 = ptrType$5.nil; _tmp$9 = $pkg.ErrMessageTooLarge; _ = _tmp$8; err[0] = _tmp$9; $24r$4 = [_, err[0]]; - $s = 28; case 28: return $24r$4; - /* } */ case 27: + $s = 33; case 33: return $24r$4; + /* } */ case 32: _key = name; (form[0].Value || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: $append((_entry = $mapIndex(form[0].Value,$String.keyFor(name)), _entry !== undefined ? _entry.v : sliceType.nil), b[0].String()) }); - /* continue; */ $s = 6; continue; - /* } */ case 21: - maxMemoryBytes = (x$3 = mimeHeaderSize(p.Header), new $Int64(maxMemoryBytes.$high - x$3.$high, maxMemoryBytes.$low - x$3.$low)); - maxMemoryBytes = (x$4 = new $Int64(0, 200), new $Int64(maxMemoryBytes.$high - x$4.$high, maxMemoryBytes.$low - x$4.$low)); - maxMemoryBytes = (x$5 = new $Int64(0, 100), new $Int64(maxMemoryBytes.$high - x$5.$high, maxMemoryBytes.$low - x$5.$low)); - /* */ if ((maxMemoryBytes.$high < 0 || (maxMemoryBytes.$high === 0 && maxMemoryBytes.$low < 0))) { $s = 29; continue; } - /* */ $s = 30; continue; - /* if ((maxMemoryBytes.$high < 0 || (maxMemoryBytes.$high === 0 && maxMemoryBytes.$low < 0))) { */ case 29: + /* continue; */ $s = 11; continue; + /* } */ case 26: + maxMemoryBytes = (x$4 = mimeHeaderSize(p.Header), new $Int64(maxMemoryBytes.$high - x$4.$high, maxMemoryBytes.$low - x$4.$low)); + maxMemoryBytes = (x$5 = new $Int64(0, 200), new $Int64(maxMemoryBytes.$high - x$5.$high, maxMemoryBytes.$low - x$5.$low)); + maxMemoryBytes = (x$6 = new $Int64(0, 100), new $Int64(maxMemoryBytes.$high - x$6.$high, maxMemoryBytes.$low - x$6.$low)); + /* */ if ((maxMemoryBytes.$high < 0 || (maxMemoryBytes.$high === 0 && maxMemoryBytes.$low < 0))) { $s = 34; continue; } + /* */ $s = 35; continue; + /* if ((maxMemoryBytes.$high < 0 || (maxMemoryBytes.$high === 0 && maxMemoryBytes.$low < 0))) { */ case 34: _tmp$10 = ptrType$5.nil; _tmp$11 = $pkg.ErrMessageTooLarge; _ = _tmp$10; err[0] = _tmp$11; $24r$5 = [_, err[0]]; - $s = 31; case 31: return $24r$5; - /* } */ case 30: + $s = 36; case 36: return $24r$5; + /* } */ case 35: _ref = p.Header; _i = 0; _keys = _ref ? _ref.keys() : undefined; @@ -267982,114 +270489,114 @@ $packages["mime/multipart"] = (function() { continue; } v$1 = _entry$1.v; - maxHeaders = (x$6 = (new $Int64(0, v$1.$length)), new $Int64(maxHeaders.$high - x$6.$high, maxHeaders.$low - x$6.$low)); + maxHeaders = (x$7 = (new $Int64(0, v$1.$length)), new $Int64(maxHeaders.$high - x$7.$high, maxHeaders.$low - x$7.$low)); _i++; } fh = new FileHeader.ptr(filename, p.Header, new $Int64(0, 0), sliceType$1.nil, "", new $Int64(0, 0), false); - _r$7 = io.CopyN(b[0], p, new $Int64(maxFileMemoryBytes.$high + 0, maxFileMemoryBytes.$low + 1)); /* */ $s = 32; case 32: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$7 = io.CopyN(b[0], p, new $Int64(maxFileMemoryBytes.$high + 0, maxFileMemoryBytes.$low + 1)); /* */ $s = 37; case 37: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _tuple$3 = _r$7; n$1 = _tuple$3[0]; err$2 = _tuple$3[1]; - /* */ if (!($interfaceIsEqual(err$2, $ifaceNil)) && !($interfaceIsEqual(err$2, io.EOF))) { $s = 33; continue; } - /* */ $s = 34; continue; - /* if (!($interfaceIsEqual(err$2, $ifaceNil)) && !($interfaceIsEqual(err$2, io.EOF))) { */ case 33: + /* */ if (!($interfaceIsEqual(err$2, $ifaceNil)) && !($interfaceIsEqual(err$2, io.EOF))) { $s = 38; continue; } + /* */ $s = 39; continue; + /* if (!($interfaceIsEqual(err$2, $ifaceNil)) && !($interfaceIsEqual(err$2, io.EOF))) { */ case 38: _tmp$12 = ptrType$5.nil; _tmp$13 = err$2; _ = _tmp$12; err[0] = _tmp$13; $24r$6 = [_, err[0]]; - $s = 35; case 35: return $24r$6; - /* } */ case 34: - /* */ if ((n$1.$high > maxFileMemoryBytes.$high || (n$1.$high === maxFileMemoryBytes.$high && n$1.$low > maxFileMemoryBytes.$low))) { $s = 36; continue; } - /* */ $s = 37; continue; - /* if ((n$1.$high > maxFileMemoryBytes.$high || (n$1.$high === maxFileMemoryBytes.$high && n$1.$low > maxFileMemoryBytes.$low))) { */ case 36: - /* */ if (file[0] === ptrType$6.nil) { $s = 39; continue; } - /* */ $s = 40; continue; - /* if (file[0] === ptrType$6.nil) { */ case 39: - _r$8 = os.CreateTemp(r.tempDir, "multipart-"); /* */ $s = 41; case 41: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + $s = 40; case 40: return $24r$6; + /* } */ case 39: + /* */ if ((n$1.$high > maxFileMemoryBytes.$high || (n$1.$high === maxFileMemoryBytes.$high && n$1.$low > maxFileMemoryBytes.$low))) { $s = 41; continue; } + /* */ $s = 42; continue; + /* if ((n$1.$high > maxFileMemoryBytes.$high || (n$1.$high === maxFileMemoryBytes.$high && n$1.$low > maxFileMemoryBytes.$low))) { */ case 41: + /* */ if (file[0] === ptrType$6.nil) { $s = 44; continue; } + /* */ $s = 45; continue; + /* if (file[0] === ptrType$6.nil) { */ case 44: + _r$8 = os.CreateTemp(r.tempDir, "multipart-"); /* */ $s = 46; case 46: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } _tuple$4 = _r$8; file[0] = _tuple$4[0]; err$2 = _tuple$4[1]; - /* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 42; continue; } - /* */ $s = 43; continue; - /* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 42: + /* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 47; continue; } + /* */ $s = 48; continue; + /* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 47: _tmp$14 = ptrType$5.nil; _tmp$15 = err$2; _ = _tmp$14; err[0] = _tmp$15; $24r$7 = [_, err[0]]; - $s = 44; case 44: return $24r$7; - /* } */ case 43: - /* } */ case 40: + $s = 49; case 49: return $24r$7; + /* } */ case 48: + /* } */ case 45: numDiskFiles[0] = numDiskFiles[0] + (1) >> 0; - _r$9 = file[0].Write(b[0].Bytes()); /* */ $s = 45; case 45: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$9 = file[0].Write(b[0].Bytes()); /* */ $s = 50; case 50: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } _tuple$5 = _r$9; err$4 = _tuple$5[1]; - /* */ if (!($interfaceIsEqual(err$4, $ifaceNil))) { $s = 46; continue; } - /* */ $s = 47; continue; - /* if (!($interfaceIsEqual(err$4, $ifaceNil))) { */ case 46: + /* */ if (!($interfaceIsEqual(err$4, $ifaceNil))) { $s = 51; continue; } + /* */ $s = 52; continue; + /* if (!($interfaceIsEqual(err$4, $ifaceNil))) { */ case 51: _tmp$16 = ptrType$5.nil; _tmp$17 = err$4; _ = _tmp$16; err[0] = _tmp$17; $24r$8 = [_, err[0]]; - $s = 48; case 48: return $24r$8; - /* } */ case 47: + $s = 53; case 53: return $24r$8; + /* } */ case 52: if (copyBuf === sliceType$1.nil) { copyBuf = $makeSlice(sliceType$1, 32768); } - _r$10 = io.CopyBuffer((x$7 = new writerOnly.ptr(file[0]), new x$7.constructor.elem(x$7)), p, copyBuf); /* */ $s = 49; case 49: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$10 = io.CopyBuffer((x$8 = new writerOnly.ptr(file[0]), new x$8.constructor.elem(x$8)), p, copyBuf); /* */ $s = 54; case 54: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } _tuple$6 = _r$10; remainingSize = _tuple$6[0]; err$5 = _tuple$6[1]; - /* */ if (!($interfaceIsEqual(err$5, $ifaceNil))) { $s = 50; continue; } - /* */ $s = 51; continue; - /* if (!($interfaceIsEqual(err$5, $ifaceNil))) { */ case 50: + /* */ if (!($interfaceIsEqual(err$5, $ifaceNil))) { $s = 55; continue; } + /* */ $s = 56; continue; + /* if (!($interfaceIsEqual(err$5, $ifaceNil))) { */ case 55: _tmp$18 = ptrType$5.nil; _tmp$19 = err$5; _ = _tmp$18; err[0] = _tmp$19; $24r$9 = [_, err[0]]; - $s = 52; case 52: return $24r$9; - /* } */ case 51: + $s = 57; case 57: return $24r$9; + /* } */ case 56: fh.tmpfile = file[0].Name(); - fh.Size = (x$8 = (new $Int64(0, b[0].Len())), new $Int64(x$8.$high + remainingSize.$high, x$8.$low + remainingSize.$low)); + fh.Size = (x$9 = (new $Int64(0, b[0].Len())), new $Int64(x$9.$high + remainingSize.$high, x$9.$low + remainingSize.$low)); fh.tmpoff = fileOff; - fileOff = (x$9 = fh.Size, new $Int64(fileOff.$high + x$9.$high, fileOff.$low + x$9.$low)); - /* */ if (!combineFiles[0]) { $s = 53; continue; } - /* */ $s = 54; continue; - /* if (!combineFiles[0]) { */ case 53: - _r$11 = file[0].Close(); /* */ $s = 55; case 55: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + fileOff = (x$10 = fh.Size, new $Int64(fileOff.$high + x$10.$high, fileOff.$low + x$10.$low)); + /* */ if (!combineFiles[0]) { $s = 58; continue; } + /* */ $s = 59; continue; + /* if (!combineFiles[0]) { */ case 58: + _r$11 = file[0].Close(); /* */ $s = 60; case 60: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } err$6 = _r$11; - /* */ if (!($interfaceIsEqual(err$6, $ifaceNil))) { $s = 56; continue; } - /* */ $s = 57; continue; - /* if (!($interfaceIsEqual(err$6, $ifaceNil))) { */ case 56: + /* */ if (!($interfaceIsEqual(err$6, $ifaceNil))) { $s = 61; continue; } + /* */ $s = 62; continue; + /* if (!($interfaceIsEqual(err$6, $ifaceNil))) { */ case 61: _tmp$20 = ptrType$5.nil; _tmp$21 = err$6; _ = _tmp$20; err[0] = _tmp$21; $24r$10 = [_, err[0]]; - $s = 58; case 58: return $24r$10; - /* } */ case 57: + $s = 63; case 63: return $24r$10; + /* } */ case 62: file[0] = ptrType$6.nil; - /* } */ case 54: - $s = 38; continue; - /* } else { */ case 37: + /* } */ case 59: + $s = 43; continue; + /* } else { */ case 42: fh.content = b[0].Bytes(); fh.Size = (new $Int64(0, fh.content.$length)); - maxFileMemoryBytes = (x$10 = n$1, new $Int64(maxFileMemoryBytes.$high - x$10.$high, maxFileMemoryBytes.$low - x$10.$low)); - maxMemoryBytes = (x$11 = n$1, new $Int64(maxMemoryBytes.$high - x$11.$high, maxMemoryBytes.$low - x$11.$low)); - /* } */ case 38: + maxFileMemoryBytes = (x$11 = n$1, new $Int64(maxFileMemoryBytes.$high - x$11.$high, maxFileMemoryBytes.$low - x$11.$low)); + maxMemoryBytes = (x$12 = n$1, new $Int64(maxMemoryBytes.$high - x$12.$high, maxMemoryBytes.$low - x$12.$low)); + /* } */ case 43: _key$2 = name; (form[0].File || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$2), { k: _key$2, v: $append((_entry$2 = $mapIndex(form[0].File,$String.keyFor(name)), _entry$2 !== undefined ? _entry$2.v : sliceType$3.nil), fh) }); - $s = 6; continue; - case 7: + $s = 11; continue; + case 12: _tmp$22 = form[0]; _tmp$23 = $ifaceNil; _ = _tmp$22; err[0] = _tmp$23; $24r$11 = [_, err[0]]; - $s = 59; case 59: return $24r$11; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [_, err[0]]; } if($curGoroutine.asleep) { var $f = {$blk: readForm, $c: true, $r, $24r, $24r$1, $24r$10, $24r$11, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _, _entry, _entry$1, _entry$2, _i, _key, _key$1, _key$2, _keys, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _size, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, b, combineFiles, copyBuf, err, err$1, err$2, err$3, err$4, err$5, err$6, fh, file, fileOff, filename, form, maxFileMemoryBytes, maxHeaders, maxMemory, maxMemoryBytes, maxParts, n, n$1, name, numDiskFiles, p, r, remainingSize, s, v, v$1, x, x$1, x$10, x$11, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $deferred};return $f; } } + $s = 64; case 64: return $24r$11; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [_, err[0]]; } if($curGoroutine.asleep) { var $f = {$blk: readForm, $c: true, $r, $24r, $24r$1, $24r$10, $24r$11, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _, _entry, _entry$1, _entry$2, _i, _key, _key$1, _key$2, _keys, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _size, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, b, combineFiles, copyBuf, err, err$1, err$2, err$3, err$4, err$5, err$6, fh, file, fileOff, filename, form, maxFileMemoryBytes, maxHeaders, maxMemory, maxMemoryBytes, maxParts, n, n$1, name, numDiskFiles, p, r, remainingSize, s, v, v$1, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $deferred};return $f; } } }; mimeHeaderSize = function mimeHeaderSize$1(h) { var _entry, _i, _i$1, _key, _keys, _ref, _ref$1, _size, h, k, size, v, vs, x, x$1, x$2; @@ -268256,7 +270763,7 @@ $packages["mime/multipart"] = (function() { emptyParams = new $global.Map(); multipartMaxHeaders = godebug.New("multipartmaxheaders"); $pkg.ErrMessageTooLarge = errors.New("multipart: message too large"); - multipartFiles = godebug.New("multipartfiles"); + multipartFiles = godebug.New("#multipartfiles"); multipartMaxParts = godebug.New("multipartmaxparts"); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; @@ -268473,7 +270980,7 @@ $packages["net/http/internal"] = (function() { }; $pkg.NewChunkedReader = NewChunkedReader; $ptrType(chunkedReader).prototype.beginChunk = function beginChunk() { - var {_r, _tuple, _tuple$1, _tuple$2, cr, line, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {}); + var {_r, _tuple, _tuple$1, _tuple$2, cr, line, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: cr = this; line = sliceType.nil; @@ -268499,17 +271006,15 @@ $packages["net/http/internal"] = (function() { $s = -1; return; } cr.excess = (x$3 = cr.excess, x$4 = (x$5 = $mul64(new $Int64(0, 2), ((x$6 = cr.n, new $Int64(x$6.$high, x$6.$low)))), new $Int64(0 + x$5.$high, 16 + x$5.$low)), new $Int64(x$3.$high - x$4.$high, x$3.$low - x$4.$low)); - if ((x$7 = cr.excess, (x$7.$high < 0 || (x$7.$high === 0 && x$7.$low < 0)))) { - cr.excess = new $Int64(0, 0); - } - if ((x$8 = cr.excess, (x$8.$high > 0 || (x$8.$high === 0 && x$8.$low > 16384)))) { + cr.excess = $max64(cr.excess, new $Int64(0, 0)); + if ((x$7 = cr.excess, (x$7.$high > 0 || (x$7.$high === 0 && x$7.$low > 16384)))) { cr.err = errors.New("chunked encoding contains too much non-data"); } - if ((x$9 = cr.n, (x$9.$high === 0 && x$9.$low === 0))) { + if ((x$8 = cr.n, (x$8.$high === 0 && x$8.$low === 0))) { cr.err = io.EOF; } $s = -1; return; - /* */ } return; } var $f = {$blk: beginChunk, $c: true, $r, _r, _tuple, _tuple$1, _tuple$2, cr, line, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; + /* */ } return; } var $f = {$blk: beginChunk, $c: true, $r, _r, _tuple, _tuple$1, _tuple$2, cr, line, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, $s};return $f; }; $ptrType(chunkedReader).prototype.chunkHeaderAvailable = function chunkHeaderAvailable() { var {_r, _tuple, cr, n, peek, $s, $r, $c} = $restore(this, {}); @@ -269203,8 +271708,8 @@ $packages["vendor/golang.org/x/text/unicode/bidi"] = (function() { $r = log.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = sort.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = utf8.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - bidiValues = $toNativeArray($kindUint8, [11, 11, 11, 11, 11, 11, 11, 11, 11, 8, 7, 8, 9, 7, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 7, 7, 7, 8, 9, 10, 10, 4, 4, 4, 10, 10, 58, 42, 10, 3, 6, 3, 6, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, 10, 74, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, 10, 74, 10, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 11, 11, 11, 11, 7, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 6, 10, 4, 4, 4, 4, 10, 10, 10, 10, 0, 10, 10, 11, 10, 10, 4, 4, 2, 2, 10, 0, 10, 10, 10, 2, 0, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 10, 10, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 10, 10, 4, 1, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 1, 12, 1, 12, 12, 1, 12, 12, 1, 12, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 5, 5, 5, 5, 5, 10, 10, 13, 4, 4, 13, 6, 13, 10, 10, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 5, 5, 13, 13, 13, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 12, 12, 12, 5, 10, 12, 12, 12, 12, 12, 12, 13, 13, 12, 12, 10, 12, 12, 12, 12, 13, 13, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12, 12, 12, 12, 12, 12, 12, 12, 12, 1, 1, 10, 10, 10, 10, 1, 1, 1, 12, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12, 12, 12, 12, 1, 12, 12, 12, 12, 12, 12, 12, 12, 12, 1, 12, 12, 12, 1, 12, 12, 12, 12, 12, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12, 12, 12, 1, 1, 1, 1, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 5, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 12, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 12, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 12, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 12, 12, 0, 0, 12, 12, 12, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 0, 12, 12, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 12, 0, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 4, 10, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 0, 0, 0, 0, 0, 12, 12, 12, 0, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 12, 0, 12, 58, 42, 58, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 12, 12, 12, 12, 12, 0, 12, 12, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 0, 12, 12, 12, 12, 12, 12, 0, 12, 12, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122, 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 4, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 12, 12, 12, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 12, 12, 12, 0, 0, 0, 0, 10, 0, 0, 0, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 12, 12, 12, 12, 12, 12, 12, 0, 12, 0, 12, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 12, 12, 12, 12, 12, 0, 12, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 0, 0, 12, 12, 0, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 12, 12, 0, 0, 0, 12, 0, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 11, 11, 11, 0, 1, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 9, 7, 14, 14, 14, 14, 14, 6, 4, 4, 4, 4, 4, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 6, 154, 138, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 9, 11, 11, 11, 11, 11, 11, 14, 14, 14, 14, 11, 11, 11, 11, 11, 11, 2, 0, 0, 0, 2, 2, 2, 2, 2, 2, 3, 3, 10, 154, 138, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 10, 154, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 0, 10, 10, 10, 10, 0, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 10, 10, 10, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 0, 10, 0, 10, 0, 10, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 0, 0, 0, 0, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 10, 10, 10, 10, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 3, 4, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 58, 42, 58, 42, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 154, 138, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 58, 42, 58, 42, 58, 42, 58, 42, 58, 42, 58, 42, 58, 42, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 154, 138, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 58, 42, 58, 42, 58, 42, 58, 42, 58, 42, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 122, 106, 154, 138, 186, 170, 154, 138, 122, 106, 218, 42, 58, 202, 154, 138, 122, 106, 154, 138, 186, 170, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 58, 42, 58, 42, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 58, 42, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 58, 42, 58, 42, 58, 42, 58, 42, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 9, 10, 10, 10, 10, 0, 0, 0, 58, 42, 58, 42, 58, 42, 58, 42, 58, 42, 10, 10, 58, 42, 58, 42, 58, 42, 58, 42, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 0, 0, 10, 0, 0, 0, 0, 0, 10, 10, 0, 0, 0, 0, 0, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 10, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 10, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 10, 10, 10, 10, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 12, 12, 12, 12, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 0, 0, 12, 12, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 12, 12, 12, 0, 0, 12, 12, 0, 0, 0, 0, 0, 12, 12, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 12, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 12, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 10, 10, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 10, 13, 13, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 6, 10, 6, 0, 10, 6, 10, 10, 10, 154, 138, 122, 106, 154, 138, 4, 10, 10, 3, 3, 10, 10, 10, 0, 10, 4, 4, 10, 0, 0, 0, 0, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 11, 0, 10, 10, 4, 4, 4, 10, 10, 58, 42, 10, 3, 6, 3, 6, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, 10, 74, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, 10, 74, 10, 250, 234, 10, 58, 42, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 10, 10, 10, 4, 4, 0, 10, 10, 10, 10, 10, 10, 10, 0, 11, 11, 11, 11, 11, 11, 11, 11, 11, 10, 10, 10, 10, 10, 11, 11, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 10, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12, 12, 12, 1, 12, 12, 1, 1, 1, 1, 1, 12, 12, 12, 12, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12, 12, 12, 1, 1, 1, 1, 12, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12, 12, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 10, 10, 10, 10, 10, 10, 10, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 13, 13, 13, 13, 13, 13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12, 12, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 0, 0, 12, 12, 0, 0, 0, 0, 0, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 0, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 0, 0, 12, 0, 12, 12, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 12, 12, 12, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 0, 12, 0, 0, 0, 0, 12, 12, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 12, 12, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 12, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 12, 0, 0, 12, 12, 12, 12, 12, 12, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 0, 0, 12, 12, 12, 12, 0, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 12, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 0, 0, 12, 12, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 0, 0, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 0, 0, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 0, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 12, 12, 12, 12, 12, 12, 12, 0, 12, 12, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 0, 0, 0, 12, 0, 12, 12, 0, 12, 12, 12, 12, 12, 12, 12, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 12, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 4, 4, 4, 4, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 11, 11, 11, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 12, 12, 12, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 12, 12, 12, 12, 12, 12, 12, 0, 12, 12, 0, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12, 12, 12, 12, 12, 12, 12, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12, 12, 12, 12, 12, 12, 12, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 10, 10, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 10, 10, 10, 10, 10, 0, 0, 0, 10, 10, 10, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11]); - bidiIndex = $toNativeArray($kindUint8, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 3, 4, 5, 6, 7, 8, 0, 0, 9, 0, 0, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2, 3, 4, 5, 6, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 8, 17, 18, 18, 20, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 28, 30, 31, 32, 33, 34, 35, 36, 26, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 54, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 0, 57, 58, 59, 60, 61, 0, 62, 0, 63, 64, 0, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 0, 0, 75, 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 86, 86, 86, 88, 89, 90, 86, 91, 92, 93, 94, 86, 86, 86, 86, 86, 86, 95, 86, 86, 96, 86, 97, 0, 0, 0, 0, 86, 86, 98, 99, 86, 86, 86, 86, 86, 100, 101, 86, 0, 0, 0, 102, 0, 103, 0, 104, 105, 106, 107, 108, 86, 86, 86, 109, 110, 0, 111, 112, 0, 0, 0, 113, 114, 115, 116, 117, 0, 118, 0, 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 120, 121, 0, 0, 0, 0, 122, 123, 124, 125, 126, 0, 127, 0, 128, 129, 0, 130, 131, 132, 133, 134, 135, 136, 137, 138, 0, 139, 0, 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 141, 142, 14, 14, 14, 14, 14, 14, 143, 14, 14, 144, 145, 146, 14, 147, 148, 149, 0, 150, 0, 0, 0, 0, 151, 86, 152, 153, 0, 0, 0, 154, 0, 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 156, 156, 156, 156, 157, 156, 156, 156, 158, 156, 156, 159, 160, 156, 156, 156, 156, 156, 156, 156, 161, 156, 156, 156, 156, 162, 163, 156, 164, 165, 156, 156, 166, 167, 168, 0, 169, 170, 171, 172, 173, 0, 0, 174, 38, 175, 0, 0, 176, 177, 178, 179, 0, 0, 180, 181, 182, 183, 184, 0, 185, 0, 0, 0, 186, 0, 0, 0, 187, 188, 0, 189, 190, 191, 192, 0, 0, 0, 0, 0, 193, 0, 194, 0, 195, 196, 197, 0, 0, 0, 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 202, 203, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 206, 207, 0, 86, 208, 0, 0, 86, 209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 210, 211, 212, 213, 214, 0, 0, 0, 0, 0, 0, 0, 0, 215, 216, 217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 218, 0, 0, 0, 201, 0, 0, 0, 0, 0, 0, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 156, 156, 156, 220, 156, 221, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 164, 14, 156, 14, 222, 156, 156, 14, 14, 14, 223, 156, 156, 156, 156, 224, 86, 225, 226, 227, 228, 229, 0, 0, 230, 0, 0, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 231, 86, 108, 86, 232, 233, 234, 235, 0, 86, 236, 86, 237, 86, 238, 239, 240, 86, 86, 241, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 10, 0, 0, 0, 0, 11, 0, 0, 0, 0, 12, 0, 13, 14, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 244, 244, 244, 244, 5, 5, 5, 245, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]); + bidiValues = $toNativeArray($kindUint8, [11, 11, 11, 11, 11, 11, 11, 11, 11, 8, 7, 8, 9, 7, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 7, 7, 7, 8, 9, 10, 10, 4, 4, 4, 10, 10, 58, 42, 10, 3, 6, 3, 6, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, 10, 74, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, 10, 74, 10, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 11, 11, 11, 11, 7, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 6, 10, 4, 4, 4, 4, 10, 10, 10, 10, 0, 10, 10, 11, 10, 10, 4, 4, 2, 2, 10, 0, 10, 10, 10, 2, 0, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 10, 10, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 10, 10, 4, 1, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 1, 12, 1, 12, 12, 1, 12, 12, 1, 12, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 5, 5, 5, 5, 5, 10, 10, 13, 4, 4, 13, 6, 13, 10, 10, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 5, 5, 13, 13, 13, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 12, 12, 12, 5, 10, 12, 12, 12, 12, 12, 12, 13, 13, 12, 12, 10, 12, 12, 12, 12, 13, 13, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12, 12, 12, 12, 12, 12, 12, 12, 12, 1, 1, 10, 10, 10, 10, 1, 1, 1, 12, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12, 12, 12, 12, 1, 12, 12, 12, 12, 12, 12, 12, 12, 12, 1, 12, 12, 12, 1, 12, 12, 12, 12, 12, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12, 12, 12, 1, 1, 1, 1, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 1, 1, 1, 1, 1, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 1, 5, 5, 1, 1, 1, 1, 1, 1, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 5, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 12, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 12, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 12, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 12, 12, 0, 0, 12, 12, 12, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 0, 12, 12, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 12, 0, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 4, 10, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 12, 12, 12, 0, 0, 0, 0, 0, 12, 12, 12, 0, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 12, 0, 12, 58, 42, 58, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 12, 12, 12, 12, 12, 0, 12, 12, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 0, 12, 12, 12, 12, 12, 12, 0, 12, 12, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122, 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 4, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 12, 12, 12, 11, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 12, 12, 12, 0, 0, 0, 0, 10, 0, 0, 0, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 12, 12, 12, 12, 12, 12, 12, 0, 12, 0, 12, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 12, 12, 12, 12, 12, 0, 12, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 0, 0, 12, 12, 0, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 12, 12, 0, 0, 0, 12, 0, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 11, 11, 11, 0, 1, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 9, 7, 14, 14, 14, 14, 14, 6, 4, 4, 4, 4, 4, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 6, 154, 138, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 9, 11, 11, 11, 11, 11, 11, 14, 14, 14, 14, 11, 11, 11, 11, 11, 11, 2, 0, 0, 0, 2, 2, 2, 2, 2, 2, 3, 3, 10, 154, 138, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 10, 154, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 0, 10, 10, 10, 10, 0, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 10, 10, 10, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 0, 10, 0, 10, 0, 10, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 0, 0, 0, 0, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 10, 10, 10, 10, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 3, 4, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 58, 42, 58, 42, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 154, 138, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 58, 42, 58, 42, 58, 42, 58, 42, 58, 42, 58, 42, 58, 42, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 154, 138, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 58, 42, 58, 42, 58, 42, 58, 42, 58, 42, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 122, 106, 154, 138, 186, 170, 154, 138, 122, 106, 218, 42, 58, 202, 154, 138, 122, 106, 154, 138, 186, 170, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 58, 42, 58, 42, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 58, 42, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 58, 42, 58, 42, 58, 42, 58, 42, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 154, 138, 186, 170, 154, 138, 122, 106, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 9, 10, 10, 10, 10, 0, 0, 0, 58, 42, 58, 42, 58, 42, 58, 42, 58, 42, 10, 10, 58, 42, 58, 42, 58, 42, 58, 42, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 0, 0, 10, 0, 0, 0, 0, 0, 10, 10, 0, 0, 0, 0, 0, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 10, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 10, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 10, 10, 10, 10, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 12, 12, 12, 12, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 0, 0, 12, 12, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 12, 12, 12, 0, 0, 12, 12, 0, 0, 0, 0, 0, 12, 12, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 12, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 12, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 10, 10, 10, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 6, 10, 6, 0, 10, 6, 10, 10, 10, 154, 138, 122, 106, 154, 138, 4, 10, 10, 3, 3, 10, 10, 10, 0, 10, 4, 4, 10, 0, 0, 0, 0, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 11, 0, 10, 10, 4, 4, 4, 10, 10, 58, 42, 10, 3, 6, 3, 6, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, 10, 74, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, 10, 74, 10, 250, 234, 10, 58, 42, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 10, 10, 10, 4, 4, 0, 10, 10, 10, 10, 10, 10, 10, 0, 11, 11, 11, 11, 11, 11, 11, 11, 11, 10, 10, 10, 10, 10, 11, 11, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 10, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12, 12, 12, 1, 12, 12, 1, 1, 1, 1, 1, 12, 12, 12, 12, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12, 12, 12, 1, 1, 1, 1, 12, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12, 12, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 10, 10, 10, 10, 10, 10, 10, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 1, 1, 1, 1, 1, 1, 1, 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12, 12, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12, 12, 12, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12, 12, 12, 12, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 0, 0, 12, 12, 0, 0, 0, 0, 0, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 0, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 0, 0, 12, 0, 12, 12, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 12, 12, 12, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 0, 12, 0, 0, 0, 0, 12, 12, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 12, 12, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 12, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 12, 0, 0, 12, 12, 12, 12, 12, 12, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 0, 0, 12, 12, 12, 12, 0, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 12, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 0, 0, 12, 12, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 0, 0, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 0, 0, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 0, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 12, 12, 12, 12, 12, 12, 12, 0, 12, 12, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 0, 0, 0, 12, 0, 12, 12, 0, 12, 12, 12, 12, 12, 12, 12, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 12, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 12, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 4, 4, 4, 4, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 11, 11, 11, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 12, 12, 12, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 12, 12, 12, 12, 12, 12, 12, 0, 12, 12, 0, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12, 12, 12, 12, 12, 12, 12, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12, 12, 12, 12, 12, 12, 12, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 1, 1, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 10, 10, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11]); + bidiIndex = $toNativeArray($kindUint16, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 3, 4, 5, 6, 7, 8, 0, 0, 9, 0, 0, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2, 3, 4, 5, 6, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 8, 19, 20, 20, 22, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 28, 30, 31, 32, 33, 34, 35, 36, 26, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 54, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 0, 57, 58, 59, 60, 61, 0, 62, 0, 63, 64, 0, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 0, 0, 75, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 85, 85, 85, 87, 88, 89, 85, 90, 91, 92, 93, 85, 85, 85, 85, 85, 85, 94, 85, 85, 95, 85, 96, 0, 0, 0, 0, 85, 85, 97, 98, 85, 85, 85, 85, 85, 99, 100, 85, 0, 0, 0, 101, 0, 102, 0, 103, 104, 105, 106, 107, 85, 85, 85, 108, 109, 0, 110, 111, 0, 0, 0, 112, 113, 114, 115, 116, 0, 117, 0, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 119, 120, 0, 0, 0, 0, 121, 122, 123, 124, 125, 0, 126, 0, 127, 128, 0, 129, 130, 131, 132, 133, 134, 135, 136, 137, 0, 138, 0, 139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 140, 141, 14, 14, 14, 14, 14, 14, 142, 143, 14, 144, 145, 146, 14, 147, 148, 149, 0, 150, 0, 0, 0, 0, 151, 85, 152, 153, 0, 0, 0, 154, 0, 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 156, 156, 156, 156, 157, 156, 156, 156, 158, 156, 156, 159, 160, 156, 156, 156, 156, 156, 156, 156, 161, 156, 156, 156, 156, 162, 163, 164, 165, 166, 167, 156, 168, 169, 170, 33, 171, 172, 173, 174, 175, 40, 0, 176, 38, 177, 0, 0, 178, 179, 180, 181, 0, 0, 182, 183, 184, 185, 186, 0, 187, 0, 0, 0, 188, 0, 0, 0, 189, 190, 0, 191, 192, 193, 194, 0, 0, 0, 0, 0, 195, 0, 196, 0, 197, 198, 199, 0, 0, 0, 0, 200, 201, 202, 0, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 207, 208, 209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 211, 212, 0, 0, 0, 0, 0, 0, 0, 213, 214, 215, 85, 216, 0, 0, 85, 217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 218, 219, 220, 221, 222, 0, 0, 0, 0, 0, 0, 0, 0, 223, 224, 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 226, 0, 207, 0, 206, 0, 0, 0, 0, 0, 227, 228, 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 156, 156, 156, 230, 156, 231, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 232, 233, 156, 234, 156, 156, 156, 14, 14, 14, 235, 156, 156, 156, 156, 236, 85, 237, 238, 239, 240, 241, 0, 0, 242, 0, 0, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 243, 85, 244, 85, 245, 246, 247, 248, 0, 85, 85, 85, 85, 85, 249, 250, 251, 85, 85, 252, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 10, 0, 11, 0, 0, 12, 0, 0, 0, 0, 13, 14, 15, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 255, 255, 255, 255, 5, 5, 5, 256, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]); trie = newBidiTrie(0); controlByteToClass = $toNativeArray($kindUint, [0, 0, 0, 0, 0, 0, 21, 22, 23, 24, 18, 19, 20, 16, 17, 0]); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; @@ -269213,7 +271718,7 @@ $packages["vendor/golang.org/x/text/unicode/bidi"] = (function() { return $pkg; })(); $packages["vendor/golang.org/x/text/secure/bidirule"] = (function() { - var $pkg = {}, $init, errors, utf8, transform, bidi, ruleState, ruleTransition, Transformer, arrayType, arrayType$1, sliceType, ptrType, asciiTable, transitions, DirectionString, ValidString, init; + var $pkg = {}, $init, errors, utf8, transform, bidi, ruleState, ruleTransition, Transformer, arrayType, arrayType$1, ptrType, sliceType, asciiTable, transitions, DirectionString, ValidString, init; errors = $packages["errors"]; utf8 = $packages["unicode/utf8"]; transform = $packages["vendor/golang.org/x/text/transform"]; @@ -269247,8 +271752,8 @@ $packages["vendor/golang.org/x/text/secure/bidirule"] = (function() { $pkg.$finishSetup = function() { arrayType = $arrayType(bidi.Properties, 128); arrayType$1 = $arrayType(ruleTransition, 2); - sliceType = $sliceType($Uint8); ptrType = $ptrType(Transformer); + sliceType = $sliceType($Uint8); $ptrType(Transformer).prototype.isFinal = function isFinal() { var t; t = this; @@ -269295,7 +271800,7 @@ $packages["vendor/golang.org/x/text/secure/bidirule"] = (function() { $ptrType(Transformer).prototype.Reset = function Reset() { var t; t = this; - Transformer.copy(t, new Transformer.ptr(0, false, 0)); + Transformer.copy((t === ptrType.nil && $throwNilPointerError(), t), new Transformer.ptr(0, false, 0)); }; $ptrType(Transformer).prototype.Transform = function Transform(dst, src, atEOF) { var _tmp, _tmp$1, _tmp$2, _tuple, atEOF, dst, err, err1, n, nDst, nSrc, src, t; @@ -269523,7 +272028,7 @@ $packages["vendor/golang.org/x/text/secure/bidirule"] = (function() { return $pkg; })(); $packages["vendor/golang.org/x/text/unicode/norm"] = (function() { - var $pkg = {}, $init, binary, fmt, io, sync, utf8, transform, valueRange, sparseBlocks, nfcTrie, nfkcTrie, normWriter, normReader, Form, Iter, iterFunc, input, Properties, lookupFunc, formInfo, qcInfo, ssState, streamSafe, reorderBuffer, insertErr, sliceType, sliceType$1, sliceType$2, ptrType, sliceType$3, arrayType, arrayType$1, sliceType$4, ptrType$1, arrayType$2, sliceType$5, arrayType$3, sliceType$6, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, funcType, recompMap, recompMapOnce, nfcData, nfkcData, errs, ccc, decomps, nfcValues, nfcIndex, nfcSparseOffset, nfcSparseValues, nfcSparse, nfkcValues, nfkcIndex, nfkcSparseOffset, nfkcSparseValues, nfkcSparse, formTable, flushTransform, newNfcTrie, newNfkcTrie, cmpNormalBytes, patchTail, appendQuick, doAppend, doAppendInner, lastBoundary, decomposeSegment, lastRuneStart, decomposeToLastBoundary, nextASCIIBytes, nextASCIIString, nextHangul, nextDone, nextMulti, nextMultiNorm, nextDecomposed, doNormDecomposed, nextCGJDecompose, nextComposed, doNormComposed, nextCGJCompose, inputBytes, inputString, buildRecompMap, combine, lookupInfoNFC, lookupInfoNFKC, compInfo, appendFlush, isHangul, isHangulString, isJamoVT, decomposeHangul; + var $pkg = {}, $init, binary, fmt, io, sync, utf8, transform, valueRange, sparseBlocks, nfcTrie, nfkcTrie, normWriter, normReader, Form, Iter, iterFunc, input, Properties, lookupFunc, formInfo, qcInfo, ssState, streamSafe, reorderBuffer, insertErr, sliceType, sliceType$1, sliceType$2, ptrType, sliceType$3, arrayType, arrayType$1, sliceType$4, ptrType$1, ptrType$2, arrayType$2, sliceType$5, arrayType$3, sliceType$6, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, funcType, recompMap, recompMapOnce, nfcData, nfkcData, errs, ccc, decomps, nfcValues, nfcIndex, nfcSparseOffset, nfcSparseValues, nfcSparse, nfkcValues, nfkcIndex, nfkcSparseOffset, nfkcSparseValues, nfkcSparse, formTable, flushTransform, newNfcTrie, newNfkcTrie, cmpNormalBytes, patchTail, appendQuick, doAppend, doAppendInner, lastBoundary, decomposeSegment, lastRuneStart, decomposeToLastBoundary, nextASCIIBytes, nextASCIIString, nextHangul, nextDone, nextMulti, nextMultiNorm, nextDecomposed, doNormDecomposed, nextCGJDecompose, nextComposed, doNormComposed, nextCGJCompose, inputBytes, inputString, buildRecompMap, combine, lookupInfoNFC, lookupInfoNFKC, compInfo, appendFlush, isHangul, isHangulString, isJamoVT, decomposeHangul; binary = $packages["encoding/binary"]; fmt = $packages["fmt"]; io = $packages["io"]; @@ -269714,20 +272219,20 @@ $packages["vendor/golang.org/x/text/unicode/norm"] = (function() { arrayType = $arrayType(Properties, 32); arrayType$1 = $arrayType($Uint8, 128); sliceType$4 = $sliceType($Uint8); - ptrType$1 = $ptrType(streamSafe); + ptrType$1 = $ptrType(reorderBuffer); + ptrType$2 = $ptrType(streamSafe); arrayType$2 = $arrayType(Properties, 31); sliceType$5 = $sliceType($emptyInterface); arrayType$3 = $arrayType($Uint8, 8); sliceType$6 = $sliceType(Properties); - ptrType$2 = $ptrType(sparseBlocks); - ptrType$3 = $ptrType(nfcTrie); - ptrType$4 = $ptrType(nfkcTrie); - ptrType$5 = $ptrType(normWriter); - ptrType$6 = $ptrType(normReader); - ptrType$7 = $ptrType(Iter); - ptrType$8 = $ptrType(input); - ptrType$9 = $ptrType(reorderBuffer); - funcType = $funcType([ptrType$9], [$Bool], false); + ptrType$3 = $ptrType(sparseBlocks); + ptrType$4 = $ptrType(nfcTrie); + ptrType$5 = $ptrType(nfkcTrie); + ptrType$6 = $ptrType(normWriter); + ptrType$7 = $ptrType(normReader); + ptrType$8 = $ptrType(Iter); + ptrType$9 = $ptrType(input); + funcType = $funcType([ptrType$1], [$Bool], false); $ptrType(sparseBlocks).prototype.lookup = function lookup(n, b) { var _q, b, header, hi, lo, m, n, offset, r, t, x, x$1, x$2; t = this; @@ -270373,10 +272878,10 @@ $packages["vendor/golang.org/x/text/unicode/norm"] = (function() { $ptrType(nfkcTrie).prototype.lookupValue = function lookupValue$1(n, b) { var b, n, t, x; t = this; - if (n < 92) { + if (n < 95) { return ((x = (n << 6 >>> 0) + ((b >>> 0)) >>> 0, ((x < 0 || x >= nfkcValues.length) ? ($throwRuntimeError("index out of range"), undefined) : nfkcValues[x]))); } else { - n = n - (92) >>> 0; + n = n - (95) >>> 0; return (nfkcSparse.lookup(n, b)); } }; @@ -270525,7 +273030,7 @@ $packages["vendor/golang.org/x/text/unicode/norm"] = (function() { } out = $makeSlice(sliceType$4, n, b.$length); $copySlice(out, $subslice(b, 0, n)); - rb[0] = new reorderBuffer.ptr(arrayType.zero(), arrayType$1.zero(), 0, 0, 0, $clone(ft, formInfo), $clone(src, input), b.$length, new input.ptr("", sliceType$4.nil), out, appendFlush); + rb[0] = new reorderBuffer.ptr(arrayType.zero(), arrayType$1.zero(), 0, 0, 0, $clone((ft === ptrType.nil && $throwNilPointerError(), ft), formInfo), $clone(src, input), b.$length, new input.ptr("", sliceType$4.nil), out, appendFlush); _r$1 = doAppendInner(rb[0], n); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $24r = _r$1; $s = 3; case 3: return $24r; @@ -270548,7 +273053,7 @@ $packages["vendor/golang.org/x/text/unicode/norm"] = (function() { } out = $makeSlice(sliceType$4, n, s.length); $copyString(out, $substring(s, 0, n)); - rb[0] = new reorderBuffer.ptr(arrayType.zero(), arrayType$1.zero(), 0, 0, 0, $clone(ft, formInfo), $clone(src, input), s.length, new input.ptr("", sliceType$4.nil), out, appendFlush); + rb[0] = new reorderBuffer.ptr(arrayType.zero(), arrayType$1.zero(), 0, 0, 0, $clone((ft === ptrType.nil && $throwNilPointerError(), ft), formInfo), $clone(src, input), s.length, new input.ptr("", sliceType$4.nil), out, appendFlush); _r$1 = doAppendInner(rb[0], n); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $24r = ($bytesToString(_r$1)); $s = 3; case 3: return $24r; @@ -270569,7 +273074,7 @@ $packages["vendor/golang.org/x/text/unicode/norm"] = (function() { if (ok) { $s = -1; return true; } - rb[0] = new reorderBuffer.ptr(arrayType.zero(), arrayType$1.zero(), 0, 0, 0, $clone(ft, formInfo), $clone(src, input), b.$length, new input.ptr("", sliceType$4.nil), sliceType$4.nil, $throwNilPointerError); + rb[0] = new reorderBuffer.ptr(arrayType.zero(), arrayType$1.zero(), 0, 0, 0, $clone((ft === ptrType.nil && $throwNilPointerError(), ft), formInfo), $clone(src, input), b.$length, new input.ptr("", sliceType$4.nil), sliceType$4.nil, $throwNilPointerError); rb[0].setFlusher(sliceType$4.nil, cmpNormalBytes); /* while (true) { */ case 2: /* if (!(bp < b.$length)) { break; } */ if(!(bp < b.$length)) { $s = 3; continue; } @@ -270628,7 +273133,7 @@ $packages["vendor/golang.org/x/text/unicode/norm"] = (function() { if (ok) { $s = -1; return true; } - rb[0] = new reorderBuffer.ptr(arrayType.zero(), arrayType$1.zero(), 0, 0, 0, $clone(ft, formInfo), $clone(src, input), s[0].length, new input.ptr("", sliceType$4.nil), sliceType$4.nil, $throwNilPointerError); + rb[0] = new reorderBuffer.ptr(arrayType.zero(), arrayType$1.zero(), 0, 0, 0, $clone((ft === ptrType.nil && $throwNilPointerError(), ft), formInfo), $clone(src, input), s[0].length, new input.ptr("", sliceType$4.nil), sliceType$4.nil, $throwNilPointerError); rb[0].setFlusher(sliceType$4.nil, (function(bp, rb, s) { return function Form·IsNormalString·func1(rb$1) { var i, info, p, pe, rb$1, x, x$1; i = 0; @@ -270695,14 +273200,14 @@ $packages["vendor/golang.org/x/text/unicode/norm"] = (function() { buf = $subslice(rb.out, p); rb.out = $subslice(rb.out, 0, p); $r = decomposeToLastBoundary(rb); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - s = (rb.$ptr_ss || (rb.$ptr_ss = new ptrType$1(function() { return this.$target.ss; }, function($v) { this.$target.ss = $v; }, rb))).next($clone(info, Properties)); + s = (rb === ptrType$1.nil && $throwNilPointerError(), (rb.$ptr_ss || (rb.$ptr_ss = new ptrType$2(function() { return this.$target.ss; }, function($v) { this.$target.ss = $v; }, rb)))).next($clone(info, Properties)); /* */ if (s === 1) { $s = 7; continue; } /* */ if (s === 2) { $s = 8; continue; } /* */ $s = 9; continue; /* if (s === 1) { */ case 7: _r$2 = rb.doFlush(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _r$2; - (rb.$ptr_ss || (rb.$ptr_ss = new ptrType$1(function() { return this.$target.ss; }, function($v) { this.$target.ss = $v; }, rb))).first($clone(info, Properties)); + (rb === ptrType$1.nil && $throwNilPointerError(), (rb.$ptr_ss || (rb.$ptr_ss = new ptrType$2(function() { return this.$target.ss; }, function($v) { this.$target.ss = $v; }, rb)))).first($clone(info, Properties)); $s = 9; continue; /* } else if (s === 2) { */ case 8: _r$3 = rb.doFlush(); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } @@ -270757,12 +273262,12 @@ $packages["vendor/golang.org/x/text/unicode/norm"] = (function() { if (p === n) { $s = -1; return out; } - rb[0] = new reorderBuffer.ptr(arrayType.zero(), arrayType$1.zero(), 0, 0, 0, $clone(ft, formInfo), $clone(src, input), n, new input.ptr("", sliceType$4.nil), out, appendFlush); + rb[0] = new reorderBuffer.ptr(arrayType.zero(), arrayType$1.zero(), 0, 0, 0, $clone((ft === ptrType.nil && $throwNilPointerError(), ft), formInfo), $clone(src, input), n, new input.ptr("", sliceType$4.nil), out, appendFlush); _r$1 = doAppendInner(rb[0], p); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $24r = _r$1; $s = 5; case 5: return $24r; /* } */ case 2: - rb$1[0] = new reorderBuffer.ptr(arrayType.zero(), arrayType$1.zero(), 0, 0, 0, $clone(ft, formInfo), $clone(src, input), n, new input.ptr("", sliceType$4.nil), sliceType$4.nil, $throwNilPointerError); + rb$1[0] = new reorderBuffer.ptr(arrayType.zero(), arrayType$1.zero(), 0, 0, 0, $clone((ft === ptrType.nil && $throwNilPointerError(), ft), formInfo), $clone(src, input), n, new input.ptr("", sliceType$4.nil), sliceType$4.nil, $throwNilPointerError); _r$2 = doAppend(rb$1[0], out, 0); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $24r$1 = _r$2; $s = 7; case 7: return $24r$1; @@ -270953,7 +273458,7 @@ $packages["vendor/golang.org/x/text/unicode/norm"] = (function() { ok = _tmp$3; $s = -1; return [n, ok]; } - _1 = (ss$24ptr || (ss$24ptr = new ptrType$1(function() { return ss; }, function($v) { ss = $v; }))).next($clone(info, Properties)); + _1 = (ss$24ptr || (ss$24ptr = new ptrType$2(function() { return ss; }, function($v) { ss = $v; }))).next($clone(info, Properties)); if (_1 === (1)) { lastSegStart = i; } else if (_1 === (2)) { @@ -271038,7 +273543,7 @@ $packages["vendor/golang.org/x/text/unicode/norm"] = (function() { if (info.size === 0) { $s = -1; return -1; } - s = (ss$24ptr || (ss$24ptr = new ptrType$1(function() { return ss; }, function($v) { ss = $v; }))).next($clone(info, Properties)); + s = (ss$24ptr || (ss$24ptr = new ptrType$2(function() { return ss; }, function($v) { ss = $v; }))).next($clone(info, Properties)); if (!((s === 0))) { $s = -1; return i; } @@ -271105,7 +273610,7 @@ $packages["vendor/golang.org/x/text/unicode/norm"] = (function() { $s = -1; return -1; } ss = 0; - (ss$24ptr || (ss$24ptr = new ptrType$1(function() { return ss; }, function($v) { ss = $v; }))).first($clone(info, Properties)); + (ss$24ptr || (ss$24ptr = new ptrType$2(function() { return ss; }, function($v) { ss = $v; }))).first($clone(info, Properties)); i = ((info.size >> 0)); /* while (true) { */ case 2: /* if (!(i < nsrc)) { break; } */ if(!(i < nsrc)) { $s = 3; continue; } @@ -271117,7 +273622,7 @@ $packages["vendor/golang.org/x/text/unicode/norm"] = (function() { } $s = -1; return -1; } - s = (ss$24ptr || (ss$24ptr = new ptrType$1(function() { return ss; }, function($v) { ss = $v; }))).next($clone(info, Properties)); + s = (ss$24ptr || (ss$24ptr = new ptrType$2(function() { return ss; }, function($v) { ss = $v; }))).next($clone(info, Properties)); if (!((s === 0))) { $s = -1; return i; } @@ -271174,7 +273679,7 @@ $packages["vendor/golang.org/x/text/unicode/norm"] = (function() { $s = -1; return i; } ss = 0; - v = (ss$24ptr || (ss$24ptr = new ptrType$1(function() { return ss; }, function($v) { ss = $v; }))).backwards($clone(info, Properties)); + v = (ss$24ptr || (ss$24ptr = new ptrType$2(function() { return ss; }, function($v) { ss = $v; }))).backwards($clone(info, Properties)); i = p; /* while (true) { */ case 5: /* if (!(i >= 0 && !((v === 1)))) { break; } */ if(!(i >= 0 && !((v === 1)))) { $s = 6; continue; } @@ -271182,7 +273687,7 @@ $packages["vendor/golang.org/x/text/unicode/norm"] = (function() { _tuple$2 = _r$2; Properties.copy(info, _tuple$2[0]); p = _tuple$2[1]; - v = (ss$24ptr || (ss$24ptr = new ptrType$1(function() { return ss; }, function($v) { ss = $v; }))).backwards($clone(info, Properties)); + v = (ss$24ptr || (ss$24ptr = new ptrType$2(function() { return ss; }, function($v) { ss = $v; }))).backwards($clone(info, Properties)); if (v === 2) { /* break; */ $s = 6; continue; } @@ -271206,7 +273711,7 @@ $packages["vendor/golang.org/x/text/unicode/norm"] = (function() { if (info.size === 0) { $s = -1; return 0; } - s = (rb.$ptr_ss || (rb.$ptr_ss = new ptrType$1(function() { return this.$target.ss; }, function($v) { this.$target.ss = $v; }, rb))).next($clone(info, Properties)); + s = (rb === ptrType$1.nil && $throwNilPointerError(), (rb.$ptr_ss || (rb.$ptr_ss = new ptrType$2(function() { return this.$target.ss; }, function($v) { this.$target.ss = $v; }, rb)))).next($clone(info, Properties)); /* */ if (s === 1) { $s = 2; continue; } /* */ if (s === 2) { $s = 3; continue; } /* */ $s = 4; continue; @@ -271242,7 +273747,7 @@ $packages["vendor/golang.org/x/text/unicode/norm"] = (function() { } /* break; */ $s = 10; continue; } - s$1 = (rb.$ptr_ss || (rb.$ptr_ss = new ptrType$1(function() { return this.$target.ss; }, function($v) { this.$target.ss = $v; }, rb))).next($clone(info, Properties)); + s$1 = (rb === ptrType$1.nil && $throwNilPointerError(), (rb.$ptr_ss || (rb.$ptr_ss = new ptrType$2(function() { return this.$target.ss; }, function($v) { this.$target.ss = $v; }, rb)))).next($clone(info, Properties)); if (s$1 === 1) { /* break; */ $s = 10; continue; } else if (s$1 === 2) { @@ -271302,7 +273807,7 @@ $packages["vendor/golang.org/x/text/unicode/norm"] = (function() { p = rb.out.$length; /* while (true) { */ case 2: Properties.copy(((padd < 0 || padd >= add.length) ? ($throwRuntimeError("index out of range"), undefined) : add[padd]), info); - v = (ss$24ptr || (ss$24ptr = new ptrType$1(function() { return ss; }, function($v) { ss = $v; }))).backwards($clone(info, Properties)); + v = (ss$24ptr || (ss$24ptr = new ptrType$2(function() { return ss; }, function($v) { ss = $v; }))).backwards($clone(info, Properties)); if (v === 2) { /* break; */ $s = 3; continue; } @@ -271352,7 +273857,7 @@ $packages["vendor/golang.org/x/text/unicode/norm"] = (function() { i.asciiF = nextASCIIBytes; _r = i.rb.f.info($clone(i.rb.src, input), i.p); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } Properties.copy(i.info, _r); - (x = i.rb, (x.$ptr_ss || (x.$ptr_ss = new ptrType$1(function() { return this.$target.ss; }, function($v) { this.$target.ss = $v; }, x)))).first($clone(i.info, Properties)); + (x = i.rb, (x.$ptr_ss || (x.$ptr_ss = new ptrType$2(function() { return this.$target.ss; }, function($v) { this.$target.ss = $v; }, x)))).first($clone(i.info, Properties)); $s = -1; return; /* */ } return; } var $f = {$blk: Init, $c: true, $r, _r, f, i, src, x, $s};return $f; }; @@ -271372,7 +273877,7 @@ $packages["vendor/golang.org/x/text/unicode/norm"] = (function() { i.asciiF = nextASCIIString; _r = i.rb.f.info($clone(i.rb.src, input), i.p); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } Properties.copy(i.info, _r); - (x = i.rb, (x.$ptr_ss || (x.$ptr_ss = new ptrType$1(function() { return this.$target.ss; }, function($v) { this.$target.ss = $v; }, x)))).first($clone(i.info, Properties)); + (x = i.rb, (x.$ptr_ss || (x.$ptr_ss = new ptrType$2(function() { return this.$target.ss; }, function($v) { this.$target.ss = $v; }, x)))).first($clone(i.info, Properties)); $s = -1; return; /* */ } return; } var $f = {$blk: InitString, $c: true, $r, _r, f, i, src, x, $s};return $f; }; @@ -271417,7 +273922,7 @@ $packages["vendor/golang.org/x/text/unicode/norm"] = (function() { i.next = i.rb.f.nextMain; _r$2 = i.rb.f.info($clone(i.rb.src, input), i.p); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } Properties.copy(i.info, _r$2); - (x$2 = i.rb, (x$2.$ptr_ss || (x$2.$ptr_ss = new ptrType$1(function() { return this.$target.ss; }, function($v) { this.$target.ss = $v; }, x$2)))).first($clone(i.info, Properties)); + (x$2 = i.rb, (x$2.$ptr_ss || (x$2.$ptr_ss = new ptrType$2(function() { return this.$target.ss; }, function($v) { this.$target.ss = $v; }, x$2)))).first($clone(i.info, Properties)); $s = -1; return [abs, $ifaceNil]; /* */ } return; } var $f = {$blk: Seek, $c: true, $r, $24r, $24r$1, _1, _r, _r$1, _r$2, abs, i, offset, whence, x, x$1, x$2, $s};return $f; }; @@ -271510,7 +274015,7 @@ $packages["vendor/golang.org/x/text/unicode/norm"] = (function() { i.setDone(); $s = 3; continue; /* } else if (i.rb.src.hangul(next) === 0) { */ case 2: - (x = i.rb, (x.$ptr_ss || (x.$ptr_ss = new ptrType$1(function() { return this.$target.ss; }, function($v) { this.$target.ss = $v; }, x)))).next($clone(i.info, Properties)); + (x = i.rb, (x.$ptr_ss || (x.$ptr_ss = new ptrType$2(function() { return this.$target.ss; }, function($v) { this.$target.ss = $v; }, x)))).next($clone(i.info, Properties)); _r = i.rb.f.info($clone(i.rb.src, input), i.p); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } Properties.copy(i.info, _r); i.next = i.rb.f.nextMain; @@ -271653,7 +274158,7 @@ $packages["vendor/golang.org/x/text/unicode/norm"] = (function() { _r$1 = i.rb.f.info($clone(i.rb.src, input), i.p); /* */ $s = 19; case 19: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } Properties.copy(i.info, _r$1); /* } */ case 18: - _1 = (x = i.rb, (x.$ptr_ss || (x.$ptr_ss = new ptrType$1(function() { return this.$target.ss; }, function($v) { this.$target.ss = $v; }, x)))).next($clone(i.info, Properties)); + _1 = (x = i.rb, (x.$ptr_ss || (x.$ptr_ss = new ptrType$2(function() { return this.$target.ss; }, function($v) { this.$target.ss = $v; }, x)))).next($clone(i.info, Properties)); if (_1 === (2)) { i.next = nextCGJDecompose; if (outp > 0) { @@ -271719,7 +274224,7 @@ $packages["vendor/golang.org/x/text/unicode/norm"] = (function() { prevCC$1 = i.info.tccc; _r$2 = i.rb.f.info($clone(i.rb.src, input), i.p); /* */ $s = 23; case 23: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } Properties.copy(i.info, _r$2); - v = (x$1 = i.rb, (x$1.$ptr_ss || (x$1.$ptr_ss = new ptrType$1(function() { return this.$target.ss; }, function($v) { this.$target.ss = $v; }, x$1)))).next($clone(i.info, Properties)); + v = (x$1 = i.rb, (x$1.$ptr_ss || (x$1.$ptr_ss = new ptrType$2(function() { return this.$target.ss; }, function($v) { this.$target.ss = $v; }, x$1)))).next($clone(i.info, Properties)); if (v === 1) { /* break; */ $s = 2; continue; } else if (v === 2) { @@ -271766,7 +274271,7 @@ $packages["vendor/golang.org/x/text/unicode/norm"] = (function() { if (i.info.ccc === 0) { /* break; */ $s = 2; continue; } - s = (x = i.rb, (x.$ptr_ss || (x.$ptr_ss = new ptrType$1(function() { return this.$target.ss; }, function($v) { this.$target.ss = $v; }, x)))).next($clone(i.info, Properties)); + s = (x = i.rb, (x.$ptr_ss || (x.$ptr_ss = new ptrType$2(function() { return this.$target.ss; }, function($v) { this.$target.ss = $v; }, x)))).next($clone(i.info, Properties)); if (s === 2) { i.next = nextCGJDecompose; /* break; */ $s = 2; continue; @@ -271782,7 +274287,7 @@ $packages["vendor/golang.org/x/text/unicode/norm"] = (function() { i.rb.ss = 0; i.rb.insertCGJ(); i.next = nextDecomposed; - (x = i.rb, (x.$ptr_ss || (x.$ptr_ss = new ptrType$1(function() { return this.$target.ss; }, function($v) { this.$target.ss = $v; }, x)))).first($clone(i.info, Properties)); + (x = i.rb, (x.$ptr_ss || (x.$ptr_ss = new ptrType$2(function() { return this.$target.ss; }, function($v) { this.$target.ss = $v; }, x)))).first($clone(i.info, Properties)); _r = doNormDecomposed(i); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } buf = _r; $s = -1; return buf; @@ -271823,7 +274328,7 @@ $packages["vendor/golang.org/x/text/unicode/norm"] = (function() { } _r = i.rb.f.info($clone(i.rb.src, input), i.p); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } Properties.copy(i.info, _r); - v = (x = i.rb, (x.$ptr_ss || (x.$ptr_ss = new ptrType$1(function() { return this.$target.ss; }, function($v) { this.$target.ss = $v; }, x)))).next($clone(i.info, Properties)); + v = (x = i.rb, (x.$ptr_ss || (x.$ptr_ss = new ptrType$2(function() { return this.$target.ss; }, function($v) { this.$target.ss = $v; }, x)))).next($clone(i.info, Properties)); if (v === 1) { /* break; */ $s = 2; continue; } else if (v === 2) { @@ -271842,7 +274347,7 @@ $packages["vendor/golang.org/x/text/unicode/norm"] = (function() { i.p = startp; _r$1 = i.rb.f.info($clone(i.rb.src, input), i.p); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } Properties.copy(i.info, _r$1); - (x$1 = i.rb, (x$1.$ptr_ss || (x$1.$ptr_ss = new ptrType$1(function() { return this.$target.ss; }, function($v) { this.$target.ss = $v; }, x$1)))).first($clone(i.info, Properties)); + (x$1 = i.rb, (x$1.$ptr_ss || (x$1.$ptr_ss = new ptrType$2(function() { return this.$target.ss; }, function($v) { this.$target.ss = $v; }, x$1)))).first($clone(i.info, Properties)); /* */ if ($clone(i.info, Properties).multiSegment()) { $s = 10; continue; } /* */ $s = 11; continue; /* if ($clone(i.info, Properties).multiSegment()) { */ case 10: @@ -271856,7 +274361,7 @@ $packages["vendor/golang.org/x/text/unicode/norm"] = (function() { $24r = _r$3; $s = 15; case 15: return $24r; /* } */ case 11: - (x$2 = i.rb, (x$2.$ptr_ss || (x$2.$ptr_ss = new ptrType$1(function() { return this.$target.ss; }, function($v) { this.$target.ss = $v; }, x$2)))).first($clone(i.info, Properties)); + (x$2 = i.rb, (x$2.$ptr_ss || (x$2.$ptr_ss = new ptrType$2(function() { return this.$target.ss; }, function($v) { this.$target.ss = $v; }, x$2)))).first($clone(i.info, Properties)); $r = i.rb.insertUnsafe($clone(i.rb.src, input), i.p, $clone(i.info, Properties)); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _r$4 = doNormComposed(i); /* */ $s = 17; case 17: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } $24r$1 = _r$4; @@ -271874,7 +274379,7 @@ $packages["vendor/golang.org/x/text/unicode/norm"] = (function() { } _r = i.rb.f.info($clone(i.rb.src, input), i.p); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } Properties.copy(i.info, _r); - s = (x = i.rb, (x.$ptr_ss || (x.$ptr_ss = new ptrType$1(function() { return this.$target.ss; }, function($v) { this.$target.ss = $v; }, x)))).next($clone(i.info, Properties)); + s = (x = i.rb, (x.$ptr_ss || (x.$ptr_ss = new ptrType$2(function() { return this.$target.ss; }, function($v) { this.$target.ss = $v; }, x)))).next($clone(i.info, Properties)); if (s === 1) { /* break; */ $s = 2; continue; } else if (s === 2) { @@ -271895,7 +274400,7 @@ $packages["vendor/golang.org/x/text/unicode/norm"] = (function() { i.rb.ss = 0; i.rb.insertCGJ(); i.next = nextComposed; - (x = i.rb, (x.$ptr_ss || (x.$ptr_ss = new ptrType$1(function() { return this.$target.ss; }, function($v) { this.$target.ss = $v; }, x)))).first($clone(i.info, Properties)); + (x = i.rb, (x.$ptr_ss || (x.$ptr_ss = new ptrType$2(function() { return this.$target.ss; }, function($v) { this.$target.ss = $v; }, x)))).first($clone(i.info, Properties)); $r = i.rb.insertUnsafe($clone(i.rb.src, input), i.p, $clone(i.info, Properties)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _r = doNormComposed(i); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $24r = _r; @@ -272077,7 +274582,7 @@ $packages["vendor/golang.org/x/text/unicode/norm"] = (function() { $ptrType(Properties).prototype.multiSegment = function multiSegment() { var p; p = this; - return p.index >= 6256 && p.index < 12151; + return p.index >= 6554 && p.index < 12449; }; Properties.prototype.multiSegment = function(...$args) { return this.$val.multiSegment(...$args); }; $ptrType(Properties).prototype.nLeadingNonStarters = function nLeadingNonStarters() { @@ -272113,7 +274618,7 @@ $packages["vendor/golang.org/x/text/unicode/norm"] = (function() { $ptrType(Properties).prototype.CCC = function CCC() { var p, x; p = this; - if (p.index >= 19087) { + if (p.index >= 19385) { return 0; } return (x = p.ccc, ((x < 0 || x >= ccc.length) ? ($throwRuntimeError("index out of range"), undefined) : ccc[x])); @@ -272203,14 +274708,14 @@ $packages["vendor/golang.org/x/text/unicode/norm"] = (function() { h = ((v < 0 || v >= decomps.length) ? ($throwRuntimeError("index out of range"), undefined) : decomps[v]); f = (((((((h & 192) >>> 0) << 24 >>> 24)) >>> 2 << 24 >>> 24)) | 4) >>> 0; p$1 = new Properties.ptr(0, ((sz << 24 >>> 24)), 0, 0, 0, f, v); - if (v >= 11435) { + if (v >= 11733) { v = v + ((((((h & 63) >>> 0) << 16 >>> 16)) + 1 << 16 >>> 16)) << 16 >>> 16; c = ((v < 0 || v >= decomps.length) ? ($throwRuntimeError("index out of range"), undefined) : decomps[v]); p$1.tccc = c >>> 2 << 24 >>> 24; p$1.flags = (p$1.flags | (((((c & 3) >>> 0) << 24 >>> 24)))) >>> 0; - if (v >= 18885) { + if (v >= 19183) { p$1.nLead = (c & 3) >>> 0; - if (v >= 19126) { + if (v >= 19424) { p$1.flags = (p$1.flags & (3)) >>> 0; p$1.index = 0; return p$1; @@ -272266,17 +274771,17 @@ $packages["vendor/golang.org/x/text/unicode/norm"] = (function() { }; $ptrType(streamSafe).prototype.isMax = function(...$args) { return new streamSafe(this.$get()).isMax(...$args); }; $ptrType(reorderBuffer).prototype.init = function init(f, src) { - var f, rb, src; + var f, rb, src, x; rb = this; - formInfo.copy(rb.f, ((f < 0 || f >= formTable.$length) ? ($throwRuntimeError("index out of range"), undefined) : formTable.$array[formTable.$offset + f])); + formInfo.copy(rb.f, (x = ((f < 0 || f >= formTable.$length) ? ($throwRuntimeError("index out of range"), undefined) : formTable.$array[formTable.$offset + f]), (x === ptrType.nil && $throwNilPointerError(), x))); rb.src.setBytes(src); rb.nsrc = src.$length; rb.ss = 0; }; $ptrType(reorderBuffer).prototype.initString = function initString(f, src) { - var f, rb, src; + var f, rb, src, x; rb = this; - formInfo.copy(rb.f, ((f < 0 || f >= formTable.$length) ? ($throwRuntimeError("index out of range"), undefined) : formTable.$array[formTable.$offset + f])); + formInfo.copy(rb.f, (x = ((f < 0 || f >= formTable.$length) ? ($throwRuntimeError("index out of range"), undefined) : formTable.$array[formTable.$offset + f]), (x === ptrType.nil && $throwNilPointerError(), x))); rb.src.setString(src); rb.nsrc = src.length; rb.ss = 0; @@ -272612,19 +275117,19 @@ $packages["vendor/golang.org/x/text/unicode/norm"] = (function() { $s = -1; return; /* */ } return; } var $f = {$blk: compose, $c: true, $r, _tmp, _tmp$1, b, blocked, bn, cccB, cccC, combined, i, ii, k, rb, s, x, $s};return $f; }; - ptrType$2.methods = [{prop: "lookup", name: "lookup", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([$Uint32, $Uint8], [$Uint16], false)}]; - ptrType$3.methods = [{prop: "lookup", name: "lookup", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([sliceType$4], [$Uint16, $Int], false)}, {prop: "lookupUnsafe", name: "lookupUnsafe", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([sliceType$4], [$Uint16], false)}, {prop: "lookupString", name: "lookupString", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([$String], [$Uint16, $Int], false)}, {prop: "lookupStringUnsafe", name: "lookupStringUnsafe", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([$String], [$Uint16], false)}, {prop: "lookupValue", name: "lookupValue", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([$Uint32, $Uint8], [$Uint16], false)}]; + ptrType$3.methods = [{prop: "lookup", name: "lookup", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([$Uint32, $Uint8], [$Uint16], false)}]; ptrType$4.methods = [{prop: "lookup", name: "lookup", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([sliceType$4], [$Uint16, $Int], false)}, {prop: "lookupUnsafe", name: "lookupUnsafe", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([sliceType$4], [$Uint16], false)}, {prop: "lookupString", name: "lookupString", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([$String], [$Uint16, $Int], false)}, {prop: "lookupStringUnsafe", name: "lookupStringUnsafe", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([$String], [$Uint16], false)}, {prop: "lookupValue", name: "lookupValue", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([$Uint32, $Uint8], [$Uint16], false)}]; - ptrType$5.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$4], [$Int, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}]; - ptrType$6.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$4], [$Int, $error], false)}]; + ptrType$5.methods = [{prop: "lookup", name: "lookup", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([sliceType$4], [$Uint16, $Int], false)}, {prop: "lookupUnsafe", name: "lookupUnsafe", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([sliceType$4], [$Uint16], false)}, {prop: "lookupString", name: "lookupString", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([$String], [$Uint16, $Int], false)}, {prop: "lookupStringUnsafe", name: "lookupStringUnsafe", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([$String], [$Uint16], false)}, {prop: "lookupValue", name: "lookupValue", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([$Uint32, $Uint8], [$Uint16], false)}]; + ptrType$6.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$4], [$Int, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}]; + ptrType$7.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$4], [$Int, $error], false)}]; Form.methods = [{prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}, {prop: "Transform", name: "Transform", pkg: "", typ: $funcType([sliceType$4, sliceType$4, $Bool], [$Int, $Int, $error], false)}, {prop: "transform", name: "transform", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([sliceType$4, sliceType$4, $Bool], [$Int, $Int, $error], false)}, {prop: "Writer", name: "Writer", pkg: "", typ: $funcType([io.Writer], [io.WriteCloser], false)}, {prop: "Reader", name: "Reader", pkg: "", typ: $funcType([io.Reader], [io.Reader], false)}, {prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([sliceType$4], [sliceType$4], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "IsNormal", name: "IsNormal", pkg: "", typ: $funcType([sliceType$4], [$Bool], false)}, {prop: "IsNormalString", name: "IsNormalString", pkg: "", typ: $funcType([$String], [$Bool], false)}, {prop: "Append", name: "Append", pkg: "", typ: $funcType([sliceType$4, sliceType$4], [sliceType$4], true)}, {prop: "doAppend", name: "doAppend", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([sliceType$4, input, $Int], [sliceType$4], false)}, {prop: "AppendString", name: "AppendString", pkg: "", typ: $funcType([sliceType$4, $String], [sliceType$4], false)}, {prop: "QuickSpan", name: "QuickSpan", pkg: "", typ: $funcType([sliceType$4], [$Int], false)}, {prop: "Span", name: "Span", pkg: "", typ: $funcType([sliceType$4, $Bool], [$Int, $error], false)}, {prop: "SpanString", name: "SpanString", pkg: "", typ: $funcType([$String, $Bool], [$Int, $error], false)}, {prop: "QuickSpanString", name: "QuickSpanString", pkg: "", typ: $funcType([$String], [$Int], false)}, {prop: "FirstBoundary", name: "FirstBoundary", pkg: "", typ: $funcType([sliceType$4], [$Int], false)}, {prop: "firstBoundary", name: "firstBoundary", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([input, $Int], [$Int], false)}, {prop: "FirstBoundaryInString", name: "FirstBoundaryInString", pkg: "", typ: $funcType([$String], [$Int], false)}, {prop: "NextBoundary", name: "NextBoundary", pkg: "", typ: $funcType([sliceType$4, $Bool], [$Int], false)}, {prop: "NextBoundaryInString", name: "NextBoundaryInString", pkg: "", typ: $funcType([$String, $Bool], [$Int], false)}, {prop: "nextBoundary", name: "nextBoundary", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([input, $Int, $Bool], [$Int], false)}, {prop: "LastBoundary", name: "LastBoundary", pkg: "", typ: $funcType([sliceType$4], [$Int], false)}, {prop: "Properties", name: "Properties", pkg: "", typ: $funcType([sliceType$4], [Properties], false)}, {prop: "PropertiesString", name: "PropertiesString", pkg: "", typ: $funcType([$String], [Properties], false)}]; - ptrType$7.methods = [{prop: "Init", name: "Init", pkg: "", typ: $funcType([Form, sliceType$4], [], false)}, {prop: "InitString", name: "InitString", pkg: "", typ: $funcType([Form, $String], [], false)}, {prop: "Seek", name: "Seek", pkg: "", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "returnSlice", name: "returnSlice", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([$Int, $Int], [sliceType$4], false)}, {prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "setDone", name: "setDone", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([], [], false)}, {prop: "Done", name: "Done", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Next", name: "Next", pkg: "", typ: $funcType([], [sliceType$4], false)}]; - ptrType$8.methods = [{prop: "setBytes", name: "setBytes", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([sliceType$4], [], false)}, {prop: "setString", name: "setString", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([$String], [], false)}, {prop: "_byte", name: "_byte", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([$Int], [$Uint8], false)}, {prop: "skipASCII", name: "skipASCII", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([$Int, $Int], [$Int], false)}, {prop: "skipContinuationBytes", name: "skipContinuationBytes", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([$Int], [$Int], false)}, {prop: "appendSlice", name: "appendSlice", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([sliceType$4, $Int, $Int], [sliceType$4], false)}, {prop: "copySlice", name: "copySlice", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([sliceType$4, $Int, $Int], [$Int], false)}, {prop: "charinfoNFC", name: "charinfoNFC", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([$Int], [$Uint16, $Int], false)}, {prop: "charinfoNFKC", name: "charinfoNFKC", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([$Int], [$Uint16, $Int], false)}, {prop: "hangul", name: "hangul", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([$Int], [$Int32], false)}]; + ptrType$8.methods = [{prop: "Init", name: "Init", pkg: "", typ: $funcType([Form, sliceType$4], [], false)}, {prop: "InitString", name: "InitString", pkg: "", typ: $funcType([Form, $String], [], false)}, {prop: "Seek", name: "Seek", pkg: "", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "returnSlice", name: "returnSlice", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([$Int, $Int], [sliceType$4], false)}, {prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "setDone", name: "setDone", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([], [], false)}, {prop: "Done", name: "Done", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Next", name: "Next", pkg: "", typ: $funcType([], [sliceType$4], false)}]; + ptrType$9.methods = [{prop: "setBytes", name: "setBytes", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([sliceType$4], [], false)}, {prop: "setString", name: "setString", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([$String], [], false)}, {prop: "_byte", name: "_byte", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([$Int], [$Uint8], false)}, {prop: "skipASCII", name: "skipASCII", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([$Int, $Int], [$Int], false)}, {prop: "skipContinuationBytes", name: "skipContinuationBytes", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([$Int], [$Int], false)}, {prop: "appendSlice", name: "appendSlice", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([sliceType$4, $Int, $Int], [sliceType$4], false)}, {prop: "copySlice", name: "copySlice", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([sliceType$4, $Int, $Int], [$Int], false)}, {prop: "charinfoNFC", name: "charinfoNFC", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([$Int], [$Uint16, $Int], false)}, {prop: "charinfoNFKC", name: "charinfoNFKC", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([$Int], [$Uint16, $Int], false)}, {prop: "hangul", name: "hangul", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([$Int], [$Int32], false)}]; Properties.methods = [{prop: "BoundaryBefore", name: "BoundaryBefore", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "BoundaryAfter", name: "BoundaryAfter", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "isYesC", name: "isYesC", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([], [$Bool], false)}, {prop: "isYesD", name: "isYesD", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([], [$Bool], false)}, {prop: "combinesForward", name: "combinesForward", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([], [$Bool], false)}, {prop: "combinesBackward", name: "combinesBackward", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([], [$Bool], false)}, {prop: "hasDecomposition", name: "hasDecomposition", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([], [$Bool], false)}, {prop: "isInert", name: "isInert", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([], [$Bool], false)}, {prop: "multiSegment", name: "multiSegment", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([], [$Bool], false)}, {prop: "nLeadingNonStarters", name: "nLeadingNonStarters", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([], [$Uint8], false)}, {prop: "nTrailingNonStarters", name: "nTrailingNonStarters", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([], [$Uint8], false)}, {prop: "Decomposition", name: "Decomposition", pkg: "", typ: $funcType([], [sliceType$4], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "CCC", name: "CCC", pkg: "", typ: $funcType([], [$Uint8], false)}, {prop: "LeadCCC", name: "LeadCCC", pkg: "", typ: $funcType([], [$Uint8], false)}, {prop: "TrailCCC", name: "TrailCCC", pkg: "", typ: $funcType([], [$Uint8], false)}]; ptrType.methods = [{prop: "quickSpan", name: "quickSpan", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([input, $Int, $Int, $Bool], [$Int, $Bool], false)}]; streamSafe.methods = [{prop: "isMax", name: "isMax", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([], [$Bool], false)}]; - ptrType$1.methods = [{prop: "first", name: "first", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([Properties], [], false)}, {prop: "next", name: "next", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([Properties], [ssState], false)}, {prop: "backwards", name: "backwards", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([Properties], [ssState], false)}]; - ptrType$9.methods = [{prop: "init", name: "init", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([Form, sliceType$4], [], false)}, {prop: "initString", name: "initString", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([Form, $String], [], false)}, {prop: "setFlusher", name: "setFlusher", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([sliceType$4, funcType], [], false)}, {prop: "reset", name: "reset", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([], [], false)}, {prop: "doFlush", name: "doFlush", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([], [$Bool], false)}, {prop: "flush", name: "flush", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([sliceType$4], [sliceType$4], false)}, {prop: "flushCopy", name: "flushCopy", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([sliceType$4], [$Int], false)}, {prop: "insertOrdered", name: "insertOrdered", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([Properties], [], false)}, {prop: "insertFlush", name: "insertFlush", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([input, $Int, Properties], [insertErr], false)}, {prop: "insertUnsafe", name: "insertUnsafe", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([input, $Int, Properties], [], false)}, {prop: "insertDecomposed", name: "insertDecomposed", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([sliceType$4], [insertErr], false)}, {prop: "insertSingle", name: "insertSingle", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([input, $Int, Properties], [], false)}, {prop: "insertCGJ", name: "insertCGJ", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([], [], false)}, {prop: "appendRune", name: "appendRune", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([$Int32], [], false)}, {prop: "assignRune", name: "assignRune", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([$Int, $Int32], [], false)}, {prop: "runeAt", name: "runeAt", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([$Int], [$Int32], false)}, {prop: "bytesAt", name: "bytesAt", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([$Int], [sliceType$4], false)}, {prop: "decomposeHangul", name: "decomposeHangul", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([$Int32], [], false)}, {prop: "combineHangul", name: "combineHangul", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([$Int, $Int, $Int], [], false)}, {prop: "compose", name: "compose", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([], [], false)}]; + ptrType$2.methods = [{prop: "first", name: "first", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([Properties], [], false)}, {prop: "next", name: "next", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([Properties], [ssState], false)}, {prop: "backwards", name: "backwards", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([Properties], [ssState], false)}]; + ptrType$1.methods = [{prop: "init", name: "init", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([Form, sliceType$4], [], false)}, {prop: "initString", name: "initString", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([Form, $String], [], false)}, {prop: "setFlusher", name: "setFlusher", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([sliceType$4, funcType], [], false)}, {prop: "reset", name: "reset", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([], [], false)}, {prop: "doFlush", name: "doFlush", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([], [$Bool], false)}, {prop: "flush", name: "flush", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([sliceType$4], [sliceType$4], false)}, {prop: "flushCopy", name: "flushCopy", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([sliceType$4], [$Int], false)}, {prop: "insertOrdered", name: "insertOrdered", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([Properties], [], false)}, {prop: "insertFlush", name: "insertFlush", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([input, $Int, Properties], [insertErr], false)}, {prop: "insertUnsafe", name: "insertUnsafe", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([input, $Int, Properties], [], false)}, {prop: "insertDecomposed", name: "insertDecomposed", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([sliceType$4], [insertErr], false)}, {prop: "insertSingle", name: "insertSingle", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([input, $Int, Properties], [], false)}, {prop: "insertCGJ", name: "insertCGJ", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([], [], false)}, {prop: "appendRune", name: "appendRune", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([$Int32], [], false)}, {prop: "assignRune", name: "assignRune", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([$Int, $Int32], [], false)}, {prop: "runeAt", name: "runeAt", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([$Int], [$Int32], false)}, {prop: "bytesAt", name: "bytesAt", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([$Int], [sliceType$4], false)}, {prop: "decomposeHangul", name: "decomposeHangul", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([$Int32], [], false)}, {prop: "combineHangul", name: "combineHangul", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([$Int, $Int, $Int], [], false)}, {prop: "compose", name: "compose", pkg: "vendor/golang.org/x/text/unicode/norm", typ: $funcType([], [], false)}]; valueRange.init("vendor/golang.org/x/text/unicode/norm", [{prop: "value", name: "value", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "lo", name: "lo", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "hi", name: "hi", embedded: false, exported: false, typ: $Uint8, tag: ""}]); sparseBlocks.init("vendor/golang.org/x/text/unicode/norm", [{prop: "values", name: "values", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "offset", name: "offset", embedded: false, exported: false, typ: sliceType$1, tag: ""}]); nfcTrie.init("", []); @@ -272632,7 +275137,7 @@ $packages["vendor/golang.org/x/text/unicode/norm"] = (function() { normWriter.init("vendor/golang.org/x/text/unicode/norm", [{prop: "rb", name: "rb", embedded: false, exported: false, typ: reorderBuffer, tag: ""}, {prop: "w", name: "w", embedded: false, exported: false, typ: io.Writer, tag: ""}, {prop: "buf", name: "buf", embedded: false, exported: false, typ: sliceType$4, tag: ""}]); normReader.init("vendor/golang.org/x/text/unicode/norm", [{prop: "rb", name: "rb", embedded: false, exported: false, typ: reorderBuffer, tag: ""}, {prop: "r", name: "r", embedded: false, exported: false, typ: io.Reader, tag: ""}, {prop: "inbuf", name: "inbuf", embedded: false, exported: false, typ: sliceType$4, tag: ""}, {prop: "outbuf", name: "outbuf", embedded: false, exported: false, typ: sliceType$4, tag: ""}, {prop: "bufStart", name: "bufStart", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastBoundary", name: "lastBoundary", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}]); Iter.init("vendor/golang.org/x/text/unicode/norm", [{prop: "rb", name: "rb", embedded: false, exported: false, typ: reorderBuffer, tag: ""}, {prop: "buf", name: "buf", embedded: false, exported: false, typ: arrayType$1, tag: ""}, {prop: "info", name: "info", embedded: false, exported: false, typ: Properties, tag: ""}, {prop: "next", name: "next", embedded: false, exported: false, typ: iterFunc, tag: ""}, {prop: "asciiF", name: "asciiF", embedded: false, exported: false, typ: iterFunc, tag: ""}, {prop: "p", name: "p", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "multiSeg", name: "multiSeg", embedded: false, exported: false, typ: sliceType$4, tag: ""}]); - iterFunc.init([ptrType$7], [sliceType$4], false); + iterFunc.init([ptrType$8], [sliceType$4], false); input.init("vendor/golang.org/x/text/unicode/norm", [{prop: "str", name: "str", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "bytes", name: "bytes", embedded: false, exported: false, typ: sliceType$4, tag: ""}]); Properties.init("vendor/golang.org/x/text/unicode/norm", [{prop: "pos", name: "pos", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "ccc", name: "ccc", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "tccc", name: "tccc", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "nLead", name: "nLead", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "flags", name: "flags", embedded: false, exported: false, typ: qcInfo, tag: ""}, {prop: "index", name: "index", embedded: false, exported: false, typ: $Uint16, tag: ""}]); lookupFunc.init([input, $Int], [Properties], false); @@ -272654,16 +275159,16 @@ $packages["vendor/golang.org/x/text/unicode/norm"] = (function() { nfkcData = newNfkcTrie(0); errs = new sliceType([$ifaceNil, transform.ErrShortDst, transform.ErrShortSrc]); ccc = $toNativeArray($kindUint8, [0, 1, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 84, 91, 103, 107, 118, 122, 129, 130, 132, 202, 214, 216, 218, 220, 222, 224, 226, 228, 230, 232, 233, 234, 240]); - decomps = $toNativeArray($kindUint8, [0, 65, 32, 65, 33, 65, 34, 65, 35, 65, 36, 65, 37, 65, 38, 65, 39, 65, 40, 65, 41, 65, 42, 65, 43, 65, 44, 65, 45, 65, 46, 65, 47, 65, 48, 65, 49, 65, 50, 65, 51, 65, 52, 65, 53, 65, 54, 65, 55, 65, 56, 65, 57, 65, 58, 65, 59, 65, 60, 65, 61, 65, 62, 65, 63, 65, 64, 65, 65, 65, 66, 65, 67, 65, 68, 65, 69, 65, 70, 65, 71, 65, 72, 65, 73, 65, 74, 65, 75, 65, 76, 65, 77, 65, 78, 65, 79, 65, 80, 65, 81, 65, 82, 65, 83, 65, 84, 65, 85, 65, 86, 65, 87, 65, 88, 65, 89, 65, 90, 65, 91, 65, 92, 65, 93, 65, 94, 65, 95, 65, 96, 65, 97, 65, 98, 65, 99, 65, 100, 65, 101, 65, 102, 65, 103, 65, 104, 65, 105, 65, 106, 65, 107, 65, 108, 65, 109, 65, 110, 65, 111, 65, 112, 65, 113, 65, 114, 65, 115, 65, 116, 65, 117, 65, 118, 65, 119, 65, 120, 65, 121, 65, 122, 65, 123, 65, 124, 65, 125, 65, 126, 66, 194, 162, 66, 194, 163, 66, 194, 165, 66, 194, 166, 66, 194, 172, 66, 194, 183, 66, 195, 134, 66, 195, 176, 66, 196, 166, 66, 196, 167, 66, 196, 177, 66, 197, 139, 66, 197, 147, 66, 198, 142, 66, 198, 144, 66, 198, 171, 66, 200, 162, 66, 200, 183, 66, 201, 144, 66, 201, 145, 66, 201, 146, 66, 201, 148, 66, 201, 149, 66, 201, 153, 66, 201, 155, 66, 201, 156, 66, 201, 159, 66, 201, 161, 66, 201, 163, 66, 201, 165, 66, 201, 166, 66, 201, 168, 66, 201, 169, 66, 201, 170, 66, 201, 171, 66, 201, 173, 66, 201, 175, 66, 201, 176, 66, 201, 177, 66, 201, 178, 66, 201, 179, 66, 201, 180, 66, 201, 181, 66, 201, 184, 66, 201, 185, 66, 201, 187, 66, 202, 129, 66, 202, 130, 66, 202, 131, 66, 202, 137, 66, 202, 138, 66, 202, 139, 66, 202, 140, 66, 202, 141, 66, 202, 144, 66, 202, 145, 66, 202, 146, 66, 202, 149, 66, 202, 157, 66, 202, 159, 66, 202, 185, 66, 206, 145, 66, 206, 146, 66, 206, 147, 66, 206, 148, 66, 206, 149, 66, 206, 150, 66, 206, 151, 66, 206, 152, 66, 206, 153, 66, 206, 154, 66, 206, 155, 66, 206, 156, 66, 206, 157, 66, 206, 158, 66, 206, 159, 66, 206, 160, 66, 206, 161, 66, 206, 163, 66, 206, 164, 66, 206, 165, 66, 206, 166, 66, 206, 167, 66, 206, 168, 66, 206, 169, 66, 206, 177, 66, 206, 178, 66, 206, 179, 66, 206, 180, 66, 206, 181, 66, 206, 182, 66, 206, 183, 66, 206, 184, 66, 206, 185, 66, 206, 186, 66, 206, 187, 66, 206, 188, 66, 206, 189, 66, 206, 190, 66, 206, 191, 66, 207, 128, 66, 207, 129, 66, 207, 130, 66, 207, 131, 66, 207, 132, 66, 207, 133, 66, 207, 134, 66, 207, 135, 66, 207, 136, 66, 207, 137, 66, 207, 156, 66, 207, 157, 66, 208, 189, 66, 209, 138, 66, 209, 140, 66, 215, 144, 66, 215, 145, 66, 215, 146, 66, 215, 147, 66, 215, 148, 66, 215, 155, 66, 215, 156, 66, 215, 157, 66, 215, 162, 66, 215, 168, 66, 215, 170, 66, 216, 161, 66, 216, 167, 66, 216, 168, 66, 216, 169, 66, 216, 170, 66, 216, 171, 66, 216, 172, 66, 216, 173, 66, 216, 174, 66, 216, 175, 66, 216, 176, 66, 216, 177, 66, 216, 178, 66, 216, 179, 66, 216, 180, 66, 216, 181, 66, 216, 182, 66, 216, 183, 66, 216, 184, 66, 216, 185, 66, 216, 186, 66, 217, 129, 66, 217, 130, 66, 217, 131, 66, 217, 132, 66, 217, 133, 66, 217, 134, 66, 217, 135, 66, 217, 136, 66, 217, 137, 66, 217, 138, 66, 217, 174, 66, 217, 175, 66, 217, 177, 66, 217, 185, 66, 217, 186, 66, 217, 187, 66, 217, 190, 66, 217, 191, 66, 218, 128, 66, 218, 131, 66, 218, 132, 66, 218, 134, 66, 218, 135, 66, 218, 136, 66, 218, 140, 66, 218, 141, 66, 218, 142, 66, 218, 145, 66, 218, 152, 66, 218, 161, 66, 218, 164, 66, 218, 166, 66, 218, 169, 66, 218, 173, 66, 218, 175, 66, 218, 177, 66, 218, 179, 66, 218, 186, 66, 218, 187, 66, 218, 190, 66, 219, 129, 66, 219, 133, 66, 219, 134, 66, 219, 135, 66, 219, 136, 66, 219, 137, 66, 219, 139, 66, 219, 140, 66, 219, 144, 66, 219, 146, 67, 224, 188, 139, 67, 225, 131, 156, 67, 225, 132, 128, 67, 225, 132, 129, 67, 225, 132, 130, 67, 225, 132, 131, 67, 225, 132, 132, 67, 225, 132, 133, 67, 225, 132, 134, 67, 225, 132, 135, 67, 225, 132, 136, 67, 225, 132, 137, 67, 225, 132, 138, 67, 225, 132, 139, 67, 225, 132, 140, 67, 225, 132, 141, 67, 225, 132, 142, 67, 225, 132, 143, 67, 225, 132, 144, 67, 225, 132, 145, 67, 225, 132, 146, 67, 225, 132, 148, 67, 225, 132, 149, 67, 225, 132, 154, 67, 225, 132, 156, 67, 225, 132, 157, 67, 225, 132, 158, 67, 225, 132, 160, 67, 225, 132, 161, 67, 225, 132, 162, 67, 225, 132, 163, 67, 225, 132, 167, 67, 225, 132, 169, 67, 225, 132, 171, 67, 225, 132, 172, 67, 225, 132, 173, 67, 225, 132, 174, 67, 225, 132, 175, 67, 225, 132, 178, 67, 225, 132, 182, 67, 225, 133, 128, 67, 225, 133, 135, 67, 225, 133, 140, 67, 225, 133, 151, 67, 225, 133, 152, 67, 225, 133, 153, 67, 225, 133, 160, 67, 225, 134, 132, 67, 225, 134, 133, 67, 225, 134, 136, 67, 225, 134, 145, 67, 225, 134, 146, 67, 225, 134, 148, 67, 225, 134, 158, 67, 225, 134, 161, 67, 225, 135, 135, 67, 225, 135, 136, 67, 225, 135, 140, 67, 225, 135, 142, 67, 225, 135, 147, 67, 225, 135, 151, 67, 225, 135, 153, 67, 225, 135, 157, 67, 225, 135, 159, 67, 225, 135, 177, 67, 225, 135, 178, 67, 225, 180, 130, 67, 225, 180, 150, 67, 225, 180, 151, 67, 225, 180, 156, 67, 225, 180, 157, 67, 225, 180, 165, 67, 225, 181, 187, 67, 225, 182, 133, 67, 226, 128, 130, 67, 226, 128, 131, 67, 226, 128, 144, 67, 226, 128, 147, 67, 226, 128, 148, 67, 226, 130, 169, 67, 226, 134, 144, 67, 226, 134, 145, 67, 226, 134, 146, 67, 226, 134, 147, 67, 226, 136, 130, 67, 226, 136, 135, 67, 226, 136, 145, 67, 226, 136, 146, 67, 226, 148, 130, 67, 226, 150, 160, 67, 226, 151, 139, 67, 226, 166, 133, 67, 226, 166, 134, 67, 226, 181, 161, 67, 227, 128, 129, 67, 227, 128, 130, 67, 227, 128, 136, 67, 227, 128, 137, 67, 227, 128, 138, 67, 227, 128, 139, 67, 227, 128, 140, 67, 227, 128, 141, 67, 227, 128, 142, 67, 227, 128, 143, 67, 227, 128, 144, 67, 227, 128, 145, 67, 227, 128, 146, 67, 227, 128, 148, 67, 227, 128, 149, 67, 227, 128, 150, 67, 227, 128, 151, 67, 227, 130, 161, 67, 227, 130, 162, 67, 227, 130, 163, 67, 227, 130, 164, 67, 227, 130, 165, 67, 227, 130, 166, 67, 227, 130, 167, 67, 227, 130, 168, 67, 227, 130, 169, 67, 227, 130, 170, 67, 227, 130, 171, 67, 227, 130, 173, 67, 227, 130, 175, 67, 227, 130, 177, 67, 227, 130, 179, 67, 227, 130, 181, 67, 227, 130, 183, 67, 227, 130, 185, 67, 227, 130, 187, 67, 227, 130, 189, 67, 227, 130, 191, 67, 227, 131, 129, 67, 227, 131, 131, 67, 227, 131, 132, 67, 227, 131, 134, 67, 227, 131, 136, 67, 227, 131, 138, 67, 227, 131, 139, 67, 227, 131, 140, 67, 227, 131, 141, 67, 227, 131, 142, 67, 227, 131, 143, 67, 227, 131, 146, 67, 227, 131, 149, 67, 227, 131, 152, 67, 227, 131, 155, 67, 227, 131, 158, 67, 227, 131, 159, 67, 227, 131, 160, 67, 227, 131, 161, 67, 227, 131, 162, 67, 227, 131, 163, 67, 227, 131, 164, 67, 227, 131, 165, 67, 227, 131, 166, 67, 227, 131, 167, 67, 227, 131, 168, 67, 227, 131, 169, 67, 227, 131, 170, 67, 227, 131, 171, 67, 227, 131, 172, 67, 227, 131, 173, 67, 227, 131, 175, 67, 227, 131, 176, 67, 227, 131, 177, 67, 227, 131, 178, 67, 227, 131, 179, 67, 227, 131, 187, 67, 227, 131, 188, 67, 227, 146, 158, 67, 227, 146, 185, 67, 227, 146, 187, 67, 227, 147, 159, 67, 227, 148, 149, 67, 227, 155, 174, 67, 227, 155, 188, 67, 227, 158, 129, 67, 227, 160, 175, 67, 227, 161, 162, 67, 227, 161, 188, 67, 227, 163, 135, 67, 227, 163, 163, 67, 227, 164, 156, 67, 227, 164, 186, 67, 227, 168, 174, 67, 227, 169, 172, 67, 227, 171, 164, 67, 227, 172, 136, 67, 227, 172, 153, 67, 227, 173, 137, 67, 227, 174, 157, 67, 227, 176, 152, 67, 227, 177, 142, 67, 227, 180, 179, 67, 227, 182, 150, 67, 227, 186, 172, 67, 227, 186, 184, 67, 227, 188, 155, 67, 227, 191, 188, 67, 228, 128, 136, 67, 228, 128, 152, 67, 228, 128, 185, 67, 228, 129, 134, 67, 228, 130, 150, 67, 228, 131, 163, 67, 228, 132, 175, 67, 228, 136, 130, 67, 228, 136, 167, 67, 228, 138, 160, 67, 228, 140, 129, 67, 228, 140, 180, 67, 228, 141, 153, 67, 228, 143, 149, 67, 228, 143, 153, 67, 228, 144, 139, 67, 228, 145, 171, 67, 228, 148, 171, 67, 228, 149, 157, 67, 228, 149, 161, 67, 228, 149, 171, 67, 228, 151, 151, 67, 228, 151, 185, 67, 228, 152, 181, 67, 228, 154, 190, 67, 228, 155, 135, 67, 228, 166, 149, 67, 228, 167, 166, 67, 228, 169, 174, 67, 228, 169, 182, 67, 228, 170, 178, 67, 228, 172, 179, 67, 228, 175, 142, 67, 228, 179, 142, 67, 228, 179, 173, 67, 228, 179, 184, 67, 228, 181, 150, 67, 228, 184, 128, 67, 228, 184, 129, 67, 228, 184, 131, 67, 228, 184, 137, 67, 228, 184, 138, 67, 228, 184, 139, 67, 228, 184, 141, 67, 228, 184, 153, 67, 228, 184, 166, 67, 228, 184, 168, 67, 228, 184, 173, 67, 228, 184, 178, 67, 228, 184, 182, 67, 228, 184, 184, 67, 228, 184, 185, 67, 228, 184, 189, 67, 228, 184, 191, 67, 228, 185, 129, 67, 228, 185, 153, 67, 228, 185, 157, 67, 228, 186, 130, 67, 228, 186, 133, 67, 228, 186, 134, 67, 228, 186, 140, 67, 228, 186, 148, 67, 228, 186, 160, 67, 228, 186, 164, 67, 228, 186, 174, 67, 228, 186, 186, 67, 228, 187, 128, 67, 228, 187, 140, 67, 228, 187, 164, 67, 228, 188, 129, 67, 228, 188, 145, 67, 228, 189, 160, 67, 228, 190, 128, 67, 228, 190, 134, 67, 228, 190, 139, 67, 228, 190, 174, 67, 228, 190, 187, 67, 228, 190, 191, 67, 229, 128, 130, 67, 229, 128, 171, 67, 229, 129, 186, 67, 229, 130, 153, 67, 229, 131, 143, 67, 229, 131, 154, 67, 229, 131, 167, 67, 229, 132, 170, 67, 229, 132, 191, 67, 229, 133, 128, 67, 229, 133, 133, 67, 229, 133, 141, 67, 229, 133, 148, 67, 229, 133, 164, 67, 229, 133, 165, 67, 229, 133, 167, 67, 229, 133, 168, 67, 229, 133, 169, 67, 229, 133, 171, 67, 229, 133, 173, 67, 229, 133, 183, 67, 229, 134, 128, 67, 229, 134, 130, 67, 229, 134, 141, 67, 229, 134, 146, 67, 229, 134, 149, 67, 229, 134, 150, 67, 229, 134, 151, 67, 229, 134, 153, 67, 229, 134, 164, 67, 229, 134, 171, 67, 229, 134, 172, 67, 229, 134, 181, 67, 229, 134, 183, 67, 229, 135, 137, 67, 229, 135, 140, 67, 229, 135, 156, 67, 229, 135, 158, 67, 229, 135, 160, 67, 229, 135, 181, 67, 229, 136, 128, 67, 229, 136, 131, 67, 229, 136, 135, 67, 229, 136, 151, 67, 229, 136, 157, 67, 229, 136, 169, 67, 229, 136, 186, 67, 229, 136, 187, 67, 229, 137, 134, 67, 229, 137, 141, 67, 229, 137, 178, 67, 229, 137, 183, 67, 229, 138, 137, 67, 229, 138, 155, 67, 229, 138, 163, 67, 229, 138, 179, 67, 229, 138, 180, 67, 229, 139, 135, 67, 229, 139, 137, 67, 229, 139, 146, 67, 229, 139, 158, 67, 229, 139, 164, 67, 229, 139, 181, 67, 229, 139, 185, 67, 229, 139, 186, 67, 229, 140, 133, 67, 229, 140, 134, 67, 229, 140, 149, 67, 229, 140, 151, 67, 229, 140, 154, 67, 229, 140, 184, 67, 229, 140, 187, 67, 229, 140, 191, 67, 229, 141, 129, 67, 229, 141, 132, 67, 229, 141, 133, 67, 229, 141, 137, 67, 229, 141, 145, 67, 229, 141, 148, 67, 229, 141, 154, 67, 229, 141, 156, 67, 229, 141, 169, 67, 229, 141, 176, 67, 229, 141, 179, 67, 229, 141, 181, 67, 229, 141, 189, 67, 229, 141, 191, 67, 229, 142, 130, 67, 229, 142, 182, 67, 229, 143, 131, 67, 229, 143, 136, 67, 229, 143, 138, 67, 229, 143, 140, 67, 229, 143, 159, 67, 229, 143, 163, 67, 229, 143, 165, 67, 229, 143, 171, 67, 229, 143, 175, 67, 229, 143, 177, 67, 229, 143, 179, 67, 229, 144, 134, 67, 229, 144, 136, 67, 229, 144, 141, 67, 229, 144, 143, 67, 229, 144, 157, 67, 229, 144, 184, 67, 229, 144, 185, 67, 229, 145, 130, 67, 229, 145, 136, 67, 229, 145, 168, 67, 229, 146, 158, 67, 229, 146, 162, 67, 229, 146, 189, 67, 229, 147, 182, 67, 229, 148, 144, 67, 229, 149, 143, 67, 229, 149, 147, 67, 229, 149, 149, 67, 229, 149, 163, 67, 229, 150, 132, 67, 229, 150, 135, 67, 229, 150, 153, 67, 229, 150, 157, 67, 229, 150, 171, 67, 229, 150, 179, 67, 229, 150, 182, 67, 229, 151, 128, 67, 229, 151, 130, 67, 229, 151, 162, 67, 229, 152, 134, 67, 229, 153, 145, 67, 229, 153, 168, 67, 229, 153, 180, 67, 229, 155, 151, 67, 229, 155, 155, 67, 229, 155, 185, 67, 229, 156, 150, 67, 229, 156, 151, 67, 229, 156, 159, 67, 229, 156, 176, 67, 229, 158, 139, 67, 229, 159, 142, 67, 229, 159, 180, 67, 229, 160, 141, 67, 229, 160, 177, 67, 229, 160, 178, 67, 229, 161, 128, 67, 229, 161, 154, 67, 229, 161, 158, 67, 229, 162, 168, 67, 229, 162, 172, 67, 229, 162, 179, 67, 229, 163, 152, 67, 229, 163, 159, 67, 229, 163, 171, 67, 229, 163, 174, 67, 229, 163, 176, 67, 229, 163, 178, 67, 229, 163, 183, 67, 229, 164, 130, 67, 229, 164, 134, 67, 229, 164, 138, 67, 229, 164, 149, 67, 229, 164, 154, 67, 229, 164, 156, 67, 229, 164, 162, 67, 229, 164, 167, 67, 229, 164, 169, 67, 229, 165, 132, 67, 229, 165, 136, 67, 229, 165, 145, 67, 229, 165, 148, 67, 229, 165, 162, 67, 229, 165, 179, 67, 229, 167, 152, 67, 229, 167, 172, 67, 229, 168, 155, 67, 229, 168, 167, 67, 229, 169, 162, 67, 229, 169, 166, 67, 229, 170, 181, 67, 229, 172, 136, 67, 229, 172, 168, 67, 229, 172, 190, 67, 229, 173, 144, 67, 229, 173, 151, 67, 229, 173, 166, 67, 229, 174, 128, 67, 229, 174, 133, 67, 229, 174, 151, 67, 229, 175, 131, 67, 229, 175, 152, 67, 229, 175, 167, 67, 229, 175, 174, 67, 229, 175, 179, 67, 229, 175, 184, 67, 229, 175, 191, 67, 229, 176, 134, 67, 229, 176, 143, 67, 229, 176, 162, 67, 229, 176, 184, 67, 229, 176, 191, 67, 229, 177, 160, 67, 229, 177, 162, 67, 229, 177, 164, 67, 229, 177, 165, 67, 229, 177, 174, 67, 229, 177, 177, 67, 229, 178, 141, 67, 229, 179, 128, 67, 229, 180, 153, 67, 229, 181, 131, 67, 229, 181, 144, 67, 229, 181, 171, 67, 229, 181, 174, 67, 229, 181, 188, 67, 229, 182, 178, 67, 229, 182, 186, 67, 229, 183, 155, 67, 229, 183, 161, 67, 229, 183, 162, 67, 229, 183, 165, 67, 229, 183, 166, 67, 229, 183, 177, 67, 229, 183, 189, 67, 229, 183, 190, 67, 229, 184, 168, 67, 229, 184, 189, 67, 229, 185, 169, 67, 229, 185, 178, 67, 229, 185, 180, 67, 229, 185, 186, 67, 229, 185, 188, 67, 229, 185, 191, 67, 229, 186, 166, 67, 229, 186, 176, 67, 229, 186, 179, 67, 229, 186, 182, 67, 229, 187, 137, 67, 229, 187, 138, 67, 229, 187, 146, 67, 229, 187, 147, 67, 229, 187, 153, 67, 229, 187, 172, 67, 229, 187, 180, 67, 229, 187, 190, 67, 229, 188, 132, 67, 229, 188, 139, 67, 229, 188, 147, 67, 229, 188, 162, 67, 229, 189, 144, 67, 229, 189, 147, 67, 229, 189, 161, 67, 229, 189, 162, 67, 229, 189, 169, 67, 229, 189, 171, 67, 229, 189, 179, 67, 229, 190, 139, 67, 229, 190, 140, 67, 229, 190, 151, 67, 229, 190, 154, 67, 229, 190, 169, 67, 229, 190, 173, 67, 229, 191, 131, 67, 229, 191, 141, 67, 229, 191, 151, 67, 229, 191, 181, 67, 229, 191, 185, 67, 230, 128, 146, 67, 230, 128, 156, 67, 230, 129, 181, 67, 230, 130, 129, 67, 230, 130, 148, 67, 230, 131, 135, 67, 230, 131, 152, 67, 230, 131, 161, 67, 230, 132, 136, 67, 230, 133, 132, 67, 230, 133, 136, 67, 230, 133, 140, 67, 230, 133, 142, 67, 230, 133, 160, 67, 230, 133, 168, 67, 230, 133, 186, 67, 230, 134, 142, 67, 230, 134, 144, 67, 230, 134, 164, 67, 230, 134, 175, 67, 230, 134, 178, 67, 230, 135, 158, 67, 230, 135, 178, 67, 230, 135, 182, 67, 230, 136, 128, 67, 230, 136, 136, 67, 230, 136, 144, 67, 230, 136, 155, 67, 230, 136, 174, 67, 230, 136, 180, 67, 230, 136, 182, 67, 230, 137, 139, 67, 230, 137, 147, 67, 230, 137, 157, 67, 230, 138, 149, 67, 230, 138, 177, 67, 230, 139, 137, 67, 230, 139, 143, 67, 230, 139, 147, 67, 230, 139, 148, 67, 230, 139, 188, 67, 230, 139, 190, 67, 230, 140, 135, 67, 230, 140, 189, 67, 230, 141, 144, 67, 230, 141, 149, 67, 230, 141, 168, 67, 230, 141, 187, 67, 230, 142, 131, 67, 230, 142, 160, 67, 230, 142, 169, 67, 230, 143, 132, 67, 230, 143, 133, 67, 230, 143, 164, 67, 230, 144, 156, 67, 230, 144, 162, 67, 230, 145, 146, 67, 230, 145, 169, 67, 230, 145, 183, 67, 230, 145, 190, 67, 230, 146, 154, 67, 230, 146, 157, 67, 230, 147, 132, 67, 230, 148, 175, 67, 230, 148, 180, 67, 230, 149, 143, 67, 230, 149, 150, 67, 230, 149, 172, 67, 230, 149, 184, 67, 230, 150, 135, 67, 230, 150, 151, 67, 230, 150, 153, 67, 230, 150, 164, 67, 230, 150, 176, 67, 230, 150, 185, 67, 230, 151, 133, 67, 230, 151, 160, 67, 230, 151, 162, 67, 230, 151, 163, 67, 230, 151, 165, 67, 230, 152, 147, 67, 230, 152, 160, 67, 230, 153, 137, 67, 230, 153, 180, 67, 230, 154, 136, 67, 230, 154, 145, 67, 230, 154, 156, 67, 230, 154, 180, 67, 230, 155, 134, 67, 230, 155, 176, 67, 230, 155, 180, 67, 230, 155, 184, 67, 230, 156, 128, 67, 230, 156, 136, 67, 230, 156, 137, 67, 230, 156, 151, 67, 230, 156, 155, 67, 230, 156, 161, 67, 230, 156, 168, 67, 230, 157, 142, 67, 230, 157, 147, 67, 230, 157, 150, 67, 230, 157, 158, 67, 230, 157, 187, 67, 230, 158, 133, 67, 230, 158, 151, 67, 230, 159, 179, 67, 230, 159, 186, 67, 230, 160, 151, 67, 230, 160, 159, 67, 230, 160, 170, 67, 230, 161, 146, 67, 230, 162, 129, 67, 230, 162, 133, 67, 230, 162, 142, 67, 230, 162, 168, 67, 230, 164, 148, 67, 230, 165, 130, 67, 230, 166, 163, 67, 230, 167, 170, 67, 230, 168, 130, 67, 230, 168, 147, 67, 230, 170, 168, 67, 230, 171, 147, 67, 230, 171, 155, 67, 230, 172, 132, 67, 230, 172, 160, 67, 230, 172, 161, 67, 230, 173, 148, 67, 230, 173, 162, 67, 230, 173, 163, 67, 230, 173, 178, 67, 230, 173, 183, 67, 230, 173, 185, 67, 230, 174, 159, 67, 230, 174, 174, 67, 230, 174, 179, 67, 230, 174, 186, 67, 230, 174, 187, 67, 230, 175, 139, 67, 230, 175, 141, 67, 230, 175, 148, 67, 230, 175, 155, 67, 230, 176, 143, 67, 230, 176, 148, 67, 230, 176, 180, 67, 230, 177, 142, 67, 230, 177, 167, 67, 230, 178, 136, 67, 230, 178, 191, 67, 230, 179, 140, 67, 230, 179, 141, 67, 230, 179, 165, 67, 230, 179, 168, 67, 230, 180, 150, 67, 230, 180, 155, 67, 230, 180, 158, 67, 230, 180, 180, 67, 230, 180, 190, 67, 230, 181, 129, 67, 230, 181, 169, 67, 230, 181, 170, 67, 230, 181, 183, 67, 230, 181, 184, 67, 230, 182, 133, 67, 230, 183, 139, 67, 230, 183, 154, 67, 230, 183, 170, 67, 230, 183, 185, 67, 230, 184, 154, 67, 230, 184, 175, 67, 230, 185, 174, 67, 230, 186, 128, 67, 230, 186, 156, 67, 230, 186, 186, 67, 230, 187, 135, 67, 230, 187, 139, 67, 230, 187, 145, 67, 230, 187, 155, 67, 230, 188, 143, 67, 230, 188, 148, 67, 230, 188, 162, 67, 230, 188, 163, 67, 230, 189, 174, 67, 230, 191, 134, 67, 230, 191, 171, 67, 230, 191, 190, 67, 231, 128, 155, 67, 231, 128, 158, 67, 231, 128, 185, 67, 231, 129, 138, 67, 231, 129, 171, 67, 231, 129, 176, 67, 231, 129, 183, 67, 231, 129, 189, 67, 231, 130, 153, 67, 231, 130, 173, 67, 231, 131, 136, 67, 231, 131, 153, 67, 231, 132, 161, 67, 231, 133, 133, 67, 231, 133, 137, 67, 231, 133, 174, 67, 231, 134, 156, 67, 231, 135, 142, 67, 231, 135, 144, 67, 231, 136, 144, 67, 231, 136, 155, 67, 231, 136, 168, 67, 231, 136, 170, 67, 231, 136, 171, 67, 231, 136, 181, 67, 231, 136, 182, 67, 231, 136, 187, 67, 231, 136, 191, 67, 231, 137, 135, 67, 231, 137, 144, 67, 231, 137, 153, 67, 231, 137, 155, 67, 231, 137, 162, 67, 231, 137, 185, 67, 231, 138, 128, 67, 231, 138, 149, 67, 231, 138, 172, 67, 231, 138, 175, 67, 231, 139, 128, 67, 231, 139, 188, 67, 231, 140, 170, 67, 231, 141, 181, 67, 231, 141, 186, 67, 231, 142, 132, 67, 231, 142, 135, 67, 231, 142, 137, 67, 231, 142, 139, 67, 231, 142, 165, 67, 231, 142, 178, 67, 231, 143, 158, 67, 231, 144, 134, 67, 231, 144, 137, 67, 231, 144, 162, 67, 231, 145, 135, 67, 231, 145, 156, 67, 231, 145, 169, 67, 231, 145, 177, 67, 231, 146, 133, 67, 231, 146, 137, 67, 231, 146, 152, 67, 231, 147, 138, 67, 231, 147, 156, 67, 231, 147, 166, 67, 231, 148, 134, 67, 231, 148, 152, 67, 231, 148, 159, 67, 231, 148, 164, 67, 231, 148, 168, 67, 231, 148, 176, 67, 231, 148, 178, 67, 231, 148, 179, 67, 231, 148, 183, 67, 231, 148, 187, 67, 231, 148, 190, 67, 231, 149, 153, 67, 231, 149, 165, 67, 231, 149, 176, 67, 231, 150, 139, 67, 231, 150, 146, 67, 231, 151, 162, 67, 231, 152, 144, 67, 231, 152, 157, 67, 231, 152, 159, 67, 231, 153, 130, 67, 231, 153, 169, 67, 231, 153, 182, 67, 231, 153, 189, 67, 231, 154, 174, 67, 231, 154, 191, 67, 231, 155, 138, 67, 231, 155, 155, 67, 231, 155, 163, 67, 231, 155, 167, 67, 231, 155, 174, 67, 231, 155, 180, 67, 231, 156, 129, 67, 231, 156, 158, 67, 231, 156, 159, 67, 231, 157, 128, 67, 231, 157, 138, 67, 231, 158, 139, 67, 231, 158, 167, 67, 231, 159, 155, 67, 231, 159, 162, 67, 231, 159, 179, 67, 231, 161, 142, 67, 231, 161, 171, 67, 231, 162, 140, 67, 231, 162, 145, 67, 231, 163, 138, 67, 231, 163, 140, 67, 231, 163, 187, 67, 231, 164, 170, 67, 231, 164, 186, 67, 231, 164, 188, 67, 231, 164, 190, 67, 231, 165, 136, 67, 231, 165, 137, 67, 231, 165, 144, 67, 231, 165, 150, 67, 231, 165, 157, 67, 231, 165, 158, 67, 231, 165, 165, 67, 231, 165, 191, 67, 231, 166, 129, 67, 231, 166, 141, 67, 231, 166, 142, 67, 231, 166, 143, 67, 231, 166, 174, 67, 231, 166, 184, 67, 231, 166, 190, 67, 231, 167, 138, 67, 231, 167, 152, 67, 231, 167, 171, 67, 231, 168, 156, 67, 231, 169, 128, 67, 231, 169, 138, 67, 231, 169, 143, 67, 231, 169, 180, 67, 231, 169, 186, 67, 231, 170, 129, 67, 231, 170, 177, 67, 231, 171, 139, 67, 231, 171, 174, 67, 231, 171, 185, 67, 231, 172, 160, 67, 231, 174, 143, 67, 231, 175, 128, 67, 231, 175, 134, 67, 231, 175, 137, 67, 231, 176, 190, 67, 231, 177, 160, 67, 231, 177, 179, 67, 231, 177, 187, 67, 231, 178, 146, 67, 231, 178, 190, 67, 231, 179, 146, 67, 231, 179, 150, 67, 231, 179, 163, 67, 231, 179, 167, 67, 231, 179, 168, 67, 231, 179, 184, 67, 231, 180, 128, 67, 231, 180, 144, 67, 231, 180, 162, 67, 231, 180, 175, 67, 231, 181, 130, 67, 231, 181, 155, 67, 231, 181, 163, 67, 231, 182, 160, 67, 231, 182, 190, 67, 231, 183, 135, 67, 231, 183, 180, 67, 231, 184, 130, 67, 231, 184, 137, 67, 231, 184, 183, 67, 231, 185, 129, 67, 231, 185, 133, 67, 231, 188, 182, 67, 231, 188, 190, 67, 231, 189, 145, 67, 231, 189, 178, 67, 231, 189, 185, 67, 231, 189, 186, 67, 231, 190, 133, 67, 231, 190, 138, 67, 231, 190, 149, 67, 231, 190, 154, 67, 231, 190, 189, 67, 231, 191, 186, 67, 232, 128, 129, 67, 232, 128, 133, 67, 232, 128, 140, 67, 232, 128, 146, 67, 232, 128, 179, 67, 232, 129, 134, 67, 232, 129, 160, 67, 232, 129, 175, 67, 232, 129, 176, 67, 232, 129, 190, 67, 232, 129, 191, 67, 232, 130, 137, 67, 232, 130, 139, 67, 232, 130, 173, 67, 232, 130, 178, 67, 232, 132, 131, 67, 232, 132, 190, 67, 232, 135, 152, 67, 232, 135, 163, 67, 232, 135, 168, 67, 232, 135, 170, 67, 232, 135, 173, 67, 232, 135, 179, 67, 232, 135, 188, 67, 232, 136, 129, 67, 232, 136, 132, 67, 232, 136, 140, 67, 232, 136, 152, 67, 232, 136, 155, 67, 232, 136, 159, 67, 232, 137, 174, 67, 232, 137, 175, 67, 232, 137, 178, 67, 232, 137, 184, 67, 232, 137, 185, 67, 232, 138, 139, 67, 232, 138, 145, 67, 232, 138, 157, 67, 232, 138, 177, 67, 232, 138, 179, 67, 232, 138, 189, 67, 232, 139, 165, 67, 232, 139, 166, 67, 232, 140, 157, 67, 232, 140, 163, 67, 232, 140, 182, 67, 232, 141, 146, 67, 232, 141, 147, 67, 232, 141, 163, 67, 232, 142, 173, 67, 232, 142, 189, 67, 232, 143, 137, 67, 232, 143, 138, 67, 232, 143, 140, 67, 232, 143, 156, 67, 232, 143, 167, 67, 232, 143, 175, 67, 232, 143, 177, 67, 232, 144, 189, 67, 232, 145, 137, 67, 232, 145, 151, 67, 232, 147, 174, 67, 232, 147, 177, 67, 232, 147, 179, 67, 232, 147, 188, 67, 232, 148, 150, 67, 232, 149, 164, 67, 232, 151, 141, 67, 232, 151, 186, 67, 232, 152, 134, 67, 232, 152, 146, 67, 232, 152, 173, 67, 232, 152, 191, 67, 232, 153, 141, 67, 232, 153, 144, 67, 232, 153, 156, 67, 232, 153, 167, 67, 232, 153, 169, 67, 232, 153, 171, 67, 232, 154, 136, 67, 232, 154, 169, 67, 232, 155, 162, 67, 232, 156, 142, 67, 232, 156, 168, 67, 232, 157, 171, 67, 232, 157, 185, 67, 232, 158, 134, 67, 232, 158, 186, 67, 232, 159, 161, 67, 232, 160, 129, 67, 232, 160, 159, 67, 232, 161, 128, 67, 232, 161, 140, 67, 232, 161, 160, 67, 232, 161, 163, 67, 232, 163, 130, 67, 232, 163, 143, 67, 232, 163, 151, 67, 232, 163, 158, 67, 232, 163, 161, 67, 232, 163, 184, 67, 232, 163, 186, 67, 232, 164, 144, 67, 232, 165, 129, 67, 232, 165, 164, 67, 232, 165, 190, 67, 232, 166, 134, 67, 232, 166, 139, 67, 232, 166, 150, 67, 232, 167, 146, 67, 232, 167, 163, 67, 232, 168, 128, 67, 232, 170, 160, 67, 232, 170, 170, 67, 232, 170, 191, 67, 232, 171, 139, 67, 232, 171, 146, 67, 232, 171, 150, 67, 232, 171, 173, 67, 232, 171, 184, 67, 232, 171, 190, 67, 232, 172, 129, 67, 232, 172, 185, 67, 232, 173, 152, 67, 232, 174, 128, 67, 232, 174, 138, 67, 232, 176, 183, 67, 232, 177, 134, 67, 232, 177, 136, 67, 232, 177, 149, 67, 232, 177, 184, 67, 232, 178, 157, 67, 232, 178, 161, 67, 232, 178, 169, 67, 232, 178, 171, 67, 232, 179, 129, 67, 232, 179, 130, 67, 232, 179, 135, 67, 232, 179, 136, 67, 232, 179, 147, 67, 232, 180, 136, 67, 232, 180, 155, 67, 232, 181, 164, 67, 232, 181, 176, 67, 232, 181, 183, 67, 232, 182, 179, 67, 232, 182, 188, 67, 232, 183, 139, 67, 232, 183, 175, 67, 232, 183, 176, 67, 232, 186, 171, 67, 232, 187, 138, 67, 232, 187, 148, 67, 232, 188, 166, 67, 232, 188, 170, 67, 232, 188, 184, 67, 232, 188, 187, 67, 232, 189, 162, 67, 232, 190, 155, 67, 232, 190, 158, 67, 232, 190, 176, 67, 232, 190, 181, 67, 232, 190, 182, 67, 233, 128, 163, 67, 233, 128, 184, 67, 233, 129, 138, 67, 233, 129, 169, 67, 233, 129, 178, 67, 233, 129, 188, 67, 233, 130, 143, 67, 233, 130, 145, 67, 233, 130, 148, 67, 233, 131, 142, 67, 233, 131, 158, 67, 233, 131, 177, 67, 233, 131, 189, 67, 233, 132, 145, 67, 233, 132, 155, 67, 233, 133, 137, 67, 233, 133, 141, 67, 233, 133, 170, 67, 233, 134, 153, 67, 233, 134, 180, 67, 233, 135, 134, 67, 233, 135, 140, 67, 233, 135, 143, 67, 233, 135, 145, 67, 233, 136, 180, 67, 233, 136, 184, 67, 233, 137, 182, 67, 233, 137, 188, 67, 233, 139, 151, 67, 233, 139, 152, 67, 233, 140, 132, 67, 233, 141, 138, 67, 233, 143, 185, 67, 233, 144, 149, 67, 233, 149, 183, 67, 233, 150, 128, 67, 233, 150, 139, 67, 233, 150, 173, 67, 233, 150, 183, 67, 233, 152, 156, 67, 233, 152, 174, 67, 233, 153, 139, 67, 233, 153, 141, 67, 233, 153, 181, 67, 233, 153, 184, 67, 233, 153, 188, 67, 233, 154, 134, 67, 233, 154, 163, 67, 233, 154, 182, 67, 233, 154, 183, 67, 233, 154, 184, 67, 233, 154, 185, 67, 233, 155, 131, 67, 233, 155, 162, 67, 233, 155, 163, 67, 233, 155, 168, 67, 233, 155, 182, 67, 233, 155, 183, 67, 233, 156, 163, 67, 233, 156, 178, 67, 233, 157, 136, 67, 233, 157, 145, 67, 233, 157, 150, 67, 233, 157, 158, 67, 233, 157, 162, 67, 233, 157, 169, 67, 233, 159, 139, 67, 233, 159, 155, 67, 233, 159, 160, 67, 233, 159, 173, 67, 233, 159, 179, 67, 233, 159, 191, 67, 233, 160, 129, 67, 233, 160, 133, 67, 233, 160, 139, 67, 233, 160, 152, 67, 233, 160, 169, 67, 233, 160, 187, 67, 233, 161, 158, 67, 233, 162, 168, 67, 233, 163, 155, 67, 233, 163, 159, 67, 233, 163, 162, 67, 233, 163, 175, 67, 233, 163, 188, 67, 233, 164, 168, 67, 233, 164, 169, 67, 233, 166, 150, 67, 233, 166, 153, 67, 233, 166, 167, 67, 233, 166, 172, 67, 233, 167, 130, 67, 233, 167, 177, 67, 233, 167, 190, 67, 233, 169, 170, 67, 233, 170, 168, 67, 233, 171, 152, 67, 233, 171, 159, 67, 233, 172, 146, 67, 233, 172, 165, 67, 233, 172, 175, 67, 233, 172, 178, 67, 233, 172, 188, 67, 233, 173, 154, 67, 233, 173, 175, 67, 233, 177, 128, 67, 233, 177, 151, 67, 233, 179, 165, 67, 233, 179, 189, 67, 233, 181, 167, 67, 233, 182, 180, 67, 233, 183, 186, 67, 233, 184, 158, 67, 233, 185, 181, 67, 233, 185, 191, 67, 233, 186, 151, 67, 233, 186, 159, 67, 233, 186, 165, 67, 233, 186, 187, 67, 233, 187, 131, 67, 233, 187, 141, 67, 233, 187, 142, 67, 233, 187, 145, 67, 233, 187, 185, 67, 233, 187, 189, 67, 233, 187, 190, 67, 233, 188, 133, 67, 233, 188, 142, 67, 233, 188, 143, 67, 233, 188, 147, 67, 233, 188, 150, 67, 233, 188, 160, 67, 233, 188, 187, 67, 233, 189, 131, 67, 233, 189, 138, 67, 233, 189, 146, 67, 233, 190, 141, 67, 233, 190, 142, 67, 233, 190, 156, 67, 233, 190, 159, 67, 233, 190, 160, 67, 234, 156, 167, 67, 234, 157, 175, 67, 234, 172, 183, 67, 234, 173, 146, 68, 240, 160, 132, 162, 68, 240, 160, 148, 156, 68, 240, 160, 148, 165, 68, 240, 160, 149, 139, 68, 240, 160, 152, 186, 68, 240, 160, 160, 132, 68, 240, 160, 163, 158, 68, 240, 160, 168, 172, 68, 240, 160, 173, 163, 68, 240, 161, 147, 164, 68, 240, 161, 154, 168, 68, 240, 161, 155, 170, 68, 240, 161, 167, 136, 68, 240, 161, 172, 152, 68, 240, 161, 180, 139, 68, 240, 161, 183, 164, 68, 240, 161, 183, 166, 68, 240, 162, 134, 131, 68, 240, 162, 134, 159, 68, 240, 162, 140, 177, 68, 240, 162, 155, 148, 68, 240, 162, 161, 132, 68, 240, 162, 161, 138, 68, 240, 162, 172, 140, 68, 240, 162, 175, 177, 68, 240, 163, 128, 138, 68, 240, 163, 138, 184, 68, 240, 163, 141, 159, 68, 240, 163, 142, 147, 68, 240, 163, 142, 156, 68, 240, 163, 143, 131, 68, 240, 163, 143, 149, 68, 240, 163, 145, 173, 68, 240, 163, 154, 163, 68, 240, 163, 162, 167, 68, 240, 163, 170, 141, 68, 240, 163, 171, 186, 68, 240, 163, 178, 188, 68, 240, 163, 180, 158, 68, 240, 163, 187, 145, 68, 240, 163, 189, 158, 68, 240, 163, 190, 142, 68, 240, 164, 137, 163, 68, 240, 164, 139, 174, 68, 240, 164, 142, 171, 68, 240, 164, 152, 136, 68, 240, 164, 156, 181, 68, 240, 164, 160, 148, 68, 240, 164, 176, 182, 68, 240, 164, 178, 146, 68, 240, 164, 190, 161, 68, 240, 164, 190, 184, 68, 240, 165, 129, 132, 68, 240, 165, 131, 178, 68, 240, 165, 131, 179, 68, 240, 165, 132, 153, 68, 240, 165, 132, 179, 68, 240, 165, 137, 137, 68, 240, 165, 144, 157, 68, 240, 165, 152, 166, 68, 240, 165, 154, 154, 68, 240, 165, 155, 133, 68, 240, 165, 165, 188, 68, 240, 165, 170, 167, 68, 240, 165, 174, 171, 68, 240, 165, 178, 128, 68, 240, 165, 179, 144, 68, 240, 165, 190, 134, 68, 240, 166, 135, 154, 68, 240, 166, 136, 168, 68, 240, 166, 137, 135, 68, 240, 166, 139, 153, 68, 240, 166, 140, 190, 68, 240, 166, 147, 154, 68, 240, 166, 148, 163, 68, 240, 166, 150, 168, 68, 240, 166, 158, 167, 68, 240, 166, 158, 181, 68, 240, 166, 172, 188, 68, 240, 166, 176, 182, 68, 240, 166, 179, 149, 68, 240, 166, 181, 171, 68, 240, 166, 188, 172, 68, 240, 166, 190, 177, 68, 240, 167, 131, 146, 68, 240, 167, 143, 138, 68, 240, 167, 153, 167, 68, 240, 167, 162, 174, 68, 240, 167, 165, 166, 68, 240, 167, 178, 168, 68, 240, 167, 187, 147, 68, 240, 167, 188, 175, 68, 240, 168, 151, 146, 68, 240, 168, 151, 173, 68, 240, 168, 156, 174, 68, 240, 168, 175, 186, 68, 240, 168, 181, 183, 68, 240, 169, 133, 133, 68, 240, 169, 135, 159, 68, 240, 169, 136, 154, 68, 240, 169, 144, 138, 68, 240, 169, 146, 150, 68, 240, 169, 150, 182, 68, 240, 169, 172, 176, 68, 240, 170, 131, 142, 68, 240, 170, 132, 133, 68, 240, 170, 136, 142, 68, 240, 170, 138, 145, 68, 240, 170, 142, 146, 68, 240, 170, 152, 128, 66, 33, 33, 66, 33, 63, 66, 46, 46, 66, 48, 44, 66, 48, 46, 66, 49, 44, 66, 49, 46, 66, 49, 48, 66, 49, 49, 66, 49, 50, 66, 49, 51, 66, 49, 52, 66, 49, 53, 66, 49, 54, 66, 49, 55, 66, 49, 56, 66, 49, 57, 66, 50, 44, 66, 50, 46, 66, 50, 48, 66, 50, 49, 66, 50, 50, 66, 50, 51, 66, 50, 52, 66, 50, 53, 66, 50, 54, 66, 50, 55, 66, 50, 56, 66, 50, 57, 66, 51, 44, 66, 51, 46, 66, 51, 48, 66, 51, 49, 66, 51, 50, 66, 51, 51, 66, 51, 52, 66, 51, 53, 66, 51, 54, 66, 51, 55, 66, 51, 56, 66, 51, 57, 66, 52, 44, 66, 52, 46, 66, 52, 48, 66, 52, 49, 66, 52, 50, 66, 52, 51, 66, 52, 52, 66, 52, 53, 66, 52, 54, 66, 52, 55, 66, 52, 56, 66, 52, 57, 66, 53, 44, 66, 53, 46, 66, 53, 48, 66, 54, 44, 66, 54, 46, 66, 55, 44, 66, 55, 46, 66, 56, 44, 66, 56, 46, 66, 57, 44, 66, 57, 46, 66, 61, 61, 66, 63, 33, 66, 63, 63, 66, 65, 85, 66, 66, 113, 66, 67, 68, 66, 68, 74, 66, 68, 90, 66, 68, 122, 66, 71, 66, 66, 71, 121, 66, 72, 80, 66, 72, 86, 66, 72, 103, 66, 72, 122, 66, 73, 73, 66, 73, 74, 66, 73, 85, 66, 73, 86, 66, 73, 88, 66, 75, 66, 66, 75, 75, 66, 75, 77, 66, 76, 74, 66, 76, 106, 66, 77, 66, 66, 77, 67, 66, 77, 68, 66, 77, 82, 66, 77, 86, 66, 77, 87, 66, 78, 74, 66, 78, 106, 66, 78, 111, 66, 80, 72, 66, 80, 82, 66, 80, 97, 66, 82, 115, 66, 83, 68, 66, 83, 77, 66, 83, 83, 66, 83, 118, 66, 84, 77, 66, 86, 73, 66, 87, 67, 66, 87, 90, 66, 87, 98, 66, 88, 73, 66, 99, 99, 66, 99, 100, 66, 99, 109, 66, 100, 66, 66, 100, 97, 66, 100, 108, 66, 100, 109, 66, 100, 122, 66, 101, 86, 66, 102, 102, 66, 102, 105, 66, 102, 108, 66, 102, 109, 66, 104, 97, 66, 105, 105, 66, 105, 106, 66, 105, 110, 66, 105, 118, 66, 105, 120, 66, 107, 65, 66, 107, 86, 66, 107, 87, 66, 107, 103, 66, 107, 108, 66, 107, 109, 66, 107, 116, 66, 108, 106, 66, 108, 109, 66, 108, 110, 66, 108, 120, 66, 109, 50, 66, 109, 51, 66, 109, 65, 66, 109, 86, 66, 109, 87, 66, 109, 98, 66, 109, 103, 66, 109, 108, 66, 109, 109, 66, 109, 115, 66, 110, 65, 66, 110, 70, 66, 110, 86, 66, 110, 87, 66, 110, 106, 66, 110, 109, 66, 110, 115, 66, 111, 86, 66, 112, 65, 66, 112, 70, 66, 112, 86, 66, 112, 87, 66, 112, 99, 66, 112, 115, 66, 115, 114, 66, 115, 116, 66, 118, 105, 66, 120, 105, 67, 40, 49, 41, 67, 40, 50, 41, 67, 40, 51, 41, 67, 40, 52, 41, 67, 40, 53, 41, 67, 40, 54, 41, 67, 40, 55, 41, 67, 40, 56, 41, 67, 40, 57, 41, 67, 40, 65, 41, 67, 40, 66, 41, 67, 40, 67, 41, 67, 40, 68, 41, 67, 40, 69, 41, 67, 40, 70, 41, 67, 40, 71, 41, 67, 40, 72, 41, 67, 40, 73, 41, 67, 40, 74, 41, 67, 40, 75, 41, 67, 40, 76, 41, 67, 40, 77, 41, 67, 40, 78, 41, 67, 40, 79, 41, 67, 40, 80, 41, 67, 40, 81, 41, 67, 40, 82, 41, 67, 40, 83, 41, 67, 40, 84, 41, 67, 40, 85, 41, 67, 40, 86, 41, 67, 40, 87, 41, 67, 40, 88, 41, 67, 40, 89, 41, 67, 40, 90, 41, 67, 40, 97, 41, 67, 40, 98, 41, 67, 40, 99, 41, 67, 40, 100, 41, 67, 40, 101, 41, 67, 40, 102, 41, 67, 40, 103, 41, 67, 40, 104, 41, 67, 40, 105, 41, 67, 40, 106, 41, 67, 40, 107, 41, 67, 40, 108, 41, 67, 40, 109, 41, 67, 40, 110, 41, 67, 40, 111, 41, 67, 40, 112, 41, 67, 40, 113, 41, 67, 40, 114, 41, 67, 40, 115, 41, 67, 40, 116, 41, 67, 40, 117, 41, 67, 40, 118, 41, 67, 40, 119, 41, 67, 40, 120, 41, 67, 40, 121, 41, 67, 40, 122, 41, 67, 46, 46, 46, 67, 49, 48, 46, 67, 49, 49, 46, 67, 49, 50, 46, 67, 49, 51, 46, 67, 49, 52, 46, 67, 49, 53, 46, 67, 49, 54, 46, 67, 49, 55, 46, 67, 49, 56, 46, 67, 49, 57, 46, 67, 50, 48, 46, 67, 58, 58, 61, 67, 61, 61, 61, 67, 67, 111, 46, 67, 70, 65, 88, 67, 71, 72, 122, 67, 71, 80, 97, 67, 73, 73, 73, 67, 76, 84, 68, 67, 76, 194, 183, 67, 77, 72, 122, 67, 77, 80, 97, 67, 77, 206, 169, 67, 80, 80, 77, 67, 80, 80, 86, 67, 80, 84, 69, 67, 84, 69, 76, 67, 84, 72, 122, 67, 86, 73, 73, 67, 88, 73, 73, 67, 97, 47, 99, 67, 97, 47, 115, 67, 97, 202, 190, 67, 98, 97, 114, 67, 99, 47, 111, 67, 99, 47, 117, 67, 99, 97, 108, 67, 99, 109, 50, 67, 99, 109, 51, 67, 100, 109, 50, 67, 100, 109, 51, 67, 101, 114, 103, 67, 102, 102, 105, 67, 102, 102, 108, 67, 103, 97, 108, 67, 104, 80, 97, 67, 105, 105, 105, 67, 107, 72, 122, 67, 107, 80, 97, 67, 107, 109, 50, 67, 107, 109, 51, 67, 107, 206, 169, 67, 108, 111, 103, 67, 108, 194, 183, 67, 109, 105, 108, 67, 109, 109, 50, 67, 109, 109, 51, 67, 109, 111, 108, 67, 114, 97, 100, 67, 118, 105, 105, 67, 120, 105, 105, 67, 194, 176, 67, 67, 194, 176, 70, 67, 202, 188, 110, 67, 206, 188, 65, 67, 206, 188, 70, 67, 206, 188, 86, 67, 206, 188, 87, 67, 206, 188, 103, 67, 206, 188, 108, 67, 206, 188, 109, 67, 206, 188, 115, 68, 40, 49, 48, 41, 68, 40, 49, 49, 41, 68, 40, 49, 50, 41, 68, 40, 49, 51, 41, 68, 40, 49, 52, 41, 68, 40, 49, 53, 41, 68, 40, 49, 54, 41, 68, 40, 49, 55, 41, 68, 40, 49, 56, 41, 68, 40, 49, 57, 41, 68, 40, 50, 48, 41, 68, 48, 231, 130, 185, 68, 49, 226, 129, 132, 68, 49, 230, 151, 165, 68, 49, 230, 156, 136, 68, 49, 231, 130, 185, 68, 50, 230, 151, 165, 68, 50, 230, 156, 136, 68, 50, 231, 130, 185, 68, 51, 230, 151, 165, 68, 51, 230, 156, 136, 68, 51, 231, 130, 185, 68, 52, 230, 151, 165, 68, 52, 230, 156, 136, 68, 52, 231, 130, 185, 68, 53, 230, 151, 165, 68, 53, 230, 156, 136, 68, 53, 231, 130, 185, 68, 54, 230, 151, 165, 68, 54, 230, 156, 136, 68, 54, 231, 130, 185, 68, 55, 230, 151, 165, 68, 55, 230, 156, 136, 68, 55, 231, 130, 185, 68, 56, 230, 151, 165, 68, 56, 230, 156, 136, 68, 56, 231, 130, 185, 68, 57, 230, 151, 165, 68, 57, 230, 156, 136, 68, 57, 231, 130, 185, 68, 86, 73, 73, 73, 68, 97, 46, 109, 46, 68, 107, 99, 97, 108, 68, 112, 46, 109, 46, 68, 118, 105, 105, 105, 68, 213, 165, 214, 130, 68, 213, 180, 213, 165, 68, 213, 180, 213, 171, 68, 213, 180, 213, 173, 68, 213, 180, 213, 182, 68, 213, 190, 213, 182, 68, 215, 144, 215, 156, 68, 216, 167, 217, 180, 68, 216, 168, 216, 172, 68, 216, 168, 216, 173, 68, 216, 168, 216, 174, 68, 216, 168, 216, 177, 68, 216, 168, 216, 178, 68, 216, 168, 217, 133, 68, 216, 168, 217, 134, 68, 216, 168, 217, 135, 68, 216, 168, 217, 137, 68, 216, 168, 217, 138, 68, 216, 170, 216, 172, 68, 216, 170, 216, 173, 68, 216, 170, 216, 174, 68, 216, 170, 216, 177, 68, 216, 170, 216, 178, 68, 216, 170, 217, 133, 68, 216, 170, 217, 134, 68, 216, 170, 217, 135, 68, 216, 170, 217, 137, 68, 216, 170, 217, 138, 68, 216, 171, 216, 172, 68, 216, 171, 216, 177, 68, 216, 171, 216, 178, 68, 216, 171, 217, 133, 68, 216, 171, 217, 134, 68, 216, 171, 217, 135, 68, 216, 171, 217, 137, 68, 216, 171, 217, 138, 68, 216, 172, 216, 173, 68, 216, 172, 217, 133, 68, 216, 172, 217, 137, 68, 216, 172, 217, 138, 68, 216, 173, 216, 172, 68, 216, 173, 217, 133, 68, 216, 173, 217, 137, 68, 216, 173, 217, 138, 68, 216, 174, 216, 172, 68, 216, 174, 216, 173, 68, 216, 174, 217, 133, 68, 216, 174, 217, 137, 68, 216, 174, 217, 138, 68, 216, 179, 216, 172, 68, 216, 179, 216, 173, 68, 216, 179, 216, 174, 68, 216, 179, 216, 177, 68, 216, 179, 217, 133, 68, 216, 179, 217, 135, 68, 216, 179, 217, 137, 68, 216, 179, 217, 138, 68, 216, 180, 216, 172, 68, 216, 180, 216, 173, 68, 216, 180, 216, 174, 68, 216, 180, 216, 177, 68, 216, 180, 217, 133, 68, 216, 180, 217, 135, 68, 216, 180, 217, 137, 68, 216, 180, 217, 138, 68, 216, 181, 216, 173, 68, 216, 181, 216, 174, 68, 216, 181, 216, 177, 68, 216, 181, 217, 133, 68, 216, 181, 217, 137, 68, 216, 181, 217, 138, 68, 216, 182, 216, 172, 68, 216, 182, 216, 173, 68, 216, 182, 216, 174, 68, 216, 182, 216, 177, 68, 216, 182, 217, 133, 68, 216, 182, 217, 137, 68, 216, 182, 217, 138, 68, 216, 183, 216, 173, 68, 216, 183, 217, 133, 68, 216, 183, 217, 137, 68, 216, 183, 217, 138, 68, 216, 184, 217, 133, 68, 216, 185, 216, 172, 68, 216, 185, 217, 133, 68, 216, 185, 217, 137, 68, 216, 185, 217, 138, 68, 216, 186, 216, 172, 68, 216, 186, 217, 133, 68, 216, 186, 217, 137, 68, 216, 186, 217, 138, 68, 217, 129, 216, 172, 68, 217, 129, 216, 173, 68, 217, 129, 216, 174, 68, 217, 129, 217, 133, 68, 217, 129, 217, 137, 68, 217, 129, 217, 138, 68, 217, 130, 216, 173, 68, 217, 130, 217, 133, 68, 217, 130, 217, 137, 68, 217, 130, 217, 138, 68, 217, 131, 216, 167, 68, 217, 131, 216, 172, 68, 217, 131, 216, 173, 68, 217, 131, 216, 174, 68, 217, 131, 217, 132, 68, 217, 131, 217, 133, 68, 217, 131, 217, 137, 68, 217, 131, 217, 138, 68, 217, 132, 216, 167, 68, 217, 132, 216, 172, 68, 217, 132, 216, 173, 68, 217, 132, 216, 174, 68, 217, 132, 217, 133, 68, 217, 132, 217, 135, 68, 217, 132, 217, 137, 68, 217, 132, 217, 138, 68, 217, 133, 216, 167, 68, 217, 133, 216, 172, 68, 217, 133, 216, 173, 68, 217, 133, 216, 174, 68, 217, 133, 217, 133, 68, 217, 133, 217, 137, 68, 217, 133, 217, 138, 68, 217, 134, 216, 172, 68, 217, 134, 216, 173, 68, 217, 134, 216, 174, 68, 217, 134, 216, 177, 68, 217, 134, 216, 178, 68, 217, 134, 217, 133, 68, 217, 134, 217, 134, 68, 217, 134, 217, 135, 68, 217, 134, 217, 137, 68, 217, 134, 217, 138, 68, 217, 135, 216, 172, 68, 217, 135, 217, 133, 68, 217, 135, 217, 137, 68, 217, 135, 217, 138, 68, 217, 136, 217, 180, 68, 217, 138, 216, 172, 68, 217, 138, 216, 173, 68, 217, 138, 216, 174, 68, 217, 138, 216, 177, 68, 217, 138, 216, 178, 68, 217, 138, 217, 133, 68, 217, 138, 217, 134, 68, 217, 138, 217, 135, 68, 217, 138, 217, 137, 68, 217, 138, 217, 138, 68, 217, 138, 217, 180, 68, 219, 135, 217, 180, 69, 40, 225, 132, 128, 41, 69, 40, 225, 132, 130, 41, 69, 40, 225, 132, 131, 41, 69, 40, 225, 132, 133, 41, 69, 40, 225, 132, 134, 41, 69, 40, 225, 132, 135, 41, 69, 40, 225, 132, 137, 41, 69, 40, 225, 132, 139, 41, 69, 40, 225, 132, 140, 41, 69, 40, 225, 132, 142, 41, 69, 40, 225, 132, 143, 41, 69, 40, 225, 132, 144, 41, 69, 40, 225, 132, 145, 41, 69, 40, 225, 132, 146, 41, 69, 40, 228, 184, 128, 41, 69, 40, 228, 184, 131, 41, 69, 40, 228, 184, 137, 41, 69, 40, 228, 185, 157, 41, 69, 40, 228, 186, 140, 41, 69, 40, 228, 186, 148, 41, 69, 40, 228, 187, 163, 41, 69, 40, 228, 188, 129, 41, 69, 40, 228, 188, 145, 41, 69, 40, 229, 133, 171, 41, 69, 40, 229, 133, 173, 41, 69, 40, 229, 138, 180, 41, 69, 40, 229, 141, 129, 41, 69, 40, 229, 141, 148, 41, 69, 40, 229, 144, 141, 41, 69, 40, 229, 145, 188, 41, 69, 40, 229, 155, 155, 41, 69, 40, 229, 156, 159, 41, 69, 40, 229, 173, 166, 41, 69, 40, 230, 151, 165, 41, 69, 40, 230, 156, 136, 41, 69, 40, 230, 156, 137, 41, 69, 40, 230, 156, 168, 41, 69, 40, 230, 160, 170, 41, 69, 40, 230, 176, 180, 41, 69, 40, 231, 129, 171, 41, 69, 40, 231, 137, 185, 41, 69, 40, 231, 155, 163, 41, 69, 40, 231, 164, 190, 41, 69, 40, 231, 165, 157, 41, 69, 40, 231, 165, 173, 41, 69, 40, 232, 135, 170, 41, 69, 40, 232, 135, 179, 41, 69, 40, 232, 178, 161, 41, 69, 40, 232, 179, 135, 41, 69, 40, 233, 135, 145, 41, 69, 48, 226, 129, 132, 51, 69, 49, 48, 230, 151, 165, 69, 49, 48, 230, 156, 136, 69, 49, 48, 231, 130, 185, 69, 49, 49, 230, 151, 165, 69, 49, 49, 230, 156, 136, 69, 49, 49, 231, 130, 185, 69, 49, 50, 230, 151, 165, 69, 49, 50, 230, 156, 136, 69, 49, 50, 231, 130, 185, 69, 49, 51, 230, 151, 165, 69, 49, 51, 231, 130, 185, 69, 49, 52, 230, 151, 165, 69, 49, 52, 231, 130, 185, 69, 49, 53, 230, 151, 165, 69, 49, 53, 231, 130, 185, 69, 49, 54, 230, 151, 165, 69, 49, 54, 231, 130, 185, 69, 49, 55, 230, 151, 165, 69, 49, 55, 231, 130, 185, 69, 49, 56, 230, 151, 165, 69, 49, 56, 231, 130, 185, 69, 49, 57, 230, 151, 165, 69, 49, 57, 231, 130, 185, 69, 49, 226, 129, 132, 50, 69, 49, 226, 129, 132, 51, 69, 49, 226, 129, 132, 52, 69, 49, 226, 129, 132, 53, 69, 49, 226, 129, 132, 54, 69, 49, 226, 129, 132, 55, 69, 49, 226, 129, 132, 56, 69, 49, 226, 129, 132, 57, 69, 50, 48, 230, 151, 165, 69, 50, 48, 231, 130, 185, 69, 50, 49, 230, 151, 165, 69, 50, 49, 231, 130, 185, 69, 50, 50, 230, 151, 165, 69, 50, 50, 231, 130, 185, 69, 50, 51, 230, 151, 165, 69, 50, 51, 231, 130, 185, 69, 50, 52, 230, 151, 165, 69, 50, 52, 231, 130, 185, 69, 50, 53, 230, 151, 165, 69, 50, 54, 230, 151, 165, 69, 50, 55, 230, 151, 165, 69, 50, 56, 230, 151, 165, 69, 50, 57, 230, 151, 165, 69, 50, 226, 129, 132, 51, 69, 50, 226, 129, 132, 53, 69, 51, 48, 230, 151, 165, 69, 51, 49, 230, 151, 165, 69, 51, 226, 129, 132, 52, 69, 51, 226, 129, 132, 53, 69, 51, 226, 129, 132, 56, 69, 52, 226, 129, 132, 53, 69, 53, 226, 129, 132, 54, 69, 53, 226, 129, 132, 56, 69, 55, 226, 129, 132, 56, 69, 65, 226, 136, 149, 109, 69, 86, 226, 136, 149, 109, 69, 109, 226, 136, 149, 115, 70, 49, 226, 129, 132, 49, 48, 70, 67, 226, 136, 149, 107, 103, 70, 109, 226, 136, 149, 115, 50, 70, 216, 168, 216, 173, 217, 138, 70, 216, 168, 216, 174, 217, 138, 70, 216, 170, 216, 172, 217, 133, 70, 216, 170, 216, 172, 217, 137, 70, 216, 170, 216, 172, 217, 138, 70, 216, 170, 216, 173, 216, 172, 70, 216, 170, 216, 173, 217, 133, 70, 216, 170, 216, 174, 217, 133, 70, 216, 170, 216, 174, 217, 137, 70, 216, 170, 216, 174, 217, 138, 70, 216, 170, 217, 133, 216, 172, 70, 216, 170, 217, 133, 216, 173, 70, 216, 170, 217, 133, 216, 174, 70, 216, 170, 217, 133, 217, 137, 70, 216, 170, 217, 133, 217, 138, 70, 216, 172, 216, 173, 217, 137, 70, 216, 172, 216, 173, 217, 138, 70, 216, 172, 217, 133, 216, 173, 70, 216, 172, 217, 133, 217, 137, 70, 216, 172, 217, 133, 217, 138, 70, 216, 173, 216, 172, 217, 138, 70, 216, 173, 217, 133, 217, 137, 70, 216, 173, 217, 133, 217, 138, 70, 216, 179, 216, 172, 216, 173, 70, 216, 179, 216, 172, 217, 137, 70, 216, 179, 216, 173, 216, 172, 70, 216, 179, 216, 174, 217, 137, 70, 216, 179, 216, 174, 217, 138, 70, 216, 179, 217, 133, 216, 172, 70, 216, 179, 217, 133, 216, 173, 70, 216, 179, 217, 133, 217, 133, 70, 216, 180, 216, 172, 217, 138, 70, 216, 180, 216, 173, 217, 133, 70, 216, 180, 216, 173, 217, 138, 70, 216, 180, 217, 133, 216, 174, 70, 216, 180, 217, 133, 217, 133, 70, 216, 181, 216, 173, 216, 173, 70, 216, 181, 216, 173, 217, 138, 70, 216, 181, 217, 132, 217, 137, 70, 216, 181, 217, 132, 219, 146, 70, 216, 181, 217, 133, 217, 133, 70, 216, 182, 216, 173, 217, 137, 70, 216, 182, 216, 173, 217, 138, 70, 216, 182, 216, 174, 217, 133, 70, 216, 183, 217, 133, 216, 173, 70, 216, 183, 217, 133, 217, 133, 70, 216, 183, 217, 133, 217, 138, 70, 216, 185, 216, 172, 217, 133, 70, 216, 185, 217, 133, 217, 133, 70, 216, 185, 217, 133, 217, 137, 70, 216, 185, 217, 133, 217, 138, 70, 216, 186, 217, 133, 217, 133, 70, 216, 186, 217, 133, 217, 137, 70, 216, 186, 217, 133, 217, 138, 70, 217, 129, 216, 174, 217, 133, 70, 217, 129, 217, 133, 217, 138, 70, 217, 130, 217, 132, 219, 146, 70, 217, 130, 217, 133, 216, 173, 70, 217, 130, 217, 133, 217, 133, 70, 217, 130, 217, 133, 217, 138, 70, 217, 131, 217, 133, 217, 133, 70, 217, 131, 217, 133, 217, 138, 70, 217, 132, 216, 172, 216, 172, 70, 217, 132, 216, 172, 217, 133, 70, 217, 132, 216, 172, 217, 138, 70, 217, 132, 216, 173, 217, 133, 70, 217, 132, 216, 173, 217, 137, 70, 217, 132, 216, 173, 217, 138, 70, 217, 132, 216, 174, 217, 133, 70, 217, 132, 217, 133, 216, 173, 70, 217, 132, 217, 133, 217, 138, 70, 217, 133, 216, 172, 216, 173, 70, 217, 133, 216, 172, 216, 174, 70, 217, 133, 216, 172, 217, 133, 70, 217, 133, 216, 172, 217, 138, 70, 217, 133, 216, 173, 216, 172, 70, 217, 133, 216, 173, 217, 133, 70, 217, 133, 216, 173, 217, 138, 70, 217, 133, 216, 174, 216, 172, 70, 217, 133, 216, 174, 217, 133, 70, 217, 133, 216, 174, 217, 138, 70, 217, 133, 217, 133, 217, 138, 70, 217, 134, 216, 172, 216, 173, 70, 217, 134, 216, 172, 217, 133, 70, 217, 134, 216, 172, 217, 137, 70, 217, 134, 216, 172, 217, 138, 70, 217, 134, 216, 173, 217, 133, 70, 217, 134, 216, 173, 217, 137, 70, 217, 134, 216, 173, 217, 138, 70, 217, 134, 217, 133, 217, 137, 70, 217, 134, 217, 133, 217, 138, 70, 217, 135, 217, 133, 216, 172, 70, 217, 135, 217, 133, 217, 133, 70, 217, 138, 216, 172, 217, 138, 70, 217, 138, 216, 173, 217, 138, 70, 217, 138, 217, 133, 217, 133, 70, 217, 138, 217, 133, 217, 138, 70, 217, 138, 217, 148, 216, 167, 70, 217, 138, 217, 148, 216, 172, 70, 217, 138, 217, 148, 216, 173, 70, 217, 138, 217, 148, 216, 174, 70, 217, 138, 217, 148, 216, 177, 70, 217, 138, 217, 148, 216, 178, 70, 217, 138, 217, 148, 217, 133, 70, 217, 138, 217, 148, 217, 134, 70, 217, 138, 217, 148, 217, 135, 70, 217, 138, 217, 148, 217, 136, 70, 217, 138, 217, 148, 217, 137, 70, 217, 138, 217, 148, 217, 138, 70, 217, 138, 217, 148, 219, 134, 70, 217, 138, 217, 148, 219, 135, 70, 217, 138, 217, 148, 219, 136, 70, 217, 138, 217, 148, 219, 144, 70, 217, 138, 217, 148, 219, 149, 70, 224, 185, 141, 224, 184, 178, 70, 224, 186, 171, 224, 186, 153, 70, 224, 186, 171, 224, 186, 161, 70, 224, 187, 141, 224, 186, 178, 70, 224, 189, 128, 224, 190, 181, 70, 224, 189, 130, 224, 190, 183, 70, 224, 189, 140, 224, 190, 183, 70, 224, 189, 145, 224, 190, 183, 70, 224, 189, 150, 224, 190, 183, 70, 224, 189, 155, 224, 190, 183, 70, 224, 190, 144, 224, 190, 181, 70, 224, 190, 146, 224, 190, 183, 70, 224, 190, 156, 224, 190, 183, 70, 224, 190, 161, 224, 190, 183, 70, 224, 190, 166, 224, 190, 183, 70, 224, 190, 171, 224, 190, 183, 70, 226, 128, 178, 226, 128, 178, 70, 226, 128, 181, 226, 128, 181, 70, 226, 136, 171, 226, 136, 171, 70, 226, 136, 174, 226, 136, 174, 70, 227, 129, 187, 227, 129, 139, 70, 227, 130, 136, 227, 130, 138, 70, 227, 130, 173, 227, 131, 173, 70, 227, 130, 179, 227, 130, 179, 70, 227, 130, 179, 227, 131, 136, 70, 227, 131, 136, 227, 131, 179, 70, 227, 131, 138, 227, 131, 142, 70, 227, 131, 155, 227, 131, 179, 70, 227, 131, 159, 227, 131, 170, 70, 227, 131, 170, 227, 131, 169, 70, 227, 131, 172, 227, 131, 160, 70, 228, 187, 164, 229, 146, 140, 70, 229, 164, 167, 230, 173, 163, 70, 229, 185, 179, 230, 136, 144, 70, 230, 152, 142, 230, 178, 187, 70, 230, 152, 173, 229, 146, 140, 71, 114, 97, 100, 226, 136, 149, 115, 71, 227, 128, 148, 83, 227, 128, 149, 72, 40, 225, 132, 128, 225, 133, 161, 41, 72, 40, 225, 132, 130, 225, 133, 161, 41, 72, 40, 225, 132, 131, 225, 133, 161, 41, 72, 40, 225, 132, 133, 225, 133, 161, 41, 72, 40, 225, 132, 134, 225, 133, 161, 41, 72, 40, 225, 132, 135, 225, 133, 161, 41, 72, 40, 225, 132, 137, 225, 133, 161, 41, 72, 40, 225, 132, 139, 225, 133, 161, 41, 72, 40, 225, 132, 140, 225, 133, 161, 41, 72, 40, 225, 132, 140, 225, 133, 174, 41, 72, 40, 225, 132, 142, 225, 133, 161, 41, 72, 40, 225, 132, 143, 225, 133, 161, 41, 72, 40, 225, 132, 144, 225, 133, 161, 41, 72, 40, 225, 132, 145, 225, 133, 161, 41, 72, 40, 225, 132, 146, 225, 133, 161, 41, 72, 114, 97, 100, 226, 136, 149, 115, 50, 72, 216, 167, 217, 131, 216, 168, 216, 177, 72, 216, 167, 217, 132, 217, 132, 217, 135, 72, 216, 177, 216, 179, 217, 136, 217, 132, 72, 216, 177, 219, 140, 216, 167, 217, 132, 72, 216, 181, 217, 132, 216, 185, 217, 133, 72, 216, 185, 217, 132, 217, 138, 217, 135, 72, 217, 133, 216, 173, 217, 133, 216, 175, 72, 217, 136, 216, 179, 217, 132, 217, 133, 73, 226, 128, 178, 226, 128, 178, 226, 128, 178, 73, 226, 128, 181, 226, 128, 181, 226, 128, 181, 73, 226, 136, 171, 226, 136, 171, 226, 136, 171, 73, 226, 136, 174, 226, 136, 174, 226, 136, 174, 73, 227, 128, 148, 228, 184, 137, 227, 128, 149, 73, 227, 128, 148, 228, 186, 140, 227, 128, 149, 73, 227, 128, 148, 229, 139, 157, 227, 128, 149, 73, 227, 128, 148, 229, 174, 137, 227, 128, 149, 73, 227, 128, 148, 230, 137, 147, 227, 128, 149, 73, 227, 128, 148, 230, 149, 151, 227, 128, 149, 73, 227, 128, 148, 230, 156, 172, 227, 128, 149, 73, 227, 128, 148, 231, 130, 185, 227, 128, 149, 73, 227, 128, 148, 231, 155, 151, 227, 128, 149, 73, 227, 130, 162, 227, 131, 188, 227, 131, 171, 73, 227, 130, 164, 227, 131, 179, 227, 131, 129, 73, 227, 130, 166, 227, 130, 169, 227, 131, 179, 73, 227, 130, 170, 227, 131, 179, 227, 130, 185, 73, 227, 130, 170, 227, 131, 188, 227, 131, 160, 73, 227, 130, 171, 227, 130, 164, 227, 131, 170, 73, 227, 130, 177, 227, 131, 188, 227, 130, 185, 73, 227, 130, 179, 227, 131, 171, 227, 131, 138, 73, 227, 130, 187, 227, 131, 179, 227, 131, 129, 73, 227, 130, 187, 227, 131, 179, 227, 131, 136, 73, 227, 131, 134, 227, 130, 153, 227, 130, 183, 73, 227, 131, 136, 227, 130, 153, 227, 131, 171, 73, 227, 131, 142, 227, 131, 131, 227, 131, 136, 73, 227, 131, 143, 227, 130, 164, 227, 131, 132, 73, 227, 131, 146, 227, 130, 153, 227, 131, 171, 73, 227, 131, 146, 227, 130, 154, 227, 130, 179, 73, 227, 131, 149, 227, 131, 169, 227, 131, 179, 73, 227, 131, 152, 227, 130, 154, 227, 130, 189, 73, 227, 131, 152, 227, 131, 171, 227, 131, 132, 73, 227, 131, 155, 227, 131, 188, 227, 131, 171, 73, 227, 131, 155, 227, 131, 188, 227, 131, 179, 73, 227, 131, 158, 227, 130, 164, 227, 131, 171, 73, 227, 131, 158, 227, 131, 131, 227, 131, 143, 73, 227, 131, 158, 227, 131, 171, 227, 130, 175, 73, 227, 131, 164, 227, 131, 188, 227, 131, 171, 73, 227, 131, 166, 227, 130, 162, 227, 131, 179, 73, 227, 131, 175, 227, 131, 131, 227, 131, 136, 76, 226, 128, 178, 226, 128, 178, 226, 128, 178, 226, 128, 178, 76, 226, 136, 171, 226, 136, 171, 226, 136, 171, 226, 136, 171, 76, 227, 130, 162, 227, 131, 171, 227, 131, 149, 227, 130, 161, 76, 227, 130, 168, 227, 131, 188, 227, 130, 171, 227, 131, 188, 76, 227, 130, 171, 227, 130, 153, 227, 131, 173, 227, 131, 179, 76, 227, 130, 171, 227, 130, 153, 227, 131, 179, 227, 131, 158, 76, 227, 130, 171, 227, 131, 169, 227, 131, 131, 227, 131, 136, 76, 227, 130, 171, 227, 131, 173, 227, 131, 170, 227, 131, 188, 76, 227, 130, 173, 227, 130, 153, 227, 131, 139, 227, 131, 188, 76, 227, 130, 173, 227, 131, 165, 227, 131, 170, 227, 131, 188, 76, 227, 130, 175, 227, 130, 153, 227, 131, 169, 227, 131, 160, 76, 227, 130, 175, 227, 131, 173, 227, 131, 188, 227, 131, 141, 76, 227, 130, 181, 227, 130, 164, 227, 130, 175, 227, 131, 171, 76, 227, 130, 191, 227, 130, 153, 227, 131, 188, 227, 130, 185, 76, 227, 131, 143, 227, 130, 154, 227, 131, 188, 227, 131, 132, 76, 227, 131, 146, 227, 130, 154, 227, 130, 175, 227, 131, 171, 76, 227, 131, 149, 227, 130, 163, 227, 131, 188, 227, 131, 136, 76, 227, 131, 152, 227, 130, 153, 227, 131, 188, 227, 130, 191, 76, 227, 131, 152, 227, 130, 154, 227, 131, 139, 227, 131, 146, 76, 227, 131, 152, 227, 130, 154, 227, 131, 179, 227, 130, 185, 76, 227, 131, 155, 227, 130, 153, 227, 131, 171, 227, 131, 136, 76, 227, 131, 158, 227, 130, 164, 227, 130, 175, 227, 131, 173, 76, 227, 131, 159, 227, 130, 175, 227, 131, 173, 227, 131, 179, 76, 227, 131, 161, 227, 131, 188, 227, 131, 136, 227, 131, 171, 76, 227, 131, 170, 227, 131, 131, 227, 131, 136, 227, 131, 171, 76, 227, 131, 171, 227, 131, 146, 227, 130, 154, 227, 131, 188, 76, 230, 160, 170, 229, 188, 143, 228, 188, 154, 231, 164, 190, 78, 40, 225, 132, 139, 225, 133, 169, 225, 132, 146, 225, 133, 174, 41, 79, 216, 172, 217, 132, 32, 216, 172, 217, 132, 216, 167, 217, 132, 217, 135, 79, 227, 130, 162, 227, 131, 143, 227, 130, 154, 227, 131, 188, 227, 131, 136, 79, 227, 130, 162, 227, 131, 179, 227, 131, 152, 227, 130, 154, 227, 130, 162, 79, 227, 130, 173, 227, 131, 173, 227, 131, 175, 227, 131, 131, 227, 131, 136, 79, 227, 130, 181, 227, 131, 179, 227, 131, 129, 227, 131, 188, 227, 131, 160, 79, 227, 131, 143, 227, 130, 153, 227, 131, 188, 227, 131, 172, 227, 131, 171, 79, 227, 131, 152, 227, 130, 175, 227, 130, 191, 227, 131, 188, 227, 131, 171, 79, 227, 131, 155, 227, 130, 154, 227, 130, 164, 227, 131, 179, 227, 131, 136, 79, 227, 131, 158, 227, 131, 179, 227, 130, 183, 227, 131, 167, 227, 131, 179, 79, 227, 131, 161, 227, 130, 171, 227, 130, 153, 227, 131, 136, 227, 131, 179, 79, 227, 131, 171, 227, 131, 188, 227, 131, 149, 227, 130, 153, 227, 131, 171, 81, 40, 225, 132, 139, 225, 133, 169, 225, 132, 140, 225, 133, 165, 225, 134, 171, 41, 82, 227, 130, 173, 227, 130, 153, 227, 131, 171, 227, 130, 191, 227, 130, 153, 227, 131, 188, 82, 227, 130, 173, 227, 131, 173, 227, 130, 175, 227, 130, 153, 227, 131, 169, 227, 131, 160, 82, 227, 130, 173, 227, 131, 173, 227, 131, 161, 227, 131, 188, 227, 131, 136, 227, 131, 171, 82, 227, 130, 175, 227, 130, 153, 227, 131, 169, 227, 131, 160, 227, 131, 136, 227, 131, 179, 82, 227, 130, 175, 227, 131, 171, 227, 130, 187, 227, 130, 153, 227, 130, 164, 227, 131, 173, 82, 227, 131, 143, 227, 130, 154, 227, 131, 188, 227, 130, 187, 227, 131, 179, 227, 131, 136, 82, 227, 131, 146, 227, 130, 154, 227, 130, 162, 227, 130, 185, 227, 131, 136, 227, 131, 171, 82, 227, 131, 149, 227, 130, 153, 227, 131, 131, 227, 130, 183, 227, 130, 167, 227, 131, 171, 82, 227, 131, 159, 227, 131, 170, 227, 131, 143, 227, 130, 153, 227, 131, 188, 227, 131, 171, 82, 227, 131, 172, 227, 131, 179, 227, 131, 136, 227, 130, 177, 227, 130, 153, 227, 131, 179, 97, 216, 181, 217, 132, 217, 137, 32, 216, 167, 217, 132, 217, 132, 217, 135, 32, 216, 185, 217, 132, 217, 138, 217, 135, 32, 217, 136, 216, 179, 217, 132, 217, 133, 6, 224, 167, 135, 224, 166, 190, 1, 6, 224, 167, 135, 224, 167, 151, 1, 6, 224, 173, 135, 224, 172, 190, 1, 6, 224, 173, 135, 224, 173, 150, 1, 6, 224, 173, 135, 224, 173, 151, 1, 6, 224, 174, 146, 224, 175, 151, 1, 6, 224, 175, 134, 224, 174, 190, 1, 6, 224, 175, 134, 224, 175, 151, 1, 6, 224, 175, 135, 224, 174, 190, 1, 6, 224, 178, 191, 224, 179, 149, 1, 6, 224, 179, 134, 224, 179, 149, 1, 6, 224, 179, 134, 224, 179, 150, 1, 6, 224, 181, 134, 224, 180, 190, 1, 6, 224, 181, 134, 224, 181, 151, 1, 6, 224, 181, 135, 224, 180, 190, 1, 6, 224, 183, 153, 224, 183, 159, 1, 6, 225, 128, 165, 225, 128, 174, 1, 6, 225, 172, 133, 225, 172, 181, 1, 6, 225, 172, 135, 225, 172, 181, 1, 6, 225, 172, 137, 225, 172, 181, 1, 6, 225, 172, 139, 225, 172, 181, 1, 6, 225, 172, 141, 225, 172, 181, 1, 6, 225, 172, 145, 225, 172, 181, 1, 6, 225, 172, 186, 225, 172, 181, 1, 6, 225, 172, 188, 225, 172, 181, 1, 6, 225, 172, 190, 225, 172, 181, 1, 6, 225, 172, 191, 225, 172, 181, 1, 6, 225, 173, 130, 225, 172, 181, 1, 8, 240, 145, 132, 177, 240, 145, 132, 167, 1, 8, 240, 145, 132, 178, 240, 145, 132, 167, 1, 8, 240, 145, 141, 135, 240, 145, 140, 190, 1, 8, 240, 145, 141, 135, 240, 145, 141, 151, 1, 8, 240, 145, 146, 185, 240, 145, 146, 176, 1, 8, 240, 145, 146, 185, 240, 145, 146, 186, 1, 8, 240, 145, 146, 185, 240, 145, 146, 189, 1, 8, 240, 145, 150, 184, 240, 145, 150, 175, 1, 8, 240, 145, 150, 185, 240, 145, 150, 175, 1, 8, 240, 145, 164, 181, 240, 145, 164, 176, 1, 9, 224, 179, 134, 224, 179, 130, 224, 179, 149, 2, 9, 224, 183, 153, 224, 183, 143, 224, 183, 138, 22, 68, 68, 90, 204, 140, 205, 68, 68, 122, 204, 140, 205, 68, 100, 122, 204, 140, 205, 70, 217, 132, 216, 167, 217, 147, 205, 70, 217, 132, 216, 167, 217, 148, 205, 70, 217, 132, 216, 167, 217, 149, 185, 70, 225, 132, 128, 225, 133, 161, 1, 70, 225, 132, 130, 225, 133, 161, 1, 70, 225, 132, 131, 225, 133, 161, 1, 70, 225, 132, 133, 225, 133, 161, 1, 70, 225, 132, 134, 225, 133, 161, 1, 70, 225, 132, 135, 225, 133, 161, 1, 70, 225, 132, 137, 225, 133, 161, 1, 70, 225, 132, 139, 225, 133, 161, 1, 70, 225, 132, 139, 225, 133, 174, 1, 70, 225, 132, 140, 225, 133, 161, 1, 70, 225, 132, 142, 225, 133, 161, 1, 70, 225, 132, 143, 225, 133, 161, 1, 70, 225, 132, 144, 225, 133, 161, 1, 70, 225, 132, 145, 225, 133, 161, 1, 70, 225, 132, 146, 225, 133, 161, 1, 73, 227, 131, 161, 227, 130, 171, 227, 130, 153, 17, 76, 225, 132, 140, 225, 133, 174, 225, 132, 139, 225, 133, 180, 1, 76, 227, 130, 173, 227, 130, 153, 227, 130, 171, 227, 130, 153, 17, 76, 227, 130, 179, 227, 131, 188, 227, 131, 155, 227, 130, 154, 17, 76, 227, 131, 164, 227, 131, 188, 227, 131, 136, 227, 130, 153, 17, 79, 225, 132, 142, 225, 133, 161, 225, 134, 183, 225, 132, 128, 225, 133, 169, 1, 79, 227, 130, 164, 227, 131, 139, 227, 131, 179, 227, 130, 175, 227, 130, 153, 17, 79, 227, 130, 183, 227, 131, 170, 227, 131, 179, 227, 130, 175, 227, 130, 153, 17, 79, 227, 131, 152, 227, 130, 154, 227, 131, 188, 227, 130, 183, 227, 130, 153, 17, 79, 227, 131, 155, 227, 130, 154, 227, 131, 179, 227, 131, 136, 227, 130, 153, 17, 82, 227, 130, 168, 227, 130, 185, 227, 130, 175, 227, 131, 188, 227, 131, 136, 227, 130, 153, 17, 82, 227, 131, 149, 227, 130, 161, 227, 131, 169, 227, 131, 131, 227, 131, 136, 227, 130, 153, 17, 134, 224, 179, 134, 224, 179, 130, 1, 134, 224, 183, 153, 224, 183, 143, 1, 3, 60, 204, 184, 5, 3, 61, 204, 184, 5, 3, 62, 204, 184, 5, 3, 65, 204, 128, 205, 3, 65, 204, 129, 205, 3, 65, 204, 131, 205, 3, 65, 204, 132, 205, 3, 65, 204, 137, 205, 3, 65, 204, 140, 205, 3, 65, 204, 143, 205, 3, 65, 204, 145, 205, 3, 65, 204, 165, 185, 3, 65, 204, 168, 169, 3, 66, 204, 135, 205, 3, 66, 204, 163, 185, 3, 66, 204, 177, 185, 3, 67, 204, 129, 205, 3, 67, 204, 130, 205, 3, 67, 204, 135, 205, 3, 67, 204, 140, 205, 3, 68, 204, 135, 205, 3, 68, 204, 140, 205, 3, 68, 204, 163, 185, 3, 68, 204, 167, 169, 3, 68, 204, 173, 185, 3, 68, 204, 177, 185, 3, 69, 204, 128, 205, 3, 69, 204, 129, 205, 3, 69, 204, 131, 205, 3, 69, 204, 134, 205, 3, 69, 204, 135, 205, 3, 69, 204, 136, 205, 3, 69, 204, 137, 205, 3, 69, 204, 140, 205, 3, 69, 204, 143, 205, 3, 69, 204, 145, 205, 3, 69, 204, 168, 169, 3, 69, 204, 173, 185, 3, 69, 204, 176, 185, 3, 70, 204, 135, 205, 3, 71, 204, 129, 205, 3, 71, 204, 130, 205, 3, 71, 204, 132, 205, 3, 71, 204, 134, 205, 3, 71, 204, 135, 205, 3, 71, 204, 140, 205, 3, 71, 204, 167, 169, 3, 72, 204, 130, 205, 3, 72, 204, 135, 205, 3, 72, 204, 136, 205, 3, 72, 204, 140, 205, 3, 72, 204, 163, 185, 3, 72, 204, 167, 169, 3, 72, 204, 174, 185, 3, 73, 204, 128, 205, 3, 73, 204, 129, 205, 3, 73, 204, 130, 205, 3, 73, 204, 131, 205, 3, 73, 204, 132, 205, 3, 73, 204, 134, 205, 3, 73, 204, 135, 205, 3, 73, 204, 137, 205, 3, 73, 204, 140, 205, 3, 73, 204, 143, 205, 3, 73, 204, 145, 205, 3, 73, 204, 163, 185, 3, 73, 204, 168, 169, 3, 73, 204, 176, 185, 3, 74, 204, 130, 205, 3, 75, 204, 129, 205, 3, 75, 204, 140, 205, 3, 75, 204, 163, 185, 3, 75, 204, 167, 169, 3, 75, 204, 177, 185, 3, 76, 204, 129, 205, 3, 76, 204, 140, 205, 3, 76, 204, 167, 169, 3, 76, 204, 173, 185, 3, 76, 204, 177, 185, 3, 77, 204, 129, 205, 3, 77, 204, 135, 205, 3, 77, 204, 163, 185, 3, 78, 204, 128, 205, 3, 78, 204, 129, 205, 3, 78, 204, 131, 205, 3, 78, 204, 135, 205, 3, 78, 204, 140, 205, 3, 78, 204, 163, 185, 3, 78, 204, 167, 169, 3, 78, 204, 173, 185, 3, 78, 204, 177, 185, 3, 79, 204, 128, 205, 3, 79, 204, 129, 205, 3, 79, 204, 134, 205, 3, 79, 204, 137, 205, 3, 79, 204, 139, 205, 3, 79, 204, 140, 205, 3, 79, 204, 143, 205, 3, 79, 204, 145, 205, 3, 80, 204, 129, 205, 3, 80, 204, 135, 205, 3, 82, 204, 129, 205, 3, 82, 204, 135, 205, 3, 82, 204, 140, 205, 3, 82, 204, 143, 205, 3, 82, 204, 145, 205, 3, 82, 204, 167, 169, 3, 82, 204, 177, 185, 3, 83, 204, 130, 205, 3, 83, 204, 135, 205, 3, 83, 204, 166, 185, 3, 83, 204, 167, 169, 3, 84, 204, 135, 205, 3, 84, 204, 140, 205, 3, 84, 204, 163, 185, 3, 84, 204, 166, 185, 3, 84, 204, 167, 169, 3, 84, 204, 173, 185, 3, 84, 204, 177, 185, 3, 85, 204, 128, 205, 3, 85, 204, 129, 205, 3, 85, 204, 130, 205, 3, 85, 204, 134, 205, 3, 85, 204, 137, 205, 3, 85, 204, 138, 205, 3, 85, 204, 139, 205, 3, 85, 204, 140, 205, 3, 85, 204, 143, 205, 3, 85, 204, 145, 205, 3, 85, 204, 163, 185, 3, 85, 204, 164, 185, 3, 85, 204, 168, 169, 3, 85, 204, 173, 185, 3, 85, 204, 176, 185, 3, 86, 204, 131, 205, 3, 86, 204, 163, 185, 3, 87, 204, 128, 205, 3, 87, 204, 129, 205, 3, 87, 204, 130, 205, 3, 87, 204, 135, 205, 3, 87, 204, 136, 205, 3, 87, 204, 163, 185, 3, 88, 204, 135, 205, 3, 88, 204, 136, 205, 3, 89, 204, 128, 205, 3, 89, 204, 129, 205, 3, 89, 204, 130, 205, 3, 89, 204, 131, 205, 3, 89, 204, 132, 205, 3, 89, 204, 135, 205, 3, 89, 204, 136, 205, 3, 89, 204, 137, 205, 3, 89, 204, 163, 185, 3, 90, 204, 129, 205, 3, 90, 204, 130, 205, 3, 90, 204, 135, 205, 3, 90, 204, 140, 205, 3, 90, 204, 163, 185, 3, 90, 204, 177, 185, 3, 97, 204, 128, 205, 3, 97, 204, 129, 205, 3, 97, 204, 131, 205, 3, 97, 204, 132, 205, 3, 97, 204, 137, 205, 3, 97, 204, 140, 205, 3, 97, 204, 143, 205, 3, 97, 204, 145, 205, 3, 97, 204, 165, 185, 3, 97, 204, 168, 169, 3, 98, 204, 135, 205, 3, 98, 204, 163, 185, 3, 98, 204, 177, 185, 3, 99, 204, 129, 205, 3, 99, 204, 130, 205, 3, 99, 204, 135, 205, 3, 99, 204, 140, 205, 3, 100, 204, 135, 205, 3, 100, 204, 140, 205, 3, 100, 204, 163, 185, 3, 100, 204, 167, 169, 3, 100, 204, 173, 185, 3, 100, 204, 177, 185, 3, 101, 204, 128, 205, 3, 101, 204, 129, 205, 3, 101, 204, 131, 205, 3, 101, 204, 134, 205, 3, 101, 204, 135, 205, 3, 101, 204, 136, 205, 3, 101, 204, 137, 205, 3, 101, 204, 140, 205, 3, 101, 204, 143, 205, 3, 101, 204, 145, 205, 3, 101, 204, 168, 169, 3, 101, 204, 173, 185, 3, 101, 204, 176, 185, 3, 102, 204, 135, 205, 3, 103, 204, 129, 205, 3, 103, 204, 130, 205, 3, 103, 204, 132, 205, 3, 103, 204, 134, 205, 3, 103, 204, 135, 205, 3, 103, 204, 140, 205, 3, 103, 204, 167, 169, 3, 104, 204, 130, 205, 3, 104, 204, 135, 205, 3, 104, 204, 136, 205, 3, 104, 204, 140, 205, 3, 104, 204, 163, 185, 3, 104, 204, 167, 169, 3, 104, 204, 174, 185, 3, 104, 204, 177, 185, 3, 105, 204, 128, 205, 3, 105, 204, 129, 205, 3, 105, 204, 130, 205, 3, 105, 204, 131, 205, 3, 105, 204, 132, 205, 3, 105, 204, 134, 205, 3, 105, 204, 137, 205, 3, 105, 204, 140, 205, 3, 105, 204, 143, 205, 3, 105, 204, 145, 205, 3, 105, 204, 163, 185, 3, 105, 204, 168, 169, 3, 105, 204, 176, 185, 3, 106, 204, 130, 205, 3, 106, 204, 140, 205, 3, 107, 204, 129, 205, 3, 107, 204, 140, 205, 3, 107, 204, 163, 185, 3, 107, 204, 167, 169, 3, 107, 204, 177, 185, 3, 108, 204, 129, 205, 3, 108, 204, 140, 205, 3, 108, 204, 167, 169, 3, 108, 204, 173, 185, 3, 108, 204, 177, 185, 3, 109, 204, 129, 205, 3, 109, 204, 135, 205, 3, 109, 204, 163, 185, 3, 110, 204, 128, 205, 3, 110, 204, 129, 205, 3, 110, 204, 131, 205, 3, 110, 204, 135, 205, 3, 110, 204, 140, 205, 3, 110, 204, 163, 185, 3, 110, 204, 167, 169, 3, 110, 204, 173, 185, 3, 110, 204, 177, 185, 3, 111, 204, 128, 205, 3, 111, 204, 129, 205, 3, 111, 204, 134, 205, 3, 111, 204, 137, 205, 3, 111, 204, 139, 205, 3, 111, 204, 140, 205, 3, 111, 204, 143, 205, 3, 111, 204, 145, 205, 3, 112, 204, 129, 205, 3, 112, 204, 135, 205, 3, 114, 204, 129, 205, 3, 114, 204, 135, 205, 3, 114, 204, 140, 205, 3, 114, 204, 143, 205, 3, 114, 204, 145, 205, 3, 114, 204, 167, 169, 3, 114, 204, 177, 185, 3, 115, 204, 130, 205, 3, 115, 204, 135, 205, 3, 115, 204, 166, 185, 3, 115, 204, 167, 169, 3, 116, 204, 135, 205, 3, 116, 204, 136, 205, 3, 116, 204, 140, 205, 3, 116, 204, 163, 185, 3, 116, 204, 166, 185, 3, 116, 204, 167, 169, 3, 116, 204, 173, 185, 3, 116, 204, 177, 185, 3, 117, 204, 128, 205, 3, 117, 204, 129, 205, 3, 117, 204, 130, 205, 3, 117, 204, 134, 205, 3, 117, 204, 137, 205, 3, 117, 204, 138, 205, 3, 117, 204, 139, 205, 3, 117, 204, 140, 205, 3, 117, 204, 143, 205, 3, 117, 204, 145, 205, 3, 117, 204, 163, 185, 3, 117, 204, 164, 185, 3, 117, 204, 168, 169, 3, 117, 204, 173, 185, 3, 117, 204, 176, 185, 3, 118, 204, 131, 205, 3, 118, 204, 163, 185, 3, 119, 204, 128, 205, 3, 119, 204, 129, 205, 3, 119, 204, 130, 205, 3, 119, 204, 135, 205, 3, 119, 204, 136, 205, 3, 119, 204, 138, 205, 3, 119, 204, 163, 185, 3, 120, 204, 135, 205, 3, 120, 204, 136, 205, 3, 121, 204, 128, 205, 3, 121, 204, 129, 205, 3, 121, 204, 130, 205, 3, 121, 204, 131, 205, 3, 121, 204, 132, 205, 3, 121, 204, 135, 205, 3, 121, 204, 136, 205, 3, 121, 204, 137, 205, 3, 121, 204, 138, 205, 3, 121, 204, 163, 185, 3, 122, 204, 129, 205, 3, 122, 204, 130, 205, 3, 122, 204, 135, 205, 3, 122, 204, 140, 205, 3, 122, 204, 163, 185, 3, 122, 204, 177, 185, 4, 194, 168, 204, 128, 206, 4, 194, 168, 204, 129, 206, 4, 194, 168, 205, 130, 206, 4, 195, 134, 204, 129, 205, 4, 195, 134, 204, 132, 205, 4, 195, 152, 204, 129, 205, 4, 195, 166, 204, 129, 205, 4, 195, 166, 204, 132, 205, 4, 195, 184, 204, 129, 205, 4, 197, 191, 204, 135, 205, 4, 198, 183, 204, 140, 205, 4, 202, 146, 204, 140, 205, 4, 206, 145, 204, 128, 205, 4, 206, 145, 204, 129, 205, 4, 206, 145, 204, 132, 205, 4, 206, 145, 204, 134, 205, 4, 206, 145, 205, 133, 221, 4, 206, 149, 204, 128, 205, 4, 206, 149, 204, 129, 205, 4, 206, 151, 204, 128, 205, 4, 206, 151, 204, 129, 205, 4, 206, 151, 205, 133, 221, 4, 206, 153, 204, 128, 205, 4, 206, 153, 204, 129, 205, 4, 206, 153, 204, 132, 205, 4, 206, 153, 204, 134, 205, 4, 206, 153, 204, 136, 205, 4, 206, 159, 204, 128, 205, 4, 206, 159, 204, 129, 205, 4, 206, 161, 204, 148, 205, 4, 206, 165, 204, 128, 205, 4, 206, 165, 204, 129, 205, 4, 206, 165, 204, 132, 205, 4, 206, 165, 204, 134, 205, 4, 206, 165, 204, 136, 205, 4, 206, 169, 204, 128, 205, 4, 206, 169, 204, 129, 205, 4, 206, 169, 205, 133, 221, 4, 206, 177, 204, 132, 205, 4, 206, 177, 204, 134, 205, 4, 206, 177, 205, 133, 221, 4, 206, 181, 204, 128, 205, 4, 206, 181, 204, 129, 205, 4, 206, 183, 205, 133, 221, 4, 206, 185, 204, 128, 205, 4, 206, 185, 204, 129, 205, 4, 206, 185, 204, 132, 205, 4, 206, 185, 204, 134, 205, 4, 206, 185, 205, 130, 205, 4, 206, 191, 204, 128, 205, 4, 206, 191, 204, 129, 205, 4, 207, 129, 204, 147, 205, 4, 207, 129, 204, 148, 205, 4, 207, 133, 204, 128, 205, 4, 207, 133, 204, 129, 205, 4, 207, 133, 204, 132, 205, 4, 207, 133, 204, 134, 205, 4, 207, 133, 205, 130, 205, 4, 207, 137, 205, 133, 221, 4, 207, 146, 204, 129, 205, 4, 207, 146, 204, 136, 205, 4, 208, 134, 204, 136, 205, 4, 208, 144, 204, 134, 205, 4, 208, 144, 204, 136, 205, 4, 208, 147, 204, 129, 205, 4, 208, 149, 204, 128, 205, 4, 208, 149, 204, 134, 205, 4, 208, 149, 204, 136, 205, 4, 208, 150, 204, 134, 205, 4, 208, 150, 204, 136, 205, 4, 208, 151, 204, 136, 205, 4, 208, 152, 204, 128, 205, 4, 208, 152, 204, 132, 205, 4, 208, 152, 204, 134, 205, 4, 208, 152, 204, 136, 205, 4, 208, 154, 204, 129, 205, 4, 208, 158, 204, 136, 205, 4, 208, 163, 204, 132, 205, 4, 208, 163, 204, 134, 205, 4, 208, 163, 204, 136, 205, 4, 208, 163, 204, 139, 205, 4, 208, 167, 204, 136, 205, 4, 208, 171, 204, 136, 205, 4, 208, 173, 204, 136, 205, 4, 208, 176, 204, 134, 205, 4, 208, 176, 204, 136, 205, 4, 208, 179, 204, 129, 205, 4, 208, 181, 204, 128, 205, 4, 208, 181, 204, 134, 205, 4, 208, 181, 204, 136, 205, 4, 208, 182, 204, 134, 205, 4, 208, 182, 204, 136, 205, 4, 208, 183, 204, 136, 205, 4, 208, 184, 204, 128, 205, 4, 208, 184, 204, 132, 205, 4, 208, 184, 204, 134, 205, 4, 208, 184, 204, 136, 205, 4, 208, 186, 204, 129, 205, 4, 208, 190, 204, 136, 205, 4, 209, 131, 204, 132, 205, 4, 209, 131, 204, 134, 205, 4, 209, 131, 204, 136, 205, 4, 209, 131, 204, 139, 205, 4, 209, 135, 204, 136, 205, 4, 209, 139, 204, 136, 205, 4, 209, 141, 204, 136, 205, 4, 209, 150, 204, 136, 205, 4, 209, 180, 204, 143, 205, 4, 209, 181, 204, 143, 205, 4, 211, 152, 204, 136, 205, 4, 211, 153, 204, 136, 205, 4, 211, 168, 204, 136, 205, 4, 211, 169, 204, 136, 205, 4, 216, 167, 217, 147, 205, 4, 216, 167, 217, 148, 205, 4, 216, 167, 217, 149, 185, 4, 217, 136, 217, 148, 205, 4, 217, 138, 217, 148, 205, 4, 219, 129, 217, 148, 205, 4, 219, 146, 217, 148, 205, 4, 219, 149, 217, 148, 205, 5, 65, 204, 130, 204, 128, 206, 5, 65, 204, 130, 204, 129, 206, 5, 65, 204, 130, 204, 131, 206, 5, 65, 204, 130, 204, 137, 206, 5, 65, 204, 134, 204, 128, 206, 5, 65, 204, 134, 204, 129, 206, 5, 65, 204, 134, 204, 131, 206, 5, 65, 204, 134, 204, 137, 206, 5, 65, 204, 135, 204, 132, 206, 5, 65, 204, 136, 204, 132, 206, 5, 65, 204, 138, 204, 129, 206, 5, 65, 204, 163, 204, 130, 206, 5, 65, 204, 163, 204, 134, 206, 5, 67, 204, 167, 204, 129, 206, 5, 69, 204, 130, 204, 128, 206, 5, 69, 204, 130, 204, 129, 206, 5, 69, 204, 130, 204, 131, 206, 5, 69, 204, 130, 204, 137, 206, 5, 69, 204, 132, 204, 128, 206, 5, 69, 204, 132, 204, 129, 206, 5, 69, 204, 163, 204, 130, 206, 5, 69, 204, 167, 204, 134, 206, 5, 73, 204, 136, 204, 129, 206, 5, 76, 204, 163, 204, 132, 206, 5, 79, 204, 130, 204, 128, 206, 5, 79, 204, 130, 204, 129, 206, 5, 79, 204, 130, 204, 131, 206, 5, 79, 204, 130, 204, 137, 206, 5, 79, 204, 131, 204, 129, 206, 5, 79, 204, 131, 204, 132, 206, 5, 79, 204, 131, 204, 136, 206, 5, 79, 204, 132, 204, 128, 206, 5, 79, 204, 132, 204, 129, 206, 5, 79, 204, 135, 204, 132, 206, 5, 79, 204, 136, 204, 132, 206, 5, 79, 204, 155, 204, 128, 206, 5, 79, 204, 155, 204, 129, 206, 5, 79, 204, 155, 204, 131, 206, 5, 79, 204, 155, 204, 137, 206, 5, 79, 204, 155, 204, 163, 186, 5, 79, 204, 163, 204, 130, 206, 5, 79, 204, 168, 204, 132, 206, 5, 82, 204, 163, 204, 132, 206, 5, 83, 204, 129, 204, 135, 206, 5, 83, 204, 140, 204, 135, 206, 5, 83, 204, 163, 204, 135, 206, 5, 85, 204, 131, 204, 129, 206, 5, 85, 204, 132, 204, 136, 206, 5, 85, 204, 136, 204, 128, 206, 5, 85, 204, 136, 204, 129, 206, 5, 85, 204, 136, 204, 132, 206, 5, 85, 204, 136, 204, 140, 206, 5, 85, 204, 155, 204, 128, 206, 5, 85, 204, 155, 204, 129, 206, 5, 85, 204, 155, 204, 131, 206, 5, 85, 204, 155, 204, 137, 206, 5, 85, 204, 155, 204, 163, 186, 5, 97, 204, 130, 204, 128, 206, 5, 97, 204, 130, 204, 129, 206, 5, 97, 204, 130, 204, 131, 206, 5, 97, 204, 130, 204, 137, 206, 5, 97, 204, 134, 204, 128, 206, 5, 97, 204, 134, 204, 129, 206, 5, 97, 204, 134, 204, 131, 206, 5, 97, 204, 134, 204, 137, 206, 5, 97, 204, 135, 204, 132, 206, 5, 97, 204, 136, 204, 132, 206, 5, 97, 204, 138, 204, 129, 206, 5, 97, 204, 163, 204, 130, 206, 5, 97, 204, 163, 204, 134, 206, 5, 99, 204, 167, 204, 129, 206, 5, 101, 204, 130, 204, 128, 206, 5, 101, 204, 130, 204, 129, 206, 5, 101, 204, 130, 204, 131, 206, 5, 101, 204, 130, 204, 137, 206, 5, 101, 204, 132, 204, 128, 206, 5, 101, 204, 132, 204, 129, 206, 5, 101, 204, 163, 204, 130, 206, 5, 101, 204, 167, 204, 134, 206, 5, 105, 204, 136, 204, 129, 206, 5, 108, 204, 163, 204, 132, 206, 5, 111, 204, 130, 204, 128, 206, 5, 111, 204, 130, 204, 129, 206, 5, 111, 204, 130, 204, 131, 206, 5, 111, 204, 130, 204, 137, 206, 5, 111, 204, 131, 204, 129, 206, 5, 111, 204, 131, 204, 132, 206, 5, 111, 204, 131, 204, 136, 206, 5, 111, 204, 132, 204, 128, 206, 5, 111, 204, 132, 204, 129, 206, 5, 111, 204, 135, 204, 132, 206, 5, 111, 204, 136, 204, 132, 206, 5, 111, 204, 155, 204, 128, 206, 5, 111, 204, 155, 204, 129, 206, 5, 111, 204, 155, 204, 131, 206, 5, 111, 204, 155, 204, 137, 206, 5, 111, 204, 155, 204, 163, 186, 5, 111, 204, 163, 204, 130, 206, 5, 111, 204, 168, 204, 132, 206, 5, 114, 204, 163, 204, 132, 206, 5, 115, 204, 129, 204, 135, 206, 5, 115, 204, 140, 204, 135, 206, 5, 115, 204, 163, 204, 135, 206, 5, 117, 204, 131, 204, 129, 206, 5, 117, 204, 132, 204, 136, 206, 5, 117, 204, 136, 204, 128, 206, 5, 117, 204, 136, 204, 129, 206, 5, 117, 204, 136, 204, 132, 206, 5, 117, 204, 136, 204, 140, 206, 5, 117, 204, 155, 204, 128, 206, 5, 117, 204, 155, 204, 129, 206, 5, 117, 204, 155, 204, 131, 206, 5, 117, 204, 155, 204, 137, 206, 5, 117, 204, 155, 204, 163, 186, 5, 225, 190, 191, 204, 128, 206, 5, 225, 190, 191, 204, 129, 206, 5, 225, 190, 191, 205, 130, 206, 5, 225, 191, 190, 204, 128, 206, 5, 225, 191, 190, 204, 129, 206, 5, 225, 191, 190, 205, 130, 206, 5, 226, 134, 144, 204, 184, 5, 5, 226, 134, 146, 204, 184, 5, 5, 226, 134, 148, 204, 184, 5, 5, 226, 135, 144, 204, 184, 5, 5, 226, 135, 146, 204, 184, 5, 5, 226, 135, 148, 204, 184, 5, 5, 226, 136, 131, 204, 184, 5, 5, 226, 136, 136, 204, 184, 5, 5, 226, 136, 139, 204, 184, 5, 5, 226, 136, 163, 204, 184, 5, 5, 226, 136, 165, 204, 184, 5, 5, 226, 136, 188, 204, 184, 5, 5, 226, 137, 131, 204, 184, 5, 5, 226, 137, 133, 204, 184, 5, 5, 226, 137, 136, 204, 184, 5, 5, 226, 137, 141, 204, 184, 5, 5, 226, 137, 161, 204, 184, 5, 5, 226, 137, 164, 204, 184, 5, 5, 226, 137, 165, 204, 184, 5, 5, 226, 137, 178, 204, 184, 5, 5, 226, 137, 179, 204, 184, 5, 5, 226, 137, 182, 204, 184, 5, 5, 226, 137, 183, 204, 184, 5, 5, 226, 137, 186, 204, 184, 5, 5, 226, 137, 187, 204, 184, 5, 5, 226, 137, 188, 204, 184, 5, 5, 226, 137, 189, 204, 184, 5, 5, 226, 138, 130, 204, 184, 5, 5, 226, 138, 131, 204, 184, 5, 5, 226, 138, 134, 204, 184, 5, 5, 226, 138, 135, 204, 184, 5, 5, 226, 138, 145, 204, 184, 5, 5, 226, 138, 146, 204, 184, 5, 5, 226, 138, 162, 204, 184, 5, 5, 226, 138, 168, 204, 184, 5, 5, 226, 138, 169, 204, 184, 5, 5, 226, 138, 171, 204, 184, 5, 5, 226, 138, 178, 204, 184, 5, 5, 226, 138, 179, 204, 184, 5, 5, 226, 138, 180, 204, 184, 5, 5, 226, 138, 181, 204, 184, 5, 6, 206, 145, 204, 147, 205, 133, 222, 6, 206, 145, 204, 148, 205, 133, 222, 6, 206, 149, 204, 147, 204, 128, 206, 6, 206, 149, 204, 147, 204, 129, 206, 6, 206, 149, 204, 148, 204, 128, 206, 6, 206, 149, 204, 148, 204, 129, 206, 6, 206, 151, 204, 147, 205, 133, 222, 6, 206, 151, 204, 148, 205, 133, 222, 6, 206, 153, 204, 147, 204, 128, 206, 6, 206, 153, 204, 147, 204, 129, 206, 6, 206, 153, 204, 147, 205, 130, 206, 6, 206, 153, 204, 148, 204, 128, 206, 6, 206, 153, 204, 148, 204, 129, 206, 6, 206, 153, 204, 148, 205, 130, 206, 6, 206, 159, 204, 147, 204, 128, 206, 6, 206, 159, 204, 147, 204, 129, 206, 6, 206, 159, 204, 148, 204, 128, 206, 6, 206, 159, 204, 148, 204, 129, 206, 6, 206, 165, 204, 148, 204, 128, 206, 6, 206, 165, 204, 148, 204, 129, 206, 6, 206, 165, 204, 148, 205, 130, 206, 6, 206, 169, 204, 147, 205, 133, 222, 6, 206, 169, 204, 148, 205, 133, 222, 6, 206, 177, 204, 128, 205, 133, 222, 6, 206, 177, 204, 129, 205, 133, 222, 6, 206, 177, 204, 147, 205, 133, 222, 6, 206, 177, 204, 148, 205, 133, 222, 6, 206, 177, 205, 130, 205, 133, 222, 6, 206, 181, 204, 147, 204, 128, 206, 6, 206, 181, 204, 147, 204, 129, 206, 6, 206, 181, 204, 148, 204, 128, 206, 6, 206, 181, 204, 148, 204, 129, 206, 6, 206, 183, 204, 128, 205, 133, 222, 6, 206, 183, 204, 129, 205, 133, 222, 6, 206, 183, 204, 147, 205, 133, 222, 6, 206, 183, 204, 148, 205, 133, 222, 6, 206, 183, 205, 130, 205, 133, 222, 6, 206, 185, 204, 136, 204, 128, 206, 6, 206, 185, 204, 136, 204, 129, 206, 6, 206, 185, 204, 136, 205, 130, 206, 6, 206, 185, 204, 147, 204, 128, 206, 6, 206, 185, 204, 147, 204, 129, 206, 6, 206, 185, 204, 147, 205, 130, 206, 6, 206, 185, 204, 148, 204, 128, 206, 6, 206, 185, 204, 148, 204, 129, 206, 6, 206, 185, 204, 148, 205, 130, 206, 6, 206, 191, 204, 147, 204, 128, 206, 6, 206, 191, 204, 147, 204, 129, 206, 6, 206, 191, 204, 148, 204, 128, 206, 6, 206, 191, 204, 148, 204, 129, 206, 6, 207, 133, 204, 136, 204, 128, 206, 6, 207, 133, 204, 136, 204, 129, 206, 6, 207, 133, 204, 136, 205, 130, 206, 6, 207, 133, 204, 147, 204, 128, 206, 6, 207, 133, 204, 147, 204, 129, 206, 6, 207, 133, 204, 147, 205, 130, 206, 6, 207, 133, 204, 148, 204, 128, 206, 6, 207, 133, 204, 148, 204, 129, 206, 6, 207, 133, 204, 148, 205, 130, 206, 6, 207, 137, 204, 128, 205, 133, 222, 6, 207, 137, 204, 129, 205, 133, 222, 6, 207, 137, 204, 147, 205, 133, 222, 6, 207, 137, 204, 148, 205, 133, 222, 6, 207, 137, 205, 130, 205, 133, 222, 6, 224, 164, 168, 224, 164, 188, 13, 6, 224, 164, 176, 224, 164, 188, 13, 6, 224, 164, 179, 224, 164, 188, 13, 6, 224, 177, 134, 224, 177, 150, 137, 6, 224, 183, 153, 224, 183, 138, 21, 6, 227, 129, 134, 227, 130, 153, 17, 6, 227, 129, 139, 227, 130, 153, 17, 6, 227, 129, 141, 227, 130, 153, 17, 6, 227, 129, 143, 227, 130, 153, 17, 6, 227, 129, 145, 227, 130, 153, 17, 6, 227, 129, 147, 227, 130, 153, 17, 6, 227, 129, 149, 227, 130, 153, 17, 6, 227, 129, 151, 227, 130, 153, 17, 6, 227, 129, 153, 227, 130, 153, 17, 6, 227, 129, 155, 227, 130, 153, 17, 6, 227, 129, 157, 227, 130, 153, 17, 6, 227, 129, 159, 227, 130, 153, 17, 6, 227, 129, 161, 227, 130, 153, 17, 6, 227, 129, 164, 227, 130, 153, 17, 6, 227, 129, 166, 227, 130, 153, 17, 6, 227, 129, 168, 227, 130, 153, 17, 6, 227, 129, 175, 227, 130, 153, 17, 6, 227, 129, 175, 227, 130, 154, 17, 6, 227, 129, 178, 227, 130, 153, 17, 6, 227, 129, 178, 227, 130, 154, 17, 6, 227, 129, 181, 227, 130, 153, 17, 6, 227, 129, 181, 227, 130, 154, 17, 6, 227, 129, 184, 227, 130, 153, 17, 6, 227, 129, 184, 227, 130, 154, 17, 6, 227, 129, 187, 227, 130, 153, 17, 6, 227, 129, 187, 227, 130, 154, 17, 6, 227, 130, 157, 227, 130, 153, 17, 6, 227, 130, 166, 227, 130, 153, 17, 6, 227, 130, 171, 227, 130, 153, 17, 6, 227, 130, 173, 227, 130, 153, 17, 6, 227, 130, 175, 227, 130, 153, 17, 6, 227, 130, 177, 227, 130, 153, 17, 6, 227, 130, 179, 227, 130, 153, 17, 6, 227, 130, 181, 227, 130, 153, 17, 6, 227, 130, 183, 227, 130, 153, 17, 6, 227, 130, 185, 227, 130, 153, 17, 6, 227, 130, 187, 227, 130, 153, 17, 6, 227, 130, 189, 227, 130, 153, 17, 6, 227, 130, 191, 227, 130, 153, 17, 6, 227, 131, 129, 227, 130, 153, 17, 6, 227, 131, 132, 227, 130, 153, 17, 6, 227, 131, 134, 227, 130, 153, 17, 6, 227, 131, 136, 227, 130, 153, 17, 6, 227, 131, 143, 227, 130, 153, 17, 6, 227, 131, 143, 227, 130, 154, 17, 6, 227, 131, 146, 227, 130, 153, 17, 6, 227, 131, 146, 227, 130, 154, 17, 6, 227, 131, 149, 227, 130, 153, 17, 6, 227, 131, 149, 227, 130, 154, 17, 6, 227, 131, 152, 227, 130, 153, 17, 6, 227, 131, 152, 227, 130, 154, 17, 6, 227, 131, 155, 227, 130, 153, 17, 6, 227, 131, 155, 227, 130, 154, 17, 6, 227, 131, 175, 227, 130, 153, 17, 6, 227, 131, 176, 227, 130, 153, 17, 6, 227, 131, 177, 227, 130, 153, 17, 6, 227, 131, 178, 227, 130, 153, 17, 6, 227, 131, 189, 227, 130, 153, 17, 8, 206, 145, 204, 147, 204, 128, 205, 133, 223, 8, 206, 145, 204, 147, 204, 129, 205, 133, 223, 8, 206, 145, 204, 147, 205, 130, 205, 133, 223, 8, 206, 145, 204, 148, 204, 128, 205, 133, 223, 8, 206, 145, 204, 148, 204, 129, 205, 133, 223, 8, 206, 145, 204, 148, 205, 130, 205, 133, 223, 8, 206, 151, 204, 147, 204, 128, 205, 133, 223, 8, 206, 151, 204, 147, 204, 129, 205, 133, 223, 8, 206, 151, 204, 147, 205, 130, 205, 133, 223, 8, 206, 151, 204, 148, 204, 128, 205, 133, 223, 8, 206, 151, 204, 148, 204, 129, 205, 133, 223, 8, 206, 151, 204, 148, 205, 130, 205, 133, 223, 8, 206, 169, 204, 147, 204, 128, 205, 133, 223, 8, 206, 169, 204, 147, 204, 129, 205, 133, 223, 8, 206, 169, 204, 147, 205, 130, 205, 133, 223, 8, 206, 169, 204, 148, 204, 128, 205, 133, 223, 8, 206, 169, 204, 148, 204, 129, 205, 133, 223, 8, 206, 169, 204, 148, 205, 130, 205, 133, 223, 8, 206, 177, 204, 147, 204, 128, 205, 133, 223, 8, 206, 177, 204, 147, 204, 129, 205, 133, 223, 8, 206, 177, 204, 147, 205, 130, 205, 133, 223, 8, 206, 177, 204, 148, 204, 128, 205, 133, 223, 8, 206, 177, 204, 148, 204, 129, 205, 133, 223, 8, 206, 177, 204, 148, 205, 130, 205, 133, 223, 8, 206, 183, 204, 147, 204, 128, 205, 133, 223, 8, 206, 183, 204, 147, 204, 129, 205, 133, 223, 8, 206, 183, 204, 147, 205, 130, 205, 133, 223, 8, 206, 183, 204, 148, 204, 128, 205, 133, 223, 8, 206, 183, 204, 148, 204, 129, 205, 133, 223, 8, 206, 183, 204, 148, 205, 130, 205, 133, 223, 8, 207, 137, 204, 147, 204, 128, 205, 133, 223, 8, 207, 137, 204, 147, 204, 129, 205, 133, 223, 8, 207, 137, 204, 147, 205, 130, 205, 133, 223, 8, 207, 137, 204, 148, 204, 128, 205, 133, 223, 8, 207, 137, 204, 148, 204, 129, 205, 133, 223, 8, 207, 137, 204, 148, 205, 130, 205, 133, 223, 8, 240, 145, 130, 153, 240, 145, 130, 186, 13, 8, 240, 145, 130, 155, 240, 145, 130, 186, 13, 8, 240, 145, 130, 165, 240, 145, 130, 186, 13, 66, 194, 180, 1, 67, 32, 204, 129, 205, 67, 32, 204, 131, 205, 67, 32, 204, 132, 205, 67, 32, 204, 133, 205, 67, 32, 204, 134, 205, 67, 32, 204, 135, 205, 67, 32, 204, 136, 205, 67, 32, 204, 138, 205, 67, 32, 204, 139, 205, 67, 32, 204, 147, 205, 67, 32, 204, 148, 205, 67, 32, 204, 167, 169, 67, 32, 204, 168, 169, 67, 32, 204, 179, 185, 67, 32, 205, 130, 205, 67, 32, 205, 133, 221, 67, 32, 217, 139, 93, 67, 32, 217, 140, 97, 67, 32, 217, 141, 101, 67, 32, 217, 142, 105, 67, 32, 217, 143, 109, 67, 32, 217, 144, 113, 67, 32, 217, 145, 117, 67, 32, 217, 146, 121, 67, 65, 204, 138, 205, 67, 115, 204, 135, 205, 68, 32, 227, 130, 153, 17, 68, 32, 227, 130, 154, 17, 68, 194, 168, 204, 129, 206, 68, 206, 145, 204, 129, 205, 68, 206, 149, 204, 129, 205, 68, 206, 151, 204, 129, 205, 68, 206, 153, 204, 129, 205, 68, 206, 159, 204, 129, 205, 68, 206, 165, 204, 129, 205, 68, 206, 165, 204, 136, 205, 68, 206, 169, 204, 129, 205, 68, 206, 177, 204, 129, 205, 68, 206, 181, 204, 129, 205, 68, 206, 183, 204, 129, 205, 68, 206, 185, 204, 129, 205, 68, 206, 191, 204, 129, 205, 68, 207, 133, 204, 129, 205, 68, 207, 137, 204, 129, 205, 68, 215, 144, 214, 183, 53, 68, 215, 144, 214, 184, 57, 68, 215, 144, 214, 188, 69, 68, 215, 145, 214, 188, 69, 68, 215, 145, 214, 191, 77, 68, 215, 146, 214, 188, 69, 68, 215, 147, 214, 188, 69, 68, 215, 148, 214, 188, 69, 68, 215, 149, 214, 185, 61, 68, 215, 149, 214, 188, 69, 68, 215, 150, 214, 188, 69, 68, 215, 152, 214, 188, 69, 68, 215, 153, 214, 180, 41, 68, 215, 153, 214, 188, 69, 68, 215, 154, 214, 188, 69, 68, 215, 155, 214, 188, 69, 68, 215, 155, 214, 191, 77, 68, 215, 156, 214, 188, 69, 68, 215, 158, 214, 188, 69, 68, 215, 160, 214, 188, 69, 68, 215, 161, 214, 188, 69, 68, 215, 163, 214, 188, 69, 68, 215, 164, 214, 188, 69, 68, 215, 164, 214, 191, 77, 68, 215, 166, 214, 188, 69, 68, 215, 167, 214, 188, 69, 68, 215, 168, 214, 188, 69, 68, 215, 169, 214, 188, 69, 68, 215, 169, 215, 129, 81, 68, 215, 169, 215, 130, 85, 68, 215, 170, 214, 188, 69, 68, 215, 178, 214, 183, 53, 68, 216, 167, 217, 139, 93, 68, 216, 167, 217, 147, 205, 68, 216, 167, 217, 148, 205, 68, 216, 167, 217, 149, 185, 68, 216, 176, 217, 176, 125, 68, 216, 177, 217, 176, 125, 68, 217, 128, 217, 139, 93, 68, 217, 128, 217, 142, 105, 68, 217, 128, 217, 143, 109, 68, 217, 128, 217, 144, 113, 68, 217, 128, 217, 145, 117, 68, 217, 128, 217, 146, 121, 68, 217, 135, 217, 176, 125, 68, 217, 136, 217, 148, 205, 68, 217, 137, 217, 176, 125, 68, 217, 138, 217, 148, 205, 68, 219, 146, 217, 148, 205, 68, 219, 149, 217, 148, 205, 69, 32, 204, 136, 204, 128, 206, 69, 32, 204, 136, 204, 129, 206, 69, 32, 204, 136, 205, 130, 206, 69, 32, 204, 147, 204, 128, 206, 69, 32, 204, 147, 204, 129, 206, 69, 32, 204, 147, 205, 130, 206, 69, 32, 204, 148, 204, 128, 206, 69, 32, 204, 148, 204, 129, 206, 69, 32, 204, 148, 205, 130, 206, 69, 32, 217, 140, 217, 145, 118, 69, 32, 217, 141, 217, 145, 118, 69, 32, 217, 142, 217, 145, 118, 69, 32, 217, 143, 217, 145, 118, 69, 32, 217, 144, 217, 145, 118, 69, 32, 217, 145, 217, 176, 126, 69, 226, 171, 157, 204, 184, 5, 70, 206, 185, 204, 136, 204, 129, 206, 70, 207, 133, 204, 136, 204, 129, 206, 70, 215, 169, 214, 188, 215, 129, 82, 70, 215, 169, 214, 188, 215, 130, 86, 70, 217, 128, 217, 142, 217, 145, 118, 70, 217, 128, 217, 143, 217, 145, 118, 70, 217, 128, 217, 144, 217, 145, 118, 70, 224, 164, 149, 224, 164, 188, 13, 70, 224, 164, 150, 224, 164, 188, 13, 70, 224, 164, 151, 224, 164, 188, 13, 70, 224, 164, 156, 224, 164, 188, 13, 70, 224, 164, 161, 224, 164, 188, 13, 70, 224, 164, 162, 224, 164, 188, 13, 70, 224, 164, 171, 224, 164, 188, 13, 70, 224, 164, 175, 224, 164, 188, 13, 70, 224, 166, 161, 224, 166, 188, 13, 70, 224, 166, 162, 224, 166, 188, 13, 70, 224, 166, 175, 224, 166, 188, 13, 70, 224, 168, 150, 224, 168, 188, 13, 70, 224, 168, 151, 224, 168, 188, 13, 70, 224, 168, 156, 224, 168, 188, 13, 70, 224, 168, 171, 224, 168, 188, 13, 70, 224, 168, 178, 224, 168, 188, 13, 70, 224, 168, 184, 224, 168, 188, 13, 70, 224, 172, 161, 224, 172, 188, 13, 70, 224, 172, 162, 224, 172, 188, 13, 70, 224, 190, 178, 224, 190, 128, 161, 70, 224, 190, 179, 224, 190, 128, 161, 70, 227, 131, 134, 227, 130, 153, 17, 72, 240, 157, 133, 151, 240, 157, 133, 165, 177, 72, 240, 157, 133, 152, 240, 157, 133, 165, 177, 72, 240, 157, 134, 185, 240, 157, 133, 165, 177, 72, 240, 157, 134, 186, 240, 157, 133, 165, 177, 73, 224, 190, 178, 224, 189, 177, 224, 190, 128, 162, 73, 224, 190, 179, 224, 189, 177, 224, 190, 128, 162, 76, 240, 157, 133, 152, 240, 157, 133, 165, 240, 157, 133, 174, 178, 76, 240, 157, 133, 152, 240, 157, 133, 165, 240, 157, 133, 175, 178, 76, 240, 157, 133, 152, 240, 157, 133, 165, 240, 157, 133, 176, 178, 76, 240, 157, 133, 152, 240, 157, 133, 165, 240, 157, 133, 177, 178, 76, 240, 157, 133, 152, 240, 157, 133, 165, 240, 157, 133, 178, 178, 76, 240, 157, 134, 185, 240, 157, 133, 165, 240, 157, 133, 174, 178, 76, 240, 157, 134, 185, 240, 157, 133, 165, 240, 157, 133, 175, 178, 76, 240, 157, 134, 186, 240, 157, 133, 165, 240, 157, 133, 174, 178, 76, 240, 157, 134, 186, 240, 157, 133, 165, 240, 157, 133, 175, 178, 131, 65, 204, 130, 205, 131, 65, 204, 134, 205, 131, 65, 204, 135, 205, 131, 65, 204, 136, 205, 131, 65, 204, 138, 205, 131, 65, 204, 163, 185, 131, 67, 204, 167, 169, 131, 69, 204, 130, 205, 131, 69, 204, 132, 205, 131, 69, 204, 163, 185, 131, 69, 204, 167, 169, 131, 73, 204, 136, 205, 131, 76, 204, 163, 185, 131, 79, 204, 130, 205, 131, 79, 204, 131, 205, 131, 79, 204, 132, 205, 131, 79, 204, 135, 205, 131, 79, 204, 136, 205, 131, 79, 204, 155, 177, 131, 79, 204, 163, 185, 131, 79, 204, 168, 169, 131, 82, 204, 163, 185, 131, 83, 204, 129, 205, 131, 83, 204, 140, 205, 131, 83, 204, 163, 185, 131, 85, 204, 131, 205, 131, 85, 204, 132, 205, 131, 85, 204, 136, 205, 131, 85, 204, 155, 177, 131, 97, 204, 130, 205, 131, 97, 204, 134, 205, 131, 97, 204, 135, 205, 131, 97, 204, 136, 205, 131, 97, 204, 138, 205, 131, 97, 204, 163, 185, 131, 99, 204, 167, 169, 131, 101, 204, 130, 205, 131, 101, 204, 132, 205, 131, 101, 204, 163, 185, 131, 101, 204, 167, 169, 131, 105, 204, 136, 205, 131, 108, 204, 163, 185, 131, 111, 204, 130, 205, 131, 111, 204, 131, 205, 131, 111, 204, 132, 205, 131, 111, 204, 135, 205, 131, 111, 204, 136, 205, 131, 111, 204, 155, 177, 131, 111, 204, 163, 185, 131, 111, 204, 168, 169, 131, 114, 204, 163, 185, 131, 115, 204, 129, 205, 131, 115, 204, 140, 205, 131, 115, 204, 163, 185, 131, 117, 204, 131, 205, 131, 117, 204, 132, 205, 131, 117, 204, 136, 205, 131, 117, 204, 155, 177, 132, 206, 145, 204, 147, 205, 132, 206, 145, 204, 148, 205, 132, 206, 149, 204, 147, 205, 132, 206, 149, 204, 148, 205, 132, 206, 151, 204, 147, 205, 132, 206, 151, 204, 148, 205, 132, 206, 153, 204, 147, 205, 132, 206, 153, 204, 148, 205, 132, 206, 159, 204, 147, 205, 132, 206, 159, 204, 148, 205, 132, 206, 165, 204, 148, 205, 132, 206, 169, 204, 147, 205, 132, 206, 169, 204, 148, 205, 132, 206, 177, 204, 128, 205, 132, 206, 177, 204, 129, 205, 132, 206, 177, 204, 147, 205, 132, 206, 177, 204, 148, 205, 132, 206, 177, 205, 130, 205, 132, 206, 181, 204, 147, 205, 132, 206, 181, 204, 148, 205, 132, 206, 183, 204, 128, 205, 132, 206, 183, 204, 129, 205, 132, 206, 183, 204, 147, 205, 132, 206, 183, 204, 148, 205, 132, 206, 183, 205, 130, 205, 132, 206, 185, 204, 136, 205, 132, 206, 185, 204, 147, 205, 132, 206, 185, 204, 148, 205, 132, 206, 191, 204, 147, 205, 132, 206, 191, 204, 148, 205, 132, 207, 133, 204, 136, 205, 132, 207, 133, 204, 147, 205, 132, 207, 133, 204, 148, 205, 132, 207, 137, 204, 128, 205, 132, 207, 137, 204, 129, 205, 132, 207, 137, 204, 147, 205, 132, 207, 137, 204, 148, 205, 132, 207, 137, 205, 130, 205, 134, 206, 145, 204, 147, 204, 128, 206, 134, 206, 145, 204, 147, 204, 129, 206, 134, 206, 145, 204, 147, 205, 130, 206, 134, 206, 145, 204, 148, 204, 128, 206, 134, 206, 145, 204, 148, 204, 129, 206, 134, 206, 145, 204, 148, 205, 130, 206, 134, 206, 151, 204, 147, 204, 128, 206, 134, 206, 151, 204, 147, 204, 129, 206, 134, 206, 151, 204, 147, 205, 130, 206, 134, 206, 151, 204, 148, 204, 128, 206, 134, 206, 151, 204, 148, 204, 129, 206, 134, 206, 151, 204, 148, 205, 130, 206, 134, 206, 169, 204, 147, 204, 128, 206, 134, 206, 169, 204, 147, 204, 129, 206, 134, 206, 169, 204, 147, 205, 130, 206, 134, 206, 169, 204, 148, 204, 128, 206, 134, 206, 169, 204, 148, 204, 129, 206, 134, 206, 169, 204, 148, 205, 130, 206, 134, 206, 177, 204, 147, 204, 128, 206, 134, 206, 177, 204, 147, 204, 129, 206, 134, 206, 177, 204, 147, 205, 130, 206, 134, 206, 177, 204, 148, 204, 128, 206, 134, 206, 177, 204, 148, 204, 129, 206, 134, 206, 177, 204, 148, 205, 130, 206, 134, 206, 183, 204, 147, 204, 128, 206, 134, 206, 183, 204, 147, 204, 129, 206, 134, 206, 183, 204, 147, 205, 130, 206, 134, 206, 183, 204, 148, 204, 128, 206, 134, 206, 183, 204, 148, 204, 129, 206, 134, 206, 183, 204, 148, 205, 130, 206, 134, 207, 137, 204, 147, 204, 128, 206, 134, 207, 137, 204, 147, 204, 129, 206, 134, 207, 137, 204, 147, 205, 130, 206, 134, 207, 137, 204, 148, 204, 128, 206, 134, 207, 137, 204, 148, 204, 129, 206, 134, 207, 137, 204, 148, 205, 130, 206, 66, 204, 128, 205, 51, 66, 204, 129, 205, 51, 66, 204, 147, 205, 51, 67, 225, 133, 161, 1, 0, 67, 225, 133, 162, 1, 0, 67, 225, 133, 163, 1, 0, 67, 225, 133, 164, 1, 0, 67, 225, 133, 165, 1, 0, 67, 225, 133, 166, 1, 0, 67, 225, 133, 167, 1, 0, 67, 225, 133, 168, 1, 0, 67, 225, 133, 169, 1, 0, 67, 225, 133, 170, 1, 0, 67, 225, 133, 171, 1, 0, 67, 225, 133, 172, 1, 0, 67, 225, 133, 173, 1, 0, 67, 225, 133, 174, 1, 0, 67, 225, 133, 175, 1, 0, 67, 225, 133, 176, 1, 0, 67, 225, 133, 177, 1, 0, 67, 225, 133, 178, 1, 0, 67, 225, 133, 179, 1, 0, 67, 225, 133, 180, 1, 0, 67, 225, 133, 181, 1, 0, 67, 225, 134, 170, 1, 0, 67, 225, 134, 172, 1, 0, 67, 225, 134, 173, 1, 0, 67, 225, 134, 176, 1, 0, 67, 225, 134, 177, 1, 0, 67, 225, 134, 178, 1, 0, 67, 225, 134, 179, 1, 0, 67, 225, 134, 180, 1, 0, 67, 225, 134, 181, 1, 0, 68, 204, 136, 204, 129, 206, 51, 67, 227, 130, 153, 17, 4, 67, 227, 130, 154, 17, 4, 70, 224, 189, 177, 224, 189, 178, 162, 39, 70, 224, 189, 177, 224, 189, 180, 166, 39, 70, 224, 189, 177, 224, 190, 128, 162, 39, 0, 1]); - nfcValues = $toNativeArray($kindUint16, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40960, 40960, 40960, 0, 0, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 0, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 0, 0, 0, 0, 0, 0, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 0, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12166, 12171, 18079, 12176, 18094, 18099, 40960, 18109, 12281, 12286, 18114, 12306, 12421, 12426, 12431, 18134, 0, 12571, 12606, 12611, 18144, 18149, 18164, 0, 40960, 12746, 12751, 12756, 18214, 12876, 0, 0, 12946, 12951, 18224, 12956, 18239, 18244, 40960, 18254, 13061, 13066, 18259, 13086, 13206, 13211, 13216, 18279, 0, 13356, 13391, 13396, 18289, 18294, 18309, 0, 40960, 13536, 13541, 13546, 18359, 13671, 0, 13696, 12181, 12961, 18084, 18229, 12211, 12991, 12231, 13011, 12236, 13016, 12241, 13021, 12246, 13026, 12256, 13036, 0, 0, 18119, 18264, 12296, 13076, 12301, 13081, 12331, 13111, 12316, 13096, 12356, 13136, 12366, 13146, 12371, 13151, 12381, 13161, 12386, 13166, 0, 0, 12436, 13221, 12441, 13226, 12446, 13231, 12481, 13261, 12451, 0, 0, 0, 12491, 13271, 12511, 13296, 0, 12521, 13306, 12531, 13316, 12526, 13311, 0, 0, 0, 0, 12566, 13351, 12591, 13376, 12581, 13366, 0, 0, 0, 18154, 18299, 12616, 13401, 12626, 13411, 0, 0, 12656, 13441, 12681, 13466, 12666, 13451, 18189, 18334, 12691, 13476, 12706, 13491, 18194, 18339, 12731, 13521, 12716, 13506, 0, 0, 18204, 18349, 18209, 18354, 12761, 13551, 12771, 13561, 12776, 13566, 12806, 13596, 12841, 13631, 12881, 13676, 12901, 12916, 13716, 12926, 13726, 12931, 13731, 40960, 0, 0, 0, 0, 33024, 33024, 33024, 0, 0, 0, 0, 0, 0, 12191, 12971, 12461, 13241, 12631, 13416, 12781, 13571, 14822, 15221, 14815, 15214, 14829, 15228, 14808, 15207, 0, 14535, 14934, 14528, 14927, 13770, 13788, 0, 0, 12376, 13156, 12501, 13286, 18179, 18324, 14759, 15158, 13806, 13812, 13276, 0, 0, 0, 12351, 13131, 0, 0, 12561, 13346, 14542, 14941, 13764, 13782, 13776, 13794, 12196, 12976, 12201, 12981, 12321, 13101, 12326, 13106, 12466, 13246, 12471, 13251, 12636, 13421, 12641, 13426, 12671, 13456, 12676, 13461, 12786, 13576, 12791, 13581, 12701, 13486, 12726, 13516, 0, 0, 12401, 13181, 0, 0, 0, 0, 0, 0, 18089, 18234, 18129, 18274, 14710, 15109, 14675, 15074, 18159, 18304, 14703, 15102, 12891, 13686, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39219, 39219, 39219, 39219, 39219, 33075, 39219, 39219, 39219, 39219, 39219, 39219, 39219, 33075, 33075, 39219, 33075, 39219, 33075, 39219, 39219, 33076, 33070, 33070, 33070, 33070, 33076, 39212, 33070, 33070, 33070, 33070, 33070, 33066, 33066, 39214, 39214, 39214, 39214, 39210, 39210, 33070, 33070, 33070, 33070, 39214, 39214, 33070, 39214, 39214, 33070, 33070, 33025, 33025, 33025, 33025, 39169, 33070, 33070, 33070, 33070, 33075, 33075, 33075, 18885, 18890, 39219, 18895, 19080, 39223, 33075, 33070, 33070, 33070, 33075, 33075, 33075, 33070, 33070, 0, 33075, 33075, 33075, 33070, 33070, 33070, 33070, 33075, 33076, 33070, 33070, 33075, 33077, 33078, 33078, 33077, 33078, 33078, 33077, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 0, 0, 0, 0, 371, 0, 0, 0, 0, 0, 33024, 0, 0, 0, 55, 0, 0, 0, 0, 0, 33024, 13752, 13824, 206, 13854, 13866, 13884, 0, 13914, 0, 13932, 13962, 15903, 40960, 0, 0, 0, 40960, 0, 40960, 0, 40960, 0, 0, 0, 0, 0, 40960, 0, 40960, 0, 0, 0, 40960, 0, 0, 0, 40960, 13902, 13950, 18453, 13998, 18495, 14016, 16007, 40960, 0, 0, 0, 40960, 0, 40960, 0, 40960, 0, 0, 0, 0, 0, 40960, 14136, 14148, 0, 14130, 0, 0, 40960, 14112, 0, 0, 0, 0, 14196, 14172, 14214, 0, 40960, 0, 0, 40960, 0, 40960, 40960, 40960, 40960, 14184, 40960, 0, 0, 0, 40960, 0, 0, 0, 0, 40960, 0, 0, 0, 40960, 0, 0, 0, 40960, 0, 40960, 0, 0, 40960, 0, 0, 40960, 0, 40960, 40960, 40960, 40960, 14316, 40960, 0, 0, 0, 40960, 0, 0, 14154, 14286, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14118, 14250, 14124, 14256, 0, 0, 14142, 14274, 40960, 40960, 14400, 14406, 14160, 14292, 14166, 14298, 0, 0, 14178, 14310, 14190, 14322, 14202, 14334, 40960, 40960, 14412, 14418, 14244, 14376, 14208, 14340, 14220, 14352, 14226, 14358, 14232, 14364, 0, 0, 14238, 14370, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33070, 33075, 33075, 33075, 33075, 33070, 33075, 33075, 33075, 33071, 33070, 33075, 33075, 33075, 33075, 33075, 33075, 33070, 33070, 33070, 33070, 33070, 33070, 33075, 33075, 33070, 33075, 33075, 33071, 33074, 33075, 33030, 33031, 33032, 33033, 33034, 33035, 33036, 33037, 33038, 33039, 33039, 33040, 33041, 33042, 0, 33043, 0, 0, 0, 0, 0, 0, 0, 0, 40960, 0, 40960, 33047, 33048, 33049, 33050, 33051, 33052, 33053, 33054, 39219, 39219, 39214, 33070, 33075, 33075, 33075, 33075, 33075, 33070, 33075, 33075, 33070, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33055, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33070, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 0, 33070, 33075, 33075, 33070, 33075, 33075, 33070, 33075, 33075, 33075, 33070, 33070, 33070, 33047, 33048, 33049, 33075, 33075, 33075, 33070, 33075, 33075, 33070, 33070, 33075, 33075, 33075, 33075, 33075, 0, 0, 0, 0, 0, 40960, 11571, 40960, 11579, 40960, 11587, 40960, 11595, 40960, 11603, 0, 0, 40960, 11611, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33027, 39168, 0, 0, 0, 0, 40960, 11619, 40960, 11627, 40960, 40960, 33075, 33075, 33070, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33070, 33075, 33075, 33078, 33067, 33070, 33066, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33076, 33074, 33074, 33070, 0, 33075, 33077, 33070, 33075, 33070, 12206, 12986, 12216, 12996, 12221, 13001, 12226, 13006, 14563, 14962, 12251, 13031, 12261, 13041, 12276, 13056, 12266, 13046, 12271, 13051, 14598, 14997, 14605, 15004, 12336, 13116, 12341, 13121, 14619, 15018, 12346, 13126, 12361, 13141, 12391, 13171, 12406, 13186, 12396, 13176, 12411, 13191, 12416, 13196, 12486, 13266, 14626, 15025, 12496, 13281, 12506, 13291, 12516, 13301, 18139, 18284, 14633, 15032, 12541, 13326, 12536, 13321, 12546, 13331, 12551, 13336, 12556, 13341, 12576, 13361, 12586, 13371, 12601, 13386, 12596, 13381, 14668, 15067, 14682, 15081, 14689, 15088, 14696, 15095, 12646, 13431, 12651, 13436, 12661, 13446, 18184, 18329, 14766, 15165, 12686, 13471, 12696, 13481, 18199, 18344, 14773, 15172, 14780, 15179, 14787, 15186, 12711, 13496, 12721, 13511, 12741, 13531, 12736, 13526, 12801, 13591, 12816, 13606, 12811, 13601, 14794, 15193, 14801, 15200, 12821, 13611, 12826, 13616, 12831, 13621, 12836, 13626, 12851, 13641, 12846, 13636, 12856, 13651, 12861, 13656, 12866, 13661, 12896, 13691, 12921, 13721, 12936, 13736, 12941, 13741, 13201, 13501, 13646, 13706, 0, 13800, 0, 0, 0, 0, 18104, 18249, 12186, 12966, 14479, 14878, 14472, 14871, 14493, 14892, 14486, 14885, 14549, 14948, 14507, 14906, 14500, 14899, 14521, 14920, 14514, 14913, 14556, 14955, 18124, 18269, 12311, 13091, 12291, 13071, 14577, 14976, 14570, 14969, 14591, 14990, 14584, 14983, 14612, 15011, 12456, 13236, 12476, 13256, 18174, 18319, 12621, 13406, 14647, 15046, 14640, 15039, 14661, 15060, 14654, 15053, 14752, 15151, 14724, 15123, 14717, 15116, 14738, 15137, 14731, 15130, 14745, 15144, 12796, 13586, 12766, 13556, 14843, 15242, 14836, 15235, 14857, 15256, 14850, 15249, 14864, 15263, 12871, 13666, 12911, 13711, 12906, 13701, 12886, 13681, 0, 0, 0, 0, 0, 0, 18459, 18465, 18741, 18765, 18749, 18773, 18757, 18781, 18369, 18375, 18597, 18621, 18605, 18629, 18613, 18637, 18477, 18483, 15823, 15839, 15831, 15847, 0, 0, 18381, 18387, 15615, 15631, 15623, 15639, 0, 0, 18501, 18507, 18789, 18813, 18797, 18821, 18805, 18829, 18393, 18399, 18645, 18669, 18653, 18677, 18661, 18685, 18525, 18531, 15919, 15943, 15927, 15951, 15935, 15959, 18405, 18411, 15663, 15687, 15671, 15695, 15679, 15703, 18537, 18543, 15967, 15983, 15975, 15991, 0, 0, 18417, 18423, 15711, 15727, 15719, 15735, 0, 0, 18555, 18561, 16023, 16047, 16031, 16055, 16039, 16063, 0, 18429, 0, 15743, 0, 15751, 0, 15759, 18579, 18585, 18837, 18861, 18845, 18869, 18853, 18877, 18435, 18441, 18693, 18717, 18701, 18725, 18709, 18733, 18447, 17205, 13992, 17211, 18489, 17217, 14010, 17223, 14040, 17229, 14064, 17235, 18567, 17241, 0, 0, 15799, 15807, 16795, 16825, 16805, 16835, 16815, 16845, 15599, 15607, 16615, 16645, 16625, 16655, 16635, 16665, 15871, 15879, 16855, 16885, 16865, 16895, 16875, 16905, 15647, 15655, 16675, 16705, 16685, 16715, 16695, 16725, 16087, 16095, 16915, 16945, 16925, 16955, 16935, 16965, 15767, 15775, 16735, 16765, 16745, 16775, 16755, 16785, 13980, 13974, 15783, 13986, 15791, 0, 18471, 15815, 13836, 13830, 13818, 17157, 13842, 33024, 470, 41216, 33024, 13758, 15855, 14004, 15863, 0, 18513, 15887, 13848, 17163, 13860, 17169, 13872, 15270, 15277, 15284, 14028, 14022, 15895, 17659, 0, 0, 14034, 15911, 13896, 13890, 13878, 17175, 0, 15291, 15298, 15305, 14082, 14076, 15999, 17667, 14052, 14058, 14088, 16015, 13944, 13938, 13926, 17187, 13920, 13746, 17151, 129, 0, 0, 16071, 14094, 16079, 0, 18591, 16103, 13908, 17181, 13956, 17199, 13968, 17005, 41216, 0, 0, 15389, 0, 40960, 15396, 40960, 0, 15403, 40960, 15410, 0, 0, 0, 40960, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12156, 40960, 15424, 0, 40960, 40960, 0, 0, 0, 0, 0, 0, 0, 15417, 12151, 12161, 15431, 15438, 40960, 40960, 15445, 15452, 40960, 40960, 15459, 15466, 40960, 40960, 40960, 40960, 0, 0, 15473, 15480, 40960, 40960, 15501, 15508, 40960, 40960, 15515, 15522, 0, 0, 0, 0, 0, 0, 0, 40960, 40960, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40960, 0, 0, 0, 0, 0, 40960, 40960, 0, 40960, 15543, 15550, 15557, 15564, 0, 0, 40960, 40960, 40960, 40960, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40960, 0, 0, 0, 0, 40960, 16159, 40960, 16167, 40960, 16175, 40960, 16183, 40960, 16191, 40960, 16199, 40960, 16207, 40960, 16215, 40960, 16223, 40960, 16231, 40960, 16239, 40960, 16247, 0, 40960, 16255, 40960, 16263, 40960, 16271, 0, 0, 0, 0, 0, 40960, 16279, 16287, 40960, 16295, 16303, 40960, 16311, 16319, 40960, 16327, 16335, 40960, 16343, 16351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16151, 0, 0, 0, 0, 39172, 39172, 33024, 33024, 40960, 16359, 0, 0, 0, 0, 0, 0, 0, 40960, 0, 0, 0, 0, 40960, 16375, 40960, 16383, 40960, 16391, 40960, 16399, 40960, 16407, 40960, 16415, 40960, 16423, 40960, 16431, 40960, 16439, 40960, 16447, 40960, 16455, 40960, 16463, 0, 40960, 16471, 40960, 16479, 40960, 16487, 0, 0, 0, 0, 0, 40960, 16495, 16503, 40960, 16511, 16519, 40960, 16527, 16535, 40960, 16543, 16551, 40960, 16559, 16567, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40960, 40960, 40960, 40960, 0, 16367, 0, 0, 16575, 16583, 16591, 16599, 0, 0, 40960, 16607, 0, 4986, 3326, 5078, 5026, 3674, 1774, 2274, 5678, 5678, 2574, 5218, 2374, 2570, 3058, 4050, 4450, 4762, 4822, 4874, 5150, 3446, 3586, 3758, 3910, 4706, 5194, 5494, 1810, 2230, 3466, 3794, 4758, 5574, 2742, 3706, 4742, 4890, 3110, 4542, 4834, 2850, 3346, 3610, 3870, 5162, 1874, 2026, 2134, 3214, 3458, 3790, 4082, 4474, 4750, 4774, 5066, 5362, 5542, 5570, 4142, 4206, 4390, 4678, 5246, 5582, 4942, 2506, 2878, 4318, 4510, 3842, 4150, 5018, 5354, 2502, 2706, 3450, 3630, 3682, 4374, 4414, 5290, 2130, 4522, 2038, 2034, 4250, 4394, 4702, 5298, 4970, 3114, 3446, 4954, 1786, 2662, 2966, 3890, 4018, 2166, 4158, 1890, 2938, 1754, 3566, 3238, 4370, 2250, 2486, 4094, 4710, 4926, 3514, 5114, 3558, 3130, 4638, 3162, 4014, 1838, 1962, 2030, 3414, 4350, 4598, 4938, 5214, 2142, 2322, 2586, 2866, 3266, 3710, 4162, 5274, 5502, 5586, 5610, 2106, 3318, 3494, 5102, 2814, 3034, 3062, 3206, 3694, 3770, 3946, 4238, 4402, 4502, 5086, 4718, 5126, 5250, 2066, 2110, 2342, 3754, 4854, 4926, 2846, 2958, 3154, 3506, 4314, 3878, 1854, 2434, 2662, 2762, 2970, 3906, 3934, 4462, 4494, 5222, 5350, 5366, 5426, 1878, 4226, 5202, 5326, 2994, 1818, 1914, 2666, 2698, 3250, 3446, 3782, 4046, 4730, 5146, 5670, 3302, 5286, 2102, 3378, 3390, 3602, 3658, 3918, 4010, 4138, 4366, 5438, 1970, 3078, 5302, 1898, 2734, 3634, 5090, 2922, 3002, 3398, 3890, 5310, 2074, 2306, 2714, 3286, 3362, 3426, 3574, 3914, 4030, 4442, 4858, 4870, 5210, 5338, 2182, 3662, 2310, 3786, 3950, 4746, 5314, 5550, 5590, 3386, 3626, 4550, 4282, 4294, 4330, 3866, 3746, 4966, 1846, 4654, 2078, 2062, 2830, 3118, 4342, 2646, 3590, 3314, 5098, 4842, 5294, 4902, 2858, 1930, 2398, 0, 0, 2482, 0, 3298, 0, 0, 2042, 3874, 4070, 4170, 4198, 4202, 4222, 5374, 4334, 4466, 0, 4754, 0, 4950, 0, 0, 5130, 5174, 0, 0, 0, 5458, 5462, 5466, 5566, 5166, 5322, 1882, 1918, 1938, 2126, 2138, 2202, 2382, 2410, 2418, 2478, 2490, 2710, 2718, 2982, 3022, 3030, 3054, 3226, 3274, 3306, 3418, 3614, 3642, 3690, 3774, 3806, 3922, 4146, 4174, 4182, 4178, 4186, 4190, 4194, 4214, 4218, 4254, 4274, 4302, 4402, 4410, 4418, 4438, 4478, 4558, 4610, 4610, 4714, 4882, 4906, 4958, 4962, 5030, 5034, 5122, 5130, 5342, 5410, 5434, 2974, 5921, 4582, 0, 0, 1762, 2022, 1958, 1870, 1934, 1978, 2122, 2150, 2382, 2362, 2378, 2406, 2482, 2498, 2566, 2578, 2606, 2622, 2854, 2862, 2910, 2942, 2990, 3014, 2998, 3030, 3018, 3054, 3082, 3170, 3182, 3190, 3230, 3298, 3346, 3350, 3370, 3498, 3514, 3602, 3678, 3670, 3690, 3718, 3774, 4118, 3810, 3862, 3874, 3938, 3966, 4002, 4038, 4042, 4070, 4074, 4090, 4110, 4106, 4154, 4278, 4302, 4326, 4382, 4402, 4430, 4478, 4658, 4698, 4814, 4886, 4898, 4906, 4930, 4950, 4934, 4958, 4954, 4946, 4962, 4974, 5034, 5094, 5142, 5198, 5230, 5306, 5342, 5374, 5394, 5410, 5422, 5434, 5518, 5678, 5816, 5811, 5861, 1546, 1586, 1590, 5991, 6036, 6156, 5658, 5674, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1790, 1782, 1798, 5706, 1866, 1882, 1886, 1894, 1902, 1906, 1918, 1910, 1462, 5726, 1938, 1942, 1946, 1974, 5711, 1466, 1954, 1986, 5721, 2002, 2010, 1850, 2018, 2022, 6196, 2050, 2058, 1474, 2082, 2086, 2094, 2098, 1478, 2122, 2126, 2138, 2150, 2154, 2158, 2166, 2198, 2202, 2210, 2226, 2234, 2238, 2238, 2238, 5741, 3734, 2258, 2266, 5746, 2278, 2286, 2294, 2334, 2314, 2326, 2330, 2338, 2346, 2350, 2358, 2366, 2370, 2370, 2378, 2386, 2390, 2402, 2438, 2410, 2442, 2414, 2422, 2062, 2514, 2458, 2462, 2466, 2454, 2474, 2470, 2494, 5751, 2522, 2526, 2534, 2546, 2554, 2582, 5756, 5761, 2594, 2598, 2602, 2590, 2610, 1482, 1486, 2618, 2626, 2626, 5766, 2654, 2658, 2662, 2670, 5771, 2678, 2682, 2898, 2690, 1490, 2702, 2718, 2730, 2726, 5781, 2738, 5786, 2750, 2746, 2754, 2770, 2774, 1494, 2790, 2798, 2802, 2806, 1498, 5791, 1502, 2834, 2838, 2842, 2850, 6246, 2874, 5801, 5801, 4570, 2890, 2890, 1506, 5836, 6046, 2906, 2914, 1510, 2934, 2950, 2954, 2962, 2978, 1518, 1514, 2982, 5806, 2986, 3006, 3010, 3014, 3010, 3026, 3030, 3046, 3038, 3042, 3050, 3054, 3058, 3070, 3074, 3098, 3106, 3122, 3142, 5821, 3138, 3126, 3150, 3158, 3178, 5826, 3186, 3174, 3166, 1522, 3194, 3202, 3210, 3198, 1526, 3226, 3234, 5831, 3278, 3330, 3294, 1538, 3306, 1534, 1530, 1990, 1994, 3334, 3310, 4526, 1638, 3346, 3350, 3354, 3374, 3366, 5856, 1542, 3394, 3382, 3410, 3418, 5866, 3422, 3402, 3430, 1546, 3434, 3438, 3442, 3454, 5871, 3462, 1550, 3474, 5876, 3478, 1554, 3490, 3502, 3514, 3518, 5881, 5776, 5886, 3550, 5891, 3562, 3570, 3554, 3582, 3598, 3614, 3602, 3606, 3618, 3622, 5896, 3594, 3646, 3650, 1558, 3670, 3666, 5901, 3638, 3698, 5906, 5911, 3702, 3722, 3718, 3714, 1562, 3726, 3742, 3738, 3750, 5716, 3766, 5916, 3778, 5926, 3798, 3810, 3830, 5931, 3850, 3854, 5936, 5941, 3882, 3898, 1566, 3902, 1570, 1570, 3926, 3930, 3938, 3942, 3954, 1574, 3978, 5946, 4006, 5951, 4018, 5796, 4034, 5956, 5961, 5966, 1578, 1582, 4090, 5976, 5971, 5981, 5986, 4098, 4102, 4102, 4110, 1590, 4114, 1594, 1598, 5996, 4134, 4142, 4154, 1602, 6001, 4190, 6006, 6011, 4222, 4246, 1606, 4254, 4258, 4262, 6016, 6021, 6021, 4286, 1610, 6026, 4306, 4310, 1614, 6031, 4338, 1618, 4354, 4346, 4362, 6041, 4386, 1622, 4398, 4406, 4422, 1626, 6051, 6056, 1630, 6061, 4446, 6066, 4458, 4470, 4478, 6071, 6076, 4498, 6081, 4506, 5841, 1634, 4530, 4534, 1642, 4538, 2614, 6086, 6091, 5846, 5851, 4570, 4574, 5110, 1646, 4618, 4614, 4622, 2114, 4626, 4630, 4634, 4642, 6096, 4638, 4646, 4666, 4670, 4650, 4674, 4694, 4714, 4662, 4682, 4686, 4690, 6101, 6111, 6106, 1650, 4722, 4726, 4734, 6131, 4738, 6116, 1654, 1658, 6121, 6126, 1662, 4770, 4774, 4778, 4782, 4794, 4790, 4802, 4798, 4814, 4806, 4810, 4818, 1666, 4826, 4830, 1670, 4846, 4850, 6136, 4862, 4866, 1674, 4878, 1470, 6141, 6146, 1678, 1682, 4922, 4946, 4974, 4990, 6151, 5010, 5014, 5038, 5050, 6161, 5731, 5062, 5058, 5070, 5736, 5082, 5094, 6166, 6171, 5158, 5170, 5178, 6176, 5182, 5226, 5238, 5242, 5234, 5254, 5258, 6181, 5270, 1686, 5278, 6186, 1690, 5334, 2758, 5358, 6191, 6201, 1694, 1698, 5398, 6206, 1702, 6211, 5422, 5422, 5430, 6216, 5454, 1706, 5470, 5482, 5490, 5498, 1710, 6221, 5518, 5546, 5558, 1714, 1718, 5562, 6226, 1722, 6231, 6236, 6241, 5598, 1726, 5618, 5626, 5630, 5638, 5646, 5654, 6251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]); - nfcIndex = $toNativeArray($kindUint8, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 1, 2, 3, 47, 4, 5, 0, 48, 49, 6, 7, 8, 50, 9, 51, 52, 10, 0, 0, 11, 53, 54, 12, 0, 55, 56, 57, 0, 58, 2, 3, 4, 5, 0, 0, 0, 0, 0, 0, 6, 7, 8, 9, 0, 10, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 60, 0, 13, 61, 62, 63, 64, 65, 66, 67, 68, 63, 69, 70, 71, 0, 72, 73, 74, 75, 76, 0, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 0, 87, 0, 88, 89, 90, 91, 0, 0, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, 94, 0, 0, 95, 0, 96, 0, 0, 0, 97, 98, 99, 100, 14, 101, 102, 103, 104, 0, 0, 105, 0, 0, 0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 106, 0, 0, 107, 108, 0, 109, 110, 111, 24, 25, 112, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114, 0, 0, 0, 0, 0, 0, 0, 115, 0, 116, 0, 117, 0, 0, 0, 0, 0, 0, 0, 0, 118, 26, 27, 28, 119, 120, 0, 0, 0, 121, 0, 0, 122, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 124, 125, 126, 0, 0, 0, 0, 127, 0, 0, 128, 129, 130, 131, 132, 0, 0, 133, 134, 0, 0, 0, 135, 136, 137, 138, 139, 140, 141, 142, 136, 137, 138, 139, 140, 141, 142, 136, 137, 138, 139, 140, 141, 142, 136, 137, 138, 139, 140, 141, 142, 136, 137, 138, 139, 140, 141, 142, 136, 137, 138, 139, 140, 141, 142, 136, 137, 138, 139, 140, 141, 142, 136, 137, 138, 139, 140, 141, 142, 136, 137, 138, 139, 140, 141, 142, 136, 137, 138, 139, 140, 141, 142, 136, 137, 138, 139, 140, 141, 142, 136, 137, 138, 139, 140, 141, 142, 136, 137, 138, 139, 140, 141, 142, 136, 137, 138, 139, 140, 141, 142, 136, 137, 138, 139, 140, 141, 142, 136, 137, 138, 139, 140, 141, 142, 136, 137, 138, 139, 140, 141, 142, 136, 137, 138, 139, 140, 141, 142, 136, 137, 138, 139, 140, 141, 142, 136, 137, 138, 139, 140, 141, 142, 136, 137, 138, 139, 140, 141, 142, 136, 137, 138, 139, 140, 141, 142, 136, 137, 138, 139, 140, 141, 142, 136, 137, 138, 139, 140, 141, 142, 136, 137, 138, 139, 140, 141, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 30, 31, 32, 33, 34, 35, 36, 144, 145, 146, 0, 0, 147, 148, 149, 150, 0, 0, 0, 151, 152, 153, 154, 0, 0, 155, 156, 0, 0, 0, 0, 0, 0, 0, 157, 0, 0, 0, 158, 0, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, 0, 0, 161, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 0, 0, 0, 163, 0, 0, 164, 0, 0, 0, 165, 166, 0, 167, 131, 0, 168, 169, 0, 0, 170, 171, 172, 0, 0, 0, 173, 174, 175, 0, 0, 176, 177, 116, 0, 178, 0, 179, 0, 0, 0, 180, 0, 0, 0, 181, 182, 0, 183, 184, 185, 186, 0, 0, 0, 0, 0, 116, 0, 0, 0, 0, 187, 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 0, 0, 0, 190, 0, 0, 0, 0, 0, 0, 198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 199, 0, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 38, 39, 40, 41, 42, 43, 44, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 12, 0, 0, 0, 0, 13, 0, 0, 0, 0, 14, 0, 15, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]); - nfcSparseOffset = new sliceType$1([0, 5, 9, 11, 13, 24, 40, 42, 47, 58, 73, 86, 94, 99, 104, 106, 114, 121, 124, 132, 136, 140, 142, 144, 153, 157, 164, 169, 172, 182, 185, 192, 200, 203, 205, 208, 210, 215, 232, 244, 246, 252, 254, 256, 258, 260, 262, 264, 267, 270, 272, 275, 278, 282, 288, 290, 299, 301, 304, 306, 317, 321, 335, 338, 344, 350, 361, 365, 367, 369, 371, 373, 375, 381, 385, 387, 389, 397, 401, 404, 406, 408, 411, 414, 416, 418, 420, 422, 428, 431, 433, 440, 446, 452, 460, 466, 472, 478, 482, 496, 505, 508, 511, 513, 516, 518, 522, 527, 529, 531, 536, 542, 544, 546, 548, 554, 557, 559, 561, 567, 570, 578, 585, 588, 591, 593, 596, 604, 608, 615, 618, 624, 626, 629, 631, 634, 639, 641, 643, 645, 647, 649, 652, 654, 656, 658, 660, 662, 675, 685, 687, 689, 695, 697, 699, 702]); - nfcSparseValues = $toNativeArray($kindStruct, [$clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(41216, 168, 168), valueRange), $clone(new valueRange.ptr(33024, 175, 175), valueRange), $clone(new valueRange.ptr(33024, 180, 180), valueRange), $clone(new valueRange.ptr(33024, 184, 184), valueRange), $clone(new valueRange.ptr(145, 3, 0), valueRange), $clone(new valueRange.ptr(18169, 160, 161), valueRange), $clone(new valueRange.ptr(18219, 175, 176), valueRange), $clone(new valueRange.ptr(40960, 183, 183), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(40960, 146, 146), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33024, 152, 157), valueRange), $clone(new valueRange.ptr(6, 10, 0), valueRange), $clone(new valueRange.ptr(40960, 129, 129), valueRange), $clone(new valueRange.ptr(40960, 133, 133), valueRange), $clone(new valueRange.ptr(40960, 137, 137), valueRange), $clone(new valueRange.ptr(18519, 138, 138), valueRange), $clone(new valueRange.ptr(18549, 139, 139), valueRange), $clone(new valueRange.ptr(14046, 140, 140), valueRange), $clone(new valueRange.ptr(14070, 141, 141), valueRange), $clone(new valueRange.ptr(18573, 142, 142), valueRange), $clone(new valueRange.ptr(40960, 146, 146), valueRange), $clone(new valueRange.ptr(14100, 147, 148), valueRange), $clone(new valueRange.ptr(0, 15, 0), valueRange), $clone(new valueRange.ptr(40960, 131, 131), valueRange), $clone(new valueRange.ptr(40960, 135, 135), valueRange), $clone(new valueRange.ptr(40960, 139, 139), valueRange), $clone(new valueRange.ptr(40960, 141, 141), valueRange), $clone(new valueRange.ptr(14268, 144, 144), valueRange), $clone(new valueRange.ptr(14280, 145, 145), valueRange), $clone(new valueRange.ptr(14262, 147, 147), valueRange), $clone(new valueRange.ptr(40960, 150, 150), valueRange), $clone(new valueRange.ptr(14382, 151, 151), valueRange), $clone(new valueRange.ptr(14328, 156, 156), valueRange), $clone(new valueRange.ptr(14304, 157, 157), valueRange), $clone(new valueRange.ptr(14346, 158, 158), valueRange), $clone(new valueRange.ptr(40960, 180, 181), valueRange), $clone(new valueRange.ptr(14388, 182, 182), valueRange), $clone(new valueRange.ptr(14394, 183, 183), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 131, 135), valueRange), $clone(new valueRange.ptr(1, 4, 0), valueRange), $clone(new valueRange.ptr(33044, 129, 130), valueRange), $clone(new valueRange.ptr(33075, 132, 132), valueRange), $clone(new valueRange.ptr(33070, 133, 133), valueRange), $clone(new valueRange.ptr(33038, 135, 135), valueRange), $clone(new valueRange.ptr(0, 10, 0), valueRange), $clone(new valueRange.ptr(33075, 144, 151), valueRange), $clone(new valueRange.ptr(33050, 152, 152), valueRange), $clone(new valueRange.ptr(33051, 153, 153), valueRange), $clone(new valueRange.ptr(33052, 154, 154), valueRange), $clone(new valueRange.ptr(14424, 162, 162), valueRange), $clone(new valueRange.ptr(14430, 163, 163), valueRange), $clone(new valueRange.ptr(14442, 164, 164), valueRange), $clone(new valueRange.ptr(14436, 165, 165), valueRange), $clone(new valueRange.ptr(14448, 166, 166), valueRange), $clone(new valueRange.ptr(40960, 167, 167), valueRange), $clone(new valueRange.ptr(0, 14, 0), valueRange), $clone(new valueRange.ptr(14466, 128, 128), valueRange), $clone(new valueRange.ptr(40960, 129, 129), valueRange), $clone(new valueRange.ptr(14454, 130, 130), valueRange), $clone(new valueRange.ptr(40960, 146, 146), valueRange), $clone(new valueRange.ptr(14460, 147, 147), valueRange), $clone(new valueRange.ptr(40960, 149, 149), valueRange), $clone(new valueRange.ptr(33075, 150, 156), valueRange), $clone(new valueRange.ptr(33075, 159, 162), valueRange), $clone(new valueRange.ptr(33070, 163, 163), valueRange), $clone(new valueRange.ptr(33075, 164, 164), valueRange), $clone(new valueRange.ptr(33075, 167, 168), valueRange), $clone(new valueRange.ptr(33070, 170, 170), valueRange), $clone(new valueRange.ptr(33075, 171, 172), valueRange), $clone(new valueRange.ptr(33070, 173, 173), valueRange), $clone(new valueRange.ptr(0, 12, 0), valueRange), $clone(new valueRange.ptr(33056, 145, 145), valueRange), $clone(new valueRange.ptr(33075, 176, 176), valueRange), $clone(new valueRange.ptr(33070, 177, 177), valueRange), $clone(new valueRange.ptr(33075, 178, 179), valueRange), $clone(new valueRange.ptr(33070, 180, 180), valueRange), $clone(new valueRange.ptr(33075, 181, 182), valueRange), $clone(new valueRange.ptr(33070, 183, 185), valueRange), $clone(new valueRange.ptr(33075, 186, 186), valueRange), $clone(new valueRange.ptr(33070, 187, 188), valueRange), $clone(new valueRange.ptr(33075, 189, 189), valueRange), $clone(new valueRange.ptr(33070, 190, 190), valueRange), $clone(new valueRange.ptr(33075, 191, 191), valueRange), $clone(new valueRange.ptr(5, 7, 0), valueRange), $clone(new valueRange.ptr(33075, 128, 128), valueRange), $clone(new valueRange.ptr(33075, 129, 129), valueRange), $clone(new valueRange.ptr(33070, 130, 131), valueRange), $clone(new valueRange.ptr(33070, 132, 133), valueRange), $clone(new valueRange.ptr(33070, 134, 135), valueRange), $clone(new valueRange.ptr(33070, 136, 137), valueRange), $clone(new valueRange.ptr(33075, 138, 138), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(33075, 171, 177), valueRange), $clone(new valueRange.ptr(33070, 178, 178), valueRange), $clone(new valueRange.ptr(33075, 179, 179), valueRange), $clone(new valueRange.ptr(33070, 189, 189), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(33075, 150, 153), valueRange), $clone(new valueRange.ptr(33075, 155, 163), valueRange), $clone(new valueRange.ptr(33075, 165, 167), valueRange), $clone(new valueRange.ptr(33075, 169, 173), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33070, 153, 155), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(40960, 168, 168), valueRange), $clone(new valueRange.ptr(16111, 169, 169), valueRange), $clone(new valueRange.ptr(40960, 176, 176), valueRange), $clone(new valueRange.ptr(16119, 177, 177), valueRange), $clone(new valueRange.ptr(40960, 179, 179), valueRange), $clone(new valueRange.ptr(16127, 180, 180), valueRange), $clone(new valueRange.ptr(39171, 188, 188), valueRange), $clone(new valueRange.ptr(8, 6, 0), valueRange), $clone(new valueRange.ptr(33029, 141, 141), valueRange), $clone(new valueRange.ptr(33075, 145, 145), valueRange), $clone(new valueRange.ptr(33070, 146, 146), valueRange), $clone(new valueRange.ptr(33075, 147, 147), valueRange), $clone(new valueRange.ptr(33075, 148, 148), valueRange), $clone(new valueRange.ptr(17715, 152, 159), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33027, 188, 188), valueRange), $clone(new valueRange.ptr(39168, 190, 190), valueRange), $clone(new valueRange.ptr(8, 7, 0), valueRange), $clone(new valueRange.ptr(40960, 135, 135), valueRange), $clone(new valueRange.ptr(11435, 139, 140), valueRange), $clone(new valueRange.ptr(33029, 141, 141), valueRange), $clone(new valueRange.ptr(39168, 151, 151), valueRange), $clone(new valueRange.ptr(17779, 156, 157), valueRange), $clone(new valueRange.ptr(17795, 159, 159), valueRange), $clone(new valueRange.ptr(33075, 190, 190), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(17835, 179, 179), valueRange), $clone(new valueRange.ptr(17843, 182, 182), valueRange), $clone(new valueRange.ptr(33027, 188, 188), valueRange), $clone(new valueRange.ptr(8, 3, 0), valueRange), $clone(new valueRange.ptr(33029, 141, 141), valueRange), $clone(new valueRange.ptr(17803, 153, 155), valueRange), $clone(new valueRange.ptr(17827, 158, 158), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33027, 188, 188), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 141, 141), valueRange), $clone(new valueRange.ptr(0, 8, 0), valueRange), $clone(new valueRange.ptr(40960, 135, 135), valueRange), $clone(new valueRange.ptr(11459, 136, 136), valueRange), $clone(new valueRange.ptr(11451, 139, 139), valueRange), $clone(new valueRange.ptr(11467, 140, 140), valueRange), $clone(new valueRange.ptr(33029, 141, 141), valueRange), $clone(new valueRange.ptr(39168, 150, 151), valueRange), $clone(new valueRange.ptr(17851, 156, 156), valueRange), $clone(new valueRange.ptr(17859, 157, 157), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(40960, 146, 146), valueRange), $clone(new valueRange.ptr(11475, 148, 148), valueRange), $clone(new valueRange.ptr(39168, 190, 190), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(40960, 134, 135), valueRange), $clone(new valueRange.ptr(11483, 138, 138), valueRange), $clone(new valueRange.ptr(11499, 139, 139), valueRange), $clone(new valueRange.ptr(11491, 140, 140), valueRange), $clone(new valueRange.ptr(33029, 141, 141), valueRange), $clone(new valueRange.ptr(39168, 151, 151), valueRange), $clone(new valueRange.ptr(6145, 4, 0), valueRange), $clone(new valueRange.ptr(40960, 134, 134), valueRange), $clone(new valueRange.ptr(16135, 136, 136), valueRange), $clone(new valueRange.ptr(33029, 141, 141), valueRange), $clone(new valueRange.ptr(33057, 149, 150), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33027, 188, 188), valueRange), $clone(new valueRange.ptr(40960, 191, 191), valueRange), $clone(new valueRange.ptr(0, 9, 0), valueRange), $clone(new valueRange.ptr(11507, 128, 128), valueRange), $clone(new valueRange.ptr(39168, 130, 130), valueRange), $clone(new valueRange.ptr(40960, 134, 134), valueRange), $clone(new valueRange.ptr(11515, 135, 135), valueRange), $clone(new valueRange.ptr(11523, 136, 136), valueRange), $clone(new valueRange.ptr(12135, 138, 138), valueRange), $clone(new valueRange.ptr(11759, 139, 139), valueRange), $clone(new valueRange.ptr(33029, 141, 141), valueRange), $clone(new valueRange.ptr(39168, 149, 150), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33029, 187, 188), valueRange), $clone(new valueRange.ptr(39168, 190, 190), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(40960, 134, 135), valueRange), $clone(new valueRange.ptr(11531, 138, 138), valueRange), $clone(new valueRange.ptr(11547, 139, 139), valueRange), $clone(new valueRange.ptr(11539, 140, 140), valueRange), $clone(new valueRange.ptr(33029, 141, 141), valueRange), $clone(new valueRange.ptr(39168, 151, 151), valueRange), $clone(new valueRange.ptr(27613, 7, 0), valueRange), $clone(new valueRange.ptr(39173, 138, 138), valueRange), $clone(new valueRange.ptr(39168, 143, 143), valueRange), $clone(new valueRange.ptr(40960, 153, 153), valueRange), $clone(new valueRange.ptr(16143, 154, 154), valueRange), $clone(new valueRange.ptr(12143, 156, 156), valueRange), $clone(new valueRange.ptr(11770, 157, 157), valueRange), $clone(new valueRange.ptr(11555, 158, 159), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33059, 184, 185), valueRange), $clone(new valueRange.ptr(33029, 186, 186), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33060, 136, 139), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33061, 184, 185), valueRange), $clone(new valueRange.ptr(33029, 186, 186), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33062, 136, 139), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(33070, 152, 153), valueRange), $clone(new valueRange.ptr(33070, 181, 181), valueRange), $clone(new valueRange.ptr(33070, 183, 183), valueRange), $clone(new valueRange.ptr(33068, 185, 185), valueRange), $clone(new valueRange.ptr(0, 16, 0), valueRange), $clone(new valueRange.ptr(9802, 131, 131), valueRange), $clone(new valueRange.ptr(9809, 141, 141), valueRange), $clone(new valueRange.ptr(9816, 146, 146), valueRange), $clone(new valueRange.ptr(9823, 151, 151), valueRange), $clone(new valueRange.ptr(9830, 156, 156), valueRange), $clone(new valueRange.ptr(9795, 169, 169), valueRange), $clone(new valueRange.ptr(33063, 177, 177), valueRange), $clone(new valueRange.ptr(33064, 178, 178), valueRange), $clone(new valueRange.ptr(19099, 179, 179), valueRange), $clone(new valueRange.ptr(33065, 180, 180), valueRange), $clone(new valueRange.ptr(19108, 181, 181), valueRange), $clone(new valueRange.ptr(17867, 182, 182), valueRange), $clone(new valueRange.ptr(33280, 183, 183), valueRange), $clone(new valueRange.ptr(17875, 184, 184), valueRange), $clone(new valueRange.ptr(33280, 185, 185), valueRange), $clone(new valueRange.ptr(33064, 186, 189), valueRange), $clone(new valueRange.ptr(0, 11, 0), valueRange), $clone(new valueRange.ptr(33064, 128, 128), valueRange), $clone(new valueRange.ptr(19117, 129, 129), valueRange), $clone(new valueRange.ptr(33075, 130, 131), valueRange), $clone(new valueRange.ptr(33029, 132, 132), valueRange), $clone(new valueRange.ptr(33075, 134, 135), valueRange), $clone(new valueRange.ptr(9844, 147, 147), valueRange), $clone(new valueRange.ptr(9851, 157, 157), valueRange), $clone(new valueRange.ptr(9858, 162, 162), valueRange), $clone(new valueRange.ptr(9865, 167, 167), valueRange), $clone(new valueRange.ptr(9872, 172, 172), valueRange), $clone(new valueRange.ptr(9837, 185, 185), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33070, 134, 134), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(40960, 165, 165), valueRange), $clone(new valueRange.ptr(11563, 166, 166), valueRange), $clone(new valueRange.ptr(39168, 174, 174), valueRange), $clone(new valueRange.ptr(33027, 183, 183), valueRange), $clone(new valueRange.ptr(33029, 185, 186), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33070, 141, 141), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(40960, 128, 146), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(47360, 161, 181), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(39168, 168, 191), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(39168, 128, 130), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 157, 159), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33029, 148, 148), valueRange), $clone(new valueRange.ptr(33029, 180, 180), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33029, 146, 146), valueRange), $clone(new valueRange.ptr(33075, 157, 157), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33074, 169, 169), valueRange), $clone(new valueRange.ptr(4, 2, 0), valueRange), $clone(new valueRange.ptr(33071, 185, 186), valueRange), $clone(new valueRange.ptr(33070, 187, 187), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33075, 151, 151), valueRange), $clone(new valueRange.ptr(33070, 152, 152), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(33029, 160, 160), valueRange), $clone(new valueRange.ptr(33075, 181, 188), valueRange), $clone(new valueRange.ptr(33070, 191, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(33075, 176, 180), valueRange), $clone(new valueRange.ptr(33070, 181, 186), valueRange), $clone(new valueRange.ptr(33075, 187, 188), valueRange), $clone(new valueRange.ptr(33070, 189, 189), valueRange), $clone(new valueRange.ptr(33070, 191, 191), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33070, 128, 128), valueRange), $clone(new valueRange.ptr(0, 8, 0), valueRange), $clone(new valueRange.ptr(11635, 128, 128), valueRange), $clone(new valueRange.ptr(11643, 129, 129), valueRange), $clone(new valueRange.ptr(40960, 130, 130), valueRange), $clone(new valueRange.ptr(11651, 131, 131), valueRange), $clone(new valueRange.ptr(33029, 132, 132), valueRange), $clone(new valueRange.ptr(33075, 171, 171), valueRange), $clone(new valueRange.ptr(33070, 172, 172), valueRange), $clone(new valueRange.ptr(33075, 173, 179), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 170, 171), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33027, 166, 166), valueRange), $clone(new valueRange.ptr(33029, 178, 179), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33027, 183, 183), valueRange), $clone(new valueRange.ptr(0, 10, 0), valueRange), $clone(new valueRange.ptr(33075, 144, 146), valueRange), $clone(new valueRange.ptr(33025, 148, 148), valueRange), $clone(new valueRange.ptr(33070, 149, 153), valueRange), $clone(new valueRange.ptr(33075, 154, 155), valueRange), $clone(new valueRange.ptr(33070, 156, 159), valueRange), $clone(new valueRange.ptr(33075, 160, 160), valueRange), $clone(new valueRange.ptr(33025, 162, 168), valueRange), $clone(new valueRange.ptr(33070, 173, 173), valueRange), $clone(new valueRange.ptr(33075, 180, 180), valueRange), $clone(new valueRange.ptr(33075, 184, 185), valueRange), $clone(new valueRange.ptr(4, 3, 0), valueRange), $clone(new valueRange.ptr(1078, 128, 129), valueRange), $clone(new valueRange.ptr(33024, 151, 151), valueRange), $clone(new valueRange.ptr(33024, 190, 190), valueRange), $clone(new valueRange.ptr(0, 13, 0), valueRange), $clone(new valueRange.ptr(33075, 144, 145), valueRange), $clone(new valueRange.ptr(33025, 146, 147), valueRange), $clone(new valueRange.ptr(33075, 148, 151), valueRange), $clone(new valueRange.ptr(33025, 152, 154), valueRange), $clone(new valueRange.ptr(33075, 155, 156), valueRange), $clone(new valueRange.ptr(33075, 161, 161), valueRange), $clone(new valueRange.ptr(33025, 165, 166), valueRange), $clone(new valueRange.ptr(33075, 167, 167), valueRange), $clone(new valueRange.ptr(33070, 168, 168), valueRange), $clone(new valueRange.ptr(33075, 169, 169), valueRange), $clone(new valueRange.ptr(33025, 170, 171), valueRange), $clone(new valueRange.ptr(33070, 172, 175), valueRange), $clone(new valueRange.ptr(33075, 176, 176), valueRange), $clone(new valueRange.ptr(17042, 2, 0), valueRange), $clone(new valueRange.ptr(443, 166, 166), valueRange), $clone(new valueRange.ptr(87, 170, 171), valueRange), $clone(new valueRange.ptr(7, 5, 0), valueRange), $clone(new valueRange.ptr(40960, 144, 144), valueRange), $clone(new valueRange.ptr(40960, 146, 146), valueRange), $clone(new valueRange.ptr(40960, 148, 148), valueRange), $clone(new valueRange.ptr(15312, 154, 155), valueRange), $clone(new valueRange.ptr(15326, 174, 174), valueRange), $clone(new valueRange.ptr(14, 5, 0), valueRange), $clone(new valueRange.ptr(15333, 141, 142), valueRange), $clone(new valueRange.ptr(15340, 143, 143), valueRange), $clone(new valueRange.ptr(40960, 144, 144), valueRange), $clone(new valueRange.ptr(40960, 146, 146), valueRange), $clone(new valueRange.ptr(40960, 148, 148), valueRange), $clone(new valueRange.ptr(25585, 10, 0), valueRange), $clone(new valueRange.ptr(40960, 131, 131), valueRange), $clone(new valueRange.ptr(15354, 132, 132), valueRange), $clone(new valueRange.ptr(40960, 136, 136), valueRange), $clone(new valueRange.ptr(15361, 137, 137), valueRange), $clone(new valueRange.ptr(40960, 139, 139), valueRange), $clone(new valueRange.ptr(15368, 140, 140), valueRange), $clone(new valueRange.ptr(40960, 163, 163), valueRange), $clone(new valueRange.ptr(15375, 164, 165), valueRange), $clone(new valueRange.ptr(15382, 166, 166), valueRange), $clone(new valueRange.ptr(40960, 188, 188), valueRange), $clone(new valueRange.ptr(7, 3, 0), valueRange), $clone(new valueRange.ptr(15487, 160, 161), valueRange), $clone(new valueRange.ptr(15529, 162, 163), valueRange), $clone(new valueRange.ptr(15571, 170, 173), valueRange), $clone(new valueRange.ptr(4, 1, 0), valueRange), $clone(new valueRange.ptr(1166, 169, 170), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(17652, 156, 156), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 175, 177), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 191, 191), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 160, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(33069, 170, 170), valueRange), $clone(new valueRange.ptr(33074, 171, 171), valueRange), $clone(new valueRange.ptr(33076, 172, 172), valueRange), $clone(new valueRange.ptr(33071, 173, 173), valueRange), $clone(new valueRange.ptr(33072, 174, 175), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(19126, 179, 179), valueRange), $clone(new valueRange.ptr(19126, 181, 182), valueRange), $clone(new valueRange.ptr(19126, 186, 191), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(19126, 143, 163), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33024, 174, 190), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(33024, 132, 132), valueRange), $clone(new valueRange.ptr(33024, 135, 135), valueRange), $clone(new valueRange.ptr(33024, 144, 144), valueRange), $clone(new valueRange.ptr(33024, 158, 158), valueRange), $clone(new valueRange.ptr(33024, 161, 161), valueRange), $clone(new valueRange.ptr(33024, 178, 178), valueRange), $clone(new valueRange.ptr(33024, 187, 187), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(33024, 128, 128), valueRange), $clone(new valueRange.ptr(33024, 139, 139), valueRange), $clone(new valueRange.ptr(33024, 142, 142), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33075, 175, 175), valueRange), $clone(new valueRange.ptr(33075, 180, 189), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 158, 159), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 176, 177), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33029, 134, 134), valueRange), $clone(new valueRange.ptr(33029, 172, 172), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33029, 132, 132), valueRange), $clone(new valueRange.ptr(33075, 160, 177), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33070, 171, 173), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 147, 147), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33027, 179, 179), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 128, 128), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(33075, 176, 176), valueRange), $clone(new valueRange.ptr(33075, 178, 179), valueRange), $clone(new valueRange.ptr(33070, 180, 180), valueRange), $clone(new valueRange.ptr(33075, 183, 184), valueRange), $clone(new valueRange.ptr(33075, 190, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33075, 129, 129), valueRange), $clone(new valueRange.ptr(33029, 182, 182), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 173, 173), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(58624, 128, 128), valueRange), $clone(new valueRange.ptr(50688, 129, 155), valueRange), $clone(new valueRange.ptr(58624, 156, 156), valueRange), $clone(new valueRange.ptr(50688, 157, 183), valueRange), $clone(new valueRange.ptr(58624, 184, 184), valueRange), $clone(new valueRange.ptr(50688, 185, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(50688, 128, 147), valueRange), $clone(new valueRange.ptr(58624, 148, 148), valueRange), $clone(new valueRange.ptr(50688, 149, 175), valueRange), $clone(new valueRange.ptr(58624, 176, 176), valueRange), $clone(new valueRange.ptr(50688, 177, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(50688, 128, 139), valueRange), $clone(new valueRange.ptr(58624, 140, 140), valueRange), $clone(new valueRange.ptr(50688, 141, 167), valueRange), $clone(new valueRange.ptr(58624, 168, 168), valueRange), $clone(new valueRange.ptr(50688, 169, 191), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(50688, 128, 131), valueRange), $clone(new valueRange.ptr(58624, 132, 132), valueRange), $clone(new valueRange.ptr(50688, 133, 159), valueRange), $clone(new valueRange.ptr(58624, 160, 160), valueRange), $clone(new valueRange.ptr(50688, 161, 187), valueRange), $clone(new valueRange.ptr(58624, 188, 188), valueRange), $clone(new valueRange.ptr(50688, 189, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(50688, 128, 151), valueRange), $clone(new valueRange.ptr(58624, 152, 152), valueRange), $clone(new valueRange.ptr(50688, 153, 179), valueRange), $clone(new valueRange.ptr(58624, 180, 180), valueRange), $clone(new valueRange.ptr(50688, 181, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(50688, 128, 143), valueRange), $clone(new valueRange.ptr(58624, 144, 144), valueRange), $clone(new valueRange.ptr(50688, 145, 171), valueRange), $clone(new valueRange.ptr(58624, 172, 172), valueRange), $clone(new valueRange.ptr(50688, 173, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(50688, 128, 135), valueRange), $clone(new valueRange.ptr(58624, 136, 136), valueRange), $clone(new valueRange.ptr(50688, 137, 163), valueRange), $clone(new valueRange.ptr(58624, 164, 164), valueRange), $clone(new valueRange.ptr(50688, 165, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(50688, 128, 135), valueRange), $clone(new valueRange.ptr(58624, 136, 136), valueRange), $clone(new valueRange.ptr(50688, 137, 163), valueRange), $clone(new valueRange.ptr(6, 13, 0), valueRange), $clone(new valueRange.ptr(17319, 157, 157), valueRange), $clone(new valueRange.ptr(33046, 158, 158), valueRange), $clone(new valueRange.ptr(17433, 159, 159), valueRange), $clone(new valueRange.ptr(17415, 170, 171), valueRange), $clone(new valueRange.ptr(17675, 172, 172), valueRange), $clone(new valueRange.ptr(17683, 173, 173), valueRange), $clone(new valueRange.ptr(17247, 174, 177), valueRange), $clone(new valueRange.ptr(17277, 178, 180), valueRange), $clone(new valueRange.ptr(17301, 181, 182), valueRange), $clone(new valueRange.ptr(17313, 184, 184), valueRange), $clone(new valueRange.ptr(17325, 185, 187), valueRange), $clone(new valueRange.ptr(17349, 188, 188), valueRange), $clone(new valueRange.ptr(17355, 190, 190), valueRange), $clone(new valueRange.ptr(6, 8, 0), valueRange), $clone(new valueRange.ptr(17361, 128, 129), valueRange), $clone(new valueRange.ptr(17373, 131, 132), valueRange), $clone(new valueRange.ptr(17391, 134, 137), valueRange), $clone(new valueRange.ptr(17427, 138, 138), valueRange), $clone(new valueRange.ptr(17295, 139, 139), valueRange), $clone(new valueRange.ptr(17271, 140, 140), valueRange), $clone(new valueRange.ptr(17343, 141, 141), valueRange), $clone(new valueRange.ptr(17385, 142, 142), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33024, 164, 165), valueRange), $clone(new valueRange.ptr(33024, 176, 177), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33024, 155, 157), valueRange), $clone(new valueRange.ptr(33280, 158, 163), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33024, 144, 144), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33024, 153, 153), valueRange), $clone(new valueRange.ptr(33280, 178, 180), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33024, 188, 189), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(33075, 160, 166), valueRange), $clone(new valueRange.ptr(33070, 167, 173), valueRange), $clone(new valueRange.ptr(33075, 174, 175), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(33024, 137, 140), valueRange), $clone(new valueRange.ptr(33024, 176, 178), valueRange), $clone(new valueRange.ptr(33024, 180, 180), valueRange), $clone(new valueRange.ptr(33024, 182, 191), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33024, 129, 140), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33024, 181, 186), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(19126, 158, 159), valueRange), $clone(new valueRange.ptr(19126, 163, 163), valueRange), $clone(new valueRange.ptr(19126, 165, 166), valueRange), $clone(new valueRange.ptr(19126, 170, 175), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(19126, 130, 135), valueRange), $clone(new valueRange.ptr(19126, 138, 143), valueRange), $clone(new valueRange.ptr(19126, 146, 151), valueRange), $clone(new valueRange.ptr(19126, 154, 156), valueRange), $clone(new valueRange.ptr(33024, 163, 163), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33070, 189, 189), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33070, 160, 160), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 182, 186), valueRange), $clone(new valueRange.ptr(45, 5, 0), valueRange), $clone(new valueRange.ptr(33070, 141, 141), valueRange), $clone(new valueRange.ptr(33075, 143, 143), valueRange), $clone(new valueRange.ptr(33075, 184, 184), valueRange), $clone(new valueRange.ptr(33025, 185, 186), valueRange), $clone(new valueRange.ptr(33029, 191, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33075, 165, 165), valueRange), $clone(new valueRange.ptr(33070, 166, 166), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 164, 167), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 171, 172), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(33070, 134, 135), valueRange), $clone(new valueRange.ptr(33075, 136, 138), valueRange), $clone(new valueRange.ptr(33070, 139, 139), valueRange), $clone(new valueRange.ptr(33075, 140, 140), valueRange), $clone(new valueRange.ptr(33070, 141, 144), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33029, 134, 134), valueRange), $clone(new valueRange.ptr(33029, 191, 191), valueRange), $clone(new valueRange.ptr(6142, 7, 0), valueRange), $clone(new valueRange.ptr(40960, 153, 153), valueRange), $clone(new valueRange.ptr(16975, 154, 154), valueRange), $clone(new valueRange.ptr(40960, 155, 155), valueRange), $clone(new valueRange.ptr(16985, 156, 156), valueRange), $clone(new valueRange.ptr(40960, 165, 165), valueRange), $clone(new valueRange.ptr(16995, 171, 171), valueRange), $clone(new valueRange.ptr(33029, 185, 186), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(33075, 128, 130), valueRange), $clone(new valueRange.ptr(39168, 167, 167), valueRange), $clone(new valueRange.ptr(11659, 174, 174), valueRange), $clone(new valueRange.ptr(11669, 175, 175), valueRange), $clone(new valueRange.ptr(40960, 177, 178), valueRange), $clone(new valueRange.ptr(33029, 179, 180), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33029, 128, 128), valueRange), $clone(new valueRange.ptr(33027, 138, 138), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33029, 181, 181), valueRange), $clone(new valueRange.ptr(33027, 182, 182), valueRange), $clone(new valueRange.ptr(2, 1, 0), valueRange), $clone(new valueRange.ptr(33027, 169, 170), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33027, 187, 188), valueRange), $clone(new valueRange.ptr(39168, 190, 190), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(40960, 135, 135), valueRange), $clone(new valueRange.ptr(11679, 139, 139), valueRange), $clone(new valueRange.ptr(11689, 140, 140), valueRange), $clone(new valueRange.ptr(33029, 141, 141), valueRange), $clone(new valueRange.ptr(39168, 151, 151), valueRange), $clone(new valueRange.ptr(33075, 166, 172), valueRange), $clone(new valueRange.ptr(33075, 176, 180), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(33029, 130, 130), valueRange), $clone(new valueRange.ptr(33027, 134, 134), valueRange), $clone(new valueRange.ptr(33075, 158, 158), valueRange), $clone(new valueRange.ptr(27469, 6, 0), valueRange), $clone(new valueRange.ptr(39168, 176, 176), valueRange), $clone(new valueRange.ptr(40960, 185, 185), valueRange), $clone(new valueRange.ptr(39168, 186, 186), valueRange), $clone(new valueRange.ptr(11709, 187, 187), valueRange), $clone(new valueRange.ptr(11699, 188, 189), valueRange), $clone(new valueRange.ptr(11719, 190, 190), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33029, 130, 130), valueRange), $clone(new valueRange.ptr(33027, 131, 131), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(39168, 175, 175), valueRange), $clone(new valueRange.ptr(40960, 184, 185), valueRange), $clone(new valueRange.ptr(11729, 186, 186), valueRange), $clone(new valueRange.ptr(11739, 187, 187), valueRange), $clone(new valueRange.ptr(33029, 191, 191), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33027, 128, 128), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33029, 182, 182), valueRange), $clone(new valueRange.ptr(33027, 183, 183), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 171, 171), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33029, 185, 185), valueRange), $clone(new valueRange.ptr(33027, 186, 186), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(39168, 176, 176), valueRange), $clone(new valueRange.ptr(40960, 181, 181), valueRange), $clone(new valueRange.ptr(11749, 184, 184), valueRange), $clone(new valueRange.ptr(33029, 189, 190), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33027, 131, 131), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 160, 160), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 180, 180), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 135, 135), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 153, 153), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33027, 130, 130), valueRange), $clone(new valueRange.ptr(33029, 132, 133), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 151, 151), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33025, 176, 180), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 176, 182), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33026, 176, 177), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33025, 158, 158), valueRange), $clone(new valueRange.ptr(0, 12, 0), valueRange), $clone(new valueRange.ptr(17891, 158, 158), valueRange), $clone(new valueRange.ptr(17901, 159, 159), valueRange), $clone(new valueRange.ptr(17953, 160, 160), valueRange), $clone(new valueRange.ptr(17967, 161, 161), valueRange), $clone(new valueRange.ptr(17981, 162, 162), valueRange), $clone(new valueRange.ptr(17995, 163, 163), valueRange), $clone(new valueRange.ptr(18009, 164, 164), valueRange), $clone(new valueRange.ptr(33068, 165, 166), valueRange), $clone(new valueRange.ptr(33025, 167, 169), valueRange), $clone(new valueRange.ptr(33073, 173, 173), valueRange), $clone(new valueRange.ptr(33068, 174, 178), valueRange), $clone(new valueRange.ptr(33070, 187, 191), valueRange), $clone(new valueRange.ptr(0, 9, 0), valueRange), $clone(new valueRange.ptr(33070, 128, 130), valueRange), $clone(new valueRange.ptr(33075, 133, 137), valueRange), $clone(new valueRange.ptr(33070, 138, 139), valueRange), $clone(new valueRange.ptr(33075, 170, 173), valueRange), $clone(new valueRange.ptr(17911, 187, 187), valueRange), $clone(new valueRange.ptr(17921, 188, 188), valueRange), $clone(new valueRange.ptr(18023, 189, 189), valueRange), $clone(new valueRange.ptr(18051, 190, 190), valueRange), $clone(new valueRange.ptr(18037, 191, 191), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(18065, 128, 128), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 130, 132), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(33075, 128, 134), valueRange), $clone(new valueRange.ptr(33075, 136, 152), valueRange), $clone(new valueRange.ptr(33075, 155, 161), valueRange), $clone(new valueRange.ptr(33075, 163, 164), valueRange), $clone(new valueRange.ptr(33075, 166, 170), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 172, 175), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33070, 144, 150), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33075, 132, 137), valueRange), $clone(new valueRange.ptr(33027, 138, 138), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33024, 147, 147), valueRange)]); + decomps = $toNativeArray($kindUint8, [0, 65, 32, 65, 33, 65, 34, 65, 35, 65, 36, 65, 37, 65, 38, 65, 39, 65, 40, 65, 41, 65, 42, 65, 43, 65, 44, 65, 45, 65, 46, 65, 47, 65, 48, 65, 49, 65, 50, 65, 51, 65, 52, 65, 53, 65, 54, 65, 55, 65, 56, 65, 57, 65, 58, 65, 59, 65, 60, 65, 61, 65, 62, 65, 63, 65, 64, 65, 65, 65, 66, 65, 67, 65, 68, 65, 69, 65, 70, 65, 71, 65, 72, 65, 73, 65, 74, 65, 75, 65, 76, 65, 77, 65, 78, 65, 79, 65, 80, 65, 81, 65, 82, 65, 83, 65, 84, 65, 85, 65, 86, 65, 87, 65, 88, 65, 89, 65, 90, 65, 91, 65, 92, 65, 93, 65, 94, 65, 95, 65, 96, 65, 97, 65, 98, 65, 99, 65, 100, 65, 101, 65, 102, 65, 103, 65, 104, 65, 105, 65, 106, 65, 107, 65, 108, 65, 109, 65, 110, 65, 111, 65, 112, 65, 113, 65, 114, 65, 115, 65, 116, 65, 117, 65, 118, 65, 119, 65, 120, 65, 121, 65, 122, 65, 123, 65, 124, 65, 125, 65, 126, 66, 194, 162, 66, 194, 163, 66, 194, 165, 66, 194, 166, 66, 194, 172, 66, 194, 183, 66, 195, 134, 66, 195, 166, 66, 195, 176, 66, 195, 184, 66, 196, 166, 66, 196, 167, 66, 196, 177, 66, 197, 139, 66, 197, 147, 66, 198, 142, 66, 198, 144, 66, 198, 171, 66, 199, 128, 66, 199, 129, 66, 199, 130, 66, 200, 162, 66, 200, 183, 66, 201, 144, 66, 201, 145, 66, 201, 146, 66, 201, 147, 66, 201, 148, 66, 201, 149, 66, 201, 150, 66, 201, 151, 66, 201, 152, 66, 201, 153, 66, 201, 155, 66, 201, 156, 66, 201, 158, 66, 201, 159, 66, 201, 160, 66, 201, 161, 66, 201, 162, 66, 201, 163, 66, 201, 164, 66, 201, 165, 66, 201, 166, 66, 201, 167, 66, 201, 168, 66, 201, 169, 66, 201, 170, 66, 201, 171, 66, 201, 172, 66, 201, 173, 66, 201, 174, 66, 201, 175, 66, 201, 176, 66, 201, 177, 66, 201, 178, 66, 201, 179, 66, 201, 180, 66, 201, 181, 66, 201, 182, 66, 201, 183, 66, 201, 184, 66, 201, 185, 66, 201, 186, 66, 201, 187, 66, 201, 189, 66, 201, 190, 66, 202, 128, 66, 202, 129, 66, 202, 130, 66, 202, 131, 66, 202, 132, 66, 202, 136, 66, 202, 137, 66, 202, 138, 66, 202, 139, 66, 202, 140, 66, 202, 141, 66, 202, 142, 66, 202, 143, 66, 202, 144, 66, 202, 145, 66, 202, 146, 66, 202, 149, 66, 202, 152, 66, 202, 153, 66, 202, 155, 66, 202, 156, 66, 202, 157, 66, 202, 159, 66, 202, 161, 66, 202, 162, 66, 202, 163, 66, 202, 164, 66, 202, 165, 66, 202, 166, 66, 202, 167, 66, 202, 168, 66, 202, 169, 66, 202, 170, 66, 202, 171, 66, 202, 185, 66, 203, 144, 66, 203, 145, 66, 206, 145, 66, 206, 146, 66, 206, 147, 66, 206, 148, 66, 206, 149, 66, 206, 150, 66, 206, 151, 66, 206, 152, 66, 206, 153, 66, 206, 154, 66, 206, 155, 66, 206, 156, 66, 206, 157, 66, 206, 158, 66, 206, 159, 66, 206, 160, 66, 206, 161, 66, 206, 163, 66, 206, 164, 66, 206, 165, 66, 206, 166, 66, 206, 167, 66, 206, 168, 66, 206, 169, 66, 206, 177, 66, 206, 178, 66, 206, 179, 66, 206, 180, 66, 206, 181, 66, 206, 182, 66, 206, 183, 66, 206, 184, 66, 206, 185, 66, 206, 186, 66, 206, 187, 66, 206, 188, 66, 206, 189, 66, 206, 190, 66, 206, 191, 66, 207, 128, 66, 207, 129, 66, 207, 130, 66, 207, 131, 66, 207, 132, 66, 207, 133, 66, 207, 134, 66, 207, 135, 66, 207, 136, 66, 207, 137, 66, 207, 156, 66, 207, 157, 66, 208, 176, 66, 208, 177, 66, 208, 178, 66, 208, 179, 66, 208, 180, 66, 208, 181, 66, 208, 182, 66, 208, 183, 66, 208, 184, 66, 208, 186, 66, 208, 187, 66, 208, 188, 66, 208, 189, 66, 208, 190, 66, 208, 191, 66, 209, 128, 66, 209, 129, 66, 209, 130, 66, 209, 131, 66, 209, 132, 66, 209, 133, 66, 209, 134, 66, 209, 135, 66, 209, 136, 66, 209, 138, 66, 209, 139, 66, 209, 140, 66, 209, 141, 66, 209, 142, 66, 209, 149, 66, 209, 150, 66, 209, 152, 66, 209, 159, 66, 210, 145, 66, 210, 171, 66, 210, 175, 66, 210, 177, 66, 211, 143, 66, 211, 153, 66, 211, 169, 66, 215, 144, 66, 215, 145, 66, 215, 146, 66, 215, 147, 66, 215, 148, 66, 215, 155, 66, 215, 156, 66, 215, 157, 66, 215, 162, 66, 215, 168, 66, 215, 170, 66, 216, 161, 66, 216, 167, 66, 216, 168, 66, 216, 169, 66, 216, 170, 66, 216, 171, 66, 216, 172, 66, 216, 173, 66, 216, 174, 66, 216, 175, 66, 216, 176, 66, 216, 177, 66, 216, 178, 66, 216, 179, 66, 216, 180, 66, 216, 181, 66, 216, 182, 66, 216, 183, 66, 216, 184, 66, 216, 185, 66, 216, 186, 66, 217, 129, 66, 217, 130, 66, 217, 131, 66, 217, 132, 66, 217, 133, 66, 217, 134, 66, 217, 135, 66, 217, 136, 66, 217, 137, 66, 217, 138, 66, 217, 174, 66, 217, 175, 66, 217, 177, 66, 217, 185, 66, 217, 186, 66, 217, 187, 66, 217, 190, 66, 217, 191, 66, 218, 128, 66, 218, 131, 66, 218, 132, 66, 218, 134, 66, 218, 135, 66, 218, 136, 66, 218, 140, 66, 218, 141, 66, 218, 142, 66, 218, 145, 66, 218, 152, 66, 218, 161, 66, 218, 164, 66, 218, 166, 66, 218, 169, 66, 218, 173, 66, 218, 175, 66, 218, 177, 66, 218, 179, 66, 218, 186, 66, 218, 187, 66, 218, 190, 66, 219, 129, 66, 219, 133, 66, 219, 134, 66, 219, 135, 66, 219, 136, 66, 219, 137, 66, 219, 139, 66, 219, 140, 66, 219, 144, 66, 219, 146, 67, 224, 188, 139, 67, 225, 131, 156, 67, 225, 132, 128, 67, 225, 132, 129, 67, 225, 132, 130, 67, 225, 132, 131, 67, 225, 132, 132, 67, 225, 132, 133, 67, 225, 132, 134, 67, 225, 132, 135, 67, 225, 132, 136, 67, 225, 132, 137, 67, 225, 132, 138, 67, 225, 132, 139, 67, 225, 132, 140, 67, 225, 132, 141, 67, 225, 132, 142, 67, 225, 132, 143, 67, 225, 132, 144, 67, 225, 132, 145, 67, 225, 132, 146, 67, 225, 132, 148, 67, 225, 132, 149, 67, 225, 132, 154, 67, 225, 132, 156, 67, 225, 132, 157, 67, 225, 132, 158, 67, 225, 132, 160, 67, 225, 132, 161, 67, 225, 132, 162, 67, 225, 132, 163, 67, 225, 132, 167, 67, 225, 132, 169, 67, 225, 132, 171, 67, 225, 132, 172, 67, 225, 132, 173, 67, 225, 132, 174, 67, 225, 132, 175, 67, 225, 132, 178, 67, 225, 132, 182, 67, 225, 133, 128, 67, 225, 133, 135, 67, 225, 133, 140, 67, 225, 133, 151, 67, 225, 133, 152, 67, 225, 133, 153, 67, 225, 133, 160, 67, 225, 134, 132, 67, 225, 134, 133, 67, 225, 134, 136, 67, 225, 134, 145, 67, 225, 134, 146, 67, 225, 134, 148, 67, 225, 134, 158, 67, 225, 134, 161, 67, 225, 135, 135, 67, 225, 135, 136, 67, 225, 135, 140, 67, 225, 135, 142, 67, 225, 135, 147, 67, 225, 135, 151, 67, 225, 135, 153, 67, 225, 135, 157, 67, 225, 135, 159, 67, 225, 135, 177, 67, 225, 135, 178, 67, 225, 180, 130, 67, 225, 180, 150, 67, 225, 180, 151, 67, 225, 180, 156, 67, 225, 180, 157, 67, 225, 180, 165, 67, 225, 181, 187, 67, 225, 182, 133, 67, 225, 182, 145, 67, 226, 128, 130, 67, 226, 128, 131, 67, 226, 128, 144, 67, 226, 128, 147, 67, 226, 128, 148, 67, 226, 130, 169, 67, 226, 134, 144, 67, 226, 134, 145, 67, 226, 134, 146, 67, 226, 134, 147, 67, 226, 136, 130, 67, 226, 136, 135, 67, 226, 136, 145, 67, 226, 136, 146, 67, 226, 148, 130, 67, 226, 150, 160, 67, 226, 151, 139, 67, 226, 166, 133, 67, 226, 166, 134, 67, 226, 177, 177, 67, 226, 181, 161, 67, 227, 128, 129, 67, 227, 128, 130, 67, 227, 128, 136, 67, 227, 128, 137, 67, 227, 128, 138, 67, 227, 128, 139, 67, 227, 128, 140, 67, 227, 128, 141, 67, 227, 128, 142, 67, 227, 128, 143, 67, 227, 128, 144, 67, 227, 128, 145, 67, 227, 128, 146, 67, 227, 128, 148, 67, 227, 128, 149, 67, 227, 128, 150, 67, 227, 128, 151, 67, 227, 130, 161, 67, 227, 130, 162, 67, 227, 130, 163, 67, 227, 130, 164, 67, 227, 130, 165, 67, 227, 130, 166, 67, 227, 130, 167, 67, 227, 130, 168, 67, 227, 130, 169, 67, 227, 130, 170, 67, 227, 130, 171, 67, 227, 130, 173, 67, 227, 130, 175, 67, 227, 130, 177, 67, 227, 130, 179, 67, 227, 130, 181, 67, 227, 130, 183, 67, 227, 130, 185, 67, 227, 130, 187, 67, 227, 130, 189, 67, 227, 130, 191, 67, 227, 131, 129, 67, 227, 131, 131, 67, 227, 131, 132, 67, 227, 131, 134, 67, 227, 131, 136, 67, 227, 131, 138, 67, 227, 131, 139, 67, 227, 131, 140, 67, 227, 131, 141, 67, 227, 131, 142, 67, 227, 131, 143, 67, 227, 131, 146, 67, 227, 131, 149, 67, 227, 131, 152, 67, 227, 131, 155, 67, 227, 131, 158, 67, 227, 131, 159, 67, 227, 131, 160, 67, 227, 131, 161, 67, 227, 131, 162, 67, 227, 131, 163, 67, 227, 131, 164, 67, 227, 131, 165, 67, 227, 131, 166, 67, 227, 131, 167, 67, 227, 131, 168, 67, 227, 131, 169, 67, 227, 131, 170, 67, 227, 131, 171, 67, 227, 131, 172, 67, 227, 131, 173, 67, 227, 131, 175, 67, 227, 131, 176, 67, 227, 131, 177, 67, 227, 131, 178, 67, 227, 131, 179, 67, 227, 131, 187, 67, 227, 131, 188, 67, 227, 146, 158, 67, 227, 146, 185, 67, 227, 146, 187, 67, 227, 147, 159, 67, 227, 148, 149, 67, 227, 155, 174, 67, 227, 155, 188, 67, 227, 158, 129, 67, 227, 160, 175, 67, 227, 161, 162, 67, 227, 161, 188, 67, 227, 163, 135, 67, 227, 163, 163, 67, 227, 164, 156, 67, 227, 164, 186, 67, 227, 168, 174, 67, 227, 169, 172, 67, 227, 171, 164, 67, 227, 172, 136, 67, 227, 172, 153, 67, 227, 173, 137, 67, 227, 174, 157, 67, 227, 176, 152, 67, 227, 177, 142, 67, 227, 180, 179, 67, 227, 182, 150, 67, 227, 186, 172, 67, 227, 186, 184, 67, 227, 188, 155, 67, 227, 191, 188, 67, 228, 128, 136, 67, 228, 128, 152, 67, 228, 128, 185, 67, 228, 129, 134, 67, 228, 130, 150, 67, 228, 131, 163, 67, 228, 132, 175, 67, 228, 136, 130, 67, 228, 136, 167, 67, 228, 138, 160, 67, 228, 140, 129, 67, 228, 140, 180, 67, 228, 141, 153, 67, 228, 143, 149, 67, 228, 143, 153, 67, 228, 144, 139, 67, 228, 145, 171, 67, 228, 148, 171, 67, 228, 149, 157, 67, 228, 149, 161, 67, 228, 149, 171, 67, 228, 151, 151, 67, 228, 151, 185, 67, 228, 152, 181, 67, 228, 154, 190, 67, 228, 155, 135, 67, 228, 166, 149, 67, 228, 167, 166, 67, 228, 169, 174, 67, 228, 169, 182, 67, 228, 170, 178, 67, 228, 172, 179, 67, 228, 175, 142, 67, 228, 179, 142, 67, 228, 179, 173, 67, 228, 179, 184, 67, 228, 181, 150, 67, 228, 184, 128, 67, 228, 184, 129, 67, 228, 184, 131, 67, 228, 184, 137, 67, 228, 184, 138, 67, 228, 184, 139, 67, 228, 184, 141, 67, 228, 184, 153, 67, 228, 184, 166, 67, 228, 184, 168, 67, 228, 184, 173, 67, 228, 184, 178, 67, 228, 184, 182, 67, 228, 184, 184, 67, 228, 184, 185, 67, 228, 184, 189, 67, 228, 184, 191, 67, 228, 185, 129, 67, 228, 185, 153, 67, 228, 185, 157, 67, 228, 186, 130, 67, 228, 186, 133, 67, 228, 186, 134, 67, 228, 186, 140, 67, 228, 186, 148, 67, 228, 186, 160, 67, 228, 186, 164, 67, 228, 186, 174, 67, 228, 186, 186, 67, 228, 187, 128, 67, 228, 187, 140, 67, 228, 187, 164, 67, 228, 188, 129, 67, 228, 188, 145, 67, 228, 189, 160, 67, 228, 190, 128, 67, 228, 190, 134, 67, 228, 190, 139, 67, 228, 190, 174, 67, 228, 190, 187, 67, 228, 190, 191, 67, 229, 128, 130, 67, 229, 128, 171, 67, 229, 129, 186, 67, 229, 130, 153, 67, 229, 131, 143, 67, 229, 131, 154, 67, 229, 131, 167, 67, 229, 132, 170, 67, 229, 132, 191, 67, 229, 133, 128, 67, 229, 133, 133, 67, 229, 133, 141, 67, 229, 133, 148, 67, 229, 133, 164, 67, 229, 133, 165, 67, 229, 133, 167, 67, 229, 133, 168, 67, 229, 133, 169, 67, 229, 133, 171, 67, 229, 133, 173, 67, 229, 133, 183, 67, 229, 134, 128, 67, 229, 134, 130, 67, 229, 134, 141, 67, 229, 134, 146, 67, 229, 134, 149, 67, 229, 134, 150, 67, 229, 134, 151, 67, 229, 134, 153, 67, 229, 134, 164, 67, 229, 134, 171, 67, 229, 134, 172, 67, 229, 134, 181, 67, 229, 134, 183, 67, 229, 135, 137, 67, 229, 135, 140, 67, 229, 135, 156, 67, 229, 135, 158, 67, 229, 135, 160, 67, 229, 135, 181, 67, 229, 136, 128, 67, 229, 136, 131, 67, 229, 136, 135, 67, 229, 136, 151, 67, 229, 136, 157, 67, 229, 136, 169, 67, 229, 136, 186, 67, 229, 136, 187, 67, 229, 137, 134, 67, 229, 137, 141, 67, 229, 137, 178, 67, 229, 137, 183, 67, 229, 138, 137, 67, 229, 138, 155, 67, 229, 138, 163, 67, 229, 138, 179, 67, 229, 138, 180, 67, 229, 139, 135, 67, 229, 139, 137, 67, 229, 139, 146, 67, 229, 139, 158, 67, 229, 139, 164, 67, 229, 139, 181, 67, 229, 139, 185, 67, 229, 139, 186, 67, 229, 140, 133, 67, 229, 140, 134, 67, 229, 140, 149, 67, 229, 140, 151, 67, 229, 140, 154, 67, 229, 140, 184, 67, 229, 140, 187, 67, 229, 140, 191, 67, 229, 141, 129, 67, 229, 141, 132, 67, 229, 141, 133, 67, 229, 141, 137, 67, 229, 141, 145, 67, 229, 141, 148, 67, 229, 141, 154, 67, 229, 141, 156, 67, 229, 141, 169, 67, 229, 141, 176, 67, 229, 141, 179, 67, 229, 141, 181, 67, 229, 141, 189, 67, 229, 141, 191, 67, 229, 142, 130, 67, 229, 142, 182, 67, 229, 143, 131, 67, 229, 143, 136, 67, 229, 143, 138, 67, 229, 143, 140, 67, 229, 143, 159, 67, 229, 143, 163, 67, 229, 143, 165, 67, 229, 143, 171, 67, 229, 143, 175, 67, 229, 143, 177, 67, 229, 143, 179, 67, 229, 144, 134, 67, 229, 144, 136, 67, 229, 144, 141, 67, 229, 144, 143, 67, 229, 144, 157, 67, 229, 144, 184, 67, 229, 144, 185, 67, 229, 145, 130, 67, 229, 145, 136, 67, 229, 145, 168, 67, 229, 146, 158, 67, 229, 146, 162, 67, 229, 146, 189, 67, 229, 147, 182, 67, 229, 148, 144, 67, 229, 149, 143, 67, 229, 149, 147, 67, 229, 149, 149, 67, 229, 149, 163, 67, 229, 150, 132, 67, 229, 150, 135, 67, 229, 150, 153, 67, 229, 150, 157, 67, 229, 150, 171, 67, 229, 150, 179, 67, 229, 150, 182, 67, 229, 151, 128, 67, 229, 151, 130, 67, 229, 151, 162, 67, 229, 152, 134, 67, 229, 153, 145, 67, 229, 153, 168, 67, 229, 153, 180, 67, 229, 155, 151, 67, 229, 155, 155, 67, 229, 155, 185, 67, 229, 156, 150, 67, 229, 156, 151, 67, 229, 156, 159, 67, 229, 156, 176, 67, 229, 158, 139, 67, 229, 159, 142, 67, 229, 159, 180, 67, 229, 160, 141, 67, 229, 160, 177, 67, 229, 160, 178, 67, 229, 161, 128, 67, 229, 161, 154, 67, 229, 161, 158, 67, 229, 162, 168, 67, 229, 162, 172, 67, 229, 162, 179, 67, 229, 163, 152, 67, 229, 163, 159, 67, 229, 163, 171, 67, 229, 163, 174, 67, 229, 163, 176, 67, 229, 163, 178, 67, 229, 163, 183, 67, 229, 164, 130, 67, 229, 164, 134, 67, 229, 164, 138, 67, 229, 164, 149, 67, 229, 164, 154, 67, 229, 164, 156, 67, 229, 164, 162, 67, 229, 164, 167, 67, 229, 164, 169, 67, 229, 165, 132, 67, 229, 165, 136, 67, 229, 165, 145, 67, 229, 165, 148, 67, 229, 165, 162, 67, 229, 165, 179, 67, 229, 167, 152, 67, 229, 167, 172, 67, 229, 168, 155, 67, 229, 168, 167, 67, 229, 169, 162, 67, 229, 169, 166, 67, 229, 170, 181, 67, 229, 172, 136, 67, 229, 172, 168, 67, 229, 172, 190, 67, 229, 173, 144, 67, 229, 173, 151, 67, 229, 173, 166, 67, 229, 174, 128, 67, 229, 174, 133, 67, 229, 174, 151, 67, 229, 175, 131, 67, 229, 175, 152, 67, 229, 175, 167, 67, 229, 175, 174, 67, 229, 175, 179, 67, 229, 175, 184, 67, 229, 175, 191, 67, 229, 176, 134, 67, 229, 176, 143, 67, 229, 176, 162, 67, 229, 176, 184, 67, 229, 176, 191, 67, 229, 177, 160, 67, 229, 177, 162, 67, 229, 177, 164, 67, 229, 177, 165, 67, 229, 177, 174, 67, 229, 177, 177, 67, 229, 178, 141, 67, 229, 179, 128, 67, 229, 180, 153, 67, 229, 181, 131, 67, 229, 181, 144, 67, 229, 181, 171, 67, 229, 181, 174, 67, 229, 181, 188, 67, 229, 182, 178, 67, 229, 182, 186, 67, 229, 183, 155, 67, 229, 183, 161, 67, 229, 183, 162, 67, 229, 183, 165, 67, 229, 183, 166, 67, 229, 183, 177, 67, 229, 183, 189, 67, 229, 183, 190, 67, 229, 184, 168, 67, 229, 184, 189, 67, 229, 185, 169, 67, 229, 185, 178, 67, 229, 185, 180, 67, 229, 185, 186, 67, 229, 185, 188, 67, 229, 185, 191, 67, 229, 186, 166, 67, 229, 186, 176, 67, 229, 186, 179, 67, 229, 186, 182, 67, 229, 187, 137, 67, 229, 187, 138, 67, 229, 187, 146, 67, 229, 187, 147, 67, 229, 187, 153, 67, 229, 187, 172, 67, 229, 187, 180, 67, 229, 187, 190, 67, 229, 188, 132, 67, 229, 188, 139, 67, 229, 188, 147, 67, 229, 188, 162, 67, 229, 189, 144, 67, 229, 189, 147, 67, 229, 189, 161, 67, 229, 189, 162, 67, 229, 189, 169, 67, 229, 189, 171, 67, 229, 189, 179, 67, 229, 190, 139, 67, 229, 190, 140, 67, 229, 190, 151, 67, 229, 190, 154, 67, 229, 190, 169, 67, 229, 190, 173, 67, 229, 191, 131, 67, 229, 191, 141, 67, 229, 191, 151, 67, 229, 191, 181, 67, 229, 191, 185, 67, 230, 128, 146, 67, 230, 128, 156, 67, 230, 129, 181, 67, 230, 130, 129, 67, 230, 130, 148, 67, 230, 131, 135, 67, 230, 131, 152, 67, 230, 131, 161, 67, 230, 132, 136, 67, 230, 133, 132, 67, 230, 133, 136, 67, 230, 133, 140, 67, 230, 133, 142, 67, 230, 133, 160, 67, 230, 133, 168, 67, 230, 133, 186, 67, 230, 134, 142, 67, 230, 134, 144, 67, 230, 134, 164, 67, 230, 134, 175, 67, 230, 134, 178, 67, 230, 135, 158, 67, 230, 135, 178, 67, 230, 135, 182, 67, 230, 136, 128, 67, 230, 136, 136, 67, 230, 136, 144, 67, 230, 136, 155, 67, 230, 136, 174, 67, 230, 136, 180, 67, 230, 136, 182, 67, 230, 137, 139, 67, 230, 137, 147, 67, 230, 137, 157, 67, 230, 138, 149, 67, 230, 138, 177, 67, 230, 139, 137, 67, 230, 139, 143, 67, 230, 139, 147, 67, 230, 139, 148, 67, 230, 139, 188, 67, 230, 139, 190, 67, 230, 140, 135, 67, 230, 140, 189, 67, 230, 141, 144, 67, 230, 141, 149, 67, 230, 141, 168, 67, 230, 141, 187, 67, 230, 142, 131, 67, 230, 142, 160, 67, 230, 142, 169, 67, 230, 143, 132, 67, 230, 143, 133, 67, 230, 143, 164, 67, 230, 144, 156, 67, 230, 144, 162, 67, 230, 145, 146, 67, 230, 145, 169, 67, 230, 145, 183, 67, 230, 145, 190, 67, 230, 146, 154, 67, 230, 146, 157, 67, 230, 147, 132, 67, 230, 148, 175, 67, 230, 148, 180, 67, 230, 149, 143, 67, 230, 149, 150, 67, 230, 149, 172, 67, 230, 149, 184, 67, 230, 150, 135, 67, 230, 150, 151, 67, 230, 150, 153, 67, 230, 150, 164, 67, 230, 150, 176, 67, 230, 150, 185, 67, 230, 151, 133, 67, 230, 151, 160, 67, 230, 151, 162, 67, 230, 151, 163, 67, 230, 151, 165, 67, 230, 152, 147, 67, 230, 152, 160, 67, 230, 153, 137, 67, 230, 153, 180, 67, 230, 154, 136, 67, 230, 154, 145, 67, 230, 154, 156, 67, 230, 154, 180, 67, 230, 155, 134, 67, 230, 155, 176, 67, 230, 155, 180, 67, 230, 155, 184, 67, 230, 156, 128, 67, 230, 156, 136, 67, 230, 156, 137, 67, 230, 156, 151, 67, 230, 156, 155, 67, 230, 156, 161, 67, 230, 156, 168, 67, 230, 157, 142, 67, 230, 157, 147, 67, 230, 157, 150, 67, 230, 157, 158, 67, 230, 157, 187, 67, 230, 158, 133, 67, 230, 158, 151, 67, 230, 159, 179, 67, 230, 159, 186, 67, 230, 160, 151, 67, 230, 160, 159, 67, 230, 160, 170, 67, 230, 161, 146, 67, 230, 162, 129, 67, 230, 162, 133, 67, 230, 162, 142, 67, 230, 162, 168, 67, 230, 164, 148, 67, 230, 165, 130, 67, 230, 166, 163, 67, 230, 167, 170, 67, 230, 168, 130, 67, 230, 168, 147, 67, 230, 170, 168, 67, 230, 171, 147, 67, 230, 171, 155, 67, 230, 172, 132, 67, 230, 172, 160, 67, 230, 172, 161, 67, 230, 173, 148, 67, 230, 173, 162, 67, 230, 173, 163, 67, 230, 173, 178, 67, 230, 173, 183, 67, 230, 173, 185, 67, 230, 174, 159, 67, 230, 174, 174, 67, 230, 174, 179, 67, 230, 174, 186, 67, 230, 174, 187, 67, 230, 175, 139, 67, 230, 175, 141, 67, 230, 175, 148, 67, 230, 175, 155, 67, 230, 176, 143, 67, 230, 176, 148, 67, 230, 176, 180, 67, 230, 177, 142, 67, 230, 177, 167, 67, 230, 178, 136, 67, 230, 178, 191, 67, 230, 179, 140, 67, 230, 179, 141, 67, 230, 179, 165, 67, 230, 179, 168, 67, 230, 180, 150, 67, 230, 180, 155, 67, 230, 180, 158, 67, 230, 180, 180, 67, 230, 180, 190, 67, 230, 181, 129, 67, 230, 181, 169, 67, 230, 181, 170, 67, 230, 181, 183, 67, 230, 181, 184, 67, 230, 182, 133, 67, 230, 183, 139, 67, 230, 183, 154, 67, 230, 183, 170, 67, 230, 183, 185, 67, 230, 184, 154, 67, 230, 184, 175, 67, 230, 185, 174, 67, 230, 186, 128, 67, 230, 186, 156, 67, 230, 186, 186, 67, 230, 187, 135, 67, 230, 187, 139, 67, 230, 187, 145, 67, 230, 187, 155, 67, 230, 188, 143, 67, 230, 188, 148, 67, 230, 188, 162, 67, 230, 188, 163, 67, 230, 189, 174, 67, 230, 191, 134, 67, 230, 191, 171, 67, 230, 191, 190, 67, 231, 128, 155, 67, 231, 128, 158, 67, 231, 128, 185, 67, 231, 129, 138, 67, 231, 129, 171, 67, 231, 129, 176, 67, 231, 129, 183, 67, 231, 129, 189, 67, 231, 130, 153, 67, 231, 130, 173, 67, 231, 131, 136, 67, 231, 131, 153, 67, 231, 132, 161, 67, 231, 133, 133, 67, 231, 133, 137, 67, 231, 133, 174, 67, 231, 134, 156, 67, 231, 135, 142, 67, 231, 135, 144, 67, 231, 136, 144, 67, 231, 136, 155, 67, 231, 136, 168, 67, 231, 136, 170, 67, 231, 136, 171, 67, 231, 136, 181, 67, 231, 136, 182, 67, 231, 136, 187, 67, 231, 136, 191, 67, 231, 137, 135, 67, 231, 137, 144, 67, 231, 137, 153, 67, 231, 137, 155, 67, 231, 137, 162, 67, 231, 137, 185, 67, 231, 138, 128, 67, 231, 138, 149, 67, 231, 138, 172, 67, 231, 138, 175, 67, 231, 139, 128, 67, 231, 139, 188, 67, 231, 140, 170, 67, 231, 141, 181, 67, 231, 141, 186, 67, 231, 142, 132, 67, 231, 142, 135, 67, 231, 142, 137, 67, 231, 142, 139, 67, 231, 142, 165, 67, 231, 142, 178, 67, 231, 143, 158, 67, 231, 144, 134, 67, 231, 144, 137, 67, 231, 144, 162, 67, 231, 145, 135, 67, 231, 145, 156, 67, 231, 145, 169, 67, 231, 145, 177, 67, 231, 146, 133, 67, 231, 146, 137, 67, 231, 146, 152, 67, 231, 147, 138, 67, 231, 147, 156, 67, 231, 147, 166, 67, 231, 148, 134, 67, 231, 148, 152, 67, 231, 148, 159, 67, 231, 148, 164, 67, 231, 148, 168, 67, 231, 148, 176, 67, 231, 148, 178, 67, 231, 148, 179, 67, 231, 148, 183, 67, 231, 148, 187, 67, 231, 148, 190, 67, 231, 149, 153, 67, 231, 149, 165, 67, 231, 149, 176, 67, 231, 150, 139, 67, 231, 150, 146, 67, 231, 151, 162, 67, 231, 152, 144, 67, 231, 152, 157, 67, 231, 152, 159, 67, 231, 153, 130, 67, 231, 153, 169, 67, 231, 153, 182, 67, 231, 153, 189, 67, 231, 154, 174, 67, 231, 154, 191, 67, 231, 155, 138, 67, 231, 155, 155, 67, 231, 155, 163, 67, 231, 155, 167, 67, 231, 155, 174, 67, 231, 155, 180, 67, 231, 156, 129, 67, 231, 156, 158, 67, 231, 156, 159, 67, 231, 157, 128, 67, 231, 157, 138, 67, 231, 158, 139, 67, 231, 158, 167, 67, 231, 159, 155, 67, 231, 159, 162, 67, 231, 159, 179, 67, 231, 161, 142, 67, 231, 161, 171, 67, 231, 162, 140, 67, 231, 162, 145, 67, 231, 163, 138, 67, 231, 163, 140, 67, 231, 163, 187, 67, 231, 164, 170, 67, 231, 164, 186, 67, 231, 164, 188, 67, 231, 164, 190, 67, 231, 165, 136, 67, 231, 165, 137, 67, 231, 165, 144, 67, 231, 165, 150, 67, 231, 165, 157, 67, 231, 165, 158, 67, 231, 165, 165, 67, 231, 165, 191, 67, 231, 166, 129, 67, 231, 166, 141, 67, 231, 166, 142, 67, 231, 166, 143, 67, 231, 166, 174, 67, 231, 166, 184, 67, 231, 166, 190, 67, 231, 167, 138, 67, 231, 167, 152, 67, 231, 167, 171, 67, 231, 168, 156, 67, 231, 169, 128, 67, 231, 169, 138, 67, 231, 169, 143, 67, 231, 169, 180, 67, 231, 169, 186, 67, 231, 170, 129, 67, 231, 170, 177, 67, 231, 171, 139, 67, 231, 171, 174, 67, 231, 171, 185, 67, 231, 172, 160, 67, 231, 174, 143, 67, 231, 175, 128, 67, 231, 175, 134, 67, 231, 175, 137, 67, 231, 176, 190, 67, 231, 177, 160, 67, 231, 177, 179, 67, 231, 177, 187, 67, 231, 178, 146, 67, 231, 178, 190, 67, 231, 179, 146, 67, 231, 179, 150, 67, 231, 179, 163, 67, 231, 179, 167, 67, 231, 179, 168, 67, 231, 179, 184, 67, 231, 180, 128, 67, 231, 180, 144, 67, 231, 180, 162, 67, 231, 180, 175, 67, 231, 181, 130, 67, 231, 181, 155, 67, 231, 181, 163, 67, 231, 182, 160, 67, 231, 182, 190, 67, 231, 183, 135, 67, 231, 183, 180, 67, 231, 184, 130, 67, 231, 184, 137, 67, 231, 184, 183, 67, 231, 185, 129, 67, 231, 185, 133, 67, 231, 188, 182, 67, 231, 188, 190, 67, 231, 189, 145, 67, 231, 189, 178, 67, 231, 189, 185, 67, 231, 189, 186, 67, 231, 190, 133, 67, 231, 190, 138, 67, 231, 190, 149, 67, 231, 190, 154, 67, 231, 190, 189, 67, 231, 191, 186, 67, 232, 128, 129, 67, 232, 128, 133, 67, 232, 128, 140, 67, 232, 128, 146, 67, 232, 128, 179, 67, 232, 129, 134, 67, 232, 129, 160, 67, 232, 129, 175, 67, 232, 129, 176, 67, 232, 129, 190, 67, 232, 129, 191, 67, 232, 130, 137, 67, 232, 130, 139, 67, 232, 130, 173, 67, 232, 130, 178, 67, 232, 132, 131, 67, 232, 132, 190, 67, 232, 135, 152, 67, 232, 135, 163, 67, 232, 135, 168, 67, 232, 135, 170, 67, 232, 135, 173, 67, 232, 135, 179, 67, 232, 135, 188, 67, 232, 136, 129, 67, 232, 136, 132, 67, 232, 136, 140, 67, 232, 136, 152, 67, 232, 136, 155, 67, 232, 136, 159, 67, 232, 137, 174, 67, 232, 137, 175, 67, 232, 137, 178, 67, 232, 137, 184, 67, 232, 137, 185, 67, 232, 138, 139, 67, 232, 138, 145, 67, 232, 138, 157, 67, 232, 138, 177, 67, 232, 138, 179, 67, 232, 138, 189, 67, 232, 139, 165, 67, 232, 139, 166, 67, 232, 140, 157, 67, 232, 140, 163, 67, 232, 140, 182, 67, 232, 141, 146, 67, 232, 141, 147, 67, 232, 141, 163, 67, 232, 142, 173, 67, 232, 142, 189, 67, 232, 143, 137, 67, 232, 143, 138, 67, 232, 143, 140, 67, 232, 143, 156, 67, 232, 143, 167, 67, 232, 143, 175, 67, 232, 143, 177, 67, 232, 144, 189, 67, 232, 145, 137, 67, 232, 145, 151, 67, 232, 147, 174, 67, 232, 147, 177, 67, 232, 147, 179, 67, 232, 147, 188, 67, 232, 148, 150, 67, 232, 149, 164, 67, 232, 151, 141, 67, 232, 151, 186, 67, 232, 152, 134, 67, 232, 152, 146, 67, 232, 152, 173, 67, 232, 152, 191, 67, 232, 153, 141, 67, 232, 153, 144, 67, 232, 153, 156, 67, 232, 153, 167, 67, 232, 153, 169, 67, 232, 153, 171, 67, 232, 154, 136, 67, 232, 154, 169, 67, 232, 155, 162, 67, 232, 156, 142, 67, 232, 156, 168, 67, 232, 157, 171, 67, 232, 157, 185, 67, 232, 158, 134, 67, 232, 158, 186, 67, 232, 159, 161, 67, 232, 160, 129, 67, 232, 160, 159, 67, 232, 161, 128, 67, 232, 161, 140, 67, 232, 161, 160, 67, 232, 161, 163, 67, 232, 163, 130, 67, 232, 163, 143, 67, 232, 163, 151, 67, 232, 163, 158, 67, 232, 163, 161, 67, 232, 163, 184, 67, 232, 163, 186, 67, 232, 164, 144, 67, 232, 165, 129, 67, 232, 165, 164, 67, 232, 165, 190, 67, 232, 166, 134, 67, 232, 166, 139, 67, 232, 166, 150, 67, 232, 167, 146, 67, 232, 167, 163, 67, 232, 168, 128, 67, 232, 170, 160, 67, 232, 170, 170, 67, 232, 170, 191, 67, 232, 171, 139, 67, 232, 171, 146, 67, 232, 171, 150, 67, 232, 171, 173, 67, 232, 171, 184, 67, 232, 171, 190, 67, 232, 172, 129, 67, 232, 172, 185, 67, 232, 173, 152, 67, 232, 174, 128, 67, 232, 174, 138, 67, 232, 176, 183, 67, 232, 177, 134, 67, 232, 177, 136, 67, 232, 177, 149, 67, 232, 177, 184, 67, 232, 178, 157, 67, 232, 178, 161, 67, 232, 178, 169, 67, 232, 178, 171, 67, 232, 179, 129, 67, 232, 179, 130, 67, 232, 179, 135, 67, 232, 179, 136, 67, 232, 179, 147, 67, 232, 180, 136, 67, 232, 180, 155, 67, 232, 181, 164, 67, 232, 181, 176, 67, 232, 181, 183, 67, 232, 182, 179, 67, 232, 182, 188, 67, 232, 183, 139, 67, 232, 183, 175, 67, 232, 183, 176, 67, 232, 186, 171, 67, 232, 187, 138, 67, 232, 187, 148, 67, 232, 188, 166, 67, 232, 188, 170, 67, 232, 188, 184, 67, 232, 188, 187, 67, 232, 189, 162, 67, 232, 190, 155, 67, 232, 190, 158, 67, 232, 190, 176, 67, 232, 190, 181, 67, 232, 190, 182, 67, 233, 128, 163, 67, 233, 128, 184, 67, 233, 129, 138, 67, 233, 129, 169, 67, 233, 129, 178, 67, 233, 129, 188, 67, 233, 130, 143, 67, 233, 130, 145, 67, 233, 130, 148, 67, 233, 131, 142, 67, 233, 131, 158, 67, 233, 131, 177, 67, 233, 131, 189, 67, 233, 132, 145, 67, 233, 132, 155, 67, 233, 133, 137, 67, 233, 133, 141, 67, 233, 133, 170, 67, 233, 134, 153, 67, 233, 134, 180, 67, 233, 135, 134, 67, 233, 135, 140, 67, 233, 135, 143, 67, 233, 135, 145, 67, 233, 136, 180, 67, 233, 136, 184, 67, 233, 137, 182, 67, 233, 137, 188, 67, 233, 139, 151, 67, 233, 139, 152, 67, 233, 140, 132, 67, 233, 141, 138, 67, 233, 143, 185, 67, 233, 144, 149, 67, 233, 149, 183, 67, 233, 150, 128, 67, 233, 150, 139, 67, 233, 150, 173, 67, 233, 150, 183, 67, 233, 152, 156, 67, 233, 152, 174, 67, 233, 153, 139, 67, 233, 153, 141, 67, 233, 153, 181, 67, 233, 153, 184, 67, 233, 153, 188, 67, 233, 154, 134, 67, 233, 154, 163, 67, 233, 154, 182, 67, 233, 154, 183, 67, 233, 154, 184, 67, 233, 154, 185, 67, 233, 155, 131, 67, 233, 155, 162, 67, 233, 155, 163, 67, 233, 155, 168, 67, 233, 155, 182, 67, 233, 155, 183, 67, 233, 156, 163, 67, 233, 156, 178, 67, 233, 157, 136, 67, 233, 157, 145, 67, 233, 157, 150, 67, 233, 157, 158, 67, 233, 157, 162, 67, 233, 157, 169, 67, 233, 159, 139, 67, 233, 159, 155, 67, 233, 159, 160, 67, 233, 159, 173, 67, 233, 159, 179, 67, 233, 159, 191, 67, 233, 160, 129, 67, 233, 160, 133, 67, 233, 160, 139, 67, 233, 160, 152, 67, 233, 160, 169, 67, 233, 160, 187, 67, 233, 161, 158, 67, 233, 162, 168, 67, 233, 163, 155, 67, 233, 163, 159, 67, 233, 163, 162, 67, 233, 163, 175, 67, 233, 163, 188, 67, 233, 164, 168, 67, 233, 164, 169, 67, 233, 166, 150, 67, 233, 166, 153, 67, 233, 166, 167, 67, 233, 166, 172, 67, 233, 167, 130, 67, 233, 167, 177, 67, 233, 167, 190, 67, 233, 169, 170, 67, 233, 170, 168, 67, 233, 171, 152, 67, 233, 171, 159, 67, 233, 172, 146, 67, 233, 172, 165, 67, 233, 172, 175, 67, 233, 172, 178, 67, 233, 172, 188, 67, 233, 173, 154, 67, 233, 173, 175, 67, 233, 177, 128, 67, 233, 177, 151, 67, 233, 179, 165, 67, 233, 179, 189, 67, 233, 181, 167, 67, 233, 182, 180, 67, 233, 183, 186, 67, 233, 184, 158, 67, 233, 185, 181, 67, 233, 185, 191, 67, 233, 186, 151, 67, 233, 186, 159, 67, 233, 186, 165, 67, 233, 186, 187, 67, 233, 187, 131, 67, 233, 187, 141, 67, 233, 187, 142, 67, 233, 187, 145, 67, 233, 187, 185, 67, 233, 187, 189, 67, 233, 187, 190, 67, 233, 188, 133, 67, 233, 188, 142, 67, 233, 188, 143, 67, 233, 188, 147, 67, 233, 188, 150, 67, 233, 188, 160, 67, 233, 188, 187, 67, 233, 189, 131, 67, 233, 189, 138, 67, 233, 189, 146, 67, 233, 190, 141, 67, 233, 190, 142, 67, 233, 190, 156, 67, 233, 190, 159, 67, 233, 190, 160, 67, 234, 153, 145, 67, 234, 154, 137, 67, 234, 156, 167, 67, 234, 157, 175, 67, 234, 158, 142, 67, 234, 172, 183, 67, 234, 173, 146, 67, 234, 173, 166, 67, 234, 173, 167, 68, 240, 157, 188, 132, 68, 240, 157, 188, 133, 68, 240, 157, 188, 134, 68, 240, 157, 188, 136, 68, 240, 157, 188, 138, 68, 240, 157, 188, 158, 68, 240, 160, 132, 162, 68, 240, 160, 148, 156, 68, 240, 160, 148, 165, 68, 240, 160, 149, 139, 68, 240, 160, 152, 186, 68, 240, 160, 160, 132, 68, 240, 160, 163, 158, 68, 240, 160, 168, 172, 68, 240, 160, 173, 163, 68, 240, 161, 147, 164, 68, 240, 161, 154, 168, 68, 240, 161, 155, 170, 68, 240, 161, 167, 136, 68, 240, 161, 172, 152, 68, 240, 161, 180, 139, 68, 240, 161, 183, 164, 68, 240, 161, 183, 166, 68, 240, 162, 134, 131, 68, 240, 162, 134, 159, 68, 240, 162, 140, 177, 68, 240, 162, 155, 148, 68, 240, 162, 161, 132, 68, 240, 162, 161, 138, 68, 240, 162, 172, 140, 68, 240, 162, 175, 177, 68, 240, 163, 128, 138, 68, 240, 163, 138, 184, 68, 240, 163, 141, 159, 68, 240, 163, 142, 147, 68, 240, 163, 142, 156, 68, 240, 163, 143, 131, 68, 240, 163, 143, 149, 68, 240, 163, 145, 173, 68, 240, 163, 154, 163, 68, 240, 163, 162, 167, 68, 240, 163, 170, 141, 68, 240, 163, 171, 186, 68, 240, 163, 178, 188, 68, 240, 163, 180, 158, 68, 240, 163, 187, 145, 68, 240, 163, 189, 158, 68, 240, 163, 190, 142, 68, 240, 164, 137, 163, 68, 240, 164, 139, 174, 68, 240, 164, 142, 171, 68, 240, 164, 152, 136, 68, 240, 164, 156, 181, 68, 240, 164, 160, 148, 68, 240, 164, 176, 182, 68, 240, 164, 178, 146, 68, 240, 164, 190, 161, 68, 240, 164, 190, 184, 68, 240, 165, 129, 132, 68, 240, 165, 131, 178, 68, 240, 165, 131, 179, 68, 240, 165, 132, 153, 68, 240, 165, 132, 179, 68, 240, 165, 137, 137, 68, 240, 165, 144, 157, 68, 240, 165, 152, 166, 68, 240, 165, 154, 154, 68, 240, 165, 155, 133, 68, 240, 165, 165, 188, 68, 240, 165, 170, 167, 68, 240, 165, 174, 171, 68, 240, 165, 178, 128, 68, 240, 165, 179, 144, 68, 240, 165, 190, 134, 68, 240, 166, 135, 154, 68, 240, 166, 136, 168, 68, 240, 166, 137, 135, 68, 240, 166, 139, 153, 68, 240, 166, 140, 190, 68, 240, 166, 147, 154, 68, 240, 166, 148, 163, 68, 240, 166, 150, 168, 68, 240, 166, 158, 167, 68, 240, 166, 158, 181, 68, 240, 166, 172, 188, 68, 240, 166, 176, 182, 68, 240, 166, 179, 149, 68, 240, 166, 181, 171, 68, 240, 166, 188, 172, 68, 240, 166, 190, 177, 68, 240, 167, 131, 146, 68, 240, 167, 143, 138, 68, 240, 167, 153, 167, 68, 240, 167, 162, 174, 68, 240, 167, 165, 166, 68, 240, 167, 178, 168, 68, 240, 167, 187, 147, 68, 240, 167, 188, 175, 68, 240, 168, 151, 146, 68, 240, 168, 151, 173, 68, 240, 168, 156, 174, 68, 240, 168, 175, 186, 68, 240, 168, 181, 183, 68, 240, 169, 133, 133, 68, 240, 169, 135, 159, 68, 240, 169, 136, 154, 68, 240, 169, 144, 138, 68, 240, 169, 146, 150, 68, 240, 169, 150, 182, 68, 240, 169, 172, 176, 68, 240, 170, 131, 142, 68, 240, 170, 132, 133, 68, 240, 170, 136, 142, 68, 240, 170, 138, 145, 68, 240, 170, 142, 146, 68, 240, 170, 152, 128, 66, 33, 33, 66, 33, 63, 66, 46, 46, 66, 48, 44, 66, 48, 46, 66, 49, 44, 66, 49, 46, 66, 49, 48, 66, 49, 49, 66, 49, 50, 66, 49, 51, 66, 49, 52, 66, 49, 53, 66, 49, 54, 66, 49, 55, 66, 49, 56, 66, 49, 57, 66, 50, 44, 66, 50, 46, 66, 50, 48, 66, 50, 49, 66, 50, 50, 66, 50, 51, 66, 50, 52, 66, 50, 53, 66, 50, 54, 66, 50, 55, 66, 50, 56, 66, 50, 57, 66, 51, 44, 66, 51, 46, 66, 51, 48, 66, 51, 49, 66, 51, 50, 66, 51, 51, 66, 51, 52, 66, 51, 53, 66, 51, 54, 66, 51, 55, 66, 51, 56, 66, 51, 57, 66, 52, 44, 66, 52, 46, 66, 52, 48, 66, 52, 49, 66, 52, 50, 66, 52, 51, 66, 52, 52, 66, 52, 53, 66, 52, 54, 66, 52, 55, 66, 52, 56, 66, 52, 57, 66, 53, 44, 66, 53, 46, 66, 53, 48, 66, 54, 44, 66, 54, 46, 66, 55, 44, 66, 55, 46, 66, 56, 44, 66, 56, 46, 66, 57, 44, 66, 57, 46, 66, 61, 61, 66, 63, 33, 66, 63, 63, 66, 65, 85, 66, 66, 113, 66, 67, 68, 66, 68, 74, 66, 68, 90, 66, 68, 122, 66, 71, 66, 66, 71, 121, 66, 72, 80, 66, 72, 86, 66, 72, 103, 66, 72, 122, 66, 73, 73, 66, 73, 74, 66, 73, 85, 66, 73, 86, 66, 73, 88, 66, 75, 66, 66, 75, 75, 66, 75, 77, 66, 76, 74, 66, 76, 106, 66, 77, 66, 66, 77, 67, 66, 77, 68, 66, 77, 82, 66, 77, 86, 66, 77, 87, 66, 78, 74, 66, 78, 106, 66, 78, 111, 66, 80, 72, 66, 80, 82, 66, 80, 97, 66, 82, 115, 66, 83, 68, 66, 83, 77, 66, 83, 83, 66, 83, 118, 66, 84, 77, 66, 86, 73, 66, 87, 67, 66, 87, 90, 66, 87, 98, 66, 88, 73, 66, 99, 99, 66, 99, 100, 66, 99, 109, 66, 100, 66, 66, 100, 97, 66, 100, 108, 66, 100, 109, 66, 100, 122, 66, 101, 86, 66, 102, 102, 66, 102, 105, 66, 102, 108, 66, 102, 109, 66, 104, 97, 66, 105, 105, 66, 105, 106, 66, 105, 110, 66, 105, 118, 66, 105, 120, 66, 107, 65, 66, 107, 86, 66, 107, 87, 66, 107, 103, 66, 107, 108, 66, 107, 109, 66, 107, 116, 66, 108, 106, 66, 108, 109, 66, 108, 110, 66, 108, 120, 66, 109, 50, 66, 109, 51, 66, 109, 65, 66, 109, 86, 66, 109, 87, 66, 109, 98, 66, 109, 103, 66, 109, 108, 66, 109, 109, 66, 109, 115, 66, 110, 65, 66, 110, 70, 66, 110, 86, 66, 110, 87, 66, 110, 106, 66, 110, 109, 66, 110, 115, 66, 111, 86, 66, 112, 65, 66, 112, 70, 66, 112, 86, 66, 112, 87, 66, 112, 99, 66, 112, 115, 66, 115, 114, 66, 115, 116, 66, 118, 105, 66, 120, 105, 67, 40, 49, 41, 67, 40, 50, 41, 67, 40, 51, 41, 67, 40, 52, 41, 67, 40, 53, 41, 67, 40, 54, 41, 67, 40, 55, 41, 67, 40, 56, 41, 67, 40, 57, 41, 67, 40, 65, 41, 67, 40, 66, 41, 67, 40, 67, 41, 67, 40, 68, 41, 67, 40, 69, 41, 67, 40, 70, 41, 67, 40, 71, 41, 67, 40, 72, 41, 67, 40, 73, 41, 67, 40, 74, 41, 67, 40, 75, 41, 67, 40, 76, 41, 67, 40, 77, 41, 67, 40, 78, 41, 67, 40, 79, 41, 67, 40, 80, 41, 67, 40, 81, 41, 67, 40, 82, 41, 67, 40, 83, 41, 67, 40, 84, 41, 67, 40, 85, 41, 67, 40, 86, 41, 67, 40, 87, 41, 67, 40, 88, 41, 67, 40, 89, 41, 67, 40, 90, 41, 67, 40, 97, 41, 67, 40, 98, 41, 67, 40, 99, 41, 67, 40, 100, 41, 67, 40, 101, 41, 67, 40, 102, 41, 67, 40, 103, 41, 67, 40, 104, 41, 67, 40, 105, 41, 67, 40, 106, 41, 67, 40, 107, 41, 67, 40, 108, 41, 67, 40, 109, 41, 67, 40, 110, 41, 67, 40, 111, 41, 67, 40, 112, 41, 67, 40, 113, 41, 67, 40, 114, 41, 67, 40, 115, 41, 67, 40, 116, 41, 67, 40, 117, 41, 67, 40, 118, 41, 67, 40, 119, 41, 67, 40, 120, 41, 67, 40, 121, 41, 67, 40, 122, 41, 67, 46, 46, 46, 67, 49, 48, 46, 67, 49, 49, 46, 67, 49, 50, 46, 67, 49, 51, 46, 67, 49, 52, 46, 67, 49, 53, 46, 67, 49, 54, 46, 67, 49, 55, 46, 67, 49, 56, 46, 67, 49, 57, 46, 67, 50, 48, 46, 67, 58, 58, 61, 67, 61, 61, 61, 67, 67, 111, 46, 67, 70, 65, 88, 67, 71, 72, 122, 67, 71, 80, 97, 67, 73, 73, 73, 67, 76, 84, 68, 67, 76, 194, 183, 67, 77, 72, 122, 67, 77, 80, 97, 67, 77, 206, 169, 67, 80, 80, 77, 67, 80, 80, 86, 67, 80, 84, 69, 67, 84, 69, 76, 67, 84, 72, 122, 67, 86, 73, 73, 67, 88, 73, 73, 67, 97, 47, 99, 67, 97, 47, 115, 67, 97, 202, 190, 67, 98, 97, 114, 67, 99, 47, 111, 67, 99, 47, 117, 67, 99, 97, 108, 67, 99, 109, 50, 67, 99, 109, 51, 67, 100, 109, 50, 67, 100, 109, 51, 67, 101, 114, 103, 67, 102, 102, 105, 67, 102, 102, 108, 67, 103, 97, 108, 67, 104, 80, 97, 67, 105, 105, 105, 67, 107, 72, 122, 67, 107, 80, 97, 67, 107, 109, 50, 67, 107, 109, 51, 67, 107, 206, 169, 67, 108, 111, 103, 67, 108, 194, 183, 67, 109, 105, 108, 67, 109, 109, 50, 67, 109, 109, 51, 67, 109, 111, 108, 67, 114, 97, 100, 67, 118, 105, 105, 67, 120, 105, 105, 67, 194, 176, 67, 67, 194, 176, 70, 67, 202, 188, 110, 67, 206, 188, 65, 67, 206, 188, 70, 67, 206, 188, 86, 67, 206, 188, 87, 67, 206, 188, 103, 67, 206, 188, 108, 67, 206, 188, 109, 67, 206, 188, 115, 68, 40, 49, 48, 41, 68, 40, 49, 49, 41, 68, 40, 49, 50, 41, 68, 40, 49, 51, 41, 68, 40, 49, 52, 41, 68, 40, 49, 53, 41, 68, 40, 49, 54, 41, 68, 40, 49, 55, 41, 68, 40, 49, 56, 41, 68, 40, 49, 57, 41, 68, 40, 50, 48, 41, 68, 48, 231, 130, 185, 68, 49, 226, 129, 132, 68, 49, 230, 151, 165, 68, 49, 230, 156, 136, 68, 49, 231, 130, 185, 68, 50, 230, 151, 165, 68, 50, 230, 156, 136, 68, 50, 231, 130, 185, 68, 51, 230, 151, 165, 68, 51, 230, 156, 136, 68, 51, 231, 130, 185, 68, 52, 230, 151, 165, 68, 52, 230, 156, 136, 68, 52, 231, 130, 185, 68, 53, 230, 151, 165, 68, 53, 230, 156, 136, 68, 53, 231, 130, 185, 68, 54, 230, 151, 165, 68, 54, 230, 156, 136, 68, 54, 231, 130, 185, 68, 55, 230, 151, 165, 68, 55, 230, 156, 136, 68, 55, 231, 130, 185, 68, 56, 230, 151, 165, 68, 56, 230, 156, 136, 68, 56, 231, 130, 185, 68, 57, 230, 151, 165, 68, 57, 230, 156, 136, 68, 57, 231, 130, 185, 68, 86, 73, 73, 73, 68, 97, 46, 109, 46, 68, 107, 99, 97, 108, 68, 112, 46, 109, 46, 68, 118, 105, 105, 105, 68, 213, 165, 214, 130, 68, 213, 180, 213, 165, 68, 213, 180, 213, 171, 68, 213, 180, 213, 173, 68, 213, 180, 213, 182, 68, 213, 190, 213, 182, 68, 215, 144, 215, 156, 68, 216, 167, 217, 180, 68, 216, 168, 216, 172, 68, 216, 168, 216, 173, 68, 216, 168, 216, 174, 68, 216, 168, 216, 177, 68, 216, 168, 216, 178, 68, 216, 168, 217, 133, 68, 216, 168, 217, 134, 68, 216, 168, 217, 135, 68, 216, 168, 217, 137, 68, 216, 168, 217, 138, 68, 216, 170, 216, 172, 68, 216, 170, 216, 173, 68, 216, 170, 216, 174, 68, 216, 170, 216, 177, 68, 216, 170, 216, 178, 68, 216, 170, 217, 133, 68, 216, 170, 217, 134, 68, 216, 170, 217, 135, 68, 216, 170, 217, 137, 68, 216, 170, 217, 138, 68, 216, 171, 216, 172, 68, 216, 171, 216, 177, 68, 216, 171, 216, 178, 68, 216, 171, 217, 133, 68, 216, 171, 217, 134, 68, 216, 171, 217, 135, 68, 216, 171, 217, 137, 68, 216, 171, 217, 138, 68, 216, 172, 216, 173, 68, 216, 172, 217, 133, 68, 216, 172, 217, 137, 68, 216, 172, 217, 138, 68, 216, 173, 216, 172, 68, 216, 173, 217, 133, 68, 216, 173, 217, 137, 68, 216, 173, 217, 138, 68, 216, 174, 216, 172, 68, 216, 174, 216, 173, 68, 216, 174, 217, 133, 68, 216, 174, 217, 137, 68, 216, 174, 217, 138, 68, 216, 179, 216, 172, 68, 216, 179, 216, 173, 68, 216, 179, 216, 174, 68, 216, 179, 216, 177, 68, 216, 179, 217, 133, 68, 216, 179, 217, 135, 68, 216, 179, 217, 137, 68, 216, 179, 217, 138, 68, 216, 180, 216, 172, 68, 216, 180, 216, 173, 68, 216, 180, 216, 174, 68, 216, 180, 216, 177, 68, 216, 180, 217, 133, 68, 216, 180, 217, 135, 68, 216, 180, 217, 137, 68, 216, 180, 217, 138, 68, 216, 181, 216, 173, 68, 216, 181, 216, 174, 68, 216, 181, 216, 177, 68, 216, 181, 217, 133, 68, 216, 181, 217, 137, 68, 216, 181, 217, 138, 68, 216, 182, 216, 172, 68, 216, 182, 216, 173, 68, 216, 182, 216, 174, 68, 216, 182, 216, 177, 68, 216, 182, 217, 133, 68, 216, 182, 217, 137, 68, 216, 182, 217, 138, 68, 216, 183, 216, 173, 68, 216, 183, 217, 133, 68, 216, 183, 217, 137, 68, 216, 183, 217, 138, 68, 216, 184, 217, 133, 68, 216, 185, 216, 172, 68, 216, 185, 217, 133, 68, 216, 185, 217, 137, 68, 216, 185, 217, 138, 68, 216, 186, 216, 172, 68, 216, 186, 217, 133, 68, 216, 186, 217, 137, 68, 216, 186, 217, 138, 68, 217, 129, 216, 172, 68, 217, 129, 216, 173, 68, 217, 129, 216, 174, 68, 217, 129, 217, 133, 68, 217, 129, 217, 137, 68, 217, 129, 217, 138, 68, 217, 130, 216, 173, 68, 217, 130, 217, 133, 68, 217, 130, 217, 137, 68, 217, 130, 217, 138, 68, 217, 131, 216, 167, 68, 217, 131, 216, 172, 68, 217, 131, 216, 173, 68, 217, 131, 216, 174, 68, 217, 131, 217, 132, 68, 217, 131, 217, 133, 68, 217, 131, 217, 137, 68, 217, 131, 217, 138, 68, 217, 132, 216, 167, 68, 217, 132, 216, 172, 68, 217, 132, 216, 173, 68, 217, 132, 216, 174, 68, 217, 132, 217, 133, 68, 217, 132, 217, 135, 68, 217, 132, 217, 137, 68, 217, 132, 217, 138, 68, 217, 133, 216, 167, 68, 217, 133, 216, 172, 68, 217, 133, 216, 173, 68, 217, 133, 216, 174, 68, 217, 133, 217, 133, 68, 217, 133, 217, 137, 68, 217, 133, 217, 138, 68, 217, 134, 216, 172, 68, 217, 134, 216, 173, 68, 217, 134, 216, 174, 68, 217, 134, 216, 177, 68, 217, 134, 216, 178, 68, 217, 134, 217, 133, 68, 217, 134, 217, 134, 68, 217, 134, 217, 135, 68, 217, 134, 217, 137, 68, 217, 134, 217, 138, 68, 217, 135, 216, 172, 68, 217, 135, 217, 133, 68, 217, 135, 217, 137, 68, 217, 135, 217, 138, 68, 217, 136, 217, 180, 68, 217, 138, 216, 172, 68, 217, 138, 216, 173, 68, 217, 138, 216, 174, 68, 217, 138, 216, 177, 68, 217, 138, 216, 178, 68, 217, 138, 217, 133, 68, 217, 138, 217, 134, 68, 217, 138, 217, 135, 68, 217, 138, 217, 137, 68, 217, 138, 217, 138, 68, 217, 138, 217, 180, 68, 219, 135, 217, 180, 69, 40, 225, 132, 128, 41, 69, 40, 225, 132, 130, 41, 69, 40, 225, 132, 131, 41, 69, 40, 225, 132, 133, 41, 69, 40, 225, 132, 134, 41, 69, 40, 225, 132, 135, 41, 69, 40, 225, 132, 137, 41, 69, 40, 225, 132, 139, 41, 69, 40, 225, 132, 140, 41, 69, 40, 225, 132, 142, 41, 69, 40, 225, 132, 143, 41, 69, 40, 225, 132, 144, 41, 69, 40, 225, 132, 145, 41, 69, 40, 225, 132, 146, 41, 69, 40, 228, 184, 128, 41, 69, 40, 228, 184, 131, 41, 69, 40, 228, 184, 137, 41, 69, 40, 228, 185, 157, 41, 69, 40, 228, 186, 140, 41, 69, 40, 228, 186, 148, 41, 69, 40, 228, 187, 163, 41, 69, 40, 228, 188, 129, 41, 69, 40, 228, 188, 145, 41, 69, 40, 229, 133, 171, 41, 69, 40, 229, 133, 173, 41, 69, 40, 229, 138, 180, 41, 69, 40, 229, 141, 129, 41, 69, 40, 229, 141, 148, 41, 69, 40, 229, 144, 141, 41, 69, 40, 229, 145, 188, 41, 69, 40, 229, 155, 155, 41, 69, 40, 229, 156, 159, 41, 69, 40, 229, 173, 166, 41, 69, 40, 230, 151, 165, 41, 69, 40, 230, 156, 136, 41, 69, 40, 230, 156, 137, 41, 69, 40, 230, 156, 168, 41, 69, 40, 230, 160, 170, 41, 69, 40, 230, 176, 180, 41, 69, 40, 231, 129, 171, 41, 69, 40, 231, 137, 185, 41, 69, 40, 231, 155, 163, 41, 69, 40, 231, 164, 190, 41, 69, 40, 231, 165, 157, 41, 69, 40, 231, 165, 173, 41, 69, 40, 232, 135, 170, 41, 69, 40, 232, 135, 179, 41, 69, 40, 232, 178, 161, 41, 69, 40, 232, 179, 135, 41, 69, 40, 233, 135, 145, 41, 69, 48, 226, 129, 132, 51, 69, 49, 48, 230, 151, 165, 69, 49, 48, 230, 156, 136, 69, 49, 48, 231, 130, 185, 69, 49, 49, 230, 151, 165, 69, 49, 49, 230, 156, 136, 69, 49, 49, 231, 130, 185, 69, 49, 50, 230, 151, 165, 69, 49, 50, 230, 156, 136, 69, 49, 50, 231, 130, 185, 69, 49, 51, 230, 151, 165, 69, 49, 51, 231, 130, 185, 69, 49, 52, 230, 151, 165, 69, 49, 52, 231, 130, 185, 69, 49, 53, 230, 151, 165, 69, 49, 53, 231, 130, 185, 69, 49, 54, 230, 151, 165, 69, 49, 54, 231, 130, 185, 69, 49, 55, 230, 151, 165, 69, 49, 55, 231, 130, 185, 69, 49, 56, 230, 151, 165, 69, 49, 56, 231, 130, 185, 69, 49, 57, 230, 151, 165, 69, 49, 57, 231, 130, 185, 69, 49, 226, 129, 132, 50, 69, 49, 226, 129, 132, 51, 69, 49, 226, 129, 132, 52, 69, 49, 226, 129, 132, 53, 69, 49, 226, 129, 132, 54, 69, 49, 226, 129, 132, 55, 69, 49, 226, 129, 132, 56, 69, 49, 226, 129, 132, 57, 69, 50, 48, 230, 151, 165, 69, 50, 48, 231, 130, 185, 69, 50, 49, 230, 151, 165, 69, 50, 49, 231, 130, 185, 69, 50, 50, 230, 151, 165, 69, 50, 50, 231, 130, 185, 69, 50, 51, 230, 151, 165, 69, 50, 51, 231, 130, 185, 69, 50, 52, 230, 151, 165, 69, 50, 52, 231, 130, 185, 69, 50, 53, 230, 151, 165, 69, 50, 54, 230, 151, 165, 69, 50, 55, 230, 151, 165, 69, 50, 56, 230, 151, 165, 69, 50, 57, 230, 151, 165, 69, 50, 226, 129, 132, 51, 69, 50, 226, 129, 132, 53, 69, 51, 48, 230, 151, 165, 69, 51, 49, 230, 151, 165, 69, 51, 226, 129, 132, 52, 69, 51, 226, 129, 132, 53, 69, 51, 226, 129, 132, 56, 69, 52, 226, 129, 132, 53, 69, 53, 226, 129, 132, 54, 69, 53, 226, 129, 132, 56, 69, 55, 226, 129, 132, 56, 69, 65, 226, 136, 149, 109, 69, 86, 226, 136, 149, 109, 69, 109, 226, 136, 149, 115, 70, 49, 226, 129, 132, 49, 48, 70, 67, 226, 136, 149, 107, 103, 70, 109, 226, 136, 149, 115, 50, 70, 216, 168, 216, 173, 217, 138, 70, 216, 168, 216, 174, 217, 138, 70, 216, 170, 216, 172, 217, 133, 70, 216, 170, 216, 172, 217, 137, 70, 216, 170, 216, 172, 217, 138, 70, 216, 170, 216, 173, 216, 172, 70, 216, 170, 216, 173, 217, 133, 70, 216, 170, 216, 174, 217, 133, 70, 216, 170, 216, 174, 217, 137, 70, 216, 170, 216, 174, 217, 138, 70, 216, 170, 217, 133, 216, 172, 70, 216, 170, 217, 133, 216, 173, 70, 216, 170, 217, 133, 216, 174, 70, 216, 170, 217, 133, 217, 137, 70, 216, 170, 217, 133, 217, 138, 70, 216, 172, 216, 173, 217, 137, 70, 216, 172, 216, 173, 217, 138, 70, 216, 172, 217, 133, 216, 173, 70, 216, 172, 217, 133, 217, 137, 70, 216, 172, 217, 133, 217, 138, 70, 216, 173, 216, 172, 217, 138, 70, 216, 173, 217, 133, 217, 137, 70, 216, 173, 217, 133, 217, 138, 70, 216, 179, 216, 172, 216, 173, 70, 216, 179, 216, 172, 217, 137, 70, 216, 179, 216, 173, 216, 172, 70, 216, 179, 216, 174, 217, 137, 70, 216, 179, 216, 174, 217, 138, 70, 216, 179, 217, 133, 216, 172, 70, 216, 179, 217, 133, 216, 173, 70, 216, 179, 217, 133, 217, 133, 70, 216, 180, 216, 172, 217, 138, 70, 216, 180, 216, 173, 217, 133, 70, 216, 180, 216, 173, 217, 138, 70, 216, 180, 217, 133, 216, 174, 70, 216, 180, 217, 133, 217, 133, 70, 216, 181, 216, 173, 216, 173, 70, 216, 181, 216, 173, 217, 138, 70, 216, 181, 217, 132, 217, 137, 70, 216, 181, 217, 132, 219, 146, 70, 216, 181, 217, 133, 217, 133, 70, 216, 182, 216, 173, 217, 137, 70, 216, 182, 216, 173, 217, 138, 70, 216, 182, 216, 174, 217, 133, 70, 216, 183, 217, 133, 216, 173, 70, 216, 183, 217, 133, 217, 133, 70, 216, 183, 217, 133, 217, 138, 70, 216, 185, 216, 172, 217, 133, 70, 216, 185, 217, 133, 217, 133, 70, 216, 185, 217, 133, 217, 137, 70, 216, 185, 217, 133, 217, 138, 70, 216, 186, 217, 133, 217, 133, 70, 216, 186, 217, 133, 217, 137, 70, 216, 186, 217, 133, 217, 138, 70, 217, 129, 216, 174, 217, 133, 70, 217, 129, 217, 133, 217, 138, 70, 217, 130, 217, 132, 219, 146, 70, 217, 130, 217, 133, 216, 173, 70, 217, 130, 217, 133, 217, 133, 70, 217, 130, 217, 133, 217, 138, 70, 217, 131, 217, 133, 217, 133, 70, 217, 131, 217, 133, 217, 138, 70, 217, 132, 216, 172, 216, 172, 70, 217, 132, 216, 172, 217, 133, 70, 217, 132, 216, 172, 217, 138, 70, 217, 132, 216, 173, 217, 133, 70, 217, 132, 216, 173, 217, 137, 70, 217, 132, 216, 173, 217, 138, 70, 217, 132, 216, 174, 217, 133, 70, 217, 132, 217, 133, 216, 173, 70, 217, 132, 217, 133, 217, 138, 70, 217, 133, 216, 172, 216, 173, 70, 217, 133, 216, 172, 216, 174, 70, 217, 133, 216, 172, 217, 133, 70, 217, 133, 216, 172, 217, 138, 70, 217, 133, 216, 173, 216, 172, 70, 217, 133, 216, 173, 217, 133, 70, 217, 133, 216, 173, 217, 138, 70, 217, 133, 216, 174, 216, 172, 70, 217, 133, 216, 174, 217, 133, 70, 217, 133, 216, 174, 217, 138, 70, 217, 133, 217, 133, 217, 138, 70, 217, 134, 216, 172, 216, 173, 70, 217, 134, 216, 172, 217, 133, 70, 217, 134, 216, 172, 217, 137, 70, 217, 134, 216, 172, 217, 138, 70, 217, 134, 216, 173, 217, 133, 70, 217, 134, 216, 173, 217, 137, 70, 217, 134, 216, 173, 217, 138, 70, 217, 134, 217, 133, 217, 137, 70, 217, 134, 217, 133, 217, 138, 70, 217, 135, 217, 133, 216, 172, 70, 217, 135, 217, 133, 217, 133, 70, 217, 138, 216, 172, 217, 138, 70, 217, 138, 216, 173, 217, 138, 70, 217, 138, 217, 133, 217, 133, 70, 217, 138, 217, 133, 217, 138, 70, 217, 138, 217, 148, 216, 167, 70, 217, 138, 217, 148, 216, 172, 70, 217, 138, 217, 148, 216, 173, 70, 217, 138, 217, 148, 216, 174, 70, 217, 138, 217, 148, 216, 177, 70, 217, 138, 217, 148, 216, 178, 70, 217, 138, 217, 148, 217, 133, 70, 217, 138, 217, 148, 217, 134, 70, 217, 138, 217, 148, 217, 135, 70, 217, 138, 217, 148, 217, 136, 70, 217, 138, 217, 148, 217, 137, 70, 217, 138, 217, 148, 217, 138, 70, 217, 138, 217, 148, 219, 134, 70, 217, 138, 217, 148, 219, 135, 70, 217, 138, 217, 148, 219, 136, 70, 217, 138, 217, 148, 219, 144, 70, 217, 138, 217, 148, 219, 149, 70, 224, 185, 141, 224, 184, 178, 70, 224, 186, 171, 224, 186, 153, 70, 224, 186, 171, 224, 186, 161, 70, 224, 187, 141, 224, 186, 178, 70, 224, 189, 128, 224, 190, 181, 70, 224, 189, 130, 224, 190, 183, 70, 224, 189, 140, 224, 190, 183, 70, 224, 189, 145, 224, 190, 183, 70, 224, 189, 150, 224, 190, 183, 70, 224, 189, 155, 224, 190, 183, 70, 224, 190, 144, 224, 190, 181, 70, 224, 190, 146, 224, 190, 183, 70, 224, 190, 156, 224, 190, 183, 70, 224, 190, 161, 224, 190, 183, 70, 224, 190, 166, 224, 190, 183, 70, 224, 190, 171, 224, 190, 183, 70, 226, 128, 178, 226, 128, 178, 70, 226, 128, 181, 226, 128, 181, 70, 226, 136, 171, 226, 136, 171, 70, 226, 136, 174, 226, 136, 174, 70, 227, 129, 187, 227, 129, 139, 70, 227, 130, 136, 227, 130, 138, 70, 227, 130, 173, 227, 131, 173, 70, 227, 130, 179, 227, 130, 179, 70, 227, 130, 179, 227, 131, 136, 70, 227, 131, 136, 227, 131, 179, 70, 227, 131, 138, 227, 131, 142, 70, 227, 131, 155, 227, 131, 179, 70, 227, 131, 159, 227, 131, 170, 70, 227, 131, 170, 227, 131, 169, 70, 227, 131, 172, 227, 131, 160, 70, 228, 187, 164, 229, 146, 140, 70, 229, 164, 167, 230, 173, 163, 70, 229, 185, 179, 230, 136, 144, 70, 230, 152, 142, 230, 178, 187, 70, 230, 152, 173, 229, 146, 140, 71, 114, 97, 100, 226, 136, 149, 115, 71, 227, 128, 148, 83, 227, 128, 149, 72, 40, 225, 132, 128, 225, 133, 161, 41, 72, 40, 225, 132, 130, 225, 133, 161, 41, 72, 40, 225, 132, 131, 225, 133, 161, 41, 72, 40, 225, 132, 133, 225, 133, 161, 41, 72, 40, 225, 132, 134, 225, 133, 161, 41, 72, 40, 225, 132, 135, 225, 133, 161, 41, 72, 40, 225, 132, 137, 225, 133, 161, 41, 72, 40, 225, 132, 139, 225, 133, 161, 41, 72, 40, 225, 132, 140, 225, 133, 161, 41, 72, 40, 225, 132, 140, 225, 133, 174, 41, 72, 40, 225, 132, 142, 225, 133, 161, 41, 72, 40, 225, 132, 143, 225, 133, 161, 41, 72, 40, 225, 132, 144, 225, 133, 161, 41, 72, 40, 225, 132, 145, 225, 133, 161, 41, 72, 40, 225, 132, 146, 225, 133, 161, 41, 72, 114, 97, 100, 226, 136, 149, 115, 50, 72, 216, 167, 217, 131, 216, 168, 216, 177, 72, 216, 167, 217, 132, 217, 132, 217, 135, 72, 216, 177, 216, 179, 217, 136, 217, 132, 72, 216, 177, 219, 140, 216, 167, 217, 132, 72, 216, 181, 217, 132, 216, 185, 217, 133, 72, 216, 185, 217, 132, 217, 138, 217, 135, 72, 217, 133, 216, 173, 217, 133, 216, 175, 72, 217, 136, 216, 179, 217, 132, 217, 133, 73, 226, 128, 178, 226, 128, 178, 226, 128, 178, 73, 226, 128, 181, 226, 128, 181, 226, 128, 181, 73, 226, 136, 171, 226, 136, 171, 226, 136, 171, 73, 226, 136, 174, 226, 136, 174, 226, 136, 174, 73, 227, 128, 148, 228, 184, 137, 227, 128, 149, 73, 227, 128, 148, 228, 186, 140, 227, 128, 149, 73, 227, 128, 148, 229, 139, 157, 227, 128, 149, 73, 227, 128, 148, 229, 174, 137, 227, 128, 149, 73, 227, 128, 148, 230, 137, 147, 227, 128, 149, 73, 227, 128, 148, 230, 149, 151, 227, 128, 149, 73, 227, 128, 148, 230, 156, 172, 227, 128, 149, 73, 227, 128, 148, 231, 130, 185, 227, 128, 149, 73, 227, 128, 148, 231, 155, 151, 227, 128, 149, 73, 227, 130, 162, 227, 131, 188, 227, 131, 171, 73, 227, 130, 164, 227, 131, 179, 227, 131, 129, 73, 227, 130, 166, 227, 130, 169, 227, 131, 179, 73, 227, 130, 170, 227, 131, 179, 227, 130, 185, 73, 227, 130, 170, 227, 131, 188, 227, 131, 160, 73, 227, 130, 171, 227, 130, 164, 227, 131, 170, 73, 227, 130, 177, 227, 131, 188, 227, 130, 185, 73, 227, 130, 179, 227, 131, 171, 227, 131, 138, 73, 227, 130, 187, 227, 131, 179, 227, 131, 129, 73, 227, 130, 187, 227, 131, 179, 227, 131, 136, 73, 227, 131, 134, 227, 130, 153, 227, 130, 183, 73, 227, 131, 136, 227, 130, 153, 227, 131, 171, 73, 227, 131, 142, 227, 131, 131, 227, 131, 136, 73, 227, 131, 143, 227, 130, 164, 227, 131, 132, 73, 227, 131, 146, 227, 130, 153, 227, 131, 171, 73, 227, 131, 146, 227, 130, 154, 227, 130, 179, 73, 227, 131, 149, 227, 131, 169, 227, 131, 179, 73, 227, 131, 152, 227, 130, 154, 227, 130, 189, 73, 227, 131, 152, 227, 131, 171, 227, 131, 132, 73, 227, 131, 155, 227, 131, 188, 227, 131, 171, 73, 227, 131, 155, 227, 131, 188, 227, 131, 179, 73, 227, 131, 158, 227, 130, 164, 227, 131, 171, 73, 227, 131, 158, 227, 131, 131, 227, 131, 143, 73, 227, 131, 158, 227, 131, 171, 227, 130, 175, 73, 227, 131, 164, 227, 131, 188, 227, 131, 171, 73, 227, 131, 166, 227, 130, 162, 227, 131, 179, 73, 227, 131, 175, 227, 131, 131, 227, 131, 136, 76, 226, 128, 178, 226, 128, 178, 226, 128, 178, 226, 128, 178, 76, 226, 136, 171, 226, 136, 171, 226, 136, 171, 226, 136, 171, 76, 227, 130, 162, 227, 131, 171, 227, 131, 149, 227, 130, 161, 76, 227, 130, 168, 227, 131, 188, 227, 130, 171, 227, 131, 188, 76, 227, 130, 171, 227, 130, 153, 227, 131, 173, 227, 131, 179, 76, 227, 130, 171, 227, 130, 153, 227, 131, 179, 227, 131, 158, 76, 227, 130, 171, 227, 131, 169, 227, 131, 131, 227, 131, 136, 76, 227, 130, 171, 227, 131, 173, 227, 131, 170, 227, 131, 188, 76, 227, 130, 173, 227, 130, 153, 227, 131, 139, 227, 131, 188, 76, 227, 130, 173, 227, 131, 165, 227, 131, 170, 227, 131, 188, 76, 227, 130, 175, 227, 130, 153, 227, 131, 169, 227, 131, 160, 76, 227, 130, 175, 227, 131, 173, 227, 131, 188, 227, 131, 141, 76, 227, 130, 181, 227, 130, 164, 227, 130, 175, 227, 131, 171, 76, 227, 130, 191, 227, 130, 153, 227, 131, 188, 227, 130, 185, 76, 227, 131, 143, 227, 130, 154, 227, 131, 188, 227, 131, 132, 76, 227, 131, 146, 227, 130, 154, 227, 130, 175, 227, 131, 171, 76, 227, 131, 149, 227, 130, 163, 227, 131, 188, 227, 131, 136, 76, 227, 131, 152, 227, 130, 153, 227, 131, 188, 227, 130, 191, 76, 227, 131, 152, 227, 130, 154, 227, 131, 139, 227, 131, 146, 76, 227, 131, 152, 227, 130, 154, 227, 131, 179, 227, 130, 185, 76, 227, 131, 155, 227, 130, 153, 227, 131, 171, 227, 131, 136, 76, 227, 131, 158, 227, 130, 164, 227, 130, 175, 227, 131, 173, 76, 227, 131, 159, 227, 130, 175, 227, 131, 173, 227, 131, 179, 76, 227, 131, 161, 227, 131, 188, 227, 131, 136, 227, 131, 171, 76, 227, 131, 170, 227, 131, 131, 227, 131, 136, 227, 131, 171, 76, 227, 131, 171, 227, 131, 146, 227, 130, 154, 227, 131, 188, 76, 230, 160, 170, 229, 188, 143, 228, 188, 154, 231, 164, 190, 78, 40, 225, 132, 139, 225, 133, 169, 225, 132, 146, 225, 133, 174, 41, 79, 216, 172, 217, 132, 32, 216, 172, 217, 132, 216, 167, 217, 132, 217, 135, 79, 227, 130, 162, 227, 131, 143, 227, 130, 154, 227, 131, 188, 227, 131, 136, 79, 227, 130, 162, 227, 131, 179, 227, 131, 152, 227, 130, 154, 227, 130, 162, 79, 227, 130, 173, 227, 131, 173, 227, 131, 175, 227, 131, 131, 227, 131, 136, 79, 227, 130, 181, 227, 131, 179, 227, 131, 129, 227, 131, 188, 227, 131, 160, 79, 227, 131, 143, 227, 130, 153, 227, 131, 188, 227, 131, 172, 227, 131, 171, 79, 227, 131, 152, 227, 130, 175, 227, 130, 191, 227, 131, 188, 227, 131, 171, 79, 227, 131, 155, 227, 130, 154, 227, 130, 164, 227, 131, 179, 227, 131, 136, 79, 227, 131, 158, 227, 131, 179, 227, 130, 183, 227, 131, 167, 227, 131, 179, 79, 227, 131, 161, 227, 130, 171, 227, 130, 153, 227, 131, 136, 227, 131, 179, 79, 227, 131, 171, 227, 131, 188, 227, 131, 149, 227, 130, 153, 227, 131, 171, 81, 40, 225, 132, 139, 225, 133, 169, 225, 132, 140, 225, 133, 165, 225, 134, 171, 41, 82, 227, 130, 173, 227, 130, 153, 227, 131, 171, 227, 130, 191, 227, 130, 153, 227, 131, 188, 82, 227, 130, 173, 227, 131, 173, 227, 130, 175, 227, 130, 153, 227, 131, 169, 227, 131, 160, 82, 227, 130, 173, 227, 131, 173, 227, 131, 161, 227, 131, 188, 227, 131, 136, 227, 131, 171, 82, 227, 130, 175, 227, 130, 153, 227, 131, 169, 227, 131, 160, 227, 131, 136, 227, 131, 179, 82, 227, 130, 175, 227, 131, 171, 227, 130, 187, 227, 130, 153, 227, 130, 164, 227, 131, 173, 82, 227, 131, 143, 227, 130, 154, 227, 131, 188, 227, 130, 187, 227, 131, 179, 227, 131, 136, 82, 227, 131, 146, 227, 130, 154, 227, 130, 162, 227, 130, 185, 227, 131, 136, 227, 131, 171, 82, 227, 131, 149, 227, 130, 153, 227, 131, 131, 227, 130, 183, 227, 130, 167, 227, 131, 171, 82, 227, 131, 159, 227, 131, 170, 227, 131, 143, 227, 130, 153, 227, 131, 188, 227, 131, 171, 82, 227, 131, 172, 227, 131, 179, 227, 131, 136, 227, 130, 177, 227, 130, 153, 227, 131, 179, 97, 216, 181, 217, 132, 217, 137, 32, 216, 167, 217, 132, 217, 132, 217, 135, 32, 216, 185, 217, 132, 217, 138, 217, 135, 32, 217, 136, 216, 179, 217, 132, 217, 133, 6, 224, 167, 135, 224, 166, 190, 1, 6, 224, 167, 135, 224, 167, 151, 1, 6, 224, 173, 135, 224, 172, 190, 1, 6, 224, 173, 135, 224, 173, 150, 1, 6, 224, 173, 135, 224, 173, 151, 1, 6, 224, 174, 146, 224, 175, 151, 1, 6, 224, 175, 134, 224, 174, 190, 1, 6, 224, 175, 134, 224, 175, 151, 1, 6, 224, 175, 135, 224, 174, 190, 1, 6, 224, 178, 191, 224, 179, 149, 1, 6, 224, 179, 134, 224, 179, 149, 1, 6, 224, 179, 134, 224, 179, 150, 1, 6, 224, 181, 134, 224, 180, 190, 1, 6, 224, 181, 134, 224, 181, 151, 1, 6, 224, 181, 135, 224, 180, 190, 1, 6, 224, 183, 153, 224, 183, 159, 1, 6, 225, 128, 165, 225, 128, 174, 1, 6, 225, 172, 133, 225, 172, 181, 1, 6, 225, 172, 135, 225, 172, 181, 1, 6, 225, 172, 137, 225, 172, 181, 1, 6, 225, 172, 139, 225, 172, 181, 1, 6, 225, 172, 141, 225, 172, 181, 1, 6, 225, 172, 145, 225, 172, 181, 1, 6, 225, 172, 186, 225, 172, 181, 1, 6, 225, 172, 188, 225, 172, 181, 1, 6, 225, 172, 190, 225, 172, 181, 1, 6, 225, 172, 191, 225, 172, 181, 1, 6, 225, 173, 130, 225, 172, 181, 1, 8, 240, 145, 132, 177, 240, 145, 132, 167, 1, 8, 240, 145, 132, 178, 240, 145, 132, 167, 1, 8, 240, 145, 141, 135, 240, 145, 140, 190, 1, 8, 240, 145, 141, 135, 240, 145, 141, 151, 1, 8, 240, 145, 146, 185, 240, 145, 146, 176, 1, 8, 240, 145, 146, 185, 240, 145, 146, 186, 1, 8, 240, 145, 146, 185, 240, 145, 146, 189, 1, 8, 240, 145, 150, 184, 240, 145, 150, 175, 1, 8, 240, 145, 150, 185, 240, 145, 150, 175, 1, 8, 240, 145, 164, 181, 240, 145, 164, 176, 1, 9, 224, 179, 134, 224, 179, 130, 224, 179, 149, 2, 9, 224, 183, 153, 224, 183, 143, 224, 183, 138, 22, 68, 68, 90, 204, 140, 205, 68, 68, 122, 204, 140, 205, 68, 100, 122, 204, 140, 205, 70, 217, 132, 216, 167, 217, 147, 205, 70, 217, 132, 216, 167, 217, 148, 205, 70, 217, 132, 216, 167, 217, 149, 185, 70, 225, 132, 128, 225, 133, 161, 1, 70, 225, 132, 130, 225, 133, 161, 1, 70, 225, 132, 131, 225, 133, 161, 1, 70, 225, 132, 133, 225, 133, 161, 1, 70, 225, 132, 134, 225, 133, 161, 1, 70, 225, 132, 135, 225, 133, 161, 1, 70, 225, 132, 137, 225, 133, 161, 1, 70, 225, 132, 139, 225, 133, 161, 1, 70, 225, 132, 139, 225, 133, 174, 1, 70, 225, 132, 140, 225, 133, 161, 1, 70, 225, 132, 142, 225, 133, 161, 1, 70, 225, 132, 143, 225, 133, 161, 1, 70, 225, 132, 144, 225, 133, 161, 1, 70, 225, 132, 145, 225, 133, 161, 1, 70, 225, 132, 146, 225, 133, 161, 1, 73, 227, 131, 161, 227, 130, 171, 227, 130, 153, 17, 76, 225, 132, 140, 225, 133, 174, 225, 132, 139, 225, 133, 180, 1, 76, 227, 130, 173, 227, 130, 153, 227, 130, 171, 227, 130, 153, 17, 76, 227, 130, 179, 227, 131, 188, 227, 131, 155, 227, 130, 154, 17, 76, 227, 131, 164, 227, 131, 188, 227, 131, 136, 227, 130, 153, 17, 79, 225, 132, 142, 225, 133, 161, 225, 134, 183, 225, 132, 128, 225, 133, 169, 1, 79, 227, 130, 164, 227, 131, 139, 227, 131, 179, 227, 130, 175, 227, 130, 153, 17, 79, 227, 130, 183, 227, 131, 170, 227, 131, 179, 227, 130, 175, 227, 130, 153, 17, 79, 227, 131, 152, 227, 130, 154, 227, 131, 188, 227, 130, 183, 227, 130, 153, 17, 79, 227, 131, 155, 227, 130, 154, 227, 131, 179, 227, 131, 136, 227, 130, 153, 17, 82, 227, 130, 168, 227, 130, 185, 227, 130, 175, 227, 131, 188, 227, 131, 136, 227, 130, 153, 17, 82, 227, 131, 149, 227, 130, 161, 227, 131, 169, 227, 131, 131, 227, 131, 136, 227, 130, 153, 17, 134, 224, 179, 134, 224, 179, 130, 1, 134, 224, 183, 153, 224, 183, 143, 1, 3, 60, 204, 184, 5, 3, 61, 204, 184, 5, 3, 62, 204, 184, 5, 3, 65, 204, 128, 205, 3, 65, 204, 129, 205, 3, 65, 204, 131, 205, 3, 65, 204, 132, 205, 3, 65, 204, 137, 205, 3, 65, 204, 140, 205, 3, 65, 204, 143, 205, 3, 65, 204, 145, 205, 3, 65, 204, 165, 185, 3, 65, 204, 168, 169, 3, 66, 204, 135, 205, 3, 66, 204, 163, 185, 3, 66, 204, 177, 185, 3, 67, 204, 129, 205, 3, 67, 204, 130, 205, 3, 67, 204, 135, 205, 3, 67, 204, 140, 205, 3, 68, 204, 135, 205, 3, 68, 204, 140, 205, 3, 68, 204, 163, 185, 3, 68, 204, 167, 169, 3, 68, 204, 173, 185, 3, 68, 204, 177, 185, 3, 69, 204, 128, 205, 3, 69, 204, 129, 205, 3, 69, 204, 131, 205, 3, 69, 204, 134, 205, 3, 69, 204, 135, 205, 3, 69, 204, 136, 205, 3, 69, 204, 137, 205, 3, 69, 204, 140, 205, 3, 69, 204, 143, 205, 3, 69, 204, 145, 205, 3, 69, 204, 168, 169, 3, 69, 204, 173, 185, 3, 69, 204, 176, 185, 3, 70, 204, 135, 205, 3, 71, 204, 129, 205, 3, 71, 204, 130, 205, 3, 71, 204, 132, 205, 3, 71, 204, 134, 205, 3, 71, 204, 135, 205, 3, 71, 204, 140, 205, 3, 71, 204, 167, 169, 3, 72, 204, 130, 205, 3, 72, 204, 135, 205, 3, 72, 204, 136, 205, 3, 72, 204, 140, 205, 3, 72, 204, 163, 185, 3, 72, 204, 167, 169, 3, 72, 204, 174, 185, 3, 73, 204, 128, 205, 3, 73, 204, 129, 205, 3, 73, 204, 130, 205, 3, 73, 204, 131, 205, 3, 73, 204, 132, 205, 3, 73, 204, 134, 205, 3, 73, 204, 135, 205, 3, 73, 204, 137, 205, 3, 73, 204, 140, 205, 3, 73, 204, 143, 205, 3, 73, 204, 145, 205, 3, 73, 204, 163, 185, 3, 73, 204, 168, 169, 3, 73, 204, 176, 185, 3, 74, 204, 130, 205, 3, 75, 204, 129, 205, 3, 75, 204, 140, 205, 3, 75, 204, 163, 185, 3, 75, 204, 167, 169, 3, 75, 204, 177, 185, 3, 76, 204, 129, 205, 3, 76, 204, 140, 205, 3, 76, 204, 167, 169, 3, 76, 204, 173, 185, 3, 76, 204, 177, 185, 3, 77, 204, 129, 205, 3, 77, 204, 135, 205, 3, 77, 204, 163, 185, 3, 78, 204, 128, 205, 3, 78, 204, 129, 205, 3, 78, 204, 131, 205, 3, 78, 204, 135, 205, 3, 78, 204, 140, 205, 3, 78, 204, 163, 185, 3, 78, 204, 167, 169, 3, 78, 204, 173, 185, 3, 78, 204, 177, 185, 3, 79, 204, 128, 205, 3, 79, 204, 129, 205, 3, 79, 204, 134, 205, 3, 79, 204, 137, 205, 3, 79, 204, 139, 205, 3, 79, 204, 140, 205, 3, 79, 204, 143, 205, 3, 79, 204, 145, 205, 3, 80, 204, 129, 205, 3, 80, 204, 135, 205, 3, 82, 204, 129, 205, 3, 82, 204, 135, 205, 3, 82, 204, 140, 205, 3, 82, 204, 143, 205, 3, 82, 204, 145, 205, 3, 82, 204, 167, 169, 3, 82, 204, 177, 185, 3, 83, 204, 130, 205, 3, 83, 204, 135, 205, 3, 83, 204, 166, 185, 3, 83, 204, 167, 169, 3, 84, 204, 135, 205, 3, 84, 204, 140, 205, 3, 84, 204, 163, 185, 3, 84, 204, 166, 185, 3, 84, 204, 167, 169, 3, 84, 204, 173, 185, 3, 84, 204, 177, 185, 3, 85, 204, 128, 205, 3, 85, 204, 129, 205, 3, 85, 204, 130, 205, 3, 85, 204, 134, 205, 3, 85, 204, 137, 205, 3, 85, 204, 138, 205, 3, 85, 204, 139, 205, 3, 85, 204, 140, 205, 3, 85, 204, 143, 205, 3, 85, 204, 145, 205, 3, 85, 204, 163, 185, 3, 85, 204, 164, 185, 3, 85, 204, 168, 169, 3, 85, 204, 173, 185, 3, 85, 204, 176, 185, 3, 86, 204, 131, 205, 3, 86, 204, 163, 185, 3, 87, 204, 128, 205, 3, 87, 204, 129, 205, 3, 87, 204, 130, 205, 3, 87, 204, 135, 205, 3, 87, 204, 136, 205, 3, 87, 204, 163, 185, 3, 88, 204, 135, 205, 3, 88, 204, 136, 205, 3, 89, 204, 128, 205, 3, 89, 204, 129, 205, 3, 89, 204, 130, 205, 3, 89, 204, 131, 205, 3, 89, 204, 132, 205, 3, 89, 204, 135, 205, 3, 89, 204, 136, 205, 3, 89, 204, 137, 205, 3, 89, 204, 163, 185, 3, 90, 204, 129, 205, 3, 90, 204, 130, 205, 3, 90, 204, 135, 205, 3, 90, 204, 140, 205, 3, 90, 204, 163, 185, 3, 90, 204, 177, 185, 3, 97, 204, 128, 205, 3, 97, 204, 129, 205, 3, 97, 204, 131, 205, 3, 97, 204, 132, 205, 3, 97, 204, 137, 205, 3, 97, 204, 140, 205, 3, 97, 204, 143, 205, 3, 97, 204, 145, 205, 3, 97, 204, 165, 185, 3, 97, 204, 168, 169, 3, 98, 204, 135, 205, 3, 98, 204, 163, 185, 3, 98, 204, 177, 185, 3, 99, 204, 129, 205, 3, 99, 204, 130, 205, 3, 99, 204, 135, 205, 3, 99, 204, 140, 205, 3, 100, 204, 135, 205, 3, 100, 204, 140, 205, 3, 100, 204, 163, 185, 3, 100, 204, 167, 169, 3, 100, 204, 173, 185, 3, 100, 204, 177, 185, 3, 101, 204, 128, 205, 3, 101, 204, 129, 205, 3, 101, 204, 131, 205, 3, 101, 204, 134, 205, 3, 101, 204, 135, 205, 3, 101, 204, 136, 205, 3, 101, 204, 137, 205, 3, 101, 204, 140, 205, 3, 101, 204, 143, 205, 3, 101, 204, 145, 205, 3, 101, 204, 168, 169, 3, 101, 204, 173, 185, 3, 101, 204, 176, 185, 3, 102, 204, 135, 205, 3, 103, 204, 129, 205, 3, 103, 204, 130, 205, 3, 103, 204, 132, 205, 3, 103, 204, 134, 205, 3, 103, 204, 135, 205, 3, 103, 204, 140, 205, 3, 103, 204, 167, 169, 3, 104, 204, 130, 205, 3, 104, 204, 135, 205, 3, 104, 204, 136, 205, 3, 104, 204, 140, 205, 3, 104, 204, 163, 185, 3, 104, 204, 167, 169, 3, 104, 204, 174, 185, 3, 104, 204, 177, 185, 3, 105, 204, 128, 205, 3, 105, 204, 129, 205, 3, 105, 204, 130, 205, 3, 105, 204, 131, 205, 3, 105, 204, 132, 205, 3, 105, 204, 134, 205, 3, 105, 204, 137, 205, 3, 105, 204, 140, 205, 3, 105, 204, 143, 205, 3, 105, 204, 145, 205, 3, 105, 204, 163, 185, 3, 105, 204, 168, 169, 3, 105, 204, 176, 185, 3, 106, 204, 130, 205, 3, 106, 204, 140, 205, 3, 107, 204, 129, 205, 3, 107, 204, 140, 205, 3, 107, 204, 163, 185, 3, 107, 204, 167, 169, 3, 107, 204, 177, 185, 3, 108, 204, 129, 205, 3, 108, 204, 140, 205, 3, 108, 204, 167, 169, 3, 108, 204, 173, 185, 3, 108, 204, 177, 185, 3, 109, 204, 129, 205, 3, 109, 204, 135, 205, 3, 109, 204, 163, 185, 3, 110, 204, 128, 205, 3, 110, 204, 129, 205, 3, 110, 204, 131, 205, 3, 110, 204, 135, 205, 3, 110, 204, 140, 205, 3, 110, 204, 163, 185, 3, 110, 204, 167, 169, 3, 110, 204, 173, 185, 3, 110, 204, 177, 185, 3, 111, 204, 128, 205, 3, 111, 204, 129, 205, 3, 111, 204, 134, 205, 3, 111, 204, 137, 205, 3, 111, 204, 139, 205, 3, 111, 204, 140, 205, 3, 111, 204, 143, 205, 3, 111, 204, 145, 205, 3, 112, 204, 129, 205, 3, 112, 204, 135, 205, 3, 114, 204, 129, 205, 3, 114, 204, 135, 205, 3, 114, 204, 140, 205, 3, 114, 204, 143, 205, 3, 114, 204, 145, 205, 3, 114, 204, 167, 169, 3, 114, 204, 177, 185, 3, 115, 204, 130, 205, 3, 115, 204, 135, 205, 3, 115, 204, 166, 185, 3, 115, 204, 167, 169, 3, 116, 204, 135, 205, 3, 116, 204, 136, 205, 3, 116, 204, 140, 205, 3, 116, 204, 163, 185, 3, 116, 204, 166, 185, 3, 116, 204, 167, 169, 3, 116, 204, 173, 185, 3, 116, 204, 177, 185, 3, 117, 204, 128, 205, 3, 117, 204, 129, 205, 3, 117, 204, 130, 205, 3, 117, 204, 134, 205, 3, 117, 204, 137, 205, 3, 117, 204, 138, 205, 3, 117, 204, 139, 205, 3, 117, 204, 140, 205, 3, 117, 204, 143, 205, 3, 117, 204, 145, 205, 3, 117, 204, 163, 185, 3, 117, 204, 164, 185, 3, 117, 204, 168, 169, 3, 117, 204, 173, 185, 3, 117, 204, 176, 185, 3, 118, 204, 131, 205, 3, 118, 204, 163, 185, 3, 119, 204, 128, 205, 3, 119, 204, 129, 205, 3, 119, 204, 130, 205, 3, 119, 204, 135, 205, 3, 119, 204, 136, 205, 3, 119, 204, 138, 205, 3, 119, 204, 163, 185, 3, 120, 204, 135, 205, 3, 120, 204, 136, 205, 3, 121, 204, 128, 205, 3, 121, 204, 129, 205, 3, 121, 204, 130, 205, 3, 121, 204, 131, 205, 3, 121, 204, 132, 205, 3, 121, 204, 135, 205, 3, 121, 204, 136, 205, 3, 121, 204, 137, 205, 3, 121, 204, 138, 205, 3, 121, 204, 163, 185, 3, 122, 204, 129, 205, 3, 122, 204, 130, 205, 3, 122, 204, 135, 205, 3, 122, 204, 140, 205, 3, 122, 204, 163, 185, 3, 122, 204, 177, 185, 4, 194, 168, 204, 128, 206, 4, 194, 168, 204, 129, 206, 4, 194, 168, 205, 130, 206, 4, 195, 134, 204, 129, 205, 4, 195, 134, 204, 132, 205, 4, 195, 152, 204, 129, 205, 4, 195, 166, 204, 129, 205, 4, 195, 166, 204, 132, 205, 4, 195, 184, 204, 129, 205, 4, 197, 191, 204, 135, 205, 4, 198, 183, 204, 140, 205, 4, 202, 146, 204, 140, 205, 4, 206, 145, 204, 128, 205, 4, 206, 145, 204, 129, 205, 4, 206, 145, 204, 132, 205, 4, 206, 145, 204, 134, 205, 4, 206, 145, 205, 133, 221, 4, 206, 149, 204, 128, 205, 4, 206, 149, 204, 129, 205, 4, 206, 151, 204, 128, 205, 4, 206, 151, 204, 129, 205, 4, 206, 151, 205, 133, 221, 4, 206, 153, 204, 128, 205, 4, 206, 153, 204, 129, 205, 4, 206, 153, 204, 132, 205, 4, 206, 153, 204, 134, 205, 4, 206, 153, 204, 136, 205, 4, 206, 159, 204, 128, 205, 4, 206, 159, 204, 129, 205, 4, 206, 161, 204, 148, 205, 4, 206, 165, 204, 128, 205, 4, 206, 165, 204, 129, 205, 4, 206, 165, 204, 132, 205, 4, 206, 165, 204, 134, 205, 4, 206, 165, 204, 136, 205, 4, 206, 169, 204, 128, 205, 4, 206, 169, 204, 129, 205, 4, 206, 169, 205, 133, 221, 4, 206, 177, 204, 132, 205, 4, 206, 177, 204, 134, 205, 4, 206, 177, 205, 133, 221, 4, 206, 181, 204, 128, 205, 4, 206, 181, 204, 129, 205, 4, 206, 183, 205, 133, 221, 4, 206, 185, 204, 128, 205, 4, 206, 185, 204, 129, 205, 4, 206, 185, 204, 132, 205, 4, 206, 185, 204, 134, 205, 4, 206, 185, 205, 130, 205, 4, 206, 191, 204, 128, 205, 4, 206, 191, 204, 129, 205, 4, 207, 129, 204, 147, 205, 4, 207, 129, 204, 148, 205, 4, 207, 133, 204, 128, 205, 4, 207, 133, 204, 129, 205, 4, 207, 133, 204, 132, 205, 4, 207, 133, 204, 134, 205, 4, 207, 133, 205, 130, 205, 4, 207, 137, 205, 133, 221, 4, 207, 146, 204, 129, 205, 4, 207, 146, 204, 136, 205, 4, 208, 134, 204, 136, 205, 4, 208, 144, 204, 134, 205, 4, 208, 144, 204, 136, 205, 4, 208, 147, 204, 129, 205, 4, 208, 149, 204, 128, 205, 4, 208, 149, 204, 134, 205, 4, 208, 149, 204, 136, 205, 4, 208, 150, 204, 134, 205, 4, 208, 150, 204, 136, 205, 4, 208, 151, 204, 136, 205, 4, 208, 152, 204, 128, 205, 4, 208, 152, 204, 132, 205, 4, 208, 152, 204, 134, 205, 4, 208, 152, 204, 136, 205, 4, 208, 154, 204, 129, 205, 4, 208, 158, 204, 136, 205, 4, 208, 163, 204, 132, 205, 4, 208, 163, 204, 134, 205, 4, 208, 163, 204, 136, 205, 4, 208, 163, 204, 139, 205, 4, 208, 167, 204, 136, 205, 4, 208, 171, 204, 136, 205, 4, 208, 173, 204, 136, 205, 4, 208, 176, 204, 134, 205, 4, 208, 176, 204, 136, 205, 4, 208, 179, 204, 129, 205, 4, 208, 181, 204, 128, 205, 4, 208, 181, 204, 134, 205, 4, 208, 181, 204, 136, 205, 4, 208, 182, 204, 134, 205, 4, 208, 182, 204, 136, 205, 4, 208, 183, 204, 136, 205, 4, 208, 184, 204, 128, 205, 4, 208, 184, 204, 132, 205, 4, 208, 184, 204, 134, 205, 4, 208, 184, 204, 136, 205, 4, 208, 186, 204, 129, 205, 4, 208, 190, 204, 136, 205, 4, 209, 131, 204, 132, 205, 4, 209, 131, 204, 134, 205, 4, 209, 131, 204, 136, 205, 4, 209, 131, 204, 139, 205, 4, 209, 135, 204, 136, 205, 4, 209, 139, 204, 136, 205, 4, 209, 141, 204, 136, 205, 4, 209, 150, 204, 136, 205, 4, 209, 180, 204, 143, 205, 4, 209, 181, 204, 143, 205, 4, 211, 152, 204, 136, 205, 4, 211, 153, 204, 136, 205, 4, 211, 168, 204, 136, 205, 4, 211, 169, 204, 136, 205, 4, 216, 167, 217, 147, 205, 4, 216, 167, 217, 148, 205, 4, 216, 167, 217, 149, 185, 4, 217, 136, 217, 148, 205, 4, 217, 138, 217, 148, 205, 4, 219, 129, 217, 148, 205, 4, 219, 146, 217, 148, 205, 4, 219, 149, 217, 148, 205, 5, 65, 204, 130, 204, 128, 206, 5, 65, 204, 130, 204, 129, 206, 5, 65, 204, 130, 204, 131, 206, 5, 65, 204, 130, 204, 137, 206, 5, 65, 204, 134, 204, 128, 206, 5, 65, 204, 134, 204, 129, 206, 5, 65, 204, 134, 204, 131, 206, 5, 65, 204, 134, 204, 137, 206, 5, 65, 204, 135, 204, 132, 206, 5, 65, 204, 136, 204, 132, 206, 5, 65, 204, 138, 204, 129, 206, 5, 65, 204, 163, 204, 130, 206, 5, 65, 204, 163, 204, 134, 206, 5, 67, 204, 167, 204, 129, 206, 5, 69, 204, 130, 204, 128, 206, 5, 69, 204, 130, 204, 129, 206, 5, 69, 204, 130, 204, 131, 206, 5, 69, 204, 130, 204, 137, 206, 5, 69, 204, 132, 204, 128, 206, 5, 69, 204, 132, 204, 129, 206, 5, 69, 204, 163, 204, 130, 206, 5, 69, 204, 167, 204, 134, 206, 5, 73, 204, 136, 204, 129, 206, 5, 76, 204, 163, 204, 132, 206, 5, 79, 204, 130, 204, 128, 206, 5, 79, 204, 130, 204, 129, 206, 5, 79, 204, 130, 204, 131, 206, 5, 79, 204, 130, 204, 137, 206, 5, 79, 204, 131, 204, 129, 206, 5, 79, 204, 131, 204, 132, 206, 5, 79, 204, 131, 204, 136, 206, 5, 79, 204, 132, 204, 128, 206, 5, 79, 204, 132, 204, 129, 206, 5, 79, 204, 135, 204, 132, 206, 5, 79, 204, 136, 204, 132, 206, 5, 79, 204, 155, 204, 128, 206, 5, 79, 204, 155, 204, 129, 206, 5, 79, 204, 155, 204, 131, 206, 5, 79, 204, 155, 204, 137, 206, 5, 79, 204, 155, 204, 163, 186, 5, 79, 204, 163, 204, 130, 206, 5, 79, 204, 168, 204, 132, 206, 5, 82, 204, 163, 204, 132, 206, 5, 83, 204, 129, 204, 135, 206, 5, 83, 204, 140, 204, 135, 206, 5, 83, 204, 163, 204, 135, 206, 5, 85, 204, 131, 204, 129, 206, 5, 85, 204, 132, 204, 136, 206, 5, 85, 204, 136, 204, 128, 206, 5, 85, 204, 136, 204, 129, 206, 5, 85, 204, 136, 204, 132, 206, 5, 85, 204, 136, 204, 140, 206, 5, 85, 204, 155, 204, 128, 206, 5, 85, 204, 155, 204, 129, 206, 5, 85, 204, 155, 204, 131, 206, 5, 85, 204, 155, 204, 137, 206, 5, 85, 204, 155, 204, 163, 186, 5, 97, 204, 130, 204, 128, 206, 5, 97, 204, 130, 204, 129, 206, 5, 97, 204, 130, 204, 131, 206, 5, 97, 204, 130, 204, 137, 206, 5, 97, 204, 134, 204, 128, 206, 5, 97, 204, 134, 204, 129, 206, 5, 97, 204, 134, 204, 131, 206, 5, 97, 204, 134, 204, 137, 206, 5, 97, 204, 135, 204, 132, 206, 5, 97, 204, 136, 204, 132, 206, 5, 97, 204, 138, 204, 129, 206, 5, 97, 204, 163, 204, 130, 206, 5, 97, 204, 163, 204, 134, 206, 5, 99, 204, 167, 204, 129, 206, 5, 101, 204, 130, 204, 128, 206, 5, 101, 204, 130, 204, 129, 206, 5, 101, 204, 130, 204, 131, 206, 5, 101, 204, 130, 204, 137, 206, 5, 101, 204, 132, 204, 128, 206, 5, 101, 204, 132, 204, 129, 206, 5, 101, 204, 163, 204, 130, 206, 5, 101, 204, 167, 204, 134, 206, 5, 105, 204, 136, 204, 129, 206, 5, 108, 204, 163, 204, 132, 206, 5, 111, 204, 130, 204, 128, 206, 5, 111, 204, 130, 204, 129, 206, 5, 111, 204, 130, 204, 131, 206, 5, 111, 204, 130, 204, 137, 206, 5, 111, 204, 131, 204, 129, 206, 5, 111, 204, 131, 204, 132, 206, 5, 111, 204, 131, 204, 136, 206, 5, 111, 204, 132, 204, 128, 206, 5, 111, 204, 132, 204, 129, 206, 5, 111, 204, 135, 204, 132, 206, 5, 111, 204, 136, 204, 132, 206, 5, 111, 204, 155, 204, 128, 206, 5, 111, 204, 155, 204, 129, 206, 5, 111, 204, 155, 204, 131, 206, 5, 111, 204, 155, 204, 137, 206, 5, 111, 204, 155, 204, 163, 186, 5, 111, 204, 163, 204, 130, 206, 5, 111, 204, 168, 204, 132, 206, 5, 114, 204, 163, 204, 132, 206, 5, 115, 204, 129, 204, 135, 206, 5, 115, 204, 140, 204, 135, 206, 5, 115, 204, 163, 204, 135, 206, 5, 117, 204, 131, 204, 129, 206, 5, 117, 204, 132, 204, 136, 206, 5, 117, 204, 136, 204, 128, 206, 5, 117, 204, 136, 204, 129, 206, 5, 117, 204, 136, 204, 132, 206, 5, 117, 204, 136, 204, 140, 206, 5, 117, 204, 155, 204, 128, 206, 5, 117, 204, 155, 204, 129, 206, 5, 117, 204, 155, 204, 131, 206, 5, 117, 204, 155, 204, 137, 206, 5, 117, 204, 155, 204, 163, 186, 5, 225, 190, 191, 204, 128, 206, 5, 225, 190, 191, 204, 129, 206, 5, 225, 190, 191, 205, 130, 206, 5, 225, 191, 190, 204, 128, 206, 5, 225, 191, 190, 204, 129, 206, 5, 225, 191, 190, 205, 130, 206, 5, 226, 134, 144, 204, 184, 5, 5, 226, 134, 146, 204, 184, 5, 5, 226, 134, 148, 204, 184, 5, 5, 226, 135, 144, 204, 184, 5, 5, 226, 135, 146, 204, 184, 5, 5, 226, 135, 148, 204, 184, 5, 5, 226, 136, 131, 204, 184, 5, 5, 226, 136, 136, 204, 184, 5, 5, 226, 136, 139, 204, 184, 5, 5, 226, 136, 163, 204, 184, 5, 5, 226, 136, 165, 204, 184, 5, 5, 226, 136, 188, 204, 184, 5, 5, 226, 137, 131, 204, 184, 5, 5, 226, 137, 133, 204, 184, 5, 5, 226, 137, 136, 204, 184, 5, 5, 226, 137, 141, 204, 184, 5, 5, 226, 137, 161, 204, 184, 5, 5, 226, 137, 164, 204, 184, 5, 5, 226, 137, 165, 204, 184, 5, 5, 226, 137, 178, 204, 184, 5, 5, 226, 137, 179, 204, 184, 5, 5, 226, 137, 182, 204, 184, 5, 5, 226, 137, 183, 204, 184, 5, 5, 226, 137, 186, 204, 184, 5, 5, 226, 137, 187, 204, 184, 5, 5, 226, 137, 188, 204, 184, 5, 5, 226, 137, 189, 204, 184, 5, 5, 226, 138, 130, 204, 184, 5, 5, 226, 138, 131, 204, 184, 5, 5, 226, 138, 134, 204, 184, 5, 5, 226, 138, 135, 204, 184, 5, 5, 226, 138, 145, 204, 184, 5, 5, 226, 138, 146, 204, 184, 5, 5, 226, 138, 162, 204, 184, 5, 5, 226, 138, 168, 204, 184, 5, 5, 226, 138, 169, 204, 184, 5, 5, 226, 138, 171, 204, 184, 5, 5, 226, 138, 178, 204, 184, 5, 5, 226, 138, 179, 204, 184, 5, 5, 226, 138, 180, 204, 184, 5, 5, 226, 138, 181, 204, 184, 5, 6, 206, 145, 204, 147, 205, 133, 222, 6, 206, 145, 204, 148, 205, 133, 222, 6, 206, 149, 204, 147, 204, 128, 206, 6, 206, 149, 204, 147, 204, 129, 206, 6, 206, 149, 204, 148, 204, 128, 206, 6, 206, 149, 204, 148, 204, 129, 206, 6, 206, 151, 204, 147, 205, 133, 222, 6, 206, 151, 204, 148, 205, 133, 222, 6, 206, 153, 204, 147, 204, 128, 206, 6, 206, 153, 204, 147, 204, 129, 206, 6, 206, 153, 204, 147, 205, 130, 206, 6, 206, 153, 204, 148, 204, 128, 206, 6, 206, 153, 204, 148, 204, 129, 206, 6, 206, 153, 204, 148, 205, 130, 206, 6, 206, 159, 204, 147, 204, 128, 206, 6, 206, 159, 204, 147, 204, 129, 206, 6, 206, 159, 204, 148, 204, 128, 206, 6, 206, 159, 204, 148, 204, 129, 206, 6, 206, 165, 204, 148, 204, 128, 206, 6, 206, 165, 204, 148, 204, 129, 206, 6, 206, 165, 204, 148, 205, 130, 206, 6, 206, 169, 204, 147, 205, 133, 222, 6, 206, 169, 204, 148, 205, 133, 222, 6, 206, 177, 204, 128, 205, 133, 222, 6, 206, 177, 204, 129, 205, 133, 222, 6, 206, 177, 204, 147, 205, 133, 222, 6, 206, 177, 204, 148, 205, 133, 222, 6, 206, 177, 205, 130, 205, 133, 222, 6, 206, 181, 204, 147, 204, 128, 206, 6, 206, 181, 204, 147, 204, 129, 206, 6, 206, 181, 204, 148, 204, 128, 206, 6, 206, 181, 204, 148, 204, 129, 206, 6, 206, 183, 204, 128, 205, 133, 222, 6, 206, 183, 204, 129, 205, 133, 222, 6, 206, 183, 204, 147, 205, 133, 222, 6, 206, 183, 204, 148, 205, 133, 222, 6, 206, 183, 205, 130, 205, 133, 222, 6, 206, 185, 204, 136, 204, 128, 206, 6, 206, 185, 204, 136, 204, 129, 206, 6, 206, 185, 204, 136, 205, 130, 206, 6, 206, 185, 204, 147, 204, 128, 206, 6, 206, 185, 204, 147, 204, 129, 206, 6, 206, 185, 204, 147, 205, 130, 206, 6, 206, 185, 204, 148, 204, 128, 206, 6, 206, 185, 204, 148, 204, 129, 206, 6, 206, 185, 204, 148, 205, 130, 206, 6, 206, 191, 204, 147, 204, 128, 206, 6, 206, 191, 204, 147, 204, 129, 206, 6, 206, 191, 204, 148, 204, 128, 206, 6, 206, 191, 204, 148, 204, 129, 206, 6, 207, 133, 204, 136, 204, 128, 206, 6, 207, 133, 204, 136, 204, 129, 206, 6, 207, 133, 204, 136, 205, 130, 206, 6, 207, 133, 204, 147, 204, 128, 206, 6, 207, 133, 204, 147, 204, 129, 206, 6, 207, 133, 204, 147, 205, 130, 206, 6, 207, 133, 204, 148, 204, 128, 206, 6, 207, 133, 204, 148, 204, 129, 206, 6, 207, 133, 204, 148, 205, 130, 206, 6, 207, 137, 204, 128, 205, 133, 222, 6, 207, 137, 204, 129, 205, 133, 222, 6, 207, 137, 204, 147, 205, 133, 222, 6, 207, 137, 204, 148, 205, 133, 222, 6, 207, 137, 205, 130, 205, 133, 222, 6, 224, 164, 168, 224, 164, 188, 13, 6, 224, 164, 176, 224, 164, 188, 13, 6, 224, 164, 179, 224, 164, 188, 13, 6, 224, 177, 134, 224, 177, 150, 137, 6, 224, 183, 153, 224, 183, 138, 21, 6, 227, 129, 134, 227, 130, 153, 17, 6, 227, 129, 139, 227, 130, 153, 17, 6, 227, 129, 141, 227, 130, 153, 17, 6, 227, 129, 143, 227, 130, 153, 17, 6, 227, 129, 145, 227, 130, 153, 17, 6, 227, 129, 147, 227, 130, 153, 17, 6, 227, 129, 149, 227, 130, 153, 17, 6, 227, 129, 151, 227, 130, 153, 17, 6, 227, 129, 153, 227, 130, 153, 17, 6, 227, 129, 155, 227, 130, 153, 17, 6, 227, 129, 157, 227, 130, 153, 17, 6, 227, 129, 159, 227, 130, 153, 17, 6, 227, 129, 161, 227, 130, 153, 17, 6, 227, 129, 164, 227, 130, 153, 17, 6, 227, 129, 166, 227, 130, 153, 17, 6, 227, 129, 168, 227, 130, 153, 17, 6, 227, 129, 175, 227, 130, 153, 17, 6, 227, 129, 175, 227, 130, 154, 17, 6, 227, 129, 178, 227, 130, 153, 17, 6, 227, 129, 178, 227, 130, 154, 17, 6, 227, 129, 181, 227, 130, 153, 17, 6, 227, 129, 181, 227, 130, 154, 17, 6, 227, 129, 184, 227, 130, 153, 17, 6, 227, 129, 184, 227, 130, 154, 17, 6, 227, 129, 187, 227, 130, 153, 17, 6, 227, 129, 187, 227, 130, 154, 17, 6, 227, 130, 157, 227, 130, 153, 17, 6, 227, 130, 166, 227, 130, 153, 17, 6, 227, 130, 171, 227, 130, 153, 17, 6, 227, 130, 173, 227, 130, 153, 17, 6, 227, 130, 175, 227, 130, 153, 17, 6, 227, 130, 177, 227, 130, 153, 17, 6, 227, 130, 179, 227, 130, 153, 17, 6, 227, 130, 181, 227, 130, 153, 17, 6, 227, 130, 183, 227, 130, 153, 17, 6, 227, 130, 185, 227, 130, 153, 17, 6, 227, 130, 187, 227, 130, 153, 17, 6, 227, 130, 189, 227, 130, 153, 17, 6, 227, 130, 191, 227, 130, 153, 17, 6, 227, 131, 129, 227, 130, 153, 17, 6, 227, 131, 132, 227, 130, 153, 17, 6, 227, 131, 134, 227, 130, 153, 17, 6, 227, 131, 136, 227, 130, 153, 17, 6, 227, 131, 143, 227, 130, 153, 17, 6, 227, 131, 143, 227, 130, 154, 17, 6, 227, 131, 146, 227, 130, 153, 17, 6, 227, 131, 146, 227, 130, 154, 17, 6, 227, 131, 149, 227, 130, 153, 17, 6, 227, 131, 149, 227, 130, 154, 17, 6, 227, 131, 152, 227, 130, 153, 17, 6, 227, 131, 152, 227, 130, 154, 17, 6, 227, 131, 155, 227, 130, 153, 17, 6, 227, 131, 155, 227, 130, 154, 17, 6, 227, 131, 175, 227, 130, 153, 17, 6, 227, 131, 176, 227, 130, 153, 17, 6, 227, 131, 177, 227, 130, 153, 17, 6, 227, 131, 178, 227, 130, 153, 17, 6, 227, 131, 189, 227, 130, 153, 17, 8, 206, 145, 204, 147, 204, 128, 205, 133, 223, 8, 206, 145, 204, 147, 204, 129, 205, 133, 223, 8, 206, 145, 204, 147, 205, 130, 205, 133, 223, 8, 206, 145, 204, 148, 204, 128, 205, 133, 223, 8, 206, 145, 204, 148, 204, 129, 205, 133, 223, 8, 206, 145, 204, 148, 205, 130, 205, 133, 223, 8, 206, 151, 204, 147, 204, 128, 205, 133, 223, 8, 206, 151, 204, 147, 204, 129, 205, 133, 223, 8, 206, 151, 204, 147, 205, 130, 205, 133, 223, 8, 206, 151, 204, 148, 204, 128, 205, 133, 223, 8, 206, 151, 204, 148, 204, 129, 205, 133, 223, 8, 206, 151, 204, 148, 205, 130, 205, 133, 223, 8, 206, 169, 204, 147, 204, 128, 205, 133, 223, 8, 206, 169, 204, 147, 204, 129, 205, 133, 223, 8, 206, 169, 204, 147, 205, 130, 205, 133, 223, 8, 206, 169, 204, 148, 204, 128, 205, 133, 223, 8, 206, 169, 204, 148, 204, 129, 205, 133, 223, 8, 206, 169, 204, 148, 205, 130, 205, 133, 223, 8, 206, 177, 204, 147, 204, 128, 205, 133, 223, 8, 206, 177, 204, 147, 204, 129, 205, 133, 223, 8, 206, 177, 204, 147, 205, 130, 205, 133, 223, 8, 206, 177, 204, 148, 204, 128, 205, 133, 223, 8, 206, 177, 204, 148, 204, 129, 205, 133, 223, 8, 206, 177, 204, 148, 205, 130, 205, 133, 223, 8, 206, 183, 204, 147, 204, 128, 205, 133, 223, 8, 206, 183, 204, 147, 204, 129, 205, 133, 223, 8, 206, 183, 204, 147, 205, 130, 205, 133, 223, 8, 206, 183, 204, 148, 204, 128, 205, 133, 223, 8, 206, 183, 204, 148, 204, 129, 205, 133, 223, 8, 206, 183, 204, 148, 205, 130, 205, 133, 223, 8, 207, 137, 204, 147, 204, 128, 205, 133, 223, 8, 207, 137, 204, 147, 204, 129, 205, 133, 223, 8, 207, 137, 204, 147, 205, 130, 205, 133, 223, 8, 207, 137, 204, 148, 204, 128, 205, 133, 223, 8, 207, 137, 204, 148, 204, 129, 205, 133, 223, 8, 207, 137, 204, 148, 205, 130, 205, 133, 223, 8, 240, 145, 130, 153, 240, 145, 130, 186, 13, 8, 240, 145, 130, 155, 240, 145, 130, 186, 13, 8, 240, 145, 130, 165, 240, 145, 130, 186, 13, 66, 194, 180, 1, 67, 32, 204, 129, 205, 67, 32, 204, 131, 205, 67, 32, 204, 132, 205, 67, 32, 204, 133, 205, 67, 32, 204, 134, 205, 67, 32, 204, 135, 205, 67, 32, 204, 136, 205, 67, 32, 204, 138, 205, 67, 32, 204, 139, 205, 67, 32, 204, 147, 205, 67, 32, 204, 148, 205, 67, 32, 204, 167, 169, 67, 32, 204, 168, 169, 67, 32, 204, 179, 185, 67, 32, 205, 130, 205, 67, 32, 205, 133, 221, 67, 32, 217, 139, 93, 67, 32, 217, 140, 97, 67, 32, 217, 141, 101, 67, 32, 217, 142, 105, 67, 32, 217, 143, 109, 67, 32, 217, 144, 113, 67, 32, 217, 145, 117, 67, 32, 217, 146, 121, 67, 65, 204, 138, 205, 67, 115, 204, 135, 205, 68, 32, 227, 130, 153, 17, 68, 32, 227, 130, 154, 17, 68, 194, 168, 204, 129, 206, 68, 206, 145, 204, 129, 205, 68, 206, 149, 204, 129, 205, 68, 206, 151, 204, 129, 205, 68, 206, 153, 204, 129, 205, 68, 206, 159, 204, 129, 205, 68, 206, 165, 204, 129, 205, 68, 206, 165, 204, 136, 205, 68, 206, 169, 204, 129, 205, 68, 206, 177, 204, 129, 205, 68, 206, 181, 204, 129, 205, 68, 206, 183, 204, 129, 205, 68, 206, 185, 204, 129, 205, 68, 206, 191, 204, 129, 205, 68, 207, 133, 204, 129, 205, 68, 207, 137, 204, 129, 205, 68, 215, 144, 214, 183, 53, 68, 215, 144, 214, 184, 57, 68, 215, 144, 214, 188, 69, 68, 215, 145, 214, 188, 69, 68, 215, 145, 214, 191, 77, 68, 215, 146, 214, 188, 69, 68, 215, 147, 214, 188, 69, 68, 215, 148, 214, 188, 69, 68, 215, 149, 214, 185, 61, 68, 215, 149, 214, 188, 69, 68, 215, 150, 214, 188, 69, 68, 215, 152, 214, 188, 69, 68, 215, 153, 214, 180, 41, 68, 215, 153, 214, 188, 69, 68, 215, 154, 214, 188, 69, 68, 215, 155, 214, 188, 69, 68, 215, 155, 214, 191, 77, 68, 215, 156, 214, 188, 69, 68, 215, 158, 214, 188, 69, 68, 215, 160, 214, 188, 69, 68, 215, 161, 214, 188, 69, 68, 215, 163, 214, 188, 69, 68, 215, 164, 214, 188, 69, 68, 215, 164, 214, 191, 77, 68, 215, 166, 214, 188, 69, 68, 215, 167, 214, 188, 69, 68, 215, 168, 214, 188, 69, 68, 215, 169, 214, 188, 69, 68, 215, 169, 215, 129, 81, 68, 215, 169, 215, 130, 85, 68, 215, 170, 214, 188, 69, 68, 215, 178, 214, 183, 53, 68, 216, 167, 217, 139, 93, 68, 216, 167, 217, 147, 205, 68, 216, 167, 217, 148, 205, 68, 216, 167, 217, 149, 185, 68, 216, 176, 217, 176, 125, 68, 216, 177, 217, 176, 125, 68, 217, 128, 217, 139, 93, 68, 217, 128, 217, 142, 105, 68, 217, 128, 217, 143, 109, 68, 217, 128, 217, 144, 113, 68, 217, 128, 217, 145, 117, 68, 217, 128, 217, 146, 121, 68, 217, 135, 217, 176, 125, 68, 217, 136, 217, 148, 205, 68, 217, 137, 217, 176, 125, 68, 217, 138, 217, 148, 205, 68, 219, 146, 217, 148, 205, 68, 219, 149, 217, 148, 205, 69, 32, 204, 136, 204, 128, 206, 69, 32, 204, 136, 204, 129, 206, 69, 32, 204, 136, 205, 130, 206, 69, 32, 204, 147, 204, 128, 206, 69, 32, 204, 147, 204, 129, 206, 69, 32, 204, 147, 205, 130, 206, 69, 32, 204, 148, 204, 128, 206, 69, 32, 204, 148, 204, 129, 206, 69, 32, 204, 148, 205, 130, 206, 69, 32, 217, 140, 217, 145, 118, 69, 32, 217, 141, 217, 145, 118, 69, 32, 217, 142, 217, 145, 118, 69, 32, 217, 143, 217, 145, 118, 69, 32, 217, 144, 217, 145, 118, 69, 32, 217, 145, 217, 176, 126, 69, 226, 171, 157, 204, 184, 5, 70, 206, 185, 204, 136, 204, 129, 206, 70, 207, 133, 204, 136, 204, 129, 206, 70, 215, 169, 214, 188, 215, 129, 82, 70, 215, 169, 214, 188, 215, 130, 86, 70, 217, 128, 217, 142, 217, 145, 118, 70, 217, 128, 217, 143, 217, 145, 118, 70, 217, 128, 217, 144, 217, 145, 118, 70, 224, 164, 149, 224, 164, 188, 13, 70, 224, 164, 150, 224, 164, 188, 13, 70, 224, 164, 151, 224, 164, 188, 13, 70, 224, 164, 156, 224, 164, 188, 13, 70, 224, 164, 161, 224, 164, 188, 13, 70, 224, 164, 162, 224, 164, 188, 13, 70, 224, 164, 171, 224, 164, 188, 13, 70, 224, 164, 175, 224, 164, 188, 13, 70, 224, 166, 161, 224, 166, 188, 13, 70, 224, 166, 162, 224, 166, 188, 13, 70, 224, 166, 175, 224, 166, 188, 13, 70, 224, 168, 150, 224, 168, 188, 13, 70, 224, 168, 151, 224, 168, 188, 13, 70, 224, 168, 156, 224, 168, 188, 13, 70, 224, 168, 171, 224, 168, 188, 13, 70, 224, 168, 178, 224, 168, 188, 13, 70, 224, 168, 184, 224, 168, 188, 13, 70, 224, 172, 161, 224, 172, 188, 13, 70, 224, 172, 162, 224, 172, 188, 13, 70, 224, 190, 178, 224, 190, 128, 161, 70, 224, 190, 179, 224, 190, 128, 161, 70, 227, 131, 134, 227, 130, 153, 17, 72, 240, 157, 133, 151, 240, 157, 133, 165, 177, 72, 240, 157, 133, 152, 240, 157, 133, 165, 177, 72, 240, 157, 134, 185, 240, 157, 133, 165, 177, 72, 240, 157, 134, 186, 240, 157, 133, 165, 177, 73, 224, 190, 178, 224, 189, 177, 224, 190, 128, 162, 73, 224, 190, 179, 224, 189, 177, 224, 190, 128, 162, 76, 240, 157, 133, 152, 240, 157, 133, 165, 240, 157, 133, 174, 178, 76, 240, 157, 133, 152, 240, 157, 133, 165, 240, 157, 133, 175, 178, 76, 240, 157, 133, 152, 240, 157, 133, 165, 240, 157, 133, 176, 178, 76, 240, 157, 133, 152, 240, 157, 133, 165, 240, 157, 133, 177, 178, 76, 240, 157, 133, 152, 240, 157, 133, 165, 240, 157, 133, 178, 178, 76, 240, 157, 134, 185, 240, 157, 133, 165, 240, 157, 133, 174, 178, 76, 240, 157, 134, 185, 240, 157, 133, 165, 240, 157, 133, 175, 178, 76, 240, 157, 134, 186, 240, 157, 133, 165, 240, 157, 133, 174, 178, 76, 240, 157, 134, 186, 240, 157, 133, 165, 240, 157, 133, 175, 178, 131, 65, 204, 130, 205, 131, 65, 204, 134, 205, 131, 65, 204, 135, 205, 131, 65, 204, 136, 205, 131, 65, 204, 138, 205, 131, 65, 204, 163, 185, 131, 67, 204, 167, 169, 131, 69, 204, 130, 205, 131, 69, 204, 132, 205, 131, 69, 204, 163, 185, 131, 69, 204, 167, 169, 131, 73, 204, 136, 205, 131, 76, 204, 163, 185, 131, 79, 204, 130, 205, 131, 79, 204, 131, 205, 131, 79, 204, 132, 205, 131, 79, 204, 135, 205, 131, 79, 204, 136, 205, 131, 79, 204, 155, 177, 131, 79, 204, 163, 185, 131, 79, 204, 168, 169, 131, 82, 204, 163, 185, 131, 83, 204, 129, 205, 131, 83, 204, 140, 205, 131, 83, 204, 163, 185, 131, 85, 204, 131, 205, 131, 85, 204, 132, 205, 131, 85, 204, 136, 205, 131, 85, 204, 155, 177, 131, 97, 204, 130, 205, 131, 97, 204, 134, 205, 131, 97, 204, 135, 205, 131, 97, 204, 136, 205, 131, 97, 204, 138, 205, 131, 97, 204, 163, 185, 131, 99, 204, 167, 169, 131, 101, 204, 130, 205, 131, 101, 204, 132, 205, 131, 101, 204, 163, 185, 131, 101, 204, 167, 169, 131, 105, 204, 136, 205, 131, 108, 204, 163, 185, 131, 111, 204, 130, 205, 131, 111, 204, 131, 205, 131, 111, 204, 132, 205, 131, 111, 204, 135, 205, 131, 111, 204, 136, 205, 131, 111, 204, 155, 177, 131, 111, 204, 163, 185, 131, 111, 204, 168, 169, 131, 114, 204, 163, 185, 131, 115, 204, 129, 205, 131, 115, 204, 140, 205, 131, 115, 204, 163, 185, 131, 117, 204, 131, 205, 131, 117, 204, 132, 205, 131, 117, 204, 136, 205, 131, 117, 204, 155, 177, 132, 206, 145, 204, 147, 205, 132, 206, 145, 204, 148, 205, 132, 206, 149, 204, 147, 205, 132, 206, 149, 204, 148, 205, 132, 206, 151, 204, 147, 205, 132, 206, 151, 204, 148, 205, 132, 206, 153, 204, 147, 205, 132, 206, 153, 204, 148, 205, 132, 206, 159, 204, 147, 205, 132, 206, 159, 204, 148, 205, 132, 206, 165, 204, 148, 205, 132, 206, 169, 204, 147, 205, 132, 206, 169, 204, 148, 205, 132, 206, 177, 204, 128, 205, 132, 206, 177, 204, 129, 205, 132, 206, 177, 204, 147, 205, 132, 206, 177, 204, 148, 205, 132, 206, 177, 205, 130, 205, 132, 206, 181, 204, 147, 205, 132, 206, 181, 204, 148, 205, 132, 206, 183, 204, 128, 205, 132, 206, 183, 204, 129, 205, 132, 206, 183, 204, 147, 205, 132, 206, 183, 204, 148, 205, 132, 206, 183, 205, 130, 205, 132, 206, 185, 204, 136, 205, 132, 206, 185, 204, 147, 205, 132, 206, 185, 204, 148, 205, 132, 206, 191, 204, 147, 205, 132, 206, 191, 204, 148, 205, 132, 207, 133, 204, 136, 205, 132, 207, 133, 204, 147, 205, 132, 207, 133, 204, 148, 205, 132, 207, 137, 204, 128, 205, 132, 207, 137, 204, 129, 205, 132, 207, 137, 204, 147, 205, 132, 207, 137, 204, 148, 205, 132, 207, 137, 205, 130, 205, 134, 206, 145, 204, 147, 204, 128, 206, 134, 206, 145, 204, 147, 204, 129, 206, 134, 206, 145, 204, 147, 205, 130, 206, 134, 206, 145, 204, 148, 204, 128, 206, 134, 206, 145, 204, 148, 204, 129, 206, 134, 206, 145, 204, 148, 205, 130, 206, 134, 206, 151, 204, 147, 204, 128, 206, 134, 206, 151, 204, 147, 204, 129, 206, 134, 206, 151, 204, 147, 205, 130, 206, 134, 206, 151, 204, 148, 204, 128, 206, 134, 206, 151, 204, 148, 204, 129, 206, 134, 206, 151, 204, 148, 205, 130, 206, 134, 206, 169, 204, 147, 204, 128, 206, 134, 206, 169, 204, 147, 204, 129, 206, 134, 206, 169, 204, 147, 205, 130, 206, 134, 206, 169, 204, 148, 204, 128, 206, 134, 206, 169, 204, 148, 204, 129, 206, 134, 206, 169, 204, 148, 205, 130, 206, 134, 206, 177, 204, 147, 204, 128, 206, 134, 206, 177, 204, 147, 204, 129, 206, 134, 206, 177, 204, 147, 205, 130, 206, 134, 206, 177, 204, 148, 204, 128, 206, 134, 206, 177, 204, 148, 204, 129, 206, 134, 206, 177, 204, 148, 205, 130, 206, 134, 206, 183, 204, 147, 204, 128, 206, 134, 206, 183, 204, 147, 204, 129, 206, 134, 206, 183, 204, 147, 205, 130, 206, 134, 206, 183, 204, 148, 204, 128, 206, 134, 206, 183, 204, 148, 204, 129, 206, 134, 206, 183, 204, 148, 205, 130, 206, 134, 207, 137, 204, 147, 204, 128, 206, 134, 207, 137, 204, 147, 204, 129, 206, 134, 207, 137, 204, 147, 205, 130, 206, 134, 207, 137, 204, 148, 204, 128, 206, 134, 207, 137, 204, 148, 204, 129, 206, 134, 207, 137, 204, 148, 205, 130, 206, 66, 204, 128, 205, 51, 66, 204, 129, 205, 51, 66, 204, 147, 205, 51, 67, 225, 133, 161, 1, 0, 67, 225, 133, 162, 1, 0, 67, 225, 133, 163, 1, 0, 67, 225, 133, 164, 1, 0, 67, 225, 133, 165, 1, 0, 67, 225, 133, 166, 1, 0, 67, 225, 133, 167, 1, 0, 67, 225, 133, 168, 1, 0, 67, 225, 133, 169, 1, 0, 67, 225, 133, 170, 1, 0, 67, 225, 133, 171, 1, 0, 67, 225, 133, 172, 1, 0, 67, 225, 133, 173, 1, 0, 67, 225, 133, 174, 1, 0, 67, 225, 133, 175, 1, 0, 67, 225, 133, 176, 1, 0, 67, 225, 133, 177, 1, 0, 67, 225, 133, 178, 1, 0, 67, 225, 133, 179, 1, 0, 67, 225, 133, 180, 1, 0, 67, 225, 133, 181, 1, 0, 67, 225, 134, 170, 1, 0, 67, 225, 134, 172, 1, 0, 67, 225, 134, 173, 1, 0, 67, 225, 134, 176, 1, 0, 67, 225, 134, 177, 1, 0, 67, 225, 134, 178, 1, 0, 67, 225, 134, 179, 1, 0, 67, 225, 134, 180, 1, 0, 67, 225, 134, 181, 1, 0, 68, 204, 136, 204, 129, 206, 51, 67, 227, 130, 153, 17, 4, 67, 227, 130, 154, 17, 4, 70, 224, 189, 177, 224, 189, 178, 162, 39, 70, 224, 189, 177, 224, 189, 180, 166, 39, 70, 224, 189, 177, 224, 190, 128, 162, 39, 0, 1]); + nfcValues = $toNativeArray($kindUint16, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40960, 40960, 40960, 0, 0, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 0, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 0, 0, 0, 0, 0, 0, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 0, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12464, 12469, 18377, 12474, 18392, 18397, 40960, 18407, 12579, 12584, 18412, 12604, 12719, 12724, 12729, 18432, 0, 12869, 12904, 12909, 18442, 18447, 18462, 0, 40960, 13044, 13049, 13054, 18512, 13174, 0, 0, 13244, 13249, 18522, 13254, 18537, 18542, 40960, 18552, 13359, 13364, 18557, 13384, 13504, 13509, 13514, 18577, 0, 13654, 13689, 13694, 18587, 18592, 18607, 0, 40960, 13834, 13839, 13844, 18657, 13969, 0, 13994, 12479, 13259, 18382, 18527, 12509, 13289, 12529, 13309, 12534, 13314, 12539, 13319, 12544, 13324, 12554, 13334, 0, 0, 18417, 18562, 12594, 13374, 12599, 13379, 12629, 13409, 12614, 13394, 12654, 13434, 12664, 13444, 12669, 13449, 12679, 13459, 12684, 13464, 0, 0, 12734, 13519, 12739, 13524, 12744, 13529, 12779, 13559, 12749, 0, 0, 0, 12789, 13569, 12809, 13594, 0, 12819, 13604, 12829, 13614, 12824, 13609, 0, 0, 0, 0, 12864, 13649, 12889, 13674, 12879, 13664, 0, 0, 0, 18452, 18597, 12914, 13699, 12924, 13709, 0, 0, 12954, 13739, 12979, 13764, 12964, 13749, 18487, 18632, 12989, 13774, 13004, 13789, 18492, 18637, 13029, 13819, 13014, 13804, 0, 0, 18502, 18647, 18507, 18652, 13059, 13849, 13069, 13859, 13074, 13864, 13104, 13894, 13139, 13929, 13179, 13974, 13199, 13214, 14014, 13224, 14024, 13229, 14029, 40960, 0, 0, 0, 0, 33024, 33024, 33024, 0, 0, 0, 0, 0, 0, 12489, 13269, 12759, 13539, 12929, 13714, 13079, 13869, 15120, 15519, 15113, 15512, 15127, 15526, 15106, 15505, 0, 14833, 15232, 14826, 15225, 14068, 14086, 0, 0, 12674, 13454, 12799, 13584, 18477, 18622, 15057, 15456, 14104, 14110, 13574, 0, 0, 0, 12649, 13429, 0, 0, 12859, 13644, 14840, 15239, 14062, 14080, 14074, 14092, 12494, 13274, 12499, 13279, 12619, 13399, 12624, 13404, 12764, 13544, 12769, 13549, 12934, 13719, 12939, 13724, 12969, 13754, 12974, 13759, 13084, 13874, 13089, 13879, 12999, 13784, 13024, 13814, 0, 0, 12699, 13479, 0, 0, 0, 0, 0, 0, 18387, 18532, 18427, 18572, 15008, 15407, 14973, 15372, 18457, 18602, 15001, 15400, 13189, 13984, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39219, 39219, 39219, 39219, 39219, 33075, 39219, 39219, 39219, 39219, 39219, 39219, 39219, 33075, 33075, 39219, 33075, 39219, 33075, 39219, 39219, 33076, 33070, 33070, 33070, 33070, 33076, 39212, 33070, 33070, 33070, 33070, 33070, 33066, 33066, 39214, 39214, 39214, 39214, 39210, 39210, 33070, 33070, 33070, 33070, 39214, 39214, 33070, 39214, 39214, 33070, 33070, 33025, 33025, 33025, 33025, 39169, 33070, 33070, 33070, 33070, 33075, 33075, 33075, 19183, 19188, 39219, 19193, 19378, 39223, 33075, 33070, 33070, 33070, 33075, 33075, 33075, 33070, 33070, 0, 33075, 33075, 33075, 33070, 33070, 33070, 33070, 33075, 33076, 33070, 33070, 33075, 33077, 33078, 33078, 33077, 33078, 33078, 33077, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 0, 0, 0, 0, 494, 0, 0, 0, 0, 0, 33024, 0, 0, 0, 55, 0, 0, 0, 0, 0, 33024, 14050, 14122, 206, 14152, 14164, 14182, 0, 14212, 0, 14230, 14260, 16201, 40960, 0, 0, 0, 40960, 0, 40960, 0, 40960, 0, 0, 0, 0, 0, 40960, 0, 40960, 0, 0, 0, 40960, 0, 0, 0, 40960, 14200, 14248, 18751, 14296, 18793, 14314, 16305, 40960, 0, 0, 0, 40960, 0, 40960, 0, 40960, 0, 0, 0, 0, 0, 40960, 14434, 14446, 0, 14428, 0, 0, 40960, 14410, 0, 0, 0, 0, 14494, 14470, 14512, 0, 40960, 0, 0, 40960, 0, 40960, 40960, 40960, 40960, 14482, 40960, 0, 0, 0, 40960, 0, 0, 0, 0, 40960, 0, 0, 0, 40960, 0, 0, 0, 40960, 0, 40960, 0, 0, 40960, 0, 0, 40960, 0, 40960, 40960, 40960, 40960, 14614, 40960, 0, 0, 0, 40960, 0, 0, 14452, 14584, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14416, 14548, 14422, 14554, 0, 0, 14440, 14572, 40960, 40960, 14698, 14704, 14458, 14590, 14464, 14596, 0, 0, 14476, 14608, 14488, 14620, 14500, 14632, 40960, 40960, 14710, 14716, 14542, 14674, 14506, 14638, 14518, 14650, 14524, 14656, 14530, 14662, 0, 0, 14536, 14668, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33070, 33075, 33075, 33075, 33075, 33070, 33075, 33075, 33075, 33071, 33070, 33075, 33075, 33075, 33075, 33075, 33075, 33070, 33070, 33070, 33070, 33070, 33070, 33075, 33075, 33070, 33075, 33075, 33071, 33074, 33075, 33030, 33031, 33032, 33033, 33034, 33035, 33036, 33037, 33038, 33039, 33039, 33040, 33041, 33042, 0, 33043, 0, 0, 0, 0, 0, 0, 0, 0, 40960, 0, 40960, 33047, 33048, 33049, 33050, 33051, 33052, 33053, 33054, 39219, 39219, 39214, 33070, 33075, 33075, 33075, 33075, 33075, 33070, 33075, 33075, 33070, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33055, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33075, 33075, 33075, 33075, 33075, 33070, 33070, 33070, 33070, 33070, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 0, 33070, 33075, 33075, 33070, 33075, 33075, 33070, 33075, 33075, 33075, 33070, 33070, 33070, 33047, 33048, 33049, 33075, 33075, 33075, 33070, 33075, 33075, 33070, 33070, 33075, 33075, 33075, 33075, 33075, 0, 0, 0, 0, 0, 40960, 11869, 40960, 11877, 40960, 11885, 40960, 11893, 40960, 11901, 0, 0, 40960, 11909, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33027, 39168, 0, 0, 0, 0, 40960, 11917, 40960, 11925, 40960, 40960, 33075, 33075, 33070, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33070, 33075, 33075, 33078, 33067, 33070, 33066, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33076, 33074, 33074, 33070, 33069, 33075, 33077, 33070, 33075, 33070, 12504, 13284, 12514, 13294, 12519, 13299, 12524, 13304, 14861, 15260, 12549, 13329, 12559, 13339, 12574, 13354, 12564, 13344, 12569, 13349, 14896, 15295, 14903, 15302, 12634, 13414, 12639, 13419, 14917, 15316, 12644, 13424, 12659, 13439, 12689, 13469, 12704, 13484, 12694, 13474, 12709, 13489, 12714, 13494, 12784, 13564, 14924, 15323, 12794, 13579, 12804, 13589, 12814, 13599, 18437, 18582, 14931, 15330, 12839, 13624, 12834, 13619, 12844, 13629, 12849, 13634, 12854, 13639, 12874, 13659, 12884, 13669, 12899, 13684, 12894, 13679, 14966, 15365, 14980, 15379, 14987, 15386, 14994, 15393, 12944, 13729, 12949, 13734, 12959, 13744, 18482, 18627, 15064, 15463, 12984, 13769, 12994, 13779, 18497, 18642, 15071, 15470, 15078, 15477, 15085, 15484, 13009, 13794, 13019, 13809, 13039, 13829, 13034, 13824, 13099, 13889, 13114, 13904, 13109, 13899, 15092, 15491, 15099, 15498, 13119, 13909, 13124, 13914, 13129, 13919, 13134, 13924, 13149, 13939, 13144, 13934, 13154, 13949, 13159, 13954, 13164, 13959, 13194, 13989, 13219, 14019, 13234, 14034, 13239, 14039, 13499, 13799, 13944, 14004, 0, 14098, 0, 0, 0, 0, 18402, 18547, 12484, 13264, 14777, 15176, 14770, 15169, 14791, 15190, 14784, 15183, 14847, 15246, 14805, 15204, 14798, 15197, 14819, 15218, 14812, 15211, 14854, 15253, 18422, 18567, 12609, 13389, 12589, 13369, 14875, 15274, 14868, 15267, 14889, 15288, 14882, 15281, 14910, 15309, 12754, 13534, 12774, 13554, 18472, 18617, 12919, 13704, 14945, 15344, 14938, 15337, 14959, 15358, 14952, 15351, 15050, 15449, 15022, 15421, 15015, 15414, 15036, 15435, 15029, 15428, 15043, 15442, 13094, 13884, 13064, 13854, 15141, 15540, 15134, 15533, 15155, 15554, 15148, 15547, 15162, 15561, 13169, 13964, 13209, 14009, 13204, 13999, 13184, 13979, 0, 0, 0, 0, 0, 0, 18757, 18763, 19039, 19063, 19047, 19071, 19055, 19079, 18667, 18673, 18895, 18919, 18903, 18927, 18911, 18935, 18775, 18781, 16121, 16137, 16129, 16145, 0, 0, 18679, 18685, 15913, 15929, 15921, 15937, 0, 0, 18799, 18805, 19087, 19111, 19095, 19119, 19103, 19127, 18691, 18697, 18943, 18967, 18951, 18975, 18959, 18983, 18823, 18829, 16217, 16241, 16225, 16249, 16233, 16257, 18703, 18709, 15961, 15985, 15969, 15993, 15977, 16001, 18835, 18841, 16265, 16281, 16273, 16289, 0, 0, 18715, 18721, 16009, 16025, 16017, 16033, 0, 0, 18853, 18859, 16321, 16345, 16329, 16353, 16337, 16361, 0, 18727, 0, 16041, 0, 16049, 0, 16057, 18877, 18883, 19135, 19159, 19143, 19167, 19151, 19175, 18733, 18739, 18991, 19015, 18999, 19023, 19007, 19031, 18745, 17503, 14290, 17509, 18787, 17515, 14308, 17521, 14338, 17527, 14362, 17533, 18865, 17539, 0, 0, 16097, 16105, 17093, 17123, 17103, 17133, 17113, 17143, 15897, 15905, 16913, 16943, 16923, 16953, 16933, 16963, 16169, 16177, 17153, 17183, 17163, 17193, 17173, 17203, 15945, 15953, 16973, 17003, 16983, 17013, 16993, 17023, 16385, 16393, 17213, 17243, 17223, 17253, 17233, 17263, 16065, 16073, 17033, 17063, 17043, 17073, 17053, 17083, 14278, 14272, 16081, 14284, 16089, 0, 18769, 16113, 14134, 14128, 14116, 17455, 14140, 33024, 599, 41216, 33024, 14056, 16153, 14302, 16161, 0, 18811, 16185, 14146, 17461, 14158, 17467, 14170, 15568, 15575, 15582, 14326, 14320, 16193, 17957, 0, 0, 14332, 16209, 14194, 14188, 14176, 17473, 0, 15589, 15596, 15603, 14380, 14374, 16297, 17965, 14350, 14356, 14386, 16313, 14242, 14236, 14224, 17485, 14218, 14044, 17449, 129, 0, 0, 16369, 14392, 16377, 0, 18889, 16401, 14206, 17479, 14254, 17497, 14266, 17303, 41216, 0, 0, 15687, 0, 40960, 15694, 40960, 0, 15701, 40960, 15708, 0, 0, 0, 40960, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12454, 40960, 15722, 0, 40960, 40960, 0, 0, 0, 0, 0, 0, 0, 15715, 12449, 12459, 15729, 15736, 40960, 40960, 15743, 15750, 40960, 40960, 15757, 15764, 40960, 40960, 40960, 40960, 0, 0, 15771, 15778, 40960, 40960, 15799, 15806, 40960, 40960, 15813, 15820, 0, 0, 0, 0, 0, 0, 0, 40960, 40960, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40960, 0, 0, 0, 0, 0, 40960, 40960, 0, 40960, 15841, 15848, 15855, 15862, 0, 0, 40960, 40960, 40960, 40960, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40960, 0, 0, 0, 0, 40960, 16457, 40960, 16465, 40960, 16473, 40960, 16481, 40960, 16489, 40960, 16497, 40960, 16505, 40960, 16513, 40960, 16521, 40960, 16529, 40960, 16537, 40960, 16545, 0, 40960, 16553, 40960, 16561, 40960, 16569, 0, 0, 0, 0, 0, 40960, 16577, 16585, 40960, 16593, 16601, 40960, 16609, 16617, 40960, 16625, 16633, 40960, 16641, 16649, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16449, 0, 0, 0, 0, 39172, 39172, 33024, 33024, 40960, 16657, 0, 0, 0, 0, 0, 0, 0, 40960, 0, 0, 0, 0, 40960, 16673, 40960, 16681, 40960, 16689, 40960, 16697, 40960, 16705, 40960, 16713, 40960, 16721, 40960, 16729, 40960, 16737, 40960, 16745, 40960, 16753, 40960, 16761, 0, 40960, 16769, 40960, 16777, 40960, 16785, 0, 0, 0, 0, 0, 40960, 16793, 16801, 40960, 16809, 16817, 40960, 16825, 16833, 40960, 16841, 16849, 40960, 16857, 16865, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40960, 40960, 40960, 40960, 0, 16665, 0, 0, 16873, 16881, 16889, 16897, 0, 0, 40960, 16905, 0, 5234, 3574, 5326, 5274, 3922, 2022, 2522, 5926, 5926, 2822, 5466, 2622, 2818, 3306, 4298, 4698, 5010, 5070, 5122, 5398, 3694, 3834, 4006, 4158, 4954, 5442, 5742, 2058, 2478, 3714, 4042, 5006, 5822, 2990, 3954, 4990, 5138, 3358, 4790, 5082, 3098, 3594, 3858, 4118, 5410, 2122, 2274, 2382, 3462, 3706, 4038, 4330, 4722, 4998, 5022, 5314, 5610, 5790, 5818, 4390, 4454, 4638, 4926, 5494, 5830, 5190, 2754, 3126, 4566, 4758, 4090, 4398, 5266, 5602, 2750, 2954, 3698, 3878, 3930, 4622, 4662, 5538, 2378, 4770, 2286, 2282, 4498, 4642, 4950, 5546, 5218, 3362, 3694, 5202, 2034, 2910, 3214, 4138, 4266, 2414, 4406, 2138, 3186, 2002, 3814, 3486, 4618, 2498, 2734, 4342, 4958, 5174, 3762, 5362, 3806, 3378, 4886, 3410, 4262, 2086, 2210, 2278, 3662, 4598, 4846, 5186, 5462, 2390, 2570, 2834, 3114, 3514, 3958, 4410, 5522, 5750, 5834, 5858, 2354, 3566, 3742, 5350, 3062, 3282, 3310, 3454, 3942, 4018, 4194, 4486, 4650, 4750, 5334, 4966, 5374, 5498, 2314, 2358, 2590, 4002, 5102, 5174, 3094, 3206, 3402, 3754, 4562, 4126, 2102, 2682, 2910, 3010, 3218, 4154, 4182, 4710, 4742, 5470, 5598, 5614, 5674, 2126, 4474, 5450, 5574, 3242, 2066, 2162, 2914, 2946, 3498, 3694, 4030, 4294, 4978, 5394, 5918, 3550, 5534, 2350, 3626, 3638, 3850, 3906, 4166, 4258, 4386, 4614, 5686, 2218, 3326, 5550, 2146, 2982, 3882, 5338, 3170, 3250, 3646, 4138, 5558, 2322, 2554, 2962, 3534, 3610, 3674, 3822, 4162, 4278, 4690, 5106, 5118, 5458, 5586, 2430, 3910, 2558, 4034, 4198, 4994, 5562, 5798, 5838, 3634, 3874, 4798, 4530, 4542, 4578, 4114, 3994, 5214, 2094, 4902, 2326, 2310, 3078, 3366, 4590, 2894, 3838, 3562, 5346, 5090, 5542, 5150, 3106, 2178, 2646, 0, 0, 2730, 0, 3546, 0, 0, 2290, 4122, 4318, 4418, 4446, 4450, 4470, 5622, 4582, 4714, 0, 5002, 0, 5198, 0, 0, 5378, 5422, 0, 0, 0, 5706, 5710, 5714, 5814, 5414, 5570, 2130, 2166, 2186, 2374, 2386, 2450, 2630, 2658, 2666, 2726, 2738, 2958, 2966, 3230, 3270, 3278, 3302, 3474, 3522, 3554, 3666, 3862, 3890, 3938, 4022, 4054, 4170, 4394, 4422, 4430, 4426, 4434, 4438, 4442, 4462, 4466, 4502, 4522, 4550, 4650, 4658, 4666, 4686, 4726, 4806, 4858, 4858, 4962, 5130, 5154, 5206, 5210, 5278, 5282, 5370, 5378, 5590, 5658, 5682, 3222, 6219, 4830, 0, 0, 2010, 2270, 2206, 2118, 2182, 2226, 2370, 2398, 2630, 2610, 2626, 2654, 2730, 2746, 2814, 2826, 2854, 2870, 3102, 3110, 3158, 3190, 3238, 3262, 3246, 3278, 3266, 3302, 3330, 3418, 3430, 3438, 3478, 3546, 3594, 3598, 3618, 3746, 3762, 3850, 3926, 3918, 3938, 3966, 4022, 4366, 4058, 4110, 4122, 4186, 4214, 4250, 4286, 4290, 4318, 4322, 4338, 4358, 4354, 4402, 4526, 4550, 4574, 4630, 4650, 4678, 4726, 4906, 4946, 5062, 5134, 5146, 5154, 5178, 5198, 5182, 5206, 5202, 5194, 5210, 5222, 5282, 5342, 5390, 5446, 5478, 5554, 5590, 5622, 5642, 5658, 5670, 5682, 5766, 5926, 6114, 6109, 6159, 1794, 1834, 1838, 6289, 6334, 6454, 5906, 5922, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2038, 2030, 2046, 6004, 2114, 2130, 2134, 2142, 2150, 2154, 2166, 2158, 1710, 6024, 2186, 2190, 2194, 2222, 6009, 1714, 2202, 2234, 6019, 2250, 2258, 2098, 2266, 2270, 6494, 2298, 2306, 1722, 2330, 2334, 2342, 2346, 1726, 2370, 2374, 2386, 2398, 2402, 2406, 2414, 2446, 2450, 2458, 2474, 2482, 2486, 2486, 2486, 6039, 3982, 2506, 2514, 6044, 2526, 2534, 2542, 2582, 2562, 2574, 2578, 2586, 2594, 2598, 2606, 2614, 2618, 2618, 2626, 2634, 2638, 2650, 2686, 2658, 2690, 2662, 2670, 2310, 2762, 2706, 2710, 2714, 2702, 2722, 2718, 2742, 6049, 2770, 2774, 2782, 2794, 2802, 2830, 6054, 6059, 2842, 2846, 2850, 2838, 2858, 1730, 1734, 2866, 2874, 2874, 6064, 2902, 2906, 2910, 2918, 6069, 2926, 2930, 3146, 2938, 1738, 2950, 2966, 2978, 2974, 6079, 2986, 6084, 2998, 2994, 3002, 3018, 3022, 1742, 3038, 3046, 3050, 3054, 1746, 6089, 1750, 3082, 3086, 3090, 3098, 6544, 3122, 6099, 6099, 4818, 3138, 3138, 1754, 6134, 6344, 3154, 3162, 1758, 3182, 3198, 3202, 3210, 3226, 1766, 1762, 3230, 6104, 3234, 3254, 3258, 3262, 3258, 3274, 3278, 3294, 3286, 3290, 3298, 3302, 3306, 3318, 3322, 3346, 3354, 3370, 3390, 6119, 3386, 3374, 3398, 3406, 3426, 6124, 3434, 3422, 3414, 1770, 3442, 3450, 3458, 3446, 1774, 3474, 3482, 6129, 3526, 3578, 3542, 1786, 3554, 1782, 1778, 2238, 2242, 3582, 3558, 4774, 1886, 3594, 3598, 3602, 3622, 3614, 6154, 1790, 3642, 3630, 3658, 3666, 6164, 3670, 3650, 3678, 1794, 3682, 3686, 3690, 3702, 6169, 3710, 1798, 3722, 6174, 3726, 1802, 3738, 3750, 3762, 3766, 6179, 6074, 6184, 3798, 6189, 3810, 3818, 3802, 3830, 3846, 3862, 3850, 3854, 3866, 3870, 6194, 3842, 3894, 3898, 1806, 3918, 3914, 6199, 3886, 3946, 6204, 6209, 3950, 3970, 3966, 3962, 1810, 3974, 3990, 3986, 3998, 6014, 4014, 6214, 4026, 6224, 4046, 4058, 4078, 6229, 4098, 4102, 6234, 6239, 4130, 4146, 1814, 4150, 1818, 1818, 4174, 4178, 4186, 4190, 4202, 1822, 4226, 6244, 4254, 6249, 4266, 6094, 4282, 6254, 6259, 6264, 1826, 1830, 4338, 6274, 6269, 6279, 6284, 4346, 4350, 4350, 4358, 1838, 4362, 1842, 1846, 6294, 4382, 4390, 4402, 1850, 6299, 4438, 6304, 6309, 4470, 4494, 1854, 4502, 4506, 4510, 6314, 6319, 6319, 4534, 1858, 6324, 4554, 4558, 1862, 6329, 4586, 1866, 4602, 4594, 4610, 6339, 4634, 1870, 4646, 4654, 4670, 1874, 6349, 6354, 1878, 6359, 4694, 6364, 4706, 4718, 4726, 6369, 6374, 4746, 6379, 4754, 6139, 1882, 4778, 4782, 1890, 4786, 2862, 6384, 6389, 6144, 6149, 4818, 4822, 5358, 1894, 4866, 4862, 4870, 2362, 4874, 4878, 4882, 4890, 6394, 4886, 4894, 4914, 4918, 4898, 4922, 4942, 4962, 4910, 4930, 4934, 4938, 6399, 6409, 6404, 1898, 4970, 4974, 4982, 6429, 4986, 6414, 1902, 1906, 6419, 6424, 1910, 5018, 5022, 5026, 5030, 5042, 5038, 5050, 5046, 5062, 5054, 5058, 5066, 1914, 5074, 5078, 1918, 5094, 5098, 6434, 5110, 5114, 1922, 5126, 1718, 6439, 6444, 1926, 1930, 5170, 5194, 5222, 5238, 6449, 5258, 5262, 5286, 5298, 6459, 6029, 5310, 5306, 5318, 6034, 5330, 5342, 6464, 6469, 5406, 5418, 5426, 6474, 5430, 5474, 5486, 5490, 5482, 5502, 5506, 6479, 5518, 1934, 5526, 6484, 1938, 5582, 3006, 5606, 6489, 6499, 1942, 1946, 5646, 6504, 1950, 6509, 5670, 5670, 5678, 6514, 5702, 1954, 5718, 5730, 5738, 5746, 1958, 6519, 5766, 5794, 5806, 1962, 1966, 5810, 6524, 1970, 6529, 6534, 6539, 5846, 1974, 5866, 5874, 5878, 5886, 5894, 5902, 6549, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]); + nfcIndex = $toNativeArray($kindUint8, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 1, 2, 3, 47, 4, 5, 0, 48, 49, 6, 7, 8, 50, 9, 51, 52, 10, 0, 0, 11, 53, 54, 12, 0, 55, 56, 57, 0, 58, 2, 3, 4, 5, 0, 0, 0, 0, 0, 0, 6, 7, 8, 9, 0, 10, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 60, 61, 13, 62, 63, 64, 65, 66, 67, 68, 69, 64, 70, 71, 72, 68, 73, 74, 75, 76, 77, 0, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 0, 88, 0, 89, 90, 91, 92, 0, 0, 0, 0, 0, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 0, 0, 95, 0, 0, 96, 0, 97, 0, 0, 0, 98, 99, 100, 101, 14, 102, 103, 104, 105, 0, 0, 106, 0, 0, 0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 107, 0, 0, 108, 109, 0, 110, 111, 112, 24, 25, 113, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 0, 0, 0, 0, 0, 0, 0, 116, 0, 117, 0, 118, 0, 0, 0, 0, 0, 0, 0, 0, 119, 26, 27, 28, 120, 121, 0, 0, 0, 122, 0, 0, 123, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, 126, 127, 0, 0, 0, 0, 128, 0, 0, 129, 130, 131, 132, 133, 0, 0, 134, 135, 0, 0, 0, 136, 137, 138, 139, 140, 141, 142, 143, 137, 138, 139, 140, 141, 142, 143, 137, 138, 139, 140, 141, 142, 143, 137, 138, 139, 140, 141, 142, 143, 137, 138, 139, 140, 141, 142, 143, 137, 138, 139, 140, 141, 142, 143, 137, 138, 139, 140, 141, 142, 143, 137, 138, 139, 140, 141, 142, 143, 137, 138, 139, 140, 141, 142, 143, 137, 138, 139, 140, 141, 142, 143, 137, 138, 139, 140, 141, 142, 143, 137, 138, 139, 140, 141, 142, 143, 137, 138, 139, 140, 141, 142, 143, 137, 138, 139, 140, 141, 142, 143, 137, 138, 139, 140, 141, 142, 143, 137, 138, 139, 140, 141, 142, 143, 137, 138, 139, 140, 141, 142, 143, 137, 138, 139, 140, 141, 142, 143, 137, 138, 139, 140, 141, 142, 143, 137, 138, 139, 140, 141, 142, 143, 137, 138, 139, 140, 141, 142, 143, 137, 138, 139, 140, 141, 142, 143, 137, 138, 139, 140, 141, 142, 143, 137, 138, 139, 140, 141, 142, 143, 137, 138, 139, 140, 141, 142, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 30, 31, 32, 33, 34, 35, 36, 145, 146, 147, 0, 0, 148, 149, 150, 151, 0, 0, 0, 152, 153, 154, 155, 0, 0, 156, 157, 0, 0, 0, 0, 0, 0, 0, 158, 0, 0, 0, 159, 0, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 161, 0, 0, 162, 0, 0, 0, 0, 0, 0, 0, 0, 163, 0, 0, 0, 0, 0, 164, 165, 0, 166, 167, 0, 0, 168, 169, 0, 170, 132, 0, 171, 172, 0, 0, 173, 174, 175, 0, 0, 0, 176, 177, 178, 0, 0, 179, 180, 117, 0, 181, 0, 182, 0, 0, 0, 183, 0, 0, 0, 184, 185, 0, 186, 187, 188, 189, 0, 0, 0, 0, 0, 117, 0, 0, 0, 0, 190, 191, 0, 0, 0, 0, 0, 0, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 193, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 0, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 201, 0, 202, 0, 194, 0, 0, 0, 0, 0, 203, 204, 0, 0, 0, 0, 0, 0, 0, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 206, 0, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 38, 39, 40, 41, 42, 43, 44, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 12, 0, 0, 0, 0, 13, 0, 0, 0, 0, 14, 0, 15, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]); + nfcSparseOffset = new sliceType$1([0, 5, 9, 11, 13, 24, 40, 42, 47, 58, 73, 86, 94, 99, 104, 106, 110, 118, 125, 128, 136, 140, 144, 146, 148, 157, 161, 168, 173, 176, 186, 189, 196, 204, 207, 209, 212, 214, 219, 236, 248, 250, 256, 258, 260, 262, 264, 266, 268, 271, 274, 276, 279, 282, 286, 292, 299, 308, 310, 313, 315, 326, 330, 344, 347, 353, 359, 370, 374, 376, 378, 380, 382, 384, 390, 394, 396, 398, 406, 410, 413, 415, 417, 420, 423, 425, 427, 429, 431, 437, 440, 442, 449, 455, 461, 469, 475, 481, 487, 491, 505, 514, 517, 520, 522, 525, 527, 531, 536, 538, 540, 545, 551, 553, 555, 557, 563, 566, 568, 570, 572, 578, 582, 586, 594, 601, 604, 607, 609, 612, 620, 624, 631, 634, 640, 642, 645, 647, 650, 655, 657, 659, 661, 663, 665, 668, 670, 672, 674, 676, 678, 680, 693, 703, 705, 707, 713, 715, 717, 719, 723, 725, 728]); + nfcSparseValues = $toNativeArray($kindStruct, [$clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(41216, 168, 168), valueRange), $clone(new valueRange.ptr(33024, 175, 175), valueRange), $clone(new valueRange.ptr(33024, 180, 180), valueRange), $clone(new valueRange.ptr(33024, 184, 184), valueRange), $clone(new valueRange.ptr(145, 3, 0), valueRange), $clone(new valueRange.ptr(18467, 160, 161), valueRange), $clone(new valueRange.ptr(18517, 175, 176), valueRange), $clone(new valueRange.ptr(40960, 183, 183), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(40960, 146, 146), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33024, 152, 157), valueRange), $clone(new valueRange.ptr(6, 10, 0), valueRange), $clone(new valueRange.ptr(40960, 129, 129), valueRange), $clone(new valueRange.ptr(40960, 133, 133), valueRange), $clone(new valueRange.ptr(40960, 137, 137), valueRange), $clone(new valueRange.ptr(18817, 138, 138), valueRange), $clone(new valueRange.ptr(18847, 139, 139), valueRange), $clone(new valueRange.ptr(14344, 140, 140), valueRange), $clone(new valueRange.ptr(14368, 141, 141), valueRange), $clone(new valueRange.ptr(18871, 142, 142), valueRange), $clone(new valueRange.ptr(40960, 146, 146), valueRange), $clone(new valueRange.ptr(14398, 147, 148), valueRange), $clone(new valueRange.ptr(0, 15, 0), valueRange), $clone(new valueRange.ptr(40960, 131, 131), valueRange), $clone(new valueRange.ptr(40960, 135, 135), valueRange), $clone(new valueRange.ptr(40960, 139, 139), valueRange), $clone(new valueRange.ptr(40960, 141, 141), valueRange), $clone(new valueRange.ptr(14566, 144, 144), valueRange), $clone(new valueRange.ptr(14578, 145, 145), valueRange), $clone(new valueRange.ptr(14560, 147, 147), valueRange), $clone(new valueRange.ptr(40960, 150, 150), valueRange), $clone(new valueRange.ptr(14680, 151, 151), valueRange), $clone(new valueRange.ptr(14626, 156, 156), valueRange), $clone(new valueRange.ptr(14602, 157, 157), valueRange), $clone(new valueRange.ptr(14644, 158, 158), valueRange), $clone(new valueRange.ptr(40960, 180, 181), valueRange), $clone(new valueRange.ptr(14686, 182, 182), valueRange), $clone(new valueRange.ptr(14692, 183, 183), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 131, 135), valueRange), $clone(new valueRange.ptr(1, 4, 0), valueRange), $clone(new valueRange.ptr(33044, 129, 130), valueRange), $clone(new valueRange.ptr(33075, 132, 132), valueRange), $clone(new valueRange.ptr(33070, 133, 133), valueRange), $clone(new valueRange.ptr(33038, 135, 135), valueRange), $clone(new valueRange.ptr(0, 10, 0), valueRange), $clone(new valueRange.ptr(33075, 144, 151), valueRange), $clone(new valueRange.ptr(33050, 152, 152), valueRange), $clone(new valueRange.ptr(33051, 153, 153), valueRange), $clone(new valueRange.ptr(33052, 154, 154), valueRange), $clone(new valueRange.ptr(14722, 162, 162), valueRange), $clone(new valueRange.ptr(14728, 163, 163), valueRange), $clone(new valueRange.ptr(14740, 164, 164), valueRange), $clone(new valueRange.ptr(14734, 165, 165), valueRange), $clone(new valueRange.ptr(14746, 166, 166), valueRange), $clone(new valueRange.ptr(40960, 167, 167), valueRange), $clone(new valueRange.ptr(0, 14, 0), valueRange), $clone(new valueRange.ptr(14764, 128, 128), valueRange), $clone(new valueRange.ptr(40960, 129, 129), valueRange), $clone(new valueRange.ptr(14752, 130, 130), valueRange), $clone(new valueRange.ptr(40960, 146, 146), valueRange), $clone(new valueRange.ptr(14758, 147, 147), valueRange), $clone(new valueRange.ptr(40960, 149, 149), valueRange), $clone(new valueRange.ptr(33075, 150, 156), valueRange), $clone(new valueRange.ptr(33075, 159, 162), valueRange), $clone(new valueRange.ptr(33070, 163, 163), valueRange), $clone(new valueRange.ptr(33075, 164, 164), valueRange), $clone(new valueRange.ptr(33075, 167, 168), valueRange), $clone(new valueRange.ptr(33070, 170, 170), valueRange), $clone(new valueRange.ptr(33075, 171, 172), valueRange), $clone(new valueRange.ptr(33070, 173, 173), valueRange), $clone(new valueRange.ptr(0, 12, 0), valueRange), $clone(new valueRange.ptr(33056, 145, 145), valueRange), $clone(new valueRange.ptr(33075, 176, 176), valueRange), $clone(new valueRange.ptr(33070, 177, 177), valueRange), $clone(new valueRange.ptr(33075, 178, 179), valueRange), $clone(new valueRange.ptr(33070, 180, 180), valueRange), $clone(new valueRange.ptr(33075, 181, 182), valueRange), $clone(new valueRange.ptr(33070, 183, 185), valueRange), $clone(new valueRange.ptr(33075, 186, 186), valueRange), $clone(new valueRange.ptr(33070, 187, 188), valueRange), $clone(new valueRange.ptr(33075, 189, 189), valueRange), $clone(new valueRange.ptr(33070, 190, 190), valueRange), $clone(new valueRange.ptr(33075, 191, 191), valueRange), $clone(new valueRange.ptr(5, 7, 0), valueRange), $clone(new valueRange.ptr(33075, 128, 128), valueRange), $clone(new valueRange.ptr(33075, 129, 129), valueRange), $clone(new valueRange.ptr(33070, 130, 131), valueRange), $clone(new valueRange.ptr(33070, 132, 133), valueRange), $clone(new valueRange.ptr(33070, 134, 135), valueRange), $clone(new valueRange.ptr(33070, 136, 137), valueRange), $clone(new valueRange.ptr(33075, 138, 138), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(33075, 171, 177), valueRange), $clone(new valueRange.ptr(33070, 178, 178), valueRange), $clone(new valueRange.ptr(33075, 179, 179), valueRange), $clone(new valueRange.ptr(33070, 189, 189), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(33075, 150, 153), valueRange), $clone(new valueRange.ptr(33075, 155, 163), valueRange), $clone(new valueRange.ptr(33075, 165, 167), valueRange), $clone(new valueRange.ptr(33075, 169, 173), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33070, 153, 155), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(33075, 152, 152), valueRange), $clone(new valueRange.ptr(33070, 153, 155), valueRange), $clone(new valueRange.ptr(33075, 156, 159), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(40960, 168, 168), valueRange), $clone(new valueRange.ptr(16409, 169, 169), valueRange), $clone(new valueRange.ptr(40960, 176, 176), valueRange), $clone(new valueRange.ptr(16417, 177, 177), valueRange), $clone(new valueRange.ptr(40960, 179, 179), valueRange), $clone(new valueRange.ptr(16425, 180, 180), valueRange), $clone(new valueRange.ptr(39171, 188, 188), valueRange), $clone(new valueRange.ptr(8, 6, 0), valueRange), $clone(new valueRange.ptr(33029, 141, 141), valueRange), $clone(new valueRange.ptr(33075, 145, 145), valueRange), $clone(new valueRange.ptr(33070, 146, 146), valueRange), $clone(new valueRange.ptr(33075, 147, 147), valueRange), $clone(new valueRange.ptr(33075, 148, 148), valueRange), $clone(new valueRange.ptr(18013, 152, 159), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33027, 188, 188), valueRange), $clone(new valueRange.ptr(39168, 190, 190), valueRange), $clone(new valueRange.ptr(8, 7, 0), valueRange), $clone(new valueRange.ptr(40960, 135, 135), valueRange), $clone(new valueRange.ptr(11733, 139, 140), valueRange), $clone(new valueRange.ptr(33029, 141, 141), valueRange), $clone(new valueRange.ptr(39168, 151, 151), valueRange), $clone(new valueRange.ptr(18077, 156, 157), valueRange), $clone(new valueRange.ptr(18093, 159, 159), valueRange), $clone(new valueRange.ptr(33075, 190, 190), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(18133, 179, 179), valueRange), $clone(new valueRange.ptr(18141, 182, 182), valueRange), $clone(new valueRange.ptr(33027, 188, 188), valueRange), $clone(new valueRange.ptr(8, 3, 0), valueRange), $clone(new valueRange.ptr(33029, 141, 141), valueRange), $clone(new valueRange.ptr(18101, 153, 155), valueRange), $clone(new valueRange.ptr(18125, 158, 158), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33027, 188, 188), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 141, 141), valueRange), $clone(new valueRange.ptr(0, 8, 0), valueRange), $clone(new valueRange.ptr(40960, 135, 135), valueRange), $clone(new valueRange.ptr(11757, 136, 136), valueRange), $clone(new valueRange.ptr(11749, 139, 139), valueRange), $clone(new valueRange.ptr(11765, 140, 140), valueRange), $clone(new valueRange.ptr(33029, 141, 141), valueRange), $clone(new valueRange.ptr(39168, 150, 151), valueRange), $clone(new valueRange.ptr(18149, 156, 156), valueRange), $clone(new valueRange.ptr(18157, 157, 157), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(40960, 146, 146), valueRange), $clone(new valueRange.ptr(11773, 148, 148), valueRange), $clone(new valueRange.ptr(39168, 190, 190), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(40960, 134, 135), valueRange), $clone(new valueRange.ptr(11781, 138, 138), valueRange), $clone(new valueRange.ptr(11797, 139, 139), valueRange), $clone(new valueRange.ptr(11789, 140, 140), valueRange), $clone(new valueRange.ptr(33029, 141, 141), valueRange), $clone(new valueRange.ptr(39168, 151, 151), valueRange), $clone(new valueRange.ptr(6145, 4, 0), valueRange), $clone(new valueRange.ptr(40960, 134, 134), valueRange), $clone(new valueRange.ptr(16433, 136, 136), valueRange), $clone(new valueRange.ptr(33029, 141, 141), valueRange), $clone(new valueRange.ptr(33057, 149, 150), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33027, 188, 188), valueRange), $clone(new valueRange.ptr(40960, 191, 191), valueRange), $clone(new valueRange.ptr(0, 9, 0), valueRange), $clone(new valueRange.ptr(11805, 128, 128), valueRange), $clone(new valueRange.ptr(39168, 130, 130), valueRange), $clone(new valueRange.ptr(40960, 134, 134), valueRange), $clone(new valueRange.ptr(11813, 135, 135), valueRange), $clone(new valueRange.ptr(11821, 136, 136), valueRange), $clone(new valueRange.ptr(12433, 138, 138), valueRange), $clone(new valueRange.ptr(12057, 139, 139), valueRange), $clone(new valueRange.ptr(33029, 141, 141), valueRange), $clone(new valueRange.ptr(39168, 149, 150), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33029, 187, 188), valueRange), $clone(new valueRange.ptr(39168, 190, 190), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(40960, 134, 135), valueRange), $clone(new valueRange.ptr(11829, 138, 138), valueRange), $clone(new valueRange.ptr(11845, 139, 139), valueRange), $clone(new valueRange.ptr(11837, 140, 140), valueRange), $clone(new valueRange.ptr(33029, 141, 141), valueRange), $clone(new valueRange.ptr(39168, 151, 151), valueRange), $clone(new valueRange.ptr(27315, 7, 0), valueRange), $clone(new valueRange.ptr(39173, 138, 138), valueRange), $clone(new valueRange.ptr(39168, 143, 143), valueRange), $clone(new valueRange.ptr(40960, 153, 153), valueRange), $clone(new valueRange.ptr(16441, 154, 154), valueRange), $clone(new valueRange.ptr(12441, 156, 156), valueRange), $clone(new valueRange.ptr(12068, 157, 157), valueRange), $clone(new valueRange.ptr(11853, 158, 159), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33059, 184, 185), valueRange), $clone(new valueRange.ptr(33029, 186, 186), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33060, 136, 139), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33061, 184, 185), valueRange), $clone(new valueRange.ptr(33029, 186, 186), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33062, 136, 139), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(33070, 152, 153), valueRange), $clone(new valueRange.ptr(33070, 181, 181), valueRange), $clone(new valueRange.ptr(33070, 183, 183), valueRange), $clone(new valueRange.ptr(33068, 185, 185), valueRange), $clone(new valueRange.ptr(0, 16, 0), valueRange), $clone(new valueRange.ptr(10100, 131, 131), valueRange), $clone(new valueRange.ptr(10107, 141, 141), valueRange), $clone(new valueRange.ptr(10114, 146, 146), valueRange), $clone(new valueRange.ptr(10121, 151, 151), valueRange), $clone(new valueRange.ptr(10128, 156, 156), valueRange), $clone(new valueRange.ptr(10093, 169, 169), valueRange), $clone(new valueRange.ptr(33063, 177, 177), valueRange), $clone(new valueRange.ptr(33064, 178, 178), valueRange), $clone(new valueRange.ptr(19397, 179, 179), valueRange), $clone(new valueRange.ptr(33065, 180, 180), valueRange), $clone(new valueRange.ptr(19406, 181, 181), valueRange), $clone(new valueRange.ptr(18165, 182, 182), valueRange), $clone(new valueRange.ptr(33280, 183, 183), valueRange), $clone(new valueRange.ptr(18173, 184, 184), valueRange), $clone(new valueRange.ptr(33280, 185, 185), valueRange), $clone(new valueRange.ptr(33064, 186, 189), valueRange), $clone(new valueRange.ptr(0, 11, 0), valueRange), $clone(new valueRange.ptr(33064, 128, 128), valueRange), $clone(new valueRange.ptr(19415, 129, 129), valueRange), $clone(new valueRange.ptr(33075, 130, 131), valueRange), $clone(new valueRange.ptr(33029, 132, 132), valueRange), $clone(new valueRange.ptr(33075, 134, 135), valueRange), $clone(new valueRange.ptr(10142, 147, 147), valueRange), $clone(new valueRange.ptr(10149, 157, 157), valueRange), $clone(new valueRange.ptr(10156, 162, 162), valueRange), $clone(new valueRange.ptr(10163, 167, 167), valueRange), $clone(new valueRange.ptr(10170, 172, 172), valueRange), $clone(new valueRange.ptr(10135, 185, 185), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33070, 134, 134), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(40960, 165, 165), valueRange), $clone(new valueRange.ptr(11861, 166, 166), valueRange), $clone(new valueRange.ptr(39168, 174, 174), valueRange), $clone(new valueRange.ptr(33027, 183, 183), valueRange), $clone(new valueRange.ptr(33029, 185, 186), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33070, 141, 141), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(40960, 128, 146), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(47360, 161, 181), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(39168, 168, 191), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(39168, 128, 130), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 157, 159), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33029, 148, 149), valueRange), $clone(new valueRange.ptr(33029, 180, 180), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33029, 146, 146), valueRange), $clone(new valueRange.ptr(33075, 157, 157), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33074, 169, 169), valueRange), $clone(new valueRange.ptr(4, 2, 0), valueRange), $clone(new valueRange.ptr(33071, 185, 186), valueRange), $clone(new valueRange.ptr(33070, 187, 187), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33075, 151, 151), valueRange), $clone(new valueRange.ptr(33070, 152, 152), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(33029, 160, 160), valueRange), $clone(new valueRange.ptr(33075, 181, 188), valueRange), $clone(new valueRange.ptr(33070, 191, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(33075, 176, 180), valueRange), $clone(new valueRange.ptr(33070, 181, 186), valueRange), $clone(new valueRange.ptr(33075, 187, 188), valueRange), $clone(new valueRange.ptr(33070, 189, 189), valueRange), $clone(new valueRange.ptr(33070, 191, 191), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(33070, 128, 128), valueRange), $clone(new valueRange.ptr(33075, 129, 130), valueRange), $clone(new valueRange.ptr(33070, 131, 132), valueRange), $clone(new valueRange.ptr(33075, 133, 137), valueRange), $clone(new valueRange.ptr(33070, 138, 138), valueRange), $clone(new valueRange.ptr(33075, 139, 142), valueRange), $clone(new valueRange.ptr(0, 8, 0), valueRange), $clone(new valueRange.ptr(11933, 128, 128), valueRange), $clone(new valueRange.ptr(11941, 129, 129), valueRange), $clone(new valueRange.ptr(40960, 130, 130), valueRange), $clone(new valueRange.ptr(11949, 131, 131), valueRange), $clone(new valueRange.ptr(33029, 132, 132), valueRange), $clone(new valueRange.ptr(33075, 171, 171), valueRange), $clone(new valueRange.ptr(33070, 172, 172), valueRange), $clone(new valueRange.ptr(33075, 173, 179), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 170, 171), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33027, 166, 166), valueRange), $clone(new valueRange.ptr(33029, 178, 179), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33027, 183, 183), valueRange), $clone(new valueRange.ptr(0, 10, 0), valueRange), $clone(new valueRange.ptr(33075, 144, 146), valueRange), $clone(new valueRange.ptr(33025, 148, 148), valueRange), $clone(new valueRange.ptr(33070, 149, 153), valueRange), $clone(new valueRange.ptr(33075, 154, 155), valueRange), $clone(new valueRange.ptr(33070, 156, 159), valueRange), $clone(new valueRange.ptr(33075, 160, 160), valueRange), $clone(new valueRange.ptr(33025, 162, 168), valueRange), $clone(new valueRange.ptr(33070, 173, 173), valueRange), $clone(new valueRange.ptr(33075, 180, 180), valueRange), $clone(new valueRange.ptr(33075, 184, 185), valueRange), $clone(new valueRange.ptr(4, 3, 0), valueRange), $clone(new valueRange.ptr(1322, 128, 129), valueRange), $clone(new valueRange.ptr(33024, 151, 151), valueRange), $clone(new valueRange.ptr(33024, 190, 190), valueRange), $clone(new valueRange.ptr(0, 13, 0), valueRange), $clone(new valueRange.ptr(33075, 144, 145), valueRange), $clone(new valueRange.ptr(33025, 146, 147), valueRange), $clone(new valueRange.ptr(33075, 148, 151), valueRange), $clone(new valueRange.ptr(33025, 152, 154), valueRange), $clone(new valueRange.ptr(33075, 155, 156), valueRange), $clone(new valueRange.ptr(33075, 161, 161), valueRange), $clone(new valueRange.ptr(33025, 165, 166), valueRange), $clone(new valueRange.ptr(33075, 167, 167), valueRange), $clone(new valueRange.ptr(33070, 168, 168), valueRange), $clone(new valueRange.ptr(33075, 169, 169), valueRange), $clone(new valueRange.ptr(33025, 170, 171), valueRange), $clone(new valueRange.ptr(33070, 172, 175), valueRange), $clone(new valueRange.ptr(33075, 176, 176), valueRange), $clone(new valueRange.ptr(17340, 2, 0), valueRange), $clone(new valueRange.ptr(572, 166, 166), valueRange), $clone(new valueRange.ptr(87, 170, 171), valueRange), $clone(new valueRange.ptr(7, 5, 0), valueRange), $clone(new valueRange.ptr(40960, 144, 144), valueRange), $clone(new valueRange.ptr(40960, 146, 146), valueRange), $clone(new valueRange.ptr(40960, 148, 148), valueRange), $clone(new valueRange.ptr(15610, 154, 155), valueRange), $clone(new valueRange.ptr(15624, 174, 174), valueRange), $clone(new valueRange.ptr(14, 5, 0), valueRange), $clone(new valueRange.ptr(15631, 141, 142), valueRange), $clone(new valueRange.ptr(15638, 143, 143), valueRange), $clone(new valueRange.ptr(40960, 144, 144), valueRange), $clone(new valueRange.ptr(40960, 146, 146), valueRange), $clone(new valueRange.ptr(40960, 148, 148), valueRange), $clone(new valueRange.ptr(25287, 10, 0), valueRange), $clone(new valueRange.ptr(40960, 131, 131), valueRange), $clone(new valueRange.ptr(15652, 132, 132), valueRange), $clone(new valueRange.ptr(40960, 136, 136), valueRange), $clone(new valueRange.ptr(15659, 137, 137), valueRange), $clone(new valueRange.ptr(40960, 139, 139), valueRange), $clone(new valueRange.ptr(15666, 140, 140), valueRange), $clone(new valueRange.ptr(40960, 163, 163), valueRange), $clone(new valueRange.ptr(15673, 164, 165), valueRange), $clone(new valueRange.ptr(15680, 166, 166), valueRange), $clone(new valueRange.ptr(40960, 188, 188), valueRange), $clone(new valueRange.ptr(7, 3, 0), valueRange), $clone(new valueRange.ptr(15785, 160, 161), valueRange), $clone(new valueRange.ptr(15827, 162, 163), valueRange), $clone(new valueRange.ptr(15869, 170, 173), valueRange), $clone(new valueRange.ptr(4, 1, 0), valueRange), $clone(new valueRange.ptr(1414, 169, 170), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(17950, 156, 156), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 175, 177), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 191, 191), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 160, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(33069, 170, 170), valueRange), $clone(new valueRange.ptr(33074, 171, 171), valueRange), $clone(new valueRange.ptr(33076, 172, 172), valueRange), $clone(new valueRange.ptr(33071, 173, 173), valueRange), $clone(new valueRange.ptr(33072, 174, 175), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(19424, 179, 179), valueRange), $clone(new valueRange.ptr(19424, 181, 182), valueRange), $clone(new valueRange.ptr(19424, 186, 191), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(19424, 143, 163), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33024, 174, 190), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(33024, 132, 132), valueRange), $clone(new valueRange.ptr(33024, 135, 135), valueRange), $clone(new valueRange.ptr(33024, 144, 144), valueRange), $clone(new valueRange.ptr(33024, 158, 158), valueRange), $clone(new valueRange.ptr(33024, 161, 161), valueRange), $clone(new valueRange.ptr(33024, 178, 178), valueRange), $clone(new valueRange.ptr(33024, 187, 187), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(33024, 128, 128), valueRange), $clone(new valueRange.ptr(33024, 139, 139), valueRange), $clone(new valueRange.ptr(33024, 142, 142), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33075, 175, 175), valueRange), $clone(new valueRange.ptr(33075, 180, 189), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 158, 159), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 176, 177), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33029, 134, 134), valueRange), $clone(new valueRange.ptr(33029, 172, 172), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33029, 132, 132), valueRange), $clone(new valueRange.ptr(33075, 160, 177), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33070, 171, 173), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 147, 147), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33027, 179, 179), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 128, 128), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(33075, 176, 176), valueRange), $clone(new valueRange.ptr(33075, 178, 179), valueRange), $clone(new valueRange.ptr(33070, 180, 180), valueRange), $clone(new valueRange.ptr(33075, 183, 184), valueRange), $clone(new valueRange.ptr(33075, 190, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33075, 129, 129), valueRange), $clone(new valueRange.ptr(33029, 182, 182), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 173, 173), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(58624, 128, 128), valueRange), $clone(new valueRange.ptr(50688, 129, 155), valueRange), $clone(new valueRange.ptr(58624, 156, 156), valueRange), $clone(new valueRange.ptr(50688, 157, 183), valueRange), $clone(new valueRange.ptr(58624, 184, 184), valueRange), $clone(new valueRange.ptr(50688, 185, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(50688, 128, 147), valueRange), $clone(new valueRange.ptr(58624, 148, 148), valueRange), $clone(new valueRange.ptr(50688, 149, 175), valueRange), $clone(new valueRange.ptr(58624, 176, 176), valueRange), $clone(new valueRange.ptr(50688, 177, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(50688, 128, 139), valueRange), $clone(new valueRange.ptr(58624, 140, 140), valueRange), $clone(new valueRange.ptr(50688, 141, 167), valueRange), $clone(new valueRange.ptr(58624, 168, 168), valueRange), $clone(new valueRange.ptr(50688, 169, 191), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(50688, 128, 131), valueRange), $clone(new valueRange.ptr(58624, 132, 132), valueRange), $clone(new valueRange.ptr(50688, 133, 159), valueRange), $clone(new valueRange.ptr(58624, 160, 160), valueRange), $clone(new valueRange.ptr(50688, 161, 187), valueRange), $clone(new valueRange.ptr(58624, 188, 188), valueRange), $clone(new valueRange.ptr(50688, 189, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(50688, 128, 151), valueRange), $clone(new valueRange.ptr(58624, 152, 152), valueRange), $clone(new valueRange.ptr(50688, 153, 179), valueRange), $clone(new valueRange.ptr(58624, 180, 180), valueRange), $clone(new valueRange.ptr(50688, 181, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(50688, 128, 143), valueRange), $clone(new valueRange.ptr(58624, 144, 144), valueRange), $clone(new valueRange.ptr(50688, 145, 171), valueRange), $clone(new valueRange.ptr(58624, 172, 172), valueRange), $clone(new valueRange.ptr(50688, 173, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(50688, 128, 135), valueRange), $clone(new valueRange.ptr(58624, 136, 136), valueRange), $clone(new valueRange.ptr(50688, 137, 163), valueRange), $clone(new valueRange.ptr(58624, 164, 164), valueRange), $clone(new valueRange.ptr(50688, 165, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(50688, 128, 135), valueRange), $clone(new valueRange.ptr(58624, 136, 136), valueRange), $clone(new valueRange.ptr(50688, 137, 163), valueRange), $clone(new valueRange.ptr(6, 13, 0), valueRange), $clone(new valueRange.ptr(17617, 157, 157), valueRange), $clone(new valueRange.ptr(33046, 158, 158), valueRange), $clone(new valueRange.ptr(17731, 159, 159), valueRange), $clone(new valueRange.ptr(17713, 170, 171), valueRange), $clone(new valueRange.ptr(17973, 172, 172), valueRange), $clone(new valueRange.ptr(17981, 173, 173), valueRange), $clone(new valueRange.ptr(17545, 174, 177), valueRange), $clone(new valueRange.ptr(17575, 178, 180), valueRange), $clone(new valueRange.ptr(17599, 181, 182), valueRange), $clone(new valueRange.ptr(17611, 184, 184), valueRange), $clone(new valueRange.ptr(17623, 185, 187), valueRange), $clone(new valueRange.ptr(17647, 188, 188), valueRange), $clone(new valueRange.ptr(17653, 190, 190), valueRange), $clone(new valueRange.ptr(6, 8, 0), valueRange), $clone(new valueRange.ptr(17659, 128, 129), valueRange), $clone(new valueRange.ptr(17671, 131, 132), valueRange), $clone(new valueRange.ptr(17689, 134, 137), valueRange), $clone(new valueRange.ptr(17725, 138, 138), valueRange), $clone(new valueRange.ptr(17593, 139, 139), valueRange), $clone(new valueRange.ptr(17569, 140, 140), valueRange), $clone(new valueRange.ptr(17641, 141, 141), valueRange), $clone(new valueRange.ptr(17683, 142, 142), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33024, 164, 165), valueRange), $clone(new valueRange.ptr(33024, 176, 177), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33024, 155, 157), valueRange), $clone(new valueRange.ptr(33280, 158, 163), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33024, 144, 144), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33024, 153, 153), valueRange), $clone(new valueRange.ptr(33280, 178, 180), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33024, 188, 189), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(33075, 160, 166), valueRange), $clone(new valueRange.ptr(33070, 167, 173), valueRange), $clone(new valueRange.ptr(33075, 174, 175), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(33024, 137, 140), valueRange), $clone(new valueRange.ptr(33024, 176, 178), valueRange), $clone(new valueRange.ptr(33024, 180, 180), valueRange), $clone(new valueRange.ptr(33024, 182, 191), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33024, 129, 140), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33024, 181, 186), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(19424, 158, 159), valueRange), $clone(new valueRange.ptr(19424, 163, 163), valueRange), $clone(new valueRange.ptr(19424, 165, 166), valueRange), $clone(new valueRange.ptr(19424, 170, 175), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(19424, 130, 135), valueRange), $clone(new valueRange.ptr(19424, 138, 143), valueRange), $clone(new valueRange.ptr(19424, 146, 151), valueRange), $clone(new valueRange.ptr(19424, 154, 156), valueRange), $clone(new valueRange.ptr(33024, 163, 163), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33070, 189, 189), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33070, 160, 160), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 182, 186), valueRange), $clone(new valueRange.ptr(45, 5, 0), valueRange), $clone(new valueRange.ptr(33070, 141, 141), valueRange), $clone(new valueRange.ptr(33075, 143, 143), valueRange), $clone(new valueRange.ptr(33075, 184, 184), valueRange), $clone(new valueRange.ptr(33025, 185, 186), valueRange), $clone(new valueRange.ptr(33029, 191, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33075, 165, 165), valueRange), $clone(new valueRange.ptr(33070, 166, 166), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 164, 167), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 171, 172), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33070, 189, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(33070, 134, 135), valueRange), $clone(new valueRange.ptr(33075, 136, 138), valueRange), $clone(new valueRange.ptr(33070, 139, 139), valueRange), $clone(new valueRange.ptr(33075, 140, 140), valueRange), $clone(new valueRange.ptr(33070, 141, 144), valueRange), $clone(new valueRange.ptr(5, 3, 0), valueRange), $clone(new valueRange.ptr(33075, 130, 130), valueRange), $clone(new valueRange.ptr(33070, 131, 132), valueRange), $clone(new valueRange.ptr(33070, 133, 133), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(33029, 134, 134), valueRange), $clone(new valueRange.ptr(33029, 176, 176), valueRange), $clone(new valueRange.ptr(33029, 191, 191), valueRange), $clone(new valueRange.ptr(6142, 7, 0), valueRange), $clone(new valueRange.ptr(40960, 153, 153), valueRange), $clone(new valueRange.ptr(17273, 154, 154), valueRange), $clone(new valueRange.ptr(40960, 155, 155), valueRange), $clone(new valueRange.ptr(17283, 156, 156), valueRange), $clone(new valueRange.ptr(40960, 165, 165), valueRange), $clone(new valueRange.ptr(17293, 171, 171), valueRange), $clone(new valueRange.ptr(33029, 185, 186), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(33075, 128, 130), valueRange), $clone(new valueRange.ptr(39168, 167, 167), valueRange), $clone(new valueRange.ptr(11957, 174, 174), valueRange), $clone(new valueRange.ptr(11967, 175, 175), valueRange), $clone(new valueRange.ptr(40960, 177, 178), valueRange), $clone(new valueRange.ptr(33029, 179, 180), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33029, 128, 128), valueRange), $clone(new valueRange.ptr(33027, 138, 138), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33029, 181, 181), valueRange), $clone(new valueRange.ptr(33027, 182, 182), valueRange), $clone(new valueRange.ptr(2, 1, 0), valueRange), $clone(new valueRange.ptr(33027, 169, 170), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33027, 187, 188), valueRange), $clone(new valueRange.ptr(39168, 190, 190), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(40960, 135, 135), valueRange), $clone(new valueRange.ptr(11977, 139, 139), valueRange), $clone(new valueRange.ptr(11987, 140, 140), valueRange), $clone(new valueRange.ptr(33029, 141, 141), valueRange), $clone(new valueRange.ptr(39168, 151, 151), valueRange), $clone(new valueRange.ptr(33075, 166, 172), valueRange), $clone(new valueRange.ptr(33075, 176, 180), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(33029, 130, 130), valueRange), $clone(new valueRange.ptr(33027, 134, 134), valueRange), $clone(new valueRange.ptr(33075, 158, 158), valueRange), $clone(new valueRange.ptr(27171, 6, 0), valueRange), $clone(new valueRange.ptr(39168, 176, 176), valueRange), $clone(new valueRange.ptr(40960, 185, 185), valueRange), $clone(new valueRange.ptr(39168, 186, 186), valueRange), $clone(new valueRange.ptr(12007, 187, 187), valueRange), $clone(new valueRange.ptr(11997, 188, 189), valueRange), $clone(new valueRange.ptr(12017, 190, 190), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33029, 130, 130), valueRange), $clone(new valueRange.ptr(33027, 131, 131), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(39168, 175, 175), valueRange), $clone(new valueRange.ptr(40960, 184, 185), valueRange), $clone(new valueRange.ptr(12027, 186, 186), valueRange), $clone(new valueRange.ptr(12037, 187, 187), valueRange), $clone(new valueRange.ptr(33029, 191, 191), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33027, 128, 128), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33029, 182, 182), valueRange), $clone(new valueRange.ptr(33027, 183, 183), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 171, 171), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33029, 185, 185), valueRange), $clone(new valueRange.ptr(33027, 186, 186), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(39168, 176, 176), valueRange), $clone(new valueRange.ptr(40960, 181, 181), valueRange), $clone(new valueRange.ptr(12047, 184, 184), valueRange), $clone(new valueRange.ptr(33029, 189, 190), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33027, 131, 131), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 160, 160), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 180, 180), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 135, 135), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 153, 153), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33027, 130, 130), valueRange), $clone(new valueRange.ptr(33029, 132, 133), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 151, 151), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 129, 130), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33025, 176, 180), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 176, 182), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33026, 176, 177), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33025, 158, 158), valueRange), $clone(new valueRange.ptr(0, 12, 0), valueRange), $clone(new valueRange.ptr(18189, 158, 158), valueRange), $clone(new valueRange.ptr(18199, 159, 159), valueRange), $clone(new valueRange.ptr(18251, 160, 160), valueRange), $clone(new valueRange.ptr(18265, 161, 161), valueRange), $clone(new valueRange.ptr(18279, 162, 162), valueRange), $clone(new valueRange.ptr(18293, 163, 163), valueRange), $clone(new valueRange.ptr(18307, 164, 164), valueRange), $clone(new valueRange.ptr(33068, 165, 166), valueRange), $clone(new valueRange.ptr(33025, 167, 169), valueRange), $clone(new valueRange.ptr(33073, 173, 173), valueRange), $clone(new valueRange.ptr(33068, 174, 178), valueRange), $clone(new valueRange.ptr(33070, 187, 191), valueRange), $clone(new valueRange.ptr(0, 9, 0), valueRange), $clone(new valueRange.ptr(33070, 128, 130), valueRange), $clone(new valueRange.ptr(33075, 133, 137), valueRange), $clone(new valueRange.ptr(33070, 138, 139), valueRange), $clone(new valueRange.ptr(33075, 170, 173), valueRange), $clone(new valueRange.ptr(18209, 187, 187), valueRange), $clone(new valueRange.ptr(18219, 188, 188), valueRange), $clone(new valueRange.ptr(18321, 189, 189), valueRange), $clone(new valueRange.ptr(18349, 190, 190), valueRange), $clone(new valueRange.ptr(18335, 191, 191), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(18363, 128, 128), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 130, 132), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(33075, 128, 134), valueRange), $clone(new valueRange.ptr(33075, 136, 152), valueRange), $clone(new valueRange.ptr(33075, 155, 161), valueRange), $clone(new valueRange.ptr(33075, 163, 164), valueRange), $clone(new valueRange.ptr(33075, 166, 170), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 143, 143), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 174, 174), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 172, 175), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(33076, 172, 173), valueRange), $clone(new valueRange.ptr(33070, 174, 174), valueRange), $clone(new valueRange.ptr(33075, 175, 175), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33070, 144, 150), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33075, 132, 137), valueRange), $clone(new valueRange.ptr(33027, 138, 138), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33024, 147, 147), valueRange)]); nfcSparse = new sparseBlocks.ptr(new sliceType$2(nfcSparseValues), nfcSparseOffset); - nfkcValues = $toNativeArray($kindUint16, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40960, 40960, 40960, 0, 0, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 0, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 0, 0, 0, 0, 0, 0, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 0, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12166, 12171, 18079, 12176, 18094, 18099, 40960, 18109, 12281, 12286, 18114, 12306, 12421, 12426, 12431, 18134, 0, 12571, 12606, 12611, 18144, 18149, 18164, 0, 40960, 12746, 12751, 12756, 18214, 12876, 0, 0, 12946, 12951, 18224, 12956, 18239, 18244, 40960, 18254, 13061, 13066, 18259, 13086, 13206, 13211, 13216, 18279, 0, 13356, 13391, 13396, 18289, 18294, 18309, 0, 40960, 13536, 13541, 13546, 18359, 13671, 0, 13696, 12181, 12961, 18084, 18229, 12211, 12991, 12231, 13011, 12236, 13016, 12241, 13021, 12246, 13026, 12256, 13036, 0, 0, 18119, 18264, 12296, 13076, 12301, 13081, 12331, 13111, 12316, 13096, 12356, 13136, 12366, 13146, 12371, 13151, 12381, 13161, 12386, 13166, 0, 0, 12436, 13221, 12441, 13226, 12446, 13231, 12481, 13261, 12451, 0, 6496, 6637, 12491, 13271, 12511, 13296, 0, 12521, 13306, 12531, 13316, 12526, 13311, 7090, 7226, 0, 0, 12566, 13351, 12591, 13376, 12581, 13366, 7266, 0, 0, 18154, 18299, 12616, 13401, 12626, 13411, 0, 0, 12656, 13441, 12681, 13466, 12666, 13451, 18189, 18334, 12691, 13476, 12706, 13491, 18194, 18339, 12731, 13521, 12716, 13506, 0, 0, 18204, 18349, 18209, 18354, 12761, 13551, 12771, 13561, 12776, 13566, 12806, 13596, 12841, 13631, 12881, 13676, 12901, 12916, 13716, 12926, 13726, 12931, 13731, 167, 0, 0, 0, 0, 11781, 11787, 11793, 6517, 6520, 6670, 6541, 6544, 6724, 12191, 12971, 12461, 13241, 12631, 13416, 12781, 13571, 14822, 15221, 14815, 15214, 14829, 15228, 14808, 15207, 0, 14535, 14934, 14528, 14927, 13770, 13788, 0, 0, 12376, 13156, 12501, 13286, 18179, 18324, 14759, 15158, 13806, 13812, 13276, 6469, 6472, 6613, 12351, 13131, 0, 0, 12561, 13346, 14542, 14941, 13764, 13782, 13776, 13794, 12196, 12976, 12201, 12981, 12321, 13101, 12326, 13106, 12466, 13246, 12471, 13251, 12636, 13421, 12641, 13426, 12671, 13456, 12676, 13461, 12786, 13576, 12791, 13581, 12701, 13486, 12726, 13516, 0, 0, 12401, 13181, 0, 0, 0, 0, 0, 0, 18089, 18234, 18129, 18274, 14710, 15109, 14675, 15074, 18159, 18304, 14703, 15102, 12891, 13686, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39219, 39219, 39219, 39219, 39219, 33075, 39219, 39219, 39219, 39219, 39219, 39219, 39219, 33075, 33075, 39219, 33075, 39219, 33075, 39219, 39219, 33076, 33070, 33070, 33070, 33070, 33076, 39212, 33070, 33070, 33070, 33070, 33070, 33066, 33066, 39214, 39214, 39214, 39214, 39210, 39210, 33070, 33070, 33070, 33070, 39214, 39214, 33070, 39214, 39214, 33070, 33070, 33025, 33025, 33025, 33025, 39169, 33070, 33070, 33070, 33070, 33075, 33075, 33075, 18885, 18890, 39219, 18895, 19080, 39223, 33075, 33070, 33070, 33070, 33075, 33075, 33075, 33070, 33070, 0, 33075, 33075, 33075, 33070, 33070, 33070, 33070, 33075, 33076, 33070, 33070, 33075, 33077, 33078, 33078, 33077, 33078, 33078, 33077, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 0, 0, 0, 0, 371, 0, 0, 0, 0, 0, 17084, 0, 0, 0, 55, 0, 0, 0, 0, 0, 17009, 17554, 13824, 206, 13854, 13866, 13884, 0, 13914, 0, 13932, 13962, 15903, 40960, 0, 0, 0, 40960, 0, 40960, 0, 40960, 0, 0, 0, 0, 0, 40960, 0, 40960, 0, 0, 0, 40960, 0, 0, 0, 40960, 13902, 13950, 18453, 13998, 18495, 14016, 16007, 40960, 0, 0, 0, 40960, 0, 40960, 0, 40960, 0, 0, 0, 0, 0, 40960, 0, 40960, 0, 0, 0, 40960, 0, 0, 0, 40960, 18519, 18549, 14046, 14070, 18573, 0, 449, 467, 431, 17187, 17193, 509, 491, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 473, 494, 497, 0, 395, 458, 0, 0, 0, 425, 0, 0, 0, 0, 0, 0, 14136, 14148, 0, 14130, 0, 0, 40960, 14112, 0, 0, 0, 0, 14196, 14172, 14214, 0, 40960, 0, 0, 40960, 0, 40960, 40960, 40960, 40960, 14184, 40960, 0, 0, 0, 40960, 0, 0, 0, 0, 40960, 0, 0, 0, 40960, 0, 0, 0, 40960, 0, 40960, 0, 0, 40960, 0, 0, 40960, 0, 40960, 40960, 40960, 40960, 14316, 40960, 0, 0, 0, 40960, 0, 0, 14154, 14286, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14118, 14250, 14124, 14256, 0, 0, 14142, 14274, 40960, 40960, 14400, 14406, 14160, 14292, 14166, 14298, 0, 0, 14178, 14310, 14190, 14322, 14202, 14334, 40960, 40960, 14412, 14418, 14244, 14376, 14208, 14340, 14220, 14352, 14226, 14358, 14232, 14364, 0, 0, 14238, 14370, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7527, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33070, 33075, 33075, 33075, 33075, 33070, 33075, 33075, 33075, 33071, 33070, 33075, 33075, 33075, 33075, 33075, 33075, 33070, 33070, 33070, 33070, 33070, 33070, 33075, 33075, 33070, 33075, 33075, 33071, 33074, 33075, 33030, 33031, 33032, 33033, 33034, 33035, 33036, 33037, 33038, 33039, 33039, 33040, 33041, 33042, 0, 33043, 0, 0, 0, 0, 0, 0, 0, 0, 40960, 0, 40960, 33047, 33048, 33049, 33050, 33051, 33052, 33053, 33054, 39219, 39219, 39214, 33070, 33075, 33075, 33075, 33075, 33075, 33070, 33075, 33075, 33070, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33055, 0, 0, 0, 0, 7562, 8217, 8277, 8272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33070, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 0, 33070, 33075, 33075, 33070, 33075, 33075, 33070, 33075, 33075, 33075, 33070, 33070, 33070, 33047, 33048, 33049, 33075, 33075, 33075, 33070, 33075, 33075, 33070, 33070, 33075, 33075, 33075, 33075, 33075, 0, 0, 0, 0, 0, 40960, 11571, 40960, 11579, 40960, 11587, 40960, 11595, 40960, 11603, 0, 0, 40960, 11611, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33027, 39168, 0, 0, 0, 0, 40960, 11619, 40960, 11627, 40960, 40960, 105, 107, 111, 131, 245, 248, 1046, 133, 137, 139, 260, 263, 266, 143, 0, 151, 155, 224, 159, 254, 1050, 1054, 161, 169, 171, 1062, 299, 173, 1066, 449, 452, 455, 509, 512, 147, 165, 171, 173, 449, 452, 494, 509, 512, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 527, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 251, 135, 257, 212, 266, 141, 269, 272, 278, 284, 287, 290, 1070, 365, 296, 1074, 368, 305, 302, 308, 311, 314, 317, 320, 332, 335, 236, 338, 341, 1058, 344, 347, 181, 353, 356, 359, 467, 33075, 33075, 33070, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33070, 33075, 33075, 33078, 33067, 33070, 33066, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33076, 33074, 33074, 33070, 0, 33075, 33077, 33070, 33075, 33070, 12206, 12986, 12216, 12996, 12221, 13001, 12226, 13006, 14563, 14962, 12251, 13031, 12261, 13041, 12276, 13056, 12266, 13046, 12271, 13051, 14598, 14997, 14605, 15004, 12336, 13116, 12341, 13121, 14619, 15018, 12346, 13126, 12361, 13141, 12391, 13171, 12406, 13186, 12396, 13176, 12411, 13191, 12416, 13196, 12486, 13266, 14626, 15025, 12496, 13281, 12506, 13291, 12516, 13301, 18139, 18284, 14633, 15032, 12541, 13326, 12536, 13321, 12546, 13331, 12551, 13336, 12556, 13341, 12576, 13361, 12586, 13371, 12601, 13386, 12596, 13381, 14668, 15067, 14682, 15081, 14689, 15088, 14696, 15095, 12646, 13431, 12651, 13436, 12661, 13446, 18184, 18329, 14766, 15165, 12686, 13471, 12696, 13481, 18199, 18344, 14773, 15172, 14780, 15179, 14787, 15186, 12711, 13496, 12721, 13511, 12741, 13531, 12736, 13526, 12801, 13591, 12816, 13606, 12811, 13601, 14794, 15193, 14801, 15200, 12821, 13611, 12826, 13616, 12831, 13621, 12836, 13626, 12851, 13641, 12846, 13636, 12856, 13651, 12861, 13656, 12866, 13661, 12896, 13691, 12921, 13721, 12936, 13736, 12941, 13741, 13201, 13501, 13646, 13706, 7142, 17134, 0, 0, 0, 0, 18104, 18249, 12186, 12966, 14479, 14878, 14472, 14871, 14493, 14892, 14486, 14885, 14549, 14948, 14507, 14906, 14500, 14899, 14521, 14920, 14514, 14913, 14556, 14955, 18124, 18269, 12311, 13091, 12291, 13071, 14577, 14976, 14570, 14969, 14591, 14990, 14584, 14983, 14612, 15011, 12456, 13236, 12476, 13256, 18174, 18319, 12621, 13406, 14647, 15046, 14640, 15039, 14661, 15060, 14654, 15053, 14752, 15151, 14724, 15123, 14717, 15116, 14738, 15137, 14731, 15130, 14745, 15144, 12796, 13586, 12766, 13556, 14843, 15242, 14836, 15235, 14857, 15256, 14850, 15249, 14864, 15263, 12871, 13666, 12911, 13711, 12906, 13701, 12886, 13681, 0, 0, 0, 0, 0, 0, 18459, 18465, 18741, 18765, 18749, 18773, 18757, 18781, 18369, 18375, 18597, 18621, 18605, 18629, 18613, 18637, 18477, 18483, 15823, 15839, 15831, 15847, 0, 0, 18381, 18387, 15615, 15631, 15623, 15639, 0, 0, 18501, 18507, 18789, 18813, 18797, 18821, 18805, 18829, 18393, 18399, 18645, 18669, 18653, 18677, 18661, 18685, 18525, 18531, 15919, 15943, 15927, 15951, 15935, 15959, 18405, 18411, 15663, 15687, 15671, 15695, 15679, 15703, 18537, 18543, 15967, 15983, 15975, 15991, 0, 0, 18417, 18423, 15711, 15727, 15719, 15735, 0, 0, 18555, 18561, 16023, 16047, 16031, 16055, 16039, 16063, 0, 18429, 0, 15743, 0, 15751, 0, 15759, 18579, 18585, 18837, 18861, 18845, 18869, 18853, 18877, 18435, 18441, 18693, 18717, 18701, 18725, 18709, 18733, 18447, 17205, 13992, 17211, 18489, 17217, 14010, 17223, 14040, 17229, 14064, 17235, 18567, 17241, 0, 0, 15799, 15807, 16795, 16825, 16805, 16835, 16815, 16845, 15599, 15607, 16615, 16645, 16625, 16655, 16635, 16665, 15871, 15879, 16855, 16885, 16865, 16895, 16875, 16905, 15647, 15655, 16675, 16705, 16685, 16715, 16695, 16725, 16087, 16095, 16915, 16945, 16925, 16955, 16935, 16965, 15767, 15775, 16735, 16765, 16745, 16775, 16755, 16785, 13980, 13974, 15783, 13986, 15791, 0, 18471, 15815, 13836, 13830, 13818, 17157, 13842, 17054, 470, 17054, 17079, 17561, 15855, 14004, 15863, 0, 18513, 15887, 13848, 17163, 13860, 17169, 13872, 17568, 17575, 17582, 14028, 14022, 15895, 17659, 0, 0, 14034, 15911, 13896, 13890, 13878, 17175, 0, 17589, 17596, 17603, 14082, 14076, 15999, 17667, 14052, 14058, 14088, 16015, 13944, 13938, 13926, 17187, 13920, 17547, 17554, 129, 0, 0, 16071, 14094, 16079, 0, 18591, 16103, 13908, 17181, 13956, 17199, 13968, 17009, 17059, 0, 7134, 7138, 71, 7258, 0, 7150, 7154, 233, 0, 7262, 143, 81, 81, 81, 145, 218, 83, 83, 89, 153, 0, 93, 6547, 0, 0, 97, 99, 101, 101, 101, 0, 0, 6565, 7118, 6574, 0, 117, 0, 443, 0, 117, 0, 87, 17129, 69, 71, 0, 139, 75, 77, 0, 91, 159, 536, 539, 542, 545, 147, 0, 7070, 491, 452, 380, 419, 1126, 0, 0, 0, 0, 73, 137, 139, 147, 149, 0, 0, 0, 0, 0, 0, 8756, 8768, 8948, 8732, 8864, 8744, 8870, 8894, 8906, 8750, 8912, 8762, 8900, 8918, 8924, 7362, 83, 6493, 7082, 6502, 109, 6577, 7126, 7502, 6505, 113, 6589, 7130, 89, 71, 73, 91, 147, 6634, 7198, 6643, 173, 6760, 7250, 7522, 6646, 177, 6763, 7254, 153, 135, 137, 155, 0, 15389, 0, 40960, 15396, 40960, 0, 15403, 40960, 15410, 0, 0, 0, 40960, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12156, 40960, 15424, 0, 40960, 40960, 0, 0, 0, 0, 0, 0, 0, 15417, 12151, 12161, 15431, 15438, 40960, 40960, 15445, 15452, 40960, 40960, 15459, 15466, 40960, 40960, 40960, 40960, 0, 0, 15473, 15480, 40960, 40960, 15501, 15508, 40960, 40960, 15515, 15522, 0, 0, 0, 0, 0, 0, 0, 40960, 40960, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40960, 0, 0, 0, 0, 0, 40960, 40960, 0, 40960, 15543, 15550, 15557, 15564, 0, 0, 40960, 40960, 40960, 40960, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 37, 39, 41, 43, 45, 47, 49, 51, 6277, 6280, 6283, 6286, 6289, 6292, 6295, 6298, 6301, 6304, 6313, 6766, 6770, 6774, 6778, 6782, 6786, 6790, 6794, 6798, 7302, 7307, 7312, 7317, 7322, 7327, 7332, 7337, 7342, 7347, 7352, 6274, 6310, 6346, 6382, 6418, 6427, 6433, 6439, 6445, 7014, 7018, 7022, 7026, 7030, 7034, 7038, 7042, 7046, 7050, 7054, 6906, 6910, 6914, 6918, 6922, 6926, 6930, 6934, 6938, 6942, 6946, 6950, 6954, 6958, 6962, 6966, 6970, 6974, 6978, 6982, 6986, 6990, 6994, 6998, 7002, 7006, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 1730, 1766, 1778, 1794, 1802, 1814, 1822, 1830, 1842, 1926, 1950, 1966, 1982, 1998, 2014, 2046, 2050, 2054, 2106, 2146, 2162, 2170, 2174, 2186, 2214, 2218, 2242, 2246, 2254, 2270, 2426, 2446, 2510, 2530, 2538, 2542, 2558, 2586, 2630, 2642, 2674, 2686, 2690, 2694, 2718, 2722, 2766, 2778, 2786, 2794, 2810, 2818, 2826, 2870, 2874, 2882, 2886, 2894, 2902, 2918, 2946, 3066, 3086, 3090, 3218, 3222, 3242, 3246, 3254, 3262, 3270, 3282, 3322, 3338, 3358, 3470, 3482, 3498, 3510, 3522, 3530, 3534, 3538, 3542, 3546, 3730, 3802, 3814, 3818, 3822, 3826, 3834, 3838, 3858, 3886, 3894, 3958, 3962, 3970, 3974, 3982, 3986, 4022, 4026, 4054, 4058, 4062, 4066, 4086, 4122, 4126, 4130, 4166, 4230, 4234, 4266, 4282, 4290, 4322, 4358, 4426, 4434, 4454, 4466, 4474, 4482, 4486, 4490, 4514, 4518, 4546, 4554, 4562, 4566, 4578, 4586, 4590, 4594, 4602, 4606, 4766, 4786, 4838, 4842, 4850, 4894, 4902, 4910, 4918, 4978, 4982, 4990, 4994, 4998, 5042, 5046, 5054, 5074, 5078, 5106, 5114, 5118, 5154, 5186, 5206, 5210, 5218, 5262, 5266, 5282, 5318, 5330, 5346, 5370, 5378, 5382, 5386, 5390, 5402, 5406, 5414, 5442, 5446, 5450, 5474, 5478, 5486, 5506, 5510, 5514, 5522, 5526, 0, 0, 0, 0, 0, 0, 40960, 0, 0, 0, 0, 40960, 16159, 40960, 16167, 40960, 16175, 40960, 16183, 40960, 16191, 40960, 16199, 40960, 16207, 40960, 16215, 40960, 16223, 40960, 16231, 40960, 16239, 40960, 16247, 0, 40960, 16255, 40960, 16263, 40960, 16271, 0, 0, 0, 0, 0, 40960, 16279, 16287, 40960, 16295, 16303, 40960, 16311, 16319, 40960, 16327, 16335, 40960, 16343, 16351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16151, 0, 0, 0, 0, 39172, 39172, 17139, 17145, 40960, 16359, 9914, 0, 0, 0, 0, 0, 0, 40960, 0, 0, 0, 0, 40960, 16375, 40960, 16383, 40960, 16391, 40960, 16399, 40960, 16407, 40960, 16415, 40960, 16423, 40960, 16431, 40960, 16439, 40960, 16447, 40960, 16455, 40960, 16463, 0, 40960, 16471, 40960, 16479, 40960, 16487, 0, 0, 0, 0, 0, 40960, 16495, 16503, 40960, 16511, 16519, 40960, 16527, 16535, 40960, 16543, 16551, 40960, 16559, 16567, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40960, 40960, 40960, 40960, 0, 16367, 0, 0, 16575, 16583, 16591, 16599, 0, 0, 40960, 16607, 9935, 874, 814, 818, 822, 894, 826, 830, 834, 838, 842, 846, 850, 854, 858, 862, 18900, 18906, 18912, 18918, 18924, 18930, 18936, 18942, 18948, 18954, 18960, 18966, 18972, 18978, 18984, 18990, 18996, 19002, 19008, 19014, 19020, 966, 866, 870, 1002, 1006, 1010, 1014, 1018, 1022, 1026, 878, 1030, 1034, 882, 886, 890, 898, 902, 906, 910, 914, 918, 922, 926, 930, 934, 938, 942, 946, 950, 1038, 1042, 954, 958, 962, 970, 974, 978, 982, 986, 990, 994, 998, 0, 0, 0, 1730, 1822, 1742, 2430, 1746, 1770, 1750, 3990, 1802, 1758, 1734, 2562, 2450, 1842, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8282, 8288, 8294, 8300, 8306, 8312, 8318, 8324, 8330, 8336, 8342, 8348, 8354, 8360, 10035, 10044, 10053, 10062, 10071, 10080, 10089, 10098, 10107, 10125, 10134, 10143, 10152, 10161, 10116, 11193, 11002, 0, 8366, 8390, 8378, 8462, 8396, 8426, 8372, 8420, 8384, 8438, 8486, 8516, 8510, 8498, 8576, 8468, 8480, 8504, 8492, 8534, 8450, 8522, 8564, 8540, 8432, 8402, 8456, 8474, 8528, 8408, 8570, 8444, 8546, 8414, 8552, 8558, 2354, 2822, 3242, 4298, 0, 0, 0, 0, 0, 0, 0, 0, 7114, 6316, 6319, 6322, 6325, 6328, 6331, 6334, 6337, 6340, 6349, 6352, 6355, 6358, 6361, 6364, 790, 798, 802, 810, 814, 818, 826, 834, 838, 846, 850, 854, 858, 862, 11823, 11831, 11839, 11847, 11855, 11863, 11871, 11879, 11895, 11903, 11911, 11919, 11927, 11935, 12010, 11954, 11887, 0, 1730, 1822, 1742, 2430, 1826, 1970, 1738, 1966, 1806, 2186, 3338, 3730, 3546, 3358, 5218, 2446, 3282, 3406, 3342, 4174, 2302, 3846, 5002, 4194, 2118, 4242, 3998, 2586, 5138, 1922, 2222, 3578, 5418, 1862, 2006, 3486, 1746, 1770, 1750, 2782, 2290, 2178, 2650, 2638, 4078, 1858, 5022, 2206, 2550, 6367, 6370, 6373, 6376, 6385, 6388, 6391, 6394, 6397, 6400, 6403, 6406, 6409, 6412, 6421, 7372, 7387, 7402, 7417, 7432, 7447, 7462, 7477, 7492, 8594, 8612, 8630, 6487, 7178, 6616, 7086, 1230, 1238, 1246, 1254, 1262, 1266, 1270, 1274, 1278, 1282, 1286, 1290, 1294, 1298, 1302, 1306, 1310, 1318, 1322, 1326, 1330, 1334, 1338, 1342, 1346, 1350, 1354, 1358, 1362, 1366, 1370, 1374, 1378, 1382, 1386, 1394, 1402, 1410, 1414, 1418, 1422, 1426, 1430, 1434, 1438, 1442, 1446, 9984, 11033, 10677, 11049, 10381, 12027, 10391, 10401, 12095, 10690, 10411, 10421, 10431, 10729, 10742, 10703, 10716, 11968, 10755, 10768, 11211, 9921, 11230, 11249, 11065, 10781, 11268, 11287, 10794, 10441, 10451, 11982, 10807, 11081, 12044, 10461, 10471, 10820, 10481, 10491, 9942, 9949, 10501, 10511, 11306, 10833, 11097, 11325, 10846, 10531, 10521, 12115, 10859, 11344, 10541, 11113, 10551, 10885, 10561, 10898, 12061, 10872, 11129, 10911, 9956, 12078, 10571, 10581, 10924, 10591, 10601, 10611, 11145, 10937, 9963, 11363, 11943, 11161, 10950, 11996, 10621, 10631, 10963, 9970, 10976, 11177, 9977, 11382, 10641, 7357, 7377, 7392, 7407, 7422, 7437, 7452, 7467, 7482, 7497, 8600, 8618, 8636, 8648, 8660, 8672, 8684, 8696, 8708, 8720, 8780, 8792, 8804, 8816, 8828, 7194, 6604, 6457, 7146, 6733, 6748, 6610, 7170, 7174, 6499, 9998, 10012, 9991, 10005, 10989, 6736, 6712, 7270, 6688, 6649, 6508, 6523, 6475, 7158, 7512, 6739, 6715, 7274, 7286, 6700, 6658, 6490, 7202, 7094, 7074, 7122, 7290, 6703, 6607, 6661, 6628, 6727, 7294, 6706, 6598, 6664, 7234, 7162, 6682, 7210, 7238, 7166, 6685, 7214, 8942, 8962, 6556, 7206, 7098, 7078, 7246, 10019, 10170, 6751, 6730, 7298, 6709, 6742, 6718, 7278, 6691, 6652, 6535, 6745, 6721, 7282, 6694, 6655, 6538, 7218, 7102, 7507, 6460, 6592, 6595, 8955, 7066, 6601, 6478, 6631, 6481, 6640, 6511, 6514, 6667, 6673, 6676, 7222, 6679, 6697, 7230, 7242, 6550, 7517, 7106, 6553, 6754, 6571, 6586, 8936, 8930, 7367, 7382, 7397, 7412, 7427, 7442, 7457, 7472, 7487, 8588, 8606, 8624, 8642, 8654, 8666, 8678, 8690, 8702, 8714, 8774, 8786, 8798, 8810, 8822, 8834, 8840, 8846, 8852, 8858, 8876, 8882, 7190, 4986, 3326, 5078, 5026, 3674, 1774, 2274, 5678, 5678, 2574, 5218, 2374, 2570, 3058, 4050, 4450, 4762, 4822, 4874, 5150, 3446, 3586, 3758, 3910, 4706, 5194, 5494, 1810, 2230, 3466, 3794, 4758, 5574, 2742, 3706, 4742, 4890, 3110, 4542, 4834, 2850, 3346, 3610, 3870, 5162, 1874, 2026, 2134, 3214, 3458, 3790, 4082, 4474, 4750, 4774, 5066, 5362, 5542, 5570, 4142, 4206, 4390, 4678, 5246, 5582, 4942, 2506, 2878, 4318, 4510, 3842, 4150, 5018, 5354, 2502, 2706, 3450, 3630, 3682, 4374, 4414, 5290, 2130, 4522, 2038, 2034, 4250, 4394, 4702, 5298, 4970, 3114, 3446, 4954, 1786, 2662, 2966, 3890, 4018, 2166, 4158, 1890, 2938, 1754, 3566, 3238, 4370, 2250, 2486, 4094, 4710, 4926, 3514, 5114, 3558, 3130, 4638, 3162, 4014, 1838, 1962, 2030, 3414, 4350, 4598, 4938, 5214, 2142, 2322, 2586, 2866, 3266, 3710, 4162, 5274, 5502, 5586, 5610, 2106, 3318, 3494, 5102, 2814, 3034, 3062, 3206, 3694, 3770, 3946, 4238, 4402, 4502, 5086, 4718, 5126, 5250, 2066, 2110, 2342, 3754, 4854, 4926, 2846, 2958, 3154, 3506, 4314, 3878, 1854, 2434, 2662, 2762, 2970, 3906, 3934, 4462, 4494, 5222, 5350, 5366, 5426, 1878, 4226, 5202, 5326, 2994, 1818, 1914, 2666, 2698, 3250, 3446, 3782, 4046, 4730, 5146, 5670, 3302, 5286, 2102, 3378, 3390, 3602, 3658, 3918, 4010, 4138, 4366, 5438, 1970, 3078, 5302, 1898, 2734, 3634, 5090, 2922, 3002, 3398, 3890, 5310, 2074, 2306, 2714, 3286, 3362, 3426, 3574, 3914, 4030, 4442, 4858, 4870, 5210, 5338, 2182, 3662, 2310, 3786, 3950, 4746, 5314, 5550, 5590, 3386, 3626, 4550, 4282, 4294, 4330, 3866, 3746, 4966, 1846, 4654, 2078, 2062, 2830, 3118, 4342, 2646, 3590, 3314, 5098, 4842, 5294, 4902, 2858, 1930, 2398, 0, 0, 2482, 0, 3298, 0, 0, 2042, 3874, 4070, 4170, 4198, 4202, 4222, 5374, 4334, 4466, 0, 4754, 0, 4950, 0, 0, 5130, 5174, 0, 0, 0, 5458, 5462, 5466, 5566, 5166, 5322, 1882, 1918, 1938, 2126, 2138, 2202, 2382, 2410, 2418, 2478, 2490, 2710, 2718, 2982, 3022, 3030, 3054, 3226, 3274, 3306, 3418, 3614, 3642, 3690, 3774, 3806, 3922, 4146, 4174, 4182, 4178, 4186, 4190, 4194, 4214, 4218, 4254, 4274, 4302, 4402, 4410, 4418, 4438, 4478, 4558, 4610, 4610, 4714, 4882, 4906, 4958, 4962, 5030, 5034, 5122, 5130, 5342, 5410, 5434, 2974, 5921, 4582, 0, 0, 1762, 2022, 1958, 1870, 1934, 1978, 2122, 2150, 2382, 2362, 2378, 2406, 2482, 2498, 2566, 2578, 2606, 2622, 2854, 2862, 2910, 2942, 2990, 3014, 2998, 3030, 3018, 3054, 3082, 3170, 3182, 3190, 3230, 3298, 3346, 3350, 3370, 3498, 3514, 3602, 3678, 3670, 3690, 3718, 3774, 4118, 3810, 3862, 3874, 3938, 3966, 4002, 4038, 4042, 4070, 4074, 4090, 4110, 4106, 4154, 4278, 4302, 4326, 4382, 4402, 4430, 4478, 4658, 4698, 4814, 4886, 4898, 4906, 4930, 4950, 4934, 4958, 4954, 4946, 4962, 4974, 5034, 5094, 5142, 5198, 5230, 5306, 5342, 5374, 5394, 5410, 5422, 5434, 5518, 5678, 5816, 5811, 5861, 1546, 1586, 1590, 5991, 6036, 6156, 5658, 5674, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6619, 6622, 6625, 7182, 7186, 6757, 6757, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7547, 7532, 7537, 7552, 7542, 0, 0, 0, 0, 0, 17319, 33046, 17433, 560, 536, 545, 548, 551, 554, 557, 563, 566, 23, 17415, 17421, 17675, 17683, 17247, 17253, 17259, 17265, 17277, 17283, 17289, 17301, 17307, 0, 17313, 17325, 17331, 17337, 17349, 0, 17355, 0, 17361, 17367, 0, 17373, 17379, 0, 17391, 17397, 17403, 17409, 17427, 17295, 17271, 17343, 17385, 7557, 668, 668, 677, 677, 677, 677, 680, 680, 680, 680, 686, 686, 686, 686, 674, 674, 674, 674, 683, 683, 683, 683, 671, 671, 671, 671, 722, 722, 722, 722, 725, 725, 725, 725, 692, 692, 692, 692, 689, 689, 689, 689, 695, 695, 695, 695, 698, 698, 698, 698, 707, 707, 704, 704, 710, 710, 701, 701, 716, 716, 713, 713, 728, 728, 728, 728, 734, 734, 734, 734, 740, 740, 740, 740, 737, 737, 737, 737, 743, 743, 746, 746, 746, 746, 17541, 17541, 752, 752, 752, 752, 749, 749, 749, 749, 779, 779, 17535, 17535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 731, 731, 731, 731, 761, 761, 758, 758, 764, 764, 8277, 770, 770, 755, 755, 767, 767, 776, 776, 776, 776, 656, 656, 9648, 9648, 9760, 9760, 9711, 9711, 9739, 9739, 9732, 9732, 9746, 9746, 9753, 9753, 9753, 9718, 9718, 9718, 773, 773, 773, 773, 9655, 9662, 9690, 9718, 9725, 7567, 7572, 7577, 7592, 7607, 7612, 7617, 7622, 7627, 7642, 7657, 7662, 7667, 7682, 7697, 7702, 7707, 7712, 7727, 7732, 7747, 7752, 7757, 7772, 7777, 7782, 7792, 7852, 7867, 7882, 7887, 7892, 7902, 7917, 7922, 7937, 7942, 7947, 7962, 7967, 7982, 7987, 7992, 7997, 8002, 8007, 8012, 8017, 8022, 8027, 8032, 8037, 8042, 8047, 8052, 8057, 8062, 8067, 8077, 8082, 8087, 8092, 8102, 8107, 8117, 8122, 8127, 8132, 8137, 8142, 8147, 8152, 8157, 8172, 8187, 8192, 8197, 8202, 8207, 8212, 8222, 8227, 8232, 8247, 8262, 8267, 17463, 17469, 17523, 17610, 17617, 17624, 17631, 17638, 17645, 9676, 9683, 9690, 9697, 9718, 9725, 7582, 7587, 7592, 7597, 7607, 7612, 7632, 7637, 7642, 7647, 7657, 7662, 7672, 7677, 7682, 7687, 7697, 7702, 8002, 8007, 8022, 8027, 8032, 8052, 8057, 8062, 8067, 8092, 8102, 8107, 8112, 8132, 8162, 8167, 8172, 8177, 8187, 8192, 17523, 8237, 8242, 8247, 8252, 8262, 8267, 9655, 9662, 9669, 9690, 9704, 7567, 7572, 7577, 7592, 7602, 7617, 7622, 7627, 7642, 7652, 7682, 7707, 7712, 7727, 7732, 7747, 7757, 7772, 7777, 7782, 7792, 7852, 7857, 7867, 7882, 7887, 7892, 7902, 7917, 7937, 7942, 7947, 7962, 7967, 7982, 7987, 7992, 7997, 8012, 8017, 8037, 8042, 8047, 8052, 8057, 8077, 8082, 8087, 8092, 8097, 8117, 8122, 8127, 8132, 8147, 8152, 8157, 8172, 8182, 8197, 8202, 17511, 8222, 8227, 8232, 8247, 8257, 9690, 9704, 7592, 7602, 7642, 7652, 7682, 7692, 7792, 7797, 7832, 7837, 8052, 8057, 8092, 8172, 8182, 8247, 8257, 17691, 17699, 17707, 7927, 7932, 7952, 7957, 7972, 7977, 7802, 7807, 7842, 7847, 7737, 7742, 7717, 7722, 7762, 7767, 7872, 7877, 7907, 7912, 7812, 7817, 7822, 7832, 7827, 7787, 7862, 7897, 7927, 7932, 7952, 7957, 7972, 7977, 7802, 7807, 7842, 7847, 7737, 7742, 7717, 7722, 7762, 7767, 7872, 7877, 7907, 7912, 7812, 7817, 7822, 7832, 7827, 7787, 7862, 7897, 7812, 7817, 7822, 7832, 7797, 7837, 7922, 7772, 7777, 7782, 7812, 7817, 7822, 7922, 7937, 17439, 17439, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8983, 9004, 9004, 9011, 9018, 9039, 9046, 9053, 9088, 9088, 9123, 9116, 9144, 9130, 9137, 9172, 9172, 9165, 9179, 9179, 9221, 9221, 9249, 9193, 9193, 9186, 9207, 9207, 9214, 9214, 9256, 9270, 9270, 9277, 9277, 9284, 9291, 9298, 9305, 9305, 9312, 9326, 9340, 9333, 9347, 9347, 9368, 9375, 9424, 9438, 9431, 9403, 9403, 9445, 9445, 9452, 9452, 9494, 9501, 9508, 9466, 9480, 9515, 9522, 0, 0, 9473, 9606, 9613, 9571, 9578, 9550, 9550, 9557, 9599, 9592, 9634, 9634, 8976, 8997, 8990, 9032, 9025, 9067, 9060, 9102, 9074, 9095, 9151, 9228, 9200, 9263, 9417, 9459, 9627, 9620, 9641, 9536, 9382, 9585, 9368, 9424, 9319, 9396, 9543, 9529, 9410, 9389, 9410, 9543, 9081, 9109, 9487, 9354, 8969, 9389, 9298, 9249, 9158, 9564, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9242, 9361, 10188, 10179, 10233, 10215, 10197, 10224, 10242, 9235, 11401, 11017, 10206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 1158, 1162, 53, 55, 3, 63, 1218, 1222, 7010, 0, 0, 0, 0, 0, 0, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33070, 33070, 33070, 33070, 33070, 33070, 33070, 33075, 33075, 6262, 1094, 1090, 127, 127, 17, 19, 183, 187, 1210, 1214, 1198, 1202, 1174, 1178, 1166, 1170, 1182, 1186, 1190, 1194, 0, 0, 119, 123, 17024, 17024, 17024, 17024, 127, 127, 127, 25, 1158, 29, 0, 55, 53, 63, 3, 1094, 17, 19, 183, 187, 1210, 1214, 7, 13, 21, 23, 27, 57, 61, 59, 0, 121, 9, 11, 65, 0, 0, 0, 0, 17089, 17475, 17094, 0, 17099, 0, 17104, 17481, 17109, 17487, 17114, 17493, 17119, 17499, 17124, 17505, 569, 17445, 17445, 17451, 17451, 17517, 17517, 17457, 17457, 17529, 17529, 17529, 17529, 572, 572, 575, 575, 575, 575, 578, 578, 581, 581, 581, 581, 584, 584, 584, 584, 587, 587, 587, 587, 590, 590, 590, 590, 593, 593, 593, 593, 596, 596, 599, 599, 602, 602, 605, 605, 608, 608, 608, 608, 611, 611, 611, 611, 614, 614, 614, 614, 617, 617, 617, 617, 620, 620, 620, 620, 623, 623, 623, 623, 626, 626, 626, 626, 629, 629, 629, 629, 632, 632, 632, 632, 635, 635, 635, 635, 638, 638, 638, 638, 641, 641, 641, 641, 644, 644, 644, 644, 647, 647, 647, 647, 650, 650, 650, 650, 653, 653, 656, 656, 659, 659, 659, 659, 11799, 11799, 11807, 11807, 11815, 11815, 8072, 8072, 0, 0, 0, 129, 131, 133, 135, 137, 139, 141, 143, 145, 147, 149, 151, 153, 155, 157, 159, 161, 163, 165, 167, 169, 171, 173, 175, 177, 179, 181, 183, 185, 187, 189, 1146, 1150, 1162, 1182, 1186, 1158, 1454, 1446, 1226, 1234, 1242, 1250, 1258, 1390, 1398, 1406, 1314, 1458, 1230, 1238, 1246, 1254, 1262, 1266, 1270, 1274, 1278, 1282, 1286, 1290, 1294, 1298, 1302, 1306, 1310, 1318, 1322, 1326, 1330, 1334, 1338, 1342, 1346, 1350, 1354, 1358, 1362, 1366, 1370, 1374, 1378, 1382, 1386, 1394, 1402, 1410, 1414, 1418, 1422, 1426, 1430, 1434, 1450, 19087, 19093, 966, 790, 794, 19026, 798, 19032, 19038, 802, 806, 810, 19044, 19050, 19056, 19062, 19068, 19074, 874, 814, 818, 822, 894, 826, 830, 834, 838, 842, 846, 850, 854, 858, 862, 0, 0, 0, 18900, 18906, 18912, 18918, 18924, 18930, 0, 0, 18936, 18942, 18948, 18954, 18960, 18966, 0, 0, 18972, 18978, 18984, 18990, 18996, 19002, 0, 0, 19008, 19014, 19020, 0, 0, 0, 191, 194, 203, 17019, 200, 197, 1098, 0, 1134, 1102, 1106, 1110, 1114, 1138, 1142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 101, 103, 105, 107, 109, 111, 113, 115, 117, 131, 133, 135, 137, 139, 141, 143, 145, 147, 149, 151, 153, 155, 157, 159, 161, 163, 165, 167, 169, 171, 173, 175, 177, 179, 181, 221, 242, 0, 0, 374, 377, 380, 383, 386, 389, 392, 395, 398, 401, 404, 407, 410, 413, 416, 419, 422, 395, 425, 428, 431, 434, 437, 440, 512, 515, 518, 1118, 458, 467, 473, 509, 494, 491, 521, 524, 0, 0, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 572, 575, 587, 596, 0, 653, 605, 590, 620, 659, 638, 641, 644, 647, 608, 626, 632, 614, 635, 602, 611, 581, 584, 593, 599, 617, 623, 629, 662, 743, 719, 665, 0, 575, 587, 0, 650, 0, 0, 590, 0, 659, 638, 641, 644, 647, 608, 626, 632, 614, 635, 0, 611, 581, 584, 593, 0, 617, 0, 629, 0, 0, 0, 0, 0, 0, 587, 0, 0, 0, 0, 590, 0, 659, 0, 641, 0, 647, 608, 626, 0, 614, 635, 0, 611, 0, 0, 593, 0, 617, 0, 629, 0, 743, 0, 665, 0, 575, 587, 0, 650, 0, 0, 590, 620, 659, 638, 0, 644, 647, 608, 626, 632, 614, 635, 0, 611, 581, 584, 593, 0, 617, 623, 629, 662, 0, 719, 0, 572, 575, 587, 596, 650, 653, 605, 590, 620, 659, 0, 641, 644, 647, 608, 626, 632, 614, 635, 602, 611, 581, 584, 593, 599, 617, 623, 629, 0, 0, 0, 0, 0, 575, 587, 596, 0, 653, 605, 590, 620, 659, 0, 641, 644, 647, 608, 626, 632, 614, 635, 602, 611, 581, 584, 593, 599, 617, 623, 629, 0, 0, 0, 0, 6268, 6265, 6271, 6307, 6343, 6379, 6415, 6424, 6430, 6436, 6442, 0, 0, 0, 0, 0, 6802, 6806, 6810, 6814, 6818, 6822, 6826, 6830, 6834, 6838, 6842, 6846, 6850, 6854, 6858, 6862, 6866, 6870, 6874, 6878, 6882, 6886, 6890, 6894, 6898, 6902, 10027, 71, 101, 6463, 6583, 0, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 9907, 9928, 1286, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3090, 2634, 2262, 17883, 1822, 2546, 4914, 2562, 1834, 3290, 3762, 3250, 2090, 2926, 1986, 3258, 2070, 4378, 3974, 5006, 2518, 2318, 3686, 3102, 3146, 1730, 1742, 5134, 2782, 1770, 2290, 3134, 5046, 3094, 4210, 4270, 2298, 3654, 3342, 3338, 3994, 2094, 2394, 5190, 0, 0, 0, 0, 1790, 1782, 1798, 5706, 1866, 1882, 1886, 1894, 1902, 1906, 1918, 1910, 1462, 5726, 1938, 1942, 1946, 1974, 5711, 1466, 1954, 1986, 5721, 2002, 2010, 1850, 2018, 2022, 6196, 2050, 2058, 1474, 2082, 2086, 2094, 2098, 1478, 2122, 2126, 2138, 2150, 2154, 2158, 2166, 2198, 2202, 2210, 2226, 2234, 2238, 2238, 2238, 5741, 3734, 2258, 2266, 5746, 2278, 2286, 2294, 2334, 2314, 2326, 2330, 2338, 2346, 2350, 2358, 2366, 2370, 2370, 2378, 2386, 2390, 2402, 2438, 2410, 2442, 2414, 2422, 2062, 2514, 2458, 2462, 2466, 2454, 2474, 2470, 2494, 5751, 2522, 2526, 2534, 2546, 2554, 2582, 5756, 5761, 2594, 2598, 2602, 2590, 2610, 1482, 1486, 2618, 2626, 2626, 5766, 2654, 2658, 2662, 2670, 5771, 2678, 2682, 2898, 2690, 1490, 2702, 2718, 2730, 2726, 5781, 2738, 5786, 2750, 2746, 2754, 2770, 2774, 1494, 2790, 2798, 2802, 2806, 1498, 5791, 1502, 2834, 2838, 2842, 2850, 6246, 2874, 5801, 5801, 4570, 2890, 2890, 1506, 5836, 6046, 2906, 2914, 1510, 2934, 2950, 2954, 2962, 2978, 1518, 1514, 2982, 5806, 2986, 3006, 3010, 3014, 3010, 3026, 3030, 3046, 3038, 3042, 3050, 3054, 3058, 3070, 3074, 3098, 3106, 3122, 3142, 5821, 3138, 3126, 3150, 3158, 3178, 5826, 3186, 3174, 3166, 1522, 3194, 3202, 3210, 3198, 1526, 3226, 3234, 5831, 3278, 3330, 3294, 1538, 3306, 1534, 1530, 1990, 1994, 3334, 3310, 4526, 1638, 3346, 3350, 3354, 3374, 3366, 5856, 1542, 3394, 3382, 3410, 3418, 5866, 3422, 3402, 3430, 1546, 3434, 3438, 3442, 3454, 5871, 3462, 1550, 3474, 5876, 3478, 1554, 3490, 3502, 3514, 3518, 5881, 5776, 5886, 3550, 5891, 3562, 3570, 3554, 3582, 3598, 3614, 3602, 3606, 3618, 3622, 5896, 3594, 3646, 3650, 1558, 3670, 3666, 5901, 3638, 3698, 5906, 5911, 3702, 3722, 3718, 3714, 1562, 3726, 3742, 3738, 3750, 5716, 3766, 5916, 3778, 5926, 3798, 3810, 3830, 5931, 3850, 3854, 5936, 5941, 3882, 3898, 1566, 3902, 1570, 1570, 3926, 3930, 3938, 3942, 3954, 1574, 3978, 5946, 4006, 5951, 4018, 5796, 4034, 5956, 5961, 5966, 1578, 1582, 4090, 5976, 5971, 5981, 5986, 4098, 4102, 4102, 4110, 1590, 4114, 1594, 1598, 5996, 4134, 4142, 4154, 1602, 6001, 4190, 6006, 6011, 4222, 4246, 1606, 4254, 4258, 4262, 6016, 6021, 6021, 4286, 1610, 6026, 4306, 4310, 1614, 6031, 4338, 1618, 4354, 4346, 4362, 6041, 4386, 1622, 4398, 4406, 4422, 1626, 6051, 6056, 1630, 6061, 4446, 6066, 4458, 4470, 4478, 6071, 6076, 4498, 6081, 4506, 5841, 1634, 4530, 4534, 1642, 4538, 2614, 6086, 6091, 5846, 5851, 4570, 4574, 5110, 1646, 4618, 4614, 4622, 2114, 4626, 4630, 4634, 4642, 6096, 4638, 4646, 4666, 4670, 4650, 4674, 4694, 4714, 4662, 4682, 4686, 4690, 6101, 6111, 6106, 1650, 4722, 4726, 4734, 6131, 4738, 6116, 1654, 1658, 6121, 6126, 1662, 4770, 4774, 4778, 4782, 4794, 4790, 4802, 4798, 4814, 4806, 4810, 4818, 1666, 4826, 4830, 1670, 4846, 4850, 6136, 4862, 4866, 1674, 4878, 1470, 6141, 6146, 1678, 1682, 4922, 4946, 4974, 4990, 6151, 5010, 5014, 5038, 5050, 6161, 5731, 5062, 5058, 5070, 5736, 5082, 5094, 6166, 6171, 5158, 5170, 5178, 6176, 5182, 5226, 5238, 5242, 5234, 5254, 5258, 6181, 5270, 1686, 5278, 6186, 1690, 5334, 2758, 5358, 6191, 6201, 1694, 1698, 5398, 6206, 1702, 6211, 5422, 5422, 5430, 6216, 5454, 1706, 5470, 5482, 5490, 5498, 1710, 6221, 5518, 5546, 5558, 1714, 1718, 5562, 6226, 1722, 6231, 6236, 6241, 5598, 1726, 5618, 5626, 5630, 5638, 5646, 5654, 6251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]); - nfkcIndex = $toNativeArray($kindUint16, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 1, 2, 3, 93, 4, 5, 0, 94, 95, 6, 7, 8, 9, 10, 96, 97, 11, 0, 0, 12, 98, 99, 13, 0, 100, 101, 102, 0, 103, 2, 3, 4, 5, 0, 0, 0, 0, 0, 0, 6, 7, 8, 9, 0, 10, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, 105, 0, 14, 106, 107, 108, 109, 110, 111, 112, 113, 108, 114, 115, 116, 0, 117, 118, 119, 120, 121, 0, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 0, 132, 133, 134, 135, 136, 137, 0, 0, 0, 0, 0, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 139, 0, 0, 140, 0, 0, 141, 0, 142, 0, 0, 0, 143, 144, 145, 146, 15, 147, 148, 149, 150, 0, 0, 151, 152, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 153, 154, 155, 156, 27, 28, 157, 158, 159, 29, 30, 160, 161, 0, 0, 0, 0, 31, 32, 162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 163, 164, 0, 165, 0, 0, 0, 0, 0, 166, 0, 167, 0, 168, 0, 169, 0, 0, 170, 171, 33, 34, 35, 172, 173, 36, 37, 38, 174, 39, 40, 0, 41, 42, 43, 44, 45, 46, 47, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 175, 176, 177, 0, 178, 0, 179, 180, 0, 0, 181, 182, 183, 184, 185, 0, 0, 186, 187, 0, 188, 0, 189, 190, 191, 192, 193, 194, 195, 196, 190, 191, 192, 193, 194, 195, 196, 190, 191, 192, 193, 194, 195, 196, 190, 191, 192, 193, 194, 195, 196, 190, 191, 192, 193, 194, 195, 196, 190, 191, 192, 193, 194, 195, 196, 190, 191, 192, 193, 194, 195, 196, 190, 191, 192, 193, 194, 195, 196, 190, 191, 192, 193, 194, 195, 196, 190, 191, 192, 193, 194, 195, 196, 190, 191, 192, 193, 194, 195, 196, 190, 191, 192, 193, 194, 195, 196, 190, 191, 192, 193, 194, 195, 196, 190, 191, 192, 193, 194, 195, 196, 190, 191, 192, 193, 194, 195, 196, 190, 191, 192, 193, 194, 195, 196, 190, 191, 192, 193, 194, 195, 196, 190, 191, 192, 193, 194, 195, 196, 190, 191, 192, 193, 194, 195, 196, 190, 191, 192, 193, 194, 195, 196, 190, 191, 192, 193, 194, 195, 196, 190, 191, 192, 193, 194, 195, 196, 190, 191, 192, 193, 194, 195, 196, 190, 191, 192, 193, 194, 195, 196, 190, 191, 192, 193, 194, 195, 197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 198, 73, 74, 75, 0, 0, 0, 0, 0, 0, 0, 199, 0, 0, 0, 200, 0, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 202, 0, 0, 203, 0, 0, 0, 0, 0, 0, 0, 0, 204, 0, 0, 0, 0, 0, 205, 0, 0, 206, 0, 0, 0, 207, 208, 0, 209, 184, 0, 210, 211, 0, 0, 212, 213, 214, 0, 0, 0, 215, 216, 217, 0, 0, 218, 219, 220, 0, 221, 0, 222, 0, 0, 0, 223, 0, 0, 0, 224, 225, 0, 226, 227, 228, 229, 0, 0, 0, 0, 0, 220, 0, 0, 0, 0, 230, 231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, 237, 238, 0, 239, 0, 0, 0, 0, 0, 0, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 76, 250, 251, 252, 253, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 254, 0, 0, 0, 233, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 0, 257, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 79, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 258, 259, 0, 82, 260, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 84, 85, 86, 87, 88, 89, 90, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 12, 0, 0, 0, 0, 13, 0, 0, 0, 0, 14, 0, 15, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]); - nfkcSparseOffset = new sliceType$1([0, 14, 18, 27, 37, 53, 55, 60, 71, 86, 99, 107, 112, 117, 119, 127, 134, 137, 145, 149, 153, 155, 157, 166, 170, 177, 182, 185, 195, 198, 205, 213, 217, 219, 223, 227, 233, 250, 262, 264, 270, 272, 274, 276, 278, 280, 282, 284, 287, 290, 292, 295, 298, 302, 308, 310, 319, 321, 324, 326, 337, 348, 362, 376, 392, 406, 413, 419, 434, 438, 440, 444, 446, 449, 451, 454, 456, 459, 461, 463, 465, 477, 487, 497, 500, 504, 506, 508, 510, 513, 516, 518, 520, 522, 524, 530, 533, 538, 540, 547, 553, 559, 567, 573, 579, 585, 589, 591, 593, 595, 597, 603, 606, 608, 610, 616, 619, 627, 634, 637, 640, 642, 645, 653, 657, 664, 667, 673, 675, 677, 680, 682, 685, 690, 692, 694, 696, 698, 700, 703, 705, 707, 709, 711, 713, 726, 736, 738, 740, 744, 749, 761, 766, 775, 781, 786, 790, 795, 799, 815, 829, 843, 857, 863, 865, 867, 870, 881, 883, 893]); - nfkcSparseValues = $toNativeArray($kindStruct, [$clone(new valueRange.ptr(2, 13, 0), valueRange), $clone(new valueRange.ptr(1, 160, 160), valueRange), $clone(new valueRange.ptr(17039, 168, 168), valueRange), $clone(new valueRange.ptr(131, 170, 170), valueRange), $clone(new valueRange.ptr(17019, 175, 175), valueRange), $clone(new valueRange.ptr(37, 178, 179), valueRange), $clone(new valueRange.ptr(17009, 180, 180), valueRange), $clone(new valueRange.ptr(479, 181, 181), valueRange), $clone(new valueRange.ptr(17064, 184, 184), valueRange), $clone(new valueRange.ptr(35, 185, 185), valueRange), $clone(new valueRange.ptr(159, 186, 186), valueRange), $clone(new valueRange.ptr(8738, 188, 188), valueRange), $clone(new valueRange.ptr(8726, 189, 189), valueRange), $clone(new valueRange.ptr(8888, 190, 190), valueRange), $clone(new valueRange.ptr(145, 3, 0), valueRange), $clone(new valueRange.ptr(18169, 160, 161), valueRange), $clone(new valueRange.ptr(18219, 175, 176), valueRange), $clone(new valueRange.ptr(40960, 183, 183), valueRange), $clone(new valueRange.ptr(3, 8, 0), valueRange), $clone(new valueRange.ptr(40960, 146, 146), valueRange), $clone(new valueRange.ptr(145, 176, 176), valueRange), $clone(new valueRange.ptr(281, 177, 177), valueRange), $clone(new valueRange.ptr(149, 178, 178), valueRange), $clone(new valueRange.ptr(165, 179, 179), valueRange), $clone(new valueRange.ptr(323, 180, 182), valueRange), $clone(new valueRange.ptr(175, 183, 183), valueRange), $clone(new valueRange.ptr(179, 184, 184), valueRange), $clone(new valueRange.ptr(10, 9, 0), valueRange), $clone(new valueRange.ptr(17029, 152, 152), valueRange), $clone(new valueRange.ptr(17034, 153, 154), valueRange), $clone(new valueRange.ptr(17069, 155, 155), valueRange), $clone(new valueRange.ptr(17014, 156, 156), valueRange), $clone(new valueRange.ptr(17049, 157, 157), valueRange), $clone(new valueRange.ptr(275, 160, 160), valueRange), $clone(new valueRange.ptr(153, 161, 161), valueRange), $clone(new valueRange.ptr(167, 162, 163), valueRange), $clone(new valueRange.ptr(362, 164, 164), valueRange), $clone(new valueRange.ptr(0, 15, 0), valueRange), $clone(new valueRange.ptr(40960, 131, 131), valueRange), $clone(new valueRange.ptr(40960, 135, 135), valueRange), $clone(new valueRange.ptr(40960, 139, 139), valueRange), $clone(new valueRange.ptr(40960, 141, 141), valueRange), $clone(new valueRange.ptr(14268, 144, 144), valueRange), $clone(new valueRange.ptr(14280, 145, 145), valueRange), $clone(new valueRange.ptr(14262, 147, 147), valueRange), $clone(new valueRange.ptr(40960, 150, 150), valueRange), $clone(new valueRange.ptr(14382, 151, 151), valueRange), $clone(new valueRange.ptr(14328, 156, 156), valueRange), $clone(new valueRange.ptr(14304, 157, 157), valueRange), $clone(new valueRange.ptr(14346, 158, 158), valueRange), $clone(new valueRange.ptr(40960, 180, 181), valueRange), $clone(new valueRange.ptr(14388, 182, 182), valueRange), $clone(new valueRange.ptr(14394, 183, 183), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 131, 135), valueRange), $clone(new valueRange.ptr(1, 4, 0), valueRange), $clone(new valueRange.ptr(33044, 129, 130), valueRange), $clone(new valueRange.ptr(33075, 132, 132), valueRange), $clone(new valueRange.ptr(33070, 133, 133), valueRange), $clone(new valueRange.ptr(33038, 135, 135), valueRange), $clone(new valueRange.ptr(0, 10, 0), valueRange), $clone(new valueRange.ptr(33075, 144, 151), valueRange), $clone(new valueRange.ptr(33050, 152, 152), valueRange), $clone(new valueRange.ptr(33051, 153, 153), valueRange), $clone(new valueRange.ptr(33052, 154, 154), valueRange), $clone(new valueRange.ptr(14424, 162, 162), valueRange), $clone(new valueRange.ptr(14430, 163, 163), valueRange), $clone(new valueRange.ptr(14442, 164, 164), valueRange), $clone(new valueRange.ptr(14436, 165, 165), valueRange), $clone(new valueRange.ptr(14448, 166, 166), valueRange), $clone(new valueRange.ptr(40960, 167, 167), valueRange), $clone(new valueRange.ptr(0, 14, 0), valueRange), $clone(new valueRange.ptr(14466, 128, 128), valueRange), $clone(new valueRange.ptr(40960, 129, 129), valueRange), $clone(new valueRange.ptr(14454, 130, 130), valueRange), $clone(new valueRange.ptr(40960, 146, 146), valueRange), $clone(new valueRange.ptr(14460, 147, 147), valueRange), $clone(new valueRange.ptr(40960, 149, 149), valueRange), $clone(new valueRange.ptr(33075, 150, 156), valueRange), $clone(new valueRange.ptr(33075, 159, 162), valueRange), $clone(new valueRange.ptr(33070, 163, 163), valueRange), $clone(new valueRange.ptr(33075, 164, 164), valueRange), $clone(new valueRange.ptr(33075, 167, 168), valueRange), $clone(new valueRange.ptr(33070, 170, 170), valueRange), $clone(new valueRange.ptr(33075, 171, 172), valueRange), $clone(new valueRange.ptr(33070, 173, 173), valueRange), $clone(new valueRange.ptr(0, 12, 0), valueRange), $clone(new valueRange.ptr(33056, 145, 145), valueRange), $clone(new valueRange.ptr(33075, 176, 176), valueRange), $clone(new valueRange.ptr(33070, 177, 177), valueRange), $clone(new valueRange.ptr(33075, 178, 179), valueRange), $clone(new valueRange.ptr(33070, 180, 180), valueRange), $clone(new valueRange.ptr(33075, 181, 182), valueRange), $clone(new valueRange.ptr(33070, 183, 185), valueRange), $clone(new valueRange.ptr(33075, 186, 186), valueRange), $clone(new valueRange.ptr(33070, 187, 188), valueRange), $clone(new valueRange.ptr(33075, 189, 189), valueRange), $clone(new valueRange.ptr(33070, 190, 190), valueRange), $clone(new valueRange.ptr(33075, 191, 191), valueRange), $clone(new valueRange.ptr(5, 7, 0), valueRange), $clone(new valueRange.ptr(33075, 128, 128), valueRange), $clone(new valueRange.ptr(33075, 129, 129), valueRange), $clone(new valueRange.ptr(33070, 130, 131), valueRange), $clone(new valueRange.ptr(33070, 132, 133), valueRange), $clone(new valueRange.ptr(33070, 134, 135), valueRange), $clone(new valueRange.ptr(33070, 136, 137), valueRange), $clone(new valueRange.ptr(33075, 138, 138), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(33075, 171, 177), valueRange), $clone(new valueRange.ptr(33070, 178, 178), valueRange), $clone(new valueRange.ptr(33075, 179, 179), valueRange), $clone(new valueRange.ptr(33070, 189, 189), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(33075, 150, 153), valueRange), $clone(new valueRange.ptr(33075, 155, 163), valueRange), $clone(new valueRange.ptr(33075, 165, 167), valueRange), $clone(new valueRange.ptr(33075, 169, 173), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33070, 153, 155), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(40960, 168, 168), valueRange), $clone(new valueRange.ptr(16111, 169, 169), valueRange), $clone(new valueRange.ptr(40960, 176, 176), valueRange), $clone(new valueRange.ptr(16119, 177, 177), valueRange), $clone(new valueRange.ptr(40960, 179, 179), valueRange), $clone(new valueRange.ptr(16127, 180, 180), valueRange), $clone(new valueRange.ptr(39171, 188, 188), valueRange), $clone(new valueRange.ptr(8, 6, 0), valueRange), $clone(new valueRange.ptr(33029, 141, 141), valueRange), $clone(new valueRange.ptr(33075, 145, 145), valueRange), $clone(new valueRange.ptr(33070, 146, 146), valueRange), $clone(new valueRange.ptr(33075, 147, 147), valueRange), $clone(new valueRange.ptr(33075, 148, 148), valueRange), $clone(new valueRange.ptr(17715, 152, 159), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33027, 188, 188), valueRange), $clone(new valueRange.ptr(39168, 190, 190), valueRange), $clone(new valueRange.ptr(8, 7, 0), valueRange), $clone(new valueRange.ptr(40960, 135, 135), valueRange), $clone(new valueRange.ptr(11435, 139, 140), valueRange), $clone(new valueRange.ptr(33029, 141, 141), valueRange), $clone(new valueRange.ptr(39168, 151, 151), valueRange), $clone(new valueRange.ptr(17779, 156, 157), valueRange), $clone(new valueRange.ptr(17795, 159, 159), valueRange), $clone(new valueRange.ptr(33075, 190, 190), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(17835, 179, 179), valueRange), $clone(new valueRange.ptr(17843, 182, 182), valueRange), $clone(new valueRange.ptr(33027, 188, 188), valueRange), $clone(new valueRange.ptr(8, 3, 0), valueRange), $clone(new valueRange.ptr(33029, 141, 141), valueRange), $clone(new valueRange.ptr(17803, 153, 155), valueRange), $clone(new valueRange.ptr(17827, 158, 158), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33027, 188, 188), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 141, 141), valueRange), $clone(new valueRange.ptr(0, 8, 0), valueRange), $clone(new valueRange.ptr(40960, 135, 135), valueRange), $clone(new valueRange.ptr(11459, 136, 136), valueRange), $clone(new valueRange.ptr(11451, 139, 139), valueRange), $clone(new valueRange.ptr(11467, 140, 140), valueRange), $clone(new valueRange.ptr(33029, 141, 141), valueRange), $clone(new valueRange.ptr(39168, 150, 151), valueRange), $clone(new valueRange.ptr(17851, 156, 156), valueRange), $clone(new valueRange.ptr(17859, 157, 157), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(40960, 146, 146), valueRange), $clone(new valueRange.ptr(11475, 148, 148), valueRange), $clone(new valueRange.ptr(39168, 190, 190), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(40960, 134, 135), valueRange), $clone(new valueRange.ptr(11483, 138, 138), valueRange), $clone(new valueRange.ptr(11499, 139, 139), valueRange), $clone(new valueRange.ptr(11491, 140, 140), valueRange), $clone(new valueRange.ptr(33029, 141, 141), valueRange), $clone(new valueRange.ptr(39168, 151, 151), valueRange), $clone(new valueRange.ptr(6145, 4, 0), valueRange), $clone(new valueRange.ptr(40960, 134, 134), valueRange), $clone(new valueRange.ptr(16135, 136, 136), valueRange), $clone(new valueRange.ptr(33029, 141, 141), valueRange), $clone(new valueRange.ptr(33057, 149, 150), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33027, 188, 188), valueRange), $clone(new valueRange.ptr(40960, 191, 191), valueRange), $clone(new valueRange.ptr(0, 9, 0), valueRange), $clone(new valueRange.ptr(11507, 128, 128), valueRange), $clone(new valueRange.ptr(39168, 130, 130), valueRange), $clone(new valueRange.ptr(40960, 134, 134), valueRange), $clone(new valueRange.ptr(11515, 135, 135), valueRange), $clone(new valueRange.ptr(11523, 136, 136), valueRange), $clone(new valueRange.ptr(12135, 138, 138), valueRange), $clone(new valueRange.ptr(11759, 139, 139), valueRange), $clone(new valueRange.ptr(33029, 141, 141), valueRange), $clone(new valueRange.ptr(39168, 149, 150), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33029, 187, 188), valueRange), $clone(new valueRange.ptr(39168, 190, 190), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(40960, 134, 135), valueRange), $clone(new valueRange.ptr(11531, 138, 138), valueRange), $clone(new valueRange.ptr(11547, 139, 139), valueRange), $clone(new valueRange.ptr(11539, 140, 140), valueRange), $clone(new valueRange.ptr(33029, 141, 141), valueRange), $clone(new valueRange.ptr(39168, 151, 151), valueRange), $clone(new valueRange.ptr(27613, 7, 0), valueRange), $clone(new valueRange.ptr(39173, 138, 138), valueRange), $clone(new valueRange.ptr(39168, 143, 143), valueRange), $clone(new valueRange.ptr(40960, 153, 153), valueRange), $clone(new valueRange.ptr(16143, 154, 154), valueRange), $clone(new valueRange.ptr(12143, 156, 156), valueRange), $clone(new valueRange.ptr(11770, 157, 157), valueRange), $clone(new valueRange.ptr(11555, 158, 159), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(9767, 179, 179), valueRange), $clone(new valueRange.ptr(33059, 184, 185), valueRange), $clone(new valueRange.ptr(33029, 186, 186), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33060, 136, 139), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(9788, 179, 179), valueRange), $clone(new valueRange.ptr(33061, 184, 185), valueRange), $clone(new valueRange.ptr(33029, 186, 186), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(33062, 136, 139), valueRange), $clone(new valueRange.ptr(9774, 156, 156), valueRange), $clone(new valueRange.ptr(9781, 157, 157), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(782, 140, 140), valueRange), $clone(new valueRange.ptr(33070, 152, 153), valueRange), $clone(new valueRange.ptr(33070, 181, 181), valueRange), $clone(new valueRange.ptr(33070, 183, 183), valueRange), $clone(new valueRange.ptr(33068, 185, 185), valueRange), $clone(new valueRange.ptr(0, 16, 0), valueRange), $clone(new valueRange.ptr(9802, 131, 131), valueRange), $clone(new valueRange.ptr(9809, 141, 141), valueRange), $clone(new valueRange.ptr(9816, 146, 146), valueRange), $clone(new valueRange.ptr(9823, 151, 151), valueRange), $clone(new valueRange.ptr(9830, 156, 156), valueRange), $clone(new valueRange.ptr(9795, 169, 169), valueRange), $clone(new valueRange.ptr(33063, 177, 177), valueRange), $clone(new valueRange.ptr(33064, 178, 178), valueRange), $clone(new valueRange.ptr(19099, 179, 179), valueRange), $clone(new valueRange.ptr(33065, 180, 180), valueRange), $clone(new valueRange.ptr(19108, 181, 181), valueRange), $clone(new valueRange.ptr(17867, 182, 182), valueRange), $clone(new valueRange.ptr(17931, 183, 183), valueRange), $clone(new valueRange.ptr(17875, 184, 184), valueRange), $clone(new valueRange.ptr(17942, 185, 185), valueRange), $clone(new valueRange.ptr(33064, 186, 189), valueRange), $clone(new valueRange.ptr(0, 11, 0), valueRange), $clone(new valueRange.ptr(33064, 128, 128), valueRange), $clone(new valueRange.ptr(19117, 129, 129), valueRange), $clone(new valueRange.ptr(33075, 130, 131), valueRange), $clone(new valueRange.ptr(33029, 132, 132), valueRange), $clone(new valueRange.ptr(33075, 134, 135), valueRange), $clone(new valueRange.ptr(9844, 147, 147), valueRange), $clone(new valueRange.ptr(9851, 157, 157), valueRange), $clone(new valueRange.ptr(9858, 162, 162), valueRange), $clone(new valueRange.ptr(9865, 167, 167), valueRange), $clone(new valueRange.ptr(9872, 172, 172), valueRange), $clone(new valueRange.ptr(9837, 185, 185), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33070, 134, 134), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(40960, 165, 165), valueRange), $clone(new valueRange.ptr(11563, 166, 166), valueRange), $clone(new valueRange.ptr(39168, 174, 174), valueRange), $clone(new valueRange.ptr(33027, 183, 183), valueRange), $clone(new valueRange.ptr(33029, 185, 186), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33070, 141, 141), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(786, 188, 188), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(40960, 128, 146), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(47360, 161, 181), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(39168, 168, 191), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(39168, 128, 130), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 157, 159), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33029, 148, 148), valueRange), $clone(new valueRange.ptr(33029, 180, 180), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33029, 146, 146), valueRange), $clone(new valueRange.ptr(33075, 157, 157), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33074, 169, 169), valueRange), $clone(new valueRange.ptr(4, 2, 0), valueRange), $clone(new valueRange.ptr(33071, 185, 186), valueRange), $clone(new valueRange.ptr(33070, 187, 187), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33075, 151, 151), valueRange), $clone(new valueRange.ptr(33070, 152, 152), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(33029, 160, 160), valueRange), $clone(new valueRange.ptr(33075, 181, 188), valueRange), $clone(new valueRange.ptr(33070, 191, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(33075, 176, 180), valueRange), $clone(new valueRange.ptr(33070, 181, 186), valueRange), $clone(new valueRange.ptr(33075, 187, 188), valueRange), $clone(new valueRange.ptr(33070, 189, 189), valueRange), $clone(new valueRange.ptr(33070, 191, 191), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33070, 128, 128), valueRange), $clone(new valueRange.ptr(0, 8, 0), valueRange), $clone(new valueRange.ptr(11635, 128, 128), valueRange), $clone(new valueRange.ptr(11643, 129, 129), valueRange), $clone(new valueRange.ptr(40960, 130, 130), valueRange), $clone(new valueRange.ptr(11651, 131, 131), valueRange), $clone(new valueRange.ptr(33029, 132, 132), valueRange), $clone(new valueRange.ptr(33075, 171, 171), valueRange), $clone(new valueRange.ptr(33070, 172, 172), valueRange), $clone(new valueRange.ptr(33075, 173, 179), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 170, 171), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33027, 166, 166), valueRange), $clone(new valueRange.ptr(33029, 178, 179), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33027, 183, 183), valueRange), $clone(new valueRange.ptr(0, 10, 0), valueRange), $clone(new valueRange.ptr(33075, 144, 146), valueRange), $clone(new valueRange.ptr(33025, 148, 148), valueRange), $clone(new valueRange.ptr(33070, 149, 153), valueRange), $clone(new valueRange.ptr(33075, 154, 155), valueRange), $clone(new valueRange.ptr(33070, 156, 159), valueRange), $clone(new valueRange.ptr(33075, 160, 160), valueRange), $clone(new valueRange.ptr(33025, 162, 168), valueRange), $clone(new valueRange.ptr(33070, 173, 173), valueRange), $clone(new valueRange.ptr(33075, 180, 180), valueRange), $clone(new valueRange.ptr(33075, 184, 185), valueRange), $clone(new valueRange.ptr(2, 10, 0), valueRange), $clone(new valueRange.ptr(67, 172, 172), valueRange), $clone(new valueRange.ptr(209, 173, 173), valueRange), $clone(new valueRange.ptr(69, 174, 174), valueRange), $clone(new valueRange.ptr(73, 176, 177), valueRange), $clone(new valueRange.ptr(230, 178, 178), valueRange), $clone(new valueRange.ptr(79, 179, 186), valueRange), $clone(new valueRange.ptr(95, 188, 188), valueRange), $clone(new valueRange.ptr(239, 189, 189), valueRange), $clone(new valueRange.ptr(97, 190, 190), valueRange), $clone(new valueRange.ptr(101, 191, 191), valueRange), $clone(new valueRange.ptr(0, 13, 0), valueRange), $clone(new valueRange.ptr(1, 128, 138), valueRange), $clone(new valueRange.ptr(1086, 145, 145), valueRange), $clone(new valueRange.ptr(17074, 151, 151), valueRange), $clone(new valueRange.ptr(29, 164, 164), valueRange), $clone(new valueRange.ptr(6262, 165, 165), valueRange), $clone(new valueRange.ptr(7010, 166, 166), valueRange), $clone(new valueRange.ptr(1, 175, 175), valueRange), $clone(new valueRange.ptr(9879, 179, 179), valueRange), $clone(new valueRange.ptr(10251, 180, 180), valueRange), $clone(new valueRange.ptr(9886, 182, 182), valueRange), $clone(new valueRange.ptr(10261, 183, 183), valueRange), $clone(new valueRange.ptr(6256, 188, 188), valueRange), $clone(new valueRange.ptr(17024, 190, 190), valueRange), $clone(new valueRange.ptr(2, 13, 0), valueRange), $clone(new valueRange.ptr(6454, 135, 135), valueRange), $clone(new valueRange.ptr(6451, 136, 136), valueRange), $clone(new valueRange.ptr(6259, 137, 137), valueRange), $clone(new valueRange.ptr(10651, 151, 151), valueRange), $clone(new valueRange.ptr(1, 159, 159), valueRange), $clone(new valueRange.ptr(33, 176, 176), valueRange), $clone(new valueRange.ptr(147, 177, 177), valueRange), $clone(new valueRange.ptr(41, 180, 185), valueRange), $clone(new valueRange.ptr(23, 186, 186), valueRange), $clone(new valueRange.ptr(1130, 187, 187), valueRange), $clone(new valueRange.ptr(59, 188, 188), valueRange), $clone(new valueRange.ptr(17, 189, 190), valueRange), $clone(new valueRange.ptr(157, 191, 191), valueRange), $clone(new valueRange.ptr(2, 15, 0), valueRange), $clone(new valueRange.ptr(33, 128, 137), valueRange), $clone(new valueRange.ptr(23, 138, 138), valueRange), $clone(new valueRange.ptr(1130, 139, 139), valueRange), $clone(new valueRange.ptr(59, 140, 140), valueRange), $clone(new valueRange.ptr(17, 141, 142), valueRange), $clone(new valueRange.ptr(131, 144, 144), valueRange), $clone(new valueRange.ptr(139, 145, 145), valueRange), $clone(new valueRange.ptr(159, 146, 146), valueRange), $clone(new valueRange.ptr(177, 147, 147), valueRange), $clone(new valueRange.ptr(260, 148, 148), valueRange), $clone(new valueRange.ptr(145, 149, 149), valueRange), $clone(new valueRange.ptr(151, 150, 153), valueRange), $clone(new valueRange.ptr(161, 154, 154), valueRange), $clone(new valueRange.ptr(167, 155, 156), valueRange), $clone(new valueRange.ptr(6559, 168, 168), valueRange), $clone(new valueRange.ptr(0, 13, 0), valueRange), $clone(new valueRange.ptr(33075, 144, 145), valueRange), $clone(new valueRange.ptr(33025, 146, 147), valueRange), $clone(new valueRange.ptr(33075, 148, 151), valueRange), $clone(new valueRange.ptr(33025, 152, 154), valueRange), $clone(new valueRange.ptr(33075, 155, 156), valueRange), $clone(new valueRange.ptr(33075, 161, 161), valueRange), $clone(new valueRange.ptr(33025, 165, 166), valueRange), $clone(new valueRange.ptr(33075, 167, 167), valueRange), $clone(new valueRange.ptr(33070, 168, 168), valueRange), $clone(new valueRange.ptr(33075, 169, 169), valueRange), $clone(new valueRange.ptr(33025, 170, 171), valueRange), $clone(new valueRange.ptr(33070, 172, 175), valueRange), $clone(new valueRange.ptr(33075, 176, 176), valueRange), $clone(new valueRange.ptr(7, 6, 0), valueRange), $clone(new valueRange.ptr(8582, 137, 137), valueRange), $clone(new valueRange.ptr(40960, 144, 144), valueRange), $clone(new valueRange.ptr(40960, 146, 146), valueRange), $clone(new valueRange.ptr(40960, 148, 148), valueRange), $clone(new valueRange.ptr(15312, 154, 155), valueRange), $clone(new valueRange.ptr(15326, 174, 174), valueRange), $clone(new valueRange.ptr(14, 5, 0), valueRange), $clone(new valueRange.ptr(15333, 141, 142), valueRange), $clone(new valueRange.ptr(15340, 143, 143), valueRange), $clone(new valueRange.ptr(40960, 144, 144), valueRange), $clone(new valueRange.ptr(40960, 146, 146), valueRange), $clone(new valueRange.ptr(40960, 148, 148), valueRange), $clone(new valueRange.ptr(378, 14, 0), valueRange), $clone(new valueRange.ptr(40960, 131, 131), valueRange), $clone(new valueRange.ptr(15354, 132, 132), valueRange), $clone(new valueRange.ptr(40960, 136, 136), valueRange), $clone(new valueRange.ptr(15361, 137, 137), valueRange), $clone(new valueRange.ptr(40960, 139, 139), valueRange), $clone(new valueRange.ptr(15368, 140, 140), valueRange), $clone(new valueRange.ptr(40960, 163, 163), valueRange), $clone(new valueRange.ptr(15375, 164, 164), valueRange), $clone(new valueRange.ptr(40960, 165, 165), valueRange), $clone(new valueRange.ptr(15382, 166, 166), valueRange), $clone(new valueRange.ptr(9893, 172, 173), valueRange), $clone(new valueRange.ptr(9900, 175, 175), valueRange), $clone(new valueRange.ptr(10281, 176, 176), valueRange), $clone(new valueRange.ptr(40960, 188, 188), valueRange), $clone(new valueRange.ptr(7, 3, 0), valueRange), $clone(new valueRange.ptr(15487, 160, 161), valueRange), $clone(new valueRange.ptr(15529, 162, 163), valueRange), $clone(new valueRange.ptr(15571, 170, 173), valueRange), $clone(new valueRange.ptr(4, 1, 0), valueRange), $clone(new valueRange.ptr(1166, 169, 170), valueRange), $clone(new valueRange.ptr(2, 3, 0), valueRange), $clone(new valueRange.ptr(87, 128, 143), valueRange), $clone(new valueRange.ptr(131, 144, 169), valueRange), $clone(new valueRange.ptr(33, 170, 170), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(10664, 140, 140), valueRange), $clone(new valueRange.ptr(614, 2, 0), valueRange), $clone(new valueRange.ptr(7058, 180, 180), valueRange), $clone(new valueRange.ptr(6448, 181, 182), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(17652, 156, 156), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(149, 188, 188), valueRange), $clone(new valueRange.ptr(109, 189, 189), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 175, 177), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(1154, 175, 175), valueRange), $clone(new valueRange.ptr(33029, 191, 191), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 160, 191), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(3526, 159, 159), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(5682, 179, 179), valueRange), $clone(new valueRange.ptr(4, 11, 0), valueRange), $clone(new valueRange.ptr(5530, 128, 130), valueRange), $clone(new valueRange.ptr(5554, 131, 131), valueRange), $clone(new valueRange.ptr(5578, 132, 133), valueRange), $clone(new valueRange.ptr(5594, 134, 137), valueRange), $clone(new valueRange.ptr(5614, 138, 140), valueRange), $clone(new valueRange.ptr(5634, 141, 141), valueRange), $clone(new valueRange.ptr(5642, 142, 142), valueRange), $clone(new valueRange.ptr(5650, 143, 144), valueRange), $clone(new valueRange.ptr(5662, 145, 147), valueRange), $clone(new valueRange.ptr(5678, 148, 148), valueRange), $clone(new valueRange.ptr(5686, 149, 149), valueRange), $clone(new valueRange.ptr(4, 9, 0), valueRange), $clone(new valueRange.ptr(1, 128, 128), valueRange), $clone(new valueRange.ptr(33069, 170, 170), valueRange), $clone(new valueRange.ptr(33074, 171, 171), valueRange), $clone(new valueRange.ptr(33076, 172, 172), valueRange), $clone(new valueRange.ptr(33071, 173, 173), valueRange), $clone(new valueRange.ptr(33072, 174, 174), valueRange), $clone(new valueRange.ptr(33072, 175, 175), valueRange), $clone(new valueRange.ptr(1206, 182, 182), valueRange), $clone(new valueRange.ptr(2186, 184, 186), valueRange), $clone(new valueRange.ptr(6, 9, 0), valueRange), $clone(new valueRange.ptr(790, 177, 177), valueRange), $clone(new valueRange.ptr(794, 178, 178), valueRange), $clone(new valueRange.ptr(19026, 179, 179), valueRange), $clone(new valueRange.ptr(798, 180, 180), valueRange), $clone(new valueRange.ptr(19032, 181, 182), valueRange), $clone(new valueRange.ptr(802, 183, 183), valueRange), $clone(new valueRange.ptr(806, 184, 184), valueRange), $clone(new valueRange.ptr(810, 185, 185), valueRange), $clone(new valueRange.ptr(19044, 186, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33075, 175, 175), valueRange), $clone(new valueRange.ptr(33075, 180, 189), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(530, 156, 156), valueRange), $clone(new valueRange.ptr(533, 157, 157), valueRange), $clone(new valueRange.ptr(33075, 158, 159), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 176, 177), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(5694, 176, 176), valueRange), $clone(new valueRange.ptr(12, 1, 0), valueRange), $clone(new valueRange.ptr(215, 184, 185), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33029, 134, 134), valueRange), $clone(new valueRange.ptr(33029, 172, 172), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33029, 132, 132), valueRange), $clone(new valueRange.ptr(33075, 160, 177), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33070, 171, 173), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 147, 147), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33027, 179, 179), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 128, 128), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(33075, 176, 176), valueRange), $clone(new valueRange.ptr(33075, 178, 179), valueRange), $clone(new valueRange.ptr(33070, 180, 180), valueRange), $clone(new valueRange.ptr(33075, 183, 184), valueRange), $clone(new valueRange.ptr(33075, 190, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33075, 129, 129), valueRange), $clone(new valueRange.ptr(33029, 182, 182), valueRange), $clone(new valueRange.ptr(8, 4, 0), valueRange), $clone(new valueRange.ptr(5690, 156, 157), valueRange), $clone(new valueRange.ptr(293, 158, 158), valueRange), $clone(new valueRange.ptr(5702, 159, 159), valueRange), $clone(new valueRange.ptr(350, 169, 169), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 173, 173), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(58624, 128, 128), valueRange), $clone(new valueRange.ptr(50688, 129, 155), valueRange), $clone(new valueRange.ptr(58624, 156, 156), valueRange), $clone(new valueRange.ptr(50688, 157, 183), valueRange), $clone(new valueRange.ptr(58624, 184, 184), valueRange), $clone(new valueRange.ptr(50688, 185, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(50688, 128, 147), valueRange), $clone(new valueRange.ptr(58624, 148, 148), valueRange), $clone(new valueRange.ptr(50688, 149, 175), valueRange), $clone(new valueRange.ptr(58624, 176, 176), valueRange), $clone(new valueRange.ptr(50688, 177, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(50688, 128, 139), valueRange), $clone(new valueRange.ptr(58624, 140, 140), valueRange), $clone(new valueRange.ptr(50688, 141, 167), valueRange), $clone(new valueRange.ptr(58624, 168, 168), valueRange), $clone(new valueRange.ptr(50688, 169, 191), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(50688, 128, 131), valueRange), $clone(new valueRange.ptr(58624, 132, 132), valueRange), $clone(new valueRange.ptr(50688, 133, 159), valueRange), $clone(new valueRange.ptr(58624, 160, 160), valueRange), $clone(new valueRange.ptr(50688, 161, 187), valueRange), $clone(new valueRange.ptr(58624, 188, 188), valueRange), $clone(new valueRange.ptr(50688, 189, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(50688, 128, 151), valueRange), $clone(new valueRange.ptr(58624, 152, 152), valueRange), $clone(new valueRange.ptr(50688, 153, 179), valueRange), $clone(new valueRange.ptr(58624, 180, 180), valueRange), $clone(new valueRange.ptr(50688, 181, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(50688, 128, 143), valueRange), $clone(new valueRange.ptr(58624, 144, 144), valueRange), $clone(new valueRange.ptr(50688, 145, 171), valueRange), $clone(new valueRange.ptr(58624, 172, 172), valueRange), $clone(new valueRange.ptr(50688, 173, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(50688, 128, 135), valueRange), $clone(new valueRange.ptr(58624, 136, 136), valueRange), $clone(new valueRange.ptr(50688, 137, 163), valueRange), $clone(new valueRange.ptr(58624, 164, 164), valueRange), $clone(new valueRange.ptr(50688, 165, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(50688, 128, 135), valueRange), $clone(new valueRange.ptr(58624, 136, 136), valueRange), $clone(new valueRange.ptr(50688, 137, 163), valueRange), $clone(new valueRange.ptr(2, 1, 0), valueRange), $clone(new valueRange.ptr(3, 129, 191), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33070, 189, 189), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33070, 160, 160), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 182, 186), valueRange), $clone(new valueRange.ptr(45, 5, 0), valueRange), $clone(new valueRange.ptr(33070, 141, 141), valueRange), $clone(new valueRange.ptr(33075, 143, 143), valueRange), $clone(new valueRange.ptr(33075, 184, 184), valueRange), $clone(new valueRange.ptr(33025, 185, 186), valueRange), $clone(new valueRange.ptr(33029, 191, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33075, 165, 165), valueRange), $clone(new valueRange.ptr(33070, 166, 166), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 164, 167), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 171, 172), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(33070, 134, 135), valueRange), $clone(new valueRange.ptr(33075, 136, 138), valueRange), $clone(new valueRange.ptr(33070, 139, 139), valueRange), $clone(new valueRange.ptr(33075, 140, 140), valueRange), $clone(new valueRange.ptr(33070, 141, 144), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33029, 134, 134), valueRange), $clone(new valueRange.ptr(33029, 191, 191), valueRange), $clone(new valueRange.ptr(6142, 7, 0), valueRange), $clone(new valueRange.ptr(40960, 153, 153), valueRange), $clone(new valueRange.ptr(16975, 154, 154), valueRange), $clone(new valueRange.ptr(40960, 155, 155), valueRange), $clone(new valueRange.ptr(16985, 156, 156), valueRange), $clone(new valueRange.ptr(40960, 165, 165), valueRange), $clone(new valueRange.ptr(16995, 171, 171), valueRange), $clone(new valueRange.ptr(33029, 185, 186), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(33075, 128, 130), valueRange), $clone(new valueRange.ptr(39168, 167, 167), valueRange), $clone(new valueRange.ptr(11659, 174, 174), valueRange), $clone(new valueRange.ptr(11669, 175, 175), valueRange), $clone(new valueRange.ptr(40960, 177, 178), valueRange), $clone(new valueRange.ptr(33029, 179, 180), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33029, 128, 128), valueRange), $clone(new valueRange.ptr(33027, 138, 138), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33029, 181, 181), valueRange), $clone(new valueRange.ptr(33027, 182, 182), valueRange), $clone(new valueRange.ptr(2, 1, 0), valueRange), $clone(new valueRange.ptr(33027, 169, 170), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33027, 187, 188), valueRange), $clone(new valueRange.ptr(39168, 190, 190), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(40960, 135, 135), valueRange), $clone(new valueRange.ptr(11679, 139, 139), valueRange), $clone(new valueRange.ptr(11689, 140, 140), valueRange), $clone(new valueRange.ptr(33029, 141, 141), valueRange), $clone(new valueRange.ptr(39168, 151, 151), valueRange), $clone(new valueRange.ptr(33075, 166, 172), valueRange), $clone(new valueRange.ptr(33075, 176, 180), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(33029, 130, 130), valueRange), $clone(new valueRange.ptr(33027, 134, 134), valueRange), $clone(new valueRange.ptr(33075, 158, 158), valueRange), $clone(new valueRange.ptr(27469, 6, 0), valueRange), $clone(new valueRange.ptr(39168, 176, 176), valueRange), $clone(new valueRange.ptr(40960, 185, 185), valueRange), $clone(new valueRange.ptr(39168, 186, 186), valueRange), $clone(new valueRange.ptr(11709, 187, 187), valueRange), $clone(new valueRange.ptr(11699, 188, 189), valueRange), $clone(new valueRange.ptr(11719, 190, 190), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33029, 130, 130), valueRange), $clone(new valueRange.ptr(33027, 131, 131), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(39168, 175, 175), valueRange), $clone(new valueRange.ptr(40960, 184, 185), valueRange), $clone(new valueRange.ptr(11729, 186, 186), valueRange), $clone(new valueRange.ptr(11739, 187, 187), valueRange), $clone(new valueRange.ptr(33029, 191, 191), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33027, 128, 128), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 191, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33029, 182, 182), valueRange), $clone(new valueRange.ptr(33027, 183, 183), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 171, 171), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33029, 185, 185), valueRange), $clone(new valueRange.ptr(33027, 186, 186), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(39168, 176, 176), valueRange), $clone(new valueRange.ptr(40960, 181, 181), valueRange), $clone(new valueRange.ptr(11749, 184, 184), valueRange), $clone(new valueRange.ptr(33029, 189, 190), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33027, 131, 131), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 160, 160), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 180, 180), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 135, 135), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 153, 153), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33027, 130, 130), valueRange), $clone(new valueRange.ptr(33029, 132, 133), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 151, 151), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33025, 176, 180), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 176, 182), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33026, 176, 177), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33025, 158, 158), valueRange), $clone(new valueRange.ptr(0, 12, 0), valueRange), $clone(new valueRange.ptr(17891, 158, 158), valueRange), $clone(new valueRange.ptr(17901, 159, 159), valueRange), $clone(new valueRange.ptr(17953, 160, 160), valueRange), $clone(new valueRange.ptr(17967, 161, 161), valueRange), $clone(new valueRange.ptr(17981, 162, 162), valueRange), $clone(new valueRange.ptr(17995, 163, 163), valueRange), $clone(new valueRange.ptr(18009, 164, 164), valueRange), $clone(new valueRange.ptr(33068, 165, 166), valueRange), $clone(new valueRange.ptr(33025, 167, 169), valueRange), $clone(new valueRange.ptr(33073, 173, 173), valueRange), $clone(new valueRange.ptr(33068, 174, 178), valueRange), $clone(new valueRange.ptr(33070, 187, 191), valueRange), $clone(new valueRange.ptr(0, 9, 0), valueRange), $clone(new valueRange.ptr(33070, 128, 130), valueRange), $clone(new valueRange.ptr(33075, 133, 137), valueRange), $clone(new valueRange.ptr(33070, 138, 139), valueRange), $clone(new valueRange.ptr(33075, 170, 173), valueRange), $clone(new valueRange.ptr(17911, 187, 187), valueRange), $clone(new valueRange.ptr(17921, 188, 188), valueRange), $clone(new valueRange.ptr(18023, 189, 189), valueRange), $clone(new valueRange.ptr(18051, 190, 190), valueRange), $clone(new valueRange.ptr(18037, 191, 191), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(18065, 128, 128), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 130, 132), valueRange), $clone(new valueRange.ptr(2, 3, 0), valueRange), $clone(new valueRange.ptr(67, 128, 153), valueRange), $clone(new valueRange.ptr(131, 154, 179), valueRange), $clone(new valueRange.ptr(67, 180, 191), valueRange), $clone(new valueRange.ptr(2, 4, 0), valueRange), $clone(new valueRange.ptr(91, 128, 141), valueRange), $clone(new valueRange.ptr(131, 142, 148), valueRange), $clone(new valueRange.ptr(147, 150, 167), valueRange), $clone(new valueRange.ptr(67, 168, 191), valueRange), $clone(new valueRange.ptr(2, 11, 0), valueRange), $clone(new valueRange.ptr(115, 128, 129), valueRange), $clone(new valueRange.ptr(131, 130, 155), valueRange), $clone(new valueRange.ptr(67, 156, 156), valueRange), $clone(new valueRange.ptr(71, 158, 159), valueRange), $clone(new valueRange.ptr(79, 162, 162), valueRange), $clone(new valueRange.ptr(85, 165, 166), valueRange), $clone(new valueRange.ptr(93, 169, 172), valueRange), $clone(new valueRange.ptr(103, 174, 181), valueRange), $clone(new valueRange.ptr(131, 182, 185), valueRange), $clone(new valueRange.ptr(141, 187, 187), valueRange), $clone(new valueRange.ptr(145, 189, 191), valueRange), $clone(new valueRange.ptr(2, 4, 0), valueRange), $clone(new valueRange.ptr(151, 128, 131), valueRange), $clone(new valueRange.ptr(161, 133, 143), valueRange), $clone(new valueRange.ptr(67, 144, 169), valueRange), $clone(new valueRange.ptr(131, 170, 191), valueRange), $clone(new valueRange.ptr(2, 8, 0), valueRange), $clone(new valueRange.ptr(175, 128, 131), valueRange), $clone(new valueRange.ptr(67, 132, 133), valueRange), $clone(new valueRange.ptr(73, 135, 138), valueRange), $clone(new valueRange.ptr(85, 141, 148), valueRange), $clone(new valueRange.ptr(103, 150, 156), valueRange), $clone(new valueRange.ptr(131, 158, 183), valueRange), $clone(new valueRange.ptr(67, 184, 185), valueRange), $clone(new valueRange.ptr(73, 187, 190), valueRange), $clone(new valueRange.ptr(2, 5, 0), valueRange), $clone(new valueRange.ptr(83, 128, 132), valueRange), $clone(new valueRange.ptr(95, 134, 134), valueRange), $clone(new valueRange.ptr(103, 138, 144), valueRange), $clone(new valueRange.ptr(131, 146, 171), valueRange), $clone(new valueRange.ptr(67, 172, 191), valueRange), $clone(new valueRange.ptr(2, 4, 0), valueRange), $clone(new valueRange.ptr(107, 128, 133), valueRange), $clone(new valueRange.ptr(131, 134, 159), valueRange), $clone(new valueRange.ptr(67, 160, 185), valueRange), $clone(new valueRange.ptr(131, 186, 191), valueRange), $clone(new valueRange.ptr(2, 3, 0), valueRange), $clone(new valueRange.ptr(143, 128, 147), valueRange), $clone(new valueRange.ptr(67, 148, 173), valueRange), $clone(new valueRange.ptr(131, 174, 191), valueRange), $clone(new valueRange.ptr(2, 4, 0), valueRange), $clone(new valueRange.ptr(167, 128, 135), valueRange), $clone(new valueRange.ptr(67, 136, 161), valueRange), $clone(new valueRange.ptr(131, 162, 187), valueRange), $clone(new valueRange.ptr(67, 188, 191), valueRange), $clone(new valueRange.ptr(2, 3, 0), valueRange), $clone(new valueRange.ptr(75, 128, 149), valueRange), $clone(new valueRange.ptr(131, 150, 175), valueRange), $clone(new valueRange.ptr(67, 176, 191), valueRange), $clone(new valueRange.ptr(3, 15, 0), valueRange), $clone(new valueRange.ptr(443, 128, 128), valueRange), $clone(new valueRange.ptr(1122, 129, 129), valueRange), $clone(new valueRange.ptr(446, 130, 154), valueRange), $clone(new valueRange.ptr(1118, 155, 155), valueRange), $clone(new valueRange.ptr(458, 156, 156), valueRange), $clone(new valueRange.ptr(467, 157, 157), valueRange), $clone(new valueRange.ptr(473, 158, 158), valueRange), $clone(new valueRange.ptr(509, 159, 159), valueRange), $clone(new valueRange.ptr(494, 160, 160), valueRange), $clone(new valueRange.ptr(491, 161, 161), valueRange), $clone(new valueRange.ptr(374, 162, 178), valueRange), $clone(new valueRange.ptr(395, 179, 179), valueRange), $clone(new valueRange.ptr(425, 180, 186), valueRange), $clone(new valueRange.ptr(1122, 187, 187), valueRange), $clone(new valueRange.ptr(446, 188, 191), valueRange), $clone(new valueRange.ptr(3, 13, 0), valueRange), $clone(new valueRange.ptr(458, 128, 148), valueRange), $clone(new valueRange.ptr(1118, 149, 149), valueRange), $clone(new valueRange.ptr(458, 150, 150), valueRange), $clone(new valueRange.ptr(467, 151, 151), valueRange), $clone(new valueRange.ptr(473, 152, 152), valueRange), $clone(new valueRange.ptr(509, 153, 153), valueRange), $clone(new valueRange.ptr(494, 154, 154), valueRange), $clone(new valueRange.ptr(491, 155, 155), valueRange), $clone(new valueRange.ptr(374, 156, 172), valueRange), $clone(new valueRange.ptr(395, 173, 173), valueRange), $clone(new valueRange.ptr(425, 174, 180), valueRange), $clone(new valueRange.ptr(1122, 181, 181), valueRange), $clone(new valueRange.ptr(446, 182, 191), valueRange), $clone(new valueRange.ptr(3, 13, 0), valueRange), $clone(new valueRange.ptr(476, 128, 142), valueRange), $clone(new valueRange.ptr(1118, 143, 143), valueRange), $clone(new valueRange.ptr(458, 144, 144), valueRange), $clone(new valueRange.ptr(467, 145, 145), valueRange), $clone(new valueRange.ptr(473, 146, 146), valueRange), $clone(new valueRange.ptr(509, 147, 147), valueRange), $clone(new valueRange.ptr(494, 148, 148), valueRange), $clone(new valueRange.ptr(491, 149, 149), valueRange), $clone(new valueRange.ptr(374, 150, 166), valueRange), $clone(new valueRange.ptr(395, 167, 167), valueRange), $clone(new valueRange.ptr(425, 168, 174), valueRange), $clone(new valueRange.ptr(1122, 175, 175), valueRange), $clone(new valueRange.ptr(446, 176, 191), valueRange), $clone(new valueRange.ptr(3, 13, 0), valueRange), $clone(new valueRange.ptr(494, 128, 136), valueRange), $clone(new valueRange.ptr(1118, 137, 137), valueRange), $clone(new valueRange.ptr(458, 138, 138), valueRange), $clone(new valueRange.ptr(467, 139, 139), valueRange), $clone(new valueRange.ptr(473, 140, 140), valueRange), $clone(new valueRange.ptr(509, 141, 141), valueRange), $clone(new valueRange.ptr(494, 142, 142), valueRange), $clone(new valueRange.ptr(491, 143, 143), valueRange), $clone(new valueRange.ptr(374, 144, 160), valueRange), $clone(new valueRange.ptr(395, 161, 161), valueRange), $clone(new valueRange.ptr(425, 162, 168), valueRange), $clone(new valueRange.ptr(1122, 169, 169), valueRange), $clone(new valueRange.ptr(446, 170, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(33075, 128, 134), valueRange), $clone(new valueRange.ptr(33075, 136, 152), valueRange), $clone(new valueRange.ptr(33075, 155, 161), valueRange), $clone(new valueRange.ptr(33075, 163, 164), valueRange), $clone(new valueRange.ptr(33075, 166, 170), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 172, 175), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33070, 144, 150), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33075, 132, 137), valueRange), $clone(new valueRange.ptr(33027, 138, 138), valueRange), $clone(new valueRange.ptr(2, 10, 0), valueRange), $clone(new valueRange.ptr(99, 128, 137), valueRange), $clone(new valueRange.ptr(6484, 138, 138), valueRange), $clone(new valueRange.ptr(6535, 139, 139), valueRange), $clone(new valueRange.ptr(6562, 140, 140), valueRange), $clone(new valueRange.ptr(6568, 141, 141), valueRange), $clone(new valueRange.ptr(7110, 142, 142), valueRange), $clone(new valueRange.ptr(6580, 143, 143), valueRange), $clone(new valueRange.ptr(6526, 170, 170), valueRange), $clone(new valueRange.ptr(6529, 171, 171), valueRange), $clone(new valueRange.ptr(6532, 172, 172), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(6466, 144, 144), valueRange), $clone(new valueRange.ptr(40, 9, 0), valueRange), $clone(new valueRange.ptr(10351, 128, 128), valueRange), $clone(new valueRange.ptr(10291, 129, 129), valueRange), $clone(new valueRange.ptr(10301, 130, 130), valueRange), $clone(new valueRange.ptr(10321, 131, 132), valueRange), $clone(new valueRange.ptr(10331, 133, 134), valueRange), $clone(new valueRange.ptr(10311, 135, 135), valueRange), $clone(new valueRange.ptr(10341, 136, 136), valueRange), $clone(new valueRange.ptr(2930, 144, 144), valueRange), $clone(new valueRange.ptr(2282, 145, 145), valueRange), $clone(new valueRange.ptr(2, 1, 0), valueRange), $clone(new valueRange.ptr(33, 176, 185), valueRange)]); + nfkcValues = $toNativeArray($kindUint16, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40960, 40960, 40960, 0, 0, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 0, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 0, 0, 0, 0, 0, 0, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 0, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 40960, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12464, 12469, 18377, 12474, 18392, 18397, 40960, 18407, 12579, 12584, 18412, 12604, 12719, 12724, 12729, 18432, 0, 12869, 12904, 12909, 18442, 18447, 18462, 0, 40960, 13044, 13049, 13054, 18512, 13174, 0, 0, 13244, 13249, 18522, 13254, 18537, 18542, 40960, 18552, 13359, 13364, 18557, 13384, 13504, 13509, 13514, 18577, 0, 13654, 13689, 13694, 18587, 18592, 18607, 0, 40960, 13834, 13839, 13844, 18657, 13969, 0, 13994, 12479, 13259, 18382, 18527, 12509, 13289, 12529, 13309, 12534, 13314, 12539, 13319, 12544, 13324, 12554, 13334, 0, 0, 18417, 18562, 12594, 13374, 12599, 13379, 12629, 13409, 12614, 13394, 12654, 13434, 12664, 13444, 12669, 13449, 12679, 13459, 12684, 13464, 0, 0, 12734, 13519, 12739, 13524, 12744, 13529, 12779, 13559, 12749, 0, 6794, 6935, 12789, 13569, 12809, 13594, 0, 12819, 13604, 12829, 13614, 12824, 13609, 7388, 7524, 0, 0, 12864, 13649, 12889, 13674, 12879, 13664, 7564, 0, 0, 18452, 18597, 12914, 13699, 12924, 13709, 0, 0, 12954, 13739, 12979, 13764, 12964, 13749, 18487, 18632, 12989, 13774, 13004, 13789, 18492, 18637, 13029, 13819, 13014, 13804, 0, 0, 18502, 18647, 18507, 18652, 13059, 13849, 13069, 13859, 13074, 13864, 13104, 13894, 13139, 13929, 13179, 13974, 13199, 13214, 14014, 13224, 14024, 13229, 14029, 167, 0, 0, 0, 0, 12079, 12085, 12091, 6815, 6818, 6968, 6839, 6842, 7022, 12489, 13269, 12759, 13539, 12929, 13714, 13079, 13869, 15120, 15519, 15113, 15512, 15127, 15526, 15106, 15505, 0, 14833, 15232, 14826, 15225, 14068, 14086, 0, 0, 12674, 13454, 12799, 13584, 18477, 18622, 15057, 15456, 14104, 14110, 13574, 6767, 6770, 6911, 12649, 13429, 0, 0, 12859, 13644, 14840, 15239, 14062, 14080, 14074, 14092, 12494, 13274, 12499, 13279, 12619, 13399, 12624, 13404, 12764, 13544, 12769, 13549, 12934, 13719, 12939, 13724, 12969, 13754, 12974, 13759, 13084, 13874, 13089, 13879, 12999, 13784, 13024, 13814, 0, 0, 12699, 13479, 0, 0, 0, 0, 0, 0, 18387, 18532, 18427, 18572, 15008, 15407, 14973, 15372, 18457, 18602, 15001, 15400, 13189, 13984, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39219, 39219, 39219, 39219, 39219, 33075, 39219, 39219, 39219, 39219, 39219, 39219, 39219, 33075, 33075, 39219, 33075, 39219, 33075, 39219, 39219, 33076, 33070, 33070, 33070, 33070, 33076, 39212, 33070, 33070, 33070, 33070, 33070, 33066, 33066, 39214, 39214, 39214, 39214, 39210, 39210, 33070, 33070, 33070, 33070, 39214, 39214, 33070, 39214, 39214, 33070, 33070, 33025, 33025, 33025, 33025, 39169, 33070, 33070, 33070, 33070, 33075, 33075, 33075, 19183, 19188, 39219, 19193, 19378, 39223, 33075, 33070, 33070, 33070, 33075, 33075, 33075, 33070, 33070, 0, 33075, 33075, 33075, 33070, 33070, 33070, 33070, 33075, 33076, 33070, 33070, 33075, 33077, 33078, 33078, 33077, 33078, 33078, 33077, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 0, 0, 0, 0, 494, 0, 0, 0, 0, 0, 17382, 0, 0, 0, 55, 0, 0, 0, 0, 0, 17307, 17852, 14122, 206, 14152, 14164, 14182, 0, 14212, 0, 14230, 14260, 16201, 40960, 0, 0, 0, 40960, 0, 40960, 0, 40960, 0, 0, 0, 0, 0, 40960, 0, 40960, 0, 0, 0, 40960, 0, 0, 0, 40960, 14200, 14248, 18751, 14296, 18793, 14314, 16305, 40960, 0, 0, 0, 40960, 0, 40960, 0, 40960, 0, 0, 0, 0, 0, 40960, 0, 40960, 0, 0, 0, 40960, 0, 0, 0, 40960, 18817, 18847, 14344, 14368, 18871, 0, 578, 596, 560, 17485, 17491, 638, 620, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 602, 623, 626, 0, 524, 587, 0, 0, 0, 554, 0, 0, 0, 0, 0, 0, 14434, 14446, 0, 14428, 0, 0, 40960, 14410, 0, 0, 0, 0, 14494, 14470, 14512, 0, 40960, 0, 0, 40960, 0, 40960, 40960, 40960, 40960, 14482, 40960, 0, 0, 0, 40960, 0, 0, 0, 0, 40960, 0, 0, 0, 40960, 0, 0, 0, 40960, 0, 40960, 0, 0, 40960, 0, 0, 40960, 0, 40960, 40960, 40960, 40960, 14614, 40960, 0, 0, 0, 40960, 0, 0, 14452, 14584, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14416, 14548, 14422, 14554, 0, 0, 14440, 14572, 40960, 40960, 14698, 14704, 14458, 14590, 14464, 14596, 0, 0, 14476, 14608, 14488, 14620, 14500, 14632, 40960, 40960, 14710, 14716, 14542, 14674, 14506, 14638, 14518, 14650, 14524, 14656, 14530, 14662, 0, 0, 14536, 14668, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7825, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33070, 33075, 33075, 33075, 33075, 33070, 33075, 33075, 33075, 33071, 33070, 33075, 33075, 33075, 33075, 33075, 33075, 33070, 33070, 33070, 33070, 33070, 33070, 33075, 33075, 33070, 33075, 33075, 33071, 33074, 33075, 33030, 33031, 33032, 33033, 33034, 33035, 33036, 33037, 33038, 33039, 33039, 33040, 33041, 33042, 0, 33043, 0, 0, 0, 0, 0, 0, 0, 0, 40960, 0, 40960, 33047, 33048, 33049, 33050, 33051, 33052, 33053, 33054, 39219, 39219, 39214, 33070, 33075, 33075, 33075, 33075, 33075, 33070, 33075, 33075, 33070, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33055, 0, 0, 0, 0, 7860, 8515, 8575, 8570, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33075, 33075, 33075, 33075, 33075, 33070, 33070, 33070, 33070, 33070, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 0, 33070, 33075, 33075, 33070, 33075, 33075, 33070, 33075, 33075, 33075, 33070, 33070, 33070, 33047, 33048, 33049, 33075, 33075, 33075, 33070, 33075, 33075, 33070, 33070, 33075, 33075, 33075, 33075, 33075, 0, 0, 0, 0, 0, 40960, 11869, 40960, 11877, 40960, 11885, 40960, 11893, 40960, 11901, 0, 0, 40960, 11909, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33027, 39168, 0, 0, 0, 0, 40960, 11917, 40960, 11925, 40960, 40960, 105, 107, 111, 131, 260, 263, 1286, 133, 137, 139, 287, 290, 293, 143, 0, 151, 155, 230, 159, 272, 1290, 1294, 161, 169, 171, 1302, 347, 173, 1306, 578, 581, 584, 638, 641, 147, 165, 171, 173, 578, 581, 623, 638, 641, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 692, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 266, 135, 275, 215, 293, 141, 299, 305, 317, 326, 329, 332, 1310, 455, 341, 1314, 458, 353, 350, 356, 359, 362, 365, 374, 398, 401, 242, 410, 413, 1298, 416, 419, 181, 431, 434, 437, 596, 33075, 33075, 33070, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33070, 33075, 33075, 33078, 33067, 33070, 33066, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33076, 33074, 33074, 33070, 33069, 33075, 33077, 33070, 33075, 33070, 12504, 13284, 12514, 13294, 12519, 13299, 12524, 13304, 14861, 15260, 12549, 13329, 12559, 13339, 12574, 13354, 12564, 13344, 12569, 13349, 14896, 15295, 14903, 15302, 12634, 13414, 12639, 13419, 14917, 15316, 12644, 13424, 12659, 13439, 12689, 13469, 12704, 13484, 12694, 13474, 12709, 13489, 12714, 13494, 12784, 13564, 14924, 15323, 12794, 13579, 12804, 13589, 12814, 13599, 18437, 18582, 14931, 15330, 12839, 13624, 12834, 13619, 12844, 13629, 12849, 13634, 12854, 13639, 12874, 13659, 12884, 13669, 12899, 13684, 12894, 13679, 14966, 15365, 14980, 15379, 14987, 15386, 14994, 15393, 12944, 13729, 12949, 13734, 12959, 13744, 18482, 18627, 15064, 15463, 12984, 13769, 12994, 13779, 18497, 18642, 15071, 15470, 15078, 15477, 15085, 15484, 13009, 13794, 13019, 13809, 13039, 13829, 13034, 13824, 13099, 13889, 13114, 13904, 13109, 13899, 15092, 15491, 15099, 15498, 13119, 13909, 13124, 13914, 13129, 13919, 13134, 13924, 13149, 13939, 13144, 13934, 13154, 13949, 13159, 13954, 13164, 13959, 13194, 13989, 13219, 14019, 13234, 14034, 13239, 14039, 13499, 13799, 13944, 14004, 7440, 17432, 0, 0, 0, 0, 18402, 18547, 12484, 13264, 14777, 15176, 14770, 15169, 14791, 15190, 14784, 15183, 14847, 15246, 14805, 15204, 14798, 15197, 14819, 15218, 14812, 15211, 14854, 15253, 18422, 18567, 12609, 13389, 12589, 13369, 14875, 15274, 14868, 15267, 14889, 15288, 14882, 15281, 14910, 15309, 12754, 13534, 12774, 13554, 18472, 18617, 12919, 13704, 14945, 15344, 14938, 15337, 14959, 15358, 14952, 15351, 15050, 15449, 15022, 15421, 15015, 15414, 15036, 15435, 15029, 15428, 15043, 15442, 13094, 13884, 13064, 13854, 15141, 15540, 15134, 15533, 15155, 15554, 15148, 15547, 15162, 15561, 13169, 13964, 13209, 14009, 13204, 13999, 13184, 13979, 0, 0, 0, 0, 0, 0, 18757, 18763, 19039, 19063, 19047, 19071, 19055, 19079, 18667, 18673, 18895, 18919, 18903, 18927, 18911, 18935, 18775, 18781, 16121, 16137, 16129, 16145, 0, 0, 18679, 18685, 15913, 15929, 15921, 15937, 0, 0, 18799, 18805, 19087, 19111, 19095, 19119, 19103, 19127, 18691, 18697, 18943, 18967, 18951, 18975, 18959, 18983, 18823, 18829, 16217, 16241, 16225, 16249, 16233, 16257, 18703, 18709, 15961, 15985, 15969, 15993, 15977, 16001, 18835, 18841, 16265, 16281, 16273, 16289, 0, 0, 18715, 18721, 16009, 16025, 16017, 16033, 0, 0, 18853, 18859, 16321, 16345, 16329, 16353, 16337, 16361, 0, 18727, 0, 16041, 0, 16049, 0, 16057, 18877, 18883, 19135, 19159, 19143, 19167, 19151, 19175, 18733, 18739, 18991, 19015, 18999, 19023, 19007, 19031, 18745, 17503, 14290, 17509, 18787, 17515, 14308, 17521, 14338, 17527, 14362, 17533, 18865, 17539, 0, 0, 16097, 16105, 17093, 17123, 17103, 17133, 17113, 17143, 15897, 15905, 16913, 16943, 16923, 16953, 16933, 16963, 16169, 16177, 17153, 17183, 17163, 17193, 17173, 17203, 15945, 15953, 16973, 17003, 16983, 17013, 16993, 17023, 16385, 16393, 17213, 17243, 17223, 17253, 17233, 17263, 16065, 16073, 17033, 17063, 17043, 17073, 17053, 17083, 14278, 14272, 16081, 14284, 16089, 0, 18769, 16113, 14134, 14128, 14116, 17455, 14140, 17352, 599, 17352, 17377, 17859, 16153, 14302, 16161, 0, 18811, 16185, 14146, 17461, 14158, 17467, 14170, 17866, 17873, 17880, 14326, 14320, 16193, 17957, 0, 0, 14332, 16209, 14194, 14188, 14176, 17473, 0, 17887, 17894, 17901, 14380, 14374, 16297, 17965, 14350, 14356, 14386, 16313, 14242, 14236, 14224, 17485, 14218, 17845, 17852, 129, 0, 0, 16369, 14392, 16377, 0, 18889, 16401, 14206, 17479, 14254, 17497, 14266, 17307, 17357, 0, 7432, 7436, 71, 7556, 0, 7448, 7452, 239, 0, 7560, 143, 81, 81, 81, 145, 224, 83, 83, 89, 153, 0, 93, 6845, 0, 0, 97, 99, 101, 101, 101, 0, 0, 6863, 7416, 6872, 0, 117, 0, 572, 0, 117, 0, 87, 17427, 69, 71, 0, 139, 75, 77, 0, 91, 159, 776, 779, 782, 785, 147, 0, 7368, 620, 581, 509, 548, 1370, 0, 0, 0, 0, 73, 137, 139, 147, 149, 0, 0, 0, 0, 0, 0, 9054, 9066, 9246, 9030, 9162, 9042, 9168, 9192, 9204, 9048, 9210, 9060, 9198, 9216, 9222, 7660, 83, 6791, 7380, 6800, 109, 6875, 7424, 7800, 6803, 113, 6887, 7428, 89, 71, 73, 91, 147, 6932, 7496, 6941, 173, 7058, 7548, 7820, 6944, 177, 7061, 7552, 153, 135, 137, 155, 0, 15687, 0, 40960, 15694, 40960, 0, 15701, 40960, 15708, 0, 0, 0, 40960, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12454, 40960, 15722, 0, 40960, 40960, 0, 0, 0, 0, 0, 0, 0, 15715, 12449, 12459, 15729, 15736, 40960, 40960, 15743, 15750, 40960, 40960, 15757, 15764, 40960, 40960, 40960, 40960, 0, 0, 15771, 15778, 40960, 40960, 15799, 15806, 40960, 40960, 15813, 15820, 0, 0, 0, 0, 0, 0, 0, 40960, 40960, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40960, 0, 0, 0, 0, 0, 40960, 40960, 0, 40960, 15841, 15848, 15855, 15862, 0, 0, 40960, 40960, 40960, 40960, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 37, 39, 41, 43, 45, 47, 49, 51, 6575, 6578, 6581, 6584, 6587, 6590, 6593, 6596, 6599, 6602, 6611, 7064, 7068, 7072, 7076, 7080, 7084, 7088, 7092, 7096, 7600, 7605, 7610, 7615, 7620, 7625, 7630, 7635, 7640, 7645, 7650, 6572, 6608, 6644, 6680, 6716, 6725, 6731, 6737, 6743, 7312, 7316, 7320, 7324, 7328, 7332, 7336, 7340, 7344, 7348, 7352, 7204, 7208, 7212, 7216, 7220, 7224, 7228, 7232, 7236, 7240, 7244, 7248, 7252, 7256, 7260, 7264, 7268, 7272, 7276, 7280, 7284, 7288, 7292, 7296, 7300, 7304, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 1978, 2014, 2026, 2042, 2050, 2062, 2070, 2078, 2090, 2174, 2198, 2214, 2230, 2246, 2262, 2294, 2298, 2302, 2354, 2394, 2410, 2418, 2422, 2434, 2462, 2466, 2490, 2494, 2502, 2518, 2674, 2694, 2758, 2778, 2786, 2790, 2806, 2834, 2878, 2890, 2922, 2934, 2938, 2942, 2966, 2970, 3014, 3026, 3034, 3042, 3058, 3066, 3074, 3118, 3122, 3130, 3134, 3142, 3150, 3166, 3194, 3314, 3334, 3338, 3466, 3470, 3490, 3494, 3502, 3510, 3518, 3530, 3570, 3586, 3606, 3718, 3730, 3746, 3758, 3770, 3778, 3782, 3786, 3790, 3794, 3978, 4050, 4062, 4066, 4070, 4074, 4082, 4086, 4106, 4134, 4142, 4206, 4210, 4218, 4222, 4230, 4234, 4270, 4274, 4302, 4306, 4310, 4314, 4334, 4370, 4374, 4378, 4414, 4478, 4482, 4514, 4530, 4538, 4570, 4606, 4674, 4682, 4702, 4714, 4722, 4730, 4734, 4738, 4762, 4766, 4794, 4802, 4810, 4814, 4826, 4834, 4838, 4842, 4850, 4854, 5014, 5034, 5086, 5090, 5098, 5142, 5150, 5158, 5166, 5226, 5230, 5238, 5242, 5246, 5290, 5294, 5302, 5322, 5326, 5354, 5362, 5366, 5402, 5434, 5454, 5458, 5466, 5510, 5514, 5530, 5566, 5578, 5594, 5618, 5626, 5630, 5634, 5638, 5650, 5654, 5662, 5690, 5694, 5698, 5722, 5726, 5734, 5754, 5758, 5762, 5770, 5774, 0, 0, 0, 0, 0, 0, 40960, 0, 0, 0, 0, 40960, 16457, 40960, 16465, 40960, 16473, 40960, 16481, 40960, 16489, 40960, 16497, 40960, 16505, 40960, 16513, 40960, 16521, 40960, 16529, 40960, 16537, 40960, 16545, 0, 40960, 16553, 40960, 16561, 40960, 16569, 0, 0, 0, 0, 0, 40960, 16577, 16585, 40960, 16593, 16601, 40960, 16609, 16617, 40960, 16625, 16633, 40960, 16641, 16649, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16449, 0, 0, 0, 0, 39172, 39172, 17437, 17443, 40960, 16657, 10212, 0, 0, 0, 0, 0, 0, 40960, 0, 0, 0, 0, 40960, 16673, 40960, 16681, 40960, 16689, 40960, 16697, 40960, 16705, 40960, 16713, 40960, 16721, 40960, 16729, 40960, 16737, 40960, 16745, 40960, 16753, 40960, 16761, 0, 40960, 16769, 40960, 16777, 40960, 16785, 0, 0, 0, 0, 0, 40960, 16793, 16801, 40960, 16809, 16817, 40960, 16825, 16833, 40960, 16841, 16849, 40960, 16857, 16865, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40960, 40960, 40960, 40960, 0, 16665, 0, 0, 16873, 16881, 16889, 16897, 0, 0, 40960, 16905, 10233, 1114, 1054, 1058, 1062, 1134, 1066, 1070, 1074, 1078, 1082, 1086, 1090, 1094, 1098, 1102, 19198, 19204, 19210, 19216, 19222, 19228, 19234, 19240, 19246, 19252, 19258, 19264, 19270, 19276, 19282, 19288, 19294, 19300, 19306, 19312, 19318, 1206, 1106, 1110, 1242, 1246, 1250, 1254, 1258, 1262, 1266, 1118, 1270, 1274, 1122, 1126, 1130, 1138, 1142, 1146, 1150, 1154, 1158, 1162, 1166, 1170, 1174, 1178, 1182, 1186, 1190, 1278, 1282, 1194, 1198, 1202, 1210, 1214, 1218, 1222, 1226, 1230, 1234, 1238, 0, 0, 0, 1978, 2070, 1990, 2678, 1994, 2018, 1998, 4238, 2050, 2006, 1982, 2810, 2698, 2090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8580, 8586, 8592, 8598, 8604, 8610, 8616, 8622, 8628, 8634, 8640, 8646, 8652, 8658, 10333, 10342, 10351, 10360, 10369, 10378, 10387, 10396, 10405, 10423, 10432, 10441, 10450, 10459, 10414, 11491, 11300, 0, 8664, 8688, 8676, 8760, 8694, 8724, 8670, 8718, 8682, 8736, 8784, 8814, 8808, 8796, 8874, 8766, 8778, 8802, 8790, 8832, 8748, 8820, 8862, 8838, 8730, 8700, 8754, 8772, 8826, 8706, 8868, 8742, 8844, 8712, 8850, 8856, 2602, 3070, 3490, 4546, 0, 0, 0, 0, 0, 0, 0, 0, 7412, 6614, 6617, 6620, 6623, 6626, 6629, 6632, 6635, 6638, 6647, 6650, 6653, 6656, 6659, 6662, 1030, 1038, 1042, 1050, 1054, 1058, 1066, 1074, 1078, 1086, 1090, 1094, 1098, 1102, 12121, 12129, 12137, 12145, 12153, 12161, 12169, 12177, 12193, 12201, 12209, 12217, 12225, 12233, 12308, 12252, 12185, 0, 1978, 2070, 1990, 2678, 2074, 2218, 1986, 2214, 2054, 2434, 3586, 3978, 3794, 3606, 5466, 2694, 3530, 3654, 3590, 4422, 2550, 4094, 5250, 4442, 2366, 4490, 4246, 2834, 5386, 2170, 2470, 3826, 5666, 2110, 2254, 3734, 1994, 2018, 1998, 3030, 2538, 2426, 2898, 2886, 4326, 2106, 5270, 2454, 2798, 6665, 6668, 6671, 6674, 6683, 6686, 6689, 6692, 6695, 6698, 6701, 6704, 6707, 6710, 6719, 7670, 7685, 7700, 7715, 7730, 7745, 7760, 7775, 7790, 8892, 8910, 8928, 6785, 7476, 6914, 7384, 1478, 1486, 1494, 1502, 1510, 1514, 1518, 1522, 1526, 1530, 1534, 1538, 1542, 1546, 1550, 1554, 1558, 1566, 1570, 1574, 1578, 1582, 1586, 1590, 1594, 1598, 1602, 1606, 1610, 1614, 1618, 1622, 1626, 1630, 1634, 1642, 1650, 1658, 1662, 1666, 1670, 1674, 1678, 1682, 1686, 1690, 1694, 10282, 11331, 10975, 11347, 10679, 12325, 10689, 10699, 12393, 10988, 10709, 10719, 10729, 11027, 11040, 11001, 11014, 12266, 11053, 11066, 11509, 10219, 11528, 11547, 11363, 11079, 11566, 11585, 11092, 10739, 10749, 12280, 11105, 11379, 12342, 10759, 10769, 11118, 10779, 10789, 10240, 10247, 10799, 10809, 11604, 11131, 11395, 11623, 11144, 10829, 10819, 12413, 11157, 11642, 10839, 11411, 10849, 11183, 10859, 11196, 12359, 11170, 11427, 11209, 10254, 12376, 10869, 10879, 11222, 10889, 10899, 10909, 11443, 11235, 10261, 11661, 12241, 11459, 11248, 12294, 10919, 10929, 11261, 10268, 11274, 11475, 10275, 11680, 10939, 7655, 7675, 7690, 7705, 7720, 7735, 7750, 7765, 7780, 7795, 8898, 8916, 8934, 8946, 8958, 8970, 8982, 8994, 9006, 9018, 9078, 9090, 9102, 9114, 9126, 7492, 6902, 6755, 7444, 7031, 7046, 6908, 7468, 7472, 6797, 10296, 10310, 10289, 10303, 11287, 7034, 7010, 7568, 6986, 6947, 6806, 6821, 6773, 7456, 7810, 7037, 7013, 7572, 7584, 6998, 6956, 6788, 7500, 7392, 7372, 7420, 7588, 7001, 6905, 6959, 6926, 7025, 7592, 7004, 6896, 6962, 7532, 7460, 6980, 7508, 7536, 7464, 6983, 7512, 9240, 9260, 6854, 7504, 7396, 7376, 7544, 10317, 10468, 7049, 7028, 7596, 7007, 7040, 7016, 7576, 6989, 6950, 6833, 7043, 7019, 7580, 6992, 6953, 6836, 7516, 7400, 7805, 6758, 6890, 6893, 9253, 7364, 6899, 6776, 6929, 6779, 6938, 6809, 6812, 6965, 6971, 6974, 7520, 6977, 6995, 7528, 7540, 6848, 7815, 7404, 6851, 7052, 6869, 6884, 9234, 9228, 7665, 7680, 7695, 7710, 7725, 7740, 7755, 7770, 7785, 8886, 8904, 8922, 8940, 8952, 8964, 8976, 8988, 9000, 9012, 9072, 9084, 9096, 9108, 9120, 9132, 9138, 9144, 9150, 9156, 9174, 9180, 7488, 5234, 3574, 5326, 5274, 3922, 2022, 2522, 5926, 5926, 2822, 5466, 2622, 2818, 3306, 4298, 4698, 5010, 5070, 5122, 5398, 3694, 3834, 4006, 4158, 4954, 5442, 5742, 2058, 2478, 3714, 4042, 5006, 5822, 2990, 3954, 4990, 5138, 3358, 4790, 5082, 3098, 3594, 3858, 4118, 5410, 2122, 2274, 2382, 3462, 3706, 4038, 4330, 4722, 4998, 5022, 5314, 5610, 5790, 5818, 4390, 4454, 4638, 4926, 5494, 5830, 5190, 2754, 3126, 4566, 4758, 4090, 4398, 5266, 5602, 2750, 2954, 3698, 3878, 3930, 4622, 4662, 5538, 2378, 4770, 2286, 2282, 4498, 4642, 4950, 5546, 5218, 3362, 3694, 5202, 2034, 2910, 3214, 4138, 4266, 2414, 4406, 2138, 3186, 2002, 3814, 3486, 4618, 2498, 2734, 4342, 4958, 5174, 3762, 5362, 3806, 3378, 4886, 3410, 4262, 2086, 2210, 2278, 3662, 4598, 4846, 5186, 5462, 2390, 2570, 2834, 3114, 3514, 3958, 4410, 5522, 5750, 5834, 5858, 2354, 3566, 3742, 5350, 3062, 3282, 3310, 3454, 3942, 4018, 4194, 4486, 4650, 4750, 5334, 4966, 5374, 5498, 2314, 2358, 2590, 4002, 5102, 5174, 3094, 3206, 3402, 3754, 4562, 4126, 2102, 2682, 2910, 3010, 3218, 4154, 4182, 4710, 4742, 5470, 5598, 5614, 5674, 2126, 4474, 5450, 5574, 3242, 2066, 2162, 2914, 2946, 3498, 3694, 4030, 4294, 4978, 5394, 5918, 3550, 5534, 2350, 3626, 3638, 3850, 3906, 4166, 4258, 4386, 4614, 5686, 2218, 3326, 5550, 2146, 2982, 3882, 5338, 3170, 3250, 3646, 4138, 5558, 2322, 2554, 2962, 3534, 3610, 3674, 3822, 4162, 4278, 4690, 5106, 5118, 5458, 5586, 2430, 3910, 2558, 4034, 4198, 4994, 5562, 5798, 5838, 3634, 3874, 4798, 4530, 4542, 4578, 4114, 3994, 5214, 2094, 4902, 2326, 2310, 3078, 3366, 4590, 2894, 3838, 3562, 5346, 5090, 5542, 5150, 3106, 2178, 2646, 0, 0, 2730, 0, 3546, 0, 0, 2290, 4122, 4318, 4418, 4446, 4450, 4470, 5622, 4582, 4714, 0, 5002, 0, 5198, 0, 0, 5378, 5422, 0, 0, 0, 5706, 5710, 5714, 5814, 5414, 5570, 2130, 2166, 2186, 2374, 2386, 2450, 2630, 2658, 2666, 2726, 2738, 2958, 2966, 3230, 3270, 3278, 3302, 3474, 3522, 3554, 3666, 3862, 3890, 3938, 4022, 4054, 4170, 4394, 4422, 4430, 4426, 4434, 4438, 4442, 4462, 4466, 4502, 4522, 4550, 4650, 4658, 4666, 4686, 4726, 4806, 4858, 4858, 4962, 5130, 5154, 5206, 5210, 5278, 5282, 5370, 5378, 5590, 5658, 5682, 3222, 6219, 4830, 0, 0, 2010, 2270, 2206, 2118, 2182, 2226, 2370, 2398, 2630, 2610, 2626, 2654, 2730, 2746, 2814, 2826, 2854, 2870, 3102, 3110, 3158, 3190, 3238, 3262, 3246, 3278, 3266, 3302, 3330, 3418, 3430, 3438, 3478, 3546, 3594, 3598, 3618, 3746, 3762, 3850, 3926, 3918, 3938, 3966, 4022, 4366, 4058, 4110, 4122, 4186, 4214, 4250, 4286, 4290, 4318, 4322, 4338, 4358, 4354, 4402, 4526, 4550, 4574, 4630, 4650, 4678, 4726, 4906, 4946, 5062, 5134, 5146, 5154, 5178, 5198, 5182, 5206, 5202, 5194, 5210, 5222, 5282, 5342, 5390, 5446, 5478, 5554, 5590, 5622, 5642, 5658, 5670, 5682, 5766, 5926, 6114, 6109, 6159, 1794, 1834, 1838, 6289, 6334, 6454, 5906, 5922, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6917, 6920, 6923, 7480, 7484, 7055, 7055, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7845, 7830, 7835, 7850, 7840, 0, 0, 0, 0, 0, 17617, 33046, 17731, 800, 776, 785, 788, 791, 794, 797, 803, 806, 23, 17713, 17719, 17973, 17981, 17545, 17551, 17557, 17563, 17575, 17581, 17587, 17599, 17605, 0, 17611, 17623, 17629, 17635, 17647, 0, 17653, 0, 17659, 17665, 0, 17671, 17677, 0, 17689, 17695, 17701, 17707, 17725, 17593, 17569, 17641, 17683, 7855, 908, 908, 917, 917, 917, 917, 920, 920, 920, 920, 926, 926, 926, 926, 914, 914, 914, 914, 923, 923, 923, 923, 911, 911, 911, 911, 962, 962, 962, 962, 965, 965, 965, 965, 932, 932, 932, 932, 929, 929, 929, 929, 935, 935, 935, 935, 938, 938, 938, 938, 947, 947, 944, 944, 950, 950, 941, 941, 956, 956, 953, 953, 968, 968, 968, 968, 974, 974, 974, 974, 980, 980, 980, 980, 977, 977, 977, 977, 983, 983, 986, 986, 986, 986, 17839, 17839, 992, 992, 992, 992, 989, 989, 989, 989, 1019, 1019, 17833, 17833, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 971, 971, 971, 971, 1001, 1001, 998, 998, 1004, 1004, 8575, 1010, 1010, 995, 995, 1007, 1007, 1016, 1016, 1016, 1016, 896, 896, 9946, 9946, 10058, 10058, 10009, 10009, 10037, 10037, 10030, 10030, 10044, 10044, 10051, 10051, 10051, 10016, 10016, 10016, 1013, 1013, 1013, 1013, 9953, 9960, 9988, 10016, 10023, 7865, 7870, 7875, 7890, 7905, 7910, 7915, 7920, 7925, 7940, 7955, 7960, 7965, 7980, 7995, 8000, 8005, 8010, 8025, 8030, 8045, 8050, 8055, 8070, 8075, 8080, 8090, 8150, 8165, 8180, 8185, 8190, 8200, 8215, 8220, 8235, 8240, 8245, 8260, 8265, 8280, 8285, 8290, 8295, 8300, 8305, 8310, 8315, 8320, 8325, 8330, 8335, 8340, 8345, 8350, 8355, 8360, 8365, 8375, 8380, 8385, 8390, 8400, 8405, 8415, 8420, 8425, 8430, 8435, 8440, 8445, 8450, 8455, 8470, 8485, 8490, 8495, 8500, 8505, 8510, 8520, 8525, 8530, 8545, 8560, 8565, 17761, 17767, 17821, 17908, 17915, 17922, 17929, 17936, 17943, 9974, 9981, 9988, 9995, 10016, 10023, 7880, 7885, 7890, 7895, 7905, 7910, 7930, 7935, 7940, 7945, 7955, 7960, 7970, 7975, 7980, 7985, 7995, 8000, 8300, 8305, 8320, 8325, 8330, 8350, 8355, 8360, 8365, 8390, 8400, 8405, 8410, 8430, 8460, 8465, 8470, 8475, 8485, 8490, 17821, 8535, 8540, 8545, 8550, 8560, 8565, 9953, 9960, 9967, 9988, 10002, 7865, 7870, 7875, 7890, 7900, 7915, 7920, 7925, 7940, 7950, 7980, 8005, 8010, 8025, 8030, 8045, 8055, 8070, 8075, 8080, 8090, 8150, 8155, 8165, 8180, 8185, 8190, 8200, 8215, 8235, 8240, 8245, 8260, 8265, 8280, 8285, 8290, 8295, 8310, 8315, 8335, 8340, 8345, 8350, 8355, 8375, 8380, 8385, 8390, 8395, 8415, 8420, 8425, 8430, 8445, 8450, 8455, 8470, 8480, 8495, 8500, 17809, 8520, 8525, 8530, 8545, 8555, 9988, 10002, 7890, 7900, 7940, 7950, 7980, 7990, 8090, 8095, 8130, 8135, 8350, 8355, 8390, 8470, 8480, 8545, 8555, 17989, 17997, 18005, 8225, 8230, 8250, 8255, 8270, 8275, 8100, 8105, 8140, 8145, 8035, 8040, 8015, 8020, 8060, 8065, 8170, 8175, 8205, 8210, 8110, 8115, 8120, 8130, 8125, 8085, 8160, 8195, 8225, 8230, 8250, 8255, 8270, 8275, 8100, 8105, 8140, 8145, 8035, 8040, 8015, 8020, 8060, 8065, 8170, 8175, 8205, 8210, 8110, 8115, 8120, 8130, 8125, 8085, 8160, 8195, 8110, 8115, 8120, 8130, 8095, 8135, 8220, 8070, 8075, 8080, 8110, 8115, 8120, 8220, 8235, 17737, 17737, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9281, 9302, 9302, 9309, 9316, 9337, 9344, 9351, 9386, 9386, 9421, 9414, 9442, 9428, 9435, 9470, 9470, 9463, 9477, 9477, 9519, 9519, 9547, 9491, 9491, 9484, 9505, 9505, 9512, 9512, 9554, 9568, 9568, 9575, 9575, 9582, 9589, 9596, 9603, 9603, 9610, 9624, 9638, 9631, 9645, 9645, 9666, 9673, 9722, 9736, 9729, 9701, 9701, 9743, 9743, 9750, 9750, 9792, 9799, 9806, 9764, 9778, 9813, 9820, 0, 0, 9771, 9904, 9911, 9869, 9876, 9848, 9848, 9855, 9897, 9890, 9932, 9932, 9274, 9295, 9288, 9330, 9323, 9365, 9358, 9400, 9372, 9393, 9449, 9526, 9498, 9561, 9715, 9757, 9925, 9918, 9939, 9834, 9680, 9883, 9666, 9722, 9617, 9694, 9841, 9827, 9708, 9687, 9708, 9841, 9379, 9407, 9785, 9652, 9267, 9687, 9596, 9547, 9456, 9862, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9540, 9659, 10486, 10477, 10531, 10513, 10495, 10522, 10540, 9533, 11699, 11315, 10504, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 1406, 1410, 53, 55, 3, 63, 1466, 1470, 7308, 0, 0, 0, 0, 0, 0, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33070, 33070, 33070, 33070, 33070, 33070, 33070, 33075, 33075, 6560, 1338, 1334, 127, 127, 17, 19, 183, 187, 1458, 1462, 1446, 1450, 1422, 1426, 1414, 1418, 1430, 1434, 1438, 1442, 0, 0, 119, 123, 17322, 17322, 17322, 17322, 127, 127, 127, 25, 1406, 29, 0, 55, 53, 63, 3, 1338, 17, 19, 183, 187, 1458, 1462, 7, 13, 21, 23, 27, 57, 61, 59, 0, 121, 9, 11, 65, 0, 0, 0, 0, 17387, 17773, 17392, 0, 17397, 0, 17402, 17779, 17407, 17785, 17412, 17791, 17417, 17797, 17422, 17803, 809, 17743, 17743, 17749, 17749, 17815, 17815, 17755, 17755, 17827, 17827, 17827, 17827, 812, 812, 815, 815, 815, 815, 818, 818, 821, 821, 821, 821, 824, 824, 824, 824, 827, 827, 827, 827, 830, 830, 830, 830, 833, 833, 833, 833, 836, 836, 839, 839, 842, 842, 845, 845, 848, 848, 848, 848, 851, 851, 851, 851, 854, 854, 854, 854, 857, 857, 857, 857, 860, 860, 860, 860, 863, 863, 863, 863, 866, 866, 866, 866, 869, 869, 869, 869, 872, 872, 872, 872, 875, 875, 875, 875, 878, 878, 878, 878, 881, 881, 881, 881, 884, 884, 884, 884, 887, 887, 887, 887, 890, 890, 890, 890, 893, 893, 896, 896, 899, 899, 899, 899, 12097, 12097, 12105, 12105, 12113, 12113, 8370, 8370, 0, 0, 0, 129, 131, 133, 135, 137, 139, 141, 143, 145, 147, 149, 151, 153, 155, 157, 159, 161, 163, 165, 167, 169, 171, 173, 175, 177, 179, 181, 183, 185, 187, 189, 1390, 1394, 1410, 1430, 1434, 1406, 1702, 1694, 1474, 1482, 1490, 1498, 1506, 1638, 1646, 1654, 1562, 1706, 1478, 1486, 1494, 1502, 1510, 1514, 1518, 1522, 1526, 1530, 1534, 1538, 1542, 1546, 1550, 1554, 1558, 1566, 1570, 1574, 1578, 1582, 1586, 1590, 1594, 1598, 1602, 1606, 1610, 1614, 1618, 1622, 1626, 1630, 1634, 1642, 1650, 1658, 1662, 1666, 1670, 1674, 1678, 1682, 1698, 19385, 19391, 1206, 1030, 1034, 19324, 1038, 19330, 19336, 1042, 1046, 1050, 19342, 19348, 19354, 19360, 19366, 19372, 1114, 1054, 1058, 1062, 1134, 1066, 1070, 1074, 1078, 1082, 1086, 1090, 1094, 1098, 1102, 0, 0, 0, 19198, 19204, 19210, 19216, 19222, 19228, 0, 0, 19234, 19240, 19246, 19252, 19258, 19264, 0, 0, 19270, 19276, 19282, 19288, 19294, 19300, 0, 0, 19306, 19312, 19318, 0, 0, 0, 191, 194, 203, 17317, 200, 197, 1342, 0, 1378, 1346, 1350, 1354, 1358, 1382, 1386, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 497, 500, 212, 446, 269, 0, 467, 5966, 473, 470, 278, 281, 1318, 284, 296, 485, 314, 308, 302, 449, 224, 452, 323, 404, 488, 491, 338, 5974, 5954, 344, 5979, 425, 5984, 218, 368, 371, 163, 380, 5989, 386, 389, 392, 482, 476, 5970, 479, 407, 1398, 0, 428, 461, 464, 443, 245, 248, 251, 5994, 5999, 0, 0, 0, 0, 0, 99, 101, 103, 105, 107, 109, 111, 113, 115, 117, 131, 133, 135, 137, 139, 141, 143, 145, 147, 149, 151, 153, 155, 157, 159, 161, 163, 165, 167, 169, 171, 173, 175, 177, 179, 181, 227, 257, 0, 0, 503, 506, 509, 512, 515, 518, 521, 524, 527, 530, 533, 536, 539, 542, 545, 548, 551, 524, 554, 557, 560, 563, 566, 569, 641, 644, 647, 1362, 587, 596, 602, 638, 623, 620, 650, 653, 0, 0, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 0, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 0, 0, 33075, 33075, 33075, 33075, 33075, 33075, 33075, 0, 33075, 33075, 0, 33075, 33075, 33075, 33075, 33075, 0, 0, 0, 0, 0, 656, 659, 662, 665, 668, 671, 674, 677, 680, 683, 686, 689, 695, 698, 701, 704, 707, 710, 713, 716, 719, 722, 725, 731, 737, 740, 5942, 770, 746, 749, 773, 761, 767, 656, 659, 662, 665, 668, 671, 674, 677, 680, 683, 686, 695, 698, 704, 710, 713, 716, 719, 722, 725, 728, 731, 755, 746, 743, 752, 758, 5938, 764, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 812, 815, 827, 836, 0, 893, 845, 830, 860, 899, 878, 881, 884, 887, 848, 866, 872, 854, 875, 842, 851, 821, 824, 833, 839, 857, 863, 869, 902, 983, 959, 905, 0, 815, 827, 0, 890, 0, 0, 830, 0, 899, 878, 881, 884, 887, 848, 866, 872, 854, 875, 0, 851, 821, 824, 833, 0, 857, 0, 869, 0, 0, 0, 0, 0, 0, 827, 0, 0, 0, 0, 830, 0, 899, 0, 881, 0, 887, 848, 866, 0, 854, 875, 0, 851, 0, 0, 833, 0, 857, 0, 869, 0, 983, 0, 905, 0, 815, 827, 0, 890, 0, 0, 830, 860, 899, 878, 0, 884, 887, 848, 866, 872, 854, 875, 0, 851, 821, 824, 833, 0, 857, 863, 869, 902, 0, 959, 0, 812, 815, 827, 836, 890, 893, 845, 830, 860, 899, 0, 881, 884, 887, 848, 866, 872, 854, 875, 842, 851, 821, 824, 833, 839, 857, 863, 869, 0, 0, 0, 0, 0, 815, 827, 836, 0, 893, 845, 830, 860, 899, 0, 881, 884, 887, 848, 866, 872, 854, 875, 842, 851, 821, 824, 833, 839, 857, 863, 869, 0, 0, 0, 0, 6566, 6563, 6569, 6605, 6641, 6677, 6713, 6722, 6728, 6734, 6740, 0, 0, 0, 0, 0, 7100, 7104, 7108, 7112, 7116, 7120, 7124, 7128, 7132, 7136, 7140, 7144, 7148, 7152, 7156, 7160, 7164, 7168, 7172, 7176, 7180, 7184, 7188, 7192, 7196, 7200, 10325, 71, 101, 6761, 6881, 0, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 10205, 10226, 1534, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3338, 2882, 2510, 18181, 2070, 2794, 5162, 2810, 2082, 3538, 4010, 3498, 2338, 3174, 2234, 3506, 2318, 4626, 4222, 5254, 2766, 2566, 3934, 3350, 3394, 1978, 1990, 5382, 3030, 2018, 2538, 3382, 5294, 3342, 4458, 4518, 2546, 3902, 3590, 3586, 4242, 2342, 2642, 5438, 0, 0, 0, 0, 2038, 2030, 2046, 6004, 2114, 2130, 2134, 2142, 2150, 2154, 2166, 2158, 1710, 6024, 2186, 2190, 2194, 2222, 6009, 1714, 2202, 2234, 6019, 2250, 2258, 2098, 2266, 2270, 6494, 2298, 2306, 1722, 2330, 2334, 2342, 2346, 1726, 2370, 2374, 2386, 2398, 2402, 2406, 2414, 2446, 2450, 2458, 2474, 2482, 2486, 2486, 2486, 6039, 3982, 2506, 2514, 6044, 2526, 2534, 2542, 2582, 2562, 2574, 2578, 2586, 2594, 2598, 2606, 2614, 2618, 2618, 2626, 2634, 2638, 2650, 2686, 2658, 2690, 2662, 2670, 2310, 2762, 2706, 2710, 2714, 2702, 2722, 2718, 2742, 6049, 2770, 2774, 2782, 2794, 2802, 2830, 6054, 6059, 2842, 2846, 2850, 2838, 2858, 1730, 1734, 2866, 2874, 2874, 6064, 2902, 2906, 2910, 2918, 6069, 2926, 2930, 3146, 2938, 1738, 2950, 2966, 2978, 2974, 6079, 2986, 6084, 2998, 2994, 3002, 3018, 3022, 1742, 3038, 3046, 3050, 3054, 1746, 6089, 1750, 3082, 3086, 3090, 3098, 6544, 3122, 6099, 6099, 4818, 3138, 3138, 1754, 6134, 6344, 3154, 3162, 1758, 3182, 3198, 3202, 3210, 3226, 1766, 1762, 3230, 6104, 3234, 3254, 3258, 3262, 3258, 3274, 3278, 3294, 3286, 3290, 3298, 3302, 3306, 3318, 3322, 3346, 3354, 3370, 3390, 6119, 3386, 3374, 3398, 3406, 3426, 6124, 3434, 3422, 3414, 1770, 3442, 3450, 3458, 3446, 1774, 3474, 3482, 6129, 3526, 3578, 3542, 1786, 3554, 1782, 1778, 2238, 2242, 3582, 3558, 4774, 1886, 3594, 3598, 3602, 3622, 3614, 6154, 1790, 3642, 3630, 3658, 3666, 6164, 3670, 3650, 3678, 1794, 3682, 3686, 3690, 3702, 6169, 3710, 1798, 3722, 6174, 3726, 1802, 3738, 3750, 3762, 3766, 6179, 6074, 6184, 3798, 6189, 3810, 3818, 3802, 3830, 3846, 3862, 3850, 3854, 3866, 3870, 6194, 3842, 3894, 3898, 1806, 3918, 3914, 6199, 3886, 3946, 6204, 6209, 3950, 3970, 3966, 3962, 1810, 3974, 3990, 3986, 3998, 6014, 4014, 6214, 4026, 6224, 4046, 4058, 4078, 6229, 4098, 4102, 6234, 6239, 4130, 4146, 1814, 4150, 1818, 1818, 4174, 4178, 4186, 4190, 4202, 1822, 4226, 6244, 4254, 6249, 4266, 6094, 4282, 6254, 6259, 6264, 1826, 1830, 4338, 6274, 6269, 6279, 6284, 4346, 4350, 4350, 4358, 1838, 4362, 1842, 1846, 6294, 4382, 4390, 4402, 1850, 6299, 4438, 6304, 6309, 4470, 4494, 1854, 4502, 4506, 4510, 6314, 6319, 6319, 4534, 1858, 6324, 4554, 4558, 1862, 6329, 4586, 1866, 4602, 4594, 4610, 6339, 4634, 1870, 4646, 4654, 4670, 1874, 6349, 6354, 1878, 6359, 4694, 6364, 4706, 4718, 4726, 6369, 6374, 4746, 6379, 4754, 6139, 1882, 4778, 4782, 1890, 4786, 2862, 6384, 6389, 6144, 6149, 4818, 4822, 5358, 1894, 4866, 4862, 4870, 2362, 4874, 4878, 4882, 4890, 6394, 4886, 4894, 4914, 4918, 4898, 4922, 4942, 4962, 4910, 4930, 4934, 4938, 6399, 6409, 6404, 1898, 4970, 4974, 4982, 6429, 4986, 6414, 1902, 1906, 6419, 6424, 1910, 5018, 5022, 5026, 5030, 5042, 5038, 5050, 5046, 5062, 5054, 5058, 5066, 1914, 5074, 5078, 1918, 5094, 5098, 6434, 5110, 5114, 1922, 5126, 1718, 6439, 6444, 1926, 1930, 5170, 5194, 5222, 5238, 6449, 5258, 5262, 5286, 5298, 6459, 6029, 5310, 5306, 5318, 6034, 5330, 5342, 6464, 6469, 5406, 5418, 5426, 6474, 5430, 5474, 5486, 5490, 5482, 5502, 5506, 6479, 5518, 1934, 5526, 6484, 1938, 5582, 3006, 5606, 6489, 6499, 1942, 1946, 5646, 6504, 1950, 6509, 5670, 5670, 5678, 6514, 5702, 1954, 5718, 5730, 5738, 5746, 1958, 6519, 5766, 5794, 5806, 1962, 1966, 5810, 6524, 1970, 6529, 6534, 6539, 5846, 1974, 5866, 5874, 5878, 5886, 5894, 5902, 6549, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]); + nfkcIndex = $toNativeArray($kindUint16, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 1, 2, 3, 96, 4, 5, 0, 97, 98, 6, 7, 8, 9, 10, 99, 100, 11, 0, 0, 12, 101, 102, 13, 0, 103, 104, 105, 0, 106, 2, 3, 4, 5, 0, 0, 0, 0, 0, 0, 6, 7, 8, 9, 0, 10, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 108, 109, 14, 110, 111, 112, 113, 114, 115, 116, 117, 112, 118, 119, 120, 116, 121, 122, 123, 124, 125, 0, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 0, 136, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 143, 0, 0, 144, 0, 0, 145, 0, 146, 0, 0, 0, 147, 148, 149, 150, 15, 151, 152, 153, 154, 0, 0, 155, 156, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 157, 158, 159, 160, 27, 28, 161, 162, 163, 29, 30, 164, 165, 0, 0, 0, 0, 31, 32, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167, 168, 0, 169, 0, 0, 0, 0, 0, 170, 0, 171, 0, 172, 0, 173, 0, 0, 174, 175, 33, 34, 35, 176, 177, 36, 37, 38, 178, 39, 40, 0, 41, 42, 43, 44, 45, 46, 47, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 179, 180, 181, 0, 182, 0, 183, 184, 0, 0, 185, 186, 187, 188, 189, 0, 0, 190, 191, 0, 192, 0, 193, 194, 195, 196, 197, 198, 199, 200, 194, 195, 196, 197, 198, 199, 200, 194, 195, 196, 197, 198, 199, 200, 194, 195, 196, 197, 198, 199, 200, 194, 195, 196, 197, 198, 199, 200, 194, 195, 196, 197, 198, 199, 200, 194, 195, 196, 197, 198, 199, 200, 194, 195, 196, 197, 198, 199, 200, 194, 195, 196, 197, 198, 199, 200, 194, 195, 196, 197, 198, 199, 200, 194, 195, 196, 197, 198, 199, 200, 194, 195, 196, 197, 198, 199, 200, 194, 195, 196, 197, 198, 199, 200, 194, 195, 196, 197, 198, 199, 200, 194, 195, 196, 197, 198, 199, 200, 194, 195, 196, 197, 198, 199, 200, 194, 195, 196, 197, 198, 199, 200, 194, 195, 196, 197, 198, 199, 200, 194, 195, 196, 197, 198, 199, 200, 194, 195, 196, 197, 198, 199, 200, 194, 195, 196, 197, 198, 199, 200, 194, 195, 196, 197, 198, 199, 200, 194, 195, 196, 197, 198, 199, 200, 194, 195, 196, 197, 198, 199, 200, 194, 195, 196, 197, 198, 199, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 202, 73, 74, 75, 0, 0, 0, 0, 0, 0, 0, 203, 0, 0, 0, 204, 0, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 206, 0, 0, 207, 0, 0, 0, 0, 0, 0, 0, 0, 208, 0, 0, 0, 0, 0, 209, 210, 0, 211, 212, 0, 0, 213, 214, 0, 215, 188, 0, 216, 217, 0, 0, 218, 219, 220, 0, 0, 0, 221, 222, 223, 0, 0, 224, 225, 226, 0, 227, 0, 228, 0, 0, 0, 229, 0, 0, 0, 230, 231, 0, 232, 233, 234, 235, 0, 0, 0, 0, 0, 226, 0, 0, 0, 0, 236, 237, 0, 0, 0, 0, 0, 0, 238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 243, 244, 245, 0, 246, 0, 0, 0, 0, 0, 0, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 77, 257, 258, 259, 260, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 261, 0, 240, 0, 0, 0, 0, 0, 262, 263, 0, 0, 0, 0, 0, 0, 0, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, 0, 266, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 82, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 267, 268, 0, 85, 269, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 270, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 87, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 12, 0, 0, 0, 0, 13, 0, 0, 0, 0, 14, 0, 15, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]); + nfkcSparseOffset = new sliceType$1([0, 14, 18, 28, 38, 54, 56, 61, 72, 87, 100, 108, 113, 118, 120, 124, 132, 139, 142, 150, 154, 158, 160, 162, 171, 175, 182, 187, 190, 200, 203, 210, 218, 222, 224, 228, 232, 238, 255, 267, 269, 275, 277, 279, 281, 283, 285, 287, 289, 292, 295, 297, 300, 303, 307, 313, 320, 329, 331, 334, 336, 347, 358, 372, 386, 402, 416, 423, 429, 444, 448, 450, 454, 456, 459, 461, 464, 466, 469, 471, 473, 475, 487, 497, 507, 510, 514, 516, 518, 523, 526, 529, 531, 533, 535, 537, 543, 546, 551, 553, 560, 566, 572, 580, 586, 592, 598, 602, 604, 606, 608, 610, 616, 619, 621, 623, 625, 631, 635, 639, 647, 654, 657, 660, 662, 665, 673, 677, 684, 687, 693, 695, 697, 700, 702, 705, 710, 712, 714, 716, 718, 720, 723, 725, 727, 729, 731, 733, 735, 748, 758, 760, 762, 766, 771, 783, 788, 797, 803, 808, 812, 817, 821, 837, 851, 865, 879, 881, 883, 885, 889, 891, 894, 905, 907, 917]); + nfkcSparseValues = $toNativeArray($kindStruct, [$clone(new valueRange.ptr(2, 13, 0), valueRange), $clone(new valueRange.ptr(1, 160, 160), valueRange), $clone(new valueRange.ptr(17337, 168, 168), valueRange), $clone(new valueRange.ptr(131, 170, 170), valueRange), $clone(new valueRange.ptr(17317, 175, 175), valueRange), $clone(new valueRange.ptr(37, 178, 179), valueRange), $clone(new valueRange.ptr(17307, 180, 180), valueRange), $clone(new valueRange.ptr(608, 181, 181), valueRange), $clone(new valueRange.ptr(17362, 184, 184), valueRange), $clone(new valueRange.ptr(35, 185, 185), valueRange), $clone(new valueRange.ptr(159, 186, 186), valueRange), $clone(new valueRange.ptr(9036, 188, 188), valueRange), $clone(new valueRange.ptr(9024, 189, 189), valueRange), $clone(new valueRange.ptr(9186, 190, 190), valueRange), $clone(new valueRange.ptr(145, 3, 0), valueRange), $clone(new valueRange.ptr(18467, 160, 161), valueRange), $clone(new valueRange.ptr(18517, 175, 176), valueRange), $clone(new valueRange.ptr(40960, 183, 183), valueRange), $clone(new valueRange.ptr(4, 9, 0), valueRange), $clone(new valueRange.ptr(40960, 146, 146), valueRange), $clone(new valueRange.ptr(145, 176, 176), valueRange), $clone(new valueRange.ptr(320, 177, 177), valueRange), $clone(new valueRange.ptr(149, 178, 178), valueRange), $clone(new valueRange.ptr(165, 179, 179), valueRange), $clone(new valueRange.ptr(377, 180, 180), valueRange), $clone(new valueRange.ptr(383, 181, 181), valueRange), $clone(new valueRange.ptr(395, 182, 182), valueRange), $clone(new valueRange.ptr(175, 183, 184), valueRange), $clone(new valueRange.ptr(10, 9, 0), valueRange), $clone(new valueRange.ptr(17327, 152, 152), valueRange), $clone(new valueRange.ptr(17332, 153, 154), valueRange), $clone(new valueRange.ptr(17367, 155, 155), valueRange), $clone(new valueRange.ptr(17312, 156, 156), valueRange), $clone(new valueRange.ptr(17347, 157, 157), valueRange), $clone(new valueRange.ptr(311, 160, 160), valueRange), $clone(new valueRange.ptr(153, 161, 161), valueRange), $clone(new valueRange.ptr(167, 162, 163), valueRange), $clone(new valueRange.ptr(440, 164, 164), valueRange), $clone(new valueRange.ptr(0, 15, 0), valueRange), $clone(new valueRange.ptr(40960, 131, 131), valueRange), $clone(new valueRange.ptr(40960, 135, 135), valueRange), $clone(new valueRange.ptr(40960, 139, 139), valueRange), $clone(new valueRange.ptr(40960, 141, 141), valueRange), $clone(new valueRange.ptr(14566, 144, 144), valueRange), $clone(new valueRange.ptr(14578, 145, 145), valueRange), $clone(new valueRange.ptr(14560, 147, 147), valueRange), $clone(new valueRange.ptr(40960, 150, 150), valueRange), $clone(new valueRange.ptr(14680, 151, 151), valueRange), $clone(new valueRange.ptr(14626, 156, 156), valueRange), $clone(new valueRange.ptr(14602, 157, 157), valueRange), $clone(new valueRange.ptr(14644, 158, 158), valueRange), $clone(new valueRange.ptr(40960, 180, 181), valueRange), $clone(new valueRange.ptr(14686, 182, 182), valueRange), $clone(new valueRange.ptr(14692, 183, 183), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 131, 135), valueRange), $clone(new valueRange.ptr(1, 4, 0), valueRange), $clone(new valueRange.ptr(33044, 129, 130), valueRange), $clone(new valueRange.ptr(33075, 132, 132), valueRange), $clone(new valueRange.ptr(33070, 133, 133), valueRange), $clone(new valueRange.ptr(33038, 135, 135), valueRange), $clone(new valueRange.ptr(0, 10, 0), valueRange), $clone(new valueRange.ptr(33075, 144, 151), valueRange), $clone(new valueRange.ptr(33050, 152, 152), valueRange), $clone(new valueRange.ptr(33051, 153, 153), valueRange), $clone(new valueRange.ptr(33052, 154, 154), valueRange), $clone(new valueRange.ptr(14722, 162, 162), valueRange), $clone(new valueRange.ptr(14728, 163, 163), valueRange), $clone(new valueRange.ptr(14740, 164, 164), valueRange), $clone(new valueRange.ptr(14734, 165, 165), valueRange), $clone(new valueRange.ptr(14746, 166, 166), valueRange), $clone(new valueRange.ptr(40960, 167, 167), valueRange), $clone(new valueRange.ptr(0, 14, 0), valueRange), $clone(new valueRange.ptr(14764, 128, 128), valueRange), $clone(new valueRange.ptr(40960, 129, 129), valueRange), $clone(new valueRange.ptr(14752, 130, 130), valueRange), $clone(new valueRange.ptr(40960, 146, 146), valueRange), $clone(new valueRange.ptr(14758, 147, 147), valueRange), $clone(new valueRange.ptr(40960, 149, 149), valueRange), $clone(new valueRange.ptr(33075, 150, 156), valueRange), $clone(new valueRange.ptr(33075, 159, 162), valueRange), $clone(new valueRange.ptr(33070, 163, 163), valueRange), $clone(new valueRange.ptr(33075, 164, 164), valueRange), $clone(new valueRange.ptr(33075, 167, 168), valueRange), $clone(new valueRange.ptr(33070, 170, 170), valueRange), $clone(new valueRange.ptr(33075, 171, 172), valueRange), $clone(new valueRange.ptr(33070, 173, 173), valueRange), $clone(new valueRange.ptr(0, 12, 0), valueRange), $clone(new valueRange.ptr(33056, 145, 145), valueRange), $clone(new valueRange.ptr(33075, 176, 176), valueRange), $clone(new valueRange.ptr(33070, 177, 177), valueRange), $clone(new valueRange.ptr(33075, 178, 179), valueRange), $clone(new valueRange.ptr(33070, 180, 180), valueRange), $clone(new valueRange.ptr(33075, 181, 182), valueRange), $clone(new valueRange.ptr(33070, 183, 185), valueRange), $clone(new valueRange.ptr(33075, 186, 186), valueRange), $clone(new valueRange.ptr(33070, 187, 188), valueRange), $clone(new valueRange.ptr(33075, 189, 189), valueRange), $clone(new valueRange.ptr(33070, 190, 190), valueRange), $clone(new valueRange.ptr(33075, 191, 191), valueRange), $clone(new valueRange.ptr(5, 7, 0), valueRange), $clone(new valueRange.ptr(33075, 128, 128), valueRange), $clone(new valueRange.ptr(33075, 129, 129), valueRange), $clone(new valueRange.ptr(33070, 130, 131), valueRange), $clone(new valueRange.ptr(33070, 132, 133), valueRange), $clone(new valueRange.ptr(33070, 134, 135), valueRange), $clone(new valueRange.ptr(33070, 136, 137), valueRange), $clone(new valueRange.ptr(33075, 138, 138), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(33075, 171, 177), valueRange), $clone(new valueRange.ptr(33070, 178, 178), valueRange), $clone(new valueRange.ptr(33075, 179, 179), valueRange), $clone(new valueRange.ptr(33070, 189, 189), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(33075, 150, 153), valueRange), $clone(new valueRange.ptr(33075, 155, 163), valueRange), $clone(new valueRange.ptr(33075, 165, 167), valueRange), $clone(new valueRange.ptr(33075, 169, 173), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33070, 153, 155), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(33075, 152, 152), valueRange), $clone(new valueRange.ptr(33070, 153, 155), valueRange), $clone(new valueRange.ptr(33075, 156, 159), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(40960, 168, 168), valueRange), $clone(new valueRange.ptr(16409, 169, 169), valueRange), $clone(new valueRange.ptr(40960, 176, 176), valueRange), $clone(new valueRange.ptr(16417, 177, 177), valueRange), $clone(new valueRange.ptr(40960, 179, 179), valueRange), $clone(new valueRange.ptr(16425, 180, 180), valueRange), $clone(new valueRange.ptr(39171, 188, 188), valueRange), $clone(new valueRange.ptr(8, 6, 0), valueRange), $clone(new valueRange.ptr(33029, 141, 141), valueRange), $clone(new valueRange.ptr(33075, 145, 145), valueRange), $clone(new valueRange.ptr(33070, 146, 146), valueRange), $clone(new valueRange.ptr(33075, 147, 147), valueRange), $clone(new valueRange.ptr(33075, 148, 148), valueRange), $clone(new valueRange.ptr(18013, 152, 159), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33027, 188, 188), valueRange), $clone(new valueRange.ptr(39168, 190, 190), valueRange), $clone(new valueRange.ptr(8, 7, 0), valueRange), $clone(new valueRange.ptr(40960, 135, 135), valueRange), $clone(new valueRange.ptr(11733, 139, 140), valueRange), $clone(new valueRange.ptr(33029, 141, 141), valueRange), $clone(new valueRange.ptr(39168, 151, 151), valueRange), $clone(new valueRange.ptr(18077, 156, 157), valueRange), $clone(new valueRange.ptr(18093, 159, 159), valueRange), $clone(new valueRange.ptr(33075, 190, 190), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(18133, 179, 179), valueRange), $clone(new valueRange.ptr(18141, 182, 182), valueRange), $clone(new valueRange.ptr(33027, 188, 188), valueRange), $clone(new valueRange.ptr(8, 3, 0), valueRange), $clone(new valueRange.ptr(33029, 141, 141), valueRange), $clone(new valueRange.ptr(18101, 153, 155), valueRange), $clone(new valueRange.ptr(18125, 158, 158), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33027, 188, 188), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 141, 141), valueRange), $clone(new valueRange.ptr(0, 8, 0), valueRange), $clone(new valueRange.ptr(40960, 135, 135), valueRange), $clone(new valueRange.ptr(11757, 136, 136), valueRange), $clone(new valueRange.ptr(11749, 139, 139), valueRange), $clone(new valueRange.ptr(11765, 140, 140), valueRange), $clone(new valueRange.ptr(33029, 141, 141), valueRange), $clone(new valueRange.ptr(39168, 150, 151), valueRange), $clone(new valueRange.ptr(18149, 156, 156), valueRange), $clone(new valueRange.ptr(18157, 157, 157), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(40960, 146, 146), valueRange), $clone(new valueRange.ptr(11773, 148, 148), valueRange), $clone(new valueRange.ptr(39168, 190, 190), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(40960, 134, 135), valueRange), $clone(new valueRange.ptr(11781, 138, 138), valueRange), $clone(new valueRange.ptr(11797, 139, 139), valueRange), $clone(new valueRange.ptr(11789, 140, 140), valueRange), $clone(new valueRange.ptr(33029, 141, 141), valueRange), $clone(new valueRange.ptr(39168, 151, 151), valueRange), $clone(new valueRange.ptr(6145, 4, 0), valueRange), $clone(new valueRange.ptr(40960, 134, 134), valueRange), $clone(new valueRange.ptr(16433, 136, 136), valueRange), $clone(new valueRange.ptr(33029, 141, 141), valueRange), $clone(new valueRange.ptr(33057, 149, 150), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33027, 188, 188), valueRange), $clone(new valueRange.ptr(40960, 191, 191), valueRange), $clone(new valueRange.ptr(0, 9, 0), valueRange), $clone(new valueRange.ptr(11805, 128, 128), valueRange), $clone(new valueRange.ptr(39168, 130, 130), valueRange), $clone(new valueRange.ptr(40960, 134, 134), valueRange), $clone(new valueRange.ptr(11813, 135, 135), valueRange), $clone(new valueRange.ptr(11821, 136, 136), valueRange), $clone(new valueRange.ptr(12433, 138, 138), valueRange), $clone(new valueRange.ptr(12057, 139, 139), valueRange), $clone(new valueRange.ptr(33029, 141, 141), valueRange), $clone(new valueRange.ptr(39168, 149, 150), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33029, 187, 188), valueRange), $clone(new valueRange.ptr(39168, 190, 190), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(40960, 134, 135), valueRange), $clone(new valueRange.ptr(11829, 138, 138), valueRange), $clone(new valueRange.ptr(11845, 139, 139), valueRange), $clone(new valueRange.ptr(11837, 140, 140), valueRange), $clone(new valueRange.ptr(33029, 141, 141), valueRange), $clone(new valueRange.ptr(39168, 151, 151), valueRange), $clone(new valueRange.ptr(27315, 7, 0), valueRange), $clone(new valueRange.ptr(39173, 138, 138), valueRange), $clone(new valueRange.ptr(39168, 143, 143), valueRange), $clone(new valueRange.ptr(40960, 153, 153), valueRange), $clone(new valueRange.ptr(16441, 154, 154), valueRange), $clone(new valueRange.ptr(12441, 156, 156), valueRange), $clone(new valueRange.ptr(12068, 157, 157), valueRange), $clone(new valueRange.ptr(11853, 158, 159), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(10065, 179, 179), valueRange), $clone(new valueRange.ptr(33059, 184, 185), valueRange), $clone(new valueRange.ptr(33029, 186, 186), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33060, 136, 139), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(10086, 179, 179), valueRange), $clone(new valueRange.ptr(33061, 184, 185), valueRange), $clone(new valueRange.ptr(33029, 186, 186), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(33062, 136, 139), valueRange), $clone(new valueRange.ptr(10072, 156, 156), valueRange), $clone(new valueRange.ptr(10079, 157, 157), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(1022, 140, 140), valueRange), $clone(new valueRange.ptr(33070, 152, 153), valueRange), $clone(new valueRange.ptr(33070, 181, 181), valueRange), $clone(new valueRange.ptr(33070, 183, 183), valueRange), $clone(new valueRange.ptr(33068, 185, 185), valueRange), $clone(new valueRange.ptr(0, 16, 0), valueRange), $clone(new valueRange.ptr(10100, 131, 131), valueRange), $clone(new valueRange.ptr(10107, 141, 141), valueRange), $clone(new valueRange.ptr(10114, 146, 146), valueRange), $clone(new valueRange.ptr(10121, 151, 151), valueRange), $clone(new valueRange.ptr(10128, 156, 156), valueRange), $clone(new valueRange.ptr(10093, 169, 169), valueRange), $clone(new valueRange.ptr(33063, 177, 177), valueRange), $clone(new valueRange.ptr(33064, 178, 178), valueRange), $clone(new valueRange.ptr(19397, 179, 179), valueRange), $clone(new valueRange.ptr(33065, 180, 180), valueRange), $clone(new valueRange.ptr(19406, 181, 181), valueRange), $clone(new valueRange.ptr(18165, 182, 182), valueRange), $clone(new valueRange.ptr(18229, 183, 183), valueRange), $clone(new valueRange.ptr(18173, 184, 184), valueRange), $clone(new valueRange.ptr(18240, 185, 185), valueRange), $clone(new valueRange.ptr(33064, 186, 189), valueRange), $clone(new valueRange.ptr(0, 11, 0), valueRange), $clone(new valueRange.ptr(33064, 128, 128), valueRange), $clone(new valueRange.ptr(19415, 129, 129), valueRange), $clone(new valueRange.ptr(33075, 130, 131), valueRange), $clone(new valueRange.ptr(33029, 132, 132), valueRange), $clone(new valueRange.ptr(33075, 134, 135), valueRange), $clone(new valueRange.ptr(10142, 147, 147), valueRange), $clone(new valueRange.ptr(10149, 157, 157), valueRange), $clone(new valueRange.ptr(10156, 162, 162), valueRange), $clone(new valueRange.ptr(10163, 167, 167), valueRange), $clone(new valueRange.ptr(10170, 172, 172), valueRange), $clone(new valueRange.ptr(10135, 185, 185), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33070, 134, 134), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(40960, 165, 165), valueRange), $clone(new valueRange.ptr(11861, 166, 166), valueRange), $clone(new valueRange.ptr(39168, 174, 174), valueRange), $clone(new valueRange.ptr(33027, 183, 183), valueRange), $clone(new valueRange.ptr(33029, 185, 186), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33070, 141, 141), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(1026, 188, 188), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(40960, 128, 146), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(47360, 161, 181), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(39168, 168, 191), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(39168, 128, 130), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 157, 159), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33029, 148, 149), valueRange), $clone(new valueRange.ptr(33029, 180, 180), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33029, 146, 146), valueRange), $clone(new valueRange.ptr(33075, 157, 157), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33074, 169, 169), valueRange), $clone(new valueRange.ptr(4, 2, 0), valueRange), $clone(new valueRange.ptr(33071, 185, 186), valueRange), $clone(new valueRange.ptr(33070, 187, 187), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33075, 151, 151), valueRange), $clone(new valueRange.ptr(33070, 152, 152), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(33029, 160, 160), valueRange), $clone(new valueRange.ptr(33075, 181, 188), valueRange), $clone(new valueRange.ptr(33070, 191, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(33075, 176, 180), valueRange), $clone(new valueRange.ptr(33070, 181, 186), valueRange), $clone(new valueRange.ptr(33075, 187, 188), valueRange), $clone(new valueRange.ptr(33070, 189, 189), valueRange), $clone(new valueRange.ptr(33070, 191, 191), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(33070, 128, 128), valueRange), $clone(new valueRange.ptr(33075, 129, 130), valueRange), $clone(new valueRange.ptr(33070, 131, 132), valueRange), $clone(new valueRange.ptr(33075, 133, 137), valueRange), $clone(new valueRange.ptr(33070, 138, 138), valueRange), $clone(new valueRange.ptr(33075, 139, 142), valueRange), $clone(new valueRange.ptr(0, 8, 0), valueRange), $clone(new valueRange.ptr(11933, 128, 128), valueRange), $clone(new valueRange.ptr(11941, 129, 129), valueRange), $clone(new valueRange.ptr(40960, 130, 130), valueRange), $clone(new valueRange.ptr(11949, 131, 131), valueRange), $clone(new valueRange.ptr(33029, 132, 132), valueRange), $clone(new valueRange.ptr(33075, 171, 171), valueRange), $clone(new valueRange.ptr(33070, 172, 172), valueRange), $clone(new valueRange.ptr(33075, 173, 179), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 170, 171), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33027, 166, 166), valueRange), $clone(new valueRange.ptr(33029, 178, 179), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33027, 183, 183), valueRange), $clone(new valueRange.ptr(0, 10, 0), valueRange), $clone(new valueRange.ptr(33075, 144, 146), valueRange), $clone(new valueRange.ptr(33025, 148, 148), valueRange), $clone(new valueRange.ptr(33070, 149, 153), valueRange), $clone(new valueRange.ptr(33075, 154, 155), valueRange), $clone(new valueRange.ptr(33070, 156, 159), valueRange), $clone(new valueRange.ptr(33075, 160, 160), valueRange), $clone(new valueRange.ptr(33025, 162, 168), valueRange), $clone(new valueRange.ptr(33070, 173, 173), valueRange), $clone(new valueRange.ptr(33075, 180, 180), valueRange), $clone(new valueRange.ptr(33075, 184, 185), valueRange), $clone(new valueRange.ptr(2, 10, 0), valueRange), $clone(new valueRange.ptr(67, 172, 172), valueRange), $clone(new valueRange.ptr(209, 173, 173), valueRange), $clone(new valueRange.ptr(69, 174, 174), valueRange), $clone(new valueRange.ptr(73, 176, 177), valueRange), $clone(new valueRange.ptr(236, 178, 178), valueRange), $clone(new valueRange.ptr(79, 179, 186), valueRange), $clone(new valueRange.ptr(95, 188, 188), valueRange), $clone(new valueRange.ptr(254, 189, 189), valueRange), $clone(new valueRange.ptr(97, 190, 190), valueRange), $clone(new valueRange.ptr(101, 191, 191), valueRange), $clone(new valueRange.ptr(0, 13, 0), valueRange), $clone(new valueRange.ptr(1, 128, 138), valueRange), $clone(new valueRange.ptr(1330, 145, 145), valueRange), $clone(new valueRange.ptr(17372, 151, 151), valueRange), $clone(new valueRange.ptr(29, 164, 164), valueRange), $clone(new valueRange.ptr(6560, 165, 165), valueRange), $clone(new valueRange.ptr(7308, 166, 166), valueRange), $clone(new valueRange.ptr(1, 175, 175), valueRange), $clone(new valueRange.ptr(10177, 179, 179), valueRange), $clone(new valueRange.ptr(10549, 180, 180), valueRange), $clone(new valueRange.ptr(10184, 182, 182), valueRange), $clone(new valueRange.ptr(10559, 183, 183), valueRange), $clone(new valueRange.ptr(6554, 188, 188), valueRange), $clone(new valueRange.ptr(17322, 190, 190), valueRange), $clone(new valueRange.ptr(2, 13, 0), valueRange), $clone(new valueRange.ptr(6752, 135, 135), valueRange), $clone(new valueRange.ptr(6749, 136, 136), valueRange), $clone(new valueRange.ptr(6557, 137, 137), valueRange), $clone(new valueRange.ptr(10949, 151, 151), valueRange), $clone(new valueRange.ptr(1, 159, 159), valueRange), $clone(new valueRange.ptr(33, 176, 176), valueRange), $clone(new valueRange.ptr(147, 177, 177), valueRange), $clone(new valueRange.ptr(41, 180, 185), valueRange), $clone(new valueRange.ptr(23, 186, 186), valueRange), $clone(new valueRange.ptr(1374, 187, 187), valueRange), $clone(new valueRange.ptr(59, 188, 188), valueRange), $clone(new valueRange.ptr(17, 189, 190), valueRange), $clone(new valueRange.ptr(157, 191, 191), valueRange), $clone(new valueRange.ptr(2, 15, 0), valueRange), $clone(new valueRange.ptr(33, 128, 137), valueRange), $clone(new valueRange.ptr(23, 138, 138), valueRange), $clone(new valueRange.ptr(1374, 139, 139), valueRange), $clone(new valueRange.ptr(59, 140, 140), valueRange), $clone(new valueRange.ptr(17, 141, 142), valueRange), $clone(new valueRange.ptr(131, 144, 144), valueRange), $clone(new valueRange.ptr(139, 145, 145), valueRange), $clone(new valueRange.ptr(159, 146, 146), valueRange), $clone(new valueRange.ptr(177, 147, 147), valueRange), $clone(new valueRange.ptr(287, 148, 148), valueRange), $clone(new valueRange.ptr(145, 149, 149), valueRange), $clone(new valueRange.ptr(151, 150, 153), valueRange), $clone(new valueRange.ptr(161, 154, 154), valueRange), $clone(new valueRange.ptr(167, 155, 156), valueRange), $clone(new valueRange.ptr(6857, 168, 168), valueRange), $clone(new valueRange.ptr(0, 13, 0), valueRange), $clone(new valueRange.ptr(33075, 144, 145), valueRange), $clone(new valueRange.ptr(33025, 146, 147), valueRange), $clone(new valueRange.ptr(33075, 148, 151), valueRange), $clone(new valueRange.ptr(33025, 152, 154), valueRange), $clone(new valueRange.ptr(33075, 155, 156), valueRange), $clone(new valueRange.ptr(33075, 161, 161), valueRange), $clone(new valueRange.ptr(33025, 165, 166), valueRange), $clone(new valueRange.ptr(33075, 167, 167), valueRange), $clone(new valueRange.ptr(33070, 168, 168), valueRange), $clone(new valueRange.ptr(33075, 169, 169), valueRange), $clone(new valueRange.ptr(33025, 170, 171), valueRange), $clone(new valueRange.ptr(33070, 172, 175), valueRange), $clone(new valueRange.ptr(33075, 176, 176), valueRange), $clone(new valueRange.ptr(7, 6, 0), valueRange), $clone(new valueRange.ptr(8880, 137, 137), valueRange), $clone(new valueRange.ptr(40960, 144, 144), valueRange), $clone(new valueRange.ptr(40960, 146, 146), valueRange), $clone(new valueRange.ptr(40960, 148, 148), valueRange), $clone(new valueRange.ptr(15610, 154, 155), valueRange), $clone(new valueRange.ptr(15624, 174, 174), valueRange), $clone(new valueRange.ptr(14, 5, 0), valueRange), $clone(new valueRange.ptr(15631, 141, 142), valueRange), $clone(new valueRange.ptr(15638, 143, 143), valueRange), $clone(new valueRange.ptr(40960, 144, 144), valueRange), $clone(new valueRange.ptr(40960, 146, 146), valueRange), $clone(new valueRange.ptr(40960, 148, 148), valueRange), $clone(new valueRange.ptr(378, 14, 0), valueRange), $clone(new valueRange.ptr(40960, 131, 131), valueRange), $clone(new valueRange.ptr(15652, 132, 132), valueRange), $clone(new valueRange.ptr(40960, 136, 136), valueRange), $clone(new valueRange.ptr(15659, 137, 137), valueRange), $clone(new valueRange.ptr(40960, 139, 139), valueRange), $clone(new valueRange.ptr(15666, 140, 140), valueRange), $clone(new valueRange.ptr(40960, 163, 163), valueRange), $clone(new valueRange.ptr(15673, 164, 164), valueRange), $clone(new valueRange.ptr(40960, 165, 165), valueRange), $clone(new valueRange.ptr(15680, 166, 166), valueRange), $clone(new valueRange.ptr(10191, 172, 173), valueRange), $clone(new valueRange.ptr(10198, 175, 175), valueRange), $clone(new valueRange.ptr(10579, 176, 176), valueRange), $clone(new valueRange.ptr(40960, 188, 188), valueRange), $clone(new valueRange.ptr(7, 3, 0), valueRange), $clone(new valueRange.ptr(15785, 160, 161), valueRange), $clone(new valueRange.ptr(15827, 162, 163), valueRange), $clone(new valueRange.ptr(15869, 170, 173), valueRange), $clone(new valueRange.ptr(4, 1, 0), valueRange), $clone(new valueRange.ptr(1414, 169, 170), valueRange), $clone(new valueRange.ptr(2, 3, 0), valueRange), $clone(new valueRange.ptr(87, 128, 143), valueRange), $clone(new valueRange.ptr(131, 144, 169), valueRange), $clone(new valueRange.ptr(33, 170, 170), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(10962, 140, 140), valueRange), $clone(new valueRange.ptr(614, 2, 0), valueRange), $clone(new valueRange.ptr(7356, 180, 180), valueRange), $clone(new valueRange.ptr(6746, 181, 182), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(17950, 156, 156), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(149, 188, 188), valueRange), $clone(new valueRange.ptr(109, 189, 189), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 175, 177), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(1402, 175, 175), valueRange), $clone(new valueRange.ptr(33029, 191, 191), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 160, 191), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(3774, 159, 159), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(5930, 179, 179), valueRange), $clone(new valueRange.ptr(4, 11, 0), valueRange), $clone(new valueRange.ptr(5778, 128, 130), valueRange), $clone(new valueRange.ptr(5802, 131, 131), valueRange), $clone(new valueRange.ptr(5826, 132, 133), valueRange), $clone(new valueRange.ptr(5842, 134, 137), valueRange), $clone(new valueRange.ptr(5862, 138, 140), valueRange), $clone(new valueRange.ptr(5882, 141, 141), valueRange), $clone(new valueRange.ptr(5890, 142, 142), valueRange), $clone(new valueRange.ptr(5898, 143, 144), valueRange), $clone(new valueRange.ptr(5910, 145, 147), valueRange), $clone(new valueRange.ptr(5926, 148, 148), valueRange), $clone(new valueRange.ptr(5934, 149, 149), valueRange), $clone(new valueRange.ptr(4, 9, 0), valueRange), $clone(new valueRange.ptr(1, 128, 128), valueRange), $clone(new valueRange.ptr(33069, 170, 170), valueRange), $clone(new valueRange.ptr(33074, 171, 171), valueRange), $clone(new valueRange.ptr(33076, 172, 172), valueRange), $clone(new valueRange.ptr(33071, 173, 173), valueRange), $clone(new valueRange.ptr(33072, 174, 174), valueRange), $clone(new valueRange.ptr(33072, 175, 175), valueRange), $clone(new valueRange.ptr(1454, 182, 182), valueRange), $clone(new valueRange.ptr(2434, 184, 186), valueRange), $clone(new valueRange.ptr(6, 9, 0), valueRange), $clone(new valueRange.ptr(1030, 177, 177), valueRange), $clone(new valueRange.ptr(1034, 178, 178), valueRange), $clone(new valueRange.ptr(19324, 179, 179), valueRange), $clone(new valueRange.ptr(1038, 180, 180), valueRange), $clone(new valueRange.ptr(19330, 181, 182), valueRange), $clone(new valueRange.ptr(1042, 183, 183), valueRange), $clone(new valueRange.ptr(1046, 184, 184), valueRange), $clone(new valueRange.ptr(1050, 185, 185), valueRange), $clone(new valueRange.ptr(19342, 186, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33075, 175, 175), valueRange), $clone(new valueRange.ptr(33075, 180, 189), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(728, 156, 156), valueRange), $clone(new valueRange.ptr(734, 157, 157), valueRange), $clone(new valueRange.ptr(33075, 158, 159), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 176, 177), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(5950, 176, 176), valueRange), $clone(new valueRange.ptr(6, 4, 0), valueRange), $clone(new valueRange.ptr(71, 178, 179), valueRange), $clone(new valueRange.ptr(99, 180, 180), valueRange), $clone(new valueRange.ptr(221, 184, 184), valueRange), $clone(new valueRange.ptr(233, 185, 185), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33029, 134, 134), valueRange), $clone(new valueRange.ptr(33029, 172, 172), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33029, 132, 132), valueRange), $clone(new valueRange.ptr(33075, 160, 177), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33070, 171, 173), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 147, 147), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33027, 179, 179), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 128, 128), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(33075, 176, 176), valueRange), $clone(new valueRange.ptr(33075, 178, 179), valueRange), $clone(new valueRange.ptr(33070, 180, 180), valueRange), $clone(new valueRange.ptr(33075, 183, 184), valueRange), $clone(new valueRange.ptr(33075, 190, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33075, 129, 129), valueRange), $clone(new valueRange.ptr(33029, 182, 182), valueRange), $clone(new valueRange.ptr(12, 4, 0), valueRange), $clone(new valueRange.ptr(5946, 156, 157), valueRange), $clone(new valueRange.ptr(335, 158, 158), valueRange), $clone(new valueRange.ptr(5962, 159, 159), valueRange), $clone(new valueRange.ptr(422, 169, 169), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 173, 173), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(58624, 128, 128), valueRange), $clone(new valueRange.ptr(50688, 129, 155), valueRange), $clone(new valueRange.ptr(58624, 156, 156), valueRange), $clone(new valueRange.ptr(50688, 157, 183), valueRange), $clone(new valueRange.ptr(58624, 184, 184), valueRange), $clone(new valueRange.ptr(50688, 185, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(50688, 128, 147), valueRange), $clone(new valueRange.ptr(58624, 148, 148), valueRange), $clone(new valueRange.ptr(50688, 149, 175), valueRange), $clone(new valueRange.ptr(58624, 176, 176), valueRange), $clone(new valueRange.ptr(50688, 177, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(50688, 128, 139), valueRange), $clone(new valueRange.ptr(58624, 140, 140), valueRange), $clone(new valueRange.ptr(50688, 141, 167), valueRange), $clone(new valueRange.ptr(58624, 168, 168), valueRange), $clone(new valueRange.ptr(50688, 169, 191), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(50688, 128, 131), valueRange), $clone(new valueRange.ptr(58624, 132, 132), valueRange), $clone(new valueRange.ptr(50688, 133, 159), valueRange), $clone(new valueRange.ptr(58624, 160, 160), valueRange), $clone(new valueRange.ptr(50688, 161, 187), valueRange), $clone(new valueRange.ptr(58624, 188, 188), valueRange), $clone(new valueRange.ptr(50688, 189, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(50688, 128, 151), valueRange), $clone(new valueRange.ptr(58624, 152, 152), valueRange), $clone(new valueRange.ptr(50688, 153, 179), valueRange), $clone(new valueRange.ptr(58624, 180, 180), valueRange), $clone(new valueRange.ptr(50688, 181, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(50688, 128, 143), valueRange), $clone(new valueRange.ptr(58624, 144, 144), valueRange), $clone(new valueRange.ptr(50688, 145, 171), valueRange), $clone(new valueRange.ptr(58624, 172, 172), valueRange), $clone(new valueRange.ptr(50688, 173, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(50688, 128, 135), valueRange), $clone(new valueRange.ptr(58624, 136, 136), valueRange), $clone(new valueRange.ptr(50688, 137, 163), valueRange), $clone(new valueRange.ptr(58624, 164, 164), valueRange), $clone(new valueRange.ptr(50688, 165, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(50688, 128, 135), valueRange), $clone(new valueRange.ptr(58624, 136, 136), valueRange), $clone(new valueRange.ptr(50688, 137, 163), valueRange), $clone(new valueRange.ptr(2, 1, 0), valueRange), $clone(new valueRange.ptr(3, 129, 191), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33070, 189, 189), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33070, 160, 160), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 182, 186), valueRange), $clone(new valueRange.ptr(45, 5, 0), valueRange), $clone(new valueRange.ptr(33070, 141, 141), valueRange), $clone(new valueRange.ptr(33075, 143, 143), valueRange), $clone(new valueRange.ptr(33075, 184, 184), valueRange), $clone(new valueRange.ptr(33025, 185, 186), valueRange), $clone(new valueRange.ptr(33029, 191, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33075, 165, 165), valueRange), $clone(new valueRange.ptr(33070, 166, 166), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 164, 167), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 171, 172), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33070, 189, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(33070, 134, 135), valueRange), $clone(new valueRange.ptr(33075, 136, 138), valueRange), $clone(new valueRange.ptr(33070, 139, 139), valueRange), $clone(new valueRange.ptr(33075, 140, 140), valueRange), $clone(new valueRange.ptr(33070, 141, 144), valueRange), $clone(new valueRange.ptr(5, 3, 0), valueRange), $clone(new valueRange.ptr(33075, 130, 130), valueRange), $clone(new valueRange.ptr(33070, 131, 132), valueRange), $clone(new valueRange.ptr(33070, 133, 133), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(33029, 134, 134), valueRange), $clone(new valueRange.ptr(33029, 176, 176), valueRange), $clone(new valueRange.ptr(33029, 191, 191), valueRange), $clone(new valueRange.ptr(6142, 7, 0), valueRange), $clone(new valueRange.ptr(40960, 153, 153), valueRange), $clone(new valueRange.ptr(17273, 154, 154), valueRange), $clone(new valueRange.ptr(40960, 155, 155), valueRange), $clone(new valueRange.ptr(17283, 156, 156), valueRange), $clone(new valueRange.ptr(40960, 165, 165), valueRange), $clone(new valueRange.ptr(17293, 171, 171), valueRange), $clone(new valueRange.ptr(33029, 185, 186), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(33075, 128, 130), valueRange), $clone(new valueRange.ptr(39168, 167, 167), valueRange), $clone(new valueRange.ptr(11957, 174, 174), valueRange), $clone(new valueRange.ptr(11967, 175, 175), valueRange), $clone(new valueRange.ptr(40960, 177, 178), valueRange), $clone(new valueRange.ptr(33029, 179, 180), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33029, 128, 128), valueRange), $clone(new valueRange.ptr(33027, 138, 138), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33029, 181, 181), valueRange), $clone(new valueRange.ptr(33027, 182, 182), valueRange), $clone(new valueRange.ptr(2, 1, 0), valueRange), $clone(new valueRange.ptr(33027, 169, 170), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33027, 187, 188), valueRange), $clone(new valueRange.ptr(39168, 190, 190), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(40960, 135, 135), valueRange), $clone(new valueRange.ptr(11977, 139, 139), valueRange), $clone(new valueRange.ptr(11987, 140, 140), valueRange), $clone(new valueRange.ptr(33029, 141, 141), valueRange), $clone(new valueRange.ptr(39168, 151, 151), valueRange), $clone(new valueRange.ptr(33075, 166, 172), valueRange), $clone(new valueRange.ptr(33075, 176, 180), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(33029, 130, 130), valueRange), $clone(new valueRange.ptr(33027, 134, 134), valueRange), $clone(new valueRange.ptr(33075, 158, 158), valueRange), $clone(new valueRange.ptr(27171, 6, 0), valueRange), $clone(new valueRange.ptr(39168, 176, 176), valueRange), $clone(new valueRange.ptr(40960, 185, 185), valueRange), $clone(new valueRange.ptr(39168, 186, 186), valueRange), $clone(new valueRange.ptr(12007, 187, 187), valueRange), $clone(new valueRange.ptr(11997, 188, 189), valueRange), $clone(new valueRange.ptr(12017, 190, 190), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33029, 130, 130), valueRange), $clone(new valueRange.ptr(33027, 131, 131), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(39168, 175, 175), valueRange), $clone(new valueRange.ptr(40960, 184, 185), valueRange), $clone(new valueRange.ptr(12027, 186, 186), valueRange), $clone(new valueRange.ptr(12037, 187, 187), valueRange), $clone(new valueRange.ptr(33029, 191, 191), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33027, 128, 128), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 191, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33029, 182, 182), valueRange), $clone(new valueRange.ptr(33027, 183, 183), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 171, 171), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33029, 185, 185), valueRange), $clone(new valueRange.ptr(33027, 186, 186), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(39168, 176, 176), valueRange), $clone(new valueRange.ptr(40960, 181, 181), valueRange), $clone(new valueRange.ptr(12047, 184, 184), valueRange), $clone(new valueRange.ptr(33029, 189, 190), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33027, 131, 131), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 160, 160), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 180, 180), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 135, 135), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 153, 153), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33027, 130, 130), valueRange), $clone(new valueRange.ptr(33029, 132, 133), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 151, 151), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33029, 129, 130), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33025, 176, 180), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 176, 182), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33026, 176, 177), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33025, 158, 158), valueRange), $clone(new valueRange.ptr(0, 12, 0), valueRange), $clone(new valueRange.ptr(18189, 158, 158), valueRange), $clone(new valueRange.ptr(18199, 159, 159), valueRange), $clone(new valueRange.ptr(18251, 160, 160), valueRange), $clone(new valueRange.ptr(18265, 161, 161), valueRange), $clone(new valueRange.ptr(18279, 162, 162), valueRange), $clone(new valueRange.ptr(18293, 163, 163), valueRange), $clone(new valueRange.ptr(18307, 164, 164), valueRange), $clone(new valueRange.ptr(33068, 165, 166), valueRange), $clone(new valueRange.ptr(33025, 167, 169), valueRange), $clone(new valueRange.ptr(33073, 173, 173), valueRange), $clone(new valueRange.ptr(33068, 174, 178), valueRange), $clone(new valueRange.ptr(33070, 187, 191), valueRange), $clone(new valueRange.ptr(0, 9, 0), valueRange), $clone(new valueRange.ptr(33070, 128, 130), valueRange), $clone(new valueRange.ptr(33075, 133, 137), valueRange), $clone(new valueRange.ptr(33070, 138, 139), valueRange), $clone(new valueRange.ptr(33075, 170, 173), valueRange), $clone(new valueRange.ptr(18209, 187, 187), valueRange), $clone(new valueRange.ptr(18219, 188, 188), valueRange), $clone(new valueRange.ptr(18321, 189, 189), valueRange), $clone(new valueRange.ptr(18349, 190, 190), valueRange), $clone(new valueRange.ptr(18335, 191, 191), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(18363, 128, 128), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 130, 132), valueRange), $clone(new valueRange.ptr(2, 3, 0), valueRange), $clone(new valueRange.ptr(67, 128, 153), valueRange), $clone(new valueRange.ptr(131, 154, 179), valueRange), $clone(new valueRange.ptr(67, 180, 191), valueRange), $clone(new valueRange.ptr(2, 4, 0), valueRange), $clone(new valueRange.ptr(91, 128, 141), valueRange), $clone(new valueRange.ptr(131, 142, 148), valueRange), $clone(new valueRange.ptr(147, 150, 167), valueRange), $clone(new valueRange.ptr(67, 168, 191), valueRange), $clone(new valueRange.ptr(2, 11, 0), valueRange), $clone(new valueRange.ptr(115, 128, 129), valueRange), $clone(new valueRange.ptr(131, 130, 155), valueRange), $clone(new valueRange.ptr(67, 156, 156), valueRange), $clone(new valueRange.ptr(71, 158, 159), valueRange), $clone(new valueRange.ptr(79, 162, 162), valueRange), $clone(new valueRange.ptr(85, 165, 166), valueRange), $clone(new valueRange.ptr(93, 169, 172), valueRange), $clone(new valueRange.ptr(103, 174, 181), valueRange), $clone(new valueRange.ptr(131, 182, 185), valueRange), $clone(new valueRange.ptr(141, 187, 187), valueRange), $clone(new valueRange.ptr(145, 189, 191), valueRange), $clone(new valueRange.ptr(2, 4, 0), valueRange), $clone(new valueRange.ptr(151, 128, 131), valueRange), $clone(new valueRange.ptr(161, 133, 143), valueRange), $clone(new valueRange.ptr(67, 144, 169), valueRange), $clone(new valueRange.ptr(131, 170, 191), valueRange), $clone(new valueRange.ptr(2, 8, 0), valueRange), $clone(new valueRange.ptr(175, 128, 131), valueRange), $clone(new valueRange.ptr(67, 132, 133), valueRange), $clone(new valueRange.ptr(73, 135, 138), valueRange), $clone(new valueRange.ptr(85, 141, 148), valueRange), $clone(new valueRange.ptr(103, 150, 156), valueRange), $clone(new valueRange.ptr(131, 158, 183), valueRange), $clone(new valueRange.ptr(67, 184, 185), valueRange), $clone(new valueRange.ptr(73, 187, 190), valueRange), $clone(new valueRange.ptr(2, 5, 0), valueRange), $clone(new valueRange.ptr(83, 128, 132), valueRange), $clone(new valueRange.ptr(95, 134, 134), valueRange), $clone(new valueRange.ptr(103, 138, 144), valueRange), $clone(new valueRange.ptr(131, 146, 171), valueRange), $clone(new valueRange.ptr(67, 172, 191), valueRange), $clone(new valueRange.ptr(2, 4, 0), valueRange), $clone(new valueRange.ptr(107, 128, 133), valueRange), $clone(new valueRange.ptr(131, 134, 159), valueRange), $clone(new valueRange.ptr(67, 160, 185), valueRange), $clone(new valueRange.ptr(131, 186, 191), valueRange), $clone(new valueRange.ptr(2, 3, 0), valueRange), $clone(new valueRange.ptr(143, 128, 147), valueRange), $clone(new valueRange.ptr(67, 148, 173), valueRange), $clone(new valueRange.ptr(131, 174, 191), valueRange), $clone(new valueRange.ptr(2, 4, 0), valueRange), $clone(new valueRange.ptr(167, 128, 135), valueRange), $clone(new valueRange.ptr(67, 136, 161), valueRange), $clone(new valueRange.ptr(131, 162, 187), valueRange), $clone(new valueRange.ptr(67, 188, 191), valueRange), $clone(new valueRange.ptr(2, 3, 0), valueRange), $clone(new valueRange.ptr(75, 128, 149), valueRange), $clone(new valueRange.ptr(131, 150, 175), valueRange), $clone(new valueRange.ptr(67, 176, 191), valueRange), $clone(new valueRange.ptr(3, 15, 0), valueRange), $clone(new valueRange.ptr(572, 128, 128), valueRange), $clone(new valueRange.ptr(1366, 129, 129), valueRange), $clone(new valueRange.ptr(575, 130, 154), valueRange), $clone(new valueRange.ptr(1362, 155, 155), valueRange), $clone(new valueRange.ptr(587, 156, 156), valueRange), $clone(new valueRange.ptr(596, 157, 157), valueRange), $clone(new valueRange.ptr(602, 158, 158), valueRange), $clone(new valueRange.ptr(638, 159, 159), valueRange), $clone(new valueRange.ptr(623, 160, 160), valueRange), $clone(new valueRange.ptr(620, 161, 161), valueRange), $clone(new valueRange.ptr(503, 162, 178), valueRange), $clone(new valueRange.ptr(524, 179, 179), valueRange), $clone(new valueRange.ptr(554, 180, 186), valueRange), $clone(new valueRange.ptr(1366, 187, 187), valueRange), $clone(new valueRange.ptr(575, 188, 191), valueRange), $clone(new valueRange.ptr(3, 13, 0), valueRange), $clone(new valueRange.ptr(587, 128, 148), valueRange), $clone(new valueRange.ptr(1362, 149, 149), valueRange), $clone(new valueRange.ptr(587, 150, 150), valueRange), $clone(new valueRange.ptr(596, 151, 151), valueRange), $clone(new valueRange.ptr(602, 152, 152), valueRange), $clone(new valueRange.ptr(638, 153, 153), valueRange), $clone(new valueRange.ptr(623, 154, 154), valueRange), $clone(new valueRange.ptr(620, 155, 155), valueRange), $clone(new valueRange.ptr(503, 156, 172), valueRange), $clone(new valueRange.ptr(524, 173, 173), valueRange), $clone(new valueRange.ptr(554, 174, 180), valueRange), $clone(new valueRange.ptr(1366, 181, 181), valueRange), $clone(new valueRange.ptr(575, 182, 191), valueRange), $clone(new valueRange.ptr(3, 13, 0), valueRange), $clone(new valueRange.ptr(605, 128, 142), valueRange), $clone(new valueRange.ptr(1362, 143, 143), valueRange), $clone(new valueRange.ptr(587, 144, 144), valueRange), $clone(new valueRange.ptr(596, 145, 145), valueRange), $clone(new valueRange.ptr(602, 146, 146), valueRange), $clone(new valueRange.ptr(638, 147, 147), valueRange), $clone(new valueRange.ptr(623, 148, 148), valueRange), $clone(new valueRange.ptr(620, 149, 149), valueRange), $clone(new valueRange.ptr(503, 150, 166), valueRange), $clone(new valueRange.ptr(524, 167, 167), valueRange), $clone(new valueRange.ptr(554, 168, 174), valueRange), $clone(new valueRange.ptr(1366, 175, 175), valueRange), $clone(new valueRange.ptr(575, 176, 191), valueRange), $clone(new valueRange.ptr(3, 13, 0), valueRange), $clone(new valueRange.ptr(623, 128, 136), valueRange), $clone(new valueRange.ptr(1362, 137, 137), valueRange), $clone(new valueRange.ptr(587, 138, 138), valueRange), $clone(new valueRange.ptr(596, 139, 139), valueRange), $clone(new valueRange.ptr(602, 140, 140), valueRange), $clone(new valueRange.ptr(638, 141, 141), valueRange), $clone(new valueRange.ptr(623, 142, 142), valueRange), $clone(new valueRange.ptr(620, 143, 143), valueRange), $clone(new valueRange.ptr(503, 144, 160), valueRange), $clone(new valueRange.ptr(524, 161, 161), valueRange), $clone(new valueRange.ptr(554, 162, 168), valueRange), $clone(new valueRange.ptr(1366, 169, 169), valueRange), $clone(new valueRange.ptr(575, 170, 191), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 143, 143), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 174, 174), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33075, 172, 175), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(33076, 172, 173), valueRange), $clone(new valueRange.ptr(33070, 174, 174), valueRange), $clone(new valueRange.ptr(33075, 175, 175), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(33070, 144, 150), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(33075, 132, 137), valueRange), $clone(new valueRange.ptr(33027, 138, 138), valueRange), $clone(new valueRange.ptr(2, 10, 0), valueRange), $clone(new valueRange.ptr(99, 128, 137), valueRange), $clone(new valueRange.ptr(6782, 138, 138), valueRange), $clone(new valueRange.ptr(6833, 139, 139), valueRange), $clone(new valueRange.ptr(6860, 140, 140), valueRange), $clone(new valueRange.ptr(6866, 141, 141), valueRange), $clone(new valueRange.ptr(7408, 142, 142), valueRange), $clone(new valueRange.ptr(6878, 143, 143), valueRange), $clone(new valueRange.ptr(6824, 170, 170), valueRange), $clone(new valueRange.ptr(6827, 171, 171), valueRange), $clone(new valueRange.ptr(6830, 172, 172), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(6764, 144, 144), valueRange), $clone(new valueRange.ptr(40, 9, 0), valueRange), $clone(new valueRange.ptr(10649, 128, 128), valueRange), $clone(new valueRange.ptr(10589, 129, 129), valueRange), $clone(new valueRange.ptr(10599, 130, 130), valueRange), $clone(new valueRange.ptr(10619, 131, 132), valueRange), $clone(new valueRange.ptr(10629, 133, 134), valueRange), $clone(new valueRange.ptr(10609, 135, 135), valueRange), $clone(new valueRange.ptr(10639, 136, 136), valueRange), $clone(new valueRange.ptr(3178, 144, 144), valueRange), $clone(new valueRange.ptr(2530, 145, 145), valueRange), $clone(new valueRange.ptr(2, 1, 0), valueRange), $clone(new valueRange.ptr(33, 176, 185), valueRange)]); nfkcSparse = new sparseBlocks.ptr(new sliceType$2(nfkcSparseValues), nfkcSparseOffset); formTable = new sliceType$3([new formInfo.ptr(0, true, false, lookupInfoNFC, nextComposed), new formInfo.ptr(1, false, false, lookupInfoNFC, nextDecomposed), new formInfo.ptr(2, true, true, lookupInfoNFKC, nextComposed), new formInfo.ptr(3, false, true, lookupInfoNFKC, nextDecomposed)]); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; @@ -272672,7 +275177,7 @@ $packages["vendor/golang.org/x/text/unicode/norm"] = (function() { return $pkg; })(); $packages["vendor/golang.org/x/net/idna"] = (function() { - var $pkg = {}, $init, fmt, math, strings, utf8, bidirule, bidi, norm, info, category, valueRange, sparseBlocks, idnaTrie, options, Profile, labelError, runeError, labelIter, joinState, sliceType, sliceType$1, ptrType, arrayType, sliceType$2, sliceType$3, sliceType$4, sliceType$5, sliceType$6, ptrType$1, ptrType$3, funcType, funcType$1, funcType$2, ptrType$4, trie, mappings, xorData, idnaValues, idnaIndex, idnaSparseOffset, idnaSparseValues, idnaSparse, punycode, joinStates, lookup, punyError, decode, encode, madd, decodeDigit, encodeDigit, adapt, ToASCII, validateAndMap, validateFromPunycode, ascii; + var $pkg = {}, $init, fmt, math, strings, utf8, bidirule, bidi, norm, info, category, valueRange, sparseBlocks, idnaTrie, options, Profile, labelError, runeError, labelIter, joinState, sliceType, sliceType$1, ptrType, arrayType, sliceType$2, sliceType$3, sliceType$4, ptrType$1, sliceType$5, sliceType$6, ptrType$2, funcType, funcType$1, funcType$2, ptrType$4, trie, mappings, mappingIndex, xorData, idnaValues, idnaIndex, idnaSparseOffset, idnaSparseValues, idnaSparse, punycode, lookup, joinStates, punyError, decode, encode, madd, decodeDigit, encodeDigit, adapt, ToASCII, validateAndMap, validateFromPunycode, ascii; fmt = $packages["fmt"]; math = $packages["math"]; strings = $packages["strings"]; @@ -272786,12 +275291,12 @@ $packages["vendor/golang.org/x/net/idna"] = (function() { sliceType$2 = $sliceType(arrayType); sliceType$3 = $sliceType($Int32); sliceType$4 = $sliceType($Uint8); + ptrType$1 = $ptrType(Profile); sliceType$5 = $sliceType($emptyInterface); sliceType$6 = $sliceType($String); - ptrType$1 = $ptrType(sparseBlocks); - ptrType$3 = $ptrType(Profile); - funcType = $funcType([ptrType$3, $String], [$error], false); - funcType$1 = $funcType([ptrType$3, $String], [$String, $Bool, $error], false); + ptrType$2 = $ptrType(sparseBlocks); + funcType = $funcType([ptrType$1, $String], [$error], false); + funcType$1 = $funcType([ptrType$1, $String], [$String, $Bool, $error], false); funcType$2 = $funcType([$String], [$Bool], false); ptrType$4 = $ptrType(labelIter); info.prototype.isMapped = function isMapped() { @@ -272832,24 +275337,24 @@ $packages["vendor/golang.org/x/net/idna"] = (function() { }; $ptrType(info).prototype.isViramaModifier = function(...$args) { return new info(this.$get()).isViramaModifier(...$args); }; info.prototype.appendMapping = function appendMapping(b, s) { - var _index, b, c, index, p, s, s$1; + var _index, b, c, index, p, p$1, s, x; c = this.$val; index = (((c >>> 3 << 16 >>> 16) >> 0)); if (((c & 4) >>> 0) === 0) { - s$1 = $substring(mappings, index); - return $appendSlice(b, $substring(s$1, 1, (s$1.charCodeAt(0) + 1 << 24 >>> 24))); + p = index; + return $appendSlice(b, $substring(mappings, ((p < 0 || p >= mappingIndex.$length) ? ($throwRuntimeError("index out of range"), undefined) : mappingIndex.$array[mappingIndex.$offset + p]), (x = p + 1 >> 0, ((x < 0 || x >= mappingIndex.$length) ? ($throwRuntimeError("index out of range"), undefined) : mappingIndex.$array[mappingIndex.$offset + x])))); } b = $appendSlice(b, s); if (((c & 57344) >>> 0) === 57344) { _index = b.$length - 1 >> 0; ((_index < 0 || _index >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + _index] = ((((_index < 0 || _index >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + _index]) ^ (((index << 24 >>> 24)))) << 24 >>> 24)); } else { - p = b.$length - ((xorData.charCodeAt(index) >> 0)) >> 0; + p$1 = b.$length - ((xorData.charCodeAt(index) >> 0)) >> 0; while (true) { - if (!(p < b.$length)) { break; } + if (!(p$1 < b.$length)) { break; } index = index + (1) >> 0; - ((p < 0 || p >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + p] = ((((p < 0 || p >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + p]) ^ (xorData.charCodeAt(index))) << 24 >>> 24)); - p = p + (1) >> 0; + ((p$1 < 0 || p$1 >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + p$1] = ((((p$1 < 0 || p$1 >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + p$1]) ^ (xorData.charCodeAt(index))) << 24 >>> 24)); + p$1 = p$1 + (1) >> 0; } } return b; @@ -273001,10 +275506,10 @@ $packages["vendor/golang.org/x/net/idna"] = (function() { $ptrType(idnaTrie).prototype.lookupValue = function lookupValue(n, b) { var b, n, t, x; t = this; - if (n < 126) { + if (n < 133) { return ((x = (n << 6 >>> 0) + ((b >>> 0)) >>> 0, ((x < 0 || x >= idnaValues.length) ? ($throwRuntimeError("index out of range"), undefined) : idnaValues[x]))); } else { - n = n - (126) >>> 0; + n = n - (133) >>> 0; return (idnaSparse.lookup(n, b)); } }; @@ -273295,7 +275800,7 @@ $packages["vendor/golang.org/x/net/idna"] = (function() { var {$24r, _r, p, pp, s, $s, $r, $c} = $restore(this, {s}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; - pp = $clone(p, Profile); + pp = $clone((p === ptrType$1.nil && $throwNilPointerError(), p), Profile); pp.options.transitional = false; _r = pp.process(s, false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $24r = _r; @@ -273747,9 +276252,9 @@ $packages["vendor/golang.org/x/net/idna"] = (function() { return true; }; info.methods = [{prop: "isMapped", name: "isMapped", pkg: "vendor/golang.org/x/net/idna", typ: $funcType([], [$Bool], false)}, {prop: "category", name: "category", pkg: "vendor/golang.org/x/net/idna", typ: $funcType([], [category], false)}, {prop: "joinType", name: "joinType", pkg: "vendor/golang.org/x/net/idna", typ: $funcType([], [info], false)}, {prop: "isModifier", name: "isModifier", pkg: "vendor/golang.org/x/net/idna", typ: $funcType([], [$Bool], false)}, {prop: "isViramaModifier", name: "isViramaModifier", pkg: "vendor/golang.org/x/net/idna", typ: $funcType([], [$Bool], false)}, {prop: "appendMapping", name: "appendMapping", pkg: "vendor/golang.org/x/net/idna", typ: $funcType([sliceType$4, $String], [sliceType$4], false)}, {prop: "isBidi", name: "isBidi", pkg: "vendor/golang.org/x/net/idna", typ: $funcType([$String], [$Bool], false)}]; - ptrType$1.methods = [{prop: "lookup", name: "lookup", pkg: "vendor/golang.org/x/net/idna", typ: $funcType([$Uint32, $Uint8], [$Uint16], false)}]; + ptrType$2.methods = [{prop: "lookup", name: "lookup", pkg: "vendor/golang.org/x/net/idna", typ: $funcType([$Uint32, $Uint8], [$Uint16], false)}]; ptrType.methods = [{prop: "lookup", name: "lookup", pkg: "vendor/golang.org/x/net/idna", typ: $funcType([sliceType$4], [$Uint16, $Int], false)}, {prop: "lookupUnsafe", name: "lookupUnsafe", pkg: "vendor/golang.org/x/net/idna", typ: $funcType([sliceType$4], [$Uint16], false)}, {prop: "lookupString", name: "lookupString", pkg: "vendor/golang.org/x/net/idna", typ: $funcType([$String], [$Uint16, $Int], false)}, {prop: "lookupStringUnsafe", name: "lookupStringUnsafe", pkg: "vendor/golang.org/x/net/idna", typ: $funcType([$String], [$Uint16], false)}, {prop: "lookupValue", name: "lookupValue", pkg: "vendor/golang.org/x/net/idna", typ: $funcType([$Uint32, $Uint8], [$Uint16], false)}]; - ptrType$3.methods = [{prop: "ToASCII", name: "ToASCII", pkg: "", typ: $funcType([$String], [$String, $error], false)}, {prop: "ToUnicode", name: "ToUnicode", pkg: "", typ: $funcType([$String], [$String, $error], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "process", name: "process", pkg: "vendor/golang.org/x/net/idna", typ: $funcType([$String, $Bool], [$String, $error], false)}, {prop: "simplify", name: "simplify", pkg: "vendor/golang.org/x/net/idna", typ: $funcType([category], [category], false)}, {prop: "validateLabel", name: "validateLabel", pkg: "vendor/golang.org/x/net/idna", typ: $funcType([$String], [$error], false)}]; + ptrType$1.methods = [{prop: "ToASCII", name: "ToASCII", pkg: "", typ: $funcType([$String], [$String, $error], false)}, {prop: "ToUnicode", name: "ToUnicode", pkg: "", typ: $funcType([$String], [$String, $error], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "process", name: "process", pkg: "vendor/golang.org/x/net/idna", typ: $funcType([$String, $Bool], [$String, $error], false)}, {prop: "simplify", name: "simplify", pkg: "vendor/golang.org/x/net/idna", typ: $funcType([category], [category], false)}, {prop: "validateLabel", name: "validateLabel", pkg: "vendor/golang.org/x/net/idna", typ: $funcType([$String], [$error], false)}]; labelError.methods = [{prop: "code", name: "code", pkg: "vendor/golang.org/x/net/idna", typ: $funcType([], [$String], false)}, {prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; runeError.methods = [{prop: "code", name: "code", pkg: "vendor/golang.org/x/net/idna", typ: $funcType([], [$String], false)}, {prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; ptrType$4.methods = [{prop: "reset", name: "reset", pkg: "vendor/golang.org/x/net/idna", typ: $funcType([], [], false)}, {prop: "done", name: "done", pkg: "vendor/golang.org/x/net/idna", typ: $funcType([], [$Bool], false)}, {prop: "result", name: "result", pkg: "vendor/golang.org/x/net/idna", typ: $funcType([], [$String], false)}, {prop: "label", name: "label", pkg: "vendor/golang.org/x/net/idna", typ: $funcType([], [$String], false)}, {prop: "next", name: "next", pkg: "vendor/golang.org/x/net/idna", typ: $funcType([], [], false)}, {prop: "set", name: "set", pkg: "vendor/golang.org/x/net/idna", typ: $funcType([$String], [], false)}]; @@ -273772,18 +276277,19 @@ $packages["vendor/golang.org/x/net/idna"] = (function() { $r = bidi.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = norm.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } trie = new idnaTrie.ptr(); - mappings = "\x00\x01 \x03 \xCC\x88\x01a\x03 \xCC\x84\x012\x013\x03 \xCC\x81\x03 \xCC\xA7\x011\x01o\x051\xE2\x81\x844\x051\xE2\x81\x842\x053\xE2\x81\x844\x03i\xCC\x87\x03l\xC2\xB7\x03\xCA\xBCn\x01s\x03d\xC5\xBE\x03\xE2\xB1\xA5\x03\xE2\xB1\xA6\x01h\x01j\x01r\x01w\x01y\x03 \xCC\x86\x03 \xCC\x87\x03 \xCC\x8A\x03 \xCC\xA8\x03 \xCC\x83\x03 \xCC\x8B\x01l\x01x\x04\xCC\x88\xCC\x81\x03 \xCE\xB9\x01;\x05 \xCC\x88\xCC\x81\x04\xD5\xA5\xD6\x82\x04\xD8\xA7\xD9\xB4\x04\xD9\x88\xD9\xB4\x04\xDB\x87\xD9\xB4\x04\xD9\x8A\xD9\xB4\x06\xE0\xA4\x95\xE0\xA4\xBC\x06\xE0\xA4\x96\xE0\xA4\xBC\x06\xE0\xA4\x97\xE0\xA4\xBC\x06\xE0\xA4\x9C\xE0\xA4\xBC\x06\xE0\xA4\xA1\xE0\xA4\xBC\x06\xE0\xA4\xA2\xE0\xA4\xBC\x06\xE0\xA4\xAB\xE0\xA4\xBC\x06\xE0\xA4\xAF\xE0\xA4\xBC\x06\xE0\xA6\xA1\xE0\xA6\xBC\x06\xE0\xA6\xA2\xE0\xA6\xBC\x06\xE0\xA6\xAF\xE0\xA6\xBC\x06\xE0\xA8\xB2\xE0\xA8\xBC\x06\xE0\xA8\xB8\xE0\xA8\xBC\x06\xE0\xA8\x96\xE0\xA8\xBC\x06\xE0\xA8\x97\xE0\xA8\xBC\x06\xE0\xA8\x9C\xE0\xA8\xBC\x06\xE0\xA8\xAB\xE0\xA8\xBC\x06\xE0\xAC\xA1\xE0\xAC\xBC\x06\xE0\xAC\xA2\xE0\xAC\xBC\x06\xE0\xB9\x8D\xE0\xB8\xB2\x06\xE0\xBB\x8D\xE0\xBA\xB2\x06\xE0\xBA\xAB\xE0\xBA\x99\x06\xE0\xBA\xAB\xE0\xBA\xA1\x06\xE0\xBD\x82\xE0\xBE\xB7\x06\xE0\xBD\x8C\xE0\xBE\xB7\x06\xE0\xBD\x91\xE0\xBE\xB7\x06\xE0\xBD\x96\xE0\xBE\xB7\x06\xE0\xBD\x9B\xE0\xBE\xB7\x06\xE0\xBD\x80\xE0\xBE\xB5\x06\xE0\xBD\xB1\xE0\xBD\xB2\x06\xE0\xBD\xB1\xE0\xBD\xB4\x06\xE0\xBE\xB2\xE0\xBE\x80\t\xE0\xBE\xB2\xE0\xBD\xB1\xE0\xBE\x80\x06\xE0\xBE\xB3\xE0\xBE\x80\t\xE0\xBE\xB3\xE0\xBD\xB1\xE0\xBE\x80\x06\xE0\xBD\xB1\xE0\xBE\x80\x06\xE0\xBE\x92\xE0\xBE\xB7\x06\xE0\xBE\x9C\xE0\xBE\xB7\x06\xE0\xBE\xA1\xE0\xBE\xB7\x06\xE0\xBE\xA6\xE0\xBE\xB7\x06\xE0\xBE\xAB\xE0\xBE\xB7\x06\xE0\xBE\x90\xE0\xBE\xB5\x02\xD0\xB2\x02\xD0\xB4\x02\xD0\xBE\x02\xD1\x81\x02\xD1\x82\x02\xD1\x8A\x02\xD1\xA3\x02\xC3\xA6\x01b\x01d\x01e\x02\xC7\x9D\x01g\x01i\x01k\x01m\x01n\x02\xC8\xA3\x01p\x01t\x01u\x02\xC9\x90\x02\xC9\x91\x02\xC9\x99\x02\xC9\x9B\x02\xC9\x9C\x02\xC5\x8B\x02\xC9\x94\x02\xC9\xAF\x01v\x02\xCE\xB2\x02\xCE\xB3\x02\xCE\xB4\x02\xCF\x86\x02\xCF\x87\x02\xCF\x81\x02\xD0\xBD\x02\xC9\x92\x01c\x02\xC9\x95\x02\xC3\xB0\x01f\x02\xC9\x9F\x02\xC9\xA1\x02\xC9\xA5\x02\xC9\xA8\x02\xC9\xA9\x02\xC9\xAA\x02\xCA\x9D\x02\xC9\xAD\x02\xCA\x9F\x02\xC9\xB1\x02\xC9\xB0\x02\xC9\xB2\x02\xC9\xB3\x02\xC9\xB4\x02\xC9\xB5\x02\xC9\xB8\x02\xCA\x82\x02\xCA\x83\x02\xC6\xAB\x02\xCA\x89\x02\xCA\x8A\x02\xCA\x8B\x02\xCA\x8C\x01z\x02\xCA\x90\x02\xCA\x91\x02\xCA\x92\x02\xCE\xB8\x02ss\x02\xCE\xAC\x02\xCE\xAD\x02\xCE\xAE\x02\xCE\xAF\x02\xCF\x8C\x02\xCF\x8D\x02\xCF\x8E\x05\xE1\xBC\x80\xCE\xB9\x05\xE1\xBC\x81\xCE\xB9\x05\xE1\xBC\x82\xCE\xB9\x05\xE1\xBC\x83\xCE\xB9\x05\xE1\xBC\x84\xCE\xB9\x05\xE1\xBC\x85\xCE\xB9\x05\xE1\xBC\x86\xCE\xB9\x05\xE1\xBC\x87\xCE\xB9\x05\xE1\xBC\xA0\xCE\xB9\x05\xE1\xBC\xA1\xCE\xB9\x05\xE1\xBC\xA2\xCE\xB9\x05\xE1\xBC\xA3\xCE\xB9\x05\xE1\xBC\xA4\xCE\xB9\x05\xE1\xBC\xA5\xCE\xB9\x05\xE1\xBC\xA6\xCE\xB9\x05\xE1\xBC\xA7\xCE\xB9\x05\xE1\xBD\xA0\xCE\xB9\x05\xE1\xBD\xA1\xCE\xB9\x05\xE1\xBD\xA2\xCE\xB9\x05\xE1\xBD\xA3\xCE\xB9\x05\xE1\xBD\xA4\xCE\xB9\x05\xE1\xBD\xA5\xCE\xB9\x05\xE1\xBD\xA6\xCE\xB9\x05\xE1\xBD\xA7\xCE\xB9\x05\xE1\xBD\xB0\xCE\xB9\x04\xCE\xB1\xCE\xB9\x04\xCE\xAC\xCE\xB9\x05\xE1\xBE\xB6\xCE\xB9\x02\xCE\xB9\x05 \xCC\x88\xCD\x82\x05\xE1\xBD\xB4\xCE\xB9\x04\xCE\xB7\xCE\xB9\x04\xCE\xAE\xCE\xB9\x05\xE1\xBF\x86\xCE\xB9\x05 \xCC\x93\xCC\x80\x05 \xCC\x93\xCC\x81\x05 \xCC\x93\xCD\x82\x02\xCE\x90\x05 \xCC\x94\xCC\x80\x05 \xCC\x94\xCC\x81\x05 \xCC\x94\xCD\x82\x02\xCE\xB0\x05 \xCC\x88\xCC\x80\x01`\x05\xE1\xBD\xBC\xCE\xB9\x04\xCF\x89\xCE\xB9\x04\xCF\x8E\xCE\xB9\x05\xE1\xBF\xB6\xCE\xB9\x06\xE2\x80\xB2\xE2\x80\xB2\t\xE2\x80\xB2\xE2\x80\xB2\xE2\x80\xB2\x06\xE2\x80\xB5\xE2\x80\xB5\t\xE2\x80\xB5\xE2\x80\xB5\xE2\x80\xB5\x02!!\x02??\x02?!\x02!?\f\xE2\x80\xB2\xE2\x80\xB2\xE2\x80\xB2\xE2\x80\xB2\x010\x014\x015\x016\x017\x018\x019\x01+\x01=\x01(\x01)\x02rs\x02\xC4\xA7\x02no\x01q\x02sm\x02tm\x02\xCF\x89\x02\xC3\xA5\x02\xD7\x90\x02\xD7\x91\x02\xD7\x92\x02\xD7\x93\x02\xCF\x80\x051\xE2\x81\x847\x051\xE2\x81\x849\x061\xE2\x81\x8410\x051\xE2\x81\x843\x052\xE2\x81\x843\x051\xE2\x81\x845\x052\xE2\x81\x845\x053\xE2\x81\x845\x054\xE2\x81\x845\x051\xE2\x81\x846\x055\xE2\x81\x846\x051\xE2\x81\x848\x053\xE2\x81\x848\x055\xE2\x81\x848\x057\xE2\x81\x848\x041\xE2\x81\x84\x02ii\x02iv\x02vi\x04viii\x02ix\x02xi\x050\xE2\x81\x843\x06\xE2\x88\xAB\xE2\x88\xAB\t\xE2\x88\xAB\xE2\x88\xAB\xE2\x88\xAB\x06\xE2\x88\xAE\xE2\x88\xAE\t\xE2\x88\xAE\xE2\x88\xAE\xE2\x88\xAE\x0210\x0211\x0212\x0213\x0214\x0215\x0216\x0217\x0218\x0219\x0220\x04(10)\x04(11)\x04(12)\x04(13)\x04(14)\x04(15)\x04(16)\x04(17)\x04(18)\x04(19)\x04(20)\f\xE2\x88\xAB\xE2\x88\xAB\xE2\x88\xAB\xE2\x88\xAB\x02==\x05\xE2\xAB\x9D\xCC\xB8\x02\xC9\xAB\x02\xC9\xBD\x02\xC8\xBF\x02\xC9\x80\x01.\x04 \xE3\x82\x99\x04 \xE3\x82\x9A\x06\xE3\x82\x88\xE3\x82\x8A\x06\xE3\x82\xB3\xE3\x83\x88\x05(\xE1\x84\x80)\x05(\xE1\x84\x82)\x05(\xE1\x84\x83)\x05(\xE1\x84\x85)\x05(\xE1\x84\x86)\x05(\xE1\x84\x87)\x05(\xE1\x84\x89)\x05(\xE1\x84\x8B)\x05(\xE1\x84\x8C)\x05(\xE1\x84\x8E)\x05(\xE1\x84\x8F)\x05(\xE1\x84\x90)\x05(\xE1\x84\x91)\x05(\xE1\x84\x92)\x05(\xEA\xB0\x80)\x05(\xEB\x82\x98)\x05(\xEB\x8B\xA4)\x05(\xEB\x9D\xBC)\x05(\xEB\xA7\x88)\x05(\xEB\xB0\x94)\x05(\xEC\x82\xAC)\x05(\xEC\x95\x84)\x05(\xEC\x9E\x90)\x05(\xEC\xB0\xA8)\x05(\xEC\xB9\xB4)\x05(\xED\x83\x80)\x05(\xED\x8C\x8C)\x05(\xED\x95\x98)\x05(\xEC\xA3\xBC)\b(\xEC\x98\xA4\xEC\xA0\x84)\b(\xEC\x98\xA4\xED\x9B\x84)\x05(\xE4\xB8\x80)\x05(\xE4\xBA\x8C)\x05(\xE4\xB8\x89)\x05(\xE5\x9B\x9B)\x05(\xE4\xBA\x94)\x05(\xE5\x85\xAD)\x05(\xE4\xB8\x83)\x05(\xE5\x85\xAB)\x05(\xE4\xB9\x9D)\x05(\xE5\x8D\x81)\x05(\xE6\x9C\x88)\x05(\xE7\x81\xAB)\x05(\xE6\xB0\xB4)\x05(\xE6\x9C\xA8)\x05(\xE9\x87\x91)\x05(\xE5\x9C\x9F)\x05(\xE6\x97\xA5)\x05(\xE6\xA0\xAA)\x05(\xE6\x9C\x89)\x05(\xE7\xA4\xBE)\x05(\xE5\x90\x8D)\x05(\xE7\x89\xB9)\x05(\xE8\xB2\xA1)\x05(\xE7\xA5\x9D)\x05(\xE5\x8A\xB4)\x05(\xE4\xBB\xA3)\x05(\xE5\x91\xBC)\x05(\xE5\xAD\xA6)\x05(\xE7\x9B\xA3)\x05(\xE4\xBC\x81)\x05(\xE8\xB3\x87)\x05(\xE5\x8D\x94)\x05(\xE7\xA5\xAD)\x05(\xE4\xBC\x91)\x05(\xE8\x87\xAA)\x05(\xE8\x87\xB3)\x0221\x0222\x0223\x0224\x0225\x0226\x0227\x0228\x0229\x0230\x0231\x0232\x0233\x0234\x0235\x06\xEC\xB0\xB8\xEA\xB3\xA0\x06\xEC\xA3\xBC\xEC\x9D\x98\x0236\x0237\x0238\x0239\x0240\x0241\x0242\x0243\x0244\x0245\x0246\x0247\x0248\x0249\x0250\x041\xE6\x9C\x88\x042\xE6\x9C\x88\x043\xE6\x9C\x88\x044\xE6\x9C\x88\x045\xE6\x9C\x88\x046\xE6\x9C\x88\x047\xE6\x9C\x88\x048\xE6\x9C\x88\x049\xE6\x9C\x88\x0510\xE6\x9C\x88\x0511\xE6\x9C\x88\x0512\xE6\x9C\x88\x02hg\x02ev\x06\xE4\xBB\xA4\xE5\x92\x8C\f\xE3\x82\xA2\xE3\x83\x91\xE3\x83\xBC\xE3\x83\x88\f\xE3\x82\xA2\xE3\x83\xAB\xE3\x83\x95\xE3\x82\xA1\f\xE3\x82\xA2\xE3\x83\xB3\xE3\x83\x9A\xE3\x82\xA2\t\xE3\x82\xA2\xE3\x83\xBC\xE3\x83\xAB\f\xE3\x82\xA4\xE3\x83\x8B\xE3\x83\xB3\xE3\x82\xB0\t\xE3\x82\xA4\xE3\x83\xB3\xE3\x83\x81\t\xE3\x82\xA6\xE3\x82\xA9\xE3\x83\xB3\x0F\xE3\x82\xA8\xE3\x82\xB9\xE3\x82\xAF\xE3\x83\xBC\xE3\x83\x89\f\xE3\x82\xA8\xE3\x83\xBC\xE3\x82\xAB\xE3\x83\xBC\t\xE3\x82\xAA\xE3\x83\xB3\xE3\x82\xB9\t\xE3\x82\xAA\xE3\x83\xBC\xE3\x83\xA0\t\xE3\x82\xAB\xE3\x82\xA4\xE3\x83\xAA\f\xE3\x82\xAB\xE3\x83\xA9\xE3\x83\x83\xE3\x83\x88\f\xE3\x82\xAB\xE3\x83\xAD\xE3\x83\xAA\xE3\x83\xBC\t\xE3\x82\xAC\xE3\x83\xAD\xE3\x83\xB3\t\xE3\x82\xAC\xE3\x83\xB3\xE3\x83\x9E\x06\xE3\x82\xAE\xE3\x82\xAC\t\xE3\x82\xAE\xE3\x83\x8B\xE3\x83\xBC\f\xE3\x82\xAD\xE3\x83\xA5\xE3\x83\xAA\xE3\x83\xBC\f\xE3\x82\xAE\xE3\x83\xAB\xE3\x83\x80\xE3\x83\xBC\x06\xE3\x82\xAD\xE3\x83\xAD\x0F\xE3\x82\xAD\xE3\x83\xAD\xE3\x82\xB0\xE3\x83\xA9\xE3\x83\xA0\x12\xE3\x82\xAD\xE3\x83\xAD\xE3\x83\xA1\xE3\x83\xBC\xE3\x83\x88\xE3\x83\xAB\x0F\xE3\x82\xAD\xE3\x83\xAD\xE3\x83\xAF\xE3\x83\x83\xE3\x83\x88\t\xE3\x82\xB0\xE3\x83\xA9\xE3\x83\xA0\x0F\xE3\x82\xB0\xE3\x83\xA9\xE3\x83\xA0\xE3\x83\x88\xE3\x83\xB3\x0F\xE3\x82\xAF\xE3\x83\xAB\xE3\x82\xBC\xE3\x82\xA4\xE3\x83\xAD\f\xE3\x82\xAF\xE3\x83\xAD\xE3\x83\xBC\xE3\x83\x8D\t\xE3\x82\xB1\xE3\x83\xBC\xE3\x82\xB9\t\xE3\x82\xB3\xE3\x83\xAB\xE3\x83\x8A\t\xE3\x82\xB3\xE3\x83\xBC\xE3\x83\x9D\f\xE3\x82\xB5\xE3\x82\xA4\xE3\x82\xAF\xE3\x83\xAB\x0F\xE3\x82\xB5\xE3\x83\xB3\xE3\x83\x81\xE3\x83\xBC\xE3\x83\xA0\f\xE3\x82\xB7\xE3\x83\xAA\xE3\x83\xB3\xE3\x82\xB0\t\xE3\x82\xBB\xE3\x83\xB3\xE3\x83\x81\t\xE3\x82\xBB\xE3\x83\xB3\xE3\x83\x88\t\xE3\x83\x80\xE3\x83\xBC\xE3\x82\xB9\x06\xE3\x83\x87\xE3\x82\xB7\x06\xE3\x83\x89\xE3\x83\xAB\x06\xE3\x83\x88\xE3\x83\xB3\x06\xE3\x83\x8A\xE3\x83\x8E\t\xE3\x83\x8E\xE3\x83\x83\xE3\x83\x88\t\xE3\x83\x8F\xE3\x82\xA4\xE3\x83\x84\x0F\xE3\x83\x91\xE3\x83\xBC\xE3\x82\xBB\xE3\x83\xB3\xE3\x83\x88\t\xE3\x83\x91\xE3\x83\xBC\xE3\x83\x84\f\xE3\x83\x90\xE3\x83\xBC\xE3\x83\xAC\xE3\x83\xAB\x0F\xE3\x83\x94\xE3\x82\xA2\xE3\x82\xB9\xE3\x83\x88\xE3\x83\xAB\t\xE3\x83\x94\xE3\x82\xAF\xE3\x83\xAB\x06\xE3\x83\x94\xE3\x82\xB3\x06\xE3\x83\x93\xE3\x83\xAB\x0F\xE3\x83\x95\xE3\x82\xA1\xE3\x83\xA9\xE3\x83\x83\xE3\x83\x89\f\xE3\x83\x95\xE3\x82\xA3\xE3\x83\xBC\xE3\x83\x88\x0F\xE3\x83\x96\xE3\x83\x83\xE3\x82\xB7\xE3\x82\xA7\xE3\x83\xAB\t\xE3\x83\x95\xE3\x83\xA9\xE3\x83\xB3\x0F\xE3\x83\x98\xE3\x82\xAF\xE3\x82\xBF\xE3\x83\xBC\xE3\x83\xAB\x06\xE3\x83\x9A\xE3\x82\xBD\t\xE3\x83\x9A\xE3\x83\x8B\xE3\x83\x92\t\xE3\x83\x98\xE3\x83\xAB\xE3\x83\x84\t\xE3\x83\x9A\xE3\x83\xB3\xE3\x82\xB9\t\xE3\x83\x9A\xE3\x83\xBC\xE3\x82\xB8\t\xE3\x83\x99\xE3\x83\xBC\xE3\x82\xBF\f\xE3\x83\x9D\xE3\x82\xA4\xE3\x83\xB3\xE3\x83\x88\t\xE3\x83\x9C\xE3\x83\xAB\xE3\x83\x88\x06\xE3\x83\x9B\xE3\x83\xB3\t\xE3\x83\x9D\xE3\x83\xB3\xE3\x83\x89\t\xE3\x83\x9B\xE3\x83\xBC\xE3\x83\xAB\t\xE3\x83\x9B\xE3\x83\xBC\xE3\x83\xB3\f\xE3\x83\x9E\xE3\x82\xA4\xE3\x82\xAF\xE3\x83\xAD\t\xE3\x83\x9E\xE3\x82\xA4\xE3\x83\xAB\t\xE3\x83\x9E\xE3\x83\x83\xE3\x83\x8F\t\xE3\x83\x9E\xE3\x83\xAB\xE3\x82\xAF\x0F\xE3\x83\x9E\xE3\x83\xB3\xE3\x82\xB7\xE3\x83\xA7\xE3\x83\xB3\f\xE3\x83\x9F\xE3\x82\xAF\xE3\x83\xAD\xE3\x83\xB3\x06\xE3\x83\x9F\xE3\x83\xAA\x0F\xE3\x83\x9F\xE3\x83\xAA\xE3\x83\x90\xE3\x83\xBC\xE3\x83\xAB\x06\xE3\x83\xA1\xE3\x82\xAC\f\xE3\x83\xA1\xE3\x82\xAC\xE3\x83\x88\xE3\x83\xB3\f\xE3\x83\xA1\xE3\x83\xBC\xE3\x83\x88\xE3\x83\xAB\t\xE3\x83\xA4\xE3\x83\xBC\xE3\x83\x89\t\xE3\x83\xA4\xE3\x83\xBC\xE3\x83\xAB\t\xE3\x83\xA6\xE3\x82\xA2\xE3\x83\xB3\f\xE3\x83\xAA\xE3\x83\x83\xE3\x83\x88\xE3\x83\xAB\x06\xE3\x83\xAA\xE3\x83\xA9\t\xE3\x83\xAB\xE3\x83\x94\xE3\x83\xBC\f\xE3\x83\xAB\xE3\x83\xBC\xE3\x83\x96\xE3\x83\xAB\x06\xE3\x83\xAC\xE3\x83\xA0\x0F\xE3\x83\xAC\xE3\x83\xB3\xE3\x83\x88\xE3\x82\xB2\xE3\x83\xB3\t\xE3\x83\xAF\xE3\x83\x83\xE3\x83\x88\x040\xE7\x82\xB9\x041\xE7\x82\xB9\x042\xE7\x82\xB9\x043\xE7\x82\xB9\x044\xE7\x82\xB9\x045\xE7\x82\xB9\x046\xE7\x82\xB9\x047\xE7\x82\xB9\x048\xE7\x82\xB9\x049\xE7\x82\xB9\x0510\xE7\x82\xB9\x0511\xE7\x82\xB9\x0512\xE7\x82\xB9\x0513\xE7\x82\xB9\x0514\xE7\x82\xB9\x0515\xE7\x82\xB9\x0516\xE7\x82\xB9\x0517\xE7\x82\xB9\x0518\xE7\x82\xB9\x0519\xE7\x82\xB9\x0520\xE7\x82\xB9\x0521\xE7\x82\xB9\x0522\xE7\x82\xB9\x0523\xE7\x82\xB9\x0524\xE7\x82\xB9\x02da\x02au\x02ov\x02pc\x02dm\x02iu\x06\xE5\xB9\xB3\xE6\x88\x90\x06\xE6\x98\xAD\xE5\x92\x8C\x06\xE5\xA4\xA7\xE6\xAD\xA3\x06\xE6\x98\x8E\xE6\xB2\xBB\f\xE6\xA0\xAA\xE5\xBC\x8F\xE4\xBC\x9A\xE7\xA4\xBE\x02pa\x02na\x02ma\x02ka\x02kb\x02mb\x02gb\x04kcal\x02pf\x02nf\x02mg\x02kg\x02hz\x02ml\x02dl\x02kl\x02fm\x02nm\x02mm\x02cm\x02km\x02m2\x02m3\x05m\xE2\x88\x95s\x06m\xE2\x88\x95s2\x07rad\xE2\x88\x95s\brad\xE2\x88\x95s2\x02ps\x02ns\x02ms\x02pv\x02nv\x02mv\x02kv\x02pw\x02nw\x02mw\x02kw\x02bq\x02cc\x02cd\x06c\xE2\x88\x95kg\x02db\x02gy\x02ha\x02hp\x02in\x02kk\x02kt\x02lm\x02ln\x02lx\x02ph\x02pr\x02sr\x02sv\x02wb\x05v\xE2\x88\x95m\x05a\xE2\x88\x95m\x041\xE6\x97\xA5\x042\xE6\x97\xA5\x043\xE6\x97\xA5\x044\xE6\x97\xA5\x045\xE6\x97\xA5\x046\xE6\x97\xA5\x047\xE6\x97\xA5\x048\xE6\x97\xA5\x049\xE6\x97\xA5\x0510\xE6\x97\xA5\x0511\xE6\x97\xA5\x0512\xE6\x97\xA5\x0513\xE6\x97\xA5\x0514\xE6\x97\xA5\x0515\xE6\x97\xA5\x0516\xE6\x97\xA5\x0517\xE6\x97\xA5\x0518\xE6\x97\xA5\x0519\xE6\x97\xA5\x0520\xE6\x97\xA5\x0521\xE6\x97\xA5\x0522\xE6\x97\xA5\x0523\xE6\x97\xA5\x0524\xE6\x97\xA5\x0525\xE6\x97\xA5\x0526\xE6\x97\xA5\x0527\xE6\x97\xA5\x0528\xE6\x97\xA5\x0529\xE6\x97\xA5\x0530\xE6\x97\xA5\x0531\xE6\x97\xA5\x02\xD1\x8C\x02\xC9\xA6\x02\xC9\xAC\x02\xCA\x9E\x02\xCA\x87\x02\xC5\x93\x02\xCA\x8D\x04\xF0\xA4\x8B\xAE\x04\xF0\xA2\xA1\x8A\x04\xF0\xA2\xA1\x84\x04\xF0\xA3\x8F\x95\x04\xF0\xA5\x89\x89\x04\xF0\xA5\xB3\x90\x04\xF0\xA7\xBB\x93\x02ff\x02fi\x02fl\x02st\x04\xD5\xB4\xD5\xB6\x04\xD5\xB4\xD5\xA5\x04\xD5\xB4\xD5\xAB\x04\xD5\xBE\xD5\xB6\x04\xD5\xB4\xD5\xAD\x04\xD7\x99\xD6\xB4\x04\xD7\xB2\xD6\xB7\x02\xD7\xA2\x02\xD7\x94\x02\xD7\x9B\x02\xD7\x9C\x02\xD7\x9D\x02\xD7\xA8\x02\xD7\xAA\x04\xD7\xA9\xD7\x81\x04\xD7\xA9\xD7\x82\x06\xD7\xA9\xD6\xBC\xD7\x81\x06\xD7\xA9\xD6\xBC\xD7\x82\x04\xD7\x90\xD6\xB7\x04\xD7\x90\xD6\xB8\x04\xD7\x90\xD6\xBC\x04\xD7\x91\xD6\xBC\x04\xD7\x92\xD6\xBC\x04\xD7\x93\xD6\xBC\x04\xD7\x94\xD6\xBC\x04\xD7\x95\xD6\xBC\x04\xD7\x96\xD6\xBC\x04\xD7\x98\xD6\xBC\x04\xD7\x99\xD6\xBC\x04\xD7\x9A\xD6\xBC\x04\xD7\x9B\xD6\xBC\x04\xD7\x9C\xD6\xBC\x04\xD7\x9E\xD6\xBC\x04\xD7\xA0\xD6\xBC\x04\xD7\xA1\xD6\xBC\x04\xD7\xA3\xD6\xBC\x04\xD7\xA4\xD6\xBC\x04\xD7\xA6\xD6\xBC\x04\xD7\xA7\xD6\xBC\x04\xD7\xA8\xD6\xBC\x04\xD7\xA9\xD6\xBC\x04\xD7\xAA\xD6\xBC\x04\xD7\x95\xD6\xB9\x04\xD7\x91\xD6\xBF\x04\xD7\x9B\xD6\xBF\x04\xD7\xA4\xD6\xBF\x04\xD7\x90\xD7\x9C\x02\xD9\xB1\x02\xD9\xBB\x02\xD9\xBE\x02\xDA\x80\x02\xD9\xBA\x02\xD9\xBF\x02\xD9\xB9\x02\xDA\xA4\x02\xDA\xA6\x02\xDA\x84\x02\xDA\x83\x02\xDA\x86\x02\xDA\x87\x02\xDA\x8D\x02\xDA\x8C\x02\xDA\x8E\x02\xDA\x88\x02\xDA\x98\x02\xDA\x91\x02\xDA\xA9\x02\xDA\xAF\x02\xDA\xB3\x02\xDA\xB1\x02\xDA\xBA\x02\xDA\xBB\x02\xDB\x80\x02\xDB\x81\x02\xDA\xBE\x02\xDB\x92\x02\xDB\x93\x02\xDA\xAD\x02\xDB\x87\x02\xDB\x86\x02\xDB\x88\x02\xDB\x8B\x02\xDB\x85\x02\xDB\x89\x02\xDB\x90\x02\xD9\x89\x04\xD8\xA6\xD8\xA7\x04\xD8\xA6\xDB\x95\x04\xD8\xA6\xD9\x88\x04\xD8\xA6\xDB\x87\x04\xD8\xA6\xDB\x86\x04\xD8\xA6\xDB\x88\x04\xD8\xA6\xDB\x90\x04\xD8\xA6\xD9\x89\x02\xDB\x8C\x04\xD8\xA6\xD8\xAC\x04\xD8\xA6\xD8\xAD\x04\xD8\xA6\xD9\x85\x04\xD8\xA6\xD9\x8A\x04\xD8\xA8\xD8\xAC\x04\xD8\xA8\xD8\xAD\x04\xD8\xA8\xD8\xAE\x04\xD8\xA8\xD9\x85\x04\xD8\xA8\xD9\x89\x04\xD8\xA8\xD9\x8A\x04\xD8\xAA\xD8\xAC\x04\xD8\xAA\xD8\xAD\x04\xD8\xAA\xD8\xAE\x04\xD8\xAA\xD9\x85\x04\xD8\xAA\xD9\x89\x04\xD8\xAA\xD9\x8A\x04\xD8\xAB\xD8\xAC\x04\xD8\xAB\xD9\x85\x04\xD8\xAB\xD9\x89\x04\xD8\xAB\xD9\x8A\x04\xD8\xAC\xD8\xAD\x04\xD8\xAC\xD9\x85\x04\xD8\xAD\xD8\xAC\x04\xD8\xAD\xD9\x85\x04\xD8\xAE\xD8\xAC\x04\xD8\xAE\xD8\xAD\x04\xD8\xAE\xD9\x85\x04\xD8\xB3\xD8\xAC\x04\xD8\xB3\xD8\xAD\x04\xD8\xB3\xD8\xAE\x04\xD8\xB3\xD9\x85\x04\xD8\xB5\xD8\xAD\x04\xD8\xB5\xD9\x85\x04\xD8\xB6\xD8\xAC\x04\xD8\xB6\xD8\xAD\x04\xD8\xB6\xD8\xAE\x04\xD8\xB6\xD9\x85\x04\xD8\xB7\xD8\xAD\x04\xD8\xB7\xD9\x85\x04\xD8\xB8\xD9\x85\x04\xD8\xB9\xD8\xAC\x04\xD8\xB9\xD9\x85\x04\xD8\xBA\xD8\xAC\x04\xD8\xBA\xD9\x85\x04\xD9\x81\xD8\xAC\x04\xD9\x81\xD8\xAD\x04\xD9\x81\xD8\xAE\x04\xD9\x81\xD9\x85\x04\xD9\x81\xD9\x89\x04\xD9\x81\xD9\x8A\x04\xD9\x82\xD8\xAD\x04\xD9\x82\xD9\x85\x04\xD9\x82\xD9\x89\x04\xD9\x82\xD9\x8A\x04\xD9\x83\xD8\xA7\x04\xD9\x83\xD8\xAC\x04\xD9\x83\xD8\xAD\x04\xD9\x83\xD8\xAE\x04\xD9\x83\xD9\x84\x04\xD9\x83\xD9\x85\x04\xD9\x83\xD9\x89\x04\xD9\x83\xD9\x8A\x04\xD9\x84\xD8\xAC\x04\xD9\x84\xD8\xAD\x04\xD9\x84\xD8\xAE\x04\xD9\x84\xD9\x85\x04\xD9\x84\xD9\x89\x04\xD9\x84\xD9\x8A\x04\xD9\x85\xD8\xAC\x04\xD9\x85\xD8\xAD\x04\xD9\x85\xD8\xAE\x04\xD9\x85\xD9\x85\x04\xD9\x85\xD9\x89\x04\xD9\x85\xD9\x8A\x04\xD9\x86\xD8\xAC\x04\xD9\x86\xD8\xAD\x04\xD9\x86\xD8\xAE\x04\xD9\x86\xD9\x85\x04\xD9\x86\xD9\x89\x04\xD9\x86\xD9\x8A\x04\xD9\x87\xD8\xAC\x04\xD9\x87\xD9\x85\x04\xD9\x87\xD9\x89\x04\xD9\x87\xD9\x8A\x04\xD9\x8A\xD8\xAC\x04\xD9\x8A\xD8\xAD\x04\xD9\x8A\xD8\xAE\x04\xD9\x8A\xD9\x85\x04\xD9\x8A\xD9\x89\x04\xD9\x8A\xD9\x8A\x04\xD8\xB0\xD9\xB0\x04\xD8\xB1\xD9\xB0\x04\xD9\x89\xD9\xB0\x05 \xD9\x8C\xD9\x91\x05 \xD9\x8D\xD9\x91\x05 \xD9\x8E\xD9\x91\x05 \xD9\x8F\xD9\x91\x05 \xD9\x90\xD9\x91\x05 \xD9\x91\xD9\xB0\x04\xD8\xA6\xD8\xB1\x04\xD8\xA6\xD8\xB2\x04\xD8\xA6\xD9\x86\x04\xD8\xA8\xD8\xB1\x04\xD8\xA8\xD8\xB2\x04\xD8\xA8\xD9\x86\x04\xD8\xAA\xD8\xB1\x04\xD8\xAA\xD8\xB2\x04\xD8\xAA\xD9\x86\x04\xD8\xAB\xD8\xB1\x04\xD8\xAB\xD8\xB2\x04\xD8\xAB\xD9\x86\x04\xD9\x85\xD8\xA7\x04\xD9\x86\xD8\xB1\x04\xD9\x86\xD8\xB2\x04\xD9\x86\xD9\x86\x04\xD9\x8A\xD8\xB1\x04\xD9\x8A\xD8\xB2\x04\xD9\x8A\xD9\x86\x04\xD8\xA6\xD8\xAE\x04\xD8\xA6\xD9\x87\x04\xD8\xA8\xD9\x87\x04\xD8\xAA\xD9\x87\x04\xD8\xB5\xD8\xAE\x04\xD9\x84\xD9\x87\x04\xD9\x86\xD9\x87\x04\xD9\x87\xD9\xB0\x04\xD9\x8A\xD9\x87\x04\xD8\xAB\xD9\x87\x04\xD8\xB3\xD9\x87\x04\xD8\xB4\xD9\x85\x04\xD8\xB4\xD9\x87\x06\xD9\x80\xD9\x8E\xD9\x91\x06\xD9\x80\xD9\x8F\xD9\x91\x06\xD9\x80\xD9\x90\xD9\x91\x04\xD8\xB7\xD9\x89\x04\xD8\xB7\xD9\x8A\x04\xD8\xB9\xD9\x89\x04\xD8\xB9\xD9\x8A\x04\xD8\xBA\xD9\x89\x04\xD8\xBA\xD9\x8A\x04\xD8\xB3\xD9\x89\x04\xD8\xB3\xD9\x8A\x04\xD8\xB4\xD9\x89\x04\xD8\xB4\xD9\x8A\x04\xD8\xAD\xD9\x89\x04\xD8\xAD\xD9\x8A\x04\xD8\xAC\xD9\x89\x04\xD8\xAC\xD9\x8A\x04\xD8\xAE\xD9\x89\x04\xD8\xAE\xD9\x8A\x04\xD8\xB5\xD9\x89\x04\xD8\xB5\xD9\x8A\x04\xD8\xB6\xD9\x89\x04\xD8\xB6\xD9\x8A\x04\xD8\xB4\xD8\xAC\x04\xD8\xB4\xD8\xAD\x04\xD8\xB4\xD8\xAE\x04\xD8\xB4\xD8\xB1\x04\xD8\xB3\xD8\xB1\x04\xD8\xB5\xD8\xB1\x04\xD8\xB6\xD8\xB1\x04\xD8\xA7\xD9\x8B\x06\xD8\xAA\xD8\xAC\xD9\x85\x06\xD8\xAA\xD8\xAD\xD8\xAC\x06\xD8\xAA\xD8\xAD\xD9\x85\x06\xD8\xAA\xD8\xAE\xD9\x85\x06\xD8\xAA\xD9\x85\xD8\xAC\x06\xD8\xAA\xD9\x85\xD8\xAD\x06\xD8\xAA\xD9\x85\xD8\xAE\x06\xD8\xAC\xD9\x85\xD8\xAD\x06\xD8\xAD\xD9\x85\xD9\x8A\x06\xD8\xAD\xD9\x85\xD9\x89\x06\xD8\xB3\xD8\xAD\xD8\xAC\x06\xD8\xB3\xD8\xAC\xD8\xAD\x06\xD8\xB3\xD8\xAC\xD9\x89\x06\xD8\xB3\xD9\x85\xD8\xAD\x06\xD8\xB3\xD9\x85\xD8\xAC\x06\xD8\xB3\xD9\x85\xD9\x85\x06\xD8\xB5\xD8\xAD\xD8\xAD\x06\xD8\xB5\xD9\x85\xD9\x85\x06\xD8\xB4\xD8\xAD\xD9\x85\x06\xD8\xB4\xD8\xAC\xD9\x8A\x06\xD8\xB4\xD9\x85\xD8\xAE\x06\xD8\xB4\xD9\x85\xD9\x85\x06\xD8\xB6\xD8\xAD\xD9\x89\x06\xD8\xB6\xD8\xAE\xD9\x85\x06\xD8\xB7\xD9\x85\xD8\xAD\x06\xD8\xB7\xD9\x85\xD9\x85\x06\xD8\xB7\xD9\x85\xD9\x8A\x06\xD8\xB9\xD8\xAC\xD9\x85\x06\xD8\xB9\xD9\x85\xD9\x85\x06\xD8\xB9\xD9\x85\xD9\x89\x06\xD8\xBA\xD9\x85\xD9\x85\x06\xD8\xBA\xD9\x85\xD9\x8A\x06\xD8\xBA\xD9\x85\xD9\x89\x06\xD9\x81\xD8\xAE\xD9\x85\x06\xD9\x82\xD9\x85\xD8\xAD\x06\xD9\x82\xD9\x85\xD9\x85\x06\xD9\x84\xD8\xAD\xD9\x85\x06\xD9\x84\xD8\xAD\xD9\x8A\x06\xD9\x84\xD8\xAD\xD9\x89\x06\xD9\x84\xD8\xAC\xD8\xAC\x06\xD9\x84\xD8\xAE\xD9\x85\x06\xD9\x84\xD9\x85\xD8\xAD\x06\xD9\x85\xD8\xAD\xD8\xAC\x06\xD9\x85\xD8\xAD\xD9\x85\x06\xD9\x85\xD8\xAD\xD9\x8A\x06\xD9\x85\xD8\xAC\xD8\xAD\x06\xD9\x85\xD8\xAC\xD9\x85\x06\xD9\x85\xD8\xAE\xD8\xAC\x06\xD9\x85\xD8\xAE\xD9\x85\x06\xD9\x85\xD8\xAC\xD8\xAE\x06\xD9\x87\xD9\x85\xD8\xAC\x06\xD9\x87\xD9\x85\xD9\x85\x06\xD9\x86\xD8\xAD\xD9\x85\x06\xD9\x86\xD8\xAD\xD9\x89\x06\xD9\x86\xD8\xAC\xD9\x85\x06\xD9\x86\xD8\xAC\xD9\x89\x06\xD9\x86\xD9\x85\xD9\x8A\x06\xD9\x86\xD9\x85\xD9\x89\x06\xD9\x8A\xD9\x85\xD9\x85\x06\xD8\xA8\xD8\xAE\xD9\x8A\x06\xD8\xAA\xD8\xAC\xD9\x8A\x06\xD8\xAA\xD8\xAC\xD9\x89\x06\xD8\xAA\xD8\xAE\xD9\x8A\x06\xD8\xAA\xD8\xAE\xD9\x89\x06\xD8\xAA\xD9\x85\xD9\x8A\x06\xD8\xAA\xD9\x85\xD9\x89\x06\xD8\xAC\xD9\x85\xD9\x8A\x06\xD8\xAC\xD8\xAD\xD9\x89\x06\xD8\xAC\xD9\x85\xD9\x89\x06\xD8\xB3\xD8\xAE\xD9\x89\x06\xD8\xB5\xD8\xAD\xD9\x8A\x06\xD8\xB4\xD8\xAD\xD9\x8A\x06\xD8\xB6\xD8\xAD\xD9\x8A\x06\xD9\x84\xD8\xAC\xD9\x8A\x06\xD9\x84\xD9\x85\xD9\x8A\x06\xD9\x8A\xD8\xAD\xD9\x8A\x06\xD9\x8A\xD8\xAC\xD9\x8A\x06\xD9\x8A\xD9\x85\xD9\x8A\x06\xD9\x85\xD9\x85\xD9\x8A\x06\xD9\x82\xD9\x85\xD9\x8A\x06\xD9\x86\xD8\xAD\xD9\x8A\x06\xD8\xB9\xD9\x85\xD9\x8A\x06\xD9\x83\xD9\x85\xD9\x8A\x06\xD9\x86\xD8\xAC\xD8\xAD\x06\xD9\x85\xD8\xAE\xD9\x8A\x06\xD9\x84\xD8\xAC\xD9\x85\x06\xD9\x83\xD9\x85\xD9\x85\x06\xD8\xAC\xD8\xAD\xD9\x8A\x06\xD8\xAD\xD8\xAC\xD9\x8A\x06\xD9\x85\xD8\xAC\xD9\x8A\x06\xD9\x81\xD9\x85\xD9\x8A\x06\xD8\xA8\xD8\xAD\xD9\x8A\x06\xD8\xB3\xD8\xAE\xD9\x8A\x06\xD9\x86\xD8\xAC\xD9\x8A\x06\xD8\xB5\xD9\x84\xDB\x92\x06\xD9\x82\xD9\x84\xDB\x92\b\xD8\xA7\xD9\x84\xD9\x84\xD9\x87\b\xD8\xA7\xD9\x83\xD8\xA8\xD8\xB1\b\xD9\x85\xD8\xAD\xD9\x85\xD8\xAF\b\xD8\xB5\xD9\x84\xD8\xB9\xD9\x85\b\xD8\xB1\xD8\xB3\xD9\x88\xD9\x84\b\xD8\xB9\xD9\x84\xD9\x8A\xD9\x87\b\xD9\x88\xD8\xB3\xD9\x84\xD9\x85\x06\xD8\xB5\xD9\x84\xD9\x89!\xD8\xB5\xD9\x84\xD9\x89 \xD8\xA7\xD9\x84\xD9\x84\xD9\x87 \xD8\xB9\xD9\x84\xD9\x8A\xD9\x87 \xD9\x88\xD8\xB3\xD9\x84\xD9\x85\x0F\xD8\xAC\xD9\x84 \xD8\xAC\xD9\x84\xD8\xA7\xD9\x84\xD9\x87\b\xD8\xB1\xDB\x8C\xD8\xA7\xD9\x84\x01,\x01:\x01!\x01?\x01_\x01{\x01}\x01[\x01]\x01#\x01&\x01*\x01-\x01<\x01>\x01\\\x01$\x01%\x01@\x04\xD9\x80\xD9\x8B\x04\xD9\x80\xD9\x8E\x04\xD9\x80\xD9\x8F\x04\xD9\x80\xD9\x90\x04\xD9\x80\xD9\x91\x04\xD9\x80\xD9\x92\x02\xD8\xA1\x02\xD8\xA2\x02\xD8\xA3\x02\xD8\xA4\x02\xD8\xA5\x02\xD8\xA6\x02\xD8\xA7\x02\xD8\xA8\x02\xD8\xA9\x02\xD8\xAA\x02\xD8\xAB\x02\xD8\xAC\x02\xD8\xAD\x02\xD8\xAE\x02\xD8\xAF\x02\xD8\xB0\x02\xD8\xB1\x02\xD8\xB2\x02\xD8\xB3\x02\xD8\xB4\x02\xD8\xB5\x02\xD8\xB6\x02\xD8\xB7\x02\xD8\xB8\x02\xD8\xB9\x02\xD8\xBA\x02\xD9\x81\x02\xD9\x82\x02\xD9\x83\x02\xD9\x84\x02\xD9\x85\x02\xD9\x86\x02\xD9\x87\x02\xD9\x88\x02\xD9\x8A\x04\xD9\x84\xD8\xA2\x04\xD9\x84\xD8\xA3\x04\xD9\x84\xD8\xA5\x04\xD9\x84\xD8\xA7\x01\"\x01'\x01/\x01^\x01|\x01~\x02\xC2\xA2\x02\xC2\xA3\x02\xC2\xAC\x02\xC2\xA6\x02\xC2\xA5\b\xF0\x9D\x85\x97\xF0\x9D\x85\xA5\b\xF0\x9D\x85\x98\xF0\x9D\x85\xA5\f\xF0\x9D\x85\x98\xF0\x9D\x85\xA5\xF0\x9D\x85\xAE\f\xF0\x9D\x85\x98\xF0\x9D\x85\xA5\xF0\x9D\x85\xAF\f\xF0\x9D\x85\x98\xF0\x9D\x85\xA5\xF0\x9D\x85\xB0\f\xF0\x9D\x85\x98\xF0\x9D\x85\xA5\xF0\x9D\x85\xB1\f\xF0\x9D\x85\x98\xF0\x9D\x85\xA5\xF0\x9D\x85\xB2\b\xF0\x9D\x86\xB9\xF0\x9D\x85\xA5\b\xF0\x9D\x86\xBA\xF0\x9D\x85\xA5\f\xF0\x9D\x86\xB9\xF0\x9D\x85\xA5\xF0\x9D\x85\xAE\f\xF0\x9D\x86\xBA\xF0\x9D\x85\xA5\xF0\x9D\x85\xAE\f\xF0\x9D\x86\xB9\xF0\x9D\x85\xA5\xF0\x9D\x85\xAF\f\xF0\x9D\x86\xBA\xF0\x9D\x85\xA5\xF0\x9D\x85\xAF\x02\xC4\xB1\x02\xC8\xB7\x02\xCE\xB1\x02\xCE\xB5\x02\xCE\xB6\x02\xCE\xB7\x02\xCE\xBA\x02\xCE\xBB\x02\xCE\xBC\x02\xCE\xBD\x02\xCE\xBE\x02\xCE\xBF\x02\xCF\x83\x02\xCF\x84\x02\xCF\x85\x02\xCF\x88\x03\xE2\x88\x87\x03\xE2\x88\x82\x02\xCF\x9D\x02\xD9\xAE\x02\xDA\xA1\x02\xD9\xAF\x020,\x021,\x022,\x023,\x024,\x025,\x026,\x027,\x028,\x029,\x03(a)\x03(b)\x03(c)\x03(d)\x03(e)\x03(f)\x03(g)\x03(h)\x03(i)\x03(j)\x03(k)\x03(l)\x03(m)\x03(n)\x03(o)\x03(p)\x03(q)\x03(r)\x03(s)\x03(t)\x03(u)\x03(v)\x03(w)\x03(x)\x03(y)\x03(z)\x07\xE3\x80\x94s\xE3\x80\x95\x02wz\x02hv\x02sd\x03ppv\x02wc\x02mc\x02md\x02mr\x02dj\x06\xE3\x81\xBB\xE3\x81\x8B\x06\xE3\x82\xB3\xE3\x82\xB3\x03\xE3\x82\xB5\x03\xE6\x89\x8B\x03\xE5\xAD\x97\x03\xE5\x8F\x8C\x03\xE3\x83\x87\x03\xE4\xBA\x8C\x03\xE5\xA4\x9A\x03\xE8\xA7\xA3\x03\xE5\xA4\xA9\x03\xE4\xBA\xA4\x03\xE6\x98\xA0\x03\xE7\x84\xA1\x03\xE6\x96\x99\x03\xE5\x89\x8D\x03\xE5\xBE\x8C\x03\xE5\x86\x8D\x03\xE6\x96\xB0\x03\xE5\x88\x9D\x03\xE7\xB5\x82\x03\xE7\x94\x9F\x03\xE8\xB2\xA9\x03\xE5\xA3\xB0\x03\xE5\x90\xB9\x03\xE6\xBC\x94\x03\xE6\x8A\x95\x03\xE6\x8D\x95\x03\xE4\xB8\x80\x03\xE4\xB8\x89\x03\xE9\x81\x8A\x03\xE5\xB7\xA6\x03\xE4\xB8\xAD\x03\xE5\x8F\xB3\x03\xE6\x8C\x87\x03\xE8\xB5\xB0\x03\xE6\x89\x93\x03\xE7\xA6\x81\x03\xE7\xA9\xBA\x03\xE5\x90\x88\x03\xE6\xBA\x80\x03\xE6\x9C\x89\x03\xE6\x9C\x88\x03\xE7\x94\xB3\x03\xE5\x89\xB2\x03\xE5\x96\xB6\x03\xE9\x85\x8D\t\xE3\x80\x94\xE6\x9C\xAC\xE3\x80\x95\t\xE3\x80\x94\xE4\xB8\x89\xE3\x80\x95\t\xE3\x80\x94\xE4\xBA\x8C\xE3\x80\x95\t\xE3\x80\x94\xE5\xAE\x89\xE3\x80\x95\t\xE3\x80\x94\xE7\x82\xB9\xE3\x80\x95\t\xE3\x80\x94\xE6\x89\x93\xE3\x80\x95\t\xE3\x80\x94\xE7\x9B\x97\xE3\x80\x95\t\xE3\x80\x94\xE5\x8B\x9D\xE3\x80\x95\t\xE3\x80\x94\xE6\x95\x97\xE3\x80\x95\x03\xE5\xBE\x97\x03\xE5\x8F\xAF\x03\xE4\xB8\xBD\x03\xE4\xB8\xB8\x03\xE4\xB9\x81\x03\xE4\xBD\xA0\x03\xE4\xBE\xAE\x03\xE4\xBE\xBB\x03\xE5\x80\x82\x03\xE5\x81\xBA\x03\xE5\x82\x99\x03\xE5\x83\xA7\x03\xE5\x83\x8F\x03\xE3\x92\x9E\x03\xE5\x85\x8D\x03\xE5\x85\x94\x03\xE5\x85\xA4\x03\xE5\x85\xB7\x03\xE3\x92\xB9\x03\xE5\x85\xA7\x03\xE5\x86\x97\x03\xE5\x86\xA4\x03\xE4\xBB\x8C\x03\xE5\x86\xAC\x03\xE5\x86\xB5\x03\xE5\x87\xB5\x03\xE5\x88\x83\x03\xE3\x93\x9F\x03\xE5\x88\xBB\x03\xE5\x89\x86\x03\xE5\x89\xB7\x03\xE3\x94\x95\x03\xE5\x8B\x87\x03\xE5\x8B\x89\x03\xE5\x8B\xA4\x03\xE5\x8B\xBA\x03\xE5\x8C\x85\x03\xE5\x8C\x86\x03\xE5\x8C\x97\x03\xE5\x8D\x89\x03\xE5\x8D\x91\x03\xE5\x8D\x9A\x03\xE5\x8D\xB3\x03\xE5\x8D\xBD\x03\xE5\x8D\xBF\x03\xE7\x81\xB0\x03\xE5\x8F\x8A\x03\xE5\x8F\x9F\x03\xE5\x8F\xAB\x03\xE5\x8F\xB1\x03\xE5\x90\x86\x03\xE5\x92\x9E\x03\xE5\x90\xB8\x03\xE5\x91\x88\x03\xE5\x91\xA8\x03\xE5\x92\xA2\x03\xE5\x93\xB6\x03\xE5\x94\x90\x03\xE5\x95\x93\x03\xE5\x95\xA3\x03\xE5\x96\x84\x03\xE5\x96\x99\x03\xE5\x96\xAB\x03\xE5\x96\xB3\x03\xE5\x97\x82\x03\xE5\x9C\x96\x03\xE5\x98\x86\x03\xE5\x9C\x97\x03\xE5\x99\x91\x03\xE5\x99\xB4\x03\xE5\x88\x87\x03\xE5\xA3\xAE\x03\xE5\x9F\x8E\x03\xE5\x9F\xB4\x03\xE5\xA0\x8D\x03\xE5\x9E\x8B\x03\xE5\xA0\xB2\x03\xE5\xA0\xB1\x03\xE5\xA2\xAC\x03\xE5\xA3\xB2\x03\xE5\xA3\xB7\x03\xE5\xA4\x86\x03\xE5\xA4\xA2\x03\xE5\xA5\xA2\x03\xE5\xA7\xAC\x03\xE5\xA8\x9B\x03\xE5\xA8\xA7\x03\xE5\xA7\x98\x03\xE5\xA9\xA6\x03\xE3\x9B\xAE\x03\xE5\xAC\x88\x03\xE5\xAC\xBE\x03\xE5\xAF\x83\x03\xE5\xAF\x98\x03\xE5\xAF\xA7\x03\xE5\xAF\xB3\x03\xE5\xAF\xBF\x03\xE5\xB0\x86\x03\xE5\xB0\xA2\x03\xE3\x9E\x81\x03\xE5\xB1\xA0\x03\xE5\xB1\xAE\x03\xE5\xB3\x80\x03\xE5\xB2\x8D\x03\xE5\xB5\x83\x03\xE5\xB5\xAE\x03\xE5\xB5\xAB\x03\xE5\xB5\xBC\x03\xE5\xB7\xA1\x03\xE5\xB7\xA2\x03\xE3\xA0\xAF\x03\xE5\xB7\xBD\x03\xE5\xB8\xA8\x03\xE5\xB8\xBD\x03\xE5\xB9\xA9\x03\xE3\xA1\xA2\x03\xE3\xA1\xBC\x03\xE5\xBA\xB0\x03\xE5\xBA\xB3\x03\xE5\xBA\xB6\x03\xE5\xBB\x8A\x03\xE5\xBB\xBE\x03\xE8\x88\x81\x03\xE5\xBC\xA2\x03\xE3\xA3\x87\x03\xE5\xBD\xA2\x03\xE5\xBD\xAB\x03\xE3\xA3\xA3\x03\xE5\xBE\x9A\x03\xE5\xBF\x8D\x03\xE5\xBF\x97\x03\xE5\xBF\xB9\x03\xE6\x82\x81\x03\xE3\xA4\xBA\x03\xE3\xA4\x9C\x03\xE6\x82\x94\x03\xE6\x83\x87\x03\xE6\x85\x88\x03\xE6\x85\x8C\x03\xE6\x85\x8E\x03\xE6\x85\xBA\x03\xE6\x86\x8E\x03\xE6\x86\xB2\x03\xE6\x86\xA4\x03\xE6\x86\xAF\x03\xE6\x87\x9E\x03\xE6\x87\xB2\x03\xE6\x87\xB6\x03\xE6\x88\x90\x03\xE6\x88\x9B\x03\xE6\x89\x9D\x03\xE6\x8A\xB1\x03\xE6\x8B\x94\x03\xE6\x8D\x90\x03\xE6\x8C\xBD\x03\xE6\x8B\xBC\x03\xE6\x8D\xA8\x03\xE6\x8E\x83\x03\xE6\x8F\xA4\x03\xE6\x90\xA2\x03\xE6\x8F\x85\x03\xE6\x8E\xA9\x03\xE3\xA8\xAE\x03\xE6\x91\xA9\x03\xE6\x91\xBE\x03\xE6\x92\x9D\x03\xE6\x91\xB7\x03\xE3\xA9\xAC\x03\xE6\x95\x8F\x03\xE6\x95\xAC\x03\xE6\x97\xA3\x03\xE6\x9B\xB8\x03\xE6\x99\x89\x03\xE3\xAC\x99\x03\xE6\x9A\x91\x03\xE3\xAC\x88\x03\xE3\xAB\xA4\x03\xE5\x86\x92\x03\xE5\x86\x95\x03\xE6\x9C\x80\x03\xE6\x9A\x9C\x03\xE8\x82\xAD\x03\xE4\x8F\x99\x03\xE6\x9C\x97\x03\xE6\x9C\x9B\x03\xE6\x9C\xA1\x03\xE6\x9D\x9E\x03\xE6\x9D\x93\x03\xE3\xAD\x89\x03\xE6\x9F\xBA\x03\xE6\x9E\x85\x03\xE6\xA1\x92\x03\xE6\xA2\x85\x03\xE6\xA2\x8E\x03\xE6\xA0\x9F\x03\xE6\xA4\x94\x03\xE3\xAE\x9D\x03\xE6\xA5\x82\x03\xE6\xA6\xA3\x03\xE6\xA7\xAA\x03\xE6\xAA\xA8\x03\xE6\xAB\x9B\x03\xE3\xB0\x98\x03\xE6\xAC\xA1\x03\xE6\xAD\x94\x03\xE3\xB1\x8E\x03\xE6\xAD\xB2\x03\xE6\xAE\x9F\x03\xE6\xAE\xBA\x03\xE6\xAE\xBB\x03\xE6\xB1\x8E\x03\xE6\xB2\xBF\x03\xE6\xB3\x8D\x03\xE6\xB1\xA7\x03\xE6\xB4\x96\x03\xE6\xB4\xBE\x03\xE6\xB5\xB7\x03\xE6\xB5\x81\x03\xE6\xB5\xA9\x03\xE6\xB5\xB8\x03\xE6\xB6\x85\x03\xE6\xB4\xB4\x03\xE6\xB8\xAF\x03\xE6\xB9\xAE\x03\xE3\xB4\xB3\x03\xE6\xBB\x8B\x03\xE6\xBB\x87\x03\xE6\xB7\xB9\x03\xE6\xBD\xAE\x03\xE6\xBF\x86\x03\xE7\x80\xB9\x03\xE7\x80\x9E\x03\xE7\x80\x9B\x03\xE3\xB6\x96\x03\xE7\x81\x8A\x03\xE7\x81\xBD\x03\xE7\x81\xB7\x03\xE7\x82\xAD\x03\xE7\x85\x85\x03\xE7\x86\x9C\x03\xE7\x88\xA8\x03\xE7\x88\xB5\x03\xE7\x89\x90\x03\xE7\x8A\x80\x03\xE7\x8A\x95\x03\xE7\x8D\xBA\x03\xE7\x8E\x8B\x03\xE3\xBA\xAC\x03\xE7\x8E\xA5\x03\xE3\xBA\xB8\x03\xE7\x91\x87\x03\xE7\x91\x9C\x03\xE7\x91\xB1\x03\xE7\x92\x85\x03\xE7\x93\x8A\x03\xE3\xBC\x9B\x03\xE7\x94\xA4\x03\xE7\x94\xBE\x03\xE7\x95\xB0\x03\xE7\x98\x90\x03\xE3\xBF\xBC\x03\xE4\x80\x88\x03\xE7\x9B\xB4\x03\xE7\x9C\x9E\x03\xE7\x9C\x9F\x03\xE7\x9D\x8A\x03\xE4\x80\xB9\x03\xE7\x9E\x8B\x03\xE4\x81\x86\x03\xE4\x82\x96\x03\xE7\xA1\x8E\x03\xE7\xA2\x8C\x03\xE7\xA3\x8C\x03\xE4\x83\xA3\x03\xE7\xA5\x96\x03\xE7\xA6\x8F\x03\xE7\xA7\xAB\x03\xE4\x84\xAF\x03\xE7\xA9\x80\x03\xE7\xA9\x8A\x03\xE7\xA9\x8F\x03\xE4\x88\x82\x03\xE7\xAF\x86\x03\xE7\xAF\x89\x03\xE4\x88\xA7\x03\xE7\xB3\x92\x03\xE4\x8A\xA0\x03\xE7\xB3\xA8\x03\xE7\xB3\xA3\x03\xE7\xB4\x80\x03\xE7\xB5\xA3\x03\xE4\x8C\x81\x03\xE7\xB7\x87\x03\xE7\xB8\x82\x03\xE7\xB9\x85\x03\xE4\x8C\xB4\x03\xE4\x8D\x99\x03\xE7\xBD\xBA\x03\xE7\xBE\x95\x03\xE7\xBF\xBA\x03\xE8\x80\x85\x03\xE8\x81\xA0\x03\xE8\x81\xB0\x03\xE4\x8F\x95\x03\xE8\x82\xB2\x03\xE8\x84\x83\x03\xE4\x90\x8B\x03\xE8\x84\xBE\x03\xE5\xAA\xB5\x03\xE8\x88\x84\x03\xE8\xBE\x9E\x03\xE4\x91\xAB\x03\xE8\x8A\x91\x03\xE8\x8A\x8B\x03\xE8\x8A\x9D\x03\xE5\x8A\xB3\x03\xE8\x8A\xB1\x03\xE8\x8A\xB3\x03\xE8\x8A\xBD\x03\xE8\x8B\xA6\x03\xE8\x8B\xA5\x03\xE8\x8C\x9D\x03\xE8\x8D\xA3\x03\xE8\x8E\xAD\x03\xE8\x8C\xA3\x03\xE8\x8E\xBD\x03\xE8\x8F\xA7\x03\xE8\x91\x97\x03\xE8\x8D\x93\x03\xE8\x8F\x8A\x03\xE8\x8F\x8C\x03\xE8\x8F\x9C\x03\xE4\x94\xAB\x03\xE8\x93\xB1\x03\xE8\x93\xB3\x03\xE8\x94\x96\x03\xE8\x95\xA4\x03\xE4\x95\x9D\x03\xE4\x95\xA1\x03\xE4\x95\xAB\x03\xE8\x99\x90\x03\xE8\x99\x9C\x03\xE8\x99\xA7\x03\xE8\x99\xA9\x03\xE8\x9A\xA9\x03\xE8\x9A\x88\x03\xE8\x9C\x8E\x03\xE8\x9B\xA2\x03\xE8\x9D\xB9\x03\xE8\x9C\xA8\x03\xE8\x9D\xAB\x03\xE8\x9E\x86\x03\xE8\x9F\xA1\x03\xE8\xA0\x81\x03\xE4\x97\xB9\x03\xE8\xA1\xA0\x03\xE8\xA1\xA3\x03\xE8\xA3\x97\x03\xE8\xA3\x9E\x03\xE4\x98\xB5\x03\xE8\xA3\xBA\x03\xE3\x92\xBB\x03\xE4\x9A\xBE\x03\xE4\x9B\x87\x03\xE8\xAA\xA0\x03\xE8\xAB\xAD\x03\xE8\xAE\x8A\x03\xE8\xB1\x95\x03\xE8\xB2\xAB\x03\xE8\xB3\x81\x03\xE8\xB4\x9B\x03\xE8\xB5\xB7\x03\xE8\xB7\x8B\x03\xE8\xB6\xBC\x03\xE8\xB7\xB0\x03\xE8\xBB\x94\x03\xE8\xBC\xB8\x03\xE9\x82\x94\x03\xE9\x83\xB1\x03\xE9\x84\x91\x03\xE9\x84\x9B\x03\xE9\x88\xB8\x03\xE9\x8B\x97\x03\xE9\x8B\x98\x03\xE9\x89\xBC\x03\xE9\x8F\xB9\x03\xE9\x90\x95\x03\xE9\x96\x8B\x03\xE4\xA6\x95\x03\xE9\x96\xB7\x03\xE4\xA7\xA6\x03\xE9\x9B\x83\x03\xE5\xB6\xB2\x03\xE9\x9C\xA3\x03\xE4\xA9\xAE\x03\xE4\xA9\xB6\x03\xE9\x9F\xA0\x03\xE4\xAA\xB2\x03\xE9\xA0\x8B\x03\xE9\xA0\xA9\x03\xE9\xA3\xA2\x03\xE4\xAC\xB3\x03\xE9\xA4\xA9\x03\xE9\xA6\xA7\x03\xE9\xA7\x82\x03\xE9\xA7\xBE\x03\xE4\xAF\x8E\x03\xE9\xAC\x92\x03\xE9\xB1\x80\x03\xE9\xB3\xBD\x03\xE4\xB3\x8E\x03\xE4\xB3\xAD\x03\xE9\xB5\xA7\x03\xE4\xB3\xB8\x03\xE9\xBA\xBB\x03\xE4\xB5\x96\x03\xE9\xBB\xB9\x03\xE9\xBB\xBE\x03\xE9\xBC\x85\x03\xE9\xBC\x8F\x03\xE9\xBC\x96\x03\xE9\xBC\xBB"; - xorData = "\x02\f\t\x02\xB0\xEC\x02\xAD\xD8\x02\xAD\xD9\x02\x06\x07\x02\x0F\x12\x02\x0F\x1F\x02\x0F\x1D\x02\x01\x13\x02\x0F\x16\x02\x0F\v\x02\x0F3\x02\x0F7\x02\x0F?\x02\x0F/\x02\x0F*\x02\f&\x02\f*\x02\f;\x02\f9\x02\f%\x02\xAB\xED\x02\xAB\xE2\x02\xAB\xE3\x02\xA9\xE0\x02\xA9\xE1\x02\xA9\xE6\x02\xA3\xCB\x02\xA3\xC8\x02\xA3\xC9\x02\x01#\x02\x01\b\x02\x0E>\x02\x0E'\x02\x0F\x03\x02\x03\r\x02\x03\t\x02\x03\x17\x02\x03\x0E\x02\x02\x03\x02\x011\x02\x01\x00\x02\x01\x10\x02\x03<\x02\x07\r\x02\x02\f\x02\f0\x02\x01\x03\x02\x01\x01\x02\x01 \x02\x01\"\x02\x01)\x02\x01\n\x02\x01\f\x02\x02\x06\x02\x02\x02\x02\x03\x10\x03\x037 \x03\v+\x03\x021\x00\x02\x01\x04\x02\x01\x02\x02\x019\x02\x03\x1C\x02\x02$\x03\x80p$\x02\x03:\x02\x03\n\x03\xC1r.\x03\xC1r,\x03\xC1r\x02\x02\x02:\x02\x02>\x02\x02,\x02\x02\x10\x02\x02\x00\x03\xC1s<\x03\xC1s*\x03\xC2L$\x03\xC2L;\x02\t)\x02\n\x19\x03\x83\xAB\xE3\x03\x83\xAB\xF2\x03 4\xE0\x03\x81\xAB\xEA\x03\x81\xAB\xF3\x03 4\xEF\x03\x96\xE1\xCD\x03\x84\xE5\xC3\x02\r\x11\x03\x8B\xEC\xCB\x03\x94\xEC\xCF\x03\x9A\xEC\xC2\x03\x8B\xEC\xDB\x03\x94\xEC\xDF\x03\x9A\xEC\xD2\x03\x01\f!\x03\x01\f#\x03\xCA\xA0\x9D\x03\xCA\xA3\x9C\x03\xCA\xA2\x9F\x03\xCA\xA5\x9E\x03\xCA\xA4\x91\x03\xCA\xA7\x90\x03\xCA\xA6\x93\x03\xCA\xA9\x92\x03\xCA\xA8\x95\x03\xCA\xF3\xB5\x03\xCA\xF0\xB4\x03\xCA\xF1\xB7\x03\xCA\xF6\xB6\x03\xCA\xF7\x89\x03\xCA\xF4\x88\x03\xCA\xF5\x8B\x03\xCA\xFA\x8A\x03\xCA\xFB\x8D\x03\xCA\xF8\x8C\x03\xCA\xF9\x8F\x03\xCA\xFE\x8E\x03\xCA\xFF\x81\x03\xCA\xFC\x80\x03\xCA\xFD\x83\x03\xCA\xE2\x82\x03\xCA\xE3\x85\x03\xCA\xE0\x84\x03\xCA\xE1\x87\x03\xCA\xE6\x86\x03\xCA\xE7\x99\x03\xCA\xE4\x98\x03\xCA\xE5\x9B\x03\xCA\xEA\x9A\x03\xCA\xEB\x9D\x03\xCA\xE8\x9C\x03\xD8\x93\x89\x03\xDF\x94\x8B\x02\x010\x03\x03\x04\x1E\x03\x04\x15\x12\x03\v\x05,\x03\x06\x04\x00\x03\x06\x04)\x03\x06\x044\x03\x06\x04<\x03\x06\x05\x1D\x03\x06\x06\x00\x03\x06\x06\n\x03\x06\x06'\x03\x06\x062\x03\x0786\x03\x079/\x03\x079 \x03\x07:\x0E\x03\x07:\x1B\x03\x07:%\x03\x07;/\x03\x07;%\x03\x074\x11\x03\x076\t\x03\x077*\x03\x070\x01\x03\x070\x0F\x03\x070.\x03\x071\x16\x03\x071\x04\x03\x0710\x03\x072\x18\x03\x072-\x03\x073\x14\x03\x073>\x03\x07'\t\x03\x07 \x00\x03\x07\x1F\v\x03\x07\x18#\x03\x07\x18(\x03\x07\x186\x03\x07\x18\x03\x03\x07\x19\x16\x03\x07\x116\x03\x07\x12'\x03\x07\x13\x10\x03\x07\f&\x03\x07\f\b\x03\x07\f\x13\x03\x07\r\x02\x03\x07\r\x1C\x03\x07\v5\x03\x07\v\n\x03\x07\v\x01\x03\x07\v\x0F\x03\x07\x05\x00\x03\x07\x05\t\x03\x07\x05\v\x03\x07\x07\x01\x03\x07\x07\b\x03\x07\x00<\x03\x07\x00+\x03\x07\x01)\x03\x07\x01\x1B\x03\x07\x01\b\x03\x07\x03?\x03\x0445\x03\x044\b\x03\x0454\x03\x04)/\x03\x04)5\x03\x04+\x05\x03\x04+\x14\x03\x04+ \x03\x04+<\x03\x04*&\x03\x04*\"\x03\x04&8\x03\x04!\x01\x03\x04!\"\x03\x04\x11+\x03\x04\x10.\x03\x04\x104\x03\x04\x13=\x03\x04\x12\x04\x03\x04\x12\n\x03\x04\r\x1D\x03\x04\r\x07\x03\x04\r \x03\x05<>\x03\x055<\x03\x055!\x03\x055#\x03\x055&\x03\x054\x1D\x03\x054\x02\x03\x054\x07\x03\x0571\x03\x053\x1A\x03\x053\x16\x03\x05.<\x03\x05.\x07\x03\x05):\x03\x05)<\x03\x05)\f\x03\x05)\x15\x03\x05+-\x03\x05+5\x03\x05$\x1E\x03\x05$\x14\x03\x05'\x04\x03\x05'\x14\x03\x05&\x02\x03\x05\"6\x03\x05\"\f\x03\x05\"\x1C\x03\x05\x19\n\x03\x05\x1B\t\x03\x05\x1B\f\x03\x05\x14\x07\x03\x05\x16?\x03\x05\x16\f\x03\x05\f\x05\x03\x05\x0E\x0F\x03\x05\x01\x0E\x03\x05\x00(\x03\x05\x030\x03\x05\x03\x06\x03\n==\x03\n=1\x03\n=,\x03\n=\f\x03\n??\x03\n<\b\x03\n9!\x03\n9)\x03\n97\x03\n99\x03\n6\n\x03\n6\x1C\x03\n6\x17\x03\n7'\x03\n78\x03\n73\x03\n'\x01\x03\n'&\x03\n\x1F\x0E\x03\n\x1F\x03\x03\n\x1F3\x03\n\x1B/\x03\n\x18\x19\x03\n\x19\x01\x03\n\x16\x14\x03\n\x0E\"\x03\n\x0F\x10\x03\n\x0F\x02\x03\n\x0F \x03\n\f\x04\x03\n\v>\x03\n\v+\x03\n\b/\x03\n\x046\x03\n\x05\x14\x03\n\x00\x04\x03\n\x00\x10\x03\n\x00\x14\x03\v<3\x03\v;*\x03\v9\"\x03\v9)\x03\v97\x03\v+\x10\x03\v((\x03\v&5\x03\v$\x1C\x03\v$\x12\x03\v%\x04\x03\v#<\x03\v#0\x03\v#\r\x03\v#\x19\x03\v!:\x03\v!\x1F\x03\v!\x00\x03\v\x1E5\x03\v\x1C\x1D\x03\v\x1D-\x03\v\x1D(\x03\v\x18.\x03\v\x18 \x03\v\x18\x16\x03\v\x14\x13\x03\v\x15$\x03\v\x15\"\x03\v\x12\x1B\x03\v\x12\x10\x03\v\x132\x03\v\x13=\x03\v\x12\x18\x03\v\f&\x03\v\x061\x03\v\x06:\x03\v\x05#\x03\v\x05<\x03\v\x04\v\x03\v\x04\x04\x03\v\x04\x1B\x03\v\x042\x03\v\x041\x03\v\x03\x03\x03\v\x03\x1D\x03\v\x03/\x03\v\x03+\x03\v\x02\x1B\x03\v\x02\x00\x03\v\x01\x1E\x03\v\x01\b\x03\v\x015\x03\x06\r9\x03\x06\r=\x03\x06\r?\x03\x02\x001\x03\x02\x003\x03\x02\x02\x19\x03\x02\x006\x03\x02\x02\x1B\x03\x02\x004\x03\x02\x00<\x03\x02\x02\n\x03\x02\x02\x0E\x03\x02\x01\x1A\x03\x02\x01\x07\x03\x02\x01\x05\x03\x02\x01\v\x03\x02\x01%\x03\x02\x01\f\x03\x02\x01\x04\x03\x02\x01\x1C\x03\x02\x00.\x03\x02\x002\x03\x02\x00>\x03\x02\x00\x12\x03\x02\x00\x16\x03\x02\x011\x03\x02\x013\x03\x02\x02 \x03\x02\x02%\x03\x02\x02$\x03\x02\x028\x03\x02\x02;\x03\x02\x024\x03\x02\x012\x03\x02\x022\x03\x02\x02/\x03\x02\x01,\x03\x02\x01\x13\x03\x02\x01\x16\x03\x02\x01\x11\x03\x02\x01\x1E\x03\x02\x01\x15\x03\x02\x01\x17\x03\x02\x01\x0F\x03\x02\x01\b\x03\x02\x00?\x03\x02\x03\x07\x03\x02\x03\r\x03\x02\x03\x13\x03\x02\x03\x1D\x03\x02\x03\x1F\x03\x02\x00\x03\x03\x02\x00\r\x03\x02\x00\x01\x03\x02\x00\x1B\x03\x02\x00\x19\x03\x02\x00\x18\x03\x02\x00\x13\x03\x02\x00/\x03\x07>\x12\x03\x07<\x1F\x03\x07>\x1D\x03\x06\x1D\x0E\x03\x07>\x1C\x03\x07>:\x03\x07>\x13\x03\x04\x12+\x03\x07?\x03\x03\x07>\x02\x03\x06\"4\x03\x06\x1A.\x03\x07<%\x03\x06\x1C\v\x03\x0609\x03\x05\x1F\x01\x03\x04'\b\x03\x93\xFD\xF5\x03\x02\r \x03\x02\r#\x03\x02\r!\x03\x02\r&\x03\x02\r\"\x03\x02\r/\x03\x02\r,\x03\x02\r$\x03\x02\r'\x03\x02\r%\x03\x02\r;\x03\x02\r=\x03\x02\r?\x03\t9.\x03\b\v7\x03\b\x02\x14\x03\b\x14\r\x03\b.:\x03\b9'\x03\x0F\v\x18\x03\x0F\x1C1\x03\x0F\x17&\x03\x0F9\x1F\x03\x0F0\f\x03\x0E\n9\x03\x0E\x056\x03\x0E\x1C#\x03\x0F\x13\x0E\x03\x072\x00\x03\x070\r\x03\x072\v\x03\x06\x11\x18\x03\x070\x10\x03\x06\x0F(\x03\x072\x05\x03\x06\x0F,\x03\x073\x15\x03\x06\x07\b\x03\x05\x16\x02\x03\x04\v \x03\x05:8\x03\x05\x16%\x03\n\r\x1F\x03\x06\x16\x10\x03\x05\x1D5\x03\x05*;\x03\x05\x16\x1B\x03\x04.-\x03\x06\x1A\x19\x03\x04\x03,\x03\v87\x03\x04/\n\x03\x06\x00,\x03\x04-\x01\x03\x04\x1E-\x03\x06/(\x03\n\v5\x03\x06\x0E7\x03\x06\x07.\x03\x0597\x03\n*%\x03\x0760\x03\x06\f;\x03\x05'\x00\x03\x072.\x03\x072\b\x03\x06=\x01\x03\x06\x05\x1B\x03\x06\x06\x12\x03\x06$=\x03\x06'\r\x03\x04\x11\x0F\x03\x076,\x03\x06\x07;\x03\x06.,\x03\x86\xF9\xEA\x03\x8F\xFF\xEB\x02\t2\x02\t5\x02\t4\x02\t;\x02\t>\x02\t8\x02\t*\x02\t/\x02\t,\x02\t%\x02\t&\x02\t#\x02\t \x02\b!\x02\b%\x02\b$\x02\b+\x02\b.\x02\b*\x02\b&\x02\b8\x02\b>\x02\b4\x02\b6\x02\b0\x02\b\x10\x02\b\x17\x02\b\x12\x02\b\x1D\x02\b\x1F\x02\b\x13\x02\b\x15\x02\b\x14\x02\b\f\x03\x8B\xFD\xD0\x03\x81\xEC\xC6\x03\x87\xE0\x8A\x03-2\xE3\x03\x80\xEF\xE4\x03-2\xEA\x03\x88\xE6\xEB\x03\x8E\xE6\xE8\x03\x84\xE6\xE9\x03\x97\xE6\xEE\x03-2\xF9\x03-2\xF6\x03\x8E\xE3\xAD\x03\x80\xE3\x92\x03\x88\xE3\x90\x03\x8E\xE3\x90\x03\x80\xE3\x97\x03\x88\xE3\x95\x03\x88\xFE\xCB\x03\x8E\xFE\xCA\x03\x84\xFE\xCD\x03\x91\xEF\xC9\x03-2\xC1\x03-2\xC0\x03-2\xCB\x03\x88@\t\x03\x8E@\b\x03\x8F\xE0\xF5\x03\x8E\xE6\xF9\x03\x8E\xE0\xFA\x03\x93\xFF\xF4\x03\x84\xEE\xD3\x03\v(\x04\x023 \x03\v)\b\x021;\x02\x01*\x03\v#\x10\x03\v 0\x03\v!\x10\x03\v!0\x03\x07\x15\b\x03\t?5\x03\x07\x1F\b\x03\x07\x17\v\x03\t\x1F\x15\x03\v\x1C7\x03\n+#\x03\x06\x1A\x1B\x03\x06\x1A\x14\x03\n\x01\x18\x03\x06#\x1B\x03\n2\f\x03\n\x01\x04\x03\t#;\x03\b='\x03\b\x1A\n\x03\x07\x03\n\x111\x03\t\x1B\t\x03\x073.\x03\x07\x01\x00\x03\t/,\x03\x07#>\x03\x07\x048\x03\n\x1F\"\x03\t8>\x03\t\x11\x00\x03\b/\x17\x03\x06'\"\x03\v\x1A+\x03\n\"\x19\x03\n/1\x03\t74\x03\t\x0F\"\x03\b,\"\x03\b?\x14\x03\x07$5\x03\x07<3\x03\x07=*\x03\x07\x13\x18\x03\x068\n\x03\x06\t\x16\x03\x06\x13\x00\x03\b\x067\x03\b\x01\x03\x03\b\x12\x1D\x03\x07+7\x03\x06(;\x03\x06\x1C?\x03\x07\x0E\x17\x03\n\x06\x1D\x03\n\x19\x07\x03\b\x14$\x03\x07$;\x03\b,$\x03\b\x06\r\x03\x07\x16\n\x03\x06>>\x03\n\x06\x12\x03\n\x14)\x03\t\r\x1F\x03\t\x12\x17\x03\t\x19\x01\x03\b\x11 \x03\b\x1D'\x03\x06<\x1A\x03\n.\x00\x03\x07'\x18\x03\n\"\b\x03\b\r\n\x03\b\x13)\x03\x07*)\x03\x06<,\x03\x07\v\x1A\x03\t.\x14\x03\t\r\x1E\x03\x07\x0E#\x03\v\x1D'\x03\n\n8\x03\t%2\x03\b+&\x03\b0\x12\x03\n)4\x03\b\x06\x1F\x03\v\x1B\x1A\x03\n\x1B\x0F\x03\v\x1D*\x03\t\x16$\x03\t0\x11\x03\b\x11\b\x03\n*(\x03\n\x042\x03\b9,\x03\x074'\x03\x07\x0F\x05\x03\t\v\n\x03\x07\x1B\x01\x03\t\x17:\x03\t.\r\x03\x07.\x11\x03\t+\x15\x03\b0\x13\x03\v\x1F\x19\x03\n \x11\x03\n\"0\x03\t\x07;\x03\b\x16\x1C\x03\x07,\x13\x03\x07\x0E/\x03\x06\"1\x03\n.\n\x03\n7\x02\x03\n\x032\x03\n\x1D.\x03\t1\x06\x03\t\x19:\x03\b\x02/\x03\x060+\x03\x06\x0F-\x03\x06\x1C\x1F\x03\x06\x1D\x07\x03\n,\x11\x03\t=\r\x03\t\v;\x03\x07\x1B/\x03\n\x1F:\x03\t \x1F\x03\t.\x10\x03\t4\v\x03\t\x1A1\x03\b#\x1A\x03\b4\x1D\x03\b\x01\x1F\x03\b\x11\"\x03\x07'8\x03\x07\x1A>\x03\x0757\x03\x06&9\x03\x06+\x11\x03\n.\v\x03\n,>\x03\n4#\x03\b%\x17\x03\x07\x05\"\x03\x07\f\v\x03\n\x1D+\x03\n\x19\x16\x03\t+\x1F\x03\t\b\v\x03\b\x16\x18\x03\b+\x12\x03\v\x1D\f\x03\n=\x10\x03\n\t\r\x03\n\x10\x11\x03\t&0\x03\b(\x1F\x03\b7\x07\x03\b\x185\x03\x07'6\x03\x06.\x05\x03\x06=\x04\x03\x06;;\x03\x06\x06,\x03\v\x18>\x03\b\x00\x18\x03\x06 \x03\x03\x06<\x00\x03\t%\x18\x03\v\x1C<\x03\n%!\x03\n\t\x12\x03\n\x16\x02\x03\t0'\x03\t\x0E=\x03\b \x0E\x03\b>\x03\x03\x074>\x03\x06&?\x03\x06\x19\t\x03\x06?(\x03\n-\x0E\x03\t:3\x03\t8:\x03\t\x12\v\x03\t\x1D\x17\x03\b7\x05\x03\b2\x14\x03\b\x06%\x03\b\x13\x1F\x03\x06\x06\x0E\x03\n\"<\x03\t/<\x03\x06>+\x03\n'?\x03\n\x13\f\x03\t\x10<\x03\x07\x1B=\x03\n\x19\x13\x03\t\"\x1D\x03\t\x07\r\x03\b)\x1C\x03\x06=\x1A\x03\n/4\x03\n7\x11\x03\n\x16:\x03\t?3\x03\t:/\x03\t\x05\n\x03\t\x14\x06\x03\b7\"\x03\b0\x07\x03\b\x1A\x1F\x03\x07\x04(\x03\x07\x04\t\x03\x06 %\x03\x06<\b\x03\n+\x14\x03\t\x1D\x16\x03\n70\x03\b >\x03\b57\x03\x070\n\x03\x06=\x12\x03\x06\x16%\x03\x06\x1D,\x03\t9#\x03\t\x10>\x03\x07 \x1E\x03\b\f<\x03\b\v\x18\x03\b\x15+\x03\b,:\x03\b%\"\x03\x07\n$\x03\v\x1C=\x03\x07+\b\x03\n/\x05\x03\n \x07\x03\n\x12'\x03\t#\x11\x03\b\x1B\x15\x03\n\x06\x01\x03\t\x1C\x1B\x03\t22\x03\x07\x14<\x03\x07\t\x04\x03\x061\x04\x03\x07\x0E\x01\x03\n\x13\x18\x03\n-\f\x03\n?\r\x03\n\t\n\x03\t1&\x03\n/\v\x03\b$<\x03\b3\x1D\x03\b\f$\x03\b\r\x07\x03\b\r?\x03\b\x0E\x14\x03\x065\n\x03\b\x1A#\x03\b\x16#\x03\x0702\x03\x07\x03\x1A\x03\x06(\x1D\x03\x06+\x1B\x03\x06\v\x05\x03\x06\v\x17\x03\x06\f\x04\x03\x06\x1E\x19\x03\x06+0\x03\x062\x18\x03\v\x16\x1E\x03\n+\x16\x03\n-?\x03\n#:\x03\n#\x10\x03\n%$\x03\n>+\x03\n01\x03\n1\x10\x03\n\t9\x03\n\n\x12\x03\n\x19\x1F\x03\n\x19\x12\x03\t*)\x03\t-\x16\x03\t.1\x03\t.2\x03\t<\x0E\x03\t> \x03\t3\x12\x03\t\v\x01\x03\t\x1C2\x03\t\x11\x1C\x03\t\x15%\x03\b,&\x03\b!\"\x03\b9(\x03\b\v\x1A\x03\b\r2\x03\b\f\x04\x03\b\f\x06\x03\b\f\x1F\x03\b\f\f\x03\b\x0F\x1F\x03\b\x0F\x1D\x03\b\x00\x14\x03\b\x03\x14\x03\b\x06\x16\x03\b\x1E#\x03\b\x11\x11\x03\b\x10\x18\x03\b\x14(\x03\x07)\x1E\x03\x07.1\x03\x07 $\x03\x07 '\x03\x078\b\x03\x07\r0\x03\x07\x0F7\x03\x07\x05#\x03\x07\x05\x1A\x03\x07\x1A7\x03\x07\x1D-\x03\x07\x17\x10\x03\x06)\x1F\x03\x062\v\x03\x066\x16\x03\x06\t\x11\x03\t(\x1E\x03\x07!5\x03\v\x11\x16\x03\n/\x04\x03\n,\x1A\x03\v\x173\x03\n,1\x03\n/5\x03\n\"1\x03\n\"\r\x03\n?%\x03\n<,\x03\n?#\x03\n>\x19\x03\n\b&\x03\n\v\x0E\x03\n\f:\x03\n\f+\x03\n\x03\"\x03\n\x06)\x03\n\x11\x10\x03\n\x11\x1A\x03\n\x17-\x03\n\x14(\x03\t)\x1E\x03\t/\t\x03\t.\x00\x03\t,\x07\x03\t/*\x03\t-9\x03\t\"8\x03\t%\t\x03\t:\x12\x03\t;\x1D\x03\t?\x06\x03\t3%\x03\t6\x05\x03\t6\b\x03\t7\x02\x03\t\x07,\x03\t\x04,\x03\t\x1F\x16\x03\t\x11\x03\x03\t\x11\x12\x03\t\x168\x03\b*\x05\x03\b/2\x03\b4:\x03\b\"+\x03\b 0\x03\b&\n\x03\b;\x10\x03\b>$\x03\b>\x18\x03\b29\x03\b2:\x03\b1,\x03\b1<\x03\b1\x1C\x03\b7#\x03\b7*\x03\b\t'\x03\b\x00\x1D\x03\b\x05-\x03\b\x1F4\x03\b\x1D\x04\x03\b\x16\x0F\x03\x07*7\x03\x07'!\x03\x07%\x1B\x03\x077\f\x03\x07\f1\x03\x07\f.\x03\x07\x00\x06\x03\x07\x01\x02\x03\x07\x010\x03\x07\x06=\x03\x07\x01\x03\x03\x07\x01\x13\x03\x07\x06\x06\x03\x07\x05\n\x03\x07\x1F\t\x03\x07\x17:\x03\x06*1\x03\x06-\x1D\x03\x06\"3\x03\x062:\x03\x060$\x03\x066\x1E\x03\x064\x12\x03\x0645\x03\x06\v\x00\x03\x06\v7\x03\x06\x07\x1F\x03\x06\x15\x12\x03\f\x05\x0F\x03\v+\v\x03\v+-\x03\x06\x16\x1B\x03\x06\x15\x17\x03\x89\xCA\xEA\x03\x89\xCA\xE8\x03\f8\x10\x03\f8\x01\x03\f8\x0F\x03\r8%\x03\r8!\x03\f8-\x03\f8/\x03\f8+\x03\f87\x03\f85\x03\f9\t\x03\f9\r\x03\f9\x0F\x03\f9\v\x03\xCFu\f\x03\xCFu\x0F\x03\xCFu\x0E\x03\xCFu\t\x03\f9\x10\x03\r9\f\x03\xCF`;\x03\xCF`>\x03\xCF`9\x03\xCF`8\x03\xCF`7\x03\xCF`*\x03\xCF`-\x03\xCF`,\x03\r\x1B\x1A\x03\r\x1B&\x03\f=.\x03\f=%\x03\f>\x1E\x03\f>\x14\x03\f?\x06\x03\f?\v\x03\f?\f\x03\f?\r\x03\f?\x02\x03\f>\x0F\x03\f>\b\x03\f>\t\x03\f>,\x03\f>\f\x03\f?\x13\x03\f?\x16\x03\f?\x15\x03\f?\x1C\x03\f?\x1F\x03\f?\x1D\x03\f?\x1A\x03\f?\x17\x03\f?\b\x03\f?\t\x03\f?\x0E\x03\f?\x04\x03\f?\x05\x03\f\x03\f=2\x03\f=6\x03\f<\x07\x03\f<\x05\x03\x0E:!\x03\x0E:#\x03\x0E8\t\x03\x0E:&\x03\x0E8\v\x03\x0E:$\x03\x0E:,\x03\x0E8\x1A\x03\x0E8\x1E\x03\x0E:*\x03\x0E:7\x03\x0E:5\x03\x0E:;\x03\x0E:\x15\x03\x0E:<\x03\x0E:4\x03\x0E:'\x03\x0E:-\x03\x0E:%\x03\x0E:?\x03\x0E:=\x03\x0E:)\x03\x0E:/\x03\xCFs'\x03\r=\x0F\x03\r+*\x03\r99\x03\r9;\x03\r9?\x03\r)\r\x03\r(%\x02\x01\x18\x02\x01(\x02\x01\x1E\x03\x0F$!\x03\x0F87\x03\x0F4\x0E\x03\x0F5\x1D\x03\x06'\x03\x03\x0F\b\x18\x03\x0F\r\x1B\x03\x0E2=\x03\x0E;\b\x03\x0E:\v\x03\x0E\x06$\x03\x0E\r)\x03\x0E\x16\x1F\x03\x0E\x16\x1B\x03\r$\n\x03\x05,\x1D\x03\r. \x03\r.#\x03\f(/\x03\t%\x02\x03\r90\x03\r\x0E4\x03\r\r\x0F\x03\f#\x00\x03\f,\x1E\x03\f2\x0E\x03\f\x01\x17\x03\f\t:\x03\x0E\x173\x03\f\b\x03\x03\f\x11\x07\x03\f\x10\x18\x03\f\x1F\x1C\x03\f\x19\x0E\x03\f\x1A\x1F\x03\x0F0>\x03\v->\x03\v<+\x03\v8\x13\x03\v\x043\x03\v\x14\x03\x03\v\x16%\x03\r\"&\x03\v\x1A\x1A\x03\v\x1A\x04\x03\n%9\x03\n&2\x03\n&0\x03\n!\x1A\x03\n!7\x03\n5\x10\x03\n=4\x03\n?\x0E\x03\n>\x10\x03\n\x00 \x03\n\x0F:\x03\n\x0F9\x03\n\v\n\x03\n\x17%\x03\n\x1B-\x03\t-\x1A\x03\t,4\x03\t.,\x03\t)\t\x03\t6!\x03\t1\x1F\x03\t3\x16\x03\f+\x1F\x03\t8 \x03\t8=\x03\f(\x1A\x03\f(\x16\x03\t\n+\x03\t\x16\x12\x03\t\x13\x0E\x03\t\x153\x03\b)!\x03\t\x1A\x01\x03\t\x18\x01\x03\b%#\x03\b>\"\x03\b\x05%\x03\b\x02*\x03\b\x15;\x03\b\x1B7\x03\x0F\x07\x1D\x03\x0F\x04\x03\x03\x070\f\x03\x07;\v\x03\x07\b\x17\x03\x07\x12\x06\x03\x06/-\x03\x0671\x03\x065+\x03\x06>7\x03\x06\x049\x03\x05+\x1E\x03\x05,\x17\x03\x05 \x1D\x03\x05\"\x05\x03\x050\x1D"; - idnaValues = $toNativeArray($kindUint16, [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 8, 8, 128, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 128, 128, 128, 128, 128, 128, 128, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 128, 128, 128, 128, 128, 128, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 128, 128, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 10, 24, 24, 24, 24, 24, 24, 24, 26, 24, 57, 24, 24, 960, 24, 74, 24, 24, 105, 121, 138, 5, 24, 8, 170, 201, 217, 24, 233, 281, 329, 24, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 377, 8, 53, 77, 57357, 8, 57357, 8, 8, 57373, 8, 57405, 8, 57373, 8, 409, 409, 57373, 8, 57405, 8, 57373, 8, 57469, 8, 441, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 101, 57373, 8, 57405, 8, 57373, 8, 473, 8, 125, 57357, 8, 57357, 8, 125, 57469, 8, 149, 173, 57405, 8, 8, 197, 221, 245, 57373, 8, 269, 293, 8, 317, 317, 57357, 8, 8, 8, 269, 341, 8, 365, 57357, 8, 57357, 8, 57357, 8, 389, 57469, 8, 413, 8, 8, 57357, 8, 389, 57597, 8, 437, 461, 57405, 8, 57373, 8, 485, 57357, 8, 8, 8, 57357, 8, 8, 8, 8, 8, 8, 8, 489, 489, 489, 509, 533, 557, 581, 605, 629, 57373, 8, 57597, 8, 57373, 8, 57405, 8, 57373, 8, 57469, 8, 57373, 8, 57405, 8, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 8, 653, 677, 701, 57357, 8, 725, 749, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 773, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 8, 8, 8, 8, 8, 8, 521, 57405, 8, 797, 553, 8, 8, 8, 24, 24, 24, 24, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 24, 24, 24, 24, 24, 24, 666, 698, 730, 762, 794, 826, 24, 24, 941, 857, 473, 873, 965, 24, 24, 24, 24, 24, 24, 24, 8, 24, 8, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 989, 989, 13064, 1013, 889, 1037, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13248, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 57357, 8, 57357, 8, 1061, 8, 57357, 8, 64, 64, 930, 8, 8, 8, 962, 1085, 64, 64, 64, 64, 138, 978, 57685, 1109, 57645, 57661, 57645, 64, 989, 64, 1133, 1157, 8, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 1181, 1181, 64, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 57359, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 57541, 1205, 1229, 57533, 57589, 57597, 57501, 57525, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 1253, 57733, 57741, 8, 1277, 989, 24, 57469, 8, 57813, 57357, 8, 8, 1301, 1325, 1325, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 24, 13064, 13064, 13064, 13064, 13064, 13080, 13080, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 64, 57373, 8, 57405, 8, 57373, 8, 57469, 8, 57373, 8, 57405, 8, 57373, 8, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 64, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 2112, 2112, 2112, 2112, 2112, 2112, 24, 24, 2072, 24, 24, 2072, 24, 2072, 24, 24, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 2072, 2880, 64, 2072, 2072, 2568, 2056, 3080, 3080, 3080, 3080, 2568, 3080, 2568, 3080, 2568, 2568, 2568, 2568, 2568, 3080, 3080, 3080, 3080, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2072, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 3080, 2568, 2568, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 2056, 2056, 2056, 2056, 2056, 2056, 2056, 2056, 2056, 2056, 24, 2072, 2072, 2072, 2568, 2568, 13064, 3080, 3080, 3080, 2056, 1065, 1105, 1145, 1185, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 3080, 2568, 2568, 3080, 3080, 3080, 3080, 3080, 3080, 3080, 3080, 3080, 2568, 3080, 2568, 3080, 2568, 2568, 3080, 3080, 2072, 3080, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 2112, 24, 13064, 13064, 13064, 13064, 13064, 13064, 2056, 2056, 13064, 13064, 24, 13064, 13064, 13064, 13064, 3080, 3080, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 2568, 2568, 2568, 2056, 2056, 2568, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 64, 2880, 3080, 13064, 2568, 2568, 2568, 3080, 3080, 3080, 3080, 3080, 2568, 2568, 2568, 2568, 3080, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 3080, 2568, 3080, 2568, 3080, 2568, 2568, 3080, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 3080, 2568, 2568, 2568, 2568, 2568, 3080, 3080, 2568, 3080, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 3080, 2568, 3080, 3080, 3080, 13064, 13064, 13064, 64, 64, 2072, 64, 2568, 2056, 2568, 2568, 2568, 2568, 2056, 3080, 2568, 3080, 3080, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 12296, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 12296, 12296, 12296, 12296, 15112, 12296, 12296, 8, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 1225, 1281, 1337, 1393, 1449, 1505, 1561, 1617, 8, 8, 13064, 13064, 24, 24, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 24, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 13064, 12296, 12296, 64, 8, 8, 8, 8, 8, 8, 8, 8, 64, 64, 8, 8, 64, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 64, 8, 8, 8, 8, 8, 8, 8, 64, 8, 64, 64, 64, 8, 8, 8, 8, 64, 64, 13064, 8, 12296, 12296, 12296, 13064, 13064, 13064, 13064, 64, 64, 12296, 12296, 64, 64, 12296, 12296, 15112, 8, 64, 64, 64, 64, 64, 64, 64, 64, 12296, 64, 64, 64, 64, 1673, 1729, 64, 1785, 8, 8, 13064, 13064, 64, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 8, 24, 13064, 64, 64, 13064, 13064, 12296, 64, 8, 8, 8, 8, 8, 8, 64, 64, 64, 64, 8, 8, 64, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 64, 8, 8, 8, 8, 8, 8, 8, 64, 8, 1841, 64, 8, 1897, 64, 8, 8, 64, 64, 13064, 64, 12296, 12296, 12296, 13064, 13064, 64, 64, 64, 64, 13064, 13064, 64, 64, 13064, 13064, 15112, 64, 64, 64, 13064, 64, 64, 64, 64, 64, 64, 64, 1953, 2009, 2065, 8, 64, 2121, 64, 64, 64, 64, 64, 64, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 13064, 13064, 8, 8, 8, 13064, 24, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 13064, 13064, 12296, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 64, 8, 8, 8, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 64, 8, 8, 8, 8, 8, 8, 8, 64, 8, 8, 64, 8, 8, 8, 8, 8, 64, 64, 13064, 8, 12296, 12296, 12296, 13064, 13064, 13064, 13064, 13064, 64, 13064, 13064, 12296, 64, 12296, 12296, 15112, 64, 64, 8, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 8, 8, 13064, 13064, 64, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 24, 24, 64, 64, 64, 64, 64, 64, 64, 8, 13064, 13064, 13064, 13064, 13064, 13064, 64, 13064, 12296, 12296, 64, 8, 8, 8, 8, 8, 8, 8, 8, 64, 64, 8, 8, 64, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 64, 8, 8, 8, 8, 8, 8, 8, 64, 8, 8, 64, 8, 8, 8, 8, 8, 64, 64, 13064, 8, 12296, 13064, 12296, 13064, 13064, 13064, 13064, 64, 64, 12296, 12296, 64, 64, 12296, 12296, 15112, 64, 64, 64, 64, 64, 64, 64, 13064, 13064, 12296, 64, 64, 64, 64, 2177, 2233, 64, 8, 8, 8, 13064, 13064, 64, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 24, 8, 24, 24, 24, 24, 24, 24, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 13064, 8, 64, 8, 8, 8, 8, 8, 8, 64, 64, 64, 8, 8, 8, 64, 8, 8, 8, 8, 64, 64, 64, 8, 8, 64, 8, 64, 8, 8, 64, 64, 64, 8, 8, 64, 64, 64, 8, 8, 8, 64, 64, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 64, 64, 64, 64, 12296, 12296, 13064, 12296, 12296, 12296, 12296, 64, 13064, 13064, 13064, 64, 13064, 13064, 13064, 15112, 64, 64, 64, 64, 64, 64, 64, 13064, 13064, 64, 8, 8, 8, 64, 64, 64, 64, 64, 8, 8, 13064, 13064, 64, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 64, 64, 64, 64, 64, 64, 64, 24, 24, 24, 24, 24, 24, 24, 24, 24, 8, 13064, 12296, 12296, 24, 8, 8, 8, 8, 8, 8, 8, 8, 64, 8, 8, 8, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 64, 8, 8, 8, 8, 8, 64, 64, 13064, 8, 12296, 13064, 12296, 12296, 12296, 12296, 12296, 64, 13064, 12296, 12296, 64, 12296, 12296, 13064, 15112, 64, 64, 64, 64, 64, 64, 64, 12296, 12296, 64, 64, 64, 64, 64, 64, 64, 8, 64, 8, 8, 13064, 13064, 64, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 64, 8, 8, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 12296, 13064, 13064, 13064, 13064, 64, 12296, 12296, 12296, 64, 12296, 12296, 12296, 15112, 8, 24, 64, 64, 64, 64, 8, 8, 8, 12296, 24, 24, 24, 24, 24, 24, 24, 8, 8, 8, 13064, 13064, 64, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 8, 8, 8, 8, 8, 8, 64, 8, 8, 64, 8, 64, 8, 8, 8, 8, 8, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 64, 8, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 13064, 8, 2345, 13064, 13064, 13064, 13064, 13064, 13064, 15112, 13064, 13064, 8, 64, 64, 8, 8, 8, 2513, 8, 8, 8, 8, 64, 8, 8, 8, 8, 2569, 8, 8, 8, 8, 2625, 8, 8, 8, 8, 2681, 8, 8, 8, 8, 2737, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 2793, 8, 8, 8, 64, 64, 64, 64, 13064, 13064, 2849, 13064, 2905, 2961, 3017, 3097, 3153, 13064, 13064, 13064, 13064, 13064, 12296, 13064, 3233, 13064, 13064, 15112, 24, 13064, 13064, 8, 8, 8, 8, 8, 13064, 13064, 13064, 13064, 13064, 13064, 3289, 13064, 13064, 13064, 13064, 64, 13064, 13064, 13064, 13064, 3345, 13064, 13064, 13064, 13064, 3401, 13064, 13064, 13064, 13064, 3457, 13064, 13064, 13064, 13064, 3513, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 3569, 13064, 13064, 13064, 64, 24, 24, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 57, 3793, 3817, 8, 3833, 3849, 3865, 3889, 585, 3905, 601, 3921, 857, 3937, 3953, 8, 217, 3969, 3993, 617, 4009, 4025, 633, 57, 4041, 4065, 1461, 3817, 3833, 3849, 4089, 4113, 4137, 3889, 8, 3921, 3937, 4161, 217, 4185, 1485, 1485, 3993, 4009, 4025, 1461, 4209, 4233, 1509, 4249, 4273, 4297, 4321, 4345, 3905, 617, 4025, 4233, 4249, 4273, 4369, 4321, 4345, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 4393, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 4417, 4441, 4457, 4481, 4137, 4505, 4521, 4545, 4569, 4593, 4617, 4641, 1533, 4665, 4689, 57725, 4713, 4737, 4761, 4785, 4809, 4833, 4857, 4881, 4905, 4929, 4953, 4977, 5001, 1557, 5025, 5049, 5073, 5089, 5113, 5137, 5161, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 8, 8, 8, 8, 1581, 1613, 8, 8, 5185, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 8, 8, 8, 8, 8, 8, 64, 64, 57413, 57413, 57413, 57413, 57413, 57413, 64, 64, 8, 8, 8, 8, 8, 8, 8, 8, 64, 57413, 64, 57413, 64, 57413, 64, 57413, 8, 8, 8, 8, 8, 8, 8, 8, 57413, 57413, 57413, 57413, 57413, 57413, 57413, 57413, 8, 5209, 8, 5233, 8, 5257, 8, 5281, 8, 5305, 8, 5329, 8, 5353, 64, 64, 5377, 5425, 5473, 5521, 5569, 5617, 5665, 5713, 5377, 5425, 5473, 5521, 5569, 5617, 5665, 5713, 5761, 5809, 5857, 5905, 5953, 6001, 6049, 6097, 5761, 5809, 5857, 5905, 5953, 6001, 6049, 6097, 6145, 6193, 6241, 6289, 6337, 6385, 6433, 6481, 6145, 6193, 6241, 6289, 6337, 6385, 6433, 6481, 8, 8, 6529, 6577, 6617, 64, 8, 6657, 57413, 57413, 1637, 5209, 6577, 1662, 6705, 1694, 1726, 6730, 6777, 6825, 6865, 64, 8, 6905, 1757, 5233, 1781, 5257, 6825, 6954, 7002, 7050, 8, 8, 8, 7097, 64, 64, 8, 8, 57413, 57413, 1805, 5281, 64, 7122, 7170, 7218, 8, 8, 8, 7265, 8, 8, 8, 8, 57413, 57413, 1829, 5329, 57421, 7290, 978, 7338, 64, 64, 7353, 7401, 7441, 64, 8, 7481, 1853, 5305, 1301, 5353, 7401, 1878, 1910, 64, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 960, 3, 3, 832, 2880, 24, 57357, 24, 24, 24, 24, 24, 1942, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 64, 64, 64, 24, 64, 64, 832, 832, 832, 832, 832, 10, 24, 24, 24, 7529, 7585, 24, 7665, 7721, 24, 24, 24, 24, 7802, 24, 1974, 24, 24, 24, 24, 24, 24, 24, 24, 7826, 7850, 7874, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 7897, 24, 24, 24, 24, 24, 24, 24, 10, 960, 832, 832, 832, 960, 64, 64, 64, 64, 64, 832, 832, 832, 832, 832, 832, 8001, 3905, 64, 64, 8017, 8033, 8049, 8065, 8081, 8097, 8114, 2005, 8130, 8146, 8162, 3953, 8001, 201, 105, 121, 8017, 8033, 8049, 8065, 8081, 8097, 8114, 2029, 8130, 8146, 8162, 64, 57, 3849, 217, 873, 4089, 585, 3921, 857, 3937, 3953, 3993, 473, 4009, 64, 64, 64, 24, 24, 24, 24, 24, 24, 24, 24, 8177, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 2054, 2086, 4441, 2117, 24, 2150, 2182, 4113, 24, 2213, 3889, 585, 585, 585, 585, 8201, 3905, 3905, 857, 857, 24, 3953, 8225, 24, 24, 3993, 8249, 617, 617, 617, 24, 24, 8265, 2245, 8289, 24, 5073, 24, 8313, 24, 5073, 24, 3921, 8337, 3817, 4441, 24, 3849, 3849, 4505, 64, 3937, 217, 8361, 8385, 8409, 8433, 3905, 24, 2277, 8457, 4273, 4273, 8457, 2309, 24, 24, 24, 24, 3833, 3833, 3849, 3905, 601, 24, 24, 24, 24, 8, 24, 8481, 8529, 8577, 8633, 8681, 8729, 8777, 8825, 8873, 8921, 8969, 9017, 9065, 9113, 9161, 9209, 3905, 9249, 2333, 9273, 4233, 9297, 2365, 9321, 9361, 873, 9385, 2397, 857, 4441, 3833, 3937, 3905, 9249, 2429, 9273, 4233, 9297, 2461, 9321, 9361, 873, 9385, 2493, 857, 4441, 3833, 3937, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 201, 105, 121, 8017, 8033, 8049, 8065, 8081, 8097, 9729, 9753, 9777, 9801, 9825, 9849, 9873, 9897, 9921, 9945, 9969, 2590, 2622, 2654, 2686, 2718, 2750, 2782, 2814, 2846, 9994, 10034, 10074, 10114, 10154, 10194, 10234, 10274, 10314, 10354, 10394, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 2878, 2910, 2942, 2974, 3006, 3038, 3070, 3102, 3134, 3166, 3198, 3230, 3262, 3294, 3326, 3358, 3390, 3422, 3454, 3486, 3518, 3550, 3582, 3614, 3646, 3678, 57, 3817, 4441, 3833, 3849, 4505, 3889, 585, 3905, 601, 3921, 857, 3937, 3953, 217, 3993, 8249, 617, 473, 4009, 4025, 4233, 633, 873, 649, 5073, 57, 3817, 4441, 3833, 3849, 4505, 3889, 585, 3905, 601, 3921, 857, 3937, 3953, 217, 3993, 8249, 617, 473, 4009, 4025, 4233, 633, 873, 649, 5073, 8001, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 64, 57357, 8, 10609, 3797, 10633, 8, 8, 57469, 8, 57373, 8, 57405, 8, 4065, 4737, 4041, 4417, 8, 57357, 8, 8, 57373, 8, 8, 8, 8, 8, 8, 601, 4233, 10657, 10681, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 8, 24, 24, 24, 24, 24, 24, 57405, 8, 57373, 8, 13064, 13064, 13064, 57357, 8, 64, 64, 64, 64, 64, 24, 24, 24, 24, 24, 24, 24, 10005, 10037, 10069, 10101, 10133, 10165, 10197, 10229, 10261, 10293, 10325, 10357, 10389, 10421, 10453, 10485, 10517, 10549, 10581, 10613, 10645, 10677, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 10, 24, 10705, 24, 24, 8, 8, 8, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 13064, 13064, 13064, 13064, 12312, 12312, 24, 24, 24, 24, 24, 24, 57637, 24, 10709, 10741, 10773, 24, 8, 24, 24, 24, 11093, 11125, 11157, 11189, 11221, 11253, 11253, 11253, 11285, 11285, 11285, 11285, 11317, 11317, 11317, 11349, 11381, 11381, 10901, 10901, 11381, 11381, 11413, 11413, 11381, 11381, 10901, 10901, 11381, 11381, 11349, 11349, 11445, 11445, 11477, 11477, 64, 11509, 11541, 11573, 11573, 11605, 11637, 11669, 11701, 11733, 11765, 11797, 11829, 11861, 11861, 11893, 11925, 11925, 11957, 11989, 11893, 12021, 12053, 12021, 11893, 12085, 12117, 12149, 12181, 12213, 11541, 11509, 12245, 12277, 12309, 12341, 12373, 12405, 12437, 12469, 12501, 12533, 12565, 64, 24, 24, 12597, 12629, 12661, 12693, 12725, 12757, 12789, 12821, 12853, 12885, 12661, 12917, 12949, 12981, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 13986, 14034, 14082, 14130, 13013, 13045, 13077, 13109, 24, 24, 24, 24, 24, 24, 24, 24, 13141, 14177, 14201, 14225, 14249, 14273, 14297, 14321, 14345, 14369, 14393, 14417, 14441, 14465, 14489, 14513, 13173, 13205, 13237, 13269, 13301, 13301, 13333, 13365, 13397, 13429, 13461, 13493, 13525, 13557, 13589, 13621, 13653, 13685, 13717, 13749, 13781, 13813, 13845, 13877, 13909, 13941, 13973, 14005, 14537, 14593, 14037, 24, 14069, 14101, 14133, 14165, 14197, 14229, 14261, 14293, 14325, 14357, 14389, 14421, 14453, 14485, 14517, 14549, 14581, 14613, 14645, 14677, 14709, 14741, 14773, 14805, 14837, 14869, 14901, 14933, 14965, 14997, 15029, 15061, 15093, 15125, 15157, 15189, 15221, 15253, 4757, 15285, 15317, 15349, 15381, 15413, 15445, 15477, 9141, 15509, 15541, 14649, 14673, 14697, 14721, 14745, 14769, 14793, 14817, 14841, 14865, 14889, 14913, 14937, 14961, 14985, 15009, 15049, 15089, 15129, 15169, 15209, 15249, 15289, 15329, 15369, 15417, 15465, 15513, 15573, 15537, 15605, 15637, 15661, 15685, 15709, 15733, 15733, 15709, 15757, 2005, 15781, 15805, 15829, 15853, 15877, 15901, 15925, 15949, 15973, 15997, 16021, 16045, 16045, 16069, 16069, 16093, 16093, 16117, 16141, 16165, 16189, 16213, 16213, 16237, 16237, 16237, 16261, 16285, 16309, 16333, 16309, 16357, 16381, 16261, 16405, 16429, 16429, 16429, 15561, 15617, 15721, 15825, 15929, 16009, 16113, 16193, 16273, 16401, 16505, 16585, 16665, 16745, 16849, 16953, 17033, 17113, 17169, 17249, 17353, 17457, 17513, 17641, 17793, 17921, 18001, 18129, 18257, 18361, 18441, 18521, 18601, 18705, 18833, 18937, 19017, 19097, 19177, 19233, 19289, 19345, 19401, 19481, 19561, 19689, 19769, 19873, 20001, 20081, 20137, 20193, 20321, 20425, 20553, 20633, 20761, 20817, 20897, 20977, 21057, 21137, 21217, 21321, 21401, 21457, 21537, 21617, 21697, 21801, 21881, 21961, 22041, 22169, 22273, 22329, 22457, 22513, 22617, 22721, 22801, 22881, 22961, 23065, 23121, 23201, 23305, 23361, 23489, 23569, 23609, 23649, 23689, 23729, 23769, 23809, 23849, 23889, 23929, 23969, 24017, 24065, 24113, 24161, 24209, 24257, 24305, 24353, 24401, 24449, 24497, 24545, 24593, 24641, 16453, 24689, 24713, 16485, 24737, 24761, 24785, 16517, 16517, 24809, 24833, 24889, 24945, 25001, 25057, 25161, 25185, 16549, 25209, 25233, 25257, 25281, 25305, 16581, 25329, 25369, 25393, 16613, 16613, 25417, 25441, 25465, 16645, 16677, 16709, 16741, 16773, 25489, 25513, 25537, 25561, 25585, 16805, 25609, 25633, 25657, 16837, 16869, 25681, 16901, 16933, 16965, 25705, 16997, 25729, 25777, 25161, 17029, 17061, 17093, 17125, 25833, 25897, 25969, 25993, 17157, 26017, 26041, 26065, 17189, 26089, 26113, 26089, 26137, 26161, 17221, 26185, 26209, 26185, 17253, 17285, 64, 26233, 26257, 26281, 26305, 64, 26361, 26385, 26409, 26433, 26457, 26481, 25657, 26505, 26529, 26553, 17317, 26577, 25281, 17349, 17381, 26601, 64, 17413, 26625, 26649, 26673, 26697, 26721, 26769, 26817, 26857, 26897, 26937, 26977, 27017, 27057, 27097, 27137, 27177, 27225, 27273, 27321, 27369, 27417, 27465, 27513, 27561, 27609, 27657, 27705, 27753, 27801, 27849, 27897, 27945, 27993, 28041, 28089, 28137, 28185, 17445, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 8, 13064, 13080, 13080, 13080, 24, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 24, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 3745, 28233, 13064, 13064, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 8, 8, 8, 8, 8, 8, 8, 8, 8, 24, 24, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 8, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57597, 8, 8, 8, 8, 8, 8, 8, 8, 57373, 8, 57405, 8, 17477, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 8, 24, 24, 57405, 8, 4569, 8, 8, 57357, 8, 57357, 8, 8, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 28257, 4137, 4545, 28281, 4641, 8, 28305, 28329, 4665, 17509, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 25869, 25901, 25933, 25965, 25997, 26029, 26061, 26093, 26125, 26157, 26189, 26221, 26253, 26285, 8, 8, 26317, 8, 26349, 8, 8, 26381, 26413, 26445, 26477, 26509, 26541, 26573, 26605, 26637, 26669, 8, 26701, 8, 26733, 8, 8, 26765, 26797, 8, 8, 8, 26829, 26861, 26893, 26925, 26957, 26989, 27021, 27053, 27085, 27117, 27149, 27181, 27213, 27245, 27277, 27309, 27341, 27373, 27405, 27437, 27469, 27501, 31437, 31469, 31501, 31533, 31565, 31597, 31629, 31661, 31693, 31725, 31757, 31789, 31821, 31853, 31885, 28441, 28481, 28521, 31917, 31949, 31981, 28561, 28601, 28641, 32013, 32045, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 28681, 28705, 28729, 32077, 32109, 28753, 28753, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 28777, 28817, 28857, 28897, 28937, 64, 64, 64, 64, 64, 28977, 13064, 29017, 29057, 8361, 8433, 29081, 29105, 29129, 29153, 29177, 29201, 8114, 29225, 29265, 29305, 29361, 29417, 29457, 29497, 29537, 29577, 29617, 29657, 29697, 29737, 64, 29777, 29817, 29857, 29897, 29937, 64, 29977, 64, 30017, 30057, 64, 30097, 30137, 64, 30177, 30217, 30257, 30297, 30337, 30377, 30417, 30457, 30497, 30537, 30577, 30577, 30601, 30601, 30601, 30601, 30625, 30625, 30625, 30625, 30649, 30649, 30649, 30649, 30673, 30673, 30673, 30673, 30697, 30697, 30697, 30697, 30721, 30721, 30721, 30721, 30745, 30745, 30745, 30745, 30769, 30769, 30769, 30769, 30793, 30793, 30793, 30793, 30817, 30817, 30817, 30817, 30841, 30841, 30841, 30841, 30865, 30865, 30865, 30865, 30889, 30889, 30913, 30913, 30937, 30937, 30961, 30961, 30985, 30985, 31009, 31009, 31033, 31033, 31033, 31033, 31057, 31057, 31057, 31057, 31081, 31081, 31081, 31081, 31105, 31105, 31105, 31105, 31129, 31129, 31153, 31153, 31153, 31153, 31177, 31177, 31201, 31201, 31201, 31201, 31225, 31225, 31225, 31225, 31249, 31249, 31273, 31273, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 31297, 31297, 31297, 31297, 31321, 31321, 31345, 31345, 31369, 31369, 1145, 31393, 31393, 31417, 31417, 31441, 31441, 31465, 31465, 31465, 31465, 31489, 31489, 31513, 31513, 31553, 31553, 31593, 31593, 31633, 31633, 31673, 31673, 31713, 31713, 31753, 31753, 31753, 31793, 31793, 31793, 31833, 31833, 31833, 31833, 34377, 34417, 34457, 34497, 34537, 34577, 34617, 34657, 34697, 34737, 34777, 34817, 34857, 34897, 34937, 34977, 35017, 35057, 35097, 35137, 35177, 35217, 35257, 35297, 35337, 35377, 35417, 35457, 35497, 35537, 35578, 35626, 35674, 35722, 35770, 35818, 35865, 35905, 31937, 35945, 31793, 31977, 35985, 36025, 32137, 36065, 32177, 32217, 36105, 36145, 32377, 36185, 32417, 32457, 36225, 36265, 32537, 36305, 32577, 32617, 33777, 33817, 33937, 33977, 34017, 34177, 34217, 34257, 34297, 34457, 34497, 34537, 36345, 34697, 36385, 36425, 34937, 36465, 34977, 35017, 35537, 36505, 36545, 35337, 36585, 35377, 35417, 31857, 31897, 36625, 31937, 36665, 32017, 32057, 32097, 32137, 36705, 32257, 32297, 32337, 32377, 36745, 32537, 32657, 32697, 32737, 32777, 32817, 32897, 32937, 32977, 33017, 33057, 33097, 36785, 33137, 33177, 33217, 33257, 33297, 33337, 33417, 33457, 33497, 33537, 33577, 33617, 33657, 33697, 33737, 33857, 33897, 34057, 34097, 34137, 34177, 34217, 34337, 34377, 34417, 34457, 36825, 34577, 34617, 34657, 34697, 34817, 34857, 34897, 34937, 36865, 35057, 35097, 36905, 35217, 35257, 35297, 35337, 36945, 31937, 36665, 32137, 36705, 32377, 36745, 32537, 36985, 33057, 37025, 37065, 37105, 34177, 34217, 34457, 34937, 36865, 35337, 36945, 37145, 37201, 37257, 37313, 37353, 37393, 37433, 37473, 37513, 37553, 37593, 37633, 37673, 37713, 37753, 37793, 37833, 37873, 37913, 37953, 37993, 38033, 38073, 38113, 38153, 38193, 37065, 38233, 38273, 38313, 38353, 37313, 37353, 37393, 37433, 37473, 37513, 37553, 37593, 37633, 37673, 37713, 37753, 37793, 37833, 37873, 37913, 37953, 37993, 38033, 38073, 38113, 38153, 38193, 37065, 38233, 38273, 38313, 38353, 38113, 38153, 38193, 37065, 37025, 37105, 33377, 32937, 32977, 33017, 38113, 38153, 38193, 33377, 33417, 38393, 38393, 24, 24, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 38433, 38489, 38489, 38545, 38601, 38657, 38713, 38769, 38825, 38825, 38881, 38937, 38993, 39049, 39105, 39161, 39161, 39217, 39273, 39273, 39329, 39329, 39385, 39441, 39441, 39497, 39553, 39553, 39609, 39609, 39665, 39721, 39721, 39777, 39777, 39833, 39889, 39945, 40001, 40001, 40057, 40113, 40169, 40225, 40281, 40281, 40337, 40393, 43417, 43473, 43529, 43249, 39945, 39385, 43585, 43641, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 43697, 43753, 43809, 43881, 43953, 44025, 44097, 44169, 44241, 44313, 44370, 44642, 44769, 24, 64, 64, 13248, 13248, 13248, 13248, 13248, 13248, 13248, 13248, 13248, 13248, 13248, 13248, 13248, 13248, 13248, 13248, 44842, 32141, 64, 44858, 962, 44874, 44890, 32173, 32205, 64, 64, 64, 64, 64, 64, 64, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 64, 32237, 32269, 44906, 44906, 8146, 8162, 44922, 44938, 32301, 32333, 32365, 32301, 32397, 32429, 32397, 32461, 32493, 32525, 32493, 32557, 24, 24, 44954, 44970, 32590, 32622, 32654, 32686, 44906, 44906, 44906, 44842, 32717, 64, 64, 962, 44858, 44890, 44874, 32749, 8146, 8162, 44922, 44938, 32461, 32557, 44986, 45002, 45018, 8114, 45033, 45050, 45066, 8130, 64, 45082, 45098, 45114, 45130, 64, 64, 64, 64, 32782, 45145, 32814, 2056, 32846, 64, 32878, 45185, 32910, 45225, 32942, 45265, 32974, 45305, 33006, 45345, 45385, 45409, 45409, 45433, 45433, 45457, 45457, 45481, 45481, 45505, 45505, 45505, 45505, 45529, 45529, 45553, 45553, 45553, 45553, 45577, 45577, 45601, 45601, 45601, 45601, 45625, 45625, 45625, 45625, 45649, 45649, 45649, 45649, 45673, 45673, 45673, 45673, 45697, 45697, 45697, 45697, 45721, 45721, 45745, 45745, 45769, 45769, 45793, 45793, 45817, 45817, 45817, 45817, 45841, 45841, 45841, 45841, 45865, 45865, 45865, 45865, 45889, 45889, 45889, 45889, 45913, 45913, 45913, 45913, 45937, 45937, 45937, 45937, 45961, 45961, 45961, 45961, 45985, 45985, 45985, 45985, 46009, 46009, 46009, 46009, 46033, 46033, 46033, 46033, 46057, 46057, 46057, 46057, 46081, 46081, 46081, 46081, 46105, 46105, 46105, 46105, 46129, 46129, 46129, 46129, 46153, 46153, 46153, 46153, 46177, 46177, 31489, 31489, 46201, 46201, 46201, 46201, 46225, 46225, 46265, 46265, 46305, 46305, 46345, 46345, 64, 64, 960, 64, 44874, 46386, 44986, 45098, 45114, 45002, 46402, 8146, 8162, 45018, 8114, 44842, 45033, 10705, 46418, 8001, 201, 105, 121, 8017, 8033, 8049, 8065, 8081, 8097, 44858, 962, 45050, 8130, 45066, 44890, 45130, 57, 3817, 4441, 3833, 3849, 4505, 3889, 585, 3905, 601, 3921, 857, 3937, 3953, 217, 3993, 8249, 617, 473, 4009, 4025, 4233, 633, 873, 649, 5073, 44954, 45082, 44970, 46434, 44906, 7338, 57, 3817, 4441, 3833, 3849, 4505, 3889, 585, 3905, 601, 3921, 857, 3937, 3953, 217, 3993, 8249, 617, 473, 4009, 4025, 4233, 633, 873, 649, 5073, 44922, 46450, 44938, 46466, 33037, 33069, 10705, 33101, 33101, 33133, 33165, 33197, 33229, 33261, 33293, 33325, 33357, 33389, 33421, 33453, 33485, 33517, 33549, 33581, 33613, 33645, 33677, 33709, 33741, 33773, 33805, 33837, 33869, 33261, 33901, 33933, 33357, 33965, 33997, 34029, 34061, 34093, 34125, 34157, 34189, 34061, 34221, 34061, 34253, 34253, 34285, 34285, 34317, 34125, 34349, 34381, 34349, 34413, 34381, 34445, 34445, 34477, 34477, 34509, 34509, 34381, 33101, 34541, 34573, 64, 34605, 34637, 34669, 34701, 34669, 34733, 34765, 34797, 34797, 34829, 34829, 34861, 34861, 34829, 34829, 34893, 34925, 34957, 34989, 35021, 35053, 35053, 35053, 35085, 35085, 35085, 35085, 34797, 34797, 34797, 64, 64, 64, 34637, 34605, 35117, 34605, 34637, 34605, 64, 64, 35149, 34637, 35181, 35117, 35181, 34637, 64, 64, 35213, 35245, 34989, 35181, 35117, 35181, 64, 64, 35277, 35309, 35277, 64, 64, 64, 46481, 46505, 46529, 35342, 46553, 46577, 35373, 64, 35405, 35437, 35469, 35437, 35501, 35533, 35565, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 832, 832, 832, 64, 64, 64, 64, 2568, 2568, 2568, 2568, 2568, 3080, 2056, 3080, 2072, 3080, 3080, 2056, 2056, 2312, 3080, 3080, 3080, 3080, 3080, 2568, 2568, 2568, 2568, 2312, 2568, 2568, 2568, 2568, 2568, 3080, 2568, 2568, 2568, 3080, 2056, 2056, 3080, 13064, 13064, 64, 64, 64, 64, 2584, 2584, 2584, 2584, 3096, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 64, 64, 64, 64, 64, 64, 64, 64, 64, 2568, 3080, 2568, 3080, 3080, 3080, 2568, 2568, 2568, 3080, 2568, 2568, 3080, 2568, 3080, 3080, 2568, 3080, 64, 64, 64, 64, 64, 64, 64, 2072, 2072, 2072, 2072, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 3096, 3096, 3096, 3096, 2584, 2584, 2072, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 13064, 13064, 12296, 12296, 64, 8, 8, 8, 8, 8, 8, 8, 8, 64, 64, 8, 8, 64, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 64, 8, 8, 8, 8, 8, 8, 8, 64, 8, 8, 64, 8, 8, 8, 8, 8, 64, 13064, 13064, 8, 12296, 12296, 13064, 12296, 12296, 12296, 12296, 64, 64, 12296, 12296, 64, 64, 12296, 12296, 14344, 64, 64, 8, 64, 64, 64, 64, 64, 64, 12296, 64, 64, 64, 64, 64, 8, 8, 8, 8, 8, 12296, 12296, 64, 64, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 64, 64, 64, 13064, 13064, 13064, 13064, 13064, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 8, 8, 8, 8, 8, 8, 8, 64, 64, 8, 64, 64, 8, 8, 8, 8, 8, 8, 8, 8, 64, 8, 8, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 12296, 12296, 12296, 12296, 12296, 12296, 64, 12296, 12296, 64, 64, 13064, 13064, 14344, 15112, 8, 57, 3817, 4441, 3833, 3849, 4505, 3889, 585, 3905, 601, 3921, 857, 3937, 3953, 217, 3993, 8249, 617, 473, 4009, 4025, 4233, 633, 873, 649, 5073, 57, 3817, 4441, 3833, 3849, 4505, 3889, 585, 3905, 601, 3921, 857, 3937, 3953, 217, 3993, 8249, 617, 473, 4009, 4025, 4233, 633, 873, 649, 5073, 57, 3817, 4441, 3833, 3849, 4505, 3889, 585, 3905, 601, 3921, 857, 3937, 3953, 217, 3993, 8249, 617, 473, 4009, 4025, 4233, 633, 873, 649, 5073, 57, 3817, 4441, 3833, 3849, 4505, 3889, 64, 3905, 601, 3921, 857, 3937, 3953, 217, 3993, 8249, 617, 473, 4009, 4025, 4233, 633, 873, 649, 5073, 57, 3817, 4441, 3833, 3849, 4505, 3889, 585, 3905, 601, 3921, 857, 3937, 3953, 217, 3993, 8249, 617, 473, 4009, 4025, 4233, 633, 873, 649, 5073, 57, 3817, 4441, 3833, 3849, 4505, 3889, 585, 3905, 601, 3921, 857, 3937, 3953, 217, 3993, 8249, 617, 473, 4009, 4025, 4233, 633, 873, 649, 5073, 57, 64, 4441, 3833, 64, 64, 3889, 64, 64, 601, 3921, 64, 64, 3953, 217, 3993, 8249, 64, 473, 4009, 4025, 4233, 633, 873, 649, 5073, 57, 3817, 4441, 3833, 64, 4505, 64, 585, 3905, 601, 3921, 857, 3937, 3953, 64, 3993, 8249, 617, 473, 4009, 4025, 4233, 633, 873, 649, 5073, 57, 3817, 4441, 3833, 3849, 4505, 3889, 585, 3905, 601, 3921, 857, 3937, 3953, 217, 3993, 8249, 617, 473, 4009, 4025, 4233, 633, 873, 649, 5073, 57, 3817, 4441, 3833, 3849, 4505, 3889, 585, 3905, 601, 3921, 857, 3937, 3953, 217, 3993, 8249, 617, 473, 4009, 4025, 4233, 633, 873, 649, 5073, 57, 3817, 64, 3833, 3849, 4505, 3889, 64, 64, 601, 3921, 857, 3937, 3953, 217, 3993, 8249, 64, 473, 4009, 4025, 4233, 633, 873, 649, 64, 57, 3817, 4441, 3833, 3849, 4505, 3889, 585, 3905, 601, 3921, 857, 3937, 3953, 217, 3993, 8249, 617, 473, 4009, 4025, 4233, 633, 873, 649, 5073, 57, 3817, 64, 3833, 3849, 4505, 3889, 64, 3905, 601, 3921, 857, 3937, 64, 217, 64, 64, 64, 473, 4009, 4025, 4233, 633, 873, 649, 64, 57, 3817, 4441, 3833, 3849, 4505, 3889, 585, 3905, 601, 3921, 857, 3937, 3953, 217, 3993, 8249, 617, 473, 4009, 4025, 4233, 633, 873, 649, 5073, 57, 3817, 4441, 3833, 3849, 4505, 3889, 585, 3905, 601, 3921, 857, 3937, 3953, 217, 3993, 8249, 617, 473, 4009, 4025, 4233, 633, 873, 649, 5073, 57, 3817, 4441, 3833, 3849, 4505, 3889, 585, 3905, 601, 3921, 857, 3937, 3953, 217, 3993, 8249, 617, 473, 4009, 4025, 4233, 633, 873, 649, 5073, 57, 3817, 4441, 3833, 3849, 4505, 3889, 585, 3905, 601, 3921, 857, 3937, 3953, 217, 3993, 8249, 617, 473, 4009, 4025, 4233, 633, 873, 649, 5073, 57, 3817, 4441, 3833, 3849, 4505, 3889, 585, 3905, 601, 3921, 857, 3937, 3953, 217, 3993, 8249, 617, 473, 4009, 4025, 4233, 633, 873, 649, 5073, 57, 3817, 4441, 3833, 3849, 4505, 3889, 585, 3905, 601, 3921, 857, 3937, 3953, 217, 3993, 8249, 617, 473, 4009, 4025, 4233, 633, 873, 649, 5073, 57, 3817, 4441, 3833, 3849, 4505, 3889, 585, 3905, 601, 3921, 857, 3937, 3953, 217, 3993, 8249, 617, 473, 4009, 4025, 4233, 633, 873, 649, 5073, 57, 3817, 4441, 3833, 3849, 4505, 3889, 585, 3905, 601, 3921, 857, 3937, 3953, 217, 3993, 8249, 617, 473, 4009, 4025, 4233, 633, 873, 649, 5073, 57, 3817, 4441, 3833, 3849, 4505, 3889, 585, 3905, 601, 3921, 857, 3937, 3953, 217, 3993, 8249, 617, 473, 4009, 4025, 4233, 633, 873, 649, 5073, 57, 3817, 4441, 3833, 3849, 4505, 3889, 585, 3905, 601, 3921, 857, 3937, 3953, 217, 3993, 8249, 617, 473, 4009, 4025, 4233, 633, 873, 649, 5073, 57, 3817, 4441, 3833, 3849, 4505, 3889, 585, 3905, 601, 3921, 857, 3937, 3953, 217, 3993, 8249, 617, 473, 4009, 4025, 4233, 633, 873, 649, 5073, 57, 3817, 4441, 3833, 3849, 4505, 3889, 585, 3905, 601, 3921, 857, 3937, 3953, 217, 3993, 8249, 617, 473, 4009, 4025, 4233, 633, 873, 649, 5073, 57, 3817, 4441, 3833, 3849, 4505, 3889, 585, 3905, 601, 3921, 857, 3937, 3953, 217, 3993, 8249, 617, 473, 4009, 4025, 4233, 633, 873, 649, 5073, 47825, 47849, 64, 64, 47873, 4249, 4273, 4297, 47897, 47921, 47945, 5161, 6705, 47969, 47993, 48017, 48041, 48065, 48089, 8457, 4369, 5161, 48113, 48137, 48161, 4321, 4345, 48185, 8313, 48209, 47873, 4249, 4273, 4297, 47897, 47921, 47945, 5161, 6705, 47969, 47993, 48017, 48041, 48065, 48089, 8457, 4369, 48113, 48113, 48137, 48161, 4321, 4345, 48185, 8313, 48241, 47897, 5161, 47969, 4321, 4369, 8457, 47873, 4249, 4273, 4297, 47897, 47921, 47945, 5161, 6705, 47969, 47993, 48017, 48041, 48065, 48089, 8457, 4369, 5161, 48113, 48137, 48161, 4321, 4345, 48185, 8313, 48209, 47873, 4249, 4273, 4297, 47897, 47921, 47945, 5161, 6705, 47969, 47993, 48017, 48041, 48065, 48089, 8457, 4369, 48113, 48113, 48137, 48161, 4321, 4345, 48185, 8313, 48241, 47897, 5161, 47969, 4321, 4369, 8457, 47873, 4249, 4273, 4297, 47897, 47921, 47945, 5161, 6705, 47969, 47993, 48017, 48041, 48065, 48089, 8457, 4369, 5161, 48113, 48137, 48161, 4321, 4345, 48185, 8313, 48209, 47873, 4249, 4273, 4297, 47897, 47921, 47945, 5161, 6705, 47969, 47993, 48017, 48041, 48065, 48089, 8457, 4369, 48113, 48113, 48137, 48161, 4321, 4345, 48185, 8313, 48241, 47897, 5161, 47969, 4321, 4369, 8457, 47873, 4249, 4273, 4297, 47897, 47921, 47945, 5161, 6705, 47969, 47993, 48017, 48041, 48065, 48089, 8457, 4369, 5161, 48113, 48137, 48161, 4321, 4345, 48185, 8313, 48209, 47873, 4249, 4273, 4297, 47897, 47921, 47945, 5161, 6705, 47969, 47993, 48017, 48041, 48065, 48089, 8457, 4369, 48113, 48113, 48137, 48161, 4321, 4345, 48185, 8313, 48241, 47897, 5161, 47969, 4321, 4369, 8457, 47873, 4249, 4273, 4297, 47897, 47921, 47945, 5161, 6705, 47969, 47993, 48017, 48041, 48065, 48089, 8457, 4369, 5161, 48113, 48137, 48161, 4321, 4345, 48185, 8313, 48209, 47873, 4249, 4273, 4297, 47897, 47921, 47945, 5161, 6705, 47969, 47993, 48017, 48041, 48065, 48089, 8457, 4369, 48113, 48113, 48137, 48161, 4321, 4345, 48185, 8313, 48241, 47897, 5161, 47969, 4321, 4369, 8457, 48273, 48273, 64, 64, 8001, 201, 105, 121, 8017, 8033, 8049, 8065, 8081, 8097, 8001, 201, 105, 121, 8017, 8033, 8049, 8065, 8081, 8097, 8001, 201, 105, 121, 8017, 8033, 8049, 8065, 8081, 8097, 8001, 201, 105, 121, 8017, 8033, 8049, 8065, 8081, 8097, 8001, 201, 105, 121, 8017, 8033, 8049, 8065, 8081, 8097, 57621, 57621, 57653, 57653, 57621, 57621, 57717, 57717, 57621, 57621, 57653, 57653, 57621, 57621, 57845, 57845, 57621, 57621, 57653, 57653, 57621, 57621, 57717, 57717, 57621, 57621, 57653, 57653, 57621, 57621, 35645, 35645, 1205, 1205, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 45529, 45553, 45649, 45721, 64, 46177, 45793, 45673, 45913, 46201, 46057, 46081, 46105, 46129, 45817, 45961, 46009, 45865, 46033, 45769, 45841, 45601, 45625, 45697, 45745, 45889, 45937, 45985, 48297, 31129, 48321, 48345, 64, 45553, 45649, 64, 46153, 64, 64, 45673, 64, 46201, 46057, 46081, 46105, 46129, 45817, 45961, 46009, 45865, 46033, 64, 45841, 45601, 45625, 45697, 64, 45889, 64, 45985, 64, 64, 64, 64, 64, 64, 45649, 64, 64, 64, 64, 45673, 64, 46201, 64, 46081, 64, 46129, 45817, 45961, 64, 45865, 46033, 64, 45841, 64, 64, 45697, 64, 45889, 64, 45985, 64, 31129, 64, 48345, 64, 45553, 45649, 64, 46153, 64, 64, 45673, 45913, 46201, 46057, 64, 46105, 46129, 45817, 45961, 46009, 45865, 46033, 64, 45841, 45601, 45625, 45697, 64, 45889, 45937, 45985, 48297, 64, 48321, 64, 45529, 45553, 45649, 45721, 46153, 46177, 45793, 45673, 45913, 46201, 64, 46081, 46105, 46129, 45817, 45961, 46009, 45865, 46033, 45769, 45841, 45601, 45625, 45697, 45745, 45889, 45937, 45985, 64, 64, 64, 64, 64, 45553, 45649, 45721, 64, 46177, 45793, 45673, 45913, 46201, 64, 46081, 46105, 46129, 45817, 45961, 46009, 45865, 46033, 45769, 45841, 45601, 45625, 45697, 45745, 45889, 45937, 45985, 64, 64, 64, 64, 64, 48370, 48394, 48418, 48442, 48466, 48490, 48514, 48538, 48562, 48586, 24, 24, 24, 24, 24, 48610, 48642, 48674, 48706, 48738, 48770, 48802, 48834, 48866, 48898, 48930, 48962, 48994, 49026, 49058, 49090, 49122, 49154, 49186, 49218, 49250, 49282, 49314, 49346, 49378, 49410, 49441, 4441, 617, 26281, 49505, 24, 57, 3817, 4441, 3833, 3849, 4505, 3889, 585, 3905, 601, 3921, 857, 3937, 3953, 217, 3993, 8249, 617, 473, 4009, 4025, 4233, 633, 873, 649, 5073, 49529, 26089, 49553, 5185, 49577, 49609, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 49633, 49657, 49681, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 49729, 49785, 49841, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 49873, 49905, 49937, 49969, 50001, 50033, 50065, 50097, 50129, 50161, 50193, 50225, 50257, 50289, 50321, 50353, 50385, 50417, 50449, 50481, 50513, 50545, 50577, 50609, 50641, 50673, 50705, 50737, 50769, 50801, 50833, 50865, 50897, 50929, 50961, 50993, 51025, 51057, 51089, 51121, 51153, 51185, 51217, 51249, 64, 64, 64, 64, 52065, 52097, 52129, 35669, 52161, 52193, 52225, 52257, 52289, 52321, 52353, 52385, 52417, 35701, 52449, 52481, 52513, 52545, 35733, 52577, 52609, 50321, 35765, 52641, 52673, 52705, 52737, 52769, 35797, 52801, 52833, 52865, 52897, 52929, 51185, 52961, 52993, 53025, 53057, 53089, 53121, 53153, 53185, 53217, 53249, 53281, 53313, 53345, 53377, 53409, 53409, 53409, 35829, 53441, 53473, 53505, 35861, 53537, 53569, 53601, 53633, 53665, 53697, 53729, 53761, 53793, 53825, 53857, 53889, 53921, 53921, 53953, 53985, 54017, 54049, 54081, 54113, 54145, 54177, 54209, 54241, 54273, 54305, 54337, 54369, 54401, 54433, 54465, 54497, 35893, 54529, 54561, 54593, 50033, 54625, 54657, 35925, 35957, 54689, 54721, 54753, 54785, 54817, 54849, 8256, 54881, 54913, 54913, 35989, 54945, 54977, 55009, 55041, 36021, 55073, 55105, 8256, 55137, 55169, 55201, 55233, 55265, 55297, 36053, 55329, 36085, 55361, 55393, 55425, 55457, 55489, 55521, 55553, 55585, 55617, 55649, 55681, 36117, 55713, 55745, 55777, 55809, 55841, 36149, 55873, 36181, 36213, 55905, 55937, 55937, 55969, 36245, 36277, 56001, 56033, 56065, 56097, 56129, 56161, 56193, 56225, 56257, 56289, 56321, 36309, 56353, 56385, 56417, 56449, 56417, 56481, 56513, 56545, 56577, 56609, 56641, 56673, 56705, 56737, 56769, 56801, 56833, 56865, 56897, 36341, 56929, 56961, 56993, 57025, 57057, 36373, 57089, 58881, 58913, 58945, 58977, 59009, 59041, 36661, 59073, 59105, 59137, 59169, 59201, 59233, 36693, 59265, 59297, 36725, 36757, 59329, 59361, 59393, 59425, 59457, 59489, 59521, 59553, 59585, 36789, 59617, 36821, 59649, 8256, 59681, 59713, 59745, 36853, 59777, 59809, 36885, 36917, 59841, 59873, 59905, 59937, 59969, 59969, 60001, 60033, 60065, 60097, 60129, 60161, 60193, 36949, 60225, 36981, 60257, 37013, 60289, 37045, 37077, 37109, 60321, 60353, 60385, 37141, 37173, 37205, 37237, 60417, 60449, 60449, 60481, 60513, 60545, 60577, 60609, 37269, 60641, 60673, 60705, 60737, 37301, 60769, 37333, 37365, 60801, 60833, 60865, 60897, 60929, 60961, 37397, 37429, 37461, 8256, 60993, 37493, 61025, 61057, 61089, 37525, 61121, 61153, 61185, 61217, 61249, 37557, 61281, 61313, 61345, 61377, 61409, 61441, 37589, 37621, 61473, 37653, 61505, 37685, 61537, 61569, 61601, 37717, 37749, 61633, 37781, 61665, 63265, 63297, 63329, 63361, 63393, 38229, 63425, 63457, 63489, 63521, 63553, 38261, 38293, 63585, 63617, 63649, 63681, 63713, 63745, 38325, 63777, 63809, 63841, 63873, 38357, 38389, 63905, 63937, 63969, 38421, 64001, 64033, 26701, 38453, 64065, 64097, 64129, 38485, 64161, 64193, 64225, 64257, 64289, 64321, 64353, 38517, 64385, 64417, 64449, 38549, 64481, 64513, 64545, 64577, 31597, 38581, 64609, 64641, 64673, 38613, 64705, 38645, 64737, 64737, 64769, 38677, 64801, 64833, 64865, 64897, 64929, 64961, 64993, 38709, 65025, 65057, 65089, 65121, 65153, 65185, 38741, 65217, 38773, 38805, 38837, 65249, 65281, 65313, 65345, 65377, 65409, 65441, 65473, 38869, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64]); - idnaIndex = $toNativeArray($kindUint16, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 126, 2, 3, 4, 5, 6, 127, 128, 7, 129, 8, 9, 10, 130, 11, 12, 13, 14, 131, 132, 133, 15, 16, 134, 17, 18, 135, 136, 137, 2, 3, 4, 5, 6, 7, 7, 7, 7, 8, 9, 7, 7, 10, 11, 12, 30, 31, 31, 33, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 19, 139, 140, 141, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 142, 143, 30, 31, 32, 144, 33, 145, 146, 147, 148, 34, 149, 150, 35, 36, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 160, 160, 160, 160, 160, 160, 160, 160, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 37, 38, 39, 196, 40, 40, 41, 40, 197, 42, 43, 44, 45, 46, 47, 198, 48, 49, 199, 156, 200, 201, 156, 156, 202, 156, 156, 156, 203, 50, 51, 52, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 204, 205, 156, 206, 156, 207, 208, 156, 209, 53, 40, 54, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 55, 56, 221, 222, 223, 224, 57, 58, 225, 226, 59, 60, 61, 62, 63, 64, 65, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 156, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 227, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 228, 229, 160, 160, 160, 160, 230, 66, 67, 231, 68, 69, 70, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 249, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 252, 253, 254, 255, 71, 256, 257, 72, 73, 74, 75, 76, 258, 77, 78, 79, 80, 81, 259, 82, 83, 84, 85, 86, 87, 88, 89, 90, 260, 261, 160, 262, 263, 156, 264, 265, 251, 251, 266, 267, 268, 269, 270, 271, 272, 160, 273, 274, 275, 276, 251, 251, 160, 160, 160, 160, 277, 278, 251, 251, 279, 280, 281, 282, 283, 251, 284, 285, 286, 287, 288, 91, 289, 290, 92, 251, 291, 292, 293, 294, 295, 251, 251, 251, 251, 296, 297, 251, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 251, 311, 312, 93, 94, 251, 251, 313, 314, 315, 316, 251, 251, 317, 318, 319, 320, 321, 322, 323, 251, 251, 251, 324, 251, 325, 326, 95, 327, 328, 329, 330, 331, 332, 333, 251, 251, 251, 251, 334, 335, 336, 251, 337, 338, 339, 251, 251, 251, 251, 340, 251, 251, 341, 342, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 343, 251, 156, 344, 160, 160, 160, 345, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 346, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 160, 160, 160, 160, 160, 160, 160, 160, 160, 347, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 160, 160, 160, 160, 160, 160, 160, 160, 333, 348, 251, 349, 350, 351, 352, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 353, 354, 251, 160, 355, 356, 357, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 358, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 359, 360, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 160, 160, 160, 160, 361, 362, 160, 160, 160, 160, 160, 363, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 160, 364, 365, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 156, 156, 156, 366, 367, 368, 369, 370, 156, 371, 251, 372, 156, 373, 251, 251, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 156, 156, 156, 156, 156, 156, 156, 156, 374, 375, 376, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 377, 251, 251, 251, 378, 379, 251, 251, 251, 251, 251, 380, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 291, 291, 291, 381, 112, 382, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 383, 384, 251, 385, 251, 251, 251, 113, 114, 115, 386, 251, 251, 251, 251, 387, 156, 388, 389, 116, 117, 390, 391, 118, 392, 251, 251, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 393, 156, 394, 156, 395, 396, 397, 398, 251, 156, 399, 156, 400, 156, 401, 402, 403, 156, 156, 404, 405, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 406, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 407, 160, 160, 160, 408, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 409, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 410, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 119, 120, 121, 411, 122, 123, 412, 124, 125, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 413, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 14, 15, 16, 17, 11, 18, 7, 19, 11, 11, 20, 11, 21, 22, 23, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 24, 25, 26, 7, 27, 28, 7, 29, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 414, 415, 251, 251, 416, 416, 416, 417, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 32, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]); - idnaSparseOffset = new sliceType([0, 8, 25, 37, 39, 44, 51, 62, 74, 78, 93, 98, 108, 120, 133, 139, 148, 164, 178, 189, 202, 219, 229, 236, 249, 266, 273, 284, 299, 313, 323, 325, 330, 333, 336, 338, 350, 361, 369, 375, 381, 386, 391, 394, 398, 404, 409, 421, 431, 437, 454, 464, 467, 475, 478, 491, 499, 503, 510, 518, 534, 546, 549, 559, 571, 583, 595, 603, 608, 621, 638, 642, 653, 657, 666, 674, 680, 685, 688, 692, 698, 702, 706, 710, 716, 724, 731, 742, 752, 756, 759, 765, 769, 771, 774, 776, 779, 789, 792, 807, 811, 816, 819, 823, 828, 833, 839, 856, 872, 878, 882, 897, 902, 910, 920, 931, 939, 956, 965, 981, 994, 1006, 1011, 1024, 1028, 1033, 1035, 1037, 1041, 1043, 1047, 1056, 1062, 1066, 1082, 1092, 1097, 1100, 1106, 1113, 1118, 1122, 1128, 1133, 1142, 1147, 1153, 1160, 1167, 1174, 1178, 1183, 1186, 1191, 1203, 1209, 1214, 1221, 1229, 1234, 1238, 1254, 1261, 1265, 1269, 1276, 1278, 1281, 1284, 1288, 1297, 1301, 1309, 1317, 1325, 1337, 1349, 1355, 1364, 1376, 1383, 1392, 1403, 1410, 1425, 1438, 1451, 1460, 1464, 1479, 1487, 1498, 1507, 1513, 1521, 1530, 1541, 1544, 1556, 1565, 1568, 1573, 1582, 1587, 1600, 1611, 1620, 1630, 1633, 1643, 1652, 1664, 1677, 1690, 1704, 1711, 1715, 1719, 1722, 1727, 1730, 1735, 1738, 1745, 1752, 1756, 1767, 1770, 1773, 1776, 1782, 1788, 1797, 1800, 1803, 1806, 1809, 1816, 1819, 1824, 1834, 1837, 1841, 1856, 1868, 1872, 1877, 1881, 1886, 1890, 1895, 1904, 1915, 1921, 1927, 1933, 1939, 1948, 1951, 1954, 1958, 1962, 1966, 1972, 1978, 1983, 1986, 2002, 2009, 2012, 2017, 2021, 2027, 2034, 2038, 2042, 2051, 2058, 2063, 2067, 2081, 2084, 2087, 2091, 2095, 2098, 2114, 2131, 2134, 2139, 2141, 2143]); - idnaSparseValues = $toNativeArray($kindStruct, [$clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(57605, 128, 150), valueRange), $clone(new valueRange.ptr(24, 151, 151), valueRange), $clone(new valueRange.ptr(57605, 152, 158), valueRange), $clone(new valueRange.ptr(31, 159, 159), valueRange), $clone(new valueRange.ptr(8, 160, 182), valueRange), $clone(new valueRange.ptr(24, 183, 183), valueRange), $clone(new valueRange.ptr(8, 184, 191), valueRange), $clone(new valueRange.ptr(0, 16, 0), valueRange), $clone(new valueRange.ptr(8, 128, 128), valueRange), $clone(new valueRange.ptr(57373, 129, 129), valueRange), $clone(new valueRange.ptr(8, 130, 130), valueRange), $clone(new valueRange.ptr(821, 131, 131), valueRange), $clone(new valueRange.ptr(845, 132, 132), valueRange), $clone(new valueRange.ptr(869, 133, 133), valueRange), $clone(new valueRange.ptr(57357, 134, 134), valueRange), $clone(new valueRange.ptr(8, 135, 135), valueRange), $clone(new valueRange.ptr(57357, 136, 136), valueRange), $clone(new valueRange.ptr(8, 137, 137), valueRange), $clone(new valueRange.ptr(57357, 138, 138), valueRange), $clone(new valueRange.ptr(8, 139, 139), valueRange), $clone(new valueRange.ptr(57357, 140, 140), valueRange), $clone(new valueRange.ptr(8, 141, 141), valueRange), $clone(new valueRange.ptr(57357, 142, 142), valueRange), $clone(new valueRange.ptr(8, 143, 191), valueRange), $clone(new valueRange.ptr(0, 11, 0), valueRange), $clone(new valueRange.ptr(8, 128, 175), valueRange), $clone(new valueRange.ptr(585, 176, 176), valueRange), $clone(new valueRange.ptr(893, 177, 177), valueRange), $clone(new valueRange.ptr(601, 178, 178), valueRange), $clone(new valueRange.ptr(617, 179, 179), valueRange), $clone(new valueRange.ptr(845, 180, 180), valueRange), $clone(new valueRange.ptr(917, 181, 181), valueRange), $clone(new valueRange.ptr(57789, 182, 182), valueRange), $clone(new valueRange.ptr(633, 183, 183), valueRange), $clone(new valueRange.ptr(649, 184, 184), valueRange), $clone(new valueRange.ptr(8, 185, 191), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(1013, 128, 143), valueRange), $clone(new valueRange.ptr(57605, 144, 159), valueRange), $clone(new valueRange.ptr(1181, 160, 175), valueRange), $clone(new valueRange.ptr(8, 176, 191), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(57733, 128, 143), valueRange), $clone(new valueRange.ptr(1349, 144, 150), valueRange), $clone(new valueRange.ptr(64, 151, 152), valueRange), $clone(new valueRange.ptr(8, 153, 153), valueRange), $clone(new valueRange.ptr(24, 154, 159), valueRange), $clone(new valueRange.ptr(8, 160, 191), valueRange), $clone(new valueRange.ptr(0, 10, 0), valueRange), $clone(new valueRange.ptr(8, 128, 134), valueRange), $clone(new valueRange.ptr(1025, 135, 135), valueRange), $clone(new valueRange.ptr(8, 136, 136), valueRange), $clone(new valueRange.ptr(24, 137, 138), valueRange), $clone(new valueRange.ptr(64, 139, 140), valueRange), $clone(new valueRange.ptr(24, 141, 143), valueRange), $clone(new valueRange.ptr(64, 144, 144), valueRange), $clone(new valueRange.ptr(13064, 145, 189), valueRange), $clone(new valueRange.ptr(2072, 190, 190), valueRange), $clone(new valueRange.ptr(13064, 191, 191), valueRange), $clone(new valueRange.ptr(0, 11, 0), valueRange), $clone(new valueRange.ptr(2072, 128, 128), valueRange), $clone(new valueRange.ptr(13064, 129, 130), valueRange), $clone(new valueRange.ptr(2072, 131, 131), valueRange), $clone(new valueRange.ptr(13064, 132, 133), valueRange), $clone(new valueRange.ptr(2072, 134, 134), valueRange), $clone(new valueRange.ptr(13064, 135, 135), valueRange), $clone(new valueRange.ptr(64, 136, 143), valueRange), $clone(new valueRange.ptr(2056, 144, 170), valueRange), $clone(new valueRange.ptr(64, 171, 174), valueRange), $clone(new valueRange.ptr(2056, 175, 180), valueRange), $clone(new valueRange.ptr(64, 181, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(2568, 128, 135), valueRange), $clone(new valueRange.ptr(3080, 136, 153), valueRange), $clone(new valueRange.ptr(2568, 154, 191), valueRange), $clone(new valueRange.ptr(0, 14, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 138), valueRange), $clone(new valueRange.ptr(64, 139, 140), valueRange), $clone(new valueRange.ptr(3080, 141, 141), valueRange), $clone(new valueRange.ptr(2568, 142, 152), valueRange), $clone(new valueRange.ptr(3080, 153, 155), valueRange), $clone(new valueRange.ptr(2568, 156, 170), valueRange), $clone(new valueRange.ptr(3080, 171, 172), valueRange), $clone(new valueRange.ptr(2568, 173, 176), valueRange), $clone(new valueRange.ptr(3080, 177, 177), valueRange), $clone(new valueRange.ptr(2568, 178, 178), valueRange), $clone(new valueRange.ptr(3080, 179, 180), valueRange), $clone(new valueRange.ptr(2568, 181, 183), valueRange), $clone(new valueRange.ptr(3080, 184, 185), valueRange), $clone(new valueRange.ptr(2568, 186, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(2056, 128, 165), valueRange), $clone(new valueRange.ptr(13064, 166, 176), valueRange), $clone(new valueRange.ptr(2056, 177, 177), valueRange), $clone(new valueRange.ptr(64, 178, 191), valueRange), $clone(new valueRange.ptr(0, 9, 0), valueRange), $clone(new valueRange.ptr(2056, 128, 137), valueRange), $clone(new valueRange.ptr(2568, 138, 170), valueRange), $clone(new valueRange.ptr(13064, 171, 179), valueRange), $clone(new valueRange.ptr(2056, 180, 181), valueRange), $clone(new valueRange.ptr(24, 182, 185), valueRange), $clone(new valueRange.ptr(2072, 186, 186), valueRange), $clone(new valueRange.ptr(64, 187, 188), valueRange), $clone(new valueRange.ptr(13064, 189, 189), valueRange), $clone(new valueRange.ptr(2072, 190, 191), valueRange), $clone(new valueRange.ptr(0, 11, 0), valueRange), $clone(new valueRange.ptr(2056, 128, 149), valueRange), $clone(new valueRange.ptr(13064, 150, 153), valueRange), $clone(new valueRange.ptr(2056, 154, 154), valueRange), $clone(new valueRange.ptr(13064, 155, 163), valueRange), $clone(new valueRange.ptr(2056, 164, 164), valueRange), $clone(new valueRange.ptr(13064, 165, 167), valueRange), $clone(new valueRange.ptr(2056, 168, 168), valueRange), $clone(new valueRange.ptr(13064, 169, 173), valueRange), $clone(new valueRange.ptr(64, 174, 175), valueRange), $clone(new valueRange.ptr(2072, 176, 190), valueRange), $clone(new valueRange.ptr(64, 191, 191), valueRange), $clone(new valueRange.ptr(0, 12, 0), valueRange), $clone(new valueRange.ptr(64, 128, 159), valueRange), $clone(new valueRange.ptr(2568, 160, 169), valueRange), $clone(new valueRange.ptr(3080, 170, 172), valueRange), $clone(new valueRange.ptr(2056, 173, 173), valueRange), $clone(new valueRange.ptr(3080, 174, 174), valueRange), $clone(new valueRange.ptr(2568, 175, 176), valueRange), $clone(new valueRange.ptr(3080, 177, 178), valueRange), $clone(new valueRange.ptr(2568, 179, 180), valueRange), $clone(new valueRange.ptr(64, 181, 181), valueRange), $clone(new valueRange.ptr(2568, 182, 184), valueRange), $clone(new valueRange.ptr(3080, 185, 185), valueRange), $clone(new valueRange.ptr(2568, 186, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(2568, 128, 135), valueRange), $clone(new valueRange.ptr(64, 136, 146), valueRange), $clone(new valueRange.ptr(13064, 147, 161), valueRange), $clone(new valueRange.ptr(2112, 162, 162), valueRange), $clone(new valueRange.ptr(13064, 163, 191), valueRange), $clone(new valueRange.ptr(0, 8, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 130), valueRange), $clone(new valueRange.ptr(12296, 131, 131), valueRange), $clone(new valueRange.ptr(8, 132, 185), valueRange), $clone(new valueRange.ptr(13064, 186, 186), valueRange), $clone(new valueRange.ptr(12296, 187, 187), valueRange), $clone(new valueRange.ptr(13064, 188, 188), valueRange), $clone(new valueRange.ptr(8, 189, 189), valueRange), $clone(new valueRange.ptr(12296, 190, 191), valueRange), $clone(new valueRange.ptr(0, 15, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 128), valueRange), $clone(new valueRange.ptr(12296, 129, 130), valueRange), $clone(new valueRange.ptr(64, 131, 133), valueRange), $clone(new valueRange.ptr(12296, 134, 136), valueRange), $clone(new valueRange.ptr(64, 137, 137), valueRange), $clone(new valueRange.ptr(12296, 138, 140), valueRange), $clone(new valueRange.ptr(15112, 141, 141), valueRange), $clone(new valueRange.ptr(64, 142, 143), valueRange), $clone(new valueRange.ptr(8, 144, 144), valueRange), $clone(new valueRange.ptr(64, 145, 150), valueRange), $clone(new valueRange.ptr(12296, 151, 151), valueRange), $clone(new valueRange.ptr(64, 152, 165), valueRange), $clone(new valueRange.ptr(8, 166, 175), valueRange), $clone(new valueRange.ptr(24, 176, 186), valueRange), $clone(new valueRange.ptr(64, 187, 191), valueRange), $clone(new valueRange.ptr(0, 13, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 128), valueRange), $clone(new valueRange.ptr(12296, 129, 131), valueRange), $clone(new valueRange.ptr(13064, 132, 132), valueRange), $clone(new valueRange.ptr(8, 133, 140), valueRange), $clone(new valueRange.ptr(64, 141, 141), valueRange), $clone(new valueRange.ptr(8, 142, 144), valueRange), $clone(new valueRange.ptr(64, 145, 145), valueRange), $clone(new valueRange.ptr(8, 146, 168), valueRange), $clone(new valueRange.ptr(64, 169, 169), valueRange), $clone(new valueRange.ptr(8, 170, 185), valueRange), $clone(new valueRange.ptr(64, 186, 188), valueRange), $clone(new valueRange.ptr(8, 189, 189), valueRange), $clone(new valueRange.ptr(13064, 190, 191), valueRange), $clone(new valueRange.ptr(0, 10, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 129), valueRange), $clone(new valueRange.ptr(12296, 130, 131), valueRange), $clone(new valueRange.ptr(8, 132, 140), valueRange), $clone(new valueRange.ptr(64, 141, 141), valueRange), $clone(new valueRange.ptr(8, 142, 144), valueRange), $clone(new valueRange.ptr(64, 145, 145), valueRange), $clone(new valueRange.ptr(8, 146, 186), valueRange), $clone(new valueRange.ptr(15112, 187, 188), valueRange), $clone(new valueRange.ptr(8, 189, 189), valueRange), $clone(new valueRange.ptr(12296, 190, 191), valueRange), $clone(new valueRange.ptr(0, 12, 0), valueRange), $clone(new valueRange.ptr(64, 128, 128), valueRange), $clone(new valueRange.ptr(13064, 129, 129), valueRange), $clone(new valueRange.ptr(12296, 130, 131), valueRange), $clone(new valueRange.ptr(64, 132, 132), valueRange), $clone(new valueRange.ptr(8, 133, 150), valueRange), $clone(new valueRange.ptr(64, 151, 153), valueRange), $clone(new valueRange.ptr(8, 154, 177), valueRange), $clone(new valueRange.ptr(64, 178, 178), valueRange), $clone(new valueRange.ptr(8, 179, 187), valueRange), $clone(new valueRange.ptr(64, 188, 188), valueRange), $clone(new valueRange.ptr(8, 189, 189), valueRange), $clone(new valueRange.ptr(64, 190, 191), valueRange), $clone(new valueRange.ptr(0, 16, 0), valueRange), $clone(new valueRange.ptr(8, 128, 134), valueRange), $clone(new valueRange.ptr(64, 135, 137), valueRange), $clone(new valueRange.ptr(15112, 138, 138), valueRange), $clone(new valueRange.ptr(64, 139, 142), valueRange), $clone(new valueRange.ptr(12296, 143, 145), valueRange), $clone(new valueRange.ptr(13064, 146, 148), valueRange), $clone(new valueRange.ptr(64, 149, 149), valueRange), $clone(new valueRange.ptr(13064, 150, 150), valueRange), $clone(new valueRange.ptr(64, 151, 151), valueRange), $clone(new valueRange.ptr(12296, 152, 159), valueRange), $clone(new valueRange.ptr(64, 160, 165), valueRange), $clone(new valueRange.ptr(8, 166, 175), valueRange), $clone(new valueRange.ptr(64, 176, 177), valueRange), $clone(new valueRange.ptr(12296, 178, 179), valueRange), $clone(new valueRange.ptr(24, 180, 180), valueRange), $clone(new valueRange.ptr(64, 181, 191), valueRange), $clone(new valueRange.ptr(0, 9, 0), valueRange), $clone(new valueRange.ptr(64, 128, 128), valueRange), $clone(new valueRange.ptr(8, 129, 176), valueRange), $clone(new valueRange.ptr(13064, 177, 177), valueRange), $clone(new valueRange.ptr(8, 178, 178), valueRange), $clone(new valueRange.ptr(2289, 179, 179), valueRange), $clone(new valueRange.ptr(13064, 180, 185), valueRange), $clone(new valueRange.ptr(15112, 186, 186), valueRange), $clone(new valueRange.ptr(64, 187, 190), valueRange), $clone(new valueRange.ptr(24, 191, 191), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(8, 128, 134), valueRange), $clone(new valueRange.ptr(13064, 135, 142), valueRange), $clone(new valueRange.ptr(24, 143, 143), valueRange), $clone(new valueRange.ptr(8, 144, 153), valueRange), $clone(new valueRange.ptr(24, 154, 155), valueRange), $clone(new valueRange.ptr(64, 156, 191), valueRange), $clone(new valueRange.ptr(0, 12, 0), valueRange), $clone(new valueRange.ptr(8, 128, 132), valueRange), $clone(new valueRange.ptr(64, 133, 133), valueRange), $clone(new valueRange.ptr(8, 134, 134), valueRange), $clone(new valueRange.ptr(64, 135, 135), valueRange), $clone(new valueRange.ptr(13064, 136, 141), valueRange), $clone(new valueRange.ptr(64, 142, 143), valueRange), $clone(new valueRange.ptr(8, 144, 153), valueRange), $clone(new valueRange.ptr(64, 154, 155), valueRange), $clone(new valueRange.ptr(2401, 156, 156), valueRange), $clone(new valueRange.ptr(2457, 157, 157), valueRange), $clone(new valueRange.ptr(8, 158, 159), valueRange), $clone(new valueRange.ptr(64, 160, 191), valueRange), $clone(new valueRange.ptr(0, 16, 0), valueRange), $clone(new valueRange.ptr(8, 128, 128), valueRange), $clone(new valueRange.ptr(24, 129, 138), valueRange), $clone(new valueRange.ptr(8, 139, 139), valueRange), $clone(new valueRange.ptr(57405, 140, 140), valueRange), $clone(new valueRange.ptr(24, 141, 151), valueRange), $clone(new valueRange.ptr(13064, 152, 153), valueRange), $clone(new valueRange.ptr(24, 154, 159), valueRange), $clone(new valueRange.ptr(8, 160, 169), valueRange), $clone(new valueRange.ptr(24, 170, 180), valueRange), $clone(new valueRange.ptr(13064, 181, 181), valueRange), $clone(new valueRange.ptr(24, 182, 182), valueRange), $clone(new valueRange.ptr(13064, 183, 183), valueRange), $clone(new valueRange.ptr(24, 184, 184), valueRange), $clone(new valueRange.ptr(13064, 185, 185), valueRange), $clone(new valueRange.ptr(24, 186, 189), valueRange), $clone(new valueRange.ptr(12296, 190, 191), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(24, 128, 133), valueRange), $clone(new valueRange.ptr(13064, 134, 134), valueRange), $clone(new valueRange.ptr(24, 135, 140), valueRange), $clone(new valueRange.ptr(64, 141, 141), valueRange), $clone(new valueRange.ptr(24, 142, 154), valueRange), $clone(new valueRange.ptr(64, 155, 191), valueRange), $clone(new valueRange.ptr(0, 10, 0), valueRange), $clone(new valueRange.ptr(8, 128, 170), valueRange), $clone(new valueRange.ptr(12296, 171, 172), valueRange), $clone(new valueRange.ptr(13064, 173, 176), valueRange), $clone(new valueRange.ptr(12296, 177, 177), valueRange), $clone(new valueRange.ptr(13064, 178, 183), valueRange), $clone(new valueRange.ptr(12296, 184, 184), valueRange), $clone(new valueRange.ptr(15112, 185, 186), valueRange), $clone(new valueRange.ptr(12296, 187, 188), valueRange), $clone(new valueRange.ptr(13064, 189, 190), valueRange), $clone(new valueRange.ptr(8, 191, 191), valueRange), $clone(new valueRange.ptr(0, 14, 0), valueRange), $clone(new valueRange.ptr(8, 128, 137), valueRange), $clone(new valueRange.ptr(24, 138, 143), valueRange), $clone(new valueRange.ptr(8, 144, 149), valueRange), $clone(new valueRange.ptr(12296, 150, 151), valueRange), $clone(new valueRange.ptr(13064, 152, 153), valueRange), $clone(new valueRange.ptr(8, 154, 157), valueRange), $clone(new valueRange.ptr(13064, 158, 160), valueRange), $clone(new valueRange.ptr(8, 161, 161), valueRange), $clone(new valueRange.ptr(12296, 162, 164), valueRange), $clone(new valueRange.ptr(8, 165, 166), valueRange), $clone(new valueRange.ptr(12296, 167, 173), valueRange), $clone(new valueRange.ptr(8, 174, 176), valueRange), $clone(new valueRange.ptr(13064, 177, 180), valueRange), $clone(new valueRange.ptr(8, 181, 191), valueRange), $clone(new valueRange.ptr(0, 13, 0), valueRange), $clone(new valueRange.ptr(8, 128, 129), valueRange), $clone(new valueRange.ptr(13064, 130, 130), valueRange), $clone(new valueRange.ptr(12296, 131, 132), valueRange), $clone(new valueRange.ptr(13064, 133, 134), valueRange), $clone(new valueRange.ptr(12296, 135, 140), valueRange), $clone(new valueRange.ptr(13064, 141, 141), valueRange), $clone(new valueRange.ptr(8, 142, 142), valueRange), $clone(new valueRange.ptr(12296, 143, 143), valueRange), $clone(new valueRange.ptr(8, 144, 153), valueRange), $clone(new valueRange.ptr(12296, 154, 156), valueRange), $clone(new valueRange.ptr(13064, 157, 157), valueRange), $clone(new valueRange.ptr(24, 158, 159), valueRange), $clone(new valueRange.ptr(64, 160, 191), valueRange), $clone(new valueRange.ptr(0, 9, 0), valueRange), $clone(new valueRange.ptr(64, 128, 134), valueRange), $clone(new valueRange.ptr(1373, 135, 135), valueRange), $clone(new valueRange.ptr(64, 136, 140), valueRange), $clone(new valueRange.ptr(1373, 141, 141), valueRange), $clone(new valueRange.ptr(64, 142, 143), valueRange), $clone(new valueRange.ptr(8, 144, 186), valueRange), $clone(new valueRange.ptr(24, 187, 187), valueRange), $clone(new valueRange.ptr(57605, 188, 188), valueRange), $clone(new valueRange.ptr(8, 189, 191), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(24, 128, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(24, 128, 158), valueRange), $clone(new valueRange.ptr(64, 159, 160), valueRange), $clone(new valueRange.ptr(8216, 161, 181), valueRange), $clone(new valueRange.ptr(24, 182, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(24, 128, 167), valueRange), $clone(new valueRange.ptr(8216, 168, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(8216, 128, 130), valueRange), $clone(new valueRange.ptr(24, 131, 191), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(8, 128, 191), valueRange), $clone(new valueRange.ptr(0, 11, 0), valueRange), $clone(new valueRange.ptr(8, 128, 136), valueRange), $clone(new valueRange.ptr(64, 137, 137), valueRange), $clone(new valueRange.ptr(8, 138, 141), valueRange), $clone(new valueRange.ptr(64, 142, 143), valueRange), $clone(new valueRange.ptr(8, 144, 150), valueRange), $clone(new valueRange.ptr(64, 151, 151), valueRange), $clone(new valueRange.ptr(8, 152, 152), valueRange), $clone(new valueRange.ptr(64, 153, 153), valueRange), $clone(new valueRange.ptr(8, 154, 157), valueRange), $clone(new valueRange.ptr(64, 158, 159), valueRange), $clone(new valueRange.ptr(8, 160, 191), valueRange), $clone(new valueRange.ptr(0, 10, 0), valueRange), $clone(new valueRange.ptr(8, 128, 136), valueRange), $clone(new valueRange.ptr(64, 137, 137), valueRange), $clone(new valueRange.ptr(8, 138, 141), valueRange), $clone(new valueRange.ptr(64, 142, 143), valueRange), $clone(new valueRange.ptr(8, 144, 176), valueRange), $clone(new valueRange.ptr(64, 177, 177), valueRange), $clone(new valueRange.ptr(8, 178, 181), valueRange), $clone(new valueRange.ptr(64, 182, 183), valueRange), $clone(new valueRange.ptr(8, 184, 190), valueRange), $clone(new valueRange.ptr(64, 191, 191), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(8, 128, 128), valueRange), $clone(new valueRange.ptr(64, 129, 129), valueRange), $clone(new valueRange.ptr(8, 130, 133), valueRange), $clone(new valueRange.ptr(64, 134, 135), valueRange), $clone(new valueRange.ptr(8, 136, 150), valueRange), $clone(new valueRange.ptr(64, 151, 151), valueRange), $clone(new valueRange.ptr(8, 152, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(8, 128, 144), valueRange), $clone(new valueRange.ptr(64, 145, 145), valueRange), $clone(new valueRange.ptr(8, 146, 149), valueRange), $clone(new valueRange.ptr(64, 150, 151), valueRange), $clone(new valueRange.ptr(8, 152, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(8, 128, 154), valueRange), $clone(new valueRange.ptr(64, 155, 156), valueRange), $clone(new valueRange.ptr(13064, 157, 159), valueRange), $clone(new valueRange.ptr(24, 160, 188), valueRange), $clone(new valueRange.ptr(64, 189, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(8, 128, 143), valueRange), $clone(new valueRange.ptr(24, 144, 153), valueRange), $clone(new valueRange.ptr(64, 154, 159), valueRange), $clone(new valueRange.ptr(8, 160, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(8, 128, 181), valueRange), $clone(new valueRange.ptr(64, 182, 183), valueRange), $clone(new valueRange.ptr(57413, 184, 189), valueRange), $clone(new valueRange.ptr(64, 190, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(24, 128, 128), valueRange), $clone(new valueRange.ptr(8, 129, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(8, 128, 172), valueRange), $clone(new valueRange.ptr(24, 173, 174), valueRange), $clone(new valueRange.ptr(8, 175, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(64, 128, 128), valueRange), $clone(new valueRange.ptr(8, 129, 154), valueRange), $clone(new valueRange.ptr(24, 155, 156), valueRange), $clone(new valueRange.ptr(64, 157, 159), valueRange), $clone(new valueRange.ptr(8, 160, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(8, 128, 170), valueRange), $clone(new valueRange.ptr(24, 171, 176), valueRange), $clone(new valueRange.ptr(8, 177, 184), valueRange), $clone(new valueRange.ptr(64, 185, 191), valueRange), $clone(new valueRange.ptr(0, 11, 0), valueRange), $clone(new valueRange.ptr(8, 128, 140), valueRange), $clone(new valueRange.ptr(64, 141, 141), valueRange), $clone(new valueRange.ptr(8, 142, 145), valueRange), $clone(new valueRange.ptr(13064, 146, 147), valueRange), $clone(new valueRange.ptr(15112, 148, 148), valueRange), $clone(new valueRange.ptr(64, 149, 159), valueRange), $clone(new valueRange.ptr(8, 160, 177), valueRange), $clone(new valueRange.ptr(13064, 178, 179), valueRange), $clone(new valueRange.ptr(15112, 180, 180), valueRange), $clone(new valueRange.ptr(24, 181, 182), valueRange), $clone(new valueRange.ptr(64, 183, 191), valueRange), $clone(new valueRange.ptr(0, 9, 0), valueRange), $clone(new valueRange.ptr(8, 128, 145), valueRange), $clone(new valueRange.ptr(13064, 146, 147), valueRange), $clone(new valueRange.ptr(64, 148, 159), valueRange), $clone(new valueRange.ptr(8, 160, 172), valueRange), $clone(new valueRange.ptr(64, 173, 173), valueRange), $clone(new valueRange.ptr(8, 174, 176), valueRange), $clone(new valueRange.ptr(64, 177, 177), valueRange), $clone(new valueRange.ptr(13064, 178, 179), valueRange), $clone(new valueRange.ptr(64, 180, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(8, 128, 179), valueRange), $clone(new valueRange.ptr(13120, 180, 181), valueRange), $clone(new valueRange.ptr(12296, 182, 182), valueRange), $clone(new valueRange.ptr(13064, 183, 189), valueRange), $clone(new valueRange.ptr(12296, 190, 191), valueRange), $clone(new valueRange.ptr(0, 16, 0), valueRange), $clone(new valueRange.ptr(12296, 128, 133), valueRange), $clone(new valueRange.ptr(13064, 134, 134), valueRange), $clone(new valueRange.ptr(12296, 135, 136), valueRange), $clone(new valueRange.ptr(13064, 137, 145), valueRange), $clone(new valueRange.ptr(15112, 146, 146), valueRange), $clone(new valueRange.ptr(13064, 147, 147), valueRange), $clone(new valueRange.ptr(24, 148, 150), valueRange), $clone(new valueRange.ptr(8, 151, 151), valueRange), $clone(new valueRange.ptr(24, 152, 155), valueRange), $clone(new valueRange.ptr(8, 156, 156), valueRange), $clone(new valueRange.ptr(13064, 157, 157), valueRange), $clone(new valueRange.ptr(64, 158, 159), valueRange), $clone(new valueRange.ptr(8, 160, 169), valueRange), $clone(new valueRange.ptr(64, 170, 175), valueRange), $clone(new valueRange.ptr(24, 176, 185), valueRange), $clone(new valueRange.ptr(64, 186, 191), valueRange), $clone(new valueRange.ptr(0, 9, 0), valueRange), $clone(new valueRange.ptr(24, 128, 133), valueRange), $clone(new valueRange.ptr(64, 134, 134), valueRange), $clone(new valueRange.ptr(536, 135, 135), valueRange), $clone(new valueRange.ptr(24, 136, 138), valueRange), $clone(new valueRange.ptr(13248, 139, 141), valueRange), $clone(new valueRange.ptr(64, 142, 143), valueRange), $clone(new valueRange.ptr(8, 144, 153), valueRange), $clone(new valueRange.ptr(64, 154, 159), valueRange), $clone(new valueRange.ptr(520, 160, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(520, 128, 184), valueRange), $clone(new valueRange.ptr(64, 185, 191), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(8, 128, 132), valueRange), $clone(new valueRange.ptr(13064, 133, 134), valueRange), $clone(new valueRange.ptr(520, 135, 168), valueRange), $clone(new valueRange.ptr(13064, 169, 169), valueRange), $clone(new valueRange.ptr(520, 170, 170), valueRange), $clone(new valueRange.ptr(64, 171, 175), valueRange), $clone(new valueRange.ptr(8, 176, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(8, 128, 181), valueRange), $clone(new valueRange.ptr(64, 182, 191), valueRange), $clone(new valueRange.ptr(0, 12, 0), valueRange), $clone(new valueRange.ptr(8, 128, 158), valueRange), $clone(new valueRange.ptr(64, 159, 159), valueRange), $clone(new valueRange.ptr(13064, 160, 162), valueRange), $clone(new valueRange.ptr(12296, 163, 166), valueRange), $clone(new valueRange.ptr(13064, 167, 168), valueRange), $clone(new valueRange.ptr(12296, 169, 171), valueRange), $clone(new valueRange.ptr(64, 172, 175), valueRange), $clone(new valueRange.ptr(12296, 176, 177), valueRange), $clone(new valueRange.ptr(13064, 178, 178), valueRange), $clone(new valueRange.ptr(12296, 179, 184), valueRange), $clone(new valueRange.ptr(13064, 185, 187), valueRange), $clone(new valueRange.ptr(64, 188, 191), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(24, 128, 128), valueRange), $clone(new valueRange.ptr(64, 129, 131), valueRange), $clone(new valueRange.ptr(24, 132, 133), valueRange), $clone(new valueRange.ptr(8, 134, 173), valueRange), $clone(new valueRange.ptr(64, 174, 175), valueRange), $clone(new valueRange.ptr(8, 176, 180), valueRange), $clone(new valueRange.ptr(64, 181, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(8, 128, 171), valueRange), $clone(new valueRange.ptr(64, 172, 175), valueRange), $clone(new valueRange.ptr(8, 176, 191), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(8, 128, 137), valueRange), $clone(new valueRange.ptr(64, 138, 143), valueRange), $clone(new valueRange.ptr(8, 144, 153), valueRange), $clone(new valueRange.ptr(40, 154, 154), valueRange), $clone(new valueRange.ptr(64, 155, 157), valueRange), $clone(new valueRange.ptr(24, 158, 191), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(8, 128, 150), valueRange), $clone(new valueRange.ptr(13064, 151, 152), valueRange), $clone(new valueRange.ptr(12296, 153, 154), valueRange), $clone(new valueRange.ptr(13064, 155, 155), valueRange), $clone(new valueRange.ptr(64, 156, 157), valueRange), $clone(new valueRange.ptr(24, 158, 159), valueRange), $clone(new valueRange.ptr(8, 160, 191), valueRange), $clone(new valueRange.ptr(0, 15, 0), valueRange), $clone(new valueRange.ptr(8, 128, 148), valueRange), $clone(new valueRange.ptr(12296, 149, 149), valueRange), $clone(new valueRange.ptr(13064, 150, 150), valueRange), $clone(new valueRange.ptr(12296, 151, 151), valueRange), $clone(new valueRange.ptr(13064, 152, 158), valueRange), $clone(new valueRange.ptr(64, 159, 159), valueRange), $clone(new valueRange.ptr(15112, 160, 160), valueRange), $clone(new valueRange.ptr(12296, 161, 161), valueRange), $clone(new valueRange.ptr(13064, 162, 162), valueRange), $clone(new valueRange.ptr(12296, 163, 164), valueRange), $clone(new valueRange.ptr(13064, 165, 172), valueRange), $clone(new valueRange.ptr(12296, 173, 178), valueRange), $clone(new valueRange.ptr(13064, 179, 188), valueRange), $clone(new valueRange.ptr(64, 189, 190), valueRange), $clone(new valueRange.ptr(13064, 191, 191), valueRange), $clone(new valueRange.ptr(0, 11, 0), valueRange), $clone(new valueRange.ptr(8, 128, 137), valueRange), $clone(new valueRange.ptr(64, 138, 143), valueRange), $clone(new valueRange.ptr(8, 144, 153), valueRange), $clone(new valueRange.ptr(64, 154, 159), valueRange), $clone(new valueRange.ptr(24, 160, 166), valueRange), $clone(new valueRange.ptr(8, 167, 167), valueRange), $clone(new valueRange.ptr(24, 168, 173), valueRange), $clone(new valueRange.ptr(64, 174, 175), valueRange), $clone(new valueRange.ptr(13064, 176, 189), valueRange), $clone(new valueRange.ptr(13080, 190, 190), valueRange), $clone(new valueRange.ptr(13064, 191, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 128), valueRange), $clone(new valueRange.ptr(64, 129, 191), valueRange), $clone(new valueRange.ptr(0, 9, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 131), valueRange), $clone(new valueRange.ptr(12296, 132, 132), valueRange), $clone(new valueRange.ptr(8, 133, 179), valueRange), $clone(new valueRange.ptr(13064, 180, 180), valueRange), $clone(new valueRange.ptr(12296, 181, 181), valueRange), $clone(new valueRange.ptr(13064, 182, 186), valueRange), $clone(new valueRange.ptr(12296, 187, 187), valueRange), $clone(new valueRange.ptr(13064, 188, 188), valueRange), $clone(new valueRange.ptr(12296, 189, 191), valueRange), $clone(new valueRange.ptr(0, 11, 0), valueRange), $clone(new valueRange.ptr(12296, 128, 129), valueRange), $clone(new valueRange.ptr(13064, 130, 130), valueRange), $clone(new valueRange.ptr(12296, 131, 131), valueRange), $clone(new valueRange.ptr(14344, 132, 132), valueRange), $clone(new valueRange.ptr(8, 133, 139), valueRange), $clone(new valueRange.ptr(64, 140, 143), valueRange), $clone(new valueRange.ptr(8, 144, 153), valueRange), $clone(new valueRange.ptr(24, 154, 170), valueRange), $clone(new valueRange.ptr(13064, 171, 179), valueRange), $clone(new valueRange.ptr(24, 180, 188), valueRange), $clone(new valueRange.ptr(64, 189, 191), valueRange), $clone(new valueRange.ptr(0, 11, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 129), valueRange), $clone(new valueRange.ptr(12296, 130, 130), valueRange), $clone(new valueRange.ptr(8, 131, 160), valueRange), $clone(new valueRange.ptr(12296, 161, 161), valueRange), $clone(new valueRange.ptr(13064, 162, 165), valueRange), $clone(new valueRange.ptr(12296, 166, 167), valueRange), $clone(new valueRange.ptr(13064, 168, 169), valueRange), $clone(new valueRange.ptr(14344, 170, 170), valueRange), $clone(new valueRange.ptr(15112, 171, 171), valueRange), $clone(new valueRange.ptr(13064, 172, 173), valueRange), $clone(new valueRange.ptr(8, 174, 191), valueRange), $clone(new valueRange.ptr(0, 11, 0), valueRange), $clone(new valueRange.ptr(8, 128, 165), valueRange), $clone(new valueRange.ptr(13064, 166, 166), valueRange), $clone(new valueRange.ptr(12296, 167, 167), valueRange), $clone(new valueRange.ptr(13064, 168, 169), valueRange), $clone(new valueRange.ptr(12296, 170, 172), valueRange), $clone(new valueRange.ptr(13064, 173, 173), valueRange), $clone(new valueRange.ptr(12296, 174, 174), valueRange), $clone(new valueRange.ptr(13064, 175, 177), valueRange), $clone(new valueRange.ptr(14344, 178, 179), valueRange), $clone(new valueRange.ptr(64, 180, 187), valueRange), $clone(new valueRange.ptr(24, 188, 191), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(8, 128, 163), valueRange), $clone(new valueRange.ptr(12296, 164, 171), valueRange), $clone(new valueRange.ptr(13064, 172, 179), valueRange), $clone(new valueRange.ptr(12296, 180, 181), valueRange), $clone(new valueRange.ptr(13064, 182, 183), valueRange), $clone(new valueRange.ptr(64, 184, 186), valueRange), $clone(new valueRange.ptr(24, 187, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(8, 128, 137), valueRange), $clone(new valueRange.ptr(64, 138, 140), valueRange), $clone(new valueRange.ptr(8, 141, 189), valueRange), $clone(new valueRange.ptr(24, 190, 191), valueRange), $clone(new valueRange.ptr(0, 12, 0), valueRange), $clone(new valueRange.ptr(3625, 128, 128), valueRange), $clone(new valueRange.ptr(3649, 129, 129), valueRange), $clone(new valueRange.ptr(3673, 130, 130), valueRange), $clone(new valueRange.ptr(3697, 131, 131), valueRange), $clone(new valueRange.ptr(3721, 132, 133), valueRange), $clone(new valueRange.ptr(3745, 134, 134), valueRange), $clone(new valueRange.ptr(3769, 135, 135), valueRange), $clone(new valueRange.ptr(1405, 136, 136), valueRange), $clone(new valueRange.ptr(64, 137, 143), valueRange), $clone(new valueRange.ptr(1437, 144, 186), valueRange), $clone(new valueRange.ptr(64, 187, 188), valueRange), $clone(new valueRange.ptr(1437, 189, 191), valueRange), $clone(new valueRange.ptr(0, 16, 0), valueRange), $clone(new valueRange.ptr(24, 128, 135), valueRange), $clone(new valueRange.ptr(64, 136, 143), valueRange), $clone(new valueRange.ptr(13064, 144, 146), valueRange), $clone(new valueRange.ptr(24, 147, 147), valueRange), $clone(new valueRange.ptr(13064, 148, 160), valueRange), $clone(new valueRange.ptr(12296, 161, 161), valueRange), $clone(new valueRange.ptr(13064, 162, 168), valueRange), $clone(new valueRange.ptr(8, 169, 172), valueRange), $clone(new valueRange.ptr(13064, 173, 173), valueRange), $clone(new valueRange.ptr(8, 174, 179), valueRange), $clone(new valueRange.ptr(13064, 180, 180), valueRange), $clone(new valueRange.ptr(8, 181, 182), valueRange), $clone(new valueRange.ptr(12296, 183, 183), valueRange), $clone(new valueRange.ptr(13064, 184, 185), valueRange), $clone(new valueRange.ptr(8, 186, 186), valueRange), $clone(new valueRange.ptr(64, 187, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 185), valueRange), $clone(new valueRange.ptr(64, 186, 186), valueRange), $clone(new valueRange.ptr(13064, 187, 191), valueRange), $clone(new valueRange.ptr(0, 10, 0), valueRange), $clone(new valueRange.ptr(8, 128, 135), valueRange), $clone(new valueRange.ptr(57413, 136, 143), valueRange), $clone(new valueRange.ptr(8, 144, 149), valueRange), $clone(new valueRange.ptr(64, 150, 151), valueRange), $clone(new valueRange.ptr(57413, 152, 157), valueRange), $clone(new valueRange.ptr(64, 158, 159), valueRange), $clone(new valueRange.ptr(8, 160, 167), valueRange), $clone(new valueRange.ptr(57413, 168, 175), valueRange), $clone(new valueRange.ptr(8, 176, 183), valueRange), $clone(new valueRange.ptr(57413, 184, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(64, 128, 143), valueRange), $clone(new valueRange.ptr(13080, 144, 176), valueRange), $clone(new valueRange.ptr(64, 177, 191), valueRange), $clone(new valueRange.ptr(0, 8, 0), valueRange), $clone(new valueRange.ptr(24, 128, 130), valueRange), $clone(new valueRange.ptr(64, 131, 131), valueRange), $clone(new valueRange.ptr(8, 132, 132), valueRange), $clone(new valueRange.ptr(24, 133, 136), valueRange), $clone(new valueRange.ptr(9409, 137, 137), valueRange), $clone(new valueRange.ptr(24, 138, 139), valueRange), $clone(new valueRange.ptr(64, 140, 143), valueRange), $clone(new valueRange.ptr(24, 144, 191), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(24, 128, 171), valueRange), $clone(new valueRange.ptr(9457, 172, 172), valueRange), $clone(new valueRange.ptr(9513, 173, 173), valueRange), $clone(new valueRange.ptr(24, 174, 174), valueRange), $clone(new valueRange.ptr(9593, 175, 175), valueRange), $clone(new valueRange.ptr(9649, 176, 176), valueRange), $clone(new valueRange.ptr(24, 177, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(24, 128, 159), valueRange), $clone(new valueRange.ptr(128, 160, 160), valueRange), $clone(new valueRange.ptr(24, 161, 173), valueRange), $clone(new valueRange.ptr(128, 174, 175), valueRange), $clone(new valueRange.ptr(24, 176, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(24, 128, 168), valueRange), $clone(new valueRange.ptr(2525, 169, 169), valueRange), $clone(new valueRange.ptr(2557, 170, 170), valueRange), $clone(new valueRange.ptr(24, 171, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(24, 128, 166), valueRange), $clone(new valueRange.ptr(64, 167, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(24, 128, 139), valueRange), $clone(new valueRange.ptr(10433, 140, 140), valueRange), $clone(new valueRange.ptr(24, 141, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(24, 128, 179), valueRange), $clone(new valueRange.ptr(3710, 180, 180), valueRange), $clone(new valueRange.ptr(10538, 181, 181), valueRange), $clone(new valueRange.ptr(3742, 182, 182), valueRange), $clone(new valueRange.ptr(24, 183, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(24, 128, 155), valueRange), $clone(new valueRange.ptr(10561, 156, 156), valueRange), $clone(new valueRange.ptr(24, 157, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(24, 128, 179), valueRange), $clone(new valueRange.ptr(64, 180, 181), valueRange), $clone(new valueRange.ptr(24, 182, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(24, 128, 149), valueRange), $clone(new valueRange.ptr(64, 150, 150), valueRange), $clone(new valueRange.ptr(24, 151, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(57733, 128, 143), valueRange), $clone(new valueRange.ptr(1013, 144, 159), valueRange), $clone(new valueRange.ptr(3773, 160, 174), valueRange), $clone(new valueRange.ptr(64, 175, 175), valueRange), $clone(new valueRange.ptr(8, 176, 191), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(8, 128, 165), valueRange), $clone(new valueRange.ptr(64, 166, 166), valueRange), $clone(new valueRange.ptr(8, 167, 167), valueRange), $clone(new valueRange.ptr(64, 168, 172), valueRange), $clone(new valueRange.ptr(8, 173, 173), valueRange), $clone(new valueRange.ptr(64, 174, 175), valueRange), $clone(new valueRange.ptr(8, 176, 191), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(8, 128, 167), valueRange), $clone(new valueRange.ptr(64, 168, 174), valueRange), $clone(new valueRange.ptr(57461, 175, 175), valueRange), $clone(new valueRange.ptr(24, 176, 176), valueRange), $clone(new valueRange.ptr(64, 177, 190), valueRange), $clone(new valueRange.ptr(15112, 191, 191), valueRange), $clone(new valueRange.ptr(0, 10, 0), valueRange), $clone(new valueRange.ptr(8, 128, 150), valueRange), $clone(new valueRange.ptr(64, 151, 159), valueRange), $clone(new valueRange.ptr(8, 160, 166), valueRange), $clone(new valueRange.ptr(64, 167, 167), valueRange), $clone(new valueRange.ptr(8, 168, 174), valueRange), $clone(new valueRange.ptr(64, 175, 175), valueRange), $clone(new valueRange.ptr(8, 176, 182), valueRange), $clone(new valueRange.ptr(64, 183, 183), valueRange), $clone(new valueRange.ptr(8, 184, 190), valueRange), $clone(new valueRange.ptr(64, 191, 191), valueRange), $clone(new valueRange.ptr(0, 9, 0), valueRange), $clone(new valueRange.ptr(8, 128, 134), valueRange), $clone(new valueRange.ptr(64, 135, 135), valueRange), $clone(new valueRange.ptr(8, 136, 142), valueRange), $clone(new valueRange.ptr(64, 143, 143), valueRange), $clone(new valueRange.ptr(8, 144, 150), valueRange), $clone(new valueRange.ptr(64, 151, 151), valueRange), $clone(new valueRange.ptr(8, 152, 158), valueRange), $clone(new valueRange.ptr(64, 159, 159), valueRange), $clone(new valueRange.ptr(13064, 160, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(24, 128, 174), valueRange), $clone(new valueRange.ptr(8, 175, 175), valueRange), $clone(new valueRange.ptr(24, 176, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(24, 128, 146), valueRange), $clone(new valueRange.ptr(64, 147, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(24, 128, 153), valueRange), $clone(new valueRange.ptr(64, 154, 154), valueRange), $clone(new valueRange.ptr(24, 155, 158), valueRange), $clone(new valueRange.ptr(3829, 159, 159), valueRange), $clone(new valueRange.ptr(24, 160, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(24, 128, 178), valueRange), $clone(new valueRange.ptr(3861, 179, 179), valueRange), $clone(new valueRange.ptr(64, 180, 191), valueRange), $clone(new valueRange.ptr(32, 1, 0), valueRange), $clone(new valueRange.ptr(3893, 128, 191), valueRange), $clone(new valueRange.ptr(32, 2, 0), valueRange), $clone(new valueRange.ptr(5941, 128, 143), valueRange), $clone(new valueRange.ptr(6421, 144, 191), valueRange), $clone(new valueRange.ptr(32, 1, 0), valueRange), $clone(new valueRange.ptr(7957, 128, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(64, 128, 128), valueRange), $clone(new valueRange.ptr(8, 129, 191), valueRange), $clone(new valueRange.ptr(0, 9, 0), valueRange), $clone(new valueRange.ptr(8, 128, 150), valueRange), $clone(new valueRange.ptr(64, 151, 152), valueRange), $clone(new valueRange.ptr(13064, 153, 154), valueRange), $clone(new valueRange.ptr(10722, 155, 155), valueRange), $clone(new valueRange.ptr(10762, 156, 156), valueRange), $clone(new valueRange.ptr(8, 157, 158), valueRange), $clone(new valueRange.ptr(10801, 159, 159), valueRange), $clone(new valueRange.ptr(24, 160, 160), valueRange), $clone(new valueRange.ptr(8, 161, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(8, 128, 190), valueRange), $clone(new valueRange.ptr(10857, 191, 191), valueRange), $clone(new valueRange.ptr(0, 14, 0), valueRange), $clone(new valueRange.ptr(64, 128, 132), valueRange), $clone(new valueRange.ptr(8, 133, 175), valueRange), $clone(new valueRange.ptr(64, 176, 176), valueRange), $clone(new valueRange.ptr(10805, 177, 177), valueRange), $clone(new valueRange.ptr(10837, 178, 178), valueRange), $clone(new valueRange.ptr(10869, 179, 179), valueRange), $clone(new valueRange.ptr(10901, 180, 180), valueRange), $clone(new valueRange.ptr(10869, 181, 181), valueRange), $clone(new valueRange.ptr(10933, 182, 182), valueRange), $clone(new valueRange.ptr(10965, 183, 183), valueRange), $clone(new valueRange.ptr(10997, 184, 185), valueRange), $clone(new valueRange.ptr(11029, 186, 187), valueRange), $clone(new valueRange.ptr(11061, 188, 189), valueRange), $clone(new valueRange.ptr(11029, 190, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(24, 128, 163), valueRange), $clone(new valueRange.ptr(64, 164, 175), valueRange), $clone(new valueRange.ptr(8, 176, 191), valueRange), $clone(new valueRange.ptr(48, 4, 0), valueRange), $clone(new valueRange.ptr(10914, 128, 157), valueRange), $clone(new valueRange.ptr(12378, 158, 158), valueRange), $clone(new valueRange.ptr(64, 159, 159), valueRange), $clone(new valueRange.ptr(12450, 160, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(8, 128, 188), valueRange), $clone(new valueRange.ptr(64, 189, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(8, 128, 140), valueRange), $clone(new valueRange.ptr(64, 141, 143), valueRange), $clone(new valueRange.ptr(24, 144, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(24, 128, 134), valueRange), $clone(new valueRange.ptr(64, 135, 143), valueRange), $clone(new valueRange.ptr(8, 144, 189), valueRange), $clone(new valueRange.ptr(24, 190, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(8, 128, 140), valueRange), $clone(new valueRange.ptr(24, 141, 143), valueRange), $clone(new valueRange.ptr(8, 144, 171), valueRange), $clone(new valueRange.ptr(64, 172, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(8, 128, 165), valueRange), $clone(new valueRange.ptr(24, 166, 175), valueRange), $clone(new valueRange.ptr(13064, 176, 177), valueRange), $clone(new valueRange.ptr(24, 178, 183), valueRange), $clone(new valueRange.ptr(64, 184, 191), valueRange), $clone(new valueRange.ptr(0, 16, 0), valueRange), $clone(new valueRange.ptr(64, 128, 129), valueRange), $clone(new valueRange.ptr(57357, 130, 130), valueRange), $clone(new valueRange.ptr(8, 131, 131), valueRange), $clone(new valueRange.ptr(1013, 132, 132), valueRange), $clone(new valueRange.ptr(4905, 133, 133), valueRange), $clone(new valueRange.ptr(17533, 134, 134), valueRange), $clone(new valueRange.ptr(57469, 135, 135), valueRange), $clone(new valueRange.ptr(8, 136, 136), valueRange), $clone(new valueRange.ptr(57373, 137, 137), valueRange), $clone(new valueRange.ptr(8, 138, 138), valueRange), $clone(new valueRange.ptr(64, 139, 180), valueRange), $clone(new valueRange.ptr(57373, 181, 181), valueRange), $clone(new valueRange.ptr(8, 182, 183), valueRange), $clone(new valueRange.ptr(8201, 184, 184), valueRange), $clone(new valueRange.ptr(28353, 185, 185), valueRange), $clone(new valueRange.ptr(8, 186, 191), valueRange), $clone(new valueRange.ptr(0, 15, 0), valueRange), $clone(new valueRange.ptr(8, 128, 129), valueRange), $clone(new valueRange.ptr(13064, 130, 130), valueRange), $clone(new valueRange.ptr(8, 131, 133), valueRange), $clone(new valueRange.ptr(15112, 134, 134), valueRange), $clone(new valueRange.ptr(8, 135, 138), valueRange), $clone(new valueRange.ptr(13064, 139, 139), valueRange), $clone(new valueRange.ptr(8, 140, 162), valueRange), $clone(new valueRange.ptr(12296, 163, 164), valueRange), $clone(new valueRange.ptr(13064, 165, 166), valueRange), $clone(new valueRange.ptr(12296, 167, 167), valueRange), $clone(new valueRange.ptr(24, 168, 171), valueRange), $clone(new valueRange.ptr(15112, 172, 172), valueRange), $clone(new valueRange.ptr(64, 173, 175), valueRange), $clone(new valueRange.ptr(24, 176, 185), valueRange), $clone(new valueRange.ptr(64, 186, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(520, 128, 177), valueRange), $clone(new valueRange.ptr(264, 178, 178), valueRange), $clone(new valueRange.ptr(8, 179, 179), valueRange), $clone(new valueRange.ptr(24, 180, 183), valueRange), $clone(new valueRange.ptr(64, 184, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(12296, 128, 129), valueRange), $clone(new valueRange.ptr(8, 130, 179), valueRange), $clone(new valueRange.ptr(12296, 180, 191), valueRange), $clone(new valueRange.ptr(0, 14, 0), valueRange), $clone(new valueRange.ptr(12296, 128, 131), valueRange), $clone(new valueRange.ptr(15112, 132, 132), valueRange), $clone(new valueRange.ptr(13064, 133, 133), valueRange), $clone(new valueRange.ptr(64, 134, 141), valueRange), $clone(new valueRange.ptr(24, 142, 143), valueRange), $clone(new valueRange.ptr(8, 144, 153), valueRange), $clone(new valueRange.ptr(64, 154, 159), valueRange), $clone(new valueRange.ptr(13064, 160, 177), valueRange), $clone(new valueRange.ptr(8, 178, 183), valueRange), $clone(new valueRange.ptr(24, 184, 186), valueRange), $clone(new valueRange.ptr(8, 187, 187), valueRange), $clone(new valueRange.ptr(24, 188, 188), valueRange), $clone(new valueRange.ptr(8, 189, 190), valueRange), $clone(new valueRange.ptr(13064, 191, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(8, 128, 165), valueRange), $clone(new valueRange.ptr(13064, 166, 173), valueRange), $clone(new valueRange.ptr(24, 174, 175), valueRange), $clone(new valueRange.ptr(8, 176, 191), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(8, 128, 134), valueRange), $clone(new valueRange.ptr(13064, 135, 145), valueRange), $clone(new valueRange.ptr(12296, 146, 146), valueRange), $clone(new valueRange.ptr(14344, 147, 147), valueRange), $clone(new valueRange.ptr(64, 148, 158), valueRange), $clone(new valueRange.ptr(24, 159, 188), valueRange), $clone(new valueRange.ptr(64, 189, 191), valueRange), $clone(new valueRange.ptr(0, 9, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 130), valueRange), $clone(new valueRange.ptr(12296, 131, 131), valueRange), $clone(new valueRange.ptr(8, 132, 178), valueRange), $clone(new valueRange.ptr(13064, 179, 179), valueRange), $clone(new valueRange.ptr(12296, 180, 181), valueRange), $clone(new valueRange.ptr(13064, 182, 185), valueRange), $clone(new valueRange.ptr(12296, 186, 187), valueRange), $clone(new valueRange.ptr(13064, 188, 189), valueRange), $clone(new valueRange.ptr(12296, 190, 191), valueRange), $clone(new valueRange.ptr(0, 10, 0), valueRange), $clone(new valueRange.ptr(14344, 128, 128), valueRange), $clone(new valueRange.ptr(24, 129, 141), valueRange), $clone(new valueRange.ptr(64, 142, 142), valueRange), $clone(new valueRange.ptr(8, 143, 153), valueRange), $clone(new valueRange.ptr(64, 154, 157), valueRange), $clone(new valueRange.ptr(24, 158, 159), valueRange), $clone(new valueRange.ptr(8, 160, 164), valueRange), $clone(new valueRange.ptr(13064, 165, 165), valueRange), $clone(new valueRange.ptr(8, 166, 190), valueRange), $clone(new valueRange.ptr(64, 191, 191), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(8, 128, 168), valueRange), $clone(new valueRange.ptr(13064, 169, 174), valueRange), $clone(new valueRange.ptr(12296, 175, 176), valueRange), $clone(new valueRange.ptr(13064, 177, 178), valueRange), $clone(new valueRange.ptr(12296, 179, 180), valueRange), $clone(new valueRange.ptr(13064, 181, 182), valueRange), $clone(new valueRange.ptr(64, 183, 191), valueRange), $clone(new valueRange.ptr(0, 16, 0), valueRange), $clone(new valueRange.ptr(8, 128, 130), valueRange), $clone(new valueRange.ptr(13064, 131, 131), valueRange), $clone(new valueRange.ptr(8, 132, 139), valueRange), $clone(new valueRange.ptr(13064, 140, 140), valueRange), $clone(new valueRange.ptr(12296, 141, 141), valueRange), $clone(new valueRange.ptr(64, 142, 143), valueRange), $clone(new valueRange.ptr(8, 144, 153), valueRange), $clone(new valueRange.ptr(64, 154, 155), valueRange), $clone(new valueRange.ptr(24, 156, 159), valueRange), $clone(new valueRange.ptr(8, 160, 182), valueRange), $clone(new valueRange.ptr(24, 183, 185), valueRange), $clone(new valueRange.ptr(8, 186, 186), valueRange), $clone(new valueRange.ptr(12296, 187, 187), valueRange), $clone(new valueRange.ptr(13064, 188, 188), valueRange), $clone(new valueRange.ptr(12296, 189, 189), valueRange), $clone(new valueRange.ptr(8, 190, 191), valueRange), $clone(new valueRange.ptr(0, 8, 0), valueRange), $clone(new valueRange.ptr(8, 128, 175), valueRange), $clone(new valueRange.ptr(13064, 176, 176), valueRange), $clone(new valueRange.ptr(8, 177, 177), valueRange), $clone(new valueRange.ptr(13064, 178, 180), valueRange), $clone(new valueRange.ptr(8, 181, 182), valueRange), $clone(new valueRange.ptr(13064, 183, 184), valueRange), $clone(new valueRange.ptr(8, 185, 189), valueRange), $clone(new valueRange.ptr(13064, 190, 191), valueRange), $clone(new valueRange.ptr(0, 15, 0), valueRange), $clone(new valueRange.ptr(8, 128, 128), valueRange), $clone(new valueRange.ptr(13064, 129, 129), valueRange), $clone(new valueRange.ptr(8, 130, 130), valueRange), $clone(new valueRange.ptr(64, 131, 154), valueRange), $clone(new valueRange.ptr(8, 155, 157), valueRange), $clone(new valueRange.ptr(24, 158, 159), valueRange), $clone(new valueRange.ptr(8, 160, 170), valueRange), $clone(new valueRange.ptr(12296, 171, 171), valueRange), $clone(new valueRange.ptr(13064, 172, 173), valueRange), $clone(new valueRange.ptr(12296, 174, 175), valueRange), $clone(new valueRange.ptr(24, 176, 177), valueRange), $clone(new valueRange.ptr(8, 178, 180), valueRange), $clone(new valueRange.ptr(12296, 181, 181), valueRange), $clone(new valueRange.ptr(15112, 182, 182), valueRange), $clone(new valueRange.ptr(64, 183, 191), valueRange), $clone(new valueRange.ptr(0, 12, 0), valueRange), $clone(new valueRange.ptr(64, 128, 128), valueRange), $clone(new valueRange.ptr(8, 129, 134), valueRange), $clone(new valueRange.ptr(64, 135, 136), valueRange), $clone(new valueRange.ptr(8, 137, 142), valueRange), $clone(new valueRange.ptr(64, 143, 144), valueRange), $clone(new valueRange.ptr(8, 145, 150), valueRange), $clone(new valueRange.ptr(64, 151, 159), valueRange), $clone(new valueRange.ptr(8, 160, 166), valueRange), $clone(new valueRange.ptr(64, 167, 167), valueRange), $clone(new valueRange.ptr(8, 168, 174), valueRange), $clone(new valueRange.ptr(64, 175, 175), valueRange), $clone(new valueRange.ptr(8, 176, 191), valueRange), $clone(new valueRange.ptr(0, 11, 0), valueRange), $clone(new valueRange.ptr(8, 128, 154), valueRange), $clone(new valueRange.ptr(24, 155, 155), valueRange), $clone(new valueRange.ptr(17565, 156, 156), valueRange), $clone(new valueRange.ptr(17589, 157, 157), valueRange), $clone(new valueRange.ptr(10609, 158, 158), valueRange), $clone(new valueRange.ptr(57453, 159, 159), valueRange), $clone(new valueRange.ptr(8, 160, 168), valueRange), $clone(new valueRange.ptr(28377, 169, 169), valueRange), $clone(new valueRange.ptr(24, 170, 171), valueRange), $clone(new valueRange.ptr(64, 172, 175), valueRange), $clone(new valueRange.ptr(17613, 176, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(17645, 128, 143), valueRange), $clone(new valueRange.ptr(17677, 144, 159), valueRange), $clone(new valueRange.ptr(17709, 160, 175), valueRange), $clone(new valueRange.ptr(17677, 176, 191), valueRange), $clone(new valueRange.ptr(0, 12, 0), valueRange), $clone(new valueRange.ptr(8, 128, 162), valueRange), $clone(new valueRange.ptr(12296, 163, 164), valueRange), $clone(new valueRange.ptr(13064, 165, 165), valueRange), $clone(new valueRange.ptr(12296, 166, 167), valueRange), $clone(new valueRange.ptr(13064, 168, 168), valueRange), $clone(new valueRange.ptr(12296, 169, 170), valueRange), $clone(new valueRange.ptr(24, 171, 171), valueRange), $clone(new valueRange.ptr(12296, 172, 172), valueRange), $clone(new valueRange.ptr(15112, 173, 173), valueRange), $clone(new valueRange.ptr(64, 174, 175), valueRange), $clone(new valueRange.ptr(8, 176, 185), valueRange), $clone(new valueRange.ptr(64, 186, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(8, 128, 163), valueRange), $clone(new valueRange.ptr(64, 164, 175), valueRange), $clone(new valueRange.ptr(24, 176, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(24, 128, 134), valueRange), $clone(new valueRange.ptr(64, 135, 138), valueRange), $clone(new valueRange.ptr(24, 139, 187), valueRange), $clone(new valueRange.ptr(64, 188, 191), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(64, 128, 191), valueRange), $clone(new valueRange.ptr(32, 1, 0), valueRange), $clone(new valueRange.ptr(17741, 128, 191), valueRange), $clone(new valueRange.ptr(32, 3, 0), valueRange), $clone(new valueRange.ptr(19789, 128, 148), valueRange), $clone(new valueRange.ptr(19213, 149, 149), valueRange), $clone(new valueRange.ptr(20461, 150, 191), valueRange), $clone(new valueRange.ptr(32, 1, 0), valueRange), $clone(new valueRange.ptr(21805, 128, 191), valueRange), $clone(new valueRange.ptr(32, 3, 0), valueRange), $clone(new valueRange.ptr(23853, 128, 132), valueRange), $clone(new valueRange.ptr(22157, 133, 133), valueRange), $clone(new valueRange.ptr(24013, 134, 191), valueRange), $clone(new valueRange.ptr(32, 8, 0), valueRange), $clone(new valueRange.ptr(27533, 128, 143), valueRange), $clone(new valueRange.ptr(27981, 144, 144), valueRange), $clone(new valueRange.ptr(28045, 145, 171), valueRange), $clone(new valueRange.ptr(28401, 172, 172), valueRange), $clone(new valueRange.ptr(28909, 173, 173), valueRange), $clone(new valueRange.ptr(64, 174, 174), valueRange), $clone(new valueRange.ptr(64, 175, 175), valueRange), $clone(new valueRange.ptr(28941, 176, 191), valueRange), $clone(new valueRange.ptr(32, 5, 0), valueRange), $clone(new valueRange.ptr(29453, 128, 173), valueRange), $clone(new valueRange.ptr(25965, 174, 174), valueRange), $clone(new valueRange.ptr(30925, 175, 181), valueRange), $clone(new valueRange.ptr(28557, 182, 182), valueRange), $clone(new valueRange.ptr(31149, 183, 191), valueRange), $clone(new valueRange.ptr(40, 3, 0), valueRange), $clone(new valueRange.ptr(31857, 128, 130), valueRange), $clone(new valueRange.ptr(31793, 131, 131), valueRange), $clone(new valueRange.ptr(31977, 132, 191), valueRange), $clone(new valueRange.ptr(56, 15, 0), valueRange), $clone(new valueRange.ptr(40449, 128, 131), valueRange), $clone(new valueRange.ptr(40617, 132, 133), valueRange), $clone(new valueRange.ptr(40673, 134, 135), valueRange), $clone(new valueRange.ptr(40729, 136, 143), valueRange), $clone(new valueRange.ptr(64, 144, 144), valueRange), $clone(new valueRange.ptr(64, 145, 145), valueRange), $clone(new valueRange.ptr(41177, 146, 151), valueRange), $clone(new valueRange.ptr(41457, 152, 156), valueRange), $clone(new valueRange.ptr(41681, 157, 179), valueRange), $clone(new valueRange.ptr(40337, 180, 180), valueRange), $clone(new valueRange.ptr(40449, 181, 181), valueRange), $clone(new valueRange.ptr(42969, 182, 187), valueRange), $clone(new valueRange.ptr(43193, 188, 188), valueRange), $clone(new valueRange.ptr(43081, 189, 189), valueRange), $clone(new valueRange.ptr(43305, 190, 191), valueRange), $clone(new valueRange.ptr(0, 9, 0), valueRange), $clone(new valueRange.ptr(8, 128, 139), valueRange), $clone(new valueRange.ptr(64, 140, 140), valueRange), $clone(new valueRange.ptr(8, 141, 166), valueRange), $clone(new valueRange.ptr(64, 167, 167), valueRange), $clone(new valueRange.ptr(8, 168, 186), valueRange), $clone(new valueRange.ptr(64, 187, 187), valueRange), $clone(new valueRange.ptr(8, 188, 189), valueRange), $clone(new valueRange.ptr(64, 190, 190), valueRange), $clone(new valueRange.ptr(8, 191, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(8, 128, 141), valueRange), $clone(new valueRange.ptr(64, 142, 143), valueRange), $clone(new valueRange.ptr(8, 144, 157), valueRange), $clone(new valueRange.ptr(64, 158, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(8, 128, 186), valueRange), $clone(new valueRange.ptr(64, 187, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(24, 128, 130), valueRange), $clone(new valueRange.ptr(64, 131, 134), valueRange), $clone(new valueRange.ptr(24, 135, 179), valueRange), $clone(new valueRange.ptr(64, 180, 182), valueRange), $clone(new valueRange.ptr(24, 183, 191), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(24, 128, 142), valueRange), $clone(new valueRange.ptr(64, 143, 143), valueRange), $clone(new valueRange.ptr(24, 144, 156), valueRange), $clone(new valueRange.ptr(64, 157, 159), valueRange), $clone(new valueRange.ptr(24, 160, 160), valueRange), $clone(new valueRange.ptr(64, 161, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(64, 128, 143), valueRange), $clone(new valueRange.ptr(24, 144, 188), valueRange), $clone(new valueRange.ptr(13064, 189, 189), valueRange), $clone(new valueRange.ptr(64, 190, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(8, 128, 156), valueRange), $clone(new valueRange.ptr(64, 157, 159), valueRange), $clone(new valueRange.ptr(8, 160, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(8, 128, 144), valueRange), $clone(new valueRange.ptr(64, 145, 159), valueRange), $clone(new valueRange.ptr(13064, 160, 160), valueRange), $clone(new valueRange.ptr(24, 161, 187), valueRange), $clone(new valueRange.ptr(64, 188, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(8, 128, 159), valueRange), $clone(new valueRange.ptr(24, 160, 163), valueRange), $clone(new valueRange.ptr(64, 164, 172), valueRange), $clone(new valueRange.ptr(8, 173, 191), valueRange), $clone(new valueRange.ptr(0, 8, 0), valueRange), $clone(new valueRange.ptr(8, 128, 128), valueRange), $clone(new valueRange.ptr(24, 129, 129), valueRange), $clone(new valueRange.ptr(8, 130, 137), valueRange), $clone(new valueRange.ptr(24, 138, 138), valueRange), $clone(new valueRange.ptr(64, 139, 143), valueRange), $clone(new valueRange.ptr(8, 144, 181), valueRange), $clone(new valueRange.ptr(13064, 182, 186), valueRange), $clone(new valueRange.ptr(64, 187, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(8, 128, 157), valueRange), $clone(new valueRange.ptr(64, 158, 158), valueRange), $clone(new valueRange.ptr(24, 159, 159), valueRange), $clone(new valueRange.ptr(8, 160, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(8, 128, 131), valueRange), $clone(new valueRange.ptr(64, 132, 135), valueRange), $clone(new valueRange.ptr(8, 136, 143), valueRange), $clone(new valueRange.ptr(24, 144, 149), valueRange), $clone(new valueRange.ptr(64, 150, 191), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(57669, 128, 135), valueRange), $clone(new valueRange.ptr(57797, 136, 143), valueRange), $clone(new valueRange.ptr(57669, 144, 151), valueRange), $clone(new valueRange.ptr(35597, 152, 159), valueRange), $clone(new valueRange.ptr(35621, 160, 167), valueRange), $clone(new valueRange.ptr(8, 168, 191), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(8, 128, 157), valueRange), $clone(new valueRange.ptr(64, 158, 159), valueRange), $clone(new valueRange.ptr(8, 160, 169), valueRange), $clone(new valueRange.ptr(64, 170, 175), valueRange), $clone(new valueRange.ptr(35621, 176, 183), valueRange), $clone(new valueRange.ptr(35597, 184, 191), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(57669, 128, 135), valueRange), $clone(new valueRange.ptr(57797, 136, 143), valueRange), $clone(new valueRange.ptr(57669, 144, 147), valueRange), $clone(new valueRange.ptr(64, 148, 151), valueRange), $clone(new valueRange.ptr(8, 152, 187), valueRange), $clone(new valueRange.ptr(64, 188, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(8, 128, 167), valueRange), $clone(new valueRange.ptr(64, 168, 175), valueRange), $clone(new valueRange.ptr(8, 176, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(8, 128, 163), valueRange), $clone(new valueRange.ptr(64, 164, 174), valueRange), $clone(new valueRange.ptr(24, 175, 175), valueRange), $clone(new valueRange.ptr(64, 176, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(8, 128, 182), valueRange), $clone(new valueRange.ptr(64, 183, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(8, 128, 149), valueRange), $clone(new valueRange.ptr(64, 150, 159), valueRange), $clone(new valueRange.ptr(8, 160, 167), valueRange), $clone(new valueRange.ptr(64, 168, 191), valueRange), $clone(new valueRange.ptr(0, 11, 0), valueRange), $clone(new valueRange.ptr(2056, 128, 133), valueRange), $clone(new valueRange.ptr(64, 134, 135), valueRange), $clone(new valueRange.ptr(2056, 136, 136), valueRange), $clone(new valueRange.ptr(64, 137, 137), valueRange), $clone(new valueRange.ptr(2056, 138, 181), valueRange), $clone(new valueRange.ptr(64, 182, 182), valueRange), $clone(new valueRange.ptr(2056, 183, 184), valueRange), $clone(new valueRange.ptr(64, 185, 187), valueRange), $clone(new valueRange.ptr(2056, 188, 188), valueRange), $clone(new valueRange.ptr(64, 189, 190), valueRange), $clone(new valueRange.ptr(2056, 191, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(2056, 128, 149), valueRange), $clone(new valueRange.ptr(64, 150, 150), valueRange), $clone(new valueRange.ptr(2072, 151, 159), valueRange), $clone(new valueRange.ptr(2056, 160, 182), valueRange), $clone(new valueRange.ptr(2072, 183, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(2056, 128, 158), valueRange), $clone(new valueRange.ptr(64, 159, 166), valueRange), $clone(new valueRange.ptr(2072, 167, 175), valueRange), $clone(new valueRange.ptr(64, 176, 191), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(64, 128, 159), valueRange), $clone(new valueRange.ptr(2056, 160, 178), valueRange), $clone(new valueRange.ptr(64, 179, 179), valueRange), $clone(new valueRange.ptr(2056, 180, 181), valueRange), $clone(new valueRange.ptr(64, 182, 186), valueRange), $clone(new valueRange.ptr(2072, 187, 191), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(2056, 128, 149), valueRange), $clone(new valueRange.ptr(2072, 150, 155), valueRange), $clone(new valueRange.ptr(64, 156, 158), valueRange), $clone(new valueRange.ptr(24, 159, 159), valueRange), $clone(new valueRange.ptr(2056, 160, 185), valueRange), $clone(new valueRange.ptr(64, 186, 190), valueRange), $clone(new valueRange.ptr(2072, 191, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(2056, 128, 183), valueRange), $clone(new valueRange.ptr(64, 184, 187), valueRange), $clone(new valueRange.ptr(2072, 188, 189), valueRange), $clone(new valueRange.ptr(2056, 190, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(2072, 128, 143), valueRange), $clone(new valueRange.ptr(64, 144, 145), valueRange), $clone(new valueRange.ptr(2072, 146, 191), valueRange), $clone(new valueRange.ptr(0, 15, 0), valueRange), $clone(new valueRange.ptr(2056, 128, 128), valueRange), $clone(new valueRange.ptr(13064, 129, 131), valueRange), $clone(new valueRange.ptr(64, 132, 132), valueRange), $clone(new valueRange.ptr(13064, 133, 134), valueRange), $clone(new valueRange.ptr(64, 135, 139), valueRange), $clone(new valueRange.ptr(13064, 140, 143), valueRange), $clone(new valueRange.ptr(2056, 144, 147), valueRange), $clone(new valueRange.ptr(64, 148, 148), valueRange), $clone(new valueRange.ptr(2056, 149, 151), valueRange), $clone(new valueRange.ptr(64, 152, 152), valueRange), $clone(new valueRange.ptr(2056, 153, 181), valueRange), $clone(new valueRange.ptr(64, 182, 183), valueRange), $clone(new valueRange.ptr(13064, 184, 186), valueRange), $clone(new valueRange.ptr(64, 187, 190), valueRange), $clone(new valueRange.ptr(15112, 191, 191), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(2072, 128, 136), valueRange), $clone(new valueRange.ptr(64, 137, 143), valueRange), $clone(new valueRange.ptr(2072, 144, 152), valueRange), $clone(new valueRange.ptr(64, 153, 159), valueRange), $clone(new valueRange.ptr(2056, 160, 188), valueRange), $clone(new valueRange.ptr(2072, 189, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(2056, 128, 156), valueRange), $clone(new valueRange.ptr(2072, 157, 159), valueRange), $clone(new valueRange.ptr(64, 160, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(2056, 128, 181), valueRange), $clone(new valueRange.ptr(64, 182, 184), valueRange), $clone(new valueRange.ptr(24, 185, 191), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(2056, 128, 149), valueRange), $clone(new valueRange.ptr(64, 150, 151), valueRange), $clone(new valueRange.ptr(2072, 152, 159), valueRange), $clone(new valueRange.ptr(2056, 160, 178), valueRange), $clone(new valueRange.ptr(64, 179, 183), valueRange), $clone(new valueRange.ptr(2072, 184, 191), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(2056, 128, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(2056, 128, 136), valueRange), $clone(new valueRange.ptr(64, 137, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(989, 128, 178), valueRange), $clone(new valueRange.ptr(64, 179, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(2056, 128, 178), valueRange), $clone(new valueRange.ptr(64, 179, 185), valueRange), $clone(new valueRange.ptr(2072, 186, 191), valueRange), $clone(new valueRange.ptr(0, 8, 0), valueRange), $clone(new valueRange.ptr(2312, 128, 128), valueRange), $clone(new valueRange.ptr(2568, 129, 161), valueRange), $clone(new valueRange.ptr(3080, 162, 162), valueRange), $clone(new valueRange.ptr(2568, 163, 163), valueRange), $clone(new valueRange.ptr(13064, 164, 167), valueRange), $clone(new valueRange.ptr(64, 168, 175), valueRange), $clone(new valueRange.ptr(2056, 176, 185), valueRange), $clone(new valueRange.ptr(64, 186, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(64, 128, 159), valueRange), $clone(new valueRange.ptr(2072, 160, 190), valueRange), $clone(new valueRange.ptr(64, 191, 191), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(2056, 128, 169), valueRange), $clone(new valueRange.ptr(64, 170, 170), valueRange), $clone(new valueRange.ptr(13064, 171, 172), valueRange), $clone(new valueRange.ptr(2072, 173, 173), valueRange), $clone(new valueRange.ptr(64, 174, 175), valueRange), $clone(new valueRange.ptr(2056, 176, 177), valueRange), $clone(new valueRange.ptr(64, 178, 191), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(2056, 128, 156), valueRange), $clone(new valueRange.ptr(2072, 157, 166), valueRange), $clone(new valueRange.ptr(2056, 167, 167), valueRange), $clone(new valueRange.ptr(64, 168, 175), valueRange), $clone(new valueRange.ptr(2568, 176, 178), valueRange), $clone(new valueRange.ptr(3080, 179, 179), valueRange), $clone(new valueRange.ptr(2568, 180, 191), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(2568, 128, 132), valueRange), $clone(new valueRange.ptr(2056, 133, 133), valueRange), $clone(new valueRange.ptr(13064, 134, 144), valueRange), $clone(new valueRange.ptr(2584, 145, 147), valueRange), $clone(new valueRange.ptr(3096, 148, 148), valueRange), $clone(new valueRange.ptr(2072, 149, 153), valueRange), $clone(new valueRange.ptr(64, 154, 191), valueRange), $clone(new valueRange.ptr(0, 11, 0), valueRange), $clone(new valueRange.ptr(64, 128, 175), valueRange), $clone(new valueRange.ptr(2568, 176, 176), valueRange), $clone(new valueRange.ptr(2056, 177, 177), valueRange), $clone(new valueRange.ptr(2568, 178, 179), valueRange), $clone(new valueRange.ptr(3080, 180, 182), valueRange), $clone(new valueRange.ptr(2056, 183, 183), valueRange), $clone(new valueRange.ptr(2568, 184, 184), valueRange), $clone(new valueRange.ptr(3080, 185, 186), valueRange), $clone(new valueRange.ptr(2568, 187, 188), valueRange), $clone(new valueRange.ptr(3080, 189, 189), valueRange), $clone(new valueRange.ptr(2568, 190, 191), valueRange), $clone(new valueRange.ptr(0, 11, 0), valueRange), $clone(new valueRange.ptr(2056, 128, 128), valueRange), $clone(new valueRange.ptr(2568, 129, 129), valueRange), $clone(new valueRange.ptr(3080, 130, 131), valueRange), $clone(new valueRange.ptr(2568, 132, 132), valueRange), $clone(new valueRange.ptr(2072, 133, 136), valueRange), $clone(new valueRange.ptr(3096, 137, 137), valueRange), $clone(new valueRange.ptr(2584, 138, 138), valueRange), $clone(new valueRange.ptr(2328, 139, 139), valueRange), $clone(new valueRange.ptr(64, 140, 159), valueRange), $clone(new valueRange.ptr(2056, 160, 182), valueRange), $clone(new valueRange.ptr(64, 183, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(12296, 128, 128), valueRange), $clone(new valueRange.ptr(13064, 129, 129), valueRange), $clone(new valueRange.ptr(12296, 130, 130), valueRange), $clone(new valueRange.ptr(8, 131, 183), valueRange), $clone(new valueRange.ptr(13064, 184, 191), valueRange), $clone(new valueRange.ptr(0, 8, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 133), valueRange), $clone(new valueRange.ptr(15112, 134, 134), valueRange), $clone(new valueRange.ptr(24, 135, 141), valueRange), $clone(new valueRange.ptr(64, 142, 145), valueRange), $clone(new valueRange.ptr(24, 146, 165), valueRange), $clone(new valueRange.ptr(8, 166, 175), valueRange), $clone(new valueRange.ptr(64, 176, 190), valueRange), $clone(new valueRange.ptr(15112, 191, 191), valueRange), $clone(new valueRange.ptr(0, 11, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 129), valueRange), $clone(new valueRange.ptr(12296, 130, 130), valueRange), $clone(new valueRange.ptr(8, 131, 175), valueRange), $clone(new valueRange.ptr(12296, 176, 178), valueRange), $clone(new valueRange.ptr(13064, 179, 182), valueRange), $clone(new valueRange.ptr(12296, 183, 184), valueRange), $clone(new valueRange.ptr(15112, 185, 185), valueRange), $clone(new valueRange.ptr(13064, 186, 186), valueRange), $clone(new valueRange.ptr(24, 187, 188), valueRange), $clone(new valueRange.ptr(64, 189, 189), valueRange), $clone(new valueRange.ptr(24, 190, 191), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(24, 128, 129), valueRange), $clone(new valueRange.ptr(64, 130, 143), valueRange), $clone(new valueRange.ptr(8, 144, 168), valueRange), $clone(new valueRange.ptr(64, 169, 175), valueRange), $clone(new valueRange.ptr(8, 176, 185), valueRange), $clone(new valueRange.ptr(64, 186, 191), valueRange), $clone(new valueRange.ptr(0, 8, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 130), valueRange), $clone(new valueRange.ptr(8, 131, 166), valueRange), $clone(new valueRange.ptr(13064, 167, 171), valueRange), $clone(new valueRange.ptr(12296, 172, 172), valueRange), $clone(new valueRange.ptr(13064, 173, 178), valueRange), $clone(new valueRange.ptr(15112, 179, 180), valueRange), $clone(new valueRange.ptr(64, 181, 181), valueRange), $clone(new valueRange.ptr(8, 182, 191), valueRange), $clone(new valueRange.ptr(0, 10, 0), valueRange), $clone(new valueRange.ptr(24, 128, 131), valueRange), $clone(new valueRange.ptr(8, 132, 132), valueRange), $clone(new valueRange.ptr(12296, 133, 134), valueRange), $clone(new valueRange.ptr(8, 135, 135), valueRange), $clone(new valueRange.ptr(64, 136, 143), valueRange), $clone(new valueRange.ptr(8, 144, 178), valueRange), $clone(new valueRange.ptr(13064, 179, 179), valueRange), $clone(new valueRange.ptr(24, 180, 181), valueRange), $clone(new valueRange.ptr(8, 182, 182), valueRange), $clone(new valueRange.ptr(64, 183, 191), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 129), valueRange), $clone(new valueRange.ptr(12296, 130, 130), valueRange), $clone(new valueRange.ptr(8, 131, 178), valueRange), $clone(new valueRange.ptr(12296, 179, 181), valueRange), $clone(new valueRange.ptr(13064, 182, 190), valueRange), $clone(new valueRange.ptr(12296, 191, 191), valueRange), $clone(new valueRange.ptr(0, 14, 0), valueRange), $clone(new valueRange.ptr(14344, 128, 128), valueRange), $clone(new valueRange.ptr(8, 129, 132), valueRange), $clone(new valueRange.ptr(24, 133, 136), valueRange), $clone(new valueRange.ptr(13064, 137, 140), valueRange), $clone(new valueRange.ptr(24, 141, 141), valueRange), $clone(new valueRange.ptr(12296, 142, 142), valueRange), $clone(new valueRange.ptr(13064, 143, 143), valueRange), $clone(new valueRange.ptr(8, 144, 154), valueRange), $clone(new valueRange.ptr(24, 155, 155), valueRange), $clone(new valueRange.ptr(8, 156, 156), valueRange), $clone(new valueRange.ptr(24, 157, 159), valueRange), $clone(new valueRange.ptr(64, 160, 160), valueRange), $clone(new valueRange.ptr(24, 161, 180), valueRange), $clone(new valueRange.ptr(64, 181, 191), valueRange), $clone(new valueRange.ptr(0, 12, 0), valueRange), $clone(new valueRange.ptr(8, 128, 145), valueRange), $clone(new valueRange.ptr(64, 146, 146), valueRange), $clone(new valueRange.ptr(8, 147, 171), valueRange), $clone(new valueRange.ptr(12296, 172, 174), valueRange), $clone(new valueRange.ptr(13064, 175, 177), valueRange), $clone(new valueRange.ptr(12296, 178, 179), valueRange), $clone(new valueRange.ptr(13064, 180, 180), valueRange), $clone(new valueRange.ptr(14344, 181, 181), valueRange), $clone(new valueRange.ptr(13064, 182, 183), valueRange), $clone(new valueRange.ptr(24, 184, 189), valueRange), $clone(new valueRange.ptr(13064, 190, 190), valueRange), $clone(new valueRange.ptr(64, 191, 191), valueRange), $clone(new valueRange.ptr(0, 12, 0), valueRange), $clone(new valueRange.ptr(8, 128, 134), valueRange), $clone(new valueRange.ptr(64, 135, 135), valueRange), $clone(new valueRange.ptr(8, 136, 136), valueRange), $clone(new valueRange.ptr(64, 137, 137), valueRange), $clone(new valueRange.ptr(8, 138, 141), valueRange), $clone(new valueRange.ptr(64, 142, 142), valueRange), $clone(new valueRange.ptr(8, 143, 157), valueRange), $clone(new valueRange.ptr(64, 158, 158), valueRange), $clone(new valueRange.ptr(8, 159, 168), valueRange), $clone(new valueRange.ptr(24, 169, 169), valueRange), $clone(new valueRange.ptr(64, 170, 175), valueRange), $clone(new valueRange.ptr(8, 176, 191), valueRange), $clone(new valueRange.ptr(0, 8, 0), valueRange), $clone(new valueRange.ptr(8, 128, 158), valueRange), $clone(new valueRange.ptr(13064, 159, 159), valueRange), $clone(new valueRange.ptr(12296, 160, 162), valueRange), $clone(new valueRange.ptr(13064, 163, 169), valueRange), $clone(new valueRange.ptr(15112, 170, 170), valueRange), $clone(new valueRange.ptr(64, 171, 175), valueRange), $clone(new valueRange.ptr(8, 176, 185), valueRange), $clone(new valueRange.ptr(64, 186, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(8, 128, 180), valueRange), $clone(new valueRange.ptr(12296, 181, 183), valueRange), $clone(new valueRange.ptr(13064, 184, 191), valueRange), $clone(new valueRange.ptr(0, 14, 0), valueRange), $clone(new valueRange.ptr(12296, 128, 129), valueRange), $clone(new valueRange.ptr(15112, 130, 130), valueRange), $clone(new valueRange.ptr(13064, 131, 132), valueRange), $clone(new valueRange.ptr(12296, 133, 133), valueRange), $clone(new valueRange.ptr(13064, 134, 134), valueRange), $clone(new valueRange.ptr(8, 135, 138), valueRange), $clone(new valueRange.ptr(24, 139, 143), valueRange), $clone(new valueRange.ptr(8, 144, 153), valueRange), $clone(new valueRange.ptr(24, 154, 155), valueRange), $clone(new valueRange.ptr(64, 156, 156), valueRange), $clone(new valueRange.ptr(24, 157, 157), valueRange), $clone(new valueRange.ptr(13064, 158, 158), valueRange), $clone(new valueRange.ptr(8, 159, 161), valueRange), $clone(new valueRange.ptr(64, 162, 191), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(8, 128, 175), valueRange), $clone(new valueRange.ptr(12296, 176, 178), valueRange), $clone(new valueRange.ptr(13064, 179, 184), valueRange), $clone(new valueRange.ptr(12296, 185, 185), valueRange), $clone(new valueRange.ptr(13064, 186, 186), valueRange), $clone(new valueRange.ptr(12296, 187, 190), valueRange), $clone(new valueRange.ptr(13064, 191, 191), valueRange), $clone(new valueRange.ptr(0, 10, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 128), valueRange), $clone(new valueRange.ptr(12296, 129, 129), valueRange), $clone(new valueRange.ptr(15112, 130, 130), valueRange), $clone(new valueRange.ptr(13064, 131, 131), valueRange), $clone(new valueRange.ptr(8, 132, 133), valueRange), $clone(new valueRange.ptr(24, 134, 134), valueRange), $clone(new valueRange.ptr(8, 135, 135), valueRange), $clone(new valueRange.ptr(64, 136, 143), valueRange), $clone(new valueRange.ptr(8, 144, 153), valueRange), $clone(new valueRange.ptr(64, 154, 191), valueRange), $clone(new valueRange.ptr(0, 8, 0), valueRange), $clone(new valueRange.ptr(8, 128, 174), valueRange), $clone(new valueRange.ptr(12296, 175, 177), valueRange), $clone(new valueRange.ptr(13064, 178, 181), valueRange), $clone(new valueRange.ptr(64, 182, 183), valueRange), $clone(new valueRange.ptr(12296, 184, 187), valueRange), $clone(new valueRange.ptr(13064, 188, 189), valueRange), $clone(new valueRange.ptr(12296, 190, 190), valueRange), $clone(new valueRange.ptr(15112, 191, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 128), valueRange), $clone(new valueRange.ptr(24, 129, 151), valueRange), $clone(new valueRange.ptr(8, 152, 155), valueRange), $clone(new valueRange.ptr(13064, 156, 157), valueRange), $clone(new valueRange.ptr(64, 158, 191), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(8, 128, 175), valueRange), $clone(new valueRange.ptr(12296, 176, 178), valueRange), $clone(new valueRange.ptr(13064, 179, 186), valueRange), $clone(new valueRange.ptr(12296, 187, 188), valueRange), $clone(new valueRange.ptr(13064, 189, 189), valueRange), $clone(new valueRange.ptr(12296, 190, 190), valueRange), $clone(new valueRange.ptr(15112, 191, 191), valueRange), $clone(new valueRange.ptr(0, 8, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 128), valueRange), $clone(new valueRange.ptr(24, 129, 131), valueRange), $clone(new valueRange.ptr(8, 132, 132), valueRange), $clone(new valueRange.ptr(64, 133, 143), valueRange), $clone(new valueRange.ptr(8, 144, 153), valueRange), $clone(new valueRange.ptr(64, 154, 159), valueRange), $clone(new valueRange.ptr(24, 160, 172), valueRange), $clone(new valueRange.ptr(64, 173, 191), valueRange), $clone(new valueRange.ptr(0, 10, 0), valueRange), $clone(new valueRange.ptr(8, 128, 170), valueRange), $clone(new valueRange.ptr(13064, 171, 171), valueRange), $clone(new valueRange.ptr(12296, 172, 172), valueRange), $clone(new valueRange.ptr(13064, 173, 173), valueRange), $clone(new valueRange.ptr(12296, 174, 175), valueRange), $clone(new valueRange.ptr(13064, 176, 181), valueRange), $clone(new valueRange.ptr(14344, 182, 182), valueRange), $clone(new valueRange.ptr(13064, 183, 183), valueRange), $clone(new valueRange.ptr(8, 184, 184), valueRange), $clone(new valueRange.ptr(64, 185, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(8, 128, 137), valueRange), $clone(new valueRange.ptr(64, 138, 191), valueRange), $clone(new valueRange.ptr(0, 11, 0), valueRange), $clone(new valueRange.ptr(8, 128, 154), valueRange), $clone(new valueRange.ptr(64, 155, 156), valueRange), $clone(new valueRange.ptr(13064, 157, 159), valueRange), $clone(new valueRange.ptr(12296, 160, 161), valueRange), $clone(new valueRange.ptr(13064, 162, 165), valueRange), $clone(new valueRange.ptr(12296, 166, 166), valueRange), $clone(new valueRange.ptr(13064, 167, 170), valueRange), $clone(new valueRange.ptr(15112, 171, 171), valueRange), $clone(new valueRange.ptr(64, 172, 175), valueRange), $clone(new valueRange.ptr(8, 176, 185), valueRange), $clone(new valueRange.ptr(24, 186, 191), valueRange), $clone(new valueRange.ptr(0, 8, 0), valueRange), $clone(new valueRange.ptr(8, 128, 171), valueRange), $clone(new valueRange.ptr(12296, 172, 174), valueRange), $clone(new valueRange.ptr(13064, 175, 183), valueRange), $clone(new valueRange.ptr(12296, 184, 184), valueRange), $clone(new valueRange.ptr(15112, 185, 185), valueRange), $clone(new valueRange.ptr(13064, 186, 186), valueRange), $clone(new valueRange.ptr(24, 187, 187), valueRange), $clone(new valueRange.ptr(64, 188, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(64, 128, 159), valueRange), $clone(new valueRange.ptr(1181, 160, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(8, 128, 169), valueRange), $clone(new valueRange.ptr(24, 170, 178), valueRange), $clone(new valueRange.ptr(64, 179, 190), valueRange), $clone(new valueRange.ptr(8, 191, 191), valueRange), $clone(new valueRange.ptr(0, 8, 0), valueRange), $clone(new valueRange.ptr(12296, 128, 128), valueRange), $clone(new valueRange.ptr(8, 129, 129), valueRange), $clone(new valueRange.ptr(12296, 130, 130), valueRange), $clone(new valueRange.ptr(13064, 131, 131), valueRange), $clone(new valueRange.ptr(24, 132, 134), valueRange), $clone(new valueRange.ptr(64, 135, 143), valueRange), $clone(new valueRange.ptr(8, 144, 153), valueRange), $clone(new valueRange.ptr(64, 154, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(64, 128, 159), valueRange), $clone(new valueRange.ptr(8, 160, 167), valueRange), $clone(new valueRange.ptr(64, 168, 169), valueRange), $clone(new valueRange.ptr(8, 170, 191), valueRange), $clone(new valueRange.ptr(0, 12, 0), valueRange), $clone(new valueRange.ptr(8, 128, 144), valueRange), $clone(new valueRange.ptr(12296, 145, 147), valueRange), $clone(new valueRange.ptr(13064, 148, 151), valueRange), $clone(new valueRange.ptr(64, 152, 153), valueRange), $clone(new valueRange.ptr(13064, 154, 155), valueRange), $clone(new valueRange.ptr(12296, 156, 159), valueRange), $clone(new valueRange.ptr(15112, 160, 160), valueRange), $clone(new valueRange.ptr(8, 161, 161), valueRange), $clone(new valueRange.ptr(24, 162, 162), valueRange), $clone(new valueRange.ptr(8, 163, 163), valueRange), $clone(new valueRange.ptr(12296, 164, 164), valueRange), $clone(new valueRange.ptr(64, 165, 191), valueRange), $clone(new valueRange.ptr(0, 10, 0), valueRange), $clone(new valueRange.ptr(8, 128, 128), valueRange), $clone(new valueRange.ptr(13064, 129, 138), valueRange), $clone(new valueRange.ptr(8, 139, 178), valueRange), $clone(new valueRange.ptr(13064, 179, 179), valueRange), $clone(new valueRange.ptr(15112, 180, 180), valueRange), $clone(new valueRange.ptr(13064, 181, 184), valueRange), $clone(new valueRange.ptr(12296, 185, 185), valueRange), $clone(new valueRange.ptr(8, 186, 186), valueRange), $clone(new valueRange.ptr(13064, 187, 190), valueRange), $clone(new valueRange.ptr(24, 191, 191), valueRange), $clone(new valueRange.ptr(0, 8, 0), valueRange), $clone(new valueRange.ptr(24, 128, 134), valueRange), $clone(new valueRange.ptr(15112, 135, 135), valueRange), $clone(new valueRange.ptr(64, 136, 143), valueRange), $clone(new valueRange.ptr(8, 144, 144), valueRange), $clone(new valueRange.ptr(13064, 145, 150), valueRange), $clone(new valueRange.ptr(12296, 151, 152), valueRange), $clone(new valueRange.ptr(13064, 153, 155), valueRange), $clone(new valueRange.ptr(8, 156, 191), valueRange), $clone(new valueRange.ptr(0, 9, 0), valueRange), $clone(new valueRange.ptr(8, 128, 137), valueRange), $clone(new valueRange.ptr(13064, 138, 150), valueRange), $clone(new valueRange.ptr(12296, 151, 151), valueRange), $clone(new valueRange.ptr(13064, 152, 152), valueRange), $clone(new valueRange.ptr(15112, 153, 153), valueRange), $clone(new valueRange.ptr(24, 154, 156), valueRange), $clone(new valueRange.ptr(8, 157, 157), valueRange), $clone(new valueRange.ptr(24, 158, 162), valueRange), $clone(new valueRange.ptr(64, 163, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(8, 128, 184), valueRange), $clone(new valueRange.ptr(64, 185, 191), valueRange), $clone(new valueRange.ptr(0, 9, 0), valueRange), $clone(new valueRange.ptr(8, 128, 136), valueRange), $clone(new valueRange.ptr(64, 137, 137), valueRange), $clone(new valueRange.ptr(8, 138, 174), valueRange), $clone(new valueRange.ptr(12296, 175, 175), valueRange), $clone(new valueRange.ptr(13064, 176, 182), valueRange), $clone(new valueRange.ptr(64, 183, 183), valueRange), $clone(new valueRange.ptr(13064, 184, 189), valueRange), $clone(new valueRange.ptr(12296, 190, 190), valueRange), $clone(new valueRange.ptr(15112, 191, 191), valueRange), $clone(new valueRange.ptr(0, 8, 0), valueRange), $clone(new valueRange.ptr(8, 128, 128), valueRange), $clone(new valueRange.ptr(24, 129, 133), valueRange), $clone(new valueRange.ptr(64, 134, 143), valueRange), $clone(new valueRange.ptr(8, 144, 153), valueRange), $clone(new valueRange.ptr(24, 154, 172), valueRange), $clone(new valueRange.ptr(64, 173, 175), valueRange), $clone(new valueRange.ptr(24, 176, 177), valueRange), $clone(new valueRange.ptr(8, 178, 191), valueRange), $clone(new valueRange.ptr(0, 11, 0), valueRange), $clone(new valueRange.ptr(8, 128, 143), valueRange), $clone(new valueRange.ptr(64, 144, 145), valueRange), $clone(new valueRange.ptr(13064, 146, 167), valueRange), $clone(new valueRange.ptr(64, 168, 168), valueRange), $clone(new valueRange.ptr(12296, 169, 169), valueRange), $clone(new valueRange.ptr(13064, 170, 176), valueRange), $clone(new valueRange.ptr(12296, 177, 177), valueRange), $clone(new valueRange.ptr(13064, 178, 179), valueRange), $clone(new valueRange.ptr(12296, 180, 180), valueRange), $clone(new valueRange.ptr(13064, 181, 182), valueRange), $clone(new valueRange.ptr(64, 183, 191), valueRange), $clone(new valueRange.ptr(0, 12, 0), valueRange), $clone(new valueRange.ptr(8, 128, 134), valueRange), $clone(new valueRange.ptr(64, 135, 135), valueRange), $clone(new valueRange.ptr(8, 136, 137), valueRange), $clone(new valueRange.ptr(64, 138, 138), valueRange), $clone(new valueRange.ptr(8, 139, 176), valueRange), $clone(new valueRange.ptr(13064, 177, 182), valueRange), $clone(new valueRange.ptr(64, 183, 185), valueRange), $clone(new valueRange.ptr(13064, 186, 186), valueRange), $clone(new valueRange.ptr(64, 187, 187), valueRange), $clone(new valueRange.ptr(13064, 188, 189), valueRange), $clone(new valueRange.ptr(64, 190, 190), valueRange), $clone(new valueRange.ptr(13064, 191, 191), valueRange), $clone(new valueRange.ptr(0, 12, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 131), valueRange), $clone(new valueRange.ptr(15112, 132, 133), valueRange), $clone(new valueRange.ptr(8, 134, 134), valueRange), $clone(new valueRange.ptr(13064, 135, 135), valueRange), $clone(new valueRange.ptr(64, 136, 143), valueRange), $clone(new valueRange.ptr(8, 144, 153), valueRange), $clone(new valueRange.ptr(64, 154, 159), valueRange), $clone(new valueRange.ptr(8, 160, 165), valueRange), $clone(new valueRange.ptr(64, 166, 166), valueRange), $clone(new valueRange.ptr(8, 167, 168), valueRange), $clone(new valueRange.ptr(64, 169, 169), valueRange), $clone(new valueRange.ptr(8, 170, 191), valueRange), $clone(new valueRange.ptr(0, 13, 0), valueRange), $clone(new valueRange.ptr(8, 128, 137), valueRange), $clone(new valueRange.ptr(12296, 138, 142), valueRange), $clone(new valueRange.ptr(64, 143, 143), valueRange), $clone(new valueRange.ptr(13064, 144, 145), valueRange), $clone(new valueRange.ptr(64, 146, 146), valueRange), $clone(new valueRange.ptr(12296, 147, 148), valueRange), $clone(new valueRange.ptr(13064, 149, 149), valueRange), $clone(new valueRange.ptr(12296, 150, 150), valueRange), $clone(new valueRange.ptr(15112, 151, 151), valueRange), $clone(new valueRange.ptr(8, 152, 152), valueRange), $clone(new valueRange.ptr(64, 153, 159), valueRange), $clone(new valueRange.ptr(8, 160, 169), valueRange), $clone(new valueRange.ptr(64, 170, 191), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(64, 128, 159), valueRange), $clone(new valueRange.ptr(8, 160, 178), valueRange), $clone(new valueRange.ptr(13064, 179, 180), valueRange), $clone(new valueRange.ptr(12296, 181, 182), valueRange), $clone(new valueRange.ptr(24, 183, 184), valueRange), $clone(new valueRange.ptr(64, 185, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(64, 128, 175), valueRange), $clone(new valueRange.ptr(8, 176, 176), valueRange), $clone(new valueRange.ptr(64, 177, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(24, 128, 177), valueRange), $clone(new valueRange.ptr(64, 178, 190), valueRange), $clone(new valueRange.ptr(24, 191, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(8, 128, 153), valueRange), $clone(new valueRange.ptr(64, 154, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(24, 128, 174), valueRange), $clone(new valueRange.ptr(64, 175, 175), valueRange), $clone(new valueRange.ptr(24, 176, 180), valueRange), $clone(new valueRange.ptr(64, 181, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(8, 128, 131), valueRange), $clone(new valueRange.ptr(64, 132, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(8, 128, 174), valueRange), $clone(new valueRange.ptr(64, 175, 175), valueRange), $clone(new valueRange.ptr(832, 176, 184), valueRange), $clone(new valueRange.ptr(64, 185, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(8, 128, 134), valueRange), $clone(new valueRange.ptr(64, 135, 191), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(8, 128, 158), valueRange), $clone(new valueRange.ptr(64, 159, 159), valueRange), $clone(new valueRange.ptr(8, 160, 169), valueRange), $clone(new valueRange.ptr(64, 170, 173), valueRange), $clone(new valueRange.ptr(24, 174, 175), valueRange), $clone(new valueRange.ptr(64, 176, 191), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(64, 128, 143), valueRange), $clone(new valueRange.ptr(8, 144, 173), valueRange), $clone(new valueRange.ptr(64, 174, 175), valueRange), $clone(new valueRange.ptr(13064, 176, 180), valueRange), $clone(new valueRange.ptr(24, 181, 181), valueRange), $clone(new valueRange.ptr(64, 182, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(8, 128, 175), valueRange), $clone(new valueRange.ptr(13064, 176, 182), valueRange), $clone(new valueRange.ptr(24, 183, 191), valueRange), $clone(new valueRange.ptr(0, 10, 0), valueRange), $clone(new valueRange.ptr(8, 128, 131), valueRange), $clone(new valueRange.ptr(24, 132, 133), valueRange), $clone(new valueRange.ptr(64, 134, 143), valueRange), $clone(new valueRange.ptr(8, 144, 153), valueRange), $clone(new valueRange.ptr(64, 154, 154), valueRange), $clone(new valueRange.ptr(24, 155, 161), valueRange), $clone(new valueRange.ptr(64, 162, 162), valueRange), $clone(new valueRange.ptr(8, 163, 183), valueRange), $clone(new valueRange.ptr(64, 184, 188), valueRange), $clone(new valueRange.ptr(8, 189, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(8, 128, 143), valueRange), $clone(new valueRange.ptr(64, 144, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(57605, 128, 159), valueRange), $clone(new valueRange.ptr(8, 160, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(24, 128, 154), valueRange), $clone(new valueRange.ptr(64, 155, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(8, 128, 138), valueRange), $clone(new valueRange.ptr(64, 139, 142), valueRange), $clone(new valueRange.ptr(13064, 143, 143), valueRange), $clone(new valueRange.ptr(8, 144, 144), valueRange), $clone(new valueRange.ptr(12296, 145, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(12296, 128, 135), valueRange), $clone(new valueRange.ptr(64, 136, 142), valueRange), $clone(new valueRange.ptr(13064, 143, 146), valueRange), $clone(new valueRange.ptr(8, 147, 159), valueRange), $clone(new valueRange.ptr(64, 160, 191), valueRange), $clone(new valueRange.ptr(0, 8, 0), valueRange), $clone(new valueRange.ptr(64, 128, 159), valueRange), $clone(new valueRange.ptr(8, 160, 161), valueRange), $clone(new valueRange.ptr(24, 162, 162), valueRange), $clone(new valueRange.ptr(8, 163, 163), valueRange), $clone(new valueRange.ptr(13064, 164, 164), valueRange), $clone(new valueRange.ptr(64, 165, 175), valueRange), $clone(new valueRange.ptr(12296, 176, 177), valueRange), $clone(new valueRange.ptr(64, 178, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(8, 128, 183), valueRange), $clone(new valueRange.ptr(64, 184, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(8, 128, 149), valueRange), $clone(new valueRange.ptr(64, 150, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(8, 128, 136), valueRange), $clone(new valueRange.ptr(64, 137, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(8, 128, 158), valueRange), $clone(new valueRange.ptr(64, 159, 191), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(64, 128, 143), valueRange), $clone(new valueRange.ptr(8, 144, 146), valueRange), $clone(new valueRange.ptr(64, 147, 163), valueRange), $clone(new valueRange.ptr(8, 164, 167), valueRange), $clone(new valueRange.ptr(64, 168, 175), valueRange), $clone(new valueRange.ptr(8, 176, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(8, 128, 187), valueRange), $clone(new valueRange.ptr(64, 188, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(8, 128, 170), valueRange), $clone(new valueRange.ptr(64, 171, 175), valueRange), $clone(new valueRange.ptr(8, 176, 188), valueRange), $clone(new valueRange.ptr(64, 189, 191), valueRange), $clone(new valueRange.ptr(0, 9, 0), valueRange), $clone(new valueRange.ptr(8, 128, 136), valueRange), $clone(new valueRange.ptr(64, 137, 143), valueRange), $clone(new valueRange.ptr(8, 144, 153), valueRange), $clone(new valueRange.ptr(64, 154, 155), valueRange), $clone(new valueRange.ptr(24, 156, 156), valueRange), $clone(new valueRange.ptr(13064, 157, 158), valueRange), $clone(new valueRange.ptr(24, 159, 159), valueRange), $clone(new valueRange.ptr(960, 160, 163), valueRange), $clone(new valueRange.ptr(64, 164, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(24, 128, 181), valueRange), $clone(new valueRange.ptr(64, 182, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(24, 128, 166), valueRange), $clone(new valueRange.ptr(64, 167, 168), valueRange), $clone(new valueRange.ptr(24, 169, 191), valueRange), $clone(new valueRange.ptr(0, 14, 0), valueRange), $clone(new valueRange.ptr(24, 128, 157), valueRange), $clone(new valueRange.ptr(46601, 158, 158), valueRange), $clone(new valueRange.ptr(46673, 159, 159), valueRange), $clone(new valueRange.ptr(46745, 160, 160), valueRange), $clone(new valueRange.ptr(46849, 161, 161), valueRange), $clone(new valueRange.ptr(46953, 162, 162), valueRange), $clone(new valueRange.ptr(47057, 163, 163), valueRange), $clone(new valueRange.ptr(47161, 164, 164), valueRange), $clone(new valueRange.ptr(12312, 165, 166), valueRange), $clone(new valueRange.ptr(13080, 167, 169), valueRange), $clone(new valueRange.ptr(24, 170, 172), valueRange), $clone(new valueRange.ptr(12312, 173, 178), valueRange), $clone(new valueRange.ptr(832, 179, 186), valueRange), $clone(new valueRange.ptr(13080, 187, 191), valueRange), $clone(new valueRange.ptr(0, 11, 0), valueRange), $clone(new valueRange.ptr(13080, 128, 130), valueRange), $clone(new valueRange.ptr(24, 131, 132), valueRange), $clone(new valueRange.ptr(13080, 133, 139), valueRange), $clone(new valueRange.ptr(24, 140, 169), valueRange), $clone(new valueRange.ptr(13080, 170, 173), valueRange), $clone(new valueRange.ptr(24, 174, 186), valueRange), $clone(new valueRange.ptr(47265, 187, 187), valueRange), $clone(new valueRange.ptr(47337, 188, 188), valueRange), $clone(new valueRange.ptr(47409, 189, 189), valueRange), $clone(new valueRange.ptr(47513, 190, 190), valueRange), $clone(new valueRange.ptr(47617, 191, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(47721, 128, 128), valueRange), $clone(new valueRange.ptr(24, 129, 168), valueRange), $clone(new valueRange.ptr(64, 169, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(24, 128, 129), valueRange), $clone(new valueRange.ptr(13080, 130, 132), valueRange), $clone(new valueRange.ptr(24, 133, 133), valueRange), $clone(new valueRange.ptr(64, 134, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(64, 128, 159), valueRange), $clone(new valueRange.ptr(24, 160, 179), valueRange), $clone(new valueRange.ptr(64, 180, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(24, 128, 150), valueRange), $clone(new valueRange.ptr(64, 151, 159), valueRange), $clone(new valueRange.ptr(24, 160, 184), valueRange), $clone(new valueRange.ptr(64, 185, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 182), valueRange), $clone(new valueRange.ptr(24, 183, 186), valueRange), $clone(new valueRange.ptr(13064, 187, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 172), valueRange), $clone(new valueRange.ptr(24, 173, 180), valueRange), $clone(new valueRange.ptr(13064, 181, 181), valueRange), $clone(new valueRange.ptr(24, 182, 191), valueRange), $clone(new valueRange.ptr(0, 8, 0), valueRange), $clone(new valueRange.ptr(24, 128, 131), valueRange), $clone(new valueRange.ptr(13064, 132, 132), valueRange), $clone(new valueRange.ptr(24, 133, 139), valueRange), $clone(new valueRange.ptr(64, 140, 154), valueRange), $clone(new valueRange.ptr(13064, 155, 159), valueRange), $clone(new valueRange.ptr(64, 160, 160), valueRange), $clone(new valueRange.ptr(13064, 161, 175), valueRange), $clone(new valueRange.ptr(64, 176, 191), valueRange), $clone(new valueRange.ptr(0, 10, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 134), valueRange), $clone(new valueRange.ptr(64, 135, 135), valueRange), $clone(new valueRange.ptr(13064, 136, 152), valueRange), $clone(new valueRange.ptr(64, 153, 154), valueRange), $clone(new valueRange.ptr(13064, 155, 161), valueRange), $clone(new valueRange.ptr(64, 162, 162), valueRange), $clone(new valueRange.ptr(13064, 163, 164), valueRange), $clone(new valueRange.ptr(64, 165, 165), valueRange), $clone(new valueRange.ptr(13064, 166, 170), valueRange), $clone(new valueRange.ptr(64, 171, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(8, 128, 172), valueRange), $clone(new valueRange.ptr(64, 173, 175), valueRange), $clone(new valueRange.ptr(13064, 176, 182), valueRange), $clone(new valueRange.ptr(8, 183, 189), valueRange), $clone(new valueRange.ptr(64, 190, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(8, 128, 137), valueRange), $clone(new valueRange.ptr(64, 138, 141), valueRange), $clone(new valueRange.ptr(8, 142, 142), valueRange), $clone(new valueRange.ptr(24, 143, 143), valueRange), $clone(new valueRange.ptr(64, 144, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(8, 128, 171), valueRange), $clone(new valueRange.ptr(13064, 172, 175), valueRange), $clone(new valueRange.ptr(8, 176, 185), valueRange), $clone(new valueRange.ptr(64, 186, 190), valueRange), $clone(new valueRange.ptr(24, 191, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(2056, 128, 132), valueRange), $clone(new valueRange.ptr(64, 133, 134), valueRange), $clone(new valueRange.ptr(2072, 135, 143), valueRange), $clone(new valueRange.ptr(13064, 144, 150), valueRange), $clone(new valueRange.ptr(64, 151, 191), valueRange), $clone(new valueRange.ptr(0, 8, 0), valueRange), $clone(new valueRange.ptr(2568, 128, 131), valueRange), $clone(new valueRange.ptr(13064, 132, 138), valueRange), $clone(new valueRange.ptr(2824, 139, 139), valueRange), $clone(new valueRange.ptr(64, 140, 143), valueRange), $clone(new valueRange.ptr(2056, 144, 153), valueRange), $clone(new valueRange.ptr(64, 154, 157), valueRange), $clone(new valueRange.ptr(2072, 158, 159), valueRange), $clone(new valueRange.ptr(64, 160, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(64, 128, 176), valueRange), $clone(new valueRange.ptr(2072, 177, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(2072, 128, 180), valueRange), $clone(new valueRange.ptr(64, 181, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(64, 128, 128), valueRange), $clone(new valueRange.ptr(2072, 129, 189), valueRange), $clone(new valueRange.ptr(64, 190, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(64, 128, 175), valueRange), $clone(new valueRange.ptr(24, 176, 177), valueRange), $clone(new valueRange.ptr(64, 178, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(24, 128, 171), valueRange), $clone(new valueRange.ptr(64, 172, 175), valueRange), $clone(new valueRange.ptr(24, 176, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(24, 128, 147), valueRange), $clone(new valueRange.ptr(64, 148, 159), valueRange), $clone(new valueRange.ptr(24, 160, 174), valueRange), $clone(new valueRange.ptr(64, 175, 176), valueRange), $clone(new valueRange.ptr(24, 177, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(64, 128, 128), valueRange), $clone(new valueRange.ptr(24, 129, 143), valueRange), $clone(new valueRange.ptr(64, 144, 144), valueRange), $clone(new valueRange.ptr(24, 145, 181), valueRange), $clone(new valueRange.ptr(64, 182, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(24, 128, 143), valueRange), $clone(new valueRange.ptr(49705, 144, 144), valueRange), $clone(new valueRange.ptr(24, 145, 173), valueRange), $clone(new valueRange.ptr(64, 174, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(64, 128, 165), valueRange), $clone(new valueRange.ptr(24, 166, 191), valueRange), $clone(new valueRange.ptr(0, 15, 0), valueRange), $clone(new valueRange.ptr(51281, 128, 128), valueRange), $clone(new valueRange.ptr(51361, 129, 129), valueRange), $clone(new valueRange.ptr(51441, 130, 130), valueRange), $clone(new valueRange.ptr(51521, 131, 131), valueRange), $clone(new valueRange.ptr(51601, 132, 132), valueRange), $clone(new valueRange.ptr(51681, 133, 133), valueRange), $clone(new valueRange.ptr(51761, 134, 134), valueRange), $clone(new valueRange.ptr(51841, 135, 135), valueRange), $clone(new valueRange.ptr(51921, 136, 136), valueRange), $clone(new valueRange.ptr(64, 137, 143), valueRange), $clone(new valueRange.ptr(52001, 144, 144), valueRange), $clone(new valueRange.ptr(52033, 145, 145), valueRange), $clone(new valueRange.ptr(64, 146, 159), valueRange), $clone(new valueRange.ptr(24, 160, 165), valueRange), $clone(new valueRange.ptr(64, 166, 191), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(24, 128, 151), valueRange), $clone(new valueRange.ptr(64, 152, 159), valueRange), $clone(new valueRange.ptr(24, 160, 172), valueRange), $clone(new valueRange.ptr(64, 173, 175), valueRange), $clone(new valueRange.ptr(24, 176, 188), valueRange), $clone(new valueRange.ptr(64, 189, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(24, 128, 179), valueRange), $clone(new valueRange.ptr(64, 180, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(24, 128, 152), valueRange), $clone(new valueRange.ptr(64, 153, 159), valueRange), $clone(new valueRange.ptr(24, 160, 171), valueRange), $clone(new valueRange.ptr(64, 172, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(24, 128, 139), valueRange), $clone(new valueRange.ptr(64, 140, 143), valueRange), $clone(new valueRange.ptr(24, 144, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(24, 128, 135), valueRange), $clone(new valueRange.ptr(64, 136, 143), valueRange), $clone(new valueRange.ptr(24, 144, 153), valueRange), $clone(new valueRange.ptr(64, 154, 159), valueRange), $clone(new valueRange.ptr(24, 160, 191), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(24, 128, 135), valueRange), $clone(new valueRange.ptr(64, 136, 143), valueRange), $clone(new valueRange.ptr(24, 144, 173), valueRange), $clone(new valueRange.ptr(64, 174, 175), valueRange), $clone(new valueRange.ptr(24, 176, 177), valueRange), $clone(new valueRange.ptr(64, 178, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(24, 128, 184), valueRange), $clone(new valueRange.ptr(64, 185, 185), valueRange), $clone(new valueRange.ptr(24, 186, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(24, 128, 139), valueRange), $clone(new valueRange.ptr(64, 140, 140), valueRange), $clone(new valueRange.ptr(24, 141, 191), valueRange), $clone(new valueRange.ptr(0, 8, 0), valueRange), $clone(new valueRange.ptr(24, 128, 147), valueRange), $clone(new valueRange.ptr(64, 148, 159), valueRange), $clone(new valueRange.ptr(24, 160, 173), valueRange), $clone(new valueRange.ptr(64, 174, 175), valueRange), $clone(new valueRange.ptr(24, 176, 180), valueRange), $clone(new valueRange.ptr(64, 181, 183), valueRange), $clone(new valueRange.ptr(24, 184, 186), valueRange), $clone(new valueRange.ptr(64, 187, 191), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(24, 128, 134), valueRange), $clone(new valueRange.ptr(64, 135, 143), valueRange), $clone(new valueRange.ptr(24, 144, 168), valueRange), $clone(new valueRange.ptr(64, 169, 175), valueRange), $clone(new valueRange.ptr(24, 176, 182), valueRange), $clone(new valueRange.ptr(64, 183, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(24, 128, 130), valueRange), $clone(new valueRange.ptr(64, 131, 143), valueRange), $clone(new valueRange.ptr(24, 144, 150), valueRange), $clone(new valueRange.ptr(64, 151, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(24, 128, 146), valueRange), $clone(new valueRange.ptr(64, 147, 147), valueRange), $clone(new valueRange.ptr(24, 148, 191), valueRange), $clone(new valueRange.ptr(0, 13, 0), valueRange), $clone(new valueRange.ptr(24, 128, 138), valueRange), $clone(new valueRange.ptr(64, 139, 175), valueRange), $clone(new valueRange.ptr(8001, 176, 176), valueRange), $clone(new valueRange.ptr(201, 177, 177), valueRange), $clone(new valueRange.ptr(105, 178, 178), valueRange), $clone(new valueRange.ptr(121, 179, 179), valueRange), $clone(new valueRange.ptr(8017, 180, 180), valueRange), $clone(new valueRange.ptr(8033, 181, 181), valueRange), $clone(new valueRange.ptr(8049, 182, 182), valueRange), $clone(new valueRange.ptr(8065, 183, 183), valueRange), $clone(new valueRange.ptr(8081, 184, 184), valueRange), $clone(new valueRange.ptr(8097, 185, 185), valueRange), $clone(new valueRange.ptr(64, 186, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(8, 128, 157), valueRange), $clone(new valueRange.ptr(64, 158, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(8, 128, 180), valueRange), $clone(new valueRange.ptr(64, 181, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(8, 128, 157), valueRange), $clone(new valueRange.ptr(64, 158, 159), valueRange), $clone(new valueRange.ptr(8, 160, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(8, 128, 161), valueRange), $clone(new valueRange.ptr(64, 162, 175), valueRange), $clone(new valueRange.ptr(8, 176, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(8, 128, 160), valueRange), $clone(new valueRange.ptr(64, 161, 191), valueRange), $clone(new valueRange.ptr(32, 15, 0), valueRange), $clone(new valueRange.ptr(57121, 128, 137), valueRange), $clone(new valueRange.ptr(36405, 138, 138), valueRange), $clone(new valueRange.ptr(57441, 139, 156), valueRange), $clone(new valueRange.ptr(36437, 157, 157), valueRange), $clone(new valueRange.ptr(58017, 158, 162), valueRange), $clone(new valueRange.ptr(36469, 163, 163), valueRange), $clone(new valueRange.ptr(58177, 164, 171), valueRange), $clone(new valueRange.ptr(32525, 172, 172), valueRange), $clone(new valueRange.ptr(58433, 173, 175), valueRange), $clone(new valueRange.ptr(36501, 176, 176), valueRange), $clone(new valueRange.ptr(58529, 177, 182), valueRange), $clone(new valueRange.ptr(36533, 183, 185), valueRange), $clone(new valueRange.ptr(58721, 186, 186), valueRange), $clone(new valueRange.ptr(36629, 187, 187), valueRange), $clone(new valueRange.ptr(58753, 188, 191), valueRange), $clone(new valueRange.ptr(32, 16, 0), valueRange), $clone(new valueRange.ptr(37813, 128, 128), valueRange), $clone(new valueRange.ptr(61697, 129, 134), valueRange), $clone(new valueRange.ptr(37845, 135, 138), valueRange), $clone(new valueRange.ptr(55905, 139, 139), valueRange), $clone(new valueRange.ptr(61889, 140, 150), valueRange), $clone(new valueRange.ptr(37973, 151, 151), valueRange), $clone(new valueRange.ptr(62241, 152, 163), valueRange), $clone(new valueRange.ptr(38005, 164, 166), valueRange), $clone(new valueRange.ptr(62625, 167, 170), valueRange), $clone(new valueRange.ptr(38101, 171, 171), valueRange), $clone(new valueRange.ptr(62753, 172, 172), valueRange), $clone(new valueRange.ptr(38133, 173, 173), valueRange), $clone(new valueRange.ptr(62785, 174, 175), valueRange), $clone(new valueRange.ptr(38165, 176, 177), valueRange), $clone(new valueRange.ptr(62849, 178, 190), valueRange), $clone(new valueRange.ptr(8256, 191, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(8, 128, 138), valueRange), $clone(new valueRange.ptr(64, 139, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(64, 128, 128), valueRange), $clone(new valueRange.ptr(832, 129, 129), valueRange), $clone(new valueRange.ptr(64, 130, 159), valueRange), $clone(new valueRange.ptr(832, 160, 191), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(832, 128, 191), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(13248, 128, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(13248, 128, 175), valueRange), $clone(new valueRange.ptr(64, 176, 191), valueRange)]); + mappings = " \xCC\x88a \xCC\x8423 \xCC\x81 \xCC\xA71o1\xE2\x81\x8441\xE2\x81\x8423\xE2\x81\x844i\xCC\x87l\xC2\xB7\xCA\xBCnsd\xC5\xBE\xE2\xB1\xA5\xE2\xB1\xA6hjrwy \xCC\x86 \xCC\x87 \xCC\x8A \xCC\xA8 \xCC\x83 \xCC\x8Blx\xCC\x88\xCC\x81 \xCE\xB9; \xCC\x88\xCC\x81\xD5\xA5\xD6\x82\xD8\xA7\xD9\xB4\xD9\x88\xD9\xB4\xDB\x87\xD9\xB4\xD9\x8A\xD9\xB4\xE0\xA4\x95\xE0\xA4\xBC\xE0\xA4\x96\xE0\xA4\xBC\xE0\xA4\x97\xE0\xA4\xBC\xE0\xA4\x9C\xE0\xA4\xBC\xE0\xA4\xA1\xE0\xA4\xBC\xE0\xA4\xA2\xE0\xA4\xBC\xE0\xA4\xAB\xE0\xA4\xBC\xE0\xA4\xAF\xE0\xA4\xBC\xE0\xA6\xA1\xE0\xA6\xBC\xE0\xA6\xA2\xE0\xA6\xBC\xE0\xA6\xAF\xE0\xA6\xBC\xE0\xA8\xB2\xE0\xA8\xBC\xE0\xA8\xB8\xE0\xA8\xBC\xE0\xA8\x96\xE0\xA8\xBC\xE0\xA8\x97\xE0\xA8\xBC\xE0\xA8\x9C\xE0\xA8\xBC\xE0\xA8\xAB\xE0\xA8\xBC\xE0\xAC\xA1\xE0\xAC\xBC\xE0\xAC\xA2\xE0\xAC\xBC\xE0\xB9\x8D\xE0\xB8\xB2\xE0\xBB\x8D\xE0\xBA\xB2\xE0\xBA\xAB\xE0\xBA\x99\xE0\xBA\xAB\xE0\xBA\xA1\xE0\xBD\x82\xE0\xBE\xB7\xE0\xBD\x8C\xE0\xBE\xB7\xE0\xBD\x91\xE0\xBE\xB7\xE0\xBD\x96\xE0\xBE\xB7\xE0\xBD\x9B\xE0\xBE\xB7\xE0\xBD\x80\xE0\xBE\xB5\xE0\xBD\xB1\xE0\xBD\xB2\xE0\xBD\xB1\xE0\xBD\xB4\xE0\xBE\xB2\xE0\xBE\x80\xE0\xBE\xB2\xE0\xBD\xB1\xE0\xBE\x80\xE0\xBE\xB3\xE0\xBE\x80\xE0\xBE\xB3\xE0\xBD\xB1\xE0\xBE\x80\xE0\xBD\xB1\xE0\xBE\x80\xE0\xBE\x92\xE0\xBE\xB7\xE0\xBE\x9C\xE0\xBE\xB7\xE0\xBE\xA1\xE0\xBE\xB7\xE0\xBE\xA6\xE0\xBE\xB7\xE0\xBE\xAB\xE0\xBE\xB7\xE0\xBE\x90\xE0\xBE\xB5\xD0\xB2\xD0\xB4\xD0\xBE\xD1\x81\xD1\x82\xD1\x8A\xD1\xA3\xC3\xA6bde\xC7\x9Dgikmn\xC8\xA3ptu\xC9\x90\xC9\x91\xC9\x99\xC9\x9B\xC9\x9C\xC5\x8B\xC9\x94\xC9\xAFv\xCE\xB2\xCE\xB3\xCE\xB4\xCF\x86\xCF\x87\xCF\x81\xD0\xBD\xC9\x92c\xC9\x95\xC3\xB0f\xC9\x9F\xC9\xA1\xC9\xA5\xC9\xA8\xC9\xA9\xC9\xAA\xCA\x9D\xC9\xAD\xCA\x9F\xC9\xB1\xC9\xB0\xC9\xB2\xC9\xB3\xC9\xB4\xC9\xB5\xC9\xB8\xCA\x82\xCA\x83\xC6\xAB\xCA\x89\xCA\x8A\xCA\x8B\xCA\x8Cz\xCA\x90\xCA\x91\xCA\x92\xCE\xB8ss\xCE\xAC\xCE\xAD\xCE\xAE\xCE\xAF\xCF\x8C\xCF\x8D\xCF\x8E\xE1\xBC\x80\xCE\xB9\xE1\xBC\x81\xCE\xB9\xE1\xBC\x82\xCE\xB9\xE1\xBC\x83\xCE\xB9\xE1\xBC\x84\xCE\xB9\xE1\xBC\x85\xCE\xB9\xE1\xBC\x86\xCE\xB9\xE1\xBC\x87\xCE\xB9\xE1\xBC\xA0\xCE\xB9\xE1\xBC\xA1\xCE\xB9\xE1\xBC\xA2\xCE\xB9\xE1\xBC\xA3\xCE\xB9\xE1\xBC\xA4\xCE\xB9\xE1\xBC\xA5\xCE\xB9\xE1\xBC\xA6\xCE\xB9\xE1\xBC\xA7\xCE\xB9\xE1\xBD\xA0\xCE\xB9\xE1\xBD\xA1\xCE\xB9\xE1\xBD\xA2\xCE\xB9\xE1\xBD\xA3\xCE\xB9\xE1\xBD\xA4\xCE\xB9\xE1\xBD\xA5\xCE\xB9\xE1\xBD\xA6\xCE\xB9\xE1\xBD\xA7\xCE\xB9\xE1\xBD\xB0\xCE\xB9\xCE\xB1\xCE\xB9\xCE\xAC\xCE\xB9\xE1\xBE\xB6\xCE\xB9\xCE\xB9 \xCC\x88\xCD\x82\xE1\xBD\xB4\xCE\xB9\xCE\xB7\xCE\xB9\xCE\xAE\xCE\xB9\xE1\xBF\x86\xCE\xB9 \xCC\x93\xCC\x80 \xCC\x93\xCC\x81 \xCC\x93\xCD\x82\xCE\x90 \xCC\x94\xCC\x80 \xCC\x94\xCC\x81 \xCC\x94\xCD\x82\xCE\xB0 \xCC\x88\xCC\x80`\xE1\xBD\xBC\xCE\xB9\xCF\x89\xCE\xB9\xCF\x8E\xCE\xB9\xE1\xBF\xB6\xCE\xB9\xE2\x80\xB2\xE2\x80\xB2\xE2\x80\xB2\xE2\x80\xB2\xE2\x80\xB2\xE2\x80\xB5\xE2\x80\xB5\xE2\x80\xB5\xE2\x80\xB5\xE2\x80\xB5!!???!!?\xE2\x80\xB2\xE2\x80\xB2\xE2\x80\xB2\xE2\x80\xB20456789+=()rs\xC4\xA7noqsmtm\xCF\x89\xC3\xA5\xD7\x90\xD7\x91\xD7\x92\xD7\x93\xCF\x801\xE2\x81\x8471\xE2\x81\x8491\xE2\x81\x84101\xE2\x81\x8432\xE2\x81\x8431\xE2\x81\x8452\xE2\x81\x8453\xE2\x81\x8454\xE2\x81\x8451\xE2\x81\x8465\xE2\x81\x8461\xE2\x81\x8483\xE2\x81\x8485\xE2\x81\x8487\xE2\x81\x8481\xE2\x81\x84iiivviviiiixxi0\xE2\x81\x843\xE2\x88\xAB\xE2\x88\xAB\xE2\x88\xAB\xE2\x88\xAB\xE2\x88\xAB\xE2\x88\xAE\xE2\x88\xAE\xE2\x88\xAE\xE2\x88\xAE\xE2\x88\xAE1011121314151617181920(10)(11)(12)(13)(14)(15)(16)(17)(18)(19)(20)\xE2\x88\xAB\xE2\x88\xAB\xE2\x88\xAB\xE2\x88\xAB==\xE2\xAB\x9D\xCC\xB8\xC9\xAB\xC9\xBD\xC8\xBF\xC9\x80. \xE3\x82\x99 \xE3\x82\x9A\xE3\x82\x88\xE3\x82\x8A\xE3\x82\xB3\xE3\x83\x88(\xE1\x84\x80)(\xE1\x84\x82)(\xE1\x84\x83)(\xE1\x84\x85)(\xE1\x84\x86)(\xE1\x84\x87)(\xE1\x84\x89)(\xE1\x84\x8B)(\xE1\x84\x8C)(\xE1\x84\x8E)(\xE1\x84\x8F)(\xE1\x84\x90)(\xE1\x84\x91)(\xE1\x84\x92)(\xEA\xB0\x80)(\xEB\x82\x98)(\xEB\x8B\xA4)(\xEB\x9D\xBC)(\xEB\xA7\x88)(\xEB\xB0\x94)(\xEC\x82\xAC)(\xEC\x95\x84)(\xEC\x9E\x90)(\xEC\xB0\xA8)(\xEC\xB9\xB4)(\xED\x83\x80)(\xED\x8C\x8C)(\xED\x95\x98)(\xEC\xA3\xBC)(\xEC\x98\xA4\xEC\xA0\x84)(\xEC\x98\xA4\xED\x9B\x84)(\xE4\xB8\x80)(\xE4\xBA\x8C)(\xE4\xB8\x89)(\xE5\x9B\x9B)(\xE4\xBA\x94)(\xE5\x85\xAD)(\xE4\xB8\x83)(\xE5\x85\xAB)(\xE4\xB9\x9D)(\xE5\x8D\x81)(\xE6\x9C\x88)(\xE7\x81\xAB)(\xE6\xB0\xB4)(\xE6\x9C\xA8)(\xE9\x87\x91)(\xE5\x9C\x9F)(\xE6\x97\xA5)(\xE6\xA0\xAA)(\xE6\x9C\x89)(\xE7\xA4\xBE)(\xE5\x90\x8D)(\xE7\x89\xB9)(\xE8\xB2\xA1)(\xE7\xA5\x9D)(\xE5\x8A\xB4)(\xE4\xBB\xA3)(\xE5\x91\xBC)(\xE5\xAD\xA6)(\xE7\x9B\xA3)(\xE4\xBC\x81)(\xE8\xB3\x87)(\xE5\x8D\x94)(\xE7\xA5\xAD)(\xE4\xBC\x91)(\xE8\x87\xAA)(\xE8\x87\xB3)212223242526272829303132333435\xEC\xB0\xB8\xEA\xB3\xA0\xEC\xA3\xBC\xEC\x9D\x983637383940414243444546474849501\xE6\x9C\x882\xE6\x9C\x883\xE6\x9C\x884\xE6\x9C\x885\xE6\x9C\x886\xE6\x9C\x887\xE6\x9C\x888\xE6\x9C\x889\xE6\x9C\x8810\xE6\x9C\x8811\xE6\x9C\x8812\xE6\x9C\x88hgev\xE4\xBB\xA4\xE5\x92\x8C\xE3\x82\xA2\xE3\x83\x91\xE3\x83\xBC\xE3\x83\x88\xE3\x82\xA2\xE3\x83\xAB\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA2\xE3\x83\xB3\xE3\x83\x9A\xE3\x82\xA2\xE3\x82\xA2\xE3\x83\xBC\xE3\x83\xAB\xE3\x82\xA4\xE3\x83\x8B\xE3\x83\xB3\xE3\x82\xB0\xE3\x82\xA4\xE3\x83\xB3\xE3\x83\x81\xE3\x82\xA6\xE3\x82\xA9\xE3\x83\xB3\xE3\x82\xA8\xE3\x82\xB9\xE3\x82\xAF\xE3\x83\xBC\xE3\x83\x89\xE3\x82\xA8\xE3\x83\xBC\xE3\x82\xAB\xE3\x83\xBC\xE3\x82\xAA\xE3\x83\xB3\xE3\x82\xB9\xE3\x82\xAA\xE3\x83\xBC\xE3\x83\xA0\xE3\x82\xAB\xE3\x82\xA4\xE3\x83\xAA\xE3\x82\xAB\xE3\x83\xA9\xE3\x83\x83\xE3\x83\x88\xE3\x82\xAB\xE3\x83\xAD\xE3\x83\xAA\xE3\x83\xBC\xE3\x82\xAC\xE3\x83\xAD\xE3\x83\xB3\xE3\x82\xAC\xE3\x83\xB3\xE3\x83\x9E\xE3\x82\xAE\xE3\x82\xAC\xE3\x82\xAE\xE3\x83\x8B\xE3\x83\xBC\xE3\x82\xAD\xE3\x83\xA5\xE3\x83\xAA\xE3\x83\xBC\xE3\x82\xAE\xE3\x83\xAB\xE3\x83\x80\xE3\x83\xBC\xE3\x82\xAD\xE3\x83\xAD\xE3\x82\xAD\xE3\x83\xAD\xE3\x82\xB0\xE3\x83\xA9\xE3\x83\xA0\xE3\x82\xAD\xE3\x83\xAD\xE3\x83\xA1\xE3\x83\xBC\xE3\x83\x88\xE3\x83\xAB\xE3\x82\xAD\xE3\x83\xAD\xE3\x83\xAF\xE3\x83\x83\xE3\x83\x88\xE3\x82\xB0\xE3\x83\xA9\xE3\x83\xA0\xE3\x82\xB0\xE3\x83\xA9\xE3\x83\xA0\xE3\x83\x88\xE3\x83\xB3\xE3\x82\xAF\xE3\x83\xAB\xE3\x82\xBC\xE3\x82\xA4\xE3\x83\xAD\xE3\x82\xAF\xE3\x83\xAD\xE3\x83\xBC\xE3\x83\x8D\xE3\x82\xB1\xE3\x83\xBC\xE3\x82\xB9\xE3\x82\xB3\xE3\x83\xAB\xE3\x83\x8A\xE3\x82\xB3\xE3\x83\xBC\xE3\x83\x9D\xE3\x82\xB5\xE3\x82\xA4\xE3\x82\xAF\xE3\x83\xAB\xE3\x82\xB5\xE3\x83\xB3\xE3\x83\x81\xE3\x83\xBC\xE3\x83\xA0\xE3\x82\xB7\xE3\x83\xAA\xE3\x83\xB3\xE3\x82\xB0\xE3\x82\xBB\xE3\x83\xB3\xE3\x83\x81\xE3\x82\xBB\xE3\x83\xB3\xE3\x83\x88\xE3\x83\x80\xE3\x83\xBC\xE3\x82\xB9\xE3\x83\x87\xE3\x82\xB7\xE3\x83\x89\xE3\x83\xAB\xE3\x83\x88\xE3\x83\xB3\xE3\x83\x8A\xE3\x83\x8E\xE3\x83\x8E\xE3\x83\x83\xE3\x83\x88\xE3\x83\x8F\xE3\x82\xA4\xE3\x83\x84\xE3\x83\x91\xE3\x83\xBC\xE3\x82\xBB\xE3\x83\xB3\xE3\x83\x88\xE3\x83\x91\xE3\x83\xBC\xE3\x83\x84\xE3\x83\x90\xE3\x83\xBC\xE3\x83\xAC\xE3\x83\xAB\xE3\x83\x94\xE3\x82\xA2\xE3\x82\xB9\xE3\x83\x88\xE3\x83\xAB\xE3\x83\x94\xE3\x82\xAF\xE3\x83\xAB\xE3\x83\x94\xE3\x82\xB3\xE3\x83\x93\xE3\x83\xAB\xE3\x83\x95\xE3\x82\xA1\xE3\x83\xA9\xE3\x83\x83\xE3\x83\x89\xE3\x83\x95\xE3\x82\xA3\xE3\x83\xBC\xE3\x83\x88\xE3\x83\x96\xE3\x83\x83\xE3\x82\xB7\xE3\x82\xA7\xE3\x83\xAB\xE3\x83\x95\xE3\x83\xA9\xE3\x83\xB3\xE3\x83\x98\xE3\x82\xAF\xE3\x82\xBF\xE3\x83\xBC\xE3\x83\xAB\xE3\x83\x9A\xE3\x82\xBD\xE3\x83\x9A\xE3\x83\x8B\xE3\x83\x92\xE3\x83\x98\xE3\x83\xAB\xE3\x83\x84\xE3\x83\x9A\xE3\x83\xB3\xE3\x82\xB9\xE3\x83\x9A\xE3\x83\xBC\xE3\x82\xB8\xE3\x83\x99\xE3\x83\xBC\xE3\x82\xBF\xE3\x83\x9D\xE3\x82\xA4\xE3\x83\xB3\xE3\x83\x88\xE3\x83\x9C\xE3\x83\xAB\xE3\x83\x88\xE3\x83\x9B\xE3\x83\xB3\xE3\x83\x9D\xE3\x83\xB3\xE3\x83\x89\xE3\x83\x9B\xE3\x83\xBC\xE3\x83\xAB\xE3\x83\x9B\xE3\x83\xBC\xE3\x83\xB3\xE3\x83\x9E\xE3\x82\xA4\xE3\x82\xAF\xE3\x83\xAD\xE3\x83\x9E\xE3\x82\xA4\xE3\x83\xAB\xE3\x83\x9E\xE3\x83\x83\xE3\x83\x8F\xE3\x83\x9E\xE3\x83\xAB\xE3\x82\xAF\xE3\x83\x9E\xE3\x83\xB3\xE3\x82\xB7\xE3\x83\xA7\xE3\x83\xB3\xE3\x83\x9F\xE3\x82\xAF\xE3\x83\xAD\xE3\x83\xB3\xE3\x83\x9F\xE3\x83\xAA\xE3\x83\x9F\xE3\x83\xAA\xE3\x83\x90\xE3\x83\xBC\xE3\x83\xAB\xE3\x83\xA1\xE3\x82\xAC\xE3\x83\xA1\xE3\x82\xAC\xE3\x83\x88\xE3\x83\xB3\xE3\x83\xA1\xE3\x83\xBC\xE3\x83\x88\xE3\x83\xAB\xE3\x83\xA4\xE3\x83\xBC\xE3\x83\x89\xE3\x83\xA4\xE3\x83\xBC\xE3\x83\xAB\xE3\x83\xA6\xE3\x82\xA2\xE3\x83\xB3\xE3\x83\xAA\xE3\x83\x83\xE3\x83\x88\xE3\x83\xAB\xE3\x83\xAA\xE3\x83\xA9\xE3\x83\xAB\xE3\x83\x94\xE3\x83\xBC\xE3\x83\xAB\xE3\x83\xBC\xE3\x83\x96\xE3\x83\xAB\xE3\x83\xAC\xE3\x83\xA0\xE3\x83\xAC\xE3\x83\xB3\xE3\x83\x88\xE3\x82\xB2\xE3\x83\xB3\xE3\x83\xAF\xE3\x83\x83\xE3\x83\x880\xE7\x82\xB91\xE7\x82\xB92\xE7\x82\xB93\xE7\x82\xB94\xE7\x82\xB95\xE7\x82\xB96\xE7\x82\xB97\xE7\x82\xB98\xE7\x82\xB99\xE7\x82\xB910\xE7\x82\xB911\xE7\x82\xB912\xE7\x82\xB913\xE7\x82\xB914\xE7\x82\xB915\xE7\x82\xB916\xE7\x82\xB917\xE7\x82\xB918\xE7\x82\xB919\xE7\x82\xB920\xE7\x82\xB921\xE7\x82\xB922\xE7\x82\xB923\xE7\x82\xB924\xE7\x82\xB9daauovpcdmiu\xE5\xB9\xB3\xE6\x88\x90\xE6\x98\xAD\xE5\x92\x8C\xE5\xA4\xA7\xE6\xAD\xA3\xE6\x98\x8E\xE6\xB2\xBB\xE6\xA0\xAA\xE5\xBC\x8F\xE4\xBC\x9A\xE7\xA4\xBEpanamakakbmbgbkcalpfnfmgkghzmldlklfmnmmmcmkmm2m3m\xE2\x88\x95sm\xE2\x88\x95s2rad\xE2\x88\x95srad\xE2\x88\x95s2psnsmspvnvmvkvpwnwmwkwbqcccdc\xE2\x88\x95kgdbgyhahpinkkktlmlnlxphprsrsvwbv\xE2\x88\x95ma\xE2\x88\x95m1\xE6\x97\xA52\xE6\x97\xA53\xE6\x97\xA54\xE6\x97\xA55\xE6\x97\xA56\xE6\x97\xA57\xE6\x97\xA58\xE6\x97\xA59\xE6\x97\xA510\xE6\x97\xA511\xE6\x97\xA512\xE6\x97\xA513\xE6\x97\xA514\xE6\x97\xA515\xE6\x97\xA516\xE6\x97\xA517\xE6\x97\xA518\xE6\x97\xA519\xE6\x97\xA520\xE6\x97\xA521\xE6\x97\xA522\xE6\x97\xA523\xE6\x97\xA524\xE6\x97\xA525\xE6\x97\xA526\xE6\x97\xA527\xE6\x97\xA528\xE6\x97\xA529\xE6\x97\xA530\xE6\x97\xA531\xE6\x97\xA5\xD1\x8C\xC9\xA6\xC9\xAC\xCA\x9E\xCA\x87\xC5\x93\xCA\x8D\xF0\xA4\x8B\xAE\xF0\xA2\xA1\x8A\xF0\xA2\xA1\x84\xF0\xA3\x8F\x95\xF0\xA5\x89\x89\xF0\xA5\xB3\x90\xF0\xA7\xBB\x93fffiflst\xD5\xB4\xD5\xB6\xD5\xB4\xD5\xA5\xD5\xB4\xD5\xAB\xD5\xBE\xD5\xB6\xD5\xB4\xD5\xAD\xD7\x99\xD6\xB4\xD7\xB2\xD6\xB7\xD7\xA2\xD7\x94\xD7\x9B\xD7\x9C\xD7\x9D\xD7\xA8\xD7\xAA\xD7\xA9\xD7\x81\xD7\xA9\xD7\x82\xD7\xA9\xD6\xBC\xD7\x81\xD7\xA9\xD6\xBC\xD7\x82\xD7\x90\xD6\xB7\xD7\x90\xD6\xB8\xD7\x90\xD6\xBC\xD7\x91\xD6\xBC\xD7\x92\xD6\xBC\xD7\x93\xD6\xBC\xD7\x94\xD6\xBC\xD7\x95\xD6\xBC\xD7\x96\xD6\xBC\xD7\x98\xD6\xBC\xD7\x99\xD6\xBC\xD7\x9A\xD6\xBC\xD7\x9B\xD6\xBC\xD7\x9C\xD6\xBC\xD7\x9E\xD6\xBC\xD7\xA0\xD6\xBC\xD7\xA1\xD6\xBC\xD7\xA3\xD6\xBC\xD7\xA4\xD6\xBC\xD7\xA6\xD6\xBC\xD7\xA7\xD6\xBC\xD7\xA8\xD6\xBC\xD7\xA9\xD6\xBC\xD7\xAA\xD6\xBC\xD7\x95\xD6\xB9\xD7\x91\xD6\xBF\xD7\x9B\xD6\xBF\xD7\xA4\xD6\xBF\xD7\x90\xD7\x9C\xD9\xB1\xD9\xBB\xD9\xBE\xDA\x80\xD9\xBA\xD9\xBF\xD9\xB9\xDA\xA4\xDA\xA6\xDA\x84\xDA\x83\xDA\x86\xDA\x87\xDA\x8D\xDA\x8C\xDA\x8E\xDA\x88\xDA\x98\xDA\x91\xDA\xA9\xDA\xAF\xDA\xB3\xDA\xB1\xDA\xBA\xDA\xBB\xDB\x80\xDB\x81\xDA\xBE\xDB\x92\xDB\x93\xDA\xAD\xDB\x87\xDB\x86\xDB\x88\xDB\x8B\xDB\x85\xDB\x89\xDB\x90\xD9\x89\xD8\xA6\xD8\xA7\xD8\xA6\xDB\x95\xD8\xA6\xD9\x88\xD8\xA6\xDB\x87\xD8\xA6\xDB\x86\xD8\xA6\xDB\x88\xD8\xA6\xDB\x90\xD8\xA6\xD9\x89\xDB\x8C\xD8\xA6\xD8\xAC\xD8\xA6\xD8\xAD\xD8\xA6\xD9\x85\xD8\xA6\xD9\x8A\xD8\xA8\xD8\xAC\xD8\xA8\xD8\xAD\xD8\xA8\xD8\xAE\xD8\xA8\xD9\x85\xD8\xA8\xD9\x89\xD8\xA8\xD9\x8A\xD8\xAA\xD8\xAC\xD8\xAA\xD8\xAD\xD8\xAA\xD8\xAE\xD8\xAA\xD9\x85\xD8\xAA\xD9\x89\xD8\xAA\xD9\x8A\xD8\xAB\xD8\xAC\xD8\xAB\xD9\x85\xD8\xAB\xD9\x89\xD8\xAB\xD9\x8A\xD8\xAC\xD8\xAD\xD8\xAC\xD9\x85\xD8\xAD\xD8\xAC\xD8\xAD\xD9\x85\xD8\xAE\xD8\xAC\xD8\xAE\xD8\xAD\xD8\xAE\xD9\x85\xD8\xB3\xD8\xAC\xD8\xB3\xD8\xAD\xD8\xB3\xD8\xAE\xD8\xB3\xD9\x85\xD8\xB5\xD8\xAD\xD8\xB5\xD9\x85\xD8\xB6\xD8\xAC\xD8\xB6\xD8\xAD\xD8\xB6\xD8\xAE\xD8\xB6\xD9\x85\xD8\xB7\xD8\xAD\xD8\xB7\xD9\x85\xD8\xB8\xD9\x85\xD8\xB9\xD8\xAC\xD8\xB9\xD9\x85\xD8\xBA\xD8\xAC\xD8\xBA\xD9\x85\xD9\x81\xD8\xAC\xD9\x81\xD8\xAD\xD9\x81\xD8\xAE\xD9\x81\xD9\x85\xD9\x81\xD9\x89\xD9\x81\xD9\x8A\xD9\x82\xD8\xAD\xD9\x82\xD9\x85\xD9\x82\xD9\x89\xD9\x82\xD9\x8A\xD9\x83\xD8\xA7\xD9\x83\xD8\xAC\xD9\x83\xD8\xAD\xD9\x83\xD8\xAE\xD9\x83\xD9\x84\xD9\x83\xD9\x85\xD9\x83\xD9\x89\xD9\x83\xD9\x8A\xD9\x84\xD8\xAC\xD9\x84\xD8\xAD\xD9\x84\xD8\xAE\xD9\x84\xD9\x85\xD9\x84\xD9\x89\xD9\x84\xD9\x8A\xD9\x85\xD8\xAC\xD9\x85\xD8\xAD\xD9\x85\xD8\xAE\xD9\x85\xD9\x85\xD9\x85\xD9\x89\xD9\x85\xD9\x8A\xD9\x86\xD8\xAC\xD9\x86\xD8\xAD\xD9\x86\xD8\xAE\xD9\x86\xD9\x85\xD9\x86\xD9\x89\xD9\x86\xD9\x8A\xD9\x87\xD8\xAC\xD9\x87\xD9\x85\xD9\x87\xD9\x89\xD9\x87\xD9\x8A\xD9\x8A\xD8\xAC\xD9\x8A\xD8\xAD\xD9\x8A\xD8\xAE\xD9\x8A\xD9\x85\xD9\x8A\xD9\x89\xD9\x8A\xD9\x8A\xD8\xB0\xD9\xB0\xD8\xB1\xD9\xB0\xD9\x89\xD9\xB0 \xD9\x8C\xD9\x91 \xD9\x8D\xD9\x91 \xD9\x8E\xD9\x91 \xD9\x8F\xD9\x91 \xD9\x90\xD9\x91 \xD9\x91\xD9\xB0\xD8\xA6\xD8\xB1\xD8\xA6\xD8\xB2\xD8\xA6\xD9\x86\xD8\xA8\xD8\xB1\xD8\xA8\xD8\xB2\xD8\xA8\xD9\x86\xD8\xAA\xD8\xB1\xD8\xAA\xD8\xB2\xD8\xAA\xD9\x86\xD8\xAB\xD8\xB1\xD8\xAB\xD8\xB2\xD8\xAB\xD9\x86\xD9\x85\xD8\xA7\xD9\x86\xD8\xB1\xD9\x86\xD8\xB2\xD9\x86\xD9\x86\xD9\x8A\xD8\xB1\xD9\x8A\xD8\xB2\xD9\x8A\xD9\x86\xD8\xA6\xD8\xAE\xD8\xA6\xD9\x87\xD8\xA8\xD9\x87\xD8\xAA\xD9\x87\xD8\xB5\xD8\xAE\xD9\x84\xD9\x87\xD9\x86\xD9\x87\xD9\x87\xD9\xB0\xD9\x8A\xD9\x87\xD8\xAB\xD9\x87\xD8\xB3\xD9\x87\xD8\xB4\xD9\x85\xD8\xB4\xD9\x87\xD9\x80\xD9\x8E\xD9\x91\xD9\x80\xD9\x8F\xD9\x91\xD9\x80\xD9\x90\xD9\x91\xD8\xB7\xD9\x89\xD8\xB7\xD9\x8A\xD8\xB9\xD9\x89\xD8\xB9\xD9\x8A\xD8\xBA\xD9\x89\xD8\xBA\xD9\x8A\xD8\xB3\xD9\x89\xD8\xB3\xD9\x8A\xD8\xB4\xD9\x89\xD8\xB4\xD9\x8A\xD8\xAD\xD9\x89\xD8\xAD\xD9\x8A\xD8\xAC\xD9\x89\xD8\xAC\xD9\x8A\xD8\xAE\xD9\x89\xD8\xAE\xD9\x8A\xD8\xB5\xD9\x89\xD8\xB5\xD9\x8A\xD8\xB6\xD9\x89\xD8\xB6\xD9\x8A\xD8\xB4\xD8\xAC\xD8\xB4\xD8\xAD\xD8\xB4\xD8\xAE\xD8\xB4\xD8\xB1\xD8\xB3\xD8\xB1\xD8\xB5\xD8\xB1\xD8\xB6\xD8\xB1\xD8\xA7\xD9\x8B\xD8\xAA\xD8\xAC\xD9\x85\xD8\xAA\xD8\xAD\xD8\xAC\xD8\xAA\xD8\xAD\xD9\x85\xD8\xAA\xD8\xAE\xD9\x85\xD8\xAA\xD9\x85\xD8\xAC\xD8\xAA\xD9\x85\xD8\xAD\xD8\xAA\xD9\x85\xD8\xAE\xD8\xAC\xD9\x85\xD8\xAD\xD8\xAD\xD9\x85\xD9\x8A\xD8\xAD\xD9\x85\xD9\x89\xD8\xB3\xD8\xAD\xD8\xAC\xD8\xB3\xD8\xAC\xD8\xAD\xD8\xB3\xD8\xAC\xD9\x89\xD8\xB3\xD9\x85\xD8\xAD\xD8\xB3\xD9\x85\xD8\xAC\xD8\xB3\xD9\x85\xD9\x85\xD8\xB5\xD8\xAD\xD8\xAD\xD8\xB5\xD9\x85\xD9\x85\xD8\xB4\xD8\xAD\xD9\x85\xD8\xB4\xD8\xAC\xD9\x8A\xD8\xB4\xD9\x85\xD8\xAE\xD8\xB4\xD9\x85\xD9\x85\xD8\xB6\xD8\xAD\xD9\x89\xD8\xB6\xD8\xAE\xD9\x85\xD8\xB7\xD9\x85\xD8\xAD\xD8\xB7\xD9\x85\xD9\x85\xD8\xB7\xD9\x85\xD9\x8A\xD8\xB9\xD8\xAC\xD9\x85\xD8\xB9\xD9\x85\xD9\x85\xD8\xB9\xD9\x85\xD9\x89\xD8\xBA\xD9\x85\xD9\x85\xD8\xBA\xD9\x85\xD9\x8A\xD8\xBA\xD9\x85\xD9\x89\xD9\x81\xD8\xAE\xD9\x85\xD9\x82\xD9\x85\xD8\xAD\xD9\x82\xD9\x85\xD9\x85\xD9\x84\xD8\xAD\xD9\x85\xD9\x84\xD8\xAD\xD9\x8A\xD9\x84\xD8\xAD\xD9\x89\xD9\x84\xD8\xAC\xD8\xAC\xD9\x84\xD8\xAE\xD9\x85\xD9\x84\xD9\x85\xD8\xAD\xD9\x85\xD8\xAD\xD8\xAC\xD9\x85\xD8\xAD\xD9\x85\xD9\x85\xD8\xAD\xD9\x8A\xD9\x85\xD8\xAC\xD8\xAD\xD9\x85\xD8\xAC\xD9\x85\xD9\x85\xD8\xAE\xD8\xAC\xD9\x85\xD8\xAE\xD9\x85\xD9\x85\xD8\xAC\xD8\xAE\xD9\x87\xD9\x85\xD8\xAC\xD9\x87\xD9\x85\xD9\x85\xD9\x86\xD8\xAD\xD9\x85\xD9\x86\xD8\xAD\xD9\x89\xD9\x86\xD8\xAC\xD9\x85\xD9\x86\xD8\xAC\xD9\x89\xD9\x86\xD9\x85\xD9\x8A\xD9\x86\xD9\x85\xD9\x89\xD9\x8A\xD9\x85\xD9\x85\xD8\xA8\xD8\xAE\xD9\x8A\xD8\xAA\xD8\xAC\xD9\x8A\xD8\xAA\xD8\xAC\xD9\x89\xD8\xAA\xD8\xAE\xD9\x8A\xD8\xAA\xD8\xAE\xD9\x89\xD8\xAA\xD9\x85\xD9\x8A\xD8\xAA\xD9\x85\xD9\x89\xD8\xAC\xD9\x85\xD9\x8A\xD8\xAC\xD8\xAD\xD9\x89\xD8\xAC\xD9\x85\xD9\x89\xD8\xB3\xD8\xAE\xD9\x89\xD8\xB5\xD8\xAD\xD9\x8A\xD8\xB4\xD8\xAD\xD9\x8A\xD8\xB6\xD8\xAD\xD9\x8A\xD9\x84\xD8\xAC\xD9\x8A\xD9\x84\xD9\x85\xD9\x8A\xD9\x8A\xD8\xAD\xD9\x8A\xD9\x8A\xD8\xAC\xD9\x8A\xD9\x8A\xD9\x85\xD9\x8A\xD9\x85\xD9\x85\xD9\x8A\xD9\x82\xD9\x85\xD9\x8A\xD9\x86\xD8\xAD\xD9\x8A\xD8\xB9\xD9\x85\xD9\x8A\xD9\x83\xD9\x85\xD9\x8A\xD9\x86\xD8\xAC\xD8\xAD\xD9\x85\xD8\xAE\xD9\x8A\xD9\x84\xD8\xAC\xD9\x85\xD9\x83\xD9\x85\xD9\x85\xD8\xAC\xD8\xAD\xD9\x8A\xD8\xAD\xD8\xAC\xD9\x8A\xD9\x85\xD8\xAC\xD9\x8A\xD9\x81\xD9\x85\xD9\x8A\xD8\xA8\xD8\xAD\xD9\x8A\xD8\xB3\xD8\xAE\xD9\x8A\xD9\x86\xD8\xAC\xD9\x8A\xD8\xB5\xD9\x84\xDB\x92\xD9\x82\xD9\x84\xDB\x92\xD8\xA7\xD9\x84\xD9\x84\xD9\x87\xD8\xA7\xD9\x83\xD8\xA8\xD8\xB1\xD9\x85\xD8\xAD\xD9\x85\xD8\xAF\xD8\xB5\xD9\x84\xD8\xB9\xD9\x85\xD8\xB1\xD8\xB3\xD9\x88\xD9\x84\xD8\xB9\xD9\x84\xD9\x8A\xD9\x87\xD9\x88\xD8\xB3\xD9\x84\xD9\x85\xD8\xB5\xD9\x84\xD9\x89\xD8\xB5\xD9\x84\xD9\x89 \xD8\xA7\xD9\x84\xD9\x84\xD9\x87 \xD8\xB9\xD9\x84\xD9\x8A\xD9\x87 \xD9\x88\xD8\xB3\xD9\x84\xD9\x85\xD8\xAC\xD9\x84 \xD8\xAC\xD9\x84\xD8\xA7\xD9\x84\xD9\x87\xD8\xB1\xDB\x8C\xD8\xA7\xD9\x84,:!?_{}[]#&*-<>\\$%@\xD9\x80\xD9\x8B\xD9\x80\xD9\x8E\xD9\x80\xD9\x8F\xD9\x80\xD9\x90\xD9\x80\xD9\x91\xD9\x80\xD9\x92\xD8\xA1\xD8\xA2\xD8\xA3\xD8\xA4\xD8\xA5\xD8\xA6\xD8\xA7\xD8\xA8\xD8\xA9\xD8\xAA\xD8\xAB\xD8\xAC\xD8\xAD\xD8\xAE\xD8\xAF\xD8\xB0\xD8\xB1\xD8\xB2\xD8\xB3\xD8\xB4\xD8\xB5\xD8\xB6\xD8\xB7\xD8\xB8\xD8\xB9\xD8\xBA\xD9\x81\xD9\x82\xD9\x83\xD9\x84\xD9\x85\xD9\x86\xD9\x87\xD9\x88\xD9\x8A\xD9\x84\xD8\xA2\xD9\x84\xD8\xA3\xD9\x84\xD8\xA5\xD9\x84\xD8\xA7\"'/^|~\xC2\xA2\xC2\xA3\xC2\xAC\xC2\xA6\xC2\xA5\xCB\x90\xCB\x91\xCA\x99\xC9\x93\xCA\xA3\xEA\xAD\xA6\xCA\xA5\xCA\xA4\xC9\x96\xC9\x97\xE1\xB6\x91\xC9\x98\xC9\x9E\xCA\xA9\xC9\xA4\xC9\xA2\xC9\xA0\xCA\x9B\xCA\x9C\xC9\xA7\xCA\x84\xCA\xAA\xCA\xAB\xEA\x9E\x8E\xC9\xAE\xCA\x8E\xC3\xB8\xC9\xB6\xC9\xB7\xC9\xBA\xC9\xBE\xCA\x80\xCA\xA8\xCA\xA6\xEA\xAD\xA7\xCA\xA7\xCA\x88\xE2\xB1\xB1\xCA\x8F\xCA\xA1\xCA\xA2\xCA\x98\xC7\x80\xC7\x81\xC7\x82\xF0\x9D\x85\x97\xF0\x9D\x85\xA5\xF0\x9D\x85\x98\xF0\x9D\x85\xA5\xF0\x9D\x85\x98\xF0\x9D\x85\xA5\xF0\x9D\x85\xAE\xF0\x9D\x85\x98\xF0\x9D\x85\xA5\xF0\x9D\x85\xAF\xF0\x9D\x85\x98\xF0\x9D\x85\xA5\xF0\x9D\x85\xB0\xF0\x9D\x85\x98\xF0\x9D\x85\xA5\xF0\x9D\x85\xB1\xF0\x9D\x85\x98\xF0\x9D\x85\xA5\xF0\x9D\x85\xB2\xF0\x9D\x86\xB9\xF0\x9D\x85\xA5\xF0\x9D\x86\xBA\xF0\x9D\x85\xA5\xF0\x9D\x86\xB9\xF0\x9D\x85\xA5\xF0\x9D\x85\xAE\xF0\x9D\x86\xBA\xF0\x9D\x85\xA5\xF0\x9D\x85\xAE\xF0\x9D\x86\xB9\xF0\x9D\x85\xA5\xF0\x9D\x85\xAF\xF0\x9D\x86\xBA\xF0\x9D\x85\xA5\xF0\x9D\x85\xAF\xC4\xB1\xC8\xB7\xCE\xB1\xCE\xB5\xCE\xB6\xCE\xB7\xCE\xBA\xCE\xBB\xCE\xBC\xCE\xBD\xCE\xBE\xCE\xBF\xCF\x83\xCF\x84\xCF\x85\xCF\x88\xE2\x88\x87\xE2\x88\x82\xCF\x9D\xD0\xB0\xD0\xB1\xD0\xB3\xD0\xB5\xD0\xB6\xD0\xB7\xD0\xB8\xD0\xBA\xD0\xBB\xD0\xBC\xD0\xBF\xD1\x80\xD1\x83\xD1\x84\xD1\x85\xD1\x86\xD1\x87\xD1\x88\xD1\x8B\xD1\x8D\xD1\x8E\xEA\x9A\x89\xD3\x99\xD1\x96\xD1\x98\xD3\xA9\xD2\xAF\xD3\x8F\xD2\x91\xD1\x95\xD1\x9F\xD2\xAB\xEA\x99\x91\xD2\xB1\xD9\xAE\xDA\xA1\xD9\xAF0,1,2,3,4,5,6,7,8,9,(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)(s)(t)(u)(v)(w)(x)(y)(z)\xE3\x80\x94s\xE3\x80\x95wzhvsdppvwcmcmdmrdj\xE3\x81\xBB\xE3\x81\x8B\xE3\x82\xB3\xE3\x82\xB3\xE3\x82\xB5\xE6\x89\x8B\xE5\xAD\x97\xE5\x8F\x8C\xE3\x83\x87\xE4\xBA\x8C\xE5\xA4\x9A\xE8\xA7\xA3\xE5\xA4\xA9\xE4\xBA\xA4\xE6\x98\xA0\xE7\x84\xA1\xE6\x96\x99\xE5\x89\x8D\xE5\xBE\x8C\xE5\x86\x8D\xE6\x96\xB0\xE5\x88\x9D\xE7\xB5\x82\xE7\x94\x9F\xE8\xB2\xA9\xE5\xA3\xB0\xE5\x90\xB9\xE6\xBC\x94\xE6\x8A\x95\xE6\x8D\x95\xE4\xB8\x80\xE4\xB8\x89\xE9\x81\x8A\xE5\xB7\xA6\xE4\xB8\xAD\xE5\x8F\xB3\xE6\x8C\x87\xE8\xB5\xB0\xE6\x89\x93\xE7\xA6\x81\xE7\xA9\xBA\xE5\x90\x88\xE6\xBA\x80\xE6\x9C\x89\xE6\x9C\x88\xE7\x94\xB3\xE5\x89\xB2\xE5\x96\xB6\xE9\x85\x8D\xE3\x80\x94\xE6\x9C\xAC\xE3\x80\x95\xE3\x80\x94\xE4\xB8\x89\xE3\x80\x95\xE3\x80\x94\xE4\xBA\x8C\xE3\x80\x95\xE3\x80\x94\xE5\xAE\x89\xE3\x80\x95\xE3\x80\x94\xE7\x82\xB9\xE3\x80\x95\xE3\x80\x94\xE6\x89\x93\xE3\x80\x95\xE3\x80\x94\xE7\x9B\x97\xE3\x80\x95\xE3\x80\x94\xE5\x8B\x9D\xE3\x80\x95\xE3\x80\x94\xE6\x95\x97\xE3\x80\x95\xE5\xBE\x97\xE5\x8F\xAF\xE4\xB8\xBD\xE4\xB8\xB8\xE4\xB9\x81\xE4\xBD\xA0\xE4\xBE\xAE\xE4\xBE\xBB\xE5\x80\x82\xE5\x81\xBA\xE5\x82\x99\xE5\x83\xA7\xE5\x83\x8F\xE3\x92\x9E\xE5\x85\x8D\xE5\x85\x94\xE5\x85\xA4\xE5\x85\xB7\xE3\x92\xB9\xE5\x85\xA7\xE5\x86\x97\xE5\x86\xA4\xE4\xBB\x8C\xE5\x86\xAC\xE5\x86\xB5\xE5\x87\xB5\xE5\x88\x83\xE3\x93\x9F\xE5\x88\xBB\xE5\x89\x86\xE5\x89\xB7\xE3\x94\x95\xE5\x8B\x87\xE5\x8B\x89\xE5\x8B\xA4\xE5\x8B\xBA\xE5\x8C\x85\xE5\x8C\x86\xE5\x8C\x97\xE5\x8D\x89\xE5\x8D\x91\xE5\x8D\x9A\xE5\x8D\xB3\xE5\x8D\xBD\xE5\x8D\xBF\xE7\x81\xB0\xE5\x8F\x8A\xE5\x8F\x9F\xE5\x8F\xAB\xE5\x8F\xB1\xE5\x90\x86\xE5\x92\x9E\xE5\x90\xB8\xE5\x91\x88\xE5\x91\xA8\xE5\x92\xA2\xE5\x93\xB6\xE5\x94\x90\xE5\x95\x93\xE5\x95\xA3\xE5\x96\x84\xE5\x96\x99\xE5\x96\xAB\xE5\x96\xB3\xE5\x97\x82\xE5\x9C\x96\xE5\x98\x86\xE5\x9C\x97\xE5\x99\x91\xE5\x99\xB4\xE5\x88\x87\xE5\xA3\xAE\xE5\x9F\x8E\xE5\x9F\xB4\xE5\xA0\x8D\xE5\x9E\x8B\xE5\xA0\xB2\xE5\xA0\xB1\xE5\xA2\xAC\xE5\xA3\xB2\xE5\xA3\xB7\xE5\xA4\x86\xE5\xA4\xA2\xE5\xA5\xA2\xE5\xA7\xAC\xE5\xA8\x9B\xE5\xA8\xA7\xE5\xA7\x98\xE5\xA9\xA6\xE3\x9B\xAE\xE5\xAC\x88\xE5\xAC\xBE\xE5\xAF\x83\xE5\xAF\x98\xE5\xAF\xA7\xE5\xAF\xB3\xE5\xAF\xBF\xE5\xB0\x86\xE5\xB0\xA2\xE3\x9E\x81\xE5\xB1\xA0\xE5\xB1\xAE\xE5\xB3\x80\xE5\xB2\x8D\xE5\xB5\x83\xE5\xB5\xAE\xE5\xB5\xAB\xE5\xB5\xBC\xE5\xB7\xA1\xE5\xB7\xA2\xE3\xA0\xAF\xE5\xB7\xBD\xE5\xB8\xA8\xE5\xB8\xBD\xE5\xB9\xA9\xE3\xA1\xA2\xE3\xA1\xBC\xE5\xBA\xB0\xE5\xBA\xB3\xE5\xBA\xB6\xE5\xBB\x8A\xE5\xBB\xBE\xE8\x88\x81\xE5\xBC\xA2\xE3\xA3\x87\xE5\xBD\xA2\xE5\xBD\xAB\xE3\xA3\xA3\xE5\xBE\x9A\xE5\xBF\x8D\xE5\xBF\x97\xE5\xBF\xB9\xE6\x82\x81\xE3\xA4\xBA\xE3\xA4\x9C\xE6\x82\x94\xE6\x83\x87\xE6\x85\x88\xE6\x85\x8C\xE6\x85\x8E\xE6\x85\xBA\xE6\x86\x8E\xE6\x86\xB2\xE6\x86\xA4\xE6\x86\xAF\xE6\x87\x9E\xE6\x87\xB2\xE6\x87\xB6\xE6\x88\x90\xE6\x88\x9B\xE6\x89\x9D\xE6\x8A\xB1\xE6\x8B\x94\xE6\x8D\x90\xE6\x8C\xBD\xE6\x8B\xBC\xE6\x8D\xA8\xE6\x8E\x83\xE6\x8F\xA4\xE6\x90\xA2\xE6\x8F\x85\xE6\x8E\xA9\xE3\xA8\xAE\xE6\x91\xA9\xE6\x91\xBE\xE6\x92\x9D\xE6\x91\xB7\xE3\xA9\xAC\xE6\x95\x8F\xE6\x95\xAC\xE6\x97\xA3\xE6\x9B\xB8\xE6\x99\x89\xE3\xAC\x99\xE6\x9A\x91\xE3\xAC\x88\xE3\xAB\xA4\xE5\x86\x92\xE5\x86\x95\xE6\x9C\x80\xE6\x9A\x9C\xE8\x82\xAD\xE4\x8F\x99\xE6\x9C\x97\xE6\x9C\x9B\xE6\x9C\xA1\xE6\x9D\x9E\xE6\x9D\x93\xE3\xAD\x89\xE6\x9F\xBA\xE6\x9E\x85\xE6\xA1\x92\xE6\xA2\x85\xE6\xA2\x8E\xE6\xA0\x9F\xE6\xA4\x94\xE3\xAE\x9D\xE6\xA5\x82\xE6\xA6\xA3\xE6\xA7\xAA\xE6\xAA\xA8\xE6\xAB\x9B\xE3\xB0\x98\xE6\xAC\xA1\xE6\xAD\x94\xE3\xB1\x8E\xE6\xAD\xB2\xE6\xAE\x9F\xE6\xAE\xBA\xE6\xAE\xBB\xE6\xB1\x8E\xE6\xB2\xBF\xE6\xB3\x8D\xE6\xB1\xA7\xE6\xB4\x96\xE6\xB4\xBE\xE6\xB5\xB7\xE6\xB5\x81\xE6\xB5\xA9\xE6\xB5\xB8\xE6\xB6\x85\xE6\xB4\xB4\xE6\xB8\xAF\xE6\xB9\xAE\xE3\xB4\xB3\xE6\xBB\x8B\xE6\xBB\x87\xE6\xB7\xB9\xE6\xBD\xAE\xE6\xBF\x86\xE7\x80\xB9\xE7\x80\x9E\xE7\x80\x9B\xE3\xB6\x96\xE7\x81\x8A\xE7\x81\xBD\xE7\x81\xB7\xE7\x82\xAD\xE7\x85\x85\xE7\x86\x9C\xE7\x88\xA8\xE7\x88\xB5\xE7\x89\x90\xE7\x8A\x80\xE7\x8A\x95\xE7\x8D\xBA\xE7\x8E\x8B\xE3\xBA\xAC\xE7\x8E\xA5\xE3\xBA\xB8\xE7\x91\x87\xE7\x91\x9C\xE7\x91\xB1\xE7\x92\x85\xE7\x93\x8A\xE3\xBC\x9B\xE7\x94\xA4\xE7\x94\xBE\xE7\x95\xB0\xE7\x98\x90\xE3\xBF\xBC\xE4\x80\x88\xE7\x9B\xB4\xE7\x9C\x9E\xE7\x9C\x9F\xE7\x9D\x8A\xE4\x80\xB9\xE7\x9E\x8B\xE4\x81\x86\xE4\x82\x96\xE7\xA1\x8E\xE7\xA2\x8C\xE7\xA3\x8C\xE4\x83\xA3\xE7\xA5\x96\xE7\xA6\x8F\xE7\xA7\xAB\xE4\x84\xAF\xE7\xA9\x80\xE7\xA9\x8A\xE7\xA9\x8F\xE4\x88\x82\xE7\xAF\x86\xE7\xAF\x89\xE4\x88\xA7\xE7\xB3\x92\xE4\x8A\xA0\xE7\xB3\xA8\xE7\xB3\xA3\xE7\xB4\x80\xE7\xB5\xA3\xE4\x8C\x81\xE7\xB7\x87\xE7\xB8\x82\xE7\xB9\x85\xE4\x8C\xB4\xE4\x8D\x99\xE7\xBD\xBA\xE7\xBE\x95\xE7\xBF\xBA\xE8\x80\x85\xE8\x81\xA0\xE8\x81\xB0\xE4\x8F\x95\xE8\x82\xB2\xE8\x84\x83\xE4\x90\x8B\xE8\x84\xBE\xE5\xAA\xB5\xE8\x88\x84\xE8\xBE\x9E\xE4\x91\xAB\xE8\x8A\x91\xE8\x8A\x8B\xE8\x8A\x9D\xE5\x8A\xB3\xE8\x8A\xB1\xE8\x8A\xB3\xE8\x8A\xBD\xE8\x8B\xA6\xE8\x8B\xA5\xE8\x8C\x9D\xE8\x8D\xA3\xE8\x8E\xAD\xE8\x8C\xA3\xE8\x8E\xBD\xE8\x8F\xA7\xE8\x91\x97\xE8\x8D\x93\xE8\x8F\x8A\xE8\x8F\x8C\xE8\x8F\x9C\xE4\x94\xAB\xE8\x93\xB1\xE8\x93\xB3\xE8\x94\x96\xE8\x95\xA4\xE4\x95\x9D\xE4\x95\xA1\xE4\x95\xAB\xE8\x99\x90\xE8\x99\x9C\xE8\x99\xA7\xE8\x99\xA9\xE8\x9A\xA9\xE8\x9A\x88\xE8\x9C\x8E\xE8\x9B\xA2\xE8\x9D\xB9\xE8\x9C\xA8\xE8\x9D\xAB\xE8\x9E\x86\xE8\x9F\xA1\xE8\xA0\x81\xE4\x97\xB9\xE8\xA1\xA0\xE8\xA1\xA3\xE8\xA3\x97\xE8\xA3\x9E\xE4\x98\xB5\xE8\xA3\xBA\xE3\x92\xBB\xE4\x9A\xBE\xE4\x9B\x87\xE8\xAA\xA0\xE8\xAB\xAD\xE8\xAE\x8A\xE8\xB1\x95\xE8\xB2\xAB\xE8\xB3\x81\xE8\xB4\x9B\xE8\xB5\xB7\xE8\xB7\x8B\xE8\xB6\xBC\xE8\xB7\xB0\xE8\xBB\x94\xE8\xBC\xB8\xE9\x82\x94\xE9\x83\xB1\xE9\x84\x91\xE9\x84\x9B\xE9\x88\xB8\xE9\x8B\x97\xE9\x8B\x98\xE9\x89\xBC\xE9\x8F\xB9\xE9\x90\x95\xE9\x96\x8B\xE4\xA6\x95\xE9\x96\xB7\xE4\xA7\xA6\xE9\x9B\x83\xE5\xB6\xB2\xE9\x9C\xA3\xE4\xA9\xAE\xE4\xA9\xB6\xE9\x9F\xA0\xE4\xAA\xB2\xE9\xA0\x8B\xE9\xA0\xA9\xE9\xA3\xA2\xE4\xAC\xB3\xE9\xA4\xA9\xE9\xA6\xA7\xE9\xA7\x82\xE9\xA7\xBE\xE4\xAF\x8E\xE9\xAC\x92\xE9\xB1\x80\xE9\xB3\xBD\xE4\xB3\x8E\xE4\xB3\xAD\xE9\xB5\xA7\xE4\xB3\xB8\xE9\xBA\xBB\xE4\xB5\x96\xE9\xBB\xB9\xE9\xBB\xBE\xE9\xBC\x85\xE9\xBC\x8F\xE9\xBC\x96\xE9\xBC\xBB"; + mappingIndex = new sliceType([0, 0, 1, 4, 5, 8, 9, 10, 13, 16, 17, 18, 23, 28, 33, 36, 39, 42, 43, 46, 49, 52, 53, 54, 55, 56, 57, 60, 63, 66, 69, 72, 75, 76, 77, 81, 84, 85, 90, 94, 98, 102, 106, 110, 116, 122, 128, 134, 140, 146, 152, 158, 164, 170, 176, 182, 188, 194, 200, 206, 212, 218, 224, 230, 236, 242, 248, 254, 260, 266, 272, 278, 284, 290, 296, 302, 311, 317, 326, 332, 338, 344, 350, 356, 362, 368, 370, 372, 374, 376, 378, 380, 382, 384, 385, 386, 387, 389, 390, 391, 392, 393, 394, 396, 397, 398, 399, 401, 403, 405, 407, 409, 411, 413, 415, 416, 418, 420, 422, 424, 426, 428, 430, 432, 433, 435, 437, 438, 440, 442, 444, 446, 448, 450, 452, 454, 456, 458, 460, 462, 464, 466, 468, 470, 472, 474, 476, 478, 480, 482, 484, 485, 487, 489, 491, 493, 495, 497, 499, 501, 503, 505, 507, 509, 514, 519, 524, 529, 534, 539, 544, 549, 554, 559, 564, 569, 574, 579, 584, 589, 594, 599, 604, 609, 614, 619, 624, 629, 634, 638, 642, 647, 649, 654, 659, 663, 667, 672, 677, 682, 687, 689, 694, 699, 704, 706, 711, 712, 717, 721, 725, 730, 736, 745, 751, 760, 762, 764, 766, 768, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 793, 795, 797, 798, 800, 802, 804, 806, 808, 810, 812, 814, 816, 821, 826, 832, 837, 842, 847, 852, 857, 862, 867, 872, 877, 882, 887, 892, 896, 898, 900, 902, 906, 908, 910, 915, 921, 930, 936, 945, 947, 949, 951, 953, 955, 957, 959, 961, 963, 965, 967, 971, 975, 979, 983, 987, 991, 995, 999, 1003, 1007, 1011, 1023, 1025, 1030, 1032, 1034, 1036, 1038, 1039, 1043, 1047, 1053, 1059, 1064, 1069, 1074, 1079, 1084, 1089, 1094, 1099, 1104, 1109, 1114, 1119, 1124, 1129, 1134, 1139, 1144, 1149, 1154, 1159, 1164, 1169, 1174, 1179, 1184, 1189, 1194, 1199, 1204, 1212, 1220, 1225, 1230, 1235, 1240, 1245, 1250, 1255, 1260, 1265, 1270, 1275, 1280, 1285, 1290, 1295, 1300, 1305, 1310, 1315, 1320, 1325, 1330, 1335, 1340, 1345, 1350, 1355, 1360, 1365, 1370, 1375, 1380, 1385, 1390, 1395, 1400, 1402, 1404, 1406, 1408, 1410, 1412, 1414, 1416, 1418, 1420, 1422, 1424, 1426, 1428, 1430, 1436, 1442, 1444, 1446, 1448, 1450, 1452, 1454, 1456, 1458, 1460, 1462, 1464, 1466, 1468, 1470, 1472, 1476, 1480, 1484, 1488, 1492, 1496, 1500, 1504, 1508, 1513, 1518, 1523, 1525, 1527, 1533, 1545, 1557, 1569, 1578, 1590, 1599, 1608, 1623, 1635, 1644, 1653, 1662, 1674, 1686, 1695, 1704, 1710, 1719, 1731, 1743, 1749, 1764, 1782, 1797, 1806, 1821, 1836, 1848, 1857, 1866, 1875, 1887, 1902, 1914, 1923, 1932, 1941, 1947, 1953, 1959, 1965, 1974, 1983, 1998, 2007, 2019, 2034, 2043, 2049, 2055, 2070, 2082, 2097, 2106, 2121, 2127, 2136, 2145, 2154, 2163, 2172, 2184, 2193, 2199, 2208, 2217, 2226, 2238, 2247, 2256, 2265, 2280, 2292, 2298, 2313, 2319, 2331, 2343, 2352, 2361, 2370, 2382, 2388, 2397, 2409, 2415, 2430, 2439, 2443, 2447, 2451, 2455, 2459, 2463, 2467, 2471, 2475, 2479, 2484, 2489, 2494, 2499, 2504, 2509, 2514, 2519, 2524, 2529, 2534, 2539, 2544, 2549, 2554, 2556, 2558, 2560, 2562, 2564, 2566, 2572, 2578, 2584, 2590, 2602, 2604, 2606, 2608, 2610, 2612, 2614, 2616, 2620, 2622, 2624, 2626, 2628, 2630, 2632, 2634, 2636, 2638, 2640, 2642, 2644, 2646, 2648, 2650, 2655, 2661, 2668, 2676, 2678, 2680, 2682, 2684, 2686, 2688, 2690, 2692, 2694, 2696, 2698, 2700, 2702, 2704, 2710, 2712, 2714, 2716, 2718, 2720, 2722, 2724, 2726, 2728, 2730, 2732, 2734, 2736, 2738, 2740, 2745, 2750, 2754, 2758, 2762, 2766, 2770, 2774, 2778, 2782, 2786, 2791, 2796, 2801, 2806, 2811, 2816, 2821, 2826, 2831, 2836, 2841, 2846, 2851, 2856, 2861, 2866, 2871, 2876, 2881, 2886, 2891, 2896, 2898, 2900, 2902, 2904, 2906, 2908, 2910, 2914, 2918, 2922, 2926, 2930, 2934, 2938, 2940, 2942, 2944, 2946, 2950, 2954, 2958, 2962, 2966, 2970, 2974, 2976, 2978, 2980, 2982, 2984, 2986, 2988, 2992, 2996, 3002, 3008, 3012, 3016, 3020, 3024, 3028, 3032, 3036, 3040, 3044, 3048, 3052, 3056, 3060, 3064, 3068, 3072, 3076, 3080, 3084, 3088, 3092, 3096, 3100, 3104, 3108, 3112, 3116, 3120, 3124, 3126, 3128, 3130, 3132, 3134, 3136, 3138, 3140, 3142, 3144, 3146, 3148, 3150, 3152, 3154, 3156, 3158, 3160, 3162, 3164, 3166, 3168, 3170, 3172, 3174, 3176, 3178, 3180, 3182, 3184, 3186, 3188, 3190, 3192, 3194, 3196, 3198, 3200, 3202, 3206, 3210, 3214, 3218, 3222, 3226, 3230, 3234, 3236, 3240, 3244, 3248, 3252, 3256, 3260, 3264, 3268, 3272, 3276, 3280, 3284, 3288, 3292, 3296, 3300, 3304, 3308, 3312, 3316, 3320, 3324, 3328, 3332, 3336, 3340, 3344, 3348, 3352, 3356, 3360, 3364, 3368, 3372, 3376, 3380, 3384, 3388, 3392, 3396, 3400, 3404, 3408, 3412, 3416, 3420, 3424, 3428, 3432, 3436, 3440, 3444, 3448, 3452, 3456, 3460, 3464, 3468, 3472, 3476, 3480, 3484, 3488, 3492, 3496, 3500, 3504, 3508, 3512, 3516, 3520, 3524, 3528, 3532, 3536, 3540, 3544, 3548, 3552, 3556, 3560, 3564, 3568, 3572, 3576, 3580, 3584, 3588, 3592, 3596, 3600, 3604, 3608, 3613, 3618, 3623, 3628, 3633, 3638, 3642, 3646, 3650, 3654, 3658, 3662, 3666, 3670, 3674, 3678, 3682, 3686, 3690, 3694, 3698, 3702, 3706, 3710, 3714, 3718, 3722, 3726, 3730, 3734, 3738, 3742, 3746, 3750, 3754, 3758, 3762, 3766, 3772, 3778, 3784, 3788, 3792, 3796, 3800, 3804, 3808, 3812, 3816, 3820, 3824, 3828, 3832, 3836, 3840, 3844, 3848, 3852, 3856, 3860, 3864, 3868, 3872, 3876, 3880, 3884, 3888, 3892, 3896, 3902, 3908, 3914, 3920, 3926, 3932, 3938, 3944, 3950, 3956, 3962, 3968, 3974, 3980, 3986, 3992, 3998, 4004, 4010, 4016, 4022, 4028, 4034, 4040, 4046, 4052, 4058, 4064, 4070, 4076, 4082, 4088, 4094, 4100, 4106, 4112, 4118, 4124, 4130, 4136, 4142, 4148, 4154, 4160, 4166, 4172, 4178, 4184, 4190, 4196, 4202, 4208, 4214, 4220, 4226, 4232, 4238, 4244, 4250, 4256, 4262, 4268, 4274, 4280, 4286, 4292, 4298, 4304, 4310, 4316, 4322, 4328, 4334, 4340, 4346, 4352, 4358, 4364, 4370, 4376, 4382, 4388, 4394, 4400, 4406, 4412, 4418, 4424, 4430, 4436, 4442, 4448, 4454, 4460, 4466, 4472, 4480, 4488, 4496, 4504, 4512, 4520, 4528, 4534, 4567, 4582, 4590, 4591, 4592, 4593, 4594, 4595, 4596, 4597, 4598, 4599, 4600, 4601, 4602, 4603, 4604, 4605, 4606, 4607, 4608, 4609, 4613, 4617, 4621, 4625, 4629, 4633, 4635, 4637, 4639, 4641, 4643, 4645, 4647, 4649, 4651, 4653, 4655, 4657, 4659, 4661, 4663, 4665, 4667, 4669, 4671, 4673, 4675, 4677, 4679, 4681, 4683, 4685, 4687, 4689, 4691, 4693, 4695, 4697, 4699, 4701, 4703, 4707, 4711, 4715, 4719, 4720, 4721, 4722, 4723, 4724, 4725, 4727, 4729, 4731, 4733, 4735, 4737, 4739, 4741, 4743, 4745, 4748, 4750, 4752, 4754, 4756, 4759, 4761, 4763, 4765, 4767, 4769, 4771, 4773, 4775, 4777, 4779, 4781, 4783, 4786, 4788, 4790, 4792, 4794, 4796, 4798, 4800, 4802, 4804, 4806, 4809, 4811, 4813, 4816, 4818, 4820, 4822, 4824, 4826, 4828, 4830, 4838, 4846, 4858, 4870, 4882, 4894, 4906, 4914, 4922, 4934, 4946, 4958, 4970, 4972, 4974, 4976, 4978, 4980, 4982, 4984, 4986, 4988, 4990, 4992, 4994, 4996, 4998, 5000, 5002, 5005, 5008, 5010, 5012, 5014, 5016, 5018, 5020, 5022, 5024, 5026, 5028, 5030, 5032, 5034, 5036, 5038, 5040, 5042, 5044, 5046, 5048, 5050, 5052, 5055, 5057, 5059, 5061, 5063, 5065, 5067, 5069, 5071, 5073, 5075, 5078, 5080, 5082, 5084, 5086, 5088, 5090, 5092, 5094, 5096, 5098, 5100, 5102, 5104, 5106, 5109, 5112, 5115, 5118, 5121, 5124, 5127, 5130, 5133, 5136, 5139, 5142, 5145, 5148, 5151, 5154, 5157, 5160, 5163, 5166, 5169, 5172, 5175, 5178, 5181, 5184, 5191, 5193, 5195, 5197, 5200, 5202, 5204, 5206, 5208, 5210, 5216, 5222, 5225, 5228, 5231, 5234, 5237, 5240, 5243, 5246, 5249, 5252, 5255, 5258, 5261, 5264, 5267, 5270, 5273, 5276, 5279, 5282, 5285, 5288, 5291, 5294, 5297, 5300, 5303, 5306, 5309, 5312, 5315, 5318, 5321, 5324, 5327, 5330, 5333, 5336, 5339, 5342, 5345, 5348, 5351, 5354, 5357, 5366, 5375, 5384, 5393, 5402, 5411, 5420, 5429, 5438, 5441, 5444, 5447, 5450, 5453, 5456, 5459, 5462, 5465, 5468, 5471, 5474, 5477, 5480, 5483, 5486, 5489, 5492, 5495, 5498, 5501, 5504, 5507, 5510, 5513, 5516, 5519, 5522, 5525, 5528, 5531, 5534, 5537, 5540, 5543, 5546, 5549, 5552, 5555, 5558, 5561, 5564, 5567, 5570, 5573, 5576, 5579, 5582, 5585, 5588, 5591, 5594, 5597, 5600, 5603, 5606, 5609, 5612, 5615, 5618, 5621, 5624, 5627, 5630, 5633, 5636, 5639, 5642, 5645, 5648, 5651, 5654, 5657, 5660, 5663, 5666, 5669, 5672, 5675, 5678, 5681, 5684, 5687, 5690, 5693, 5696, 5699, 5702, 5705, 5708, 5711, 5714, 5717, 5720, 5723, 5726, 5729, 5732, 5735, 5738, 5741, 5744, 5747, 5750, 5753, 5756, 5759, 5762, 5765, 5768, 5771, 5774, 5777, 5780, 5783, 5786, 5789, 5792, 5795, 5798, 5801, 5804, 5807, 5810, 5813, 5816, 5819, 5822, 5825, 5828, 5831, 5834, 5837, 5840, 5843, 5846, 5849, 5852, 5855, 5858, 5861, 5864, 5867, 5870, 5873, 5876, 5879, 5882, 5885, 5888, 5891, 5894, 5897, 5900, 5903, 5906, 5909, 5912, 5915, 5918, 5921, 5924, 5927, 5930, 5933, 5936, 5939, 5942, 5945, 5948, 5951, 5954, 5957, 5960, 5963, 5966, 5969, 5972, 5975, 5978, 5981, 5984, 5987, 5990, 5993, 5996, 5999, 6002, 6005, 6008, 6011, 6014, 6017, 6020, 6023, 6026, 6029, 6032, 6035, 6038, 6041, 6044, 6047, 6050, 6053, 6056, 6059, 6062, 6065, 6068, 6071, 6074, 6077, 6080, 6083, 6086, 6089, 6092, 6095, 6098, 6101, 6104, 6107, 6110, 6113, 6116, 6119, 6122, 6125, 6128, 6131, 6134, 6137, 6140, 6143, 6146, 6149, 6152, 6155, 6158, 6161, 6164, 6167, 6170, 6173, 6176, 6179, 6182, 6185, 6188, 6191, 6194, 6197, 6200, 6203, 6206, 6209, 6212, 6215, 6218, 6221, 6224, 6227, 6230, 6233, 6236, 6239, 6242, 6245, 6248, 6251, 6254, 6257, 6260, 6263, 6266, 6269, 6272, 6275, 6278, 6281, 6284, 6287, 6290, 6293, 6296, 6299, 6302, 6305, 6308, 6311, 6314, 6317, 6320, 6323, 6326, 6329, 6332, 6335, 6338, 6341, 6344, 6347, 6350, 6353, 6356, 6359, 6362, 6365, 6368, 6371, 6374, 6377, 6380, 6383, 6386, 6389, 6392, 6395, 6398, 6401, 6404, 6407, 6410, 6413, 6416, 6419, 6422, 6425, 6428, 6431, 6434, 6437, 6440, 6443, 6446, 6449, 6452, 6455, 6458, 6461, 6464, 6467, 6470, 6473, 6476, 6479, 6482, 6485, 6488, 6491, 6494, 6497, 6500, 6503, 6506, 6509, 6512, 6515, 6518, 6521, 6524, 6527, 6530, 6533, 6536, 6539, 6542, 6545, 6548, 6551, 6554, 6557, 6560, 6563, 6566, 6569, 6572, 6575, 6578, 6581, 6584, 6587, 6590, 6593, 6596, 6599, 6602, 6605, 6608, 6611, 6614, 6617, 6620, 6623, 6626, 6629, 6632, 6635, 6638, 6641, 6644, 6647, 6650, 6653, 6656, 6659, 6662, 6665, 6668, 6671, 6674, 6677, 6680, 6683, 6686, 6689, 6692, 6695, 6698, 6701, 6704]); + xorData = "\x02\f\t\x02\xB0\xEC\x02\xAD\xD8\x02\xAD\xD9\x02\x06\x07\x02\x0F\x12\x02\x0F\x1F\x02\x0F\x1D\x02\x01\x13\x02\x0F\x16\x02\x0F\v\x02\x0F3\x02\x0F7\x02\x0F?\x02\x0F/\x02\x0F*\x02\f&\x02\f*\x02\f;\x02\f9\x02\f%\x02\xAB\xED\x02\xAB\xE2\x02\xAB\xE3\x02\xA9\xE0\x02\xA9\xE1\x02\xA9\xE6\x02\xA3\xCB\x02\xA3\xC8\x02\xA3\xC9\x02\x01#\x02\x01\b\x02\x0E>\x02\x0E'\x02\x0F\x03\x02\x03\r\x02\x03\t\x02\x03\x17\x02\x03\x0E\x02\x02\x03\x02\x011\x02\x01\x00\x02\x01\x10\x02\x03<\x02\x07\r\x02\x02\f\x02\f0\x02\x01\x03\x02\x01\x01\x02\x01 \x02\x01\"\x02\x01)\x02\x01\n\x02\x01\f\x02\x02\x06\x02\x02\x02\x02\x03\x10\x03\x037 \x03\v+\x03\x021\x00\x02\x01\x04\x02\x01\x02\x02\x019\x02\x03\x1C\x02\x02$\x03\x80p$\x02\x03:\x02\x03\n\x03\xC1r.\x03\xC1r,\x03\xC1r\x02\x02\x02:\x02\x02>\x02\x02,\x02\x02\x10\x02\x02\x00\x03\xC1s<\x03\xC1s*\x03\xC2L$\x03\xC2L;\x02\t)\x02\n\x19\x03\x83\xAB\xE3\x03\x83\xAB\xF2\x03 4\xE0\x03\x81\xAB\xEA\x03\x81\xAB\xF3\x03 4\xEF\x03\x96\xE1\xCD\x03\x84\xE5\xC3\x02\r\x11\x03\x8B\xEC\xCB\x03\x94\xEC\xCF\x03\x9A\xEC\xC2\x03\x8B\xEC\xDB\x03\x94\xEC\xDF\x03\x9A\xEC\xD2\x03\x01\f!\x03\x01\f#\x03\xCA\xA0\x9D\x03\xCA\xA3\x9C\x03\xCA\xA2\x9F\x03\xCA\xA5\x9E\x03\xCA\xA4\x91\x03\xCA\xA7\x90\x03\xCA\xA6\x93\x03\xCA\xA9\x92\x03\xCA\xA8\x95\x03\xCA\xF3\xB5\x03\xCA\xF0\xB4\x03\xCA\xF1\xB7\x03\xCA\xF6\xB6\x03\xCA\xF7\x89\x03\xCA\xF4\x88\x03\xCA\xF5\x8B\x03\xCA\xFA\x8A\x03\xCA\xFB\x8D\x03\xCA\xF8\x8C\x03\xCA\xF9\x8F\x03\xCA\xFE\x8E\x03\xCA\xFF\x81\x03\xCA\xFC\x80\x03\xCA\xFD\x83\x03\xCA\xE2\x82\x03\xCA\xE3\x85\x03\xCA\xE0\x84\x03\xCA\xE1\x87\x03\xCA\xE6\x86\x03\xCA\xE7\x99\x03\xCA\xE4\x98\x03\xCA\xE5\x9B\x03\xCA\xEA\x9A\x03\xCA\xEB\x9D\x03\xCA\xE8\x9C\x03\xD8\x93\x89\x03\xDF\x94\x8B\x02\x010\x03\x03\x04\x1E\x03\x04\x15\x12\x03\v\x05,\x03\x06\x04\x00\x03\x06\x04)\x03\x06\x044\x03\x06\x04<\x03\x06\x05\x1D\x03\x06\x06\x00\x03\x06\x06\n\x03\x06\x06'\x03\x06\x062\x03\x0786\x03\x079/\x03\x079 \x03\x07:\x0E\x03\x07:\x1B\x03\x07:%\x03\x07;/\x03\x07;%\x03\x074\x11\x03\x076\t\x03\x077*\x03\x070\x01\x03\x070\x0F\x03\x070.\x03\x071\x16\x03\x071\x04\x03\x0710\x03\x072\x18\x03\x072-\x03\x073\x14\x03\x073>\x03\x07'\t\x03\x07 \x00\x03\x07\x1F\v\x03\x07\x18#\x03\x07\x18(\x03\x07\x186\x03\x07\x18\x03\x03\x07\x19\x16\x03\x07\x116\x03\x07\x12'\x03\x07\x13\x10\x03\x07\f&\x03\x07\f\b\x03\x07\f\x13\x03\x07\r\x02\x03\x07\r\x1C\x03\x07\v5\x03\x07\v\n\x03\x07\v\x01\x03\x07\v\x0F\x03\x07\x05\x00\x03\x07\x05\t\x03\x07\x05\v\x03\x07\x07\x01\x03\x07\x07\b\x03\x07\x00<\x03\x07\x00+\x03\x07\x01)\x03\x07\x01\x1B\x03\x07\x01\b\x03\x07\x03?\x03\x0445\x03\x044\b\x03\x0454\x03\x04)/\x03\x04)5\x03\x04+\x05\x03\x04+\x14\x03\x04+ \x03\x04+<\x03\x04*&\x03\x04*\"\x03\x04&8\x03\x04!\x01\x03\x04!\"\x03\x04\x11+\x03\x04\x10.\x03\x04\x104\x03\x04\x13=\x03\x04\x12\x04\x03\x04\x12\n\x03\x04\r\x1D\x03\x04\r\x07\x03\x04\r \x03\x05<>\x03\x055<\x03\x055!\x03\x055#\x03\x055&\x03\x054\x1D\x03\x054\x02\x03\x054\x07\x03\x0571\x03\x053\x1A\x03\x053\x16\x03\x05.<\x03\x05.\x07\x03\x05):\x03\x05)<\x03\x05)\f\x03\x05)\x15\x03\x05+-\x03\x05+5\x03\x05$\x1E\x03\x05$\x14\x03\x05'\x04\x03\x05'\x14\x03\x05&\x02\x03\x05\"6\x03\x05\"\f\x03\x05\"\x1C\x03\x05\x19\n\x03\x05\x1B\t\x03\x05\x1B\f\x03\x05\x14\x07\x03\x05\x16?\x03\x05\x16\f\x03\x05\f\x05\x03\x05\x0E\x0F\x03\x05\x01\x0E\x03\x05\x00(\x03\x05\x030\x03\x05\x03\x06\x03\n==\x03\n=1\x03\n=,\x03\n=\f\x03\n??\x03\n<\b\x03\n9!\x03\n9)\x03\n97\x03\n99\x03\n6\n\x03\n6\x1C\x03\n6\x17\x03\n7'\x03\n78\x03\n73\x03\n'\x01\x03\n'&\x03\n\x1F\x0E\x03\n\x1F\x03\x03\n\x1F3\x03\n\x1B/\x03\n\x18\x19\x03\n\x19\x01\x03\n\x16\x14\x03\n\x0E\"\x03\n\x0F\x10\x03\n\x0F\x02\x03\n\x0F \x03\n\f\x04\x03\n\v>\x03\n\v+\x03\n\b/\x03\n\x046\x03\n\x05\x14\x03\n\x00\x04\x03\n\x00\x10\x03\n\x00\x14\x03\v<3\x03\v;*\x03\v9\"\x03\v9)\x03\v97\x03\v+\x10\x03\v((\x03\v&5\x03\v$\x1C\x03\v$\x12\x03\v%\x04\x03\v#<\x03\v#0\x03\v#\r\x03\v#\x19\x03\v!:\x03\v!\x1F\x03\v!\x00\x03\v\x1E5\x03\v\x1C\x1D\x03\v\x1D-\x03\v\x1D(\x03\v\x18.\x03\v\x18 \x03\v\x18\x16\x03\v\x14\x13\x03\v\x15$\x03\v\x15\"\x03\v\x12\x1B\x03\v\x12\x10\x03\v\x132\x03\v\x13=\x03\v\x12\x18\x03\v\f&\x03\v\x061\x03\v\x06:\x03\v\x05#\x03\v\x05<\x03\v\x04\v\x03\v\x04\x04\x03\v\x04\x1B\x03\v\x042\x03\v\x041\x03\v\x03\x03\x03\v\x03\x1D\x03\v\x03/\x03\v\x03+\x03\v\x02\x1B\x03\v\x02\x00\x03\v\x01\x1E\x03\v\x01\b\x03\v\x015\x03\x06\r9\x03\x06\r=\x03\x06\r?\x03\x02\x001\x03\x02\x003\x03\x02\x02\x19\x03\x02\x006\x03\x02\x02\x1B\x03\x02\x004\x03\x02\x00<\x03\x02\x02\n\x03\x02\x02\x0E\x03\x02\x01\x1A\x03\x02\x01\x07\x03\x02\x01\x05\x03\x02\x01\v\x03\x02\x01%\x03\x02\x01\f\x03\x02\x01\x04\x03\x02\x01\x1C\x03\x02\x00.\x03\x02\x002\x03\x02\x00>\x03\x02\x00\x12\x03\x02\x00\x16\x03\x02\x011\x03\x02\x013\x03\x02\x02 \x03\x02\x02%\x03\x02\x02$\x03\x02\x028\x03\x02\x02;\x03\x02\x024\x03\x02\x012\x03\x02\x022\x03\x02\x02/\x03\x02\x01,\x03\x02\x01\x13\x03\x02\x01\x16\x03\x02\x01\x11\x03\x02\x01\x1E\x03\x02\x01\x15\x03\x02\x01\x17\x03\x02\x01\x0F\x03\x02\x01\b\x03\x02\x00?\x03\x02\x03\x07\x03\x02\x03\r\x03\x02\x03\x13\x03\x02\x03\x1D\x03\x02\x03\x1F\x03\x02\x00\x03\x03\x02\x00\r\x03\x02\x00\x01\x03\x02\x00\x1B\x03\x02\x00\x19\x03\x02\x00\x18\x03\x02\x00\x13\x03\x02\x00/\x03\x07>\x12\x03\x07<\x1F\x03\x07>\x1D\x03\x06\x1D\x0E\x03\x07>\x1C\x03\x07>:\x03\x07>\x13\x03\x04\x12+\x03\x07?\x03\x03\x07>\x02\x03\x06\"4\x03\x06\x1A.\x03\x07<%\x03\x06\x1C\v\x03\x0609\x03\x05\x1F\x01\x03\x04'\b\x03\x93\xFD\xF5\x03\x02\r \x03\x02\r#\x03\x02\r!\x03\x02\r&\x03\x02\r\"\x03\x02\r/\x03\x02\r,\x03\x02\r$\x03\x02\r'\x03\x02\r%\x03\x02\r;\x03\x02\r=\x03\x02\r?\x03\t9.\x03\b\v7\x03\b\x02\x14\x03\b\x14\r\x03\b.:\x03\b9'\x03\x0F\v\x18\x03\x0F\x1C1\x03\x0F\x17&\x03\x0F9\x1F\x03\x0F0\f\x03\x0E\n9\x03\x0E\x056\x03\x0E\x1C#\x03\x0F\x13\x0E\x03\x072\x00\x03\x070\r\x03\x072\v\x03\x06\x11\x18\x03\x070\x10\x03\x06\x0F(\x03\x072\x05\x03\x06\x0F,\x03\x073\x15\x03\x06\x07\b\x03\x05\x16\x02\x03\x04\v \x03\x05:8\x03\x05\x16%\x03\n\r\x1F\x03\x06\x16\x10\x03\x05\x1D5\x03\x05*;\x03\x05\x16\x1B\x03\x04.-\x03\x06\x1A\x19\x03\x04\x03,\x03\v87\x03\x04/\n\x03\x06\x00,\x03\x04-\x01\x03\x04\x1E-\x03\x06/(\x03\n\v5\x03\x06\x0E7\x03\x06\x07.\x03\x0597\x03\n*%\x03\x0760\x03\x06\f;\x03\x05'\x00\x03\x072.\x03\x072\b\x03\x06=\x01\x03\x06\x05\x1B\x03\x06\x06\x12\x03\x06$=\x03\x06'\r\x03\x04\x11\x0F\x03\x076,\x03\x06\x07;\x03\x06.,\x03\x86\xF9\xEA\x03\x8F\xFF\xEB\x02\t2\x02\t5\x02\t4\x02\t;\x02\t>\x02\t8\x02\t*\x02\t/\x02\t,\x02\t%\x02\t&\x02\t#\x02\t \x02\b!\x02\b%\x02\b$\x02\b+\x02\b.\x02\b*\x02\b&\x02\b8\x02\b>\x02\b4\x02\b6\x02\b0\x02\b\x10\x02\b\x17\x02\b\x12\x02\b\x1D\x02\b\x1F\x02\b\x13\x02\b\x15\x02\b\x14\x02\b\f\x03\x8B\xFD\xD0\x03\x81\xEC\xC6\x03\x87\xE0\x8A\x03-2\xE3\x03\x80\xEF\xE4\x03-2\xEA\x03\x88\xE6\xEB\x03\x8E\xE6\xE8\x03\x84\xE6\xE9\x03\x97\xE6\xEE\x03-2\xF9\x03-2\xF6\x03\x8E\xE3\xAD\x03\x80\xE3\x92\x03\x88\xE3\x90\x03\x8E\xE3\x90\x03\x80\xE3\x97\x03\x88\xE3\x95\x03\x88\xFE\xCB\x03\x8E\xFE\xCA\x03\x84\xFE\xCD\x03\x91\xEF\xC9\x03-2\xC1\x03-2\xC0\x03-2\xCB\x03\x88@\t\x03\x8E@\b\x03\x8F\xE0\xF5\x03\x8E\xE6\xF9\x03\x8E\xE0\xFA\x03\x93\xFF\xF4\x03\x84\xEE\xD3\x03\v(\x04\x023 \x03\v)\b\x021;\x02\x01*\x03\v#\x10\x03\v 0\x03\v!\x10\x03\v!0\x03\x07\x15\b\x03\t?5\x03\x07\x1F\b\x03\x07\x17\v\x03\t\x1F\x15\x03\v\x1C7\x03\n+#\x03\x06\x1A\x1B\x03\x06\x1A\x14\x03\n\x01\x18\x03\x06#\x1B\x03\n2\f\x03\n\x01\x04\x03\t#;\x03\b='\x03\b\x1A\n\x03\x07\x03\n\x111\x03\t\x1B\t\x03\x073.\x03\x07\x01\x00\x03\t/,\x03\x07#>\x03\x07\x048\x03\n\x1F\"\x03\t8>\x03\t\x11\x00\x03\b/\x17\x03\x06'\"\x03\v\x1A+\x03\n\"\x19\x03\n/1\x03\t74\x03\t\x0F\"\x03\b,\"\x03\b?\x14\x03\x07$5\x03\x07<3\x03\x07=*\x03\x07\x13\x18\x03\x068\n\x03\x06\t\x16\x03\x06\x13\x00\x03\b\x067\x03\b\x01\x03\x03\b\x12\x1D\x03\x07+7\x03\x06(;\x03\x06\x1C?\x03\x07\x0E\x17\x03\n\x06\x1D\x03\n\x19\x07\x03\b\x14$\x03\x07$;\x03\b,$\x03\b\x06\r\x03\x07\x16\n\x03\x06>>\x03\n\x06\x12\x03\n\x14)\x03\t\r\x1F\x03\t\x12\x17\x03\t\x19\x01\x03\b\x11 \x03\b\x1D'\x03\x06<\x1A\x03\n.\x00\x03\x07'\x18\x03\n\"\b\x03\b\r\n\x03\b\x13)\x03\x07*)\x03\x06<,\x03\x07\v\x1A\x03\t.\x14\x03\t\r\x1E\x03\x07\x0E#\x03\v\x1D'\x03\n\n8\x03\t%2\x03\b+&\x03\b0\x12\x03\n)4\x03\b\x06\x1F\x03\v\x1B\x1A\x03\n\x1B\x0F\x03\v\x1D*\x03\t\x16$\x03\t0\x11\x03\b\x11\b\x03\n*(\x03\n\x042\x03\b9,\x03\x074'\x03\x07\x0F\x05\x03\t\v\n\x03\x07\x1B\x01\x03\t\x17:\x03\t.\r\x03\x07.\x11\x03\t+\x15\x03\b0\x13\x03\v\x1F\x19\x03\n \x11\x03\n\"0\x03\t\x07;\x03\b\x16\x1C\x03\x07,\x13\x03\x07\x0E/\x03\x06\"1\x03\n.\n\x03\n7\x02\x03\n\x032\x03\n\x1D.\x03\t1\x06\x03\t\x19:\x03\b\x02/\x03\x060+\x03\x06\x0F-\x03\x06\x1C\x1F\x03\x06\x1D\x07\x03\n,\x11\x03\t=\r\x03\t\v;\x03\x07\x1B/\x03\n\x1F:\x03\t \x1F\x03\t.\x10\x03\t4\v\x03\t\x1A1\x03\b#\x1A\x03\b4\x1D\x03\b\x01\x1F\x03\b\x11\"\x03\x07'8\x03\x07\x1A>\x03\x0757\x03\x06&9\x03\x06+\x11\x03\n.\v\x03\n,>\x03\n4#\x03\b%\x17\x03\x07\x05\"\x03\x07\f\v\x03\n\x1D+\x03\n\x19\x16\x03\t+\x1F\x03\t\b\v\x03\b\x16\x18\x03\b+\x12\x03\v\x1D\f\x03\n=\x10\x03\n\t\r\x03\n\x10\x11\x03\t&0\x03\b(\x1F\x03\b7\x07\x03\b\x185\x03\x07'6\x03\x06.\x05\x03\x06=\x04\x03\x06;;\x03\x06\x06,\x03\v\x18>\x03\b\x00\x18\x03\x06 \x03\x03\x06<\x00\x03\t%\x18\x03\v\x1C<\x03\n%!\x03\n\t\x12\x03\n\x16\x02\x03\t0'\x03\t\x0E=\x03\b \x0E\x03\b>\x03\x03\x074>\x03\x06&?\x03\x06\x19\t\x03\x06?(\x03\n-\x0E\x03\t:3\x03\t8:\x03\t\x12\v\x03\t\x1D\x17\x03\b7\x05\x03\b2\x14\x03\b\x06%\x03\b\x13\x1F\x03\x06\x06\x0E\x03\n\"<\x03\t/<\x03\x06>+\x03\n'?\x03\n\x13\f\x03\t\x10<\x03\x07\x1B=\x03\n\x19\x13\x03\t\"\x1D\x03\t\x07\r\x03\b)\x1C\x03\x06=\x1A\x03\n/4\x03\n7\x11\x03\n\x16:\x03\t?3\x03\t:/\x03\t\x05\n\x03\t\x14\x06\x03\b7\"\x03\b0\x07\x03\b\x1A\x1F\x03\x07\x04(\x03\x07\x04\t\x03\x06 %\x03\x06<\b\x03\n+\x14\x03\t\x1D\x16\x03\n70\x03\b >\x03\b57\x03\x070\n\x03\x06=\x12\x03\x06\x16%\x03\x06\x1D,\x03\t9#\x03\t\x10>\x03\x07 \x1E\x03\b\f<\x03\b\v\x18\x03\b\x15+\x03\b,:\x03\b%\"\x03\x07\n$\x03\v\x1C=\x03\x07+\b\x03\n/\x05\x03\n \x07\x03\n\x12'\x03\t#\x11\x03\b\x1B\x15\x03\n\x06\x01\x03\t\x1C\x1B\x03\t22\x03\x07\x14<\x03\x07\t\x04\x03\x061\x04\x03\x07\x0E\x01\x03\n\x13\x18\x03\n-\f\x03\n?\r\x03\n\t\n\x03\t1&\x03\n/\v\x03\b$<\x03\b3\x1D\x03\b\f$\x03\b\r\x07\x03\b\r?\x03\b\x0E\x14\x03\x065\n\x03\b\x1A#\x03\b\x16#\x03\x0702\x03\x07\x03\x1A\x03\x06(\x1D\x03\x06+\x1B\x03\x06\v\x05\x03\x06\v\x17\x03\x06\f\x04\x03\x06\x1E\x19\x03\x06+0\x03\x062\x18\x03\v\x16\x1E\x03\n+\x16\x03\n-?\x03\n#:\x03\n#\x10\x03\n%$\x03\n>+\x03\n01\x03\n1\x10\x03\n\t9\x03\n\n\x12\x03\n\x19\x1F\x03\n\x19\x12\x03\t*)\x03\t-\x16\x03\t.1\x03\t.2\x03\t<\x0E\x03\t> \x03\t3\x12\x03\t\v\x01\x03\t\x1C2\x03\t\x11\x1C\x03\t\x15%\x03\b,&\x03\b!\"\x03\b9(\x03\b\v\x1A\x03\b\r2\x03\b\f\x04\x03\b\f\x06\x03\b\f\x1F\x03\b\f\f\x03\b\x0F\x1F\x03\b\x0F\x1D\x03\b\x00\x14\x03\b\x03\x14\x03\b\x06\x16\x03\b\x1E#\x03\b\x11\x11\x03\b\x10\x18\x03\b\x14(\x03\x07)\x1E\x03\x07.1\x03\x07 $\x03\x07 '\x03\x078\b\x03\x07\r0\x03\x07\x0F7\x03\x07\x05#\x03\x07\x05\x1A\x03\x07\x1A7\x03\x07\x1D-\x03\x07\x17\x10\x03\x06)\x1F\x03\x062\v\x03\x066\x16\x03\x06\t\x11\x03\t(\x1E\x03\x07!5\x03\v\x11\x16\x03\n/\x04\x03\n,\x1A\x03\v\x173\x03\n,1\x03\n/5\x03\n\"1\x03\n\"\r\x03\n?%\x03\n<,\x03\n?#\x03\n>\x19\x03\n\b&\x03\n\v\x0E\x03\n\f:\x03\n\f+\x03\n\x03\"\x03\n\x06)\x03\n\x11\x10\x03\n\x11\x1A\x03\n\x17-\x03\n\x14(\x03\t)\x1E\x03\t/\t\x03\t.\x00\x03\t,\x07\x03\t/*\x03\t-9\x03\t\"8\x03\t%\t\x03\t:\x12\x03\t;\x1D\x03\t?\x06\x03\t3%\x03\t6\x05\x03\t6\b\x03\t7\x02\x03\t\x07,\x03\t\x04,\x03\t\x1F\x16\x03\t\x11\x03\x03\t\x11\x12\x03\t\x168\x03\b*\x05\x03\b/2\x03\b4:\x03\b\"+\x03\b 0\x03\b&\n\x03\b;\x10\x03\b>$\x03\b>\x18\x03\b29\x03\b2:\x03\b1,\x03\b1<\x03\b1\x1C\x03\b7#\x03\b7*\x03\b\t'\x03\b\x00\x1D\x03\b\x05-\x03\b\x1F4\x03\b\x1D\x04\x03\b\x16\x0F\x03\x07*7\x03\x07'!\x03\x07%\x1B\x03\x077\f\x03\x07\f1\x03\x07\f.\x03\x07\x00\x06\x03\x07\x01\x02\x03\x07\x010\x03\x07\x06=\x03\x07\x01\x03\x03\x07\x01\x13\x03\x07\x06\x06\x03\x07\x05\n\x03\x07\x1F\t\x03\x07\x17:\x03\x06*1\x03\x06-\x1D\x03\x06\"3\x03\x062:\x03\x060$\x03\x066\x1E\x03\x064\x12\x03\x0645\x03\x06\v\x00\x03\x06\v7\x03\x06\x07\x1F\x03\x06\x15\x12\x03\f\x05\x0F\x03\v+\v\x03\v+-\x03\x06\x16\x1B\x03\x06\x15\x17\x03\x89\xCA\xEA\x03\x89\xCA\xE8\x03\f8\x10\x03\f8\x01\x03\f8\x0F\x03\r8%\x03\r8!\x03\f8-\x03\f8/\x03\f8+\x03\f87\x03\f85\x03\f9\t\x03\f9\r\x03\f9\x0F\x03\f9\v\x03\xCFu\f\x03\xCFu\x0F\x03\xCFu\x0E\x03\xCFu\t\x03\f9\x10\x03\r9\f\x03\xCF`;\x03\xCF`>\x03\xCF`9\x03\xCF`8\x03\xCF`7\x03\xCF`*\x03\xCF`-\x03\xCF`,\x03\r\x1B\x1A\x03\r\x1B&\x03\f=.\x03\f=%\x03\f>\x1E\x03\f>\x14\x03\f?\x06\x03\f?\v\x03\f?\f\x03\f?\r\x03\f?\x02\x03\f>\x0F\x03\f>\b\x03\f>\t\x03\f>,\x03\f>\f\x03\f?\x13\x03\f?\x16\x03\f?\x15\x03\f?\x1C\x03\f?\x1F\x03\f?\x1D\x03\f?\x1A\x03\f?\x17\x03\f?\b\x03\f?\t\x03\f?\x0E\x03\f?\x04\x03\f?\x05\x03\f\x03\f=2\x03\f=6\x03\f<\x07\x03\f<\x05\x03\x0E:!\x03\x0E:#\x03\x0E8\t\x03\x0E:&\x03\x0E8\v\x03\x0E:$\x03\x0E:,\x03\x0E8\x1A\x03\x0E8\x1E\x03\x0E:*\x03\x0E:7\x03\x0E:5\x03\x0E:;\x03\x0E:\x15\x03\x0E:<\x03\x0E:4\x03\x0E:'\x03\x0E:-\x03\x0E:%\x03\x0E:?\x03\x0E:=\x03\x0E:)\x03\x0E:/\x03\xCFs'\x03\r=\x0F\x03\r+*\x03\r99\x03\r9;\x03\r9?\x03\r)\r\x03\r(%\x02\x01\x18\x02\x01(\x02\x03'\x02\x03)\x02\x03+\x02\x03/\x02\x03\x19\x02\x03\x1B\x02\x03\x1F\x03\r\"\x18\x03\r\"\x1A\x03\r\"'\x03\r\"/\x03\r\"3\x03\r\"$\x02\x01\x1E\x03\x0F$!\x03\x0F87\x03\x0F4\x0E\x03\x0F5\x1D\x03\x06'\x03\x03\x0F\b\x18\x03\x0F\r\x1B\x03\x0E2=\x03\x0E;\b\x03\x0E:\v\x03\x0E\x06$\x03\x0E\r)\x03\x0E\x16\x1F\x03\x0E\x16\x1B\x03\r$\n\x03\x05,\x1D\x03\r. \x03\r.#\x03\f(/\x03\t%\x02\x03\r90\x03\r\x0E4\x03\r\r\x0F\x03\f#\x00\x03\f,\x1E\x03\f2\x0E\x03\f\x01\x17\x03\f\t:\x03\x0E\x173\x03\f\b\x03\x03\f\x11\x07\x03\f\x10\x18\x03\f\x1F\x1C\x03\f\x19\x0E\x03\f\x1A\x1F\x03\x0F0>\x03\v->\x03\v<+\x03\v8\x13\x03\v\x043\x03\v\x14\x03\x03\v\x16%\x03\r\"&\x03\v\x1A\x1A\x03\v\x1A\x04\x03\n%9\x03\n&2\x03\n&0\x03\n!\x1A\x03\n!7\x03\n5\x10\x03\n=4\x03\n?\x0E\x03\n>\x10\x03\n\x00 \x03\n\x0F:\x03\n\x0F9\x03\n\v\n\x03\n\x17%\x03\n\x1B-\x03\t-\x1A\x03\t,4\x03\t.,\x03\t)\t\x03\t6!\x03\t1\x1F\x03\t3\x16\x03\f+\x1F\x03\t8 \x03\t8=\x03\f(\x1A\x03\f(\x16\x03\t\n+\x03\t\x16\x12\x03\t\x13\x0E\x03\t\x153\x03\b)!\x03\t\x1A\x01\x03\t\x18\x01\x03\b%#\x03\b>\"\x03\b\x05%\x03\b\x02*\x03\b\x15;\x03\b\x1B7\x03\x0F\x07\x1D\x03\x0F\x04\x03\x03\x070\f\x03\x07;\v\x03\x07\b\x17\x03\x07\x12\x06\x03\x06/-\x03\x0671\x03\x065+\x03\x06>7\x03\x06\x049\x03\x05+\x1E\x03\x05,\x17\x03\x05 \x1D\x03\x05\"\x05\x03\x050\x1D"; + idnaValues = $toNativeArray($kindUint16, [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 8, 8, 128, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 128, 128, 128, 128, 128, 128, 128, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 128, 128, 128, 128, 128, 128, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 128, 128, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 10, 24, 24, 24, 24, 24, 24, 24, 18, 24, 25, 24, 24, 960, 24, 34, 24, 24, 41, 49, 58, 5, 24, 8, 66, 73, 81, 24, 89, 97, 105, 24, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 113, 8, 53, 77, 57357, 8, 57357, 8, 8, 57373, 8, 57405, 8, 57373, 8, 121, 121, 57373, 8, 57405, 8, 57373, 8, 57469, 8, 129, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 101, 57373, 8, 57405, 8, 57373, 8, 137, 8, 125, 57357, 8, 57357, 8, 125, 57469, 8, 149, 173, 57405, 8, 8, 197, 221, 245, 57373, 8, 269, 293, 8, 317, 317, 57357, 8, 8, 8, 269, 341, 8, 365, 57357, 8, 57357, 8, 57357, 8, 389, 57469, 8, 413, 8, 8, 57357, 8, 389, 57597, 8, 437, 461, 57405, 8, 57373, 8, 485, 57357, 8, 8, 8, 57357, 8, 8, 8, 8, 8, 8, 8, 145, 145, 145, 509, 533, 557, 581, 605, 629, 57373, 8, 57597, 8, 57373, 8, 57405, 8, 57373, 8, 57469, 8, 57373, 8, 57405, 8, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 8, 653, 677, 701, 57357, 8, 725, 749, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 773, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 8, 8, 8, 8, 8, 8, 153, 57405, 8, 797, 161, 8, 8, 8, 24, 24, 24, 24, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 24, 24, 24, 24, 24, 24, 210, 218, 226, 234, 242, 250, 24, 24, 941, 257, 137, 265, 965, 24, 24, 24, 24, 24, 24, 24, 8, 24, 8, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 989, 989, 13064, 1013, 273, 1037, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13248, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 57357, 8, 57357, 8, 1061, 8, 57357, 8, 64, 64, 282, 8, 8, 8, 290, 1085, 64, 64, 64, 64, 58, 298, 57685, 1109, 57645, 57661, 57645, 64, 989, 64, 1133, 1157, 8, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 57605, 1181, 1181, 64, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 57359, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 57541, 1205, 1229, 57533, 57589, 57597, 57501, 57525, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 1253, 57733, 57741, 8, 1277, 989, 24, 57469, 8, 57813, 57357, 8, 8, 1301, 1325, 1325, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 24, 13064, 13064, 13064, 13064, 13064, 13080, 13080, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 64, 57373, 8, 57405, 8, 57373, 8, 57469, 8, 57373, 8, 57405, 8, 57373, 8, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 64, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 2112, 2112, 2112, 2112, 2112, 2112, 24, 24, 2072, 24, 24, 2072, 24, 2072, 24, 24, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 2072, 2880, 2072, 2072, 2072, 2568, 2056, 3080, 3080, 3080, 3080, 2568, 3080, 2568, 3080, 2568, 2568, 2568, 2568, 2568, 3080, 3080, 3080, 3080, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2072, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 3080, 2568, 2568, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 2056, 2056, 2056, 2056, 2056, 2056, 2056, 2056, 2056, 2056, 24, 2072, 2072, 2072, 2568, 2568, 13064, 3080, 3080, 3080, 2056, 313, 321, 329, 337, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 3080, 2568, 2568, 3080, 3080, 3080, 3080, 3080, 3080, 3080, 3080, 3080, 2568, 3080, 2568, 3080, 2568, 2568, 3080, 3080, 2072, 3080, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 2112, 24, 13064, 13064, 13064, 13064, 13064, 13064, 2056, 2056, 13064, 13064, 24, 13064, 13064, 13064, 13064, 3080, 3080, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 2568, 2568, 2568, 2056, 2056, 2568, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 64, 2880, 3080, 13064, 2568, 2568, 2568, 3080, 3080, 3080, 3080, 3080, 2568, 2568, 2568, 2568, 3080, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 3080, 2568, 3080, 2568, 3080, 2568, 2568, 3080, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 3080, 2568, 2568, 2568, 2568, 2568, 3080, 3080, 2568, 3080, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 3080, 2568, 3080, 3080, 3080, 13064, 13064, 13064, 64, 64, 2072, 64, 2568, 2056, 2568, 2568, 2568, 2568, 2056, 3080, 2568, 3080, 3080, 64, 64, 64, 64, 64, 3080, 3080, 3080, 3080, 3080, 3080, 3080, 3080, 3080, 3080, 3080, 3080, 3080, 3080, 3080, 3080, 3080, 3080, 3080, 2056, 2056, 2056, 2568, 2056, 2072, 2568, 2568, 2568, 2568, 2568, 3080, 64, 2112, 2112, 64, 64, 64, 64, 64, 64, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 3080, 3080, 3080, 2056, 3080, 2568, 2568, 3080, 3080, 2568, 2568, 2568, 2568, 2568, 2568, 3080, 2568, 2568, 2568, 2568, 2568, 2568, 12296, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 12296, 12296, 12296, 12296, 15112, 12296, 12296, 8, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 345, 353, 361, 369, 377, 385, 393, 401, 8, 8, 13064, 13064, 24, 24, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 24, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 13064, 12296, 12296, 64, 8, 8, 8, 8, 8, 8, 8, 8, 64, 64, 8, 8, 64, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 64, 8, 8, 8, 8, 8, 8, 8, 64, 8, 64, 64, 64, 8, 8, 8, 8, 64, 64, 13064, 8, 12296, 12296, 12296, 13064, 13064, 13064, 13064, 64, 64, 12296, 12296, 64, 64, 12296, 12296, 15112, 8, 64, 64, 64, 64, 64, 64, 64, 64, 12296, 64, 64, 64, 64, 409, 417, 64, 425, 8, 8, 13064, 13064, 64, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 8, 24, 13064, 64, 64, 13064, 13064, 12296, 64, 8, 8, 8, 8, 8, 8, 64, 64, 64, 64, 8, 8, 64, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 64, 8, 8, 8, 8, 8, 8, 8, 64, 8, 433, 64, 8, 441, 64, 8, 8, 64, 64, 13064, 64, 12296, 12296, 12296, 13064, 13064, 64, 64, 64, 64, 13064, 13064, 64, 64, 13064, 13064, 15112, 64, 64, 64, 13064, 64, 64, 64, 64, 64, 64, 64, 449, 457, 465, 8, 64, 473, 64, 64, 64, 64, 64, 64, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 13064, 13064, 8, 8, 8, 13064, 24, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 13064, 13064, 12296, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 64, 8, 8, 8, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 64, 8, 8, 8, 8, 8, 8, 8, 64, 8, 8, 64, 8, 8, 8, 8, 8, 64, 64, 13064, 8, 12296, 12296, 12296, 13064, 13064, 13064, 13064, 13064, 64, 13064, 13064, 12296, 64, 12296, 12296, 15112, 64, 64, 8, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 8, 8, 13064, 13064, 64, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 24, 24, 64, 64, 64, 64, 64, 64, 64, 8, 13064, 13064, 13064, 13064, 13064, 13064, 64, 13064, 12296, 12296, 64, 8, 8, 8, 8, 8, 8, 8, 8, 64, 64, 8, 8, 64, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 64, 8, 8, 8, 8, 8, 8, 8, 64, 8, 8, 64, 8, 8, 8, 8, 8, 64, 64, 13064, 8, 12296, 13064, 12296, 13064, 13064, 13064, 13064, 64, 64, 12296, 12296, 64, 64, 12296, 12296, 15112, 64, 64, 64, 64, 64, 64, 64, 13064, 13064, 12296, 64, 64, 64, 64, 481, 489, 64, 8, 8, 8, 13064, 13064, 64, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 24, 8, 24, 24, 24, 24, 24, 24, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 13064, 8, 64, 8, 8, 8, 8, 8, 8, 64, 64, 64, 8, 8, 8, 64, 8, 8, 8, 8, 64, 64, 64, 8, 8, 64, 8, 64, 8, 8, 64, 64, 64, 8, 8, 64, 64, 64, 8, 8, 8, 64, 64, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 64, 64, 64, 64, 12296, 12296, 13064, 12296, 12296, 12296, 12296, 64, 13064, 13064, 13064, 64, 13064, 13064, 13064, 15112, 64, 64, 64, 64, 64, 64, 64, 13064, 13064, 64, 8, 8, 8, 64, 64, 8, 64, 64, 8, 8, 13064, 13064, 64, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 64, 64, 64, 64, 64, 64, 64, 24, 24, 24, 24, 24, 24, 24, 24, 24, 8, 13064, 12296, 12296, 24, 8, 8, 8, 8, 8, 8, 8, 8, 64, 8, 8, 8, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 64, 8, 8, 8, 8, 8, 64, 64, 13064, 8, 12296, 13064, 12296, 12296, 12296, 12296, 12296, 64, 13064, 12296, 12296, 64, 12296, 12296, 13064, 15112, 64, 64, 64, 64, 64, 64, 64, 12296, 12296, 64, 64, 64, 64, 64, 64, 8, 8, 64, 8, 8, 13064, 13064, 64, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 64, 8, 8, 12296, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 12296, 13064, 13064, 13064, 13064, 64, 12296, 12296, 12296, 64, 12296, 12296, 12296, 15112, 8, 24, 64, 64, 64, 64, 8, 8, 8, 12296, 24, 24, 24, 24, 24, 24, 24, 8, 8, 8, 13064, 13064, 64, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 8, 8, 8, 8, 8, 8, 64, 8, 8, 64, 8, 64, 8, 8, 8, 8, 8, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 64, 8, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 13064, 8, 505, 13064, 13064, 13064, 13064, 13064, 13064, 15112, 13064, 13064, 8, 64, 64, 8, 8, 8, 529, 8, 8, 8, 8, 64, 8, 8, 8, 8, 537, 8, 8, 8, 8, 545, 8, 8, 8, 8, 553, 8, 8, 8, 8, 561, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 569, 8, 8, 8, 64, 64, 64, 64, 13064, 13064, 577, 13064, 585, 593, 601, 609, 617, 13064, 13064, 13064, 13064, 13064, 12296, 13064, 625, 13064, 13064, 15112, 24, 13064, 13064, 8, 8, 8, 8, 8, 13064, 13064, 13064, 13064, 13064, 13064, 633, 13064, 13064, 13064, 13064, 64, 13064, 13064, 13064, 13064, 641, 13064, 13064, 13064, 13064, 649, 13064, 13064, 13064, 13064, 657, 13064, 13064, 13064, 13064, 665, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 673, 13064, 13064, 13064, 64, 24, 24, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 25, 737, 745, 8, 753, 761, 769, 777, 169, 785, 177, 793, 257, 801, 809, 8, 81, 817, 825, 185, 833, 841, 193, 25, 849, 857, 1461, 745, 753, 761, 865, 873, 881, 777, 8, 793, 801, 889, 81, 897, 1485, 1485, 825, 833, 841, 1461, 905, 913, 1509, 921, 929, 937, 945, 953, 785, 185, 841, 913, 921, 929, 961, 945, 953, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 969, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 977, 985, 993, 1001, 881, 1009, 1017, 1025, 1033, 1041, 1049, 1057, 1533, 1065, 1073, 57725, 1081, 1089, 1097, 1105, 1113, 1121, 1129, 1137, 1145, 1153, 1161, 1169, 1177, 1557, 1185, 1193, 1201, 1209, 1217, 1225, 1233, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 8, 8, 8, 8, 1581, 1613, 8, 8, 1241, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 8, 8, 8, 8, 8, 8, 64, 64, 57413, 57413, 57413, 57413, 57413, 57413, 64, 64, 8, 8, 8, 8, 8, 8, 8, 8, 64, 57413, 64, 57413, 64, 57413, 64, 57413, 8, 8, 8, 8, 8, 8, 8, 8, 57413, 57413, 57413, 57413, 57413, 57413, 57413, 57413, 8, 1249, 8, 1257, 8, 1265, 8, 1273, 8, 1281, 8, 1289, 8, 1297, 64, 64, 1305, 1313, 1321, 1329, 1337, 1345, 1353, 1361, 1305, 1313, 1321, 1329, 1337, 1345, 1353, 1361, 1369, 1377, 1385, 1393, 1401, 1409, 1417, 1425, 1369, 1377, 1385, 1393, 1401, 1409, 1417, 1425, 1433, 1441, 1449, 1457, 1465, 1473, 1481, 1489, 1433, 1441, 1449, 1457, 1465, 1473, 1481, 1489, 8, 8, 1497, 1505, 1513, 64, 8, 1521, 57413, 57413, 1637, 1249, 1505, 1662, 1529, 1694, 1726, 1538, 1545, 1553, 1561, 64, 8, 1569, 1757, 1257, 1781, 1265, 1553, 1578, 1586, 1594, 8, 8, 8, 1601, 64, 64, 8, 8, 57413, 57413, 1805, 1273, 64, 1610, 1618, 1626, 8, 8, 8, 1633, 8, 8, 8, 8, 57413, 57413, 1829, 1289, 57421, 1642, 298, 1650, 64, 64, 1657, 1665, 1673, 64, 8, 1681, 1853, 1281, 1301, 1297, 1665, 1878, 1910, 64, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 960, 3, 3, 832, 2880, 24, 57357, 24, 24, 24, 24, 24, 1942, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 64, 64, 64, 24, 64, 64, 832, 832, 832, 832, 832, 10, 24, 24, 24, 1689, 1697, 24, 1705, 1713, 24, 24, 24, 24, 1722, 24, 1974, 24, 24, 24, 24, 24, 24, 24, 24, 1730, 1738, 1746, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 1753, 24, 24, 24, 24, 24, 24, 24, 10, 960, 832, 832, 832, 960, 64, 64, 64, 64, 64, 832, 832, 832, 832, 832, 832, 1761, 785, 64, 64, 1769, 1777, 1785, 1793, 1801, 1809, 1818, 2005, 1826, 1834, 1842, 809, 1761, 73, 41, 49, 1769, 1777, 1785, 1793, 1801, 1809, 1818, 2029, 1826, 1834, 1842, 64, 25, 761, 81, 265, 865, 169, 793, 257, 801, 809, 825, 137, 833, 64, 64, 64, 24, 24, 24, 24, 24, 24, 24, 24, 1849, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 2054, 2086, 985, 2117, 24, 2150, 2182, 873, 24, 2213, 777, 169, 169, 169, 169, 1857, 785, 785, 257, 257, 24, 809, 1865, 24, 24, 825, 1873, 185, 185, 185, 24, 24, 1881, 2245, 1889, 24, 1201, 24, 1897, 24, 1201, 24, 793, 1905, 745, 985, 24, 761, 761, 1009, 64, 801, 81, 1913, 1921, 1929, 1937, 785, 24, 2277, 1945, 929, 929, 1945, 2309, 24, 24, 24, 24, 753, 753, 761, 785, 177, 24, 24, 24, 24, 8, 24, 1953, 1961, 1969, 1977, 1985, 1993, 2001, 2009, 2017, 2025, 2033, 2041, 2049, 2057, 2065, 2073, 785, 2081, 2333, 2089, 913, 2097, 2365, 2105, 2113, 265, 2121, 2397, 257, 985, 753, 801, 785, 2081, 2429, 2089, 913, 2097, 2461, 2105, 2113, 265, 2121, 2493, 257, 985, 753, 801, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 73, 41, 49, 1769, 1777, 1785, 1793, 1801, 1809, 2169, 2177, 2185, 2193, 2201, 2209, 2217, 2225, 2233, 2241, 2249, 2590, 2622, 2654, 2686, 2718, 2750, 2782, 2814, 2846, 2258, 2266, 2274, 2282, 2290, 2298, 2306, 2314, 2322, 2330, 2338, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 2878, 2910, 2942, 2974, 3006, 3038, 3070, 3102, 3134, 3166, 3198, 3230, 3262, 3294, 3326, 3358, 3390, 3422, 3454, 3486, 3518, 3550, 3582, 3614, 3646, 3678, 25, 745, 985, 753, 761, 1009, 777, 169, 785, 177, 793, 257, 801, 809, 81, 825, 1873, 185, 137, 833, 841, 913, 193, 265, 201, 1201, 25, 745, 985, 753, 761, 1009, 777, 169, 785, 177, 793, 257, 801, 809, 81, 825, 1873, 185, 137, 833, 841, 913, 193, 265, 201, 1201, 1761, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 57357, 8, 2369, 3797, 2377, 8, 8, 57469, 8, 57373, 8, 57405, 8, 857, 1089, 849, 977, 8, 57357, 8, 8, 57373, 8, 8, 8, 8, 8, 8, 177, 913, 2385, 2393, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 8, 24, 24, 24, 24, 24, 24, 57405, 8, 57373, 8, 13064, 13064, 13064, 57357, 8, 64, 64, 64, 64, 64, 24, 24, 24, 24, 24, 24, 24, 10005, 10037, 10069, 10101, 10133, 10165, 10197, 10229, 10261, 10293, 10325, 10357, 10389, 10421, 10453, 10485, 10517, 10549, 10581, 10613, 10645, 10677, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 10, 24, 2401, 24, 24, 8, 8, 8, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 13064, 13064, 13064, 13064, 12312, 12312, 24, 24, 24, 24, 24, 24, 57637, 24, 10709, 10741, 10773, 24, 8, 24, 24, 24, 11093, 11125, 11157, 11189, 11221, 11253, 11253, 11253, 11285, 11285, 11285, 11285, 11317, 11317, 11317, 11349, 11381, 11381, 10901, 10901, 11381, 11381, 11413, 11413, 11381, 11381, 10901, 10901, 11381, 11381, 11349, 11349, 11445, 11445, 11477, 11477, 64, 11509, 11541, 11573, 11573, 11605, 11637, 11669, 11701, 11733, 11765, 11797, 11829, 11861, 11861, 11893, 11925, 11925, 11957, 11989, 11893, 12021, 12053, 12021, 11893, 12085, 12117, 12149, 12181, 12213, 11541, 11509, 12245, 12277, 12309, 12341, 12373, 12405, 12437, 12469, 12501, 12533, 12565, 64, 24, 24, 12597, 12629, 12661, 12693, 12725, 12757, 12789, 12821, 12853, 12885, 12661, 12917, 12949, 12981, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 2946, 2954, 2962, 2970, 13013, 13045, 13077, 13109, 24, 24, 24, 24, 24, 24, 24, 24, 13141, 2977, 2985, 2993, 3001, 3009, 3017, 3025, 3033, 3041, 3049, 3057, 3065, 3073, 3081, 3089, 13173, 13205, 13237, 13269, 13301, 13301, 13333, 13365, 13397, 13429, 13461, 13493, 13525, 13557, 13589, 13621, 13653, 13685, 13717, 13749, 13781, 13813, 13845, 13877, 13909, 13941, 13973, 14005, 3097, 3105, 14037, 24, 14069, 14101, 14133, 14165, 14197, 14229, 14261, 14293, 14325, 14357, 14389, 14421, 14453, 14485, 14517, 14549, 14581, 14613, 14645, 14677, 14709, 14741, 14773, 14805, 14837, 14869, 14901, 14933, 14965, 14997, 15029, 15061, 15093, 15125, 15157, 15189, 15221, 15253, 4757, 15285, 15317, 15349, 15381, 15413, 15445, 15477, 9141, 15509, 15541, 3113, 3121, 3129, 3137, 3145, 3153, 3161, 3169, 3177, 3185, 3193, 3201, 3209, 3217, 3225, 3233, 3241, 3249, 3257, 3265, 3273, 3281, 3289, 3297, 3305, 3313, 3321, 3329, 15573, 3337, 15605, 15637, 15661, 15685, 15709, 15733, 15733, 15709, 15757, 2005, 15781, 15805, 15829, 15853, 15877, 15901, 15925, 15949, 15973, 15997, 16021, 16045, 16045, 16069, 16069, 16093, 16093, 16117, 16141, 16165, 16189, 16213, 16213, 16237, 16237, 16237, 16261, 16285, 16309, 16333, 16309, 16357, 16381, 16261, 16405, 16429, 16429, 16429, 3345, 4345, 4353, 16549, 4361, 4369, 4377, 4385, 4393, 16581, 4401, 4409, 4417, 16613, 16613, 4425, 4433, 4441, 16645, 16677, 16709, 16741, 16773, 4449, 4457, 4465, 4473, 4481, 16805, 4489, 4497, 4505, 16837, 16869, 4513, 16901, 16933, 16965, 4521, 16997, 4529, 4537, 4345, 17029, 17061, 17093, 17125, 4545, 4553, 4561, 4569, 17157, 4577, 4585, 4593, 17189, 4601, 4609, 4601, 4617, 4625, 17221, 4633, 4641, 4633, 17253, 17285, 64, 4649, 4657, 4665, 4673, 64, 4681, 4689, 4697, 4705, 4713, 4721, 4505, 4729, 4737, 4745, 17317, 4753, 4385, 17349, 17381, 4761, 64, 17413, 4769, 4777, 4785, 4793, 4801, 4809, 4817, 4825, 4833, 4841, 4849, 4857, 4865, 4873, 4881, 4889, 4897, 4905, 4913, 4921, 4929, 4937, 4945, 4953, 4961, 4969, 4977, 4985, 4993, 5001, 5009, 5017, 5025, 5033, 5041, 5049, 5057, 17445, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 8, 13064, 13080, 13080, 13080, 24, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 24, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 721, 5065, 13064, 13064, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 8, 8, 8, 8, 8, 8, 8, 8, 8, 24, 24, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 8, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57597, 8, 8, 8, 8, 8, 8, 8, 8, 57373, 8, 57405, 8, 17477, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 8, 24, 24, 57405, 8, 1033, 8, 8, 57357, 8, 57357, 8, 8, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 5073, 881, 1025, 5081, 1057, 8, 5089, 5097, 1065, 17509, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 57357, 8, 1013, 1145, 17533, 57469, 8, 57373, 8, 64, 64, 64, 64, 64, 57357, 8, 64, 8, 64, 8, 57357, 8, 57357, 8, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 985, 1009, 1873, 57373, 8, 8, 1857, 5105, 8, 8, 8, 8, 8, 8, 25869, 25901, 25933, 25965, 25997, 26029, 26061, 26093, 26125, 26157, 26189, 26221, 26253, 26285, 8, 8, 26317, 8, 26349, 8, 8, 26381, 26413, 26445, 26477, 26509, 26541, 26573, 26605, 26637, 26669, 8, 26701, 8, 26733, 8, 8, 26765, 26797, 8, 8, 8, 26829, 26861, 26893, 26925, 26957, 26989, 27021, 27053, 27085, 27117, 27149, 27181, 27213, 27245, 27277, 27309, 27341, 27373, 27405, 27437, 27469, 27501, 31437, 31469, 31501, 31533, 31565, 31597, 31629, 31661, 31693, 31725, 31757, 31789, 31821, 31853, 31885, 5129, 5137, 5145, 31917, 31949, 31981, 5153, 5161, 5169, 32013, 32045, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 5177, 5185, 5193, 32077, 32109, 5201, 5201, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 5209, 5217, 5225, 5233, 5241, 64, 64, 64, 64, 64, 5249, 13064, 5257, 5265, 1913, 1937, 5273, 5281, 5289, 5297, 5305, 5313, 1818, 5321, 5329, 5337, 5345, 5353, 5361, 5369, 5377, 5385, 5393, 5401, 5409, 5417, 64, 5425, 5433, 5441, 5449, 5457, 64, 5465, 64, 5473, 5481, 64, 5489, 5497, 64, 5505, 5513, 5521, 5529, 5537, 5545, 5553, 5561, 5569, 5577, 5585, 5585, 5593, 5593, 5593, 5593, 5601, 5601, 5601, 5601, 5609, 5609, 5609, 5609, 5617, 5617, 5617, 5617, 5625, 5625, 5625, 5625, 5633, 5633, 5633, 5633, 5641, 5641, 5641, 5641, 5649, 5649, 5649, 5649, 5657, 5657, 5657, 5657, 5665, 5665, 5665, 5665, 5673, 5673, 5673, 5673, 5681, 5681, 5681, 5681, 5689, 5689, 5697, 5697, 5705, 5705, 5713, 5713, 5721, 5721, 5729, 5729, 5737, 5737, 5737, 5737, 5745, 5745, 5745, 5745, 5753, 5753, 5753, 5753, 5761, 5761, 5761, 5761, 5769, 5769, 5777, 5777, 5777, 5777, 5785, 5785, 5793, 5793, 5793, 5793, 5801, 5801, 5801, 5801, 5809, 5809, 5817, 5817, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 5825, 5825, 5825, 5825, 5833, 5833, 5841, 5841, 5849, 5849, 329, 5857, 5857, 5865, 5865, 5873, 5873, 5881, 5881, 5881, 5881, 5889, 5889, 5897, 5897, 5905, 5905, 5913, 5913, 5921, 5921, 5929, 5929, 5937, 5937, 5945, 5945, 5945, 5953, 5953, 5953, 5961, 5961, 5961, 5961, 6473, 6481, 6489, 6497, 6505, 6513, 6521, 6529, 6537, 6545, 6553, 6561, 6569, 6577, 6585, 6593, 6601, 6609, 6617, 6625, 6633, 6641, 6649, 6657, 6665, 6673, 6681, 6689, 6697, 6705, 6714, 6722, 6730, 6738, 6746, 6754, 6761, 6769, 5985, 6777, 5953, 5993, 6785, 6793, 6025, 6801, 6033, 6041, 6809, 6817, 6073, 6825, 6081, 6089, 6833, 6841, 6105, 6849, 6113, 6121, 6353, 6361, 6385, 6393, 6401, 6433, 6441, 6449, 6457, 6489, 6497, 6505, 6857, 6537, 6865, 6873, 6585, 6881, 6593, 6601, 6705, 6889, 6897, 6665, 6905, 6673, 6681, 5969, 5977, 6913, 5985, 6921, 6001, 6009, 6017, 6025, 6929, 6049, 6057, 6065, 6073, 6937, 6105, 6129, 6137, 6145, 6153, 6161, 6177, 6185, 6193, 6201, 6209, 6217, 6945, 6225, 6233, 6241, 6249, 6257, 6265, 6281, 6289, 6297, 6305, 6313, 6321, 6329, 6337, 6345, 6369, 6377, 6409, 6417, 6425, 6433, 6441, 6465, 6473, 6481, 6489, 6953, 6513, 6521, 6529, 6537, 6561, 6569, 6577, 6585, 6961, 6609, 6617, 6969, 6641, 6649, 6657, 6665, 6977, 5985, 6921, 6025, 6929, 6073, 6937, 6105, 6985, 6209, 6993, 7001, 7009, 6433, 6441, 6489, 6585, 6961, 6665, 6977, 7017, 7025, 7033, 7041, 7049, 7057, 7065, 7073, 7081, 7089, 7097, 7105, 7113, 7121, 7129, 7137, 7145, 7153, 7161, 7169, 7177, 7185, 7193, 7201, 7209, 7217, 7001, 7225, 7233, 7241, 7249, 7041, 7049, 7057, 7065, 7073, 7081, 7089, 7097, 7105, 7113, 7121, 7129, 7137, 7145, 7153, 7161, 7169, 7177, 7185, 7193, 7201, 7209, 7217, 7001, 7225, 7233, 7241, 7249, 7201, 7209, 7217, 7001, 6993, 7009, 6273, 6185, 6193, 6201, 7201, 7209, 7217, 6273, 6281, 7257, 7257, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 7265, 7273, 7273, 7281, 7289, 7297, 7305, 7313, 7321, 7321, 7329, 7337, 7345, 7353, 7361, 7369, 7369, 7377, 7385, 7385, 7393, 7393, 7401, 7409, 7409, 7417, 7425, 7425, 7433, 7433, 7441, 7449, 7449, 7457, 7457, 7465, 7473, 7481, 7489, 7489, 7497, 7505, 7513, 7521, 7529, 7529, 7537, 7545, 7977, 7985, 7993, 7953, 7481, 7401, 8001, 8009, 64, 64, 64, 64, 64, 64, 64, 24, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 8017, 8025, 8033, 8041, 8049, 8057, 8065, 8073, 8081, 8089, 8098, 8106, 8113, 24, 24, 24, 13248, 13248, 13248, 13248, 13248, 13248, 13248, 13248, 13248, 13248, 13248, 13248, 13248, 13248, 13248, 13248, 8122, 32141, 64, 8130, 290, 8138, 8146, 32173, 32205, 64, 64, 64, 64, 64, 64, 64, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 64, 32237, 32269, 8154, 8154, 1834, 1842, 8162, 8170, 32301, 32333, 32365, 32301, 32397, 32429, 32397, 32461, 32493, 32525, 32493, 32557, 24, 24, 8178, 8186, 32590, 32622, 32654, 32686, 8154, 8154, 8154, 8122, 32717, 64, 64, 290, 8130, 8146, 8138, 32749, 1834, 1842, 8162, 8170, 32461, 32557, 8194, 8202, 8210, 1818, 8217, 8226, 8234, 1826, 64, 8242, 8250, 8258, 8266, 64, 64, 64, 64, 32782, 8273, 32814, 2056, 32846, 64, 32878, 8281, 32910, 8289, 32942, 8297, 32974, 8305, 33006, 8313, 8321, 8329, 8329, 8337, 8337, 8345, 8345, 8353, 8353, 8361, 8361, 8361, 8361, 8369, 8369, 8377, 8377, 8377, 8377, 8385, 8385, 8393, 8393, 8393, 8393, 8401, 8401, 8401, 8401, 8409, 8409, 8409, 8409, 8417, 8417, 8417, 8417, 8425, 8425, 8425, 8425, 8433, 8433, 8441, 8441, 8449, 8449, 8457, 8457, 8465, 8465, 8465, 8465, 8473, 8473, 8473, 8473, 8481, 8481, 8481, 8481, 8489, 8489, 8489, 8489, 8497, 8497, 8497, 8497, 8505, 8505, 8505, 8505, 8513, 8513, 8513, 8513, 8521, 8521, 8521, 8521, 8529, 8529, 8529, 8529, 8537, 8537, 8537, 8537, 8545, 8545, 8545, 8545, 8553, 8553, 8553, 8553, 8561, 8561, 8561, 8561, 8569, 8569, 8569, 8569, 8577, 8577, 8577, 8577, 8585, 8585, 5889, 5889, 8593, 8593, 8593, 8593, 8601, 8601, 8609, 8609, 8617, 8617, 8625, 8625, 64, 64, 960, 64, 8138, 8634, 8194, 8250, 8258, 8202, 8642, 1834, 1842, 8210, 1818, 8122, 8217, 2401, 8650, 1761, 73, 41, 49, 1769, 1777, 1785, 1793, 1801, 1809, 8130, 290, 8226, 1826, 8234, 8146, 8266, 25, 745, 985, 753, 761, 1009, 777, 169, 785, 177, 793, 257, 801, 809, 81, 825, 1873, 185, 137, 833, 841, 913, 193, 265, 201, 1201, 8178, 8242, 8186, 8658, 8154, 1650, 25, 745, 985, 753, 761, 1009, 777, 169, 785, 177, 793, 257, 801, 809, 81, 825, 1873, 185, 137, 833, 841, 913, 193, 265, 201, 1201, 8162, 8666, 8170, 8674, 33037, 33069, 2401, 33101, 33101, 33133, 33165, 33197, 33229, 33261, 33293, 33325, 33357, 33389, 33421, 33453, 33485, 33517, 33549, 33581, 33613, 33645, 33677, 33709, 33741, 33773, 33805, 33837, 33869, 33261, 33901, 33933, 33357, 33965, 33997, 34029, 34061, 34093, 34125, 34157, 34189, 34061, 34221, 34061, 34253, 34253, 34285, 34285, 34317, 34125, 34349, 34381, 34349, 34413, 34381, 34445, 34445, 34477, 34477, 34509, 34509, 34381, 33101, 34541, 34573, 64, 34605, 34637, 34669, 34701, 34669, 34733, 34765, 34797, 34797, 34829, 34829, 34861, 34861, 34829, 34829, 34893, 34925, 34957, 34989, 35021, 35053, 35053, 35053, 35085, 35085, 35085, 35085, 34797, 34797, 34797, 64, 64, 64, 34637, 34605, 35117, 34605, 34637, 34605, 64, 64, 35149, 34637, 35181, 35117, 35181, 34637, 64, 64, 35213, 35245, 34989, 35181, 35117, 35181, 64, 64, 35277, 35309, 35277, 64, 64, 64, 8681, 8689, 8697, 35342, 8705, 8713, 35373, 64, 35405, 35437, 35469, 35437, 35501, 35533, 35565, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 832, 832, 832, 64, 64, 64, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 24, 35645, 35669, 35693, 35669, 35717, 35669, 35693, 35669, 35645, 35741, 35765, 64, 35789, 35741, 35765, 35741, 57661, 57677, 57693, 57677, 57725, 57677, 57693, 57677, 57661, 57805, 57821, 64, 57853, 57805, 57821, 57805, 57661, 57677, 57693, 64, 57725, 57677, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 64, 8, 8, 8, 8, 8, 8, 8, 64, 8, 8, 64, 64, 64, 8, 8721, 8729, 737, 8737, 8745, 64, 8753, 8761, 8769, 8777, 8785, 8793, 8801, 8809, 8817, 8825, 8833, 8841, 8849, 8857, 1857, 8865, 8873, 8881, 8889, 8897, 5081, 35813, 8905, 8913, 35845, 8921, 35877, 8929, 8937, 8945, 1873, 8953, 35909, 2377, 8961, 8969, 8977, 8985, 8993, 9001, 9009, 9017, 64, 9025, 9033, 9041, 9049, 9057, 9065, 9073, 35941, 35973, 64, 64, 64, 64, 64, 2568, 2568, 2568, 2568, 2568, 3080, 2056, 3080, 2072, 3080, 3080, 2056, 2056, 2312, 3080, 3080, 3080, 3080, 3080, 2568, 2568, 2568, 2568, 2312, 2568, 2568, 2568, 2568, 2568, 3080, 2568, 2568, 2568, 3080, 2056, 2056, 3080, 13064, 13064, 64, 64, 64, 64, 2584, 2584, 2584, 2584, 3096, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 64, 64, 64, 64, 64, 64, 64, 64, 64, 2568, 3080, 2568, 3080, 3080, 3080, 2568, 2568, 2568, 3080, 2568, 2568, 3080, 2568, 3080, 3080, 2568, 3080, 64, 64, 64, 64, 64, 64, 64, 2072, 2072, 2072, 2072, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 3096, 3096, 3096, 3096, 2584, 2584, 2072, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 13064, 13064, 12296, 12296, 64, 8, 8, 8, 8, 8, 8, 8, 8, 64, 64, 8, 8, 64, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 64, 8, 8, 8, 8, 8, 8, 8, 64, 8, 8, 64, 8, 8, 8, 8, 8, 64, 13064, 13064, 8, 12296, 12296, 13064, 12296, 12296, 12296, 12296, 64, 64, 12296, 12296, 64, 64, 12296, 12296, 14344, 64, 64, 8, 64, 64, 64, 64, 64, 64, 12296, 64, 64, 64, 64, 64, 8, 8, 8, 8, 8, 12296, 12296, 64, 64, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 64, 64, 64, 13064, 13064, 13064, 13064, 13064, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 8, 8, 8, 8, 8, 8, 8, 64, 64, 8, 64, 64, 8, 8, 8, 8, 8, 8, 8, 8, 64, 8, 8, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 12296, 12296, 12296, 12296, 12296, 12296, 64, 12296, 12296, 64, 64, 13064, 13064, 14344, 15112, 8, 25, 745, 985, 753, 761, 1009, 777, 169, 785, 177, 793, 257, 801, 809, 81, 825, 1873, 185, 137, 833, 841, 913, 193, 265, 201, 1201, 25, 745, 985, 753, 761, 1009, 777, 169, 785, 177, 793, 257, 801, 809, 81, 825, 1873, 185, 137, 833, 841, 913, 193, 265, 201, 1201, 25, 745, 985, 753, 761, 1009, 777, 169, 785, 177, 793, 257, 801, 809, 81, 825, 1873, 185, 137, 833, 841, 913, 193, 265, 201, 1201, 25, 745, 985, 753, 761, 1009, 777, 64, 785, 177, 793, 257, 801, 809, 81, 825, 1873, 185, 137, 833, 841, 913, 193, 265, 201, 1201, 25, 745, 985, 753, 761, 1009, 777, 169, 785, 177, 793, 257, 801, 809, 81, 825, 1873, 185, 137, 833, 841, 913, 193, 265, 201, 1201, 25, 745, 985, 753, 761, 1009, 777, 169, 785, 177, 793, 257, 801, 809, 81, 825, 1873, 185, 137, 833, 841, 913, 193, 265, 201, 1201, 25, 64, 985, 753, 64, 64, 777, 64, 64, 177, 793, 64, 64, 809, 81, 825, 1873, 64, 137, 833, 841, 913, 193, 265, 201, 1201, 25, 745, 985, 753, 64, 1009, 64, 169, 785, 177, 793, 257, 801, 809, 64, 825, 1873, 185, 137, 833, 841, 913, 193, 265, 201, 1201, 25, 745, 985, 753, 761, 1009, 777, 169, 785, 177, 793, 257, 801, 809, 81, 825, 1873, 185, 137, 833, 841, 913, 193, 265, 201, 1201, 25, 745, 985, 753, 761, 1009, 777, 169, 785, 177, 793, 257, 801, 809, 81, 825, 1873, 185, 137, 833, 841, 913, 193, 265, 201, 1201, 25, 745, 64, 753, 761, 1009, 777, 64, 64, 177, 793, 257, 801, 809, 81, 825, 1873, 64, 137, 833, 841, 913, 193, 265, 201, 64, 25, 745, 985, 753, 761, 1009, 777, 169, 785, 177, 793, 257, 801, 809, 81, 825, 1873, 185, 137, 833, 841, 913, 193, 265, 201, 1201, 25, 745, 64, 753, 761, 1009, 777, 64, 785, 177, 793, 257, 801, 64, 81, 64, 64, 64, 137, 833, 841, 913, 193, 265, 201, 64, 25, 745, 985, 753, 761, 1009, 777, 169, 785, 177, 793, 257, 801, 809, 81, 825, 1873, 185, 137, 833, 841, 913, 193, 265, 201, 1201, 25, 745, 985, 753, 761, 1009, 777, 169, 785, 177, 793, 257, 801, 809, 81, 825, 1873, 185, 137, 833, 841, 913, 193, 265, 201, 1201, 25, 745, 985, 753, 761, 1009, 777, 169, 785, 177, 793, 257, 801, 809, 81, 825, 1873, 185, 137, 833, 841, 913, 193, 265, 201, 1201, 25, 745, 985, 753, 761, 1009, 777, 169, 785, 177, 793, 257, 801, 809, 81, 825, 1873, 185, 137, 833, 841, 913, 193, 265, 201, 1201, 25, 745, 985, 753, 761, 1009, 777, 169, 785, 177, 793, 257, 801, 809, 81, 825, 1873, 185, 137, 833, 841, 913, 193, 265, 201, 1201, 25, 745, 985, 753, 761, 1009, 777, 169, 785, 177, 793, 257, 801, 809, 81, 825, 1873, 185, 137, 833, 841, 913, 193, 265, 201, 1201, 25, 745, 985, 753, 761, 1009, 777, 169, 785, 177, 793, 257, 801, 809, 81, 825, 1873, 185, 137, 833, 841, 913, 193, 265, 201, 1201, 25, 745, 985, 753, 761, 1009, 777, 169, 785, 177, 793, 257, 801, 809, 81, 825, 1873, 185, 137, 833, 841, 913, 193, 265, 201, 1201, 25, 745, 985, 753, 761, 1009, 777, 169, 785, 177, 793, 257, 801, 809, 81, 825, 1873, 185, 137, 833, 841, 913, 193, 265, 201, 1201, 25, 745, 985, 753, 761, 1009, 777, 169, 785, 177, 793, 257, 801, 809, 81, 825, 1873, 185, 137, 833, 841, 913, 193, 265, 201, 1201, 25, 745, 985, 753, 761, 1009, 777, 169, 785, 177, 793, 257, 801, 809, 81, 825, 1873, 185, 137, 833, 841, 913, 193, 265, 201, 1201, 25, 745, 985, 753, 761, 1009, 777, 169, 785, 177, 793, 257, 801, 809, 81, 825, 1873, 185, 137, 833, 841, 913, 193, 265, 201, 1201, 25, 745, 985, 753, 761, 1009, 777, 169, 785, 177, 793, 257, 801, 809, 81, 825, 1873, 185, 137, 833, 841, 913, 193, 265, 201, 1201, 9185, 9193, 64, 64, 9201, 921, 929, 937, 9209, 9217, 9225, 1233, 1529, 9233, 9241, 9249, 9257, 9265, 9273, 1945, 961, 1233, 9281, 9289, 9297, 945, 953, 9305, 1897, 9313, 9201, 921, 929, 937, 9209, 9217, 9225, 1233, 1529, 9233, 9241, 9249, 9257, 9265, 9273, 1945, 961, 9281, 9281, 9289, 9297, 945, 953, 9305, 1897, 9321, 9209, 1233, 9233, 945, 961, 1945, 9201, 921, 929, 937, 9209, 9217, 9225, 1233, 1529, 9233, 9241, 9249, 9257, 9265, 9273, 1945, 961, 1233, 9281, 9289, 9297, 945, 953, 9305, 1897, 9313, 9201, 921, 929, 937, 9209, 9217, 9225, 1233, 1529, 9233, 9241, 9249, 9257, 9265, 9273, 1945, 961, 9281, 9281, 9289, 9297, 945, 953, 9305, 1897, 9321, 9209, 1233, 9233, 945, 961, 1945, 9201, 921, 929, 937, 9209, 9217, 9225, 1233, 1529, 9233, 9241, 9249, 9257, 9265, 9273, 1945, 961, 1233, 9281, 9289, 9297, 945, 953, 9305, 1897, 9313, 9201, 921, 929, 937, 9209, 9217, 9225, 1233, 1529, 9233, 9241, 9249, 9257, 9265, 9273, 1945, 961, 9281, 9281, 9289, 9297, 945, 953, 9305, 1897, 9321, 9209, 1233, 9233, 945, 961, 1945, 9201, 921, 929, 937, 9209, 9217, 9225, 1233, 1529, 9233, 9241, 9249, 9257, 9265, 9273, 1945, 961, 1233, 9281, 9289, 9297, 945, 953, 9305, 1897, 9313, 9201, 921, 929, 937, 9209, 9217, 9225, 1233, 1529, 9233, 9241, 9249, 9257, 9265, 9273, 1945, 961, 9281, 9281, 9289, 9297, 945, 953, 9305, 1897, 9321, 9209, 1233, 9233, 945, 961, 1945, 9201, 921, 929, 937, 9209, 9217, 9225, 1233, 1529, 9233, 9241, 9249, 9257, 9265, 9273, 1945, 961, 1233, 9281, 9289, 9297, 945, 953, 9305, 1897, 9313, 9201, 921, 929, 937, 9209, 9217, 9225, 1233, 1529, 9233, 9241, 9249, 9257, 9265, 9273, 1945, 961, 9281, 9281, 9289, 9297, 945, 953, 9305, 1897, 9321, 9209, 1233, 9233, 945, 961, 1945, 9329, 9329, 64, 64, 1761, 73, 41, 49, 1769, 1777, 1785, 1793, 1801, 1809, 1761, 73, 41, 49, 1769, 1777, 1785, 1793, 1801, 1809, 1761, 73, 41, 49, 1769, 1777, 1785, 1793, 1801, 1809, 1761, 73, 41, 49, 1769, 1777, 1785, 1793, 1801, 1809, 1761, 73, 41, 49, 1769, 1777, 1785, 1793, 1801, 1809, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 64, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 64, 64, 13064, 13064, 13064, 13064, 13064, 13064, 13064, 64, 13064, 13064, 64, 13064, 13064, 13064, 13064, 13064, 64, 64, 64, 64, 64, 9337, 9345, 681, 9353, 689, 9361, 9369, 9377, 9385, 9393, 9401, 9409, 697, 9417, 9425, 705, 713, 9433, 9441, 9449, 9457, 9465, 9473, 9481, 9489, 9497, 9505, 9513, 9521, 9529, 9537, 9545, 9553, 9337, 9345, 681, 9353, 689, 9361, 9369, 9377, 9385, 9393, 9401, 697, 9417, 705, 9433, 9441, 9449, 9457, 9465, 9473, 721, 9481, 9561, 9521, 9569, 9577, 9585, 9593, 9601, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 57621, 57621, 57653, 57653, 57621, 57621, 57717, 57717, 57621, 57621, 57653, 57653, 57621, 57621, 57845, 57845, 57621, 57621, 57653, 57653, 57621, 57621, 57717, 57717, 57621, 57621, 57653, 57653, 57621, 57621, 36005, 36005, 1205, 1205, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 8369, 8377, 8409, 8433, 64, 8585, 8457, 8417, 8497, 8593, 8545, 8553, 8561, 8569, 8465, 8513, 8529, 8481, 8537, 8449, 8473, 8393, 8401, 8425, 8441, 8489, 8505, 8521, 9609, 5769, 9617, 9625, 64, 8377, 8409, 64, 8577, 64, 64, 8417, 64, 8593, 8545, 8553, 8561, 8569, 8465, 8513, 8529, 8481, 8537, 64, 8473, 8393, 8401, 8425, 64, 8489, 64, 8521, 64, 64, 64, 64, 64, 64, 8409, 64, 64, 64, 64, 8417, 64, 8593, 64, 8553, 64, 8569, 8465, 8513, 64, 8481, 8537, 64, 8473, 64, 64, 8425, 64, 8489, 64, 8521, 64, 5769, 64, 9625, 64, 8377, 8409, 64, 8577, 64, 64, 8417, 8497, 8593, 8545, 64, 8561, 8569, 8465, 8513, 8529, 8481, 8537, 64, 8473, 8393, 8401, 8425, 64, 8489, 8505, 8521, 9609, 64, 9617, 64, 8369, 8377, 8409, 8433, 8577, 8585, 8457, 8417, 8497, 8593, 64, 8553, 8561, 8569, 8465, 8513, 8529, 8481, 8537, 8449, 8473, 8393, 8401, 8425, 8441, 8489, 8505, 8521, 64, 64, 64, 64, 64, 8377, 8409, 8433, 64, 8585, 8457, 8417, 8497, 8593, 64, 8553, 8561, 8569, 8465, 8513, 8529, 8481, 8537, 8449, 8473, 8393, 8401, 8425, 8441, 8489, 8505, 8521, 64, 64, 64, 64, 64, 9634, 9642, 9650, 9658, 9666, 9674, 9682, 9690, 9698, 9706, 24, 24, 24, 24, 24, 9714, 9722, 9730, 9738, 9746, 9754, 9762, 9770, 9778, 9786, 9794, 9802, 9810, 9818, 9826, 9834, 9842, 9850, 9858, 9866, 9874, 9882, 9890, 9898, 9906, 9914, 9921, 985, 185, 4665, 9929, 24, 25, 745, 985, 753, 761, 1009, 777, 169, 785, 177, 793, 257, 801, 809, 81, 825, 1873, 185, 137, 833, 841, 913, 193, 265, 201, 1201, 9937, 4601, 9945, 1241, 9953, 9961, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 9969, 9977, 9985, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 10001, 10009, 10017, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 10025, 10033, 10041, 10049, 10057, 10065, 10073, 10081, 10089, 10097, 10105, 10113, 10121, 10129, 10137, 10145, 10153, 10161, 10169, 10177, 10185, 10193, 10201, 10209, 10217, 10225, 10233, 10241, 10249, 10257, 10265, 10273, 10281, 10289, 10297, 10305, 10313, 10321, 10329, 10337, 10345, 10353, 10361, 10369, 64, 64, 64, 64, 10465, 10473, 10481, 36029, 10489, 10497, 10505, 10513, 10521, 10529, 10537, 10545, 10553, 36061, 10561, 10569, 10577, 10585, 36093, 10593, 10601, 10137, 36125, 10609, 10617, 10625, 10633, 10641, 36157, 10649, 10657, 10665, 10673, 10681, 10353, 10689, 10697, 10705, 10713, 10721, 10729, 10737, 10745, 10753, 10761, 10769, 10777, 10785, 10793, 10801, 10801, 10801, 36189, 10809, 10817, 10825, 36221, 10833, 10841, 10849, 10857, 10865, 10873, 10881, 10889, 10897, 10905, 10913, 10921, 10929, 10929, 10937, 10945, 10953, 10961, 10969, 10977, 10985, 10993, 11001, 11009, 11017, 11025, 11033, 11041, 11049, 11057, 11065, 11073, 36253, 11081, 11089, 11097, 10065, 11105, 11113, 36285, 36317, 11121, 11129, 11137, 11145, 11153, 11161, 8256, 11169, 11177, 11177, 36349, 11185, 11193, 11201, 11209, 36381, 11217, 11225, 8256, 11233, 11241, 11249, 11257, 11265, 11273, 36413, 11281, 36445, 11289, 11297, 11305, 11313, 11321, 11329, 11337, 11345, 11353, 11361, 11369, 36477, 11377, 11385, 11393, 11401, 11409, 36509, 11417, 36541, 36573, 11425, 11433, 11433, 11441, 36605, 36637, 11449, 11457, 11465, 11473, 11481, 11489, 11497, 11505, 11513, 11521, 11529, 36669, 11537, 11545, 11553, 11561, 11553, 11569, 11577, 11585, 11593, 11601, 11609, 11617, 11625, 11633, 11641, 11649, 11657, 11665, 11673, 36701, 11681, 11689, 11697, 11705, 11713, 36733, 11721, 11729, 11737, 11745, 11753, 11761, 11769, 11777, 11785, 11793, 11801, 36765, 11809, 11817, 11825, 11833, 11841, 11849, 11857, 11865, 11873, 11881, 11889, 11897, 11905, 11913, 11921, 11929, 11937, 11945, 36797, 11953, 11961, 11969, 11977, 11985, 36829, 11993, 12001, 12009, 12017, 12025, 12033, 12041, 12049, 32525, 12057, 12065, 12073, 36861, 12081, 12089, 12097, 12105, 12113, 12121, 36893, 36925, 36957, 12129, 36989, 12137, 12145, 12153, 12161, 12169, 12177, 12185, 12193, 12201, 12209, 37021, 12217, 12225, 12233, 12241, 12249, 12257, 37053, 12265, 12273, 37085, 37117, 12281, 12289, 12297, 12305, 12313, 12321, 12329, 12337, 12345, 37149, 12353, 37181, 12361, 8256, 12369, 12377, 12385, 37213, 12393, 12401, 37245, 37277, 12409, 12417, 12425, 12433, 12441, 12441, 12449, 12457, 12465, 12473, 12481, 12489, 12497, 37309, 12505, 37341, 12513, 37373, 12521, 37405, 37437, 37469, 12529, 12537, 12545, 37501, 37533, 37565, 37597, 12553, 12561, 12561, 12569, 12577, 12585, 12593, 12601, 37629, 12609, 12617, 12625, 12633, 37661, 12641, 37693, 37725, 12649, 12657, 12665, 12673, 12681, 12689, 37757, 37789, 37821, 8256, 12697, 37853, 12705, 12713, 12721, 37885, 12729, 12737, 12745, 12753, 12761, 37917, 12769, 12777, 12785, 12793, 12801, 12809, 37949, 37981, 12817, 38013, 12825, 38045, 12833, 12841, 12849, 38077, 38109, 12857, 38141, 12865, 38173, 12873, 12881, 12889, 12897, 12905, 12913, 38205, 38237, 38269, 38301, 11425, 12921, 12929, 12937, 12945, 12953, 12961, 12969, 12977, 12985, 12993, 13001, 38333, 13009, 13017, 13025, 13033, 13041, 13049, 13057, 13065, 13073, 13081, 13089, 13097, 38365, 38397, 38429, 13105, 13113, 13121, 13129, 38461, 13137, 38493, 13145, 13153, 38525, 38557, 13161, 13169, 13177, 13185, 13193, 13201, 13209, 13217, 13225, 13233, 13241, 13249, 13257, 8256, 13265, 13273, 13281, 13289, 13297, 38589, 13305, 13313, 13321, 13329, 13337, 38621, 38653, 13345, 13353, 13361, 13369, 13377, 13385, 38685, 13393, 13401, 13409, 13417, 38717, 38749, 13425, 13433, 13441, 38781, 13449, 13457, 26701, 38813, 13465, 13473, 13481, 38845, 13489, 13497, 13505, 13513, 13521, 13529, 13537, 38877, 13545, 13553, 13561, 38909, 13569, 13577, 13585, 13593, 31597, 38941, 13601, 13609, 13617, 38973, 13625, 39005, 13633, 13633, 13641, 39037, 13649, 13657, 13665, 13673, 13681, 13689, 13697, 39069, 13705, 13713, 13721, 13729, 13737, 13745, 39101, 13753, 39133, 39165, 39197, 13761, 13769, 13777, 13785, 13793, 13801, 13809, 13817, 39229, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64]); + idnaIndex = $toNativeArray($kindUint16, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 133, 2, 3, 4, 5, 6, 134, 135, 7, 136, 8, 9, 10, 137, 11, 12, 13, 14, 138, 139, 140, 15, 16, 141, 17, 18, 142, 143, 144, 2, 3, 4, 5, 6, 7, 7, 7, 7, 7, 8, 7, 7, 9, 10, 11, 32, 33, 33, 35, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, 19, 20, 146, 147, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 148, 149, 31, 32, 33, 150, 34, 151, 152, 153, 154, 35, 155, 156, 36, 37, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 166, 166, 166, 166, 166, 166, 166, 166, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 38, 39, 40, 136, 41, 41, 42, 41, 202, 43, 44, 45, 46, 47, 48, 203, 49, 50, 204, 162, 205, 206, 162, 162, 207, 162, 162, 162, 208, 51, 52, 53, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 209, 210, 162, 211, 162, 212, 213, 162, 214, 54, 41, 55, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 56, 57, 226, 227, 228, 229, 58, 59, 230, 231, 60, 61, 62, 232, 233, 63, 64, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 162, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 234, 235, 166, 166, 166, 166, 236, 65, 66, 237, 67, 68, 69, 70, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 254, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 257, 258, 259, 260, 71, 261, 262, 72, 73, 74, 75, 76, 263, 77, 78, 79, 80, 81, 264, 82, 83, 84, 85, 86, 87, 88, 89, 90, 265, 266, 166, 267, 268, 162, 269, 270, 256, 256, 271, 272, 273, 274, 275, 276, 277, 166, 278, 279, 280, 91, 92, 256, 166, 166, 166, 166, 281, 282, 93, 256, 283, 284, 285, 286, 287, 256, 288, 289, 290, 291, 292, 94, 293, 294, 95, 256, 295, 296, 297, 298, 299, 256, 256, 256, 256, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 96, 97, 256, 256, 319, 320, 321, 322, 256, 256, 323, 324, 325, 326, 327, 328, 329, 330, 256, 256, 331, 256, 332, 333, 98, 334, 335, 336, 337, 338, 339, 340, 341, 256, 256, 256, 342, 343, 344, 256, 345, 346, 347, 256, 256, 256, 256, 348, 349, 350, 351, 352, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 353, 256, 162, 354, 166, 166, 166, 355, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 356, 357, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 358, 359, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 166, 166, 166, 166, 166, 166, 166, 166, 166, 330, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 166, 166, 166, 166, 166, 166, 166, 166, 340, 360, 361, 362, 363, 364, 365, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 366, 367, 256, 166, 368, 369, 370, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 371, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 372, 373, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 374, 166, 166, 166, 166, 375, 376, 166, 166, 166, 166, 166, 377, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 166, 378, 379, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 380, 381, 162, 382, 162, 162, 162, 383, 384, 385, 386, 387, 162, 388, 256, 389, 162, 390, 256, 256, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 162, 162, 162, 162, 162, 162, 162, 162, 391, 392, 393, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 394, 256, 256, 256, 115, 116, 395, 256, 396, 397, 256, 256, 256, 256, 398, 399, 256, 256, 256, 256, 256, 256, 256, 400, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 401, 295, 295, 295, 402, 117, 403, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 404, 405, 256, 406, 256, 256, 256, 118, 119, 120, 407, 256, 256, 256, 256, 408, 162, 409, 410, 121, 122, 411, 412, 123, 413, 256, 256, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 414, 162, 415, 162, 416, 417, 418, 419, 256, 162, 162, 162, 162, 162, 420, 421, 422, 162, 162, 423, 424, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 425, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 426, 166, 166, 166, 427, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 428, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 429, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 124, 125, 126, 127, 128, 129, 130, 131, 132, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 430, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 431, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 13, 14, 15, 16, 10, 17, 7, 18, 10, 19, 20, 21, 22, 23, 24, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 25, 26, 27, 7, 28, 29, 7, 30, 31, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 432, 433, 256, 256, 434, 434, 434, 435, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 34, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]); + idnaSparseOffset = new sliceType([0, 8, 25, 37, 39, 44, 51, 62, 74, 78, 93, 98, 108, 120, 126, 135, 151, 166, 177, 190, 207, 217, 224, 237, 254, 261, 272, 287, 301, 311, 313, 318, 321, 324, 326, 338, 349, 357, 363, 369, 374, 379, 382, 386, 392, 397, 408, 418, 424, 441, 452, 455, 463, 466, 479, 487, 491, 498, 506, 522, 534, 537, 547, 559, 571, 583, 591, 596, 609, 626, 637, 642, 651, 659, 665, 670, 673, 677, 683, 687, 691, 695, 700, 708, 715, 726, 736, 740, 743, 749, 753, 755, 758, 760, 763, 773, 776, 791, 795, 799, 801, 810, 814, 819, 824, 830, 846, 852, 856, 871, 876, 884, 894, 905, 913, 930, 939, 955, 968, 980, 985, 998, 1002, 1007, 1009, 1011, 1015, 1017, 1021, 1030, 1036, 1040, 1056, 1066, 1071, 1074, 1080, 1087, 1092, 1096, 1102, 1107, 1116, 1121, 1127, 1134, 1141, 1148, 1152, 1155, 1160, 1172, 1178, 1183, 1190, 1198, 1203, 1207, 1223, 1230, 1234, 1238, 1245, 1247, 1250, 1253, 1257, 1266, 1270, 1278, 1281, 1289, 1300, 1315, 1327, 1333, 1346, 1358, 1366, 1375, 1386, 1393, 1408, 1421, 1425, 1438, 1447, 1451, 1466, 1474, 1485, 1494, 1500, 1508, 1517, 1529, 1532, 1544, 1547, 1556, 1559, 1564, 1573, 1578, 1591, 1602, 1611, 1622, 1625, 1628, 1638, 1647, 1659, 1672, 1685, 1699, 1706, 1717, 1724, 1728, 1732, 1735, 1740, 1743, 1746, 1750, 1753, 1758, 1765, 1768, 1776, 1780, 1791, 1794, 1797, 1800, 1806, 1812, 1821, 1824, 1827, 1830, 1838, 1843, 1852, 1855, 1860, 1870, 1874, 1878, 1881, 1884, 1888, 1903, 1915, 1919, 1924, 1929, 1934, 1938, 1943, 1952, 1957, 1961, 1967, 1973, 1978, 1984, 1990, 2000, 2006, 2015, 2018, 2021, 2025, 2029, 2033, 2039, 2045, 2050, 2053, 2069, 2076, 2080, 2087, 2091, 2097, 2104, 2111, 2117, 2126, 2130, 2144, 2147, 2150, 2154, 2158, 2161, 2165, 2168, 2173, 2175, 2177]); + idnaSparseValues = $toNativeArray($kindStruct, [$clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(57605, 128, 150), valueRange), $clone(new valueRange.ptr(24, 151, 151), valueRange), $clone(new valueRange.ptr(57605, 152, 158), valueRange), $clone(new valueRange.ptr(31, 159, 159), valueRange), $clone(new valueRange.ptr(8, 160, 182), valueRange), $clone(new valueRange.ptr(24, 183, 183), valueRange), $clone(new valueRange.ptr(8, 184, 191), valueRange), $clone(new valueRange.ptr(0, 16, 0), valueRange), $clone(new valueRange.ptr(8, 128, 128), valueRange), $clone(new valueRange.ptr(57373, 129, 129), valueRange), $clone(new valueRange.ptr(8, 130, 130), valueRange), $clone(new valueRange.ptr(821, 131, 131), valueRange), $clone(new valueRange.ptr(845, 132, 132), valueRange), $clone(new valueRange.ptr(869, 133, 133), valueRange), $clone(new valueRange.ptr(57357, 134, 134), valueRange), $clone(new valueRange.ptr(8, 135, 135), valueRange), $clone(new valueRange.ptr(57357, 136, 136), valueRange), $clone(new valueRange.ptr(8, 137, 137), valueRange), $clone(new valueRange.ptr(57357, 138, 138), valueRange), $clone(new valueRange.ptr(8, 139, 139), valueRange), $clone(new valueRange.ptr(57357, 140, 140), valueRange), $clone(new valueRange.ptr(8, 141, 141), valueRange), $clone(new valueRange.ptr(57357, 142, 142), valueRange), $clone(new valueRange.ptr(8, 143, 191), valueRange), $clone(new valueRange.ptr(0, 11, 0), valueRange), $clone(new valueRange.ptr(8, 128, 175), valueRange), $clone(new valueRange.ptr(169, 176, 176), valueRange), $clone(new valueRange.ptr(893, 177, 177), valueRange), $clone(new valueRange.ptr(177, 178, 178), valueRange), $clone(new valueRange.ptr(185, 179, 179), valueRange), $clone(new valueRange.ptr(845, 180, 180), valueRange), $clone(new valueRange.ptr(917, 181, 181), valueRange), $clone(new valueRange.ptr(57789, 182, 182), valueRange), $clone(new valueRange.ptr(193, 183, 183), valueRange), $clone(new valueRange.ptr(201, 184, 184), valueRange), $clone(new valueRange.ptr(8, 185, 191), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(1013, 128, 143), valueRange), $clone(new valueRange.ptr(57605, 144, 159), valueRange), $clone(new valueRange.ptr(1181, 160, 175), valueRange), $clone(new valueRange.ptr(8, 176, 191), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(57733, 128, 143), valueRange), $clone(new valueRange.ptr(1349, 144, 150), valueRange), $clone(new valueRange.ptr(64, 151, 152), valueRange), $clone(new valueRange.ptr(8, 153, 153), valueRange), $clone(new valueRange.ptr(24, 154, 159), valueRange), $clone(new valueRange.ptr(8, 160, 191), valueRange), $clone(new valueRange.ptr(0, 10, 0), valueRange), $clone(new valueRange.ptr(8, 128, 134), valueRange), $clone(new valueRange.ptr(305, 135, 135), valueRange), $clone(new valueRange.ptr(8, 136, 136), valueRange), $clone(new valueRange.ptr(24, 137, 138), valueRange), $clone(new valueRange.ptr(64, 139, 140), valueRange), $clone(new valueRange.ptr(24, 141, 143), valueRange), $clone(new valueRange.ptr(64, 144, 144), valueRange), $clone(new valueRange.ptr(13064, 145, 189), valueRange), $clone(new valueRange.ptr(2072, 190, 190), valueRange), $clone(new valueRange.ptr(13064, 191, 191), valueRange), $clone(new valueRange.ptr(0, 11, 0), valueRange), $clone(new valueRange.ptr(2072, 128, 128), valueRange), $clone(new valueRange.ptr(13064, 129, 130), valueRange), $clone(new valueRange.ptr(2072, 131, 131), valueRange), $clone(new valueRange.ptr(13064, 132, 133), valueRange), $clone(new valueRange.ptr(2072, 134, 134), valueRange), $clone(new valueRange.ptr(13064, 135, 135), valueRange), $clone(new valueRange.ptr(64, 136, 143), valueRange), $clone(new valueRange.ptr(2056, 144, 170), valueRange), $clone(new valueRange.ptr(64, 171, 174), valueRange), $clone(new valueRange.ptr(2056, 175, 180), valueRange), $clone(new valueRange.ptr(64, 181, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(2568, 128, 135), valueRange), $clone(new valueRange.ptr(3080, 136, 153), valueRange), $clone(new valueRange.ptr(2568, 154, 191), valueRange), $clone(new valueRange.ptr(0, 14, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 138), valueRange), $clone(new valueRange.ptr(64, 139, 140), valueRange), $clone(new valueRange.ptr(3080, 141, 141), valueRange), $clone(new valueRange.ptr(2568, 142, 152), valueRange), $clone(new valueRange.ptr(3080, 153, 155), valueRange), $clone(new valueRange.ptr(2568, 156, 170), valueRange), $clone(new valueRange.ptr(3080, 171, 172), valueRange), $clone(new valueRange.ptr(2568, 173, 176), valueRange), $clone(new valueRange.ptr(3080, 177, 177), valueRange), $clone(new valueRange.ptr(2568, 178, 178), valueRange), $clone(new valueRange.ptr(3080, 179, 180), valueRange), $clone(new valueRange.ptr(2568, 181, 183), valueRange), $clone(new valueRange.ptr(3080, 184, 185), valueRange), $clone(new valueRange.ptr(2568, 186, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(2056, 128, 165), valueRange), $clone(new valueRange.ptr(13064, 166, 176), valueRange), $clone(new valueRange.ptr(2056, 177, 177), valueRange), $clone(new valueRange.ptr(64, 178, 191), valueRange), $clone(new valueRange.ptr(0, 9, 0), valueRange), $clone(new valueRange.ptr(2056, 128, 137), valueRange), $clone(new valueRange.ptr(2568, 138, 170), valueRange), $clone(new valueRange.ptr(13064, 171, 179), valueRange), $clone(new valueRange.ptr(2056, 180, 181), valueRange), $clone(new valueRange.ptr(24, 182, 185), valueRange), $clone(new valueRange.ptr(2072, 186, 186), valueRange), $clone(new valueRange.ptr(64, 187, 188), valueRange), $clone(new valueRange.ptr(13064, 189, 189), valueRange), $clone(new valueRange.ptr(2072, 190, 191), valueRange), $clone(new valueRange.ptr(0, 11, 0), valueRange), $clone(new valueRange.ptr(2056, 128, 149), valueRange), $clone(new valueRange.ptr(13064, 150, 153), valueRange), $clone(new valueRange.ptr(2056, 154, 154), valueRange), $clone(new valueRange.ptr(13064, 155, 163), valueRange), $clone(new valueRange.ptr(2056, 164, 164), valueRange), $clone(new valueRange.ptr(13064, 165, 167), valueRange), $clone(new valueRange.ptr(2056, 168, 168), valueRange), $clone(new valueRange.ptr(13064, 169, 173), valueRange), $clone(new valueRange.ptr(64, 174, 175), valueRange), $clone(new valueRange.ptr(2072, 176, 190), valueRange), $clone(new valueRange.ptr(64, 191, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(2568, 128, 136), valueRange), $clone(new valueRange.ptr(2056, 137, 137), valueRange), $clone(new valueRange.ptr(13064, 138, 161), valueRange), $clone(new valueRange.ptr(2112, 162, 162), valueRange), $clone(new valueRange.ptr(13064, 163, 191), valueRange), $clone(new valueRange.ptr(0, 8, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 130), valueRange), $clone(new valueRange.ptr(12296, 131, 131), valueRange), $clone(new valueRange.ptr(8, 132, 185), valueRange), $clone(new valueRange.ptr(13064, 186, 186), valueRange), $clone(new valueRange.ptr(12296, 187, 187), valueRange), $clone(new valueRange.ptr(13064, 188, 188), valueRange), $clone(new valueRange.ptr(8, 189, 189), valueRange), $clone(new valueRange.ptr(12296, 190, 191), valueRange), $clone(new valueRange.ptr(0, 15, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 128), valueRange), $clone(new valueRange.ptr(12296, 129, 130), valueRange), $clone(new valueRange.ptr(64, 131, 133), valueRange), $clone(new valueRange.ptr(12296, 134, 136), valueRange), $clone(new valueRange.ptr(64, 137, 137), valueRange), $clone(new valueRange.ptr(12296, 138, 140), valueRange), $clone(new valueRange.ptr(15112, 141, 141), valueRange), $clone(new valueRange.ptr(64, 142, 143), valueRange), $clone(new valueRange.ptr(8, 144, 144), valueRange), $clone(new valueRange.ptr(64, 145, 150), valueRange), $clone(new valueRange.ptr(12296, 151, 151), valueRange), $clone(new valueRange.ptr(64, 152, 165), valueRange), $clone(new valueRange.ptr(8, 166, 175), valueRange), $clone(new valueRange.ptr(24, 176, 186), valueRange), $clone(new valueRange.ptr(64, 187, 191), valueRange), $clone(new valueRange.ptr(0, 14, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 128), valueRange), $clone(new valueRange.ptr(12296, 129, 131), valueRange), $clone(new valueRange.ptr(13064, 132, 132), valueRange), $clone(new valueRange.ptr(8, 133, 140), valueRange), $clone(new valueRange.ptr(64, 141, 141), valueRange), $clone(new valueRange.ptr(8, 142, 144), valueRange), $clone(new valueRange.ptr(64, 145, 145), valueRange), $clone(new valueRange.ptr(8, 146, 168), valueRange), $clone(new valueRange.ptr(64, 169, 169), valueRange), $clone(new valueRange.ptr(8, 170, 185), valueRange), $clone(new valueRange.ptr(64, 186, 187), valueRange), $clone(new valueRange.ptr(13064, 188, 188), valueRange), $clone(new valueRange.ptr(8, 189, 189), valueRange), $clone(new valueRange.ptr(13064, 190, 191), valueRange), $clone(new valueRange.ptr(0, 10, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 129), valueRange), $clone(new valueRange.ptr(12296, 130, 131), valueRange), $clone(new valueRange.ptr(8, 132, 140), valueRange), $clone(new valueRange.ptr(64, 141, 141), valueRange), $clone(new valueRange.ptr(8, 142, 144), valueRange), $clone(new valueRange.ptr(64, 145, 145), valueRange), $clone(new valueRange.ptr(8, 146, 186), valueRange), $clone(new valueRange.ptr(15112, 187, 188), valueRange), $clone(new valueRange.ptr(8, 189, 189), valueRange), $clone(new valueRange.ptr(12296, 190, 191), valueRange), $clone(new valueRange.ptr(0, 12, 0), valueRange), $clone(new valueRange.ptr(64, 128, 128), valueRange), $clone(new valueRange.ptr(13064, 129, 129), valueRange), $clone(new valueRange.ptr(12296, 130, 131), valueRange), $clone(new valueRange.ptr(64, 132, 132), valueRange), $clone(new valueRange.ptr(8, 133, 150), valueRange), $clone(new valueRange.ptr(64, 151, 153), valueRange), $clone(new valueRange.ptr(8, 154, 177), valueRange), $clone(new valueRange.ptr(64, 178, 178), valueRange), $clone(new valueRange.ptr(8, 179, 187), valueRange), $clone(new valueRange.ptr(64, 188, 188), valueRange), $clone(new valueRange.ptr(8, 189, 189), valueRange), $clone(new valueRange.ptr(64, 190, 191), valueRange), $clone(new valueRange.ptr(0, 16, 0), valueRange), $clone(new valueRange.ptr(8, 128, 134), valueRange), $clone(new valueRange.ptr(64, 135, 137), valueRange), $clone(new valueRange.ptr(15112, 138, 138), valueRange), $clone(new valueRange.ptr(64, 139, 142), valueRange), $clone(new valueRange.ptr(12296, 143, 145), valueRange), $clone(new valueRange.ptr(13064, 146, 148), valueRange), $clone(new valueRange.ptr(64, 149, 149), valueRange), $clone(new valueRange.ptr(13064, 150, 150), valueRange), $clone(new valueRange.ptr(64, 151, 151), valueRange), $clone(new valueRange.ptr(12296, 152, 159), valueRange), $clone(new valueRange.ptr(64, 160, 165), valueRange), $clone(new valueRange.ptr(8, 166, 175), valueRange), $clone(new valueRange.ptr(64, 176, 177), valueRange), $clone(new valueRange.ptr(12296, 178, 179), valueRange), $clone(new valueRange.ptr(24, 180, 180), valueRange), $clone(new valueRange.ptr(64, 181, 191), valueRange), $clone(new valueRange.ptr(0, 9, 0), valueRange), $clone(new valueRange.ptr(64, 128, 128), valueRange), $clone(new valueRange.ptr(8, 129, 176), valueRange), $clone(new valueRange.ptr(13064, 177, 177), valueRange), $clone(new valueRange.ptr(8, 178, 178), valueRange), $clone(new valueRange.ptr(497, 179, 179), valueRange), $clone(new valueRange.ptr(13064, 180, 185), valueRange), $clone(new valueRange.ptr(15112, 186, 186), valueRange), $clone(new valueRange.ptr(64, 187, 190), valueRange), $clone(new valueRange.ptr(24, 191, 191), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(8, 128, 134), valueRange), $clone(new valueRange.ptr(13064, 135, 142), valueRange), $clone(new valueRange.ptr(24, 143, 143), valueRange), $clone(new valueRange.ptr(8, 144, 153), valueRange), $clone(new valueRange.ptr(24, 154, 155), valueRange), $clone(new valueRange.ptr(64, 156, 191), valueRange), $clone(new valueRange.ptr(0, 12, 0), valueRange), $clone(new valueRange.ptr(8, 128, 132), valueRange), $clone(new valueRange.ptr(64, 133, 133), valueRange), $clone(new valueRange.ptr(8, 134, 134), valueRange), $clone(new valueRange.ptr(64, 135, 135), valueRange), $clone(new valueRange.ptr(13064, 136, 142), valueRange), $clone(new valueRange.ptr(64, 143, 143), valueRange), $clone(new valueRange.ptr(8, 144, 153), valueRange), $clone(new valueRange.ptr(64, 154, 155), valueRange), $clone(new valueRange.ptr(513, 156, 156), valueRange), $clone(new valueRange.ptr(521, 157, 157), valueRange), $clone(new valueRange.ptr(8, 158, 159), valueRange), $clone(new valueRange.ptr(64, 160, 191), valueRange), $clone(new valueRange.ptr(0, 16, 0), valueRange), $clone(new valueRange.ptr(8, 128, 128), valueRange), $clone(new valueRange.ptr(24, 129, 138), valueRange), $clone(new valueRange.ptr(8, 139, 139), valueRange), $clone(new valueRange.ptr(57405, 140, 140), valueRange), $clone(new valueRange.ptr(24, 141, 151), valueRange), $clone(new valueRange.ptr(13064, 152, 153), valueRange), $clone(new valueRange.ptr(24, 154, 159), valueRange), $clone(new valueRange.ptr(8, 160, 169), valueRange), $clone(new valueRange.ptr(24, 170, 180), valueRange), $clone(new valueRange.ptr(13064, 181, 181), valueRange), $clone(new valueRange.ptr(24, 182, 182), valueRange), $clone(new valueRange.ptr(13064, 183, 183), valueRange), $clone(new valueRange.ptr(24, 184, 184), valueRange), $clone(new valueRange.ptr(13064, 185, 185), valueRange), $clone(new valueRange.ptr(24, 186, 189), valueRange), $clone(new valueRange.ptr(12296, 190, 191), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(24, 128, 133), valueRange), $clone(new valueRange.ptr(13064, 134, 134), valueRange), $clone(new valueRange.ptr(24, 135, 140), valueRange), $clone(new valueRange.ptr(64, 141, 141), valueRange), $clone(new valueRange.ptr(24, 142, 154), valueRange), $clone(new valueRange.ptr(64, 155, 191), valueRange), $clone(new valueRange.ptr(0, 10, 0), valueRange), $clone(new valueRange.ptr(8, 128, 170), valueRange), $clone(new valueRange.ptr(12296, 171, 172), valueRange), $clone(new valueRange.ptr(13064, 173, 176), valueRange), $clone(new valueRange.ptr(12296, 177, 177), valueRange), $clone(new valueRange.ptr(13064, 178, 183), valueRange), $clone(new valueRange.ptr(12296, 184, 184), valueRange), $clone(new valueRange.ptr(15112, 185, 186), valueRange), $clone(new valueRange.ptr(12296, 187, 188), valueRange), $clone(new valueRange.ptr(13064, 189, 190), valueRange), $clone(new valueRange.ptr(8, 191, 191), valueRange), $clone(new valueRange.ptr(0, 14, 0), valueRange), $clone(new valueRange.ptr(8, 128, 137), valueRange), $clone(new valueRange.ptr(24, 138, 143), valueRange), $clone(new valueRange.ptr(8, 144, 149), valueRange), $clone(new valueRange.ptr(12296, 150, 151), valueRange), $clone(new valueRange.ptr(13064, 152, 153), valueRange), $clone(new valueRange.ptr(8, 154, 157), valueRange), $clone(new valueRange.ptr(13064, 158, 160), valueRange), $clone(new valueRange.ptr(8, 161, 161), valueRange), $clone(new valueRange.ptr(12296, 162, 164), valueRange), $clone(new valueRange.ptr(8, 165, 166), valueRange), $clone(new valueRange.ptr(12296, 167, 173), valueRange), $clone(new valueRange.ptr(8, 174, 176), valueRange), $clone(new valueRange.ptr(13064, 177, 180), valueRange), $clone(new valueRange.ptr(8, 181, 191), valueRange), $clone(new valueRange.ptr(0, 13, 0), valueRange), $clone(new valueRange.ptr(8, 128, 129), valueRange), $clone(new valueRange.ptr(13064, 130, 130), valueRange), $clone(new valueRange.ptr(12296, 131, 132), valueRange), $clone(new valueRange.ptr(13064, 133, 134), valueRange), $clone(new valueRange.ptr(12296, 135, 140), valueRange), $clone(new valueRange.ptr(13064, 141, 141), valueRange), $clone(new valueRange.ptr(8, 142, 142), valueRange), $clone(new valueRange.ptr(12296, 143, 143), valueRange), $clone(new valueRange.ptr(8, 144, 153), valueRange), $clone(new valueRange.ptr(12296, 154, 156), valueRange), $clone(new valueRange.ptr(13064, 157, 157), valueRange), $clone(new valueRange.ptr(24, 158, 159), valueRange), $clone(new valueRange.ptr(64, 160, 191), valueRange), $clone(new valueRange.ptr(0, 9, 0), valueRange), $clone(new valueRange.ptr(64, 128, 134), valueRange), $clone(new valueRange.ptr(1373, 135, 135), valueRange), $clone(new valueRange.ptr(64, 136, 140), valueRange), $clone(new valueRange.ptr(1373, 141, 141), valueRange), $clone(new valueRange.ptr(64, 142, 143), valueRange), $clone(new valueRange.ptr(8, 144, 186), valueRange), $clone(new valueRange.ptr(24, 187, 187), valueRange), $clone(new valueRange.ptr(57605, 188, 188), valueRange), $clone(new valueRange.ptr(8, 189, 191), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(24, 128, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(24, 128, 158), valueRange), $clone(new valueRange.ptr(64, 159, 160), valueRange), $clone(new valueRange.ptr(8216, 161, 181), valueRange), $clone(new valueRange.ptr(24, 182, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(24, 128, 167), valueRange), $clone(new valueRange.ptr(8216, 168, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(8216, 128, 130), valueRange), $clone(new valueRange.ptr(24, 131, 191), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(8, 128, 191), valueRange), $clone(new valueRange.ptr(0, 11, 0), valueRange), $clone(new valueRange.ptr(8, 128, 136), valueRange), $clone(new valueRange.ptr(64, 137, 137), valueRange), $clone(new valueRange.ptr(8, 138, 141), valueRange), $clone(new valueRange.ptr(64, 142, 143), valueRange), $clone(new valueRange.ptr(8, 144, 150), valueRange), $clone(new valueRange.ptr(64, 151, 151), valueRange), $clone(new valueRange.ptr(8, 152, 152), valueRange), $clone(new valueRange.ptr(64, 153, 153), valueRange), $clone(new valueRange.ptr(8, 154, 157), valueRange), $clone(new valueRange.ptr(64, 158, 159), valueRange), $clone(new valueRange.ptr(8, 160, 191), valueRange), $clone(new valueRange.ptr(0, 10, 0), valueRange), $clone(new valueRange.ptr(8, 128, 136), valueRange), $clone(new valueRange.ptr(64, 137, 137), valueRange), $clone(new valueRange.ptr(8, 138, 141), valueRange), $clone(new valueRange.ptr(64, 142, 143), valueRange), $clone(new valueRange.ptr(8, 144, 176), valueRange), $clone(new valueRange.ptr(64, 177, 177), valueRange), $clone(new valueRange.ptr(8, 178, 181), valueRange), $clone(new valueRange.ptr(64, 182, 183), valueRange), $clone(new valueRange.ptr(8, 184, 190), valueRange), $clone(new valueRange.ptr(64, 191, 191), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(8, 128, 128), valueRange), $clone(new valueRange.ptr(64, 129, 129), valueRange), $clone(new valueRange.ptr(8, 130, 133), valueRange), $clone(new valueRange.ptr(64, 134, 135), valueRange), $clone(new valueRange.ptr(8, 136, 150), valueRange), $clone(new valueRange.ptr(64, 151, 151), valueRange), $clone(new valueRange.ptr(8, 152, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(8, 128, 144), valueRange), $clone(new valueRange.ptr(64, 145, 145), valueRange), $clone(new valueRange.ptr(8, 146, 149), valueRange), $clone(new valueRange.ptr(64, 150, 151), valueRange), $clone(new valueRange.ptr(8, 152, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(8, 128, 154), valueRange), $clone(new valueRange.ptr(64, 155, 156), valueRange), $clone(new valueRange.ptr(13064, 157, 159), valueRange), $clone(new valueRange.ptr(24, 160, 188), valueRange), $clone(new valueRange.ptr(64, 189, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(8, 128, 143), valueRange), $clone(new valueRange.ptr(24, 144, 153), valueRange), $clone(new valueRange.ptr(64, 154, 159), valueRange), $clone(new valueRange.ptr(8, 160, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(8, 128, 181), valueRange), $clone(new valueRange.ptr(64, 182, 183), valueRange), $clone(new valueRange.ptr(57413, 184, 189), valueRange), $clone(new valueRange.ptr(64, 190, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(24, 128, 128), valueRange), $clone(new valueRange.ptr(8, 129, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(8, 128, 172), valueRange), $clone(new valueRange.ptr(24, 173, 174), valueRange), $clone(new valueRange.ptr(8, 175, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(64, 128, 128), valueRange), $clone(new valueRange.ptr(8, 129, 154), valueRange), $clone(new valueRange.ptr(24, 155, 156), valueRange), $clone(new valueRange.ptr(64, 157, 159), valueRange), $clone(new valueRange.ptr(8, 160, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(8, 128, 170), valueRange), $clone(new valueRange.ptr(24, 171, 176), valueRange), $clone(new valueRange.ptr(8, 177, 184), valueRange), $clone(new valueRange.ptr(64, 185, 191), valueRange), $clone(new valueRange.ptr(0, 10, 0), valueRange), $clone(new valueRange.ptr(8, 128, 145), valueRange), $clone(new valueRange.ptr(13064, 146, 147), valueRange), $clone(new valueRange.ptr(15112, 148, 148), valueRange), $clone(new valueRange.ptr(14344, 149, 149), valueRange), $clone(new valueRange.ptr(64, 150, 158), valueRange), $clone(new valueRange.ptr(8, 159, 177), valueRange), $clone(new valueRange.ptr(13064, 178, 179), valueRange), $clone(new valueRange.ptr(14344, 180, 180), valueRange), $clone(new valueRange.ptr(24, 181, 182), valueRange), $clone(new valueRange.ptr(64, 183, 191), valueRange), $clone(new valueRange.ptr(0, 9, 0), valueRange), $clone(new valueRange.ptr(8, 128, 145), valueRange), $clone(new valueRange.ptr(13064, 146, 147), valueRange), $clone(new valueRange.ptr(64, 148, 159), valueRange), $clone(new valueRange.ptr(8, 160, 172), valueRange), $clone(new valueRange.ptr(64, 173, 173), valueRange), $clone(new valueRange.ptr(8, 174, 176), valueRange), $clone(new valueRange.ptr(64, 177, 177), valueRange), $clone(new valueRange.ptr(13064, 178, 179), valueRange), $clone(new valueRange.ptr(64, 180, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(8, 128, 179), valueRange), $clone(new valueRange.ptr(13120, 180, 181), valueRange), $clone(new valueRange.ptr(12296, 182, 182), valueRange), $clone(new valueRange.ptr(13064, 183, 189), valueRange), $clone(new valueRange.ptr(12296, 190, 191), valueRange), $clone(new valueRange.ptr(0, 16, 0), valueRange), $clone(new valueRange.ptr(12296, 128, 133), valueRange), $clone(new valueRange.ptr(13064, 134, 134), valueRange), $clone(new valueRange.ptr(12296, 135, 136), valueRange), $clone(new valueRange.ptr(13064, 137, 145), valueRange), $clone(new valueRange.ptr(15112, 146, 146), valueRange), $clone(new valueRange.ptr(13064, 147, 147), valueRange), $clone(new valueRange.ptr(24, 148, 150), valueRange), $clone(new valueRange.ptr(8, 151, 151), valueRange), $clone(new valueRange.ptr(24, 152, 155), valueRange), $clone(new valueRange.ptr(8, 156, 156), valueRange), $clone(new valueRange.ptr(13064, 157, 157), valueRange), $clone(new valueRange.ptr(64, 158, 159), valueRange), $clone(new valueRange.ptr(8, 160, 169), valueRange), $clone(new valueRange.ptr(64, 170, 175), valueRange), $clone(new valueRange.ptr(24, 176, 185), valueRange), $clone(new valueRange.ptr(64, 186, 191), valueRange), $clone(new valueRange.ptr(0, 10, 0), valueRange), $clone(new valueRange.ptr(24, 128, 133), valueRange), $clone(new valueRange.ptr(64, 134, 134), valueRange), $clone(new valueRange.ptr(536, 135, 135), valueRange), $clone(new valueRange.ptr(24, 136, 138), valueRange), $clone(new valueRange.ptr(13248, 139, 141), valueRange), $clone(new valueRange.ptr(64, 142, 142), valueRange), $clone(new valueRange.ptr(13248, 143, 143), valueRange), $clone(new valueRange.ptr(8, 144, 153), valueRange), $clone(new valueRange.ptr(64, 154, 159), valueRange), $clone(new valueRange.ptr(520, 160, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(520, 128, 184), valueRange), $clone(new valueRange.ptr(64, 185, 191), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(8, 128, 132), valueRange), $clone(new valueRange.ptr(13064, 133, 134), valueRange), $clone(new valueRange.ptr(520, 135, 168), valueRange), $clone(new valueRange.ptr(13064, 169, 169), valueRange), $clone(new valueRange.ptr(520, 170, 170), valueRange), $clone(new valueRange.ptr(64, 171, 175), valueRange), $clone(new valueRange.ptr(8, 176, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(8, 128, 181), valueRange), $clone(new valueRange.ptr(64, 182, 191), valueRange), $clone(new valueRange.ptr(0, 12, 0), valueRange), $clone(new valueRange.ptr(8, 128, 158), valueRange), $clone(new valueRange.ptr(64, 159, 159), valueRange), $clone(new valueRange.ptr(13064, 160, 162), valueRange), $clone(new valueRange.ptr(12296, 163, 166), valueRange), $clone(new valueRange.ptr(13064, 167, 168), valueRange), $clone(new valueRange.ptr(12296, 169, 171), valueRange), $clone(new valueRange.ptr(64, 172, 175), valueRange), $clone(new valueRange.ptr(12296, 176, 177), valueRange), $clone(new valueRange.ptr(13064, 178, 178), valueRange), $clone(new valueRange.ptr(12296, 179, 184), valueRange), $clone(new valueRange.ptr(13064, 185, 187), valueRange), $clone(new valueRange.ptr(64, 188, 191), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(24, 128, 128), valueRange), $clone(new valueRange.ptr(64, 129, 131), valueRange), $clone(new valueRange.ptr(24, 132, 133), valueRange), $clone(new valueRange.ptr(8, 134, 173), valueRange), $clone(new valueRange.ptr(64, 174, 175), valueRange), $clone(new valueRange.ptr(8, 176, 180), valueRange), $clone(new valueRange.ptr(64, 181, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(8, 128, 171), valueRange), $clone(new valueRange.ptr(64, 172, 175), valueRange), $clone(new valueRange.ptr(8, 176, 191), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(8, 128, 137), valueRange), $clone(new valueRange.ptr(64, 138, 143), valueRange), $clone(new valueRange.ptr(8, 144, 153), valueRange), $clone(new valueRange.ptr(40, 154, 154), valueRange), $clone(new valueRange.ptr(64, 155, 157), valueRange), $clone(new valueRange.ptr(24, 158, 191), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(8, 128, 150), valueRange), $clone(new valueRange.ptr(13064, 151, 152), valueRange), $clone(new valueRange.ptr(12296, 153, 154), valueRange), $clone(new valueRange.ptr(13064, 155, 155), valueRange), $clone(new valueRange.ptr(64, 156, 157), valueRange), $clone(new valueRange.ptr(24, 158, 159), valueRange), $clone(new valueRange.ptr(8, 160, 191), valueRange), $clone(new valueRange.ptr(0, 15, 0), valueRange), $clone(new valueRange.ptr(8, 128, 148), valueRange), $clone(new valueRange.ptr(12296, 149, 149), valueRange), $clone(new valueRange.ptr(13064, 150, 150), valueRange), $clone(new valueRange.ptr(12296, 151, 151), valueRange), $clone(new valueRange.ptr(13064, 152, 158), valueRange), $clone(new valueRange.ptr(64, 159, 159), valueRange), $clone(new valueRange.ptr(15112, 160, 160), valueRange), $clone(new valueRange.ptr(12296, 161, 161), valueRange), $clone(new valueRange.ptr(13064, 162, 162), valueRange), $clone(new valueRange.ptr(12296, 163, 164), valueRange), $clone(new valueRange.ptr(13064, 165, 172), valueRange), $clone(new valueRange.ptr(12296, 173, 178), valueRange), $clone(new valueRange.ptr(13064, 179, 188), valueRange), $clone(new valueRange.ptr(64, 189, 190), valueRange), $clone(new valueRange.ptr(13064, 191, 191), valueRange), $clone(new valueRange.ptr(0, 11, 0), valueRange), $clone(new valueRange.ptr(8, 128, 137), valueRange), $clone(new valueRange.ptr(64, 138, 143), valueRange), $clone(new valueRange.ptr(8, 144, 153), valueRange), $clone(new valueRange.ptr(64, 154, 159), valueRange), $clone(new valueRange.ptr(24, 160, 166), valueRange), $clone(new valueRange.ptr(8, 167, 167), valueRange), $clone(new valueRange.ptr(24, 168, 173), valueRange), $clone(new valueRange.ptr(64, 174, 175), valueRange), $clone(new valueRange.ptr(13064, 176, 189), valueRange), $clone(new valueRange.ptr(13080, 190, 190), valueRange), $clone(new valueRange.ptr(13064, 191, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 142), valueRange), $clone(new valueRange.ptr(64, 143, 191), valueRange), $clone(new valueRange.ptr(0, 9, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 131), valueRange), $clone(new valueRange.ptr(12296, 132, 132), valueRange), $clone(new valueRange.ptr(8, 133, 179), valueRange), $clone(new valueRange.ptr(13064, 180, 180), valueRange), $clone(new valueRange.ptr(12296, 181, 181), valueRange), $clone(new valueRange.ptr(13064, 182, 186), valueRange), $clone(new valueRange.ptr(12296, 187, 187), valueRange), $clone(new valueRange.ptr(13064, 188, 188), valueRange), $clone(new valueRange.ptr(12296, 189, 191), valueRange), $clone(new valueRange.ptr(0, 11, 0), valueRange), $clone(new valueRange.ptr(12296, 128, 129), valueRange), $clone(new valueRange.ptr(13064, 130, 130), valueRange), $clone(new valueRange.ptr(12296, 131, 131), valueRange), $clone(new valueRange.ptr(14344, 132, 132), valueRange), $clone(new valueRange.ptr(8, 133, 140), valueRange), $clone(new valueRange.ptr(64, 141, 143), valueRange), $clone(new valueRange.ptr(8, 144, 153), valueRange), $clone(new valueRange.ptr(24, 154, 170), valueRange), $clone(new valueRange.ptr(13064, 171, 179), valueRange), $clone(new valueRange.ptr(24, 180, 190), valueRange), $clone(new valueRange.ptr(64, 191, 191), valueRange), $clone(new valueRange.ptr(0, 11, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 129), valueRange), $clone(new valueRange.ptr(12296, 130, 130), valueRange), $clone(new valueRange.ptr(8, 131, 160), valueRange), $clone(new valueRange.ptr(12296, 161, 161), valueRange), $clone(new valueRange.ptr(13064, 162, 165), valueRange), $clone(new valueRange.ptr(12296, 166, 167), valueRange), $clone(new valueRange.ptr(13064, 168, 169), valueRange), $clone(new valueRange.ptr(14344, 170, 170), valueRange), $clone(new valueRange.ptr(15112, 171, 171), valueRange), $clone(new valueRange.ptr(13064, 172, 173), valueRange), $clone(new valueRange.ptr(8, 174, 191), valueRange), $clone(new valueRange.ptr(0, 11, 0), valueRange), $clone(new valueRange.ptr(8, 128, 165), valueRange), $clone(new valueRange.ptr(13064, 166, 166), valueRange), $clone(new valueRange.ptr(12296, 167, 167), valueRange), $clone(new valueRange.ptr(13064, 168, 169), valueRange), $clone(new valueRange.ptr(12296, 170, 172), valueRange), $clone(new valueRange.ptr(13064, 173, 173), valueRange), $clone(new valueRange.ptr(12296, 174, 174), valueRange), $clone(new valueRange.ptr(13064, 175, 177), valueRange), $clone(new valueRange.ptr(14344, 178, 179), valueRange), $clone(new valueRange.ptr(64, 180, 187), valueRange), $clone(new valueRange.ptr(24, 188, 191), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(8, 128, 163), valueRange), $clone(new valueRange.ptr(12296, 164, 171), valueRange), $clone(new valueRange.ptr(13064, 172, 179), valueRange), $clone(new valueRange.ptr(12296, 180, 181), valueRange), $clone(new valueRange.ptr(13064, 182, 183), valueRange), $clone(new valueRange.ptr(64, 184, 186), valueRange), $clone(new valueRange.ptr(24, 187, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(8, 128, 137), valueRange), $clone(new valueRange.ptr(64, 138, 140), valueRange), $clone(new valueRange.ptr(8, 141, 189), valueRange), $clone(new valueRange.ptr(24, 190, 191), valueRange), $clone(new valueRange.ptr(0, 12, 0), valueRange), $clone(new valueRange.ptr(681, 128, 128), valueRange), $clone(new valueRange.ptr(689, 129, 129), valueRange), $clone(new valueRange.ptr(697, 130, 130), valueRange), $clone(new valueRange.ptr(705, 131, 131), valueRange), $clone(new valueRange.ptr(713, 132, 133), valueRange), $clone(new valueRange.ptr(721, 134, 134), valueRange), $clone(new valueRange.ptr(729, 135, 135), valueRange), $clone(new valueRange.ptr(1405, 136, 136), valueRange), $clone(new valueRange.ptr(64, 137, 143), valueRange), $clone(new valueRange.ptr(1437, 144, 186), valueRange), $clone(new valueRange.ptr(64, 187, 188), valueRange), $clone(new valueRange.ptr(1437, 189, 191), valueRange), $clone(new valueRange.ptr(0, 16, 0), valueRange), $clone(new valueRange.ptr(24, 128, 135), valueRange), $clone(new valueRange.ptr(64, 136, 143), valueRange), $clone(new valueRange.ptr(13064, 144, 146), valueRange), $clone(new valueRange.ptr(24, 147, 147), valueRange), $clone(new valueRange.ptr(13064, 148, 160), valueRange), $clone(new valueRange.ptr(12296, 161, 161), valueRange), $clone(new valueRange.ptr(13064, 162, 168), valueRange), $clone(new valueRange.ptr(8, 169, 172), valueRange), $clone(new valueRange.ptr(13064, 173, 173), valueRange), $clone(new valueRange.ptr(8, 174, 179), valueRange), $clone(new valueRange.ptr(13064, 180, 180), valueRange), $clone(new valueRange.ptr(8, 181, 182), valueRange), $clone(new valueRange.ptr(12296, 183, 183), valueRange), $clone(new valueRange.ptr(13064, 184, 185), valueRange), $clone(new valueRange.ptr(8, 186, 186), valueRange), $clone(new valueRange.ptr(64, 187, 191), valueRange), $clone(new valueRange.ptr(0, 10, 0), valueRange), $clone(new valueRange.ptr(8, 128, 135), valueRange), $clone(new valueRange.ptr(57413, 136, 143), valueRange), $clone(new valueRange.ptr(8, 144, 149), valueRange), $clone(new valueRange.ptr(64, 150, 151), valueRange), $clone(new valueRange.ptr(57413, 152, 157), valueRange), $clone(new valueRange.ptr(64, 158, 159), valueRange), $clone(new valueRange.ptr(8, 160, 167), valueRange), $clone(new valueRange.ptr(57413, 168, 175), valueRange), $clone(new valueRange.ptr(8, 176, 183), valueRange), $clone(new valueRange.ptr(57413, 184, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(24, 128, 128), valueRange), $clone(new valueRange.ptr(64, 129, 143), valueRange), $clone(new valueRange.ptr(13080, 144, 176), valueRange), $clone(new valueRange.ptr(64, 177, 191), valueRange), $clone(new valueRange.ptr(0, 8, 0), valueRange), $clone(new valueRange.ptr(24, 128, 130), valueRange), $clone(new valueRange.ptr(64, 131, 131), valueRange), $clone(new valueRange.ptr(8, 132, 132), valueRange), $clone(new valueRange.ptr(24, 133, 136), valueRange), $clone(new valueRange.ptr(2129, 137, 137), valueRange), $clone(new valueRange.ptr(24, 138, 139), valueRange), $clone(new valueRange.ptr(64, 140, 143), valueRange), $clone(new valueRange.ptr(24, 144, 191), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(24, 128, 171), valueRange), $clone(new valueRange.ptr(2137, 172, 172), valueRange), $clone(new valueRange.ptr(2145, 173, 173), valueRange), $clone(new valueRange.ptr(24, 174, 174), valueRange), $clone(new valueRange.ptr(2153, 175, 175), valueRange), $clone(new valueRange.ptr(2161, 176, 176), valueRange), $clone(new valueRange.ptr(24, 177, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(24, 128, 159), valueRange), $clone(new valueRange.ptr(128, 160, 160), valueRange), $clone(new valueRange.ptr(24, 161, 173), valueRange), $clone(new valueRange.ptr(128, 174, 175), valueRange), $clone(new valueRange.ptr(24, 176, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(24, 128, 168), valueRange), $clone(new valueRange.ptr(2525, 169, 169), valueRange), $clone(new valueRange.ptr(2557, 170, 170), valueRange), $clone(new valueRange.ptr(24, 171, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(24, 128, 166), valueRange), $clone(new valueRange.ptr(64, 167, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(24, 128, 139), valueRange), $clone(new valueRange.ptr(2345, 140, 140), valueRange), $clone(new valueRange.ptr(24, 141, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(24, 128, 179), valueRange), $clone(new valueRange.ptr(3710, 180, 180), valueRange), $clone(new valueRange.ptr(2354, 181, 181), valueRange), $clone(new valueRange.ptr(3742, 182, 182), valueRange), $clone(new valueRange.ptr(24, 183, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(24, 128, 155), valueRange), $clone(new valueRange.ptr(2361, 156, 156), valueRange), $clone(new valueRange.ptr(24, 157, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(24, 128, 179), valueRange), $clone(new valueRange.ptr(64, 180, 181), valueRange), $clone(new valueRange.ptr(24, 182, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(24, 128, 149), valueRange), $clone(new valueRange.ptr(64, 150, 150), valueRange), $clone(new valueRange.ptr(24, 151, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(57733, 128, 143), valueRange), $clone(new valueRange.ptr(1013, 144, 159), valueRange), $clone(new valueRange.ptr(3773, 160, 175), valueRange), $clone(new valueRange.ptr(8, 176, 191), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(8, 128, 165), valueRange), $clone(new valueRange.ptr(64, 166, 166), valueRange), $clone(new valueRange.ptr(8, 167, 167), valueRange), $clone(new valueRange.ptr(64, 168, 172), valueRange), $clone(new valueRange.ptr(8, 173, 173), valueRange), $clone(new valueRange.ptr(64, 174, 175), valueRange), $clone(new valueRange.ptr(8, 176, 191), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(8, 128, 167), valueRange), $clone(new valueRange.ptr(64, 168, 174), valueRange), $clone(new valueRange.ptr(57461, 175, 175), valueRange), $clone(new valueRange.ptr(24, 176, 176), valueRange), $clone(new valueRange.ptr(64, 177, 190), valueRange), $clone(new valueRange.ptr(15112, 191, 191), valueRange), $clone(new valueRange.ptr(0, 10, 0), valueRange), $clone(new valueRange.ptr(8, 128, 150), valueRange), $clone(new valueRange.ptr(64, 151, 159), valueRange), $clone(new valueRange.ptr(8, 160, 166), valueRange), $clone(new valueRange.ptr(64, 167, 167), valueRange), $clone(new valueRange.ptr(8, 168, 174), valueRange), $clone(new valueRange.ptr(64, 175, 175), valueRange), $clone(new valueRange.ptr(8, 176, 182), valueRange), $clone(new valueRange.ptr(64, 183, 183), valueRange), $clone(new valueRange.ptr(8, 184, 190), valueRange), $clone(new valueRange.ptr(64, 191, 191), valueRange), $clone(new valueRange.ptr(0, 9, 0), valueRange), $clone(new valueRange.ptr(8, 128, 134), valueRange), $clone(new valueRange.ptr(64, 135, 135), valueRange), $clone(new valueRange.ptr(8, 136, 142), valueRange), $clone(new valueRange.ptr(64, 143, 143), valueRange), $clone(new valueRange.ptr(8, 144, 150), valueRange), $clone(new valueRange.ptr(64, 151, 151), valueRange), $clone(new valueRange.ptr(8, 152, 158), valueRange), $clone(new valueRange.ptr(64, 159, 159), valueRange), $clone(new valueRange.ptr(13064, 160, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(24, 128, 174), valueRange), $clone(new valueRange.ptr(8, 175, 175), valueRange), $clone(new valueRange.ptr(24, 176, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(24, 128, 157), valueRange), $clone(new valueRange.ptr(64, 158, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(24, 128, 153), valueRange), $clone(new valueRange.ptr(64, 154, 154), valueRange), $clone(new valueRange.ptr(24, 155, 158), valueRange), $clone(new valueRange.ptr(3829, 159, 159), valueRange), $clone(new valueRange.ptr(24, 160, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(24, 128, 178), valueRange), $clone(new valueRange.ptr(3861, 179, 179), valueRange), $clone(new valueRange.ptr(64, 180, 191), valueRange), $clone(new valueRange.ptr(32, 1, 0), valueRange), $clone(new valueRange.ptr(3893, 128, 191), valueRange), $clone(new valueRange.ptr(32, 2, 0), valueRange), $clone(new valueRange.ptr(5941, 128, 143), valueRange), $clone(new valueRange.ptr(6421, 144, 191), valueRange), $clone(new valueRange.ptr(32, 1, 0), valueRange), $clone(new valueRange.ptr(7957, 128, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(64, 128, 128), valueRange), $clone(new valueRange.ptr(8, 129, 191), valueRange), $clone(new valueRange.ptr(0, 9, 0), valueRange), $clone(new valueRange.ptr(8, 128, 150), valueRange), $clone(new valueRange.ptr(64, 151, 152), valueRange), $clone(new valueRange.ptr(13064, 153, 154), valueRange), $clone(new valueRange.ptr(2410, 155, 155), valueRange), $clone(new valueRange.ptr(2418, 156, 156), valueRange), $clone(new valueRange.ptr(8, 157, 158), valueRange), $clone(new valueRange.ptr(2425, 159, 159), valueRange), $clone(new valueRange.ptr(24, 160, 160), valueRange), $clone(new valueRange.ptr(8, 161, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(8, 128, 190), valueRange), $clone(new valueRange.ptr(2433, 191, 191), valueRange), $clone(new valueRange.ptr(0, 14, 0), valueRange), $clone(new valueRange.ptr(64, 128, 132), valueRange), $clone(new valueRange.ptr(8, 133, 175), valueRange), $clone(new valueRange.ptr(64, 176, 176), valueRange), $clone(new valueRange.ptr(10805, 177, 177), valueRange), $clone(new valueRange.ptr(10837, 178, 178), valueRange), $clone(new valueRange.ptr(10869, 179, 179), valueRange), $clone(new valueRange.ptr(10901, 180, 180), valueRange), $clone(new valueRange.ptr(10869, 181, 181), valueRange), $clone(new valueRange.ptr(10933, 182, 182), valueRange), $clone(new valueRange.ptr(10965, 183, 183), valueRange), $clone(new valueRange.ptr(10997, 184, 185), valueRange), $clone(new valueRange.ptr(11029, 186, 187), valueRange), $clone(new valueRange.ptr(11061, 188, 189), valueRange), $clone(new valueRange.ptr(11029, 190, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(24, 128, 163), valueRange), $clone(new valueRange.ptr(64, 164, 175), valueRange), $clone(new valueRange.ptr(8, 176, 191), valueRange), $clone(new valueRange.ptr(8, 3, 0), valueRange), $clone(new valueRange.ptr(2442, 128, 158), valueRange), $clone(new valueRange.ptr(64, 159, 159), valueRange), $clone(new valueRange.ptr(2690, 160, 191), valueRange), $clone(new valueRange.ptr(8, 1, 0), valueRange), $clone(new valueRange.ptr(3353, 128, 191), valueRange), $clone(new valueRange.ptr(8, 8, 0), valueRange), $clone(new valueRange.ptr(3865, 128, 176), valueRange), $clone(new valueRange.ptr(16453, 177, 177), valueRange), $clone(new valueRange.ptr(4257, 178, 179), valueRange), $clone(new valueRange.ptr(16485, 180, 180), valueRange), $clone(new valueRange.ptr(4273, 181, 183), valueRange), $clone(new valueRange.ptr(16517, 184, 184), valueRange), $clone(new valueRange.ptr(16517, 185, 185), valueRange), $clone(new valueRange.ptr(4297, 186, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(8, 128, 140), valueRange), $clone(new valueRange.ptr(64, 141, 143), valueRange), $clone(new valueRange.ptr(24, 144, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(24, 128, 134), valueRange), $clone(new valueRange.ptr(64, 135, 143), valueRange), $clone(new valueRange.ptr(8, 144, 189), valueRange), $clone(new valueRange.ptr(24, 190, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(8, 128, 140), valueRange), $clone(new valueRange.ptr(24, 141, 143), valueRange), $clone(new valueRange.ptr(8, 144, 171), valueRange), $clone(new valueRange.ptr(64, 172, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(8, 128, 165), valueRange), $clone(new valueRange.ptr(24, 166, 175), valueRange), $clone(new valueRange.ptr(13064, 176, 177), valueRange), $clone(new valueRange.ptr(24, 178, 183), valueRange), $clone(new valueRange.ptr(64, 184, 191), valueRange), $clone(new valueRange.ptr(0, 15, 0), valueRange), $clone(new valueRange.ptr(8, 128, 129), valueRange), $clone(new valueRange.ptr(13064, 130, 130), valueRange), $clone(new valueRange.ptr(8, 131, 133), valueRange), $clone(new valueRange.ptr(15112, 134, 134), valueRange), $clone(new valueRange.ptr(8, 135, 138), valueRange), $clone(new valueRange.ptr(13064, 139, 139), valueRange), $clone(new valueRange.ptr(8, 140, 162), valueRange), $clone(new valueRange.ptr(12296, 163, 164), valueRange), $clone(new valueRange.ptr(13064, 165, 166), valueRange), $clone(new valueRange.ptr(12296, 167, 167), valueRange), $clone(new valueRange.ptr(24, 168, 171), valueRange), $clone(new valueRange.ptr(15112, 172, 172), valueRange), $clone(new valueRange.ptr(64, 173, 175), valueRange), $clone(new valueRange.ptr(24, 176, 185), valueRange), $clone(new valueRange.ptr(64, 186, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(520, 128, 177), valueRange), $clone(new valueRange.ptr(264, 178, 178), valueRange), $clone(new valueRange.ptr(8, 179, 179), valueRange), $clone(new valueRange.ptr(24, 180, 183), valueRange), $clone(new valueRange.ptr(64, 184, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(12296, 128, 129), valueRange), $clone(new valueRange.ptr(8, 130, 179), valueRange), $clone(new valueRange.ptr(12296, 180, 191), valueRange), $clone(new valueRange.ptr(0, 14, 0), valueRange), $clone(new valueRange.ptr(12296, 128, 131), valueRange), $clone(new valueRange.ptr(15112, 132, 132), valueRange), $clone(new valueRange.ptr(13064, 133, 133), valueRange), $clone(new valueRange.ptr(64, 134, 141), valueRange), $clone(new valueRange.ptr(24, 142, 143), valueRange), $clone(new valueRange.ptr(8, 144, 153), valueRange), $clone(new valueRange.ptr(64, 154, 159), valueRange), $clone(new valueRange.ptr(13064, 160, 177), valueRange), $clone(new valueRange.ptr(8, 178, 183), valueRange), $clone(new valueRange.ptr(24, 184, 186), valueRange), $clone(new valueRange.ptr(8, 187, 187), valueRange), $clone(new valueRange.ptr(24, 188, 188), valueRange), $clone(new valueRange.ptr(8, 189, 190), valueRange), $clone(new valueRange.ptr(13064, 191, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(8, 128, 165), valueRange), $clone(new valueRange.ptr(13064, 166, 173), valueRange), $clone(new valueRange.ptr(24, 174, 175), valueRange), $clone(new valueRange.ptr(8, 176, 191), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(8, 128, 134), valueRange), $clone(new valueRange.ptr(13064, 135, 145), valueRange), $clone(new valueRange.ptr(12296, 146, 146), valueRange), $clone(new valueRange.ptr(14344, 147, 147), valueRange), $clone(new valueRange.ptr(64, 148, 158), valueRange), $clone(new valueRange.ptr(24, 159, 188), valueRange), $clone(new valueRange.ptr(64, 189, 191), valueRange), $clone(new valueRange.ptr(0, 9, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 130), valueRange), $clone(new valueRange.ptr(12296, 131, 131), valueRange), $clone(new valueRange.ptr(8, 132, 178), valueRange), $clone(new valueRange.ptr(13064, 179, 179), valueRange), $clone(new valueRange.ptr(12296, 180, 181), valueRange), $clone(new valueRange.ptr(13064, 182, 185), valueRange), $clone(new valueRange.ptr(12296, 186, 187), valueRange), $clone(new valueRange.ptr(13064, 188, 189), valueRange), $clone(new valueRange.ptr(12296, 190, 191), valueRange), $clone(new valueRange.ptr(0, 10, 0), valueRange), $clone(new valueRange.ptr(14344, 128, 128), valueRange), $clone(new valueRange.ptr(24, 129, 141), valueRange), $clone(new valueRange.ptr(64, 142, 142), valueRange), $clone(new valueRange.ptr(8, 143, 153), valueRange), $clone(new valueRange.ptr(64, 154, 157), valueRange), $clone(new valueRange.ptr(24, 158, 159), valueRange), $clone(new valueRange.ptr(8, 160, 164), valueRange), $clone(new valueRange.ptr(13064, 165, 165), valueRange), $clone(new valueRange.ptr(8, 166, 190), valueRange), $clone(new valueRange.ptr(64, 191, 191), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(8, 128, 168), valueRange), $clone(new valueRange.ptr(13064, 169, 174), valueRange), $clone(new valueRange.ptr(12296, 175, 176), valueRange), $clone(new valueRange.ptr(13064, 177, 178), valueRange), $clone(new valueRange.ptr(12296, 179, 180), valueRange), $clone(new valueRange.ptr(13064, 181, 182), valueRange), $clone(new valueRange.ptr(64, 183, 191), valueRange), $clone(new valueRange.ptr(0, 16, 0), valueRange), $clone(new valueRange.ptr(8, 128, 130), valueRange), $clone(new valueRange.ptr(13064, 131, 131), valueRange), $clone(new valueRange.ptr(8, 132, 139), valueRange), $clone(new valueRange.ptr(13064, 140, 140), valueRange), $clone(new valueRange.ptr(12296, 141, 141), valueRange), $clone(new valueRange.ptr(64, 142, 143), valueRange), $clone(new valueRange.ptr(8, 144, 153), valueRange), $clone(new valueRange.ptr(64, 154, 155), valueRange), $clone(new valueRange.ptr(24, 156, 159), valueRange), $clone(new valueRange.ptr(8, 160, 182), valueRange), $clone(new valueRange.ptr(24, 183, 185), valueRange), $clone(new valueRange.ptr(8, 186, 186), valueRange), $clone(new valueRange.ptr(12296, 187, 187), valueRange), $clone(new valueRange.ptr(13064, 188, 188), valueRange), $clone(new valueRange.ptr(12296, 189, 189), valueRange), $clone(new valueRange.ptr(8, 190, 191), valueRange), $clone(new valueRange.ptr(0, 8, 0), valueRange), $clone(new valueRange.ptr(8, 128, 175), valueRange), $clone(new valueRange.ptr(13064, 176, 176), valueRange), $clone(new valueRange.ptr(8, 177, 177), valueRange), $clone(new valueRange.ptr(13064, 178, 180), valueRange), $clone(new valueRange.ptr(8, 181, 182), valueRange), $clone(new valueRange.ptr(13064, 183, 184), valueRange), $clone(new valueRange.ptr(8, 185, 189), valueRange), $clone(new valueRange.ptr(13064, 190, 191), valueRange), $clone(new valueRange.ptr(0, 15, 0), valueRange), $clone(new valueRange.ptr(8, 128, 128), valueRange), $clone(new valueRange.ptr(13064, 129, 129), valueRange), $clone(new valueRange.ptr(8, 130, 130), valueRange), $clone(new valueRange.ptr(64, 131, 154), valueRange), $clone(new valueRange.ptr(8, 155, 157), valueRange), $clone(new valueRange.ptr(24, 158, 159), valueRange), $clone(new valueRange.ptr(8, 160, 170), valueRange), $clone(new valueRange.ptr(12296, 171, 171), valueRange), $clone(new valueRange.ptr(13064, 172, 173), valueRange), $clone(new valueRange.ptr(12296, 174, 175), valueRange), $clone(new valueRange.ptr(24, 176, 177), valueRange), $clone(new valueRange.ptr(8, 178, 180), valueRange), $clone(new valueRange.ptr(12296, 181, 181), valueRange), $clone(new valueRange.ptr(15112, 182, 182), valueRange), $clone(new valueRange.ptr(64, 183, 191), valueRange), $clone(new valueRange.ptr(0, 12, 0), valueRange), $clone(new valueRange.ptr(64, 128, 128), valueRange), $clone(new valueRange.ptr(8, 129, 134), valueRange), $clone(new valueRange.ptr(64, 135, 136), valueRange), $clone(new valueRange.ptr(8, 137, 142), valueRange), $clone(new valueRange.ptr(64, 143, 144), valueRange), $clone(new valueRange.ptr(8, 145, 150), valueRange), $clone(new valueRange.ptr(64, 151, 159), valueRange), $clone(new valueRange.ptr(8, 160, 166), valueRange), $clone(new valueRange.ptr(64, 167, 167), valueRange), $clone(new valueRange.ptr(8, 168, 174), valueRange), $clone(new valueRange.ptr(64, 175, 175), valueRange), $clone(new valueRange.ptr(8, 176, 191), valueRange), $clone(new valueRange.ptr(0, 11, 0), valueRange), $clone(new valueRange.ptr(8, 128, 154), valueRange), $clone(new valueRange.ptr(24, 155, 155), valueRange), $clone(new valueRange.ptr(17565, 156, 156), valueRange), $clone(new valueRange.ptr(17589, 157, 157), valueRange), $clone(new valueRange.ptr(2369, 158, 158), valueRange), $clone(new valueRange.ptr(57453, 159, 159), valueRange), $clone(new valueRange.ptr(8, 160, 168), valueRange), $clone(new valueRange.ptr(5113, 169, 169), valueRange), $clone(new valueRange.ptr(24, 170, 171), valueRange), $clone(new valueRange.ptr(64, 172, 175), valueRange), $clone(new valueRange.ptr(17613, 176, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(17645, 128, 143), valueRange), $clone(new valueRange.ptr(17677, 144, 159), valueRange), $clone(new valueRange.ptr(17709, 160, 175), valueRange), $clone(new valueRange.ptr(17677, 176, 191), valueRange), $clone(new valueRange.ptr(0, 12, 0), valueRange), $clone(new valueRange.ptr(8, 128, 162), valueRange), $clone(new valueRange.ptr(12296, 163, 164), valueRange), $clone(new valueRange.ptr(13064, 165, 165), valueRange), $clone(new valueRange.ptr(12296, 166, 167), valueRange), $clone(new valueRange.ptr(13064, 168, 168), valueRange), $clone(new valueRange.ptr(12296, 169, 170), valueRange), $clone(new valueRange.ptr(24, 171, 171), valueRange), $clone(new valueRange.ptr(12296, 172, 172), valueRange), $clone(new valueRange.ptr(15112, 173, 173), valueRange), $clone(new valueRange.ptr(64, 174, 175), valueRange), $clone(new valueRange.ptr(8, 176, 185), valueRange), $clone(new valueRange.ptr(64, 186, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(8, 128, 163), valueRange), $clone(new valueRange.ptr(64, 164, 175), valueRange), $clone(new valueRange.ptr(24, 176, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(24, 128, 134), valueRange), $clone(new valueRange.ptr(64, 135, 138), valueRange), $clone(new valueRange.ptr(24, 139, 187), valueRange), $clone(new valueRange.ptr(64, 188, 191), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(64, 128, 191), valueRange), $clone(new valueRange.ptr(32, 1, 0), valueRange), $clone(new valueRange.ptr(17741, 128, 191), valueRange), $clone(new valueRange.ptr(32, 3, 0), valueRange), $clone(new valueRange.ptr(19789, 128, 148), valueRange), $clone(new valueRange.ptr(19213, 149, 149), valueRange), $clone(new valueRange.ptr(20461, 150, 191), valueRange), $clone(new valueRange.ptr(32, 1, 0), valueRange), $clone(new valueRange.ptr(21805, 128, 191), valueRange), $clone(new valueRange.ptr(32, 3, 0), valueRange), $clone(new valueRange.ptr(23853, 128, 132), valueRange), $clone(new valueRange.ptr(22157, 133, 133), valueRange), $clone(new valueRange.ptr(24013, 134, 191), valueRange), $clone(new valueRange.ptr(32, 8, 0), valueRange), $clone(new valueRange.ptr(27533, 128, 143), valueRange), $clone(new valueRange.ptr(27981, 144, 144), valueRange), $clone(new valueRange.ptr(28045, 145, 171), valueRange), $clone(new valueRange.ptr(5121, 172, 172), valueRange), $clone(new valueRange.ptr(28909, 173, 173), valueRange), $clone(new valueRange.ptr(64, 174, 174), valueRange), $clone(new valueRange.ptr(64, 175, 175), valueRange), $clone(new valueRange.ptr(28941, 176, 191), valueRange), $clone(new valueRange.ptr(32, 5, 0), valueRange), $clone(new valueRange.ptr(29453, 128, 173), valueRange), $clone(new valueRange.ptr(25965, 174, 174), valueRange), $clone(new valueRange.ptr(30925, 175, 181), valueRange), $clone(new valueRange.ptr(28557, 182, 182), valueRange), $clone(new valueRange.ptr(31149, 183, 191), valueRange), $clone(new valueRange.ptr(8, 3, 0), valueRange), $clone(new valueRange.ptr(5969, 128, 130), valueRange), $clone(new valueRange.ptr(5953, 131, 131), valueRange), $clone(new valueRange.ptr(5993, 132, 191), valueRange), $clone(new valueRange.ptr(8, 15, 0), valueRange), $clone(new valueRange.ptr(7553, 128, 131), valueRange), $clone(new valueRange.ptr(7577, 132, 133), valueRange), $clone(new valueRange.ptr(7585, 134, 135), valueRange), $clone(new valueRange.ptr(7593, 136, 143), valueRange), $clone(new valueRange.ptr(64, 144, 144), valueRange), $clone(new valueRange.ptr(64, 145, 145), valueRange), $clone(new valueRange.ptr(7657, 146, 151), valueRange), $clone(new valueRange.ptr(7697, 152, 156), valueRange), $clone(new valueRange.ptr(7729, 157, 179), valueRange), $clone(new valueRange.ptr(7537, 180, 180), valueRange), $clone(new valueRange.ptr(7553, 181, 181), valueRange), $clone(new valueRange.ptr(7913, 182, 187), valueRange), $clone(new valueRange.ptr(7945, 188, 188), valueRange), $clone(new valueRange.ptr(7929, 189, 189), valueRange), $clone(new valueRange.ptr(7961, 190, 191), valueRange), $clone(new valueRange.ptr(0, 9, 0), valueRange), $clone(new valueRange.ptr(8, 128, 139), valueRange), $clone(new valueRange.ptr(64, 140, 140), valueRange), $clone(new valueRange.ptr(8, 141, 166), valueRange), $clone(new valueRange.ptr(64, 167, 167), valueRange), $clone(new valueRange.ptr(8, 168, 186), valueRange), $clone(new valueRange.ptr(64, 187, 187), valueRange), $clone(new valueRange.ptr(8, 188, 189), valueRange), $clone(new valueRange.ptr(64, 190, 190), valueRange), $clone(new valueRange.ptr(8, 191, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(8, 128, 141), valueRange), $clone(new valueRange.ptr(64, 142, 143), valueRange), $clone(new valueRange.ptr(8, 144, 157), valueRange), $clone(new valueRange.ptr(64, 158, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(8, 128, 186), valueRange), $clone(new valueRange.ptr(64, 187, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(24, 128, 130), valueRange), $clone(new valueRange.ptr(64, 131, 134), valueRange), $clone(new valueRange.ptr(24, 135, 179), valueRange), $clone(new valueRange.ptr(64, 180, 182), valueRange), $clone(new valueRange.ptr(24, 183, 191), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(24, 128, 142), valueRange), $clone(new valueRange.ptr(64, 143, 143), valueRange), $clone(new valueRange.ptr(24, 144, 156), valueRange), $clone(new valueRange.ptr(64, 157, 159), valueRange), $clone(new valueRange.ptr(24, 160, 160), valueRange), $clone(new valueRange.ptr(64, 161, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(64, 128, 143), valueRange), $clone(new valueRange.ptr(24, 144, 188), valueRange), $clone(new valueRange.ptr(13064, 189, 189), valueRange), $clone(new valueRange.ptr(64, 190, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(8, 128, 156), valueRange), $clone(new valueRange.ptr(64, 157, 159), valueRange), $clone(new valueRange.ptr(8, 160, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(8, 128, 144), valueRange), $clone(new valueRange.ptr(64, 145, 159), valueRange), $clone(new valueRange.ptr(13064, 160, 160), valueRange), $clone(new valueRange.ptr(24, 161, 187), valueRange), $clone(new valueRange.ptr(64, 188, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(8, 128, 159), valueRange), $clone(new valueRange.ptr(24, 160, 163), valueRange), $clone(new valueRange.ptr(64, 164, 172), valueRange), $clone(new valueRange.ptr(8, 173, 191), valueRange), $clone(new valueRange.ptr(0, 8, 0), valueRange), $clone(new valueRange.ptr(8, 128, 128), valueRange), $clone(new valueRange.ptr(24, 129, 129), valueRange), $clone(new valueRange.ptr(8, 130, 137), valueRange), $clone(new valueRange.ptr(24, 138, 138), valueRange), $clone(new valueRange.ptr(64, 139, 143), valueRange), $clone(new valueRange.ptr(8, 144, 181), valueRange), $clone(new valueRange.ptr(13064, 182, 186), valueRange), $clone(new valueRange.ptr(64, 187, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(8, 128, 157), valueRange), $clone(new valueRange.ptr(64, 158, 158), valueRange), $clone(new valueRange.ptr(24, 159, 159), valueRange), $clone(new valueRange.ptr(8, 160, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(8, 128, 131), valueRange), $clone(new valueRange.ptr(64, 132, 135), valueRange), $clone(new valueRange.ptr(8, 136, 143), valueRange), $clone(new valueRange.ptr(24, 144, 149), valueRange), $clone(new valueRange.ptr(64, 150, 191), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(57669, 128, 135), valueRange), $clone(new valueRange.ptr(57797, 136, 143), valueRange), $clone(new valueRange.ptr(57669, 144, 151), valueRange), $clone(new valueRange.ptr(35597, 152, 159), valueRange), $clone(new valueRange.ptr(35621, 160, 167), valueRange), $clone(new valueRange.ptr(8, 168, 191), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(8, 128, 157), valueRange), $clone(new valueRange.ptr(64, 158, 159), valueRange), $clone(new valueRange.ptr(8, 160, 169), valueRange), $clone(new valueRange.ptr(64, 170, 175), valueRange), $clone(new valueRange.ptr(35621, 176, 183), valueRange), $clone(new valueRange.ptr(35597, 184, 191), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(57669, 128, 135), valueRange), $clone(new valueRange.ptr(57797, 136, 143), valueRange), $clone(new valueRange.ptr(57669, 144, 147), valueRange), $clone(new valueRange.ptr(64, 148, 151), valueRange), $clone(new valueRange.ptr(8, 152, 187), valueRange), $clone(new valueRange.ptr(64, 188, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(8, 128, 167), valueRange), $clone(new valueRange.ptr(64, 168, 175), valueRange), $clone(new valueRange.ptr(8, 176, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(8, 128, 182), valueRange), $clone(new valueRange.ptr(64, 183, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(8, 128, 149), valueRange), $clone(new valueRange.ptr(64, 150, 159), valueRange), $clone(new valueRange.ptr(8, 160, 167), valueRange), $clone(new valueRange.ptr(64, 168, 191), valueRange), $clone(new valueRange.ptr(0, 11, 0), valueRange), $clone(new valueRange.ptr(2056, 128, 133), valueRange), $clone(new valueRange.ptr(64, 134, 135), valueRange), $clone(new valueRange.ptr(2056, 136, 136), valueRange), $clone(new valueRange.ptr(64, 137, 137), valueRange), $clone(new valueRange.ptr(2056, 138, 181), valueRange), $clone(new valueRange.ptr(64, 182, 182), valueRange), $clone(new valueRange.ptr(2056, 183, 184), valueRange), $clone(new valueRange.ptr(64, 185, 187), valueRange), $clone(new valueRange.ptr(2056, 188, 188), valueRange), $clone(new valueRange.ptr(64, 189, 190), valueRange), $clone(new valueRange.ptr(2056, 191, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(2056, 128, 149), valueRange), $clone(new valueRange.ptr(64, 150, 150), valueRange), $clone(new valueRange.ptr(2072, 151, 159), valueRange), $clone(new valueRange.ptr(2056, 160, 182), valueRange), $clone(new valueRange.ptr(2072, 183, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(2056, 128, 158), valueRange), $clone(new valueRange.ptr(64, 159, 166), valueRange), $clone(new valueRange.ptr(2072, 167, 175), valueRange), $clone(new valueRange.ptr(64, 176, 191), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(64, 128, 159), valueRange), $clone(new valueRange.ptr(2056, 160, 178), valueRange), $clone(new valueRange.ptr(64, 179, 179), valueRange), $clone(new valueRange.ptr(2056, 180, 181), valueRange), $clone(new valueRange.ptr(64, 182, 186), valueRange), $clone(new valueRange.ptr(2072, 187, 191), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(2056, 128, 149), valueRange), $clone(new valueRange.ptr(2072, 150, 155), valueRange), $clone(new valueRange.ptr(64, 156, 158), valueRange), $clone(new valueRange.ptr(24, 159, 159), valueRange), $clone(new valueRange.ptr(2056, 160, 185), valueRange), $clone(new valueRange.ptr(64, 186, 190), valueRange), $clone(new valueRange.ptr(2072, 191, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(2056, 128, 183), valueRange), $clone(new valueRange.ptr(64, 184, 187), valueRange), $clone(new valueRange.ptr(2072, 188, 189), valueRange), $clone(new valueRange.ptr(2056, 190, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(2072, 128, 143), valueRange), $clone(new valueRange.ptr(64, 144, 145), valueRange), $clone(new valueRange.ptr(2072, 146, 191), valueRange), $clone(new valueRange.ptr(0, 15, 0), valueRange), $clone(new valueRange.ptr(2056, 128, 128), valueRange), $clone(new valueRange.ptr(13064, 129, 131), valueRange), $clone(new valueRange.ptr(64, 132, 132), valueRange), $clone(new valueRange.ptr(13064, 133, 134), valueRange), $clone(new valueRange.ptr(64, 135, 139), valueRange), $clone(new valueRange.ptr(13064, 140, 143), valueRange), $clone(new valueRange.ptr(2056, 144, 147), valueRange), $clone(new valueRange.ptr(64, 148, 148), valueRange), $clone(new valueRange.ptr(2056, 149, 151), valueRange), $clone(new valueRange.ptr(64, 152, 152), valueRange), $clone(new valueRange.ptr(2056, 153, 181), valueRange), $clone(new valueRange.ptr(64, 182, 183), valueRange), $clone(new valueRange.ptr(13064, 184, 186), valueRange), $clone(new valueRange.ptr(64, 187, 190), valueRange), $clone(new valueRange.ptr(15112, 191, 191), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(2072, 128, 136), valueRange), $clone(new valueRange.ptr(64, 137, 143), valueRange), $clone(new valueRange.ptr(2072, 144, 152), valueRange), $clone(new valueRange.ptr(64, 153, 159), valueRange), $clone(new valueRange.ptr(2056, 160, 188), valueRange), $clone(new valueRange.ptr(2072, 189, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(2056, 128, 156), valueRange), $clone(new valueRange.ptr(2072, 157, 159), valueRange), $clone(new valueRange.ptr(64, 160, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(2056, 128, 181), valueRange), $clone(new valueRange.ptr(64, 182, 184), valueRange), $clone(new valueRange.ptr(24, 185, 191), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(2056, 128, 149), valueRange), $clone(new valueRange.ptr(64, 150, 151), valueRange), $clone(new valueRange.ptr(2072, 152, 159), valueRange), $clone(new valueRange.ptr(2056, 160, 178), valueRange), $clone(new valueRange.ptr(64, 179, 183), valueRange), $clone(new valueRange.ptr(2072, 184, 191), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(2056, 128, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(2056, 128, 136), valueRange), $clone(new valueRange.ptr(64, 137, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(989, 128, 178), valueRange), $clone(new valueRange.ptr(64, 179, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(2056, 128, 178), valueRange), $clone(new valueRange.ptr(64, 179, 185), valueRange), $clone(new valueRange.ptr(2072, 186, 191), valueRange), $clone(new valueRange.ptr(0, 8, 0), valueRange), $clone(new valueRange.ptr(2312, 128, 128), valueRange), $clone(new valueRange.ptr(2568, 129, 161), valueRange), $clone(new valueRange.ptr(3080, 162, 162), valueRange), $clone(new valueRange.ptr(2568, 163, 163), valueRange), $clone(new valueRange.ptr(13064, 164, 167), valueRange), $clone(new valueRange.ptr(64, 168, 175), valueRange), $clone(new valueRange.ptr(2056, 176, 185), valueRange), $clone(new valueRange.ptr(64, 186, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(64, 128, 159), valueRange), $clone(new valueRange.ptr(2072, 160, 190), valueRange), $clone(new valueRange.ptr(64, 191, 191), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(2056, 128, 169), valueRange), $clone(new valueRange.ptr(64, 170, 170), valueRange), $clone(new valueRange.ptr(13064, 171, 172), valueRange), $clone(new valueRange.ptr(2072, 173, 173), valueRange), $clone(new valueRange.ptr(64, 174, 175), valueRange), $clone(new valueRange.ptr(2056, 176, 177), valueRange), $clone(new valueRange.ptr(64, 178, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(64, 128, 188), valueRange), $clone(new valueRange.ptr(13064, 189, 191), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(2056, 128, 156), valueRange), $clone(new valueRange.ptr(2072, 157, 166), valueRange), $clone(new valueRange.ptr(2056, 167, 167), valueRange), $clone(new valueRange.ptr(64, 168, 175), valueRange), $clone(new valueRange.ptr(2568, 176, 178), valueRange), $clone(new valueRange.ptr(3080, 179, 179), valueRange), $clone(new valueRange.ptr(2568, 180, 191), valueRange), $clone(new valueRange.ptr(0, 10, 0), valueRange), $clone(new valueRange.ptr(2568, 128, 132), valueRange), $clone(new valueRange.ptr(2056, 133, 133), valueRange), $clone(new valueRange.ptr(13064, 134, 144), valueRange), $clone(new valueRange.ptr(2584, 145, 147), valueRange), $clone(new valueRange.ptr(3096, 148, 148), valueRange), $clone(new valueRange.ptr(2072, 149, 153), valueRange), $clone(new valueRange.ptr(64, 154, 175), valueRange), $clone(new valueRange.ptr(2568, 176, 179), valueRange), $clone(new valueRange.ptr(3080, 180, 181), valueRange), $clone(new valueRange.ptr(2568, 182, 191), valueRange), $clone(new valueRange.ptr(0, 14, 0), valueRange), $clone(new valueRange.ptr(2568, 128, 129), valueRange), $clone(new valueRange.ptr(13064, 130, 133), valueRange), $clone(new valueRange.ptr(2072, 134, 137), valueRange), $clone(new valueRange.ptr(64, 138, 175), valueRange), $clone(new valueRange.ptr(2568, 176, 176), valueRange), $clone(new valueRange.ptr(2056, 177, 177), valueRange), $clone(new valueRange.ptr(2568, 178, 179), valueRange), $clone(new valueRange.ptr(3080, 180, 182), valueRange), $clone(new valueRange.ptr(2056, 183, 183), valueRange), $clone(new valueRange.ptr(2568, 184, 184), valueRange), $clone(new valueRange.ptr(3080, 185, 186), valueRange), $clone(new valueRange.ptr(2568, 187, 188), valueRange), $clone(new valueRange.ptr(3080, 189, 189), valueRange), $clone(new valueRange.ptr(2568, 190, 191), valueRange), $clone(new valueRange.ptr(0, 11, 0), valueRange), $clone(new valueRange.ptr(2056, 128, 128), valueRange), $clone(new valueRange.ptr(2568, 129, 129), valueRange), $clone(new valueRange.ptr(3080, 130, 131), valueRange), $clone(new valueRange.ptr(2568, 132, 132), valueRange), $clone(new valueRange.ptr(2072, 133, 136), valueRange), $clone(new valueRange.ptr(3096, 137, 137), valueRange), $clone(new valueRange.ptr(2584, 138, 138), valueRange), $clone(new valueRange.ptr(2328, 139, 139), valueRange), $clone(new valueRange.ptr(64, 140, 159), valueRange), $clone(new valueRange.ptr(2056, 160, 182), valueRange), $clone(new valueRange.ptr(64, 183, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(12296, 128, 128), valueRange), $clone(new valueRange.ptr(13064, 129, 129), valueRange), $clone(new valueRange.ptr(12296, 130, 130), valueRange), $clone(new valueRange.ptr(8, 131, 183), valueRange), $clone(new valueRange.ptr(13064, 184, 191), valueRange), $clone(new valueRange.ptr(0, 12, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 133), valueRange), $clone(new valueRange.ptr(15112, 134, 134), valueRange), $clone(new valueRange.ptr(24, 135, 141), valueRange), $clone(new valueRange.ptr(64, 142, 145), valueRange), $clone(new valueRange.ptr(24, 146, 165), valueRange), $clone(new valueRange.ptr(8, 166, 175), valueRange), $clone(new valueRange.ptr(15112, 176, 176), valueRange), $clone(new valueRange.ptr(8, 177, 178), valueRange), $clone(new valueRange.ptr(13064, 179, 180), valueRange), $clone(new valueRange.ptr(8, 181, 181), valueRange), $clone(new valueRange.ptr(64, 182, 190), valueRange), $clone(new valueRange.ptr(15112, 191, 191), valueRange), $clone(new valueRange.ptr(0, 11, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 129), valueRange), $clone(new valueRange.ptr(12296, 130, 130), valueRange), $clone(new valueRange.ptr(8, 131, 175), valueRange), $clone(new valueRange.ptr(12296, 176, 178), valueRange), $clone(new valueRange.ptr(13064, 179, 182), valueRange), $clone(new valueRange.ptr(12296, 183, 184), valueRange), $clone(new valueRange.ptr(15112, 185, 185), valueRange), $clone(new valueRange.ptr(13064, 186, 186), valueRange), $clone(new valueRange.ptr(24, 187, 188), valueRange), $clone(new valueRange.ptr(64, 189, 189), valueRange), $clone(new valueRange.ptr(24, 190, 191), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(24, 128, 129), valueRange), $clone(new valueRange.ptr(13064, 130, 130), valueRange), $clone(new valueRange.ptr(64, 131, 143), valueRange), $clone(new valueRange.ptr(8, 144, 168), valueRange), $clone(new valueRange.ptr(64, 169, 175), valueRange), $clone(new valueRange.ptr(8, 176, 185), valueRange), $clone(new valueRange.ptr(64, 186, 191), valueRange), $clone(new valueRange.ptr(0, 8, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 130), valueRange), $clone(new valueRange.ptr(8, 131, 166), valueRange), $clone(new valueRange.ptr(13064, 167, 171), valueRange), $clone(new valueRange.ptr(12296, 172, 172), valueRange), $clone(new valueRange.ptr(13064, 173, 178), valueRange), $clone(new valueRange.ptr(15112, 179, 180), valueRange), $clone(new valueRange.ptr(64, 181, 181), valueRange), $clone(new valueRange.ptr(8, 182, 191), valueRange), $clone(new valueRange.ptr(0, 10, 0), valueRange), $clone(new valueRange.ptr(24, 128, 131), valueRange), $clone(new valueRange.ptr(8, 132, 132), valueRange), $clone(new valueRange.ptr(12296, 133, 134), valueRange), $clone(new valueRange.ptr(8, 135, 135), valueRange), $clone(new valueRange.ptr(64, 136, 143), valueRange), $clone(new valueRange.ptr(8, 144, 178), valueRange), $clone(new valueRange.ptr(13064, 179, 179), valueRange), $clone(new valueRange.ptr(24, 180, 181), valueRange), $clone(new valueRange.ptr(8, 182, 182), valueRange), $clone(new valueRange.ptr(64, 183, 191), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 129), valueRange), $clone(new valueRange.ptr(12296, 130, 130), valueRange), $clone(new valueRange.ptr(8, 131, 178), valueRange), $clone(new valueRange.ptr(12296, 179, 181), valueRange), $clone(new valueRange.ptr(13064, 182, 190), valueRange), $clone(new valueRange.ptr(12296, 191, 191), valueRange), $clone(new valueRange.ptr(0, 14, 0), valueRange), $clone(new valueRange.ptr(14344, 128, 128), valueRange), $clone(new valueRange.ptr(8, 129, 132), valueRange), $clone(new valueRange.ptr(24, 133, 136), valueRange), $clone(new valueRange.ptr(13064, 137, 140), valueRange), $clone(new valueRange.ptr(24, 141, 141), valueRange), $clone(new valueRange.ptr(12296, 142, 142), valueRange), $clone(new valueRange.ptr(13064, 143, 143), valueRange), $clone(new valueRange.ptr(8, 144, 154), valueRange), $clone(new valueRange.ptr(24, 155, 155), valueRange), $clone(new valueRange.ptr(8, 156, 156), valueRange), $clone(new valueRange.ptr(24, 157, 159), valueRange), $clone(new valueRange.ptr(64, 160, 160), valueRange), $clone(new valueRange.ptr(24, 161, 180), valueRange), $clone(new valueRange.ptr(64, 181, 191), valueRange), $clone(new valueRange.ptr(0, 12, 0), valueRange), $clone(new valueRange.ptr(8, 128, 145), valueRange), $clone(new valueRange.ptr(64, 146, 146), valueRange), $clone(new valueRange.ptr(8, 147, 171), valueRange), $clone(new valueRange.ptr(12296, 172, 174), valueRange), $clone(new valueRange.ptr(13064, 175, 177), valueRange), $clone(new valueRange.ptr(12296, 178, 179), valueRange), $clone(new valueRange.ptr(13064, 180, 180), valueRange), $clone(new valueRange.ptr(14344, 181, 181), valueRange), $clone(new valueRange.ptr(13064, 182, 183), valueRange), $clone(new valueRange.ptr(24, 184, 189), valueRange), $clone(new valueRange.ptr(13064, 190, 190), valueRange), $clone(new valueRange.ptr(8, 191, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(8, 128, 128), valueRange), $clone(new valueRange.ptr(13064, 129, 129), valueRange), $clone(new valueRange.ptr(64, 130, 191), valueRange), $clone(new valueRange.ptr(0, 12, 0), valueRange), $clone(new valueRange.ptr(8, 128, 134), valueRange), $clone(new valueRange.ptr(64, 135, 135), valueRange), $clone(new valueRange.ptr(8, 136, 136), valueRange), $clone(new valueRange.ptr(64, 137, 137), valueRange), $clone(new valueRange.ptr(8, 138, 141), valueRange), $clone(new valueRange.ptr(64, 142, 142), valueRange), $clone(new valueRange.ptr(8, 143, 157), valueRange), $clone(new valueRange.ptr(64, 158, 158), valueRange), $clone(new valueRange.ptr(8, 159, 168), valueRange), $clone(new valueRange.ptr(24, 169, 169), valueRange), $clone(new valueRange.ptr(64, 170, 175), valueRange), $clone(new valueRange.ptr(8, 176, 191), valueRange), $clone(new valueRange.ptr(0, 8, 0), valueRange), $clone(new valueRange.ptr(8, 128, 158), valueRange), $clone(new valueRange.ptr(13064, 159, 159), valueRange), $clone(new valueRange.ptr(12296, 160, 162), valueRange), $clone(new valueRange.ptr(13064, 163, 169), valueRange), $clone(new valueRange.ptr(15112, 170, 170), valueRange), $clone(new valueRange.ptr(64, 171, 175), valueRange), $clone(new valueRange.ptr(8, 176, 185), valueRange), $clone(new valueRange.ptr(64, 186, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(8, 128, 180), valueRange), $clone(new valueRange.ptr(12296, 181, 183), valueRange), $clone(new valueRange.ptr(13064, 184, 191), valueRange), $clone(new valueRange.ptr(0, 14, 0), valueRange), $clone(new valueRange.ptr(12296, 128, 129), valueRange), $clone(new valueRange.ptr(15112, 130, 130), valueRange), $clone(new valueRange.ptr(13064, 131, 132), valueRange), $clone(new valueRange.ptr(12296, 133, 133), valueRange), $clone(new valueRange.ptr(13064, 134, 134), valueRange), $clone(new valueRange.ptr(8, 135, 138), valueRange), $clone(new valueRange.ptr(24, 139, 143), valueRange), $clone(new valueRange.ptr(8, 144, 153), valueRange), $clone(new valueRange.ptr(24, 154, 155), valueRange), $clone(new valueRange.ptr(64, 156, 156), valueRange), $clone(new valueRange.ptr(24, 157, 157), valueRange), $clone(new valueRange.ptr(13064, 158, 158), valueRange), $clone(new valueRange.ptr(8, 159, 161), valueRange), $clone(new valueRange.ptr(64, 162, 191), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(8, 128, 175), valueRange), $clone(new valueRange.ptr(12296, 176, 178), valueRange), $clone(new valueRange.ptr(13064, 179, 184), valueRange), $clone(new valueRange.ptr(12296, 185, 185), valueRange), $clone(new valueRange.ptr(13064, 186, 186), valueRange), $clone(new valueRange.ptr(12296, 187, 190), valueRange), $clone(new valueRange.ptr(13064, 191, 191), valueRange), $clone(new valueRange.ptr(0, 10, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 128), valueRange), $clone(new valueRange.ptr(12296, 129, 129), valueRange), $clone(new valueRange.ptr(15112, 130, 130), valueRange), $clone(new valueRange.ptr(13064, 131, 131), valueRange), $clone(new valueRange.ptr(8, 132, 133), valueRange), $clone(new valueRange.ptr(24, 134, 134), valueRange), $clone(new valueRange.ptr(8, 135, 135), valueRange), $clone(new valueRange.ptr(64, 136, 143), valueRange), $clone(new valueRange.ptr(8, 144, 153), valueRange), $clone(new valueRange.ptr(64, 154, 191), valueRange), $clone(new valueRange.ptr(0, 8, 0), valueRange), $clone(new valueRange.ptr(8, 128, 174), valueRange), $clone(new valueRange.ptr(12296, 175, 177), valueRange), $clone(new valueRange.ptr(13064, 178, 181), valueRange), $clone(new valueRange.ptr(64, 182, 183), valueRange), $clone(new valueRange.ptr(12296, 184, 187), valueRange), $clone(new valueRange.ptr(13064, 188, 189), valueRange), $clone(new valueRange.ptr(12296, 190, 190), valueRange), $clone(new valueRange.ptr(15112, 191, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 128), valueRange), $clone(new valueRange.ptr(24, 129, 151), valueRange), $clone(new valueRange.ptr(8, 152, 155), valueRange), $clone(new valueRange.ptr(13064, 156, 157), valueRange), $clone(new valueRange.ptr(64, 158, 191), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(8, 128, 175), valueRange), $clone(new valueRange.ptr(12296, 176, 178), valueRange), $clone(new valueRange.ptr(13064, 179, 186), valueRange), $clone(new valueRange.ptr(12296, 187, 188), valueRange), $clone(new valueRange.ptr(13064, 189, 189), valueRange), $clone(new valueRange.ptr(12296, 190, 190), valueRange), $clone(new valueRange.ptr(15112, 191, 191), valueRange), $clone(new valueRange.ptr(0, 8, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 128), valueRange), $clone(new valueRange.ptr(24, 129, 131), valueRange), $clone(new valueRange.ptr(8, 132, 132), valueRange), $clone(new valueRange.ptr(64, 133, 143), valueRange), $clone(new valueRange.ptr(8, 144, 153), valueRange), $clone(new valueRange.ptr(64, 154, 159), valueRange), $clone(new valueRange.ptr(24, 160, 172), valueRange), $clone(new valueRange.ptr(64, 173, 191), valueRange), $clone(new valueRange.ptr(0, 11, 0), valueRange), $clone(new valueRange.ptr(8, 128, 170), valueRange), $clone(new valueRange.ptr(13064, 171, 171), valueRange), $clone(new valueRange.ptr(12296, 172, 172), valueRange), $clone(new valueRange.ptr(13064, 173, 173), valueRange), $clone(new valueRange.ptr(12296, 174, 175), valueRange), $clone(new valueRange.ptr(13064, 176, 181), valueRange), $clone(new valueRange.ptr(14344, 182, 182), valueRange), $clone(new valueRange.ptr(13064, 183, 183), valueRange), $clone(new valueRange.ptr(8, 184, 184), valueRange), $clone(new valueRange.ptr(24, 185, 185), valueRange), $clone(new valueRange.ptr(64, 186, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(8, 128, 137), valueRange), $clone(new valueRange.ptr(64, 138, 191), valueRange), $clone(new valueRange.ptr(0, 11, 0), valueRange), $clone(new valueRange.ptr(8, 128, 154), valueRange), $clone(new valueRange.ptr(64, 155, 156), valueRange), $clone(new valueRange.ptr(13064, 157, 159), valueRange), $clone(new valueRange.ptr(12296, 160, 161), valueRange), $clone(new valueRange.ptr(13064, 162, 165), valueRange), $clone(new valueRange.ptr(12296, 166, 166), valueRange), $clone(new valueRange.ptr(13064, 167, 170), valueRange), $clone(new valueRange.ptr(15112, 171, 171), valueRange), $clone(new valueRange.ptr(64, 172, 175), valueRange), $clone(new valueRange.ptr(8, 176, 185), valueRange), $clone(new valueRange.ptr(24, 186, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(8, 128, 134), valueRange), $clone(new valueRange.ptr(64, 135, 191), valueRange), $clone(new valueRange.ptr(0, 8, 0), valueRange), $clone(new valueRange.ptr(8, 128, 171), valueRange), $clone(new valueRange.ptr(12296, 172, 174), valueRange), $clone(new valueRange.ptr(13064, 175, 183), valueRange), $clone(new valueRange.ptr(12296, 184, 184), valueRange), $clone(new valueRange.ptr(15112, 185, 185), valueRange), $clone(new valueRange.ptr(13064, 186, 186), valueRange), $clone(new valueRange.ptr(24, 187, 187), valueRange), $clone(new valueRange.ptr(64, 188, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(64, 128, 159), valueRange), $clone(new valueRange.ptr(1181, 160, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(8, 128, 169), valueRange), $clone(new valueRange.ptr(24, 170, 178), valueRange), $clone(new valueRange.ptr(64, 179, 190), valueRange), $clone(new valueRange.ptr(8, 191, 191), valueRange), $clone(new valueRange.ptr(0, 8, 0), valueRange), $clone(new valueRange.ptr(12296, 128, 128), valueRange), $clone(new valueRange.ptr(8, 129, 129), valueRange), $clone(new valueRange.ptr(12296, 130, 130), valueRange), $clone(new valueRange.ptr(13064, 131, 131), valueRange), $clone(new valueRange.ptr(24, 132, 134), valueRange), $clone(new valueRange.ptr(64, 135, 143), valueRange), $clone(new valueRange.ptr(8, 144, 153), valueRange), $clone(new valueRange.ptr(64, 154, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(64, 128, 159), valueRange), $clone(new valueRange.ptr(8, 160, 167), valueRange), $clone(new valueRange.ptr(64, 168, 169), valueRange), $clone(new valueRange.ptr(8, 170, 191), valueRange), $clone(new valueRange.ptr(0, 12, 0), valueRange), $clone(new valueRange.ptr(8, 128, 144), valueRange), $clone(new valueRange.ptr(12296, 145, 147), valueRange), $clone(new valueRange.ptr(13064, 148, 151), valueRange), $clone(new valueRange.ptr(64, 152, 153), valueRange), $clone(new valueRange.ptr(13064, 154, 155), valueRange), $clone(new valueRange.ptr(12296, 156, 159), valueRange), $clone(new valueRange.ptr(15112, 160, 160), valueRange), $clone(new valueRange.ptr(8, 161, 161), valueRange), $clone(new valueRange.ptr(24, 162, 162), valueRange), $clone(new valueRange.ptr(8, 163, 163), valueRange), $clone(new valueRange.ptr(12296, 164, 164), valueRange), $clone(new valueRange.ptr(64, 165, 191), valueRange), $clone(new valueRange.ptr(0, 10, 0), valueRange), $clone(new valueRange.ptr(8, 128, 128), valueRange), $clone(new valueRange.ptr(13064, 129, 138), valueRange), $clone(new valueRange.ptr(8, 139, 178), valueRange), $clone(new valueRange.ptr(13064, 179, 179), valueRange), $clone(new valueRange.ptr(15112, 180, 180), valueRange), $clone(new valueRange.ptr(13064, 181, 184), valueRange), $clone(new valueRange.ptr(12296, 185, 185), valueRange), $clone(new valueRange.ptr(8, 186, 186), valueRange), $clone(new valueRange.ptr(13064, 187, 190), valueRange), $clone(new valueRange.ptr(24, 191, 191), valueRange), $clone(new valueRange.ptr(0, 8, 0), valueRange), $clone(new valueRange.ptr(24, 128, 134), valueRange), $clone(new valueRange.ptr(15112, 135, 135), valueRange), $clone(new valueRange.ptr(64, 136, 143), valueRange), $clone(new valueRange.ptr(8, 144, 144), valueRange), $clone(new valueRange.ptr(13064, 145, 150), valueRange), $clone(new valueRange.ptr(12296, 151, 152), valueRange), $clone(new valueRange.ptr(13064, 153, 155), valueRange), $clone(new valueRange.ptr(8, 156, 191), valueRange), $clone(new valueRange.ptr(0, 10, 0), valueRange), $clone(new valueRange.ptr(8, 128, 137), valueRange), $clone(new valueRange.ptr(13064, 138, 150), valueRange), $clone(new valueRange.ptr(12296, 151, 151), valueRange), $clone(new valueRange.ptr(13064, 152, 152), valueRange), $clone(new valueRange.ptr(15112, 153, 153), valueRange), $clone(new valueRange.ptr(24, 154, 156), valueRange), $clone(new valueRange.ptr(8, 157, 157), valueRange), $clone(new valueRange.ptr(24, 158, 162), valueRange), $clone(new valueRange.ptr(64, 163, 175), valueRange), $clone(new valueRange.ptr(8, 176, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(8, 128, 184), valueRange), $clone(new valueRange.ptr(64, 185, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(24, 128, 137), valueRange), $clone(new valueRange.ptr(64, 138, 191), valueRange), $clone(new valueRange.ptr(0, 9, 0), valueRange), $clone(new valueRange.ptr(8, 128, 136), valueRange), $clone(new valueRange.ptr(64, 137, 137), valueRange), $clone(new valueRange.ptr(8, 138, 174), valueRange), $clone(new valueRange.ptr(12296, 175, 175), valueRange), $clone(new valueRange.ptr(13064, 176, 182), valueRange), $clone(new valueRange.ptr(64, 183, 183), valueRange), $clone(new valueRange.ptr(13064, 184, 189), valueRange), $clone(new valueRange.ptr(12296, 190, 190), valueRange), $clone(new valueRange.ptr(15112, 191, 191), valueRange), $clone(new valueRange.ptr(0, 8, 0), valueRange), $clone(new valueRange.ptr(8, 128, 128), valueRange), $clone(new valueRange.ptr(24, 129, 133), valueRange), $clone(new valueRange.ptr(64, 134, 143), valueRange), $clone(new valueRange.ptr(8, 144, 153), valueRange), $clone(new valueRange.ptr(24, 154, 172), valueRange), $clone(new valueRange.ptr(64, 173, 175), valueRange), $clone(new valueRange.ptr(24, 176, 177), valueRange), $clone(new valueRange.ptr(8, 178, 191), valueRange), $clone(new valueRange.ptr(0, 11, 0), valueRange), $clone(new valueRange.ptr(8, 128, 143), valueRange), $clone(new valueRange.ptr(64, 144, 145), valueRange), $clone(new valueRange.ptr(13064, 146, 167), valueRange), $clone(new valueRange.ptr(64, 168, 168), valueRange), $clone(new valueRange.ptr(12296, 169, 169), valueRange), $clone(new valueRange.ptr(13064, 170, 176), valueRange), $clone(new valueRange.ptr(12296, 177, 177), valueRange), $clone(new valueRange.ptr(13064, 178, 179), valueRange), $clone(new valueRange.ptr(12296, 180, 180), valueRange), $clone(new valueRange.ptr(13064, 181, 182), valueRange), $clone(new valueRange.ptr(64, 183, 191), valueRange), $clone(new valueRange.ptr(0, 12, 0), valueRange), $clone(new valueRange.ptr(8, 128, 134), valueRange), $clone(new valueRange.ptr(64, 135, 135), valueRange), $clone(new valueRange.ptr(8, 136, 137), valueRange), $clone(new valueRange.ptr(64, 138, 138), valueRange), $clone(new valueRange.ptr(8, 139, 176), valueRange), $clone(new valueRange.ptr(13064, 177, 182), valueRange), $clone(new valueRange.ptr(64, 183, 185), valueRange), $clone(new valueRange.ptr(13064, 186, 186), valueRange), $clone(new valueRange.ptr(64, 187, 187), valueRange), $clone(new valueRange.ptr(13064, 188, 189), valueRange), $clone(new valueRange.ptr(64, 190, 190), valueRange), $clone(new valueRange.ptr(13064, 191, 191), valueRange), $clone(new valueRange.ptr(0, 12, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 131), valueRange), $clone(new valueRange.ptr(15112, 132, 133), valueRange), $clone(new valueRange.ptr(8, 134, 134), valueRange), $clone(new valueRange.ptr(13064, 135, 135), valueRange), $clone(new valueRange.ptr(64, 136, 143), valueRange), $clone(new valueRange.ptr(8, 144, 153), valueRange), $clone(new valueRange.ptr(64, 154, 159), valueRange), $clone(new valueRange.ptr(8, 160, 165), valueRange), $clone(new valueRange.ptr(64, 166, 166), valueRange), $clone(new valueRange.ptr(8, 167, 168), valueRange), $clone(new valueRange.ptr(64, 169, 169), valueRange), $clone(new valueRange.ptr(8, 170, 191), valueRange), $clone(new valueRange.ptr(0, 13, 0), valueRange), $clone(new valueRange.ptr(8, 128, 137), valueRange), $clone(new valueRange.ptr(12296, 138, 142), valueRange), $clone(new valueRange.ptr(64, 143, 143), valueRange), $clone(new valueRange.ptr(13064, 144, 145), valueRange), $clone(new valueRange.ptr(64, 146, 146), valueRange), $clone(new valueRange.ptr(12296, 147, 148), valueRange), $clone(new valueRange.ptr(13064, 149, 149), valueRange), $clone(new valueRange.ptr(12296, 150, 150), valueRange), $clone(new valueRange.ptr(15112, 151, 151), valueRange), $clone(new valueRange.ptr(8, 152, 152), valueRange), $clone(new valueRange.ptr(64, 153, 159), valueRange), $clone(new valueRange.ptr(8, 160, 169), valueRange), $clone(new valueRange.ptr(64, 170, 191), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(64, 128, 159), valueRange), $clone(new valueRange.ptr(8, 160, 178), valueRange), $clone(new valueRange.ptr(13064, 179, 180), valueRange), $clone(new valueRange.ptr(12296, 181, 182), valueRange), $clone(new valueRange.ptr(24, 183, 184), valueRange), $clone(new valueRange.ptr(64, 185, 191), valueRange), $clone(new valueRange.ptr(0, 10, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 129), valueRange), $clone(new valueRange.ptr(8, 130, 130), valueRange), $clone(new valueRange.ptr(12296, 131, 131), valueRange), $clone(new valueRange.ptr(8, 132, 144), valueRange), $clone(new valueRange.ptr(64, 145, 145), valueRange), $clone(new valueRange.ptr(8, 146, 179), valueRange), $clone(new valueRange.ptr(12296, 180, 181), valueRange), $clone(new valueRange.ptr(13064, 182, 186), valueRange), $clone(new valueRange.ptr(64, 187, 189), valueRange), $clone(new valueRange.ptr(12296, 190, 191), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 128), valueRange), $clone(new valueRange.ptr(14344, 129, 129), valueRange), $clone(new valueRange.ptr(15112, 130, 130), valueRange), $clone(new valueRange.ptr(24, 131, 143), valueRange), $clone(new valueRange.ptr(8, 144, 153), valueRange), $clone(new valueRange.ptr(64, 154, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(64, 128, 175), valueRange), $clone(new valueRange.ptr(8, 176, 176), valueRange), $clone(new valueRange.ptr(64, 177, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(24, 128, 177), valueRange), $clone(new valueRange.ptr(64, 178, 190), valueRange), $clone(new valueRange.ptr(24, 191, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(8, 128, 153), valueRange), $clone(new valueRange.ptr(64, 154, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(24, 128, 174), valueRange), $clone(new valueRange.ptr(64, 175, 175), valueRange), $clone(new valueRange.ptr(24, 176, 180), valueRange), $clone(new valueRange.ptr(64, 181, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(8, 128, 131), valueRange), $clone(new valueRange.ptr(64, 132, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(64, 128, 143), valueRange), $clone(new valueRange.ptr(8, 144, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(8, 128, 176), valueRange), $clone(new valueRange.ptr(24, 177, 178), valueRange), $clone(new valueRange.ptr(64, 179, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(8, 128, 175), valueRange), $clone(new valueRange.ptr(832, 176, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 128), valueRange), $clone(new valueRange.ptr(8, 129, 134), valueRange), $clone(new valueRange.ptr(13064, 135, 149), valueRange), $clone(new valueRange.ptr(64, 150, 191), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(8, 128, 158), valueRange), $clone(new valueRange.ptr(64, 159, 159), valueRange), $clone(new valueRange.ptr(8, 160, 169), valueRange), $clone(new valueRange.ptr(64, 170, 173), valueRange), $clone(new valueRange.ptr(24, 174, 175), valueRange), $clone(new valueRange.ptr(8, 176, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(8, 128, 190), valueRange), $clone(new valueRange.ptr(64, 191, 191), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(8, 128, 137), valueRange), $clone(new valueRange.ptr(64, 138, 143), valueRange), $clone(new valueRange.ptr(8, 144, 173), valueRange), $clone(new valueRange.ptr(64, 174, 175), valueRange), $clone(new valueRange.ptr(13064, 176, 180), valueRange), $clone(new valueRange.ptr(24, 181, 181), valueRange), $clone(new valueRange.ptr(64, 182, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(8, 128, 175), valueRange), $clone(new valueRange.ptr(13064, 176, 182), valueRange), $clone(new valueRange.ptr(24, 183, 191), valueRange), $clone(new valueRange.ptr(0, 10, 0), valueRange), $clone(new valueRange.ptr(8, 128, 131), valueRange), $clone(new valueRange.ptr(24, 132, 133), valueRange), $clone(new valueRange.ptr(64, 134, 143), valueRange), $clone(new valueRange.ptr(8, 144, 153), valueRange), $clone(new valueRange.ptr(64, 154, 154), valueRange), $clone(new valueRange.ptr(24, 155, 161), valueRange), $clone(new valueRange.ptr(64, 162, 162), valueRange), $clone(new valueRange.ptr(8, 163, 183), valueRange), $clone(new valueRange.ptr(64, 184, 188), valueRange), $clone(new valueRange.ptr(8, 189, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(8, 128, 143), valueRange), $clone(new valueRange.ptr(64, 144, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(57605, 128, 159), valueRange), $clone(new valueRange.ptr(8, 160, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(24, 128, 154), valueRange), $clone(new valueRange.ptr(64, 155, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(8, 128, 138), valueRange), $clone(new valueRange.ptr(64, 139, 142), valueRange), $clone(new valueRange.ptr(13064, 143, 143), valueRange), $clone(new valueRange.ptr(8, 144, 144), valueRange), $clone(new valueRange.ptr(12296, 145, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(12296, 128, 135), valueRange), $clone(new valueRange.ptr(64, 136, 142), valueRange), $clone(new valueRange.ptr(13064, 143, 146), valueRange), $clone(new valueRange.ptr(8, 147, 159), valueRange), $clone(new valueRange.ptr(64, 160, 191), valueRange), $clone(new valueRange.ptr(0, 8, 0), valueRange), $clone(new valueRange.ptr(64, 128, 159), valueRange), $clone(new valueRange.ptr(8, 160, 161), valueRange), $clone(new valueRange.ptr(24, 162, 162), valueRange), $clone(new valueRange.ptr(8, 163, 163), valueRange), $clone(new valueRange.ptr(13064, 164, 164), valueRange), $clone(new valueRange.ptr(64, 165, 175), valueRange), $clone(new valueRange.ptr(12296, 176, 177), valueRange), $clone(new valueRange.ptr(64, 178, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(8, 128, 183), valueRange), $clone(new valueRange.ptr(64, 184, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(8, 128, 149), valueRange), $clone(new valueRange.ptr(64, 150, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(8, 128, 136), valueRange), $clone(new valueRange.ptr(64, 137, 191), valueRange), $clone(new valueRange.ptr(0, 7, 0), valueRange), $clone(new valueRange.ptr(64, 128, 175), valueRange), $clone(new valueRange.ptr(8, 176, 179), valueRange), $clone(new valueRange.ptr(64, 180, 180), valueRange), $clone(new valueRange.ptr(8, 181, 187), valueRange), $clone(new valueRange.ptr(64, 188, 188), valueRange), $clone(new valueRange.ptr(8, 189, 190), valueRange), $clone(new valueRange.ptr(64, 191, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(8, 128, 162), valueRange), $clone(new valueRange.ptr(64, 163, 177), valueRange), $clone(new valueRange.ptr(8, 178, 178), valueRange), $clone(new valueRange.ptr(64, 179, 191), valueRange), $clone(new valueRange.ptr(0, 8, 0), valueRange), $clone(new valueRange.ptr(64, 128, 143), valueRange), $clone(new valueRange.ptr(8, 144, 146), valueRange), $clone(new valueRange.ptr(64, 147, 148), valueRange), $clone(new valueRange.ptr(8, 149, 149), valueRange), $clone(new valueRange.ptr(64, 150, 163), valueRange), $clone(new valueRange.ptr(8, 164, 167), valueRange), $clone(new valueRange.ptr(64, 168, 175), valueRange), $clone(new valueRange.ptr(8, 176, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(8, 128, 187), valueRange), $clone(new valueRange.ptr(64, 188, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(8, 128, 170), valueRange), $clone(new valueRange.ptr(64, 171, 175), valueRange), $clone(new valueRange.ptr(8, 176, 188), valueRange), $clone(new valueRange.ptr(64, 189, 191), valueRange), $clone(new valueRange.ptr(0, 9, 0), valueRange), $clone(new valueRange.ptr(8, 128, 136), valueRange), $clone(new valueRange.ptr(64, 137, 143), valueRange), $clone(new valueRange.ptr(8, 144, 153), valueRange), $clone(new valueRange.ptr(64, 154, 155), valueRange), $clone(new valueRange.ptr(24, 156, 156), valueRange), $clone(new valueRange.ptr(13064, 157, 158), valueRange), $clone(new valueRange.ptr(24, 159, 159), valueRange), $clone(new valueRange.ptr(960, 160, 163), valueRange), $clone(new valueRange.ptr(64, 164, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 173), valueRange), $clone(new valueRange.ptr(64, 174, 175), valueRange), $clone(new valueRange.ptr(13064, 176, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 134), valueRange), $clone(new valueRange.ptr(64, 135, 143), valueRange), $clone(new valueRange.ptr(24, 144, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(24, 128, 131), valueRange), $clone(new valueRange.ptr(64, 132, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(24, 128, 181), valueRange), $clone(new valueRange.ptr(64, 182, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(24, 128, 166), valueRange), $clone(new valueRange.ptr(64, 167, 168), valueRange), $clone(new valueRange.ptr(24, 169, 191), valueRange), $clone(new valueRange.ptr(0, 14, 0), valueRange), $clone(new valueRange.ptr(24, 128, 157), valueRange), $clone(new valueRange.ptr(9081, 158, 158), valueRange), $clone(new valueRange.ptr(9089, 159, 159), valueRange), $clone(new valueRange.ptr(9097, 160, 160), valueRange), $clone(new valueRange.ptr(9105, 161, 161), valueRange), $clone(new valueRange.ptr(9113, 162, 162), valueRange), $clone(new valueRange.ptr(9121, 163, 163), valueRange), $clone(new valueRange.ptr(9129, 164, 164), valueRange), $clone(new valueRange.ptr(12312, 165, 166), valueRange), $clone(new valueRange.ptr(13080, 167, 169), valueRange), $clone(new valueRange.ptr(24, 170, 172), valueRange), $clone(new valueRange.ptr(12312, 173, 178), valueRange), $clone(new valueRange.ptr(832, 179, 186), valueRange), $clone(new valueRange.ptr(13080, 187, 191), valueRange), $clone(new valueRange.ptr(0, 11, 0), valueRange), $clone(new valueRange.ptr(13080, 128, 130), valueRange), $clone(new valueRange.ptr(24, 131, 132), valueRange), $clone(new valueRange.ptr(13080, 133, 139), valueRange), $clone(new valueRange.ptr(24, 140, 169), valueRange), $clone(new valueRange.ptr(13080, 170, 173), valueRange), $clone(new valueRange.ptr(24, 174, 186), valueRange), $clone(new valueRange.ptr(9137, 187, 187), valueRange), $clone(new valueRange.ptr(9145, 188, 188), valueRange), $clone(new valueRange.ptr(9153, 189, 189), valueRange), $clone(new valueRange.ptr(9161, 190, 190), valueRange), $clone(new valueRange.ptr(9169, 191, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(9177, 128, 128), valueRange), $clone(new valueRange.ptr(24, 129, 170), valueRange), $clone(new valueRange.ptr(64, 171, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(24, 128, 129), valueRange), $clone(new valueRange.ptr(13080, 130, 132), valueRange), $clone(new valueRange.ptr(24, 133, 133), valueRange), $clone(new valueRange.ptr(64, 134, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(24, 128, 147), valueRange), $clone(new valueRange.ptr(64, 148, 159), valueRange), $clone(new valueRange.ptr(24, 160, 179), valueRange), $clone(new valueRange.ptr(64, 180, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(24, 128, 150), valueRange), $clone(new valueRange.ptr(64, 151, 159), valueRange), $clone(new valueRange.ptr(24, 160, 184), valueRange), $clone(new valueRange.ptr(64, 185, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 182), valueRange), $clone(new valueRange.ptr(24, 183, 186), valueRange), $clone(new valueRange.ptr(13064, 187, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(13064, 128, 172), valueRange), $clone(new valueRange.ptr(24, 173, 180), valueRange), $clone(new valueRange.ptr(13064, 181, 181), valueRange), $clone(new valueRange.ptr(24, 182, 191), valueRange), $clone(new valueRange.ptr(0, 8, 0), valueRange), $clone(new valueRange.ptr(24, 128, 131), valueRange), $clone(new valueRange.ptr(13064, 132, 132), valueRange), $clone(new valueRange.ptr(24, 133, 139), valueRange), $clone(new valueRange.ptr(64, 140, 154), valueRange), $clone(new valueRange.ptr(13064, 155, 159), valueRange), $clone(new valueRange.ptr(64, 160, 160), valueRange), $clone(new valueRange.ptr(13064, 161, 175), valueRange), $clone(new valueRange.ptr(64, 176, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(8, 128, 158), valueRange), $clone(new valueRange.ptr(64, 159, 164), valueRange), $clone(new valueRange.ptr(8, 165, 170), valueRange), $clone(new valueRange.ptr(64, 171, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(64, 128, 142), valueRange), $clone(new valueRange.ptr(13064, 143, 143), valueRange), $clone(new valueRange.ptr(64, 144, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(8, 128, 172), valueRange), $clone(new valueRange.ptr(64, 173, 175), valueRange), $clone(new valueRange.ptr(13064, 176, 182), valueRange), $clone(new valueRange.ptr(8, 183, 189), valueRange), $clone(new valueRange.ptr(64, 190, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(8, 128, 137), valueRange), $clone(new valueRange.ptr(64, 138, 141), valueRange), $clone(new valueRange.ptr(8, 142, 142), valueRange), $clone(new valueRange.ptr(24, 143, 143), valueRange), $clone(new valueRange.ptr(64, 144, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(64, 128, 143), valueRange), $clone(new valueRange.ptr(8, 144, 173), valueRange), $clone(new valueRange.ptr(13064, 174, 174), valueRange), $clone(new valueRange.ptr(64, 175, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(8, 128, 171), valueRange), $clone(new valueRange.ptr(13064, 172, 175), valueRange), $clone(new valueRange.ptr(8, 176, 185), valueRange), $clone(new valueRange.ptr(64, 186, 190), valueRange), $clone(new valueRange.ptr(24, 191, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(64, 128, 143), valueRange), $clone(new valueRange.ptr(8, 144, 171), valueRange), $clone(new valueRange.ptr(13064, 172, 175), valueRange), $clone(new valueRange.ptr(8, 176, 185), valueRange), $clone(new valueRange.ptr(64, 186, 191), valueRange), $clone(new valueRange.ptr(0, 9, 0), valueRange), $clone(new valueRange.ptr(64, 128, 159), valueRange), $clone(new valueRange.ptr(8, 160, 166), valueRange), $clone(new valueRange.ptr(64, 167, 167), valueRange), $clone(new valueRange.ptr(8, 168, 171), valueRange), $clone(new valueRange.ptr(64, 172, 172), valueRange), $clone(new valueRange.ptr(8, 173, 174), valueRange), $clone(new valueRange.ptr(64, 175, 175), valueRange), $clone(new valueRange.ptr(8, 176, 190), valueRange), $clone(new valueRange.ptr(64, 191, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(2056, 128, 132), valueRange), $clone(new valueRange.ptr(64, 133, 134), valueRange), $clone(new valueRange.ptr(2072, 135, 143), valueRange), $clone(new valueRange.ptr(13064, 144, 150), valueRange), $clone(new valueRange.ptr(64, 151, 191), valueRange), $clone(new valueRange.ptr(0, 8, 0), valueRange), $clone(new valueRange.ptr(2568, 128, 131), valueRange), $clone(new valueRange.ptr(13064, 132, 138), valueRange), $clone(new valueRange.ptr(2824, 139, 139), valueRange), $clone(new valueRange.ptr(64, 140, 143), valueRange), $clone(new valueRange.ptr(2056, 144, 153), valueRange), $clone(new valueRange.ptr(64, 154, 157), valueRange), $clone(new valueRange.ptr(2072, 158, 159), valueRange), $clone(new valueRange.ptr(64, 160, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(64, 128, 176), valueRange), $clone(new valueRange.ptr(2072, 177, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(2072, 128, 180), valueRange), $clone(new valueRange.ptr(64, 181, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(64, 128, 128), valueRange), $clone(new valueRange.ptr(2072, 129, 189), valueRange), $clone(new valueRange.ptr(64, 190, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(64, 128, 175), valueRange), $clone(new valueRange.ptr(24, 176, 177), valueRange), $clone(new valueRange.ptr(64, 178, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(24, 128, 171), valueRange), $clone(new valueRange.ptr(64, 172, 175), valueRange), $clone(new valueRange.ptr(24, 176, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(24, 128, 147), valueRange), $clone(new valueRange.ptr(64, 148, 159), valueRange), $clone(new valueRange.ptr(24, 160, 174), valueRange), $clone(new valueRange.ptr(64, 175, 176), valueRange), $clone(new valueRange.ptr(24, 177, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(64, 128, 128), valueRange), $clone(new valueRange.ptr(24, 129, 143), valueRange), $clone(new valueRange.ptr(64, 144, 144), valueRange), $clone(new valueRange.ptr(24, 145, 181), valueRange), $clone(new valueRange.ptr(64, 182, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(24, 128, 143), valueRange), $clone(new valueRange.ptr(9993, 144, 144), valueRange), $clone(new valueRange.ptr(24, 145, 173), valueRange), $clone(new valueRange.ptr(64, 174, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(64, 128, 165), valueRange), $clone(new valueRange.ptr(24, 166, 191), valueRange), $clone(new valueRange.ptr(0, 15, 0), valueRange), $clone(new valueRange.ptr(10377, 128, 128), valueRange), $clone(new valueRange.ptr(10385, 129, 129), valueRange), $clone(new valueRange.ptr(10393, 130, 130), valueRange), $clone(new valueRange.ptr(10401, 131, 131), valueRange), $clone(new valueRange.ptr(10409, 132, 132), valueRange), $clone(new valueRange.ptr(10417, 133, 133), valueRange), $clone(new valueRange.ptr(10425, 134, 134), valueRange), $clone(new valueRange.ptr(10433, 135, 135), valueRange), $clone(new valueRange.ptr(10441, 136, 136), valueRange), $clone(new valueRange.ptr(64, 137, 143), valueRange), $clone(new valueRange.ptr(10449, 144, 144), valueRange), $clone(new valueRange.ptr(10457, 145, 145), valueRange), $clone(new valueRange.ptr(64, 146, 159), valueRange), $clone(new valueRange.ptr(24, 160, 165), valueRange), $clone(new valueRange.ptr(64, 166, 191), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(24, 128, 151), valueRange), $clone(new valueRange.ptr(64, 152, 155), valueRange), $clone(new valueRange.ptr(24, 156, 172), valueRange), $clone(new valueRange.ptr(64, 173, 175), valueRange), $clone(new valueRange.ptr(24, 176, 188), valueRange), $clone(new valueRange.ptr(64, 189, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(24, 128, 182), valueRange), $clone(new valueRange.ptr(64, 183, 186), valueRange), $clone(new valueRange.ptr(24, 187, 191), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(24, 128, 153), valueRange), $clone(new valueRange.ptr(64, 154, 159), valueRange), $clone(new valueRange.ptr(24, 160, 171), valueRange), $clone(new valueRange.ptr(64, 172, 175), valueRange), $clone(new valueRange.ptr(24, 176, 176), valueRange), $clone(new valueRange.ptr(64, 177, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(24, 128, 139), valueRange), $clone(new valueRange.ptr(64, 140, 143), valueRange), $clone(new valueRange.ptr(24, 144, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(24, 128, 135), valueRange), $clone(new valueRange.ptr(64, 136, 143), valueRange), $clone(new valueRange.ptr(24, 144, 153), valueRange), $clone(new valueRange.ptr(64, 154, 159), valueRange), $clone(new valueRange.ptr(24, 160, 191), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(24, 128, 135), valueRange), $clone(new valueRange.ptr(64, 136, 143), valueRange), $clone(new valueRange.ptr(24, 144, 173), valueRange), $clone(new valueRange.ptr(64, 174, 175), valueRange), $clone(new valueRange.ptr(24, 176, 177), valueRange), $clone(new valueRange.ptr(64, 178, 191), valueRange), $clone(new valueRange.ptr(0, 6, 0), valueRange), $clone(new valueRange.ptr(24, 128, 147), valueRange), $clone(new valueRange.ptr(64, 148, 159), valueRange), $clone(new valueRange.ptr(24, 160, 173), valueRange), $clone(new valueRange.ptr(64, 174, 175), valueRange), $clone(new valueRange.ptr(24, 176, 188), valueRange), $clone(new valueRange.ptr(64, 189, 191), valueRange), $clone(new valueRange.ptr(0, 5, 0), valueRange), $clone(new valueRange.ptr(24, 128, 136), valueRange), $clone(new valueRange.ptr(64, 137, 143), valueRange), $clone(new valueRange.ptr(24, 144, 189), valueRange), $clone(new valueRange.ptr(64, 190, 190), valueRange), $clone(new valueRange.ptr(24, 191, 191), valueRange), $clone(new valueRange.ptr(0, 8, 0), valueRange), $clone(new valueRange.ptr(24, 128, 133), valueRange), $clone(new valueRange.ptr(64, 134, 141), valueRange), $clone(new valueRange.ptr(24, 142, 155), valueRange), $clone(new valueRange.ptr(64, 156, 159), valueRange), $clone(new valueRange.ptr(24, 160, 168), valueRange), $clone(new valueRange.ptr(64, 169, 175), valueRange), $clone(new valueRange.ptr(24, 176, 184), valueRange), $clone(new valueRange.ptr(64, 185, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(24, 128, 146), valueRange), $clone(new valueRange.ptr(64, 147, 147), valueRange), $clone(new valueRange.ptr(24, 148, 191), valueRange), $clone(new valueRange.ptr(0, 13, 0), valueRange), $clone(new valueRange.ptr(24, 128, 138), valueRange), $clone(new valueRange.ptr(64, 139, 175), valueRange), $clone(new valueRange.ptr(1761, 176, 176), valueRange), $clone(new valueRange.ptr(73, 177, 177), valueRange), $clone(new valueRange.ptr(41, 178, 178), valueRange), $clone(new valueRange.ptr(49, 179, 179), valueRange), $clone(new valueRange.ptr(1769, 180, 180), valueRange), $clone(new valueRange.ptr(1777, 181, 181), valueRange), $clone(new valueRange.ptr(1785, 182, 182), valueRange), $clone(new valueRange.ptr(1793, 183, 183), valueRange), $clone(new valueRange.ptr(1801, 184, 184), valueRange), $clone(new valueRange.ptr(1809, 185, 185), valueRange), $clone(new valueRange.ptr(64, 186, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(8, 128, 159), valueRange), $clone(new valueRange.ptr(64, 160, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(8, 128, 185), valueRange), $clone(new valueRange.ptr(64, 186, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(8, 128, 157), valueRange), $clone(new valueRange.ptr(64, 158, 159), valueRange), $clone(new valueRange.ptr(8, 160, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(8, 128, 161), valueRange), $clone(new valueRange.ptr(64, 162, 175), valueRange), $clone(new valueRange.ptr(8, 176, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(8, 128, 160), valueRange), $clone(new valueRange.ptr(64, 161, 191), valueRange), $clone(new valueRange.ptr(0, 3, 0), valueRange), $clone(new valueRange.ptr(8, 128, 138), valueRange), $clone(new valueRange.ptr(64, 139, 143), valueRange), $clone(new valueRange.ptr(8, 144, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(8, 128, 175), valueRange), $clone(new valueRange.ptr(64, 176, 191), valueRange), $clone(new valueRange.ptr(0, 4, 0), valueRange), $clone(new valueRange.ptr(64, 128, 128), valueRange), $clone(new valueRange.ptr(832, 129, 129), valueRange), $clone(new valueRange.ptr(64, 130, 159), valueRange), $clone(new valueRange.ptr(832, 160, 191), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(832, 128, 191), valueRange), $clone(new valueRange.ptr(0, 1, 0), valueRange), $clone(new valueRange.ptr(13248, 128, 191), valueRange), $clone(new valueRange.ptr(0, 2, 0), valueRange), $clone(new valueRange.ptr(13248, 128, 175), valueRange), $clone(new valueRange.ptr(64, 176, 191), valueRange)]); idnaSparse = new sparseBlocks.ptr(new sliceType$1(idnaSparseValues), idnaSparseOffset); punycode = new Profile.ptr(new options.ptr(false, false, false, false, false, false, ptrType.nil, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError)); $pkg.Punycode = punycode; - joinStates = new sliceType$2([$clone($toNativeArray($kindInt8, [0, 2, 2, 0, 0, 5, 5, 1]), arrayType), $clone($toNativeArray($kindInt8, [0, 2, 2, 0, 0, 0, 0, 0]), arrayType), $clone($toNativeArray($kindInt8, [0, 2, 2, 2, 0, 5, 4, 3]), arrayType), $clone($toNativeArray($kindInt8, [0, 2, 2, 2, 0, 0, 0, 0]), arrayType), $clone($toNativeArray($kindInt8, [0, 5, 2, 4, 0, 5, 5, 4]), arrayType), $clone($toNativeArray($kindInt8, [5, 5, 5, 5, 5, 5, 5, 5]), arrayType)]); lookup = new Profile.ptr($clone(new options.ptr(false, true, true, true, false, false, trie, validateFromPunycode, validateAndMap, bidirule.ValidString), options)); $pkg.Lookup = lookup; + joinStates = new sliceType$2([$clone($toNativeArray($kindInt8, [0, 2, 2, 0, 0, 5, 5, 1]), arrayType), $clone($toNativeArray($kindInt8, [0, 2, 2, 0, 0, 0, 0, 0]), arrayType), $clone($toNativeArray($kindInt8, [0, 2, 2, 2, 0, 5, 4, 3]), arrayType), $clone($toNativeArray($kindInt8, [0, 2, 2, 2, 0, 0, 0, 0]), arrayType), $clone($toNativeArray($kindInt8, [0, 5, 2, 4, 0, 5, 5, 4]), arrayType), $clone($toNativeArray($kindInt8, [5, 5, 5, 5, 5, 5, 5, 5]), arrayType)]); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; @@ -274029,7 +276535,7 @@ $packages["vendor/golang.org/x/net/http/httpproxy"] = (function() { return $pkg; })(); $packages["vendor/golang.org/x/net/http2/hpack"] = (function() { - var $pkg = {}, $init, bytes, errors, fmt, io, sync, headerFieldTable, pairNameValue, incomparable, node, DecodingError, InvalidIndexError, HeaderField, Decoder, dynamicTable, indexType, undecodedString, Encoder, ptrType, sliceType, sliceType$1, sliceType$2, ptrType$1, arrayType, ptrType$2, funcType, arrayType$1, arrayType$2, ptrType$3, mapType, mapType$1, funcType$1, ptrType$4, ptrType$5, ptrType$6, buildRootOnce, lazyRootHuffmanNode, huffmanCodes, huffmanCodeLen, staticTable, bufPool, errNeedMore, errVarintOverflow, huffmanDecode, newInternalNode, getRootHuffmanNode, buildRootHuffmanNode, AppendHuffmanString, HuffmanEncodeLength, NewDecoder, readVarInt, NewEncoder, appendIndexed, appendNewName, appendIndexedName, appendTableSize, appendVarInt, appendHpackString, encodeTypeByte; + var $pkg = {}, $init, bytes, errors, fmt, io, sync, headerFieldTable, pairNameValue, incomparable, node, DecodingError, InvalidIndexError, HeaderField, Decoder, dynamicTable, indexType, undecodedString, Encoder, ptrType, sliceType, sliceType$1, sliceType$2, ptrType$1, arrayType, ptrType$2, funcType, arrayType$1, arrayType$2, ptrType$3, ptrType$4, mapType, mapType$1, funcType$1, ptrType$5, ptrType$6, ptrType$7, buildRootOnce, lazyRootHuffmanNode, huffmanCodes, huffmanCodeLen, staticTable, bufPool, errNeedMore, errVarintOverflow, huffmanDecode, newInternalNode, getRootHuffmanNode, buildRootHuffmanNode, AppendHuffmanString, HuffmanEncodeLength, NewDecoder, readVarInt, NewEncoder, appendIndexed, appendNewName, appendIndexedName, appendTableSize, appendVarInt, appendHpackString, encodeTypeByte; bytes = $packages["bytes"]; errors = $packages["errors"]; fmt = $packages["fmt"]; @@ -274181,13 +276687,14 @@ $packages["vendor/golang.org/x/net/http2/hpack"] = (function() { funcType = $funcType([], [], false); arrayType$1 = $arrayType(funcType, 0); arrayType$2 = $arrayType(node, 256); - ptrType$3 = $ptrType(headerFieldTable); + ptrType$3 = $ptrType(arrayType$2); + ptrType$4 = $ptrType(headerFieldTable); mapType = $mapType($String, $Uint64); mapType$1 = $mapType(pairNameValue, $Uint64); funcType$1 = $funcType([HeaderField], [], false); - ptrType$4 = $ptrType(Decoder); - ptrType$5 = $ptrType(dynamicTable); - ptrType$6 = $ptrType(Encoder); + ptrType$5 = $ptrType(Decoder); + ptrType$6 = $ptrType(dynamicTable); + ptrType$7 = $ptrType(Encoder); $ptrType(headerFieldTable).prototype.init = function init() { var t; t = this; @@ -274305,7 +276812,7 @@ $packages["vendor/golang.org/x/net/http2/hpack"] = (function() { /* */ } return; } var $f = {$blk: idToIndex, $c: true, $r, _r, id, k, t, x, x$1, x$2, x$3, $s};return $f; }; huffmanDecode = function huffmanDecode$1(buf, maxLen, v) { - var {_i, _r, _ref, _tmp, _tmp$1, _tmp$2, b, buf, cbits, cur, idx, mask, maxLen, n, rootHuffmanNode, sbits, v, x, x$1, x$2, y, y$1, y$2, $s, $r, $c} = $restore(this, {buf, maxLen, v}); + var {_i, _r, _ref, _tmp, _tmp$1, _tmp$2, b, buf, cbits, cur, idx, mask, maxLen, n, rootHuffmanNode, sbits, v, x, x$1, x$2, x$3, x$4, y, y$1, y$2, $s, $r, $c} = $restore(this, {buf, maxLen, v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: _r = getRootHuffmanNode(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } rootHuffmanNode = _r; @@ -274327,7 +276834,7 @@ $packages["vendor/golang.org/x/net/http2/hpack"] = (function() { while (true) { if (!(cbits >= 8)) { break; } idx = ((((y = ((cbits - 8 << 24 >>> 24)), y < 32 ? (cur >>> y) : 0) >>> 0) << 24 >>> 24)); - n = (x = n.children, ((idx < 0 || idx >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[idx])); + n = (x = (x$1 = n.children, (x$1 === ptrType$2.nil && $throwNilPointerError(), x$1)), ((idx < 0 || idx >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[idx])); if (n === ptrType.nil) { $s = -1; return $pkg.ErrInvalidHuffman; } @@ -274347,7 +276854,7 @@ $packages["vendor/golang.org/x/net/http2/hpack"] = (function() { } while (true) { if (!(cbits > 0)) { break; } - n = (x$1 = n.children, x$2 = ((((y$1 = ((8 - cbits << 24 >>> 24)), y$1 < 32 ? (cur << y$1) : 0) >>> 0) << 24 >>> 24)), ((x$2 < 0 || x$2 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$2])); + n = (x$2 = (x$3 = n.children, (x$3 === ptrType$2.nil && $throwNilPointerError(), x$3)), x$4 = ((((y$1 = ((8 - cbits << 24 >>> 24)), y$1 < 32 ? (cur << y$1) : 0) >>> 0) << 24 >>> 24)), ((x$4 < 0 || x$4 >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[x$4])); if (n === ptrType.nil) { $s = -1; return $pkg.ErrInvalidHuffman; } @@ -274370,7 +276877,7 @@ $packages["vendor/golang.org/x/net/http2/hpack"] = (function() { $s = -1; return $pkg.ErrInvalidHuffman; } $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: huffmanDecode$1, $c: true, $r, _i, _r, _ref, _tmp, _tmp$1, _tmp$2, b, buf, cbits, cur, idx, mask, maxLen, n, rootHuffmanNode, sbits, v, x, x$1, x$2, y, y$1, y$2, $s};return $f; + /* */ } return; } var $f = {$blk: huffmanDecode$1, $c: true, $r, _i, _r, _ref, _tmp, _tmp$1, _tmp$2, b, buf, cbits, cur, idx, mask, maxLen, n, rootHuffmanNode, sbits, v, x, x$1, x$2, x$3, x$4, y, y$1, y$2, $s};return $f; }; newInternalNode = function newInternalNode$1() { return new node.ptr(arrayType$1.zero(), arrayType.zero(), 0, 0); @@ -274383,7 +276890,7 @@ $packages["vendor/golang.org/x/net/http2/hpack"] = (function() { /* */ } return; } var $f = {$blk: getRootHuffmanNode$1, $c: true, $r, $s};return $f; }; buildRootHuffmanNode = function buildRootHuffmanNode$1() { - var _i, _ref, _tmp, _tmp$1, code, codeLen, cur, end, i, i$1, leaves, shift, start, sym, x, x$1, x$2, x$3, x$4, x$5, x$6, y, y$1, y$2; + var _i, _ref, _tmp, _tmp$1, code, codeLen, cur, end, i, i$1, leaves, shift, start, sym, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, y, y$1, y$2; if (false) { $panic(new $String("unexpected size")); } @@ -274401,22 +276908,22 @@ $packages["vendor/golang.org/x/net/http2/hpack"] = (function() { if (!(codeLen > 8)) { break; } codeLen = codeLen - (8) << 24 >>> 24; i = ((((y = codeLen, y < 32 ? (code >>> y) : 0) >>> 0) << 24 >>> 24)); - if ((x = cur.children, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i])) === ptrType.nil) { - (x$1 = cur.children, x$1.nilCheck, ((i < 0 || i >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[i] = newInternalNode())); + if ((x = (x$1 = cur.children, (x$1 === ptrType$2.nil && $throwNilPointerError(), x$1)), ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i])) === ptrType.nil) { + (x$2 = cur.children, x$2.nilCheck, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i] = newInternalNode())); } - cur = (x$2 = cur.children, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i])); + cur = (x$3 = (x$4 = cur.children, (x$4 === ptrType$2.nil && $throwNilPointerError(), x$4)), ((i < 0 || i >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[i])); } shift = 8 - codeLen << 24 >>> 24; _tmp = ((((((y$1 = shift, y$1 < 32 ? (code << y$1) : 0) >>> 0) << 24 >>> 24)) >> 0)); _tmp$1 = (((y$2 = shift, y$2 < 32 ? (1 << y$2) : 0) >> 0)); start = _tmp; end = _tmp$1; - (x$3 = leaves, ((sym < 0 || sym >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[sym])).sym = ((sym << 24 >>> 24)); - (x$4 = leaves, ((sym < 0 || sym >= x$4.length) ? ($throwRuntimeError("index out of range"), undefined) : x$4[sym])).codeLen = codeLen; + (x$5 = (leaves === ptrType$3.nil && $throwNilPointerError(), leaves), ((sym < 0 || sym >= x$5.length) ? ($throwRuntimeError("index out of range"), undefined) : x$5[sym])).sym = ((sym << 24 >>> 24)); + (x$6 = (leaves === ptrType$3.nil && $throwNilPointerError(), leaves), ((sym < 0 || sym >= x$6.length) ? ($throwRuntimeError("index out of range"), undefined) : x$6[sym])).codeLen = codeLen; i$1 = start; while (true) { if (!(i$1 < (start + end >> 0))) { break; } - (x$6 = cur.children, x$6.nilCheck, ((i$1 < 0 || i$1 >= x$6.length) ? ($throwRuntimeError("index out of range"), undefined) : x$6[i$1] = (x$5 = leaves, ((sym < 0 || sym >= x$5.length) ? ($throwRuntimeError("index out of range"), undefined) : x$5[sym])))); + (x$7 = cur.children, x$7.nilCheck, ((i$1 < 0 || i$1 >= x$7.length) ? ($throwRuntimeError("index out of range"), undefined) : x$7[i$1] = ((sym < 0 || sym >= leaves.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(leaves, sym, ptrType)))); i$1 = i$1 + (1) >> 0; } _i++; @@ -275246,14 +277753,14 @@ $packages["vendor/golang.org/x/net/http2/hpack"] = (function() { } return 0; }; - ptrType$3.methods = [{prop: "init", name: "init", pkg: "vendor/golang.org/x/net/http2/hpack", typ: $funcType([], [], false)}, {prop: "len", name: "len", pkg: "vendor/golang.org/x/net/http2/hpack", typ: $funcType([], [$Int], false)}, {prop: "addEntry", name: "addEntry", pkg: "vendor/golang.org/x/net/http2/hpack", typ: $funcType([HeaderField], [], false)}, {prop: "evictOldest", name: "evictOldest", pkg: "vendor/golang.org/x/net/http2/hpack", typ: $funcType([$Int], [], false)}, {prop: "search", name: "search", pkg: "vendor/golang.org/x/net/http2/hpack", typ: $funcType([HeaderField], [$Uint64, $Bool], false)}, {prop: "idToIndex", name: "idToIndex", pkg: "vendor/golang.org/x/net/http2/hpack", typ: $funcType([$Uint64], [$Uint64], false)}]; + ptrType$4.methods = [{prop: "init", name: "init", pkg: "vendor/golang.org/x/net/http2/hpack", typ: $funcType([], [], false)}, {prop: "len", name: "len", pkg: "vendor/golang.org/x/net/http2/hpack", typ: $funcType([], [$Int], false)}, {prop: "addEntry", name: "addEntry", pkg: "vendor/golang.org/x/net/http2/hpack", typ: $funcType([HeaderField], [], false)}, {prop: "evictOldest", name: "evictOldest", pkg: "vendor/golang.org/x/net/http2/hpack", typ: $funcType([$Int], [], false)}, {prop: "search", name: "search", pkg: "vendor/golang.org/x/net/http2/hpack", typ: $funcType([HeaderField], [$Uint64, $Bool], false)}, {prop: "idToIndex", name: "idToIndex", pkg: "vendor/golang.org/x/net/http2/hpack", typ: $funcType([$Uint64], [$Uint64], false)}]; DecodingError.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; InvalidIndexError.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; HeaderField.methods = [{prop: "IsPseudo", name: "IsPseudo", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Uint32], false)}]; - ptrType$4.methods = [{prop: "SetMaxStringLength", name: "SetMaxStringLength", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "SetEmitFunc", name: "SetEmitFunc", pkg: "", typ: $funcType([funcType$1], [], false)}, {prop: "SetEmitEnabled", name: "SetEmitEnabled", pkg: "", typ: $funcType([$Bool], [], false)}, {prop: "EmitEnabled", name: "EmitEnabled", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "SetMaxDynamicTableSize", name: "SetMaxDynamicTableSize", pkg: "", typ: $funcType([$Uint32], [], false)}, {prop: "SetAllowedMaxDynamicTableSize", name: "SetAllowedMaxDynamicTableSize", pkg: "", typ: $funcType([$Uint32], [], false)}, {prop: "maxTableIndex", name: "maxTableIndex", pkg: "vendor/golang.org/x/net/http2/hpack", typ: $funcType([], [$Int], false)}, {prop: "at", name: "at", pkg: "vendor/golang.org/x/net/http2/hpack", typ: $funcType([$Uint64], [HeaderField, $Bool], false)}, {prop: "DecodeFull", name: "DecodeFull", pkg: "", typ: $funcType([sliceType$2], [sliceType, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "parseHeaderFieldRepr", name: "parseHeaderFieldRepr", pkg: "vendor/golang.org/x/net/http2/hpack", typ: $funcType([], [$error], false)}, {prop: "parseFieldIndexed", name: "parseFieldIndexed", pkg: "vendor/golang.org/x/net/http2/hpack", typ: $funcType([], [$error], false)}, {prop: "parseFieldLiteral", name: "parseFieldLiteral", pkg: "vendor/golang.org/x/net/http2/hpack", typ: $funcType([$Uint8, indexType], [$error], false)}, {prop: "callEmit", name: "callEmit", pkg: "vendor/golang.org/x/net/http2/hpack", typ: $funcType([HeaderField], [$error], false)}, {prop: "parseDynamicTableSizeUpdate", name: "parseDynamicTableSizeUpdate", pkg: "vendor/golang.org/x/net/http2/hpack", typ: $funcType([], [$error], false)}, {prop: "readString", name: "readString", pkg: "vendor/golang.org/x/net/http2/hpack", typ: $funcType([sliceType$2], [undecodedString, sliceType$2, $error], false)}, {prop: "decodeString", name: "decodeString", pkg: "vendor/golang.org/x/net/http2/hpack", typ: $funcType([undecodedString], [$String, $error], false)}]; - ptrType$5.methods = [{prop: "setMaxSize", name: "setMaxSize", pkg: "vendor/golang.org/x/net/http2/hpack", typ: $funcType([$Uint32], [], false)}, {prop: "add", name: "add", pkg: "vendor/golang.org/x/net/http2/hpack", typ: $funcType([HeaderField], [], false)}, {prop: "evict", name: "evict", pkg: "vendor/golang.org/x/net/http2/hpack", typ: $funcType([], [], false)}]; + ptrType$5.methods = [{prop: "SetMaxStringLength", name: "SetMaxStringLength", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "SetEmitFunc", name: "SetEmitFunc", pkg: "", typ: $funcType([funcType$1], [], false)}, {prop: "SetEmitEnabled", name: "SetEmitEnabled", pkg: "", typ: $funcType([$Bool], [], false)}, {prop: "EmitEnabled", name: "EmitEnabled", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "SetMaxDynamicTableSize", name: "SetMaxDynamicTableSize", pkg: "", typ: $funcType([$Uint32], [], false)}, {prop: "SetAllowedMaxDynamicTableSize", name: "SetAllowedMaxDynamicTableSize", pkg: "", typ: $funcType([$Uint32], [], false)}, {prop: "maxTableIndex", name: "maxTableIndex", pkg: "vendor/golang.org/x/net/http2/hpack", typ: $funcType([], [$Int], false)}, {prop: "at", name: "at", pkg: "vendor/golang.org/x/net/http2/hpack", typ: $funcType([$Uint64], [HeaderField, $Bool], false)}, {prop: "DecodeFull", name: "DecodeFull", pkg: "", typ: $funcType([sliceType$2], [sliceType, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "parseHeaderFieldRepr", name: "parseHeaderFieldRepr", pkg: "vendor/golang.org/x/net/http2/hpack", typ: $funcType([], [$error], false)}, {prop: "parseFieldIndexed", name: "parseFieldIndexed", pkg: "vendor/golang.org/x/net/http2/hpack", typ: $funcType([], [$error], false)}, {prop: "parseFieldLiteral", name: "parseFieldLiteral", pkg: "vendor/golang.org/x/net/http2/hpack", typ: $funcType([$Uint8, indexType], [$error], false)}, {prop: "callEmit", name: "callEmit", pkg: "vendor/golang.org/x/net/http2/hpack", typ: $funcType([HeaderField], [$error], false)}, {prop: "parseDynamicTableSizeUpdate", name: "parseDynamicTableSizeUpdate", pkg: "vendor/golang.org/x/net/http2/hpack", typ: $funcType([], [$error], false)}, {prop: "readString", name: "readString", pkg: "vendor/golang.org/x/net/http2/hpack", typ: $funcType([sliceType$2], [undecodedString, sliceType$2, $error], false)}, {prop: "decodeString", name: "decodeString", pkg: "vendor/golang.org/x/net/http2/hpack", typ: $funcType([undecodedString], [$String, $error], false)}]; + ptrType$6.methods = [{prop: "setMaxSize", name: "setMaxSize", pkg: "vendor/golang.org/x/net/http2/hpack", typ: $funcType([$Uint32], [], false)}, {prop: "add", name: "add", pkg: "vendor/golang.org/x/net/http2/hpack", typ: $funcType([HeaderField], [], false)}, {prop: "evict", name: "evict", pkg: "vendor/golang.org/x/net/http2/hpack", typ: $funcType([], [], false)}]; indexType.methods = [{prop: "indexed", name: "indexed", pkg: "vendor/golang.org/x/net/http2/hpack", typ: $funcType([], [$Bool], false)}, {prop: "sensitive", name: "sensitive", pkg: "vendor/golang.org/x/net/http2/hpack", typ: $funcType([], [$Bool], false)}]; - ptrType$6.methods = [{prop: "WriteField", name: "WriteField", pkg: "", typ: $funcType([HeaderField], [$error], false)}, {prop: "searchTable", name: "searchTable", pkg: "vendor/golang.org/x/net/http2/hpack", typ: $funcType([HeaderField], [$Uint64, $Bool], false)}, {prop: "SetMaxDynamicTableSize", name: "SetMaxDynamicTableSize", pkg: "", typ: $funcType([$Uint32], [], false)}, {prop: "MaxDynamicTableSize", name: "MaxDynamicTableSize", pkg: "", typ: $funcType([], [$Uint32], false)}, {prop: "SetMaxDynamicTableSizeLimit", name: "SetMaxDynamicTableSizeLimit", pkg: "", typ: $funcType([$Uint32], [], false)}, {prop: "shouldIndex", name: "shouldIndex", pkg: "vendor/golang.org/x/net/http2/hpack", typ: $funcType([HeaderField], [$Bool], false)}]; + ptrType$7.methods = [{prop: "WriteField", name: "WriteField", pkg: "", typ: $funcType([HeaderField], [$error], false)}, {prop: "searchTable", name: "searchTable", pkg: "vendor/golang.org/x/net/http2/hpack", typ: $funcType([HeaderField], [$Uint64, $Bool], false)}, {prop: "SetMaxDynamicTableSize", name: "SetMaxDynamicTableSize", pkg: "", typ: $funcType([$Uint32], [], false)}, {prop: "MaxDynamicTableSize", name: "MaxDynamicTableSize", pkg: "", typ: $funcType([], [$Uint32], false)}, {prop: "SetMaxDynamicTableSizeLimit", name: "SetMaxDynamicTableSizeLimit", pkg: "", typ: $funcType([$Uint32], [], false)}, {prop: "shouldIndex", name: "shouldIndex", pkg: "vendor/golang.org/x/net/http2/hpack", typ: $funcType([HeaderField], [$Bool], false)}]; headerFieldTable.init("vendor/golang.org/x/net/http2/hpack", [{prop: "ents", name: "ents", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "evictCount", name: "evictCount", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "byName", name: "byName", embedded: false, exported: false, typ: mapType, tag: ""}, {prop: "byNameValue", name: "byNameValue", embedded: false, exported: false, typ: mapType$1, tag: ""}]); pairNameValue.init("vendor/golang.org/x/net/http2/hpack", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "value", name: "value", embedded: false, exported: false, typ: $String, tag: ""}]); incomparable.init(funcType, 0); @@ -275291,7 +277798,7 @@ $packages["vendor/golang.org/x/net/http2/hpack"] = (function() { return $pkg; })(); $packages["net/http"] = (function() { - var $pkg = {}, $init, bufio, bytes, gzip, list, context, rand, tls, base64, binary, errors, fmt, js, godebug, safefilepath, io, fs, log, math, rand$1, mime, multipart, net, httptrace, internal, ascii, textproto, url, os, path, filepath, reflect, runtime, sort, strconv, strings, sync, atomic, js$1, time, utf8, httpguts, httpproxy, hpack, idna, Transport, cancelKey, h2Transport, transportRequest, readTrackingBody, transportReadFromServerError, wantConn, wantConnQueue, erringRoundTripper, persistConnWriter, connectMethod, connectMethodKey, persistConn, readWriteCloserBody, nothingWrittenError, responseAndError, requestAndChan, writeRequest, httpError, tLogKey, bodyEOFSignal, gzipReader, tlsHandshakeTimeoutError, fakeLocker, connLRU, errorReader, byteReader, transferWriter, transferReader, unsupportedTEError, body, bodyLocked, finishAsyncByteRead, bufioFlushWriter, socksCommand, socksAuthMethod, socksReply, socksAddr, socksConn, socksDialer, socksUsernamePassword, sniffSig, exactSig, maskedSig, htmlSig, mp4Sig, textSig, Handler, ResponseWriter, conn, chunkWriter, response, writerOnly, readResult, connReader, expectContinueReader, extraHeader, closeWriter, statusError, HandlerFunc, redirectHandler, ServeMux, muxEntry, Server, ConnState, serverHandler, onceCloseListener, globalOptionsHandler, initALPNRequest, loggingConn, checkConnErrorWriter, streamReader, arrayReader, Response, ProtocolError, Request, requestBodyReadError, MaxBytesError, maxBytesReader, incomparable, contextKey, noBody, PushOptions, Header, stringWriter, keyValues, headerSorter, http2ClientConnPool, http2clientConnPoolIdleCloser, http2clientConnPool, http2dialCall, http2addConnCall, http2noDialClientConnPool, http2dataBuffer, http2ErrCode, http2ConnectionError, http2StreamError, http2goAwayFlowError, http2connError, http2pseudoHeaderError, http2duplicatePseudoHeaderError, http2headerFieldNameError, http2headerFieldValueError, http2flow, http2FrameType, http2Flags, http2FrameHeader, http2Frame, http2Framer, http2frameCache, http2DataFrame, http2SettingsFrame, http2PingFrame, http2GoAwayFrame, http2UnknownFrame, http2WindowUpdateFrame, http2HeadersFrame, http2HeadersFrameParam, http2PriorityFrame, http2PriorityParam, http2RSTStreamFrame, http2ContinuationFrame, http2PushPromiseFrame, http2PushPromiseParam, http2MetaHeadersFrame, http2goroutineLock, http2streamState, http2Setting, http2SettingID, http2gate, http2closeWaiter, http2bufferedWriter, http2httpError, http2connectionStater, http2sorter, http2incomparable, http2pipe, http2pipeBuffer, http2Server, http2serverInternalState, http2ServeConnOpts, http2serverConn, http2stream, http2readFrameResult, http2frameWriteResult, http2serverMessage, http2requestParam, http2unstartedHandler, http2bodyReadMsg, http2requestBody, http2responseWriter, http2responseWriterState, http2chunkWriter, http2startPushRequest, http2Transport, http2ClientConn, http2clientStream, http2stickyErrWriter, http2noCachedConnError, http2RoundTripOpt, http2ClientConnState, http2clientConnIdleState, http2clientConnReadLoop, http2GoAwayError, http2transportResponseBody, http2noBodyReader, http2missingBody, http2erringRoundTripper, http2gzipReader, http2noDialH2RoundTripper, http2writeFramer, http2writeContext, http2flushFrameWriter, http2writeSettings, http2writeGoAway, http2writeData, http2handlerPanicRST, http2writePingAck, http2writeSettingsAck, http2writeResHeaders, http2writePushPromise, http2write100ContinueHeadersFrame, http2writeWindowUpdate, http2WriteScheduler, http2OpenStreamOptions, http2FrameWriteRequest, http2writeQueue, http2writeQueuePool, http2PriorityWriteSchedulerConfig, http2priorityNodeState, http2priorityNode, http2sortPriorityNodeSiblings, http2priorityWriteScheduler, noTransport, XHRTransport, Cookie, SameSite, RoundTripper, requestTooLarger, baseContexter, I, ptrType, ptrType$1, sliceType, sliceType$1, ptrType$2, sliceType$2, sliceType$3, structType, sliceType$4, ptrType$4, sliceType$5, sliceType$6, ptrType$7, sliceType$7, funcType, arrayType, ptrType$8, ptrType$9, ptrType$10, ptrType$11, ptrType$12, chanType, ptrType$13, ptrType$14, ptrType$15, mapType, ptrType$16, ptrType$17, ptrType$18, ptrType$19, ptrType$20, ptrType$21, ptrType$22, ptrType$23, sliceType$8, sliceType$9, ptrType$24, structType$1, ptrType$25, sliceType$10, sliceType$11, ptrType$26, ptrType$27, ptrType$28, ptrType$29, sliceType$12, ptrType$30, ptrType$31, ptrType$32, funcType$1, sliceType$13, ptrType$33, sliceType$14, arrayType$1, sliceType$15, sliceType$16, ptrType$34, arrayType$2, sliceType$17, ptrType$35, ptrType$36, ptrType$37, ptrType$38, ptrType$39, ptrType$40, ptrType$41, ptrType$42, ptrType$43, ptrType$44, ptrType$45, ptrType$46, ptrType$47, ptrType$48, ptrType$49, ptrType$50, arrayType$3, arrayType$4, arrayType$5, sliceType$18, ptrType$51, ptrType$52, ptrType$53, arrayType$6, ptrType$54, sliceType$19, ptrType$55, ptrType$56, ptrType$57, structType$2, ptrType$58, ptrType$59, ptrType$60, ptrType$61, ptrType$62, sliceType$20, ptrType$63, ptrType$64, sliceType$21, ptrType$65, ptrType$66, ptrType$67, ptrType$68, ptrType$69, arrayType$7, ptrType$70, ptrType$71, arrayType$8, sliceType$22, ptrType$72, ptrType$73, ptrType$74, ptrType$75, ptrType$76, ptrType$77, ptrType$78, ptrType$79, ptrType$80, ptrType$81, ptrType$82, ptrType$83, ptrType$84, sliceType$23, ptrType$85, ptrType$86, funcType$2, ptrType$87, funcType$3, ptrType$88, ptrType$89, ptrType$90, ptrType$91, ptrType$92, ptrType$93, ptrType$94, ptrType$95, ptrType$96, ptrType$97, ptrType$98, ptrType$99, interfaceType$3, ptrType$100, sliceType$24, ptrType$101, sliceType$25, ptrType$102, ptrType$103, sliceType$26, ptrType$104, ptrType$105, ptrType$106, funcType$4, sliceType$30, ptrType$109, ptrType$111, funcType$5, mapType$1, mapType$2, mapType$3, mapType$4, funcType$6, funcType$7, funcType$8, funcType$9, funcType$10, mapType$5, funcType$11, chanType$1, ptrType$112, ptrType$113, chanType$2, funcType$12, chanType$3, chanType$4, funcType$13, ptrType$114, chanType$5, chanType$6, chanType$7, ptrType$115, funcType$14, funcType$15, ptrType$116, ptrType$117, mapType$6, ptrType$118, chanType$8, ptrType$119, ptrType$120, funcType$16, ptrType$121, ptrType$122, ptrType$123, chanType$9, ptrType$124, chanType$10, ptrType$125, funcType$17, ptrType$126, mapType$7, funcType$18, mapType$8, funcType$19, funcType$20, funcType$21, mapType$9, mapType$10, ptrType$128, ptrType$129, ptrType$130, ptrType$131, ptrType$133, funcType$22, ptrType$134, ptrType$135, mapType$11, mapType$12, mapType$13, mapType$14, mapType$15, ptrType$136, funcType$23, ptrType$137, funcType$24, funcType$25, ptrType$138, ptrType$139, funcType$26, mapType$16, chanType$11, chanType$12, chanType$13, chanType$14, chanType$15, mapType$17, mapType$18, funcType$27, funcType$28, mapType$19, mapType$20, funcType$29, ptrType$140, ptrType$141, ptrType$142, funcType$30, ptrType$143, funcType$31, ptrType$144, mapType$21, ptrType$146, mapType$23, zeroDialer, bufioReaderPool, bufioWriter2kPool, bufioWriter2kPool$24ptr, bufioWriter4kPool, bufioWriter4kPool$24ptr, defaultServeMux, defaultServeMux$24ptr, testHookServerServe, uniqNameMu, textprotoReaderPool, omitBundledHTTP2, http2commonBuildOnce, http2commonLowerHeader, http2commonCanonHeader, http2VerboseLogs, http2logFrameWrites, http2logFrameReads, http2inTests, http2testHookOnConn, http2testHookGetServerConn, http2testHookOnPanicMu, http2testHookOnPanic, http2got1xxFuncForTests, http2retryBackoffHook, http2bufPool, http2client, errCannotRewind, errKeepAlivesDisabled, errConnBroken, errCloseIdle, errTooManyIdle, errTooManyIdleHost, errCloseIdleConns, errReadLoopExiting, errIdleConnTimeout, errServerClosedIdle, errCallerOwnsConn, errTimeout, errRequestCanceledConn, testHookEnterRoundTrip, testHookWaitResLoop, testHookRoundTripRetried, testHookPrePendingDial, testHookPostPendingDial, testHookMu, x, testHookReadLoopBeforeNextRead, portMap, errReadOnClosedResBody, suppressedHeaders304, suppressedHeadersNoBody, excludedHeadersNoBody, singleCRLF, doubleCRLF, errTrailerEOF, nopCloserType, nopCloserWriterToType, x$1, socksnoDeadline, socksaLongTimeAgo, sniffSignatures, x$2, x$3, mp4ftype, mp4, crlf, colonSpace, copyBufPool, errTooLarge, extraHeaderKeys, headerContentLength, headerDate, htmlReplacer, stateName, silenceSemWarnContextKey, http2server, uniqNameNext, uint8Array, jsFetchMissing, errClosed, respExcludeHeader, reqWriteExcludeHeader, multipartByReader, errMissingHost, aLongTimeAgo, headerNewlineToSpace, headerSorterPool, http2dataChunkSizeClasses, http2dataChunkPools, http2errReadEmpty, http2errCodeName, http2errFromPeer, http2errMixPseudoHeaderTypes, http2errPseudoAfterRegular, http2padZeros, http2frameName, http2flagName, http2fhBytes, http2ErrFrameTooLarge, http2errStreamID, http2errDepStreamID, http2errPadLength, http2errPadBytes, http2DebugGoroutines, _r, http2goroutineSpace, http2littleBuf, http2clientPreface, http2stateName, http2frameParsers, http2settingName, http2bufWriterPool, http2errTimeout, http2sorterPool, http2errClosedPipeWrite, http2errClientDisconnected, http2errClosedBody, http2errHandlerComplete, http2errStreamClosed, http2responseWriterStatePool, http2settingsTimerMsg, http2idleTimerMsg, http2shutdownTimerMsg, http2gracefulShutdownMsg, http2handlerDoneMsg, http2errPrefaceTimeout, http2errChanPool, http2writeDataPool, http2errHandlerPanicked, http2goAwayTimeout, http2ErrRecursivePush, http2ErrPushLimitReached, http2connHeaders, http2ErrNoCachedConn, x$5, http2errClientConnClosed, http2errClientConnUnusable, http2errClientConnGotGoAway, http2shutdownEnterWaitStateHook, http2errRequestCanceled, errRequestCanceled, http2errStopReqBodyWrite, http2errStopReqBodyWriteAndCancel, http2errReqBodyTooLong, http2errNilRequestURL, http2errClosedResponseBody, http2errResponseHeaderListSize, http2errRequestHeaderListSize, http2noBody, x$6, errSeeker, errNoOverlap, unixEpochTime, errMissingSeek, errMissingReadDir, cookieNameSanitizer, setupRewindBody, rewindBody, is408Message, newReadWriteCloserBody, nop, canonicalAddr, cloneTLSConfig, newTransferWriter, noResponseBodyExpected, bodyAllowedForStatus, suppressedHeaders, readTransfer, chunked, isIdentity, isUnsupportedTEError, fixLength, shouldClose, fixTrailer, seeUpcomingDoubleCRLF, mergeSetHeader, parseContentLength, unwrapNopCloser, isKnownInMemoryReader, StatusText, sockssplitHostPort, socksNewDialer, DetectContentType, isWS, isTT, bufioWriterPool, newBufioReader, putBufioReader, newBufioWriterSize, putBufioWriter, appendTime, http1ServerSupportsRequest, checkWriteHeaderCode, relevantCaller, foreachHeaderElement, writeStatusLine, validNextProto, badRequestError, isCommonNetReadError, registerOnHitEOF, requestBodyRemains, Error, NotFound, NotFoundHandler, Redirect, htmlEscape, RedirectHandler, cleanPath, stripHostPort, appendSorted, newLoggingConn, numLeadingCRorLF, strSliceContains, tlsRecordHeaderLooksLikeHTTP, ReadResponse, fixPragmaCacheControl, isProtocolSwitchResponse, isProtocolSwitchHeader, badStringError, valueOrDefault, idnaASCII, removeZone, ParseHTTPVersion, validMethod, parseBasicAuth, parseRequestLine, newTextprotoReader, putTextprotoReader, readRequest, MaxBytesReader, copyValues, parsePostForm, requestMethodUsuallyLacksBody, hasPort, isNotToken, stringContainsCTLByte, hexEscapeNonASCII, CanonicalHeaderKey, hasToken, isTokenBoundary, http2asciiEqualFold, http2lower, http2isASCIIPrint, http2asciiToLower, http2isBadCipher, http2filterOutClientConn, http2shouldRetryDial, http2getDataBufferChunk, http2putDataBufferChunk, http2streamError, http2typeFrameParser, http2readFrameHeader, http2NewFramer, http2terminalReadFrameError, http2parseDataFrame, http2validStreamIDOrZero, http2validStreamID, http2parseSettingsFrame, http2parsePingFrame, http2parseGoAwayFrame, http2parseUnknownFrame, http2parseWindowUpdateFrame, http2parseHeadersFrame, http2parsePriorityFrame, http2parseRSTStreamFrame, http2parseContinuationFrame, http2parsePushPromise, http2readByte, http2readUint32, http2summarizeFrame, http2traceHasWroteHeaderField, http2traceWroteHeaderField, http2traceGot1xxResponseFunc, http2tlsUnderlyingConn, http2newGoroutineLock, http2curGoroutineID, http2parseUintBytes, http2cutoff64, http2buildCommonHeaderMapsOnce, http2buildCommonHeaderMaps, http2lowerHeader, http2canonicalHeader, init, http2validWireHeaderFieldName, http2httpCodeString, http2newBufferedWriter, http2mustUint31, http2bodyAllowedForStatus, http2validPseudoPath, http2ConfigureServer, http2serverConnBaseContext, http2errno, http2isClosedConnError, http2handleHeaderListTooLong, http2checkWriteHeaderCode, http2cloneHeader, http2foreachHeaderElement, http2checkValidHTTP2RequestHeaders, http2new400Handler, http2h1ServerKeepAlivesDisabled, http2configureTransports, http2isNoCachedConnError, http2authorityAddr, http2backoffNewTimer, http2shouldRetryRequest, http2canRetryError, http2commaSeparatedTrailers, http2checkConnHeaders, http2actualContentLength, http2shouldSendReqContentLength, http2isEOFOrNetReadError, http2strSliceContains, http2isConnectionCloseRequest, http2registerHTTPSProtocol, http2traceGetConn, http2traceGotConn, http2traceWroteHeaders, http2traceGot100Continue, http2traceWait100Continue, http2traceWroteRequest, http2traceFirstResponseByte, http2writeEndsStream, http2splitHeaderBlock, http2encKV, http2encodeHeaders, http2NewPriorityWriteScheduler, readSetCookies, readCookies, validCookieDomain, validCookieExpires, isCookieDomainName, sanitizeCookieName, sanitizeCookieValue, validCookieValueByte, sanitizeCookiePath, validCookiePathByte, sanitizeOrWarn, parseCookieValue, isCookieNameValid, cloneURLValues, cloneURL, cloneMultipartForm, cloneMultipartFileHeader, basicAuth; + var $pkg = {}, $init, bufio, bytes, gzip, list, context, rand, tls, base64, binary, errors, fmt, js, godebug, safefilepath, io, fs, log, math, rand$1, mime, multipart, net, httptrace, internal, ascii, textproto, url, os, path, filepath, reflect, runtime, sort, strconv, strings, sync, atomic, js$1, time, utf8, httpguts, httpproxy, hpack, idna, Transport, cancelKey, h2Transport, transportRequest, readTrackingBody, transportReadFromServerError, wantConn, wantConnQueue, erringRoundTripper, persistConnWriter, connectMethod, connectMethodKey, persistConn, readWriteCloserBody, nothingWrittenError, responseAndError, requestAndChan, writeRequest, httpError, tLogKey, bodyEOFSignal, gzipReader, tlsHandshakeTimeoutError, fakeLocker, connLRU, errorReader, byteReader, transferWriter, transferReader, unsupportedTEError, body, bodyLocked, finishAsyncByteRead, bufioFlushWriter, socksCommand, socksAuthMethod, socksReply, socksAddr, socksConn, socksDialer, socksUsernamePassword, sniffSig, exactSig, maskedSig, htmlSig, mp4Sig, textSig, Handler, ResponseWriter, conn, chunkWriter, response, writerOnly, readResult, connReader, expectContinueReader, extraHeader, closeWriter, statusError, HandlerFunc, redirectHandler, ServeMux, muxEntry, Server, ConnState, serverHandler, onceCloseListener, globalOptionsHandler, initALPNRequest, loggingConn, checkConnErrorWriter, streamReader, arrayReader, Response, ProtocolError, Request, requestBodyReadError, MaxBytesError, maxBytesReader, incomparable, contextKey, noBody, PushOptions, Header, stringWriter, keyValues, headerSorter, http2ClientConnPool, http2clientConnPoolIdleCloser, http2clientConnPool, http2dialCall, http2addConnCall, http2noDialClientConnPool, http2dataBuffer, http2ErrCode, http2ConnectionError, http2StreamError, http2goAwayFlowError, http2connError, http2pseudoHeaderError, http2duplicatePseudoHeaderError, http2headerFieldNameError, http2headerFieldValueError, http2inflow, http2outflow, http2FrameType, http2Flags, http2FrameHeader, http2Frame, http2Framer, http2frameCache, http2DataFrame, http2SettingsFrame, http2PingFrame, http2GoAwayFrame, http2UnknownFrame, http2WindowUpdateFrame, http2HeadersFrame, http2HeadersFrameParam, http2PriorityFrame, http2PriorityParam, http2RSTStreamFrame, http2ContinuationFrame, http2PushPromiseFrame, http2PushPromiseParam, http2MetaHeadersFrame, http2goroutineLock, http2streamState, http2Setting, http2SettingID, http2gate, http2closeWaiter, http2bufferedWriter, http2httpError, http2connectionStater, http2sorter, http2incomparable, http2pipe, http2pipeBuffer, http2Server, http2serverInternalState, http2ServeConnOpts, http2serverConn, http2stream, http2readFrameResult, http2frameWriteResult, http2serverMessage, http2requestParam, http2unstartedHandler, http2bodyReadMsg, http2requestBody, http2responseWriter, http2responseWriterState, http2chunkWriter, http2startPushRequest, http2Transport, http2ClientConn, http2clientStream, http2stickyErrWriter, http2noCachedConnError, http2RoundTripOpt, http2ClientConnState, http2clientConnIdleState, http2clientConnReadLoop, http2GoAwayError, http2transportResponseBody, http2noBodyReader, http2missingBody, http2erringRoundTripper, http2gzipReader, http2noDialH2RoundTripper, http2writeFramer, http2writeContext, http2flushFrameWriter, http2writeSettings, http2writeGoAway, http2writeData, http2handlerPanicRST, http2writePingAck, http2writeSettingsAck, http2writeResHeaders, http2writePushPromise, http2write100ContinueHeadersFrame, http2writeWindowUpdate, http2WriteScheduler, http2OpenStreamOptions, http2FrameWriteRequest, http2writeQueue, http2writeQueuePool, http2PriorityWriteSchedulerConfig, http2priorityNodeState, http2priorityNode, http2sortPriorityNodeSiblings, http2priorityWriteScheduler, http2roundRobinWriteScheduler, noTransport, XHRTransport, Cookie, SameSite, RoundTripper, requestTooLarger, baseContexter, I, ptrType, ptrType$1, sliceType, sliceType$1, ptrType$2, sliceType$2, sliceType$3, structType, sliceType$4, ptrType$4, sliceType$5, sliceType$6, ptrType$7, sliceType$7, funcType, arrayType, ptrType$8, ptrType$9, ptrType$10, ptrType$11, ptrType$12, chanType, ptrType$13, ptrType$14, ptrType$15, mapType, ptrType$16, ptrType$17, ptrType$18, ptrType$19, ptrType$20, ptrType$21, ptrType$22, ptrType$23, sliceType$8, sliceType$9, ptrType$24, structType$1, ptrType$25, sliceType$10, sliceType$11, ptrType$26, ptrType$27, ptrType$28, ptrType$29, sliceType$12, ptrType$30, ptrType$31, ptrType$32, funcType$1, sliceType$13, ptrType$33, sliceType$14, arrayType$1, sliceType$15, sliceType$16, ptrType$34, arrayType$2, sliceType$17, ptrType$35, ptrType$36, ptrType$37, ptrType$38, ptrType$39, ptrType$40, ptrType$41, ptrType$42, ptrType$43, ptrType$44, ptrType$45, ptrType$46, ptrType$47, ptrType$48, ptrType$49, ptrType$50, arrayType$3, arrayType$4, arrayType$5, sliceType$18, ptrType$51, ptrType$52, ptrType$53, arrayType$6, ptrType$54, sliceType$19, ptrType$55, ptrType$56, ptrType$57, structType$2, ptrType$58, ptrType$59, ptrType$60, ptrType$61, ptrType$62, sliceType$20, ptrType$63, ptrType$64, sliceType$21, ptrType$65, ptrType$66, ptrType$67, ptrType$68, ptrType$69, arrayType$7, ptrType$70, ptrType$71, arrayType$8, sliceType$22, ptrType$72, ptrType$73, ptrType$74, ptrType$75, ptrType$76, ptrType$77, ptrType$78, ptrType$79, ptrType$80, ptrType$81, ptrType$82, ptrType$83, ptrType$84, sliceType$23, ptrType$85, ptrType$86, ptrType$87, funcType$2, ptrType$88, funcType$3, ptrType$89, ptrType$90, ptrType$91, ptrType$92, ptrType$93, ptrType$94, ptrType$95, ptrType$96, ptrType$97, ptrType$98, ptrType$99, interfaceType$4, ptrType$100, sliceType$24, ptrType$101, sliceType$25, ptrType$102, ptrType$103, sliceType$26, ptrType$104, ptrType$105, ptrType$106, ptrType$108, ptrType$109, funcType$4, sliceType$30, ptrType$112, ptrType$114, funcType$5, mapType$1, mapType$2, mapType$3, mapType$4, funcType$6, funcType$7, funcType$8, funcType$9, funcType$10, mapType$5, funcType$11, chanType$1, ptrType$115, ptrType$116, chanType$2, funcType$12, chanType$3, chanType$4, funcType$13, ptrType$117, chanType$5, chanType$6, chanType$7, ptrType$118, funcType$14, funcType$15, ptrType$119, ptrType$120, mapType$6, ptrType$121, chanType$8, ptrType$122, ptrType$123, funcType$16, ptrType$124, ptrType$125, ptrType$126, chanType$9, ptrType$127, chanType$10, ptrType$128, funcType$17, ptrType$129, mapType$7, funcType$18, mapType$8, funcType$19, funcType$20, funcType$21, mapType$9, mapType$10, ptrType$131, ptrType$132, ptrType$133, ptrType$134, ptrType$136, funcType$22, ptrType$137, ptrType$138, mapType$11, mapType$12, mapType$13, mapType$14, mapType$15, ptrType$139, ptrType$140, funcType$23, ptrType$141, funcType$24, funcType$25, ptrType$142, ptrType$143, funcType$26, mapType$16, chanType$11, chanType$12, chanType$13, chanType$14, chanType$15, mapType$17, mapType$18, funcType$27, funcType$28, mapType$19, mapType$20, funcType$29, ptrType$144, ptrType$145, ptrType$146, funcType$30, ptrType$147, funcType$31, mapType$21, mapType$22, ptrType$148, mapType$23, zeroDialer, bufioReaderPool, bufioWriter2kPool, bufioWriter2kPool$24ptr, bufioWriter4kPool, bufioWriter4kPool$24ptr, defaultServeMux, defaultServeMux$24ptr, testHookServerServe, uniqNameMu, textprotoReaderPool, omitBundledHTTP2, http2commonBuildOnce, http2commonLowerHeader, http2commonCanonHeader, http2VerboseLogs, http2logFrameWrites, http2logFrameReads, http2inTests, http2testHookOnConn, http2testHookGetServerConn, http2testHookOnPanicMu, http2testHookOnPanic, http2got1xxFuncForTests, http2retryBackoffHook, http2bufPool, http2client, errCannotRewind, errKeepAlivesDisabled, errConnBroken, errCloseIdle, errTooManyIdle, errTooManyIdleHost, errCloseIdleConns, errReadLoopExiting, errIdleConnTimeout, errServerClosedIdle, errCallerOwnsConn, maxWriteWaitBeforeConnReuse, errTimeout, errRequestCanceledConn, testHookEnterRoundTrip, testHookWaitResLoop, testHookRoundTripRetried, testHookPrePendingDial, testHookPostPendingDial, testHookMu, x, testHookReadLoopBeforeNextRead, portMap, errReadOnClosedResBody, suppressedHeaders304, suppressedHeadersNoBody, excludedHeadersNoBody, singleCRLF, doubleCRLF, errTrailerEOF, nopCloserType, nopCloserWriterToType, x$1, socksnoDeadline, socksaLongTimeAgo, sniffSignatures, x$2, x$3, mp4ftype, mp4, crlf, colonSpace, copyBufPool, errTooLarge, extraHeaderKeys, headerContentLength, headerDate, htmlReplacer, stateName, http2server, uniqNameNext, uint8Array, jsFetchMissing, jsFetchDisabled, errClosed, respExcludeHeader, reqWriteExcludeHeader, multipartByReader, errMissingHost, aLongTimeAgo, headerNewlineToSpace, headerSorterPool, http2dataChunkSizeClasses, http2dataChunkPools, http2errReadEmpty, http2errCodeName, http2errFromPeer, http2errMixPseudoHeaderTypes, http2errPseudoAfterRegular, http2padZeros, http2frameName, http2flagName, http2frameParsers, http2fhBytes, http2ErrFrameTooLarge, http2errStreamID, http2errDepStreamID, http2errPadLength, http2errPadBytes, http2DebugGoroutines, _r, http2goroutineSpace, http2littleBuf, http2clientPreface, http2stateName, http2settingName, http2bufWriterPool, http2errTimeout, http2sorterPool, http2errClosedPipeWrite, http2errClientDisconnected, http2errClosedBody, http2errHandlerComplete, http2errStreamClosed, http2responseWriterStatePool, http2settingsTimerMsg, http2idleTimerMsg, http2shutdownTimerMsg, http2gracefulShutdownMsg, http2handlerDoneMsg, http2errPrefaceTimeout, http2errChanPool, http2writeDataPool, http2errHandlerPanicked, http2goAwayTimeout, http2ErrRecursivePush, http2ErrPushLimitReached, http2connHeaders, http2ErrNoCachedConn, x$5, http2errClientConnClosed, http2errClientConnUnusable, http2errClientConnGotGoAway, http2shutdownEnterWaitStateHook, http2errRequestCanceled, errRequestCanceled, http2errStopReqBodyWrite, http2errStopReqBodyWriteAndCancel, http2errReqBodyTooLong, http2errNilRequestURL, http2errClosedResponseBody, http2errResponseHeaderListSize, http2errRequestHeaderListSize, http2noBody, x$6, errSeeker, errNoOverlap, unixEpochTime, errMissingSeek, errMissingReadDir, cookieNameSanitizer, setupRewindBody, rewindBody, is408Message, newReadWriteCloserBody, nop, idnaASCIIFromURL, canonicalAddr, cloneTLSConfig, newTransferWriter, noResponseBodyExpected, bodyAllowedForStatus, suppressedHeaders, readTransfer, chunked, isIdentity, isUnsupportedTEError, fixLength, shouldClose, fixTrailer, seeUpcomingDoubleCRLF, mergeSetHeader, parseContentLength, unwrapNopCloser, isKnownInMemoryReader, StatusText, sockssplitHostPort, socksNewDialer, DetectContentType, isWS, isTT, bufioWriterPool, newBufioReader, putBufioReader, newBufioWriterSize, putBufioWriter, appendTime, http1ServerSupportsRequest, checkWriteHeaderCode, relevantCaller, foreachHeaderElement, writeStatusLine, validNextProto, badRequestError, isCommonNetReadError, registerOnHitEOF, requestBodyRemains, Error, NotFound, NotFoundHandler, Redirect, htmlEscape, RedirectHandler, cleanPath, stripHostPort, appendSorted, newLoggingConn, numLeadingCRorLF, strSliceContains, tlsRecordHeaderLooksLikeHTTP, ReadResponse, fixPragmaCacheControl, isProtocolSwitchResponse, isProtocolSwitchHeader, badStringError, valueOrDefault, idnaASCII, removeZone, ParseHTTPVersion, validMethod, parseBasicAuth, parseRequestLine, newTextprotoReader, putTextprotoReader, readRequest, MaxBytesReader, copyValues, parsePostForm, requestMethodUsuallyLacksBody, hasPort, isNotToken, stringContainsCTLByte, hexEscapeNonASCII, CanonicalHeaderKey, hasToken, isTokenBoundary, http2asciiEqualFold, http2lower, http2isASCIIPrint, http2asciiToLower, http2isBadCipher, http2filterOutClientConn, http2shouldRetryDial, http2getDataBufferChunk, http2putDataBufferChunk, http2streamError, http2takeInflows, http2typeFrameParser, http2readFrameHeader, http2NewFramer, http2terminalReadFrameError, http2parseDataFrame, http2validStreamIDOrZero, http2validStreamID, http2parseSettingsFrame, http2parsePingFrame, http2parseGoAwayFrame, http2parseUnknownFrame, http2parseWindowUpdateFrame, http2parseHeadersFrame, http2parsePriorityFrame, http2parseRSTStreamFrame, http2parseContinuationFrame, http2parsePushPromise, http2readByte, http2readUint32, http2summarizeFrame, http2traceHasWroteHeaderField, http2traceWroteHeaderField, http2traceGot1xxResponseFunc, http2tlsUnderlyingConn, http2newGoroutineLock, http2curGoroutineID, http2parseUintBytes, http2cutoff64, http2buildCommonHeaderMapsOnce, http2buildCommonHeaderMaps, http2lowerHeader, http2canonicalHeader, init, http2validWireHeaderFieldName, http2httpCodeString, http2newBufferedWriter, http2mustUint31, http2bodyAllowedForStatus, http2validPseudoPath, http2ConfigureServer, http2serverConnBaseContext, http2errno, http2isClosedConnError, http2handleHeaderListTooLong, http2checkWriteHeaderCode, http2cloneHeader, http2foreachHeaderElement, http2checkValidHTTP2RequestHeaders, http2new400Handler, http2h1ServerKeepAlivesDisabled, http2configureTransports, http2isNoCachedConnError, http2authorityAddr, http2backoffNewTimer, http2shouldRetryRequest, http2canRetryError, http2commaSeparatedTrailers, http2checkConnHeaders, http2actualContentLength, http2shouldSendReqContentLength, http2isEOFOrNetReadError, http2strSliceContains, http2isConnectionCloseRequest, http2registerHTTPSProtocol, http2traceGetConn, http2traceGotConn, http2traceWroteHeaders, http2traceGot100Continue, http2traceWait100Continue, http2traceWroteRequest, http2traceFirstResponseByte, http2writeEndsStream, http2splitHeaderBlock, http2encKV, http2encodeHeaders, http2NewPriorityWriteScheduler, http2newRoundRobinWriteScheduler, readSetCookies, readCookies, validCookieDomain, validCookieExpires, isCookieDomainName, sanitizeCookieName, sanitizeCookieValue, validCookieValueByte, sanitizeCookiePath, validCookiePathByte, sanitizeOrWarn, parseCookieValue, isCookieNameValid, cloneURLValues, cloneURL, cloneMultipartForm, cloneMultipartFileHeader, basicAuth; bufio = $packages["bufio"]; bytes = $packages["bytes"]; gzip = $packages["compress/gzip"]; @@ -275651,7 +278158,7 @@ $packages["net/http"] = (function() { writeRequest = $newType(0, $kindStruct, "http.writeRequest", true, "net/http", false, function(req_, ch_, continueCh_) { this.$val = this; if (arguments.length === 0) { - this.req = ptrType$111.nil; + this.req = ptrType$114.nil; this.ch = $chanNil; this.continueCh = $chanNil; return; @@ -275945,7 +278452,7 @@ $packages["net/http"] = (function() { this.bufr = ptrType$28.nil; this.bufw = ptrType$11.nil; this.lastMethod = ""; - this.curReq = new atomic.Pointer[15 /* net/http.response */].ptr(ptrType$46.nil); + this.curReq = new atomic.Pointer[25 /* net/http.response */].ptr(ptrType$46.nil); this.curState = new atomic.Uint64.ptr(new atomic.noCopy.ptr(), new atomic.align64.ptr(), new $Uint64(0, 0)); this.mu = new sync.Mutex.ptr(0, 0); this.hijackedv = false; @@ -275980,7 +278487,7 @@ $packages["net/http"] = (function() { this.wroteHeader = wroteHeader_; this.chunking = chunking_; }); - response = $newType(0, $kindStruct, "http.response", true, "net/http", false, function(conn_, req_, reqBody_, cancelCtx_, wroteHeader_, wroteContinue_, wants10KeepAlive_, wantsClose_, canWriteContinue_, writeContinueMu_, w_, cw_, handlerHeader_, calledHeader_, written_, contentLength_, status_, closeAfterReply_, requestBodyLimitHit_, trailers_, handlerDone_, dateBuf_, clenBuf_, statusBuf_, closeNotifyCh_, didCloseNotify_) { + response = $newType(0, $kindStruct, "http.response", true, "net/http", false, function(conn_, req_, reqBody_, cancelCtx_, wroteHeader_, wroteContinue_, wants10KeepAlive_, wantsClose_, canWriteContinue_, writeContinueMu_, w_, cw_, handlerHeader_, calledHeader_, written_, contentLength_, status_, closeAfterReply_, fullDuplex_, requestBodyLimitHit_, trailers_, handlerDone_, dateBuf_, clenBuf_, statusBuf_, closeNotifyCh_, didCloseNotify_) { this.$val = this; if (arguments.length === 0) { this.conn = ptrType$50.nil; @@ -276001,6 +278508,7 @@ $packages["net/http"] = (function() { this.contentLength = new $Int64(0, 0); this.status = 0; this.closeAfterReply = false; + this.fullDuplex = false; this.requestBodyLimitHit = false; this.trailers = sliceType$2.nil; this.handlerDone = new atomic.Bool.ptr(new atomic.noCopy.ptr(), 0); @@ -276029,6 +278537,7 @@ $packages["net/http"] = (function() { this.contentLength = contentLength_; this.status = status_; this.closeAfterReply = closeAfterReply_; + this.fullDuplex = fullDuplex_; this.requestBodyLimitHit = requestBodyLimitHit_; this.trailers = trailers_; this.handlerDone = handlerDone_; @@ -276564,7 +279073,17 @@ $packages["net/http"] = (function() { http2duplicatePseudoHeaderError = $newType(8, $kindString, "http.http2duplicatePseudoHeaderError", true, "net/http", false, null); http2headerFieldNameError = $newType(8, $kindString, "http.http2headerFieldNameError", true, "net/http", false, null); http2headerFieldValueError = $newType(8, $kindString, "http.http2headerFieldValueError", true, "net/http", false, null); - http2flow = $newType(0, $kindStruct, "http.http2flow", true, "net/http", false, function(_$0_, n_, conn_) { + http2inflow = $newType(0, $kindStruct, "http.http2inflow", true, "net/http", false, function(avail_, unsent_) { + this.$val = this; + if (arguments.length === 0) { + this.avail = 0; + this.unsent = 0; + return; + } + this.avail = avail_; + this.unsent = unsent_; + }); + http2outflow = $newType(0, $kindStruct, "http.http2outflow", true, "net/http", false, function(_$0_, n_, conn_) { this.$val = this; if (arguments.length === 0) { this._$0 = arrayType.zero(); @@ -276977,8 +279496,8 @@ $packages["net/http"] = (function() { this.wroteFrameCh = $chanNil; this.bodyReadCh = $chanNil; this.serveMsgCh = $chanNil; - this.flow = new http2flow.ptr(arrayType.zero(), 0, ptrType$67.nil); - this.inflow = new http2flow.ptr(arrayType.zero(), 0, ptrType$67.nil); + this.flow = new http2outflow.ptr(arrayType.zero(), 0, ptrType$67.nil); + this.inflow = new http2inflow.ptr(0, 0); this.tlsState = ptrType$27.nil; this.remoteAddrStr = ""; this.writeSched = $ifaceNil; @@ -277074,14 +279593,14 @@ $packages["net/http"] = (function() { if (arguments.length === 0) { this.sc = ptrType$10.nil; this.id = 0; - this.body = ptrType$93.nil; + this.body = ptrType$80.nil; this.cw = $chanNil; this.ctx = $ifaceNil; this.cancelCtx = $throwNilPointerError; this.bodyBytes = new $Int64(0, 0); this.declBodyBytes = new $Int64(0, 0); - this.flow = new http2flow.ptr(arrayType.zero(), 0, ptrType$67.nil); - this.inflow = new http2flow.ptr(arrayType.zero(), 0, ptrType$67.nil); + this.flow = new http2outflow.ptr(arrayType.zero(), 0, ptrType$67.nil); + this.inflow = new http2inflow.ptr(0, 0); this.state = 0; this.resetQueued = false; this.gotTrailerHeader = false; @@ -277186,7 +279705,7 @@ $packages["net/http"] = (function() { this.conn = ptrType$10.nil; this.closeOnce = new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0)); this.sawEOF = false; - this.pipe = ptrType$93.nil; + this.pipe = ptrType$80.nil; this.needsContinue = false; return; } @@ -277326,14 +279845,14 @@ $packages["net/http"] = (function() { this.idleTimer = ptrType$24.nil; this.mu = new sync.Mutex.ptr(0, 0); this.cond = ptrType$47.nil; - this.flow = new http2flow.ptr(arrayType.zero(), 0, ptrType$67.nil); - this.inflow = new http2flow.ptr(arrayType.zero(), 0, ptrType$67.nil); + this.flow = new http2outflow.ptr(arrayType.zero(), 0, ptrType$67.nil); + this.inflow = new http2inflow.ptr(0, 0); this.doNotReuse = false; this.closing = false; this.closed = false; this.seenSettings = false; this.wantSettingsAck = false; - this.goAway = ptrType$78.nil; + this.goAway = ptrType$77.nil; this.goAwayDebug = ""; this.streams = false; this.streamsReserved = 0; @@ -277419,8 +279938,8 @@ $packages["net/http"] = (function() { this.on100 = $chanNil; this.respHeaderRecv = $chanNil; this.res = ptrType$17.nil; - this.flow = new http2flow.ptr(arrayType.zero(), 0, ptrType$67.nil); - this.inflow = new http2flow.ptr(arrayType.zero(), 0, ptrType$67.nil); + this.flow = new http2outflow.ptr(arrayType.zero(), 0, ptrType$67.nil); + this.inflow = new http2inflow.ptr(0, 0); this.bytesRemain = new $Int64(0, 0); this.readErr = $ifaceNil; this.reqBody = $ifaceNil; @@ -277620,7 +280139,7 @@ $packages["net/http"] = (function() { http2writePingAck = $newType(0, $kindStruct, "http.http2writePingAck", true, "net/http", false, function(pf_) { this.$val = this; if (arguments.length === 0) { - this.pf = ptrType$77.nil; + this.pf = ptrType$76.nil; return; } this.pf = pf_; @@ -277705,13 +280224,17 @@ $packages["net/http"] = (function() { this.stream = stream_; this.done = done_; }); - http2writeQueue = $newType(0, $kindStruct, "http.http2writeQueue", true, "net/http", false, function(s_) { + http2writeQueue = $newType(0, $kindStruct, "http.http2writeQueue", true, "net/http", false, function(s_, prev_, next_) { this.$val = this; if (arguments.length === 0) { this.s = sliceType$25.nil; + this.prev = ptrType$102.nil; + this.next = ptrType$102.nil; return; } this.s = s_; + this.prev = prev_; + this.next = next_; }); http2writeQueuePool = $newType(12, $kindSlice, "http.http2writeQueuePool", true, "net/http", false, null); http2PriorityWriteSchedulerConfig = $newType(0, $kindStruct, "http.http2PriorityWriteSchedulerConfig", true, "net/http", false, function(MaxClosedNodesInTree_, MaxIdleNodesInTree_, ThrottleOutOfOrderWrites_) { @@ -277730,7 +280253,7 @@ $packages["net/http"] = (function() { http2priorityNode = $newType(0, $kindStruct, "http.http2priorityNode", true, "net/http", false, function(q_, id_, weight_, state_, bytes_, subtreeBytes_, parent_, kids_, prev_, next_) { this.$val = this; if (arguments.length === 0) { - this.q = new http2writeQueue.ptr(sliceType$25.nil); + this.q = new http2writeQueue.ptr(sliceType$25.nil, ptrType$102.nil, ptrType$102.nil); this.id = 0; this.weight = 0; this.state = 0; @@ -277757,7 +280280,7 @@ $packages["net/http"] = (function() { http2priorityWriteScheduler = $newType(0, $kindStruct, "http.http2priorityWriteScheduler", true, "net/http", false, function(root_, nodes_, maxID_, closedNodes_, idleNodes_, maxClosedNodesInTree_, maxIdleNodesInTree_, writeThrottleLimit_, enableWriteThrottle_, tmp_, queuePool_) { this.$val = this; if (arguments.length === 0) { - this.root = new http2priorityNode.ptr(new http2writeQueue.ptr(sliceType$25.nil), 0, 0, 0, new $Int64(0, 0), new $Int64(0, 0), ptrType$103.nil, ptrType$103.nil, ptrType$103.nil, ptrType$103.nil); + this.root = new http2priorityNode.ptr(new http2writeQueue.ptr(sliceType$25.nil, ptrType$102.nil, ptrType$102.nil), 0, 0, 0, new $Int64(0, 0), new $Int64(0, 0), ptrType$103.nil, ptrType$103.nil, ptrType$103.nil, ptrType$103.nil); this.nodes = false; this.maxID = 0; this.closedNodes = sliceType$26.nil; @@ -277782,6 +280305,20 @@ $packages["net/http"] = (function() { this.tmp = tmp_; this.queuePool = queuePool_; }); + http2roundRobinWriteScheduler = $newType(0, $kindStruct, "http.http2roundRobinWriteScheduler", true, "net/http", false, function(control_, streams_, head_, queuePool_) { + this.$val = this; + if (arguments.length === 0) { + this.control = new http2writeQueue.ptr(sliceType$25.nil, ptrType$102.nil, ptrType$102.nil); + this.streams = false; + this.head = ptrType$102.nil; + this.queuePool = http2writeQueuePool.nil; + return; + } + this.control = control_; + this.streams = streams_; + this.head = head_; + this.queuePool = queuePool_; + }); noTransport = $newType(0, $kindStruct, "http.noTransport", true, "net/http", false, function() { this.$val = this; }); XHRTransport = $newType(0, $kindStruct, "http.XHRTransport", true, "net/http", true, function(inflight_) { this.$val = this; @@ -277929,7 +280466,8 @@ $packages["net/http"] = (function() { $pkg.http2duplicatePseudoHeaderError = http2duplicatePseudoHeaderError; $pkg.http2headerFieldNameError = http2headerFieldNameError; $pkg.http2headerFieldValueError = http2headerFieldValueError; - $pkg.http2flow = http2flow; + $pkg.http2inflow = http2inflow; + $pkg.http2outflow = http2outflow; $pkg.http2FrameType = http2FrameType; $pkg.http2Flags = http2Flags; $pkg.http2FrameHeader = http2FrameHeader; @@ -278019,6 +280557,7 @@ $packages["net/http"] = (function() { $pkg.http2priorityNode = http2priorityNode; $pkg.http2sortPriorityNodeSiblings = http2sortPriorityNodeSiblings; $pkg.http2priorityWriteScheduler = http2priorityWriteScheduler; + $pkg.http2roundRobinWriteScheduler = http2roundRobinWriteScheduler; $pkg.noTransport = noTransport; $pkg.XHRTransport = XHRTransport; $pkg.Cookie = Cookie; @@ -278128,7 +280667,7 @@ $packages["net/http"] = (function() { sliceType$21 = $sliceType(ptrType$64); ptrType$65 = $ptrType(http2dialCall); ptrType$66 = $ptrType(http2addConnCall); - ptrType$67 = $ptrType(http2flow); + ptrType$67 = $ptrType(http2outflow); ptrType$68 = $ptrType(http2Framer); ptrType$69 = $ptrType(http2frameCache); arrayType$7 = $arrayType($Uint8, 9); @@ -278136,15 +280675,15 @@ $packages["net/http"] = (function() { ptrType$71 = $ptrType(http2HeadersFrame); arrayType$8 = $arrayType($Uint8, 8); sliceType$22 = $sliceType(hpack.HeaderField); - ptrType$72 = $ptrType(http2MetaHeadersFrame); - ptrType$73 = $ptrType(http2ContinuationFrame); - ptrType$74 = $ptrType(http2SettingsFrame); - ptrType$75 = $ptrType(http2DataFrame); - ptrType$76 = $ptrType(http2WindowUpdateFrame); - ptrType$77 = $ptrType(http2PingFrame); - ptrType$78 = $ptrType(http2GoAwayFrame); - ptrType$79 = $ptrType(http2RSTStreamFrame); - ptrType$80 = $ptrType(net.Dialer); + ptrType$72 = $ptrType(http2ContinuationFrame); + ptrType$73 = $ptrType(http2SettingsFrame); + ptrType$74 = $ptrType(http2DataFrame); + ptrType$75 = $ptrType(http2WindowUpdateFrame); + ptrType$76 = $ptrType(http2PingFrame); + ptrType$77 = $ptrType(http2GoAwayFrame); + ptrType$78 = $ptrType(http2RSTStreamFrame); + ptrType$79 = $ptrType(net.Dialer); + ptrType$80 = $ptrType(http2pipe); ptrType$81 = $ptrType($error); ptrType$82 = $ptrType(http2Server); ptrType$83 = $ptrType(http2ServeConnOpts); @@ -278152,22 +280691,22 @@ $packages["net/http"] = (function() { sliceType$23 = $sliceType(http2unstartedHandler); ptrType$85 = $ptrType(hpack.Encoder); ptrType$86 = $ptrType(os.SyscallError); + ptrType$87 = $ptrType(http2writeData); funcType$2 = $funcType([$Int], [], false); - ptrType$87 = $ptrType(http2startPushRequest); + ptrType$88 = $ptrType(http2startPushRequest); funcType$3 = $funcType([ptrType$10], [], false); - ptrType$88 = $ptrType(http2writeData); ptrType$89 = $ptrType(http2writeResHeaders); ptrType$90 = $ptrType(http2writePushPromise); - ptrType$91 = $ptrType(http2PriorityFrame); - ptrType$92 = $ptrType(http2PushPromiseFrame); - ptrType$93 = $ptrType(http2pipe); + ptrType$91 = $ptrType(http2MetaHeadersFrame); + ptrType$92 = $ptrType(http2PriorityFrame); + ptrType$93 = $ptrType(http2PushPromiseFrame); ptrType$94 = $ptrType(http2requestBody); ptrType$95 = $ptrType(http2closeWaiter); ptrType$96 = $ptrType(http2responseWriterState); ptrType$97 = $ptrType(http2sorter); ptrType$98 = $ptrType(PushOptions); ptrType$99 = $ptrType(http2Transport); - interfaceType$3 = $interfaceType([{prop: "IsHTTP2NoCachedConnError", name: "IsHTTP2NoCachedConnError", pkg: "", typ: $funcType([], [], false)}]); + interfaceType$4 = $interfaceType([{prop: "IsHTTP2NoCachedConnError", name: "IsHTTP2NoCachedConnError", pkg: "", typ: $funcType([], [], false)}]); ptrType$100 = $ptrType($Uint32); sliceType$24 = $sliceType(http2Setting); ptrType$101 = $ptrType(http2clientStream); @@ -278175,13 +280714,15 @@ $packages["net/http"] = (function() { ptrType$102 = $ptrType(http2writeQueue); ptrType$103 = $ptrType(http2priorityNode); sliceType$26 = $sliceType(ptrType$103); - ptrType$104 = $ptrType(http2writeQueuePool); - ptrType$105 = $ptrType(sliceType$26); - ptrType$106 = $ptrType(js.Object); - funcType$4 = $funcType([ptrType$106], [], false); + ptrType$104 = $ptrType(http2priorityWriteScheduler); + ptrType$105 = $ptrType(http2writeQueuePool); + ptrType$106 = $ptrType(sliceType$26); + ptrType$108 = $ptrType(http2roundRobinWriteScheduler); + ptrType$109 = $ptrType(js.Object); + funcType$4 = $funcType([ptrType$109], [], false); sliceType$30 = $sliceType(ptrType$58); - ptrType$109 = $ptrType(strings.Builder); - ptrType$111 = $ptrType(transportRequest); + ptrType$112 = $ptrType(strings.Builder); + ptrType$114 = $ptrType(transportRequest); funcType$5 = $funcType([$error], [], false); mapType$1 = $mapType(connectMethodKey, sliceType$9); mapType$2 = $mapType(connectMethodKey, wantConnQueue); @@ -278195,37 +280736,37 @@ $packages["net/http"] = (function() { mapType$5 = $mapType($String, funcType$10); funcType$11 = $funcType([context.Context, ptrType$16, $String], [Header, $error], false); chanType$1 = $chanType(structType$1, false, false); - ptrType$112 = $ptrType(wantConnQueue); - ptrType$113 = $ptrType(connectMethod); + ptrType$115 = $ptrType(wantConnQueue); + ptrType$116 = $ptrType(connectMethod); chanType$2 = $chanType(structType$1, false, true); funcType$12 = $funcType([], [$Bool], false); chanType$3 = $chanType(requestAndChan, false, false); chanType$4 = $chanType(writeRequest, false, false); funcType$13 = $funcType([Header], [], false); - ptrType$114 = $ptrType(readWriteCloserBody); + ptrType$117 = $ptrType(readWriteCloserBody); chanType$5 = $chanType(responseAndError, false, false); chanType$6 = $chanType(structType$1, true, false); chanType$7 = $chanType($error, true, false); - ptrType$115 = $ptrType(httpError); + ptrType$118 = $ptrType(httpError); funcType$14 = $funcType([$error], [$error], false); funcType$15 = $funcType([], [$error], false); - ptrType$116 = $ptrType(gzipReader); - ptrType$117 = $ptrType(connLRU); + ptrType$119 = $ptrType(gzipReader); + ptrType$120 = $ptrType(connLRU); mapType$6 = $mapType(ptrType$21, ptrType$22); - ptrType$118 = $ptrType(byteReader); + ptrType$121 = $ptrType(byteReader); chanType$8 = $chanType(readResult, false, false); - ptrType$119 = $ptrType(transferReader); - ptrType$120 = $ptrType(socksDialer); + ptrType$122 = $ptrType(transferReader); + ptrType$123 = $ptrType(socksDialer); funcType$16 = $funcType([context.Context, io.ReadWriter, socksAuthMethod], [$error], false); - ptrType$121 = $ptrType(socksUsernamePassword); - ptrType$122 = $ptrType(exactSig); - ptrType$123 = $ptrType(maskedSig); + ptrType$124 = $ptrType(socksUsernamePassword); + ptrType$125 = $ptrType(exactSig); + ptrType$126 = $ptrType(maskedSig); chanType$9 = $chanType($Bool, false, true); - ptrType$124 = $ptrType(chunkWriter); + ptrType$127 = $ptrType(chunkWriter); chanType$10 = $chanType($Bool, false, false); - ptrType$125 = $ptrType(redirectHandler); + ptrType$128 = $ptrType(redirectHandler); funcType$17 = $funcType([ResponseWriter, ptrType$9], [], false); - ptrType$126 = $ptrType(ServeMux); + ptrType$129 = $ptrType(ServeMux); mapType$7 = $mapType($String, muxEntry); funcType$18 = $funcType([ptrType$44, ptrType$29, Handler], [], false); mapType$8 = $mapType($String, funcType$18); @@ -278234,26 +280775,27 @@ $packages["net/http"] = (function() { funcType$21 = $funcType([context.Context, net.Conn], [context.Context], false); mapType$9 = $mapType(ptrType$55, structType$1); mapType$10 = $mapType(ptrType$50, structType$1); - ptrType$128 = $ptrType(onceCloseListener); - ptrType$129 = $ptrType(loggingConn); - ptrType$130 = $ptrType(streamReader); - ptrType$131 = $ptrType(arrayReader); - ptrType$133 = $ptrType(ProtocolError); + ptrType$131 = $ptrType(onceCloseListener); + ptrType$132 = $ptrType(loggingConn); + ptrType$133 = $ptrType(streamReader); + ptrType$134 = $ptrType(arrayReader); + ptrType$136 = $ptrType(ProtocolError); funcType$22 = $funcType([], [io.ReadCloser, $error], false); - ptrType$134 = $ptrType(MaxBytesError); - ptrType$135 = $ptrType(contextKey); + ptrType$137 = $ptrType(MaxBytesError); + ptrType$138 = $ptrType(contextKey); mapType$11 = $mapType($String, $Bool); mapType$12 = $mapType($String, sliceType$21); mapType$13 = $mapType($String, ptrType$65); mapType$14 = $mapType(ptrType$64, sliceType$2); mapType$15 = $mapType($String, ptrType$66); - ptrType$136 = $ptrType(http2dataBuffer); + ptrType$139 = $ptrType(http2dataBuffer); + ptrType$140 = $ptrType(http2inflow); funcType$23 = $funcType([$String], [], false); - ptrType$137 = $ptrType(http2FrameHeader); + ptrType$141 = $ptrType(http2FrameHeader); funcType$24 = $funcType([$Uint32], [sliceType$3], false); funcType$25 = $funcType([http2Setting], [$error], false); - ptrType$138 = $ptrType(http2UnknownFrame); - ptrType$139 = $ptrType(http2httpError); + ptrType$142 = $ptrType(http2UnknownFrame); + ptrType$143 = $ptrType(http2httpError); funcType$26 = $funcType([], [http2WriteScheduler], false); mapType$16 = $mapType(ptrType$10, structType$1); chanType$11 = $chanType(http2readFrameResult, false, false); @@ -278268,16 +280810,16 @@ $packages["net/http"] = (function() { mapType$19 = $mapType($Uint32, ptrType$101); mapType$20 = $mapType(arrayType$8, chanType$1); funcType$29 = $funcType([$Int, textproto.MIMEHeader], [$error], false); - ptrType$140 = $ptrType(http2clientConnReadLoop); - ptrType$141 = $ptrType(http2gzipReader); - ptrType$142 = $ptrType(http2writeGoAway); + ptrType$144 = $ptrType(http2clientConnReadLoop); + ptrType$145 = $ptrType(http2gzipReader); + ptrType$146 = $ptrType(http2writeGoAway); funcType$30 = $funcType([], [$Uint32, $error], false); - ptrType$143 = $ptrType(http2FrameWriteRequest); + ptrType$147 = $ptrType(http2FrameWriteRequest); funcType$31 = $funcType([ptrType$103, $Bool], [$Bool], false); - ptrType$144 = $ptrType(http2priorityWriteScheduler); mapType$21 = $mapType($Uint32, ptrType$103); - ptrType$146 = $ptrType(XHRTransport); - mapType$23 = $mapType(ptrType$9, ptrType$106); + mapType$22 = $mapType($Uint32, ptrType$102); + ptrType$148 = $ptrType(XHRTransport); + mapType$23 = $mapType(ptrType$9, ptrType$109); $ptrType(Transport).prototype.writeBufferSize = function writeBufferSize() { var t; t = this; @@ -278336,7 +280878,7 @@ $packages["net/http"] = (function() { return !(t.DialTLS === $throwNilPointerError) || !(t.DialTLSContext === $throwNilPointerError); }; $ptrType(Transport).prototype.onceSetNextProtoDefaults = function onceSetNextProtoDefaults() { - var {_entry, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, _tuple$1, _tuple$2, _v, _v$1, altProto, err, h2i, limit1, ok, rv, t, t2, v, $s, $r, $c} = $restore(this, {}); + var {_entry, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, _tuple$2, _v, _v$1, altProto, err, h2i, limit1, ok, rv, t, t2, v, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: t = this; t.tlsNextProtoWasNil = t.TLSNextProto === false; @@ -278344,35 +280886,34 @@ $packages["net/http"] = (function() { /* */ if (_r$1 === "0") { $s = 1; continue; } /* */ $s = 2; continue; /* if (_r$1 === "0") { */ case 1: + $r = http2client.IncNonDefault(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* } */ case 2: _tuple = $assertType(t.altProto.Load(), mapType, true); altProto = _tuple[0]; - _r$2 = reflect.ValueOf((_entry = $mapIndex(altProto,$String.keyFor("https")), _entry !== undefined ? _entry.v : $ifaceNil)); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - rv = _r$2; + rv = reflect.ValueOf((_entry = $mapIndex(altProto,$String.keyFor("https")), _entry !== undefined ? _entry.v : $ifaceNil)); if (!($clone(rv, reflect.Value).IsValid())) { _v$1 = false; $s = 8; continue s; } - _r$3 = $clone(rv, reflect.Value).Type().Kind(); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _v$1 = _r$3 === 25; case 8: + _r$2 = $clone(rv, reflect.Value).Type().Kind(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v$1 = _r$2 === 25; case 8: if (!(_v$1)) { _v = false; $s = 7; continue s; } - _r$4 = $clone(rv, reflect.Value).Type().NumField(); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _v = _r$4 === 1; case 7: + _r$3 = $clone(rv, reflect.Value).Type().NumField(); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v = _r$3 === 1; case 7: /* */ if (_v) { $s = 5; continue; } /* */ $s = 6; continue; /* if (_v) { */ case 5: - _r$5 = $clone(rv, reflect.Value).Field(0); /* */ $s = 11; case 11: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - v = _r$5; - /* */ if ($clone(v, reflect.Value).CanInterface()) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if ($clone(v, reflect.Value).CanInterface()) { */ case 12: - _r$6 = $clone(v, reflect.Value).Interface(); /* */ $s = 14; case 14: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _tuple$1 = $assertType(_r$6, h2Transport, true); + v = $clone(rv, reflect.Value).Field(0); + /* */ if ($clone(v, reflect.Value).CanInterface()) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if ($clone(v, reflect.Value).CanInterface()) { */ case 11: + _r$4 = $clone(v, reflect.Value).Interface(); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$1 = $assertType(_r$4, h2Transport, true); h2i = _tuple$1[0]; ok = _tuple$1[1]; if (ok) { t.h2transport = h2i; $s = -1; return; } - /* } */ case 13: + /* } */ case 12: /* } */ case 6: if (!(t.TLSNextProto === false)) { $s = -1; return; @@ -278383,16 +280924,16 @@ $packages["net/http"] = (function() { if (omitBundledHTTP2) { $s = -1; return; } - _r$7 = http2configureTransports(t); /* */ $s = 15; case 15: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _tuple$2 = _r$7; + _r$5 = http2configureTransports(t); /* */ $s = 14; case 14: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$2 = _r$5; t2 = _tuple$2[0]; err = _tuple$2[1]; - /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 16: - $r = log.Printf("Error enabling Transport HTTP/2 support: %v", new sliceType([err])); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 15: + $r = log.Printf("Error enabling Transport HTTP/2 support: %v", new sliceType([err])); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* } */ case 17: + /* } */ case 16: t.h2transport = t2; limit1 = t.MaxResponseHeaderBytes; if (!((limit1.$high === 0 && limit1.$low === 0)) && (t2.MaxHeaderListSize === 0)) { @@ -278403,7 +280944,7 @@ $packages["net/http"] = (function() { } } $s = -1; return; - /* */ } return; } var $f = {$blk: onceSetNextProtoDefaults, $c: true, $r, _entry, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, _tuple$1, _tuple$2, _v, _v$1, altProto, err, h2i, limit1, ok, rv, t, t2, v, $s};return $f; + /* */ } return; } var $f = {$blk: onceSetNextProtoDefaults, $c: true, $r, _entry, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, _tuple$2, _v, _v$1, altProto, err, h2i, limit1, ok, rv, t, t2, v, $s};return $f; }; $ptrType(transportRequest).prototype.extraHeaders = function extraHeaders() { var tr; @@ -278456,7 +280997,7 @@ $packages["net/http"] = (function() { /* */ } return; } var $f = {$blk: alternateRoundTripper, $c: true, $r, _entry, _r$1, _tuple, altProto, req, t, $s};return $f; }; $ptrType(Transport).prototype.roundTrip = function roundTrip(req) { - var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, _entry, _i, _i$1, _key, _keys, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _selection, _size, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _v, altRT, cancelKey$1, cm, ctx, e, e$1, err, err$1, err$2, isHTTP, k, ok, ok$1, origReq, pconn, req, resp, resp$1, scheme, t, trace, treq, v, vv, $s, $r, $c} = $restore(this, {req}); + var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, _entry, _i, _i$1, _key, _keys, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _selection, _size, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, altRT, b, cancelKey$1, cm, ctx, e, e$1, err, err$1, err$2, isHTTP, k, ok, ok$1, ok$2, origReq, pconn, req, resp, resp$1, scheme, t, trace, treq, v, vv, $s, $r, $c} = $restore(this, {req}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: t = this; $r = t.nextProtoOnce.Do($methodVal(t, "onceSetNextProtoDefaults")); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } @@ -278661,20 +281202,29 @@ $packages["net/http"] = (function() { if (ok$1) { err$2 = e$1.err; } + _tuple$8 = $assertType(req.Body, ptrType$19, true); + b = _tuple$8[0]; + ok$2 = _tuple$8[1]; + /* */ if (ok$2 && !b.didClose) { $s = 77; continue; } + /* */ $s = 78; continue; + /* if (ok$2 && !b.didClose) { */ case 77: + _r$28 = req.closeBody(); /* */ $s = 79; case 79: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + _r$28; + /* } */ case 78: $s = -1; return [ptrType$17.nil, err$2]; /* } */ case 71: - $r = testHookRoundTripRetried(); /* */ $s = 77; case 77: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$28 = rewindBody(req); /* */ $s = 78; case 78: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - _tuple$8 = _r$28; - req = _tuple$8[0]; - err$2 = _tuple$8[1]; + $r = testHookRoundTripRetried(); /* */ $s = 80; case 80: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$29 = rewindBody(req); /* */ $s = 81; case 81: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + _tuple$9 = _r$29; + req = _tuple$9[0]; + err$2 = _tuple$9[1]; if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = -1; return [ptrType$17.nil, err$2]; } $s = 45; continue; case 46: $s = -1; return [ptrType$17.nil, $ifaceNil]; - /* */ } return; } var $f = {$blk: roundTrip, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, _entry, _i, _i$1, _key, _keys, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _selection, _size, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _v, altRT, cancelKey$1, cm, ctx, e, e$1, err, err$1, err$2, isHTTP, k, ok, ok$1, origReq, pconn, req, resp, resp$1, scheme, t, trace, treq, v, vv, $s};return $f; + /* */ } return; } var $f = {$blk: roundTrip, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, _entry, _i, _i$1, _key, _keys, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _selection, _size, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, altRT, b, cancelKey$1, cm, ctx, e, e$1, err, err$1, err$2, isHTTP, k, ok, ok$1, ok$2, origReq, pconn, req, resp, resp$1, scheme, t, trace, treq, v, vv, $s};return $f; }; $ptrType(readTrackingBody).prototype.Read = function Read(data) { var {$24r, _r$1, data, r, $s, $r, $c} = $restore(this, {data}); @@ -278701,7 +281251,7 @@ $packages["net/http"] = (function() { if ($interfaceIsEqual(req.Body, $ifaceNil) || $interfaceIsEqual(req.Body, new $pkg.NoBody.constructor.elem($pkg.NoBody))) { return req; } - newReq = $clone(req, Request); + newReq = $clone((req === ptrType$9.nil && $throwNilPointerError(), req), Request); newReq.Body = new readTrackingBody.ptr(req.Body, false, false); return newReq; }; @@ -278742,7 +281292,7 @@ $packages["net/http"] = (function() { err = _tmp$5; $s = -1; return [rewound, err]; } - newReq[0] = $clone(req, Request); + newReq[0] = $clone((req === ptrType$9.nil && $throwNilPointerError(), req), Request); newReq[0].Body = new readTrackingBody.ptr(body$1, false, false); _tmp$6 = newReq[0]; _tmp$7 = $ifaceNil; @@ -279273,32 +281823,37 @@ $packages["net/http"] = (function() { /* */ } return; } } catch(err) { $err = err; $s = -1; return false; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: replaceReqCanceler, $c: true, $r, $24r, $24r$1, _entry, _key, _tuple, fn, key, ok, t, $s, $deferred};return $f; } } }; $ptrType(Transport).prototype.dial = function dial(ctx, network, addr) { - var {$24r, $24r$1, _r$1, _r$2, _r$3, _tuple, addr, c, ctx, err, network, t, $s, $r, $c} = $restore(this, {ctx, network, addr}); + var {$24r, _r$1, _r$2, _r$3, _tuple, _tuple$1, addr, c, c$1, ctx, err, err$1, network, t, $s, $r, $c} = $restore(this, {ctx, network, addr}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: t = this; /* */ if (!(t.DialContext === $throwNilPointerError)) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!(t.DialContext === $throwNilPointerError)) { */ case 1: _r$1 = t.DialContext(ctx, network, addr); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 4; case 4: return $24r; - /* } */ case 2: - /* */ if (!(t.Dial === $throwNilPointerError)) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (!(t.Dial === $throwNilPointerError)) { */ case 5: - _r$2 = t.Dial(network, addr); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple = _r$2; + _tuple = _r$1; c = _tuple[0]; err = _tuple[1]; if ($interfaceIsEqual(c, $ifaceNil) && $interfaceIsEqual(err, $ifaceNil)) { - err = errors.New("net/http: Transport.Dial hook returned (nil, nil)"); + err = errors.New("net/http: Transport.DialContext hook returned (nil, nil)"); } $s = -1; return [c, err]; - /* } */ case 6: - _r$3 = zeroDialer.DialContext(ctx, network, addr); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r$1 = _r$3; - $s = 9; case 9: return $24r$1; - /* */ } return; } var $f = {$blk: dial, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _r$3, _tuple, addr, c, ctx, err, network, t, $s};return $f; + /* } */ case 2: + /* */ if (!(t.Dial === $throwNilPointerError)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!(t.Dial === $throwNilPointerError)) { */ case 4: + _r$2 = t.Dial(network, addr); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$1 = _r$2; + c$1 = _tuple$1[0]; + err$1 = _tuple$1[1]; + if ($interfaceIsEqual(c$1, $ifaceNil) && $interfaceIsEqual(err$1, $ifaceNil)) { + err$1 = errors.New("net/http: Transport.Dial hook returned (nil, nil)"); + } + $s = -1; return [c$1, err$1]; + /* } */ case 5: + _r$3 = zeroDialer.DialContext(ctx, network, addr); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3; + $s = 8; case 8: return $24r; + /* */ } return; } var $f = {$blk: dial, $c: true, $r, $24r, _r$1, _r$2, _r$3, _tuple, _tuple$1, addr, c, c$1, ctx, err, err$1, network, t, $s};return $f; }; $ptrType(wantConn).prototype.waiting = function waiting() { var _selection, w; @@ -280730,31 +283285,22 @@ $packages["net/http"] = (function() { $s = -1; return [resp, err]; } resCode = resp.StatusCode; - /* */ if (!(continueCh === $chanNil)) { $s = 10; continue; } + /* */ if (!(continueCh === $chanNil) && (resCode === 100)) { $s = 10; continue; } /* */ $s = 11; continue; - /* if (!(continueCh === $chanNil)) { */ case 10: - /* */ if (resCode === 100) { $s = 12; continue; } - /* */ if (resCode >= 200) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (resCode === 100) { */ case 12: - /* */ if (!(trace === ptrType$18.nil) && !(trace.Got100Continue === $throwNilPointerError)) { $s = 15; continue; } - /* */ $s = 16; continue; - /* if (!(trace === ptrType$18.nil) && !(trace.Got100Continue === $throwNilPointerError)) { */ case 15: - $r = trace.Got100Continue(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 16: - $r = $send(continueCh, $clone($clone(new structType$1.ptr(), structType$1), structType$1)); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - continueCh = $chanNil; - $s = 14; continue; - /* } else if (resCode >= 200) { */ case 13: - $close(continueCh); - continueCh = $chanNil; - /* } */ case 14: + /* if (!(continueCh === $chanNil) && (resCode === 100)) { */ case 10: + /* */ if (!(trace === ptrType$18.nil) && !(trace.Got100Continue === $throwNilPointerError)) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (!(trace === ptrType$18.nil) && !(trace.Got100Continue === $throwNilPointerError)) { */ case 12: + $r = trace.Got100Continue(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 13: + $r = $send(continueCh, $clone($clone(new structType$1.ptr(), structType$1), structType$1)); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + continueCh = $chanNil; /* } */ case 11: is1xx = 100 <= resCode && resCode <= 199; is1xxNonTerminal = is1xx && !((resCode === 101)); - /* */ if (is1xxNonTerminal) { $s = 19; continue; } - /* */ $s = 20; continue; - /* if (is1xxNonTerminal) { */ case 19: + /* */ if (is1xxNonTerminal) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (is1xxNonTerminal) { */ case 16: num1xx = num1xx + (1) >> 0; if (num1xx > 5) { _tmp = ptrType$17.nil; @@ -280764,10 +283310,10 @@ $packages["net/http"] = (function() { $s = -1; return [resp, err]; } pc.readLimit = pc.maxHeaderResponseSize(); - /* */ if (!(trace === ptrType$18.nil) && !(trace.Got1xxResponse === $throwNilPointerError)) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if (!(trace === ptrType$18.nil) && !(trace.Got1xxResponse === $throwNilPointerError)) { */ case 21: - _r$3 = trace.Got1xxResponse(resCode, (resp.Header)); /* */ $s = 23; case 23: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!(trace === ptrType$18.nil) && !(trace.Got1xxResponse === $throwNilPointerError)) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (!(trace === ptrType$18.nil) && !(trace.Got1xxResponse === $throwNilPointerError)) { */ case 18: + _r$3 = trace.Got1xxResponse(resCode, (resp.Header)); /* */ $s = 20; case 20: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } err$2 = _r$3; if (!($interfaceIsEqual(err$2, $ifaceNil))) { _tmp$2 = ptrType$17.nil; @@ -280776,16 +283322,28 @@ $packages["net/http"] = (function() { err = _tmp$3; $s = -1; return [resp, err]; } - /* } */ case 22: + /* } */ case 19: /* continue; */ $s = 7; continue; - /* } */ case 20: + /* } */ case 17: /* break; */ $s = 8; continue; case 8: - _r$4 = resp.isProtocolSwitch(); /* */ $s = 26; case 26: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if (_r$4) { $s = 24; continue; } - /* */ $s = 25; continue; - /* if (_r$4) { */ case 24: + _r$4 = resp.isProtocolSwitch(); /* */ $s = 23; case 23: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (_r$4) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (_r$4) { */ case 21: resp.Body = newReadWriteCloserBody(pc.br, pc.conn); + /* } */ case 22: + /* */ if (!(continueCh === $chanNil)) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (!(continueCh === $chanNil)) { */ case 24: + /* */ if (resp.Close || rc.req.Close) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (resp.Close || rc.req.Close) { */ case 26: + $close(continueCh); + $s = 28; continue; + /* } else { */ case 27: + $r = $send(continueCh, $clone($clone(new structType$1.ptr(), structType$1), structType$1)); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 28: /* } */ case 25: resp.TLS = pc.tlsState; $s = -1; return [resp, err]; @@ -280931,7 +283489,7 @@ $packages["net/http"] = (function() { err = _selection[1][0]; $s = -1; return $interfaceIsEqual(err, $ifaceNil); /* } else if (_selection[0] === 1) { */ case 2: - _r$1 = time.NewTimer(new time.Duration(0, 50000000)); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1 = time.NewTimer(maxWriteWaitBeforeConnReuse); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } t = _r$1; $deferred.push([$methodVal(t, "Stop"), []]); _r$2 = $select([[pc.writeErrCh], [t.C]]); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } @@ -281239,8 +283797,8 @@ $packages["net/http"] = (function() { $s = -1; return; /* */ } return; } var $f = {$blk: closeLocked, $c: true, $r, _r$1, err, pc, $s};return $f; }; - canonicalAddr = function canonicalAddr$1(url$1) { - var {_entry, _r$1, _tuple, addr$1, err, port, url$1, v, $s, $r, $c} = $restore(this, {url$1}); + idnaASCIIFromURL = function idnaASCIIFromURL$1(url$1) { + var {_r$1, _tuple, addr$1, err, url$1, v, $s, $r, $c} = $restore(this, {url$1}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: addr$1 = url$1.Hostname(); _r$1 = idnaASCII(addr$1); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } @@ -281250,12 +283808,21 @@ $packages["net/http"] = (function() { if ($interfaceIsEqual(err, $ifaceNil)) { addr$1 = v; } + $s = -1; return addr$1; + /* */ } return; } var $f = {$blk: idnaASCIIFromURL$1, $c: true, $r, _r$1, _tuple, addr$1, err, url$1, v, $s};return $f; + }; + canonicalAddr = function canonicalAddr$1(url$1) { + var {$24r, _entry, _r$1, _r$2, port, url$1, $s, $r, $c} = $restore(this, {url$1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: port = url$1.Port(); if (port === "") { port = (_entry = $mapIndex(portMap,$String.keyFor(url$1.Scheme)), _entry !== undefined ? _entry.v : ""); } - $s = -1; return net.JoinHostPort(addr$1, port); - /* */ } return; } var $f = {$blk: canonicalAddr$1, $c: true, $r, _entry, _r$1, _tuple, addr$1, err, port, url$1, v, $s};return $f; + _r$1 = idnaASCIIFromURL(url$1); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = net.JoinHostPort(_r$1, port); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: canonicalAddr$1, $c: true, $r, $24r, _entry, _r$1, _r$2, port, url$1, $s};return $f; }; $ptrType(bodyEOFSignal).prototype.Read = function Read$3(p) { var {$24r, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, closed, err, es, n, p, rerr, $s, $deferred, $r, $c} = $restore(this, {p}); @@ -281418,7 +283985,7 @@ $packages["net/http"] = (function() { var {$24r, _r$1, cfg, $s, $r, $c} = $restore(this, {cfg}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if (cfg === ptrType$15.nil) { - $s = -1; return new tls.Config.ptr($ifaceNil, $throwNilPointerError, sliceType$13.nil, false, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, ptrType$33.nil, sliceType$2.nil, "", 0, ptrType$33.nil, false, sliceType$14.nil, false, false, arrayType$1.zero(), $ifaceNil, 0, 0, sliceType$15.nil, false, 0, $ifaceNil, new sync.RWMutex.ptr(new sync.Mutex.ptr(0, 0), 0, 0, new atomic.Int32.ptr(new atomic.noCopy.ptr(), 0), new atomic.Int32.ptr(new atomic.noCopy.ptr(), 0)), sliceType$16.nil, sliceType$16.nil); + $s = -1; return new tls.Config.ptr($ifaceNil, $throwNilPointerError, sliceType$13.nil, false, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, ptrType$33.nil, sliceType$2.nil, "", 0, ptrType$33.nil, false, sliceType$14.nil, false, false, arrayType$1.zero(), $ifaceNil, $throwNilPointerError, $throwNilPointerError, 0, 0, sliceType$15.nil, false, 0, $ifaceNil, new sync.RWMutex.ptr(new sync.Mutex.ptr(0, 0), 0, 0, new atomic.Int32.ptr(new atomic.noCopy.ptr(), 0), new atomic.Int32.ptr(new atomic.noCopy.ptr(), 0)), sliceType$16.nil, sliceType$16.nil); } _r$1 = cfg.Clone(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $24r = _r$1; @@ -282459,10 +285026,10 @@ $packages["net/http"] = (function() { _ref = b.hdr; if ($assertType(_ref, ptrType$9, true)[1]) { rr = _ref.$val; - mergeSetHeader((rr.$ptr_Trailer || (rr.$ptr_Trailer = new ptrType$37(function() { return this.$target.Trailer; }, function($v) { this.$target.Trailer = $v; }, rr))), (hdr)); + mergeSetHeader((rr === ptrType$9.nil && $throwNilPointerError(), (rr.$ptr_Trailer || (rr.$ptr_Trailer = new ptrType$37(function() { return this.$target.Trailer; }, function($v) { this.$target.Trailer = $v; }, rr)))), (hdr)); } else if ($assertType(_ref, ptrType$17, true)[1]) { rr$1 = _ref.$val; - mergeSetHeader((rr$1.$ptr_Trailer || (rr$1.$ptr_Trailer = new ptrType$37(function() { return this.$target.Trailer; }, function($v) { this.$target.Trailer = $v; }, rr$1))), (hdr)); + mergeSetHeader((rr$1 === ptrType$17.nil && $throwNilPointerError(), (rr$1.$ptr_Trailer || (rr$1.$ptr_Trailer = new ptrType$37(function() { return this.$target.Trailer; }, function($v) { this.$target.Trailer = $v; }, rr$1)))), (hdr)); } $s = -1; return $ifaceNil; /* */ } return; } var $f = {$blk: readTrailer, $c: true, $r, _r$1, _r$2, _r$3, _r$4, _ref, _tuple, _tuple$1, b, buf, err, hdr, rr, rr$1, $s};return $f; @@ -282655,7 +285222,7 @@ $packages["net/http"] = (function() { }; finishAsyncByteRead.prototype.Read = function(...$args) { return this.$val.Read(...$args); }; unwrapNopCloser = function unwrapNopCloser$1(r) { - var {$24r, _1, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, isNopCloser, r, underlyingReader, $s, $r, $c} = $restore(this, {r}); + var {$24r, _1, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, isNopCloser, r, underlyingReader, $s, $r, $c} = $restore(this, {r}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: underlyingReader = $ifaceNil; isNopCloser = false; @@ -282663,15 +285230,13 @@ $packages["net/http"] = (function() { /* */ if ($interfaceIsEqual(_1, (nopCloserType)) || $interfaceIsEqual(_1, (nopCloserWriterToType))) { $s = 2; continue; } /* */ $s = 3; continue; /* if ($interfaceIsEqual(_1, (nopCloserType)) || $interfaceIsEqual(_1, (nopCloserWriterToType))) { */ case 2: - _r$1 = reflect.ValueOf(r); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = $clone(_r$1, reflect.Value).Field(0); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = $clone(_r$2, reflect.Value).Interface(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tmp = $assertType(_r$3, io.Reader); + _r$1 = $clone($clone(reflect.ValueOf(r), reflect.Value).Field(0), reflect.Value).Interface(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tmp = $assertType(_r$1, io.Reader); _tmp$1 = true; underlyingReader = _tmp; isNopCloser = _tmp$1; $24r = [underlyingReader, isNopCloser]; - $s = 8; case 8: return $24r; + $s = 6; case 6: return $24r; /* } else { */ case 3: _tmp$2 = $ifaceNil; _tmp$3 = false; @@ -282681,7 +285246,7 @@ $packages["net/http"] = (function() { /* } */ case 4: case 1: $s = -1; return [underlyingReader, isNopCloser]; - /* */ } return; } var $f = {$blk: unwrapNopCloser$1, $c: true, $r, $24r, _1, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, isNopCloser, r, underlyingReader, $s};return $f; + /* */ } return; } var $f = {$blk: unwrapNopCloser$1, $c: true, $r, $24r, _1, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, isNopCloser, r, underlyingReader, $s};return $f; }; isKnownInMemoryReader = function isKnownInMemoryReader$1(r) { var {$24r, $24r$1, _r$1, _r$2, _r$3, _ref, _tuple, _tuple$1, ok, ok$1, r, r$1, r$2, $s, $r, $c} = $restore(this, {r}); @@ -282873,7 +285438,7 @@ $packages["net/http"] = (function() { }; $pkg.StatusText = StatusText; $ptrType(socksDialer).prototype.connect = function connect(ctx, c, address) { - var {$24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$13, $24r$14, $24r$15, $24r$16, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _$11, _1, _i, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, a, address, am, am$1, ams, b, c, cmdErr, ctx, ctxErr, d, deadline, done, err, err$1, errCh, host, ip, ip4, ip6, l, ok, port, x$7, x$8, $s, $deferred, $r, $c} = $restore(this, {ctx, c, address}); + var {$24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$13, $24r$14, $24r$15, $24r$16, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _$11, _1, _i, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, a, address, am, am$1, ams, b, c, cmdErr, ctx, ctxErr, d, deadline, done, err, err$1, errCh, host, ip, ip4, ip6, l, ok, port, x$7, x$8, $s, $deferred, $r, $c} = $restore(this, {ctx, c, address}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); a = [a]; c = [c]; @@ -283029,154 +285594,155 @@ $packages["net/http"] = (function() { /* } */ case 29: b = $subslice(b, 0, 0); b = $append(b, 5, ((d.cmd << 24 >>> 24)), 0); - ip = net.ParseIP(host); - /* */ if (!(ip === net.IP.nil)) { $s = 34; continue; } - /* */ $s = 35; continue; - /* if (!(ip === net.IP.nil)) { */ case 34: + _r$7 = net.ParseIP(host); /* */ $s = 34; case 34: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + ip = _r$7; + /* */ if (!(ip === net.IP.nil)) { $s = 35; continue; } + /* */ $s = 36; continue; + /* if (!(ip === net.IP.nil)) { */ case 35: ip4 = ip.To4(); - /* */ if (!(ip4 === net.IP.nil)) { $s = 37; continue; } - /* */ $s = 38; continue; - /* if (!(ip4 === net.IP.nil)) { */ case 37: + /* */ if (!(ip4 === net.IP.nil)) { $s = 38; continue; } + /* */ $s = 39; continue; + /* if (!(ip4 === net.IP.nil)) { */ case 38: b = $append(b, 1); b = $appendSlice(b, $convertSliceType(ip4, sliceType$3)); - $s = 39; continue; - /* } else { */ case 38: + $s = 40; continue; + /* } else { */ case 39: ip6 = ip.To16(); - /* */ if (!(ip6 === net.IP.nil)) { $s = 40; continue; } - /* */ $s = 41; continue; - /* if (!(ip6 === net.IP.nil)) { */ case 40: + /* */ if (!(ip6 === net.IP.nil)) { $s = 41; continue; } + /* */ $s = 42; continue; + /* if (!(ip6 === net.IP.nil)) { */ case 41: b = $append(b, 4); b = $appendSlice(b, $convertSliceType(ip6, sliceType$3)); - $s = 42; continue; - /* } else { */ case 41: + $s = 43; continue; + /* } else { */ case 42: _tmp$8 = $ifaceNil; _tmp$9 = errors.New("unknown address type"); _$11 = _tmp$8; ctxErr[0] = _tmp$9; $24r$6 = [_$11, ctxErr[0]]; - $s = 43; case 43: return $24r$6; - /* } */ case 42: - /* } */ case 39: - $s = 36; continue; - /* } else { */ case 35: - /* */ if (host.length > 255) { $s = 44; continue; } - /* */ $s = 45; continue; - /* if (host.length > 255) { */ case 44: + $s = 44; case 44: return $24r$6; + /* } */ case 43: + /* } */ case 40: + $s = 37; continue; + /* } else { */ case 36: + /* */ if (host.length > 255) { $s = 45; continue; } + /* */ $s = 46; continue; + /* if (host.length > 255) { */ case 45: _tmp$10 = $ifaceNil; _tmp$11 = errors.New("FQDN too long"); _$11 = _tmp$10; ctxErr[0] = _tmp$11; $24r$7 = [_$11, ctxErr[0]]; - $s = 46; case 46: return $24r$7; - /* } */ case 45: + $s = 47; case 47: return $24r$7; + /* } */ case 46: b = $append(b, 3); b = $append(b, ((host.length << 24 >>> 24))); b = $appendSlice(b, host); - /* } */ case 36: + /* } */ case 37: b = $append(b, (((port >> 8 >> 0) << 24 >>> 24)), ((port << 24 >>> 24))); - _r$7 = c[0].Write(b); /* */ $s = 47; case 47: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _tuple$4 = _r$7; + _r$8 = c[0].Write(b); /* */ $s = 48; case 48: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _tuple$4 = _r$8; ctxErr[0] = _tuple$4[1]; - /* */ if (!($interfaceIsEqual(ctxErr[0], $ifaceNil))) { $s = 48; continue; } - /* */ $s = 49; continue; - /* if (!($interfaceIsEqual(ctxErr[0], $ifaceNil))) { */ case 48: + /* */ if (!($interfaceIsEqual(ctxErr[0], $ifaceNil))) { $s = 49; continue; } + /* */ $s = 50; continue; + /* if (!($interfaceIsEqual(ctxErr[0], $ifaceNil))) { */ case 49: $24r$8 = [_$11, ctxErr[0]]; - $s = 50; case 50: return $24r$8; - /* } */ case 49: - _r$8 = io.ReadFull(c[0], $subslice(b, 0, 4)); /* */ $s = 51; case 51: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _tuple$5 = _r$8; + $s = 51; case 51: return $24r$8; + /* } */ case 50: + _r$9 = io.ReadFull(c[0], $subslice(b, 0, 4)); /* */ $s = 52; case 52: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _tuple$5 = _r$9; ctxErr[0] = _tuple$5[1]; - /* */ if (!($interfaceIsEqual(ctxErr[0], $ifaceNil))) { $s = 52; continue; } - /* */ $s = 53; continue; - /* if (!($interfaceIsEqual(ctxErr[0], $ifaceNil))) { */ case 52: + /* */ if (!($interfaceIsEqual(ctxErr[0], $ifaceNil))) { $s = 53; continue; } + /* */ $s = 54; continue; + /* if (!($interfaceIsEqual(ctxErr[0], $ifaceNil))) { */ case 53: $24r$9 = [_$11, ctxErr[0]]; - $s = 54; case 54: return $24r$9; - /* } */ case 53: - /* */ if (!(((0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]) === 5))) { $s = 55; continue; } - /* */ $s = 56; continue; - /* if (!(((0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]) === 5))) { */ case 55: + $s = 55; case 55: return $24r$9; + /* } */ case 54: + /* */ if (!(((0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]) === 5))) { $s = 56; continue; } + /* */ $s = 57; continue; + /* if (!(((0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]) === 5))) { */ case 56: _tmp$12 = $ifaceNil; _tmp$13 = errors.New("unexpected protocol version " + strconv.Itoa((((0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]) >> 0)))); _$11 = _tmp$12; ctxErr[0] = _tmp$13; $24r$10 = [_$11, ctxErr[0]]; - $s = 57; case 57: return $24r$10; - /* } */ case 56: + $s = 58; case 58: return $24r$10; + /* } */ case 57: cmdErr = (((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]) >> 0)); - /* */ if (!((cmdErr === 0))) { $s = 58; continue; } - /* */ $s = 59; continue; - /* if (!((cmdErr === 0))) { */ case 58: + /* */ if (!((cmdErr === 0))) { $s = 59; continue; } + /* */ $s = 60; continue; + /* if (!((cmdErr === 0))) { */ case 59: _tmp$14 = $ifaceNil; _tmp$15 = errors.New("unknown error " + new socksReply(cmdErr).String()); _$11 = _tmp$14; ctxErr[0] = _tmp$15; $24r$11 = [_$11, ctxErr[0]]; - $s = 60; case 60: return $24r$11; - /* } */ case 59: - /* */ if (!(((2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]) === 0))) { $s = 61; continue; } - /* */ $s = 62; continue; - /* if (!(((2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]) === 0))) { */ case 61: + $s = 61; case 61: return $24r$11; + /* } */ case 60: + /* */ if (!(((2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]) === 0))) { $s = 62; continue; } + /* */ $s = 63; continue; + /* if (!(((2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]) === 0))) { */ case 62: _tmp$16 = $ifaceNil; _tmp$17 = errors.New("non-zero reserved field"); _$11 = _tmp$16; ctxErr[0] = _tmp$17; $24r$12 = [_$11, ctxErr[0]]; - $s = 63; case 63: return $24r$12; - /* } */ case 62: + $s = 64; case 64: return $24r$12; + /* } */ case 63: l = 2; a[0] = new socksAddr.ptr("", net.IP.nil, 0); _1 = (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]); - /* */ if (_1 === (1)) { $s = 65; continue; } - /* */ if (_1 === (4)) { $s = 66; continue; } - /* */ if (_1 === (3)) { $s = 67; continue; } - /* */ $s = 68; continue; - /* if (_1 === (1)) { */ case 65: + /* */ if (_1 === (1)) { $s = 66; continue; } + /* */ if (_1 === (4)) { $s = 67; continue; } + /* */ if (_1 === (3)) { $s = 68; continue; } + /* */ $s = 69; continue; + /* if (_1 === (1)) { */ case 66: l = l + (4) >> 0; a[0].IP = $makeSlice(net.IP, 4); - $s = 69; continue; - /* } else if (_1 === (4)) { */ case 66: + $s = 70; continue; + /* } else if (_1 === (4)) { */ case 67: l = l + (16) >> 0; a[0].IP = $makeSlice(net.IP, 16); - $s = 69; continue; - /* } else if (_1 === (3)) { */ case 67: - _r$9 = io.ReadFull(c[0], $subslice(b, 0, 1)); /* */ $s = 70; case 70: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _tuple$6 = _r$9; + $s = 70; continue; + /* } else if (_1 === (3)) { */ case 68: + _r$10 = io.ReadFull(c[0], $subslice(b, 0, 1)); /* */ $s = 71; case 71: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _tuple$6 = _r$10; err$1 = _tuple$6[1]; - /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 71; continue; } - /* */ $s = 72; continue; - /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 71: + /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 72; continue; } + /* */ $s = 73; continue; + /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 72: _tmp$18 = $ifaceNil; _tmp$19 = err$1; _$11 = _tmp$18; ctxErr[0] = _tmp$19; $24r$13 = [_$11, ctxErr[0]]; - $s = 73; case 73: return $24r$13; - /* } */ case 72: + $s = 74; case 74: return $24r$13; + /* } */ case 73: l = l + ((((0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]) >> 0))) >> 0; - $s = 69; continue; - /* } else { */ case 68: + $s = 70; continue; + /* } else { */ case 69: _tmp$20 = $ifaceNil; _tmp$21 = errors.New("unknown address type " + strconv.Itoa((((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]) >> 0)))); _$11 = _tmp$20; ctxErr[0] = _tmp$21; $24r$14 = [_$11, ctxErr[0]]; - $s = 74; case 74: return $24r$14; - /* } */ case 69: - case 64: + $s = 75; case 75: return $24r$14; + /* } */ case 70: + case 65: if (b.$capacity < l) { b = $makeSlice(sliceType$3, l); } else { b = $subslice(b, 0, l); } - _r$10 = io.ReadFull(c[0], b); /* */ $s = 75; case 75: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _tuple$7 = _r$10; + _r$11 = io.ReadFull(c[0], b); /* */ $s = 76; case 76: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _tuple$7 = _r$11; ctxErr[0] = _tuple$7[1]; - /* */ if (!($interfaceIsEqual(ctxErr[0], $ifaceNil))) { $s = 76; continue; } - /* */ $s = 77; continue; - /* if (!($interfaceIsEqual(ctxErr[0], $ifaceNil))) { */ case 76: + /* */ if (!($interfaceIsEqual(ctxErr[0], $ifaceNil))) { $s = 77; continue; } + /* */ $s = 78; continue; + /* if (!($interfaceIsEqual(ctxErr[0], $ifaceNil))) { */ case 77: $24r$15 = [_$11, ctxErr[0]]; - $s = 78; case 78: return $24r$15; - /* } */ case 77: + $s = 79; case 79: return $24r$15; + /* } */ case 78: if (!(a[0].IP === net.IP.nil)) { $copySlice(a[0].IP, b); } else { @@ -283188,8 +285754,8 @@ $packages["net/http"] = (function() { _$11 = _tmp$22; ctxErr[0] = _tmp$23; $24r$16 = [_$11, ctxErr[0]]; - $s = 79; case 79: return $24r$16; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [_$11, ctxErr[0]]; } if($curGoroutine.asleep) { var $f = {$blk: connect, $c: true, $r, $24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$13, $24r$14, $24r$15, $24r$16, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _$11, _1, _i, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, a, address, am, am$1, ams, b, c, cmdErr, ctx, ctxErr, d, deadline, done, err, err$1, errCh, host, ip, ip4, ip6, l, ok, port, x$7, x$8, $s, $deferred};return $f; } } + $s = 80; case 80: return $24r$16; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [_$11, ctxErr[0]]; } if($curGoroutine.asleep) { var $f = {$blk: connect, $c: true, $r, $24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$13, $24r$14, $24r$15, $24r$16, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _$11, _1, _i, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, a, address, am, am$1, ams, b, c, cmdErr, ctx, ctxErr, d, deadline, done, err, err$1, errCh, host, ip, ip4, ip6, l, ok, port, x$7, x$8, $s, $deferred};return $f; } } }; sockssplitHostPort = function sockssplitHostPort$1(address) { var {_r$1, _tuple, _tuple$1, address, err, host, port, portnum, $s, $r, $c} = $restore(this, {address}); @@ -283313,7 +285879,7 @@ $packages["net/http"] = (function() { err$1 = _tuple$2[1]; $s = 9; continue; /* } else { */ case 8: - dd = new net.Dialer.ptr(new time.Duration(0, 0), new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil), $ifaceNil, false, new time.Duration(0, 0), new time.Duration(0, 0), ptrType$1.nil, $chanNil, $throwNilPointerError, $throwNilPointerError); + dd = new net.Dialer.ptr(new time.Duration(0, 0), new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil), $ifaceNil, false, new time.Duration(0, 0), new time.Duration(0, 0), ptrType$1.nil, $chanNil, $throwNilPointerError, $throwNilPointerError, 0); _r$4 = dd.DialContext(ctx, d.proxyNetwork, d.proxyAddress); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _tuple$3 = _r$4; c = _tuple$3[0]; @@ -283453,7 +286019,7 @@ $packages["net/http"] = (function() { return $ifaceNil; }; $ptrType(socksDialer).prototype.pathAddrs = function pathAddrs(address) { - var {_i, _r$1, _ref, _tmp, _tmp$1, _tmp$2, _tuple, a, address, d, dst, err, err$1, host, i, port, proxy, s, $s, $r, $c} = $restore(this, {address}); + var {_i, _r$1, _r$2, _ref, _tmp, _tmp$1, _tmp$2, _tuple, a, address, d, dst, err, err$1, host, i, port, proxy, s, $s, $r, $c} = $restore(this, {address}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: proxy = $ifaceNil; dst = $ifaceNil; @@ -283480,7 +286046,8 @@ $packages["net/http"] = (function() { $s = -1; return [proxy, dst, err]; } a = new socksAddr.ptr("", net.IP.nil, port); - a.IP = net.ParseIP(host); + _r$2 = net.ParseIP(host); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + a.IP = _r$2; if (a.IP === net.IP.nil) { a.Name = host; } @@ -283493,7 +286060,7 @@ $packages["net/http"] = (function() { $s = 1; continue; case 2: $s = -1; return [proxy, dst, err]; - /* */ } return; } var $f = {$blk: pathAddrs, $c: true, $r, _i, _r$1, _ref, _tmp, _tmp$1, _tmp$2, _tuple, a, address, d, dst, err, err$1, host, i, port, proxy, s, $s};return $f; + /* */ } return; } var $f = {$blk: pathAddrs, $c: true, $r, _i, _r$1, _r$2, _ref, _tmp, _tmp$1, _tmp$2, _tuple, a, address, d, dst, err, err$1, host, i, port, proxy, s, $s};return $f; }; socksNewDialer = function socksNewDialer$1(network, address) { var address, network; @@ -283510,7 +286077,7 @@ $packages["net/http"] = (function() { /* if (_1 === (0)) { */ case 2: $s = -1; return $ifaceNil; /* } else if (_1 === (2)) { */ case 3: - if ((up.Username.length === 0) || up.Username.length > 255 || (up.Password.length === 0) || up.Password.length > 255) { + if ((up.Username.length === 0) || up.Username.length > 255 || up.Password.length > 255) { $s = -1; return errors.New("invalid username/password"); } b = new sliceType$3([1]); @@ -283859,6 +286426,12 @@ $packages["net/http"] = (function() { $s = 2; case 2: return $24r; /* */ } return; } var $f = {$blk: SetWriteDeadline, $c: true, $r, $24r, _r$1, c, deadline, $s};return $f; }; + $ptrType(response).prototype.EnableFullDuplex = function EnableFullDuplex() { + var c; + c = this; + c.fullDuplex = true; + return $ifaceNil; + }; $ptrType(response).prototype.finalTrailers = function finalTrailers() { var {_entry, _entry$1, _i, _i$1, _i$2, _key, _key$1, _keys, _ref, _ref$1, _ref$2, _size, _tuple, found, k, k$1, kk, t, v, vv, w, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: @@ -284016,7 +286589,7 @@ $packages["net/http"] = (function() { var {_r$1, c, rwc, srv, $s, $r, $c} = $restore(this, {rwc}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: srv = this; - c = new conn.ptr(srv, $throwNilPointerError, rwc, "", ptrType$27.nil, $ifaceNil, ptrType$45.nil, ptrType$28.nil, ptrType$11.nil, "", new atomic.Pointer[15 /* net/http.response */].ptr(ptrType$46.nil), new atomic.Uint64.ptr(new atomic.noCopy.ptr(), new atomic.align64.ptr(), new $Uint64(0, 0)), new sync.Mutex.ptr(0, 0), false); + c = new conn.ptr(srv, $throwNilPointerError, rwc, "", ptrType$27.nil, $ifaceNil, ptrType$45.nil, ptrType$28.nil, ptrType$11.nil, "", new atomic.Pointer[25 /* net/http.response */].ptr(ptrType$46.nil), new atomic.Uint64.ptr(new atomic.noCopy.ptr(), new atomic.align64.ptr(), new $Uint64(0, 0)), new sync.Mutex.ptr(0, 0), false); /* */ if (false) { $s = 1; continue; } /* */ $s = 2; continue; /* if (false) { */ case 1: @@ -284579,7 +287152,7 @@ $packages["net/http"] = (function() { _r$8 = c[0].rwc.SetReadDeadline($clone(wholeReqDeadline, time.Time)); /* */ $s = 41; case 41: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } _r$8; /* } */ case 40: - w = new response.ptr(c[0], req, req.Body, cancelCtx, false, false, req.wantsHttp10KeepAlive(), req.wantsClose(), new atomic.Bool.ptr(new atomic.noCopy.ptr(), 0), new sync.Mutex.ptr(0, 0), ptrType$11.nil, new chunkWriter.ptr(ptrType$46.nil, false, false, false), new $global.Map(), false, new $Int64(0, 0), new $Int64(-1, 4294967295), 0, false, false, sliceType$2.nil, new atomic.Bool.ptr(new atomic.noCopy.ptr(), 0), arrayType$3.zero(), arrayType$4.zero(), arrayType$5.zero(), new $Chan($Bool, 1), new atomic.Bool.ptr(new atomic.noCopy.ptr(), 0)); + w = new response.ptr(c[0], req, req.Body, cancelCtx, false, false, req.wantsHttp10KeepAlive(), req.wantsClose(), new atomic.Bool.ptr(new atomic.noCopy.ptr(), 0), new sync.Mutex.ptr(0, 0), ptrType$11.nil, new chunkWriter.ptr(ptrType$46.nil, false, false, false), new $global.Map(), false, new $Int64(0, 0), new $Int64(-1, 4294967295), 0, false, false, false, sliceType$2.nil, new atomic.Bool.ptr(new atomic.noCopy.ptr(), 0), arrayType$3.zero(), arrayType$4.zero(), arrayType$5.zero(), new $Chan($Bool, 1), new atomic.Bool.ptr(new atomic.noCopy.ptr(), 0)); if (isH2Upgrade) { w.closeAfterReply = true; } @@ -284664,9 +287237,9 @@ $packages["net/http"] = (function() { $s = -1; return; /* } */ case 6: $r = checkWriteHeaderCode(code); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (code >= 100 && code <= 199) { $s = 9; continue; } + /* */ if (code >= 100 && code <= 199 && !((code === 101))) { $s = 9; continue; } /* */ $s = 10; continue; - /* if (code >= 100 && code <= 199) { */ case 9: + /* if (code >= 100 && code <= 199 && !((code === 101))) { */ case 9: /* */ if ((code === 100) && w.canWriteContinue.Load()) { $s = 11; continue; } /* */ $s = 12; continue; /* if ((code === 100) && w.canWriteContinue.Load()) { */ case 11: @@ -284834,7 +287407,7 @@ $packages["net/http"] = (function() { case 2: te = new Header(header[0]).get("Transfer-Encoding"); hasTE = !(te === ""); - if (w.handlerDone.Load() && !trailers && !hasTE && bodyAllowedForStatus(w.status) && new Header(header[0]).get("Content-Length") === "" && (!isHEAD || p.$length > 0)) { + if (w.handlerDone.Load() && !trailers && !hasTE && bodyAllowedForStatus(w.status) && !new Header(header[0]).has("Content-Length") && (!isHEAD || p.$length > 0)) { w.contentLength = (new $Int64(0, p.$length)); setHeader.contentLength = strconv.AppendInt($subslice(new sliceType$3(cw.res.clenBuf), 0, 0), (new $Int64(0, p.$length)), 10); } @@ -284863,9 +287436,9 @@ $packages["net/http"] = (function() { if (ok && !ecr.sawEOF.Load()) { w.closeAfterReply = true; } - /* */ if (!((x$8 = w.req.ContentLength, (x$8.$high === 0 && x$8.$low === 0))) && !w.closeAfterReply) { $s = 4; continue; } + /* */ if (!((x$8 = w.req.ContentLength, (x$8.$high === 0 && x$8.$low === 0))) && !w.closeAfterReply && !w.fullDuplex) { $s = 4; continue; } /* */ $s = 5; continue; - /* if (!((x$8 = w.req.ContentLength, (x$8.$high === 0 && x$8.$low === 0))) && !w.closeAfterReply) { */ case 4: + /* if (!((x$8 = w.req.ContentLength, (x$8.$high === 0 && x$8.$low === 0))) && !w.closeAfterReply && !w.fullDuplex) { */ case 4: _tmp = false; _tmp$1 = false; discard = _tmp; @@ -285444,19 +288017,24 @@ $packages["net/http"] = (function() { /* */ } return; } var $f = {$blk: isCommonNetReadError$1, $c: true, $r, _r$1, _tuple, _tuple$1, _v, err, neterr, oe, ok, ok$1, $s};return $f; }; $ptrType(conn).prototype.serve = function serve(ctx) { - var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _entry, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _v, c, cancelCtx, code, ctx, d, dl, err, err$1, err$2, fn, h, inFlightResponse, ok, ok$1, ok$2, proto, publicErr, re, req, tlsConn, tlsTO, v, w, x$10, x$7, x$8, x$9, $s, $deferred, $r, $c} = $restore(this, {ctx}); + var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _entry, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _v, c, cancelCtx, code, ctx, d, dl, err, err$1, err$2, fn, h, inFlightResponse, ok, ok$1, ok$2, proto, publicErr, ra, re, req, tlsConn, tlsTO, v, w, x$10, x$11, x$7, x$8, x$9, $s, $deferred, $r, $c} = $restore(this, {ctx}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); c = [c]; inFlightResponse = [inFlightResponse]; c[0] = this; _r$1 = c[0].rwc.RemoteAddr(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = _r$1.String(); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - c[0].remoteAddr = _r$2; + ra = _r$1; + /* */ if (!($interfaceIsEqual(ra, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(ra, $ifaceNil))) { */ case 2: + _r$2 = ra.String(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + c[0].remoteAddr = _r$2; + /* } */ case 3: _arg = ctx; _arg$1 = $pkg.LocalAddrContextKey; - _r$3 = c[0].rwc.LocalAddr(); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3 = c[0].rwc.LocalAddr(); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _arg$2 = _r$3; - _r$4 = context.WithValue(_arg, _arg$1, _arg$2); /* */ $s = 4; case 4: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4 = context.WithValue(_arg, _arg$1, _arg$2); /* */ $s = 6; case 6: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } ctx = _r$4; inFlightResponse[0] = ptrType$46.nil; $deferred.push([(function(c, inFlightResponse) { return function conn·serve·func1() { @@ -285495,214 +288073,214 @@ $packages["net/http"] = (function() { _tuple = $assertType(c[0].rwc, ptrType$29, true); tlsConn = _tuple[0]; ok = _tuple[1]; - /* */ if (ok) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (ok) { */ case 5: + /* */ if (ok) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (ok) { */ case 7: tlsTO = c[0].server.tlsHandshakeTimeout(); - /* */ if ((tlsTO.$high > 0 || (tlsTO.$high === 0 && tlsTO.$low > 0))) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if ((tlsTO.$high > 0 || (tlsTO.$high === 0 && tlsTO.$low > 0))) { */ case 7: - _r$5 = time.Now(); /* */ $s = 9; case 9: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$6 = $clone(_r$5, time.Time).Add(tlsTO); /* */ $s = 10; case 10: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + /* */ if ((tlsTO.$high > 0 || (tlsTO.$high === 0 && tlsTO.$low > 0))) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if ((tlsTO.$high > 0 || (tlsTO.$high === 0 && tlsTO.$low > 0))) { */ case 9: + _r$5 = time.Now(); /* */ $s = 11; case 11: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$6 = $clone(_r$5, time.Time).Add(tlsTO); /* */ $s = 12; case 12: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } dl = $clone(_r$6, time.Time); - _r$7 = c[0].rwc.SetReadDeadline($clone(dl, time.Time)); /* */ $s = 11; case 11: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$7 = c[0].rwc.SetReadDeadline($clone(dl, time.Time)); /* */ $s = 13; case 13: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _r$7; - _r$8 = c[0].rwc.SetWriteDeadline($clone(dl, time.Time)); /* */ $s = 12; case 12: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$8 = c[0].rwc.SetWriteDeadline($clone(dl, time.Time)); /* */ $s = 14; case 14: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } _r$8; - /* } */ case 8: - _r$9 = tlsConn.HandshakeContext(ctx); /* */ $s = 13; case 13: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + /* } */ case 10: + _r$9 = tlsConn.HandshakeContext(ctx); /* */ $s = 15; case 15: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } err = _r$9; - /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 14: + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 16: _tuple$1 = $assertType(err, tls.RecordHeaderError, true); re = $clone(_tuple$1[0], tls.RecordHeaderError); ok$1 = _tuple$1[1]; - /* */ if (ok$1 && !($interfaceIsEqual(re.Conn, $ifaceNil)) && tlsRecordHeaderLooksLikeHTTP($clone(re.RecordHeader, arrayType$6))) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (ok$1 && !($interfaceIsEqual(re.Conn, $ifaceNil)) && tlsRecordHeaderLooksLikeHTTP($clone(re.RecordHeader, arrayType$6))) { */ case 16: - _r$10 = io.WriteString(re.Conn, "HTTP/1.0 400 Bad Request\r\n\r\nClient sent an HTTP request to an HTTPS server.\n"); /* */ $s = 18; case 18: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + /* */ if (ok$1 && !($interfaceIsEqual(re.Conn, $ifaceNil)) && tlsRecordHeaderLooksLikeHTTP($clone(re.RecordHeader, arrayType$6))) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (ok$1 && !($interfaceIsEqual(re.Conn, $ifaceNil)) && tlsRecordHeaderLooksLikeHTTP($clone(re.RecordHeader, arrayType$6))) { */ case 18: + _r$10 = io.WriteString(re.Conn, "HTTP/1.0 400 Bad Request\r\n\r\nClient sent an HTTP request to an HTTPS server.\n"); /* */ $s = 20; case 20: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } _r$10; - _r$11 = re.Conn.Close(); /* */ $s = 19; case 19: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _r$11 = re.Conn.Close(); /* */ $s = 21; case 21: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } _r$11; - $s = 20; case 20: return; - /* } */ case 17: - _r$12 = c[0].rwc.RemoteAddr(); /* */ $s = 21; case 21: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + $s = 22; case 22: return; + /* } */ case 19: + _r$12 = c[0].rwc.RemoteAddr(); /* */ $s = 23; case 23: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } _arg$3 = _r$12; _arg$4 = err; - $r = c[0].server.logf("http: TLS handshake error from %s: %v", new sliceType([_arg$3, _arg$4])); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 23; case 23: return; - /* } */ case 15: - /* */ if ((tlsTO.$high > 0 || (tlsTO.$high === 0 && tlsTO.$low > 0))) { $s = 24; continue; } - /* */ $s = 25; continue; - /* if ((tlsTO.$high > 0 || (tlsTO.$high === 0 && tlsTO.$low > 0))) { */ case 24: - _r$13 = c[0].rwc.SetReadDeadline($clone(new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil), time.Time)); /* */ $s = 26; case 26: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + $r = c[0].server.logf("http: TLS handshake error from %s: %v", new sliceType([_arg$3, _arg$4])); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 25; case 25: return; + /* } */ case 17: + /* */ if ((tlsTO.$high > 0 || (tlsTO.$high === 0 && tlsTO.$low > 0))) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if ((tlsTO.$high > 0 || (tlsTO.$high === 0 && tlsTO.$low > 0))) { */ case 26: + _r$13 = c[0].rwc.SetReadDeadline($clone(new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil), time.Time)); /* */ $s = 28; case 28: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } _r$13; - _r$14 = c[0].rwc.SetWriteDeadline($clone(new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil), time.Time)); /* */ $s = 27; case 27: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _r$14 = c[0].rwc.SetWriteDeadline($clone(new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil), time.Time)); /* */ $s = 29; case 29: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } _r$14; - /* } */ case 25: + /* } */ case 27: c[0].tlsState = new tls.ConnectionState.ptr(0, false, false, 0, "", false, "", sliceType$10.nil, sliceType$11.nil, sliceType$5.nil, sliceType$3.nil, sliceType$3.nil, $throwNilPointerError); - _r$15 = tlsConn.ConnectionState(); /* */ $s = 28; case 28: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - tls.ConnectionState.copy(c[0].tlsState, _r$15); + _r$15 = tlsConn.ConnectionState(); /* */ $s = 30; case 30: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + tls.ConnectionState.copy((x$7 = c[0].tlsState, (x$7 === ptrType$27.nil && $throwNilPointerError(), x$7)), _r$15); proto = c[0].tlsState.NegotiatedProtocol; - /* */ if (validNextProto(proto)) { $s = 29; continue; } - /* */ $s = 30; continue; - /* if (validNextProto(proto)) { */ case 29: + /* */ if (validNextProto(proto)) { $s = 31; continue; } + /* */ $s = 32; continue; + /* if (validNextProto(proto)) { */ case 31: fn = (_entry = $mapIndex(c[0].server.TLSNextProto,$String.keyFor(proto)), _entry !== undefined ? _entry.v : $throwNilPointerError); - /* */ if (!(fn === $throwNilPointerError)) { $s = 31; continue; } - /* */ $s = 32; continue; - /* if (!(fn === $throwNilPointerError)) { */ case 31: + /* */ if (!(fn === $throwNilPointerError)) { $s = 33; continue; } + /* */ $s = 34; continue; + /* if (!(fn === $throwNilPointerError)) { */ case 33: h = new initALPNRequest.ptr(ctx, tlsConn, $clone(new serverHandler.ptr(c[0].server), serverHandler)); - $r = c[0].setState(c[0].rwc, 1, false); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = fn(c[0].server, tlsConn, new h.constructor.elem(h)); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 32: - $s = 35; case 35: return; - /* } */ case 30: - /* } */ case 6: - _r$16 = context.WithCancel(ctx); /* */ $s = 36; case 36: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + $r = c[0].setState(c[0].rwc, 1, false); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fn(c[0].server, tlsConn, new h.constructor.elem(h)); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 34: + $s = 37; case 37: return; + /* } */ case 32: + /* } */ case 8: + _r$16 = context.WithCancel(ctx); /* */ $s = 38; case 38: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } _tuple$2 = _r$16; ctx = _tuple$2[0]; cancelCtx = _tuple$2[1]; c[0].cancelCtx = cancelCtx; $deferred.push([cancelCtx, []]); c[0].r = new connReader.ptr(c[0], new sync.Mutex.ptr(0, 0), false, arrayType$2.zero(), ptrType$47.nil, false, false, new $Int64(0, 0)); - _r$17 = newBufioReader(c[0].r); /* */ $s = 37; case 37: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + _r$17 = newBufioReader(c[0].r); /* */ $s = 39; case 39: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } c[0].bufr = _r$17; - _r$18 = newBufioWriterSize((x$7 = new checkConnErrorWriter.ptr(c[0]), new x$7.constructor.elem(x$7)), 4096); /* */ $s = 38; case 38: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + _r$18 = newBufioWriterSize((x$8 = new checkConnErrorWriter.ptr(c[0]), new x$8.constructor.elem(x$8)), 4096); /* */ $s = 40; case 40: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } c[0].bufw = _r$18; - /* while (true) { */ case 39: - _r$19 = c[0].readRequest(ctx); /* */ $s = 41; case 41: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + /* while (true) { */ case 41: + _r$19 = c[0].readRequest(ctx); /* */ $s = 43; case 43: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } _tuple$3 = _r$19; w = _tuple$3[0]; err$1 = _tuple$3[1]; - /* */ if (!((x$8 = c[0].r.remain, x$9 = c[0].server.initialReadLimitSize(), (x$8.$high === x$9.$high && x$8.$low === x$9.$low)))) { $s = 42; continue; } - /* */ $s = 43; continue; - /* if (!((x$8 = c[0].r.remain, x$9 = c[0].server.initialReadLimitSize(), (x$8.$high === x$9.$high && x$8.$low === x$9.$low)))) { */ case 42: - $r = c[0].setState(c[0].rwc, 1, true); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 43: - /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 45; continue; } - /* */ $s = 46; continue; - /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 45: - /* */ if ($interfaceIsEqual(err$1, errTooLarge)) { $s = 48; continue; } - /* */ if (isUnsupportedTEError(err$1)) { $s = 49; continue; } - _r$20 = isCommonNetReadError(err$1); /* */ $s = 53; case 53: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - /* */ if (_r$20) { $s = 50; continue; } - /* */ $s = 51; continue; - /* if ($interfaceIsEqual(err$1, errTooLarge)) { */ case 48: - _r$21 = fmt.Fprintf(c[0].rwc, "HTTP/1.1 431 Request Header Fields Too Large\r\nContent-Type: text/plain; charset=utf-8\r\nConnection: close\r\n\r\n431 Request Header Fields Too Large", sliceType.nil); /* */ $s = 54; case 54: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + /* */ if (!((x$9 = c[0].r.remain, x$10 = c[0].server.initialReadLimitSize(), (x$9.$high === x$10.$high && x$9.$low === x$10.$low)))) { $s = 44; continue; } + /* */ $s = 45; continue; + /* if (!((x$9 = c[0].r.remain, x$10 = c[0].server.initialReadLimitSize(), (x$9.$high === x$10.$high && x$9.$low === x$10.$low)))) { */ case 44: + $r = c[0].setState(c[0].rwc, 1, true); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 45: + /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 47; continue; } + /* */ $s = 48; continue; + /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 47: + /* */ if ($interfaceIsEqual(err$1, errTooLarge)) { $s = 50; continue; } + /* */ if (isUnsupportedTEError(err$1)) { $s = 51; continue; } + _r$20 = isCommonNetReadError(err$1); /* */ $s = 55; case 55: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + /* */ if (_r$20) { $s = 52; continue; } + /* */ $s = 53; continue; + /* if ($interfaceIsEqual(err$1, errTooLarge)) { */ case 50: + _r$21 = fmt.Fprintf(c[0].rwc, "HTTP/1.1 431 Request Header Fields Too Large\r\nContent-Type: text/plain; charset=utf-8\r\nConnection: close\r\n\r\n431 Request Header Fields Too Large", sliceType.nil); /* */ $s = 56; case 56: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } _r$21; - $r = c[0].closeWriteAndWait(); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 56; case 56: return; - /* } else if (isUnsupportedTEError(err$1)) { */ case 49: + $r = c[0].closeWriteAndWait(); /* */ $s = 57; case 57: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 58; case 58: return; + /* } else if (isUnsupportedTEError(err$1)) { */ case 51: code = 501; - _r$22 = fmt.Fprintf(c[0].rwc, "HTTP/1.1 %d %s%sUnsupported transfer encoding", new sliceType([new $Int(code), new $String(StatusText(code)), new $String("\r\nContent-Type: text/plain; charset=utf-8\r\nConnection: close\r\n\r\n")])); /* */ $s = 57; case 57: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + _r$22 = fmt.Fprintf(c[0].rwc, "HTTP/1.1 %d %s%sUnsupported transfer encoding", new sliceType([new $Int(code), new $String(StatusText(code)), new $String("\r\nContent-Type: text/plain; charset=utf-8\r\nConnection: close\r\n\r\n")])); /* */ $s = 59; case 59: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } _r$22; - $s = 58; case 58: return; - /* } else if (_r$20) { */ case 50: - $s = 59; case 59: return; - /* } else { */ case 51: + $s = 60; case 60: return; + /* } else if (_r$20) { */ case 52: + $s = 61; case 61: return; + /* } else { */ case 53: _tuple$4 = $assertType(err$1, statusError, true); v = $clone(_tuple$4[0], statusError); ok$2 = _tuple$4[1]; - /* */ if (ok$2) { $s = 60; continue; } - /* */ $s = 61; continue; - /* if (ok$2) { */ case 60: - _r$23 = fmt.Fprintf(c[0].rwc, "HTTP/1.1 %d %s: %s%s%d %s: %s", new sliceType([new $Int(v.code), new $String(StatusText(v.code)), new $String(v.text), new $String("\r\nContent-Type: text/plain; charset=utf-8\r\nConnection: close\r\n\r\n"), new $Int(v.code), new $String(StatusText(v.code)), new $String(v.text)])); /* */ $s = 62; case 62: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + /* */ if (ok$2) { $s = 62; continue; } + /* */ $s = 63; continue; + /* if (ok$2) { */ case 62: + _r$23 = fmt.Fprintf(c[0].rwc, "HTTP/1.1 %d %s: %s%s%d %s: %s", new sliceType([new $Int(v.code), new $String(StatusText(v.code)), new $String(v.text), new $String("\r\nContent-Type: text/plain; charset=utf-8\r\nConnection: close\r\n\r\n"), new $Int(v.code), new $String(StatusText(v.code)), new $String(v.text)])); /* */ $s = 64; case 64: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } _r$23; - $s = 63; case 63: return; - /* } */ case 61: + $s = 65; case 65: return; + /* } */ case 63: publicErr = "400 Bad Request"; - _r$24 = fmt.Fprintf(c[0].rwc, "HTTP/1.1 " + publicErr + "\r\nContent-Type: text/plain; charset=utf-8\r\nConnection: close\r\n\r\n" + publicErr, sliceType.nil); /* */ $s = 64; case 64: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _r$24 = fmt.Fprintf(c[0].rwc, "HTTP/1.1 " + publicErr + "\r\nContent-Type: text/plain; charset=utf-8\r\nConnection: close\r\n\r\n" + publicErr, sliceType.nil); /* */ $s = 66; case 66: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } _r$24; - $s = 65; case 65: return; - /* } */ case 52: - case 47: - /* } */ case 46: + $s = 67; case 67: return; + /* } */ case 54: + case 49: + /* } */ case 48: req = w.req; - /* */ if (req.expectsContinue()) { $s = 66; continue; } - /* */ if (!(new Header(req.Header).get("Expect") === "")) { $s = 67; continue; } - /* */ $s = 68; continue; - /* if (req.expectsContinue()) { */ case 66: - if (req.ProtoAtLeast(1, 1) && !((x$10 = req.ContentLength, (x$10.$high === 0 && x$10.$low === 0)))) { + /* */ if (req.expectsContinue()) { $s = 68; continue; } + /* */ if (!(new Header(req.Header).get("Expect") === "")) { $s = 69; continue; } + /* */ $s = 70; continue; + /* if (req.expectsContinue()) { */ case 68: + if (req.ProtoAtLeast(1, 1) && !((x$11 = req.ContentLength, (x$11.$high === 0 && x$11.$low === 0)))) { req.Body = new expectContinueReader.ptr(w, req.Body, new atomic.Bool.ptr(new atomic.noCopy.ptr(), 0), new atomic.Bool.ptr(new atomic.noCopy.ptr(), 0)); w.canWriteContinue.Store(true); } - $s = 68; continue; - /* } else if (!(new Header(req.Header).get("Expect") === "")) { */ case 67: - $r = w.sendExpectationFailed(); /* */ $s = 69; case 69: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 70; case 70: return; - /* } */ case 68: + $s = 70; continue; + /* } else if (!(new Header(req.Header).get("Expect") === "")) { */ case 69: + $r = w.sendExpectationFailed(); /* */ $s = 71; case 71: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 72; case 72: return; + /* } */ case 70: c[0].curReq.Store(w); - _r$25 = requestBodyRemains(req.Body); /* */ $s = 74; case 74: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - /* */ if (_r$25) { $s = 71; continue; } - /* */ $s = 72; continue; - /* if (_r$25) { */ case 71: - $r = registerOnHitEOF(req.Body, $methodVal(w.conn.r, "startBackgroundRead")); /* */ $s = 75; case 75: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 73; continue; - /* } else { */ case 72: - $r = w.conn.r.startBackgroundRead(); /* */ $s = 76; case 76: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 73: + _r$25 = requestBodyRemains(req.Body); /* */ $s = 76; case 76: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + /* */ if (_r$25) { $s = 73; continue; } + /* */ $s = 74; continue; + /* if (_r$25) { */ case 73: + $r = registerOnHitEOF(req.Body, $methodVal(w.conn.r, "startBackgroundRead")); /* */ $s = 77; case 77: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 75; continue; + /* } else { */ case 74: + $r = w.conn.r.startBackgroundRead(); /* */ $s = 78; case 78: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 75: inFlightResponse[0] = w; - $r = $clone(new serverHandler.ptr(c[0].server), serverHandler).ServeHTTP(w, w.req); /* */ $s = 77; case 77: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = $clone(new serverHandler.ptr(c[0].server), serverHandler).ServeHTTP(w, w.req); /* */ $s = 79; case 79: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } inFlightResponse[0] = ptrType$46.nil; - $r = w.cancelCtx(); /* */ $s = 78; case 78: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$26 = c[0].hijacked(); /* */ $s = 81; case 81: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - /* */ if (_r$26) { $s = 79; continue; } - /* */ $s = 80; continue; - /* if (_r$26) { */ case 79: - $s = 82; case 82: return; - /* } */ case 80: - $r = w.finishRequest(); /* */ $s = 83; case 83: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$27 = c[0].rwc.SetWriteDeadline($clone(new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil), time.Time)); /* */ $s = 84; case 84: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + $r = w.cancelCtx(); /* */ $s = 80; case 80: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$26 = c[0].hijacked(); /* */ $s = 83; case 83: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + /* */ if (_r$26) { $s = 81; continue; } + /* */ $s = 82; continue; + /* if (_r$26) { */ case 81: + $s = 84; case 84: return; + /* } */ case 82: + $r = w.finishRequest(); /* */ $s = 85; case 85: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$27 = c[0].rwc.SetWriteDeadline($clone(new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil), time.Time)); /* */ $s = 86; case 86: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } _r$27; - _r$28 = w.shouldReuseConnection(); /* */ $s = 87; case 87: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - /* */ if (!_r$28) { $s = 85; continue; } - /* */ $s = 86; continue; - /* if (!_r$28) { */ case 85: - if (w.requestBodyLimitHit) { _v = true; $s = 90; continue s; } - _r$29 = w.closedRequestBodyEarly(); /* */ $s = 91; case 91: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } - _v = _r$29; case 90: - /* */ if (_v) { $s = 88; continue; } - /* */ $s = 89; continue; - /* if (_v) { */ case 88: - $r = c[0].closeWriteAndWait(); /* */ $s = 92; case 92: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 89: - $s = 93; case 93: return; - /* } */ case 86: - $r = c[0].setState(c[0].rwc, 2, true); /* */ $s = 94; case 94: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$28 = w.shouldReuseConnection(); /* */ $s = 89; case 89: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + /* */ if (!_r$28) { $s = 87; continue; } + /* */ $s = 88; continue; + /* if (!_r$28) { */ case 87: + if (w.requestBodyLimitHit) { _v = true; $s = 92; continue s; } + _r$29 = w.closedRequestBodyEarly(); /* */ $s = 93; case 93: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + _v = _r$29; case 92: + /* */ if (_v) { $s = 90; continue; } + /* */ $s = 91; continue; + /* if (_v) { */ case 90: + $r = c[0].closeWriteAndWait(); /* */ $s = 94; case 94: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 91: + $s = 95; case 95: return; + /* } */ case 88: + $r = c[0].setState(c[0].rwc, 2, true); /* */ $s = 96; case 96: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } c[0].curReq.Store(ptrType$46.nil); - /* */ if (!w.conn.server.doKeepAlives()) { $s = 95; continue; } - /* */ $s = 96; continue; - /* if (!w.conn.server.doKeepAlives()) { */ case 95: - $s = 97; case 97: return; - /* } */ case 96: + /* */ if (!w.conn.server.doKeepAlives()) { $s = 97; continue; } + /* */ $s = 98; continue; + /* if (!w.conn.server.doKeepAlives()) { */ case 97: + $s = 99; case 99: return; + /* } */ case 98: d = c[0].server.idleTimeout(); - /* */ if (!((d.$high === 0 && d.$low === 0))) { $s = 98; continue; } - /* */ $s = 99; continue; - /* if (!((d.$high === 0 && d.$low === 0))) { */ case 98: - _r$30 = time.Now(); /* */ $s = 101; case 101: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } - _r$31 = $clone(_r$30, time.Time).Add(d); /* */ $s = 102; case 102: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } - _r$32 = c[0].rwc.SetReadDeadline($clone(_r$31, time.Time)); /* */ $s = 103; case 103: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } + /* */ if (!((d.$high === 0 && d.$low === 0))) { $s = 100; continue; } + /* */ $s = 101; continue; + /* if (!((d.$high === 0 && d.$low === 0))) { */ case 100: + _r$30 = time.Now(); /* */ $s = 103; case 103: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } + _r$31 = $clone(_r$30, time.Time).Add(d); /* */ $s = 104; case 104: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } + _r$32 = c[0].rwc.SetReadDeadline($clone(_r$31, time.Time)); /* */ $s = 105; case 105: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } _r$32; - $s = 100; continue; - /* } else { */ case 99: - _r$33 = c[0].rwc.SetReadDeadline($clone(new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil), time.Time)); /* */ $s = 104; case 104: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } + $s = 102; continue; + /* } else { */ case 101: + _r$33 = c[0].rwc.SetReadDeadline($clone(new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil), time.Time)); /* */ $s = 106; case 106: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } _r$33; - /* } */ case 100: - _r$34 = c[0].bufr.Peek(4); /* */ $s = 105; case 105: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } + /* } */ case 102: + _r$34 = c[0].bufr.Peek(4); /* */ $s = 107; case 107: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } _tuple$5 = _r$34; err$2 = _tuple$5[1]; - /* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 106; continue; } - /* */ $s = 107; continue; - /* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 106: - $s = 108; case 108: return; - /* } */ case 107: - _r$35 = c[0].rwc.SetReadDeadline($clone(new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil), time.Time)); /* */ $s = 109; case 109: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } + /* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 108; continue; } + /* */ $s = 109; continue; + /* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 108: + $s = 110; case 110: return; + /* } */ case 109: + _r$35 = c[0].rwc.SetReadDeadline($clone(new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil), time.Time)); /* */ $s = 111; case 111: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } _r$35; - $s = 39; continue; - case 40: + $s = 41; continue; + case 42: $s = -1; return; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: serve, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _entry, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _v, c, cancelCtx, code, ctx, d, dl, err, err$1, err$2, fn, h, inFlightResponse, ok, ok$1, ok$2, proto, publicErr, re, req, tlsConn, tlsTO, v, w, x$10, x$7, x$8, x$9, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: serve, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _entry, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _v, c, cancelCtx, code, ctx, d, dl, err, err$1, err$2, fn, h, inFlightResponse, ok, ok$1, ok$2, proto, publicErr, ra, re, req, tlsConn, tlsTO, v, w, x$10, x$11, x$7, x$8, x$9, $s, $deferred};return $f; } } }; $ptrType(response).prototype.sendExpectationFailed = function sendExpectationFailed() { var {w, $s, $r, $c} = $restore(this, {}); @@ -286412,42 +288990,19 @@ $packages["net/http"] = (function() { }; $ptrType(ConnState).prototype.String = function(...$args) { return new ConnState(this.$get()).String(...$args); }; $ptrType(serverHandler).prototype.ServeHTTP = function ServeHTTP$3(rw, req) { - var {_r$1, _r$2, allowQuerySemicolonsInUse, handler$1, req, rw, sh, x$7, $s, $deferred, $r, $c} = $restore(this, {rw, req}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - allowQuerySemicolonsInUse = [allowQuerySemicolonsInUse]; - sh = [sh]; - sh[0] = this; - handler$1 = sh[0].srv.Handler; + var {handler$1, req, rw, sh, x$7, $s, $r, $c} = $restore(this, {rw, req}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + sh = this; + handler$1 = sh.srv.Handler; if ($interfaceIsEqual(handler$1, $ifaceNil)) { handler$1 = $pkg.DefaultServeMux; } - if (!sh[0].srv.DisableGeneralOptionsHandler && req.RequestURI === "*" && req.Method === "OPTIONS") { + if (!sh.srv.DisableGeneralOptionsHandler && req.RequestURI === "*" && req.Method === "OPTIONS") { handler$1 = (x$7 = new globalOptionsHandler.ptr(), new x$7.constructor.elem(x$7)); } - /* */ if (!(req.URL === ptrType$16.nil) && strings.Contains(req.URL.RawQuery, ";")) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(req.URL === ptrType$16.nil) && strings.Contains(req.URL.RawQuery, ";")) { */ case 1: - allowQuerySemicolonsInUse[0] = new atomic.Bool.ptr(new atomic.noCopy.ptr(), 0); - _r$1 = context.WithValue(req.Context(), silenceSemWarnContextKey, new funcType((function(allowQuerySemicolonsInUse, sh) { return function serverHandler·ServeHTTP·func1() { - allowQuerySemicolonsInUse[0].Store(true); - }; })(allowQuerySemicolonsInUse, sh))); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = req.WithContext(_r$1); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - req = _r$2; - $deferred.push([(function(allowQuerySemicolonsInUse, sh) { return function serverHandler·ServeHTTP·func2() { - var {$s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - /* */ if (!allowQuerySemicolonsInUse[0].Load()) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!allowQuerySemicolonsInUse[0].Load()) { */ case 1: - $r = sh[0].srv.logf("http: URL query contains semicolon, which is no longer a supported separator; parts of the query may be stripped when parsed; see golang.org/issue/25192", sliceType.nil); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: serverHandler·ServeHTTP·func2, $c: true, $r, $s};return $f; - }; })(allowQuerySemicolonsInUse, sh), []]); - /* } */ case 2: - $r = handler$1.ServeHTTP(rw, req); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = handler$1.ServeHTTP(rw, req); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: ServeHTTP$3, $c: true, $r, _r$1, _r$2, allowQuerySemicolonsInUse, handler$1, req, rw, sh, x$7, $s, $deferred};return $f; } } + /* */ } return; } var $f = {$blk: ServeHTTP$3, $c: true, $r, handler$1, req, rw, sh, x$7, $s};return $f; }; serverHandler.prototype.ServeHTTP = function(...$args) { return this.$val.ServeHTTP(...$args); }; $ptrType(Server).prototype.ListenAndServe = function ListenAndServe$1() { @@ -286772,15 +289327,17 @@ $packages["net/http"] = (function() { /* */ } return; } var $f = {$blk: onceSetNextProtoDefaults_Serve, $c: true, $r, srv, $s};return $f; }; $ptrType(Server).prototype.onceSetNextProtoDefaults = function onceSetNextProtoDefaults$1() { - var {_r$1, _r$2, _v, conf, srv, $s, $r, $c} = $restore(this, {}); + var {_r$1, _r$2, conf, srv, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: srv = this; - if (omitBundledHTTP2) { _v = true; $s = 3; continue s; } - _r$1 = http2server.Value(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = _r$1 === "0"; case 3: - /* */ if (_v) { $s = 1; continue; } + if (omitBundledHTTP2) { + $s = -1; return; + } + _r$1 = http2server.Value(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1 === "0") { $s = 1; continue; } /* */ $s = 2; continue; - /* if (_v) { */ case 1: + /* if (_r$1 === "0") { */ case 1: + $r = http2server.IncNonDefault(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* } */ case 2: /* */ if (srv.TLSNextProto === false) { $s = 5; continue; } @@ -286793,7 +289350,7 @@ $packages["net/http"] = (function() { srv.nextProtoErr = _r$2; /* } */ case 6: $s = -1; return; - /* */ } return; } var $f = {$blk: onceSetNextProtoDefaults$1, $c: true, $r, _r$1, _r$2, _v, conf, srv, $s};return $f; + /* */ } return; } var $f = {$blk: onceSetNextProtoDefaults$1, $c: true, $r, _r$1, _r$2, conf, srv, $s};return $f; }; $ptrType(onceCloseListener).prototype.Close = function Close$6() { var {oc, $s, $r, $c} = $restore(this, {}); @@ -286835,7 +289392,7 @@ $packages["net/http"] = (function() { }; initALPNRequest.prototype.BaseContext = function(...$args) { return this.$val.BaseContext(...$args); }; $ptrType(initALPNRequest).prototype.ServeHTTP = function ServeHTTP$6(rw, req) { - var {_r$1, _r$2, _r$3, h, req, rw, $s, $r, $c} = $restore(this, {rw, req}); + var {_r$1, _r$2, _r$3, h, req, rw, x$7, $s, $r, $c} = $restore(this, {rw, req}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: h = this; /* */ if (req.TLS === ptrType$27.nil) { $s = 1; continue; } @@ -286843,7 +289400,7 @@ $packages["net/http"] = (function() { /* if (req.TLS === ptrType$27.nil) { */ case 1: req.TLS = new tls.ConnectionState.ptr(0, false, false, 0, "", false, "", sliceType$10.nil, sliceType$11.nil, sliceType$5.nil, sliceType$3.nil, sliceType$3.nil, $throwNilPointerError); _r$1 = h.c.ConnectionState(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - tls.ConnectionState.copy(req.TLS, _r$1); + tls.ConnectionState.copy((x$7 = req.TLS, (x$7 === ptrType$27.nil && $throwNilPointerError(), x$7)), _r$1); /* } */ case 2: if ($interfaceIsEqual(req.Body, $ifaceNil)) { req.Body = new $pkg.NoBody.constructor.elem($pkg.NoBody); @@ -286857,7 +289414,7 @@ $packages["net/http"] = (function() { /* } */ case 5: $r = $clone(h.h, serverHandler).ServeHTTP(rw, req); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } var $f = {$blk: ServeHTTP$6, $c: true, $r, _r$1, _r$2, _r$3, h, req, rw, $s};return $f; + /* */ } return; } var $f = {$blk: ServeHTTP$6, $c: true, $r, _r$1, _r$2, _r$3, h, req, rw, x$7, $s};return $f; }; initALPNRequest.prototype.ServeHTTP = function(...$args) { return this.$val.ServeHTTP(...$args); }; newLoggingConn = function newLoggingConn$1(baseName, c) { @@ -286981,9 +289538,9 @@ $packages["net/http"] = (function() { respCh = [respCh]; success = [success]; t = this; - /* */ if (!(t.Dial === $throwNilPointerError) || !(t.DialContext === $throwNilPointerError) || !(t.DialTLS === $throwNilPointerError) || !(t.DialTLSContext === $throwNilPointerError) || jsFetchMissing) { $s = 1; continue; } + /* */ if (!(t.Dial === $throwNilPointerError) || !(t.DialContext === $throwNilPointerError) || !(t.DialTLS === $throwNilPointerError) || !(t.DialTLSContext === $throwNilPointerError) || jsFetchMissing || jsFetchDisabled) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (!(t.Dial === $throwNilPointerError) || !(t.DialContext === $throwNilPointerError) || !(t.DialTLS === $throwNilPointerError) || !(t.DialTLSContext === $throwNilPointerError) || jsFetchMissing) { */ case 1: + /* if (!(t.Dial === $throwNilPointerError) || !(t.DialContext === $throwNilPointerError) || !(t.DialTLS === $throwNilPointerError) || !(t.DialTLSContext === $throwNilPointerError) || jsFetchMissing || jsFetchDisabled) { */ case 1: _r$1 = t.roundTrip(req[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $24r = _r$1; $s = 4; case 4: return $24r; @@ -287143,14 +289700,24 @@ $packages["net/http"] = (function() { /* */ } return; } var $f = {$blk: Transport·RoundTrip·func1, $c: true, $r, _entry$1, _key$1, _r$10, _r$11, _r$12, _r$8, _r$9, _tmp$2, _tmp$3, _tuple$1, args, b, body$2, ck, cl, clHeader, code, contentLength, err$1, header, headersIt, key$2, n, pair, result, this$1, value$1, $s};return $f; }; })(errCh, failure, req, respCh, success))); js$1.Func.copy(failure[0], js$1.FuncOf((function(errCh, failure, req, respCh, success) { return function Transport·RoundTrip·func2(this$1, args) { - var {_r$8, args, this$1, $s, $r, $c} = $restore(this, {this$1, args}); + var {_r$8, args, cause, err$1, errMsg, this$1, $s, $r, $c} = $restore(this, {this$1, args}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: $clone(success[0], js$1.Func).Release(); $clone(failure[0], js$1.Func).Release(); - _r$8 = fmt.Errorf("net/http: fetch() failed: %s", new sliceType([new $String($clone($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js$1.Value).Get("message"), js$1.Value).String())])); /* */ $s = 1; case 1: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + err$1 = $clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js$1.Value); + errMsg = $clone($clone(err$1, js$1.Value).Call("toString", sliceType.nil), js$1.Value).String(); + cause = $clone($clone(err$1, js$1.Value).Get("cause"), js$1.Value); + if (!$clone(cause, js$1.Value).IsUndefined()) { + if (!$clone($clone(cause, js$1.Value).Get("toString"), js$1.Value).IsUndefined()) { + errMsg = errMsg + (": " + $clone($clone(cause, js$1.Value).Call("toString", sliceType.nil), js$1.Value).String()); + } else if ($clone(cause, js$1.Value).Type() === 4) { + errMsg = errMsg + (": " + $clone(cause, js$1.Value).String()); + } + } + _r$8 = fmt.Errorf("net/http: fetch() failed: %s", new sliceType([new $String(errMsg)])); /* */ $s = 1; case 1: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } $r = $send(errCh[0], _r$8); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: Transport·RoundTrip·func2, $c: true, $r, _r$8, args, this$1, $s};return $f; + /* */ } return; } var $f = {$blk: Transport·RoundTrip·func2, $c: true, $r, _r$8, args, cause, err$1, errMsg, this$1, $s};return $f; }; })(errCh, failure, req, respCh, success))); $clone(fetchPromise, js$1.Value).Call("then", new sliceType([new success[0].constructor.elem(success[0]), new failure[0].constructor.elem(failure[0])])); _r$8 = req[0].Context().Done(); /* */ $s = 24; case 24: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } @@ -287482,7 +290049,7 @@ $packages["net/http"] = (function() { $s = -1; return err; } r1 = new Response.ptr("", 0, "", 0, 0, false, $ifaceNil, new $Int64(0, 0), sliceType$2.nil, false, false, false, ptrType$9.nil, ptrType$27.nil); - Response.copy(r1, r); + Response.copy((r1 === ptrType$17.nil && $throwNilPointerError(), r1), (r === ptrType$17.nil && $throwNilPointerError(), r)); /* */ if ((x$7 = r1.ContentLength, (x$7.$high === 0 && x$7.$low === 0)) && !($interfaceIsEqual(r1.Body, $ifaceNil))) { $s = 2; continue; } /* */ $s = 3; continue; /* if ((x$7 = r1.ContentLength, (x$7.$high === 0 && x$7.$low === 0)) && !($interfaceIsEqual(r1.Body, $ifaceNil))) { */ case 2: @@ -287585,6 +290152,11 @@ $packages["net/http"] = (function() { pe = this; return pe.ErrorString; }; + $ptrType(ProtocolError).prototype.Is = function Is(err) { + var err, pe; + pe = this; + return pe === $pkg.ErrNotSupported && $interfaceIsEqual(err, errors.ErrUnsupported); + }; badStringError = function badStringError$1(what, val) { var {$24r, _r$1, val, what, $s, $r, $c} = $restore(this, {what, val}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: @@ -287608,7 +290180,7 @@ $packages["net/http"] = (function() { $panic(new $String("nil context")); } r2 = new Request.ptr("", ptrType$16.nil, "", 0, 0, false, $ifaceNil, $throwNilPointerError, new $Int64(0, 0), sliceType$2.nil, false, "", false, false, ptrType$30.nil, false, "", "", ptrType$27.nil, $chanNil, ptrType$17.nil, $ifaceNil); - Request.copy(r2, r); + Request.copy((r2 === ptrType$9.nil && $throwNilPointerError(), r2), (r === ptrType$9.nil && $throwNilPointerError(), r)); r2.ctx = ctx; return r2; }; @@ -287619,7 +290191,7 @@ $packages["net/http"] = (function() { $panic(new $String("nil context")); } r2 = new Request.ptr("", ptrType$16.nil, "", 0, 0, false, $ifaceNil, $throwNilPointerError, new $Int64(0, 0), sliceType$2.nil, false, "", false, false, ptrType$30.nil, false, "", "", ptrType$27.nil, $chanNil, ptrType$17.nil, $ifaceNil); - Request.copy(r2, r); + Request.copy((r2 === ptrType$9.nil && $throwNilPointerError(), r2), (r === ptrType$9.nil && $throwNilPointerError(), r)); r2.ctx = ctx; r2.URL = cloneURL(r.URL); if (!(r.Header === false)) { @@ -288901,7 +291473,7 @@ $packages["net/http"] = (function() { return false; }; hexEscapeNonASCII = function hexEscapeNonASCII$1(s) { - var b, i, i$1, newLen, s; + var b, i, i$1, newLen, pos, s; newLen = 0; i = 0; while (true) { @@ -288917,17 +291489,23 @@ $packages["net/http"] = (function() { return s; } b = $makeSlice(sliceType$3, 0, newLen); + pos = 0; i$1 = 0; while (true) { if (!(i$1 < s.length)) { break; } if (s.charCodeAt(i$1) >= 128) { + if (pos < i$1) { + b = $appendSlice(b, $substring(s, pos, i$1)); + } b = $append(b, 37); b = strconv.AppendInt(b, (new $Int64(0, s.charCodeAt(i$1))), 16); - } else { - b = $append(b, s.charCodeAt(i$1)); + pos = i$1 + 1 >> 0; } i$1 = i$1 + (1) >> 0; } + if (pos < s.length) { + b = $appendSlice(b, $substring(s, pos)); + } return ($bytesToString(b)); }; $ptrType(noBody).prototype.Read = function Read$16(param) { @@ -289278,61 +291856,56 @@ $packages["net/http"] = (function() { return (b === 32) || (b === 44) || (b === 9); }; $ptrType(http2StreamError).prototype.As = function As(target) { - var {_r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _v, df, df$1, dst, dstType, e, i, i$1, numField, sf, src, srcType, target, $s, $r, $c} = $restore(this, {target}); + var {_r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _v, df, df$1, dst, dstType, e, i, i$1, numField, sf, src, srcType, target, $s, $r, $c} = $restore(this, {target}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: e = this; - _r$1 = reflect.ValueOf(target); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = $clone(_r$1, reflect.Value).Elem(); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - dst = _r$2; + dst = $clone(reflect.ValueOf(target), reflect.Value).Elem(); dstType = $clone(dst, reflect.Value).Type(); - _r$3 = dstType.Kind(); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (!((_r$3 === 25))) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!((_r$3 === 25))) { */ case 3: + _r$1 = dstType.Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!((_r$1 === 25))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((_r$1 === 25))) { */ case 1: $s = -1; return false; - /* } */ case 4: - _r$4 = reflect.ValueOf(new e.constructor.elem(e)); /* */ $s = 6; case 6: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - src = _r$4; + /* } */ case 2: + src = reflect.ValueOf(new e.constructor.elem(e)); srcType = $clone(src, reflect.Value).Type(); - _r$5 = srcType.NumField(); /* */ $s = 7; case 7: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - numField = _r$5; - _r$6 = dstType.NumField(); /* */ $s = 10; case 10: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - /* */ if (!((_r$6 === numField))) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (!((_r$6 === numField))) { */ case 8: + _r$2 = srcType.NumField(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + numField = _r$2; + _r$3 = dstType.NumField(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!((_r$3 === numField))) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!((_r$3 === numField))) { */ case 5: $s = -1; return false; - /* } */ case 9: + /* } */ case 6: i = 0; - /* while (true) { */ case 11: - /* if (!(i < numField)) { break; } */ if(!(i < numField)) { $s = 12; continue; } - _r$7 = srcType.Field(i); /* */ $s = 13; case 13: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - sf = $clone(_r$7, reflect.StructField); - _r$8 = dstType.Field(i); /* */ $s = 14; case 14: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - df = $clone(_r$8, reflect.StructField); - if (!(sf.Name === df.Name)) { _v = true; $s = 17; continue s; } - _r$9 = sf.Type.ConvertibleTo(df.Type); /* */ $s = 18; case 18: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _v = !_r$9; case 17: - /* */ if (_v) { $s = 15; continue; } - /* */ $s = 16; continue; - /* if (_v) { */ case 15: + /* while (true) { */ case 8: + /* if (!(i < numField)) { break; } */ if(!(i < numField)) { $s = 9; continue; } + _r$4 = srcType.Field(i); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + sf = $clone(_r$4, reflect.StructField); + _r$5 = dstType.Field(i); /* */ $s = 11; case 11: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + df = $clone(_r$5, reflect.StructField); + if (!(sf.Name === df.Name)) { _v = true; $s = 14; continue s; } + _r$6 = sf.Type.ConvertibleTo(df.Type); /* */ $s = 15; case 15: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _v = !_r$6; case 14: + /* */ if (_v) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (_v) { */ case 12: $s = -1; return false; - /* } */ case 16: + /* } */ case 13: i = i + (1) >> 0; - $s = 11; continue; - case 12: + $s = 8; continue; + case 9: i$1 = 0; - /* while (true) { */ case 19: - /* if (!(i$1 < numField)) { break; } */ if(!(i$1 < numField)) { $s = 20; continue; } - _r$10 = $clone(dst, reflect.Value).Field(i$1); /* */ $s = 21; case 21: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - df$1 = _r$10; - _r$11 = $clone(src, reflect.Value).Field(i$1); /* */ $s = 22; case 22: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _r$12 = $clone(_r$11, reflect.Value).Convert($clone(df$1, reflect.Value).Type()); /* */ $s = 23; case 23: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - $r = $clone(df$1, reflect.Value).Set($clone(_r$12, reflect.Value)); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* while (true) { */ case 16: + /* if (!(i$1 < numField)) { break; } */ if(!(i$1 < numField)) { $s = 17; continue; } + df$1 = $clone(dst, reflect.Value).Field(i$1); + _r$7 = $clone($clone(src, reflect.Value).Field(i$1), reflect.Value).Convert($clone(df$1, reflect.Value).Type()); /* */ $s = 18; case 18: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $r = $clone(df$1, reflect.Value).Set($clone(_r$7, reflect.Value)); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } i$1 = i$1 + (1) >> 0; - $s = 19; continue; - case 20: + $s = 16; continue; + case 17: $s = -1; return true; - /* */ } return; } var $f = {$blk: As, $c: true, $r, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _v, df, df$1, dst, dstType, e, i, i$1, numField, sf, src, srcType, target, $s};return $f; + /* */ } return; } var $f = {$blk: As, $c: true, $r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _v, df, df$1, dst, dstType, e, i, i$1, numField, sf, src, srcType, target, $s};return $f; }; http2StreamError.prototype.As = function(...$args) { return this.$val.As(...$args); }; http2asciiEqualFold = function http2asciiEqualFold$1(s, t) { @@ -289744,7 +292317,7 @@ $packages["net/http"] = (function() { } i = i + (1) >> 0; } - _r$1 = ((i < 0 || i >= http2dataChunkPools.length) ? ($throwRuntimeError("index out of range"), undefined) : http2dataChunkPools[i]).Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1 = ((i < 0 || i >= http2dataChunkPools.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(http2dataChunkPools, i, ptrType$48)).Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $24r = $assertType(_r$1, sliceType$3); $s = 2; case 2: return $24r; /* */ } return; } var $f = {$blk: http2getDataBufferChunk$1, $c: true, $r, $24r, _r$1, i, size, x$7, $s};return $f; @@ -289759,7 +292332,7 @@ $packages["net/http"] = (function() { i = _i; n = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); if (p.$length === n) { - ((i < 0 || i >= http2dataChunkPools.length) ? ($throwRuntimeError("index out of range"), undefined) : http2dataChunkPools[i]).Put(p); + ((i < 0 || i >= http2dataChunkPools.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(http2dataChunkPools, i, ptrType$48)).Put(p); $s = -1; return; } _i++; @@ -289970,12 +292543,56 @@ $packages["net/http"] = (function() { /* */ } return; } var $f = {$blk: Error$16, $c: true, $r, $24r, _r$1, e, $s};return $f; }; $ptrType(http2headerFieldValueError).prototype.Error = function(...$args) { return new http2headerFieldValueError(this.$get()).Error(...$args); }; - $ptrType(http2flow).prototype.setConnFlow = function setConnFlow(cf) { + $ptrType(http2inflow).prototype.init = function init$1(n) { + var f, n; + f = this; + f.avail = n; + }; + $ptrType(http2inflow).prototype.add = function add$1(n) { + var connAdd, f, n, unsent, x$10, x$7, x$8, x$9; + connAdd = 0; + f = this; + if (n < 0) { + $panic(new $String("negative update")); + } + unsent = (x$7 = (new $Int64(0, f.unsent)), x$8 = (new $Int64(0, n)), new $Int64(x$7.$high + x$8.$high, x$7.$low + x$8.$low)); + if ((x$9 = (x$10 = (new $Int64(0, f.avail)), new $Int64(unsent.$high + x$10.$high, unsent.$low + x$10.$low)), (x$9.$high > 0 || (x$9.$high === 0 && x$9.$low > 2147483647)))) { + $panic(new $String("flow control update exceeds maximum window size")); + } + f.unsent = (((unsent.$low + ((unsent.$high >> 31) * 4294967296)) >> 0)); + if (f.unsent < 4096 && f.unsent < f.avail) { + connAdd = 0; + return connAdd; + } + f.avail = f.avail + (f.unsent) >> 0; + f.unsent = 0; + connAdd = (((unsent.$low + ((unsent.$high >> 31) * 4294967296)) >> 0)); + return connAdd; + }; + $ptrType(http2inflow).prototype.take = function take(n) { + var f, n; + f = this; + if (n > ((f.avail >>> 0))) { + return false; + } + f.avail = f.avail - (((n >> 0))) >> 0; + return true; + }; + http2takeInflows = function http2takeInflows$1(f1, f2, n) { + var f1, f2, n; + if (n > ((f1.avail >>> 0)) || n > ((f2.avail >>> 0))) { + return false; + } + f1.avail = f1.avail - (((n >> 0))) >> 0; + f2.avail = f2.avail - (((n >> 0))) >> 0; + return true; + }; + $ptrType(http2outflow).prototype.setConnFlow = function setConnFlow(cf) { var cf, f; f = this; f.conn = cf; }; - $ptrType(http2flow).prototype.available = function available() { + $ptrType(http2outflow).prototype.available = function available() { var f, n; f = this; n = f.n; @@ -289984,7 +292601,7 @@ $packages["net/http"] = (function() { } return n; }; - $ptrType(http2flow).prototype.take = function take(n) { + $ptrType(http2outflow).prototype.take = function take$1(n) { var f, n; f = this; if (n > f.available()) { @@ -289995,7 +292612,7 @@ $packages["net/http"] = (function() { f.conn.n = f.conn.n - (n) >> 0; } }; - $ptrType(http2flow).prototype.add = function add$1(n) { + $ptrType(http2outflow).prototype.add = function add$2(n) { var f, n, sum; f = this; sum = f.n + n >> 0; @@ -290267,7 +292884,7 @@ $packages["net/http"] = (function() { return !($interfaceIsEqual(err, $ifaceNil)); }; $ptrType(http2Framer).prototype.ReadFrame = function ReadFrame() { - var {$24r, _arg, _arg$1, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _returncast, _tuple, _tuple$1, _tuple$2, _tuple$3, ce, err, err$1, err$2, f, fh, fr, ok, payload, $s, $r, $c} = $restore(this, {}); + var {$24r, _arg, _arg$1, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, _tuple$1, _tuple$2, _tuple$3, ce, err, err$1, err$2, f, fh, fr, ok, payload, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: fr = this; fr.errDetail = $ifaceNil; @@ -290324,12 +292941,11 @@ $packages["net/http"] = (function() { /* */ $s = 14; continue; /* if ((fh.Type === 1) && !(fr.ReadMetaHeaders === ptrType$70.nil)) { */ case 13: _r$7 = fr.readMetaFrame($assertType(f, ptrType$71)); /* */ $s = 15; case 15: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _returncast = _r$7; - $24r = [_returncast[0], _returncast[1]]; + $24r = _r$7; $s = 16; case 16: return $24r; /* } */ case 14: $s = -1; return [f, $ifaceNil]; - /* */ } return; } var $f = {$blk: ReadFrame, $c: true, $r, $24r, _arg, _arg$1, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _returncast, _tuple, _tuple$1, _tuple$2, _tuple$3, ce, err, err$1, err$2, f, fh, fr, ok, payload, $s};return $f; + /* */ } return; } var $f = {$blk: ReadFrame, $c: true, $r, $24r, _arg, _arg$1, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, _tuple$1, _tuple$2, _tuple$3, ce, err, err$1, err$2, f, fh, fr, ok, payload, $s};return $f; }; $ptrType(http2Framer).prototype.connError = function connError(code, reason) { var code, fr, reason; @@ -290460,15 +293076,27 @@ $packages["net/http"] = (function() { /* */ } return; } var $f = {$blk: WriteData, $c: true, $r, $24r, _r$1, data, endStream, f, streamID, $s};return $f; }; $ptrType(http2Framer).prototype.WriteDataPadded = function WriteDataPadded(streamID, endStream, data, pad) { - var {$24r, _i, _r$1, _ref, b, data, endStream, f, flags, pad, streamID, $s, $r, $c} = $restore(this, {streamID, endStream, data, pad}); + var {$24r, _r$1, data, endStream, err, f, pad, streamID, $s, $r, $c} = $restore(this, {streamID, endStream, data, pad}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: f = this; + err = f.startWriteDataPadded(streamID, endStream, data, pad); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r$1 = f.endWrite(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: WriteDataPadded, $c: true, $r, $24r, _r$1, data, endStream, err, f, pad, streamID, $s};return $f; + }; + $ptrType(http2Framer).prototype.startWriteDataPadded = function startWriteDataPadded(streamID, endStream, data, pad) { + var _i, _ref, b, data, endStream, f, flags, pad, streamID; + f = this; if (!http2validStreamID(streamID) && !f.AllowIllegalWrites) { - $s = -1; return http2errStreamID; + return http2errStreamID; } if (pad.$length > 0) { if (pad.$length > 255) { - $s = -1; return http2errPadLength; + return http2errPadLength; } if (!f.AllowIllegalWrites) { _ref = pad; @@ -290477,7 +293105,7 @@ $packages["net/http"] = (function() { if (!(_i < _ref.$length)) { break; } b = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); if (!((b === 0))) { - $s = -1; return http2errPadBytes; + return http2errPadBytes; } _i++; } @@ -290496,10 +293124,7 @@ $packages["net/http"] = (function() { } f.wbuf = $appendSlice(f.wbuf, data); f.wbuf = $appendSlice(f.wbuf, pad); - _r$1 = f.endWrite(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: WriteDataPadded, $c: true, $r, $24r, _i, _r$1, _ref, b, data, endStream, f, flags, pad, streamID, $s};return $f; + return $ifaceNil; }; http2parseSettingsFrame = function http2parseSettingsFrame$1(param, fh, countError, p) { var {_r$1, _tuple, countError, f, fh, ok, p, param, v, $s, $r, $c} = $restore(this, {param, fh, countError, p}); @@ -291312,7 +293937,7 @@ $packages["net/http"] = (function() { return 0; }; $ptrType(http2Framer).prototype.readMetaFrame = function readMetaFrame(hf) { - var {_r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, err, err$1, err$2, err$3, f, fr, frag, hc, hdec, hf, invalid, mh, remainSize, sawRegular, x$7, x$8, $s, $deferred, $r, $c} = $restore(this, {hf}); + var {_r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, err, err$1, err$2, err$3, f, fr, frag, hc, hdec, hf, invalid, mh, remainSize, sawRegular, x$10, x$7, x$8, x$9, $s, $deferred, $r, $c} = $restore(this, {hf}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); fr = [fr]; hdec = [hdec]; @@ -291322,7 +293947,7 @@ $packages["net/http"] = (function() { sawRegular = [sawRegular]; fr[0] = this; if (fr[0].AllowIllegalReads) { - $s = -1; return [ptrType$72.nil, errors.New("illegal use of AllowIllegalReads with ReadMetaHeaders")]; + $s = -1; return [$ifaceNil, errors.New("illegal use of AllowIllegalReads with ReadMetaHeaders")]; } mh[0] = new http2MetaHeadersFrame.ptr(hf, sliceType$22.nil, false); remainSize[0] = fr[0].maxHeaderListSize(); @@ -291361,6 +293986,7 @@ $packages["net/http"] = (function() { if (size > remainSize[0]) { hdec[0].SetEmitEnabled(false); mh[0].Truncated = true; + remainSize[0] = 0; $s = -1; return; } remainSize[0] = remainSize[0] - (size) >>> 0; @@ -291375,26 +294001,46 @@ $packages["net/http"] = (function() { /* while (true) { */ case 1: _r$1 = hc.HeaderBlockFragment(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } frag = _r$1; - _r$2 = hdec[0].Write(frag); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if ((x$7 = (new $Int64(0, frag.$length)), x$8 = (new $Int64(0, ($imul(2, remainSize[0]) >>> 0))), (x$7.$high > x$8.$high || (x$7.$high === x$8.$high && x$7.$low > x$8.$low)))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ((x$7 = (new $Int64(0, frag.$length)), x$8 = (new $Int64(0, ($imul(2, remainSize[0]) >>> 0))), (x$7.$high > x$8.$high || (x$7.$high === x$8.$high && x$7.$low > x$8.$low)))) { */ case 4: + /* */ if (http2VerboseLogs) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (http2VerboseLogs) { */ case 6: + $r = log.Printf("http2: header list too large", sliceType.nil); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 7: + $s = -1; return [mh[0], new http2ConnectionError(1)]; + /* } */ case 5: + /* */ if (!($interfaceIsEqual(invalid[0], $ifaceNil))) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!($interfaceIsEqual(invalid[0], $ifaceNil))) { */ case 9: + /* */ if (http2VerboseLogs) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (http2VerboseLogs) { */ case 11: + $r = log.Printf("http2: invalid header: %v", new sliceType([invalid[0]])); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 12: + $s = -1; return [mh[0], new http2ConnectionError(1)]; + /* } */ case 10: + _r$2 = hdec[0].Write(frag); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _tuple = _r$2; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [ptrType$72.nil, new http2ConnectionError(9)]; + $s = -1; return [mh[0], new http2ConnectionError(9)]; } - _r$3 = hc.HeadersEnded(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (_r$3) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (_r$3) { */ case 5: + _r$3 = hc.HeadersEnded(); /* */ $s = 17; case 17: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (_r$3) { */ case 15: /* break; */ $s = 2; continue; - /* } */ case 6: - _r$4 = fr[0].ReadFrame(); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* } */ case 16: + _r$4 = fr[0].ReadFrame(); /* */ $s = 18; case 18: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _tuple$1 = _r$4; f = _tuple$1[0]; err$1 = _tuple$1[1]; if (!($interfaceIsEqual(err$1, $ifaceNil))) { - $s = -1; return [ptrType$72.nil, err$1]; + $s = -1; return [$ifaceNil, err$1]; } else { - hc = $assertType(f, ptrType$73); + hc = $assertType(f, ptrType$72); } $s = 1; continue; case 2: @@ -291402,33 +294048,33 @@ $packages["net/http"] = (function() { mh[0].http2HeadersFrame.http2FrameHeader.invalidate(); err$2 = hdec[0].Close(); if (!($interfaceIsEqual(err$2, $ifaceNil))) { - $s = -1; return [ptrType$72.nil, new http2ConnectionError(9)]; + $s = -1; return [mh[0], new http2ConnectionError(9)]; } - /* */ if (!($interfaceIsEqual(invalid[0], $ifaceNil))) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (!($interfaceIsEqual(invalid[0], $ifaceNil))) { */ case 9: + /* */ if (!($interfaceIsEqual(invalid[0], $ifaceNil))) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (!($interfaceIsEqual(invalid[0], $ifaceNil))) { */ case 19: fr[0].errDetail = invalid[0]; - /* */ if (http2VerboseLogs) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (http2VerboseLogs) { */ case 11: - $r = log.Printf("http2: invalid header: %v", new sliceType([invalid[0]])); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 12: - $s = -1; return [ptrType$72.nil, (x$7 = new http2StreamError.ptr(mh[0].http2HeadersFrame.http2FrameHeader.StreamID, 1, invalid[0]), new x$7.constructor.elem(x$7))]; - /* } */ case 10: + /* */ if (http2VerboseLogs) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (http2VerboseLogs) { */ case 21: + $r = log.Printf("http2: invalid header: %v", new sliceType([invalid[0]])); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 22: + $s = -1; return [$ifaceNil, (x$9 = new http2StreamError.ptr(mh[0].http2HeadersFrame.http2FrameHeader.StreamID, 1, invalid[0]), new x$9.constructor.elem(x$9))]; + /* } */ case 20: err$3 = mh[0].checkPseudos(); - /* */ if (!($interfaceIsEqual(err$3, $ifaceNil))) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (!($interfaceIsEqual(err$3, $ifaceNil))) { */ case 14: + /* */ if (!($interfaceIsEqual(err$3, $ifaceNil))) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (!($interfaceIsEqual(err$3, $ifaceNil))) { */ case 24: fr[0].errDetail = err$3; - /* */ if (http2VerboseLogs) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (http2VerboseLogs) { */ case 16: - $r = log.Printf("http2: invalid pseudo headers: %v", new sliceType([err$3])); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 17: - $s = -1; return [ptrType$72.nil, (x$8 = new http2StreamError.ptr(mh[0].http2HeadersFrame.http2FrameHeader.StreamID, 1, err$3), new x$8.constructor.elem(x$8))]; - /* } */ case 15: + /* */ if (http2VerboseLogs) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (http2VerboseLogs) { */ case 26: + $r = log.Printf("http2: invalid pseudo headers: %v", new sliceType([err$3])); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 27: + $s = -1; return [$ifaceNil, (x$10 = new http2StreamError.ptr(mh[0].http2HeadersFrame.http2FrameHeader.StreamID, 1, err$3), new x$10.constructor.elem(x$10))]; + /* } */ case 25: $s = -1; return [mh[0], $ifaceNil]; - /* */ } return; } } catch(err) { $err = err; $s = -1; return [ptrType$72.nil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: readMetaFrame, $c: true, $r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, err, err$1, err$2, err$3, f, fr, frag, hc, hdec, hf, invalid, mh, remainSize, sawRegular, x$7, x$8, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; return [$ifaceNil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: readMetaFrame, $c: true, $r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, err, err$1, err$2, err$3, f, fr, frag, hc, hdec, hf, invalid, mh, remainSize, sawRegular, x$10, x$7, x$8, x$9, $s, $deferred};return $f; } } }; http2summarizeFrame = function http2summarizeFrame$1(f) { var {_r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, buf, data, f, f$1, f$2, f$3, f$4, f$5, f$6, n, $s, $r, $c} = $restore(this, {f}); @@ -291439,14 +294085,14 @@ $packages["net/http"] = (function() { _r$1 = f.Header(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $r = $clone(_r$1, http2FrameHeader).writeDebug(buf[0]); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _ref = f; - /* */ if ($assertType(_ref, ptrType$74, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$75, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$76, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$77, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType$78, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref, ptrType$79, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref, ptrType$73, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$74, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$75, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$76, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$77, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref, ptrType$78, true)[1]) { $s = 8; continue; } /* */ $s = 9; continue; - /* if ($assertType(_ref, ptrType$74, true)[1]) { */ case 3: + /* if ($assertType(_ref, ptrType$73, true)[1]) { */ case 3: f$1 = _ref.$val; n[0] = 0; _r$2 = f$1.ForeachSetting((function(buf, n) { return function http2summarizeFrame·func1(s) { @@ -291466,7 +294112,7 @@ $packages["net/http"] = (function() { buf[0].Truncate(buf[0].Len() - 1 >> 0); } $s = 9; continue; - /* } else if ($assertType(_ref, ptrType$75, true)[1]) { */ case 4: + /* } else if ($assertType(_ref, ptrType$74, true)[1]) { */ case 4: f$2 = _ref.$val; data = f$2.Data(); if (data.$length > 256) { @@ -291481,7 +294127,7 @@ $packages["net/http"] = (function() { _r$4; /* } */ case 13: $s = 9; continue; - /* } else if ($assertType(_ref, ptrType$76, true)[1]) { */ case 5: + /* } else if ($assertType(_ref, ptrType$75, true)[1]) { */ case 5: f$3 = _ref.$val; if (f$3.http2FrameHeader.StreamID === 0) { buf[0].WriteString(" (conn)"); @@ -291489,17 +294135,17 @@ $packages["net/http"] = (function() { _r$5 = fmt.Fprintf(buf[0], " incr=%v", new sliceType([new $Uint32(f$3.Increment)])); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _r$5; $s = 9; continue; - /* } else if ($assertType(_ref, ptrType$77, true)[1]) { */ case 6: + /* } else if ($assertType(_ref, ptrType$76, true)[1]) { */ case 6: f$4 = _ref.$val; _r$6 = fmt.Fprintf(buf[0], " ping=%q", new sliceType([new sliceType$3(f$4.Data)])); /* */ $s = 16; case 16: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _r$6; $s = 9; continue; - /* } else if ($assertType(_ref, ptrType$78, true)[1]) { */ case 7: + /* } else if ($assertType(_ref, ptrType$77, true)[1]) { */ case 7: f$5 = _ref.$val; _r$7 = fmt.Fprintf(buf[0], " LastStreamID=%v ErrCode=%v Debug=%q", new sliceType([new $Uint32(f$5.LastStreamID), new http2ErrCode(f$5.ErrCode), f$5.debugData])); /* */ $s = 17; case 17: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _r$7; $s = 9; continue; - /* } else if ($assertType(_ref, ptrType$79, true)[1]) { */ case 8: + /* } else if ($assertType(_ref, ptrType$78, true)[1]) { */ case 8: f$6 = _ref.$val; _r$8 = fmt.Fprintf(buf[0], " ErrCode=%v", new sliceType([new http2ErrCode(f$6.ErrCode)])); /* */ $s = 18; case 18: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } _r$8; @@ -291533,7 +294179,7 @@ $packages["net/http"] = (function() { var {_r$1, _tuple, addr$1, cfg, cn, ctx, dialer, err, network, t, tlsCn, $s, $r, $c} = $restore(this, {ctx, network, addr$1, cfg}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: t = this; - dialer = new tls.Dialer.ptr(ptrType$80.nil, cfg); + dialer = new tls.Dialer.ptr(ptrType$79.nil, cfg); _r$1 = dialer.DialContext(ctx, network, addr$1); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple = _r$1; cn = _tuple[0]; @@ -291814,7 +294460,7 @@ $packages["net/http"] = (function() { $s = 3; case 3: return $24r; /* */ } return; } var $f = {$blk: http2canonicalHeader$1, $c: true, $r, $24r, _entry, _r$1, _tuple, ok, s, v, $s};return $f; }; - init = function init$1() { + init = function init$2() { var {_r$1, e, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: _r$1 = os.Getenv("GODEBUG"); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } @@ -291828,7 +294474,7 @@ $packages["net/http"] = (function() { http2logFrameReads = true; } $s = -1; return; - /* */ } return; } var $f = {$blk: init$1, $c: true, $r, _r$1, e, $s};return $f; + /* */ } return; } var $f = {$blk: init$2, $c: true, $r, _r$1, e, $s};return $f; }; http2streamState.prototype.String = function String$9() { var st; @@ -292186,7 +294832,7 @@ $packages["net/http"] = (function() { /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [n, err]; } if($curGoroutine.asleep) { var $f = {$blk: Read$18, $c: true, $r, $24r, $24r$1, $24r$2, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _v, d, err, n, p, $s, $deferred};return $f; } } }; $ptrType(http2pipe).prototype.Write = function Write$13(d) { - var {$24r, $24r$1, $24r$2, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, d, err, n, p, $s, $deferred, $r, $c} = $restore(this, {d}); + var {$24r, $24r$1, _r$1, _tmp, _tmp$1, _tuple, d, err, n, p, $s, $deferred, $r, $c} = $restore(this, {d}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); n = 0; err = $ifaceNil; @@ -292197,9 +294843,9 @@ $packages["net/http"] = (function() { p.c.L = p.mu; } $deferred.push([$methodVal(p.c, "Signal"), []]); - /* */ if (!($interfaceIsEqual(p.err, $ifaceNil))) { $s = 2; continue; } + /* */ if (!($interfaceIsEqual(p.err, $ifaceNil)) || !($interfaceIsEqual(p.breakErr, $ifaceNil))) { $s = 2; continue; } /* */ $s = 3; continue; - /* if (!($interfaceIsEqual(p.err, $ifaceNil))) { */ case 2: + /* if (!($interfaceIsEqual(p.err, $ifaceNil)) || !($interfaceIsEqual(p.breakErr, $ifaceNil))) { */ case 2: _tmp = 0; _tmp$1 = http2errClosedPipeWrite; n = _tmp; @@ -292207,30 +294853,19 @@ $packages["net/http"] = (function() { $24r = [n, err]; $s = 4; case 4: return $24r; /* } */ case 3: - /* */ if (!($interfaceIsEqual(p.breakErr, $ifaceNil))) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (!($interfaceIsEqual(p.breakErr, $ifaceNil))) { */ case 5: - p.unread = p.unread + (d.$length) >> 0; - _tmp$2 = d.$length; - _tmp$3 = $ifaceNil; - n = _tmp$2; - err = _tmp$3; - $24r$1 = [n, err]; - $s = 7; case 7: return $24r$1; - /* } */ case 6: - _r$1 = p.b.Write(d); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1 = p.b.Write(d); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple = _r$1; n = _tuple[0]; err = _tuple[1]; - $24r$2 = [n, err]; - $s = 9; case 9: return $24r$2; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [n, err]; } if($curGoroutine.asleep) { var $f = {$blk: Write$13, $c: true, $r, $24r, $24r$1, $24r$2, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, d, err, n, p, $s, $deferred};return $f; } } + $24r$1 = [n, err]; + $s = 6; case 6: return $24r$1; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [n, err]; } if($curGoroutine.asleep) { var $f = {$blk: Write$13, $c: true, $r, $24r, $24r$1, _r$1, _tmp, _tmp$1, _tuple, d, err, n, p, $s, $deferred};return $f; } } }; $ptrType(http2pipe).prototype.CloseWithError = function CloseWithError(err) { var {err, p, $s, $r, $c} = $restore(this, {err}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; - $r = p.closeWithError((p.$ptr_err || (p.$ptr_err = new ptrType$81(function() { return this.$target.err; }, function($v) { this.$target.err = $v; }, p))), err, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.closeWithError((p === ptrType$80.nil && $throwNilPointerError(), (p.$ptr_err || (p.$ptr_err = new ptrType$81(function() { return this.$target.err; }, function($v) { this.$target.err = $v; }, p)))), err, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* */ } return; } var $f = {$blk: CloseWithError, $c: true, $r, err, p, $s};return $f; }; @@ -292238,7 +294873,7 @@ $packages["net/http"] = (function() { var {err, p, $s, $r, $c} = $restore(this, {err}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; - $r = p.closeWithError((p.$ptr_breakErr || (p.$ptr_breakErr = new ptrType$81(function() { return this.$target.breakErr; }, function($v) { this.$target.breakErr = $v; }, p))), err, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.closeWithError((p === ptrType$80.nil && $throwNilPointerError(), (p.$ptr_breakErr || (p.$ptr_breakErr = new ptrType$81(function() { return this.$target.breakErr; }, function($v) { this.$target.breakErr = $v; }, p)))), err, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* */ } return; } var $f = {$blk: BreakWithError, $c: true, $r, err, p, $s};return $f; }; @@ -292246,7 +294881,7 @@ $packages["net/http"] = (function() { var {err, fn, p, $s, $r, $c} = $restore(this, {err, fn}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; - $r = p.closeWithError((p.$ptr_err || (p.$ptr_err = new ptrType$81(function() { return this.$target.err; }, function($v) { this.$target.err = $v; }, p))), err, fn); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.closeWithError((p === ptrType$80.nil && $throwNilPointerError(), (p.$ptr_err || (p.$ptr_err = new ptrType$81(function() { return this.$target.err; }, function($v) { this.$target.err = $v; }, p)))), err, fn); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* */ } return; } var $f = {$blk: closeWithErrorAndCode, $c: true, $r, err, fn, p, $s};return $f; }; @@ -292269,9 +294904,9 @@ $packages["net/http"] = (function() { $s = 4; case 4: return; /* } */ case 3: p.readFn = fn; - /* */ if (dst === (p.$ptr_breakErr || (p.$ptr_breakErr = new ptrType$81(function() { return this.$target.breakErr; }, function($v) { this.$target.breakErr = $v; }, p)))) { $s = 5; continue; } + /* */ if (dst === (p === ptrType$80.nil && $throwNilPointerError(), (p.$ptr_breakErr || (p.$ptr_breakErr = new ptrType$81(function() { return this.$target.breakErr; }, function($v) { this.$target.breakErr = $v; }, p))))) { $s = 5; continue; } /* */ $s = 6; continue; - /* if (dst === (p.$ptr_breakErr || (p.$ptr_breakErr = new ptrType$81(function() { return this.$target.breakErr; }, function($v) { this.$target.breakErr = $v; }, p)))) { */ case 5: + /* if (dst === (p === ptrType$80.nil && $throwNilPointerError(), (p.$ptr_breakErr || (p.$ptr_breakErr = new ptrType$81(function() { return this.$target.breakErr; }, function($v) { this.$target.breakErr = $v; }, p))))) { */ case 5: /* */ if (!($interfaceIsEqual(p.b, $ifaceNil))) { $s = 7; continue; } /* */ $s = 8; continue; /* if (!($interfaceIsEqual(p.b, $ifaceNil))) { */ case 7: @@ -292468,7 +295103,7 @@ $packages["net/http"] = (function() { /* */ if (!(s.TLSConfig.CipherSuites === sliceType$14.nil) && s.TLSConfig.MinVersion < 772) { $s = 3; continue; } /* */ $s = 4; continue; /* if (s.TLSConfig === ptrType$15.nil) { */ case 2: - s.TLSConfig = new tls.Config.ptr($ifaceNil, $throwNilPointerError, sliceType$13.nil, false, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, ptrType$33.nil, sliceType$2.nil, "", 0, ptrType$33.nil, false, sliceType$14.nil, false, false, arrayType$1.zero(), $ifaceNil, 0, 0, sliceType$15.nil, false, 0, $ifaceNil, new sync.RWMutex.ptr(new sync.Mutex.ptr(0, 0), 0, 0, new atomic.Int32.ptr(new atomic.noCopy.ptr(), 0), new atomic.Int32.ptr(new atomic.noCopy.ptr(), 0)), sliceType$16.nil, sliceType$16.nil); + s.TLSConfig = new tls.Config.ptr($ifaceNil, $throwNilPointerError, sliceType$13.nil, false, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, ptrType$33.nil, sliceType$2.nil, "", 0, ptrType$33.nil, false, sliceType$14.nil, false, false, arrayType$1.zero(), $ifaceNil, $throwNilPointerError, $throwNilPointerError, 0, 0, sliceType$15.nil, false, 0, $ifaceNil, new sync.RWMutex.ptr(new sync.Mutex.ptr(0, 0), 0, 0, new atomic.Int32.ptr(new atomic.noCopy.ptr(), 0), new atomic.Int32.ptr(new atomic.noCopy.ptr(), 0)), sliceType$16.nil, sliceType$16.nil); $s = 4; continue; /* } else if (!(s.TLSConfig.CipherSuites === sliceType$14.nil) && s.TLSConfig.MinVersion < 772) { */ case 3: haveRequired = false; @@ -292557,7 +295192,7 @@ $packages["net/http"] = (function() { return $pkg.DefaultServeMux; }; $ptrType(http2Server).prototype.ServeConn = function ServeConn(c, opts) { - var {_arg, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, baseCtx, c, cancel$1, err, fr, fr$1, hook, ok, opts, s, sc, tc, x$7, $s, $deferred, $r, $c} = $restore(this, {c, opts}); + var {_arg, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, baseCtx, c, cancel$1, err, fr, fr$1, hook, ok, opts, s, sc, tc, x$7, x$8, $s, $deferred, $r, $c} = $restore(this, {c, opts}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); s = this; _r$1 = http2serverConnBaseContext(c, opts); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } @@ -292568,7 +295203,7 @@ $packages["net/http"] = (function() { _r$2 = c.RemoteAddr(); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _r$3 = _r$2.String(); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _r$4 = http2newGoroutineLock(); /* */ $s = 4; case 4: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - sc = new http2serverConn.ptr(s, opts.baseConfig(), c, http2newBufferedWriter(c), opts.handler(), baseCtx, ptrType$68.nil, new $Chan(structType$1, 0), new $Chan(http2readFrameResult, 0), new $Chan(http2FrameWriteRequest, 8), new $Chan(http2frameWriteResult, 1), new $Chan(http2bodyReadMsg, 0), new $Chan($emptyInterface, 8), new http2flow.ptr(arrayType.zero(), 0, ptrType$67.nil), new http2flow.ptr(arrayType.zero(), 0, ptrType$67.nil), ptrType$27.nil, _r$3, $ifaceNil, _r$4, true, opts.SawClientPreface, false, false, 0, 0, 4294967295, s.maxConcurrentStreams(), 0, 0, 0, 0, 0, new $global.Map(), sliceType$23.nil, 65535, 16384, 0, false, 0, false, false, false, false, false, false, 0, ptrType$24.nil, ptrType$24.nil, new bytes.Buffer.ptr(sliceType$3.nil, 0, 0), ptrType$85.nil, new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0))); + sc = new http2serverConn.ptr(s, opts.baseConfig(), c, http2newBufferedWriter(c), opts.handler(), baseCtx, ptrType$68.nil, new $Chan(structType$1, 0), new $Chan(http2readFrameResult, 0), new $Chan(http2FrameWriteRequest, 8), new $Chan(http2frameWriteResult, 1), new $Chan(http2bodyReadMsg, 0), new $Chan($emptyInterface, 8), new http2outflow.ptr(arrayType.zero(), 0, ptrType$67.nil), new http2inflow.ptr(0, 0), ptrType$27.nil, _r$3, $ifaceNil, _r$4, true, opts.SawClientPreface, false, false, 0, 0, 4294967295, s.maxConcurrentStreams(), 0, 0, 0, 0, 0, new $global.Map(), sliceType$23.nil, 65535, 16384, 0, false, 0, false, false, false, false, false, false, 0, ptrType$24.nil, ptrType$24.nil, new bytes.Buffer.ptr(sliceType$3.nil, 0, 0), ptrType$85.nil, new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0))); $r = s.state.registerConn(sc); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $deferred.push([$methodVal(s.state, "unregisterConn"), [sc]]); /* */ if (!((x$7 = sc.hs.WriteTimeout, (x$7.$high === 0 && x$7.$low === 0)))) { $s = 6; continue; } @@ -292584,10 +295219,10 @@ $packages["net/http"] = (function() { sc.writeSched = _r$6; $s = 11; continue; /* } else { */ case 10: - sc.writeSched = http2NewPriorityWriteScheduler(ptrType$57.nil); + sc.writeSched = http2newRoundRobinWriteScheduler(); /* } */ case 11: sc.flow.add(65535); - sc.inflow.add(65535); + sc.inflow.init(65535); _r$7 = hpack.NewEncoder(sc.headerWriteBuf); /* */ $s = 13; case 13: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } sc.hpackEncoder = _r$7; $r = sc.hpackEncoder.SetMaxDynamicTableSizeLimit(s.maxEncoderHeaderTableSize()); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } @@ -292608,7 +295243,7 @@ $packages["net/http"] = (function() { /* if (ok) { */ case 16: sc.tlsState = new tls.ConnectionState.ptr(0, false, false, 0, "", false, "", sliceType$10.nil, sliceType$11.nil, sliceType$5.nil, sliceType$3.nil, sliceType$3.nil, $throwNilPointerError); _r$9 = tc.ConnectionState(); /* */ $s = 18; case 18: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - tls.ConnectionState.copy(sc.tlsState, _r$9); + tls.ConnectionState.copy((x$8 = sc.tlsState, (x$8 === ptrType$27.nil && $throwNilPointerError(), x$8)), _r$9); /* */ if (sc.tlsState.Version < 771) { $s = 19; continue; } /* */ $s = 20; continue; /* if (sc.tlsState.Version < 771) { */ case 19: @@ -292654,7 +295289,7 @@ $packages["net/http"] = (function() { /* } */ case 39: $r = sc.serve(); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: ServeConn, $c: true, $r, _arg, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, baseCtx, c, cancel$1, err, fr, fr$1, hook, ok, opts, s, sc, tc, x$7, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: ServeConn, $c: true, $r, _arg, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, baseCtx, c, cancel$1, err, fr, fr$1, hook, ok, opts, s, sc, tc, x$7, x$8, $s, $deferred};return $f; } } }; http2serverConnBaseContext = function http2serverConnBaseContext$1(c, opts) { var {_arg, _arg$1, _arg$2, _r$1, _r$2, _r$3, _r$4, _tuple, c, cancel$1, ctx, hs, opts, $s, $r, $c} = $restore(this, {c, opts}); @@ -292804,18 +295439,15 @@ $packages["net/http"] = (function() { /* */ } return; } var $f = {$blk: logf$4, $c: true, $r, args, format, lg, sc, $s};return $f; }; http2errno = function http2errno$1(v) { - var {_r$1, rv, v, $s, $r, $c} = $restore(this, {v}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = reflect.ValueOf(v); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - rv = _r$1; + var rv, v; + rv = reflect.ValueOf(v); if ($clone(rv, reflect.Value).Kind() === 12) { - $s = -1; return (($clone(rv, reflect.Value).Uint().$low >>> 0)); + return (($clone(rv, reflect.Value).Uint().$low >>> 0)); } - $s = -1; return 0; - /* */ } return; } var $f = {$blk: http2errno$1, $c: true, $r, _r$1, rv, v, $s};return $f; + return 0; }; http2isClosedConnError = function http2isClosedConnError$1(err) { - var {_r$1, _r$2, _tuple, _tuple$1, err, n, oe, ok, ok$1, se, str, $s, $r, $c} = $restore(this, {err}); + var {_r$1, _tuple, _tuple$1, err, n, oe, ok, ok$1, se, str, $s, $r, $c} = $restore(this, {err}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if ($interfaceIsEqual(err, $ifaceNil)) { $s = -1; return false; @@ -292825,31 +295457,24 @@ $packages["net/http"] = (function() { if (strings.Contains(str, "use of closed network connection")) { $s = -1; return true; } - /* */ if (false) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (false) { */ case 2: + if (false) { _tuple = $assertType(err, ptrType$53, true); oe = _tuple[0]; ok = _tuple[1]; - /* */ if (ok && oe.Op === "read") { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (ok && oe.Op === "read") { */ case 4: + if (ok && oe.Op === "read") { _tuple$1 = $assertType(oe.Err, ptrType$86, true); se = _tuple$1[0]; ok$1 = _tuple$1[1]; - /* */ if (ok$1 && se.Syscall === "wsarecv") { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (ok$1 && se.Syscall === "wsarecv") { */ case 6: - _r$2 = http2errno(se.Err); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - n = _r$2; + if (ok$1 && se.Syscall === "wsarecv") { + n = http2errno(se.Err); if ((n === 10054) || (n === 10053)) { $s = -1; return true; } - /* } */ case 7: - /* } */ case 5: - /* } */ case 3: + } + } + } $s = -1; return false; - /* */ } return; } var $f = {$blk: http2isClosedConnError$1, $c: true, $r, _r$1, _r$2, _tuple, _tuple$1, err, n, oe, ok, ok$1, se, str, $s};return $f; + /* */ } return; } var $f = {$blk: http2isClosedConnError$1, $c: true, $r, _r$1, _tuple, _tuple$1, err, n, oe, ok, ok$1, se, str, $s};return $f; }; $ptrType(http2serverConn).prototype.condlogf = function condlogf(err, format, args) { var {_r$1, _v, args, err, format, sc, $s, $r, $c} = $restore(this, {err, format, args}); @@ -292934,15 +295559,24 @@ $packages["net/http"] = (function() { $s = -1; return; /* */ } return; } var $f = {$blk: readFrames, $c: true, $r, _r$1, _r$2, _r$3, _selection, _selection$1, _tuple, err, f, gate, gateDone, sc, $s};return $f; }; - $ptrType(http2serverConn).prototype.writeFrameAsync = function writeFrameAsync(wr) { - var {_r$1, err, sc, wr, $s, $r, $c} = $restore(this, {wr}); + $ptrType(http2serverConn).prototype.writeFrameAsync = function writeFrameAsync(wr, wd) { + var {_r$1, _r$2, err, sc, wd, wr, $s, $r, $c} = $restore(this, {wr, wd}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: sc = this; - _r$1 = wr.write.writeFrame(sc); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - err = _r$1; - $r = $send(sc.wroteFrameCh, $clone($clone(new http2frameWriteResult.ptr(arrayType.zero(), $clone(wr, http2FrameWriteRequest), err), http2frameWriteResult), http2frameWriteResult)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + err = $ifaceNil; + /* */ if (wd === ptrType$87.nil) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (wd === ptrType$87.nil) { */ case 1: + _r$1 = wr.write.writeFrame(sc); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + err = _r$1; + $s = 3; continue; + /* } else { */ case 2: + _r$2 = sc.framer.endWrite(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + err = _r$2; + /* } */ case 3: + $r = $send(sc.wroteFrameCh, $clone($clone(new http2frameWriteResult.ptr(arrayType.zero(), $clone(wr, http2FrameWriteRequest), err), http2frameWriteResult), http2frameWriteResult)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } var $f = {$blk: writeFrameAsync, $c: true, $r, _r$1, err, sc, wr, $s};return $f; + /* */ } return; } var $f = {$blk: writeFrameAsync, $c: true, $r, _r$1, _r$2, err, sc, wd, wr, $s};return $f; }; $ptrType(http2serverConn).prototype.closeAllStreamsOnConnClose = function closeAllStreamsOnConnClose() { var {_entry, _i, _key, _keys, _ref, _size, sc, st, $s, $r, $c} = $restore(this, {}); @@ -293125,7 +295759,7 @@ $packages["net/http"] = (function() { _ref = msg; /* */ if ($assertType(_ref, funcType$2, true)[1]) { $s = 48; continue; } /* */ if ($assertType(_ref, ptrType$12, true)[1]) { $s = 49; continue; } - /* */ if ($assertType(_ref, ptrType$87, true)[1]) { $s = 50; continue; } + /* */ if ($assertType(_ref, ptrType$88, true)[1]) { $s = 50; continue; } /* */ if ($assertType(_ref, funcType$3, true)[1]) { $s = 51; continue; } /* */ $s = 52; continue; /* if ($assertType(_ref, funcType$2, true)[1]) { */ case 48: @@ -293166,7 +295800,7 @@ $packages["net/http"] = (function() { /* } */ case 62: case 55: $s = 53; continue; - /* } else if ($assertType(_ref, ptrType$87, true)[1]) { */ case 50: + /* } else if ($assertType(_ref, ptrType$88, true)[1]) { */ case 50: v$2 = _ref.$val; $r = sc.startPush(v$2); /* */ $s = 73; case 73: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 53; continue; @@ -293306,8 +295940,8 @@ $packages["net/http"] = (function() { _r$1 = http2errChanPool.Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } ch = $assertType(_r$1, chanType); _r$2 = http2writeDataPool.Get(); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - writeArg = $assertType(_r$2, ptrType$88); - http2writeData.copy(writeArg, new http2writeData.ptr(stream.id, data, endStream)); + writeArg = $assertType(_r$2, ptrType$87); + http2writeData.copy((writeArg === ptrType$87.nil && $throwNilPointerError(), writeArg), new http2writeData.ptr(stream.id, data, endStream)); _r$3 = sc.writeFrameFromHandler($clone(new http2FrameWriteRequest.ptr(writeArg, stream, ch), http2FrameWriteRequest)); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } err = _r$3; if (!($interfaceIsEqual(err, $ifaceNil))) { @@ -293402,7 +296036,7 @@ $packages["net/http"] = (function() { /* */ } return; } var $f = {$blk: writeFrame, $c: true, $r, _r$1, _r$2, _ref, _tuple, _tuple$1, ignoreWrite, isReset, sc, state$1, wr, $s};return $f; }; $ptrType(http2serverConn).prototype.startFrameWrite = function startFrameWrite(wr) { - var {_1, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _tuple, _tuple$1, err, err$1, ok, sc, st, wpp, wr, $s, $r, $c} = $restore(this, {wr}); + var {_1, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _tuple, _tuple$1, _tuple$2, err, err$1, ok, ok$1, sc, st, wd, wpp, wr, $s, $r, $c} = $restore(this, {wr}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: sc = this; $r = sc.serveG.check(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } @@ -293465,11 +296099,20 @@ $packages["net/http"] = (function() { $r = sc.wroteFrame($clone(new http2frameWriteResult.ptr(arrayType.zero(), $clone(wr, http2FrameWriteRequest), err$1), http2frameWriteResult)); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 21; continue; /* } else { */ case 20: - sc.writingFrameAsync = true; - $go($methodVal(sc, "writeFrameAsync"), [$clone(wr, http2FrameWriteRequest)]); + _tuple$2 = $assertType(wr.write, ptrType$87, true); + wd = _tuple$2[0]; + ok$1 = _tuple$2[1]; + if (ok$1) { + sc.framer.startWriteDataPadded(wd.streamID, wd.endStream, wd.p, sliceType$3.nil); + sc.writingFrameAsync = true; + $go($methodVal(sc, "writeFrameAsync"), [$clone(wr, http2FrameWriteRequest), wd]); + } else { + sc.writingFrameAsync = true; + $go($methodVal(sc, "writeFrameAsync"), [$clone(wr, http2FrameWriteRequest), ptrType$87.nil]); + } /* } */ case 21: $s = -1; return; - /* */ } return; } var $f = {$blk: startFrameWrite, $c: true, $r, _1, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _tuple, _tuple$1, err, err$1, ok, sc, st, wpp, wr, $s};return $f; + /* */ } return; } var $f = {$blk: startFrameWrite, $c: true, $r, _1, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _tuple, _tuple$1, _tuple$2, err, err$1, ok, ok$1, sc, st, wd, wpp, wr, $s};return $f; }; $ptrType(http2serverConn).prototype.wroteFrame = function wroteFrame(res) { var {_1, _entry, _ref, _tuple, ok, res, sc, st, st$1, v, v$1, wr, $s, $r, $c} = $restore(this, {res}); @@ -293651,7 +296294,7 @@ $packages["net/http"] = (function() { /* */ } return; } var $f = {$blk: resetStream, $c: true, $r, _entry, _tuple, ok, sc, se, st, $s};return $f; }; $ptrType(http2serverConn).prototype.processFrameFromReader = function processFrameFromReader(res) { - var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _v, clientGone, err, ev, ev$1, ev$2, ev$3, f, res, sc, $s, $r, $c} = $restore(this, {res}); + var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _v, clientGone, err, ev, ev$1, ev$2, ev$3, f, id, res, sc, $s, $r, $c} = $restore(this, {res}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: sc = this; $r = sc.serveG.check(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } @@ -293703,29 +296346,38 @@ $packages["net/http"] = (function() { $s = -1; return true; /* } else if ($assertType(_ref, http2ConnectionError, true)[1]) { */ case 17: ev$2 = _ref.$val; - _r$4 = sc.conn.RemoteAddr(); /* */ $s = 22; case 22: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _arg$1 = _r$4; + /* */ if (!($interfaceIsEqual(res.f, $ifaceNil))) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (!($interfaceIsEqual(res.f, $ifaceNil))) { */ case 22: + _r$4 = res.f.Header(); /* */ $s = 24; case 24: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + id = _r$4.StreamID; + if (id > sc.maxClientStreamID) { + sc.maxClientStreamID = id; + } + /* } */ case 23: + _r$5 = sc.conn.RemoteAddr(); /* */ $s = 25; case 25: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _arg$1 = _r$5; _arg$2 = new http2ConnectionError(ev$2); - $r = sc.logf("http2: server connection error from %v: %v", new sliceType([_arg$1, _arg$2])); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = sc.goAway(((ev$2 >>> 0))); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sc.logf("http2: server connection error from %v: %v", new sliceType([_arg$1, _arg$2])); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sc.goAway(((ev$2 >>> 0))); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return true; /* } else { */ case 18: ev$3 = _ref; - /* */ if (!($interfaceIsEqual(res.err, $ifaceNil))) { $s = 25; continue; } - /* */ $s = 26; continue; - /* if (!($interfaceIsEqual(res.err, $ifaceNil))) { */ case 25: - _r$5 = sc.conn.RemoteAddr(); /* */ $s = 28; case 28: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _arg$3 = _r$5; + /* */ if (!($interfaceIsEqual(res.err, $ifaceNil))) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (!($interfaceIsEqual(res.err, $ifaceNil))) { */ case 28: + _r$6 = sc.conn.RemoteAddr(); /* */ $s = 31; case 31: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _arg$3 = _r$6; _arg$4 = err; - $r = sc.vlogf("http2: server closing client connection; error reading frame from client %s: %v", new sliceType([_arg$3, _arg$4])); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 27; continue; - /* } else { */ case 26: - $r = sc.logf("http2: server closing client connection: %v", new sliceType([err])); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 27: + $r = sc.vlogf("http2: server closing client connection; error reading frame from client %s: %v", new sliceType([_arg$3, _arg$4])); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 30; continue; + /* } else { */ case 29: + $r = sc.logf("http2: server closing client connection: %v", new sliceType([err])); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 30: $s = -1; return false; /* } */ case 19: $s = -1; return false; - /* */ } return; } var $f = {$blk: processFrameFromReader, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _v, clientGone, err, ev, ev$1, ev$2, ev$3, f, res, sc, $s};return $f; + /* */ } return; } var $f = {$blk: processFrameFromReader, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _v, clientGone, err, ev, ev$1, ev$2, ev$3, f, id, res, sc, $s};return $f; }; $ptrType(http2serverConn).prototype.processFrame = function processFrame(f) { var {$24r, $24r$1, $24r$10, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _arg, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _tuple$1, _v, _v$1, f, f$1, f$10, f$11, f$2, f$3, f$4, f$5, f$6, f$7, f$8, f$9, ok, ok$1, sc, x$7, x$8, $s, $r, $c} = $restore(this, {f}); @@ -293735,7 +296387,7 @@ $packages["net/http"] = (function() { /* */ if (!sc.sawFirstSettings) { $s = 2; continue; } /* */ $s = 3; continue; /* if (!sc.sawFirstSettings) { */ case 2: - _tuple = $assertType(f, ptrType$74, true); + _tuple = $assertType(f, ptrType$73, true); ok = _tuple[1]; /* */ if (!ok) { $s = 4; continue; } /* */ $s = 5; continue; @@ -293754,15 +296406,15 @@ $packages["net/http"] = (function() { /* */ if (_v) { $s = 8; continue; } /* */ $s = 9; continue; /* if (_v) { */ case 8: - _tuple$1 = $assertType(f, ptrType$75, true); + _tuple$1 = $assertType(f, ptrType$74, true); f$1 = _tuple$1[0]; ok$1 = _tuple$1[1]; /* */ if (ok$1) { $s = 13; continue; } /* */ $s = 14; continue; /* if (ok$1) { */ case 13: - /* */ if (sc.inflow.available() < ((f$1.http2FrameHeader.Length >> 0))) { $s = 15; continue; } + /* */ if (!sc.inflow.take(f$1.http2FrameHeader.Length)) { $s = 15; continue; } /* */ $s = 16; continue; - /* if (sc.inflow.available() < ((f$1.http2FrameHeader.Length >> 0))) { */ case 15: + /* if (!sc.inflow.take(f$1.http2FrameHeader.Length)) { */ case 15: _r$3 = sc.countError("data_flow", (x$7 = http2streamError($clone(f$1.http2FrameHeader, http2FrameHeader).Header().StreamID, 3), new x$7.constructor.elem(x$7))); /* */ $s = 17; case 17: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } $24r$1 = _r$3; $s = 18; case 18: return $24r$1; @@ -293772,57 +296424,57 @@ $packages["net/http"] = (function() { $s = -1; return $ifaceNil; /* } */ case 9: _ref = f; - /* */ if ($assertType(_ref, ptrType$74, true)[1]) { $s = 20; continue; } - /* */ if ($assertType(_ref, ptrType$72, true)[1]) { $s = 21; continue; } - /* */ if ($assertType(_ref, ptrType$76, true)[1]) { $s = 22; continue; } - /* */ if ($assertType(_ref, ptrType$77, true)[1]) { $s = 23; continue; } - /* */ if ($assertType(_ref, ptrType$75, true)[1]) { $s = 24; continue; } - /* */ if ($assertType(_ref, ptrType$79, true)[1]) { $s = 25; continue; } - /* */ if ($assertType(_ref, ptrType$91, true)[1]) { $s = 26; continue; } - /* */ if ($assertType(_ref, ptrType$78, true)[1]) { $s = 27; continue; } - /* */ if ($assertType(_ref, ptrType$92, true)[1]) { $s = 28; continue; } + /* */ if ($assertType(_ref, ptrType$73, true)[1]) { $s = 20; continue; } + /* */ if ($assertType(_ref, ptrType$91, true)[1]) { $s = 21; continue; } + /* */ if ($assertType(_ref, ptrType$75, true)[1]) { $s = 22; continue; } + /* */ if ($assertType(_ref, ptrType$76, true)[1]) { $s = 23; continue; } + /* */ if ($assertType(_ref, ptrType$74, true)[1]) { $s = 24; continue; } + /* */ if ($assertType(_ref, ptrType$78, true)[1]) { $s = 25; continue; } + /* */ if ($assertType(_ref, ptrType$92, true)[1]) { $s = 26; continue; } + /* */ if ($assertType(_ref, ptrType$77, true)[1]) { $s = 27; continue; } + /* */ if ($assertType(_ref, ptrType$93, true)[1]) { $s = 28; continue; } /* */ $s = 29; continue; - /* if ($assertType(_ref, ptrType$74, true)[1]) { */ case 20: + /* if ($assertType(_ref, ptrType$73, true)[1]) { */ case 20: f$2 = _ref.$val; _r$4 = sc.processSettings(f$2); /* */ $s = 31; case 31: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } $24r$2 = _r$4; $s = 32; case 32: return $24r$2; - /* } else if ($assertType(_ref, ptrType$72, true)[1]) { */ case 21: + /* } else if ($assertType(_ref, ptrType$91, true)[1]) { */ case 21: f$3 = _ref.$val; _r$5 = sc.processHeaders(f$3); /* */ $s = 33; case 33: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } $24r$3 = _r$5; $s = 34; case 34: return $24r$3; - /* } else if ($assertType(_ref, ptrType$76, true)[1]) { */ case 22: + /* } else if ($assertType(_ref, ptrType$75, true)[1]) { */ case 22: f$4 = _ref.$val; _r$6 = sc.processWindowUpdate(f$4); /* */ $s = 35; case 35: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } $24r$4 = _r$6; $s = 36; case 36: return $24r$4; - /* } else if ($assertType(_ref, ptrType$77, true)[1]) { */ case 23: + /* } else if ($assertType(_ref, ptrType$76, true)[1]) { */ case 23: f$5 = _ref.$val; _r$7 = sc.processPing(f$5); /* */ $s = 37; case 37: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } $24r$5 = _r$7; $s = 38; case 38: return $24r$5; - /* } else if ($assertType(_ref, ptrType$75, true)[1]) { */ case 24: + /* } else if ($assertType(_ref, ptrType$74, true)[1]) { */ case 24: f$6 = _ref.$val; _r$8 = sc.processData(f$6); /* */ $s = 39; case 39: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } $24r$6 = _r$8; $s = 40; case 40: return $24r$6; - /* } else if ($assertType(_ref, ptrType$79, true)[1]) { */ case 25: + /* } else if ($assertType(_ref, ptrType$78, true)[1]) { */ case 25: f$7 = _ref.$val; _r$9 = sc.processResetStream(f$7); /* */ $s = 41; case 41: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } $24r$7 = _r$9; $s = 42; case 42: return $24r$7; - /* } else if ($assertType(_ref, ptrType$91, true)[1]) { */ case 26: + /* } else if ($assertType(_ref, ptrType$92, true)[1]) { */ case 26: f$8 = _ref.$val; _r$10 = sc.processPriority(f$8); /* */ $s = 43; case 43: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } $24r$8 = _r$10; $s = 44; case 44: return $24r$8; - /* } else if ($assertType(_ref, ptrType$78, true)[1]) { */ case 27: + /* } else if ($assertType(_ref, ptrType$77, true)[1]) { */ case 27: f$9 = _ref.$val; _r$11 = sc.processGoAway(f$9); /* */ $s = 45; case 45: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } $24r$9 = _r$11; $s = 46; case 46: return $24r$9; - /* } else if ($assertType(_ref, ptrType$92, true)[1]) { */ case 28: + /* } else if ($assertType(_ref, ptrType$93, true)[1]) { */ case 28: f$10 = _ref.$val; _r$12 = sc.countError("push_promise", new http2ConnectionError(1)); /* */ $s = 47; case 47: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } $24r$10 = _r$12; @@ -293962,9 +296614,9 @@ $packages["net/http"] = (function() { /* } */ case 12: /* } */ case 6: p = st.body; - /* */ if (!(p === ptrType$93.nil)) { $s = 15; continue; } + /* */ if (!(p === ptrType$80.nil)) { $s = 15; continue; } /* */ $s = 16; continue; - /* if (!(p === ptrType$93.nil)) { */ case 15: + /* if (!(p === ptrType$80.nil)) { */ case 15: _arg = ptrType$8.nil; _r$4 = p.Len(); /* */ $s = 17; case 17: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _arg$1 = _r$4; @@ -294106,7 +296758,7 @@ $packages["net/http"] = (function() { /* */ } return; } var $f = {$blk: processSettingInitialWindowSize, $c: true, $r, $24r, _entry, _i, _key, _keys, _r$1, _ref, _size, growth, old, sc, st, val, $s};return $f; }; $ptrType(http2serverConn).prototype.processData = function processData(f) { - var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, data, err, f, id, pad, sc, st, state$1, wrote, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {f}); + var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, data, err, f, id, pad, sc, st, state$1, wrote, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {f}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: sc = this; $r = sc.serveG.check(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } @@ -294126,14 +296778,13 @@ $packages["net/http"] = (function() { /* */ if (st === ptrType$8.nil || !((state$1 === 1)) || st.gotTrailerHeader || st.resetQueued) { $s = 7; continue; } /* */ $s = 8; continue; /* if (st === ptrType$8.nil || !((state$1 === 1)) || st.gotTrailerHeader || st.resetQueued) { */ case 7: - /* */ if (sc.inflow.available() < ((f.http2FrameHeader.Length >> 0))) { $s = 9; continue; } + /* */ if (!sc.inflow.take(f.http2FrameHeader.Length)) { $s = 9; continue; } /* */ $s = 10; continue; - /* if (sc.inflow.available() < ((f.http2FrameHeader.Length >> 0))) { */ case 9: + /* if (!sc.inflow.take(f.http2FrameHeader.Length)) { */ case 9: _r$3 = sc.countError("data_flow", (x$7 = http2streamError(id, 3), new x$7.constructor.elem(x$7))); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } $24r$1 = _r$3; $s = 12; case 12: return $24r$1; /* } */ case 10: - sc.inflow.take(((f.http2FrameHeader.Length >> 0))); $r = sc.sendWindowUpdate(ptrType$8.nil, ((f.http2FrameHeader.Length >> 0))); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } if (!(st === ptrType$8.nil) && st.resetQueued) { $s = -1; return $ifaceNil; @@ -294142,20 +296793,19 @@ $packages["net/http"] = (function() { $24r$2 = _r$4; $s = 15; case 15: return $24r$2; /* } */ case 8: - if (st.body === ptrType$93.nil) { + if (st.body === ptrType$80.nil) { $panic(new $String("internal error: should have a body in this state")); } /* */ if (!((x$9 = st.declBodyBytes, (x$9.$high === -1 && x$9.$low === 4294967295))) && (x$10 = (x$11 = st.bodyBytes, x$12 = (new $Int64(0, data.$length)), new $Int64(x$11.$high + x$12.$high, x$11.$low + x$12.$low)), x$13 = st.declBodyBytes, (x$10.$high > x$13.$high || (x$10.$high === x$13.$high && x$10.$low > x$13.$low)))) { $s = 16; continue; } /* */ $s = 17; continue; /* if (!((x$9 = st.declBodyBytes, (x$9.$high === -1 && x$9.$low === 4294967295))) && (x$10 = (x$11 = st.bodyBytes, x$12 = (new $Int64(0, data.$length)), new $Int64(x$11.$high + x$12.$high, x$11.$low + x$12.$low)), x$13 = st.declBodyBytes, (x$10.$high > x$13.$high || (x$10.$high === x$13.$high && x$10.$low > x$13.$low)))) { */ case 16: - /* */ if (sc.inflow.available() < ((f.http2FrameHeader.Length >> 0))) { $s = 18; continue; } + /* */ if (!sc.inflow.take(f.http2FrameHeader.Length)) { $s = 18; continue; } /* */ $s = 19; continue; - /* if (sc.inflow.available() < ((f.http2FrameHeader.Length >> 0))) { */ case 18: + /* if (!sc.inflow.take(f.http2FrameHeader.Length)) { */ case 18: _r$5 = sc.countError("data_flow", (x$14 = http2streamError(id, 3), new x$14.constructor.elem(x$14))); /* */ $s = 20; case 20: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } $24r$3 = _r$5; $s = 21; case 21: return $24r$3; /* } */ case 19: - sc.inflow.take(((f.http2FrameHeader.Length >> 0))); $r = sc.sendWindowUpdate(ptrType$8.nil, ((f.http2FrameHeader.Length >> 0))); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _r$6 = fmt.Errorf("sender tried to send more than declared Content-Length of %d bytes", new sliceType([st.declBodyBytes])); /* */ $s = 23; case 23: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } $r = st.body.CloseWithError(_r$6); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } @@ -294166,17 +296816,17 @@ $packages["net/http"] = (function() { /* */ if (f.http2FrameHeader.Length > 0) { $s = 27; continue; } /* */ $s = 28; continue; /* if (f.http2FrameHeader.Length > 0) { */ case 27: - /* */ if (st.inflow.available() < ((f.http2FrameHeader.Length >> 0))) { $s = 29; continue; } + /* */ if (!http2takeInflows(sc.inflow, st.inflow, f.http2FrameHeader.Length)) { $s = 29; continue; } /* */ $s = 30; continue; - /* if (st.inflow.available() < ((f.http2FrameHeader.Length >> 0))) { */ case 29: + /* if (!http2takeInflows(sc.inflow, st.inflow, f.http2FrameHeader.Length)) { */ case 29: _r$8 = sc.countError("flow_on_data_length", (x$16 = http2streamError(id, 3), new x$16.constructor.elem(x$16))); /* */ $s = 31; case 31: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } $24r$5 = _r$8; $s = 32; case 32: return $24r$5; /* } */ case 30: - st.inflow.take(((f.http2FrameHeader.Length >> 0))); /* */ if (data.$length > 0) { $s = 33; continue; } /* */ $s = 34; continue; /* if (data.$length > 0) { */ case 33: + st.bodyBytes = (x$17 = st.bodyBytes, x$18 = (new $Int64(0, data.$length)), new $Int64(x$17.$high + x$18.$high, x$17.$low + x$18.$low)); _r$9 = st.body.Write(data); /* */ $s = 35; case 35: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } _tuple$1 = _r$9; wrote = _tuple$1[0]; @@ -294185,30 +296835,23 @@ $packages["net/http"] = (function() { /* */ $s = 37; continue; /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 36: $r = sc.sendWindowUpdate(ptrType$8.nil, ((f.http2FrameHeader.Length >> 0)) - wrote >> 0); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$10 = sc.countError("body_write_err", (x$17 = http2streamError(id, 5), new x$17.constructor.elem(x$17))); /* */ $s = 39; case 39: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - $24r$6 = _r$10; - $s = 40; case 40: return $24r$6; + $s = -1; return $ifaceNil; /* } */ case 37: if (!((wrote === data.$length))) { $panic(new $String("internal error: bad Writer")); } - st.bodyBytes = (x$18 = st.bodyBytes, x$19 = (new $Int64(0, data.$length)), new $Int64(x$18.$high + x$19.$high, x$18.$low + x$19.$low)); /* } */ case 34: pad = ((f.http2FrameHeader.Length >> 0)) - ((data.$length >> 0)) >> 0; - /* */ if (pad > 0) { $s = 41; continue; } - /* */ $s = 42; continue; - /* if (pad > 0) { */ case 41: - $r = sc.sendWindowUpdate32(ptrType$8.nil, pad); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = sc.sendWindowUpdate32(st, pad); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 42: + $r = sc.sendWindowUpdate32(ptrType$8.nil, pad); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sc.sendWindowUpdate32(st, pad); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 28: - /* */ if (f.StreamEnded()) { $s = 45; continue; } - /* */ $s = 46; continue; - /* if (f.StreamEnded()) { */ case 45: - $r = st.endStream(); /* */ $s = 47; case 47: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 46: + /* */ if (f.StreamEnded()) { $s = 41; continue; } + /* */ $s = 42; continue; + /* if (f.StreamEnded()) { */ case 41: + $r = st.endStream(); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 42: $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: processData, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, data, err, f, id, pad, sc, st, state$1, wrote, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$7, x$8, x$9, $s};return $f; + /* */ } return; } var $f = {$blk: processData, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, data, err, f, id, pad, sc, st, state$1, wrote, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$7, x$8, x$9, $s};return $f; }; $ptrType(http2serverConn).prototype.processGoAway = function processGoAway(f) { var {f, sc, $s, $r, $c} = $restore(this, {f}); @@ -294400,9 +297043,9 @@ $packages["net/http"] = (function() { /* if (!((x$10 = sc.hs.ReadTimeout, (x$10.$high === 0 && x$10.$low === 0)))) { */ case 36: _r$12 = sc.conn.SetReadDeadline($clone(new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil), time.Time)); /* */ $s = 38; case 38: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } _r$12; - /* */ if (!(st$1.body === ptrType$93.nil)) { $s = 39; continue; } + /* */ if (!(st$1.body === ptrType$80.nil)) { $s = 39; continue; } /* */ $s = 40; continue; - /* if (!(st$1.body === ptrType$93.nil)) { */ case 39: + /* if (!(st$1.body === ptrType$80.nil)) { */ case 39: _r$13 = time.AfterFunc(sc.hs.ReadTimeout, $methodVal(st$1, "onReadTimeout")); /* */ $s = 41; case 41: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } st$1.readDeadline = _r$13; /* } */ case 40: @@ -294532,12 +297175,11 @@ $packages["net/http"] = (function() { _tuple = _r$1; ctx = _tuple[0]; cancelCtx = _tuple[1]; - st = new http2stream.ptr(sc, id, ptrType$93.nil, $chanNil, ctx, cancelCtx, new $Int64(0, 0), new $Int64(0, 0), new http2flow.ptr(arrayType.zero(), 0, ptrType$67.nil), new http2flow.ptr(arrayType.zero(), 0, ptrType$67.nil), state$1, false, false, false, ptrType$24.nil, ptrType$24.nil, $ifaceNil, false, false); - (st.$ptr_cw || (st.$ptr_cw = new ptrType$95(function() { return this.$target.cw; }, function($v) { this.$target.cw = $v; }, st))).Init(); + st = new http2stream.ptr(sc, id, ptrType$80.nil, $chanNil, ctx, cancelCtx, new $Int64(0, 0), new $Int64(0, 0), new http2outflow.ptr(arrayType.zero(), 0, ptrType$67.nil), new http2inflow.ptr(0, 0), state$1, false, false, false, ptrType$24.nil, ptrType$24.nil, $ifaceNil, false, false); + (st === ptrType$8.nil && $throwNilPointerError(), (st.$ptr_cw || (st.$ptr_cw = new ptrType$95(function() { return this.$target.cw; }, function($v) { this.$target.cw = $v; }, st)))).Init(); st.flow.conn = sc.flow; st.flow.add(sc.initialStreamSendWindowSize); - st.inflow.conn = sc.inflow; - st.inflow.add(sc.srv.initialStreamRecvWindowSize()); + st.inflow.init(sc.srv.initialStreamRecvWindowSize()); /* */ if (!((x$7 = sc.hs.WriteTimeout, (x$7.$high === 0 && x$7.$low === 0)))) { $s = 3; continue; } /* */ $s = 4; continue; /* if (!((x$7 = sc.hs.WriteTimeout, (x$7.$high === 0 && x$7.$low === 0)))) { */ case 3: @@ -294632,7 +297274,7 @@ $packages["net/http"] = (function() { /* */ } return; } var $f = {$blk: newWriterAndRequest, $c: true, $r, $24r, $24r$1, _entry, _i, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _tuple, _tuple$1, _tuple$2, bodyOpen, cl, err, err$1, f, hf, isConnect, ok, req, rp, rw, sc, st, vv, x$7, x$8, $s};return $f; }; $ptrType(http2serverConn).prototype.newWriterAndRequestNoBody = function newWriterAndRequestNoBody(st, rp) { - var {$24r, _1, _entry, _entry$1, _i, _i$1, _key, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _tuple, body$1, cookies, err, key$1, needsContinue, req, requestURI, rp, rw, sc, st, tlsState, trailer, url_, v, x$7, $s, $r, $c} = $restore(this, {st, rp}); + var {$24r, _1, _entry, _entry$1, _entry$2, _i, _i$1, _key, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _tuple, body$1, cookies, err, key$1, needsContinue, req, requestURI, rp, rw, sc, st, tlsState, trailer, url_, v, x$7, $s, $r, $c} = $restore(this, {st, rp}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: sc = this; $r = sc.serveG.check(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } @@ -294640,32 +297282,31 @@ $packages["net/http"] = (function() { if (rp.scheme === "https") { tlsState = sc.tlsState; } - _r$1 = new Header(rp.header).Get("Expect"); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - needsContinue = _r$1 === "100-continue"; - /* */ if (needsContinue) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (needsContinue) { */ case 3: - $r = new Header(rp.header).Del("Expect"); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 4: - cookies = (_entry = $mapIndex(rp.header,$String.keyFor("Cookie")), _entry !== undefined ? _entry.v : sliceType$2.nil); - /* */ if (cookies.$length > 1) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (cookies.$length > 1) { */ case 6: - $r = new Header(rp.header).Set("Cookie", strings.Join(cookies, "; ")); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 7: + needsContinue = httpguts.HeaderValuesContainsToken((_entry = $mapIndex(rp.header,$String.keyFor("Expect")), _entry !== undefined ? _entry.v : sliceType$2.nil), "100-continue"); + /* */ if (needsContinue) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (needsContinue) { */ case 2: + $r = new Header(rp.header).Del("Expect"); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 3: + cookies = (_entry$1 = $mapIndex(rp.header,$String.keyFor("Cookie")), _entry$1 !== undefined ? _entry$1.v : sliceType$2.nil); + /* */ if (cookies.$length > 1) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (cookies.$length > 1) { */ case 5: + $r = new Header(rp.header).Set("Cookie", strings.Join(cookies, "; ")); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: trailer = false; - _ref = (_entry$1 = $mapIndex(rp.header,$String.keyFor("Trailer")), _entry$1 !== undefined ? _entry$1.v : sliceType$2.nil); + _ref = (_entry$2 = $mapIndex(rp.header,$String.keyFor("Trailer")), _entry$2 !== undefined ? _entry$2.v : sliceType$2.nil); _i = 0; - /* while (true) { */ case 9: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 10; continue; } + /* while (true) { */ case 8: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 9; continue; } v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); _ref$1 = strings.Split(v, ","); _i$1 = 0; - /* while (true) { */ case 11: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 12; continue; } + /* while (true) { */ case 10: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 11; continue; } key$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - _r$2 = CanonicalHeaderKey(textproto.TrimString(key$1)); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - key$1 = _r$2; + _r$1 = CanonicalHeaderKey(textproto.TrimString(key$1)); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + key$1 = _r$1; _1 = key$1; if (_1 === ("Transfer-Encoding") || _1 === ("Trailer") || _1 === ("Content-Length")) { } else { @@ -294675,42 +297316,42 @@ $packages["net/http"] = (function() { _key = key$1; (trailer || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: sliceType$2.nil }); } _i$1++; - $s = 11; continue; - case 12: + $s = 10; continue; + case 11: _i++; - $s = 9; continue; - case 10: + $s = 8; continue; + case 9: $mapDelete(rp.header, $String.keyFor("Trailer")); url_ = ptrType$16.nil; requestURI = ""; - /* */ if (rp.method === "CONNECT") { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (rp.method === "CONNECT") { */ case 14: + /* */ if (rp.method === "CONNECT") { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (rp.method === "CONNECT") { */ case 13: url_ = new url.URL.ptr("", "", ptrType$20.nil, rp.authority, "", "", false, false, "", "", ""); requestURI = rp.authority; - $s = 16; continue; - /* } else { */ case 15: + $s = 15; continue; + /* } else { */ case 14: err = $ifaceNil; - _r$3 = url.ParseRequestURI(rp.path); /* */ $s = 17; case 17: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple = _r$3; + _r$2 = url.ParseRequestURI(rp.path); /* */ $s = 16; case 16: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = _r$2; url_ = _tuple[0]; err = _tuple[1]; - /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 18; continue; } - /* */ $s = 19; continue; - /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 18: - _r$4 = sc.countError("bad_path", (x$7 = http2streamError(st.id, 1), new x$7.constructor.elem(x$7))); /* */ $s = 20; case 20: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $24r = [ptrType$13.nil, ptrType$9.nil, _r$4]; - $s = 21; case 21: return $24r; - /* } */ case 19: + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 17: + _r$3 = sc.countError("bad_path", (x$7 = http2streamError(st.id, 1), new x$7.constructor.elem(x$7))); /* */ $s = 19; case 19: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = [ptrType$13.nil, ptrType$9.nil, _r$3]; + $s = 20; case 20: return $24r; + /* } */ case 18: requestURI = rp.path; - /* } */ case 16: - body$1 = new http2requestBody.ptr(arrayType.zero(), st, sc, new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0)), false, ptrType$93.nil, needsContinue); + /* } */ case 15: + body$1 = new http2requestBody.ptr(arrayType.zero(), st, sc, new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0)), false, ptrType$80.nil, needsContinue); req = new Request.ptr(rp.method, url_, "HTTP/2.0", 2, 0, rp.header, body$1, $throwNilPointerError, new $Int64(0, 0), sliceType$2.nil, false, rp.authority, false, false, ptrType$30.nil, trailer, sc.remoteAddrStr, requestURI, tlsState, $chanNil, ptrType$17.nil, $ifaceNil); req = req.WithContext(st.ctx); - _r$5 = sc.newResponseWriter(st, req); /* */ $s = 22; case 22: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - rw = _r$5; + _r$4 = sc.newResponseWriter(st, req); /* */ $s = 21; case 21: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + rw = _r$4; $s = -1; return [rw, req, $ifaceNil]; - /* */ } return; } var $f = {$blk: newWriterAndRequestNoBody, $c: true, $r, $24r, _1, _entry, _entry$1, _i, _i$1, _key, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _tuple, body$1, cookies, err, key$1, needsContinue, req, requestURI, rp, rw, sc, st, tlsState, trailer, url_, v, x$7, $s};return $f; + /* */ } return; } var $f = {$blk: newWriterAndRequestNoBody, $c: true, $r, $24r, _1, _entry, _entry$1, _entry$2, _i, _i$1, _key, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _tuple, body$1, cookies, err, key$1, needsContinue, req, requestURI, rp, rw, sc, st, tlsState, trailer, url_, v, x$7, $s};return $f; }; $ptrType(http2serverConn).prototype.newResponseWriter = function newResponseWriter(st, req) { var {_r$1, bwSave, req, rws, sc, st, x$7, $s, $r, $c} = $restore(this, {st, req}); @@ -294719,7 +297360,7 @@ $packages["net/http"] = (function() { _r$1 = http2responseWriterStatePool.Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } rws = $assertType(_r$1, ptrType$96); bwSave = rws.bw; - http2responseWriterState.copy(rws, new http2responseWriterState.ptr(ptrType$8.nil, ptrType$9.nil, ptrType$10.nil, ptrType$11.nil, false, false, sliceType$2.nil, 0, false, false, false, false, new $Int64(0, 0), new $Int64(0, 0), new sync.Mutex.ptr(0, 0), $chanNil)); + http2responseWriterState.copy((rws === ptrType$96.nil && $throwNilPointerError(), rws), new http2responseWriterState.ptr(ptrType$8.nil, ptrType$9.nil, ptrType$10.nil, ptrType$11.nil, false, false, sliceType$2.nil, 0, false, false, false, false, new $Int64(0, 0), new $Int64(0, 0), new sync.Mutex.ptr(0, 0), $chanNil)); rws.conn = sc; rws.bw = bwSave; rws.bw.Reset((x$7 = new http2chunkWriter.ptr(rws), new x$7.constructor.elem(x$7))); @@ -294914,48 +297555,33 @@ $packages["net/http"] = (function() { $s = -1; return; /* */ } return; } var $f = {$blk: noteBodyRead, $c: true, $r, n, sc, st, $s};return $f; }; - $ptrType(http2serverConn).prototype.sendWindowUpdate = function sendWindowUpdate(st, n) { + $ptrType(http2serverConn).prototype.sendWindowUpdate32 = function sendWindowUpdate32(st, n) { var {n, sc, st, $s, $r, $c} = $restore(this, {st, n}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: sc = this; - $r = sc.serveG.check(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* while (true) { */ case 2: - /* if (!(n > 2147483647)) { break; } */ if(!(n > 2147483647)) { $s = 3; continue; } - $r = sc.sendWindowUpdate32(st, 2147483647); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - n = n - (2147483647) >> 0; - $s = 2; continue; - case 3: - $r = sc.sendWindowUpdate32(st, ((n >> 0))); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sc.sendWindowUpdate(st, ((n >> 0))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } var $f = {$blk: sendWindowUpdate, $c: true, $r, n, sc, st, $s};return $f; + /* */ } return; } var $f = {$blk: sendWindowUpdate32, $c: true, $r, n, sc, st, $s};return $f; }; - $ptrType(http2serverConn).prototype.sendWindowUpdate32 = function sendWindowUpdate32(st, n) { - var {n, ok, sc, st, streamID, x$7, $s, $r, $c} = $restore(this, {st, n}); + $ptrType(http2serverConn).prototype.sendWindowUpdate = function sendWindowUpdate(st, n) { + var {n, sc, send$1, st, streamID, x$7, $s, $r, $c} = $restore(this, {st, n}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: sc = this; $r = sc.serveG.check(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (n === 0) { - $s = -1; return; - } - if (n < 0) { - $panic(new $String("negative update")); - } streamID = 0; - if (!(st === ptrType$8.nil)) { - streamID = st.id; - } - $r = sc.writeFrame($clone(new http2FrameWriteRequest.ptr((x$7 = new http2writeWindowUpdate.ptr(streamID, ((n >>> 0))), new x$7.constructor.elem(x$7)), st, $chanNil), http2FrameWriteRequest)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - ok = false; + send$1 = 0; if (st === ptrType$8.nil) { - ok = sc.inflow.add(n); + send$1 = sc.inflow.add(n); } else { - ok = st.inflow.add(n); + streamID = st.id; + send$1 = st.inflow.add(n); } - if (!ok) { - $panic(new $String("internal error; sent too many window updates without decrements?")); + if (send$1 === 0) { + $s = -1; return; } + $r = sc.writeFrame($clone(new http2FrameWriteRequest.ptr((x$7 = new http2writeWindowUpdate.ptr(streamID, ((send$1 >>> 0))), new x$7.constructor.elem(x$7)), st, $chanNil), http2FrameWriteRequest)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } var $f = {$blk: sendWindowUpdate32, $c: true, $r, n, ok, sc, st, streamID, x$7, $s};return $f; + /* */ } return; } var $f = {$blk: sendWindowUpdate, $c: true, $r, n, sc, send$1, st, streamID, x$7, $s};return $f; }; $ptrType(http2requestBody).prototype.Close = function Close$13() { var {b, $s, $r, $c} = $restore(this, {}); @@ -294965,9 +297591,9 @@ $packages["net/http"] = (function() { $r = b[0].closeOnce.Do((function(b) { return function http2requestBody·Close·func1() { var {$s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - /* */ if (!(b[0].pipe === ptrType$93.nil)) { $s = 1; continue; } + /* */ if (!(b[0].pipe === ptrType$80.nil)) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (!(b[0].pipe === ptrType$93.nil)) { */ case 1: + /* if (!(b[0].pipe === ptrType$80.nil)) { */ case 1: $r = b[0].pipe.BreakWithError(http2errClosedBody); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 2: $s = -1; return; @@ -294988,7 +297614,7 @@ $packages["net/http"] = (function() { b.needsContinue = false; $r = b.conn.write100ContinueHeaders(b.stream); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 2: - if (b.pipe === ptrType$93.nil || b.sawEOF) { + if (b.pipe === ptrType$80.nil || b.sawEOF) { _tmp = 0; _tmp$1 = io.EOF; n = _tmp; @@ -295072,7 +297698,7 @@ $packages["net/http"] = (function() { /* */ } return; } var $f = {$blk: declareTrailer$1, $c: true, $r, _r$1, _r$2, k, rws, $s};return $f; }; $ptrType(http2responseWriterState).prototype.writeChunk = function writeChunk(p) { - var {_entry, _entry$1, _entry$2, _entry$3, _i, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, ce, cl, clen, ctype, date, endStream$1, endStream$2, err, err$1, err$2, hasCE, hasContentType, hasNonemptyTrailers$1, isHeadResp, n, ok, ok$1, p, rws, v, v$1, $s, $r, $c} = $restore(this, {p}); + var {_entry, _entry$1, _entry$2, _entry$3, _entry$4, _i, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, ce, cl, clen, ctype, date, endStream$1, endStream$2, err, err$1, err$2, hasCE, hasContentLength, hasContentType, hasNonemptyTrailers$1, isHeadResp, n, ok, ok$1, p, rws, v, v$1, $s, $r, $c} = $restore(this, {p}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: n = 0; err = $ifaceNil; @@ -295111,11 +297737,13 @@ $packages["net/http"] = (function() { clen = ""; } /* } */ case 11: - if (clen === "" && rws.handlerDone && http2bodyAllowedForStatus(rws.status) && (p.$length > 0 || !isHeadResp)) { + _tuple$1 = (_entry = $mapIndex(rws.snapHeader,$String.keyFor("Content-Length")), _entry !== undefined ? [_entry.v, true] : [sliceType$2.nil, false]); + hasContentLength = _tuple$1[1]; + if (!hasContentLength && clen === "" && rws.handlerDone && http2bodyAllowedForStatus(rws.status) && (p.$length > 0 || !isHeadResp)) { clen = strconv.Itoa(p.$length); } - _tuple$1 = (_entry = $mapIndex(rws.snapHeader,$String.keyFor("Content-Type")), _entry !== undefined ? [_entry.v, true] : [sliceType$2.nil, false]); - hasContentType = _tuple$1[1]; + _tuple$2 = (_entry$1 = $mapIndex(rws.snapHeader,$String.keyFor("Content-Type")), _entry$1 !== undefined ? [_entry$1.v, true] : [sliceType$2.nil, false]); + hasContentType = _tuple$2[1]; _r$2 = new Header(rws.snapHeader).Get("Content-Encoding"); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } ce = _r$2; hasCE = ce.length > 0; @@ -295126,8 +297754,8 @@ $packages["net/http"] = (function() { ctype = _r$3; /* } */ case 15: date = ""; - _tuple$2 = (_entry$1 = $mapIndex(rws.snapHeader,$String.keyFor("Date")), _entry$1 !== undefined ? [_entry$1.v, true] : [sliceType$2.nil, false]); - ok = _tuple$2[1]; + _tuple$3 = (_entry$2 = $mapIndex(rws.snapHeader,$String.keyFor("Date")), _entry$2 !== undefined ? [_entry$2.v, true] : [sliceType$2.nil, false]); + ok = _tuple$3[1]; /* */ if (!ok) { $s = 17; continue; } /* */ $s = 18; continue; /* if (!ok) { */ case 17: @@ -295136,7 +297764,7 @@ $packages["net/http"] = (function() { _r$6 = $clone(_r$5, time.Time).Format("Mon, 02 Jan 2006 15:04:05 GMT"); /* */ $s = 21; case 21: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } date = _r$6; /* } */ case 18: - _ref = (_entry$2 = $mapIndex(rws.snapHeader,$String.keyFor("Trailer")), _entry$2 !== undefined ? _entry$2.v : sliceType$2.nil); + _ref = (_entry$3 = $mapIndex(rws.snapHeader,$String.keyFor("Trailer")), _entry$3 !== undefined ? _entry$3.v : sliceType$2.nil); _i = 0; /* while (true) { */ case 22: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 23; continue; } @@ -295145,8 +297773,8 @@ $packages["net/http"] = (function() { _i++; $s = 22; continue; case 23: - _tuple$3 = (_entry$3 = $mapIndex(rws.snapHeader,$String.keyFor("Connection")), _entry$3 !== undefined ? [_entry$3.v, true] : [sliceType$2.nil, false]); - ok$1 = _tuple$3[1]; + _tuple$4 = (_entry$4 = $mapIndex(rws.snapHeader,$String.keyFor("Connection")), _entry$4 !== undefined ? [_entry$4.v, true] : [sliceType$2.nil, false]); + ok$1 = _tuple$4[1]; /* */ if (ok$1) { $s = 25; continue; } /* */ $s = 26; continue; /* if (ok$1) { */ case 25: @@ -295227,7 +297855,7 @@ $packages["net/http"] = (function() { n = _tmp$14; err = _tmp$15; $s = -1; return [n, err]; - /* */ } return; } var $f = {$blk: writeChunk, $c: true, $r, _entry, _entry$1, _entry$2, _entry$3, _i, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, ce, cl, clen, ctype, date, endStream$1, endStream$2, err, err$1, err$2, hasCE, hasContentType, hasNonemptyTrailers$1, isHeadResp, n, ok, ok$1, p, rws, v, v$1, $s};return $f; + /* */ } return; } var $f = {$blk: writeChunk, $c: true, $r, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _i, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, ce, cl, clen, ctype, date, endStream$1, endStream$2, err, err$1, err$2, hasCE, hasContentLength, hasContentType, hasNonemptyTrailers$1, isHeadResp, n, ok, ok$1, p, rws, v, v$1, $s};return $f; }; $ptrType(http2responseWriterState).prototype.promoteUndeclaredTrailers = function promoteUndeclaredTrailers() { var {_entry, _i, _key, _key$1, _keys, _r$1, _r$2, _ref, _size, k, rws, sorter, trailerKey, vv, $s, $r, $c} = $restore(this, {}); @@ -295987,7 +298615,7 @@ $packages["net/http"] = (function() { $s = -1; return [ptrType$99.nil, err]; } if (t1.TLSClientConfig === ptrType$15.nil) { - t1.TLSClientConfig = new tls.Config.ptr($ifaceNil, $throwNilPointerError, sliceType$13.nil, false, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, ptrType$33.nil, sliceType$2.nil, "", 0, ptrType$33.nil, false, sliceType$14.nil, false, false, arrayType$1.zero(), $ifaceNil, 0, 0, sliceType$15.nil, false, 0, $ifaceNil, new sync.RWMutex.ptr(new sync.Mutex.ptr(0, 0), 0, 0, new atomic.Int32.ptr(new atomic.noCopy.ptr(), 0), new atomic.Int32.ptr(new atomic.noCopy.ptr(), 0)), sliceType$16.nil, sliceType$16.nil); + t1.TLSClientConfig = new tls.Config.ptr($ifaceNil, $throwNilPointerError, sliceType$13.nil, false, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, ptrType$33.nil, sliceType$2.nil, "", 0, ptrType$33.nil, false, sliceType$14.nil, false, false, arrayType$1.zero(), $ifaceNil, $throwNilPointerError, $throwNilPointerError, 0, 0, sliceType$15.nil, false, 0, $ifaceNil, new sync.RWMutex.ptr(new sync.Mutex.ptr(0, 0), 0, 0, new atomic.Int32.ptr(new atomic.noCopy.ptr(), 0), new atomic.Int32.ptr(new atomic.noCopy.ptr(), 0)), sliceType$16.nil, sliceType$16.nil); } if (!http2strSliceContains(t1.TLSClientConfig.NextProtos, "h2")) { t1.TLSClientConfig.NextProtos = $appendSlice(new sliceType$2(["h2"]), t1.TLSClientConfig.NextProtos); @@ -296174,7 +298802,7 @@ $packages["net/http"] = (function() { http2noCachedConnError.prototype.Error = function(...$args) { return this.$val.Error(...$args); }; http2isNoCachedConnError = function http2isNoCachedConnError$1(err) { var _tuple, err, ok; - _tuple = $assertType(err, interfaceType$3, true); + _tuple = $assertType(err, interfaceType$4, true); ok = _tuple[1]; return ok; }; @@ -296197,11 +298825,14 @@ $packages["net/http"] = (function() { port = _tuple[1]; err = _tuple[2]; if (!($interfaceIsEqual(err, $ifaceNil))) { + host = authority; + port = ""; + } + if (port === "") { port = "443"; if (scheme$1 === "http") { port = "80"; } - host = authority; } _r$2 = idna.ToASCII(host); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _tuple$1 = _r$2; @@ -296234,7 +298865,7 @@ $packages["net/http"] = (function() { /* */ } return; } var $f = {$blk: http2backoffNewTimer$1, $c: true, $r, $24r, $24r$1, _r$1, _r$2, d, $s};return $f; }; $ptrType(http2Transport).prototype.RoundTripOpt = function RoundTripOpt(req, opt) { - var {_r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _selection, _tuple, _tuple$1, _tuple$2, addr$1, backoff, cc, d, err, opt, req, res, retry, reused, t, timer, y, $s, $r, $c} = $restore(this, {req, opt}); + var {_r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _selection, _tuple, _tuple$1, _tuple$2, addr$1, backoff, cc, d, err, opt, req, res, retry, reused, roundTripErr, t, timer, y, $s, $r, $c} = $restore(this, {req, opt}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: t = this; if (!(req.URL.Scheme === "https" || (req.URL.Scheme === "http" && t.AllowHTTP))) { @@ -296255,7 +298886,7 @@ $packages["net/http"] = (function() { $r = t.vlogf("http2: Transport failed to get client conn for %s: %v", new sliceType([new $String(addr$1), err])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return [ptrType$17.nil, err]; /* } */ case 7: - reused = !atomic.CompareAndSwapUint32((cc.$ptr_reused || (cc.$ptr_reused = new ptrType$100(function() { return this.$target.reused; }, function($v) { this.$target.reused = $v; }, cc))), 0, 1); + reused = !atomic.CompareAndSwapUint32((cc === ptrType$64.nil && $throwNilPointerError(), (cc.$ptr_reused || (cc.$ptr_reused = new ptrType$100(function() { return this.$target.reused; }, function($v) { this.$target.reused = $v; }, cc)))), 0, 1); $r = http2traceGotConn(req, cc, reused); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _r$4 = cc.RoundTrip(req); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _tuple$1 = _r$4; @@ -296264,6 +298895,7 @@ $packages["net/http"] = (function() { /* */ if (!($interfaceIsEqual(err, $ifaceNil)) && retry <= 6) { $s = 11; continue; } /* */ $s = 12; continue; /* if (!($interfaceIsEqual(err, $ifaceNil)) && retry <= 6) { */ case 11: + roundTripErr = err; _r$5 = http2shouldRetryRequest(req, err); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _tuple$2 = _r$5; req = _tuple$2[0]; @@ -296274,7 +298906,7 @@ $packages["net/http"] = (function() { /* */ if (retry === 0) { $s = 16; continue; } /* */ $s = 17; continue; /* if (retry === 0) { */ case 16: - $r = t.vlogf("RoundTrip retrying after failure: %v", new sliceType([err])); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = t.vlogf("RoundTrip retrying after failure: %v", new sliceType([roundTripErr])); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } retry = retry + (1) >> 0; /* continue; */ $s = 2; continue; /* } */ case 17: @@ -296291,7 +298923,7 @@ $packages["net/http"] = (function() { /* */ if (_selection[0] === 1) { $s = 24; continue; } /* */ $s = 25; continue; /* if (_selection[0] === 0) { */ case 23: - $r = t.vlogf("RoundTrip retrying after failure: %v", new sliceType([err])); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = t.vlogf("RoundTrip retrying after failure: %v", new sliceType([roundTripErr])); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } retry = retry + (1) >> 0; /* continue; */ $s = 2; continue; $s = 25; continue; @@ -296311,7 +298943,7 @@ $packages["net/http"] = (function() { $s = -1; return [res, $ifaceNil]; case 3: $s = -1; return [ptrType$17.nil, $ifaceNil]; - /* */ } return; } var $f = {$blk: RoundTripOpt, $c: true, $r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _selection, _tuple, _tuple$1, _tuple$2, addr$1, backoff, cc, d, err, opt, req, res, retry, reused, t, timer, y, $s};return $f; + /* */ } return; } var $f = {$blk: RoundTripOpt, $c: true, $r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _selection, _tuple, _tuple$1, _tuple$2, addr$1, backoff, cc, d, err, opt, req, res, retry, reused, roundTripErr, t, timer, y, $s};return $f; }; $ptrType(http2Transport).prototype.CloseIdleConnections = function CloseIdleConnections$1() { var {_r$1, _tuple, cp, ok, t, $s, $r, $c} = $restore(this, {}); @@ -296349,7 +298981,7 @@ $packages["net/http"] = (function() { if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return [ptrType$9.nil, err$1]; } - newReq[0] = $clone(req, Request); + newReq[0] = $clone((req === ptrType$9.nil && $throwNilPointerError(), req), Request); newReq[0].Body = body$1; $s = -1; return [newReq[0], $ifaceNil]; /* } */ case 2: @@ -296405,15 +299037,15 @@ $packages["net/http"] = (function() { /* */ } return; } var $f = {$blk: dialClientConn, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, addr$1, ctx, err, host, singleUse, t, tconn, $s};return $f; }; $ptrType(http2Transport).prototype.newTLSConfig = function newTLSConfig(host) { - var {_r$1, cfg, host, t, $s, $r, $c} = $restore(this, {host}); + var {_r$1, cfg, host, t, x$7, $s, $r, $c} = $restore(this, {host}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: t = this; - cfg = new tls.Config.ptr($ifaceNil, $throwNilPointerError, sliceType$13.nil, false, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, ptrType$33.nil, sliceType$2.nil, "", 0, ptrType$33.nil, false, sliceType$14.nil, false, false, arrayType$1.zero(), $ifaceNil, 0, 0, sliceType$15.nil, false, 0, $ifaceNil, new sync.RWMutex.ptr(new sync.Mutex.ptr(0, 0), 0, 0, new atomic.Int32.ptr(new atomic.noCopy.ptr(), 0), new atomic.Int32.ptr(new atomic.noCopy.ptr(), 0)), sliceType$16.nil, sliceType$16.nil); + cfg = new tls.Config.ptr($ifaceNil, $throwNilPointerError, sliceType$13.nil, false, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, ptrType$33.nil, sliceType$2.nil, "", 0, ptrType$33.nil, false, sliceType$14.nil, false, false, arrayType$1.zero(), $ifaceNil, $throwNilPointerError, $throwNilPointerError, 0, 0, sliceType$15.nil, false, 0, $ifaceNil, new sync.RWMutex.ptr(new sync.Mutex.ptr(0, 0), 0, 0, new atomic.Int32.ptr(new atomic.noCopy.ptr(), 0), new atomic.Int32.ptr(new atomic.noCopy.ptr(), 0)), sliceType$16.nil, sliceType$16.nil); /* */ if (!(t.TLSClientConfig === ptrType$15.nil)) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!(t.TLSClientConfig === ptrType$15.nil)) { */ case 1: _r$1 = t.TLSClientConfig.Clone(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - tls.Config.copy(cfg, _r$1); + tls.Config.copy((cfg === ptrType$15.nil && $throwNilPointerError(), cfg), (x$7 = _r$1, (x$7 === ptrType$15.nil && $throwNilPointerError(), x$7))); /* } */ case 2: if (!http2strSliceContains(cfg.NextProtos, "h2")) { cfg.NextProtos = $appendSlice(new sliceType$2(["h2"]), cfg.NextProtos); @@ -296422,7 +299054,7 @@ $packages["net/http"] = (function() { cfg.ServerName = host; } $s = -1; return cfg; - /* */ } return; } var $f = {$blk: newTLSConfig, $c: true, $r, _r$1, cfg, host, t, $s};return $f; + /* */ } return; } var $f = {$blk: newTLSConfig, $c: true, $r, _r$1, cfg, host, t, x$7, $s};return $f; }; $ptrType(http2Transport).prototype.dialTLS = function dialTLS(ctx, network, addr$1, tlsCfg) { var {$24r, $24r$1, $24r$2, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, addr$1, ctx, err, network, p, state$1, t, tlsCfg, tlsCn, $s, $r, $c} = $restore(this, {ctx, network, addr$1, tlsCfg}); @@ -296508,7 +299140,7 @@ $packages["net/http"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: state$1 = [state$1]; t = this; - cc = new http2ClientConn.ptr(t, c, false, ptrType$27.nil, 0, singleUse, false, new $Chan(structType$1, 0), $ifaceNil, new time.Duration(0, 0), ptrType$24.nil, new sync.Mutex.ptr(0, 0), ptrType$47.nil, new http2flow.ptr(arrayType.zero(), 0, ptrType$67.nil), new http2flow.ptr(arrayType.zero(), 0, ptrType$67.nil), false, false, false, false, true, ptrType$78.nil, "", new $global.Map(), 0, 1, 0, new $global.Map(), ptrType$28.nil, new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil), new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil), 16384, 100, new $Uint64(4294967295, 4294967295), 0, 65535, new $Chan(structType$1, 1), new sync.Mutex.ptr(0, 0), ptrType$11.nil, ptrType$68.nil, $ifaceNil, new bytes.Buffer.ptr(sliceType$3.nil, 0, 0), ptrType$85.nil); + cc = new http2ClientConn.ptr(t, c, false, ptrType$27.nil, 0, singleUse, false, new $Chan(structType$1, 0), $ifaceNil, new time.Duration(0, 0), ptrType$24.nil, new sync.Mutex.ptr(0, 0), ptrType$47.nil, new http2outflow.ptr(arrayType.zero(), 0, ptrType$67.nil), new http2inflow.ptr(0, 0), false, false, false, false, true, ptrType$77.nil, "", new $global.Map(), 0, 1, 0, new $global.Map(), ptrType$28.nil, new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil), new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil), 16384, 100, new $Uint64(4294967295, 4294967295), 0, 65535, new $Chan(structType$1, 1), new sync.Mutex.ptr(0, 0), ptrType$11.nil, ptrType$68.nil, $ifaceNil, new bytes.Buffer.ptr(sliceType$3.nil, 0, 0), ptrType$85.nil); d = t.idleConnTimeout(); /* */ if (!((d.$high === 0 && d.$low === 0))) { $s = 1; continue; } /* */ $s = 2; continue; @@ -296527,7 +299159,7 @@ $packages["net/http"] = (function() { /* } */ case 5: cc.cond = sync.NewCond(cc.mu); cc.flow.add(65535); - cc.bw = bufio.NewWriter((x$7 = new http2stickyErrWriter.ptr(c, t.WriteByteTimeout, (cc.$ptr_werr || (cc.$ptr_werr = new ptrType$81(function() { return this.$target.werr; }, function($v) { this.$target.werr = $v; }, cc)))), new x$7.constructor.elem(x$7))); + cc.bw = bufio.NewWriter((x$7 = new http2stickyErrWriter.ptr(c, t.WriteByteTimeout, (cc === ptrType$64.nil && $throwNilPointerError(), (cc.$ptr_werr || (cc.$ptr_werr = new ptrType$81(function() { return this.$target.werr; }, function($v) { this.$target.werr = $v; }, cc))))), new x$7.constructor.elem(x$7))); cc.br = bufio.NewReader(c); cc.fr = http2NewFramer(cc.bw, cc.br); if (!((t.maxFrameReadSize() === 0))) { @@ -296575,7 +299207,7 @@ $packages["net/http"] = (function() { _r$7; _r$8 = cc.fr.WriteWindowUpdate(0, 1073741824); /* */ $s = 16; case 16: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } _r$8; - cc.inflow.add(1073807359); + cc.inflow.init(1073807359); _r$9 = cc.bw.Flush(); /* */ $s = 17; case 17: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } _r$9; /* */ if (!($interfaceIsEqual(cc.werr, $ifaceNil))) { $s = 18; continue; } @@ -296635,7 +299267,7 @@ $packages["net/http"] = (function() { if (cc.goAwayDebug === "") { cc.goAwayDebug = ($bytesToString(f.DebugData())); } - if (!(old === ptrType$78.nil) && !((old.ErrCode === 0))) { + if (!(old === ptrType$77.nil) && !((old.ErrCode === 0))) { cc.goAway.ErrCode = old.ErrCode; } last = f.LastStreamID; @@ -296706,7 +299338,7 @@ $packages["net/http"] = (function() { $r = cc.wmu.Unlock(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = cc.mu.Lock(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $deferred.push([$methodVal(cc.mu, "Unlock"), []]); - $24r = new http2ClientConnState.ptr(cc.closed, cc.closing || cc.singleUse || cc.doNotReuse || !(cc.goAway === ptrType$78.nil), (cc.streams ? cc.streams.size : 0), cc.streamsReserved, cc.pendingRequests, maxConcurrent, $clone(cc.lastIdle, time.Time)); + $24r = new http2ClientConnState.ptr(cc.closed, cc.closing || cc.singleUse || cc.doNotReuse || !(cc.goAway === ptrType$77.nil), (cc.streams ? cc.streams.size : 0), cc.streamsReserved, cc.pendingRequests, maxConcurrent, $clone(cc.lastIdle, time.Time)); $s = 4; case 4: return $24r; /* */ } return; } } catch(err) { $err = err; $s = -1; return new http2ClientConnState.ptr(false, false, 0, 0, 0, 0, new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil)); } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: State, $c: true, $r, $24r, cc, maxConcurrent, $s, $deferred};return $f; } } }; @@ -296724,7 +299356,7 @@ $packages["net/http"] = (function() { } else { maxConcurrentOkay = (x$7 = (new $Int64(0, (((cc.streams ? cc.streams.size : 0) + cc.streamsReserved >> 0) + 1 >> 0))), x$8 = (new $Int64(0, cc.maxConcurrentStreams)), (x$7.$high < x$8.$high || (x$7.$high === x$8.$high && x$7.$low <= x$8.$low))); } - if (!(cc.goAway === ptrType$78.nil && !cc.closed && !cc.closing && maxConcurrentOkay && !cc.doNotReuse && (x$9 = (x$10 = (new $Int64(0, cc.nextStreamID)), x$11 = $mul64(new $Int64(0, 2), (new $Int64(0, cc.pendingRequests))), new $Int64(x$10.$high + x$11.$high, x$10.$low + x$11.$low)), (x$9.$high < 0 || (x$9.$high === 0 && x$9.$low < 2147483647))))) { _v = false; $s = 1; continue s; } + if (!(cc.goAway === ptrType$77.nil && !cc.closed && !cc.closing && maxConcurrentOkay && !cc.doNotReuse && (x$9 = (x$10 = (new $Int64(0, cc.nextStreamID)), x$11 = $mul64(new $Int64(0, 2), (new $Int64(0, cc.pendingRequests))), new $Int64(x$10.$high + x$11.$high, x$10.$low + x$11.$low)), (x$9.$high < 0 || (x$9.$high === 0 && x$9.$low < 2147483647))))) { _v = false; $s = 1; continue s; } _r$1 = cc.tooIdleLocked(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _v = !_r$1; case 1: st.canTakeNewRequest = _v; @@ -297065,7 +299697,7 @@ $packages["net/http"] = (function() { } }; $ptrType(http2ClientConn).prototype.RoundTrip = function RoundTrip$2(req) { - var {$24r, $24r$1, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _selection, _selection$1, cc, cs, ctx, err, handleResponseHeaders, req, waitDone, $s, $r, $c} = $restore(this, {req}); + var {$24r, $24r$1, $24r$2, $24r$3, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _selection, _selection$1, cancelRequest$2, cc, cs, ctx, err, handleResponseHeaders, req, waitDone, $s, $r, $c} = $restore(this, {req}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: cc = [cc]; cs = [cs]; @@ -297075,7 +299707,7 @@ $packages["net/http"] = (function() { cc[0] = this; ctx[0] = req[0].Context(); _r$1 = httptrace.ContextClientTrace(ctx[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - cs[0] = new http2clientStream.ptr(cc[0], ctx[0], req[0].Cancel, _r$1, 0, new http2pipe.ptr(new sync.Mutex.ptr(0, 0), new sync.Cond.ptr(new sync.noCopy.ptr(), $ifaceNil, new sync.notifyList.ptr(0, 0, 0, 0, 0), 0, 0, $chanNil), $ifaceNil, 0, $ifaceNil, $ifaceNil, $chanNil, $throwNilPointerError), false, req[0].Method === "HEAD", new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0)), new $Chan(structType$1, 0), $ifaceNil, new $Chan(structType$1, 0), new $Chan(structType$1, 0), $chanNil, new $Chan(structType$1, 0), ptrType$17.nil, new http2flow.ptr(arrayType.zero(), 0, ptrType$67.nil), new http2flow.ptr(arrayType.zero(), 0, ptrType$67.nil), new $Int64(0, 0), $ifaceNil, req[0].Body, http2actualContentLength(req[0]), $chanNil, false, false, false, false, false, 0, false, false, false, ptrType$37.nil); + cs[0] = new http2clientStream.ptr(cc[0], ctx[0], req[0].Cancel, _r$1, 0, new http2pipe.ptr(new sync.Mutex.ptr(0, 0), new sync.Cond.ptr(new sync.noCopy.ptr(), $ifaceNil, new sync.notifyList.ptr(0, 0, 0, 0, 0), 0, 0, $chanNil), $ifaceNil, 0, $ifaceNil, $ifaceNil, $chanNil, $throwNilPointerError), false, req[0].Method === "HEAD", new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0)), new $Chan(structType$1, 0), $ifaceNil, new $Chan(structType$1, 0), new $Chan(structType$1, 0), $chanNil, new $Chan(structType$1, 0), ptrType$17.nil, new http2outflow.ptr(arrayType.zero(), 0, ptrType$67.nil), new http2inflow.ptr(0, 0), new $Int64(0, 0), $ifaceNil, req[0].Body, http2actualContentLength(req[0]), $chanNil, false, false, false, false, false, 0, false, false, false, ptrType$37.nil); $go($methodVal(cs[0], "doRequest"), [req[0]]); waitDone[0] = (function(cc, cs, ctx, req, waitDone) { return function http2ClientConn·RoundTrip·func1() { var {$24r, _r$2, _r$3, _r$4, _selection, $s, $r, $c} = $restore(this, {}); @@ -297122,6 +299754,21 @@ $packages["net/http"] = (function() { $s = -1; return [res, $ifaceNil]; /* */ } return; } var $f = {$blk: http2ClientConn·RoundTrip·func2, $c: true, $r, _r$2, err, res, x$7, $s};return $f; }; })(cc, cs, ctx, req, waitDone); + cancelRequest$2 = (function(cc, cs, ctx, req, waitDone) { return function http2ClientConn·RoundTrip·func3(cs$1, err) { + var {_r$2, bodyClosed, cs$1, err, $s, $r, $c} = $restore(this, {cs$1, err}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = cs$1.cc.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + bodyClosed = cs$1.reqBodyClosed; + $r = cs$1.cc.mu.Unlock(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!(bodyClosed === $chanNil)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!(bodyClosed === $chanNil)) { */ case 3: + _r$2 = $recv(bodyClosed); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2[0]; + /* } */ case 4: + $s = -1; return err; + /* */ } return; } var $f = {$blk: http2ClientConn·RoundTrip·func3, $c: true, $r, _r$2, bodyClosed, cs$1, err, $s};return $f; + }; })(cc, cs, ctx, req, waitDone); /* while (true) { */ case 2: _r$2 = ctx[0].Done(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _r$3 = $select([[cs[0].respHeaderRecv], [cs[0].abort], [_r$2], [cs[0].reqCancel]]); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } @@ -297154,15 +299801,19 @@ $packages["net/http"] = (function() { _r$7 = ctx[0].Err(); /* */ $s = 19; case 19: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } err = _r$7; $r = cs[0].abortStream(err); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return [ptrType$17.nil, err]; + _r$8 = cancelRequest$2(cs[0], err); /* */ $s = 21; case 21: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + $24r$2 = [ptrType$17.nil, _r$8]; + $s = 22; case 22: return $24r$2; /* } else if (_selection[0] === 3) { */ case 9: - $r = cs[0].abortStream(http2errRequestCanceled); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return [ptrType$17.nil, http2errRequestCanceled]; + $r = cs[0].abortStream(http2errRequestCanceled); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$9 = cancelRequest$2(cs[0], http2errRequestCanceled); /* */ $s = 24; case 24: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + $24r$3 = [ptrType$17.nil, _r$9]; + $s = 25; case 25: return $24r$3; /* } */ case 10: $s = 2; continue; case 3: $s = -1; return [ptrType$17.nil, $ifaceNil]; - /* */ } return; } var $f = {$blk: RoundTrip$2, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _selection, _selection$1, cc, cs, ctx, err, handleResponseHeaders, req, waitDone, $s};return $f; + /* */ } return; } var $f = {$blk: RoundTrip$2, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _selection, _selection$1, cancelRequest$2, cc, cs, ctx, err, handleResponseHeaders, req, waitDone, $s};return $f; }; $ptrType(http2clientStream).prototype.doRequest = function doRequest(req) { var {_r$1, cs, err, req, $s, $r, $c} = $restore(this, {req}); @@ -297757,7 +300408,7 @@ $packages["net/http"] = (function() { /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return err; } if($curGoroutine.asleep) { var $f = {$blk: writeRequestBody, $c: true, $r, $24r, $24r$1, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, allowed, body$1, bodyClosed, bp, buf, cc, cs, data, err, err$1, ferr, hasContentLen, hasTrailers$1, maxFrameSize, n, n1, ok, remain, remainLen, req, sawEOF, scratch, scratchLen, sentEnd, trailer, trls, x$7, x$8, $s, $deferred};return $f; } } }; $ptrType(http2clientStream).prototype.awaitFlowControl = function awaitFlowControl(maxBytes) { - var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, _r$1, _r$2, _selection, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, a, cc, cs, ctx, err, maxBytes, take$1, taken, $s, $deferred, $r, $c} = $restore(this, {maxBytes}); + var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, _r$1, _r$2, _selection, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, a, cc, cs, ctx, err, maxBytes, take$2, taken, $s, $deferred, $r, $c} = $restore(this, {maxBytes}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); taken = 0; err = $ifaceNil; @@ -297822,15 +300473,15 @@ $packages["net/http"] = (function() { /* */ if (a > 0) { $s = 20; continue; } /* */ $s = 21; continue; /* if (a > 0) { */ case 20: - take$1 = a; - if (((take$1 >> 0)) > maxBytes) { - take$1 = ((maxBytes >> 0)); + take$2 = a; + if (((take$2 >> 0)) > maxBytes) { + take$2 = ((maxBytes >> 0)); } - if (take$1 > ((cc.maxFrameSize >> 0))) { - take$1 = ((cc.maxFrameSize >> 0)); + if (take$2 > ((cc.maxFrameSize >> 0))) { + take$2 = ((cc.maxFrameSize >> 0)); } - cs.flow.take(take$1); - _tmp$10 = take$1; + cs.flow.take(take$2); + _tmp$10 = take$2; _tmp$11 = $ifaceNil; taken = _tmp$10; err = _tmp$11; @@ -297841,7 +300492,7 @@ $packages["net/http"] = (function() { $s = 2; continue; case 3: $s = -1; return [taken, err]; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [taken, err]; } if($curGoroutine.asleep) { var $f = {$blk: awaitFlowControl, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, _r$1, _r$2, _selection, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, a, cc, cs, ctx, err, maxBytes, take$1, taken, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [taken, err]; } if($curGoroutine.asleep) { var $f = {$blk: awaitFlowControl, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, _r$1, _r$2, _selection, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, a, cc, cs, ctx, err, maxBytes, take$2, taken, $s, $deferred};return $f; } } }; $ptrType(http2ClientConn).prototype.encodeHeaders = function encodeHeaders(req, addGzipHeader, trailers, contentLength) { var {$24r, $24r$1, $24r$2, $24r$3, _entry, _i, _i$1, _key, _keys, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, _size, _tuple, addGzipHeader, cc, contentLength, enumerateHeaders, err, hlSize, host, k, orig, path$1, req, trace, traceHeaders, trailers, v, vv, x$7, $s, $r, $c} = $restore(this, {req, addGzipHeader, trailers, contentLength}); @@ -297872,6 +300523,9 @@ $packages["net/http"] = (function() { if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return [sliceType$3.nil, err]; } + if (!httpguts.ValidHostHeader(host[0])) { + $s = -1; return [sliceType$3.nil, errors.New("http2: invalid Host header")]; + } path$1[0] = ""; /* */ if (!(req[0].Method === "CONNECT")) { $s = 2; continue; } /* */ $s = 3; continue; @@ -298198,8 +300852,7 @@ $packages["net/http"] = (function() { cc = this; cs.flow.add(((cc.initialWindowSize >> 0))); cs.flow.setConnFlow(cc.flow); - cs.inflow.add(4194304); - cs.inflow.setConnFlow(cc.inflow); + cs.inflow.init(4194304); cs.ID = cc.nextStreamID; cc.nextStreamID = cc.nextStreamID + (2) >>> 0; _key = cs.ID; (cc.streams || $throwRuntimeError("assignment to entry in nil map")).set($Uint32.keyFor(_key), { k: _key, v: cs }); @@ -298228,7 +300881,7 @@ $packages["net/http"] = (function() { time.Time.copy(cc.lastIdle, _r$3); /* } */ case 4: $r = cc.cond.Broadcast(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - closeOnIdle = cc.singleUse || cc.doNotReuse || cc.t.disableKeepAlives() || !(cc.goAway === ptrType$78.nil); + closeOnIdle = cc.singleUse || cc.doNotReuse || cc.t.disableKeepAlives() || !(cc.goAway === ptrType$77.nil); /* */ if (closeOnIdle && (cc.streamsReserved === 0) && ((cc.streams ? cc.streams.size : 0) === 0)) { $s = 8; continue; } /* */ $s = 9; continue; /* if (closeOnIdle && (cc.streamsReserved === 0) && ((cc.streams ? cc.streams.size : 0) === 0)) { */ case 8: @@ -298300,7 +300953,7 @@ $packages["net/http"] = (function() { } err = cc.readerErr; $r = cc.mu.Lock(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (!(cc.goAway === ptrType$78.nil) && http2isEOFOrNetReadError(err)) { + if (!(cc.goAway === ptrType$77.nil) && http2isEOFOrNetReadError(err)) { err = (x$7 = new http2GoAwayError.ptr(cc.goAway.LastStreamID, cc.goAway.ErrCode, cc.goAwayDebug), new x$7.constructor.elem(x$7)); } else if ($interfaceIsEqual(err, io.EOF)) { err = io.ErrUnexpectedEOF; @@ -298446,7 +301099,7 @@ $packages["net/http"] = (function() { /* */ if (!gotSettings) { $s = 25; continue; } /* */ $s = 26; continue; /* if (!gotSettings) { */ case 25: - _tuple$2 = $assertType(f, ptrType$74, true); + _tuple$2 = $assertType(f, ptrType$73, true); ok$1 = _tuple$2[1]; /* */ if (!ok$1) { $s = 27; continue; } /* */ $s = 28; continue; @@ -298457,50 +301110,50 @@ $packages["net/http"] = (function() { gotSettings = true; /* } */ case 26: _ref = f; - /* */ if ($assertType(_ref, ptrType$72, true)[1]) { $s = 30; continue; } - /* */ if ($assertType(_ref, ptrType$75, true)[1]) { $s = 31; continue; } - /* */ if ($assertType(_ref, ptrType$78, true)[1]) { $s = 32; continue; } - /* */ if ($assertType(_ref, ptrType$79, true)[1]) { $s = 33; continue; } - /* */ if ($assertType(_ref, ptrType$74, true)[1]) { $s = 34; continue; } - /* */ if ($assertType(_ref, ptrType$92, true)[1]) { $s = 35; continue; } - /* */ if ($assertType(_ref, ptrType$76, true)[1]) { $s = 36; continue; } - /* */ if ($assertType(_ref, ptrType$77, true)[1]) { $s = 37; continue; } + /* */ if ($assertType(_ref, ptrType$91, true)[1]) { $s = 30; continue; } + /* */ if ($assertType(_ref, ptrType$74, true)[1]) { $s = 31; continue; } + /* */ if ($assertType(_ref, ptrType$77, true)[1]) { $s = 32; continue; } + /* */ if ($assertType(_ref, ptrType$78, true)[1]) { $s = 33; continue; } + /* */ if ($assertType(_ref, ptrType$73, true)[1]) { $s = 34; continue; } + /* */ if ($assertType(_ref, ptrType$93, true)[1]) { $s = 35; continue; } + /* */ if ($assertType(_ref, ptrType$75, true)[1]) { $s = 36; continue; } + /* */ if ($assertType(_ref, ptrType$76, true)[1]) { $s = 37; continue; } /* */ $s = 38; continue; - /* if ($assertType(_ref, ptrType$72, true)[1]) { */ case 30: + /* if ($assertType(_ref, ptrType$91, true)[1]) { */ case 30: f$1 = _ref.$val; _r$6 = rl.processHeaders(f$1); /* */ $s = 40; case 40: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } err = _r$6; $s = 39; continue; - /* } else if ($assertType(_ref, ptrType$75, true)[1]) { */ case 31: + /* } else if ($assertType(_ref, ptrType$74, true)[1]) { */ case 31: f$2 = _ref.$val; _r$7 = rl.processData(f$2); /* */ $s = 41; case 41: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } err = _r$7; $s = 39; continue; - /* } else if ($assertType(_ref, ptrType$78, true)[1]) { */ case 32: + /* } else if ($assertType(_ref, ptrType$77, true)[1]) { */ case 32: f$3 = _ref.$val; _r$8 = rl.processGoAway(f$3); /* */ $s = 42; case 42: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } err = _r$8; $s = 39; continue; - /* } else if ($assertType(_ref, ptrType$79, true)[1]) { */ case 33: + /* } else if ($assertType(_ref, ptrType$78, true)[1]) { */ case 33: f$4 = _ref.$val; _r$9 = rl.processResetStream(f$4); /* */ $s = 43; case 43: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } err = _r$9; $s = 39; continue; - /* } else if ($assertType(_ref, ptrType$74, true)[1]) { */ case 34: + /* } else if ($assertType(_ref, ptrType$73, true)[1]) { */ case 34: f$5 = _ref.$val; _r$10 = rl.processSettings(f$5); /* */ $s = 44; case 44: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } err = _r$10; $s = 39; continue; - /* } else if ($assertType(_ref, ptrType$92, true)[1]) { */ case 35: + /* } else if ($assertType(_ref, ptrType$93, true)[1]) { */ case 35: f$6 = _ref.$val; err = rl.processPushPromise(f$6); $s = 39; continue; - /* } else if ($assertType(_ref, ptrType$76, true)[1]) { */ case 36: + /* } else if ($assertType(_ref, ptrType$75, true)[1]) { */ case 36: f$7 = _ref.$val; _r$11 = rl.processWindowUpdate(f$7); /* */ $s = 45; case 45: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } err = _r$11; $s = 39; continue; - /* } else if ($assertType(_ref, ptrType$77, true)[1]) { */ case 37: + /* } else if ($assertType(_ref, ptrType$76, true)[1]) { */ case 37: f$8 = _ref.$val; _r$12 = rl.processPing(f$8); /* */ $s = 46; case 46: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } err = _r$12; @@ -298581,7 +301234,7 @@ $packages["net/http"] = (function() { if (res === ptrType$17.nil) { $s = -1; return $ifaceNil; } - cs.resTrailer = (res.$ptr_Trailer || (res.$ptr_Trailer = new ptrType$37(function() { return this.$target.Trailer; }, function($v) { this.$target.Trailer = $v; }, res))); + cs.resTrailer = (res === ptrType$17.nil && $throwNilPointerError(), (res.$ptr_Trailer || (res.$ptr_Trailer = new ptrType$37(function() { return this.$target.Trailer; }, function($v) { this.$target.Trailer = $v; }, res)))); cs.res = res; $close(cs.respHeaderRecv); /* */ if (f.http2HeadersFrame.StreamEnded()) { $s = 19; continue; } @@ -298763,7 +301416,7 @@ $packages["net/http"] = (function() { /* */ } return; } var $f = {$blk: processTrailers, $c: true, $r, _entry, _i, _key, _r$1, _ref, cs, f, hf, key$1, rl, trailer, $s};return $f; }; $ptrType(http2transportResponseBody).prototype.Read = function Read$20(p) { - var {$24r, _r$1, _r$2, _r$3, _r$4, _r$5, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, b, cc, connAdd, cs, err, n, p, streamAdd, v, v$1, x$10, x$11, x$12, x$13, x$14, x$7, x$8, x$9, $s, $deferred, $r, $c} = $restore(this, {p}); + var {$24r, _r$1, _r$2, _r$3, _r$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, b, cc, connAdd, cs, err, n, p, streamAdd, x$10, x$11, x$12, x$13, x$14, x$7, x$8, x$9, $s, $deferred, $r, $c} = $restore(this, {p}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); n = 0; err = $ifaceNil; @@ -298816,80 +301469,64 @@ $packages["net/http"] = (function() { $s = -1; return [n, err]; } $r = cc.mu.Lock(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _tmp$6 = 0; - _tmp$7 = 0; - connAdd = _tmp$6; - streamAdd = _tmp$7; - v = cc.inflow.available(); - if (v < 536870912) { - connAdd = 1073741824 - v >> 0; - cc.inflow.add(connAdd); - } - /* */ if ($interfaceIsEqual(err, $ifaceNil)) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if ($interfaceIsEqual(err, $ifaceNil)) { */ case 10: - _r$2 = cs.bufPipe.Len(); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - v$1 = ((cs.inflow.available() >> 0)) + _r$2 >> 0; - if (v$1 < 4190208) { - streamAdd = (((4194304 - v$1 >> 0) >> 0)); - cs.inflow.add(streamAdd); - } - /* } */ case 11: - $r = cc.mu.Unlock(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!((connAdd === 0)) || !((streamAdd === 0))) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (!((connAdd === 0)) || !((streamAdd === 0))) { */ case 14: - $r = cc.wmu.Lock(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + connAdd = cc.inflow.add(n); + streamAdd = 0; + if ($interfaceIsEqual(err, $ifaceNil)) { + streamAdd = cs.inflow.add(n); + } + $r = cc.mu.Unlock(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!((connAdd === 0)) || !((streamAdd === 0))) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (!((connAdd === 0)) || !((streamAdd === 0))) { */ case 11: + $r = cc.wmu.Lock(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $deferred.push([$methodVal(cc.wmu, "Unlock"), []]); - /* */ if (!((connAdd === 0))) { $s = 17; continue; } + /* */ if (!((connAdd === 0))) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (!((connAdd === 0))) { */ case 14: + _r$2 = cc.fr.WriteWindowUpdate(0, http2mustUint31(connAdd)); /* */ $s = 16; case 16: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + /* } */ case 15: + /* */ if (!((streamAdd === 0))) { $s = 17; continue; } /* */ $s = 18; continue; - /* if (!((connAdd === 0))) { */ case 17: - _r$3 = cc.fr.WriteWindowUpdate(0, http2mustUint31(connAdd)); /* */ $s = 19; case 19: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* if (!((streamAdd === 0))) { */ case 17: + _r$3 = cc.fr.WriteWindowUpdate(cs.ID, http2mustUint31(streamAdd)); /* */ $s = 19; case 19: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _r$3; /* } */ case 18: - /* */ if (!((streamAdd === 0))) { $s = 20; continue; } - /* */ $s = 21; continue; - /* if (!((streamAdd === 0))) { */ case 20: - _r$4 = cc.fr.WriteWindowUpdate(cs.ID, http2mustUint31(streamAdd)); /* */ $s = 22; case 22: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$4; - /* } */ case 21: - _r$5 = cc.bw.Flush(); /* */ $s = 23; case 23: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$5; - /* } */ case 15: + _r$4 = cc.bw.Flush(); /* */ $s = 20; case 20: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4; + /* } */ case 12: $24r = [n, err]; - $s = 24; case 24: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [n, err]; } if($curGoroutine.asleep) { var $f = {$blk: Read$20, $c: true, $r, $24r, _r$1, _r$2, _r$3, _r$4, _r$5, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, b, cc, connAdd, cs, err, n, p, streamAdd, v, v$1, x$10, x$11, x$12, x$13, x$14, x$7, x$8, x$9, $s, $deferred};return $f; } } + $s = 21; case 21: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [n, err]; } if($curGoroutine.asleep) { var $f = {$blk: Read$20, $c: true, $r, $24r, _r$1, _r$2, _r$3, _r$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, b, cc, connAdd, cs, err, n, p, streamAdd, x$10, x$11, x$12, x$13, x$14, x$7, x$8, x$9, $s, $deferred};return $f; } } }; http2transportResponseBody.prototype.Read = function(...$args) { return this.$val.Read(...$args); }; $ptrType(http2transportResponseBody).prototype.Close = function Close$15() { - var {_r$1, _r$2, _r$3, _r$4, _r$5, _selection, b, cc, cs, unread, $s, $r, $c} = $restore(this, {}); + var {_r$1, _r$2, _r$3, _r$4, _r$5, _selection, b, cc, connAdd, cs, unread, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: b = this; cs = b.cs; cc = cs.cc; - _r$1 = cs.bufPipe.Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $r = cs.bufPipe.BreakWithError(http2errClosedResponseBody); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = cs.abortStream(http2errClosedResponseBody); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = cs.bufPipe.Len(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } unread = _r$1; - /* */ if (unread > 0) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (unread > 0) { */ case 2: - $r = cc.mu.Lock(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (unread > 0) { - cc.inflow.add(((unread >> 0))); - } - $r = cc.mu.Unlock(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = cc.wmu.Lock(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (unread > 0) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (unread > 0) { */ case 7: - _r$2 = cc.fr.WriteWindowUpdate(0, ((unread >>> 0))); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (unread > 0) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (unread > 0) { */ case 4: + $r = cc.mu.Lock(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + connAdd = cc.inflow.add(unread); + $r = cc.mu.Unlock(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = cc.wmu.Lock(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (connAdd > 0) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (connAdd > 0) { */ case 9: + _r$2 = cc.fr.WriteWindowUpdate(0, ((connAdd >>> 0))); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _r$2; - /* } */ case 8: - _r$3 = cc.bw.Flush(); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* } */ case 10: + _r$3 = cc.bw.Flush(); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _r$3; - $r = cc.wmu.Unlock(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 3: - $r = cs.bufPipe.BreakWithError(http2errClosedResponseBody); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = cs.abortStream(http2errClosedResponseBody); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = cc.wmu.Unlock(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 5: _r$4 = cs.ctx.Done(); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _r$5 = $select([[cs.donec], [_r$4], [cs.reqCancel]]); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _selection = _r$5; @@ -298905,11 +301542,11 @@ $packages["net/http"] = (function() { $s = -1; return http2errRequestCanceled; /* } */ case 19: $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: Close$15, $c: true, $r, _r$1, _r$2, _r$3, _r$4, _r$5, _selection, b, cc, cs, unread, $s};return $f; + /* */ } return; } var $f = {$blk: Close$15, $c: true, $r, _r$1, _r$2, _r$3, _r$4, _r$5, _selection, b, cc, connAdd, cs, unread, $s};return $f; }; http2transportResponseBody.prototype.Close = function(...$args) { return this.$val.Close(...$args); }; $ptrType(http2clientConnReadLoop).prototype.processData = function processData$1(f) { - var {_r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, cc, cs, data, didReset, err, f, neverSent, pad, refund, rl, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {f}); + var {_r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, cc, connAdd, cs, data, didReset, err, f, neverSent, ok, pad, refund, rl, sendConn, sendStream, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {f}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: rl = this; cc = rl.cc; @@ -298932,51 +301569,56 @@ $packages["net/http"] = (function() { /* */ $s = 10; continue; /* if (f.http2FrameHeader.Length > 0) { */ case 9: $r = cc.mu.Lock(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - cc.inflow.add(((f.http2FrameHeader.Length >> 0))); + ok = cc.inflow.take(f.http2FrameHeader.Length); + connAdd = cc.inflow.add(((f.http2FrameHeader.Length >> 0))); $r = cc.mu.Unlock(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = cc.wmu.Lock(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$2 = cc.fr.WriteWindowUpdate(0, (f.http2FrameHeader.Length)); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - _r$3 = cc.bw.Flush(); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$3; - $r = cc.wmu.Unlock(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (!ok) { + $s = -1; return new http2ConnectionError(3); + } + /* */ if (connAdd > 0) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (connAdd > 0) { */ case 13: + $r = cc.wmu.Lock(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = cc.fr.WriteWindowUpdate(0, ((connAdd >>> 0))); /* */ $s = 16; case 16: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + _r$3 = cc.bw.Flush(); /* */ $s = 17; case 17: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + $r = cc.wmu.Unlock(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 14: /* } */ case 10: $s = -1; return $ifaceNil; /* } */ case 3: - /* */ if (cs.readClosed) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (cs.readClosed) { */ case 17: - $r = cc.logf("protocol error: received DATA after END_STREAM", sliceType.nil); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = rl.endStreamError(cs, (x$7 = new http2StreamError.ptr(f.http2FrameHeader.StreamID, 1, $ifaceNil), new x$7.constructor.elem(x$7))); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (cs.readClosed) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (cs.readClosed) { */ case 19: + $r = cc.logf("protocol error: received DATA after END_STREAM", sliceType.nil); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = rl.endStreamError(cs, (x$7 = new http2StreamError.ptr(f.http2FrameHeader.StreamID, 1, $ifaceNil), new x$7.constructor.elem(x$7))); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return $ifaceNil; - /* } */ case 18: - /* */ if (!cs.firstByte) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if (!cs.firstByte) { */ case 21: - $r = cc.logf("protocol error: received DATA before a HEADERS frame", sliceType.nil); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = rl.endStreamError(cs, (x$8 = new http2StreamError.ptr(f.http2FrameHeader.StreamID, 1, $ifaceNil), new x$8.constructor.elem(x$8))); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 20: + /* */ if (!cs.pastHeaders) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (!cs.pastHeaders) { */ case 23: + $r = cc.logf("protocol error: received DATA before a HEADERS frame", sliceType.nil); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = rl.endStreamError(cs, (x$8 = new http2StreamError.ptr(f.http2FrameHeader.StreamID, 1, $ifaceNil), new x$8.constructor.elem(x$8))); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return $ifaceNil; - /* } */ case 22: - /* */ if (f.http2FrameHeader.Length > 0) { $s = 25; continue; } - /* */ $s = 26; continue; - /* if (f.http2FrameHeader.Length > 0) { */ case 25: - /* */ if (cs.isHead && data.$length > 0) { $s = 27; continue; } - /* */ $s = 28; continue; - /* if (cs.isHead && data.$length > 0) { */ case 27: - $r = cc.logf("protocol error: received DATA on a HEAD request", sliceType.nil); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = rl.endStreamError(cs, (x$9 = new http2StreamError.ptr(f.http2FrameHeader.StreamID, 1, $ifaceNil), new x$9.constructor.elem(x$9))); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 24: + /* */ if (f.http2FrameHeader.Length > 0) { $s = 27; continue; } + /* */ $s = 28; continue; + /* if (f.http2FrameHeader.Length > 0) { */ case 27: + /* */ if (cs.isHead && data.$length > 0) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if (cs.isHead && data.$length > 0) { */ case 29: + $r = cc.logf("protocol error: received DATA on a HEAD request", sliceType.nil); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = rl.endStreamError(cs, (x$9 = new http2StreamError.ptr(f.http2FrameHeader.StreamID, 1, $ifaceNil), new x$9.constructor.elem(x$9))); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return $ifaceNil; - /* } */ case 28: - $r = cc.mu.Lock(); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (cs.inflow.available() >= ((f.http2FrameHeader.Length >> 0))) { $s = 32; continue; } - /* */ $s = 33; continue; - /* if (cs.inflow.available() >= ((f.http2FrameHeader.Length >> 0))) { */ case 32: - cs.inflow.take(((f.http2FrameHeader.Length >> 0))); - $s = 34; continue; - /* } else { */ case 33: - $r = cc.mu.Unlock(); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 30: + $r = cc.mu.Lock(); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!http2takeInflows(cc.inflow, cs.inflow, f.http2FrameHeader.Length)) { $s = 34; continue; } + /* */ $s = 35; continue; + /* if (!http2takeInflows(cc.inflow, cs.inflow, f.http2FrameHeader.Length)) { */ case 34: + $r = cc.mu.Unlock(); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return new http2ConnectionError(3); - /* } */ case 34: + /* } */ case 35: refund = 0; pad = ((f.http2FrameHeader.Length >> 0)) - data.$length >> 0; if (pad > 0) { @@ -298984,54 +301626,57 @@ $packages["net/http"] = (function() { } didReset = false; err = $ifaceNil; - /* */ if (data.$length > 0) { $s = 36; continue; } - /* */ $s = 37; continue; - /* if (data.$length > 0) { */ case 36: - _r$4 = cs.bufPipe.Write(data); /* */ $s = 38; case 38: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (data.$length > 0) { $s = 37; continue; } + /* */ $s = 38; continue; + /* if (data.$length > 0) { */ case 37: + _r$4 = cs.bufPipe.Write(data); /* */ $s = 39; case 39: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _tuple = _r$4; err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { didReset = true; refund = refund + (data.$length) >> 0; } - /* } */ case 37: - if (refund > 0) { - cc.inflow.add(((refund >> 0))); - if (!didReset) { - cs.inflow.add(((refund >> 0))); - } + /* } */ case 38: + sendConn = cc.inflow.add(refund); + sendStream = 0; + if (!didReset) { + sendStream = cs.inflow.add(refund); } - $r = cc.mu.Unlock(); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (refund > 0) { $s = 40; continue; } - /* */ $s = 41; continue; - /* if (refund > 0) { */ case 40: - $r = cc.wmu.Lock(); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$5 = cc.fr.WriteWindowUpdate(0, ((refund >>> 0))); /* */ $s = 43; case 43: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$5; - /* */ if (!didReset) { $s = 44; continue; } + $r = cc.mu.Unlock(); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (sendConn > 0 || sendStream > 0) { $s = 41; continue; } + /* */ $s = 42; continue; + /* if (sendConn > 0 || sendStream > 0) { */ case 41: + $r = cc.wmu.Lock(); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (sendConn > 0) { $s = 44; continue; } /* */ $s = 45; continue; - /* if (!didReset) { */ case 44: - _r$6 = cc.fr.WriteWindowUpdate(cs.ID, ((refund >>> 0))); /* */ $s = 46; case 46: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _r$6; + /* if (sendConn > 0) { */ case 44: + _r$5 = cc.fr.WriteWindowUpdate(0, ((sendConn >>> 0))); /* */ $s = 46; case 46: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$5; /* } */ case 45: - _r$7 = cc.bw.Flush(); /* */ $s = 47; case 47: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + /* */ if (sendStream > 0) { $s = 47; continue; } + /* */ $s = 48; continue; + /* if (sendStream > 0) { */ case 47: + _r$6 = cc.fr.WriteWindowUpdate(cs.ID, ((sendStream >>> 0))); /* */ $s = 49; case 49: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$6; + /* } */ case 48: + _r$7 = cc.bw.Flush(); /* */ $s = 50; case 50: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _r$7; - $r = cc.wmu.Unlock(); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 41: - /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 49; continue; } - /* */ $s = 50; continue; - /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 49: - $r = rl.endStreamError(cs, err); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = cc.wmu.Unlock(); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 42: + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 52; continue; } + /* */ $s = 53; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 52: + $r = rl.endStreamError(cs, err); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return $ifaceNil; - /* } */ case 50: - /* } */ case 26: - /* */ if (f.StreamEnded()) { $s = 52; continue; } - /* */ $s = 53; continue; - /* if (f.StreamEnded()) { */ case 52: - $r = rl.endStream(cs); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 53: + /* } */ case 53: + /* } */ case 28: + /* */ if (f.StreamEnded()) { $s = 55; continue; } + /* */ $s = 56; continue; + /* if (f.StreamEnded()) { */ case 55: + $r = rl.endStream(cs); /* */ $s = 57; case 57: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 56: $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: processData$1, $c: true, $r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, cc, cs, data, didReset, err, f, neverSent, pad, refund, rl, x$7, x$8, x$9, $s};return $f; + /* */ } return; } var $f = {$blk: processData$1, $c: true, $r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, cc, connAdd, cs, data, didReset, err, f, neverSent, ok, pad, refund, rl, sendConn, sendStream, x$7, x$8, x$9, $s};return $f; }; $ptrType(http2clientConnReadLoop).prototype.endStream = function endStream$1(cs) { var {cs, rl, $s, $deferred, $r, $c} = $restore(this, {cs}); @@ -299705,7 +302350,7 @@ $packages["net/http"] = (function() { http2writeEndsStream = function http2writeEndsStream$1(w) { var _ref, v, v$1, v$2, w; _ref = w; - if ($assertType(_ref, ptrType$88, true)[1]) { + if ($assertType(_ref, ptrType$87, true)[1]) { v = _ref.$val; return v.endStream; } else if ($assertType(_ref, ptrType$89, true)[1]) { @@ -300119,7 +302764,7 @@ $packages["net/http"] = (function() { $ptrType(http2FrameWriteRequest).prototype.DataSize = function DataSize() { var _tuple, ok, wd, wr; wr = this; - _tuple = $assertType(wr.write, ptrType$88, true); + _tuple = $assertType(wr.write, ptrType$87, true); wd = _tuple[0]; ok = _tuple[1]; if (ok) { @@ -300132,7 +302777,7 @@ $packages["net/http"] = (function() { var _tuple, allowed, consumed, empty, n, ok, rest, wd, wr; wr = this; empty = new http2FrameWriteRequest.ptr($ifaceNil, ptrType$8.nil, $chanNil); - _tuple = $assertType(wr.write, ptrType$88, true); + _tuple = $assertType(wr.write, ptrType$87, true); wd = _tuple[0]; ok = _tuple[1]; if (!ok || (wd.p.$length === 0)) { @@ -300264,7 +302909,7 @@ $packages["net/http"] = (function() { p = this; ln = p.$get().$length; if (ln === 0) { - return new http2writeQueue.ptr(sliceType$25.nil); + return new http2writeQueue.ptr(sliceType$25.nil, ptrType$102.nil, ptrType$102.nil); } x$7 = ln - 1 >> 0; q = (x$8 = p.$get(), ((x$7 < 0 || x$7 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + x$7])); @@ -300277,7 +302922,7 @@ $packages["net/http"] = (function() { if (cfg === ptrType$57.nil) { cfg = new http2PriorityWriteSchedulerConfig.ptr(10, 10, false); } - ws = new http2priorityWriteScheduler.ptr(new http2priorityNode.ptr(new http2writeQueue.ptr(sliceType$25.nil), 0, 0, 0, new $Int64(0, 0), new $Int64(0, 0), ptrType$103.nil, ptrType$103.nil, ptrType$103.nil, ptrType$103.nil), new $global.Map(), 0, sliceType$26.nil, sliceType$26.nil, cfg.MaxClosedNodesInTree, cfg.MaxIdleNodesInTree, 0, cfg.ThrottleOutOfOrderWrites, sliceType$26.nil, http2writeQueuePool.nil); + ws = new http2priorityWriteScheduler.ptr(new http2priorityNode.ptr(new http2writeQueue.ptr(sliceType$25.nil, ptrType$102.nil, ptrType$102.nil), 0, 0, 0, new $Int64(0, 0), new $Int64(0, 0), ptrType$103.nil, ptrType$103.nil, ptrType$103.nil, ptrType$103.nil), new $global.Map(), 0, sliceType$26.nil, sliceType$26.nil, cfg.MaxClosedNodesInTree, cfg.MaxIdleNodesInTree, 0, cfg.ThrottleOutOfOrderWrites, sliceType$26.nil, http2writeQueuePool.nil); _key = 0; (ws.nodes || $throwRuntimeError("assignment to entry in nil map")).set($Uint32.keyFor(_key), { k: _key, v: ws.root }); if (cfg.ThrottleOutOfOrderWrites) { ws.writeThrottleLimit = 1024; @@ -300439,7 +303084,7 @@ $packages["net/http"] = (function() { }; $ptrType(http2sortPriorityNodeSiblings).prototype.Less = function(...$args) { return this.$get().Less(...$args); }; $ptrType(http2priorityWriteScheduler).prototype.OpenStream = function OpenStream(streamID, options) { - var {_entry, _entry$1, _key, _r$1, curr, n, options, parent, streamID, ws, $s, $r, $c} = $restore(this, {streamID, options}); + var {_entry, _entry$1, _key, _r$1, curr, n, options, parent, streamID, ws, x$7, $s, $r, $c} = $restore(this, {streamID, options}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: ws = this; curr = (_entry = $mapIndex(ws.nodes,$Uint32.keyFor(streamID)), _entry !== undefined ? _entry.v : ptrType$103.nil); @@ -300459,14 +303104,14 @@ $packages["net/http"] = (function() { if (parent === ptrType$103.nil) { parent = ws.root; } - n = new http2priorityNode.ptr($clone((ws.$ptr_queuePool || (ws.$ptr_queuePool = new ptrType$104(function() { return this.$target.queuePool; }, function($v) { this.$target.queuePool = $v; }, ws))).get(), http2writeQueue), streamID, 15, 0, new $Int64(0, 0), new $Int64(0, 0), ptrType$103.nil, ptrType$103.nil, ptrType$103.nil, ptrType$103.nil); + n = new http2priorityNode.ptr($clone((x$7 = (ws === ptrType$104.nil && $throwNilPointerError(), (ws.$ptr_queuePool || (ws.$ptr_queuePool = new ptrType$105(function() { return this.$target.queuePool; }, function($v) { this.$target.queuePool = $v; }, ws)))).get(), (x$7 === ptrType$102.nil && $throwNilPointerError(), x$7)), http2writeQueue), streamID, 15, 0, new $Int64(0, 0), new $Int64(0, 0), ptrType$103.nil, ptrType$103.nil, ptrType$103.nil, ptrType$103.nil); n.setParent(parent); _key = streamID; (ws.nodes || $throwRuntimeError("assignment to entry in nil map")).set($Uint32.keyFor(_key), { k: _key, v: n }); if (streamID > ws.maxID) { ws.maxID = streamID; } $s = -1; return; - /* */ } return; } var $f = {$blk: OpenStream, $c: true, $r, _entry, _entry$1, _key, _r$1, curr, n, options, parent, streamID, ws, $s};return $f; + /* */ } return; } var $f = {$blk: OpenStream, $c: true, $r, _entry, _entry$1, _key, _r$1, curr, n, options, parent, streamID, ws, x$7, $s};return $f; }; $ptrType(http2priorityWriteScheduler).prototype.CloseStream = function CloseStream(streamID) { var {_entry, _entry$1, _entry$2, _r$1, _r$2, n, q, streamID, ws, x$7, $s, $r, $c} = $restore(this, {streamID}); @@ -300492,10 +303137,10 @@ $packages["net/http"] = (function() { n.state = 1; n.addBytes((x$7 = n.bytes, new $Int64(-x$7.$high, -x$7.$low))); q[0] = $clone(n.q, http2writeQueue); - (ws.$ptr_queuePool || (ws.$ptr_queuePool = new ptrType$104(function() { return this.$target.queuePool; }, function($v) { this.$target.queuePool = $v; }, ws))).put(q[0]); + (ws === ptrType$104.nil && $throwNilPointerError(), (ws.$ptr_queuePool || (ws.$ptr_queuePool = new ptrType$105(function() { return this.$target.queuePool; }, function($v) { this.$target.queuePool = $v; }, ws)))).put(q[0]); n.q.s = sliceType$25.nil; if (ws.maxClosedNodesInTree > 0) { - ws.addClosedOrIdleNode((ws.$ptr_closedNodes || (ws.$ptr_closedNodes = new ptrType$105(function() { return this.$target.closedNodes; }, function($v) { this.$target.closedNodes = $v; }, ws))), ws.maxClosedNodesInTree, n); + ws.addClosedOrIdleNode((ws === ptrType$104.nil && $throwNilPointerError(), (ws.$ptr_closedNodes || (ws.$ptr_closedNodes = new ptrType$106(function() { return this.$target.closedNodes; }, function($v) { this.$target.closedNodes = $v; }, ws)))), ws.maxClosedNodesInTree, n); } else { ws.removeNode(n); } @@ -300503,7 +303148,7 @@ $packages["net/http"] = (function() { /* */ } return; } var $f = {$blk: CloseStream, $c: true, $r, _entry, _entry$1, _entry$2, _r$1, _r$2, n, q, streamID, ws, x$7, $s};return $f; }; $ptrType(http2priorityWriteScheduler).prototype.AdjustStream = function AdjustStream(streamID, priority) { - var _entry, _entry$1, _key, k, n, next, parent, priority, streamID, ws, x$7; + var _entry, _entry$1, _key, k, n, next, parent, priority, streamID, ws, x$7, x$8; ws = this; if (streamID === 0) { $panic(new $String("adjustPriority on root")); @@ -300514,10 +303159,10 @@ $packages["net/http"] = (function() { return; } ws.maxID = streamID; - n = new http2priorityNode.ptr($clone((ws.$ptr_queuePool || (ws.$ptr_queuePool = new ptrType$104(function() { return this.$target.queuePool; }, function($v) { this.$target.queuePool = $v; }, ws))).get(), http2writeQueue), streamID, 15, 2, new $Int64(0, 0), new $Int64(0, 0), ptrType$103.nil, ptrType$103.nil, ptrType$103.nil, ptrType$103.nil); + n = new http2priorityNode.ptr($clone((x$7 = (ws === ptrType$104.nil && $throwNilPointerError(), (ws.$ptr_queuePool || (ws.$ptr_queuePool = new ptrType$105(function() { return this.$target.queuePool; }, function($v) { this.$target.queuePool = $v; }, ws)))).get(), (x$7 === ptrType$102.nil && $throwNilPointerError(), x$7)), http2writeQueue), streamID, 15, 2, new $Int64(0, 0), new $Int64(0, 0), ptrType$103.nil, ptrType$103.nil, ptrType$103.nil, ptrType$103.nil); n.setParent(ws.root); _key = streamID; (ws.nodes || $throwRuntimeError("assignment to entry in nil map")).set($Uint32.keyFor(_key), { k: _key, v: n }); - ws.addClosedOrIdleNode((ws.$ptr_idleNodes || (ws.$ptr_idleNodes = new ptrType$105(function() { return this.$target.idleNodes; }, function($v) { this.$target.idleNodes = $v; }, ws))), ws.maxIdleNodesInTree, n); + ws.addClosedOrIdleNode((ws === ptrType$104.nil && $throwNilPointerError(), (ws.$ptr_idleNodes || (ws.$ptr_idleNodes = new ptrType$106(function() { return this.$target.idleNodes; }, function($v) { this.$target.idleNodes = $v; }, ws)))), ws.maxIdleNodesInTree, n); } parent = (_entry$1 = $mapIndex(ws.nodes,$Uint32.keyFor(priority.StreamDep)), _entry$1 !== undefined ? _entry$1.v : ptrType$103.nil); if (parent === ptrType$103.nil) { @@ -300528,14 +303173,14 @@ $packages["net/http"] = (function() { if (n === parent) { return; } - x$7 = parent.parent; + x$8 = parent.parent; while (true) { - if (!(!(x$7 === ptrType$103.nil))) { break; } - if (x$7 === n) { + if (!(!(x$8 === ptrType$103.nil))) { break; } + if (x$8 === n) { parent.setParent(n.parent); break; } - x$7 = x$7.parent; + x$8 = x$8.parent; } if (priority.Exclusive) { k = parent.kids; @@ -300578,7 +303223,7 @@ $packages["net/http"] = (function() { wr[0] = new http2FrameWriteRequest.ptr($ifaceNil, ptrType$8.nil, $chanNil); ok[0] = false; ws[0] = this; - _r$1 = ws[0].root.walkReadyInOrder(false, (ws[0].$ptr_tmp || (ws[0].$ptr_tmp = new ptrType$105(function() { return this.$target.tmp; }, function($v) { this.$target.tmp = $v; }, ws[0]))), (function(ok, wr, ws) { return function http2priorityWriteScheduler·Pop·func1(n, openParent) { + _r$1 = ws[0].root.walkReadyInOrder(false, (ws[0] === ptrType$104.nil && $throwNilPointerError(), (ws[0].$ptr_tmp || (ws[0].$ptr_tmp = new ptrType$106(function() { return this.$target.tmp; }, function($v) { this.$target.tmp = $v; }, ws[0])))), (function(ok, wr, ws) { return function http2priorityWriteScheduler·Pop·func1(n, openParent) { var _tuple, limit, n, openParent; limit = 2147483647; if (openParent) { @@ -300635,6 +303280,101 @@ $packages["net/http"] = (function() { n.setParent(ptrType$103.nil); $mapDelete(ws.nodes, $Uint32.keyFor(n.id)); }; + http2newRoundRobinWriteScheduler = function http2newRoundRobinWriteScheduler$1() { + var ws; + ws = new http2roundRobinWriteScheduler.ptr(new http2writeQueue.ptr(sliceType$25.nil, ptrType$102.nil, ptrType$102.nil), new $global.Map(), ptrType$102.nil, http2writeQueuePool.nil); + return ws; + }; + $ptrType(http2roundRobinWriteScheduler).prototype.OpenStream = function OpenStream$2(streamID, options) { + var {_entry, _key, _r$1, options, q, streamID, ws, $s, $r, $c} = $restore(this, {streamID, options}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + ws = this; + /* */ if (!((_entry = $mapIndex(ws.streams,$Uint32.keyFor(streamID)), _entry !== undefined ? _entry.v : ptrType$102.nil) === ptrType$102.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((_entry = $mapIndex(ws.streams,$Uint32.keyFor(streamID)), _entry !== undefined ? _entry.v : ptrType$102.nil) === ptrType$102.nil)) { */ case 1: + _r$1 = fmt.Errorf("stream %d already opened", new sliceType([new $Uint32(streamID)])); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $panic(_r$1); + /* } */ case 2: + q = (ws === ptrType$108.nil && $throwNilPointerError(), (ws.$ptr_queuePool || (ws.$ptr_queuePool = new ptrType$105(function() { return this.$target.queuePool; }, function($v) { this.$target.queuePool = $v; }, ws)))).get(); + _key = streamID; (ws.streams || $throwRuntimeError("assignment to entry in nil map")).set($Uint32.keyFor(_key), { k: _key, v: q }); + if (ws.head === ptrType$102.nil) { + ws.head = q; + q.next = q; + q.prev = q; + } else { + q.prev = ws.head.prev; + q.next = ws.head; + q.prev.next = q; + q.next.prev = q; + } + $s = -1; return; + /* */ } return; } var $f = {$blk: OpenStream$2, $c: true, $r, _entry, _key, _r$1, options, q, streamID, ws, $s};return $f; + }; + $ptrType(http2roundRobinWriteScheduler).prototype.CloseStream = function CloseStream$2(streamID) { + var _entry, q, streamID, ws; + ws = this; + q = (_entry = $mapIndex(ws.streams,$Uint32.keyFor(streamID)), _entry !== undefined ? _entry.v : ptrType$102.nil); + if (q === ptrType$102.nil) { + return; + } + if (q.next === q) { + ws.head = ptrType$102.nil; + } else { + q.prev.next = q.next; + q.next.prev = q.prev; + if (ws.head === q) { + ws.head = q.next; + } + } + $mapDelete(ws.streams, $Uint32.keyFor(streamID)); + (ws === ptrType$108.nil && $throwNilPointerError(), (ws.$ptr_queuePool || (ws.$ptr_queuePool = new ptrType$105(function() { return this.$target.queuePool; }, function($v) { this.$target.queuePool = $v; }, ws)))).put(q); + }; + $ptrType(http2roundRobinWriteScheduler).prototype.AdjustStream = function AdjustStream$2(streamID, priority) { + var priority, streamID, ws; + ws = this; + }; + $ptrType(http2roundRobinWriteScheduler).prototype.Push = function Push$4(wr) { + var _entry, q, wr, ws; + ws = this; + if ($clone(wr, http2FrameWriteRequest).isControl()) { + ws.control.push($clone(wr, http2FrameWriteRequest)); + return; + } + q = (_entry = $mapIndex(ws.streams,$Uint32.keyFor($clone(wr, http2FrameWriteRequest).StreamID())), _entry !== undefined ? _entry.v : ptrType$102.nil); + if (q === ptrType$102.nil) { + if ($clone(wr, http2FrameWriteRequest).DataSize() > 0) { + $panic(new $String("add DATA on non-open stream")); + } + ws.control.push($clone(wr, http2FrameWriteRequest)); + return; + } + q.push($clone(wr, http2FrameWriteRequest)); + }; + $ptrType(http2roundRobinWriteScheduler).prototype.Pop = function Pop$2() { + var _tuple, ok, q, wr, ws; + ws = this; + if (!ws.control.empty()) { + return [ws.control.shift(), true]; + } + if (ws.head === ptrType$102.nil) { + return [new http2FrameWriteRequest.ptr($ifaceNil, ptrType$8.nil, $chanNil), false]; + } + q = ws.head; + while (true) { + _tuple = q.consume(2147483647); + wr = $clone(_tuple[0], http2FrameWriteRequest); + ok = _tuple[1]; + if (ok) { + ws.head = q.next; + return [wr, true]; + } + q = q.next; + if (q === ws.head) { + break; + } + } + return [new http2FrameWriteRequest.ptr($ifaceNil, ptrType$8.nil, $chanNil), false]; + }; $ptrType(noTransport).prototype.RoundTrip = function RoundTrip$5(req) { var req; return [ptrType$17.nil, errors.New("net/http: neither of Fetch nor XMLHttpRequest APIs is available")]; @@ -300939,7 +303679,7 @@ $packages["net/http"] = (function() { /* */ } return; } var $f = {$blk: readSetCookies$1, $c: true, $r, _1, _2, _entry, _entry$1, _i, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, ascii$1, attr, c, cookieCount, cookies, err, err$1, exptime, h, i, isASCII, line, lowerAttr, lowerVal, name$2, ok, parts, secs, val, value, $s};return $f; }; $ptrType(Cookie).prototype.String = function String$14() { - var {_1, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _v, b, buf, c, d, $s, $r, $c} = $restore(this, {}); + var {_1, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _v, b, buf, c, d, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: c = this; if (c === ptrType$58.nil) { _v = true; $s = 3; continue s; } @@ -300950,7 +303690,7 @@ $packages["net/http"] = (function() { /* if (_v) { */ case 1: $s = -1; return ""; /* } */ case 2: - b = new strings.Builder.ptr(ptrType$109.nil, sliceType$3.nil); + b = new strings.Builder.ptr(ptrType$112.nil, sliceType$3.nil); b.Grow((((c.Name.length + c.Value.length >> 0) + c.Domain.length >> 0) + c.Path.length >> 0) + 110 >> 0); b.WriteString(c.Name); b.WriteRune(61); @@ -300968,9 +303708,10 @@ $packages["net/http"] = (function() { /* */ if (c.Domain.length > 0) { $s = 11; continue; } /* */ $s = 12; continue; /* if (c.Domain.length > 0) { */ case 11: - /* */ if (validCookieDomain(c.Domain)) { $s = 13; continue; } + _r$6 = validCookieDomain(c.Domain); /* */ $s = 16; case 16: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + /* */ if (_r$6) { $s = 13; continue; } /* */ $s = 14; continue; - /* if (validCookieDomain(c.Domain)) { */ case 13: + /* if (_r$6) { */ case 13: d = c.Domain; if (d.charCodeAt(0) === 46) { d = $substring(d, 1); @@ -300979,19 +303720,19 @@ $packages["net/http"] = (function() { b.WriteString(d); $s = 15; continue; /* } else { */ case 14: - $r = log.Printf("net/http: invalid Cookie.Domain %q; dropping domain attribute", new sliceType([new $String(c.Domain)])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = log.Printf("net/http: invalid Cookie.Domain %q; dropping domain attribute", new sliceType([new $String(c.Domain)])); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 15: /* } */ case 12: buf = arrayType$3.zero(); - _r$6 = validCookieExpires($clone(c.Expires, time.Time)); /* */ $s = 19; case 19: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - /* */ if (_r$6) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (_r$6) { */ case 17: + _r$7 = validCookieExpires($clone(c.Expires, time.Time)); /* */ $s = 20; case 20: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + /* */ if (_r$7) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (_r$7) { */ case 18: b.WriteString("; Expires="); - _r$7 = $clone($clone(c.Expires, time.Time).UTC(), time.Time).AppendFormat($subslice(new sliceType$3(buf), 0, 0), "Mon, 02 Jan 2006 15:04:05 GMT"); /* */ $s = 20; case 20: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _r$8 = b.Write(_r$7); /* */ $s = 21; case 21: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _r$8; - /* } */ case 18: + _r$8 = $clone($clone(c.Expires, time.Time).UTC(), time.Time).AppendFormat($subslice(new sliceType$3(buf), 0, 0), "Mon, 02 Jan 2006 15:04:05 GMT"); /* */ $s = 21; case 21: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$9 = b.Write(_r$8); /* */ $s = 22; case 22: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$9; + /* } */ case 19: if (c.MaxAge > 0) { b.WriteString("; Max-Age="); b.Write(strconv.AppendInt($subslice(new sliceType$3(buf), 0, 0), (new $Int64(0, c.MaxAge)), 10)); @@ -301014,10 +303755,10 @@ $packages["net/http"] = (function() { b.WriteString("; SameSite=Strict"); } $s = -1; return b.String(); - /* */ } return; } var $f = {$blk: String$14, $c: true, $r, _1, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _v, b, buf, c, d, $s};return $f; + /* */ } return; } var $f = {$blk: String$14, $c: true, $r, _1, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _v, b, buf, c, d, $s};return $f; }; $ptrType(Cookie).prototype.Valid = function Valid$1() { - var {$24r, $24r$1, _r$1, _r$2, _r$3, _r$4, _v, c, i, i$1, $s, $r, $c} = $restore(this, {}); + var {$24r, $24r$1, _r$1, _r$2, _r$3, _r$4, _r$5, _v, c, i, i$1, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: c = this; if (c === ptrType$58.nil) { @@ -301067,13 +303808,18 @@ $packages["net/http"] = (function() { $s = 16; continue; case 17: /* } */ case 15: - if (c.Domain.length > 0) { - if (!validCookieDomain(c.Domain)) { + /* */ if (c.Domain.length > 0) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (c.Domain.length > 0) { */ case 22: + _r$5 = validCookieDomain(c.Domain); /* */ $s = 26; case 26: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (!_r$5) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (!_r$5) { */ case 24: $s = -1; return errors.New("http: invalid Cookie.Domain"); - } - } + /* } */ case 25: + /* } */ case 23: $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: Valid$1, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _r$3, _r$4, _v, c, i, i$1, $s};return $f; + /* */ } return; } var $f = {$blk: Valid$1, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _r$3, _r$4, _r$5, _v, c, i, i$1, $s};return $f; }; readCookies = function readCookies$1(h, filter) { var {_entry, _i, _r$1, _ref, _tuple, _tuple$1, _tuple$2, cookies, filter, h, line, lines, name$2, ok, part, val, $s, $r, $c} = $restore(this, {h, filter}); @@ -301128,14 +303874,19 @@ $packages["net/http"] = (function() { /* */ } return; } var $f = {$blk: readCookies$1, $c: true, $r, _entry, _i, _r$1, _ref, _tuple, _tuple$1, _tuple$2, cookies, filter, h, line, lines, name$2, ok, part, val, $s};return $f; }; validCookieDomain = function validCookieDomain$1(v) { - var v; + var {_r$1, v, $s, $r, $c} = $restore(this, {v}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if (isCookieDomainName(v)) { - return true; - } - if (!(net.ParseIP(v) === net.IP.nil) && !strings.Contains(v, ":")) { - return true; + $s = -1; return true; } - return false; + _r$1 = net.ParseIP(v); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!(_r$1 === net.IP.nil) && !strings.Contains(v, ":")) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(_r$1 === net.IP.nil) && !strings.Contains(v, ":")) { */ case 1: + $s = -1; return true; + /* } */ case 2: + $s = -1; return false; + /* */ } return; } var $f = {$blk: validCookieDomain$1, $c: true, $r, _r$1, v, $s};return $f; }; validCookieExpires = function validCookieExpires$1(t) { var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {t}); @@ -301302,15 +304053,15 @@ $packages["net/http"] = (function() { return (new Header((v)).Clone()); }; cloneURL = function cloneURL$1(u) { - var u, u2; + var u, u2, x$7, x$8; if (u === ptrType$16.nil) { return ptrType$16.nil; } u2 = new url.URL.ptr("", "", ptrType$20.nil, "", "", "", false, false, "", "", ""); - url.URL.copy(u2, u); + url.URL.copy((u2 === ptrType$16.nil && $throwNilPointerError(), u2), (u === ptrType$16.nil && $throwNilPointerError(), u)); if (!(u.User === ptrType$20.nil)) { u2.User = new url.Userinfo.ptr("", "", false); - url.Userinfo.copy(u2.User, u.User); + url.Userinfo.copy((x$8 = u2.User, (x$8 === ptrType$20.nil && $throwNilPointerError(), x$8)), (x$7 = u.User, (x$7 === ptrType$20.nil && $throwNilPointerError(), x$7))); } return u2; }; @@ -301359,7 +304110,7 @@ $packages["net/http"] = (function() { return ptrType$62.nil; } fh2 = new multipart.FileHeader.ptr("", false, new $Int64(0, 0), sliceType$3.nil, "", new $Int64(0, 0), false); - multipart.FileHeader.copy(fh2, fh); + multipart.FileHeader.copy((fh2 === ptrType$62.nil && $throwNilPointerError(), fh2), (fh === ptrType$62.nil && $throwNilPointerError(), fh)); fh2.Header = (new Header((fh.Header)).Clone()); return fh2; }; @@ -301368,28 +304119,28 @@ $packages["net/http"] = (function() { auth = username + ":" + password; return base64.StdEncoding.EncodeToString((new sliceType$3($stringToBytes(auth)))); }; - ptrType$26.methods = [{prop: "writeBufferSize", name: "writeBufferSize", pkg: "net/http", typ: $funcType([], [$Int], false)}, {prop: "readBufferSize", name: "readBufferSize", pkg: "net/http", typ: $funcType([], [$Int], false)}, {prop: "Clone", name: "Clone", pkg: "", typ: $funcType([], [ptrType$26], false)}, {prop: "hasCustomTLSDialer", name: "hasCustomTLSDialer", pkg: "net/http", typ: $funcType([], [$Bool], false)}, {prop: "onceSetNextProtoDefaults", name: "onceSetNextProtoDefaults", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "useRegisteredProtocol", name: "useRegisteredProtocol", pkg: "net/http", typ: $funcType([ptrType$9], [$Bool], false)}, {prop: "alternateRoundTripper", name: "alternateRoundTripper", pkg: "net/http", typ: $funcType([ptrType$9], [RoundTripper], false)}, {prop: "roundTrip", name: "roundTrip", pkg: "net/http", typ: $funcType([ptrType$9], [ptrType$17, $error], false)}, {prop: "RegisterProtocol", name: "RegisterProtocol", pkg: "", typ: $funcType([$String, RoundTripper], [], false)}, {prop: "CloseIdleConnections", name: "CloseIdleConnections", pkg: "", typ: $funcType([], [], false)}, {prop: "CancelRequest", name: "CancelRequest", pkg: "", typ: $funcType([ptrType$9], [], false)}, {prop: "cancelRequest", name: "cancelRequest", pkg: "net/http", typ: $funcType([cancelKey, $error], [$Bool], false)}, {prop: "connectMethodForRequest", name: "connectMethodForRequest", pkg: "net/http", typ: $funcType([ptrType$111], [connectMethod, $error], false)}, {prop: "putOrCloseIdleConn", name: "putOrCloseIdleConn", pkg: "net/http", typ: $funcType([ptrType$21], [], false)}, {prop: "maxIdleConnsPerHost", name: "maxIdleConnsPerHost", pkg: "net/http", typ: $funcType([], [$Int], false)}, {prop: "tryPutIdleConn", name: "tryPutIdleConn", pkg: "net/http", typ: $funcType([ptrType$21], [$error], false)}, {prop: "queueForIdleConn", name: "queueForIdleConn", pkg: "net/http", typ: $funcType([ptrType$23], [$Bool], false)}, {prop: "removeIdleConn", name: "removeIdleConn", pkg: "net/http", typ: $funcType([ptrType$21], [$Bool], false)}, {prop: "removeIdleConnLocked", name: "removeIdleConnLocked", pkg: "net/http", typ: $funcType([ptrType$21], [$Bool], false)}, {prop: "setReqCanceler", name: "setReqCanceler", pkg: "net/http", typ: $funcType([cancelKey, funcType$5], [], false)}, {prop: "replaceReqCanceler", name: "replaceReqCanceler", pkg: "net/http", typ: $funcType([cancelKey, funcType$5], [$Bool], false)}, {prop: "dial", name: "dial", pkg: "net/http", typ: $funcType([context.Context, $String, $String], [net.Conn, $error], false)}, {prop: "customDialTLS", name: "customDialTLS", pkg: "net/http", typ: $funcType([context.Context, $String, $String], [net.Conn, $error], false)}, {prop: "getConn", name: "getConn", pkg: "net/http", typ: $funcType([ptrType$111, connectMethod], [ptrType$21, $error], false)}, {prop: "queueForDial", name: "queueForDial", pkg: "net/http", typ: $funcType([ptrType$23], [], false)}, {prop: "dialConnFor", name: "dialConnFor", pkg: "net/http", typ: $funcType([ptrType$23], [], false)}, {prop: "decConnsPerHost", name: "decConnsPerHost", pkg: "net/http", typ: $funcType([connectMethodKey], [], false)}, {prop: "dialConn", name: "dialConn", pkg: "net/http", typ: $funcType([context.Context, connectMethod], [ptrType$21, $error], false)}, {prop: "RoundTrip", name: "RoundTrip", pkg: "", typ: $funcType([ptrType$9], [ptrType$17, $error], false)}]; - ptrType$111.methods = [{prop: "extraHeaders", name: "extraHeaders", pkg: "net/http", typ: $funcType([], [Header], false)}, {prop: "setError", name: "setError", pkg: "net/http", typ: $funcType([$error], [], false)}, {prop: "logf", name: "logf", pkg: "net/http", typ: $funcType([$String, sliceType], [], true)}]; + ptrType$26.methods = [{prop: "writeBufferSize", name: "writeBufferSize", pkg: "net/http", typ: $funcType([], [$Int], false)}, {prop: "readBufferSize", name: "readBufferSize", pkg: "net/http", typ: $funcType([], [$Int], false)}, {prop: "Clone", name: "Clone", pkg: "", typ: $funcType([], [ptrType$26], false)}, {prop: "hasCustomTLSDialer", name: "hasCustomTLSDialer", pkg: "net/http", typ: $funcType([], [$Bool], false)}, {prop: "onceSetNextProtoDefaults", name: "onceSetNextProtoDefaults", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "useRegisteredProtocol", name: "useRegisteredProtocol", pkg: "net/http", typ: $funcType([ptrType$9], [$Bool], false)}, {prop: "alternateRoundTripper", name: "alternateRoundTripper", pkg: "net/http", typ: $funcType([ptrType$9], [RoundTripper], false)}, {prop: "roundTrip", name: "roundTrip", pkg: "net/http", typ: $funcType([ptrType$9], [ptrType$17, $error], false)}, {prop: "RegisterProtocol", name: "RegisterProtocol", pkg: "", typ: $funcType([$String, RoundTripper], [], false)}, {prop: "CloseIdleConnections", name: "CloseIdleConnections", pkg: "", typ: $funcType([], [], false)}, {prop: "CancelRequest", name: "CancelRequest", pkg: "", typ: $funcType([ptrType$9], [], false)}, {prop: "cancelRequest", name: "cancelRequest", pkg: "net/http", typ: $funcType([cancelKey, $error], [$Bool], false)}, {prop: "connectMethodForRequest", name: "connectMethodForRequest", pkg: "net/http", typ: $funcType([ptrType$114], [connectMethod, $error], false)}, {prop: "putOrCloseIdleConn", name: "putOrCloseIdleConn", pkg: "net/http", typ: $funcType([ptrType$21], [], false)}, {prop: "maxIdleConnsPerHost", name: "maxIdleConnsPerHost", pkg: "net/http", typ: $funcType([], [$Int], false)}, {prop: "tryPutIdleConn", name: "tryPutIdleConn", pkg: "net/http", typ: $funcType([ptrType$21], [$error], false)}, {prop: "queueForIdleConn", name: "queueForIdleConn", pkg: "net/http", typ: $funcType([ptrType$23], [$Bool], false)}, {prop: "removeIdleConn", name: "removeIdleConn", pkg: "net/http", typ: $funcType([ptrType$21], [$Bool], false)}, {prop: "removeIdleConnLocked", name: "removeIdleConnLocked", pkg: "net/http", typ: $funcType([ptrType$21], [$Bool], false)}, {prop: "setReqCanceler", name: "setReqCanceler", pkg: "net/http", typ: $funcType([cancelKey, funcType$5], [], false)}, {prop: "replaceReqCanceler", name: "replaceReqCanceler", pkg: "net/http", typ: $funcType([cancelKey, funcType$5], [$Bool], false)}, {prop: "dial", name: "dial", pkg: "net/http", typ: $funcType([context.Context, $String, $String], [net.Conn, $error], false)}, {prop: "customDialTLS", name: "customDialTLS", pkg: "net/http", typ: $funcType([context.Context, $String, $String], [net.Conn, $error], false)}, {prop: "getConn", name: "getConn", pkg: "net/http", typ: $funcType([ptrType$114, connectMethod], [ptrType$21, $error], false)}, {prop: "queueForDial", name: "queueForDial", pkg: "net/http", typ: $funcType([ptrType$23], [], false)}, {prop: "dialConnFor", name: "dialConnFor", pkg: "net/http", typ: $funcType([ptrType$23], [], false)}, {prop: "decConnsPerHost", name: "decConnsPerHost", pkg: "net/http", typ: $funcType([connectMethodKey], [], false)}, {prop: "dialConn", name: "dialConn", pkg: "net/http", typ: $funcType([context.Context, connectMethod], [ptrType$21, $error], false)}, {prop: "RoundTrip", name: "RoundTrip", pkg: "", typ: $funcType([ptrType$9], [ptrType$17, $error], false)}]; + ptrType$114.methods = [{prop: "extraHeaders", name: "extraHeaders", pkg: "net/http", typ: $funcType([], [Header], false)}, {prop: "setError", name: "setError", pkg: "net/http", typ: $funcType([$error], [], false)}, {prop: "logf", name: "logf", pkg: "net/http", typ: $funcType([$String, sliceType], [], true)}]; ptrType$19.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}]; transportReadFromServerError.methods = [{prop: "Unwrap", name: "Unwrap", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; ptrType$23.methods = [{prop: "waiting", name: "waiting", pkg: "net/http", typ: $funcType([], [$Bool], false)}, {prop: "tryDeliver", name: "tryDeliver", pkg: "net/http", typ: $funcType([ptrType$21, $error], [$Bool], false)}, {prop: "cancel", name: "cancel", pkg: "net/http", typ: $funcType([ptrType$26, $error], [], false)}]; - ptrType$112.methods = [{prop: "len", name: "len", pkg: "net/http", typ: $funcType([], [$Int], false)}, {prop: "pushBack", name: "pushBack", pkg: "net/http", typ: $funcType([ptrType$23], [], false)}, {prop: "popFront", name: "popFront", pkg: "net/http", typ: $funcType([], [ptrType$23], false)}, {prop: "peekFront", name: "peekFront", pkg: "net/http", typ: $funcType([], [ptrType$23], false)}, {prop: "cleanFront", name: "cleanFront", pkg: "net/http", typ: $funcType([], [$Bool], false)}]; + ptrType$115.methods = [{prop: "len", name: "len", pkg: "net/http", typ: $funcType([], [$Int], false)}, {prop: "pushBack", name: "pushBack", pkg: "net/http", typ: $funcType([ptrType$23], [], false)}, {prop: "popFront", name: "popFront", pkg: "net/http", typ: $funcType([], [ptrType$23], false)}, {prop: "peekFront", name: "peekFront", pkg: "net/http", typ: $funcType([], [ptrType$23], false)}, {prop: "cleanFront", name: "cleanFront", pkg: "net/http", typ: $funcType([], [$Bool], false)}]; persistConnWriter.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "ReadFrom", name: "ReadFrom", pkg: "", typ: $funcType([io.Reader], [$Int64, $error], false)}]; - ptrType$113.methods = [{prop: "proxyAuth", name: "proxyAuth", pkg: "net/http", typ: $funcType([], [$String], false)}, {prop: "key", name: "key", pkg: "net/http", typ: $funcType([], [connectMethodKey], false)}, {prop: "scheme", name: "scheme", pkg: "net/http", typ: $funcType([], [$String], false)}, {prop: "addr", name: "addr", pkg: "net/http", typ: $funcType([], [$String], false)}, {prop: "tlsHost", name: "tlsHost", pkg: "net/http", typ: $funcType([], [$String], false)}]; + ptrType$116.methods = [{prop: "proxyAuth", name: "proxyAuth", pkg: "net/http", typ: $funcType([], [$String], false)}, {prop: "key", name: "key", pkg: "net/http", typ: $funcType([], [connectMethodKey], false)}, {prop: "scheme", name: "scheme", pkg: "net/http", typ: $funcType([], [$String], false)}, {prop: "addr", name: "addr", pkg: "net/http", typ: $funcType([], [$String], false)}, {prop: "tlsHost", name: "tlsHost", pkg: "net/http", typ: $funcType([], [$String], false)}]; connectMethodKey.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$21.methods = [{prop: "shouldRetryRequest", name: "shouldRetryRequest", pkg: "net/http", typ: $funcType([ptrType$9, $error], [$Bool], false)}, {prop: "addTLS", name: "addTLS", pkg: "net/http", typ: $funcType([context.Context, $String, ptrType$18], [$error], false)}, {prop: "maxHeaderResponseSize", name: "maxHeaderResponseSize", pkg: "net/http", typ: $funcType([], [$Int64], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "isBroken", name: "isBroken", pkg: "net/http", typ: $funcType([], [$Bool], false)}, {prop: "canceled", name: "canceled", pkg: "net/http", typ: $funcType([], [$error], false)}, {prop: "isReused", name: "isReused", pkg: "net/http", typ: $funcType([], [$Bool], false)}, {prop: "gotIdleConnTrace", name: "gotIdleConnTrace", pkg: "net/http", typ: $funcType([time.Time], [httptrace.GotConnInfo], false)}, {prop: "cancelRequest", name: "cancelRequest", pkg: "net/http", typ: $funcType([$error], [], false)}, {prop: "closeConnIfStillIdle", name: "closeConnIfStillIdle", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "mapRoundTripError", name: "mapRoundTripError", pkg: "net/http", typ: $funcType([ptrType$111, $Int64, $error], [$error], false)}, {prop: "readLoop", name: "readLoop", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "readLoopPeekFailLocked", name: "readLoopPeekFailLocked", pkg: "net/http", typ: $funcType([$error], [], false)}, {prop: "readResponse", name: "readResponse", pkg: "net/http", typ: $funcType([requestAndChan, ptrType$18], [ptrType$17, $error], false)}, {prop: "waitForContinue", name: "waitForContinue", pkg: "net/http", typ: $funcType([chanType$2], [funcType$12], false)}, {prop: "writeLoop", name: "writeLoop", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "wroteRequest", name: "wroteRequest", pkg: "net/http", typ: $funcType([], [$Bool], false)}, {prop: "roundTrip", name: "roundTrip", pkg: "net/http", typ: $funcType([ptrType$111], [ptrType$17, $error], false)}, {prop: "markReused", name: "markReused", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "close", name: "close", pkg: "net/http", typ: $funcType([$error], [], false)}, {prop: "closeLocked", name: "closeLocked", pkg: "net/http", typ: $funcType([$error], [], false)}]; - ptrType$114.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}]; + ptrType$21.methods = [{prop: "shouldRetryRequest", name: "shouldRetryRequest", pkg: "net/http", typ: $funcType([ptrType$9, $error], [$Bool], false)}, {prop: "addTLS", name: "addTLS", pkg: "net/http", typ: $funcType([context.Context, $String, ptrType$18], [$error], false)}, {prop: "maxHeaderResponseSize", name: "maxHeaderResponseSize", pkg: "net/http", typ: $funcType([], [$Int64], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "isBroken", name: "isBroken", pkg: "net/http", typ: $funcType([], [$Bool], false)}, {prop: "canceled", name: "canceled", pkg: "net/http", typ: $funcType([], [$error], false)}, {prop: "isReused", name: "isReused", pkg: "net/http", typ: $funcType([], [$Bool], false)}, {prop: "gotIdleConnTrace", name: "gotIdleConnTrace", pkg: "net/http", typ: $funcType([time.Time], [httptrace.GotConnInfo], false)}, {prop: "cancelRequest", name: "cancelRequest", pkg: "net/http", typ: $funcType([$error], [], false)}, {prop: "closeConnIfStillIdle", name: "closeConnIfStillIdle", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "mapRoundTripError", name: "mapRoundTripError", pkg: "net/http", typ: $funcType([ptrType$114, $Int64, $error], [$error], false)}, {prop: "readLoop", name: "readLoop", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "readLoopPeekFailLocked", name: "readLoopPeekFailLocked", pkg: "net/http", typ: $funcType([$error], [], false)}, {prop: "readResponse", name: "readResponse", pkg: "net/http", typ: $funcType([requestAndChan, ptrType$18], [ptrType$17, $error], false)}, {prop: "waitForContinue", name: "waitForContinue", pkg: "net/http", typ: $funcType([chanType$2], [funcType$12], false)}, {prop: "writeLoop", name: "writeLoop", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "wroteRequest", name: "wroteRequest", pkg: "net/http", typ: $funcType([], [$Bool], false)}, {prop: "roundTrip", name: "roundTrip", pkg: "net/http", typ: $funcType([ptrType$114], [ptrType$17, $error], false)}, {prop: "markReused", name: "markReused", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "close", name: "close", pkg: "net/http", typ: $funcType([$error], [], false)}, {prop: "closeLocked", name: "closeLocked", pkg: "net/http", typ: $funcType([$error], [], false)}]; + ptrType$117.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}]; nothingWrittenError.methods = [{prop: "Unwrap", name: "Unwrap", pkg: "", typ: $funcType([], [$error], false)}]; - ptrType$115.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$118.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false)}]; ptrType$31.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "condfn", name: "condfn", pkg: "net/http", typ: $funcType([$error], [$error], false)}]; - ptrType$116.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}]; + ptrType$119.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}]; tlsHandshakeTimeoutError.methods = [{prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; fakeLocker.methods = [{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}]; - ptrType$117.methods = [{prop: "add", name: "add", pkg: "net/http", typ: $funcType([ptrType$21], [], false)}, {prop: "removeOldest", name: "removeOldest", pkg: "net/http", typ: $funcType([], [ptrType$21], false)}, {prop: "remove", name: "remove", pkg: "net/http", typ: $funcType([ptrType$21], [], false)}, {prop: "len", name: "len", pkg: "net/http", typ: $funcType([], [$Int], false)}]; + ptrType$120.methods = [{prop: "add", name: "add", pkg: "net/http", typ: $funcType([ptrType$21], [], false)}, {prop: "removeOldest", name: "removeOldest", pkg: "net/http", typ: $funcType([], [ptrType$21], false)}, {prop: "remove", name: "remove", pkg: "net/http", typ: $funcType([ptrType$21], [], false)}, {prop: "len", name: "len", pkg: "net/http", typ: $funcType([], [$Int], false)}]; errorReader.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}]; - ptrType$118.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}]; + ptrType$121.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}]; ptrType$34.methods = [{prop: "shouldSendChunkedRequestBody", name: "shouldSendChunkedRequestBody", pkg: "net/http", typ: $funcType([], [$Bool], false)}, {prop: "probeRequestBody", name: "probeRequestBody", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "shouldSendContentLength", name: "shouldSendContentLength", pkg: "net/http", typ: $funcType([], [$Bool], false)}, {prop: "writeHeader", name: "writeHeader", pkg: "net/http", typ: $funcType([io.Writer, ptrType$18], [$error], false)}, {prop: "writeBody", name: "writeBody", pkg: "net/http", typ: $funcType([io.Writer], [$error], false)}, {prop: "doBodyCopy", name: "doBodyCopy", pkg: "net/http", typ: $funcType([io.Writer, io.Reader], [$Int64, $error], false)}, {prop: "unwrapBody", name: "unwrapBody", pkg: "net/http", typ: $funcType([], [io.Reader], false)}]; - ptrType$119.methods = [{prop: "protoAtLeast", name: "protoAtLeast", pkg: "net/http", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "parseTransferEncoding", name: "parseTransferEncoding", pkg: "net/http", typ: $funcType([], [$error], false)}]; + ptrType$122.methods = [{prop: "protoAtLeast", name: "protoAtLeast", pkg: "net/http", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "parseTransferEncoding", name: "parseTransferEncoding", pkg: "net/http", typ: $funcType([], [$error], false)}]; ptrType$35.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; ptrType$49.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "readLocked", name: "readLocked", pkg: "net/http", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "readTrailer", name: "readTrailer", pkg: "net/http", typ: $funcType([], [$error], false)}, {prop: "unreadDataSizeLocked", name: "unreadDataSizeLocked", pkg: "net/http", typ: $funcType([], [$Int64], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "didEarlyClose", name: "didEarlyClose", pkg: "net/http", typ: $funcType([], [$Bool], false)}, {prop: "bodyRemains", name: "bodyRemains", pkg: "net/http", typ: $funcType([], [$Bool], false)}, {prop: "registerOnHitEOF", name: "registerOnHitEOF", pkg: "net/http", typ: $funcType([funcType], [], false)}]; bodyLocked.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}]; @@ -301399,39 +304150,39 @@ $packages["net/http"] = (function() { socksReply.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; ptrType$41.methods = [{prop: "Network", name: "Network", pkg: "", typ: $funcType([], [$String], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; ptrType$42.methods = [{prop: "BoundAddr", name: "BoundAddr", pkg: "", typ: $funcType([], [net.Addr], false)}]; - ptrType$120.methods = [{prop: "connect", name: "connect", pkg: "net/http", typ: $funcType([context.Context, net.Conn, $String], [net.Addr, $error], false)}, {prop: "DialContext", name: "DialContext", pkg: "", typ: $funcType([context.Context, $String, $String], [net.Conn, $error], false)}, {prop: "DialWithConn", name: "DialWithConn", pkg: "", typ: $funcType([context.Context, net.Conn, $String, $String], [net.Addr, $error], false)}, {prop: "Dial", name: "Dial", pkg: "", typ: $funcType([$String, $String], [net.Conn, $error], false)}, {prop: "validateTarget", name: "validateTarget", pkg: "net/http", typ: $funcType([$String, $String], [$error], false)}, {prop: "pathAddrs", name: "pathAddrs", pkg: "net/http", typ: $funcType([$String], [net.Addr, net.Addr, $error], false)}]; - ptrType$121.methods = [{prop: "Authenticate", name: "Authenticate", pkg: "", typ: $funcType([context.Context, io.ReadWriter, socksAuthMethod], [$error], false)}]; - ptrType$122.methods = [{prop: "match", name: "match", pkg: "net/http", typ: $funcType([sliceType$3, $Int], [$String], false)}]; - ptrType$123.methods = [{prop: "match", name: "match", pkg: "net/http", typ: $funcType([sliceType$3, $Int], [$String], false)}]; + ptrType$123.methods = [{prop: "connect", name: "connect", pkg: "net/http", typ: $funcType([context.Context, net.Conn, $String], [net.Addr, $error], false)}, {prop: "DialContext", name: "DialContext", pkg: "", typ: $funcType([context.Context, $String, $String], [net.Conn, $error], false)}, {prop: "DialWithConn", name: "DialWithConn", pkg: "", typ: $funcType([context.Context, net.Conn, $String, $String], [net.Addr, $error], false)}, {prop: "Dial", name: "Dial", pkg: "", typ: $funcType([$String, $String], [net.Conn, $error], false)}, {prop: "validateTarget", name: "validateTarget", pkg: "net/http", typ: $funcType([$String, $String], [$error], false)}, {prop: "pathAddrs", name: "pathAddrs", pkg: "net/http", typ: $funcType([$String], [net.Addr, net.Addr, $error], false)}]; + ptrType$124.methods = [{prop: "Authenticate", name: "Authenticate", pkg: "", typ: $funcType([context.Context, io.ReadWriter, socksAuthMethod], [$error], false)}]; + ptrType$125.methods = [{prop: "match", name: "match", pkg: "net/http", typ: $funcType([sliceType$3, $Int], [$String], false)}]; + ptrType$126.methods = [{prop: "match", name: "match", pkg: "net/http", typ: $funcType([sliceType$3, $Int], [$String], false)}]; htmlSig.methods = [{prop: "match", name: "match", pkg: "net/http", typ: $funcType([sliceType$3, $Int], [$String], false)}]; mp4Sig.methods = [{prop: "match", name: "match", pkg: "net/http", typ: $funcType([sliceType$3, $Int], [$String], false)}]; textSig.methods = [{prop: "match", name: "match", pkg: "net/http", typ: $funcType([sliceType$3, $Int], [$String], false)}]; ptrType$50.methods = [{prop: "hijacked", name: "hijacked", pkg: "net/http", typ: $funcType([], [$Bool], false)}, {prop: "hijackLocked", name: "hijackLocked", pkg: "net/http", typ: $funcType([], [net.Conn, ptrType$43, $error], false)}, {prop: "readRequest", name: "readRequest", pkg: "net/http", typ: $funcType([context.Context], [ptrType$46, $error], false)}, {prop: "finalFlush", name: "finalFlush", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "close", name: "close", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "closeWriteAndWait", name: "closeWriteAndWait", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "setState", name: "setState", pkg: "net/http", typ: $funcType([net.Conn, ConnState, $Bool], [], false)}, {prop: "getState", name: "getState", pkg: "net/http", typ: $funcType([], [ConnState, $Int64], false)}, {prop: "serve", name: "serve", pkg: "net/http", typ: $funcType([context.Context], [], false)}]; - ptrType$124.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "flush", name: "flush", pkg: "net/http", typ: $funcType([], [$error], false)}, {prop: "close", name: "close", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "writeHeader", name: "writeHeader", pkg: "net/http", typ: $funcType([sliceType$3], [], false)}]; - ptrType$46.methods = [{prop: "SetReadDeadline", name: "SetReadDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetWriteDeadline", name: "SetWriteDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "finalTrailers", name: "finalTrailers", pkg: "net/http", typ: $funcType([], [Header], false)}, {prop: "declareTrailer", name: "declareTrailer", pkg: "net/http", typ: $funcType([$String], [], false)}, {prop: "requestTooLarge", name: "requestTooLarge", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "ReadFrom", name: "ReadFrom", pkg: "", typ: $funcType([io.Reader], [$Int64, $error], false)}, {prop: "Header", name: "Header", pkg: "", typ: $funcType([], [Header], false)}, {prop: "WriteHeader", name: "WriteHeader", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "bodyAllowed", name: "bodyAllowed", pkg: "net/http", typ: $funcType([], [$Bool], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}, {prop: "write", name: "write", pkg: "net/http", typ: $funcType([$Int, sliceType$3, $String], [$Int, $error], false)}, {prop: "finishRequest", name: "finishRequest", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "shouldReuseConnection", name: "shouldReuseConnection", pkg: "net/http", typ: $funcType([], [$Bool], false)}, {prop: "closedRequestBodyEarly", name: "closedRequestBodyEarly", pkg: "net/http", typ: $funcType([], [$Bool], false)}, {prop: "Flush", name: "Flush", pkg: "", typ: $funcType([], [], false)}, {prop: "FlushError", name: "FlushError", pkg: "", typ: $funcType([], [$error], false)}, {prop: "sendExpectationFailed", name: "sendExpectationFailed", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "Hijack", name: "Hijack", pkg: "", typ: $funcType([], [net.Conn, ptrType$43, $error], false)}, {prop: "CloseNotify", name: "CloseNotify", pkg: "", typ: $funcType([], [chanType$9], false)}]; + ptrType$127.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "flush", name: "flush", pkg: "net/http", typ: $funcType([], [$error], false)}, {prop: "close", name: "close", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "writeHeader", name: "writeHeader", pkg: "net/http", typ: $funcType([sliceType$3], [], false)}]; + ptrType$46.methods = [{prop: "SetReadDeadline", name: "SetReadDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetWriteDeadline", name: "SetWriteDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "EnableFullDuplex", name: "EnableFullDuplex", pkg: "", typ: $funcType([], [$error], false)}, {prop: "finalTrailers", name: "finalTrailers", pkg: "net/http", typ: $funcType([], [Header], false)}, {prop: "declareTrailer", name: "declareTrailer", pkg: "net/http", typ: $funcType([$String], [], false)}, {prop: "requestTooLarge", name: "requestTooLarge", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "ReadFrom", name: "ReadFrom", pkg: "", typ: $funcType([io.Reader], [$Int64, $error], false)}, {prop: "Header", name: "Header", pkg: "", typ: $funcType([], [Header], false)}, {prop: "WriteHeader", name: "WriteHeader", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "bodyAllowed", name: "bodyAllowed", pkg: "net/http", typ: $funcType([], [$Bool], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}, {prop: "write", name: "write", pkg: "net/http", typ: $funcType([$Int, sliceType$3, $String], [$Int, $error], false)}, {prop: "finishRequest", name: "finishRequest", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "shouldReuseConnection", name: "shouldReuseConnection", pkg: "net/http", typ: $funcType([], [$Bool], false)}, {prop: "closedRequestBodyEarly", name: "closedRequestBodyEarly", pkg: "net/http", typ: $funcType([], [$Bool], false)}, {prop: "Flush", name: "Flush", pkg: "", typ: $funcType([], [], false)}, {prop: "FlushError", name: "FlushError", pkg: "", typ: $funcType([], [$error], false)}, {prop: "sendExpectationFailed", name: "sendExpectationFailed", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "Hijack", name: "Hijack", pkg: "", typ: $funcType([], [net.Conn, ptrType$43, $error], false)}, {prop: "CloseNotify", name: "CloseNotify", pkg: "", typ: $funcType([], [chanType$9], false)}]; ptrType$45.methods = [{prop: "lock", name: "lock", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "unlock", name: "unlock", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "startBackgroundRead", name: "startBackgroundRead", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "backgroundRead", name: "backgroundRead", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "abortPendingRead", name: "abortPendingRead", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "setReadLimit", name: "setReadLimit", pkg: "net/http", typ: $funcType([$Int64], [], false)}, {prop: "setInfiniteReadLimit", name: "setInfiniteReadLimit", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "hitReadLimit", name: "hitReadLimit", pkg: "net/http", typ: $funcType([], [$Bool], false)}, {prop: "handleReadError", name: "handleReadError", pkg: "net/http", typ: $funcType([$error], [], false)}, {prop: "closeNotify", name: "closeNotify", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}]; ptrType$52.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}]; extraHeader.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([ptrType$11], [], false)}]; statusError.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; HandlerFunc.methods = [{prop: "ServeHTTP", name: "ServeHTTP", pkg: "", typ: $funcType([ResponseWriter, ptrType$9], [], false)}]; - ptrType$125.methods = [{prop: "ServeHTTP", name: "ServeHTTP", pkg: "", typ: $funcType([ResponseWriter, ptrType$9], [], false)}]; - ptrType$126.methods = [{prop: "match", name: "match", pkg: "net/http", typ: $funcType([$String], [Handler, $String], false)}, {prop: "redirectToPathSlash", name: "redirectToPathSlash", pkg: "net/http", typ: $funcType([$String, $String, ptrType$16], [ptrType$16, $Bool], false)}, {prop: "shouldRedirectRLocked", name: "shouldRedirectRLocked", pkg: "net/http", typ: $funcType([$String, $String], [$Bool], false)}, {prop: "Handler", name: "Handler", pkg: "", typ: $funcType([ptrType$9], [Handler, $String], false)}, {prop: "handler", name: "handler", pkg: "net/http", typ: $funcType([$String, $String], [Handler, $String], false)}, {prop: "ServeHTTP", name: "ServeHTTP", pkg: "", typ: $funcType([ResponseWriter, ptrType$9], [], false)}, {prop: "Handle", name: "Handle", pkg: "", typ: $funcType([$String, Handler], [], false)}, {prop: "HandleFunc", name: "HandleFunc", pkg: "", typ: $funcType([$String, funcType$17], [], false)}]; + ptrType$128.methods = [{prop: "ServeHTTP", name: "ServeHTTP", pkg: "", typ: $funcType([ResponseWriter, ptrType$9], [], false)}]; + ptrType$129.methods = [{prop: "match", name: "match", pkg: "net/http", typ: $funcType([$String], [Handler, $String], false)}, {prop: "redirectToPathSlash", name: "redirectToPathSlash", pkg: "net/http", typ: $funcType([$String, $String, ptrType$16], [ptrType$16, $Bool], false)}, {prop: "shouldRedirectRLocked", name: "shouldRedirectRLocked", pkg: "net/http", typ: $funcType([$String, $String], [$Bool], false)}, {prop: "Handler", name: "Handler", pkg: "", typ: $funcType([ptrType$9], [Handler, $String], false)}, {prop: "handler", name: "handler", pkg: "net/http", typ: $funcType([$String, $String], [Handler, $String], false)}, {prop: "ServeHTTP", name: "ServeHTTP", pkg: "", typ: $funcType([ResponseWriter, ptrType$9], [], false)}, {prop: "Handle", name: "Handle", pkg: "", typ: $funcType([$String, Handler], [], false)}, {prop: "HandleFunc", name: "HandleFunc", pkg: "", typ: $funcType([$String, funcType$17], [], false)}]; ptrType$44.methods = [{prop: "newConn", name: "newConn", pkg: "net/http", typ: $funcType([net.Conn], [ptrType$50], false)}, {prop: "maxHeaderBytes", name: "maxHeaderBytes", pkg: "net/http", typ: $funcType([], [$Int], false)}, {prop: "initialReadLimitSize", name: "initialReadLimitSize", pkg: "net/http", typ: $funcType([], [$Int64], false)}, {prop: "tlsHandshakeTimeout", name: "tlsHandshakeTimeout", pkg: "net/http", typ: $funcType([], [time.Duration], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Shutdown", name: "Shutdown", pkg: "", typ: $funcType([context.Context], [$error], false)}, {prop: "RegisterOnShutdown", name: "RegisterOnShutdown", pkg: "", typ: $funcType([funcType], [], false)}, {prop: "closeIdleConns", name: "closeIdleConns", pkg: "net/http", typ: $funcType([], [$Bool], false)}, {prop: "closeListenersLocked", name: "closeListenersLocked", pkg: "net/http", typ: $funcType([], [$error], false)}, {prop: "ListenAndServe", name: "ListenAndServe", pkg: "", typ: $funcType([], [$error], false)}, {prop: "shouldConfigureHTTP2ForServe", name: "shouldConfigureHTTP2ForServe", pkg: "net/http", typ: $funcType([], [$Bool], false)}, {prop: "Serve", name: "Serve", pkg: "", typ: $funcType([net.Listener], [$error], false)}, {prop: "ServeTLS", name: "ServeTLS", pkg: "", typ: $funcType([net.Listener, $String, $String], [$error], false)}, {prop: "trackListener", name: "trackListener", pkg: "net/http", typ: $funcType([ptrType$55, $Bool], [$Bool], false)}, {prop: "trackConn", name: "trackConn", pkg: "net/http", typ: $funcType([ptrType$50, $Bool], [], false)}, {prop: "idleTimeout", name: "idleTimeout", pkg: "net/http", typ: $funcType([], [time.Duration], false)}, {prop: "readHeaderTimeout", name: "readHeaderTimeout", pkg: "net/http", typ: $funcType([], [time.Duration], false)}, {prop: "doKeepAlives", name: "doKeepAlives", pkg: "net/http", typ: $funcType([], [$Bool], false)}, {prop: "shuttingDown", name: "shuttingDown", pkg: "net/http", typ: $funcType([], [$Bool], false)}, {prop: "SetKeepAlivesEnabled", name: "SetKeepAlivesEnabled", pkg: "", typ: $funcType([$Bool], [], false)}, {prop: "logf", name: "logf", pkg: "net/http", typ: $funcType([$String, sliceType], [], true)}, {prop: "ListenAndServeTLS", name: "ListenAndServeTLS", pkg: "", typ: $funcType([$String, $String], [$error], false)}, {prop: "setupHTTP2_ServeTLS", name: "setupHTTP2_ServeTLS", pkg: "net/http", typ: $funcType([], [$error], false)}, {prop: "setupHTTP2_Serve", name: "setupHTTP2_Serve", pkg: "net/http", typ: $funcType([], [$error], false)}, {prop: "onceSetNextProtoDefaults_Serve", name: "onceSetNextProtoDefaults_Serve", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "onceSetNextProtoDefaults", name: "onceSetNextProtoDefaults", pkg: "net/http", typ: $funcType([], [], false)}]; ConnState.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; serverHandler.methods = [{prop: "ServeHTTP", name: "ServeHTTP", pkg: "", typ: $funcType([ResponseWriter, ptrType$9], [], false)}]; - ptrType$128.methods = [{prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "close", name: "close", pkg: "net/http", typ: $funcType([], [], false)}]; + ptrType$131.methods = [{prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "close", name: "close", pkg: "net/http", typ: $funcType([], [], false)}]; globalOptionsHandler.methods = [{prop: "ServeHTTP", name: "ServeHTTP", pkg: "", typ: $funcType([ResponseWriter, ptrType$9], [], false)}]; initALPNRequest.methods = [{prop: "BaseContext", name: "BaseContext", pkg: "", typ: $funcType([], [context.Context], false)}, {prop: "ServeHTTP", name: "ServeHTTP", pkg: "", typ: $funcType([ResponseWriter, ptrType$9], [], false)}]; - ptrType$129.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}]; + ptrType$132.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}]; checkConnErrorWriter.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}]; - ptrType$130.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}]; - ptrType$131.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}]; + ptrType$133.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}]; + ptrType$134.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}]; ptrType$17.methods = [{prop: "Cookies", name: "Cookies", pkg: "", typ: $funcType([], [sliceType$30], false)}, {prop: "Location", name: "Location", pkg: "", typ: $funcType([], [ptrType$16, $error], false)}, {prop: "ProtoAtLeast", name: "ProtoAtLeast", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([io.Writer], [$error], false)}, {prop: "closeBody", name: "closeBody", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "bodyIsWritable", name: "bodyIsWritable", pkg: "net/http", typ: $funcType([], [$Bool], false)}, {prop: "isProtocolSwitch", name: "isProtocolSwitch", pkg: "net/http", typ: $funcType([], [$Bool], false)}]; - ptrType$133.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$136.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Is", name: "Is", pkg: "", typ: $funcType([$error], [$Bool], false)}]; ptrType$9.methods = [{prop: "Context", name: "Context", pkg: "", typ: $funcType([], [context.Context], false)}, {prop: "WithContext", name: "WithContext", pkg: "", typ: $funcType([context.Context], [ptrType$9], false)}, {prop: "Clone", name: "Clone", pkg: "", typ: $funcType([context.Context], [ptrType$9], false)}, {prop: "ProtoAtLeast", name: "ProtoAtLeast", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "UserAgent", name: "UserAgent", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Cookies", name: "Cookies", pkg: "", typ: $funcType([], [sliceType$30], false)}, {prop: "Cookie", name: "Cookie", pkg: "", typ: $funcType([$String], [ptrType$58, $error], false)}, {prop: "AddCookie", name: "AddCookie", pkg: "", typ: $funcType([ptrType$58], [], false)}, {prop: "Referer", name: "Referer", pkg: "", typ: $funcType([], [$String], false)}, {prop: "MultipartReader", name: "MultipartReader", pkg: "", typ: $funcType([], [ptrType$59, $error], false)}, {prop: "multipartReader", name: "multipartReader", pkg: "net/http", typ: $funcType([$Bool], [ptrType$59, $error], false)}, {prop: "isH2Upgrade", name: "isH2Upgrade", pkg: "net/http", typ: $funcType([], [$Bool], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([io.Writer], [$error], false)}, {prop: "WriteProxy", name: "WriteProxy", pkg: "", typ: $funcType([io.Writer], [$error], false)}, {prop: "write", name: "write", pkg: "net/http", typ: $funcType([io.Writer, $Bool, Header, funcType$12], [$error], false)}, {prop: "BasicAuth", name: "BasicAuth", pkg: "", typ: $funcType([], [$String, $String, $Bool], false)}, {prop: "SetBasicAuth", name: "SetBasicAuth", pkg: "", typ: $funcType([$String, $String], [], false)}, {prop: "ParseForm", name: "ParseForm", pkg: "", typ: $funcType([], [$error], false)}, {prop: "ParseMultipartForm", name: "ParseMultipartForm", pkg: "", typ: $funcType([$Int64], [$error], false)}, {prop: "FormValue", name: "FormValue", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "PostFormValue", name: "PostFormValue", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "FormFile", name: "FormFile", pkg: "", typ: $funcType([$String], [multipart.File, ptrType$62, $error], false)}, {prop: "expectsContinue", name: "expectsContinue", pkg: "net/http", typ: $funcType([], [$Bool], false)}, {prop: "wantsHttp10KeepAlive", name: "wantsHttp10KeepAlive", pkg: "net/http", typ: $funcType([], [$Bool], false)}, {prop: "wantsClose", name: "wantsClose", pkg: "net/http", typ: $funcType([], [$Bool], false)}, {prop: "closeBody", name: "closeBody", pkg: "net/http", typ: $funcType([], [$error], false)}, {prop: "isReplayable", name: "isReplayable", pkg: "net/http", typ: $funcType([], [$Bool], false)}, {prop: "outgoingLength", name: "outgoingLength", pkg: "net/http", typ: $funcType([], [$Int64], false)}, {prop: "requiresHTTP1", name: "requiresHTTP1", pkg: "net/http", typ: $funcType([], [$Bool], false)}]; - ptrType$134.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$137.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; ptrType$61.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}]; - ptrType$135.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$138.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; noBody.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([io.Writer], [$Int64, $error], false)}]; Header.methods = [{prop: "Add", name: "Add", pkg: "", typ: $funcType([$String, $String], [], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([$String, $String], [], false)}, {prop: "Get", name: "Get", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "Values", name: "Values", pkg: "", typ: $funcType([$String], [sliceType$2], false)}, {prop: "get", name: "get", pkg: "net/http", typ: $funcType([$String], [$String], false)}, {prop: "has", name: "has", pkg: "net/http", typ: $funcType([$String], [$Bool], false)}, {prop: "Del", name: "Del", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([io.Writer], [$error], false)}, {prop: "write", name: "write", pkg: "net/http", typ: $funcType([io.Writer, ptrType$18], [$error], false)}, {prop: "Clone", name: "Clone", pkg: "", typ: $funcType([], [Header], false)}, {prop: "sortedKeyValues", name: "sortedKeyValues", pkg: "net/http", typ: $funcType([mapType$11], [sliceType$6, ptrType$63], false)}, {prop: "WriteSubset", name: "WriteSubset", pkg: "", typ: $funcType([io.Writer, mapType$11], [$error], false)}, {prop: "writeSubset", name: "writeSubset", pkg: "net/http", typ: $funcType([io.Writer, mapType$11, ptrType$18], [$error], false)}]; stringWriter.methods = [{prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}]; @@ -301440,7 +304191,7 @@ $packages["net/http"] = (function() { ptrType$65.methods = [{prop: "dial", name: "dial", pkg: "net/http", typ: $funcType([context.Context, $String], [], false)}]; ptrType$66.methods = [{prop: "run", name: "run", pkg: "net/http", typ: $funcType([ptrType$99, $String, ptrType$29], [], false)}]; http2noDialClientConnPool.methods = [{prop: "GetClientConn", name: "GetClientConn", pkg: "", typ: $funcType([ptrType$9, $String], [ptrType$64, $error], false)}]; - ptrType$136.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "bytesFromFirstChunk", name: "bytesFromFirstChunk", pkg: "net/http", typ: $funcType([], [sliceType$3], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "lastChunkOrAlloc", name: "lastChunkOrAlloc", pkg: "net/http", typ: $funcType([$Int64], [sliceType$3], false)}]; + ptrType$139.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "bytesFromFirstChunk", name: "bytesFromFirstChunk", pkg: "net/http", typ: $funcType([], [sliceType$3], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "lastChunkOrAlloc", name: "lastChunkOrAlloc", pkg: "net/http", typ: $funcType([$Int64], [sliceType$3], false)}]; http2ErrCode.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "stringToken", name: "stringToken", pkg: "net/http", typ: $funcType([], [$String], false)}]; http2ConnectionError.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; http2StreamError.methods = [{prop: "As", name: "As", pkg: "", typ: $funcType([$emptyInterface], [$Bool], false)}, {prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "writeFrame", name: "writeFrame", pkg: "net/http", typ: $funcType([http2writeContext], [$error], false)}, {prop: "staysWithinBuffer", name: "staysWithinBuffer", pkg: "net/http", typ: $funcType([$Int], [$Bool], false)}]; @@ -301450,23 +304201,24 @@ $packages["net/http"] = (function() { http2duplicatePseudoHeaderError.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; http2headerFieldNameError.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; http2headerFieldValueError.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$140.methods = [{prop: "init", name: "init", pkg: "net/http", typ: $funcType([$Int32], [], false)}, {prop: "add", name: "add", pkg: "net/http", typ: $funcType([$Int], [$Int32], false)}, {prop: "take", name: "take", pkg: "net/http", typ: $funcType([$Uint32], [$Bool], false)}]; ptrType$67.methods = [{prop: "setConnFlow", name: "setConnFlow", pkg: "net/http", typ: $funcType([ptrType$67], [], false)}, {prop: "available", name: "available", pkg: "net/http", typ: $funcType([], [$Int32], false)}, {prop: "take", name: "take", pkg: "net/http", typ: $funcType([$Int32], [], false)}, {prop: "add", name: "add", pkg: "net/http", typ: $funcType([$Int32], [$Bool], false)}]; http2FrameType.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; http2Flags.methods = [{prop: "Has", name: "Has", pkg: "", typ: $funcType([http2Flags], [$Bool], false)}]; http2FrameHeader.methods = [{prop: "Header", name: "Header", pkg: "", typ: $funcType([], [http2FrameHeader], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "writeDebug", name: "writeDebug", pkg: "net/http", typ: $funcType([ptrType$39], [], false)}]; - ptrType$137.methods = [{prop: "checkValid", name: "checkValid", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "invalidate", name: "invalidate", pkg: "net/http", typ: $funcType([], [], false)}]; - ptrType$68.methods = [{prop: "maxHeaderListSize", name: "maxHeaderListSize", pkg: "net/http", typ: $funcType([], [$Uint32], false)}, {prop: "startWrite", name: "startWrite", pkg: "net/http", typ: $funcType([http2FrameType, http2Flags, $Uint32], [], false)}, {prop: "endWrite", name: "endWrite", pkg: "net/http", typ: $funcType([], [$error], false)}, {prop: "logWrite", name: "logWrite", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "writeByte", name: "writeByte", pkg: "net/http", typ: $funcType([$Uint8], [], false)}, {prop: "writeBytes", name: "writeBytes", pkg: "net/http", typ: $funcType([sliceType$3], [], false)}, {prop: "writeUint16", name: "writeUint16", pkg: "net/http", typ: $funcType([$Uint16], [], false)}, {prop: "writeUint32", name: "writeUint32", pkg: "net/http", typ: $funcType([$Uint32], [], false)}, {prop: "SetReuseFrames", name: "SetReuseFrames", pkg: "", typ: $funcType([], [], false)}, {prop: "SetMaxReadFrameSize", name: "SetMaxReadFrameSize", pkg: "", typ: $funcType([$Uint32], [], false)}, {prop: "ErrorDetail", name: "ErrorDetail", pkg: "", typ: $funcType([], [$error], false)}, {prop: "ReadFrame", name: "ReadFrame", pkg: "", typ: $funcType([], [http2Frame, $error], false)}, {prop: "connError", name: "connError", pkg: "net/http", typ: $funcType([http2ErrCode, $String], [$error], false)}, {prop: "checkFrameOrder", name: "checkFrameOrder", pkg: "net/http", typ: $funcType([http2Frame], [$error], false)}, {prop: "WriteData", name: "WriteData", pkg: "", typ: $funcType([$Uint32, $Bool, sliceType$3], [$error], false)}, {prop: "WriteDataPadded", name: "WriteDataPadded", pkg: "", typ: $funcType([$Uint32, $Bool, sliceType$3, sliceType$3], [$error], false)}, {prop: "WriteSettings", name: "WriteSettings", pkg: "", typ: $funcType([sliceType$24], [$error], true)}, {prop: "WriteSettingsAck", name: "WriteSettingsAck", pkg: "", typ: $funcType([], [$error], false)}, {prop: "WritePing", name: "WritePing", pkg: "", typ: $funcType([$Bool, arrayType$8], [$error], false)}, {prop: "WriteGoAway", name: "WriteGoAway", pkg: "", typ: $funcType([$Uint32, http2ErrCode, sliceType$3], [$error], false)}, {prop: "WriteWindowUpdate", name: "WriteWindowUpdate", pkg: "", typ: $funcType([$Uint32, $Uint32], [$error], false)}, {prop: "WriteHeaders", name: "WriteHeaders", pkg: "", typ: $funcType([http2HeadersFrameParam], [$error], false)}, {prop: "WritePriority", name: "WritePriority", pkg: "", typ: $funcType([$Uint32, http2PriorityParam], [$error], false)}, {prop: "WriteRSTStream", name: "WriteRSTStream", pkg: "", typ: $funcType([$Uint32, http2ErrCode], [$error], false)}, {prop: "WriteContinuation", name: "WriteContinuation", pkg: "", typ: $funcType([$Uint32, $Bool, sliceType$3], [$error], false)}, {prop: "WritePushPromise", name: "WritePushPromise", pkg: "", typ: $funcType([http2PushPromiseParam], [$error], false)}, {prop: "WriteRawFrame", name: "WriteRawFrame", pkg: "", typ: $funcType([http2FrameType, http2Flags, $Uint32, sliceType$3], [$error], false)}, {prop: "maxHeaderStringLen", name: "maxHeaderStringLen", pkg: "net/http", typ: $funcType([], [$Int], false)}, {prop: "readMetaFrame", name: "readMetaFrame", pkg: "net/http", typ: $funcType([ptrType$71], [ptrType$72, $error], false)}]; - ptrType$69.methods = [{prop: "getDataFrame", name: "getDataFrame", pkg: "net/http", typ: $funcType([], [ptrType$75], false)}]; - ptrType$75.methods = [{prop: "StreamEnded", name: "StreamEnded", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Data", name: "Data", pkg: "", typ: $funcType([], [sliceType$3], false)}]; - ptrType$74.methods = [{prop: "IsAck", name: "IsAck", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Value", name: "Value", pkg: "", typ: $funcType([http2SettingID], [$Uint32, $Bool], false)}, {prop: "Setting", name: "Setting", pkg: "", typ: $funcType([$Int], [http2Setting], false)}, {prop: "NumSettings", name: "NumSettings", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "HasDuplicates", name: "HasDuplicates", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "ForeachSetting", name: "ForeachSetting", pkg: "", typ: $funcType([funcType$25], [$error], false)}]; - ptrType$77.methods = [{prop: "IsAck", name: "IsAck", pkg: "", typ: $funcType([], [$Bool], false)}]; - ptrType$78.methods = [{prop: "DebugData", name: "DebugData", pkg: "", typ: $funcType([], [sliceType$3], false)}]; - ptrType$138.methods = [{prop: "Payload", name: "Payload", pkg: "", typ: $funcType([], [sliceType$3], false)}]; + ptrType$141.methods = [{prop: "checkValid", name: "checkValid", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "invalidate", name: "invalidate", pkg: "net/http", typ: $funcType([], [], false)}]; + ptrType$68.methods = [{prop: "maxHeaderListSize", name: "maxHeaderListSize", pkg: "net/http", typ: $funcType([], [$Uint32], false)}, {prop: "startWrite", name: "startWrite", pkg: "net/http", typ: $funcType([http2FrameType, http2Flags, $Uint32], [], false)}, {prop: "endWrite", name: "endWrite", pkg: "net/http", typ: $funcType([], [$error], false)}, {prop: "logWrite", name: "logWrite", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "writeByte", name: "writeByte", pkg: "net/http", typ: $funcType([$Uint8], [], false)}, {prop: "writeBytes", name: "writeBytes", pkg: "net/http", typ: $funcType([sliceType$3], [], false)}, {prop: "writeUint16", name: "writeUint16", pkg: "net/http", typ: $funcType([$Uint16], [], false)}, {prop: "writeUint32", name: "writeUint32", pkg: "net/http", typ: $funcType([$Uint32], [], false)}, {prop: "SetReuseFrames", name: "SetReuseFrames", pkg: "", typ: $funcType([], [], false)}, {prop: "SetMaxReadFrameSize", name: "SetMaxReadFrameSize", pkg: "", typ: $funcType([$Uint32], [], false)}, {prop: "ErrorDetail", name: "ErrorDetail", pkg: "", typ: $funcType([], [$error], false)}, {prop: "ReadFrame", name: "ReadFrame", pkg: "", typ: $funcType([], [http2Frame, $error], false)}, {prop: "connError", name: "connError", pkg: "net/http", typ: $funcType([http2ErrCode, $String], [$error], false)}, {prop: "checkFrameOrder", name: "checkFrameOrder", pkg: "net/http", typ: $funcType([http2Frame], [$error], false)}, {prop: "WriteData", name: "WriteData", pkg: "", typ: $funcType([$Uint32, $Bool, sliceType$3], [$error], false)}, {prop: "WriteDataPadded", name: "WriteDataPadded", pkg: "", typ: $funcType([$Uint32, $Bool, sliceType$3, sliceType$3], [$error], false)}, {prop: "startWriteDataPadded", name: "startWriteDataPadded", pkg: "net/http", typ: $funcType([$Uint32, $Bool, sliceType$3, sliceType$3], [$error], false)}, {prop: "WriteSettings", name: "WriteSettings", pkg: "", typ: $funcType([sliceType$24], [$error], true)}, {prop: "WriteSettingsAck", name: "WriteSettingsAck", pkg: "", typ: $funcType([], [$error], false)}, {prop: "WritePing", name: "WritePing", pkg: "", typ: $funcType([$Bool, arrayType$8], [$error], false)}, {prop: "WriteGoAway", name: "WriteGoAway", pkg: "", typ: $funcType([$Uint32, http2ErrCode, sliceType$3], [$error], false)}, {prop: "WriteWindowUpdate", name: "WriteWindowUpdate", pkg: "", typ: $funcType([$Uint32, $Uint32], [$error], false)}, {prop: "WriteHeaders", name: "WriteHeaders", pkg: "", typ: $funcType([http2HeadersFrameParam], [$error], false)}, {prop: "WritePriority", name: "WritePriority", pkg: "", typ: $funcType([$Uint32, http2PriorityParam], [$error], false)}, {prop: "WriteRSTStream", name: "WriteRSTStream", pkg: "", typ: $funcType([$Uint32, http2ErrCode], [$error], false)}, {prop: "WriteContinuation", name: "WriteContinuation", pkg: "", typ: $funcType([$Uint32, $Bool, sliceType$3], [$error], false)}, {prop: "WritePushPromise", name: "WritePushPromise", pkg: "", typ: $funcType([http2PushPromiseParam], [$error], false)}, {prop: "WriteRawFrame", name: "WriteRawFrame", pkg: "", typ: $funcType([http2FrameType, http2Flags, $Uint32, sliceType$3], [$error], false)}, {prop: "maxHeaderStringLen", name: "maxHeaderStringLen", pkg: "net/http", typ: $funcType([], [$Int], false)}, {prop: "readMetaFrame", name: "readMetaFrame", pkg: "net/http", typ: $funcType([ptrType$71], [http2Frame, $error], false)}]; + ptrType$69.methods = [{prop: "getDataFrame", name: "getDataFrame", pkg: "net/http", typ: $funcType([], [ptrType$74], false)}]; + ptrType$74.methods = [{prop: "StreamEnded", name: "StreamEnded", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Data", name: "Data", pkg: "", typ: $funcType([], [sliceType$3], false)}]; + ptrType$73.methods = [{prop: "IsAck", name: "IsAck", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Value", name: "Value", pkg: "", typ: $funcType([http2SettingID], [$Uint32, $Bool], false)}, {prop: "Setting", name: "Setting", pkg: "", typ: $funcType([$Int], [http2Setting], false)}, {prop: "NumSettings", name: "NumSettings", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "HasDuplicates", name: "HasDuplicates", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "ForeachSetting", name: "ForeachSetting", pkg: "", typ: $funcType([funcType$25], [$error], false)}]; + ptrType$76.methods = [{prop: "IsAck", name: "IsAck", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$77.methods = [{prop: "DebugData", name: "DebugData", pkg: "", typ: $funcType([], [sliceType$3], false)}]; + ptrType$142.methods = [{prop: "Payload", name: "Payload", pkg: "", typ: $funcType([], [sliceType$3], false)}]; ptrType$71.methods = [{prop: "HeaderBlockFragment", name: "HeaderBlockFragment", pkg: "", typ: $funcType([], [sliceType$3], false)}, {prop: "HeadersEnded", name: "HeadersEnded", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "StreamEnded", name: "StreamEnded", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "HasPriority", name: "HasPriority", pkg: "", typ: $funcType([], [$Bool], false)}]; http2PriorityParam.methods = [{prop: "IsZero", name: "IsZero", pkg: "", typ: $funcType([], [$Bool], false)}]; - ptrType$73.methods = [{prop: "HeaderBlockFragment", name: "HeaderBlockFragment", pkg: "", typ: $funcType([], [sliceType$3], false)}, {prop: "HeadersEnded", name: "HeadersEnded", pkg: "", typ: $funcType([], [$Bool], false)}]; - ptrType$92.methods = [{prop: "HeaderBlockFragment", name: "HeaderBlockFragment", pkg: "", typ: $funcType([], [sliceType$3], false)}, {prop: "HeadersEnded", name: "HeadersEnded", pkg: "", typ: $funcType([], [$Bool], false)}]; - ptrType$72.methods = [{prop: "PseudoValue", name: "PseudoValue", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "RegularFields", name: "RegularFields", pkg: "", typ: $funcType([], [sliceType$22], false)}, {prop: "PseudoFields", name: "PseudoFields", pkg: "", typ: $funcType([], [sliceType$22], false)}, {prop: "checkPseudos", name: "checkPseudos", pkg: "net/http", typ: $funcType([], [$error], false)}]; + ptrType$72.methods = [{prop: "HeaderBlockFragment", name: "HeaderBlockFragment", pkg: "", typ: $funcType([], [sliceType$3], false)}, {prop: "HeadersEnded", name: "HeadersEnded", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$93.methods = [{prop: "HeaderBlockFragment", name: "HeaderBlockFragment", pkg: "", typ: $funcType([], [sliceType$3], false)}, {prop: "HeadersEnded", name: "HeadersEnded", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$91.methods = [{prop: "PseudoValue", name: "PseudoValue", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "RegularFields", name: "RegularFields", pkg: "", typ: $funcType([], [sliceType$22], false)}, {prop: "PseudoFields", name: "PseudoFields", pkg: "", typ: $funcType([], [sliceType$22], false)}, {prop: "checkPseudos", name: "checkPseudos", pkg: "net/http", typ: $funcType([], [$error], false)}]; http2goroutineLock.methods = [{prop: "check", name: "check", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "checkNotOn", name: "checkNotOn", pkg: "net/http", typ: $funcType([], [], false)}]; http2streamState.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; http2Setting.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Valid", name: "Valid", pkg: "", typ: $funcType([], [$error], false)}]; @@ -301475,35 +304227,35 @@ $packages["net/http"] = (function() { http2closeWaiter.methods = [{prop: "Close", name: "Close", pkg: "", typ: $funcType([], [], false)}, {prop: "Wait", name: "Wait", pkg: "", typ: $funcType([], [], false)}]; ptrType$95.methods = [{prop: "Init", name: "Init", pkg: "", typ: $funcType([], [], false)}]; ptrType$84.methods = [{prop: "Available", name: "Available", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "Flush", name: "Flush", pkg: "", typ: $funcType([], [$error], false)}]; - ptrType$139.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$143.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false)}]; ptrType$97.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "Keys", name: "Keys", pkg: "", typ: $funcType([Header], [sliceType$2], false)}, {prop: "SortStrings", name: "SortStrings", pkg: "", typ: $funcType([sliceType$2], [], false)}]; - ptrType$93.methods = [{prop: "setBuffer", name: "setBuffer", pkg: "net/http", typ: $funcType([http2pipeBuffer], [], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "CloseWithError", name: "CloseWithError", pkg: "", typ: $funcType([$error], [], false)}, {prop: "BreakWithError", name: "BreakWithError", pkg: "", typ: $funcType([$error], [], false)}, {prop: "closeWithErrorAndCode", name: "closeWithErrorAndCode", pkg: "net/http", typ: $funcType([$error, funcType], [], false)}, {prop: "closeWithError", name: "closeWithError", pkg: "net/http", typ: $funcType([ptrType$81, $error, funcType], [], false)}, {prop: "closeDoneLocked", name: "closeDoneLocked", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "Err", name: "Err", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Done", name: "Done", pkg: "", typ: $funcType([], [chanType$2], false)}]; + ptrType$80.methods = [{prop: "setBuffer", name: "setBuffer", pkg: "net/http", typ: $funcType([http2pipeBuffer], [], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "CloseWithError", name: "CloseWithError", pkg: "", typ: $funcType([$error], [], false)}, {prop: "BreakWithError", name: "BreakWithError", pkg: "", typ: $funcType([$error], [], false)}, {prop: "closeWithErrorAndCode", name: "closeWithErrorAndCode", pkg: "net/http", typ: $funcType([$error, funcType], [], false)}, {prop: "closeWithError", name: "closeWithError", pkg: "net/http", typ: $funcType([ptrType$81, $error, funcType], [], false)}, {prop: "closeDoneLocked", name: "closeDoneLocked", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "Err", name: "Err", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Done", name: "Done", pkg: "", typ: $funcType([], [chanType$2], false)}]; ptrType$82.methods = [{prop: "initialConnRecvWindowSize", name: "initialConnRecvWindowSize", pkg: "net/http", typ: $funcType([], [$Int32], false)}, {prop: "initialStreamRecvWindowSize", name: "initialStreamRecvWindowSize", pkg: "net/http", typ: $funcType([], [$Int32], false)}, {prop: "maxReadFrameSize", name: "maxReadFrameSize", pkg: "net/http", typ: $funcType([], [$Uint32], false)}, {prop: "maxConcurrentStreams", name: "maxConcurrentStreams", pkg: "net/http", typ: $funcType([], [$Uint32], false)}, {prop: "maxDecoderHeaderTableSize", name: "maxDecoderHeaderTableSize", pkg: "net/http", typ: $funcType([], [$Uint32], false)}, {prop: "maxEncoderHeaderTableSize", name: "maxEncoderHeaderTableSize", pkg: "net/http", typ: $funcType([], [$Uint32], false)}, {prop: "maxQueuedControlFrames", name: "maxQueuedControlFrames", pkg: "net/http", typ: $funcType([], [$Int], false)}, {prop: "ServeConn", name: "ServeConn", pkg: "", typ: $funcType([net.Conn, ptrType$83], [], false)}]; ptrType$56.methods = [{prop: "registerConn", name: "registerConn", pkg: "net/http", typ: $funcType([ptrType$10], [], false)}, {prop: "unregisterConn", name: "unregisterConn", pkg: "net/http", typ: $funcType([ptrType$10], [], false)}, {prop: "startGracefulShutdown", name: "startGracefulShutdown", pkg: "net/http", typ: $funcType([], [], false)}]; ptrType$83.methods = [{prop: "context", name: "context", pkg: "net/http", typ: $funcType([], [context.Context], false)}, {prop: "baseConfig", name: "baseConfig", pkg: "net/http", typ: $funcType([], [ptrType$44], false)}, {prop: "handler", name: "handler", pkg: "net/http", typ: $funcType([], [Handler], false)}]; - ptrType$10.methods = [{prop: "rejectConn", name: "rejectConn", pkg: "net/http", typ: $funcType([http2ErrCode, $String], [], false)}, {prop: "maxHeaderListSize", name: "maxHeaderListSize", pkg: "net/http", typ: $funcType([], [$Uint32], false)}, {prop: "curOpenStreams", name: "curOpenStreams", pkg: "net/http", typ: $funcType([], [$Uint32], false)}, {prop: "Framer", name: "Framer", pkg: "", typ: $funcType([], [ptrType$68], false)}, {prop: "CloseConn", name: "CloseConn", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Flush", name: "Flush", pkg: "", typ: $funcType([], [$error], false)}, {prop: "HeaderEncoder", name: "HeaderEncoder", pkg: "", typ: $funcType([], [ptrType$85, ptrType$39], false)}, {prop: "state", name: "state", pkg: "net/http", typ: $funcType([$Uint32], [http2streamState, ptrType$8], false)}, {prop: "setConnState", name: "setConnState", pkg: "net/http", typ: $funcType([ConnState], [], false)}, {prop: "vlogf", name: "vlogf", pkg: "net/http", typ: $funcType([$String, sliceType], [], true)}, {prop: "logf", name: "logf", pkg: "net/http", typ: $funcType([$String, sliceType], [], true)}, {prop: "condlogf", name: "condlogf", pkg: "net/http", typ: $funcType([$error, $String, sliceType], [], true)}, {prop: "canonicalHeader", name: "canonicalHeader", pkg: "net/http", typ: $funcType([$String], [$String], false)}, {prop: "readFrames", name: "readFrames", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "writeFrameAsync", name: "writeFrameAsync", pkg: "net/http", typ: $funcType([http2FrameWriteRequest], [], false)}, {prop: "closeAllStreamsOnConnClose", name: "closeAllStreamsOnConnClose", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "stopShutdownTimer", name: "stopShutdownTimer", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "notePanic", name: "notePanic", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "serve", name: "serve", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "awaitGracefulShutdown", name: "awaitGracefulShutdown", pkg: "net/http", typ: $funcType([chanType$2, chanType$1], [], false)}, {prop: "onSettingsTimer", name: "onSettingsTimer", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "onIdleTimer", name: "onIdleTimer", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "onShutdownTimer", name: "onShutdownTimer", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "sendServeMsg", name: "sendServeMsg", pkg: "net/http", typ: $funcType([$emptyInterface], [], false)}, {prop: "readPreface", name: "readPreface", pkg: "net/http", typ: $funcType([], [$error], false)}, {prop: "writeDataFromHandler", name: "writeDataFromHandler", pkg: "net/http", typ: $funcType([ptrType$8, sliceType$3, $Bool], [$error], false)}, {prop: "writeFrameFromHandler", name: "writeFrameFromHandler", pkg: "net/http", typ: $funcType([http2FrameWriteRequest], [$error], false)}, {prop: "writeFrame", name: "writeFrame", pkg: "net/http", typ: $funcType([http2FrameWriteRequest], [], false)}, {prop: "startFrameWrite", name: "startFrameWrite", pkg: "net/http", typ: $funcType([http2FrameWriteRequest], [], false)}, {prop: "wroteFrame", name: "wroteFrame", pkg: "net/http", typ: $funcType([http2frameWriteResult], [], false)}, {prop: "scheduleFrameWrite", name: "scheduleFrameWrite", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "startGracefulShutdown", name: "startGracefulShutdown", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "startGracefulShutdownInternal", name: "startGracefulShutdownInternal", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "goAway", name: "goAway", pkg: "net/http", typ: $funcType([http2ErrCode], [], false)}, {prop: "shutDownIn", name: "shutDownIn", pkg: "net/http", typ: $funcType([time.Duration], [], false)}, {prop: "resetStream", name: "resetStream", pkg: "net/http", typ: $funcType([http2StreamError], [], false)}, {prop: "processFrameFromReader", name: "processFrameFromReader", pkg: "net/http", typ: $funcType([http2readFrameResult], [$Bool], false)}, {prop: "processFrame", name: "processFrame", pkg: "net/http", typ: $funcType([http2Frame], [$error], false)}, {prop: "processPing", name: "processPing", pkg: "net/http", typ: $funcType([ptrType$77], [$error], false)}, {prop: "processWindowUpdate", name: "processWindowUpdate", pkg: "net/http", typ: $funcType([ptrType$76], [$error], false)}, {prop: "processResetStream", name: "processResetStream", pkg: "net/http", typ: $funcType([ptrType$79], [$error], false)}, {prop: "closeStream", name: "closeStream", pkg: "net/http", typ: $funcType([ptrType$8, $error], [], false)}, {prop: "processSettings", name: "processSettings", pkg: "net/http", typ: $funcType([ptrType$74], [$error], false)}, {prop: "processSetting", name: "processSetting", pkg: "net/http", typ: $funcType([http2Setting], [$error], false)}, {prop: "processSettingInitialWindowSize", name: "processSettingInitialWindowSize", pkg: "net/http", typ: $funcType([$Uint32], [$error], false)}, {prop: "processData", name: "processData", pkg: "net/http", typ: $funcType([ptrType$75], [$error], false)}, {prop: "processGoAway", name: "processGoAway", pkg: "net/http", typ: $funcType([ptrType$78], [$error], false)}, {prop: "processHeaders", name: "processHeaders", pkg: "net/http", typ: $funcType([ptrType$72], [$error], false)}, {prop: "upgradeRequest", name: "upgradeRequest", pkg: "net/http", typ: $funcType([ptrType$9], [], false)}, {prop: "checkPriority", name: "checkPriority", pkg: "net/http", typ: $funcType([$Uint32, http2PriorityParam], [$error], false)}, {prop: "processPriority", name: "processPriority", pkg: "net/http", typ: $funcType([ptrType$91], [$error], false)}, {prop: "newStream", name: "newStream", pkg: "net/http", typ: $funcType([$Uint32, $Uint32, http2streamState], [ptrType$8], false)}, {prop: "newWriterAndRequest", name: "newWriterAndRequest", pkg: "net/http", typ: $funcType([ptrType$8, ptrType$72], [ptrType$13, ptrType$9, $error], false)}, {prop: "newWriterAndRequestNoBody", name: "newWriterAndRequestNoBody", pkg: "net/http", typ: $funcType([ptrType$8, http2requestParam], [ptrType$13, ptrType$9, $error], false)}, {prop: "newResponseWriter", name: "newResponseWriter", pkg: "net/http", typ: $funcType([ptrType$8, ptrType$9], [ptrType$13], false)}, {prop: "scheduleHandler", name: "scheduleHandler", pkg: "net/http", typ: $funcType([$Uint32, ptrType$13, ptrType$9, funcType$17], [$error], false)}, {prop: "handlerDone", name: "handlerDone", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "runHandler", name: "runHandler", pkg: "net/http", typ: $funcType([ptrType$13, ptrType$9, funcType$17], [], false)}, {prop: "writeHeaders", name: "writeHeaders", pkg: "net/http", typ: $funcType([ptrType$8, ptrType$89], [$error], false)}, {prop: "write100ContinueHeaders", name: "write100ContinueHeaders", pkg: "net/http", typ: $funcType([ptrType$8], [], false)}, {prop: "noteBodyReadFromHandler", name: "noteBodyReadFromHandler", pkg: "net/http", typ: $funcType([ptrType$8, $Int, $error], [], false)}, {prop: "noteBodyRead", name: "noteBodyRead", pkg: "net/http", typ: $funcType([ptrType$8, $Int], [], false)}, {prop: "sendWindowUpdate", name: "sendWindowUpdate", pkg: "net/http", typ: $funcType([ptrType$8, $Int], [], false)}, {prop: "sendWindowUpdate32", name: "sendWindowUpdate32", pkg: "net/http", typ: $funcType([ptrType$8, $Int32], [], false)}, {prop: "startPush", name: "startPush", pkg: "net/http", typ: $funcType([ptrType$87], [], false)}, {prop: "countError", name: "countError", pkg: "net/http", typ: $funcType([$String, $error], [$error], false)}]; - ptrType$8.methods = [{prop: "isPushed", name: "isPushed", pkg: "net/http", typ: $funcType([], [$Bool], false)}, {prop: "endStream", name: "endStream", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "copyTrailersToHandlerRequest", name: "copyTrailersToHandlerRequest", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "onReadTimeout", name: "onReadTimeout", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "onWriteTimeout", name: "onWriteTimeout", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "processTrailerHeaders", name: "processTrailerHeaders", pkg: "net/http", typ: $funcType([ptrType$72], [$error], false)}]; + ptrType$10.methods = [{prop: "rejectConn", name: "rejectConn", pkg: "net/http", typ: $funcType([http2ErrCode, $String], [], false)}, {prop: "maxHeaderListSize", name: "maxHeaderListSize", pkg: "net/http", typ: $funcType([], [$Uint32], false)}, {prop: "curOpenStreams", name: "curOpenStreams", pkg: "net/http", typ: $funcType([], [$Uint32], false)}, {prop: "Framer", name: "Framer", pkg: "", typ: $funcType([], [ptrType$68], false)}, {prop: "CloseConn", name: "CloseConn", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Flush", name: "Flush", pkg: "", typ: $funcType([], [$error], false)}, {prop: "HeaderEncoder", name: "HeaderEncoder", pkg: "", typ: $funcType([], [ptrType$85, ptrType$39], false)}, {prop: "state", name: "state", pkg: "net/http", typ: $funcType([$Uint32], [http2streamState, ptrType$8], false)}, {prop: "setConnState", name: "setConnState", pkg: "net/http", typ: $funcType([ConnState], [], false)}, {prop: "vlogf", name: "vlogf", pkg: "net/http", typ: $funcType([$String, sliceType], [], true)}, {prop: "logf", name: "logf", pkg: "net/http", typ: $funcType([$String, sliceType], [], true)}, {prop: "condlogf", name: "condlogf", pkg: "net/http", typ: $funcType([$error, $String, sliceType], [], true)}, {prop: "canonicalHeader", name: "canonicalHeader", pkg: "net/http", typ: $funcType([$String], [$String], false)}, {prop: "readFrames", name: "readFrames", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "writeFrameAsync", name: "writeFrameAsync", pkg: "net/http", typ: $funcType([http2FrameWriteRequest, ptrType$87], [], false)}, {prop: "closeAllStreamsOnConnClose", name: "closeAllStreamsOnConnClose", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "stopShutdownTimer", name: "stopShutdownTimer", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "notePanic", name: "notePanic", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "serve", name: "serve", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "awaitGracefulShutdown", name: "awaitGracefulShutdown", pkg: "net/http", typ: $funcType([chanType$2, chanType$1], [], false)}, {prop: "onSettingsTimer", name: "onSettingsTimer", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "onIdleTimer", name: "onIdleTimer", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "onShutdownTimer", name: "onShutdownTimer", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "sendServeMsg", name: "sendServeMsg", pkg: "net/http", typ: $funcType([$emptyInterface], [], false)}, {prop: "readPreface", name: "readPreface", pkg: "net/http", typ: $funcType([], [$error], false)}, {prop: "writeDataFromHandler", name: "writeDataFromHandler", pkg: "net/http", typ: $funcType([ptrType$8, sliceType$3, $Bool], [$error], false)}, {prop: "writeFrameFromHandler", name: "writeFrameFromHandler", pkg: "net/http", typ: $funcType([http2FrameWriteRequest], [$error], false)}, {prop: "writeFrame", name: "writeFrame", pkg: "net/http", typ: $funcType([http2FrameWriteRequest], [], false)}, {prop: "startFrameWrite", name: "startFrameWrite", pkg: "net/http", typ: $funcType([http2FrameWriteRequest], [], false)}, {prop: "wroteFrame", name: "wroteFrame", pkg: "net/http", typ: $funcType([http2frameWriteResult], [], false)}, {prop: "scheduleFrameWrite", name: "scheduleFrameWrite", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "startGracefulShutdown", name: "startGracefulShutdown", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "startGracefulShutdownInternal", name: "startGracefulShutdownInternal", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "goAway", name: "goAway", pkg: "net/http", typ: $funcType([http2ErrCode], [], false)}, {prop: "shutDownIn", name: "shutDownIn", pkg: "net/http", typ: $funcType([time.Duration], [], false)}, {prop: "resetStream", name: "resetStream", pkg: "net/http", typ: $funcType([http2StreamError], [], false)}, {prop: "processFrameFromReader", name: "processFrameFromReader", pkg: "net/http", typ: $funcType([http2readFrameResult], [$Bool], false)}, {prop: "processFrame", name: "processFrame", pkg: "net/http", typ: $funcType([http2Frame], [$error], false)}, {prop: "processPing", name: "processPing", pkg: "net/http", typ: $funcType([ptrType$76], [$error], false)}, {prop: "processWindowUpdate", name: "processWindowUpdate", pkg: "net/http", typ: $funcType([ptrType$75], [$error], false)}, {prop: "processResetStream", name: "processResetStream", pkg: "net/http", typ: $funcType([ptrType$78], [$error], false)}, {prop: "closeStream", name: "closeStream", pkg: "net/http", typ: $funcType([ptrType$8, $error], [], false)}, {prop: "processSettings", name: "processSettings", pkg: "net/http", typ: $funcType([ptrType$73], [$error], false)}, {prop: "processSetting", name: "processSetting", pkg: "net/http", typ: $funcType([http2Setting], [$error], false)}, {prop: "processSettingInitialWindowSize", name: "processSettingInitialWindowSize", pkg: "net/http", typ: $funcType([$Uint32], [$error], false)}, {prop: "processData", name: "processData", pkg: "net/http", typ: $funcType([ptrType$74], [$error], false)}, {prop: "processGoAway", name: "processGoAway", pkg: "net/http", typ: $funcType([ptrType$77], [$error], false)}, {prop: "processHeaders", name: "processHeaders", pkg: "net/http", typ: $funcType([ptrType$91], [$error], false)}, {prop: "upgradeRequest", name: "upgradeRequest", pkg: "net/http", typ: $funcType([ptrType$9], [], false)}, {prop: "checkPriority", name: "checkPriority", pkg: "net/http", typ: $funcType([$Uint32, http2PriorityParam], [$error], false)}, {prop: "processPriority", name: "processPriority", pkg: "net/http", typ: $funcType([ptrType$92], [$error], false)}, {prop: "newStream", name: "newStream", pkg: "net/http", typ: $funcType([$Uint32, $Uint32, http2streamState], [ptrType$8], false)}, {prop: "newWriterAndRequest", name: "newWriterAndRequest", pkg: "net/http", typ: $funcType([ptrType$8, ptrType$91], [ptrType$13, ptrType$9, $error], false)}, {prop: "newWriterAndRequestNoBody", name: "newWriterAndRequestNoBody", pkg: "net/http", typ: $funcType([ptrType$8, http2requestParam], [ptrType$13, ptrType$9, $error], false)}, {prop: "newResponseWriter", name: "newResponseWriter", pkg: "net/http", typ: $funcType([ptrType$8, ptrType$9], [ptrType$13], false)}, {prop: "scheduleHandler", name: "scheduleHandler", pkg: "net/http", typ: $funcType([$Uint32, ptrType$13, ptrType$9, funcType$17], [$error], false)}, {prop: "handlerDone", name: "handlerDone", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "runHandler", name: "runHandler", pkg: "net/http", typ: $funcType([ptrType$13, ptrType$9, funcType$17], [], false)}, {prop: "writeHeaders", name: "writeHeaders", pkg: "net/http", typ: $funcType([ptrType$8, ptrType$89], [$error], false)}, {prop: "write100ContinueHeaders", name: "write100ContinueHeaders", pkg: "net/http", typ: $funcType([ptrType$8], [], false)}, {prop: "noteBodyReadFromHandler", name: "noteBodyReadFromHandler", pkg: "net/http", typ: $funcType([ptrType$8, $Int, $error], [], false)}, {prop: "noteBodyRead", name: "noteBodyRead", pkg: "net/http", typ: $funcType([ptrType$8, $Int], [], false)}, {prop: "sendWindowUpdate32", name: "sendWindowUpdate32", pkg: "net/http", typ: $funcType([ptrType$8, $Int32], [], false)}, {prop: "sendWindowUpdate", name: "sendWindowUpdate", pkg: "net/http", typ: $funcType([ptrType$8, $Int], [], false)}, {prop: "startPush", name: "startPush", pkg: "net/http", typ: $funcType([ptrType$88], [], false)}, {prop: "countError", name: "countError", pkg: "net/http", typ: $funcType([$String, $error], [$error], false)}]; + ptrType$8.methods = [{prop: "isPushed", name: "isPushed", pkg: "net/http", typ: $funcType([], [$Bool], false)}, {prop: "endStream", name: "endStream", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "copyTrailersToHandlerRequest", name: "copyTrailersToHandlerRequest", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "onReadTimeout", name: "onReadTimeout", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "onWriteTimeout", name: "onWriteTimeout", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "processTrailerHeaders", name: "processTrailerHeaders", pkg: "net/http", typ: $funcType([ptrType$91], [$error], false)}]; ptrType$94.methods = [{prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}]; ptrType$13.methods = [{prop: "SetReadDeadline", name: "SetReadDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetWriteDeadline", name: "SetWriteDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "Flush", name: "Flush", pkg: "", typ: $funcType([], [], false)}, {prop: "FlushError", name: "FlushError", pkg: "", typ: $funcType([], [$error], false)}, {prop: "CloseNotify", name: "CloseNotify", pkg: "", typ: $funcType([], [chanType$9], false)}, {prop: "Header", name: "Header", pkg: "", typ: $funcType([], [Header], false)}, {prop: "WriteHeader", name: "WriteHeader", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}, {prop: "write", name: "write", pkg: "net/http", typ: $funcType([$Int, sliceType$3, $String], [$Int, $error], false)}, {prop: "handlerDone", name: "handlerDone", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "Push", name: "Push", pkg: "", typ: $funcType([$String, ptrType$98], [$error], false)}]; ptrType$96.methods = [{prop: "hasTrailers", name: "hasTrailers", pkg: "net/http", typ: $funcType([], [$Bool], false)}, {prop: "hasNonemptyTrailers", name: "hasNonemptyTrailers", pkg: "net/http", typ: $funcType([], [$Bool], false)}, {prop: "declareTrailer", name: "declareTrailer", pkg: "net/http", typ: $funcType([$String], [], false)}, {prop: "writeChunk", name: "writeChunk", pkg: "net/http", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "promoteUndeclaredTrailers", name: "promoteUndeclaredTrailers", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "writeHeader", name: "writeHeader", pkg: "net/http", typ: $funcType([$Int], [], false)}]; http2chunkWriter.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}]; ptrType$99.methods = [{prop: "dialTLSWithContext", name: "dialTLSWithContext", pkg: "net/http", typ: $funcType([context.Context, $String, $String, ptrType$15], [ptrType$29, $error], false)}, {prop: "maxHeaderListSize", name: "maxHeaderListSize", pkg: "net/http", typ: $funcType([], [$Uint32], false)}, {prop: "maxFrameReadSize", name: "maxFrameReadSize", pkg: "net/http", typ: $funcType([], [$Uint32], false)}, {prop: "disableCompression", name: "disableCompression", pkg: "net/http", typ: $funcType([], [$Bool], false)}, {prop: "pingTimeout", name: "pingTimeout", pkg: "net/http", typ: $funcType([], [time.Duration], false)}, {prop: "connPool", name: "connPool", pkg: "net/http", typ: $funcType([], [http2ClientConnPool], false)}, {prop: "initConnPool", name: "initConnPool", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "RoundTrip", name: "RoundTrip", pkg: "", typ: $funcType([ptrType$9], [ptrType$17, $error], false)}, {prop: "RoundTripOpt", name: "RoundTripOpt", pkg: "", typ: $funcType([ptrType$9, http2RoundTripOpt], [ptrType$17, $error], false)}, {prop: "CloseIdleConnections", name: "CloseIdleConnections", pkg: "", typ: $funcType([], [], false)}, {prop: "dialClientConn", name: "dialClientConn", pkg: "net/http", typ: $funcType([context.Context, $String, $Bool], [ptrType$64, $error], false)}, {prop: "newTLSConfig", name: "newTLSConfig", pkg: "net/http", typ: $funcType([$String], [ptrType$15], false)}, {prop: "dialTLS", name: "dialTLS", pkg: "net/http", typ: $funcType([context.Context, $String, $String, ptrType$15], [net.Conn, $error], false)}, {prop: "disableKeepAlives", name: "disableKeepAlives", pkg: "net/http", typ: $funcType([], [$Bool], false)}, {prop: "expectContinueTimeout", name: "expectContinueTimeout", pkg: "net/http", typ: $funcType([], [time.Duration], false)}, {prop: "maxDecoderHeaderTableSize", name: "maxDecoderHeaderTableSize", pkg: "net/http", typ: $funcType([], [$Uint32], false)}, {prop: "maxEncoderHeaderTableSize", name: "maxEncoderHeaderTableSize", pkg: "net/http", typ: $funcType([], [$Uint32], false)}, {prop: "NewClientConn", name: "NewClientConn", pkg: "", typ: $funcType([net.Conn], [ptrType$64, $error], false)}, {prop: "newClientConn", name: "newClientConn", pkg: "net/http", typ: $funcType([net.Conn, $Bool], [ptrType$64, $error], false)}, {prop: "vlogf", name: "vlogf", pkg: "net/http", typ: $funcType([$String, sliceType], [], true)}, {prop: "logf", name: "logf", pkg: "net/http", typ: $funcType([$String, sliceType], [], true)}, {prop: "idleConnTimeout", name: "idleConnTimeout", pkg: "net/http", typ: $funcType([], [time.Duration], false)}]; - ptrType$64.methods = [{prop: "healthCheck", name: "healthCheck", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "SetDoNotReuse", name: "SetDoNotReuse", pkg: "", typ: $funcType([], [], false)}, {prop: "setGoAway", name: "setGoAway", pkg: "net/http", typ: $funcType([ptrType$78], [], false)}, {prop: "CanTakeNewRequest", name: "CanTakeNewRequest", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "ReserveNewRequest", name: "ReserveNewRequest", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "State", name: "State", pkg: "", typ: $funcType([], [http2ClientConnState], false)}, {prop: "idleState", name: "idleState", pkg: "net/http", typ: $funcType([], [http2clientConnIdleState], false)}, {prop: "idleStateLocked", name: "idleStateLocked", pkg: "net/http", typ: $funcType([], [http2clientConnIdleState], false)}, {prop: "canTakeNewRequestLocked", name: "canTakeNewRequestLocked", pkg: "net/http", typ: $funcType([], [$Bool], false)}, {prop: "tooIdleLocked", name: "tooIdleLocked", pkg: "net/http", typ: $funcType([], [$Bool], false)}, {prop: "onIdleTimeout", name: "onIdleTimeout", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "closeConn", name: "closeConn", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "forceCloseConn", name: "forceCloseConn", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "closeIfIdle", name: "closeIfIdle", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "isDoNotReuseAndIdle", name: "isDoNotReuseAndIdle", pkg: "net/http", typ: $funcType([], [$Bool], false)}, {prop: "Shutdown", name: "Shutdown", pkg: "", typ: $funcType([context.Context], [$error], false)}, {prop: "sendGoAway", name: "sendGoAway", pkg: "net/http", typ: $funcType([], [$error], false)}, {prop: "closeForError", name: "closeForError", pkg: "net/http", typ: $funcType([$error], [], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "closeForLostPing", name: "closeForLostPing", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "responseHeaderTimeout", name: "responseHeaderTimeout", pkg: "net/http", typ: $funcType([], [time.Duration], false)}, {prop: "decrStreamReservations", name: "decrStreamReservations", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "decrStreamReservationsLocked", name: "decrStreamReservationsLocked", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "RoundTrip", name: "RoundTrip", pkg: "", typ: $funcType([ptrType$9], [ptrType$17, $error], false)}, {prop: "awaitOpenSlotForStreamLocked", name: "awaitOpenSlotForStreamLocked", pkg: "net/http", typ: $funcType([ptrType$101], [$error], false)}, {prop: "writeHeaders", name: "writeHeaders", pkg: "net/http", typ: $funcType([$Uint32, $Bool, $Int, sliceType$3], [$error], false)}, {prop: "encodeHeaders", name: "encodeHeaders", pkg: "net/http", typ: $funcType([ptrType$9, $Bool, $String, $Int64], [sliceType$3, $error], false)}, {prop: "encodeTrailers", name: "encodeTrailers", pkg: "net/http", typ: $funcType([Header], [sliceType$3, $error], false)}, {prop: "writeHeader", name: "writeHeader", pkg: "net/http", typ: $funcType([$String, $String], [], false)}, {prop: "addStreamLocked", name: "addStreamLocked", pkg: "net/http", typ: $funcType([ptrType$101], [], false)}, {prop: "forgetStreamID", name: "forgetStreamID", pkg: "net/http", typ: $funcType([$Uint32], [], false)}, {prop: "readLoop", name: "readLoop", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "countReadFrameError", name: "countReadFrameError", pkg: "net/http", typ: $funcType([$error], [], false)}, {prop: "Ping", name: "Ping", pkg: "", typ: $funcType([context.Context], [$error], false)}, {prop: "writeStreamReset", name: "writeStreamReset", pkg: "net/http", typ: $funcType([$Uint32, http2ErrCode, $error], [], false)}, {prop: "logf", name: "logf", pkg: "net/http", typ: $funcType([$String, sliceType], [], true)}, {prop: "vlogf", name: "vlogf", pkg: "net/http", typ: $funcType([$String, sliceType], [], true)}]; + ptrType$64.methods = [{prop: "healthCheck", name: "healthCheck", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "SetDoNotReuse", name: "SetDoNotReuse", pkg: "", typ: $funcType([], [], false)}, {prop: "setGoAway", name: "setGoAway", pkg: "net/http", typ: $funcType([ptrType$77], [], false)}, {prop: "CanTakeNewRequest", name: "CanTakeNewRequest", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "ReserveNewRequest", name: "ReserveNewRequest", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "State", name: "State", pkg: "", typ: $funcType([], [http2ClientConnState], false)}, {prop: "idleState", name: "idleState", pkg: "net/http", typ: $funcType([], [http2clientConnIdleState], false)}, {prop: "idleStateLocked", name: "idleStateLocked", pkg: "net/http", typ: $funcType([], [http2clientConnIdleState], false)}, {prop: "canTakeNewRequestLocked", name: "canTakeNewRequestLocked", pkg: "net/http", typ: $funcType([], [$Bool], false)}, {prop: "tooIdleLocked", name: "tooIdleLocked", pkg: "net/http", typ: $funcType([], [$Bool], false)}, {prop: "onIdleTimeout", name: "onIdleTimeout", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "closeConn", name: "closeConn", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "forceCloseConn", name: "forceCloseConn", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "closeIfIdle", name: "closeIfIdle", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "isDoNotReuseAndIdle", name: "isDoNotReuseAndIdle", pkg: "net/http", typ: $funcType([], [$Bool], false)}, {prop: "Shutdown", name: "Shutdown", pkg: "", typ: $funcType([context.Context], [$error], false)}, {prop: "sendGoAway", name: "sendGoAway", pkg: "net/http", typ: $funcType([], [$error], false)}, {prop: "closeForError", name: "closeForError", pkg: "net/http", typ: $funcType([$error], [], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "closeForLostPing", name: "closeForLostPing", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "responseHeaderTimeout", name: "responseHeaderTimeout", pkg: "net/http", typ: $funcType([], [time.Duration], false)}, {prop: "decrStreamReservations", name: "decrStreamReservations", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "decrStreamReservationsLocked", name: "decrStreamReservationsLocked", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "RoundTrip", name: "RoundTrip", pkg: "", typ: $funcType([ptrType$9], [ptrType$17, $error], false)}, {prop: "awaitOpenSlotForStreamLocked", name: "awaitOpenSlotForStreamLocked", pkg: "net/http", typ: $funcType([ptrType$101], [$error], false)}, {prop: "writeHeaders", name: "writeHeaders", pkg: "net/http", typ: $funcType([$Uint32, $Bool, $Int, sliceType$3], [$error], false)}, {prop: "encodeHeaders", name: "encodeHeaders", pkg: "net/http", typ: $funcType([ptrType$9, $Bool, $String, $Int64], [sliceType$3, $error], false)}, {prop: "encodeTrailers", name: "encodeTrailers", pkg: "net/http", typ: $funcType([Header], [sliceType$3, $error], false)}, {prop: "writeHeader", name: "writeHeader", pkg: "net/http", typ: $funcType([$String, $String], [], false)}, {prop: "addStreamLocked", name: "addStreamLocked", pkg: "net/http", typ: $funcType([ptrType$101], [], false)}, {prop: "forgetStreamID", name: "forgetStreamID", pkg: "net/http", typ: $funcType([$Uint32], [], false)}, {prop: "readLoop", name: "readLoop", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "countReadFrameError", name: "countReadFrameError", pkg: "net/http", typ: $funcType([$error], [], false)}, {prop: "Ping", name: "Ping", pkg: "", typ: $funcType([context.Context], [$error], false)}, {prop: "writeStreamReset", name: "writeStreamReset", pkg: "net/http", typ: $funcType([$Uint32, http2ErrCode, $error], [], false)}, {prop: "logf", name: "logf", pkg: "net/http", typ: $funcType([$String, sliceType], [], true)}, {prop: "vlogf", name: "vlogf", pkg: "net/http", typ: $funcType([$String, sliceType], [], true)}]; ptrType$101.methods = [{prop: "get1xxTraceFunc", name: "get1xxTraceFunc", pkg: "net/http", typ: $funcType([], [funcType$29], false)}, {prop: "abortStream", name: "abortStream", pkg: "net/http", typ: $funcType([$error], [], false)}, {prop: "abortStreamLocked", name: "abortStreamLocked", pkg: "net/http", typ: $funcType([$error], [], false)}, {prop: "abortRequestBodyWrite", name: "abortRequestBodyWrite", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "closeReqBodyLocked", name: "closeReqBodyLocked", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "doRequest", name: "doRequest", pkg: "net/http", typ: $funcType([ptrType$9], [], false)}, {prop: "writeRequest", name: "writeRequest", pkg: "net/http", typ: $funcType([ptrType$9], [$error], false)}, {prop: "encodeAndWriteHeaders", name: "encodeAndWriteHeaders", pkg: "net/http", typ: $funcType([ptrType$9], [$error], false)}, {prop: "cleanupWriteRequest", name: "cleanupWriteRequest", pkg: "net/http", typ: $funcType([$error], [], false)}, {prop: "frameScratchBufferLen", name: "frameScratchBufferLen", pkg: "net/http", typ: $funcType([$Int], [$Int], false)}, {prop: "writeRequestBody", name: "writeRequestBody", pkg: "net/http", typ: $funcType([ptrType$9], [$error], false)}, {prop: "awaitFlowControl", name: "awaitFlowControl", pkg: "net/http", typ: $funcType([$Int], [$Int32, $error], false)}, {prop: "copyTrailers", name: "copyTrailers", pkg: "net/http", typ: $funcType([], [], false)}]; http2stickyErrWriter.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}]; http2noCachedConnError.methods = [{prop: "IsHTTP2NoCachedConnError", name: "IsHTTP2NoCachedConnError", pkg: "", typ: $funcType([], [], false)}, {prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$140.methods = [{prop: "cleanup", name: "cleanup", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "run", name: "run", pkg: "net/http", typ: $funcType([], [$error], false)}, {prop: "processHeaders", name: "processHeaders", pkg: "net/http", typ: $funcType([ptrType$72], [$error], false)}, {prop: "handleResponse", name: "handleResponse", pkg: "net/http", typ: $funcType([ptrType$101, ptrType$72], [ptrType$17, $error], false)}, {prop: "processTrailers", name: "processTrailers", pkg: "net/http", typ: $funcType([ptrType$101, ptrType$72], [$error], false)}, {prop: "processData", name: "processData", pkg: "net/http", typ: $funcType([ptrType$75], [$error], false)}, {prop: "endStream", name: "endStream", pkg: "net/http", typ: $funcType([ptrType$101], [], false)}, {prop: "endStreamError", name: "endStreamError", pkg: "net/http", typ: $funcType([ptrType$101, $error], [], false)}, {prop: "streamByID", name: "streamByID", pkg: "net/http", typ: $funcType([$Uint32], [ptrType$101], false)}, {prop: "processGoAway", name: "processGoAway", pkg: "net/http", typ: $funcType([ptrType$78], [$error], false)}, {prop: "processSettings", name: "processSettings", pkg: "net/http", typ: $funcType([ptrType$74], [$error], false)}, {prop: "processSettingsNoWrite", name: "processSettingsNoWrite", pkg: "net/http", typ: $funcType([ptrType$74], [$error], false)}, {prop: "processWindowUpdate", name: "processWindowUpdate", pkg: "net/http", typ: $funcType([ptrType$76], [$error], false)}, {prop: "processResetStream", name: "processResetStream", pkg: "net/http", typ: $funcType([ptrType$79], [$error], false)}, {prop: "processPing", name: "processPing", pkg: "net/http", typ: $funcType([ptrType$77], [$error], false)}, {prop: "processPushPromise", name: "processPushPromise", pkg: "net/http", typ: $funcType([ptrType$92], [$error], false)}]; + ptrType$144.methods = [{prop: "cleanup", name: "cleanup", pkg: "net/http", typ: $funcType([], [], false)}, {prop: "run", name: "run", pkg: "net/http", typ: $funcType([], [$error], false)}, {prop: "processHeaders", name: "processHeaders", pkg: "net/http", typ: $funcType([ptrType$91], [$error], false)}, {prop: "handleResponse", name: "handleResponse", pkg: "net/http", typ: $funcType([ptrType$101, ptrType$91], [ptrType$17, $error], false)}, {prop: "processTrailers", name: "processTrailers", pkg: "net/http", typ: $funcType([ptrType$101, ptrType$91], [$error], false)}, {prop: "processData", name: "processData", pkg: "net/http", typ: $funcType([ptrType$74], [$error], false)}, {prop: "endStream", name: "endStream", pkg: "net/http", typ: $funcType([ptrType$101], [], false)}, {prop: "endStreamError", name: "endStreamError", pkg: "net/http", typ: $funcType([ptrType$101, $error], [], false)}, {prop: "streamByID", name: "streamByID", pkg: "net/http", typ: $funcType([$Uint32], [ptrType$101], false)}, {prop: "processGoAway", name: "processGoAway", pkg: "net/http", typ: $funcType([ptrType$77], [$error], false)}, {prop: "processSettings", name: "processSettings", pkg: "net/http", typ: $funcType([ptrType$73], [$error], false)}, {prop: "processSettingsNoWrite", name: "processSettingsNoWrite", pkg: "net/http", typ: $funcType([ptrType$73], [$error], false)}, {prop: "processWindowUpdate", name: "processWindowUpdate", pkg: "net/http", typ: $funcType([ptrType$75], [$error], false)}, {prop: "processResetStream", name: "processResetStream", pkg: "net/http", typ: $funcType([ptrType$78], [$error], false)}, {prop: "processPing", name: "processPing", pkg: "net/http", typ: $funcType([ptrType$76], [$error], false)}, {prop: "processPushPromise", name: "processPushPromise", pkg: "net/http", typ: $funcType([ptrType$93], [$error], false)}]; http2GoAwayError.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; http2transportResponseBody.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}]; http2noBodyReader.methods = [{prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}]; http2missingBody.methods = [{prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}]; http2erringRoundTripper.methods = [{prop: "RoundTripErr", name: "RoundTripErr", pkg: "", typ: $funcType([], [$error], false)}, {prop: "RoundTrip", name: "RoundTrip", pkg: "", typ: $funcType([ptrType$9], [ptrType$17, $error], false)}]; - ptrType$141.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}]; + ptrType$145.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}]; http2noDialH2RoundTripper.methods = [{prop: "RoundTrip", name: "RoundTrip", pkg: "", typ: $funcType([ptrType$9], [ptrType$17, $error], false)}]; http2flushFrameWriter.methods = [{prop: "writeFrame", name: "writeFrame", pkg: "net/http", typ: $funcType([http2writeContext], [$error], false)}, {prop: "staysWithinBuffer", name: "staysWithinBuffer", pkg: "net/http", typ: $funcType([$Int], [$Bool], false)}]; http2writeSettings.methods = [{prop: "staysWithinBuffer", name: "staysWithinBuffer", pkg: "net/http", typ: $funcType([$Int], [$Bool], false)}, {prop: "writeFrame", name: "writeFrame", pkg: "net/http", typ: $funcType([http2writeContext], [$error], false)}]; - ptrType$142.methods = [{prop: "writeFrame", name: "writeFrame", pkg: "net/http", typ: $funcType([http2writeContext], [$error], false)}, {prop: "staysWithinBuffer", name: "staysWithinBuffer", pkg: "net/http", typ: $funcType([$Int], [$Bool], false)}]; - ptrType$88.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "writeFrame", name: "writeFrame", pkg: "net/http", typ: $funcType([http2writeContext], [$error], false)}, {prop: "staysWithinBuffer", name: "staysWithinBuffer", pkg: "net/http", typ: $funcType([$Int], [$Bool], false)}]; + ptrType$146.methods = [{prop: "writeFrame", name: "writeFrame", pkg: "net/http", typ: $funcType([http2writeContext], [$error], false)}, {prop: "staysWithinBuffer", name: "staysWithinBuffer", pkg: "net/http", typ: $funcType([$Int], [$Bool], false)}]; + ptrType$87.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "writeFrame", name: "writeFrame", pkg: "net/http", typ: $funcType([http2writeContext], [$error], false)}, {prop: "staysWithinBuffer", name: "staysWithinBuffer", pkg: "net/http", typ: $funcType([$Int], [$Bool], false)}]; http2handlerPanicRST.methods = [{prop: "writeFrame", name: "writeFrame", pkg: "net/http", typ: $funcType([http2writeContext], [$error], false)}, {prop: "staysWithinBuffer", name: "staysWithinBuffer", pkg: "net/http", typ: $funcType([$Int], [$Bool], false)}]; http2writePingAck.methods = [{prop: "writeFrame", name: "writeFrame", pkg: "net/http", typ: $funcType([http2writeContext], [$error], false)}, {prop: "staysWithinBuffer", name: "staysWithinBuffer", pkg: "net/http", typ: $funcType([$Int], [$Bool], false)}]; http2writeSettingsAck.methods = [{prop: "writeFrame", name: "writeFrame", pkg: "net/http", typ: $funcType([http2writeContext], [$error], false)}, {prop: "staysWithinBuffer", name: "staysWithinBuffer", pkg: "net/http", typ: $funcType([$Int], [$Bool], false)}]; @@ -301512,14 +304264,15 @@ $packages["net/http"] = (function() { http2write100ContinueHeadersFrame.methods = [{prop: "writeFrame", name: "writeFrame", pkg: "net/http", typ: $funcType([http2writeContext], [$error], false)}, {prop: "staysWithinBuffer", name: "staysWithinBuffer", pkg: "net/http", typ: $funcType([$Int], [$Bool], false)}]; http2writeWindowUpdate.methods = [{prop: "staysWithinBuffer", name: "staysWithinBuffer", pkg: "net/http", typ: $funcType([$Int], [$Bool], false)}, {prop: "writeFrame", name: "writeFrame", pkg: "net/http", typ: $funcType([http2writeContext], [$error], false)}]; http2FrameWriteRequest.methods = [{prop: "StreamID", name: "StreamID", pkg: "", typ: $funcType([], [$Uint32], false)}, {prop: "isControl", name: "isControl", pkg: "net/http", typ: $funcType([], [$Bool], false)}, {prop: "DataSize", name: "DataSize", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Consume", name: "Consume", pkg: "", typ: $funcType([$Int32], [http2FrameWriteRequest, http2FrameWriteRequest, $Int], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$143.methods = [{prop: "replyToWriter", name: "replyToWriter", pkg: "net/http", typ: $funcType([$error], [], false)}]; + ptrType$147.methods = [{prop: "replyToWriter", name: "replyToWriter", pkg: "net/http", typ: $funcType([$error], [], false)}]; ptrType$102.methods = [{prop: "empty", name: "empty", pkg: "net/http", typ: $funcType([], [$Bool], false)}, {prop: "push", name: "push", pkg: "net/http", typ: $funcType([http2FrameWriteRequest], [], false)}, {prop: "shift", name: "shift", pkg: "net/http", typ: $funcType([], [http2FrameWriteRequest], false)}, {prop: "consume", name: "consume", pkg: "net/http", typ: $funcType([$Int32], [http2FrameWriteRequest, $Bool], false)}]; - ptrType$104.methods = [{prop: "put", name: "put", pkg: "net/http", typ: $funcType([ptrType$102], [], false)}, {prop: "get", name: "get", pkg: "net/http", typ: $funcType([], [ptrType$102], false)}]; - ptrType$103.methods = [{prop: "setParent", name: "setParent", pkg: "net/http", typ: $funcType([ptrType$103], [], false)}, {prop: "addBytes", name: "addBytes", pkg: "net/http", typ: $funcType([$Int64], [], false)}, {prop: "walkReadyInOrder", name: "walkReadyInOrder", pkg: "net/http", typ: $funcType([$Bool, ptrType$105, funcType$31], [$Bool], false)}]; + ptrType$105.methods = [{prop: "put", name: "put", pkg: "net/http", typ: $funcType([ptrType$102], [], false)}, {prop: "get", name: "get", pkg: "net/http", typ: $funcType([], [ptrType$102], false)}]; + ptrType$103.methods = [{prop: "setParent", name: "setParent", pkg: "net/http", typ: $funcType([ptrType$103], [], false)}, {prop: "addBytes", name: "addBytes", pkg: "net/http", typ: $funcType([$Int64], [], false)}, {prop: "walkReadyInOrder", name: "walkReadyInOrder", pkg: "net/http", typ: $funcType([$Bool, ptrType$106, funcType$31], [$Bool], false)}]; http2sortPriorityNodeSiblings.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}]; - ptrType$144.methods = [{prop: "OpenStream", name: "OpenStream", pkg: "", typ: $funcType([$Uint32, http2OpenStreamOptions], [], false)}, {prop: "CloseStream", name: "CloseStream", pkg: "", typ: $funcType([$Uint32], [], false)}, {prop: "AdjustStream", name: "AdjustStream", pkg: "", typ: $funcType([$Uint32, http2PriorityParam], [], false)}, {prop: "Push", name: "Push", pkg: "", typ: $funcType([http2FrameWriteRequest], [], false)}, {prop: "Pop", name: "Pop", pkg: "", typ: $funcType([], [http2FrameWriteRequest, $Bool], false)}, {prop: "addClosedOrIdleNode", name: "addClosedOrIdleNode", pkg: "net/http", typ: $funcType([ptrType$105, $Int, ptrType$103], [], false)}, {prop: "removeNode", name: "removeNode", pkg: "net/http", typ: $funcType([ptrType$103], [], false)}]; + ptrType$104.methods = [{prop: "OpenStream", name: "OpenStream", pkg: "", typ: $funcType([$Uint32, http2OpenStreamOptions], [], false)}, {prop: "CloseStream", name: "CloseStream", pkg: "", typ: $funcType([$Uint32], [], false)}, {prop: "AdjustStream", name: "AdjustStream", pkg: "", typ: $funcType([$Uint32, http2PriorityParam], [], false)}, {prop: "Push", name: "Push", pkg: "", typ: $funcType([http2FrameWriteRequest], [], false)}, {prop: "Pop", name: "Pop", pkg: "", typ: $funcType([], [http2FrameWriteRequest, $Bool], false)}, {prop: "addClosedOrIdleNode", name: "addClosedOrIdleNode", pkg: "net/http", typ: $funcType([ptrType$106, $Int, ptrType$103], [], false)}, {prop: "removeNode", name: "removeNode", pkg: "net/http", typ: $funcType([ptrType$103], [], false)}]; + ptrType$108.methods = [{prop: "OpenStream", name: "OpenStream", pkg: "", typ: $funcType([$Uint32, http2OpenStreamOptions], [], false)}, {prop: "CloseStream", name: "CloseStream", pkg: "", typ: $funcType([$Uint32], [], false)}, {prop: "AdjustStream", name: "AdjustStream", pkg: "", typ: $funcType([$Uint32, http2PriorityParam], [], false)}, {prop: "Push", name: "Push", pkg: "", typ: $funcType([http2FrameWriteRequest], [], false)}, {prop: "Pop", name: "Pop", pkg: "", typ: $funcType([], [http2FrameWriteRequest, $Bool], false)}]; noTransport.methods = [{prop: "RoundTrip", name: "RoundTrip", pkg: "", typ: $funcType([ptrType$9], [ptrType$17, $error], false)}]; - ptrType$146.methods = [{prop: "RoundTrip", name: "RoundTrip", pkg: "", typ: $funcType([ptrType$9], [ptrType$17, $error], false)}, {prop: "CancelRequest", name: "CancelRequest", pkg: "", typ: $funcType([ptrType$9], [], false)}]; + ptrType$148.methods = [{prop: "RoundTrip", name: "RoundTrip", pkg: "", typ: $funcType([ptrType$9], [ptrType$17, $error], false)}, {prop: "CancelRequest", name: "CancelRequest", pkg: "", typ: $funcType([ptrType$9], [], false)}]; ptrType$58.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Valid", name: "Valid", pkg: "", typ: $funcType([], [$error], false)}]; Transport.init("net/http", [{prop: "idleMu", name: "idleMu", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "closeIdle", name: "closeIdle", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "idleConn", name: "idleConn", embedded: false, exported: false, typ: mapType$1, tag: ""}, {prop: "idleConnWait", name: "idleConnWait", embedded: false, exported: false, typ: mapType$2, tag: ""}, {prop: "idleLRU", name: "idleLRU", embedded: false, exported: false, typ: connLRU, tag: ""}, {prop: "reqMu", name: "reqMu", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "reqCanceler", name: "reqCanceler", embedded: false, exported: false, typ: mapType$3, tag: ""}, {prop: "altMu", name: "altMu", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "altProto", name: "altProto", embedded: false, exported: false, typ: atomic.Value, tag: ""}, {prop: "connsPerHostMu", name: "connsPerHostMu", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "connsPerHost", name: "connsPerHost", embedded: false, exported: false, typ: mapType$4, tag: ""}, {prop: "connsPerHostWait", name: "connsPerHostWait", embedded: false, exported: false, typ: mapType$2, tag: ""}, {prop: "Proxy", name: "Proxy", embedded: false, exported: true, typ: funcType$6, tag: ""}, {prop: "OnProxyConnectResponse", name: "OnProxyConnectResponse", embedded: false, exported: true, typ: funcType$7, tag: ""}, {prop: "DialContext", name: "DialContext", embedded: false, exported: true, typ: funcType$8, tag: ""}, {prop: "Dial", name: "Dial", embedded: false, exported: true, typ: funcType$9, tag: ""}, {prop: "DialTLSContext", name: "DialTLSContext", embedded: false, exported: true, typ: funcType$8, tag: ""}, {prop: "DialTLS", name: "DialTLS", embedded: false, exported: true, typ: funcType$9, tag: ""}, {prop: "TLSClientConfig", name: "TLSClientConfig", embedded: false, exported: true, typ: ptrType$15, tag: ""}, {prop: "TLSHandshakeTimeout", name: "TLSHandshakeTimeout", embedded: false, exported: true, typ: time.Duration, tag: ""}, {prop: "DisableKeepAlives", name: "DisableKeepAlives", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "DisableCompression", name: "DisableCompression", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "MaxIdleConns", name: "MaxIdleConns", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "MaxIdleConnsPerHost", name: "MaxIdleConnsPerHost", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "MaxConnsPerHost", name: "MaxConnsPerHost", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "IdleConnTimeout", name: "IdleConnTimeout", embedded: false, exported: true, typ: time.Duration, tag: ""}, {prop: "ResponseHeaderTimeout", name: "ResponseHeaderTimeout", embedded: false, exported: true, typ: time.Duration, tag: ""}, {prop: "ExpectContinueTimeout", name: "ExpectContinueTimeout", embedded: false, exported: true, typ: time.Duration, tag: ""}, {prop: "TLSNextProto", name: "TLSNextProto", embedded: false, exported: true, typ: mapType$5, tag: ""}, {prop: "ProxyConnectHeader", name: "ProxyConnectHeader", embedded: false, exported: true, typ: Header, tag: ""}, {prop: "GetProxyConnectHeader", name: "GetProxyConnectHeader", embedded: false, exported: true, typ: funcType$11, tag: ""}, {prop: "MaxResponseHeaderBytes", name: "MaxResponseHeaderBytes", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "WriteBufferSize", name: "WriteBufferSize", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "ReadBufferSize", name: "ReadBufferSize", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "nextProtoOnce", name: "nextProtoOnce", embedded: false, exported: false, typ: sync.Once, tag: ""}, {prop: "h2transport", name: "h2transport", embedded: false, exported: false, typ: h2Transport, tag: ""}, {prop: "tlsNextProtoWasNil", name: "tlsNextProtoWasNil", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "ForceAttemptHTTP2", name: "ForceAttemptHTTP2", embedded: false, exported: true, typ: $Bool, tag: ""}]); cancelKey.init("net/http", [{prop: "req", name: "req", embedded: false, exported: false, typ: ptrType$9, tag: ""}]); @@ -301538,7 +304291,7 @@ $packages["net/http"] = (function() { nothingWrittenError.init("net/http", [{prop: "error", name: "error", embedded: true, exported: false, typ: $error, tag: ""}]); responseAndError.init("net/http", [{prop: "_$0", name: "_", embedded: false, exported: false, typ: incomparable, tag: ""}, {prop: "res", name: "res", embedded: false, exported: false, typ: ptrType$17, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}]); requestAndChan.init("net/http", [{prop: "_$0", name: "_", embedded: false, exported: false, typ: incomparable, tag: ""}, {prop: "req", name: "req", embedded: false, exported: false, typ: ptrType$9, tag: ""}, {prop: "cancelKey", name: "cancelKey", embedded: false, exported: false, typ: cancelKey, tag: ""}, {prop: "ch", name: "ch", embedded: false, exported: false, typ: chanType$5, tag: ""}, {prop: "addedGzip", name: "addedGzip", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "continueCh", name: "continueCh", embedded: false, exported: false, typ: chanType$6, tag: ""}, {prop: "callerGone", name: "callerGone", embedded: false, exported: false, typ: chanType$2, tag: ""}]); - writeRequest.init("net/http", [{prop: "req", name: "req", embedded: false, exported: false, typ: ptrType$111, tag: ""}, {prop: "ch", name: "ch", embedded: false, exported: false, typ: chanType$7, tag: ""}, {prop: "continueCh", name: "continueCh", embedded: false, exported: false, typ: chanType$2, tag: ""}]); + writeRequest.init("net/http", [{prop: "req", name: "req", embedded: false, exported: false, typ: ptrType$114, tag: ""}, {prop: "ch", name: "ch", embedded: false, exported: false, typ: chanType$7, tag: ""}, {prop: "continueCh", name: "continueCh", embedded: false, exported: false, typ: chanType$2, tag: ""}]); httpError.init("net/http", [{prop: "err", name: "err", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "timeout", name: "timeout", embedded: false, exported: false, typ: $Bool, tag: ""}]); tLogKey.init("", []); bodyEOFSignal.init("net/http", [{prop: "body", name: "body", embedded: false, exported: false, typ: io.ReadCloser, tag: ""}, {prop: "mu", name: "mu", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "closed", name: "closed", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "rerr", name: "rerr", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "fn", name: "fn", embedded: false, exported: false, typ: funcType$14, tag: ""}, {prop: "earlyCloseFn", name: "earlyCloseFn", embedded: false, exported: false, typ: funcType$15, tag: ""}]); @@ -301567,9 +304320,9 @@ $packages["net/http"] = (function() { textSig.init("", []); Handler.init([{prop: "ServeHTTP", name: "ServeHTTP", pkg: "", typ: $funcType([ResponseWriter, ptrType$9], [], false)}]); ResponseWriter.init([{prop: "Header", name: "Header", pkg: "", typ: $funcType([], [Header], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "WriteHeader", name: "WriteHeader", pkg: "", typ: $funcType([$Int], [], false)}]); - conn.init("net/http", [{prop: "server", name: "server", embedded: false, exported: false, typ: ptrType$44, tag: ""}, {prop: "cancelCtx", name: "cancelCtx", embedded: false, exported: false, typ: context.CancelFunc, tag: ""}, {prop: "rwc", name: "rwc", embedded: false, exported: false, typ: net.Conn, tag: ""}, {prop: "remoteAddr", name: "remoteAddr", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "tlsState", name: "tlsState", embedded: false, exported: false, typ: ptrType$27, tag: ""}, {prop: "werr", name: "werr", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "r", name: "r", embedded: false, exported: false, typ: ptrType$45, tag: ""}, {prop: "bufr", name: "bufr", embedded: false, exported: false, typ: ptrType$28, tag: ""}, {prop: "bufw", name: "bufw", embedded: false, exported: false, typ: ptrType$11, tag: ""}, {prop: "lastMethod", name: "lastMethod", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "curReq", name: "curReq", embedded: false, exported: false, typ: atomic.Pointer[15 /* net/http.response */], tag: ""}, {prop: "curState", name: "curState", embedded: false, exported: false, typ: atomic.Uint64, tag: ""}, {prop: "mu", name: "mu", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "hijackedv", name: "hijackedv", embedded: false, exported: false, typ: $Bool, tag: ""}]); + conn.init("net/http", [{prop: "server", name: "server", embedded: false, exported: false, typ: ptrType$44, tag: ""}, {prop: "cancelCtx", name: "cancelCtx", embedded: false, exported: false, typ: context.CancelFunc, tag: ""}, {prop: "rwc", name: "rwc", embedded: false, exported: false, typ: net.Conn, tag: ""}, {prop: "remoteAddr", name: "remoteAddr", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "tlsState", name: "tlsState", embedded: false, exported: false, typ: ptrType$27, tag: ""}, {prop: "werr", name: "werr", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "r", name: "r", embedded: false, exported: false, typ: ptrType$45, tag: ""}, {prop: "bufr", name: "bufr", embedded: false, exported: false, typ: ptrType$28, tag: ""}, {prop: "bufw", name: "bufw", embedded: false, exported: false, typ: ptrType$11, tag: ""}, {prop: "lastMethod", name: "lastMethod", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "curReq", name: "curReq", embedded: false, exported: false, typ: atomic.Pointer[25 /* net/http.response */], tag: ""}, {prop: "curState", name: "curState", embedded: false, exported: false, typ: atomic.Uint64, tag: ""}, {prop: "mu", name: "mu", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "hijackedv", name: "hijackedv", embedded: false, exported: false, typ: $Bool, tag: ""}]); chunkWriter.init("net/http", [{prop: "res", name: "res", embedded: false, exported: false, typ: ptrType$46, tag: ""}, {prop: "header", name: "header", embedded: false, exported: false, typ: Header, tag: ""}, {prop: "wroteHeader", name: "wroteHeader", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "chunking", name: "chunking", embedded: false, exported: false, typ: $Bool, tag: ""}]); - response.init("net/http", [{prop: "conn", name: "conn", embedded: false, exported: false, typ: ptrType$50, tag: ""}, {prop: "req", name: "req", embedded: false, exported: false, typ: ptrType$9, tag: ""}, {prop: "reqBody", name: "reqBody", embedded: false, exported: false, typ: io.ReadCloser, tag: ""}, {prop: "cancelCtx", name: "cancelCtx", embedded: false, exported: false, typ: context.CancelFunc, tag: ""}, {prop: "wroteHeader", name: "wroteHeader", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "wroteContinue", name: "wroteContinue", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "wants10KeepAlive", name: "wants10KeepAlive", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "wantsClose", name: "wantsClose", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "canWriteContinue", name: "canWriteContinue", embedded: false, exported: false, typ: atomic.Bool, tag: ""}, {prop: "writeContinueMu", name: "writeContinueMu", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "w", name: "w", embedded: false, exported: false, typ: ptrType$11, tag: ""}, {prop: "cw", name: "cw", embedded: false, exported: false, typ: chunkWriter, tag: ""}, {prop: "handlerHeader", name: "handlerHeader", embedded: false, exported: false, typ: Header, tag: ""}, {prop: "calledHeader", name: "calledHeader", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "written", name: "written", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "contentLength", name: "contentLength", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "status", name: "status", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "closeAfterReply", name: "closeAfterReply", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "requestBodyLimitHit", name: "requestBodyLimitHit", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "trailers", name: "trailers", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "handlerDone", name: "handlerDone", embedded: false, exported: false, typ: atomic.Bool, tag: ""}, {prop: "dateBuf", name: "dateBuf", embedded: false, exported: false, typ: arrayType$3, tag: ""}, {prop: "clenBuf", name: "clenBuf", embedded: false, exported: false, typ: arrayType$4, tag: ""}, {prop: "statusBuf", name: "statusBuf", embedded: false, exported: false, typ: arrayType$5, tag: ""}, {prop: "closeNotifyCh", name: "closeNotifyCh", embedded: false, exported: false, typ: chanType$10, tag: ""}, {prop: "didCloseNotify", name: "didCloseNotify", embedded: false, exported: false, typ: atomic.Bool, tag: ""}]); + response.init("net/http", [{prop: "conn", name: "conn", embedded: false, exported: false, typ: ptrType$50, tag: ""}, {prop: "req", name: "req", embedded: false, exported: false, typ: ptrType$9, tag: ""}, {prop: "reqBody", name: "reqBody", embedded: false, exported: false, typ: io.ReadCloser, tag: ""}, {prop: "cancelCtx", name: "cancelCtx", embedded: false, exported: false, typ: context.CancelFunc, tag: ""}, {prop: "wroteHeader", name: "wroteHeader", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "wroteContinue", name: "wroteContinue", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "wants10KeepAlive", name: "wants10KeepAlive", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "wantsClose", name: "wantsClose", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "canWriteContinue", name: "canWriteContinue", embedded: false, exported: false, typ: atomic.Bool, tag: ""}, {prop: "writeContinueMu", name: "writeContinueMu", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "w", name: "w", embedded: false, exported: false, typ: ptrType$11, tag: ""}, {prop: "cw", name: "cw", embedded: false, exported: false, typ: chunkWriter, tag: ""}, {prop: "handlerHeader", name: "handlerHeader", embedded: false, exported: false, typ: Header, tag: ""}, {prop: "calledHeader", name: "calledHeader", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "written", name: "written", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "contentLength", name: "contentLength", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "status", name: "status", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "closeAfterReply", name: "closeAfterReply", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "fullDuplex", name: "fullDuplex", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "requestBodyLimitHit", name: "requestBodyLimitHit", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "trailers", name: "trailers", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "handlerDone", name: "handlerDone", embedded: false, exported: false, typ: atomic.Bool, tag: ""}, {prop: "dateBuf", name: "dateBuf", embedded: false, exported: false, typ: arrayType$3, tag: ""}, {prop: "clenBuf", name: "clenBuf", embedded: false, exported: false, typ: arrayType$4, tag: ""}, {prop: "statusBuf", name: "statusBuf", embedded: false, exported: false, typ: arrayType$5, tag: ""}, {prop: "closeNotifyCh", name: "closeNotifyCh", embedded: false, exported: false, typ: chanType$10, tag: ""}, {prop: "didCloseNotify", name: "didCloseNotify", embedded: false, exported: false, typ: atomic.Bool, tag: ""}]); writerOnly.init("", [{prop: "Writer", name: "Writer", embedded: true, exported: true, typ: io.Writer, tag: ""}]); readResult.init("net/http", [{prop: "_$0", name: "_", embedded: false, exported: false, typ: incomparable, tag: ""}, {prop: "n", name: "n", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "b", name: "b", embedded: false, exported: false, typ: $Uint8, tag: ""}]); connReader.init("net/http", [{prop: "conn", name: "conn", embedded: false, exported: false, typ: ptrType$50, tag: ""}, {prop: "mu", name: "mu", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "hasByte", name: "hasByte", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "byteBuf", name: "byteBuf", embedded: false, exported: false, typ: arrayType$2, tag: ""}, {prop: "cond", name: "cond", embedded: false, exported: false, typ: ptrType$47, tag: ""}, {prop: "inRead", name: "inRead", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "aborted", name: "aborted", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "remain", name: "remain", embedded: false, exported: false, typ: $Int64, tag: ""}]); @@ -301614,7 +304367,8 @@ $packages["net/http"] = (function() { http2StreamError.init("", [{prop: "StreamID", name: "StreamID", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Code", name: "Code", embedded: false, exported: true, typ: http2ErrCode, tag: ""}, {prop: "Cause", name: "Cause", embedded: false, exported: true, typ: $error, tag: ""}]); http2goAwayFlowError.init("", []); http2connError.init("", [{prop: "Code", name: "Code", embedded: false, exported: true, typ: http2ErrCode, tag: ""}, {prop: "Reason", name: "Reason", embedded: false, exported: true, typ: $String, tag: ""}]); - http2flow.init("net/http", [{prop: "_$0", name: "_", embedded: false, exported: false, typ: http2incomparable, tag: ""}, {prop: "n", name: "n", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "conn", name: "conn", embedded: false, exported: false, typ: ptrType$67, tag: ""}]); + http2inflow.init("net/http", [{prop: "avail", name: "avail", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "unsent", name: "unsent", embedded: false, exported: false, typ: $Int32, tag: ""}]); + http2outflow.init("net/http", [{prop: "_$0", name: "_", embedded: false, exported: false, typ: http2incomparable, tag: ""}, {prop: "n", name: "n", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "conn", name: "conn", embedded: false, exported: false, typ: ptrType$67, tag: ""}]); http2FrameHeader.init("net/http", [{prop: "valid", name: "valid", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: http2FrameType, tag: ""}, {prop: "Flags", name: "Flags", embedded: false, exported: true, typ: http2Flags, tag: ""}, {prop: "Length", name: "Length", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "StreamID", name: "StreamID", embedded: false, exported: true, typ: $Uint32, tag: ""}]); http2Frame.init([{prop: "Header", name: "Header", pkg: "", typ: $funcType([], [http2FrameHeader], false)}, {prop: "invalidate", name: "invalidate", pkg: "net/http", typ: $funcType([], [], false)}]); http2Framer.init("net/http", [{prop: "r", name: "r", embedded: false, exported: false, typ: io.Reader, tag: ""}, {prop: "lastFrame", name: "lastFrame", embedded: false, exported: false, typ: http2Frame, tag: ""}, {prop: "errDetail", name: "errDetail", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "countError", name: "countError", embedded: false, exported: false, typ: funcType$23, tag: ""}, {prop: "lastHeaderStream", name: "lastHeaderStream", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "maxReadSize", name: "maxReadSize", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "headerBuf", name: "headerBuf", embedded: false, exported: false, typ: arrayType$7, tag: ""}, {prop: "getReadBuf", name: "getReadBuf", embedded: false, exported: false, typ: funcType$24, tag: ""}, {prop: "readBuf", name: "readBuf", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "maxWriteSize", name: "maxWriteSize", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "w", name: "w", embedded: false, exported: false, typ: io.Writer, tag: ""}, {prop: "wbuf", name: "wbuf", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "AllowIllegalWrites", name: "AllowIllegalWrites", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "AllowIllegalReads", name: "AllowIllegalReads", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "ReadMetaHeaders", name: "ReadMetaHeaders", embedded: false, exported: true, typ: ptrType$70, tag: ""}, {prop: "MaxHeaderListSize", name: "MaxHeaderListSize", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "logReads", name: "logReads", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "logWrites", name: "logWrites", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "debugFramer", name: "debugFramer", embedded: false, exported: false, typ: ptrType$68, tag: ""}, {prop: "debugFramerBuf", name: "debugFramerBuf", embedded: false, exported: false, typ: ptrType$39, tag: ""}, {prop: "debugReadLoggerf", name: "debugReadLoggerf", embedded: false, exported: false, typ: funcType$1, tag: ""}, {prop: "debugWriteLoggerf", name: "debugWriteLoggerf", embedded: false, exported: false, typ: funcType$1, tag: ""}, {prop: "frameCache", name: "frameCache", embedded: false, exported: false, typ: ptrType$69, tag: ""}]); @@ -301647,21 +304401,21 @@ $packages["net/http"] = (function() { http2Server.init("net/http", [{prop: "MaxHandlers", name: "MaxHandlers", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "MaxConcurrentStreams", name: "MaxConcurrentStreams", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "MaxDecoderHeaderTableSize", name: "MaxDecoderHeaderTableSize", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "MaxEncoderHeaderTableSize", name: "MaxEncoderHeaderTableSize", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "MaxReadFrameSize", name: "MaxReadFrameSize", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "PermitProhibitedCipherSuites", name: "PermitProhibitedCipherSuites", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "IdleTimeout", name: "IdleTimeout", embedded: false, exported: true, typ: time.Duration, tag: ""}, {prop: "MaxUploadBufferPerConnection", name: "MaxUploadBufferPerConnection", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "MaxUploadBufferPerStream", name: "MaxUploadBufferPerStream", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "NewWriteScheduler", name: "NewWriteScheduler", embedded: false, exported: true, typ: funcType$26, tag: ""}, {prop: "CountError", name: "CountError", embedded: false, exported: true, typ: funcType$23, tag: ""}, {prop: "state", name: "state", embedded: false, exported: false, typ: ptrType$56, tag: ""}]); http2serverInternalState.init("net/http", [{prop: "mu", name: "mu", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "activeConns", name: "activeConns", embedded: false, exported: false, typ: mapType$16, tag: ""}]); http2ServeConnOpts.init("", [{prop: "Context", name: "Context", embedded: false, exported: true, typ: context.Context, tag: ""}, {prop: "BaseConfig", name: "BaseConfig", embedded: false, exported: true, typ: ptrType$44, tag: ""}, {prop: "Handler", name: "Handler", embedded: false, exported: true, typ: Handler, tag: ""}, {prop: "UpgradeRequest", name: "UpgradeRequest", embedded: false, exported: true, typ: ptrType$9, tag: ""}, {prop: "Settings", name: "Settings", embedded: false, exported: true, typ: sliceType$3, tag: ""}, {prop: "SawClientPreface", name: "SawClientPreface", embedded: false, exported: true, typ: $Bool, tag: ""}]); - http2serverConn.init("net/http", [{prop: "srv", name: "srv", embedded: false, exported: false, typ: ptrType$82, tag: ""}, {prop: "hs", name: "hs", embedded: false, exported: false, typ: ptrType$44, tag: ""}, {prop: "conn", name: "conn", embedded: false, exported: false, typ: net.Conn, tag: ""}, {prop: "bw", name: "bw", embedded: false, exported: false, typ: ptrType$84, tag: ""}, {prop: "handler", name: "handler", embedded: false, exported: false, typ: Handler, tag: ""}, {prop: "baseCtx", name: "baseCtx", embedded: false, exported: false, typ: context.Context, tag: ""}, {prop: "framer", name: "framer", embedded: false, exported: false, typ: ptrType$68, tag: ""}, {prop: "doneServing", name: "doneServing", embedded: false, exported: false, typ: chanType$1, tag: ""}, {prop: "readFrameCh", name: "readFrameCh", embedded: false, exported: false, typ: chanType$11, tag: ""}, {prop: "wantWriteFrameCh", name: "wantWriteFrameCh", embedded: false, exported: false, typ: chanType$12, tag: ""}, {prop: "wroteFrameCh", name: "wroteFrameCh", embedded: false, exported: false, typ: chanType$13, tag: ""}, {prop: "bodyReadCh", name: "bodyReadCh", embedded: false, exported: false, typ: chanType$14, tag: ""}, {prop: "serveMsgCh", name: "serveMsgCh", embedded: false, exported: false, typ: chanType$15, tag: ""}, {prop: "flow", name: "flow", embedded: false, exported: false, typ: http2flow, tag: ""}, {prop: "inflow", name: "inflow", embedded: false, exported: false, typ: http2flow, tag: ""}, {prop: "tlsState", name: "tlsState", embedded: false, exported: false, typ: ptrType$27, tag: ""}, {prop: "remoteAddrStr", name: "remoteAddrStr", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "writeSched", name: "writeSched", embedded: false, exported: false, typ: http2WriteScheduler, tag: ""}, {prop: "serveG", name: "serveG", embedded: false, exported: false, typ: http2goroutineLock, tag: ""}, {prop: "pushEnabled", name: "pushEnabled", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "sawClientPreface", name: "sawClientPreface", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "sawFirstSettings", name: "sawFirstSettings", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "needToSendSettingsAck", name: "needToSendSettingsAck", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "unackedSettings", name: "unackedSettings", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "queuedControlFrames", name: "queuedControlFrames", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "clientMaxStreams", name: "clientMaxStreams", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "advMaxStreams", name: "advMaxStreams", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "curClientStreams", name: "curClientStreams", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "curPushedStreams", name: "curPushedStreams", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "curHandlers", name: "curHandlers", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "maxClientStreamID", name: "maxClientStreamID", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "maxPushPromiseID", name: "maxPushPromiseID", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "streams", name: "streams", embedded: false, exported: false, typ: mapType$17, tag: ""}, {prop: "unstartedHandlers", name: "unstartedHandlers", embedded: false, exported: false, typ: sliceType$23, tag: ""}, {prop: "initialStreamSendWindowSize", name: "initialStreamSendWindowSize", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "maxFrameSize", name: "maxFrameSize", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "peerMaxHeaderListSize", name: "peerMaxHeaderListSize", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "canonHeader", name: "canonHeader", embedded: false, exported: false, typ: mapType$18, tag: ""}, {prop: "canonHeaderKeysSize", name: "canonHeaderKeysSize", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "writingFrame", name: "writingFrame", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "writingFrameAsync", name: "writingFrameAsync", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "needsFrameFlush", name: "needsFrameFlush", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "inGoAway", name: "inGoAway", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "inFrameScheduleLoop", name: "inFrameScheduleLoop", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "needToSendGoAway", name: "needToSendGoAway", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "goAwayCode", name: "goAwayCode", embedded: false, exported: false, typ: http2ErrCode, tag: ""}, {prop: "shutdownTimer", name: "shutdownTimer", embedded: false, exported: false, typ: ptrType$24, tag: ""}, {prop: "idleTimer", name: "idleTimer", embedded: false, exported: false, typ: ptrType$24, tag: ""}, {prop: "headerWriteBuf", name: "headerWriteBuf", embedded: false, exported: false, typ: bytes.Buffer, tag: ""}, {prop: "hpackEncoder", name: "hpackEncoder", embedded: false, exported: false, typ: ptrType$85, tag: ""}, {prop: "shutdownOnce", name: "shutdownOnce", embedded: false, exported: false, typ: sync.Once, tag: ""}]); - http2stream.init("net/http", [{prop: "sc", name: "sc", embedded: false, exported: false, typ: ptrType$10, tag: ""}, {prop: "id", name: "id", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "body", name: "body", embedded: false, exported: false, typ: ptrType$93, tag: ""}, {prop: "cw", name: "cw", embedded: false, exported: false, typ: http2closeWaiter, tag: ""}, {prop: "ctx", name: "ctx", embedded: false, exported: false, typ: context.Context, tag: ""}, {prop: "cancelCtx", name: "cancelCtx", embedded: false, exported: false, typ: funcType, tag: ""}, {prop: "bodyBytes", name: "bodyBytes", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "declBodyBytes", name: "declBodyBytes", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "flow", name: "flow", embedded: false, exported: false, typ: http2flow, tag: ""}, {prop: "inflow", name: "inflow", embedded: false, exported: false, typ: http2flow, tag: ""}, {prop: "state", name: "state", embedded: false, exported: false, typ: http2streamState, tag: ""}, {prop: "resetQueued", name: "resetQueued", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "gotTrailerHeader", name: "gotTrailerHeader", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "wroteHeaders", name: "wroteHeaders", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "readDeadline", name: "readDeadline", embedded: false, exported: false, typ: ptrType$24, tag: ""}, {prop: "writeDeadline", name: "writeDeadline", embedded: false, exported: false, typ: ptrType$24, tag: ""}, {prop: "closeErr", name: "closeErr", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "trailer", name: "trailer", embedded: false, exported: false, typ: Header, tag: ""}, {prop: "reqTrailer", name: "reqTrailer", embedded: false, exported: false, typ: Header, tag: ""}]); + http2serverConn.init("net/http", [{prop: "srv", name: "srv", embedded: false, exported: false, typ: ptrType$82, tag: ""}, {prop: "hs", name: "hs", embedded: false, exported: false, typ: ptrType$44, tag: ""}, {prop: "conn", name: "conn", embedded: false, exported: false, typ: net.Conn, tag: ""}, {prop: "bw", name: "bw", embedded: false, exported: false, typ: ptrType$84, tag: ""}, {prop: "handler", name: "handler", embedded: false, exported: false, typ: Handler, tag: ""}, {prop: "baseCtx", name: "baseCtx", embedded: false, exported: false, typ: context.Context, tag: ""}, {prop: "framer", name: "framer", embedded: false, exported: false, typ: ptrType$68, tag: ""}, {prop: "doneServing", name: "doneServing", embedded: false, exported: false, typ: chanType$1, tag: ""}, {prop: "readFrameCh", name: "readFrameCh", embedded: false, exported: false, typ: chanType$11, tag: ""}, {prop: "wantWriteFrameCh", name: "wantWriteFrameCh", embedded: false, exported: false, typ: chanType$12, tag: ""}, {prop: "wroteFrameCh", name: "wroteFrameCh", embedded: false, exported: false, typ: chanType$13, tag: ""}, {prop: "bodyReadCh", name: "bodyReadCh", embedded: false, exported: false, typ: chanType$14, tag: ""}, {prop: "serveMsgCh", name: "serveMsgCh", embedded: false, exported: false, typ: chanType$15, tag: ""}, {prop: "flow", name: "flow", embedded: false, exported: false, typ: http2outflow, tag: ""}, {prop: "inflow", name: "inflow", embedded: false, exported: false, typ: http2inflow, tag: ""}, {prop: "tlsState", name: "tlsState", embedded: false, exported: false, typ: ptrType$27, tag: ""}, {prop: "remoteAddrStr", name: "remoteAddrStr", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "writeSched", name: "writeSched", embedded: false, exported: false, typ: http2WriteScheduler, tag: ""}, {prop: "serveG", name: "serveG", embedded: false, exported: false, typ: http2goroutineLock, tag: ""}, {prop: "pushEnabled", name: "pushEnabled", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "sawClientPreface", name: "sawClientPreface", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "sawFirstSettings", name: "sawFirstSettings", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "needToSendSettingsAck", name: "needToSendSettingsAck", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "unackedSettings", name: "unackedSettings", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "queuedControlFrames", name: "queuedControlFrames", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "clientMaxStreams", name: "clientMaxStreams", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "advMaxStreams", name: "advMaxStreams", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "curClientStreams", name: "curClientStreams", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "curPushedStreams", name: "curPushedStreams", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "curHandlers", name: "curHandlers", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "maxClientStreamID", name: "maxClientStreamID", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "maxPushPromiseID", name: "maxPushPromiseID", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "streams", name: "streams", embedded: false, exported: false, typ: mapType$17, tag: ""}, {prop: "unstartedHandlers", name: "unstartedHandlers", embedded: false, exported: false, typ: sliceType$23, tag: ""}, {prop: "initialStreamSendWindowSize", name: "initialStreamSendWindowSize", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "maxFrameSize", name: "maxFrameSize", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "peerMaxHeaderListSize", name: "peerMaxHeaderListSize", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "canonHeader", name: "canonHeader", embedded: false, exported: false, typ: mapType$18, tag: ""}, {prop: "canonHeaderKeysSize", name: "canonHeaderKeysSize", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "writingFrame", name: "writingFrame", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "writingFrameAsync", name: "writingFrameAsync", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "needsFrameFlush", name: "needsFrameFlush", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "inGoAway", name: "inGoAway", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "inFrameScheduleLoop", name: "inFrameScheduleLoop", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "needToSendGoAway", name: "needToSendGoAway", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "goAwayCode", name: "goAwayCode", embedded: false, exported: false, typ: http2ErrCode, tag: ""}, {prop: "shutdownTimer", name: "shutdownTimer", embedded: false, exported: false, typ: ptrType$24, tag: ""}, {prop: "idleTimer", name: "idleTimer", embedded: false, exported: false, typ: ptrType$24, tag: ""}, {prop: "headerWriteBuf", name: "headerWriteBuf", embedded: false, exported: false, typ: bytes.Buffer, tag: ""}, {prop: "hpackEncoder", name: "hpackEncoder", embedded: false, exported: false, typ: ptrType$85, tag: ""}, {prop: "shutdownOnce", name: "shutdownOnce", embedded: false, exported: false, typ: sync.Once, tag: ""}]); + http2stream.init("net/http", [{prop: "sc", name: "sc", embedded: false, exported: false, typ: ptrType$10, tag: ""}, {prop: "id", name: "id", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "body", name: "body", embedded: false, exported: false, typ: ptrType$80, tag: ""}, {prop: "cw", name: "cw", embedded: false, exported: false, typ: http2closeWaiter, tag: ""}, {prop: "ctx", name: "ctx", embedded: false, exported: false, typ: context.Context, tag: ""}, {prop: "cancelCtx", name: "cancelCtx", embedded: false, exported: false, typ: funcType, tag: ""}, {prop: "bodyBytes", name: "bodyBytes", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "declBodyBytes", name: "declBodyBytes", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "flow", name: "flow", embedded: false, exported: false, typ: http2outflow, tag: ""}, {prop: "inflow", name: "inflow", embedded: false, exported: false, typ: http2inflow, tag: ""}, {prop: "state", name: "state", embedded: false, exported: false, typ: http2streamState, tag: ""}, {prop: "resetQueued", name: "resetQueued", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "gotTrailerHeader", name: "gotTrailerHeader", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "wroteHeaders", name: "wroteHeaders", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "readDeadline", name: "readDeadline", embedded: false, exported: false, typ: ptrType$24, tag: ""}, {prop: "writeDeadline", name: "writeDeadline", embedded: false, exported: false, typ: ptrType$24, tag: ""}, {prop: "closeErr", name: "closeErr", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "trailer", name: "trailer", embedded: false, exported: false, typ: Header, tag: ""}, {prop: "reqTrailer", name: "reqTrailer", embedded: false, exported: false, typ: Header, tag: ""}]); http2readFrameResult.init("net/http", [{prop: "f", name: "f", embedded: false, exported: false, typ: http2Frame, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "readMore", name: "readMore", embedded: false, exported: false, typ: funcType, tag: ""}]); http2frameWriteResult.init("net/http", [{prop: "_$0", name: "_", embedded: false, exported: false, typ: http2incomparable, tag: ""}, {prop: "wr", name: "wr", embedded: false, exported: false, typ: http2FrameWriteRequest, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}]); http2requestParam.init("net/http", [{prop: "method", name: "method", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "scheme", name: "scheme", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "authority", name: "authority", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "path", name: "path", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "header", name: "header", embedded: false, exported: false, typ: Header, tag: ""}]); http2unstartedHandler.init("net/http", [{prop: "streamID", name: "streamID", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "rw", name: "rw", embedded: false, exported: false, typ: ptrType$13, tag: ""}, {prop: "req", name: "req", embedded: false, exported: false, typ: ptrType$9, tag: ""}, {prop: "handler", name: "handler", embedded: false, exported: false, typ: funcType$17, tag: ""}]); http2bodyReadMsg.init("net/http", [{prop: "st", name: "st", embedded: false, exported: false, typ: ptrType$8, tag: ""}, {prop: "n", name: "n", embedded: false, exported: false, typ: $Int, tag: ""}]); - http2requestBody.init("net/http", [{prop: "_$0", name: "_", embedded: false, exported: false, typ: http2incomparable, tag: ""}, {prop: "stream", name: "stream", embedded: false, exported: false, typ: ptrType$8, tag: ""}, {prop: "conn", name: "conn", embedded: false, exported: false, typ: ptrType$10, tag: ""}, {prop: "closeOnce", name: "closeOnce", embedded: false, exported: false, typ: sync.Once, tag: ""}, {prop: "sawEOF", name: "sawEOF", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "pipe", name: "pipe", embedded: false, exported: false, typ: ptrType$93, tag: ""}, {prop: "needsContinue", name: "needsContinue", embedded: false, exported: false, typ: $Bool, tag: ""}]); + http2requestBody.init("net/http", [{prop: "_$0", name: "_", embedded: false, exported: false, typ: http2incomparable, tag: ""}, {prop: "stream", name: "stream", embedded: false, exported: false, typ: ptrType$8, tag: ""}, {prop: "conn", name: "conn", embedded: false, exported: false, typ: ptrType$10, tag: ""}, {prop: "closeOnce", name: "closeOnce", embedded: false, exported: false, typ: sync.Once, tag: ""}, {prop: "sawEOF", name: "sawEOF", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "pipe", name: "pipe", embedded: false, exported: false, typ: ptrType$80, tag: ""}, {prop: "needsContinue", name: "needsContinue", embedded: false, exported: false, typ: $Bool, tag: ""}]); http2responseWriter.init("net/http", [{prop: "rws", name: "rws", embedded: false, exported: false, typ: ptrType$96, tag: ""}]); http2responseWriterState.init("net/http", [{prop: "stream", name: "stream", embedded: false, exported: false, typ: ptrType$8, tag: ""}, {prop: "req", name: "req", embedded: false, exported: false, typ: ptrType$9, tag: ""}, {prop: "conn", name: "conn", embedded: false, exported: false, typ: ptrType$10, tag: ""}, {prop: "bw", name: "bw", embedded: false, exported: false, typ: ptrType$11, tag: ""}, {prop: "handlerHeader", name: "handlerHeader", embedded: false, exported: false, typ: Header, tag: ""}, {prop: "snapHeader", name: "snapHeader", embedded: false, exported: false, typ: Header, tag: ""}, {prop: "trailers", name: "trailers", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "status", name: "status", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "wroteHeader", name: "wroteHeader", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "sentHeader", name: "sentHeader", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "handlerDone", name: "handlerDone", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "dirty", name: "dirty", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "sentContentLen", name: "sentContentLen", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "wroteBytes", name: "wroteBytes", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "closeNotifierMu", name: "closeNotifierMu", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "closeNotifierCh", name: "closeNotifierCh", embedded: false, exported: false, typ: chanType$10, tag: ""}]); http2chunkWriter.init("net/http", [{prop: "rws", name: "rws", embedded: false, exported: false, typ: ptrType$96, tag: ""}]); http2startPushRequest.init("net/http", [{prop: "parent", name: "parent", embedded: false, exported: false, typ: ptrType$8, tag: ""}, {prop: "method", name: "method", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "url", name: "url", embedded: false, exported: false, typ: ptrType$16, tag: ""}, {prop: "header", name: "header", embedded: false, exported: false, typ: Header, tag: ""}, {prop: "done", name: "done", embedded: false, exported: false, typ: chanType, tag: ""}]); http2Transport.init("net/http", [{prop: "DialTLSContext", name: "DialTLSContext", embedded: false, exported: true, typ: funcType$27, tag: ""}, {prop: "DialTLS", name: "DialTLS", embedded: false, exported: true, typ: funcType$28, tag: ""}, {prop: "TLSClientConfig", name: "TLSClientConfig", embedded: false, exported: true, typ: ptrType$15, tag: ""}, {prop: "ConnPool", name: "ConnPool", embedded: false, exported: true, typ: http2ClientConnPool, tag: ""}, {prop: "DisableCompression", name: "DisableCompression", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "AllowHTTP", name: "AllowHTTP", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "MaxHeaderListSize", name: "MaxHeaderListSize", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "MaxReadFrameSize", name: "MaxReadFrameSize", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "MaxDecoderHeaderTableSize", name: "MaxDecoderHeaderTableSize", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "MaxEncoderHeaderTableSize", name: "MaxEncoderHeaderTableSize", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "StrictMaxConcurrentStreams", name: "StrictMaxConcurrentStreams", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "ReadIdleTimeout", name: "ReadIdleTimeout", embedded: false, exported: true, typ: time.Duration, tag: ""}, {prop: "PingTimeout", name: "PingTimeout", embedded: false, exported: true, typ: time.Duration, tag: ""}, {prop: "WriteByteTimeout", name: "WriteByteTimeout", embedded: false, exported: true, typ: time.Duration, tag: ""}, {prop: "CountError", name: "CountError", embedded: false, exported: true, typ: funcType$23, tag: ""}, {prop: "t1", name: "t1", embedded: false, exported: false, typ: ptrType$26, tag: ""}, {prop: "connPoolOnce", name: "connPoolOnce", embedded: false, exported: false, typ: sync.Once, tag: ""}, {prop: "connPoolOrDef", name: "connPoolOrDef", embedded: false, exported: false, typ: http2ClientConnPool, tag: ""}]); - http2ClientConn.init("net/http", [{prop: "t", name: "t", embedded: false, exported: false, typ: ptrType$99, tag: ""}, {prop: "tconn", name: "tconn", embedded: false, exported: false, typ: net.Conn, tag: ""}, {prop: "tconnClosed", name: "tconnClosed", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "tlsState", name: "tlsState", embedded: false, exported: false, typ: ptrType$27, tag: ""}, {prop: "reused", name: "reused", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "singleUse", name: "singleUse", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "getConnCalled", name: "getConnCalled", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "readerDone", name: "readerDone", embedded: false, exported: false, typ: chanType$1, tag: ""}, {prop: "readerErr", name: "readerErr", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "idleTimeout", name: "idleTimeout", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "idleTimer", name: "idleTimer", embedded: false, exported: false, typ: ptrType$24, tag: ""}, {prop: "mu", name: "mu", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "cond", name: "cond", embedded: false, exported: false, typ: ptrType$47, tag: ""}, {prop: "flow", name: "flow", embedded: false, exported: false, typ: http2flow, tag: ""}, {prop: "inflow", name: "inflow", embedded: false, exported: false, typ: http2flow, tag: ""}, {prop: "doNotReuse", name: "doNotReuse", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "closing", name: "closing", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "closed", name: "closed", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "seenSettings", name: "seenSettings", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "wantSettingsAck", name: "wantSettingsAck", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "goAway", name: "goAway", embedded: false, exported: false, typ: ptrType$78, tag: ""}, {prop: "goAwayDebug", name: "goAwayDebug", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "streams", name: "streams", embedded: false, exported: false, typ: mapType$19, tag: ""}, {prop: "streamsReserved", name: "streamsReserved", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "nextStreamID", name: "nextStreamID", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "pendingRequests", name: "pendingRequests", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "pings", name: "pings", embedded: false, exported: false, typ: mapType$20, tag: ""}, {prop: "br", name: "br", embedded: false, exported: false, typ: ptrType$28, tag: ""}, {prop: "lastActive", name: "lastActive", embedded: false, exported: false, typ: time.Time, tag: ""}, {prop: "lastIdle", name: "lastIdle", embedded: false, exported: false, typ: time.Time, tag: ""}, {prop: "maxFrameSize", name: "maxFrameSize", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "maxConcurrentStreams", name: "maxConcurrentStreams", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "peerMaxHeaderListSize", name: "peerMaxHeaderListSize", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "peerMaxHeaderTableSize", name: "peerMaxHeaderTableSize", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "initialWindowSize", name: "initialWindowSize", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "reqHeaderMu", name: "reqHeaderMu", embedded: false, exported: false, typ: chanType$1, tag: ""}, {prop: "wmu", name: "wmu", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "bw", name: "bw", embedded: false, exported: false, typ: ptrType$11, tag: ""}, {prop: "fr", name: "fr", embedded: false, exported: false, typ: ptrType$68, tag: ""}, {prop: "werr", name: "werr", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "hbuf", name: "hbuf", embedded: false, exported: false, typ: bytes.Buffer, tag: ""}, {prop: "henc", name: "henc", embedded: false, exported: false, typ: ptrType$85, tag: ""}]); - http2clientStream.init("net/http", [{prop: "cc", name: "cc", embedded: false, exported: false, typ: ptrType$64, tag: ""}, {prop: "ctx", name: "ctx", embedded: false, exported: false, typ: context.Context, tag: ""}, {prop: "reqCancel", name: "reqCancel", embedded: false, exported: false, typ: chanType$2, tag: ""}, {prop: "trace", name: "trace", embedded: false, exported: false, typ: ptrType$18, tag: ""}, {prop: "ID", name: "ID", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "bufPipe", name: "bufPipe", embedded: false, exported: false, typ: http2pipe, tag: ""}, {prop: "requestedGzip", name: "requestedGzip", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "isHead", name: "isHead", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "abortOnce", name: "abortOnce", embedded: false, exported: false, typ: sync.Once, tag: ""}, {prop: "abort", name: "abort", embedded: false, exported: false, typ: chanType$1, tag: ""}, {prop: "abortErr", name: "abortErr", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "peerClosed", name: "peerClosed", embedded: false, exported: false, typ: chanType$1, tag: ""}, {prop: "donec", name: "donec", embedded: false, exported: false, typ: chanType$1, tag: ""}, {prop: "on100", name: "on100", embedded: false, exported: false, typ: chanType$1, tag: ""}, {prop: "respHeaderRecv", name: "respHeaderRecv", embedded: false, exported: false, typ: chanType$1, tag: ""}, {prop: "res", name: "res", embedded: false, exported: false, typ: ptrType$17, tag: ""}, {prop: "flow", name: "flow", embedded: false, exported: false, typ: http2flow, tag: ""}, {prop: "inflow", name: "inflow", embedded: false, exported: false, typ: http2flow, tag: ""}, {prop: "bytesRemain", name: "bytesRemain", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "readErr", name: "readErr", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "reqBody", name: "reqBody", embedded: false, exported: false, typ: io.ReadCloser, tag: ""}, {prop: "reqBodyContentLength", name: "reqBodyContentLength", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "reqBodyClosed", name: "reqBodyClosed", embedded: false, exported: false, typ: chanType$1, tag: ""}, {prop: "sentEndStream", name: "sentEndStream", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "sentHeaders", name: "sentHeaders", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "firstByte", name: "firstByte", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "pastHeaders", name: "pastHeaders", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "pastTrailers", name: "pastTrailers", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "num1xx", name: "num1xx", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "readClosed", name: "readClosed", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "readAborted", name: "readAborted", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "trailer", name: "trailer", embedded: false, exported: false, typ: Header, tag: ""}, {prop: "resTrailer", name: "resTrailer", embedded: false, exported: false, typ: ptrType$37, tag: ""}]); + http2ClientConn.init("net/http", [{prop: "t", name: "t", embedded: false, exported: false, typ: ptrType$99, tag: ""}, {prop: "tconn", name: "tconn", embedded: false, exported: false, typ: net.Conn, tag: ""}, {prop: "tconnClosed", name: "tconnClosed", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "tlsState", name: "tlsState", embedded: false, exported: false, typ: ptrType$27, tag: ""}, {prop: "reused", name: "reused", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "singleUse", name: "singleUse", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "getConnCalled", name: "getConnCalled", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "readerDone", name: "readerDone", embedded: false, exported: false, typ: chanType$1, tag: ""}, {prop: "readerErr", name: "readerErr", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "idleTimeout", name: "idleTimeout", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "idleTimer", name: "idleTimer", embedded: false, exported: false, typ: ptrType$24, tag: ""}, {prop: "mu", name: "mu", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "cond", name: "cond", embedded: false, exported: false, typ: ptrType$47, tag: ""}, {prop: "flow", name: "flow", embedded: false, exported: false, typ: http2outflow, tag: ""}, {prop: "inflow", name: "inflow", embedded: false, exported: false, typ: http2inflow, tag: ""}, {prop: "doNotReuse", name: "doNotReuse", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "closing", name: "closing", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "closed", name: "closed", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "seenSettings", name: "seenSettings", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "wantSettingsAck", name: "wantSettingsAck", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "goAway", name: "goAway", embedded: false, exported: false, typ: ptrType$77, tag: ""}, {prop: "goAwayDebug", name: "goAwayDebug", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "streams", name: "streams", embedded: false, exported: false, typ: mapType$19, tag: ""}, {prop: "streamsReserved", name: "streamsReserved", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "nextStreamID", name: "nextStreamID", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "pendingRequests", name: "pendingRequests", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "pings", name: "pings", embedded: false, exported: false, typ: mapType$20, tag: ""}, {prop: "br", name: "br", embedded: false, exported: false, typ: ptrType$28, tag: ""}, {prop: "lastActive", name: "lastActive", embedded: false, exported: false, typ: time.Time, tag: ""}, {prop: "lastIdle", name: "lastIdle", embedded: false, exported: false, typ: time.Time, tag: ""}, {prop: "maxFrameSize", name: "maxFrameSize", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "maxConcurrentStreams", name: "maxConcurrentStreams", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "peerMaxHeaderListSize", name: "peerMaxHeaderListSize", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "peerMaxHeaderTableSize", name: "peerMaxHeaderTableSize", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "initialWindowSize", name: "initialWindowSize", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "reqHeaderMu", name: "reqHeaderMu", embedded: false, exported: false, typ: chanType$1, tag: ""}, {prop: "wmu", name: "wmu", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "bw", name: "bw", embedded: false, exported: false, typ: ptrType$11, tag: ""}, {prop: "fr", name: "fr", embedded: false, exported: false, typ: ptrType$68, tag: ""}, {prop: "werr", name: "werr", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "hbuf", name: "hbuf", embedded: false, exported: false, typ: bytes.Buffer, tag: ""}, {prop: "henc", name: "henc", embedded: false, exported: false, typ: ptrType$85, tag: ""}]); + http2clientStream.init("net/http", [{prop: "cc", name: "cc", embedded: false, exported: false, typ: ptrType$64, tag: ""}, {prop: "ctx", name: "ctx", embedded: false, exported: false, typ: context.Context, tag: ""}, {prop: "reqCancel", name: "reqCancel", embedded: false, exported: false, typ: chanType$2, tag: ""}, {prop: "trace", name: "trace", embedded: false, exported: false, typ: ptrType$18, tag: ""}, {prop: "ID", name: "ID", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "bufPipe", name: "bufPipe", embedded: false, exported: false, typ: http2pipe, tag: ""}, {prop: "requestedGzip", name: "requestedGzip", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "isHead", name: "isHead", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "abortOnce", name: "abortOnce", embedded: false, exported: false, typ: sync.Once, tag: ""}, {prop: "abort", name: "abort", embedded: false, exported: false, typ: chanType$1, tag: ""}, {prop: "abortErr", name: "abortErr", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "peerClosed", name: "peerClosed", embedded: false, exported: false, typ: chanType$1, tag: ""}, {prop: "donec", name: "donec", embedded: false, exported: false, typ: chanType$1, tag: ""}, {prop: "on100", name: "on100", embedded: false, exported: false, typ: chanType$1, tag: ""}, {prop: "respHeaderRecv", name: "respHeaderRecv", embedded: false, exported: false, typ: chanType$1, tag: ""}, {prop: "res", name: "res", embedded: false, exported: false, typ: ptrType$17, tag: ""}, {prop: "flow", name: "flow", embedded: false, exported: false, typ: http2outflow, tag: ""}, {prop: "inflow", name: "inflow", embedded: false, exported: false, typ: http2inflow, tag: ""}, {prop: "bytesRemain", name: "bytesRemain", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "readErr", name: "readErr", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "reqBody", name: "reqBody", embedded: false, exported: false, typ: io.ReadCloser, tag: ""}, {prop: "reqBodyContentLength", name: "reqBodyContentLength", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "reqBodyClosed", name: "reqBodyClosed", embedded: false, exported: false, typ: chanType$1, tag: ""}, {prop: "sentEndStream", name: "sentEndStream", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "sentHeaders", name: "sentHeaders", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "firstByte", name: "firstByte", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "pastHeaders", name: "pastHeaders", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "pastTrailers", name: "pastTrailers", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "num1xx", name: "num1xx", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "readClosed", name: "readClosed", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "readAborted", name: "readAborted", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "trailer", name: "trailer", embedded: false, exported: false, typ: Header, tag: ""}, {prop: "resTrailer", name: "resTrailer", embedded: false, exported: false, typ: ptrType$37, tag: ""}]); http2stickyErrWriter.init("net/http", [{prop: "conn", name: "conn", embedded: false, exported: false, typ: net.Conn, tag: ""}, {prop: "timeout", name: "timeout", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: ptrType$81, tag: ""}]); http2noCachedConnError.init("", []); http2RoundTripOpt.init("", [{prop: "OnlyCachedConn", name: "OnlyCachedConn", embedded: false, exported: true, typ: $Bool, tag: ""}]); @@ -301682,7 +304436,7 @@ $packages["net/http"] = (function() { http2writeGoAway.init("net/http", [{prop: "maxStreamID", name: "maxStreamID", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "code", name: "code", embedded: false, exported: false, typ: http2ErrCode, tag: ""}]); http2writeData.init("net/http", [{prop: "streamID", name: "streamID", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "p", name: "p", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "endStream", name: "endStream", embedded: false, exported: false, typ: $Bool, tag: ""}]); http2handlerPanicRST.init("", [{prop: "StreamID", name: "StreamID", embedded: false, exported: true, typ: $Uint32, tag: ""}]); - http2writePingAck.init("net/http", [{prop: "pf", name: "pf", embedded: false, exported: false, typ: ptrType$77, tag: ""}]); + http2writePingAck.init("net/http", [{prop: "pf", name: "pf", embedded: false, exported: false, typ: ptrType$76, tag: ""}]); http2writeSettingsAck.init("", []); http2writeResHeaders.init("net/http", [{prop: "streamID", name: "streamID", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "httpResCode", name: "httpResCode", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "h", name: "h", embedded: false, exported: false, typ: Header, tag: ""}, {prop: "trailers", name: "trailers", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "endStream", name: "endStream", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "date", name: "date", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "contentType", name: "contentType", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "contentLength", name: "contentLength", embedded: false, exported: false, typ: $String, tag: ""}]); http2writePushPromise.init("net/http", [{prop: "streamID", name: "streamID", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "method", name: "method", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "url", name: "url", embedded: false, exported: false, typ: ptrType$16, tag: ""}, {prop: "h", name: "h", embedded: false, exported: false, typ: Header, tag: ""}, {prop: "allocatePromisedID", name: "allocatePromisedID", embedded: false, exported: false, typ: funcType$30, tag: ""}, {prop: "promisedID", name: "promisedID", embedded: false, exported: false, typ: $Uint32, tag: ""}]); @@ -301691,12 +304445,13 @@ $packages["net/http"] = (function() { http2WriteScheduler.init([{prop: "AdjustStream", name: "AdjustStream", pkg: "", typ: $funcType([$Uint32, http2PriorityParam], [], false)}, {prop: "CloseStream", name: "CloseStream", pkg: "", typ: $funcType([$Uint32], [], false)}, {prop: "OpenStream", name: "OpenStream", pkg: "", typ: $funcType([$Uint32, http2OpenStreamOptions], [], false)}, {prop: "Pop", name: "Pop", pkg: "", typ: $funcType([], [http2FrameWriteRequest, $Bool], false)}, {prop: "Push", name: "Push", pkg: "", typ: $funcType([http2FrameWriteRequest], [], false)}]); http2OpenStreamOptions.init("", [{prop: "PusherID", name: "PusherID", embedded: false, exported: true, typ: $Uint32, tag: ""}]); http2FrameWriteRequest.init("net/http", [{prop: "write", name: "write", embedded: false, exported: false, typ: http2writeFramer, tag: ""}, {prop: "stream", name: "stream", embedded: false, exported: false, typ: ptrType$8, tag: ""}, {prop: "done", name: "done", embedded: false, exported: false, typ: chanType, tag: ""}]); - http2writeQueue.init("net/http", [{prop: "s", name: "s", embedded: false, exported: false, typ: sliceType$25, tag: ""}]); + http2writeQueue.init("net/http", [{prop: "s", name: "s", embedded: false, exported: false, typ: sliceType$25, tag: ""}, {prop: "prev", name: "prev", embedded: false, exported: false, typ: ptrType$102, tag: ""}, {prop: "next", name: "next", embedded: false, exported: false, typ: ptrType$102, tag: ""}]); http2writeQueuePool.init(ptrType$102); http2PriorityWriteSchedulerConfig.init("", [{prop: "MaxClosedNodesInTree", name: "MaxClosedNodesInTree", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "MaxIdleNodesInTree", name: "MaxIdleNodesInTree", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "ThrottleOutOfOrderWrites", name: "ThrottleOutOfOrderWrites", embedded: false, exported: true, typ: $Bool, tag: ""}]); http2priorityNode.init("net/http", [{prop: "q", name: "q", embedded: false, exported: false, typ: http2writeQueue, tag: ""}, {prop: "id", name: "id", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "weight", name: "weight", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "state", name: "state", embedded: false, exported: false, typ: http2priorityNodeState, tag: ""}, {prop: "bytes", name: "bytes", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "subtreeBytes", name: "subtreeBytes", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "parent", name: "parent", embedded: false, exported: false, typ: ptrType$103, tag: ""}, {prop: "kids", name: "kids", embedded: false, exported: false, typ: ptrType$103, tag: ""}, {prop: "prev", name: "prev", embedded: false, exported: false, typ: ptrType$103, tag: ""}, {prop: "next", name: "next", embedded: false, exported: false, typ: ptrType$103, tag: ""}]); http2sortPriorityNodeSiblings.init(ptrType$103); http2priorityWriteScheduler.init("net/http", [{prop: "root", name: "root", embedded: false, exported: false, typ: http2priorityNode, tag: ""}, {prop: "nodes", name: "nodes", embedded: false, exported: false, typ: mapType$21, tag: ""}, {prop: "maxID", name: "maxID", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "closedNodes", name: "closedNodes", embedded: false, exported: false, typ: sliceType$26, tag: ""}, {prop: "idleNodes", name: "idleNodes", embedded: false, exported: false, typ: sliceType$26, tag: ""}, {prop: "maxClosedNodesInTree", name: "maxClosedNodesInTree", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "maxIdleNodesInTree", name: "maxIdleNodesInTree", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "writeThrottleLimit", name: "writeThrottleLimit", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "enableWriteThrottle", name: "enableWriteThrottle", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "tmp", name: "tmp", embedded: false, exported: false, typ: sliceType$26, tag: ""}, {prop: "queuePool", name: "queuePool", embedded: false, exported: false, typ: http2writeQueuePool, tag: ""}]); + http2roundRobinWriteScheduler.init("net/http", [{prop: "control", name: "control", embedded: false, exported: false, typ: http2writeQueue, tag: ""}, {prop: "streams", name: "streams", embedded: false, exported: false, typ: mapType$22, tag: ""}, {prop: "head", name: "head", embedded: false, exported: false, typ: ptrType$102, tag: ""}, {prop: "queuePool", name: "queuePool", embedded: false, exported: false, typ: http2writeQueuePool, tag: ""}]); noTransport.init("", []); XHRTransport.init("net/http", [{prop: "inflight", name: "inflight", embedded: false, exported: false, typ: mapType$23, tag: ""}]); Cookie.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Value", name: "Value", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Path", name: "Path", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Domain", name: "Domain", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Expires", name: "Expires", embedded: false, exported: true, typ: time.Time, tag: ""}, {prop: "RawExpires", name: "RawExpires", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "MaxAge", name: "MaxAge", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Secure", name: "Secure", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HttpOnly", name: "HttpOnly", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "SameSite", name: "SameSite", embedded: false, exported: true, typ: SameSite, tag: ""}, {prop: "Raw", name: "Raw", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Unparsed", name: "Unparsed", embedded: false, exported: true, typ: sliceType$2, tag: ""}]); @@ -301752,7 +304507,7 @@ $packages["net/http"] = (function() { $r = httpproxy.$init(); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = hpack.$init(); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = idna.$init(); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - zeroDialer = new net.Dialer.ptr(new time.Duration(0, 0), new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil), $ifaceNil, false, new time.Duration(0, 0), new time.Duration(0, 0), ptrType$1.nil, $chanNil, $throwNilPointerError, $throwNilPointerError); + zeroDialer = new net.Dialer.ptr(new time.Duration(0, 0), new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil), $ifaceNil, false, new time.Duration(0, 0), new time.Duration(0, 0), ptrType$1.nil, $chanNil, $throwNilPointerError, $throwNilPointerError, 0); bufioReaderPool = new sync.Pool.ptr(sliceType.nil, $throwNilPointerError); bufioWriter2kPool = new sync.Pool.ptr(sliceType.nil, $throwNilPointerError); bufioWriter4kPool = new sync.Pool.ptr(sliceType.nil, $throwNilPointerError); @@ -301788,6 +304543,7 @@ $packages["net/http"] = (function() { errIdleConnTimeout = errors.New("http: idle connection timeout"); errServerClosedIdle = errors.New("http: server closed idle connection"); errCallerOwnsConn = errors.New("read loop ending; caller owns writable underlying conn"); + maxWriteWaitBeforeConnReuse = new time.Duration(0, 50000000); errTimeout = new httpError.ptr("net/http: timeout awaiting response headers", true); errRequestCanceledConn = errors.New("net/http: request canceled while waiting for connection"); testHookEnterRoundTrip = nop; @@ -301834,13 +304590,13 @@ $packages["net/http"] = (function() { htmlReplacer = strings.NewReplacer(new sliceType$2(["&", "&", "<", "<", ">", ">", "\"", """, "'", "'"])); $pkg.DefaultServeMux = defaultServeMux; stateName = $makeMap(ConnState.keyFor, [{ k: 0, v: "new" }, { k: 1, v: "active" }, { k: 2, v: "idle" }, { k: 3, v: "hijacked" }, { k: 4, v: "closed" }]); - silenceSemWarnContextKey = new contextKey.ptr("silence-semicolons"); $pkg.ErrServerClosed = errors.New("http: Server closed"); http2server = godebug.New("http2server"); $pkg.ErrHandlerTimeout = errors.New("http: Handler timeout"); uniqNameNext = new $global.Map(); uint8Array = $clone($clone(js$1.Global(), js$1.Value).Get("Uint8Array"), js$1.Value); jsFetchMissing = $clone($clone(js$1.Global(), js$1.Value).Get("fetch"), js$1.Value).IsUndefined(); + jsFetchDisabled = ($clone($clone(js$1.Global(), js$1.Value).Get("process"), js$1.Value).Type() === 6) && strings.HasPrefix($clone($clone($clone(js$1.Global(), js$1.Value).Get("process"), js$1.Value).Get("argv0"), js$1.Value).String(), "node"); errClosed = errors.New("net/http: reader is closed"); respExcludeHeader = $makeMap($String.keyFor, [{ k: "Content-Length", v: true }, { k: "Transfer-Encoding", v: true }, { k: "Trailer", v: true }]); $pkg.ErrNoLocation = errors.New("http: no Location header in response"); @@ -301878,6 +304634,7 @@ $packages["net/http"] = (function() { http2padZeros = $makeSlice(sliceType$3, 255); http2frameName = $makeMap(http2FrameType.keyFor, [{ k: 0, v: "DATA" }, { k: 1, v: "HEADERS" }, { k: 2, v: "PRIORITY" }, { k: 3, v: "RST_STREAM" }, { k: 4, v: "SETTINGS" }, { k: 5, v: "PUSH_PROMISE" }, { k: 6, v: "PING" }, { k: 7, v: "GOAWAY" }, { k: 8, v: "WINDOW_UPDATE" }, { k: 9, v: "CONTINUATION" }]); http2flagName = $makeMap(http2FrameType.keyFor, [{ k: 0, v: $makeMap(http2Flags.keyFor, [{ k: 1, v: "END_STREAM" }, { k: 8, v: "PADDED" }]) }, { k: 1, v: $makeMap(http2Flags.keyFor, [{ k: 1, v: "END_STREAM" }, { k: 4, v: "END_HEADERS" }, { k: 8, v: "PADDED" }, { k: 32, v: "PRIORITY" }]) }, { k: 4, v: $makeMap(http2Flags.keyFor, [{ k: 1, v: "ACK" }]) }, { k: 6, v: $makeMap(http2Flags.keyFor, [{ k: 1, v: "ACK" }]) }, { k: 9, v: $makeMap(http2Flags.keyFor, [{ k: 4, v: "END_HEADERS" }]) }, { k: 5, v: $makeMap(http2Flags.keyFor, [{ k: 4, v: "END_HEADERS" }, { k: 8, v: "PADDED" }]) }]); + http2frameParsers = $makeMap(http2FrameType.keyFor, [{ k: 0, v: http2parseDataFrame }, { k: 1, v: http2parseHeadersFrame }, { k: 2, v: http2parsePriorityFrame }, { k: 3, v: http2parseRSTStreamFrame }, { k: 4, v: http2parseSettingsFrame }, { k: 5, v: http2parsePushPromise }, { k: 6, v: http2parsePingFrame }, { k: 7, v: http2parseGoAwayFrame }, { k: 8, v: http2parseWindowUpdateFrame }, { k: 9, v: http2parseContinuationFrame }]); http2fhBytes = new sync.Pool.ptr(sliceType.nil, (function func8() { var buf, buf$24ptr; buf = $makeSlice(sliceType$3, 9); @@ -301898,7 +304655,6 @@ $packages["net/http"] = (function() { })); http2clientPreface = (new sliceType$3($stringToBytes("PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n"))); http2stateName = $toNativeArray($kindString, ["Idle", "Open", "HalfClosedLocal", "HalfClosedRemote", "Closed"]); - http2frameParsers = $makeMap(http2FrameType.keyFor, [{ k: 0, v: http2parseDataFrame }, { k: 1, v: http2parseHeadersFrame }, { k: 2, v: http2parsePriorityFrame }, { k: 3, v: http2parseRSTStreamFrame }, { k: 4, v: http2parseSettingsFrame }, { k: 5, v: http2parsePushPromise }, { k: 6, v: http2parsePingFrame }, { k: 7, v: http2parseGoAwayFrame }, { k: 8, v: http2parseWindowUpdateFrame }, { k: 9, v: http2parseContinuationFrame }]); http2settingName = $makeMap(http2SettingID.keyFor, [{ k: 1, v: "HEADER_TABLE_SIZE" }, { k: 2, v: "ENABLE_PUSH" }, { k: 3, v: "MAX_CONCURRENT_STREAMS" }, { k: 4, v: "INITIAL_WINDOW_SIZE" }, { k: 5, v: "MAX_FRAME_SIZE" }, { k: 6, v: "MAX_HEADER_LIST_SIZE" }]); http2bufWriterPool = new sync.Pool.ptr(sliceType.nil, (function func10() { return bufio.NewWriterSize($ifaceNil, 4096); @@ -301967,6 +304723,7 @@ $packages["net/http"] = (function() { errMissingSeek = errors.New("io.File missing Seek method"); errMissingReadDir = errors.New("io.File directory missing ReadDir method"); cookieNameSanitizer = strings.NewReplacer(new sliceType$2(["\n", "-", "\r", "-"])); + $pkg.ErrSchemeMismatch = errors.New("http: server gave HTTP response to HTTPS client"); $pkg.ErrUseLastResponse = errors.New("net/http: use last response"); $r = init(); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; @@ -301975,7 +304732,7 @@ $packages["net/http"] = (function() { return $pkg; })(); $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { - var $pkg = {}, $init, bytes, base32, base64, fmt, ast, cache, compat, config, css_parser, fs, graph, helpers, js_ast, js_lexer, js_parser, logger, resolver, runtime, sourcemap, xxhash, rand, http, url, sort, strings, sync, syscall, time, unicode, utf8, scannerFile, DataForSourceMap, Bundle, parseArgs, parseResult, globResolveResult, tlaCheck, loaderPluginResult, scanner, visitedFile, EntryPoint, inputKind, Linker, runtimeCacheKey, runtimeCache, cacheEntry, cacheKey, entryPointInfo, entryPointToParse, ptrType, sliceType, ptrType$1, sliceType$1, ptrType$2, sliceType$2, ptrType$3, sliceType$3, ptrType$4, ptrType$5, sliceType$4, ptrType$6, ptrType$7, ptrType$8, sliceType$5, sliceType$6, ptrType$9, sliceType$7, sliceType$8, ptrType$10, ptrType$11, sliceType$9, sliceType$10, arrayType, sliceType$11, sliceType$12, sliceType$13, sliceType$14, sliceType$15, ptrType$12, ptrType$13, ptrType$14, ptrType$15, ptrType$16, ptrType$17, sliceType$16, ptrType$18, ptrType$19, ptrType$20, arrayType$1, ptrType$21, ptrType$22, ptrType$23, sliceType$17, ptrType$24, ptrType$25, ptrType$26, sliceType$18, sliceType$19, sliceType$20, sliceType$21, sliceType$22, sliceType$23, sliceType$24, ptrType$27, sliceType$25, sliceType$26, sliceType$27, sliceType$28, ptrType$28, sliceType$29, sliceType$30, sliceType$31, ptrType$29, ptrType$30, sliceType$32, sliceType$33, sliceType$34, sliceType$35, sliceType$36, mapType, ptrType$31, funcType, ptrType$32, chanType, chanType$1, mapType$1, mapType$2, sliceType$37, ptrType$33, mapType$3, ptrType$34, mapType$4, funcType$1, globalRuntimeCache, parseFile, ResolveFailureErrorTextSuggestionNotes, isASCIIOnly, guessMimeType, extractSourceMapFromComment, sanitizeLocation, logPluginMessages, RunOnResolvePlugins, runOnLoadPlugins, canonicalFileSystemPathForWindows, HashForFileName, generateUniqueKeyPrefix, ScanBundle, lowestCommonAncestorDirectory, DefaultExtensionToLoaderMap, applyOptionDefaults, fixInvalidUnsupportedJSFeatureOverrides, findReachableFiles, PathRelativeToOutbase, sanitizeFilePathForVirtualModulePath; + var $pkg = {}, $init, bytes, base32, base64, fmt, ast, cache, compat, config, css_parser, fs, graph, helpers, js_ast, js_lexer, js_parser, logger, resolver, runtime, sourcemap, xxhash, rand, http, url, sort, strings, sync, syscall, time, unicode, utf8, scannerFile, DataForSourceMap, Bundle, parseArgs, parseResult, globResolveResult, tlaCheck, loaderPluginResult, scanner, visitedFile, EntryPoint, inputKind, Linker, runtimeCacheKey, runtimeCache, cacheEntry, cacheKey, entryPointInfo, entryPointToParse, ptrType, sliceType, ptrType$1, sliceType$1, ptrType$2, sliceType$2, ptrType$3, sliceType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, sliceType$4, ptrType$8, ptrType$9, ptrType$10, sliceType$5, sliceType$6, sliceType$7, sliceType$8, ptrType$11, ptrType$12, sliceType$9, sliceType$10, arrayType, sliceType$11, sliceType$12, sliceType$13, sliceType$14, sliceType$15, ptrType$13, ptrType$14, ptrType$15, ptrType$16, ptrType$17, ptrType$18, ptrType$19, sliceType$16, ptrType$20, ptrType$21, ptrType$22, arrayType$1, ptrType$23, ptrType$24, ptrType$25, sliceType$17, ptrType$26, ptrType$27, ptrType$28, sliceType$18, sliceType$19, sliceType$20, sliceType$21, sliceType$22, sliceType$23, sliceType$24, ptrType$29, ptrType$30, sliceType$25, sliceType$26, sliceType$27, ptrType$31, sliceType$28, ptrType$32, sliceType$29, sliceType$30, sliceType$31, ptrType$33, ptrType$34, ptrType$35, sliceType$32, sliceType$33, ptrType$36, sliceType$34, ptrType$37, ptrType$38, sliceType$35, sliceType$36, mapType, ptrType$39, funcType, ptrType$40, chanType, chanType$1, mapType$1, mapType$2, sliceType$37, ptrType$41, mapType$3, ptrType$42, mapType$4, funcType$1, globalRuntimeCache, parseFile, ResolveFailureErrorTextSuggestionNotes, isASCIIOnly, guessMimeType, extractSourceMapFromComment, sanitizeLocation, logPluginMessages, RunOnResolvePlugins, runOnLoadPlugins, canonicalFileSystemPathForWindows, HashForFileName, generateUniqueKeyPrefix, ScanBundle, lowestCommonAncestorDirectory, DefaultExtensionToLoaderMap, applyOptionDefaults, fixInvalidUnsupportedJSFeatureOverrides, findReachableFiles, PathRelativeToOutbase, sanitizeFilePathForVirtualModulePath; bytes = $packages["bytes"]; base32 = $packages["encoding/base32"]; base64 = $packages["encoding/base64"]; @@ -302033,10 +304790,10 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { if (arguments.length === 0) { this.uniqueKeyPrefix = ""; this.fs = $ifaceNil; - this.res = ptrType$21.nil; + this.res = ptrType$23.nil; this.files = sliceType$23.nil; this.entryPoints = sliceType$24.nil; - this.options = new config.Options.ptr(new js_ast.ModuleTypeData.ptr(ptrType$9.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0), ptrType$24.nil, ptrType$20.nil, ptrType$25.nil, ptrType$25.nil, ptrType$26.nil, $throwNilPointerError, "", sliceType$5.nil, sliceType$5.nil, sliceType$5.nil, sliceType$5.nil, sliceType$5.nil, new config.ExternalSettings.ptr(new config.ExternalMatchers.ptr(false, sliceType$18.nil), new config.ExternalMatchers.ptr(false, sliceType$18.nil)), false, false, "", "", "", "", "", sliceType$5.nil, "", "", false, "", sliceType$5.nil, sliceType$19.nil, sliceType$20.nil, "", "", "", "", sliceType$21.nil, sliceType$21.nil, sliceType$21.nil, sliceType$22.nil, "", ptrType.nil, new config.JSXOptions.ptr(new config.DefineExpr.ptr($ifaceNil, sliceType$5.nil, new ast.Index32.ptr(0)), new config.DefineExpr.ptr($ifaceNil, sliceType$5.nil, new ast.Index32.ptr(0)), false, false, false, "", false, false), 0, false, new compat.JSFeature(0, 0), 0, new compat.JSFeature(0, 0), new compat.JSFeature(0, 0), 0, 0, new config.TSOptions.ptr(new config.TSConfig.ptr(0, 0, 0, 0, 0, 0), false, false), 0, false, false, false, false, false, false, false, false, 0, false, false, false, false, false, false, false, false, false, 0, 0, false, 0, false); + this.options = new config.Options.ptr(new js_ast.ModuleTypeData.ptr(ptrType$5.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0), ptrType$26.nil, ptrType$22.nil, ptrType$27.nil, ptrType$27.nil, ptrType$28.nil, $throwNilPointerError, "", sliceType$5.nil, sliceType$5.nil, sliceType$5.nil, sliceType$5.nil, sliceType$5.nil, new config.ExternalSettings.ptr(new config.ExternalMatchers.ptr(false, sliceType$18.nil), new config.ExternalMatchers.ptr(false, sliceType$18.nil)), false, false, "", "", "", "", "", sliceType$5.nil, "", "", false, "", sliceType$5.nil, sliceType$19.nil, sliceType$20.nil, "", "", "", "", sliceType$21.nil, sliceType$21.nil, sliceType$21.nil, sliceType$22.nil, "", ptrType.nil, new config.JSXOptions.ptr(new config.DefineExpr.ptr($ifaceNil, sliceType$5.nil, new ast.Index32.ptr(0)), new config.DefineExpr.ptr($ifaceNil, sliceType$5.nil, new ast.Index32.ptr(0)), false, false, false, "", false, false), 0, false, new compat.JSFeature(0, 0), 0, new compat.JSFeature(0, 0), new compat.JSFeature(0, 0), 0, 0, new config.TSOptions.ptr(new config.TSConfig.ptr(0, 0, 0, 0, 0, 0), false, false), 0, false, false, false, false, false, false, false, false, 0, false, false, false, false, false, false, false, false, false, 0, 0, false, 0, false); return; } this.uniqueKeyPrefix = uniqueKeyPrefix_; @@ -302051,10 +304808,10 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { if (arguments.length === 0) { this.fs = $ifaceNil; this.log = new logger.Log.ptr($throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, 0, false); - this.res = ptrType$21.nil; - this.caches = ptrType$22.nil; + this.res = ptrType$23.nil; + this.caches = ptrType$24.nil; this.prettyPath = ""; - this.importSource = ptrType$9.nil; + this.importSource = ptrType$5.nil; this.importWith = ptrType$4.nil; this.sideEffects = new graph.SideEffects.ptr(ptrType$3.nil, 0); this.pluginData = $ifaceNil; @@ -302062,7 +304819,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { this.inject = $chanNil; this.uniqueKeyPrefix = ""; this.keyPath = new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0); - this.options = new config.Options.ptr(new js_ast.ModuleTypeData.ptr(ptrType$9.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0), ptrType$24.nil, ptrType$20.nil, ptrType$25.nil, ptrType$25.nil, ptrType$26.nil, $throwNilPointerError, "", sliceType$5.nil, sliceType$5.nil, sliceType$5.nil, sliceType$5.nil, sliceType$5.nil, new config.ExternalSettings.ptr(new config.ExternalMatchers.ptr(false, sliceType$18.nil), new config.ExternalMatchers.ptr(false, sliceType$18.nil)), false, false, "", "", "", "", "", sliceType$5.nil, "", "", false, "", sliceType$5.nil, sliceType$19.nil, sliceType$20.nil, "", "", "", "", sliceType$21.nil, sliceType$21.nil, sliceType$21.nil, sliceType$22.nil, "", ptrType.nil, new config.JSXOptions.ptr(new config.DefineExpr.ptr($ifaceNil, sliceType$5.nil, new ast.Index32.ptr(0)), new config.DefineExpr.ptr($ifaceNil, sliceType$5.nil, new ast.Index32.ptr(0)), false, false, false, "", false, false), 0, false, new compat.JSFeature(0, 0), 0, new compat.JSFeature(0, 0), new compat.JSFeature(0, 0), 0, 0, new config.TSOptions.ptr(new config.TSConfig.ptr(0, 0, 0, 0, 0, 0), false, false), 0, false, false, false, false, false, false, false, false, 0, false, false, false, false, false, false, false, false, false, 0, 0, false, 0, false); + this.options = new config.Options.ptr(new js_ast.ModuleTypeData.ptr(ptrType$5.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0), ptrType$26.nil, ptrType$22.nil, ptrType$27.nil, ptrType$27.nil, ptrType$28.nil, $throwNilPointerError, "", sliceType$5.nil, sliceType$5.nil, sliceType$5.nil, sliceType$5.nil, sliceType$5.nil, new config.ExternalSettings.ptr(new config.ExternalMatchers.ptr(false, sliceType$18.nil), new config.ExternalMatchers.ptr(false, sliceType$18.nil)), false, false, "", "", "", "", "", sliceType$5.nil, "", "", false, "", sliceType$5.nil, sliceType$19.nil, sliceType$20.nil, "", "", "", "", sliceType$21.nil, sliceType$21.nil, sliceType$21.nil, sliceType$22.nil, "", ptrType.nil, new config.JSXOptions.ptr(new config.DefineExpr.ptr($ifaceNil, sliceType$5.nil, new ast.Index32.ptr(0)), new config.DefineExpr.ptr($ifaceNil, sliceType$5.nil, new ast.Index32.ptr(0)), false, false, false, "", false, false), 0, false, new compat.JSFeature(0, 0), 0, new compat.JSFeature(0, 0), new compat.JSFeature(0, 0), 0, 0, new config.TSOptions.ptr(new config.TSConfig.ptr(0, 0, 0, 0, 0, 0), false, false), 0, false, false, false, false, false, false, false, false, 0, false, false, false, false, false, false, false, false, false, 0, 0, false, 0, false); this.importPathRange = new logger.Range.ptr(new logger.Loc.ptr(0), 0); this.sourceIndex = 0; this.skipResolve = false; @@ -302147,14 +304904,14 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { if (arguments.length === 0) { this.log = new logger.Log.ptr($throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, 0, false); this.fs = $ifaceNil; - this.res = ptrType$21.nil; - this.caches = ptrType$22.nil; - this.timer = ptrType$23.nil; + this.res = ptrType$23.nil; + this.caches = ptrType$24.nil; + this.timer = ptrType$25.nil; this.uniqueKeyPrefix = ""; this.results = sliceType$17.nil; this.visited = false; this.resultChannel = $chanNil; - this.options = new config.Options.ptr(new js_ast.ModuleTypeData.ptr(ptrType$9.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0), ptrType$24.nil, ptrType$20.nil, ptrType$25.nil, ptrType$25.nil, ptrType$26.nil, $throwNilPointerError, "", sliceType$5.nil, sliceType$5.nil, sliceType$5.nil, sliceType$5.nil, sliceType$5.nil, new config.ExternalSettings.ptr(new config.ExternalMatchers.ptr(false, sliceType$18.nil), new config.ExternalMatchers.ptr(false, sliceType$18.nil)), false, false, "", "", "", "", "", sliceType$5.nil, "", "", false, "", sliceType$5.nil, sliceType$19.nil, sliceType$20.nil, "", "", "", "", sliceType$21.nil, sliceType$21.nil, sliceType$21.nil, sliceType$22.nil, "", ptrType.nil, new config.JSXOptions.ptr(new config.DefineExpr.ptr($ifaceNil, sliceType$5.nil, new ast.Index32.ptr(0)), new config.DefineExpr.ptr($ifaceNil, sliceType$5.nil, new ast.Index32.ptr(0)), false, false, false, "", false, false), 0, false, new compat.JSFeature(0, 0), 0, new compat.JSFeature(0, 0), new compat.JSFeature(0, 0), 0, 0, new config.TSOptions.ptr(new config.TSConfig.ptr(0, 0, 0, 0, 0, 0), false, false), 0, false, false, false, false, false, false, false, false, 0, false, false, false, false, false, false, false, false, false, 0, 0, false, 0, false); + this.options = new config.Options.ptr(new js_ast.ModuleTypeData.ptr(ptrType$5.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0), ptrType$26.nil, ptrType$22.nil, ptrType$27.nil, ptrType$27.nil, ptrType$28.nil, $throwNilPointerError, "", sliceType$5.nil, sliceType$5.nil, sliceType$5.nil, sliceType$5.nil, sliceType$5.nil, new config.ExternalSettings.ptr(new config.ExternalMatchers.ptr(false, sliceType$18.nil), new config.ExternalMatchers.ptr(false, sliceType$18.nil)), false, false, "", "", "", "", "", sliceType$5.nil, "", "", false, "", sliceType$5.nil, sliceType$19.nil, sliceType$20.nil, "", "", "", "", sliceType$21.nil, sliceType$21.nil, sliceType$21.nil, sliceType$22.nil, "", ptrType.nil, new config.JSXOptions.ptr(new config.DefineExpr.ptr($ifaceNil, sliceType$5.nil, new ast.Index32.ptr(0)), new config.DefineExpr.ptr($ifaceNil, sliceType$5.nil, new ast.Index32.ptr(0)), false, false, false, "", false, false), 0, false, new compat.JSFeature(0, 0), 0, new compat.JSFeature(0, 0), new compat.JSFeature(0, 0), 0, 0, new config.TSOptions.ptr(new config.TSConfig.ptr(0, 0, 0, 0, 0, 0), false, false), 0, false, false, false, false, false, false, false, false, 0, false, false, false, false, false, false, false, false, false, 0, 0, false, 0, false); this.remaining = 0; return; } @@ -302287,18 +305044,19 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { ptrType$3 = $ptrType(resolver.SideEffectsData); sliceType$3 = $sliceType($emptyInterface); ptrType$4 = $ptrType(ast.ImportAssertOrWith); - ptrType$5 = $ptrType(logger.LineColumnTracker); + ptrType$5 = $ptrType(logger.Source); + ptrType$6 = $ptrType(ast.AssertOrWithEntry); + ptrType$7 = $ptrType(logger.LineColumnTracker); sliceType$4 = $sliceType(logger.MsgData); - ptrType$6 = $ptrType(logger.MsgLocation); - ptrType$7 = $ptrType(graph.ExportData); - ptrType$8 = $ptrType(helpers.TypoDetector); + ptrType$8 = $ptrType(logger.MsgLocation); + ptrType$9 = $ptrType(graph.ExportData); + ptrType$10 = $ptrType(helpers.TypoDetector); sliceType$5 = $sliceType($String); sliceType$6 = $sliceType(ast.Ref); - ptrType$9 = $ptrType(logger.Source); sliceType$7 = $sliceType(js_ast.Part); sliceType$8 = $sliceType(ast.Symbol); - ptrType$10 = $ptrType(js_ast.Scope); - ptrType$11 = $ptrType(ast.CharFreq); + ptrType$11 = $ptrType(js_ast.Scope); + ptrType$12 = $ptrType(ast.CharFreq); sliceType$9 = $sliceType(ast.ImportRecord); sliceType$10 = $sliceType($Uint32); arrayType = $arrayType($Uint32, 4); @@ -302307,24 +305065,25 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { sliceType$13 = $sliceType(sliceType$5); sliceType$14 = $sliceType($Uint8); sliceType$15 = $sliceType($Uint16); - ptrType$12 = $ptrType(sliceType$9); - ptrType$13 = $ptrType(ast.GlobPattern); - ptrType$14 = $ptrType(logger.Msg); - ptrType$15 = $ptrType(graph.JSRepr); - ptrType$16 = $ptrType(graph.CSSRepr); - ptrType$17 = $ptrType($String); + ptrType$13 = $ptrType(sliceType$9); + ptrType$14 = $ptrType(ast.GlobPattern); + ptrType$15 = $ptrType(ast.ImportRecord); + ptrType$16 = $ptrType(logger.Msg); + ptrType$17 = $ptrType(graph.JSRepr); + ptrType$18 = $ptrType(graph.CSSRepr); + ptrType$19 = $ptrType($String); sliceType$16 = $sliceType(sourcemap.SourceContent); - ptrType$18 = $ptrType(fs.DifferentCase); - ptrType$19 = $ptrType(config.TSConfig); - ptrType$20 = $ptrType(config.TSAlwaysStrict); + ptrType$20 = $ptrType(fs.DifferentCase); + ptrType$21 = $ptrType(config.TSConfig); + ptrType$22 = $ptrType(config.TSAlwaysStrict); arrayType$1 = $arrayType($Uint8, 12); - ptrType$21 = $ptrType(resolver.Resolver); - ptrType$22 = $ptrType(cache.CacheSet); - ptrType$23 = $ptrType(helpers.Timer); + ptrType$23 = $ptrType(resolver.Resolver); + ptrType$24 = $ptrType(cache.CacheSet); + ptrType$25 = $ptrType(helpers.Timer); sliceType$17 = $sliceType(parseResult); - ptrType$24 = $ptrType(config.ProcessedDefines); - ptrType$25 = $ptrType($packages["regexp"].Regexp); - ptrType$26 = $ptrType(config.CancelFlag); + ptrType$26 = $ptrType(config.ProcessedDefines); + ptrType$27 = $ptrType($packages["regexp"].Regexp); + ptrType$28 = $ptrType(config.CancelFlag); sliceType$18 = $sliceType(config.WildcardPattern); sliceType$19 = $sliceType(config.InjectedDefine); sliceType$20 = $sliceType(config.InjectedFile); @@ -302332,38 +305091,44 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { sliceType$22 = $sliceType(config.Plugin); sliceType$23 = $sliceType(scannerFile); sliceType$24 = $sliceType(graph.EntryPoint); - ptrType$27 = $ptrType(fs.Entry); + ptrType$29 = $ptrType(fs.Entry); + ptrType$30 = $ptrType(EntryPoint); sliceType$25 = $sliceType(entryPointInfo); sliceType$26 = $sliceType(resolver.ResolveResult); sliceType$27 = $sliceType(entryPointToParse); + ptrType$31 = $ptrType(graph.EntryPoint); sliceType$28 = $sliceType(js_ast.Property); - ptrType$28 = $ptrType(js_ast.ClassStaticBlock); + ptrType$32 = $ptrType(js_ast.ClassStaticBlock); sliceType$29 = $sliceType(js_ast.Decorator); sliceType$30 = $sliceType(js_ast.Arg); sliceType$31 = $sliceType(js_ast.Stmt); - ptrType$29 = $ptrType(strings.Builder); - ptrType$30 = $ptrType(graph.CopyRepr); + ptrType$33 = $ptrType(parseResult); + ptrType$34 = $ptrType(strings.Builder); + ptrType$35 = $ptrType(graph.CopyRepr); sliceType$32 = $sliceType(graph.InputFile); sliceType$33 = $sliceType(sliceType$2); + ptrType$36 = $ptrType(graph.InputFile); sliceType$34 = $sliceType(DataForSourceMap); + ptrType$37 = $ptrType(scannerFile); + ptrType$38 = $ptrType(DataForSourceMap); sliceType$35 = $sliceType(sliceType$14); sliceType$36 = $sliceType(sourcemap.LineOffsetTable); mapType = $mapType($String, $emptyInterface); - ptrType$31 = $ptrType(config.Options); + ptrType$39 = $ptrType(config.Options); funcType = $funcType([], [sliceType$34], false); - ptrType$32 = $ptrType(Bundle); + ptrType$40 = $ptrType(Bundle); chanType = $chanType(parseResult, false, false); chanType$1 = $chanType(config.InjectedFile, false, false); mapType$1 = $mapType($Uint32, globResolveResult); mapType$2 = $mapType($String, resolver.ResolveResult); sliceType$37 = $sliceType(EntryPoint); - ptrType$33 = $ptrType(scanner); + ptrType$41 = $ptrType(scanner); mapType$3 = $mapType(logger.Path, visitedFile); - ptrType$34 = $ptrType(runtimeCache); + ptrType$42 = $ptrType(runtimeCache); mapType$4 = $mapType(runtimeCacheKey, js_ast.AST); funcType$1 = $funcType([], [$Uint32], false); parseFile = function parseFile$1(args) { - var {_1, _2, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _entry, _entry$1, _entry$2, _entry$3, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _key, _key$1, _key$2, _key$3, _key$4, _key$5, _key$6, _keys, _keys$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _size, _size$1, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, absResolveDir, alias, alias$1, aliases, args, ast$1, ast$10, ast$11, ast$2, ast$3, ast$4, ast$5, ast$6, ast$7, ast$8, ast$9, attr, attrs, base, cacheKey$1, contents, contents$1, data, debug, didLogError, encoded, encoded$1, encoded$2, entry, entry$1, err, err$1, errorRange, errorText, exports, expr, expr$1, expr$2, expr$3, expr$4, expr$5, ext, helper, i, i$1, importRecordIndex, isCopyLoader, key, loader, log, message, mimeType, mimeType$1, msg, msg$1, msgs, next, note, notes, ok, ok$1, ok$2, ok$3, ok$4, ok$5, ok$6, ok$7, ok$8, path, pathForIdentifierName, pluginData, pluginName, prettyPath, prettyPath$1, r, record, records, recordsPtr, relative, repr, repr$1, repr$2, resolveResult, resolverCache, result, result$1, result$2, results, slice, source, source$1, sourceMap, sourceMapComment, sourceURL, stdin, suggestion, text, text$1, tracker, tracker$1, tracker$2, tracker$3, uniqueKey, uniqueKey$1, uniqueKeyPath, uniqueKeyPath$1, url$1, x, x$1, x$2, x$3, x$4, x$5, x$6, $s, $deferred, $r, $c} = $restore(this, {args}); + var {_1, _2, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _entry, _entry$1, _entry$2, _entry$3, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _key, _key$1, _key$2, _key$3, _key$4, _key$5, _key$6, _keys, _keys$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _size, _size$1, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, absResolveDir, alias, alias$1, aliases, args, ast$1, ast$10, ast$11, ast$2, ast$3, ast$4, ast$5, ast$6, ast$7, ast$8, ast$9, attr, attrs, base, cacheKey$1, contents, contents$1, data, debug, didLogError, encoded, encoded$1, encoded$2, entry, entry$1, err, err$1, errorRange, errorText, exports, expr, expr$1, expr$2, expr$3, expr$4, expr$5, ext, helper, i, i$1, importRecordIndex, isCopyLoader, key, loader, log, message, mimeType, mimeType$1, msg, msg$1, msgs, next, note, notes, ok, ok$1, ok$2, ok$3, ok$4, ok$5, ok$6, ok$7, ok$8, path, pathForIdentifierName, pluginData, pluginName, prettyPath, prettyPath$1, r, record, records, recordsPtr, relative, repr, repr$1, repr$2, resolveResult, resolverCache, result, result$1, result$2, results, slice, source, source$1, sourceMap, sourceMapComment, sourceURL, stdin, suggestion, text, text$1, tracker, tracker$1, tracker$2, tracker$3, uniqueKey, uniqueKey$1, uniqueKeyPath, uniqueKeyPath$1, url$1, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, $s, $deferred, $r, $c} = $restore(this, {args}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); args = [args]; result = [result]; @@ -302460,7 +305225,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { /* } */ case 19: r = $clone(args[0].importPathRange, logger.Range); if (!(args[0].importWith === ptrType$4.nil)) { - logger.Range.copy(r, js_lexer.RangeOfImportAssertOrWith($clone(args[0].importSource, logger.Source), $clone(ast.FindAssertOrWithEntry(args[0].importWith.Entries, attr.Key), ast.AssertOrWithEntry), errorRange)); + logger.Range.copy(r, js_lexer.RangeOfImportAssertOrWith($clone((x = args[0].importSource, (x === ptrType$5.nil && $throwNilPointerError(), x)), logger.Source), $clone((x$1 = ast.FindAssertOrWithEntry(args[0].importWith.Entries, attr.Key), (x$1 === ptrType$6.nil && $throwNilPointerError(), x$1)), ast.AssertOrWithEntry), errorRange)); } tracker$3[0] = $clone(logger.MakeLineColumnTracker(args[0].importSource), logger.LineColumnTracker); $r = $clone(args[0].log, logger.Log).AddError(tracker$3[0], $clone(r, logger.Range), errorText); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } @@ -302484,12 +305249,12 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { /* */ if (!($interfaceIsEqual(r$1, $ifaceNil))) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!($interfaceIsEqual(r$1, $ifaceNil))) { */ case 1: - _arg = ptrType$5.nil; + _arg = ptrType$7.nil; _arg$1 = $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range); _r$4 = fmt.Sprintf("panic: %v (while parsing %q)", new sliceType$3([r$1, new $String(source[0].PrettyPath)])); /* */ $s = 3; case 3: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _arg$2 = _r$4; _r$5 = helpers.PrettyPrintedStack(); /* */ $s = 4; case 4: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _arg$3 = new sliceType$4([$clone(new logger.MsgData.ptr($ifaceNil, ptrType$6.nil, _r$5, false), logger.MsgData)]); + _arg$3 = new sliceType$4([$clone(new logger.MsgData.ptr($ifaceNil, ptrType$8.nil, _r$5, false), logger.MsgData)]); $r = $clone(args[0].log, logger.Log).AddErrorWithNotes(_arg, _arg$1, _arg$2, _arg$3); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = $send(args[0].results, $clone($clone(result[0], parseResult), parseResult)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 2: @@ -302518,7 +305283,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { if (ast$1.Parts.$length <= 1) { result[0].file.inputFile.SideEffects.Kind = 2; } - result[0].file.inputFile.Repr = new graph.JSRepr.ptr(new graph.JSReprMeta.ptr(false, false, false, ptrType$7.nil, ptrType$8.nil, sliceType$5.nil, false, sliceType$6.nil, new ast.Index32.ptr(0), new ast.Index32.ptr(0), false, 0, false, false, false, false), $clone(ast$1, js_ast.AST), new ast.Index32.ptr(0)); + result[0].file.inputFile.Repr = new graph.JSRepr.ptr(new graph.JSReprMeta.ptr(false, false, false, ptrType$9.nil, ptrType$10.nil, sliceType$5.nil, false, sliceType$6.nil, new ast.Index32.ptr(0), new ast.Index32.ptr(0), false, 0, false, false, false, false), $clone(ast$1, js_ast.AST), new ast.Index32.ptr(0)); result[0].ok = ok$2; $s = 41; continue; /* } else if (_1 === (13)) { */ case 29: @@ -302530,7 +305295,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { if (ast$2.Parts.$length <= 1) { result[0].file.inputFile.SideEffects.Kind = 2; } - result[0].file.inputFile.Repr = new graph.JSRepr.ptr(new graph.JSReprMeta.ptr(false, false, false, ptrType$7.nil, ptrType$8.nil, sliceType$5.nil, false, sliceType$6.nil, new ast.Index32.ptr(0), new ast.Index32.ptr(0), false, 0, false, false, false, false), $clone(ast$2, js_ast.AST), new ast.Index32.ptr(0)); + result[0].file.inputFile.Repr = new graph.JSRepr.ptr(new graph.JSReprMeta.ptr(false, false, false, ptrType$9.nil, ptrType$10.nil, sliceType$5.nil, false, sliceType$6.nil, new ast.Index32.ptr(0), new ast.Index32.ptr(0), false, 0, false, false, false, false), $clone(ast$2, js_ast.AST), new ast.Index32.ptr(0)); result[0].ok = ok$3; $s = 41; continue; /* } else if ((_1 === (16)) || (_1 === (17))) { */ case 30: @@ -302543,7 +305308,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { if (ast$3.Parts.$length <= 1) { result[0].file.inputFile.SideEffects.Kind = 2; } - result[0].file.inputFile.Repr = new graph.JSRepr.ptr(new graph.JSReprMeta.ptr(false, false, false, ptrType$7.nil, ptrType$8.nil, sliceType$5.nil, false, sliceType$6.nil, new ast.Index32.ptr(0), new ast.Index32.ptr(0), false, 0, false, false, false, false), $clone(ast$3, js_ast.AST), new ast.Index32.ptr(0)); + result[0].file.inputFile.Repr = new graph.JSRepr.ptr(new graph.JSReprMeta.ptr(false, false, false, ptrType$9.nil, ptrType$10.nil, sliceType$5.nil, false, sliceType$6.nil, new ast.Index32.ptr(0), new ast.Index32.ptr(0), false, 0, false, false, false, false), $clone(ast$3, js_ast.AST), new ast.Index32.ptr(0)); result[0].ok = ok$4; $s = 41; continue; /* } else if (_1 === (18)) { */ case 31: @@ -302556,7 +305321,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { if (ast$4.Parts.$length <= 1) { result[0].file.inputFile.SideEffects.Kind = 2; } - result[0].file.inputFile.Repr = new graph.JSRepr.ptr(new graph.JSReprMeta.ptr(false, false, false, ptrType$7.nil, ptrType$8.nil, sliceType$5.nil, false, sliceType$6.nil, new ast.Index32.ptr(0), new ast.Index32.ptr(0), false, 0, false, false, false, false), $clone(ast$4, js_ast.AST), new ast.Index32.ptr(0)); + result[0].file.inputFile.Repr = new graph.JSRepr.ptr(new graph.JSReprMeta.ptr(false, false, false, ptrType$9.nil, ptrType$10.nil, sliceType$5.nil, false, sliceType$6.nil, new ast.Index32.ptr(0), new ast.Index32.ptr(0), false, 0, false, false, false, false), $clone(ast$4, js_ast.AST), new ast.Index32.ptr(0)); result[0].ok = ok$5; $s = 41; continue; /* } else if ((_1 === (4)) || (_1 === (9)) || (_1 === (14))) { */ case 32: @@ -302580,7 +305345,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { } else { result[0].file.inputFile.SideEffects.Kind = 3; } - result[0].file.inputFile.Repr = new graph.JSRepr.ptr(new graph.JSReprMeta.ptr(false, false, false, ptrType$7.nil, ptrType$8.nil, sliceType$5.nil, false, sliceType$6.nil, new ast.Index32.ptr(0), new ast.Index32.ptr(0), false, 0, false, false, false, false), $clone(ast$6, js_ast.AST), new ast.Index32.ptr(0)); + result[0].file.inputFile.Repr = new graph.JSRepr.ptr(new graph.JSReprMeta.ptr(false, false, false, ptrType$9.nil, ptrType$10.nil, sliceType$5.nil, false, sliceType$6.nil, new ast.Index32.ptr(0), new ast.Index32.ptr(0), false, 0, false, false, false, false), $clone(ast$6, js_ast.AST), new ast.Index32.ptr(0)); result[0].ok = ok$6; $s = 41; continue; /* } else if (_1 === (15)) { */ case 34: @@ -302595,7 +305360,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { } else { result[0].file.inputFile.SideEffects.Kind = 3; } - result[0].file.inputFile.Repr = new graph.JSRepr.ptr(new graph.JSReprMeta.ptr(false, false, false, ptrType$7.nil, ptrType$8.nil, sliceType$5.nil, false, sliceType$6.nil, new ast.Index32.ptr(0), new ast.Index32.ptr(0), false, 0, false, false, false, false), $clone(ast$7, js_ast.AST), new ast.Index32.ptr(0)); + result[0].file.inputFile.Repr = new graph.JSRepr.ptr(new graph.JSReprMeta.ptr(false, false, false, ptrType$9.nil, ptrType$10.nil, sliceType$5.nil, false, sliceType$6.nil, new ast.Index32.ptr(0), new ast.Index32.ptr(0), false, 0, false, false, false, false), $clone(ast$7, js_ast.AST), new ast.Index32.ptr(0)); result[0].ok = true; $s = 41; continue; /* } else if (_1 === (1)) { */ case 35: @@ -302611,7 +305376,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { } else { result[0].file.inputFile.SideEffects.Kind = 3; } - result[0].file.inputFile.Repr = new graph.JSRepr.ptr(new graph.JSReprMeta.ptr(false, false, false, ptrType$7.nil, ptrType$8.nil, sliceType$5.nil, false, sliceType$6.nil, new ast.Index32.ptr(0), new ast.Index32.ptr(0), false, 0, false, false, false, false), $clone(ast$8, js_ast.AST), new ast.Index32.ptr(0)); + result[0].file.inputFile.Repr = new graph.JSRepr.ptr(new graph.JSReprMeta.ptr(false, false, false, ptrType$9.nil, ptrType$10.nil, sliceType$5.nil, false, sliceType$6.nil, new ast.Index32.ptr(0), new ast.Index32.ptr(0), false, 0, false, false, false, false), $clone(ast$8, js_ast.AST), new ast.Index32.ptr(0)); result[0].ok = true; $s = 41; continue; /* } else if (_1 === (2)) { */ case 36: @@ -302629,7 +305394,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { } else { result[0].file.inputFile.SideEffects.Kind = 3; } - result[0].file.inputFile.Repr = new graph.JSRepr.ptr(new graph.JSReprMeta.ptr(false, false, false, ptrType$7.nil, ptrType$8.nil, sliceType$5.nil, false, sliceType$6.nil, new ast.Index32.ptr(0), new ast.Index32.ptr(0), false, 0, false, false, false, false), $clone(ast$9, js_ast.AST), new ast.Index32.ptr(0)); + result[0].file.inputFile.Repr = new graph.JSRepr.ptr(new graph.JSReprMeta.ptr(false, false, false, ptrType$9.nil, ptrType$10.nil, sliceType$5.nil, false, sliceType$6.nil, new ast.Index32.ptr(0), new ast.Index32.ptr(0), false, 0, false, false, false, false), $clone(ast$9, js_ast.AST), new ast.Index32.ptr(0)); result[0].ok = true; $s = 41; continue; /* } else if (_1 === (5)) { */ case 37: @@ -302646,7 +305411,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { } else { result[0].file.inputFile.SideEffects.Kind = 3; } - result[0].file.inputFile.Repr = new graph.JSRepr.ptr(new graph.JSReprMeta.ptr(false, false, false, ptrType$7.nil, ptrType$8.nil, sliceType$5.nil, false, sliceType$6.nil, new ast.Index32.ptr(0), new ast.Index32.ptr(0), false, 0, false, false, false, false), $clone(ast$10, js_ast.AST), new ast.Index32.ptr(0)); + result[0].file.inputFile.Repr = new graph.JSRepr.ptr(new graph.JSReprMeta.ptr(false, false, false, ptrType$9.nil, ptrType$10.nil, sliceType$5.nil, false, sliceType$6.nil, new ast.Index32.ptr(0), new ast.Index32.ptr(0), false, 0, false, false, false, false), $clone(ast$10, js_ast.AST), new ast.Index32.ptr(0)); result[0].ok = true; $s = 41; continue; /* } else if (_1 === (8)) { */ case 38: @@ -302662,7 +305427,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { } else { result[0].file.inputFile.SideEffects.Kind = 3; } - result[0].file.inputFile.Repr = new graph.JSRepr.ptr(new graph.JSReprMeta.ptr(false, false, false, ptrType$7.nil, ptrType$8.nil, sliceType$5.nil, false, sliceType$6.nil, new ast.Index32.ptr(0), new ast.Index32.ptr(0), false, 0, false, false, false, false), $clone(ast$11, js_ast.AST), new ast.Index32.ptr(0)); + result[0].file.inputFile.Repr = new graph.JSRepr.ptr(new graph.JSReprMeta.ptr(false, false, false, ptrType$9.nil, ptrType$10.nil, sliceType$5.nil, false, sliceType$6.nil, new ast.Index32.ptr(0), new ast.Index32.ptr(0), false, 0, false, false, false, false), $clone(ast$11, js_ast.AST), new ast.Index32.ptr(0)); result[0].ok = true; result[0].file.inputFile.UniqueKeyForAdditionalFile = uniqueKey; $s = 41; continue; @@ -302695,9 +305460,9 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { /* if (result[0].ok) { */ case 65: _r$23 = result[0].file.inputFile.Repr.ImportRecords(); /* */ $s = 67; case 67: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } recordsPtr = _r$23; - /* */ if ((args[0].options.Mode === 2) && !args[0].skipResolve && !(recordsPtr === ptrType$12.nil)) { $s = 68; continue; } + /* */ if ((args[0].options.Mode === 2) && !args[0].skipResolve && !(recordsPtr === ptrType$13.nil)) { $s = 68; continue; } /* */ $s = 69; continue; - /* if ((args[0].options.Mode === 2) && !args[0].skipResolve && !(recordsPtr === ptrType$12.nil)) { */ case 68: + /* if ((args[0].options.Mode === 2) && !args[0].skipResolve && !(recordsPtr === ptrType$13.nil)) { */ case 68: records = $appendSlice(new sliceType$9([]), recordsPtr.$get()); recordsPtr.$set(records); result[0].resolveResults = $makeSlice(sliceType$1, records.$length); @@ -302711,7 +305476,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { /* while (true) { */ case 72: /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 73; continue; } importRecordIndex = _i$1; - record = ((importRecordIndex < 0 || importRecordIndex >= records.$length) ? ($throwRuntimeError("index out of range"), undefined) : records.$array[records.$offset + importRecordIndex]); + record = ((importRecordIndex < 0 || importRecordIndex >= records.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(records.$array, records.$offset + importRecordIndex, ptrType$15)); if ($clone(record.SourceIndex, ast.Index32).IsValid()) { _i$1++; /* continue; */ $s = 72; continue; @@ -302720,7 +305485,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { /* */ if (!(record.AssertOrWith === ptrType$4.nil) && (record.AssertOrWith.Keyword === 1)) { $s = 74; continue; } /* */ $s = 75; continue; /* if (!(record.AssertOrWith === ptrType$4.nil) && (record.AssertOrWith.Keyword === 1)) { */ case 74: - data = (x = record.AssertOrWith.Entries.$length, ((x < 0 || x > 2147483647) ? $throwRuntimeError("makemap: size out of range") : new $global.Map())); + data = (x$2 = record.AssertOrWith.Entries.$length, ((x$2 < 0 || x$2 > 2147483647) ? $throwRuntimeError("makemap: size out of range") : new $global.Map())); _ref$2 = record.AssertOrWith.Entries; _i$2 = 0; while (true) { @@ -302732,9 +305497,9 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { _r$24 = logger.EncodeImportAttributes(data); /* */ $s = 76; case 76: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } logger.ImportAttributes.copy(attrs, _r$24); /* } */ case 75: - /* */ if (!(record.GlobPattern === ptrType$13.nil)) { $s = 77; continue; } + /* */ if (!(record.GlobPattern === ptrType$14.nil)) { $s = 77; continue; } /* */ $s = 78; continue; - /* if (!(record.GlobPattern === ptrType$13.nil)) { */ case 77: + /* if (!(record.GlobPattern === ptrType$14.nil)) { */ case 77: prettyPath = helpers.GlobPatternToString(record.GlobPattern.Parts); _2 = record.GlobPattern.Kind; /* */ if (_2 === (2)) { $s = 80; continue; } @@ -302756,9 +305521,9 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { /* */ if (!(results === false)) { $s = 86; continue; } /* */ $s = 87; continue; /* if (!(results === false)) { */ case 86: - /* */ if (!(msg === ptrType$14.nil)) { $s = 89; continue; } + /* */ if (!(msg === ptrType$16.nil)) { $s = 89; continue; } /* */ $s = 90; continue; - /* if (!(msg === ptrType$14.nil)) { */ case 89: + /* if (!(msg === ptrType$16.nil)) { */ case 89: $r = $clone(args[0].log, logger.Log).AddID(msg.ID, msg.Kind, tracker$1[0], $clone(record.Range, logger.Range), msg.Data.Text); /* */ $s = 91; case 91: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 90: if (result[0].globResolveResults === false) { @@ -302810,7 +305575,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { /* */ if (ok$7) { $s = 96; continue; } /* */ $s = 97; continue; /* if (ok$7) { */ case 96: - (x$1 = result[0].resolveResults, ((importRecordIndex < 0 || importRecordIndex >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + importRecordIndex] = entry$1.resolveResult)); + (x$3 = result[0].resolveResults, ((importRecordIndex < 0 || importRecordIndex >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + importRecordIndex] = entry$1.resolveResult)); $s = 98; continue; /* } else { */ case 97: _r$31 = RunOnResolvePlugins(args[0].options.Plugins, args[0].res, $clone(args[0].log, logger.Log), args[0].fs, args[0].caches.FSCache, source[0], $clone(record.Range, logger.Range), $clone(source[0].KeyPath, logger.Path), record.Path.Text, $clone(attrs, logger.ImportAttributes), record.Kind, absResolveDir, pluginData); /* */ $s = 99; case 99: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } @@ -302833,7 +305598,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { /* */ if (!new ast.ImportRecordFlags(record.Flags).Has(256)) { $s = 103; continue; } /* */ $s = 104; continue; /* if (!(resolveResult === ptrType$1.nil) && resolveResult.PathPair.IsExternal) { */ case 102: - (x$2 = result[0].resolveResults, ((importRecordIndex < 0 || importRecordIndex >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + importRecordIndex] = resolveResult)); + (x$4 = result[0].resolveResults, ((importRecordIndex < 0 || importRecordIndex >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + importRecordIndex] = resolveResult)); $s = 104; continue; /* } else if (!new ast.ImportRecordFlags(record.Flags).Has(256)) { */ case 103: _arg$3 = tracker$1[0]; @@ -302873,7 +305638,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { _i$1++; /* continue; */ $s = 72; continue; /* } */ case 108: - (x$3 = result[0].resolveResults, ((importRecordIndex < 0 || importRecordIndex >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + importRecordIndex] = entry$1.resolveResult)); + (x$5 = result[0].resolveResults, ((importRecordIndex < 0 || importRecordIndex >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + importRecordIndex] = entry$1.resolveResult)); _i$1++; $s = 72; continue; case 73: @@ -302884,10 +305649,10 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { /* if (new config.Loader(loader).CanHaveSourceMap() && !((args[0].options.SourceMap === 0))) { */ case 116: sourceMapComment = new logger.Span.ptr("", new logger.Range.ptr(new logger.Loc.ptr(0), 0)); _ref$4 = result[0].file.inputFile.Repr; - if ($assertType(_ref$4, ptrType$15, true)[1]) { + if ($assertType(_ref$4, ptrType$17, true)[1]) { repr = _ref$4.$val; logger.Span.copy(sourceMapComment, repr.AST.SourceMapComment); - } else if ($assertType(_ref$4, ptrType$16, true)[1]) { + } else if ($assertType(_ref$4, ptrType$18, true)[1]) { repr$1 = _ref$4.$val; logger.Span.copy(sourceMapComment, repr$1.AST.SourceMapComment); } @@ -302899,9 +305664,9 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { _tuple$12 = _r$35; path = $clone(_tuple$12[0], logger.Path); contents = _tuple$12[1]; - /* */ if (!(contents === ptrType$17.nil)) { $s = 121; continue; } + /* */ if (!(contents === ptrType$19.nil)) { $s = 121; continue; } /* */ $s = 122; continue; - /* if (!(contents === ptrType$17.nil)) { */ case 121: + /* if (!(contents === ptrType$19.nil)) { */ case 121: _r$36 = resolver.PrettyPath(args[0].fs, $clone(path, logger.Path)); /* */ $s = 123; case 123: if($c) { $c = false; _r$36 = _r$36.$blk(); } if (_r$36 && _r$36.$blk !== undefined) { break s; } prettyPath$1 = _r$36; log = $clone(logger.NewDeferLog(1, args[0].log.Overrides), logger.Log); @@ -302956,11 +305721,11 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { /* */ $s = 141; continue; /* if (_v) { */ case 140: source$1 = helpers.FileURLFromFilePath(source$1).String(); - (x$4 = sourceMap.Sources, ((i < 0 || i >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + i] = source$1)); + (x$6 = sourceMap.Sources, ((i < 0 || i >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + i] = source$1)); /* } */ case 141: - /* */ if ((x$5 = sourceMap.SourcesContent, ((i < 0 || i >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + i])).Value === sliceType$15.nil) { $s = 144; continue; } + /* */ if ((x$7 = sourceMap.SourcesContent, ((i < 0 || i >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + i])).Value === sliceType$15.nil) { $s = 144; continue; } /* */ $s = 145; continue; - /* if ((x$5 = sourceMap.SourcesContent, ((i < 0 || i >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + i])).Value === sliceType$15.nil) { */ case 144: + /* if ((x$7 = sourceMap.SourcesContent, ((i < 0 || i >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + i])).Value === sliceType$15.nil) { */ case 144: _r$42 = url.Parse(source$1); /* */ $s = 146; case 146: if($c) { $c = false; _r$42 = _r$42.$blk(); } if (_r$42 && _r$42.$blk !== undefined) { break s; } _tuple$13 = _r$42; sourceURL = _tuple$13[0]; @@ -302976,7 +305741,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { contents$1 = _tuple$14[0]; err$1 = _tuple$14[1]; if ($interfaceIsEqual(err$1, $ifaceNil)) { - (x$6 = sourceMap.SourcesContent, ((i < 0 || i >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + i])).Value = helpers.StringToUTF16(contents$1); + (x$8 = sourceMap.SourcesContent, ((i < 0 || i >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + i])).Value = helpers.StringToUTF16(contents$1); } /* } */ case 148: /* } */ case 145: @@ -302993,7 +305758,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { /* */ $s = 152; continue; /* if (!(args[0].inject === $chanNil)) { */ case 151: exports = sliceType.nil; - _tuple$15 = $assertType(result[0].file.inputFile.Repr, ptrType$15, true); + _tuple$15 = $assertType(result[0].file.inputFile.Repr, ptrType$17, true); repr$2 = _tuple$15[0]; ok$8 = _tuple$15[1]; /* */ if (ok$8) { $s = 153; continue; } @@ -303032,7 +305797,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { /* */ if (isCopyLoader && args[0].skipResolve) { $s = 156; continue; } /* */ $s = 157; continue; /* if (isCopyLoader && args[0].skipResolve) { */ case 156: - _arg$12 = ptrType$5.nil; + _arg$12 = ptrType$7.nil; _arg$13 = $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range); _r$45 = fmt.Sprintf("Cannot inject %q with the \"copy\" loader without bundling enabled", new sliceType$3([new $String(source[0].PrettyPath)])); /* */ $s = 158; case 158: if($c) { $c = false; _r$45 = _r$45.$blk(); } if (_r$45 && _r$45.$blk !== undefined) { break s; } _arg$14 = _r$45; @@ -303042,7 +305807,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { /* } */ case 152: $r = $send(args[0].results, $clone($clone(result[0], parseResult), parseResult)); /* */ $s = 161; case 161: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseFile$1, $c: true, $r, _1, _2, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _entry, _entry$1, _entry$2, _entry$3, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _key, _key$1, _key$2, _key$3, _key$4, _key$5, _key$6, _keys, _keys$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _size, _size$1, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, absResolveDir, alias, alias$1, aliases, args, ast$1, ast$10, ast$11, ast$2, ast$3, ast$4, ast$5, ast$6, ast$7, ast$8, ast$9, attr, attrs, base, cacheKey$1, contents, contents$1, data, debug, didLogError, encoded, encoded$1, encoded$2, entry, entry$1, err, err$1, errorRange, errorText, exports, expr, expr$1, expr$2, expr$3, expr$4, expr$5, ext, helper, i, i$1, importRecordIndex, isCopyLoader, key, loader, log, message, mimeType, mimeType$1, msg, msg$1, msgs, next, note, notes, ok, ok$1, ok$2, ok$3, ok$4, ok$5, ok$6, ok$7, ok$8, path, pathForIdentifierName, pluginData, pluginName, prettyPath, prettyPath$1, r, record, records, recordsPtr, relative, repr, repr$1, repr$2, resolveResult, resolverCache, result, result$1, result$2, results, slice, source, source$1, sourceMap, sourceMapComment, sourceURL, stdin, suggestion, text, text$1, tracker, tracker$1, tracker$2, tracker$3, uniqueKey, uniqueKey$1, uniqueKeyPath, uniqueKeyPath$1, url$1, x, x$1, x$2, x$3, x$4, x$5, x$6, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseFile$1, $c: true, $r, _1, _2, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _entry, _entry$1, _entry$2, _entry$3, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _key, _key$1, _key$2, _key$3, _key$4, _key$5, _key$6, _keys, _keys$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _size, _size$1, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, absResolveDir, alias, alias$1, aliases, args, ast$1, ast$10, ast$11, ast$2, ast$3, ast$4, ast$5, ast$6, ast$7, ast$8, ast$9, attr, attrs, base, cacheKey$1, contents, contents$1, data, debug, didLogError, encoded, encoded$1, encoded$2, entry, entry$1, err, err$1, errorRange, errorText, exports, expr, expr$1, expr$2, expr$3, expr$4, expr$5, ext, helper, i, i$1, importRecordIndex, isCopyLoader, key, loader, log, message, mimeType, mimeType$1, msg, msg$1, msgs, next, note, notes, ok, ok$1, ok$2, ok$3, ok$4, ok$5, ok$6, ok$7, ok$8, path, pathForIdentifierName, pluginData, pluginName, prettyPath, prettyPath$1, r, record, records, recordsPtr, relative, repr, repr$1, repr$2, resolveResult, resolverCache, result, result$1, result$2, results, slice, source, source$1, sourceMap, sourceMapComment, sourceURL, stdin, suggestion, text, text$1, tracker, tracker$1, tracker$2, tracker$3, uniqueKey, uniqueKey$1, uniqueKeyPath, uniqueKeyPath$1, url$1, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, $s, $deferred};return $f; } } }; ResolveFailureErrorTextSuggestionNotes = function ResolveFailureErrorTextSuggestionNotes$1(res, path, kind, pluginName, fs$1, absResolveDir, platform, originatingFilePath, modifiedImportPath) { var {_1, _arg, _arg$1, _arg$2, _entry, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _v, _v$1, absResolveDir, fs$1, hint, how, kind, modifiedImportPath, notes, originatingFilePath, path, pkg, platform, pluginName, query, res, suggestion, text, where, $s, $r, $c} = $restore(this, {res, path, kind, pluginName, fs$1, absResolveDir, platform, originatingFilePath, modifiedImportPath}); @@ -303056,7 +305821,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { _r = fmt.Sprintf("Could not resolve %q (originally %q)", new sliceType$3([new $String(modifiedImportPath), new $String(path)])); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } text = _r; _r$1 = fmt.Sprintf("The path %q was remapped to %q using the alias feature, which then couldn't be resolved. Keep in mind that import path aliases are resolved in the current working directory.", new sliceType$3([new $String(path), new $String(modifiedImportPath)])); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - notes = $append(notes, new logger.MsgData.ptr($ifaceNil, ptrType$6.nil, _r$1, false)); + notes = $append(notes, new logger.MsgData.ptr($ifaceNil, ptrType$8.nil, _r$1, false)); path = modifiedImportPath; $s = 3; continue; /* } else { */ case 2: @@ -303134,10 +305899,10 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { /* } */ case 27: if (!(hint === "")) { if (!(modifiedImportPath === "")) { - notes = $append(notes, new logger.MsgData.ptr($ifaceNil, ptrType$6.nil, "", false)); + notes = $append(notes, new logger.MsgData.ptr($ifaceNil, ptrType$8.nil, "", false)); suggestion = ""; } - notes = $append(notes, new logger.MsgData.ptr($ifaceNil, ptrType$6.nil, hint, false)); + notes = $append(notes, new logger.MsgData.ptr($ifaceNil, ptrType$8.nil, hint, false)); } $s = -1; return [text, suggestion, notes]; /* */ } return; } var $f = {$blk: ResolveFailureErrorTextSuggestionNotes$1, $c: true, $r, _1, _arg, _arg$1, _arg$2, _entry, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _v, _v$1, absResolveDir, fs$1, hint, how, kind, modifiedImportPath, notes, originatingFilePath, path, pkg, platform, pluginName, query, res, suggestion, text, where, $s};return $f; @@ -303197,11 +305962,11 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { _r$2 = fmt.Sprintf("Unsupported source map comment: %s", new sliceType$3([_arg$2])); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _arg$3 = _r$2; $r = $clone(log, logger.Log).AddID(53, 1, _arg, _arg$1, _arg$3); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return [new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), ptrType$17.nil]; + $s = -1; return [new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), ptrType$19.nil]; /* } */ case 5: path = $clone(source.KeyPath, logger.Path); path.IgnoredSuffix = "#sourceMappingURL"; - $s = -1; return [path, (contents.$ptr || (contents.$ptr = new ptrType$17(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, contents)))]; + $s = -1; return [path, (contents.$ptr || (contents.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, contents)))]; /* } */ case 2: absPath = ""; _r$3 = url.Parse(comment.Text); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } @@ -303222,28 +305987,28 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { _r$5 = fmt.Sprintf("Unsupported source map comment: %s", new sliceType$3([_arg$6])); /* */ $s = 18; case 18: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _arg$7 = _r$5; $r = $clone(log, logger.Log).AddID(53, 1, _arg$4, _arg$5, _arg$7); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return [new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), ptrType$17.nil]; + $s = -1; return [new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), ptrType$19.nil]; /* } else if (!(commentURL.Scheme === "") && !(commentURL.Scheme === "file")) { */ case 11: _arg$8 = tracker; _arg$9 = $clone(comment.Range, logger.Range); _r$6 = fmt.Sprintf("Unsupported source map comment: Unsupported URL scheme %q", new sliceType$3([new $String(commentURL.Scheme)])); /* */ $s = 20; case 20: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _arg$10 = _r$6; $r = $clone(log, logger.Log).AddID(53, 4, _arg$8, _arg$9, _arg$10); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return [new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), ptrType$17.nil]; + $s = -1; return [new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), ptrType$19.nil]; /* } else if (!(commentURL.Host === "") && !(commentURL.Host === "localhost")) { */ case 12: _arg$11 = tracker; _arg$12 = $clone(comment.Range, logger.Range); _r$7 = fmt.Sprintf("Unsupported source map comment: Unsupported host %q in file URL", new sliceType$3([new $String(commentURL.Host)])); /* */ $s = 22; case 22: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _arg$13 = _r$7; $r = $clone(log, logger.Log).AddID(53, 1, _arg$11, _arg$12, _arg$13); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return [new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), ptrType$17.nil]; + $s = -1; return [new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), ptrType$19.nil]; /* } else if (helpers.IsFileURL(commentURL)) { */ case 13: _r$8 = helpers.FilePathFromFileURL(fs$1, commentURL); /* */ $s = 24; case 24: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } absPath = _r$8; $s = 16; continue; /* } else if (absResolveDir === "") { */ case 14: $r = $clone(log, logger.Log).AddID(53, 4, tracker, $clone(comment.Range, logger.Range), "Unsupported source map comment: Cannot resolve relative URL without a resolve directory"); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return [new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), ptrType$17.nil]; + $s = -1; return [new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), ptrType$19.nil]; /* } else { */ case 15: absResolveURL = helpers.FileURLFromFilePath(absResolveDir); if (!strings.HasSuffix(absResolveURL.Path, "/")) { @@ -303266,7 +306031,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { _r$11 = fmt.Sprintf("Cannot read file: %s", new sliceType$3([new $String(absPath)])); /* */ $s = 32; case 32: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } _arg$16 = _r$11; $r = $clone(log, logger.Log).AddID(52, 4, _arg$14, _arg$15, _arg$16); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return [new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), ptrType$17.nil]; + $s = -1; return [new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), ptrType$19.nil]; /* } else if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 29: _arg$17 = tracker; _arg$18 = $clone(comment.Range, logger.Range); @@ -303277,19 +306042,19 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { _r$14 = fmt.Sprintf("Cannot read file %q: %s", new sliceType$3([_arg$19, _arg$20])); /* */ $s = 36; case 36: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } _arg$21 = _r$14; $r = $clone(log, logger.Log).AddID(52, 1, _arg$17, _arg$18, _arg$21); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return [new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), ptrType$17.nil]; + $s = -1; return [new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), ptrType$19.nil]; /* } else { */ case 30: - $s = -1; return [path$1, (contents$1.$ptr || (contents$1.$ptr = new ptrType$17(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, contents$1)))]; + $s = -1; return [path$1, (contents$1.$ptr || (contents$1.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, contents$1)))]; /* } */ case 31: - $s = -1; return [new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), ptrType$17.nil]; + $s = -1; return [new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), ptrType$19.nil]; /* */ } return; } var $f = {$blk: extractSourceMapFromComment$1, $c: true, $r, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$16, _arg$17, _arg$18, _arg$19, _arg$2, _arg$20, _arg$21, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, absPath, absResolveDir, absResolveURL, comment, commentURL, contents, contents$1, err, err$1, err$2, fs$1, fsCache, log, ok, parsed, path, path$1, source, tracker, $s};return $f; }; sanitizeLocation = function sanitizeLocation$1(fs$1, loc) { var {_r, fs$1, loc, $s, $r, $c} = $restore(this, {fs$1, loc}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - /* */ if (!(loc === ptrType$6.nil)) { $s = 1; continue; } + /* */ if (!(loc === ptrType$8.nil)) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (!(loc === ptrType$6.nil)) { */ case 1: + /* if (!(loc === ptrType$8.nil)) { */ case 1: if (loc.Namespace === "") { loc.Namespace = "file"; } @@ -303328,16 +306093,16 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { _i$1++; $s = 3; continue; case 4: - /* */ if (msg.Data.Location === ptrType$6.nil) { $s = 6; continue; } + /* */ if (msg.Data.Location === ptrType$8.nil) { $s = 6; continue; } /* */ $s = 7; continue; - /* if (msg.Data.Location === ptrType$6.nil) { */ case 6: + /* if (msg.Data.Location === ptrType$8.nil) { */ case 6: msg.Data.Location = tracker.MsgLocationOrNil($clone(importPathRange, logger.Range)); $s = 8; continue; /* } else { */ case 7: $r = sanitizeLocation(fs$1, msg.Data.Location); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!(importSource === ptrType$9.nil)) { $s = 10; continue; } + /* */ if (!(importSource === ptrType$5.nil)) { $s = 10; continue; } /* */ $s = 11; continue; - /* if (!(importSource === ptrType$9.nil)) { */ case 10: + /* if (!(importSource === ptrType$5.nil)) { */ case 10: if (msg.Data.Location.File === "") { msg.Data.Location.File = importSource.PrettyPath; } @@ -303364,7 +306129,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { /* */ } return; } var $f = {$blk: logPluginMessages$1, $c: true, $r, _arg, _arg$1, _i, _i$1, _r, _r$1, _r$2, _ref, _ref$1, didLogError, fs$1, importPathRange, importSource, log, msg, msgs, name, note, text, thrown, tracker, $s};return $f; }; RunOnResolvePlugins = function RunOnResolvePlugins$1(plugins, res, log, fs$1, fsCache, importSource, importPathRange, importer, path, importAttributes, kind, absResolveDir, pluginData) { - var {_arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _i, _i$1, _i$2, _i$3, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _tuple, _tuple$1, _v, absResolveDir, applyPath, debug, didLogError, diffCase, dir, entries, err, file, fs$1, fsCache, importAttributes, importPathRange, importSource, importer, kind, log, nsFromPlugin, onResolve, path, plugin, pluginData, pluginName, plugins, res, resolverArgs, result, result$1, sideEffectsData, tracker, $s, $r, $c} = $restore(this, {plugins, res, log, fs$1, fsCache, importSource, importPathRange, importer, path, importAttributes, kind, absResolveDir, pluginData}); + var {_arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _i, _i$1, _i$2, _i$3, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _tuple, _tuple$1, _v, absResolveDir, applyPath, debug, didLogError, diffCase, dir, entries, err, file, fs$1, fsCache, importAttributes, importPathRange, importSource, importer, kind, log, nsFromPlugin, onResolve, path, plugin, pluginData, pluginName, plugins, res, resolverArgs, result, result$1, sideEffectsData, tracker, x, $s, $r, $c} = $restore(this, {plugins, res, log, fs$1, fsCache, importSource, importPathRange, importer, path, importAttributes, kind, absResolveDir, pluginData}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: tracker = [tracker]; resolverArgs = new config.OnResolveArgs.ptr(path, absResolveDir, pluginData, $clone(importer, logger.Path), kind, $clone(importAttributes, logger.ImportAttributes)); @@ -303464,9 +306229,9 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { /* } */ case 20: sideEffectsData = ptrType$3.nil; if (result.IsSideEffectFree) { - sideEffectsData = new resolver.SideEffectsData.ptr(ptrType$9.nil, pluginName, new logger.Range.ptr(new logger.Loc.ptr(0), 0), false); + sideEffectsData = new resolver.SideEffectsData.ptr(ptrType$5.nil, pluginName, new logger.Range.ptr(new logger.Loc.ptr(0), 0), false); } - $s = -1; return [new resolver.ResolveResult.ptr($clone(new resolver.PathPair.ptr($clone(result.Path, logger.Path), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), result.External), resolver.PathPair), result.PluginData, ptrType$18.nil, sideEffectsData, new config.TSConfigJSX.ptr(sliceType$5.nil, sliceType$5.nil, ptrType$17.nil, 0), ptrType$19.nil, ptrType$20.nil, new js_ast.ModuleTypeData.ptr(ptrType$9.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0)), false, new resolver.DebugMeta.ptr(sliceType$4.nil, "", "", 0, "")]; + $s = -1; return [new resolver.ResolveResult.ptr($clone(new resolver.PathPair.ptr($clone(result.Path, logger.Path), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), result.External), resolver.PathPair), result.PluginData, ptrType$20.nil, sideEffectsData, new config.TSConfigJSX.ptr(sliceType$5.nil, sliceType$5.nil, ptrType$19.nil, 0), ptrType$21.nil, ptrType$22.nil, new js_ast.ModuleTypeData.ptr(ptrType$5.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0)), false, new resolver.DebugMeta.ptr(sliceType$4.nil, "", "", 0, "")]; case 4: _i++; $s = 1; continue; @@ -303475,10 +306240,10 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { _tuple$1 = _r$9; result$1 = _tuple$1[0]; debug = $clone(_tuple$1[1], resolver.DebugMeta); - /* */ if (!(result$1 === ptrType$1.nil) && !(result$1.DifferentCase === ptrType$18.nil) && !helpers.IsInsideNodeModules(absResolveDir)) { $s = 31; continue; } + /* */ if (!(result$1 === ptrType$1.nil) && !(result$1.DifferentCase === ptrType$20.nil) && !helpers.IsInsideNodeModules(absResolveDir)) { $s = 31; continue; } /* */ $s = 32; continue; - /* if (!(result$1 === ptrType$1.nil) && !(result$1.DifferentCase === ptrType$18.nil) && !helpers.IsInsideNodeModules(absResolveDir)) { */ case 31: - diffCase = $clone(result$1.DifferentCase, fs.DifferentCase); + /* if (!(result$1 === ptrType$1.nil) && !(result$1.DifferentCase === ptrType$20.nil) && !helpers.IsInsideNodeModules(absResolveDir)) { */ case 31: + diffCase = $clone((x = result$1.DifferentCase, (x === ptrType$20.nil && $throwNilPointerError(), x)), fs.DifferentCase); _arg$6 = tracker[0]; _arg$7 = $clone(importPathRange, logger.Range); _arg$8 = fs$1; @@ -303496,7 +306261,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { $r = $clone(log, logger.Log).AddID(45, 1, _arg$6, _arg$7, _arg$14); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 32: $s = -1; return [result$1, false, debug]; - /* */ } return; } var $f = {$blk: RunOnResolvePlugins$1, $c: true, $r, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _i, _i$1, _i$2, _i$3, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _tuple, _tuple$1, _v, absResolveDir, applyPath, debug, didLogError, diffCase, dir, entries, err, file, fs$1, fsCache, importAttributes, importPathRange, importSource, importer, kind, log, nsFromPlugin, onResolve, path, plugin, pluginData, pluginName, plugins, res, resolverArgs, result, result$1, sideEffectsData, tracker, $s};return $f; + /* */ } return; } var $f = {$blk: RunOnResolvePlugins$1, $c: true, $r, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _i, _i$1, _i$2, _i$3, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _tuple, _tuple$1, _v, absResolveDir, applyPath, debug, didLogError, diffCase, dir, entries, err, file, fs$1, fsCache, importAttributes, importPathRange, importSource, importer, kind, log, nsFromPlugin, onResolve, path, plugin, pluginData, pluginName, plugins, res, resolverArgs, result, result$1, sideEffectsData, tracker, x, $s};return $f; }; $pkg.RunOnResolvePlugins = RunOnResolvePlugins; runOnLoadPlugins = function runOnLoadPlugins$1(plugins, fs$1, fsCache, log, source, importSource, importPathRange, pluginData, isWatchMode) { @@ -303569,7 +306334,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { /* } */ case 22: $s = -1; return [new loaderPluginResult.ptr($ifaceNil, "", "", 0), false]; /* } */ case 20: - if (result.Contents === ptrType$17.nil) { + if (result.Contents === ptrType$19.nil) { _i$1++; /* continue; */ $s = 3; continue; } @@ -303738,7 +306503,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: _r = onStart$1.Callback(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } result = $clone(_r, config.OnStartResult); - _r$1 = logPluginMessages(fs$1[0], $clone(log[0], logger.Log), plugin$1.Name, result.Msgs, result.ThrownError, ptrType$9.nil, $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range)); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1 = logPluginMessages(fs$1[0], $clone(log[0], logger.Log), plugin$1.Name, result.Msgs, result.ThrownError, ptrType$5.nil, $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range)); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _r$1; onStartWaitGroup[0].Done(); $s = -1; return; @@ -303756,7 +306521,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 6; continue; } /* */ $s = 7; continue; /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 6: - _arg = ptrType$5.nil; + _arg = ptrType$7.nil; _arg$1 = $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range); _r$1 = err.Error(); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _arg$2 = new $String(_r$1); @@ -303778,7 +306543,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { source = $clone(_tuple$1[0], logger.Source); ast$1 = $clone(_tuple$1[1], js_ast.AST); ok = _tuple$1[2]; - $r = $send(s[0].resultChannel, $clone($clone(new parseResult.ptr(sliceType$1.nil, false, $clone(new scannerFile.ptr("", $ifaceNil, $clone(new graph.InputFile.ptr(new graph.JSRepr.ptr(new graph.JSReprMeta.ptr(false, false, false, ptrType$7.nil, ptrType$8.nil, sliceType$5.nil, false, sliceType$6.nil, new ast.Index32.ptr(0), new ast.Index32.ptr(0), false, 0, false, false, false, false), $clone(ast$1, js_ast.AST), new ast.Index32.ptr(0)), ptrType$2.nil, sliceType$2.nil, "", new graph.SideEffects.ptr(ptrType$3.nil, 0), $clone(source, logger.Source), 0, true), graph.InputFile)), scannerFile), new tlaCheck.ptr(new ast.Index32.ptr(0), 0, 0), ok), parseResult), parseResult)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = $send(s[0].resultChannel, $clone($clone(new parseResult.ptr(sliceType$1.nil, false, $clone(new scannerFile.ptr("", $ifaceNil, $clone(new graph.InputFile.ptr(new graph.JSRepr.ptr(new graph.JSReprMeta.ptr(false, false, false, ptrType$9.nil, ptrType$10.nil, sliceType$5.nil, false, sliceType$6.nil, new ast.Index32.ptr(0), new ast.Index32.ptr(0), false, 0, false, false, false, false), $clone(ast$1, js_ast.AST), new ast.Index32.ptr(0)), ptrType$2.nil, sliceType$2.nil, "", new graph.SideEffects.ptr(ptrType$3.nil, 0), $clone(source, logger.Source), 0, true), graph.InputFile)), scannerFile), new tlaCheck.ptr(new ast.Index32.ptr(0), 0, 0), ok), parseResult), parseResult)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* */ } return; } var $f = {$blk: ScanBundle·func2, $c: true, $r, _r$5, _tuple$1, ast$1, ok, source, $s};return $f; }; })(fs$1, log, onStartWaitGroup, options, s), []); @@ -303787,14 +306552,14 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { /* */ if (options[0].CancelFlag.DidCancel()) { $s = 15; continue; } /* */ $s = 16; continue; /* if (options[0].CancelFlag.DidCancel()) { */ case 15: - $24r = new Bundle.ptr("", $ifaceNil, ptrType$21.nil, sliceType$23.nil, sliceType$24.nil, $clone(options[0], config.Options)); + $24r = new Bundle.ptr("", $ifaceNil, ptrType$23.nil, sliceType$23.nil, sliceType$24.nil, $clone(options[0], config.Options)); $s = 17; case 17: return $24r; /* } */ case 16: $r = s[0].preprocessInjectedFiles(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* */ if (options[0].CancelFlag.DidCancel()) { $s = 19; continue; } /* */ $s = 20; continue; /* if (options[0].CancelFlag.DidCancel()) { */ case 19: - $24r$1 = new Bundle.ptr("", $ifaceNil, ptrType$21.nil, sliceType$23.nil, sliceType$24.nil, $clone(options[0], config.Options)); + $24r$1 = new Bundle.ptr("", $ifaceNil, ptrType$23.nil, sliceType$23.nil, sliceType$24.nil, $clone(options[0], config.Options)); $s = 21; case 21: return $24r$1; /* } */ case 20: _r$5 = s[0].addEntryPoints(entryPoints); /* */ $s = 22; case 22: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } @@ -303802,14 +306567,14 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { /* */ if (options[0].CancelFlag.DidCancel()) { $s = 23; continue; } /* */ $s = 24; continue; /* if (options[0].CancelFlag.DidCancel()) { */ case 23: - $24r$2 = new Bundle.ptr("", $ifaceNil, ptrType$21.nil, sliceType$23.nil, sliceType$24.nil, $clone(options[0], config.Options)); + $24r$2 = new Bundle.ptr("", $ifaceNil, ptrType$23.nil, sliceType$23.nil, sliceType$24.nil, $clone(options[0], config.Options)); $s = 25; case 25: return $24r$2; /* } */ case 24: $r = s[0].scanAllDependencies(); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* */ if (options[0].CancelFlag.DidCancel()) { $s = 27; continue; } /* */ $s = 28; continue; /* if (options[0].CancelFlag.DidCancel()) { */ case 27: - $24r$3 = new Bundle.ptr("", $ifaceNil, ptrType$21.nil, sliceType$23.nil, sliceType$24.nil, $clone(options[0], config.Options)); + $24r$3 = new Bundle.ptr("", $ifaceNil, ptrType$23.nil, sliceType$23.nil, sliceType$24.nil, $clone(options[0], config.Options)); $s = 29; case 29: return $24r$3; /* } */ case 28: _r$6 = s[0].processScannedFiles(entryPointMeta); /* */ $s = 30; case 30: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } @@ -303817,16 +306582,16 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { /* */ if (options[0].CancelFlag.DidCancel()) { $s = 31; continue; } /* */ $s = 32; continue; /* if (options[0].CancelFlag.DidCancel()) { */ case 31: - $24r$4 = new Bundle.ptr("", $ifaceNil, ptrType$21.nil, sliceType$23.nil, sliceType$24.nil, $clone(options[0], config.Options)); + $24r$4 = new Bundle.ptr("", $ifaceNil, ptrType$23.nil, sliceType$23.nil, sliceType$24.nil, $clone(options[0], config.Options)); $s = 33; case 33: return $24r$4; /* } */ case 32: $24r$5 = new Bundle.ptr(uniqueKeyPrefix, fs$1[0], s[0].res, files, entryPointMeta, $clone(s[0].options, config.Options)); $s = 34; case 34: return $24r$5; - /* */ } return; } } catch(err) { $err = err; $s = -1; return new Bundle.ptr("", $ifaceNil, ptrType$21.nil, sliceType$23.nil, sliceType$24.nil, new config.Options.ptr(new js_ast.ModuleTypeData.ptr(ptrType$9.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0), ptrType$24.nil, ptrType$20.nil, ptrType$25.nil, ptrType$25.nil, ptrType$26.nil, $throwNilPointerError, "", sliceType$5.nil, sliceType$5.nil, sliceType$5.nil, sliceType$5.nil, sliceType$5.nil, new config.ExternalSettings.ptr(new config.ExternalMatchers.ptr(false, sliceType$18.nil), new config.ExternalMatchers.ptr(false, sliceType$18.nil)), false, false, "", "", "", "", "", sliceType$5.nil, "", "", false, "", sliceType$5.nil, sliceType$19.nil, sliceType$20.nil, "", "", "", "", sliceType$21.nil, sliceType$21.nil, sliceType$21.nil, sliceType$22.nil, "", ptrType.nil, new config.JSXOptions.ptr(new config.DefineExpr.ptr($ifaceNil, sliceType$5.nil, new ast.Index32.ptr(0)), new config.DefineExpr.ptr($ifaceNil, sliceType$5.nil, new ast.Index32.ptr(0)), false, false, false, "", false, false), 0, false, new compat.JSFeature(0, 0), 0, new compat.JSFeature(0, 0), new compat.JSFeature(0, 0), 0, 0, new config.TSOptions.ptr(new config.TSConfig.ptr(0, 0, 0, 0, 0, 0), false, false), 0, false, false, false, false, false, false, false, false, 0, false, false, false, false, false, false, false, false, false, 0, 0, false, 0, false)); } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: ScanBundle$1, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, _arg, _arg$1, _arg$2, _arg$3, _i, _i$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, _tuple, caches, call, entryPointMeta, entryPoints, err, files, fs$1, log, onStart, onStartWaitGroup, options, plugin, res, s, timer, uniqueKeyPrefix, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; return new Bundle.ptr("", $ifaceNil, ptrType$23.nil, sliceType$23.nil, sliceType$24.nil, new config.Options.ptr(new js_ast.ModuleTypeData.ptr(ptrType$5.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0), ptrType$26.nil, ptrType$22.nil, ptrType$27.nil, ptrType$27.nil, ptrType$28.nil, $throwNilPointerError, "", sliceType$5.nil, sliceType$5.nil, sliceType$5.nil, sliceType$5.nil, sliceType$5.nil, new config.ExternalSettings.ptr(new config.ExternalMatchers.ptr(false, sliceType$18.nil), new config.ExternalMatchers.ptr(false, sliceType$18.nil)), false, false, "", "", "", "", "", sliceType$5.nil, "", "", false, "", sliceType$5.nil, sliceType$19.nil, sliceType$20.nil, "", "", "", "", sliceType$21.nil, sliceType$21.nil, sliceType$21.nil, sliceType$22.nil, "", ptrType.nil, new config.JSXOptions.ptr(new config.DefineExpr.ptr($ifaceNil, sliceType$5.nil, new ast.Index32.ptr(0)), new config.DefineExpr.ptr($ifaceNil, sliceType$5.nil, new ast.Index32.ptr(0)), false, false, false, "", false, false), 0, false, new compat.JSFeature(0, 0), 0, new compat.JSFeature(0, 0), new compat.JSFeature(0, 0), 0, 0, new config.TSOptions.ptr(new config.TSConfig.ptr(0, 0, 0, 0, 0, 0), false, false), 0, false, false, false, false, false, false, false, false, 0, false, false, false, false, false, false, false, false, false, 0, 0, false, 0, false)); } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: ScanBundle$1, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, _arg, _arg$1, _arg$2, _arg$3, _i, _i$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, _tuple, caches, call, entryPointMeta, entryPoints, err, files, fs$1, log, onStart, onStartWaitGroup, options, plugin, res, s, timer, uniqueKeyPrefix, $s, $deferred};return $f; } } }; $pkg.ScanBundle = ScanBundle; $ptrType(scanner).prototype.maybeParseFile = function maybeParseFile(resolveResult, prettyPath, importSource, importPathRange, importWith, kind, inject) { - var {_entry, _key, _r, _r$1, _r$2, _tuple, _tuple$1, importPathRange, importSource, importWith, inject, kind, ok, ok$1, optionsClone, path, prettyPath, resolveResult, s, sideEffects, skipResolve, visited, visitedKey, $s, $r, $c} = $restore(this, {resolveResult, prettyPath, importSource, importPathRange, importWith, kind, inject}); + var {_entry, _key, _r, _r$1, _r$2, _tuple, _tuple$1, importPathRange, importSource, importWith, inject, kind, ok, ok$1, optionsClone, path, prettyPath, resolveResult, s, sideEffects, skipResolve, visited, visitedKey, x, $s, $r, $c} = $restore(this, {resolveResult, prettyPath, importSource, importPathRange, importWith, kind, inject}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: s = this; path = $clone(resolveResult.PathPair.Primary, logger.Path); @@ -303859,10 +306624,10 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { optionsClone.Stdin = ptrType.nil; } resolveResult.TSConfigJSX.ApplyTo(optionsClone.JSX); - if (!(resolveResult.TSConfig === ptrType$19.nil)) { - config.TSConfig.copy(optionsClone.TS.Config, resolveResult.TSConfig); + if (!(resolveResult.TSConfig === ptrType$21.nil)) { + config.TSConfig.copy(optionsClone.TS.Config, (x = resolveResult.TSConfig, (x === ptrType$21.nil && $throwNilPointerError(), x))); } - if (!(resolveResult.TSAlwaysStrict === ptrType$20.nil)) { + if (!(resolveResult.TSAlwaysStrict === ptrType$22.nil)) { optionsClone.TSAlwaysStrict = resolveResult.TSAlwaysStrict; } if (strings.HasSuffix(path.Text, ".mjs")) { @@ -303910,7 +306675,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { } $go(parseFile, [$clone(new parseArgs.ptr(s.fs, $clone(s.log, logger.Log), s.res, s.caches, prettyPath, importSource, importWith, $clone(sideEffects, graph.SideEffects), resolveResult.PluginData, s.resultChannel, inject, s.uniqueKeyPrefix, $clone(path, logger.Path), $clone(optionsClone, config.Options), $clone(importPathRange, logger.Range), visited.sourceIndex, skipResolve), parseArgs)]); $s = -1; return visited.sourceIndex; - /* */ } return; } var $f = {$blk: maybeParseFile, $c: true, $r, _entry, _key, _r, _r$1, _r$2, _tuple, _tuple$1, importPathRange, importSource, importWith, inject, kind, ok, ok$1, optionsClone, path, prettyPath, resolveResult, s, sideEffects, skipResolve, visited, visitedKey, $s};return $f; + /* */ } return; } var $f = {$blk: maybeParseFile, $c: true, $r, _entry, _key, _r, _r$1, _r$2, _tuple, _tuple$1, importPathRange, importSource, importWith, inject, kind, ok, ok$1, optionsClone, path, prettyPath, resolveResult, s, sideEffects, skipResolve, visited, visitedKey, x, $s};return $f; }; $ptrType(scanner).prototype.allocateSourceIndex = function allocateSourceIndex(path, kind) { var {_r, kind, newLen, path, s, sourceIndex, $s, $r, $c} = $restore(this, {path, kind}); @@ -303974,7 +306739,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { expr = new js_ast.Expr.ptr(define.Data, new logger.Loc.ptr(0)); _r$3 = js_parser.LazyExportAST($clone(s[0].log, logger.Log), $clone(source, logger.Source), $clone(js_parser.OptionsFromConfig(s[0].options), js_parser.Options), $clone(expr, js_ast.Expr), ""); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } ast$1 = $clone(_r$3, js_ast.AST); - result[0] = new parseResult.ptr(sliceType$1.nil, false, $clone(new scannerFile.ptr("", $ifaceNil, $clone(new graph.InputFile.ptr(new graph.JSRepr.ptr(new graph.JSReprMeta.ptr(false, false, false, ptrType$7.nil, ptrType$8.nil, sliceType$5.nil, false, sliceType$6.nil, new ast.Index32.ptr(0), new ast.Index32.ptr(0), false, 0, false, false, false, false), $clone(ast$1, js_ast.AST), new ast.Index32.ptr(0)), ptrType$2.nil, sliceType$2.nil, "", $clone(new graph.SideEffects.ptr(ptrType$3.nil, 3), graph.SideEffects), $clone(source, logger.Source), 11, false), graph.InputFile)), scannerFile), new tlaCheck.ptr(new ast.Index32.ptr(0), 0, 0), true); + result[0] = new parseResult.ptr(sliceType$1.nil, false, $clone(new scannerFile.ptr("", $ifaceNil, $clone(new graph.InputFile.ptr(new graph.JSRepr.ptr(new graph.JSReprMeta.ptr(false, false, false, ptrType$9.nil, ptrType$10.nil, sliceType$5.nil, false, sliceType$6.nil, new ast.Index32.ptr(0), new ast.Index32.ptr(0), false, 0, false, false, false, false), $clone(ast$1, js_ast.AST), new ast.Index32.ptr(0)), ptrType$2.nil, sliceType$2.nil, "", $clone(new graph.SideEffects.ptr(ptrType$3.nil, 3), graph.SideEffects), $clone(source, logger.Source), 11, false), graph.InputFile)), scannerFile), new tlaCheck.ptr(new ast.Index32.ptr(0), 0, 0), true); s[0].remaining = s[0].remaining + (1) >> 0; $go((function(injectAbsResolveDir, injectResolveResults, injectResolveWaitGroup, injectWaitGroup, result, results, s) { return function scanner·preprocessInjectedFiles·func1() { var {$s, $r, $c} = $restore(this, {}); @@ -304025,7 +306790,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { _r$10 = $clone(entries, fs.DirEntries).Get(base); /* */ $s = 11; case 11: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } _tuple$1 = _r$10; entry = _tuple$1[0]; - if (!(!(entry === ptrType$27.nil))) { _v = false; $s = 14; continue s; } + if (!(!(entry === ptrType$29.nil))) { _v = false; $s = 14; continue s; } _r$11 = entry.Kind(s[0].fs); /* */ $s = 15; case 15: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } _v = _r$11 === 2; case 14: /* */ if (_v) { $s = 12; continue; } @@ -304041,7 +306806,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { /* } */ case 13: $s = 10; continue; /* } else if (s[0].log.Level <= 2 && !($interfaceIsEqual(originalError, $ifaceNil))) { */ case 9: - _arg = ptrType$5.nil; + _arg = ptrType$7.nil; _arg$1 = $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range); _arg$2 = new $String(absPath); _r$13 = originalError.Error(); /* */ $s = 19; case 19: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } @@ -304050,7 +306815,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { _arg$4 = _r$14; $r = $clone(s[0].log, logger.Log).AddID(0, 4, _arg, _arg$1, _arg$4); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 10: - _r$15 = RunOnResolvePlugins(s[0].options.Plugins, s[0].res, $clone(s[0].log, logger.Log), s[0].fs, s[0].caches.FSCache, ptrType$9.nil, $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range), $clone(importer, logger.Path), importPath$1, $clone(new logger.ImportAttributes.ptr(""), logger.ImportAttributes), 0, injectAbsResolveDir[0], $ifaceNil); /* */ $s = 22; case 22: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + _r$15 = RunOnResolvePlugins(s[0].options.Plugins, s[0].res, $clone(s[0].log, logger.Log), s[0].fs, s[0].caches.FSCache, ptrType$5.nil, $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range), $clone(importer, logger.Path), importPath$1, $clone(new logger.ImportAttributes.ptr(""), logger.ImportAttributes), 0, injectAbsResolveDir[0], $ifaceNil); /* */ $s = 22; case 22: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } _tuple$2 = _r$15; resolveResult = _tuple$2[0]; didLogError = _tuple$2[1]; @@ -304062,7 +306827,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { /* */ if (resolveResult.PathPair.IsExternal) { $s = 26; continue; } /* */ $s = 27; continue; /* if (resolveResult.PathPair.IsExternal) { */ case 26: - _arg$5 = ptrType$5.nil; + _arg$5 = ptrType$7.nil; _arg$6 = $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range); _r$16 = fmt.Sprintf("The injected path %q cannot be marked as external", new sliceType$3([new $String(importPath$1)])); /* */ $s = 29; case 29: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } _arg$7 = _r$16; @@ -304074,7 +306839,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { $s = 25; continue; /* } else if (!didLogError) { */ case 24: _arg$8 = $clone(s[0].log, logger.Log); - _arg$9 = ptrType$9.nil; + _arg$9 = ptrType$5.nil; _arg$10 = $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range); _r$17 = fmt.Sprintf("Could not resolve %q", new sliceType$3([new $String(importPath$1)])); /* */ $s = 31; case 31: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } _arg$11 = _r$17; @@ -304107,10 +306872,10 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { /* */ $s = 18; continue; /* if (!(resolveResult === ptrType$1.nil)) { */ case 17: channel[0] = new $Chan(config.InjectedFile, 1); - _arg = $clone(resolveResult, resolver.ResolveResult); + _arg = $clone((resolveResult === ptrType$1.nil && $throwNilPointerError(), resolveResult), resolver.ResolveResult); _r$5 = resolver.PrettyPath(s[0].fs, $clone(resolveResult.PathPair.Primary, logger.Path)); /* */ $s = 19; case 19: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _arg$1 = _r$5; - _arg$2 = ptrType$9.nil; + _arg$2 = ptrType$5.nil; _arg$3 = $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range); _arg$4 = ptrType$4.nil; _arg$5 = channel[0]; @@ -304171,11 +306936,11 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { logger.Path.copy(stdinPath, new logger.Path.ptr(_r$1, "file", "", new logger.ImportAttributes.ptr(""), 0)); /* } */ case 9: /* } */ case 5: - resolveResult = new resolver.ResolveResult.ptr($clone(new resolver.PathPair.ptr($clone(stdinPath, logger.Path), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), resolver.PathPair), $ifaceNil, ptrType$18.nil, ptrType$3.nil, new config.TSConfigJSX.ptr(sliceType$5.nil, sliceType$5.nil, ptrType$17.nil, 0), ptrType$19.nil, ptrType$20.nil, new js_ast.ModuleTypeData.ptr(ptrType$9.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0)); + resolveResult = new resolver.ResolveResult.ptr($clone(new resolver.PathPair.ptr($clone(stdinPath, logger.Path), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), resolver.PathPair), $ifaceNil, ptrType$20.nil, ptrType$3.nil, new config.TSConfigJSX.ptr(sliceType$5.nil, sliceType$5.nil, ptrType$19.nil, 0), ptrType$21.nil, ptrType$22.nil, new js_ast.ModuleTypeData.ptr(ptrType$5.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0)); _arg = $clone(resolveResult, resolver.ResolveResult); _r$2 = resolver.PrettyPath(s[0].fs, $clone(stdinPath, logger.Path)); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _arg$1 = _r$2; - _arg$2 = ptrType$9.nil; + _arg$2 = ptrType$5.nil; _arg$3 = $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range); _arg$4 = ptrType$4.nil; _arg$5 = $chanNil; @@ -304196,7 +306961,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { /* while (true) { */ case 18: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 19; continue; } i = _i; - entryPoint = ((i < 0 || i >= entryPoints.$length) ? ($throwRuntimeError("index out of range"), undefined) : entryPoints.$array[entryPoints.$offset + i]); + entryPoint = ((i < 0 || i >= entryPoints.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(entryPoints.$array, entryPoints.$offset + i, ptrType$30)); absPath = entryPoint.InputPath; if (strings.ContainsRune(absPath, 42)) { _i++; @@ -304225,7 +306990,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { _r$10 = $clone(entries, fs.DirEntries).Get(base); /* */ $s = 30; case 30: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } _tuple$1 = _r$10; entry = _tuple$1[0]; - if (!(!(entry === ptrType$27.nil))) { _v = false; $s = 33; continue s; } + if (!(!(entry === ptrType$29.nil))) { _v = false; $s = 33; continue s; } _r$11 = entry.Kind(s[0].fs); /* */ $s = 34; case 34: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } _v = _r$11 === 2; case 33: /* */ if (_v) { $s = 31; continue; } @@ -304241,7 +307006,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { /* } */ case 32: $s = 29; continue; /* } else if (s[0].log.Level <= 2 && !($interfaceIsEqual(originalError, $ifaceNil))) { */ case 28: - _arg$6 = ptrType$5.nil; + _arg$6 = ptrType$7.nil; _arg$7 = $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range); _arg$8 = new $String(absPath); _r$13 = originalError.Error(); /* */ $s = 38; case 38: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } @@ -304315,18 +307080,18 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { while (true) { if (!(_i$3 < _ref$3.$length)) { break; } key$1 = ((_i$3 < 0 || _i$3 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$3]); - info.results = $append(info.results, (_entry$1 = $mapIndex(results,$String.keyFor(key$1)), _entry$1 !== undefined ? _entry$1.v : new resolver.ResolveResult.ptr(new resolver.PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), $ifaceNil, ptrType$18.nil, ptrType$3.nil, new config.TSConfigJSX.ptr(sliceType$5.nil, sliceType$5.nil, ptrType$17.nil, 0), ptrType$19.nil, ptrType$20.nil, new js_ast.ModuleTypeData.ptr(ptrType$9.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0)))); + info.results = $append(info.results, (_entry$1 = $mapIndex(results,$String.keyFor(key$1)), _entry$1 !== undefined ? _entry$1.v : new resolver.ResolveResult.ptr(new resolver.PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), $ifaceNil, ptrType$20.nil, ptrType$3.nil, new config.TSConfigJSX.ptr(sliceType$5.nil, sliceType$5.nil, ptrType$19.nil, 0), ptrType$21.nil, ptrType$22.nil, new js_ast.ModuleTypeData.ptr(ptrType$5.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0)))); _i$3++; } entryPointInfo.copy(((i$2 < 0 || i$2 >= entryPointInfos[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : entryPointInfos[0].$array[entryPointInfos[0].$offset + i$2]), info); - /* */ if (!(msg === ptrType$14.nil)) { $s = 11; continue; } + /* */ if (!(msg === ptrType$16.nil)) { $s = 11; continue; } /* */ $s = 12; continue; - /* if (!(msg === ptrType$14.nil)) { */ case 11: - $r = $clone(s[0].log, logger.Log).AddID(msg.ID, msg.Kind, ptrType$5.nil, $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range), msg.Data.Text); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* if (!(msg === ptrType$16.nil)) { */ case 11: + $r = $clone(s[0].log, logger.Log).AddID(msg.ID, msg.Kind, ptrType$7.nil, $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range), msg.Data.Text); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 12: $s = 9; continue; /* } else { */ case 8: - _arg$11 = ptrType$5.nil; + _arg$11 = ptrType$7.nil; _arg$12 = $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range); _r$17 = fmt.Sprintf("Could not resolve %q", new sliceType$3([new $String(entryPoint$2.InputPath)])); /* */ $s = 14; case 14: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } _arg$13 = _r$17; @@ -304336,7 +307101,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { $s = -1; return; /* } */ case 4: /* } */ case 2: - _r$18 = RunOnResolvePlugins(s[0].options.Plugins, s[0].res, $clone(s[0].log, logger.Log), s[0].fs, s[0].caches.FSCache, ptrType$9.nil, $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range), $clone(importer, logger.Path), entryPoint$2.InputPath, $clone(new logger.ImportAttributes.ptr(""), logger.ImportAttributes), 0, entryPointAbsResolveDir[0], $ifaceNil); /* */ $s = 16; case 16: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + _r$18 = RunOnResolvePlugins(s[0].options.Plugins, s[0].res, $clone(s[0].log, logger.Log), s[0].fs, s[0].caches.FSCache, ptrType$5.nil, $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range), $clone(importer, logger.Path), entryPoint$2.InputPath, $clone(new logger.ImportAttributes.ptr(""), logger.ImportAttributes), 0, entryPointAbsResolveDir[0], $ifaceNil); /* */ $s = 16; case 16: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } _tuple$3 = _r$18; resolveResult$1 = _tuple$3[0]; didLogError = _tuple$3[1]; @@ -304348,14 +307113,14 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { /* */ if (resolveResult$1.PathPair.IsExternal) { $s = 20; continue; } /* */ $s = 21; continue; /* if (resolveResult$1.PathPair.IsExternal) { */ case 20: - _arg$14 = ptrType$5.nil; + _arg$14 = ptrType$7.nil; _arg$15 = $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range); _r$19 = fmt.Sprintf("The entry point %q cannot be marked as external", new sliceType$3([new $String(entryPoint$2.InputPath)])); /* */ $s = 23; case 23: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } _arg$16 = _r$19; $r = $clone(s[0].log, logger.Log).AddError(_arg$14, _arg$15, _arg$16); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 22; continue; /* } else { */ case 21: - entryPointInfo.copy(((i$2 < 0 || i$2 >= entryPointInfos[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : entryPointInfos[0].$array[entryPointInfos[0].$offset + i$2]), new entryPointInfo.ptr(new sliceType$26([$clone(resolveResult$1, resolver.ResolveResult)]), false)); + entryPointInfo.copy(((i$2 < 0 || i$2 >= entryPointInfos[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : entryPointInfos[0].$array[entryPointInfos[0].$offset + i$2]), new entryPointInfo.ptr(new sliceType$26([$clone((resolveResult$1 === ptrType$1.nil && $throwNilPointerError(), resolveResult$1), resolver.ResolveResult)]), false)); /* } */ case 22: $s = 19; continue; /* } else if (!didLogError) { */ case 18: @@ -304375,11 +307140,11 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { _arg$18 = new $String(_r$22); _arg$19 = new $String(entryPoint$2.InputPath); _r$23 = fmt.Sprintf("Use the relative path %q to reference the file %q. Without the leading \"./\", the path %q is being interpreted as a package path instead.", new sliceType$3([_arg$17, _arg$18, _arg$19])); /* */ $s = 32; case 32: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - notes = $append(notes, new logger.MsgData.ptr($ifaceNil, ptrType$6.nil, _r$23, false)); + notes = $append(notes, new logger.MsgData.ptr($ifaceNil, ptrType$8.nil, _r$23, false)); /* } */ case 30: /* } */ case 26: _arg$20 = $clone(s[0].log, logger.Log); - _arg$21 = ptrType$9.nil; + _arg$21 = ptrType$5.nil; _arg$22 = $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range); _r$24 = fmt.Sprintf("Could not resolve %q", new sliceType$3([new $String(entryPoint$2.InputPath)])); /* */ $s = 33; case 33: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } _arg$23 = _r$24; @@ -304454,7 +307219,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { entryPointsToParse = $append(entryPointsToParse, new entryPointToParse.ptr(entryMetas.$length, (function(entryPointAbsResolveDir, entryPointInfos, entryPointWaitGroup, prettyPath, resolveResult$1, s) { return function scanner·addEntryPoints·func2() { var {$24r$3, _r$17, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$17 = s[0].maybeParseFile($clone(resolveResult$1[0], resolver.ResolveResult), prettyPath[0], ptrType$9.nil, $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range), ptrType$4.nil, 1, $chanNil); /* */ $s = 1; case 1: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + _r$17 = s[0].maybeParseFile($clone(resolveResult$1[0], resolver.ResolveResult), prettyPath[0], ptrType$5.nil, $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range), ptrType$4.nil, 1, $chanNil); /* */ $s = 1; case 1: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } $24r$3 = _r$17; $s = 2; case 2: return $24r$3; /* */ } return; } var $f = {$blk: scanner·addEntryPoints·func2, $c: true, $r, $24r$3, _r$17, $s};return $f; @@ -304471,7 +307236,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { /* while (true) { */ case 60: /* if (!(_i$4 < _ref$4.$length)) { break; } */ if(!(_i$4 < _ref$4.$length)) { $s = 61; continue; } i$3 = _i$4; - entryPoint$2 = ((i$3 < 0 || i$3 >= entryMetas.$length) ? ($throwRuntimeError("index out of range"), undefined) : entryMetas.$array[entryMetas.$offset + i$3]); + entryPoint$2 = ((i$3 < 0 || i$3 >= entryMetas.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(entryMetas.$array, entryMetas.$offset + i$3, ptrType$31)); if (!(entryPoint$2.OutputPathWasAutoGenerated)) { _v$1 = false; $s = 64; continue s; } _r$17 = s[0].fs.IsAbs(entryPoint$2.OutputPath); /* */ $s = 65; case 65: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } _v$1 = !_r$17; case 64: @@ -304508,7 +307273,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { /* while (true) { */ case 73: /* if (!(_i$6 < _ref$6.$length)) { break; } */ if(!(_i$6 < _ref$6.$length)) { $s = 74; continue; } i$4 = _i$6; - entryPoint$3 = ((i$4 < 0 || i$4 >= entryMetas.$length) ? ($throwRuntimeError("index out of range"), undefined) : entryMetas.$array[entryMetas.$offset + i$4]); + entryPoint$3 = ((i$4 < 0 || i$4 >= entryMetas.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(entryMetas.$array, entryMetas.$offset + i$4, ptrType$31)); _r$21 = s[0].fs.IsAbs(entryPoint$3.OutputPath); /* */ $s = 77; case 77: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } /* */ if (_r$21) { $s = 75; continue; } /* */ $s = 76; continue; @@ -304627,16 +307392,16 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { } _r$1 = result.file.inputFile.Repr.ImportRecords(); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } recordsPtr = _r$1; - /* */ if ((s.options.Mode === 2) && !(recordsPtr === ptrType$12.nil)) { $s = 9; continue; } + /* */ if ((s.options.Mode === 2) && !(recordsPtr === ptrType$13.nil)) { $s = 9; continue; } /* */ $s = 10; continue; - /* if ((s.options.Mode === 2) && !(recordsPtr === ptrType$12.nil)) { */ case 9: + /* if ((s.options.Mode === 2) && !(recordsPtr === ptrType$13.nil)) { */ case 9: records = recordsPtr.$get(); _ref = records; _i = 0; /* while (true) { */ case 11: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 12; continue; } importRecordIndex = _i; - record = ((importRecordIndex < 0 || importRecordIndex >= records.$length) ? ($throwRuntimeError("index out of range"), undefined) : records.$array[records.$offset + importRecordIndex]); + record = ((importRecordIndex < 0 || importRecordIndex >= records.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(records.$array, records.$offset + importRecordIndex, ptrType$15)); with$1 = ptrType$4.nil; if (!(record.AssertOrWith === ptrType$4.nil) && (record.AssertOrWith.Keyword === 1)) { with$1 = record.AssertOrWith; @@ -304662,7 +307427,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { /* */ if (!resolveResult.PathPair.IsExternal) { $s = 19; continue; } /* */ $s = 20; continue; /* if (!resolveResult.PathPair.IsExternal) { */ case 19: - _arg = $clone(resolveResult, resolver.ResolveResult); + _arg = $clone((resolveResult === ptrType$1.nil && $throwNilPointerError(), resolveResult), resolver.ResolveResult); _r$4 = resolver.PrettyPath(s.fs, $clone(path, logger.Path)); /* */ $s = 22; case 22: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _arg$1 = _r$4; _arg$2 = result.file.inputFile.Source; @@ -304740,7 +307505,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 3; continue; } resolveResult = [resolveResult]; key$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - resolveResult[0] = $clone((_entry$1 = $mapIndex(result.resolveResults,$String.keyFor(key$1)), _entry$1 !== undefined ? _entry$1.v : new resolver.ResolveResult.ptr(new resolver.PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), $ifaceNil, ptrType$18.nil, ptrType$3.nil, new config.TSConfigJSX.ptr(sliceType$5.nil, sliceType$5.nil, ptrType$17.nil, 0), ptrType$19.nil, ptrType$20.nil, new js_ast.ModuleTypeData.ptr(ptrType$9.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0))), resolver.ResolveResult); + resolveResult[0] = $clone((_entry$1 = $mapIndex(result.resolveResults,$String.keyFor(key$1)), _entry$1 !== undefined ? _entry$1.v : new resolver.ResolveResult.ptr(new resolver.PathPair.ptr(new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), false), $ifaceNil, ptrType$20.nil, ptrType$3.nil, new config.TSConfigJSX.ptr(sliceType$5.nil, sliceType$5.nil, ptrType$19.nil, 0), ptrType$21.nil, ptrType$22.nil, new js_ast.ModuleTypeData.ptr(ptrType$5.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0))), resolver.ResolveResult); value = new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)); importRecordIndex = ((importRecords.$length >>> 0)); sourceIndex$1 = new ast.Index32.ptr(0); @@ -304775,7 +307540,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { } /* } */ case 10: resolveResults = $append(resolveResults, resolveResult[0]); - importRecords = $append(importRecords, new ast.ImportRecord.ptr(assertions, ptrType$13.nil, $clone(path, logger.Path), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Loc.ptr(0), $clone(sourceIndex$1, ast.Index32), new ast.Index32.ptr(0), 0, kind)); + importRecords = $append(importRecords, new ast.ImportRecord.ptr(assertions, ptrType$14.nil, $clone(path, logger.Path), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Loc.ptr(0), $clone(sourceIndex$1, ast.Index32), new ast.Index32.ptr(0), 0, kind)); _1 = kind; if (_1 === (3)) { value.Data = new js_ast.EImportString.ptr(importRecordIndex, new logger.Loc.ptr(0)); @@ -304784,7 +307549,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { } else { $panic(new $String("Internal error")); } - object[0].Properties = $append(object[0].Properties, new js_ast.Property.ptr(ptrType$28.nil, $clone(new js_ast.Expr.ptr(new js_ast.EString.ptr(helpers.StringToUTF16(key$1), new logger.Loc.ptr(0), false, false, false), new logger.Loc.ptr(0)), js_ast.Expr), $clone(new js_ast.Expr.ptr(new js_ast.EArrow.ptr(sliceType$30.nil, $clone(new js_ast.FnBody.ptr($clone(new js_ast.SBlock.ptr(new sliceType$31([$clone(new js_ast.Stmt.ptr(new js_ast.SReturn.ptr($clone(value, js_ast.Expr)), new logger.Loc.ptr(0)), js_ast.Stmt)]), new logger.Loc.ptr(0)), js_ast.SBlock), new logger.Loc.ptr(0)), js_ast.FnBody), false, false, true, false), new logger.Loc.ptr(0)), js_ast.Expr), new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), sliceType$29.nil, new logger.Loc.ptr(0), new logger.Loc.ptr(0), 0, 0)); + object[0].Properties = $append(object[0].Properties, new js_ast.Property.ptr(ptrType$32.nil, $clone(new js_ast.Expr.ptr(new js_ast.EString.ptr(helpers.StringToUTF16(key$1), new logger.Loc.ptr(0), false, false, false), new logger.Loc.ptr(0)), js_ast.Expr), $clone(new js_ast.Expr.ptr(new js_ast.EArrow.ptr(sliceType$30.nil, $clone(new js_ast.FnBody.ptr($clone(new js_ast.SBlock.ptr(new sliceType$31([$clone(new js_ast.Stmt.ptr(new js_ast.SReturn.ptr($clone(value, js_ast.Expr)), new logger.Loc.ptr(0)), js_ast.Stmt)]), new logger.Loc.ptr(0)), js_ast.SBlock), new logger.Loc.ptr(0)), js_ast.FnBody), false, false, true, false), new logger.Loc.ptr(0)), js_ast.Expr), new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), sliceType$29.nil, new logger.Loc.ptr(0), new logger.Loc.ptr(0), 0, 0)); _i$1++; $s = 2; continue; case 3: @@ -304795,11 +307560,11 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { if (!(resolveResults.$length < ast$1.ImportRecords.$length)) { break; } resolveResults = $append(resolveResults, ptrType$1.nil); } - $s = -1; return new parseResult.ptr(resolveResults, false, $clone(new scannerFile.ptr("", $ifaceNil, $clone(new graph.InputFile.ptr(new graph.JSRepr.ptr(new graph.JSReprMeta.ptr(false, false, false, ptrType$7.nil, ptrType$8.nil, sliceType$5.nil, false, sliceType$6.nil, new ast.Index32.ptr(0), new ast.Index32.ptr(0), false, 0, false, false, false, false), $clone(ast$1, js_ast.AST), new ast.Index32.ptr(0)), ptrType$2.nil, sliceType$2.nil, "", new graph.SideEffects.ptr(ptrType$3.nil, 0), $clone(source, logger.Source), 0, true), graph.InputFile)), scannerFile), new tlaCheck.ptr(new ast.Index32.ptr(0), 0, 0), true); + $s = -1; return new parseResult.ptr(resolveResults, false, $clone(new scannerFile.ptr("", $ifaceNil, $clone(new graph.InputFile.ptr(new graph.JSRepr.ptr(new graph.JSReprMeta.ptr(false, false, false, ptrType$9.nil, ptrType$10.nil, sliceType$5.nil, false, sliceType$6.nil, new ast.Index32.ptr(0), new ast.Index32.ptr(0), false, 0, false, false, false, false), $clone(ast$1, js_ast.AST), new ast.Index32.ptr(0)), ptrType$2.nil, sliceType$2.nil, "", new graph.SideEffects.ptr(ptrType$3.nil, 0), $clone(source, logger.Source), 0, true), graph.InputFile)), scannerFile), new tlaCheck.ptr(new ast.Index32.ptr(0), 0, 0), true); /* */ } return; } var $f = {$blk: generateResultForGlobResolve, $c: true, $r, _1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _entry, _entry$1, _i, _i$1, _key, _keys, _r, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _size, _tuple, assertions, ast$1, fakeSourcePath, importRange, importRecordIndex, importRecords, importSource, importWith, key, key$1, keys, kind, object, ok, path, relPath, resolveResult, resolveResults, result, s, source, sourceIndex, sourceIndex$1, value, $s};return $f; }; $ptrType(scanner).prototype.processScannedFiles = function processScannedFiles(entryPointMeta) { - var {$24r, _1, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$16, _arg$17, _arg$18, _arg$19, _arg$2, _arg$20, _arg$21, _arg$22, _arg$23, _arg$24, _arg$25, _arg$26, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _entry, _entry$1, _entry$2, _entry$3, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _i$8, _i$9, _key, _key$1, _key$2, _keys, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$10, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _ref$9, _size, _tmp, _tmp$1, _tmp$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, attr, attr$1, attrs, attrs$1, base, by, bytes$1, css, customFilePath, data, data$1, dir, entry, entryPointJSON, entryPointMeta, entryPointSourceIndexToMetaIndex, ext, files, format, h, hash, i, i$1, i$2, i$3, importAttributeNameCollisions, importRecordIndex, inputs, isEntryPoint, isFirstImport, jsonMetadataChunk, meta, metaIndex, metafileWith, notes, ok, ok$1, ok$2, ok$3, ok$4, ok$5, ok$6, ok$7, originalExt, otherFile, otherModule, otherRepr, otherRepr$1, otherResult, prettyPath, record, records, recordsPtr, relPath, repr, resolveResult, result, result$1, result$2, s, sb, sb$1, secondaryKey, secondaryVisited, source, source$1, sourceIndex, sourceIndex$1, sourceIndex$2, sourceIndex$3, sourceIndex$4, sourceIndices, stubKey, template, templateExt, text, tracker, tracker$1, useOutputFile, with$1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $deferred, $r, $c} = $restore(this, {entryPointMeta}); + var {$24r, _1, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$16, _arg$17, _arg$18, _arg$19, _arg$2, _arg$20, _arg$21, _arg$22, _arg$23, _arg$24, _arg$25, _arg$26, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _entry, _entry$1, _entry$2, _entry$3, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _i$8, _i$9, _key, _key$1, _key$2, _keys, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$10, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _ref$9, _size, _tmp, _tmp$1, _tmp$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, attr, attr$1, attrs, attrs$1, base, by, bytes$1, css, customFilePath, data, data$1, dir, entry, entryPointJSON, entryPointMeta, entryPointSourceIndexToMetaIndex, ext, files, format, h, hash, i, i$1, i$2, i$3, importAttributeNameCollisions, importRecordIndex, inputs, isEntryPoint, isFirstImport, jsonMetadataChunk, meta, metaIndex, metafileWith, notes, ok, ok$1, ok$2, ok$3, ok$4, ok$5, ok$6, ok$7, originalExt, otherFile, otherModule, otherRepr, otherRepr$1, otherResult, prettyPath, record, records, recordsPtr, relPath, repr, resolveResult, result, result$1, result$2, s, sb, sb$1, secondaryKey, secondaryVisited, source, source$1, sourceIndex, sourceIndex$1, sourceIndex$2, sourceIndex$3, sourceIndex$4, sourceIndices, stubKey, template, templateExt, text, tracker, tracker$1, useOutputFile, with$1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $deferred, $r, $c} = $restore(this, {entryPointMeta}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); s = this; $r = s.timer.Begin("Process scanned files"); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } @@ -304820,7 +307585,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { while (true) { if (!(_i$1 < _ref$1.$length)) { break; } sourceIndex = _i$1; - result = (x$1 = s.results, ((sourceIndex < 0 || sourceIndex >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + sourceIndex])); + result = (x$1 = s.results, ((sourceIndex < 0 || sourceIndex >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + sourceIndex, ptrType$33))); if (result.ok) { prettyPath = result.file.inputFile.Source.PrettyPath; _key$1 = prettyPath; (importAttributeNameCollisions || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$1), { k: _key$1, v: $append((_entry = $mapIndex(importAttributeNameCollisions,$String.keyFor(prettyPath)), _entry !== undefined ? _entry.v : sliceType$10.nil), ((sourceIndex >>> 0))) }); @@ -304855,7 +307620,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { _i$3++; continue; } - sb = new strings.Builder.ptr(ptrType$29.nil, sliceType$14.nil); + sb = new strings.Builder.ptr(ptrType$34.nil, sliceType$14.nil); sb.WriteString(" with {"); _ref$4 = attrs; _i$4 = 0; @@ -304897,7 +307662,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { _i$5++; /* continue; */ $s = 2; continue; } - sb$1 = new strings.Builder.ptr(ptrType$29.nil, sliceType$14.nil); + sb$1 = new strings.Builder.ptr(ptrType$34.nil, sliceType$14.nil); isFirstImport = true; /* */ if (s.options.NeedsMetafile) { $s = 4; continue; } /* */ $s = 5; continue; @@ -304909,9 +307674,9 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { /* } */ case 5: _r$2 = result$1.file.inputFile.Repr.ImportRecords(); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } recordsPtr = _r$2; - /* */ if ((s.options.Mode === 2) && !(recordsPtr === ptrType$12.nil)) { $s = 9; continue; } + /* */ if ((s.options.Mode === 2) && !(recordsPtr === ptrType$13.nil)) { $s = 9; continue; } /* */ $s = 10; continue; - /* if ((s.options.Mode === 2) && !(recordsPtr === ptrType$12.nil)) { */ case 9: + /* if ((s.options.Mode === 2) && !(recordsPtr === ptrType$13.nil)) { */ case 9: records = recordsPtr.$get(); tracker[0] = $clone(logger.MakeLineColumnTracker(result$1.file.inputFile.Source), logger.LineColumnTracker); _ref$6 = records; @@ -304919,12 +307684,12 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { /* while (true) { */ case 11: /* if (!(_i$6 < _ref$6.$length)) { break; } */ if(!(_i$6 < _ref$6.$length)) { $s = 12; continue; } importRecordIndex = _i$6; - record = ((importRecordIndex < 0 || importRecordIndex >= records.$length) ? ($throwRuntimeError("index out of range"), undefined) : records.$array[records.$offset + importRecordIndex]); + record = ((importRecordIndex < 0 || importRecordIndex >= records.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(records.$array, records.$offset + importRecordIndex, ptrType$15)); metafileWith = ""; if (s.options.NeedsMetafile) { with$1 = record.AssertOrWith; if (!(with$1 === ptrType$4.nil) && (with$1.Keyword === 1) && with$1.Entries.$length > 0) { - data = new strings.Builder.ptr(ptrType$29.nil, sliceType$14.nil); + data = new strings.Builder.ptr(ptrType$34.nil, sliceType$14.nil); data.WriteString(",\n \"with\": {"); _ref$7 = with$1.Entries; _i$7 = 0; @@ -304982,7 +307747,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { ast.Index32.copy(record.SourceIndex, ast.MakeIndex32(secondaryVisited.sourceIndex)); } /* } */ case 20: - otherResult = (x$4 = s.results, x$5 = $clone(record.SourceIndex, ast.Index32).GetIndex(), ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])); + otherResult = (x$4 = s.results, x$5 = $clone(record.SourceIndex, ast.Index32).GetIndex(), ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$4.$array, x$4.$offset + x$5, ptrType$33))); otherFile = otherResult.file; /* */ if (s.options.NeedsMetafile) { $s = 24; continue; } /* */ $s = 25; continue; @@ -305004,7 +307769,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { _arg$1 = $clone(record.Range, logger.Range); _r$8 = fmt.Sprintf("The file %q was loaded with the %q loader", new sliceType$3([new $String(otherFile.inputFile.Source.PrettyPath), new $String((x$6 = config.LoaderToString, x$7 = otherFile.inputFile.Loader, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])))])); /* */ $s = 30; case 30: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } _arg$2 = _r$8; - _arg$3 = new sliceType$4([$clone(tracker[0].MsgData($clone(js_lexer.RangeOfImportAssertOrWith($clone(result$1.file.inputFile.Source, logger.Source), $clone(ast.FindAssertOrWithEntry(record.AssertOrWith.Entries, "type"), ast.AssertOrWithEntry), 2), logger.Range), "This import assertion requires the loader to be \"json\" instead:"), logger.MsgData), $clone(new logger.MsgData.ptr($ifaceNil, ptrType$6.nil, "You need to either reconfigure esbuild to ensure that the loader for this file is \"json\" or you need to remove this import assertion.", false), logger.MsgData)]); + _arg$3 = new sliceType$4([$clone(tracker[0].MsgData($clone(js_lexer.RangeOfImportAssertOrWith($clone(result$1.file.inputFile.Source, logger.Source), $clone((x$8 = ast.FindAssertOrWithEntry(record.AssertOrWith.Entries, "type"), (x$8 === ptrType$6.nil && $throwNilPointerError(), x$8)), ast.AssertOrWithEntry), 2), logger.Range), "This import assertion requires the loader to be \"json\" instead:"), logger.MsgData), $clone(new logger.MsgData.ptr($ifaceNil, ptrType$8.nil, "You need to either reconfigure esbuild to ensure that the loader for this file is \"json\" or you need to remove this import assertion.", false), logger.MsgData)]); $r = $clone(s.log, logger.Log).AddErrorWithNotes(_arg, _arg$1, _arg$2, _arg$3); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 29: _1 = record.Kind; @@ -305013,7 +307778,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { /* */ if (_1 === (7)) { $s = 35; continue; } /* */ $s = 36; continue; /* if (_1 === (6)) { */ case 33: - _tuple$1 = $assertType(otherFile.inputFile.Repr, ptrType$15, true); + _tuple$1 = $assertType(otherFile.inputFile.Repr, ptrType$17, true); ok$1 = _tuple$1[1]; /* */ if (ok$1 && !((otherFile.inputFile.Loader === 7))) { $s = 37; continue; } /* */ $s = 38; continue; @@ -305022,13 +307787,13 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { _arg$5 = $clone(record.Range, logger.Range); _r$9 = fmt.Sprintf("Cannot use \"composes\" with %q", new sliceType$3([new $String(otherFile.inputFile.Source.PrettyPath)])); /* */ $s = 39; case 39: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } _arg$6 = _r$9; - _r$10 = fmt.Sprintf("You can only use \"composes\" with CSS files and %q is not a CSS file (it was loaded with the %q loader).", new sliceType$3([new $String(otherFile.inputFile.Source.PrettyPath), new $String((x$8 = config.LoaderToString, x$9 = otherFile.inputFile.Loader, ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + x$9])))])); /* */ $s = 40; case 40: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _arg$7 = new sliceType$4([$clone(new logger.MsgData.ptr($ifaceNil, ptrType$6.nil, _r$10, false), logger.MsgData)]); + _r$10 = fmt.Sprintf("You can only use \"composes\" with CSS files and %q is not a CSS file (it was loaded with the %q loader).", new sliceType$3([new $String(otherFile.inputFile.Source.PrettyPath), new $String((x$9 = config.LoaderToString, x$10 = otherFile.inputFile.Loader, ((x$10 < 0 || x$10 >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + x$10])))])); /* */ $s = 40; case 40: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _arg$7 = new sliceType$4([$clone(new logger.MsgData.ptr($ifaceNil, ptrType$8.nil, _r$10, false), logger.MsgData)]); $r = $clone(s.log, logger.Log).AddErrorWithNotes(_arg$4, _arg$5, _arg$6, _arg$7); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 38: $s = 36; continue; /* } else if (_1 === (5)) { */ case 34: - _tuple$2 = $assertType(otherFile.inputFile.Repr, ptrType$15, true); + _tuple$2 = $assertType(otherFile.inputFile.Repr, ptrType$17, true); ok$2 = _tuple$2[1]; /* */ if (ok$2 && !((otherFile.inputFile.Loader === 7))) { $s = 42; continue; } /* */ $s = 43; continue; @@ -305037,27 +307802,27 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { _arg$9 = $clone(record.Range, logger.Range); _r$11 = fmt.Sprintf("Cannot import %q into a CSS file", new sliceType$3([new $String(otherFile.inputFile.Source.PrettyPath)])); /* */ $s = 44; case 44: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } _arg$10 = _r$11; - _r$12 = fmt.Sprintf("An \"@import\" rule can only be used to import another CSS file and %q is not a CSS file (it was loaded with the %q loader).", new sliceType$3([new $String(otherFile.inputFile.Source.PrettyPath), new $String((x$10 = config.LoaderToString, x$11 = otherFile.inputFile.Loader, ((x$11 < 0 || x$11 >= x$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + x$11])))])); /* */ $s = 45; case 45: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _arg$11 = new sliceType$4([$clone(new logger.MsgData.ptr($ifaceNil, ptrType$6.nil, _r$12, false), logger.MsgData)]); + _r$12 = fmt.Sprintf("An \"@import\" rule can only be used to import another CSS file and %q is not a CSS file (it was loaded with the %q loader).", new sliceType$3([new $String(otherFile.inputFile.Source.PrettyPath), new $String((x$11 = config.LoaderToString, x$12 = otherFile.inputFile.Loader, ((x$12 < 0 || x$12 >= x$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + x$12])))])); /* */ $s = 45; case 45: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _arg$11 = new sliceType$4([$clone(new logger.MsgData.ptr($ifaceNil, ptrType$8.nil, _r$12, false), logger.MsgData)]); $r = $clone(s.log, logger.Log).AddErrorWithNotes(_arg$8, _arg$9, _arg$10, _arg$11); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 43: $s = 36; continue; /* } else if (_1 === (7)) { */ case 35: _ref$8 = otherFile.inputFile.Repr; - /* */ if ($assertType(_ref$8, ptrType$16, true)[1]) { $s = 47; continue; } - /* */ if ($assertType(_ref$8, ptrType$15, true)[1]) { $s = 48; continue; } + /* */ if ($assertType(_ref$8, ptrType$18, true)[1]) { $s = 47; continue; } + /* */ if ($assertType(_ref$8, ptrType$17, true)[1]) { $s = 48; continue; } /* */ $s = 49; continue; - /* if ($assertType(_ref$8, ptrType$16, true)[1]) { */ case 47: + /* if ($assertType(_ref$8, ptrType$18, true)[1]) { */ case 47: otherRepr = _ref$8.$val; _arg$12 = tracker[0]; _arg$13 = $clone(record.Range, logger.Range); _r$13 = fmt.Sprintf("Cannot use %q as a URL", new sliceType$3([new $String(otherFile.inputFile.Source.PrettyPath)])); /* */ $s = 50; case 50: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } _arg$14 = _r$13; - _r$14 = fmt.Sprintf("You can't use a \"url()\" token to reference a CSS file, and %q is a CSS file (it was loaded with the %q loader).", new sliceType$3([new $String(otherFile.inputFile.Source.PrettyPath), new $String((x$12 = config.LoaderToString, x$13 = otherFile.inputFile.Loader, ((x$13 < 0 || x$13 >= x$12.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + x$13])))])); /* */ $s = 51; case 51: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - _arg$15 = new sliceType$4([$clone(new logger.MsgData.ptr($ifaceNil, ptrType$6.nil, _r$14, false), logger.MsgData)]); + _r$14 = fmt.Sprintf("You can't use a \"url()\" token to reference a CSS file, and %q is a CSS file (it was loaded with the %q loader).", new sliceType$3([new $String(otherFile.inputFile.Source.PrettyPath), new $String((x$13 = config.LoaderToString, x$14 = otherFile.inputFile.Loader, ((x$14 < 0 || x$14 >= x$13.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + x$14])))])); /* */ $s = 51; case 51: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _arg$15 = new sliceType$4([$clone(new logger.MsgData.ptr($ifaceNil, ptrType$8.nil, _r$14, false), logger.MsgData)]); $r = $clone(s.log, logger.Log).AddErrorWithNotes(_arg$12, _arg$13, _arg$14, _arg$15); /* */ $s = 52; case 52: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 49; continue; - /* } else if ($assertType(_ref$8, ptrType$15, true)[1]) { */ case 48: + /* } else if ($assertType(_ref$8, ptrType$17, true)[1]) { */ case 48: otherRepr$1 = _ref$8.$val; /* */ if (otherRepr$1.AST.URLForCSS === "" && !((otherFile.inputFile.Loader === 7))) { $s = 53; continue; } /* */ $s = 54; continue; @@ -305066,14 +307831,14 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { _arg$17 = $clone(record.Range, logger.Range); _r$15 = fmt.Sprintf("Cannot use %q as a URL", new sliceType$3([new $String(otherFile.inputFile.Source.PrettyPath)])); /* */ $s = 55; case 55: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } _arg$18 = _r$15; - _r$16 = fmt.Sprintf("You can't use a \"url()\" token to reference the file %q because it was loaded with the %q loader, which doesn't provide a URL to embed in the resulting CSS.", new sliceType$3([new $String(otherFile.inputFile.Source.PrettyPath), new $String((x$14 = config.LoaderToString, x$15 = otherFile.inputFile.Loader, ((x$15 < 0 || x$15 >= x$14.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + x$15])))])); /* */ $s = 56; case 56: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - _arg$19 = new sliceType$4([$clone(new logger.MsgData.ptr($ifaceNil, ptrType$6.nil, _r$16, false), logger.MsgData)]); + _r$16 = fmt.Sprintf("You can't use a \"url()\" token to reference the file %q because it was loaded with the %q loader, which doesn't provide a URL to embed in the resulting CSS.", new sliceType$3([new $String(otherFile.inputFile.Source.PrettyPath), new $String((x$15 = config.LoaderToString, x$16 = otherFile.inputFile.Loader, ((x$16 < 0 || x$16 >= x$15.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$15.$array[x$15.$offset + x$16])))])); /* */ $s = 56; case 56: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + _arg$19 = new sliceType$4([$clone(new logger.MsgData.ptr($ifaceNil, ptrType$8.nil, _r$16, false), logger.MsgData)]); $r = $clone(s.log, logger.Log).AddErrorWithNotes(_arg$16, _arg$17, _arg$18, _arg$19); /* */ $s = 57; case 57: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 54: /* } */ case 49: /* } */ case 36: case 32: - _tuple$3 = $assertType(otherFile.inputFile.Repr, ptrType$30, true); + _tuple$3 = $assertType(otherFile.inputFile.Repr, ptrType$35, true); ok$3 = _tuple$3[1]; if (ok$3) { ast.Index32.copy(record.CopySourceIndex, record.SourceIndex); @@ -305081,12 +307846,12 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { _i$6++; /* continue; */ $s = 11; continue; } - _tuple$4 = $assertType(result$1.file.inputFile.Repr, ptrType$15, true); + _tuple$4 = $assertType(result$1.file.inputFile.Repr, ptrType$17, true); ok$4 = _tuple$4[1]; /* */ if (ok$4) { $s = 58; continue; } /* */ $s = 59; continue; /* if (ok$4) { */ case 58: - _tuple$5 = $assertType(otherFile.inputFile.Repr, ptrType$16, true); + _tuple$5 = $assertType(otherFile.inputFile.Repr, ptrType$18, true); css = _tuple$5[0]; ok$5 = _tuple$5[1]; /* */ if (ok$5) { $s = 60; continue; } @@ -305115,7 +307880,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { source$1 = $clone(otherFile.inputFile.Source, logger.Source); source$1.Index = sourceIndex$3; _r$20 = js_parser.LazyExportAST($clone(s.log, logger.Log), $clone(source$1, logger.Source), $clone(js_parser.OptionsFromConfig(s.options), js_parser.Options), $clone(new js_ast.Expr.ptr(js_ast.ENullShared, new logger.Loc.ptr(0)), js_ast.Expr), ""); /* */ $s = 71; case 71: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - parseResult.copy((x$16 = s.results, ((sourceIndex$3 < 0 || sourceIndex$3 >= x$16.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$16.$array[x$16.$offset + sourceIndex$3])), new parseResult.ptr(sliceType$1.nil, false, $clone(new scannerFile.ptr("", $ifaceNil, $clone(new graph.InputFile.ptr(new graph.JSRepr.ptr(new graph.JSReprMeta.ptr(false, false, false, ptrType$7.nil, ptrType$8.nil, sliceType$5.nil, false, sliceType$6.nil, new ast.Index32.ptr(0), new ast.Index32.ptr(0), false, 0, false, false, false, false), $clone(_r$20, js_ast.AST), $clone(ast.MakeIndex32($clone(record.SourceIndex, ast.Index32).GetIndex()), ast.Index32)), ptrType$2.nil, sliceType$2.nil, "", new graph.SideEffects.ptr(ptrType$3.nil, 0), $clone(source$1, logger.Source), otherFile.inputFile.Loader, false), graph.InputFile)), scannerFile), new tlaCheck.ptr(new ast.Index32.ptr(0), 0, 0), true)); + parseResult.copy((x$17 = s.results, ((sourceIndex$3 < 0 || sourceIndex$3 >= x$17.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$17.$array[x$17.$offset + sourceIndex$3])), new parseResult.ptr(sliceType$1.nil, false, $clone(new scannerFile.ptr("", $ifaceNil, $clone(new graph.InputFile.ptr(new graph.JSRepr.ptr(new graph.JSReprMeta.ptr(false, false, false, ptrType$9.nil, ptrType$10.nil, sliceType$5.nil, false, sliceType$6.nil, new ast.Index32.ptr(0), new ast.Index32.ptr(0), false, 0, false, false, false, false), $clone(_r$20, js_ast.AST), $clone(ast.MakeIndex32($clone(record.SourceIndex, ast.Index32).GetIndex()), ast.Index32)), ptrType$2.nil, sliceType$2.nil, "", new graph.SideEffects.ptr(ptrType$3.nil, 0), $clone(source$1, logger.Source), otherFile.inputFile.Loader, false), graph.InputFile)), scannerFile), new tlaCheck.ptr(new ast.Index32.ptr(0), 0, 0), true)); ast.Index32.copy(css.JSSourceIndex, ast.MakeIndex32(sourceIndex$3)); /* } */ case 64: ast.Index32.copy(record.SourceIndex, css.JSSourceIndex); @@ -305128,7 +307893,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { /* */ if (new ast.ImportRecordFlags(record.Flags).Has(512) && !s.options.IgnoreDCEAnnotations && !helpers.IsInsideNodeModules(result$1.file.inputFile.Source.KeyPath.Text)) { $s = 72; continue; } /* */ $s = 73; continue; /* if (new ast.ImportRecordFlags(record.Flags).Has(512) && !s.options.IgnoreDCEAnnotations && !helpers.IsInsideNodeModules(result$1.file.inputFile.Source.KeyPath.Text)) { */ case 72: - otherModule = (x$17 = s.results, x$18 = $clone(record.SourceIndex, ast.Index32).GetIndex(), ((x$18 < 0 || x$18 >= x$17.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$17.$array[x$17.$offset + x$18])).file.inputFile; + otherModule = (x$18 = s.results, x$19 = $clone(record.SourceIndex, ast.Index32).GetIndex(), ((x$19 < 0 || x$19 >= x$18.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$18.$array[x$18.$offset + x$19])).file.inputFile; /* */ if (!((otherModule.SideEffects.Kind === 0)) && !((otherModule.SideEffects.Kind === 4)) && !((otherModule.SideEffects.Kind === 2))) { $s = 74; continue; } /* */ $s = 75; continue; /* if (!((otherModule.SideEffects.Kind === 0)) && !((otherModule.SideEffects.Kind === 4)) && !((otherModule.SideEffects.Kind === 2))) { */ case 74: @@ -305173,7 +307938,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { if (!isFirstImport) { sb$1.WriteString("\n "); } - _tuple$6 = $assertType(result$1.file.inputFile.Repr, ptrType$15, true); + _tuple$6 = $assertType(result$1.file.inputFile.Repr, ptrType$17, true); repr = _tuple$6[0]; ok$6 = _tuple$6[1]; /* */ if (ok$6 && ((repr.AST.ExportsKind === 1) || (repr.AST.ExportsKind === 2))) { $s = 86; continue; } @@ -305266,7 +308031,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { ext = originalExt; /* } */ case 101: templateExt[0] = strings.TrimPrefix(ext, "."); - relPath = config.TemplateToString(config.SubstituteTemplate(template, $clone(new config.PathPlaceholders.ptr((dir.$ptr || (dir.$ptr = new ptrType$17(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, dir))), (base.$ptr || (base.$ptr = new ptrType$17(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, base))), (hash.$ptr || (hash.$ptr = new ptrType$17(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, hash))), (templateExt.$ptr || (templateExt.$ptr = new ptrType$17(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, templateExt)))), config.PathPlaceholders))) + ext; + relPath = config.TemplateToString(config.SubstituteTemplate(template, $clone(new config.PathPlaceholders.ptr((dir.$ptr || (dir.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, dir))), (base.$ptr || (base.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, base))), (hash.$ptr || (hash.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, hash))), (templateExt.$ptr || (templateExt.$ptr = new ptrType$19(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, templateExt)))), config.PathPlaceholders))) + ext; jsonMetadataChunk = ""; /* */ if (s.options.NeedsMetafile) { $s = 105; continue; } /* */ $s = 106; continue; @@ -305286,7 +308051,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { _r$33 = s.fs.Join(new sliceType$5([s.options.AbsOutputDir, relPath])); /* */ $s = 112; case 112: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } result$1.file.inputFile.AdditionalFiles = new sliceType$2([$clone(new graph.OutputFile.ptr(jsonMetadataChunk, _r$33, bytes$1, false), graph.OutputFile)]); /* } */ case 98: - parseResult.copy((x$19 = s.results, ((sourceIndex$2 < 0 || sourceIndex$2 >= x$19.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$19.$array[x$19.$offset + sourceIndex$2])), result$1); + parseResult.copy((x$20 = s.results, ((sourceIndex$2 < 0 || sourceIndex$2 >= x$20.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$20.$array[x$20.$offset + sourceIndex$2])), result$1); _i$5++; $s = 2; continue; case 3: @@ -305296,7 +308061,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { /* while (true) { */ case 113: /* if (!(_i$9 < _ref$10.$length)) { break; } */ if(!(_i$9 < _ref$10.$length)) { $s = 114; continue; } sourceIndex$4 = _i$9; - result$2 = (x$20 = s.results, ((sourceIndex$4 < 0 || sourceIndex$4 >= x$20.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$20.$array[x$20.$offset + sourceIndex$4])); + result$2 = (x$21 = s.results, ((sourceIndex$4 < 0 || sourceIndex$4 >= x$21.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$21.$array, x$21.$offset + sourceIndex$4, ptrType$33))); /* */ if (result$2.ok) { $s = 115; continue; } /* */ $s = 116; continue; /* if (result$2.ok) { */ case 115: @@ -305309,17 +308074,17 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { case 114: $24r = files; $s = 118; case 118: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return sliceType$23.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: processScannedFiles, $c: true, $r, $24r, _1, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$16, _arg$17, _arg$18, _arg$19, _arg$2, _arg$20, _arg$21, _arg$22, _arg$23, _arg$24, _arg$25, _arg$26, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _entry, _entry$1, _entry$2, _entry$3, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _i$8, _i$9, _key, _key$1, _key$2, _keys, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$10, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _ref$9, _size, _tmp, _tmp$1, _tmp$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, attr, attr$1, attrs, attrs$1, base, by, bytes$1, css, customFilePath, data, data$1, dir, entry, entryPointJSON, entryPointMeta, entryPointSourceIndexToMetaIndex, ext, files, format, h, hash, i, i$1, i$2, i$3, importAttributeNameCollisions, importRecordIndex, inputs, isEntryPoint, isFirstImport, jsonMetadataChunk, meta, metaIndex, metafileWith, notes, ok, ok$1, ok$2, ok$3, ok$4, ok$5, ok$6, ok$7, originalExt, otherFile, otherModule, otherRepr, otherRepr$1, otherResult, prettyPath, record, records, recordsPtr, relPath, repr, resolveResult, result, result$1, result$2, s, sb, sb$1, secondaryKey, secondaryVisited, source, source$1, sourceIndex, sourceIndex$1, sourceIndex$2, sourceIndex$3, sourceIndex$4, sourceIndices, stubKey, template, templateExt, text, tracker, tracker$1, useOutputFile, with$1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; return sliceType$23.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: processScannedFiles, $c: true, $r, $24r, _1, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$16, _arg$17, _arg$18, _arg$19, _arg$2, _arg$20, _arg$21, _arg$22, _arg$23, _arg$24, _arg$25, _arg$26, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _entry, _entry$1, _entry$2, _entry$3, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _i$8, _i$9, _key, _key$1, _key$2, _keys, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$10, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _ref$9, _size, _tmp, _tmp$1, _tmp$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, attr, attr$1, attrs, attrs$1, base, by, bytes$1, css, customFilePath, data, data$1, dir, entry, entryPointJSON, entryPointMeta, entryPointSourceIndexToMetaIndex, ext, files, format, h, hash, i, i$1, i$2, i$3, importAttributeNameCollisions, importRecordIndex, inputs, isEntryPoint, isFirstImport, jsonMetadataChunk, meta, metaIndex, metafileWith, notes, ok, ok$1, ok$2, ok$3, ok$4, ok$5, ok$6, ok$7, originalExt, otherFile, otherModule, otherRepr, otherRepr$1, otherResult, prettyPath, record, records, recordsPtr, relPath, repr, resolveResult, result, result$1, result$2, s, sb, sb$1, secondaryKey, secondaryVisited, source, source$1, sourceIndex, sourceIndex$1, sourceIndex$2, sourceIndex$3, sourceIndex$4, sourceIndices, stubKey, template, templateExt, text, tracker, tracker$1, useOutputFile, with$1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $deferred};return $f; } } }; $ptrType(scanner).prototype.validateTLA = function validateTLA(sourceIndex) { var {_arg, _arg$1, _arg$2, _arg$3, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _tuple, importRecordIndex, importedPrettyPath, notes, ok, otherSourceIndex, parent, parentRepr, parentResult, record, repr, result, s, sourceIndex, text, tlaPrettyPath, tracker, tracker$1, tracker$2, x, x$1, x$2, x$3, x$4, x$5, x$6, $s, $r, $c} = $restore(this, {sourceIndex}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: s = this; - result = (x = s.results, ((sourceIndex < 0 || sourceIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + sourceIndex])); + result = (x = s.results, ((sourceIndex < 0 || sourceIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + sourceIndex, ptrType$33))); /* */ if (result.ok && (result.tlaCheck.depth === 0)) { $s = 1; continue; } /* */ $s = 2; continue; /* if (result.ok && (result.tlaCheck.depth === 0)) { */ case 1: - _tuple = $assertType(result.file.inputFile.Repr, ptrType$15, true); + _tuple = $assertType(result.file.inputFile.Repr, ptrType$17, true); repr = _tuple[0]; ok = _tuple[1]; /* */ if (ok) { $s = 3; continue; } @@ -305359,8 +308124,8 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { tlaPrettyPath = ""; otherSourceIndex = $clone(record.SourceIndex, ast.Index32).GetIndex(); /* while (true) { */ case 12: - parentResult = (x$1 = s.results, ((otherSourceIndex < 0 || otherSourceIndex >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + otherSourceIndex])); - parentRepr = $assertType(parentResult.file.inputFile.Repr, ptrType$15); + parentResult = (x$1 = s.results, ((otherSourceIndex < 0 || otherSourceIndex >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + otherSourceIndex, ptrType$33))); + parentRepr = $assertType(parentResult.file.inputFile.Repr, ptrType$17); /* */ if (parentRepr.AST.LiveTopLevelAwaitKeyword.Len > 0) { $s = 14; continue; } /* */ $s = 15; continue; /* if (parentRepr.AST.LiveTopLevelAwaitKeyword.Len > 0) { */ case 14: @@ -305374,7 +308139,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { /* break; */ $s = 13; continue; /* } */ case 15: if (!$clone(parentResult.tlaCheck.parent, ast.Index32).IsValid()) { - notes = $append(notes, new logger.MsgData.ptr($ifaceNil, ptrType$6.nil, "unexpected invalid index", false)); + notes = $append(notes, new logger.MsgData.ptr($ifaceNil, ptrType$8.nil, "unexpected invalid index", false)); /* break; */ $s = 13; continue; } otherSourceIndex = $clone(parentResult.tlaCheck.parent, ast.Index32).GetIndex(); @@ -305630,7 +308395,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { } else if (_1 === (0)) { hint = " (use \"AllowOverwrite: true\" to allow this)"; } - _arg = ptrType$5.nil; + _arg = ptrType$7.nil; _arg$1 = $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range); _r$5 = fmt.Sprintf("Refusing to overwrite input file %q%s", new sliceType$3([new $String((x$1 = b[0].files, ((sourceIndex$1 < 0 || sourceIndex$1 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + sourceIndex$1])).inputFile.Source.PrettyPath), new $String(hint)])); /* */ $s = 34; case 34: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _arg$2 = _r$5; @@ -305672,7 +308437,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { if (ok$2) { outputPath = relPath; } - $r = $clone(log[0], logger.Log).AddError(ptrType$5.nil, $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range), "Two output files share the same path but have different contents: " + outputPath); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = $clone(log[0], logger.Log).AddError(ptrType$7.nil, $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range), "Two output files share the same path but have different contents: " + outputPath); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _i$5++; $s = 36; continue; case 37: @@ -305699,8 +308464,8 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { /* */ $s = 2; continue; /* if (!(_entry = $mapIndex(visited[0],$Uint32.keyFor(sourceIndex)), _entry !== undefined ? _entry.v : false)) { */ case 1: _key = sourceIndex; (visited[0] || $throwRuntimeError("assignment to entry in nil map")).set($Uint32.keyFor(_key), { k: _key, v: true }); - file = ((sourceIndex < 0 || sourceIndex >= files[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : files[0].$array[files[0].$offset + sourceIndex]); - _tuple = $assertType(file.Repr, ptrType$15, true); + file = ((sourceIndex < 0 || sourceIndex >= files[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(files[0].$array, files[0].$offset + sourceIndex, ptrType$36)); + _tuple = $assertType(file.Repr, ptrType$17, true); repr = _tuple[0]; ok = _tuple[1]; /* */ if (ok && $clone(repr.CSSSourceIndex, ast.Index32).IsValid()) { $s = 3; continue; } @@ -305710,9 +308475,9 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { /* } */ case 4: _r = file.Repr.ImportRecords(); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } recordsPtr = _r; - /* */ if (!(recordsPtr === ptrType$12.nil)) { $s = 7; continue; } + /* */ if (!(recordsPtr === ptrType$13.nil)) { $s = 7; continue; } /* */ $s = 8; continue; - /* if (!(recordsPtr === ptrType$12.nil)) { */ case 7: + /* if (!(recordsPtr === ptrType$13.nil)) { */ case 7: _ref = recordsPtr.$get(); _i = 0; /* while (true) { */ case 9: @@ -305764,21 +308529,21 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { while (true) { if (!(_i < _ref.$length)) { break; } sourceIndex = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - f = (x = b.files, ((sourceIndex < 0 || sourceIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + sourceIndex])); + f = (x = b.files, ((sourceIndex < 0 || sourceIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + sourceIndex, ptrType$37))); if (new config.Loader(f.inputFile.Loader).CanHaveSourceMap()) { approximateLineCount = 0; _ref$1 = f.inputFile.Repr; - if ($assertType(_ref$1, ptrType$15, true)[1]) { + if ($assertType(_ref$1, ptrType$17, true)[1]) { repr = _ref$1.$val; approximateLineCount = repr.AST.ApproximateLineCount; - } else if ($assertType(_ref$1, ptrType$16, true)[1]) { + } else if ($assertType(_ref$1, ptrType$18, true)[1]) { repr$1 = _ref$1.$val; approximateLineCount = repr$1.AST.ApproximateLineCount; } waitGroup.Add(1); $go((function Bundle·computeDataForSourceMapsInParallel·func2(sourceIndex$1, f$1, approximateLineCount$1) { var _i$1, _ref$2, approximateLineCount$1, f$1, i, nullContents, quotedContents, result, sm, sourceIndex$1, value, x$1, x$2; - result = ((sourceIndex$1 < 0 || sourceIndex$1 >= results.$length) ? ($throwRuntimeError("index out of range"), undefined) : results.$array[results.$offset + sourceIndex$1]); + result = ((sourceIndex$1 < 0 || sourceIndex$1 >= results.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(results.$array, results.$offset + sourceIndex$1, ptrType$38)); result.LineOffsetTables = sourcemap.GenerateLineOffsetTables(f$1.inputFile.Source.Contents, approximateLineCount$1); sm = f$1.inputFile.InputSourceMap; if (!options.ExcludeSourcesContent) { @@ -305823,7 +308588,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { var {_entry, _i, _i$1, _key, _r, _r$1, _r$2, _ref, _ref$1, allReachableFiles, asciiOnly, b, file, isFirst, path, paths, result, results, sb, sourceIndex, x, x$1, $s, $r, $c} = $restore(this, {results, allReachableFiles, asciiOnly}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: b = this; - sb = new strings.Builder.ptr(ptrType$29.nil, sliceType$14.nil); + sb = new strings.Builder.ptr(ptrType$34.nil, sliceType$14.nil); sb.WriteString("{\n \"inputs\": {"); isFirst = true; _ref = allReachableFiles; @@ -305835,7 +308600,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { _i++; continue; } - file = (x$1 = b.files, ((sourceIndex < 0 || sourceIndex >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + sourceIndex])); + file = (x$1 = b.files, ((sourceIndex < 0 || sourceIndex >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + sourceIndex, ptrType$37))); if (file.jsonMetadataChunk.length > 0) { if (isFirst) { isFirst = false; @@ -305891,7 +308656,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { ok = [ok]; runtimeAST = [runtimeAST]; source = new logger.Source.ptr("", "", "", new logger.Path.ptr("", "", "", new logger.ImportAttributes.ptr(""), 0), 0); - runtimeAST[0] = new js_ast.AST.ptr(new js_ast.ModuleTypeData.ptr(ptrType$9.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0), sliceType$7.nil, sliceType$8.nil, false, ptrType$10.nil, ptrType$11.nil, new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), "", sliceType$5.nil, "", false, false, false, false, false, sliceType$9.nil, false, false, sliceType$10.nil, new logger.Span.ptr("", new logger.Range.ptr(new logger.Loc.ptr(0), 0)), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new ast.Ref.ptr(0, 0), new ast.Ref.ptr(0, 0), new ast.Ref.ptr(0, 0), 0, arrayType.zero(), false, false, false, 0); + runtimeAST[0] = new js_ast.AST.ptr(new js_ast.ModuleTypeData.ptr(ptrType$5.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0), sliceType$7.nil, sliceType$8.nil, false, ptrType$11.nil, ptrType$12.nil, new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), "", sliceType$5.nil, "", false, false, false, false, false, sliceType$9.nil, false, false, sliceType$10.nil, new logger.Span.ptr("", new logger.Range.ptr(new logger.Loc.ptr(0), 0)), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new ast.Ref.ptr(0, 0), new ast.Ref.ptr(0, 0), new ast.Ref.ptr(0, 0), 0, arrayType.zero(), false, false, false, 0); ok[0] = false; cache$1[0] = this; key[0] = new runtimeCacheKey.ptr(options.UnsupportedJSFeatures, options.MinifySyntax, options.MinifyIdentifiers); @@ -305902,7 +308667,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { $r = cache$1[0].astMutex.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $deferred.push([$methodVal(cache$1[0].astMutex, "Unlock"), []]); if (!(cache$1[0].astMap === false)) { - _tuple = (_entry = $mapIndex(cache$1[0].astMap,runtimeCacheKey.keyFor(key[0])), _entry !== undefined ? [_entry.v, true] : [new js_ast.AST.ptr(new js_ast.ModuleTypeData.ptr(ptrType$9.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0), sliceType$7.nil, sliceType$8.nil, false, ptrType$10.nil, ptrType$11.nil, new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), "", sliceType$5.nil, "", false, false, false, false, false, sliceType$9.nil, false, false, sliceType$10.nil, new logger.Span.ptr("", new logger.Range.ptr(new logger.Loc.ptr(0), 0)), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new ast.Ref.ptr(0, 0), new ast.Ref.ptr(0, 0), new ast.Ref.ptr(0, 0), 0, arrayType.zero(), false, false, false, 0), false]); + _tuple = (_entry = $mapIndex(cache$1[0].astMap,runtimeCacheKey.keyFor(key[0])), _entry !== undefined ? [_entry.v, true] : [new js_ast.AST.ptr(new js_ast.ModuleTypeData.ptr(ptrType$5.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0), sliceType$7.nil, sliceType$8.nil, false, ptrType$11.nil, ptrType$12.nil, new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), "", sliceType$5.nil, "", false, false, false, false, false, sliceType$9.nil, false, false, sliceType$10.nil, new logger.Span.ptr("", new logger.Range.ptr(new logger.Loc.ptr(0), 0)), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new ast.Ref.ptr(0, 0), new ast.Ref.ptr(0, 0), new ast.Ref.ptr(0, 0), 0, arrayType.zero(), false, false, false, 0), false]); js_ast.AST.copy(runtimeAST[0], _tuple[0]); ok[0] = _tuple[1]; } @@ -305913,7 +308678,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { $s = -1; return [source, runtimeAST[0], ok[0]]; } log = $clone(logger.NewDeferLog(0, false), logger.Log); - _r = js_parser.Parse($clone(log, logger.Log), $clone(source, logger.Source), $clone(js_parser.OptionsFromConfig(new config.Options.ptr(new js_ast.ModuleTypeData.ptr(ptrType$9.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0), ptrType$24.nil, ptrType$20.nil, ptrType$25.nil, ptrType$25.nil, ptrType$26.nil, $throwNilPointerError, "", sliceType$5.nil, sliceType$5.nil, sliceType$5.nil, sliceType$5.nil, sliceType$5.nil, new config.ExternalSettings.ptr(new config.ExternalMatchers.ptr(false, sliceType$18.nil), new config.ExternalMatchers.ptr(false, sliceType$18.nil)), false, false, "", "", "", "", "", sliceType$5.nil, "", "", false, "", sliceType$5.nil, sliceType$19.nil, sliceType$20.nil, "", "", "", "", sliceType$21.nil, sliceType$21.nil, sliceType$21.nil, sliceType$22.nil, "", ptrType.nil, new config.JSXOptions.ptr(new config.DefineExpr.ptr($ifaceNil, sliceType$5.nil, new ast.Index32.ptr(0)), new config.DefineExpr.ptr($ifaceNil, sliceType$5.nil, new ast.Index32.ptr(0)), false, false, false, "", false, false), 0, false, key[0].unsupportedJSFeatures, 0, new compat.JSFeature(0, 0), new compat.JSFeature(0, 0), 0, 0, new config.TSOptions.ptr(new config.TSConfig.ptr(0, 0, 0, 0, 0, 0), false, false), 0, false, false, key[0].minifyIdentifiers, key[0].minifySyntax, false, false, false, false, 0, false, false, false, false, false, false, true, false, false, 0, 0, false, 0, false)), js_parser.Options)); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = js_parser.Parse($clone(log, logger.Log), $clone(source, logger.Source), $clone(js_parser.OptionsFromConfig(new config.Options.ptr(new js_ast.ModuleTypeData.ptr(ptrType$5.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0), ptrType$26.nil, ptrType$22.nil, ptrType$27.nil, ptrType$27.nil, ptrType$28.nil, $throwNilPointerError, "", sliceType$5.nil, sliceType$5.nil, sliceType$5.nil, sliceType$5.nil, sliceType$5.nil, new config.ExternalSettings.ptr(new config.ExternalMatchers.ptr(false, sliceType$18.nil), new config.ExternalMatchers.ptr(false, sliceType$18.nil)), false, false, "", "", "", "", "", sliceType$5.nil, "", "", false, "", sliceType$5.nil, sliceType$19.nil, sliceType$20.nil, "", "", "", "", sliceType$21.nil, sliceType$21.nil, sliceType$21.nil, sliceType$22.nil, "", ptrType.nil, new config.JSXOptions.ptr(new config.DefineExpr.ptr($ifaceNil, sliceType$5.nil, new ast.Index32.ptr(0)), new config.DefineExpr.ptr($ifaceNil, sliceType$5.nil, new ast.Index32.ptr(0)), false, false, false, "", false, false), 0, false, key[0].unsupportedJSFeatures, 0, new compat.JSFeature(0, 0), new compat.JSFeature(0, 0), 0, 0, new config.TSOptions.ptr(new config.TSConfig.ptr(0, 0, 0, 0, 0, 0), false, false), 0, false, false, key[0].minifyIdentifiers, key[0].minifySyntax, false, false, false, false, 0, false, false, false, false, false, false, true, false, false, 0, 0, false, 0, false)), js_parser.Options)); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; js_ast.AST.copy(runtimeAST[0], _tuple[0]); ok[0] = _tuple[1]; @@ -306041,7 +308806,7 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { $pkg.PathRelativeToOutbase = PathRelativeToOutbase; sanitizeFilePathForVirtualModulePath = function sanitizeFilePathForVirtualModulePath$1(path) { var _1, _i, _ref, _rune, c, needsGap, path, sb; - sb = new strings.Builder.ptr(ptrType$29.nil, sliceType$14.nil); + sb = new strings.Builder.ptr(ptrType$34.nil, sliceType$14.nil); needsGap = false; _ref = path; _i = 0; @@ -306076,21 +308841,21 @@ $packages["github.com/evanw/esbuild/internal/bundler"] = (function() { } return sb.String(); }; - ptrType$32.methods = [{prop: "Compile", name: "Compile", pkg: "", typ: $funcType([logger.Log, ptrType$23, mapType, Linker], [sliceType$2, $String], false)}, {prop: "computeDataForSourceMapsInParallel", name: "computeDataForSourceMapsInParallel", pkg: "github.com/evanw/esbuild/internal/bundler", typ: $funcType([ptrType$31, sliceType$10], [funcType], false)}, {prop: "generateMetadataJSON", name: "generateMetadataJSON", pkg: "github.com/evanw/esbuild/internal/bundler", typ: $funcType([sliceType$2, sliceType$10, $Bool], [$String], false)}]; - ptrType$33.methods = [{prop: "maybeParseFile", name: "maybeParseFile", pkg: "github.com/evanw/esbuild/internal/bundler", typ: $funcType([resolver.ResolveResult, $String, ptrType$9, logger.Range, ptrType$4, inputKind, chanType$1], [$Uint32], false)}, {prop: "allocateSourceIndex", name: "allocateSourceIndex", pkg: "github.com/evanw/esbuild/internal/bundler", typ: $funcType([logger.Path, cache.SourceIndexKind], [$Uint32], false)}, {prop: "allocateGlobSourceIndex", name: "allocateGlobSourceIndex", pkg: "github.com/evanw/esbuild/internal/bundler", typ: $funcType([$Uint32, $Uint32], [$Uint32], false)}, {prop: "preprocessInjectedFiles", name: "preprocessInjectedFiles", pkg: "github.com/evanw/esbuild/internal/bundler", typ: $funcType([], [], false)}, {prop: "addEntryPoints", name: "addEntryPoints", pkg: "github.com/evanw/esbuild/internal/bundler", typ: $funcType([sliceType$37], [sliceType$24], false)}, {prop: "scanAllDependencies", name: "scanAllDependencies", pkg: "github.com/evanw/esbuild/internal/bundler", typ: $funcType([], [], false)}, {prop: "generateResultForGlobResolve", name: "generateResultForGlobResolve", pkg: "github.com/evanw/esbuild/internal/bundler", typ: $funcType([$Uint32, $String, ptrType$9, logger.Range, ptrType$4, ast.ImportKind, globResolveResult, ptrType$4], [parseResult], false)}, {prop: "processScannedFiles", name: "processScannedFiles", pkg: "github.com/evanw/esbuild/internal/bundler", typ: $funcType([sliceType$24], [sliceType$23], false)}, {prop: "validateTLA", name: "validateTLA", pkg: "github.com/evanw/esbuild/internal/bundler", typ: $funcType([$Uint32], [tlaCheck], false)}]; - ptrType$34.methods = [{prop: "parseRuntime", name: "parseRuntime", pkg: "github.com/evanw/esbuild/internal/bundler", typ: $funcType([ptrType$31], [logger.Source, js_ast.AST, $Bool], false)}]; + ptrType$40.methods = [{prop: "Compile", name: "Compile", pkg: "", typ: $funcType([logger.Log, ptrType$25, mapType, Linker], [sliceType$2, $String], false)}, {prop: "computeDataForSourceMapsInParallel", name: "computeDataForSourceMapsInParallel", pkg: "github.com/evanw/esbuild/internal/bundler", typ: $funcType([ptrType$39, sliceType$10], [funcType], false)}, {prop: "generateMetadataJSON", name: "generateMetadataJSON", pkg: "github.com/evanw/esbuild/internal/bundler", typ: $funcType([sliceType$2, sliceType$10, $Bool], [$String], false)}]; + ptrType$41.methods = [{prop: "maybeParseFile", name: "maybeParseFile", pkg: "github.com/evanw/esbuild/internal/bundler", typ: $funcType([resolver.ResolveResult, $String, ptrType$5, logger.Range, ptrType$4, inputKind, chanType$1], [$Uint32], false)}, {prop: "allocateSourceIndex", name: "allocateSourceIndex", pkg: "github.com/evanw/esbuild/internal/bundler", typ: $funcType([logger.Path, cache.SourceIndexKind], [$Uint32], false)}, {prop: "allocateGlobSourceIndex", name: "allocateGlobSourceIndex", pkg: "github.com/evanw/esbuild/internal/bundler", typ: $funcType([$Uint32, $Uint32], [$Uint32], false)}, {prop: "preprocessInjectedFiles", name: "preprocessInjectedFiles", pkg: "github.com/evanw/esbuild/internal/bundler", typ: $funcType([], [], false)}, {prop: "addEntryPoints", name: "addEntryPoints", pkg: "github.com/evanw/esbuild/internal/bundler", typ: $funcType([sliceType$37], [sliceType$24], false)}, {prop: "scanAllDependencies", name: "scanAllDependencies", pkg: "github.com/evanw/esbuild/internal/bundler", typ: $funcType([], [], false)}, {prop: "generateResultForGlobResolve", name: "generateResultForGlobResolve", pkg: "github.com/evanw/esbuild/internal/bundler", typ: $funcType([$Uint32, $String, ptrType$5, logger.Range, ptrType$4, ast.ImportKind, globResolveResult, ptrType$4], [parseResult], false)}, {prop: "processScannedFiles", name: "processScannedFiles", pkg: "github.com/evanw/esbuild/internal/bundler", typ: $funcType([sliceType$24], [sliceType$23], false)}, {prop: "validateTLA", name: "validateTLA", pkg: "github.com/evanw/esbuild/internal/bundler", typ: $funcType([$Uint32], [tlaCheck], false)}]; + ptrType$42.methods = [{prop: "parseRuntime", name: "parseRuntime", pkg: "github.com/evanw/esbuild/internal/bundler", typ: $funcType([ptrType$39], [logger.Source, js_ast.AST, $Bool], false)}]; scannerFile.init("github.com/evanw/esbuild/internal/bundler", [{prop: "jsonMetadataChunk", name: "jsonMetadataChunk", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "pluginData", name: "pluginData", embedded: false, exported: false, typ: $emptyInterface, tag: ""}, {prop: "inputFile", name: "inputFile", embedded: false, exported: false, typ: graph.InputFile, tag: ""}]); DataForSourceMap.init("", [{prop: "LineOffsetTables", name: "LineOffsetTables", embedded: false, exported: true, typ: sliceType$36, tag: ""}, {prop: "QuotedContents", name: "QuotedContents", embedded: false, exported: true, typ: sliceType$35, tag: ""}]); - Bundle.init("github.com/evanw/esbuild/internal/bundler", [{prop: "uniqueKeyPrefix", name: "uniqueKeyPrefix", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "fs", name: "fs", embedded: false, exported: false, typ: fs.FS, tag: ""}, {prop: "res", name: "res", embedded: false, exported: false, typ: ptrType$21, tag: ""}, {prop: "files", name: "files", embedded: false, exported: false, typ: sliceType$23, tag: ""}, {prop: "entryPoints", name: "entryPoints", embedded: false, exported: false, typ: sliceType$24, tag: ""}, {prop: "options", name: "options", embedded: false, exported: false, typ: config.Options, tag: ""}]); - parseArgs.init("github.com/evanw/esbuild/internal/bundler", [{prop: "fs", name: "fs", embedded: false, exported: false, typ: fs.FS, tag: ""}, {prop: "log", name: "log", embedded: false, exported: false, typ: logger.Log, tag: ""}, {prop: "res", name: "res", embedded: false, exported: false, typ: ptrType$21, tag: ""}, {prop: "caches", name: "caches", embedded: false, exported: false, typ: ptrType$22, tag: ""}, {prop: "prettyPath", name: "prettyPath", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "importSource", name: "importSource", embedded: false, exported: false, typ: ptrType$9, tag: ""}, {prop: "importWith", name: "importWith", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "sideEffects", name: "sideEffects", embedded: false, exported: false, typ: graph.SideEffects, tag: ""}, {prop: "pluginData", name: "pluginData", embedded: false, exported: false, typ: $emptyInterface, tag: ""}, {prop: "results", name: "results", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "inject", name: "inject", embedded: false, exported: false, typ: chanType$1, tag: ""}, {prop: "uniqueKeyPrefix", name: "uniqueKeyPrefix", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "keyPath", name: "keyPath", embedded: false, exported: false, typ: logger.Path, tag: ""}, {prop: "options", name: "options", embedded: false, exported: false, typ: config.Options, tag: ""}, {prop: "importPathRange", name: "importPathRange", embedded: false, exported: false, typ: logger.Range, tag: ""}, {prop: "sourceIndex", name: "sourceIndex", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "skipResolve", name: "skipResolve", embedded: false, exported: false, typ: $Bool, tag: ""}]); + Bundle.init("github.com/evanw/esbuild/internal/bundler", [{prop: "uniqueKeyPrefix", name: "uniqueKeyPrefix", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "fs", name: "fs", embedded: false, exported: false, typ: fs.FS, tag: ""}, {prop: "res", name: "res", embedded: false, exported: false, typ: ptrType$23, tag: ""}, {prop: "files", name: "files", embedded: false, exported: false, typ: sliceType$23, tag: ""}, {prop: "entryPoints", name: "entryPoints", embedded: false, exported: false, typ: sliceType$24, tag: ""}, {prop: "options", name: "options", embedded: false, exported: false, typ: config.Options, tag: ""}]); + parseArgs.init("github.com/evanw/esbuild/internal/bundler", [{prop: "fs", name: "fs", embedded: false, exported: false, typ: fs.FS, tag: ""}, {prop: "log", name: "log", embedded: false, exported: false, typ: logger.Log, tag: ""}, {prop: "res", name: "res", embedded: false, exported: false, typ: ptrType$23, tag: ""}, {prop: "caches", name: "caches", embedded: false, exported: false, typ: ptrType$24, tag: ""}, {prop: "prettyPath", name: "prettyPath", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "importSource", name: "importSource", embedded: false, exported: false, typ: ptrType$5, tag: ""}, {prop: "importWith", name: "importWith", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "sideEffects", name: "sideEffects", embedded: false, exported: false, typ: graph.SideEffects, tag: ""}, {prop: "pluginData", name: "pluginData", embedded: false, exported: false, typ: $emptyInterface, tag: ""}, {prop: "results", name: "results", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "inject", name: "inject", embedded: false, exported: false, typ: chanType$1, tag: ""}, {prop: "uniqueKeyPrefix", name: "uniqueKeyPrefix", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "keyPath", name: "keyPath", embedded: false, exported: false, typ: logger.Path, tag: ""}, {prop: "options", name: "options", embedded: false, exported: false, typ: config.Options, tag: ""}, {prop: "importPathRange", name: "importPathRange", embedded: false, exported: false, typ: logger.Range, tag: ""}, {prop: "sourceIndex", name: "sourceIndex", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "skipResolve", name: "skipResolve", embedded: false, exported: false, typ: $Bool, tag: ""}]); parseResult.init("github.com/evanw/esbuild/internal/bundler", [{prop: "resolveResults", name: "resolveResults", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "globResolveResults", name: "globResolveResults", embedded: false, exported: false, typ: mapType$1, tag: ""}, {prop: "file", name: "file", embedded: false, exported: false, typ: scannerFile, tag: ""}, {prop: "tlaCheck", name: "tlaCheck", embedded: false, exported: false, typ: tlaCheck, tag: ""}, {prop: "ok", name: "ok", embedded: false, exported: false, typ: $Bool, tag: ""}]); globResolveResult.init("github.com/evanw/esbuild/internal/bundler", [{prop: "resolveResults", name: "resolveResults", embedded: false, exported: false, typ: mapType$2, tag: ""}, {prop: "absPath", name: "absPath", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "prettyPath", name: "prettyPath", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "exportAlias", name: "exportAlias", embedded: false, exported: false, typ: $String, tag: ""}]); tlaCheck.init("github.com/evanw/esbuild/internal/bundler", [{prop: "parent", name: "parent", embedded: false, exported: false, typ: ast.Index32, tag: ""}, {prop: "depth", name: "depth", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "importRecordIndex", name: "importRecordIndex", embedded: false, exported: false, typ: $Uint32, tag: ""}]); loaderPluginResult.init("github.com/evanw/esbuild/internal/bundler", [{prop: "pluginData", name: "pluginData", embedded: false, exported: false, typ: $emptyInterface, tag: ""}, {prop: "absResolveDir", name: "absResolveDir", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "pluginName", name: "pluginName", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "loader", name: "loader", embedded: false, exported: false, typ: config.Loader, tag: ""}]); - scanner.init("github.com/evanw/esbuild/internal/bundler", [{prop: "log", name: "log", embedded: false, exported: false, typ: logger.Log, tag: ""}, {prop: "fs", name: "fs", embedded: false, exported: false, typ: fs.FS, tag: ""}, {prop: "res", name: "res", embedded: false, exported: false, typ: ptrType$21, tag: ""}, {prop: "caches", name: "caches", embedded: false, exported: false, typ: ptrType$22, tag: ""}, {prop: "timer", name: "timer", embedded: false, exported: false, typ: ptrType$23, tag: ""}, {prop: "uniqueKeyPrefix", name: "uniqueKeyPrefix", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "results", name: "results", embedded: false, exported: false, typ: sliceType$17, tag: ""}, {prop: "visited", name: "visited", embedded: false, exported: false, typ: mapType$3, tag: ""}, {prop: "resultChannel", name: "resultChannel", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "options", name: "options", embedded: false, exported: false, typ: config.Options, tag: ""}, {prop: "remaining", name: "remaining", embedded: false, exported: false, typ: $Int, tag: ""}]); + scanner.init("github.com/evanw/esbuild/internal/bundler", [{prop: "log", name: "log", embedded: false, exported: false, typ: logger.Log, tag: ""}, {prop: "fs", name: "fs", embedded: false, exported: false, typ: fs.FS, tag: ""}, {prop: "res", name: "res", embedded: false, exported: false, typ: ptrType$23, tag: ""}, {prop: "caches", name: "caches", embedded: false, exported: false, typ: ptrType$24, tag: ""}, {prop: "timer", name: "timer", embedded: false, exported: false, typ: ptrType$25, tag: ""}, {prop: "uniqueKeyPrefix", name: "uniqueKeyPrefix", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "results", name: "results", embedded: false, exported: false, typ: sliceType$17, tag: ""}, {prop: "visited", name: "visited", embedded: false, exported: false, typ: mapType$3, tag: ""}, {prop: "resultChannel", name: "resultChannel", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "options", name: "options", embedded: false, exported: false, typ: config.Options, tag: ""}, {prop: "remaining", name: "remaining", embedded: false, exported: false, typ: $Int, tag: ""}]); visitedFile.init("github.com/evanw/esbuild/internal/bundler", [{prop: "sourceIndex", name: "sourceIndex", embedded: false, exported: false, typ: $Uint32, tag: ""}]); EntryPoint.init("", [{prop: "InputPath", name: "InputPath", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "OutputPath", name: "OutputPath", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "InputPathInFileNamespace", name: "InputPathInFileNamespace", embedded: false, exported: true, typ: $Bool, tag: ""}]); - Linker.init([ptrType$31, ptrType$23, logger.Log, fs.FS, ptrType$21, sliceType$32, sliceType$24, $String, sliceType$10, funcType], [sliceType$2], false); + Linker.init([ptrType$39, ptrType$25, logger.Log, fs.FS, ptrType$23, sliceType$32, sliceType$24, $String, sliceType$10, funcType], [sliceType$2], false); runtimeCacheKey.init("github.com/evanw/esbuild/internal/bundler", [{prop: "unsupportedJSFeatures", name: "unsupportedJSFeatures", embedded: false, exported: false, typ: compat.JSFeature, tag: ""}, {prop: "minifySyntax", name: "minifySyntax", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "minifyIdentifiers", name: "minifyIdentifiers", embedded: false, exported: false, typ: $Bool, tag: ""}]); runtimeCache.init("github.com/evanw/esbuild/internal/bundler", [{prop: "astMap", name: "astMap", embedded: false, exported: false, typ: mapType$4, tag: ""}, {prop: "astMutex", name: "astMutex", embedded: false, exported: false, typ: sync.Mutex, tag: ""}]); cacheEntry.init("github.com/evanw/esbuild/internal/bundler", [{prop: "resolveResult", name: "resolveResult", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "debug", name: "debug", embedded: false, exported: false, typ: resolver.DebugMeta, tag: ""}, {prop: "didLogError", name: "didLogError", embedded: false, exported: false, typ: $Bool, tag: ""}]); @@ -306724,7 +309489,7 @@ $packages["github.com/evanw/esbuild/internal/css_printer"] = (function() { /* */ } return; } var $f = {$blk: printComplexSelectors, $c: true, $r, _i, _i$1, _ref, _ref$1, complex, compound, i, indent, j, layout, p, selectors, $s};return $f; }; $ptrType(printer).prototype.printCompoundSelector = function printCompoundSelector(sel, isFirst, indent) { - var {_i, _i$1, _i$2, _ref, _ref$1, _ref$2, _ref$3, _rune, c, i, indent, isFirst, loc, p, printAsIdent, s, s$1, s$2, s$3, s$4, s$5, sel, ss, whitespace, whitespace$1, x, x$1, $s, $r, $c} = $restore(this, {sel, isFirst, indent}); + var {_i, _i$1, _i$2, _ref, _ref$1, _ref$2, _ref$3, _rune, c, i, indent, isFirst, loc, p, printAsIdent, s, s$1, s$2, s$3, s$4, s$5, sel, ss, whitespace, whitespace$1, x, x$1, x$2, $s, $r, $c} = $restore(this, {sel, isFirst, indent}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; if (!isFirst && (sel.Combinator.Byte === 0)) { @@ -306751,7 +309516,7 @@ $packages["github.com/evanw/esbuild/internal/css_printer"] = (function() { if (sel.SubclassSelectors.$length > 0) { whitespace = 1; } - $r = p.printNamespacedName($clone(sel.TypeSelector, css_ast.NamespacedName), whitespace); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.printNamespacedName($clone((x = sel.TypeSelector, (x === ptrType$13.nil && $throwNilPointerError(), x)), css_ast.NamespacedName), whitespace); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 2: _ref = sel.NestingSelectorLocs; _i = 0; @@ -306835,7 +309600,7 @@ $packages["github.com/evanw/esbuild/internal/css_printer"] = (function() { $s = 12; continue; /* } else if ($assertType(_ref$2, ptrType$17, true)[1]) { */ case 9: s$3 = _ref$2.$val; - $r = p.printPseudoClassSelector($clone(s$3, css_ast.SSPseudoClass), whitespace$1); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.printPseudoClassSelector($clone((s$3 === ptrType$17.nil && $throwNilPointerError(), s$3), css_ast.SSPseudoClass), whitespace$1); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 12; continue; /* } else if ($assertType(_ref$2, ptrType$18, true)[1]) { */ case 10: s$4 = _ref$2.$val; @@ -306845,7 +309610,7 @@ $packages["github.com/evanw/esbuild/internal/css_printer"] = (function() { if (!(s$4.Index.A === "") || !(s$4.Index.B === "")) { p.printNthIndex($clone(s$4.Index, css_ast.NthIndex)); if (s$4.Selectors.$length > 0) { - if (p.options.MinifyWhitespace && (x = (x$1 = s$4.Selectors, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])).Selectors, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).TypeSelector === ptrType$13.nil) { + if (p.options.MinifyWhitespace && (x$1 = (x$2 = s$4.Selectors, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])).Selectors, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])).TypeSelector === ptrType$13.nil) { p.print(" of"); } else { p.print(" of "); @@ -306863,7 +309628,7 @@ $packages["github.com/evanw/esbuild/internal/css_printer"] = (function() { $s = 4; continue; case 5: $s = -1; return; - /* */ } return; } var $f = {$blk: printCompoundSelector, $c: true, $r, _i, _i$1, _i$2, _ref, _ref$1, _ref$2, _ref$3, _rune, c, i, indent, isFirst, loc, p, printAsIdent, s, s$1, s$2, s$3, s$4, s$5, sel, ss, whitespace, whitespace$1, x, x$1, $s};return $f; + /* */ } return; } var $f = {$blk: printCompoundSelector, $c: true, $r, _i, _i$1, _i$2, _ref, _ref$1, _ref$2, _ref$3, _rune, c, i, indent, isFirst, loc, p, printAsIdent, s, s$1, s$2, s$3, s$4, s$5, sel, ss, whitespace, whitespace$1, x, x$1, x$2, $s};return $f; }; $ptrType(printer).prototype.printNthIndex = function printNthIndex(index) { var index, p; @@ -307502,7 +310267,7 @@ $packages["github.com/evanw/esbuild/internal/css_printer"] = (function() { return $pkg; })(); $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { - var $pkg = {}, $init, bytes, fmt, ast, compat, config, helpers, js_ast, logger, renamer, sourcemap, math, big, strconv, strings, utf8, printer, printQuotedFlags, fnArgsOpts, printAfterDecorator, exprStartFlags, printExprFlags, binaryExprVisitor, printStmtFlags, Options, RequireOrImportMeta, PrintResult, sliceType, sliceType$1, ptrType, ptrType$1, ptrType$2, ptrType$3, sliceType$2, arrayType, sliceType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, ptrType$11, ptrType$12, ptrType$13, ptrType$14, ptrType$15, ptrType$16, ptrType$17, sliceType$4, ptrType$18, ptrType$19, ptrType$20, ptrType$21, ptrType$22, ptrType$23, ptrType$24, ptrType$25, ptrType$26, ptrType$27, ptrType$28, ptrType$29, ptrType$30, ptrType$31, ptrType$32, ptrType$33, ptrType$34, ptrType$35, ptrType$36, ptrType$37, ptrType$38, ptrType$39, ptrType$40, ptrType$41, ptrType$42, ptrType$43, ptrType$44, ptrType$45, ptrType$46, ptrType$47, sliceType$5, ptrType$48, ptrType$49, ptrType$50, ptrType$51, ptrType$52, ptrType$53, ptrType$54, ptrType$55, ptrType$56, ptrType$57, ptrType$58, ptrType$59, ptrType$60, ptrType$61, ptrType$62, ptrType$63, ptrType$64, ptrType$65, ptrType$66, ptrType$67, ptrType$68, ptrType$69, ptrType$70, ptrType$71, ptrType$72, ptrType$73, ptrType$74, structType, ptrType$75, ptrType$76, ptrType$77, sliceType$6, ptrType$78, ptrType$79, sliceType$7, sliceType$8, sliceType$9, sliceType$10, ptrType$80, sliceType$11, sliceType$12, arrayType$1, sliceType$13, sliceType$14, sliceType$15, ptrType$81, mapType, mapType$1, mapType$2, ptrType$82, funcType, mapType$3, mapType$4, mapType$5, mapType$6, positiveInfinity, negativeInfinity, QuoteIdentifier, CanEscapeIdentifier, canUseShorthandProperty, parseSmallInt, wrapToAvoidAmbiguousElse, Print; + var $pkg = {}, $init, bytes, fmt, ast, compat, config, helpers, js_ast, logger, renamer, sourcemap, math, big, strconv, strings, utf8, printer, printQuotedFlags, fnArgsOpts, printAfterDecorator, exprStartFlags, printExprFlags, binaryExprVisitor, printStmtFlags, Options, RequireOrImportMeta, PrintResult, sliceType, sliceType$1, ptrType, ptrType$1, ptrType$2, ptrType$3, sliceType$2, arrayType, sliceType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, ptrType$11, ptrType$12, ptrType$13, ptrType$14, ptrType$15, ptrType$16, ptrType$17, ptrType$18, sliceType$4, ptrType$19, ptrType$20, ptrType$21, ptrType$22, ptrType$23, ptrType$24, ptrType$25, ptrType$26, ptrType$27, ptrType$28, ptrType$29, ptrType$30, ptrType$31, ptrType$32, ptrType$33, ptrType$34, ptrType$35, ptrType$36, ptrType$37, ptrType$38, ptrType$39, ptrType$40, ptrType$41, ptrType$42, ptrType$43, ptrType$44, ptrType$45, ptrType$46, ptrType$47, ptrType$48, sliceType$5, ptrType$49, ptrType$50, ptrType$51, ptrType$52, ptrType$53, ptrType$54, ptrType$55, ptrType$56, ptrType$57, ptrType$58, ptrType$59, ptrType$60, ptrType$61, ptrType$62, ptrType$63, ptrType$64, ptrType$65, ptrType$66, ptrType$67, ptrType$68, ptrType$69, ptrType$70, ptrType$71, ptrType$72, ptrType$73, ptrType$74, ptrType$75, structType, ptrType$76, ptrType$77, ptrType$78, sliceType$6, ptrType$79, ptrType$80, sliceType$7, sliceType$8, sliceType$9, sliceType$10, ptrType$81, sliceType$11, sliceType$12, arrayType$1, sliceType$13, sliceType$14, sliceType$15, ptrType$82, mapType, mapType$1, mapType$2, ptrType$83, funcType, mapType$3, mapType$4, mapType$5, mapType$6, positiveInfinity, negativeInfinity, QuoteIdentifier, CanEscapeIdentifier, canUseShorthandProperty, parseSmallInt, wrapToAvoidAmbiguousElse, Print; bytes = $packages["bytes"]; fmt = $packages["fmt"]; ast = $packages["github.com/evanw/esbuild/internal/ast"]; @@ -307533,8 +310298,8 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { this.js = sliceType$1.nil; this.jsonMetadataImports = sliceType$3.nil; this.binaryExprStack = sliceType$10.nil; - this.options = new Options.ptr($throwNilPointerError, false, false, false, ptrType$80.nil, sliceType$11.nil, new ast.Ref.ptr(0, 0), new ast.Ref.ptr(0, 0), new ast.Ref.ptr(0, 0), new compat.JSFeature(0, 0), 0, 0, 0, false, false, false, false, 0, 0, false, false); - this.builder = new sourcemap.ChunkBuilder.ptr(ptrType$80.nil, sliceType$1.nil, sliceType$12.nil, false, sliceType$11.nil, "", new sourcemap.SourceMapState.ptr(0, 0, 0, 0, 0, 0, false), 0, 0, 0, new logger.Loc.ptr(0), new ast.Index32.ptr(0), false, false, false, false); + this.options = new Options.ptr($throwNilPointerError, false, false, false, ptrType$81.nil, sliceType$11.nil, new ast.Ref.ptr(0, 0), new ast.Ref.ptr(0, 0), new ast.Ref.ptr(0, 0), new compat.JSFeature(0, 0), 0, 0, 0, false, false, false, false, 0, 0, false, false); + this.builder = new sourcemap.ChunkBuilder.ptr(ptrType$81.nil, sliceType$1.nil, sliceType$12.nil, false, sliceType$11.nil, "", new sourcemap.SourceMapState.ptr(0, 0, 0, 0, 0, 0, false), 0, 0, 0, new logger.Loc.ptr(0), new ast.Index32.ptr(0), false, false, false, false); this.printNextIndentAsSpace = false; this.stmtStart = 0; this.exportDefaultStart = 0; @@ -307607,7 +310372,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { binaryExprVisitor = $newType(0, $kindStruct, "js_printer.binaryExprVisitor", true, "github.com/evanw/esbuild/internal/js_printer", false, function(e_, level_, flags_, leftLevel_, leftFlags_, entry_, wrap_, rightLevel_) { this.$val = this; if (arguments.length === 0) { - this.e = ptrType$16.nil; + this.e = ptrType$17.nil; this.level = 0; this.flags = 0; this.leftLevel = 0; @@ -307634,7 +310399,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { this.TSEnums = false; this.ConstValues = false; this.MangledProps = false; - this.InputSourceMap = ptrType$80.nil; + this.InputSourceMap = ptrType$81.nil; this.LineOffsetTables = sliceType$11.nil; this.ToCommonJSRef = new ast.Ref.ptr(0, 0); this.ToESMRef = new ast.Ref.ptr(0, 0); @@ -307733,91 +310498,92 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { ptrType$12 = $ptrType(ast.NamespaceAlias); ptrType$13 = $ptrType(js_ast.EFunction); ptrType$14 = $ptrType(js_ast.ENumber); - ptrType$15 = $ptrType(ast.ImportAssertOrWith); - ptrType$16 = $ptrType(js_ast.EBinary); - ptrType$17 = $ptrType(js_ast.ESpread); + ptrType$15 = $ptrType(ast.ImportRecord); + ptrType$16 = $ptrType(ast.ImportAssertOrWith); + ptrType$17 = $ptrType(js_ast.EBinary); + ptrType$18 = $ptrType(js_ast.ESpread); sliceType$4 = $sliceType(js_ast.Expr); - ptrType$18 = $ptrType(js_ast.EUnary); - ptrType$19 = $ptrType(js_ast.EIf); - ptrType$20 = $ptrType(js_ast.EMissing); - ptrType$21 = $ptrType(js_ast.EAnnotation); - ptrType$22 = $ptrType(js_ast.EUndefined); - ptrType$23 = $ptrType(js_ast.ESuper); - ptrType$24 = $ptrType(js_ast.ENull); - ptrType$25 = $ptrType(js_ast.EThis); - ptrType$26 = $ptrType(js_ast.ENewTarget); - ptrType$27 = $ptrType(js_ast.EImportMeta); - ptrType$28 = $ptrType(js_ast.EJSXElement); - ptrType$29 = $ptrType(js_ast.ENew); - ptrType$30 = $ptrType(js_ast.ERequireString); - ptrType$31 = $ptrType(js_ast.ERequireResolveString); - ptrType$32 = $ptrType(js_ast.EImportString); - ptrType$33 = $ptrType(js_ast.EImportCall); - ptrType$34 = $ptrType(js_ast.EArrow); - ptrType$35 = $ptrType(js_ast.EClass); - ptrType$36 = $ptrType(js_ast.EArray); - ptrType$37 = $ptrType(js_ast.EObject); - ptrType$38 = $ptrType(js_ast.EBoolean); - ptrType$39 = $ptrType(js_ast.ETemplate); - ptrType$40 = $ptrType(js_ast.ERegExp); - ptrType$41 = $ptrType(js_ast.EInlinedEnum); - ptrType$42 = $ptrType(js_ast.EBigInt); - ptrType$43 = $ptrType(js_ast.EAwait); - ptrType$44 = $ptrType(js_ast.EYield); - ptrType$45 = $ptrType(js_ast.EJSXText); - ptrType$46 = $ptrType(js_ast.SReturn); - ptrType$47 = $ptrType(ast.LocRef); + ptrType$19 = $ptrType(js_ast.EUnary); + ptrType$20 = $ptrType(js_ast.EIf); + ptrType$21 = $ptrType(js_ast.EMissing); + ptrType$22 = $ptrType(js_ast.EAnnotation); + ptrType$23 = $ptrType(js_ast.EUndefined); + ptrType$24 = $ptrType(js_ast.ESuper); + ptrType$25 = $ptrType(js_ast.ENull); + ptrType$26 = $ptrType(js_ast.EThis); + ptrType$27 = $ptrType(js_ast.ENewTarget); + ptrType$28 = $ptrType(js_ast.EImportMeta); + ptrType$29 = $ptrType(js_ast.EJSXElement); + ptrType$30 = $ptrType(js_ast.ENew); + ptrType$31 = $ptrType(js_ast.ERequireString); + ptrType$32 = $ptrType(js_ast.ERequireResolveString); + ptrType$33 = $ptrType(js_ast.EImportString); + ptrType$34 = $ptrType(js_ast.EImportCall); + ptrType$35 = $ptrType(js_ast.EArrow); + ptrType$36 = $ptrType(js_ast.EClass); + ptrType$37 = $ptrType(js_ast.EArray); + ptrType$38 = $ptrType(js_ast.EObject); + ptrType$39 = $ptrType(js_ast.EBoolean); + ptrType$40 = $ptrType(js_ast.ETemplate); + ptrType$41 = $ptrType(js_ast.ERegExp); + ptrType$42 = $ptrType(js_ast.EInlinedEnum); + ptrType$43 = $ptrType(js_ast.EBigInt); + ptrType$44 = $ptrType(js_ast.EAwait); + ptrType$45 = $ptrType(js_ast.EYield); + ptrType$46 = $ptrType(js_ast.EJSXText); + ptrType$47 = $ptrType(js_ast.SReturn); + ptrType$48 = $ptrType(ast.LocRef); sliceType$5 = $sliceType(js_ast.TemplatePart); - ptrType$48 = $ptrType(js_ast.SExpr); - ptrType$49 = $ptrType(js_ast.SLocal); - ptrType$50 = $ptrType(js_ast.SBlock); - ptrType$51 = $ptrType(js_ast.SIf); - ptrType$52 = $ptrType(js_ast.SFor); - ptrType$53 = $ptrType(js_ast.SForIn); - ptrType$54 = $ptrType(js_ast.SForOf); - ptrType$55 = $ptrType(js_ast.SWhile); - ptrType$56 = $ptrType(js_ast.SWith); - ptrType$57 = $ptrType(js_ast.SLabel); - ptrType$58 = $ptrType(js_ast.SComment); - ptrType$59 = $ptrType(js_ast.SFunction); - ptrType$60 = $ptrType(js_ast.SClass); - ptrType$61 = $ptrType(js_ast.SEmpty); - ptrType$62 = $ptrType(js_ast.SExportDefault); - ptrType$63 = $ptrType(js_ast.SExportStar); - ptrType$64 = $ptrType(js_ast.SExportClause); - ptrType$65 = $ptrType(js_ast.SExportFrom); - ptrType$66 = $ptrType(js_ast.SDoWhile); - ptrType$67 = $ptrType(js_ast.STry); - ptrType$68 = $ptrType(js_ast.SSwitch); - ptrType$69 = $ptrType(js_ast.SImport); - ptrType$70 = $ptrType(js_ast.SDebugger); - ptrType$71 = $ptrType(js_ast.SDirective); - ptrType$72 = $ptrType(js_ast.SBreak); - ptrType$73 = $ptrType(js_ast.SContinue); - ptrType$74 = $ptrType(js_ast.SThrow); + ptrType$49 = $ptrType(js_ast.SExpr); + ptrType$50 = $ptrType(js_ast.SLocal); + ptrType$51 = $ptrType(js_ast.SBlock); + ptrType$52 = $ptrType(js_ast.SIf); + ptrType$53 = $ptrType(js_ast.SFor); + ptrType$54 = $ptrType(js_ast.SForIn); + ptrType$55 = $ptrType(js_ast.SForOf); + ptrType$56 = $ptrType(js_ast.SWhile); + ptrType$57 = $ptrType(js_ast.SWith); + ptrType$58 = $ptrType(js_ast.SLabel); + ptrType$59 = $ptrType(js_ast.SComment); + ptrType$60 = $ptrType(js_ast.SFunction); + ptrType$61 = $ptrType(js_ast.SClass); + ptrType$62 = $ptrType(js_ast.SEmpty); + ptrType$63 = $ptrType(js_ast.SExportDefault); + ptrType$64 = $ptrType(js_ast.SExportStar); + ptrType$65 = $ptrType(js_ast.SExportClause); + ptrType$66 = $ptrType(js_ast.SExportFrom); + ptrType$67 = $ptrType(js_ast.SDoWhile); + ptrType$68 = $ptrType(js_ast.STry); + ptrType$69 = $ptrType(js_ast.SSwitch); + ptrType$70 = $ptrType(js_ast.SImport); + ptrType$71 = $ptrType(js_ast.SDebugger); + ptrType$72 = $ptrType(js_ast.SDirective); + ptrType$73 = $ptrType(js_ast.SBreak); + ptrType$74 = $ptrType(js_ast.SContinue); + ptrType$75 = $ptrType(js_ast.SThrow); structType = $structType("", []); - ptrType$75 = $ptrType(js_ast.ExportStarAlias); - ptrType$76 = $ptrType(js_ast.Catch); - ptrType$77 = $ptrType(js_ast.Finally); + ptrType$76 = $ptrType(js_ast.ExportStarAlias); + ptrType$77 = $ptrType(js_ast.Catch); + ptrType$78 = $ptrType(js_ast.Finally); sliceType$6 = $sliceType(js_ast.ClauseItem); - ptrType$78 = $ptrType(sliceType$6); - ptrType$79 = $ptrType(logger.Loc); + ptrType$79 = $ptrType(sliceType$6); + ptrType$80 = $ptrType(logger.Loc); sliceType$7 = $sliceType(ast.Symbol); sliceType$8 = $sliceType(sliceType$7); sliceType$9 = $sliceType(ast.ImportRecord); sliceType$10 = $sliceType(binaryExprVisitor); - ptrType$80 = $ptrType(sourcemap.SourceMap); + ptrType$81 = $ptrType(sourcemap.SourceMap); sliceType$11 = $sliceType(sourcemap.LineOffsetTable); sliceType$12 = $sliceType(sliceType$1); arrayType$1 = $arrayType($Uint8, 64); sliceType$13 = $sliceType(js_ast.Arg); sliceType$14 = $sliceType(js_ast.Decorator); sliceType$15 = $sliceType(js_ast.Decl); - ptrType$81 = $ptrType(printer); + ptrType$82 = $ptrType(printer); mapType = $mapType(logger.Loc, sliceType$3); mapType$1 = $mapType(logger.Loc, $Bool); mapType$2 = $mapType($String, structType); - ptrType$82 = $ptrType(binaryExprVisitor); + ptrType$83 = $ptrType(binaryExprVisitor); funcType = $funcType([$Uint32], [RequireOrImportMeta], false); mapType$3 = $mapType($String, js_ast.TSEnumValue); mapType$4 = $mapType(ast.Ref, mapType$3); @@ -309377,7 +312143,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); p = [p]; p[0] = this; - record = (x = p[0].importRecords, ((importRecordIndex < 0 || importRecordIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + importRecordIndex])); + record = (x = p[0].importRecords, ((importRecordIndex < 0 || importRecordIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + importRecordIndex, ptrType$15))); if (level >= 20 || !(((((flags & 1) >>> 0)) === 0))) { p[0].print("("); $deferred.push([$methodVal(p[0], "print"), [")"]]); @@ -309478,7 +312244,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { /* } */ case 24: p[0].print("("); /* } */ case 17: - isMultiLine$1 = p[0].willPrintExprCommentsAtLoc($clone(record.Range.Loc, logger.Loc)) || p[0].willPrintExprCommentsAtLoc($clone(closeParenLoc, logger.Loc)) || (!(record.AssertOrWith === ptrType$15.nil) && !p[0].options.UnsupportedFeatures.Has(new compat.JSFeature(0, 2097152)) && (!p[0].options.UnsupportedFeatures.Has(new compat.JSFeature(0, 1073741824)) || !p[0].options.UnsupportedFeatures.Has(new compat.JSFeature(0, 2147483648))) && p[0].willPrintExprCommentsAtLoc($clone(record.AssertOrWith.OuterOpenBraceLoc, logger.Loc))); + isMultiLine$1 = p[0].willPrintExprCommentsAtLoc($clone(record.Range.Loc, logger.Loc)) || p[0].willPrintExprCommentsAtLoc($clone(closeParenLoc, logger.Loc)) || (!(record.AssertOrWith === ptrType$16.nil) && !p[0].options.UnsupportedFeatures.Has(new compat.JSFeature(0, 2097152)) && (!p[0].options.UnsupportedFeatures.Has(new compat.JSFeature(0, 1073741824)) || !p[0].options.UnsupportedFeatures.Has(new compat.JSFeature(0, 2147483648))) && p[0].willPrintExprCommentsAtLoc($clone(record.AssertOrWith.OuterOpenBraceLoc, logger.Loc))); if (isMultiLine$1) { p[0].printNewline(); p[0].options.Indent = p[0].options.Indent + (1) >> 0; @@ -309632,10 +312398,10 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; _ref = expr.Data; - /* */ if ($assertType(_ref, ptrType$16, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$17, true)[1]) { $s = 1; continue; } /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 2; continue; } /* */ $s = 3; continue; - /* if ($assertType(_ref, ptrType$16, true)[1]) { */ case 1: + /* if ($assertType(_ref, ptrType$17, true)[1]) { */ case 1: e = _ref.$val; /* */ if (e.Op === 36) { $s = 4; continue; } /* */ $s = 5; continue; @@ -309670,7 +312436,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { /* while (true) { */ case 10: /* if (!(_i < _ref$2.$length)) { break; } */ if(!(_i < _ref$2.$length)) { $s = 11; continue; } arg = $clone(((_i < 0 || _i >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i]), js_ast.Expr); - _tuple = $assertType(arg.Data, ptrType$17, true); + _tuple = $assertType(arg.Data, ptrType$18, true); ok = _tuple[1]; if (ok) { arg.Data = new js_ast.EArray.ptr(new sliceType$4([$clone(arg, js_ast.Expr)]), new logger.Loc.ptr(0), new logger.Loc.ptr(0), true, false); @@ -309690,7 +312456,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { /* */ $s = 16; continue; /* if (((((symbolFlags & 576) >>> 0)) === 512) && (e$1.Args.$length === 1)) { */ case 15: arg$1 = $clone((x = e$1.Args, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])), js_ast.Expr); - _tuple$1 = $assertType(arg$1.Data, ptrType$17, true); + _tuple$1 = $assertType(arg$1.Data, ptrType$18, true); ok$1 = _tuple$1[1]; /* */ if (!ok$1) { $s = 17; continue; } /* */ $s = 18; continue; @@ -309710,7 +312476,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { p = this; wrap = false; if (!(((((flags & 128) >>> 0)) === 0))) { - _tuple = $assertType(expr.Data, ptrType$16, true); + _tuple = $assertType(expr.Data, ptrType$17, true); binary = _tuple[0]; ok = _tuple[1]; if (!ok || !((binary.Op === 36))) { @@ -309759,7 +312525,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { } return new js_ast.Expr.ptr(new js_ast.EInlinedEnum.ptr($clone(inlinedValue, js_ast.Expr), e$1.Name), $clone(inlinedValue.Loc, logger.Loc)); } - } else if ($assertType(_ref, ptrType$18, true)[1]) { + } else if ($assertType(_ref, ptrType$19, true)[1]) { e$2 = _ref.$val; value$2 = $clone(p.lateConstantFoldUnaryOrBinaryOrIfExpr($clone(e$2.Value, js_ast.Expr)), js_ast.Expr); if (!($interfaceIsEqual(value$2.Data, e$2.Value.Data))) { @@ -309778,7 +312544,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { } expr.Data = new js_ast.EUnary.ptr($clone(value$2, js_ast.Expr), e$2.Op, false, false); } - } else if ($assertType(_ref, ptrType$16, true)[1]) { + } else if ($assertType(_ref, ptrType$17, true)[1]) { e$3 = _ref.$val; left = $clone(p.lateConstantFoldUnaryOrBinaryOrIfExpr($clone(e$3.Left, js_ast.Expr)), js_ast.Expr); right = $clone(p.lateConstantFoldUnaryOrBinaryOrIfExpr($clone(e$3.Right, js_ast.Expr)), js_ast.Expr); @@ -309792,7 +312558,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { } expr.Data = binary; } - } else if ($assertType(_ref, ptrType$19, true)[1]) { + } else if ($assertType(_ref, ptrType$20, true)[1]) { e$4 = _ref.$val; test = $clone(p.lateConstantFoldUnaryOrBinaryOrIfExpr($clone(e$4.Test, js_ast.Expr)), js_ast.Expr); if (!($interfaceIsEqual(test.Data, e$4.Test.Data))) { @@ -309964,94 +312730,94 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { p = this; if (p.options.MinifySyntax && ((((flags & 1024) >>> 0)) === 0)) { _ref = expr.Data; - if ($assertType(_ref, ptrType$18, true)[1] || $assertType(_ref, ptrType$16, true)[1] || $assertType(_ref, ptrType$19, true)[1]) { + if ($assertType(_ref, ptrType$19, true)[1] || $assertType(_ref, ptrType$17, true)[1] || $assertType(_ref, ptrType$20, true)[1]) { js_ast.Expr.copy(expr, p.lateConstantFoldUnaryOrBinaryOrIfExpr($clone(expr, js_ast.Expr))); } } p.printExprCommentsAtLoc($clone(expr.Loc, logger.Loc)); _ref$1 = expr.Data; - /* */ if ($assertType(_ref$1, ptrType$20, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref$1, ptrType$21, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref$1, ptrType$22, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref$1, ptrType$23, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref$1, ptrType$24, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref$1, ptrType$25, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref$1, ptrType$17, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref$1, ptrType$26, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref$1, ptrType$27, true)[1]) { $s = 9; continue; } + /* */ if ($assertType(_ref$1, ptrType$21, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref$1, ptrType$22, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref$1, ptrType$23, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref$1, ptrType$24, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref$1, ptrType$25, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref$1, ptrType$26, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref$1, ptrType$18, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref$1, ptrType$27, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref$1, ptrType$28, true)[1]) { $s = 9; continue; } /* */ if ($assertType(_ref$1, ptrType$8, true)[1]) { $s = 10; continue; } - /* */ if ($assertType(_ref$1, ptrType$28, true)[1]) { $s = 11; continue; } - /* */ if ($assertType(_ref$1, ptrType$29, true)[1]) { $s = 12; continue; } + /* */ if ($assertType(_ref$1, ptrType$29, true)[1]) { $s = 11; continue; } + /* */ if ($assertType(_ref$1, ptrType$30, true)[1]) { $s = 12; continue; } /* */ if ($assertType(_ref$1, ptrType$9, true)[1]) { $s = 13; continue; } - /* */ if ($assertType(_ref$1, ptrType$30, true)[1]) { $s = 14; continue; } - /* */ if ($assertType(_ref$1, ptrType$31, true)[1]) { $s = 15; continue; } - /* */ if ($assertType(_ref$1, ptrType$32, true)[1]) { $s = 16; continue; } - /* */ if ($assertType(_ref$1, ptrType$33, true)[1]) { $s = 17; continue; } + /* */ if ($assertType(_ref$1, ptrType$31, true)[1]) { $s = 14; continue; } + /* */ if ($assertType(_ref$1, ptrType$32, true)[1]) { $s = 15; continue; } + /* */ if ($assertType(_ref$1, ptrType$33, true)[1]) { $s = 16; continue; } + /* */ if ($assertType(_ref$1, ptrType$34, true)[1]) { $s = 17; continue; } /* */ if ($assertType(_ref$1, ptrType$2, true)[1]) { $s = 18; continue; } /* */ if ($assertType(_ref$1, ptrType$10, true)[1]) { $s = 19; continue; } - /* */ if ($assertType(_ref$1, ptrType$19, true)[1]) { $s = 20; continue; } - /* */ if ($assertType(_ref$1, ptrType$34, true)[1]) { $s = 21; continue; } + /* */ if ($assertType(_ref$1, ptrType$20, true)[1]) { $s = 20; continue; } + /* */ if ($assertType(_ref$1, ptrType$35, true)[1]) { $s = 21; continue; } /* */ if ($assertType(_ref$1, ptrType$13, true)[1]) { $s = 22; continue; } - /* */ if ($assertType(_ref$1, ptrType$35, true)[1]) { $s = 23; continue; } - /* */ if ($assertType(_ref$1, ptrType$36, true)[1]) { $s = 24; continue; } - /* */ if ($assertType(_ref$1, ptrType$37, true)[1]) { $s = 25; continue; } - /* */ if ($assertType(_ref$1, ptrType$38, true)[1]) { $s = 26; continue; } + /* */ if ($assertType(_ref$1, ptrType$36, true)[1]) { $s = 23; continue; } + /* */ if ($assertType(_ref$1, ptrType$37, true)[1]) { $s = 24; continue; } + /* */ if ($assertType(_ref$1, ptrType$38, true)[1]) { $s = 25; continue; } + /* */ if ($assertType(_ref$1, ptrType$39, true)[1]) { $s = 26; continue; } /* */ if ($assertType(_ref$1, ptrType, true)[1]) { $s = 27; continue; } - /* */ if ($assertType(_ref$1, ptrType$39, true)[1]) { $s = 28; continue; } - /* */ if ($assertType(_ref$1, ptrType$40, true)[1]) { $s = 29; continue; } - /* */ if ($assertType(_ref$1, ptrType$41, true)[1]) { $s = 30; continue; } - /* */ if ($assertType(_ref$1, ptrType$42, true)[1]) { $s = 31; continue; } + /* */ if ($assertType(_ref$1, ptrType$40, true)[1]) { $s = 28; continue; } + /* */ if ($assertType(_ref$1, ptrType$41, true)[1]) { $s = 29; continue; } + /* */ if ($assertType(_ref$1, ptrType$42, true)[1]) { $s = 30; continue; } + /* */ if ($assertType(_ref$1, ptrType$43, true)[1]) { $s = 31; continue; } /* */ if ($assertType(_ref$1, ptrType$14, true)[1]) { $s = 32; continue; } /* */ if ($assertType(_ref$1, ptrType$1, true)[1]) { $s = 33; continue; } /* */ if ($assertType(_ref$1, ptrType$3, true)[1]) { $s = 34; continue; } - /* */ if ($assertType(_ref$1, ptrType$43, true)[1]) { $s = 35; continue; } - /* */ if ($assertType(_ref$1, ptrType$44, true)[1]) { $s = 36; continue; } - /* */ if ($assertType(_ref$1, ptrType$18, true)[1]) { $s = 37; continue; } - /* */ if ($assertType(_ref$1, ptrType$16, true)[1]) { $s = 38; continue; } + /* */ if ($assertType(_ref$1, ptrType$44, true)[1]) { $s = 35; continue; } + /* */ if ($assertType(_ref$1, ptrType$45, true)[1]) { $s = 36; continue; } + /* */ if ($assertType(_ref$1, ptrType$19, true)[1]) { $s = 37; continue; } + /* */ if ($assertType(_ref$1, ptrType$17, true)[1]) { $s = 38; continue; } /* */ $s = 39; continue; - /* switch (0) { default: if ($assertType(_ref$1, ptrType$20, true)[1]) { */ case 1: + /* switch (0) { default: if ($assertType(_ref$1, ptrType$21, true)[1]) { */ case 1: e = _ref$1.$val; p.addSourceMapping($clone(expr.Loc, logger.Loc)); $s = 40; continue; - /* } else if ($assertType(_ref$1, ptrType$21, true)[1]) { */ case 2: + /* } else if ($assertType(_ref$1, ptrType$22, true)[1]) { */ case 2: e$1 = _ref$1.$val; $r = p.printExpr($clone(e$1.Value, js_ast.Expr), level, flags); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 40; continue; - /* } else if ($assertType(_ref$1, ptrType$22, true)[1]) { */ case 3: + /* } else if ($assertType(_ref$1, ptrType$23, true)[1]) { */ case 3: e$2 = _ref$1.$val; p.printUndefined($clone(expr.Loc, logger.Loc), level); $s = 40; continue; - /* } else if ($assertType(_ref$1, ptrType$23, true)[1]) { */ case 4: + /* } else if ($assertType(_ref$1, ptrType$24, true)[1]) { */ case 4: e$3 = _ref$1.$val; p.printSpaceBeforeIdentifier(); p.addSourceMapping($clone(expr.Loc, logger.Loc)); p.print("super"); $s = 40; continue; - /* } else if ($assertType(_ref$1, ptrType$24, true)[1]) { */ case 5: + /* } else if ($assertType(_ref$1, ptrType$25, true)[1]) { */ case 5: e$4 = _ref$1.$val; p.printSpaceBeforeIdentifier(); p.addSourceMapping($clone(expr.Loc, logger.Loc)); p.print("null"); $s = 40; continue; - /* } else if ($assertType(_ref$1, ptrType$25, true)[1]) { */ case 6: + /* } else if ($assertType(_ref$1, ptrType$26, true)[1]) { */ case 6: e$5 = _ref$1.$val; p.printSpaceBeforeIdentifier(); p.addSourceMapping($clone(expr.Loc, logger.Loc)); p.print("this"); $s = 40; continue; - /* } else if ($assertType(_ref$1, ptrType$17, true)[1]) { */ case 7: + /* } else if ($assertType(_ref$1, ptrType$18, true)[1]) { */ case 7: e$6 = _ref$1.$val; p.addSourceMapping($clone(expr.Loc, logger.Loc)); p.print("..."); $r = p.printExpr($clone(e$6.Value, js_ast.Expr), 1, 0); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 40; continue; - /* } else if ($assertType(_ref$1, ptrType$26, true)[1]) { */ case 8: + /* } else if ($assertType(_ref$1, ptrType$27, true)[1]) { */ case 8: e$7 = _ref$1.$val; p.printSpaceBeforeIdentifier(); p.addSourceMapping($clone(expr.Loc, logger.Loc)); p.print("new.target"); $s = 40; continue; - /* } else if ($assertType(_ref$1, ptrType$27, true)[1]) { */ case 9: + /* } else if ($assertType(_ref$1, ptrType$28, true)[1]) { */ case 9: e$8 = _ref$1.$val; p.printSpaceBeforeIdentifier(); p.addSourceMapping($clone(expr.Loc, logger.Loc)); @@ -310067,7 +312833,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { } $r = p.printQuotedUTF8(name, 1); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 40; continue; - /* } else if ($assertType(_ref$1, ptrType$28, true)[1]) { */ case 11: + /* } else if ($assertType(_ref$1, ptrType$29, true)[1]) { */ case 11: e$10 = _ref$1.$val; p.addSourceMapping($clone(expr.Loc, logger.Loc)); p.print("<"); @@ -310152,14 +312918,14 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { /* */ if (new js_ast.PropertyFlags(property.Flags).Has(4)) { $s = 65; continue; } /* */ $s = 66; continue; /* if (new js_ast.PropertyFlags(property.Flags).Has(4)) { */ case 65: - _tuple$2 = $assertType(property.ValueOrNil.Data, ptrType$38, true); + _tuple$2 = $assertType(property.ValueOrNil.Data, ptrType$39, true); boolean$1 = _tuple$2[0]; ok$2 = _tuple$2[1]; if (ok$2 && boolean$1.Value) { _i++; /* continue; */ $s = 46; continue; } - _tuple$3 = $assertType(property.ValueOrNil.Data, ptrType$28, true); + _tuple$3 = $assertType(property.ValueOrNil.Data, ptrType$29, true); ok$3 = _tuple$3[1]; /* */ if (ok$3) { $s = 67; continue; } /* */ $s = 68; continue; @@ -310170,7 +312936,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { /* continue; */ $s = 46; continue; /* } */ case 68: /* } */ case 66: - _tuple$4 = $assertType(property.ValueOrNil.Data, ptrType$45, true); + _tuple$4 = $assertType(property.ValueOrNil.Data, ptrType$46, true); text = _tuple$4[0]; ok$4 = _tuple$4[1]; if (ok$4) { @@ -310217,7 +312983,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { /* while (true) { */ case 71: /* if (!(_i$1 < _ref$3.$length)) { break; } */ if(!(_i$1 < _ref$3.$length)) { $s = 72; continue; } childOrNil = $clone(((_i$1 < 0 || _i$1 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$1]), js_ast.Expr); - _tuple$5 = $assertType(childOrNil.Data, ptrType$28, true); + _tuple$5 = $assertType(childOrNil.Data, ptrType$29, true); ok$5 = _tuple$5[1]; /* */ if (ok$5) { $s = 73; continue; } /* */ $s = 74; continue; @@ -310225,7 +312991,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { $r = p.printExpr($clone(childOrNil, js_ast.Expr), 0, 0); /* */ $s = 76; case 76: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 75; continue; /* } else { */ case 74: - _tuple$6 = $assertType(childOrNil.Data, ptrType$45, true); + _tuple$6 = $assertType(childOrNil.Data, ptrType$46, true); text$1 = _tuple$6[0]; ok$6 = _tuple$6[1]; /* */ if (ok$6) { $s = 77; continue; } @@ -310271,7 +313037,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { $r = p.printJSXTag($clone(e$10.TagOrNil, js_ast.Expr)); /* */ $s = 82; case 82: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } p.print(">"); $s = 40; continue; - /* } else if ($assertType(_ref$1, ptrType$29, true)[1]) { */ case 12: + /* } else if ($assertType(_ref$1, ptrType$30, true)[1]) { */ case 12: e$11 = _ref$1.$val; wrap = level >= 21; hasPureComment = !p.options.MinifyWhitespace && e$11.CanBeUnwrappedIfUnused; @@ -310364,7 +313130,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { /* while (true) { */ case 93: /* if (!(_i$3 < _ref$6.$length)) { break; } */ if(!(_i$3 < _ref$6.$length)) { $s = 94; continue; } arg$1 = $clone(((_i$3 < 0 || _i$3 >= _ref$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$6.$array[_ref$6.$offset + _i$3]), js_ast.Expr); - _tuple$7 = $assertType(arg$1.Data, ptrType$17, true); + _tuple$7 = $assertType(arg$1.Data, ptrType$18, true); ok$7 = _tuple$7[1]; if (ok$7) { arg$1.Data = new js_ast.EArray.ptr(new sliceType$4([$clone(arg$1, js_ast.Expr)]), new logger.Loc.ptr(0), new logger.Loc.ptr(0), true, false); @@ -310387,7 +313153,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { /* */ $s = 99; continue; /* if (((((symbolFlags & 576) >>> 0)) === 512) && (e$12.Args.$length === 1)) { */ case 98: arg$2 = $clone((x = e$12.Args, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])), js_ast.Expr); - _tuple$8 = $assertType(arg$2.Data, ptrType$17, true); + _tuple$8 = $assertType(arg$2.Data, ptrType$18, true); ok$8 = _tuple$8[1]; /* */ if (!ok$8) { $s = 100; continue; } /* */ $s = 101; continue; @@ -310405,7 +313171,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { /* */ if (e$12.Args.$length === 0) { $s = 106; continue; } /* */ $s = 107; continue; /* if (e$12.Args.$length === 0) { */ case 106: - _tuple$9 = $assertType(e$12.Target.Data, ptrType$34, true); + _tuple$9 = $assertType(e$12.Target.Data, ptrType$35, true); arrow = _tuple$9[0]; ok$9 = _tuple$9[1]; /* */ if (ok$9 && (arrow.Args.$length === 0) && !arrow.IsAsync) { $s = 108; continue; } @@ -310422,7 +313188,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { /* */ if (stmts.$length === 1) { $s = 113; continue; } /* */ $s = 114; continue; /* if (stmts.$length === 1) { */ case 113: - _tuple$10 = $assertType((0 >= stmts.$length ? ($throwRuntimeError("index out of range"), undefined) : stmts.$array[stmts.$offset + 0]).Data, ptrType$46, true); + _tuple$10 = $assertType((0 >= stmts.$length ? ($throwRuntimeError("index out of range"), undefined) : stmts.$array[stmts.$offset + 0]).Data, ptrType$47, true); stmt = _tuple$10[0]; ok$10 = _tuple$10[1]; /* */ if (ok$10) { $s = 115; continue; } @@ -310514,12 +313280,12 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { p.print(")"); } $s = 40; continue; - /* } else if ($assertType(_ref$1, ptrType$30, true)[1]) { */ case 14: + /* } else if ($assertType(_ref$1, ptrType$31, true)[1]) { */ case 14: e$13 = _ref$1.$val; p.addSourceMapping($clone(expr.Loc, logger.Loc)); $r = p.printRequireOrImportExpr(e$13.ImportRecordIndex, level, flags, $clone(e$13.CloseParenLoc, logger.Loc)); /* */ $s = 126; case 126: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 40; continue; - /* } else if ($assertType(_ref$1, ptrType$31, true)[1]) { */ case 15: + /* } else if ($assertType(_ref$1, ptrType$32, true)[1]) { */ case 15: e$14 = _ref$1.$val; recordLoc = $clone((x$1 = p.importRecords, x$2 = e$14.ImportRecordIndex, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])).Range.Loc, logger.Loc); isMultiLine$4 = p.willPrintExprCommentsAtLoc($clone(recordLoc, logger.Loc)) || p.willPrintExprCommentsAtLoc($clone(e$14.CloseParenLoc, logger.Loc)); @@ -310551,12 +313317,12 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { p.print(")"); } $s = 40; continue; - /* } else if ($assertType(_ref$1, ptrType$32, true)[1]) { */ case 16: + /* } else if ($assertType(_ref$1, ptrType$33, true)[1]) { */ case 16: e$15 = _ref$1.$val; p.addSourceMapping($clone(expr.Loc, logger.Loc)); $r = p.printRequireOrImportExpr(e$15.ImportRecordIndex, level, flags, $clone(e$15.CloseParenLoc, logger.Loc)); /* */ $s = 128; case 128: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 40; continue; - /* } else if ($assertType(_ref$1, ptrType$33, true)[1]) { */ case 17: + /* } else if ($assertType(_ref$1, ptrType$34, true)[1]) { */ case 17: e$16 = _ref$1.$val; printImportAssertOrWith = !($interfaceIsEqual(e$16.OptionsOrNil.Data, $ifaceNil)) && (!p.options.UnsupportedFeatures.Has(new compat.JSFeature(0, 1073741824)) || !p.options.UnsupportedFeatures.Has(new compat.JSFeature(0, 2147483648))); isMultiLine$5 = !p.options.MinifyWhitespace && (p.willPrintExprCommentsAtLoc($clone(e$16.Expr.Loc, logger.Loc)) || (printImportAssertOrWith && p.willPrintExprCommentsAtLoc($clone(e$16.OptionsOrNil.Loc, logger.Loc))) || p.willPrintExprCommentsAtLoc($clone(e$16.CloseParenLoc, logger.Loc))); @@ -310713,7 +313479,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { _ref$8 = e$18.Index.Data; /* */ if ($assertType(_ref$8, ptrType$11, true)[1]) { $s = 160; continue; } /* */ if ($assertType(_ref$8, ptrType$8, true)[1]) { $s = 161; continue; } - /* */ if ($assertType(_ref$8, ptrType$41, true)[1]) { $s = 162; continue; } + /* */ if ($assertType(_ref$8, ptrType$42, true)[1]) { $s = 162; continue; } /* */ if ($assertType(_ref$8, ptrType$2, true)[1]) { $s = 163; continue; } /* */ $s = 164; continue; /* if ($assertType(_ref$8, ptrType$11, true)[1]) { */ case 160: @@ -310741,7 +313507,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { $s = -1; return; /* } */ case 169: $s = 164; continue; - /* } else if ($assertType(_ref$8, ptrType$41, true)[1]) { */ case 162: + /* } else if ($assertType(_ref$8, ptrType$42, true)[1]) { */ case 162: index$3 = _ref$8.$val; /* */ if (p.options.MinifySyntax) { $s = 171; continue; } /* */ $s = 172; continue; @@ -310800,7 +313566,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { } p.print("]"); $s = 40; continue; - /* } else if ($assertType(_ref$1, ptrType$19, true)[1]) { */ case 20: + /* } else if ($assertType(_ref$1, ptrType$20, true)[1]) { */ case 20: e$19 = _ref$1.$val; wrap$5 = level >= 5; if (wrap$5) { @@ -310824,7 +313590,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { p.print(")"); } $s = 40; continue; - /* } else if ($assertType(_ref$1, ptrType$34, true)[1]) { */ case 21: + /* } else if ($assertType(_ref$1, ptrType$35, true)[1]) { */ case 21: e$20 = _ref$1.$val; wrap$6 = level >= 4; if (wrap$6) { @@ -310847,7 +313613,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { /* */ if ((e$20.Body.Block.Stmts.$length === 1) && e$20.PreferExpr) { $s = 186; continue; } /* */ $s = 187; continue; /* if ((e$20.Body.Block.Stmts.$length === 1) && e$20.PreferExpr) { */ case 186: - _tuple$16 = $assertType((x$3 = e$20.Body.Block.Stmts, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])).Data, ptrType$46, true); + _tuple$16 = $assertType((x$3 = e$20.Body.Block.Stmts, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])).Data, ptrType$47, true); s = _tuple$16[0]; ok$16 = _tuple$16[1]; /* */ if (ok$16 && !($interfaceIsEqual(s.ValueOrNil.Data, $ifaceNil))) { $s = 188; continue; } @@ -310887,9 +313653,9 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { p.print("*"); p.printSpace(); } - /* */ if (!(e$21.Fn.Name === ptrType$47.nil)) { $s = 194; continue; } + /* */ if (!(e$21.Fn.Name === ptrType$48.nil)) { $s = 194; continue; } /* */ $s = 195; continue; - /* if (!(e$21.Fn.Name === ptrType$47.nil)) { */ case 194: + /* if (!(e$21.Fn.Name === ptrType$48.nil)) { */ case 194: p.printSpaceBeforeIdentifier(); _r$7 = p.renamer.NameForSymbol($clone(e$21.Fn.Name.Ref, ast.Ref)); /* */ $s = 196; case 196: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } name$5 = _r$7; @@ -310901,7 +313667,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { p.print(")"); } $s = 40; continue; - /* } else if ($assertType(_ref$1, ptrType$35, true)[1]) { */ case 23: + /* } else if ($assertType(_ref$1, ptrType$36, true)[1]) { */ case 23: e$22 = _ref$1.$val; n$1 = p.js.$length; wrap$8 = (p.stmtStart === n$1) || (p.exportDefaultStart === n$1) || (!(((((flags & 512) >>> 0)) === 0)) && p.options.UnsupportedFeatures.Has(new compat.JSFeature(0, 134217728))); @@ -310913,9 +313679,9 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { p.printSpaceBeforeIdentifier(); p.addSourceMapping($clone(expr.Loc, logger.Loc)); p.print("class"); - /* */ if (!(e$22.Class.Name === ptrType$47.nil)) { $s = 200; continue; } + /* */ if (!(e$22.Class.Name === ptrType$48.nil)) { $s = 200; continue; } /* */ $s = 201; continue; - /* if (!(e$22.Class.Name === ptrType$47.nil)) { */ case 200: + /* if (!(e$22.Class.Name === ptrType$48.nil)) { */ case 200: p.print(" "); _r$9 = p.renamer.NameForSymbol($clone(e$22.Class.Name.Ref, ast.Ref)); /* */ $s = 202; case 202: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } name$6 = _r$9; @@ -310927,7 +313693,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { p.print(")"); } $s = 40; continue; - /* } else if ($assertType(_ref$1, ptrType$36, true)[1]) { */ case 24: + /* } else if ($assertType(_ref$1, ptrType$37, true)[1]) { */ case 24: e$23 = _ref$1.$val; isMultiLine$7 = (e$23.Items.$length > 0 && !e$23.IsSingleLine) || p.willPrintExprCommentsForAnyOf(e$23.Items) || p.willPrintExprCommentsAtLoc($clone(e$23.CloseBracketLoc, logger.Loc)); p.addSourceMapping($clone(expr.Loc, logger.Loc)); @@ -310956,7 +313722,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { } } $r = p.printExpr($clone(item, js_ast.Expr), 1, 0); /* */ $s = 209; case 209: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _tuple$17 = $assertType(item.Data, ptrType$20, true); + _tuple$17 = $assertType(item.Data, ptrType$21, true); ok$17 = _tuple$17[1]; if (ok$17 && (i$3 === (e$23.Items.$length - 1 >> 0))) { p.print(","); @@ -310976,7 +313742,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { } p.print("]"); $s = 40; continue; - /* } else if ($assertType(_ref$1, ptrType$37, true)[1]) { */ case 25: + /* } else if ($assertType(_ref$1, ptrType$38, true)[1]) { */ case 25: e$24 = _ref$1.$val; isMultiLine$8 = (e$24.Properties.$length > 0 && !e$24.IsSingleLine) || p.willPrintExprCommentsAtLoc($clone(e$24.CloseBraceLoc, logger.Loc)); if (!p.options.MinifyWhitespace && !isMultiLine$8) { @@ -311043,7 +313809,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { p.print(")"); } $s = 40; continue; - /* } else if ($assertType(_ref$1, ptrType$38, true)[1]) { */ case 26: + /* } else if ($assertType(_ref$1, ptrType$39, true)[1]) { */ case 26: e$25 = _ref$1.$val; p.addSourceMapping($clone(expr.Loc, logger.Loc)); if (p.options.MinifySyntax) { @@ -311089,7 +313855,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { /* } */ case 216: $r = p.printQuotedUTF16(e$26.Value, (flags$2 | 1) >>> 0); /* */ $s = 218; case 218: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 40; continue; - /* } else if ($assertType(_ref$1, ptrType$39, true)[1]) { */ case 28: + /* } else if ($assertType(_ref$1, ptrType$40, true)[1]) { */ case 28: e$27 = _ref$1.$val; /* */ if ($interfaceIsEqual(e$27.TagOrNil.Data, $ifaceNil) && (p.options.MinifySyntax || p.wasLazyExport)) { $s = 219; continue; } /* */ $s = 220; continue; @@ -311141,17 +313907,17 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { /* */ if (!(replaced === sliceType$5.nil)) { $s = 228; continue; } /* */ $s = 229; continue; /* if (!(replaced === sliceType$5.nil)) { */ case 228: - copy[0] = $clone(e$27, js_ast.ETemplate); + copy[0] = $clone((e$27 === ptrType$40.nil && $throwNilPointerError(), e$27), js_ast.ETemplate); copy[0].Parts = replaced; _ref$14 = js_ast.InlinePrimitivesIntoTemplate($clone(new logger.Loc.ptr(0), logger.Loc), copy[0]).Data; /* */ if ($assertType(_ref$14, ptrType, true)[1]) { $s = 230; continue; } - /* */ if ($assertType(_ref$14, ptrType$39, true)[1]) { $s = 231; continue; } + /* */ if ($assertType(_ref$14, ptrType$40, true)[1]) { $s = 231; continue; } /* */ $s = 232; continue; /* if ($assertType(_ref$14, ptrType, true)[1]) { */ case 230: e2$2 = _ref$14.$val; $r = p.printQuotedUTF16(e2$2.Value, 1); /* */ $s = 233; case 233: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* } else if ($assertType(_ref$14, ptrType$39, true)[1]) { */ case 231: + /* } else if ($assertType(_ref$14, ptrType$40, true)[1]) { */ case 231: e2$3 = _ref$14.$val; e$27 = e2$3; /* } */ case 232: @@ -311224,7 +313990,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { case 252: p.print("`"); $s = 40; continue; - /* } else if ($assertType(_ref$1, ptrType$40, true)[1]) { */ case 29: + /* } else if ($assertType(_ref$1, ptrType$41, true)[1]) { */ case 29: e$28 = _ref$1.$val; buffer = p.js; n$3 = buffer.$length; @@ -311238,7 +314004,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { p.print(e$28.Value); p.prevRegExpEnd = p.js.$length; $s = 40; continue; - /* } else if ($assertType(_ref$1, ptrType$41, true)[1]) { */ case 30: + /* } else if ($assertType(_ref$1, ptrType$42, true)[1]) { */ case 30: e$29 = _ref$1.$val; $r = p.printExpr($clone(e$29.Value, js_ast.Expr), level, flags); /* */ $s = 258; case 258: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } if (!p.options.MinifyWhitespace && !p.options.MinifyIdentifiers) { @@ -311247,7 +314013,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { p.print(" */"); } $s = 40; continue; - /* } else if ($assertType(_ref$1, ptrType$42, true)[1]) { */ case 31: + /* } else if ($assertType(_ref$1, ptrType$43, true)[1]) { */ case 31: e$30 = _ref$1.$val; if (!p.options.UnsupportedFeatures.Has(new compat.JSFeature(0, 32))) { p.printSpaceBeforeIdentifier(); @@ -311386,7 +314152,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { /* } */ case 282: /* } */ case 272: $s = 40; continue; - /* } else if ($assertType(_ref$1, ptrType$43, true)[1]) { */ case 35: + /* } else if ($assertType(_ref$1, ptrType$44, true)[1]) { */ case 35: e$34 = _ref$1.$val; wrap$13 = level >= 18; if (wrap$13) { @@ -311401,7 +314167,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { p.print(")"); } $s = 40; continue; - /* } else if ($assertType(_ref$1, ptrType$44, true)[1]) { */ case 36: + /* } else if ($assertType(_ref$1, ptrType$45, true)[1]) { */ case 36: e$35 = _ref$1.$val; wrap$14 = level >= 4; if (wrap$14) { @@ -311423,7 +314189,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { p.print(")"); } $s = 40; continue; - /* } else if ($assertType(_ref$1, ptrType$18, true)[1]) { */ case 37: + /* } else if ($assertType(_ref$1, ptrType$19, true)[1]) { */ case 37: e$36 = _ref$1.$val; entry = $clone((x$5 = js_ast.OpTable, x$6 = e$36.Op, ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$6])), js_ast.OpTableEntry); wrap$15 = level >= entry.Level; @@ -311474,7 +314240,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { p.print(")"); } $s = 40; continue; - /* } else if ($assertType(_ref$1, ptrType$16, true)[1]) { */ case 38: + /* } else if ($assertType(_ref$1, ptrType$17, true)[1]) { */ case 38: e$37 = _ref$1.$val; v = new binaryExprVisitor.ptr(e$37, level, flags, 0, 0, new js_ast.OpTableEntry.ptr("", 0, false), false, 0); stackBottom = p.binaryExprStack.$length; @@ -311486,7 +314252,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { /* break; */ $s = 301; continue; /* } */ case 303: left = $clone(v.e.Left, js_ast.Expr); - _tuple$20 = $assertType(left.Data, ptrType$16, true); + _tuple$20 = $assertType(left.Data, ptrType$17, true); leftBinary = _tuple$20[0]; ok$19 = _tuple$20[1]; /* */ if (!ok$19) { $s = 305; continue; } @@ -311555,7 +314321,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { v.wrap = v.level >= v.entry.Level || ((e.Op === 21) && !(((((v.flags & 2) >>> 0)) === 0))); n = p.js.$length; if ((p.stmtStart === n) || (p.arrowExprStart === n)) { - _tuple = $assertType(e.Left.Data, ptrType$37, true); + _tuple = $assertType(e.Left.Data, ptrType$38, true); ok = _tuple[1]; if (ok) { v.wrap = true; @@ -311575,31 +314341,31 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { } _1 = e.Op; if (_1 === (30)) { - _tuple$1 = $assertType(e.Left.Data, ptrType$16, true); + _tuple$1 = $assertType(e.Left.Data, ptrType$17, true); left$1 = _tuple$1[0]; ok$1 = _tuple$1[1]; if (ok$1 && ((left$1.Op === 31) || (left$1.Op === 32))) { v.leftLevel = 18; } - _tuple$2 = $assertType(e.Right.Data, ptrType$16, true); + _tuple$2 = $assertType(e.Right.Data, ptrType$17, true); right$1 = _tuple$2[0]; ok$2 = _tuple$2[1]; if (ok$2 && ((right$1.Op === 31) || (right$1.Op === 32))) { v.rightLevel = 18; } } else if (_1 === (16)) { - _tuple$3 = $assertType(e.Left.Data, ptrType$18, true); + _tuple$3 = $assertType(e.Left.Data, ptrType$19, true); left$2 = _tuple$3[0]; ok$3 = _tuple$3[1]; if (ok$3 && (new js_ast.OpCode(left$2.Op).UnaryAssignTarget() === 0)) { v.leftLevel = 21; } else { - _tuple$4 = $assertType(e.Left.Data, ptrType$43, true); + _tuple$4 = $assertType(e.Left.Data, ptrType$44, true); ok$4 = _tuple$4[1]; if (ok$4) { v.leftLevel = 21; } else { - _tuple$5 = $assertType(e.Left.Data, ptrType$22, true); + _tuple$5 = $assertType(e.Left.Data, ptrType$23, true); ok$5 = _tuple$5[1]; if (ok$5) { v.leftLevel = 21; @@ -311609,7 +314375,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { if (ok$6) { v.leftLevel = 21; } else if (p.options.MinifySyntax) { - _tuple$7 = $assertType(e.Left.Data, ptrType$38, true); + _tuple$7 = $assertType(e.Left.Data, ptrType$39, true); ok$7 = _tuple$7[1]; if (ok$7) { v.leftLevel = 21; @@ -311845,14 +314611,14 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; _ref = init.Data; - /* */ if ($assertType(_ref, ptrType$48, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$49, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$49, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$50, true)[1]) { $s = 2; continue; } /* */ $s = 3; continue; - /* if ($assertType(_ref, ptrType$48, true)[1]) { */ case 1: + /* if ($assertType(_ref, ptrType$49, true)[1]) { */ case 1: s = _ref.$val; $r = p.printExpr($clone(s.Value, js_ast.Expr), 0, (flags | 8) >>> 0); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 4; continue; - /* } else if ($assertType(_ref, ptrType$49, true)[1]) { */ case 2: + /* } else if ($assertType(_ref, ptrType$50, true)[1]) { */ case 2: s$1 = _ref.$val; _1 = s$1.Kind; /* */ if (_1 === (4)) { $s = 7; continue; } @@ -311922,7 +314688,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { var {_tuple, block, body, isSingleLine, ok, p, $s, $r, $c} = $restore(this, {body, isSingleLine}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; - _tuple = $assertType(body.Data, ptrType$50, true); + _tuple = $assertType(body.Data, ptrType$51, true); block = _tuple[0]; ok = _tuple[1]; /* */ if (ok) { $s = 1; continue; } @@ -311930,7 +314696,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { /* */ $s = 3; continue; /* if (ok) { */ case 1: p.printSpace(); - $r = p.printBlock($clone(body.Loc, logger.Loc), $clone(block, js_ast.SBlock)); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.printBlock($clone(body.Loc, logger.Loc), $clone((block === ptrType$51.nil && $throwNilPointerError(), block), js_ast.SBlock)); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } p.printNewline(); $s = 4; continue; /* } else if (isSingleLine) { */ case 2: @@ -311978,28 +314744,28 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { var _ref, current, current$1, current$2, current$3, current$4, current$5, current$6, current$7, s; while (true) { _ref = s; - if ($assertType(_ref, ptrType$51, true)[1]) { + if ($assertType(_ref, ptrType$52, true)[1]) { current = _ref.$val; if ($interfaceIsEqual(current.NoOrNil.Data, $ifaceNil)) { return true; } s = current.NoOrNil.Data; - } else if ($assertType(_ref, ptrType$52, true)[1]) { + } else if ($assertType(_ref, ptrType$53, true)[1]) { current$1 = _ref.$val; s = current$1.Body.Data; - } else if ($assertType(_ref, ptrType$53, true)[1]) { + } else if ($assertType(_ref, ptrType$54, true)[1]) { current$2 = _ref.$val; s = current$2.Body.Data; - } else if ($assertType(_ref, ptrType$54, true)[1]) { + } else if ($assertType(_ref, ptrType$55, true)[1]) { current$3 = _ref.$val; s = current$3.Body.Data; - } else if ($assertType(_ref, ptrType$55, true)[1]) { + } else if ($assertType(_ref, ptrType$56, true)[1]) { current$4 = _ref.$val; s = current$4.Body.Data; - } else if ($assertType(_ref, ptrType$56, true)[1]) { + } else if ($assertType(_ref, ptrType$57, true)[1]) { current$5 = _ref.$val; s = current$5.Body.Data; - } else if ($assertType(_ref, ptrType$57, true)[1]) { + } else if ($assertType(_ref, ptrType$58, true)[1]) { current$6 = _ref.$val; s = current$6.Stmt.Data; } else { @@ -312032,7 +314798,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { /* } */ case 3: p.print(")"); no = $clone(s.NoOrNil, js_ast.Stmt); - _tuple = $assertType(no.Data, ptrType$48, true); + _tuple = $assertType(no.Data, ptrType$49, true); expr = _tuple[0]; ok = _tuple[1]; /* */ if (ok) { $s = 6; continue; } @@ -312046,7 +314812,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { no.Data = new js_ast.SExpr.ptr($clone(value, js_ast.Expr), false); } /* } */ case 7: - _tuple$1 = $assertType(s.Yes.Data, ptrType$50, true); + _tuple$1 = $assertType(s.Yes.Data, ptrType$51, true); yes = _tuple$1[0]; ok$1 = _tuple$1[1]; /* */ if (ok$1) { $s = 9; continue; } @@ -312054,7 +314820,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { /* */ $s = 11; continue; /* if (ok$1) { */ case 9: p.printSpace(); - $r = p.printBlock($clone(s.Yes.Loc, logger.Loc), $clone(yes, js_ast.SBlock)); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.printBlock($clone(s.Yes.Loc, logger.Loc), $clone((yes === ptrType$51.nil && $throwNilPointerError(), yes), js_ast.SBlock)); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } if (!($interfaceIsEqual(no.Data, $ifaceNil))) { p.printSpace(); } else { @@ -312089,18 +314855,18 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { p.printSemicolonIfNeeded(); p.printSpaceBeforeIdentifier(); p.print("else"); - _tuple$2 = $assertType(no.Data, ptrType$50, true); + _tuple$2 = $assertType(no.Data, ptrType$51, true); block = _tuple$2[0]; ok$2 = _tuple$2[1]; /* */ if (ok$2) { $s = 18; continue; } /* */ $s = 19; continue; /* if (ok$2) { */ case 18: p.printSpace(); - $r = p.printBlock($clone(no.Loc, logger.Loc), $clone(block, js_ast.SBlock)); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.printBlock($clone(no.Loc, logger.Loc), $clone((block === ptrType$51.nil && $throwNilPointerError(), block), js_ast.SBlock)); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } p.printNewline(); $s = 20; continue; /* } else { */ case 19: - _tuple$3 = $assertType(no.Data, ptrType$51, true); + _tuple$3 = $assertType(no.Data, ptrType$52, true); ifStmt = _tuple$3[0]; ok$3 = _tuple$3[1]; /* */ if (ok$3) { $s = 22; continue; } @@ -312140,7 +314906,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { } }; $ptrType(printer).prototype.printPath = function printPath(importRecordIndex, importKind) { - var {_r, external, feature, importKind, importRecordIndex, p, record, x, $s, $r, $c} = $restore(this, {importRecordIndex, importKind}); + var {_r, external, feature, importKind, importRecordIndex, p, record, x, x$1, $s, $r, $c} = $restore(this, {importRecordIndex, importKind}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; record = $clone((x = p.importRecords, ((importRecordIndex < 0 || importRecordIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + importRecordIndex])), ast.ImportRecord); @@ -312156,9 +314922,9 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { _r = fmt.Sprintf("\n {\n \"path\": %s,\n \"kind\": %s%s\n }", new sliceType([helpers.QuoteForJSON(record.Path.Text, p.options.ASCIIOnly), helpers.QuoteForJSON(new ast.ImportKind(importKind).StringForMetafile(), p.options.ASCIIOnly), new $String(external)])); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } p.jsonMetadataImports = $append(p.jsonMetadataImports, _r); /* } */ case 3: - /* */ if (!(record.AssertOrWith === ptrType$15.nil) && (importKind === 1)) { $s = 5; continue; } + /* */ if (!(record.AssertOrWith === ptrType$16.nil) && (importKind === 1)) { $s = 5; continue; } /* */ $s = 6; continue; - /* if (!(record.AssertOrWith === ptrType$15.nil) && (importKind === 1)) { */ case 5: + /* if (!(record.AssertOrWith === ptrType$16.nil) && (importKind === 1)) { */ case 5: feature = new compat.JSFeature(0, 2147483648); if (record.AssertOrWith.Keyword === 0) { feature = new compat.JSFeature(0, 1073741824); @@ -312170,16 +314936,16 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { p.addSourceMapping($clone(record.AssertOrWith.KeywordLoc, logger.Loc)); p.print(new ast.AssertOrWithKeyword(record.AssertOrWith.Keyword).String()); p.printSpace(); - $r = p.printImportAssertOrWithClause($clone(record.AssertOrWith, ast.ImportAssertOrWith)); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.printImportAssertOrWithClause($clone((x$1 = record.AssertOrWith, (x$1 === ptrType$16.nil && $throwNilPointerError(), x$1)), ast.ImportAssertOrWith)); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 6: $s = -1; return; - /* */ } return; } var $f = {$blk: printPath, $c: true, $r, _r, external, feature, importKind, importRecordIndex, p, record, x, $s};return $f; + /* */ } return; } var $f = {$blk: printPath, $c: true, $r, _r, external, feature, importKind, importRecordIndex, p, record, x, x$1, $s};return $f; }; $ptrType(printer).prototype.printImportCallAssertOrWith = function printImportCallAssertOrWith(assertOrWith, outerIsMultiLine) { var {assertOrWith, isMultiLine, outerIsMultiLine, p, $s, $r, $c} = $restore(this, {assertOrWith, outerIsMultiLine}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; - if (assertOrWith === ptrType$15.nil || (p.options.UnsupportedFeatures.Has(new compat.JSFeature(0, 1073741824)) && p.options.UnsupportedFeatures.Has(new compat.JSFeature(0, 2147483648)))) { + if (assertOrWith === ptrType$16.nil || (p.options.UnsupportedFeatures.Has(new compat.JSFeature(0, 1073741824)) && p.options.UnsupportedFeatures.Has(new compat.JSFeature(0, 2147483648)))) { $s = -1; return; } isMultiLine = p.willPrintExprCommentsAtLoc($clone(assertOrWith.KeywordLoc, logger.Loc)) || p.willPrintExprCommentsAtLoc($clone(assertOrWith.InnerOpenBraceLoc, logger.Loc)) || p.willPrintExprCommentsAtLoc($clone(assertOrWith.OuterCloseBraceLoc, logger.Loc)); @@ -312211,12 +314977,12 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { p.options.Indent = p.options.Indent + (1) >> 0; p.printIndent(); p.printExprCommentsAtLoc($clone(assertOrWith.InnerOpenBraceLoc, logger.Loc)); - $r = p.printImportAssertOrWithClause($clone(assertOrWith, ast.ImportAssertOrWith)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.printImportAssertOrWithClause($clone((assertOrWith === ptrType$16.nil && $throwNilPointerError(), assertOrWith), ast.ImportAssertOrWith)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } p.options.Indent = p.options.Indent - (1) >> 0; $s = 3; continue; /* } else { */ case 2: p.printSpace(); - $r = p.printImportAssertOrWithClause($clone(assertOrWith, ast.ImportAssertOrWith)); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.printImportAssertOrWithClause($clone((assertOrWith === ptrType$16.nil && $throwNilPointerError(), assertOrWith), ast.ImportAssertOrWith)); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 3: if (isMultiLine) { p.printNewline(); @@ -312314,43 +315080,43 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { /* */ } return; } var $f = {$blk: printImportAssertOrWithClause, $c: true, $r, _i, _i$1, _ref, _ref$1, assertOrWith, entry, entry$1, i, isMultiLine, p, $s};return $f; }; $ptrType(printer).prototype.printStmt = function printStmt(stmt, flags) { - var {_1, _2, _entry, _i, _i$1, _i$2, _i$3, _i$4, _key, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, block, block$1, c, expr, flags, flags$1, hasInitComment, hasInitComment$1, hasValueComment, hasValueComment$1, i, i$1, i$2, init, isMultiLine, item, item$1, item$2, itemCount, name, name$1, name$10, name$2, name$3, name$4, name$5, name$6, name$7, name$8, name$9, ok, ok$1, ok$2, ok$3, ok$4, ok$5, omitIndent, omitIndent$1, p, s, s$1, s$10, s$11, s$12, s$13, s$14, s$15, s$16, s$17, s$18, s$19, s$2, s$20, s$21, s$22, s$23, s$24, s$25, s$26, s$27, s$28, s$3, s$4, s$5, s$6, s$7, s$8, s$9, s2, s2$1, s2$2, s2$3, s2$4, s2$5, stmt, stmt$1, text, update, value, value$1, x, x$1, $s, $r, $c} = $restore(this, {stmt, flags}); + var {_1, _2, _entry, _i, _i$1, _i$2, _i$3, _i$4, _key, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, block, block$1, c, expr, flags, flags$1, hasInitComment, hasInitComment$1, hasValueComment, hasValueComment$1, i, i$1, i$2, init, isMultiLine, item, item$1, item$2, itemCount, name, name$1, name$10, name$2, name$3, name$4, name$5, name$6, name$7, name$8, name$9, ok, ok$1, ok$2, ok$3, ok$4, ok$5, omitIndent, omitIndent$1, p, s, s$1, s$10, s$11, s$12, s$13, s$14, s$15, s$16, s$17, s$18, s$19, s$2, s$20, s$21, s$22, s$23, s$24, s$25, s$26, s$27, s$28, s$3, s$4, s$5, s$6, s$7, s$8, s$9, s2, s2$1, s2$2, s2$3, s2$4, s2$5, stmt, stmt$1, text, update, value, value$1, x, x$1, x$2, $s, $r, $c} = $restore(this, {stmt, flags}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; if (p.options.LineLimit > 0) { p.printNewlinePastLineLimit(); } _ref = stmt.Data; - /* */ if ($assertType(_ref, ptrType$58, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$59, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$60, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$61, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$62, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$63, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType$64, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref, ptrType$65, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref, ptrType$49, true)[1]) { $s = 9; continue; } - /* */ if ($assertType(_ref, ptrType$51, true)[1]) { $s = 10; continue; } - /* */ if ($assertType(_ref, ptrType$66, true)[1]) { $s = 11; continue; } - /* */ if ($assertType(_ref, ptrType$53, true)[1]) { $s = 12; continue; } - /* */ if ($assertType(_ref, ptrType$54, true)[1]) { $s = 13; continue; } - /* */ if ($assertType(_ref, ptrType$55, true)[1]) { $s = 14; continue; } - /* */ if ($assertType(_ref, ptrType$56, true)[1]) { $s = 15; continue; } - /* */ if ($assertType(_ref, ptrType$57, true)[1]) { $s = 16; continue; } - /* */ if ($assertType(_ref, ptrType$67, true)[1]) { $s = 17; continue; } - /* */ if ($assertType(_ref, ptrType$52, true)[1]) { $s = 18; continue; } - /* */ if ($assertType(_ref, ptrType$68, true)[1]) { $s = 19; continue; } - /* */ if ($assertType(_ref, ptrType$69, true)[1]) { $s = 20; continue; } - /* */ if ($assertType(_ref, ptrType$50, true)[1]) { $s = 21; continue; } - /* */ if ($assertType(_ref, ptrType$70, true)[1]) { $s = 22; continue; } - /* */ if ($assertType(_ref, ptrType$71, true)[1]) { $s = 23; continue; } - /* */ if ($assertType(_ref, ptrType$72, true)[1]) { $s = 24; continue; } - /* */ if ($assertType(_ref, ptrType$73, true)[1]) { $s = 25; continue; } - /* */ if ($assertType(_ref, ptrType$46, true)[1]) { $s = 26; continue; } - /* */ if ($assertType(_ref, ptrType$74, true)[1]) { $s = 27; continue; } - /* */ if ($assertType(_ref, ptrType$48, true)[1]) { $s = 28; continue; } + /* */ if ($assertType(_ref, ptrType$59, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$60, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$61, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$62, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$63, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$64, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$65, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref, ptrType$66, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref, ptrType$50, true)[1]) { $s = 9; continue; } + /* */ if ($assertType(_ref, ptrType$52, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref, ptrType$67, true)[1]) { $s = 11; continue; } + /* */ if ($assertType(_ref, ptrType$54, true)[1]) { $s = 12; continue; } + /* */ if ($assertType(_ref, ptrType$55, true)[1]) { $s = 13; continue; } + /* */ if ($assertType(_ref, ptrType$56, true)[1]) { $s = 14; continue; } + /* */ if ($assertType(_ref, ptrType$57, true)[1]) { $s = 15; continue; } + /* */ if ($assertType(_ref, ptrType$58, true)[1]) { $s = 16; continue; } + /* */ if ($assertType(_ref, ptrType$68, true)[1]) { $s = 17; continue; } + /* */ if ($assertType(_ref, ptrType$53, true)[1]) { $s = 18; continue; } + /* */ if ($assertType(_ref, ptrType$69, true)[1]) { $s = 19; continue; } + /* */ if ($assertType(_ref, ptrType$70, true)[1]) { $s = 20; continue; } + /* */ if ($assertType(_ref, ptrType$51, true)[1]) { $s = 21; continue; } + /* */ if ($assertType(_ref, ptrType$71, true)[1]) { $s = 22; continue; } + /* */ if ($assertType(_ref, ptrType$72, true)[1]) { $s = 23; continue; } + /* */ if ($assertType(_ref, ptrType$73, true)[1]) { $s = 24; continue; } + /* */ if ($assertType(_ref, ptrType$74, true)[1]) { $s = 25; continue; } + /* */ if ($assertType(_ref, ptrType$47, true)[1]) { $s = 26; continue; } + /* */ if ($assertType(_ref, ptrType$75, true)[1]) { $s = 27; continue; } + /* */ if ($assertType(_ref, ptrType$49, true)[1]) { $s = 28; continue; } /* */ $s = 29; continue; - /* switch (0) { default: if ($assertType(_ref, ptrType$58, true)[1]) { */ case 1: + /* switch (0) { default: if ($assertType(_ref, ptrType$59, true)[1]) { */ case 1: s = _ref.$val; text = s.Text; if (s.IsLegalComment) { @@ -312376,7 +315142,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { p.addSourceMapping($clone(stmt.Loc, logger.Loc)); p.printIndentedComment(text); $s = 30; continue; - /* } else if ($assertType(_ref, ptrType$59, true)[1]) { */ case 2: + /* } else if ($assertType(_ref, ptrType$60, true)[1]) { */ case 2: s$1 = _ref.$val; if (!p.options.MinifyWhitespace && s$1.Fn.HasNoSideEffectsComment) { p.printIndent(); @@ -312404,7 +315170,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { $r = p.printFn($clone(s$1.Fn, js_ast.Fn)); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } p.printNewline(); $s = 30; continue; - /* } else if ($assertType(_ref, ptrType$60, true)[1]) { */ case 3: + /* } else if ($assertType(_ref, ptrType$61, true)[1]) { */ case 3: s$2 = _ref.$val; _r$1 = p.printDecorators(s$2.Class.Decorators, 0); /* */ $s = 34; case 34: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } omitIndent = _r$1; @@ -312424,17 +315190,17 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { $r = p.printClass($clone(s$2.Class, js_ast.Class)); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } p.printNewline(); $s = 30; continue; - /* } else if ($assertType(_ref, ptrType$61, true)[1]) { */ case 4: + /* } else if ($assertType(_ref, ptrType$62, true)[1]) { */ case 4: s$3 = _ref.$val; p.addSourceMapping($clone(stmt.Loc, logger.Loc)); p.printIndent(); p.print(";"); p.printNewline(); $s = 30; continue; - /* } else if ($assertType(_ref, ptrType$62, true)[1]) { */ case 5: + /* } else if ($assertType(_ref, ptrType$63, true)[1]) { */ case 5: s$4 = _ref.$val; if (!p.options.MinifyWhitespace) { - _tuple$1 = $assertType(s$4.Value.Data, ptrType$59, true); + _tuple$1 = $assertType(s$4.Value.Data, ptrType$60, true); s2 = _tuple$1[0]; ok$1 = _tuple$1[1]; if (ok$1 && s2.Fn.HasNoSideEffectsComment) { @@ -312443,7 +315209,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { } } omitIndent$1 = false; - _tuple$2 = $assertType(s$4.Value.Data, ptrType$60, true); + _tuple$2 = $assertType(s$4.Value.Data, ptrType$61, true); s2$1 = _tuple$2[0]; ok$2 = _tuple$2[1]; /* */ if (ok$2) { $s = 38; continue; } @@ -312460,17 +315226,17 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { p.print("export default"); p.printSpace(); _ref$1 = s$4.Value.Data; - /* */ if ($assertType(_ref$1, ptrType$48, true)[1]) { $s = 41; continue; } - /* */ if ($assertType(_ref$1, ptrType$59, true)[1]) { $s = 42; continue; } - /* */ if ($assertType(_ref$1, ptrType$60, true)[1]) { $s = 43; continue; } + /* */ if ($assertType(_ref$1, ptrType$49, true)[1]) { $s = 41; continue; } + /* */ if ($assertType(_ref$1, ptrType$60, true)[1]) { $s = 42; continue; } + /* */ if ($assertType(_ref$1, ptrType$61, true)[1]) { $s = 43; continue; } /* */ $s = 44; continue; - /* if ($assertType(_ref$1, ptrType$48, true)[1]) { */ case 41: + /* if ($assertType(_ref$1, ptrType$49, true)[1]) { */ case 41: s2$2 = _ref$1.$val; p.exportDefaultStart = p.js.$length; $r = p.printExprWithoutLeadingNewline($clone(s2$2.Value, js_ast.Expr), 1, 0); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } p.printSemicolonAfterStatement(); $s = -1; return; - /* } else if ($assertType(_ref$1, ptrType$59, true)[1]) { */ case 42: + /* } else if ($assertType(_ref$1, ptrType$60, true)[1]) { */ case 42: s2$3 = _ref$1.$val; p.printSpaceBeforeIdentifier(); if (s2$3.Fn.IsAsync) { @@ -312481,9 +315247,9 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { p.print("*"); p.printSpace(); } - /* */ if (!(s2$3.Fn.Name === ptrType$47.nil)) { $s = 47; continue; } + /* */ if (!(s2$3.Fn.Name === ptrType$48.nil)) { $s = 47; continue; } /* */ $s = 48; continue; - /* if (!(s2$3.Fn.Name === ptrType$47.nil)) { */ case 47: + /* if (!(s2$3.Fn.Name === ptrType$48.nil)) { */ case 47: p.printSpaceBeforeIdentifier(); _r$4 = p.renamer.NameForSymbol($clone(s2$3.Fn.Name.Ref, ast.Ref)); /* */ $s = 49; case 49: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } name$2 = _r$4; @@ -312493,13 +315259,13 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { $r = p.printFn($clone(s2$3.Fn, js_ast.Fn)); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } p.printNewline(); $s = 45; continue; - /* } else if ($assertType(_ref$1, ptrType$60, true)[1]) { */ case 43: + /* } else if ($assertType(_ref$1, ptrType$61, true)[1]) { */ case 43: s2$4 = _ref$1.$val; p.printSpaceBeforeIdentifier(); p.print("class"); - /* */ if (!(s2$4.Class.Name === ptrType$47.nil)) { $s = 52; continue; } + /* */ if (!(s2$4.Class.Name === ptrType$48.nil)) { $s = 52; continue; } /* */ $s = 53; continue; - /* if (!(s2$4.Class.Name === ptrType$47.nil)) { */ case 52: + /* if (!(s2$4.Class.Name === ptrType$48.nil)) { */ case 52: p.print(" "); _r$5 = p.renamer.NameForSymbol($clone(s2$4.Class.Name.Ref, ast.Ref)); /* */ $s = 54; case 54: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } name$3 = _r$5; @@ -312514,7 +315280,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { $panic(new $String("Internal error")); /* } */ case 45: $s = 30; continue; - /* } else if ($assertType(_ref, ptrType$63, true)[1]) { */ case 6: + /* } else if ($assertType(_ref, ptrType$64, true)[1]) { */ case 6: s$5 = _ref.$val; p.addSourceMapping($clone(stmt.Loc, logger.Loc)); p.printIndent(); @@ -312523,9 +315289,9 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { p.printSpace(); p.print("*"); p.printSpace(); - /* */ if (!(s$5.Alias === ptrType$75.nil)) { $s = 57; continue; } + /* */ if (!(s$5.Alias === ptrType$76.nil)) { $s = 57; continue; } /* */ $s = 58; continue; - /* if (!(s$5.Alias === ptrType$75.nil)) { */ case 57: + /* if (!(s$5.Alias === ptrType$76.nil)) { */ case 57: p.print("as"); p.printSpace(); $r = p.printClauseAlias($clone(s$5.Alias.Loc, logger.Loc), s$5.Alias.OriginalName); /* */ $s = 59; case 59: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } @@ -312537,7 +315303,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { $r = p.printPath(s$5.ImportRecordIndex, 1); /* */ $s = 60; case 60: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } p.printSemicolonAfterStatement(); $s = 30; continue; - /* } else if ($assertType(_ref, ptrType$64, true)[1]) { */ case 7: + /* } else if ($assertType(_ref, ptrType$65, true)[1]) { */ case 7: s$6 = _ref.$val; p.addSourceMapping($clone(stmt.Loc, logger.Loc)); p.printIndent(); @@ -312589,7 +315355,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { p.print("}"); p.printSemicolonAfterStatement(); $s = 30; continue; - /* } else if ($assertType(_ref, ptrType$65, true)[1]) { */ case 8: + /* } else if ($assertType(_ref, ptrType$66, true)[1]) { */ case 8: s$7 = _ref.$val; p.addSourceMapping($clone(stmt.Loc, logger.Loc)); p.printIndent(); @@ -312644,7 +315410,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { $r = p.printPath(s$7.ImportRecordIndex, 1); /* */ $s = 74; case 74: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } p.printSemicolonAfterStatement(); $s = 30; continue; - /* } else if ($assertType(_ref, ptrType$49, true)[1]) { */ case 9: + /* } else if ($assertType(_ref, ptrType$50, true)[1]) { */ case 9: s$8 = _ref.$val; p.addSourceMapping($clone(stmt.Loc, logger.Loc)); _2 = s$8.Kind; @@ -312671,26 +315437,26 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { /* } */ case 81: case 75: $s = 30; continue; - /* } else if ($assertType(_ref, ptrType$51, true)[1]) { */ case 10: + /* } else if ($assertType(_ref, ptrType$52, true)[1]) { */ case 10: s$9 = _ref.$val; p.addSourceMapping($clone(stmt.Loc, logger.Loc)); p.printIndent(); $r = p.printIf(s$9); /* */ $s = 87; case 87: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 30; continue; - /* } else if ($assertType(_ref, ptrType$66, true)[1]) { */ case 11: + /* } else if ($assertType(_ref, ptrType$67, true)[1]) { */ case 11: s$10 = _ref.$val; p.addSourceMapping($clone(stmt.Loc, logger.Loc)); p.printIndent(); p.printSpaceBeforeIdentifier(); p.print("do"); - _tuple$3 = $assertType(s$10.Body.Data, ptrType$50, true); + _tuple$3 = $assertType(s$10.Body.Data, ptrType$51, true); block = _tuple$3[0]; ok$3 = _tuple$3[1]; /* */ if (ok$3) { $s = 88; continue; } /* */ $s = 89; continue; /* if (ok$3) { */ case 88: p.printSpace(); - $r = p.printBlock($clone(s$10.Body.Loc, logger.Loc), $clone(block, js_ast.SBlock)); /* */ $s = 91; case 91: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.printBlock($clone(s$10.Body.Loc, logger.Loc), $clone((block === ptrType$51.nil && $throwNilPointerError(), block), js_ast.SBlock)); /* */ $s = 91; case 91: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } p.printSpace(); $s = 90; continue; /* } else { */ case 89: @@ -312721,7 +315487,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { p.print(")"); p.printSemicolonAfterStatement(); $s = 30; continue; - /* } else if ($assertType(_ref, ptrType$53, true)[1]) { */ case 12: + /* } else if ($assertType(_ref, ptrType$54, true)[1]) { */ case 12: s$11 = _ref.$val; p.addSourceMapping($clone(stmt.Loc, logger.Loc)); p.printIndent(); @@ -312755,7 +315521,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { p.print(")"); $r = p.printBody($clone(s$11.Body, js_ast.Stmt), s$11.IsSingleLineBody); /* */ $s = 100; case 100: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 30; continue; - /* } else if ($assertType(_ref, ptrType$54, true)[1]) { */ case 13: + /* } else if ($assertType(_ref, ptrType$55, true)[1]) { */ case 13: s$12 = _ref.$val; p.addSourceMapping($clone(stmt.Loc, logger.Loc)); p.printIndent(); @@ -312797,7 +315563,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { p.print(")"); $r = p.printBody($clone(s$12.Body, js_ast.Stmt), s$12.IsSingleLineBody); /* */ $s = 103; case 103: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 30; continue; - /* } else if ($assertType(_ref, ptrType$55, true)[1]) { */ case 14: + /* } else if ($assertType(_ref, ptrType$56, true)[1]) { */ case 14: s$13 = _ref.$val; p.addSourceMapping($clone(stmt.Loc, logger.Loc)); p.printIndent(); @@ -312822,7 +315588,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { p.print(")"); $r = p.printBody($clone(s$13.Body, js_ast.Stmt), s$13.IsSingleLineBody); /* */ $s = 109; case 109: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 30; continue; - /* } else if ($assertType(_ref, ptrType$56, true)[1]) { */ case 15: + /* } else if ($assertType(_ref, ptrType$57, true)[1]) { */ case 15: s$14 = _ref.$val; p.addSourceMapping($clone(stmt.Loc, logger.Loc)); p.printIndent(); @@ -312849,7 +315615,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { $r = p.printBody($clone(s$14.Body, js_ast.Stmt), s$14.IsSingleLineBody); /* */ $s = 115; case 115: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } p.withNesting = p.withNesting - (1) >> 0; $s = 30; continue; - /* } else if ($assertType(_ref, ptrType$57, true)[1]) { */ case 16: + /* } else if ($assertType(_ref, ptrType$58, true)[1]) { */ case 16: s$15 = _ref.$val; if (!p.options.MinifyWhitespace && (p.options.Indent > 0 || p.printNextIndentAsSpace)) { p.addSourceMapping($clone(stmt.Loc, logger.Loc)); @@ -312863,7 +315629,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { p.print(":"); $r = p.printBody($clone(s$15.Stmt, js_ast.Stmt), s$15.IsSingleLineStmt); /* */ $s = 118; case 118: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 30; continue; - /* } else if ($assertType(_ref, ptrType$67, true)[1]) { */ case 17: + /* } else if ($assertType(_ref, ptrType$68, true)[1]) { */ case 17: s$16 = _ref.$val; p.addSourceMapping($clone(stmt.Loc, logger.Loc)); p.printIndent(); @@ -312871,9 +315637,9 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { p.print("try"); p.printSpace(); $r = p.printBlock($clone(s$16.BlockLoc, logger.Loc), $clone(s$16.Block, js_ast.SBlock)); /* */ $s = 119; case 119: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!(s$16.Catch === ptrType$76.nil)) { $s = 120; continue; } + /* */ if (!(s$16.Catch === ptrType$77.nil)) { $s = 120; continue; } /* */ $s = 121; continue; - /* if (!(s$16.Catch === ptrType$76.nil)) { */ case 120: + /* if (!(s$16.Catch === ptrType$77.nil)) { */ case 120: p.printSpace(); p.print("catch"); /* */ if (!($interfaceIsEqual(s$16.Catch.BindingOrNil.Data, $ifaceNil))) { $s = 122; continue; } @@ -312887,9 +315653,9 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { p.printSpace(); $r = p.printBlock($clone(s$16.Catch.BlockLoc, logger.Loc), $clone(s$16.Catch.Block, js_ast.SBlock)); /* */ $s = 125; case 125: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 121: - /* */ if (!(s$16.Finally === ptrType$77.nil)) { $s = 126; continue; } + /* */ if (!(s$16.Finally === ptrType$78.nil)) { $s = 126; continue; } /* */ $s = 127; continue; - /* if (!(s$16.Finally === ptrType$77.nil)) { */ case 126: + /* if (!(s$16.Finally === ptrType$78.nil)) { */ case 126: p.printSpace(); p.print("finally"); p.printSpace(); @@ -312897,14 +315663,14 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { /* } */ case 127: p.printNewline(); $s = 30; continue; - /* } else if ($assertType(_ref, ptrType$52, true)[1]) { */ case 18: + /* } else if ($assertType(_ref, ptrType$53, true)[1]) { */ case 18: s$17 = _ref.$val; init = $clone(s$17.InitOrNil, js_ast.Stmt); update = $clone(s$17.UpdateOrNil, js_ast.Expr); /* */ if (p.options.MinifySyntax) { $s = 129; continue; } /* */ $s = 130; continue; /* if (p.options.MinifySyntax) { */ case 129: - _tuple$4 = $assertType(init.Data, ptrType$48, true); + _tuple$4 = $assertType(init.Data, ptrType$49, true); expr = _tuple$4[0]; ok$4 = _tuple$4[1]; /* */ if (ok$4) { $s = 131; continue; } @@ -312974,7 +315740,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { p.print(")"); $r = p.printBody($clone(s$17.Body, js_ast.Stmt), s$17.IsSingleLineBody); /* */ $s = 146; case 146: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 30; continue; - /* } else if ($assertType(_ref, ptrType$68, true)[1]) { */ case 19: + /* } else if ($assertType(_ref, ptrType$69, true)[1]) { */ case 19: s$18 = _ref.$val; p.addSourceMapping($clone(stmt.Loc, logger.Loc)); p.printIndent(); @@ -313025,14 +315791,14 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { /* */ if (c.Body.$length === 1) { $s = 158; continue; } /* */ $s = 159; continue; /* if (c.Body.$length === 1) { */ case 158: - _tuple$5 = $assertType((x = c.Body, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).Data, ptrType$50, true); + _tuple$5 = $assertType((x = c.Body, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).Data, ptrType$51, true); block$1 = _tuple$5[0]; ok$5 = _tuple$5[1]; /* */ if (ok$5) { $s = 160; continue; } /* */ $s = 161; continue; /* if (ok$5) { */ case 160: p.printSpace(); - $r = p.printBlock($clone((x$1 = c.Body, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])).Loc, logger.Loc), $clone(block$1, js_ast.SBlock)); /* */ $s = 162; case 162: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.printBlock($clone((x$1 = c.Body, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])).Loc, logger.Loc), $clone((block$1 === ptrType$51.nil && $throwNilPointerError(), block$1), js_ast.SBlock)); /* */ $s = 162; case 162: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } p.printNewline(); _i$2++; /* continue; */ $s = 152; continue; @@ -313061,7 +315827,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { p.printNewline(); p.needsSemicolon = false; $s = 30; continue; - /* } else if ($assertType(_ref, ptrType$69, true)[1]) { */ case 20: + /* } else if ($assertType(_ref, ptrType$70, true)[1]) { */ case 20: s$19 = _ref.$val; itemCount = 0; p.addSourceMapping($clone(stmt.Loc, logger.Loc)); @@ -313069,9 +315835,9 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { p.printSpaceBeforeIdentifier(); p.print("import"); p.printSpace(); - /* */ if (!(s$19.DefaultName === ptrType$47.nil)) { $s = 166; continue; } + /* */ if (!(s$19.DefaultName === ptrType$48.nil)) { $s = 166; continue; } /* */ $s = 167; continue; - /* if (!(s$19.DefaultName === ptrType$47.nil)) { */ case 166: + /* if (!(s$19.DefaultName === ptrType$48.nil)) { */ case 166: p.printSpaceBeforeIdentifier(); _r$10 = p.renamer.NameForSymbol($clone(s$19.DefaultName.Ref, ast.Ref)); /* */ $s = 168; case 168: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } name$6 = _r$10; @@ -313079,9 +315845,9 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { $r = p.printIdentifier(name$6); /* */ $s = 169; case 169: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } itemCount = itemCount + (1) >> 0; /* } */ case 167: - /* */ if (!(s$19.Items === ptrType$78.nil)) { $s = 170; continue; } + /* */ if (!(s$19.Items === ptrType$79.nil)) { $s = 170; continue; } /* */ $s = 171; continue; - /* if (!(s$19.Items === ptrType$78.nil)) { */ case 170: + /* if (!(s$19.Items === ptrType$79.nil)) { */ case 170: if (itemCount > 0) { p.print(","); p.printSpace(); @@ -313132,9 +315898,9 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { p.print("}"); itemCount = itemCount + (1) >> 0; /* } */ case 171: - /* */ if (!(s$19.StarNameLoc === ptrType$79.nil)) { $s = 179; continue; } + /* */ if (!(s$19.StarNameLoc === ptrType$80.nil)) { $s = 179; continue; } /* */ $s = 180; continue; - /* if (!(s$19.StarNameLoc === ptrType$79.nil)) { */ case 179: + /* if (!(s$19.StarNameLoc === ptrType$80.nil)) { */ case 179: if (itemCount > 0) { p.print(","); p.printSpace(); @@ -313144,7 +315910,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { p.print("as "); _r$12 = p.renamer.NameForSymbol($clone(s$19.NamespaceRef, ast.Ref)); /* */ $s = 181; case 181: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } name$8 = _r$12; - p.addSourceMappingForName($clone(s$19.StarNameLoc, logger.Loc), name$8, $clone(s$19.NamespaceRef, ast.Ref)); + p.addSourceMappingForName($clone((x$2 = s$19.StarNameLoc, (x$2 === ptrType$80.nil && $throwNilPointerError(), x$2)), logger.Loc), name$8, $clone(s$19.NamespaceRef, ast.Ref)); $r = p.printIdentifier(name$8); /* */ $s = 182; case 182: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } itemCount = itemCount + (1) >> 0; /* } */ case 180: @@ -313157,14 +315923,14 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { $r = p.printPath(s$19.ImportRecordIndex, 1); /* */ $s = 183; case 183: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } p.printSemicolonAfterStatement(); $s = 30; continue; - /* } else if ($assertType(_ref, ptrType$50, true)[1]) { */ case 21: + /* } else if ($assertType(_ref, ptrType$51, true)[1]) { */ case 21: s$20 = _ref.$val; p.addSourceMapping($clone(stmt.Loc, logger.Loc)); p.printIndent(); - $r = p.printBlock($clone(stmt.Loc, logger.Loc), $clone(s$20, js_ast.SBlock)); /* */ $s = 184; case 184: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.printBlock($clone(stmt.Loc, logger.Loc), $clone((s$20 === ptrType$51.nil && $throwNilPointerError(), s$20), js_ast.SBlock)); /* */ $s = 184; case 184: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } p.printNewline(); $s = 30; continue; - /* } else if ($assertType(_ref, ptrType$70, true)[1]) { */ case 22: + /* } else if ($assertType(_ref, ptrType$71, true)[1]) { */ case 22: s$21 = _ref.$val; p.addSourceMapping($clone(stmt.Loc, logger.Loc)); p.printIndent(); @@ -313172,7 +315938,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { p.print("debugger"); p.printSemicolonAfterStatement(); $s = 30; continue; - /* } else if ($assertType(_ref, ptrType$71, true)[1]) { */ case 23: + /* } else if ($assertType(_ref, ptrType$72, true)[1]) { */ case 23: s$22 = _ref.$val; p.addSourceMapping($clone(stmt.Loc, logger.Loc)); p.printIndent(); @@ -313180,15 +315946,15 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { $r = p.printQuotedUTF16(s$22.Value, 0); /* */ $s = 185; case 185: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } p.printSemicolonAfterStatement(); $s = 30; continue; - /* } else if ($assertType(_ref, ptrType$72, true)[1]) { */ case 24: + /* } else if ($assertType(_ref, ptrType$73, true)[1]) { */ case 24: s$23 = _ref.$val; p.addSourceMapping($clone(stmt.Loc, logger.Loc)); p.printIndent(); p.printSpaceBeforeIdentifier(); p.print("break"); - /* */ if (!(s$23.Label === ptrType$47.nil)) { $s = 186; continue; } + /* */ if (!(s$23.Label === ptrType$48.nil)) { $s = 186; continue; } /* */ $s = 187; continue; - /* if (!(s$23.Label === ptrType$47.nil)) { */ case 186: + /* if (!(s$23.Label === ptrType$48.nil)) { */ case 186: p.print(" "); _r$13 = p.renamer.NameForSymbol($clone(s$23.Label.Ref, ast.Ref)); /* */ $s = 188; case 188: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } name$9 = _r$13; @@ -313197,15 +315963,15 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { /* } */ case 187: p.printSemicolonAfterStatement(); $s = 30; continue; - /* } else if ($assertType(_ref, ptrType$73, true)[1]) { */ case 25: + /* } else if ($assertType(_ref, ptrType$74, true)[1]) { */ case 25: s$24 = _ref.$val; p.addSourceMapping($clone(stmt.Loc, logger.Loc)); p.printIndent(); p.printSpaceBeforeIdentifier(); p.print("continue"); - /* */ if (!(s$24.Label === ptrType$47.nil)) { $s = 190; continue; } + /* */ if (!(s$24.Label === ptrType$48.nil)) { $s = 190; continue; } /* */ $s = 191; continue; - /* if (!(s$24.Label === ptrType$47.nil)) { */ case 190: + /* if (!(s$24.Label === ptrType$48.nil)) { */ case 190: p.print(" "); _r$14 = p.renamer.NameForSymbol($clone(s$24.Label.Ref, ast.Ref)); /* */ $s = 192; case 192: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } name$10 = _r$14; @@ -313214,7 +315980,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { /* } */ case 191: p.printSemicolonAfterStatement(); $s = 30; continue; - /* } else if ($assertType(_ref, ptrType$46, true)[1]) { */ case 26: + /* } else if ($assertType(_ref, ptrType$47, true)[1]) { */ case 26: s$25 = _ref.$val; p.addSourceMapping($clone(stmt.Loc, logger.Loc)); p.printIndent(); @@ -313228,7 +315994,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { /* } */ case 195: p.printSemicolonAfterStatement(); $s = 30; continue; - /* } else if ($assertType(_ref, ptrType$74, true)[1]) { */ case 27: + /* } else if ($assertType(_ref, ptrType$75, true)[1]) { */ case 27: s$26 = _ref.$val; p.addSourceMapping($clone(stmt.Loc, logger.Loc)); p.printIndent(); @@ -313238,7 +316004,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { $r = p.printExprWithoutLeadingNewline($clone(s$26.Value, js_ast.Expr), 0, 0); /* */ $s = 197; case 197: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } p.printSemicolonAfterStatement(); $s = 30; continue; - /* } else if ($assertType(_ref, ptrType$48, true)[1]) { */ case 28: + /* } else if ($assertType(_ref, ptrType$49, true)[1]) { */ case 28: s$27 = _ref.$val; value$1 = $clone(s$27.Value, js_ast.Expr); /* */ if (p.options.MinifySyntax) { $s = 198; continue; } @@ -313271,7 +316037,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { $panic(new $String(_r$16)); /* } } */ case 30: $s = -1; return; - /* */ } return; } var $f = {$blk: printStmt, $c: true, $r, _1, _2, _entry, _i, _i$1, _i$2, _i$3, _i$4, _key, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, block, block$1, c, expr, flags, flags$1, hasInitComment, hasInitComment$1, hasValueComment, hasValueComment$1, i, i$1, i$2, init, isMultiLine, item, item$1, item$2, itemCount, name, name$1, name$10, name$2, name$3, name$4, name$5, name$6, name$7, name$8, name$9, ok, ok$1, ok$2, ok$3, ok$4, ok$5, omitIndent, omitIndent$1, p, s, s$1, s$10, s$11, s$12, s$13, s$14, s$15, s$16, s$17, s$18, s$19, s$2, s$20, s$21, s$22, s$23, s$24, s$25, s$26, s$27, s$28, s$3, s$4, s$5, s$6, s$7, s$8, s$9, s2, s2$1, s2$2, s2$3, s2$4, s2$5, stmt, stmt$1, text, update, value, value$1, x, x$1, $s};return $f; + /* */ } return; } var $f = {$blk: printStmt, $c: true, $r, _1, _2, _entry, _i, _i$1, _i$2, _i$3, _i$4, _key, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, block, block$1, c, expr, flags, flags$1, hasInitComment, hasInitComment$1, hasValueComment, hasValueComment$1, i, i$1, i$2, init, isMultiLine, item, item$1, item$2, itemCount, name, name$1, name$10, name$2, name$3, name$4, name$5, name$6, name$7, name$8, name$9, ok, ok$1, ok$2, ok$3, ok$4, ok$5, omitIndent, omitIndent$1, p, s, s$1, s$10, s$11, s$12, s$13, s$14, s$15, s$16, s$17, s$18, s$19, s$2, s$20, s$21, s$22, s$23, s$24, s$25, s$26, s$27, s$28, s$3, s$4, s$5, s$6, s$7, s$8, s$9, s2, s2$1, s2$2, s2$3, s2$4, s2$5, stmt, stmt$1, text, update, value, value$1, x, x$1, x$2, $s};return $f; }; Print = function Print$1(tree, symbols, r, options) { var {_i, _i$1, _i$2, _ref, _ref$1, _ref$2, directive, options, p, part, r, result, stmt, symbols, tree, $s, $r, $c} = $restore(this, {tree, symbols, r, options}); @@ -313324,12 +316090,12 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { /* */ } return; } var $f = {$blk: Print$1, $c: true, $r, _i, _i$1, _i$2, _ref, _ref$1, _ref$2, directive, options, p, part, r, result, stmt, symbols, tree, $s};return $f; }; $pkg.Print = Print; - ptrType$81.methods = [{prop: "printUnquotedUTF16", name: "printUnquotedUTF16", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([sliceType$2, $Int32, printQuotedFlags], [], false)}, {prop: "printJSXTag", name: "printJSXTag", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([js_ast.Expr], [], false)}, {prop: "print", name: "print", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([$String], [], false)}, {prop: "printBytes", name: "printBytes", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([sliceType$1], [], false)}, {prop: "printQuotedUTF8", name: "printQuotedUTF8", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([$String, printQuotedFlags], [], false)}, {prop: "addSourceMapping", name: "addSourceMapping", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([logger.Loc], [], false)}, {prop: "addSourceMappingForName", name: "addSourceMappingForName", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([logger.Loc, $String, ast.Ref], [], false)}, {prop: "printIndent", name: "printIndent", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([], [], false)}, {prop: "mangledPropName", name: "mangledPropName", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([ast.Ref], [$String], false)}, {prop: "tryToGetImportedEnumValue", name: "tryToGetImportedEnumValue", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([js_ast.Expr, $String], [js_ast.TSEnumValue, $Bool], false)}, {prop: "tryToGetImportedEnumValueUTF16", name: "tryToGetImportedEnumValueUTF16", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([js_ast.Expr, sliceType$2], [js_ast.TSEnumValue, $String, $Bool], false)}, {prop: "printClauseAlias", name: "printClauseAlias", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([logger.Loc, $String], [], false)}, {prop: "canPrintIdentifier", name: "canPrintIdentifier", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([$String], [$Bool], false)}, {prop: "canPrintIdentifierUTF16", name: "canPrintIdentifierUTF16", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([sliceType$2], [$Bool], false)}, {prop: "printIdentifier", name: "printIdentifier", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([$String], [], false)}, {prop: "printIdentifierUTF16", name: "printIdentifierUTF16", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([sliceType$2], [], false)}, {prop: "printNumber", name: "printNumber", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([$Float64, js_ast.L], [], false)}, {prop: "willPrintExprCommentsAtLoc", name: "willPrintExprCommentsAtLoc", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([logger.Loc], [$Bool], false)}, {prop: "willPrintExprCommentsForAnyOf", name: "willPrintExprCommentsForAnyOf", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([sliceType$4], [$Bool], false)}, {prop: "printBinding", name: "printBinding", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([js_ast.Binding], [], false)}, {prop: "printSpace", name: "printSpace", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([], [], false)}, {prop: "printNewline", name: "printNewline", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([], [], false)}, {prop: "currentLineLength", name: "currentLineLength", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([], [$Int], false)}, {prop: "printNewlinePastLineLimit", name: "printNewlinePastLineLimit", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([], [$Bool], false)}, {prop: "printSpaceBeforeOperator", name: "printSpaceBeforeOperator", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([js_ast.OpCode], [], false)}, {prop: "printSemicolonAfterStatement", name: "printSemicolonAfterStatement", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([], [], false)}, {prop: "printSemicolonIfNeeded", name: "printSemicolonIfNeeded", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([], [], false)}, {prop: "printSpaceBeforeIdentifier", name: "printSpaceBeforeIdentifier", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([], [], false)}, {prop: "printFnArgs", name: "printFnArgs", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([sliceType$13, fnArgsOpts], [], false)}, {prop: "printFn", name: "printFn", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([js_ast.Fn], [], false)}, {prop: "printDecorators", name: "printDecorators", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([sliceType$14, printAfterDecorator], [$Bool], false)}, {prop: "printClass", name: "printClass", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([js_ast.Class], [], false)}, {prop: "printProperty", name: "printProperty", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([js_ast.Property], [], false)}, {prop: "printQuotedUTF16", name: "printQuotedUTF16", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([sliceType$2, printQuotedFlags], [], false)}, {prop: "printRequireOrImportExpr", name: "printRequireOrImportExpr", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([$Uint32, js_ast.L, printExprFlags, logger.Loc], [], false)}, {prop: "printDotThenPrefix", name: "printDotThenPrefix", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([], [js_ast.L], false)}, {prop: "printDotThenSuffix", name: "printDotThenSuffix", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([], [], false)}, {prop: "printUndefined", name: "printUndefined", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([logger.Loc, js_ast.L], [], false)}, {prop: "simplifyUnusedExpr", name: "simplifyUnusedExpr", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([js_ast.Expr], [js_ast.Expr], false)}, {prop: "guardAgainstBehaviorChangeDueToSubstitution", name: "guardAgainstBehaviorChangeDueToSubstitution", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([js_ast.Expr, printExprFlags], [js_ast.Expr], false)}, {prop: "lateConstantFoldUnaryOrBinaryOrIfExpr", name: "lateConstantFoldUnaryOrBinaryOrIfExpr", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([js_ast.Expr], [js_ast.Expr], false)}, {prop: "isUnboundIdentifier", name: "isUnboundIdentifier", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([js_ast.Expr], [$Bool], false)}, {prop: "isIdentifierOrNumericConstantOrPropertyAccess", name: "isIdentifierOrNumericConstantOrPropertyAccess", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([js_ast.Expr], [$Bool], false)}, {prop: "saveExprStartFlags", name: "saveExprStartFlags", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([], [exprStartFlags], false)}, {prop: "restoreExprStartFlags", name: "restoreExprStartFlags", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([exprStartFlags], [], false)}, {prop: "printExprCommentsAtLoc", name: "printExprCommentsAtLoc", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([logger.Loc], [], false)}, {prop: "printExprCommentsAfterCloseTokenAtLoc", name: "printExprCommentsAfterCloseTokenAtLoc", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([logger.Loc], [], false)}, {prop: "printExprWithoutLeadingNewline", name: "printExprWithoutLeadingNewline", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([js_ast.Expr, js_ast.L, printExprFlags], [], false)}, {prop: "printExpr", name: "printExpr", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([js_ast.Expr, js_ast.L, printExprFlags], [], false)}, {prop: "isUnboundEvalIdentifier", name: "isUnboundEvalIdentifier", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([js_ast.Expr], [$Bool], false)}, {prop: "smallIntToBytes", name: "smallIntToBytes", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([$Int], [sliceType$1], false)}, {prop: "printNonNegativeFloat", name: "printNonNegativeFloat", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([$Float64], [], false)}, {prop: "printDeclStmt", name: "printDeclStmt", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([$Bool, $String, sliceType$15], [], false)}, {prop: "printForLoopInit", name: "printForLoopInit", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([js_ast.Stmt, printExprFlags], [], false)}, {prop: "printDecls", name: "printDecls", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([$String, sliceType$15, printExprFlags], [], false)}, {prop: "printBody", name: "printBody", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([js_ast.Stmt, $Bool], [], false)}, {prop: "printBlock", name: "printBlock", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([logger.Loc, js_ast.SBlock], [], false)}, {prop: "printIf", name: "printIf", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([ptrType$51], [], false)}, {prop: "printIndentedComment", name: "printIndentedComment", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([$String], [], false)}, {prop: "printPath", name: "printPath", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([$Uint32, ast.ImportKind], [], false)}, {prop: "printImportCallAssertOrWith", name: "printImportCallAssertOrWith", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([ptrType$15, $Bool], [], false)}, {prop: "printImportAssertOrWithClause", name: "printImportAssertOrWithClause", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([ast.ImportAssertOrWith], [], false)}, {prop: "printStmt", name: "printStmt", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([js_ast.Stmt, printStmtFlags], [], false)}]; - ptrType$82.methods = [{prop: "checkAndPrepare", name: "checkAndPrepare", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([ptrType$81], [$Bool], false)}, {prop: "visitRightAndFinish", name: "visitRightAndFinish", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([ptrType$81], [], false)}]; + ptrType$82.methods = [{prop: "printUnquotedUTF16", name: "printUnquotedUTF16", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([sliceType$2, $Int32, printQuotedFlags], [], false)}, {prop: "printJSXTag", name: "printJSXTag", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([js_ast.Expr], [], false)}, {prop: "print", name: "print", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([$String], [], false)}, {prop: "printBytes", name: "printBytes", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([sliceType$1], [], false)}, {prop: "printQuotedUTF8", name: "printQuotedUTF8", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([$String, printQuotedFlags], [], false)}, {prop: "addSourceMapping", name: "addSourceMapping", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([logger.Loc], [], false)}, {prop: "addSourceMappingForName", name: "addSourceMappingForName", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([logger.Loc, $String, ast.Ref], [], false)}, {prop: "printIndent", name: "printIndent", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([], [], false)}, {prop: "mangledPropName", name: "mangledPropName", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([ast.Ref], [$String], false)}, {prop: "tryToGetImportedEnumValue", name: "tryToGetImportedEnumValue", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([js_ast.Expr, $String], [js_ast.TSEnumValue, $Bool], false)}, {prop: "tryToGetImportedEnumValueUTF16", name: "tryToGetImportedEnumValueUTF16", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([js_ast.Expr, sliceType$2], [js_ast.TSEnumValue, $String, $Bool], false)}, {prop: "printClauseAlias", name: "printClauseAlias", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([logger.Loc, $String], [], false)}, {prop: "canPrintIdentifier", name: "canPrintIdentifier", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([$String], [$Bool], false)}, {prop: "canPrintIdentifierUTF16", name: "canPrintIdentifierUTF16", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([sliceType$2], [$Bool], false)}, {prop: "printIdentifier", name: "printIdentifier", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([$String], [], false)}, {prop: "printIdentifierUTF16", name: "printIdentifierUTF16", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([sliceType$2], [], false)}, {prop: "printNumber", name: "printNumber", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([$Float64, js_ast.L], [], false)}, {prop: "willPrintExprCommentsAtLoc", name: "willPrintExprCommentsAtLoc", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([logger.Loc], [$Bool], false)}, {prop: "willPrintExprCommentsForAnyOf", name: "willPrintExprCommentsForAnyOf", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([sliceType$4], [$Bool], false)}, {prop: "printBinding", name: "printBinding", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([js_ast.Binding], [], false)}, {prop: "printSpace", name: "printSpace", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([], [], false)}, {prop: "printNewline", name: "printNewline", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([], [], false)}, {prop: "currentLineLength", name: "currentLineLength", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([], [$Int], false)}, {prop: "printNewlinePastLineLimit", name: "printNewlinePastLineLimit", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([], [$Bool], false)}, {prop: "printSpaceBeforeOperator", name: "printSpaceBeforeOperator", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([js_ast.OpCode], [], false)}, {prop: "printSemicolonAfterStatement", name: "printSemicolonAfterStatement", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([], [], false)}, {prop: "printSemicolonIfNeeded", name: "printSemicolonIfNeeded", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([], [], false)}, {prop: "printSpaceBeforeIdentifier", name: "printSpaceBeforeIdentifier", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([], [], false)}, {prop: "printFnArgs", name: "printFnArgs", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([sliceType$13, fnArgsOpts], [], false)}, {prop: "printFn", name: "printFn", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([js_ast.Fn], [], false)}, {prop: "printDecorators", name: "printDecorators", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([sliceType$14, printAfterDecorator], [$Bool], false)}, {prop: "printClass", name: "printClass", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([js_ast.Class], [], false)}, {prop: "printProperty", name: "printProperty", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([js_ast.Property], [], false)}, {prop: "printQuotedUTF16", name: "printQuotedUTF16", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([sliceType$2, printQuotedFlags], [], false)}, {prop: "printRequireOrImportExpr", name: "printRequireOrImportExpr", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([$Uint32, js_ast.L, printExprFlags, logger.Loc], [], false)}, {prop: "printDotThenPrefix", name: "printDotThenPrefix", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([], [js_ast.L], false)}, {prop: "printDotThenSuffix", name: "printDotThenSuffix", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([], [], false)}, {prop: "printUndefined", name: "printUndefined", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([logger.Loc, js_ast.L], [], false)}, {prop: "simplifyUnusedExpr", name: "simplifyUnusedExpr", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([js_ast.Expr], [js_ast.Expr], false)}, {prop: "guardAgainstBehaviorChangeDueToSubstitution", name: "guardAgainstBehaviorChangeDueToSubstitution", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([js_ast.Expr, printExprFlags], [js_ast.Expr], false)}, {prop: "lateConstantFoldUnaryOrBinaryOrIfExpr", name: "lateConstantFoldUnaryOrBinaryOrIfExpr", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([js_ast.Expr], [js_ast.Expr], false)}, {prop: "isUnboundIdentifier", name: "isUnboundIdentifier", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([js_ast.Expr], [$Bool], false)}, {prop: "isIdentifierOrNumericConstantOrPropertyAccess", name: "isIdentifierOrNumericConstantOrPropertyAccess", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([js_ast.Expr], [$Bool], false)}, {prop: "saveExprStartFlags", name: "saveExprStartFlags", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([], [exprStartFlags], false)}, {prop: "restoreExprStartFlags", name: "restoreExprStartFlags", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([exprStartFlags], [], false)}, {prop: "printExprCommentsAtLoc", name: "printExprCommentsAtLoc", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([logger.Loc], [], false)}, {prop: "printExprCommentsAfterCloseTokenAtLoc", name: "printExprCommentsAfterCloseTokenAtLoc", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([logger.Loc], [], false)}, {prop: "printExprWithoutLeadingNewline", name: "printExprWithoutLeadingNewline", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([js_ast.Expr, js_ast.L, printExprFlags], [], false)}, {prop: "printExpr", name: "printExpr", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([js_ast.Expr, js_ast.L, printExprFlags], [], false)}, {prop: "isUnboundEvalIdentifier", name: "isUnboundEvalIdentifier", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([js_ast.Expr], [$Bool], false)}, {prop: "smallIntToBytes", name: "smallIntToBytes", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([$Int], [sliceType$1], false)}, {prop: "printNonNegativeFloat", name: "printNonNegativeFloat", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([$Float64], [], false)}, {prop: "printDeclStmt", name: "printDeclStmt", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([$Bool, $String, sliceType$15], [], false)}, {prop: "printForLoopInit", name: "printForLoopInit", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([js_ast.Stmt, printExprFlags], [], false)}, {prop: "printDecls", name: "printDecls", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([$String, sliceType$15, printExprFlags], [], false)}, {prop: "printBody", name: "printBody", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([js_ast.Stmt, $Bool], [], false)}, {prop: "printBlock", name: "printBlock", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([logger.Loc, js_ast.SBlock], [], false)}, {prop: "printIf", name: "printIf", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([ptrType$52], [], false)}, {prop: "printIndentedComment", name: "printIndentedComment", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([$String], [], false)}, {prop: "printPath", name: "printPath", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([$Uint32, ast.ImportKind], [], false)}, {prop: "printImportCallAssertOrWith", name: "printImportCallAssertOrWith", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([ptrType$16, $Bool], [], false)}, {prop: "printImportAssertOrWithClause", name: "printImportAssertOrWithClause", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([ast.ImportAssertOrWith], [], false)}, {prop: "printStmt", name: "printStmt", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([js_ast.Stmt, printStmtFlags], [], false)}]; + ptrType$83.methods = [{prop: "checkAndPrepare", name: "checkAndPrepare", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([ptrType$82], [$Bool], false)}, {prop: "visitRightAndFinish", name: "visitRightAndFinish", pkg: "github.com/evanw/esbuild/internal/js_printer", typ: $funcType([ptrType$82], [], false)}]; printer.init("github.com/evanw/esbuild/internal/js_printer", [{prop: "symbols", name: "symbols", embedded: false, exported: false, typ: ast.SymbolMap, tag: ""}, {prop: "astHelpers", name: "astHelpers", embedded: false, exported: false, typ: js_ast.HelperContext, tag: ""}, {prop: "renamer", name: "renamer", embedded: false, exported: false, typ: renamer.Renamer, tag: ""}, {prop: "importRecords", name: "importRecords", embedded: false, exported: false, typ: sliceType$9, tag: ""}, {prop: "callTarget", name: "callTarget", embedded: false, exported: false, typ: js_ast.E, tag: ""}, {prop: "exprComments", name: "exprComments", embedded: false, exported: false, typ: mapType, tag: ""}, {prop: "printedExprComments", name: "printedExprComments", embedded: false, exported: false, typ: mapType$1, tag: ""}, {prop: "hasLegalComment", name: "hasLegalComment", embedded: false, exported: false, typ: mapType$2, tag: ""}, {prop: "extractedLegalComments", name: "extractedLegalComments", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "js", name: "js", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "jsonMetadataImports", name: "jsonMetadataImports", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "binaryExprStack", name: "binaryExprStack", embedded: false, exported: false, typ: sliceType$10, tag: ""}, {prop: "options", name: "options", embedded: false, exported: false, typ: Options, tag: ""}, {prop: "builder", name: "builder", embedded: false, exported: false, typ: sourcemap.ChunkBuilder, tag: ""}, {prop: "printNextIndentAsSpace", name: "printNextIndentAsSpace", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "stmtStart", name: "stmtStart", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "exportDefaultStart", name: "exportDefaultStart", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "arrowExprStart", name: "arrowExprStart", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "forOfInitStart", name: "forOfInitStart", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "withNesting", name: "withNesting", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "prevOpEnd", name: "prevOpEnd", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "needSpaceBeforeDot", name: "needSpaceBeforeDot", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "prevRegExpEnd", name: "prevRegExpEnd", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "noLeadingNewlineHere", name: "noLeadingNewlineHere", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "oldLineStart", name: "oldLineStart", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "oldLineEnd", name: "oldLineEnd", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "intToBytesBuffer", name: "intToBytesBuffer", embedded: false, exported: false, typ: arrayType$1, tag: ""}, {prop: "needsSemicolon", name: "needsSemicolon", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "wasLazyExport", name: "wasLazyExport", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "prevOp", name: "prevOp", embedded: false, exported: false, typ: js_ast.OpCode, tag: ""}, {prop: "moduleType", name: "moduleType", embedded: false, exported: false, typ: js_ast.ModuleType, tag: ""}]); fnArgsOpts.init("github.com/evanw/esbuild/internal/js_printer", [{prop: "openParenLoc", name: "openParenLoc", embedded: false, exported: false, typ: logger.Loc, tag: ""}, {prop: "addMappingForOpenParenLoc", name: "addMappingForOpenParenLoc", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "hasRestArg", name: "hasRestArg", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "isArrow", name: "isArrow", embedded: false, exported: false, typ: $Bool, tag: ""}]); - binaryExprVisitor.init("github.com/evanw/esbuild/internal/js_printer", [{prop: "e", name: "e", embedded: false, exported: false, typ: ptrType$16, tag: ""}, {prop: "level", name: "level", embedded: false, exported: false, typ: js_ast.L, tag: ""}, {prop: "flags", name: "flags", embedded: false, exported: false, typ: printExprFlags, tag: ""}, {prop: "leftLevel", name: "leftLevel", embedded: false, exported: false, typ: js_ast.L, tag: ""}, {prop: "leftFlags", name: "leftFlags", embedded: false, exported: false, typ: printExprFlags, tag: ""}, {prop: "entry", name: "entry", embedded: false, exported: false, typ: js_ast.OpTableEntry, tag: ""}, {prop: "wrap", name: "wrap", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "rightLevel", name: "rightLevel", embedded: false, exported: false, typ: js_ast.L, tag: ""}]); - Options.init("", [{prop: "RequireOrImportMetaForSource", name: "RequireOrImportMetaForSource", embedded: false, exported: true, typ: funcType, tag: ""}, {prop: "TSEnums", name: "TSEnums", embedded: false, exported: true, typ: mapType$4, tag: ""}, {prop: "ConstValues", name: "ConstValues", embedded: false, exported: true, typ: mapType$5, tag: ""}, {prop: "MangledProps", name: "MangledProps", embedded: false, exported: true, typ: mapType$6, tag: ""}, {prop: "InputSourceMap", name: "InputSourceMap", embedded: false, exported: true, typ: ptrType$80, tag: ""}, {prop: "LineOffsetTables", name: "LineOffsetTables", embedded: false, exported: true, typ: sliceType$11, tag: ""}, {prop: "ToCommonJSRef", name: "ToCommonJSRef", embedded: false, exported: true, typ: ast.Ref, tag: ""}, {prop: "ToESMRef", name: "ToESMRef", embedded: false, exported: true, typ: ast.Ref, tag: ""}, {prop: "RuntimeRequireRef", name: "RuntimeRequireRef", embedded: false, exported: true, typ: ast.Ref, tag: ""}, {prop: "UnsupportedFeatures", name: "UnsupportedFeatures", embedded: false, exported: true, typ: compat.JSFeature, tag: ""}, {prop: "Indent", name: "Indent", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "LineLimit", name: "LineLimit", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "OutputFormat", name: "OutputFormat", embedded: false, exported: true, typ: config.Format, tag: ""}, {prop: "MinifyWhitespace", name: "MinifyWhitespace", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "MinifyIdentifiers", name: "MinifyIdentifiers", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "MinifySyntax", name: "MinifySyntax", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "ASCIIOnly", name: "ASCIIOnly", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "LegalComments", name: "LegalComments", embedded: false, exported: true, typ: config.LegalComments, tag: ""}, {prop: "SourceMap", name: "SourceMap", embedded: false, exported: true, typ: config.SourceMap, tag: ""}, {prop: "AddSourceMappings", name: "AddSourceMappings", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "NeedsMetafile", name: "NeedsMetafile", embedded: false, exported: true, typ: $Bool, tag: ""}]); + binaryExprVisitor.init("github.com/evanw/esbuild/internal/js_printer", [{prop: "e", name: "e", embedded: false, exported: false, typ: ptrType$17, tag: ""}, {prop: "level", name: "level", embedded: false, exported: false, typ: js_ast.L, tag: ""}, {prop: "flags", name: "flags", embedded: false, exported: false, typ: printExprFlags, tag: ""}, {prop: "leftLevel", name: "leftLevel", embedded: false, exported: false, typ: js_ast.L, tag: ""}, {prop: "leftFlags", name: "leftFlags", embedded: false, exported: false, typ: printExprFlags, tag: ""}, {prop: "entry", name: "entry", embedded: false, exported: false, typ: js_ast.OpTableEntry, tag: ""}, {prop: "wrap", name: "wrap", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "rightLevel", name: "rightLevel", embedded: false, exported: false, typ: js_ast.L, tag: ""}]); + Options.init("", [{prop: "RequireOrImportMetaForSource", name: "RequireOrImportMetaForSource", embedded: false, exported: true, typ: funcType, tag: ""}, {prop: "TSEnums", name: "TSEnums", embedded: false, exported: true, typ: mapType$4, tag: ""}, {prop: "ConstValues", name: "ConstValues", embedded: false, exported: true, typ: mapType$5, tag: ""}, {prop: "MangledProps", name: "MangledProps", embedded: false, exported: true, typ: mapType$6, tag: ""}, {prop: "InputSourceMap", name: "InputSourceMap", embedded: false, exported: true, typ: ptrType$81, tag: ""}, {prop: "LineOffsetTables", name: "LineOffsetTables", embedded: false, exported: true, typ: sliceType$11, tag: ""}, {prop: "ToCommonJSRef", name: "ToCommonJSRef", embedded: false, exported: true, typ: ast.Ref, tag: ""}, {prop: "ToESMRef", name: "ToESMRef", embedded: false, exported: true, typ: ast.Ref, tag: ""}, {prop: "RuntimeRequireRef", name: "RuntimeRequireRef", embedded: false, exported: true, typ: ast.Ref, tag: ""}, {prop: "UnsupportedFeatures", name: "UnsupportedFeatures", embedded: false, exported: true, typ: compat.JSFeature, tag: ""}, {prop: "Indent", name: "Indent", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "LineLimit", name: "LineLimit", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "OutputFormat", name: "OutputFormat", embedded: false, exported: true, typ: config.Format, tag: ""}, {prop: "MinifyWhitespace", name: "MinifyWhitespace", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "MinifyIdentifiers", name: "MinifyIdentifiers", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "MinifySyntax", name: "MinifySyntax", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "ASCIIOnly", name: "ASCIIOnly", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "LegalComments", name: "LegalComments", embedded: false, exported: true, typ: config.LegalComments, tag: ""}, {prop: "SourceMap", name: "SourceMap", embedded: false, exported: true, typ: config.SourceMap, tag: ""}, {prop: "AddSourceMappings", name: "AddSourceMappings", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "NeedsMetafile", name: "NeedsMetafile", embedded: false, exported: true, typ: $Bool, tag: ""}]); RequireOrImportMeta.init("", [{prop: "WrapperRef", name: "WrapperRef", embedded: false, exported: true, typ: ast.Ref, tag: ""}, {prop: "ExportsRef", name: "ExportsRef", embedded: false, exported: true, typ: ast.Ref, tag: ""}, {prop: "IsWrapperAsync", name: "IsWrapperAsync", embedded: false, exported: true, typ: $Bool, tag: ""}]); PrintResult.init("", [{prop: "JS", name: "JS", embedded: false, exported: true, typ: sliceType$1, tag: ""}, {prop: "ExtractedLegalComments", name: "ExtractedLegalComments", embedded: false, exported: true, typ: sliceType$3, tag: ""}, {prop: "JSONMetadataImports", name: "JSONMetadataImports", embedded: false, exported: true, typ: sliceType$3, tag: ""}, {prop: "SourceMapChunk", name: "SourceMapChunk", embedded: false, exported: true, typ: sourcemap.Chunk, tag: ""}]); }; @@ -313359,7 +316125,7 @@ $packages["github.com/evanw/esbuild/internal/js_printer"] = (function() { return $pkg; })(); $packages["github.com/evanw/esbuild/internal/linker"] = (function() { - var $pkg = {}, $init, bytes, base64, binary, fmt, ast, bundler, compat, config, css_ast, css_lexer, css_parser, css_printer, fs, graph, helpers, js_ast, js_lexer, js_printer, logger, renamer, resolver, runtime, sourcemap, xxhash, hash, url, path, sort, strconv, strings, sync, linkerContext, partRange, chunkInfo, chunkImport, outputPieceIndexKind, outputPiece, intermediateOutput, chunkRepr, chunkReprJS, chunkReprCSS, crossChunkImport, crossChunkImportArray, crossChunkImportItem, crossChunkImportItemArray, stableRef, stableRefArray, matchImportKind, matchImportResult, importTracker, importStatus, cssImportKind, cssImportOrder, chunkOrder, chunkOrderArray, stmtList, compileResultJS, compileResultCSS, legalCommentEntry, compileResultForSourceMap, chunkMeta, propertyInFile, duplicateEntry, thirdPartyEntry, item, ptrType, ptrType$1, ptrType$2, sliceType, sliceType$1, sliceType$2, sliceType$3, sliceType$4, sliceType$5, sliceType$6, sliceType$7, ptrType$3, sliceType$8, ptrType$4, arrayType, ptrType$5, ptrType$6, structType, sliceType$9, ptrType$7, ptrType$8, ptrType$9, ptrType$10, sliceType$10, sliceType$11, ptrType$11, sliceType$12, sliceType$13, sliceType$14, sliceType$15, sliceType$16, sliceType$17, ptrType$12, sliceType$18, sliceType$19, sliceType$20, sliceType$21, ptrType$13, ptrType$14, ptrType$15, sliceType$22, ptrType$16, sliceType$23, sliceType$24, ptrType$17, sliceType$25, sliceType$26, ptrType$18, ptrType$19, ptrType$20, sliceType$27, sliceType$28, ptrType$21, sliceType$29, ptrType$22, ptrType$23, sliceType$30, sliceType$31, sliceType$32, sliceType$33, ptrType$24, ptrType$25, sliceType$34, sliceType$35, sliceType$36, sliceType$37, ptrType$26, ptrType$27, sliceType$38, ptrType$28, ptrType$29, arrayType$1, sliceType$39, ptrType$30, sliceType$40, sliceType$41, sliceType$42, ptrType$31, ptrType$32, ptrType$33, ptrType$34, ptrType$35, ptrType$36, ptrType$37, ptrType$38, ptrType$39, ptrType$40, ptrType$41, ptrType$42, sliceType$43, sliceType$44, sliceType$45, arrayType$2, ptrType$43, sliceType$46, ptrType$44, sliceType$47, sliceType$48, ptrType$45, sliceType$49, sliceType$50, sliceType$51, sliceType$52, sliceType$53, sliceType$54, sliceType$55, sliceType$56, sliceType$57, ptrType$46, ptrType$47, sliceType$58, arrayType$3, sliceType$59, ptrType$48, mapType, mapType$1, funcType, mapType$2, mapType$3, ptrType$49, mapType$4, mapType$5, ptrType$50, ptrType$51, ptrType$52, ptrType$53, ptrType$54, sliceType$60, ptrType$55, chanType, ptrType$56, funcType$1, mapType$6, funcType$2, funcType$3, mapType$7, wrappedLog, Link, importConditionsAreEqual, isConditionalImportRedundant, appendOrExtendPartRange, mergeAdjacentLocalStmts, wrapRulesWithConditions, hashWriteUint32, hashWriteLengthPrefixed, joinWithPublicPath, moveBeforeExport; + var $pkg = {}, $init, bytes, base64, binary, fmt, ast, bundler, compat, config, css_ast, css_lexer, css_parser, css_printer, fs, graph, helpers, js_ast, js_lexer, js_printer, logger, renamer, resolver, runtime, sourcemap, xxhash, hash, url, path, sort, strconv, strings, sync, linkerContext, partRange, chunkInfo, chunkImport, outputPieceIndexKind, outputPiece, intermediateOutput, chunkRepr, chunkReprJS, chunkReprCSS, crossChunkImport, crossChunkImportArray, crossChunkImportItem, crossChunkImportItemArray, stableRef, stableRefArray, matchImportKind, matchImportResult, importTracker, importStatus, cssImportKind, cssImportOrder, chunkOrder, chunkOrderArray, stmtList, compileResultJS, compileResultCSS, legalCommentEntry, compileResultForSourceMap, chunkMeta, propertyInFile, duplicateEntry, thirdPartyEntry, item, ptrType, ptrType$1, ptrType$2, sliceType, sliceType$1, sliceType$2, sliceType$3, sliceType$4, sliceType$5, sliceType$6, sliceType$7, ptrType$3, sliceType$8, ptrType$4, arrayType, ptrType$5, ptrType$6, structType, sliceType$9, ptrType$7, ptrType$8, ptrType$9, ptrType$10, ptrType$11, sliceType$10, sliceType$11, ptrType$12, sliceType$12, sliceType$13, sliceType$14, sliceType$15, sliceType$16, ptrType$13, ptrType$14, ptrType$15, sliceType$17, ptrType$16, sliceType$18, sliceType$19, sliceType$20, sliceType$21, ptrType$17, ptrType$18, ptrType$19, ptrType$20, sliceType$22, ptrType$21, sliceType$23, sliceType$24, ptrType$22, sliceType$25, sliceType$26, ptrType$23, ptrType$24, sliceType$27, sliceType$28, ptrType$25, sliceType$29, ptrType$26, ptrType$27, sliceType$30, sliceType$31, sliceType$32, sliceType$33, ptrType$28, ptrType$29, sliceType$34, sliceType$35, sliceType$36, sliceType$37, ptrType$30, ptrType$31, sliceType$38, ptrType$32, ptrType$33, arrayType$1, sliceType$39, ptrType$34, sliceType$40, sliceType$41, sliceType$42, ptrType$35, ptrType$36, ptrType$37, ptrType$38, ptrType$39, ptrType$40, ptrType$41, ptrType$42, ptrType$43, ptrType$44, ptrType$45, ptrType$46, ptrType$47, sliceType$43, sliceType$44, sliceType$45, ptrType$48, arrayType$2, ptrType$49, sliceType$46, ptrType$50, sliceType$47, sliceType$48, ptrType$51, sliceType$49, sliceType$50, sliceType$51, sliceType$52, sliceType$53, sliceType$54, sliceType$55, sliceType$56, sliceType$57, ptrType$52, ptrType$53, ptrType$54, sliceType$58, ptrType$55, arrayType$3, sliceType$59, ptrType$56, mapType, mapType$1, funcType, mapType$2, mapType$3, ptrType$57, mapType$4, mapType$5, ptrType$58, ptrType$59, sliceType$60, ptrType$60, chanType, ptrType$61, funcType$1, mapType$6, funcType$2, funcType$3, mapType$7, wrappedLog, Link, importConditionsAreEqual, isConditionalImportRedundant, appendOrExtendPartRange, mergeAdjacentLocalStmts, wrapRulesWithConditions, hashWriteUint32, hashWriteLengthPrefixed, joinWithPublicPath, moveBeforeExport; bytes = $packages["bytes"]; base64 = $packages["encoding/base64"]; binary = $packages["encoding/binary"]; @@ -313719,7 +316485,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { propertyInFile = $newType(0, $kindStruct, "linker.propertyInFile", true, "github.com/evanw/esbuild/internal/linker", false, function(file_, loc_) { this.$val = this; if (arguments.length === 0) { - this.file = ptrType$19.nil; + this.file = ptrType$20.nil; this.loc = new logger.Loc.ptr(0); return; } @@ -313813,83 +316579,89 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { ptrType$7 = $ptrType(logger.LineColumnTracker); ptrType$8 = $ptrType(chunkReprJS); ptrType$9 = $ptrType(chunkReprCSS); - ptrType$10 = $ptrType($String); + ptrType$10 = $ptrType(chunkInfo); + ptrType$11 = $ptrType($String); sliceType$10 = $sliceType(sliceType$8); sliceType$11 = $sliceType($String); - ptrType$11 = $ptrType(url.Userinfo); + ptrType$12 = $ptrType(url.Userinfo); sliceType$12 = $sliceType(helpers.joinerString); sliceType$13 = $sliceType(helpers.joinerBytes); sliceType$14 = $sliceType(sourcemap.SourceMapShift); sliceType$15 = $sliceType(outputPiece); sliceType$16 = $sliceType(chunkMeta); + ptrType$13 = $ptrType(chunkMeta); + ptrType$14 = $ptrType(js_ast.Part); + ptrType$15 = $ptrType(ast.ImportRecord); sliceType$17 = $sliceType(js_ast.Dependency); - ptrType$12 = $ptrType(ast.NamespaceAlias); + ptrType$16 = $ptrType(ast.NamespaceAlias); sliceType$18 = $sliceType(graph.ImportData); sliceType$19 = $sliceType($Int); sliceType$20 = $sliceType(js_ast.ClauseItem); sliceType$21 = $sliceType(js_ast.Stmt); - ptrType$13 = $ptrType(ast.LocRef); - ptrType$14 = $ptrType(sliceType$20); - ptrType$15 = $ptrType(logger.Loc); + ptrType$17 = $ptrType(ast.LocRef); + ptrType$18 = $ptrType(sliceType$20); + ptrType$19 = $ptrType(logger.Loc); + ptrType$20 = $ptrType(graph.LinkerFile); sliceType$22 = $sliceType(logger.MsgData); - ptrType$16 = $ptrType(logger.MsgLocation); + ptrType$21 = $ptrType(logger.MsgLocation); sliceType$23 = $sliceType($Uint16); sliceType$24 = $sliceType(ast.Ref); - ptrType$17 = $ptrType(js_ast.Scope); - sliceType$25 = $sliceType(ptrType$17); + ptrType$22 = $ptrType(js_ast.Scope); + sliceType$25 = $sliceType(ptrType$22); sliceType$26 = $sliceType(js_ast.DeclaredSymbol); - ptrType$18 = $ptrType(css_ast.Composes); - ptrType$19 = $ptrType(graph.LinkerFile); - ptrType$20 = $ptrType(js_ast.SLazyExport); + ptrType$23 = $ptrType(css_ast.Composes); + ptrType$24 = $ptrType(js_ast.SLazyExport); sliceType$27 = $sliceType(js_ast.Property); sliceType$28 = $sliceType(js_ast.TemplatePart); - ptrType$21 = $ptrType(js_ast.ClassStaticBlock); + ptrType$25 = $ptrType(js_ast.ClassStaticBlock); sliceType$29 = $sliceType(js_ast.Decorator); - ptrType$22 = $ptrType(js_ast.EObject); - ptrType$23 = $ptrType(js_ast.EString); + ptrType$26 = $ptrType(js_ast.EObject); + ptrType$27 = $ptrType(js_ast.EString); sliceType$30 = $sliceType(js_ast.Decl); sliceType$31 = $sliceType(js_ast.Arg); sliceType$32 = $sliceType(js_ast.Expr); sliceType$33 = $sliceType(matchImportResult); - ptrType$24 = $ptrType(helpers.TypoDetector); - ptrType$25 = $ptrType(graph.ExportData); + ptrType$28 = $ptrType(helpers.TypoDetector); + ptrType$29 = $ptrType(graph.ExportData); sliceType$34 = $sliceType(cssImportOrder); sliceType$35 = $sliceType(css_ast.ImportConditions); sliceType$36 = $sliceType(ast.ImportRecord); sliceType$37 = $sliceType(sliceType$11); - ptrType$26 = $ptrType(css_ast.RAtImport); - ptrType$27 = $ptrType(css_ast.ImportConditions); + ptrType$30 = $ptrType(css_ast.RAtImport); + ptrType$31 = $ptrType(css_ast.ImportConditions); sliceType$38 = $sliceType(css_ast.Token); - ptrType$28 = $ptrType(ast.ImportAssertOrWith); - ptrType$29 = $ptrType(ast.GlobPattern); + ptrType$32 = $ptrType(ast.ImportAssertOrWith); + ptrType$33 = $ptrType(ast.GlobPattern); arrayType$1 = $arrayType($Uint32, 16); sliceType$39 = $sliceType(duplicateEntry); - ptrType$30 = $ptrType(sliceType$38); + ptrType$34 = $ptrType(sliceType$38); sliceType$40 = $sliceType(chunkImport); sliceType$41 = $sliceType(config.PathTemplate); sliceType$42 = $sliceType(partRange); - ptrType$31 = $ptrType(js_ast.SImport); - ptrType$32 = $ptrType(js_ast.SExportStar); - ptrType$33 = $ptrType(js_ast.SExportFrom); - ptrType$34 = $ptrType(js_ast.SExportClause); - ptrType$35 = $ptrType(js_ast.SFunction); - ptrType$36 = $ptrType(js_ast.SClass); - ptrType$37 = $ptrType(js_ast.SLocal); - ptrType$38 = $ptrType(js_ast.SExportDefault); - ptrType$39 = $ptrType(js_ast.ExportStarAlias); - ptrType$40 = $ptrType(js_ast.SExpr); - ptrType$41 = $ptrType(js_ast.BIdentifier); - ptrType$42 = $ptrType(sourcemap.SourceMap); + ptrType$35 = $ptrType(partRange); + ptrType$36 = $ptrType(js_ast.SImport); + ptrType$37 = $ptrType(js_ast.SExportStar); + ptrType$38 = $ptrType(js_ast.SExportFrom); + ptrType$39 = $ptrType(js_ast.SExportClause); + ptrType$40 = $ptrType(js_ast.SFunction); + ptrType$41 = $ptrType(js_ast.SClass); + ptrType$42 = $ptrType(js_ast.SLocal); + ptrType$43 = $ptrType(js_ast.SExportDefault); + ptrType$44 = $ptrType(js_ast.ExportStarAlias); + ptrType$45 = $ptrType(js_ast.SExpr); + ptrType$46 = $ptrType(js_ast.BIdentifier); + ptrType$47 = $ptrType(sourcemap.SourceMap); sliceType$43 = $sliceType(sourcemap.LineOffsetTable); sliceType$44 = $sliceType(js_ast.Part); sliceType$45 = $sliceType(sliceType$7); + ptrType$48 = $ptrType(compileResultJS); arrayType$2 = $arrayType($Uint32, 4); - ptrType$43 = $ptrType(ast.SlotCounts); + ptrType$49 = $ptrType(ast.SlotCounts); sliceType$46 = $sliceType(renamer.StableSymbolCountArray); - ptrType$44 = $ptrType(renamer.StableSymbolCountArray); + ptrType$50 = $ptrType(renamer.StableSymbolCountArray); sliceType$47 = $sliceType(renamer.StableSymbolCount); sliceType$48 = $sliceType(compileResultJS); - ptrType$45 = $ptrType(logger.Source); + ptrType$51 = $ptrType(logger.Source); sliceType$49 = $sliceType(compileResultForSourceMap); sliceType$50 = $sliceType(legalCommentEntry); sliceType$51 = $sliceType(intermediateOutput); @@ -313899,29 +316671,28 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { sliceType$55 = $sliceType(css_parser.callEntry); sliceType$56 = $sliceType(css_ast.Rule); sliceType$57 = $sliceType(ast.LocRef); - ptrType$46 = $ptrType(css_ast.RAtCharset); - ptrType$47 = $ptrType(css_ast.RAtLayer); + ptrType$52 = $ptrType(css_ast.RAtCharset); + ptrType$53 = $ptrType(css_ast.RAtLayer); + ptrType$54 = $ptrType(compileResultCSS); sliceType$58 = $sliceType(thirdPartyEntry); + ptrType$55 = $ptrType(thirdPartyEntry); arrayType$3 = $arrayType($Uint8, 4); sliceType$59 = $sliceType(item); - ptrType$48 = $ptrType(strings.Builder); + ptrType$56 = $ptrType(strings.Builder); mapType = $mapType($String, $emptyInterface); mapType$1 = $mapType($String, $Bool); funcType = $funcType([$String], [$String], false); mapType$2 = $mapType($Uint32, crossChunkImportItemArray); mapType$3 = $mapType(ast.Ref, $Bool); - ptrType$49 = $ptrType(logger.Msg); + ptrType$57 = $ptrType(logger.Msg); mapType$4 = $mapType($Uint32, $Bool); mapType$5 = $mapType($String, graph.ExportData); - ptrType$50 = $ptrType(ast.ImportRecord); - ptrType$51 = $ptrType(chunkInfo); - ptrType$52 = $ptrType(stmtList); - ptrType$53 = $ptrType(sync.WaitGroup); - ptrType$54 = $ptrType(compileResultJS); + ptrType$58 = $ptrType(stmtList); + ptrType$59 = $ptrType(sync.WaitGroup); sliceType$60 = $sliceType(bundler.DataForSourceMap); - ptrType$55 = $ptrType(helpers.Joiner); + ptrType$60 = $ptrType(helpers.Joiner); chanType = $chanType(sliceType$7, false, false); - ptrType$56 = $ptrType(linkerContext); + ptrType$61 = $ptrType(linkerContext); funcType$1 = $funcType([], [sliceType$60], false); mapType$6 = $mapType(ast.Ref, $String); funcType$2 = $funcType([], [sliceType$7], false); @@ -314422,8 +317193,8 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 7; continue; } finalString = [finalString]; chunkIndex$1 = _i$1; - chunk = (x$1 = c[0].chunks, ((chunkIndex$1 < 0 || chunkIndex$1 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + chunkIndex$1])); - hashSubstitution = ptrType$10.nil; + chunk = (x$1 = c[0].chunks, ((chunkIndex$1 < 0 || chunkIndex$1 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + chunkIndex$1, ptrType$10))); + hashSubstitution = ptrType$11.nil; /* */ if (config.HasPlaceholder(chunk.finalTemplate, 3)) { $s = 8; continue; } /* */ $s = 9; continue; /* if (config.HasPlaceholder(chunk.finalTemplate, 3)) { */ case 8: @@ -314431,9 +317202,9 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { $r = c[0].appendIsolatedHashesForImportedChunks(hash$1, ((chunkIndex$1 >>> 0)), visited, ~((chunkIndex$1 >>> 0)) >>> 0); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } finalBytes = hash$1.Sum($subslice(finalBytes, 0, 0)); finalString[0] = bundler.HashForFileName(finalBytes); - hashSubstitution = (finalString.$ptr || (finalString.$ptr = new ptrType$10(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, finalString))); + hashSubstitution = (finalString.$ptr || (finalString.$ptr = new ptrType$11(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, finalString))); /* } */ case 9: - chunk.finalRelPath = config.TemplateToString(config.SubstituteTemplate(chunk.finalTemplate, $clone(new config.PathPlaceholders.ptr(ptrType$10.nil, ptrType$10.nil, hashSubstitution, ptrType$10.nil), config.PathPlaceholders))); + chunk.finalRelPath = config.TemplateToString(config.SubstituteTemplate(chunk.finalTemplate, $clone(new config.PathPlaceholders.ptr(ptrType$11.nil, ptrType$11.nil, hashSubstitution, ptrType$11.nil), config.PathPlaceholders))); _i$1++; $s = 6; continue; case 7: @@ -314526,7 +317297,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { _r$5 = c[0].pathBetweenChunks(finalRelDir[0], finalRelPathForSourceMap); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } importPath$1 = _r$5; importPath$1 = strings.TrimPrefix(importPath$1, "./"); - importURL = new url.URL.ptr("", "", ptrType$11.nil, "", importPath$1, "", false, false, "", "", ""); + importURL = new url.URL.ptr("", "", ptrType$12.nil, "", importPath$1, "", false, false, "", "", ""); outputContentsJoiner.EnsureNewlineAtEnd(); outputContentsJoiner.AddString(commentPrefix); outputContentsJoiner.AddString("# sourceMappingURL="); @@ -314771,7 +317542,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { chunk = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), chunkInfo); $go((function(c, chunkMetas, waitGroup) { return function linkerContext·computeCrossChunkDependencies·func1(chunkIndex$1, chunk$1) { var _entry, _entry$1, _entry$2, _entry$3, _entry$4, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _key, _key$1, _key$2, _key$3, _key$4, _key$5, _key$6, _keys, _keys$1, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _size, _size$1, _tuple, _tuple$1, _tuple$2, alias, chunk$1, chunkIndex$1, chunkMeta$1, declared, export$1, importData, importData$1, importRecordIndex, imports, ok, ok$1, ok$2, otherChunkIndex, part, partIndex, partMeta, record, ref, repr, repr$1, sourceIndex, symbol, symbol$1, targetRef, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; - chunkMeta$1 = ((chunkIndex$1 < 0 || chunkIndex$1 >= chunkMetas[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : chunkMetas[0].$array[chunkMetas[0].$offset + chunkIndex$1]); + chunkMeta$1 = ((chunkIndex$1 < 0 || chunkIndex$1 >= chunkMetas[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(chunkMetas[0].$array, chunkMetas[0].$offset + chunkIndex$1, ptrType$13)); imports = new $global.Map(); chunkMeta$1.imports = imports; chunkMeta$1.exports = new $global.Map(); @@ -314801,13 +317572,13 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { _i$2++; continue; } - part = (x$1 = repr.AST.Parts, ((partIndex < 0 || partIndex >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + partIndex])); + part = (x$1 = repr.AST.Parts, ((partIndex < 0 || partIndex >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + partIndex, ptrType$14))); _ref$4 = part.ImportRecordIndices; _i$3 = 0; while (true) { if (!(_i$3 < _ref$4.$length)) { break; } importRecordIndex = ((_i$3 < 0 || _i$3 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$3]); - record = (x$2 = repr.AST.ImportRecords, ((importRecordIndex < 0 || importRecordIndex >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + importRecordIndex])); + record = (x$2 = repr.AST.ImportRecords, ((importRecordIndex < 0 || importRecordIndex >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$2.$array, x$2.$offset + importRecordIndex, ptrType$15))); if ($clone(record.SourceIndex, ast.Index32).IsValid() && c[0].isExternalDynamicImport(record, sourceIndex)) { otherChunkIndex = (x$3 = c[0].graph.Files, x$4 = $clone(record.SourceIndex, ast.Index32).GetIndex(), ((x$4 < 0 || x$4 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + x$4])).EntryPointChunkIndex; record.Path.Text = (x$5 = c[0].chunks, ((otherChunkIndex < 0 || otherChunkIndex >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + otherChunkIndex])).uniqueKey; @@ -314864,7 +317635,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { _i$5++; continue; } - if (!(symbol.NamespaceAlias === ptrType$12.nil)) { + if (!(symbol.NamespaceAlias === ptrType$16.nil)) { ast.Ref.copy(ref, symbol.NamespaceAlias.NamespaceRef); } _key$3 = $clone(ref, ast.Ref); (imports || $throwRuntimeError("assignment to entry in nil map")).set(ast.Ref.keyFor(_key$3), { k: _key$3, v: true }); @@ -314895,7 +317666,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { ast.Ref.copy(targetRef, importData$1.Ref); } symbol$1 = $clone(c[0].graph.Symbols, ast.SymbolMap).Get($clone(targetRef, ast.Ref)); - if (!(symbol$1.NamespaceAlias === ptrType$12.nil)) { + if (!(symbol$1.NamespaceAlias === ptrType$16.nil)) { ast.Ref.copy(targetRef, symbol$1.NamespaceAlias.NamespaceRef); } _key$4 = $clone(targetRef, ast.Ref); (imports || $throwRuntimeError("assignment to entry in nil map")).set(ast.Ref.keyFor(_key$4), { k: _key$4, v: true }); @@ -314921,7 +317692,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { /* while (true) { */ case 8: /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 9; continue; } chunkIndex$1 = _i$1; - chunk$1 = (x = c[0].chunks, ((chunkIndex$1 < 0 || chunkIndex$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + chunkIndex$1])); + chunk$1 = (x = c[0].chunks, ((chunkIndex$1 < 0 || chunkIndex$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + chunkIndex$1, ptrType$10))); _tuple = $assertType(chunk$1.chunkRepr, ptrType$8, true); chunkRepr$1 = _tuple[0]; ok = _tuple[1]; @@ -315008,7 +317779,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { /* while (true) { */ case 13: /* if (!(_i$6 < _ref$6.$length)) { break; } */ if(!(_i$6 < _ref$6.$length)) { $s = 14; continue; } chunkIndex$4 = _i$6; - chunk$2 = (x$1 = c[0].chunks, ((chunkIndex$4 < 0 || chunkIndex$4 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + chunkIndex$4])); + chunk$2 = (x$1 = c[0].chunks, ((chunkIndex$4 < 0 || chunkIndex$4 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + chunkIndex$4, ptrType$10))); _tuple$2 = $assertType(chunk$2.chunkRepr, ptrType$8, true); chunkRepr$2 = _tuple$2[0]; ok$2 = _tuple$2[1]; @@ -315056,7 +317827,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { /* while (true) { */ case 22: /* if (!(_i$8 < _ref$8.$length)) { break; } */ if(!(_i$8 < _ref$8.$length)) { $s = 23; continue; } chunkIndex$5 = _i$8; - chunk$3 = (x$2 = c[0].chunks, ((chunkIndex$5 < 0 || chunkIndex$5 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + chunkIndex$5])); + chunk$3 = (x$2 = c[0].chunks, ((chunkIndex$5 < 0 || chunkIndex$5 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$2.$array, x$2.$offset + chunkIndex$5, ptrType$10))); _tuple$3 = $assertType(chunk$3.chunkRepr, ptrType$8, true); chunkRepr$3 = _tuple$3[0]; ok$3 = _tuple$3[1]; @@ -315086,9 +317857,9 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { importRecordIndex = ((chunk$3.crossChunkImports.$length >>> 0)); chunk$3.crossChunkImports = $append(chunk$3.crossChunkImports, new chunkImport.ptr(crossChunkImport$1.chunkIndex, 1)); if (items$1[0].$length > 0) { - crossChunkPrefixStmts = $append(crossChunkPrefixStmts, new js_ast.Stmt.ptr(new js_ast.SImport.ptr(ptrType$13.nil, (items$1.$ptr || (items$1.$ptr = new ptrType$14(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, items$1))), ptrType$15.nil, new ast.Ref.ptr(0, 0), importRecordIndex, false), new logger.Loc.ptr(0))); + crossChunkPrefixStmts = $append(crossChunkPrefixStmts, new js_ast.Stmt.ptr(new js_ast.SImport.ptr(ptrType$17.nil, (items$1.$ptr || (items$1.$ptr = new ptrType$18(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, items$1))), ptrType$19.nil, new ast.Ref.ptr(0, 0), importRecordIndex, false), new logger.Loc.ptr(0))); } else { - crossChunkPrefixStmts = $append(crossChunkPrefixStmts, new js_ast.Stmt.ptr(new js_ast.SImport.ptr(ptrType$13.nil, ptrType$14.nil, ptrType$15.nil, new ast.Ref.ptr(0, 0), importRecordIndex, false), new logger.Loc.ptr(0))); + crossChunkPrefixStmts = $append(crossChunkPrefixStmts, new js_ast.Stmt.ptr(new js_ast.SImport.ptr(ptrType$17.nil, ptrType$18.nil, ptrType$19.nil, new ast.Ref.ptr(0, 0), importRecordIndex, false), new logger.Loc.ptr(0))); } } else { $panic(new $String("Internal error")); @@ -315143,7 +317914,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { } otherChunkIndex = _entry.k; importItems = _entry.v; - otherChunk = (x = c.chunks, ((otherChunkIndex < 0 || otherChunkIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + otherChunkIndex])); + otherChunk = (x = c.chunks, ((otherChunkIndex < 0 || otherChunkIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + otherChunkIndex, ptrType$10))); exportsToOtherChunks = $assertType(otherChunk.chunkRepr, ptrType$8).exportsToOtherChunks; _ref$1 = importItems; _i$1 = 0; @@ -315248,7 +318019,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { /* while (true) { */ case 3: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } sourceIndex = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - file = (x = c[0].graph.Files, ((sourceIndex < 0 || sourceIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + sourceIndex])); + file = (x = c[0].graph.Files, ((sourceIndex < 0 || sourceIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + sourceIndex, ptrType$20))); additionalFiles = file.InputFile.AdditionalFiles; _ref$1 = file.InputFile.Repr; /* */ if ($assertType(_ref$1, ptrType$6, true)[1]) { $s = 5; continue; } @@ -315261,9 +318032,9 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { while (true) { if (!(_i$1 < _ref$2.$length)) { break; } importRecordIndex = _i$1; - record = (x$1 = repr.AST.ImportRecords, ((importRecordIndex < 0 || importRecordIndex >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + importRecordIndex])); + record = (x$1 = repr.AST.ImportRecords, ((importRecordIndex < 0 || importRecordIndex >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + importRecordIndex, ptrType$15))); if ($clone(record.SourceIndex, ast.Index32).IsValid()) { - otherFile = (x$2 = c[0].graph.Files, x$3 = $clone(record.SourceIndex, ast.Index32).GetIndex(), ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])); + otherFile = (x$2 = c[0].graph.Files, x$3 = $clone(record.SourceIndex, ast.Index32).GetIndex(), ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$2.$array, x$2.$offset + x$3, ptrType$20))); _tuple = $assertType(otherFile.InputFile.Repr, ptrType$3, true); otherRepr = _tuple[0]; ok = _tuple[1]; @@ -315282,7 +318053,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { additionalFiles = $appendSlice(additionalFiles, otherFile.InputFile.AdditionalFiles); } } else if ($clone(record.CopySourceIndex, ast.Index32).IsValid()) { - otherFile$1 = (x$4 = c[0].graph.Files, x$5 = $clone(record.CopySourceIndex, ast.Index32).GetIndex(), ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])); + otherFile$1 = (x$4 = c[0].graph.Files, x$5 = $clone(record.CopySourceIndex, ast.Index32).GetIndex(), ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$4.$array, x$4.$offset + x$5, ptrType$20))); _tuple$1 = $assertType(otherFile$1.InputFile.Repr, ptrType$4, true); otherRepr$1 = _tuple$1[0]; ok$1 = _tuple$1[1]; @@ -315318,7 +318089,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { /* */ if ($clone(record$1.SourceIndex, ast.Index32).IsValid()) { $s = 12; continue; } /* */ $s = 13; continue; /* if ($clone(record$1.SourceIndex, ast.Index32).IsValid()) { */ case 12: - otherFile$2 = (x$8 = c[0].graph.Files, x$9 = $clone(record$1.SourceIndex, ast.Index32).GetIndex(), ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + x$9])); + otherFile$2 = (x$8 = c[0].graph.Files, x$9 = $clone(record$1.SourceIndex, ast.Index32).GetIndex(), ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$8.$array, x$8.$offset + x$9, ptrType$20))); _tuple$2 = $assertType(otherFile$2.InputFile.Repr, ptrType$6, true); otherRepr$2 = _tuple$2[0]; ok$2 = _tuple$2[1]; @@ -315355,7 +318126,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { _r$3 = fmt.Sprintf("The global name %q is defined here:", new sliceType$9([new $String(name.Alias)])); /* */ $s = 27; case 27: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _arg$4 = _r$3; _r$4 = otherFile$2.LineColumnTracker().MsgData(_arg$3, _arg$4); /* */ $s = 28; case 28: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _arg$5 = new sliceType$22([$clone(_r$4, logger.MsgData), $clone(new logger.MsgData.ptr($ifaceNil, ptrType$16.nil, hint, false), logger.MsgData)]); + _arg$5 = new sliceType$22([$clone(_r$4, logger.MsgData), $clone(new logger.MsgData.ptr($ifaceNil, ptrType$21.nil, hint, false), logger.MsgData)]); $r = $clone(c[0].log, logger.Log).AddErrorWithNotes(_arg, _arg$1, _arg$2, _arg$5); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 20; continue; /* } else { */ case 19: @@ -315383,10 +318154,10 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { while (true) { if (!(_i$4 < _ref$5.$length)) { break; } importRecordIndex$1 = _i$4; - record$2 = (x$10 = repr$1.AST.ImportRecords, ((importRecordIndex$1 < 0 || importRecordIndex$1 >= x$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + importRecordIndex$1])); + record$2 = (x$10 = repr$1.AST.ImportRecords, ((importRecordIndex$1 < 0 || importRecordIndex$1 >= x$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$10.$array, x$10.$offset + importRecordIndex$1, ptrType$15))); if (!$clone(record$2.SourceIndex, ast.Index32).IsValid()) { if ($clone(record$2.CopySourceIndex, ast.Index32).IsValid()) { - otherFile$3 = (x$11 = c[0].graph.Files, x$12 = $clone(record$2.CopySourceIndex, ast.Index32).GetIndex(), ((x$12 < 0 || x$12 >= x$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + x$12])); + otherFile$3 = (x$11 = c[0].graph.Files, x$12 = $clone(record$2.CopySourceIndex, ast.Index32).GetIndex(), ((x$12 < 0 || x$12 >= x$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$11.$array, x$11.$offset + x$12, ptrType$20))); _tuple$5 = $assertType(otherFile$3.InputFile.Repr, ptrType$4, true); otherRepr$3 = _tuple$5[0]; ok$5 = _tuple$5[1]; @@ -315401,7 +318172,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { _i$4++; continue; } - otherFile$4 = (x$13 = c[0].graph.Files, x$14 = $clone(record$2.SourceIndex, ast.Index32).GetIndex(), ((x$14 < 0 || x$14 >= x$13.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + x$14])); + otherFile$4 = (x$13 = c[0].graph.Files, x$14 = $clone(record$2.SourceIndex, ast.Index32).GetIndex(), ((x$14 < 0 || x$14 >= x$13.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$13.$array, x$13.$offset + x$14, ptrType$20))); otherRepr$4 = $assertType(otherFile$4.InputFile.Repr, ptrType$3); _1 = record$2.Kind; if (_1 === (1)) { @@ -315506,7 +318277,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { /* while (true) { */ case 44: /* if (!(_i$8 < _ref$9.$length)) { break; } */ if(!(_i$8 < _ref$9.$length)) { $s = 45; continue; } sourceIndex$3 = ((_i$8 < 0 || _i$8 >= _ref$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$9.$array[_ref$9.$offset + _i$8]); - file$1 = (x$19 = c[0].graph.Files, ((sourceIndex$3 < 0 || sourceIndex$3 >= x$19.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$19.$array[x$19.$offset + sourceIndex$3])); + file$1 = (x$19 = c[0].graph.Files, ((sourceIndex$3 < 0 || sourceIndex$3 >= x$19.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$19.$array, x$19.$offset + sourceIndex$3, ptrType$20))); _tuple$8 = $assertType(file$1.InputFile.Repr, ptrType$3, true); repr$4 = _tuple$8[0]; ok$8 = _tuple$8[1]; @@ -315626,9 +318397,9 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { _i$10++; /* continue; */ $s = 1; continue; } - /* */ if ((c[0].options.OutputFormat === 3) && c[0].options.UnsupportedJSFeatures.Has(new compat.JSFeature(0, 1)) && (x$26 = c[0].graph.Files, ((sourceIndex$5 < 0 || sourceIndex$5 >= x$26.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$26.$array[x$26.$offset + sourceIndex$5])).IsEntryPoint()) { $s = 15; continue; } + /* */ if ((c[0].options.OutputFormat === 3) && c[0].options.UnsupportedJSFeatures.Has(new compat.JSFeature(0, 1)) && (x$26 = c[0].graph.Files, ((sourceIndex$5 < 0 || sourceIndex$5 >= x$26.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$26.$array, x$26.$offset + sourceIndex$5, ptrType$20))).IsEntryPoint()) { $s = 15; continue; } /* */ $s = 16; continue; - /* if ((c[0].options.OutputFormat === 3) && c[0].options.UnsupportedJSFeatures.Has(new compat.JSFeature(0, 1)) && (x$26 = c[0].graph.Files, ((sourceIndex$5 < 0 || sourceIndex$5 >= x$26.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$26.$array[x$26.$offset + sourceIndex$5])).IsEntryPoint()) { */ case 15: + /* if ((c[0].options.OutputFormat === 3) && c[0].options.UnsupportedJSFeatures.Has(new compat.JSFeature(0, 1)) && (x$26 = c[0].graph.Files, ((sourceIndex$5 < 0 || sourceIndex$5 >= x$26.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$26.$array, x$26.$offset + sourceIndex$5, ptrType$20))).IsEntryPoint()) { */ case 15: $r = c[0].maybeForbidArbitraryModuleNamespaceIdentifier("export", export$1.SourceIndex, $clone(export$1.NameLoc, logger.Loc), alias); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 16: aliases = $append(aliases, alias); @@ -315647,7 +318418,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { while (true) { if (!(_i$12 < _ref$13.$length)) { break; } partIndex = _i$12; - part = ((partIndex < 0 || partIndex >= parts.$length) ? ($throwRuntimeError("index out of range"), undefined) : parts.$array[parts.$offset + partIndex]); + part = ((partIndex < 0 || partIndex >= parts.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(parts.$array, parts.$offset + partIndex, ptrType$14)); _ref$14 = part.ImportSymbolPropertyUses; _i$13 = 0; _keys$2 = _ref$14 ? _ref$14.keys() : undefined; @@ -315829,7 +318600,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { while (true) { if (!(_i$10 < _ref$11.$length)) { break; } sourceIndex$5 = ((_i$10 < 0 || _i$10 >= _ref$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$11.$array[_ref$11.$offset + _i$10]); - file$2 = (x$21 = c[0].graph.Files, ((sourceIndex$5 < 0 || sourceIndex$5 >= x$21.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$21.$array[x$21.$offset + sourceIndex$5])); + file$2 = (x$21 = c[0].graph.Files, ((sourceIndex$5 < 0 || sourceIndex$5 >= x$21.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$21.$array, x$21.$offset + sourceIndex$5, ptrType$20))); _tuple$10 = $assertType(file$2.InputFile.Repr, ptrType$3, true); repr$6 = _tuple$10[0]; ok$10 = _tuple$10[1]; @@ -315884,7 +318655,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { while (true) { if (!(_i$13 < _ref$14.$length)) { break; } partIndex = ((_i$13 < 0 || _i$13 >= _ref$14.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$14.$array[_ref$14.$offset + _i$13]); - part = (x$25 = repr$6.AST.Parts, ((partIndex < 0 || partIndex >= x$25.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$25.$array[x$25.$offset + partIndex])); + part = (x$25 = repr$6.AST.Parts, ((partIndex < 0 || partIndex >= x$25.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$25.$array, x$25.$offset + partIndex, ptrType$14))); _ref$15 = partsDeclaringSymbol; _i$14 = 0; while (true) { @@ -315955,7 +318726,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { while (true) { if (!(_i$18 < _ref$19.$length)) { break; } importRecordIndex$2 = ((_i$18 < 0 || _i$18 >= _ref$19.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$19.$array[_ref$19.$offset + _i$18]); - record$4 = (x$28 = repr$6.AST.ImportRecords, ((importRecordIndex$2 < 0 || importRecordIndex$2 >= x$28.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$28.$array[x$28.$offset + importRecordIndex$2])); + record$4 = (x$28 = repr$6.AST.ImportRecords, ((importRecordIndex$2 < 0 || importRecordIndex$2 >= x$28.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$28.$array, x$28.$offset + importRecordIndex$2, ptrType$15))); if (!$clone(record$4.SourceIndex, ast.Index32).IsValid() || c[0].isExternalDynamicImport(record$4, sourceIndex$5)) { if ((record$4.Kind === 2) || !new config.Format(c[0].options.OutputFormat).KeepESMImportExportSyntax() || ((record$4.Kind === 3) && c[0].options.UnsupportedJSFeatures.Has(new compat.JSFeature(0, 2097152)))) { if (config.ShouldCallRuntimeRequire(c[0].options.Mode, c[0].options.OutputFormat)) { @@ -316000,7 +318771,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { while (true) { if (!(_i$19 < _ref$20.$length)) { break; } importRecordIndex$3 = ((_i$19 < 0 || _i$19 >= _ref$20.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$20.$array[_ref$20.$offset + _i$19]); - record$5 = (x$30 = repr$6.AST.ImportRecords, ((importRecordIndex$3 < 0 || importRecordIndex$3 >= x$30.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$30.$array[x$30.$offset + importRecordIndex$3])); + record$5 = (x$30 = repr$6.AST.ImportRecords, ((importRecordIndex$3 < 0 || importRecordIndex$3 >= x$30.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$30.$array, x$30.$offset + importRecordIndex$3, ptrType$15))); happensAtRunTime = !$clone(record$5.SourceIndex, ast.Index32).IsValid() && (!file$2.IsEntryPoint() || !new config.Format(c[0].options.OutputFormat).KeepESMImportExportSyntax()); if ($clone(record$5.SourceIndex, ast.Index32).IsValid()) { otherSourceIndex$1 = $clone(record$5.SourceIndex, ast.Index32).GetIndex(); @@ -316054,7 +318825,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { $s = -1; return; } _key = $clone(ref, ast.Ref); (visited[0] || $throwRuntimeError("assignment to entry in nil map")).set(ast.Ref.keyFor(_key), { k: _key, v: true }); - _tuple = (_entry$1 = $mapIndex(repr.AST.Composes,ast.Ref.keyFor(ref)), _entry$1 !== undefined ? [_entry$1.v, true] : [ptrType$18.nil, false]); + _tuple = (_entry$1 = $mapIndex(repr.AST.Composes,ast.Ref.keyFor(ref)), _entry$1 !== undefined ? [_entry$1.v, true] : [ptrType$23.nil, false]); composes = _tuple[0]; ok = _tuple[1]; if (!ok) { @@ -316069,7 +318840,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { /* */ if ($clone(record.SourceIndex, ast.Index32).IsValid()) { $s = 3; continue; } /* */ $s = 4; continue; /* if ($clone(record.SourceIndex, ast.Index32).IsValid()) { */ case 3: - otherFile = (x$2 = c[0].graph.Files, x$3 = $clone(record.SourceIndex, ast.Index32).GetIndex(), ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])); + otherFile = (x$2 = c[0].graph.Files, x$3 = $clone(record.SourceIndex, ast.Index32).GetIndex(), ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$2.$array, x$2.$offset + x$3, ptrType$20))); _tuple$1 = $assertType(otherFile.InputFile.Repr, ptrType$6, true); otherRepr = _tuple$1[0]; ok$1 = _tuple$1[1]; @@ -316112,7 +318883,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { } keyText = _entry$3.k; keyLoc = $clone(_entry$3.v, logger.Loc); - _tuple$3 = (_entry$4 = $mapIndex(properties[0],$String.keyFor(keyText)), _entry$4 !== undefined ? [_entry$4.v, true] : [new propertyInFile.ptr(ptrType$19.nil, new logger.Loc.ptr(0)), false]); + _tuple$3 = (_entry$4 = $mapIndex(properties[0],$String.keyFor(keyText)), _entry$4 !== undefined ? [_entry$4.v, true] : [new propertyInFile.ptr(ptrType$20.nil, new logger.Loc.ptr(0)), false]); property = $clone(_tuple$3[0], propertyInFile); ok$3 = _tuple$3[1]; if (!ok$3) { @@ -316120,7 +318891,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { _i$3++; /* continue; */ $s = 13; continue; } - if (property.file === file || property.file === ptrType$19.nil) { + if (property.file === file || property.file === ptrType$20.nil) { _i$3++; /* continue; */ $s = 13; continue; } @@ -316138,9 +318909,9 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { _arg$5 = _r$4; _r$5 = file.LineColumnTracker().MsgData(_arg$4, _arg$5); /* */ $s = 20; case 20: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _r$6 = fmt.Sprintf("The specification of \"composes\" does not define an order when class declarations from separate files are composed together. The value of the %q property for %q may change unpredictably as the code is edited. Make sure that all definitions of %q for %q are in a single file.", new sliceType$9([new $String(keyText), new $String(localOriginalName), new $String(keyText), new $String(localOriginalName)])); /* */ $s = 21; case 21: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _arg$6 = $clone(new logger.Msg.ptr(new sliceType$22([$clone(_r$3, logger.MsgData), $clone(_r$5, logger.MsgData), $clone(new logger.MsgData.ptr($ifaceNil, ptrType$16.nil, _r$6, false), logger.MsgData)]), "", $clone(_r$1, logger.MsgData), 1, 0), logger.Msg); + _arg$6 = $clone(new logger.Msg.ptr(new sliceType$22([$clone(_r$3, logger.MsgData), $clone(_r$5, logger.MsgData), $clone(new logger.MsgData.ptr($ifaceNil, ptrType$21.nil, _r$6, false), logger.MsgData)]), "", $clone(_r$1, logger.MsgData), 1, 0), logger.Msg); $r = $clone(c[0].log, logger.Log).AddMsgID(39, _arg$6); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - property.file = ptrType$19.nil; + property.file = ptrType$20.nil; _key$3 = keyText; (properties[0] || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$3), { k: _key$3, v: $clone(property, propertyInFile) }); _i$3++; $s = 13; continue; @@ -316163,16 +318934,16 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { repr = [repr]; sourceIndex = [sourceIndex]; c[0] = this; - file = (x = c[0].graph.Files, ((sourceIndex[0] < 0 || sourceIndex[0] >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + sourceIndex[0]])); + file = (x = c[0].graph.Files, ((sourceIndex[0] < 0 || sourceIndex[0] >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + sourceIndex[0], ptrType$20))); repr[0] = $assertType(file.InputFile.Repr, ptrType$3); if (repr[0].AST.Parts.$length < 1) { $panic(new $String("Internal error")); } - part = (x$1 = repr[0].AST.Parts, x$2 = repr[0].AST.Parts.$length - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])); + part = (x$1 = repr[0].AST.Parts, x$2 = repr[0].AST.Parts.$length - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + x$2, ptrType$14))); if (!((part.Stmts.$length === 1))) { $panic(new $String("Internal error")); } - lazyValue = $clone($assertType((x$3 = part.Stmts, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])).Data, ptrType$20).Value, js_ast.Expr); + lazyValue = $clone($assertType((x$3 = part.Stmts, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])).Data, ptrType$24).Value, js_ast.Expr); /* */ if ($clone(repr[0].CSSSourceIndex, ast.Index32).IsValid()) { $s = 1; continue; } /* */ $s = 2; continue; /* if ($clone(repr[0].CSSSourceIndex, ast.Index32).IsValid()) { */ case 1: @@ -316214,7 +318985,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { visitComposes[0] = (function(c, exports, parts, repr, sourceIndex, visitComposes, visitName, visited) { return function linkerContext·generateCodeForLazyExport·func2(repr$1, ref) { var {_entry, _entry$1, _i$1, _i$2, _ref$1, _ref$2, _tuple$1, _tuple$2, _tuple$3, composes, name, name$1, ok$1, ok$2, ok$3, otherFile, otherName, otherRepr, record, ref, repr$1, x$5, x$6, x$7, x$8, $s, $r, $c} = $restore(this, {repr$1, ref}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _tuple$1 = (_entry = $mapIndex(repr$1.AST.Composes,ast.Ref.keyFor(ref)), _entry !== undefined ? [_entry.v, true] : [ptrType$18.nil, false]); + _tuple$1 = (_entry = $mapIndex(repr$1.AST.Composes,ast.Ref.keyFor(ref)), _entry !== undefined ? [_entry.v, true] : [ptrType$23.nil, false]); composes = _tuple$1[0]; ok$1 = _tuple$1[1]; /* */ if (ok$1) { $s = 1; continue; } @@ -316229,7 +319000,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { /* */ if ($clone(record.SourceIndex, ast.Index32).IsValid()) { $s = 5; continue; } /* */ $s = 6; continue; /* if ($clone(record.SourceIndex, ast.Index32).IsValid()) { */ case 5: - otherFile = (x$7 = c[0].graph.Files, x$8 = $clone(record.SourceIndex, ast.Index32).GetIndex(), ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8])); + otherFile = (x$7 = c[0].graph.Files, x$8 = $clone(record.SourceIndex, ast.Index32).GetIndex(), ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$7.$array, x$7.$offset + x$8, ptrType$20))); _tuple$2 = $assertType(otherFile.InputFile.Repr, ptrType$6, true); otherRepr = _tuple$2[0]; ok$2 = _tuple$2[1]; @@ -316266,7 +319037,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { if (parts[0].$length > 0) { value.Data = new js_ast.ETemplate.ptr(new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), "", sliceType$23.nil, $append(parts[0], new js_ast.TemplatePart.ptr($clone(value, js_ast.Expr), "", sliceType$23.nil, new logger.Loc.ptr(0))), new logger.Loc.ptr(0), new logger.Loc.ptr(0), false, false); } - exports[0].Properties = $append(exports[0].Properties, new js_ast.Property.ptr(ptrType$21.nil, $clone(new js_ast.Expr.ptr(new js_ast.EString.ptr(helpers.StringToUTF16($clone(c[0].graph.Symbols, ast.SymbolMap).Get($clone(local.Ref, ast.Ref)).OriginalName), new logger.Loc.ptr(0), false, false, false), $clone(local.Loc, logger.Loc)), js_ast.Expr), $clone(value, js_ast.Expr), new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), sliceType$29.nil, new logger.Loc.ptr(0), new logger.Loc.ptr(0), 0, 0)); + exports[0].Properties = $append(exports[0].Properties, new js_ast.Property.ptr(ptrType$25.nil, $clone(new js_ast.Expr.ptr(new js_ast.EString.ptr(helpers.StringToUTF16($clone(c[0].graph.Symbols, ast.SymbolMap).Get($clone(local.Ref, ast.Ref)).OriginalName), new logger.Loc.ptr(0), false, false, false), $clone(local.Loc, logger.Loc)), js_ast.Expr), $clone(value, js_ast.Expr), new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), sliceType$29.nil, new logger.Loc.ptr(0), new logger.Loc.ptr(0), 0, 0)); _i++; $s = 5; continue; case 6: @@ -316288,7 +319059,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { _key$1 = alias; (repr[0].Meta.ResolvedExports || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$1), { k: _key$1, v: $clone(new graph.ExportData.ptr(sliceType$18.nil, $clone(ref, ast.Ref), $clone(loc, logger.Loc), sourceIndex[0]), graph.ExportData) }); return [ref, partIndex]; }; })(c, exports, repr, sourceIndex); - _tuple$1 = $assertType(lazyValue.Data, ptrType$22, true); + _tuple$1 = $assertType(lazyValue.Data, ptrType$26, true); object = _tuple$1[0]; ok$1 = _tuple$1[1]; /* */ if (ok$1 && !((file.InputFile.Loader === 12))) { $s = 8; continue; } @@ -316299,7 +319070,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { /* while (true) { */ case 10: /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 11; continue; } property = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), js_ast.Property); - _tuple$2 = $assertType(property.Key.Data, ptrType$23, true); + _tuple$2 = $assertType(property.Key.Data, ptrType$27, true); str = _tuple$2[0]; ok$2 = _tuple$2[1]; /* */ if (ok$2 && (!file.IsEntryPoint() || js_ast.IsIdentifierUTF16(str.Value) || !c[0].options.UnsupportedJSFeatures.Has(new compat.JSFeature(0, 1)))) { $s = 12; continue; } @@ -316331,7 +319102,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { $ptrType(linkerContext).prototype.createExportsForFile = function createExportsForFile(sourceIndex) { var _entry, _entry$1, _entry$2, _entry$3, _i, _i$1, _i$2, _key, _ref, _ref$1, _ref$2, _tuple, alias, body, c, declaredSymbols, export$1, exportRef, file, flags, getter, importData, nsExportDependencies, nsExportStmts, nsExportSymbolUses, ok, partIndex, partIndex$1, properties, repr, runtimeRepr, runtimeRepr$1, sourceIndex, toCommonJSRef, value, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7; c = this; - file = (x = c.graph.Files, ((sourceIndex < 0 || sourceIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + sourceIndex])); + file = (x = c.graph.Files, ((sourceIndex < 0 || sourceIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + sourceIndex, ptrType$20))); repr = $assertType(file.InputFile.Repr, ptrType$3); properties = new sliceType$27([]); nsExportDependencies = new sliceType$17([]); @@ -316351,7 +319122,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { nsExportDependencies = $appendSlice(nsExportDependencies, importData.ReExports); } value = new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)); - if (!($clone(c.graph.Symbols, ast.SymbolMap).Get($clone(export$1.Ref, ast.Ref)).NamespaceAlias === ptrType$12.nil)) { + if (!($clone(c.graph.Symbols, ast.SymbolMap).Get($clone(export$1.Ref, ast.Ref)).NamespaceAlias === ptrType$16.nil)) { js_ast.Expr.copy(value, new js_ast.Expr.ptr(new js_ast.EImportIdentifier.ptr($clone(export$1.Ref, ast.Ref), false, false), new logger.Loc.ptr(0))); } else { js_ast.Expr.copy(value, new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(export$1.Ref, ast.Ref), false, false, false), new logger.Loc.ptr(0))); @@ -316359,7 +319130,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { getter = new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)); body = new js_ast.FnBody.ptr($clone(new js_ast.SBlock.ptr(new sliceType$21([$clone(new js_ast.Stmt.ptr(new js_ast.SReturn.ptr($clone(value, js_ast.Expr)), $clone(value.Loc, logger.Loc)), js_ast.Stmt)]), new logger.Loc.ptr(0)), js_ast.SBlock), new logger.Loc.ptr(0)); if (c.options.UnsupportedJSFeatures.Has(new compat.JSFeature(0, 4))) { - js_ast.Expr.copy(getter, new js_ast.Expr.ptr(new js_ast.EFunction.ptr($clone(new js_ast.Fn.ptr(ptrType$13.nil, sliceType$31.nil, $clone(body, js_ast.FnBody), new ast.Ref.ptr(0, 0), new logger.Loc.ptr(0), false, false, false, false, false, false), js_ast.Fn)), new logger.Loc.ptr(0))); + js_ast.Expr.copy(getter, new js_ast.Expr.ptr(new js_ast.EFunction.ptr($clone(new js_ast.Fn.ptr(ptrType$17.nil, sliceType$31.nil, $clone(body, js_ast.FnBody), new ast.Ref.ptr(0, 0), new logger.Loc.ptr(0), false, false, false, false, false, false), js_ast.Fn)), new logger.Loc.ptr(0))); } else { js_ast.Expr.copy(getter, new js_ast.Expr.ptr(new js_ast.EArrow.ptr(sliceType$31.nil, $clone(body, js_ast.FnBody), false, false, true, false), new logger.Loc.ptr(0))); } @@ -316367,7 +319138,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { if (alias === "__proto__" && !c.options.UnsupportedJSFeatures.Has(new compat.JSFeature(512, 0))) { flags = (flags | (1)) >>> 0; } - properties = $append(properties, new js_ast.Property.ptr(ptrType$21.nil, $clone(new js_ast.Expr.ptr(new js_ast.EString.ptr(helpers.StringToUTF16(alias), new logger.Loc.ptr(0), false, false, false), new logger.Loc.ptr(0)), js_ast.Expr), $clone(getter, js_ast.Expr), new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), sliceType$29.nil, new logger.Loc.ptr(0), new logger.Loc.ptr(0), 0, flags)); + properties = $append(properties, new js_ast.Property.ptr(ptrType$25.nil, $clone(new js_ast.Expr.ptr(new js_ast.EString.ptr(helpers.StringToUTF16(alias), new logger.Loc.ptr(0), false, false, false), new logger.Loc.ptr(0)), js_ast.Expr), $clone(getter, js_ast.Expr), new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), sliceType$29.nil, new logger.Loc.ptr(0), new logger.Loc.ptr(0), 0, flags)); _key = $clone(export$1.Ref, ast.Ref); (nsExportSymbolUses || $throwRuntimeError("assignment to entry in nil map")).set(ast.Ref.keyFor(_key), { k: _key, v: $clone(new js_ast.SymbolUse.ptr(1), js_ast.SymbolUse) }); _ref$1 = $assertType((x$3 = c.graph.Files, x$4 = export$1.SourceIndex, ((x$4 < 0 || x$4 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + x$4])).InputFile.Repr, ptrType$3).TopLevelSymbolToParts($clone(export$1.Ref, ast.Ref)); _i$1 = 0; @@ -316455,7 +319226,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { var {_1, _arg, _arg$1, _arg$2, _entry, _entry$1, _entry$2, _i, _i$1, _key, _key$1, _key$2, _key$3, _keys, _r, _r$1, _r$2, _r$3, _ref, _ref$1, _size, _tuple, a, b, c, file, importRef, innerIndex, msg, msg$1, namedImport, namedImport$1, notes, r, ra, rb, reExports, ref, repr, result, sortedImportRefs, sourceIndex, symbol, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {sourceIndex}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: c = this; - file = (x = c.graph.Files, ((sourceIndex < 0 || sourceIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + sourceIndex])); + file = (x = c.graph.Files, ((sourceIndex < 0 || sourceIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + sourceIndex, ptrType$20))); repr = $assertType(file.InputFile.Repr, ptrType$3); sortedImportRefs = $makeSlice(sliceType$19, 0, (repr.AST.NamedImports ? repr.AST.NamedImports.size : 0)); _ref = repr.AST.NamedImports; @@ -316589,7 +319360,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { if ((status === 6) && new config.Format(c.options.OutputFormat).KeepESMImportExportSyntax()) { /* break; */ $s = 3; continue; } - trackerFile = (x = c.graph.Files, x$1 = tracker.sourceIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + trackerFile = (x = c.graph.Files, x$1 = tracker.sourceIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + x$1, ptrType$20))); namedImport = $clone((_entry = $mapIndex($assertType(trackerFile.InputFile.Repr, ptrType$3).AST.NamedImports,ast.Ref.keyFor(tracker.importRef)), _entry !== undefined ? _entry.v : new js_ast.NamedImport.ptr("", sliceType$4.nil, new logger.Loc.ptr(0), new ast.Ref.ptr(0, 0), 0, false, false)), js_ast.NamedImport); if (!($equal(namedImport.NamespaceRef, ast.InvalidRef, ast.Ref))) { if (result.kind === 1) { @@ -316618,7 +319389,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { /* } */ case 12: $s = 10; continue; /* } else if (_1 === (3)) { */ case 5: - trackerFile$1 = (x$4 = c.graph.Files, x$5 = tracker.sourceIndex, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])); + trackerFile$1 = (x$4 = c.graph.Files, x$5 = tracker.sourceIndex, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$4.$array, x$4.$offset + x$5, ptrType$20))); namedImport$1 = $clone((_entry$1 = $mapIndex($assertType(trackerFile$1.InputFile.Repr, ptrType$3).AST.NamedImports,ast.Ref.keyFor(tracker.importRef)), _entry$1 !== undefined ? _entry$1.v : new js_ast.NamedImport.ptr("", sliceType$4.nil, new logger.Loc.ptr(0), new ast.Ref.ptr(0, 0), 0, false, false)), js_ast.NamedImport); if (result.kind === 1) { result.kind = 3; @@ -316630,7 +319401,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { $s = 10; continue; /* } else if (_1 === (0)) { */ case 6: symbol$1 = $clone(c.graph.Symbols, ast.SymbolMap).Get($clone(tracker.importRef, ast.Ref)); - trackerFile$2 = (x$6 = c.graph.Files, x$7 = tracker.sourceIndex, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])); + trackerFile$2 = (x$6 = c.graph.Files, x$7 = tracker.sourceIndex, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$6.$array, x$6.$offset + x$7, ptrType$20))); namedImport$2 = $clone((_entry$2 = $mapIndex($assertType(trackerFile$2.InputFile.Repr, ptrType$3).AST.NamedImports,ast.Ref.keyFor(tracker.importRef)), _entry$2 !== undefined ? _entry$2.v : new js_ast.NamedImport.ptr("", sliceType$4.nil, new logger.Loc.ptr(0), new ast.Ref.ptr(0, 0), 0, false, false)), js_ast.NamedImport); r = $clone(js_lexer.RangeOfIdentifier($clone(trackerFile$2.InputFile.Source, logger.Source), $clone(namedImport$2.AliasLoc, logger.Loc)), logger.Range); /* */ if (symbol$1.ImportItemStatus === 1) { $s = 15; continue; } @@ -316746,7 +319517,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { /* */ if (!js_ast.IsIdentifier(alias)) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!js_ast.IsIdentifier(alias)) { */ case 1: - file = (x = c.graph.Files, ((sourceIndex < 0 || sourceIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + sourceIndex])); + file = (x = c.graph.Files, ((sourceIndex < 0 || sourceIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + sourceIndex, ptrType$20))); _r = config.PrettyPrintTargetEnvironment(c.options.OriginalTargetEnv, c.options.UnsupportedJSFeatureOverridesMask); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } where = _r; _arg = file.LineColumnTracker(); @@ -316763,9 +319534,9 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: typos = [typos]; c = this; - /* */ if (repr.Meta.ResolvedExportTypos === ptrType$24.nil) { $s = 1; continue; } + /* */ if (repr.Meta.ResolvedExportTypos === ptrType$28.nil) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (repr.Meta.ResolvedExportTypos === ptrType$24.nil) { */ case 1: + /* if (repr.Meta.ResolvedExportTypos === ptrType$28.nil) { */ case 1: valid = $makeSlice(sliceType$11, 0, (repr.Meta.ResolvedExports ? repr.Meta.ResolvedExports.size : 0)); _ref = repr.Meta.ResolvedExports; _i = 0; @@ -316795,10 +319566,10 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { /* if (ok) { */ case 4: msg.Data.Location.Suggestion = corrected; export$1 = $clone((_entry$1 = $mapIndex(repr.Meta.ResolvedExports,$String.keyFor(corrected)), _entry$1 !== undefined ? _entry$1.v : new graph.ExportData.ptr(sliceType$18.nil, new ast.Ref.ptr(0, 0), new logger.Loc.ptr(0), 0)), graph.ExportData); - importedFile = (x = c.graph.Files, x$1 = export$1.SourceIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + importedFile = (x = c.graph.Files, x$1 = export$1.SourceIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + x$1, ptrType$20))); _r = fmt.Sprintf("Did you mean to import %q instead?", new sliceType$9([new $String(corrected)])); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } text = _r; - note = new logger.MsgData.ptr($ifaceNil, ptrType$16.nil, "", false); + note = new logger.MsgData.ptr($ifaceNil, ptrType$21.nil, "", false); if (export$1.NameLoc.Start === 0) { note.Text = text; } else { @@ -316860,8 +319631,8 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { while (true) { if (!(_i < _ref.$length)) { break; } importRecordIndex = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - record = (x$1 = repr.AST.ImportRecords, ((importRecordIndex < 0 || importRecordIndex >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + importRecordIndex])); - if ((!$clone(record.SourceIndex, ast.Index32).IsValid() && (!(x$2 = c.graph.Files, ((sourceIndex < 0 || sourceIndex >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + sourceIndex])).IsEntryPoint() || !new config.Format(c.options.OutputFormat).KeepESMImportExportSyntax())) || ($clone(record.SourceIndex, ast.Index32).IsValid() && !(($clone(record.SourceIndex, ast.Index32).GetIndex() === sourceIndex)) && c.hasDynamicExportsDueToExportStar($clone(record.SourceIndex, ast.Index32).GetIndex(), visited))) { + record = (x$1 = repr.AST.ImportRecords, ((importRecordIndex < 0 || importRecordIndex >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + importRecordIndex, ptrType$15))); + if ((!$clone(record.SourceIndex, ast.Index32).IsValid() && (!(x$2 = c.graph.Files, ((sourceIndex < 0 || sourceIndex >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$2.$array, x$2.$offset + sourceIndex, ptrType$20))).IsEntryPoint() || !new config.Format(c.options.OutputFormat).KeepESMImportExportSyntax())) || ($clone(record.SourceIndex, ast.Index32).IsValid() && !(($clone(record.SourceIndex, ast.Index32).GetIndex() === sourceIndex)) && c.hasDynamicExportsDueToExportStar($clone(record.SourceIndex, ast.Index32).GetIndex(), visited))) { repr.AST.ExportsKind = 3; return true; } @@ -316889,7 +319660,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { while (true) { if (!(_i$1 < _ref$1.$length)) { break; } importRecordIndex = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - record = (x$1 = repr.AST.ImportRecords, ((importRecordIndex < 0 || importRecordIndex >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + importRecordIndex])); + record = (x$1 = repr.AST.ImportRecords, ((importRecordIndex < 0 || importRecordIndex >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + importRecordIndex, ptrType$15))); if (!$clone(record.SourceIndex, ast.Index32).IsValid()) { _i$1++; continue; @@ -316952,10 +319723,10 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { $ptrType(linkerContext).prototype.advanceImportTracker = function advanceImportTracker(tracker) { var _entry, _entry$1, _tuple, c, file, matchingExport, matchingExport$1, namedImport, ok, otherRepr, otherSourceIndex, record, repr, tracker, x, x$1, x$2, x$3, x$4; c = this; - file = (x = c.graph.Files, x$1 = tracker.sourceIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + file = (x = c.graph.Files, x$1 = tracker.sourceIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + x$1, ptrType$20))); repr = $assertType(file.InputFile.Repr, ptrType$3); namedImport = $clone((_entry = $mapIndex(repr.AST.NamedImports,ast.Ref.keyFor(tracker.importRef)), _entry !== undefined ? _entry.v : new js_ast.NamedImport.ptr("", sliceType$4.nil, new logger.Loc.ptr(0), new ast.Ref.ptr(0, 0), 0, false, false)), js_ast.NamedImport); - record = (x$2 = repr.AST.ImportRecords, x$3 = namedImport.ImportRecordIndex, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])); + record = (x$2 = repr.AST.ImportRecords, x$3 = namedImport.ImportRecordIndex, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$2.$array, x$2.$offset + x$3, ptrType$15))); if (!$clone(record.SourceIndex, ast.Index32).IsValid()) { return [new importTracker.ptr(0, new logger.Loc.ptr(0), new ast.Ref.ptr(0, 0)), 6, sliceType$18.nil]; } @@ -316968,7 +319739,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { return [new importTracker.ptr(otherSourceIndex, new logger.Loc.ptr(0), $clone(ast.InvalidRef, ast.Ref)), 2, sliceType$18.nil]; } matchingExport = otherRepr.Meta.ResolvedExportStar; - if (namedImport.AliasIsStar && !(matchingExport === ptrType$25.nil)) { + if (namedImport.AliasIsStar && !(matchingExport === ptrType$29.nil)) { return [new importTracker.ptr(matchingExport.SourceIndex, $clone(matchingExport.NameLoc, logger.Loc), $clone(matchingExport.Ref, ast.Ref)), 1, matchingExport.PotentiallyAmbiguousExportStarRefs]; } _tuple = (_entry$1 = $mapIndex(otherRepr.Meta.ResolvedExports,$String.keyFor(namedImport.Alias)), _entry$1 !== undefined ? [_entry$1.v, true] : [new graph.ExportData.ptr(sliceType$18.nil, new ast.Ref.ptr(0, 0), new logger.Loc.ptr(0), 0), false]); @@ -317016,7 +319787,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { $ptrType(linkerContext).prototype.markFileReachableForCodeSplitting = function markFileReachableForCodeSplitting(sourceIndex, entryPointBit, distanceFromEntryPoint) { var _i, _i$1, _i$2, _i$3, _ref, _ref$1, _ref$2, _ref$3, _ref$4, c, dependency, distanceFromEntryPoint, entryPointBit, file, part, record, record$1, repr, repr$1, sourceIndex, traverseAgain, x; c = this; - file = (x = c.graph.Files, ((sourceIndex < 0 || sourceIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + sourceIndex])); + file = (x = c.graph.Files, ((sourceIndex < 0 || sourceIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + sourceIndex, ptrType$20))); if (!file.IsLive) { return; } @@ -317080,7 +319851,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { $ptrType(linkerContext).prototype.markFileLiveForTreeShaking = function markFileLiveForTreeShaking(sourceIndex) { var _i, _i$1, _i$2, _ref, _ref$1, _ref$2, _ref$3, c, canBeRemovedIfUnused, file, importRecordIndex, otherFile, otherSourceIndex, part, partIndex, record, record$1, repr, repr$1, sourceIndex, x, x$1, x$2; c = this; - file = (x = c.graph.Files, ((sourceIndex < 0 || sourceIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + sourceIndex])); + file = (x = c.graph.Files, ((sourceIndex < 0 || sourceIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + sourceIndex, ptrType$20))); if (file.IsLive) { return; } @@ -317103,14 +319874,14 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { while (true) { if (!(_i$1 < _ref$2.$length)) { break; } importRecordIndex = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); - record = (x$1 = repr.AST.ImportRecords, ((importRecordIndex < 0 || importRecordIndex >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + importRecordIndex])); + record = (x$1 = repr.AST.ImportRecords, ((importRecordIndex < 0 || importRecordIndex >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + importRecordIndex, ptrType$15))); if (!((record.Kind === 1))) { _i$1++; continue; } if ($clone(record.SourceIndex, ast.Index32).IsValid()) { otherSourceIndex = $clone(record.SourceIndex, ast.Index32).GetIndex(); - otherFile = (x$2 = c.graph.Files, ((otherSourceIndex < 0 || otherSourceIndex >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + otherSourceIndex])); + otherFile = (x$2 = c.graph.Files, ((otherSourceIndex < 0 || otherSourceIndex >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$2.$array, x$2.$offset + otherSourceIndex, ptrType$20))); if (!((otherFile.InputFile.SideEffects.Kind === 0)) && !c.options.IgnoreDCEAnnotations) { _i$1++; continue; @@ -317145,14 +319916,14 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { $ptrType(linkerContext).prototype.isExternalDynamicImport = function isExternalDynamicImport(record, sourceIndex) { var c, record, sourceIndex, x, x$1; c = this; - return c.options.CodeSplitting && (record.Kind === 3) && (x = c.graph.Files, x$1 = $clone(record.SourceIndex, ast.Index32).GetIndex(), ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).IsEntryPoint() && !(($clone(record.SourceIndex, ast.Index32).GetIndex() === sourceIndex)); + return c.options.CodeSplitting && (record.Kind === 3) && (x = c.graph.Files, x$1 = $clone(record.SourceIndex, ast.Index32).GetIndex(), ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + x$1, ptrType$20))).IsEntryPoint() && !(($clone(record.SourceIndex, ast.Index32).GetIndex() === sourceIndex)); }; $ptrType(linkerContext).prototype.markPartLiveForTreeShaking = function markPartLiveForTreeShaking(sourceIndex, partIndex) { var _i, _ref, c, dep, file, part, partIndex, repr, sourceIndex, x, x$1; c = this; - file = (x = c.graph.Files, ((sourceIndex < 0 || sourceIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + sourceIndex])); + file = (x = c.graph.Files, ((sourceIndex < 0 || sourceIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + sourceIndex, ptrType$20))); repr = $assertType(file.InputFile.Repr, ptrType$3); - part = (x$1 = repr.AST.Parts, ((partIndex < 0 || partIndex >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + partIndex])); + part = (x$1 = repr.AST.Parts, ((partIndex < 0 || partIndex >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + partIndex, ptrType$14))); if (part.IsLive) { return; } @@ -317185,7 +319956,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { $s = -1; return; } _key = sourceIndex; (visited[0] || $throwRuntimeError("assignment to entry in nil map")).set($Uint32.keyFor(_key), { k: _key, v: true }); - file = (x = c[0].graph.Files, ((sourceIndex < 0 || sourceIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + sourceIndex])); + file = (x = c[0].graph.Files, ((sourceIndex < 0 || sourceIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + sourceIndex, ptrType$20))); repr = $assertType(file.InputFile.Repr, ptrType$3); _ref = repr.AST.Parts; _i = 0; @@ -317197,7 +319968,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { /* while (true) { */ case 3: /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 4; continue; } importRecordIndex = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - record = (x$1 = repr.AST.ImportRecords, ((importRecordIndex < 0 || importRecordIndex >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + importRecordIndex])); + record = (x$1 = repr.AST.ImportRecords, ((importRecordIndex < 0 || importRecordIndex >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + importRecordIndex, ptrType$15))); /* */ if ($clone(record.SourceIndex, ast.Index32).IsValid()) { $s = 5; continue; } /* */ $s = 6; continue; /* if ($clone(record.SourceIndex, ast.Index32).IsValid()) { */ case 5: @@ -317254,19 +320025,19 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { /* while (true) { */ case 1: /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 2; continue; } rule = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), css_ast.Rule); - _tuple = $assertType(rule.Data, ptrType$26, true); + _tuple = $assertType(rule.Data, ptrType$30, true); atImport = _tuple[0]; ok = _tuple[1]; /* */ if (ok) { $s = 3; continue; } /* */ $s = 4; continue; /* if (ok) { */ case 3: - record = (x$1 = repr.AST.ImportRecords, x$2 = atImport.ImportRecordIndex, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])); + record = (x$1 = repr.AST.ImportRecords, x$2 = atImport.ImportRecordIndex, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + x$2, ptrType$15))); /* */ if ($clone(record.SourceIndex, ast.Index32).IsValid()) { $s = 5; continue; } /* */ $s = 6; continue; /* if ($clone(record.SourceIndex, ast.Index32).IsValid()) { */ case 5: nestedConditions = wrappingConditions; nestedImportRecords = wrappingImportRecords; - if (!(atImport.ImportConditions === ptrType$27.nil)) { + if (!(atImport.ImportConditions === ptrType$31.nil)) { nestedConditions = $appendSlice(new sliceType$35([]), nestedConditions); nestedImportRecords = $appendSlice(new sliceType$36([]), nestedImportRecords); conditions = new css_ast.ImportConditions.ptr(sliceType$38.nil, sliceType$38.nil, sliceType$38.nil); @@ -317282,7 +320053,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { if ((((record.Flags & 8192) >>> 0)) === 0) { allConditions = wrappingConditions; allImportRecords = wrappingImportRecords; - if (!(atImport.ImportConditions === ptrType$27.nil)) { + if (!(atImport.ImportConditions === ptrType$31.nil)) { conditions$1 = new css_ast.ImportConditions.ptr(sliceType$38.nil, sliceType$38.nil, sliceType$38.nil); allConditions = $appendSlice(new sliceType$35([]), allConditions); allImportRecords = $appendSlice(new sliceType$36([]), allImportRecords); @@ -317417,7 +320188,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { if (!(_i$6 < _ref$6.$length)) { break; } i$2 = _i$6; conditions = $clone(((_i$6 < 0 || _i$6 >= _ref$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$6.$array[_ref$6.$offset + _i$6]), css_ast.ImportConditions); - if (!(conditions.Layers === sliceType$38.nil) && (conditions.Layers.$length === 1) && (x$2 = conditions.Layers, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])).Children === ptrType$30.nil) { + if (!(conditions.Layers === sliceType$38.nil) && (conditions.Layers.$length === 1) && (x$2 = conditions.Layers, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])).Children === ptrType$34.nil) { entry$3.conditions = $subslice(entry$3.conditions, 0, i$2); entry$3.layers = sliceType$37.nil; break; @@ -317573,7 +320344,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } i = _i; entryPoint = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), graph.EntryPoint); - file = (x = c.graph.Files, x$1 = entryPoint.SourceIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + file = (x = c.graph.Files, x$1 = entryPoint.SourceIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + x$1, ptrType$20))); entryBits = $clone(helpers.NewBitSet(((c.graph.EntryPoints().$length >>> 0))), helpers.BitSet); $clone(entryBits, helpers.BitSet).SetBit(((i >>> 0))); key = $clone(entryBits, helpers.BitSet).String(); @@ -317632,7 +320403,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { while (true) { if (!(_i$3 < _ref$4.$length)) { break; } sourceIndex = ((_i$3 < 0 || _i$3 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$3]); - file$1 = (x$2 = c.graph.Files, ((sourceIndex < 0 || sourceIndex >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + sourceIndex])); + file$1 = (x$2 = c.graph.Files, ((sourceIndex < 0 || sourceIndex >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$2.$array, x$2.$offset + sourceIndex, ptrType$20))); if (file$1.IsLive) { _tuple = $assertType(file$1.InputFile.Repr, ptrType$3, true); ok = _tuple[1]; @@ -317724,7 +320495,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { chunkIndex = _i$8; chunk$5 = $clone(((_i$8 < 0 || _i$8 >= _ref$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$9.$array[_ref$9.$offset + _i$8]), chunkInfo); if (chunk$5.isEntryPoint) { - file$2 = (x$3 = c.graph.Files, x$4 = chunk$5.sourceIndex, ((x$4 < 0 || x$4 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + x$4])); + file$2 = (x$3 = c.graph.Files, x$4 = chunk$5.sourceIndex, ((x$4 < 0 || x$4 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$3.$array, x$3.$offset + x$4, ptrType$20))); _tuple$3 = $assertType(chunk$5.chunkRepr, ptrType$9, true); ok$3 = _tuple$3[1]; if (ok$3) { @@ -317766,7 +320537,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { dir = [dir]; templateExt = [templateExt]; chunkIndex$1 = _i$10; - chunk$6 = ((chunkIndex$1 < 0 || chunkIndex$1 >= sortedChunks.$length) ? ($throwRuntimeError("index out of range"), undefined) : sortedChunks.$array[sortedChunks.$offset + chunkIndex$1]); + chunk$6 = ((chunkIndex$1 < 0 || chunkIndex$1 >= sortedChunks.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(sortedChunks.$array, sortedChunks.$offset + chunkIndex$1, ptrType$10)); _r$4 = fmt.Sprintf("%sC%08d", new sliceType$9([new $String(c.uniqueKeyPrefix), new $Int(chunkIndex$1)])); /* */ $s = 21; case 21: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } chunk$6.uniqueKey = _r$4; stdExt = ""; @@ -317786,7 +320557,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { /* */ if (chunk$6.isEntryPoint) { $s = 22; continue; } /* */ $s = 23; continue; /* if (chunk$6.isEntryPoint) { */ case 22: - file$3 = (x$5 = c.graph.Files, x$6 = chunk$6.sourceIndex, ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$6])); + file$3 = (x$5 = c.graph.Files, x$6 = chunk$6.sourceIndex, ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$5.$array, x$5.$offset + x$6, ptrType$20))); if (file$3.IsUserSpecifiedEntryPoint()) { template = c.options.EntryPathTemplate; } else { @@ -317825,7 +320596,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { /* } */ case 24: templateExt[0] = strings.TrimPrefix(ext, "."); template = $append($appendSlice($makeSlice(sliceType$41, 0, (template.$length + 1 >> 0)), template), new config.PathTemplate.ptr(ext, 0)); - chunk$6.finalTemplate = config.SubstituteTemplate(template, $clone(new config.PathPlaceholders.ptr((dir.$ptr || (dir.$ptr = new ptrType$10(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, dir))), (base.$ptr || (base.$ptr = new ptrType$10(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, base))), ptrType$10.nil, (templateExt.$ptr || (templateExt.$ptr = new ptrType$10(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, templateExt)))), config.PathPlaceholders)); + chunk$6.finalTemplate = config.SubstituteTemplate(template, $clone(new config.PathPlaceholders.ptr((dir.$ptr || (dir.$ptr = new ptrType$11(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, dir))), (base.$ptr || (base.$ptr = new ptrType$11(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, base))), ptrType$11.nil, (templateExt.$ptr || (templateExt.$ptr = new ptrType$11(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, templateExt)))), config.PathPlaceholders)); _i$10++; $s = 19; continue; case 20: @@ -317860,7 +320631,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { var i, partIndex, r, ranges, sourceIndex; i = ranges.$length - 1 >> 0; if (i >= 0) { - r = ((i < 0 || i >= ranges.$length) ? ($throwRuntimeError("index out of range"), undefined) : ranges.$array[ranges.$offset + i]); + r = ((i < 0 || i >= ranges.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(ranges.$array, ranges.$offset + i, ptrType$35)); if ((r.sourceIndex === sourceIndex) && (r.partIndexEnd === partIndex)) { r.partIndexEnd = partIndex + 1 >>> 0; return ranges; @@ -317872,11 +320643,11 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { var _tuple, c, ok, part, record, repr, s, x, x$1, x$2, x$3, x$4; c = this; if (part.Stmts.$length === 1) { - _tuple = $assertType((x = part.Stmts, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).Data, ptrType$31, true); + _tuple = $assertType((x = part.Stmts, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).Data, ptrType$36, true); s = _tuple[0]; ok = _tuple[1]; if (ok) { - record = (x$1 = repr.AST.ImportRecords, x$2 = s.ImportRecordIndex, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])); + record = (x$1 = repr.AST.ImportRecords, x$2 = s.ImportRecordIndex, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + x$2, ptrType$15))); if ($clone(record.SourceIndex, ast.Index32).IsValid() && ($assertType((x$3 = c.graph.Files, x$4 = $clone(record.SourceIndex, ast.Index32).GetIndex(), ((x$4 < 0 || x$4 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + x$4])).InputFile.Repr, ptrType$3).Meta.Wrap === 0)) { return false; } @@ -317911,7 +320682,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { continue; } sourceIndex = _entry.k; - file = (x = c[0].graph.Files, ((sourceIndex < 0 || sourceIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + sourceIndex])); + file = (x = c[0].graph.Files, ((sourceIndex < 0 || sourceIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + sourceIndex, ptrType$20))); sorted = $append(sorted, new chunkOrder.ptr(sourceIndex, file.DistanceFromEntryPoint, (x$1 = c[0].graph.StableSourceIndices, ((sourceIndex < 0 || sourceIndex >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + sourceIndex])))); _i++; } @@ -317926,7 +320697,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { $s = -1; return; } _key$1 = sourceIndex$1; (visited[0] || $throwRuntimeError("assignment to entry in nil map")).set($Uint32.keyFor(_key$1), { k: _key$1, v: true }); - file$1 = (x$2 = c[0].graph.Files, ((sourceIndex$1 < 0 || sourceIndex$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + sourceIndex$1])); + file$1 = (x$2 = c[0].graph.Files, ((sourceIndex$1 < 0 || sourceIndex$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$2.$array, x$2.$offset + sourceIndex$1, ptrType$20))); _tuple = $assertType(file$1.InputFile.Repr, ptrType$3, true); repr = _tuple[0]; ok = _tuple[1]; @@ -317950,7 +320721,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { /* while (true) { */ case 5: /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 6; continue; } importRecordIndex = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); - record = (x$5 = repr.AST.ImportRecords, ((importRecordIndex < 0 || importRecordIndex >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + importRecordIndex])); + record = (x$5 = repr.AST.ImportRecords, ((importRecordIndex < 0 || importRecordIndex >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$5.$array, x$5.$offset + importRecordIndex, ptrType$15))); /* */ if ($clone(record.SourceIndex, ast.Index32).IsValid() && ((record.Kind === 1) || isPartInThisChunk)) { $s = 7; continue; } /* */ $s = 8; continue; /* if ($clone(record.SourceIndex, ast.Index32).IsValid() && ((record.Kind === 1) || isPartInThisChunk)) { */ case 7: @@ -318004,7 +320775,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { var _1, c, importRecordIndex, loc, namespaceRef, otherFile, otherRepr, record, repr, sourceIndex, stmtList$1, value, x, x$1, x$2, x$3; c = this; repr = $assertType((x = c.graph.Files, ((sourceIndex < 0 || sourceIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + sourceIndex])).InputFile.Repr, ptrType$3); - record = (x$1 = repr.AST.ImportRecords, ((importRecordIndex < 0 || importRecordIndex >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + importRecordIndex])); + record = (x$1 = repr.AST.ImportRecords, ((importRecordIndex < 0 || importRecordIndex >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + importRecordIndex, ptrType$15))); if (!$clone(record.SourceIndex, ast.Index32).IsValid()) { if (new config.Format(c.options.OutputFormat).KeepESMImportExportSyntax()) { return false; @@ -318015,7 +320786,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { if ((repr.AST.ExportsKind === 1) && $equal(ast.FollowSymbols($clone(c.graph.Symbols, ast.SymbolMap), $clone(namespaceRef, ast.Ref)), repr.AST.ExportsRef, ast.Ref)) { return true; } - otherFile = (x$2 = c.graph.Files, x$3 = $clone(record.SourceIndex, ast.Index32).GetIndex(), ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])); + otherFile = (x$2 = c.graph.Files, x$3 = $clone(record.SourceIndex, ast.Index32).GetIndex(), ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$2.$array, x$2.$offset + x$3, ptrType$20))); otherRepr = $assertType(otherFile.InputFile.Repr, ptrType$3); switch (0) { default: _1 = otherRepr.Meta.Wrap; @@ -318039,7 +320810,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { var {_entry, _entry$1, _i, _i$1, _i$2, _i$3, _i$4, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, args, args$1, c, clone, clone$1, clone$2, exportStarRef, exportStarRef$1, file, i, item, item$1, item$2, item$3, moduleExportsForReExportOrNil, otherRepr, otherRepr$1, partStmts, record, repr, s, s$1, s$2, s$3, s$4, s$5, s$6, s$7, s2, s2$1, s2$2, s2$3, shouldExtractESMStmtsForWrap, shouldStripExports, sourceIndex, stmt, stmtList$1, target, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {sourceIndex, stmtList$1, partStmts}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: c = this; - file = (x = c.graph.Files, ((sourceIndex < 0 || sourceIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + sourceIndex])); + file = (x = c.graph.Files, ((sourceIndex < 0 || sourceIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + sourceIndex, ptrType$20))); shouldStripExports = !((c.options.Mode === 0)) || !file.IsEntryPoint(); repr = $assertType(file.InputFile.Repr, ptrType$3); shouldExtractESMStmtsForWrap = !((repr.Meta.Wrap === 0)); @@ -318056,24 +320827,24 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { clone$2 = [clone$2]; stmt = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), js_ast.Stmt); _ref$1 = stmt.Data; - /* */ if ($assertType(_ref$1, ptrType$31, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref$1, ptrType$32, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref$1, ptrType$33, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref$1, ptrType$34, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref$1, ptrType$35, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref$1, ptrType$36, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref$1, ptrType$37, true)[1]) { $s = 9; continue; } - /* */ if ($assertType(_ref$1, ptrType$38, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref$1, ptrType$36, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref$1, ptrType$37, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref$1, ptrType$38, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref$1, ptrType$39, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref$1, ptrType$40, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref$1, ptrType$41, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref$1, ptrType$42, true)[1]) { $s = 9; continue; } + /* */ if ($assertType(_ref$1, ptrType$43, true)[1]) { $s = 10; continue; } /* */ $s = 11; continue; - /* switch (0) { default: if ($assertType(_ref$1, ptrType$31, true)[1]) { */ case 3: + /* switch (0) { default: if ($assertType(_ref$1, ptrType$36, true)[1]) { */ case 3: s = _ref$1.$val; if (c.shouldRemoveImportExportStmt(sourceIndex, stmtList$1, $clone(stmt.Loc, logger.Loc), $clone(s.NamespaceRef, ast.Ref), s.ImportRecordIndex)) { _i++; /* continue; */ $s = 1; continue; } - /* */ if (c.options.UnsupportedJSFeatures.Has(new compat.JSFeature(0, 1)) && !(s.Items === ptrType$14.nil)) { $s = 12; continue; } + /* */ if (c.options.UnsupportedJSFeatures.Has(new compat.JSFeature(0, 1)) && !(s.Items === ptrType$18.nil)) { $s = 12; continue; } /* */ $s = 13; continue; - /* if (c.options.UnsupportedJSFeatures.Has(new compat.JSFeature(0, 1)) && !(s.Items === ptrType$14.nil)) { */ case 12: + /* if (c.options.UnsupportedJSFeatures.Has(new compat.JSFeature(0, 1)) && !(s.Items === ptrType$18.nil)) { */ case 12: _ref$2 = s.Items.$get(); _i$1 = 0; /* while (true) { */ case 14: @@ -318090,11 +320861,11 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { /* continue; */ $s = 1; continue; } $s = 11; continue; - /* } else if ($assertType(_ref$1, ptrType$32, true)[1]) { */ case 4: + /* } else if ($assertType(_ref$1, ptrType$37, true)[1]) { */ case 4: s$1 = _ref$1.$val; - /* */ if (!(s$1.Alias === ptrType$39.nil)) { $s = 17; continue; } + /* */ if (!(s$1.Alias === ptrType$44.nil)) { $s = 17; continue; } /* */ $s = 18; continue; - /* if (!(s$1.Alias === ptrType$39.nil)) { */ case 17: + /* if (!(s$1.Alias === ptrType$44.nil)) { */ case 17: if (c.shouldRemoveImportExportStmt(sourceIndex, stmtList$1, $clone(stmt.Loc, logger.Loc), $clone(s$1.NamespaceRef, ast.Ref), s$1.ImportRecordIndex)) { _i++; /* continue; */ $s = 1; continue; @@ -318105,7 +320876,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { $r = c.maybeForbidArbitraryModuleNamespaceIdentifier("export", sourceIndex, $clone(s$1.Alias.Loc, logger.Loc), s$1.Alias.OriginalName); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 20: if (shouldStripExports) { - stmt.Data = new js_ast.SImport.ptr(ptrType$13.nil, ptrType$14.nil, s$1.Alias.Loc, $clone(s$1.NamespaceRef, ast.Ref), s$1.ImportRecordIndex, false); + stmt.Data = new js_ast.SImport.ptr(ptrType$17.nil, ptrType$18.nil, s$1.Alias.Loc, $clone(s$1.NamespaceRef, ast.Ref), s$1.ImportRecordIndex, false); } if (shouldExtractESMStmtsForWrap) { stmtList$1.outsideWrapperPrefix = $append(stmtList$1.outsideWrapperPrefix, stmt); @@ -318117,10 +320888,10 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { if (!shouldStripExports) { /* break; */ $s = 11; continue; } - record = (x$1 = repr.AST.ImportRecords, x$2 = s$1.ImportRecordIndex, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])); + record = (x$1 = repr.AST.ImportRecords, x$2 = s$1.ImportRecordIndex, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + x$2, ptrType$15))); if (!$clone(record.SourceIndex, ast.Index32).IsValid() && new config.Format(c.options.OutputFormat).KeepESMImportExportSyntax()) { if (new ast.ImportRecordFlags(record.Flags).Has(16)) { - stmt.Data = new js_ast.SImport.ptr(ptrType$13.nil, ptrType$14.nil, new logger.Loc.ptr(stmt.Loc.Start), $clone(s$1.NamespaceRef, ast.Ref), s$1.ImportRecordIndex, false); + stmt.Data = new js_ast.SImport.ptr(ptrType$17.nil, ptrType$18.nil, new logger.Loc.ptr(stmt.Loc.Start), $clone(s$1.NamespaceRef, ast.Ref), s$1.ImportRecordIndex, false); exportStarRef = $clone((_entry = $mapIndex($assertType((x$3 = c.graph.Files, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])).InputFile.Repr, ptrType$3).AST.ModuleScope.Members,$String.keyFor("__reExport")), _entry !== undefined ? _entry.v : new js_ast.ScopeMember.ptr(new ast.Ref.ptr(0, 0), new logger.Loc.ptr(0))).Ref, ast.Ref); args = new sliceType$32([$clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(repr.AST.ExportsRef, ast.Ref), false, false, false), $clone(stmt.Loc, logger.Loc)), js_ast.Expr), $clone(new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(s$1.NamespaceRef, ast.Ref), false, false, false), $clone(stmt.Loc, logger.Loc)), js_ast.Expr)]); if (!($interfaceIsEqual(moduleExportsForReExportOrNil.Data, $ifaceNil))) { @@ -318162,7 +320933,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { /* continue; */ $s = 1; continue; } $s = 11; continue; - /* } else if ($assertType(_ref$1, ptrType$33, true)[1]) { */ case 5: + /* } else if ($assertType(_ref$1, ptrType$38, true)[1]) { */ case 5: s$2 = _ref$1.$val; if (c.shouldRemoveImportExportStmt(sourceIndex, stmtList$1, $clone(stmt.Loc, logger.Loc), $clone(s$2.NamespaceRef, ast.Ref), s$2.ImportRecordIndex)) { _i++; @@ -318196,7 +320967,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { (x$9 = s$2.Items, ((i < 0 || i >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + i])).Alias = item$2.OriginalName; _i$3++; } - stmt.Data = new js_ast.SImport.ptr(ptrType$13.nil, (s$2.$ptr_Items || (s$2.$ptr_Items = new ptrType$14(function() { return this.$target.Items; }, function($v) { this.$target.Items = $v; }, s$2))), ptrType$15.nil, $clone(s$2.NamespaceRef, ast.Ref), s$2.ImportRecordIndex, s$2.IsSingleLine); + stmt.Data = new js_ast.SImport.ptr(ptrType$17.nil, (s$2 === ptrType$38.nil && $throwNilPointerError(), (s$2.$ptr_Items || (s$2.$ptr_Items = new ptrType$18(function() { return this.$target.Items; }, function($v) { this.$target.Items = $v; }, s$2)))), ptrType$19.nil, $clone(s$2.NamespaceRef, ast.Ref), s$2.ImportRecordIndex, s$2.IsSingleLine); } if (shouldExtractESMStmtsForWrap) { stmtList$1.outsideWrapperPrefix = $append(stmtList$1.outsideWrapperPrefix, stmt); @@ -318204,7 +320975,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { /* continue; */ $s = 1; continue; } $s = 11; continue; - /* } else if ($assertType(_ref$1, ptrType$34, true)[1]) { */ case 6: + /* } else if ($assertType(_ref$1, ptrType$39, true)[1]) { */ case 6: s$3 = _ref$1.$val; if (shouldStripExports) { _i++; @@ -318229,43 +321000,43 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { /* continue; */ $s = 1; continue; } $s = 11; continue; - /* } else if ($assertType(_ref$1, ptrType$35, true)[1]) { */ case 7: + /* } else if ($assertType(_ref$1, ptrType$40, true)[1]) { */ case 7: s$4 = _ref$1.$val; if (shouldStripExports && s$4.IsExport) { - clone[0] = $clone(s$4, js_ast.SFunction); + clone[0] = $clone((s$4 === ptrType$40.nil && $throwNilPointerError(), s$4), js_ast.SFunction); clone[0].IsExport = false; stmt.Data = clone[0]; } $s = 11; continue; - /* } else if ($assertType(_ref$1, ptrType$36, true)[1]) { */ case 8: + /* } else if ($assertType(_ref$1, ptrType$41, true)[1]) { */ case 8: s$5 = _ref$1.$val; if (shouldStripExports && s$5.IsExport) { - clone$1[0] = $clone(s$5, js_ast.SClass); + clone$1[0] = $clone((s$5 === ptrType$41.nil && $throwNilPointerError(), s$5), js_ast.SClass); clone$1[0].IsExport = false; stmt.Data = clone$1[0]; } $s = 11; continue; - /* } else if ($assertType(_ref$1, ptrType$37, true)[1]) { */ case 9: + /* } else if ($assertType(_ref$1, ptrType$42, true)[1]) { */ case 9: s$6 = _ref$1.$val; if (shouldStripExports && s$6.IsExport) { - clone$2[0] = $clone(s$6, js_ast.SLocal); + clone$2[0] = $clone((s$6 === ptrType$42.nil && $throwNilPointerError(), s$6), js_ast.SLocal); clone$2[0].IsExport = false; stmt.Data = clone$2[0]; } $s = 11; continue; - /* } else if ($assertType(_ref$1, ptrType$38, true)[1]) { */ case 10: + /* } else if ($assertType(_ref$1, ptrType$43, true)[1]) { */ case 10: s$7 = _ref$1.$val; if (shouldStripExports) { _ref$6 = s$7.Value.Data; - if ($assertType(_ref$6, ptrType$40, true)[1]) { + if ($assertType(_ref$6, ptrType$45, true)[1]) { s2 = _ref$6.$val; js_ast.Stmt.copy(stmt, new js_ast.Stmt.ptr(new js_ast.SLocal.ptr(new sliceType$30([$clone(new js_ast.Decl.ptr($clone(new js_ast.Binding.ptr(new js_ast.BIdentifier.ptr($clone(s$7.DefaultName.Ref, ast.Ref)), $clone(s$7.DefaultName.Loc, logger.Loc)), js_ast.Binding), $clone(s2.Value, js_ast.Expr)), js_ast.Decl)]), 0, false, false), $clone(stmt.Loc, logger.Loc))); - } else if ($assertType(_ref$6, ptrType$35, true)[1]) { + } else if ($assertType(_ref$6, ptrType$40, true)[1]) { s2$1 = _ref$6.$val; s2$1 = new js_ast.SFunction.ptr($clone(s2$1.Fn, js_ast.Fn), false); s2$1.Fn.Name = s$7.DefaultName; js_ast.Stmt.copy(stmt, new js_ast.Stmt.ptr(s2$1, $clone(s$7.Value.Loc, logger.Loc))); - } else if ($assertType(_ref$6, ptrType$36, true)[1]) { + } else if ($assertType(_ref$6, ptrType$41, true)[1]) { s2$2 = _ref$6.$val; s2$2 = new js_ast.SClass.ptr($clone(s2$2.Class, js_ast.Class), false); s2$2.Class.Name = s$7.DefaultName; @@ -318296,11 +321067,11 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { if (!(_i < _ref.$length)) { break; } clone = [clone]; stmt = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), js_ast.Stmt); - _tuple = $assertType(stmt.Data, ptrType$37, true); + _tuple = $assertType(stmt.Data, ptrType$42, true); after = _tuple[0]; ok = _tuple[1]; if (ok) { - _tuple$1 = $assertType((x = end - 1 >> 0, ((x < 0 || x >= stmts.$length) ? ($throwRuntimeError("index out of range"), undefined) : stmts.$array[stmts.$offset + x])).Data, ptrType$37, true); + _tuple$1 = $assertType((x = end - 1 >> 0, ((x < 0 || x >= stmts.$length) ? ($throwRuntimeError("index out of range"), undefined) : stmts.$array[stmts.$offset + x])).Data, ptrType$42, true); before = _tuple$1[0]; ok$1 = _tuple$1[1]; if (ok$1) { @@ -318309,7 +321080,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { before.Decls = $appendSlice(before.Decls, after.Decls); } else { didMergeWithPreviousLocal = true; - clone[0] = $clone(before, js_ast.SLocal); + clone[0] = $clone((before === ptrType$42.nil && $throwNilPointerError(), before), js_ast.SLocal); clone[0].Decls = $makeSlice(sliceType$30, 0, (before.Decls.$length + after.Decls.$length >> 0)); clone[0].Decls = $appendSlice(clone[0].Decls, before.Decls); clone[0].Decls = $appendSlice(clone[0].Decls, after.Decls); @@ -318348,7 +321119,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { stmtList$1 = [stmtList$1]; c = this; $deferred.push([$methodVal(c, "recoverInternalError"), [waitGroup, partRange$1.sourceIndex]]); - file = (x = c.graph.Files, x$1 = partRange$1.sourceIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + file = (x = c.graph.Files, x$1 = partRange$1.sourceIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + x$1, ptrType$20))); repr = $assertType(file.InputFile.Repr, ptrType$3); nsExportPartIndex = 0; needsWrapper = false; @@ -318406,13 +321177,13 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { stmts = part.Stmts; if ($clone(partIndexForLazyDefaultExport, ast.Index32).IsValid() && (partIndex === $clone(partIndexForLazyDefaultExport, ast.Index32).GetIndex())) { stmt = $clone((0 >= stmts.$length ? ($throwRuntimeError("index out of range"), undefined) : stmts.$array[stmts.$offset + 0]), js_ast.Stmt); - defaultExport$1 = $assertType(stmt.Data, ptrType$38); - defaultExpr = $assertType(defaultExport$1.Value.Data, ptrType$40); - _tuple$1 = $assertType(defaultExpr.Value.Data, ptrType$22, true); + defaultExport$1 = $assertType(stmt.Data, ptrType$43); + defaultExpr = $assertType(defaultExport$1.Value.Data, ptrType$45); + _tuple$1 = $assertType(defaultExpr.Value.Data, ptrType$26, true); object = _tuple$1[0]; ok$1 = _tuple$1[1]; if (ok$1) { - objectClone[0] = $clone(object, js_ast.EObject); + objectClone[0] = $clone((object === ptrType$26.nil && $throwNilPointerError(), object), js_ast.EObject); objectClone[0].Properties = $appendSlice(new sliceType$27([]), objectClone[0].Properties); _ref$1 = object.Properties; _i$1 = 0; @@ -318420,7 +321191,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { if (!(_i$1 < _ref$1.$length)) { break; } i = _i$1; property = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), js_ast.Property); - _tuple$2 = $assertType(property.Key.Data, ptrType$23, true); + _tuple$2 = $assertType(property.Key.Data, ptrType$27, true); str = _tuple$2[0]; ok$2 = _tuple$2[1]; if (ok$2) { @@ -318432,7 +321203,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { if (ok$3) { part$1 = $clone((x$7 = repr.AST.Parts, x$8 = (x$9 = repr.TopLevelSymbolToParts($clone(export$1.Ref, ast.Ref)), (0 >= x$9.$length ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + 0])), ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8])), js_ast.Part); if (part$1.IsLive) { - ref = $clone($assertType((x$10 = $assertType((x$11 = part$1.Stmts, (0 >= x$11.$length ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + 0])).Data, ptrType$37).Decls, (0 >= x$10.$length ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + 0])).Binding.Data, ptrType$41).Ref, ast.Ref); + ref = $clone($assertType((x$10 = $assertType((x$11 = part$1.Stmts, (0 >= x$11.$length ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + 0])).Data, ptrType$42).Decls, (0 >= x$10.$length ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + 0])).Binding.Data, ptrType$46).Ref, ast.Ref); js_ast.Expr.copy((x$12 = objectClone[0].Properties, ((i < 0 || i >= x$12.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + i])).ValueOrNil, new js_ast.Expr.ptr(new js_ast.EIdentifier.ptr($clone(ref, ast.Ref), false, false, false), $clone(property.Key.Loc, logger.Loc))); } } @@ -318440,9 +321211,9 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { } _i$1++; } - defaultExprClone[0] = $clone(defaultExpr, js_ast.SExpr); + defaultExprClone[0] = $clone((defaultExpr === ptrType$45.nil && $throwNilPointerError(), defaultExpr), js_ast.SExpr); defaultExprClone[0].Value.Data = objectClone[0]; - defaultExportClone[0] = $clone(defaultExport$1, js_ast.SExportDefault); + defaultExportClone[0] = $clone((defaultExport$1 === ptrType$43.nil && $throwNilPointerError(), defaultExport$1), js_ast.SExportDefault); defaultExportClone[0].Value.Data = defaultExprClone[0]; stmt.Data = defaultExportClone[0]; stmts = new sliceType$21([$clone(stmt, js_ast.Stmt)]); @@ -318480,9 +321251,9 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { if (!c.options.UnsupportedJSFeatures.Has(new compat.JSFeature(512, 0))) { kind = 1; } - cjsArgs = new sliceType$32([$clone(new js_ast.Expr.ptr(new js_ast.EObject.ptr(new sliceType$27([$clone(new js_ast.Property.ptr(ptrType$21.nil, $clone(new js_ast.Expr.ptr(new js_ast.EString.ptr(helpers.StringToUTF16(file.InputFile.Source.PrettyPath), new logger.Loc.ptr(0), false, false, false), new logger.Loc.ptr(0)), js_ast.Expr), $clone(new js_ast.Expr.ptr(new js_ast.EFunction.ptr($clone(new js_ast.Fn.ptr(ptrType$13.nil, args, $clone(new js_ast.FnBody.ptr($clone(new js_ast.SBlock.ptr(stmts$1, new logger.Loc.ptr(0)), js_ast.SBlock), new logger.Loc.ptr(0)), js_ast.FnBody), new ast.Ref.ptr(0, 0), new logger.Loc.ptr(0), false, false, false, false, false, false), js_ast.Fn)), new logger.Loc.ptr(0)), js_ast.Expr), new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), sliceType$29.nil, new logger.Loc.ptr(0), new logger.Loc.ptr(0), kind, 0), js_ast.Property)]), new logger.Loc.ptr(0), new logger.Loc.ptr(0), false, false), new logger.Loc.ptr(0)), js_ast.Expr)]); + cjsArgs = new sliceType$32([$clone(new js_ast.Expr.ptr(new js_ast.EObject.ptr(new sliceType$27([$clone(new js_ast.Property.ptr(ptrType$25.nil, $clone(new js_ast.Expr.ptr(new js_ast.EString.ptr(helpers.StringToUTF16(file.InputFile.Source.PrettyPath), new logger.Loc.ptr(0), false, false, false), new logger.Loc.ptr(0)), js_ast.Expr), $clone(new js_ast.Expr.ptr(new js_ast.EFunction.ptr($clone(new js_ast.Fn.ptr(ptrType$17.nil, args, $clone(new js_ast.FnBody.ptr($clone(new js_ast.SBlock.ptr(stmts$1, new logger.Loc.ptr(0)), js_ast.SBlock), new logger.Loc.ptr(0)), js_ast.FnBody), new ast.Ref.ptr(0, 0), new logger.Loc.ptr(0), false, false, false, false, false, false), js_ast.Fn)), new logger.Loc.ptr(0)), js_ast.Expr), new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), sliceType$29.nil, new logger.Loc.ptr(0), new logger.Loc.ptr(0), kind, 0), js_ast.Property)]), new logger.Loc.ptr(0), new logger.Loc.ptr(0), false, false), new logger.Loc.ptr(0)), js_ast.Expr)]); } else if (c.options.UnsupportedJSFeatures.Has(new compat.JSFeature(0, 4))) { - cjsArgs = new sliceType$32([$clone(new js_ast.Expr.ptr(new js_ast.EFunction.ptr($clone(new js_ast.Fn.ptr(ptrType$13.nil, args, $clone(new js_ast.FnBody.ptr($clone(new js_ast.SBlock.ptr(stmts$1, new logger.Loc.ptr(0)), js_ast.SBlock), new logger.Loc.ptr(0)), js_ast.FnBody), new ast.Ref.ptr(0, 0), new logger.Loc.ptr(0), false, false, false, false, false, false), js_ast.Fn)), new logger.Loc.ptr(0)), js_ast.Expr)]); + cjsArgs = new sliceType$32([$clone(new js_ast.Expr.ptr(new js_ast.EFunction.ptr($clone(new js_ast.Fn.ptr(ptrType$17.nil, args, $clone(new js_ast.FnBody.ptr($clone(new js_ast.SBlock.ptr(stmts$1, new logger.Loc.ptr(0)), js_ast.SBlock), new logger.Loc.ptr(0)), js_ast.FnBody), new ast.Ref.ptr(0, 0), new logger.Loc.ptr(0), false, false, false, false, false, false), js_ast.Fn)), new logger.Loc.ptr(0)), js_ast.Expr)]); } else { cjsArgs = new sliceType$32([$clone(new js_ast.Expr.ptr(new js_ast.EArrow.ptr(args, $clone(new js_ast.FnBody.ptr($clone(new js_ast.SBlock.ptr(stmts$1, new logger.Loc.ptr(0)), js_ast.SBlock), new logger.Loc.ptr(0)), js_ast.FnBody), false, false, false, false), new logger.Loc.ptr(0)), js_ast.Expr)]); } @@ -318499,10 +321270,10 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 14; continue; } stmt$1 = $clone(((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]), js_ast.Stmt); _ref$3 = stmt$1.Data; - /* */ if ($assertType(_ref$3, ptrType$37, true)[1]) { $s = 15; continue; } - /* */ if ($assertType(_ref$3, ptrType$35, true)[1]) { $s = 16; continue; } + /* */ if ($assertType(_ref$3, ptrType$42, true)[1]) { $s = 15; continue; } + /* */ if ($assertType(_ref$3, ptrType$40, true)[1]) { $s = 16; continue; } /* */ $s = 17; continue; - /* if ($assertType(_ref$3, ptrType$37, true)[1]) { */ case 15: + /* if ($assertType(_ref$3, ptrType$42, true)[1]) { */ case 15: s = _ref$3.$val; wrapIdentifier = (function(decls, stmtList$1) { return function linkerContext·generateCodeForFileInChunkJS·func1(loc, ref$1) { var loc, ref$1; @@ -318529,7 +321300,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { } js_ast.Stmt.copy(stmt$1, new js_ast.Stmt.ptr(new js_ast.SExpr.ptr($clone(value$1, js_ast.Expr), false), $clone(stmt$1.Loc, logger.Loc))); $s = 17; continue; - /* } else if ($assertType(_ref$3, ptrType$35, true)[1]) { */ case 16: + /* } else if ($assertType(_ref$3, ptrType$40, true)[1]) { */ case 16: s$1 = _ref$3.$val; stmtList$1[0].outsideWrapperPrefix = $append(stmtList$1[0].outsideWrapperPrefix, stmt$1); _i$2++; @@ -318547,9 +321318,9 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { if (!c.options.UnsupportedJSFeatures.Has(new compat.JSFeature(512, 0))) { kind$1 = 1; } - esmArgs = new sliceType$32([$clone(new js_ast.Expr.ptr(new js_ast.EObject.ptr(new sliceType$27([$clone(new js_ast.Property.ptr(ptrType$21.nil, $clone(new js_ast.Expr.ptr(new js_ast.EString.ptr(helpers.StringToUTF16(file.InputFile.Source.PrettyPath), new logger.Loc.ptr(0), false, false, false), new logger.Loc.ptr(0)), js_ast.Expr), $clone(new js_ast.Expr.ptr(new js_ast.EFunction.ptr($clone(new js_ast.Fn.ptr(ptrType$13.nil, sliceType$31.nil, $clone(new js_ast.FnBody.ptr($clone(new js_ast.SBlock.ptr(stmts$1, new logger.Loc.ptr(0)), js_ast.SBlock), new logger.Loc.ptr(0)), js_ast.FnBody), new ast.Ref.ptr(0, 0), new logger.Loc.ptr(0), isAsync, false, false, false, false, false), js_ast.Fn)), new logger.Loc.ptr(0)), js_ast.Expr), new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), sliceType$29.nil, new logger.Loc.ptr(0), new logger.Loc.ptr(0), kind$1, 0), js_ast.Property)]), new logger.Loc.ptr(0), new logger.Loc.ptr(0), false, false), new logger.Loc.ptr(0)), js_ast.Expr)]); + esmArgs = new sliceType$32([$clone(new js_ast.Expr.ptr(new js_ast.EObject.ptr(new sliceType$27([$clone(new js_ast.Property.ptr(ptrType$25.nil, $clone(new js_ast.Expr.ptr(new js_ast.EString.ptr(helpers.StringToUTF16(file.InputFile.Source.PrettyPath), new logger.Loc.ptr(0), false, false, false), new logger.Loc.ptr(0)), js_ast.Expr), $clone(new js_ast.Expr.ptr(new js_ast.EFunction.ptr($clone(new js_ast.Fn.ptr(ptrType$17.nil, sliceType$31.nil, $clone(new js_ast.FnBody.ptr($clone(new js_ast.SBlock.ptr(stmts$1, new logger.Loc.ptr(0)), js_ast.SBlock), new logger.Loc.ptr(0)), js_ast.FnBody), new ast.Ref.ptr(0, 0), new logger.Loc.ptr(0), isAsync, false, false, false, false, false), js_ast.Fn)), new logger.Loc.ptr(0)), js_ast.Expr), new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), sliceType$29.nil, new logger.Loc.ptr(0), new logger.Loc.ptr(0), kind$1, 0), js_ast.Property)]), new logger.Loc.ptr(0), new logger.Loc.ptr(0), false, false), new logger.Loc.ptr(0)), js_ast.Expr)]); } else if (c.options.UnsupportedJSFeatures.Has(new compat.JSFeature(0, 4))) { - esmArgs = new sliceType$32([$clone(new js_ast.Expr.ptr(new js_ast.EFunction.ptr($clone(new js_ast.Fn.ptr(ptrType$13.nil, sliceType$31.nil, $clone(new js_ast.FnBody.ptr($clone(new js_ast.SBlock.ptr(stmts$1, new logger.Loc.ptr(0)), js_ast.SBlock), new logger.Loc.ptr(0)), js_ast.FnBody), new ast.Ref.ptr(0, 0), new logger.Loc.ptr(0), isAsync, false, false, false, false, false), js_ast.Fn)), new logger.Loc.ptr(0)), js_ast.Expr)]); + esmArgs = new sliceType$32([$clone(new js_ast.Expr.ptr(new js_ast.EFunction.ptr($clone(new js_ast.Fn.ptr(ptrType$17.nil, sliceType$31.nil, $clone(new js_ast.FnBody.ptr($clone(new js_ast.SBlock.ptr(stmts$1, new logger.Loc.ptr(0)), js_ast.SBlock), new logger.Loc.ptr(0)), js_ast.FnBody), new ast.Ref.ptr(0, 0), new logger.Loc.ptr(0), isAsync, false, false, false, false, false), js_ast.Fn)), new logger.Loc.ptr(0)), js_ast.Expr)]); } else { esmArgs = new sliceType$32([$clone(new js_ast.Expr.ptr(new js_ast.EArrow.ptr(sliceType$31.nil, $clone(new js_ast.FnBody.ptr($clone(new js_ast.SBlock.ptr(stmts$1, new logger.Loc.ptr(0)), js_ast.SBlock), new logger.Loc.ptr(0)), js_ast.FnBody), isAsync, false, false, false), new logger.Loc.ptr(0)), js_ast.Expr)]); } @@ -318563,7 +321334,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { case 9: /* } */ case 8: addSourceMappings = false; - inputSourceMap = ptrType$42.nil; + inputSourceMap = ptrType$47.nil; lineOffsetTables = sliceType$43.nil; if (new config.Loader(file.InputFile.Loader).CanHaveSourceMap() && !((c.options.SourceMap === 0))) { addSourceMappings = true; @@ -318579,7 +321350,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { tree.Directives = sliceType$11.nil; tree.Parts = new sliceType$44([$clone(new js_ast.Part.ptr(stmts$1, sliceType$25.nil, sliceType$4.nil, sliceType$26.nil, false, false, false, sliceType$17.nil, false, false, false), js_ast.Part)]); _r$1 = js_printer.Print($clone(tree, js_ast.AST), $clone(c.graph.Symbols, ast.SymbolMap), r, $clone(printOptions, js_printer.Options)); /* */ $s = 21; case 21: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - compileResultJS.copy(result, new compileResultJS.ptr($clone(_r$1, js_printer.PrintResult), partRange$1.sourceIndex, new sourcemap.LineColumnOffset.ptr(0, 0))); + compileResultJS.copy((result === ptrType$48.nil && $throwNilPointerError(), result), new compileResultJS.ptr($clone(_r$1, js_printer.PrintResult), partRange$1.sourceIndex, new sourcemap.LineColumnOffset.ptr(0, 0))); /* */ if (file.InputFile.Loader === 8) { $s = 22; continue; } /* */ $s = 23; continue; /* if (file.InputFile.Loader === 8) { */ case 22: @@ -318595,7 +321366,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: result = new compileResultJS.ptr(new js_printer.PrintResult.ptr(sliceType$7.nil, sliceType$11.nil, sliceType$11.nil, new sourcemap.Chunk.ptr(new sourcemap.MappingsBuffer.ptr(sliceType$7.nil, new ast.Index32.ptr(0)), sliceType$45.nil, new sourcemap.SourceMapState.ptr(0, 0, 0, 0, 0, 0, false), 0, false)), 0, new sourcemap.LineColumnOffset.ptr(0, 0)); c = this; - file = (x = c.graph.Files, ((sourceIndex < 0 || sourceIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + sourceIndex])); + file = (x = c.graph.Files, ((sourceIndex < 0 || sourceIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + sourceIndex, ptrType$20))); repr = $assertType(file.InputFile.Repr, ptrType$3); stmts = sliceType$21.nil; _1 = c.options.OutputFormat; @@ -318643,7 +321414,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { if (ok || !js_ast.IsIdentifier(export$1)) { js_ast.Expr.copy(valueOrNil, new js_ast.Expr.ptr(js_ast.ENullShared, new logger.Loc.ptr(0))); } - moduleExports = $append(moduleExports, new js_ast.Property.ptr(ptrType$21.nil, $clone(new js_ast.Expr.ptr(new js_ast.EString.ptr(helpers.StringToUTF16(export$1), new logger.Loc.ptr(0), false, false, false), new logger.Loc.ptr(0)), js_ast.Expr), $clone(valueOrNil, js_ast.Expr), new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), sliceType$29.nil, new logger.Loc.ptr(0), new logger.Loc.ptr(0), 0, 0)); + moduleExports = $append(moduleExports, new js_ast.Property.ptr(ptrType$25.nil, $clone(new js_ast.Expr.ptr(new js_ast.EString.ptr(helpers.StringToUTF16(export$1), new logger.Loc.ptr(0), false, false, false), new logger.Loc.ptr(0)), js_ast.Expr), $clone(valueOrNil, js_ast.Expr), new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), sliceType$29.nil, new logger.Loc.ptr(0), new logger.Loc.ptr(0), 0, 0)); _i++; } _ref$1 = repr.AST.ExportStarImportRecords; @@ -318651,9 +321422,9 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { while (true) { if (!(_i$1 < _ref$1.$length)) { break; } importRecordIndex = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - record = (x$1 = repr.AST.ImportRecords, ((importRecordIndex < 0 || importRecordIndex >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + importRecordIndex])); + record = (x$1 = repr.AST.ImportRecords, ((importRecordIndex < 0 || importRecordIndex >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + importRecordIndex, ptrType$15))); if (!$clone(record.SourceIndex, ast.Index32).IsValid()) { - moduleExports = $append(moduleExports, new js_ast.Property.ptr(ptrType$21.nil, new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), $clone(new js_ast.Expr.ptr(new js_ast.ERequireString.ptr(importRecordIndex, new logger.Loc.ptr(0)), new logger.Loc.ptr(0)), js_ast.Expr), new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), sliceType$29.nil, new logger.Loc.ptr(0), new logger.Loc.ptr(0), 5, 0)); + moduleExports = $append(moduleExports, new js_ast.Property.ptr(ptrType$25.nil, new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), $clone(new js_ast.Expr.ptr(new js_ast.ERequireString.ptr(importRecordIndex, new logger.Loc.ptr(0)), new logger.Loc.ptr(0)), js_ast.Expr), new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), sliceType$29.nil, new logger.Loc.ptr(0), new logger.Loc.ptr(0), 5, 0)); } _i$1++; } @@ -318692,7 +321463,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { ast.Ref.copy(export$2.Ref, importData.Ref); export$2.SourceIndex = importData.SourceIndex; } - if (!($clone(c.graph.Symbols, ast.SymbolMap).Get($clone(export$2.Ref, ast.Ref)).NamespaceAlias === ptrType$12.nil)) { + if (!($clone(c.graph.Symbols, ast.SymbolMap).Get($clone(export$2.Ref, ast.Ref)).NamespaceAlias === ptrType$16.nil)) { tempRef = $clone((x$4 = repr.Meta.CJSExportCopies, ((i < 0 || i >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + i])), ast.Ref); stmts = $append(stmts, new js_ast.Stmt.ptr(new js_ast.SLocal.ptr(new sliceType$30([$clone(new js_ast.Decl.ptr($clone(new js_ast.Binding.ptr(new js_ast.BIdentifier.ptr($clone(tempRef, ast.Ref)), new logger.Loc.ptr(0)), js_ast.Binding), $clone(new js_ast.Expr.ptr(new js_ast.EImportIdentifier.ptr($clone(export$2.Ref, ast.Ref), false, false), new logger.Loc.ptr(0)), js_ast.Expr)), js_ast.Decl)]), 0, false, false), new logger.Loc.ptr(0))); items = $append(items, new js_ast.ClauseItem.ptr(alias, "", new logger.Loc.ptr(0), $clone(new ast.LocRef.ptr(new logger.Loc.ptr(0), $clone(tempRef, ast.Ref)), ast.LocRef))); @@ -318715,7 +321486,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { if (c.options.OutputFormat === 1) { indent = indent + (1) >> 0; } - printOptions = new js_printer.Options.ptr($methodVal(c, "requireOrImportMetaForSource"), false, false, c.mangledProps, ptrType$42.nil, sliceType$43.nil, $clone(toCommonJSRef, ast.Ref), $clone(toESMRef, ast.Ref), new ast.Ref.ptr(0, 0), c.options.UnsupportedJSFeatures, indent, c.options.LineLimit, c.options.OutputFormat, c.options.MinifyWhitespace, c.options.MinifyIdentifiers, c.options.MinifySyntax, c.options.ASCIIOnly, c.options.LegalComments, 0, false, false); + printOptions = new js_printer.Options.ptr($methodVal(c, "requireOrImportMetaForSource"), false, false, c.mangledProps, ptrType$47.nil, sliceType$43.nil, $clone(toCommonJSRef, ast.Ref), $clone(toESMRef, ast.Ref), new ast.Ref.ptr(0, 0), c.options.UnsupportedJSFeatures, indent, c.options.LineLimit, c.options.OutputFormat, c.options.MinifyWhitespace, c.options.MinifyIdentifiers, c.options.MinifySyntax, c.options.ASCIIOnly, c.options.LegalComments, 0, false, false); _r = js_printer.Print($clone(tree, js_ast.AST), $clone(c.graph.Symbols, ast.SymbolMap), r, $clone(printOptions, js_printer.Options)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } js_printer.PrintResult.copy(result.PrintResult, _r); $s = -1; return result; @@ -318795,7 +321566,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { while (true) { if (!(_i$3 < _ref$3.$length)) { break; } sourceIndex$1 = ((_i$3 < 0 || _i$3 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$3]); - new ptrType$43(firstTopLevelSlots).UnionMax($clone($assertType((x$3 = c.graph.Files, ((sourceIndex$1 < 0 || sourceIndex$1 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + sourceIndex$1])).InputFile.Repr, ptrType$3).AST.NestedScopeSlotCounts, ast.SlotCounts)); + new ptrType$49(firstTopLevelSlots).UnionMax($clone($assertType((x$3 = c.graph.Files, ((sourceIndex$1 < 0 || sourceIndex$1 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + sourceIndex$1])).InputFile.Repr, ptrType$3).AST.NestedScopeSlotCounts, ast.SlotCounts)); _i$3++; } r[0] = renamer.NewMinifyRenamer($clone(c.graph.Symbols, ast.SymbolMap), $clone(firstTopLevelSlots, ast.SlotCounts), reservedNames); @@ -318850,7 +321621,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { waitGroup[0].Done(); $s = -1; return; /* */ } return; } var $f = {$blk: linkerContext·renameSymbolsInChunk·func1, $c: true, $r, _i$5, _i$6, _ref$5, _ref$6, declared, part, partIndex, repr$1, topLevelSymbols$1, x$5, $s};return $f; - }; })(minifier, r, stableSourceIndices, topLevelSymbols, waitGroup), [$indexPtr(allTopLevelSymbols.$array, allTopLevelSymbols.$offset + i$1, ptrType$44), repr]); + }; })(minifier, r, stableSourceIndices, topLevelSymbols, waitGroup), [((i$1 < 0 || i$1 >= allTopLevelSymbols.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(allTopLevelSymbols.$array, allTopLevelSymbols.$offset + i$1, ptrType$50)), repr]); _i$4++; $s = 13; continue; case 14: @@ -318872,7 +321643,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { while (true) { if (!(_i$6 < _ref$6.$length)) { break; } stable = $clone(((_i$6 < 0 || _i$6 >= _ref$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$6.$array[_ref$6.$offset + _i$6]), stableRef); - r[0].AccumulateSymbolCount((topLevelSymbols.$ptr || (topLevelSymbols.$ptr = new ptrType$44(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, topLevelSymbols))), $clone(stable.Ref, ast.Ref), 1, stableSourceIndices[0]); + r[0].AccumulateSymbolCount((topLevelSymbols.$ptr || (topLevelSymbols.$ptr = new ptrType$50(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, topLevelSymbols))), $clone(stable.Ref, ast.Ref), 1, stableSourceIndices[0]); _i$6++; } _ref$7 = allTopLevelSymbols; @@ -318931,24 +321702,24 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { /* if (!(_i$11 < _ref$11.$length)) { break; } */ if(!(_i$11 < _ref$11.$length)) { $s = 39; continue; } stmt = $clone(((_i$11 < 0 || _i$11 >= _ref$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$11.$array[_ref$11.$offset + _i$11]), js_ast.Stmt); _ref$12 = stmt.Data; - /* */ if ($assertType(_ref$12, ptrType$31, true)[1]) { $s = 40; continue; } - /* */ if ($assertType(_ref$12, ptrType$32, true)[1]) { $s = 41; continue; } - /* */ if ($assertType(_ref$12, ptrType$33, true)[1]) { $s = 42; continue; } + /* */ if ($assertType(_ref$12, ptrType$36, true)[1]) { $s = 40; continue; } + /* */ if ($assertType(_ref$12, ptrType$37, true)[1]) { $s = 41; continue; } + /* */ if ($assertType(_ref$12, ptrType$38, true)[1]) { $s = 42; continue; } /* */ $s = 43; continue; - /* if ($assertType(_ref$12, ptrType$31, true)[1]) { */ case 40: + /* if ($assertType(_ref$12, ptrType$36, true)[1]) { */ case 40: s = _ref$12.$val; /* */ if (!$clone((x$6 = repr$1.AST.ImportRecords, x$7 = s.ImportRecordIndex, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])).SourceIndex, ast.Index32).IsValid()) { $s = 44; continue; } /* */ $s = 45; continue; /* if (!$clone((x$6 = repr$1.AST.ImportRecords, x$7 = s.ImportRecordIndex, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])).SourceIndex, ast.Index32).IsValid()) { */ case 44: $r = r$1.AddTopLevelSymbol($clone(s.NamespaceRef, ast.Ref)); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!(s.DefaultName === ptrType$13.nil)) { $s = 47; continue; } + /* */ if (!(s.DefaultName === ptrType$17.nil)) { $s = 47; continue; } /* */ $s = 48; continue; - /* if (!(s.DefaultName === ptrType$13.nil)) { */ case 47: + /* if (!(s.DefaultName === ptrType$17.nil)) { */ case 47: $r = r$1.AddTopLevelSymbol($clone(s.DefaultName.Ref, ast.Ref)); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 48: - /* */ if (!(s.Items === ptrType$14.nil)) { $s = 50; continue; } + /* */ if (!(s.Items === ptrType$18.nil)) { $s = 50; continue; } /* */ $s = 51; continue; - /* if (!(s.Items === ptrType$14.nil)) { */ case 50: + /* if (!(s.Items === ptrType$18.nil)) { */ case 50: _ref$13 = s.Items.$get(); _i$12 = 0; /* while (true) { */ case 52: @@ -318961,7 +321732,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { /* } */ case 51: /* } */ case 45: $s = 43; continue; - /* } else if ($assertType(_ref$12, ptrType$32, true)[1]) { */ case 41: + /* } else if ($assertType(_ref$12, ptrType$37, true)[1]) { */ case 41: s$1 = _ref$12.$val; /* */ if (!$clone((x$8 = repr$1.AST.ImportRecords, x$9 = s$1.ImportRecordIndex, ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + x$9])).SourceIndex, ast.Index32).IsValid()) { $s = 55; continue; } /* */ $s = 56; continue; @@ -318969,7 +321740,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { $r = r$1.AddTopLevelSymbol($clone(s$1.NamespaceRef, ast.Ref)); /* */ $s = 57; case 57: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 56: $s = 43; continue; - /* } else if ($assertType(_ref$12, ptrType$33, true)[1]) { */ case 42: + /* } else if ($assertType(_ref$12, ptrType$38, true)[1]) { */ case 42: s$2 = _ref$12.$val; /* */ if (!$clone((x$10 = repr$1.AST.ImportRecords, x$11 = s$2.ImportRecordIndex, ((x$11 < 0 || x$11 >= x$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + x$11])).SourceIndex, ast.Index32).IsValid()) { $s = 58; continue; } /* */ $s = 59; continue; @@ -319053,7 +321824,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { waitGroup = [waitGroup]; c[0] = this; $deferred.push([$methodVal(c[0], "recoverInternalError"), [chunkWaitGroup, 0]]); - chunk[0] = (x = c[0].chunks, ((chunkIndex < 0 || chunkIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + chunkIndex])); + chunk[0] = (x = c[0].chunks, ((chunkIndex < 0 || chunkIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + chunkIndex, ptrType$10))); timer = c[0].timer.Fork(); /* */ if (!(timer === ptrType$1.nil)) { $s = 1; continue; } /* */ $s = 2; continue; @@ -319089,7 +321860,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { /* continue; */ $s = 10; continue; } compileResults = $append(compileResults, new compileResultJS.ptr(new js_printer.PrintResult.ptr(sliceType$7.nil, sliceType$11.nil, sliceType$11.nil, new sourcemap.Chunk.ptr(new sourcemap.MappingsBuffer.ptr(sliceType$7.nil, new ast.Index32.ptr(0)), sliceType$45.nil, new sourcemap.SourceMapState.ptr(0, 0, 0, 0, 0, 0, false), 0, false)), 0, new sourcemap.LineColumnOffset.ptr(0, 0))); - compileResult = (x$2 = compileResults.$length - 1 >> 0, ((x$2 < 0 || x$2 >= compileResults.$length) ? ($throwRuntimeError("index out of range"), undefined) : compileResults.$array[compileResults.$offset + x$2])); + compileResult = (x$2 = compileResults.$length - 1 >> 0, ((x$2 < 0 || x$2 >= compileResults.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(compileResults.$array, compileResults.$offset + x$2, ptrType$48))); waitGroup[0].Add(1); $go($methodVal(c[0], "generateCodeForFileInChunkJS"), [r, waitGroup[0], $clone(partRange$1, partRange), $clone(toCommonJSRef, ast.Ref), $clone(toESMRef, ast.Ref), $clone(runtimeRequireRef, ast.Ref), compileResult, dataForSourceMaps]); _i++; @@ -319102,7 +321873,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { if (c[0].options.OutputFormat === 1) { indent = indent + (1) >> 0; } - printOptions = new js_printer.Options.ptr($throwNilPointerError, false, false, false, ptrType$42.nil, sliceType$43.nil, new ast.Ref.ptr(0, 0), new ast.Ref.ptr(0, 0), new ast.Ref.ptr(0, 0), new compat.JSFeature(0, 0), indent, c[0].options.LineLimit, c[0].options.OutputFormat, c[0].options.MinifyWhitespace, c[0].options.MinifyIdentifiers, c[0].options.MinifySyntax, false, 0, 0, false, c[0].options.NeedsMetafile); + printOptions = new js_printer.Options.ptr($throwNilPointerError, false, false, false, ptrType$47.nil, sliceType$43.nil, new ast.Ref.ptr(0, 0), new ast.Ref.ptr(0, 0), new ast.Ref.ptr(0, 0), new compat.JSFeature(0, 0), indent, c[0].options.LineLimit, c[0].options.OutputFormat, c[0].options.MinifyWhitespace, c[0].options.MinifyIdentifiers, c[0].options.MinifySyntax, false, 0, 0, false, c[0].options.NeedsMetafile); crossChunkImportRecords = $makeSlice(sliceType$36, chunk[0].crossChunkImports.$length); _ref$1 = chunk[0].crossChunkImports; _i$1 = 0; @@ -319110,14 +321881,14 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { if (!(_i$1 < _ref$1.$length)) { break; } i = _i$1; chunkImport$1 = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), chunkImport); - ast.ImportRecord.copy(((i < 0 || i >= crossChunkImportRecords.$length) ? ($throwRuntimeError("index out of range"), undefined) : crossChunkImportRecords.$array[crossChunkImportRecords.$offset + i]), new ast.ImportRecord.ptr(ptrType$28.nil, ptrType$29.nil, $clone(new logger.Path.ptr((x$3 = c[0].chunks, x$4 = chunkImport$1.chunkIndex, ((x$4 < 0 || x$4 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + x$4])).uniqueKey, "", "", new logger.ImportAttributes.ptr(""), 0), logger.Path), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Loc.ptr(0), new ast.Index32.ptr(0), new ast.Index32.ptr(0), 20480, chunkImport$1.importKind)); + ast.ImportRecord.copy(((i < 0 || i >= crossChunkImportRecords.$length) ? ($throwRuntimeError("index out of range"), undefined) : crossChunkImportRecords.$array[crossChunkImportRecords.$offset + i]), new ast.ImportRecord.ptr(ptrType$32.nil, ptrType$33.nil, $clone(new logger.Path.ptr((x$3 = c[0].chunks, x$4 = chunkImport$1.chunkIndex, ((x$4 < 0 || x$4 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + x$4])).uniqueKey, "", "", new logger.ImportAttributes.ptr(""), 0), logger.Path), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Loc.ptr(0), new ast.Index32.ptr(0), new ast.Index32.ptr(0), 20480, chunkImport$1.importKind)); _i$1++; } - _r$5 = js_printer.Print($clone(new js_ast.AST.ptr(new js_ast.ModuleTypeData.ptr(ptrType$45.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0), new sliceType$44([$clone(new js_ast.Part.ptr(chunkRepr$1.crossChunkPrefixStmts, sliceType$25.nil, sliceType$4.nil, sliceType$26.nil, false, false, false, sliceType$17.nil, false, false, false), js_ast.Part)]), sliceType$2.nil, false, ptrType$17.nil, ptrType$5.nil, new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), "", sliceType$11.nil, "", false, false, false, false, false, crossChunkImportRecords, false, false, sliceType$4.nil, new logger.Span.ptr("", new logger.Range.ptr(new logger.Loc.ptr(0), 0)), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new ast.Ref.ptr(0, 0), new ast.Ref.ptr(0, 0), new ast.Ref.ptr(0, 0), 0, arrayType$2.zero(), false, false, false, 0), js_ast.AST), $clone(c[0].graph.Symbols, ast.SymbolMap), r, $clone(printOptions, js_printer.Options)); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$5 = js_printer.Print($clone(new js_ast.AST.ptr(new js_ast.ModuleTypeData.ptr(ptrType$51.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0), new sliceType$44([$clone(new js_ast.Part.ptr(chunkRepr$1.crossChunkPrefixStmts, sliceType$25.nil, sliceType$4.nil, sliceType$26.nil, false, false, false, sliceType$17.nil, false, false, false), js_ast.Part)]), sliceType$2.nil, false, ptrType$22.nil, ptrType$5.nil, new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), "", sliceType$11.nil, "", false, false, false, false, false, crossChunkImportRecords, false, false, sliceType$4.nil, new logger.Span.ptr("", new logger.Range.ptr(new logger.Loc.ptr(0), 0)), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new ast.Ref.ptr(0, 0), new ast.Ref.ptr(0, 0), new ast.Ref.ptr(0, 0), 0, arrayType$2.zero(), false, false, false, 0), js_ast.AST), $clone(c[0].graph.Symbols, ast.SymbolMap), r, $clone(printOptions, js_printer.Options)); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } crossChunkResult = $clone(_r$5, js_printer.PrintResult); crossChunkPrefix = crossChunkResult.JS; jsonMetadataImports = crossChunkResult.JSONMetadataImports; - _r$6 = js_printer.Print($clone(new js_ast.AST.ptr(new js_ast.ModuleTypeData.ptr(ptrType$45.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0), new sliceType$44([$clone(new js_ast.Part.ptr(chunkRepr$1.crossChunkSuffixStmts, sliceType$25.nil, sliceType$4.nil, sliceType$26.nil, false, false, false, sliceType$17.nil, false, false, false), js_ast.Part)]), sliceType$2.nil, false, ptrType$17.nil, ptrType$5.nil, new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), "", sliceType$11.nil, "", false, false, false, false, false, sliceType$36.nil, false, false, sliceType$4.nil, new logger.Span.ptr("", new logger.Range.ptr(new logger.Loc.ptr(0), 0)), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new ast.Ref.ptr(0, 0), new ast.Ref.ptr(0, 0), new ast.Ref.ptr(0, 0), 0, arrayType$2.zero(), false, false, false, 0), js_ast.AST), $clone(c[0].graph.Symbols, ast.SymbolMap), r, $clone(printOptions, js_printer.Options)); /* */ $s = 13; case 13: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$6 = js_printer.Print($clone(new js_ast.AST.ptr(new js_ast.ModuleTypeData.ptr(ptrType$51.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0), new sliceType$44([$clone(new js_ast.Part.ptr(chunkRepr$1.crossChunkSuffixStmts, sliceType$25.nil, sliceType$4.nil, sliceType$26.nil, false, false, false, sliceType$17.nil, false, false, false), js_ast.Part)]), sliceType$2.nil, false, ptrType$22.nil, ptrType$5.nil, new js_ast.Expr.ptr($ifaceNil, new logger.Loc.ptr(0)), "", sliceType$11.nil, "", false, false, false, false, false, sliceType$36.nil, false, false, sliceType$4.nil, new logger.Span.ptr("", new logger.Range.ptr(new logger.Loc.ptr(0), 0)), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new ast.Ref.ptr(0, 0), new ast.Ref.ptr(0, 0), new ast.Ref.ptr(0, 0), 0, arrayType$2.zero(), false, false, false, 0), js_ast.AST), $clone(c[0].graph.Symbols, ast.SymbolMap), r, $clone(printOptions, js_printer.Options)); /* */ $s = 13; case 13: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } crossChunkSuffix = _r$6.JS; entryPointTail = new compileResultJS.ptr(new js_printer.PrintResult.ptr(sliceType$7.nil, sliceType$11.nil, sliceType$11.nil, new sourcemap.Chunk.ptr(new sourcemap.MappingsBuffer.ptr(sliceType$7.nil, new ast.Index32.ptr(0)), sliceType$45.nil, new sourcemap.SourceMapState.ptr(0, 0, 0, 0, 0, 0, false), 0, false)), 0, new sourcemap.LineColumnOffset.ptr(0, 0)); /* */ if (chunk[0].isEntryPoint) { $s = 14; continue; } @@ -319649,7 +322420,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { waitGroup = [waitGroup]; c[0] = this; $deferred.push([$methodVal(c[0], "recoverInternalError"), [chunkWaitGroup, 0]]); - chunk[0] = (x = c[0].chunks, ((chunkIndex < 0 || chunkIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + chunkIndex])); + chunk[0] = (x = c[0].chunks, ((chunkIndex < 0 || chunkIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + chunkIndex, ptrType$10))); timer = c[0].timer.Fork(); /* */ if (!(timer === ptrType$1.nil)) { $s = 1; continue; } /* */ $s = 2; continue; @@ -319693,16 +322464,16 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { css_ast.AST.copy(((i < 0 || i >= asts[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : asts[0].$array[asts[0].$offset + i]), new css_ast.AST.ptr(sliceType$2.nil, ptrType$5.nil, importRecords, rules, new logger.Span.ptr("", new logger.Range.ptr(new logger.Loc.ptr(0), 0)), 0, sliceType$57.nil, false, false, false, sliceType$37.nil, sliceType$37.nil)); $s = 15; continue; /* } else if (_1 === (2)) { */ case 13: - conditions = ptrType$27.nil; + conditions = ptrType$31.nil; /* */ if (entry.conditions.$length > 0) { $s = 16; continue; } /* */ $s = 17; continue; /* if (entry.conditions.$length > 0) { */ case 16: - conditions = (x$2 = entry.conditions, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])); + conditions = (x$2 = entry.conditions, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$2.$array, x$2.$offset + 0, ptrType$31))); i$1 = entry.conditions.$length - 1 >> 0; /* while (true) { */ case 18: /* if (!(i$1 > 0)) { break; } */ if(!(i$1 > 0)) { $s = 19; continue; } - astImport = new css_ast.AST.ptr(sliceType$2.nil, ptrType$5.nil, $append(entry.conditionImportRecords, new ast.ImportRecord.ptr(ptrType$28.nil, ptrType$29.nil, $clone(entry.externalPath, logger.Path), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Loc.ptr(0), new ast.Index32.ptr(0), new ast.Index32.ptr(0), 0, 5)), new sliceType$56([$clone(new css_ast.Rule.ptr(new css_ast.RAtImport.ptr((x$3 = entry.conditions, ((i$1 < 0 || i$1 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + i$1])), ((entry.conditionImportRecords.$length >>> 0))), new logger.Loc.ptr(0)), css_ast.Rule)]), new logger.Span.ptr("", new logger.Range.ptr(new logger.Loc.ptr(0), 0)), 0, sliceType$57.nil, false, false, false, sliceType$37.nil, sliceType$37.nil); - _r$4 = css_printer.Print($clone(astImport, css_ast.AST), $clone(c[0].graph.Symbols, ast.SymbolMap), $clone(new css_printer.Options.ptr(ptrType$42.nil, sliceType$43.nil, false, 0, 0, 0, c[0].options.MinifyWhitespace, c[0].options.ASCIIOnly, 0, false, 0, false), css_printer.Options)); /* */ $s = 20; case 20: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + astImport = new css_ast.AST.ptr(sliceType$2.nil, ptrType$5.nil, $append(entry.conditionImportRecords, new ast.ImportRecord.ptr(ptrType$32.nil, ptrType$33.nil, $clone(entry.externalPath, logger.Path), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Loc.ptr(0), new ast.Index32.ptr(0), new ast.Index32.ptr(0), 0, 5)), new sliceType$56([$clone(new css_ast.Rule.ptr(new css_ast.RAtImport.ptr((x$3 = entry.conditions, ((i$1 < 0 || i$1 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$3.$array, x$3.$offset + i$1, ptrType$31))), ((entry.conditionImportRecords.$length >>> 0))), new logger.Loc.ptr(0)), css_ast.Rule)]), new logger.Span.ptr("", new logger.Range.ptr(new logger.Loc.ptr(0), 0)), 0, sliceType$57.nil, false, false, false, sliceType$37.nil, sliceType$37.nil); + _r$4 = css_printer.Print($clone(astImport, css_ast.AST), $clone(c[0].graph.Symbols, ast.SymbolMap), $clone(new css_printer.Options.ptr(ptrType$47.nil, sliceType$43.nil, false, 0, 0, 0, c[0].options.MinifyWhitespace, c[0].options.ASCIIOnly, 0, false, 0, false), css_printer.Options)); /* */ $s = 20; case 20: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } astResult = $clone(_r$4, css_printer.PrintResult); _r$5 = bytes.TrimSpace(astResult.CSS); /* */ $s = 21; case 21: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _arg = ($bytesToString(_r$5)); @@ -319712,10 +322483,10 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { $s = 18; continue; case 19: /* } */ case 17: - css_ast.AST.copy(((i < 0 || i >= asts[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : asts[0].$array[asts[0].$offset + i]), new css_ast.AST.ptr(sliceType$2.nil, ptrType$5.nil, $append($appendSlice(new sliceType$36([]), entry.conditionImportRecords), new ast.ImportRecord.ptr(ptrType$28.nil, ptrType$29.nil, $clone(entry.externalPath, logger.Path), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Loc.ptr(0), new ast.Index32.ptr(0), new ast.Index32.ptr(0), 0, 5)), new sliceType$56([$clone(new css_ast.Rule.ptr(new css_ast.RAtImport.ptr(conditions, ((entry.conditionImportRecords.$length >>> 0))), new logger.Loc.ptr(0)), css_ast.Rule)]), new logger.Span.ptr("", new logger.Range.ptr(new logger.Loc.ptr(0), 0)), 0, sliceType$57.nil, false, false, false, sliceType$37.nil, sliceType$37.nil)); + css_ast.AST.copy(((i < 0 || i >= asts[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : asts[0].$array[asts[0].$offset + i]), new css_ast.AST.ptr(sliceType$2.nil, ptrType$5.nil, $append($appendSlice(new sliceType$36([]), entry.conditionImportRecords), new ast.ImportRecord.ptr(ptrType$32.nil, ptrType$33.nil, $clone(entry.externalPath, logger.Path), new logger.Range.ptr(new logger.Loc.ptr(0), 0), new logger.Loc.ptr(0), new ast.Index32.ptr(0), new ast.Index32.ptr(0), 0, 5)), new sliceType$56([$clone(new css_ast.Rule.ptr(new css_ast.RAtImport.ptr(conditions, ((entry.conditionImportRecords.$length >>> 0))), new logger.Loc.ptr(0)), css_ast.Rule)]), new logger.Span.ptr("", new logger.Range.ptr(new logger.Loc.ptr(0), 0)), 0, sliceType$57.nil, false, false, false, sliceType$37.nil, sliceType$37.nil)); $s = 15; continue; /* } else if (_1 === (1)) { */ case 14: - file = (x$4 = c[0].graph.Files, x$5 = entry.sourceIndex, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])); + file = (x$4 = c[0].graph.Files, x$5 = entry.sourceIndex, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$4.$array, x$4.$offset + x$5, ptrType$20))); ast$1 = $clone($assertType(file.InputFile.Repr, ptrType$6).AST, css_ast.AST); rules$1 = $makeSlice(sliceType$56, 0, ast$1.Rules.$length); didFindAtImport = false; @@ -319726,13 +322497,13 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { if (!(_i < _ref.$length)) { break; } rule = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), css_ast.Rule); _ref$1 = rule.Data; - if ($assertType(_ref$1, ptrType$46, true)[1]) { + if ($assertType(_ref$1, ptrType$52, true)[1]) { ((i < 0 || i >= compileResults[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : compileResults[0].$array[compileResults[0].$offset + i]).hasCharset = true; _i++; continue; - } else if ($assertType(_ref$1, ptrType$47, true)[1]) { + } else if ($assertType(_ref$1, ptrType$53, true)[1]) { didFindAtLayer = true; - } else if ($assertType(_ref$1, ptrType$26, true)[1]) { + } else if ($assertType(_ref$1, ptrType$30, true)[1]) { if (!didFindAtImport) { didFindAtImport = true; if (didFindAtLayer) { @@ -319742,7 +322513,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { while (true) { if (!(_i$1 < _ref$2.$length)) { break; } rule$1 = $clone(((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]), css_ast.Rule); - _tuple$1 = $assertType(rule$1.Data, ptrType$47, true); + _tuple$1 = $assertType(rule$1.Data, ptrType$53, true); ok = _tuple$1[1]; if (!ok) { css_ast.Rule.copy(((end < 0 || end >= rules$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : rules$1.$array[rules$1.$offset + end]), rule$1); @@ -319788,12 +322559,12 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { $go((function(asts, c, chunk, compileResults, dataForSourceMaps, j, jMeta, pieces, waitGroup) { return function linkerContext·generateChunkCSS·func1(i$3, entry$2, compileResult) { var {_r$8, compileResult, cssOptions, entry$2, file$1, i$3, x$6, x$7, x$8, $s, $deferred, $r, $c} = $restore(this, {i$3, entry$2, compileResult}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - cssOptions = new css_printer.Options.ptr(ptrType$42.nil, sliceType$43.nil, c[0].mangledProps, c[0].options.LineLimit, 0, c[0].options.UnsupportedCSSFeatures, c[0].options.MinifyWhitespace, c[0].options.ASCIIOnly, c[0].options.SourceMap, false, c[0].options.LegalComments, c[0].options.NeedsMetafile); + cssOptions = new css_printer.Options.ptr(ptrType$47.nil, sliceType$43.nil, c[0].mangledProps, c[0].options.LineLimit, 0, c[0].options.UnsupportedCSSFeatures, c[0].options.MinifyWhitespace, c[0].options.ASCIIOnly, c[0].options.SourceMap, false, c[0].options.LegalComments, c[0].options.NeedsMetafile); /* */ if (entry$2.kind === 1) { $s = 1; continue; } /* */ $s = 2; continue; /* if (entry$2.kind === 1) { */ case 1: $deferred.push([$methodVal(c[0], "recoverInternalError"), [waitGroup[0], entry$2.sourceIndex]]); - file$1 = (x$6 = c[0].graph.Files, x$7 = entry$2.sourceIndex, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])); + file$1 = (x$6 = c[0].graph.Files, x$7 = entry$2.sourceIndex, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$6.$array, x$6.$offset + x$7, ptrType$20))); if (new config.Loader(file$1.InputFile.Loader).CanHaveSourceMap() && !((c[0].options.SourceMap === 0))) { cssOptions.AddSourceMappings = true; cssOptions.InputSourceMap = file$1.InputFile.InputSourceMap; @@ -319807,7 +322578,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { waitGroup[0].Done(); $s = -1; return; /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: linkerContext·generateChunkCSS·func1, $c: true, $r, _r$8, compileResult, cssOptions, entry$2, file$1, i$3, x$6, x$7, x$8, $s, $deferred};return $f; } } - }; })(asts, c, chunk, compileResults, dataForSourceMaps, j, jMeta, pieces, waitGroup), [i$2, $clone(entry$1, cssImportOrder), ((i$2 < 0 || i$2 >= compileResults[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : compileResults[0].$array[compileResults[0].$offset + i$2])]); + }; })(asts, c, chunk, compileResults, dataForSourceMaps, j, jMeta, pieces, waitGroup), [i$2, $clone(entry$1, cssImportOrder), ((i$2 < 0 || i$2 >= compileResults[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(compileResults[0].$array, compileResults[0].$offset + i$2, ptrType$54))]); _i$2++; $s = 28; continue; case 29: @@ -319839,7 +322610,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { /* */ if (tree.Rules.$length > 0) { $s = 33; continue; } /* */ $s = 34; continue; /* if (tree.Rules.$length > 0) { */ case 33: - _r$8 = css_printer.Print($clone(tree, css_ast.AST), $clone(c[0].graph.Symbols, ast.SymbolMap), $clone(new css_printer.Options.ptr(ptrType$42.nil, sliceType$43.nil, false, c[0].options.LineLimit, 0, 0, c[0].options.MinifyWhitespace, c[0].options.ASCIIOnly, 0, false, 0, c[0].options.NeedsMetafile), css_printer.Options)); /* */ $s = 35; case 35: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$8 = css_printer.Print($clone(tree, css_ast.AST), $clone(c[0].graph.Symbols, ast.SymbolMap), $clone(new css_printer.Options.ptr(ptrType$47.nil, sliceType$43.nil, false, c[0].options.LineLimit, 0, 0, c[0].options.MinifyWhitespace, c[0].options.ASCIIOnly, 0, false, 0, c[0].options.NeedsMetafile), css_printer.Options)); /* */ $s = 35; case 35: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } result = $clone(_r$8, css_printer.PrintResult); jsonMetadataImports = result.JSONMetadataImports; if (result.CSS.$length > 0) { @@ -319893,7 +322664,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { /* */ if (chunk[0].isEntryPoint) { $s = 38; continue; } /* */ $s = 39; continue; /* if (chunk[0].isEntryPoint) { */ case 38: - file$1 = (x$6 = c[0].graph.Files, x$7 = chunk[0].sourceIndex, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])); + file$1 = (x$6 = c[0].graph.Files, x$7 = chunk[0].sourceIndex, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$6.$array, x$6.$offset + x$7, ptrType$20))); _tuple$3 = $assertType(file$1.InputFile.Repr, ptrType$6, true); ok$1 = _tuple$3[1]; /* */ if (ok$1) { $s = 41; continue; } @@ -320041,7 +322812,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { if (!(_i < _ref.$length)) { break; } t = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), css_ast.Token); if (rules.$length === 0) { - if (t.Children === ptrType$30.nil) { + if (t.Children === ptrType$34.nil) { _i++; continue; } else { @@ -320049,7 +322820,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { } } prelude = sliceType$38.nil; - if (!(t.Children === ptrType$30.nil)) { + if (!(t.Children === ptrType$34.nil)) { prelude = t.Children.$get(); } _tuple = css_ast.CloneTokensWithImportRecords(prelude, conditionImportRecords, sliceType$38.nil, importRecords); @@ -320150,7 +322921,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { index = _tuple$1[0]; ok$1 = _tuple$1[1]; if (ok$1) { - existing = ((index < 0 || index >= thirdPartyComments.$length) ? ($throwRuntimeError("index out of range"), undefined) : thirdPartyComments.$array[thirdPartyComments.$offset + index]); + existing = ((index < 0 || index >= thirdPartyComments.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(thirdPartyComments.$array, thirdPartyComments.$offset + index, ptrType$55)); existing.packagePaths = $appendSlice(existing.packagePaths, entry$1.packagePaths); } else { _key$1 = key; (identical || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$1), { k: _key$1, v: end }); @@ -320282,7 +323053,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { $s = -1; return; } ((chunkIndex < 0 || chunkIndex >= visited.$length) ? ($throwRuntimeError("index out of range"), undefined) : visited.$array[visited.$offset + chunkIndex] = visitedKey); - chunk = (x = c.chunks, ((chunkIndex < 0 || chunkIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + chunkIndex])); + chunk = (x = c.chunks, ((chunkIndex < 0 || chunkIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + chunkIndex, ptrType$10))); _ref = chunk.crossChunkImports; _i = 0; /* while (true) { */ case 1: @@ -320413,7 +323184,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } partRange$1 = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), partRange); filePath = ""; - file = (x = c.graph.Files, x$1 = partRange$1.sourceIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + file = (x = c.graph.Files, x$1 = partRange$1.sourceIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + x$1, ptrType$20))); if (file.InputFile.Source.KeyPath.Namespace === "file") { filePath = file.InputFile.Source.PrettyPath; } else { @@ -320507,14 +323278,14 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 4; continue; } stmt = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), js_ast.Stmt); _ref$2 = stmt.Data; - /* */ if ($assertType(_ref$2, ptrType$31, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref$2, ptrType$37, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref$2, ptrType$35, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref$2, ptrType$36, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref$2, ptrType$34, true)[1] || $assertType(_ref$2, ptrType$38, true)[1] || $assertType(_ref$2, ptrType$32, true)[1]) { $s = 9; continue; } - /* */ if ($assertType(_ref$2, ptrType$33, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref$2, ptrType$36, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref$2, ptrType$42, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref$2, ptrType$40, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref$2, ptrType$41, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref$2, ptrType$39, true)[1] || $assertType(_ref$2, ptrType$43, true)[1] || $assertType(_ref$2, ptrType$37, true)[1]) { $s = 9; continue; } + /* */ if ($assertType(_ref$2, ptrType$38, true)[1]) { $s = 10; continue; } /* */ $s = 11; continue; - /* if ($assertType(_ref$2, ptrType$31, true)[1]) { */ case 5: + /* if ($assertType(_ref$2, ptrType$36, true)[1]) { */ case 5: s = _ref$2.$val; if ($clone((x$1 = repr.AST.ImportRecords, x$2 = s.ImportRecordIndex, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])).SourceIndex, ast.Index32).IsValid()) { _i$1++; @@ -320522,7 +323293,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { } hasImportOrExport = true; $s = 11; continue; - /* } else if ($assertType(_ref$2, ptrType$37, true)[1]) { */ case 6: + /* } else if ($assertType(_ref$2, ptrType$42, true)[1]) { */ case 6: s$1 = _ref$2.$val; /* */ if (s$1.IsExport) { $s = 12; continue; } /* */ $s = 13; continue; @@ -320535,25 +323306,25 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { hasImportOrExport = true; /* } */ case 13: $s = 11; continue; - /* } else if ($assertType(_ref$2, ptrType$35, true)[1]) { */ case 7: + /* } else if ($assertType(_ref$2, ptrType$40, true)[1]) { */ case 7: s$2 = _ref$2.$val; if (s$2.IsExport) { $clone(c[0].graph.Symbols, ast.SymbolMap).Get($clone(s$2.Fn.Name.Ref, ast.Ref)).Kind = 0; hasImportOrExport = true; } $s = 11; continue; - /* } else if ($assertType(_ref$2, ptrType$36, true)[1]) { */ case 8: + /* } else if ($assertType(_ref$2, ptrType$41, true)[1]) { */ case 8: s$3 = _ref$2.$val; if (s$3.IsExport) { $clone(c[0].graph.Symbols, ast.SymbolMap).Get($clone(s$3.Class.Name.Ref, ast.Ref)).Kind = 0; hasImportOrExport = true; } $s = 11; continue; - /* } else if ($assertType(_ref$2, ptrType$34, true)[1] || $assertType(_ref$2, ptrType$38, true)[1] || $assertType(_ref$2, ptrType$32, true)[1]) { */ case 9: + /* } else if ($assertType(_ref$2, ptrType$39, true)[1] || $assertType(_ref$2, ptrType$43, true)[1] || $assertType(_ref$2, ptrType$37, true)[1]) { */ case 9: s$4 = _ref$2; hasImportOrExport = true; $s = 11; continue; - /* } else if ($assertType(_ref$2, ptrType$33, true)[1]) { */ case 10: + /* } else if ($assertType(_ref$2, ptrType$38, true)[1]) { */ case 10: s$5 = _ref$2.$val; hasImportOrExport = true; /* } */ case 11: @@ -320612,10 +323383,10 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { /* continue; */ $s = 1; continue; } _key = result.sourceIndex; (sourceIndexToSourcesIndex || $throwRuntimeError("assignment to entry in nil map")).set($Uint32.keyFor(_key), { k: _key, v: nextSourcesIndex }); - file = (x = c.graph.Files, x$1 = result.sourceIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); - /* */ if (file.InputFile.InputSourceMap === ptrType$42.nil) { $s = 3; continue; } + file = (x = c.graph.Files, x$1 = result.sourceIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + x$1, ptrType$20))); + /* */ if (file.InputFile.InputSourceMap === ptrType$47.nil) { $s = 3; continue; } /* */ $s = 4; continue; - /* if (file.InputFile.InputSourceMap === ptrType$42.nil) { */ case 3: + /* if (file.InputFile.InputSourceMap === ptrType$47.nil) { */ case 3: quotedContents = sliceType$7.nil; if (!c.options.ExcludeSourcesContent) { quotedContents = (x$2 = (x$3 = result.sourceIndex, ((x$3 < 0 || x$3 >= dataForSourceMaps.$length) ? ($throwRuntimeError("index out of range"), undefined) : dataForSourceMaps.$array[dataForSourceMaps.$offset + x$3])).QuotedContents, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])); @@ -320683,7 +323454,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { relPath = _tuple$2[0]; ok$1 = _tuple$2[1]; if (ok$1) { - relativeURL = new url.URL.ptr("", "", ptrType$11.nil, "", strings.ReplaceAll(relPath, "\\", "/"), "", false, false, "", "", ""); + relativeURL = new url.URL.ptr("", "", ptrType$12.nil, "", strings.ReplaceAll(relPath, "\\", "/"), "", false, false, "", "", ""); item$1.source = relativeURL.String(); item$1.source = strings.ReplaceAll(item$1.source, "%20", " "); } @@ -320821,7 +323592,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { _arg$1 = $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range); _arg$2 = text; _r$2 = helpers.PrettyPrintedStack(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _arg$3 = new sliceType$22([$clone(new logger.MsgData.ptr($ifaceNil, ptrType$16.nil, _r$2, false), logger.MsgData)]); + _arg$3 = new sliceType$22([$clone(new logger.MsgData.ptr($ifaceNil, ptrType$21.nil, _r$2, false), logger.MsgData)]); $r = $clone(c.log, logger.Log).AddErrorWithNotes(_arg, _arg$1, _arg$2, _arg$3); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } waitGroup.Done(); /* } */ case 2: @@ -320863,9 +323634,9 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { if (true) { $s = -1; return ""; } - file = (x = c[0].graph.Files, ((sourceIndex < 0 || sourceIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + sourceIndex])); + file = (x = c[0].graph.Files, ((sourceIndex < 0 || sourceIndex >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + sourceIndex, ptrType$20))); repr = $assertType(file.InputFile.Repr, ptrType$3); - sb = new strings.Builder.ptr(ptrType$48.nil, sliceType$7.nil); + sb = new strings.Builder.ptr(ptrType$56.nil, sliceType$7.nil); isFirstPartWithStmts = true; quoteSym = (function(c) { return function linkerContext·generateExtraDataForFileJS·func1(ref) { var {_r, name, ref, $s, $r, $c} = $restore(this, {ref}); @@ -321034,7 +323805,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { } return i; }; - ptrType$56.methods = [{prop: "mangleProps", name: "mangleProps", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([mapType], [], false)}, {prop: "mangleLocalCSS", name: "mangleLocalCSS", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([mapType$1], [], false)}, {prop: "enforceNoCyclicChunkImports", name: "enforceNoCyclicChunkImports", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([], [], false)}, {prop: "generateChunksInParallel", name: "generateChunksInParallel", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([sliceType$8], [sliceType$8], false)}, {prop: "substituteFinalPaths", name: "substituteFinalPaths", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([intermediateOutput, funcType], [helpers.Joiner, sliceType$14], false)}, {prop: "accurateFinalByteCount", name: "accurateFinalByteCount", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([intermediateOutput, $String], [$Int], false)}, {prop: "pathBetweenChunks", name: "pathBetweenChunks", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([$String, $String], [$String], false)}, {prop: "computeCrossChunkDependencies", name: "computeCrossChunkDependencies", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([], [], false)}, {prop: "sortedCrossChunkImports", name: "sortedCrossChunkImports", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([mapType$2], [crossChunkImportArray], false)}, {prop: "sortedCrossChunkExportItems", name: "sortedCrossChunkExportItems", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([mapType$3], [stableRefArray], false)}, {prop: "scanImportsAndExports", name: "scanImportsAndExports", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([], [], false)}, {prop: "validateComposesFromProperties", name: "validateComposesFromProperties", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([ptrType$19, ptrType$6], [], false)}, {prop: "generateCodeForLazyExport", name: "generateCodeForLazyExport", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([$Uint32], [], false)}, {prop: "createExportsForFile", name: "createExportsForFile", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([$Uint32], [], false)}, {prop: "createWrapperForFile", name: "createWrapperForFile", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([$Uint32], [], false)}, {prop: "matchImportsWithExportsForFile", name: "matchImportsWithExportsForFile", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([$Uint32], [], false)}, {prop: "matchImportWithExport", name: "matchImportWithExport", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([importTracker, sliceType$17], [matchImportResult, sliceType$17], false)}, {prop: "maybeForbidArbitraryModuleNamespaceIdentifier", name: "maybeForbidArbitraryModuleNamespaceIdentifier", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([$String, $Uint32, logger.Loc, $String], [], false)}, {prop: "maybeCorrectObviousTypo", name: "maybeCorrectObviousTypo", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([ptrType$3, $String, ptrType$49], [], false)}, {prop: "recursivelyWrapDependencies", name: "recursivelyWrapDependencies", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([$Uint32], [], false)}, {prop: "hasDynamicExportsDueToExportStar", name: "hasDynamicExportsDueToExportStar", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([$Uint32, mapType$4], [$Bool], false)}, {prop: "addExportsForExportStar", name: "addExportsForExportStar", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([mapType$5, $Uint32, sliceType$4], [], false)}, {prop: "advanceImportTracker", name: "advanceImportTracker", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([importTracker], [importTracker, importStatus, sliceType$18], false)}, {prop: "treeShakingAndCodeSplitting", name: "treeShakingAndCodeSplitting", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([], [], false)}, {prop: "markFileReachableForCodeSplitting", name: "markFileReachableForCodeSplitting", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([$Uint32, $Uint, $Uint32], [], false)}, {prop: "markFileLiveForTreeShaking", name: "markFileLiveForTreeShaking", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([$Uint32], [], false)}, {prop: "isExternalDynamicImport", name: "isExternalDynamicImport", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([ptrType$50, $Uint32], [$Bool], false)}, {prop: "markPartLiveForTreeShaking", name: "markPartLiveForTreeShaking", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([$Uint32, $Uint32], [], false)}, {prop: "findImportedCSSFilesInJSOrder", name: "findImportedCSSFilesInJSOrder", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([$Uint32], [sliceType$4], false)}, {prop: "findImportedFilesInCSSOrder", name: "findImportedFilesInCSSOrder", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([sliceType$4], [sliceType$34], false)}, {prop: "computeChunks", name: "computeChunks", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([], [], false)}, {prop: "shouldIncludePart", name: "shouldIncludePart", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([ptrType$3, js_ast.Part], [$Bool], false)}, {prop: "findImportedPartsInJSOrder", name: "findImportedPartsInJSOrder", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([ptrType$51], [sliceType$4, sliceType$42], false)}, {prop: "shouldRemoveImportExportStmt", name: "shouldRemoveImportExportStmt", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([$Uint32, ptrType$52, logger.Loc, ast.Ref, $Uint32], [$Bool], false)}, {prop: "convertStmtsForChunk", name: "convertStmtsForChunk", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([$Uint32, ptrType$52, sliceType$21], [], false)}, {prop: "requireOrImportMetaForSource", name: "requireOrImportMetaForSource", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([$Uint32], [js_printer.RequireOrImportMeta], false)}, {prop: "generateCodeForFileInChunkJS", name: "generateCodeForFileInChunkJS", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([renamer.Renamer, ptrType$53, partRange, ast.Ref, ast.Ref, ast.Ref, ptrType$54, sliceType$60], [], false)}, {prop: "generateEntryPointTailJS", name: "generateEntryPointTailJS", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([renamer.Renamer, ast.Ref, ast.Ref, $Uint32], [compileResultJS], false)}, {prop: "renameSymbolsInChunk", name: "renameSymbolsInChunk", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([ptrType$51, sliceType$4, ptrType$1], [renamer.Renamer], false)}, {prop: "generateChunkJS", name: "generateChunkJS", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([$Int, ptrType$53], [], false)}, {prop: "generateGlobalNamePrefix", name: "generateGlobalNamePrefix", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([], [$String], false)}, {prop: "generateChunkCSS", name: "generateChunkCSS", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([$Int, ptrType$53], [], false)}, {prop: "maybeAppendLegalComments", name: "maybeAppendLegalComments", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([config.LegalComments, sliceType$50, ptrType$51, ptrType$55, $String], [], false)}, {prop: "appendIsolatedHashesForImportedChunks", name: "appendIsolatedHashesForImportedChunks", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([hash.Hash, $Uint32, sliceType$4, $Uint32], [], false)}, {prop: "breakJoinerIntoPieces", name: "breakJoinerIntoPieces", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([helpers.Joiner], [intermediateOutput], false)}, {prop: "breakOutputIntoPieces", name: "breakOutputIntoPieces", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([sliceType$7], [intermediateOutput], false)}, {prop: "generateIsolatedHashInParallel", name: "generateIsolatedHashInParallel", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([ptrType$51], [], false)}, {prop: "generateIsolatedHash", name: "generateIsolatedHash", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([ptrType$51, chanType], [], false)}, {prop: "preventExportsFromBeingRenamed", name: "preventExportsFromBeingRenamed", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([$Uint32], [], false)}, {prop: "generateSourceMapForChunk", name: "generateSourceMapForChunk", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([sliceType$49, $String, sliceType$60, $Bool], [sourcemap.SourceMapPieces], false)}, {prop: "recoverInternalError", name: "recoverInternalError", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([ptrType$53, $Uint32], [], false)}, {prop: "generateExtraDataForFileJS", name: "generateExtraDataForFileJS", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([$Uint32], [$String], false)}]; + ptrType$61.methods = [{prop: "mangleProps", name: "mangleProps", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([mapType], [], false)}, {prop: "mangleLocalCSS", name: "mangleLocalCSS", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([mapType$1], [], false)}, {prop: "enforceNoCyclicChunkImports", name: "enforceNoCyclicChunkImports", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([], [], false)}, {prop: "generateChunksInParallel", name: "generateChunksInParallel", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([sliceType$8], [sliceType$8], false)}, {prop: "substituteFinalPaths", name: "substituteFinalPaths", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([intermediateOutput, funcType], [helpers.Joiner, sliceType$14], false)}, {prop: "accurateFinalByteCount", name: "accurateFinalByteCount", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([intermediateOutput, $String], [$Int], false)}, {prop: "pathBetweenChunks", name: "pathBetweenChunks", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([$String, $String], [$String], false)}, {prop: "computeCrossChunkDependencies", name: "computeCrossChunkDependencies", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([], [], false)}, {prop: "sortedCrossChunkImports", name: "sortedCrossChunkImports", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([mapType$2], [crossChunkImportArray], false)}, {prop: "sortedCrossChunkExportItems", name: "sortedCrossChunkExportItems", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([mapType$3], [stableRefArray], false)}, {prop: "scanImportsAndExports", name: "scanImportsAndExports", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([], [], false)}, {prop: "validateComposesFromProperties", name: "validateComposesFromProperties", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([ptrType$20, ptrType$6], [], false)}, {prop: "generateCodeForLazyExport", name: "generateCodeForLazyExport", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([$Uint32], [], false)}, {prop: "createExportsForFile", name: "createExportsForFile", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([$Uint32], [], false)}, {prop: "createWrapperForFile", name: "createWrapperForFile", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([$Uint32], [], false)}, {prop: "matchImportsWithExportsForFile", name: "matchImportsWithExportsForFile", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([$Uint32], [], false)}, {prop: "matchImportWithExport", name: "matchImportWithExport", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([importTracker, sliceType$17], [matchImportResult, sliceType$17], false)}, {prop: "maybeForbidArbitraryModuleNamespaceIdentifier", name: "maybeForbidArbitraryModuleNamespaceIdentifier", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([$String, $Uint32, logger.Loc, $String], [], false)}, {prop: "maybeCorrectObviousTypo", name: "maybeCorrectObviousTypo", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([ptrType$3, $String, ptrType$57], [], false)}, {prop: "recursivelyWrapDependencies", name: "recursivelyWrapDependencies", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([$Uint32], [], false)}, {prop: "hasDynamicExportsDueToExportStar", name: "hasDynamicExportsDueToExportStar", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([$Uint32, mapType$4], [$Bool], false)}, {prop: "addExportsForExportStar", name: "addExportsForExportStar", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([mapType$5, $Uint32, sliceType$4], [], false)}, {prop: "advanceImportTracker", name: "advanceImportTracker", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([importTracker], [importTracker, importStatus, sliceType$18], false)}, {prop: "treeShakingAndCodeSplitting", name: "treeShakingAndCodeSplitting", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([], [], false)}, {prop: "markFileReachableForCodeSplitting", name: "markFileReachableForCodeSplitting", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([$Uint32, $Uint, $Uint32], [], false)}, {prop: "markFileLiveForTreeShaking", name: "markFileLiveForTreeShaking", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([$Uint32], [], false)}, {prop: "isExternalDynamicImport", name: "isExternalDynamicImport", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([ptrType$15, $Uint32], [$Bool], false)}, {prop: "markPartLiveForTreeShaking", name: "markPartLiveForTreeShaking", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([$Uint32, $Uint32], [], false)}, {prop: "findImportedCSSFilesInJSOrder", name: "findImportedCSSFilesInJSOrder", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([$Uint32], [sliceType$4], false)}, {prop: "findImportedFilesInCSSOrder", name: "findImportedFilesInCSSOrder", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([sliceType$4], [sliceType$34], false)}, {prop: "computeChunks", name: "computeChunks", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([], [], false)}, {prop: "shouldIncludePart", name: "shouldIncludePart", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([ptrType$3, js_ast.Part], [$Bool], false)}, {prop: "findImportedPartsInJSOrder", name: "findImportedPartsInJSOrder", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([ptrType$10], [sliceType$4, sliceType$42], false)}, {prop: "shouldRemoveImportExportStmt", name: "shouldRemoveImportExportStmt", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([$Uint32, ptrType$58, logger.Loc, ast.Ref, $Uint32], [$Bool], false)}, {prop: "convertStmtsForChunk", name: "convertStmtsForChunk", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([$Uint32, ptrType$58, sliceType$21], [], false)}, {prop: "requireOrImportMetaForSource", name: "requireOrImportMetaForSource", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([$Uint32], [js_printer.RequireOrImportMeta], false)}, {prop: "generateCodeForFileInChunkJS", name: "generateCodeForFileInChunkJS", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([renamer.Renamer, ptrType$59, partRange, ast.Ref, ast.Ref, ast.Ref, ptrType$48, sliceType$60], [], false)}, {prop: "generateEntryPointTailJS", name: "generateEntryPointTailJS", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([renamer.Renamer, ast.Ref, ast.Ref, $Uint32], [compileResultJS], false)}, {prop: "renameSymbolsInChunk", name: "renameSymbolsInChunk", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([ptrType$10, sliceType$4, ptrType$1], [renamer.Renamer], false)}, {prop: "generateChunkJS", name: "generateChunkJS", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([$Int, ptrType$59], [], false)}, {prop: "generateGlobalNamePrefix", name: "generateGlobalNamePrefix", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([], [$String], false)}, {prop: "generateChunkCSS", name: "generateChunkCSS", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([$Int, ptrType$59], [], false)}, {prop: "maybeAppendLegalComments", name: "maybeAppendLegalComments", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([config.LegalComments, sliceType$50, ptrType$10, ptrType$60, $String], [], false)}, {prop: "appendIsolatedHashesForImportedChunks", name: "appendIsolatedHashesForImportedChunks", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([hash.Hash, $Uint32, sliceType$4, $Uint32], [], false)}, {prop: "breakJoinerIntoPieces", name: "breakJoinerIntoPieces", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([helpers.Joiner], [intermediateOutput], false)}, {prop: "breakOutputIntoPieces", name: "breakOutputIntoPieces", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([sliceType$7], [intermediateOutput], false)}, {prop: "generateIsolatedHashInParallel", name: "generateIsolatedHashInParallel", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([ptrType$10], [], false)}, {prop: "generateIsolatedHash", name: "generateIsolatedHash", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([ptrType$10, chanType], [], false)}, {prop: "preventExportsFromBeingRenamed", name: "preventExportsFromBeingRenamed", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([$Uint32], [], false)}, {prop: "generateSourceMapForChunk", name: "generateSourceMapForChunk", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([sliceType$49, $String, sliceType$60, $Bool], [sourcemap.SourceMapPieces], false)}, {prop: "recoverInternalError", name: "recoverInternalError", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([ptrType$59, $Uint32], [], false)}, {prop: "generateExtraDataForFileJS", name: "generateExtraDataForFileJS", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([$Uint32], [$String], false)}]; ptrType$8.methods = [{prop: "isChunk", name: "isChunk", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([], [], false)}]; ptrType$9.methods = [{prop: "isChunk", name: "isChunk", pkg: "github.com/evanw/esbuild/internal/linker", typ: $funcType([], [], false)}]; crossChunkImportArray.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}]; @@ -321067,7 +323838,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { legalCommentEntry.init("github.com/evanw/esbuild/internal/linker", [{prop: "sourceIndex", name: "sourceIndex", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "comments", name: "comments", embedded: false, exported: false, typ: sliceType$11, tag: ""}]); compileResultForSourceMap.init("github.com/evanw/esbuild/internal/linker", [{prop: "sourceMapChunk", name: "sourceMapChunk", embedded: false, exported: false, typ: sourcemap.Chunk, tag: ""}, {prop: "generatedOffset", name: "generatedOffset", embedded: false, exported: false, typ: sourcemap.LineColumnOffset, tag: ""}, {prop: "sourceIndex", name: "sourceIndex", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "isNullEntry", name: "isNullEntry", embedded: false, exported: false, typ: $Bool, tag: ""}]); chunkMeta.init("github.com/evanw/esbuild/internal/linker", [{prop: "imports", name: "imports", embedded: false, exported: false, typ: mapType$3, tag: ""}, {prop: "exports", name: "exports", embedded: false, exported: false, typ: mapType$3, tag: ""}, {prop: "dynamicImports", name: "dynamicImports", embedded: false, exported: false, typ: mapType$7, tag: ""}]); - propertyInFile.init("github.com/evanw/esbuild/internal/linker", [{prop: "file", name: "file", embedded: false, exported: false, typ: ptrType$19, tag: ""}, {prop: "loc", name: "loc", embedded: false, exported: false, typ: logger.Loc, tag: ""}]); + propertyInFile.init("github.com/evanw/esbuild/internal/linker", [{prop: "file", name: "file", embedded: false, exported: false, typ: ptrType$20, tag: ""}, {prop: "loc", name: "loc", embedded: false, exported: false, typ: logger.Loc, tag: ""}]); duplicateEntry.init("github.com/evanw/esbuild/internal/linker", [{prop: "layers", name: "layers", embedded: false, exported: false, typ: sliceType$37, tag: ""}, {prop: "indices", name: "indices", embedded: false, exported: false, typ: sliceType$19, tag: ""}]); thirdPartyEntry.init("github.com/evanw/esbuild/internal/linker", [{prop: "packagePaths", name: "packagePaths", embedded: false, exported: false, typ: sliceType$11, tag: ""}, {prop: "comments", name: "comments", embedded: false, exported: false, typ: sliceType$11, tag: ""}]); item.init("github.com/evanw/esbuild/internal/linker", [{prop: "source", name: "source", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "quotedContents", name: "quotedContents", embedded: false, exported: false, typ: sliceType$7, tag: ""}]); @@ -321112,7 +323883,7 @@ $packages["github.com/evanw/esbuild/internal/linker"] = (function() { return $pkg; })(); $packages["github.com/evanw/esbuild/pkg/api"] = (function() { - var $pkg = {}, $init, bytes, base64, binary, errors, fmt, api_helpers, ast, bundler, cache, compat, config, css_ast, fs, graph, helpers, js_ast, js_parser, linker, logger, resolver, xxhash, ioutil, math, rand, net, http, os, path, regexp, sort, strconv, strings, sync, atomic, syscall, time, utf8, EngineName, SourceMap, SourcesContent, LegalComments, JSX, Target, Loader, Platform, Format, Engine, Location, Message, Note, StderrColor, LogLevel, Charset, TreeShaking, Drop, MangleQuoted, TransformOptions, TransformResult, sliceType, sliceType$1, ptrType$1, sliceType$3, sliceType$5, sliceType$8, sliceType$9, ptrType$7, sliceType$10, ptrType$8, ptrType$9, sliceType$11, arrayType, sliceType$12, ptrType$10, sliceType$13, sliceType$14, ptrType$11, sliceType$15, sliceType$17, ptrType$14, ptrType$15, ptrType$16, ptrType$17, sliceType$18, sliceType$19, ptrType$18, ptrType$24, sliceType$21, sliceType$22, mapType, mapType$1, mapType$2, sliceType$29, mapType$3, versionRegex, _r, convertEngineName, validatePlatform, validateFormat, validateSourceMap, validateLegalComments, validateColor, validateLogLevel, validateASCIIOnly, validateTreeShaking, validateLoader, validateFeatures, validateSupported, validateGlobalName, validateRegex, validateJSXExpr, mapKeyForDefine, validateDefines, validateLogOverrides, validateKeepNames, convertLocationToPublic, convertMessagesToPublic, cloneMangleCache, transformImpl, Transform; + var $pkg = {}, $init, bytes, base64, binary, errors, fmt, api_helpers, ast, bundler, cache, compat, config, css_ast, fs, graph, helpers, js_ast, js_parser, linker, logger, resolver, xxhash, ioutil, math, rand, net, http, os, path, regexp, sort, strconv, strings, sync, atomic, syscall, time, utf8, EngineName, SourceMap, SourcesContent, LegalComments, JSX, Target, Loader, Platform, Format, Engine, Location, Message, Note, StderrColor, LogLevel, Charset, TreeShaking, Drop, MangleQuoted, TransformOptions, TransformResult, sliceType, sliceType$1, ptrType$2, sliceType$3, sliceType$5, sliceType$8, sliceType$9, ptrType$8, sliceType$10, ptrType$9, ptrType$10, sliceType$11, arrayType, sliceType$12, ptrType$11, sliceType$13, sliceType$14, ptrType$12, sliceType$15, sliceType$17, ptrType$15, ptrType$16, ptrType$17, ptrType$18, sliceType$18, sliceType$19, ptrType$19, ptrType$24, sliceType$21, sliceType$22, mapType, mapType$1, mapType$2, sliceType$29, mapType$3, versionRegex, _r, convertEngineName, validatePlatform, validateFormat, validateSourceMap, validateLegalComments, validateColor, validateLogLevel, validateASCIIOnly, validateTreeShaking, validateLoader, validateFeatures, validateSupported, validateGlobalName, validateRegex, validateJSXExpr, mapKeyForDefine, validateDefines, validateLogOverrides, validateKeepNames, convertLocationToPublic, convertMessagesToPublic, cloneMangleCache, transformImpl, Transform; bytes = $packages["bytes"]; base64 = $packages["encoding/base64"]; binary = $packages["encoding/binary"]; @@ -321195,7 +323966,7 @@ $packages["github.com/evanw/esbuild/pkg/api"] = (function() { this.ID = ""; this.PluginName = ""; this.Text = ""; - this.Location = ptrType$11.nil; + this.Location = ptrType$12.nil; this.Notes = sliceType$15.nil; this.Detail = $ifaceNil; return; @@ -321211,7 +323982,7 @@ $packages["github.com/evanw/esbuild/pkg/api"] = (function() { this.$val = this; if (arguments.length === 0) { this.Text = ""; - this.Location = ptrType$11.nil; + this.Location = ptrType$12.nil; return; } this.Text = Text_; @@ -321353,31 +324124,31 @@ $packages["github.com/evanw/esbuild/pkg/api"] = (function() { $pkg.$finishSetup = function() { sliceType = $sliceType($Uint8); sliceType$1 = $sliceType($emptyInterface); - ptrType$1 = $ptrType(strings.Builder); + ptrType$2 = $ptrType(strings.Builder); sliceType$3 = $sliceType($String); sliceType$5 = $sliceType(Message); sliceType$8 = $sliceType(config.PathTemplate); sliceType$9 = $sliceType($Int); - ptrType$7 = $ptrType(logger.LineColumnTracker); + ptrType$8 = $ptrType(logger.LineColumnTracker); sliceType$10 = $sliceType(logger.MsgData); - ptrType$8 = $ptrType(logger.MsgLocation); - ptrType$9 = $ptrType(regexp.Regexp); + ptrType$9 = $ptrType(logger.MsgLocation); + ptrType$10 = $ptrType(regexp.Regexp); sliceType$11 = $sliceType(config.WildcardPattern); arrayType = $arrayType($Uint8, 4); sliceType$12 = $sliceType(config.InjectedDefine); - ptrType$10 = $ptrType(config.DefineExpr); + ptrType$11 = $ptrType(config.DefineExpr); sliceType$13 = $sliceType($Uint16); sliceType$14 = $sliceType(config.DefineData); - ptrType$11 = $ptrType(Location); + ptrType$12 = $ptrType(Location); sliceType$15 = $sliceType(Note); sliceType$17 = $sliceType(bundler.EntryPoint); - ptrType$14 = $ptrType(logger.Source); - ptrType$15 = $ptrType(config.ProcessedDefines); - ptrType$16 = $ptrType(config.TSAlwaysStrict); - ptrType$17 = $ptrType(config.CancelFlag); + ptrType$15 = $ptrType(logger.Source); + ptrType$16 = $ptrType(config.ProcessedDefines); + ptrType$17 = $ptrType(config.TSAlwaysStrict); + ptrType$18 = $ptrType(config.CancelFlag); sliceType$18 = $sliceType(config.InjectedFile); sliceType$19 = $sliceType(config.Plugin); - ptrType$18 = $ptrType(config.StdinInfo); + ptrType$19 = $ptrType(config.StdinInfo); ptrType$24 = $ptrType(helpers.Timer); sliceType$21 = $sliceType(helpers.timerData); sliceType$22 = $sliceType(graph.OutputFile); @@ -321646,11 +324417,11 @@ $packages["github.com/evanw/esbuild/pkg/api"] = (function() { } } text = "All version numbers passed to esbuild must be in the format \"X\", \"X.Y\", or \"X.Y.Z\" where X, Y, and Z are non-negative integers."; - _arg = ptrType$7.nil; + _arg = ptrType$8.nil; _arg$1 = $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range); _r$2 = fmt.Sprintf("Invalid version: %q", new sliceType$1([new $String(engine.Version)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _arg$2 = _r$2; - _arg$3 = new sliceType$10([$clone(new logger.MsgData.ptr($ifaceNil, ptrType$8.nil, text, false), logger.MsgData)]); + _arg$3 = new sliceType$10([$clone(new logger.MsgData.ptr($ifaceNil, ptrType$9.nil, text, false), logger.MsgData)]); $r = $clone(log, logger.Log).AddErrorWithNotes(_arg, _arg$1, _arg$2, _arg$3); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _i++; $s = 1; continue; @@ -321726,7 +324497,7 @@ $packages["github.com/evanw/esbuild/pkg/api"] = (function() { } $s = 8; continue; /* } else { */ case 7: - _arg = ptrType$7.nil; + _arg = ptrType$8.nil; _arg$1 = $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range); _r$1 = fmt.Sprintf("%q is not a valid feature name for the \"supported\" setting", new sliceType$1([new $String(k)])); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _arg$2 = _r$1; @@ -321761,7 +324532,7 @@ $packages["github.com/evanw/esbuild/pkg/api"] = (function() { var {_arg, _arg$1, _arg$2, _r$1, _r$2, _tuple, err, log, regex, value, what, $s, $r, $c} = $restore(this, {log, what, value}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if (value === "") { - $s = -1; return ptrType$9.nil; + $s = -1; return ptrType$10.nil; } _r$1 = regexp.Compile(value); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple = _r$1; @@ -321770,12 +324541,12 @@ $packages["github.com/evanw/esbuild/pkg/api"] = (function() { /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; } /* */ $s = 3; continue; /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2: - _arg = ptrType$7.nil; + _arg = ptrType$8.nil; _arg$1 = $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range); _r$2 = fmt.Sprintf("The %q setting is not a valid Go regular expression: %s", new sliceType$1([new $String(what), new $String(value)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _arg$2 = _r$2; $r = $clone(log, logger.Log).AddError(_arg, _arg$1, _arg$2); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return ptrType$9.nil; + $s = -1; return ptrType$10.nil; /* } */ case 3: $s = -1; return regex; /* */ } return; } var $f = {$blk: validateRegex$1, $c: true, $r, _arg, _arg$1, _arg$2, _r$1, _r$2, _tuple, err, log, regex, value, what, $s};return $f; @@ -321792,7 +324563,7 @@ $packages["github.com/evanw/esbuild/pkg/api"] = (function() { if (expr.Parts.$length > 0 || (name === "fragment" && !($interfaceIsEqual(expr.Constant, $ifaceNil)))) { $s = -1; return expr; } - _arg = ptrType$7.nil; + _arg = ptrType$8.nil; _arg$1 = $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range); _r$2 = fmt.Sprintf("Invalid JSX %s: %q", new sliceType$1([new $String(name), new $String(text)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _arg$2 = _r$2; @@ -321803,7 +324574,7 @@ $packages["github.com/evanw/esbuild/pkg/api"] = (function() { }; mapKeyForDefine = function mapKeyForDefine$1(parts) { var _i, _ref, n, part, parts, sb; - sb = new strings.Builder.ptr(ptrType$1.nil, sliceType.nil); + sb = new strings.Builder.ptr(ptrType$2.nil, sliceType.nil); n = arrayType.zero(); _ref = parts; _i = 0; @@ -321869,7 +324640,7 @@ $packages["github.com/evanw/esbuild/pkg/api"] = (function() { /* */ $s = 9; continue; /* if ((defineExpr[0].Parts.$length === 1) && mapKey === nodeEnvMapKey) { */ case 8: _r$3 = fmt.Sprintf("%q is defined as an identifier instead of a string (surround %q with quotes to get a string)", new sliceType$1([new $String(key$1), new $String(value)])); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - data = new logger.MsgData.ptr($ifaceNil, ptrType$8.nil, _r$3, false); + data = new logger.MsgData.ptr($ifaceNil, ptrType$9.nil, _r$3, false); part = (x = defineExpr[0].Parts, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); _1 = logger.API; /* */ if (_1 === (1)) { $s = 12; continue; } @@ -321904,7 +324675,7 @@ $packages["github.com/evanw/esbuild/pkg/api"] = (function() { _i$1++; /* continue; */ $s = 2; continue; } - _arg = ptrType$7.nil; + _arg = ptrType$8.nil; _arg$1 = $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range); _r$10 = fmt.Sprintf("Invalid define value (must be an entity name or JS literal): %s", new sliceType$1([new $String(value)])); /* */ $s = 23; case 23: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } _arg$2 = _r$10; @@ -321913,13 +324684,13 @@ $packages["github.com/evanw/esbuild/pkg/api"] = (function() { $s = 2; continue; case 3: if (isBuildAPI && (platform === 0)) { - _tuple$1 = (_entry$2 = $mapIndex(rawDefines,$String.keyFor(mapKeyForDefine(new sliceType$3(["process"])))), _entry$2 !== undefined ? [_entry$2.v, true] : [new config.DefineData.ptr(sliceType$3.nil, ptrType$10.nil, 0), false]); + _tuple$1 = (_entry$2 = $mapIndex(rawDefines,$String.keyFor(mapKeyForDefine(new sliceType$3(["process"])))), _entry$2 !== undefined ? [_entry$2.v, true] : [new config.DefineData.ptr(sliceType$3.nil, ptrType$11.nil, 0), false]); process = _tuple$1[1]; if (!process) { - _tuple$2 = (_entry$3 = $mapIndex(rawDefines,$String.keyFor(mapKeyForDefine(new sliceType$3(["process.env"])))), _entry$3 !== undefined ? [_entry$3.v, true] : [new config.DefineData.ptr(sliceType$3.nil, ptrType$10.nil, 0), false]); + _tuple$2 = (_entry$3 = $mapIndex(rawDefines,$String.keyFor(mapKeyForDefine(new sliceType$3(["process.env"])))), _entry$3 !== undefined ? [_entry$3.v, true] : [new config.DefineData.ptr(sliceType$3.nil, ptrType$11.nil, 0), false]); processEnv = _tuple$2[1]; if (!processEnv) { - _tuple$3 = (_entry$4 = $mapIndex(rawDefines,$String.keyFor(nodeEnvMapKey)), _entry$4 !== undefined ? [_entry$4.v, true] : [new config.DefineData.ptr(sliceType$3.nil, ptrType$10.nil, 0), false]); + _tuple$3 = (_entry$4 = $mapIndex(rawDefines,$String.keyFor(nodeEnvMapKey)), _entry$4 !== undefined ? [_entry$4.v, true] : [new config.DefineData.ptr(sliceType$3.nil, ptrType$11.nil, 0), false]); processEnvNodeEnv = _tuple$3[1]; if (!processEnvNodeEnv) { value$1 = sliceType$13.nil; @@ -321936,7 +324707,7 @@ $packages["github.com/evanw/esbuild/pkg/api"] = (function() { if (!(((((drop & 1) >>> 0)) === 0))) { consoleParts = new sliceType$3(["console"]); consoleMapKey = mapKeyForDefine(consoleParts); - define = $clone((_entry$5 = $mapIndex(rawDefines,$String.keyFor(consoleMapKey)), _entry$5 !== undefined ? _entry$5.v : new config.DefineData.ptr(sliceType$3.nil, ptrType$10.nil, 0)), config.DefineData); + define = $clone((_entry$5 = $mapIndex(rawDefines,$String.keyFor(consoleMapKey)), _entry$5 !== undefined ? _entry$5.v : new config.DefineData.ptr(sliceType$3.nil, ptrType$11.nil, 0)), config.DefineData); define.KeyParts = consoleParts; define.Flags = (define.Flags | (4)) >>> 0; _key$4 = consoleMapKey; (rawDefines || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$4), { k: _key$4, v: $clone(define, config.DefineData) }); @@ -321953,7 +324724,7 @@ $packages["github.com/evanw/esbuild/pkg/api"] = (function() { /* continue; */ $s = 25; continue; } mapKey$1 = mapKeyForDefine(keyParts$1); - define$1 = $clone((_entry$6 = $mapIndex(rawDefines,$String.keyFor(mapKey$1)), _entry$6 !== undefined ? _entry$6.v : new config.DefineData.ptr(sliceType$3.nil, ptrType$10.nil, 0)), config.DefineData); + define$1 = $clone((_entry$6 = $mapIndex(rawDefines,$String.keyFor(mapKey$1)), _entry$6 !== undefined ? _entry$6.v : new config.DefineData.ptr(sliceType$3.nil, ptrType$11.nil, 0)), config.DefineData); define$1.KeyParts = keyParts$1; define$1.Flags = (define$1.Flags | (2)) >>> 0; _key$5 = mapKey$1; (rawDefines || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$5), { k: _key$5, v: $clone(define$1, config.DefineData) }); @@ -322013,11 +324784,11 @@ $packages["github.com/evanw/esbuild/pkg/api"] = (function() { /* if (options.KeepNames && options.UnsupportedJSFeatures.Has(new compat.JSFeature(0, 67108864))) { */ case 1: _r$1 = config.PrettyPrintTargetEnvironment(options.OriginalTargetEnv, options.UnsupportedJSFeatureOverridesMask); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } where = _r$1; - _arg = ptrType$7.nil; + _arg = ptrType$8.nil; _arg$1 = $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range); _r$2 = fmt.Sprintf("The \"keep names\" setting cannot be used with %s", new sliceType$1([new $String(where)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _arg$2 = _r$2; - _arg$3 = new sliceType$10([$clone(new logger.MsgData.ptr($ifaceNil, ptrType$8.nil, "In this environment, the \"Function.prototype.name\" property is not configurable and assigning to it will throw an error. Either use a newer target environment or disable the \"keep names\" setting.", false), logger.MsgData)]); + _arg$3 = new sliceType$10([$clone(new logger.MsgData.ptr($ifaceNil, ptrType$9.nil, "In this environment, the \"Function.prototype.name\" property is not configurable and assigning to it will throw an error. Either use a newer target environment or disable the \"keep names\" setting.", false), logger.MsgData)]); $r = $clone(log, logger.Log).AddErrorWithNotes(_arg, _arg$1, _arg$2, _arg$3); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 2: $s = -1; return; @@ -322025,10 +324796,10 @@ $packages["github.com/evanw/esbuild/pkg/api"] = (function() { }; convertLocationToPublic = function convertLocationToPublic$1(loc) { var loc; - if (!(loc === ptrType$8.nil)) { + if (!(loc === ptrType$9.nil)) { return new Location.ptr(loc.File, loc.Namespace, loc.Line, loc.Column, loc.Length, loc.LineText, loc.Suggestion); } - return ptrType$11.nil; + return ptrType$12.nil; }; convertMessagesToPublic = function convertMessagesToPublic$1(kind, msgs) { var _i, _i$1, _ref, _ref$1, filtered, kind, msg, msgs, note, notes; @@ -322078,7 +324849,7 @@ $packages["github.com/evanw/esbuild/pkg/api"] = (function() { /* */ if ($interfaceIsEqual(v, new $String("__proto__"))) { $s = 3; continue; } /* */ $s = 4; continue; /* if ($interfaceIsEqual(v, new $String("__proto__"))) { */ case 3: - _arg = ptrType$7.nil; + _arg = ptrType$8.nil; _arg$1 = $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range); _r$1 = fmt.Sprintf("Invalid identifier name %q in mangle cache", new sliceType$1([new $String(k)])); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _arg$2 = _r$1; @@ -322093,7 +324864,7 @@ $packages["github.com/evanw/esbuild/pkg/api"] = (function() { _key$1 = k; (clone || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$1), { k: _key$1, v: v }); $s = 10; continue; /* } else { */ case 9: - _arg$3 = ptrType$7.nil; + _arg$3 = ptrType$8.nil; _arg$4 = $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range); _r$2 = fmt.Sprintf("Expected %q in mangle cache to map to either a string or false", new sliceType$1([new $String(k)])); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _arg$5 = _r$2; @@ -322142,7 +324913,7 @@ $packages["github.com/evanw/esbuild/pkg/api"] = (function() { _r$7 = validateGlobalName($clone(log, logger.Log), transformOpts.GlobalName, "(global name)"); /* */ $s = 7; case 7: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _r$8 = validateRegex($clone(log, logger.Log), "mangle props", transformOpts.MangleProps); /* */ $s = 8; case 8: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } _r$9 = validateRegex($clone(log, logger.Log), "reserve props", transformOpts.ReserveProps); /* */ $s = 9; case 9: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - options[0] = new config.Options.ptr(new js_ast.ModuleTypeData.ptr(ptrType$14.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0), defines, ptrType$16.nil, _r$8, _r$9, ptrType$17.nil, $throwNilPointerError, targetEnv, $appendSlice(new sliceType$3([]), transformOpts.DropLabels), sliceType$3.nil, sliceType$3.nil, sliceType$3.nil, sliceType$3.nil, new config.ExternalSettings.ptr(new config.ExternalMatchers.ptr(false, sliceType$11.nil), new config.ExternalMatchers.ptr(false, sliceType$11.nil)), false, false, transformOpts.Sourcefile + "-out", "", "", "", "", _r$7, "", transformOpts.TsconfigRaw, false, "", sliceType$3.nil, injectedDefines, sliceType$18.nil, "", "", "", "", sliceType$8.nil, sliceType$8.nil, sliceType$8.nil, sliceType$19.nil, transformOpts.SourceRoot, new config.StdinInfo.ptr(input, transformOpts.Sourcefile, "", validateLoader(transformOpts.Loader)), $clone(new config.JSXOptions.ptr($clone(_r$5, config.DefineExpr), $clone(_r$6, config.DefineExpr), false, transformOpts.JSX === 1, transformOpts.JSX === 2, transformOpts.JSXImportSource, transformOpts.JSXDev, transformOpts.JSXSideEffects), config.JSXOptions), transformOpts.LineLimit, cssPrefixData, jsFeatures.ApplyOverrides(jsOverrides, jsMask), new compat.CSSFeature(cssFeatures).ApplyOverrides(cssOverrides, cssMask), jsOverrides, jsMask, cssOverrides, cssMask, new config.TSOptions.ptr(new config.TSConfig.ptr(0, 0, 0, 0, 0, 0), false, false), 0, false, transformOpts.MinifyWhitespace, transformOpts.MinifyIdentifiers, transformOpts.MinifySyntax, false, false, false, false, validateLegalComments(transformOpts.LegalComments, false), false, false, false, validateASCIIOnly(transformOpts.Charset), transformOpts.KeepNames, transformOpts.IgnoreAnnotations, validateTreeShaking(transformOpts.TreeShaking, false, transformOpts.Format), !(((((transformOpts.Drop & 2) >>> 0)) === 0)), transformOpts.MangleQuoted === 1, platform, validateFormat(transformOpts.Format), false, validateSourceMap(transformOpts.Sourcemap), transformOpts.SourcesContent === 1); + options[0] = new config.Options.ptr(new js_ast.ModuleTypeData.ptr(ptrType$15.nil, new logger.Range.ptr(new logger.Loc.ptr(0), 0), 0), defines, ptrType$17.nil, _r$8, _r$9, ptrType$18.nil, $throwNilPointerError, targetEnv, $appendSlice(new sliceType$3([]), transformOpts.DropLabels), sliceType$3.nil, sliceType$3.nil, sliceType$3.nil, sliceType$3.nil, new config.ExternalSettings.ptr(new config.ExternalMatchers.ptr(false, sliceType$11.nil), new config.ExternalMatchers.ptr(false, sliceType$11.nil)), false, false, transformOpts.Sourcefile + "-out", "", "", "", "", _r$7, "", transformOpts.TsconfigRaw, false, "", sliceType$3.nil, injectedDefines, sliceType$18.nil, "", "", "", "", sliceType$8.nil, sliceType$8.nil, sliceType$8.nil, sliceType$19.nil, transformOpts.SourceRoot, new config.StdinInfo.ptr(input, transformOpts.Sourcefile, "", validateLoader(transformOpts.Loader)), $clone(new config.JSXOptions.ptr($clone(_r$5, config.DefineExpr), $clone(_r$6, config.DefineExpr), false, transformOpts.JSX === 1, transformOpts.JSX === 2, transformOpts.JSXImportSource, transformOpts.JSXDev, transformOpts.JSXSideEffects), config.JSXOptions), transformOpts.LineLimit, cssPrefixData, jsFeatures.ApplyOverrides(jsOverrides, jsMask), new compat.CSSFeature(cssFeatures).ApplyOverrides(cssOverrides, cssMask), jsOverrides, jsMask, cssOverrides, cssMask, new config.TSOptions.ptr(new config.TSConfig.ptr(0, 0, 0, 0, 0, 0), false, false), 0, false, transformOpts.MinifyWhitespace, transformOpts.MinifyIdentifiers, transformOpts.MinifySyntax, false, false, false, false, validateLegalComments(transformOpts.LegalComments, false), false, false, false, validateASCIIOnly(transformOpts.Charset), transformOpts.KeepNames, transformOpts.IgnoreAnnotations, validateTreeShaking(transformOpts.TreeShaking, false, transformOpts.Format), !(((((transformOpts.Drop & 2) >>> 0)) === 0)), transformOpts.MangleQuoted === 1, platform, validateFormat(transformOpts.Format), false, validateSourceMap(transformOpts.Sourcemap), transformOpts.SourcesContent === 1); $r = validateKeepNames($clone(log, logger.Log), options[0]); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } if (new config.Loader(options[0].Stdin.Loader).IsCSS()) { options[0].CSSBanner = transformOpts.Banner; @@ -322154,12 +324925,12 @@ $packages["github.com/evanw/esbuild/pkg/api"] = (function() { /* */ if (options[0].SourceMap === 2) { $s = 11; continue; } /* */ $s = 12; continue; /* if (options[0].SourceMap === 2) { */ case 11: - $r = $clone(log, logger.Log).AddError(ptrType$7.nil, $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range), "Cannot transform with linked source maps"); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = $clone(log, logger.Log).AddError(ptrType$8.nil, $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range), "Cannot transform with linked source maps"); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 12: /* */ if (!((options[0].SourceMap === 0)) && options[0].Stdin.SourceFile === "") { $s = 14; continue; } /* */ $s = 15; continue; /* if (!((options[0].SourceMap === 0)) && options[0].Stdin.SourceFile === "") { */ case 14: - $r = $clone(log, logger.Log).AddError(ptrType$7.nil, $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range), "Must use \"sourcefile\" with \"sourcemap\" to set the original file name"); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = $clone(log, logger.Log).AddError(ptrType$8.nil, $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range), "Must use \"sourcefile\" with \"sourcemap\" to set the original file name"); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 15: /* */ if (logger.API === 1) { $s = 17; continue; } /* */ if (options[0].LegalComments === 3) { $s = 18; continue; } @@ -322168,11 +324939,11 @@ $packages["github.com/evanw/esbuild/pkg/api"] = (function() { /* */ if (new config.LegalComments(options[0].LegalComments).HasExternalFile()) { $s = 20; continue; } /* */ $s = 21; continue; /* if (new config.LegalComments(options[0].LegalComments).HasExternalFile()) { */ case 20: - $r = $clone(log, logger.Log).AddError(ptrType$7.nil, $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range), "Cannot transform with linked or external legal comments"); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = $clone(log, logger.Log).AddError(ptrType$8.nil, $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range), "Cannot transform with linked or external legal comments"); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 21: $s = 19; continue; /* } else if (options[0].LegalComments === 3) { */ case 18: - $r = $clone(log, logger.Log).AddError(ptrType$7.nil, $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range), "Cannot transform with linked legal comments"); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = $clone(log, logger.Log).AddError(ptrType$8.nil, $clone(new logger.Range.ptr(new logger.Loc.ptr(0), 0), logger.Range), "Cannot transform with linked legal comments"); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 19: if (!((options[0].OutputFormat === 0))) { options[0].Mode = 1; @@ -322251,8 +325022,8 @@ $packages["github.com/evanw/esbuild/pkg/api"] = (function() { $pkg.Transform = Transform; Engine.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: EngineName, tag: ""}, {prop: "Version", name: "Version", embedded: false, exported: true, typ: $String, tag: ""}]); Location.init("", [{prop: "File", name: "File", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Namespace", name: "Namespace", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Line", name: "Line", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Column", name: "Column", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Length", name: "Length", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "LineText", name: "LineText", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Suggestion", name: "Suggestion", embedded: false, exported: true, typ: $String, tag: ""}]); - Message.init("", [{prop: "ID", name: "ID", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "PluginName", name: "PluginName", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Text", name: "Text", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Location", name: "Location", embedded: false, exported: true, typ: ptrType$11, tag: ""}, {prop: "Notes", name: "Notes", embedded: false, exported: true, typ: sliceType$15, tag: ""}, {prop: "Detail", name: "Detail", embedded: false, exported: true, typ: $emptyInterface, tag: ""}]); - Note.init("", [{prop: "Text", name: "Text", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Location", name: "Location", embedded: false, exported: true, typ: ptrType$11, tag: ""}]); + Message.init("", [{prop: "ID", name: "ID", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "PluginName", name: "PluginName", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Text", name: "Text", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Location", name: "Location", embedded: false, exported: true, typ: ptrType$12, tag: ""}, {prop: "Notes", name: "Notes", embedded: false, exported: true, typ: sliceType$15, tag: ""}, {prop: "Detail", name: "Detail", embedded: false, exported: true, typ: $emptyInterface, tag: ""}]); + Note.init("", [{prop: "Text", name: "Text", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Location", name: "Location", embedded: false, exported: true, typ: ptrType$12, tag: ""}]); TransformOptions.init("", [{prop: "Color", name: "Color", embedded: false, exported: true, typ: StderrColor, tag: ""}, {prop: "LogLevel", name: "LogLevel", embedded: false, exported: true, typ: LogLevel, tag: ""}, {prop: "LogLimit", name: "LogLimit", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "LogOverride", name: "LogOverride", embedded: false, exported: true, typ: mapType$3, tag: ""}, {prop: "Sourcemap", name: "Sourcemap", embedded: false, exported: true, typ: SourceMap, tag: ""}, {prop: "SourceRoot", name: "SourceRoot", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "SourcesContent", name: "SourcesContent", embedded: false, exported: true, typ: SourcesContent, tag: ""}, {prop: "Target", name: "Target", embedded: false, exported: true, typ: Target, tag: ""}, {prop: "Engines", name: "Engines", embedded: false, exported: true, typ: sliceType$29, tag: ""}, {prop: "Supported", name: "Supported", embedded: false, exported: true, typ: mapType$1, tag: ""}, {prop: "Platform", name: "Platform", embedded: false, exported: true, typ: Platform, tag: ""}, {prop: "Format", name: "Format", embedded: false, exported: true, typ: Format, tag: ""}, {prop: "GlobalName", name: "GlobalName", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "MangleProps", name: "MangleProps", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "ReserveProps", name: "ReserveProps", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "MangleQuoted", name: "MangleQuoted", embedded: false, exported: true, typ: MangleQuoted, tag: ""}, {prop: "MangleCache", name: "MangleCache", embedded: false, exported: true, typ: mapType$2, tag: ""}, {prop: "Drop", name: "Drop", embedded: false, exported: true, typ: Drop, tag: ""}, {prop: "DropLabels", name: "DropLabels", embedded: false, exported: true, typ: sliceType$3, tag: ""}, {prop: "MinifyWhitespace", name: "MinifyWhitespace", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "MinifyIdentifiers", name: "MinifyIdentifiers", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "MinifySyntax", name: "MinifySyntax", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "LineLimit", name: "LineLimit", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Charset", name: "Charset", embedded: false, exported: true, typ: Charset, tag: ""}, {prop: "TreeShaking", name: "TreeShaking", embedded: false, exported: true, typ: TreeShaking, tag: ""}, {prop: "IgnoreAnnotations", name: "IgnoreAnnotations", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "LegalComments", name: "LegalComments", embedded: false, exported: true, typ: LegalComments, tag: ""}, {prop: "JSX", name: "JSX", embedded: false, exported: true, typ: JSX, tag: ""}, {prop: "JSXFactory", name: "JSXFactory", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "JSXFragment", name: "JSXFragment", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "JSXImportSource", name: "JSXImportSource", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "JSXDev", name: "JSXDev", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "JSXSideEffects", name: "JSXSideEffects", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "TsconfigRaw", name: "TsconfigRaw", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Banner", name: "Banner", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Footer", name: "Footer", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Define", name: "Define", embedded: false, exported: true, typ: mapType, tag: ""}, {prop: "Pure", name: "Pure", embedded: false, exported: true, typ: sliceType$3, tag: ""}, {prop: "KeepNames", name: "KeepNames", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Sourcefile", name: "Sourcefile", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Loader", name: "Loader", embedded: false, exported: true, typ: Loader, tag: ""}]); TransformResult.init("", [{prop: "Errors", name: "Errors", embedded: false, exported: true, typ: sliceType$5, tag: ""}, {prop: "Warnings", name: "Warnings", embedded: false, exported: true, typ: sliceType$5, tag: ""}, {prop: "Code", name: "Code", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "Map", name: "Map", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "LegalComments", name: "LegalComments", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "MangleCache", name: "MangleCache", embedded: false, exported: true, typ: mapType$2, tag: ""}]); }; @@ -322304,7 +325075,7 @@ $packages["github.com/evanw/esbuild/pkg/api"] = (function() { return $pkg; })(); $packages["encoding/json"] = (function() { - var $pkg = {}, $init, bytes, encoding, base64, errors, fmt, nosync, io, math, reflect, sort, strconv, strings, unicode, utf16, utf8, tagOptions, Decoder, Encoder, Token, Delim, SyntaxError, scanner, Marshaler, UnsupportedTypeError, UnsupportedValueError, MarshalerError, encodeState, jsonError, encOpts, encoderFunc, floatEncoder, structEncoder, structFields, mapEncoder, sliceEncoder, arrayEncoder, ptrEncoder, condAddrEncoder, reflectWithString, field, byIndex, Unmarshaler, UnmarshalTypeError, InvalidUnmarshalError, Number, errorContext, decodeState, unquotedValue, sliceType, sliceType$1, ptrType$1, ptrType$2, sliceType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, arrayType, sliceType$3, structType, sliceType$4, structType$1, ptrType$10, ptrType$11, mapType, sliceType$5, ptrType$12, ptrType$13, ptrType$14, ptrType$15, funcType, ptrType$16, ptrType$17, ptrType$19, mapType$1, mapType$2, ptrType$20, funcType$1, ptrType$22, ptrType$23, encodeStatePool, encoderCache, fieldCache, safeSet, htmlSafeSet, scannerPool, hex, marshalerType, _r, textMarshalerType, _r$1, float32Encoder, float64Encoder, nullLiteral, textUnmarshalerType, _r$2, numberType, parseTag, NewDecoder, nonSpace, NewEncoder, newScanner, freeScanner, isSpace, stateBeginValueOrEmpty, stateBeginValue, stateBeginStringOrEmpty, stateBeginString, stateEndValue, stateEndTop, stateInString, stateInStringEsc, stateInStringEscU, stateInStringEscU1, stateInStringEscU12, stateInStringEscU123, stateNeg, state1, state0, stateDot, stateDot0, stateE, stateESign, stateE0, stateT, stateTr, stateTru, stateF, stateFa, stateFal, stateFals, stateN, stateNu, stateNul, stateError, quoteChar, compact, newline, Indent, foldFunc, equalFoldRight, asciiEqualFold, simpleLetterEqualFold, HTMLEscape, newEncodeState, isEmptyValue, valueEncoder, typeEncoder, newTypeEncoder, invalidValueEncoder, marshalerEncoder, addrMarshalerEncoder, textMarshalerEncoder, addrTextMarshalerEncoder, boolEncoder, intEncoder, uintEncoder, stringEncoder, isValidNumber, interfaceEncoder, unsupportedTypeEncoder, newStructEncoder, newMapEncoder, encodeByteSlice, newSliceEncoder, newArrayEncoder, newPtrEncoder, newCondAddrEncoder, isValidTag, typeByIndex, typeFields, dominantField, cachedTypeFields, indirect, getu4, unquote, unquoteBytes; + var $pkg = {}, $init, bytes, encoding, base64, errors, fmt, nosync, io, math, reflect, sort, strconv, strings, unicode, utf16, utf8, tagOptions, Decoder, Encoder, Token, Delim, SyntaxError, scanner, Marshaler, UnsupportedTypeError, UnsupportedValueError, MarshalerError, encodeState, jsonError, encOpts, encoderFunc, floatEncoder, structEncoder, structFields, mapEncoder, sliceEncoder, arrayEncoder, ptrEncoder, condAddrEncoder, reflectWithString, field, byIndex, Unmarshaler, UnmarshalTypeError, InvalidUnmarshalError, Number, errorContext, decodeState, unquotedValue, sliceType, sliceType$1, ptrType$1, ptrType$2, sliceType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, arrayType, ptrType$8, ptrType$9, sliceType$3, structType, sliceType$4, ptrType$10, structType$1, ptrType$11, ptrType$12, mapType, sliceType$5, ptrType$13, ptrType$14, ptrType$15, funcType, ptrType$16, ptrType$17, ptrType$19, mapType$1, mapType$2, ptrType$21, ptrType$22, encodeStatePool, encoderCache, fieldCache, safeSet, htmlSafeSet, scannerPool, hex, marshalerType, _r, textMarshalerType, _r$1, float32Encoder, float64Encoder, nullLiteral, textUnmarshalerType, _r$2, numberType, parseTag, NewDecoder, nonSpace, NewEncoder, newScanner, freeScanner, isSpace, stateBeginValueOrEmpty, stateBeginValue, stateBeginStringOrEmpty, stateBeginString, stateEndValue, stateEndTop, stateInString, stateInStringEsc, stateInStringEscU, stateInStringEscU1, stateInStringEscU12, stateInStringEscU123, stateNeg, state1, state0, stateDot, stateDot0, stateE, stateESign, stateE0, stateT, stateTr, stateTru, stateF, stateFa, stateFal, stateFals, stateN, stateNu, stateNul, stateError, quoteChar, appendHTMLEscape, appendCompact, appendNewline, appendIndent, foldName, appendFoldedName, foldRune, newEncodeState, isEmptyValue, valueEncoder, typeEncoder, newTypeEncoder, invalidValueEncoder, marshalerEncoder, addrMarshalerEncoder, textMarshalerEncoder, addrTextMarshalerEncoder, boolEncoder, intEncoder, uintEncoder, stringEncoder, isValidNumber, interfaceEncoder, unsupportedTypeEncoder, newStructEncoder, newMapEncoder, encodeByteSlice, newSliceEncoder, newArrayEncoder, newPtrEncoder, newCondAddrEncoder, isValidTag, typeByIndex, appendString = [], typeFields, dominantField, cachedTypeFields, mayAppendQuote, indirect, getu4, unquote, unquoteBytes; bytes = $packages["bytes"]; encoding = $packages["encoding"]; base64 = $packages["encoding/base64"]; @@ -322351,7 +325122,7 @@ $packages["encoding/json"] = (function() { this.w = $ifaceNil; this.err = $ifaceNil; this.escapeHTML = false; - this.indentBuf = ptrType$5.nil; + this.indentBuf = sliceType$2.nil; this.indentPrefix = ""; this.indentValue = ""; return; @@ -322403,7 +325174,7 @@ $packages["encoding/json"] = (function() { UnsupportedValueError = $newType(0, $kindStruct, "json.UnsupportedValueError", true, "encoding/json", true, function(Value_, Str_) { this.$val = this; if (arguments.length === 0) { - this.Value = new reflect.Value.ptr(ptrType$11.nil, 0, 0); + this.Value = new reflect.Value.ptr(ptrType$12.nil, 0, 0); this.Str = ""; return; } @@ -322422,17 +325193,15 @@ $packages["encoding/json"] = (function() { this.Err = Err_; this.sourceFunc = sourceFunc_; }); - encodeState = $newType(0, $kindStruct, "json.encodeState", true, "encoding/json", false, function(Buffer_, scratch_, ptrLevel_, ptrSeen_) { + encodeState = $newType(0, $kindStruct, "json.encodeState", true, "encoding/json", false, function(Buffer_, ptrLevel_, ptrSeen_) { this.$val = this; if (arguments.length === 0) { this.Buffer = new bytes.Buffer.ptr(sliceType$2.nil, 0, 0); - this.scratch = arrayType.zero(); this.ptrLevel = 0; this.ptrSeen = false; return; } this.Buffer = Buffer_; - this.scratch = scratch_; this.ptrLevel = ptrLevel_; this.ptrSeen = ptrSeen_; }); @@ -322459,20 +325228,22 @@ $packages["encoding/json"] = (function() { structEncoder = $newType(0, $kindStruct, "json.structEncoder", true, "encoding/json", false, function(fields_) { this.$val = this; if (arguments.length === 0) { - this.fields = new structFields.ptr(sliceType$3.nil, false); + this.fields = new structFields.ptr(sliceType$3.nil, false, false); return; } this.fields = fields_; }); - structFields = $newType(0, $kindStruct, "json.structFields", true, "encoding/json", false, function(list_, nameIndex_) { + structFields = $newType(0, $kindStruct, "json.structFields", true, "encoding/json", false, function(list_, byExactName_, byFoldedName_) { this.$val = this; if (arguments.length === 0) { this.list = sliceType$3.nil; - this.nameIndex = false; + this.byExactName = false; + this.byFoldedName = false; return; } this.list = list_; - this.nameIndex = nameIndex_; + this.byExactName = byExactName_; + this.byFoldedName = byFoldedName_; }); mapEncoder = $newType(0, $kindStruct, "json.mapEncoder", true, "encoding/json", false, function(elemEnc_) { this.$val = this; @@ -322519,8 +325290,8 @@ $packages["encoding/json"] = (function() { reflectWithString = $newType(0, $kindStruct, "json.reflectWithString", true, "encoding/json", false, function(k_, v_, ks_) { this.$val = this; if (arguments.length === 0) { - this.k = new reflect.Value.ptr(ptrType$11.nil, 0, 0); - this.v = new reflect.Value.ptr(ptrType$11.nil, 0, 0); + this.k = new reflect.Value.ptr(ptrType$12.nil, 0, 0); + this.v = new reflect.Value.ptr(ptrType$12.nil, 0, 0); this.ks = ""; return; } @@ -322528,12 +325299,11 @@ $packages["encoding/json"] = (function() { this.v = v_; this.ks = ks_; }); - field = $newType(0, $kindStruct, "json.field", true, "encoding/json", false, function(name_, nameBytes_, equalFold_, nameNonEsc_, nameEscHTML_, tag_, index_, typ_, omitEmpty_, quoted_, encoder_) { + field = $newType(0, $kindStruct, "json.field", true, "encoding/json", false, function(name_, nameBytes_, nameNonEsc_, nameEscHTML_, tag_, index_, typ_, omitEmpty_, quoted_, encoder_) { this.$val = this; if (arguments.length === 0) { this.name = ""; this.nameBytes = sliceType$2.nil; - this.equalFold = $throwNilPointerError; this.nameNonEsc = ""; this.nameEscHTML = ""; this.tag = false; @@ -322546,7 +325316,6 @@ $packages["encoding/json"] = (function() { } this.name = name_; this.nameBytes = nameBytes_; - this.equalFold = equalFold_; this.nameNonEsc = nameNonEsc_; this.nameEscHTML = nameEscHTML_; this.tag = tag_; @@ -322657,34 +325426,32 @@ $packages["encoding/json"] = (function() { sliceType$2 = $sliceType($Uint8); ptrType$3 = $ptrType(encoding.TextUnmarshaler); ptrType$4 = $ptrType(errorContext); - ptrType$5 = $ptrType(bytes.Buffer); - ptrType$6 = $ptrType($String); - ptrType$7 = $ptrType($emptyInterface); - ptrType$8 = $ptrType(scanner); - ptrType$9 = $ptrType(encodeState); - arrayType = $arrayType($Uint8, 64); + ptrType$5 = $ptrType($String); + ptrType$6 = $ptrType($emptyInterface); + ptrType$7 = $ptrType(scanner); + arrayType = $arrayType($Uint8, 32); + ptrType$8 = $ptrType(encodeState); + ptrType$9 = $ptrType(field); sliceType$3 = $sliceType(field); structType = $structType("", []); sliceType$4 = $sliceType(reflectWithString); + ptrType$10 = $ptrType(reflectWithString); structType$1 = $structType("encoding/json", [{prop: "ptr", name: "ptr", embedded: false, exported: false, typ: $emptyInterface, tag: ""}, {prop: "len", name: "len", embedded: false, exported: false, typ: $Int, tag: ""}]); - ptrType$10 = $ptrType(UnmarshalTypeError); - ptrType$11 = $ptrType(reflect.rtype); + ptrType$11 = $ptrType(UnmarshalTypeError); + ptrType$12 = $ptrType($packages["internal/abi"].Type); mapType = $mapType($String, $emptyInterface); sliceType$5 = $sliceType($String); - ptrType$12 = $ptrType(field); ptrType$13 = $ptrType(Decoder); ptrType$14 = $ptrType(Encoder); ptrType$15 = $ptrType(SyntaxError); - funcType = $funcType([ptrType$8, $Uint8], [$Int], false); + funcType = $funcType([ptrType$7, $Uint8], [$Int], false); ptrType$16 = $ptrType(UnsupportedTypeError); ptrType$17 = $ptrType(UnsupportedValueError); ptrType$19 = $ptrType(MarshalerError); mapType$1 = $mapType($emptyInterface, structType); - mapType$2 = $mapType($String, $Int); - ptrType$20 = $ptrType(reflectWithString); - funcType$1 = $funcType([sliceType$2, sliceType$2], [$Bool], false); - ptrType$22 = $ptrType(InvalidUnmarshalError); - ptrType$23 = $ptrType(decodeState); + mapType$2 = $mapType($String, ptrType$9); + ptrType$21 = $ptrType(InvalidUnmarshalError); + ptrType$22 = $ptrType(decodeState); parseTag = function parseTag$1(tag) { var _tuple, opt, tag; _tuple = strings.Cut(tag, ","); @@ -322860,11 +325627,11 @@ $packages["encoding/json"] = (function() { }; NewEncoder = function NewEncoder$1(w) { var w; - return new Encoder.ptr(w, $ifaceNil, true, ptrType$5.nil, "", ""); + return new Encoder.ptr(w, $ifaceNil, true, sliceType$2.nil, "", ""); }; $pkg.NewEncoder = NewEncoder; $ptrType(Encoder).prototype.Encode = function Encode(v) { - var {_r$3, _r$4, _r$5, _r$6, _tuple, b, e, enc, err, v, $s, $deferred, $r, $c} = $restore(this, {v}); + var {_r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, b, e, enc, err, v, $s, $deferred, $r, $c} = $restore(this, {v}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); enc = this; if (!($interfaceIsEqual(enc.err, $ifaceNil))) { @@ -322883,25 +325650,23 @@ $packages["encoding/json"] = (function() { /* */ if (!(enc.indentPrefix === "") || !(enc.indentValue === "")) { $s = 3; continue; } /* */ $s = 4; continue; /* if (!(enc.indentPrefix === "") || !(enc.indentValue === "")) { */ case 3: - if (enc.indentBuf === ptrType$5.nil) { - enc.indentBuf = new bytes.Buffer.ptr(sliceType$2.nil, 0, 0); - } - enc.indentBuf.Reset(); - _r$5 = Indent(enc.indentBuf, b, enc.indentPrefix, enc.indentValue); /* */ $s = 5; case 5: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - err = _r$5; + _r$5 = appendIndent($subslice(enc.indentBuf, 0, 0), b, enc.indentPrefix, enc.indentValue); /* */ $s = 5; case 5: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple = _r$5; + enc.indentBuf = _tuple[0]; + err = _tuple[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return err; } - b = enc.indentBuf.Bytes(); + b = enc.indentBuf; /* } */ case 4: _r$6 = enc.w.Write(b); /* */ $s = 6; case 6: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _tuple = _r$6; - err = _tuple[1]; + _tuple$1 = _r$6; + err = _tuple$1[1]; if (!($interfaceIsEqual(err, $ifaceNil))) { enc.err = err; } $s = -1; return err; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Encode, $c: true, $r, _r$3, _r$4, _r$5, _r$6, _tuple, b, e, enc, err, v, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Encode, $c: true, $r, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, b, e, enc, err, v, $s, $deferred};return $f; } } }; $ptrType(Encoder).prototype.SetIndent = function SetIndent(prefix, indent) { var enc, indent, prefix; @@ -323063,7 +325828,7 @@ $packages["encoding/json"] = (function() { x[0] = ""; old = dec.tokenState; dec.tokenState = 0; - _r$4 = dec.Decode((x.$ptr || (x.$ptr = new ptrType$6(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, x)))); /* */ $s = 16; case 16: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4 = dec.Decode((x.$ptr || (x.$ptr = new ptrType$5(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, x)))); /* */ $s = 16; case 16: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } err$1 = _r$4; dec.tokenState = old; if (!($interfaceIsEqual(err$1, $ifaceNil))) { @@ -323076,7 +325841,7 @@ $packages["encoding/json"] = (function() { $s = -1; return dec.tokenError(c); } x$1[0] = $ifaceNil; - _r$5 = dec.Decode((x$1.$ptr || (x$1.$ptr = new ptrType$7(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, x$1)))); /* */ $s = 17; case 17: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$5 = dec.Decode((x$1.$ptr || (x$1.$ptr = new ptrType$6(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, x$1)))); /* */ $s = 17; case 17: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } err$2 = _r$5; if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = -1; return [$ifaceNil, err$2]; @@ -323087,7 +325852,7 @@ $packages["encoding/json"] = (function() { $s = -1; return dec.tokenError(c); } x$1[0] = $ifaceNil; - _r$6 = dec.Decode((x$1.$ptr || (x$1.$ptr = new ptrType$7(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, x$1)))); /* */ $s = 18; case 18: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$6 = dec.Decode((x$1.$ptr || (x$1.$ptr = new ptrType$6(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, x$1)))); /* */ $s = 18; case 18: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } err$2 = _r$6; if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = -1; return [$ifaceNil, err$2]; @@ -323172,7 +325937,7 @@ $packages["encoding/json"] = (function() { var {_r$3, scan, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: _r$3 = scannerPool.Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - scan = $assertType(_r$3, ptrType$8); + scan = $assertType(_r$3, ptrType$7); scan.bytes = new $Int64(0, 0); scan.reset(); $s = -1; return scan; @@ -323596,10 +326361,33 @@ $packages["encoding/json"] = (function() { s = strconv.Quote(($encodeRune(c))); return "'" + $substring(s, 1, (s.length - 1 >> 0)) + "'"; }; - compact = function compact$1(dst, src, escape) { + appendHTMLEscape = function appendHTMLEscape$1(dst, src) { + var _i, _ref, c, dst, i, src, start, x, x$1, x$2; + start = 0; + _ref = src; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if ((c === 60) || (c === 62) || (c === 38)) { + dst = $appendSlice(dst, $subslice(src, start, i)); + dst = $append(dst, 92, 117, 48, 48, hex.charCodeAt((c >>> 4 << 24 >>> 24)), hex.charCodeAt(((c & 15) >>> 0))); + start = i + 1 >> 0; + } + if ((c === 226) && (i + 2 >> 0) < src.$length && ((x = i + 1 >> 0, ((x < 0 || x >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x])) === 128) && ((((x$1 = i + 2 >> 0, ((x$1 < 0 || x$1 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$1])) & ~1) << 24 >>> 24) === 168)) { + dst = $appendSlice(dst, $subslice(src, start, i)); + dst = $append(dst, 92, 117, 50, 48, 50, hex.charCodeAt((((x$2 = i + 2 >> 0, ((x$2 < 0 || x$2 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$2])) & 15) >>> 0))); + start = i + 3 >> 0; + } + _i++; + } + return $appendSlice(dst, $subslice(src, start)); + }; + appendCompact = function appendCompact$1(dst, src, escape) { var {_i, _r$3, _r$4, _r$5, _ref, c, dst, escape, i, origLen, scan, src, start, v, x, x$1, x$2, $s, $deferred, $r, $c} = $restore(this, {dst, src, escape}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - origLen = dst.Len(); + origLen = dst.$length; _r$3 = newScanner(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } scan = _r$3; $deferred.push([freeScanner, [scan]]); @@ -323611,20 +326399,13 @@ $packages["encoding/json"] = (function() { i = _i; c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); if (escape && ((c === 60) || (c === 62) || (c === 38))) { - if (start < i) { - dst.Write($subslice(src, start, i)); - } - dst.WriteString("\\u00"); - dst.WriteByte(hex.charCodeAt((c >>> 4 << 24 >>> 24))); - dst.WriteByte(hex.charCodeAt(((c & 15) >>> 0))); + dst = $appendSlice(dst, $subslice(src, start, i)); + dst = $append(dst, 92, 117, 48, 48, hex.charCodeAt((c >>> 4 << 24 >>> 24)), hex.charCodeAt(((c & 15) >>> 0))); start = i + 1 >> 0; } if (escape && (c === 226) && (i + 2 >> 0) < src.$length && ((x = i + 1 >> 0, ((x < 0 || x >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x])) === 128) && ((((x$1 = i + 2 >> 0, ((x$1 < 0 || x$1 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$1])) & ~1) << 24 >>> 24) === 168)) { - if (start < i) { - dst.Write($subslice(src, start, i)); - } - dst.WriteString("\\u202"); - dst.WriteByte(hex.charCodeAt((((x$2 = i + 2 >> 0, ((x$2 < 0 || x$2 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$2])) & 15) >>> 0))); + dst = $appendSlice(dst, $subslice(src, start, i)); + dst = $append(dst, 92, 117, 50, 48, 50, hex.charCodeAt((((x$2 = i + 2 >> 0, ((x$2 < 0 || x$2 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$2])) & 15) >>> 0))); start = i + 3 >> 0; } _r$4 = scan.step(scan, c); /* */ $s = 4; case 4: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } @@ -323633,9 +326414,7 @@ $packages["encoding/json"] = (function() { if (v === 11) { /* break; */ $s = 3; continue; } - if (start < i) { - dst.Write($subslice(src, start, i)); - } + dst = $appendSlice(dst, $subslice(src, start, i)); start = i + 1 >> 0; } _i++; @@ -323645,30 +326424,28 @@ $packages["encoding/json"] = (function() { /* */ if (_r$5 === 11) { $s = 5; continue; } /* */ $s = 6; continue; /* if (_r$5 === 11) { */ case 5: - dst.Truncate(origLen); - $s = -1; return scan.err; + $s = -1; return [$subslice(dst, 0, origLen), scan.err]; /* } */ case 6: - if (start < src.$length) { - dst.Write($subslice(src, start)); - } - $s = -1; return $ifaceNil; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: compact$1, $c: true, $r, _i, _r$3, _r$4, _r$5, _ref, c, dst, escape, i, origLen, scan, src, start, v, x, x$1, x$2, $s, $deferred};return $f; } } + dst = $appendSlice(dst, $subslice(src, start)); + $s = -1; return [dst, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [sliceType$2.nil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: appendCompact$1, $c: true, $r, _i, _r$3, _r$4, _r$5, _ref, c, dst, escape, i, origLen, scan, src, start, v, x, x$1, x$2, $s, $deferred};return $f; } } }; - newline = function newline$1(dst, prefix, indent, depth) { + appendNewline = function appendNewline$1(dst, prefix, indent, depth) { var depth, dst, i, indent, prefix; - dst.WriteByte(10); - dst.WriteString(prefix); + dst = $append(dst, 10); + dst = $appendSlice(dst, prefix); i = 0; while (true) { if (!(i < depth)) { break; } - dst.WriteString(indent); + dst = $appendSlice(dst, indent); i = i + (1) >> 0; } + return dst; }; - Indent = function Indent$1(dst, src, prefix, indent) { + appendIndent = function appendIndent$1(dst, src, prefix, indent) { var {_1, _i, _r$3, _r$4, _r$5, _ref, c, depth, dst, indent, needIndent, origLen, prefix, scan, src, v, x, x$1, $s, $deferred, $r, $c} = $restore(this, {dst, src, prefix, indent}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - origLen = dst.Len(); + origLen = dst.$length; _r$3 = newScanner(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } scan = _r$3; $deferred.push([freeScanner, [scan]]); @@ -323692,33 +326469,32 @@ $packages["encoding/json"] = (function() { if (needIndent && !((v === 5)) && !((v === 8))) { needIndent = false; depth = depth + (1) >> 0; - newline(dst, prefix, indent, depth); + dst = appendNewline(dst, prefix, indent, depth); } if (v === 0) { - dst.WriteByte(c); + dst = $append(dst, c); _i++; /* continue; */ $s = 2; continue; } _1 = c; if ((_1 === (123)) || (_1 === (91))) { needIndent = true; - dst.WriteByte(c); + dst = $append(dst, c); } else if (_1 === (44)) { - dst.WriteByte(c); - newline(dst, prefix, indent, depth); + dst = $append(dst, c); + dst = appendNewline(dst, prefix, indent, depth); } else if (_1 === (58)) { - dst.WriteByte(c); - dst.WriteByte(32); + dst = $append(dst, c, 32); } else if ((_1 === (125)) || (_1 === (93))) { if (needIndent) { needIndent = false; } else { depth = depth - (1) >> 0; - newline(dst, prefix, indent, depth); + dst = appendNewline(dst, prefix, indent, depth); } - dst.WriteByte(c); + dst = $append(dst, c); } else { - dst.WriteByte(c); + dst = $append(dst, c); } _i++; $s = 2; continue; @@ -323727,165 +326503,48 @@ $packages["encoding/json"] = (function() { /* */ if (_r$5 === 11) { $s = 5; continue; } /* */ $s = 6; continue; /* if (_r$5 === 11) { */ case 5: - dst.Truncate(origLen); - $s = -1; return scan.err; + $s = -1; return [$subslice(dst, 0, origLen), scan.err]; /* } */ case 6: - $s = -1; return $ifaceNil; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Indent$1, $c: true, $r, _1, _i, _r$3, _r$4, _r$5, _ref, c, depth, dst, indent, needIndent, origLen, prefix, scan, src, v, x, x$1, $s, $deferred};return $f; } } + $s = -1; return [dst, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [sliceType$2.nil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: appendIndent$1, $c: true, $r, _1, _i, _r$3, _r$4, _r$5, _ref, c, depth, dst, indent, needIndent, origLen, prefix, scan, src, v, x, x$1, $s, $deferred};return $f; } } }; - $pkg.Indent = Indent; - foldFunc = function foldFunc$1(s) { - var _i, _ref, b, nonLetter, s, special, upper; - nonLetter = false; - special = false; - _ref = s; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - b = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (b >= 128) { - return bytes.EqualFold; - } - upper = (b & 223) >>> 0; - if (upper < 65 || upper > 90) { - nonLetter = true; - } else if ((upper === 75) || (upper === 83)) { - special = true; - } - _i++; - } - if (special) { - return equalFoldRight; - } - if (nonLetter) { - return asciiEqualFold; - } - return simpleLetterEqualFold; + foldName = function foldName$1(in$1) { + var arr, in$1; + arr = arrayType.zero(); + return appendFoldedName($subslice(new sliceType$2(arr), 0, 0), in$1); }; - equalFoldRight = function equalFoldRight$1(s, t) { - var _1, _i, _ref, _tuple, s, sb, sbUpper, size, t, tb, tr; - _ref = s; - _i = 0; + appendFoldedName = function appendFoldedName$1(out, in$1) { + var _tuple, c, i, in$1, n, out, r; + i = 0; while (true) { - if (!(_i < _ref.$length)) { break; } - sb = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (t.$length === 0) { - return false; - } - tb = (0 >= t.$length ? ($throwRuntimeError("index out of range"), undefined) : t.$array[t.$offset + 0]); - if (tb < 128) { - if (!((sb === tb))) { - sbUpper = (sb & 223) >>> 0; - if (65 <= sbUpper && sbUpper <= 90) { - if (!((sbUpper === ((tb & 223) >>> 0)))) { - return false; - } - } else { - return false; - } - } - t = $subslice(t, 1); - _i++; - continue; - } - _tuple = utf8.DecodeRune(t); - tr = _tuple[0]; - size = _tuple[1]; - _1 = sb; - if ((_1 === (115)) || (_1 === (83))) { - if (!((tr === 383))) { - return false; - } - } else if ((_1 === (107)) || (_1 === (75))) { - if (!((tr === 8490))) { - return false; + if (!(i < in$1.$length)) { break; } + c = ((i < 0 || i >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + i]); + if (c < 128) { + if (97 <= c && c <= 122) { + c = c - (32) << 24 >>> 24; } - } else { - return false; - } - t = $subslice(t, size); - _i++; - } - return t.$length === 0; - }; - asciiEqualFold = function asciiEqualFold$1(s, t) { - var _i, _ref, i, s, sb, t, tb; - if (!((s.$length === t.$length))) { - return false; - } - _ref = s; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - sb = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - tb = ((i < 0 || i >= t.$length) ? ($throwRuntimeError("index out of range"), undefined) : t.$array[t.$offset + i]); - if (sb === tb) { - _i++; + out = $append(out, c); + i = i + (1) >> 0; continue; } - if ((97 <= sb && sb <= 122) || (65 <= sb && sb <= 90)) { - if (!((((sb & 223) >>> 0) === ((tb & 223) >>> 0)))) { - return false; - } - } else { - return false; - } - _i++; - } - return true; - }; - simpleLetterEqualFold = function simpleLetterEqualFold$1(s, t) { - var _i, _ref, b, i, s, t; - if (!((s.$length === t.$length))) { - return false; - } - _ref = s; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - b = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (!((((b & 223) >>> 0) === ((((i < 0 || i >= t.$length) ? ($throwRuntimeError("index out of range"), undefined) : t.$array[t.$offset + i]) & 223) >>> 0)))) { - return false; - } - _i++; + _tuple = utf8.DecodeRune($subslice(in$1, i)); + r = _tuple[0]; + n = _tuple[1]; + out = utf8.AppendRune(out, foldRune(r)); + i = i + (n) >> 0; } - return true; + return out; }; - HTMLEscape = function HTMLEscape$1(dst, src) { - var _i, _ref, c, dst, i, src, start, x, x$1, x$2; - start = 0; - _ref = src; - _i = 0; + foldRune = function foldRune$1(r) { + var r, r2; while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if ((c === 60) || (c === 62) || (c === 38)) { - if (start < i) { - dst.Write($subslice(src, start, i)); - } - dst.WriteString("\\u00"); - dst.WriteByte(hex.charCodeAt((c >>> 4 << 24 >>> 24))); - dst.WriteByte(hex.charCodeAt(((c & 15) >>> 0))); - start = i + 1 >> 0; - } - if ((c === 226) && (i + 2 >> 0) < src.$length && ((x = i + 1 >> 0, ((x < 0 || x >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x])) === 128) && ((((x$1 = i + 2 >> 0, ((x$1 < 0 || x$1 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$1])) & ~1) << 24 >>> 24) === 168)) { - if (start < i) { - dst.Write($subslice(src, start, i)); - } - dst.WriteString("\\u202"); - dst.WriteByte(hex.charCodeAt((((x$2 = i + 2 >> 0, ((x$2 < 0 || x$2 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$2])) & 15) >>> 0))); - start = i + 3 >> 0; + r2 = unicode.SimpleFold(r); + if (r2 <= r) { + return r2; } - _i++; - } - if (start < src.$length) { - dst.Write($subslice(src, start)); + r = r2; } }; - $pkg.HTMLEscape = HTMLEscape; $ptrType(UnsupportedTypeError).prototype.Error = function Error$1() { var {$24r, _r$3, e, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: @@ -323925,7 +326584,7 @@ $packages["encoding/json"] = (function() { _r$3 = encodeStatePool.Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } v = _r$3; if (!($interfaceIsEqual(v, $ifaceNil))) { - e = $assertType(v, ptrType$9); + e = $assertType(v, ptrType$8); e.Buffer.Reset(); if ((e.ptrSeen ? e.ptrSeen.size : 0) > 0) { $panic(new $String("ptrEncoder.encode should have emptied ptrSeen via defers")); @@ -323933,11 +326592,11 @@ $packages["encoding/json"] = (function() { e.ptrLevel = 0; $s = -1; return e; } - $s = -1; return new encodeState.ptr(new bytes.Buffer.ptr(sliceType$2.nil, 0, 0), arrayType.zero(), 0, new $global.Map()); + $s = -1; return new encodeState.ptr(new bytes.Buffer.ptr(sliceType$2.nil, 0, 0), 0, new $global.Map()); /* */ } return; } var $f = {$blk: newEncodeState$1, $c: true, $r, _r$3, e, v, $s};return $f; }; $ptrType(encodeState).prototype.marshal = function marshal(v, opts) { - var {_r$3, e, err, opts, v, $s, $deferred, $r, $c} = $restore(this, {v, opts}); + var {e, err, opts, v, $s, $deferred, $r, $c} = $restore(this, {v, opts}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); err = [err]; err[0] = $ifaceNil; @@ -323956,11 +326615,10 @@ $packages["encoding/json"] = (function() { } } }; })(err), []]); - _r$3 = reflect.ValueOf(v); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $r = e.reflectValue($clone(_r$3, reflect.Value), $clone(opts, encOpts)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = e.reflectValue($clone(reflect.ValueOf(v), reflect.Value), $clone(opts, encOpts)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } err[0] = $ifaceNil; $s = -1; return err[0]; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return err[0]; } if($curGoroutine.asleep) { var $f = {$blk: marshal, $c: true, $r, _r$3, e, err, opts, v, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return err[0]; } if($curGoroutine.asleep) { var $f = {$blk: marshal, $c: true, $r, e, err, opts, v, $s, $deferred};return $f; } } }; $ptrType(encodeState).prototype.error = function error$1(err) { var e, err, x; @@ -323968,34 +326626,22 @@ $packages["encoding/json"] = (function() { $panic((x = new jsonError.ptr(err), new x.constructor.elem(x))); }; isEmptyValue = function isEmptyValue$1(v) { - var {$24r, _1, _r$3, v, x, x$1, $s, $r, $c} = $restore(this, {v}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _1 = $clone(v, reflect.Value).Kind(); - /* */ if ((_1 === (17)) || (_1 === (21)) || (_1 === (23)) || (_1 === (24))) { $s = 2; continue; } - /* */ if (_1 === (1)) { $s = 3; continue; } - /* */ if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { $s = 4; continue; } - /* */ if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { $s = 5; continue; } - /* */ if ((_1 === (13)) || (_1 === (14))) { $s = 6; continue; } - /* */ if ((_1 === (20)) || (_1 === (22))) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if ((_1 === (17)) || (_1 === (21)) || (_1 === (23)) || (_1 === (24))) { */ case 2: - _r$3 = $clone(v, reflect.Value).Len(); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r = _r$3 === 0; - $s = 10; case 10: return $24r; - /* } else if (_1 === (1)) { */ case 3: - $s = -1; return !$clone(v, reflect.Value).Bool(); - /* } else if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { */ case 4: - $s = -1; return (x = $clone(v, reflect.Value).Int(), (x.$high === 0 && x.$low === 0)); - /* } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { */ case 5: - $s = -1; return (x$1 = $clone(v, reflect.Value).Uint(), (x$1.$high === 0 && x$1.$low === 0)); - /* } else if ((_1 === (13)) || (_1 === (14))) { */ case 6: - $s = -1; return $clone(v, reflect.Value).Float() === 0; - /* } else if ((_1 === (20)) || (_1 === (22))) { */ case 7: - $s = -1; return $clone(v, reflect.Value).IsNil(); - /* } */ case 8: - case 1: - $s = -1; return false; - /* */ } return; } var $f = {$blk: isEmptyValue$1, $c: true, $r, $24r, _1, _r$3, v, x, x$1, $s};return $f; + var _1, v, x, x$1; + _1 = $clone(v, reflect.Value).Kind(); + if ((_1 === (17)) || (_1 === (21)) || (_1 === (23)) || (_1 === (24))) { + return $clone(v, reflect.Value).Len() === 0; + } else if (_1 === (1)) { + return $clone(v, reflect.Value).Bool() === false; + } else if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { + return (x = $clone(v, reflect.Value).Int(), (x.$high === 0 && x.$low === 0)); + } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { + return (x$1 = $clone(v, reflect.Value).Uint(), (x$1.$high === 0 && x$1.$low === 0)); + } else if ((_1 === (13)) || (_1 === (14))) { + return $clone(v, reflect.Value).Float() === 0; + } else if ((_1 === (20)) || (_1 === (22))) { + return $clone(v, reflect.Value).IsNil(); + } + return false; }; $ptrType(encodeState).prototype.reflectValue = function reflectValue(v, opts) { var {_r$3, e, opts, v, $s, $r, $c} = $restore(this, {v, opts}); @@ -324155,7 +326801,7 @@ $packages["encoding/json"] = (function() { e.Buffer.WriteString("null"); }; marshalerEncoder = function marshalerEncoder$1(e, v, opts) { - var {_r$3, _r$4, _r$5, _tuple, _tuple$1, b, e, err, m, ok, opts, v, $s, $r, $c} = $restore(this, {e, v, opts}); + var {_r$3, _r$4, _r$5, _tuple, _tuple$1, _tuple$2, b, e, err, m, ok, opts, out, v, $s, $r, $c} = $restore(this, {e, v, opts}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if (($clone(v, reflect.Value).Kind() === 22) && $clone(v, reflect.Value).IsNil()) { e.Buffer.WriteString("null"); @@ -324176,17 +326822,22 @@ $packages["encoding/json"] = (function() { /* */ if ($interfaceIsEqual(err, $ifaceNil)) { $s = 3; continue; } /* */ $s = 4; continue; /* if ($interfaceIsEqual(err, $ifaceNil)) { */ case 3: - _r$5 = compact(e.Buffer, b, opts.escapeHTML); /* */ $s = 5; case 5: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - err = _r$5; + e.Buffer.Grow(b.$length); + out = e.Buffer.AvailableBuffer(); + _r$5 = appendCompact(out, b, opts.escapeHTML); /* */ $s = 5; case 5: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$2 = _r$5; + out = _tuple$2[0]; + err = _tuple$2[1]; + e.Buffer.Write(out); /* } */ case 4: if (!($interfaceIsEqual(err, $ifaceNil))) { e.error(new MarshalerError.ptr($clone(v, reflect.Value).Type(), err, "MarshalJSON")); } $s = -1; return; - /* */ } return; } var $f = {$blk: marshalerEncoder$1, $c: true, $r, _r$3, _r$4, _r$5, _tuple, _tuple$1, b, e, err, m, ok, opts, v, $s};return $f; + /* */ } return; } var $f = {$blk: marshalerEncoder$1, $c: true, $r, _r$3, _r$4, _r$5, _tuple, _tuple$1, _tuple$2, b, e, err, m, ok, opts, out, v, $s};return $f; }; addrMarshalerEncoder = function addrMarshalerEncoder$1(e, v, opts) { - var {_r$3, _r$4, _r$5, _tuple, b, e, err, m, opts, v, va, $s, $r, $c} = $restore(this, {e, v, opts}); + var {_r$3, _r$4, _r$5, _tuple, _tuple$1, b, e, err, m, opts, out, v, va, $s, $r, $c} = $restore(this, {e, v, opts}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: va = $clone(v, reflect.Value).Addr(); if ($clone(va, reflect.Value).IsNil()) { @@ -324202,14 +326853,19 @@ $packages["encoding/json"] = (function() { /* */ if ($interfaceIsEqual(err, $ifaceNil)) { $s = 3; continue; } /* */ $s = 4; continue; /* if ($interfaceIsEqual(err, $ifaceNil)) { */ case 3: - _r$5 = compact(e.Buffer, b, opts.escapeHTML); /* */ $s = 5; case 5: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - err = _r$5; + e.Buffer.Grow(b.$length); + out = e.Buffer.AvailableBuffer(); + _r$5 = appendCompact(out, b, opts.escapeHTML); /* */ $s = 5; case 5: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$1 = _r$5; + out = _tuple$1[0]; + err = _tuple$1[1]; + e.Buffer.Write(out); /* } */ case 4: if (!($interfaceIsEqual(err, $ifaceNil))) { e.error(new MarshalerError.ptr($clone(v, reflect.Value).Type(), err, "MarshalJSON")); } $s = -1; return; - /* */ } return; } var $f = {$blk: addrMarshalerEncoder$1, $c: true, $r, _r$3, _r$4, _r$5, _tuple, b, e, err, m, opts, v, va, $s};return $f; + /* */ } return; } var $f = {$blk: addrMarshalerEncoder$1, $c: true, $r, _r$3, _r$4, _r$5, _tuple, _tuple$1, b, e, err, m, opts, out, v, va, $s};return $f; }; textMarshalerEncoder = function textMarshalerEncoder$1(e, v, opts) { var {_r$3, _r$4, _tuple, _tuple$1, b, e, err, m, ok, opts, v, $s, $r, $c} = $restore(this, {e, v, opts}); @@ -324233,7 +326889,7 @@ $packages["encoding/json"] = (function() { if (!($interfaceIsEqual(err, $ifaceNil))) { e.error(new MarshalerError.ptr($clone(v, reflect.Value).Type(), err, "MarshalText")); } - e.stringBytes(b, opts.escapeHTML); + e.Buffer.Write(appendString[0 /* []byte */](e.Buffer.AvailableBuffer(), b, opts.escapeHTML)); $s = -1; return; /* */ } return; } var $f = {$blk: textMarshalerEncoder$1, $c: true, $r, _r$3, _r$4, _tuple, _tuple$1, b, e, err, m, ok, opts, v, $s};return $f; }; @@ -324254,45 +326910,33 @@ $packages["encoding/json"] = (function() { if (!($interfaceIsEqual(err, $ifaceNil))) { e.error(new MarshalerError.ptr($clone(v, reflect.Value).Type(), err, "MarshalText")); } - e.stringBytes(b, opts.escapeHTML); + e.Buffer.Write(appendString[0 /* []byte */](e.Buffer.AvailableBuffer(), b, opts.escapeHTML)); $s = -1; return; /* */ } return; } var $f = {$blk: addrTextMarshalerEncoder$1, $c: true, $r, _r$3, _r$4, _tuple, b, e, err, m, opts, v, va, $s};return $f; }; boolEncoder = function boolEncoder$1(e, v, opts) { - var e, opts, v; - if (opts.quoted) { - e.Buffer.WriteByte(34); - } - if ($clone(v, reflect.Value).Bool()) { - e.Buffer.WriteString("true"); - } else { - e.Buffer.WriteString("false"); - } - if (opts.quoted) { - e.Buffer.WriteByte(34); - } + var b, e, opts, v; + b = e.Buffer.AvailableBuffer(); + b = mayAppendQuote(b, opts.quoted); + b = strconv.AppendBool(b, $clone(v, reflect.Value).Bool()); + b = mayAppendQuote(b, opts.quoted); + e.Buffer.Write(b); }; intEncoder = function intEncoder$1(e, v, opts) { var b, e, opts, v; - b = strconv.AppendInt($subslice(new sliceType$2(e.scratch), 0, 0), $clone(v, reflect.Value).Int(), 10); - if (opts.quoted) { - e.Buffer.WriteByte(34); - } + b = e.Buffer.AvailableBuffer(); + b = mayAppendQuote(b, opts.quoted); + b = strconv.AppendInt(b, $clone(v, reflect.Value).Int(), 10); + b = mayAppendQuote(b, opts.quoted); e.Buffer.Write(b); - if (opts.quoted) { - e.Buffer.WriteByte(34); - } }; uintEncoder = function uintEncoder$1(e, v, opts) { var b, e, opts, v; - b = strconv.AppendUint($subslice(new sliceType$2(e.scratch), 0, 0), $clone(v, reflect.Value).Uint(), 10); - if (opts.quoted) { - e.Buffer.WriteByte(34); - } + b = e.Buffer.AvailableBuffer(); + b = mayAppendQuote(b, opts.quoted); + b = strconv.AppendUint(b, $clone(v, reflect.Value).Uint(), 10); + b = mayAppendQuote(b, opts.quoted); e.Buffer.Write(b); - if (opts.quoted) { - e.Buffer.WriteByte(34); - } }; floatEncoder.prototype.encode = function encode(e, v, opts) { var abs, b, bits, e, f, fmt$1, n, opts, v, x, x$1, x$2, x$3, x$4; @@ -324301,7 +326945,8 @@ $packages["encoding/json"] = (function() { if (math.IsInf(f, 0) || math.IsNaN(f)) { e.error(new UnsupportedValueError.ptr($clone(v, reflect.Value), strconv.FormatFloat(f, 103, -1, ((bits >> 0))))); } - b = $subslice(new sliceType$2(e.scratch), 0, 0); + b = e.Buffer.AvailableBuffer(); + b = mayAppendQuote(b, opts.quoted); abs = math.Abs(f); fmt$1 = 102; if (!((abs === 0))) { @@ -324317,17 +326962,12 @@ $packages["encoding/json"] = (function() { b = $subslice(b, 0, (n - 1 >> 0)); } } - if (opts.quoted) { - e.Buffer.WriteByte(34); - } + b = mayAppendQuote(b, opts.quoted); e.Buffer.Write(b); - if (opts.quoted) { - e.Buffer.WriteByte(34); - } }; $ptrType(floatEncoder).prototype.encode = function(...$args) { return new floatEncoder(this.$get()).encode(...$args); }; stringEncoder = function stringEncoder$1(e, v, opts) { - var {_r$3, _r$4, _r$5, _r$6, _r$7, e, e2, numStr, opts, v, $s, $r, $c} = $restore(this, {e, v, opts}); + var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, b, b$1, e, numStr, opts, v, $s, $r, $c} = $restore(this, {e, v, opts}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: /* */ if ($interfaceIsEqual($clone(v, reflect.Value).Type(), numberType)) { $s = 1; continue; } /* */ $s = 2; continue; @@ -324343,31 +326983,35 @@ $packages["encoding/json"] = (function() { _r$4 = fmt.Errorf("json: invalid number literal %q", new sliceType([new $String(numStr)])); /* */ $s = 6; case 6: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } $r = e.error(_r$4); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 5: - if (opts.quoted) { - e.Buffer.WriteByte(34); - } - e.Buffer.WriteString(numStr); - if (opts.quoted) { - e.Buffer.WriteByte(34); - } + b = e.Buffer.AvailableBuffer(); + b = mayAppendQuote(b, opts.quoted); + b = $appendSlice(b, numStr); + b = mayAppendQuote(b, opts.quoted); + e.Buffer.Write(b); $s = -1; return; /* } */ case 2: /* */ if (opts.quoted) { $s = 8; continue; } /* */ $s = 9; continue; /* if (opts.quoted) { */ case 8: - _r$5 = newEncodeState(); /* */ $s = 11; case 11: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - e2 = _r$5; - _r$6 = $clone(v, reflect.Value).String(); /* */ $s = 12; case 12: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - $r = e2.string(_r$6, opts.escapeHTML); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - e.stringBytes(e2.Buffer.Bytes(), false); - encodeStatePool.Put(e2); + _arg = sliceType$2.nil; + _r$5 = $clone(v, reflect.Value).String(); /* */ $s = 11; case 11: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _arg$1 = _r$5; + _arg$2 = opts.escapeHTML; + _r$6 = appendString[1 /* string */](_arg, _arg$1, _arg$2); /* */ $s = 12; case 12: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + b$1 = _r$6; + e.Buffer.Write(appendString[0 /* []byte */](e.Buffer.AvailableBuffer(), b$1, false)); $s = 10; continue; /* } else { */ case 9: - _r$7 = $clone(v, reflect.Value).String(); /* */ $s = 14; case 14: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - $r = e.string(_r$7, opts.escapeHTML); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _arg$3 = e.Buffer.AvailableBuffer(); + _r$7 = $clone(v, reflect.Value).String(); /* */ $s = 13; case 13: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _arg$4 = _r$7; + _arg$5 = opts.escapeHTML; + _r$8 = appendString[1 /* string */](_arg$3, _arg$4, _arg$5); /* */ $s = 14; case 14: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$9 = e.Buffer.Write(_r$8); /* */ $s = 15; case 15: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$9; /* } */ case 10: $s = -1; return; - /* */ } return; } var $f = {$blk: stringEncoder$1, $c: true, $r, _r$3, _r$4, _r$5, _r$6, _r$7, e, e2, numStr, opts, v, $s};return $f; + /* */ } return; } var $f = {$blk: stringEncoder$1, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, b, b$1, e, numStr, opts, v, $s};return $f; }; isValidNumber = function isValidNumber$1(s) { var s; @@ -324414,23 +327058,22 @@ $packages["encoding/json"] = (function() { return s === ""; }; interfaceEncoder = function interfaceEncoder$1(e, v, opts) { - var {_r$3, e, opts, v, $s, $r, $c} = $restore(this, {e, v, opts}); + var {e, opts, v, $s, $r, $c} = $restore(this, {e, v, opts}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if ($clone(v, reflect.Value).IsNil()) { e.Buffer.WriteString("null"); $s = -1; return; } - _r$3 = $clone(v, reflect.Value).Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $r = e.reflectValue($clone(_r$3, reflect.Value), $clone(opts, encOpts)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = e.reflectValue($clone($clone(v, reflect.Value).Elem(), reflect.Value), $clone(opts, encOpts)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } var $f = {$blk: interfaceEncoder$1, $c: true, $r, _r$3, e, opts, v, $s};return $f; + /* */ } return; } var $f = {$blk: interfaceEncoder$1, $c: true, $r, e, opts, v, $s};return $f; }; unsupportedTypeEncoder = function unsupportedTypeEncoder$1(e, v, param) { var e, param, v; e.error(new UnsupportedTypeError.ptr($clone(v, reflect.Value).Type())); }; $ptrType(structEncoder).prototype.encode = function encode$1(e, v, opts) { - var {_i, _i$1, _r$3, _r$4, _r$5, _ref, _ref$1, _v, e, f, fv, i, i$1, next, opts, se, v, x, $s, $r, $c} = $restore(this, {e, v, opts}); + var {_i, _i$1, _ref, _ref$1, e, f, fv, i, i$1, next, opts, se, v, x, $s, $r, $c} = $restore(this, {e, v, opts}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: se = this; next = 123; @@ -324439,37 +327082,27 @@ $packages["encoding/json"] = (function() { /* while (true) { */ case 1: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } i = _i; - f = (x = se.fields.list, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + f = (x = se.fields.list, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + i, ptrType$9))); fv = v; _ref$1 = f.index; _i$1 = 0; - /* while (true) { */ case 3: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 4; continue; } + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } i$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - /* */ if ($clone(fv, reflect.Value).Kind() === 22) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if ($clone(fv, reflect.Value).Kind() === 22) { */ case 5: + if ($clone(fv, reflect.Value).Kind() === 22) { if ($clone(fv, reflect.Value).IsNil()) { _i++; /* continue FieldLoop; */ $s = 1; continue s; } - _r$3 = $clone(fv, reflect.Value).Elem(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - fv = _r$3; - /* } */ case 6: - _r$4 = $clone(fv, reflect.Value).Field(i$1); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - fv = _r$4; + fv = $clone(fv, reflect.Value).Elem(); + } + fv = $clone(fv, reflect.Value).Field(i$1); _i$1++; - $s = 3; continue; - case 4: - if (!(f.omitEmpty)) { _v = false; $s = 11; continue s; } - _r$5 = isEmptyValue($clone(fv, reflect.Value)); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _v = _r$5; case 11: - /* */ if (_v) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (_v) { */ case 9: + } + if (f.omitEmpty && isEmptyValue($clone(fv, reflect.Value))) { _i++; /* continue; */ $s = 1; continue; - /* } */ case 10: + } e.Buffer.WriteByte(next); next = 44; if (opts.escapeHTML) { @@ -324478,7 +327111,7 @@ $packages["encoding/json"] = (function() { e.Buffer.WriteString(f.nameNonEsc); } opts.quoted = f.quoted; - $r = f.encoder(e, $clone(fv, reflect.Value), $clone(opts, encOpts)); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = f.encoder(e, $clone(fv, reflect.Value), $clone(opts, encOpts)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _i++; $s = 1; continue; case 2: @@ -324488,7 +327121,7 @@ $packages["encoding/json"] = (function() { e.Buffer.WriteByte(125); } $s = -1; return; - /* */ } return; } var $f = {$blk: encode$1, $c: true, $r, _i, _i$1, _r$3, _r$4, _r$5, _ref, _ref$1, _v, e, f, fv, i, i$1, next, opts, se, v, x, $s};return $f; + /* */ } return; } var $f = {$blk: encode$1, $c: true, $r, _i, _i$1, _ref, _ref$1, e, f, fv, i, i$1, next, opts, se, v, x, $s};return $f; }; structEncoder.prototype.encode = function(...$args) { return this.$val.encode(...$args); }; newStructEncoder = function newStructEncoder$1(t) { @@ -324500,7 +327133,7 @@ $packages["encoding/json"] = (function() { /* */ } return; } var $f = {$blk: newStructEncoder$1, $c: true, $r, _r$3, se, t, $s};return $f; }; $ptrType(mapEncoder).prototype.encode = function encode$2(e, v, opts) { - var {_arg, _arg$1, _arg$2, _arg$3, _entry, _i, _key, _r$10, _r$11, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, e, err, i, i$1, kv, me, mi, ok, opts, ptr, sv, v, $s, $deferred, $r, $c} = $restore(this, {e, v, opts}); + var {_arg, _arg$1, _arg$2, _arg$3, _entry, _i, _key, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _tuple, e, err, i, i$1, kv, me, mi, ok, opts, ptr, sv, v, $s, $deferred, $r, $c} = $restore(this, {e, v, opts}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); sv = [sv]; me = this; @@ -324525,55 +327158,51 @@ $packages["encoding/json"] = (function() { $deferred.push([function(_arg, _arg$1) { $mapDelete(_arg, $emptyInterface.keyFor(_arg$1)); }, [e.ptrSeen, new $UnsafePointer(ptr)]]); /* } */ case 2: e.Buffer.WriteByte(123); - _r$4 = $clone(v, reflect.Value).Len(); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - sv[0] = $makeSlice(sliceType$4, _r$4); + sv[0] = $makeSlice(sliceType$4, $clone(v, reflect.Value).Len()); mi = $clone(v, reflect.Value).MapRange(); i = 0; - /* while (true) { */ case 8: - _r$5 = mi.Next(); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* if (!(_r$5)) { break; } */ if(!(_r$5)) { $s = 9; continue; } - _r$6 = mi.Key(); /* */ $s = 11; case 11: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - ((i < 0 || i >= sv[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : sv[0].$array[sv[0].$offset + i]).k = _r$6; - _r$7 = mi.Value(); /* */ $s = 12; case 12: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - ((i < 0 || i >= sv[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : sv[0].$array[sv[0].$offset + i]).v = _r$7; - _r$8 = ((i < 0 || i >= sv[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : sv[0].$array[sv[0].$offset + i]).resolve(); /* */ $s = 13; case 13: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - err = _r$8; - /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 14: - _r$9 = $clone(v, reflect.Value).Type().String(); /* */ $s = 16; case 16: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _arg$2 = new $String(_r$9); - _r$10 = err.Error(); /* */ $s = 17; case 17: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _arg$3 = new $String(_r$10); - _r$11 = fmt.Errorf("json: encoding error for type %q: %q", new sliceType([_arg$2, _arg$3])); /* */ $s = 18; case 18: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - $r = e.error(_r$11); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 15: + /* while (true) { */ case 7: + /* if (!(mi.Next())) { break; } */ if(!(mi.Next())) { $s = 8; continue; } + ((i < 0 || i >= sv[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : sv[0].$array[sv[0].$offset + i]).k = mi.Key(); + ((i < 0 || i >= sv[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : sv[0].$array[sv[0].$offset + i]).v = mi.Value(); + _r$4 = ((i < 0 || i >= sv[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(sv[0].$array, sv[0].$offset + i, ptrType$10)).resolve(); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + err = _r$4; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 10: + _r$5 = $clone(v, reflect.Value).Type().String(); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _arg$2 = new $String(_r$5); + _r$6 = err.Error(); /* */ $s = 13; case 13: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _arg$3 = new $String(_r$6); + _r$7 = fmt.Errorf("json: encoding error for type %q: %q", new sliceType([_arg$2, _arg$3])); /* */ $s = 14; case 14: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $r = e.error(_r$7); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 11: i = i + (1) >> 0; - $s = 8; continue; - case 9: + $s = 7; continue; + case 8: $r = sort.Slice(sv[0], (function(sv) { return function mapEncoder·encode·func1(i$1, j) { var i$1, j; return ((i$1 < 0 || i$1 >= sv[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : sv[0].$array[sv[0].$offset + i$1]).ks < ((j < 0 || j >= sv[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : sv[0].$array[sv[0].$offset + j]).ks; - }; })(sv)); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + }; })(sv)); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _ref = sv[0]; _i = 0; - /* while (true) { */ case 21: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 22; continue; } + /* while (true) { */ case 17: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 18; continue; } i$1 = _i; kv = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), reflectWithString); if (i$1 > 0) { e.Buffer.WriteByte(44); } - e.string(kv.ks, opts.escapeHTML); + e.Buffer.Write(appendString[1 /* string */](e.Buffer.AvailableBuffer(), kv.ks, opts.escapeHTML)); e.Buffer.WriteByte(58); - $r = me.elemEnc(e, $clone(kv.v, reflect.Value), $clone(opts, encOpts)); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = me.elemEnc(e, $clone(kv.v, reflect.Value), $clone(opts, encOpts)); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _i++; - $s = 21; continue; - case 22: + $s = 17; continue; + case 18: e.Buffer.WriteByte(125); e.ptrLevel = e.ptrLevel - (1) >>> 0; $s = -1; return; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: encode$2, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _entry, _i, _key, _r$10, _r$11, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, e, err, i, i$1, kv, me, mi, ok, opts, ptr, sv, v, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: encode$2, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _entry, _i, _key, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _tuple, e, err, i, i$1, kv, me, mi, ok, opts, ptr, sv, v, $s, $deferred};return $f; } } }; mapEncoder.prototype.encode = function(...$args) { return this.$val.encode(...$args); }; newMapEncoder = function newMapEncoder$1(t) { @@ -324600,42 +327229,23 @@ $packages["encoding/json"] = (function() { /* */ } return; } var $f = {$blk: newMapEncoder$1, $c: true, $r, _1, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, me, t, $s};return $f; }; encodeByteSlice = function encodeByteSlice$1(e, v, param) { - var {_r$3, _r$4, _r$5, dst, dst$1, e, enc, encodedLen, param, s, v, $s, $r, $c} = $restore(this, {e, v, param}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var b, e, encodedLen, param, s, v; if ($clone(v, reflect.Value).IsNil()) { e.Buffer.WriteString("null"); - $s = -1; return; + return; } - _r$3 = $clone(v, reflect.Value).Bytes(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - s = _r$3; - e.Buffer.WriteByte(34); + s = $clone(v, reflect.Value).Bytes(); encodedLen = base64.StdEncoding.EncodedLen(s.$length); - /* */ if (encodedLen <= 64) { $s = 2; continue; } - /* */ if (encodedLen <= 1024) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (encodedLen <= 64) { */ case 2: - dst = $subslice(new sliceType$2(e.scratch), 0, encodedLen); - base64.StdEncoding.Encode(dst, s); - e.Buffer.Write(dst); - $s = 5; continue; - /* } else if (encodedLen <= 1024) { */ case 3: - dst$1 = $makeSlice(sliceType$2, encodedLen); - base64.StdEncoding.Encode(dst$1, s); - e.Buffer.Write(dst$1); - $s = 5; continue; - /* } else { */ case 4: - enc = base64.NewEncoder(base64.StdEncoding, e); - _r$4 = enc.Write(s); /* */ $s = 6; case 6: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$4; - _r$5 = enc.Close(); /* */ $s = 7; case 7: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$5; - /* } */ case 5: - e.Buffer.WriteByte(34); - $s = -1; return; - /* */ } return; } var $f = {$blk: encodeByteSlice$1, $c: true, $r, _r$3, _r$4, _r$5, dst, dst$1, e, enc, encodedLen, param, s, v, $s};return $f; + e.Buffer.Grow((1 + encodedLen >> 0) + 1 >> 0); + b = e.Buffer.AvailableBuffer(); + b = $append(b, 34); + base64.StdEncoding.Encode($subslice($subslice(b, b.$length), 0, encodedLen), s); + b = $subslice(b, 0, (b.$length + encodedLen >> 0)); + b = $append(b, 34); + e.Buffer.Write(b); }; $ptrType(sliceEncoder).prototype.encode = function encode$3(e, v, opts) { - var {_arg, _arg$1, _entry, _key, _r$3, _r$4, _tuple, e, ok, opts, ptr, se, v, $s, $deferred, $r, $c} = $restore(this, {e, v, opts}); + var {_arg, _arg$1, _entry, _key, _r$3, _tuple, e, ok, opts, ptr, se, v, $s, $deferred, $r, $c} = $restore(this, {e, v, opts}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); se = this; if ($clone(v, reflect.Value).IsNil()) { @@ -324646,23 +327256,22 @@ $packages["encoding/json"] = (function() { /* */ if (e.ptrLevel > 1000) { $s = 1; continue; } /* */ $s = 2; continue; /* if (e.ptrLevel > 1000) { */ case 1: - _r$3 = $clone(v, reflect.Value).Len(); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - ptr = new structType$1.ptr(new $UnsafePointer($clone(v, reflect.Value).UnsafePointer()), _r$3); + ptr = new structType$1.ptr(new $UnsafePointer($clone(v, reflect.Value).UnsafePointer()), $clone(v, reflect.Value).Len()); _tuple = (_entry = $mapIndex(e.ptrSeen,$emptyInterface.keyFor(new ptr.constructor.elem(ptr))), _entry !== undefined ? [_entry.v, true] : [new structType.ptr(), false]); ok = _tuple[1]; - /* */ if (ok) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (ok) { */ case 4: - _r$4 = fmt.Sprintf("encountered a cycle via %s", new sliceType([$clone(v, reflect.Value).Type()])); /* */ $s = 6; case 6: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $r = e.error(new UnsupportedValueError.ptr($clone(v, reflect.Value), _r$4)); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 5: + /* */ if (ok) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (ok) { */ case 3: + _r$3 = fmt.Sprintf("encountered a cycle via %s", new sliceType([$clone(v, reflect.Value).Type()])); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $r = e.error(new UnsupportedValueError.ptr($clone(v, reflect.Value), _r$3)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 4: _key = new ptr.constructor.elem(ptr); (e.ptrSeen || $throwRuntimeError("assignment to entry in nil map")).set($emptyInterface.keyFor(_key), { k: _key, v: $clone(new structType.ptr(), structType) }); $deferred.push([function(_arg, _arg$1) { $mapDelete(_arg, $emptyInterface.keyFor(_arg$1)); }, [e.ptrSeen, new ptr.constructor.elem(ptr)]]); /* } */ case 2: - $r = se.arrayEnc(e, $clone(v, reflect.Value), $clone(opts, encOpts)); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = se.arrayEnc(e, $clone(v, reflect.Value), $clone(opts, encOpts)); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } e.ptrLevel = e.ptrLevel - (1) >>> 0; $s = -1; return; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: encode$3, $c: true, $r, _arg, _arg$1, _entry, _key, _r$3, _r$4, _tuple, e, ok, opts, ptr, se, v, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: encode$3, $c: true, $r, _arg, _arg$1, _entry, _key, _r$3, _tuple, e, ok, opts, ptr, se, v, $s, $deferred};return $f; } } }; sliceEncoder.prototype.encode = function(...$args) { return this.$val.encode(...$args); }; newSliceEncoder = function newSliceEncoder$1(t) { @@ -324692,29 +327301,24 @@ $packages["encoding/json"] = (function() { /* */ } return; } var $f = {$blk: newSliceEncoder$1, $c: true, $r, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _v, enc, p, t, $s};return $f; }; $ptrType(arrayEncoder).prototype.encode = function encode$4(e, v, opts) { - var {_arg, _arg$1, _arg$2, _r$3, _r$4, ae, e, i, n, opts, v, $s, $r, $c} = $restore(this, {e, v, opts}); + var {ae, e, i, n, opts, v, $s, $r, $c} = $restore(this, {e, v, opts}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: ae = this; e.Buffer.WriteByte(91); - _r$3 = $clone(v, reflect.Value).Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - n = _r$3; + n = $clone(v, reflect.Value).Len(); i = 0; - /* while (true) { */ case 2: - /* if (!(i < n)) { break; } */ if(!(i < n)) { $s = 3; continue; } + /* while (true) { */ case 1: + /* if (!(i < n)) { break; } */ if(!(i < n)) { $s = 2; continue; } if (i > 0) { e.Buffer.WriteByte(44); } - _arg = e; - _r$4 = $clone(v, reflect.Value).Index(i); /* */ $s = 4; case 4: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _arg$1 = $clone(_r$4, reflect.Value); - _arg$2 = $clone(opts, encOpts); - $r = ae.elemEnc(_arg, _arg$1, _arg$2); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = ae.elemEnc(e, $clone($clone(v, reflect.Value).Index(i), reflect.Value), $clone(opts, encOpts)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } i = i + (1) >> 0; - $s = 2; continue; - case 3: + $s = 1; continue; + case 2: e.Buffer.WriteByte(93); $s = -1; return; - /* */ } return; } var $f = {$blk: encode$4, $c: true, $r, _arg, _arg$1, _arg$2, _r$3, _r$4, ae, e, i, n, opts, v, $s};return $f; + /* */ } return; } var $f = {$blk: encode$4, $c: true, $r, ae, e, i, n, opts, v, $s};return $f; }; arrayEncoder.prototype.encode = function(...$args) { return this.$val.encode(...$args); }; newArrayEncoder = function newArrayEncoder$1(t) { @@ -324727,7 +327331,7 @@ $packages["encoding/json"] = (function() { /* */ } return; } var $f = {$blk: newArrayEncoder$1, $c: true, $r, _r$3, _r$4, enc, t, $s};return $f; }; $ptrType(ptrEncoder).prototype.encode = function encode$5(e, v, opts) { - var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _entry, _key, _r$3, _r$4, _r$5, _tuple, e, ok, opts, pe, ptr, v, $s, $deferred, $r, $c} = $restore(this, {e, v, opts}); + var {_arg, _arg$1, _entry, _key, _r$3, _r$4, _tuple, e, ok, opts, pe, ptr, v, $s, $deferred, $r, $c} = $restore(this, {e, v, opts}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); pe = this; if ($clone(v, reflect.Value).IsNil()) { @@ -324751,14 +327355,10 @@ $packages["encoding/json"] = (function() { _key = ptr; (e.ptrSeen || $throwRuntimeError("assignment to entry in nil map")).set($emptyInterface.keyFor(_key), { k: _key, v: $clone(new structType.ptr(), structType) }); $deferred.push([function(_arg, _arg$1) { $mapDelete(_arg, $emptyInterface.keyFor(_arg$1)); }, [e.ptrSeen, ptr]]); /* } */ case 2: - _arg$2 = e; - _r$5 = $clone(v, reflect.Value).Elem(); /* */ $s = 8; case 8: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _arg$3 = $clone(_r$5, reflect.Value); - _arg$4 = $clone(opts, encOpts); - $r = pe.elemEnc(_arg$2, _arg$3, _arg$4); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = pe.elemEnc(e, $clone($clone(v, reflect.Value).Elem(), reflect.Value), $clone(opts, encOpts)); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } e.ptrLevel = e.ptrLevel - (1) >>> 0; $s = -1; return; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: encode$5, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _entry, _key, _r$3, _r$4, _r$5, _tuple, e, ok, opts, pe, ptr, v, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: encode$5, $c: true, $r, _arg, _arg$1, _entry, _key, _r$3, _r$4, _tuple, e, ok, opts, pe, ptr, v, $s, $deferred};return $f; } } }; ptrEncoder.prototype.encode = function(...$args) { return this.$val.encode(...$args); }; newPtrEncoder = function newPtrEncoder$1(t) { @@ -324873,135 +327473,119 @@ $packages["encoding/json"] = (function() { $s = -1; return $ifaceNil; /* */ } return; } var $f = {$blk: resolve, $c: true, $r, _1, _r$3, _r$4, _r$5, _tuple, _tuple$1, buf, err, ok, tm, w, $s};return $f; }; - $ptrType(encodeState).prototype.string = function string(s, escapeHTML) { - var _1, _tuple, b, c, e, escapeHTML, i, s, size, start; - e = this; - e.Buffer.WriteByte(34); + appendString[0 /* []byte */] = function appendString$1(dst, src, escapeHTML) { + var _1, _tuple, b, c, dst, escapeHTML, i, n, size, src, start; + dst = $append(dst, 34); start = 0; i = 0; while (true) { - if (!(i < s.length)) { break; } - b = s.charCodeAt(i); + if (!(i < src.$length)) { break; } + b = ((i < 0 || i >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + i]); if (b < 128) { if (((b < 0 || b >= htmlSafeSet.length) ? ($throwRuntimeError("index out of range"), undefined) : htmlSafeSet[b]) || (!escapeHTML && ((b < 0 || b >= safeSet.length) ? ($throwRuntimeError("index out of range"), undefined) : safeSet[b]))) { i = i + (1) >> 0; continue; } - if (start < i) { - e.Buffer.WriteString($substring(s, start, i)); - } - e.Buffer.WriteByte(92); + dst = $appendSlice(dst, $subslice(src, start, i)); _1 = b; if ((_1 === (92)) || (_1 === (34))) { - e.Buffer.WriteByte(b); + dst = $append(dst, 92, b); } else if (_1 === (10)) { - e.Buffer.WriteByte(110); + dst = $append(dst, 92, 110); } else if (_1 === (13)) { - e.Buffer.WriteByte(114); + dst = $append(dst, 92, 114); } else if (_1 === (9)) { - e.Buffer.WriteByte(116); + dst = $append(dst, 92, 116); } else { - e.Buffer.WriteString("u00"); - e.Buffer.WriteByte(hex.charCodeAt((b >>> 4 << 24 >>> 24))); - e.Buffer.WriteByte(hex.charCodeAt(((b & 15) >>> 0))); + dst = $append(dst, 92, 117, 48, 48, hex.charCodeAt((b >>> 4 << 24 >>> 24)), hex.charCodeAt(((b & 15) >>> 0))); } i = i + (1) >> 0; start = i; continue; } - _tuple = utf8.DecodeRuneInString($substring(s, i)); + n = src.$length - i >> 0; + if (n > 4) { + n = 4; + } + _tuple = utf8.DecodeRuneInString(($bytesToString($subslice(src, i, (i + n >> 0))))); c = _tuple[0]; size = _tuple[1]; if ((c === 65533) && (size === 1)) { - if (start < i) { - e.Buffer.WriteString($substring(s, start, i)); - } - e.Buffer.WriteString("\\ufffd"); + dst = $appendSlice(dst, $subslice(src, start, i)); + dst = $appendSlice(dst, "\\ufffd"); i = i + (size) >> 0; start = i; continue; } if ((c === 8232) || (c === 8233)) { - if (start < i) { - e.Buffer.WriteString($substring(s, start, i)); - } - e.Buffer.WriteString("\\u202"); - e.Buffer.WriteByte(hex.charCodeAt((c & 15))); + dst = $appendSlice(dst, $subslice(src, start, i)); + dst = $append(dst, 92, 117, 50, 48, 50, hex.charCodeAt((c & 15))); i = i + (size) >> 0; start = i; continue; } i = i + (size) >> 0; } - if (start < s.length) { - e.Buffer.WriteString($substring(s, start)); - } - e.Buffer.WriteByte(34); + dst = $appendSlice(dst, $subslice(src, start)); + dst = $append(dst, 34); + return dst; }; - $ptrType(encodeState).prototype.stringBytes = function stringBytes(s, escapeHTML) { - var _1, _tuple, b, c, e, escapeHTML, i, s, size, start; - e = this; - e.Buffer.WriteByte(34); + appendString[1 /* string */] = function appendString$2(dst, src, escapeHTML) { + var _1, _tuple, b, c, dst, escapeHTML, i, n, size, src, start; + dst = $append(dst, 34); start = 0; i = 0; while (true) { - if (!(i < s.$length)) { break; } - b = ((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i]); + if (!(i < src.length)) { break; } + b = src.charCodeAt(i); if (b < 128) { if (((b < 0 || b >= htmlSafeSet.length) ? ($throwRuntimeError("index out of range"), undefined) : htmlSafeSet[b]) || (!escapeHTML && ((b < 0 || b >= safeSet.length) ? ($throwRuntimeError("index out of range"), undefined) : safeSet[b]))) { i = i + (1) >> 0; continue; } - if (start < i) { - e.Buffer.Write($subslice(s, start, i)); - } - e.Buffer.WriteByte(92); + dst = $appendSlice(dst, $substring(src, start, i)); _1 = b; if ((_1 === (92)) || (_1 === (34))) { - e.Buffer.WriteByte(b); + dst = $append(dst, 92, b); } else if (_1 === (10)) { - e.Buffer.WriteByte(110); + dst = $append(dst, 92, 110); } else if (_1 === (13)) { - e.Buffer.WriteByte(114); + dst = $append(dst, 92, 114); } else if (_1 === (9)) { - e.Buffer.WriteByte(116); + dst = $append(dst, 92, 116); } else { - e.Buffer.WriteString("u00"); - e.Buffer.WriteByte(hex.charCodeAt((b >>> 4 << 24 >>> 24))); - e.Buffer.WriteByte(hex.charCodeAt(((b & 15) >>> 0))); + dst = $append(dst, 92, 117, 48, 48, hex.charCodeAt((b >>> 4 << 24 >>> 24)), hex.charCodeAt(((b & 15) >>> 0))); } i = i + (1) >> 0; start = i; continue; } - _tuple = utf8.DecodeRune($subslice(s, i)); + n = src.length - i >> 0; + if (n > 4) { + n = 4; + } + _tuple = utf8.DecodeRuneInString(($substring(src, i, (i + n >> 0)))); c = _tuple[0]; size = _tuple[1]; if ((c === 65533) && (size === 1)) { - if (start < i) { - e.Buffer.Write($subslice(s, start, i)); - } - e.Buffer.WriteString("\\ufffd"); + dst = $appendSlice(dst, $substring(src, start, i)); + dst = $appendSlice(dst, "\\ufffd"); i = i + (size) >> 0; start = i; continue; } if ((c === 8232) || (c === 8233)) { - if (start < i) { - e.Buffer.Write($subslice(s, start, i)); - } - e.Buffer.WriteString("\\u202"); - e.Buffer.WriteByte(hex.charCodeAt((c & 15))); + dst = $appendSlice(dst, $substring(src, start, i)); + dst = $append(dst, 92, 117, 50, 48, 50, hex.charCodeAt((c & 15))); i = i + (size) >> 0; start = i; continue; } i = i + (size) >> 0; } - if (start < s.$length) { - e.Buffer.Write($subslice(s, start)); - } - e.Buffer.WriteByte(34); + dst = $appendSlice(dst, $substring(src, start)); + dst = $append(dst, 34); + return dst; }; byIndex.prototype.Len = function Len() { var x; @@ -325039,19 +327623,18 @@ $packages["encoding/json"] = (function() { }; $ptrType(byIndex).prototype.Less = function(...$args) { return this.$get().Less(...$args); }; typeFields = function typeFields$1(t) { - var {_1, _entry, _entry$1, _entry$2, _entry$3, _i, _i$1, _i$2, _key, _key$1, _key$2, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, _tuple$1, _v, _v$1, _v$2, advance, count, current, dominant, f, f$1, fi, field$1, field$2, fields, fj, ft, i, i$1, i$2, i$3, index, name, name$1, nameEscBuf, nameIndex, next, nextCount, ok, opts, out, quoted, sf, t, t$1, tag, tagged, visited, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {t}); + var {_1, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _i, _i$1, _i$2, _key, _key$1, _key$2, _key$3, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, _tuple$1, _tuple$2, _v, _v$1, _v$2, advance, count, current, dominant, exactNameIndex, f, f$1, fi, field$1, field$2, fields, fj, foldedNameIndex, ft, i, i$1, i$2, i$3, index, name, name$1, nameEscBuf, next, nextCount, ok, ok$1, opts, out, quoted, sf, t, t$1, tag, tagged, visited, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {t}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: fields = [fields]; - nameEscBuf = [nameEscBuf]; current = new sliceType$3([]); - next = new sliceType$3([$clone(new field.ptr("", sliceType$2.nil, $throwNilPointerError, "", "", false, sliceType$1.nil, t, false, false, $throwNilPointerError), field)]); + next = new sliceType$3([$clone(new field.ptr("", sliceType$2.nil, "", "", false, sliceType$1.nil, t, false, false, $throwNilPointerError), field)]); _tmp = false; _tmp$1 = false; count = _tmp; nextCount = _tmp$1; visited = $makeMap(reflect.Type.keyFor, []); fields[0] = sliceType$3.nil; - nameEscBuf[0] = new bytes.Buffer.ptr(sliceType$2.nil, 0, 0); + nameEscBuf = sliceType$2.nil; /* while (true) { */ case 1: /* if (!(next.$length > 0)) { break; } */ if(!(next.$length > 0)) { $s = 2; continue; } _tmp$2 = next; @@ -325150,14 +327733,10 @@ $packages["encoding/json"] = (function() { if (name === "") { name = sf.Name; } - field$1 = new field.ptr(name, sliceType$2.nil, $throwNilPointerError, "", "", tagged, index, ft, new tagOptions(opts).Contains("omitempty"), quoted, $throwNilPointerError); + field$1 = new field.ptr(name, sliceType$2.nil, "", "", tagged, index, ft, new tagOptions(opts).Contains("omitempty"), quoted, $throwNilPointerError); field$1.nameBytes = (new sliceType$2($stringToBytes(field$1.name))); - field$1.equalFold = foldFunc(field$1.nameBytes); - nameEscBuf[0].Reset(); - nameEscBuf[0].WriteString("\""); - HTMLEscape(nameEscBuf[0], field$1.nameBytes); - nameEscBuf[0].WriteString("\":"); - field$1.nameEscHTML = nameEscBuf[0].String(); + nameEscBuf = appendHTMLEscape($subslice(nameEscBuf, 0, 0), field$1.nameBytes); + field$1.nameEscHTML = "\"" + ($bytesToString(nameEscBuf)) + "\":"; field$1.nameNonEsc = "\"" + field$1.name + "\":"; fields[0] = $append(fields[0], field$1); if ((_entry$1 = $mapIndex(count,reflect.Type.keyFor(f.typ)), _entry$1 !== undefined ? _entry$1.v : 0) > 1) { @@ -325171,7 +327750,7 @@ $packages["encoding/json"] = (function() { /* */ $s = 35; continue; /* if ((_entry$3 = $mapIndex(nextCount,reflect.Type.keyFor(ft)), _entry$3 !== undefined ? _entry$3.v : 0) === 1) { */ case 34: _r$13 = ft.Name(); /* */ $s = 36; case 36: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - next = $append(next, new field.ptr(_r$13, sliceType$2.nil, $throwNilPointerError, "", "", false, index, ft, false, false, $throwNilPointerError)); + next = $append(next, new field.ptr(_r$13, sliceType$2.nil, "", "", false, index, ft, false, false, $throwNilPointerError)); /* } */ case 35: i = i + (1) >> 0; $s = 5; continue; @@ -325181,7 +327760,7 @@ $packages["encoding/json"] = (function() { case 4: $s = 1; continue; case 2: - $r = sort.Slice(fields[0], (function(fields, nameEscBuf) { return function typeFields·func1(i$1, j) { + $r = sort.Slice(fields[0], (function(fields) { return function typeFields·func1(i$1, j) { var i$1, j, x$2; x$2 = fields[0]; if (!(((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$1]).name === ((j < 0 || j >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + j]).name)) { @@ -325194,7 +327773,7 @@ $packages["encoding/json"] = (function() { return ((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$1]).tag; } return ($convertSliceType(x$2, byIndex)).Less(i$1, j); - }; })(fields, nameEscBuf)); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + }; })(fields)); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } out = $subslice(fields[0], 0, 0); _tmp$6 = 0; _tmp$7 = 0; @@ -325233,30 +327812,36 @@ $packages["encoding/json"] = (function() { /* while (true) { */ case 39: /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 40; continue; } i$2 = _i$1; - f$1 = ((i$2 < 0 || i$2 >= fields[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : fields[0].$array[fields[0].$offset + i$2]); + f$1 = ((i$2 < 0 || i$2 >= fields[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(fields[0].$array, fields[0].$offset + i$2, ptrType$9)); _r$14 = typeByIndex(t, f$1.index); /* */ $s = 41; case 41: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } _r$15 = typeEncoder(_r$14); /* */ $s = 42; case 42: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } f$1.encoder = _r$15; _i$1++; $s = 39; continue; case 40: - nameIndex = (x$3 = fields[0].$length, ((x$3 < 0 || x$3 > 2147483647) ? $throwRuntimeError("makemap: size out of range") : new $global.Map())); + exactNameIndex = (x$3 = fields[0].$length, ((x$3 < 0 || x$3 > 2147483647) ? $throwRuntimeError("makemap: size out of range") : new $global.Map())); + foldedNameIndex = (x$4 = fields[0].$length, ((x$4 < 0 || x$4 > 2147483647) ? $throwRuntimeError("makemap: size out of range") : new $global.Map())); _ref$2 = fields[0]; _i$2 = 0; while (true) { if (!(_i$2 < _ref$2.$length)) { break; } i$3 = _i$2; field$2 = $clone(((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]), field); - _key$2 = field$2.name; (nameIndex || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$2), { k: _key$2, v: i$3 }); + _key$2 = field$2.name; (exactNameIndex || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$2), { k: _key$2, v: ((i$3 < 0 || i$3 >= fields[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(fields[0].$array, fields[0].$offset + i$3, ptrType$9)) }); + _tuple$2 = (_entry$4 = $mapIndex(foldedNameIndex,$String.keyFor(($bytesToString(foldName(field$2.nameBytes))))), _entry$4 !== undefined ? [_entry$4.v, true] : [ptrType$9.nil, false]); + ok$1 = _tuple$2[1]; + if (!ok$1) { + _key$3 = ($bytesToString(foldName(field$2.nameBytes))); (foldedNameIndex || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$3), { k: _key$3, v: ((i$3 < 0 || i$3 >= fields[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(fields[0].$array, fields[0].$offset + i$3, ptrType$9)) }); + } _i$2++; } - $s = -1; return new structFields.ptr(fields[0], nameIndex); - /* */ } return; } var $f = {$blk: typeFields$1, $c: true, $r, _1, _entry, _entry$1, _entry$2, _entry$3, _i, _i$1, _i$2, _key, _key$1, _key$2, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, _tuple$1, _v, _v$1, _v$2, advance, count, current, dominant, f, f$1, fi, field$1, field$2, fields, fj, ft, i, i$1, i$2, i$3, index, name, name$1, nameEscBuf, nameIndex, next, nextCount, ok, opts, out, quoted, sf, t, t$1, tag, tagged, visited, x, x$1, x$2, x$3, $s};return $f; + $s = -1; return new structFields.ptr(fields[0], exactNameIndex, foldedNameIndex); + /* */ } return; } var $f = {$blk: typeFields$1, $c: true, $r, _1, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _i, _i$1, _i$2, _key, _key$1, _key$2, _key$3, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, _tuple$1, _tuple$2, _v, _v$1, _v$2, advance, count, current, dominant, exactNameIndex, f, f$1, fi, field$1, field$2, fields, fj, foldedNameIndex, ft, i, i$1, i$2, i$3, index, name, name$1, nameEscBuf, next, nextCount, ok, ok$1, opts, out, quoted, sf, t, t$1, tag, tagged, visited, x, x$1, x$2, x$3, x$4, $s};return $f; }; dominantField = function dominantField$1(fields) { var fields; if (fields.$length > 1 && ((0 >= fields.$length ? ($throwRuntimeError("index out of range"), undefined) : fields.$array[fields.$offset + 0]).index.$length === (1 >= fields.$length ? ($throwRuntimeError("index out of range"), undefined) : fields.$array[fields.$offset + 1]).index.$length) && (0 >= fields.$length ? ($throwRuntimeError("index out of range"), undefined) : fields.$array[fields.$offset + 0]).tag === (1 >= fields.$length ? ($throwRuntimeError("index out of range"), undefined) : fields.$array[fields.$offset + 1]).tag) { - return [new field.ptr("", sliceType$2.nil, $throwNilPointerError, "", "", false, sliceType$1.nil, $ifaceNil, false, false, $throwNilPointerError), false]; + return [new field.ptr("", sliceType$2.nil, "", "", false, sliceType$1.nil, $ifaceNil, false, false, $throwNilPointerError), false]; } return [(0 >= fields.$length ? ($throwRuntimeError("index out of range"), undefined) : fields.$array[fields.$offset + 0]), true]; }; @@ -325278,6 +327863,13 @@ $packages["encoding/json"] = (function() { $s = -1; return $assertType(f$1, structFields); /* */ } return; } var $f = {$blk: cachedTypeFields$1, $c: true, $r, _arg, _arg$1, _r$3, _r$4, _tuple, _tuple$1, f, f$1, ok, t, x, $s};return $f; }; + mayAppendQuote = function mayAppendQuote$1(b, quoted) { + var b, quoted; + if (quoted) { + b = $append(b, 34); + } + return b; + }; $ptrType(UnmarshalTypeError).prototype.Error = function Error$5() { var {$24r, $24r$1, _r$3, _r$4, e, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: @@ -325315,27 +327907,26 @@ $packages["encoding/json"] = (function() { /* */ } return; } var $f = {$blk: Error$7, $c: true, $r, $24r, $24r$1, _r$3, _r$4, _r$5, e, $s};return $f; }; $ptrType(decodeState).prototype.unmarshal = function unmarshal(v) { - var {$24r, _r$3, _r$4, _r$5, d, err, rv, v, $s, $r, $c} = $restore(this, {v}); + var {$24r, _r$3, _r$4, d, err, rv, v, $s, $r, $c} = $restore(this, {v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: d = this; - _r$3 = reflect.ValueOf(v); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - rv = _r$3; + rv = reflect.ValueOf(v); if (!(($clone(rv, reflect.Value).Kind() === 22)) || $clone(rv, reflect.Value).IsNil()) { $s = -1; return new InvalidUnmarshalError.ptr(reflect.TypeOf(v)); } d.scan.reset(); - $r = d.scanWhile(9); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$4 = d.value($clone(rv, reflect.Value)); /* */ $s = 3; case 3: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - err = _r$4; - /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 4: - _r$5 = d.addErrorContext(err); /* */ $s = 6; case 6: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - $24r = _r$5; - $s = 7; case 7: return $24r; - /* } */ case 5: + $r = d.scanWhile(9); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$3 = d.value($clone(rv, reflect.Value)); /* */ $s = 2; case 2: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + err = _r$3; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 3: + _r$4 = d.addErrorContext(err); /* */ $s = 5; case 5: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r = _r$4; + $s = 6; case 6: return $24r; + /* } */ case 4: $s = -1; return d.savedError; - /* */ } return; } var $f = {$blk: unmarshal, $c: true, $r, $24r, _r$3, _r$4, _r$5, d, err, rv, v, $s};return $f; + /* */ } return; } var $f = {$blk: unmarshal, $c: true, $r, $24r, _r$3, _r$4, d, err, rv, v, $s};return $f; }; Number.prototype.String = function String$1() { var n; @@ -325393,9 +327984,9 @@ $packages["encoding/json"] = (function() { /* */ $s = 2; continue; /* if (!(d.errorContext === ptrType$4.nil) && (!($interfaceIsEqual(d.errorContext.Struct, $ifaceNil)) || d.errorContext.FieldStack.$length > 0)) { */ case 1: _ref = err; - /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 3; continue; } /* */ $s = 4; continue; - /* if ($assertType(_ref, ptrType$10, true)[1]) { */ case 3: + /* if ($assertType(_ref, ptrType$11, true)[1]) { */ case 3: err$1 = _ref.$val; _r$3 = d.errorContext.Struct.Name(); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } err$1.Struct = _r$3; @@ -325611,7 +328202,7 @@ $packages["encoding/json"] = (function() { /* */ } return; } var $f = {$blk: valueQuoted, $c: true, $r, _1, _r$3, _ref, d, v, x, $s};return $f; }; indirect = function indirect$1(v, decodingNull) { - var {_r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _v, _v$1, _v$2, _v$3, decodingNull, e, haveAddr, ok, ok$1, u, u$1, v, v0, $s, $r, $c} = $restore(this, {v, decodingNull}); + var {_r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _tuple, _tuple$1, _v, decodingNull, e, haveAddr, ok, ok$1, u, u$1, v, v0, $s, $r, $c} = $restore(this, {v, decodingNull}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: v0 = v; haveAddr = false; @@ -325625,91 +328216,67 @@ $packages["encoding/json"] = (function() { v = $clone(v, reflect.Value).Addr(); /* } */ case 2: /* while (true) { */ case 5: - /* */ if (($clone(v, reflect.Value).Kind() === 20) && !$clone(v, reflect.Value).IsNil()) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (($clone(v, reflect.Value).Kind() === 20) && !$clone(v, reflect.Value).IsNil()) { */ case 7: - _r$4 = $clone(v, reflect.Value).Elem(); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - e = _r$4; - if (!(($clone(e, reflect.Value).Kind() === 22) && !$clone(e, reflect.Value).IsNil())) { _v$1 = false; $s = 12; continue s; } - if (!decodingNull) { _v$2 = true; $s = 13; continue s; } - _r$5 = $clone(e, reflect.Value).Elem(); /* */ $s = 14; case 14: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$6 = $clone(_r$5, reflect.Value).Kind(); /* */ $s = 15; case 15: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _v$2 = _r$6 === 22; case 13: - _v$1 = _v$2; case 12: - /* */ if (_v$1) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (_v$1) { */ case 10: + if (($clone(v, reflect.Value).Kind() === 20) && !$clone(v, reflect.Value).IsNil()) { + e = $clone(v, reflect.Value).Elem(); + if (($clone(e, reflect.Value).Kind() === 22) && !$clone(e, reflect.Value).IsNil() && (!decodingNull || ($clone($clone(e, reflect.Value).Elem(), reflect.Value).Kind() === 22))) { haveAddr = false; v = e; /* continue; */ $s = 5; continue; - /* } */ case 11: - /* } */ case 8: + } + } if (!(($clone(v, reflect.Value).Kind() === 22))) { /* break; */ $s = 6; continue; } if (decodingNull && $clone(v, reflect.Value).CanSet()) { /* break; */ $s = 6; continue; } - _r$7 = $clone(v, reflect.Value).Elem(); /* */ $s = 19; case 19: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _r$8 = $clone(_r$7, reflect.Value).Kind(); /* */ $s = 20; case 20: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - if (!(_r$8 === 20)) { _v$3 = false; $s = 18; continue s; } - _r$9 = $clone(v, reflect.Value).Elem(); /* */ $s = 21; case 21: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _r$10 = $clone(_r$9, reflect.Value).Elem(); /* */ $s = 22; case 22: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _v$3 = $equal(_r$10, v, reflect.Value); case 18: - /* */ if (_v$3) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (_v$3) { */ case 16: - _r$11 = $clone(v, reflect.Value).Elem(); /* */ $s = 23; case 23: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - v = _r$11; + if (($clone($clone(v, reflect.Value).Elem(), reflect.Value).Kind() === 20) && $equal($clone($clone(v, reflect.Value).Elem(), reflect.Value).Elem(), v, reflect.Value)) { + v = $clone(v, reflect.Value).Elem(); /* break; */ $s = 6; continue; - /* } */ case 17: - /* */ if ($clone(v, reflect.Value).IsNil()) { $s = 24; continue; } - /* */ $s = 25; continue; - /* if ($clone(v, reflect.Value).IsNil()) { */ case 24: - _r$12 = $clone(v, reflect.Value).Type().Elem(); /* */ $s = 26; case 26: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _r$13 = reflect.New(_r$12); /* */ $s = 27; case 27: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - $r = $clone(v, reflect.Value).Set($clone(_r$13, reflect.Value)); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 25: - _r$14 = $clone(v, reflect.Value).Type().NumMethod(); /* */ $s = 31; case 31: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - /* */ if (_r$14 > 0 && $clone(v, reflect.Value).CanInterface()) { $s = 29; continue; } - /* */ $s = 30; continue; - /* if (_r$14 > 0 && $clone(v, reflect.Value).CanInterface()) { */ case 29: - _r$15 = $clone(v, reflect.Value).Interface(); /* */ $s = 32; case 32: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - _tuple = $assertType(_r$15, Unmarshaler, true); + } + /* */ if ($clone(v, reflect.Value).IsNil()) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if ($clone(v, reflect.Value).IsNil()) { */ case 7: + _r$4 = $clone(v, reflect.Value).Type().Elem(); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$5 = reflect.New(_r$4); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $r = $clone(v, reflect.Value).Set($clone(_r$5, reflect.Value)); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 8: + _r$6 = $clone(v, reflect.Value).Type().NumMethod(); /* */ $s = 14; case 14: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + /* */ if (_r$6 > 0 && $clone(v, reflect.Value).CanInterface()) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (_r$6 > 0 && $clone(v, reflect.Value).CanInterface()) { */ case 12: + _r$7 = $clone(v, reflect.Value).Interface(); /* */ $s = 15; case 15: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _tuple = $assertType(_r$7, Unmarshaler, true); u = _tuple[0]; ok = _tuple[1]; if (ok) { - $s = -1; return [u, $ifaceNil, new reflect.Value.ptr(ptrType$11.nil, 0, 0)]; + $s = -1; return [u, $ifaceNil, new reflect.Value.ptr(ptrType$12.nil, 0, 0)]; } - /* */ if (!decodingNull) { $s = 33; continue; } - /* */ $s = 34; continue; - /* if (!decodingNull) { */ case 33: - _r$16 = $clone(v, reflect.Value).Interface(); /* */ $s = 35; case 35: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - _tuple$1 = $assertType(_r$16, encoding.TextUnmarshaler, true); + /* */ if (!decodingNull) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (!decodingNull) { */ case 16: + _r$8 = $clone(v, reflect.Value).Interface(); /* */ $s = 18; case 18: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _tuple$1 = $assertType(_r$8, encoding.TextUnmarshaler, true); u$1 = _tuple$1[0]; ok$1 = _tuple$1[1]; if (ok$1) { - $s = -1; return [$ifaceNil, u$1, new reflect.Value.ptr(ptrType$11.nil, 0, 0)]; + $s = -1; return [$ifaceNil, u$1, new reflect.Value.ptr(ptrType$12.nil, 0, 0)]; } - /* } */ case 34: - /* } */ case 30: - /* */ if (haveAddr) { $s = 36; continue; } - /* */ $s = 37; continue; - /* if (haveAddr) { */ case 36: + /* } */ case 17: + /* } */ case 13: + if (haveAddr) { v = v0; haveAddr = false; - $s = 38; continue; - /* } else { */ case 37: - _r$17 = $clone(v, reflect.Value).Elem(); /* */ $s = 39; case 39: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - v = _r$17; - /* } */ case 38: + } else { + v = $clone(v, reflect.Value).Elem(); + } $s = 5; continue; case 6: $s = -1; return [$ifaceNil, $ifaceNil, v]; - /* */ } return; } var $f = {$blk: indirect$1, $c: true, $r, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _v, _v$1, _v$2, _v$3, decodingNull, e, haveAddr, ok, ok$1, u, u$1, v, v0, $s};return $f; + /* */ } return; } var $f = {$blk: indirect$1, $c: true, $r, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _tuple, _tuple$1, _v, decodingNull, e, haveAddr, ok, ok$1, u, u$1, v, v0, $s};return $f; }; $ptrType(decodeState).prototype.array = function array(v) { - var {$24r, _1, _arg, _arg$1, _arg$2, _q, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$20, _r$21, _r$22, _r$23, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, ai, d, err, err$1, i, newcap, newv, pv, start, u, ut, v, z, $s, $r, $c} = $restore(this, {v}); + var {$24r, _1, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _tuple, ai, d, err, err$1, i, pv, start, u, ut, v, $s, $r, $c} = $restore(this, {v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: d = this; _r$3 = indirect($clone(v, reflect.Value), false); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } @@ -325744,124 +328311,93 @@ $packages["encoding/json"] = (function() { /* if ($clone(v, reflect.Value).NumMethod() === 0) { */ case 16: _r$5 = d.arrayInterface(); /* */ $s = 18; case 18: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } ai = _r$5; - _r$6 = reflect.ValueOf(ai); /* */ $s = 19; case 19: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - $r = $clone(v, reflect.Value).Set($clone(_r$6, reflect.Value)); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = $clone(v, reflect.Value).Set($clone(reflect.ValueOf(ai), reflect.Value)); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return $ifaceNil; /* } */ case 17: - $r = d.saveError(new UnmarshalTypeError.ptr("array", $clone(v, reflect.Value).Type(), (new $Int64(0, d.off)), "", "")); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = d.skip(); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = d.saveError(new UnmarshalTypeError.ptr("array", $clone(v, reflect.Value).Type(), (new $Int64(0, d.off)), "", "")); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = d.skip(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return $ifaceNil; /* } else if ((_1 === (17)) || (_1 === (23))) { */ case 13: /* break; */ $s = 11; continue; $s = 15; continue; /* } else { */ case 14: - $r = d.saveError(new UnmarshalTypeError.ptr("array", $clone(v, reflect.Value).Type(), (new $Int64(0, d.off)), "", "")); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = d.skip(); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = d.saveError(new UnmarshalTypeError.ptr("array", $clone(v, reflect.Value).Type(), (new $Int64(0, d.off)), "", "")); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = d.skip(); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return $ifaceNil; /* } */ case 15: case 11: i = 0; - /* while (true) { */ case 25: - $r = d.scanWhile(9); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* while (true) { */ case 24: + $r = d.scanWhile(9); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } if (d.opcode === 8) { - /* break; */ $s = 26; continue; + /* break; */ $s = 25; continue; } - /* */ if ($clone(v, reflect.Value).Kind() === 23) { $s = 28; continue; } - /* */ $s = 29; continue; - /* if ($clone(v, reflect.Value).Kind() === 23) { */ case 28: - _r$7 = $clone(v, reflect.Value).Cap(); /* */ $s = 32; case 32: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - /* */ if (i >= _r$7) { $s = 30; continue; } - /* */ $s = 31; continue; - /* if (i >= _r$7) { */ case 30: - _r$8 = $clone(v, reflect.Value).Cap(); /* */ $s = 33; case 33: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _r$9 = $clone(v, reflect.Value).Cap(); /* */ $s = 34; case 34: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - newcap = _r$8 + (_q = _r$9 / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0; - if (newcap < 4) { - newcap = 4; - } - _arg = $clone(v, reflect.Value).Type(); - _r$10 = $clone(v, reflect.Value).Len(); /* */ $s = 35; case 35: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _arg$1 = _r$10; - _arg$2 = newcap; - _r$11 = reflect.MakeSlice(_arg, _arg$1, _arg$2); /* */ $s = 36; case 36: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - newv = _r$11; - _r$12 = reflect.Copy($clone(newv, reflect.Value), $clone(v, reflect.Value)); /* */ $s = 37; case 37: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _r$12; - $r = $clone(v, reflect.Value).Set($clone(newv, reflect.Value)); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 31: - _r$13 = $clone(v, reflect.Value).Len(); /* */ $s = 41; case 41: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - /* */ if (i >= _r$13) { $s = 39; continue; } - /* */ $s = 40; continue; - /* if (i >= _r$13) { */ case 39: + if ($clone(v, reflect.Value).Kind() === 23) { + if (i >= $clone(v, reflect.Value).Cap()) { + $clone(v, reflect.Value).Grow(1); + } + if (i >= $clone(v, reflect.Value).Len()) { $clone(v, reflect.Value).SetLen(i + 1 >> 0); - /* } */ case 40: - /* } */ case 29: - _r$14 = $clone(v, reflect.Value).Len(); /* */ $s = 45; case 45: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - /* */ if (i < _r$14) { $s = 42; continue; } - /* */ $s = 43; continue; - /* if (i < _r$14) { */ case 42: - _r$15 = $clone(v, reflect.Value).Index(i); /* */ $s = 46; case 46: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - _r$16 = d.value($clone(_r$15, reflect.Value)); /* */ $s = 47; case 47: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - err = _r$16; + } + } + /* */ if (i < $clone(v, reflect.Value).Len()) { $s = 27; continue; } + /* */ $s = 28; continue; + /* if (i < $clone(v, reflect.Value).Len()) { */ case 27: + _r$6 = d.value($clone($clone(v, reflect.Value).Index(i), reflect.Value)); /* */ $s = 30; case 30: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + err = _r$6; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return err; } - $s = 44; continue; - /* } else { */ case 43: - _r$17 = d.value($clone(new reflect.Value.ptr(ptrType$11.nil, 0, 0), reflect.Value)); /* */ $s = 48; case 48: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - err$1 = _r$17; + $s = 29; continue; + /* } else { */ case 28: + _r$7 = d.value($clone(new reflect.Value.ptr(ptrType$12.nil, 0, 0), reflect.Value)); /* */ $s = 31; case 31: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + err$1 = _r$7; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return err$1; } - /* } */ case 44: + /* } */ case 29: i = i + (1) >> 0; - /* */ if (d.opcode === 9) { $s = 49; continue; } - /* */ $s = 50; continue; - /* if (d.opcode === 9) { */ case 49: - $r = d.scanWhile(9); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 50: + /* */ if (d.opcode === 9) { $s = 32; continue; } + /* */ $s = 33; continue; + /* if (d.opcode === 9) { */ case 32: + $r = d.scanWhile(9); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 33: if (d.opcode === 8) { - /* break; */ $s = 26; continue; + /* break; */ $s = 25; continue; } if (!((d.opcode === 7))) { $panic(new $String("JSON decoder out of sync - data changing underfoot?")); } - $s = 25; continue; - case 26: - _r$18 = $clone(v, reflect.Value).Len(); /* */ $s = 54; case 54: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - /* */ if (i < _r$18) { $s = 52; continue; } - /* */ $s = 53; continue; - /* if (i < _r$18) { */ case 52: - /* */ if ($clone(v, reflect.Value).Kind() === 17) { $s = 55; continue; } - /* */ $s = 56; continue; - /* if ($clone(v, reflect.Value).Kind() === 17) { */ case 55: - _r$19 = $clone(v, reflect.Value).Type().Elem(); /* */ $s = 58; case 58: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - _r$20 = reflect.Zero(_r$19); /* */ $s = 59; case 59: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - z = _r$20; - /* while (true) { */ case 60: - _r$21 = $clone(v, reflect.Value).Len(); /* */ $s = 62; case 62: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } - /* if (!(i < _r$21)) { break; } */ if(!(i < _r$21)) { $s = 61; continue; } - _r$22 = $clone(v, reflect.Value).Index(i); /* */ $s = 63; case 63: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - $r = $clone(_r$22, reflect.Value).Set($clone(z, reflect.Value)); /* */ $s = 64; case 64: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 24; continue; + case 25: + /* */ if (i < $clone(v, reflect.Value).Len()) { $s = 35; continue; } + /* */ $s = 36; continue; + /* if (i < $clone(v, reflect.Value).Len()) { */ case 35: + /* */ if ($clone(v, reflect.Value).Kind() === 17) { $s = 37; continue; } + /* */ $s = 38; continue; + /* if ($clone(v, reflect.Value).Kind() === 17) { */ case 37: + /* while (true) { */ case 40: + /* if (!(i < $clone(v, reflect.Value).Len())) { break; } */ if(!(i < $clone(v, reflect.Value).Len())) { $s = 41; continue; } + $r = $clone($clone(v, reflect.Value).Index(i), reflect.Value).SetZero(); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } i = i + (1) >> 0; - $s = 60; continue; - case 61: - $s = 57; continue; - /* } else { */ case 56: + $s = 40; continue; + case 41: + $s = 39; continue; + /* } else { */ case 38: $clone(v, reflect.Value).SetLen(i); - /* } */ case 57: - /* } */ case 53: - /* */ if ((i === 0) && ($clone(v, reflect.Value).Kind() === 23)) { $s = 65; continue; } - /* */ $s = 66; continue; - /* if ((i === 0) && ($clone(v, reflect.Value).Kind() === 23)) { */ case 65: - _r$23 = reflect.MakeSlice($clone(v, reflect.Value).Type(), 0, 0); /* */ $s = 67; case 67: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - $r = $clone(v, reflect.Value).Set($clone(_r$23, reflect.Value)); /* */ $s = 68; case 68: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 66: + /* } */ case 39: + /* } */ case 36: + /* */ if ((i === 0) && ($clone(v, reflect.Value).Kind() === 23)) { $s = 43; continue; } + /* */ $s = 44; continue; + /* if ((i === 0) && ($clone(v, reflect.Value).Kind() === 23)) { */ case 43: + _r$8 = reflect.MakeSlice($clone(v, reflect.Value).Type(), 0, 0); /* */ $s = 45; case 45: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + $r = $clone(v, reflect.Value).Set($clone(_r$8, reflect.Value)); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 44: $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: array, $c: true, $r, $24r, _1, _arg, _arg$1, _arg$2, _q, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$20, _r$21, _r$22, _r$23, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, ai, d, err, err$1, i, newcap, newv, pv, start, u, ut, v, z, $s};return $f; + /* */ } return; } var $f = {$blk: array, $c: true, $r, $24r, _1, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _tuple, ai, d, err, err$1, i, pv, start, u, ut, v, $s};return $f; }; $ptrType(decodeState).prototype.object = function object(v) { - var {$24r, _1, _2, _3, _arg, _entry, _i, _i$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _v, _v$1, d, destring, elemType, err, err$1, err$2, err$3, err$4, err$5, f, ff, fields, i, i$1, i$2, item, key, kt, kv, mapElem, n, n$1, oi, ok, ok$1, origErrorContext, pv, qv, qv$1, qv$2, s, s$1, start, start$1, subv, t, u, ut, v, x, x$1, $s, $r, $c} = $restore(this, {v}); + var {$24r, _1, _2, _3, _arg, _entry, _entry$1, _i, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, d, destring, elemType, err, err$1, err$2, err$3, err$4, err$5, f, fields, i, item, key, kt, kv, mapElem, n, n$1, oi, ok, origErrorContext, pv, qv, qv$1, qv$2, s, s$1, start, start$1, subv, t, u, ut, v, x, $s, $r, $c} = $restore(this, {v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: d = this; _r$3 = indirect($clone(v, reflect.Value), false); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } @@ -325892,59 +328428,58 @@ $packages["encoding/json"] = (function() { /* if (($clone(v, reflect.Value).Kind() === 20) && ($clone(v, reflect.Value).NumMethod() === 0)) { */ case 11: _r$5 = d.objectInterface(); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } oi = _r$5; - _r$6 = reflect.ValueOf(new mapType(oi)); /* */ $s = 14; case 14: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - $r = $clone(v, reflect.Value).Set($clone(_r$6, reflect.Value)); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = $clone(v, reflect.Value).Set($clone(reflect.ValueOf(new mapType(oi)), reflect.Value)); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return $ifaceNil; /* } */ case 12: - fields = new structFields.ptr(sliceType$3.nil, false); + fields = new structFields.ptr(sliceType$3.nil, false, false); _1 = $clone(v, reflect.Value).Kind(); - /* */ if (_1 === (21)) { $s = 17; continue; } - /* */ if (_1 === (25)) { $s = 18; continue; } - /* */ $s = 19; continue; - /* if (_1 === (21)) { */ case 17: - _r$7 = t.Key(); /* */ $s = 22; case 22: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _r$8 = _r$7.Kind(); /* */ $s = 23; case 23: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _2 = _r$8; - /* */ if ((_2 === (24)) || (_2 === (2)) || (_2 === (3)) || (_2 === (4)) || (_2 === (5)) || (_2 === (6)) || (_2 === (7)) || (_2 === (8)) || (_2 === (9)) || (_2 === (10)) || (_2 === (11)) || (_2 === (12))) { $s = 24; continue; } - _r$9 = t.Key(); /* */ $s = 27; case 27: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _r$10 = reflect.PointerTo(_r$9); /* */ $s = 28; case 28: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _r$11 = _r$10.Implements(textUnmarshalerType); /* */ $s = 29; case 29: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - /* */ if (!_r$11) { $s = 25; continue; } - /* */ $s = 26; continue; - /* if ((_2 === (24)) || (_2 === (2)) || (_2 === (3)) || (_2 === (4)) || (_2 === (5)) || (_2 === (6)) || (_2 === (7)) || (_2 === (8)) || (_2 === (9)) || (_2 === (10)) || (_2 === (11)) || (_2 === (12))) { */ case 24: - $s = 26; continue; - /* } else if (!_r$11) { */ case 25: - $r = d.saveError(new UnmarshalTypeError.ptr("object", t, (new $Int64(0, d.off)), "", "")); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = d.skip(); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (_1 === (21)) { $s = 16; continue; } + /* */ if (_1 === (25)) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (_1 === (21)) { */ case 16: + _r$6 = t.Key(); /* */ $s = 21; case 21: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$7 = _r$6.Kind(); /* */ $s = 22; case 22: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _2 = _r$7; + /* */ if ((_2 === (24)) || (_2 === (2)) || (_2 === (3)) || (_2 === (4)) || (_2 === (5)) || (_2 === (6)) || (_2 === (7)) || (_2 === (8)) || (_2 === (9)) || (_2 === (10)) || (_2 === (11)) || (_2 === (12))) { $s = 23; continue; } + _r$8 = t.Key(); /* */ $s = 26; case 26: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$9 = reflect.PointerTo(_r$8); /* */ $s = 27; case 27: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$10 = _r$9.Implements(textUnmarshalerType); /* */ $s = 28; case 28: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + /* */ if (!_r$10) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if ((_2 === (24)) || (_2 === (2)) || (_2 === (3)) || (_2 === (4)) || (_2 === (5)) || (_2 === (6)) || (_2 === (7)) || (_2 === (8)) || (_2 === (9)) || (_2 === (10)) || (_2 === (11)) || (_2 === (12))) { */ case 23: + $s = 25; continue; + /* } else if (!_r$10) { */ case 24: + $r = d.saveError(new UnmarshalTypeError.ptr("object", t, (new $Int64(0, d.off)), "", "")); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = d.skip(); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return $ifaceNil; - /* } */ case 26: - case 21: - /* */ if ($clone(v, reflect.Value).IsNil()) { $s = 32; continue; } - /* */ $s = 33; continue; - /* if ($clone(v, reflect.Value).IsNil()) { */ case 32: - _r$12 = reflect.MakeMap(t); /* */ $s = 34; case 34: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - $r = $clone(v, reflect.Value).Set($clone(_r$12, reflect.Value)); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 33: - $s = 20; continue; - /* } else if (_1 === (25)) { */ case 18: - _r$13 = cachedTypeFields(t); /* */ $s = 36; case 36: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - structFields.copy(fields, _r$13); - $s = 20; continue; - /* } else { */ case 19: - $r = d.saveError(new UnmarshalTypeError.ptr("object", t, (new $Int64(0, d.off)), "", "")); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = d.skip(); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 25: + case 20: + /* */ if ($clone(v, reflect.Value).IsNil()) { $s = 31; continue; } + /* */ $s = 32; continue; + /* if ($clone(v, reflect.Value).IsNil()) { */ case 31: + _r$11 = reflect.MakeMap(t); /* */ $s = 33; case 33: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + $r = $clone(v, reflect.Value).Set($clone(_r$11, reflect.Value)); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 32: + $s = 19; continue; + /* } else if (_1 === (25)) { */ case 17: + _r$12 = cachedTypeFields(t); /* */ $s = 35; case 35: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + structFields.copy(fields, _r$12); + $s = 19; continue; + /* } else { */ case 18: + $r = d.saveError(new UnmarshalTypeError.ptr("object", t, (new $Int64(0, d.off)), "", "")); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = d.skip(); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return $ifaceNil; - /* } */ case 20: - case 16: - mapElem = new reflect.Value.ptr(ptrType$11.nil, 0, 0); + /* } */ case 19: + case 15: + mapElem = new reflect.Value.ptr(ptrType$12.nil, 0, 0); origErrorContext = new errorContext.ptr($ifaceNil, sliceType$5.nil); if (!(d.errorContext === ptrType$4.nil)) { - errorContext.copy(origErrorContext, d.errorContext); + errorContext.copy(origErrorContext, (x = d.errorContext, (x === ptrType$4.nil && $throwNilPointerError(), x))); } - /* while (true) { */ case 39: - $r = d.scanWhile(9); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* while (true) { */ case 38: + $r = d.scanWhile(9); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } if (d.opcode === 5) { - /* break; */ $s = 40; continue; + /* break; */ $s = 39; continue; } if (!((d.opcode === 1))) { $panic(new $String("JSON decoder out of sync - data changing underfoot?")); @@ -325958,251 +328493,212 @@ $packages["encoding/json"] = (function() { if (!ok) { $panic(new $String("JSON decoder out of sync - data changing underfoot?")); } - subv = new reflect.Value.ptr(ptrType$11.nil, 0, 0); + subv = new reflect.Value.ptr(ptrType$12.nil, 0, 0); destring = false; - /* */ if ($clone(v, reflect.Value).Kind() === 21) { $s = 42; continue; } - /* */ $s = 43; continue; - /* if ($clone(v, reflect.Value).Kind() === 21) { */ case 42: - _r$14 = t.Elem(); /* */ $s = 45; case 45: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - elemType = _r$14; - /* */ if (!$clone(mapElem, reflect.Value).IsValid()) { $s = 46; continue; } - /* */ $s = 47; continue; - /* if (!$clone(mapElem, reflect.Value).IsValid()) { */ case 46: - _r$15 = $clone(reflect.New(elemType), reflect.Value).Elem(); /* */ $s = 49; case 49: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - mapElem = _r$15; - $s = 48; continue; - /* } else { */ case 47: - _r$16 = reflect.Zero(elemType); /* */ $s = 50; case 50: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - $r = $clone(mapElem, reflect.Value).Set($clone(_r$16, reflect.Value)); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 48: + /* */ if ($clone(v, reflect.Value).Kind() === 21) { $s = 41; continue; } + /* */ $s = 42; continue; + /* if ($clone(v, reflect.Value).Kind() === 21) { */ case 41: + _r$13 = t.Elem(); /* */ $s = 44; case 44: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + elemType = _r$13; + /* */ if (!$clone(mapElem, reflect.Value).IsValid()) { $s = 45; continue; } + /* */ $s = 46; continue; + /* if (!$clone(mapElem, reflect.Value).IsValid()) { */ case 45: + mapElem = $clone(reflect.New(elemType), reflect.Value).Elem(); + $s = 47; continue; + /* } else { */ case 46: + $r = $clone(mapElem, reflect.Value).SetZero(); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 47: subv = mapElem; - $s = 44; continue; - /* } else { */ case 43: - f = ptrType$12.nil; - _tuple$2 = (_entry = $mapIndex(fields.nameIndex,$String.keyFor(($bytesToString(key)))), _entry !== undefined ? [_entry.v, true] : [0, false]); - i = _tuple$2[0]; - ok$1 = _tuple$2[1]; - /* */ if (ok$1) { $s = 52; continue; } - /* */ $s = 53; continue; - /* if (ok$1) { */ case 52: - f = (x = fields.list, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - $s = 54; continue; - /* } else { */ case 53: - _ref = fields.list; - _i = 0; - /* while (true) { */ case 55: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 56; continue; } - i$1 = _i; - ff = (x$1 = fields.list, ((i$1 < 0 || i$1 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$1])); - _r$17 = ff.equalFold(ff.nameBytes, key); /* */ $s = 59; case 59: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - /* */ if (_r$17) { $s = 57; continue; } - /* */ $s = 58; continue; - /* if (_r$17) { */ case 57: - f = ff; - /* break; */ $s = 56; continue; - /* } */ case 58: - _i++; - $s = 55; continue; - case 56: - /* } */ case 54: - /* */ if (!(f === ptrType$12.nil)) { $s = 60; continue; } - /* */ if (d.disallowUnknownFields) { $s = 61; continue; } - /* */ $s = 62; continue; - /* if (!(f === ptrType$12.nil)) { */ case 60: + $s = 43; continue; + /* } else { */ case 42: + f = (_entry = $mapIndex(fields.byExactName,$String.keyFor(($bytesToString(key)))), _entry !== undefined ? _entry.v : ptrType$9.nil); + if (f === ptrType$9.nil) { + f = (_entry$1 = $mapIndex(fields.byFoldedName,$String.keyFor(($bytesToString(foldName(key))))), _entry$1 !== undefined ? _entry$1.v : ptrType$9.nil); + } + /* */ if (!(f === ptrType$9.nil)) { $s = 49; continue; } + /* */ if (d.disallowUnknownFields) { $s = 50; continue; } + /* */ $s = 51; continue; + /* if (!(f === ptrType$9.nil)) { */ case 49: subv = v; destring = f.quoted; - _ref$1 = f.index; - _i$1 = 0; - /* while (true) { */ case 63: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 64; continue; } - i$2 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - /* */ if ($clone(subv, reflect.Value).Kind() === 22) { $s = 65; continue; } - /* */ $s = 66; continue; - /* if ($clone(subv, reflect.Value).Kind() === 22) { */ case 65: - /* */ if ($clone(subv, reflect.Value).IsNil()) { $s = 67; continue; } - /* */ $s = 68; continue; - /* if ($clone(subv, reflect.Value).IsNil()) { */ case 67: - /* */ if (!$clone(subv, reflect.Value).CanSet()) { $s = 69; continue; } - /* */ $s = 70; continue; - /* if (!$clone(subv, reflect.Value).CanSet()) { */ case 69: - _r$18 = $clone(subv, reflect.Value).Type().Elem(); /* */ $s = 71; case 71: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - _arg = _r$18; - _r$19 = fmt.Errorf("json: cannot set embedded pointer to unexported struct: %v", new sliceType([_arg])); /* */ $s = 72; case 72: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - $r = d.saveError(_r$19); /* */ $s = 73; case 73: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - subv = new reflect.Value.ptr(ptrType$11.nil, 0, 0); + _ref = f.index; + _i = 0; + /* while (true) { */ case 52: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 53; continue; } + i = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + /* */ if ($clone(subv, reflect.Value).Kind() === 22) { $s = 54; continue; } + /* */ $s = 55; continue; + /* if ($clone(subv, reflect.Value).Kind() === 22) { */ case 54: + /* */ if ($clone(subv, reflect.Value).IsNil()) { $s = 56; continue; } + /* */ $s = 57; continue; + /* if ($clone(subv, reflect.Value).IsNil()) { */ case 56: + /* */ if (!$clone(subv, reflect.Value).CanSet()) { $s = 58; continue; } + /* */ $s = 59; continue; + /* if (!$clone(subv, reflect.Value).CanSet()) { */ case 58: + _r$14 = $clone(subv, reflect.Value).Type().Elem(); /* */ $s = 60; case 60: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _arg = _r$14; + _r$15 = fmt.Errorf("json: cannot set embedded pointer to unexported struct: %v", new sliceType([_arg])); /* */ $s = 61; case 61: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + $r = d.saveError(_r$15); /* */ $s = 62; case 62: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + subv = new reflect.Value.ptr(ptrType$12.nil, 0, 0); destring = false; - /* break; */ $s = 64; continue; - /* } */ case 70: - _r$20 = $clone(subv, reflect.Value).Type().Elem(); /* */ $s = 74; case 74: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - _r$21 = reflect.New(_r$20); /* */ $s = 75; case 75: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } - $r = $clone(subv, reflect.Value).Set($clone(_r$21, reflect.Value)); /* */ $s = 76; case 76: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 68: - _r$22 = $clone(subv, reflect.Value).Elem(); /* */ $s = 77; case 77: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - subv = _r$22; - /* } */ case 66: - _r$23 = $clone(subv, reflect.Value).Field(i$2); /* */ $s = 78; case 78: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - subv = _r$23; - _i$1++; - $s = 63; continue; - case 64: + /* break; */ $s = 53; continue; + /* } */ case 59: + _r$16 = $clone(subv, reflect.Value).Type().Elem(); /* */ $s = 63; case 63: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + _r$17 = reflect.New(_r$16); /* */ $s = 64; case 64: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + $r = $clone(subv, reflect.Value).Set($clone(_r$17, reflect.Value)); /* */ $s = 65; case 65: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 57: + subv = $clone(subv, reflect.Value).Elem(); + /* } */ case 55: + subv = $clone(subv, reflect.Value).Field(i); + _i++; + $s = 52; continue; + case 53: if (d.errorContext === ptrType$4.nil) { d.errorContext = new errorContext.ptr($ifaceNil, sliceType$5.nil); } d.errorContext.FieldStack = $append(d.errorContext.FieldStack, f.name); d.errorContext.Struct = t; - $s = 62; continue; - /* } else if (d.disallowUnknownFields) { */ case 61: - _r$24 = fmt.Errorf("json: unknown field %q", new sliceType([key])); /* */ $s = 79; case 79: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - $r = d.saveError(_r$24); /* */ $s = 80; case 80: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 62: - /* } */ case 44: - /* */ if (d.opcode === 9) { $s = 81; continue; } - /* */ $s = 82; continue; - /* if (d.opcode === 9) { */ case 81: - $r = d.scanWhile(9); /* */ $s = 83; case 83: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 82: + $s = 51; continue; + /* } else if (d.disallowUnknownFields) { */ case 50: + _r$18 = fmt.Errorf("json: unknown field %q", new sliceType([key])); /* */ $s = 66; case 66: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + $r = d.saveError(_r$18); /* */ $s = 67; case 67: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 51: + /* } */ case 43: + /* */ if (d.opcode === 9) { $s = 68; continue; } + /* */ $s = 69; continue; + /* if (d.opcode === 9) { */ case 68: + $r = d.scanWhile(9); /* */ $s = 70; case 70: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 69: if (!((d.opcode === 3))) { $panic(new $String("JSON decoder out of sync - data changing underfoot?")); } - $r = d.scanWhile(9); /* */ $s = 84; case 84: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (destring) { $s = 85; continue; } - /* */ $s = 86; continue; - /* if (destring) { */ case 85: - _r$25 = d.valueQuoted(); /* */ $s = 88; case 88: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - _ref$2 = _r$25; - /* */ if (_ref$2 === $ifaceNil) { $s = 89; continue; } - /* */ if ($assertType(_ref$2, $String, true)[1]) { $s = 90; continue; } - /* */ $s = 91; continue; - /* if (_ref$2 === $ifaceNil) { */ case 89: - qv = _ref$2; - _r$26 = d.literalStore(nullLiteral, $clone(subv, reflect.Value), false); /* */ $s = 93; case 93: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - err = _r$26; + $r = d.scanWhile(9); /* */ $s = 71; case 71: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (destring) { $s = 72; continue; } + /* */ $s = 73; continue; + /* if (destring) { */ case 72: + _r$19 = d.valueQuoted(); /* */ $s = 75; case 75: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + _ref$1 = _r$19; + /* */ if (_ref$1 === $ifaceNil) { $s = 76; continue; } + /* */ if ($assertType(_ref$1, $String, true)[1]) { $s = 77; continue; } + /* */ $s = 78; continue; + /* if (_ref$1 === $ifaceNil) { */ case 76: + qv = _ref$1; + _r$20 = d.literalStore(nullLiteral, $clone(subv, reflect.Value), false); /* */ $s = 80; case 80: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + err = _r$20; if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return err; } - $s = 92; continue; - /* } else if ($assertType(_ref$2, $String, true)[1]) { */ case 90: - qv$1 = _ref$2.$val; - _r$27 = d.literalStore((new sliceType$2($stringToBytes(qv$1))), $clone(subv, reflect.Value), true); /* */ $s = 94; case 94: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - err$1 = _r$27; + $s = 79; continue; + /* } else if ($assertType(_ref$1, $String, true)[1]) { */ case 77: + qv$1 = _ref$1.$val; + _r$21 = d.literalStore((new sliceType$2($stringToBytes(qv$1))), $clone(subv, reflect.Value), true); /* */ $s = 81; case 81: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + err$1 = _r$21; if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return err$1; } - $s = 92; continue; - /* } else { */ case 91: - qv$2 = _ref$2; - _r$28 = fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal unquoted value into %v", new sliceType([$clone(subv, reflect.Value).Type()])); /* */ $s = 95; case 95: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - $r = d.saveError(_r$28); /* */ $s = 96; case 96: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 92: - $s = 87; continue; - /* } else { */ case 86: - _r$29 = d.value($clone(subv, reflect.Value)); /* */ $s = 97; case 97: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } - err$2 = _r$29; + $s = 79; continue; + /* } else { */ case 78: + qv$2 = _ref$1; + _r$22 = fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal unquoted value into %v", new sliceType([$clone(subv, reflect.Value).Type()])); /* */ $s = 82; case 82: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + $r = d.saveError(_r$22); /* */ $s = 83; case 83: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 79: + $s = 74; continue; + /* } else { */ case 73: + _r$23 = d.value($clone(subv, reflect.Value)); /* */ $s = 84; case 84: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + err$2 = _r$23; if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = -1; return err$2; } - /* } */ case 87: - /* */ if ($clone(v, reflect.Value).Kind() === 21) { $s = 98; continue; } - /* */ $s = 99; continue; - /* if ($clone(v, reflect.Value).Kind() === 21) { */ case 98: - _r$30 = t.Key(); /* */ $s = 100; case 100: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } - kt = _r$30; - kv = new reflect.Value.ptr(ptrType$11.nil, 0, 0); - _r$31 = reflect.PointerTo(kt).Implements(textUnmarshalerType); /* */ $s = 106; case 106: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } - /* */ if (_r$31) { $s = 102; continue; } - _r$32 = kt.Kind(); /* */ $s = 107; case 107: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } - /* */ if ((_r$32 === 24)) { $s = 103; continue; } - /* */ $s = 104; continue; - /* if (_r$31) { */ case 102: + /* } */ case 74: + /* */ if ($clone(v, reflect.Value).Kind() === 21) { $s = 85; continue; } + /* */ $s = 86; continue; + /* if ($clone(v, reflect.Value).Kind() === 21) { */ case 85: + _r$24 = t.Key(); /* */ $s = 87; case 87: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + kt = _r$24; + kv = new reflect.Value.ptr(ptrType$12.nil, 0, 0); + _r$25 = reflect.PointerTo(kt).Implements(textUnmarshalerType); /* */ $s = 93; case 93: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + /* */ if (_r$25) { $s = 89; continue; } + _r$26 = kt.Kind(); /* */ $s = 94; case 94: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + /* */ if ((_r$26 === 24)) { $s = 90; continue; } + /* */ $s = 91; continue; + /* if (_r$25) { */ case 89: kv = reflect.New(kt); - _r$33 = d.literalStore(item, $clone(kv, reflect.Value), true); /* */ $s = 108; case 108: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } - err$3 = _r$33; + _r$27 = d.literalStore(item, $clone(kv, reflect.Value), true); /* */ $s = 95; case 95: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + err$3 = _r$27; if (!($interfaceIsEqual(err$3, $ifaceNil))) { $s = -1; return err$3; } - _r$34 = $clone(kv, reflect.Value).Elem(); /* */ $s = 109; case 109: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } - kv = _r$34; - $s = 105; continue; - /* } else if ((_r$32 === 24)) { */ case 103: - _r$35 = reflect.ValueOf(key); /* */ $s = 110; case 110: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } - _r$36 = $clone(_r$35, reflect.Value).Convert(kt); /* */ $s = 111; case 111: if($c) { $c = false; _r$36 = _r$36.$blk(); } if (_r$36 && _r$36.$blk !== undefined) { break s; } - kv = _r$36; - $s = 105; continue; - /* } else { */ case 104: - _r$37 = kt.Kind(); /* */ $s = 113; case 113: if($c) { $c = false; _r$37 = _r$37.$blk(); } if (_r$37 && _r$37.$blk !== undefined) { break s; } - _3 = _r$37; - /* */ if ((_3 === (2)) || (_3 === (3)) || (_3 === (4)) || (_3 === (5)) || (_3 === (6))) { $s = 114; continue; } - /* */ if ((_3 === (7)) || (_3 === (8)) || (_3 === (9)) || (_3 === (10)) || (_3 === (11)) || (_3 === (12))) { $s = 115; continue; } - /* */ $s = 116; continue; - /* if ((_3 === (2)) || (_3 === (3)) || (_3 === (4)) || (_3 === (5)) || (_3 === (6))) { */ case 114: + kv = $clone(kv, reflect.Value).Elem(); + $s = 92; continue; + /* } else if ((_r$26 === 24)) { */ case 90: + _r$28 = $clone(reflect.ValueOf(key), reflect.Value).Convert(kt); /* */ $s = 96; case 96: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + kv = _r$28; + $s = 92; continue; + /* } else { */ case 91: + _r$29 = kt.Kind(); /* */ $s = 98; case 98: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + _3 = _r$29; + /* */ if ((_3 === (2)) || (_3 === (3)) || (_3 === (4)) || (_3 === (5)) || (_3 === (6))) { $s = 99; continue; } + /* */ if ((_3 === (7)) || (_3 === (8)) || (_3 === (9)) || (_3 === (10)) || (_3 === (11)) || (_3 === (12))) { $s = 100; continue; } + /* */ $s = 101; continue; + /* if ((_3 === (2)) || (_3 === (3)) || (_3 === (4)) || (_3 === (5)) || (_3 === (6))) { */ case 99: s = ($bytesToString(key)); - _tuple$3 = strconv.ParseInt(s, 10, 64); - n = _tuple$3[0]; - err$4 = _tuple$3[1]; - if (!($interfaceIsEqual(err$4, $ifaceNil))) { _v = true; $s = 120; continue s; } - _r$38 = reflect.Zero(kt); /* */ $s = 121; case 121: if($c) { $c = false; _r$38 = _r$38.$blk(); } if (_r$38 && _r$38.$blk !== undefined) { break s; } - _r$39 = $clone(_r$38, reflect.Value).OverflowInt(n); /* */ $s = 122; case 122: if($c) { $c = false; _r$39 = _r$39.$blk(); } if (_r$39 && _r$39.$blk !== undefined) { break s; } - _v = _r$39; case 120: - /* */ if (_v) { $s = 118; continue; } - /* */ $s = 119; continue; - /* if (_v) { */ case 118: - $r = d.saveError(new UnmarshalTypeError.ptr("number " + s, kt, (new $Int64(0, (start$1 + 1 >> 0))), "", "")); /* */ $s = 123; case 123: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* break; */ $s = 112; continue; - /* } */ case 119: - _r$40 = reflect.ValueOf(n); /* */ $s = 124; case 124: if($c) { $c = false; _r$40 = _r$40.$blk(); } if (_r$40 && _r$40.$blk !== undefined) { break s; } - _r$41 = $clone(_r$40, reflect.Value).Convert(kt); /* */ $s = 125; case 125: if($c) { $c = false; _r$41 = _r$41.$blk(); } if (_r$41 && _r$41.$blk !== undefined) { break s; } - kv = _r$41; - $s = 117; continue; - /* } else if ((_3 === (7)) || (_3 === (8)) || (_3 === (9)) || (_3 === (10)) || (_3 === (11)) || (_3 === (12))) { */ case 115: + _tuple$2 = strconv.ParseInt(s, 10, 64); + n = _tuple$2[0]; + err$4 = _tuple$2[1]; + /* */ if (!($interfaceIsEqual(err$4, $ifaceNil)) || $clone(reflect.Zero(kt), reflect.Value).OverflowInt(n)) { $s = 103; continue; } + /* */ $s = 104; continue; + /* if (!($interfaceIsEqual(err$4, $ifaceNil)) || $clone(reflect.Zero(kt), reflect.Value).OverflowInt(n)) { */ case 103: + $r = d.saveError(new UnmarshalTypeError.ptr("number " + s, kt, (new $Int64(0, (start$1 + 1 >> 0))), "", "")); /* */ $s = 105; case 105: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* break; */ $s = 97; continue; + /* } */ case 104: + _r$30 = $clone(reflect.ValueOf(n), reflect.Value).Convert(kt); /* */ $s = 106; case 106: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } + kv = _r$30; + $s = 102; continue; + /* } else if ((_3 === (7)) || (_3 === (8)) || (_3 === (9)) || (_3 === (10)) || (_3 === (11)) || (_3 === (12))) { */ case 100: s$1 = ($bytesToString(key)); - _tuple$4 = strconv.ParseUint(s$1, 10, 64); - n$1 = _tuple$4[0]; - err$5 = _tuple$4[1]; - if (!($interfaceIsEqual(err$5, $ifaceNil))) { _v$1 = true; $s = 128; continue s; } - _r$42 = reflect.Zero(kt); /* */ $s = 129; case 129: if($c) { $c = false; _r$42 = _r$42.$blk(); } if (_r$42 && _r$42.$blk !== undefined) { break s; } - _r$43 = $clone(_r$42, reflect.Value).OverflowUint(n$1); /* */ $s = 130; case 130: if($c) { $c = false; _r$43 = _r$43.$blk(); } if (_r$43 && _r$43.$blk !== undefined) { break s; } - _v$1 = _r$43; case 128: - /* */ if (_v$1) { $s = 126; continue; } - /* */ $s = 127; continue; - /* if (_v$1) { */ case 126: - $r = d.saveError(new UnmarshalTypeError.ptr("number " + s$1, kt, (new $Int64(0, (start$1 + 1 >> 0))), "", "")); /* */ $s = 131; case 131: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* break; */ $s = 112; continue; - /* } */ case 127: - _r$44 = reflect.ValueOf(n$1); /* */ $s = 132; case 132: if($c) { $c = false; _r$44 = _r$44.$blk(); } if (_r$44 && _r$44.$blk !== undefined) { break s; } - _r$45 = $clone(_r$44, reflect.Value).Convert(kt); /* */ $s = 133; case 133: if($c) { $c = false; _r$45 = _r$45.$blk(); } if (_r$45 && _r$45.$blk !== undefined) { break s; } - kv = _r$45; - $s = 117; continue; - /* } else { */ case 116: + _tuple$3 = strconv.ParseUint(s$1, 10, 64); + n$1 = _tuple$3[0]; + err$5 = _tuple$3[1]; + /* */ if (!($interfaceIsEqual(err$5, $ifaceNil)) || $clone(reflect.Zero(kt), reflect.Value).OverflowUint(n$1)) { $s = 107; continue; } + /* */ $s = 108; continue; + /* if (!($interfaceIsEqual(err$5, $ifaceNil)) || $clone(reflect.Zero(kt), reflect.Value).OverflowUint(n$1)) { */ case 107: + $r = d.saveError(new UnmarshalTypeError.ptr("number " + s$1, kt, (new $Int64(0, (start$1 + 1 >> 0))), "", "")); /* */ $s = 109; case 109: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* break; */ $s = 97; continue; + /* } */ case 108: + _r$31 = $clone(reflect.ValueOf(n$1), reflect.Value).Convert(kt); /* */ $s = 110; case 110: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } + kv = _r$31; + $s = 102; continue; + /* } else { */ case 101: $panic(new $String("json: Unexpected key type")); - /* } */ case 117: - case 112: - /* } */ case 105: - case 101: - /* */ if ($clone(kv, reflect.Value).IsValid()) { $s = 134; continue; } - /* */ $s = 135; continue; - /* if ($clone(kv, reflect.Value).IsValid()) { */ case 134: - $r = $clone(v, reflect.Value).SetMapIndex($clone(kv, reflect.Value), $clone(subv, reflect.Value)); /* */ $s = 136; case 136: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 135: - /* } */ case 99: - /* */ if (d.opcode === 9) { $s = 137; continue; } - /* */ $s = 138; continue; - /* if (d.opcode === 9) { */ case 137: - $r = d.scanWhile(9); /* */ $s = 139; case 139: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 138: + /* } */ case 102: + case 97: + /* } */ case 92: + case 88: + /* */ if ($clone(kv, reflect.Value).IsValid()) { $s = 111; continue; } + /* */ $s = 112; continue; + /* if ($clone(kv, reflect.Value).IsValid()) { */ case 111: + $r = $clone(v, reflect.Value).SetMapIndex($clone(kv, reflect.Value), $clone(subv, reflect.Value)); /* */ $s = 113; case 113: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 112: + /* } */ case 86: + /* */ if (d.opcode === 9) { $s = 114; continue; } + /* */ $s = 115; continue; + /* if (d.opcode === 9) { */ case 114: + $r = d.scanWhile(9); /* */ $s = 116; case 116: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 115: if (!(d.errorContext === ptrType$4.nil)) { d.errorContext.FieldStack = $subslice(d.errorContext.FieldStack, 0, origErrorContext.FieldStack.$length); d.errorContext.Struct = origErrorContext.Struct; } if (d.opcode === 5) { - /* break; */ $s = 40; continue; + /* break; */ $s = 39; continue; } if (!((d.opcode === 4))) { $panic(new $String("JSON decoder out of sync - data changing underfoot?")); } - $s = 39; continue; - case 40: + $s = 38; continue; + case 39: $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: object, $c: true, $r, $24r, _1, _2, _3, _arg, _entry, _i, _i$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _v, _v$1, d, destring, elemType, err, err$1, err$2, err$3, err$4, err$5, f, ff, fields, i, i$1, i$2, item, key, kt, kv, mapElem, n, n$1, oi, ok, ok$1, origErrorContext, pv, qv, qv$1, qv$2, s, s$1, start, start$1, subv, t, u, ut, v, x, x$1, $s};return $f; + /* */ } return; } var $f = {$blk: object, $c: true, $r, $24r, _1, _2, _3, _arg, _entry, _entry$1, _i, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, d, destring, elemType, err, err$1, err$2, err$3, err$4, err$5, f, fields, i, item, key, kt, kv, mapElem, n, n$1, oi, ok, origErrorContext, pv, qv, qv$1, qv$2, s, s$1, start, start$1, subv, t, u, ut, v, x, $s};return $f; }; $ptrType(decodeState).prototype.convertNumber = function convertNumber(s) { var _tuple, d, err, f, s; @@ -326219,7 +328715,7 @@ $packages["encoding/json"] = (function() { return [new $Float64(f), $ifaceNil]; }; $ptrType(decodeState).prototype.literalStore = function literalStore(item, v, fromQuoted) { - var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, _1, _2, _3, _4, _5, _6, _arg, _arg$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$20, _r$21, _r$22, _r$23, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, b, c, d, err, err$1, err$2, err$3, err$4, fromQuoted, isNull, item, n, n$1, n$2, n$3, n$4, ok, ok$1, pv, s, s$1, s$2, u, ut, v, val, value$1, $s, $r, $c} = $restore(this, {item, v, fromQuoted}); + var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, _1, _2, _3, _4, _5, _6, _arg, _arg$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, b, c, d, err, err$1, err$2, err$3, err$4, fromQuoted, isNull, item, n, n$1, n$2, n$3, n$4, ok, ok$1, pv, s, s$1, s$2, u, ut, v, val, value$1, $s, $r, $c} = $restore(this, {item, v, fromQuoted}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: d = this; /* */ if (item.$length === 0) { $s = 1; continue; } @@ -326303,214 +328799,210 @@ $packages["encoding/json"] = (function() { /* */ if ((_3 === (20)) || (_3 === (22)) || (_3 === (21)) || (_3 === (23))) { $s = 38; continue; } /* */ $s = 39; continue; /* if ((_3 === (20)) || (_3 === (22)) || (_3 === (21)) || (_3 === (23))) { */ case 38: - _r$10 = reflect.Zero($clone(v, reflect.Value).Type()); /* */ $s = 40; case 40: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - $r = $clone(v, reflect.Value).Set($clone(_r$10, reflect.Value)); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = $clone(v, reflect.Value).SetZero(); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 39: case 37: $s = 32; continue; /* } else if ((_2 === (116)) || (_2 === (102))) { */ case 29: value$1 = (0 >= item.$length ? ($throwRuntimeError("index out of range"), undefined) : item.$array[item.$offset + 0]) === 116; - /* */ if (fromQuoted && !(($bytesToString(item)) === "true") && !(($bytesToString(item)) === "false")) { $s = 42; continue; } - /* */ $s = 43; continue; - /* if (fromQuoted && !(($bytesToString(item)) === "true") && !(($bytesToString(item)) === "false")) { */ case 42: - _r$11 = fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v", new sliceType([item, $clone(v, reflect.Value).Type()])); /* */ $s = 44; case 44: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - $r = d.saveError(_r$11); /* */ $s = 45; case 45: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (fromQuoted && !(($bytesToString(item)) === "true") && !(($bytesToString(item)) === "false")) { $s = 41; continue; } + /* */ $s = 42; continue; + /* if (fromQuoted && !(($bytesToString(item)) === "true") && !(($bytesToString(item)) === "false")) { */ case 41: + _r$10 = fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v", new sliceType([item, $clone(v, reflect.Value).Type()])); /* */ $s = 43; case 43: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + $r = d.saveError(_r$10); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* break; */ $s = 27; continue; - /* } */ case 43: + /* } */ case 42: _4 = $clone(v, reflect.Value).Kind(); - /* */ if (_4 === (1)) { $s = 47; continue; } - /* */ if (_4 === (20)) { $s = 48; continue; } - /* */ if (fromQuoted) { $s = 49; continue; } - /* */ $s = 50; continue; - /* if (_4 === (1)) { */ case 47: + /* */ if (_4 === (1)) { $s = 46; continue; } + /* */ if (_4 === (20)) { $s = 47; continue; } + /* */ if (fromQuoted) { $s = 48; continue; } + /* */ $s = 49; continue; + /* if (_4 === (1)) { */ case 46: $clone(v, reflect.Value).SetBool(value$1); - $s = 51; continue; - /* } else if (_4 === (20)) { */ case 48: - /* */ if ($clone(v, reflect.Value).NumMethod() === 0) { $s = 52; continue; } - /* */ $s = 53; continue; - /* if ($clone(v, reflect.Value).NumMethod() === 0) { */ case 52: - _r$12 = reflect.ValueOf(new $Bool(value$1)); /* */ $s = 55; case 55: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - $r = $clone(v, reflect.Value).Set($clone(_r$12, reflect.Value)); /* */ $s = 56; case 56: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 54; continue; - /* } else { */ case 53: - $r = d.saveError(new UnmarshalTypeError.ptr("bool", $clone(v, reflect.Value).Type(), (new $Int64(0, d.readIndex())), "", "")); /* */ $s = 57; case 57: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 54: - $s = 51; continue; - /* } else if (fromQuoted) { */ case 49: - _r$13 = fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v", new sliceType([item, $clone(v, reflect.Value).Type()])); /* */ $s = 58; case 58: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - $r = d.saveError(_r$13); /* */ $s = 59; case 59: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 51; continue; - /* } else { */ case 50: - $r = d.saveError(new UnmarshalTypeError.ptr("bool", $clone(v, reflect.Value).Type(), (new $Int64(0, d.readIndex())), "", "")); /* */ $s = 60; case 60: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 51: - case 46: + $s = 50; continue; + /* } else if (_4 === (20)) { */ case 47: + /* */ if ($clone(v, reflect.Value).NumMethod() === 0) { $s = 51; continue; } + /* */ $s = 52; continue; + /* if ($clone(v, reflect.Value).NumMethod() === 0) { */ case 51: + $r = $clone(v, reflect.Value).Set($clone(reflect.ValueOf(new $Bool(value$1)), reflect.Value)); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 53; continue; + /* } else { */ case 52: + $r = d.saveError(new UnmarshalTypeError.ptr("bool", $clone(v, reflect.Value).Type(), (new $Int64(0, d.readIndex())), "", "")); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 53: + $s = 50; continue; + /* } else if (fromQuoted) { */ case 48: + _r$11 = fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v", new sliceType([item, $clone(v, reflect.Value).Type()])); /* */ $s = 56; case 56: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + $r = d.saveError(_r$11); /* */ $s = 57; case 57: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 50; continue; + /* } else { */ case 49: + $r = d.saveError(new UnmarshalTypeError.ptr("bool", $clone(v, reflect.Value).Type(), (new $Int64(0, d.readIndex())), "", "")); /* */ $s = 58; case 58: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 50: + case 45: $s = 32; continue; /* } else if (_2 === (34)) { */ case 30: _tuple$2 = unquoteBytes(item); s$1 = _tuple$2[0]; ok$1 = _tuple$2[1]; - /* */ if (!ok$1) { $s = 61; continue; } - /* */ $s = 62; continue; - /* if (!ok$1) { */ case 61: - /* */ if (fromQuoted) { $s = 63; continue; } - /* */ $s = 64; continue; - /* if (fromQuoted) { */ case 63: - _r$14 = fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v", new sliceType([item, $clone(v, reflect.Value).Type()])); /* */ $s = 65; case 65: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - $24r$3 = _r$14; - $s = 66; case 66: return $24r$3; - /* } */ case 64: + /* */ if (!ok$1) { $s = 59; continue; } + /* */ $s = 60; continue; + /* if (!ok$1) { */ case 59: + /* */ if (fromQuoted) { $s = 61; continue; } + /* */ $s = 62; continue; + /* if (fromQuoted) { */ case 61: + _r$12 = fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v", new sliceType([item, $clone(v, reflect.Value).Type()])); /* */ $s = 63; case 63: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + $24r$3 = _r$12; + $s = 64; case 64: return $24r$3; + /* } */ case 62: $panic(new $String("JSON decoder out of sync - data changing underfoot?")); - /* } */ case 62: + /* } */ case 60: _5 = $clone(v, reflect.Value).Kind(); - /* */ if (_5 === (23)) { $s = 68; continue; } - /* */ if (_5 === (24)) { $s = 69; continue; } - /* */ if (_5 === (20)) { $s = 70; continue; } - /* */ $s = 71; continue; - /* if (_5 === (23)) { */ case 68: - _r$15 = $clone(v, reflect.Value).Type().Elem(); /* */ $s = 75; case 75: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - _r$16 = _r$15.Kind(); /* */ $s = 76; case 76: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - /* */ if (!((_r$16 === 8))) { $s = 73; continue; } - /* */ $s = 74; continue; - /* if (!((_r$16 === 8))) { */ case 73: - $r = d.saveError(new UnmarshalTypeError.ptr("string", $clone(v, reflect.Value).Type(), (new $Int64(0, d.readIndex())), "", "")); /* */ $s = 77; case 77: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* break; */ $s = 67; continue; - /* } */ case 74: + /* */ if (_5 === (23)) { $s = 66; continue; } + /* */ if (_5 === (24)) { $s = 67; continue; } + /* */ if (_5 === (20)) { $s = 68; continue; } + /* */ $s = 69; continue; + /* if (_5 === (23)) { */ case 66: + _r$13 = $clone(v, reflect.Value).Type().Elem(); /* */ $s = 73; case 73: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _r$14 = _r$13.Kind(); /* */ $s = 74; case 74: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + /* */ if (!((_r$14 === 8))) { $s = 71; continue; } + /* */ $s = 72; continue; + /* if (!((_r$14 === 8))) { */ case 71: + $r = d.saveError(new UnmarshalTypeError.ptr("string", $clone(v, reflect.Value).Type(), (new $Int64(0, d.readIndex())), "", "")); /* */ $s = 75; case 75: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* break; */ $s = 65; continue; + /* } */ case 72: b = $makeSlice(sliceType$2, base64.StdEncoding.DecodedLen(s$1.$length)); _tuple$3 = base64.StdEncoding.Decode(b, s$1); n = _tuple$3[0]; err = _tuple$3[1]; - /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 78; continue; } - /* */ $s = 79; continue; - /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 78: - $r = d.saveError(err); /* */ $s = 80; case 80: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* break; */ $s = 67; continue; - /* } */ case 79: - $r = $clone(v, reflect.Value).SetBytes($subslice(b, 0, n)); /* */ $s = 81; case 81: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 72; continue; - /* } else if (_5 === (24)) { */ case 69: - /* */ if ($interfaceIsEqual($clone(v, reflect.Value).Type(), numberType) && !isValidNumber(($bytesToString(s$1)))) { $s = 82; continue; } - /* */ $s = 83; continue; - /* if ($interfaceIsEqual($clone(v, reflect.Value).Type(), numberType) && !isValidNumber(($bytesToString(s$1)))) { */ case 82: - _r$17 = fmt.Errorf("json: invalid number literal, trying to unmarshal %q into Number", new sliceType([item])); /* */ $s = 84; case 84: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - $24r$4 = _r$17; - $s = 85; case 85: return $24r$4; - /* } */ case 83: + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 76; continue; } + /* */ $s = 77; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 76: + $r = d.saveError(err); /* */ $s = 78; case 78: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* break; */ $s = 65; continue; + /* } */ case 77: + $r = $clone(v, reflect.Value).SetBytes($subslice(b, 0, n)); /* */ $s = 79; case 79: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 70; continue; + /* } else if (_5 === (24)) { */ case 67: + /* */ if ($interfaceIsEqual($clone(v, reflect.Value).Type(), numberType) && !isValidNumber(($bytesToString(s$1)))) { $s = 80; continue; } + /* */ $s = 81; continue; + /* if ($interfaceIsEqual($clone(v, reflect.Value).Type(), numberType) && !isValidNumber(($bytesToString(s$1)))) { */ case 80: + _r$15 = fmt.Errorf("json: invalid number literal, trying to unmarshal %q into Number", new sliceType([item])); /* */ $s = 82; case 82: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + $24r$4 = _r$15; + $s = 83; case 83: return $24r$4; + /* } */ case 81: $clone(v, reflect.Value).SetString(($bytesToString(s$1))); - $s = 72; continue; - /* } else if (_5 === (20)) { */ case 70: - /* */ if ($clone(v, reflect.Value).NumMethod() === 0) { $s = 86; continue; } - /* */ $s = 87; continue; - /* if ($clone(v, reflect.Value).NumMethod() === 0) { */ case 86: - _r$18 = reflect.ValueOf(new $String(($bytesToString(s$1)))); /* */ $s = 89; case 89: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - $r = $clone(v, reflect.Value).Set($clone(_r$18, reflect.Value)); /* */ $s = 90; case 90: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 88; continue; - /* } else { */ case 87: - $r = d.saveError(new UnmarshalTypeError.ptr("string", $clone(v, reflect.Value).Type(), (new $Int64(0, d.readIndex())), "", "")); /* */ $s = 91; case 91: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 88: - $s = 72; continue; - /* } else { */ case 71: - $r = d.saveError(new UnmarshalTypeError.ptr("string", $clone(v, reflect.Value).Type(), (new $Int64(0, d.readIndex())), "", "")); /* */ $s = 92; case 92: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 72: - case 67: + $s = 70; continue; + /* } else if (_5 === (20)) { */ case 68: + /* */ if ($clone(v, reflect.Value).NumMethod() === 0) { $s = 84; continue; } + /* */ $s = 85; continue; + /* if ($clone(v, reflect.Value).NumMethod() === 0) { */ case 84: + $r = $clone(v, reflect.Value).Set($clone(reflect.ValueOf(new $String(($bytesToString(s$1)))), reflect.Value)); /* */ $s = 87; case 87: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 86; continue; + /* } else { */ case 85: + $r = d.saveError(new UnmarshalTypeError.ptr("string", $clone(v, reflect.Value).Type(), (new $Int64(0, d.readIndex())), "", "")); /* */ $s = 88; case 88: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 86: + $s = 70; continue; + /* } else { */ case 69: + $r = d.saveError(new UnmarshalTypeError.ptr("string", $clone(v, reflect.Value).Type(), (new $Int64(0, d.readIndex())), "", "")); /* */ $s = 89; case 89: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 70: + case 65: $s = 32; continue; /* } else { */ case 31: - /* */ if (!((c === 45)) && (c < 48 || c > 57)) { $s = 93; continue; } - /* */ $s = 94; continue; - /* if (!((c === 45)) && (c < 48 || c > 57)) { */ case 93: - /* */ if (fromQuoted) { $s = 95; continue; } - /* */ $s = 96; continue; - /* if (fromQuoted) { */ case 95: - _r$19 = fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v", new sliceType([item, $clone(v, reflect.Value).Type()])); /* */ $s = 97; case 97: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - $24r$5 = _r$19; - $s = 98; case 98: return $24r$5; - /* } */ case 96: + /* */ if (!((c === 45)) && (c < 48 || c > 57)) { $s = 90; continue; } + /* */ $s = 91; continue; + /* if (!((c === 45)) && (c < 48 || c > 57)) { */ case 90: + /* */ if (fromQuoted) { $s = 92; continue; } + /* */ $s = 93; continue; + /* if (fromQuoted) { */ case 92: + _r$16 = fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v", new sliceType([item, $clone(v, reflect.Value).Type()])); /* */ $s = 94; case 94: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + $24r$5 = _r$16; + $s = 95; case 95: return $24r$5; + /* } */ case 93: $panic(new $String("JSON decoder out of sync - data changing underfoot?")); - /* } */ case 94: + /* } */ case 91: s$2 = ($bytesToString(item)); _6 = $clone(v, reflect.Value).Kind(); - /* */ if (_6 === (20)) { $s = 100; continue; } - /* */ if ((_6 === (2)) || (_6 === (3)) || (_6 === (4)) || (_6 === (5)) || (_6 === (6))) { $s = 101; continue; } - /* */ if ((_6 === (7)) || (_6 === (8)) || (_6 === (9)) || (_6 === (10)) || (_6 === (11)) || (_6 === (12))) { $s = 102; continue; } - /* */ if ((_6 === (13)) || (_6 === (14))) { $s = 103; continue; } - /* */ $s = 104; continue; - /* if (_6 === (20)) { */ case 100: + /* */ if (_6 === (20)) { $s = 97; continue; } + /* */ if ((_6 === (2)) || (_6 === (3)) || (_6 === (4)) || (_6 === (5)) || (_6 === (6))) { $s = 98; continue; } + /* */ if ((_6 === (7)) || (_6 === (8)) || (_6 === (9)) || (_6 === (10)) || (_6 === (11)) || (_6 === (12))) { $s = 99; continue; } + /* */ if ((_6 === (13)) || (_6 === (14))) { $s = 100; continue; } + /* */ $s = 101; continue; + /* if (_6 === (20)) { */ case 97: _tuple$4 = d.convertNumber(s$2); n$1 = _tuple$4[0]; err$1 = _tuple$4[1]; - /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 106; continue; } + /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 103; continue; } + /* */ $s = 104; continue; + /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 103: + $r = d.saveError(err$1); /* */ $s = 105; case 105: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* break; */ $s = 96; continue; + /* } */ case 104: + /* */ if (!(($clone(v, reflect.Value).NumMethod() === 0))) { $s = 106; continue; } /* */ $s = 107; continue; - /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 106: - $r = d.saveError(err$1); /* */ $s = 108; case 108: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* break; */ $s = 99; continue; + /* if (!(($clone(v, reflect.Value).NumMethod() === 0))) { */ case 106: + $r = d.saveError(new UnmarshalTypeError.ptr("number", $clone(v, reflect.Value).Type(), (new $Int64(0, d.readIndex())), "", "")); /* */ $s = 108; case 108: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* break; */ $s = 96; continue; /* } */ case 107: - /* */ if (!(($clone(v, reflect.Value).NumMethod() === 0))) { $s = 109; continue; } - /* */ $s = 110; continue; - /* if (!(($clone(v, reflect.Value).NumMethod() === 0))) { */ case 109: - $r = d.saveError(new UnmarshalTypeError.ptr("number", $clone(v, reflect.Value).Type(), (new $Int64(0, d.readIndex())), "", "")); /* */ $s = 111; case 111: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* break; */ $s = 99; continue; - /* } */ case 110: - _r$20 = reflect.ValueOf(n$1); /* */ $s = 112; case 112: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - $r = $clone(v, reflect.Value).Set($clone(_r$20, reflect.Value)); /* */ $s = 113; case 113: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 105; continue; - /* } else if ((_6 === (2)) || (_6 === (3)) || (_6 === (4)) || (_6 === (5)) || (_6 === (6))) { */ case 101: + $r = $clone(v, reflect.Value).Set($clone(reflect.ValueOf(n$1), reflect.Value)); /* */ $s = 109; case 109: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 102; continue; + /* } else if ((_6 === (2)) || (_6 === (3)) || (_6 === (4)) || (_6 === (5)) || (_6 === (6))) { */ case 98: _tuple$5 = strconv.ParseInt(s$2, 10, 64); n$2 = _tuple$5[0]; err$2 = _tuple$5[1]; - /* */ if (!($interfaceIsEqual(err$2, $ifaceNil)) || $clone(v, reflect.Value).OverflowInt(n$2)) { $s = 114; continue; } - /* */ $s = 115; continue; - /* if (!($interfaceIsEqual(err$2, $ifaceNil)) || $clone(v, reflect.Value).OverflowInt(n$2)) { */ case 114: - $r = d.saveError(new UnmarshalTypeError.ptr("number " + s$2, $clone(v, reflect.Value).Type(), (new $Int64(0, d.readIndex())), "", "")); /* */ $s = 116; case 116: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* break; */ $s = 99; continue; - /* } */ case 115: + /* */ if (!($interfaceIsEqual(err$2, $ifaceNil)) || $clone(v, reflect.Value).OverflowInt(n$2)) { $s = 110; continue; } + /* */ $s = 111; continue; + /* if (!($interfaceIsEqual(err$2, $ifaceNil)) || $clone(v, reflect.Value).OverflowInt(n$2)) { */ case 110: + $r = d.saveError(new UnmarshalTypeError.ptr("number " + s$2, $clone(v, reflect.Value).Type(), (new $Int64(0, d.readIndex())), "", "")); /* */ $s = 112; case 112: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* break; */ $s = 96; continue; + /* } */ case 111: $clone(v, reflect.Value).SetInt(n$2); - $s = 105; continue; - /* } else if ((_6 === (7)) || (_6 === (8)) || (_6 === (9)) || (_6 === (10)) || (_6 === (11)) || (_6 === (12))) { */ case 102: + $s = 102; continue; + /* } else if ((_6 === (7)) || (_6 === (8)) || (_6 === (9)) || (_6 === (10)) || (_6 === (11)) || (_6 === (12))) { */ case 99: _tuple$6 = strconv.ParseUint(s$2, 10, 64); n$3 = _tuple$6[0]; err$3 = _tuple$6[1]; - /* */ if (!($interfaceIsEqual(err$3, $ifaceNil)) || $clone(v, reflect.Value).OverflowUint(n$3)) { $s = 117; continue; } - /* */ $s = 118; continue; - /* if (!($interfaceIsEqual(err$3, $ifaceNil)) || $clone(v, reflect.Value).OverflowUint(n$3)) { */ case 117: - $r = d.saveError(new UnmarshalTypeError.ptr("number " + s$2, $clone(v, reflect.Value).Type(), (new $Int64(0, d.readIndex())), "", "")); /* */ $s = 119; case 119: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* break; */ $s = 99; continue; - /* } */ case 118: + /* */ if (!($interfaceIsEqual(err$3, $ifaceNil)) || $clone(v, reflect.Value).OverflowUint(n$3)) { $s = 113; continue; } + /* */ $s = 114; continue; + /* if (!($interfaceIsEqual(err$3, $ifaceNil)) || $clone(v, reflect.Value).OverflowUint(n$3)) { */ case 113: + $r = d.saveError(new UnmarshalTypeError.ptr("number " + s$2, $clone(v, reflect.Value).Type(), (new $Int64(0, d.readIndex())), "", "")); /* */ $s = 115; case 115: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* break; */ $s = 96; continue; + /* } */ case 114: $clone(v, reflect.Value).SetUint(n$3); - $s = 105; continue; - /* } else if ((_6 === (13)) || (_6 === (14))) { */ case 103: + $s = 102; continue; + /* } else if ((_6 === (13)) || (_6 === (14))) { */ case 100: _arg = s$2; - _r$21 = $clone(v, reflect.Value).Type().Bits(); /* */ $s = 120; case 120: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } - _arg$1 = _r$21; - _r$22 = strconv.ParseFloat(_arg, _arg$1); /* */ $s = 121; case 121: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple$7 = _r$22; + _r$17 = $clone(v, reflect.Value).Type().Bits(); /* */ $s = 116; case 116: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + _arg$1 = _r$17; + _r$18 = strconv.ParseFloat(_arg, _arg$1); /* */ $s = 117; case 117: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + _tuple$7 = _r$18; n$4 = _tuple$7[0]; err$4 = _tuple$7[1]; - /* */ if (!($interfaceIsEqual(err$4, $ifaceNil)) || $clone(v, reflect.Value).OverflowFloat(n$4)) { $s = 122; continue; } - /* */ $s = 123; continue; - /* if (!($interfaceIsEqual(err$4, $ifaceNil)) || $clone(v, reflect.Value).OverflowFloat(n$4)) { */ case 122: - $r = d.saveError(new UnmarshalTypeError.ptr("number " + s$2, $clone(v, reflect.Value).Type(), (new $Int64(0, d.readIndex())), "", "")); /* */ $s = 124; case 124: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* break; */ $s = 99; continue; - /* } */ case 123: + /* */ if (!($interfaceIsEqual(err$4, $ifaceNil)) || $clone(v, reflect.Value).OverflowFloat(n$4)) { $s = 118; continue; } + /* */ $s = 119; continue; + /* if (!($interfaceIsEqual(err$4, $ifaceNil)) || $clone(v, reflect.Value).OverflowFloat(n$4)) { */ case 118: + $r = d.saveError(new UnmarshalTypeError.ptr("number " + s$2, $clone(v, reflect.Value).Type(), (new $Int64(0, d.readIndex())), "", "")); /* */ $s = 120; case 120: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* break; */ $s = 96; continue; + /* } */ case 119: $clone(v, reflect.Value).SetFloat(n$4); - $s = 105; continue; - /* } else { */ case 104: + $s = 102; continue; + /* } else { */ case 101: if (($clone(v, reflect.Value).Kind() === 24) && $interfaceIsEqual($clone(v, reflect.Value).Type(), numberType)) { $clone(v, reflect.Value).SetString(s$2); - /* break; */ $s = 99; continue; + /* break; */ $s = 96; continue; } - /* */ if (fromQuoted) { $s = 125; continue; } - /* */ $s = 126; continue; - /* if (fromQuoted) { */ case 125: - _r$23 = fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v", new sliceType([item, $clone(v, reflect.Value).Type()])); /* */ $s = 127; case 127: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - $24r$6 = _r$23; - $s = 128; case 128: return $24r$6; - /* } */ case 126: - $r = d.saveError(new UnmarshalTypeError.ptr("number", $clone(v, reflect.Value).Type(), (new $Int64(0, d.readIndex())), "", "")); /* */ $s = 129; case 129: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 105: - case 99: + /* */ if (fromQuoted) { $s = 121; continue; } + /* */ $s = 122; continue; + /* if (fromQuoted) { */ case 121: + _r$19 = fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v", new sliceType([item, $clone(v, reflect.Value).Type()])); /* */ $s = 123; case 123: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + $24r$6 = _r$19; + $s = 124; case 124: return $24r$6; + /* } */ case 122: + $r = d.saveError(new UnmarshalTypeError.ptr("number", $clone(v, reflect.Value).Type(), (new $Int64(0, d.readIndex())), "", "")); /* */ $s = 125; case 125: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 102: + case 96: /* } */ case 32: case 27: $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: literalStore, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, _1, _2, _3, _4, _5, _6, _arg, _arg$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$20, _r$21, _r$22, _r$23, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, b, c, d, err, err$1, err$2, err$3, err$4, fromQuoted, isNull, item, n, n$1, n$2, n$3, n$4, ok, ok$1, pv, s, s$1, s$2, u, ut, v, val, value$1, $s};return $f; + /* */ } return; } var $f = {$blk: literalStore, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, _1, _2, _3, _4, _5, _6, _arg, _arg$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, b, c, d, err, err$1, err$2, err$3, err$4, fromQuoted, isNull, item, n, n$1, n$2, n$3, n$4, ok, ok$1, pv, s, s$1, s$2, u, ut, v, val, value$1, $s};return $f; }; $ptrType(decodeState).prototype.valueInterface = function valueInterface() { var {_1, _r$3, _r$4, _r$5, d, val, $s, $r, $c} = $restore(this, {}); @@ -326820,26 +329312,26 @@ $packages["encoding/json"] = (function() { ptrType$14.methods = [{prop: "Encode", name: "Encode", pkg: "", typ: $funcType([$emptyInterface], [$error], false)}, {prop: "SetIndent", name: "SetIndent", pkg: "", typ: $funcType([$String, $String], [], false)}, {prop: "SetEscapeHTML", name: "SetEscapeHTML", pkg: "", typ: $funcType([$Bool], [], false)}]; Delim.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; ptrType$15.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$8.methods = [{prop: "reset", name: "reset", pkg: "encoding/json", typ: $funcType([], [], false)}, {prop: "eof", name: "eof", pkg: "encoding/json", typ: $funcType([], [$Int], false)}, {prop: "pushParseState", name: "pushParseState", pkg: "encoding/json", typ: $funcType([$Uint8, $Int, $Int], [$Int], false)}, {prop: "popParseState", name: "popParseState", pkg: "encoding/json", typ: $funcType([], [], false)}, {prop: "error", name: "error", pkg: "encoding/json", typ: $funcType([$Uint8, $String], [$Int], false)}]; + ptrType$7.methods = [{prop: "reset", name: "reset", pkg: "encoding/json", typ: $funcType([], [], false)}, {prop: "eof", name: "eof", pkg: "encoding/json", typ: $funcType([], [$Int], false)}, {prop: "pushParseState", name: "pushParseState", pkg: "encoding/json", typ: $funcType([$Uint8, $Int, $Int], [$Int], false)}, {prop: "popParseState", name: "popParseState", pkg: "encoding/json", typ: $funcType([], [], false)}, {prop: "error", name: "error", pkg: "encoding/json", typ: $funcType([$Uint8, $String], [$Int], false)}]; ptrType$16.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; ptrType$17.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; ptrType$19.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Unwrap", name: "Unwrap", pkg: "", typ: $funcType([], [$error], false)}]; - ptrType$9.methods = [{prop: "marshal", name: "marshal", pkg: "encoding/json", typ: $funcType([$emptyInterface, encOpts], [$error], false)}, {prop: "error", name: "error", pkg: "encoding/json", typ: $funcType([$error], [], false)}, {prop: "reflectValue", name: "reflectValue", pkg: "encoding/json", typ: $funcType([reflect.Value, encOpts], [], false)}, {prop: "string", name: "string", pkg: "encoding/json", typ: $funcType([$String, $Bool], [], false)}, {prop: "stringBytes", name: "stringBytes", pkg: "encoding/json", typ: $funcType([sliceType$2, $Bool], [], false)}]; - floatEncoder.methods = [{prop: "encode", name: "encode", pkg: "encoding/json", typ: $funcType([ptrType$9, reflect.Value, encOpts], [], false)}]; - structEncoder.methods = [{prop: "encode", name: "encode", pkg: "encoding/json", typ: $funcType([ptrType$9, reflect.Value, encOpts], [], false)}]; - mapEncoder.methods = [{prop: "encode", name: "encode", pkg: "encoding/json", typ: $funcType([ptrType$9, reflect.Value, encOpts], [], false)}]; - sliceEncoder.methods = [{prop: "encode", name: "encode", pkg: "encoding/json", typ: $funcType([ptrType$9, reflect.Value, encOpts], [], false)}]; - arrayEncoder.methods = [{prop: "encode", name: "encode", pkg: "encoding/json", typ: $funcType([ptrType$9, reflect.Value, encOpts], [], false)}]; - ptrEncoder.methods = [{prop: "encode", name: "encode", pkg: "encoding/json", typ: $funcType([ptrType$9, reflect.Value, encOpts], [], false)}]; - condAddrEncoder.methods = [{prop: "encode", name: "encode", pkg: "encoding/json", typ: $funcType([ptrType$9, reflect.Value, encOpts], [], false)}]; - ptrType$20.methods = [{prop: "resolve", name: "resolve", pkg: "encoding/json", typ: $funcType([], [$error], false)}]; + ptrType$8.methods = [{prop: "marshal", name: "marshal", pkg: "encoding/json", typ: $funcType([$emptyInterface, encOpts], [$error], false)}, {prop: "error", name: "error", pkg: "encoding/json", typ: $funcType([$error], [], false)}, {prop: "reflectValue", name: "reflectValue", pkg: "encoding/json", typ: $funcType([reflect.Value, encOpts], [], false)}]; + floatEncoder.methods = [{prop: "encode", name: "encode", pkg: "encoding/json", typ: $funcType([ptrType$8, reflect.Value, encOpts], [], false)}]; + structEncoder.methods = [{prop: "encode", name: "encode", pkg: "encoding/json", typ: $funcType([ptrType$8, reflect.Value, encOpts], [], false)}]; + mapEncoder.methods = [{prop: "encode", name: "encode", pkg: "encoding/json", typ: $funcType([ptrType$8, reflect.Value, encOpts], [], false)}]; + sliceEncoder.methods = [{prop: "encode", name: "encode", pkg: "encoding/json", typ: $funcType([ptrType$8, reflect.Value, encOpts], [], false)}]; + arrayEncoder.methods = [{prop: "encode", name: "encode", pkg: "encoding/json", typ: $funcType([ptrType$8, reflect.Value, encOpts], [], false)}]; + ptrEncoder.methods = [{prop: "encode", name: "encode", pkg: "encoding/json", typ: $funcType([ptrType$8, reflect.Value, encOpts], [], false)}]; + condAddrEncoder.methods = [{prop: "encode", name: "encode", pkg: "encoding/json", typ: $funcType([ptrType$8, reflect.Value, encOpts], [], false)}]; + ptrType$10.methods = [{prop: "resolve", name: "resolve", pkg: "encoding/json", typ: $funcType([], [$error], false)}]; byIndex.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}]; - ptrType$10.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$22.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$11.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$21.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; Number.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Float64", name: "Float64", pkg: "", typ: $funcType([], [$Float64, $error], false)}, {prop: "Int64", name: "Int64", pkg: "", typ: $funcType([], [$Int64, $error], false)}]; - ptrType$23.methods = [{prop: "unmarshal", name: "unmarshal", pkg: "encoding/json", typ: $funcType([$emptyInterface], [$error], false)}, {prop: "readIndex", name: "readIndex", pkg: "encoding/json", typ: $funcType([], [$Int], false)}, {prop: "init", name: "init", pkg: "encoding/json", typ: $funcType([sliceType$2], [ptrType$23], false)}, {prop: "saveError", name: "saveError", pkg: "encoding/json", typ: $funcType([$error], [], false)}, {prop: "addErrorContext", name: "addErrorContext", pkg: "encoding/json", typ: $funcType([$error], [$error], false)}, {prop: "skip", name: "skip", pkg: "encoding/json", typ: $funcType([], [], false)}, {prop: "scanNext", name: "scanNext", pkg: "encoding/json", typ: $funcType([], [], false)}, {prop: "scanWhile", name: "scanWhile", pkg: "encoding/json", typ: $funcType([$Int], [], false)}, {prop: "rescanLiteral", name: "rescanLiteral", pkg: "encoding/json", typ: $funcType([], [], false)}, {prop: "value", name: "value", pkg: "encoding/json", typ: $funcType([reflect.Value], [$error], false)}, {prop: "valueQuoted", name: "valueQuoted", pkg: "encoding/json", typ: $funcType([], [$emptyInterface], false)}, {prop: "array", name: "array", pkg: "encoding/json", typ: $funcType([reflect.Value], [$error], false)}, {prop: "object", name: "object", pkg: "encoding/json", typ: $funcType([reflect.Value], [$error], false)}, {prop: "convertNumber", name: "convertNumber", pkg: "encoding/json", typ: $funcType([$String], [$emptyInterface, $error], false)}, {prop: "literalStore", name: "literalStore", pkg: "encoding/json", typ: $funcType([sliceType$2, reflect.Value, $Bool], [$error], false)}, {prop: "valueInterface", name: "valueInterface", pkg: "encoding/json", typ: $funcType([], [$emptyInterface], false)}, {prop: "arrayInterface", name: "arrayInterface", pkg: "encoding/json", typ: $funcType([], [sliceType], false)}, {prop: "objectInterface", name: "objectInterface", pkg: "encoding/json", typ: $funcType([], [mapType], false)}, {prop: "literalInterface", name: "literalInterface", pkg: "encoding/json", typ: $funcType([], [$emptyInterface], false)}]; + ptrType$22.methods = [{prop: "unmarshal", name: "unmarshal", pkg: "encoding/json", typ: $funcType([$emptyInterface], [$error], false)}, {prop: "readIndex", name: "readIndex", pkg: "encoding/json", typ: $funcType([], [$Int], false)}, {prop: "init", name: "init", pkg: "encoding/json", typ: $funcType([sliceType$2], [ptrType$22], false)}, {prop: "saveError", name: "saveError", pkg: "encoding/json", typ: $funcType([$error], [], false)}, {prop: "addErrorContext", name: "addErrorContext", pkg: "encoding/json", typ: $funcType([$error], [$error], false)}, {prop: "skip", name: "skip", pkg: "encoding/json", typ: $funcType([], [], false)}, {prop: "scanNext", name: "scanNext", pkg: "encoding/json", typ: $funcType([], [], false)}, {prop: "scanWhile", name: "scanWhile", pkg: "encoding/json", typ: $funcType([$Int], [], false)}, {prop: "rescanLiteral", name: "rescanLiteral", pkg: "encoding/json", typ: $funcType([], [], false)}, {prop: "value", name: "value", pkg: "encoding/json", typ: $funcType([reflect.Value], [$error], false)}, {prop: "valueQuoted", name: "valueQuoted", pkg: "encoding/json", typ: $funcType([], [$emptyInterface], false)}, {prop: "array", name: "array", pkg: "encoding/json", typ: $funcType([reflect.Value], [$error], false)}, {prop: "object", name: "object", pkg: "encoding/json", typ: $funcType([reflect.Value], [$error], false)}, {prop: "convertNumber", name: "convertNumber", pkg: "encoding/json", typ: $funcType([$String], [$emptyInterface, $error], false)}, {prop: "literalStore", name: "literalStore", pkg: "encoding/json", typ: $funcType([sliceType$2, reflect.Value, $Bool], [$error], false)}, {prop: "valueInterface", name: "valueInterface", pkg: "encoding/json", typ: $funcType([], [$emptyInterface], false)}, {prop: "arrayInterface", name: "arrayInterface", pkg: "encoding/json", typ: $funcType([], [sliceType], false)}, {prop: "objectInterface", name: "objectInterface", pkg: "encoding/json", typ: $funcType([], [mapType], false)}, {prop: "literalInterface", name: "literalInterface", pkg: "encoding/json", typ: $funcType([], [$emptyInterface], false)}]; Decoder.init("encoding/json", [{prop: "r", name: "r", embedded: false, exported: false, typ: io.Reader, tag: ""}, {prop: "buf", name: "buf", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "d", name: "d", embedded: false, exported: false, typ: decodeState, tag: ""}, {prop: "scanp", name: "scanp", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "scanned", name: "scanned", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "scan", name: "scan", embedded: false, exported: false, typ: scanner, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "tokenState", name: "tokenState", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "tokenStack", name: "tokenStack", embedded: false, exported: false, typ: sliceType$1, tag: ""}]); - Encoder.init("encoding/json", [{prop: "w", name: "w", embedded: false, exported: false, typ: io.Writer, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "escapeHTML", name: "escapeHTML", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "indentBuf", name: "indentBuf", embedded: false, exported: false, typ: ptrType$5, tag: ""}, {prop: "indentPrefix", name: "indentPrefix", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "indentValue", name: "indentValue", embedded: false, exported: false, typ: $String, tag: ""}]); + Encoder.init("encoding/json", [{prop: "w", name: "w", embedded: false, exported: false, typ: io.Writer, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "escapeHTML", name: "escapeHTML", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "indentBuf", name: "indentBuf", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "indentPrefix", name: "indentPrefix", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "indentValue", name: "indentValue", embedded: false, exported: false, typ: $String, tag: ""}]); Token.init([]); SyntaxError.init("encoding/json", [{prop: "msg", name: "msg", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "Offset", name: "Offset", embedded: false, exported: true, typ: $Int64, tag: ""}]); scanner.init("encoding/json", [{prop: "step", name: "step", embedded: false, exported: false, typ: funcType, tag: ""}, {prop: "endTop", name: "endTop", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "parseState", name: "parseState", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "bytes", name: "bytes", embedded: false, exported: false, typ: $Int64, tag: ""}]); @@ -326847,19 +329339,19 @@ $packages["encoding/json"] = (function() { UnsupportedTypeError.init("", [{prop: "Type", name: "Type", embedded: false, exported: true, typ: reflect.Type, tag: ""}]); UnsupportedValueError.init("", [{prop: "Value", name: "Value", embedded: false, exported: true, typ: reflect.Value, tag: ""}, {prop: "Str", name: "Str", embedded: false, exported: true, typ: $String, tag: ""}]); MarshalerError.init("encoding/json", [{prop: "Type", name: "Type", embedded: false, exported: true, typ: reflect.Type, tag: ""}, {prop: "Err", name: "Err", embedded: false, exported: true, typ: $error, tag: ""}, {prop: "sourceFunc", name: "sourceFunc", embedded: false, exported: false, typ: $String, tag: ""}]); - encodeState.init("encoding/json", [{prop: "Buffer", name: "Buffer", embedded: true, exported: true, typ: bytes.Buffer, tag: ""}, {prop: "scratch", name: "scratch", embedded: false, exported: false, typ: arrayType, tag: ""}, {prop: "ptrLevel", name: "ptrLevel", embedded: false, exported: false, typ: $Uint, tag: ""}, {prop: "ptrSeen", name: "ptrSeen", embedded: false, exported: false, typ: mapType$1, tag: ""}]); + encodeState.init("encoding/json", [{prop: "Buffer", name: "Buffer", embedded: true, exported: true, typ: bytes.Buffer, tag: ""}, {prop: "ptrLevel", name: "ptrLevel", embedded: false, exported: false, typ: $Uint, tag: ""}, {prop: "ptrSeen", name: "ptrSeen", embedded: false, exported: false, typ: mapType$1, tag: ""}]); jsonError.init("encoding/json", [{prop: "error", name: "error", embedded: true, exported: false, typ: $error, tag: ""}]); encOpts.init("encoding/json", [{prop: "quoted", name: "quoted", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "escapeHTML", name: "escapeHTML", embedded: false, exported: false, typ: $Bool, tag: ""}]); - encoderFunc.init([ptrType$9, reflect.Value, encOpts], [], false); + encoderFunc.init([ptrType$8, reflect.Value, encOpts], [], false); structEncoder.init("encoding/json", [{prop: "fields", name: "fields", embedded: false, exported: false, typ: structFields, tag: ""}]); - structFields.init("encoding/json", [{prop: "list", name: "list", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "nameIndex", name: "nameIndex", embedded: false, exported: false, typ: mapType$2, tag: ""}]); + structFields.init("encoding/json", [{prop: "list", name: "list", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "byExactName", name: "byExactName", embedded: false, exported: false, typ: mapType$2, tag: ""}, {prop: "byFoldedName", name: "byFoldedName", embedded: false, exported: false, typ: mapType$2, tag: ""}]); mapEncoder.init("encoding/json", [{prop: "elemEnc", name: "elemEnc", embedded: false, exported: false, typ: encoderFunc, tag: ""}]); sliceEncoder.init("encoding/json", [{prop: "arrayEnc", name: "arrayEnc", embedded: false, exported: false, typ: encoderFunc, tag: ""}]); arrayEncoder.init("encoding/json", [{prop: "elemEnc", name: "elemEnc", embedded: false, exported: false, typ: encoderFunc, tag: ""}]); ptrEncoder.init("encoding/json", [{prop: "elemEnc", name: "elemEnc", embedded: false, exported: false, typ: encoderFunc, tag: ""}]); condAddrEncoder.init("encoding/json", [{prop: "canAddrEnc", name: "canAddrEnc", embedded: false, exported: false, typ: encoderFunc, tag: ""}, {prop: "elseEnc", name: "elseEnc", embedded: false, exported: false, typ: encoderFunc, tag: ""}]); reflectWithString.init("encoding/json", [{prop: "k", name: "k", embedded: false, exported: false, typ: reflect.Value, tag: ""}, {prop: "v", name: "v", embedded: false, exported: false, typ: reflect.Value, tag: ""}, {prop: "ks", name: "ks", embedded: false, exported: false, typ: $String, tag: ""}]); - field.init("encoding/json", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "nameBytes", name: "nameBytes", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "equalFold", name: "equalFold", embedded: false, exported: false, typ: funcType$1, tag: ""}, {prop: "nameNonEsc", name: "nameNonEsc", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "nameEscHTML", name: "nameEscHTML", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "tag", name: "tag", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "index", name: "index", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: reflect.Type, tag: ""}, {prop: "omitEmpty", name: "omitEmpty", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "quoted", name: "quoted", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "encoder", name: "encoder", embedded: false, exported: false, typ: encoderFunc, tag: ""}]); + field.init("encoding/json", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "nameBytes", name: "nameBytes", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "nameNonEsc", name: "nameNonEsc", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "nameEscHTML", name: "nameEscHTML", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "tag", name: "tag", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "index", name: "index", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: reflect.Type, tag: ""}, {prop: "omitEmpty", name: "omitEmpty", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "quoted", name: "quoted", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "encoder", name: "encoder", embedded: false, exported: false, typ: encoderFunc, tag: ""}]); byIndex.init(field); Unmarshaler.init([{prop: "UnmarshalJSON", name: "UnmarshalJSON", pkg: "", typ: $funcType([sliceType$2], [$error], false)}]); UnmarshalTypeError.init("", [{prop: "Value", name: "Value", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: reflect.Type, tag: ""}, {prop: "Offset", name: "Offset", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "Struct", name: "Struct", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Field", name: "Field", embedded: false, exported: true, typ: $String, tag: ""}]); @@ -327248,7 +329740,7 @@ $packages["github.com/neelance/sourcemap"] = (function() { return $pkg; })(); $packages["github.com/sirupsen/logrus"] = (function() { - var $pkg = {}, $init, bufio, bytes, context, json, fmt, io, log, os, reflect, runtime, sort, strconv, strings, sync, atomic, time, utf8, TextFormatter, Fields, Level, LogFunction, Logger, exitFunc, MutexWrap, fieldKey, FieldMap, Hook, LevelHooks, Formatter, Entry, BufferPool, defaultPool, ptrType, sliceType, sliceType$1, ptrType$1, ptrType$2, ptrType$3, sliceType$2, funcType, sliceType$3, ptrType$4, funcType$1, sliceType$4, ptrType$5, ptrType$6, ptrType$7, sliceType$5, sliceType$6, ptrType$8, ptrType$9, funcType$2, funcType$3, ptrType$10, ptrType$12, funcType$4, ptrType$13, baseTimestamp, logrusPackage, minimumCallerDepth, callerInitOnce, bufferPool, std, handlers, writerFinalizer, init, checkIfTerminal, ParseLevel, New, prefixFieldClashes, Warnf, Errorf, Fatalf, init$1, NewEntry, getPackageName, getCaller, SetBufferPool, init$2, runHandler, runHandlers; + var $pkg = {}, $init, bufio, bytes, context, json, fmt, io, log, os, reflect, runtime, sort, strconv, strings, sync, atomic, time, utf8, TextFormatter, Fields, Level, LogFunction, Logger, exitFunc, MutexWrap, fieldKey, FieldMap, Hook, LevelHooks, Formatter, Entry, BufferPool, defaultPool, ptrType, sliceType, ptrType$2, ptrType$3, ptrType$4, sliceType$1, funcType, sliceType$2, ptrType$5, funcType$1, sliceType$3, sliceType$4, ptrType$6, ptrType$7, ptrType$8, sliceType$5, sliceType$6, ptrType$9, ptrType$10, funcType$2, funcType$3, ptrType$11, ptrType$13, funcType$4, ptrType$14, baseTimestamp, logrusPackage, minimumCallerDepth, callerInitOnce, bufferPool, std, handlers, writerFinalizer, init, checkIfTerminal, ParseLevel, New, prefixFieldClashes, Warnf, Errorf, Fatalf, init$1, NewEntry, getPackageName, getCaller, SetBufferPool, init$2, runHandler, runHandlers; bufio = $packages["bufio"]; bytes = $packages["bytes"]; context = $packages["context"]; @@ -327320,7 +329812,7 @@ $packages["github.com/sirupsen/logrus"] = (function() { this.ReportCaller = false; this.Level = 0; this.mu = new MutexWrap.ptr(new sync.Mutex.ptr(0, 0), false); - this.entryPool = new sync.Pool.ptr(sliceType$2.nil, $throwNilPointerError); + this.entryPool = new sync.Pool.ptr(sliceType$1.nil, $throwNilPointerError); this.ExitFunc = $throwNilPointerError; this.BufferPool = $ifaceNil; return; @@ -327354,13 +329846,13 @@ $packages["github.com/sirupsen/logrus"] = (function() { Entry = $newType(0, $kindStruct, "logrus.Entry", true, "github.com/sirupsen/logrus", true, function(Logger_, Data_, Time_, Level_, Caller_, Message_, Buffer_, Context_, err_) { this.$val = this; if (arguments.length === 0) { - this.Logger = ptrType$1.nil; + this.Logger = ptrType$2.nil; this.Data = false; this.Time = new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil); this.Level = 0; - this.Caller = ptrType$2.nil; + this.Caller = ptrType$3.nil; this.Message = ""; - this.Buffer = ptrType$3.nil; + this.Buffer = ptrType$4.nil; this.Context = $ifaceNil; this.err = ""; return; @@ -327379,7 +329871,7 @@ $packages["github.com/sirupsen/logrus"] = (function() { defaultPool = $newType(0, $kindStruct, "logrus.defaultPool", true, "github.com/sirupsen/logrus", false, function(pool_) { this.$val = this; if (arguments.length === 0) { - this.pool = ptrType$8.nil; + this.pool = ptrType$9.nil; return; } this.pool = pool_; @@ -327402,29 +329894,29 @@ $packages["github.com/sirupsen/logrus"] = (function() { $pkg.$finishSetup = function() { ptrType = $ptrType(time.Location); sliceType = $sliceType(Level); - sliceType$1 = $sliceType($Uint8); - ptrType$1 = $ptrType(Logger); - ptrType$2 = $ptrType(runtime.Frame); - ptrType$3 = $ptrType(bytes.Buffer); - sliceType$2 = $sliceType($emptyInterface); + ptrType$2 = $ptrType(Logger); + ptrType$3 = $ptrType(runtime.Frame); + ptrType$4 = $ptrType(bytes.Buffer); + sliceType$1 = $sliceType($emptyInterface); funcType = $funcType([], [], false); - sliceType$3 = $sliceType(funcType); - ptrType$4 = $ptrType(io.PipeWriter); - funcType$1 = $funcType([ptrType$4], [], false); + sliceType$2 = $sliceType(funcType); + ptrType$5 = $ptrType(io.PipeWriter); + funcType$1 = $funcType([ptrType$5], [], false); + sliceType$3 = $sliceType($Uint8); sliceType$4 = $sliceType($String); - ptrType$5 = $ptrType(Entry); - ptrType$6 = $ptrType($Uint32); - ptrType$7 = $ptrType(Level); + ptrType$6 = $ptrType(Entry); + ptrType$7 = $ptrType($Uint32); + ptrType$8 = $ptrType(Level); sliceType$5 = $sliceType(Hook); sliceType$6 = $sliceType($Uintptr); - ptrType$8 = $ptrType(sync.Pool); - ptrType$9 = $ptrType(TextFormatter); + ptrType$9 = $ptrType(sync.Pool); + ptrType$10 = $ptrType(TextFormatter); funcType$2 = $funcType([sliceType$4], [], false); - funcType$3 = $funcType([ptrType$2], [$String, $String], false); - ptrType$10 = $ptrType(MutexWrap); - ptrType$12 = $ptrType(io.PipeReader); - funcType$4 = $funcType([sliceType$2], [], true); - ptrType$13 = $ptrType(defaultPool); + funcType$3 = $funcType([ptrType$3], [$String, $String], false); + ptrType$11 = $ptrType(MutexWrap); + ptrType$13 = $ptrType(io.PipeReader); + funcType$4 = $funcType([sliceType$1], [], true); + ptrType$14 = $ptrType(defaultPool); $ptrType(Logger).prototype.Writer = function Writer() { var logger; logger = this; @@ -327475,7 +329967,7 @@ $packages["github.com/sirupsen/logrus"] = (function() { chunkSize = [chunkSize]; entry = this; scanner = bufio.NewScanner(reader); - scanner.Buffer($makeSlice(sliceType$1, 65536), 65536); + scanner.Buffer($makeSlice(sliceType$3, 65536), 65536); chunkSize[0] = 65536; splitFunc = (function(chunkSize) { return function Entry·writerScanner·func1(data, atEOF) { var atEOF, data; @@ -327488,14 +329980,14 @@ $packages["github.com/sirupsen/logrus"] = (function() { /* while (true) { */ case 1: _r = scanner.Scan(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; } - $r = printFunc(new sliceType$2([new $String(strings.TrimRight(scanner.Text(), "\r\n"))])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = printFunc(new sliceType$1([new $String(strings.TrimRight(scanner.Text(), "\r\n"))])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 1; continue; case 2: err = scanner.Err(); /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 5; continue; } /* */ $s = 6; continue; /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 5: - $r = entry.Errorf("Error while reading from Writer: %s", new sliceType$2([err])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = entry.Errorf("Error while reading from Writer: %s", new sliceType$1([err])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 6: _r$1 = reader.Close(); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _r$1; @@ -327522,7 +330014,7 @@ $packages["github.com/sirupsen/logrus"] = (function() { var {_i, _r, _r$1, _ref, entry, f, level, levelTextLength, $s, $r, $c} = $restore(this, {entry}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: f = this; - if (!(entry.Logger === ptrType$1.nil)) { + if (!(entry.Logger === ptrType$2.nil)) { f.isTerminal = checkIfTerminal(entry.Logger.Out); } _ref = $pkg.AllLevels; @@ -327531,7 +330023,7 @@ $packages["github.com/sirupsen/logrus"] = (function() { /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } level = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); _r = new Level(level).String(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = utf8.RuneCount((new sliceType$1($stringToBytes(_r)))); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1 = utf8.RuneCount((new sliceType$3($stringToBytes(_r)))); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } levelTextLength = _r$1; if (levelTextLength > f.levelTextMaxLength) { f.levelTextMaxLength = levelTextLength; @@ -327641,7 +330133,7 @@ $packages["github.com/sirupsen/logrus"] = (function() { $s = 5; continue; /* } else { */ case 4: funcVal = entry[0].Caller.Function; - _r$1 = fmt.Sprintf("%s:%d", new sliceType$2([new $String(entry[0].Caller.File), new $Int(entry[0].Caller.Line)])); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1 = fmt.Sprintf("%s:%d", new sliceType$1([new $String(entry[0].Caller.File), new $Int(entry[0].Caller.Line)])); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } fileVal = _r$1; /* } */ case 5: if (!(funcVal === "")) { @@ -327676,11 +330168,11 @@ $packages["github.com/sirupsen/logrus"] = (function() { /* } else { */ case 9: fixedKeys = $appendSlice(fixedKeys, keys); /* } */ case 10: - b = ptrType$3.nil; - if (!(entry[0].Buffer === ptrType$3.nil)) { + b = ptrType$4.nil; + if (!(entry[0].Buffer === ptrType$4.nil)) { b = entry[0].Buffer; } else { - b = new bytes.Buffer.ptr(sliceType$1.nil, 0, 0); + b = new bytes.Buffer.ptr(sliceType$3.nil, 0, 0); } $r = f[0].terminalInitOnce.Do((function(entry, f) { return function TextFormatter·Format·func1() { var {$s, $r, $c} = $restore(this, {}); @@ -327773,7 +330265,7 @@ $packages["github.com/sirupsen/logrus"] = (function() { /* */ $s = 4; continue; /* if (f.PadLevelText) { */ case 3: formatString = "%-" + strconv.Itoa(f.levelTextMaxLength) + "s"; - _r$2 = fmt.Sprintf(formatString, new sliceType$2([new $String(levelText)])); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2 = fmt.Sprintf(formatString, new sliceType$1([new $String(levelText)])); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } levelText = _r$2; /* } */ case 4: entry.Message = strings.TrimSuffix(entry.Message, "\n"); @@ -327781,9 +330273,9 @@ $packages["github.com/sirupsen/logrus"] = (function() { /* */ if ($clone(entry, Entry).HasCaller()) { $s = 6; continue; } /* */ $s = 7; continue; /* if ($clone(entry, Entry).HasCaller()) { */ case 6: - _r$3 = fmt.Sprintf("%s()", new sliceType$2([new $String(entry.Caller.Function)])); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3 = fmt.Sprintf("%s()", new sliceType$1([new $String(entry.Caller.Function)])); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } funcVal = _r$3; - _r$4 = fmt.Sprintf("%s:%d", new sliceType$2([new $String(entry.Caller.File), new $Int(entry.Caller.Line)])); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4 = fmt.Sprintf("%s:%d", new sliceType$1([new $String(entry.Caller.File), new $Int(entry.Caller.Line)])); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } fileVal = _r$4; /* */ if (!(f.CallerPrettyfier === $throwNilPointerError)) { $s = 10; continue; } /* */ $s = 11; continue; @@ -327805,11 +330297,11 @@ $packages["github.com/sirupsen/logrus"] = (function() { /* */ if (!f.FullTimestamp) { $s = 15; continue; } /* */ $s = 16; continue; /* if (f.DisableTimestamp) { */ case 14: - _r$6 = fmt.Fprintf(b, "\x1B[%dm%s\x1B[0m%s %-44s ", new sliceType$2([new $Int(levelColor), new $String(levelText), new $String(caller), new $String(entry.Message)])); /* */ $s = 18; case 18: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$6 = fmt.Fprintf(b, "\x1B[%dm%s\x1B[0m%s %-44s ", new sliceType$1([new $Int(levelColor), new $String(levelText), new $String(caller), new $String(entry.Message)])); /* */ $s = 18; case 18: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } _r$6; $s = 17; continue; /* } else if (!f.FullTimestamp) { */ case 15: - _r$7 = fmt.Fprintf(b, "\x1B[%dm%s\x1B[0m[%04d]%s %-44s ", new sliceType$2([new $Int(levelColor), new $String(levelText), new $Int((((x = $div64($clone(entry.Time, time.Time).Sub($clone(baseTimestamp, time.Time)), new time.Duration(0, 1000000000), false), x.$low + ((x.$high >> 31) * 4294967296)) >> 0))), new $String(caller), new $String(entry.Message)])); /* */ $s = 19; case 19: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$7 = fmt.Fprintf(b, "\x1B[%dm%s\x1B[0m[%04d]%s %-44s ", new sliceType$1([new $Int(levelColor), new $String(levelText), new $Int((((x = $div64($clone(entry.Time, time.Time).Sub($clone(baseTimestamp, time.Time)), new time.Duration(0, 1000000000), false), x.$low + ((x.$high >> 31) * 4294967296)) >> 0))), new $String(caller), new $String(entry.Message)])); /* */ $s = 19; case 19: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _r$7; $s = 17; continue; /* } else { */ case 16: @@ -327820,7 +330312,7 @@ $packages["github.com/sirupsen/logrus"] = (function() { _arg$3 = new $String(_r$8); _arg$4 = new $String(caller); _arg$5 = new $String(entry.Message); - _r$9 = fmt.Fprintf(_arg, "\x1B[%dm%s\x1B[0m[%s]%s %-44s ", new sliceType$2([_arg$1, _arg$2, _arg$3, _arg$4, _arg$5])); /* */ $s = 21; case 21: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$9 = fmt.Fprintf(_arg, "\x1B[%dm%s\x1B[0m[%s]%s %-44s ", new sliceType$1([_arg$1, _arg$2, _arg$3, _arg$4, _arg$5])); /* */ $s = 21; case 21: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } _r$9; /* } */ case 17: case 13: @@ -327830,7 +330322,7 @@ $packages["github.com/sirupsen/logrus"] = (function() { /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 23; continue; } k = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); v = (_entry = $mapIndex(data,$String.keyFor(k)), _entry !== undefined ? _entry.v : $ifaceNil); - _r$10 = fmt.Fprintf(b, " \x1B[%dm%s\x1B[0m=", new sliceType$2([new $Int(levelColor), new $String(k)])); /* */ $s = 24; case 24: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$10 = fmt.Fprintf(b, " \x1B[%dm%s\x1B[0m=", new sliceType$1([new $Int(levelColor), new $String(k)])); /* */ $s = 24; case 24: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } _r$10; $r = f.appendValue(b, v); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _i++; @@ -327887,7 +330379,7 @@ $packages["github.com/sirupsen/logrus"] = (function() { /* */ if (!ok) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!ok) { */ case 1: - _r = fmt.Sprint(new sliceType$2([value])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = fmt.Sprint(new sliceType$1([value])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } stringVal = _r; /* } */ case 2: /* */ if (!f.needsQuoting(stringVal)) { $s = 4; continue; } @@ -327896,7 +330388,7 @@ $packages["github.com/sirupsen/logrus"] = (function() { b.WriteString(stringVal); $s = 6; continue; /* } else { */ case 5: - _r$1 = fmt.Sprintf("%q", new sliceType$2([new $String(stringVal)])); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1 = fmt.Sprintf("%q", new sliceType$1([new $String(stringVal)])); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _r$2 = b.WriteString(_r$1); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } _r$2; /* } */ case 6: @@ -327946,7 +330438,7 @@ $packages["github.com/sirupsen/logrus"] = (function() { } case 1: l = 0; - _r$1 = fmt.Errorf("not a valid logrus Level: %q", new sliceType$2([new $String(lvl)])); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1 = fmt.Errorf("not a valid logrus Level: %q", new sliceType$1([new $String(lvl)])); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $24r = [l, _r$1]; $s = 4; case 4: return $24r; /* */ } return; } var $f = {$blk: ParseLevel$1, $c: true, $r, $24r, _1, _r, _r$1, l, lvl, $s};return $f; @@ -327973,22 +330465,22 @@ $packages["github.com/sirupsen/logrus"] = (function() { level = this.$val; _1 = level; if (_1 === (6)) { - $s = -1; return [(new sliceType$1($stringToBytes("trace"))), $ifaceNil]; + $s = -1; return [(new sliceType$3($stringToBytes("trace"))), $ifaceNil]; } else if (_1 === (5)) { - $s = -1; return [(new sliceType$1($stringToBytes("debug"))), $ifaceNil]; + $s = -1; return [(new sliceType$3($stringToBytes("debug"))), $ifaceNil]; } else if (_1 === (4)) { - $s = -1; return [(new sliceType$1($stringToBytes("info"))), $ifaceNil]; + $s = -1; return [(new sliceType$3($stringToBytes("info"))), $ifaceNil]; } else if (_1 === (3)) { - $s = -1; return [(new sliceType$1($stringToBytes("warning"))), $ifaceNil]; + $s = -1; return [(new sliceType$3($stringToBytes("warning"))), $ifaceNil]; } else if (_1 === (2)) { - $s = -1; return [(new sliceType$1($stringToBytes("error"))), $ifaceNil]; + $s = -1; return [(new sliceType$3($stringToBytes("error"))), $ifaceNil]; } else if (_1 === (1)) { - $s = -1; return [(new sliceType$1($stringToBytes("fatal"))), $ifaceNil]; + $s = -1; return [(new sliceType$3($stringToBytes("fatal"))), $ifaceNil]; } else if (_1 === (0)) { - $s = -1; return [(new sliceType$1($stringToBytes("panic"))), $ifaceNil]; + $s = -1; return [(new sliceType$3($stringToBytes("panic"))), $ifaceNil]; } - _r = fmt.Errorf("not a valid logrus level %d", new sliceType$2([new Level(level)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = [sliceType$1.nil, _r]; + _r = fmt.Errorf("not a valid logrus level %d", new sliceType$1([new Level(level)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = [sliceType$3.nil, _r]; $s = 2; case 2: return $24r; /* */ } return; } var $f = {$blk: MarshalText, $c: true, $r, $24r, _1, _r, level, $s};return $f; }; @@ -328023,7 +330515,7 @@ $packages["github.com/sirupsen/logrus"] = (function() { mw.disabled = true; }; New = function New$1() { - return new Logger.ptr(os.Stderr, new $global.Map(), new TextFormatter.ptr(false, false, false, false, false, false, false, "", false, $throwNilPointerError, false, false, false, false, false, $throwNilPointerError, new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0)), 0), false, 4, new MutexWrap.ptr(new sync.Mutex.ptr(0, 0), false), new sync.Pool.ptr(sliceType$2.nil, $throwNilPointerError), os.Exit, $ifaceNil); + return new Logger.ptr(os.Stderr, new $global.Map(), new TextFormatter.ptr(false, false, false, false, false, false, false, "", false, $throwNilPointerError, false, false, false, false, false, $throwNilPointerError, new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0)), 0), false, 4, new MutexWrap.ptr(new sync.Mutex.ptr(0, 0), false), new sync.Pool.ptr(sliceType$1.nil, $throwNilPointerError), os.Exit, $ifaceNil); }; $pkg.New = New; $ptrType(Logger).prototype.newEntry = function newEntry() { @@ -328031,7 +330523,7 @@ $packages["github.com/sirupsen/logrus"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: logger = this; _r = logger.entryPool.Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = $assertType(_r, ptrType$5, true); + _tuple = $assertType(_r, ptrType$6, true); entry = _tuple[0]; ok = _tuple[1]; if (ok) { @@ -328056,7 +330548,7 @@ $packages["github.com/sirupsen/logrus"] = (function() { _r$1 = entry.WithField(key, value); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $24r = _r$1; $s = 3; case 3: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$5.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: WithField$1, $c: true, $r, $24r, _r, _r$1, entry, key, logger, value, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$6.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: WithField$1, $c: true, $r, $24r, _r, _r$1, entry, key, logger, value, $s, $deferred};return $f; } } }; $ptrType(Logger).prototype.WithFields = function WithFields$1(fields) { var {$24r, _r, _r$1, entry, fields, logger, $s, $deferred, $r, $c} = $restore(this, {fields}); @@ -328068,7 +330560,7 @@ $packages["github.com/sirupsen/logrus"] = (function() { _r$1 = entry.WithFields(fields); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $24r = _r$1; $s = 3; case 3: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$5.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: WithFields$1, $c: true, $r, $24r, _r, _r$1, entry, fields, logger, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$6.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: WithFields$1, $c: true, $r, $24r, _r, _r$1, entry, fields, logger, $s, $deferred};return $f; } } }; $ptrType(Logger).prototype.WithError = function WithError$1(err) { var {$24r, _r, _r$1, entry, err, logger, $s, $deferred, $r, $c} = $restore(this, {err}); @@ -328080,7 +330572,7 @@ $packages["github.com/sirupsen/logrus"] = (function() { _r$1 = entry.WithError(err); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $24r = _r$1; $s = 3; case 3: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$5.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: WithError$1, $c: true, $r, $24r, _r, _r$1, entry, err, logger, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$6.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: WithError$1, $c: true, $r, $24r, _r, _r$1, entry, err, logger, $s, $deferred};return $f; } } }; $ptrType(Logger).prototype.WithContext = function WithContext$1(ctx) { var {_r, ctx, entry, logger, $s, $deferred, $r, $c} = $restore(this, {ctx}); @@ -328090,7 +330582,7 @@ $packages["github.com/sirupsen/logrus"] = (function() { entry = _r; $deferred.push([$methodVal(logger, "releaseEntry"), [entry]]); $s = -1; return entry.WithContext(ctx); - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$5.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: WithContext$1, $c: true, $r, _r, ctx, entry, logger, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$6.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: WithContext$1, $c: true, $r, _r, ctx, entry, logger, $s, $deferred};return $f; } } }; $ptrType(Logger).prototype.WithTime = function WithTime$1(t) { var {_r, entry, logger, t, $s, $deferred, $r, $c} = $restore(this, {t}); @@ -328100,7 +330592,7 @@ $packages["github.com/sirupsen/logrus"] = (function() { entry = _r; $deferred.push([$methodVal(logger, "releaseEntry"), [entry]]); $s = -1; return entry.WithTime($clone(t, time.Time)); - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$5.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: WithTime$1, $c: true, $r, _r, entry, logger, t, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$6.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: WithTime$1, $c: true, $r, _r, entry, logger, t, $s, $deferred};return $f; } } }; $ptrType(Logger).prototype.Logf = function Logf(level, format, args) { var {_r, args, entry, format, level, logger, $s, $r, $c} = $restore(this, {level, format, args}); @@ -328490,12 +330982,12 @@ $packages["github.com/sirupsen/logrus"] = (function() { $ptrType(Logger).prototype.level = function level() { var _ptr, logger; logger = this; - return ((atomic.LoadUint32(((_ptr = (logger.$ptr_Level || (logger.$ptr_Level = new ptrType$7(function() { return this.$target.Level; }, function($v) { this.$target.Level = $v; }, logger))), new ptrType$6(function() { return (_ptr.$get() >>> 0); }, function($v) { _ptr.$set(($v >>> 0)); }, _ptr.$target)))) >>> 0)); + return ((atomic.LoadUint32(((_ptr = (logger === ptrType$2.nil && $throwNilPointerError(), (logger.$ptr_Level || (logger.$ptr_Level = new ptrType$8(function() { return this.$target.Level; }, function($v) { this.$target.Level = $v; }, logger)))), new ptrType$7(function() { return (_ptr.$get() >>> 0); }, function($v) { _ptr.$set(($v >>> 0)); }, _ptr.$target, _ptr.$index)))) >>> 0)); }; $ptrType(Logger).prototype.SetLevel = function SetLevel$1(level$1) { var _ptr, level$1, logger; logger = this; - atomic.StoreUint32(((_ptr = (logger.$ptr_Level || (logger.$ptr_Level = new ptrType$7(function() { return this.$target.Level; }, function($v) { this.$target.Level = $v; }, logger))), new ptrType$6(function() { return (_ptr.$get() >>> 0); }, function($v) { _ptr.$set(($v >>> 0)); }, _ptr.$target))), ((level$1 >>> 0))); + atomic.StoreUint32(((_ptr = (logger === ptrType$2.nil && $throwNilPointerError(), (logger.$ptr_Level || (logger.$ptr_Level = new ptrType$8(function() { return this.$target.Level; }, function($v) { this.$target.Level = $v; }, logger)))), new ptrType$7(function() { return (_ptr.$get() >>> 0); }, function($v) { _ptr.$set(($v >>> 0)); }, _ptr.$target, _ptr.$index))), ((level$1 >>> 0))); }; $ptrType(Logger).prototype.GetLevel = function GetLevel$1() { var logger; @@ -328699,7 +331191,7 @@ $packages["github.com/sirupsen/logrus"] = (function() { }; NewEntry = function NewEntry$1(logger) { var logger; - return new Entry.ptr(logger, new $global.Map(), new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil), 0, ptrType$2.nil, "", ptrType$3.nil, $ifaceNil, ""); + return new Entry.ptr(logger, new $global.Map(), new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType.nil), 0, ptrType$3.nil, "", ptrType$4.nil, $ifaceNil, ""); }; $pkg.NewEntry = NewEntry; $ptrType(Entry).prototype.Dup = function Dup() { @@ -328723,7 +331215,7 @@ $packages["github.com/sirupsen/logrus"] = (function() { _key$1 = k; (data || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$1), { k: _key$1, v: v }); _i++; } - return new Entry.ptr(entry.Logger, data, $clone(entry.Time, time.Time), 0, ptrType$2.nil, "", ptrType$3.nil, entry.Context, entry.err); + return new Entry.ptr(entry.Logger, data, $clone(entry.Time, time.Time), 0, ptrType$3.nil, "", ptrType$4.nil, entry.Context, entry.err); }; $ptrType(Entry).prototype.Bytes = function Bytes() { var {$24r, _r, entry, $s, $r, $c} = $restore(this, {}); @@ -328779,7 +331271,7 @@ $packages["github.com/sirupsen/logrus"] = (function() { _key$1 = k; (dataCopy || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$1), { k: _key$1, v: v }); _i++; } - return new Entry.ptr(entry.Logger, dataCopy, $clone(entry.Time, time.Time), 0, ptrType$2.nil, "", ptrType$3.nil, ctx, entry.err); + return new Entry.ptr(entry.Logger, dataCopy, $clone(entry.Time, time.Time), 0, ptrType$3.nil, "", ptrType$4.nil, ctx, entry.err); }; $ptrType(Entry).prototype.WithField = function WithField$3(key, value) { var {$24r, _r, entry, key, value, $s, $r, $c} = $restore(this, {key, value}); @@ -328850,7 +331342,7 @@ $packages["github.com/sirupsen/logrus"] = (function() { /* */ if (isErrField) { $s = 14; continue; } /* */ $s = 15; continue; /* if (isErrField) { */ case 14: - _r$4 = fmt.Sprintf("can not add field %q", new sliceType$2([new $String(k$1)])); /* */ $s = 17; case 17: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4 = fmt.Sprintf("can not add field %q", new sliceType$1([new $String(k$1)])); /* */ $s = 17; case 17: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } tmp = _r$4; if (!(fieldErr === "")) { fieldErr = entry.err + ", " + tmp; @@ -328864,7 +331356,7 @@ $packages["github.com/sirupsen/logrus"] = (function() { _i$1++; $s = 1; continue; case 2: - $s = -1; return new Entry.ptr(entry.Logger, data, $clone(entry.Time, time.Time), 0, ptrType$2.nil, "", ptrType$3.nil, entry.Context, fieldErr); + $s = -1; return new Entry.ptr(entry.Logger, data, $clone(entry.Time, time.Time), 0, ptrType$3.nil, "", ptrType$4.nil, entry.Context, fieldErr); /* */ } return; } var $f = {$blk: WithFields$3, $c: true, $r, _entry, _entry$1, _i, _i$1, _key, _key$1, _key$2, _key$3, _keys, _keys$1, _r, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _size, _size$1, _v, _v$1, data, entry, fieldErr, fields, isErrField, k, k$1, t, tmp, v, v$1, x, $s};return $f; }; $ptrType(Entry).prototype.WithTime = function WithTime$3(t) { @@ -328888,7 +331380,7 @@ $packages["github.com/sirupsen/logrus"] = (function() { _key$1 = k; (dataCopy || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$1), { k: _key$1, v: v }); _i++; } - return new Entry.ptr(entry.Logger, dataCopy, $clone(t, time.Time), 0, ptrType$2.nil, "", ptrType$3.nil, entry.Context, entry.err); + return new Entry.ptr(entry.Logger, dataCopy, $clone(t, time.Time), 0, ptrType$3.nil, "", ptrType$4.nil, entry.Context, entry.err); }; getPackageName = function getPackageName$1(f) { var f, lastPeriod, lastSlash; @@ -328939,14 +331431,14 @@ $packages["github.com/sirupsen/logrus"] = (function() { runtime.Frame.copy(f[0], _tuple$1[0]); again = _tuple$1[1]; } - $s = -1; return ptrType$2.nil; + $s = -1; return ptrType$3.nil; /* */ } return; } var $f = {$blk: getCaller$1, $c: true, $r, _tuple, _tuple$1, again, depth, f, frames, pcs, pkg, $s};return $f; }; $ptrType(Entry).prototype.HasCaller = function HasCaller() { var entry, has; has = false; entry = this; - has = !(entry.Logger === ptrType$1.nil) && entry.Logger.ReportCaller && !(entry.Caller === ptrType$2.nil); + has = !(entry.Logger === ptrType$2.nil) && entry.Logger.ReportCaller && !(entry.Caller === ptrType$3.nil); return has; }; Entry.prototype.HasCaller = function(...$args) { return this.$val.HasCaller(...$args); }; @@ -328957,7 +331449,7 @@ $packages["github.com/sirupsen/logrus"] = (function() { buffer = [buffer]; newEntry$1 = [newEntry$1]; entry = this; - buffer[0] = ptrType$3.nil; + buffer[0] = ptrType$4.nil; newEntry$1[0] = entry.Dup(); /* */ if ($clone(newEntry$1[0].Time, time.Time).IsZero()) { $s = 1; continue; } /* */ $s = 2; continue; @@ -328983,7 +331475,7 @@ $packages["github.com/sirupsen/logrus"] = (function() { $deferred.push([(function(bufPool, buffer, newEntry$1) { return function Entry·log·func1() { var {$s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - newEntry$1[0].Buffer = ptrType$3.nil; + newEntry$1[0].Buffer = ptrType$4.nil; buffer[0].Reset(); $r = bufPool[0].Put(buffer[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; @@ -328992,7 +331484,7 @@ $packages["github.com/sirupsen/logrus"] = (function() { buffer[0].Reset(); newEntry$1[0].Buffer = buffer[0]; $r = newEntry$1[0].write(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - newEntry$1[0].Buffer = ptrType$3.nil; + newEntry$1[0].Buffer = ptrType$4.nil; if (level$1 <= 0) { $panic(newEntry$1[0]); } @@ -329040,7 +331532,7 @@ $packages["github.com/sirupsen/logrus"] = (function() { /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 4; continue; } /* */ $s = 5; continue; /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 4: - _r$1 = fmt.Fprintf(os.Stderr, "Failed to fire hook: %v\n", new sliceType$2([err])); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1 = fmt.Fprintf(os.Stderr, "Failed to fire hook: %v\n", new sliceType$1([err])); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _r$1; /* } */ case 5: $s = -1; return; @@ -329059,7 +331551,7 @@ $packages["github.com/sirupsen/logrus"] = (function() { /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 3; continue; } /* */ $s = 4; continue; /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 3: - _r$1 = fmt.Fprintf(os.Stderr, "Failed to obtain reader, %v\n", new sliceType$2([err])); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1 = fmt.Fprintf(os.Stderr, "Failed to obtain reader, %v\n", new sliceType$1([err])); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _r$1; $s = 6; case 6: return; /* } */ case 4: @@ -329069,7 +331561,7 @@ $packages["github.com/sirupsen/logrus"] = (function() { /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 8; continue; } /* */ $s = 9; continue; /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 8: - _r$3 = fmt.Fprintf(os.Stderr, "Failed to write to log, %v\n", new sliceType$2([err$1])); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3 = fmt.Fprintf(os.Stderr, "Failed to write to log, %v\n", new sliceType$1([err$1])); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _r$3; /* } */ case 9: $s = -1; return; @@ -329173,7 +331665,7 @@ $packages["github.com/sirupsen/logrus"] = (function() { _arg = level$1; _r = fmt.Sprintf(format, args); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _arg$1 = new $String(_r); - $r = entry.Log(_arg, new sliceType$2([_arg$1])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = entry.Log(_arg, new sliceType$1([_arg$1])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 2: $s = -1; return; /* */ } return; } var $f = {$blk: Logf$1, $c: true, $r, _arg, _arg$1, _r, args, entry, format, level$1, $s};return $f; @@ -329261,7 +331753,7 @@ $packages["github.com/sirupsen/logrus"] = (function() { _arg = level$1; _r = entry.sprintlnn(args); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _arg$1 = new $String(_r); - $r = entry.Log(_arg, new sliceType$2([_arg$1])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = entry.Log(_arg, new sliceType$1([_arg$1])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 2: $s = -1; return; /* */ } return; } var $f = {$blk: Logln$1, $c: true, $r, _arg, _arg$1, _r, args, entry, level$1, $s};return $f; @@ -329358,7 +331850,7 @@ $packages["github.com/sirupsen/logrus"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; _r = p.pool.Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = $assertType(_r, ptrType$3); + $24r = $assertType(_r, ptrType$4); $s = 2; case 2: return $24r; /* */ } return; } var $f = {$blk: Get, $c: true, $r, $24r, _r, p, $s};return $f; }; @@ -329368,8 +331860,8 @@ $packages["github.com/sirupsen/logrus"] = (function() { }; $pkg.SetBufferPool = SetBufferPool; init$2 = function init$6() { - SetBufferPool(new defaultPool.ptr(new sync.Pool.ptr(sliceType$2.nil, (function init·func1() { - return new bytes.Buffer.ptr(sliceType$1.nil, 0, 0); + SetBufferPool(new defaultPool.ptr(new sync.Pool.ptr(sliceType$1.nil, (function init·func1() { + return new bytes.Buffer.ptr(sliceType$3.nil, 0, 0); })))); }; runHandler = function runHandler$1(handler) { @@ -329382,7 +331874,7 @@ $packages["github.com/sirupsen/logrus"] = (function() { /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 1: - _r = fmt.Fprintln(os.Stderr, new sliceType$2([new $String("Error: Logrus exit handler error:"), err])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = fmt.Fprintln(os.Stderr, new sliceType$1([new $String("Error: Logrus exit handler error:"), err])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _r; /* } */ case 2: $s = -1; return; @@ -329407,29 +331899,29 @@ $packages["github.com/sirupsen/logrus"] = (function() { $s = -1; return; /* */ } return; } var $f = {$blk: runHandlers$1, $c: true, $r, _i, _ref, handler, $s};return $f; }; - ptrType$9.methods = [{prop: "init", name: "init", pkg: "github.com/sirupsen/logrus", typ: $funcType([ptrType$5], [], false)}, {prop: "isColored", name: "isColored", pkg: "github.com/sirupsen/logrus", typ: $funcType([], [$Bool], false)}, {prop: "Format", name: "Format", pkg: "", typ: $funcType([ptrType$5], [sliceType$1, $error], false)}, {prop: "printColored", name: "printColored", pkg: "github.com/sirupsen/logrus", typ: $funcType([ptrType$3, ptrType$5, sliceType$4, Fields, $String], [], false)}, {prop: "needsQuoting", name: "needsQuoting", pkg: "github.com/sirupsen/logrus", typ: $funcType([$String], [$Bool], false)}, {prop: "appendKeyValue", name: "appendKeyValue", pkg: "github.com/sirupsen/logrus", typ: $funcType([ptrType$3, $String, $emptyInterface], [], false)}, {prop: "appendValue", name: "appendValue", pkg: "github.com/sirupsen/logrus", typ: $funcType([ptrType$3, $emptyInterface], [], false)}]; - Level.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "MarshalText", name: "MarshalText", pkg: "", typ: $funcType([], [sliceType$1, $error], false)}]; - ptrType$7.methods = [{prop: "UnmarshalText", name: "UnmarshalText", pkg: "", typ: $funcType([sliceType$1], [$error], false)}]; - ptrType$1.methods = [{prop: "Writer", name: "Writer", pkg: "", typ: $funcType([], [ptrType$4], false)}, {prop: "WriterLevel", name: "WriterLevel", pkg: "", typ: $funcType([Level], [ptrType$4], false)}, {prop: "newEntry", name: "newEntry", pkg: "github.com/sirupsen/logrus", typ: $funcType([], [ptrType$5], false)}, {prop: "releaseEntry", name: "releaseEntry", pkg: "github.com/sirupsen/logrus", typ: $funcType([ptrType$5], [], false)}, {prop: "WithField", name: "WithField", pkg: "", typ: $funcType([$String, $emptyInterface], [ptrType$5], false)}, {prop: "WithFields", name: "WithFields", pkg: "", typ: $funcType([Fields], [ptrType$5], false)}, {prop: "WithError", name: "WithError", pkg: "", typ: $funcType([$error], [ptrType$5], false)}, {prop: "WithContext", name: "WithContext", pkg: "", typ: $funcType([context.Context], [ptrType$5], false)}, {prop: "WithTime", name: "WithTime", pkg: "", typ: $funcType([time.Time], [ptrType$5], false)}, {prop: "Logf", name: "Logf", pkg: "", typ: $funcType([Level, $String, sliceType$2], [], true)}, {prop: "Tracef", name: "Tracef", pkg: "", typ: $funcType([$String, sliceType$2], [], true)}, {prop: "Debugf", name: "Debugf", pkg: "", typ: $funcType([$String, sliceType$2], [], true)}, {prop: "Infof", name: "Infof", pkg: "", typ: $funcType([$String, sliceType$2], [], true)}, {prop: "Printf", name: "Printf", pkg: "", typ: $funcType([$String, sliceType$2], [], true)}, {prop: "Warnf", name: "Warnf", pkg: "", typ: $funcType([$String, sliceType$2], [], true)}, {prop: "Warningf", name: "Warningf", pkg: "", typ: $funcType([$String, sliceType$2], [], true)}, {prop: "Errorf", name: "Errorf", pkg: "", typ: $funcType([$String, sliceType$2], [], true)}, {prop: "Fatalf", name: "Fatalf", pkg: "", typ: $funcType([$String, sliceType$2], [], true)}, {prop: "Panicf", name: "Panicf", pkg: "", typ: $funcType([$String, sliceType$2], [], true)}, {prop: "Log", name: "Log", pkg: "", typ: $funcType([Level, sliceType$2], [], true)}, {prop: "LogFn", name: "LogFn", pkg: "", typ: $funcType([Level, LogFunction], [], false)}, {prop: "Trace", name: "Trace", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Debug", name: "Debug", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Info", name: "Info", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Print", name: "Print", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Warn", name: "Warn", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Warning", name: "Warning", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Error", name: "Error", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Fatal", name: "Fatal", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Panic", name: "Panic", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "TraceFn", name: "TraceFn", pkg: "", typ: $funcType([LogFunction], [], false)}, {prop: "DebugFn", name: "DebugFn", pkg: "", typ: $funcType([LogFunction], [], false)}, {prop: "InfoFn", name: "InfoFn", pkg: "", typ: $funcType([LogFunction], [], false)}, {prop: "PrintFn", name: "PrintFn", pkg: "", typ: $funcType([LogFunction], [], false)}, {prop: "WarnFn", name: "WarnFn", pkg: "", typ: $funcType([LogFunction], [], false)}, {prop: "WarningFn", name: "WarningFn", pkg: "", typ: $funcType([LogFunction], [], false)}, {prop: "ErrorFn", name: "ErrorFn", pkg: "", typ: $funcType([LogFunction], [], false)}, {prop: "FatalFn", name: "FatalFn", pkg: "", typ: $funcType([LogFunction], [], false)}, {prop: "PanicFn", name: "PanicFn", pkg: "", typ: $funcType([LogFunction], [], false)}, {prop: "Logln", name: "Logln", pkg: "", typ: $funcType([Level, sliceType$2], [], true)}, {prop: "Traceln", name: "Traceln", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Debugln", name: "Debugln", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Infoln", name: "Infoln", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Println", name: "Println", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Warnln", name: "Warnln", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Warningln", name: "Warningln", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Errorln", name: "Errorln", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Fatalln", name: "Fatalln", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Panicln", name: "Panicln", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Exit", name: "Exit", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "SetNoLock", name: "SetNoLock", pkg: "", typ: $funcType([], [], false)}, {prop: "level", name: "level", pkg: "github.com/sirupsen/logrus", typ: $funcType([], [Level], false)}, {prop: "SetLevel", name: "SetLevel", pkg: "", typ: $funcType([Level], [], false)}, {prop: "GetLevel", name: "GetLevel", pkg: "", typ: $funcType([], [Level], false)}, {prop: "AddHook", name: "AddHook", pkg: "", typ: $funcType([Hook], [], false)}, {prop: "IsLevelEnabled", name: "IsLevelEnabled", pkg: "", typ: $funcType([Level], [$Bool], false)}, {prop: "SetFormatter", name: "SetFormatter", pkg: "", typ: $funcType([Formatter], [], false)}, {prop: "SetOutput", name: "SetOutput", pkg: "", typ: $funcType([io.Writer], [], false)}, {prop: "SetReportCaller", name: "SetReportCaller", pkg: "", typ: $funcType([$Bool], [], false)}, {prop: "ReplaceHooks", name: "ReplaceHooks", pkg: "", typ: $funcType([LevelHooks], [LevelHooks], false)}, {prop: "SetBufferPool", name: "SetBufferPool", pkg: "", typ: $funcType([BufferPool], [], false)}]; - ptrType$10.methods = [{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}, {prop: "Disable", name: "Disable", pkg: "", typ: $funcType([], [], false)}]; + ptrType$10.methods = [{prop: "init", name: "init", pkg: "github.com/sirupsen/logrus", typ: $funcType([ptrType$6], [], false)}, {prop: "isColored", name: "isColored", pkg: "github.com/sirupsen/logrus", typ: $funcType([], [$Bool], false)}, {prop: "Format", name: "Format", pkg: "", typ: $funcType([ptrType$6], [sliceType$3, $error], false)}, {prop: "printColored", name: "printColored", pkg: "github.com/sirupsen/logrus", typ: $funcType([ptrType$4, ptrType$6, sliceType$4, Fields, $String], [], false)}, {prop: "needsQuoting", name: "needsQuoting", pkg: "github.com/sirupsen/logrus", typ: $funcType([$String], [$Bool], false)}, {prop: "appendKeyValue", name: "appendKeyValue", pkg: "github.com/sirupsen/logrus", typ: $funcType([ptrType$4, $String, $emptyInterface], [], false)}, {prop: "appendValue", name: "appendValue", pkg: "github.com/sirupsen/logrus", typ: $funcType([ptrType$4, $emptyInterface], [], false)}]; + Level.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "MarshalText", name: "MarshalText", pkg: "", typ: $funcType([], [sliceType$3, $error], false)}]; + ptrType$8.methods = [{prop: "UnmarshalText", name: "UnmarshalText", pkg: "", typ: $funcType([sliceType$3], [$error], false)}]; + ptrType$2.methods = [{prop: "Writer", name: "Writer", pkg: "", typ: $funcType([], [ptrType$5], false)}, {prop: "WriterLevel", name: "WriterLevel", pkg: "", typ: $funcType([Level], [ptrType$5], false)}, {prop: "newEntry", name: "newEntry", pkg: "github.com/sirupsen/logrus", typ: $funcType([], [ptrType$6], false)}, {prop: "releaseEntry", name: "releaseEntry", pkg: "github.com/sirupsen/logrus", typ: $funcType([ptrType$6], [], false)}, {prop: "WithField", name: "WithField", pkg: "", typ: $funcType([$String, $emptyInterface], [ptrType$6], false)}, {prop: "WithFields", name: "WithFields", pkg: "", typ: $funcType([Fields], [ptrType$6], false)}, {prop: "WithError", name: "WithError", pkg: "", typ: $funcType([$error], [ptrType$6], false)}, {prop: "WithContext", name: "WithContext", pkg: "", typ: $funcType([context.Context], [ptrType$6], false)}, {prop: "WithTime", name: "WithTime", pkg: "", typ: $funcType([time.Time], [ptrType$6], false)}, {prop: "Logf", name: "Logf", pkg: "", typ: $funcType([Level, $String, sliceType$1], [], true)}, {prop: "Tracef", name: "Tracef", pkg: "", typ: $funcType([$String, sliceType$1], [], true)}, {prop: "Debugf", name: "Debugf", pkg: "", typ: $funcType([$String, sliceType$1], [], true)}, {prop: "Infof", name: "Infof", pkg: "", typ: $funcType([$String, sliceType$1], [], true)}, {prop: "Printf", name: "Printf", pkg: "", typ: $funcType([$String, sliceType$1], [], true)}, {prop: "Warnf", name: "Warnf", pkg: "", typ: $funcType([$String, sliceType$1], [], true)}, {prop: "Warningf", name: "Warningf", pkg: "", typ: $funcType([$String, sliceType$1], [], true)}, {prop: "Errorf", name: "Errorf", pkg: "", typ: $funcType([$String, sliceType$1], [], true)}, {prop: "Fatalf", name: "Fatalf", pkg: "", typ: $funcType([$String, sliceType$1], [], true)}, {prop: "Panicf", name: "Panicf", pkg: "", typ: $funcType([$String, sliceType$1], [], true)}, {prop: "Log", name: "Log", pkg: "", typ: $funcType([Level, sliceType$1], [], true)}, {prop: "LogFn", name: "LogFn", pkg: "", typ: $funcType([Level, LogFunction], [], false)}, {prop: "Trace", name: "Trace", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Debug", name: "Debug", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Info", name: "Info", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Print", name: "Print", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Warn", name: "Warn", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Warning", name: "Warning", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Error", name: "Error", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Fatal", name: "Fatal", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Panic", name: "Panic", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "TraceFn", name: "TraceFn", pkg: "", typ: $funcType([LogFunction], [], false)}, {prop: "DebugFn", name: "DebugFn", pkg: "", typ: $funcType([LogFunction], [], false)}, {prop: "InfoFn", name: "InfoFn", pkg: "", typ: $funcType([LogFunction], [], false)}, {prop: "PrintFn", name: "PrintFn", pkg: "", typ: $funcType([LogFunction], [], false)}, {prop: "WarnFn", name: "WarnFn", pkg: "", typ: $funcType([LogFunction], [], false)}, {prop: "WarningFn", name: "WarningFn", pkg: "", typ: $funcType([LogFunction], [], false)}, {prop: "ErrorFn", name: "ErrorFn", pkg: "", typ: $funcType([LogFunction], [], false)}, {prop: "FatalFn", name: "FatalFn", pkg: "", typ: $funcType([LogFunction], [], false)}, {prop: "PanicFn", name: "PanicFn", pkg: "", typ: $funcType([LogFunction], [], false)}, {prop: "Logln", name: "Logln", pkg: "", typ: $funcType([Level, sliceType$1], [], true)}, {prop: "Traceln", name: "Traceln", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Debugln", name: "Debugln", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Infoln", name: "Infoln", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Println", name: "Println", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Warnln", name: "Warnln", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Warningln", name: "Warningln", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Errorln", name: "Errorln", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Fatalln", name: "Fatalln", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Panicln", name: "Panicln", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Exit", name: "Exit", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "SetNoLock", name: "SetNoLock", pkg: "", typ: $funcType([], [], false)}, {prop: "level", name: "level", pkg: "github.com/sirupsen/logrus", typ: $funcType([], [Level], false)}, {prop: "SetLevel", name: "SetLevel", pkg: "", typ: $funcType([Level], [], false)}, {prop: "GetLevel", name: "GetLevel", pkg: "", typ: $funcType([], [Level], false)}, {prop: "AddHook", name: "AddHook", pkg: "", typ: $funcType([Hook], [], false)}, {prop: "IsLevelEnabled", name: "IsLevelEnabled", pkg: "", typ: $funcType([Level], [$Bool], false)}, {prop: "SetFormatter", name: "SetFormatter", pkg: "", typ: $funcType([Formatter], [], false)}, {prop: "SetOutput", name: "SetOutput", pkg: "", typ: $funcType([io.Writer], [], false)}, {prop: "SetReportCaller", name: "SetReportCaller", pkg: "", typ: $funcType([$Bool], [], false)}, {prop: "ReplaceHooks", name: "ReplaceHooks", pkg: "", typ: $funcType([LevelHooks], [LevelHooks], false)}, {prop: "SetBufferPool", name: "SetBufferPool", pkg: "", typ: $funcType([BufferPool], [], false)}]; + ptrType$11.methods = [{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}, {prop: "Disable", name: "Disable", pkg: "", typ: $funcType([], [], false)}]; FieldMap.methods = [{prop: "resolve", name: "resolve", pkg: "github.com/sirupsen/logrus", typ: $funcType([fieldKey], [$String], false)}]; - LevelHooks.methods = [{prop: "Add", name: "Add", pkg: "", typ: $funcType([Hook], [], false)}, {prop: "Fire", name: "Fire", pkg: "", typ: $funcType([Level, ptrType$5], [$error], false)}]; + LevelHooks.methods = [{prop: "Add", name: "Add", pkg: "", typ: $funcType([Hook], [], false)}, {prop: "Fire", name: "Fire", pkg: "", typ: $funcType([Level, ptrType$6], [$error], false)}]; Entry.methods = [{prop: "HasCaller", name: "HasCaller", pkg: "", typ: $funcType([], [$Bool], false)}]; - ptrType$5.methods = [{prop: "Writer", name: "Writer", pkg: "", typ: $funcType([], [ptrType$4], false)}, {prop: "WriterLevel", name: "WriterLevel", pkg: "", typ: $funcType([Level], [ptrType$4], false)}, {prop: "writerScanner", name: "writerScanner", pkg: "github.com/sirupsen/logrus", typ: $funcType([ptrType$12, funcType$4], [], false)}, {prop: "Dup", name: "Dup", pkg: "", typ: $funcType([], [ptrType$5], false)}, {prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType$1, $error], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String, $error], false)}, {prop: "WithError", name: "WithError", pkg: "", typ: $funcType([$error], [ptrType$5], false)}, {prop: "WithContext", name: "WithContext", pkg: "", typ: $funcType([context.Context], [ptrType$5], false)}, {prop: "WithField", name: "WithField", pkg: "", typ: $funcType([$String, $emptyInterface], [ptrType$5], false)}, {prop: "WithFields", name: "WithFields", pkg: "", typ: $funcType([Fields], [ptrType$5], false)}, {prop: "WithTime", name: "WithTime", pkg: "", typ: $funcType([time.Time], [ptrType$5], false)}, {prop: "log", name: "log", pkg: "github.com/sirupsen/logrus", typ: $funcType([Level, $String], [], false)}, {prop: "getBufferPool", name: "getBufferPool", pkg: "github.com/sirupsen/logrus", typ: $funcType([], [BufferPool], false)}, {prop: "fireHooks", name: "fireHooks", pkg: "github.com/sirupsen/logrus", typ: $funcType([], [], false)}, {prop: "write", name: "write", pkg: "github.com/sirupsen/logrus", typ: $funcType([], [], false)}, {prop: "Log", name: "Log", pkg: "", typ: $funcType([Level, sliceType$2], [], true)}, {prop: "Trace", name: "Trace", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Debug", name: "Debug", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Print", name: "Print", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Info", name: "Info", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Warn", name: "Warn", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Warning", name: "Warning", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Error", name: "Error", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Fatal", name: "Fatal", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Panic", name: "Panic", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Logf", name: "Logf", pkg: "", typ: $funcType([Level, $String, sliceType$2], [], true)}, {prop: "Tracef", name: "Tracef", pkg: "", typ: $funcType([$String, sliceType$2], [], true)}, {prop: "Debugf", name: "Debugf", pkg: "", typ: $funcType([$String, sliceType$2], [], true)}, {prop: "Infof", name: "Infof", pkg: "", typ: $funcType([$String, sliceType$2], [], true)}, {prop: "Printf", name: "Printf", pkg: "", typ: $funcType([$String, sliceType$2], [], true)}, {prop: "Warnf", name: "Warnf", pkg: "", typ: $funcType([$String, sliceType$2], [], true)}, {prop: "Warningf", name: "Warningf", pkg: "", typ: $funcType([$String, sliceType$2], [], true)}, {prop: "Errorf", name: "Errorf", pkg: "", typ: $funcType([$String, sliceType$2], [], true)}, {prop: "Fatalf", name: "Fatalf", pkg: "", typ: $funcType([$String, sliceType$2], [], true)}, {prop: "Panicf", name: "Panicf", pkg: "", typ: $funcType([$String, sliceType$2], [], true)}, {prop: "Logln", name: "Logln", pkg: "", typ: $funcType([Level, sliceType$2], [], true)}, {prop: "Traceln", name: "Traceln", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Debugln", name: "Debugln", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Infoln", name: "Infoln", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Println", name: "Println", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Warnln", name: "Warnln", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Warningln", name: "Warningln", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Errorln", name: "Errorln", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Fatalln", name: "Fatalln", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "Panicln", name: "Panicln", pkg: "", typ: $funcType([sliceType$2], [], true)}, {prop: "sprintlnn", name: "sprintlnn", pkg: "github.com/sirupsen/logrus", typ: $funcType([sliceType$2], [$String], true)}]; - ptrType$13.methods = [{prop: "Put", name: "Put", pkg: "", typ: $funcType([ptrType$3], [], false)}, {prop: "Get", name: "Get", pkg: "", typ: $funcType([], [ptrType$3], false)}]; + ptrType$6.methods = [{prop: "Writer", name: "Writer", pkg: "", typ: $funcType([], [ptrType$5], false)}, {prop: "WriterLevel", name: "WriterLevel", pkg: "", typ: $funcType([Level], [ptrType$5], false)}, {prop: "writerScanner", name: "writerScanner", pkg: "github.com/sirupsen/logrus", typ: $funcType([ptrType$13, funcType$4], [], false)}, {prop: "Dup", name: "Dup", pkg: "", typ: $funcType([], [ptrType$6], false)}, {prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType$3, $error], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String, $error], false)}, {prop: "WithError", name: "WithError", pkg: "", typ: $funcType([$error], [ptrType$6], false)}, {prop: "WithContext", name: "WithContext", pkg: "", typ: $funcType([context.Context], [ptrType$6], false)}, {prop: "WithField", name: "WithField", pkg: "", typ: $funcType([$String, $emptyInterface], [ptrType$6], false)}, {prop: "WithFields", name: "WithFields", pkg: "", typ: $funcType([Fields], [ptrType$6], false)}, {prop: "WithTime", name: "WithTime", pkg: "", typ: $funcType([time.Time], [ptrType$6], false)}, {prop: "log", name: "log", pkg: "github.com/sirupsen/logrus", typ: $funcType([Level, $String], [], false)}, {prop: "getBufferPool", name: "getBufferPool", pkg: "github.com/sirupsen/logrus", typ: $funcType([], [BufferPool], false)}, {prop: "fireHooks", name: "fireHooks", pkg: "github.com/sirupsen/logrus", typ: $funcType([], [], false)}, {prop: "write", name: "write", pkg: "github.com/sirupsen/logrus", typ: $funcType([], [], false)}, {prop: "Log", name: "Log", pkg: "", typ: $funcType([Level, sliceType$1], [], true)}, {prop: "Trace", name: "Trace", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Debug", name: "Debug", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Print", name: "Print", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Info", name: "Info", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Warn", name: "Warn", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Warning", name: "Warning", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Error", name: "Error", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Fatal", name: "Fatal", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Panic", name: "Panic", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Logf", name: "Logf", pkg: "", typ: $funcType([Level, $String, sliceType$1], [], true)}, {prop: "Tracef", name: "Tracef", pkg: "", typ: $funcType([$String, sliceType$1], [], true)}, {prop: "Debugf", name: "Debugf", pkg: "", typ: $funcType([$String, sliceType$1], [], true)}, {prop: "Infof", name: "Infof", pkg: "", typ: $funcType([$String, sliceType$1], [], true)}, {prop: "Printf", name: "Printf", pkg: "", typ: $funcType([$String, sliceType$1], [], true)}, {prop: "Warnf", name: "Warnf", pkg: "", typ: $funcType([$String, sliceType$1], [], true)}, {prop: "Warningf", name: "Warningf", pkg: "", typ: $funcType([$String, sliceType$1], [], true)}, {prop: "Errorf", name: "Errorf", pkg: "", typ: $funcType([$String, sliceType$1], [], true)}, {prop: "Fatalf", name: "Fatalf", pkg: "", typ: $funcType([$String, sliceType$1], [], true)}, {prop: "Panicf", name: "Panicf", pkg: "", typ: $funcType([$String, sliceType$1], [], true)}, {prop: "Logln", name: "Logln", pkg: "", typ: $funcType([Level, sliceType$1], [], true)}, {prop: "Traceln", name: "Traceln", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Debugln", name: "Debugln", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Infoln", name: "Infoln", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Println", name: "Println", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Warnln", name: "Warnln", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Warningln", name: "Warningln", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Errorln", name: "Errorln", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Fatalln", name: "Fatalln", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "Panicln", name: "Panicln", pkg: "", typ: $funcType([sliceType$1], [], true)}, {prop: "sprintlnn", name: "sprintlnn", pkg: "github.com/sirupsen/logrus", typ: $funcType([sliceType$1], [$String], true)}]; + ptrType$14.methods = [{prop: "Put", name: "Put", pkg: "", typ: $funcType([ptrType$4], [], false)}, {prop: "Get", name: "Get", pkg: "", typ: $funcType([], [ptrType$4], false)}]; TextFormatter.init("github.com/sirupsen/logrus", [{prop: "ForceColors", name: "ForceColors", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "DisableColors", name: "DisableColors", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "ForceQuote", name: "ForceQuote", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "DisableQuote", name: "DisableQuote", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "EnvironmentOverrideColors", name: "EnvironmentOverrideColors", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "DisableTimestamp", name: "DisableTimestamp", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "FullTimestamp", name: "FullTimestamp", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "TimestampFormat", name: "TimestampFormat", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "DisableSorting", name: "DisableSorting", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "SortingFunc", name: "SortingFunc", embedded: false, exported: true, typ: funcType$2, tag: ""}, {prop: "DisableLevelTruncation", name: "DisableLevelTruncation", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "PadLevelText", name: "PadLevelText", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "QuoteEmptyFields", name: "QuoteEmptyFields", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "isTerminal", name: "isTerminal", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "FieldMap", name: "FieldMap", embedded: false, exported: true, typ: FieldMap, tag: ""}, {prop: "CallerPrettyfier", name: "CallerPrettyfier", embedded: false, exported: true, typ: funcType$3, tag: ""}, {prop: "terminalInitOnce", name: "terminalInitOnce", embedded: false, exported: false, typ: sync.Once, tag: ""}, {prop: "levelTextMaxLength", name: "levelTextMaxLength", embedded: false, exported: false, typ: $Int, tag: ""}]); Fields.init($String, $emptyInterface); - LogFunction.init([], [sliceType$2], false); + LogFunction.init([], [sliceType$1], false); Logger.init("github.com/sirupsen/logrus", [{prop: "Out", name: "Out", embedded: false, exported: true, typ: io.Writer, tag: ""}, {prop: "Hooks", name: "Hooks", embedded: false, exported: true, typ: LevelHooks, tag: ""}, {prop: "Formatter", name: "Formatter", embedded: false, exported: true, typ: Formatter, tag: ""}, {prop: "ReportCaller", name: "ReportCaller", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Level", name: "Level", embedded: false, exported: true, typ: Level, tag: ""}, {prop: "mu", name: "mu", embedded: false, exported: false, typ: MutexWrap, tag: ""}, {prop: "entryPool", name: "entryPool", embedded: false, exported: false, typ: sync.Pool, tag: ""}, {prop: "ExitFunc", name: "ExitFunc", embedded: false, exported: true, typ: exitFunc, tag: ""}, {prop: "BufferPool", name: "BufferPool", embedded: false, exported: true, typ: BufferPool, tag: ""}]); exitFunc.init([$Int], [], false); MutexWrap.init("github.com/sirupsen/logrus", [{prop: "lock", name: "lock", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "disabled", name: "disabled", embedded: false, exported: false, typ: $Bool, tag: ""}]); FieldMap.init(fieldKey, $String); - Hook.init([{prop: "Fire", name: "Fire", pkg: "", typ: $funcType([ptrType$5], [$error], false)}, {prop: "Levels", name: "Levels", pkg: "", typ: $funcType([], [sliceType], false)}]); + Hook.init([{prop: "Fire", name: "Fire", pkg: "", typ: $funcType([ptrType$6], [$error], false)}, {prop: "Levels", name: "Levels", pkg: "", typ: $funcType([], [sliceType], false)}]); LevelHooks.init(Level, sliceType$5); - Formatter.init([{prop: "Format", name: "Format", pkg: "", typ: $funcType([ptrType$5], [sliceType$1, $error], false)}]); - Entry.init("github.com/sirupsen/logrus", [{prop: "Logger", name: "Logger", embedded: false, exported: true, typ: ptrType$1, tag: ""}, {prop: "Data", name: "Data", embedded: false, exported: true, typ: Fields, tag: ""}, {prop: "Time", name: "Time", embedded: false, exported: true, typ: time.Time, tag: ""}, {prop: "Level", name: "Level", embedded: false, exported: true, typ: Level, tag: ""}, {prop: "Caller", name: "Caller", embedded: false, exported: true, typ: ptrType$2, tag: ""}, {prop: "Message", name: "Message", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Buffer", name: "Buffer", embedded: false, exported: true, typ: ptrType$3, tag: ""}, {prop: "Context", name: "Context", embedded: false, exported: true, typ: context.Context, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $String, tag: ""}]); - BufferPool.init([{prop: "Get", name: "Get", pkg: "", typ: $funcType([], [ptrType$3], false)}, {prop: "Put", name: "Put", pkg: "", typ: $funcType([ptrType$3], [], false)}]); - defaultPool.init("github.com/sirupsen/logrus", [{prop: "pool", name: "pool", embedded: false, exported: false, typ: ptrType$8, tag: ""}]); + Formatter.init([{prop: "Format", name: "Format", pkg: "", typ: $funcType([ptrType$6], [sliceType$3, $error], false)}]); + Entry.init("github.com/sirupsen/logrus", [{prop: "Logger", name: "Logger", embedded: false, exported: true, typ: ptrType$2, tag: ""}, {prop: "Data", name: "Data", embedded: false, exported: true, typ: Fields, tag: ""}, {prop: "Time", name: "Time", embedded: false, exported: true, typ: time.Time, tag: ""}, {prop: "Level", name: "Level", embedded: false, exported: true, typ: Level, tag: ""}, {prop: "Caller", name: "Caller", embedded: false, exported: true, typ: ptrType$3, tag: ""}, {prop: "Message", name: "Message", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Buffer", name: "Buffer", embedded: false, exported: true, typ: ptrType$4, tag: ""}, {prop: "Context", name: "Context", embedded: false, exported: true, typ: context.Context, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $String, tag: ""}]); + BufferPool.init([{prop: "Get", name: "Get", pkg: "", typ: $funcType([], [ptrType$4], false)}, {prop: "Put", name: "Put", pkg: "", typ: $funcType([ptrType$4], [], false)}]); + defaultPool.init("github.com/sirupsen/logrus", [{prop: "pool", name: "pool", embedded: false, exported: false, typ: ptrType$9, tag: ""}]); }; $init = function() { $pkg.$init = function() {}; @@ -329459,7 +331951,7 @@ $packages["github.com/sirupsen/logrus"] = (function() { $pkg.AllLevels = new sliceType([0, 1, 2, 3, 4, 5, 6]); std = New(); $pkg.ErrorKey = "error"; - handlers = new sliceType$3([]); + handlers = new sliceType$2([]); $r = init(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } init$1(); init$2(); @@ -329681,7 +332173,7 @@ $packages["github.com/gopherjs/gopherjs/internal/sourcemapx"] = (function() { /* */ } return; } var $f = {$blk: Pack, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _ref, err, h, payload, value, $s};return $f; }; $ptrType(Hint).prototype.Unpack = function Unpack() { - var {$24r, $24r$1, $24r$2, $24r$3, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, err, h, v, value, x, x$1, $s, $r, $c} = $restore(this, {}); + var {$24r, $24r$1, $24r$2, $24r$3, _1, _r, _r$1, _r$2, _r$3, _r$4, err, h, v, value, x, x$1, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: v = [v]; h = this; @@ -329719,12 +332211,10 @@ $packages["github.com/gopherjs/gopherjs/internal/sourcemapx"] = (function() { $24r$2 = [$ifaceNil, _r$3]; $s = 16; case 16: return $24r$2; /* } */ case 14: - _r$4 = reflect.ValueOf(value); /* */ $s = 17; case 17: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$5 = $clone(_r$4, reflect.Value).Elem(); /* */ $s = 18; case 18: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$6 = $clone(_r$5, reflect.Value).Interface(); /* */ $s = 19; case 19: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - $24r$3 = [_r$6, $ifaceNil]; - $s = 20; case 20: return $24r$3; - /* */ } return; } var $f = {$blk: Unpack, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, err, h, v, value, x, x$1, $s};return $f; + _r$4 = $clone($clone(reflect.ValueOf(value), reflect.Value).Elem(), reflect.Value).Interface(); /* */ $s = 17; case 17: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r$3 = [_r$4, $ifaceNil]; + $s = 18; case 18: return $24r$3; + /* */ } return; } var $f = {$blk: Unpack, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, _1, _r, _r$1, _r$2, _r$3, _r$4, err, h, v, value, x, x$1, $s};return $f; }; $ptrType(Filter).prototype.EnableMapping = function EnableMapping(jsFileName, goroot, gopath, localMap) { var f, gopath, goroot, jsFileName, localMap; @@ -330361,10 +332851,10 @@ $packages["text/tabwriter"] = (function() { b.endChar = 0; }; $ptrType(Writer).prototype.terminateCell = function terminateCell(htab) { - var b, htab, line, x; + var b, htab, line, x, x$1; b = this; b.cell.htab = htab; - line = (x = b.lines, $indexPtr(x.$array, x.$offset + (b.lines.$length - 1 >> 0), ptrType)); + line = (x = b.lines, x$1 = b.lines.$length - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + x$1, ptrType))); line.$set($append(line.$get(), b.cell)); cell.copy(b.cell, new cell.ptr(0, 0, false)); return line.$get().$length; @@ -330531,7 +333021,7 @@ $packages["text/tabwriter"] = (function() { return $pkg; })(); $packages["go/printer"] = (function() { - var $pkg = {}, $init, fmt, ast, constraint, comment, token, io, math, os, sort, strconv, strings, sync, tabwriter, unicode, utf8, whiteSpace, pmode, commentInfo, printer, trimmer, Mode, Config, CommentedNode, exprListMode, paramMode, sizeCounter, sliceType, sliceType$1, ptrType, sliceType$2, sliceType$3, ptrType$1, ptrType$2, sliceType$4, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, ptrType$11, ptrType$12, ptrType$13, sliceType$5, sliceType$6, ptrType$14, ptrType$15, ptrType$16, sliceType$7, ptrType$17, ptrType$18, ptrType$19, ptrType$20, ptrType$21, ptrType$22, ptrType$23, ptrType$24, ptrType$25, ptrType$26, ptrType$27, ptrType$28, sliceType$8, sliceType$9, ptrType$29, ptrType$30, ptrType$31, ptrType$32, ptrType$33, ptrType$34, ptrType$35, ptrType$36, ptrType$37, ptrType$38, ptrType$39, ptrType$40, ptrType$41, ptrType$42, ptrType$43, ptrType$44, ptrType$45, ptrType$46, ptrType$47, ptrType$48, ptrType$49, ptrType$50, ptrType$51, ptrType$52, ptrType$53, ptrType$54, ptrType$55, ptrType$56, ptrType$57, ptrType$58, sliceType$10, ptrType$59, sliceType$11, ptrType$60, sliceType$12, mapType, ptrType$61, ptrType$62, ptrType$63, aNewline, printerPool, isBlank, commonPrefix, trimRight, stripCommonPrefix, nlimit, mayCombine, getDoc, getLastComment, newPrinter, combinesWithName, isTypeElem, identListSize, walkBinary, cutoff, diffPrec, reduceDepth, isBinary, normalizedNumber, isTypeName, stripParens, stripParensAlways, keepTypeColumn, sanitizeImportPath, declToken, appendLines, isNL, formatDocComment, isDirective, allStars; + var $pkg = {}, $init, fmt, ast, constraint, comment, token, io, math, os, sort, strconv, strings, sync, tabwriter, unicode, utf8, whiteSpace, pmode, commentInfo, printer, trimmer, Mode, Config, CommentedNode, exprListMode, paramMode, sizeCounter, sliceType, sliceType$1, ptrType, sliceType$2, sliceType$3, ptrType$1, ptrType$2, sliceType$4, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, ptrType$11, ptrType$12, ptrType$13, sliceType$5, sliceType$6, ptrType$14, ptrType$15, ptrType$16, ptrType$17, sliceType$7, ptrType$18, ptrType$19, ptrType$20, ptrType$21, ptrType$22, ptrType$23, ptrType$24, ptrType$25, ptrType$26, ptrType$27, ptrType$28, ptrType$29, sliceType$8, sliceType$9, ptrType$30, ptrType$31, ptrType$32, ptrType$33, ptrType$34, ptrType$35, ptrType$36, ptrType$37, ptrType$38, ptrType$39, ptrType$40, ptrType$41, ptrType$42, ptrType$43, ptrType$44, ptrType$45, ptrType$46, ptrType$47, ptrType$48, ptrType$49, ptrType$50, ptrType$51, ptrType$52, ptrType$53, ptrType$54, ptrType$55, ptrType$56, ptrType$57, ptrType$58, ptrType$59, sliceType$10, ptrType$60, sliceType$11, ptrType$61, sliceType$12, mapType, ptrType$62, ptrType$63, aNewline, printerPool, isBlank, commonPrefix, trimRight, stripCommonPrefix, nlimit, mayCombine, getDoc, getLastComment, newPrinter, combinesWithName, isTypeElem, identListSize, walkBinary, cutoff, diffPrec, reduceDepth, isBinary, normalizedNumber, isTypeName, stripParens, stripParensAlways, keepTypeColumn, sanitizeImportPath, declToken, appendLines, isNL, formatDocComment, isDirective, allStars; fmt = $packages["fmt"]; ast = $packages["go/ast"]; constraint = $packages["go/build/constraint"]; @@ -330699,60 +333189,60 @@ $packages["go/printer"] = (function() { sliceType$6 = $sliceType(ast.Decl); ptrType$14 = $ptrType(ast.LabeledStmt); ptrType$15 = $ptrType(printer); - ptrType$16 = $ptrType(tabwriter.Writer); + ptrType$16 = $ptrType(Config); + ptrType$17 = $ptrType(tabwriter.Writer); sliceType$7 = $sliceType(ast.Expr); - ptrType$17 = $ptrType(ast.KeyValueExpr); - ptrType$18 = $ptrType(ast.StarExpr); - ptrType$19 = $ptrType(ast.BinaryExpr); - ptrType$20 = $ptrType(ast.ParenExpr); - ptrType$21 = $ptrType(ast.ArrayType); - ptrType$22 = $ptrType(ast.StructType); - ptrType$23 = $ptrType(ast.FuncType); - ptrType$24 = $ptrType(ast.InterfaceType); - ptrType$25 = $ptrType(ast.MapType); - ptrType$26 = $ptrType(ast.ChanType); - ptrType$27 = $ptrType(ast.UnaryExpr); - ptrType$28 = $ptrType(ast.FieldList); + ptrType$18 = $ptrType(ast.KeyValueExpr); + ptrType$19 = $ptrType(ast.StarExpr); + ptrType$20 = $ptrType(ast.BinaryExpr); + ptrType$21 = $ptrType(ast.ParenExpr); + ptrType$22 = $ptrType(ast.ArrayType); + ptrType$23 = $ptrType(ast.StructType); + ptrType$24 = $ptrType(ast.FuncType); + ptrType$25 = $ptrType(ast.InterfaceType); + ptrType$26 = $ptrType(ast.MapType); + ptrType$27 = $ptrType(ast.ChanType); + ptrType$28 = $ptrType(ast.UnaryExpr); + ptrType$29 = $ptrType(ast.FieldList); sliceType$8 = $sliceType(ptrType$4); sliceType$9 = $sliceType(ptrType$3); - ptrType$29 = $ptrType(ast.BadExpr); - ptrType$30 = $ptrType(ast.FuncLit); - ptrType$31 = $ptrType(ast.SelectorExpr); - ptrType$32 = $ptrType(ast.TypeAssertExpr); - ptrType$33 = $ptrType(ast.IndexExpr); - ptrType$34 = $ptrType(ast.IndexListExpr); - ptrType$35 = $ptrType(ast.SliceExpr); - ptrType$36 = $ptrType(ast.CallExpr); - ptrType$37 = $ptrType(ast.CompositeLit); - ptrType$38 = $ptrType(ast.Ellipsis); - ptrType$39 = $ptrType(ast.EmptyStmt); - ptrType$40 = $ptrType(ast.BadStmt); - ptrType$41 = $ptrType(ast.DeclStmt); - ptrType$42 = $ptrType(ast.ExprStmt); - ptrType$43 = $ptrType(ast.SendStmt); - ptrType$44 = $ptrType(ast.IncDecStmt); - ptrType$45 = $ptrType(ast.AssignStmt); - ptrType$46 = $ptrType(ast.GoStmt); - ptrType$47 = $ptrType(ast.DeferStmt); - ptrType$48 = $ptrType(ast.ReturnStmt); - ptrType$49 = $ptrType(ast.BranchStmt); - ptrType$50 = $ptrType(ast.BlockStmt); - ptrType$51 = $ptrType(ast.IfStmt); - ptrType$52 = $ptrType(ast.CaseClause); - ptrType$53 = $ptrType(ast.SwitchStmt); - ptrType$54 = $ptrType(ast.TypeSwitchStmt); - ptrType$55 = $ptrType(ast.CommClause); - ptrType$56 = $ptrType(ast.SelectStmt); - ptrType$57 = $ptrType(ast.ForStmt); - ptrType$58 = $ptrType(ast.RangeStmt); + ptrType$30 = $ptrType(ast.BadExpr); + ptrType$31 = $ptrType(ast.FuncLit); + ptrType$32 = $ptrType(ast.SelectorExpr); + ptrType$33 = $ptrType(ast.TypeAssertExpr); + ptrType$34 = $ptrType(ast.IndexExpr); + ptrType$35 = $ptrType(ast.IndexListExpr); + ptrType$36 = $ptrType(ast.SliceExpr); + ptrType$37 = $ptrType(ast.CallExpr); + ptrType$38 = $ptrType(ast.CompositeLit); + ptrType$39 = $ptrType(ast.Ellipsis); + ptrType$40 = $ptrType(ast.EmptyStmt); + ptrType$41 = $ptrType(ast.BadStmt); + ptrType$42 = $ptrType(ast.DeclStmt); + ptrType$43 = $ptrType(ast.ExprStmt); + ptrType$44 = $ptrType(ast.SendStmt); + ptrType$45 = $ptrType(ast.IncDecStmt); + ptrType$46 = $ptrType(ast.AssignStmt); + ptrType$47 = $ptrType(ast.GoStmt); + ptrType$48 = $ptrType(ast.DeferStmt); + ptrType$49 = $ptrType(ast.ReturnStmt); + ptrType$50 = $ptrType(ast.BranchStmt); + ptrType$51 = $ptrType(ast.BlockStmt); + ptrType$52 = $ptrType(ast.IfStmt); + ptrType$53 = $ptrType(ast.CaseClause); + ptrType$54 = $ptrType(ast.SwitchStmt); + ptrType$55 = $ptrType(ast.TypeSwitchStmt); + ptrType$56 = $ptrType(ast.CommClause); + ptrType$57 = $ptrType(ast.SelectStmt); + ptrType$58 = $ptrType(ast.ForStmt); + ptrType$59 = $ptrType(ast.RangeStmt); sliceType$10 = $sliceType($Bool); - ptrType$59 = $ptrType(ast.BadDecl); + ptrType$60 = $ptrType(ast.BadDecl); sliceType$11 = $sliceType($String); - ptrType$60 = $ptrType(strings.Builder); + ptrType$61 = $ptrType(strings.Builder); sliceType$12 = $sliceType(ptrType$6); mapType = $mapType(ast.Node, $Int); - ptrType$61 = $ptrType(trimmer); - ptrType$62 = $ptrType(Config); + ptrType$62 = $ptrType(trimmer); ptrType$63 = $ptrType(sizeCounter); $ptrType(printer).prototype.internalError = function internalError(msg) { var {_r, _r$1, _r$2, msg, p, $s, $r, $c} = $restore(this, {msg}); @@ -332034,7 +334524,7 @@ $packages["go/printer"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: _r = printerPool.Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } p = $assertType(_r, ptrType$15); - printer.copy(p, new printer.ptr($clone(cfg, Config), fset, $subslice(p.output, 0, 0), 0, 0, 0, false, false, 0, 0, $subslice(p.wsbuf, 0, 0), sliceType$3.nil, sliceType$3.nil, $clone(new token.Position.ptr("", 0, 1, 1), token.Position), $clone(new token.Position.ptr("", 0, 1, 1), token.Position), new token.Position.ptr("", 0, 0, 0), ptrType$1.nil, $ifaceNil, sliceType$4.nil, false, new commentInfo.ptr(0, ptrType$2.nil, 0, false), nodeSizes, -1, 0)); + printer.copy((p === ptrType$15.nil && $throwNilPointerError(), p), new printer.ptr($clone((cfg === ptrType$16.nil && $throwNilPointerError(), cfg), Config), fset, $subslice(p.output, 0, 0), 0, 0, 0, false, false, 0, 0, $subslice(p.wsbuf, 0, 0), sliceType$3.nil, sliceType$3.nil, $clone(new token.Position.ptr("", 0, 1, 1), token.Position), $clone(new token.Position.ptr("", 0, 1, 1), token.Position), new token.Position.ptr("", 0, 0, 0), ptrType$1.nil, $ifaceNil, sliceType$4.nil, false, new commentInfo.ptr(0, ptrType$2.nil, 0, false), nodeSizes, -1, 0)); $s = -1; return p; /* */ } return; } var $f = {$blk: newPrinter$1, $c: true, $r, _r, cfg, fset, nodeSizes, p, $s};return $f; }; @@ -332083,11 +334573,11 @@ $packages["go/printer"] = (function() { if (!($interfaceIsEqual(err, $ifaceNil))) { $s = -1; return err; } - _tuple$1 = $assertType(output, ptrType$16, true); + _tuple$1 = $assertType(output, ptrType$17, true); tw = _tuple$1[0]; - /* */ if (!(tw === ptrType$16.nil)) { $s = 6; continue; } + /* */ if (!(tw === ptrType$17.nil)) { $s = 6; continue; } /* */ $s = 7; continue; - /* if (!(tw === ptrType$16.nil)) { */ case 6: + /* if (!(tw === ptrType$17.nil)) { */ case 6: _r$4 = tw.Flush(); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } err = _r$4; /* } */ case 7: @@ -332280,7 +334770,7 @@ $packages["go/printer"] = (function() { prevSize = size; _r$12 = p.nodeSize(x$2, 1000000); /* */ $s = 40; case 40: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } size = _r$12; - _tuple = $assertType(x$2, ptrType$17, true); + _tuple = $assertType(x$2, ptrType$18, true); pair = _tuple[0]; isPair = _tuple[1]; /* */ if (size <= 1000000 && prev$1.IsValid() && next$1.IsValid()) { $s = 41; continue; } @@ -332485,13 +334975,13 @@ $packages["go/printer"] = (function() { combinesWithName = function combinesWithName$1(x) { var _ref, x, x$1, x$2, x$3; _ref = x; - if ($assertType(_ref, ptrType$18, true)[1]) { + if ($assertType(_ref, ptrType$19, true)[1]) { x$1 = _ref.$val; return !isTypeElem(x$1.X); - } else if ($assertType(_ref, ptrType$19, true)[1]) { + } else if ($assertType(_ref, ptrType$20, true)[1]) { x$2 = _ref.$val; return combinesWithName(x$2.X) && !isTypeElem(x$2.Y); - } else if ($assertType(_ref, ptrType$20, true)[1]) { + } else if ($assertType(_ref, ptrType$21, true)[1]) { x$3 = _ref.$val; $panic(new $String("unexpected parenthesized expression")); } @@ -332500,16 +334990,16 @@ $packages["go/printer"] = (function() { isTypeElem = function isTypeElem$1(x) { var _ref, x, x$1, x$2, x$3, x$4; _ref = x; - if ($assertType(_ref, ptrType$21, true)[1] || $assertType(_ref, ptrType$22, true)[1] || $assertType(_ref, ptrType$23, true)[1] || $assertType(_ref, ptrType$24, true)[1] || $assertType(_ref, ptrType$25, true)[1] || $assertType(_ref, ptrType$26, true)[1]) { + if ($assertType(_ref, ptrType$22, true)[1] || $assertType(_ref, ptrType$23, true)[1] || $assertType(_ref, ptrType$24, true)[1] || $assertType(_ref, ptrType$25, true)[1] || $assertType(_ref, ptrType$26, true)[1] || $assertType(_ref, ptrType$27, true)[1]) { x$1 = _ref; return true; - } else if ($assertType(_ref, ptrType$27, true)[1]) { + } else if ($assertType(_ref, ptrType$28, true)[1]) { x$2 = _ref.$val; return x$2.Op === 88; - } else if ($assertType(_ref, ptrType$19, true)[1]) { + } else if ($assertType(_ref, ptrType$20, true)[1]) { x$3 = _ref.$val; return isTypeElem(x$3.X) || isTypeElem(x$3.Y); - } else if ($assertType(_ref, ptrType$20, true)[1]) { + } else if ($assertType(_ref, ptrType$21, true)[1]) { x$4 = _ref.$val; return isTypeElem(x$4.X); } @@ -332519,14 +335009,14 @@ $packages["go/printer"] = (function() { var {n, p, res, sig, x, x$1, $s, $r, $c} = $restore(this, {sig}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; - /* */ if (!(sig.TypeParams === ptrType$28.nil)) { $s = 1; continue; } + /* */ if (!(sig.TypeParams === ptrType$29.nil)) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (!(sig.TypeParams === ptrType$28.nil)) { */ case 1: + /* if (!(sig.TypeParams === ptrType$29.nil)) { */ case 1: $r = p.parameters(sig.TypeParams, 1); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 2: - /* */ if (!(sig.Params === ptrType$28.nil)) { $s = 4; continue; } + /* */ if (!(sig.Params === ptrType$29.nil)) { $s = 4; continue; } /* */ $s = 5; continue; - /* if (!(sig.Params === ptrType$28.nil)) { */ case 4: + /* if (!(sig.Params === ptrType$29.nil)) { */ case 4: $r = p.parameters(sig.Params, 0); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 6; continue; /* } else { */ case 5: @@ -332664,7 +335154,7 @@ $packages["go/printer"] = (function() { /* if (f.Names.$length > 0) { */ case 32: name = (x$1 = f.Names, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])); $r = p.expr(name); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.signature($assertType(f.Type, ptrType$23)); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.signature($assertType(f.Type, ptrType$24)); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 34; continue; /* } else { */ case 33: $r = p.expr(f.Type); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } @@ -332792,7 +335282,7 @@ $packages["go/printer"] = (function() { /* */ $s = 95; continue; /* if (!(name$1 === ptrType$4.nil)) { */ case 94: $r = p.expr(name$1); /* */ $s = 97; case 97: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.signature($assertType(f$2.Type, ptrType$23)); /* */ $s = 98; case 98: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.signature($assertType(f$2.Type, ptrType$24)); /* */ $s = 98; case 98: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } prev = ptrType$4.nil; $s = 96; continue; /* } else { */ case 95: @@ -332835,7 +335325,7 @@ $packages["go/printer"] = (function() { has5 = true; } _ref = e.X; - switch (0) { default: if ($assertType(_ref, ptrType$19, true)[1]) { + switch (0) { default: if ($assertType(_ref, ptrType$20, true)[1]) { l = _ref.$val; if (new token.Token(l.Op).Precedence() < new token.Token(e.Op).Precedence()) { break; @@ -332851,7 +335341,7 @@ $packages["go/printer"] = (function() { } } } _ref$1 = e.Y; - switch (0) { default: if ($assertType(_ref$1, ptrType$19, true)[1]) { + switch (0) { default: if ($assertType(_ref$1, ptrType$20, true)[1]) { r = _ref$1.$val; if (new token.Token(r.Op).Precedence() <= new token.Token(e.Op).Precedence()) { break; @@ -332865,12 +335355,12 @@ $packages["go/printer"] = (function() { if (maxProblem < mp$1) { maxProblem = mp$1; } - } else if ($assertType(_ref$1, ptrType$18, true)[1]) { + } else if ($assertType(_ref$1, ptrType$19, true)[1]) { r$1 = _ref$1.$val; if (e.Op === 15) { maxProblem = 5; } - } else if ($assertType(_ref$1, ptrType$27, true)[1]) { + } else if ($assertType(_ref$1, ptrType$28, true)[1]) { r$2 = _ref$1.$val; _2 = new token.Token(e.Op).String() + new token.Token(r$2.Op).String(); if (_2 === ("/*") || _2 === ("&&") || _2 === ("&^")) { @@ -332905,7 +335395,7 @@ $packages["go/printer"] = (function() { }; diffPrec = function diffPrec$1(expr, prec) { var _tuple, expr, ok, prec, x; - _tuple = $assertType(expr, ptrType$19, true); + _tuple = $assertType(expr, ptrType$20, true); x = _tuple[0]; ok = _tuple[1]; if (!ok || !((prec === new token.Token(x.Op).Precedence()))) { @@ -332975,7 +335465,7 @@ $packages["go/printer"] = (function() { }; isBinary = function isBinary$1(expr) { var _tuple, expr, ok; - _tuple = $assertType(expr, ptrType$19, true); + _tuple = $assertType(expr, ptrType$20, true); ok = _tuple[1]; return ok; }; @@ -332986,31 +335476,31 @@ $packages["go/printer"] = (function() { _r = expr.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $r = p.setPos(_r); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _ref = expr; - /* */ if ($assertType(_ref, ptrType$29, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$30, true)[1]) { $s = 3; continue; } /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$19, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$17, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType$18, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref, ptrType$20, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$18, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$19, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 8; continue; } /* */ if ($assertType(_ref, ptrType$5, true)[1]) { $s = 9; continue; } - /* */ if ($assertType(_ref, ptrType$30, true)[1]) { $s = 10; continue; } - /* */ if ($assertType(_ref, ptrType$20, true)[1]) { $s = 11; continue; } - /* */ if ($assertType(_ref, ptrType$31, true)[1]) { $s = 12; continue; } - /* */ if ($assertType(_ref, ptrType$32, true)[1]) { $s = 13; continue; } - /* */ if ($assertType(_ref, ptrType$33, true)[1]) { $s = 14; continue; } - /* */ if ($assertType(_ref, ptrType$34, true)[1]) { $s = 15; continue; } - /* */ if ($assertType(_ref, ptrType$35, true)[1]) { $s = 16; continue; } - /* */ if ($assertType(_ref, ptrType$36, true)[1]) { $s = 17; continue; } - /* */ if ($assertType(_ref, ptrType$37, true)[1]) { $s = 18; continue; } - /* */ if ($assertType(_ref, ptrType$38, true)[1]) { $s = 19; continue; } - /* */ if ($assertType(_ref, ptrType$21, true)[1]) { $s = 20; continue; } - /* */ if ($assertType(_ref, ptrType$22, true)[1]) { $s = 21; continue; } - /* */ if ($assertType(_ref, ptrType$23, true)[1]) { $s = 22; continue; } - /* */ if ($assertType(_ref, ptrType$24, true)[1]) { $s = 23; continue; } - /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 24; continue; } - /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 25; continue; } + /* */ if ($assertType(_ref, ptrType$31, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref, ptrType$21, true)[1]) { $s = 11; continue; } + /* */ if ($assertType(_ref, ptrType$32, true)[1]) { $s = 12; continue; } + /* */ if ($assertType(_ref, ptrType$33, true)[1]) { $s = 13; continue; } + /* */ if ($assertType(_ref, ptrType$34, true)[1]) { $s = 14; continue; } + /* */ if ($assertType(_ref, ptrType$35, true)[1]) { $s = 15; continue; } + /* */ if ($assertType(_ref, ptrType$36, true)[1]) { $s = 16; continue; } + /* */ if ($assertType(_ref, ptrType$37, true)[1]) { $s = 17; continue; } + /* */ if ($assertType(_ref, ptrType$38, true)[1]) { $s = 18; continue; } + /* */ if ($assertType(_ref, ptrType$39, true)[1]) { $s = 19; continue; } + /* */ if ($assertType(_ref, ptrType$22, true)[1]) { $s = 20; continue; } + /* */ if ($assertType(_ref, ptrType$23, true)[1]) { $s = 21; continue; } + /* */ if ($assertType(_ref, ptrType$24, true)[1]) { $s = 22; continue; } + /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 23; continue; } + /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 24; continue; } + /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 25; continue; } /* */ $s = 26; continue; - /* if ($assertType(_ref, ptrType$29, true)[1]) { */ case 3: + /* if ($assertType(_ref, ptrType$30, true)[1]) { */ case 3: x = _ref.$val; $r = p.print(new sliceType$1([new $String("BadExpr")])); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 27; continue; @@ -333018,7 +335508,7 @@ $packages["go/printer"] = (function() { x$1 = _ref.$val; $r = p.print(new sliceType$1([x$1])); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$19, true)[1]) { */ case 5: + /* } else if ($assertType(_ref, ptrType$20, true)[1]) { */ case 5: x$2 = _ref.$val; /* */ if (depth < 1) { $s = 30; continue; } /* */ $s = 31; continue; @@ -333028,14 +335518,14 @@ $packages["go/printer"] = (function() { /* } */ case 31: $r = p.binaryExpr(x$2, prec1, cutoff(x$2, depth), depth); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$17, true)[1]) { */ case 6: + /* } else if ($assertType(_ref, ptrType$18, true)[1]) { */ case 6: x$3 = _ref.$val; $r = p.expr(x$3.Key); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = p.setPos(x$3.Colon); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = p.print(new sliceType$1([new token.Token(58), new whiteSpace(32)])); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = p.expr(x$3.Value); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$18, true)[1]) { */ case 7: + /* } else if ($assertType(_ref, ptrType$19, true)[1]) { */ case 7: x$4 = _ref.$val; /* */ if (6 < prec1) { $s = 38; continue; } /* */ $s = 39; continue; @@ -333050,7 +335540,7 @@ $packages["go/printer"] = (function() { $r = p.expr(x$4.X); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 40: $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 8: + /* } else if ($assertType(_ref, ptrType$28, true)[1]) { */ case 8: x$5 = _ref.$val; /* */ if (6 < prec1) { $s = 47; continue; } /* */ $s = 48; continue; @@ -333076,7 +335566,7 @@ $packages["go/printer"] = (function() { } $r = p.print(new sliceType$1([x$6])); /* */ $s = 58; case 58: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$30, true)[1]) { */ case 10: + /* } else if ($assertType(_ref, ptrType$31, true)[1]) { */ case 10: x$7 = _ref.$val; _r$1 = x$7.Type.Pos(); /* */ $s = 59; case 59: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $r = p.setPos(_r$1); /* */ $s = 60; case 60: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } @@ -333087,9 +335577,9 @@ $packages["go/printer"] = (function() { _r$3 = p.distanceFrom(_r$2, startCol); /* */ $s = 64; case 64: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } $r = p.funcBody(_r$3, 32, x$7.Body); /* */ $s = 65; case 65: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$20, true)[1]) { */ case 11: + /* } else if ($assertType(_ref, ptrType$21, true)[1]) { */ case 11: x$8 = _ref.$val; - _tuple = $assertType(x$8.X, ptrType$20, true); + _tuple = $assertType(x$8.X, ptrType$21, true); hasParens = _tuple[1]; /* */ if (hasParens) { $s = 66; continue; } /* */ $s = 67; continue; @@ -333103,12 +335593,12 @@ $packages["go/printer"] = (function() { $r = p.print(new sliceType$1([new token.Token(54)])); /* */ $s = 73; case 73: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 68: $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$31, true)[1]) { */ case 12: + /* } else if ($assertType(_ref, ptrType$32, true)[1]) { */ case 12: x$9 = _ref.$val; _r$4 = p.selectorExpr(x$9, depth, false); /* */ $s = 74; case 74: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _r$4; $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$32, true)[1]) { */ case 13: + /* } else if ($assertType(_ref, ptrType$33, true)[1]) { */ case 13: x$10 = _ref.$val; $r = p.expr1(x$10.X, 7, depth); /* */ $s = 75; case 75: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = p.print(new sliceType$1([new token.Token(53)])); /* */ $s = 76; case 76: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } @@ -333125,7 +335615,7 @@ $packages["go/printer"] = (function() { $r = p.setPos(x$10.Rparen); /* */ $s = 84; case 84: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = p.print(new sliceType$1([new token.Token(54)])); /* */ $s = 85; case 85: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$33, true)[1]) { */ case 14: + /* } else if ($assertType(_ref, ptrType$34, true)[1]) { */ case 14: x$11 = _ref.$val; $r = p.expr1(x$11.X, 7, 1); /* */ $s = 86; case 86: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = p.setPos(x$11.Lbrack); /* */ $s = 87; case 87: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } @@ -333134,7 +335624,7 @@ $packages["go/printer"] = (function() { $r = p.setPos(x$11.Rbrack); /* */ $s = 90; case 90: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = p.print(new sliceType$1([new token.Token(55)])); /* */ $s = 91; case 91: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$34, true)[1]) { */ case 15: + /* } else if ($assertType(_ref, ptrType$35, true)[1]) { */ case 15: x$12 = _ref.$val; $r = p.expr1(x$12.X, 7, 1); /* */ $s = 92; case 92: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = p.setPos(x$12.Lbrack); /* */ $s = 93; case 93: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } @@ -333143,7 +335633,7 @@ $packages["go/printer"] = (function() { $r = p.setPos(x$12.Rbrack); /* */ $s = 96; case 96: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = p.print(new sliceType$1([new token.Token(55)])); /* */ $s = 97; case 97: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$35, true)[1]) { */ case 16: + /* } else if ($assertType(_ref, ptrType$36, true)[1]) { */ case 16: x$13 = _ref.$val; $r = p.expr1(x$13.X, 7, 1); /* */ $s = 98; case 98: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = p.setPos(x$13.Lbrack); /* */ $s = 99; case 99: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } @@ -333205,13 +335695,13 @@ $packages["go/printer"] = (function() { $r = p.setPos(x$13.Rbrack); /* */ $s = 115; case 115: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = p.print(new sliceType$1([new token.Token(55)])); /* */ $s = 116; case 116: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$36, true)[1]) { */ case 17: + /* } else if ($assertType(_ref, ptrType$37, true)[1]) { */ case 17: x$14 = _ref.$val; if (x$14.Args.$length > 1) { depth = depth + (1) >> 0; } wasIndented = false; - _tuple$1 = $assertType(x$14.Fun, ptrType$23, true); + _tuple$1 = $assertType(x$14.Fun, ptrType$24, true); ok = _tuple$1[1]; /* */ if (ok) { $s = 117; continue; } /* */ $s = 118; continue; @@ -333254,7 +335744,7 @@ $packages["go/printer"] = (function() { $r = p.print(new sliceType$1([new whiteSpace(60)])); /* */ $s = 143; case 143: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 142: $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$37, true)[1]) { */ case 18: + /* } else if ($assertType(_ref, ptrType$38, true)[1]) { */ case 18: x$15 = _ref.$val; /* */ if (!($interfaceIsEqual(x$15.Type, $ifaceNil))) { $s = 144; continue; } /* */ $s = 145; continue; @@ -333274,7 +335764,7 @@ $packages["go/printer"] = (function() { $r = p.print(new sliceType$1([new token.Token(56), new pmode(mode)])); /* */ $s = 152; case 152: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } p.level = p.level - (1) >> 0; $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$38, true)[1]) { */ case 19: + /* } else if ($assertType(_ref, ptrType$39, true)[1]) { */ case 19: x$16 = _ref.$val; $r = p.print(new sliceType$1([new token.Token(48)])); /* */ $s = 153; case 153: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* */ if (!($interfaceIsEqual(x$16.Elt, $ifaceNil))) { $s = 154; continue; } @@ -333283,7 +335773,7 @@ $packages["go/printer"] = (function() { $r = p.expr(x$16.Elt); /* */ $s = 156; case 156: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 155: $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$21, true)[1]) { */ case 20: + /* } else if ($assertType(_ref, ptrType$22, true)[1]) { */ case 20: x$17 = _ref.$val; $r = p.print(new sliceType$1([new token.Token(50)])); /* */ $s = 157; case 157: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* */ if (!($interfaceIsEqual(x$17.Len, $ifaceNil))) { $s = 158; continue; } @@ -333294,29 +335784,29 @@ $packages["go/printer"] = (function() { $r = p.print(new sliceType$1([new token.Token(55)])); /* */ $s = 161; case 161: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = p.expr(x$17.Elt); /* */ $s = 162; case 162: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$22, true)[1]) { */ case 21: + /* } else if ($assertType(_ref, ptrType$23, true)[1]) { */ case 21: x$18 = _ref.$val; $r = p.print(new sliceType$1([new token.Token(82)])); /* */ $s = 163; case 163: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = p.fieldList(x$18.Fields, true, x$18.Incomplete); /* */ $s = 164; case 164: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$23, true)[1]) { */ case 22: + /* } else if ($assertType(_ref, ptrType$24, true)[1]) { */ case 22: x$19 = _ref.$val; $r = p.print(new sliceType$1([new token.Token(71)])); /* */ $s = 165; case 165: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = p.signature(x$19); /* */ $s = 166; case 166: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$24, true)[1]) { */ case 23: + /* } else if ($assertType(_ref, ptrType$25, true)[1]) { */ case 23: x$20 = _ref.$val; $r = p.print(new sliceType$1([new token.Token(76)])); /* */ $s = 167; case 167: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = p.fieldList(x$20.Methods, false, x$20.Incomplete); /* */ $s = 168; case 168: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$25, true)[1]) { */ case 24: + /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 24: x$21 = _ref.$val; $r = p.print(new sliceType$1([new token.Token(77), new token.Token(50)])); /* */ $s = 169; case 169: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = p.expr(x$21.Key); /* */ $s = 170; case 170: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = p.print(new sliceType$1([new token.Token(55)])); /* */ $s = 171; case 171: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = p.expr(x$21.Value); /* */ $s = 172; case 172: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 25: + /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 25: x$22 = _ref.$val; _1 = x$22.Dir; /* */ if (_1 === (3)) { $s = 174; continue; } @@ -333396,7 +335886,7 @@ $packages["go/printer"] = (function() { var {$24r, _r, _tuple, depth, expr, ok, p, prec1, x, $s, $r, $c} = $restore(this, {expr, prec1, depth}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; - _tuple = $assertType(expr, ptrType$31, true); + _tuple = $assertType(expr, ptrType$32, true); x = _tuple[0]; ok = _tuple[1]; /* */ if (ok) { $s = 1; continue; } @@ -333469,7 +335959,7 @@ $packages["go/printer"] = (function() { /* while (true) { */ case 4: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 5; continue; } s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _tuple = $assertType(s, ptrType$39, true); + _tuple = $assertType(s, ptrType$40, true); isEmpty = _tuple[1]; /* */ if (!isEmpty) { $s = 6; continue; } /* */ $s = 7; continue; @@ -333528,7 +336018,7 @@ $packages["go/printer"] = (function() { if ($assertType(_ref, ptrType$4, true)[1]) { t = _ref.$val; return true; - } else if ($assertType(_ref, ptrType$31, true)[1]) { + } else if ($assertType(_ref, ptrType$32, true)[1]) { t$1 = _ref.$val; return isTypeName(t$1.X); } @@ -333538,7 +336028,7 @@ $packages["go/printer"] = (function() { var {$24r, _r, _tuple, px, strip, x, $s, $r, $c} = $restore(this, {x}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: strip = [strip]; - _tuple = $assertType(x, ptrType$20, true); + _tuple = $assertType(x, ptrType$21, true); px = _tuple[0]; strip[0] = _tuple[1]; /* */ if (strip[0]) { $s = 1; continue; } @@ -333547,10 +336037,10 @@ $packages["go/printer"] = (function() { $r = ast.Inspect(px.X, (function(strip) { return function stripParens·func1(node) { var _ref, node, x$1, x$2; _ref = node; - if ($assertType(_ref, ptrType$20, true)[1]) { + if ($assertType(_ref, ptrType$21, true)[1]) { x$1 = _ref.$val; return false; - } else if ($assertType(_ref, ptrType$37, true)[1]) { + } else if ($assertType(_ref, ptrType$38, true)[1]) { x$2 = _ref.$val; if (isTypeName(x$2.Type)) { strip[0] = false; @@ -333572,7 +336062,7 @@ $packages["go/printer"] = (function() { }; stripParensAlways = function stripParensAlways$1(x) { var _tuple, ok, x, x$1; - _tuple = $assertType(x, ptrType$20, true); + _tuple = $assertType(x, ptrType$21, true); x$1 = _tuple[0]; ok = _tuple[1]; if (ok) { @@ -333684,37 +336174,37 @@ $packages["go/printer"] = (function() { _r = stmt$1.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $r = p.setPos(_r); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _ref = stmt$1; - /* */ if ($assertType(_ref, ptrType$40, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$41, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$39, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$41, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$42, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$40, true)[1]) { $s = 5; continue; } /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType$42, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref, ptrType$43, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref, ptrType$44, true)[1]) { $s = 9; continue; } - /* */ if ($assertType(_ref, ptrType$45, true)[1]) { $s = 10; continue; } - /* */ if ($assertType(_ref, ptrType$46, true)[1]) { $s = 11; continue; } - /* */ if ($assertType(_ref, ptrType$47, true)[1]) { $s = 12; continue; } - /* */ if ($assertType(_ref, ptrType$48, true)[1]) { $s = 13; continue; } - /* */ if ($assertType(_ref, ptrType$49, true)[1]) { $s = 14; continue; } - /* */ if ($assertType(_ref, ptrType$50, true)[1]) { $s = 15; continue; } - /* */ if ($assertType(_ref, ptrType$51, true)[1]) { $s = 16; continue; } - /* */ if ($assertType(_ref, ptrType$52, true)[1]) { $s = 17; continue; } - /* */ if ($assertType(_ref, ptrType$53, true)[1]) { $s = 18; continue; } - /* */ if ($assertType(_ref, ptrType$54, true)[1]) { $s = 19; continue; } - /* */ if ($assertType(_ref, ptrType$55, true)[1]) { $s = 20; continue; } - /* */ if ($assertType(_ref, ptrType$56, true)[1]) { $s = 21; continue; } - /* */ if ($assertType(_ref, ptrType$57, true)[1]) { $s = 22; continue; } - /* */ if ($assertType(_ref, ptrType$58, true)[1]) { $s = 23; continue; } + /* */ if ($assertType(_ref, ptrType$43, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref, ptrType$44, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref, ptrType$45, true)[1]) { $s = 9; continue; } + /* */ if ($assertType(_ref, ptrType$46, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref, ptrType$47, true)[1]) { $s = 11; continue; } + /* */ if ($assertType(_ref, ptrType$48, true)[1]) { $s = 12; continue; } + /* */ if ($assertType(_ref, ptrType$49, true)[1]) { $s = 13; continue; } + /* */ if ($assertType(_ref, ptrType$50, true)[1]) { $s = 14; continue; } + /* */ if ($assertType(_ref, ptrType$51, true)[1]) { $s = 15; continue; } + /* */ if ($assertType(_ref, ptrType$52, true)[1]) { $s = 16; continue; } + /* */ if ($assertType(_ref, ptrType$53, true)[1]) { $s = 17; continue; } + /* */ if ($assertType(_ref, ptrType$54, true)[1]) { $s = 18; continue; } + /* */ if ($assertType(_ref, ptrType$55, true)[1]) { $s = 19; continue; } + /* */ if ($assertType(_ref, ptrType$56, true)[1]) { $s = 20; continue; } + /* */ if ($assertType(_ref, ptrType$57, true)[1]) { $s = 21; continue; } + /* */ if ($assertType(_ref, ptrType$58, true)[1]) { $s = 22; continue; } + /* */ if ($assertType(_ref, ptrType$59, true)[1]) { $s = 23; continue; } /* */ $s = 24; continue; - /* switch (0) { default: if ($assertType(_ref, ptrType$40, true)[1]) { */ case 3: + /* switch (0) { default: if ($assertType(_ref, ptrType$41, true)[1]) { */ case 3: s = _ref.$val; $r = p.print(new sliceType$1([new $String("BadStmt")])); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 25; continue; - /* } else if ($assertType(_ref, ptrType$41, true)[1]) { */ case 4: + /* } else if ($assertType(_ref, ptrType$42, true)[1]) { */ case 4: s$1 = _ref.$val; $r = p.decl(s$1.Decl); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 25; continue; - /* } else if ($assertType(_ref, ptrType$39, true)[1]) { */ case 5: + /* } else if ($assertType(_ref, ptrType$40, true)[1]) { */ case 5: s$2 = _ref.$val; $s = 25; continue; /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 6: @@ -333723,7 +336213,7 @@ $packages["go/printer"] = (function() { $r = p.expr(s$3.Label); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = p.setPos(s$3.Colon); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = p.print(new sliceType$1([new token.Token(58), new whiteSpace(62)])); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _tuple = $assertType(s$3.Stmt, ptrType$39, true); + _tuple = $assertType(s$3.Stmt, ptrType$40, true); e = _tuple[0]; isEmpty = _tuple[1]; /* */ if (isEmpty) { $s = 32; continue; } @@ -333746,11 +336236,11 @@ $packages["go/printer"] = (function() { /* } */ case 34: $r = p.stmt(s$3.Stmt, nextIsRBrace); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 25; continue; - /* } else if ($assertType(_ref, ptrType$42, true)[1]) { */ case 7: + /* } else if ($assertType(_ref, ptrType$43, true)[1]) { */ case 7: s$4 = _ref.$val; $r = p.expr0(s$4.X, 1); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 25; continue; - /* } else if ($assertType(_ref, ptrType$43, true)[1]) { */ case 8: + /* } else if ($assertType(_ref, ptrType$44, true)[1]) { */ case 8: s$5 = _ref.$val; $r = p.expr0(s$5.Chan, 1); /* */ $s = 45; case 45: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } @@ -333758,13 +336248,13 @@ $packages["go/printer"] = (function() { $r = p.print(new sliceType$1([new token.Token(36), new whiteSpace(32)])); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = p.expr0(s$5.Value, 1); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 25; continue; - /* } else if ($assertType(_ref, ptrType$44, true)[1]) { */ case 9: + /* } else if ($assertType(_ref, ptrType$45, true)[1]) { */ case 9: s$6 = _ref.$val; $r = p.expr0(s$6.X, 2); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = p.setPos(s$6.TokPos); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = p.print(new sliceType$1([new token.Token(s$6.Tok)])); /* */ $s = 52; case 52: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 25; continue; - /* } else if ($assertType(_ref, ptrType$45, true)[1]) { */ case 10: + /* } else if ($assertType(_ref, ptrType$46, true)[1]) { */ case 10: s$7 = _ref.$val; depth = 1; if (s$7.Lhs.$length > 1 && s$7.Rhs.$length > 1) { @@ -333777,17 +336267,17 @@ $packages["go/printer"] = (function() { $r = p.print(new sliceType$1([new token.Token(s$7.Tok), new whiteSpace(32)])); /* */ $s = 57; case 57: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = p.exprList(s$7.TokPos, s$7.Rhs, depth, 0, 0, false); /* */ $s = 58; case 58: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 25; continue; - /* } else if ($assertType(_ref, ptrType$46, true)[1]) { */ case 11: + /* } else if ($assertType(_ref, ptrType$47, true)[1]) { */ case 11: s$8 = _ref.$val; $r = p.print(new sliceType$1([new token.Token(72), new whiteSpace(32)])); /* */ $s = 59; case 59: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = p.expr(s$8.Call); /* */ $s = 60; case 60: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 25; continue; - /* } else if ($assertType(_ref, ptrType$47, true)[1]) { */ case 12: + /* } else if ($assertType(_ref, ptrType$48, true)[1]) { */ case 12: s$9 = _ref.$val; $r = p.print(new sliceType$1([new token.Token(67), new whiteSpace(32)])); /* */ $s = 61; case 61: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = p.expr(s$9.Call); /* */ $s = 62; case 62: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 25; continue; - /* } else if ($assertType(_ref, ptrType$48, true)[1]) { */ case 13: + /* } else if ($assertType(_ref, ptrType$49, true)[1]) { */ case 13: s$10 = _ref.$val; $r = p.print(new sliceType$1([new token.Token(80)])); /* */ $s = 63; case 63: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* */ if (!(s$10.Results === sliceType$7.nil)) { $s = 64; continue; } @@ -333807,7 +336297,7 @@ $packages["go/printer"] = (function() { /* } */ case 69: /* } */ case 65: $s = 25; continue; - /* } else if ($assertType(_ref, ptrType$49, true)[1]) { */ case 14: + /* } else if ($assertType(_ref, ptrType$50, true)[1]) { */ case 14: s$11 = _ref.$val; $r = p.print(new sliceType$1([new token.Token(s$11.Tok)])); /* */ $s = 75; case 75: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* */ if (!(s$11.Label === ptrType$4.nil)) { $s = 76; continue; } @@ -333817,11 +336307,11 @@ $packages["go/printer"] = (function() { $r = p.expr(s$11.Label); /* */ $s = 79; case 79: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 77: $s = 25; continue; - /* } else if ($assertType(_ref, ptrType$50, true)[1]) { */ case 15: + /* } else if ($assertType(_ref, ptrType$51, true)[1]) { */ case 15: s$12 = _ref.$val; $r = p.block(s$12, 1); /* */ $s = 80; case 80: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 25; continue; - /* } else if ($assertType(_ref, ptrType$51, true)[1]) { */ case 16: + /* } else if ($assertType(_ref, ptrType$52, true)[1]) { */ case 16: s$13 = _ref.$val; $r = p.print(new sliceType$1([new token.Token(74)])); /* */ $s = 81; case 81: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = p.controlClause(false, s$13.Init, s$13.Cond, $ifaceNil); /* */ $s = 82; case 82: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } @@ -333831,9 +336321,9 @@ $packages["go/printer"] = (function() { /* if (!($interfaceIsEqual(s$13.Else, $ifaceNil))) { */ case 84: $r = p.print(new sliceType$1([new whiteSpace(32), new token.Token(68), new whiteSpace(32)])); /* */ $s = 86; case 86: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _ref$1 = s$13.Else; - /* */ if ($assertType(_ref$1, ptrType$50, true)[1] || $assertType(_ref$1, ptrType$51, true)[1]) { $s = 87; continue; } + /* */ if ($assertType(_ref$1, ptrType$51, true)[1] || $assertType(_ref$1, ptrType$52, true)[1]) { $s = 87; continue; } /* */ $s = 88; continue; - /* if ($assertType(_ref$1, ptrType$50, true)[1] || $assertType(_ref$1, ptrType$51, true)[1]) { */ case 87: + /* if ($assertType(_ref$1, ptrType$51, true)[1] || $assertType(_ref$1, ptrType$52, true)[1]) { */ case 87: $r = p.stmt(s$13.Else, nextIsRBrace); /* */ $s = 90; case 90: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 89; continue; /* } else { */ case 88: @@ -333843,7 +336333,7 @@ $packages["go/printer"] = (function() { /* } */ case 89: /* } */ case 85: $s = 25; continue; - /* } else if ($assertType(_ref, ptrType$52, true)[1]) { */ case 17: + /* } else if ($assertType(_ref, ptrType$53, true)[1]) { */ case 17: s$14 = _ref.$val; /* */ if (!(s$14.List === sliceType$7.nil)) { $s = 94; continue; } /* */ $s = 95; continue; @@ -333858,13 +336348,13 @@ $packages["go/printer"] = (function() { $r = p.print(new sliceType$1([new token.Token(58)])); /* */ $s = 101; case 101: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = p.stmtList(s$14.Body, 1, nextIsRBrace); /* */ $s = 102; case 102: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 25; continue; - /* } else if ($assertType(_ref, ptrType$53, true)[1]) { */ case 18: + /* } else if ($assertType(_ref, ptrType$54, true)[1]) { */ case 18: s$15 = _ref.$val; $r = p.print(new sliceType$1([new token.Token(83)])); /* */ $s = 103; case 103: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = p.controlClause(false, s$15.Init, s$15.Tag, $ifaceNil); /* */ $s = 104; case 104: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = p.block(s$15.Body, 0); /* */ $s = 105; case 105: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 25; continue; - /* } else if ($assertType(_ref, ptrType$54, true)[1]) { */ case 19: + /* } else if ($assertType(_ref, ptrType$55, true)[1]) { */ case 19: s$16 = _ref.$val; $r = p.print(new sliceType$1([new token.Token(83)])); /* */ $s = 106; case 106: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* */ if (!($interfaceIsEqual(s$16.Init, $ifaceNil))) { $s = 107; continue; } @@ -333879,7 +336369,7 @@ $packages["go/printer"] = (function() { $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 114; case 114: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = p.block(s$16.Body, 0); /* */ $s = 115; case 115: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 25; continue; - /* } else if ($assertType(_ref, ptrType$55, true)[1]) { */ case 20: + /* } else if ($assertType(_ref, ptrType$56, true)[1]) { */ case 20: s$17 = _ref.$val; /* */ if (!($interfaceIsEqual(s$17.Comm, $ifaceNil))) { $s = 116; continue; } /* */ $s = 117; continue; @@ -333894,7 +336384,7 @@ $packages["go/printer"] = (function() { $r = p.print(new sliceType$1([new token.Token(58)])); /* */ $s = 123; case 123: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = p.stmtList(s$17.Body, 1, nextIsRBrace); /* */ $s = 124; case 124: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 25; continue; - /* } else if ($assertType(_ref, ptrType$56, true)[1]) { */ case 21: + /* } else if ($assertType(_ref, ptrType$57, true)[1]) { */ case 21: s$18 = _ref.$val; $r = p.print(new sliceType$1([new token.Token(81), new whiteSpace(32)])); /* */ $s = 125; case 125: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } body = s$18.Body; @@ -333914,13 +336404,13 @@ $packages["go/printer"] = (function() { $r = p.block(body, 0); /* */ $s = 136; case 136: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 128: $s = 25; continue; - /* } else if ($assertType(_ref, ptrType$57, true)[1]) { */ case 22: + /* } else if ($assertType(_ref, ptrType$58, true)[1]) { */ case 22: s$19 = _ref.$val; $r = p.print(new sliceType$1([new token.Token(70)])); /* */ $s = 137; case 137: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = p.controlClause(true, s$19.Init, s$19.Cond, s$19.Post); /* */ $s = 138; case 138: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = p.block(s$19.Body, 1); /* */ $s = 139; case 139: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 25; continue; - /* } else if ($assertType(_ref, ptrType$58, true)[1]) { */ case 23: + /* } else if ($assertType(_ref, ptrType$59, true)[1]) { */ case 23: s$20 = _ref.$val; $r = p.print(new sliceType$1([new token.Token(70), new whiteSpace(32)])); /* */ $s = 140; case 140: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* */ if (!($interfaceIsEqual(s$20.Key, $ifaceNil))) { $s = 141; continue; } @@ -334125,9 +336615,9 @@ $packages["go/printer"] = (function() { s$2 = _ref.$val; $r = p.setComment(s$2.Doc); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = p.expr(s$2.Name); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!(s$2.TypeParams === ptrType$28.nil)) { $s = 30; continue; } + /* */ if (!(s$2.TypeParams === ptrType$29.nil)) { $s = 30; continue; } /* */ $s = 31; continue; - /* if (!(s$2.TypeParams === ptrType$28.nil)) { */ case 30: + /* if (!(s$2.TypeParams === ptrType$29.nil)) { */ case 30: $r = p.parameters(s$2.TypeParams, 2); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 31: /* */ if (n === 1) { $s = 33; continue; } @@ -334349,7 +336839,7 @@ $packages["go/printer"] = (function() { /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); p = [p]; p[0] = this; - if (b === ptrType$50.nil) { + if (b === ptrType$51.nil) { $s = -1; return; } $deferred.push([(function(p) { return function printer·funcBody·func1(level) { @@ -334423,9 +336913,9 @@ $packages["go/printer"] = (function() { $r = p.setPos(_r); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = p.print(new sliceType$1([new token.Token(71), new whiteSpace(32)])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } startCol = p.out.Column - 5 >> 0; - /* */ if (!(d.Recv === ptrType$28.nil)) { $s = 5; continue; } + /* */ if (!(d.Recv === ptrType$29.nil)) { $s = 5; continue; } /* */ $s = 6; continue; - /* if (!(d.Recv === ptrType$28.nil)) { */ case 5: + /* if (!(d.Recv === ptrType$29.nil)) { */ case 5: $r = p.parameters(d.Recv, 0); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 6: @@ -334442,11 +336932,11 @@ $packages["go/printer"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; _ref = decl$1; - /* */ if ($assertType(_ref, ptrType$59, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$60, true)[1]) { $s = 1; continue; } /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 2; continue; } /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 3; continue; } /* */ $s = 4; continue; - /* if ($assertType(_ref, ptrType$59, true)[1]) { */ case 1: + /* if ($assertType(_ref, ptrType$60, true)[1]) { */ case 1: d = _ref.$val; $r = p.setPos(d.Pos()); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = p.print(new sliceType$1([new $String("BadDecl")])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } @@ -334736,7 +337226,7 @@ $packages["go/printer"] = (function() { text = $substring(text, 2, (text.length - 2 >> 0)); } else if (strings.HasPrefix((0 >= list.$length ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + 0]).Text, "//")) { kind = "//"; - b = new strings.Builder.ptr(ptrType$60.nil, sliceType.nil); + b = new strings.Builder.ptr(ptrType$61.nil, sliceType.nil); _ref = list; _i = 0; while (true) { @@ -334848,9 +337338,9 @@ $packages["go/printer"] = (function() { } return true; }; - ptrType$15.methods = [{prop: "internalError", name: "internalError", pkg: "go/printer", typ: $funcType([sliceType$1], [], true)}, {prop: "commentsHaveNewline", name: "commentsHaveNewline", pkg: "go/printer", typ: $funcType([sliceType$9], [$Bool], false)}, {prop: "nextComment", name: "nextComment", pkg: "go/printer", typ: $funcType([], [], false)}, {prop: "commentBefore", name: "commentBefore", pkg: "go/printer", typ: $funcType([token.Position], [$Bool], false)}, {prop: "commentSizeBefore", name: "commentSizeBefore", pkg: "go/printer", typ: $funcType([token.Position], [$Int], false)}, {prop: "recordLine", name: "recordLine", pkg: "go/printer", typ: $funcType([ptrType$1], [], false)}, {prop: "linesFrom", name: "linesFrom", pkg: "go/printer", typ: $funcType([$Int], [$Int], false)}, {prop: "posFor", name: "posFor", pkg: "go/printer", typ: $funcType([token.Pos], [token.Position], false)}, {prop: "lineFor", name: "lineFor", pkg: "go/printer", typ: $funcType([token.Pos], [$Int], false)}, {prop: "writeLineDirective", name: "writeLineDirective", pkg: "go/printer", typ: $funcType([token.Position], [], false)}, {prop: "writeIndent", name: "writeIndent", pkg: "go/printer", typ: $funcType([], [], false)}, {prop: "writeByte", name: "writeByte", pkg: "go/printer", typ: $funcType([$Uint8, $Int], [], false)}, {prop: "writeString", name: "writeString", pkg: "go/printer", typ: $funcType([token.Position, $String, $Bool], [], false)}, {prop: "writeCommentPrefix", name: "writeCommentPrefix", pkg: "go/printer", typ: $funcType([token.Position, token.Position, ptrType$3, token.Token], [], false)}, {prop: "writeComment", name: "writeComment", pkg: "go/printer", typ: $funcType([ptrType$3], [], false)}, {prop: "writeCommentSuffix", name: "writeCommentSuffix", pkg: "go/printer", typ: $funcType([$Bool], [$Bool, $Bool], false)}, {prop: "containsLinebreak", name: "containsLinebreak", pkg: "go/printer", typ: $funcType([], [$Bool], false)}, {prop: "intersperseComments", name: "intersperseComments", pkg: "go/printer", typ: $funcType([token.Position, token.Token], [$Bool, $Bool], false)}, {prop: "writeWhitespace", name: "writeWhitespace", pkg: "go/printer", typ: $funcType([$Int], [], false)}, {prop: "setPos", name: "setPos", pkg: "go/printer", typ: $funcType([token.Pos], [], false)}, {prop: "print", name: "print", pkg: "go/printer", typ: $funcType([sliceType$1], [], true)}, {prop: "flush", name: "flush", pkg: "go/printer", typ: $funcType([token.Position, token.Token], [$Bool, $Bool], false)}, {prop: "printNode", name: "printNode", pkg: "go/printer", typ: $funcType([$emptyInterface], [$error], false)}, {prop: "free", name: "free", pkg: "go/printer", typ: $funcType([], [], false)}, {prop: "linebreak", name: "linebreak", pkg: "go/printer", typ: $funcType([$Int, $Int, whiteSpace, $Bool], [$Int], false)}, {prop: "setComment", name: "setComment", pkg: "go/printer", typ: $funcType([ptrType$2], [], false)}, {prop: "identList", name: "identList", pkg: "go/printer", typ: $funcType([sliceType$8, $Bool], [], false)}, {prop: "exprList", name: "exprList", pkg: "go/printer", typ: $funcType([token.Pos, sliceType$7, $Int, exprListMode, token.Pos, $Bool], [], false)}, {prop: "parameters", name: "parameters", pkg: "go/printer", typ: $funcType([ptrType$28, paramMode], [], false)}, {prop: "signature", name: "signature", pkg: "go/printer", typ: $funcType([ptrType$23], [], false)}, {prop: "isOneLineFieldList", name: "isOneLineFieldList", pkg: "go/printer", typ: $funcType([sliceType$12], [$Bool], false)}, {prop: "setLineComment", name: "setLineComment", pkg: "go/printer", typ: $funcType([$String], [], false)}, {prop: "fieldList", name: "fieldList", pkg: "go/printer", typ: $funcType([ptrType$28, $Bool, $Bool], [], false)}, {prop: "binaryExpr", name: "binaryExpr", pkg: "go/printer", typ: $funcType([ptrType$19, $Int, $Int, $Int], [], false)}, {prop: "expr1", name: "expr1", pkg: "go/printer", typ: $funcType([ast.Expr, $Int, $Int], [], false)}, {prop: "possibleSelectorExpr", name: "possibleSelectorExpr", pkg: "go/printer", typ: $funcType([ast.Expr, $Int, $Int], [$Bool], false)}, {prop: "selectorExpr", name: "selectorExpr", pkg: "go/printer", typ: $funcType([ptrType$31, $Int, $Bool], [$Bool], false)}, {prop: "expr0", name: "expr0", pkg: "go/printer", typ: $funcType([ast.Expr, $Int], [], false)}, {prop: "expr", name: "expr", pkg: "go/printer", typ: $funcType([ast.Expr], [], false)}, {prop: "stmtList", name: "stmtList", pkg: "go/printer", typ: $funcType([sliceType$5, $Int, $Bool], [], false)}, {prop: "block", name: "block", pkg: "go/printer", typ: $funcType([ptrType$50, $Int], [], false)}, {prop: "controlClause", name: "controlClause", pkg: "go/printer", typ: $funcType([$Bool, ast.Stmt, ast.Expr, ast.Stmt], [], false)}, {prop: "indentList", name: "indentList", pkg: "go/printer", typ: $funcType([sliceType$7], [$Bool], false)}, {prop: "stmt", name: "stmt", pkg: "go/printer", typ: $funcType([ast.Stmt, $Bool], [], false)}, {prop: "valueSpec", name: "valueSpec", pkg: "go/printer", typ: $funcType([ptrType$8, $Bool], [], false)}, {prop: "spec", name: "spec", pkg: "go/printer", typ: $funcType([ast.Spec, $Int, $Bool], [], false)}, {prop: "genDecl", name: "genDecl", pkg: "go/printer", typ: $funcType([ptrType$10], [], false)}, {prop: "nodeSize", name: "nodeSize", pkg: "go/printer", typ: $funcType([ast.Node, $Int], [$Int], false)}, {prop: "numLines", name: "numLines", pkg: "go/printer", typ: $funcType([ast.Node], [$Int], false)}, {prop: "bodySize", name: "bodySize", pkg: "go/printer", typ: $funcType([ptrType$50, $Int], [$Int], false)}, {prop: "funcBody", name: "funcBody", pkg: "go/printer", typ: $funcType([$Int, whiteSpace, ptrType$50], [], false)}, {prop: "distanceFrom", name: "distanceFrom", pkg: "go/printer", typ: $funcType([token.Pos, $Int], [$Int], false)}, {prop: "funcDecl", name: "funcDecl", pkg: "go/printer", typ: $funcType([ptrType$11], [], false)}, {prop: "decl", name: "decl", pkg: "go/printer", typ: $funcType([ast.Decl], [], false)}, {prop: "declList", name: "declList", pkg: "go/printer", typ: $funcType([sliceType$6], [], false)}, {prop: "file", name: "file", pkg: "go/printer", typ: $funcType([ptrType$12], [], false)}, {prop: "fixGoBuildLines", name: "fixGoBuildLines", pkg: "go/printer", typ: $funcType([], [], false)}, {prop: "lineAt", name: "lineAt", pkg: "go/printer", typ: $funcType([$Int], [sliceType], false)}, {prop: "commentTextAt", name: "commentTextAt", pkg: "go/printer", typ: $funcType([$Int], [$String], false)}]; - ptrType$61.methods = [{prop: "resetSpace", name: "resetSpace", pkg: "go/printer", typ: $funcType([], [], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}]; - ptrType$62.methods = [{prop: "fprint", name: "fprint", pkg: "go/printer", typ: $funcType([io.Writer, ptrType, $emptyInterface, mapType], [$error], false)}, {prop: "Fprint", name: "Fprint", pkg: "", typ: $funcType([io.Writer, ptrType, $emptyInterface], [$error], false)}]; + ptrType$15.methods = [{prop: "internalError", name: "internalError", pkg: "go/printer", typ: $funcType([sliceType$1], [], true)}, {prop: "commentsHaveNewline", name: "commentsHaveNewline", pkg: "go/printer", typ: $funcType([sliceType$9], [$Bool], false)}, {prop: "nextComment", name: "nextComment", pkg: "go/printer", typ: $funcType([], [], false)}, {prop: "commentBefore", name: "commentBefore", pkg: "go/printer", typ: $funcType([token.Position], [$Bool], false)}, {prop: "commentSizeBefore", name: "commentSizeBefore", pkg: "go/printer", typ: $funcType([token.Position], [$Int], false)}, {prop: "recordLine", name: "recordLine", pkg: "go/printer", typ: $funcType([ptrType$1], [], false)}, {prop: "linesFrom", name: "linesFrom", pkg: "go/printer", typ: $funcType([$Int], [$Int], false)}, {prop: "posFor", name: "posFor", pkg: "go/printer", typ: $funcType([token.Pos], [token.Position], false)}, {prop: "lineFor", name: "lineFor", pkg: "go/printer", typ: $funcType([token.Pos], [$Int], false)}, {prop: "writeLineDirective", name: "writeLineDirective", pkg: "go/printer", typ: $funcType([token.Position], [], false)}, {prop: "writeIndent", name: "writeIndent", pkg: "go/printer", typ: $funcType([], [], false)}, {prop: "writeByte", name: "writeByte", pkg: "go/printer", typ: $funcType([$Uint8, $Int], [], false)}, {prop: "writeString", name: "writeString", pkg: "go/printer", typ: $funcType([token.Position, $String, $Bool], [], false)}, {prop: "writeCommentPrefix", name: "writeCommentPrefix", pkg: "go/printer", typ: $funcType([token.Position, token.Position, ptrType$3, token.Token], [], false)}, {prop: "writeComment", name: "writeComment", pkg: "go/printer", typ: $funcType([ptrType$3], [], false)}, {prop: "writeCommentSuffix", name: "writeCommentSuffix", pkg: "go/printer", typ: $funcType([$Bool], [$Bool, $Bool], false)}, {prop: "containsLinebreak", name: "containsLinebreak", pkg: "go/printer", typ: $funcType([], [$Bool], false)}, {prop: "intersperseComments", name: "intersperseComments", pkg: "go/printer", typ: $funcType([token.Position, token.Token], [$Bool, $Bool], false)}, {prop: "writeWhitespace", name: "writeWhitespace", pkg: "go/printer", typ: $funcType([$Int], [], false)}, {prop: "setPos", name: "setPos", pkg: "go/printer", typ: $funcType([token.Pos], [], false)}, {prop: "print", name: "print", pkg: "go/printer", typ: $funcType([sliceType$1], [], true)}, {prop: "flush", name: "flush", pkg: "go/printer", typ: $funcType([token.Position, token.Token], [$Bool, $Bool], false)}, {prop: "printNode", name: "printNode", pkg: "go/printer", typ: $funcType([$emptyInterface], [$error], false)}, {prop: "free", name: "free", pkg: "go/printer", typ: $funcType([], [], false)}, {prop: "linebreak", name: "linebreak", pkg: "go/printer", typ: $funcType([$Int, $Int, whiteSpace, $Bool], [$Int], false)}, {prop: "setComment", name: "setComment", pkg: "go/printer", typ: $funcType([ptrType$2], [], false)}, {prop: "identList", name: "identList", pkg: "go/printer", typ: $funcType([sliceType$8, $Bool], [], false)}, {prop: "exprList", name: "exprList", pkg: "go/printer", typ: $funcType([token.Pos, sliceType$7, $Int, exprListMode, token.Pos, $Bool], [], false)}, {prop: "parameters", name: "parameters", pkg: "go/printer", typ: $funcType([ptrType$29, paramMode], [], false)}, {prop: "signature", name: "signature", pkg: "go/printer", typ: $funcType([ptrType$24], [], false)}, {prop: "isOneLineFieldList", name: "isOneLineFieldList", pkg: "go/printer", typ: $funcType([sliceType$12], [$Bool], false)}, {prop: "setLineComment", name: "setLineComment", pkg: "go/printer", typ: $funcType([$String], [], false)}, {prop: "fieldList", name: "fieldList", pkg: "go/printer", typ: $funcType([ptrType$29, $Bool, $Bool], [], false)}, {prop: "binaryExpr", name: "binaryExpr", pkg: "go/printer", typ: $funcType([ptrType$20, $Int, $Int, $Int], [], false)}, {prop: "expr1", name: "expr1", pkg: "go/printer", typ: $funcType([ast.Expr, $Int, $Int], [], false)}, {prop: "possibleSelectorExpr", name: "possibleSelectorExpr", pkg: "go/printer", typ: $funcType([ast.Expr, $Int, $Int], [$Bool], false)}, {prop: "selectorExpr", name: "selectorExpr", pkg: "go/printer", typ: $funcType([ptrType$32, $Int, $Bool], [$Bool], false)}, {prop: "expr0", name: "expr0", pkg: "go/printer", typ: $funcType([ast.Expr, $Int], [], false)}, {prop: "expr", name: "expr", pkg: "go/printer", typ: $funcType([ast.Expr], [], false)}, {prop: "stmtList", name: "stmtList", pkg: "go/printer", typ: $funcType([sliceType$5, $Int, $Bool], [], false)}, {prop: "block", name: "block", pkg: "go/printer", typ: $funcType([ptrType$51, $Int], [], false)}, {prop: "controlClause", name: "controlClause", pkg: "go/printer", typ: $funcType([$Bool, ast.Stmt, ast.Expr, ast.Stmt], [], false)}, {prop: "indentList", name: "indentList", pkg: "go/printer", typ: $funcType([sliceType$7], [$Bool], false)}, {prop: "stmt", name: "stmt", pkg: "go/printer", typ: $funcType([ast.Stmt, $Bool], [], false)}, {prop: "valueSpec", name: "valueSpec", pkg: "go/printer", typ: $funcType([ptrType$8, $Bool], [], false)}, {prop: "spec", name: "spec", pkg: "go/printer", typ: $funcType([ast.Spec, $Int, $Bool], [], false)}, {prop: "genDecl", name: "genDecl", pkg: "go/printer", typ: $funcType([ptrType$10], [], false)}, {prop: "nodeSize", name: "nodeSize", pkg: "go/printer", typ: $funcType([ast.Node, $Int], [$Int], false)}, {prop: "numLines", name: "numLines", pkg: "go/printer", typ: $funcType([ast.Node], [$Int], false)}, {prop: "bodySize", name: "bodySize", pkg: "go/printer", typ: $funcType([ptrType$51, $Int], [$Int], false)}, {prop: "funcBody", name: "funcBody", pkg: "go/printer", typ: $funcType([$Int, whiteSpace, ptrType$51], [], false)}, {prop: "distanceFrom", name: "distanceFrom", pkg: "go/printer", typ: $funcType([token.Pos, $Int], [$Int], false)}, {prop: "funcDecl", name: "funcDecl", pkg: "go/printer", typ: $funcType([ptrType$11], [], false)}, {prop: "decl", name: "decl", pkg: "go/printer", typ: $funcType([ast.Decl], [], false)}, {prop: "declList", name: "declList", pkg: "go/printer", typ: $funcType([sliceType$6], [], false)}, {prop: "file", name: "file", pkg: "go/printer", typ: $funcType([ptrType$12], [], false)}, {prop: "fixGoBuildLines", name: "fixGoBuildLines", pkg: "go/printer", typ: $funcType([], [], false)}, {prop: "lineAt", name: "lineAt", pkg: "go/printer", typ: $funcType([$Int], [sliceType], false)}, {prop: "commentTextAt", name: "commentTextAt", pkg: "go/printer", typ: $funcType([$Int], [$String], false)}]; + ptrType$62.methods = [{prop: "resetSpace", name: "resetSpace", pkg: "go/printer", typ: $funcType([], [], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}]; + ptrType$16.methods = [{prop: "fprint", name: "fprint", pkg: "go/printer", typ: $funcType([io.Writer, ptrType, $emptyInterface, mapType], [$error], false)}, {prop: "Fprint", name: "Fprint", pkg: "", typ: $funcType([io.Writer, ptrType, $emptyInterface], [$error], false)}]; ptrType$63.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}]; commentInfo.init("go/printer", [{prop: "cindex", name: "cindex", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "comment", name: "comment", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "commentOffset", name: "commentOffset", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "commentNewline", name: "commentNewline", embedded: false, exported: false, typ: $Bool, tag: ""}]); printer.init("go/printer", [{prop: "Config", name: "Config", embedded: true, exported: true, typ: Config, tag: ""}, {prop: "fset", name: "fset", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "output", name: "output", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "indent", name: "indent", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "level", name: "level", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "mode", name: "mode", embedded: false, exported: false, typ: pmode, tag: ""}, {prop: "endAlignment", name: "endAlignment", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "impliedSemi", name: "impliedSemi", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "lastTok", name: "lastTok", embedded: false, exported: false, typ: token.Token, tag: ""}, {prop: "prevOpen", name: "prevOpen", embedded: false, exported: false, typ: token.Token, tag: ""}, {prop: "wsbuf", name: "wsbuf", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "goBuild", name: "goBuild", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "plusBuild", name: "plusBuild", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Position, tag: ""}, {prop: "out", name: "out", embedded: false, exported: false, typ: token.Position, tag: ""}, {prop: "last", name: "last", embedded: false, exported: false, typ: token.Position, tag: ""}, {prop: "linePtr", name: "linePtr", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "sourcePosErr", name: "sourcePosErr", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "comments", name: "comments", embedded: false, exported: false, typ: sliceType$4, tag: ""}, {prop: "useNodeComments", name: "useNodeComments", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "commentInfo", name: "commentInfo", embedded: true, exported: false, typ: commentInfo, tag: ""}, {prop: "nodeSizes", name: "nodeSizes", embedded: false, exported: false, typ: mapType, tag: ""}, {prop: "cachedPos", name: "cachedPos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "cachedLine", name: "cachedLine", embedded: false, exported: false, typ: $Int, tag: ""}]); @@ -334913,7 +337403,7 @@ $packages["text/template/parse"] = (function() { return $pkg; })(); $packages["text/template"] = (function() { - var $pkg = {}, $init, errors, fmt, fmtsort, io, fs, url, os, path, filepath, reflect, runtime, strings, sync, parse, unicode, utf8, missingValType, sliceType, ptrType$1, ptrType$2, ptrType$3, sliceType$3, ptrType$7, errBadComparisonType, errBadComparison, errNoComparison, jsLowUni, hex, jsBackslash, jsApos, jsQuot, jsLt, jsGt, jsAmp, jsEq, missingVal, x, _r, missingValReflectType, x$1, walkBreak, walkContinue, errorType, _r$1, fmtStringerType, _r$2, reflectValueType, _r$3, JSEscape, JSEscapeString, jsIsSpecial; + var $pkg = {}, $init, errors, fmt, fmtsort, io, fs, url, os, path, filepath, reflect, runtime, strings, sync, parse, unicode, utf8, missingValType, sliceType, ptrType$1, ptrType$2, ptrType$3, sliceType$3, ptrType$7, errBadComparisonType, errBadComparison, errNoComparison, jsLowUni, hex, jsBackslash, jsApos, jsQuot, jsLt, jsGt, jsAmp, jsEq, missingVal, x, missingValReflectType, x$1, walkBreak, walkContinue, errorType, _r, fmtStringerType, _r$1, reflectValueType, _r$2, JSEscape, JSEscapeString, jsIsSpecial; errors = $packages["errors"]; fmt = $packages["fmt"]; fmtsort = $packages["internal/fmtsort"]; @@ -334940,7 +337430,7 @@ $packages["text/template"] = (function() { sliceType$3 = $sliceType($emptyInterface); ptrType$7 = $ptrType(strings.Builder); JSEscape = function JSEscape$1(w, b) { - var {_1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tuple, b, b$1, c, i, last, r, size, t, w, $s, $r, $c} = $restore(this, {w, b}); + var {_1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tuple, b, b$1, c, i, last, r, size, t, w, $s, $r, $c} = $restore(this, {w, b}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: last = 0; i = 0; @@ -334951,8 +337441,8 @@ $packages["text/template"] = (function() { i = i + (1) >> 0; /* continue; */ $s = 1; continue; } - _r$4 = w.Write($subslice(b, last, i)); /* */ $s = 3; case 3: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$4; + _r$3 = w.Write($subslice(b, last, i)); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; /* */ if (c < 128) { $s = 4; continue; } /* */ $s = 5; continue; /* if (c < 128) { */ case 4: @@ -334966,44 +337456,44 @@ $packages["text/template"] = (function() { /* */ if (_1 === (61)) { $s = 14; continue; } /* */ $s = 15; continue; /* if (_1 === (92)) { */ case 8: - _r$5 = w.Write(jsBackslash); /* */ $s = 17; case 17: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$5; + _r$4 = w.Write(jsBackslash); /* */ $s = 17; case 17: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4; $s = 16; continue; /* } else if (_1 === (39)) { */ case 9: - _r$6 = w.Write(jsApos); /* */ $s = 18; case 18: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _r$6; + _r$5 = w.Write(jsApos); /* */ $s = 18; case 18: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$5; $s = 16; continue; /* } else if (_1 === (34)) { */ case 10: - _r$7 = w.Write(jsQuot); /* */ $s = 19; case 19: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _r$7; + _r$6 = w.Write(jsQuot); /* */ $s = 19; case 19: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$6; $s = 16; continue; /* } else if (_1 === (60)) { */ case 11: - _r$8 = w.Write(jsLt); /* */ $s = 20; case 20: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _r$8; + _r$7 = w.Write(jsLt); /* */ $s = 20; case 20: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$7; $s = 16; continue; /* } else if (_1 === (62)) { */ case 12: - _r$9 = w.Write(jsGt); /* */ $s = 21; case 21: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _r$9; + _r$8 = w.Write(jsGt); /* */ $s = 21; case 21: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$8; $s = 16; continue; /* } else if (_1 === (38)) { */ case 13: - _r$10 = w.Write(jsAmp); /* */ $s = 22; case 22: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _r$10; + _r$9 = w.Write(jsAmp); /* */ $s = 22; case 22: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$9; $s = 16; continue; /* } else if (_1 === (61)) { */ case 14: - _r$11 = w.Write(jsEq); /* */ $s = 23; case 23: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _r$11; + _r$10 = w.Write(jsEq); /* */ $s = 23; case 23: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$10; $s = 16; continue; /* } else { */ case 15: - _r$12 = w.Write(jsLowUni); /* */ $s = 24; case 24: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _r$12; + _r$11 = w.Write(jsLowUni); /* */ $s = 24; case 24: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _r$11; _tmp = c >>> 4 << 24 >>> 24; _tmp$1 = (c & 15) >>> 0; t = _tmp; b$1 = _tmp$1; - _r$13 = w.Write($subslice(hex, t, (t + 1 << 24 >>> 24))); /* */ $s = 25; case 25: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _r$12 = w.Write($subslice(hex, t, (t + 1 << 24 >>> 24))); /* */ $s = 25; case 25: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _r$12; + _r$13 = w.Write($subslice(hex, b$1, (b$1 + 1 << 24 >>> 24))); /* */ $s = 26; case 26: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } _r$13; - _r$14 = w.Write($subslice(hex, b$1, (b$1 + 1 << 24 >>> 24))); /* */ $s = 26; case 26: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - _r$14; /* } */ case 16: case 7: $s = 6; continue; @@ -335014,12 +337504,12 @@ $packages["text/template"] = (function() { /* */ if (unicode.IsPrint(r)) { $s = 27; continue; } /* */ $s = 28; continue; /* if (unicode.IsPrint(r)) { */ case 27: - _r$15 = w.Write($subslice(b, i, (i + size >> 0))); /* */ $s = 30; case 30: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - _r$15; + _r$14 = w.Write($subslice(b, i, (i + size >> 0))); /* */ $s = 30; case 30: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _r$14; $s = 29; continue; /* } else { */ case 28: - _r$16 = fmt.Fprintf(w, "\\u%04X", new sliceType$3([new $Int32(r)])); /* */ $s = 31; case 31: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - _r$16; + _r$15 = fmt.Fprintf(w, "\\u%04X", new sliceType$3([new $Int32(r)])); /* */ $s = 31; case 31: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + _r$15; /* } */ case 29: i = i + ((size - 1 >> 0)) >> 0; /* } */ case 6: @@ -335027,26 +337517,26 @@ $packages["text/template"] = (function() { i = i + (1) >> 0; $s = 1; continue; case 2: - _r$17 = w.Write($subslice(b, last)); /* */ $s = 32; case 32: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - _r$17; + _r$16 = w.Write($subslice(b, last)); /* */ $s = 32; case 32: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + _r$16; $s = -1; return; - /* */ } return; } var $f = {$blk: JSEscape$1, $c: true, $r, _1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tuple, b, b$1, c, i, last, r, size, t, w, $s};return $f; + /* */ } return; } var $f = {$blk: JSEscape$1, $c: true, $r, _1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tuple, b, b$1, c, i, last, r, size, t, w, $s};return $f; }; $pkg.JSEscape = JSEscape; JSEscapeString = function JSEscapeString$1(s) { - var {_r$4, b, s, $s, $r, $c} = $restore(this, {s}); + var {_r$3, b, s, $s, $r, $c} = $restore(this, {s}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: b = [b]; - _r$4 = strings.IndexFunc(s, jsIsSpecial); /* */ $s = 3; case 3: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if (_r$4 < 0) { $s = 1; continue; } + _r$3 = strings.IndexFunc(s, jsIsSpecial); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3 < 0) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (_r$4 < 0) { */ case 1: + /* if (_r$3 < 0) { */ case 1: $s = -1; return s; /* } */ case 2: b[0] = new strings.Builder.ptr(ptrType$7.nil, sliceType.nil); $r = JSEscape(b[0], (new sliceType($stringToBytes(s)))); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return b[0].String(); - /* */ } return; } var $f = {$blk: JSEscapeString$1, $c: true, $r, _r$4, b, s, $s};return $f; + /* */ } return; } var $f = {$blk: JSEscapeString$1, $c: true, $r, _r$3, b, s, $s};return $f; }; $pkg.JSEscapeString = JSEscapeString; jsIsSpecial = function jsIsSpecial$1(r) { @@ -335090,24 +337580,23 @@ $packages["text/template"] = (function() { jsGt = (new sliceType($stringToBytes("\\u003E"))); jsAmp = (new sliceType($stringToBytes("\\u0026"))); jsEq = (new sliceType($stringToBytes("\\u003D"))); - _r = reflect.ValueOf((x = new missingValType.ptr(), new x.constructor.elem(x))); /* */ $s = 17; case 17: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - missingVal = _r; + missingVal = reflect.ValueOf((x = new missingValType.ptr(), new x.constructor.elem(x))); missingValReflectType = reflect.TypeOf((x$1 = new missingValType.ptr(), new x$1.constructor.elem(x$1))); walkBreak = errors.New("break"); walkContinue = errors.New("continue"); - _r$1 = reflect.TypeOf((ptrType$1.nil)).Elem(); /* */ $s = 18; case 18: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - errorType = _r$1; - _r$2 = reflect.TypeOf((ptrType$2.nil)).Elem(); /* */ $s = 19; case 19: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - fmtStringerType = _r$2; - _r$3 = reflect.TypeOf((ptrType$3.nil)).Elem(); /* */ $s = 20; case 20: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - reflectValueType = _r$3; + _r = reflect.TypeOf((ptrType$1.nil)).Elem(); /* */ $s = 17; case 17: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + errorType = _r; + _r$1 = reflect.TypeOf((ptrType$2.nil)).Elem(); /* */ $s = 18; case 18: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + fmtStringerType = _r$1; + _r$2 = reflect.TypeOf((ptrType$3.nil)).Elem(); /* */ $s = 19; case 19: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + reflectValueType = _r$2; /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $packages["github.com/gopherjs/gopherjs/compiler"] = (function() { - var $pkg = {}, $init, bytes, errors, fmt, astutil, errlist, filter, incjs, analysis, dce, symbol, typeparams, linkname, prelude, sources, typesutil, sourcemapx, ast, constant, printer, token, types, typeutil, io, url, os, exec, filepath, regexp, debug, sort, strconv, strings, template, unicode, FatalError, pkgContext, funcContext, flowData, expression, Decl, Archive, sliceType, sliceType$1, ptrType, sliceType$2, ptrType$1, sliceType$3, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, ptrType$11, ptrType$12, ptrType$13, ptrType$14, ptrType$15, ptrType$16, ptrType$17, ptrType$18, ptrType$19, sliceType$4, sliceType$5, ptrType$20, ptrType$21, ptrType$22, ptrType$23, ptrType$24, ptrType$25, ptrType$26, ptrType$27, ptrType$28, ptrType$29, ptrType$30, ptrType$31, ptrType$32, ptrType$33, ptrType$34, ptrType$35, ptrType$36, ptrType$37, ptrType$38, ptrType$39, ptrType$40, ptrType$41, ptrType$42, ptrType$43, ptrType$44, sliceType$6, sliceType$7, ptrType$45, ptrType$46, ptrType$47, sliceType$8, ptrType$48, ptrType$49, ptrType$50, ptrType$51, sliceType$9, ptrType$52, ptrType$53, sliceType$10, ptrType$54, ptrType$55, ptrType$56, ptrType$57, ptrType$58, ptrType$59, ptrType$60, ptrType$61, ptrType$62, ptrType$63, sliceType$11, ptrType$64, ptrType$65, ptrType$66, ptrType$67, sliceType$12, sliceType$13, sliceType$14, sliceType$15, ptrType$68, sliceType$16, ptrType$69, ptrType$70, ptrType$71, ptrType$72, ptrType$73, ptrType$74, ptrType$76, ptrType$77, ptrType$78, sliceType$17, ptrType$79, sliceType$18, sliceType$19, ptrType$80, sliceType$20, sliceType$21, ptrType$81, structType, mapType, mapType$1, mapType$2, mapType$3, funcType, funcType$1, funcType$2, ptrType$82, ptrType$83, mapType$4, mapType$5, mapType$6, mapType$7, nilObj, _r, sizes32, reservedKeywords, isVarOrConst, isPkgLevel, fieldName, typeKind, toJavaScriptType, is64Bit, isBoolean, isComplex, isFloat, isInteger, isNumeric, isString, isUnsigned, isBlank, isWrapped, encodeString, getJsTag, needsSpace, removeWhitespace, rangeCheck, encodeIdent, formatJSStructTagVal, bailout, bailingOut, removeMatching = [], newRootCtx, Compile, PrepareAllSources, importDeclFullName, varDeclFullName, funcVarDeclFullName, mainFuncDeclFullName, funcDeclFullName, typeVarDeclFullName, typeDeclFullName, anonTypeDeclFullName, init, sanitizeName, ImportDependencies, DefaultFilter, WriteProgramCode, WritePkgCode, writeF; + var $pkg = {}, $init, bytes, errors, fmt, astutil, errlist, filter, incjs, analysis, dce, symbol, typeparams, linkname, prelude, sources, typesutil, sourcemapx, ast, constant, printer, token, types, typeutil, io, url, os, exec, filepath, reflect, regexp, debug, sort, strconv, strings, template, unicode, FatalError, pkgContext, funcContext, flowData, expression, Decl, Archive, sliceType, sliceType$1, ptrType, sliceType$2, ptrType$1, sliceType$3, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, ptrType$11, ptrType$12, ptrType$13, ptrType$14, ptrType$15, ptrType$16, ptrType$17, ptrType$18, ptrType$19, sliceType$4, sliceType$5, ptrType$20, ptrType$21, ptrType$22, ptrType$23, ptrType$24, ptrType$25, ptrType$26, ptrType$27, ptrType$28, ptrType$29, ptrType$30, ptrType$31, ptrType$32, ptrType$33, ptrType$34, ptrType$35, ptrType$36, ptrType$37, ptrType$38, ptrType$39, ptrType$40, ptrType$41, ptrType$42, ptrType$43, ptrType$44, sliceType$6, sliceType$7, ptrType$45, ptrType$46, ptrType$47, sliceType$8, ptrType$48, ptrType$49, ptrType$50, ptrType$51, sliceType$9, ptrType$52, ptrType$53, sliceType$10, ptrType$54, ptrType$55, ptrType$56, ptrType$57, ptrType$58, ptrType$59, ptrType$60, ptrType$61, ptrType$62, ptrType$63, sliceType$11, ptrType$64, ptrType$65, ptrType$66, ptrType$67, sliceType$12, sliceType$13, sliceType$14, sliceType$15, ptrType$68, sliceType$16, ptrType$69, ptrType$70, ptrType$71, ptrType$72, ptrType$73, ptrType$74, ptrType$76, ptrType$77, ptrType$78, sliceType$17, ptrType$79, sliceType$18, sliceType$19, ptrType$80, sliceType$20, sliceType$21, ptrType$81, structType, mapType, mapType$1, mapType$2, mapType$3, funcType, funcType$1, funcType$2, ptrType$82, ptrType$83, mapType$4, mapType$5, mapType$6, mapType$7, nilObj, _r, sizes32, reservedKeywords, isVarOrConst, isPkgLevel, fieldName, typeKind, toJavaScriptType, is64Bit, isBoolean, isComplex, isFloat, isInteger, isNumeric, isOrdered, isString, isUnsigned, isBlank, isWrapped, encodeString, getJsTag, needsSpace, removeWhitespace, rangeCheck, encodeIdent, formatJSStructTagVal, bailout, bailingOut, removeMatching = [], newRootCtx, Compile, PrepareAllSources, importDeclFullName, varDeclFullName, funcVarDeclFullName, mainFuncDeclFullName, funcDeclFullName, typeVarDeclFullName, typeDeclFullName, anonTypeDeclFullName, init, sanitizeName, ImportDependencies, DefaultFilter, WriteProgramCode, WritePkgCode, writeF; bytes = $packages["bytes"]; errors = $packages["errors"]; fmt = $packages["fmt"]; @@ -335135,6 +337624,7 @@ $packages["github.com/gopherjs/gopherjs/compiler"] = (function() { os = $packages["os"]; exec = $packages["os/exec"]; filepath = $packages["path/filepath"]; + reflect = $packages["reflect"]; regexp = $packages["regexp"]; debug = $packages["runtime/debug"]; sort = $packages["sort"]; @@ -335190,7 +337680,7 @@ $packages["github.com/gopherjs/gopherjs/compiler"] = (function() { this.errList = errList_; this.instanceSet = instanceSet_; }); - funcContext = $newType(0, $kindStruct, "compiler.funcContext", true, "github.com/gopherjs/gopherjs/compiler", false, function(FuncInfo_, instance_, funcRef_, pkgCtx_, parent_, sig_, allVars_, localVars_, resultNames_, flowDatas_, caseCounter_, labelCases_, output_, delayedOutput_, posAvailable_, pos_, typeResolver_, objectNames_, funcLitCounter_) { + funcContext = $newType(0, $kindStruct, "compiler.funcContext", true, "github.com/gopherjs/gopherjs/compiler", false, function(FuncInfo_, instance_, funcRef_, pkgCtx_, parent_, sig_, allVars_, localVars_, varPtrNames_, resultNames_, flowDatas_, caseCounter_, labelCases_, output_, delayedOutput_, posAvailable_, pos_, typeResolver_, objectNames_, funcLitCounter_) { this.$val = this; if (arguments.length === 0) { this.FuncInfo = ptrType$57.nil; @@ -335201,6 +337691,7 @@ $packages["github.com/gopherjs/gopherjs/compiler"] = (function() { this.sig = ptrType$59.nil; this.allVars = false; this.localVars = sliceType$1.nil; + this.varPtrNames = false; this.resultNames = sliceType$3.nil; this.flowDatas = false; this.caseCounter = 0; @@ -335222,6 +337713,7 @@ $packages["github.com/gopherjs/gopherjs/compiler"] = (function() { this.sig = sig_; this.allVars = allVars_; this.localVars = localVars_; + this.varPtrNames = varPtrNames_; this.resultNames = resultNames_; this.flowDatas = flowDatas_; this.caseCounter = caseCounter_; @@ -336122,32 +338614,44 @@ $packages["github.com/gopherjs/gopherjs/compiler"] = (function() { /* */ } return; } var $f = {$blk: methodName, $c: true, $r, _r$1, fc, fun, $s};return $f; }; $ptrType(funcContext).prototype.varPtrName = function varPtrName(o) { - var {$24r, _arg, _arg$1, _entry, _key, _r$1, _r$2, _r$3, _r$4, _tuple, fc, name, o, ok, $s, $r, $c} = $restore(this, {o}); + var {$24r, _entry, _entry$1, _key, _key$1, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, fc, name, name$1, o, ok, ok$1, $s, $r, $c} = $restore(this, {o}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: fc = this; _r$1 = isPkgLevel(o); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1 && o.object.Exported()) { $s = 1; continue; } + /* */ if (_r$1) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (_r$1 && o.object.Exported()) { */ case 1: - _r$2 = fc.pkgVar(o.object.Pkg()); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2 + "." + o.object.Name() + "$ptr"; - $s = 5; case 5: return $24r; + /* if (_r$1) { */ case 1: + /* */ if (o.object.Exported()) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (o.object.Exported()) { */ case 4: + _r$2 = fc.pkgVar(o.object.Pkg()); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2 + "." + o.object.Name() + "$ptr"; + $s = 7; case 7: return $24r; + /* } */ case 5: + _tuple = (_entry = $mapIndex(fc.pkgCtx.varPtrNames,ptrType$16.keyFor(o)), _entry !== undefined ? [_entry.v, true] : ["", false]); + name = _tuple[0]; + ok = _tuple[1]; + /* */ if (!ok) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!ok) { */ case 8: + _r$3 = fc.newVariable(o.object.Name() + "$ptr", true); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + name = _r$3; + _key = o; (fc.pkgCtx.varPtrNames || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$16.keyFor(_key), { k: _key, v: name }); + /* } */ case 9: + $s = -1; return name; /* } */ case 2: - _tuple = (_entry = $mapIndex(fc.pkgCtx.varPtrNames,ptrType$16.keyFor(o)), _entry !== undefined ? [_entry.v, true] : ["", false]); - name = _tuple[0]; - ok = _tuple[1]; - /* */ if (!ok) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (!ok) { */ case 6: - _arg = o.object.Name() + "$ptr"; - _r$3 = isPkgLevel(o); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _arg$1 = _r$3; - _r$4 = fc.newVariable(_arg, _arg$1); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - name = _r$4; - _key = o; (fc.pkgCtx.varPtrNames || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$16.keyFor(_key), { k: _key, v: name }); - /* } */ case 7: - $s = -1; return name; - /* */ } return; } var $f = {$blk: varPtrName, $c: true, $r, $24r, _arg, _arg$1, _entry, _key, _r$1, _r$2, _r$3, _r$4, _tuple, fc, name, o, ok, $s};return $f; + _tuple$1 = (_entry$1 = $mapIndex(fc.varPtrNames,ptrType$16.keyFor(o)), _entry$1 !== undefined ? [_entry$1.v, true] : ["", false]); + name$1 = _tuple$1[0]; + ok$1 = _tuple$1[1]; + /* */ if (!ok$1) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (!ok$1) { */ case 11: + _r$4 = fc.newVariable(o.object.Name() + "$ptr", false); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + name$1 = _r$4; + _key$1 = o; (fc.varPtrNames || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$16.keyFor(_key$1), { k: _key$1, v: name$1 }); + /* } */ case 12: + $s = -1; return name$1; + /* */ } return; } var $f = {$blk: varPtrName, $c: true, $r, $24r, _entry, _entry$1, _key, _key$1, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, fc, name, name$1, o, ok, ok$1, $s};return $f; }; $ptrType(funcContext).prototype.typeName = function typeName(ty) { var {$24r, $24r$1, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, anonType, fc, fn, i, i$1, inst, ok, t, t$1, t$2, t$3, tNest, tp, ty, varName, $s, $r, $c} = $restore(this, {ty}); @@ -336518,6 +339022,10 @@ $packages["github.com/gopherjs/gopherjs/compiler"] = (function() { var t; return !(((t.Info() & 26) === 0)); }; + isOrdered = function isOrdered$1(t) { + var t; + return !(((t.Info() & 42) === 0)); + }; isString = function isString$1(t) { var t; return !(((t.Info() & 32) === 0)); @@ -336626,48 +339134,8 @@ $packages["github.com/gopherjs/gopherjs/compiler"] = (function() { /* */ } return; } var $f = {$blk: encodeString$1, $c: true, $r, _1, _i, _r$1, _ref, buffer, r, s, $s};return $f; }; getJsTag = function getJsTag$1(tag) { - var _tuple, i, name, qvalue, tag, value; - while (true) { - if (!(!(tag === ""))) { break; } - i = 0; - while (true) { - if (!(i < tag.length && (tag.charCodeAt(i) === 32))) { break; } - i = i + (1) >> 0; - } - tag = $substring(tag, i); - if (tag === "") { - break; - } - i = 0; - while (true) { - if (!(i < tag.length && !((tag.charCodeAt(i) === 32)) && !((tag.charCodeAt(i) === 58)) && !((tag.charCodeAt(i) === 34)))) { break; } - i = i + (1) >> 0; - } - if ((i + 1 >> 0) >= tag.length || !((tag.charCodeAt(i) === 58)) || !((tag.charCodeAt((i + 1 >> 0)) === 34))) { - break; - } - name = ($substring(tag, 0, i)); - tag = $substring(tag, (i + 1 >> 0)); - i = 1; - while (true) { - if (!(i < tag.length && !((tag.charCodeAt(i) === 34)))) { break; } - if (tag.charCodeAt(i) === 92) { - i = i + (1) >> 0; - } - i = i + (1) >> 0; - } - if (i >= tag.length) { - break; - } - qvalue = ($substring(tag, 0, (i + 1 >> 0))); - tag = $substring(tag, (i + 1 >> 0)); - if (name === "js") { - _tuple = strconv.Unquote(qvalue); - value = _tuple[0]; - return value; - } - } - return ""; + var tag; + return new reflect.StructTag((tag)).Get("js"); }; needsSpace = function needsSpace$1(c) { var c; @@ -338416,7 +340884,7 @@ $packages["github.com/gopherjs/gopherjs/compiler"] = (function() { }; newRootCtx = function newRootCtx$1(tContext, srcs, minify) { var _entry, _i, _key, _key$1, _keys, _ref, _size, funcCtx, minify, name, srcs, tContext; - funcCtx = new funcContext.ptr(srcs.TypeInfo.InitFuncInfo, new typeparams.Instance.ptr($ifaceNil, typesutil.TypeList.nil, typesutil.TypeList.nil), new sourcemapx.Identifier.ptr("", "", 0), new pkgContext.ptr(srcs.TypeInfo, new dce.Collector.ptr(ptrType$62.nil), new $global.Map(), tContext, new typesutil.TypeNames.ptr(false, sliceType$11.nil), new $global.Map(), new $global.Map(), sliceType$11.nil, new typeutil.Map.ptr(new typeutil.Hasher.ptr(false, false, ptrType$64.nil), false, 0), new $global.Map(), 1, minify, srcs.FileSet, errlist.ErrorList.nil, srcs.TypeInfo.InstanceSets), ptrType.nil, ptrType$59.nil, new $global.Map(), sliceType$1.nil, sliceType$3.nil, $makeMap(ptrType$26.keyFor, [{ k: ptrType$26.nil, v: new flowData.ptr($throwNilPointerError, 0, 0) }]), 1, new $global.Map(), sliceType$2.nil, sliceType$2.nil, false, 0, ptrType$60.nil, $makeMap(types.Object.keyFor, []), 0); + funcCtx = new funcContext.ptr(srcs.TypeInfo.InitFuncInfo, new typeparams.Instance.ptr($ifaceNil, typesutil.TypeList.nil, typesutil.TypeList.nil), new sourcemapx.Identifier.ptr("", "", 0), new pkgContext.ptr(srcs.TypeInfo, new dce.Collector.ptr(ptrType$62.nil), new $global.Map(), tContext, new typesutil.TypeNames.ptr(false, sliceType$11.nil), new $global.Map(), new $global.Map(), sliceType$11.nil, new typeutil.Map.ptr(new typeutil.Hasher.ptr(false, false, ptrType$64.nil), false, 0), new $global.Map(), 1, minify, srcs.FileSet, errlist.ErrorList.nil, srcs.TypeInfo.InstanceSets), ptrType.nil, ptrType$59.nil, new $global.Map(), sliceType$1.nil, new $global.Map(), sliceType$3.nil, $makeMap(ptrType$26.keyFor, [{ k: ptrType$26.nil, v: new flowData.ptr($throwNilPointerError, 0, 0) }]), 1, new $global.Map(), sliceType$2.nil, sliceType$2.nil, false, 0, ptrType$60.nil, $makeMap(types.Object.keyFor, []), 0); _ref = reservedKeywords; _i = 0; _keys = _ref ? _ref.keys() : undefined; @@ -338521,7 +340989,7 @@ $packages["github.com/gopherjs/gopherjs/compiler"] = (function() { /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 16; continue; } d = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); _r$7 = $clone(d, Decl).minify(); /* */ $s = 17; case 17: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - Decl.copy(d, _r$7); + Decl.copy((d === ptrType$67.nil && $throwNilPointerError(), d), _r$7); _i++; $s = 15; continue; case 16: @@ -338805,7 +341273,7 @@ $packages["github.com/gopherjs/gopherjs/compiler"] = (function() { } o = $assertType(inst.Object, ptrType$21); sig = $assertType(o.object.Type(), ptrType$2); - c = new funcContext.ptr(info, $clone(inst, typeparams.Instance), new sourcemapx.Identifier.ptr("", "", 0), fc.pkgCtx, fc, new typesutil.Signature.ptr(sig), (x = (fc.allVars ? fc.allVars.size : 0), ((x < 0 || x > 2147483647) ? $throwRuntimeError("makemap: size out of range") : new $global.Map())), new sliceType$1([]), sliceType$3.nil, $makeMap(ptrType$26.keyFor, [{ k: ptrType$26.nil, v: new flowData.ptr($throwNilPointerError, 0, 0) }]), 1, new $global.Map(), sliceType$2.nil, sliceType$2.nil, false, 0, fc.typeResolver, $makeMap(types.Object.keyFor, []), 0); + c = new funcContext.ptr(info, $clone(inst, typeparams.Instance), new sourcemapx.Identifier.ptr("", "", 0), fc.pkgCtx, fc, new typesutil.Signature.ptr(sig), (x = (fc.allVars ? fc.allVars.size : 0), ((x < 0 || x > 2147483647) ? $throwRuntimeError("makemap: size out of range") : new $global.Map())), new sliceType$1([]), new $global.Map(), sliceType$3.nil, $makeMap(ptrType$26.keyFor, [{ k: ptrType$26.nil, v: new flowData.ptr($throwNilPointerError, 0, 0) }]), 1, new $global.Map(), sliceType$2.nil, sliceType$2.nil, false, 0, fc.typeResolver, $makeMap(types.Object.keyFor, []), 0); _ref = fc.allVars; _i = 0; _keys = _ref ? _ref.keys() : undefined; @@ -339240,7 +341708,7 @@ $packages["github.com/gopherjs/gopherjs/compiler"] = (function() { return e.str; }; $ptrType(funcContext).prototype.translateExpr = function translateExpr(expr) { - var {$24r, $24r$1, $24r$10, $24r$100, $24r$101, $24r$102, $24r$103, $24r$104, $24r$105, $24r$106, $24r$107, $24r$108, $24r$109, $24r$11, $24r$110, $24r$111, $24r$112, $24r$113, $24r$114, $24r$115, $24r$116, $24r$117, $24r$118, $24r$119, $24r$12, $24r$120, $24r$121, $24r$122, $24r$123, $24r$124, $24r$125, $24r$126, $24r$127, $24r$128, $24r$129, $24r$13, $24r$130, $24r$131, $24r$132, $24r$133, $24r$134, $24r$135, $24r$136, $24r$137, $24r$138, $24r$139, $24r$14, $24r$140, $24r$141, $24r$142, $24r$143, $24r$144, $24r$145, $24r$146, $24r$147, $24r$148, $24r$149, $24r$15, $24r$150, $24r$151, $24r$152, $24r$153, $24r$154, $24r$155, $24r$156, $24r$157, $24r$158, $24r$159, $24r$16, $24r$160, $24r$161, $24r$162, $24r$163, $24r$164, $24r$165, $24r$17, $24r$18, $24r$19, $24r$2, $24r$20, $24r$21, $24r$22, $24r$23, $24r$24, $24r$25, $24r$26, $24r$27, $24r$28, $24r$29, $24r$3, $24r$30, $24r$31, $24r$32, $24r$33, $24r$34, $24r$35, $24r$36, $24r$37, $24r$38, $24r$39, $24r$4, $24r$40, $24r$41, $24r$42, $24r$43, $24r$44, $24r$45, $24r$46, $24r$47, $24r$48, $24r$49, $24r$5, $24r$50, $24r$51, $24r$52, $24r$53, $24r$54, $24r$55, $24r$56, $24r$57, $24r$58, $24r$59, $24r$6, $24r$60, $24r$61, $24r$62, $24r$63, $24r$64, $24r$65, $24r$66, $24r$67, $24r$68, $24r$69, $24r$7, $24r$70, $24r$71, $24r$72, $24r$73, $24r$74, $24r$75, $24r$76, $24r$77, $24r$78, $24r$79, $24r$8, $24r$80, $24r$81, $24r$82, $24r$83, $24r$84, $24r$85, $24r$86, $24r$87, $24r$88, $24r$89, $24r$9, $24r$90, $24r$91, $24r$92, $24r$93, $24r$94, $24r$95, $24r$96, $24r$97, $24r$98, $24r$99, _1, _10, _11, _12, _13, _2, _3, _4, _5, _6, _7, _8, _9, _arg, _arg$1, _arg$10, _arg$100, _arg$101, _arg$102, _arg$103, _arg$104, _arg$105, _arg$106, _arg$107, _arg$108, _arg$109, _arg$11, _arg$110, _arg$111, _arg$112, _arg$113, _arg$114, _arg$115, _arg$116, _arg$117, _arg$118, _arg$119, _arg$12, _arg$120, _arg$121, _arg$122, _arg$123, _arg$124, _arg$125, _arg$126, _arg$127, _arg$128, _arg$129, _arg$13, _arg$130, _arg$131, _arg$132, _arg$133, _arg$134, _arg$135, _arg$136, _arg$137, _arg$138, _arg$139, _arg$14, _arg$140, _arg$141, _arg$142, _arg$143, _arg$144, _arg$145, _arg$146, _arg$147, _arg$148, _arg$149, _arg$15, _arg$150, _arg$151, _arg$152, _arg$153, _arg$154, _arg$155, _arg$156, _arg$157, _arg$158, _arg$159, _arg$16, _arg$160, _arg$161, _arg$162, _arg$163, _arg$164, _arg$165, _arg$166, _arg$167, _arg$168, _arg$169, _arg$17, _arg$170, _arg$171, _arg$172, _arg$173, _arg$174, _arg$175, _arg$176, _arg$177, _arg$178, _arg$179, _arg$18, _arg$180, _arg$181, _arg$182, _arg$183, _arg$184, _arg$185, _arg$186, _arg$187, _arg$188, _arg$189, _arg$19, _arg$190, _arg$191, _arg$192, _arg$193, _arg$194, _arg$195, _arg$196, _arg$197, _arg$198, _arg$199, _arg$2, _arg$20, _arg$200, _arg$201, _arg$202, _arg$203, _arg$204, _arg$205, _arg$206, _arg$207, _arg$208, _arg$209, _arg$21, _arg$210, _arg$211, _arg$212, _arg$213, _arg$214, _arg$215, _arg$216, _arg$217, _arg$218, _arg$219, _arg$22, _arg$220, _arg$23, _arg$24, _arg$25, _arg$26, _arg$27, _arg$28, _arg$29, _arg$3, _arg$30, _arg$31, _arg$32, _arg$33, _arg$34, _arg$35, _arg$36, _arg$37, _arg$38, _arg$39, _arg$4, _arg$40, _arg$41, _arg$42, _arg$43, _arg$44, _arg$45, _arg$46, _arg$47, _arg$48, _arg$49, _arg$5, _arg$50, _arg$51, _arg$52, _arg$53, _arg$54, _arg$55, _arg$56, _arg$57, _arg$58, _arg$59, _arg$6, _arg$60, _arg$61, _arg$62, _arg$63, _arg$64, _arg$65, _arg$66, _arg$67, _arg$68, _arg$69, _arg$7, _arg$70, _arg$71, _arg$72, _arg$73, _arg$74, _arg$75, _arg$76, _arg$77, _arg$78, _arg$79, _arg$8, _arg$80, _arg$81, _arg$82, _arg$83, _arg$84, _arg$85, _arg$86, _arg$87, _arg$88, _arg$89, _arg$9, _arg$90, _arg$91, _arg$92, _arg$93, _arg$94, _arg$95, _arg$96, _arg$97, _arg$98, _arg$99, _entry, _entry$1, _entry$10, _entry$11, _entry$2, _entry$3, _entry$4, _entry$5, _entry$6, _entry$7, _entry$8, _entry$9, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _key, _key$1, _key$2, _keys, _r$1, _r$10, _r$100, _r$101, _r$102, _r$103, _r$104, _r$105, _r$106, _r$107, _r$108, _r$109, _r$11, _r$110, _r$111, _r$112, _r$113, _r$114, _r$115, _r$116, _r$117, _r$118, _r$119, _r$12, _r$120, _r$121, _r$122, _r$123, _r$124, _r$125, _r$126, _r$127, _r$128, _r$129, _r$13, _r$130, _r$131, _r$132, _r$133, _r$134, _r$135, _r$136, _r$137, _r$138, _r$139, _r$14, _r$140, _r$141, _r$142, _r$143, _r$144, _r$145, _r$146, _r$147, _r$148, _r$149, _r$15, _r$150, _r$151, _r$152, _r$153, _r$154, _r$155, _r$156, _r$157, _r$158, _r$159, _r$16, _r$160, _r$161, _r$162, _r$163, _r$164, _r$165, _r$166, _r$167, _r$168, _r$169, _r$17, _r$170, _r$171, _r$172, _r$173, _r$174, _r$175, _r$176, _r$177, _r$178, _r$179, _r$18, _r$180, _r$181, _r$182, _r$183, _r$184, _r$185, _r$186, _r$187, _r$188, _r$189, _r$19, _r$190, _r$191, _r$192, _r$193, _r$194, _r$195, _r$196, _r$197, _r$198, _r$199, _r$2, _r$20, _r$200, _r$201, _r$202, _r$203, _r$204, _r$205, _r$206, _r$207, _r$208, _r$209, _r$21, _r$210, _r$211, _r$212, _r$213, _r$214, _r$215, _r$216, _r$217, _r$218, _r$219, _r$22, _r$220, _r$221, _r$222, _r$223, _r$224, _r$225, _r$226, _r$227, _r$228, _r$229, _r$23, _r$230, _r$231, _r$232, _r$233, _r$234, _r$235, _r$236, _r$237, _r$238, _r$239, _r$24, _r$240, _r$241, _r$242, _r$243, _r$244, _r$245, _r$246, _r$247, _r$248, _r$249, _r$25, _r$250, _r$251, _r$252, _r$253, _r$254, _r$255, _r$256, _r$257, _r$258, _r$259, _r$26, _r$260, _r$261, _r$262, _r$263, _r$264, _r$265, _r$266, _r$267, _r$268, _r$269, _r$27, _r$270, _r$271, _r$272, _r$273, _r$274, _r$275, _r$276, _r$277, _r$278, _r$279, _r$28, _r$280, _r$281, _r$282, _r$283, _r$284, _r$285, _r$286, _r$287, _r$288, _r$289, _r$29, _r$290, _r$291, _r$292, _r$293, _r$294, _r$295, _r$296, _r$297, _r$298, _r$299, _r$3, _r$30, _r$300, _r$301, _r$302, _r$303, _r$304, _r$305, _r$306, _r$307, _r$308, _r$309, _r$31, _r$310, _r$311, _r$312, _r$313, _r$314, _r$315, _r$316, _r$317, _r$318, _r$319, _r$32, _r$320, _r$321, _r$322, _r$323, _r$324, _r$325, _r$326, _r$327, _r$328, _r$329, _r$33, _r$330, _r$331, _r$332, _r$333, _r$334, _r$335, _r$336, _r$337, _r$338, _r$339, _r$34, _r$340, _r$341, _r$342, _r$343, _r$344, _r$345, _r$346, _r$347, _r$348, _r$349, _r$35, _r$350, _r$351, _r$352, _r$353, _r$354, _r$355, _r$356, _r$357, _r$358, _r$359, _r$36, _r$360, _r$361, _r$362, _r$363, _r$364, _r$365, _r$366, _r$367, _r$368, _r$369, _r$37, _r$370, _r$371, _r$372, _r$373, _r$374, _r$375, _r$376, _r$377, _r$378, _r$379, _r$38, _r$380, _r$381, _r$382, _r$383, _r$384, _r$385, _r$386, _r$387, _r$388, _r$389, _r$39, _r$390, _r$391, _r$392, _r$393, _r$394, _r$395, _r$396, _r$397, _r$398, _r$399, _r$4, _r$40, _r$400, _r$401, _r$402, _r$403, _r$404, _r$405, _r$406, _r$407, _r$408, _r$409, _r$41, _r$410, _r$411, _r$412, _r$413, _r$414, _r$415, _r$416, _r$417, _r$418, _r$419, _r$42, _r$420, _r$421, _r$422, _r$423, _r$424, _r$425, _r$426, _r$427, _r$428, _r$429, _r$43, _r$430, _r$431, _r$432, _r$433, _r$434, _r$435, _r$436, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _r$5, _r$50, _r$51, _r$52, _r$53, _r$54, _r$55, _r$56, _r$57, _r$58, _r$59, _r$6, _r$60, _r$61, _r$62, _r$63, _r$64, _r$65, _r$66, _r$67, _r$68, _r$69, _r$7, _r$70, _r$71, _r$72, _r$73, _r$74, _r$75, _r$76, _r$77, _r$78, _r$79, _r$8, _r$80, _r$81, _r$82, _r$83, _r$84, _r$85, _r$86, _r$87, _r$88, _r$89, _r$9, _r$90, _r$91, _r$92, _r$93, _r$94, _r$95, _r$96, _r$97, _r$98, _r$99, _ref, _ref$1, _ref$10, _ref$11, _ref$12, _ref$13, _ref$14, _ref$15, _ref$16, _ref$17, _ref$18, _ref$19, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _ref$9, _size, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$2, _tuple$20, _tuple$21, _tuple$22, _tuple$23, _tuple$24, _tuple$25, _tuple$26, _tuple$27, _tuple$28, _tuple$29, _tuple$3, _tuple$30, _tuple$31, _tuple$32, _tuple$33, _tuple$34, _tuple$35, _tuple$36, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, _v$2, _v$3, b, b$1, b$2, basic, basic$1, basic$2, c1, c2, call, call$1, collectIndexedElements, d, d$1, d$2, declaredFuncRecv, e, e$1, e$10, e$11, e$12, e$13, e$14, e$15, e$16, e$2, e$3, e$4, e$5, e$6, e$7, e$8, e$9, elemType, element, element$1, element$2, elements, elements$1, entries, expr, exprType, exprType$1, externalizeArgs, externalizeExpr, f, f$1, f$2, f$3, fc, fields, fields$1, fun, globalRef, i, i$1, i$2, i$3, i$4, id, id$1, id$2, inst, isBasic, isBasic$1, isCall, isCall$1, isInterface, isKeyValue, isPointer, isTuple, isTuple$1, isTuple$2, isUnary, j, jsTag, jsTag$1, key, kve, kve$1, list, methodName$1, name, name$1, names, newSel, o, o$1, o$2, o$3, o$4, o$5, o$6, obj, obj$1, obj$2, obj$3, obj$4, objVar, objVar$1, ok, ok$1, ok$10, ok$11, ok$12, ok$13, ok$14, ok$15, ok$16, ok$17, ok$18, ok$19, ok$2, ok$3, ok$4, ok$5, ok$6, ok$7, ok$8, ok$9, op, pattern, plainFun, ptrType$75, r, recv, resultVar, resultVar$1, rewritten, sel, sel$1, sel$2, shift, sig, skipCase, skipCase$1, slice, t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$16, t$17, t$18, t$19, t$2, t$20, t$21, t$22, t$23, t$3, t$4, t$5, t$6, t$7, t$8, t$9, t2, typeCast, u, u$1, u$2, u$3, u$4, u$5, u$6, u$7, u$8, unary, v, value, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$25, x$26, x$27, x$28, x$29, x$3, x$30, x$31, x$32, x$33, x$34, x$35, x$36, x$37, x$38, x$39, x$4, x$40, x$41, x$42, x$43, x$5, x$6, x$7, x$8, x$9, y, zero, $s, $r, $c} = $restore(this, {expr}); + var {$24r, $24r$1, $24r$10, $24r$100, $24r$101, $24r$102, $24r$103, $24r$104, $24r$105, $24r$106, $24r$107, $24r$108, $24r$109, $24r$11, $24r$110, $24r$111, $24r$112, $24r$113, $24r$114, $24r$115, $24r$116, $24r$117, $24r$118, $24r$119, $24r$12, $24r$120, $24r$121, $24r$122, $24r$123, $24r$124, $24r$125, $24r$126, $24r$127, $24r$128, $24r$129, $24r$13, $24r$130, $24r$131, $24r$132, $24r$133, $24r$134, $24r$135, $24r$136, $24r$137, $24r$138, $24r$139, $24r$14, $24r$140, $24r$141, $24r$142, $24r$143, $24r$144, $24r$145, $24r$146, $24r$147, $24r$148, $24r$149, $24r$15, $24r$150, $24r$151, $24r$152, $24r$153, $24r$154, $24r$155, $24r$156, $24r$157, $24r$158, $24r$159, $24r$16, $24r$160, $24r$161, $24r$162, $24r$163, $24r$164, $24r$165, $24r$166, $24r$167, $24r$168, $24r$169, $24r$17, $24r$170, $24r$171, $24r$172, $24r$18, $24r$19, $24r$2, $24r$20, $24r$21, $24r$22, $24r$23, $24r$24, $24r$25, $24r$26, $24r$27, $24r$28, $24r$29, $24r$3, $24r$30, $24r$31, $24r$32, $24r$33, $24r$34, $24r$35, $24r$36, $24r$37, $24r$38, $24r$39, $24r$4, $24r$40, $24r$41, $24r$42, $24r$43, $24r$44, $24r$45, $24r$46, $24r$47, $24r$48, $24r$49, $24r$5, $24r$50, $24r$51, $24r$52, $24r$53, $24r$54, $24r$55, $24r$56, $24r$57, $24r$58, $24r$59, $24r$6, $24r$60, $24r$61, $24r$62, $24r$63, $24r$64, $24r$65, $24r$66, $24r$67, $24r$68, $24r$69, $24r$7, $24r$70, $24r$71, $24r$72, $24r$73, $24r$74, $24r$75, $24r$76, $24r$77, $24r$78, $24r$79, $24r$8, $24r$80, $24r$81, $24r$82, $24r$83, $24r$84, $24r$85, $24r$86, $24r$87, $24r$88, $24r$89, $24r$9, $24r$90, $24r$91, $24r$92, $24r$93, $24r$94, $24r$95, $24r$96, $24r$97, $24r$98, $24r$99, _1, _10, _11, _12, _13, _2, _3, _4, _5, _6, _7, _8, _9, _arg, _arg$1, _arg$10, _arg$100, _arg$101, _arg$102, _arg$103, _arg$104, _arg$105, _arg$106, _arg$107, _arg$108, _arg$109, _arg$11, _arg$110, _arg$111, _arg$112, _arg$113, _arg$114, _arg$115, _arg$116, _arg$117, _arg$118, _arg$119, _arg$12, _arg$120, _arg$121, _arg$122, _arg$123, _arg$124, _arg$125, _arg$126, _arg$127, _arg$128, _arg$129, _arg$13, _arg$130, _arg$131, _arg$132, _arg$133, _arg$134, _arg$135, _arg$136, _arg$137, _arg$138, _arg$139, _arg$14, _arg$140, _arg$141, _arg$142, _arg$143, _arg$144, _arg$145, _arg$146, _arg$147, _arg$148, _arg$149, _arg$15, _arg$150, _arg$151, _arg$152, _arg$153, _arg$154, _arg$155, _arg$156, _arg$157, _arg$158, _arg$159, _arg$16, _arg$160, _arg$161, _arg$162, _arg$163, _arg$164, _arg$165, _arg$166, _arg$167, _arg$168, _arg$169, _arg$17, _arg$170, _arg$171, _arg$172, _arg$173, _arg$174, _arg$175, _arg$176, _arg$177, _arg$178, _arg$179, _arg$18, _arg$180, _arg$181, _arg$182, _arg$183, _arg$184, _arg$185, _arg$186, _arg$187, _arg$188, _arg$189, _arg$19, _arg$190, _arg$191, _arg$192, _arg$193, _arg$194, _arg$195, _arg$196, _arg$197, _arg$198, _arg$199, _arg$2, _arg$20, _arg$200, _arg$201, _arg$202, _arg$203, _arg$204, _arg$205, _arg$206, _arg$207, _arg$208, _arg$209, _arg$21, _arg$210, _arg$211, _arg$212, _arg$213, _arg$214, _arg$215, _arg$216, _arg$217, _arg$218, _arg$219, _arg$22, _arg$220, _arg$221, _arg$222, _arg$223, _arg$224, _arg$225, _arg$226, _arg$227, _arg$228, _arg$229, _arg$23, _arg$230, _arg$231, _arg$232, _arg$24, _arg$25, _arg$26, _arg$27, _arg$28, _arg$29, _arg$3, _arg$30, _arg$31, _arg$32, _arg$33, _arg$34, _arg$35, _arg$36, _arg$37, _arg$38, _arg$39, _arg$4, _arg$40, _arg$41, _arg$42, _arg$43, _arg$44, _arg$45, _arg$46, _arg$47, _arg$48, _arg$49, _arg$5, _arg$50, _arg$51, _arg$52, _arg$53, _arg$54, _arg$55, _arg$56, _arg$57, _arg$58, _arg$59, _arg$6, _arg$60, _arg$61, _arg$62, _arg$63, _arg$64, _arg$65, _arg$66, _arg$67, _arg$68, _arg$69, _arg$7, _arg$70, _arg$71, _arg$72, _arg$73, _arg$74, _arg$75, _arg$76, _arg$77, _arg$78, _arg$79, _arg$8, _arg$80, _arg$81, _arg$82, _arg$83, _arg$84, _arg$85, _arg$86, _arg$87, _arg$88, _arg$89, _arg$9, _arg$90, _arg$91, _arg$92, _arg$93, _arg$94, _arg$95, _arg$96, _arg$97, _arg$98, _arg$99, _entry, _entry$1, _entry$10, _entry$11, _entry$12, _entry$13, _entry$2, _entry$3, _entry$4, _entry$5, _entry$6, _entry$7, _entry$8, _entry$9, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _key, _key$1, _key$2, _keys, _r$1, _r$10, _r$100, _r$101, _r$102, _r$103, _r$104, _r$105, _r$106, _r$107, _r$108, _r$109, _r$11, _r$110, _r$111, _r$112, _r$113, _r$114, _r$115, _r$116, _r$117, _r$118, _r$119, _r$12, _r$120, _r$121, _r$122, _r$123, _r$124, _r$125, _r$126, _r$127, _r$128, _r$129, _r$13, _r$130, _r$131, _r$132, _r$133, _r$134, _r$135, _r$136, _r$137, _r$138, _r$139, _r$14, _r$140, _r$141, _r$142, _r$143, _r$144, _r$145, _r$146, _r$147, _r$148, _r$149, _r$15, _r$150, _r$151, _r$152, _r$153, _r$154, _r$155, _r$156, _r$157, _r$158, _r$159, _r$16, _r$160, _r$161, _r$162, _r$163, _r$164, _r$165, _r$166, _r$167, _r$168, _r$169, _r$17, _r$170, _r$171, _r$172, _r$173, _r$174, _r$175, _r$176, _r$177, _r$178, _r$179, _r$18, _r$180, _r$181, _r$182, _r$183, _r$184, _r$185, _r$186, _r$187, _r$188, _r$189, _r$19, _r$190, _r$191, _r$192, _r$193, _r$194, _r$195, _r$196, _r$197, _r$198, _r$199, _r$2, _r$20, _r$200, _r$201, _r$202, _r$203, _r$204, _r$205, _r$206, _r$207, _r$208, _r$209, _r$21, _r$210, _r$211, _r$212, _r$213, _r$214, _r$215, _r$216, _r$217, _r$218, _r$219, _r$22, _r$220, _r$221, _r$222, _r$223, _r$224, _r$225, _r$226, _r$227, _r$228, _r$229, _r$23, _r$230, _r$231, _r$232, _r$233, _r$234, _r$235, _r$236, _r$237, _r$238, _r$239, _r$24, _r$240, _r$241, _r$242, _r$243, _r$244, _r$245, _r$246, _r$247, _r$248, _r$249, _r$25, _r$250, _r$251, _r$252, _r$253, _r$254, _r$255, _r$256, _r$257, _r$258, _r$259, _r$26, _r$260, _r$261, _r$262, _r$263, _r$264, _r$265, _r$266, _r$267, _r$268, _r$269, _r$27, _r$270, _r$271, _r$272, _r$273, _r$274, _r$275, _r$276, _r$277, _r$278, _r$279, _r$28, _r$280, _r$281, _r$282, _r$283, _r$284, _r$285, _r$286, _r$287, _r$288, _r$289, _r$29, _r$290, _r$291, _r$292, _r$293, _r$294, _r$295, _r$296, _r$297, _r$298, _r$299, _r$3, _r$30, _r$300, _r$301, _r$302, _r$303, _r$304, _r$305, _r$306, _r$307, _r$308, _r$309, _r$31, _r$310, _r$311, _r$312, _r$313, _r$314, _r$315, _r$316, _r$317, _r$318, _r$319, _r$32, _r$320, _r$321, _r$322, _r$323, _r$324, _r$325, _r$326, _r$327, _r$328, _r$329, _r$33, _r$330, _r$331, _r$332, _r$333, _r$334, _r$335, _r$336, _r$337, _r$338, _r$339, _r$34, _r$340, _r$341, _r$342, _r$343, _r$344, _r$345, _r$346, _r$347, _r$348, _r$349, _r$35, _r$350, _r$351, _r$352, _r$353, _r$354, _r$355, _r$356, _r$357, _r$358, _r$359, _r$36, _r$360, _r$361, _r$362, _r$363, _r$364, _r$365, _r$366, _r$367, _r$368, _r$369, _r$37, _r$370, _r$371, _r$372, _r$373, _r$374, _r$375, _r$376, _r$377, _r$378, _r$379, _r$38, _r$380, _r$381, _r$382, _r$383, _r$384, _r$385, _r$386, _r$387, _r$388, _r$389, _r$39, _r$390, _r$391, _r$392, _r$393, _r$394, _r$395, _r$396, _r$397, _r$398, _r$399, _r$4, _r$40, _r$400, _r$401, _r$402, _r$403, _r$404, _r$405, _r$406, _r$407, _r$408, _r$409, _r$41, _r$410, _r$411, _r$412, _r$413, _r$414, _r$415, _r$416, _r$417, _r$418, _r$419, _r$42, _r$420, _r$421, _r$422, _r$423, _r$424, _r$425, _r$426, _r$427, _r$428, _r$429, _r$43, _r$430, _r$431, _r$432, _r$433, _r$434, _r$435, _r$436, _r$437, _r$438, _r$439, _r$44, _r$440, _r$441, _r$442, _r$443, _r$444, _r$445, _r$446, _r$447, _r$448, _r$449, _r$45, _r$450, _r$451, _r$452, _r$453, _r$46, _r$47, _r$48, _r$49, _r$5, _r$50, _r$51, _r$52, _r$53, _r$54, _r$55, _r$56, _r$57, _r$58, _r$59, _r$6, _r$60, _r$61, _r$62, _r$63, _r$64, _r$65, _r$66, _r$67, _r$68, _r$69, _r$7, _r$70, _r$71, _r$72, _r$73, _r$74, _r$75, _r$76, _r$77, _r$78, _r$79, _r$8, _r$80, _r$81, _r$82, _r$83, _r$84, _r$85, _r$86, _r$87, _r$88, _r$89, _r$9, _r$90, _r$91, _r$92, _r$93, _r$94, _r$95, _r$96, _r$97, _r$98, _r$99, _ref, _ref$1, _ref$10, _ref$11, _ref$12, _ref$13, _ref$14, _ref$15, _ref$16, _ref$17, _ref$18, _ref$19, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _ref$9, _size, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$2, _tuple$20, _tuple$21, _tuple$22, _tuple$23, _tuple$24, _tuple$25, _tuple$26, _tuple$27, _tuple$28, _tuple$29, _tuple$3, _tuple$30, _tuple$31, _tuple$32, _tuple$33, _tuple$34, _tuple$35, _tuple$36, _tuple$37, _tuple$38, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, _v$2, _v$3, b, b$1, b$2, basic, basic$1, basic$2, c1, c2, call, call$1, collectIndexedElements, d, d$1, d$2, declaredFuncRecv, e, e$1, e$10, e$11, e$12, e$13, e$14, e$15, e$16, e$2, e$3, e$4, e$5, e$6, e$7, e$8, e$9, elemType, element, element$1, element$2, elements, elements$1, entries, expr, exprType, exprType$1, externalizeArgs, externalizeExpr, f, f$1, f$2, f$3, fc, fields, fields$1, fun, globalRef, i, i$1, i$2, i$3, i$4, id, id$1, id$2, innerTyp, inst, isBasic, isBasic$1, isCall, isCall$1, isInterface, isKeyValue, isPointer, isTuple, isTuple$1, isTuple$2, isUnary, j, jsTag, jsTag$1, key, kve, kve$1, list, methodName$1, name, name$1, names, newSel, o, o$1, o$2, o$3, o$4, o$5, o$6, obj, obj$1, obj$2, obj$3, obj$4, objVar, objVar$1, ok, ok$1, ok$10, ok$11, ok$12, ok$13, ok$14, ok$15, ok$16, ok$17, ok$18, ok$19, ok$2, ok$20, ok$21, ok$3, ok$4, ok$5, ok$6, ok$7, ok$8, ok$9, op, opIsStructOrArray, pattern, pattern$1, pattern$2, plainFun, ptrType$75, r, recv, resultVar, resultVar$1, rewritten, sel, sel$1, sel$2, shift, sig, skipCase, skipCase$1, slice, t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$16, t$17, t$18, t$19, t$2, t$20, t$21, t$22, t$23, t$3, t$4, t$5, t$6, t$7, t$8, t$9, t2, typeCast, u, u$1, u$2, u$3, u$4, u$5, u$6, u$7, u$8, unary, v, value, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$25, x$26, x$27, x$28, x$29, x$3, x$30, x$31, x$32, x$33, x$34, x$35, x$36, x$37, x$38, x$39, x$4, x$40, x$41, x$42, x$43, x$44, x$45, x$46, x$47, x$5, x$6, x$7, x$8, x$9, y, zero, $s, $r, $c} = $restore(this, {expr}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: e = [e]; externalizeExpr = [externalizeExpr]; @@ -339702,1147 +342170,1210 @@ $packages["github.com/gopherjs/gopherjs/compiler"] = (function() { $24r$18 = _r$81; $s = 182; case 182: return $24r$18; /* } */ case 180: + opIsStructOrArray = false; _r$82 = t$5.Underlying(); /* */ $s = 183; case 183: if($c) { $c = false; _r$82 = _r$82.$blk(); } if (_r$82 && _r$82.$blk !== undefined) { break s; } _ref$9 = _r$82; /* */ if ($assertType(_ref$9, ptrType$4, true)[1] || $assertType(_ref$9, ptrType$7, true)[1]) { $s = 184; continue; } /* */ $s = 185; continue; /* if ($assertType(_ref$9, ptrType$4, true)[1] || $assertType(_ref$9, ptrType$7, true)[1]) { */ case 184: - _r$83 = fc[0].translateExpr(e$4.X); /* */ $s = 186; case 186: if($c) { $c = false; _r$83 = _r$83.$blk(); } if (_r$83 && _r$83.$blk !== undefined) { break s; } - $24r$19 = _r$83; - $s = 187; case 187: return $24r$19; + opIsStructOrArray = true; /* } */ case 185: elemType = $assertType(exprType, ptrType$3).Elem(); _ref$10 = astutil.RemoveParens(e$4.X); - /* */ if ($assertType(_ref$10, ptrType$55, true)[1]) { $s = 188; continue; } - /* */ if ($assertType(_ref$10, ptrType$12, true)[1]) { $s = 189; continue; } - /* */ if ($assertType(_ref$10, ptrType$23, true)[1]) { $s = 190; continue; } - /* */ if ($assertType(_ref$10, ptrType$54, true)[1]) { $s = 191; continue; } - /* */ if ($assertType(_ref$10, ptrType$56, true)[1]) { $s = 192; continue; } - /* */ $s = 193; continue; - /* if ($assertType(_ref$10, ptrType$55, true)[1]) { */ case 188: + /* */ if ($assertType(_ref$10, ptrType$55, true)[1]) { $s = 186; continue; } + /* */ if ($assertType(_ref$10, ptrType$12, true)[1]) { $s = 187; continue; } + /* */ if ($assertType(_ref$10, ptrType$23, true)[1]) { $s = 188; continue; } + /* */ if ($assertType(_ref$10, ptrType$54, true)[1]) { $s = 189; continue; } + /* */ if ($assertType(_ref$10, ptrType$56, true)[1]) { $s = 190; continue; } + /* */ $s = 191; continue; + /* if ($assertType(_ref$10, ptrType$55, true)[1]) { */ case 186: x$4 = _ref$10.$val; + /* */ if (opIsStructOrArray) { $s = 193; continue; } + /* */ $s = 194; continue; + /* if (opIsStructOrArray) { */ case 193: + _r$83 = fc[0].translateExpr(e$4.X); /* */ $s = 195; case 195: if($c) { $c = false; _r$83 = _r$83.$blk(); } if (_r$83 && _r$83.$blk !== undefined) { break s; } + $24r$19 = _r$83; + $s = 196; case 196: return $24r$19; + /* } */ case 194: _arg$26 = x$4; - _r$84 = fc[0].typeOf(e$4); /* */ $s = 195; case 195: if($c) { $c = false; _r$84 = _r$84.$blk(); } if (_r$84 && _r$84.$blk !== undefined) { break s; } - _r$85 = fc[0].typeName(_r$84); /* */ $s = 196; case 196: if($c) { $c = false; _r$85 = _r$85.$blk(); } if (_r$85 && _r$85.$blk !== undefined) { break s; } + _r$84 = fc[0].typeOf(e$4); /* */ $s = 197; case 197: if($c) { $c = false; _r$84 = _r$84.$blk(); } if (_r$84 && _r$84.$blk !== undefined) { break s; } + _r$85 = fc[0].typeName(_r$84); /* */ $s = 198; case 198: if($c) { $c = false; _r$85 = _r$85.$blk(); } if (_r$85 && _r$85.$blk !== undefined) { break s; } _arg$27 = new $String(_r$85); - _r$86 = fc[0].formatExpr("$newDataPointer(%e, %s)", new sliceType([_arg$26, _arg$27])); /* */ $s = 197; case 197: if($c) { $c = false; _r$86 = _r$86.$blk(); } if (_r$86 && _r$86.$blk !== undefined) { break s; } + _r$86 = fc[0].formatExpr("$newDataPointer(%e, %s)", new sliceType([_arg$26, _arg$27])); /* */ $s = 199; case 199: if($c) { $c = false; _r$86 = _r$86.$blk(); } if (_r$86 && _r$86.$blk !== undefined) { break s; } $24r$20 = _r$86; - $s = 198; case 198: return $24r$20; - /* } else if ($assertType(_ref$10, ptrType$12, true)[1]) { */ case 189: + $s = 200; case 200: return $24r$20; + /* } else if ($assertType(_ref$10, ptrType$12, true)[1]) { */ case 187: x$5 = _ref$10.$val; + /* */ if (opIsStructOrArray) { $s = 201; continue; } + /* */ $s = 202; continue; + /* if (opIsStructOrArray) { */ case 201: + _r$87 = fc[0].translateExpr(e$4.X); /* */ $s = 203; case 203: if($c) { $c = false; _r$87 = _r$87.$blk(); } if (_r$87 && _r$87.$blk !== undefined) { break s; } + $24r$21 = _r$87; + $s = 204; case 204: return $24r$21; + /* } */ case 202: obj$1 = $assertType((_entry$2 = $mapIndex(fc[0].pkgCtx.Info.Info.Uses,ptrType$12.keyFor(x$5)), _entry$2 !== undefined ? _entry$2.v : $ifaceNil), ptrType$16); - /* */ if ((_entry$3 = $mapIndex(fc[0].pkgCtx.escapingVars,ptrType$16.keyFor(obj$1)), _entry$3 !== undefined ? _entry$3.v : false)) { $s = 199; continue; } - /* */ $s = 200; continue; - /* if ((_entry$3 = $mapIndex(fc[0].pkgCtx.escapingVars,ptrType$16.keyFor(obj$1)), _entry$3 !== undefined ? _entry$3.v : false)) { */ case 199: + /* */ if ((_entry$3 = $mapIndex(fc[0].pkgCtx.escapingVars,ptrType$16.keyFor(obj$1)), _entry$3 !== undefined ? _entry$3.v : false)) { $s = 205; continue; } + /* */ $s = 206; continue; + /* if ((_entry$3 = $mapIndex(fc[0].pkgCtx.escapingVars,ptrType$16.keyFor(obj$1)), _entry$3 !== undefined ? _entry$3.v : false)) { */ case 205: _tuple$10 = fc[0].assignedObjectName(obj$1); name$1 = _tuple$10[0]; ok$5 = _tuple$10[1]; - /* */ if (!ok$5) { $s = 201; continue; } - /* */ $s = 202; continue; - /* if (!ok$5) { */ case 201: - _r$87 = fmt.Errorf("escaping variable %s hasn't been assigned a JS name", new sliceType([obj$1])); /* */ $s = 203; case 203: if($c) { $c = false; _r$87 = _r$87.$blk(); } if (_r$87 && _r$87.$blk !== undefined) { break s; } - $panic(_r$87); - /* } */ case 202: + /* */ if (!ok$5) { $s = 207; continue; } + /* */ $s = 208; continue; + /* if (!ok$5) { */ case 207: + _r$88 = fmt.Errorf("escaping variable %s hasn't been assigned a JS name", new sliceType([obj$1])); /* */ $s = 209; case 209: if($c) { $c = false; _r$88 = _r$88.$blk(); } if (_r$88 && _r$88.$blk !== undefined) { break s; } + $panic(_r$88); + /* } */ case 208: _arg$28 = new $String(name$1); - _r$88 = fc[0].typeName(exprType); /* */ $s = 204; case 204: if($c) { $c = false; _r$88 = _r$88.$blk(); } if (_r$88 && _r$88.$blk !== undefined) { break s; } - _arg$29 = new $String(_r$88); - _r$89 = fc[0].formatExpr("(%1s.$ptr || (%1s.$ptr = new %2s(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, %1s)))", new sliceType([_arg$28, _arg$29])); /* */ $s = 205; case 205: if($c) { $c = false; _r$89 = _r$89.$blk(); } if (_r$89 && _r$89.$blk !== undefined) { break s; } - $24r$21 = _r$89; - $s = 206; case 206: return $24r$21; - /* } */ case 200: - _r$90 = fc[0].varPtrName(obj$1); /* */ $s = 207; case 207: if($c) { $c = false; _r$90 = _r$90.$blk(); } if (_r$90 && _r$90.$blk !== undefined) { break s; } - _arg$30 = new $String(_r$90); - _r$91 = fc[0].typeName(exprType); /* */ $s = 208; case 208: if($c) { $c = false; _r$91 = _r$91.$blk(); } if (_r$91 && _r$91.$blk !== undefined) { break s; } - _arg$31 = new $String(_r$91); - _r$92 = fc[0].objectName(obj$1); /* */ $s = 209; case 209: if($c) { $c = false; _r$92 = _r$92.$blk(); } if (_r$92 && _r$92.$blk !== undefined) { break s; } - _arg$32 = new $String(_r$92); + _r$89 = fc[0].typeName(exprType); /* */ $s = 210; case 210: if($c) { $c = false; _r$89 = _r$89.$blk(); } if (_r$89 && _r$89.$blk !== undefined) { break s; } + _arg$29 = new $String(_r$89); + _r$90 = fc[0].formatExpr("(%1s.$ptr || (%1s.$ptr = new %2s(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, %1s)))", new sliceType([_arg$28, _arg$29])); /* */ $s = 211; case 211: if($c) { $c = false; _r$90 = _r$90.$blk(); } if (_r$90 && _r$90.$blk !== undefined) { break s; } + $24r$22 = _r$90; + $s = 212; case 212: return $24r$22; + /* } */ case 206: + _r$91 = fc[0].varPtrName(obj$1); /* */ $s = 213; case 213: if($c) { $c = false; _r$91 = _r$91.$blk(); } if (_r$91 && _r$91.$blk !== undefined) { break s; } + _arg$30 = new $String(_r$91); + _r$92 = fc[0].typeName(exprType); /* */ $s = 214; case 214: if($c) { $c = false; _r$92 = _r$92.$blk(); } if (_r$92 && _r$92.$blk !== undefined) { break s; } + _arg$31 = new $String(_r$92); + _r$93 = fc[0].objectName(obj$1); /* */ $s = 215; case 215: if($c) { $c = false; _r$93 = _r$93.$blk(); } if (_r$93 && _r$93.$blk !== undefined) { break s; } + _arg$32 = new $String(_r$93); _arg$33 = x$5; - _r$93 = fc[0].newIdent("$v", elemType); /* */ $s = 210; case 210: if($c) { $c = false; _r$93 = _r$93.$blk(); } if (_r$93 && _r$93.$blk !== undefined) { break s; } - _arg$34 = _r$93; - _r$94 = fc[0].translateAssign(_arg$33, _arg$34, false); /* */ $s = 211; case 211: if($c) { $c = false; _r$94 = _r$94.$blk(); } if (_r$94 && _r$94.$blk !== undefined) { break s; } - _arg$35 = new $String(_r$94); - _r$95 = fc[0].formatExpr("(%1s || (%1s = new %2s(function() { return %3s; }, function($v) { %4s })))", new sliceType([_arg$30, _arg$31, _arg$32, _arg$35])); /* */ $s = 212; case 212: if($c) { $c = false; _r$95 = _r$95.$blk(); } if (_r$95 && _r$95.$blk !== undefined) { break s; } - $24r$22 = _r$95; - $s = 213; case 213: return $24r$22; - /* } else if ($assertType(_ref$10, ptrType$23, true)[1]) { */ case 190: + _r$94 = fc[0].newIdent("$v", elemType); /* */ $s = 216; case 216: if($c) { $c = false; _r$94 = _r$94.$blk(); } if (_r$94 && _r$94.$blk !== undefined) { break s; } + _arg$34 = _r$94; + _r$95 = fc[0].translateAssign(_arg$33, _arg$34, false); /* */ $s = 217; case 217: if($c) { $c = false; _r$95 = _r$95.$blk(); } if (_r$95 && _r$95.$blk !== undefined) { break s; } + _arg$35 = new $String(_r$95); + _r$96 = fc[0].formatExpr("(%1s || (%1s = new %2s(function() { return %3s; }, function($v) { %4s })))", new sliceType([_arg$30, _arg$31, _arg$32, _arg$35])); /* */ $s = 218; case 218: if($c) { $c = false; _r$96 = _r$96.$blk(); } if (_r$96 && _r$96.$blk !== undefined) { break s; } + $24r$23 = _r$96; + $s = 219; case 219: return $24r$23; + /* } else if ($assertType(_ref$10, ptrType$23, true)[1]) { */ case 188: x$6 = _ref$10.$val; - _r$96 = fc[0].selectionOf(x$6); /* */ $s = 214; case 214: if($c) { $c = false; _r$96 = _r$96.$blk(); } if (_r$96 && _r$96.$blk !== undefined) { break s; } - _tuple$11 = _r$96; + /* */ if (opIsStructOrArray) { $s = 220; continue; } + /* */ $s = 221; continue; + /* if (opIsStructOrArray) { */ case 220: + _r$97 = fc[0].translateExpr(e$4.X); /* */ $s = 222; case 222: if($c) { $c = false; _r$97 = _r$97.$blk(); } if (_r$97 && _r$97.$blk !== undefined) { break s; } + $24r$24 = _r$97; + $s = 223; case 223: return $24r$24; + /* } */ case 221: + _r$98 = fc[0].selectionOf(x$6); /* */ $s = 224; case 224: if($c) { $c = false; _r$98 = _r$98.$blk(); } if (_r$98 && _r$98.$blk !== undefined) { break s; } + _tuple$11 = _r$98; sel = _tuple$11[0]; ok$6 = _tuple$11[1]; - /* */ if (!ok$6) { $s = 215; continue; } - /* */ $s = 216; continue; - /* if (!ok$6) { */ case 215: + /* */ if (!ok$6) { $s = 225; continue; } + /* */ $s = 226; continue; + /* if (!ok$6) { */ case 225: obj$2 = $assertType((_entry$4 = $mapIndex(fc[0].pkgCtx.Info.Info.Uses,ptrType$12.keyFor(x$6.Sel)), _entry$4 !== undefined ? _entry$4.v : $ifaceNil), ptrType$16); - _r$97 = fc[0].varPtrName(obj$2); /* */ $s = 217; case 217: if($c) { $c = false; _r$97 = _r$97.$blk(); } if (_r$97 && _r$97.$blk !== undefined) { break s; } - _arg$36 = new $String(_r$97); - _r$98 = fc[0].typeName(exprType); /* */ $s = 218; case 218: if($c) { $c = false; _r$98 = _r$98.$blk(); } if (_r$98 && _r$98.$blk !== undefined) { break s; } - _arg$37 = new $String(_r$98); - _r$99 = fc[0].objectName(obj$2); /* */ $s = 219; case 219: if($c) { $c = false; _r$99 = _r$99.$blk(); } if (_r$99 && _r$99.$blk !== undefined) { break s; } - _arg$38 = new $String(_r$99); + _r$99 = fc[0].varPtrName(obj$2); /* */ $s = 227; case 227: if($c) { $c = false; _r$99 = _r$99.$blk(); } if (_r$99 && _r$99.$blk !== undefined) { break s; } + _arg$36 = new $String(_r$99); + _r$100 = fc[0].typeName(exprType); /* */ $s = 228; case 228: if($c) { $c = false; _r$100 = _r$100.$blk(); } if (_r$100 && _r$100.$blk !== undefined) { break s; } + _arg$37 = new $String(_r$100); + _r$101 = fc[0].objectName(obj$2); /* */ $s = 229; case 229: if($c) { $c = false; _r$101 = _r$101.$blk(); } if (_r$101 && _r$101.$blk !== undefined) { break s; } + _arg$38 = new $String(_r$101); _arg$39 = x$6; - _r$100 = fc[0].newIdent("$v", elemType); /* */ $s = 220; case 220: if($c) { $c = false; _r$100 = _r$100.$blk(); } if (_r$100 && _r$100.$blk !== undefined) { break s; } - _arg$40 = _r$100; - _r$101 = fc[0].translateAssign(_arg$39, _arg$40, false); /* */ $s = 221; case 221: if($c) { $c = false; _r$101 = _r$101.$blk(); } if (_r$101 && _r$101.$blk !== undefined) { break s; } - _arg$41 = new $String(_r$101); - _r$102 = fc[0].formatExpr("(%1s || (%1s = new %2s(function() { return %3s; }, function($v) { %4s })))", new sliceType([_arg$36, _arg$37, _arg$38, _arg$41])); /* */ $s = 222; case 222: if($c) { $c = false; _r$102 = _r$102.$blk(); } if (_r$102 && _r$102.$blk !== undefined) { break s; } - $24r$23 = _r$102; - $s = 223; case 223: return $24r$23; - /* } */ case 216: - _r$103 = fc[0].typeOf(x$6.X); /* */ $s = 224; case 224: if($c) { $c = false; _r$103 = _r$103.$blk(); } if (_r$103 && _r$103.$blk !== undefined) { break s; } - _arg$42 = _r$103; - _r$104 = fc[0].newIdent("this.$target", _arg$42); /* */ $s = 225; case 225: if($c) { $c = false; _r$104 = _r$104.$blk(); } if (_r$104 && _r$104.$blk !== undefined) { break s; } - newSel = new ast.SelectorExpr.ptr(_r$104, x$6.Sel); + _r$102 = fc[0].newIdent("$v", elemType); /* */ $s = 230; case 230: if($c) { $c = false; _r$102 = _r$102.$blk(); } if (_r$102 && _r$102.$blk !== undefined) { break s; } + _arg$40 = _r$102; + _r$103 = fc[0].translateAssign(_arg$39, _arg$40, false); /* */ $s = 231; case 231: if($c) { $c = false; _r$103 = _r$103.$blk(); } if (_r$103 && _r$103.$blk !== undefined) { break s; } + _arg$41 = new $String(_r$103); + _r$104 = fc[0].formatExpr("(%1s || (%1s = new %2s(function() { return %3s; }, function($v) { %4s })))", new sliceType([_arg$36, _arg$37, _arg$38, _arg$41])); /* */ $s = 232; case 232: if($c) { $c = false; _r$104 = _r$104.$blk(); } if (_r$104 && _r$104.$blk !== undefined) { break s; } + $24r$25 = _r$104; + $s = 233; case 233: return $24r$25; + /* } */ case 226: + _r$105 = fc[0].typeOf(x$6.X); /* */ $s = 234; case 234: if($c) { $c = false; _r$105 = _r$105.$blk(); } if (_r$105 && _r$105.$blk !== undefined) { break s; } + _arg$42 = _r$105; + _r$106 = fc[0].newIdent("this.$target", _arg$42); /* */ $s = 235; case 235: if($c) { $c = false; _r$106 = _r$106.$blk(); } if (_r$106 && _r$106.$blk !== undefined) { break s; } + newSel = new ast.SelectorExpr.ptr(_r$106, x$6.Sel); fc[0].setType(newSel, exprType); _key$1 = newSel; (fc[0].pkgCtx.additionalSelections || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$23.keyFor(_key$1), { k: _key$1, v: sel }); - _arg$43 = x$6.X; - _arg$44 = new $String(x$6.Sel.Name); - _r$105 = fc[0].typeName(exprType); /* */ $s = 226; case 226: if($c) { $c = false; _r$105 = _r$105.$blk(); } if (_r$105 && _r$105.$blk !== undefined) { break s; } - _arg$45 = new $String(_r$105); - _arg$46 = newSel; - _arg$47 = newSel; - _r$106 = fc[0].newIdent("$v", exprType); /* */ $s = 227; case 227: if($c) { $c = false; _r$106 = _r$106.$blk(); } if (_r$106 && _r$106.$blk !== undefined) { break s; } - _arg$48 = _r$106; - _r$107 = fc[0].translateAssign(_arg$47, _arg$48, false); /* */ $s = 228; case 228: if($c) { $c = false; _r$107 = _r$107.$blk(); } if (_r$107 && _r$107.$blk !== undefined) { break s; } - _arg$49 = new $String(_r$107); - _r$108 = fc[0].formatExpr("(%1e.$ptr_%2s || (%1e.$ptr_%2s = new %3s(function() { return %4e; }, function($v) { %5s }, %1e)))", new sliceType([_arg$43, _arg$44, _arg$45, _arg$46, _arg$49])); /* */ $s = 229; case 229: if($c) { $c = false; _r$108 = _r$108.$blk(); } if (_r$108 && _r$108.$blk !== undefined) { break s; } - $24r$24 = _r$108; - $s = 230; case 230: return $24r$24; - /* } else if ($assertType(_ref$10, ptrType$54, true)[1]) { */ case 191: - x$7 = _ref$10.$val; - _r$109 = fc[0].typeOf(x$7.X); /* */ $s = 231; case 231: if($c) { $c = false; _r$109 = _r$109.$blk(); } if (_r$109 && _r$109.$blk !== undefined) { break s; } - _r$110 = _r$109.Underlying(); /* */ $s = 232; case 232: if($c) { $c = false; _r$110 = _r$110.$blk(); } if (_r$110 && _r$110.$blk !== undefined) { break s; } - _tuple$12 = $assertType(_r$110, ptrType$11, true); + _r$107 = fc[0].typeOf(x$6.X); /* */ $s = 236; case 236: if($c) { $c = false; _r$107 = _r$107.$blk(); } if (_r$107 && _r$107.$blk !== undefined) { break s; } + _r$108 = _r$107.Underlying(); /* */ $s = 237; case 237: if($c) { $c = false; _r$108 = _r$108.$blk(); } if (_r$108 && _r$108.$blk !== undefined) { break s; } + _tuple$12 = $assertType(_r$108, ptrType$3, true); ok$7 = _tuple$12[1]; - /* */ if (ok$7) { $s = 233; continue; } - /* */ $s = 234; continue; - /* if (ok$7) { */ case 233: - _arg$50 = x$7.X; - _arg$51 = x$7.Index; - _r$111 = fc[0].typeName(exprType); /* */ $s = 235; case 235: if($c) { $c = false; _r$111 = _r$111.$blk(); } if (_r$111 && _r$111.$blk !== undefined) { break s; } - _arg$52 = new $String(_r$111); - _r$112 = fc[0].formatExpr("$indexPtr(%1e.$array, %1e.$offset + %2e, %3s)", new sliceType([_arg$50, _arg$51, _arg$52])); /* */ $s = 236; case 236: if($c) { $c = false; _r$112 = _r$112.$blk(); } if (_r$112 && _r$112.$blk !== undefined) { break s; } - $24r$25 = _r$112; - $s = 237; case 237: return $24r$25; - /* } */ case 234: - _arg$53 = x$7.X; - _arg$54 = x$7.Index; - _r$113 = fc[0].typeName(exprType); /* */ $s = 238; case 238: if($c) { $c = false; _r$113 = _r$113.$blk(); } if (_r$113 && _r$113.$blk !== undefined) { break s; } - _arg$55 = new $String(_r$113); - _r$114 = fc[0].formatExpr("$indexPtr(%e, %e, %s)", new sliceType([_arg$53, _arg$54, _arg$55])); /* */ $s = 239; case 239: if($c) { $c = false; _r$114 = _r$114.$blk(); } if (_r$114 && _r$114.$blk !== undefined) { break s; } - $24r$26 = _r$114; - $s = 240; case 240: return $24r$26; - /* } else if ($assertType(_ref$10, ptrType$56, true)[1]) { */ case 192: + /* */ if (ok$7) { $s = 238; continue; } + /* */ $s = 239; continue; + /* if (ok$7) { */ case 238: + _arg$43 = x$6.X; + _r$109 = fc[0].typeOf(x$6.X); /* */ $s = 240; case 240: if($c) { $c = false; _r$109 = _r$109.$blk(); } if (_r$109 && _r$109.$blk !== undefined) { break s; } + _r$110 = fc[0].typeName(_r$109); /* */ $s = 241; case 241: if($c) { $c = false; _r$110 = _r$110.$blk(); } if (_r$110 && _r$110.$blk !== undefined) { break s; } + _arg$44 = new $String(_r$110); + _arg$45 = new $String(x$6.Sel.Name); + _r$111 = fc[0].typeName(exprType); /* */ $s = 242; case 242: if($c) { $c = false; _r$111 = _r$111.$blk(); } if (_r$111 && _r$111.$blk !== undefined) { break s; } + _arg$46 = new $String(_r$111); + _arg$47 = newSel; + _arg$48 = newSel; + _r$112 = fc[0].newIdent("$v", exprType); /* */ $s = 243; case 243: if($c) { $c = false; _r$112 = _r$112.$blk(); } if (_r$112 && _r$112.$blk !== undefined) { break s; } + _arg$49 = _r$112; + _r$113 = fc[0].translateAssign(_arg$48, _arg$49, false); /* */ $s = 244; case 244: if($c) { $c = false; _r$113 = _r$113.$blk(); } if (_r$113 && _r$113.$blk !== undefined) { break s; } + _arg$50 = new $String(_r$113); + _r$114 = fc[0].formatExpr("(%1e === %2s.nil && $throwNilPointerError(), (%1e.$ptr_%3s || (%1e.$ptr_%3s = new %4s(function() { return %5e; }, function($v) { %6s }, %1e))))", new sliceType([_arg$43, _arg$44, _arg$45, _arg$46, _arg$47, _arg$50])); /* */ $s = 245; case 245: if($c) { $c = false; _r$114 = _r$114.$blk(); } if (_r$114 && _r$114.$blk !== undefined) { break s; } + $24r$26 = _r$114; + $s = 246; case 246: return $24r$26; + /* } */ case 239: + _arg$51 = x$6.X; + _arg$52 = new $String(x$6.Sel.Name); + _r$115 = fc[0].typeName(exprType); /* */ $s = 247; case 247: if($c) { $c = false; _r$115 = _r$115.$blk(); } if (_r$115 && _r$115.$blk !== undefined) { break s; } + _arg$53 = new $String(_r$115); + _arg$54 = newSel; + _arg$55 = newSel; + _r$116 = fc[0].newIdent("$v", exprType); /* */ $s = 248; case 248: if($c) { $c = false; _r$116 = _r$116.$blk(); } if (_r$116 && _r$116.$blk !== undefined) { break s; } + _arg$56 = _r$116; + _r$117 = fc[0].translateAssign(_arg$55, _arg$56, false); /* */ $s = 249; case 249: if($c) { $c = false; _r$117 = _r$117.$blk(); } if (_r$117 && _r$117.$blk !== undefined) { break s; } + _arg$57 = new $String(_r$117); + _r$118 = fc[0].formatExpr("(%1e.$ptr_%2s || (%1e.$ptr_%2s = new %3s(function() { return %4e; }, function($v) { %5s }, %1e)))", new sliceType([_arg$51, _arg$52, _arg$53, _arg$54, _arg$57])); /* */ $s = 250; case 250: if($c) { $c = false; _r$118 = _r$118.$blk(); } if (_r$118 && _r$118.$blk !== undefined) { break s; } + $24r$27 = _r$118; + $s = 251; case 251: return $24r$27; + /* } else if ($assertType(_ref$10, ptrType$54, true)[1]) { */ case 189: + x$7 = _ref$10.$val; + _r$119 = fc[0].typeOf(x$7.X); /* */ $s = 252; case 252: if($c) { $c = false; _r$119 = _r$119.$blk(); } if (_r$119 && _r$119.$blk !== undefined) { break s; } + _r$120 = _r$119.Underlying(); /* */ $s = 253; case 253: if($c) { $c = false; _r$120 = _r$120.$blk(); } if (_r$120 && _r$120.$blk !== undefined) { break s; } + _tuple$13 = $assertType(_r$120, ptrType$11, true); + ok$8 = _tuple$13[1]; + /* */ if (ok$8) { $s = 254; continue; } + /* */ $s = 255; continue; + /* if (ok$8) { */ case 254: + pattern = rangeCheck("$indexPtr(%1e.$array, %1e.$offset + %2f, %3s)", !($interfaceIsEqual((_entry$5 = $mapIndex(fc[0].pkgCtx.Info.Info.Types,ast.Expr.keyFor(x$7.Index)), _entry$5 !== undefined ? _entry$5.v : new types.TypeAndValue.ptr(0, $ifaceNil, $ifaceNil)).Value, $ifaceNil)), false); + _arg$58 = pattern; + _arg$59 = x$7.X; + _arg$60 = x$7.Index; + _r$121 = fc[0].typeName(exprType); /* */ $s = 256; case 256: if($c) { $c = false; _r$121 = _r$121.$blk(); } if (_r$121 && _r$121.$blk !== undefined) { break s; } + _arg$61 = new $String(_r$121); + _r$122 = fc[0].formatExpr(_arg$58, new sliceType([_arg$59, _arg$60, _arg$61])); /* */ $s = 257; case 257: if($c) { $c = false; _r$122 = _r$122.$blk(); } if (_r$122 && _r$122.$blk !== undefined) { break s; } + $24r$28 = _r$122; + $s = 258; case 258: return $24r$28; + /* } */ case 255: + pattern$1 = rangeCheck("$indexPtr(%1e, %2f, %3s)", !($interfaceIsEqual((_entry$6 = $mapIndex(fc[0].pkgCtx.Info.Info.Types,ast.Expr.keyFor(x$7.Index)), _entry$6 !== undefined ? _entry$6.v : new types.TypeAndValue.ptr(0, $ifaceNil, $ifaceNil)).Value, $ifaceNil)), true); + _arg$62 = pattern$1; + _arg$63 = x$7.X; + _arg$64 = x$7.Index; + _r$123 = fc[0].typeName(exprType); /* */ $s = 259; case 259: if($c) { $c = false; _r$123 = _r$123.$blk(); } if (_r$123 && _r$123.$blk !== undefined) { break s; } + _arg$65 = new $String(_r$123); + _r$124 = fc[0].formatExpr(_arg$62, new sliceType([_arg$63, _arg$64, _arg$65])); /* */ $s = 260; case 260: if($c) { $c = false; _r$124 = _r$124.$blk(); } if (_r$124 && _r$124.$blk !== undefined) { break s; } + $24r$29 = _r$124; + $s = 261; case 261: return $24r$29; + /* } else if ($assertType(_ref$10, ptrType$56, true)[1]) { */ case 190: x$8 = _ref$10.$val; - _r$115 = fc[0].translateExpr(x$8.X); /* */ $s = 241; case 241: if($c) { $c = false; _r$115 = _r$115.$blk(); } if (_r$115 && _r$115.$blk !== undefined) { break s; } - $24r$27 = _r$115; - $s = 242; case 242: return $24r$27; - /* } else { */ case 193: + _r$125 = fc[0].translateExpr(x$8.X); /* */ $s = 262; case 262: if($c) { $c = false; _r$125 = _r$125.$blk(); } if (_r$125 && _r$125.$blk !== undefined) { break s; } + $24r$30 = _r$125; + $s = 263; case 263: return $24r$30; + /* } else { */ case 191: x$9 = _ref$10; - _r$116 = fmt.Sprintf("Unhandled: %T\n", new sliceType([x$9])); /* */ $s = 243; case 243: if($c) { $c = false; _r$116 = _r$116.$blk(); } if (_r$116 && _r$116.$blk !== undefined) { break s; } - $panic(new $String(_r$116)); - /* } */ case 194: + _r$126 = fmt.Sprintf("Unhandled: %T\n", new sliceType([x$9])); /* */ $s = 264; case 264: if($c) { $c = false; _r$126 = _r$126.$blk(); } if (_r$126 && _r$126.$blk !== undefined) { break s; } + $panic(new $String(_r$126)); + /* } */ case 192: $s = 178; continue; /* } else if (_2 === (36)) { */ case 177: - _r$117 = types.NewSignatureType(ptrType$16.nil, sliceType$9.nil, sliceType$9.nil, types.NewTuple(new sliceType$8([types.NewVar(0, ptrType$47.nil, "", t$5)])), types.NewTuple(new sliceType$8([types.NewVar(0, ptrType$47.nil, "", exprType), types.NewVar(0, ptrType$47.nil, "", (x$10 = types.Typ, (1 >= x$10.$length ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + 1])))])), false); /* */ $s = 244; case 244: if($c) { $c = false; _r$117 = _r$117.$blk(); } if (_r$117 && _r$117.$blk !== undefined) { break s; } - _arg$56 = _r$117; - _r$118 = fc[0].newIdent("$recv", _arg$56); /* */ $s = 245; case 245: if($c) { $c = false; _r$118 = _r$118.$blk(); } if (_r$118 && _r$118.$blk !== undefined) { break s; } - call = new ast.CallExpr.ptr(_r$118, 0, new sliceType$3([e$4.X]), 0, 0); + _r$127 = types.NewSignatureType(ptrType$16.nil, sliceType$9.nil, sliceType$9.nil, types.NewTuple(new sliceType$8([types.NewVar(0, ptrType$47.nil, "", t$5)])), types.NewTuple(new sliceType$8([types.NewVar(0, ptrType$47.nil, "", exprType), types.NewVar(0, ptrType$47.nil, "", (x$10 = types.Typ, (1 >= x$10.$length ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + 1])))])), false); /* */ $s = 265; case 265: if($c) { $c = false; _r$127 = _r$127.$blk(); } if (_r$127 && _r$127.$blk !== undefined) { break s; } + _arg$66 = _r$127; + _r$128 = fc[0].newIdent("$recv", _arg$66); /* */ $s = 266; case 266: if($c) { $c = false; _r$128 = _r$128.$blk(); } if (_r$128 && _r$128.$blk !== undefined) { break s; } + call = new ast.CallExpr.ptr(_r$128, 0, new sliceType$3([e$4.X]), 0, 0); _key$2 = call; (fc[0].FuncInfo.Blocking || $throwRuntimeError("assignment to entry in nil map")).set(ast.Node.keyFor(_key$2), { k: _key$2, v: true }); - _tuple$13 = $assertType(exprType, ptrType$1, true); - isTuple = _tuple$13[1]; - /* */ if (isTuple) { $s = 246; continue; } - /* */ $s = 247; continue; - /* if (isTuple) { */ case 246: - _r$119 = fc[0].formatExpr("%e", new sliceType([call])); /* */ $s = 248; case 248: if($c) { $c = false; _r$119 = _r$119.$blk(); } if (_r$119 && _r$119.$blk !== undefined) { break s; } - $24r$28 = _r$119; - $s = 249; case 249: return $24r$28; - /* } */ case 247: - _r$120 = fc[0].formatExpr("%e[0]", new sliceType([call])); /* */ $s = 250; case 250: if($c) { $c = false; _r$120 = _r$120.$blk(); } if (_r$120 && _r$120.$blk !== undefined) { break s; } - $24r$29 = _r$120; - $s = 251; case 251: return $24r$29; + _tuple$14 = $assertType(exprType, ptrType$1, true); + isTuple = _tuple$14[1]; + /* */ if (isTuple) { $s = 267; continue; } + /* */ $s = 268; continue; + /* if (isTuple) { */ case 267: + _r$129 = fc[0].formatExpr("%e", new sliceType([call])); /* */ $s = 269; case 269: if($c) { $c = false; _r$129 = _r$129.$blk(); } if (_r$129 && _r$129.$blk !== undefined) { break s; } + $24r$31 = _r$129; + $s = 270; case 270: return $24r$31; + /* } */ case 268: + _r$130 = fc[0].formatExpr("%e[0]", new sliceType([call])); /* */ $s = 271; case 271: if($c) { $c = false; _r$130 = _r$130.$blk(); } if (_r$130 && _r$130.$blk !== undefined) { break s; } + $24r$32 = _r$130; + $s = 272; case 272: return $24r$32; /* } */ case 178: case 175: - _r$121 = t$5.Underlying(); /* */ $s = 252; case 252: if($c) { $c = false; _r$121 = _r$121.$blk(); } if (_r$121 && _r$121.$blk !== undefined) { break s; } - basic$1 = $assertType(_r$121, ptrType$6); + _r$131 = t$5.Underlying(); /* */ $s = 273; case 273: if($c) { $c = false; _r$131 = _r$131.$blk(); } if (_r$131 && _r$131.$blk !== undefined) { break s; } + basic$1 = $assertType(_r$131, ptrType$6); _3 = e$4.Op; - /* */ if (_3 === (12)) { $s = 254; continue; } - /* */ if (_3 === (13)) { $s = 255; continue; } - /* */ if (_3 === (19)) { $s = 256; continue; } - /* */ if (_3 === (43)) { $s = 257; continue; } - /* */ $s = 258; continue; - /* if (_3 === (12)) { */ case 254: - _r$122 = fc[0].translateExpr(e$4.X); /* */ $s = 260; case 260: if($c) { $c = false; _r$122 = _r$122.$blk(); } if (_r$122 && _r$122.$blk !== undefined) { break s; } - $24r$30 = _r$122; - $s = 261; case 261: return $24r$30; - /* } else if (_3 === (13)) { */ case 255: - /* */ if (is64Bit(basic$1)) { $s = 263; continue; } - /* */ if (isComplex(basic$1)) { $s = 264; continue; } - /* */ if (isUnsigned(basic$1)) { $s = 265; continue; } - /* */ $s = 266; continue; - /* if (is64Bit(basic$1)) { */ case 263: - _r$123 = fc[0].typeName(t$5); /* */ $s = 268; case 268: if($c) { $c = false; _r$123 = _r$123.$blk(); } if (_r$123 && _r$123.$blk !== undefined) { break s; } - _arg$57 = new $String(_r$123); - _arg$58 = e$4.X; - _r$124 = fc[0].formatExpr("new %1s(-%2h, -%2l)", new sliceType([_arg$57, _arg$58])); /* */ $s = 269; case 269: if($c) { $c = false; _r$124 = _r$124.$blk(); } if (_r$124 && _r$124.$blk !== undefined) { break s; } - $24r$31 = _r$124; - $s = 270; case 270: return $24r$31; - /* } else if (isComplex(basic$1)) { */ case 264: - _r$125 = fc[0].typeName(t$5); /* */ $s = 271; case 271: if($c) { $c = false; _r$125 = _r$125.$blk(); } if (_r$125 && _r$125.$blk !== undefined) { break s; } - _arg$59 = new $String(_r$125); - _arg$60 = e$4.X; - _r$126 = fc[0].formatExpr("new %1s(-%2r, -%2i)", new sliceType([_arg$59, _arg$60])); /* */ $s = 272; case 272: if($c) { $c = false; _r$126 = _r$126.$blk(); } if (_r$126 && _r$126.$blk !== undefined) { break s; } - $24r$32 = _r$126; - $s = 273; case 273: return $24r$32; - /* } else if (isUnsigned(basic$1)) { */ case 265: - _r$127 = fc[0].formatExpr("-%e", new sliceType([e$4.X])); /* */ $s = 274; case 274: if($c) { $c = false; _r$127 = _r$127.$blk(); } if (_r$127 && _r$127.$blk !== undefined) { break s; } - _r$128 = fc[0].fixNumber(_r$127, basic$1); /* */ $s = 275; case 275: if($c) { $c = false; _r$128 = _r$128.$blk(); } if (_r$128 && _r$128.$blk !== undefined) { break s; } - $24r$33 = _r$128; - $s = 276; case 276: return $24r$33; - /* } else { */ case 266: - _r$129 = fc[0].formatExpr("-%e", new sliceType([e$4.X])); /* */ $s = 277; case 277: if($c) { $c = false; _r$129 = _r$129.$blk(); } if (_r$129 && _r$129.$blk !== undefined) { break s; } - $24r$34 = _r$129; - $s = 278; case 278: return $24r$34; - /* } */ case 267: - case 262: - $s = 259; continue; - /* } else if (_3 === (19)) { */ case 256: - /* */ if (is64Bit(basic$1)) { $s = 279; continue; } - /* */ $s = 280; continue; - /* if (is64Bit(basic$1)) { */ case 279: - _r$130 = fc[0].typeName(t$5); /* */ $s = 281; case 281: if($c) { $c = false; _r$130 = _r$130.$blk(); } if (_r$130 && _r$130.$blk !== undefined) { break s; } - _arg$61 = new $String(_r$130); - _arg$62 = e$4.X; - _r$131 = fc[0].formatExpr("new %1s(~%2h, ~%2l >>> 0)", new sliceType([_arg$61, _arg$62])); /* */ $s = 282; case 282: if($c) { $c = false; _r$131 = _r$131.$blk(); } if (_r$131 && _r$131.$blk !== undefined) { break s; } - $24r$35 = _r$131; - $s = 283; case 283: return $24r$35; - /* } */ case 280: - _r$132 = fc[0].formatExpr("~%e", new sliceType([e$4.X])); /* */ $s = 284; case 284: if($c) { $c = false; _r$132 = _r$132.$blk(); } if (_r$132 && _r$132.$blk !== undefined) { break s; } - _r$133 = fc[0].fixNumber(_r$132, basic$1); /* */ $s = 285; case 285: if($c) { $c = false; _r$133 = _r$133.$blk(); } if (_r$133 && _r$133.$blk !== undefined) { break s; } - $24r$36 = _r$133; - $s = 286; case 286: return $24r$36; - /* } else if (_3 === (43)) { */ case 257: - _r$134 = fc[0].formatExpr("!%e", new sliceType([e$4.X])); /* */ $s = 287; case 287: if($c) { $c = false; _r$134 = _r$134.$blk(); } if (_r$134 && _r$134.$blk !== undefined) { break s; } - $24r$37 = _r$134; - $s = 288; case 288: return $24r$37; - /* } else { */ case 258: + /* */ if (_3 === (12)) { $s = 275; continue; } + /* */ if (_3 === (13)) { $s = 276; continue; } + /* */ if (_3 === (19)) { $s = 277; continue; } + /* */ if (_3 === (43)) { $s = 278; continue; } + /* */ $s = 279; continue; + /* if (_3 === (12)) { */ case 275: + _r$132 = fc[0].translateExpr(e$4.X); /* */ $s = 281; case 281: if($c) { $c = false; _r$132 = _r$132.$blk(); } if (_r$132 && _r$132.$blk !== undefined) { break s; } + $24r$33 = _r$132; + $s = 282; case 282: return $24r$33; + /* } else if (_3 === (13)) { */ case 276: + /* */ if (is64Bit(basic$1)) { $s = 284; continue; } + /* */ if (isComplex(basic$1)) { $s = 285; continue; } + /* */ if (isUnsigned(basic$1)) { $s = 286; continue; } + /* */ $s = 287; continue; + /* if (is64Bit(basic$1)) { */ case 284: + _r$133 = fc[0].typeName(t$5); /* */ $s = 289; case 289: if($c) { $c = false; _r$133 = _r$133.$blk(); } if (_r$133 && _r$133.$blk !== undefined) { break s; } + _arg$67 = new $String(_r$133); + _arg$68 = e$4.X; + _r$134 = fc[0].formatExpr("new %1s(-%2h, -%2l)", new sliceType([_arg$67, _arg$68])); /* */ $s = 290; case 290: if($c) { $c = false; _r$134 = _r$134.$blk(); } if (_r$134 && _r$134.$blk !== undefined) { break s; } + $24r$34 = _r$134; + $s = 291; case 291: return $24r$34; + /* } else if (isComplex(basic$1)) { */ case 285: + _r$135 = fc[0].typeName(t$5); /* */ $s = 292; case 292: if($c) { $c = false; _r$135 = _r$135.$blk(); } if (_r$135 && _r$135.$blk !== undefined) { break s; } + _arg$69 = new $String(_r$135); + _arg$70 = e$4.X; + _r$136 = fc[0].formatExpr("new %1s(-%2r, -%2i)", new sliceType([_arg$69, _arg$70])); /* */ $s = 293; case 293: if($c) { $c = false; _r$136 = _r$136.$blk(); } if (_r$136 && _r$136.$blk !== undefined) { break s; } + $24r$35 = _r$136; + $s = 294; case 294: return $24r$35; + /* } else if (isUnsigned(basic$1)) { */ case 286: + _r$137 = fc[0].formatExpr("-%e", new sliceType([e$4.X])); /* */ $s = 295; case 295: if($c) { $c = false; _r$137 = _r$137.$blk(); } if (_r$137 && _r$137.$blk !== undefined) { break s; } + _r$138 = fc[0].fixNumber(_r$137, basic$1); /* */ $s = 296; case 296: if($c) { $c = false; _r$138 = _r$138.$blk(); } if (_r$138 && _r$138.$blk !== undefined) { break s; } + $24r$36 = _r$138; + $s = 297; case 297: return $24r$36; + /* } else { */ case 287: + _r$139 = fc[0].formatExpr("-%e", new sliceType([e$4.X])); /* */ $s = 298; case 298: if($c) { $c = false; _r$139 = _r$139.$blk(); } if (_r$139 && _r$139.$blk !== undefined) { break s; } + $24r$37 = _r$139; + $s = 299; case 299: return $24r$37; + /* } */ case 288: + case 283: + $s = 280; continue; + /* } else if (_3 === (19)) { */ case 277: + /* */ if (is64Bit(basic$1)) { $s = 300; continue; } + /* */ $s = 301; continue; + /* if (is64Bit(basic$1)) { */ case 300: + _r$140 = fc[0].typeName(t$5); /* */ $s = 302; case 302: if($c) { $c = false; _r$140 = _r$140.$blk(); } if (_r$140 && _r$140.$blk !== undefined) { break s; } + _arg$71 = new $String(_r$140); + _arg$72 = e$4.X; + _r$141 = fc[0].formatExpr("new %1s(~%2h, ~%2l >>> 0)", new sliceType([_arg$71, _arg$72])); /* */ $s = 303; case 303: if($c) { $c = false; _r$141 = _r$141.$blk(); } if (_r$141 && _r$141.$blk !== undefined) { break s; } + $24r$38 = _r$141; + $s = 304; case 304: return $24r$38; + /* } */ case 301: + _r$142 = fc[0].formatExpr("~%e", new sliceType([e$4.X])); /* */ $s = 305; case 305: if($c) { $c = false; _r$142 = _r$142.$blk(); } if (_r$142 && _r$142.$blk !== undefined) { break s; } + _r$143 = fc[0].fixNumber(_r$142, basic$1); /* */ $s = 306; case 306: if($c) { $c = false; _r$143 = _r$143.$blk(); } if (_r$143 && _r$143.$blk !== undefined) { break s; } + $24r$39 = _r$143; + $s = 307; case 307: return $24r$39; + /* } else if (_3 === (43)) { */ case 278: + _r$144 = fc[0].formatExpr("!%e", new sliceType([e$4.X])); /* */ $s = 308; case 308: if($c) { $c = false; _r$144 = _r$144.$blk(); } if (_r$144 && _r$144.$blk !== undefined) { break s; } + $24r$40 = _r$144; + $s = 309; case 309: return $24r$40; + /* } else { */ case 279: $panic(new token.Token(e$4.Op)); - /* } */ case 259: - case 253: + /* } */ case 280: + case 274: $s = 87; continue; /* } else if ($assertType(_ref$1, ptrType$70, true)[1]) { */ case 75: e$5 = _ref$1.$val; - /* */ if (e$5.Op === 44) { $s = 289; continue; } - /* */ $s = 290; continue; - /* if (e$5.Op === 44) { */ case 289: - _r$135 = fc[0].translateExpr(new ast.BinaryExpr.ptr(e$5.X, 0, 39, e$5.Y)); /* */ $s = 291; case 291: if($c) { $c = false; _r$135 = _r$135.$blk(); } if (_r$135 && _r$135.$blk !== undefined) { break s; } - _arg$63 = _r$135; - _r$136 = fc[0].formatExpr("!(%s)", new sliceType([_arg$63])); /* */ $s = 292; case 292: if($c) { $c = false; _r$136 = _r$136.$blk(); } if (_r$136 && _r$136.$blk !== undefined) { break s; } - $24r$38 = _r$136; - $s = 293; case 293: return $24r$38; - /* } */ case 290: - _r$137 = fc[0].typeOf(e$5.X); /* */ $s = 294; case 294: if($c) { $c = false; _r$137 = _r$137.$blk(); } if (_r$137 && _r$137.$blk !== undefined) { break s; } - t$6 = _r$137; - _r$138 = fc[0].typeOf(e$5.Y); /* */ $s = 295; case 295: if($c) { $c = false; _r$138 = _r$138.$blk(); } if (_r$138 && _r$138.$blk !== undefined) { break s; } - t2 = _r$138; - _r$139 = t2.Underlying(); /* */ $s = 296; case 296: if($c) { $c = false; _r$139 = _r$139.$blk(); } if (_r$139 && _r$139.$blk !== undefined) { break s; } - _tuple$14 = $assertType(_r$139, ptrType$9, true); - isInterface = _tuple$14[1]; - if (isInterface) { _v$1 = true; $s = 299; continue s; } - _r$140 = types.Identical(t$6, (x$11 = types.Typ, (25 >= x$11.$length ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + 25]))); /* */ $s = 300; case 300: if($c) { $c = false; _r$140 = _r$140.$blk(); } if (_r$140 && _r$140.$blk !== undefined) { break s; } - _v$1 = _r$140; case 299: - /* */ if (_v$1) { $s = 297; continue; } - /* */ $s = 298; continue; - /* if (_v$1) { */ case 297: + /* */ if (e$5.Op === 44) { $s = 310; continue; } + /* */ $s = 311; continue; + /* if (e$5.Op === 44) { */ case 310: + _r$145 = fc[0].translateExpr(new ast.BinaryExpr.ptr(e$5.X, 0, 39, e$5.Y)); /* */ $s = 312; case 312: if($c) { $c = false; _r$145 = _r$145.$blk(); } if (_r$145 && _r$145.$blk !== undefined) { break s; } + _arg$73 = _r$145; + _r$146 = fc[0].formatExpr("!(%s)", new sliceType([_arg$73])); /* */ $s = 313; case 313: if($c) { $c = false; _r$146 = _r$146.$blk(); } if (_r$146 && _r$146.$blk !== undefined) { break s; } + $24r$41 = _r$146; + $s = 314; case 314: return $24r$41; + /* } */ case 311: + _r$147 = fc[0].typeOf(e$5.X); /* */ $s = 315; case 315: if($c) { $c = false; _r$147 = _r$147.$blk(); } if (_r$147 && _r$147.$blk !== undefined) { break s; } + t$6 = _r$147; + _r$148 = fc[0].typeOf(e$5.Y); /* */ $s = 316; case 316: if($c) { $c = false; _r$148 = _r$148.$blk(); } if (_r$148 && _r$148.$blk !== undefined) { break s; } + t2 = _r$148; + _r$149 = t2.Underlying(); /* */ $s = 317; case 317: if($c) { $c = false; _r$149 = _r$149.$blk(); } if (_r$149 && _r$149.$blk !== undefined) { break s; } + _tuple$15 = $assertType(_r$149, ptrType$9, true); + isInterface = _tuple$15[1]; + if (isInterface) { _v$1 = true; $s = 320; continue s; } + _r$150 = types.Identical(t$6, (x$11 = types.Typ, (25 >= x$11.$length ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + 25]))); /* */ $s = 321; case 321: if($c) { $c = false; _r$150 = _r$150.$blk(); } if (_r$150 && _r$150.$blk !== undefined) { break s; } + _v$1 = _r$150; case 320: + /* */ if (_v$1) { $s = 318; continue; } + /* */ $s = 319; continue; + /* if (_v$1) { */ case 318: t$6 = t2; - /* } */ case 298: - _r$141 = t$6.Underlying(); /* */ $s = 301; case 301: if($c) { $c = false; _r$141 = _r$141.$blk(); } if (_r$141 && _r$141.$blk !== undefined) { break s; } - _tuple$15 = $assertType(_r$141, ptrType$6, true); - basic$2 = _tuple$15[0]; - isBasic = _tuple$15[1]; - /* */ if (isBasic && isNumeric(basic$2)) { $s = 302; continue; } - /* */ $s = 303; continue; - /* if (isBasic && isNumeric(basic$2)) { */ case 302: - /* */ if (is64Bit(basic$2)) { $s = 304; continue; } - /* */ $s = 305; continue; - /* if (is64Bit(basic$2)) { */ case 304: + /* } */ case 319: + _r$151 = t$6.Underlying(); /* */ $s = 322; case 322: if($c) { $c = false; _r$151 = _r$151.$blk(); } if (_r$151 && _r$151.$blk !== undefined) { break s; } + _tuple$16 = $assertType(_r$151, ptrType$6, true); + basic$2 = _tuple$16[0]; + isBasic = _tuple$16[1]; + /* */ if (isBasic && isNumeric(basic$2)) { $s = 323; continue; } + /* */ $s = 324; continue; + /* if (isBasic && isNumeric(basic$2)) { */ case 323: + /* */ if (is64Bit(basic$2)) { $s = 325; continue; } + /* */ $s = 326; continue; + /* if (is64Bit(basic$2)) { */ case 325: _4 = e$5.Op; - /* */ if (_4 === (14)) { $s = 307; continue; } - /* */ if (_4 === (15)) { $s = 308; continue; } - /* */ if (_4 === (16)) { $s = 309; continue; } - /* */ if (_4 === (20)) { $s = 310; continue; } - /* */ if (_4 === (21)) { $s = 311; continue; } - /* */ if (_4 === (39)) { $s = 312; continue; } - /* */ if (_4 === (40)) { $s = 313; continue; } - /* */ if (_4 === (45)) { $s = 314; continue; } - /* */ if (_4 === (41)) { $s = 315; continue; } - /* */ if (_4 === (46)) { $s = 316; continue; } - /* */ if ((_4 === (12)) || (_4 === (13))) { $s = 317; continue; } - /* */ if ((_4 === (17)) || (_4 === (18)) || (_4 === (19))) { $s = 318; continue; } - /* */ if (_4 === (22)) { $s = 319; continue; } - /* */ $s = 320; continue; - /* if (_4 === (14)) { */ case 307: - _r$142 = fc[0].formatExpr("$mul64(%e, %e)", new sliceType([e$5.X, e$5.Y])); /* */ $s = 322; case 322: if($c) { $c = false; _r$142 = _r$142.$blk(); } if (_r$142 && _r$142.$blk !== undefined) { break s; } - $24r$39 = _r$142; - $s = 323; case 323: return $24r$39; - /* } else if (_4 === (15)) { */ case 308: - _r$143 = fc[0].formatExpr("$div64(%e, %e, false)", new sliceType([e$5.X, e$5.Y])); /* */ $s = 324; case 324: if($c) { $c = false; _r$143 = _r$143.$blk(); } if (_r$143 && _r$143.$blk !== undefined) { break s; } - $24r$40 = _r$143; - $s = 325; case 325: return $24r$40; - /* } else if (_4 === (16)) { */ case 309: - _r$144 = fc[0].formatExpr("$div64(%e, %e, true)", new sliceType([e$5.X, e$5.Y])); /* */ $s = 326; case 326: if($c) { $c = false; _r$144 = _r$144.$blk(); } if (_r$144 && _r$144.$blk !== undefined) { break s; } - $24r$41 = _r$144; - $s = 327; case 327: return $24r$41; - /* } else if (_4 === (20)) { */ case 310: - _r$145 = fc[0].formatExpr("$shiftLeft64(%e, %f)", new sliceType([e$5.X, e$5.Y])); /* */ $s = 328; case 328: if($c) { $c = false; _r$145 = _r$145.$blk(); } if (_r$145 && _r$145.$blk !== undefined) { break s; } - $24r$42 = _r$145; - $s = 329; case 329: return $24r$42; - /* } else if (_4 === (21)) { */ case 311: - _r$146 = toJavaScriptType(basic$2); /* */ $s = 330; case 330: if($c) { $c = false; _r$146 = _r$146.$blk(); } if (_r$146 && _r$146.$blk !== undefined) { break s; } - _arg$64 = new $String(_r$146); - _arg$65 = e$5.X; - _arg$66 = e$5.Y; - _r$147 = fc[0].formatExpr("$shiftRight%s(%e, %f)", new sliceType([_arg$64, _arg$65, _arg$66])); /* */ $s = 331; case 331: if($c) { $c = false; _r$147 = _r$147.$blk(); } if (_r$147 && _r$147.$blk !== undefined) { break s; } - $24r$43 = _r$147; - $s = 332; case 332: return $24r$43; - /* } else if (_4 === (39)) { */ case 312: - _r$148 = fc[0].formatExpr("(%1h === %2h && %1l === %2l)", new sliceType([e$5.X, e$5.Y])); /* */ $s = 333; case 333: if($c) { $c = false; _r$148 = _r$148.$blk(); } if (_r$148 && _r$148.$blk !== undefined) { break s; } - $24r$44 = _r$148; - $s = 334; case 334: return $24r$44; - /* } else if (_4 === (40)) { */ case 313: - _r$149 = fc[0].formatExpr("(%1h < %2h || (%1h === %2h && %1l < %2l))", new sliceType([e$5.X, e$5.Y])); /* */ $s = 335; case 335: if($c) { $c = false; _r$149 = _r$149.$blk(); } if (_r$149 && _r$149.$blk !== undefined) { break s; } - $24r$45 = _r$149; - $s = 336; case 336: return $24r$45; - /* } else if (_4 === (45)) { */ case 314: - _r$150 = fc[0].formatExpr("(%1h < %2h || (%1h === %2h && %1l <= %2l))", new sliceType([e$5.X, e$5.Y])); /* */ $s = 337; case 337: if($c) { $c = false; _r$150 = _r$150.$blk(); } if (_r$150 && _r$150.$blk !== undefined) { break s; } - $24r$46 = _r$150; - $s = 338; case 338: return $24r$46; - /* } else if (_4 === (41)) { */ case 315: - _r$151 = fc[0].formatExpr("(%1h > %2h || (%1h === %2h && %1l > %2l))", new sliceType([e$5.X, e$5.Y])); /* */ $s = 339; case 339: if($c) { $c = false; _r$151 = _r$151.$blk(); } if (_r$151 && _r$151.$blk !== undefined) { break s; } - $24r$47 = _r$151; - $s = 340; case 340: return $24r$47; - /* } else if (_4 === (46)) { */ case 316: - _r$152 = fc[0].formatExpr("(%1h > %2h || (%1h === %2h && %1l >= %2l))", new sliceType([e$5.X, e$5.Y])); /* */ $s = 341; case 341: if($c) { $c = false; _r$152 = _r$152.$blk(); } if (_r$152 && _r$152.$blk !== undefined) { break s; } - $24r$48 = _r$152; - $s = 342; case 342: return $24r$48; - /* } else if ((_4 === (12)) || (_4 === (13))) { */ case 317: - _arg$67 = e$5.X; - _arg$68 = e$5.Y; - _r$153 = fc[0].typeName(t$6); /* */ $s = 343; case 343: if($c) { $c = false; _r$153 = _r$153.$blk(); } if (_r$153 && _r$153.$blk !== undefined) { break s; } - _arg$69 = new $String(_r$153); - _arg$70 = new token.Token(e$5.Op); - _r$154 = fc[0].formatExpr("new %3s(%1h %4t %2h, %1l %4t %2l)", new sliceType([_arg$67, _arg$68, _arg$69, _arg$70])); /* */ $s = 344; case 344: if($c) { $c = false; _r$154 = _r$154.$blk(); } if (_r$154 && _r$154.$blk !== undefined) { break s; } - $24r$49 = _r$154; - $s = 345; case 345: return $24r$49; - /* } else if ((_4 === (17)) || (_4 === (18)) || (_4 === (19))) { */ case 318: - _arg$71 = e$5.X; - _arg$72 = e$5.Y; - _r$155 = fc[0].typeName(t$6); /* */ $s = 346; case 346: if($c) { $c = false; _r$155 = _r$155.$blk(); } if (_r$155 && _r$155.$blk !== undefined) { break s; } - _arg$73 = new $String(_r$155); - _arg$74 = new token.Token(e$5.Op); - _r$156 = fc[0].formatExpr("new %3s(%1h %4t %2h, (%1l %4t %2l) >>> 0)", new sliceType([_arg$71, _arg$72, _arg$73, _arg$74])); /* */ $s = 347; case 347: if($c) { $c = false; _r$156 = _r$156.$blk(); } if (_r$156 && _r$156.$blk !== undefined) { break s; } - $24r$50 = _r$156; - $s = 348; case 348: return $24r$50; - /* } else if (_4 === (22)) { */ case 319: + /* */ if (_4 === (14)) { $s = 328; continue; } + /* */ if (_4 === (15)) { $s = 329; continue; } + /* */ if (_4 === (16)) { $s = 330; continue; } + /* */ if (_4 === (20)) { $s = 331; continue; } + /* */ if (_4 === (21)) { $s = 332; continue; } + /* */ if (_4 === (39)) { $s = 333; continue; } + /* */ if (_4 === (40)) { $s = 334; continue; } + /* */ if (_4 === (45)) { $s = 335; continue; } + /* */ if (_4 === (41)) { $s = 336; continue; } + /* */ if (_4 === (46)) { $s = 337; continue; } + /* */ if ((_4 === (12)) || (_4 === (13))) { $s = 338; continue; } + /* */ if ((_4 === (17)) || (_4 === (18)) || (_4 === (19))) { $s = 339; continue; } + /* */ if (_4 === (22)) { $s = 340; continue; } + /* */ $s = 341; continue; + /* if (_4 === (14)) { */ case 328: + _r$152 = fc[0].formatExpr("$mul64(%e, %e)", new sliceType([e$5.X, e$5.Y])); /* */ $s = 343; case 343: if($c) { $c = false; _r$152 = _r$152.$blk(); } if (_r$152 && _r$152.$blk !== undefined) { break s; } + $24r$42 = _r$152; + $s = 344; case 344: return $24r$42; + /* } else if (_4 === (15)) { */ case 329: + _r$153 = fc[0].formatExpr("$div64(%e, %e, false)", new sliceType([e$5.X, e$5.Y])); /* */ $s = 345; case 345: if($c) { $c = false; _r$153 = _r$153.$blk(); } if (_r$153 && _r$153.$blk !== undefined) { break s; } + $24r$43 = _r$153; + $s = 346; case 346: return $24r$43; + /* } else if (_4 === (16)) { */ case 330: + _r$154 = fc[0].formatExpr("$div64(%e, %e, true)", new sliceType([e$5.X, e$5.Y])); /* */ $s = 347; case 347: if($c) { $c = false; _r$154 = _r$154.$blk(); } if (_r$154 && _r$154.$blk !== undefined) { break s; } + $24r$44 = _r$154; + $s = 348; case 348: return $24r$44; + /* } else if (_4 === (20)) { */ case 331: + _r$155 = fc[0].formatExpr("$shiftLeft64(%e, %f)", new sliceType([e$5.X, e$5.Y])); /* */ $s = 349; case 349: if($c) { $c = false; _r$155 = _r$155.$blk(); } if (_r$155 && _r$155.$blk !== undefined) { break s; } + $24r$45 = _r$155; + $s = 350; case 350: return $24r$45; + /* } else if (_4 === (21)) { */ case 332: + _r$156 = toJavaScriptType(basic$2); /* */ $s = 351; case 351: if($c) { $c = false; _r$156 = _r$156.$blk(); } if (_r$156 && _r$156.$blk !== undefined) { break s; } + _arg$74 = new $String(_r$156); _arg$75 = e$5.X; _arg$76 = e$5.Y; - _r$157 = fc[0].typeName(t$6); /* */ $s = 349; case 349: if($c) { $c = false; _r$157 = _r$157.$blk(); } if (_r$157 && _r$157.$blk !== undefined) { break s; } - _arg$77 = new $String(_r$157); - _r$158 = fc[0].formatExpr("new %3s(%1h & ~%2h, (%1l & ~%2l) >>> 0)", new sliceType([_arg$75, _arg$76, _arg$77])); /* */ $s = 350; case 350: if($c) { $c = false; _r$158 = _r$158.$blk(); } if (_r$158 && _r$158.$blk !== undefined) { break s; } - $24r$51 = _r$158; - $s = 351; case 351: return $24r$51; - /* } else { */ case 320: + _r$157 = fc[0].formatExpr("$shiftRight%s(%e, %f)", new sliceType([_arg$74, _arg$75, _arg$76])); /* */ $s = 352; case 352: if($c) { $c = false; _r$157 = _r$157.$blk(); } if (_r$157 && _r$157.$blk !== undefined) { break s; } + $24r$46 = _r$157; + $s = 353; case 353: return $24r$46; + /* } else if (_4 === (39)) { */ case 333: + _r$158 = fc[0].formatExpr("(%1h === %2h && %1l === %2l)", new sliceType([e$5.X, e$5.Y])); /* */ $s = 354; case 354: if($c) { $c = false; _r$158 = _r$158.$blk(); } if (_r$158 && _r$158.$blk !== undefined) { break s; } + $24r$47 = _r$158; + $s = 355; case 355: return $24r$47; + /* } else if (_4 === (40)) { */ case 334: + _r$159 = fc[0].formatExpr("(%1h < %2h || (%1h === %2h && %1l < %2l))", new sliceType([e$5.X, e$5.Y])); /* */ $s = 356; case 356: if($c) { $c = false; _r$159 = _r$159.$blk(); } if (_r$159 && _r$159.$blk !== undefined) { break s; } + $24r$48 = _r$159; + $s = 357; case 357: return $24r$48; + /* } else if (_4 === (45)) { */ case 335: + _r$160 = fc[0].formatExpr("(%1h < %2h || (%1h === %2h && %1l <= %2l))", new sliceType([e$5.X, e$5.Y])); /* */ $s = 358; case 358: if($c) { $c = false; _r$160 = _r$160.$blk(); } if (_r$160 && _r$160.$blk !== undefined) { break s; } + $24r$49 = _r$160; + $s = 359; case 359: return $24r$49; + /* } else if (_4 === (41)) { */ case 336: + _r$161 = fc[0].formatExpr("(%1h > %2h || (%1h === %2h && %1l > %2l))", new sliceType([e$5.X, e$5.Y])); /* */ $s = 360; case 360: if($c) { $c = false; _r$161 = _r$161.$blk(); } if (_r$161 && _r$161.$blk !== undefined) { break s; } + $24r$50 = _r$161; + $s = 361; case 361: return $24r$50; + /* } else if (_4 === (46)) { */ case 337: + _r$162 = fc[0].formatExpr("(%1h > %2h || (%1h === %2h && %1l >= %2l))", new sliceType([e$5.X, e$5.Y])); /* */ $s = 362; case 362: if($c) { $c = false; _r$162 = _r$162.$blk(); } if (_r$162 && _r$162.$blk !== undefined) { break s; } + $24r$51 = _r$162; + $s = 363; case 363: return $24r$51; + /* } else if ((_4 === (12)) || (_4 === (13))) { */ case 338: + _arg$77 = e$5.X; + _arg$78 = e$5.Y; + _r$163 = fc[0].typeName(t$6); /* */ $s = 364; case 364: if($c) { $c = false; _r$163 = _r$163.$blk(); } if (_r$163 && _r$163.$blk !== undefined) { break s; } + _arg$79 = new $String(_r$163); + _arg$80 = new token.Token(e$5.Op); + _r$164 = fc[0].formatExpr("new %3s(%1h %4t %2h, %1l %4t %2l)", new sliceType([_arg$77, _arg$78, _arg$79, _arg$80])); /* */ $s = 365; case 365: if($c) { $c = false; _r$164 = _r$164.$blk(); } if (_r$164 && _r$164.$blk !== undefined) { break s; } + $24r$52 = _r$164; + $s = 366; case 366: return $24r$52; + /* } else if ((_4 === (17)) || (_4 === (18)) || (_4 === (19))) { */ case 339: + _arg$81 = e$5.X; + _arg$82 = e$5.Y; + _r$165 = fc[0].typeName(t$6); /* */ $s = 367; case 367: if($c) { $c = false; _r$165 = _r$165.$blk(); } if (_r$165 && _r$165.$blk !== undefined) { break s; } + _arg$83 = new $String(_r$165); + _arg$84 = new token.Token(e$5.Op); + _r$166 = fc[0].formatExpr("new %3s(%1h %4t %2h, (%1l %4t %2l) >>> 0)", new sliceType([_arg$81, _arg$82, _arg$83, _arg$84])); /* */ $s = 368; case 368: if($c) { $c = false; _r$166 = _r$166.$blk(); } if (_r$166 && _r$166.$blk !== undefined) { break s; } + $24r$53 = _r$166; + $s = 369; case 369: return $24r$53; + /* } else if (_4 === (22)) { */ case 340: + _arg$85 = e$5.X; + _arg$86 = e$5.Y; + _r$167 = fc[0].typeName(t$6); /* */ $s = 370; case 370: if($c) { $c = false; _r$167 = _r$167.$blk(); } if (_r$167 && _r$167.$blk !== undefined) { break s; } + _arg$87 = new $String(_r$167); + _r$168 = fc[0].formatExpr("new %3s(%1h & ~%2h, (%1l & ~%2l) >>> 0)", new sliceType([_arg$85, _arg$86, _arg$87])); /* */ $s = 371; case 371: if($c) { $c = false; _r$168 = _r$168.$blk(); } if (_r$168 && _r$168.$blk !== undefined) { break s; } + $24r$54 = _r$168; + $s = 372; case 372: return $24r$54; + /* } else { */ case 341: $panic(new token.Token(e$5.Op)); - /* } */ case 321: - case 306: - /* } */ case 305: - /* */ if (isComplex(basic$2)) { $s = 352; continue; } - /* */ $s = 353; continue; - /* if (isComplex(basic$2)) { */ case 352: + /* } */ case 342: + case 327: + /* } */ case 326: + /* */ if (isComplex(basic$2)) { $s = 373; continue; } + /* */ $s = 374; continue; + /* if (isComplex(basic$2)) { */ case 373: _5 = e$5.Op; - /* */ if (_5 === (39)) { $s = 355; continue; } - /* */ if ((_5 === (12)) || (_5 === (13))) { $s = 356; continue; } - /* */ if (_5 === (14)) { $s = 357; continue; } - /* */ if (_5 === (15)) { $s = 358; continue; } - /* */ $s = 359; continue; - /* if (_5 === (39)) { */ case 355: - _r$159 = fc[0].formatExpr("(%1r === %2r && %1i === %2i)", new sliceType([e$5.X, e$5.Y])); /* */ $s = 361; case 361: if($c) { $c = false; _r$159 = _r$159.$blk(); } if (_r$159 && _r$159.$blk !== undefined) { break s; } - $24r$52 = _r$159; - $s = 362; case 362: return $24r$52; - /* } else if ((_5 === (12)) || (_5 === (13))) { */ case 356: - _arg$78 = e$5.X; - _arg$79 = e$5.Y; - _r$160 = fc[0].typeName(t$6); /* */ $s = 363; case 363: if($c) { $c = false; _r$160 = _r$160.$blk(); } if (_r$160 && _r$160.$blk !== undefined) { break s; } - _arg$80 = new $String(_r$160); - _arg$81 = new token.Token(e$5.Op); - _r$161 = fc[0].formatExpr("new %3s(%1r %4t %2r, %1i %4t %2i)", new sliceType([_arg$78, _arg$79, _arg$80, _arg$81])); /* */ $s = 364; case 364: if($c) { $c = false; _r$161 = _r$161.$blk(); } if (_r$161 && _r$161.$blk !== undefined) { break s; } - $24r$53 = _r$161; - $s = 365; case 365: return $24r$53; - /* } else if (_5 === (14)) { */ case 357: - _arg$82 = e$5.X; - _arg$83 = e$5.Y; - _r$162 = fc[0].typeName(t$6); /* */ $s = 366; case 366: if($c) { $c = false; _r$162 = _r$162.$blk(); } if (_r$162 && _r$162.$blk !== undefined) { break s; } - _arg$84 = new $String(_r$162); - _r$163 = fc[0].formatExpr("new %3s(%1r * %2r - %1i * %2i, %1r * %2i + %1i * %2r)", new sliceType([_arg$82, _arg$83, _arg$84])); /* */ $s = 367; case 367: if($c) { $c = false; _r$163 = _r$163.$blk(); } if (_r$163 && _r$163.$blk !== undefined) { break s; } - $24r$54 = _r$163; - $s = 368; case 368: return $24r$54; - /* } else if (_5 === (15)) { */ case 358: - _r$164 = fc[0].formatExpr("$divComplex(%e, %e)", new sliceType([e$5.X, e$5.Y])); /* */ $s = 369; case 369: if($c) { $c = false; _r$164 = _r$164.$blk(); } if (_r$164 && _r$164.$blk !== undefined) { break s; } - $24r$55 = _r$164; - $s = 370; case 370: return $24r$55; - /* } else { */ case 359: + /* */ if (_5 === (39)) { $s = 376; continue; } + /* */ if ((_5 === (12)) || (_5 === (13))) { $s = 377; continue; } + /* */ if (_5 === (14)) { $s = 378; continue; } + /* */ if (_5 === (15)) { $s = 379; continue; } + /* */ $s = 380; continue; + /* if (_5 === (39)) { */ case 376: + _r$169 = fc[0].formatExpr("(%1r === %2r && %1i === %2i)", new sliceType([e$5.X, e$5.Y])); /* */ $s = 382; case 382: if($c) { $c = false; _r$169 = _r$169.$blk(); } if (_r$169 && _r$169.$blk !== undefined) { break s; } + $24r$55 = _r$169; + $s = 383; case 383: return $24r$55; + /* } else if ((_5 === (12)) || (_5 === (13))) { */ case 377: + _arg$88 = e$5.X; + _arg$89 = e$5.Y; + _r$170 = fc[0].typeName(t$6); /* */ $s = 384; case 384: if($c) { $c = false; _r$170 = _r$170.$blk(); } if (_r$170 && _r$170.$blk !== undefined) { break s; } + _arg$90 = new $String(_r$170); + _arg$91 = new token.Token(e$5.Op); + _r$171 = fc[0].formatExpr("new %3s(%1r %4t %2r, %1i %4t %2i)", new sliceType([_arg$88, _arg$89, _arg$90, _arg$91])); /* */ $s = 385; case 385: if($c) { $c = false; _r$171 = _r$171.$blk(); } if (_r$171 && _r$171.$blk !== undefined) { break s; } + $24r$56 = _r$171; + $s = 386; case 386: return $24r$56; + /* } else if (_5 === (14)) { */ case 378: + _arg$92 = e$5.X; + _arg$93 = e$5.Y; + _r$172 = fc[0].typeName(t$6); /* */ $s = 387; case 387: if($c) { $c = false; _r$172 = _r$172.$blk(); } if (_r$172 && _r$172.$blk !== undefined) { break s; } + _arg$94 = new $String(_r$172); + _r$173 = fc[0].formatExpr("new %3s(%1r * %2r - %1i * %2i, %1r * %2i + %1i * %2r)", new sliceType([_arg$92, _arg$93, _arg$94])); /* */ $s = 388; case 388: if($c) { $c = false; _r$173 = _r$173.$blk(); } if (_r$173 && _r$173.$blk !== undefined) { break s; } + $24r$57 = _r$173; + $s = 389; case 389: return $24r$57; + /* } else if (_5 === (15)) { */ case 379: + _r$174 = fc[0].formatExpr("$divComplex(%e, %e)", new sliceType([e$5.X, e$5.Y])); /* */ $s = 390; case 390: if($c) { $c = false; _r$174 = _r$174.$blk(); } if (_r$174 && _r$174.$blk !== undefined) { break s; } + $24r$58 = _r$174; + $s = 391; case 391: return $24r$58; + /* } else { */ case 380: $panic(new token.Token(e$5.Op)); - /* } */ case 360: - case 354: - /* } */ case 353: + /* } */ case 381: + case 375: + /* } */ case 374: _6 = e$5.Op; - /* */ if (_6 === (39)) { $s = 372; continue; } - /* */ if ((_6 === (40)) || (_6 === (45)) || (_6 === (41)) || (_6 === (46))) { $s = 373; continue; } - /* */ if ((_6 === (12)) || (_6 === (13))) { $s = 374; continue; } - /* */ if (_6 === (14)) { $s = 375; continue; } - /* */ if (_6 === (15)) { $s = 376; continue; } - /* */ if (_6 === (16)) { $s = 377; continue; } - /* */ if ((_6 === (20)) || (_6 === (21))) { $s = 378; continue; } - /* */ if ((_6 === (17)) || (_6 === (18))) { $s = 379; continue; } - /* */ if (_6 === (22)) { $s = 380; continue; } - /* */ if (_6 === (19)) { $s = 381; continue; } - /* */ $s = 382; continue; - /* if (_6 === (39)) { */ case 372: - _r$165 = fc[0].formatParenExpr("%e === %e", new sliceType([e$5.X, e$5.Y])); /* */ $s = 384; case 384: if($c) { $c = false; _r$165 = _r$165.$blk(); } if (_r$165 && _r$165.$blk !== undefined) { break s; } - $24r$56 = _r$165; - $s = 385; case 385: return $24r$56; - /* } else if ((_6 === (40)) || (_6 === (45)) || (_6 === (41)) || (_6 === (46))) { */ case 373: - _r$166 = fc[0].formatExpr("%e %t %e", new sliceType([e$5.X, new token.Token(e$5.Op), e$5.Y])); /* */ $s = 386; case 386: if($c) { $c = false; _r$166 = _r$166.$blk(); } if (_r$166 && _r$166.$blk !== undefined) { break s; } - $24r$57 = _r$166; - $s = 387; case 387: return $24r$57; - /* } else if ((_6 === (12)) || (_6 === (13))) { */ case 374: - _r$167 = fc[0].formatExpr("%e %t %e", new sliceType([e$5.X, new token.Token(e$5.Op), e$5.Y])); /* */ $s = 388; case 388: if($c) { $c = false; _r$167 = _r$167.$blk(); } if (_r$167 && _r$167.$blk !== undefined) { break s; } - _r$168 = fc[0].fixNumber(_r$167, basic$2); /* */ $s = 389; case 389: if($c) { $c = false; _r$168 = _r$168.$blk(); } if (_r$168 && _r$168.$blk !== undefined) { break s; } - $24r$58 = _r$168; - $s = 390; case 390: return $24r$58; - /* } else if (_6 === (14)) { */ case 375: + /* */ if (_6 === (39)) { $s = 393; continue; } + /* */ if ((_6 === (40)) || (_6 === (45)) || (_6 === (41)) || (_6 === (46))) { $s = 394; continue; } + /* */ if ((_6 === (12)) || (_6 === (13))) { $s = 395; continue; } + /* */ if (_6 === (14)) { $s = 396; continue; } + /* */ if (_6 === (15)) { $s = 397; continue; } + /* */ if (_6 === (16)) { $s = 398; continue; } + /* */ if ((_6 === (20)) || (_6 === (21))) { $s = 399; continue; } + /* */ if ((_6 === (17)) || (_6 === (18))) { $s = 400; continue; } + /* */ if (_6 === (22)) { $s = 401; continue; } + /* */ if (_6 === (19)) { $s = 402; continue; } + /* */ $s = 403; continue; + /* if (_6 === (39)) { */ case 393: + _r$175 = fc[0].formatParenExpr("%e === %e", new sliceType([e$5.X, e$5.Y])); /* */ $s = 405; case 405: if($c) { $c = false; _r$175 = _r$175.$blk(); } if (_r$175 && _r$175.$blk !== undefined) { break s; } + $24r$59 = _r$175; + $s = 406; case 406: return $24r$59; + /* } else if ((_6 === (40)) || (_6 === (45)) || (_6 === (41)) || (_6 === (46))) { */ case 394: + _r$176 = fc[0].formatExpr("%e %t %e", new sliceType([e$5.X, new token.Token(e$5.Op), e$5.Y])); /* */ $s = 407; case 407: if($c) { $c = false; _r$176 = _r$176.$blk(); } if (_r$176 && _r$176.$blk !== undefined) { break s; } + $24r$60 = _r$176; + $s = 408; case 408: return $24r$60; + /* } else if ((_6 === (12)) || (_6 === (13))) { */ case 395: + _r$177 = fc[0].formatExpr("%e %t %e", new sliceType([e$5.X, new token.Token(e$5.Op), e$5.Y])); /* */ $s = 409; case 409: if($c) { $c = false; _r$177 = _r$177.$blk(); } if (_r$177 && _r$177.$blk !== undefined) { break s; } + _r$178 = fc[0].fixNumber(_r$177, basic$2); /* */ $s = 410; case 410: if($c) { $c = false; _r$178 = _r$178.$blk(); } if (_r$178 && _r$178.$blk !== undefined) { break s; } + $24r$61 = _r$178; + $s = 411; case 411: return $24r$61; + /* } else if (_6 === (14)) { */ case 396: _7 = basic$2.Kind(); - /* */ if ((_7 === (5)) || (_7 === (2))) { $s = 392; continue; } - /* */ if ((_7 === (10)) || (_7 === (7)) || (_7 === (12))) { $s = 393; continue; } - /* */ $s = 394; continue; - /* if ((_7 === (5)) || (_7 === (2))) { */ case 392: - _r$169 = fc[0].formatParenExpr("$imul(%e, %e)", new sliceType([e$5.X, e$5.Y])); /* */ $s = 395; case 395: if($c) { $c = false; _r$169 = _r$169.$blk(); } if (_r$169 && _r$169.$blk !== undefined) { break s; } - $24r$59 = _r$169; - $s = 396; case 396: return $24r$59; - /* } else if ((_7 === (10)) || (_7 === (7)) || (_7 === (12))) { */ case 393: - _r$170 = fc[0].formatParenExpr("$imul(%e, %e) >>> 0", new sliceType([e$5.X, e$5.Y])); /* */ $s = 397; case 397: if($c) { $c = false; _r$170 = _r$170.$blk(); } if (_r$170 && _r$170.$blk !== undefined) { break s; } - $24r$60 = _r$170; - $s = 398; case 398: return $24r$60; - /* } */ case 394: - case 391: - _r$171 = fc[0].formatExpr("%e * %e", new sliceType([e$5.X, e$5.Y])); /* */ $s = 399; case 399: if($c) { $c = false; _r$171 = _r$171.$blk(); } if (_r$171 && _r$171.$blk !== undefined) { break s; } - _r$172 = fc[0].fixNumber(_r$171, basic$2); /* */ $s = 400; case 400: if($c) { $c = false; _r$172 = _r$172.$blk(); } if (_r$172 && _r$172.$blk !== undefined) { break s; } - $24r$61 = _r$172; - $s = 401; case 401: return $24r$61; - /* } else if (_6 === (15)) { */ case 376: - /* */ if (isInteger(basic$2)) { $s = 402; continue; } - /* */ $s = 403; continue; - /* if (isInteger(basic$2)) { */ case 402: + /* */ if ((_7 === (5)) || (_7 === (2))) { $s = 413; continue; } + /* */ if ((_7 === (10)) || (_7 === (7)) || (_7 === (12))) { $s = 414; continue; } + /* */ $s = 415; continue; + /* if ((_7 === (5)) || (_7 === (2))) { */ case 413: + _r$179 = fc[0].formatParenExpr("$imul(%e, %e)", new sliceType([e$5.X, e$5.Y])); /* */ $s = 416; case 416: if($c) { $c = false; _r$179 = _r$179.$blk(); } if (_r$179 && _r$179.$blk !== undefined) { break s; } + $24r$62 = _r$179; + $s = 417; case 417: return $24r$62; + /* } else if ((_7 === (10)) || (_7 === (7)) || (_7 === (12))) { */ case 414: + _r$180 = fc[0].formatParenExpr("$imul(%e, %e) >>> 0", new sliceType([e$5.X, e$5.Y])); /* */ $s = 418; case 418: if($c) { $c = false; _r$180 = _r$180.$blk(); } if (_r$180 && _r$180.$blk !== undefined) { break s; } + $24r$63 = _r$180; + $s = 419; case 419: return $24r$63; + /* } */ case 415: + case 412: + _r$181 = fc[0].formatExpr("%e * %e", new sliceType([e$5.X, e$5.Y])); /* */ $s = 420; case 420: if($c) { $c = false; _r$181 = _r$181.$blk(); } if (_r$181 && _r$181.$blk !== undefined) { break s; } + _r$182 = fc[0].fixNumber(_r$181, basic$2); /* */ $s = 421; case 421: if($c) { $c = false; _r$182 = _r$182.$blk(); } if (_r$182 && _r$182.$blk !== undefined) { break s; } + $24r$64 = _r$182; + $s = 422; case 422: return $24r$64; + /* } else if (_6 === (15)) { */ case 397: + /* */ if (isInteger(basic$2)) { $s = 423; continue; } + /* */ $s = 424; continue; + /* if (isInteger(basic$2)) { */ case 423: shift = ">>"; if (isUnsigned(basic$2)) { shift = ">>>"; } - _r$173 = fc[0].newLocalVariable("_q"); /* */ $s = 404; case 404: if($c) { $c = false; _r$173 = _r$173.$blk(); } if (_r$173 && _r$173.$blk !== undefined) { break s; } - _arg$85 = new $String(_r$173); - _arg$86 = e$5.X; - _arg$87 = e$5.Y; - _arg$88 = new $String(shift); - _r$174 = fc[0].formatExpr("(%1s = %2e / %3e, (%1s === %1s && %1s !== 1/0 && %1s !== -1/0) ? %1s %4s 0 : $throwRuntimeError(\"integer divide by zero\"))", new sliceType([_arg$85, _arg$86, _arg$87, _arg$88])); /* */ $s = 405; case 405: if($c) { $c = false; _r$174 = _r$174.$blk(); } if (_r$174 && _r$174.$blk !== undefined) { break s; } - $24r$62 = _r$174; - $s = 406; case 406: return $24r$62; - /* } */ case 403: - /* */ if (basic$2.Kind() === 13) { $s = 407; continue; } - /* */ $s = 408; continue; - /* if (basic$2.Kind() === 13) { */ case 407: - _r$175 = fc[0].formatExpr("%e / %e", new sliceType([e$5.X, e$5.Y])); /* */ $s = 409; case 409: if($c) { $c = false; _r$175 = _r$175.$blk(); } if (_r$175 && _r$175.$blk !== undefined) { break s; } - _r$176 = fc[0].fixNumber(_r$175, basic$2); /* */ $s = 410; case 410: if($c) { $c = false; _r$176 = _r$176.$blk(); } if (_r$176 && _r$176.$blk !== undefined) { break s; } - $24r$63 = _r$176; - $s = 411; case 411: return $24r$63; - /* } */ case 408: - _r$177 = fc[0].formatExpr("%e / %e", new sliceType([e$5.X, e$5.Y])); /* */ $s = 412; case 412: if($c) { $c = false; _r$177 = _r$177.$blk(); } if (_r$177 && _r$177.$blk !== undefined) { break s; } - $24r$64 = _r$177; - $s = 413; case 413: return $24r$64; - /* } else if (_6 === (16)) { */ case 377: - _r$178 = fc[0].newLocalVariable("_r"); /* */ $s = 414; case 414: if($c) { $c = false; _r$178 = _r$178.$blk(); } if (_r$178 && _r$178.$blk !== undefined) { break s; } - _arg$89 = new $String(_r$178); - _arg$90 = e$5.X; - _arg$91 = e$5.Y; - _r$179 = fc[0].formatExpr("(%1s = %2e %% %3e, %1s === %1s ? %1s : $throwRuntimeError(\"integer divide by zero\"))", new sliceType([_arg$89, _arg$90, _arg$91])); /* */ $s = 415; case 415: if($c) { $c = false; _r$179 = _r$179.$blk(); } if (_r$179 && _r$179.$blk !== undefined) { break s; } - $24r$65 = _r$179; - $s = 416; case 416: return $24r$65; - /* } else if ((_6 === (20)) || (_6 === (21))) { */ case 378: + _r$183 = fc[0].newLocalVariable("_q"); /* */ $s = 425; case 425: if($c) { $c = false; _r$183 = _r$183.$blk(); } if (_r$183 && _r$183.$blk !== undefined) { break s; } + _arg$95 = new $String(_r$183); + _arg$96 = e$5.X; + _arg$97 = e$5.Y; + _arg$98 = new $String(shift); + _r$184 = fc[0].formatExpr("(%1s = %2e / %3e, (%1s === %1s && %1s !== 1/0 && %1s !== -1/0) ? %1s %4s 0 : $throwRuntimeError(\"integer divide by zero\"))", new sliceType([_arg$95, _arg$96, _arg$97, _arg$98])); /* */ $s = 426; case 426: if($c) { $c = false; _r$184 = _r$184.$blk(); } if (_r$184 && _r$184.$blk !== undefined) { break s; } + $24r$65 = _r$184; + $s = 427; case 427: return $24r$65; + /* } */ case 424: + /* */ if (basic$2.Kind() === 13) { $s = 428; continue; } + /* */ $s = 429; continue; + /* if (basic$2.Kind() === 13) { */ case 428: + _r$185 = fc[0].formatExpr("%e / %e", new sliceType([e$5.X, e$5.Y])); /* */ $s = 430; case 430: if($c) { $c = false; _r$185 = _r$185.$blk(); } if (_r$185 && _r$185.$blk !== undefined) { break s; } + _r$186 = fc[0].fixNumber(_r$185, basic$2); /* */ $s = 431; case 431: if($c) { $c = false; _r$186 = _r$186.$blk(); } if (_r$186 && _r$186.$blk !== undefined) { break s; } + $24r$66 = _r$186; + $s = 432; case 432: return $24r$66; + /* } */ case 429: + _r$187 = fc[0].formatExpr("%e / %e", new sliceType([e$5.X, e$5.Y])); /* */ $s = 433; case 433: if($c) { $c = false; _r$187 = _r$187.$blk(); } if (_r$187 && _r$187.$blk !== undefined) { break s; } + $24r$67 = _r$187; + $s = 434; case 434: return $24r$67; + /* } else if (_6 === (16)) { */ case 398: + _r$188 = fc[0].newLocalVariable("_r"); /* */ $s = 435; case 435: if($c) { $c = false; _r$188 = _r$188.$blk(); } if (_r$188 && _r$188.$blk !== undefined) { break s; } + _arg$99 = new $String(_r$188); + _arg$100 = e$5.X; + _arg$101 = e$5.Y; + _r$189 = fc[0].formatExpr("(%1s = %2e %% %3e, %1s === %1s ? %1s : $throwRuntimeError(\"integer divide by zero\"))", new sliceType([_arg$99, _arg$100, _arg$101])); /* */ $s = 436; case 436: if($c) { $c = false; _r$189 = _r$189.$blk(); } if (_r$189 && _r$189.$blk !== undefined) { break s; } + $24r$68 = _r$189; + $s = 437; case 437: return $24r$68; + /* } else if ((_6 === (20)) || (_6 === (21))) { */ case 399: op = new token.Token(e$5.Op).String(); if ((e$5.Op === 21) && isUnsigned(basic$2)) { op = ">>>"; } - v = (_entry$5 = $mapIndex(fc[0].pkgCtx.Info.Info.Types,ast.Expr.keyFor(e$5.Y)), _entry$5 !== undefined ? _entry$5.v : new types.TypeAndValue.ptr(0, $ifaceNil, $ifaceNil)).Value; - /* */ if (!($interfaceIsEqual(v, $ifaceNil))) { $s = 417; continue; } - /* */ $s = 418; continue; - /* if (!($interfaceIsEqual(v, $ifaceNil))) { */ case 417: - _r$180 = constant.ToInt(v); /* */ $s = 419; case 419: if($c) { $c = false; _r$180 = _r$180.$blk(); } if (_r$180 && _r$180.$blk !== undefined) { break s; } - _r$181 = constant.Uint64Val(_r$180); /* */ $s = 420; case 420: if($c) { $c = false; _r$181 = _r$181.$blk(); } if (_r$181 && _r$181.$blk !== undefined) { break s; } - _tuple$16 = _r$181; - i$4 = _tuple$16[0]; - /* */ if ((i$4.$high > 0 || (i$4.$high === 0 && i$4.$low >= 32))) { $s = 421; continue; } - /* */ $s = 422; continue; - /* if ((i$4.$high > 0 || (i$4.$high === 0 && i$4.$low >= 32))) { */ case 421: - _r$182 = fc[0].formatExpr("0", sliceType.nil); /* */ $s = 423; case 423: if($c) { $c = false; _r$182 = _r$182.$blk(); } if (_r$182 && _r$182.$blk !== undefined) { break s; } - $24r$66 = _r$182; - $s = 424; case 424: return $24r$66; - /* } */ case 422: - _r$183 = fc[0].formatExpr("%e %s %s", new sliceType([e$5.X, new $String(op), new $String(strconv.FormatUint(i$4, 10))])); /* */ $s = 425; case 425: if($c) { $c = false; _r$183 = _r$183.$blk(); } if (_r$183 && _r$183.$blk !== undefined) { break s; } - _r$184 = fc[0].fixNumber(_r$183, basic$2); /* */ $s = 426; case 426: if($c) { $c = false; _r$184 = _r$184.$blk(); } if (_r$184 && _r$184.$blk !== undefined) { break s; } - $24r$67 = _r$184; - $s = 427; case 427: return $24r$67; - /* } */ case 418: - /* */ if ((e$5.Op === 21) && !isUnsigned(basic$2)) { $s = 428; continue; } - /* */ $s = 429; continue; - /* if ((e$5.Op === 21) && !isUnsigned(basic$2)) { */ case 428: - _r$185 = fc[0].formatParenExpr("%e >> $min(%f, 31)", new sliceType([e$5.X, e$5.Y])); /* */ $s = 430; case 430: if($c) { $c = false; _r$185 = _r$185.$blk(); } if (_r$185 && _r$185.$blk !== undefined) { break s; } - _r$186 = fc[0].fixNumber(_r$185, basic$2); /* */ $s = 431; case 431: if($c) { $c = false; _r$186 = _r$186.$blk(); } if (_r$186 && _r$186.$blk !== undefined) { break s; } - $24r$68 = _r$186; - $s = 432; case 432: return $24r$68; - /* } */ case 429: - _r$187 = fc[0].newLocalVariable("y"); /* */ $s = 433; case 433: if($c) { $c = false; _r$187 = _r$187.$blk(); } if (_r$187 && _r$187.$blk !== undefined) { break s; } - y = _r$187; - _r$188 = fc[0].formatExpr("(%s = %f, %s < 32 ? (%e %s %s) : 0)", new sliceType([new $String(y), e$5.Y, new $String(y), e$5.X, new $String(op), new $String(y)])); /* */ $s = 434; case 434: if($c) { $c = false; _r$188 = _r$188.$blk(); } if (_r$188 && _r$188.$blk !== undefined) { break s; } - _r$189 = fc[0].fixNumber(_r$188, basic$2); /* */ $s = 435; case 435: if($c) { $c = false; _r$189 = _r$189.$blk(); } if (_r$189 && _r$189.$blk !== undefined) { break s; } - $24r$69 = _r$189; - $s = 436; case 436: return $24r$69; - /* } else if ((_6 === (17)) || (_6 === (18))) { */ case 379: - /* */ if (isUnsigned(basic$2)) { $s = 437; continue; } - /* */ $s = 438; continue; - /* if (isUnsigned(basic$2)) { */ case 437: - _r$190 = fc[0].formatParenExpr("(%e %t %e) >>> 0", new sliceType([e$5.X, new token.Token(e$5.Op), e$5.Y])); /* */ $s = 439; case 439: if($c) { $c = false; _r$190 = _r$190.$blk(); } if (_r$190 && _r$190.$blk !== undefined) { break s; } - $24r$70 = _r$190; - $s = 440; case 440: return $24r$70; - /* } */ case 438: - _r$191 = fc[0].formatParenExpr("%e %t %e", new sliceType([e$5.X, new token.Token(e$5.Op), e$5.Y])); /* */ $s = 441; case 441: if($c) { $c = false; _r$191 = _r$191.$blk(); } if (_r$191 && _r$191.$blk !== undefined) { break s; } - $24r$71 = _r$191; - $s = 442; case 442: return $24r$71; - /* } else if (_6 === (22)) { */ case 380: - _r$192 = fc[0].formatParenExpr("%e & ~%e", new sliceType([e$5.X, e$5.Y])); /* */ $s = 443; case 443: if($c) { $c = false; _r$192 = _r$192.$blk(); } if (_r$192 && _r$192.$blk !== undefined) { break s; } - _r$193 = fc[0].fixNumber(_r$192, basic$2); /* */ $s = 444; case 444: if($c) { $c = false; _r$193 = _r$193.$blk(); } if (_r$193 && _r$193.$blk !== undefined) { break s; } - $24r$72 = _r$193; - $s = 445; case 445: return $24r$72; - /* } else if (_6 === (19)) { */ case 381: - _r$194 = fc[0].formatParenExpr("%e ^ %e", new sliceType([e$5.X, e$5.Y])); /* */ $s = 446; case 446: if($c) { $c = false; _r$194 = _r$194.$blk(); } if (_r$194 && _r$194.$blk !== undefined) { break s; } - _r$195 = fc[0].fixNumber(_r$194, basic$2); /* */ $s = 447; case 447: if($c) { $c = false; _r$195 = _r$195.$blk(); } if (_r$195 && _r$195.$blk !== undefined) { break s; } - $24r$73 = _r$195; - $s = 448; case 448: return $24r$73; - /* } else { */ case 382: + v = (_entry$7 = $mapIndex(fc[0].pkgCtx.Info.Info.Types,ast.Expr.keyFor(e$5.Y)), _entry$7 !== undefined ? _entry$7.v : new types.TypeAndValue.ptr(0, $ifaceNil, $ifaceNil)).Value; + /* */ if (!($interfaceIsEqual(v, $ifaceNil))) { $s = 438; continue; } + /* */ $s = 439; continue; + /* if (!($interfaceIsEqual(v, $ifaceNil))) { */ case 438: + _r$190 = constant.ToInt(v); /* */ $s = 440; case 440: if($c) { $c = false; _r$190 = _r$190.$blk(); } if (_r$190 && _r$190.$blk !== undefined) { break s; } + _r$191 = constant.Uint64Val(_r$190); /* */ $s = 441; case 441: if($c) { $c = false; _r$191 = _r$191.$blk(); } if (_r$191 && _r$191.$blk !== undefined) { break s; } + _tuple$17 = _r$191; + i$4 = _tuple$17[0]; + /* */ if ((i$4.$high > 0 || (i$4.$high === 0 && i$4.$low >= 32))) { $s = 442; continue; } + /* */ $s = 443; continue; + /* if ((i$4.$high > 0 || (i$4.$high === 0 && i$4.$low >= 32))) { */ case 442: + _r$192 = fc[0].formatExpr("0", sliceType.nil); /* */ $s = 444; case 444: if($c) { $c = false; _r$192 = _r$192.$blk(); } if (_r$192 && _r$192.$blk !== undefined) { break s; } + $24r$69 = _r$192; + $s = 445; case 445: return $24r$69; + /* } */ case 443: + _r$193 = fc[0].formatExpr("%e %s %s", new sliceType([e$5.X, new $String(op), new $String(strconv.FormatUint(i$4, 10))])); /* */ $s = 446; case 446: if($c) { $c = false; _r$193 = _r$193.$blk(); } if (_r$193 && _r$193.$blk !== undefined) { break s; } + _r$194 = fc[0].fixNumber(_r$193, basic$2); /* */ $s = 447; case 447: if($c) { $c = false; _r$194 = _r$194.$blk(); } if (_r$194 && _r$194.$blk !== undefined) { break s; } + $24r$70 = _r$194; + $s = 448; case 448: return $24r$70; + /* } */ case 439: + /* */ if ((e$5.Op === 21) && !isUnsigned(basic$2)) { $s = 449; continue; } + /* */ $s = 450; continue; + /* if ((e$5.Op === 21) && !isUnsigned(basic$2)) { */ case 449: + _r$195 = fc[0].formatParenExpr("%e >> $min(%f, 31)", new sliceType([e$5.X, e$5.Y])); /* */ $s = 451; case 451: if($c) { $c = false; _r$195 = _r$195.$blk(); } if (_r$195 && _r$195.$blk !== undefined) { break s; } + _r$196 = fc[0].fixNumber(_r$195, basic$2); /* */ $s = 452; case 452: if($c) { $c = false; _r$196 = _r$196.$blk(); } if (_r$196 && _r$196.$blk !== undefined) { break s; } + $24r$71 = _r$196; + $s = 453; case 453: return $24r$71; + /* } */ case 450: + _r$197 = fc[0].newLocalVariable("y"); /* */ $s = 454; case 454: if($c) { $c = false; _r$197 = _r$197.$blk(); } if (_r$197 && _r$197.$blk !== undefined) { break s; } + y = _r$197; + _r$198 = fc[0].formatExpr("(%s = %f, %s < 32 ? (%e %s %s) : 0)", new sliceType([new $String(y), e$5.Y, new $String(y), e$5.X, new $String(op), new $String(y)])); /* */ $s = 455; case 455: if($c) { $c = false; _r$198 = _r$198.$blk(); } if (_r$198 && _r$198.$blk !== undefined) { break s; } + _r$199 = fc[0].fixNumber(_r$198, basic$2); /* */ $s = 456; case 456: if($c) { $c = false; _r$199 = _r$199.$blk(); } if (_r$199 && _r$199.$blk !== undefined) { break s; } + $24r$72 = _r$199; + $s = 457; case 457: return $24r$72; + /* } else if ((_6 === (17)) || (_6 === (18))) { */ case 400: + /* */ if (isUnsigned(basic$2)) { $s = 458; continue; } + /* */ $s = 459; continue; + /* if (isUnsigned(basic$2)) { */ case 458: + _r$200 = fc[0].formatParenExpr("(%e %t %e) >>> 0", new sliceType([e$5.X, new token.Token(e$5.Op), e$5.Y])); /* */ $s = 460; case 460: if($c) { $c = false; _r$200 = _r$200.$blk(); } if (_r$200 && _r$200.$blk !== undefined) { break s; } + $24r$73 = _r$200; + $s = 461; case 461: return $24r$73; + /* } */ case 459: + _r$201 = fc[0].formatParenExpr("%e %t %e", new sliceType([e$5.X, new token.Token(e$5.Op), e$5.Y])); /* */ $s = 462; case 462: if($c) { $c = false; _r$201 = _r$201.$blk(); } if (_r$201 && _r$201.$blk !== undefined) { break s; } + $24r$74 = _r$201; + $s = 463; case 463: return $24r$74; + /* } else if (_6 === (22)) { */ case 401: + _r$202 = fc[0].formatParenExpr("%e & ~%e", new sliceType([e$5.X, e$5.Y])); /* */ $s = 464; case 464: if($c) { $c = false; _r$202 = _r$202.$blk(); } if (_r$202 && _r$202.$blk !== undefined) { break s; } + _r$203 = fc[0].fixNumber(_r$202, basic$2); /* */ $s = 465; case 465: if($c) { $c = false; _r$203 = _r$203.$blk(); } if (_r$203 && _r$203.$blk !== undefined) { break s; } + $24r$75 = _r$203; + $s = 466; case 466: return $24r$75; + /* } else if (_6 === (19)) { */ case 402: + _r$204 = fc[0].formatParenExpr("%e ^ %e", new sliceType([e$5.X, e$5.Y])); /* */ $s = 467; case 467: if($c) { $c = false; _r$204 = _r$204.$blk(); } if (_r$204 && _r$204.$blk !== undefined) { break s; } + _r$205 = fc[0].fixNumber(_r$204, basic$2); /* */ $s = 468; case 468: if($c) { $c = false; _r$205 = _r$205.$blk(); } if (_r$205 && _r$205.$blk !== undefined) { break s; } + $24r$76 = _r$205; + $s = 469; case 469: return $24r$76; + /* } else { */ case 403: $panic(new token.Token(e$5.Op)); - /* } */ case 383: - case 371: - /* } */ case 303: + /* } */ case 404: + case 392: + /* } */ case 324: _8 = e$5.Op; - /* */ if ((_8 === (12)) || (_8 === (40)) || (_8 === (45)) || (_8 === (41)) || (_8 === (46))) { $s = 450; continue; } - /* */ if (_8 === (34)) { $s = 451; continue; } - /* */ if (_8 === (35)) { $s = 452; continue; } - /* */ if (_8 === (39)) { $s = 453; continue; } - /* */ $s = 454; continue; - /* if ((_8 === (12)) || (_8 === (40)) || (_8 === (45)) || (_8 === (41)) || (_8 === (46))) { */ case 450: - _r$196 = fc[0].formatExpr("%e %t %e", new sliceType([e$5.X, new token.Token(e$5.Op), e$5.Y])); /* */ $s = 456; case 456: if($c) { $c = false; _r$196 = _r$196.$blk(); } if (_r$196 && _r$196.$blk !== undefined) { break s; } - $24r$74 = _r$196; - $s = 457; case 457: return $24r$74; - /* } else if (_8 === (34)) { */ case 451: - /* */ if ((_entry$6 = $mapIndex(fc[0].FuncInfo.Blocking,ast.Node.keyFor(e$5.Y)), _entry$6 !== undefined ? _entry$6.v : false)) { $s = 458; continue; } - /* */ $s = 459; continue; - /* if ((_entry$6 = $mapIndex(fc[0].FuncInfo.Blocking,ast.Node.keyFor(e$5.Y)), _entry$6 !== undefined ? _entry$6.v : false)) { */ case 458: + /* */ if ((_8 === (12)) || (_8 === (40)) || (_8 === (45)) || (_8 === (41)) || (_8 === (46))) { $s = 471; continue; } + /* */ if (_8 === (34)) { $s = 472; continue; } + /* */ if (_8 === (35)) { $s = 473; continue; } + /* */ if (_8 === (39)) { $s = 474; continue; } + /* */ $s = 475; continue; + /* if ((_8 === (12)) || (_8 === (40)) || (_8 === (45)) || (_8 === (41)) || (_8 === (46))) { */ case 471: + _r$206 = fc[0].formatExpr("%e %t %e", new sliceType([e$5.X, new token.Token(e$5.Op), e$5.Y])); /* */ $s = 477; case 477: if($c) { $c = false; _r$206 = _r$206.$blk(); } if (_r$206 && _r$206.$blk !== undefined) { break s; } + $24r$77 = _r$206; + $s = 478; case 478: return $24r$77; + /* } else if (_8 === (34)) { */ case 472: + /* */ if ((_entry$8 = $mapIndex(fc[0].FuncInfo.Blocking,ast.Node.keyFor(e$5.Y)), _entry$8 !== undefined ? _entry$8.v : false)) { $s = 479; continue; } + /* */ $s = 480; continue; + /* if ((_entry$8 = $mapIndex(fc[0].FuncInfo.Blocking,ast.Node.keyFor(e$5.Y)), _entry$8 !== undefined ? _entry$8.v : false)) { */ case 479: skipCase = fc[0].caseCounter; fc[0].caseCounter = fc[0].caseCounter + (1) >> 0; - _r$197 = fc[0].newLocalVariable("_v"); /* */ $s = 460; case 460: if($c) { $c = false; _r$197 = _r$197.$blk(); } if (_r$197 && _r$197.$blk !== undefined) { break s; } - resultVar = _r$197; - _r$198 = fc[0].translateExpr(e$5.X); /* */ $s = 461; case 461: if($c) { $c = false; _r$198 = _r$198.$blk(); } if (_r$198 && _r$198.$blk !== undefined) { break s; } - _arg$92 = _r$198; - _arg$93 = new $String(resultVar); - _arg$94 = new $Int(skipCase); - $r = fc[0].Printf("if (!(%s)) { %s = false; $s = %d; continue s; }", new sliceType([_arg$92, _arg$93, _arg$94])); /* */ $s = 462; case 462: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _arg$95 = new $String(resultVar); - _r$199 = fc[0].translateExpr(e$5.Y); /* */ $s = 463; case 463: if($c) { $c = false; _r$199 = _r$199.$blk(); } if (_r$199 && _r$199.$blk !== undefined) { break s; } - _arg$96 = _r$199; - _arg$97 = new $Int(skipCase); - $r = fc[0].Printf("%s = %s; case %d:", new sliceType([_arg$95, _arg$96, _arg$97])); /* */ $s = 464; case 464: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$200 = fc[0].formatExpr("%s", new sliceType([new $String(resultVar)])); /* */ $s = 465; case 465: if($c) { $c = false; _r$200 = _r$200.$blk(); } if (_r$200 && _r$200.$blk !== undefined) { break s; } - $24r$75 = _r$200; - $s = 466; case 466: return $24r$75; - /* } */ case 459: - _r$201 = fc[0].formatExpr("%e && %e", new sliceType([e$5.X, e$5.Y])); /* */ $s = 467; case 467: if($c) { $c = false; _r$201 = _r$201.$blk(); } if (_r$201 && _r$201.$blk !== undefined) { break s; } - $24r$76 = _r$201; - $s = 468; case 468: return $24r$76; - /* } else if (_8 === (35)) { */ case 452: - /* */ if ((_entry$7 = $mapIndex(fc[0].FuncInfo.Blocking,ast.Node.keyFor(e$5.Y)), _entry$7 !== undefined ? _entry$7.v : false)) { $s = 469; continue; } - /* */ $s = 470; continue; - /* if ((_entry$7 = $mapIndex(fc[0].FuncInfo.Blocking,ast.Node.keyFor(e$5.Y)), _entry$7 !== undefined ? _entry$7.v : false)) { */ case 469: + _r$207 = fc[0].newLocalVariable("_v"); /* */ $s = 481; case 481: if($c) { $c = false; _r$207 = _r$207.$blk(); } if (_r$207 && _r$207.$blk !== undefined) { break s; } + resultVar = _r$207; + _r$208 = fc[0].translateExpr(e$5.X); /* */ $s = 482; case 482: if($c) { $c = false; _r$208 = _r$208.$blk(); } if (_r$208 && _r$208.$blk !== undefined) { break s; } + _arg$102 = _r$208; + _arg$103 = new $String(resultVar); + _arg$104 = new $Int(skipCase); + $r = fc[0].Printf("if (!(%s)) { %s = false; $s = %d; continue s; }", new sliceType([_arg$102, _arg$103, _arg$104])); /* */ $s = 483; case 483: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _arg$105 = new $String(resultVar); + _r$209 = fc[0].translateExpr(e$5.Y); /* */ $s = 484; case 484: if($c) { $c = false; _r$209 = _r$209.$blk(); } if (_r$209 && _r$209.$blk !== undefined) { break s; } + _arg$106 = _r$209; + _arg$107 = new $Int(skipCase); + $r = fc[0].Printf("%s = %s; case %d:", new sliceType([_arg$105, _arg$106, _arg$107])); /* */ $s = 485; case 485: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$210 = fc[0].formatExpr("%s", new sliceType([new $String(resultVar)])); /* */ $s = 486; case 486: if($c) { $c = false; _r$210 = _r$210.$blk(); } if (_r$210 && _r$210.$blk !== undefined) { break s; } + $24r$78 = _r$210; + $s = 487; case 487: return $24r$78; + /* } */ case 480: + _r$211 = fc[0].formatExpr("%e && %e", new sliceType([e$5.X, e$5.Y])); /* */ $s = 488; case 488: if($c) { $c = false; _r$211 = _r$211.$blk(); } if (_r$211 && _r$211.$blk !== undefined) { break s; } + $24r$79 = _r$211; + $s = 489; case 489: return $24r$79; + /* } else if (_8 === (35)) { */ case 473: + /* */ if ((_entry$9 = $mapIndex(fc[0].FuncInfo.Blocking,ast.Node.keyFor(e$5.Y)), _entry$9 !== undefined ? _entry$9.v : false)) { $s = 490; continue; } + /* */ $s = 491; continue; + /* if ((_entry$9 = $mapIndex(fc[0].FuncInfo.Blocking,ast.Node.keyFor(e$5.Y)), _entry$9 !== undefined ? _entry$9.v : false)) { */ case 490: skipCase$1 = fc[0].caseCounter; fc[0].caseCounter = fc[0].caseCounter + (1) >> 0; - _r$202 = fc[0].newLocalVariable("_v"); /* */ $s = 471; case 471: if($c) { $c = false; _r$202 = _r$202.$blk(); } if (_r$202 && _r$202.$blk !== undefined) { break s; } - resultVar$1 = _r$202; - _r$203 = fc[0].translateExpr(e$5.X); /* */ $s = 472; case 472: if($c) { $c = false; _r$203 = _r$203.$blk(); } if (_r$203 && _r$203.$blk !== undefined) { break s; } - _arg$98 = _r$203; - _arg$99 = new $String(resultVar$1); - _arg$100 = new $Int(skipCase$1); - $r = fc[0].Printf("if (%s) { %s = true; $s = %d; continue s; }", new sliceType([_arg$98, _arg$99, _arg$100])); /* */ $s = 473; case 473: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _arg$101 = new $String(resultVar$1); - _r$204 = fc[0].translateExpr(e$5.Y); /* */ $s = 474; case 474: if($c) { $c = false; _r$204 = _r$204.$blk(); } if (_r$204 && _r$204.$blk !== undefined) { break s; } - _arg$102 = _r$204; - _arg$103 = new $Int(skipCase$1); - $r = fc[0].Printf("%s = %s; case %d:", new sliceType([_arg$101, _arg$102, _arg$103])); /* */ $s = 475; case 475: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$205 = fc[0].formatExpr("%s", new sliceType([new $String(resultVar$1)])); /* */ $s = 476; case 476: if($c) { $c = false; _r$205 = _r$205.$blk(); } if (_r$205 && _r$205.$blk !== undefined) { break s; } - $24r$77 = _r$205; - $s = 477; case 477: return $24r$77; - /* } */ case 470: - _r$206 = fc[0].formatExpr("%e || %e", new sliceType([e$5.X, e$5.Y])); /* */ $s = 478; case 478: if($c) { $c = false; _r$206 = _r$206.$blk(); } if (_r$206 && _r$206.$blk !== undefined) { break s; } - $24r$78 = _r$206; - $s = 479; case 479: return $24r$78; - /* } else if (_8 === (39)) { */ case 453: - _r$207 = t$6.Underlying(); /* */ $s = 480; case 480: if($c) { $c = false; _r$207 = _r$207.$blk(); } if (_r$207 && _r$207.$blk !== undefined) { break s; } - _ref$11 = _r$207; - /* */ if ($assertType(_ref$11, ptrType$7, true)[1] || $assertType(_ref$11, ptrType$4, true)[1]) { $s = 481; continue; } - /* */ if ($assertType(_ref$11, ptrType$9, true)[1]) { $s = 482; continue; } - /* */ if ($assertType(_ref$11, ptrType$6, true)[1]) { $s = 483; continue; } - /* */ $s = 484; continue; - /* if ($assertType(_ref$11, ptrType$7, true)[1] || $assertType(_ref$11, ptrType$4, true)[1]) { */ case 481: + _r$212 = fc[0].newLocalVariable("_v"); /* */ $s = 492; case 492: if($c) { $c = false; _r$212 = _r$212.$blk(); } if (_r$212 && _r$212.$blk !== undefined) { break s; } + resultVar$1 = _r$212; + _r$213 = fc[0].translateExpr(e$5.X); /* */ $s = 493; case 493: if($c) { $c = false; _r$213 = _r$213.$blk(); } if (_r$213 && _r$213.$blk !== undefined) { break s; } + _arg$108 = _r$213; + _arg$109 = new $String(resultVar$1); + _arg$110 = new $Int(skipCase$1); + $r = fc[0].Printf("if (%s) { %s = true; $s = %d; continue s; }", new sliceType([_arg$108, _arg$109, _arg$110])); /* */ $s = 494; case 494: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _arg$111 = new $String(resultVar$1); + _r$214 = fc[0].translateExpr(e$5.Y); /* */ $s = 495; case 495: if($c) { $c = false; _r$214 = _r$214.$blk(); } if (_r$214 && _r$214.$blk !== undefined) { break s; } + _arg$112 = _r$214; + _arg$113 = new $Int(skipCase$1); + $r = fc[0].Printf("%s = %s; case %d:", new sliceType([_arg$111, _arg$112, _arg$113])); /* */ $s = 496; case 496: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$215 = fc[0].formatExpr("%s", new sliceType([new $String(resultVar$1)])); /* */ $s = 497; case 497: if($c) { $c = false; _r$215 = _r$215.$blk(); } if (_r$215 && _r$215.$blk !== undefined) { break s; } + $24r$80 = _r$215; + $s = 498; case 498: return $24r$80; + /* } */ case 491: + _r$216 = fc[0].formatExpr("%e || %e", new sliceType([e$5.X, e$5.Y])); /* */ $s = 499; case 499: if($c) { $c = false; _r$216 = _r$216.$blk(); } if (_r$216 && _r$216.$blk !== undefined) { break s; } + $24r$81 = _r$216; + $s = 500; case 500: return $24r$81; + /* } else if (_8 === (39)) { */ case 474: + _r$217 = t$6.Underlying(); /* */ $s = 501; case 501: if($c) { $c = false; _r$217 = _r$217.$blk(); } if (_r$217 && _r$217.$blk !== undefined) { break s; } + _ref$11 = _r$217; + /* */ if ($assertType(_ref$11, ptrType$7, true)[1] || $assertType(_ref$11, ptrType$4, true)[1]) { $s = 502; continue; } + /* */ if ($assertType(_ref$11, ptrType$9, true)[1]) { $s = 503; continue; } + /* */ if ($assertType(_ref$11, ptrType$6, true)[1]) { $s = 504; continue; } + /* */ $s = 505; continue; + /* if ($assertType(_ref$11, ptrType$7, true)[1] || $assertType(_ref$11, ptrType$4, true)[1]) { */ case 502: u = _ref$11; - _arg$104 = e$5.X; - _arg$105 = e$5.Y; - _r$208 = fc[0].typeName(t$6); /* */ $s = 485; case 485: if($c) { $c = false; _r$208 = _r$208.$blk(); } if (_r$208 && _r$208.$blk !== undefined) { break s; } - _arg$106 = new $String(_r$208); - _r$209 = fc[0].formatExpr("$equal(%e, %e, %s)", new sliceType([_arg$104, _arg$105, _arg$106])); /* */ $s = 486; case 486: if($c) { $c = false; _r$209 = _r$209.$blk(); } if (_r$209 && _r$209.$blk !== undefined) { break s; } - $24r$79 = _r$209; - $s = 487; case 487: return $24r$79; - /* } else if ($assertType(_ref$11, ptrType$9, true)[1]) { */ case 482: + _arg$114 = e$5.X; + _arg$115 = e$5.Y; + _r$218 = fc[0].typeName(t$6); /* */ $s = 506; case 506: if($c) { $c = false; _r$218 = _r$218.$blk(); } if (_r$218 && _r$218.$blk !== undefined) { break s; } + _arg$116 = new $String(_r$218); + _r$219 = fc[0].formatExpr("$equal(%e, %e, %s)", new sliceType([_arg$114, _arg$115, _arg$116])); /* */ $s = 507; case 507: if($c) { $c = false; _r$219 = _r$219.$blk(); } if (_r$219 && _r$219.$blk !== undefined) { break s; } + $24r$82 = _r$219; + $s = 508; case 508: return $24r$82; + /* } else if ($assertType(_ref$11, ptrType$9, true)[1]) { */ case 503: u$1 = _ref$11.$val; - _r$210 = fc[0].translateImplicitConversion(e$5.X, t$6); /* */ $s = 488; case 488: if($c) { $c = false; _r$210 = _r$210.$blk(); } if (_r$210 && _r$210.$blk !== undefined) { break s; } - _arg$107 = _r$210; - _r$211 = fc[0].translateImplicitConversion(e$5.Y, t$6); /* */ $s = 489; case 489: if($c) { $c = false; _r$211 = _r$211.$blk(); } if (_r$211 && _r$211.$blk !== undefined) { break s; } - _arg$108 = _r$211; - _r$212 = fc[0].formatExpr("$interfaceIsEqual(%s, %s)", new sliceType([_arg$107, _arg$108])); /* */ $s = 490; case 490: if($c) { $c = false; _r$212 = _r$212.$blk(); } if (_r$212 && _r$212.$blk !== undefined) { break s; } - $24r$80 = _r$212; - $s = 491; case 491: return $24r$80; - /* } else if ($assertType(_ref$11, ptrType$6, true)[1]) { */ case 483: + _r$220 = fc[0].translateImplicitConversion(e$5.X, t$6); /* */ $s = 509; case 509: if($c) { $c = false; _r$220 = _r$220.$blk(); } if (_r$220 && _r$220.$blk !== undefined) { break s; } + _arg$117 = _r$220; + _r$221 = fc[0].translateImplicitConversion(e$5.Y, t$6); /* */ $s = 510; case 510: if($c) { $c = false; _r$221 = _r$221.$blk(); } if (_r$221 && _r$221.$blk !== undefined) { break s; } + _arg$118 = _r$221; + _r$222 = fc[0].formatExpr("$interfaceIsEqual(%s, %s)", new sliceType([_arg$117, _arg$118])); /* */ $s = 511; case 511: if($c) { $c = false; _r$222 = _r$222.$blk(); } if (_r$222 && _r$222.$blk !== undefined) { break s; } + $24r$83 = _r$222; + $s = 512; case 512: return $24r$83; + /* } else if ($assertType(_ref$11, ptrType$6, true)[1]) { */ case 504: u$2 = _ref$11.$val; - /* */ if (isBoolean(u$2)) { $s = 492; continue; } - /* */ $s = 493; continue; - /* if (isBoolean(u$2)) { */ case 492: - _r$213 = analysis.BoolValue(e$5.X, fc[0].pkgCtx.Info.Info); /* */ $s = 494; case 494: if($c) { $c = false; _r$213 = _r$213.$blk(); } if (_r$213 && _r$213.$blk !== undefined) { break s; } - _tuple$17 = _r$213; - b = _tuple$17[0]; - ok$8 = _tuple$17[1]; - /* */ if (ok$8 && b) { $s = 495; continue; } - /* */ $s = 496; continue; - /* if (ok$8 && b) { */ case 495: - _r$214 = fc[0].translateExpr(e$5.Y); /* */ $s = 497; case 497: if($c) { $c = false; _r$214 = _r$214.$blk(); } if (_r$214 && _r$214.$blk !== undefined) { break s; } - $24r$81 = _r$214; - $s = 498; case 498: return $24r$81; - /* } */ case 496: - _r$215 = analysis.BoolValue(e$5.Y, fc[0].pkgCtx.Info.Info); /* */ $s = 499; case 499: if($c) { $c = false; _r$215 = _r$215.$blk(); } if (_r$215 && _r$215.$blk !== undefined) { break s; } - _tuple$18 = _r$215; - b$1 = _tuple$18[0]; + /* */ if (isBoolean(u$2)) { $s = 513; continue; } + /* */ $s = 514; continue; + /* if (isBoolean(u$2)) { */ case 513: + _r$223 = analysis.BoolValue(e$5.X, fc[0].pkgCtx.Info.Info); /* */ $s = 515; case 515: if($c) { $c = false; _r$223 = _r$223.$blk(); } if (_r$223 && _r$223.$blk !== undefined) { break s; } + _tuple$18 = _r$223; + b = _tuple$18[0]; ok$9 = _tuple$18[1]; - /* */ if (ok$9 && b$1) { $s = 500; continue; } - /* */ $s = 501; continue; - /* if (ok$9 && b$1) { */ case 500: - _r$216 = fc[0].translateExpr(e$5.X); /* */ $s = 502; case 502: if($c) { $c = false; _r$216 = _r$216.$blk(); } if (_r$216 && _r$216.$blk !== undefined) { break s; } - $24r$82 = _r$216; - $s = 503; case 503: return $24r$82; - /* } */ case 501: - /* } */ case 493: - /* } */ case 484: - _r$217 = fc[0].translateImplicitConversion(e$5.X, t$6); /* */ $s = 504; case 504: if($c) { $c = false; _r$217 = _r$217.$blk(); } if (_r$217 && _r$217.$blk !== undefined) { break s; } - _arg$109 = _r$217; - _r$218 = fc[0].translateImplicitConversion(e$5.Y, t$6); /* */ $s = 505; case 505: if($c) { $c = false; _r$218 = _r$218.$blk(); } if (_r$218 && _r$218.$blk !== undefined) { break s; } - _arg$110 = _r$218; - _r$219 = fc[0].formatExpr("%s === %s", new sliceType([_arg$109, _arg$110])); /* */ $s = 506; case 506: if($c) { $c = false; _r$219 = _r$219.$blk(); } if (_r$219 && _r$219.$blk !== undefined) { break s; } - $24r$83 = _r$219; - $s = 507; case 507: return $24r$83; - /* } else { */ case 454: + /* */ if (ok$9 && b) { $s = 516; continue; } + /* */ $s = 517; continue; + /* if (ok$9 && b) { */ case 516: + _r$224 = fc[0].translateExpr(e$5.Y); /* */ $s = 518; case 518: if($c) { $c = false; _r$224 = _r$224.$blk(); } if (_r$224 && _r$224.$blk !== undefined) { break s; } + $24r$84 = _r$224; + $s = 519; case 519: return $24r$84; + /* } */ case 517: + _r$225 = analysis.BoolValue(e$5.Y, fc[0].pkgCtx.Info.Info); /* */ $s = 520; case 520: if($c) { $c = false; _r$225 = _r$225.$blk(); } if (_r$225 && _r$225.$blk !== undefined) { break s; } + _tuple$19 = _r$225; + b$1 = _tuple$19[0]; + ok$10 = _tuple$19[1]; + /* */ if (ok$10 && b$1) { $s = 521; continue; } + /* */ $s = 522; continue; + /* if (ok$10 && b$1) { */ case 521: + _r$226 = fc[0].translateExpr(e$5.X); /* */ $s = 523; case 523: if($c) { $c = false; _r$226 = _r$226.$blk(); } if (_r$226 && _r$226.$blk !== undefined) { break s; } + $24r$85 = _r$226; + $s = 524; case 524: return $24r$85; + /* } */ case 522: + /* } */ case 514: + /* } */ case 505: + _r$227 = fc[0].translateImplicitConversion(e$5.X, t$6); /* */ $s = 525; case 525: if($c) { $c = false; _r$227 = _r$227.$blk(); } if (_r$227 && _r$227.$blk !== undefined) { break s; } + _arg$119 = _r$227; + _r$228 = fc[0].translateImplicitConversion(e$5.Y, t$6); /* */ $s = 526; case 526: if($c) { $c = false; _r$228 = _r$228.$blk(); } if (_r$228 && _r$228.$blk !== undefined) { break s; } + _arg$120 = _r$228; + _r$229 = fc[0].formatExpr("%s === %s", new sliceType([_arg$119, _arg$120])); /* */ $s = 527; case 527: if($c) { $c = false; _r$229 = _r$229.$blk(); } if (_r$229 && _r$229.$blk !== undefined) { break s; } + $24r$86 = _r$229; + $s = 528; case 528: return $24r$86; + /* } else { */ case 475: $panic(new token.Token(e$5.Op)); - /* } */ case 455: - case 449: + /* } */ case 476: + case 470: $s = 87; continue; /* } else if ($assertType(_ref$1, ptrType$71, true)[1]) { */ case 76: e$6 = _ref$1.$val; - _r$220 = fc[0].formatParenExpr("%e", new sliceType([e$6.X])); /* */ $s = 508; case 508: if($c) { $c = false; _r$220 = _r$220.$blk(); } if (_r$220 && _r$220.$blk !== undefined) { break s; } - $24r$84 = _r$220; - $s = 509; case 509: return $24r$84; + _r$230 = fc[0].formatParenExpr("%e", new sliceType([e$6.X])); /* */ $s = 529; case 529: if($c) { $c = false; _r$230 = _r$230.$blk(); } if (_r$230 && _r$230.$blk !== undefined) { break s; } + $24r$87 = _r$230; + $s = 530; case 530: return $24r$87; /* } else if ($assertType(_ref$1, ptrType$54, true)[1]) { */ case 77: e$7 = _ref$1.$val; - _r$221 = fc[0].typeOf(e$7.X); /* */ $s = 510; case 510: if($c) { $c = false; _r$221 = _r$221.$blk(); } if (_r$221 && _r$221.$blk !== undefined) { break s; } - _r$222 = _r$221.Underlying(); /* */ $s = 511; case 511: if($c) { $c = false; _r$222 = _r$222.$blk(); } if (_r$222 && _r$222.$blk !== undefined) { break s; } - _ref$12 = _r$222; - /* */ if ($assertType(_ref$12, ptrType$3, true)[1]) { $s = 512; continue; } - /* */ if ($assertType(_ref$12, ptrType$7, true)[1]) { $s = 513; continue; } - /* */ if ($assertType(_ref$12, ptrType$11, true)[1]) { $s = 514; continue; } - /* */ if ($assertType(_ref$12, ptrType$10, true)[1]) { $s = 515; continue; } - /* */ if ($assertType(_ref$12, ptrType$6, true)[1]) { $s = 516; continue; } - /* */ if ($assertType(_ref$12, ptrType$2, true)[1]) { $s = 517; continue; } - /* */ $s = 518; continue; - /* if ($assertType(_ref$12, ptrType$3, true)[1]) { */ case 512: + _r$231 = fc[0].typeOf(e$7.X); /* */ $s = 531; case 531: if($c) { $c = false; _r$231 = _r$231.$blk(); } if (_r$231 && _r$231.$blk !== undefined) { break s; } + _r$232 = _r$231.Underlying(); /* */ $s = 532; case 532: if($c) { $c = false; _r$232 = _r$232.$blk(); } if (_r$232 && _r$232.$blk !== undefined) { break s; } + _ref$12 = _r$232; + /* */ if ($assertType(_ref$12, ptrType$3, true)[1]) { $s = 533; continue; } + /* */ if ($assertType(_ref$12, ptrType$7, true)[1]) { $s = 534; continue; } + /* */ if ($assertType(_ref$12, ptrType$11, true)[1]) { $s = 535; continue; } + /* */ if ($assertType(_ref$12, ptrType$10, true)[1]) { $s = 536; continue; } + /* */ if ($assertType(_ref$12, ptrType$6, true)[1]) { $s = 537; continue; } + /* */ if ($assertType(_ref$12, ptrType$2, true)[1]) { $s = 538; continue; } + /* */ $s = 539; continue; + /* if ($assertType(_ref$12, ptrType$3, true)[1]) { */ case 533: t$7 = _ref$12.$val; - _r$223 = t$7.Elem().Underlying(); /* */ $s = 520; case 520: if($c) { $c = false; _r$223 = _r$223.$blk(); } if (_r$223 && _r$223.$blk !== undefined) { break s; } - _tuple$19 = $assertType(_r$223, ptrType$7, true); - ok$10 = _tuple$19[1]; - /* */ if (!ok$10) { $s = 521; continue; } - /* */ $s = 522; continue; - /* if (!ok$10) { */ case 521: - _r$224 = fmt.Errorf("non-array pointers can't be used with index expression", sliceType.nil); /* */ $s = 523; case 523: if($c) { $c = false; _r$224 = _r$224.$blk(); } if (_r$224 && _r$224.$blk !== undefined) { break s; } - $panic(_r$224); - /* } */ case 522: - _r$225 = e$7.X.Pos(); /* */ $s = 524; case 524: if($c) { $c = false; _r$225 = _r$225.$blk(); } if (_r$225 && _r$225.$blk !== undefined) { break s; } - x$12 = new ast.StarExpr.ptr(_r$225, e$7.X); + _r$233 = t$7.Elem().Underlying(); /* */ $s = 541; case 541: if($c) { $c = false; _r$233 = _r$233.$blk(); } if (_r$233 && _r$233.$blk !== undefined) { break s; } + _tuple$20 = $assertType(_r$233, ptrType$7, true); + ok$11 = _tuple$20[1]; + /* */ if (!ok$11) { $s = 542; continue; } + /* */ $s = 543; continue; + /* if (!ok$11) { */ case 542: + _r$234 = fmt.Errorf("non-array pointers can't be used with index expression", sliceType.nil); /* */ $s = 544; case 544: if($c) { $c = false; _r$234 = _r$234.$blk(); } if (_r$234 && _r$234.$blk !== undefined) { break s; } + $panic(_r$234); + /* } */ case 543: + _r$235 = e$7.X.Pos(); /* */ $s = 545; case 545: if($c) { $c = false; _r$235 = _r$235.$blk(); } if (_r$235 && _r$235.$blk !== undefined) { break s; } + x$12 = new ast.StarExpr.ptr(_r$235, e$7.X); astutil.SetType(fc[0].pkgCtx.Info.Info, t$7.Elem(), x$12); e$7.X = x$12; - _r$226 = fc[0].translateExpr(e$7); /* */ $s = 525; case 525: if($c) { $c = false; _r$226 = _r$226.$blk(); } if (_r$226 && _r$226.$blk !== undefined) { break s; } - $24r$85 = _r$226; - $s = 526; case 526: return $24r$85; - /* } else if ($assertType(_ref$12, ptrType$7, true)[1]) { */ case 513: + _r$236 = fc[0].translateExpr(e$7); /* */ $s = 546; case 546: if($c) { $c = false; _r$236 = _r$236.$blk(); } if (_r$236 && _r$236.$blk !== undefined) { break s; } + $24r$88 = _r$236; + $s = 547; case 547: return $24r$88; + /* } else if ($assertType(_ref$12, ptrType$7, true)[1]) { */ case 534: t$8 = _ref$12.$val; - pattern = rangeCheck("%1e[%2f]", !($interfaceIsEqual((_entry$8 = $mapIndex(fc[0].pkgCtx.Info.Info.Types,ast.Expr.keyFor(e$7.Index)), _entry$8 !== undefined ? _entry$8.v : new types.TypeAndValue.ptr(0, $ifaceNil, $ifaceNil)).Value, $ifaceNil)), true); - _r$227 = fc[0].formatExpr(pattern, new sliceType([e$7.X, e$7.Index])); /* */ $s = 527; case 527: if($c) { $c = false; _r$227 = _r$227.$blk(); } if (_r$227 && _r$227.$blk !== undefined) { break s; } - $24r$86 = _r$227; - $s = 528; case 528: return $24r$86; - /* } else if ($assertType(_ref$12, ptrType$11, true)[1]) { */ case 514: + pattern$2 = rangeCheck("%1e[%2f]", !($interfaceIsEqual((_entry$10 = $mapIndex(fc[0].pkgCtx.Info.Info.Types,ast.Expr.keyFor(e$7.Index)), _entry$10 !== undefined ? _entry$10.v : new types.TypeAndValue.ptr(0, $ifaceNil, $ifaceNil)).Value, $ifaceNil)), true); + _r$237 = fc[0].formatExpr(pattern$2, new sliceType([e$7.X, e$7.Index])); /* */ $s = 548; case 548: if($c) { $c = false; _r$237 = _r$237.$blk(); } if (_r$237 && _r$237.$blk !== undefined) { break s; } + $24r$89 = _r$237; + $s = 549; case 549: return $24r$89; + /* } else if ($assertType(_ref$12, ptrType$11, true)[1]) { */ case 535: t$9 = _ref$12.$val; - _r$228 = fc[0].formatExpr(rangeCheck("%1e.$array[%1e.$offset + %2f]", !($interfaceIsEqual((_entry$9 = $mapIndex(fc[0].pkgCtx.Info.Info.Types,ast.Expr.keyFor(e$7.Index)), _entry$9 !== undefined ? _entry$9.v : new types.TypeAndValue.ptr(0, $ifaceNil, $ifaceNil)).Value, $ifaceNil)), false), new sliceType([e$7.X, e$7.Index])); /* */ $s = 529; case 529: if($c) { $c = false; _r$228 = _r$228.$blk(); } if (_r$228 && _r$228.$blk !== undefined) { break s; } - $24r$87 = _r$228; - $s = 530; case 530: return $24r$87; - /* } else if ($assertType(_ref$12, ptrType$10, true)[1]) { */ case 515: + _r$238 = fc[0].formatExpr(rangeCheck("%1e.$array[%1e.$offset + %2f]", !($interfaceIsEqual((_entry$11 = $mapIndex(fc[0].pkgCtx.Info.Info.Types,ast.Expr.keyFor(e$7.Index)), _entry$11 !== undefined ? _entry$11.v : new types.TypeAndValue.ptr(0, $ifaceNil, $ifaceNil)).Value, $ifaceNil)), false), new sliceType([e$7.X, e$7.Index])); /* */ $s = 550; case 550: if($c) { $c = false; _r$238 = _r$238.$blk(); } if (_r$238 && _r$238.$blk !== undefined) { break s; } + $24r$90 = _r$238; + $s = 551; case 551: return $24r$90; + /* } else if ($assertType(_ref$12, ptrType$10, true)[1]) { */ case 536: t$10 = _ref$12.$val; - _r$229 = fc[0].typeOf(e$7.Index); /* */ $s = 533; case 533: if($c) { $c = false; _r$229 = _r$229.$blk(); } if (_r$229 && _r$229.$blk !== undefined) { break s; } - _r$230 = typesutil.IsJsObject(_r$229); /* */ $s = 534; case 534: if($c) { $c = false; _r$230 = _r$230.$blk(); } if (_r$230 && _r$230.$blk !== undefined) { break s; } - /* */ if (_r$230) { $s = 531; continue; } - /* */ $s = 532; continue; - /* if (_r$230) { */ case 531: - _r$231 = e$7.Index.Pos(); /* */ $s = 535; case 535: if($c) { $c = false; _r$231 = _r$231.$blk(); } if (_r$231 && _r$231.$blk !== undefined) { break s; } - fc[0].pkgCtx.errList = $append(fc[0].pkgCtx.errList, (x$13 = new types.Error.ptr(fc[0].pkgCtx.fileSet, _r$231, "cannot use js.Object as map key", false, 0, 0, 0), new x$13.constructor.elem(x$13))); - /* } */ case 532: - _r$232 = fc[0].typeName(t$10.Key()); /* */ $s = 536; case 536: if($c) { $c = false; _r$232 = _r$232.$blk(); } if (_r$232 && _r$232.$blk !== undefined) { break s; } - _arg$111 = new $String(_r$232); - _r$233 = fc[0].translateImplicitConversion(e$7.Index, t$10.Key()); /* */ $s = 537; case 537: if($c) { $c = false; _r$233 = _r$233.$blk(); } if (_r$233 && _r$233.$blk !== undefined) { break s; } - _arg$112 = _r$233; - _r$234 = fmt.Sprintf("%s.keyFor(%s)", new sliceType([_arg$111, _arg$112])); /* */ $s = 538; case 538: if($c) { $c = false; _r$234 = _r$234.$blk(); } if (_r$234 && _r$234.$blk !== undefined) { break s; } - key = _r$234; - _tuple$20 = $assertType(exprType, ptrType$1, true); - isTuple$1 = _tuple$20[1]; - /* */ if (isTuple$1) { $s = 539; continue; } - /* */ $s = 540; continue; - /* if (isTuple$1) { */ case 539: - _r$235 = fc[0].newLocalVariable("_entry"); /* */ $s = 541; case 541: if($c) { $c = false; _r$235 = _r$235.$blk(); } if (_r$235 && _r$235.$blk !== undefined) { break s; } - _arg$113 = new $String(_r$235); - _arg$114 = e$7.X; - _arg$115 = new $String(key); - _r$236 = fc[0].zeroValue(t$10.Elem()); /* */ $s = 542; case 542: if($c) { $c = false; _r$236 = _r$236.$blk(); } if (_r$236 && _r$236.$blk !== undefined) { break s; } - _arg$116 = _r$236; - _r$237 = fc[0].formatExpr("(%1s = $mapIndex(%2e,%3s), %1s !== undefined ? [%1s.v, true] : [%4e, false])", new sliceType([_arg$113, _arg$114, _arg$115, _arg$116])); /* */ $s = 543; case 543: if($c) { $c = false; _r$237 = _r$237.$blk(); } if (_r$237 && _r$237.$blk !== undefined) { break s; } - $24r$88 = _r$237; - $s = 544; case 544: return $24r$88; - /* } */ case 540: - _r$238 = fc[0].newLocalVariable("_entry"); /* */ $s = 545; case 545: if($c) { $c = false; _r$238 = _r$238.$blk(); } if (_r$238 && _r$238.$blk !== undefined) { break s; } - _arg$117 = new $String(_r$238); - _arg$118 = e$7.X; - _arg$119 = new $String(key); - _r$239 = fc[0].zeroValue(t$10.Elem()); /* */ $s = 546; case 546: if($c) { $c = false; _r$239 = _r$239.$blk(); } if (_r$239 && _r$239.$blk !== undefined) { break s; } - _arg$120 = _r$239; - _r$240 = fc[0].formatExpr("(%1s = $mapIndex(%2e,%3s), %1s !== undefined ? %1s.v : %4e)", new sliceType([_arg$117, _arg$118, _arg$119, _arg$120])); /* */ $s = 547; case 547: if($c) { $c = false; _r$240 = _r$240.$blk(); } if (_r$240 && _r$240.$blk !== undefined) { break s; } - $24r$89 = _r$240; - $s = 548; case 548: return $24r$89; - /* } else if ($assertType(_ref$12, ptrType$6, true)[1]) { */ case 516: + _r$239 = fc[0].typeOf(e$7.Index); /* */ $s = 554; case 554: if($c) { $c = false; _r$239 = _r$239.$blk(); } if (_r$239 && _r$239.$blk !== undefined) { break s; } + _r$240 = typesutil.IsJsObject(_r$239); /* */ $s = 555; case 555: if($c) { $c = false; _r$240 = _r$240.$blk(); } if (_r$240 && _r$240.$blk !== undefined) { break s; } + /* */ if (_r$240) { $s = 552; continue; } + /* */ $s = 553; continue; + /* if (_r$240) { */ case 552: + _r$241 = e$7.Index.Pos(); /* */ $s = 556; case 556: if($c) { $c = false; _r$241 = _r$241.$blk(); } if (_r$241 && _r$241.$blk !== undefined) { break s; } + fc[0].pkgCtx.errList = $append(fc[0].pkgCtx.errList, (x$13 = new types.Error.ptr(fc[0].pkgCtx.fileSet, _r$241, "cannot use js.Object as map key", false, 0, 0, 0), new x$13.constructor.elem(x$13))); + /* } */ case 553: + _r$242 = fc[0].typeName(t$10.Key()); /* */ $s = 557; case 557: if($c) { $c = false; _r$242 = _r$242.$blk(); } if (_r$242 && _r$242.$blk !== undefined) { break s; } + _arg$121 = new $String(_r$242); + _r$243 = fc[0].translateImplicitConversion(e$7.Index, t$10.Key()); /* */ $s = 558; case 558: if($c) { $c = false; _r$243 = _r$243.$blk(); } if (_r$243 && _r$243.$blk !== undefined) { break s; } + _arg$122 = _r$243; + _r$244 = fmt.Sprintf("%s.keyFor(%s)", new sliceType([_arg$121, _arg$122])); /* */ $s = 559; case 559: if($c) { $c = false; _r$244 = _r$244.$blk(); } if (_r$244 && _r$244.$blk !== undefined) { break s; } + key = _r$244; + _tuple$21 = $assertType(exprType, ptrType$1, true); + isTuple$1 = _tuple$21[1]; + /* */ if (isTuple$1) { $s = 560; continue; } + /* */ $s = 561; continue; + /* if (isTuple$1) { */ case 560: + _r$245 = fc[0].newLocalVariable("_entry"); /* */ $s = 562; case 562: if($c) { $c = false; _r$245 = _r$245.$blk(); } if (_r$245 && _r$245.$blk !== undefined) { break s; } + _arg$123 = new $String(_r$245); + _arg$124 = e$7.X; + _arg$125 = new $String(key); + _r$246 = fc[0].zeroValue(t$10.Elem()); /* */ $s = 563; case 563: if($c) { $c = false; _r$246 = _r$246.$blk(); } if (_r$246 && _r$246.$blk !== undefined) { break s; } + _arg$126 = _r$246; + _r$247 = fc[0].formatExpr("(%1s = $mapIndex(%2e,%3s), %1s !== undefined ? [%1s.v, true] : [%4e, false])", new sliceType([_arg$123, _arg$124, _arg$125, _arg$126])); /* */ $s = 564; case 564: if($c) { $c = false; _r$247 = _r$247.$blk(); } if (_r$247 && _r$247.$blk !== undefined) { break s; } + $24r$91 = _r$247; + $s = 565; case 565: return $24r$91; + /* } */ case 561: + _r$248 = fc[0].newLocalVariable("_entry"); /* */ $s = 566; case 566: if($c) { $c = false; _r$248 = _r$248.$blk(); } if (_r$248 && _r$248.$blk !== undefined) { break s; } + _arg$127 = new $String(_r$248); + _arg$128 = e$7.X; + _arg$129 = new $String(key); + _r$249 = fc[0].zeroValue(t$10.Elem()); /* */ $s = 567; case 567: if($c) { $c = false; _r$249 = _r$249.$blk(); } if (_r$249 && _r$249.$blk !== undefined) { break s; } + _arg$130 = _r$249; + _r$250 = fc[0].formatExpr("(%1s = $mapIndex(%2e,%3s), %1s !== undefined ? %1s.v : %4e)", new sliceType([_arg$127, _arg$128, _arg$129, _arg$130])); /* */ $s = 568; case 568: if($c) { $c = false; _r$250 = _r$250.$blk(); } if (_r$250 && _r$250.$blk !== undefined) { break s; } + $24r$92 = _r$250; + $s = 569; case 569: return $24r$92; + /* } else if ($assertType(_ref$12, ptrType$6, true)[1]) { */ case 537: t$11 = _ref$12.$val; - _r$241 = fc[0].formatExpr("%e.charCodeAt(%f)", new sliceType([e$7.X, e$7.Index])); /* */ $s = 549; case 549: if($c) { $c = false; _r$241 = _r$241.$blk(); } if (_r$241 && _r$241.$blk !== undefined) { break s; } - $24r$90 = _r$241; - $s = 550; case 550: return $24r$90; - /* } else if ($assertType(_ref$12, ptrType$2, true)[1]) { */ case 517: + _r$251 = fc[0].formatExpr("%e.charCodeAt(%f)", new sliceType([e$7.X, e$7.Index])); /* */ $s = 570; case 570: if($c) { $c = false; _r$251 = _r$251.$blk(); } if (_r$251 && _r$251.$blk !== undefined) { break s; } + $24r$93 = _r$251; + $s = 571; case 571: return $24r$93; + /* } else if ($assertType(_ref$12, ptrType$2, true)[1]) { */ case 538: t$12 = _ref$12.$val; _ref$13 = e$7.X; - /* */ if ($assertType(_ref$13, ptrType$12, true)[1]) { $s = 551; continue; } - /* */ if ($assertType(_ref$13, ptrType$23, true)[1]) { $s = 552; continue; } - /* */ $s = 553; continue; - /* if ($assertType(_ref$13, ptrType$12, true)[1]) { */ case 551: + /* */ if ($assertType(_ref$13, ptrType$12, true)[1]) { $s = 572; continue; } + /* */ if ($assertType(_ref$13, ptrType$23, true)[1]) { $s = 573; continue; } + /* */ $s = 574; continue; + /* if ($assertType(_ref$13, ptrType$12, true)[1]) { */ case 572: u$3 = _ref$13.$val; - _r$242 = fc[0].instanceOf(u$3); /* */ $s = 555; case 555: if($c) { $c = false; _r$242 = _r$242.$blk(); } if (_r$242 && _r$242.$blk !== undefined) { break s; } - _r$243 = fc[0].instName($clone(_r$242, typeparams.Instance)); /* */ $s = 556; case 556: if($c) { $c = false; _r$243 = _r$243.$blk(); } if (_r$243 && _r$243.$blk !== undefined) { break s; } - _arg$121 = new $String(_r$243); - _r$244 = fc[0].formatExpr("%s", new sliceType([_arg$121])); /* */ $s = 557; case 557: if($c) { $c = false; _r$244 = _r$244.$blk(); } if (_r$244 && _r$244.$blk !== undefined) { break s; } - $24r$91 = _r$244; - $s = 558; case 558: return $24r$91; - /* } else if ($assertType(_ref$13, ptrType$23, true)[1]) { */ case 552: + _r$252 = fc[0].instanceOf(u$3); /* */ $s = 576; case 576: if($c) { $c = false; _r$252 = _r$252.$blk(); } if (_r$252 && _r$252.$blk !== undefined) { break s; } + _r$253 = fc[0].instName($clone(_r$252, typeparams.Instance)); /* */ $s = 577; case 577: if($c) { $c = false; _r$253 = _r$253.$blk(); } if (_r$253 && _r$253.$blk !== undefined) { break s; } + _arg$131 = new $String(_r$253); + _r$254 = fc[0].formatExpr("%s", new sliceType([_arg$131])); /* */ $s = 578; case 578: if($c) { $c = false; _r$254 = _r$254.$blk(); } if (_r$254 && _r$254.$blk !== undefined) { break s; } + $24r$94 = _r$254; + $s = 579; case 579: return $24r$94; + /* } else if ($assertType(_ref$13, ptrType$23, true)[1]) { */ case 573: u$4 = _ref$13.$val; - _r$245 = fc[0].instanceOf(u$4.Sel); /* */ $s = 559; case 559: if($c) { $c = false; _r$245 = _r$245.$blk(); } if (_r$245 && _r$245.$blk !== undefined) { break s; } - _r$246 = fc[0].instName($clone(_r$245, typeparams.Instance)); /* */ $s = 560; case 560: if($c) { $c = false; _r$246 = _r$246.$blk(); } if (_r$246 && _r$246.$blk !== undefined) { break s; } - _arg$122 = new $String(_r$246); - _r$247 = fc[0].formatExpr("%s", new sliceType([_arg$122])); /* */ $s = 561; case 561: if($c) { $c = false; _r$247 = _r$247.$blk(); } if (_r$247 && _r$247.$blk !== undefined) { break s; } - $24r$92 = _r$247; - $s = 562; case 562: return $24r$92; - /* } else { */ case 553: + _r$255 = fc[0].instanceOf(u$4.Sel); /* */ $s = 580; case 580: if($c) { $c = false; _r$255 = _r$255.$blk(); } if (_r$255 && _r$255.$blk !== undefined) { break s; } + _r$256 = fc[0].instName($clone(_r$255, typeparams.Instance)); /* */ $s = 581; case 581: if($c) { $c = false; _r$256 = _r$256.$blk(); } if (_r$256 && _r$256.$blk !== undefined) { break s; } + _arg$132 = new $String(_r$256); + _r$257 = fc[0].formatExpr("%s", new sliceType([_arg$132])); /* */ $s = 582; case 582: if($c) { $c = false; _r$257 = _r$257.$blk(); } if (_r$257 && _r$257.$blk !== undefined) { break s; } + $24r$95 = _r$257; + $s = 583; case 583: return $24r$95; + /* } else { */ case 574: u$5 = _ref$13; - _arg$123 = u$5; - _r$248 = fc[0].typeOf(e$7.X); /* */ $s = 563; case 563: if($c) { $c = false; _r$248 = _r$248.$blk(); } if (_r$248 && _r$248.$blk !== undefined) { break s; } - _arg$124 = _r$248; - _r$249 = fmt.Errorf("unhandled IndexExpr of a Signature: %T in %T", new sliceType([_arg$123, _arg$124])); /* */ $s = 564; case 564: if($c) { $c = false; _r$249 = _r$249.$blk(); } if (_r$249 && _r$249.$blk !== undefined) { break s; } - $panic(_r$249); - /* } */ case 554: - $s = 519; continue; - /* } else { */ case 518: + _arg$133 = u$5; + _r$258 = fc[0].typeOf(e$7.X); /* */ $s = 584; case 584: if($c) { $c = false; _r$258 = _r$258.$blk(); } if (_r$258 && _r$258.$blk !== undefined) { break s; } + _arg$134 = _r$258; + _r$259 = fmt.Errorf("unhandled IndexExpr of a Signature: %T in %T", new sliceType([_arg$133, _arg$134])); /* */ $s = 585; case 585: if($c) { $c = false; _r$259 = _r$259.$blk(); } if (_r$259 && _r$259.$blk !== undefined) { break s; } + $panic(_r$259); + /* } */ case 575: + $s = 540; continue; + /* } else { */ case 539: t$13 = _ref$12; - _arg$125 = t$13; - _r$250 = fc[0].typeOf(e$7.X); /* */ $s = 565; case 565: if($c) { $c = false; _r$250 = _r$250.$blk(); } if (_r$250 && _r$250.$blk !== undefined) { break s; } - _arg$126 = _r$250; - _r$251 = fmt.Errorf("unhandled IndexExpr: %T in %T", new sliceType([_arg$125, _arg$126])); /* */ $s = 566; case 566: if($c) { $c = false; _r$251 = _r$251.$blk(); } if (_r$251 && _r$251.$blk !== undefined) { break s; } - $panic(_r$251); - /* } */ case 519: + _arg$135 = t$13; + _r$260 = fc[0].typeOf(e$7.X); /* */ $s = 586; case 586: if($c) { $c = false; _r$260 = _r$260.$blk(); } if (_r$260 && _r$260.$blk !== undefined) { break s; } + _arg$136 = _r$260; + _r$261 = fmt.Errorf("unhandled IndexExpr: %T in %T", new sliceType([_arg$135, _arg$136])); /* */ $s = 587; case 587: if($c) { $c = false; _r$261 = _r$261.$blk(); } if (_r$261 && _r$261.$blk !== undefined) { break s; } + $panic(_r$261); + /* } */ case 540: $s = 87; continue; /* } else if ($assertType(_ref$1, ptrType$72, true)[1]) { */ case 78: e$8 = _ref$1.$val; - _r$252 = fc[0].typeOf(e$8.X); /* */ $s = 567; case 567: if($c) { $c = false; _r$252 = _r$252.$blk(); } if (_r$252 && _r$252.$blk !== undefined) { break s; } - _r$253 = _r$252.Underlying(); /* */ $s = 568; case 568: if($c) { $c = false; _r$253 = _r$253.$blk(); } if (_r$253 && _r$253.$blk !== undefined) { break s; } - _ref$14 = _r$253; - /* */ if ($assertType(_ref$14, ptrType$2, true)[1]) { $s = 569; continue; } - /* */ $s = 570; continue; - /* if ($assertType(_ref$14, ptrType$2, true)[1]) { */ case 569: + _r$262 = fc[0].typeOf(e$8.X); /* */ $s = 588; case 588: if($c) { $c = false; _r$262 = _r$262.$blk(); } if (_r$262 && _r$262.$blk !== undefined) { break s; } + _r$263 = _r$262.Underlying(); /* */ $s = 589; case 589: if($c) { $c = false; _r$263 = _r$263.$blk(); } if (_r$263 && _r$263.$blk !== undefined) { break s; } + _ref$14 = _r$263; + /* */ if ($assertType(_ref$14, ptrType$2, true)[1]) { $s = 590; continue; } + /* */ $s = 591; continue; + /* if ($assertType(_ref$14, ptrType$2, true)[1]) { */ case 590: t$14 = _ref$14.$val; _ref$15 = e$8.X; - /* */ if ($assertType(_ref$15, ptrType$12, true)[1]) { $s = 572; continue; } - /* */ if ($assertType(_ref$15, ptrType$23, true)[1]) { $s = 573; continue; } - /* */ $s = 574; continue; - /* if ($assertType(_ref$15, ptrType$12, true)[1]) { */ case 572: + /* */ if ($assertType(_ref$15, ptrType$12, true)[1]) { $s = 593; continue; } + /* */ if ($assertType(_ref$15, ptrType$23, true)[1]) { $s = 594; continue; } + /* */ $s = 595; continue; + /* if ($assertType(_ref$15, ptrType$12, true)[1]) { */ case 593: u$6 = _ref$15.$val; - _r$254 = fc[0].instanceOf(u$6); /* */ $s = 576; case 576: if($c) { $c = false; _r$254 = _r$254.$blk(); } if (_r$254 && _r$254.$blk !== undefined) { break s; } - _r$255 = fc[0].instName($clone(_r$254, typeparams.Instance)); /* */ $s = 577; case 577: if($c) { $c = false; _r$255 = _r$255.$blk(); } if (_r$255 && _r$255.$blk !== undefined) { break s; } - _arg$127 = new $String(_r$255); - _r$256 = fc[0].formatExpr("%s", new sliceType([_arg$127])); /* */ $s = 578; case 578: if($c) { $c = false; _r$256 = _r$256.$blk(); } if (_r$256 && _r$256.$blk !== undefined) { break s; } - $24r$93 = _r$256; - $s = 579; case 579: return $24r$93; - /* } else if ($assertType(_ref$15, ptrType$23, true)[1]) { */ case 573: + _r$264 = fc[0].instanceOf(u$6); /* */ $s = 597; case 597: if($c) { $c = false; _r$264 = _r$264.$blk(); } if (_r$264 && _r$264.$blk !== undefined) { break s; } + _r$265 = fc[0].instName($clone(_r$264, typeparams.Instance)); /* */ $s = 598; case 598: if($c) { $c = false; _r$265 = _r$265.$blk(); } if (_r$265 && _r$265.$blk !== undefined) { break s; } + _arg$137 = new $String(_r$265); + _r$266 = fc[0].formatExpr("%s", new sliceType([_arg$137])); /* */ $s = 599; case 599: if($c) { $c = false; _r$266 = _r$266.$blk(); } if (_r$266 && _r$266.$blk !== undefined) { break s; } + $24r$96 = _r$266; + $s = 600; case 600: return $24r$96; + /* } else if ($assertType(_ref$15, ptrType$23, true)[1]) { */ case 594: u$7 = _ref$15.$val; - _r$257 = fc[0].instanceOf(u$7.Sel); /* */ $s = 580; case 580: if($c) { $c = false; _r$257 = _r$257.$blk(); } if (_r$257 && _r$257.$blk !== undefined) { break s; } - _r$258 = fc[0].instName($clone(_r$257, typeparams.Instance)); /* */ $s = 581; case 581: if($c) { $c = false; _r$258 = _r$258.$blk(); } if (_r$258 && _r$258.$blk !== undefined) { break s; } - _arg$128 = new $String(_r$258); - _r$259 = fc[0].formatExpr("%s", new sliceType([_arg$128])); /* */ $s = 582; case 582: if($c) { $c = false; _r$259 = _r$259.$blk(); } if (_r$259 && _r$259.$blk !== undefined) { break s; } - $24r$94 = _r$259; - $s = 583; case 583: return $24r$94; - /* } else { */ case 574: + _r$267 = fc[0].instanceOf(u$7.Sel); /* */ $s = 601; case 601: if($c) { $c = false; _r$267 = _r$267.$blk(); } if (_r$267 && _r$267.$blk !== undefined) { break s; } + _r$268 = fc[0].instName($clone(_r$267, typeparams.Instance)); /* */ $s = 602; case 602: if($c) { $c = false; _r$268 = _r$268.$blk(); } if (_r$268 && _r$268.$blk !== undefined) { break s; } + _arg$138 = new $String(_r$268); + _r$269 = fc[0].formatExpr("%s", new sliceType([_arg$138])); /* */ $s = 603; case 603: if($c) { $c = false; _r$269 = _r$269.$blk(); } if (_r$269 && _r$269.$blk !== undefined) { break s; } + $24r$97 = _r$269; + $s = 604; case 604: return $24r$97; + /* } else { */ case 595: u$8 = _ref$15; - _arg$129 = u$8; - _r$260 = fc[0].typeOf(e$8.X); /* */ $s = 584; case 584: if($c) { $c = false; _r$260 = _r$260.$blk(); } if (_r$260 && _r$260.$blk !== undefined) { break s; } - _arg$130 = _r$260; - _r$261 = fmt.Errorf("unhandled IndexListExpr of a Signature: %T in %T", new sliceType([_arg$129, _arg$130])); /* */ $s = 585; case 585: if($c) { $c = false; _r$261 = _r$261.$blk(); } if (_r$261 && _r$261.$blk !== undefined) { break s; } - $panic(_r$261); - /* } */ case 575: - $s = 571; continue; - /* } else { */ case 570: + _arg$139 = u$8; + _r$270 = fc[0].typeOf(e$8.X); /* */ $s = 605; case 605: if($c) { $c = false; _r$270 = _r$270.$blk(); } if (_r$270 && _r$270.$blk !== undefined) { break s; } + _arg$140 = _r$270; + _r$271 = fmt.Errorf("unhandled IndexListExpr of a Signature: %T in %T", new sliceType([_arg$139, _arg$140])); /* */ $s = 606; case 606: if($c) { $c = false; _r$271 = _r$271.$blk(); } if (_r$271 && _r$271.$blk !== undefined) { break s; } + $panic(_r$271); + /* } */ case 596: + $s = 592; continue; + /* } else { */ case 591: t$15 = _ref$14; - _r$262 = fmt.Errorf("unhandled IndexListExpr: %T", new sliceType([t$15])); /* */ $s = 586; case 586: if($c) { $c = false; _r$262 = _r$262.$blk(); } if (_r$262 && _r$262.$blk !== undefined) { break s; } - $panic(_r$262); - /* } */ case 571: + _r$272 = fmt.Errorf("unhandled IndexListExpr: %T", new sliceType([t$15])); /* */ $s = 607; case 607: if($c) { $c = false; _r$272 = _r$272.$blk(); } if (_r$272 && _r$272.$blk !== undefined) { break s; } + $panic(_r$272); + /* } */ case 592: $s = 87; continue; /* } else if ($assertType(_ref$1, ptrType$73, true)[1]) { */ case 79: e$9 = _ref$1.$val; - _r$263 = fc[0].typeOf(e$9.X); /* */ $s = 587; case 587: if($c) { $c = false; _r$263 = _r$263.$blk(); } if (_r$263 && _r$263.$blk !== undefined) { break s; } - _r$264 = _r$263.Underlying(); /* */ $s = 588; case 588: if($c) { $c = false; _r$264 = _r$264.$blk(); } if (_r$264 && _r$264.$blk !== undefined) { break s; } - _tuple$21 = $assertType(_r$264, ptrType$6, true); - b$2 = _tuple$21[0]; - isBasic$1 = _tuple$21[1]; - /* */ if (isBasic$1 && isString(b$2)) { $s = 589; continue; } - /* */ $s = 590; continue; - /* if (isBasic$1 && isString(b$2)) { */ case 589: - /* */ if ($interfaceIsEqual(e$9.Low, $ifaceNil) && $interfaceIsEqual(e$9.High, $ifaceNil)) { $s = 592; continue; } - /* */ if ($interfaceIsEqual(e$9.Low, $ifaceNil)) { $s = 593; continue; } - /* */ if ($interfaceIsEqual(e$9.High, $ifaceNil)) { $s = 594; continue; } - /* */ $s = 595; continue; - /* if ($interfaceIsEqual(e$9.Low, $ifaceNil) && $interfaceIsEqual(e$9.High, $ifaceNil)) { */ case 592: - _r$265 = fc[0].translateExpr(e$9.X); /* */ $s = 597; case 597: if($c) { $c = false; _r$265 = _r$265.$blk(); } if (_r$265 && _r$265.$blk !== undefined) { break s; } - $24r$95 = _r$265; - $s = 598; case 598: return $24r$95; - /* } else if ($interfaceIsEqual(e$9.Low, $ifaceNil)) { */ case 593: - _r$266 = fc[0].formatExpr("$substring(%e, 0, %f)", new sliceType([e$9.X, e$9.High])); /* */ $s = 599; case 599: if($c) { $c = false; _r$266 = _r$266.$blk(); } if (_r$266 && _r$266.$blk !== undefined) { break s; } - $24r$96 = _r$266; - $s = 600; case 600: return $24r$96; - /* } else if ($interfaceIsEqual(e$9.High, $ifaceNil)) { */ case 594: - _r$267 = fc[0].formatExpr("$substring(%e, %f)", new sliceType([e$9.X, e$9.Low])); /* */ $s = 601; case 601: if($c) { $c = false; _r$267 = _r$267.$blk(); } if (_r$267 && _r$267.$blk !== undefined) { break s; } - $24r$97 = _r$267; - $s = 602; case 602: return $24r$97; - /* } else { */ case 595: - _r$268 = fc[0].formatExpr("$substring(%e, %f, %f)", new sliceType([e$9.X, e$9.Low, e$9.High])); /* */ $s = 603; case 603: if($c) { $c = false; _r$268 = _r$268.$blk(); } if (_r$268 && _r$268.$blk !== undefined) { break s; } - $24r$98 = _r$268; - $s = 604; case 604: return $24r$98; - /* } */ case 596: - case 591: - /* } */ case 590: - _r$269 = fc[0].translateConversionToSlice(e$9.X, exprType); /* */ $s = 605; case 605: if($c) { $c = false; _r$269 = _r$269.$blk(); } if (_r$269 && _r$269.$blk !== undefined) { break s; } - slice = _r$269; - /* */ if ($interfaceIsEqual(e$9.Low, $ifaceNil) && $interfaceIsEqual(e$9.High, $ifaceNil)) { $s = 607; continue; } - /* */ if ($interfaceIsEqual(e$9.Low, $ifaceNil)) { $s = 608; continue; } - /* */ if ($interfaceIsEqual(e$9.High, $ifaceNil)) { $s = 609; continue; } - /* */ $s = 610; continue; - /* if ($interfaceIsEqual(e$9.Low, $ifaceNil) && $interfaceIsEqual(e$9.High, $ifaceNil)) { */ case 607: - _r$270 = fc[0].formatExpr("%s", new sliceType([slice])); /* */ $s = 612; case 612: if($c) { $c = false; _r$270 = _r$270.$blk(); } if (_r$270 && _r$270.$blk !== undefined) { break s; } - $24r$99 = _r$270; - $s = 613; case 613: return $24r$99; - /* } else if ($interfaceIsEqual(e$9.Low, $ifaceNil)) { */ case 608: - /* */ if (!($interfaceIsEqual(e$9.Max, $ifaceNil))) { $s = 614; continue; } - /* */ $s = 615; continue; - /* if (!($interfaceIsEqual(e$9.Max, $ifaceNil))) { */ case 614: - _r$271 = fc[0].formatExpr("$subslice(%s, 0, %f, %f)", new sliceType([slice, e$9.High, e$9.Max])); /* */ $s = 616; case 616: if($c) { $c = false; _r$271 = _r$271.$blk(); } if (_r$271 && _r$271.$blk !== undefined) { break s; } - $24r$100 = _r$271; - $s = 617; case 617: return $24r$100; - /* } */ case 615: - _r$272 = fc[0].formatExpr("$subslice(%s, 0, %f)", new sliceType([slice, e$9.High])); /* */ $s = 618; case 618: if($c) { $c = false; _r$272 = _r$272.$blk(); } if (_r$272 && _r$272.$blk !== undefined) { break s; } - $24r$101 = _r$272; - $s = 619; case 619: return $24r$101; - /* } else if ($interfaceIsEqual(e$9.High, $ifaceNil)) { */ case 609: - _r$273 = fc[0].formatExpr("$subslice(%s, %f)", new sliceType([slice, e$9.Low])); /* */ $s = 620; case 620: if($c) { $c = false; _r$273 = _r$273.$blk(); } if (_r$273 && _r$273.$blk !== undefined) { break s; } - $24r$102 = _r$273; - $s = 621; case 621: return $24r$102; - /* } else { */ case 610: - /* */ if (!($interfaceIsEqual(e$9.Max, $ifaceNil))) { $s = 622; continue; } - /* */ $s = 623; continue; - /* if (!($interfaceIsEqual(e$9.Max, $ifaceNil))) { */ case 622: - _r$274 = fc[0].formatExpr("$subslice(%s, %f, %f, %f)", new sliceType([slice, e$9.Low, e$9.High, e$9.Max])); /* */ $s = 624; case 624: if($c) { $c = false; _r$274 = _r$274.$blk(); } if (_r$274 && _r$274.$blk !== undefined) { break s; } - $24r$103 = _r$274; - $s = 625; case 625: return $24r$103; - /* } */ case 623: - _r$275 = fc[0].formatExpr("$subslice(%s, %f, %f)", new sliceType([slice, e$9.Low, e$9.High])); /* */ $s = 626; case 626: if($c) { $c = false; _r$275 = _r$275.$blk(); } if (_r$275 && _r$275.$blk !== undefined) { break s; } - $24r$104 = _r$275; - $s = 627; case 627: return $24r$104; - /* } */ case 611: - case 606: + _r$273 = fc[0].typeOf(e$9.X); /* */ $s = 608; case 608: if($c) { $c = false; _r$273 = _r$273.$blk(); } if (_r$273 && _r$273.$blk !== undefined) { break s; } + _r$274 = _r$273.Underlying(); /* */ $s = 609; case 609: if($c) { $c = false; _r$274 = _r$274.$blk(); } if (_r$274 && _r$274.$blk !== undefined) { break s; } + _tuple$22 = $assertType(_r$274, ptrType$6, true); + b$2 = _tuple$22[0]; + isBasic$1 = _tuple$22[1]; + /* */ if (isBasic$1 && isString(b$2)) { $s = 610; continue; } + /* */ $s = 611; continue; + /* if (isBasic$1 && isString(b$2)) { */ case 610: + /* */ if ($interfaceIsEqual(e$9.Low, $ifaceNil) && $interfaceIsEqual(e$9.High, $ifaceNil)) { $s = 613; continue; } + /* */ if ($interfaceIsEqual(e$9.Low, $ifaceNil)) { $s = 614; continue; } + /* */ if ($interfaceIsEqual(e$9.High, $ifaceNil)) { $s = 615; continue; } + /* */ $s = 616; continue; + /* if ($interfaceIsEqual(e$9.Low, $ifaceNil) && $interfaceIsEqual(e$9.High, $ifaceNil)) { */ case 613: + _r$275 = fc[0].translateExpr(e$9.X); /* */ $s = 618; case 618: if($c) { $c = false; _r$275 = _r$275.$blk(); } if (_r$275 && _r$275.$blk !== undefined) { break s; } + $24r$98 = _r$275; + $s = 619; case 619: return $24r$98; + /* } else if ($interfaceIsEqual(e$9.Low, $ifaceNil)) { */ case 614: + _r$276 = fc[0].formatExpr("$substring(%e, 0, %f)", new sliceType([e$9.X, e$9.High])); /* */ $s = 620; case 620: if($c) { $c = false; _r$276 = _r$276.$blk(); } if (_r$276 && _r$276.$blk !== undefined) { break s; } + $24r$99 = _r$276; + $s = 621; case 621: return $24r$99; + /* } else if ($interfaceIsEqual(e$9.High, $ifaceNil)) { */ case 615: + _r$277 = fc[0].formatExpr("$substring(%e, %f)", new sliceType([e$9.X, e$9.Low])); /* */ $s = 622; case 622: if($c) { $c = false; _r$277 = _r$277.$blk(); } if (_r$277 && _r$277.$blk !== undefined) { break s; } + $24r$100 = _r$277; + $s = 623; case 623: return $24r$100; + /* } else { */ case 616: + _r$278 = fc[0].formatExpr("$substring(%e, %f, %f)", new sliceType([e$9.X, e$9.Low, e$9.High])); /* */ $s = 624; case 624: if($c) { $c = false; _r$278 = _r$278.$blk(); } if (_r$278 && _r$278.$blk !== undefined) { break s; } + $24r$101 = _r$278; + $s = 625; case 625: return $24r$101; + /* } */ case 617: + case 612: + /* } */ case 611: + _r$279 = fc[0].translateConversionToSlice(e$9.X, exprType); /* */ $s = 626; case 626: if($c) { $c = false; _r$279 = _r$279.$blk(); } if (_r$279 && _r$279.$blk !== undefined) { break s; } + slice = _r$279; + /* */ if ($interfaceIsEqual(e$9.Low, $ifaceNil) && $interfaceIsEqual(e$9.High, $ifaceNil)) { $s = 628; continue; } + /* */ if ($interfaceIsEqual(e$9.Low, $ifaceNil)) { $s = 629; continue; } + /* */ if ($interfaceIsEqual(e$9.High, $ifaceNil)) { $s = 630; continue; } + /* */ $s = 631; continue; + /* if ($interfaceIsEqual(e$9.Low, $ifaceNil) && $interfaceIsEqual(e$9.High, $ifaceNil)) { */ case 628: + _r$280 = fc[0].formatExpr("%s", new sliceType([slice])); /* */ $s = 633; case 633: if($c) { $c = false; _r$280 = _r$280.$blk(); } if (_r$280 && _r$280.$blk !== undefined) { break s; } + $24r$102 = _r$280; + $s = 634; case 634: return $24r$102; + /* } else if ($interfaceIsEqual(e$9.Low, $ifaceNil)) { */ case 629: + /* */ if (!($interfaceIsEqual(e$9.Max, $ifaceNil))) { $s = 635; continue; } + /* */ $s = 636; continue; + /* if (!($interfaceIsEqual(e$9.Max, $ifaceNil))) { */ case 635: + _r$281 = fc[0].formatExpr("$subslice(%s, 0, %f, %f)", new sliceType([slice, e$9.High, e$9.Max])); /* */ $s = 637; case 637: if($c) { $c = false; _r$281 = _r$281.$blk(); } if (_r$281 && _r$281.$blk !== undefined) { break s; } + $24r$103 = _r$281; + $s = 638; case 638: return $24r$103; + /* } */ case 636: + _r$282 = fc[0].formatExpr("$subslice(%s, 0, %f)", new sliceType([slice, e$9.High])); /* */ $s = 639; case 639: if($c) { $c = false; _r$282 = _r$282.$blk(); } if (_r$282 && _r$282.$blk !== undefined) { break s; } + $24r$104 = _r$282; + $s = 640; case 640: return $24r$104; + /* } else if ($interfaceIsEqual(e$9.High, $ifaceNil)) { */ case 630: + _r$283 = fc[0].formatExpr("$subslice(%s, %f)", new sliceType([slice, e$9.Low])); /* */ $s = 641; case 641: if($c) { $c = false; _r$283 = _r$283.$blk(); } if (_r$283 && _r$283.$blk !== undefined) { break s; } + $24r$105 = _r$283; + $s = 642; case 642: return $24r$105; + /* } else { */ case 631: + /* */ if (!($interfaceIsEqual(e$9.Max, $ifaceNil))) { $s = 643; continue; } + /* */ $s = 644; continue; + /* if (!($interfaceIsEqual(e$9.Max, $ifaceNil))) { */ case 643: + _r$284 = fc[0].formatExpr("$subslice(%s, %f, %f, %f)", new sliceType([slice, e$9.Low, e$9.High, e$9.Max])); /* */ $s = 645; case 645: if($c) { $c = false; _r$284 = _r$284.$blk(); } if (_r$284 && _r$284.$blk !== undefined) { break s; } + $24r$106 = _r$284; + $s = 646; case 646: return $24r$106; + /* } */ case 644: + _r$285 = fc[0].formatExpr("$subslice(%s, %f, %f)", new sliceType([slice, e$9.Low, e$9.High])); /* */ $s = 647; case 647: if($c) { $c = false; _r$285 = _r$285.$blk(); } if (_r$285 && _r$285.$blk !== undefined) { break s; } + $24r$107 = _r$285; + $s = 648; case 648: return $24r$107; + /* } */ case 632: + case 627: $s = 87; continue; /* } else if ($assertType(_ref$1, ptrType$23, true)[1]) { */ case 80: e$10 = _ref$1.$val; - _r$276 = fc[0].selectionOf(e$10); /* */ $s = 628; case 628: if($c) { $c = false; _r$276 = _r$276.$blk(); } if (_r$276 && _r$276.$blk !== undefined) { break s; } - _tuple$22 = _r$276; - sel$1 = _tuple$22[0]; - ok$11 = _tuple$22[1]; - /* */ if (!ok$11) { $s = 629; continue; } - /* */ $s = 630; continue; - /* if (!ok$11) { */ case 629: - _r$277 = fc[0].instName($clone(inst, typeparams.Instance)); /* */ $s = 631; case 631: if($c) { $c = false; _r$277 = _r$277.$blk(); } if (_r$277 && _r$277.$blk !== undefined) { break s; } - _arg$131 = new $String(_r$277); - _r$278 = fc[0].formatExpr("%s", new sliceType([_arg$131])); /* */ $s = 632; case 632: if($c) { $c = false; _r$278 = _r$278.$blk(); } if (_r$278 && _r$278.$blk !== undefined) { break s; } - $24r$105 = _r$278; - $s = 633; case 633: return $24r$105; - /* } */ case 630: - _r$279 = sel$1.Kind(); /* */ $s = 635; case 635: if($c) { $c = false; _r$279 = _r$279.$blk(); } if (_r$279 && _r$279.$blk !== undefined) { break s; } - _9 = _r$279; - /* */ if (_9 === (0)) { $s = 636; continue; } - /* */ if (_9 === (1)) { $s = 637; continue; } - /* */ if (_9 === (2)) { $s = 638; continue; } - /* */ $s = 639; continue; - /* if (_9 === (0)) { */ case 636: - _arg$132 = sel$1; - _r$280 = e$10.Pos(); /* */ $s = 641; case 641: if($c) { $c = false; _r$280 = _r$280.$blk(); } if (_r$280 && _r$280.$blk !== undefined) { break s; } - _arg$133 = _r$280; - _r$281 = fc[0].translateSelection(_arg$132, _arg$133); /* */ $s = 642; case 642: if($c) { $c = false; _r$281 = _r$281.$blk(); } if (_r$281 && _r$281.$blk !== undefined) { break s; } - _tuple$23 = _r$281; - fields = _tuple$23[0]; - jsTag = _tuple$23[1]; - /* */ if (!(jsTag === "")) { $s = 643; continue; } - /* */ $s = 644; continue; - /* if (!(jsTag === "")) { */ case 643: - _r$282 = sel$1.Type(); /* */ $s = 645; case 645: if($c) { $c = false; _r$282 = _r$282.$blk(); } if (_r$282 && _r$282.$blk !== undefined) { break s; } - _tuple$24 = $assertType(_r$282, ptrType$2, true); - ok$12 = _tuple$24[1]; - /* */ if (ok$12) { $s = 646; continue; } - /* */ $s = 647; continue; - /* if (ok$12) { */ case 646: - _arg$134 = e$10.X; - _arg$135 = new $String(strings.Join(fields, ".")); - _r$283 = formatJSStructTagVal(jsTag); /* */ $s = 648; case 648: if($c) { $c = false; _r$283 = _r$283.$blk(); } if (_r$283 && _r$283.$blk !== undefined) { break s; } - _arg$136 = new $String(_r$283); - _r$284 = sel$1.Type(); /* */ $s = 649; case 649: if($c) { $c = false; _r$284 = _r$284.$blk(); } if (_r$284 && _r$284.$blk !== undefined) { break s; } - _r$285 = fc[0].typeName(_r$284); /* */ $s = 650; case 650: if($c) { $c = false; _r$285 = _r$285.$blk(); } if (_r$285 && _r$285.$blk !== undefined) { break s; } - _arg$137 = new $String(_r$285); - _r$286 = fc[0].formatExpr("$internalize(%1e.%2s%3s, %4s, %1e.%2s)", new sliceType([_arg$134, _arg$135, _arg$136, _arg$137])); /* */ $s = 651; case 651: if($c) { $c = false; _r$286 = _r$286.$blk(); } if (_r$286 && _r$286.$blk !== undefined) { break s; } - $24r$106 = _r$286; - $s = 652; case 652: return $24r$106; - /* } */ case 647: - _arg$138 = e$10.X; - _arg$139 = new $String(strings.Join(fields, ".")); - _r$287 = formatJSStructTagVal(jsTag); /* */ $s = 653; case 653: if($c) { $c = false; _r$287 = _r$287.$blk(); } if (_r$287 && _r$287.$blk !== undefined) { break s; } - _arg$140 = new $String(_r$287); - _r$288 = fc[0].formatExpr("%e.%s%s", new sliceType([_arg$138, _arg$139, _arg$140])); /* */ $s = 654; case 654: if($c) { $c = false; _r$288 = _r$288.$blk(); } if (_r$288 && _r$288.$blk !== undefined) { break s; } - _arg$141 = _r$288; - _r$289 = sel$1.Type(); /* */ $s = 655; case 655: if($c) { $c = false; _r$289 = _r$289.$blk(); } if (_r$289 && _r$289.$blk !== undefined) { break s; } - _arg$142 = _r$289; - _r$290 = fc[0].internalize(_arg$141, _arg$142); /* */ $s = 656; case 656: if($c) { $c = false; _r$290 = _r$290.$blk(); } if (_r$290 && _r$290.$blk !== undefined) { break s; } - $24r$107 = _r$290; - $s = 657; case 657: return $24r$107; - /* } */ case 644: - _r$291 = fc[0].formatExpr("%e.%s", new sliceType([e$10.X, new $String(strings.Join(fields, "."))])); /* */ $s = 658; case 658: if($c) { $c = false; _r$291 = _r$291.$blk(); } if (_r$291 && _r$291.$blk !== undefined) { break s; } - $24r$108 = _r$291; - $s = 659; case 659: return $24r$108; - /* } else if (_9 === (1)) { */ case 637: - _r$292 = fc[0].makeReceiver(e$10); /* */ $s = 660; case 660: if($c) { $c = false; _r$292 = _r$292.$blk(); } if (_r$292 && _r$292.$blk !== undefined) { break s; } - _arg$143 = _r$292; - _r$293 = sel$1.Obj(); /* */ $s = 661; case 661: if($c) { $c = false; _r$293 = _r$293.$blk(); } if (_r$293 && _r$293.$blk !== undefined) { break s; } - _r$294 = $assertType(_r$293, ptrType$21).object.Name(); /* */ $s = 662; case 662: if($c) { $c = false; _r$294 = _r$294.$blk(); } if (_r$294 && _r$294.$blk !== undefined) { break s; } - _arg$144 = new $String(_r$294); - _r$295 = fc[0].formatExpr("$methodVal(%s, \"%s\")", new sliceType([_arg$143, _arg$144])); /* */ $s = 663; case 663: if($c) { $c = false; _r$295 = _r$295.$blk(); } if (_r$295 && _r$295.$blk !== undefined) { break s; } - $24r$109 = _r$295; - $s = 664; case 664: return $24r$109; - /* } else if (_9 === (2)) { */ case 638: - _r$296 = sel$1.Obj(); /* */ $s = 665; case 665: if($c) { $c = false; _r$296 = _r$296.$blk(); } if (_r$296 && _r$296.$blk !== undefined) { break s; } - $r = fc[0].pkgCtx.Collector.DeclareDCEDep(_r$296, $convertSliceType(inst.TNest, sliceType$4), $convertSliceType(inst.TArgs, sliceType$4)); /* */ $s = 666; case 666: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$297 = sel$1.Recv(); /* */ $s = 667; case 667: if($c) { $c = false; _r$297 = _r$297.$blk(); } if (_r$297 && _r$297.$blk !== undefined) { break s; } - _r$298 = _r$297.Underlying(); /* */ $s = 668; case 668: if($c) { $c = false; _r$298 = _r$298.$blk(); } if (_r$298 && _r$298.$blk !== undefined) { break s; } - _tuple$25 = $assertType(_r$298, ptrType$9, true); - ok$13 = _tuple$25[1]; - /* */ if (ok$13) { $s = 669; continue; } - /* */ $s = 670; continue; - /* if (ok$13) { */ case 669: - _r$299 = sel$1.Obj(); /* */ $s = 671; case 671: if($c) { $c = false; _r$299 = _r$299.$blk(); } if (_r$299 && _r$299.$blk !== undefined) { break s; } - _r$300 = $assertType(_r$299, ptrType$21).object.Name(); /* */ $s = 672; case 672: if($c) { $c = false; _r$300 = _r$300.$blk(); } if (_r$300 && _r$300.$blk !== undefined) { break s; } - _arg$145 = new $String(_r$300); - _r$301 = fc[0].formatExpr("$ifaceMethodExpr(\"%s\")", new sliceType([_arg$145])); /* */ $s = 673; case 673: if($c) { $c = false; _r$301 = _r$301.$blk(); } if (_r$301 && _r$301.$blk !== undefined) { break s; } - $24r$110 = _r$301; - $s = 674; case 674: return $24r$110; - /* } */ case 670: - _r$302 = sel$1.Recv(); /* */ $s = 675; case 675: if($c) { $c = false; _r$302 = _r$302.$blk(); } if (_r$302 && _r$302.$blk !== undefined) { break s; } - _r$303 = fc[0].typeName(_r$302); /* */ $s = 676; case 676: if($c) { $c = false; _r$303 = _r$303.$blk(); } if (_r$303 && _r$303.$blk !== undefined) { break s; } - _arg$146 = new $String(_r$303); - _r$304 = sel$1.Obj(); /* */ $s = 677; case 677: if($c) { $c = false; _r$304 = _r$304.$blk(); } if (_r$304 && _r$304.$blk !== undefined) { break s; } - _r$305 = $assertType(_r$304, ptrType$21).object.Name(); /* */ $s = 678; case 678: if($c) { $c = false; _r$305 = _r$305.$blk(); } if (_r$305 && _r$305.$blk !== undefined) { break s; } - _arg$147 = new $String(_r$305); - _r$306 = fc[0].formatExpr("$methodExpr(%s, \"%s\")", new sliceType([_arg$146, _arg$147])); /* */ $s = 679; case 679: if($c) { $c = false; _r$306 = _r$306.$blk(); } if (_r$306 && _r$306.$blk !== undefined) { break s; } - $24r$111 = _r$306; + _r$286 = fc[0].selectionOf(e$10); /* */ $s = 649; case 649: if($c) { $c = false; _r$286 = _r$286.$blk(); } if (_r$286 && _r$286.$blk !== undefined) { break s; } + _tuple$23 = _r$286; + sel$1 = _tuple$23[0]; + ok$12 = _tuple$23[1]; + /* */ if (!ok$12) { $s = 650; continue; } + /* */ $s = 651; continue; + /* if (!ok$12) { */ case 650: + _r$287 = fc[0].instName($clone(inst, typeparams.Instance)); /* */ $s = 652; case 652: if($c) { $c = false; _r$287 = _r$287.$blk(); } if (_r$287 && _r$287.$blk !== undefined) { break s; } + _arg$141 = new $String(_r$287); + _r$288 = fc[0].formatExpr("%s", new sliceType([_arg$141])); /* */ $s = 653; case 653: if($c) { $c = false; _r$288 = _r$288.$blk(); } if (_r$288 && _r$288.$blk !== undefined) { break s; } + $24r$108 = _r$288; + $s = 654; case 654: return $24r$108; + /* } */ case 651: + _r$289 = sel$1.Kind(); /* */ $s = 656; case 656: if($c) { $c = false; _r$289 = _r$289.$blk(); } if (_r$289 && _r$289.$blk !== undefined) { break s; } + _9 = _r$289; + /* */ if (_9 === (0)) { $s = 657; continue; } + /* */ if (_9 === (1)) { $s = 658; continue; } + /* */ if (_9 === (2)) { $s = 659; continue; } + /* */ $s = 660; continue; + /* if (_9 === (0)) { */ case 657: + _arg$142 = sel$1; + _r$290 = e$10.Pos(); /* */ $s = 662; case 662: if($c) { $c = false; _r$290 = _r$290.$blk(); } if (_r$290 && _r$290.$blk !== undefined) { break s; } + _arg$143 = _r$290; + _r$291 = fc[0].translateSelection(_arg$142, _arg$143); /* */ $s = 663; case 663: if($c) { $c = false; _r$291 = _r$291.$blk(); } if (_r$291 && _r$291.$blk !== undefined) { break s; } + _tuple$24 = _r$291; + fields = _tuple$24[0]; + jsTag = _tuple$24[1]; + /* */ if (!(jsTag === "")) { $s = 664; continue; } + /* */ $s = 665; continue; + /* if (!(jsTag === "")) { */ case 664: + _r$292 = sel$1.Type(); /* */ $s = 666; case 666: if($c) { $c = false; _r$292 = _r$292.$blk(); } if (_r$292 && _r$292.$blk !== undefined) { break s; } + _tuple$25 = $assertType(_r$292, ptrType$2, true); + ok$13 = _tuple$25[1]; + /* */ if (ok$13) { $s = 667; continue; } + /* */ $s = 668; continue; + /* if (ok$13) { */ case 667: + _arg$144 = e$10.X; + _arg$145 = new $String(strings.Join(fields, ".")); + _r$293 = formatJSStructTagVal(jsTag); /* */ $s = 669; case 669: if($c) { $c = false; _r$293 = _r$293.$blk(); } if (_r$293 && _r$293.$blk !== undefined) { break s; } + _arg$146 = new $String(_r$293); + _r$294 = sel$1.Type(); /* */ $s = 670; case 670: if($c) { $c = false; _r$294 = _r$294.$blk(); } if (_r$294 && _r$294.$blk !== undefined) { break s; } + _r$295 = fc[0].typeName(_r$294); /* */ $s = 671; case 671: if($c) { $c = false; _r$295 = _r$295.$blk(); } if (_r$295 && _r$295.$blk !== undefined) { break s; } + _arg$147 = new $String(_r$295); + _r$296 = fc[0].formatExpr("$internalize(%1e.%2s%3s, %4s, %1e.%2s)", new sliceType([_arg$144, _arg$145, _arg$146, _arg$147])); /* */ $s = 672; case 672: if($c) { $c = false; _r$296 = _r$296.$blk(); } if (_r$296 && _r$296.$blk !== undefined) { break s; } + $24r$109 = _r$296; + $s = 673; case 673: return $24r$109; + /* } */ case 668: + _arg$148 = e$10.X; + _arg$149 = new $String(strings.Join(fields, ".")); + _r$297 = formatJSStructTagVal(jsTag); /* */ $s = 674; case 674: if($c) { $c = false; _r$297 = _r$297.$blk(); } if (_r$297 && _r$297.$blk !== undefined) { break s; } + _arg$150 = new $String(_r$297); + _r$298 = fc[0].formatExpr("%e.%s%s", new sliceType([_arg$148, _arg$149, _arg$150])); /* */ $s = 675; case 675: if($c) { $c = false; _r$298 = _r$298.$blk(); } if (_r$298 && _r$298.$blk !== undefined) { break s; } + _arg$151 = _r$298; + _r$299 = sel$1.Type(); /* */ $s = 676; case 676: if($c) { $c = false; _r$299 = _r$299.$blk(); } if (_r$299 && _r$299.$blk !== undefined) { break s; } + _arg$152 = _r$299; + _r$300 = fc[0].internalize(_arg$151, _arg$152); /* */ $s = 677; case 677: if($c) { $c = false; _r$300 = _r$300.$blk(); } if (_r$300 && _r$300.$blk !== undefined) { break s; } + $24r$110 = _r$300; + $s = 678; case 678: return $24r$110; + /* } */ case 665: + _r$301 = fc[0].formatExpr("%e.%s", new sliceType([e$10.X, new $String(strings.Join(fields, "."))])); /* */ $s = 679; case 679: if($c) { $c = false; _r$301 = _r$301.$blk(); } if (_r$301 && _r$301.$blk !== undefined) { break s; } + $24r$111 = _r$301; $s = 680; case 680: return $24r$111; - /* } else { */ case 639: - _r$307 = sel$1.Kind(); /* */ $s = 681; case 681: if($c) { $c = false; _r$307 = _r$307.$blk(); } if (_r$307 && _r$307.$blk !== undefined) { break s; } - _arg$148 = new types.SelectionKind(_r$307); - _r$308 = fmt.Sprintf("unexpected sel.Kind(): %T", new sliceType([_arg$148])); /* */ $s = 682; case 682: if($c) { $c = false; _r$308 = _r$308.$blk(); } if (_r$308 && _r$308.$blk !== undefined) { break s; } - $panic(new $String(_r$308)); - /* } */ case 640: - case 634: + /* } else if (_9 === (1)) { */ case 658: + _r$302 = fc[0].makeReceiver(e$10); /* */ $s = 681; case 681: if($c) { $c = false; _r$302 = _r$302.$blk(); } if (_r$302 && _r$302.$blk !== undefined) { break s; } + _arg$153 = _r$302; + _r$303 = sel$1.Obj(); /* */ $s = 682; case 682: if($c) { $c = false; _r$303 = _r$303.$blk(); } if (_r$303 && _r$303.$blk !== undefined) { break s; } + _r$304 = $assertType(_r$303, ptrType$21).object.Name(); /* */ $s = 683; case 683: if($c) { $c = false; _r$304 = _r$304.$blk(); } if (_r$304 && _r$304.$blk !== undefined) { break s; } + _arg$154 = new $String(_r$304); + _r$305 = fc[0].formatExpr("$methodVal(%s, \"%s\")", new sliceType([_arg$153, _arg$154])); /* */ $s = 684; case 684: if($c) { $c = false; _r$305 = _r$305.$blk(); } if (_r$305 && _r$305.$blk !== undefined) { break s; } + $24r$112 = _r$305; + $s = 685; case 685: return $24r$112; + /* } else if (_9 === (2)) { */ case 659: + _r$306 = sel$1.Obj(); /* */ $s = 686; case 686: if($c) { $c = false; _r$306 = _r$306.$blk(); } if (_r$306 && _r$306.$blk !== undefined) { break s; } + $r = fc[0].pkgCtx.Collector.DeclareDCEDep(_r$306, $convertSliceType(inst.TNest, sliceType$4), $convertSliceType(inst.TArgs, sliceType$4)); /* */ $s = 687; case 687: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$307 = sel$1.Recv(); /* */ $s = 688; case 688: if($c) { $c = false; _r$307 = _r$307.$blk(); } if (_r$307 && _r$307.$blk !== undefined) { break s; } + _r$308 = _r$307.Underlying(); /* */ $s = 689; case 689: if($c) { $c = false; _r$308 = _r$308.$blk(); } if (_r$308 && _r$308.$blk !== undefined) { break s; } + _tuple$26 = $assertType(_r$308, ptrType$9, true); + ok$14 = _tuple$26[1]; + /* */ if (ok$14) { $s = 690; continue; } + /* */ $s = 691; continue; + /* if (ok$14) { */ case 690: + _r$309 = sel$1.Obj(); /* */ $s = 692; case 692: if($c) { $c = false; _r$309 = _r$309.$blk(); } if (_r$309 && _r$309.$blk !== undefined) { break s; } + _r$310 = $assertType(_r$309, ptrType$21).object.Name(); /* */ $s = 693; case 693: if($c) { $c = false; _r$310 = _r$310.$blk(); } if (_r$310 && _r$310.$blk !== undefined) { break s; } + _arg$155 = new $String(_r$310); + _r$311 = fc[0].formatExpr("$ifaceMethodExpr(\"%s\")", new sliceType([_arg$155])); /* */ $s = 694; case 694: if($c) { $c = false; _r$311 = _r$311.$blk(); } if (_r$311 && _r$311.$blk !== undefined) { break s; } + $24r$113 = _r$311; + $s = 695; case 695: return $24r$113; + /* } */ case 691: + _r$312 = sel$1.Recv(); /* */ $s = 696; case 696: if($c) { $c = false; _r$312 = _r$312.$blk(); } if (_r$312 && _r$312.$blk !== undefined) { break s; } + _r$313 = fc[0].typeName(_r$312); /* */ $s = 697; case 697: if($c) { $c = false; _r$313 = _r$313.$blk(); } if (_r$313 && _r$313.$blk !== undefined) { break s; } + _arg$156 = new $String(_r$313); + _r$314 = sel$1.Obj(); /* */ $s = 698; case 698: if($c) { $c = false; _r$314 = _r$314.$blk(); } if (_r$314 && _r$314.$blk !== undefined) { break s; } + _r$315 = $assertType(_r$314, ptrType$21).object.Name(); /* */ $s = 699; case 699: if($c) { $c = false; _r$315 = _r$315.$blk(); } if (_r$315 && _r$315.$blk !== undefined) { break s; } + _arg$157 = new $String(_r$315); + _r$316 = fc[0].formatExpr("$methodExpr(%s, \"%s\")", new sliceType([_arg$156, _arg$157])); /* */ $s = 700; case 700: if($c) { $c = false; _r$316 = _r$316.$blk(); } if (_r$316 && _r$316.$blk !== undefined) { break s; } + $24r$114 = _r$316; + $s = 701; case 701: return $24r$114; + /* } else { */ case 660: + _r$317 = sel$1.Kind(); /* */ $s = 702; case 702: if($c) { $c = false; _r$317 = _r$317.$blk(); } if (_r$317 && _r$317.$blk !== undefined) { break s; } + _arg$158 = new types.SelectionKind(_r$317); + _r$318 = fmt.Sprintf("unexpected sel.Kind(): %T", new sliceType([_arg$158])); /* */ $s = 703; case 703: if($c) { $c = false; _r$318 = _r$318.$blk(); } if (_r$318 && _r$318.$blk !== undefined) { break s; } + $panic(new $String(_r$318)); + /* } */ case 661: + case 655: $s = 87; continue; /* } else if ($assertType(_ref$1, ptrType$74, true)[1]) { */ case 81: e$11 = _ref$1.$val; plainFun = astutil.RemoveParens(e$11.Fun); - /* */ if (astutil.IsTypeExpr(plainFun, fc[0].pkgCtx.Info.Info)) { $s = 683; continue; } - /* */ $s = 684; continue; - /* if (astutil.IsTypeExpr(plainFun, fc[0].pkgCtx.Info.Info)) { */ case 683: - _arg$149 = (x$14 = e$11.Args, (0 >= x$14.$length ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + 0])); - _r$309 = fc[0].typeOf(plainFun); /* */ $s = 685; case 685: if($c) { $c = false; _r$309 = _r$309.$blk(); } if (_r$309 && _r$309.$blk !== undefined) { break s; } - _arg$150 = _r$309; - _r$310 = fc[0].translateConversion(_arg$149, _arg$150); /* */ $s = 686; case 686: if($c) { $c = false; _r$310 = _r$310.$blk(); } if (_r$310 && _r$310.$blk !== undefined) { break s; } - _arg$151 = _r$310; - _r$311 = fc[0].formatExpr("(%s)", new sliceType([_arg$151])); /* */ $s = 687; case 687: if($c) { $c = false; _r$311 = _r$311.$blk(); } if (_r$311 && _r$311.$blk !== undefined) { break s; } - $24r$112 = _r$311; - $s = 688; case 688: return $24r$112; - /* } */ case 684: - _r$312 = fc[0].typeOf(plainFun); /* */ $s = 689; case 689: if($c) { $c = false; _r$312 = _r$312.$blk(); } if (_r$312 && _r$312.$blk !== undefined) { break s; } - _r$313 = _r$312.Underlying(); /* */ $s = 690; case 690: if($c) { $c = false; _r$313 = _r$313.$blk(); } if (_r$313 && _r$313.$blk !== undefined) { break s; } - sig = $assertType(_r$313, ptrType$2); + /* */ if (astutil.IsTypeExpr(plainFun, fc[0].pkgCtx.Info.Info)) { $s = 704; continue; } + /* */ $s = 705; continue; + /* if (astutil.IsTypeExpr(plainFun, fc[0].pkgCtx.Info.Info)) { */ case 704: + _arg$159 = (x$14 = e$11.Args, (0 >= x$14.$length ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + 0])); + _r$319 = fc[0].typeOf(plainFun); /* */ $s = 706; case 706: if($c) { $c = false; _r$319 = _r$319.$blk(); } if (_r$319 && _r$319.$blk !== undefined) { break s; } + _arg$160 = _r$319; + _r$320 = fc[0].translateConversion(_arg$159, _arg$160); /* */ $s = 707; case 707: if($c) { $c = false; _r$320 = _r$320.$blk(); } if (_r$320 && _r$320.$blk !== undefined) { break s; } + _arg$161 = _r$320; + _r$321 = fc[0].formatExpr("(%s)", new sliceType([_arg$161])); /* */ $s = 708; case 708: if($c) { $c = false; _r$321 = _r$321.$blk(); } if (_r$321 && _r$321.$blk !== undefined) { break s; } + $24r$115 = _r$321; + $s = 709; case 709: return $24r$115; + /* } */ case 705: + _r$322 = fc[0].typeOf(plainFun); /* */ $s = 710; case 710: if($c) { $c = false; _r$322 = _r$322.$blk(); } if (_r$322 && _r$322.$blk !== undefined) { break s; } + _r$323 = _r$322.Underlying(); /* */ $s = 711; case 711: if($c) { $c = false; _r$323 = _r$323.$blk(); } if (_r$323 && _r$323.$blk !== undefined) { break s; } + sig = $assertType(_r$323, ptrType$2); _ref$16 = plainFun; - /* */ if ($assertType(_ref$16, ptrType$12, true)[1]) { $s = 691; continue; } - /* */ if ($assertType(_ref$16, ptrType$23, true)[1]) { $s = 692; continue; } - /* */ $s = 693; continue; - /* if ($assertType(_ref$16, ptrType$12, true)[1]) { */ case 691: + /* */ if ($assertType(_ref$16, ptrType$12, true)[1]) { $s = 712; continue; } + /* */ if ($assertType(_ref$16, ptrType$23, true)[1]) { $s = 713; continue; } + /* */ $s = 714; continue; + /* if ($assertType(_ref$16, ptrType$12, true)[1]) { */ case 712: f$1 = _ref$16.$val; - obj$3 = (_entry$10 = $mapIndex(fc[0].pkgCtx.Info.Info.Uses,ptrType$12.keyFor(f$1)), _entry$10 !== undefined ? _entry$10.v : $ifaceNil); - _tuple$26 = $assertType(obj$3, ptrType$77, true); - o = _tuple$26[0]; - ok$14 = _tuple$26[1]; - /* */ if (ok$14) { $s = 695; continue; } - /* */ $s = 696; continue; - /* if (ok$14) { */ case 695: - _r$314 = fc[0].translateBuiltin(o.object.Name(), sig, e$11.Args, new token.Pos(e$11.Ellipsis).IsValid()); /* */ $s = 697; case 697: if($c) { $c = false; _r$314 = _r$314.$blk(); } if (_r$314 && _r$314.$blk !== undefined) { break s; } - $24r$113 = _r$314; - $s = 698; case 698: return $24r$113; - /* } */ case 696: - _r$315 = obj$3.Pkg(); /* */ $s = 702; case 702: if($c) { $c = false; _r$315 = _r$315.$blk(); } if (_r$315 && _r$315.$blk !== undefined) { break s; } - _r$316 = typesutil.IsJsPackage(_r$315); /* */ $s = 703; case 703: if($c) { $c = false; _r$316 = _r$316.$blk(); } if (_r$316 && _r$316.$blk !== undefined) { break s; } - if (!(_r$316)) { _v$2 = false; $s = 701; continue s; } - _r$317 = obj$3.Name(); /* */ $s = 704; case 704: if($c) { $c = false; _r$317 = _r$317.$blk(); } if (_r$317 && _r$317.$blk !== undefined) { break s; } - _v$2 = _r$317 === "InternalObject"; case 701: - /* */ if (_v$2) { $s = 699; continue; } - /* */ $s = 700; continue; - /* if (_v$2) { */ case 699: - _r$318 = fc[0].translateExpr((x$15 = e$11.Args, (0 >= x$15.$length ? ($throwRuntimeError("index out of range"), undefined) : x$15.$array[x$15.$offset + 0]))); /* */ $s = 705; case 705: if($c) { $c = false; _r$318 = _r$318.$blk(); } if (_r$318 && _r$318.$blk !== undefined) { break s; } - $24r$114 = _r$318; - $s = 706; case 706: return $24r$114; - /* } */ case 700: - _arg$152 = e$11; - _arg$153 = sig; - _r$319 = fc[0].translateExpr(f$1); /* */ $s = 707; case 707: if($c) { $c = false; _r$319 = _r$319.$blk(); } if (_r$319 && _r$319.$blk !== undefined) { break s; } - _arg$154 = _r$319; - _r$320 = fc[0].translateCall(_arg$152, _arg$153, _arg$154); /* */ $s = 708; case 708: if($c) { $c = false; _r$320 = _r$320.$blk(); } if (_r$320 && _r$320.$blk !== undefined) { break s; } - $24r$115 = _r$320; - $s = 709; case 709: return $24r$115; - /* } else if ($assertType(_ref$16, ptrType$23, true)[1]) { */ case 692: - f$2 = _ref$16.$val; - _r$321 = fc[0].selectionOf(f$2); /* */ $s = 710; case 710: if($c) { $c = false; _r$321 = _r$321.$blk(); } if (_r$321 && _r$321.$blk !== undefined) { break s; } - _tuple$27 = _r$321; - sel$2 = _tuple$27[0]; + obj$3 = (_entry$12 = $mapIndex(fc[0].pkgCtx.Info.Info.Uses,ptrType$12.keyFor(f$1)), _entry$12 !== undefined ? _entry$12.v : $ifaceNil); + _tuple$27 = $assertType(obj$3, ptrType$77, true); + o = _tuple$27[0]; ok$15 = _tuple$27[1]; - /* */ if (!ok$15) { $s = 711; continue; } - /* */ $s = 712; continue; - /* if (!ok$15) { */ case 711: - obj$4 = (_entry$11 = $mapIndex(fc[0].pkgCtx.Info.Info.Uses,ptrType$12.keyFor(f$2.Sel)), _entry$11 !== undefined ? _entry$11.v : $ifaceNil); - _tuple$28 = $assertType(obj$4, ptrType$77, true); - o$1 = _tuple$28[0]; - ok$16 = _tuple$28[1]; - /* */ if (ok$16) { $s = 713; continue; } - /* */ $s = 714; continue; - /* if (ok$16) { */ case 713: - _r$322 = fc[0].translateBuiltin(o$1.object.Name(), sig, e$11.Args, new token.Pos(e$11.Ellipsis).IsValid()); /* */ $s = 715; case 715: if($c) { $c = false; _r$322 = _r$322.$blk(); } if (_r$322 && _r$322.$blk !== undefined) { break s; } - $24r$116 = _r$322; - $s = 716; case 716: return $24r$116; - /* } */ case 714: - _r$323 = obj$4.Pkg(); /* */ $s = 719; case 719: if($c) { $c = false; _r$323 = _r$323.$blk(); } if (_r$323 && _r$323.$blk !== undefined) { break s; } - _r$324 = typesutil.IsJsPackage(_r$323); /* */ $s = 720; case 720: if($c) { $c = false; _r$324 = _r$324.$blk(); } if (_r$324 && _r$324.$blk !== undefined) { break s; } - /* */ if (_r$324) { $s = 717; continue; } - /* */ $s = 718; continue; - /* if (_r$324) { */ case 717: - _r$325 = obj$4.Name(); /* */ $s = 722; case 722: if($c) { $c = false; _r$325 = _r$325.$blk(); } if (_r$325 && _r$325.$blk !== undefined) { break s; } - _10 = _r$325; - /* */ if (_10 === ("Debugger")) { $s = 723; continue; } - /* */ if (_10 === ("InternalObject")) { $s = 724; continue; } - /* */ $s = 725; continue; - /* if (_10 === ("Debugger")) { */ case 723: - _r$326 = fc[0].formatExpr("debugger", sliceType.nil); /* */ $s = 726; case 726: if($c) { $c = false; _r$326 = _r$326.$blk(); } if (_r$326 && _r$326.$blk !== undefined) { break s; } - $24r$117 = _r$326; - $s = 727; case 727: return $24r$117; - /* } else if (_10 === ("InternalObject")) { */ case 724: - _r$327 = fc[0].translateExpr((x$16 = e$11.Args, (0 >= x$16.$length ? ($throwRuntimeError("index out of range"), undefined) : x$16.$array[x$16.$offset + 0]))); /* */ $s = 728; case 728: if($c) { $c = false; _r$327 = _r$327.$blk(); } if (_r$327 && _r$327.$blk !== undefined) { break s; } - $24r$118 = _r$327; - $s = 729; case 729: return $24r$118; - /* } */ case 725: - case 721: - /* } */ case 718: - _arg$155 = e$11; - _arg$156 = sig; - _r$328 = fc[0].translateExpr(f$2); /* */ $s = 730; case 730: if($c) { $c = false; _r$328 = _r$328.$blk(); } if (_r$328 && _r$328.$blk !== undefined) { break s; } - _arg$157 = _r$328; - _r$329 = fc[0].translateCall(_arg$155, _arg$156, _arg$157); /* */ $s = 731; case 731: if($c) { $c = false; _r$329 = _r$329.$blk(); } if (_r$329 && _r$329.$blk !== undefined) { break s; } - $24r$119 = _r$329; - $s = 732; case 732: return $24r$119; - /* } */ case 712: + /* */ if (ok$15) { $s = 716; continue; } + /* */ $s = 717; continue; + /* if (ok$15) { */ case 716: + _r$324 = fc[0].translateBuiltin(o.object.Name(), sig, e$11.Args, new token.Pos(e$11.Ellipsis).IsValid()); /* */ $s = 718; case 718: if($c) { $c = false; _r$324 = _r$324.$blk(); } if (_r$324 && _r$324.$blk !== undefined) { break s; } + $24r$116 = _r$324; + $s = 719; case 719: return $24r$116; + /* } */ case 717: + _r$325 = obj$3.Pkg(); /* */ $s = 723; case 723: if($c) { $c = false; _r$325 = _r$325.$blk(); } if (_r$325 && _r$325.$blk !== undefined) { break s; } + _r$326 = typesutil.IsJsPackage(_r$325); /* */ $s = 724; case 724: if($c) { $c = false; _r$326 = _r$326.$blk(); } if (_r$326 && _r$326.$blk !== undefined) { break s; } + if (!(_r$326)) { _v$2 = false; $s = 722; continue s; } + _r$327 = obj$3.Name(); /* */ $s = 725; case 725: if($c) { $c = false; _r$327 = _r$327.$blk(); } if (_r$327 && _r$327.$blk !== undefined) { break s; } + _v$2 = _r$327 === "InternalObject"; case 722: + /* */ if (_v$2) { $s = 720; continue; } + /* */ $s = 721; continue; + /* if (_v$2) { */ case 720: + _r$328 = fc[0].translateExpr((x$15 = e$11.Args, (0 >= x$15.$length ? ($throwRuntimeError("index out of range"), undefined) : x$15.$array[x$15.$offset + 0]))); /* */ $s = 726; case 726: if($c) { $c = false; _r$328 = _r$328.$blk(); } if (_r$328 && _r$328.$blk !== undefined) { break s; } + $24r$117 = _r$328; + $s = 727; case 727: return $24r$117; + /* } */ case 721: + _arg$162 = e$11; + _arg$163 = sig; + _r$329 = fc[0].translateExpr(f$1); /* */ $s = 728; case 728: if($c) { $c = false; _r$329 = _r$329.$blk(); } if (_r$329 && _r$329.$blk !== undefined) { break s; } + _arg$164 = _r$329; + _r$330 = fc[0].translateCall(_arg$162, _arg$163, _arg$164); /* */ $s = 729; case 729: if($c) { $c = false; _r$330 = _r$330.$blk(); } if (_r$330 && _r$330.$blk !== undefined) { break s; } + $24r$118 = _r$330; + $s = 730; case 730: return $24r$118; + /* } else if ($assertType(_ref$16, ptrType$23, true)[1]) { */ case 713: + f$2 = _ref$16.$val; + _r$331 = fc[0].selectionOf(f$2); /* */ $s = 731; case 731: if($c) { $c = false; _r$331 = _r$331.$blk(); } if (_r$331 && _r$331.$blk !== undefined) { break s; } + _tuple$28 = _r$331; + sel$2 = _tuple$28[0]; + ok$16 = _tuple$28[1]; + /* */ if (!ok$16) { $s = 732; continue; } + /* */ $s = 733; continue; + /* if (!ok$16) { */ case 732: + obj$4 = (_entry$13 = $mapIndex(fc[0].pkgCtx.Info.Info.Uses,ptrType$12.keyFor(f$2.Sel)), _entry$13 !== undefined ? _entry$13.v : $ifaceNil); + _tuple$29 = $assertType(obj$4, ptrType$77, true); + o$1 = _tuple$29[0]; + ok$17 = _tuple$29[1]; + /* */ if (ok$17) { $s = 734; continue; } + /* */ $s = 735; continue; + /* if (ok$17) { */ case 734: + _r$332 = fc[0].translateBuiltin(o$1.object.Name(), sig, e$11.Args, new token.Pos(e$11.Ellipsis).IsValid()); /* */ $s = 736; case 736: if($c) { $c = false; _r$332 = _r$332.$blk(); } if (_r$332 && _r$332.$blk !== undefined) { break s; } + $24r$119 = _r$332; + $s = 737; case 737: return $24r$119; + /* } */ case 735: + _r$333 = obj$4.Pkg(); /* */ $s = 740; case 740: if($c) { $c = false; _r$333 = _r$333.$blk(); } if (_r$333 && _r$333.$blk !== undefined) { break s; } + _r$334 = typesutil.IsJsPackage(_r$333); /* */ $s = 741; case 741: if($c) { $c = false; _r$334 = _r$334.$blk(); } if (_r$334 && _r$334.$blk !== undefined) { break s; } + /* */ if (_r$334) { $s = 738; continue; } + /* */ $s = 739; continue; + /* if (_r$334) { */ case 738: + _r$335 = obj$4.Name(); /* */ $s = 743; case 743: if($c) { $c = false; _r$335 = _r$335.$blk(); } if (_r$335 && _r$335.$blk !== undefined) { break s; } + _10 = _r$335; + /* */ if (_10 === ("Debugger")) { $s = 744; continue; } + /* */ if (_10 === ("InternalObject")) { $s = 745; continue; } + /* */ if (_10 === ("MakeUint64")) { $s = 746; continue; } + /* */ if (_10 === ("Uint64High")) { $s = 747; continue; } + /* */ if (_10 === ("Uint64Low")) { $s = 748; continue; } + /* */ $s = 749; continue; + /* if (_10 === ("Debugger")) { */ case 744: + _r$336 = fc[0].formatExpr("debugger", sliceType.nil); /* */ $s = 750; case 750: if($c) { $c = false; _r$336 = _r$336.$blk(); } if (_r$336 && _r$336.$blk !== undefined) { break s; } + $24r$120 = _r$336; + $s = 751; case 751: return $24r$120; + /* } else if (_10 === ("InternalObject")) { */ case 745: + _r$337 = fc[0].translateExpr((x$16 = e$11.Args, (0 >= x$16.$length ? ($throwRuntimeError("index out of range"), undefined) : x$16.$array[x$16.$offset + 0]))); /* */ $s = 752; case 752: if($c) { $c = false; _r$337 = _r$337.$blk(); } if (_r$337 && _r$337.$blk !== undefined) { break s; } + $24r$121 = _r$337; + $s = 753; case 753: return $24r$121; + /* } else if (_10 === ("MakeUint64")) { */ case 746: + _r$338 = fc[0].formatExpr("new $Uint64(%e, %e)", new sliceType([(x$17 = e$11.Args, (0 >= x$17.$length ? ($throwRuntimeError("index out of range"), undefined) : x$17.$array[x$17.$offset + 0])), (x$18 = e$11.Args, (1 >= x$18.$length ? ($throwRuntimeError("index out of range"), undefined) : x$18.$array[x$18.$offset + 1]))])); /* */ $s = 754; case 754: if($c) { $c = false; _r$338 = _r$338.$blk(); } if (_r$338 && _r$338.$blk !== undefined) { break s; } + $24r$122 = _r$338; + $s = 755; case 755: return $24r$122; + /* } else if (_10 === ("Uint64High")) { */ case 747: + _r$339 = fc[0].formatExpr("%e.$high", new sliceType([(x$19 = e$11.Args, (0 >= x$19.$length ? ($throwRuntimeError("index out of range"), undefined) : x$19.$array[x$19.$offset + 0]))])); /* */ $s = 756; case 756: if($c) { $c = false; _r$339 = _r$339.$blk(); } if (_r$339 && _r$339.$blk !== undefined) { break s; } + $24r$123 = _r$339; + $s = 757; case 757: return $24r$123; + /* } else if (_10 === ("Uint64Low")) { */ case 748: + _r$340 = fc[0].formatExpr("%e.$low", new sliceType([(x$20 = e$11.Args, (0 >= x$20.$length ? ($throwRuntimeError("index out of range"), undefined) : x$20.$array[x$20.$offset + 0]))])); /* */ $s = 758; case 758: if($c) { $c = false; _r$340 = _r$340.$blk(); } if (_r$340 && _r$340.$blk !== undefined) { break s; } + $24r$124 = _r$340; + $s = 759; case 759: return $24r$124; + /* } */ case 749: + case 742: + /* } */ case 739: + _arg$165 = e$11; + _arg$166 = sig; + _r$341 = fc[0].translateExpr(f$2); /* */ $s = 760; case 760: if($c) { $c = false; _r$341 = _r$341.$blk(); } if (_r$341 && _r$341.$blk !== undefined) { break s; } + _arg$167 = _r$341; + _r$342 = fc[0].translateCall(_arg$165, _arg$166, _arg$167); /* */ $s = 761; case 761: if($c) { $c = false; _r$342 = _r$342.$blk(); } if (_r$342 && _r$342.$blk !== undefined) { break s; } + $24r$125 = _r$342; + $s = 762; case 762: return $24r$125; + /* } */ case 733: externalizeExpr[0] = (function(e, externalizeExpr, fc, recv) { return function funcContext·translateExpr·func2(e$17) { - var {$24r$120, _r$330, _r$331, _r$332, _r$333, _r$334, e$17, t$16, x$17, $s, $r, $c} = $restore(this, {e$17}); + var {$24r$126, _r$343, _r$344, _r$345, _r$346, _r$347, e$17, t$16, x$21, $s, $r, $c} = $restore(this, {e$17}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$330 = fc[0].typeOf(e$17); /* */ $s = 1; case 1: if($c) { $c = false; _r$330 = _r$330.$blk(); } if (_r$330 && _r$330.$blk !== undefined) { break s; } - t$16 = _r$330; - _r$331 = types.Identical(t$16, (x$17 = types.Typ, (25 >= x$17.$length ? ($throwRuntimeError("index out of range"), undefined) : x$17.$array[x$17.$offset + 25]))); /* */ $s = 4; case 4: if($c) { $c = false; _r$331 = _r$331.$blk(); } if (_r$331 && _r$331.$blk !== undefined) { break s; } - /* */ if (_r$331) { $s = 2; continue; } + _r$343 = fc[0].typeOf(e$17); /* */ $s = 1; case 1: if($c) { $c = false; _r$343 = _r$343.$blk(); } if (_r$343 && _r$343.$blk !== undefined) { break s; } + t$16 = _r$343; + _r$344 = types.Identical(t$16, (x$21 = types.Typ, (25 >= x$21.$length ? ($throwRuntimeError("index out of range"), undefined) : x$21.$array[x$21.$offset + 25]))); /* */ $s = 4; case 4: if($c) { $c = false; _r$344 = _r$344.$blk(); } if (_r$344 && _r$344.$blk !== undefined) { break s; } + /* */ if (_r$344) { $s = 2; continue; } /* */ $s = 3; continue; - /* if (_r$331) { */ case 2: + /* if (_r$344) { */ case 2: $s = -1; return "null"; /* } */ case 3: - _r$332 = fc[0].translateExpr(e$17); /* */ $s = 5; case 5: if($c) { $c = false; _r$332 = _r$332.$blk(); } if (_r$332 && _r$332.$blk !== undefined) { break s; } - _r$333 = _r$332.String(); /* */ $s = 6; case 6: if($c) { $c = false; _r$333 = _r$333.$blk(); } if (_r$333 && _r$333.$blk !== undefined) { break s; } - _r$334 = fc[0].externalize(_r$333, t$16); /* */ $s = 7; case 7: if($c) { $c = false; _r$334 = _r$334.$blk(); } if (_r$334 && _r$334.$blk !== undefined) { break s; } - $24r$120 = _r$334; - $s = 8; case 8: return $24r$120; - /* */ } return; } var $f = {$blk: funcContext·translateExpr·func2, $c: true, $r, $24r$120, _r$330, _r$331, _r$332, _r$333, _r$334, e$17, t$16, x$17, $s};return $f; + _r$345 = fc[0].translateExpr(e$17); /* */ $s = 5; case 5: if($c) { $c = false; _r$345 = _r$345.$blk(); } if (_r$345 && _r$345.$blk !== undefined) { break s; } + _r$346 = _r$345.String(); /* */ $s = 6; case 6: if($c) { $c = false; _r$346 = _r$346.$blk(); } if (_r$346 && _r$346.$blk !== undefined) { break s; } + _r$347 = fc[0].externalize(_r$346, t$16); /* */ $s = 7; case 7: if($c) { $c = false; _r$347 = _r$347.$blk(); } if (_r$347 && _r$347.$blk !== undefined) { break s; } + $24r$126 = _r$347; + $s = 8; case 8: return $24r$126; + /* */ } return; } var $f = {$blk: funcContext·translateExpr·func2, $c: true, $r, $24r$126, _r$343, _r$344, _r$345, _r$346, _r$347, e$17, t$16, x$21, $s};return $f; }; })(e, externalizeExpr, fc, recv); externalizeArgs = (function(e, externalizeExpr, fc, recv) { return function funcContext·translateExpr·func3(args) { - var {_i$6, _r$330, _ref$17, arg, args, i$5, s, $s, $r, $c} = $restore(this, {args}); + var {_i$6, _r$343, _ref$17, arg, args, i$5, s, $s, $r, $c} = $restore(this, {args}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: s = $makeSlice(sliceType$1, args.$length); _ref$17 = args; @@ -340851,31 +343382,31 @@ $packages["github.com/gopherjs/gopherjs/compiler"] = (function() { /* if (!(_i$6 < _ref$17.$length)) { break; } */ if(!(_i$6 < _ref$17.$length)) { $s = 2; continue; } i$5 = _i$6; arg = ((_i$6 < 0 || _i$6 >= _ref$17.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$17.$array[_ref$17.$offset + _i$6]); - _r$330 = externalizeExpr[0](arg); /* */ $s = 3; case 3: if($c) { $c = false; _r$330 = _r$330.$blk(); } if (_r$330 && _r$330.$blk !== undefined) { break s; } - ((i$5 < 0 || i$5 >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i$5] = _r$330); + _r$343 = externalizeExpr[0](arg); /* */ $s = 3; case 3: if($c) { $c = false; _r$343 = _r$343.$blk(); } if (_r$343 && _r$343.$blk !== undefined) { break s; } + ((i$5 < 0 || i$5 >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i$5] = _r$343); _i$6++; $s = 1; continue; case 2: $s = -1; return strings.Join(s, ", "); - /* */ } return; } var $f = {$blk: funcContext·translateExpr·func3, $c: true, $r, _i$6, _r$330, _ref$17, arg, args, i$5, s, $s};return $f; + /* */ } return; } var $f = {$blk: funcContext·translateExpr·func3, $c: true, $r, _i$6, _r$343, _ref$17, arg, args, i$5, s, $s};return $f; }; })(e, externalizeExpr, fc, recv); - _r$330 = sel$2.Kind(); /* */ $s = 734; case 734: if($c) { $c = false; _r$330 = _r$330.$blk(); } if (_r$330 && _r$330.$blk !== undefined) { break s; } - _11 = _r$330; - /* */ if (_11 === (1)) { $s = 735; continue; } - /* */ if (_11 === (0)) { $s = 736; continue; } - /* */ if (_11 === (2)) { $s = 737; continue; } - /* */ $s = 738; continue; - /* if (_11 === (1)) { */ case 735: - _r$331 = fc[0].makeReceiver(f$2); /* */ $s = 740; case 740: if($c) { $c = false; _r$331 = _r$331.$blk(); } if (_r$331 && _r$331.$blk !== undefined) { break s; } - recv[0] = _r$331; - _r$332 = sel$2.Obj(); /* */ $s = 741; case 741: if($c) { $c = false; _r$332 = _r$332.$blk(); } if (_r$332 && _r$332.$blk !== undefined) { break s; } - _r$333 = $assertType(_r$332, ptrType$21).object.Type(); /* */ $s = 742; case 742: if($c) { $c = false; _r$333 = _r$333.$blk(); } if (_r$333 && _r$333.$blk !== undefined) { break s; } - _r$334 = $assertType(_r$333, ptrType$2).Recv(); /* */ $s = 743; case 743: if($c) { $c = false; _r$334 = _r$334.$blk(); } if (_r$334 && _r$334.$blk !== undefined) { break s; } - _r$335 = _r$334.object.Type(); /* */ $s = 744; case 744: if($c) { $c = false; _r$335 = _r$335.$blk(); } if (_r$335 && _r$335.$blk !== undefined) { break s; } - declaredFuncRecv = _r$335; - /* */ if (typesutil.IsJsObject(declaredFuncRecv)) { $s = 745; continue; } - /* */ $s = 746; continue; - /* if (typesutil.IsJsObject(declaredFuncRecv)) { */ case 745: + _r$343 = sel$2.Kind(); /* */ $s = 764; case 764: if($c) { $c = false; _r$343 = _r$343.$blk(); } if (_r$343 && _r$343.$blk !== undefined) { break s; } + _11 = _r$343; + /* */ if (_11 === (1)) { $s = 765; continue; } + /* */ if (_11 === (0)) { $s = 766; continue; } + /* */ if (_11 === (2)) { $s = 767; continue; } + /* */ $s = 768; continue; + /* if (_11 === (1)) { */ case 765: + _r$344 = fc[0].makeReceiver(f$2); /* */ $s = 770; case 770: if($c) { $c = false; _r$344 = _r$344.$blk(); } if (_r$344 && _r$344.$blk !== undefined) { break s; } + recv[0] = _r$344; + _r$345 = sel$2.Obj(); /* */ $s = 771; case 771: if($c) { $c = false; _r$345 = _r$345.$blk(); } if (_r$345 && _r$345.$blk !== undefined) { break s; } + _r$346 = $assertType(_r$345, ptrType$21).object.Type(); /* */ $s = 772; case 772: if($c) { $c = false; _r$346 = _r$346.$blk(); } if (_r$346 && _r$346.$blk !== undefined) { break s; } + _r$347 = $assertType(_r$346, ptrType$2).Recv(); /* */ $s = 773; case 773: if($c) { $c = false; _r$347 = _r$347.$blk(); } if (_r$347 && _r$347.$blk !== undefined) { break s; } + _r$348 = _r$347.object.Type(); /* */ $s = 774; case 774: if($c) { $c = false; _r$348 = _r$348.$blk(); } if (_r$348 && _r$348.$blk !== undefined) { break s; } + declaredFuncRecv = _r$348; + /* */ if (typesutil.IsJsObject(declaredFuncRecv)) { $s = 775; continue; } + /* */ $s = 776; continue; + /* if (typesutil.IsJsObject(declaredFuncRecv)) { */ case 775: globalRef = (function(e, externalizeExpr, fc, recv) { return function funcContext·translateExpr·func4(id) { var id; if (recv[0].String() === "$global" && (id.charCodeAt(0) === 36) && id.length > 1) { @@ -340883,487 +343414,502 @@ $packages["github.com/gopherjs/gopherjs/compiler"] = (function() { } return recv[0].String() + "." + id; }; })(e, externalizeExpr, fc, recv); - _r$336 = sel$2.Obj(); /* */ $s = 748; case 748: if($c) { $c = false; _r$336 = _r$336.$blk(); } if (_r$336 && _r$336.$blk !== undefined) { break s; } - _r$337 = _r$336.Name(); /* */ $s = 749; case 749: if($c) { $c = false; _r$337 = _r$337.$blk(); } if (_r$337 && _r$337.$blk !== undefined) { break s; } - _12 = _r$337; - /* */ if (_12 === ("Get")) { $s = 750; continue; } - /* */ if (_12 === ("Set")) { $s = 751; continue; } - /* */ if (_12 === ("Delete")) { $s = 752; continue; } - /* */ if (_12 === ("Length")) { $s = 753; continue; } - /* */ if (_12 === ("Index")) { $s = 754; continue; } - /* */ if (_12 === ("SetIndex")) { $s = 755; continue; } - /* */ if (_12 === ("Call")) { $s = 756; continue; } - /* */ if (_12 === ("Invoke")) { $s = 757; continue; } - /* */ if (_12 === ("New")) { $s = 758; continue; } - /* */ if (_12 === ("Bool")) { $s = 759; continue; } - /* */ if (_12 === ("String")) { $s = 760; continue; } - /* */ if (_12 === ("Int")) { $s = 761; continue; } - /* */ if (_12 === ("Int64")) { $s = 762; continue; } - /* */ if (_12 === ("Uint64")) { $s = 763; continue; } - /* */ if (_12 === ("Float")) { $s = 764; continue; } - /* */ if (_12 === ("Interface")) { $s = 765; continue; } - /* */ if (_12 === ("Unsafe")) { $s = 766; continue; } - /* */ $s = 767; continue; - /* if (_12 === ("Get")) { */ case 750: - _r$338 = fc[0].identifierConstant((x$17 = e$11.Args, (0 >= x$17.$length ? ($throwRuntimeError("index out of range"), undefined) : x$17.$array[x$17.$offset + 0]))); /* */ $s = 769; case 769: if($c) { $c = false; _r$338 = _r$338.$blk(); } if (_r$338 && _r$338.$blk !== undefined) { break s; } - _tuple$29 = _r$338; - id = _tuple$29[0]; - ok$17 = _tuple$29[1]; - /* */ if (ok$17) { $s = 770; continue; } - /* */ $s = 771; continue; - /* if (ok$17) { */ case 770: - _r$339 = globalRef(id); /* */ $s = 772; case 772: if($c) { $c = false; _r$339 = _r$339.$blk(); } if (_r$339 && _r$339.$blk !== undefined) { break s; } - _arg$158 = new $String(_r$339); - _r$340 = fc[0].formatExpr("%s", new sliceType([_arg$158])); /* */ $s = 773; case 773: if($c) { $c = false; _r$340 = _r$340.$blk(); } if (_r$340 && _r$340.$blk !== undefined) { break s; } - $24r$120 = _r$340; - $s = 774; case 774: return $24r$120; - /* } */ case 771: - _r$341 = fc[0].formatExpr("%s[$externalize(%e, $String)]", new sliceType([recv[0], (x$18 = e$11.Args, (0 >= x$18.$length ? ($throwRuntimeError("index out of range"), undefined) : x$18.$array[x$18.$offset + 0]))])); /* */ $s = 775; case 775: if($c) { $c = false; _r$341 = _r$341.$blk(); } if (_r$341 && _r$341.$blk !== undefined) { break s; } - $24r$121 = _r$341; - $s = 776; case 776: return $24r$121; - /* } else if (_12 === ("Set")) { */ case 751: - _r$342 = fc[0].identifierConstant((x$19 = e$11.Args, (0 >= x$19.$length ? ($throwRuntimeError("index out of range"), undefined) : x$19.$array[x$19.$offset + 0]))); /* */ $s = 777; case 777: if($c) { $c = false; _r$342 = _r$342.$blk(); } if (_r$342 && _r$342.$blk !== undefined) { break s; } - _tuple$30 = _r$342; - id$1 = _tuple$30[0]; + _r$349 = sel$2.Obj(); /* */ $s = 778; case 778: if($c) { $c = false; _r$349 = _r$349.$blk(); } if (_r$349 && _r$349.$blk !== undefined) { break s; } + _r$350 = _r$349.Name(); /* */ $s = 779; case 779: if($c) { $c = false; _r$350 = _r$350.$blk(); } if (_r$350 && _r$350.$blk !== undefined) { break s; } + _12 = _r$350; + /* */ if (_12 === ("Get")) { $s = 780; continue; } + /* */ if (_12 === ("Set")) { $s = 781; continue; } + /* */ if (_12 === ("Delete")) { $s = 782; continue; } + /* */ if (_12 === ("Length")) { $s = 783; continue; } + /* */ if (_12 === ("Index")) { $s = 784; continue; } + /* */ if (_12 === ("SetIndex")) { $s = 785; continue; } + /* */ if (_12 === ("Call")) { $s = 786; continue; } + /* */ if (_12 === ("Invoke")) { $s = 787; continue; } + /* */ if (_12 === ("New")) { $s = 788; continue; } + /* */ if (_12 === ("Bool")) { $s = 789; continue; } + /* */ if (_12 === ("String")) { $s = 790; continue; } + /* */ if (_12 === ("Int")) { $s = 791; continue; } + /* */ if (_12 === ("Int64")) { $s = 792; continue; } + /* */ if (_12 === ("Uint64")) { $s = 793; continue; } + /* */ if (_12 === ("Float")) { $s = 794; continue; } + /* */ if (_12 === ("Interface")) { $s = 795; continue; } + /* */ if (_12 === ("Unsafe")) { $s = 796; continue; } + /* */ $s = 797; continue; + /* if (_12 === ("Get")) { */ case 780: + _r$351 = fc[0].identifierConstant((x$21 = e$11.Args, (0 >= x$21.$length ? ($throwRuntimeError("index out of range"), undefined) : x$21.$array[x$21.$offset + 0]))); /* */ $s = 799; case 799: if($c) { $c = false; _r$351 = _r$351.$blk(); } if (_r$351 && _r$351.$blk !== undefined) { break s; } + _tuple$30 = _r$351; + id = _tuple$30[0]; ok$18 = _tuple$30[1]; - /* */ if (ok$18) { $s = 778; continue; } - /* */ $s = 779; continue; - /* if (ok$18) { */ case 778: - _r$343 = globalRef(id$1); /* */ $s = 780; case 780: if($c) { $c = false; _r$343 = _r$343.$blk(); } if (_r$343 && _r$343.$blk !== undefined) { break s; } - _arg$159 = new $String(_r$343); - _r$344 = externalizeExpr[0]((x$20 = e$11.Args, (1 >= x$20.$length ? ($throwRuntimeError("index out of range"), undefined) : x$20.$array[x$20.$offset + 1]))); /* */ $s = 781; case 781: if($c) { $c = false; _r$344 = _r$344.$blk(); } if (_r$344 && _r$344.$blk !== undefined) { break s; } - _arg$160 = new $String(_r$344); - _r$345 = fc[0].formatExpr("%s = %s", new sliceType([_arg$159, _arg$160])); /* */ $s = 782; case 782: if($c) { $c = false; _r$345 = _r$345.$blk(); } if (_r$345 && _r$345.$blk !== undefined) { break s; } - $24r$122 = _r$345; - $s = 783; case 783: return $24r$122; - /* } */ case 779: - _arg$161 = recv[0]; - _arg$162 = (x$21 = e$11.Args, (0 >= x$21.$length ? ($throwRuntimeError("index out of range"), undefined) : x$21.$array[x$21.$offset + 0])); - _r$346 = externalizeExpr[0]((x$22 = e$11.Args, (1 >= x$22.$length ? ($throwRuntimeError("index out of range"), undefined) : x$22.$array[x$22.$offset + 1]))); /* */ $s = 784; case 784: if($c) { $c = false; _r$346 = _r$346.$blk(); } if (_r$346 && _r$346.$blk !== undefined) { break s; } - _arg$163 = new $String(_r$346); - _r$347 = fc[0].formatExpr("%s[$externalize(%e, $String)] = %s", new sliceType([_arg$161, _arg$162, _arg$163])); /* */ $s = 785; case 785: if($c) { $c = false; _r$347 = _r$347.$blk(); } if (_r$347 && _r$347.$blk !== undefined) { break s; } - $24r$123 = _r$347; - $s = 786; case 786: return $24r$123; - /* } else if (_12 === ("Delete")) { */ case 752: - _r$348 = fc[0].formatExpr("delete %s[$externalize(%e, $String)]", new sliceType([recv[0], (x$23 = e$11.Args, (0 >= x$23.$length ? ($throwRuntimeError("index out of range"), undefined) : x$23.$array[x$23.$offset + 0]))])); /* */ $s = 787; case 787: if($c) { $c = false; _r$348 = _r$348.$blk(); } if (_r$348 && _r$348.$blk !== undefined) { break s; } - $24r$124 = _r$348; - $s = 788; case 788: return $24r$124; - /* } else if (_12 === ("Length")) { */ case 753: - _r$349 = fc[0].formatExpr("$parseInt(%s.length)", new sliceType([recv[0]])); /* */ $s = 789; case 789: if($c) { $c = false; _r$349 = _r$349.$blk(); } if (_r$349 && _r$349.$blk !== undefined) { break s; } - $24r$125 = _r$349; - $s = 790; case 790: return $24r$125; - /* } else if (_12 === ("Index")) { */ case 754: - _r$350 = fc[0].formatExpr("%s[%e]", new sliceType([recv[0], (x$24 = e$11.Args, (0 >= x$24.$length ? ($throwRuntimeError("index out of range"), undefined) : x$24.$array[x$24.$offset + 0]))])); /* */ $s = 791; case 791: if($c) { $c = false; _r$350 = _r$350.$blk(); } if (_r$350 && _r$350.$blk !== undefined) { break s; } - $24r$126 = _r$350; - $s = 792; case 792: return $24r$126; - /* } else if (_12 === ("SetIndex")) { */ case 755: - _arg$164 = recv[0]; - _arg$165 = (x$25 = e$11.Args, (0 >= x$25.$length ? ($throwRuntimeError("index out of range"), undefined) : x$25.$array[x$25.$offset + 0])); - _r$351 = externalizeExpr[0]((x$26 = e$11.Args, (1 >= x$26.$length ? ($throwRuntimeError("index out of range"), undefined) : x$26.$array[x$26.$offset + 1]))); /* */ $s = 793; case 793: if($c) { $c = false; _r$351 = _r$351.$blk(); } if (_r$351 && _r$351.$blk !== undefined) { break s; } - _arg$166 = new $String(_r$351); - _r$352 = fc[0].formatExpr("%s[%e] = %s", new sliceType([_arg$164, _arg$165, _arg$166])); /* */ $s = 794; case 794: if($c) { $c = false; _r$352 = _r$352.$blk(); } if (_r$352 && _r$352.$blk !== undefined) { break s; } - $24r$127 = _r$352; - $s = 795; case 795: return $24r$127; - /* } else if (_12 === ("Call")) { */ case 756: - _r$353 = fc[0].identifierConstant((x$27 = e$11.Args, (0 >= x$27.$length ? ($throwRuntimeError("index out of range"), undefined) : x$27.$array[x$27.$offset + 0]))); /* */ $s = 796; case 796: if($c) { $c = false; _r$353 = _r$353.$blk(); } if (_r$353 && _r$353.$blk !== undefined) { break s; } - _tuple$31 = _r$353; - id$2 = _tuple$31[0]; + /* */ if (ok$18) { $s = 800; continue; } + /* */ $s = 801; continue; + /* if (ok$18) { */ case 800: + _r$352 = globalRef(id); /* */ $s = 802; case 802: if($c) { $c = false; _r$352 = _r$352.$blk(); } if (_r$352 && _r$352.$blk !== undefined) { break s; } + _arg$168 = new $String(_r$352); + _r$353 = fc[0].formatExpr("%s", new sliceType([_arg$168])); /* */ $s = 803; case 803: if($c) { $c = false; _r$353 = _r$353.$blk(); } if (_r$353 && _r$353.$blk !== undefined) { break s; } + $24r$126 = _r$353; + $s = 804; case 804: return $24r$126; + /* } */ case 801: + _r$354 = fc[0].formatExpr("%s[$externalize(%e, $String)]", new sliceType([recv[0], (x$22 = e$11.Args, (0 >= x$22.$length ? ($throwRuntimeError("index out of range"), undefined) : x$22.$array[x$22.$offset + 0]))])); /* */ $s = 805; case 805: if($c) { $c = false; _r$354 = _r$354.$blk(); } if (_r$354 && _r$354.$blk !== undefined) { break s; } + $24r$127 = _r$354; + $s = 806; case 806: return $24r$127; + /* } else if (_12 === ("Set")) { */ case 781: + _r$355 = fc[0].identifierConstant((x$23 = e$11.Args, (0 >= x$23.$length ? ($throwRuntimeError("index out of range"), undefined) : x$23.$array[x$23.$offset + 0]))); /* */ $s = 807; case 807: if($c) { $c = false; _r$355 = _r$355.$blk(); } if (_r$355 && _r$355.$blk !== undefined) { break s; } + _tuple$31 = _r$355; + id$1 = _tuple$31[0]; ok$19 = _tuple$31[1]; - /* */ if (ok$19) { $s = 797; continue; } - /* */ $s = 798; continue; - /* if (ok$19) { */ case 797: - /* */ if (new token.Pos(e$11.Ellipsis).IsValid()) { $s = 799; continue; } - /* */ $s = 800; continue; - /* if (new token.Pos(e$11.Ellipsis).IsValid()) { */ case 799: - _r$354 = fc[0].newLocalVariable("obj"); /* */ $s = 801; case 801: if($c) { $c = false; _r$354 = _r$354.$blk(); } if (_r$354 && _r$354.$blk !== undefined) { break s; } - objVar = _r$354; - _arg$167 = new $String(objVar); - _arg$168 = recv[0]; - _arg$169 = new $String(objVar); - _arg$170 = new $String(id$2); - _arg$171 = new $String(objVar); - _r$355 = externalizeExpr[0]((x$28 = e$11.Args, (1 >= x$28.$length ? ($throwRuntimeError("index out of range"), undefined) : x$28.$array[x$28.$offset + 1]))); /* */ $s = 802; case 802: if($c) { $c = false; _r$355 = _r$355.$blk(); } if (_r$355 && _r$355.$blk !== undefined) { break s; } - _arg$172 = new $String(_r$355); - _r$356 = fc[0].formatExpr("(%s = %s, %s.%s.apply(%s, %s))", new sliceType([_arg$167, _arg$168, _arg$169, _arg$170, _arg$171, _arg$172])); /* */ $s = 803; case 803: if($c) { $c = false; _r$356 = _r$356.$blk(); } if (_r$356 && _r$356.$blk !== undefined) { break s; } - $24r$128 = _r$356; - $s = 804; case 804: return $24r$128; - /* } */ case 800: - _r$357 = globalRef(id$2); /* */ $s = 805; case 805: if($c) { $c = false; _r$357 = _r$357.$blk(); } if (_r$357 && _r$357.$blk !== undefined) { break s; } - _arg$173 = new $String(_r$357); - _r$358 = externalizeArgs($subslice(e$11.Args, 1)); /* */ $s = 806; case 806: if($c) { $c = false; _r$358 = _r$358.$blk(); } if (_r$358 && _r$358.$blk !== undefined) { break s; } - _arg$174 = new $String(_r$358); - _r$359 = fc[0].formatExpr("%s(%s)", new sliceType([_arg$173, _arg$174])); /* */ $s = 807; case 807: if($c) { $c = false; _r$359 = _r$359.$blk(); } if (_r$359 && _r$359.$blk !== undefined) { break s; } - $24r$129 = _r$359; - $s = 808; case 808: return $24r$129; - /* } */ case 798: - /* */ if (new token.Pos(e$11.Ellipsis).IsValid()) { $s = 809; continue; } - /* */ $s = 810; continue; - /* if (new token.Pos(e$11.Ellipsis).IsValid()) { */ case 809: - _r$360 = fc[0].newLocalVariable("obj"); /* */ $s = 811; case 811: if($c) { $c = false; _r$360 = _r$360.$blk(); } if (_r$360 && _r$360.$blk !== undefined) { break s; } - objVar$1 = _r$360; - _arg$175 = new $String(objVar$1); - _arg$176 = recv[0]; - _arg$177 = new $String(objVar$1); - _arg$178 = (x$29 = e$11.Args, (0 >= x$29.$length ? ($throwRuntimeError("index out of range"), undefined) : x$29.$array[x$29.$offset + 0])); - _arg$179 = new $String(objVar$1); - _r$361 = externalizeExpr[0]((x$30 = e$11.Args, (1 >= x$30.$length ? ($throwRuntimeError("index out of range"), undefined) : x$30.$array[x$30.$offset + 1]))); /* */ $s = 812; case 812: if($c) { $c = false; _r$361 = _r$361.$blk(); } if (_r$361 && _r$361.$blk !== undefined) { break s; } - _arg$180 = new $String(_r$361); - _r$362 = fc[0].formatExpr("(%s = %s, %s[$externalize(%e, $String)].apply(%s, %s))", new sliceType([_arg$175, _arg$176, _arg$177, _arg$178, _arg$179, _arg$180])); /* */ $s = 813; case 813: if($c) { $c = false; _r$362 = _r$362.$blk(); } if (_r$362 && _r$362.$blk !== undefined) { break s; } - $24r$130 = _r$362; - $s = 814; case 814: return $24r$130; - /* } */ case 810: - _arg$181 = recv[0]; - _arg$182 = (x$31 = e$11.Args, (0 >= x$31.$length ? ($throwRuntimeError("index out of range"), undefined) : x$31.$array[x$31.$offset + 0])); - _r$363 = externalizeArgs($subslice(e$11.Args, 1)); /* */ $s = 815; case 815: if($c) { $c = false; _r$363 = _r$363.$blk(); } if (_r$363 && _r$363.$blk !== undefined) { break s; } - _arg$183 = new $String(_r$363); - _r$364 = fc[0].formatExpr("%s[$externalize(%e, $String)](%s)", new sliceType([_arg$181, _arg$182, _arg$183])); /* */ $s = 816; case 816: if($c) { $c = false; _r$364 = _r$364.$blk(); } if (_r$364 && _r$364.$blk !== undefined) { break s; } - $24r$131 = _r$364; - $s = 817; case 817: return $24r$131; - /* } else if (_12 === ("Invoke")) { */ case 757: - /* */ if (new token.Pos(e$11.Ellipsis).IsValid()) { $s = 818; continue; } - /* */ $s = 819; continue; - /* if (new token.Pos(e$11.Ellipsis).IsValid()) { */ case 818: - _arg$184 = recv[0]; - _r$365 = externalizeExpr[0]((x$32 = e$11.Args, (0 >= x$32.$length ? ($throwRuntimeError("index out of range"), undefined) : x$32.$array[x$32.$offset + 0]))); /* */ $s = 820; case 820: if($c) { $c = false; _r$365 = _r$365.$blk(); } if (_r$365 && _r$365.$blk !== undefined) { break s; } - _arg$185 = new $String(_r$365); - _r$366 = fc[0].formatExpr("%s.apply(undefined, %s)", new sliceType([_arg$184, _arg$185])); /* */ $s = 821; case 821: if($c) { $c = false; _r$366 = _r$366.$blk(); } if (_r$366 && _r$366.$blk !== undefined) { break s; } - $24r$132 = _r$366; - $s = 822; case 822: return $24r$132; - /* } */ case 819: - _arg$186 = recv[0]; - _r$367 = externalizeArgs(e$11.Args); /* */ $s = 823; case 823: if($c) { $c = false; _r$367 = _r$367.$blk(); } if (_r$367 && _r$367.$blk !== undefined) { break s; } - _arg$187 = new $String(_r$367); - _r$368 = fc[0].formatExpr("%s(%s)", new sliceType([_arg$186, _arg$187])); /* */ $s = 824; case 824: if($c) { $c = false; _r$368 = _r$368.$blk(); } if (_r$368 && _r$368.$blk !== undefined) { break s; } - $24r$133 = _r$368; + /* */ if (ok$19) { $s = 808; continue; } + /* */ $s = 809; continue; + /* if (ok$19) { */ case 808: + _r$356 = globalRef(id$1); /* */ $s = 810; case 810: if($c) { $c = false; _r$356 = _r$356.$blk(); } if (_r$356 && _r$356.$blk !== undefined) { break s; } + _arg$169 = new $String(_r$356); + _r$357 = externalizeExpr[0]((x$24 = e$11.Args, (1 >= x$24.$length ? ($throwRuntimeError("index out of range"), undefined) : x$24.$array[x$24.$offset + 1]))); /* */ $s = 811; case 811: if($c) { $c = false; _r$357 = _r$357.$blk(); } if (_r$357 && _r$357.$blk !== undefined) { break s; } + _arg$170 = new $String(_r$357); + _r$358 = fc[0].formatExpr("%s = %s", new sliceType([_arg$169, _arg$170])); /* */ $s = 812; case 812: if($c) { $c = false; _r$358 = _r$358.$blk(); } if (_r$358 && _r$358.$blk !== undefined) { break s; } + $24r$128 = _r$358; + $s = 813; case 813: return $24r$128; + /* } */ case 809: + _arg$171 = recv[0]; + _arg$172 = (x$25 = e$11.Args, (0 >= x$25.$length ? ($throwRuntimeError("index out of range"), undefined) : x$25.$array[x$25.$offset + 0])); + _r$359 = externalizeExpr[0]((x$26 = e$11.Args, (1 >= x$26.$length ? ($throwRuntimeError("index out of range"), undefined) : x$26.$array[x$26.$offset + 1]))); /* */ $s = 814; case 814: if($c) { $c = false; _r$359 = _r$359.$blk(); } if (_r$359 && _r$359.$blk !== undefined) { break s; } + _arg$173 = new $String(_r$359); + _r$360 = fc[0].formatExpr("%s[$externalize(%e, $String)] = %s", new sliceType([_arg$171, _arg$172, _arg$173])); /* */ $s = 815; case 815: if($c) { $c = false; _r$360 = _r$360.$blk(); } if (_r$360 && _r$360.$blk !== undefined) { break s; } + $24r$129 = _r$360; + $s = 816; case 816: return $24r$129; + /* } else if (_12 === ("Delete")) { */ case 782: + _r$361 = fc[0].formatExpr("delete %s[$externalize(%e, $String)]", new sliceType([recv[0], (x$27 = e$11.Args, (0 >= x$27.$length ? ($throwRuntimeError("index out of range"), undefined) : x$27.$array[x$27.$offset + 0]))])); /* */ $s = 817; case 817: if($c) { $c = false; _r$361 = _r$361.$blk(); } if (_r$361 && _r$361.$blk !== undefined) { break s; } + $24r$130 = _r$361; + $s = 818; case 818: return $24r$130; + /* } else if (_12 === ("Length")) { */ case 783: + _r$362 = fc[0].formatExpr("$parseInt(%s.length)", new sliceType([recv[0]])); /* */ $s = 819; case 819: if($c) { $c = false; _r$362 = _r$362.$blk(); } if (_r$362 && _r$362.$blk !== undefined) { break s; } + $24r$131 = _r$362; + $s = 820; case 820: return $24r$131; + /* } else if (_12 === ("Index")) { */ case 784: + _r$363 = fc[0].formatExpr("%s[%e]", new sliceType([recv[0], (x$28 = e$11.Args, (0 >= x$28.$length ? ($throwRuntimeError("index out of range"), undefined) : x$28.$array[x$28.$offset + 0]))])); /* */ $s = 821; case 821: if($c) { $c = false; _r$363 = _r$363.$blk(); } if (_r$363 && _r$363.$blk !== undefined) { break s; } + $24r$132 = _r$363; + $s = 822; case 822: return $24r$132; + /* } else if (_12 === ("SetIndex")) { */ case 785: + _arg$174 = recv[0]; + _arg$175 = (x$29 = e$11.Args, (0 >= x$29.$length ? ($throwRuntimeError("index out of range"), undefined) : x$29.$array[x$29.$offset + 0])); + _r$364 = externalizeExpr[0]((x$30 = e$11.Args, (1 >= x$30.$length ? ($throwRuntimeError("index out of range"), undefined) : x$30.$array[x$30.$offset + 1]))); /* */ $s = 823; case 823: if($c) { $c = false; _r$364 = _r$364.$blk(); } if (_r$364 && _r$364.$blk !== undefined) { break s; } + _arg$176 = new $String(_r$364); + _r$365 = fc[0].formatExpr("%s[%e] = %s", new sliceType([_arg$174, _arg$175, _arg$176])); /* */ $s = 824; case 824: if($c) { $c = false; _r$365 = _r$365.$blk(); } if (_r$365 && _r$365.$blk !== undefined) { break s; } + $24r$133 = _r$365; $s = 825; case 825: return $24r$133; - /* } else if (_12 === ("New")) { */ case 758: - /* */ if (new token.Pos(e$11.Ellipsis).IsValid()) { $s = 826; continue; } - /* */ $s = 827; continue; - /* if (new token.Pos(e$11.Ellipsis).IsValid()) { */ case 826: - _arg$188 = recv[0]; - _r$369 = externalizeExpr[0]((x$33 = e$11.Args, (0 >= x$33.$length ? ($throwRuntimeError("index out of range"), undefined) : x$33.$array[x$33.$offset + 0]))); /* */ $s = 828; case 828: if($c) { $c = false; _r$369 = _r$369.$blk(); } if (_r$369 && _r$369.$blk !== undefined) { break s; } - _arg$189 = new $String(_r$369); - _r$370 = fc[0].formatExpr("new ($global.Function.prototype.bind.apply(%s, [undefined].concat(%s)))", new sliceType([_arg$188, _arg$189])); /* */ $s = 829; case 829: if($c) { $c = false; _r$370 = _r$370.$blk(); } if (_r$370 && _r$370.$blk !== undefined) { break s; } - $24r$134 = _r$370; - $s = 830; case 830: return $24r$134; - /* } */ case 827: - _arg$190 = recv[0]; - _r$371 = externalizeArgs(e$11.Args); /* */ $s = 831; case 831: if($c) { $c = false; _r$371 = _r$371.$blk(); } if (_r$371 && _r$371.$blk !== undefined) { break s; } - _arg$191 = new $String(_r$371); - _r$372 = fc[0].formatExpr("new (%s)(%s)", new sliceType([_arg$190, _arg$191])); /* */ $s = 832; case 832: if($c) { $c = false; _r$372 = _r$372.$blk(); } if (_r$372 && _r$372.$blk !== undefined) { break s; } - $24r$135 = _r$372; - $s = 833; case 833: return $24r$135; - /* } else if (_12 === ("Bool")) { */ case 759: - _r$373 = fc[0].internalize(recv[0], (x$34 = types.Typ, (1 >= x$34.$length ? ($throwRuntimeError("index out of range"), undefined) : x$34.$array[x$34.$offset + 1]))); /* */ $s = 834; case 834: if($c) { $c = false; _r$373 = _r$373.$blk(); } if (_r$373 && _r$373.$blk !== undefined) { break s; } - $24r$136 = _r$373; - $s = 835; case 835: return $24r$136; - /* } else if (_12 === ("String")) { */ case 760: - _r$374 = fc[0].internalize(recv[0], (x$35 = types.Typ, (17 >= x$35.$length ? ($throwRuntimeError("index out of range"), undefined) : x$35.$array[x$35.$offset + 17]))); /* */ $s = 836; case 836: if($c) { $c = false; _r$374 = _r$374.$blk(); } if (_r$374 && _r$374.$blk !== undefined) { break s; } - $24r$137 = _r$374; - $s = 837; case 837: return $24r$137; - /* } else if (_12 === ("Int")) { */ case 761: - _r$375 = fc[0].internalize(recv[0], (x$36 = types.Typ, (2 >= x$36.$length ? ($throwRuntimeError("index out of range"), undefined) : x$36.$array[x$36.$offset + 2]))); /* */ $s = 838; case 838: if($c) { $c = false; _r$375 = _r$375.$blk(); } if (_r$375 && _r$375.$blk !== undefined) { break s; } - $24r$138 = _r$375; - $s = 839; case 839: return $24r$138; - /* } else if (_12 === ("Int64")) { */ case 762: - _r$376 = fc[0].internalize(recv[0], (x$37 = types.Typ, (6 >= x$37.$length ? ($throwRuntimeError("index out of range"), undefined) : x$37.$array[x$37.$offset + 6]))); /* */ $s = 840; case 840: if($c) { $c = false; _r$376 = _r$376.$blk(); } if (_r$376 && _r$376.$blk !== undefined) { break s; } - $24r$139 = _r$376; - $s = 841; case 841: return $24r$139; - /* } else if (_12 === ("Uint64")) { */ case 763: - _r$377 = fc[0].internalize(recv[0], (x$38 = types.Typ, (11 >= x$38.$length ? ($throwRuntimeError("index out of range"), undefined) : x$38.$array[x$38.$offset + 11]))); /* */ $s = 842; case 842: if($c) { $c = false; _r$377 = _r$377.$blk(); } if (_r$377 && _r$377.$blk !== undefined) { break s; } - $24r$140 = _r$377; - $s = 843; case 843: return $24r$140; - /* } else if (_12 === ("Float")) { */ case 764: - _r$378 = fc[0].internalize(recv[0], (x$39 = types.Typ, (14 >= x$39.$length ? ($throwRuntimeError("index out of range"), undefined) : x$39.$array[x$39.$offset + 14]))); /* */ $s = 844; case 844: if($c) { $c = false; _r$378 = _r$378.$blk(); } if (_r$378 && _r$378.$blk !== undefined) { break s; } - $24r$141 = _r$378; - $s = 845; case 845: return $24r$141; - /* } else if (_12 === ("Interface")) { */ case 765: - _arg$192 = recv[0]; - _r$379 = types.NewInterfaceType(sliceType$10.nil, sliceType$4.nil); /* */ $s = 846; case 846: if($c) { $c = false; _r$379 = _r$379.$blk(); } if (_r$379 && _r$379.$blk !== undefined) { break s; } - _arg$193 = _r$379; - _r$380 = fc[0].internalize(_arg$192, _arg$193); /* */ $s = 847; case 847: if($c) { $c = false; _r$380 = _r$380.$blk(); } if (_r$380 && _r$380.$blk !== undefined) { break s; } - $24r$142 = _r$380; - $s = 848; case 848: return $24r$142; - /* } else if (_12 === ("Unsafe")) { */ case 766: + /* } else if (_12 === ("Call")) { */ case 786: + _r$366 = fc[0].identifierConstant((x$31 = e$11.Args, (0 >= x$31.$length ? ($throwRuntimeError("index out of range"), undefined) : x$31.$array[x$31.$offset + 0]))); /* */ $s = 826; case 826: if($c) { $c = false; _r$366 = _r$366.$blk(); } if (_r$366 && _r$366.$blk !== undefined) { break s; } + _tuple$32 = _r$366; + id$2 = _tuple$32[0]; + ok$20 = _tuple$32[1]; + /* */ if (ok$20) { $s = 827; continue; } + /* */ $s = 828; continue; + /* if (ok$20) { */ case 827: + /* */ if (new token.Pos(e$11.Ellipsis).IsValid()) { $s = 829; continue; } + /* */ $s = 830; continue; + /* if (new token.Pos(e$11.Ellipsis).IsValid()) { */ case 829: + _r$367 = fc[0].newLocalVariable("obj"); /* */ $s = 831; case 831: if($c) { $c = false; _r$367 = _r$367.$blk(); } if (_r$367 && _r$367.$blk !== undefined) { break s; } + objVar = _r$367; + _arg$177 = new $String(objVar); + _arg$178 = recv[0]; + _arg$179 = new $String(objVar); + _arg$180 = new $String(id$2); + _arg$181 = new $String(objVar); + _r$368 = externalizeExpr[0]((x$32 = e$11.Args, (1 >= x$32.$length ? ($throwRuntimeError("index out of range"), undefined) : x$32.$array[x$32.$offset + 1]))); /* */ $s = 832; case 832: if($c) { $c = false; _r$368 = _r$368.$blk(); } if (_r$368 && _r$368.$blk !== undefined) { break s; } + _arg$182 = new $String(_r$368); + _r$369 = fc[0].formatExpr("(%s = %s, %s.%s.apply(%s, %s))", new sliceType([_arg$177, _arg$178, _arg$179, _arg$180, _arg$181, _arg$182])); /* */ $s = 833; case 833: if($c) { $c = false; _r$369 = _r$369.$blk(); } if (_r$369 && _r$369.$blk !== undefined) { break s; } + $24r$134 = _r$369; + $s = 834; case 834: return $24r$134; + /* } */ case 830: + _r$370 = globalRef(id$2); /* */ $s = 835; case 835: if($c) { $c = false; _r$370 = _r$370.$blk(); } if (_r$370 && _r$370.$blk !== undefined) { break s; } + _arg$183 = new $String(_r$370); + _r$371 = externalizeArgs($subslice(e$11.Args, 1)); /* */ $s = 836; case 836: if($c) { $c = false; _r$371 = _r$371.$blk(); } if (_r$371 && _r$371.$blk !== undefined) { break s; } + _arg$184 = new $String(_r$371); + _r$372 = fc[0].formatExpr("%s(%s)", new sliceType([_arg$183, _arg$184])); /* */ $s = 837; case 837: if($c) { $c = false; _r$372 = _r$372.$blk(); } if (_r$372 && _r$372.$blk !== undefined) { break s; } + $24r$135 = _r$372; + $s = 838; case 838: return $24r$135; + /* } */ case 828: + /* */ if (new token.Pos(e$11.Ellipsis).IsValid()) { $s = 839; continue; } + /* */ $s = 840; continue; + /* if (new token.Pos(e$11.Ellipsis).IsValid()) { */ case 839: + _r$373 = fc[0].newLocalVariable("obj"); /* */ $s = 841; case 841: if($c) { $c = false; _r$373 = _r$373.$blk(); } if (_r$373 && _r$373.$blk !== undefined) { break s; } + objVar$1 = _r$373; + _arg$185 = new $String(objVar$1); + _arg$186 = recv[0]; + _arg$187 = new $String(objVar$1); + _arg$188 = (x$33 = e$11.Args, (0 >= x$33.$length ? ($throwRuntimeError("index out of range"), undefined) : x$33.$array[x$33.$offset + 0])); + _arg$189 = new $String(objVar$1); + _r$374 = externalizeExpr[0]((x$34 = e$11.Args, (1 >= x$34.$length ? ($throwRuntimeError("index out of range"), undefined) : x$34.$array[x$34.$offset + 1]))); /* */ $s = 842; case 842: if($c) { $c = false; _r$374 = _r$374.$blk(); } if (_r$374 && _r$374.$blk !== undefined) { break s; } + _arg$190 = new $String(_r$374); + _r$375 = fc[0].formatExpr("(%s = %s, %s[$externalize(%e, $String)].apply(%s, %s))", new sliceType([_arg$185, _arg$186, _arg$187, _arg$188, _arg$189, _arg$190])); /* */ $s = 843; case 843: if($c) { $c = false; _r$375 = _r$375.$blk(); } if (_r$375 && _r$375.$blk !== undefined) { break s; } + $24r$136 = _r$375; + $s = 844; case 844: return $24r$136; + /* } */ case 840: + _arg$191 = recv[0]; + _arg$192 = (x$35 = e$11.Args, (0 >= x$35.$length ? ($throwRuntimeError("index out of range"), undefined) : x$35.$array[x$35.$offset + 0])); + _r$376 = externalizeArgs($subslice(e$11.Args, 1)); /* */ $s = 845; case 845: if($c) { $c = false; _r$376 = _r$376.$blk(); } if (_r$376 && _r$376.$blk !== undefined) { break s; } + _arg$193 = new $String(_r$376); + _r$377 = fc[0].formatExpr("%s[$externalize(%e, $String)](%s)", new sliceType([_arg$191, _arg$192, _arg$193])); /* */ $s = 846; case 846: if($c) { $c = false; _r$377 = _r$377.$blk(); } if (_r$377 && _r$377.$blk !== undefined) { break s; } + $24r$137 = _r$377; + $s = 847; case 847: return $24r$137; + /* } else if (_12 === ("Invoke")) { */ case 787: + /* */ if (new token.Pos(e$11.Ellipsis).IsValid()) { $s = 848; continue; } + /* */ $s = 849; continue; + /* if (new token.Pos(e$11.Ellipsis).IsValid()) { */ case 848: + _arg$194 = recv[0]; + _r$378 = externalizeExpr[0]((x$36 = e$11.Args, (0 >= x$36.$length ? ($throwRuntimeError("index out of range"), undefined) : x$36.$array[x$36.$offset + 0]))); /* */ $s = 850; case 850: if($c) { $c = false; _r$378 = _r$378.$blk(); } if (_r$378 && _r$378.$blk !== undefined) { break s; } + _arg$195 = new $String(_r$378); + _r$379 = fc[0].formatExpr("%s.apply(undefined, %s)", new sliceType([_arg$194, _arg$195])); /* */ $s = 851; case 851: if($c) { $c = false; _r$379 = _r$379.$blk(); } if (_r$379 && _r$379.$blk !== undefined) { break s; } + $24r$138 = _r$379; + $s = 852; case 852: return $24r$138; + /* } */ case 849: + _arg$196 = recv[0]; + _r$380 = externalizeArgs(e$11.Args); /* */ $s = 853; case 853: if($c) { $c = false; _r$380 = _r$380.$blk(); } if (_r$380 && _r$380.$blk !== undefined) { break s; } + _arg$197 = new $String(_r$380); + _r$381 = fc[0].formatExpr("%s(%s)", new sliceType([_arg$196, _arg$197])); /* */ $s = 854; case 854: if($c) { $c = false; _r$381 = _r$381.$blk(); } if (_r$381 && _r$381.$blk !== undefined) { break s; } + $24r$139 = _r$381; + $s = 855; case 855: return $24r$139; + /* } else if (_12 === ("New")) { */ case 788: + /* */ if (new token.Pos(e$11.Ellipsis).IsValid()) { $s = 856; continue; } + /* */ $s = 857; continue; + /* if (new token.Pos(e$11.Ellipsis).IsValid()) { */ case 856: + _arg$198 = recv[0]; + _r$382 = externalizeExpr[0]((x$37 = e$11.Args, (0 >= x$37.$length ? ($throwRuntimeError("index out of range"), undefined) : x$37.$array[x$37.$offset + 0]))); /* */ $s = 858; case 858: if($c) { $c = false; _r$382 = _r$382.$blk(); } if (_r$382 && _r$382.$blk !== undefined) { break s; } + _arg$199 = new $String(_r$382); + _r$383 = fc[0].formatExpr("new ($global.Function.prototype.bind.apply(%s, [undefined].concat(%s)))", new sliceType([_arg$198, _arg$199])); /* */ $s = 859; case 859: if($c) { $c = false; _r$383 = _r$383.$blk(); } if (_r$383 && _r$383.$blk !== undefined) { break s; } + $24r$140 = _r$383; + $s = 860; case 860: return $24r$140; + /* } */ case 857: + _arg$200 = recv[0]; + _r$384 = externalizeArgs(e$11.Args); /* */ $s = 861; case 861: if($c) { $c = false; _r$384 = _r$384.$blk(); } if (_r$384 && _r$384.$blk !== undefined) { break s; } + _arg$201 = new $String(_r$384); + _r$385 = fc[0].formatExpr("new (%s)(%s)", new sliceType([_arg$200, _arg$201])); /* */ $s = 862; case 862: if($c) { $c = false; _r$385 = _r$385.$blk(); } if (_r$385 && _r$385.$blk !== undefined) { break s; } + $24r$141 = _r$385; + $s = 863; case 863: return $24r$141; + /* } else if (_12 === ("Bool")) { */ case 789: + _r$386 = fc[0].internalize(recv[0], (x$38 = types.Typ, (1 >= x$38.$length ? ($throwRuntimeError("index out of range"), undefined) : x$38.$array[x$38.$offset + 1]))); /* */ $s = 864; case 864: if($c) { $c = false; _r$386 = _r$386.$blk(); } if (_r$386 && _r$386.$blk !== undefined) { break s; } + $24r$142 = _r$386; + $s = 865; case 865: return $24r$142; + /* } else if (_12 === ("String")) { */ case 790: + _r$387 = fc[0].internalize(recv[0], (x$39 = types.Typ, (17 >= x$39.$length ? ($throwRuntimeError("index out of range"), undefined) : x$39.$array[x$39.$offset + 17]))); /* */ $s = 866; case 866: if($c) { $c = false; _r$387 = _r$387.$blk(); } if (_r$387 && _r$387.$blk !== undefined) { break s; } + $24r$143 = _r$387; + $s = 867; case 867: return $24r$143; + /* } else if (_12 === ("Int")) { */ case 791: + _r$388 = fc[0].internalize(recv[0], (x$40 = types.Typ, (2 >= x$40.$length ? ($throwRuntimeError("index out of range"), undefined) : x$40.$array[x$40.$offset + 2]))); /* */ $s = 868; case 868: if($c) { $c = false; _r$388 = _r$388.$blk(); } if (_r$388 && _r$388.$blk !== undefined) { break s; } + $24r$144 = _r$388; + $s = 869; case 869: return $24r$144; + /* } else if (_12 === ("Int64")) { */ case 792: + _r$389 = fc[0].internalize(recv[0], (x$41 = types.Typ, (6 >= x$41.$length ? ($throwRuntimeError("index out of range"), undefined) : x$41.$array[x$41.$offset + 6]))); /* */ $s = 870; case 870: if($c) { $c = false; _r$389 = _r$389.$blk(); } if (_r$389 && _r$389.$blk !== undefined) { break s; } + $24r$145 = _r$389; + $s = 871; case 871: return $24r$145; + /* } else if (_12 === ("Uint64")) { */ case 793: + _r$390 = fc[0].internalize(recv[0], (x$42 = types.Typ, (11 >= x$42.$length ? ($throwRuntimeError("index out of range"), undefined) : x$42.$array[x$42.$offset + 11]))); /* */ $s = 872; case 872: if($c) { $c = false; _r$390 = _r$390.$blk(); } if (_r$390 && _r$390.$blk !== undefined) { break s; } + $24r$146 = _r$390; + $s = 873; case 873: return $24r$146; + /* } else if (_12 === ("Float")) { */ case 794: + _r$391 = fc[0].internalize(recv[0], (x$43 = types.Typ, (14 >= x$43.$length ? ($throwRuntimeError("index out of range"), undefined) : x$43.$array[x$43.$offset + 14]))); /* */ $s = 874; case 874: if($c) { $c = false; _r$391 = _r$391.$blk(); } if (_r$391 && _r$391.$blk !== undefined) { break s; } + $24r$147 = _r$391; + $s = 875; case 875: return $24r$147; + /* } else if (_12 === ("Interface")) { */ case 795: + _arg$202 = recv[0]; + _r$392 = types.NewInterfaceType(sliceType$10.nil, sliceType$4.nil); /* */ $s = 876; case 876: if($c) { $c = false; _r$392 = _r$392.$blk(); } if (_r$392 && _r$392.$blk !== undefined) { break s; } + _arg$203 = _r$392; + _r$393 = fc[0].internalize(_arg$202, _arg$203); /* */ $s = 877; case 877: if($c) { $c = false; _r$393 = _r$393.$blk(); } if (_r$393 && _r$393.$blk !== undefined) { break s; } + $24r$148 = _r$393; + $s = 878; case 878: return $24r$148; + /* } else if (_12 === ("Unsafe")) { */ case 796: $s = -1; return recv[0]; - /* } else { */ case 767: - _r$381 = sel$2.Obj(); /* */ $s = 849; case 849: if($c) { $c = false; _r$381 = _r$381.$blk(); } if (_r$381 && _r$381.$blk !== undefined) { break s; } - _r$382 = _r$381.Name(); /* */ $s = 850; case 850: if($c) { $c = false; _r$382 = _r$382.$blk(); } if (_r$382 && _r$382.$blk !== undefined) { break s; } - $panic(new $String("Invalid js package object: " + _r$382)); - /* } */ case 768: - case 747: - /* } */ case 746: - _r$383 = sel$2.Obj(); /* */ $s = 851; case 851: if($c) { $c = false; _r$383 = _r$383.$blk(); } if (_r$383 && _r$383.$blk !== undefined) { break s; } - _r$384 = fc[0].methodName($assertType(_r$383, ptrType$21)); /* */ $s = 852; case 852: if($c) { $c = false; _r$384 = _r$384.$blk(); } if (_r$384 && _r$384.$blk !== undefined) { break s; } - methodName$1 = _r$384; - _arg$194 = e$11; - _arg$195 = sig; - _r$385 = fc[0].formatExpr("%s.%s", new sliceType([recv[0], new $String(methodName$1)])); /* */ $s = 853; case 853: if($c) { $c = false; _r$385 = _r$385.$blk(); } if (_r$385 && _r$385.$blk !== undefined) { break s; } - _arg$196 = _r$385; - _r$386 = fc[0].translateCall(_arg$194, _arg$195, _arg$196); /* */ $s = 854; case 854: if($c) { $c = false; _r$386 = _r$386.$blk(); } if (_r$386 && _r$386.$blk !== undefined) { break s; } - $24r$143 = _r$386; - $s = 855; case 855: return $24r$143; - /* } else if (_11 === (0)) { */ case 736: - _arg$197 = sel$2; - _r$387 = f$2.Pos(); /* */ $s = 856; case 856: if($c) { $c = false; _r$387 = _r$387.$blk(); } if (_r$387 && _r$387.$blk !== undefined) { break s; } - _arg$198 = _r$387; - _r$388 = fc[0].translateSelection(_arg$197, _arg$198); /* */ $s = 857; case 857: if($c) { $c = false; _r$388 = _r$388.$blk(); } if (_r$388 && _r$388.$blk !== undefined) { break s; } - _tuple$32 = _r$388; - fields$1 = _tuple$32[0]; - jsTag$1 = _tuple$32[1]; - /* */ if (!(jsTag$1 === "")) { $s = 858; continue; } - /* */ $s = 859; continue; - /* if (!(jsTag$1 === "")) { */ case 858: - _arg$199 = f$2.X; - _arg$200 = new $String(strings.Join(fields$1, ".")); - _r$389 = formatJSStructTagVal(jsTag$1); /* */ $s = 860; case 860: if($c) { $c = false; _r$389 = _r$389.$blk(); } if (_r$389 && _r$389.$blk !== undefined) { break s; } - _arg$201 = new $String(_r$389); - _r$390 = externalizeArgs(e$11.Args); /* */ $s = 861; case 861: if($c) { $c = false; _r$390 = _r$390.$blk(); } if (_r$390 && _r$390.$blk !== undefined) { break s; } - _arg$202 = new $String(_r$390); - _r$391 = fc[0].formatExpr("%e.%s%s(%s)", new sliceType([_arg$199, _arg$200, _arg$201, _arg$202])); /* */ $s = 862; case 862: if($c) { $c = false; _r$391 = _r$391.$blk(); } if (_r$391 && _r$391.$blk !== undefined) { break s; } - call$1 = _r$391; + /* } else { */ case 797: + _r$394 = sel$2.Obj(); /* */ $s = 879; case 879: if($c) { $c = false; _r$394 = _r$394.$blk(); } if (_r$394 && _r$394.$blk !== undefined) { break s; } + _r$395 = _r$394.Name(); /* */ $s = 880; case 880: if($c) { $c = false; _r$395 = _r$395.$blk(); } if (_r$395 && _r$395.$blk !== undefined) { break s; } + $panic(new $String("Invalid js package object: " + _r$395)); + /* } */ case 798: + case 777: + /* } */ case 776: + _r$396 = sel$2.Obj(); /* */ $s = 881; case 881: if($c) { $c = false; _r$396 = _r$396.$blk(); } if (_r$396 && _r$396.$blk !== undefined) { break s; } + _r$397 = fc[0].methodName($assertType(_r$396, ptrType$21)); /* */ $s = 882; case 882: if($c) { $c = false; _r$397 = _r$397.$blk(); } if (_r$397 && _r$397.$blk !== undefined) { break s; } + methodName$1 = _r$397; + _arg$204 = e$11; + _arg$205 = sig; + _r$398 = fc[0].formatExpr("%s.%s", new sliceType([recv[0], new $String(methodName$1)])); /* */ $s = 883; case 883: if($c) { $c = false; _r$398 = _r$398.$blk(); } if (_r$398 && _r$398.$blk !== undefined) { break s; } + _arg$206 = _r$398; + _r$399 = fc[0].translateCall(_arg$204, _arg$205, _arg$206); /* */ $s = 884; case 884: if($c) { $c = false; _r$399 = _r$399.$blk(); } if (_r$399 && _r$399.$blk !== undefined) { break s; } + $24r$149 = _r$399; + $s = 885; case 885: return $24r$149; + /* } else if (_11 === (0)) { */ case 766: + _arg$207 = sel$2; + _r$400 = f$2.Pos(); /* */ $s = 886; case 886: if($c) { $c = false; _r$400 = _r$400.$blk(); } if (_r$400 && _r$400.$blk !== undefined) { break s; } + _arg$208 = _r$400; + _r$401 = fc[0].translateSelection(_arg$207, _arg$208); /* */ $s = 887; case 887: if($c) { $c = false; _r$401 = _r$401.$blk(); } if (_r$401 && _r$401.$blk !== undefined) { break s; } + _tuple$33 = _r$401; + fields$1 = _tuple$33[0]; + jsTag$1 = _tuple$33[1]; + /* */ if (!(jsTag$1 === "")) { $s = 888; continue; } + /* */ $s = 889; continue; + /* if (!(jsTag$1 === "")) { */ case 888: + _arg$209 = f$2.X; + _arg$210 = new $String(strings.Join(fields$1, ".")); + _r$402 = formatJSStructTagVal(jsTag$1); /* */ $s = 890; case 890: if($c) { $c = false; _r$402 = _r$402.$blk(); } if (_r$402 && _r$402.$blk !== undefined) { break s; } + _arg$211 = new $String(_r$402); + _r$403 = externalizeArgs(e$11.Args); /* */ $s = 891; case 891: if($c) { $c = false; _r$403 = _r$403.$blk(); } if (_r$403 && _r$403.$blk !== undefined) { break s; } + _arg$212 = new $String(_r$403); + _r$404 = fc[0].formatExpr("%e.%s%s(%s)", new sliceType([_arg$209, _arg$210, _arg$211, _arg$212])); /* */ $s = 892; case 892: if($c) { $c = false; _r$404 = _r$404.$blk(); } if (_r$404 && _r$404.$blk !== undefined) { break s; } + call$1 = _r$404; _13 = sig.Results().Len(); - /* */ if (_13 === (0)) { $s = 864; continue; } - /* */ if (_13 === (1)) { $s = 865; continue; } - /* */ $s = 866; continue; - /* if (_13 === (0)) { */ case 864: + /* */ if (_13 === (0)) { $s = 894; continue; } + /* */ if (_13 === (1)) { $s = 895; continue; } + /* */ $s = 896; continue; + /* if (_13 === (0)) { */ case 894: $s = -1; return call$1; - /* } else if (_13 === (1)) { */ case 865: - _r$392 = fc[0].internalize(call$1, sig.Results().At(0).object.Type()); /* */ $s = 868; case 868: if($c) { $c = false; _r$392 = _r$392.$blk(); } if (_r$392 && _r$392.$blk !== undefined) { break s; } - $24r$144 = _r$392; - $s = 869; case 869: return $24r$144; - /* } else { */ case 866: - _r$393 = f$2.Pos(); /* */ $s = 870; case 870: if($c) { $c = false; _r$393 = _r$393.$blk(); } if (_r$393 && _r$393.$blk !== undefined) { break s; } - fc[0].pkgCtx.errList = $append(fc[0].pkgCtx.errList, (x$40 = new types.Error.ptr(fc[0].pkgCtx.fileSet, _r$393, "field with js tag can not have func type with multiple results", false, 0, 0, 0), new x$40.constructor.elem(x$40))); - /* } */ case 867: - case 863: - /* } */ case 859: - _arg$203 = e$11; - _arg$204 = sig; - _r$394 = fc[0].formatExpr("%e.%s", new sliceType([f$2.X, new $String(strings.Join(fields$1, "."))])); /* */ $s = 871; case 871: if($c) { $c = false; _r$394 = _r$394.$blk(); } if (_r$394 && _r$394.$blk !== undefined) { break s; } - _arg$205 = _r$394; - _r$395 = fc[0].translateCall(_arg$203, _arg$204, _arg$205); /* */ $s = 872; case 872: if($c) { $c = false; _r$395 = _r$395.$blk(); } if (_r$395 && _r$395.$blk !== undefined) { break s; } - $24r$145 = _r$395; - $s = 873; case 873: return $24r$145; - /* } else if (_11 === (2)) { */ case 737: - _arg$206 = e$11; - _arg$207 = sig; - _r$396 = fc[0].translateExpr(f$2); /* */ $s = 874; case 874: if($c) { $c = false; _r$396 = _r$396.$blk(); } if (_r$396 && _r$396.$blk !== undefined) { break s; } - _arg$208 = _r$396; - _r$397 = fc[0].translateCall(_arg$206, _arg$207, _arg$208); /* */ $s = 875; case 875: if($c) { $c = false; _r$397 = _r$397.$blk(); } if (_r$397 && _r$397.$blk !== undefined) { break s; } - $24r$146 = _r$397; - $s = 876; case 876: return $24r$146; - /* } else { */ case 738: - _r$398 = sel$2.Kind(); /* */ $s = 877; case 877: if($c) { $c = false; _r$398 = _r$398.$blk(); } if (_r$398 && _r$398.$blk !== undefined) { break s; } - _arg$209 = new types.SelectionKind(_r$398); - _r$399 = fmt.Sprintf("unexpected sel.Kind(): %T", new sliceType([_arg$209])); /* */ $s = 878; case 878: if($c) { $c = false; _r$399 = _r$399.$blk(); } if (_r$399 && _r$399.$blk !== undefined) { break s; } - $panic(new $String(_r$399)); - /* } */ case 739: - case 733: - $s = 694; continue; - /* } else { */ case 693: + /* } else if (_13 === (1)) { */ case 895: + _r$405 = fc[0].internalize(call$1, sig.Results().At(0).object.Type()); /* */ $s = 898; case 898: if($c) { $c = false; _r$405 = _r$405.$blk(); } if (_r$405 && _r$405.$blk !== undefined) { break s; } + $24r$150 = _r$405; + $s = 899; case 899: return $24r$150; + /* } else { */ case 896: + _r$406 = f$2.Pos(); /* */ $s = 900; case 900: if($c) { $c = false; _r$406 = _r$406.$blk(); } if (_r$406 && _r$406.$blk !== undefined) { break s; } + fc[0].pkgCtx.errList = $append(fc[0].pkgCtx.errList, (x$44 = new types.Error.ptr(fc[0].pkgCtx.fileSet, _r$406, "field with js tag can not have func type with multiple results", false, 0, 0, 0), new x$44.constructor.elem(x$44))); + /* } */ case 897: + case 893: + /* } */ case 889: + _arg$213 = e$11; + _arg$214 = sig; + _r$407 = fc[0].formatExpr("%e.%s", new sliceType([f$2.X, new $String(strings.Join(fields$1, "."))])); /* */ $s = 901; case 901: if($c) { $c = false; _r$407 = _r$407.$blk(); } if (_r$407 && _r$407.$blk !== undefined) { break s; } + _arg$215 = _r$407; + _r$408 = fc[0].translateCall(_arg$213, _arg$214, _arg$215); /* */ $s = 902; case 902: if($c) { $c = false; _r$408 = _r$408.$blk(); } if (_r$408 && _r$408.$blk !== undefined) { break s; } + $24r$151 = _r$408; + $s = 903; case 903: return $24r$151; + /* } else if (_11 === (2)) { */ case 767: + _arg$216 = e$11; + _arg$217 = sig; + _r$409 = fc[0].translateExpr(f$2); /* */ $s = 904; case 904: if($c) { $c = false; _r$409 = _r$409.$blk(); } if (_r$409 && _r$409.$blk !== undefined) { break s; } + _arg$218 = _r$409; + _r$410 = fc[0].translateCall(_arg$216, _arg$217, _arg$218); /* */ $s = 905; case 905: if($c) { $c = false; _r$410 = _r$410.$blk(); } if (_r$410 && _r$410.$blk !== undefined) { break s; } + $24r$152 = _r$410; + $s = 906; case 906: return $24r$152; + /* } else { */ case 768: + _r$411 = sel$2.Kind(); /* */ $s = 907; case 907: if($c) { $c = false; _r$411 = _r$411.$blk(); } if (_r$411 && _r$411.$blk !== undefined) { break s; } + _arg$219 = new types.SelectionKind(_r$411); + _r$412 = fmt.Sprintf("unexpected sel.Kind(): %T", new sliceType([_arg$219])); /* */ $s = 908; case 908: if($c) { $c = false; _r$412 = _r$412.$blk(); } if (_r$412 && _r$412.$blk !== undefined) { break s; } + $panic(new $String(_r$412)); + /* } */ case 769: + case 763: + $s = 715; continue; + /* } else { */ case 714: f$3 = _ref$16; - _arg$210 = e$11; - _arg$211 = sig; - _r$400 = fc[0].translateExpr(plainFun); /* */ $s = 879; case 879: if($c) { $c = false; _r$400 = _r$400.$blk(); } if (_r$400 && _r$400.$blk !== undefined) { break s; } - _arg$212 = _r$400; - _r$401 = fc[0].translateCall(_arg$210, _arg$211, _arg$212); /* */ $s = 880; case 880: if($c) { $c = false; _r$401 = _r$401.$blk(); } if (_r$401 && _r$401.$blk !== undefined) { break s; } - $24r$147 = _r$401; - $s = 881; case 881: return $24r$147; - /* } */ case 694: + _arg$220 = e$11; + _arg$221 = sig; + _r$413 = fc[0].translateExpr(plainFun); /* */ $s = 909; case 909: if($c) { $c = false; _r$413 = _r$413.$blk(); } if (_r$413 && _r$413.$blk !== undefined) { break s; } + _arg$222 = _r$413; + _r$414 = fc[0].translateCall(_arg$220, _arg$221, _arg$222); /* */ $s = 910; case 910: if($c) { $c = false; _r$414 = _r$414.$blk(); } if (_r$414 && _r$414.$blk !== undefined) { break s; } + $24r$153 = _r$414; + $s = 911; case 911: return $24r$153; + /* } */ case 715: $s = 87; continue; /* } else if ($assertType(_ref$1, ptrType$56, true)[1]) { */ case 82: e$12 = _ref$1.$val; - _r$402 = fc[0].typeOf(e$12.X); /* */ $s = 884; case 884: if($c) { $c = false; _r$402 = _r$402.$blk(); } if (_r$402 && _r$402.$blk !== undefined) { break s; } - _r$403 = typesutil.IsJsObject(_r$402); /* */ $s = 885; case 885: if($c) { $c = false; _r$403 = _r$403.$blk(); } if (_r$403 && _r$403.$blk !== undefined) { break s; } - /* */ if (_r$403) { $s = 882; continue; } - /* */ $s = 883; continue; - /* if (_r$403) { */ case 882: - _r$404 = fc[0].formatExpr("new $jsObjectPtr(%e)", new sliceType([e$12.X])); /* */ $s = 886; case 886: if($c) { $c = false; _r$404 = _r$404.$blk(); } if (_r$404 && _r$404.$blk !== undefined) { break s; } - $24r$148 = _r$404; - $s = 887; case 887: return $24r$148; - /* } */ case 883: - _tuple$33 = $assertType(e$12.X, ptrType$74, true); - c1 = _tuple$33[0]; - isCall = _tuple$33[1]; - /* */ if (isCall && (c1.Args.$length === 1)) { $s = 888; continue; } - /* */ $s = 889; continue; - /* if (isCall && (c1.Args.$length === 1)) { */ case 888: - _tuple$34 = $assertType((x$41 = c1.Args, (0 >= x$41.$length ? ($throwRuntimeError("index out of range"), undefined) : x$41.$array[x$41.$offset + 0])), ptrType$74, true); - c2 = _tuple$34[0]; - isCall$1 = _tuple$34[1]; - if (!(isCall$1 && (c2.Args.$length === 1))) { _v$3 = false; $s = 892; continue s; } - _r$405 = fc[0].typeOf(c2.Fun); /* */ $s = 893; case 893: if($c) { $c = false; _r$405 = _r$405.$blk(); } if (_r$405 && _r$405.$blk !== undefined) { break s; } - _r$406 = types.Identical(_r$405, (x$42 = types.Typ, (18 >= x$42.$length ? ($throwRuntimeError("index out of range"), undefined) : x$42.$array[x$42.$offset + 18]))); /* */ $s = 894; case 894: if($c) { $c = false; _r$406 = _r$406.$blk(); } if (_r$406 && _r$406.$blk !== undefined) { break s; } - _v$3 = _r$406; case 892: - /* */ if (_v$3) { $s = 890; continue; } - /* */ $s = 891; continue; - /* if (_v$3) { */ case 890: - _tuple$35 = $assertType((x$43 = c2.Args, (0 >= x$43.$length ? ($throwRuntimeError("index out of range"), undefined) : x$43.$array[x$43.$offset + 0])), ptrType$53, true); - unary = _tuple$35[0]; - isUnary = _tuple$35[1]; - /* */ if (isUnary && (unary.Op === 17)) { $s = 895; continue; } - /* */ $s = 896; continue; - /* if (isUnary && (unary.Op === 17)) { */ case 895: - _r$407 = fc[0].translateExpr(unary.X); /* */ $s = 897; case 897: if($c) { $c = false; _r$407 = _r$407.$blk(); } if (_r$407 && _r$407.$blk !== undefined) { break s; } - $24r$149 = _r$407; - $s = 898; case 898: return $24r$149; - /* } */ case 896: - /* } */ case 891: - /* } */ case 889: - _r$408 = exprType.Underlying(); /* */ $s = 899; case 899: if($c) { $c = false; _r$408 = _r$408.$blk(); } if (_r$408 && _r$408.$blk !== undefined) { break s; } - _ref$17 = _r$408; - /* */ if ($assertType(_ref$17, ptrType$4, true)[1] || $assertType(_ref$17, ptrType$7, true)[1]) { $s = 900; continue; } - /* */ $s = 901; continue; - /* if ($assertType(_ref$17, ptrType$4, true)[1] || $assertType(_ref$17, ptrType$7, true)[1]) { */ case 900: - _r$409 = fc[0].translateExpr(e$12.X); /* */ $s = 902; case 902: if($c) { $c = false; _r$409 = _r$409.$blk(); } if (_r$409 && _r$409.$blk !== undefined) { break s; } - $24r$150 = _r$409; - $s = 903; case 903: return $24r$150; - /* } */ case 901: - _r$410 = fc[0].formatExpr("%e.$get()", new sliceType([e$12.X])); /* */ $s = 904; case 904: if($c) { $c = false; _r$410 = _r$410.$blk(); } if (_r$410 && _r$410.$blk !== undefined) { break s; } - $24r$151 = _r$410; - $s = 905; case 905: return $24r$151; + _r$415 = fc[0].typeOf(e$12.X); /* */ $s = 914; case 914: if($c) { $c = false; _r$415 = _r$415.$blk(); } if (_r$415 && _r$415.$blk !== undefined) { break s; } + _r$416 = typesutil.IsJsObject(_r$415); /* */ $s = 915; case 915: if($c) { $c = false; _r$416 = _r$416.$blk(); } if (_r$416 && _r$416.$blk !== undefined) { break s; } + /* */ if (_r$416) { $s = 912; continue; } + /* */ $s = 913; continue; + /* if (_r$416) { */ case 912: + _r$417 = fc[0].formatExpr("new $jsObjectPtr(%e)", new sliceType([e$12.X])); /* */ $s = 916; case 916: if($c) { $c = false; _r$417 = _r$417.$blk(); } if (_r$417 && _r$417.$blk !== undefined) { break s; } + $24r$154 = _r$417; + $s = 917; case 917: return $24r$154; + /* } */ case 913: + _tuple$34 = $assertType(e$12.X, ptrType$74, true); + c1 = _tuple$34[0]; + isCall = _tuple$34[1]; + /* */ if (isCall && (c1.Args.$length === 1)) { $s = 918; continue; } + /* */ $s = 919; continue; + /* if (isCall && (c1.Args.$length === 1)) { */ case 918: + _tuple$35 = $assertType((x$45 = c1.Args, (0 >= x$45.$length ? ($throwRuntimeError("index out of range"), undefined) : x$45.$array[x$45.$offset + 0])), ptrType$74, true); + c2 = _tuple$35[0]; + isCall$1 = _tuple$35[1]; + if (!(isCall$1 && (c2.Args.$length === 1))) { _v$3 = false; $s = 922; continue s; } + _r$418 = fc[0].typeOf(c2.Fun); /* */ $s = 923; case 923: if($c) { $c = false; _r$418 = _r$418.$blk(); } if (_r$418 && _r$418.$blk !== undefined) { break s; } + _r$419 = types.Identical(_r$418, (x$46 = types.Typ, (18 >= x$46.$length ? ($throwRuntimeError("index out of range"), undefined) : x$46.$array[x$46.$offset + 18]))); /* */ $s = 924; case 924: if($c) { $c = false; _r$419 = _r$419.$blk(); } if (_r$419 && _r$419.$blk !== undefined) { break s; } + _v$3 = _r$419; case 922: + /* */ if (_v$3) { $s = 920; continue; } + /* */ $s = 921; continue; + /* if (_v$3) { */ case 920: + _tuple$36 = $assertType((x$47 = c2.Args, (0 >= x$47.$length ? ($throwRuntimeError("index out of range"), undefined) : x$47.$array[x$47.$offset + 0])), ptrType$53, true); + unary = _tuple$36[0]; + isUnary = _tuple$36[1]; + /* */ if (isUnary && (unary.Op === 17)) { $s = 925; continue; } + /* */ $s = 926; continue; + /* if (isUnary && (unary.Op === 17)) { */ case 925: + _r$420 = fc[0].translateExpr(unary.X); /* */ $s = 927; case 927: if($c) { $c = false; _r$420 = _r$420.$blk(); } if (_r$420 && _r$420.$blk !== undefined) { break s; } + $24r$155 = _r$420; + $s = 928; case 928: return $24r$155; + /* } */ case 926: + /* } */ case 921: + /* } */ case 919: + _r$421 = exprType.Underlying(); /* */ $s = 929; case 929: if($c) { $c = false; _r$421 = _r$421.$blk(); } if (_r$421 && _r$421.$blk !== undefined) { break s; } + _ref$17 = _r$421; + /* */ if ($assertType(_ref$17, ptrType$4, true)[1] || $assertType(_ref$17, ptrType$7, true)[1]) { $s = 930; continue; } + /* */ $s = 931; continue; + /* if ($assertType(_ref$17, ptrType$4, true)[1] || $assertType(_ref$17, ptrType$7, true)[1]) { */ case 930: + _r$422 = fc[0].typeOf(e$12.X); /* */ $s = 932; case 932: if($c) { $c = false; _r$422 = _r$422.$blk(); } if (_r$422 && _r$422.$blk !== undefined) { break s; } + innerTyp = _r$422; + _r$423 = innerTyp.Underlying(); /* */ $s = 933; case 933: if($c) { $c = false; _r$423 = _r$423.$blk(); } if (_r$423 && _r$423.$blk !== undefined) { break s; } + _tuple$37 = $assertType(_r$423, ptrType$3, true); + ok$21 = _tuple$37[1]; + /* */ if (ok$21) { $s = 934; continue; } + /* */ $s = 935; continue; + /* if (ok$21) { */ case 934: + _arg$223 = e$12.X; + _r$424 = fc[0].typeName(innerTyp); /* */ $s = 936; case 936: if($c) { $c = false; _r$424 = _r$424.$blk(); } if (_r$424 && _r$424.$blk !== undefined) { break s; } + _arg$224 = new $String(_r$424); + _r$425 = fc[0].formatExpr("(%1e === %2s.nil && $throwNilPointerError(), %1e)", new sliceType([_arg$223, _arg$224])); /* */ $s = 937; case 937: if($c) { $c = false; _r$425 = _r$425.$blk(); } if (_r$425 && _r$425.$blk !== undefined) { break s; } + $24r$156 = _r$425; + $s = 938; case 938: return $24r$156; + /* } */ case 935: + _r$426 = fc[0].translateExpr(e$12.X); /* */ $s = 939; case 939: if($c) { $c = false; _r$426 = _r$426.$blk(); } if (_r$426 && _r$426.$blk !== undefined) { break s; } + $24r$157 = _r$426; + $s = 940; case 940: return $24r$157; + /* } */ case 931: + _r$427 = fc[0].formatExpr("%e.$get()", new sliceType([e$12.X])); /* */ $s = 941; case 941: if($c) { $c = false; _r$427 = _r$427.$blk(); } if (_r$427 && _r$427.$blk !== undefined) { break s; } + $24r$158 = _r$427; + $s = 942; case 942: return $24r$158; /* } else if ($assertType(_ref$1, ptrType$46, true)[1]) { */ case 83: e$13 = _ref$1.$val; - /* */ if ($interfaceIsEqual(e$13.Type, $ifaceNil)) { $s = 906; continue; } - /* */ $s = 907; continue; - /* if ($interfaceIsEqual(e$13.Type, $ifaceNil)) { */ case 906: - _r$411 = fc[0].translateExpr(e$13.X); /* */ $s = 908; case 908: if($c) { $c = false; _r$411 = _r$411.$blk(); } if (_r$411 && _r$411.$blk !== undefined) { break s; } - $24r$152 = _r$411; - $s = 909; case 909: return $24r$152; - /* } */ case 907: - _r$412 = fc[0].typeOf(e$13.Type); /* */ $s = 910; case 910: if($c) { $c = false; _r$412 = _r$412.$blk(); } if (_r$412 && _r$412.$blk !== undefined) { break s; } - t$16 = _r$412; - _tuple$36 = $assertType(exprType, ptrType$1, true); - isTuple$2 = _tuple$36[1]; - /* */ if (isTuple$2) { $s = 911; continue; } - /* */ $s = 912; continue; - /* if (isTuple$2) { */ case 911: - _arg$213 = e$13.X; - _r$413 = fc[0].typeName(t$16); /* */ $s = 913; case 913: if($c) { $c = false; _r$413 = _r$413.$blk(); } if (_r$413 && _r$413.$blk !== undefined) { break s; } - _arg$214 = new $String(_r$413); - _r$414 = fc[0].formatExpr("$assertType(%e, %s, true)", new sliceType([_arg$213, _arg$214])); /* */ $s = 914; case 914: if($c) { $c = false; _r$414 = _r$414.$blk(); } if (_r$414 && _r$414.$blk !== undefined) { break s; } - $24r$153 = _r$414; - $s = 915; case 915: return $24r$153; - /* } */ case 912: - _arg$215 = e$13.X; - _r$415 = fc[0].typeName(t$16); /* */ $s = 916; case 916: if($c) { $c = false; _r$415 = _r$415.$blk(); } if (_r$415 && _r$415.$blk !== undefined) { break s; } - _arg$216 = new $String(_r$415); - _r$416 = fc[0].formatExpr("$assertType(%e, %s)", new sliceType([_arg$215, _arg$216])); /* */ $s = 917; case 917: if($c) { $c = false; _r$416 = _r$416.$blk(); } if (_r$416 && _r$416.$blk !== undefined) { break s; } - $24r$154 = _r$416; - $s = 918; case 918: return $24r$154; + /* */ if ($interfaceIsEqual(e$13.Type, $ifaceNil)) { $s = 943; continue; } + /* */ $s = 944; continue; + /* if ($interfaceIsEqual(e$13.Type, $ifaceNil)) { */ case 943: + _r$428 = fc[0].translateExpr(e$13.X); /* */ $s = 945; case 945: if($c) { $c = false; _r$428 = _r$428.$blk(); } if (_r$428 && _r$428.$blk !== undefined) { break s; } + $24r$159 = _r$428; + $s = 946; case 946: return $24r$159; + /* } */ case 944: + _r$429 = fc[0].typeOf(e$13.Type); /* */ $s = 947; case 947: if($c) { $c = false; _r$429 = _r$429.$blk(); } if (_r$429 && _r$429.$blk !== undefined) { break s; } + t$16 = _r$429; + _tuple$38 = $assertType(exprType, ptrType$1, true); + isTuple$2 = _tuple$38[1]; + /* */ if (isTuple$2) { $s = 948; continue; } + /* */ $s = 949; continue; + /* if (isTuple$2) { */ case 948: + _arg$225 = e$13.X; + _r$430 = fc[0].typeName(t$16); /* */ $s = 950; case 950: if($c) { $c = false; _r$430 = _r$430.$blk(); } if (_r$430 && _r$430.$blk !== undefined) { break s; } + _arg$226 = new $String(_r$430); + _r$431 = fc[0].formatExpr("$assertType(%e, %s, true)", new sliceType([_arg$225, _arg$226])); /* */ $s = 951; case 951: if($c) { $c = false; _r$431 = _r$431.$blk(); } if (_r$431 && _r$431.$blk !== undefined) { break s; } + $24r$160 = _r$431; + $s = 952; case 952: return $24r$160; + /* } */ case 949: + _arg$227 = e$13.X; + _r$432 = fc[0].typeName(t$16); /* */ $s = 953; case 953: if($c) { $c = false; _r$432 = _r$432.$blk(); } if (_r$432 && _r$432.$blk !== undefined) { break s; } + _arg$228 = new $String(_r$432); + _r$433 = fc[0].formatExpr("$assertType(%e, %s)", new sliceType([_arg$227, _arg$228])); /* */ $s = 954; case 954: if($c) { $c = false; _r$433 = _r$433.$blk(); } if (_r$433 && _r$433.$blk !== undefined) { break s; } + $24r$161 = _r$433; + $s = 955; case 955: return $24r$161; /* } else if ($assertType(_ref$1, ptrType$12, true)[1]) { */ case 84: e$14 = _ref$1.$val; if (e$14.Name === "_") { $panic(new $String("Tried to translate underscore identifier.")); } _ref$18 = inst.Object; - /* */ if ($assertType(_ref$18, ptrType$16, true)[1] || $assertType(_ref$18, ptrType$17, true)[1]) { $s = 919; continue; } - /* */ if ($assertType(_ref$18, ptrType$21, true)[1]) { $s = 920; continue; } - /* */ if ($assertType(_ref$18, ptrType$18, true)[1]) { $s = 921; continue; } - /* */ if ($assertType(_ref$18, ptrType$78, true)[1]) { $s = 922; continue; } - /* */ $s = 923; continue; - /* if ($assertType(_ref$18, ptrType$16, true)[1] || $assertType(_ref$18, ptrType$17, true)[1]) { */ case 919: + /* */ if ($assertType(_ref$18, ptrType$16, true)[1] || $assertType(_ref$18, ptrType$17, true)[1]) { $s = 956; continue; } + /* */ if ($assertType(_ref$18, ptrType$21, true)[1]) { $s = 957; continue; } + /* */ if ($assertType(_ref$18, ptrType$18, true)[1]) { $s = 958; continue; } + /* */ if ($assertType(_ref$18, ptrType$78, true)[1]) { $s = 959; continue; } + /* */ $s = 960; continue; + /* if ($assertType(_ref$18, ptrType$16, true)[1] || $assertType(_ref$18, ptrType$17, true)[1]) { */ case 956: o$2 = _ref$18; - _r$417 = fc[0].instName($clone(inst, typeparams.Instance)); /* */ $s = 925; case 925: if($c) { $c = false; _r$417 = _r$417.$blk(); } if (_r$417 && _r$417.$blk !== undefined) { break s; } - _arg$217 = new $String(_r$417); - _r$418 = fc[0].formatExpr("%s", new sliceType([_arg$217])); /* */ $s = 926; case 926: if($c) { $c = false; _r$418 = _r$418.$blk(); } if (_r$418 && _r$418.$blk !== undefined) { break s; } - $24r$155 = _r$418; - $s = 927; case 927: return $24r$155; - /* } else if ($assertType(_ref$18, ptrType$21, true)[1]) { */ case 920: + _r$434 = fc[0].instName($clone(inst, typeparams.Instance)); /* */ $s = 962; case 962: if($c) { $c = false; _r$434 = _r$434.$blk(); } if (_r$434 && _r$434.$blk !== undefined) { break s; } + _arg$229 = new $String(_r$434); + _r$435 = fc[0].formatExpr("%s", new sliceType([_arg$229])); /* */ $s = 963; case 963: if($c) { $c = false; _r$435 = _r$435.$blk(); } if (_r$435 && _r$435.$blk !== undefined) { break s; } + $24r$162 = _r$435; + $s = 964; case 964: return $24r$162; + /* } else if ($assertType(_ref$18, ptrType$21, true)[1]) { */ case 957: o$3 = _ref$18.$val; - _r$419 = fc[0].instName($clone(inst, typeparams.Instance)); /* */ $s = 928; case 928: if($c) { $c = false; _r$419 = _r$419.$blk(); } if (_r$419 && _r$419.$blk !== undefined) { break s; } - _arg$218 = new $String(_r$419); - _r$420 = fc[0].formatExpr("%s", new sliceType([_arg$218])); /* */ $s = 929; case 929: if($c) { $c = false; _r$420 = _r$420.$blk(); } if (_r$420 && _r$420.$blk !== undefined) { break s; } - $24r$156 = _r$420; - $s = 930; case 930: return $24r$156; - /* } else if ($assertType(_ref$18, ptrType$18, true)[1]) { */ case 921: + _r$436 = fc[0].instName($clone(inst, typeparams.Instance)); /* */ $s = 965; case 965: if($c) { $c = false; _r$436 = _r$436.$blk(); } if (_r$436 && _r$436.$blk !== undefined) { break s; } + _arg$230 = new $String(_r$436); + _r$437 = fc[0].formatExpr("%s", new sliceType([_arg$230])); /* */ $s = 966; case 966: if($c) { $c = false; _r$437 = _r$437.$blk(); } if (_r$437 && _r$437.$blk !== undefined) { break s; } + $24r$163 = _r$437; + $s = 967; case 967: return $24r$163; + /* } else if ($assertType(_ref$18, ptrType$18, true)[1]) { */ case 958: o$4 = _ref$18.$val; - _r$421 = fc[0].typeName(o$4.object.Type()); /* */ $s = 931; case 931: if($c) { $c = false; _r$421 = _r$421.$blk(); } if (_r$421 && _r$421.$blk !== undefined) { break s; } - _arg$219 = new $String(_r$421); - _r$422 = fc[0].formatExpr("%s", new sliceType([_arg$219])); /* */ $s = 932; case 932: if($c) { $c = false; _r$422 = _r$422.$blk(); } if (_r$422 && _r$422.$blk !== undefined) { break s; } - $24r$157 = _r$422; - $s = 933; case 933: return $24r$157; - /* } else if ($assertType(_ref$18, ptrType$78, true)[1]) { */ case 922: + _r$438 = fc[0].typeName(o$4.object.Type()); /* */ $s = 968; case 968: if($c) { $c = false; _r$438 = _r$438.$blk(); } if (_r$438 && _r$438.$blk !== undefined) { break s; } + _arg$231 = new $String(_r$438); + _r$439 = fc[0].formatExpr("%s", new sliceType([_arg$231])); /* */ $s = 969; case 969: if($c) { $c = false; _r$439 = _r$439.$blk(); } if (_r$439 && _r$439.$blk !== undefined) { break s; } + $24r$164 = _r$439; + $s = 970; case 970: return $24r$164; + /* } else if ($assertType(_ref$18, ptrType$78, true)[1]) { */ case 959: o$5 = _ref$18.$val; - /* */ if (typesutil.IsJsObject(exprType)) { $s = 934; continue; } - /* */ $s = 935; continue; - /* if (typesutil.IsJsObject(exprType)) { */ case 934: - _r$423 = fc[0].formatExpr("null", sliceType.nil); /* */ $s = 936; case 936: if($c) { $c = false; _r$423 = _r$423.$blk(); } if (_r$423 && _r$423.$blk !== undefined) { break s; } - $24r$158 = _r$423; - $s = 937; case 937: return $24r$158; - /* } */ case 935: - _r$424 = exprType.Underlying(); /* */ $s = 938; case 938: if($c) { $c = false; _r$424 = _r$424.$blk(); } if (_r$424 && _r$424.$blk !== undefined) { break s; } - _ref$19 = _r$424; - /* */ if ($assertType(_ref$19, ptrType$6, true)[1]) { $s = 939; continue; } - /* */ if ($assertType(_ref$19, ptrType$11, true)[1] || $assertType(_ref$19, ptrType$3, true)[1]) { $s = 940; continue; } - /* */ if ($assertType(_ref$19, ptrType$8, true)[1]) { $s = 941; continue; } - /* */ if ($assertType(_ref$19, ptrType$10, true)[1]) { $s = 942; continue; } - /* */ if ($assertType(_ref$19, ptrType$9, true)[1]) { $s = 943; continue; } - /* */ if ($assertType(_ref$19, ptrType$2, true)[1]) { $s = 944; continue; } - /* */ $s = 945; continue; - /* if ($assertType(_ref$19, ptrType$6, true)[1]) { */ case 939: + /* */ if (typesutil.IsJsObject(exprType)) { $s = 971; continue; } + /* */ $s = 972; continue; + /* if (typesutil.IsJsObject(exprType)) { */ case 971: + _r$440 = fc[0].formatExpr("null", sliceType.nil); /* */ $s = 973; case 973: if($c) { $c = false; _r$440 = _r$440.$blk(); } if (_r$440 && _r$440.$blk !== undefined) { break s; } + $24r$165 = _r$440; + $s = 974; case 974: return $24r$165; + /* } */ case 972: + _r$441 = exprType.Underlying(); /* */ $s = 975; case 975: if($c) { $c = false; _r$441 = _r$441.$blk(); } if (_r$441 && _r$441.$blk !== undefined) { break s; } + _ref$19 = _r$441; + /* */ if ($assertType(_ref$19, ptrType$6, true)[1]) { $s = 976; continue; } + /* */ if ($assertType(_ref$19, ptrType$11, true)[1] || $assertType(_ref$19, ptrType$3, true)[1]) { $s = 977; continue; } + /* */ if ($assertType(_ref$19, ptrType$8, true)[1]) { $s = 978; continue; } + /* */ if ($assertType(_ref$19, ptrType$10, true)[1]) { $s = 979; continue; } + /* */ if ($assertType(_ref$19, ptrType$9, true)[1]) { $s = 980; continue; } + /* */ if ($assertType(_ref$19, ptrType$2, true)[1]) { $s = 981; continue; } + /* */ $s = 982; continue; + /* if ($assertType(_ref$19, ptrType$6, true)[1]) { */ case 976: t$17 = _ref$19.$val; - /* */ if (!((t$17.Kind() === 18))) { $s = 947; continue; } - /* */ $s = 948; continue; - /* if (!((t$17.Kind() === 18))) { */ case 947: - _r$425 = fmt.Errorf("unexpected basic type: %v in %v", new sliceType([t$17, new $String(e$14.Name)])); /* */ $s = 949; case 949: if($c) { $c = false; _r$425 = _r$425.$blk(); } if (_r$425 && _r$425.$blk !== undefined) { break s; } - $panic(_r$425); - /* } */ case 948: - _r$426 = fc[0].formatExpr("0", sliceType.nil); /* */ $s = 950; case 950: if($c) { $c = false; _r$426 = _r$426.$blk(); } if (_r$426 && _r$426.$blk !== undefined) { break s; } - $24r$159 = _r$426; - $s = 951; case 951: return $24r$159; - /* } else if ($assertType(_ref$19, ptrType$11, true)[1] || $assertType(_ref$19, ptrType$3, true)[1]) { */ case 940: + /* */ if (!((t$17.Kind() === 18))) { $s = 984; continue; } + /* */ $s = 985; continue; + /* if (!((t$17.Kind() === 18))) { */ case 984: + _r$442 = fmt.Errorf("unexpected basic type: %v in %v", new sliceType([t$17, new $String(e$14.Name)])); /* */ $s = 986; case 986: if($c) { $c = false; _r$442 = _r$442.$blk(); } if (_r$442 && _r$442.$blk !== undefined) { break s; } + $panic(_r$442); + /* } */ case 985: + _r$443 = fc[0].formatExpr("0", sliceType.nil); /* */ $s = 987; case 987: if($c) { $c = false; _r$443 = _r$443.$blk(); } if (_r$443 && _r$443.$blk !== undefined) { break s; } + $24r$166 = _r$443; + $s = 988; case 988: return $24r$166; + /* } else if ($assertType(_ref$19, ptrType$11, true)[1] || $assertType(_ref$19, ptrType$3, true)[1]) { */ case 977: t$18 = _ref$19; - _r$427 = fc[0].typeName(exprType); /* */ $s = 952; case 952: if($c) { $c = false; _r$427 = _r$427.$blk(); } if (_r$427 && _r$427.$blk !== undefined) { break s; } - _arg$220 = new $String(_r$427); - _r$428 = fc[0].formatExpr("%s.nil", new sliceType([_arg$220])); /* */ $s = 953; case 953: if($c) { $c = false; _r$428 = _r$428.$blk(); } if (_r$428 && _r$428.$blk !== undefined) { break s; } - $24r$160 = _r$428; - $s = 954; case 954: return $24r$160; - /* } else if ($assertType(_ref$19, ptrType$8, true)[1]) { */ case 941: + _r$444 = fc[0].typeName(exprType); /* */ $s = 989; case 989: if($c) { $c = false; _r$444 = _r$444.$blk(); } if (_r$444 && _r$444.$blk !== undefined) { break s; } + _arg$232 = new $String(_r$444); + _r$445 = fc[0].formatExpr("%s.nil", new sliceType([_arg$232])); /* */ $s = 990; case 990: if($c) { $c = false; _r$445 = _r$445.$blk(); } if (_r$445 && _r$445.$blk !== undefined) { break s; } + $24r$167 = _r$445; + $s = 991; case 991: return $24r$167; + /* } else if ($assertType(_ref$19, ptrType$8, true)[1]) { */ case 978: t$19 = _ref$19.$val; - _r$429 = fc[0].formatExpr("$chanNil", sliceType.nil); /* */ $s = 955; case 955: if($c) { $c = false; _r$429 = _r$429.$blk(); } if (_r$429 && _r$429.$blk !== undefined) { break s; } - $24r$161 = _r$429; - $s = 956; case 956: return $24r$161; - /* } else if ($assertType(_ref$19, ptrType$10, true)[1]) { */ case 942: + _r$446 = fc[0].formatExpr("$chanNil", sliceType.nil); /* */ $s = 992; case 992: if($c) { $c = false; _r$446 = _r$446.$blk(); } if (_r$446 && _r$446.$blk !== undefined) { break s; } + $24r$168 = _r$446; + $s = 993; case 993: return $24r$168; + /* } else if ($assertType(_ref$19, ptrType$10, true)[1]) { */ case 979: t$20 = _ref$19.$val; - _r$430 = fc[0].formatExpr("false", sliceType.nil); /* */ $s = 957; case 957: if($c) { $c = false; _r$430 = _r$430.$blk(); } if (_r$430 && _r$430.$blk !== undefined) { break s; } - $24r$162 = _r$430; - $s = 958; case 958: return $24r$162; - /* } else if ($assertType(_ref$19, ptrType$9, true)[1]) { */ case 943: + _r$447 = fc[0].formatExpr("false", sliceType.nil); /* */ $s = 994; case 994: if($c) { $c = false; _r$447 = _r$447.$blk(); } if (_r$447 && _r$447.$blk !== undefined) { break s; } + $24r$169 = _r$447; + $s = 995; case 995: return $24r$169; + /* } else if ($assertType(_ref$19, ptrType$9, true)[1]) { */ case 980: t$21 = _ref$19.$val; - _r$431 = fc[0].formatExpr("$ifaceNil", sliceType.nil); /* */ $s = 959; case 959: if($c) { $c = false; _r$431 = _r$431.$blk(); } if (_r$431 && _r$431.$blk !== undefined) { break s; } - $24r$163 = _r$431; - $s = 960; case 960: return $24r$163; - /* } else if ($assertType(_ref$19, ptrType$2, true)[1]) { */ case 944: + _r$448 = fc[0].formatExpr("$ifaceNil", sliceType.nil); /* */ $s = 996; case 996: if($c) { $c = false; _r$448 = _r$448.$blk(); } if (_r$448 && _r$448.$blk !== undefined) { break s; } + $24r$170 = _r$448; + $s = 997; case 997: return $24r$170; + /* } else if ($assertType(_ref$19, ptrType$2, true)[1]) { */ case 981: t$22 = _ref$19.$val; - _r$432 = fc[0].formatExpr("$throwNilPointerError", sliceType.nil); /* */ $s = 961; case 961: if($c) { $c = false; _r$432 = _r$432.$blk(); } if (_r$432 && _r$432.$blk !== undefined) { break s; } - $24r$164 = _r$432; - $s = 962; case 962: return $24r$164; - /* } else { */ case 945: + _r$449 = fc[0].formatExpr("$throwNilPointerError", sliceType.nil); /* */ $s = 998; case 998: if($c) { $c = false; _r$449 = _r$449.$blk(); } if (_r$449 && _r$449.$blk !== undefined) { break s; } + $24r$171 = _r$449; + $s = 999; case 999: return $24r$171; + /* } else { */ case 982: t$23 = _ref$19; - _r$433 = fmt.Sprintf("unexpected type: %T", new sliceType([t$23])); /* */ $s = 963; case 963: if($c) { $c = false; _r$433 = _r$433.$blk(); } if (_r$433 && _r$433.$blk !== undefined) { break s; } - $panic(new $String(_r$433)); - /* } */ case 946: - $s = 924; continue; - /* } else { */ case 923: + _r$450 = fmt.Sprintf("unexpected type: %T", new sliceType([t$23])); /* */ $s = 1000; case 1000: if($c) { $c = false; _r$450 = _r$450.$blk(); } if (_r$450 && _r$450.$blk !== undefined) { break s; } + $panic(new $String(_r$450)); + /* } */ case 983: + $s = 961; continue; + /* } else { */ case 960: o$6 = _ref$18; - _r$434 = fmt.Sprintf("Unhandled object: %T\n", new sliceType([o$6])); /* */ $s = 964; case 964: if($c) { $c = false; _r$434 = _r$434.$blk(); } if (_r$434 && _r$434.$blk !== undefined) { break s; } - $panic(new $String(_r$434)); - /* } */ case 924: + _r$451 = fmt.Sprintf("Unhandled object: %T\n", new sliceType([o$6])); /* */ $s = 1001; case 1001: if($c) { $c = false; _r$451 = _r$451.$blk(); } if (_r$451 && _r$451.$blk !== undefined) { break s; } + $panic(new $String(_r$451)); + /* } */ case 961: $s = 87; continue; /* } else if (_ref$1 === $ifaceNil) { */ case 85: e$15 = _ref$1; - _r$435 = fc[0].formatExpr("", sliceType.nil); /* */ $s = 965; case 965: if($c) { $c = false; _r$435 = _r$435.$blk(); } if (_r$435 && _r$435.$blk !== undefined) { break s; } - $24r$165 = _r$435; - $s = 966; case 966: return $24r$165; + _r$452 = fc[0].formatExpr("", sliceType.nil); /* */ $s = 1002; case 1002: if($c) { $c = false; _r$452 = _r$452.$blk(); } if (_r$452 && _r$452.$blk !== undefined) { break s; } + $24r$172 = _r$452; + $s = 1003; case 1003: return $24r$172; /* } else { */ case 86: e$16 = _ref$1; - _r$436 = fmt.Sprintf("Unhandled expression: %T\n", new sliceType([e$16])); /* */ $s = 967; case 967: if($c) { $c = false; _r$436 = _r$436.$blk(); } if (_r$436 && _r$436.$blk !== undefined) { break s; } - $panic(new $String(_r$436)); + _r$453 = fmt.Sprintf("Unhandled expression: %T\n", new sliceType([e$16])); /* */ $s = 1004; case 1004: if($c) { $c = false; _r$453 = _r$453.$blk(); } if (_r$453 && _r$453.$blk !== undefined) { break s; } + $panic(new $String(_r$453)); /* } */ case 87: $s = -1; return ptrType$51.nil; - /* */ } return; } var $f = {$blk: translateExpr, $c: true, $r, $24r, $24r$1, $24r$10, $24r$100, $24r$101, $24r$102, $24r$103, $24r$104, $24r$105, $24r$106, $24r$107, $24r$108, $24r$109, $24r$11, $24r$110, $24r$111, $24r$112, $24r$113, $24r$114, $24r$115, $24r$116, $24r$117, $24r$118, $24r$119, $24r$12, $24r$120, $24r$121, $24r$122, $24r$123, $24r$124, $24r$125, $24r$126, $24r$127, $24r$128, $24r$129, $24r$13, $24r$130, $24r$131, $24r$132, $24r$133, $24r$134, $24r$135, $24r$136, $24r$137, $24r$138, $24r$139, $24r$14, $24r$140, $24r$141, $24r$142, $24r$143, $24r$144, $24r$145, $24r$146, $24r$147, $24r$148, $24r$149, $24r$15, $24r$150, $24r$151, $24r$152, $24r$153, $24r$154, $24r$155, $24r$156, $24r$157, $24r$158, $24r$159, $24r$16, $24r$160, $24r$161, $24r$162, $24r$163, $24r$164, $24r$165, $24r$17, $24r$18, $24r$19, $24r$2, $24r$20, $24r$21, $24r$22, $24r$23, $24r$24, $24r$25, $24r$26, $24r$27, $24r$28, $24r$29, $24r$3, $24r$30, $24r$31, $24r$32, $24r$33, $24r$34, $24r$35, $24r$36, $24r$37, $24r$38, $24r$39, $24r$4, $24r$40, $24r$41, $24r$42, $24r$43, $24r$44, $24r$45, $24r$46, $24r$47, $24r$48, $24r$49, $24r$5, $24r$50, $24r$51, $24r$52, $24r$53, $24r$54, $24r$55, $24r$56, $24r$57, $24r$58, $24r$59, $24r$6, $24r$60, $24r$61, $24r$62, $24r$63, $24r$64, $24r$65, $24r$66, $24r$67, $24r$68, $24r$69, $24r$7, $24r$70, $24r$71, $24r$72, $24r$73, $24r$74, $24r$75, $24r$76, $24r$77, $24r$78, $24r$79, $24r$8, $24r$80, $24r$81, $24r$82, $24r$83, $24r$84, $24r$85, $24r$86, $24r$87, $24r$88, $24r$89, $24r$9, $24r$90, $24r$91, $24r$92, $24r$93, $24r$94, $24r$95, $24r$96, $24r$97, $24r$98, $24r$99, _1, _10, _11, _12, _13, _2, _3, _4, _5, _6, _7, _8, _9, _arg, _arg$1, _arg$10, _arg$100, _arg$101, _arg$102, _arg$103, _arg$104, _arg$105, _arg$106, _arg$107, _arg$108, _arg$109, _arg$11, _arg$110, _arg$111, _arg$112, _arg$113, _arg$114, _arg$115, _arg$116, _arg$117, _arg$118, _arg$119, _arg$12, _arg$120, _arg$121, _arg$122, _arg$123, _arg$124, _arg$125, _arg$126, _arg$127, _arg$128, _arg$129, _arg$13, _arg$130, _arg$131, _arg$132, _arg$133, _arg$134, _arg$135, _arg$136, _arg$137, _arg$138, _arg$139, _arg$14, _arg$140, _arg$141, _arg$142, _arg$143, _arg$144, _arg$145, _arg$146, _arg$147, _arg$148, _arg$149, _arg$15, _arg$150, _arg$151, _arg$152, _arg$153, _arg$154, _arg$155, _arg$156, _arg$157, _arg$158, _arg$159, _arg$16, _arg$160, _arg$161, _arg$162, _arg$163, _arg$164, _arg$165, _arg$166, _arg$167, _arg$168, _arg$169, _arg$17, _arg$170, _arg$171, _arg$172, _arg$173, _arg$174, _arg$175, _arg$176, _arg$177, _arg$178, _arg$179, _arg$18, _arg$180, _arg$181, _arg$182, _arg$183, _arg$184, _arg$185, _arg$186, _arg$187, _arg$188, _arg$189, _arg$19, _arg$190, _arg$191, _arg$192, _arg$193, _arg$194, _arg$195, _arg$196, _arg$197, _arg$198, _arg$199, _arg$2, _arg$20, _arg$200, _arg$201, _arg$202, _arg$203, _arg$204, _arg$205, _arg$206, _arg$207, _arg$208, _arg$209, _arg$21, _arg$210, _arg$211, _arg$212, _arg$213, _arg$214, _arg$215, _arg$216, _arg$217, _arg$218, _arg$219, _arg$22, _arg$220, _arg$23, _arg$24, _arg$25, _arg$26, _arg$27, _arg$28, _arg$29, _arg$3, _arg$30, _arg$31, _arg$32, _arg$33, _arg$34, _arg$35, _arg$36, _arg$37, _arg$38, _arg$39, _arg$4, _arg$40, _arg$41, _arg$42, _arg$43, _arg$44, _arg$45, _arg$46, _arg$47, _arg$48, _arg$49, _arg$5, _arg$50, _arg$51, _arg$52, _arg$53, _arg$54, _arg$55, _arg$56, _arg$57, _arg$58, _arg$59, _arg$6, _arg$60, _arg$61, _arg$62, _arg$63, _arg$64, _arg$65, _arg$66, _arg$67, _arg$68, _arg$69, _arg$7, _arg$70, _arg$71, _arg$72, _arg$73, _arg$74, _arg$75, _arg$76, _arg$77, _arg$78, _arg$79, _arg$8, _arg$80, _arg$81, _arg$82, _arg$83, _arg$84, _arg$85, _arg$86, _arg$87, _arg$88, _arg$89, _arg$9, _arg$90, _arg$91, _arg$92, _arg$93, _arg$94, _arg$95, _arg$96, _arg$97, _arg$98, _arg$99, _entry, _entry$1, _entry$10, _entry$11, _entry$2, _entry$3, _entry$4, _entry$5, _entry$6, _entry$7, _entry$8, _entry$9, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _key, _key$1, _key$2, _keys, _r$1, _r$10, _r$100, _r$101, _r$102, _r$103, _r$104, _r$105, _r$106, _r$107, _r$108, _r$109, _r$11, _r$110, _r$111, _r$112, _r$113, _r$114, _r$115, _r$116, _r$117, _r$118, _r$119, _r$12, _r$120, _r$121, _r$122, _r$123, _r$124, _r$125, _r$126, _r$127, _r$128, _r$129, _r$13, _r$130, _r$131, _r$132, _r$133, _r$134, _r$135, _r$136, _r$137, _r$138, _r$139, _r$14, _r$140, _r$141, _r$142, _r$143, _r$144, _r$145, _r$146, _r$147, _r$148, _r$149, _r$15, _r$150, _r$151, _r$152, _r$153, _r$154, _r$155, _r$156, _r$157, _r$158, _r$159, _r$16, _r$160, _r$161, _r$162, _r$163, _r$164, _r$165, _r$166, _r$167, _r$168, _r$169, _r$17, _r$170, _r$171, _r$172, _r$173, _r$174, _r$175, _r$176, _r$177, _r$178, _r$179, _r$18, _r$180, _r$181, _r$182, _r$183, _r$184, _r$185, _r$186, _r$187, _r$188, _r$189, _r$19, _r$190, _r$191, _r$192, _r$193, _r$194, _r$195, _r$196, _r$197, _r$198, _r$199, _r$2, _r$20, _r$200, _r$201, _r$202, _r$203, _r$204, _r$205, _r$206, _r$207, _r$208, _r$209, _r$21, _r$210, _r$211, _r$212, _r$213, _r$214, _r$215, _r$216, _r$217, _r$218, _r$219, _r$22, _r$220, _r$221, _r$222, _r$223, _r$224, _r$225, _r$226, _r$227, _r$228, _r$229, _r$23, _r$230, _r$231, _r$232, _r$233, _r$234, _r$235, _r$236, _r$237, _r$238, _r$239, _r$24, _r$240, _r$241, _r$242, _r$243, _r$244, _r$245, _r$246, _r$247, _r$248, _r$249, _r$25, _r$250, _r$251, _r$252, _r$253, _r$254, _r$255, _r$256, _r$257, _r$258, _r$259, _r$26, _r$260, _r$261, _r$262, _r$263, _r$264, _r$265, _r$266, _r$267, _r$268, _r$269, _r$27, _r$270, _r$271, _r$272, _r$273, _r$274, _r$275, _r$276, _r$277, _r$278, _r$279, _r$28, _r$280, _r$281, _r$282, _r$283, _r$284, _r$285, _r$286, _r$287, _r$288, _r$289, _r$29, _r$290, _r$291, _r$292, _r$293, _r$294, _r$295, _r$296, _r$297, _r$298, _r$299, _r$3, _r$30, _r$300, _r$301, _r$302, _r$303, _r$304, _r$305, _r$306, _r$307, _r$308, _r$309, _r$31, _r$310, _r$311, _r$312, _r$313, _r$314, _r$315, _r$316, _r$317, _r$318, _r$319, _r$32, _r$320, _r$321, _r$322, _r$323, _r$324, _r$325, _r$326, _r$327, _r$328, _r$329, _r$33, _r$330, _r$331, _r$332, _r$333, _r$334, _r$335, _r$336, _r$337, _r$338, _r$339, _r$34, _r$340, _r$341, _r$342, _r$343, _r$344, _r$345, _r$346, _r$347, _r$348, _r$349, _r$35, _r$350, _r$351, _r$352, _r$353, _r$354, _r$355, _r$356, _r$357, _r$358, _r$359, _r$36, _r$360, _r$361, _r$362, _r$363, _r$364, _r$365, _r$366, _r$367, _r$368, _r$369, _r$37, _r$370, _r$371, _r$372, _r$373, _r$374, _r$375, _r$376, _r$377, _r$378, _r$379, _r$38, _r$380, _r$381, _r$382, _r$383, _r$384, _r$385, _r$386, _r$387, _r$388, _r$389, _r$39, _r$390, _r$391, _r$392, _r$393, _r$394, _r$395, _r$396, _r$397, _r$398, _r$399, _r$4, _r$40, _r$400, _r$401, _r$402, _r$403, _r$404, _r$405, _r$406, _r$407, _r$408, _r$409, _r$41, _r$410, _r$411, _r$412, _r$413, _r$414, _r$415, _r$416, _r$417, _r$418, _r$419, _r$42, _r$420, _r$421, _r$422, _r$423, _r$424, _r$425, _r$426, _r$427, _r$428, _r$429, _r$43, _r$430, _r$431, _r$432, _r$433, _r$434, _r$435, _r$436, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _r$5, _r$50, _r$51, _r$52, _r$53, _r$54, _r$55, _r$56, _r$57, _r$58, _r$59, _r$6, _r$60, _r$61, _r$62, _r$63, _r$64, _r$65, _r$66, _r$67, _r$68, _r$69, _r$7, _r$70, _r$71, _r$72, _r$73, _r$74, _r$75, _r$76, _r$77, _r$78, _r$79, _r$8, _r$80, _r$81, _r$82, _r$83, _r$84, _r$85, _r$86, _r$87, _r$88, _r$89, _r$9, _r$90, _r$91, _r$92, _r$93, _r$94, _r$95, _r$96, _r$97, _r$98, _r$99, _ref, _ref$1, _ref$10, _ref$11, _ref$12, _ref$13, _ref$14, _ref$15, _ref$16, _ref$17, _ref$18, _ref$19, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _ref$9, _size, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$2, _tuple$20, _tuple$21, _tuple$22, _tuple$23, _tuple$24, _tuple$25, _tuple$26, _tuple$27, _tuple$28, _tuple$29, _tuple$3, _tuple$30, _tuple$31, _tuple$32, _tuple$33, _tuple$34, _tuple$35, _tuple$36, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, _v$2, _v$3, b, b$1, b$2, basic, basic$1, basic$2, c1, c2, call, call$1, collectIndexedElements, d, d$1, d$2, declaredFuncRecv, e, e$1, e$10, e$11, e$12, e$13, e$14, e$15, e$16, e$2, e$3, e$4, e$5, e$6, e$7, e$8, e$9, elemType, element, element$1, element$2, elements, elements$1, entries, expr, exprType, exprType$1, externalizeArgs, externalizeExpr, f, f$1, f$2, f$3, fc, fields, fields$1, fun, globalRef, i, i$1, i$2, i$3, i$4, id, id$1, id$2, inst, isBasic, isBasic$1, isCall, isCall$1, isInterface, isKeyValue, isPointer, isTuple, isTuple$1, isTuple$2, isUnary, j, jsTag, jsTag$1, key, kve, kve$1, list, methodName$1, name, name$1, names, newSel, o, o$1, o$2, o$3, o$4, o$5, o$6, obj, obj$1, obj$2, obj$3, obj$4, objVar, objVar$1, ok, ok$1, ok$10, ok$11, ok$12, ok$13, ok$14, ok$15, ok$16, ok$17, ok$18, ok$19, ok$2, ok$3, ok$4, ok$5, ok$6, ok$7, ok$8, ok$9, op, pattern, plainFun, ptrType$75, r, recv, resultVar, resultVar$1, rewritten, sel, sel$1, sel$2, shift, sig, skipCase, skipCase$1, slice, t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$16, t$17, t$18, t$19, t$2, t$20, t$21, t$22, t$23, t$3, t$4, t$5, t$6, t$7, t$8, t$9, t2, typeCast, u, u$1, u$2, u$3, u$4, u$5, u$6, u$7, u$8, unary, v, value, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$25, x$26, x$27, x$28, x$29, x$3, x$30, x$31, x$32, x$33, x$34, x$35, x$36, x$37, x$38, x$39, x$4, x$40, x$41, x$42, x$43, x$5, x$6, x$7, x$8, x$9, y, zero, $s};return $f; + /* */ } return; } var $f = {$blk: translateExpr, $c: true, $r, $24r, $24r$1, $24r$10, $24r$100, $24r$101, $24r$102, $24r$103, $24r$104, $24r$105, $24r$106, $24r$107, $24r$108, $24r$109, $24r$11, $24r$110, $24r$111, $24r$112, $24r$113, $24r$114, $24r$115, $24r$116, $24r$117, $24r$118, $24r$119, $24r$12, $24r$120, $24r$121, $24r$122, $24r$123, $24r$124, $24r$125, $24r$126, $24r$127, $24r$128, $24r$129, $24r$13, $24r$130, $24r$131, $24r$132, $24r$133, $24r$134, $24r$135, $24r$136, $24r$137, $24r$138, $24r$139, $24r$14, $24r$140, $24r$141, $24r$142, $24r$143, $24r$144, $24r$145, $24r$146, $24r$147, $24r$148, $24r$149, $24r$15, $24r$150, $24r$151, $24r$152, $24r$153, $24r$154, $24r$155, $24r$156, $24r$157, $24r$158, $24r$159, $24r$16, $24r$160, $24r$161, $24r$162, $24r$163, $24r$164, $24r$165, $24r$166, $24r$167, $24r$168, $24r$169, $24r$17, $24r$170, $24r$171, $24r$172, $24r$18, $24r$19, $24r$2, $24r$20, $24r$21, $24r$22, $24r$23, $24r$24, $24r$25, $24r$26, $24r$27, $24r$28, $24r$29, $24r$3, $24r$30, $24r$31, $24r$32, $24r$33, $24r$34, $24r$35, $24r$36, $24r$37, $24r$38, $24r$39, $24r$4, $24r$40, $24r$41, $24r$42, $24r$43, $24r$44, $24r$45, $24r$46, $24r$47, $24r$48, $24r$49, $24r$5, $24r$50, $24r$51, $24r$52, $24r$53, $24r$54, $24r$55, $24r$56, $24r$57, $24r$58, $24r$59, $24r$6, $24r$60, $24r$61, $24r$62, $24r$63, $24r$64, $24r$65, $24r$66, $24r$67, $24r$68, $24r$69, $24r$7, $24r$70, $24r$71, $24r$72, $24r$73, $24r$74, $24r$75, $24r$76, $24r$77, $24r$78, $24r$79, $24r$8, $24r$80, $24r$81, $24r$82, $24r$83, $24r$84, $24r$85, $24r$86, $24r$87, $24r$88, $24r$89, $24r$9, $24r$90, $24r$91, $24r$92, $24r$93, $24r$94, $24r$95, $24r$96, $24r$97, $24r$98, $24r$99, _1, _10, _11, _12, _13, _2, _3, _4, _5, _6, _7, _8, _9, _arg, _arg$1, _arg$10, _arg$100, _arg$101, _arg$102, _arg$103, _arg$104, _arg$105, _arg$106, _arg$107, _arg$108, _arg$109, _arg$11, _arg$110, _arg$111, _arg$112, _arg$113, _arg$114, _arg$115, _arg$116, _arg$117, _arg$118, _arg$119, _arg$12, _arg$120, _arg$121, _arg$122, _arg$123, _arg$124, _arg$125, _arg$126, _arg$127, _arg$128, _arg$129, _arg$13, _arg$130, _arg$131, _arg$132, _arg$133, _arg$134, _arg$135, _arg$136, _arg$137, _arg$138, _arg$139, _arg$14, _arg$140, _arg$141, _arg$142, _arg$143, _arg$144, _arg$145, _arg$146, _arg$147, _arg$148, _arg$149, _arg$15, _arg$150, _arg$151, _arg$152, _arg$153, _arg$154, _arg$155, _arg$156, _arg$157, _arg$158, _arg$159, _arg$16, _arg$160, _arg$161, _arg$162, _arg$163, _arg$164, _arg$165, _arg$166, _arg$167, _arg$168, _arg$169, _arg$17, _arg$170, _arg$171, _arg$172, _arg$173, _arg$174, _arg$175, _arg$176, _arg$177, _arg$178, _arg$179, _arg$18, _arg$180, _arg$181, _arg$182, _arg$183, _arg$184, _arg$185, _arg$186, _arg$187, _arg$188, _arg$189, _arg$19, _arg$190, _arg$191, _arg$192, _arg$193, _arg$194, _arg$195, _arg$196, _arg$197, _arg$198, _arg$199, _arg$2, _arg$20, _arg$200, _arg$201, _arg$202, _arg$203, _arg$204, _arg$205, _arg$206, _arg$207, _arg$208, _arg$209, _arg$21, _arg$210, _arg$211, _arg$212, _arg$213, _arg$214, _arg$215, _arg$216, _arg$217, _arg$218, _arg$219, _arg$22, _arg$220, _arg$221, _arg$222, _arg$223, _arg$224, _arg$225, _arg$226, _arg$227, _arg$228, _arg$229, _arg$23, _arg$230, _arg$231, _arg$232, _arg$24, _arg$25, _arg$26, _arg$27, _arg$28, _arg$29, _arg$3, _arg$30, _arg$31, _arg$32, _arg$33, _arg$34, _arg$35, _arg$36, _arg$37, _arg$38, _arg$39, _arg$4, _arg$40, _arg$41, _arg$42, _arg$43, _arg$44, _arg$45, _arg$46, _arg$47, _arg$48, _arg$49, _arg$5, _arg$50, _arg$51, _arg$52, _arg$53, _arg$54, _arg$55, _arg$56, _arg$57, _arg$58, _arg$59, _arg$6, _arg$60, _arg$61, _arg$62, _arg$63, _arg$64, _arg$65, _arg$66, _arg$67, _arg$68, _arg$69, _arg$7, _arg$70, _arg$71, _arg$72, _arg$73, _arg$74, _arg$75, _arg$76, _arg$77, _arg$78, _arg$79, _arg$8, _arg$80, _arg$81, _arg$82, _arg$83, _arg$84, _arg$85, _arg$86, _arg$87, _arg$88, _arg$89, _arg$9, _arg$90, _arg$91, _arg$92, _arg$93, _arg$94, _arg$95, _arg$96, _arg$97, _arg$98, _arg$99, _entry, _entry$1, _entry$10, _entry$11, _entry$12, _entry$13, _entry$2, _entry$3, _entry$4, _entry$5, _entry$6, _entry$7, _entry$8, _entry$9, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _key, _key$1, _key$2, _keys, _r$1, _r$10, _r$100, _r$101, _r$102, _r$103, _r$104, _r$105, _r$106, _r$107, _r$108, _r$109, _r$11, _r$110, _r$111, _r$112, _r$113, _r$114, _r$115, _r$116, _r$117, _r$118, _r$119, _r$12, _r$120, _r$121, _r$122, _r$123, _r$124, _r$125, _r$126, _r$127, _r$128, _r$129, _r$13, _r$130, _r$131, _r$132, _r$133, _r$134, _r$135, _r$136, _r$137, _r$138, _r$139, _r$14, _r$140, _r$141, _r$142, _r$143, _r$144, _r$145, _r$146, _r$147, _r$148, _r$149, _r$15, _r$150, _r$151, _r$152, _r$153, _r$154, _r$155, _r$156, _r$157, _r$158, _r$159, _r$16, _r$160, _r$161, _r$162, _r$163, _r$164, _r$165, _r$166, _r$167, _r$168, _r$169, _r$17, _r$170, _r$171, _r$172, _r$173, _r$174, _r$175, _r$176, _r$177, _r$178, _r$179, _r$18, _r$180, _r$181, _r$182, _r$183, _r$184, _r$185, _r$186, _r$187, _r$188, _r$189, _r$19, _r$190, _r$191, _r$192, _r$193, _r$194, _r$195, _r$196, _r$197, _r$198, _r$199, _r$2, _r$20, _r$200, _r$201, _r$202, _r$203, _r$204, _r$205, _r$206, _r$207, _r$208, _r$209, _r$21, _r$210, _r$211, _r$212, _r$213, _r$214, _r$215, _r$216, _r$217, _r$218, _r$219, _r$22, _r$220, _r$221, _r$222, _r$223, _r$224, _r$225, _r$226, _r$227, _r$228, _r$229, _r$23, _r$230, _r$231, _r$232, _r$233, _r$234, _r$235, _r$236, _r$237, _r$238, _r$239, _r$24, _r$240, _r$241, _r$242, _r$243, _r$244, _r$245, _r$246, _r$247, _r$248, _r$249, _r$25, _r$250, _r$251, _r$252, _r$253, _r$254, _r$255, _r$256, _r$257, _r$258, _r$259, _r$26, _r$260, _r$261, _r$262, _r$263, _r$264, _r$265, _r$266, _r$267, _r$268, _r$269, _r$27, _r$270, _r$271, _r$272, _r$273, _r$274, _r$275, _r$276, _r$277, _r$278, _r$279, _r$28, _r$280, _r$281, _r$282, _r$283, _r$284, _r$285, _r$286, _r$287, _r$288, _r$289, _r$29, _r$290, _r$291, _r$292, _r$293, _r$294, _r$295, _r$296, _r$297, _r$298, _r$299, _r$3, _r$30, _r$300, _r$301, _r$302, _r$303, _r$304, _r$305, _r$306, _r$307, _r$308, _r$309, _r$31, _r$310, _r$311, _r$312, _r$313, _r$314, _r$315, _r$316, _r$317, _r$318, _r$319, _r$32, _r$320, _r$321, _r$322, _r$323, _r$324, _r$325, _r$326, _r$327, _r$328, _r$329, _r$33, _r$330, _r$331, _r$332, _r$333, _r$334, _r$335, _r$336, _r$337, _r$338, _r$339, _r$34, _r$340, _r$341, _r$342, _r$343, _r$344, _r$345, _r$346, _r$347, _r$348, _r$349, _r$35, _r$350, _r$351, _r$352, _r$353, _r$354, _r$355, _r$356, _r$357, _r$358, _r$359, _r$36, _r$360, _r$361, _r$362, _r$363, _r$364, _r$365, _r$366, _r$367, _r$368, _r$369, _r$37, _r$370, _r$371, _r$372, _r$373, _r$374, _r$375, _r$376, _r$377, _r$378, _r$379, _r$38, _r$380, _r$381, _r$382, _r$383, _r$384, _r$385, _r$386, _r$387, _r$388, _r$389, _r$39, _r$390, _r$391, _r$392, _r$393, _r$394, _r$395, _r$396, _r$397, _r$398, _r$399, _r$4, _r$40, _r$400, _r$401, _r$402, _r$403, _r$404, _r$405, _r$406, _r$407, _r$408, _r$409, _r$41, _r$410, _r$411, _r$412, _r$413, _r$414, _r$415, _r$416, _r$417, _r$418, _r$419, _r$42, _r$420, _r$421, _r$422, _r$423, _r$424, _r$425, _r$426, _r$427, _r$428, _r$429, _r$43, _r$430, _r$431, _r$432, _r$433, _r$434, _r$435, _r$436, _r$437, _r$438, _r$439, _r$44, _r$440, _r$441, _r$442, _r$443, _r$444, _r$445, _r$446, _r$447, _r$448, _r$449, _r$45, _r$450, _r$451, _r$452, _r$453, _r$46, _r$47, _r$48, _r$49, _r$5, _r$50, _r$51, _r$52, _r$53, _r$54, _r$55, _r$56, _r$57, _r$58, _r$59, _r$6, _r$60, _r$61, _r$62, _r$63, _r$64, _r$65, _r$66, _r$67, _r$68, _r$69, _r$7, _r$70, _r$71, _r$72, _r$73, _r$74, _r$75, _r$76, _r$77, _r$78, _r$79, _r$8, _r$80, _r$81, _r$82, _r$83, _r$84, _r$85, _r$86, _r$87, _r$88, _r$89, _r$9, _r$90, _r$91, _r$92, _r$93, _r$94, _r$95, _r$96, _r$97, _r$98, _r$99, _ref, _ref$1, _ref$10, _ref$11, _ref$12, _ref$13, _ref$14, _ref$15, _ref$16, _ref$17, _ref$18, _ref$19, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _ref$9, _size, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$2, _tuple$20, _tuple$21, _tuple$22, _tuple$23, _tuple$24, _tuple$25, _tuple$26, _tuple$27, _tuple$28, _tuple$29, _tuple$3, _tuple$30, _tuple$31, _tuple$32, _tuple$33, _tuple$34, _tuple$35, _tuple$36, _tuple$37, _tuple$38, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, _v$2, _v$3, b, b$1, b$2, basic, basic$1, basic$2, c1, c2, call, call$1, collectIndexedElements, d, d$1, d$2, declaredFuncRecv, e, e$1, e$10, e$11, e$12, e$13, e$14, e$15, e$16, e$2, e$3, e$4, e$5, e$6, e$7, e$8, e$9, elemType, element, element$1, element$2, elements, elements$1, entries, expr, exprType, exprType$1, externalizeArgs, externalizeExpr, f, f$1, f$2, f$3, fc, fields, fields$1, fun, globalRef, i, i$1, i$2, i$3, i$4, id, id$1, id$2, innerTyp, inst, isBasic, isBasic$1, isCall, isCall$1, isInterface, isKeyValue, isPointer, isTuple, isTuple$1, isTuple$2, isUnary, j, jsTag, jsTag$1, key, kve, kve$1, list, methodName$1, name, name$1, names, newSel, o, o$1, o$2, o$3, o$4, o$5, o$6, obj, obj$1, obj$2, obj$3, obj$4, objVar, objVar$1, ok, ok$1, ok$10, ok$11, ok$12, ok$13, ok$14, ok$15, ok$16, ok$17, ok$18, ok$19, ok$2, ok$20, ok$21, ok$3, ok$4, ok$5, ok$6, ok$7, ok$8, ok$9, op, opIsStructOrArray, pattern, pattern$1, pattern$2, plainFun, ptrType$75, r, recv, resultVar, resultVar$1, rewritten, sel, sel$1, sel$2, shift, sig, skipCase, skipCase$1, slice, t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$16, t$17, t$18, t$19, t$2, t$20, t$21, t$22, t$23, t$3, t$4, t$5, t$6, t$7, t$8, t$9, t2, typeCast, u, u$1, u$2, u$3, u$4, u$5, u$6, u$7, u$8, unary, v, value, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$25, x$26, x$27, x$28, x$29, x$3, x$30, x$31, x$32, x$33, x$34, x$35, x$36, x$37, x$38, x$39, x$4, x$40, x$41, x$42, x$43, x$44, x$45, x$46, x$47, x$5, x$6, x$7, x$8, x$9, y, zero, $s};return $f; }; $ptrType(funcContext).prototype.translateCall = function translateCall(e, sig, fun) { var {$24r, $24r$1, $24r$2, _entry, _r$1, _r$2, _r$3, _r$4, _r$5, args, e, fc, fun, resumeCase, returnVar, sig, $s, $r, $c} = $restore(this, {e, sig, fun}); @@ -341559,7 +344105,7 @@ $packages["github.com/gopherjs/gopherjs/compiler"] = (function() { /* */ } return; } var $f = {$blk: makeReceiver, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _i, _key, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _tuple$1, _tuple$2, _tuple$3, e, fakeSel, fc, index, isPointer, isPtr, methodsRecvType, pointerExpected, ptr, recv, recvType, s, sel, x, $s};return $f; }; $ptrType(funcContext).prototype.translateBuiltin = function translateBuiltin(name, sig, args, ellipsis) { - var {$24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$13, $24r$14, $24r$15, $24r$16, $24r$17, $24r$18, $24r$19, $24r$2, $24r$20, $24r$21, $24r$22, $24r$23, $24r$24, $24r$25, $24r$26, $24r$27, $24r$28, $24r$29, $24r$3, $24r$30, $24r$31, $24r$32, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _1, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$16, _arg$17, _arg$18, _arg$19, _arg$2, _arg$20, _arg$21, _arg$22, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _entry, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _r$5, _r$50, _r$51, _r$52, _r$53, _r$54, _r$55, _r$56, _r$57, _r$58, _r$59, _r$6, _r$60, _r$61, _r$62, _r$63, _r$64, _r$65, _r$66, _r$67, _r$68, _r$69, _r$7, _r$70, _r$71, _r$72, _r$73, _r$74, _r$75, _r$76, _r$77, _r$78, _r$79, _r$8, _r$80, _r$81, _r$82, _r$83, _r$84, _r$85, _r$86, _r$87, _r$88, _r$89, _r$9, _ref, _ref$1, _ref$2, _ref$3, _tuple, _tuple$1, _tuple$2, _v, argStr, argStr$1, argType, argType$1, argType$10, argType$11, argType$12, argType$2, argType$3, argType$4, argType$5, argType$6, argType$7, argType$8, argType$9, args, basic, ellipsis, fc, isBasic, keyType, length, name, ok, sel, sig, sliceType$17, t, t$1, t$2, x, $s, $r, $c} = $restore(this, {name, sig, args, ellipsis}); + var {$24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$13, $24r$14, $24r$15, $24r$16, $24r$17, $24r$18, $24r$19, $24r$2, $24r$20, $24r$21, $24r$22, $24r$23, $24r$24, $24r$25, $24r$26, $24r$27, $24r$28, $24r$29, $24r$3, $24r$30, $24r$31, $24r$32, $24r$33, $24r$34, $24r$35, $24r$36, $24r$37, $24r$38, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _1, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$16, _arg$17, _arg$18, _arg$19, _arg$2, _arg$20, _arg$21, _arg$22, _arg$23, _arg$24, _arg$25, _arg$26, _arg$27, _arg$28, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _entry, _r$1, _r$10, _r$100, _r$101, _r$102, _r$103, _r$104, _r$105, _r$106, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _r$5, _r$50, _r$51, _r$52, _r$53, _r$54, _r$55, _r$56, _r$57, _r$58, _r$59, _r$6, _r$60, _r$61, _r$62, _r$63, _r$64, _r$65, _r$66, _r$67, _r$68, _r$69, _r$7, _r$70, _r$71, _r$72, _r$73, _r$74, _r$75, _r$76, _r$77, _r$78, _r$79, _r$8, _r$80, _r$81, _r$82, _r$83, _r$84, _r$85, _r$86, _r$87, _r$88, _r$89, _r$9, _r$90, _r$91, _r$92, _r$93, _r$94, _r$95, _r$96, _r$97, _r$98, _r$99, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tuple, _tuple$1, _tuple$2, _tuple$3, _v, argStr, argStr$1, argType, argType$1, argType$10, argType$11, argType$12, argType$13, argType$14, argType$15, argType$2, argType$3, argType$4, argType$5, argType$6, argType$7, argType$8, argType$9, args, basic, basic$1, ellipsis, fc, fnName, isBasic, isBasic$1, keyType, length, name, ok, ptrType$79, sel, sig, sliceType$17, sliceType$18, t, t$1, t$2, x, $s, $r, $c} = $restore(this, {name, sig, args, ellipsis}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: fc = this; _1 = name; @@ -341578,322 +344124,397 @@ $packages["github.com/gopherjs/gopherjs/compiler"] = (function() { /* */ if (_1 === ("imag")) { $s = 14; continue; } /* */ if (_1 === ("recover")) { $s = 15; continue; } /* */ if (_1 === ("close")) { $s = 16; continue; } - /* */ if (_1 === ("Sizeof")) { $s = 17; continue; } - /* */ if (_1 === ("Alignof")) { $s = 18; continue; } - /* */ if (_1 === ("Offsetof")) { $s = 19; continue; } - /* */ if (_1 === ("SliceData")) { $s = 20; continue; } - /* */ $s = 21; continue; + /* */ if (_1 === ("min") || _1 === ("max")) { $s = 17; continue; } + /* */ if (_1 === ("clear")) { $s = 18; continue; } + /* */ if (_1 === ("Sizeof")) { $s = 19; continue; } + /* */ if (_1 === ("Alignof")) { $s = 20; continue; } + /* */ if (_1 === ("Offsetof")) { $s = 21; continue; } + /* */ if (_1 === ("String")) { $s = 22; continue; } + /* */ if (_1 === ("StringData")) { $s = 23; continue; } + /* */ if (_1 === ("Slice")) { $s = 24; continue; } + /* */ if (_1 === ("SliceData")) { $s = 25; continue; } + /* */ $s = 26; continue; /* if (_1 === ("new")) { */ case 2: t = $assertType(sig.Results().At(0).object.Type(), ptrType$3); - if (!(fc.pkgCtx.Info.Pkg.Path() === "syscall")) { _v = false; $s = 25; continue s; } - _r$1 = t.Elem().Underlying(); /* */ $s = 26; case 26: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = types.Identical(_r$1, (x = types.Typ, (12 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 12]))); /* */ $s = 27; case 27: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _v = _r$2; case 25: - /* */ if (_v) { $s = 23; continue; } - /* */ $s = 24; continue; - /* if (_v) { */ case 23: - _r$3 = fc.formatExpr("new Uint8Array(8)", sliceType.nil); /* */ $s = 28; case 28: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + if (!(fc.pkgCtx.Info.Pkg.Path() === "syscall")) { _v = false; $s = 30; continue s; } + _r$1 = t.Elem().Underlying(); /* */ $s = 31; case 31: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = types.Identical(_r$1, (x = types.Typ, (12 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 12]))); /* */ $s = 32; case 32: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v = _r$2; case 30: + /* */ if (_v) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (_v) { */ case 28: + _r$3 = fc.formatExpr("new Uint8Array(8)", sliceType.nil); /* */ $s = 33; case 33: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } $24r = _r$3; - $s = 29; case 29: return $24r; - /* } */ case 24: - _r$4 = t.Elem().Underlying(); /* */ $s = 30; case 30: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $s = 34; case 34: return $24r; + /* } */ case 29: + _r$4 = t.Elem().Underlying(); /* */ $s = 35; case 35: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _ref = _r$4; - /* */ if ($assertType(_ref, ptrType$4, true)[1] || $assertType(_ref, ptrType$7, true)[1]) { $s = 31; continue; } - /* */ $s = 32; continue; - /* if ($assertType(_ref, ptrType$4, true)[1] || $assertType(_ref, ptrType$7, true)[1]) { */ case 31: - _r$5 = fc.zeroValue(t.Elem()); /* */ $s = 34; case 34: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if ($assertType(_ref, ptrType$4, true)[1] || $assertType(_ref, ptrType$7, true)[1]) { $s = 36; continue; } + /* */ $s = 37; continue; + /* if ($assertType(_ref, ptrType$4, true)[1] || $assertType(_ref, ptrType$7, true)[1]) { */ case 36: + _r$5 = fc.zeroValue(t.Elem()); /* */ $s = 39; case 39: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } _arg = _r$5; - _r$6 = fc.formatExpr("%e", new sliceType([_arg])); /* */ $s = 35; case 35: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$6 = fc.formatExpr("%e", new sliceType([_arg])); /* */ $s = 40; case 40: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } $24r$1 = _r$6; - $s = 36; case 36: return $24r$1; - /* } else { */ case 32: - _r$7 = fc.zeroValue(t.Elem()); /* */ $s = 37; case 37: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $s = 41; case 41: return $24r$1; + /* } else { */ case 37: + _r$7 = fc.zeroValue(t.Elem()); /* */ $s = 42; case 42: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } _arg$1 = _r$7; - _r$8 = fc.typeName(t); /* */ $s = 38; case 38: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$8 = fc.typeName(t); /* */ $s = 43; case 43: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } _arg$2 = new $String(_r$8); - _r$9 = fc.formatExpr("$newDataPointer(%e, %s)", new sliceType([_arg$1, _arg$2])); /* */ $s = 39; case 39: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$9 = fc.formatExpr("$newDataPointer(%e, %s)", new sliceType([_arg$1, _arg$2])); /* */ $s = 44; case 44: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } $24r$2 = _r$9; - $s = 40; case 40: return $24r$2; - /* } */ case 33: - $s = 22; continue; + $s = 45; case 45: return $24r$2; + /* } */ case 38: + $s = 27; continue; /* } else if (_1 === ("make")) { */ case 3: - _r$10 = fc.typeOf((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])); /* */ $s = 41; case 41: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _r$11 = _r$10.Underlying(); /* */ $s = 42; case 42: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _r$10 = fc.typeOf((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])); /* */ $s = 46; case 46: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$11 = _r$10.Underlying(); /* */ $s = 47; case 47: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } _ref$1 = _r$11; - /* */ if ($assertType(_ref$1, ptrType$11, true)[1]) { $s = 43; continue; } - /* */ if ($assertType(_ref$1, ptrType$10, true)[1]) { $s = 44; continue; } - /* */ if ($assertType(_ref$1, ptrType$8, true)[1]) { $s = 45; continue; } - /* */ $s = 46; continue; - /* if ($assertType(_ref$1, ptrType$11, true)[1]) { */ case 43: + /* */ if ($assertType(_ref$1, ptrType$11, true)[1]) { $s = 48; continue; } + /* */ if ($assertType(_ref$1, ptrType$10, true)[1]) { $s = 49; continue; } + /* */ if ($assertType(_ref$1, ptrType$8, true)[1]) { $s = 50; continue; } + /* */ $s = 51; continue; + /* if ($assertType(_ref$1, ptrType$11, true)[1]) { */ case 48: argType = _ref$1.$val; - _r$12 = fc.typeOf((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])); /* */ $s = 48; case 48: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _r$13 = fc.typeName(_r$12); /* */ $s = 49; case 49: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _r$12 = fc.typeOf((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])); /* */ $s = 53; case 53: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _r$13 = fc.typeName(_r$12); /* */ $s = 54; case 54: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } t$1 = _r$13; - /* */ if (args.$length === 3) { $s = 50; continue; } - /* */ $s = 51; continue; - /* if (args.$length === 3) { */ case 50: - _r$14 = fc.formatExpr("$makeSlice(%s, %f, %f)", new sliceType([new $String(t$1), (1 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 1]), (2 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 2])])); /* */ $s = 52; case 52: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + /* */ if (args.$length === 3) { $s = 55; continue; } + /* */ $s = 56; continue; + /* if (args.$length === 3) { */ case 55: + _r$14 = fc.formatExpr("$makeSlice(%s, %f, %f)", new sliceType([new $String(t$1), (1 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 1]), (2 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 2])])); /* */ $s = 57; case 57: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } $24r$3 = _r$14; - $s = 53; case 53: return $24r$3; - /* } */ case 51: - _r$15 = fc.formatExpr("$makeSlice(%s, %f)", new sliceType([new $String(t$1), (1 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 1])])); /* */ $s = 54; case 54: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + $s = 58; case 58: return $24r$3; + /* } */ case 56: + _r$15 = fc.formatExpr("$makeSlice(%s, %f)", new sliceType([new $String(t$1), (1 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 1])])); /* */ $s = 59; case 59: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } $24r$4 = _r$15; - $s = 55; case 55: return $24r$4; - /* } else if ($assertType(_ref$1, ptrType$10, true)[1]) { */ case 44: + $s = 60; case 60: return $24r$4; + /* } else if ($assertType(_ref$1, ptrType$10, true)[1]) { */ case 49: argType$1 = _ref$1.$val; - /* */ if ((args.$length === 2) && $interfaceIsEqual((_entry = $mapIndex(fc.pkgCtx.Info.Info.Types,ast.Expr.keyFor((1 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 1]))), _entry !== undefined ? _entry.v : new types.TypeAndValue.ptr(0, $ifaceNil, $ifaceNil)).Value, $ifaceNil)) { $s = 56; continue; } - /* */ $s = 57; continue; - /* if ((args.$length === 2) && $interfaceIsEqual((_entry = $mapIndex(fc.pkgCtx.Info.Info.Types,ast.Expr.keyFor((1 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 1]))), _entry !== undefined ? _entry.v : new types.TypeAndValue.ptr(0, $ifaceNil, $ifaceNil)).Value, $ifaceNil)) { */ case 56: - _r$16 = fc.formatExpr("((%1f < 0 || %1f > 2147483647) ? $throwRuntimeError(\"makemap: size out of range\") : new $global.Map())", new sliceType([(1 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 1])])); /* */ $s = 58; case 58: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + /* */ if ((args.$length === 2) && $interfaceIsEqual((_entry = $mapIndex(fc.pkgCtx.Info.Info.Types,ast.Expr.keyFor((1 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 1]))), _entry !== undefined ? _entry.v : new types.TypeAndValue.ptr(0, $ifaceNil, $ifaceNil)).Value, $ifaceNil)) { $s = 61; continue; } + /* */ $s = 62; continue; + /* if ((args.$length === 2) && $interfaceIsEqual((_entry = $mapIndex(fc.pkgCtx.Info.Info.Types,ast.Expr.keyFor((1 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 1]))), _entry !== undefined ? _entry.v : new types.TypeAndValue.ptr(0, $ifaceNil, $ifaceNil)).Value, $ifaceNil)) { */ case 61: + _r$16 = fc.formatExpr("((%1f < 0 || %1f > 2147483647) ? $throwRuntimeError(\"makemap: size out of range\") : new $global.Map())", new sliceType([(1 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 1])])); /* */ $s = 63; case 63: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } $24r$5 = _r$16; - $s = 59; case 59: return $24r$5; - /* } */ case 57: - _r$17 = fc.formatExpr("new $global.Map()", sliceType.nil); /* */ $s = 60; case 60: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + $s = 64; case 64: return $24r$5; + /* } */ case 62: + _r$17 = fc.formatExpr("new $global.Map()", sliceType.nil); /* */ $s = 65; case 65: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } $24r$6 = _r$17; - $s = 61; case 61: return $24r$6; - /* } else if ($assertType(_ref$1, ptrType$8, true)[1]) { */ case 45: + $s = 66; case 66: return $24r$6; + /* } else if ($assertType(_ref$1, ptrType$8, true)[1]) { */ case 50: argType$2 = _ref$1.$val; length = "0"; - /* */ if (args.$length === 2) { $s = 62; continue; } - /* */ $s = 63; continue; - /* if (args.$length === 2) { */ case 62: - _r$18 = fc.formatExpr("%f", new sliceType([(1 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 1])])); /* */ $s = 64; case 64: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - _r$19 = _r$18.String(); /* */ $s = 65; case 65: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + /* */ if (args.$length === 2) { $s = 67; continue; } + /* */ $s = 68; continue; + /* if (args.$length === 2) { */ case 67: + _r$18 = fc.formatExpr("%f", new sliceType([(1 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 1])])); /* */ $s = 69; case 69: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + _r$19 = _r$18.String(); /* */ $s = 70; case 70: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } length = _r$19; - /* } */ case 63: - _r$20 = fc.typeOf((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])); /* */ $s = 66; case 66: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - _r$21 = _r$20.Underlying(); /* */ $s = 67; case 67: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } - _r$22 = $assertType(_r$21, ptrType$8).Elem(); /* */ $s = 68; case 68: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _r$23 = fc.typeName(_r$22); /* */ $s = 69; case 69: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + /* } */ case 68: + _r$20 = fc.typeOf((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])); /* */ $s = 71; case 71: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + _r$21 = _r$20.Underlying(); /* */ $s = 72; case 72: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + _r$22 = $assertType(_r$21, ptrType$8).Elem(); /* */ $s = 73; case 73: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + _r$23 = fc.typeName(_r$22); /* */ $s = 74; case 74: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } _arg$3 = new $String(_r$23); _arg$4 = new $String(length); - _r$24 = fc.formatExpr("new $Chan(%s, %s)", new sliceType([_arg$3, _arg$4])); /* */ $s = 70; case 70: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _r$24 = fc.formatExpr("new $Chan(%s, %s)", new sliceType([_arg$3, _arg$4])); /* */ $s = 75; case 75: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } $24r$7 = _r$24; - $s = 71; case 71: return $24r$7; - /* } else { */ case 46: + $s = 76; case 76: return $24r$7; + /* } else { */ case 51: argType$3 = _ref$1; - _r$25 = fmt.Sprintf("Unhandled make type: %T\n", new sliceType([argType$3])); /* */ $s = 72; case 72: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _r$25 = fmt.Sprintf("Unhandled make type: %T\n", new sliceType([argType$3])); /* */ $s = 77; case 77: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } $panic(new $String(_r$25)); - /* } */ case 47: - $s = 22; continue; + /* } */ case 52: + $s = 27; continue; /* } else if (_1 === ("len")) { */ case 4: - _r$26 = fc.typeOf((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])); /* */ $s = 73; case 73: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - _r$27 = _r$26.Underlying(); /* */ $s = 74; case 74: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + _r$26 = fc.typeOf((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])); /* */ $s = 78; case 78: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + _r$27 = _r$26.Underlying(); /* */ $s = 79; case 79: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } _ref$2 = _r$27; - /* */ if ($assertType(_ref$2, ptrType$6, true)[1]) { $s = 75; continue; } - /* */ if ($assertType(_ref$2, ptrType$11, true)[1]) { $s = 76; continue; } - /* */ if ($assertType(_ref$2, ptrType$3, true)[1]) { $s = 77; continue; } - /* */ if ($assertType(_ref$2, ptrType$10, true)[1]) { $s = 78; continue; } - /* */ if ($assertType(_ref$2, ptrType$8, true)[1]) { $s = 79; continue; } - /* */ $s = 80; continue; - /* if ($assertType(_ref$2, ptrType$6, true)[1]) { */ case 75: + /* */ if ($assertType(_ref$2, ptrType$6, true)[1]) { $s = 80; continue; } + /* */ if ($assertType(_ref$2, ptrType$11, true)[1]) { $s = 81; continue; } + /* */ if ($assertType(_ref$2, ptrType$3, true)[1]) { $s = 82; continue; } + /* */ if ($assertType(_ref$2, ptrType$10, true)[1]) { $s = 83; continue; } + /* */ if ($assertType(_ref$2, ptrType$8, true)[1]) { $s = 84; continue; } + /* */ $s = 85; continue; + /* if ($assertType(_ref$2, ptrType$6, true)[1]) { */ case 80: argType$4 = _ref$2.$val; _tuple = $assertType((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), ptrType$70, true); ok = _tuple[1]; - /* */ if (ok) { $s = 82; continue; } - /* */ $s = 83; continue; - /* if (ok) { */ case 82: - _r$28 = fc.formatExpr("(%e).length", new sliceType([(0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])])); /* */ $s = 84; case 84: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + /* */ if (ok) { $s = 87; continue; } + /* */ $s = 88; continue; + /* if (ok) { */ case 87: + _r$28 = fc.formatExpr("(%e).length", new sliceType([(0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])])); /* */ $s = 89; case 89: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } $24r$8 = _r$28; - $s = 85; case 85: return $24r$8; - /* } */ case 83: - _r$29 = fc.formatExpr("%e.length", new sliceType([(0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])])); /* */ $s = 86; case 86: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + $s = 90; case 90: return $24r$8; + /* } */ case 88: + _r$29 = fc.formatExpr("%e.length", new sliceType([(0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])])); /* */ $s = 91; case 91: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } $24r$9 = _r$29; - $s = 87; case 87: return $24r$9; - /* } else if ($assertType(_ref$2, ptrType$11, true)[1]) { */ case 76: + $s = 92; case 92: return $24r$9; + /* } else if ($assertType(_ref$2, ptrType$11, true)[1]) { */ case 81: argType$5 = _ref$2.$val; - _r$30 = fc.formatExpr("%e.$length", new sliceType([(0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])])); /* */ $s = 88; case 88: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } + _r$30 = fc.formatExpr("%e.$length", new sliceType([(0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])])); /* */ $s = 93; case 93: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } $24r$10 = _r$30; - $s = 89; case 89: return $24r$10; - /* } else if ($assertType(_ref$2, ptrType$3, true)[1]) { */ case 77: + $s = 94; case 94: return $24r$10; + /* } else if ($assertType(_ref$2, ptrType$3, true)[1]) { */ case 82: argType$6 = _ref$2.$val; - _r$31 = fc.formatExpr("(%e, %d)", new sliceType([(0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), $assertType(argType$6.Elem(), ptrType$7).Len()])); /* */ $s = 90; case 90: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } + _r$31 = fc.formatExpr("(%e, %d)", new sliceType([(0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), $assertType(argType$6.Elem(), ptrType$7).Len()])); /* */ $s = 95; case 95: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } $24r$11 = _r$31; - $s = 91; case 91: return $24r$11; - /* } else if ($assertType(_ref$2, ptrType$10, true)[1]) { */ case 78: + $s = 96; case 96: return $24r$11; + /* } else if ($assertType(_ref$2, ptrType$10, true)[1]) { */ case 83: argType$7 = _ref$2.$val; - _r$32 = fc.formatExpr("(%e ? %e.size : 0)", new sliceType([(0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])])); /* */ $s = 92; case 92: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } + _r$32 = fc.formatExpr("(%e ? %e.size : 0)", new sliceType([(0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])])); /* */ $s = 97; case 97: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } $24r$12 = _r$32; - $s = 93; case 93: return $24r$12; - /* } else if ($assertType(_ref$2, ptrType$8, true)[1]) { */ case 79: + $s = 98; case 98: return $24r$12; + /* } else if ($assertType(_ref$2, ptrType$8, true)[1]) { */ case 84: argType$8 = _ref$2.$val; - _r$33 = fc.formatExpr("%e.$buffer.length", new sliceType([(0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])])); /* */ $s = 94; case 94: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } + _r$33 = fc.formatExpr("%e.$buffer.length", new sliceType([(0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])])); /* */ $s = 99; case 99: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } $24r$13 = _r$33; - $s = 95; case 95: return $24r$13; - /* } else { */ case 80: + $s = 100; case 100: return $24r$13; + /* } else { */ case 85: argType$9 = _ref$2; - _r$34 = fmt.Sprintf("Unhandled len type: %T\n", new sliceType([argType$9])); /* */ $s = 96; case 96: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } + _r$34 = fmt.Sprintf("Unhandled len type: %T\n", new sliceType([argType$9])); /* */ $s = 101; case 101: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } $panic(new $String(_r$34)); - /* } */ case 81: - $s = 22; continue; + /* } */ case 86: + $s = 27; continue; /* } else if (_1 === ("cap")) { */ case 5: - _r$35 = fc.typeOf((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])); /* */ $s = 97; case 97: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } - _r$36 = _r$35.Underlying(); /* */ $s = 98; case 98: if($c) { $c = false; _r$36 = _r$36.$blk(); } if (_r$36 && _r$36.$blk !== undefined) { break s; } + _r$35 = fc.typeOf((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])); /* */ $s = 102; case 102: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } + _r$36 = _r$35.Underlying(); /* */ $s = 103; case 103: if($c) { $c = false; _r$36 = _r$36.$blk(); } if (_r$36 && _r$36.$blk !== undefined) { break s; } _ref$3 = _r$36; - /* */ if ($assertType(_ref$3, ptrType$11, true)[1] || $assertType(_ref$3, ptrType$8, true)[1]) { $s = 99; continue; } - /* */ if ($assertType(_ref$3, ptrType$3, true)[1]) { $s = 100; continue; } - /* */ $s = 101; continue; - /* if ($assertType(_ref$3, ptrType$11, true)[1] || $assertType(_ref$3, ptrType$8, true)[1]) { */ case 99: + /* */ if ($assertType(_ref$3, ptrType$11, true)[1] || $assertType(_ref$3, ptrType$8, true)[1]) { $s = 104; continue; } + /* */ if ($assertType(_ref$3, ptrType$3, true)[1]) { $s = 105; continue; } + /* */ $s = 106; continue; + /* if ($assertType(_ref$3, ptrType$11, true)[1] || $assertType(_ref$3, ptrType$8, true)[1]) { */ case 104: argType$10 = _ref$3; - _r$37 = fc.formatExpr("%e.$capacity", new sliceType([(0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])])); /* */ $s = 103; case 103: if($c) { $c = false; _r$37 = _r$37.$blk(); } if (_r$37 && _r$37.$blk !== undefined) { break s; } + _r$37 = fc.formatExpr("%e.$capacity", new sliceType([(0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])])); /* */ $s = 108; case 108: if($c) { $c = false; _r$37 = _r$37.$blk(); } if (_r$37 && _r$37.$blk !== undefined) { break s; } $24r$14 = _r$37; - $s = 104; case 104: return $24r$14; - /* } else if ($assertType(_ref$3, ptrType$3, true)[1]) { */ case 100: + $s = 109; case 109: return $24r$14; + /* } else if ($assertType(_ref$3, ptrType$3, true)[1]) { */ case 105: argType$11 = _ref$3.$val; - _r$38 = fc.formatExpr("(%e, %d)", new sliceType([(0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), $assertType(argType$11.Elem(), ptrType$7).Len()])); /* */ $s = 105; case 105: if($c) { $c = false; _r$38 = _r$38.$blk(); } if (_r$38 && _r$38.$blk !== undefined) { break s; } + _r$38 = fc.formatExpr("(%e, %d)", new sliceType([(0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), $assertType(argType$11.Elem(), ptrType$7).Len()])); /* */ $s = 110; case 110: if($c) { $c = false; _r$38 = _r$38.$blk(); } if (_r$38 && _r$38.$blk !== undefined) { break s; } $24r$15 = _r$38; - $s = 106; case 106: return $24r$15; - /* } else { */ case 101: + $s = 111; case 111: return $24r$15; + /* } else { */ case 106: argType$12 = _ref$3; - _r$39 = fmt.Sprintf("Unhandled cap type: %T\n", new sliceType([argType$12])); /* */ $s = 107; case 107: if($c) { $c = false; _r$39 = _r$39.$blk(); } if (_r$39 && _r$39.$blk !== undefined) { break s; } + _r$39 = fmt.Sprintf("Unhandled cap type: %T\n", new sliceType([argType$12])); /* */ $s = 112; case 112: if($c) { $c = false; _r$39 = _r$39.$blk(); } if (_r$39 && _r$39.$blk !== undefined) { break s; } $panic(new $String(_r$39)); - /* } */ case 102: - $s = 22; continue; + /* } */ case 107: + $s = 27; continue; /* } else if (_1 === ("panic")) { */ case 6: _arg$5 = (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]); - _r$40 = types.NewInterfaceType(sliceType$10.nil, sliceType$4.nil); /* */ $s = 108; case 108: if($c) { $c = false; _r$40 = _r$40.$blk(); } if (_r$40 && _r$40.$blk !== undefined) { break s; } + _r$40 = types.NewInterfaceType(sliceType$10.nil, sliceType$4.nil); /* */ $s = 113; case 113: if($c) { $c = false; _r$40 = _r$40.$blk(); } if (_r$40 && _r$40.$blk !== undefined) { break s; } _arg$6 = _r$40; - _r$41 = fc.translateImplicitConversion(_arg$5, _arg$6); /* */ $s = 109; case 109: if($c) { $c = false; _r$41 = _r$41.$blk(); } if (_r$41 && _r$41.$blk !== undefined) { break s; } + _r$41 = fc.translateImplicitConversion(_arg$5, _arg$6); /* */ $s = 114; case 114: if($c) { $c = false; _r$41 = _r$41.$blk(); } if (_r$41 && _r$41.$blk !== undefined) { break s; } _arg$7 = _r$41; - _r$42 = fc.formatExpr("$panic(%s)", new sliceType([_arg$7])); /* */ $s = 110; case 110: if($c) { $c = false; _r$42 = _r$42.$blk(); } if (_r$42 && _r$42.$blk !== undefined) { break s; } + _r$42 = fc.formatExpr("$panic(%s)", new sliceType([_arg$7])); /* */ $s = 115; case 115: if($c) { $c = false; _r$42 = _r$42.$blk(); } if (_r$42 && _r$42.$blk !== undefined) { break s; } $24r$16 = _r$42; - $s = 111; case 111: return $24r$16; + $s = 116; case 116: return $24r$16; /* } else if (_1 === ("append")) { */ case 7: - /* */ if (ellipsis || (args.$length === 1)) { $s = 112; continue; } - /* */ $s = 113; continue; - /* if (ellipsis || (args.$length === 1)) { */ case 112: - _r$43 = fc.translateArgs(sig, args, ellipsis); /* */ $s = 114; case 114: if($c) { $c = false; _r$43 = _r$43.$blk(); } if (_r$43 && _r$43.$blk !== undefined) { break s; } + /* */ if (ellipsis || (args.$length === 1)) { $s = 117; continue; } + /* */ $s = 118; continue; + /* if (ellipsis || (args.$length === 1)) { */ case 117: + _r$43 = fc.translateArgs(sig, args, ellipsis); /* */ $s = 119; case 119: if($c) { $c = false; _r$43 = _r$43.$blk(); } if (_r$43 && _r$43.$blk !== undefined) { break s; } argStr = _r$43; - _r$44 = fc.formatExpr("$appendSlice(%s, %s)", new sliceType([new $String((0 >= argStr.$length ? ($throwRuntimeError("index out of range"), undefined) : argStr.$array[argStr.$offset + 0])), new $String((1 >= argStr.$length ? ($throwRuntimeError("index out of range"), undefined) : argStr.$array[argStr.$offset + 1]))])); /* */ $s = 115; case 115: if($c) { $c = false; _r$44 = _r$44.$blk(); } if (_r$44 && _r$44.$blk !== undefined) { break s; } + _r$44 = fc.formatExpr("$appendSlice(%s, %s)", new sliceType([new $String((0 >= argStr.$length ? ($throwRuntimeError("index out of range"), undefined) : argStr.$array[argStr.$offset + 0])), new $String((1 >= argStr.$length ? ($throwRuntimeError("index out of range"), undefined) : argStr.$array[argStr.$offset + 1]))])); /* */ $s = 120; case 120: if($c) { $c = false; _r$44 = _r$44.$blk(); } if (_r$44 && _r$44.$blk !== undefined) { break s; } $24r$17 = _r$44; - $s = 116; case 116: return $24r$17; - /* } */ case 113: - _r$45 = sig.Results().At(0).object.Type().Underlying(); /* */ $s = 117; case 117: if($c) { $c = false; _r$45 = _r$45.$blk(); } if (_r$45 && _r$45.$blk !== undefined) { break s; } + $s = 121; case 121: return $24r$17; + /* } */ case 118: + _r$45 = sig.Results().At(0).object.Type().Underlying(); /* */ $s = 122; case 122: if($c) { $c = false; _r$45 = _r$45.$blk(); } if (_r$45 && _r$45.$blk !== undefined) { break s; } sliceType$17 = $assertType(_r$45, ptrType$11); _arg$8 = (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]); - _r$46 = fc.translateExprSlice($subslice(args, 1), sliceType$17.Elem()); /* */ $s = 118; case 118: if($c) { $c = false; _r$46 = _r$46.$blk(); } if (_r$46 && _r$46.$blk !== undefined) { break s; } - _r$47 = strings.Join(_r$46, ", "); /* */ $s = 119; case 119: if($c) { $c = false; _r$47 = _r$47.$blk(); } if (_r$47 && _r$47.$blk !== undefined) { break s; } + _r$46 = fc.translateExprSlice($subslice(args, 1), sliceType$17.Elem()); /* */ $s = 123; case 123: if($c) { $c = false; _r$46 = _r$46.$blk(); } if (_r$46 && _r$46.$blk !== undefined) { break s; } + _r$47 = strings.Join(_r$46, ", "); /* */ $s = 124; case 124: if($c) { $c = false; _r$47 = _r$47.$blk(); } if (_r$47 && _r$47.$blk !== undefined) { break s; } _arg$9 = new $String(_r$47); - _r$48 = fc.formatExpr("$append(%e, %s)", new sliceType([_arg$8, _arg$9])); /* */ $s = 120; case 120: if($c) { $c = false; _r$48 = _r$48.$blk(); } if (_r$48 && _r$48.$blk !== undefined) { break s; } + _r$48 = fc.formatExpr("$append(%e, %s)", new sliceType([_arg$8, _arg$9])); /* */ $s = 125; case 125: if($c) { $c = false; _r$48 = _r$48.$blk(); } if (_r$48 && _r$48.$blk !== undefined) { break s; } $24r$18 = _r$48; - $s = 121; case 121: return $24r$18; + $s = 126; case 126: return $24r$18; /* } else if (_1 === ("delete")) { */ case 8: - _r$49 = fc.expandTupleArgs(args); /* */ $s = 122; case 122: if($c) { $c = false; _r$49 = _r$49.$blk(); } if (_r$49 && _r$49.$blk !== undefined) { break s; } + _r$49 = fc.expandTupleArgs(args); /* */ $s = 127; case 127: if($c) { $c = false; _r$49 = _r$49.$blk(); } if (_r$49 && _r$49.$blk !== undefined) { break s; } args = _r$49; - _r$50 = fc.typeOf((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])); /* */ $s = 123; case 123: if($c) { $c = false; _r$50 = _r$50.$blk(); } if (_r$50 && _r$50.$blk !== undefined) { break s; } - _r$51 = _r$50.Underlying(); /* */ $s = 124; case 124: if($c) { $c = false; _r$51 = _r$51.$blk(); } if (_r$51 && _r$51.$blk !== undefined) { break s; } - _r$52 = $assertType(_r$51, ptrType$10).Key(); /* */ $s = 125; case 125: if($c) { $c = false; _r$52 = _r$52.$blk(); } if (_r$52 && _r$52.$blk !== undefined) { break s; } + _r$50 = fc.typeOf((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])); /* */ $s = 128; case 128: if($c) { $c = false; _r$50 = _r$50.$blk(); } if (_r$50 && _r$50.$blk !== undefined) { break s; } + _r$51 = _r$50.Underlying(); /* */ $s = 129; case 129: if($c) { $c = false; _r$51 = _r$51.$blk(); } if (_r$51 && _r$51.$blk !== undefined) { break s; } + _r$52 = $assertType(_r$51, ptrType$10).Key(); /* */ $s = 130; case 130: if($c) { $c = false; _r$52 = _r$52.$blk(); } if (_r$52 && _r$52.$blk !== undefined) { break s; } keyType = _r$52; _arg$10 = (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]); - _r$53 = fc.typeName(keyType); /* */ $s = 126; case 126: if($c) { $c = false; _r$53 = _r$53.$blk(); } if (_r$53 && _r$53.$blk !== undefined) { break s; } + _r$53 = fc.typeName(keyType); /* */ $s = 131; case 131: if($c) { $c = false; _r$53 = _r$53.$blk(); } if (_r$53 && _r$53.$blk !== undefined) { break s; } _arg$11 = new $String(_r$53); - _r$54 = fc.translateImplicitConversion((1 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 1]), keyType); /* */ $s = 127; case 127: if($c) { $c = false; _r$54 = _r$54.$blk(); } if (_r$54 && _r$54.$blk !== undefined) { break s; } + _r$54 = fc.translateImplicitConversion((1 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 1]), keyType); /* */ $s = 132; case 132: if($c) { $c = false; _r$54 = _r$54.$blk(); } if (_r$54 && _r$54.$blk !== undefined) { break s; } _arg$12 = _r$54; - _r$55 = fc.formatExpr("$mapDelete(%1e, %2s.keyFor(%3s))", new sliceType([_arg$10, _arg$11, _arg$12])); /* */ $s = 128; case 128: if($c) { $c = false; _r$55 = _r$55.$blk(); } if (_r$55 && _r$55.$blk !== undefined) { break s; } + _r$55 = fc.formatExpr("$mapDelete(%1e, %2s.keyFor(%3s))", new sliceType([_arg$10, _arg$11, _arg$12])); /* */ $s = 133; case 133: if($c) { $c = false; _r$55 = _r$55.$blk(); } if (_r$55 && _r$55.$blk !== undefined) { break s; } $24r$19 = _r$55; - $s = 129; case 129: return $24r$19; + $s = 134; case 134: return $24r$19; /* } else if (_1 === ("copy")) { */ case 9: - _r$56 = fc.expandTupleArgs(args); /* */ $s = 130; case 130: if($c) { $c = false; _r$56 = _r$56.$blk(); } if (_r$56 && _r$56.$blk !== undefined) { break s; } + _r$56 = fc.expandTupleArgs(args); /* */ $s = 135; case 135: if($c) { $c = false; _r$56 = _r$56.$blk(); } if (_r$56 && _r$56.$blk !== undefined) { break s; } args = _r$56; - _r$57 = fc.typeOf((1 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 1])); /* */ $s = 131; case 131: if($c) { $c = false; _r$57 = _r$57.$blk(); } if (_r$57 && _r$57.$blk !== undefined) { break s; } - _r$58 = _r$57.Underlying(); /* */ $s = 132; case 132: if($c) { $c = false; _r$58 = _r$58.$blk(); } if (_r$58 && _r$58.$blk !== undefined) { break s; } + _r$57 = fc.typeOf((1 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 1])); /* */ $s = 136; case 136: if($c) { $c = false; _r$57 = _r$57.$blk(); } if (_r$57 && _r$57.$blk !== undefined) { break s; } + _r$58 = _r$57.Underlying(); /* */ $s = 137; case 137: if($c) { $c = false; _r$58 = _r$58.$blk(); } if (_r$58 && _r$58.$blk !== undefined) { break s; } _tuple$1 = $assertType(_r$58, ptrType$6, true); basic = _tuple$1[0]; isBasic = _tuple$1[1]; - /* */ if (isBasic && isString(basic)) { $s = 133; continue; } - /* */ $s = 134; continue; - /* if (isBasic && isString(basic)) { */ case 133: - _r$59 = fc.formatExpr("$copyString(%e, %e)", new sliceType([(0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), (1 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 1])])); /* */ $s = 135; case 135: if($c) { $c = false; _r$59 = _r$59.$blk(); } if (_r$59 && _r$59.$blk !== undefined) { break s; } + /* */ if (isBasic && isString(basic)) { $s = 138; continue; } + /* */ $s = 139; continue; + /* if (isBasic && isString(basic)) { */ case 138: + _r$59 = fc.formatExpr("$copyString(%e, %e)", new sliceType([(0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), (1 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 1])])); /* */ $s = 140; case 140: if($c) { $c = false; _r$59 = _r$59.$blk(); } if (_r$59 && _r$59.$blk !== undefined) { break s; } $24r$20 = _r$59; - $s = 136; case 136: return $24r$20; - /* } */ case 134: - _r$60 = fc.formatExpr("$copySlice(%e, %e)", new sliceType([(0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), (1 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 1])])); /* */ $s = 137; case 137: if($c) { $c = false; _r$60 = _r$60.$blk(); } if (_r$60 && _r$60.$blk !== undefined) { break s; } + $s = 141; case 141: return $24r$20; + /* } */ case 139: + _r$60 = fc.formatExpr("$copySlice(%e, %e)", new sliceType([(0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), (1 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 1])])); /* */ $s = 142; case 142: if($c) { $c = false; _r$60 = _r$60.$blk(); } if (_r$60 && _r$60.$blk !== undefined) { break s; } $24r$21 = _r$60; - $s = 138; case 138: return $24r$21; + $s = 143; case 143: return $24r$21; /* } else if (_1 === ("print")) { */ case 10: - _r$61 = fc.expandTupleArgs(args); /* */ $s = 139; case 139: if($c) { $c = false; _r$61 = _r$61.$blk(); } if (_r$61 && _r$61.$blk !== undefined) { break s; } + _r$61 = fc.expandTupleArgs(args); /* */ $s = 144; case 144: if($c) { $c = false; _r$61 = _r$61.$blk(); } if (_r$61 && _r$61.$blk !== undefined) { break s; } args = _r$61; - _r$62 = fc.translateExprSlice(args, $ifaceNil); /* */ $s = 140; case 140: if($c) { $c = false; _r$62 = _r$62.$blk(); } if (_r$62 && _r$62.$blk !== undefined) { break s; } - _r$63 = strings.Join(_r$62, ", "); /* */ $s = 141; case 141: if($c) { $c = false; _r$63 = _r$63.$blk(); } if (_r$63 && _r$63.$blk !== undefined) { break s; } + _r$62 = fc.translateExprSlice(args, $ifaceNil); /* */ $s = 145; case 145: if($c) { $c = false; _r$62 = _r$62.$blk(); } if (_r$62 && _r$62.$blk !== undefined) { break s; } + _r$63 = strings.Join(_r$62, ", "); /* */ $s = 146; case 146: if($c) { $c = false; _r$63 = _r$63.$blk(); } if (_r$63 && _r$63.$blk !== undefined) { break s; } _arg$13 = new $String(_r$63); - _r$64 = fc.formatExpr("$print(%s)", new sliceType([_arg$13])); /* */ $s = 142; case 142: if($c) { $c = false; _r$64 = _r$64.$blk(); } if (_r$64 && _r$64.$blk !== undefined) { break s; } + _r$64 = fc.formatExpr("$print(%s)", new sliceType([_arg$13])); /* */ $s = 147; case 147: if($c) { $c = false; _r$64 = _r$64.$blk(); } if (_r$64 && _r$64.$blk !== undefined) { break s; } $24r$22 = _r$64; - $s = 143; case 143: return $24r$22; + $s = 148; case 148: return $24r$22; /* } else if (_1 === ("println")) { */ case 11: - _r$65 = fc.expandTupleArgs(args); /* */ $s = 144; case 144: if($c) { $c = false; _r$65 = _r$65.$blk(); } if (_r$65 && _r$65.$blk !== undefined) { break s; } + _r$65 = fc.expandTupleArgs(args); /* */ $s = 149; case 149: if($c) { $c = false; _r$65 = _r$65.$blk(); } if (_r$65 && _r$65.$blk !== undefined) { break s; } args = _r$65; - _r$66 = fc.translateExprSlice(args, $ifaceNil); /* */ $s = 145; case 145: if($c) { $c = false; _r$66 = _r$66.$blk(); } if (_r$66 && _r$66.$blk !== undefined) { break s; } - _r$67 = strings.Join(_r$66, ", "); /* */ $s = 146; case 146: if($c) { $c = false; _r$67 = _r$67.$blk(); } if (_r$67 && _r$67.$blk !== undefined) { break s; } + _r$66 = fc.translateExprSlice(args, $ifaceNil); /* */ $s = 150; case 150: if($c) { $c = false; _r$66 = _r$66.$blk(); } if (_r$66 && _r$66.$blk !== undefined) { break s; } + _r$67 = strings.Join(_r$66, ", "); /* */ $s = 151; case 151: if($c) { $c = false; _r$67 = _r$67.$blk(); } if (_r$67 && _r$67.$blk !== undefined) { break s; } _arg$14 = new $String(_r$67); - _r$68 = fc.formatExpr("console.log(%s)", new sliceType([_arg$14])); /* */ $s = 147; case 147: if($c) { $c = false; _r$68 = _r$68.$blk(); } if (_r$68 && _r$68.$blk !== undefined) { break s; } + _r$68 = fc.formatExpr("console.log(%s)", new sliceType([_arg$14])); /* */ $s = 152; case 152: if($c) { $c = false; _r$68 = _r$68.$blk(); } if (_r$68 && _r$68.$blk !== undefined) { break s; } $24r$23 = _r$68; - $s = 148; case 148: return $24r$23; + $s = 153; case 153: return $24r$23; /* } else if (_1 === ("complex")) { */ case 12: - _r$69 = fc.translateArgs(sig, args, ellipsis); /* */ $s = 149; case 149: if($c) { $c = false; _r$69 = _r$69.$blk(); } if (_r$69 && _r$69.$blk !== undefined) { break s; } + _r$69 = fc.translateArgs(sig, args, ellipsis); /* */ $s = 154; case 154: if($c) { $c = false; _r$69 = _r$69.$blk(); } if (_r$69 && _r$69.$blk !== undefined) { break s; } argStr$1 = _r$69; - _r$70 = fc.typeName(sig.Results().At(0).object.Type()); /* */ $s = 150; case 150: if($c) { $c = false; _r$70 = _r$70.$blk(); } if (_r$70 && _r$70.$blk !== undefined) { break s; } + _r$70 = fc.typeName(sig.Results().At(0).object.Type()); /* */ $s = 155; case 155: if($c) { $c = false; _r$70 = _r$70.$blk(); } if (_r$70 && _r$70.$blk !== undefined) { break s; } _arg$15 = new $String(_r$70); _arg$16 = new $String((0 >= argStr$1.$length ? ($throwRuntimeError("index out of range"), undefined) : argStr$1.$array[argStr$1.$offset + 0])); _arg$17 = new $String((1 >= argStr$1.$length ? ($throwRuntimeError("index out of range"), undefined) : argStr$1.$array[argStr$1.$offset + 1])); - _r$71 = fc.formatExpr("new %s(%s, %s)", new sliceType([_arg$15, _arg$16, _arg$17])); /* */ $s = 151; case 151: if($c) { $c = false; _r$71 = _r$71.$blk(); } if (_r$71 && _r$71.$blk !== undefined) { break s; } + _r$71 = fc.formatExpr("new %s(%s, %s)", new sliceType([_arg$15, _arg$16, _arg$17])); /* */ $s = 156; case 156: if($c) { $c = false; _r$71 = _r$71.$blk(); } if (_r$71 && _r$71.$blk !== undefined) { break s; } $24r$24 = _r$71; - $s = 152; case 152: return $24r$24; + $s = 157; case 157: return $24r$24; /* } else if (_1 === ("real")) { */ case 13: - _r$72 = fc.formatExpr("%e.$real", new sliceType([(0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])])); /* */ $s = 153; case 153: if($c) { $c = false; _r$72 = _r$72.$blk(); } if (_r$72 && _r$72.$blk !== undefined) { break s; } + _r$72 = fc.formatExpr("%e.$real", new sliceType([(0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])])); /* */ $s = 158; case 158: if($c) { $c = false; _r$72 = _r$72.$blk(); } if (_r$72 && _r$72.$blk !== undefined) { break s; } $24r$25 = _r$72; - $s = 154; case 154: return $24r$25; + $s = 159; case 159: return $24r$25; /* } else if (_1 === ("imag")) { */ case 14: - _r$73 = fc.formatExpr("%e.$imag", new sliceType([(0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])])); /* */ $s = 155; case 155: if($c) { $c = false; _r$73 = _r$73.$blk(); } if (_r$73 && _r$73.$blk !== undefined) { break s; } + _r$73 = fc.formatExpr("%e.$imag", new sliceType([(0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])])); /* */ $s = 160; case 160: if($c) { $c = false; _r$73 = _r$73.$blk(); } if (_r$73 && _r$73.$blk !== undefined) { break s; } $24r$26 = _r$73; - $s = 156; case 156: return $24r$26; + $s = 161; case 161: return $24r$26; /* } else if (_1 === ("recover")) { */ case 15: - _r$74 = fc.formatExpr("$recover()", sliceType.nil); /* */ $s = 157; case 157: if($c) { $c = false; _r$74 = _r$74.$blk(); } if (_r$74 && _r$74.$blk !== undefined) { break s; } + _r$74 = fc.formatExpr("$recover()", sliceType.nil); /* */ $s = 162; case 162: if($c) { $c = false; _r$74 = _r$74.$blk(); } if (_r$74 && _r$74.$blk !== undefined) { break s; } $24r$27 = _r$74; - $s = 158; case 158: return $24r$27; + $s = 163; case 163: return $24r$27; /* } else if (_1 === ("close")) { */ case 16: - _r$75 = fc.formatExpr("$close(%e)", new sliceType([(0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])])); /* */ $s = 159; case 159: if($c) { $c = false; _r$75 = _r$75.$blk(); } if (_r$75 && _r$75.$blk !== undefined) { break s; } + _r$75 = fc.formatExpr("$close(%e)", new sliceType([(0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])])); /* */ $s = 164; case 164: if($c) { $c = false; _r$75 = _r$75.$blk(); } if (_r$75 && _r$75.$blk !== undefined) { break s; } $24r$28 = _r$75; - $s = 160; case 160: return $24r$28; - /* } else if (_1 === ("Sizeof")) { */ case 17: - _r$76 = fc.typeOf((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])); /* */ $s = 161; case 161: if($c) { $c = false; _r$76 = _r$76.$blk(); } if (_r$76 && _r$76.$blk !== undefined) { break s; } - _r$77 = sizes32.Sizeof(_r$76); /* */ $s = 162; case 162: if($c) { $c = false; _r$77 = _r$77.$blk(); } if (_r$77 && _r$77.$blk !== undefined) { break s; } - _arg$18 = _r$77; - _r$78 = fc.formatExpr("%d", new sliceType([_arg$18])); /* */ $s = 163; case 163: if($c) { $c = false; _r$78 = _r$78.$blk(); } if (_r$78 && _r$78.$blk !== undefined) { break s; } - $24r$29 = _r$78; - $s = 164; case 164: return $24r$29; - /* } else if (_1 === ("Alignof")) { */ case 18: - _r$79 = fc.typeOf((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])); /* */ $s = 165; case 165: if($c) { $c = false; _r$79 = _r$79.$blk(); } if (_r$79 && _r$79.$blk !== undefined) { break s; } - _r$80 = sizes32.Alignof(_r$79); /* */ $s = 166; case 166: if($c) { $c = false; _r$80 = _r$80.$blk(); } if (_r$80 && _r$80.$blk !== undefined) { break s; } - _arg$19 = _r$80; - _r$81 = fc.formatExpr("%d", new sliceType([_arg$19])); /* */ $s = 167; case 167: if($c) { $c = false; _r$81 = _r$81.$blk(); } if (_r$81 && _r$81.$blk !== undefined) { break s; } - $24r$30 = _r$81; - $s = 168; case 168: return $24r$30; - /* } else if (_1 === ("Offsetof")) { */ case 19: - _r$82 = fc.selectionOf($assertType(astutil.RemoveParens((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])), ptrType$23)); /* */ $s = 169; case 169: if($c) { $c = false; _r$82 = _r$82.$blk(); } if (_r$82 && _r$82.$blk !== undefined) { break s; } - _tuple$2 = _r$82; - sel = _tuple$2[0]; - _r$83 = typesutil.OffsetOf(sizes32, sel); /* */ $s = 170; case 170: if($c) { $c = false; _r$83 = _r$83.$blk(); } if (_r$83 && _r$83.$blk !== undefined) { break s; } - _arg$20 = _r$83; - _r$84 = fc.formatExpr("%d", new sliceType([_arg$20])); /* */ $s = 171; case 171: if($c) { $c = false; _r$84 = _r$84.$blk(); } if (_r$84 && _r$84.$blk !== undefined) { break s; } - $24r$31 = _r$84; - $s = 172; case 172: return $24r$31; - /* } else if (_1 === ("SliceData")) { */ case 20: - _r$85 = fc.typeOf((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])); /* */ $s = 173; case 173: if($c) { $c = false; _r$85 = _r$85.$blk(); } if (_r$85 && _r$85.$blk !== undefined) { break s; } - _r$86 = _r$85.Underlying(); /* */ $s = 174; case 174: if($c) { $c = false; _r$86 = _r$86.$blk(); } if (_r$86 && _r$86.$blk !== undefined) { break s; } - t$2 = $assertType(_r$86, ptrType$11); - _arg$21 = (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]); - _r$87 = fc.typeName(t$2); /* */ $s = 175; case 175: if($c) { $c = false; _r$87 = _r$87.$blk(); } if (_r$87 && _r$87.$blk !== undefined) { break s; } - _arg$22 = new $String(_r$87); - _r$88 = fc.formatExpr("$sliceData(%e, %s)", new sliceType([_arg$21, _arg$22])); /* */ $s = 176; case 176: if($c) { $c = false; _r$88 = _r$88.$blk(); } if (_r$88 && _r$88.$blk !== undefined) { break s; } - $24r$32 = _r$88; - $s = 177; case 177: return $24r$32; - /* } else { */ case 21: - _r$89 = fmt.Sprintf("Unhandled builtin: %s\n", new sliceType([new $String(name)])); /* */ $s = 178; case 178: if($c) { $c = false; _r$89 = _r$89.$blk(); } if (_r$89 && _r$89.$blk !== undefined) { break s; } - $panic(new $String(_r$89)); - /* } */ case 22: + $s = 165; case 165: return $24r$28; + /* } else if (_1 === ("min") || _1 === ("max")) { */ case 17: + _r$76 = fc.typeOf((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])); /* */ $s = 166; case 166: if($c) { $c = false; _r$76 = _r$76.$blk(); } if (_r$76 && _r$76.$blk !== undefined) { break s; } + _r$77 = _r$76.Underlying(); /* */ $s = 167; case 167: if($c) { $c = false; _r$77 = _r$77.$blk(); } if (_r$77 && _r$77.$blk !== undefined) { break s; } + _tuple$2 = $assertType(_r$77, ptrType$6, true); + basic$1 = _tuple$2[0]; + isBasic$1 = _tuple$2[1]; + /* */ if (isBasic$1 && isOrdered(basic$1)) { $s = 168; continue; } + /* */ $s = 169; continue; + /* if (isBasic$1 && isOrdered(basic$1)) { */ case 168: + fnName = "$" + name; + if (is64Bit(basic$1)) { + fnName = fnName + ("64"); + } else if (isString(basic$1)) { + fnName = fnName + ("Str"); + } + _arg$18 = new $String(fnName); + _arg$19 = (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]); + _r$78 = fc.translateExprSlice($subslice(args, 1), basic$1); /* */ $s = 170; case 170: if($c) { $c = false; _r$78 = _r$78.$blk(); } if (_r$78 && _r$78.$blk !== undefined) { break s; } + _r$79 = strings.Join(_r$78, ", "); /* */ $s = 171; case 171: if($c) { $c = false; _r$79 = _r$79.$blk(); } if (_r$79 && _r$79.$blk !== undefined) { break s; } + _arg$20 = new $String(_r$79); + _r$80 = fc.formatExpr("%s(%e, %s)", new sliceType([_arg$18, _arg$19, _arg$20])); /* */ $s = 172; case 172: if($c) { $c = false; _r$80 = _r$80.$blk(); } if (_r$80 && _r$80.$blk !== undefined) { break s; } + $24r$29 = _r$80; + $s = 173; case 173: return $24r$29; + /* } */ case 169: + _r$81 = fmt.Sprintf("Unhandled type for %s: %T\n", new sliceType([new $String(name), (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])])); /* */ $s = 174; case 174: if($c) { $c = false; _r$81 = _r$81.$blk(); } if (_r$81 && _r$81.$blk !== undefined) { break s; } + $panic(new $String(_r$81)); + $s = 27; continue; + /* } else if (_1 === ("clear")) { */ case 18: + _r$82 = fc.typeOf((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])); /* */ $s = 175; case 175: if($c) { $c = false; _r$82 = _r$82.$blk(); } if (_r$82 && _r$82.$blk !== undefined) { break s; } + _r$83 = _r$82.Underlying(); /* */ $s = 176; case 176: if($c) { $c = false; _r$83 = _r$83.$blk(); } if (_r$83 && _r$83.$blk !== undefined) { break s; } + _ref$4 = _r$83; + /* */ if ($assertType(_ref$4, ptrType$11, true)[1]) { $s = 177; continue; } + /* */ if ($assertType(_ref$4, ptrType$10, true)[1]) { $s = 178; continue; } + /* */ $s = 179; continue; + /* if ($assertType(_ref$4, ptrType$11, true)[1]) { */ case 177: + argType$13 = _ref$4.$val; + _r$84 = fc.formatExpr("$clearSlice(%e)", new sliceType([(0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])])); /* */ $s = 181; case 181: if($c) { $c = false; _r$84 = _r$84.$blk(); } if (_r$84 && _r$84.$blk !== undefined) { break s; } + $24r$30 = _r$84; + $s = 182; case 182: return $24r$30; + /* } else if ($assertType(_ref$4, ptrType$10, true)[1]) { */ case 178: + argType$14 = _ref$4.$val; + _r$85 = fc.formatExpr("$clearMap(%e)", new sliceType([(0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])])); /* */ $s = 183; case 183: if($c) { $c = false; _r$85 = _r$85.$blk(); } if (_r$85 && _r$85.$blk !== undefined) { break s; } + $24r$31 = _r$85; + $s = 184; case 184: return $24r$31; + /* } else { */ case 179: + argType$15 = _ref$4; + _r$86 = fmt.Sprintf("Unhandled clear type: %T\n", new sliceType([argType$15])); /* */ $s = 185; case 185: if($c) { $c = false; _r$86 = _r$86.$blk(); } if (_r$86 && _r$86.$blk !== undefined) { break s; } + $panic(new $String(_r$86)); + /* } */ case 180: + $s = 27; continue; + /* } else if (_1 === ("Sizeof")) { */ case 19: + _r$87 = fc.typeOf((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])); /* */ $s = 186; case 186: if($c) { $c = false; _r$87 = _r$87.$blk(); } if (_r$87 && _r$87.$blk !== undefined) { break s; } + _r$88 = sizes32.Sizeof(_r$87); /* */ $s = 187; case 187: if($c) { $c = false; _r$88 = _r$88.$blk(); } if (_r$88 && _r$88.$blk !== undefined) { break s; } + _arg$21 = _r$88; + _r$89 = fc.formatExpr("%d", new sliceType([_arg$21])); /* */ $s = 188; case 188: if($c) { $c = false; _r$89 = _r$89.$blk(); } if (_r$89 && _r$89.$blk !== undefined) { break s; } + $24r$32 = _r$89; + $s = 189; case 189: return $24r$32; + /* } else if (_1 === ("Alignof")) { */ case 20: + _r$90 = fc.typeOf((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])); /* */ $s = 190; case 190: if($c) { $c = false; _r$90 = _r$90.$blk(); } if (_r$90 && _r$90.$blk !== undefined) { break s; } + _r$91 = sizes32.Alignof(_r$90); /* */ $s = 191; case 191: if($c) { $c = false; _r$91 = _r$91.$blk(); } if (_r$91 && _r$91.$blk !== undefined) { break s; } + _arg$22 = _r$91; + _r$92 = fc.formatExpr("%d", new sliceType([_arg$22])); /* */ $s = 192; case 192: if($c) { $c = false; _r$92 = _r$92.$blk(); } if (_r$92 && _r$92.$blk !== undefined) { break s; } + $24r$33 = _r$92; + $s = 193; case 193: return $24r$33; + /* } else if (_1 === ("Offsetof")) { */ case 21: + _r$93 = fc.selectionOf($assertType(astutil.RemoveParens((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])), ptrType$23)); /* */ $s = 194; case 194: if($c) { $c = false; _r$93 = _r$93.$blk(); } if (_r$93 && _r$93.$blk !== undefined) { break s; } + _tuple$3 = _r$93; + sel = _tuple$3[0]; + _r$94 = typesutil.OffsetOf(sizes32, sel); /* */ $s = 195; case 195: if($c) { $c = false; _r$94 = _r$94.$blk(); } if (_r$94 && _r$94.$blk !== undefined) { break s; } + _arg$23 = _r$94; + _r$95 = fc.formatExpr("%d", new sliceType([_arg$23])); /* */ $s = 196; case 196: if($c) { $c = false; _r$95 = _r$95.$blk(); } if (_r$95 && _r$95.$blk !== undefined) { break s; } + $24r$34 = _r$95; + $s = 197; case 197: return $24r$34; + /* } else if (_1 === ("String")) { */ case 22: + _r$96 = fc.formatExpr("$unsafeString(%e, %f)", new sliceType([(0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), (1 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 1])])); /* */ $s = 198; case 198: if($c) { $c = false; _r$96 = _r$96.$blk(); } if (_r$96 && _r$96.$blk !== undefined) { break s; } + $24r$35 = _r$96; + $s = 199; case 199: return $24r$35; + /* } else if (_1 === ("StringData")) { */ case 23: + _r$97 = fc.formatExpr("$unsafeStringData(%e)", new sliceType([(0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])])); /* */ $s = 200; case 200: if($c) { $c = false; _r$97 = _r$97.$blk(); } if (_r$97 && _r$97.$blk !== undefined) { break s; } + $24r$36 = _r$97; + $s = 201; case 201: return $24r$36; + /* } else if (_1 === ("Slice")) { */ case 24: + _r$98 = fc.typeOf((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])); /* */ $s = 202; case 202: if($c) { $c = false; _r$98 = _r$98.$blk(); } if (_r$98 && _r$98.$blk !== undefined) { break s; } + _r$99 = _r$98.Underlying(); /* */ $s = 203; case 203: if($c) { $c = false; _r$99 = _r$99.$blk(); } if (_r$99 && _r$99.$blk !== undefined) { break s; } + ptrType$79 = $assertType(_r$99, ptrType$3); + sliceType$18 = types.NewSlice(ptrType$79.Elem()); + _arg$24 = (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]); + _arg$25 = (1 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 1]); + _r$100 = fc.typeName(sliceType$18); /* */ $s = 204; case 204: if($c) { $c = false; _r$100 = _r$100.$blk(); } if (_r$100 && _r$100.$blk !== undefined) { break s; } + _arg$26 = new $String(_r$100); + _r$101 = fc.formatExpr("$unsafeSlice(%e, %f, %s)", new sliceType([_arg$24, _arg$25, _arg$26])); /* */ $s = 205; case 205: if($c) { $c = false; _r$101 = _r$101.$blk(); } if (_r$101 && _r$101.$blk !== undefined) { break s; } + $24r$37 = _r$101; + $s = 206; case 206: return $24r$37; + /* } else if (_1 === ("SliceData")) { */ case 25: + _r$102 = fc.typeOf((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])); /* */ $s = 207; case 207: if($c) { $c = false; _r$102 = _r$102.$blk(); } if (_r$102 && _r$102.$blk !== undefined) { break s; } + _r$103 = _r$102.Underlying(); /* */ $s = 208; case 208: if($c) { $c = false; _r$103 = _r$103.$blk(); } if (_r$103 && _r$103.$blk !== undefined) { break s; } + t$2 = $assertType(_r$103, ptrType$11); + _arg$27 = (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]); + _r$104 = fc.typeName(t$2); /* */ $s = 209; case 209: if($c) { $c = false; _r$104 = _r$104.$blk(); } if (_r$104 && _r$104.$blk !== undefined) { break s; } + _arg$28 = new $String(_r$104); + _r$105 = fc.formatExpr("$unsafeSliceData(%e, %s)", new sliceType([_arg$27, _arg$28])); /* */ $s = 210; case 210: if($c) { $c = false; _r$105 = _r$105.$blk(); } if (_r$105 && _r$105.$blk !== undefined) { break s; } + $24r$38 = _r$105; + $s = 211; case 211: return $24r$38; + /* } else { */ case 26: + _r$106 = fmt.Sprintf("Unhandled builtin: %s\n", new sliceType([new $String(name)])); /* */ $s = 212; case 212: if($c) { $c = false; _r$106 = _r$106.$blk(); } if (_r$106 && _r$106.$blk !== undefined) { break s; } + $panic(new $String(_r$106)); + /* } */ case 27: case 1: $s = -1; return ptrType$51.nil; - /* */ } return; } var $f = {$blk: translateBuiltin, $c: true, $r, $24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$13, $24r$14, $24r$15, $24r$16, $24r$17, $24r$18, $24r$19, $24r$2, $24r$20, $24r$21, $24r$22, $24r$23, $24r$24, $24r$25, $24r$26, $24r$27, $24r$28, $24r$29, $24r$3, $24r$30, $24r$31, $24r$32, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _1, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$16, _arg$17, _arg$18, _arg$19, _arg$2, _arg$20, _arg$21, _arg$22, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _entry, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _r$5, _r$50, _r$51, _r$52, _r$53, _r$54, _r$55, _r$56, _r$57, _r$58, _r$59, _r$6, _r$60, _r$61, _r$62, _r$63, _r$64, _r$65, _r$66, _r$67, _r$68, _r$69, _r$7, _r$70, _r$71, _r$72, _r$73, _r$74, _r$75, _r$76, _r$77, _r$78, _r$79, _r$8, _r$80, _r$81, _r$82, _r$83, _r$84, _r$85, _r$86, _r$87, _r$88, _r$89, _r$9, _ref, _ref$1, _ref$2, _ref$3, _tuple, _tuple$1, _tuple$2, _v, argStr, argStr$1, argType, argType$1, argType$10, argType$11, argType$12, argType$2, argType$3, argType$4, argType$5, argType$6, argType$7, argType$8, argType$9, args, basic, ellipsis, fc, isBasic, keyType, length, name, ok, sel, sig, sliceType$17, t, t$1, t$2, x, $s};return $f; + /* */ } return; } var $f = {$blk: translateBuiltin, $c: true, $r, $24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$13, $24r$14, $24r$15, $24r$16, $24r$17, $24r$18, $24r$19, $24r$2, $24r$20, $24r$21, $24r$22, $24r$23, $24r$24, $24r$25, $24r$26, $24r$27, $24r$28, $24r$29, $24r$3, $24r$30, $24r$31, $24r$32, $24r$33, $24r$34, $24r$35, $24r$36, $24r$37, $24r$38, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _1, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$16, _arg$17, _arg$18, _arg$19, _arg$2, _arg$20, _arg$21, _arg$22, _arg$23, _arg$24, _arg$25, _arg$26, _arg$27, _arg$28, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _entry, _r$1, _r$10, _r$100, _r$101, _r$102, _r$103, _r$104, _r$105, _r$106, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _r$5, _r$50, _r$51, _r$52, _r$53, _r$54, _r$55, _r$56, _r$57, _r$58, _r$59, _r$6, _r$60, _r$61, _r$62, _r$63, _r$64, _r$65, _r$66, _r$67, _r$68, _r$69, _r$7, _r$70, _r$71, _r$72, _r$73, _r$74, _r$75, _r$76, _r$77, _r$78, _r$79, _r$8, _r$80, _r$81, _r$82, _r$83, _r$84, _r$85, _r$86, _r$87, _r$88, _r$89, _r$9, _r$90, _r$91, _r$92, _r$93, _r$94, _r$95, _r$96, _r$97, _r$98, _r$99, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tuple, _tuple$1, _tuple$2, _tuple$3, _v, argStr, argStr$1, argType, argType$1, argType$10, argType$11, argType$12, argType$13, argType$14, argType$15, argType$2, argType$3, argType$4, argType$5, argType$6, argType$7, argType$8, argType$9, args, basic, basic$1, ellipsis, fc, fnName, isBasic, isBasic$1, keyType, length, name, ok, ptrType$79, sel, sig, sliceType$17, sliceType$18, t, t$1, t$2, x, $s};return $f; }; $ptrType(funcContext).prototype.identifierConstant = function identifierConstant(expr) { var {_entry, _i, _r$1, _ref, _rune, c, expr, fc, i, s, val, $s, $r, $c} = $restore(this, {expr}); @@ -341943,8 +344564,17 @@ $packages["github.com/gopherjs/gopherjs/compiler"] = (function() { $s = -1; return parts; /* */ } return; } var $f = {$blk: translateExprSlice, $c: true, $r, _i, _r$1, _r$2, _ref, desiredType, expr, exprs, fc, i, parts, $s};return $f; }; + $ptrType(funcContext).prototype.packageAllowsKindTypeConversion = function packageAllowsKindTypeConversion() { + var _1, fc; + fc = this; + _1 = fc.pkgCtx.Info.Pkg.Path(); + if (_1 === ("internal/abi") || _1 === ("internal/reflectlite") || _1 === ("reflect")) { + return true; + } + return false; + }; $ptrType(funcContext).prototype.translateConversion = function translateConversion(expr, desiredType) { - var {$24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$13, $24r$14, $24r$15, $24r$16, $24r$17, $24r$18, $24r$19, $24r$2, $24r$20, $24r$21, $24r$22, $24r$23, $24r$24, $24r$25, $24r$26, $24r$27, $24r$28, $24r$29, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _1, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$16, _arg$17, _arg$18, _arg$19, _arg$2, _arg$20, _arg$21, _arg$22, _arg$23, _arg$24, _arg$25, _arg$26, _arg$27, _arg$28, _arg$29, _arg$3, _arg$30, _arg$31, _arg$32, _arg$33, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _r$5, _r$50, _r$51, _r$52, _r$53, _r$54, _r$55, _r$56, _r$57, _r$58, _r$59, _r$6, _r$60, _r$61, _r$62, _r$63, _r$64, _r$65, _r$66, _r$67, _r$68, _r$69, _r$7, _r$70, _r$71, _r$72, _r$73, _r$74, _r$75, _r$76, _r$77, _r$78, _r$79, _r$8, _r$80, _r$81, _r$82, _r$83, _r$84, _r$85, _r$86, _r$87, _r$88, _r$9, _ref, _ref$1, _ref$2, _ref$3, _tuple, _tuple$1, _tuple$10, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, _v$2, array, array$1, basicExprType, call, call$1, desiredType, et, et$1, et$2, et$3, et$4, expr, exprType, exprTypeElem, fc, getterConv, id, ident, indexExpr, isCall, isIdent, isIndexExpr, isNamed, isPtr, isPtr$1, isStruct, isUnary, named, ok, ok$1, ok$2, ptr, ptr$1, ptrElType, ptrElType$1, ptrVar, s, setterConv, t, t$1, t$2, t$3, target, target$1, unary, value, x, x$1, x$10, x$11, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {expr, desiredType}); + var {$24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$13, $24r$14, $24r$15, $24r$16, $24r$17, $24r$18, $24r$19, $24r$2, $24r$20, $24r$21, $24r$22, $24r$23, $24r$24, $24r$25, $24r$26, $24r$27, $24r$28, $24r$29, $24r$3, $24r$30, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _1, _2, _3, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$16, _arg$17, _arg$18, _arg$19, _arg$2, _arg$20, _arg$21, _arg$22, _arg$23, _arg$24, _arg$25, _arg$26, _arg$27, _arg$28, _arg$29, _arg$3, _arg$30, _arg$31, _arg$32, _arg$33, _arg$34, _arg$35, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _r$5, _r$50, _r$51, _r$52, _r$53, _r$54, _r$55, _r$56, _r$57, _r$58, _r$59, _r$6, _r$60, _r$61, _r$62, _r$63, _r$64, _r$65, _r$66, _r$67, _r$68, _r$69, _r$7, _r$70, _r$71, _r$72, _r$73, _r$74, _r$75, _r$76, _r$77, _r$78, _r$79, _r$8, _r$80, _r$81, _r$82, _r$83, _r$84, _r$85, _r$86, _r$87, _r$88, _r$89, _r$9, _r$90, _r$91, _ref, _ref$1, _ref$2, _ref$3, _tuple, _tuple$1, _tuple$10, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, _v$2, array, array$1, basicExprType, call, call$1, desiredType, et, et$1, et$2, et$3, et$4, expr, exprType, exprTypeElem, fc, getterConv, id, ident, indexExpr, isCall, isIdent, isIndexExpr, isNamed, isPtr, isPtr$1, isStruct, isUnary, named, obj, ok, ok$1, ok$2, ptr, ptr$1, ptrElType, ptrElType$1, ptrVar, s, setterConv, t, t$1, t$2, t$3, target, target$1, unary, value, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {expr, desiredType}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: array = [array]; expr = [expr]; @@ -341962,9 +344592,9 @@ $packages["github.com/gopherjs/gopherjs/compiler"] = (function() { $24r = _r$3; $s = 6; case 6: return $24r; /* } */ case 3: - /* */ if (fc[0].pkgCtx.Info.Pkg.Path() === "reflect" || fc[0].pkgCtx.Info.Pkg.Path() === "internal/reflectlite") { $s = 7; continue; } + /* */ if (fc[0].packageAllowsKindTypeConversion()) { $s = 7; continue; } /* */ $s = 8; continue; - /* if (fc[0].pkgCtx.Info.Pkg.Path() === "reflect" || fc[0].pkgCtx.Info.Pkg.Path() === "internal/reflectlite") { */ case 7: + /* if (fc[0].packageAllowsKindTypeConversion()) { */ case 7: _tuple = $assertType(expr[0], ptrType$74, true); call = _tuple[0]; isCall = _tuple[1]; @@ -341987,404 +344617,426 @@ $packages["github.com/gopherjs/gopherjs/compiler"] = (function() { /* */ if (isNamed) { $s = 16; continue; } /* */ $s = 17; continue; /* if (isNamed) { */ case 16: - _1 = named.Obj().object.Name(); - /* */ if (_1 === ("arrayType") || _1 === ("chanType") || _1 === ("funcType") || _1 === ("interfaceType") || _1 === ("mapType") || _1 === ("ptrType") || _1 === ("sliceType") || _1 === ("structType")) { $s = 19; continue; } - /* */ $s = 20; continue; - /* if (_1 === ("arrayType") || _1 === ("chanType") || _1 === ("funcType") || _1 === ("interfaceType") || _1 === ("mapType") || _1 === ("ptrType") || _1 === ("sliceType") || _1 === ("structType")) { */ case 19: - _r$6 = fc[0].formatExpr("%e.kindType", new sliceType([(x$1 = call.Args, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0]))])); /* */ $s = 22; case 22: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - $24r$1 = _r$6; - $s = 23; case 23: return $24r$1; - /* } else { */ case 20: - _r$7 = fc[0].translateExpr(expr[0]); /* */ $s = 24; case 24: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - $24r$2 = _r$7; - $s = 25; case 25: return $24r$2; + _1 = named.Obj().object.Pkg().Path(); + /* */ if (_1 === ("internal/abi")) { $s = 19; continue; } + /* */ if (_1 === ("reflect")) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (_1 === ("internal/abi")) { */ case 19: + _2 = named.Obj().object.Name(); + /* */ if (_2 === ("ArrayType") || _2 === ("ChanType") || _2 === ("FuncType") || _2 === ("InterfaceType") || _2 === ("MapType") || _2 === ("PtrType") || _2 === ("SliceType") || _2 === ("StructType")) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (_2 === ("ArrayType") || _2 === ("ChanType") || _2 === ("FuncType") || _2 === ("InterfaceType") || _2 === ("MapType") || _2 === ("PtrType") || _2 === ("SliceType") || _2 === ("StructType")) { */ case 23: + _r$6 = fc[0].formatExpr("%e.kindType", new sliceType([(x$1 = call.Args, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0]))])); /* */ $s = 25; case 25: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $24r$1 = _r$6; + $s = 26; case 26: return $24r$1; + /* } */ case 24: + case 22: + $s = 21; continue; + /* } else if (_1 === ("reflect")) { */ case 20: + _3 = named.Obj().object.Name(); + /* */ if (_3 === ("interfaceType") || _3 === ("mapType") || _3 === ("ptrType") || _3 === ("sliceType") || _3 === ("structType")) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (_3 === ("interfaceType") || _3 === ("mapType") || _3 === ("ptrType") || _3 === ("sliceType") || _3 === ("structType")) { */ case 28: + _r$7 = fc[0].pkgCtx.Info.Pkg.Scope().Lookup("toKindTypeExt"); /* */ $s = 30; case 30: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + obj = _r$7; + _r$8 = fc[0].objectName(obj); /* */ $s = 31; case 31: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _arg = new $String(_r$8); + _arg$1 = (x$2 = call.Args, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])); + _r$9 = fc[0].formatExpr("%s(%e)", new sliceType([_arg, _arg$1])); /* */ $s = 32; case 32: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + $24r$2 = _r$9; + $s = 33; case 33: return $24r$2; + /* } */ case 29: + case 27: /* } */ case 21: case 18: + _r$10 = fc[0].translateExpr(expr[0]); /* */ $s = 34; case 34: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + $24r$3 = _r$10; + $s = 35; case 35: return $24r$3; /* } */ case 17: /* } */ case 15: /* } */ case 10: /* } */ case 8: - _r$8 = desiredType.Underlying(); /* */ $s = 26; case 26: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _ref = _r$8; - /* */ if ($assertType(_ref, ptrType$6, true)[1]) { $s = 27; continue; } - /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 28; continue; } - /* */ if ($assertType(_ref, ptrType$3, true)[1]) { $s = 29; continue; } - /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 30; continue; } - /* */ $s = 31; continue; - /* switch (0) { default: if ($assertType(_ref, ptrType$6, true)[1]) { */ case 27: + _r$11 = desiredType.Underlying(); /* */ $s = 36; case 36: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _ref = _r$11; + /* */ if ($assertType(_ref, ptrType$6, true)[1]) { $s = 37; continue; } + /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 38; continue; } + /* */ if ($assertType(_ref, ptrType$3, true)[1]) { $s = 39; continue; } + /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 40; continue; } + /* */ $s = 41; continue; + /* switch (0) { default: if ($assertType(_ref, ptrType$6, true)[1]) { */ case 37: t = _ref.$val; - /* */ if (isInteger(t)) { $s = 33; continue; } - /* */ if (isFloat(t)) { $s = 34; continue; } - /* */ if (isComplex(t)) { $s = 35; continue; } - /* */ if (isString(t)) { $s = 36; continue; } - /* */ if ((t.Kind() === 18)) { $s = 37; continue; } - /* */ $s = 38; continue; - /* if (isInteger(t)) { */ case 33: - _r$9 = exprType.Underlying(); /* */ $s = 39; case 39: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - basicExprType = $assertType(_r$9, ptrType$6); - /* */ if (is64Bit(t)) { $s = 41; continue; } - /* */ if (is64Bit(basicExprType)) { $s = 42; continue; } - _r$10 = types.Identical(exprType, (x$2 = types.Typ, (18 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 18]))); /* */ $s = 46; case 46: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - /* */ if (_r$10) { $s = 43; continue; } - /* */ $s = 44; continue; - /* if (is64Bit(t)) { */ case 41: - /* */ if (!is64Bit(basicExprType)) { $s = 47; continue; } - /* */ $s = 48; continue; - /* if (!is64Bit(basicExprType)) { */ case 47: - /* */ if (basicExprType.Kind() === 12) { $s = 49; continue; } - /* */ $s = 50; continue; - /* if (basicExprType.Kind() === 12) { */ case 49: - _r$11 = fc[0].typeName(desiredType); /* */ $s = 51; case 51: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _arg = new $String(_r$11); - _arg$1 = expr[0]; - _r$12 = fc[0].formatExpr("new %1s(0, %2e.constructor === Number ? %2e : 1)", new sliceType([_arg, _arg$1])); /* */ $s = 52; case 52: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - $24r$3 = _r$12; - $s = 53; case 53: return $24r$3; - /* } */ case 50: - _r$13 = fc[0].typeName(desiredType); /* */ $s = 54; case 54: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - _arg$2 = new $String(_r$13); - _arg$3 = expr[0]; - _r$14 = fc[0].formatExpr("new %s(0, %e)", new sliceType([_arg$2, _arg$3])); /* */ $s = 55; case 55: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - $24r$4 = _r$14; - $s = 56; case 56: return $24r$4; - /* } */ case 48: - _r$15 = fc[0].typeName(desiredType); /* */ $s = 57; case 57: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - _arg$4 = new $String(_r$15); - _arg$5 = expr[0]; - _r$16 = fc[0].formatExpr("new %1s(%2h, %2l)", new sliceType([_arg$4, _arg$5])); /* */ $s = 58; case 58: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - $24r$5 = _r$16; - $s = 59; case 59: return $24r$5; - /* } else if (is64Bit(basicExprType)) { */ case 42: - /* */ if (!isUnsigned(t) && !isUnsigned(basicExprType)) { $s = 60; continue; } - /* */ $s = 61; continue; - /* if (!isUnsigned(t) && !isUnsigned(basicExprType)) { */ case 60: - _r$17 = fc[0].formatParenExpr("%1l + ((%1h >> 31) * 4294967296)", new sliceType([expr[0]])); /* */ $s = 62; case 62: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - _r$18 = fc[0].fixNumber(_r$17, t); /* */ $s = 63; case 63: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - $24r$6 = _r$18; - $s = 64; case 64: return $24r$6; - /* } */ case 61: - _r$19 = fc[0].translateExpr(expr[0]); /* */ $s = 65; case 65: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - _arg$6 = _r$19; - _r$20 = fc[0].formatExpr("%s.$low", new sliceType([_arg$6])); /* */ $s = 66; case 66: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - _r$21 = fc[0].fixNumber(_r$20, t); /* */ $s = 67; case 67: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } - $24r$7 = _r$21; - $s = 68; case 68: return $24r$7; - /* } else if (_r$10) { */ case 43: - _r$22 = fc[0].translateExpr(expr[0]); /* */ $s = 69; case 69: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - $24r$8 = _r$22; - $s = 70; case 70: return $24r$8; - /* } else { */ case 44: - _r$23 = fc[0].translateExpr(expr[0]); /* */ $s = 71; case 71: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _r$24 = fc[0].fixNumber(_r$23, t); /* */ $s = 72; case 72: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - $24r$9 = _r$24; - $s = 73; case 73: return $24r$9; - /* } */ case 45: - case 40: - $s = 38; continue; - /* } else if (isFloat(t)) { */ case 34: - if (!(t.Kind() === 13)) { _v$1 = false; $s = 76; continue s; } - _r$25 = exprType.Underlying(); /* */ $s = 77; case 77: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - _r$26 = $assertType(_r$25, ptrType$6).Kind(); /* */ $s = 78; case 78: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - _v$1 = _r$26 === 14; case 76: - /* */ if (_v$1) { $s = 74; continue; } - /* */ $s = 75; continue; - /* if (_v$1) { */ case 74: - _r$27 = fc[0].formatExpr("$fround(%e)", new sliceType([expr[0]])); /* */ $s = 79; case 79: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - $24r$10 = _r$27; - $s = 80; case 80: return $24r$10; - /* } */ case 75: - _r$28 = fc[0].formatExpr("%f", new sliceType([expr[0]])); /* */ $s = 81; case 81: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - $24r$11 = _r$28; - $s = 82; case 82: return $24r$11; - /* } else if (isComplex(t)) { */ case 35: - _r$29 = fc[0].typeName(desiredType); /* */ $s = 83; case 83: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } - _arg$7 = new $String(_r$29); - _arg$8 = expr[0]; - _r$30 = fc[0].formatExpr("new %1s(%2r, %2i)", new sliceType([_arg$7, _arg$8])); /* */ $s = 84; case 84: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } - $24r$12 = _r$30; - $s = 85; case 85: return $24r$12; - /* } else if (isString(t)) { */ case 36: - _r$31 = fc[0].translateExpr(expr[0]); /* */ $s = 86; case 86: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } - value = _r$31; - _r$32 = exprType.Underlying(); /* */ $s = 87; case 87: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } - _ref$1 = _r$32; - /* */ if ($assertType(_ref$1, ptrType$6, true)[1]) { $s = 88; continue; } - /* */ if ($assertType(_ref$1, ptrType$11, true)[1]) { $s = 89; continue; } - /* */ $s = 90; continue; - /* if ($assertType(_ref$1, ptrType$6, true)[1]) { */ case 88: + /* */ if (isInteger(t)) { $s = 43; continue; } + /* */ if (isFloat(t)) { $s = 44; continue; } + /* */ if (isComplex(t)) { $s = 45; continue; } + /* */ if (isString(t)) { $s = 46; continue; } + /* */ if ((t.Kind() === 18)) { $s = 47; continue; } + /* */ $s = 48; continue; + /* if (isInteger(t)) { */ case 43: + _r$12 = exprType.Underlying(); /* */ $s = 49; case 49: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + basicExprType = $assertType(_r$12, ptrType$6); + /* */ if (is64Bit(t)) { $s = 51; continue; } + /* */ if (is64Bit(basicExprType)) { $s = 52; continue; } + _r$13 = types.Identical(exprType, (x$3 = types.Typ, (18 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 18]))); /* */ $s = 56; case 56: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + /* */ if (_r$13) { $s = 53; continue; } + /* */ $s = 54; continue; + /* if (is64Bit(t)) { */ case 51: + /* */ if (!is64Bit(basicExprType)) { $s = 57; continue; } + /* */ $s = 58; continue; + /* if (!is64Bit(basicExprType)) { */ case 57: + /* */ if (basicExprType.Kind() === 12) { $s = 59; continue; } + /* */ $s = 60; continue; + /* if (basicExprType.Kind() === 12) { */ case 59: + _r$14 = fc[0].typeName(desiredType); /* */ $s = 61; case 61: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _arg$2 = new $String(_r$14); + _arg$3 = expr[0]; + _r$15 = fc[0].formatExpr("new %1s(0, %2e.constructor === Number ? %2e : 1)", new sliceType([_arg$2, _arg$3])); /* */ $s = 62; case 62: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + $24r$4 = _r$15; + $s = 63; case 63: return $24r$4; + /* } */ case 60: + _r$16 = fc[0].typeName(desiredType); /* */ $s = 64; case 64: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + _arg$4 = new $String(_r$16); + _arg$5 = expr[0]; + _r$17 = fc[0].formatExpr("new %s(0, %e)", new sliceType([_arg$4, _arg$5])); /* */ $s = 65; case 65: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + $24r$5 = _r$17; + $s = 66; case 66: return $24r$5; + /* } */ case 58: + _r$18 = fc[0].typeName(desiredType); /* */ $s = 67; case 67: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + _arg$6 = new $String(_r$18); + _arg$7 = expr[0]; + _r$19 = fc[0].formatExpr("new %1s(%2h, %2l)", new sliceType([_arg$6, _arg$7])); /* */ $s = 68; case 68: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + $24r$6 = _r$19; + $s = 69; case 69: return $24r$6; + /* } else if (is64Bit(basicExprType)) { */ case 52: + /* */ if (!isUnsigned(t) && !isUnsigned(basicExprType)) { $s = 70; continue; } + /* */ $s = 71; continue; + /* if (!isUnsigned(t) && !isUnsigned(basicExprType)) { */ case 70: + _r$20 = fc[0].formatParenExpr("%1l + ((%1h >> 31) * 4294967296)", new sliceType([expr[0]])); /* */ $s = 72; case 72: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + _r$21 = fc[0].fixNumber(_r$20, t); /* */ $s = 73; case 73: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + $24r$7 = _r$21; + $s = 74; case 74: return $24r$7; + /* } */ case 71: + _r$22 = fc[0].translateExpr(expr[0]); /* */ $s = 75; case 75: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + _arg$8 = _r$22; + _r$23 = fc[0].formatExpr("%s.$low", new sliceType([_arg$8])); /* */ $s = 76; case 76: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + _r$24 = fc[0].fixNumber(_r$23, t); /* */ $s = 77; case 77: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + $24r$8 = _r$24; + $s = 78; case 78: return $24r$8; + /* } else if (_r$13) { */ case 53: + _r$25 = fc[0].translateExpr(expr[0]); /* */ $s = 79; case 79: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $24r$9 = _r$25; + $s = 80; case 80: return $24r$9; + /* } else { */ case 54: + _r$26 = fc[0].translateExpr(expr[0]); /* */ $s = 81; case 81: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + _r$27 = fc[0].fixNumber(_r$26, t); /* */ $s = 82; case 82: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + $24r$10 = _r$27; + $s = 83; case 83: return $24r$10; + /* } */ case 55: + case 50: + $s = 48; continue; + /* } else if (isFloat(t)) { */ case 44: + if (!(t.Kind() === 13)) { _v$1 = false; $s = 86; continue s; } + _r$28 = exprType.Underlying(); /* */ $s = 87; case 87: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + _r$29 = $assertType(_r$28, ptrType$6).Kind(); /* */ $s = 88; case 88: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + _v$1 = _r$29 === 14; case 86: + /* */ if (_v$1) { $s = 84; continue; } + /* */ $s = 85; continue; + /* if (_v$1) { */ case 84: + _r$30 = fc[0].formatExpr("$fround(%e)", new sliceType([expr[0]])); /* */ $s = 89; case 89: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } + $24r$11 = _r$30; + $s = 90; case 90: return $24r$11; + /* } */ case 85: + _r$31 = fc[0].formatExpr("%f", new sliceType([expr[0]])); /* */ $s = 91; case 91: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } + $24r$12 = _r$31; + $s = 92; case 92: return $24r$12; + /* } else if (isComplex(t)) { */ case 45: + _r$32 = fc[0].typeName(desiredType); /* */ $s = 93; case 93: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } + _arg$9 = new $String(_r$32); + _arg$10 = expr[0]; + _r$33 = fc[0].formatExpr("new %1s(%2r, %2i)", new sliceType([_arg$9, _arg$10])); /* */ $s = 94; case 94: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } + $24r$13 = _r$33; + $s = 95; case 95: return $24r$13; + /* } else if (isString(t)) { */ case 46: + _r$34 = fc[0].translateExpr(expr[0]); /* */ $s = 96; case 96: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } + value = _r$34; + _r$35 = exprType.Underlying(); /* */ $s = 97; case 97: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } + _ref$1 = _r$35; + /* */ if ($assertType(_ref$1, ptrType$6, true)[1]) { $s = 98; continue; } + /* */ if ($assertType(_ref$1, ptrType$11, true)[1]) { $s = 99; continue; } + /* */ $s = 100; continue; + /* if ($assertType(_ref$1, ptrType$6, true)[1]) { */ case 98: et = _ref$1.$val; - /* */ if (is64Bit(et)) { $s = 92; continue; } - /* */ $s = 93; continue; - /* if (is64Bit(et)) { */ case 92: - _r$33 = fc[0].formatExpr("%s.$low", new sliceType([value])); /* */ $s = 94; case 94: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } - value = _r$33; - /* } */ case 93: - /* */ if (isNumeric(et)) { $s = 95; continue; } - /* */ $s = 96; continue; - /* if (isNumeric(et)) { */ case 95: - _r$34 = fc[0].formatExpr("$encodeRune(%s)", new sliceType([value])); /* */ $s = 97; case 97: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } - $24r$13 = _r$34; - $s = 98; case 98: return $24r$13; - /* } */ case 96: + /* */ if (is64Bit(et)) { $s = 102; continue; } + /* */ $s = 103; continue; + /* if (is64Bit(et)) { */ case 102: + _r$36 = fc[0].formatExpr("%s.$low", new sliceType([value])); /* */ $s = 104; case 104: if($c) { $c = false; _r$36 = _r$36.$blk(); } if (_r$36 && _r$36.$blk !== undefined) { break s; } + value = _r$36; + /* } */ case 103: + /* */ if (isNumeric(et)) { $s = 105; continue; } + /* */ $s = 106; continue; + /* if (isNumeric(et)) { */ case 105: + _r$37 = fc[0].formatExpr("$encodeRune(%s)", new sliceType([value])); /* */ $s = 107; case 107: if($c) { $c = false; _r$37 = _r$37.$blk(); } if (_r$37 && _r$37.$blk !== undefined) { break s; } + $24r$14 = _r$37; + $s = 108; case 108: return $24r$14; + /* } */ case 106: $s = -1; return value; - /* } else if ($assertType(_ref$1, ptrType$11, true)[1]) { */ case 89: + /* } else if ($assertType(_ref$1, ptrType$11, true)[1]) { */ case 99: et$1 = _ref$1.$val; - _r$35 = et$1.Elem().Underlying(); /* */ $s = 101; case 101: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } - _r$36 = types.Identical(_r$35, (x$3 = types.Typ, (5 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 5]))); /* */ $s = 102; case 102: if($c) { $c = false; _r$36 = _r$36.$blk(); } if (_r$36 && _r$36.$blk !== undefined) { break s; } - /* */ if (_r$36) { $s = 99; continue; } - /* */ $s = 100; continue; - /* if (_r$36) { */ case 99: - _r$37 = fc[0].formatExpr("$runesToString(%s)", new sliceType([value])); /* */ $s = 103; case 103: if($c) { $c = false; _r$37 = _r$37.$blk(); } if (_r$37 && _r$37.$blk !== undefined) { break s; } - $24r$14 = _r$37; - $s = 104; case 104: return $24r$14; - /* } */ case 100: - _r$38 = fc[0].formatExpr("$bytesToString(%s)", new sliceType([value])); /* */ $s = 105; case 105: if($c) { $c = false; _r$38 = _r$38.$blk(); } if (_r$38 && _r$38.$blk !== undefined) { break s; } - $24r$15 = _r$38; - $s = 106; case 106: return $24r$15; - /* } else { */ case 90: + _r$38 = et$1.Elem().Underlying(); /* */ $s = 111; case 111: if($c) { $c = false; _r$38 = _r$38.$blk(); } if (_r$38 && _r$38.$blk !== undefined) { break s; } + _r$39 = types.Identical(_r$38, (x$4 = types.Typ, (5 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 5]))); /* */ $s = 112; case 112: if($c) { $c = false; _r$39 = _r$39.$blk(); } if (_r$39 && _r$39.$blk !== undefined) { break s; } + /* */ if (_r$39) { $s = 109; continue; } + /* */ $s = 110; continue; + /* if (_r$39) { */ case 109: + _r$40 = fc[0].formatExpr("$runesToString(%s)", new sliceType([value])); /* */ $s = 113; case 113: if($c) { $c = false; _r$40 = _r$40.$blk(); } if (_r$40 && _r$40.$blk !== undefined) { break s; } + $24r$15 = _r$40; + $s = 114; case 114: return $24r$15; + /* } */ case 110: + _r$41 = fc[0].formatExpr("$bytesToString(%s)", new sliceType([value])); /* */ $s = 115; case 115: if($c) { $c = false; _r$41 = _r$41.$blk(); } if (_r$41 && _r$41.$blk !== undefined) { break s; } + $24r$16 = _r$41; + $s = 116; case 116: return $24r$16; + /* } else { */ case 100: et$2 = _ref$1; - _r$39 = fmt.Sprintf("Unhandled conversion: %v\n", new sliceType([et$2])); /* */ $s = 107; case 107: if($c) { $c = false; _r$39 = _r$39.$blk(); } if (_r$39 && _r$39.$blk !== undefined) { break s; } - $panic(new $String(_r$39)); - /* } */ case 91: - $s = 38; continue; - /* } else if ((t.Kind() === 18)) { */ case 37: + _r$42 = fmt.Sprintf("Unhandled conversion: %v\n", new sliceType([et$2])); /* */ $s = 117; case 117: if($c) { $c = false; _r$42 = _r$42.$blk(); } if (_r$42 && _r$42.$blk !== undefined) { break s; } + $panic(new $String(_r$42)); + /* } */ case 101: + $s = 48; continue; + /* } else if ((t.Kind() === 18)) { */ case 47: _tuple$3 = $assertType(expr[0], ptrType$53, true); unary = _tuple$3[0]; isUnary = _tuple$3[1]; - /* */ if (isUnary && (unary.Op === 17)) { $s = 108; continue; } - /* */ $s = 109; continue; - /* if (isUnary && (unary.Op === 17)) { */ case 108: + /* */ if (isUnary && (unary.Op === 17)) { $s = 118; continue; } + /* */ $s = 119; continue; + /* if (isUnary && (unary.Op === 17)) { */ case 118: _tuple$4 = $assertType(unary.X, ptrType$54, true); indexExpr = _tuple$4[0]; isIndexExpr = _tuple$4[1]; - /* */ if (isIndexExpr) { $s = 110; continue; } - /* */ $s = 111; continue; - /* if (isIndexExpr) { */ case 110: - _r$40 = fc[0].translateConversionToSlice(indexExpr.X, types.NewSlice((x$4 = types.Typ, (8 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 8])))); /* */ $s = 112; case 112: if($c) { $c = false; _r$40 = _r$40.$blk(); } if (_r$40 && _r$40.$blk !== undefined) { break s; } - _arg$9 = _r$40; - _r$41 = fc[0].formatExpr("$sliceToNativeArray(%s)", new sliceType([_arg$9])); /* */ $s = 113; case 113: if($c) { $c = false; _r$41 = _r$41.$blk(); } if (_r$41 && _r$41.$blk !== undefined) { break s; } - $24r$16 = _r$41; - $s = 114; case 114: return $24r$16; - /* } */ case 111: + /* */ if (isIndexExpr) { $s = 120; continue; } + /* */ $s = 121; continue; + /* if (isIndexExpr) { */ case 120: + _r$43 = fc[0].translateConversionToSlice(indexExpr.X, types.NewSlice((x$5 = types.Typ, (8 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 8])))); /* */ $s = 122; case 122: if($c) { $c = false; _r$43 = _r$43.$blk(); } if (_r$43 && _r$43.$blk !== undefined) { break s; } + _arg$11 = _r$43; + _r$44 = fc[0].formatExpr("$sliceToNativeArray(%s)", new sliceType([_arg$11])); /* */ $s = 123; case 123: if($c) { $c = false; _r$44 = _r$44.$blk(); } if (_r$44 && _r$44.$blk !== undefined) { break s; } + $24r$17 = _r$44; + $s = 124; case 124: return $24r$17; + /* } */ case 121: _tuple$5 = $assertType(unary.X, ptrType$12, true); ident = _tuple$5[0]; isIdent = _tuple$5[1]; - /* */ if (isIdent && ident.Name === "_zero") { $s = 115; continue; } - /* */ $s = 116; continue; - /* if (isIdent && ident.Name === "_zero") { */ case 115: - _r$42 = fc[0].formatExpr("new Uint8Array(0)", sliceType.nil); /* */ $s = 117; case 117: if($c) { $c = false; _r$42 = _r$42.$blk(); } if (_r$42 && _r$42.$blk !== undefined) { break s; } - $24r$17 = _r$42; - $s = 118; case 118: return $24r$17; - /* } */ case 116: - /* } */ case 109: - _r$43 = fc[0].typeOf(expr[0]); /* */ $s = 119; case 119: if($c) { $c = false; _r$43 = _r$43.$blk(); } if (_r$43 && _r$43.$blk !== undefined) { break s; } - _tuple$6 = $assertType(_r$43, ptrType$3, true); + /* */ if (isIdent && ident.Name === "_zero") { $s = 125; continue; } + /* */ $s = 126; continue; + /* if (isIdent && ident.Name === "_zero") { */ case 125: + _r$45 = fc[0].formatExpr("new Uint8Array(0)", sliceType.nil); /* */ $s = 127; case 127: if($c) { $c = false; _r$45 = _r$45.$blk(); } if (_r$45 && _r$45.$blk !== undefined) { break s; } + $24r$18 = _r$45; + $s = 128; case 128: return $24r$18; + /* } */ case 126: + /* } */ case 119: + _r$46 = fc[0].typeOf(expr[0]); /* */ $s = 129; case 129: if($c) { $c = false; _r$46 = _r$46.$blk(); } if (_r$46 && _r$46.$blk !== undefined) { break s; } + _tuple$6 = $assertType(_r$46, ptrType$3, true); ptr$1 = _tuple$6[0]; isPtr$1 = _tuple$6[1]; - /* */ if (fc[0].pkgCtx.Info.Pkg.Path() === "syscall" && isPtr$1) { $s = 120; continue; } - /* */ $s = 121; continue; - /* if (fc[0].pkgCtx.Info.Pkg.Path() === "syscall" && isPtr$1) { */ case 120: - _r$44 = ptr$1.Elem().Underlying(); /* */ $s = 122; case 122: if($c) { $c = false; _r$44 = _r$44.$blk(); } if (_r$44 && _r$44.$blk !== undefined) { break s; } - _tuple$7 = $assertType(_r$44, ptrType$4, true); + /* */ if (fc[0].pkgCtx.Info.Pkg.Path() === "syscall" && isPtr$1) { $s = 130; continue; } + /* */ $s = 131; continue; + /* if (fc[0].pkgCtx.Info.Pkg.Path() === "syscall" && isPtr$1) { */ case 130: + _r$47 = ptr$1.Elem().Underlying(); /* */ $s = 132; case 132: if($c) { $c = false; _r$47 = _r$47.$blk(); } if (_r$47 && _r$47.$blk !== undefined) { break s; } + _tuple$7 = $assertType(_r$47, ptrType$4, true); s[0] = _tuple$7[0]; isStruct = _tuple$7[1]; - /* */ if (isStruct) { $s = 123; continue; } - /* */ $s = 124; continue; - /* if (isStruct) { */ case 123: - _r$45 = fc[0].newLocalVariable("_array"); /* */ $s = 125; case 125: if($c) { $c = false; _r$45 = _r$45.$blk(); } if (_r$45 && _r$45.$blk !== undefined) { break s; } - array[0] = _r$45; - _r$46 = fc[0].newLocalVariable("_struct"); /* */ $s = 126; case 126: if($c) { $c = false; _r$46 = _r$46.$blk(); } if (_r$46 && _r$46.$blk !== undefined) { break s; } - target[0] = _r$46; - _arg$10 = new $String(array[0]); - _r$47 = sizes32.Sizeof(s[0]); /* */ $s = 127; case 127: if($c) { $c = false; _r$47 = _r$47.$blk(); } if (_r$47 && _r$47.$blk !== undefined) { break s; } - _arg$11 = _r$47; - $r = fc[0].Printf("%s = new Uint8Array(%d);", new sliceType([_arg$10, _arg$11])); /* */ $s = 128; case 128: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (isStruct) { $s = 133; continue; } + /* */ $s = 134; continue; + /* if (isStruct) { */ case 133: + _r$48 = fc[0].newLocalVariable("_array"); /* */ $s = 135; case 135: if($c) { $c = false; _r$48 = _r$48.$blk(); } if (_r$48 && _r$48.$blk !== undefined) { break s; } + array[0] = _r$48; + _r$49 = fc[0].newLocalVariable("_struct"); /* */ $s = 136; case 136: if($c) { $c = false; _r$49 = _r$49.$blk(); } if (_r$49 && _r$49.$blk !== undefined) { break s; } + target[0] = _r$49; + _arg$12 = new $String(array[0]); + _r$50 = sizes32.Sizeof(s[0]); /* */ $s = 137; case 137: if($c) { $c = false; _r$50 = _r$50.$blk(); } if (_r$50 && _r$50.$blk !== undefined) { break s; } + _arg$13 = _r$50; + $r = fc[0].Printf("%s = new Uint8Array(%d);", new sliceType([_arg$12, _arg$13])); /* */ $s = 138; case 138: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = fc[0].Delayed((function(array, expr, fc, s, target) { return function funcContext·translateConversion·func1() { - var {_arg$12, _arg$13, _arg$14, _r$48, _r$49, $s, $r, $c} = $restore(this, {}); + var {_arg$14, _arg$15, _arg$16, _r$51, _r$52, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _arg$12 = new $String(target[0]); - _r$48 = fc[0].translateExpr(expr[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$48 = _r$48.$blk(); } if (_r$48 && _r$48.$blk !== undefined) { break s; } - _arg$13 = _r$48; - _r$49 = fc[0].loadStruct(array[0], target[0], s[0]); /* */ $s = 2; case 2: if($c) { $c = false; _r$49 = _r$49.$blk(); } if (_r$49 && _r$49.$blk !== undefined) { break s; } - _arg$14 = new $String(_r$49); - $r = fc[0].Printf("%s = %s, %s;", new sliceType([_arg$12, _arg$13, _arg$14])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _arg$14 = new $String(target[0]); + _r$51 = fc[0].translateExpr(expr[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$51 = _r$51.$blk(); } if (_r$51 && _r$51.$blk !== undefined) { break s; } + _arg$15 = _r$51; + _r$52 = fc[0].loadStruct(array[0], target[0], s[0]); /* */ $s = 2; case 2: if($c) { $c = false; _r$52 = _r$52.$blk(); } if (_r$52 && _r$52.$blk !== undefined) { break s; } + _arg$16 = new $String(_r$52); + $r = fc[0].Printf("%s = %s, %s;", new sliceType([_arg$14, _arg$15, _arg$16])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } var $f = {$blk: funcContext·translateConversion·func1, $c: true, $r, _arg$12, _arg$13, _arg$14, _r$48, _r$49, $s};return $f; - }; })(array, expr, fc, s, target)); /* */ $s = 129; case 129: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$48 = fc[0].formatExpr("%s", new sliceType([new $String(array[0])])); /* */ $s = 130; case 130: if($c) { $c = false; _r$48 = _r$48.$blk(); } if (_r$48 && _r$48.$blk !== undefined) { break s; } - $24r$18 = _r$48; - $s = 131; case 131: return $24r$18; - /* } */ case 124: - /* } */ case 121: + /* */ } return; } var $f = {$blk: funcContext·translateConversion·func1, $c: true, $r, _arg$14, _arg$15, _arg$16, _r$51, _r$52, $s};return $f; + }; })(array, expr, fc, s, target)); /* */ $s = 139; case 139: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$51 = fc[0].formatExpr("%s", new sliceType([new $String(array[0])])); /* */ $s = 140; case 140: if($c) { $c = false; _r$51 = _r$51.$blk(); } if (_r$51 && _r$51.$blk !== undefined) { break s; } + $24r$19 = _r$51; + $s = 141; case 141: return $24r$19; + /* } */ case 134: + /* } */ case 131: _tuple$8 = $assertType(expr[0], ptrType$74, true); call$1 = _tuple$8[0]; ok = _tuple$8[1]; - /* */ if (ok) { $s = 132; continue; } - /* */ $s = 133; continue; - /* if (ok) { */ case 132: + /* */ if (ok) { $s = 142; continue; } + /* */ $s = 143; continue; + /* if (ok) { */ case 142: _tuple$9 = $assertType(call$1.Fun, ptrType$12, true); id = _tuple$9[0]; ok$1 = _tuple$9[1]; - /* */ if (ok$1 && id.Name === "new") { $s = 134; continue; } - /* */ $s = 135; continue; - /* if (ok$1 && id.Name === "new") { */ case 134: - _r$49 = fc[0].typeOf((x$6 = call$1.Args, (0 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + 0]))); /* */ $s = 136; case 136: if($c) { $c = false; _r$49 = _r$49.$blk(); } if (_r$49 && _r$49.$blk !== undefined) { break s; } - _r$50 = sizes32.Sizeof(_r$49); /* */ $s = 137; case 137: if($c) { $c = false; _r$50 = _r$50.$blk(); } if (_r$50 && _r$50.$blk !== undefined) { break s; } - _arg$12 = new $Int((((x$5 = _r$50, x$5.$low + ((x$5.$high >> 31) * 4294967296)) >> 0))); - _r$51 = fc[0].formatExpr("new Uint8Array(%d)", new sliceType([_arg$12])); /* */ $s = 138; case 138: if($c) { $c = false; _r$51 = _r$51.$blk(); } if (_r$51 && _r$51.$blk !== undefined) { break s; } - $24r$19 = _r$51; - $s = 139; case 139: return $24r$19; - /* } */ case 135: - /* } */ case 133: - /* } */ case 38: - case 32: - $s = 31; continue; - /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 28: + /* */ if (ok$1 && id.Name === "new") { $s = 144; continue; } + /* */ $s = 145; continue; + /* if (ok$1 && id.Name === "new") { */ case 144: + _r$52 = fc[0].typeOf((x$7 = call$1.Args, (0 >= x$7.$length ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + 0]))); /* */ $s = 146; case 146: if($c) { $c = false; _r$52 = _r$52.$blk(); } if (_r$52 && _r$52.$blk !== undefined) { break s; } + _r$53 = sizes32.Sizeof(_r$52); /* */ $s = 147; case 147: if($c) { $c = false; _r$53 = _r$53.$blk(); } if (_r$53 && _r$53.$blk !== undefined) { break s; } + _arg$14 = new $Int((((x$6 = _r$53, x$6.$low + ((x$6.$high >> 31) * 4294967296)) >> 0))); + _r$54 = fc[0].formatExpr("new Uint8Array(%d)", new sliceType([_arg$14])); /* */ $s = 148; case 148: if($c) { $c = false; _r$54 = _r$54.$blk(); } if (_r$54 && _r$54.$blk !== undefined) { break s; } + $24r$20 = _r$54; + $s = 149; case 149: return $24r$20; + /* } */ case 145: + /* } */ case 143: + /* } */ case 48: + case 42: + $s = 41; continue; + /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 38: t$1 = _ref.$val; - _r$52 = exprType.Underlying(); /* */ $s = 140; case 140: if($c) { $c = false; _r$52 = _r$52.$blk(); } if (_r$52 && _r$52.$blk !== undefined) { break s; } - _ref$2 = _r$52; - /* */ if ($assertType(_ref$2, ptrType$6, true)[1]) { $s = 141; continue; } - /* */ if ($assertType(_ref$2, ptrType$7, true)[1] || $assertType(_ref$2, ptrType$3, true)[1]) { $s = 142; continue; } - /* */ $s = 143; continue; - /* if ($assertType(_ref$2, ptrType$6, true)[1]) { */ case 141: + _r$55 = exprType.Underlying(); /* */ $s = 150; case 150: if($c) { $c = false; _r$55 = _r$55.$blk(); } if (_r$55 && _r$55.$blk !== undefined) { break s; } + _ref$2 = _r$55; + /* */ if ($assertType(_ref$2, ptrType$6, true)[1]) { $s = 151; continue; } + /* */ if ($assertType(_ref$2, ptrType$7, true)[1] || $assertType(_ref$2, ptrType$3, true)[1]) { $s = 152; continue; } + /* */ $s = 153; continue; + /* if ($assertType(_ref$2, ptrType$6, true)[1]) { */ case 151: et$3 = _ref$2.$val; - /* */ if (isString(et$3)) { $s = 144; continue; } - /* */ $s = 145; continue; - /* if (isString(et$3)) { */ case 144: - _r$53 = t$1.Elem().Underlying(); /* */ $s = 148; case 148: if($c) { $c = false; _r$53 = _r$53.$blk(); } if (_r$53 && _r$53.$blk !== undefined) { break s; } - _r$54 = types.Identical(_r$53, (x$7 = types.Typ, (5 >= x$7.$length ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + 5]))); /* */ $s = 149; case 149: if($c) { $c = false; _r$54 = _r$54.$blk(); } if (_r$54 && _r$54.$blk !== undefined) { break s; } - /* */ if (_r$54) { $s = 146; continue; } - /* */ $s = 147; continue; - /* if (_r$54) { */ case 146: - _r$55 = fc[0].typeName(desiredType); /* */ $s = 150; case 150: if($c) { $c = false; _r$55 = _r$55.$blk(); } if (_r$55 && _r$55.$blk !== undefined) { break s; } - _arg$13 = new $String(_r$55); - _arg$14 = expr[0]; - _r$56 = fc[0].formatExpr("new %s($stringToRunes(%e))", new sliceType([_arg$13, _arg$14])); /* */ $s = 151; case 151: if($c) { $c = false; _r$56 = _r$56.$blk(); } if (_r$56 && _r$56.$blk !== undefined) { break s; } - $24r$20 = _r$56; - $s = 152; case 152: return $24r$20; - /* } */ case 147: - _r$57 = fc[0].typeName(desiredType); /* */ $s = 153; case 153: if($c) { $c = false; _r$57 = _r$57.$blk(); } if (_r$57 && _r$57.$blk !== undefined) { break s; } - _arg$15 = new $String(_r$57); - _arg$16 = expr[0]; - _r$58 = fc[0].formatExpr("new %s($stringToBytes(%e))", new sliceType([_arg$15, _arg$16])); /* */ $s = 154; case 154: if($c) { $c = false; _r$58 = _r$58.$blk(); } if (_r$58 && _r$58.$blk !== undefined) { break s; } - $24r$21 = _r$58; - $s = 155; case 155: return $24r$21; - /* } */ case 145: - $s = 143; continue; - /* } else if ($assertType(_ref$2, ptrType$7, true)[1] || $assertType(_ref$2, ptrType$3, true)[1]) { */ case 142: + /* */ if (isString(et$3)) { $s = 154; continue; } + /* */ $s = 155; continue; + /* if (isString(et$3)) { */ case 154: + _r$56 = t$1.Elem().Underlying(); /* */ $s = 158; case 158: if($c) { $c = false; _r$56 = _r$56.$blk(); } if (_r$56 && _r$56.$blk !== undefined) { break s; } + _r$57 = types.Identical(_r$56, (x$8 = types.Typ, (5 >= x$8.$length ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + 5]))); /* */ $s = 159; case 159: if($c) { $c = false; _r$57 = _r$57.$blk(); } if (_r$57 && _r$57.$blk !== undefined) { break s; } + /* */ if (_r$57) { $s = 156; continue; } + /* */ $s = 157; continue; + /* if (_r$57) { */ case 156: + _r$58 = fc[0].typeName(desiredType); /* */ $s = 160; case 160: if($c) { $c = false; _r$58 = _r$58.$blk(); } if (_r$58 && _r$58.$blk !== undefined) { break s; } + _arg$15 = new $String(_r$58); + _arg$16 = expr[0]; + _r$59 = fc[0].formatExpr("new %s($stringToRunes(%e))", new sliceType([_arg$15, _arg$16])); /* */ $s = 161; case 161: if($c) { $c = false; _r$59 = _r$59.$blk(); } if (_r$59 && _r$59.$blk !== undefined) { break s; } + $24r$21 = _r$59; + $s = 162; case 162: return $24r$21; + /* } */ case 157: + _r$60 = fc[0].typeName(desiredType); /* */ $s = 163; case 163: if($c) { $c = false; _r$60 = _r$60.$blk(); } if (_r$60 && _r$60.$blk !== undefined) { break s; } + _arg$17 = new $String(_r$60); + _arg$18 = expr[0]; + _r$61 = fc[0].formatExpr("new %s($stringToBytes(%e))", new sliceType([_arg$17, _arg$18])); /* */ $s = 164; case 164: if($c) { $c = false; _r$61 = _r$61.$blk(); } if (_r$61 && _r$61.$blk !== undefined) { break s; } + $24r$22 = _r$61; + $s = 165; case 165: return $24r$22; + /* } */ case 155: + $s = 153; continue; + /* } else if ($assertType(_ref$2, ptrType$7, true)[1] || $assertType(_ref$2, ptrType$3, true)[1]) { */ case 152: et$4 = _ref$2; - _r$59 = fc[0].typeName(desiredType); /* */ $s = 156; case 156: if($c) { $c = false; _r$59 = _r$59.$blk(); } if (_r$59 && _r$59.$blk !== undefined) { break s; } - _arg$17 = new $String(_r$59); - _arg$18 = expr[0]; - _r$60 = fc[0].formatExpr("new %s(%e)", new sliceType([_arg$17, _arg$18])); /* */ $s = 157; case 157: if($c) { $c = false; _r$60 = _r$60.$blk(); } if (_r$60 && _r$60.$blk !== undefined) { break s; } - $24r$22 = _r$60; - $s = 158; case 158: return $24r$22; - /* } */ case 143: - $s = 31; continue; - /* } else if ($assertType(_ref, ptrType$3, true)[1]) { */ case 29: + _r$62 = fc[0].typeName(desiredType); /* */ $s = 166; case 166: if($c) { $c = false; _r$62 = _r$62.$blk(); } if (_r$62 && _r$62.$blk !== undefined) { break s; } + _arg$19 = new $String(_r$62); + _arg$20 = expr[0]; + _r$63 = fc[0].formatExpr("new %s(%e)", new sliceType([_arg$19, _arg$20])); /* */ $s = 167; case 167: if($c) { $c = false; _r$63 = _r$63.$blk(); } if (_r$63 && _r$63.$blk !== undefined) { break s; } + $24r$23 = _r$63; + $s = 168; case 168: return $24r$23; + /* } */ case 153: + $s = 41; continue; + /* } else if ($assertType(_ref, ptrType$3, true)[1]) { */ case 39: t$2 = _ref.$val; - _r$61 = types.Identical(exprType, (x$8 = types.Typ, (25 >= x$8.$length ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + 25]))); /* */ $s = 161; case 161: if($c) { $c = false; _r$61 = _r$61.$blk(); } if (_r$61 && _r$61.$blk !== undefined) { break s; } - /* */ if (_r$61) { $s = 159; continue; } - /* */ $s = 160; continue; - /* if (_r$61) { */ case 159: - /* break; */ $s = 31; continue; - /* } */ case 160: - _r$62 = t$2.Elem().Underlying(); /* */ $s = 162; case 162: if($c) { $c = false; _r$62 = _r$62.$blk(); } if (_r$62 && _r$62.$blk !== undefined) { break s; } - _ref$3 = _r$62; - /* */ if ($assertType(_ref$3, ptrType$7, true)[1]) { $s = 163; continue; } - /* */ if ($assertType(_ref$3, ptrType$4, true)[1]) { $s = 164; continue; } - /* */ $s = 165; continue; - /* if ($assertType(_ref$3, ptrType$7, true)[1]) { */ case 163: + _r$64 = types.Identical(exprType, (x$9 = types.Typ, (25 >= x$9.$length ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + 25]))); /* */ $s = 171; case 171: if($c) { $c = false; _r$64 = _r$64.$blk(); } if (_r$64 && _r$64.$blk !== undefined) { break s; } + /* */ if (_r$64) { $s = 169; continue; } + /* */ $s = 170; continue; + /* if (_r$64) { */ case 169: + /* break; */ $s = 41; continue; + /* } */ case 170: + _r$65 = t$2.Elem().Underlying(); /* */ $s = 172; case 172: if($c) { $c = false; _r$65 = _r$65.$blk(); } if (_r$65 && _r$65.$blk !== undefined) { break s; } + _ref$3 = _r$65; + /* */ if ($assertType(_ref$3, ptrType$7, true)[1]) { $s = 173; continue; } + /* */ if ($assertType(_ref$3, ptrType$4, true)[1]) { $s = 174; continue; } + /* */ $s = 175; continue; + /* if ($assertType(_ref$3, ptrType$7, true)[1]) { */ case 173: ptrElType = _ref$3.$val; - _r$63 = exprType.Underlying(); /* */ $s = 166; case 166: if($c) { $c = false; _r$63 = _r$63.$blk(); } if (_r$63 && _r$63.$blk !== undefined) { break s; } - _tuple$10 = $assertType(_r$63, ptrType$11, true); + _r$66 = exprType.Underlying(); /* */ $s = 176; case 176: if($c) { $c = false; _r$66 = _r$66.$blk(); } if (_r$66 && _r$66.$blk !== undefined) { break s; } + _tuple$10 = $assertType(_r$66, ptrType$11, true); ok$2 = _tuple$10[1]; - /* */ if (ok$2) { $s = 167; continue; } - /* */ $s = 168; continue; - /* if (ok$2) { */ case 167: - _arg$19 = expr[0]; - _r$64 = fc[0].typeName(desiredType); /* */ $s = 169; case 169: if($c) { $c = false; _r$64 = _r$64.$blk(); } if (_r$64 && _r$64.$blk !== undefined) { break s; } - _arg$20 = new $String(_r$64); - _r$65 = fc[0].formatExpr("$sliceToGoArray(%e, %s)", new sliceType([_arg$19, _arg$20])); /* */ $s = 170; case 170: if($c) { $c = false; _r$65 = _r$65.$blk(); } if (_r$65 && _r$65.$blk !== undefined) { break s; } - $24r$23 = _r$65; - $s = 171; case 171: return $24r$23; - /* } */ case 168: - _r$66 = fc[0].translateExpr(expr[0]); /* */ $s = 172; case 172: if($c) { $c = false; _r$66 = _r$66.$blk(); } if (_r$66 && _r$66.$blk !== undefined) { break s; } - $24r$24 = _r$66; - $s = 173; case 173: return $24r$24; - /* } else if ($assertType(_ref$3, ptrType$4, true)[1]) { */ case 164: + /* */ if (ok$2) { $s = 177; continue; } + /* */ $s = 178; continue; + /* if (ok$2) { */ case 177: + _arg$21 = expr[0]; + _r$67 = fc[0].typeName(desiredType); /* */ $s = 179; case 179: if($c) { $c = false; _r$67 = _r$67.$blk(); } if (_r$67 && _r$67.$blk !== undefined) { break s; } + _arg$22 = new $String(_r$67); + _r$68 = fc[0].formatExpr("$sliceToGoArray(%e, %s)", new sliceType([_arg$21, _arg$22])); /* */ $s = 180; case 180: if($c) { $c = false; _r$68 = _r$68.$blk(); } if (_r$68 && _r$68.$blk !== undefined) { break s; } + $24r$24 = _r$68; + $s = 181; case 181: return $24r$24; + /* } */ case 178: + _r$69 = fc[0].translateExpr(expr[0]); /* */ $s = 182; case 182: if($c) { $c = false; _r$69 = _r$69.$blk(); } if (_r$69 && _r$69.$blk !== undefined) { break s; } + $24r$25 = _r$69; + $s = 183; case 183: return $24r$25; + /* } else if ($assertType(_ref$3, ptrType$4, true)[1]) { */ case 174: ptrElType$1 = _ref$3.$val; - if (!(fc[0].pkgCtx.Info.Pkg.Path() === "syscall")) { _v$2 = false; $s = 176; continue s; } - _r$67 = types.Identical(exprType, (x$9 = types.Typ, (18 >= x$9.$length ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + 18]))); /* */ $s = 177; case 177: if($c) { $c = false; _r$67 = _r$67.$blk(); } if (_r$67 && _r$67.$blk !== undefined) { break s; } - _v$2 = _r$67; case 176: - /* */ if (_v$2) { $s = 174; continue; } - /* */ $s = 175; continue; - /* if (_v$2) { */ case 174: - _r$68 = fc[0].newLocalVariable("_array"); /* */ $s = 178; case 178: if($c) { $c = false; _r$68 = _r$68.$blk(); } if (_r$68 && _r$68.$blk !== undefined) { break s; } - array$1 = _r$68; - _r$69 = fc[0].newLocalVariable("_struct"); /* */ $s = 179; case 179: if($c) { $c = false; _r$69 = _r$69.$blk(); } if (_r$69 && _r$69.$blk !== undefined) { break s; } - target$1 = _r$69; - _arg$21 = new $String(array$1); - _arg$22 = expr[0]; - _arg$23 = new $String(target$1); - _r$70 = fc[0].zeroValue(t$2.Elem()); /* */ $s = 180; case 180: if($c) { $c = false; _r$70 = _r$70.$blk(); } if (_r$70 && _r$70.$blk !== undefined) { break s; } - _arg$24 = _r$70; - _r$71 = fc[0].loadStruct(array$1, target$1, ptrElType$1); /* */ $s = 181; case 181: if($c) { $c = false; _r$71 = _r$71.$blk(); } if (_r$71 && _r$71.$blk !== undefined) { break s; } - _arg$25 = new $String(_r$71); - _arg$26 = new $String(target$1); - _r$72 = fc[0].formatExpr("(%s = %e, %s = %e, %s, %s)", new sliceType([_arg$21, _arg$22, _arg$23, _arg$24, _arg$25, _arg$26])); /* */ $s = 182; case 182: if($c) { $c = false; _r$72 = _r$72.$blk(); } if (_r$72 && _r$72.$blk !== undefined) { break s; } - $24r$25 = _r$72; - $s = 183; case 183: return $24r$25; - /* } */ case 175: - _arg$27 = expr[0]; - _r$73 = fc[0].typeName(desiredType); /* */ $s = 184; case 184: if($c) { $c = false; _r$73 = _r$73.$blk(); } if (_r$73 && _r$73.$blk !== undefined) { break s; } - _arg$28 = new $String(_r$73); - _r$74 = fc[0].formatExpr("$pointerOfStructConversion(%e, %s)", new sliceType([_arg$27, _arg$28])); /* */ $s = 185; case 185: if($c) { $c = false; _r$74 = _r$74.$blk(); } if (_r$74 && _r$74.$blk !== undefined) { break s; } - $24r$26 = _r$74; - $s = 186; case 186: return $24r$26; - /* } */ case 165: - _r$75 = types.Identical(exprType, (x$10 = types.Typ, (18 >= x$10.$length ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + 18]))); /* */ $s = 189; case 189: if($c) { $c = false; _r$75 = _r$75.$blk(); } if (_r$75 && _r$75.$blk !== undefined) { break s; } - /* */ if (_r$75) { $s = 187; continue; } - /* */ $s = 188; continue; - /* if (_r$75) { */ case 187: - /* break; */ $s = 31; continue; - /* } */ case 188: - _r$76 = exprType.Underlying(); /* */ $s = 190; case 190: if($c) { $c = false; _r$76 = _r$76.$blk(); } if (_r$76 && _r$76.$blk !== undefined) { break s; } - _r$77 = $assertType(_r$76, ptrType$3).Elem(); /* */ $s = 191; case 191: if($c) { $c = false; _r$77 = _r$77.$blk(); } if (_r$77 && _r$77.$blk !== undefined) { break s; } - exprTypeElem = _r$77; - _r$78 = fc[0].newLocalVariable("_ptr"); /* */ $s = 192; case 192: if($c) { $c = false; _r$78 = _r$78.$blk(); } if (_r$78 && _r$78.$blk !== undefined) { break s; } - ptrVar = _r$78; - _r$79 = fc[0].newIdent(ptrVar, exprType); /* */ $s = 193; case 193: if($c) { $c = false; _r$79 = _r$79.$blk(); } if (_r$79 && _r$79.$blk !== undefined) { break s; } - _r$80 = fc[0].setType(new ast.StarExpr.ptr(0, _r$79), exprTypeElem); /* */ $s = 194; case 194: if($c) { $c = false; _r$80 = _r$80.$blk(); } if (_r$80 && _r$80.$blk !== undefined) { break s; } - _r$81 = fc[0].translateConversion(_r$80, t$2.Elem()); /* */ $s = 195; case 195: if($c) { $c = false; _r$81 = _r$81.$blk(); } if (_r$81 && _r$81.$blk !== undefined) { break s; } - getterConv = _r$81; - _r$82 = fc[0].newIdent("$v", t$2.Elem()); /* */ $s = 196; case 196: if($c) { $c = false; _r$82 = _r$82.$blk(); } if (_r$82 && _r$82.$blk !== undefined) { break s; } - _r$83 = fc[0].translateConversion(_r$82, exprTypeElem); /* */ $s = 197; case 197: if($c) { $c = false; _r$83 = _r$83.$blk(); } if (_r$83 && _r$83.$blk !== undefined) { break s; } - setterConv = _r$83; - _arg$29 = new $String(ptrVar); - _arg$30 = expr[0]; - _r$84 = fc[0].typeName(desiredType); /* */ $s = 198; case 198: if($c) { $c = false; _r$84 = _r$84.$blk(); } if (_r$84 && _r$84.$blk !== undefined) { break s; } - _arg$31 = new $String(_r$84); - _arg$32 = getterConv; - _arg$33 = setterConv; - _r$85 = fc[0].formatExpr("(%1s = %2e, new %3s(function() { return %4s; }, function($v) { %1s.$set(%5s); }, %1s.$target))", new sliceType([_arg$29, _arg$30, _arg$31, _arg$32, _arg$33])); /* */ $s = 199; case 199: if($c) { $c = false; _r$85 = _r$85.$blk(); } if (_r$85 && _r$85.$blk !== undefined) { break s; } - $24r$27 = _r$85; - $s = 200; case 200: return $24r$27; - /* } else if ($assertType(_ref, ptrType$9, true)[1]) { */ case 30: + if (!(fc[0].pkgCtx.Info.Pkg.Path() === "syscall")) { _v$2 = false; $s = 186; continue s; } + _r$70 = types.Identical(exprType, (x$10 = types.Typ, (18 >= x$10.$length ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + 18]))); /* */ $s = 187; case 187: if($c) { $c = false; _r$70 = _r$70.$blk(); } if (_r$70 && _r$70.$blk !== undefined) { break s; } + _v$2 = _r$70; case 186: + /* */ if (_v$2) { $s = 184; continue; } + /* */ $s = 185; continue; + /* if (_v$2) { */ case 184: + _r$71 = fc[0].newLocalVariable("_array"); /* */ $s = 188; case 188: if($c) { $c = false; _r$71 = _r$71.$blk(); } if (_r$71 && _r$71.$blk !== undefined) { break s; } + array$1 = _r$71; + _r$72 = fc[0].newLocalVariable("_struct"); /* */ $s = 189; case 189: if($c) { $c = false; _r$72 = _r$72.$blk(); } if (_r$72 && _r$72.$blk !== undefined) { break s; } + target$1 = _r$72; + _arg$23 = new $String(array$1); + _arg$24 = expr[0]; + _arg$25 = new $String(target$1); + _r$73 = fc[0].zeroValue(t$2.Elem()); /* */ $s = 190; case 190: if($c) { $c = false; _r$73 = _r$73.$blk(); } if (_r$73 && _r$73.$blk !== undefined) { break s; } + _arg$26 = _r$73; + _r$74 = fc[0].loadStruct(array$1, target$1, ptrElType$1); /* */ $s = 191; case 191: if($c) { $c = false; _r$74 = _r$74.$blk(); } if (_r$74 && _r$74.$blk !== undefined) { break s; } + _arg$27 = new $String(_r$74); + _arg$28 = new $String(target$1); + _r$75 = fc[0].formatExpr("(%s = %e, %s = %e, %s, %s)", new sliceType([_arg$23, _arg$24, _arg$25, _arg$26, _arg$27, _arg$28])); /* */ $s = 192; case 192: if($c) { $c = false; _r$75 = _r$75.$blk(); } if (_r$75 && _r$75.$blk !== undefined) { break s; } + $24r$26 = _r$75; + $s = 193; case 193: return $24r$26; + /* } */ case 185: + _arg$29 = expr[0]; + _r$76 = fc[0].typeName(desiredType); /* */ $s = 194; case 194: if($c) { $c = false; _r$76 = _r$76.$blk(); } if (_r$76 && _r$76.$blk !== undefined) { break s; } + _arg$30 = new $String(_r$76); + _r$77 = fc[0].formatExpr("$pointerOfStructConversion(%e, %s)", new sliceType([_arg$29, _arg$30])); /* */ $s = 195; case 195: if($c) { $c = false; _r$77 = _r$77.$blk(); } if (_r$77 && _r$77.$blk !== undefined) { break s; } + $24r$27 = _r$77; + $s = 196; case 196: return $24r$27; + /* } */ case 175: + _r$78 = types.Identical(exprType, (x$11 = types.Typ, (18 >= x$11.$length ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + 18]))); /* */ $s = 199; case 199: if($c) { $c = false; _r$78 = _r$78.$blk(); } if (_r$78 && _r$78.$blk !== undefined) { break s; } + /* */ if (_r$78) { $s = 197; continue; } + /* */ $s = 198; continue; + /* if (_r$78) { */ case 197: + /* break; */ $s = 41; continue; + /* } */ case 198: + _r$79 = exprType.Underlying(); /* */ $s = 200; case 200: if($c) { $c = false; _r$79 = _r$79.$blk(); } if (_r$79 && _r$79.$blk !== undefined) { break s; } + _r$80 = $assertType(_r$79, ptrType$3).Elem(); /* */ $s = 201; case 201: if($c) { $c = false; _r$80 = _r$80.$blk(); } if (_r$80 && _r$80.$blk !== undefined) { break s; } + exprTypeElem = _r$80; + _r$81 = fc[0].newLocalVariable("_ptr"); /* */ $s = 202; case 202: if($c) { $c = false; _r$81 = _r$81.$blk(); } if (_r$81 && _r$81.$blk !== undefined) { break s; } + ptrVar = _r$81; + _r$82 = fc[0].newIdent(ptrVar, exprType); /* */ $s = 203; case 203: if($c) { $c = false; _r$82 = _r$82.$blk(); } if (_r$82 && _r$82.$blk !== undefined) { break s; } + _r$83 = fc[0].setType(new ast.StarExpr.ptr(0, _r$82), exprTypeElem); /* */ $s = 204; case 204: if($c) { $c = false; _r$83 = _r$83.$blk(); } if (_r$83 && _r$83.$blk !== undefined) { break s; } + _r$84 = fc[0].translateConversion(_r$83, t$2.Elem()); /* */ $s = 205; case 205: if($c) { $c = false; _r$84 = _r$84.$blk(); } if (_r$84 && _r$84.$blk !== undefined) { break s; } + getterConv = _r$84; + _r$85 = fc[0].newIdent("$v", t$2.Elem()); /* */ $s = 206; case 206: if($c) { $c = false; _r$85 = _r$85.$blk(); } if (_r$85 && _r$85.$blk !== undefined) { break s; } + _r$86 = fc[0].translateConversion(_r$85, exprTypeElem); /* */ $s = 207; case 207: if($c) { $c = false; _r$86 = _r$86.$blk(); } if (_r$86 && _r$86.$blk !== undefined) { break s; } + setterConv = _r$86; + _arg$31 = new $String(ptrVar); + _arg$32 = expr[0]; + _r$87 = fc[0].typeName(desiredType); /* */ $s = 208; case 208: if($c) { $c = false; _r$87 = _r$87.$blk(); } if (_r$87 && _r$87.$blk !== undefined) { break s; } + _arg$33 = new $String(_r$87); + _arg$34 = getterConv; + _arg$35 = setterConv; + _r$88 = fc[0].formatExpr("(%1s = %2e, new %3s(function() { return %4s; }, function($v) { %1s.$set(%5s); }, %1s.$target, %1s.$index))", new sliceType([_arg$31, _arg$32, _arg$33, _arg$34, _arg$35])); /* */ $s = 209; case 209: if($c) { $c = false; _r$88 = _r$88.$blk(); } if (_r$88 && _r$88.$blk !== undefined) { break s; } + $24r$28 = _r$88; + $s = 210; case 210: return $24r$28; + /* } else if ($assertType(_ref, ptrType$9, true)[1]) { */ case 40: t$3 = _ref.$val; - _r$86 = types.Identical(exprType, (x$11 = types.Typ, (18 >= x$11.$length ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + 18]))); /* */ $s = 203; case 203: if($c) { $c = false; _r$86 = _r$86.$blk(); } if (_r$86 && _r$86.$blk !== undefined) { break s; } - /* */ if (_r$86) { $s = 201; continue; } - /* */ $s = 202; continue; - /* if (_r$86) { */ case 201: - _r$87 = fc[0].translateExpr(expr[0]); /* */ $s = 204; case 204: if($c) { $c = false; _r$87 = _r$87.$blk(); } if (_r$87 && _r$87.$blk !== undefined) { break s; } - $24r$28 = _r$87; - $s = 205; case 205: return $24r$28; - /* } */ case 202: - /* } } */ case 31: - _r$88 = fc[0].translateImplicitConversionWithCloning(expr[0], desiredType); /* */ $s = 206; case 206: if($c) { $c = false; _r$88 = _r$88.$blk(); } if (_r$88 && _r$88.$blk !== undefined) { break s; } - $24r$29 = _r$88; - $s = 207; case 207: return $24r$29; - /* */ } return; } var $f = {$blk: translateConversion, $c: true, $r, $24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$13, $24r$14, $24r$15, $24r$16, $24r$17, $24r$18, $24r$19, $24r$2, $24r$20, $24r$21, $24r$22, $24r$23, $24r$24, $24r$25, $24r$26, $24r$27, $24r$28, $24r$29, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _1, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$16, _arg$17, _arg$18, _arg$19, _arg$2, _arg$20, _arg$21, _arg$22, _arg$23, _arg$24, _arg$25, _arg$26, _arg$27, _arg$28, _arg$29, _arg$3, _arg$30, _arg$31, _arg$32, _arg$33, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _r$5, _r$50, _r$51, _r$52, _r$53, _r$54, _r$55, _r$56, _r$57, _r$58, _r$59, _r$6, _r$60, _r$61, _r$62, _r$63, _r$64, _r$65, _r$66, _r$67, _r$68, _r$69, _r$7, _r$70, _r$71, _r$72, _r$73, _r$74, _r$75, _r$76, _r$77, _r$78, _r$79, _r$8, _r$80, _r$81, _r$82, _r$83, _r$84, _r$85, _r$86, _r$87, _r$88, _r$9, _ref, _ref$1, _ref$2, _ref$3, _tuple, _tuple$1, _tuple$10, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, _v$2, array, array$1, basicExprType, call, call$1, desiredType, et, et$1, et$2, et$3, et$4, expr, exprType, exprTypeElem, fc, getterConv, id, ident, indexExpr, isCall, isIdent, isIndexExpr, isNamed, isPtr, isPtr$1, isStruct, isUnary, named, ok, ok$1, ok$2, ptr, ptr$1, ptrElType, ptrElType$1, ptrVar, s, setterConv, t, t$1, t$2, t$3, target, target$1, unary, value, x, x$1, x$10, x$11, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; + _r$89 = types.Identical(exprType, (x$12 = types.Typ, (18 >= x$12.$length ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + 18]))); /* */ $s = 213; case 213: if($c) { $c = false; _r$89 = _r$89.$blk(); } if (_r$89 && _r$89.$blk !== undefined) { break s; } + /* */ if (_r$89) { $s = 211; continue; } + /* */ $s = 212; continue; + /* if (_r$89) { */ case 211: + _r$90 = fc[0].translateExpr(expr[0]); /* */ $s = 214; case 214: if($c) { $c = false; _r$90 = _r$90.$blk(); } if (_r$90 && _r$90.$blk !== undefined) { break s; } + $24r$29 = _r$90; + $s = 215; case 215: return $24r$29; + /* } */ case 212: + /* } } */ case 41: + _r$91 = fc[0].translateImplicitConversionWithCloning(expr[0], desiredType); /* */ $s = 216; case 216: if($c) { $c = false; _r$91 = _r$91.$blk(); } if (_r$91 && _r$91.$blk !== undefined) { break s; } + $24r$30 = _r$91; + $s = 217; case 217: return $24r$30; + /* */ } return; } var $f = {$blk: translateConversion, $c: true, $r, $24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$13, $24r$14, $24r$15, $24r$16, $24r$17, $24r$18, $24r$19, $24r$2, $24r$20, $24r$21, $24r$22, $24r$23, $24r$24, $24r$25, $24r$26, $24r$27, $24r$28, $24r$29, $24r$3, $24r$30, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _1, _2, _3, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$16, _arg$17, _arg$18, _arg$19, _arg$2, _arg$20, _arg$21, _arg$22, _arg$23, _arg$24, _arg$25, _arg$26, _arg$27, _arg$28, _arg$29, _arg$3, _arg$30, _arg$31, _arg$32, _arg$33, _arg$34, _arg$35, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _r$5, _r$50, _r$51, _r$52, _r$53, _r$54, _r$55, _r$56, _r$57, _r$58, _r$59, _r$6, _r$60, _r$61, _r$62, _r$63, _r$64, _r$65, _r$66, _r$67, _r$68, _r$69, _r$7, _r$70, _r$71, _r$72, _r$73, _r$74, _r$75, _r$76, _r$77, _r$78, _r$79, _r$8, _r$80, _r$81, _r$82, _r$83, _r$84, _r$85, _r$86, _r$87, _r$88, _r$89, _r$9, _r$90, _r$91, _ref, _ref$1, _ref$2, _ref$3, _tuple, _tuple$1, _tuple$10, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, _v$2, array, array$1, basicExprType, call, call$1, desiredType, et, et$1, et$2, et$3, et$4, expr, exprType, exprTypeElem, fc, getterConv, id, ident, indexExpr, isCall, isIdent, isIndexExpr, isNamed, isPtr, isPtr$1, isStruct, isUnary, named, obj, ok, ok$1, ok$2, ptr, ptr$1, ptrElType, ptrElType$1, ptrVar, s, setterConv, t, t$1, t$2, t$3, target, target$1, unary, value, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; }; $ptrType(funcContext).prototype.translateImplicitConversionWithCloning = function translateImplicitConversionWithCloning(expr, desiredType) { var {$24r, $24r$1, _arg, _arg$1, _r$1, _r$2, _r$3, _r$4, _ref, desiredType, expr, fc, $s, $r, $c} = $restore(this, {expr, desiredType}); @@ -342408,7 +345060,7 @@ $packages["github.com/gopherjs/gopherjs/compiler"] = (function() { /* */ } return; } var $f = {$blk: translateImplicitConversionWithCloning, $c: true, $r, $24r, $24r$1, _arg, _arg$1, _r$1, _r$2, _r$3, _r$4, _ref, desiredType, expr, fc, $s};return $f; }; $ptrType(funcContext).prototype.translateImplicitConversion = function translateImplicitConversion(expr, desiredType) { - var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _tuple$1, basicExprType, desiredType, expr, exprType, fc, isBasicExpr, isStruct, $s, $r, $c} = $restore(this, {expr, desiredType}); + var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _tuple$1, _tuple$2, _tuple$3, _v, basicExprType, desiredType, dt, dt$1, dt$2, expr, exprType, fc, isBasicExpr, isStruct, isStruct$1, ok, sPtr, $s, $r, $c} = $restore(this, {expr, desiredType}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: fc = this; /* */ if ($interfaceIsEqual(desiredType, $ifaceNil)) { $s = 1; continue; } @@ -342445,48 +345097,78 @@ $packages["github.com/gopherjs/gopherjs/compiler"] = (function() { _ref = _r$8; /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 18; continue; } /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 19; continue; } - /* */ $s = 20; continue; + /* */ if ($assertType(_ref, ptrType$3, true)[1]) { $s = 20; continue; } + /* */ $s = 21; continue; /* if ($assertType(_ref, ptrType$11, true)[1]) { */ case 18: + dt = _ref.$val; _arg$1 = expr; - _r$9 = fc.typeName(desiredType); /* */ $s = 21; case 21: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$9 = fc.typeName(desiredType); /* */ $s = 22; case 22: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } _arg$2 = new $String(_r$9); - _r$10 = fc.formatExpr("$convertSliceType(%1e, %2s)", new sliceType([_arg$1, _arg$2])); /* */ $s = 22; case 22: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$10 = fc.formatExpr("$convertSliceType(%1e, %2s)", new sliceType([_arg$1, _arg$2])); /* */ $s = 23; case 23: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } $24r$3 = _r$10; - $s = 23; case 23: return $24r$3; + $s = 24; case 24: return $24r$3; /* } else if ($assertType(_ref, ptrType$9, true)[1]) { */ case 19: - /* */ if (typesutil.IsJsObject(exprType)) { $s = 24; continue; } - /* */ $s = 25; continue; - /* if (typesutil.IsJsObject(exprType)) { */ case 24: - _r$11 = fc.formatExpr("new $jsObjectPtr(%e)", new sliceType([expr])); /* */ $s = 26; case 26: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + dt$1 = _ref.$val; + /* */ if (typesutil.IsJsObject(exprType)) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (typesutil.IsJsObject(exprType)) { */ case 25: + _r$11 = fc.formatExpr("new $jsObjectPtr(%e)", new sliceType([expr])); /* */ $s = 27; case 27: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } $24r$4 = _r$11; - $s = 27; case 27: return $24r$4; - /* } */ case 25: - _r$12 = isWrapped(exprType); /* */ $s = 30; case 30: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - /* */ if (_r$12) { $s = 28; continue; } - /* */ $s = 29; continue; - /* if (_r$12) { */ case 28: - _r$13 = fc.typeName(exprType); /* */ $s = 31; case 31: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + $s = 28; case 28: return $24r$4; + /* } */ case 26: + _r$12 = isWrapped(exprType); /* */ $s = 31; case 31: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + /* */ if (_r$12) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if (_r$12) { */ case 29: + _r$13 = fc.typeName(exprType); /* */ $s = 32; case 32: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } _arg$3 = new $String(_r$13); _arg$4 = expr; - _r$14 = fc.formatExpr("new %s(%e)", new sliceType([_arg$3, _arg$4])); /* */ $s = 32; case 32: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _r$14 = fc.formatExpr("new %s(%e)", new sliceType([_arg$3, _arg$4])); /* */ $s = 33; case 33: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } $24r$5 = _r$14; - $s = 33; case 33: return $24r$5; - /* } */ case 29: - _r$15 = exprType.Underlying(); /* */ $s = 34; case 34: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + $s = 34; case 34: return $24r$5; + /* } */ case 30: + _r$15 = exprType.Underlying(); /* */ $s = 35; case 35: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } _tuple$1 = $assertType(_r$15, ptrType$4, true); isStruct = _tuple$1[1]; - /* */ if (isStruct) { $s = 35; continue; } - /* */ $s = 36; continue; - /* if (isStruct) { */ case 35: - _r$16 = fc.formatExpr("new %1e.constructor.elem(%1e)", new sliceType([expr])); /* */ $s = 37; case 37: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + /* */ if (isStruct) { $s = 36; continue; } + /* */ $s = 37; continue; + /* if (isStruct) { */ case 36: + _r$16 = fc.formatExpr("new %1e.constructor.elem(%1e)", new sliceType([expr])); /* */ $s = 38; case 38: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } $24r$6 = _r$16; - $s = 38; case 38: return $24r$6; - /* } */ case 36: - /* } */ case 20: - _r$17 = fc.translateExpr(expr); /* */ $s = 39; case 39: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - $24r$7 = _r$17; - $s = 40; case 40: return $24r$7; - /* */ } return; } var $f = {$blk: translateImplicitConversion, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _tuple$1, basicExprType, desiredType, expr, exprType, fc, isBasicExpr, isStruct, $s};return $f; + $s = 39; case 39: return $24r$6; + /* } */ case 37: + $s = 21; continue; + /* } else if ($assertType(_ref, ptrType$3, true)[1]) { */ case 20: + dt$2 = _ref.$val; + _r$17 = dt$2.Elem().Underlying(); /* */ $s = 40; case 40: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + _tuple$2 = $assertType(_r$17, ptrType$4, true); + isStruct$1 = _tuple$2[1]; + /* */ if (isStruct$1) { $s = 41; continue; } + /* */ $s = 42; continue; + /* if (isStruct$1) { */ case 41: + _r$18 = exprType.Underlying(); /* */ $s = 43; case 43: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + _tuple$3 = $assertType(_r$18, ptrType$3, true); + sPtr = _tuple$3[0]; + ok = _tuple$3[1]; + if (!(ok)) { _v = false; $s = 46; continue s; } + _r$19 = types.Identical(sPtr.Elem(), dt$2.Elem()); /* */ $s = 47; case 47: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + _v = _r$19; case 46: + /* */ if (_v) { $s = 44; continue; } + /* */ $s = 45; continue; + /* if (_v) { */ case 44: + _arg$5 = expr; + _r$20 = fc.typeName(desiredType); /* */ $s = 48; case 48: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + _arg$6 = new $String(_r$20); + _r$21 = fc.formatExpr("$pointerOfStructConversion(%e, %s)", new sliceType([_arg$5, _arg$6])); /* */ $s = 49; case 49: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + $24r$7 = _r$21; + $s = 50; case 50: return $24r$7; + /* } */ case 45: + /* } */ case 42: + /* } */ case 21: + _r$22 = fc.translateExpr(expr); /* */ $s = 51; case 51: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + $24r$8 = _r$22; + $s = 52; case 52: return $24r$8; + /* */ } return; } var $f = {$blk: translateImplicitConversion, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _tuple$1, _tuple$2, _tuple$3, _v, basicExprType, desiredType, dt, dt$1, dt$2, expr, exprType, fc, isBasicExpr, isStruct, isStruct$1, ok, sPtr, $s};return $f; }; $ptrType(funcContext).prototype.translateConversionToSlice = function translateConversionToSlice(expr, desiredType) { var {$24r, $24r$1, _arg, _arg$1, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, desiredType, expr, fc, $s, $r, $c} = $restore(this, {expr, desiredType}); @@ -344054,8 +346736,8 @@ $packages["github.com/gopherjs/gopherjs/compiler"] = (function() { return new sourcemapx.Filter.ptr(w, ptrType$5.nil, $throwNilPointerError, $throwNilPointerError, ptrType$81.nil, "", "", false, 0, 0); }; $pkg.DefaultFilter = DefaultFilter; - WriteProgramCode = function WriteProgramCode$1(pkgs, w, goVersion) { - var {_i, _i$1, _i$2, _i$3, _i$4, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, d, dceSelection, err, err$1, err$10, err$11, err$12, err$2, err$3, err$4, err$5, err$6, err$7, err$8, err$9, gls, goVersion, implementsLink, mainPkg, minify$1, pkg, pkg$1, pkg$2, pkgs, preludeFile, sel, w, x, $s, $r, $c} = $restore(this, {pkgs, w, goVersion}); + WriteProgramCode = function WriteProgramCode$1(pkgs, w, goVersion, testBinary) { + var {_i, _i$1, _i$2, _i$3, _i$4, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, d, dceSelection, err, err$1, err$10, err$11, err$12, err$13, err$2, err$3, err$4, err$5, err$6, err$7, err$8, err$9, gls, goVersion, implementsLink, mainPkg, minify$1, pkg, pkg$1, pkg$2, pkgs, preludeFile, sel, testBinary, w, x, $s, $r, $c} = $restore(this, {pkgs, w, goVersion, testBinary}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: mainPkg = (x = pkgs.$length - 1 >> 0, ((x < 0 || x >= pkgs.$length) ? ($throwRuntimeError("index out of range"), undefined) : pkgs.$array[pkgs.$offset + x])); minify$1 = mainPkg.Minified; @@ -344104,90 +346786,96 @@ $packages["github.com/gopherjs/gopherjs/compiler"] = (function() { if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = -1; return err$1; } - _r$5 = prelude.PreludeFiles(); /* */ $s = 7; case 7: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _ref$3 = _r$5; + _r$5 = writeF(w, false, "var $testBinary = %q;\n", new sliceType([new $String(testBinary)])); /* */ $s = 7; case 7: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$2 = _r$5; + err$2 = _tuple$2[1]; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + $s = -1; return err$2; + } + _r$6 = prelude.PreludeFiles(); /* */ $s = 8; case 8: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _ref$3 = _r$6; _i$3 = 0; - /* while (true) { */ case 8: - /* if (!(_i$3 < _ref$3.$length)) { break; } */ if(!(_i$3 < _ref$3.$length)) { $s = 9; continue; } + /* while (true) { */ case 9: + /* if (!(_i$3 < _ref$3.$length)) { break; } */ if(!(_i$3 < _ref$3.$length)) { $s = 10; continue; } preludeFile = $clone(((_i$3 < 0 || _i$3 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$3]), prelude.PreludeFile); - _r$6 = w.WriteJS(preludeFile.Source, preludeFile.Name, minify$1); /* */ $s = 10; case 10: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _tuple$2 = _r$6; - err$2 = _tuple$2[1]; - if (!($interfaceIsEqual(err$2, $ifaceNil))) { - $s = -1; return err$2; + _r$7 = w.WriteJS(preludeFile.Source, preludeFile.Name, minify$1); /* */ $s = 11; case 11: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _tuple$3 = _r$7; + err$3 = _tuple$3[1]; + if (!($interfaceIsEqual(err$3, $ifaceNil))) { + $s = -1; return err$3; } _i$3++; - $s = 8; continue; - case 9: - _r$7 = writeF(w, false, "\n", sliceType.nil); /* */ $s = 11; case 11: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _tuple$3 = _r$7; - err$3 = _tuple$3[1]; - if (!($interfaceIsEqual(err$3, $ifaceNil))) { - $s = -1; return err$3; + $s = 9; continue; + case 10: + _r$8 = writeF(w, false, "\n", sliceType.nil); /* */ $s = 12; case 12: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _tuple$4 = _r$8; + err$4 = _tuple$4[1]; + if (!($interfaceIsEqual(err$4, $ifaceNil))) { + $s = -1; return err$4; } _ref$4 = pkgs; _i$4 = 0; - /* while (true) { */ case 12: - /* if (!(_i$4 < _ref$4.$length)) { break; } */ if(!(_i$4 < _ref$4.$length)) { $s = 13; continue; } + /* while (true) { */ case 13: + /* if (!(_i$4 < _ref$4.$length)) { break; } */ if(!(_i$4 < _ref$4.$length)) { $s = 14; continue; } pkg$2 = ((_i$4 < 0 || _i$4 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$4]); - _r$8 = WritePkgCode(pkg$2, dceSelection, $clone(gls, linkname.GoLinknameSet), minify$1, w); /* */ $s = 14; case 14: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - err$4 = _r$8; - if (!($interfaceIsEqual(err$4, $ifaceNil))) { - $s = -1; return err$4; + _r$9 = WritePkgCode(pkg$2, dceSelection, $clone(gls, linkname.GoLinknameSet), minify$1, w); /* */ $s = 15; case 15: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + err$5 = _r$9; + if (!($interfaceIsEqual(err$5, $ifaceNil))) { + $s = -1; return err$5; } _i$4++; - $s = 12; continue; - case 13: - _r$9 = writeF(w, false, "$callForAllPackages(\"$finishSetup\");\n", sliceType.nil); /* */ $s = 15; case 15: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _tuple$4 = _r$9; - err$5 = _tuple$4[1]; - if (!($interfaceIsEqual(err$5, $ifaceNil))) { - $s = -1; return err$5; - } - _r$10 = writeF(w, false, "$synthesizeMethods();\n", sliceType.nil); /* */ $s = 16; case 16: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + $s = 13; continue; + case 14: + _r$10 = writeF(w, false, "$callForAllPackages(\"$finishSetup\");\n", sliceType.nil); /* */ $s = 16; case 16: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } _tuple$5 = _r$10; err$6 = _tuple$5[1]; if (!($interfaceIsEqual(err$6, $ifaceNil))) { $s = -1; return err$6; } - _r$11 = writeF(w, false, "$callForAllPackages(\"$initLinknames\");\n", sliceType.nil); /* */ $s = 17; case 17: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _r$11 = writeF(w, false, "$synthesizeMethods();\n", sliceType.nil); /* */ $s = 17; case 17: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } _tuple$6 = _r$11; err$7 = _tuple$6[1]; if (!($interfaceIsEqual(err$7, $ifaceNil))) { $s = -1; return err$7; } - _r$12 = writeF(w, false, "var $mainPkg = $packages[\"%s\"];\n", new sliceType([new $String(mainPkg.ImportPath)])); /* */ $s = 18; case 18: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _r$12 = writeF(w, false, "$callForAllPackages(\"$initLinknames\");\n", sliceType.nil); /* */ $s = 18; case 18: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } _tuple$7 = _r$12; err$8 = _tuple$7[1]; if (!($interfaceIsEqual(err$8, $ifaceNil))) { $s = -1; return err$8; } - _r$13 = writeF(w, false, "$packages[\"runtime\"].$init();\n", sliceType.nil); /* */ $s = 19; case 19: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _r$13 = writeF(w, false, "var $mainPkg = $packages[\"%s\"];\n", new sliceType([new $String(mainPkg.ImportPath)])); /* */ $s = 19; case 19: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } _tuple$8 = _r$13; err$9 = _tuple$8[1]; if (!($interfaceIsEqual(err$9, $ifaceNil))) { $s = -1; return err$9; } - _r$14 = writeF(w, false, "$go($mainPkg.$init, []);\n", sliceType.nil); /* */ $s = 20; case 20: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _r$14 = writeF(w, false, "$packages[\"runtime\"].$init();\n", sliceType.nil); /* */ $s = 20; case 20: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } _tuple$9 = _r$14; err$10 = _tuple$9[1]; if (!($interfaceIsEqual(err$10, $ifaceNil))) { $s = -1; return err$10; } - _r$15 = writeF(w, false, "$flushConsole();\n", sliceType.nil); /* */ $s = 21; case 21: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + _r$15 = writeF(w, false, "$go($mainPkg.$init, []);\n", sliceType.nil); /* */ $s = 21; case 21: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } _tuple$10 = _r$15; err$11 = _tuple$10[1]; if (!($interfaceIsEqual(err$11, $ifaceNil))) { $s = -1; return err$11; } - _r$16 = writeF(w, false, "\n}).call(this);\n", sliceType.nil); /* */ $s = 22; case 22: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + _r$16 = writeF(w, false, "$flushConsole();\n", sliceType.nil); /* */ $s = 22; case 22: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } _tuple$11 = _r$16; err$12 = _tuple$11[1]; if (!($interfaceIsEqual(err$12, $ifaceNil))) { $s = -1; return err$12; } + _r$17 = writeF(w, false, "\n}).call(this);\n", sliceType.nil); /* */ $s = 23; case 23: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + _tuple$12 = _r$17; + err$13 = _tuple$12[1]; + if (!($interfaceIsEqual(err$13, $ifaceNil))) { + $s = -1; return err$13; + } $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: WriteProgramCode$1, $c: true, $r, _i, _i$1, _i$2, _i$3, _i$4, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, d, dceSelection, err, err$1, err$10, err$11, err$12, err$2, err$3, err$4, err$5, err$6, err$7, err$8, err$9, gls, goVersion, implementsLink, mainPkg, minify$1, pkg, pkg$1, pkg$2, pkgs, preludeFile, sel, w, x, $s};return $f; + /* */ } return; } var $f = {$blk: WriteProgramCode$1, $c: true, $r, _i, _i$1, _i$2, _i$3, _i$4, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, d, dceSelection, err, err$1, err$10, err$11, err$12, err$13, err$2, err$3, err$4, err$5, err$6, err$7, err$8, err$9, gls, goVersion, implementsLink, mainPkg, minify$1, pkg, pkg$1, pkg$2, pkgs, preludeFile, sel, testBinary, w, x, $s};return $f; }; $pkg.WriteProgramCode = WriteProgramCode; WritePkgCode = function WritePkgCode$1(pkg, dceSelection, gls, minify$1, w) { @@ -344525,14 +347213,14 @@ $packages["github.com/gopherjs/gopherjs/compiler"] = (function() { FatalError.methods = [{prop: "Unwrap", name: "Unwrap", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; ptrType$25.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}]; ptrType$58.methods = [{prop: "isMain", name: "isMain", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([], [$Bool], false)}]; - ptrType.methods = [{prop: "root", name: "root", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([], [ptrType], false)}, {prop: "isRoot", name: "isRoot", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([], [$Bool], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "Printf", name: "Printf", pkg: "", typ: $funcType([$String, sliceType], [], true)}, {prop: "PrintCond", name: "PrintCond", pkg: "", typ: $funcType([$Bool, $String, $String], [], false)}, {prop: "SetPos", name: "SetPos", pkg: "", typ: $funcType([token.Pos], [], false)}, {prop: "writePos", name: "writePos", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([], [], false)}, {prop: "Indented", name: "Indented", pkg: "", typ: $funcType([funcType], [], false)}, {prop: "Indentation", name: "Indentation", pkg: "", typ: $funcType([$Int], [$String], false)}, {prop: "CatchOutput", name: "CatchOutput", pkg: "", typ: $funcType([$Int, funcType], [sliceType$2], false)}, {prop: "Delayed", name: "Delayed", pkg: "", typ: $funcType([funcType], [], false)}, {prop: "expandTupleArgs", name: "expandTupleArgs", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([sliceType$3], [sliceType$3], false)}, {prop: "translateArgs", name: "translateArgs", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$2, sliceType$3, $Bool], [sliceType$1], false)}, {prop: "translateSelection", name: "translateSelection", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([typesutil.Selection, token.Pos], [sliceType$1, $String], false)}, {prop: "zeroValue", name: "zeroValue", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([types.Type], [ast.Expr], false)}, {prop: "newConst", name: "newConst", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([types.Type, constant.Value], [ast.Expr], false)}, {prop: "newLocalVariable", name: "newLocalVariable", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([$String], [$String], false)}, {prop: "newVariable", name: "newVariable", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([$String, $Bool], [$String], false)}, {prop: "newIdent", name: "newIdent", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([$String, types.Type], [ptrType$12], false)}, {prop: "newIdentFor", name: "newIdentFor", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([types.Object], [ptrType$12], false)}, {prop: "newTypeIdent", name: "newTypeIdent", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([$String, types.Object], [ptrType$12], false)}, {prop: "newLitFuncName", name: "newLitFuncName", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([], [$String], false)}, {prop: "setType", name: "setType", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ast.Expr, types.Type], [ast.Expr], false)}, {prop: "pkgVar", name: "pkgVar", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$47], [$String], false)}, {prop: "assignedObjectName", name: "assignedObjectName", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([types.Object], [$String, $Bool], false)}, {prop: "objectName", name: "objectName", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([types.Object], [$String], false)}, {prop: "knownInstances", name: "knownInstances", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([types.Object], [sliceType$5], false)}, {prop: "instName", name: "instName", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([typeparams.Instance], [$String], false)}, {prop: "methodName", name: "methodName", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$21], [$String], false)}, {prop: "varPtrName", name: "varPtrName", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$16], [$String], false)}, {prop: "typeName", name: "typeName", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([types.Type], [$String], false)}, {prop: "importedPkgVar", name: "importedPkgVar", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$47], [$String], false)}, {prop: "instanceOf", name: "instanceOf", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$12], [typeparams.Instance], false)}, {prop: "typeOf", name: "typeOf", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ast.Expr], [types.Type], false)}, {prop: "fieldType", name: "fieldType", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$4, $Int], [types.Type], false)}, {prop: "selectionOf", name: "selectionOf", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$23], [typesutil.Selection, $Bool], false)}, {prop: "externalize", name: "externalize", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([$String, types.Type], [$String], false)}, {prop: "handleEscapingVars", name: "handleEscapingVars", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ast.Node], [], false)}, {prop: "translateStmtList", name: "translateStmtList", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([sliceType$7], [], false)}, {prop: "translateStmt", name: "translateStmt", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ast.Stmt, ptrType$26], [], false)}, {prop: "translateBranchingStmt", name: "translateBranchingStmt", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([sliceType$6, ptrType$44, $Bool, funcType$1, ptrType$26, $Bool], [], false)}, {prop: "translateLoopingStmt", name: "translateLoopingStmt", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([funcType$2, ptrType$27, funcType, funcType, ptrType$26, $Bool], [], false)}, {prop: "translateAssign", name: "translateAssign", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ast.Expr, ast.Expr, $Bool], [$String], false)}, {prop: "translateResults", name: "translateResults", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([sliceType$3], [$String], false)}, {prop: "labelCase", name: "labelCase", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$26], [$Int], false)}, {prop: "initArgs", name: "initArgs", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([types.Type], [$String], false)}, {prop: "nestedFunctionContext", name: "nestedFunctionContext", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$57, typeparams.Instance], [ptrType], false)}, {prop: "namedFuncContext", name: "namedFuncContext", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([typeparams.Instance], [ptrType], false)}, {prop: "literalFuncContext", name: "literalFuncContext", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$69], [ptrType], false)}, {prop: "translateTopLevelFunction", name: "translateTopLevelFunction", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$79], [sliceType$2], false)}, {prop: "translateStandaloneFunction", name: "translateStandaloneFunction", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$79], [sliceType$2], false)}, {prop: "translateMethod", name: "translateMethod", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$79], [sliceType$2], false)}, {prop: "unimplementedFunction", name: "unimplementedFunction", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$21], [$String], false)}, {prop: "translateFunctionBody", name: "translateFunctionBody", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$82, ptrType$12, ptrType$27], [$String], false)}, {prop: "translateExpr", name: "translateExpr", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ast.Expr], [ptrType$51], false)}, {prop: "translateCall", name: "translateCall", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$74, ptrType$2, ptrType$51], [ptrType$51], false)}, {prop: "delegatedCall", name: "delegatedCall", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$74], [ptrType$51, ptrType$51], false)}, {prop: "makeReceiver", name: "makeReceiver", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$23], [ptrType$51], false)}, {prop: "translateBuiltin", name: "translateBuiltin", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([$String, ptrType$2, sliceType$3, $Bool], [ptrType$51], false)}, {prop: "identifierConstant", name: "identifierConstant", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ast.Expr], [$String, $Bool], false)}, {prop: "translateExprSlice", name: "translateExprSlice", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([sliceType$3, types.Type], [sliceType$1], false)}, {prop: "translateConversion", name: "translateConversion", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ast.Expr, types.Type], [ptrType$51], false)}, {prop: "translateImplicitConversionWithCloning", name: "translateImplicitConversionWithCloning", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ast.Expr, types.Type], [ptrType$51], false)}, {prop: "translateImplicitConversion", name: "translateImplicitConversion", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ast.Expr, types.Type], [ptrType$51], false)}, {prop: "translateConversionToSlice", name: "translateConversionToSlice", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ast.Expr, types.Type], [ptrType$51], false)}, {prop: "loadStruct", name: "loadStruct", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([$String, $String, ptrType$4], [$String], false)}, {prop: "fixNumber", name: "fixNumber", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$51, ptrType$6], [ptrType$51], false)}, {prop: "internalize", name: "internalize", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$51, types.Type], [ptrType$51], false)}, {prop: "formatExpr", name: "formatExpr", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([$String, sliceType], [ptrType$51], true)}, {prop: "formatParenExpr", name: "formatParenExpr", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([$String, sliceType], [ptrType$51], true)}, {prop: "formatExprInternal", name: "formatExprInternal", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([$String, sliceType, $Bool], [ptrType$51], false)}, {prop: "topLevelObjects", name: "topLevelObjects", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$83], [sliceType$8, sliceType$18, typesutil.TypeNames], false)}, {prop: "importDecls", name: "importDecls", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([], [sliceType$1, sliceType$12], false)}, {prop: "newImportDecl", name: "newImportDecl", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$47], [ptrType$67], false)}, {prop: "importInitializer", name: "importInitializer", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([$String], [ast.Stmt], false)}, {prop: "varDecls", name: "varDecls", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([sliceType$8], [sliceType$12], false)}, {prop: "newVarDecl", name: "newVarDecl", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$80], [ptrType$67], false)}, {prop: "funcDecls", name: "funcDecls", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([sliceType$18], [sliceType$12, $error], false)}, {prop: "newFuncDecl", name: "newFuncDecl", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$79, typeparams.Instance], [ptrType$67], false)}, {prop: "callInitFunc", name: "callInitFunc", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$21], [ast.Stmt], false)}, {prop: "callMainFunc", name: "callMainFunc", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$21], [ast.Stmt], false)}, {prop: "namedTypeDecls", name: "namedTypeDecls", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([typesutil.TypeNames], [sliceType$12, $error], false)}, {prop: "newNamedTypeVarDecl", name: "newNamedTypeVarDecl", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$18], [ptrType$67], false)}, {prop: "newNamedTypeInstDecl", name: "newNamedTypeInstDecl", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([typeparams.Instance], [ptrType$67, $error], false)}, {prop: "structConstructor", name: "structConstructor", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$4], [$String], false)}, {prop: "methodListEntry", name: "methodListEntry", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$21], [$String, $Bool], false)}, {prop: "anonTypeDecls", name: "anonTypeDecls", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([sliceType$11], [sliceType$12], false)}]; + ptrType.methods = [{prop: "root", name: "root", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([], [ptrType], false)}, {prop: "isRoot", name: "isRoot", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([], [$Bool], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "Printf", name: "Printf", pkg: "", typ: $funcType([$String, sliceType], [], true)}, {prop: "PrintCond", name: "PrintCond", pkg: "", typ: $funcType([$Bool, $String, $String], [], false)}, {prop: "SetPos", name: "SetPos", pkg: "", typ: $funcType([token.Pos], [], false)}, {prop: "writePos", name: "writePos", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([], [], false)}, {prop: "Indented", name: "Indented", pkg: "", typ: $funcType([funcType], [], false)}, {prop: "Indentation", name: "Indentation", pkg: "", typ: $funcType([$Int], [$String], false)}, {prop: "CatchOutput", name: "CatchOutput", pkg: "", typ: $funcType([$Int, funcType], [sliceType$2], false)}, {prop: "Delayed", name: "Delayed", pkg: "", typ: $funcType([funcType], [], false)}, {prop: "expandTupleArgs", name: "expandTupleArgs", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([sliceType$3], [sliceType$3], false)}, {prop: "translateArgs", name: "translateArgs", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$2, sliceType$3, $Bool], [sliceType$1], false)}, {prop: "translateSelection", name: "translateSelection", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([typesutil.Selection, token.Pos], [sliceType$1, $String], false)}, {prop: "zeroValue", name: "zeroValue", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([types.Type], [ast.Expr], false)}, {prop: "newConst", name: "newConst", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([types.Type, constant.Value], [ast.Expr], false)}, {prop: "newLocalVariable", name: "newLocalVariable", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([$String], [$String], false)}, {prop: "newVariable", name: "newVariable", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([$String, $Bool], [$String], false)}, {prop: "newIdent", name: "newIdent", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([$String, types.Type], [ptrType$12], false)}, {prop: "newIdentFor", name: "newIdentFor", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([types.Object], [ptrType$12], false)}, {prop: "newTypeIdent", name: "newTypeIdent", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([$String, types.Object], [ptrType$12], false)}, {prop: "newLitFuncName", name: "newLitFuncName", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([], [$String], false)}, {prop: "setType", name: "setType", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ast.Expr, types.Type], [ast.Expr], false)}, {prop: "pkgVar", name: "pkgVar", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$47], [$String], false)}, {prop: "assignedObjectName", name: "assignedObjectName", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([types.Object], [$String, $Bool], false)}, {prop: "objectName", name: "objectName", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([types.Object], [$String], false)}, {prop: "knownInstances", name: "knownInstances", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([types.Object], [sliceType$5], false)}, {prop: "instName", name: "instName", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([typeparams.Instance], [$String], false)}, {prop: "methodName", name: "methodName", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$21], [$String], false)}, {prop: "varPtrName", name: "varPtrName", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$16], [$String], false)}, {prop: "typeName", name: "typeName", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([types.Type], [$String], false)}, {prop: "importedPkgVar", name: "importedPkgVar", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$47], [$String], false)}, {prop: "instanceOf", name: "instanceOf", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$12], [typeparams.Instance], false)}, {prop: "typeOf", name: "typeOf", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ast.Expr], [types.Type], false)}, {prop: "fieldType", name: "fieldType", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$4, $Int], [types.Type], false)}, {prop: "selectionOf", name: "selectionOf", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$23], [typesutil.Selection, $Bool], false)}, {prop: "externalize", name: "externalize", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([$String, types.Type], [$String], false)}, {prop: "handleEscapingVars", name: "handleEscapingVars", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ast.Node], [], false)}, {prop: "translateStmtList", name: "translateStmtList", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([sliceType$7], [], false)}, {prop: "translateStmt", name: "translateStmt", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ast.Stmt, ptrType$26], [], false)}, {prop: "translateBranchingStmt", name: "translateBranchingStmt", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([sliceType$6, ptrType$44, $Bool, funcType$1, ptrType$26, $Bool], [], false)}, {prop: "translateLoopingStmt", name: "translateLoopingStmt", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([funcType$2, ptrType$27, funcType, funcType, ptrType$26, $Bool], [], false)}, {prop: "translateAssign", name: "translateAssign", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ast.Expr, ast.Expr, $Bool], [$String], false)}, {prop: "translateResults", name: "translateResults", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([sliceType$3], [$String], false)}, {prop: "labelCase", name: "labelCase", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$26], [$Int], false)}, {prop: "initArgs", name: "initArgs", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([types.Type], [$String], false)}, {prop: "nestedFunctionContext", name: "nestedFunctionContext", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$57, typeparams.Instance], [ptrType], false)}, {prop: "namedFuncContext", name: "namedFuncContext", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([typeparams.Instance], [ptrType], false)}, {prop: "literalFuncContext", name: "literalFuncContext", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$69], [ptrType], false)}, {prop: "translateTopLevelFunction", name: "translateTopLevelFunction", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$79], [sliceType$2], false)}, {prop: "translateStandaloneFunction", name: "translateStandaloneFunction", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$79], [sliceType$2], false)}, {prop: "translateMethod", name: "translateMethod", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$79], [sliceType$2], false)}, {prop: "unimplementedFunction", name: "unimplementedFunction", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$21], [$String], false)}, {prop: "translateFunctionBody", name: "translateFunctionBody", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$82, ptrType$12, ptrType$27], [$String], false)}, {prop: "translateExpr", name: "translateExpr", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ast.Expr], [ptrType$51], false)}, {prop: "translateCall", name: "translateCall", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$74, ptrType$2, ptrType$51], [ptrType$51], false)}, {prop: "delegatedCall", name: "delegatedCall", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$74], [ptrType$51, ptrType$51], false)}, {prop: "makeReceiver", name: "makeReceiver", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$23], [ptrType$51], false)}, {prop: "translateBuiltin", name: "translateBuiltin", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([$String, ptrType$2, sliceType$3, $Bool], [ptrType$51], false)}, {prop: "identifierConstant", name: "identifierConstant", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ast.Expr], [$String, $Bool], false)}, {prop: "translateExprSlice", name: "translateExprSlice", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([sliceType$3, types.Type], [sliceType$1], false)}, {prop: "packageAllowsKindTypeConversion", name: "packageAllowsKindTypeConversion", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([], [$Bool], false)}, {prop: "translateConversion", name: "translateConversion", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ast.Expr, types.Type], [ptrType$51], false)}, {prop: "translateImplicitConversionWithCloning", name: "translateImplicitConversionWithCloning", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ast.Expr, types.Type], [ptrType$51], false)}, {prop: "translateImplicitConversion", name: "translateImplicitConversion", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ast.Expr, types.Type], [ptrType$51], false)}, {prop: "translateConversionToSlice", name: "translateConversionToSlice", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ast.Expr, types.Type], [ptrType$51], false)}, {prop: "loadStruct", name: "loadStruct", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([$String, $String, ptrType$4], [$String], false)}, {prop: "fixNumber", name: "fixNumber", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$51, ptrType$6], [ptrType$51], false)}, {prop: "internalize", name: "internalize", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$51, types.Type], [ptrType$51], false)}, {prop: "formatExpr", name: "formatExpr", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([$String, sliceType], [ptrType$51], true)}, {prop: "formatParenExpr", name: "formatParenExpr", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([$String, sliceType], [ptrType$51], true)}, {prop: "formatExprInternal", name: "formatExprInternal", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([$String, sliceType, $Bool], [ptrType$51], false)}, {prop: "topLevelObjects", name: "topLevelObjects", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$83], [sliceType$8, sliceType$18, typesutil.TypeNames], false)}, {prop: "importDecls", name: "importDecls", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([], [sliceType$1, sliceType$12], false)}, {prop: "newImportDecl", name: "newImportDecl", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$47], [ptrType$67], false)}, {prop: "importInitializer", name: "importInitializer", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([$String], [ast.Stmt], false)}, {prop: "varDecls", name: "varDecls", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([sliceType$8], [sliceType$12], false)}, {prop: "newVarDecl", name: "newVarDecl", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$80], [ptrType$67], false)}, {prop: "funcDecls", name: "funcDecls", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([sliceType$18], [sliceType$12, $error], false)}, {prop: "newFuncDecl", name: "newFuncDecl", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$79, typeparams.Instance], [ptrType$67], false)}, {prop: "callInitFunc", name: "callInitFunc", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$21], [ast.Stmt], false)}, {prop: "callMainFunc", name: "callMainFunc", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$21], [ast.Stmt], false)}, {prop: "namedTypeDecls", name: "namedTypeDecls", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([typesutil.TypeNames], [sliceType$12, $error], false)}, {prop: "newNamedTypeVarDecl", name: "newNamedTypeVarDecl", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$18], [ptrType$67], false)}, {prop: "newNamedTypeInstDecl", name: "newNamedTypeInstDecl", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([typeparams.Instance], [ptrType$67, $error], false)}, {prop: "structConstructor", name: "structConstructor", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$4], [$String], false)}, {prop: "methodListEntry", name: "methodListEntry", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([ptrType$21], [$String, $Bool], false)}, {prop: "anonTypeDecls", name: "anonTypeDecls", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([sliceType$11], [sliceType$12], false)}]; ptrType$51.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "StringWithParens", name: "StringWithParens", pkg: "", typ: $funcType([], [$String], false)}]; Decl.methods = [{prop: "minify", name: "minify", pkg: "github.com/gopherjs/gopherjs/compiler", typ: $funcType([], [Decl], false)}]; ptrType$67.methods = [{prop: "Dce", name: "Dce", pkg: "", typ: $funcType([], [ptrType$62], false)}]; Archive.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; FatalError.init("github.com/gopherjs/gopherjs/compiler", [{prop: "cause", name: "cause", embedded: false, exported: false, typ: $emptyInterface, tag: ""}, {prop: "stack", name: "stack", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "clues", name: "clues", embedded: false, exported: false, typ: strings.Builder, tag: ""}]); pkgContext.init("github.com/gopherjs/gopherjs/compiler", [{prop: "Info", name: "Info", embedded: true, exported: true, typ: ptrType$61, tag: ""}, {prop: "Collector", name: "Collector", embedded: true, exported: true, typ: dce.Collector, tag: ""}, {prop: "additionalSelections", name: "additionalSelections", embedded: false, exported: false, typ: mapType, tag: ""}, {prop: "typesCtx", name: "typesCtx", embedded: false, exported: false, typ: ptrType$63, tag: ""}, {prop: "typeNames", name: "typeNames", embedded: false, exported: false, typ: typesutil.TypeNames, tag: ""}, {prop: "pkgVars", name: "pkgVars", embedded: false, exported: false, typ: mapType$1, tag: ""}, {prop: "varPtrNames", name: "varPtrNames", embedded: false, exported: false, typ: mapType$2, tag: ""}, {prop: "anonTypes", name: "anonTypes", embedded: false, exported: false, typ: sliceType$11, tag: ""}, {prop: "anonTypeMap", name: "anonTypeMap", embedded: false, exported: false, typ: typeutil.Map, tag: ""}, {prop: "escapingVars", name: "escapingVars", embedded: false, exported: false, typ: mapType$3, tag: ""}, {prop: "indentation", name: "indentation", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "minify", name: "minify", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "fileSet", name: "fileSet", embedded: false, exported: false, typ: ptrType$5, tag: ""}, {prop: "errList", name: "errList", embedded: false, exported: false, typ: errlist.ErrorList, tag: ""}, {prop: "instanceSet", name: "instanceSet", embedded: false, exported: false, typ: ptrType$65, tag: ""}]); - funcContext.init("github.com/gopherjs/gopherjs/compiler", [{prop: "FuncInfo", name: "FuncInfo", embedded: true, exported: true, typ: ptrType$57, tag: ""}, {prop: "instance", name: "instance", embedded: false, exported: false, typ: typeparams.Instance, tag: ""}, {prop: "funcRef", name: "funcRef", embedded: false, exported: false, typ: sourcemapx.Identifier, tag: ""}, {prop: "pkgCtx", name: "pkgCtx", embedded: false, exported: false, typ: ptrType$58, tag: ""}, {prop: "parent", name: "parent", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "sig", name: "sig", embedded: false, exported: false, typ: ptrType$59, tag: ""}, {prop: "allVars", name: "allVars", embedded: false, exported: false, typ: mapType$4, tag: ""}, {prop: "localVars", name: "localVars", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "resultNames", name: "resultNames", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "flowDatas", name: "flowDatas", embedded: false, exported: false, typ: mapType$5, tag: ""}, {prop: "caseCounter", name: "caseCounter", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "labelCases", name: "labelCases", embedded: false, exported: false, typ: mapType$6, tag: ""}, {prop: "output", name: "output", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "delayedOutput", name: "delayedOutput", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "posAvailable", name: "posAvailable", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "typeResolver", name: "typeResolver", embedded: false, exported: false, typ: ptrType$60, tag: ""}, {prop: "objectNames", name: "objectNames", embedded: false, exported: false, typ: mapType$7, tag: ""}, {prop: "funcLitCounter", name: "funcLitCounter", embedded: false, exported: false, typ: $Int, tag: ""}]); + funcContext.init("github.com/gopherjs/gopherjs/compiler", [{prop: "FuncInfo", name: "FuncInfo", embedded: true, exported: true, typ: ptrType$57, tag: ""}, {prop: "instance", name: "instance", embedded: false, exported: false, typ: typeparams.Instance, tag: ""}, {prop: "funcRef", name: "funcRef", embedded: false, exported: false, typ: sourcemapx.Identifier, tag: ""}, {prop: "pkgCtx", name: "pkgCtx", embedded: false, exported: false, typ: ptrType$58, tag: ""}, {prop: "parent", name: "parent", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "sig", name: "sig", embedded: false, exported: false, typ: ptrType$59, tag: ""}, {prop: "allVars", name: "allVars", embedded: false, exported: false, typ: mapType$4, tag: ""}, {prop: "localVars", name: "localVars", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "varPtrNames", name: "varPtrNames", embedded: false, exported: false, typ: mapType$2, tag: ""}, {prop: "resultNames", name: "resultNames", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "flowDatas", name: "flowDatas", embedded: false, exported: false, typ: mapType$5, tag: ""}, {prop: "caseCounter", name: "caseCounter", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "labelCases", name: "labelCases", embedded: false, exported: false, typ: mapType$6, tag: ""}, {prop: "output", name: "output", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "delayedOutput", name: "delayedOutput", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "posAvailable", name: "posAvailable", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "typeResolver", name: "typeResolver", embedded: false, exported: false, typ: ptrType$60, tag: ""}, {prop: "objectNames", name: "objectNames", embedded: false, exported: false, typ: mapType$7, tag: ""}, {prop: "funcLitCounter", name: "funcLitCounter", embedded: false, exported: false, typ: $Int, tag: ""}]); flowData.init("github.com/gopherjs/gopherjs/compiler", [{prop: "postStmt", name: "postStmt", embedded: false, exported: false, typ: funcType, tag: ""}, {prop: "beginCase", name: "beginCase", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "endCase", name: "endCase", embedded: false, exported: false, typ: $Int, tag: ""}]); expression.init("github.com/gopherjs/gopherjs/compiler", [{prop: "str", name: "str", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "parens", name: "parens", embedded: false, exported: false, typ: $Bool, tag: ""}]); Decl.init("", [{prop: "FullName", name: "FullName", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "LinkingName", name: "LinkingName", embedded: false, exported: true, typ: symbol.Name, tag: ""}, {prop: "Vars", name: "Vars", embedded: false, exported: true, typ: sliceType$1, tag: ""}, {prop: "RefExpr", name: "RefExpr", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "NamedRecvType", name: "NamedRecvType", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "ImportCode", name: "ImportCode", embedded: false, exported: true, typ: sliceType$2, tag: ""}, {prop: "TypeDeclCode", name: "TypeDeclCode", embedded: false, exported: true, typ: sliceType$2, tag: ""}, {prop: "ExportTypeCode", name: "ExportTypeCode", embedded: false, exported: true, typ: sliceType$2, tag: ""}, {prop: "AnonTypeDeclCode", name: "AnonTypeDeclCode", embedded: false, exported: true, typ: sliceType$2, tag: ""}, {prop: "FuncDeclCode", name: "FuncDeclCode", embedded: false, exported: true, typ: sliceType$2, tag: ""}, {prop: "ExportFuncCode", name: "ExportFuncCode", embedded: false, exported: true, typ: sliceType$2, tag: ""}, {prop: "MethodListCode", name: "MethodListCode", embedded: false, exported: true, typ: sliceType$2, tag: ""}, {prop: "TypeInitCode", name: "TypeInitCode", embedded: false, exported: true, typ: sliceType$2, tag: ""}, {prop: "InitCode", name: "InitCode", embedded: false, exported: true, typ: sliceType$2, tag: ""}, {prop: "DCEInfo", name: "DCEInfo", embedded: false, exported: true, typ: dce.Info, tag: ""}, {prop: "Blocking", name: "Blocking", embedded: false, exported: true, typ: $Bool, tag: ""}]); @@ -344568,14 +347256,15 @@ $packages["github.com/gopherjs/gopherjs/compiler"] = (function() { $r = os.$init(); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = exec.$init(); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = filepath.$init(); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = regexp.$init(); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = debug.$init(); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = sort.$init(); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = strconv.$init(); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = strings.$init(); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = template.$init(); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = unicode.$init(); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r = types.Universe.Lookup("nil"); /* */ $s = 35; case 35: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = reflect.$init(); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = regexp.$init(); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = debug.$init(); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sort.$init(); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = template.$init(); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unicode.$init(); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r = types.Universe.Lookup("nil"); /* */ $s = 36; case 36: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } nilObj = _r; sizes32 = new types.StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)); reservedKeywords = new $global.Map(); @@ -344923,7 +347612,7 @@ $packages["github.com/grantnelson-wf/gopherjs.github.io/playground/internal/cmd/ pc = this; return (function packageCache·alreadyLoaded·func1(srcs) { var srcs; - sources.Sources.copy(srcs, cached); + sources.Sources.copy((srcs === ptrType$5.nil && $throwNilPointerError(), srcs), (cached === ptrType$5.nil && $throwNilPointerError(), cached)); return ["cached", $ifaceNil]; }); }; @@ -344943,7 +347632,7 @@ $packages["github.com/grantnelson-wf/gopherjs.github.io/playground/internal/cmd/ /* */ if (found) { $s = 3; continue; } /* */ $s = 4; continue; /* if (found) { */ case 3: - sources.Sources.copy(srcs, cached); + sources.Sources.copy((srcs === ptrType$5.nil && $throwNilPointerError(), srcs), (cached === ptrType$5.nil && $throwNilPointerError(), cached)); $24r = ["cached", $ifaceNil]; $s = 5; case 5: return $24r; /* } */ case 4: @@ -344974,7 +347663,7 @@ $packages["github.com/grantnelson-wf/gopherjs.github.io/playground/internal/cmd/ $s = 5; case 5: return $24r; /* } */ case 4: _key = importPath; (pc.cached || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: fetched }); - sources.Sources.copy(srcs, fetched); + sources.Sources.copy((srcs === ptrType$5.nil && $throwNilPointerError(), srcs), (fetched === ptrType$5.nil && $throwNilPointerError(), fetched)); $24r$1 = ["fetched", $ifaceNil]; $s = 6; case 6: return $24r$1; /* */ } return; } } catch(err) { $err = err; $s = -1; return ["", $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: packageCache·startLoading·func1, $c: true, $r, $24r, $24r$1, _arg, _arg$1, _arg$2, _key, _r, _tuple, err, fetched, srcs, $s, $deferred};return $f; } } @@ -345103,7 +347792,7 @@ $packages["github.com/grantnelson-wf/gopherjs.github.io/playground/internal/cmd/ $ptrType(compilerImp).prototype.Version = function Version() { var r; r = this; - return "1.20.1+go1.20.14"; + return "1.21.0+go1.21.13"; }; $ptrType(compilerImp).prototype.SetVerbose = function SetVerbose$1(verbose) { var r, verbose; @@ -345414,7 +348103,7 @@ $packages["github.com/grantnelson-wf/gopherjs.github.io/playground/internal/cmd/ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: r = this; jsCode = bytes.NewBuffer(sliceType$4.nil); - _r = compiler.WriteProgramCode(allPkgs, compiler.DefaultFilter(jsCode), runtime.Version()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = compiler.WriteProgramCode(allPkgs, compiler.DefaultFilter(jsCode), runtime.Version(), "0"); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _r; $s = -1; return jsCode.String(); /* */ } return; } var $f = {$blk: write, $c: true, $r, _r, allPkgs, jsCode, r, $s};return $f; diff --git a/playground/go.mod b/playground/go.mod index 82c28ce0..83a6ae7c 100644 --- a/playground/go.mod +++ b/playground/go.mod @@ -1,11 +1,11 @@ module github.com/gopherjs/gopherjs.github.io/playground -go 1.20 +go 1.21 require ( - github.com/google/go-cmp v0.5.8 - github.com/gopherjs/gopherjs v1.20.1 - golang.org/x/tools v0.16.0 + github.com/google/go-cmp v0.6.0 + github.com/gopherjs/gopherjs v1.21.0 + golang.org/x/tools v0.24.0 honnef.co/go/js/xhr v0.0.0-20150307031022-00e3346113ae ) diff --git a/playground/go.sum b/playground/go.sum index 1e6399cf..d6ff6c83 100644 --- a/playground/go.sum +++ b/playground/go.sum @@ -1,10 +1,9 @@ -github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= -github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/gopherjs/gopherjs v1.20.1 h1:22uLWFvVcxhJ+j3dJ99NNfwGyHynxCmjhYsrcwqbY60= -github.com/gopherjs/gopherjs v1.20.1/go.mod h1:h+FTmmLgbXMmmtuZFp9bUqXciN429Wx0sJEJuMnpyfM= -golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= -golang.org/x/tools v0.16.0 h1:GO788SKMRunPIBCXiQyo2AaexLstOrVhuAL5YwsckQM= -golang.org/x/tools v0.16.0/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/gopherjs/gopherjs v1.21.0 h1:5HEGrz+XhpCchubMGzuyLuGoCTlL/yCT7sGsT5Se/dw= +github.com/gopherjs/gopherjs v1.21.0/go.mod h1:R2HIOen3IzYSzvmvkeD8WOfiLN9wueR/T5Y+6z326Ck= +golang.org/x/tools v0.24.0 h1:J1shsA93PJUEVaUSaay7UXAyE8aimq3GW0pjlolpa24= +golang.org/x/tools v0.24.0/go.mod h1:YhNqVBIfWHdzvTLs0d8LCuMhkKUgSUKldakyV7W/WDQ= honnef.co/go/js/util v0.0.0-20150216223935-96b8dd9d1621 h1:QBApQyt1KyR3SvDWU8sHcIXeWTSCUamO7xQopvwuLWI= honnef.co/go/js/util v0.0.0-20150216223935-96b8dd9d1621/go.mod h1:WrAIh8rWfzvMdLVgQ7vpu7aYbDAZ3rHLxydzv2VkL/w= honnef.co/go/js/xhr v0.0.0-20150307031022-00e3346113ae h1:2dIKMawnBWvHzZrS8STyu/KdhYIOpnKQpp1WZm+K7TE= diff --git a/playground/internal/cmd/compile/go.mod b/playground/internal/cmd/compile/go.mod index b1443eac..666cab59 100644 --- a/playground/internal/cmd/compile/go.mod +++ b/playground/internal/cmd/compile/go.mod @@ -1,6 +1,6 @@ module github.com/grantnelson-wf/gopherjs.github.io/playground/internal/cmd/compile -go 1.20 +go 1.21 require ( github.com/gopherjs/gopherjs v1.20.1 diff --git a/playground/internal/cmd/compile/internal/compiler.go b/playground/internal/cmd/compile/internal/compiler.go index d667fd69..0831e64a 100644 --- a/playground/internal/cmd/compile/internal/compiler.go +++ b/playground/internal/cmd/compile/internal/compiler.go @@ -245,6 +245,7 @@ func (r *compilerImp) prepareAndCompilePackages(rootPath string, allSources map[ // The archives must be ordered by dependency. func (r *compilerImp) write(allPkgs []*compiler.Archive) string { jsCode := bytes.NewBuffer(nil) - compiler.WriteProgramCode(allPkgs, compiler.DefaultFilter(jsCode), runtime.Version()) + const testBinary = `0` + compiler.WriteProgramCode(allPkgs, compiler.DefaultFilter(jsCode), runtime.Version(), testBinary) return jsCode.String() } diff --git a/playground/internal/cmd/precompile/go.mod b/playground/internal/cmd/precompile/go.mod index 72e0a8ae..62736b55 100644 --- a/playground/internal/cmd/precompile/go.mod +++ b/playground/internal/cmd/precompile/go.mod @@ -1,6 +1,6 @@ module github.com/grantnelson-wf/gopherjs.github.io/playground/internal/cmd/precompile -go 1.20 +go 1.21 require ( github.com/gopherjs/gopherjs v1.20.1 diff --git a/playground/pkg/archive/tar.zip b/playground/pkg/archive/tar.zip index 3ab43dcf..4c24dadb 100644 Binary files a/playground/pkg/archive/tar.zip and b/playground/pkg/archive/tar.zip differ diff --git a/playground/pkg/archive/zip.zip b/playground/pkg/archive/zip.zip index 1adc5d5e..5f7a9f72 100644 Binary files a/playground/pkg/archive/zip.zip and b/playground/pkg/archive/zip.zip differ diff --git a/playground/pkg/bufio.zip b/playground/pkg/bufio.zip index 55f4cf9f..24fc0e5f 100644 Binary files a/playground/pkg/bufio.zip and b/playground/pkg/bufio.zip differ diff --git a/playground/pkg/bytes.zip b/playground/pkg/bytes.zip index c919a3a8..a0e32835 100644 Binary files a/playground/pkg/bytes.zip and b/playground/pkg/bytes.zip differ diff --git a/playground/pkg/cmp.zip b/playground/pkg/cmp.zip new file mode 100644 index 00000000..e6567ef2 Binary files /dev/null and b/playground/pkg/cmp.zip differ diff --git a/playground/pkg/compress/bzip2.zip b/playground/pkg/compress/bzip2.zip index 5eee1b98..d9f45434 100644 Binary files a/playground/pkg/compress/bzip2.zip and b/playground/pkg/compress/bzip2.zip differ diff --git a/playground/pkg/compress/flate.zip b/playground/pkg/compress/flate.zip index 35beaffb..048f346b 100644 Binary files a/playground/pkg/compress/flate.zip and b/playground/pkg/compress/flate.zip differ diff --git a/playground/pkg/compress/gzip.zip b/playground/pkg/compress/gzip.zip index ad0d2582..2cb087da 100644 Binary files a/playground/pkg/compress/gzip.zip and b/playground/pkg/compress/gzip.zip differ diff --git a/playground/pkg/compress/lzw.zip b/playground/pkg/compress/lzw.zip index bcc38021..3917dddb 100644 Binary files a/playground/pkg/compress/lzw.zip and b/playground/pkg/compress/lzw.zip differ diff --git a/playground/pkg/compress/zlib.zip b/playground/pkg/compress/zlib.zip index 29ff7a0d..51506547 100644 Binary files a/playground/pkg/compress/zlib.zip and b/playground/pkg/compress/zlib.zip differ diff --git a/playground/pkg/container/heap.zip b/playground/pkg/container/heap.zip index ae77c2f2..e15791fb 100644 Binary files a/playground/pkg/container/heap.zip and b/playground/pkg/container/heap.zip differ diff --git a/playground/pkg/container/list.zip b/playground/pkg/container/list.zip index ec77d2eb..857aeda0 100644 Binary files a/playground/pkg/container/list.zip and b/playground/pkg/container/list.zip differ diff --git a/playground/pkg/container/ring.zip b/playground/pkg/container/ring.zip index 1d06e70a..1c58f75e 100644 Binary files a/playground/pkg/container/ring.zip and b/playground/pkg/container/ring.zip differ diff --git a/playground/pkg/context.zip b/playground/pkg/context.zip index 151fdc13..ae281570 100644 Binary files a/playground/pkg/context.zip and b/playground/pkg/context.zip differ diff --git a/playground/pkg/crypto.zip b/playground/pkg/crypto.zip index f84e1377..945450e3 100644 Binary files a/playground/pkg/crypto.zip and b/playground/pkg/crypto.zip differ diff --git a/playground/pkg/crypto/aes.zip b/playground/pkg/crypto/aes.zip index 706a40d3..1a907ba1 100644 Binary files a/playground/pkg/crypto/aes.zip and b/playground/pkg/crypto/aes.zip differ diff --git a/playground/pkg/crypto/cipher.zip b/playground/pkg/crypto/cipher.zip index 5f227213..b6654d82 100644 Binary files a/playground/pkg/crypto/cipher.zip and b/playground/pkg/crypto/cipher.zip differ diff --git a/playground/pkg/crypto/des.zip b/playground/pkg/crypto/des.zip index 9ee10ce3..961cdfea 100644 Binary files a/playground/pkg/crypto/des.zip and b/playground/pkg/crypto/des.zip differ diff --git a/playground/pkg/crypto/dsa.zip b/playground/pkg/crypto/dsa.zip index 0b1a8971..9712b4d5 100644 Binary files a/playground/pkg/crypto/dsa.zip and b/playground/pkg/crypto/dsa.zip differ diff --git a/playground/pkg/crypto/ecdh.zip b/playground/pkg/crypto/ecdh.zip index 03f2dce2..6634aad1 100644 Binary files a/playground/pkg/crypto/ecdh.zip and b/playground/pkg/crypto/ecdh.zip differ diff --git a/playground/pkg/crypto/ecdsa.zip b/playground/pkg/crypto/ecdsa.zip index f2381c3a..d18608c8 100644 Binary files a/playground/pkg/crypto/ecdsa.zip and b/playground/pkg/crypto/ecdsa.zip differ diff --git a/playground/pkg/crypto/ed25519.zip b/playground/pkg/crypto/ed25519.zip index c43b8b77..839aadaa 100644 Binary files a/playground/pkg/crypto/ed25519.zip and b/playground/pkg/crypto/ed25519.zip differ diff --git a/playground/pkg/crypto/elliptic.zip b/playground/pkg/crypto/elliptic.zip index 388f7c37..28cc067e 100644 Binary files a/playground/pkg/crypto/elliptic.zip and b/playground/pkg/crypto/elliptic.zip differ diff --git a/playground/pkg/crypto/hmac.zip b/playground/pkg/crypto/hmac.zip index 60e8e595..acb5d554 100644 Binary files a/playground/pkg/crypto/hmac.zip and b/playground/pkg/crypto/hmac.zip differ diff --git a/playground/pkg/crypto/internal/alias.zip b/playground/pkg/crypto/internal/alias.zip index efb2fb8d..bf13f8b5 100644 Binary files a/playground/pkg/crypto/internal/alias.zip and b/playground/pkg/crypto/internal/alias.zip differ diff --git a/playground/pkg/crypto/internal/bigmod.zip b/playground/pkg/crypto/internal/bigmod.zip index ffb6c78d..1ea5091e 100644 Binary files a/playground/pkg/crypto/internal/bigmod.zip and b/playground/pkg/crypto/internal/bigmod.zip differ diff --git a/playground/pkg/crypto/internal/boring.zip b/playground/pkg/crypto/internal/boring.zip index 501cae99..e20c1fcd 100644 Binary files a/playground/pkg/crypto/internal/boring.zip and b/playground/pkg/crypto/internal/boring.zip differ diff --git a/playground/pkg/crypto/internal/boring/bbig.zip b/playground/pkg/crypto/internal/boring/bbig.zip index be51db7a..040d7239 100644 Binary files a/playground/pkg/crypto/internal/boring/bbig.zip and b/playground/pkg/crypto/internal/boring/bbig.zip differ diff --git a/playground/pkg/crypto/internal/boring/sig.zip b/playground/pkg/crypto/internal/boring/sig.zip index 43060964..37737752 100644 Binary files a/playground/pkg/crypto/internal/boring/sig.zip and b/playground/pkg/crypto/internal/boring/sig.zip differ diff --git a/playground/pkg/crypto/internal/edwards25519.zip b/playground/pkg/crypto/internal/edwards25519.zip index dd82f6e9..5e12f9f7 100644 Binary files a/playground/pkg/crypto/internal/edwards25519.zip and b/playground/pkg/crypto/internal/edwards25519.zip differ diff --git a/playground/pkg/crypto/internal/edwards25519/field.zip b/playground/pkg/crypto/internal/edwards25519/field.zip index 771809fd..34f9e52c 100644 Binary files a/playground/pkg/crypto/internal/edwards25519/field.zip and b/playground/pkg/crypto/internal/edwards25519/field.zip differ diff --git a/playground/pkg/crypto/internal/nistec.zip b/playground/pkg/crypto/internal/nistec.zip index 1b1cf854..4eb88ecd 100644 Binary files a/playground/pkg/crypto/internal/nistec.zip and b/playground/pkg/crypto/internal/nistec.zip differ diff --git a/playground/pkg/crypto/internal/nistec/fiat.zip b/playground/pkg/crypto/internal/nistec/fiat.zip index d15732cf..92d5f34f 100644 Binary files a/playground/pkg/crypto/internal/nistec/fiat.zip and b/playground/pkg/crypto/internal/nistec/fiat.zip differ diff --git a/playground/pkg/crypto/internal/randutil.zip b/playground/pkg/crypto/internal/randutil.zip index fd823bda..8108d729 100644 Binary files a/playground/pkg/crypto/internal/randutil.zip and b/playground/pkg/crypto/internal/randutil.zip differ diff --git a/playground/pkg/crypto/md5.zip b/playground/pkg/crypto/md5.zip index 6b32d1d1..52c48ab0 100644 Binary files a/playground/pkg/crypto/md5.zip and b/playground/pkg/crypto/md5.zip differ diff --git a/playground/pkg/crypto/rand.zip b/playground/pkg/crypto/rand.zip index a14d9232..8d7d115c 100644 Binary files a/playground/pkg/crypto/rand.zip and b/playground/pkg/crypto/rand.zip differ diff --git a/playground/pkg/crypto/rc4.zip b/playground/pkg/crypto/rc4.zip index 387cb752..e0e59d0b 100644 Binary files a/playground/pkg/crypto/rc4.zip and b/playground/pkg/crypto/rc4.zip differ diff --git a/playground/pkg/crypto/rsa.zip b/playground/pkg/crypto/rsa.zip index 1c7394a7..f9a5ad1c 100644 Binary files a/playground/pkg/crypto/rsa.zip and b/playground/pkg/crypto/rsa.zip differ diff --git a/playground/pkg/crypto/sha1.zip b/playground/pkg/crypto/sha1.zip index 7f28536b..d9dce28e 100644 Binary files a/playground/pkg/crypto/sha1.zip and b/playground/pkg/crypto/sha1.zip differ diff --git a/playground/pkg/crypto/sha256.zip b/playground/pkg/crypto/sha256.zip index b908a81c..9d760c91 100644 Binary files a/playground/pkg/crypto/sha256.zip and b/playground/pkg/crypto/sha256.zip differ diff --git a/playground/pkg/crypto/sha512.zip b/playground/pkg/crypto/sha512.zip index 5ca94c2c..f9278f4e 100644 Binary files a/playground/pkg/crypto/sha512.zip and b/playground/pkg/crypto/sha512.zip differ diff --git a/playground/pkg/crypto/subtle.zip b/playground/pkg/crypto/subtle.zip index 6b06235f..c6adb088 100644 Binary files a/playground/pkg/crypto/subtle.zip and b/playground/pkg/crypto/subtle.zip differ diff --git a/playground/pkg/crypto/tls.zip b/playground/pkg/crypto/tls.zip index 61c4a566..9451d3d9 100644 Binary files a/playground/pkg/crypto/tls.zip and b/playground/pkg/crypto/tls.zip differ diff --git a/playground/pkg/crypto/x509.zip b/playground/pkg/crypto/x509.zip index 3ee04084..3805e00a 100644 Binary files a/playground/pkg/crypto/x509.zip and b/playground/pkg/crypto/x509.zip differ diff --git a/playground/pkg/crypto/x509/pkix.zip b/playground/pkg/crypto/x509/pkix.zip index ec51399c..cad3d9eb 100644 Binary files a/playground/pkg/crypto/x509/pkix.zip and b/playground/pkg/crypto/x509/pkix.zip differ diff --git a/playground/pkg/database/sql.zip b/playground/pkg/database/sql.zip index a9d3a597..1193fafc 100644 Binary files a/playground/pkg/database/sql.zip and b/playground/pkg/database/sql.zip differ diff --git a/playground/pkg/database/sql/driver.zip b/playground/pkg/database/sql/driver.zip index 63aaa74a..f5f3dd06 100644 Binary files a/playground/pkg/database/sql/driver.zip and b/playground/pkg/database/sql/driver.zip differ diff --git a/playground/pkg/debug/buildinfo.zip b/playground/pkg/debug/buildinfo.zip index 2c525b88..2ccce62c 100644 Binary files a/playground/pkg/debug/buildinfo.zip and b/playground/pkg/debug/buildinfo.zip differ diff --git a/playground/pkg/debug/dwarf.zip b/playground/pkg/debug/dwarf.zip index 33bd3949..aa3cbd25 100644 Binary files a/playground/pkg/debug/dwarf.zip and b/playground/pkg/debug/dwarf.zip differ diff --git a/playground/pkg/debug/elf.zip b/playground/pkg/debug/elf.zip index cc739d39..aafaf69c 100644 Binary files a/playground/pkg/debug/elf.zip and b/playground/pkg/debug/elf.zip differ diff --git a/playground/pkg/debug/gosym.zip b/playground/pkg/debug/gosym.zip index 49836b26..333cce1c 100644 Binary files a/playground/pkg/debug/gosym.zip and b/playground/pkg/debug/gosym.zip differ diff --git a/playground/pkg/debug/macho.zip b/playground/pkg/debug/macho.zip index 7d7044c5..5345395c 100644 Binary files a/playground/pkg/debug/macho.zip and b/playground/pkg/debug/macho.zip differ diff --git a/playground/pkg/debug/pe.zip b/playground/pkg/debug/pe.zip index 56ce8111..c9c72db2 100644 Binary files a/playground/pkg/debug/pe.zip and b/playground/pkg/debug/pe.zip differ diff --git a/playground/pkg/debug/plan9obj.zip b/playground/pkg/debug/plan9obj.zip index fb4213a8..490f6ba4 100644 Binary files a/playground/pkg/debug/plan9obj.zip and b/playground/pkg/debug/plan9obj.zip differ diff --git a/playground/pkg/embed.zip b/playground/pkg/embed.zip index cc4e59f1..ab567381 100644 Binary files a/playground/pkg/embed.zip and b/playground/pkg/embed.zip differ diff --git a/playground/pkg/encoding.zip b/playground/pkg/encoding.zip index dfec7195..c7817992 100644 Binary files a/playground/pkg/encoding.zip and b/playground/pkg/encoding.zip differ diff --git a/playground/pkg/encoding/ascii85.zip b/playground/pkg/encoding/ascii85.zip index f282a454..cbe1a460 100644 Binary files a/playground/pkg/encoding/ascii85.zip and b/playground/pkg/encoding/ascii85.zip differ diff --git a/playground/pkg/encoding/asn1.zip b/playground/pkg/encoding/asn1.zip index febdc83c..c65bde3f 100644 Binary files a/playground/pkg/encoding/asn1.zip and b/playground/pkg/encoding/asn1.zip differ diff --git a/playground/pkg/encoding/base32.zip b/playground/pkg/encoding/base32.zip index 9f92779a..74975e14 100644 Binary files a/playground/pkg/encoding/base32.zip and b/playground/pkg/encoding/base32.zip differ diff --git a/playground/pkg/encoding/base64.zip b/playground/pkg/encoding/base64.zip index f368596c..2254158a 100644 Binary files a/playground/pkg/encoding/base64.zip and b/playground/pkg/encoding/base64.zip differ diff --git a/playground/pkg/encoding/binary.zip b/playground/pkg/encoding/binary.zip index 9a51b8a1..0897d0d4 100644 Binary files a/playground/pkg/encoding/binary.zip and b/playground/pkg/encoding/binary.zip differ diff --git a/playground/pkg/encoding/csv.zip b/playground/pkg/encoding/csv.zip index ad853dfa..449b6e2f 100644 Binary files a/playground/pkg/encoding/csv.zip and b/playground/pkg/encoding/csv.zip differ diff --git a/playground/pkg/encoding/gob.zip b/playground/pkg/encoding/gob.zip index db07c23f..24183b08 100644 Binary files a/playground/pkg/encoding/gob.zip and b/playground/pkg/encoding/gob.zip differ diff --git a/playground/pkg/encoding/hex.zip b/playground/pkg/encoding/hex.zip index 2f682e57..a3928fa2 100644 Binary files a/playground/pkg/encoding/hex.zip and b/playground/pkg/encoding/hex.zip differ diff --git a/playground/pkg/encoding/json.zip b/playground/pkg/encoding/json.zip index 4eafe462..c28e92ac 100644 Binary files a/playground/pkg/encoding/json.zip and b/playground/pkg/encoding/json.zip differ diff --git a/playground/pkg/encoding/pem.zip b/playground/pkg/encoding/pem.zip index 8d96ef59..137d0fc6 100644 Binary files a/playground/pkg/encoding/pem.zip and b/playground/pkg/encoding/pem.zip differ diff --git a/playground/pkg/encoding/xml.zip b/playground/pkg/encoding/xml.zip index 8ee79801..0810372f 100644 Binary files a/playground/pkg/encoding/xml.zip and b/playground/pkg/encoding/xml.zip differ diff --git a/playground/pkg/errors.zip b/playground/pkg/errors.zip index 6b0e707f..217103dd 100644 Binary files a/playground/pkg/errors.zip and b/playground/pkg/errors.zip differ diff --git a/playground/pkg/expvar.zip b/playground/pkg/expvar.zip index fd21aafd..7ffccb6e 100644 Binary files a/playground/pkg/expvar.zip and b/playground/pkg/expvar.zip differ diff --git a/playground/pkg/flag.zip b/playground/pkg/flag.zip index 4a7b8755..9cdb9d5e 100644 Binary files a/playground/pkg/flag.zip and b/playground/pkg/flag.zip differ diff --git a/playground/pkg/fmt.zip b/playground/pkg/fmt.zip index d43a0c98..c7edb2dc 100644 Binary files a/playground/pkg/fmt.zip and b/playground/pkg/fmt.zip differ diff --git a/playground/pkg/github.com/gopherjs/gopherjs/js.zip b/playground/pkg/github.com/gopherjs/gopherjs/js.zip index 9adb3d95..77a0c644 100644 Binary files a/playground/pkg/github.com/gopherjs/gopherjs/js.zip and b/playground/pkg/github.com/gopherjs/gopherjs/js.zip differ diff --git a/playground/pkg/github.com/gopherjs/gopherjs/nosync.zip b/playground/pkg/github.com/gopherjs/gopherjs/nosync.zip index 00258091..7a03488b 100644 Binary files a/playground/pkg/github.com/gopherjs/gopherjs/nosync.zip and b/playground/pkg/github.com/gopherjs/gopherjs/nosync.zip differ diff --git a/playground/pkg/go/ast.zip b/playground/pkg/go/ast.zip index 5849ca4c..da8755c0 100644 Binary files a/playground/pkg/go/ast.zip and b/playground/pkg/go/ast.zip differ diff --git a/playground/pkg/go/build.zip b/playground/pkg/go/build.zip index 790f28c6..e5364b3d 100644 Binary files a/playground/pkg/go/build.zip and b/playground/pkg/go/build.zip differ diff --git a/playground/pkg/go/build/constraint.zip b/playground/pkg/go/build/constraint.zip index c4157c9b..a9068543 100644 Binary files a/playground/pkg/go/build/constraint.zip and b/playground/pkg/go/build/constraint.zip differ diff --git a/playground/pkg/go/constant.zip b/playground/pkg/go/constant.zip index da90c39e..1662eccf 100644 Binary files a/playground/pkg/go/constant.zip and b/playground/pkg/go/constant.zip differ diff --git a/playground/pkg/go/doc.zip b/playground/pkg/go/doc.zip index e51cd821..bc95cf8a 100644 Binary files a/playground/pkg/go/doc.zip and b/playground/pkg/go/doc.zip differ diff --git a/playground/pkg/go/doc/comment.zip b/playground/pkg/go/doc/comment.zip index dbe2a773..4d9ef03f 100644 Binary files a/playground/pkg/go/doc/comment.zip and b/playground/pkg/go/doc/comment.zip differ diff --git a/playground/pkg/go/format.zip b/playground/pkg/go/format.zip index 40932087..f39750fd 100644 Binary files a/playground/pkg/go/format.zip and b/playground/pkg/go/format.zip differ diff --git a/playground/pkg/go/importer.zip b/playground/pkg/go/importer.zip index 94b4854d..8d3876e9 100644 Binary files a/playground/pkg/go/importer.zip and b/playground/pkg/go/importer.zip differ diff --git a/playground/pkg/go/internal/gccgoimporter.zip b/playground/pkg/go/internal/gccgoimporter.zip index fccbeb87..69ea9bd8 100644 Binary files a/playground/pkg/go/internal/gccgoimporter.zip and b/playground/pkg/go/internal/gccgoimporter.zip differ diff --git a/playground/pkg/go/internal/gcimporter.zip b/playground/pkg/go/internal/gcimporter.zip index 5c6648f5..f9176c4b 100644 Binary files a/playground/pkg/go/internal/gcimporter.zip and b/playground/pkg/go/internal/gcimporter.zip differ diff --git a/playground/pkg/go/internal/srcimporter.zip b/playground/pkg/go/internal/srcimporter.zip index 1df9edd7..d677be50 100644 Binary files a/playground/pkg/go/internal/srcimporter.zip and b/playground/pkg/go/internal/srcimporter.zip differ diff --git a/playground/pkg/go/internal/typeparams.zip b/playground/pkg/go/internal/typeparams.zip index f32eb6cc..efb6b37e 100644 Binary files a/playground/pkg/go/internal/typeparams.zip and b/playground/pkg/go/internal/typeparams.zip differ diff --git a/playground/pkg/go/parser.zip b/playground/pkg/go/parser.zip index 987d8202..a38123d6 100644 Binary files a/playground/pkg/go/parser.zip and b/playground/pkg/go/parser.zip differ diff --git a/playground/pkg/go/printer.zip b/playground/pkg/go/printer.zip index dac947fa..ba5ff313 100644 Binary files a/playground/pkg/go/printer.zip and b/playground/pkg/go/printer.zip differ diff --git a/playground/pkg/go/scanner.zip b/playground/pkg/go/scanner.zip index d66232be..8a1da27e 100644 Binary files a/playground/pkg/go/scanner.zip and b/playground/pkg/go/scanner.zip differ diff --git a/playground/pkg/go/token.zip b/playground/pkg/go/token.zip index f6cd98cf..f7ffb6b1 100644 Binary files a/playground/pkg/go/token.zip and b/playground/pkg/go/token.zip differ diff --git a/playground/pkg/go/types.zip b/playground/pkg/go/types.zip index a1fbf6f5..6f0394b0 100644 Binary files a/playground/pkg/go/types.zip and b/playground/pkg/go/types.zip differ diff --git a/playground/pkg/hash.zip b/playground/pkg/hash.zip index ababd620..e3f79a1a 100644 Binary files a/playground/pkg/hash.zip and b/playground/pkg/hash.zip differ diff --git a/playground/pkg/hash/adler32.zip b/playground/pkg/hash/adler32.zip index b49780bb..7781a719 100644 Binary files a/playground/pkg/hash/adler32.zip and b/playground/pkg/hash/adler32.zip differ diff --git a/playground/pkg/hash/crc32.zip b/playground/pkg/hash/crc32.zip index 7d23fd92..232e6fea 100644 Binary files a/playground/pkg/hash/crc32.zip and b/playground/pkg/hash/crc32.zip differ diff --git a/playground/pkg/hash/crc64.zip b/playground/pkg/hash/crc64.zip index 6cb618e1..f7338641 100644 Binary files a/playground/pkg/hash/crc64.zip and b/playground/pkg/hash/crc64.zip differ diff --git a/playground/pkg/hash/fnv.zip b/playground/pkg/hash/fnv.zip index eecff0cc..69b500ee 100644 Binary files a/playground/pkg/hash/fnv.zip and b/playground/pkg/hash/fnv.zip differ diff --git a/playground/pkg/hash/maphash.zip b/playground/pkg/hash/maphash.zip index dd7a74e2..7f71e1dc 100644 Binary files a/playground/pkg/hash/maphash.zip and b/playground/pkg/hash/maphash.zip differ diff --git a/playground/pkg/html.zip b/playground/pkg/html.zip index 46bc5919..923e4a26 100644 Binary files a/playground/pkg/html.zip and b/playground/pkg/html.zip differ diff --git a/playground/pkg/html/template.zip b/playground/pkg/html/template.zip index c88fda7b..4bc16da1 100644 Binary files a/playground/pkg/html/template.zip and b/playground/pkg/html/template.zip differ diff --git a/playground/pkg/image.zip b/playground/pkg/image.zip index af8f4d37..d89bb605 100644 Binary files a/playground/pkg/image.zip and b/playground/pkg/image.zip differ diff --git a/playground/pkg/image/color.zip b/playground/pkg/image/color.zip index ef50b34c..d2fd6770 100644 Binary files a/playground/pkg/image/color.zip and b/playground/pkg/image/color.zip differ diff --git a/playground/pkg/image/color/palette.zip b/playground/pkg/image/color/palette.zip index 61db5680..46444764 100644 Binary files a/playground/pkg/image/color/palette.zip and b/playground/pkg/image/color/palette.zip differ diff --git a/playground/pkg/image/draw.zip b/playground/pkg/image/draw.zip index 55173216..f024981f 100644 Binary files a/playground/pkg/image/draw.zip and b/playground/pkg/image/draw.zip differ diff --git a/playground/pkg/image/gif.zip b/playground/pkg/image/gif.zip index 4c411cc5..6f514842 100644 Binary files a/playground/pkg/image/gif.zip and b/playground/pkg/image/gif.zip differ diff --git a/playground/pkg/image/internal/imageutil.zip b/playground/pkg/image/internal/imageutil.zip index b28a847f..127a4074 100644 Binary files a/playground/pkg/image/internal/imageutil.zip and b/playground/pkg/image/internal/imageutil.zip differ diff --git a/playground/pkg/image/jpeg.zip b/playground/pkg/image/jpeg.zip index d177cde7..e9781f69 100644 Binary files a/playground/pkg/image/jpeg.zip and b/playground/pkg/image/jpeg.zip differ diff --git a/playground/pkg/image/png.zip b/playground/pkg/image/png.zip index a469979c..8c5d5388 100644 Binary files a/playground/pkg/image/png.zip and b/playground/pkg/image/png.zip differ diff --git a/playground/pkg/index/suffixarray.zip b/playground/pkg/index/suffixarray.zip index 47248d4f..4fc3fa93 100644 Binary files a/playground/pkg/index/suffixarray.zip and b/playground/pkg/index/suffixarray.zip differ diff --git a/playground/pkg/internal/abi.zip b/playground/pkg/internal/abi.zip index c41e6702..e15b9fdf 100644 Binary files a/playground/pkg/internal/abi.zip and b/playground/pkg/internal/abi.zip differ diff --git a/playground/pkg/internal/bisect.zip b/playground/pkg/internal/bisect.zip new file mode 100644 index 00000000..6da0ab8d Binary files /dev/null and b/playground/pkg/internal/bisect.zip differ diff --git a/playground/pkg/internal/buildcfg.zip b/playground/pkg/internal/buildcfg.zip index 43840962..31cec995 100644 Binary files a/playground/pkg/internal/buildcfg.zip and b/playground/pkg/internal/buildcfg.zip differ diff --git a/playground/pkg/internal/bytealg.zip b/playground/pkg/internal/bytealg.zip index 2e7ac585..9d1035ad 100644 Binary files a/playground/pkg/internal/bytealg.zip and b/playground/pkg/internal/bytealg.zip differ diff --git a/playground/pkg/internal/coverage.zip b/playground/pkg/internal/coverage.zip index a2703c7c..007d1a5c 100644 Binary files a/playground/pkg/internal/coverage.zip and b/playground/pkg/internal/coverage.zip differ diff --git a/playground/pkg/internal/coverage/calloc.zip b/playground/pkg/internal/coverage/calloc.zip index 9d020217..e598f118 100644 Binary files a/playground/pkg/internal/coverage/calloc.zip and b/playground/pkg/internal/coverage/calloc.zip differ diff --git a/playground/pkg/internal/coverage/cformat.zip b/playground/pkg/internal/coverage/cformat.zip index c956b119..a4d632d5 100644 Binary files a/playground/pkg/internal/coverage/cformat.zip and b/playground/pkg/internal/coverage/cformat.zip differ diff --git a/playground/pkg/internal/coverage/cmerge.zip b/playground/pkg/internal/coverage/cmerge.zip index b02a5c7f..68af33b7 100644 Binary files a/playground/pkg/internal/coverage/cmerge.zip and b/playground/pkg/internal/coverage/cmerge.zip differ diff --git a/playground/pkg/internal/coverage/decodecounter.zip b/playground/pkg/internal/coverage/decodecounter.zip index 30e54e66..8f3195bf 100644 Binary files a/playground/pkg/internal/coverage/decodecounter.zip and b/playground/pkg/internal/coverage/decodecounter.zip differ diff --git a/playground/pkg/internal/coverage/decodemeta.zip b/playground/pkg/internal/coverage/decodemeta.zip index 027c5b68..a2a4d0ed 100644 Binary files a/playground/pkg/internal/coverage/decodemeta.zip and b/playground/pkg/internal/coverage/decodemeta.zip differ diff --git a/playground/pkg/internal/coverage/encodecounter.zip b/playground/pkg/internal/coverage/encodecounter.zip index 190902a4..7f91b992 100644 Binary files a/playground/pkg/internal/coverage/encodecounter.zip and b/playground/pkg/internal/coverage/encodecounter.zip differ diff --git a/playground/pkg/internal/coverage/encodemeta.zip b/playground/pkg/internal/coverage/encodemeta.zip index 618932b4..1c7765e5 100644 Binary files a/playground/pkg/internal/coverage/encodemeta.zip and b/playground/pkg/internal/coverage/encodemeta.zip differ diff --git a/playground/pkg/internal/coverage/pods.zip b/playground/pkg/internal/coverage/pods.zip index 97b25ae3..e5b495fd 100644 Binary files a/playground/pkg/internal/coverage/pods.zip and b/playground/pkg/internal/coverage/pods.zip differ diff --git a/playground/pkg/internal/coverage/rtcov.zip b/playground/pkg/internal/coverage/rtcov.zip index ac0c7cbf..5c352894 100644 Binary files a/playground/pkg/internal/coverage/rtcov.zip and b/playground/pkg/internal/coverage/rtcov.zip differ diff --git a/playground/pkg/internal/coverage/slicereader.zip b/playground/pkg/internal/coverage/slicereader.zip index e3998c0f..dda7e3d2 100644 Binary files a/playground/pkg/internal/coverage/slicereader.zip and b/playground/pkg/internal/coverage/slicereader.zip differ diff --git a/playground/pkg/internal/coverage/slicewriter.zip b/playground/pkg/internal/coverage/slicewriter.zip index 7c3e7497..5d9f7f6a 100644 Binary files a/playground/pkg/internal/coverage/slicewriter.zip and b/playground/pkg/internal/coverage/slicewriter.zip differ diff --git a/playground/pkg/internal/coverage/stringtab.zip b/playground/pkg/internal/coverage/stringtab.zip index a83c3dd0..d2171f5e 100644 Binary files a/playground/pkg/internal/coverage/stringtab.zip and b/playground/pkg/internal/coverage/stringtab.zip differ diff --git a/playground/pkg/internal/coverage/uleb128.zip b/playground/pkg/internal/coverage/uleb128.zip index e120dd0e..8b297284 100644 Binary files a/playground/pkg/internal/coverage/uleb128.zip and b/playground/pkg/internal/coverage/uleb128.zip differ diff --git a/playground/pkg/internal/cpu.zip b/playground/pkg/internal/cpu.zip index 2d634cf9..5e2e62b0 100644 Binary files a/playground/pkg/internal/cpu.zip and b/playground/pkg/internal/cpu.zip differ diff --git a/playground/pkg/internal/fmtsort.zip b/playground/pkg/internal/fmtsort.zip index 58319ef2..fcd2d230 100644 Binary files a/playground/pkg/internal/fmtsort.zip and b/playground/pkg/internal/fmtsort.zip differ diff --git a/playground/pkg/internal/goarch.zip b/playground/pkg/internal/goarch.zip index 86b93380..c08ce9dc 100644 Binary files a/playground/pkg/internal/goarch.zip and b/playground/pkg/internal/goarch.zip differ diff --git a/playground/pkg/internal/godebug.zip b/playground/pkg/internal/godebug.zip index d5d25aff..53b9caa8 100644 Binary files a/playground/pkg/internal/godebug.zip and b/playground/pkg/internal/godebug.zip differ diff --git a/playground/pkg/internal/godebugs.zip b/playground/pkg/internal/godebugs.zip new file mode 100644 index 00000000..228b1f9e Binary files /dev/null and b/playground/pkg/internal/godebugs.zip differ diff --git a/playground/pkg/internal/goexperiment.zip b/playground/pkg/internal/goexperiment.zip index ee35dd45..63f7be4d 100644 Binary files a/playground/pkg/internal/goexperiment.zip and b/playground/pkg/internal/goexperiment.zip differ diff --git a/playground/pkg/internal/goroot.zip b/playground/pkg/internal/goroot.zip index 63d880bd..51e0ea31 100644 Binary files a/playground/pkg/internal/goroot.zip and b/playground/pkg/internal/goroot.zip differ diff --git a/playground/pkg/internal/goversion.zip b/playground/pkg/internal/goversion.zip index 70a54cfb..912fd92e 100644 Binary files a/playground/pkg/internal/goversion.zip and b/playground/pkg/internal/goversion.zip differ diff --git a/playground/pkg/internal/intern.zip b/playground/pkg/internal/intern.zip index ef05138f..eac55873 100644 Binary files a/playground/pkg/internal/intern.zip and b/playground/pkg/internal/intern.zip differ diff --git a/playground/pkg/internal/itoa.zip b/playground/pkg/internal/itoa.zip index 9912f64e..571ebf0a 100644 Binary files a/playground/pkg/internal/itoa.zip and b/playground/pkg/internal/itoa.zip differ diff --git a/playground/pkg/internal/lazyregexp.zip b/playground/pkg/internal/lazyregexp.zip index 7f45a0ba..6f4ed742 100644 Binary files a/playground/pkg/internal/lazyregexp.zip and b/playground/pkg/internal/lazyregexp.zip differ diff --git a/playground/pkg/internal/nettrace.zip b/playground/pkg/internal/nettrace.zip index 0291bf95..900fb2fe 100644 Binary files a/playground/pkg/internal/nettrace.zip and b/playground/pkg/internal/nettrace.zip differ diff --git a/playground/pkg/internal/oserror.zip b/playground/pkg/internal/oserror.zip index e23e43fb..ae32d2bd 100644 Binary files a/playground/pkg/internal/oserror.zip and b/playground/pkg/internal/oserror.zip differ diff --git a/playground/pkg/internal/pkgbits.zip b/playground/pkg/internal/pkgbits.zip index e530aed5..ada062f0 100644 Binary files a/playground/pkg/internal/pkgbits.zip and b/playground/pkg/internal/pkgbits.zip differ diff --git a/playground/pkg/internal/platform.zip b/playground/pkg/internal/platform.zip new file mode 100644 index 00000000..eaa47112 Binary files /dev/null and b/playground/pkg/internal/platform.zip differ diff --git a/playground/pkg/internal/poll.zip b/playground/pkg/internal/poll.zip index b7c0c9b8..e5d907c9 100644 Binary files a/playground/pkg/internal/poll.zip and b/playground/pkg/internal/poll.zip differ diff --git a/playground/pkg/internal/race.zip b/playground/pkg/internal/race.zip index 06dee2e9..24c57f80 100644 Binary files a/playground/pkg/internal/race.zip and b/playground/pkg/internal/race.zip differ diff --git a/playground/pkg/internal/reflectlite.zip b/playground/pkg/internal/reflectlite.zip index d526b2af..68b121da 100644 Binary files a/playground/pkg/internal/reflectlite.zip and b/playground/pkg/internal/reflectlite.zip differ diff --git a/playground/pkg/internal/safefilepath.zip b/playground/pkg/internal/safefilepath.zip index 3dc6ac14..7c10365e 100644 Binary files a/playground/pkg/internal/safefilepath.zip and b/playground/pkg/internal/safefilepath.zip differ diff --git a/playground/pkg/internal/saferio.zip b/playground/pkg/internal/saferio.zip index c52bad83..fd08221a 100644 Binary files a/playground/pkg/internal/saferio.zip and b/playground/pkg/internal/saferio.zip differ diff --git a/playground/pkg/internal/singleflight.zip b/playground/pkg/internal/singleflight.zip index 3657a206..f57540d3 100644 Binary files a/playground/pkg/internal/singleflight.zip and b/playground/pkg/internal/singleflight.zip differ diff --git a/playground/pkg/internal/syscall/execenv.zip b/playground/pkg/internal/syscall/execenv.zip index b260607d..63f434ee 100644 Binary files a/playground/pkg/internal/syscall/execenv.zip and b/playground/pkg/internal/syscall/execenv.zip differ diff --git a/playground/pkg/internal/syscall/unix.zip b/playground/pkg/internal/syscall/unix.zip index 817dc478..bc72d111 100644 Binary files a/playground/pkg/internal/syscall/unix.zip and b/playground/pkg/internal/syscall/unix.zip differ diff --git a/playground/pkg/internal/sysinfo.zip b/playground/pkg/internal/sysinfo.zip index c1ca38d9..ee893295 100644 Binary files a/playground/pkg/internal/sysinfo.zip and b/playground/pkg/internal/sysinfo.zip differ diff --git a/playground/pkg/internal/testlog.zip b/playground/pkg/internal/testlog.zip index e8f56dad..e32652c9 100644 Binary files a/playground/pkg/internal/testlog.zip and b/playground/pkg/internal/testlog.zip differ diff --git a/playground/pkg/internal/types/errors.zip b/playground/pkg/internal/types/errors.zip index bbabee42..18f99e82 100644 Binary files a/playground/pkg/internal/types/errors.zip and b/playground/pkg/internal/types/errors.zip differ diff --git a/playground/pkg/internal/unsafeheader.zip b/playground/pkg/internal/unsafeheader.zip index e75a9c6b..4aae69c5 100644 Binary files a/playground/pkg/internal/unsafeheader.zip and b/playground/pkg/internal/unsafeheader.zip differ diff --git a/playground/pkg/internal/xcoff.zip b/playground/pkg/internal/xcoff.zip index c5c3717e..52c8402a 100644 Binary files a/playground/pkg/internal/xcoff.zip and b/playground/pkg/internal/xcoff.zip differ diff --git a/playground/pkg/internal/zstd.zip b/playground/pkg/internal/zstd.zip new file mode 100644 index 00000000..2624dbef Binary files /dev/null and b/playground/pkg/internal/zstd.zip differ diff --git a/playground/pkg/io.zip b/playground/pkg/io.zip index a51f5633..62bb2654 100644 Binary files a/playground/pkg/io.zip and b/playground/pkg/io.zip differ diff --git a/playground/pkg/io/fs.zip b/playground/pkg/io/fs.zip index 79bb7dae..e5debfcf 100644 Binary files a/playground/pkg/io/fs.zip and b/playground/pkg/io/fs.zip differ diff --git a/playground/pkg/io/ioutil.zip b/playground/pkg/io/ioutil.zip index 3828ff3d..07cbb94a 100644 Binary files a/playground/pkg/io/ioutil.zip and b/playground/pkg/io/ioutil.zip differ diff --git a/playground/pkg/log.zip b/playground/pkg/log.zip index a7c727dc..96fa82a7 100644 Binary files a/playground/pkg/log.zip and b/playground/pkg/log.zip differ diff --git a/playground/pkg/log/internal.zip b/playground/pkg/log/internal.zip new file mode 100644 index 00000000..d8be2df3 Binary files /dev/null and b/playground/pkg/log/internal.zip differ diff --git a/playground/pkg/log/slog.zip b/playground/pkg/log/slog.zip new file mode 100644 index 00000000..06f5e7e5 Binary files /dev/null and b/playground/pkg/log/slog.zip differ diff --git a/playground/pkg/log/slog/internal.zip b/playground/pkg/log/slog/internal.zip new file mode 100644 index 00000000..e15e263e Binary files /dev/null and b/playground/pkg/log/slog/internal.zip differ diff --git a/playground/pkg/log/slog/internal/buffer.zip b/playground/pkg/log/slog/internal/buffer.zip new file mode 100644 index 00000000..e7495c4c Binary files /dev/null and b/playground/pkg/log/slog/internal/buffer.zip differ diff --git a/playground/pkg/log/syslog.zip b/playground/pkg/log/syslog.zip index 570facf8..bba8eb13 100644 Binary files a/playground/pkg/log/syslog.zip and b/playground/pkg/log/syslog.zip differ diff --git a/playground/pkg/maps.zip b/playground/pkg/maps.zip new file mode 100644 index 00000000..8778c9df Binary files /dev/null and b/playground/pkg/maps.zip differ diff --git a/playground/pkg/math.zip b/playground/pkg/math.zip index 52ab235c..8238ec7d 100644 Binary files a/playground/pkg/math.zip and b/playground/pkg/math.zip differ diff --git a/playground/pkg/math/big.zip b/playground/pkg/math/big.zip index 1281309c..239115ae 100644 Binary files a/playground/pkg/math/big.zip and b/playground/pkg/math/big.zip differ diff --git a/playground/pkg/math/bits.zip b/playground/pkg/math/bits.zip index e790b24e..89dd0edb 100644 Binary files a/playground/pkg/math/bits.zip and b/playground/pkg/math/bits.zip differ diff --git a/playground/pkg/math/cmplx.zip b/playground/pkg/math/cmplx.zip index 8c562a80..48d19cde 100644 Binary files a/playground/pkg/math/cmplx.zip and b/playground/pkg/math/cmplx.zip differ diff --git a/playground/pkg/math/rand.zip b/playground/pkg/math/rand.zip index 2c93b88a..54533246 100644 Binary files a/playground/pkg/math/rand.zip and b/playground/pkg/math/rand.zip differ diff --git a/playground/pkg/mime.zip b/playground/pkg/mime.zip index 01b14221..a0868575 100644 Binary files a/playground/pkg/mime.zip and b/playground/pkg/mime.zip differ diff --git a/playground/pkg/mime/multipart.zip b/playground/pkg/mime/multipart.zip index 3d75c922..211bfba2 100644 Binary files a/playground/pkg/mime/multipart.zip and b/playground/pkg/mime/multipart.zip differ diff --git a/playground/pkg/mime/quotedprintable.zip b/playground/pkg/mime/quotedprintable.zip index fa1c392d..7c232d64 100644 Binary files a/playground/pkg/mime/quotedprintable.zip and b/playground/pkg/mime/quotedprintable.zip differ diff --git a/playground/pkg/net.zip b/playground/pkg/net.zip index b140c77e..07c60986 100644 Binary files a/playground/pkg/net.zip and b/playground/pkg/net.zip differ diff --git a/playground/pkg/net/http.zip b/playground/pkg/net/http.zip index 687bb28f..7e16805f 100644 Binary files a/playground/pkg/net/http.zip and b/playground/pkg/net/http.zip differ diff --git a/playground/pkg/net/http/cgi.zip b/playground/pkg/net/http/cgi.zip index 2cc4f0c4..b02bee4f 100644 Binary files a/playground/pkg/net/http/cgi.zip and b/playground/pkg/net/http/cgi.zip differ diff --git a/playground/pkg/net/http/cookiejar.zip b/playground/pkg/net/http/cookiejar.zip index 660fa3f4..293904d4 100644 Binary files a/playground/pkg/net/http/cookiejar.zip and b/playground/pkg/net/http/cookiejar.zip differ diff --git a/playground/pkg/net/http/fcgi.zip b/playground/pkg/net/http/fcgi.zip index a9d243e6..043cebda 100644 Binary files a/playground/pkg/net/http/fcgi.zip and b/playground/pkg/net/http/fcgi.zip differ diff --git a/playground/pkg/net/http/httptest.zip b/playground/pkg/net/http/httptest.zip index 04cdc5cb..8c9bbaf5 100644 Binary files a/playground/pkg/net/http/httptest.zip and b/playground/pkg/net/http/httptest.zip differ diff --git a/playground/pkg/net/http/httptrace.zip b/playground/pkg/net/http/httptrace.zip index 2fc4f79a..455f65ae 100644 Binary files a/playground/pkg/net/http/httptrace.zip and b/playground/pkg/net/http/httptrace.zip differ diff --git a/playground/pkg/net/http/httputil.zip b/playground/pkg/net/http/httputil.zip index abe28f5d..8a5a48c8 100644 Binary files a/playground/pkg/net/http/httputil.zip and b/playground/pkg/net/http/httputil.zip differ diff --git a/playground/pkg/net/http/internal.zip b/playground/pkg/net/http/internal.zip index 864d8e77..0915ba0a 100644 Binary files a/playground/pkg/net/http/internal.zip and b/playground/pkg/net/http/internal.zip differ diff --git a/playground/pkg/net/http/internal/ascii.zip b/playground/pkg/net/http/internal/ascii.zip index 22c0c5de..5fecd138 100644 Binary files a/playground/pkg/net/http/internal/ascii.zip and b/playground/pkg/net/http/internal/ascii.zip differ diff --git a/playground/pkg/net/http/internal/testcert.zip b/playground/pkg/net/http/internal/testcert.zip index 8e91699b..3055ec02 100644 Binary files a/playground/pkg/net/http/internal/testcert.zip and b/playground/pkg/net/http/internal/testcert.zip differ diff --git a/playground/pkg/net/mail.zip b/playground/pkg/net/mail.zip index c8270f60..8d3ac48f 100644 Binary files a/playground/pkg/net/mail.zip and b/playground/pkg/net/mail.zip differ diff --git a/playground/pkg/net/netip.zip b/playground/pkg/net/netip.zip index 2ce41a74..ef87bbaf 100644 Binary files a/playground/pkg/net/netip.zip and b/playground/pkg/net/netip.zip differ diff --git a/playground/pkg/net/rpc.zip b/playground/pkg/net/rpc.zip index 14dedfa3..0d07cf2b 100644 Binary files a/playground/pkg/net/rpc.zip and b/playground/pkg/net/rpc.zip differ diff --git a/playground/pkg/net/rpc/jsonrpc.zip b/playground/pkg/net/rpc/jsonrpc.zip index eb07a945..70cd9ffa 100644 Binary files a/playground/pkg/net/rpc/jsonrpc.zip and b/playground/pkg/net/rpc/jsonrpc.zip differ diff --git a/playground/pkg/net/smtp.zip b/playground/pkg/net/smtp.zip index 4bcacb99..191f8e52 100644 Binary files a/playground/pkg/net/smtp.zip and b/playground/pkg/net/smtp.zip differ diff --git a/playground/pkg/net/textproto.zip b/playground/pkg/net/textproto.zip index e9c993e0..edb7f4f0 100644 Binary files a/playground/pkg/net/textproto.zip and b/playground/pkg/net/textproto.zip differ diff --git a/playground/pkg/net/url.zip b/playground/pkg/net/url.zip index e8203a78..f0febc6b 100644 Binary files a/playground/pkg/net/url.zip and b/playground/pkg/net/url.zip differ diff --git a/playground/pkg/os.zip b/playground/pkg/os.zip index d26e9428..76f5cd94 100644 Binary files a/playground/pkg/os.zip and b/playground/pkg/os.zip differ diff --git a/playground/pkg/os/exec.zip b/playground/pkg/os/exec.zip index 23602525..b453317a 100644 Binary files a/playground/pkg/os/exec.zip and b/playground/pkg/os/exec.zip differ diff --git a/playground/pkg/os/signal.zip b/playground/pkg/os/signal.zip index ffcb7783..910aaff5 100644 Binary files a/playground/pkg/os/signal.zip and b/playground/pkg/os/signal.zip differ diff --git a/playground/pkg/os/user.zip b/playground/pkg/os/user.zip index 1d0181a5..43c0cc79 100644 Binary files a/playground/pkg/os/user.zip and b/playground/pkg/os/user.zip differ diff --git a/playground/pkg/path.zip b/playground/pkg/path.zip index a8d4e6f5..2cc1328f 100644 Binary files a/playground/pkg/path.zip and b/playground/pkg/path.zip differ diff --git a/playground/pkg/path/filepath.zip b/playground/pkg/path/filepath.zip index cfc433b4..172c765a 100644 Binary files a/playground/pkg/path/filepath.zip and b/playground/pkg/path/filepath.zip differ diff --git a/playground/pkg/reflect.zip b/playground/pkg/reflect.zip index 9feb296f..3278331a 100644 Binary files a/playground/pkg/reflect.zip and b/playground/pkg/reflect.zip differ diff --git a/playground/pkg/regexp.zip b/playground/pkg/regexp.zip index 2f2cbf2e..1ba6ea6e 100644 Binary files a/playground/pkg/regexp.zip and b/playground/pkg/regexp.zip differ diff --git a/playground/pkg/regexp/syntax.zip b/playground/pkg/regexp/syntax.zip index 64ce0602..50e29bac 100644 Binary files a/playground/pkg/regexp/syntax.zip and b/playground/pkg/regexp/syntax.zip differ diff --git a/playground/pkg/runtime.zip b/playground/pkg/runtime.zip index a3229f8b..2f831f87 100644 Binary files a/playground/pkg/runtime.zip and b/playground/pkg/runtime.zip differ diff --git a/playground/pkg/runtime/coverage.zip b/playground/pkg/runtime/coverage.zip index 5cf2dc46..c787eb18 100644 Binary files a/playground/pkg/runtime/coverage.zip and b/playground/pkg/runtime/coverage.zip differ diff --git a/playground/pkg/runtime/debug.zip b/playground/pkg/runtime/debug.zip index b3c2a6bf..727bd25c 100644 Binary files a/playground/pkg/runtime/debug.zip and b/playground/pkg/runtime/debug.zip differ diff --git a/playground/pkg/runtime/internal/atomic.zip b/playground/pkg/runtime/internal/atomic.zip new file mode 100644 index 00000000..92c5178a Binary files /dev/null and b/playground/pkg/runtime/internal/atomic.zip differ diff --git a/playground/pkg/runtime/metrics.zip b/playground/pkg/runtime/metrics.zip index 4937c2ac..b5ecec1d 100644 Binary files a/playground/pkg/runtime/metrics.zip and b/playground/pkg/runtime/metrics.zip differ diff --git a/playground/pkg/runtime/race.zip b/playground/pkg/runtime/race.zip index 4748b9e2..e04582c9 100644 Binary files a/playground/pkg/runtime/race.zip and b/playground/pkg/runtime/race.zip differ diff --git a/playground/pkg/runtime/trace.zip b/playground/pkg/runtime/trace.zip index a7a44ca4..f82b8f4c 100644 Binary files a/playground/pkg/runtime/trace.zip and b/playground/pkg/runtime/trace.zip differ diff --git a/playground/pkg/slices.zip b/playground/pkg/slices.zip new file mode 100644 index 00000000..af340988 Binary files /dev/null and b/playground/pkg/slices.zip differ diff --git a/playground/pkg/sort.zip b/playground/pkg/sort.zip index 8876d262..47db5532 100644 Binary files a/playground/pkg/sort.zip and b/playground/pkg/sort.zip differ diff --git a/playground/pkg/strconv.zip b/playground/pkg/strconv.zip index 64b66ebc..0abe7ef6 100644 Binary files a/playground/pkg/strconv.zip and b/playground/pkg/strconv.zip differ diff --git a/playground/pkg/strings.zip b/playground/pkg/strings.zip index edc5f7e6..74fcbd0a 100644 Binary files a/playground/pkg/strings.zip and b/playground/pkg/strings.zip differ diff --git a/playground/pkg/sync.zip b/playground/pkg/sync.zip index 4618b488..38138cdc 100644 Binary files a/playground/pkg/sync.zip and b/playground/pkg/sync.zip differ diff --git a/playground/pkg/sync/atomic.zip b/playground/pkg/sync/atomic.zip index dae70696..cb403a7f 100644 Binary files a/playground/pkg/sync/atomic.zip and b/playground/pkg/sync/atomic.zip differ diff --git a/playground/pkg/syscall.zip b/playground/pkg/syscall.zip index 8c70303a..55e6a91c 100644 Binary files a/playground/pkg/syscall.zip and b/playground/pkg/syscall.zip differ diff --git a/playground/pkg/syscall/js.zip b/playground/pkg/syscall/js.zip index dea15dc3..f8e3bf22 100644 Binary files a/playground/pkg/syscall/js.zip and b/playground/pkg/syscall/js.zip differ diff --git a/playground/pkg/testing.zip b/playground/pkg/testing.zip index ddee6311..0a868c24 100644 Binary files a/playground/pkg/testing.zip and b/playground/pkg/testing.zip differ diff --git a/playground/pkg/testing/fstest.zip b/playground/pkg/testing/fstest.zip index d6015311..23f3ac5a 100644 Binary files a/playground/pkg/testing/fstest.zip and b/playground/pkg/testing/fstest.zip differ diff --git a/playground/pkg/testing/iotest.zip b/playground/pkg/testing/iotest.zip index 3d9d4c24..c4fc0c1f 100644 Binary files a/playground/pkg/testing/iotest.zip and b/playground/pkg/testing/iotest.zip differ diff --git a/playground/pkg/testing/quick.zip b/playground/pkg/testing/quick.zip index c6e2d2e3..eccc7c60 100644 Binary files a/playground/pkg/testing/quick.zip and b/playground/pkg/testing/quick.zip differ diff --git a/playground/pkg/testing/slogtest.zip b/playground/pkg/testing/slogtest.zip new file mode 100644 index 00000000..75cd0d2e Binary files /dev/null and b/playground/pkg/testing/slogtest.zip differ diff --git a/playground/pkg/text/scanner.zip b/playground/pkg/text/scanner.zip index 9a666236..dbea4f6f 100644 Binary files a/playground/pkg/text/scanner.zip and b/playground/pkg/text/scanner.zip differ diff --git a/playground/pkg/text/tabwriter.zip b/playground/pkg/text/tabwriter.zip index 54eb3a36..5520a111 100644 Binary files a/playground/pkg/text/tabwriter.zip and b/playground/pkg/text/tabwriter.zip differ diff --git a/playground/pkg/text/template.zip b/playground/pkg/text/template.zip index 8b23c54d..255e4e68 100644 Binary files a/playground/pkg/text/template.zip and b/playground/pkg/text/template.zip differ diff --git a/playground/pkg/text/template/parse.zip b/playground/pkg/text/template/parse.zip index eaed1357..95ac6fd8 100644 Binary files a/playground/pkg/text/template/parse.zip and b/playground/pkg/text/template/parse.zip differ diff --git a/playground/pkg/time.zip b/playground/pkg/time.zip index efb83d20..58e36a58 100644 Binary files a/playground/pkg/time.zip and b/playground/pkg/time.zip differ diff --git a/playground/pkg/time/tzdata.zip b/playground/pkg/time/tzdata.zip index ecafd4cc..f3c0e7f0 100644 Binary files a/playground/pkg/time/tzdata.zip and b/playground/pkg/time/tzdata.zip differ diff --git a/playground/pkg/unicode.zip b/playground/pkg/unicode.zip index 51236e14..e86f1541 100644 Binary files a/playground/pkg/unicode.zip and b/playground/pkg/unicode.zip differ diff --git a/playground/pkg/unicode/utf16.zip b/playground/pkg/unicode/utf16.zip index 48b8caee..09f60fb7 100644 Binary files a/playground/pkg/unicode/utf16.zip and b/playground/pkg/unicode/utf16.zip differ diff --git a/playground/pkg/unicode/utf8.zip b/playground/pkg/unicode/utf8.zip index e471d9f6..34c2c7af 100644 Binary files a/playground/pkg/unicode/utf8.zip and b/playground/pkg/unicode/utf8.zip differ diff --git a/playground/pkg/unsafe.zip b/playground/pkg/unsafe.zip index 02671223..23659166 100644 Binary files a/playground/pkg/unsafe.zip and b/playground/pkg/unsafe.zip differ diff --git a/playground/pkg/vendor/golang.org/x/crypto/chacha20.zip b/playground/pkg/vendor/golang.org/x/crypto/chacha20.zip index ccf2774b..ca2d7fc1 100644 Binary files a/playground/pkg/vendor/golang.org/x/crypto/chacha20.zip and b/playground/pkg/vendor/golang.org/x/crypto/chacha20.zip differ diff --git a/playground/pkg/vendor/golang.org/x/crypto/chacha20poly1305.zip b/playground/pkg/vendor/golang.org/x/crypto/chacha20poly1305.zip index b050da6d..bf76be68 100644 Binary files a/playground/pkg/vendor/golang.org/x/crypto/chacha20poly1305.zip and b/playground/pkg/vendor/golang.org/x/crypto/chacha20poly1305.zip differ diff --git a/playground/pkg/vendor/golang.org/x/crypto/cryptobyte.zip b/playground/pkg/vendor/golang.org/x/crypto/cryptobyte.zip index f4f13db7..690c5f90 100644 Binary files a/playground/pkg/vendor/golang.org/x/crypto/cryptobyte.zip and b/playground/pkg/vendor/golang.org/x/crypto/cryptobyte.zip differ diff --git a/playground/pkg/vendor/golang.org/x/crypto/cryptobyte/asn1.zip b/playground/pkg/vendor/golang.org/x/crypto/cryptobyte/asn1.zip index 501b269f..1013ebd7 100644 Binary files a/playground/pkg/vendor/golang.org/x/crypto/cryptobyte/asn1.zip and b/playground/pkg/vendor/golang.org/x/crypto/cryptobyte/asn1.zip differ diff --git a/playground/pkg/vendor/golang.org/x/crypto/hkdf.zip b/playground/pkg/vendor/golang.org/x/crypto/hkdf.zip index d28dcbc4..ee9b465e 100644 Binary files a/playground/pkg/vendor/golang.org/x/crypto/hkdf.zip and b/playground/pkg/vendor/golang.org/x/crypto/hkdf.zip differ diff --git a/playground/pkg/vendor/golang.org/x/crypto/internal/alias.zip b/playground/pkg/vendor/golang.org/x/crypto/internal/alias.zip index b3190019..09ca862b 100644 Binary files a/playground/pkg/vendor/golang.org/x/crypto/internal/alias.zip and b/playground/pkg/vendor/golang.org/x/crypto/internal/alias.zip differ diff --git a/playground/pkg/vendor/golang.org/x/crypto/internal/poly1305.zip b/playground/pkg/vendor/golang.org/x/crypto/internal/poly1305.zip index fe85eb76..62899988 100644 Binary files a/playground/pkg/vendor/golang.org/x/crypto/internal/poly1305.zip and b/playground/pkg/vendor/golang.org/x/crypto/internal/poly1305.zip differ diff --git a/playground/pkg/vendor/golang.org/x/net/dns/dnsmessage.zip b/playground/pkg/vendor/golang.org/x/net/dns/dnsmessage.zip index 5a3640c3..0b6b7bf7 100644 Binary files a/playground/pkg/vendor/golang.org/x/net/dns/dnsmessage.zip and b/playground/pkg/vendor/golang.org/x/net/dns/dnsmessage.zip differ diff --git a/playground/pkg/vendor/golang.org/x/net/http/httpguts.zip b/playground/pkg/vendor/golang.org/x/net/http/httpguts.zip index b36a2de6..db56e0ae 100644 Binary files a/playground/pkg/vendor/golang.org/x/net/http/httpguts.zip and b/playground/pkg/vendor/golang.org/x/net/http/httpguts.zip differ diff --git a/playground/pkg/vendor/golang.org/x/net/http/httpproxy.zip b/playground/pkg/vendor/golang.org/x/net/http/httpproxy.zip index 0ba0395a..0d6768a8 100644 Binary files a/playground/pkg/vendor/golang.org/x/net/http/httpproxy.zip and b/playground/pkg/vendor/golang.org/x/net/http/httpproxy.zip differ diff --git a/playground/pkg/vendor/golang.org/x/net/http2/hpack.zip b/playground/pkg/vendor/golang.org/x/net/http2/hpack.zip index b7ed5a70..c2e59df4 100644 Binary files a/playground/pkg/vendor/golang.org/x/net/http2/hpack.zip and b/playground/pkg/vendor/golang.org/x/net/http2/hpack.zip differ diff --git a/playground/pkg/vendor/golang.org/x/net/idna.zip b/playground/pkg/vendor/golang.org/x/net/idna.zip index 8f4cc826..4f414b35 100644 Binary files a/playground/pkg/vendor/golang.org/x/net/idna.zip and b/playground/pkg/vendor/golang.org/x/net/idna.zip differ diff --git a/playground/pkg/vendor/golang.org/x/text/secure/bidirule.zip b/playground/pkg/vendor/golang.org/x/text/secure/bidirule.zip index cafe91d7..d0ac75e6 100644 Binary files a/playground/pkg/vendor/golang.org/x/text/secure/bidirule.zip and b/playground/pkg/vendor/golang.org/x/text/secure/bidirule.zip differ diff --git a/playground/pkg/vendor/golang.org/x/text/transform.zip b/playground/pkg/vendor/golang.org/x/text/transform.zip index f1fd8d43..8426c273 100644 Binary files a/playground/pkg/vendor/golang.org/x/text/transform.zip and b/playground/pkg/vendor/golang.org/x/text/transform.zip differ diff --git a/playground/pkg/vendor/golang.org/x/text/unicode/bidi.zip b/playground/pkg/vendor/golang.org/x/text/unicode/bidi.zip index 273f02d5..c1960933 100644 Binary files a/playground/pkg/vendor/golang.org/x/text/unicode/bidi.zip and b/playground/pkg/vendor/golang.org/x/text/unicode/bidi.zip differ diff --git a/playground/pkg/vendor/golang.org/x/text/unicode/norm.zip b/playground/pkg/vendor/golang.org/x/text/unicode/norm.zip index 0150dc29..ccf06547 100644 Binary files a/playground/pkg/vendor/golang.org/x/text/unicode/norm.zip and b/playground/pkg/vendor/golang.org/x/text/unicode/norm.zip differ diff --git a/playground/playground.js b/playground/playground.js index 00cb3966..44278677 100644 --- a/playground/playground.js +++ b/playground/playground.js @@ -1,7 +1,8 @@ "use strict"; (function() { -var $goVersion = "go1.20.14"; +var $goVersion = "go1.21.13"; +var $testBinary = "0"; Error.stackTraceLimit = Infinity; var $NaN = NaN; var $global, $module; @@ -69,6 +70,7 @@ var $keys = (m) => { var $flushConsole = () => { }; var $throwRuntimeError; +var $newPanicNilError; var $throwNilPointerError = () => { $throwRuntimeError("invalid memory address or nil pointer dereference"); }; @@ -93,6 +95,68 @@ if ($global.process !== void 0 && $global.require) { } } var $println = console.log; +var $callstack = (skip, limit) => { + const oldLimit = Error.stackTraceLimit; + var stack; + try { + Error.stackTraceLimit = skip + limit; + stack = new Error().stack; + } finally { + Error.stackTraceLimit = oldLimit; + } + if (!stack) return []; + stack = stack.trim(); + const firstNl = stack.indexOf("\n"); + const firstLine = firstNl >= 0 ? stack.substring(0, firstNl) : stack; + if (!firstLine.includes("@") && !firstLine.startsWith("at ")) { + skip++; + } + return stack.split("\n").slice(skip); +}; +var $parseCallFrame = (frame) => { + const posRe = /^(.+?)(?::(\d+)(?::(\d+))?)?$/; + const parsePos = (fnName, framePos) => { + const m = posRe.exec(framePos); + if (m) { + const file = m[1] || ""; + const line = m[2] || 0; + const col = m[3] || 0; + return [fnName, file, line, col]; + } + return [fnName, "", 0, 0]; + }; + const receiverRe = /^(?:(?:Object|typ\d*)\.)|(?:[a-zA-Z_$][a-zA-Z0-9_$]*\.(github\.com[\\|/]))/; + const stripReceiver = (fnName) => fnName.replace(receiverRe, "$1"); + $parseCallFrame = (frame2) => { + const atIdx = frame2.indexOf("@"); + if (atIdx >= 0) { + const fnName2 = frame2.substring(0, atIdx) || ""; + return parsePos(fnName2, frame2.substring(atIdx + 1)); + } + const atLeadIdx = frame2.indexOf("at "); + if (atLeadIdx >= 0) frame2 = frame2.substring(atLeadIdx + 3); + const openIdx = frame2.lastIndexOf("("); + if (openIdx === -1) { + return parsePos("", frame2); + } + var fnName = frame2.substring(0, frame2.indexOf("(")).trim(); + const asIdx = fnName.indexOf("[as "); + if (asIdx > 0) { + var closeIdx = fnName.indexOf("]"); + if (closeIdx === -1) closeIdx = fnName.length; + fnName = fnName.substring(asIdx + 4, closeIdx).trim(); + } + fnName = stripReceiver(fnName); + var closeIdx = frame2.indexOf(")", openIdx); + if (closeIdx === -1) closeIdx = frame2.length; + var pos = frame2.substring(openIdx + 1, closeIdx); + if (pos === "") { + return [fnName, "", 0, 0]; + } + return parsePos(fnName, pos); + }; + return $parseCallFrame(frame); +}; var $callForAllPackages = (methodName) => { var names = $keys($packages); for (var i = 0; i < names.length; i++) { @@ -215,7 +279,7 @@ var $convertSliceType = (slice, desiredType) => { if (slice == slice.constructor.nil) { return desiredType.nil; } - return $subslice(new desiredType(slice.$array), slice.$offset, slice.$offset + slice.$length); + return $subslice(new desiredType(slice.$array), slice.$offset, slice.$offset + slice.$length, slice.$offset + slice.$capacity); }; var $decodeRune = (str, pos) => { var c0 = str.charCodeAt(pos); @@ -364,11 +428,14 @@ var $clone = (src, type) => { return clone; }; var $pointerOfStructConversion = (obj, type) => { + if (obj === (obj.constructor && obj.constructor.nil)) { + return type.nil; + } if (obj.$proxies === void 0) { obj.$proxies = {}; - obj.$proxies[obj.constructor.string] = obj; + obj.$proxies[obj.constructor.id] = obj; } - var proxy = obj.$proxies[type.string]; + var proxy = obj.$proxies[type.id]; if (proxy === void 0) { var properties = {}; for (var i = 0; i < type.elem.fields.length; i++) { @@ -385,7 +452,7 @@ var $pointerOfStructConversion = (obj, type) => { } proxy = Object.create(type.prototype, properties); proxy.$val = proxy; - obj.$proxies[type.string] = proxy; + obj.$proxies[type.id] = proxy; proxy.$proxies = obj.$proxies; } return proxy; @@ -505,7 +572,7 @@ var $unsafeMethodToFunction = (typ, name, isPtr) => { r = new ptrType(r); break; default: - r = new ptrType(r.$get, r.$set, r.$target); + r = new ptrType(r.$get, r.$set, r.$target, r.$index); } } return r[name](...args); @@ -542,13 +609,80 @@ var $instanceOf = (x, y) => { var $typeOf = (x) => { return typeof x; }; -var $sliceData = (slice, typ) => { +var $unsafeString = (ptr, len) => { + var byteSliceType = $sliceType($Uint8); + return $bytesToString($unsafeSlice(ptr, len, byteSliceType, "String")); +}; +var $unsafeStringData = (str) => { + if (str.length === 0) { + return $ptrType($Uint8).nil; + } + var byteSliceType = $sliceType($Uint8); + var b = new byteSliceType($stringToBytes(str)); + return $unsafeSliceData(b, byteSliceType); +}; +var $unsafeSlice = (ptr, len, typ, methodName = "Slice") => { + if (len < 0) { + $throwRuntimeError("unsafe." + methodName + ": len out of range"); + } + var ptrType = $ptrType(typ.elem); + if (ptr === ptrType.nil || ptr.$target === void 0) { + if (len > 0) { + $throwRuntimeError("unsafe." + methodName + ": ptr is nil and len is not zero"); + } + return typ.nil; + } + if (len === 0) { + var s = new typ(ptr.$target); + s.$offset = ptr.$index !== void 0 ? ptr.$index : 0; + s.$length = 0; + s.$capacity = 0; + return s; + } + if (ptr.$index === void 0) { + $throwRuntimeError("unsafe." + methodName + ": pointer does not address a slice or array element (missing index)"); + } + if (ptr.$target.buffer && ptr.$target.BYTES_PER_ELEMENT && ptr.$target.constructor !== $nativeArray(typ.elem.kind)) { + $throwRuntimeError("unsafe." + methodName + ": pointer does not match slice element storage layout"); + } + if (ptr.$index + len > ptr.$target.length) { + $throwRuntimeError("unsafe." + methodName + ": len out of range"); + } + var s = new typ(ptr.$target); + s.$offset = ptr.$index; + s.$length = len; + s.$capacity = len; + return s; +}; +var $unsafeSliceData = (slice, typ) => { + var ptrType = $ptrType(typ.elem); if (slice === typ.nil) { - return $ptrType(typ.elem).nil; + return ptrType.nil; + } + return $indexPtr(slice.$array, slice.$offset, ptrType); +}; +var $clearSlice = (slice) => { + const n = slice.$length; + if (n === 0) { + return; + } + const arr = slice.$array; + const off = slice.$offset; + const zeroFn = slice.constructor.elem.zero; + for (let i = 0; i < n; i++) { + arr[off + i] = zeroFn(); } - return $indexPtr(slice.$array, slice.$offset, typ.elem); +}; +var $clearMap = (m) => { + typeof m.clear === "function" && m.clear(); }; var $min = Math.min; +var $max = Math.max; +var $less64 = (x, y) => x.$high < y.$high || x.$high === y.$high && x.$low < y.$low; +var $min64 = (first, ...rest) => rest.reduce((m, x) => $less64(x, m) ? x : m, first); +var $max64 = (first, ...rest) => rest.reduce((m, x) => $less64(m, x) ? x : m, first); +var $minStr = (first, ...rest) => rest.reduce((m, x) => x < m ? x : m, first); +var $maxStr = (first, ...rest) => rest.reduce((m, x) => m < x ? x : m, first); var $mod = (x, y) => { return x % y; }; @@ -911,7 +1045,7 @@ var $newType = (size, kind, string, named, pkg, exported, constructor) => { if (src.$length < dst.length) { $throwRuntimeError("cannot convert slice with length " + src.$length + " to array or pointer to array with length " + dst.length); } - $copyArray(dst, src.$array, 0, 0, dst.length, elem); + $copyArray(dst, src.$array, 0, src.$offset, dst.length, elem); } else { $copyArray(dst, src, 0, 0, src.length, elem); } @@ -966,10 +1100,11 @@ var $newType = (size, kind, string, named, pkg, exported, constructor) => { }; break; case $kindPtr: - typ2 = constructor || function(getter, setter, target) { + typ2 = constructor || function(getter, setter, target, index) { this.$get = getter; this.$set = setter; this.$target = target; + if (index !== void 0) this.$index = index; this.$val = this; }; typ2.keyFor = $idKey; @@ -1180,42 +1315,66 @@ var $methodSet = (typ2) => { typ2.methodSetCache = []; return []; } - var current = [{ typ: isPtr ? typ2.elem : typ2, indirect: isPtr }]; + var current = [{ typ: isPtr ? typ2.elem : typ2, indirect: isPtr, shadow: void 0 }]; var seen = {}; while (current.length > 0) { var next = []; - var mset = []; + var mset = {}; current.forEach((e) => { - if (seen[e.typ.string]) { + if (seen[e.typ.id]) { return; } - seen[e.typ.string] = true; + seen[e.typ.id] = true; + const promotePair = (name, m) => { + if (mset[name] === null) { + return; + } else if (e.shadow && e.shadow[name]) { + return; + } else if (mset[name] === void 0) { + mset[name] = m; + } else if (mset[name] !== m) { + mset[name] = null; + } + }; + const promote = (methods) => { + methods.forEach((m) => promotePair(m.name, m)); + }; if (e.typ.named) { - mset = mset.concat(e.typ.methods); + promote(e.typ.methods); if (e.indirect) { - mset = mset.concat($ptrType(e.typ).methods); + promote($ptrType(e.typ).methods); } } switch (e.typ.kind) { case $kindStruct: + var nextShadow = {}; + Object.assign(nextShadow, e.shadow); + e.typ.fields.forEach((f) => { + nextShadow[f.name] = true; + promotePair(f.name, null); + }); e.typ.fields.forEach((f) => { if (f.embedded) { var fTyp = f.typ; var fIsPtr = fTyp.kind === $kindPtr; - next.push({ typ: fIsPtr ? fTyp.elem : fTyp, indirect: e.indirect || fIsPtr }); + next.push({ + typ: fIsPtr ? fTyp.elem : fTyp, + indirect: e.indirect || fIsPtr, + shadow: nextShadow + }); } }); break; case $kindInterface: - mset = mset.concat(e.typ.methods); + promote(e.typ.methods); break; } }); - mset.forEach((m) => { - if (base[m.name] === void 0) { - base[m.name] = m; + for (const [name, m] of Object.entries(mset)) { + if (m !== null && base[name] === void 0) { + base[name] = m; } - }); + } current = next; } typ2.methodSetCache = []; @@ -1412,23 +1571,38 @@ var $newDataPointer = (data, constructor) => { data = v; }); }; +var $indexPtrGet = function() { + return this.$target[this.$index]; +}; +var $indexPtrSet = function(v) { + this.$target[this.$index] = v; +}; var $indexPtr = (array, index, constructor) => { + var makeIndexPtr = () => { + if (constructor.elem.kind === $kindStruct || constructor.elem.kind === $kindArray) { + var ptr = array[index]; + if (ptr === void 0) { + ptr = array[index] = constructor.elem.zero(); + } + ptr.$val = ptr; + ptr.$target = array; + ptr.$index = index; + ptr.$get = $indexPtrGet; + ptr.$set = (v) => { + constructor.elem.copy(array[index], v); + }; + return ptr; + } + return new constructor($indexPtrGet, $indexPtrSet, array, index); + }; if (array.buffer) { var cache = array.buffer.$ptr = array.buffer.$ptr || {}; var typeCache = cache[array.name] = cache[array.name] || {}; var cacheIdx = array.BYTES_PER_ELEMENT * index + array.byteOffset; - return typeCache[cacheIdx] || (typeCache[cacheIdx] = new constructor(() => { - return array[index]; - }, (v) => { - array[index] = v; - })); + return typeCache[cacheIdx] || (typeCache[cacheIdx] = makeIndexPtr()); } else { array.$ptr = array.$ptr || {}; - return array.$ptr[index] || (array.$ptr[index] = new constructor(() => { - return array[index]; - }, (v) => { - array[index] = v; - })); + return array.$ptr[index] || (array.$ptr[index] = makeIndexPtr()); } }; var $sliceType = (elem) => { @@ -1497,8 +1671,8 @@ var $assertType = (value, type, returnTuple) => { } else if (!isInterface) { ok = value.constructor === type; } else { - var valueTypeString = value.constructor.string; - ok = type.implementedBy[valueTypeString]; + var valueTypeId = value.constructor.id; + ok = type.implementedBy[valueTypeId]; if (ok === void 0) { ok = true; var valueMethodSet = $methodSet(value.constructor); @@ -1515,14 +1689,14 @@ var $assertType = (value, type, returnTuple) => { } if (!found) { ok = false; - type.missingMethodFor[valueTypeString] = tm.name; + type.missingMethodFor[valueTypeId] = tm.name; break; } } - type.implementedBy[valueTypeString] = ok; + type.implementedBy[valueTypeId] = ok; } if (!ok) { - missingMethod = type.missingMethodFor[valueTypeString]; + missingMethod = type.missingMethodFor[valueTypeId]; } } if (!ok) { @@ -1640,7 +1814,11 @@ var $callDeferred = (deferred, jsErr, fromPanic) => { $stackDepthOffset++; } }; +var $panicnil = "0"; var $panic = (value) => { + if (value === $ifaceNil && $panicnil !== "1") { + value = $newPanicNilError(); + } $curGoroutine.panicStack.push(value); $callDeferred(null, null, true); }; @@ -2479,7 +2657,7 @@ $packages["github.com/gopherjs/gopherjs/js"] = (function() { return $pkg; })(); $packages["runtime"] = (function() { - var $pkg = {}, $init, js, _type, TypeAssertionError, basicFrame, Frames, Frame, Func, errorString, ptrType, sliceType, ptrType$1, structType, sliceType$1, sliceType$2, ptrType$2, ptrType$3, buildVersion, godebugUpdate, knownPositions, positionCounters, hiddenFrames, knownFrames, init, GOROOT, registerPosition, itoa, callstack, parseCallstack, ParseCallFrame, Caller, Callers, CallersFrames, SetFinalizer, FuncForPC, KeepAlive, throw$1, nanotime, godebug_setUpdate, getEnvString, godebug_notify, fastrand, fastrand64; + var $pkg = {}, $init, js, _type, TypeAssertionError, PanicNilError, basicFrame, Frames, Frame, Func, errorString, ptrType, sliceType, ptrType$1, ptrType$2, arrayType, structType, sliceType$1, sliceType$2, ptrType$3, ptrType$4, buildVersion, godebugUpdate, knownPositions, positionCounters, hiddenFrames, knownFrames, newPanicNilError, init, GOROOT, registerPosition, callstack, parseCallstack, Callers, CallersFrames, SetFinalizer, FuncForPC, KeepAlive, throw$1, nanotime, getEnvString, godebug_notify, syncPanicNilFromGodebug, fastrand; js = $packages["github.com/gopherjs/gopherjs/js"]; _type = $newType(0, $kindStruct, "runtime._type", true, "runtime", false, function(str_) { this.$val = this; @@ -2503,6 +2681,14 @@ $packages["runtime"] = (function() { this.asserted = asserted_; this.missingMethod = missingMethod_; }); + PanicNilError = $newType(0, $kindStruct, "runtime.PanicNilError", true, "runtime", true, function(_$0_) { + this.$val = this; + if (arguments.length === 0) { + this._$0 = arrayType.zero(); + return; + } + this._$0 = _$0_; + }); basicFrame = $newType(0, $kindStruct, "runtime.basicFrame", true, "runtime", false, function(FuncName_, File_, Line_, Col_) { this.$val = this; if (arguments.length === 0) { @@ -2562,6 +2748,7 @@ $packages["runtime"] = (function() { errorString = $newType(8, $kindString, "runtime.errorString", true, "runtime", false, null); $pkg._type = _type; $pkg.TypeAssertionError = TypeAssertionError; + $pkg.PanicNilError = PanicNilError; $pkg.basicFrame = basicFrame; $pkg.Frames = Frames; $pkg.Frame = Frame; @@ -2571,11 +2758,13 @@ $packages["runtime"] = (function() { ptrType = $ptrType(Func); sliceType = $sliceType(ptrType); ptrType$1 = $ptrType(_type); + ptrType$2 = $ptrType(PanicNilError); + arrayType = $arrayType(ptrType$2, 0); structType = $structType("", []); sliceType$1 = $sliceType(basicFrame); sliceType$2 = $sliceType(Frame); - ptrType$2 = $ptrType(TypeAssertionError); - ptrType$3 = $ptrType(Frames); + ptrType$3 = $ptrType(TypeAssertionError); + ptrType$4 = $ptrType(Frames); $ptrType(_type).prototype.string = function string() { var t; t = this; @@ -2613,13 +2802,23 @@ $packages["runtime"] = (function() { } return "interface conversion: " + cs + " is not " + as + ": missing method " + e.missingMethod; }; + $ptrType(PanicNilError).prototype.Error = function Error$2() { + return "panic called with nil argument"; + }; + $ptrType(PanicNilError).prototype.RuntimeError = function RuntimeError$1() { + }; + newPanicNilError = function newPanicNilError$1() { + return new PanicNilError.ptr(arrayType.zero()); + }; init = function init$1() { var e, jsPkg; jsPkg = $packages[$externalize("github.com/gopherjs/gopherjs/js", $String)]; $jsObjectPtr = jsPkg.Object.ptr; $jsErrorPtr = jsPkg.Error.ptr; $throwRuntimeError = throw$1; + $newPanicNilError = newPanicNilError; buildVersion = $internalize($goVersion, $String); + syncPanicNilFromGodebug(getEnvString("GODEBUG")); e = $ifaceNil; e = new TypeAssertionError.ptr(ptrType$1.nil, ptrType$1.nil, ptrType$1.nil, ""); $unused(e); @@ -2642,126 +2841,59 @@ $packages["runtime"] = (function() { return "/usr/local/go"; }; $pkg.GOROOT = GOROOT; - registerPosition = function registerPosition$1(funcName, file, line, col) { - var _entry, _key, _tuple, col, f, file, found, funcName, key, line, pc, pc$1; - key = file + ":" + itoa(line) + ":" + itoa(col); - _tuple = (_entry = $mapIndex(knownPositions,$String.keyFor(key)), _entry !== undefined ? [_entry.v, true] : [0, false]); + registerPosition = function registerPosition$1(frame) { + var _entry, _key, _tuple, f, found, frame, pc, pc$1; + _tuple = (_entry = $mapIndex(knownPositions,basicFrame.keyFor(frame)), _entry !== undefined ? [_entry.v, true] : [0, false]); pc = _tuple[0]; found = _tuple[1]; if (found) { return pc; } - f = new Func.ptr(funcName, file, line, new structType.ptr()); + f = new Func.ptr(frame.FuncName, frame.File, frame.Line, new structType.ptr()); pc$1 = ((positionCounters.$length >>> 0)); positionCounters = $append(positionCounters, f); - _key = key; (knownPositions || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: pc$1 }); + _key = $clone(frame, basicFrame); (knownPositions || $throwRuntimeError("assignment to entry in nil map")).set(basicFrame.keyFor(_key), { k: _key, v: pc$1 }); return pc$1; }; - itoa = function itoa$1(i) { - var i; - return $internalize(new ($global.String)(i), $String); - }; callstack = function callstack$1(skip, limit) { var limit, lines, skip; - skip = (skip + 1 >> 0) + 1 >> 0; - lines = new ($global.Error)().stack.split($externalize("\n", $String)).slice(skip, skip + limit >> 0); - return parseCallstack(lines); + if (limit <= 0) { + return new sliceType$1([]); + } + skip = skip + 2 >> 0; + lines = $callstack(skip, limit); + return parseCallstack(lines, limit); }; - parseCallstack = function parseCallstack$1(lines) { - var _entry, _entry$1, _tuple, alias, frame, frames, i, l, lines, ok; + parseCallstack = function parseCallstack$1(lines, limit) { + var _entry, _entry$1, _tuple, alias, frame, frames, funcName, i, l, limit, lines, ok; frames = new sliceType$1([]); l = $parseInt(lines.length); i = 0; while (true) { if (!(i < l)) { break; } - frame = $clone(ParseCallFrame(lines[i]), basicFrame); - if ((_entry = $mapIndex(hiddenFrames,$String.keyFor(frame.FuncName)), _entry !== undefined ? _entry.v : false)) { + frame = $parseCallFrame(lines[i]); + funcName = $internalize(frame[0], $String); + if ((_entry = $mapIndex(hiddenFrames,$String.keyFor(funcName)), _entry !== undefined ? _entry.v : false)) { i = i + (1) >> 0; continue; } - _tuple = (_entry$1 = $mapIndex(knownFrames,$String.keyFor(frame.FuncName)), _entry$1 !== undefined ? [_entry$1.v, true] : ["", false]); + _tuple = (_entry$1 = $mapIndex(knownFrames,$String.keyFor(funcName)), _entry$1 !== undefined ? [_entry$1.v, true] : ["", false]); alias = _tuple[0]; ok = _tuple[1]; if (ok) { - frame.FuncName = alias; + funcName = alias; + } + frames = $append(frames, new basicFrame.ptr(funcName, $internalize(frame[1], $String), $parseInt(frame[2]) >> 0, $parseInt(frame[3]) >> 0)); + if (funcName === "runtime.goexit") { + break; } - frames = $append(frames, frame); - if (frame.FuncName === "runtime.goexit") { + if (frames.$length >= limit) { break; } i = i + (1) >> 0; } return frames; }; - ParseCallFrame = function ParseCallFrame$1(info) { - var _tmp, _tmp$1, _tmp$2, _tmp$3, col, file, fn, funcName, idx, info, line, openIdx, parts, parts$1, parts$2, pos, split; - if (($parseInt(info.indexOf($externalize("@", $String))) >> 0) >= 0) { - split = new ($global.RegExp)($externalize("[@:]", $String)); - parts = info.split(split); - return new basicFrame.ptr($internalize(parts[0], $String), $internalize(parts.slice(1, $parseInt(parts.length) - 2 >> 0).join($externalize(":", $String)), $String), $parseInt(parts[($parseInt(parts.length) - 2 >> 0)]) >> 0, $parseInt(parts[($parseInt(parts.length) - 1 >> 0)]) >> 0); - } - openIdx = $parseInt(info.lastIndexOf($externalize("(", $String))) >> 0; - if (openIdx === -1) { - parts$1 = info.split($externalize(":", $String)); - return new basicFrame.ptr("", $internalize(parts$1.slice(0, $parseInt(parts$1.length) - 2 >> 0).join($externalize(":", $String)).replace(new ($global.RegExp)($externalize("^\\s*at ", $String)), $externalize("", $String)), $String), $parseInt(parts$1[($parseInt(parts$1.length) - 2 >> 0)]) >> 0, $parseInt(parts$1[($parseInt(parts$1.length) - 1 >> 0)]) >> 0); - } - _tmp = ""; - _tmp$1 = ""; - file = _tmp; - funcName = _tmp$1; - _tmp$2 = 0; - _tmp$3 = 0; - line = _tmp$2; - col = _tmp$3; - pos = info.substring(openIdx + 1 >> 0, $parseInt(info.indexOf($externalize(")", $String))) >> 0); - parts$2 = pos.split($externalize(":", $String)); - if ($internalize(pos, $String) === "") { - file = ""; - } else { - file = $internalize(parts$2.slice(0, $parseInt(parts$2.length) - 2 >> 0).join($externalize(":", $String)), $String); - line = $parseInt(parts$2[($parseInt(parts$2.length) - 2 >> 0)]) >> 0; - col = $parseInt(parts$2[($parseInt(parts$2.length) - 1 >> 0)]) >> 0; - } - fn = info.substring(($parseInt(info.indexOf($externalize("at ", $String))) >> 0) + 3 >> 0, $parseInt(info.indexOf($externalize(" (", $String))) >> 0); - idx = $parseInt(fn.indexOf($externalize("[as ", $String))) >> 0; - if (idx > 0) { - fn = fn.substring(idx + 4 >> 0, fn.indexOf($externalize("]", $String))); - } - funcName = $internalize(fn, $String); - return new basicFrame.ptr(funcName, file, line, col); - }; - $pkg.ParseCallFrame = ParseCallFrame; - Caller = function Caller$1(skip) { - var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, file, frames, line, ok, pc, skip; - pc = 0; - file = ""; - line = 0; - ok = false; - skip = skip + 1 >> 0; - frames = callstack(skip, 1); - if (!((frames.$length === 1))) { - _tmp = 0; - _tmp$1 = ""; - _tmp$2 = 0; - _tmp$3 = false; - pc = _tmp; - file = _tmp$1; - line = _tmp$2; - ok = _tmp$3; - return [pc, file, line, ok]; - } - pc = registerPosition((0 >= frames.$length ? ($throwRuntimeError("index out of range"), undefined) : frames.$array[frames.$offset + 0]).FuncName, (0 >= frames.$length ? ($throwRuntimeError("index out of range"), undefined) : frames.$array[frames.$offset + 0]).File, (0 >= frames.$length ? ($throwRuntimeError("index out of range"), undefined) : frames.$array[frames.$offset + 0]).Line, (0 >= frames.$length ? ($throwRuntimeError("index out of range"), undefined) : frames.$array[frames.$offset + 0]).Col); - _tmp$4 = pc; - _tmp$5 = (0 >= frames.$length ? ($throwRuntimeError("index out of range"), undefined) : frames.$array[frames.$offset + 0]).File; - _tmp$6 = (0 >= frames.$length ? ($throwRuntimeError("index out of range"), undefined) : frames.$array[frames.$offset + 0]).Line; - _tmp$7 = true; - pc = _tmp$4; - file = _tmp$5; - line = _tmp$6; - ok = _tmp$7; - return [pc, file, line, ok]; - }; - $pkg.Caller = Caller; Callers = function Callers$1(skip, pc) { var _i, _ref, frame, frames, i, pc, skip; frames = callstack(skip, pc.$length); @@ -2771,7 +2903,7 @@ $packages["runtime"] = (function() { if (!(_i < _ref.$length)) { break; } i = _i; frame = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), basicFrame); - ((i < 0 || i >= pc.$length) ? ($throwRuntimeError("index out of range"), undefined) : pc.$array[pc.$offset + i] = registerPosition(frame.FuncName, frame.File, frame.Line, frame.Col)); + ((i < 0 || i >= pc.$length) ? ($throwRuntimeError("index out of range"), undefined) : pc.$array[pc.$offset + i] = registerPosition($clone(frame, basicFrame))); _i++; } return frames.$length; @@ -2786,6 +2918,11 @@ $packages["runtime"] = (function() { if (!(_i < _ref.$length)) { break; } pc = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); fun = FuncForPC(pc); + if (fun === ptrType.nil) { + result.frames = $append(result.frames, new Frame.ptr(pc, ptrType.nil, "", "", 0, 0)); + _i++; + continue; + } result.frames = $append(result.frames, new Frame.ptr(pc, fun, fun.name, fun.file, fun.line, fun.Entry())); _i++; } @@ -2848,8 +2985,8 @@ $packages["runtime"] = (function() { FuncForPC = function FuncForPC$1(pc) { var ipc, pc; ipc = ((pc >> 0)); - if (ipc >= positionCounters.$length) { - $panic(new $String("GopherJS: pc=" + itoa(ipc) + " is out of range of known position counters")); + if (ipc <= 0 || ipc >= positionCounters.$length) { + return ptrType.nil; } return ((ipc < 0 || ipc >= positionCounters.$length) ? ($throwRuntimeError("index out of range"), undefined) : positionCounters.$array[positionCounters.$offset + ipc]); }; @@ -2858,12 +2995,12 @@ $packages["runtime"] = (function() { var param; }; $pkg.KeepAlive = KeepAlive; - errorString.prototype.RuntimeError = function RuntimeError$1() { + errorString.prototype.RuntimeError = function RuntimeError$2() { var e; e = this.$val; }; $ptrType(errorString).prototype.RuntimeError = function(...$args) { return new errorString(this.$get()).RuntimeError(...$args); }; - errorString.prototype.Error = function Error$2() { + errorString.prototype.Error = function Error$3() { var e; e = this.$val; return "runtime error: " + (e); @@ -2876,15 +3013,6 @@ $packages["runtime"] = (function() { nanotime = function nanotime$1() { return $mul64($internalize(new ($global.Date)().getTime(), $Int64), new $Int64(0, 1000000)); }; - godebug_setUpdate = function godebug_setUpdate$1(update) { - var {godebugEnv, update, $s, $r, $c} = $restore(this, {update}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - godebugUpdate = update; - godebugEnv = getEnvString("GODEBUG"); - $r = godebug_notify("GODEBUG", godebugEnv); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: godebug_setUpdate$1, $c: true, $r, godebugEnv, update, $s};return $f; - }; getEnvString = function getEnvString$1(key) { var env, key, process, value; process = $global.process; @@ -2904,38 +3032,51 @@ $packages["runtime"] = (function() { godebug_notify = function godebug_notify$1(key, value) { var {godebugDefault, key, update, value, $s, $r, $c} = $restore(this, {key, value}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - update = godebugUpdate; - if (update === $throwNilPointerError || !(key === "GODEBUG")) { + if (!(key === "GODEBUG")) { $s = -1; return; } - godebugDefault = ""; - $r = update(godebugDefault, value); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + update = godebugUpdate; + /* */ if (!(update === $throwNilPointerError)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(update === $throwNilPointerError)) { */ case 1: + godebugDefault = ""; + $r = update(godebugDefault, value); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + syncPanicNilFromGodebug(value); $s = -1; return; /* */ } return; } var $f = {$blk: godebug_notify$1, $c: true, $r, godebugDefault, key, update, value, $s};return $f; }; + syncPanicNilFromGodebug = function syncPanicNilFromGodebug$1(godebug) { + var godebug, m, panicnil, re; + panicnil = "0"; + if (!(godebug === "")) { + re = new ($global.RegExp)($externalize("(?:^|,)panicnil=(\\d+)(?:,|$)", $String)); + m = re.exec($externalize(godebug, $String)); + if (!(m === null) && !(m === undefined) && $parseInt(m.length) >= 2) { + panicnil = $internalize(m[1], $String); + } + } + $panicnil = $externalize(panicnil, $String); + }; fastrand = function fastrand$1() { return (($parseFloat($global.Math.random()) * 4.294967295e+09 >>> 0)); }; - fastrand64 = function fastrand64$1() { - var x, x$1; - return (x = $shiftLeft64((new $Uint64(0, fastrand())), 32), x$1 = (new $Uint64(0, fastrand())), new $Uint64(x.$high | x$1.$high, (x.$low | x$1.$low) >>> 0)); - }; ptrType$1.methods = [{prop: "string", name: "string", pkg: "runtime", typ: $funcType([], [$String], false)}, {prop: "pkgpath", name: "pkgpath", pkg: "runtime", typ: $funcType([], [$String], false)}]; - ptrType$2.methods = [{prop: "RuntimeError", name: "RuntimeError", pkg: "", typ: $funcType([], [], false)}, {prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$3.methods = [{prop: "Next", name: "Next", pkg: "", typ: $funcType([], [Frame, $Bool], false)}]; + ptrType$3.methods = [{prop: "RuntimeError", name: "RuntimeError", pkg: "", typ: $funcType([], [], false)}, {prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$2.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "RuntimeError", name: "RuntimeError", pkg: "", typ: $funcType([], [], false)}]; + ptrType$4.methods = [{prop: "Next", name: "Next", pkg: "", typ: $funcType([], [Frame, $Bool], false)}]; ptrType.methods = [{prop: "Entry", name: "Entry", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "FileLine", name: "FileLine", pkg: "", typ: $funcType([$Uintptr], [$String, $Int], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}]; errorString.methods = [{prop: "RuntimeError", name: "RuntimeError", pkg: "", typ: $funcType([], [], false)}, {prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; _type.init("runtime", [{prop: "str", name: "str", embedded: false, exported: false, typ: $String, tag: ""}]); TypeAssertionError.init("runtime", [{prop: "_interface", name: "_interface", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "concrete", name: "concrete", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "asserted", name: "asserted", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "missingMethod", name: "missingMethod", embedded: false, exported: false, typ: $String, tag: ""}]); + PanicNilError.init("runtime", [{prop: "_$0", name: "_", embedded: false, exported: false, typ: arrayType, tag: ""}]); basicFrame.init("", [{prop: "FuncName", name: "FuncName", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "File", name: "File", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Line", name: "Line", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Col", name: "Col", embedded: false, exported: true, typ: $Int, tag: ""}]); Frames.init("runtime", [{prop: "frames", name: "frames", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "current", name: "current", embedded: false, exported: false, typ: $Int, tag: ""}]); Frame.init("", [{prop: "PC", name: "PC", embedded: false, exported: true, typ: $Uintptr, tag: ""}, {prop: "Func", name: "Func", embedded: false, exported: true, typ: ptrType, tag: ""}, {prop: "Function", name: "Function", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "File", name: "File", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Line", name: "Line", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Entry", name: "Entry", embedded: false, exported: true, typ: $Uintptr, tag: ""}]); Func.init("runtime", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "file", name: "file", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "line", name: "line", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "opaque", name: "opaque", embedded: false, exported: false, typ: structType, tag: ""}]); $linknames["runtime.nanotime"] = nanotime; - $linknames["runtime.godebug_setUpdate"] = godebug_setUpdate; $linknames["runtime.godebug_notify"] = godebug_notify; $linknames["runtime.fastrand"] = fastrand; - $linknames["runtime.fastrand64"] = fastrand64; }; $init = function() { $pkg.$init = function() {}; @@ -2943,8 +3084,8 @@ $packages["runtime"] = (function() { $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } buildVersion = ""; godebugUpdate = $throwNilPointerError; - knownPositions = $makeMap($String.keyFor, []); - positionCounters = new sliceType([]); + knownPositions = $makeMap(basicFrame.keyFor, []); + positionCounters = new sliceType([ptrType.nil]); hiddenFrames = $makeMap($String.keyFor, [{ k: "$callDeferred", v: true }]); knownFrames = $makeMap($String.keyFor, [{ k: "$panic", v: "runtime.gopanic" }, { k: "$goroutine", v: "runtime.goexit" }]); init(); @@ -2965,444 +3106,260 @@ $packages["internal/goarch"] = (function() { $pkg.$init = $init; return $pkg; })(); -$packages["internal/reflectlite"] = (function() { - var $pkg = {}, $init, js, goarch, Value, flag, ValueError, Type, Kind, tflag, rtype, method, chanDir, arrayType, chanType, imethod, interfaceType, mapType, ptrType, sliceType, structField, structType, nameOff, typeOff, textOff, errorString, Method, uncommonType, funcType, name, nameData, mapIter, TypeEx, ptrType$1, sliceType$1, sliceType$2, sliceType$3, sliceType$4, ptrType$2, funcType$1, ptrType$4, sliceType$5, ptrType$5, sliceType$6, ptrType$6, ptrType$7, sliceType$7, sliceType$8, sliceType$9, sliceType$10, ptrType$8, structType$2, ptrType$9, arrayType$2, sliceType$13, ptrType$10, funcType$2, ptrType$11, funcType$3, ptrType$12, ptrType$13, uint8Type, nameOffList, typeOffList, kindNames, callHelper, initialized, idJsType, idReflectType, idKindType, idRtype, uncommonTypeMap, nameMap, jsObjectPtr, selectHelper, implements$1, directlyAssignable, haveIdenticalType, haveIdenticalUnderlyingType, toType, ifaceIndir, unquote, Swapper, init, jsType, reflectType, setKindType, newName, newNameOff, newTypeOff, internalStr, isWrapped, copyStruct, makeValue, TypeOf, ValueOf, FuncOf, SliceOf, unsafe_New, typedmemmove, keyFor, mapaccess, mapiterinit, mapiterkey, mapiternext, maplen, methodReceiver, valueInterface, ifaceE2I, methodName, makeMethodValue, wrapJsObject, unwrapJsObject, getJsTag, PtrTo, copyVal; +$packages["internal/abi"] = (function() { + var $pkg = {}, $init, js, goarch, Type, Kind, TFlag, Method, Imethod, ArrayType, ChanDir, ChanType, InterfaceType, MapType, SliceType, PtrType, StructField, StructType, UncommonType, FuncType, Name, NameOff, TypeOff, TextOff, sliceType, ptrType, ptrType$1, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, sliceType$1, ptrType$7, sliceType$2, sliceType$3, sliceType$4, structType, ptrType$9, funcType, funcType$1, ptrType$10, ptrType$11, kindNames, UnsafeNew, IfaceE2I, TypedMemMove, ReflectType, setKindType, NewName, ResolveReflectName, ResolveReflectType, internalStr, WrapJsObject, UnwrapJsObject, CopyStruct; js = $packages["github.com/gopherjs/gopherjs/js"]; goarch = $packages["internal/goarch"]; - Value = $newType(0, $kindStruct, "reflectlite.Value", true, "internal/reflectlite", true, function(typ_, ptr_, flag_) { - this.$val = this; - if (arguments.length === 0) { - this.typ = ptrType$1.nil; - this.ptr = 0; - this.flag = 0; - return; - } - this.typ = typ_; - this.ptr = ptr_; - this.flag = flag_; - }); - flag = $newType(4, $kindUintptr, "reflectlite.flag", true, "internal/reflectlite", false, null); - ValueError = $newType(0, $kindStruct, "reflectlite.ValueError", true, "internal/reflectlite", true, function(Method_, Kind_) { - this.$val = this; - if (arguments.length === 0) { - this.Method = ""; - this.Kind = 0; - return; - } - this.Method = Method_; - this.Kind = Kind_; - }); - Type = $newType(8, $kindInterface, "reflectlite.Type", true, "internal/reflectlite", true, null); - Kind = $newType(4, $kindUint, "reflectlite.Kind", true, "internal/reflectlite", true, null); - tflag = $newType(1, $kindUint8, "reflectlite.tflag", true, "internal/reflectlite", false, null); - rtype = $newType(0, $kindStruct, "reflectlite.rtype", true, "internal/reflectlite", false, function(size_, ptrdata_, hash_, tflag_, align_, fieldAlign_, kind_, equal_, gcdata_, str_, ptrToThis_) { - this.$val = this; - if (arguments.length === 0) { - this.size = 0; - this.ptrdata = 0; - this.hash = 0; - this.tflag = 0; - this.align = 0; - this.fieldAlign = 0; - this.kind = 0; - this.equal = $throwNilPointerError; - this.gcdata = ptrType$6.nil; - this.str = 0; - this.ptrToThis = 0; - return; - } - this.size = size_; - this.ptrdata = ptrdata_; - this.hash = hash_; - this.tflag = tflag_; - this.align = align_; - this.fieldAlign = fieldAlign_; - this.kind = kind_; - this.equal = equal_; - this.gcdata = gcdata_; - this.str = str_; - this.ptrToThis = ptrToThis_; - }); - method = $newType(0, $kindStruct, "reflectlite.method", true, "internal/reflectlite", false, function(name_, mtyp_, ifn_, tfn_) { - this.$val = this; - if (arguments.length === 0) { - this.name = 0; - this.mtyp = 0; - this.ifn = 0; - this.tfn = 0; - return; - } - this.name = name_; - this.mtyp = mtyp_; - this.ifn = ifn_; - this.tfn = tfn_; - }); - chanDir = $newType(4, $kindInt, "reflectlite.chanDir", true, "internal/reflectlite", false, null); - arrayType = $newType(0, $kindStruct, "reflectlite.arrayType", true, "internal/reflectlite", false, function(rtype_, elem_, slice_, len_) { - this.$val = this; - if (arguments.length === 0) { - this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0); - this.elem = ptrType$1.nil; - this.slice = ptrType$1.nil; - this.len = 0; - return; - } - this.rtype = rtype_; - this.elem = elem_; - this.slice = slice_; - this.len = len_; - }); - chanType = $newType(0, $kindStruct, "reflectlite.chanType", true, "internal/reflectlite", false, function(rtype_, elem_, dir_) { + Type = $newType(0, $kindStruct, "abi.Type", true, "internal/abi", true, function(Size__, PtrBytes_, Hash_, TFlag_, Align__, FieldAlign__, Kind__, Equal_, GCData_, Str_, PtrToThis_) { this.$val = this; if (arguments.length === 0) { - this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0); - this.elem = ptrType$1.nil; - this.dir = 0; + this.Size_ = 0; + this.PtrBytes = 0; + this.Hash = 0; + this.TFlag = 0; + this.Align_ = 0; + this.FieldAlign_ = 0; + this.Kind_ = 0; + this.Equal = $throwNilPointerError; + this.GCData = ptrType$7.nil; + this.Str = NameOff.nil; + this.PtrToThis = TypeOff.nil; return; } - this.rtype = rtype_; - this.elem = elem_; - this.dir = dir_; + this.Size_ = Size__; + this.PtrBytes = PtrBytes_; + this.Hash = Hash_; + this.TFlag = TFlag_; + this.Align_ = Align__; + this.FieldAlign_ = FieldAlign__; + this.Kind_ = Kind__; + this.Equal = Equal_; + this.GCData = GCData_; + this.Str = Str_; + this.PtrToThis = PtrToThis_; }); - imethod = $newType(0, $kindStruct, "reflectlite.imethod", true, "internal/reflectlite", false, function(name_, typ_) { + Kind = $newType(4, $kindUint, "abi.Kind", true, "internal/abi", true, null); + TFlag = $newType(1, $kindUint8, "abi.TFlag", true, "internal/abi", true, null); + Method = $newType(0, $kindStruct, "abi.Method", true, "internal/abi", true, function(Name_, Mtyp_, Ifn_, Tfn_) { this.$val = this; if (arguments.length === 0) { - this.name = 0; - this.typ = 0; + this.Name = NameOff.nil; + this.Mtyp = TypeOff.nil; + this.Ifn = 0; + this.Tfn = 0; return; } - this.name = name_; - this.typ = typ_; + this.Name = Name_; + this.Mtyp = Mtyp_; + this.Ifn = Ifn_; + this.Tfn = Tfn_; }); - interfaceType = $newType(0, $kindStruct, "reflectlite.interfaceType", true, "internal/reflectlite", false, function(rtype_, pkgPath_, methods_) { + Imethod = $newType(0, $kindStruct, "abi.Imethod", true, "internal/abi", true, function(Name_, Typ_) { this.$val = this; if (arguments.length === 0) { - this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0); - this.pkgPath = new name.ptr(ptrType$6.nil); - this.methods = sliceType$9.nil; + this.Name = NameOff.nil; + this.Typ = TypeOff.nil; return; } - this.rtype = rtype_; - this.pkgPath = pkgPath_; - this.methods = methods_; + this.Name = Name_; + this.Typ = Typ_; }); - mapType = $newType(0, $kindStruct, "reflectlite.mapType", true, "internal/reflectlite", false, function(rtype_, key_, elem_, bucket_, hasher_, keysize_, valuesize_, bucketsize_, flags_) { + ArrayType = $newType(0, $kindStruct, "abi.ArrayType", true, "internal/abi", true, function(Type_, Elem_, Slice_, Len_) { this.$val = this; if (arguments.length === 0) { - this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0); - this.key = ptrType$1.nil; - this.elem = ptrType$1.nil; - this.bucket = ptrType$1.nil; - this.hasher = $throwNilPointerError; - this.keysize = 0; - this.valuesize = 0; - this.bucketsize = 0; - this.flags = 0; + this.Type = new Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$7.nil, NameOff.nil, TypeOff.nil); + this.Elem = ptrType.nil; + this.Slice = ptrType.nil; + this.Len = 0; return; } - this.rtype = rtype_; - this.key = key_; - this.elem = elem_; - this.bucket = bucket_; - this.hasher = hasher_; - this.keysize = keysize_; - this.valuesize = valuesize_; - this.bucketsize = bucketsize_; - this.flags = flags_; + this.Type = Type_; + this.Elem = Elem_; + this.Slice = Slice_; + this.Len = Len_; }); - ptrType = $newType(0, $kindStruct, "reflectlite.ptrType", true, "internal/reflectlite", false, function(rtype_, elem_) { + ChanDir = $newType(4, $kindInt, "abi.ChanDir", true, "internal/abi", true, null); + ChanType = $newType(0, $kindStruct, "abi.ChanType", true, "internal/abi", true, function(Type_, Elem_, Dir_) { this.$val = this; if (arguments.length === 0) { - this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0); - this.elem = ptrType$1.nil; + this.Type = new Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$7.nil, NameOff.nil, TypeOff.nil); + this.Elem = ptrType.nil; + this.Dir = 0; return; } - this.rtype = rtype_; - this.elem = elem_; + this.Type = Type_; + this.Elem = Elem_; + this.Dir = Dir_; }); - sliceType = $newType(0, $kindStruct, "reflectlite.sliceType", true, "internal/reflectlite", false, function(rtype_, elem_) { + InterfaceType = $newType(0, $kindStruct, "abi.InterfaceType", true, "internal/abi", true, function(Type_, PkgPath_, Methods_) { this.$val = this; if (arguments.length === 0) { - this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0); - this.elem = ptrType$1.nil; + this.Type = new Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$7.nil, NameOff.nil, TypeOff.nil); + this.PkgPath = new Name.ptr("", "", false, false, ""); + this.Methods = sliceType$3.nil; return; } - this.rtype = rtype_; - this.elem = elem_; + this.Type = Type_; + this.PkgPath = PkgPath_; + this.Methods = Methods_; }); - structField = $newType(0, $kindStruct, "reflectlite.structField", true, "internal/reflectlite", false, function(name_, typ_, offset_) { + MapType = $newType(0, $kindStruct, "abi.MapType", true, "internal/abi", true, function(Type_, Key_, Elem_, Bucket_, Hasher_, KeySize_, ValueSize_, BucketSize_, Flags_) { this.$val = this; if (arguments.length === 0) { - this.name = new name.ptr(ptrType$6.nil); - this.typ = ptrType$1.nil; - this.offset = 0; + this.Type = new Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$7.nil, NameOff.nil, TypeOff.nil); + this.Key = ptrType.nil; + this.Elem = ptrType.nil; + this.Bucket = ptrType.nil; + this.Hasher = $throwNilPointerError; + this.KeySize = 0; + this.ValueSize = 0; + this.BucketSize = 0; + this.Flags = 0; return; } - this.name = name_; - this.typ = typ_; - this.offset = offset_; + this.Type = Type_; + this.Key = Key_; + this.Elem = Elem_; + this.Bucket = Bucket_; + this.Hasher = Hasher_; + this.KeySize = KeySize_; + this.ValueSize = ValueSize_; + this.BucketSize = BucketSize_; + this.Flags = Flags_; }); - structType = $newType(0, $kindStruct, "reflectlite.structType", true, "internal/reflectlite", false, function(rtype_, pkgPath_, fields_) { + SliceType = $newType(0, $kindStruct, "abi.SliceType", true, "internal/abi", true, function(Type_, Elem_) { this.$val = this; if (arguments.length === 0) { - this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0); - this.pkgPath = new name.ptr(ptrType$6.nil); - this.fields = sliceType$10.nil; + this.Type = new Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$7.nil, NameOff.nil, TypeOff.nil); + this.Elem = ptrType.nil; return; } - this.rtype = rtype_; - this.pkgPath = pkgPath_; - this.fields = fields_; + this.Type = Type_; + this.Elem = Elem_; }); - nameOff = $newType(4, $kindInt32, "reflectlite.nameOff", true, "internal/reflectlite", false, null); - typeOff = $newType(4, $kindInt32, "reflectlite.typeOff", true, "internal/reflectlite", false, null); - textOff = $newType(4, $kindInt32, "reflectlite.textOff", true, "internal/reflectlite", false, null); - errorString = $newType(0, $kindStruct, "reflectlite.errorString", true, "internal/reflectlite", false, function(s_) { + PtrType = $newType(0, $kindStruct, "abi.PtrType", true, "internal/abi", true, function(Type_, Elem_) { this.$val = this; if (arguments.length === 0) { - this.s = ""; + this.Type = new Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$7.nil, NameOff.nil, TypeOff.nil); + this.Elem = ptrType.nil; return; } - this.s = s_; + this.Type = Type_; + this.Elem = Elem_; }); - Method = $newType(0, $kindStruct, "reflectlite.Method", true, "internal/reflectlite", true, function(Name_, PkgPath_, Type_, Func_, Index_) { + StructField = $newType(0, $kindStruct, "abi.StructField", true, "internal/abi", true, function(Name_, Typ_, Offset_) { this.$val = this; if (arguments.length === 0) { - this.Name = ""; - this.PkgPath = ""; - this.Type = $ifaceNil; - this.Func = new Value.ptr(ptrType$1.nil, 0, 0); - this.Index = 0; + this.Name = new Name.ptr("", "", false, false, ""); + this.Typ = ptrType.nil; + this.Offset = 0; return; } this.Name = Name_; - this.PkgPath = PkgPath_; - this.Type = Type_; - this.Func = Func_; - this.Index = Index_; + this.Typ = Typ_; + this.Offset = Offset_; }); - uncommonType = $newType(0, $kindStruct, "reflectlite.uncommonType", true, "internal/reflectlite", false, function(pkgPath_, mcount_, xcount_, moff_, _methods_) { + StructType = $newType(0, $kindStruct, "abi.StructType", true, "internal/abi", true, function(Type_, PkgPath_, Fields_) { this.$val = this; if (arguments.length === 0) { - this.pkgPath = 0; - this.mcount = 0; - this.xcount = 0; - this.moff = 0; - this._methods = sliceType$5.nil; + this.Type = new Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$7.nil, NameOff.nil, TypeOff.nil); + this.PkgPath = new Name.ptr("", "", false, false, ""); + this.Fields = sliceType$4.nil; return; } - this.pkgPath = pkgPath_; - this.mcount = mcount_; - this.xcount = xcount_; - this.moff = moff_; - this._methods = _methods_; + this.Type = Type_; + this.PkgPath = PkgPath_; + this.Fields = Fields_; }); - funcType = $newType(0, $kindStruct, "reflectlite.funcType", true, "internal/reflectlite", false, function(rtype_, inCount_, outCount_, _in_, _out_) { + UncommonType = $newType(0, $kindStruct, "abi.UncommonType", true, "internal/abi", true, function(PkgPath_, Mcount_, Xcount_, Methods__) { this.$val = this; if (arguments.length === 0) { - this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0); - this.inCount = 0; - this.outCount = 0; - this._in = sliceType$2.nil; - this._out = sliceType$2.nil; + this.PkgPath = NameOff.nil; + this.Mcount = 0; + this.Xcount = 0; + this.Methods_ = sliceType$1.nil; return; } - this.rtype = rtype_; - this.inCount = inCount_; - this.outCount = outCount_; - this._in = _in_; - this._out = _out_; + this.PkgPath = PkgPath_; + this.Mcount = Mcount_; + this.Xcount = Xcount_; + this.Methods_ = Methods__; }); - name = $newType(0, $kindStruct, "reflectlite.name", true, "internal/reflectlite", false, function(bytes_) { + FuncType = $newType(0, $kindStruct, "abi.FuncType", true, "internal/abi", true, function(Type_, InCount_, OutCount_, In__, Out__) { this.$val = this; if (arguments.length === 0) { - this.bytes = ptrType$6.nil; + this.Type = new Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$7.nil, NameOff.nil, TypeOff.nil); + this.InCount = 0; + this.OutCount = 0; + this.In_ = sliceType$2.nil; + this.Out_ = sliceType$2.nil; return; } - this.bytes = bytes_; + this.Type = Type_; + this.InCount = InCount_; + this.OutCount = OutCount_; + this.In_ = In__; + this.Out_ = Out__; }); - nameData = $newType(0, $kindStruct, "reflectlite.nameData", true, "internal/reflectlite", false, function(name_, tag_, exported_, embedded_) { + Name = $newType(0, $kindStruct, "abi.Name", true, "internal/abi", true, function(name_, tag_, exported_, embedded_, pkgPath_) { this.$val = this; if (arguments.length === 0) { this.name = ""; this.tag = ""; this.exported = false; this.embedded = false; + this.pkgPath = ""; return; } this.name = name_; this.tag = tag_; this.exported = exported_; this.embedded = embedded_; + this.pkgPath = pkgPath_; }); - mapIter = $newType(0, $kindStruct, "reflectlite.mapIter", true, "internal/reflectlite", false, function(t_, m_, keys_, i_, last_) { - this.$val = this; - if (arguments.length === 0) { - this.t = $ifaceNil; - this.m = null; - this.keys = null; - this.i = 0; - this.last = null; - return; - } - this.t = t_; - this.m = m_; - this.keys = keys_; - this.i = i_; - this.last = last_; - }); - TypeEx = $newType(8, $kindInterface, "reflectlite.TypeEx", true, "internal/reflectlite", true, null); - $pkg.Value = Value; - $pkg.flag = flag; - $pkg.ValueError = ValueError; + NameOff = $newType(4, $kindPtr, "abi.NameOff", true, "internal/abi", true, null); + TypeOff = $newType(4, $kindPtr, "abi.TypeOff", true, "internal/abi", true, null); + TextOff = $newType(4, $kindUnsafePointer, "abi.TextOff", true, "internal/abi", true, null); $pkg.Type = Type; $pkg.Kind = Kind; - $pkg.tflag = tflag; - $pkg.rtype = rtype; - $pkg.method = method; - $pkg.chanDir = chanDir; - $pkg.arrayType = arrayType; - $pkg.chanType = chanType; - $pkg.imethod = imethod; - $pkg.interfaceType = interfaceType; - $pkg.mapType = mapType; - $pkg.ptrType = ptrType; - $pkg.sliceType = sliceType; - $pkg.structField = structField; - $pkg.structType = structType; - $pkg.nameOff = nameOff; - $pkg.typeOff = typeOff; - $pkg.textOff = textOff; - $pkg.errorString = errorString; + $pkg.TFlag = TFlag; $pkg.Method = Method; - $pkg.uncommonType = uncommonType; - $pkg.funcType = funcType; - $pkg.name = name; - $pkg.nameData = nameData; - $pkg.mapIter = mapIter; - $pkg.TypeEx = TypeEx; + $pkg.Imethod = Imethod; + $pkg.ArrayType = ArrayType; + $pkg.ChanDir = ChanDir; + $pkg.ChanType = ChanType; + $pkg.InterfaceType = InterfaceType; + $pkg.MapType = MapType; + $pkg.SliceType = SliceType; + $pkg.PtrType = PtrType; + $pkg.StructField = StructField; + $pkg.StructType = StructType; + $pkg.UncommonType = UncommonType; + $pkg.FuncType = FuncType; + $pkg.Name = Name; + $pkg.NameOff = NameOff; + $pkg.TypeOff = TypeOff; + $pkg.TextOff = TextOff; $pkg.$finishSetup = function() { - ptrType$1 = $ptrType(rtype); - sliceType$1 = $sliceType(name); - sliceType$2 = $sliceType(ptrType$1); - sliceType$3 = $sliceType($String); - sliceType$4 = $sliceType($emptyInterface); - ptrType$2 = $ptrType(js.Object); - funcType$1 = $funcType([sliceType$4], [ptrType$2], true); - ptrType$4 = $ptrType(uncommonType); - sliceType$5 = $sliceType(method); - ptrType$5 = $ptrType(funcType); - sliceType$6 = $sliceType(Value); - ptrType$6 = $ptrType($Uint8); - ptrType$7 = $ptrType($UnsafePointer); - sliceType$7 = $sliceType(Type); - sliceType$8 = $sliceType(ptrType$2); - sliceType$9 = $sliceType(imethod); - sliceType$10 = $sliceType(structField); - ptrType$8 = $ptrType(nameData); - structType$2 = $structType("internal/reflectlite", [{prop: "str", name: "str", embedded: false, exported: false, typ: $String, tag: ""}]); - ptrType$9 = $ptrType(mapIter); - arrayType$2 = $arrayType($Uintptr, 2); - sliceType$13 = $sliceType($Uint8); - ptrType$10 = $ptrType(ValueError); - funcType$2 = $funcType([$UnsafePointer, $UnsafePointer], [$Bool], false); - ptrType$11 = $ptrType(interfaceType); - funcType$3 = $funcType([$UnsafePointer, $Uintptr], [$Uintptr], false); - ptrType$12 = $ptrType(structField); - ptrType$13 = $ptrType(errorString); - flag.prototype.kind = function kind() { - var f; - f = this.$val; - return ((((f & 31) >>> 0) >>> 0)); - }; - $ptrType(flag).prototype.kind = function(...$args) { return new flag(this.$get()).kind(...$args); }; - flag.prototype.ro = function ro() { - var f; - f = this.$val; - if (!((((f & 96) >>> 0) === 0))) { - return 32; - } - return 0; - }; - $ptrType(flag).prototype.ro = function(...$args) { return new flag(this.$get()).ro(...$args); }; - $ptrType(Value).prototype.pointer = function pointer() { - var v; - v = this; - if (!((v.typ.size === 4)) || !v.typ.pointers()) { - $panic(new $String("can't call pointer on a non-pointer Value")); - } - if (!((((v.flag & 128) >>> 0) === 0))) { - return (v.ptr).$get(); - } - return v.ptr; - }; - Value.prototype.pointer = function(...$args) { return this.$val.pointer(...$args); }; - $ptrType(ValueError).prototype.Error = function Error() { - var e; - e = this; - if (e.Kind === 0) { - return "reflect: call of " + e.Method + " on zero Value"; - } - return "reflect: call of " + e.Method + " on " + new Kind(e.Kind).String() + " Value"; - }; - flag.prototype.mustBeExported = function mustBeExported() { - var f; - f = this.$val; - if (f === 0) { - $panic(new ValueError.ptr(methodName(), 0)); - } - if (!((((f & 96) >>> 0) === 0))) { - $panic(new $String("reflect: " + methodName() + " using value obtained using unexported field")); - } - }; - $ptrType(flag).prototype.mustBeExported = function(...$args) { return new flag(this.$get()).mustBeExported(...$args); }; - flag.prototype.mustBeAssignable = function mustBeAssignable() { - var f; - f = this.$val; - if (f === 0) { - $panic(new ValueError.ptr(methodName(), 0)); - } - if (!((((f & 96) >>> 0) === 0))) { - $panic(new $String("reflect: " + methodName() + " using value obtained using unexported field")); - } - if (((f & 256) >>> 0) === 0) { - $panic(new $String("reflect: " + methodName() + " using unaddressable value")); - } - }; - $ptrType(flag).prototype.mustBeAssignable = function(...$args) { return new flag(this.$get()).mustBeAssignable(...$args); }; - $ptrType(Value).prototype.CanSet = function CanSet() { - var v; - v = this; - return ((v.flag & 352) >>> 0) === 256; - }; - Value.prototype.CanSet = function(...$args) { return this.$val.CanSet(...$args); }; - $ptrType(Value).prototype.IsValid = function IsValid() { - var v; - v = this; - return !((v.flag === 0)); - }; - Value.prototype.IsValid = function(...$args) { return this.$val.IsValid(...$args); }; - $ptrType(Value).prototype.Kind = function Kind$1() { - var v; - v = this; - return new flag(v.flag).kind(); - }; - Value.prototype.Kind = function(...$args) { return this.$val.Kind(...$args); }; - $ptrType(Value).prototype.Type = function Type$1() { - var f, v; - v = this; - f = v.flag; - if (f === 0) { - $panic(new ValueError.ptr("reflectlite.Value.Type", 0)); - } - return v.typ; - }; - Value.prototype.Type = function(...$args) { return this.$val.Type(...$args); }; - $ptrType(structField).prototype.embedded = function embedded() { - var f; - f = this; - return $clone(f.name, name).embedded(); - }; + sliceType = $sliceType($String); + ptrType = $ptrType(Type); + ptrType$1 = $ptrType(StructType); + ptrType$2 = $ptrType(MapType); + ptrType$3 = $ptrType(ArrayType); + ptrType$4 = $ptrType(FuncType); + ptrType$5 = $ptrType(InterfaceType); + ptrType$6 = $ptrType(UncommonType); + sliceType$1 = $sliceType(Method); + ptrType$7 = $ptrType($Uint8); + sliceType$2 = $sliceType(ptrType); + sliceType$3 = $sliceType(Imethod); + sliceType$4 = $sliceType(StructField); + structType = $structType("internal/abi", [{prop: "str", name: "str", embedded: false, exported: false, typ: $String, tag: ""}]); + ptrType$9 = $ptrType(js.Object); + funcType = $funcType([$UnsafePointer, $UnsafePointer], [$Bool], false); + funcType$1 = $funcType([$UnsafePointer, $Uintptr], [$Uintptr], false); + ptrType$10 = $ptrType(StructField); + ptrType$11 = $ptrType(Name); Kind.prototype.String = function String() { var k; k = this.$val; @@ -3412,266 +3369,993 @@ $packages["internal/reflectlite"] = (function() { return (0 >= kindNames.$length ? ($throwRuntimeError("index out of range"), undefined) : kindNames.$array[kindNames.$offset + 0]); }; $ptrType(Kind).prototype.String = function(...$args) { return new Kind(this.$get()).String(...$args); }; - $ptrType(rtype).prototype.String = function String$1() { - var s, t; - t = this; - s = $clone(t.nameOff(t.str), name).name(); - if (!((((t.tflag & 2) >>> 0) === 0))) { - return $substring(s, 1); - } - return s; - }; - $ptrType(rtype).prototype.Size = function Size() { + $ptrType(Type).prototype.Kind = function Kind$1() { var t; t = this; - return t.size; + return ((((t.Kind_ & 31) >>> 0) >>> 0)); }; - $ptrType(rtype).prototype.Kind = function Kind$2() { + $ptrType(Type).prototype.HasName = function HasName() { var t; t = this; - return ((((t.kind & 31) >>> 0) >>> 0)); + return !((((t.TFlag & 4) >>> 0) === 0)); }; - $ptrType(rtype).prototype.pointers = function pointers() { + $ptrType(Type).prototype.Pointers = function Pointers() { var t; t = this; - return !((t.ptrdata === 0)); + return !((t.PtrBytes === 0)); }; - $ptrType(rtype).prototype.common = function common() { + $ptrType(Type).prototype.IfaceIndir = function IfaceIndir() { var t; t = this; - return t; - }; - $ptrType(rtype).prototype.exportedMethods = function exportedMethods() { - var t, ut; - t = this; - ut = t.uncommon(); - if (ut === ptrType$4.nil) { - return sliceType$5.nil; - } - return ut.exportedMethods(); + return ((t.Kind_ & 32) >>> 0) === 0; }; - $ptrType(rtype).prototype.NumMethod = function NumMethod() { - var t, tt; + $ptrType(Type).prototype.IsDirectIface = function IsDirectIface() { + var t; t = this; - if (t.Kind() === 20) { - tt = (t.kindType); - return tt.NumMethod(); - } - return t.exportedMethods().$length; + return !((((t.Kind_ & 32) >>> 0) === 0)); }; - $ptrType(rtype).prototype.PkgPath = function PkgPath() { - var t, ut; + $ptrType(Type).prototype.Len = function Len() { + var t; t = this; - if (((t.tflag & 4) >>> 0) === 0) { - return ""; - } - ut = t.uncommon(); - if (ut === ptrType$4.nil) { - return ""; + if (t.Kind() === 17) { + return (((t.kindType).Len >> 0)); } - return $clone(t.nameOff(ut.pkgPath), name).name(); + return 0; }; - $ptrType(rtype).prototype.hasName = function hasName() { + $ptrType(Type).prototype.Common = function Common() { var t; t = this; - return !((((t.tflag & 4) >>> 0) === 0)); - }; - $ptrType(rtype).prototype.Name = function Name() { - var _1, i, s, sqBrackets, t; - t = this; - if (!t.hasName()) { - return ""; - } - s = t.String(); - i = s.length - 1 >> 0; - sqBrackets = 0; - while (true) { - if (!(i >= 0 && (!((s.charCodeAt(i) === 46)) || !((sqBrackets === 0))))) { break; } - _1 = s.charCodeAt(i); - if (_1 === (93)) { - sqBrackets = sqBrackets + (1) >> 0; - } else if (_1 === (91)) { - sqBrackets = sqBrackets - (1) >> 0; - } - i = i - (1) >> 0; - } - return $substring(s, (i + 1 >> 0)); + return t; }; - $ptrType(rtype).prototype.chanDir = function chanDir$1() { - var t, tt; + $ptrType(Type).prototype.ChanDir = function ChanDir$1() { + var ch, t; t = this; - if (!((t.Kind() === 18))) { - $panic(new $String("reflect: chanDir of non-chan type")); + if (t.Kind() === 18) { + ch = (t.kindType); + return ch.Dir; } - tt = (t.kindType); - return ((tt.dir >> 0)); + return 0; }; - $ptrType(rtype).prototype.Elem = function Elem() { + $ptrType(Type).prototype.Elem = function Elem() { var _1, t, tt, tt$1, tt$2, tt$3, tt$4; t = this; _1 = t.Kind(); if (_1 === (17)) { tt = (t.kindType); - return toType(tt.elem); + return tt.Elem; } else if (_1 === (18)) { tt$1 = (t.kindType); - return toType(tt$1.elem); + return tt$1.Elem; } else if (_1 === (21)) { tt$2 = (t.kindType); - return toType(tt$2.elem); + return tt$2.Elem; } else if (_1 === (22)) { tt$3 = (t.kindType); - return toType(tt$3.elem); + return tt$3.Elem; } else if (_1 === (23)) { tt$4 = (t.kindType); - return toType(tt$4.elem); + return tt$4.Elem; + } + return ptrType.nil; + }; + $ptrType(Type).prototype.StructType = function StructType$1() { + var t; + t = this; + if (!((t.Kind() === 25))) { + return ptrType$1.nil; } - $panic(new $String("reflect: Elem of invalid type")); + return (t.kindType); }; - $ptrType(rtype).prototype.In = function In(i) { - var i, t, tt, x; + $ptrType(Type).prototype.MapType = function MapType$1() { + var t; t = this; - if (!((t.Kind() === 19))) { - $panic(new $String("reflect: In of non-func type")); + if (!((t.Kind() === 21))) { + return ptrType$2.nil; } - tt = (t.kindType); - return toType((x = tt.in$(), ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]))); + return (t.kindType); }; - $ptrType(rtype).prototype.Len = function Len() { - var t, tt; + $ptrType(Type).prototype.ArrayType = function ArrayType$1() { + var t; t = this; if (!((t.Kind() === 17))) { - $panic(new $String("reflect: Len of non-array type")); + return ptrType$3.nil; } - tt = (t.kindType); - return ((tt.len >> 0)); + return (t.kindType); }; - $ptrType(rtype).prototype.NumIn = function NumIn() { - var t, tt; + $ptrType(Type).prototype.FuncType = function FuncType$1() { + var t; t = this; if (!((t.Kind() === 19))) { - $panic(new $String("reflect: NumIn of non-func type")); + return ptrType$4.nil; } - tt = (t.kindType); - return ((tt.inCount >> 0)); + return (t.kindType); }; - $ptrType(rtype).prototype.NumOut = function NumOut() { - var t, tt; + $ptrType(Type).prototype.InterfaceType = function InterfaceType$1() { + var t; t = this; - if (!((t.Kind() === 19))) { - $panic(new $String("reflect: NumOut of non-func type")); + if (!((t.Kind() === 20))) { + return ptrType$5.nil; } - tt = (t.kindType); - return tt.out().$length; + return (t.kindType); }; - $ptrType(rtype).prototype.Out = function Out(i) { - var i, t, tt, x; + $ptrType(Type).prototype.Size = function Size() { + var t; t = this; - if (!((t.Kind() === 19))) { - $panic(new $String("reflect: Out of non-func type")); - } - tt = (t.kindType); - return toType((x = tt.out(), ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]))); + return t.Size_; }; - $ptrType(interfaceType).prototype.NumMethod = function NumMethod$1() { + $ptrType(Type).prototype.Align = function Align() { var t; t = this; - return t.methods.$length; + return ((t.Align_ >> 0)); }; - $ptrType(rtype).prototype.Implements = function Implements(u) { - var {_r, t, u, $s, $r, $c} = $restore(this, {u}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $ptrType(Type).prototype.FieldAlign = function FieldAlign() { + var t; t = this; - if ($interfaceIsEqual(u, $ifaceNil)) { - $panic(new $String("reflect: nil type passed to Type.Implements")); + return ((t.FieldAlign_ >> 0)); + }; + $ptrType(Type).prototype.ExportedMethods = function ExportedMethods() { + var t, ut; + t = this; + ut = t.Uncommon(); + if (ut === ptrType$6.nil) { + return sliceType$1.nil; } - _r = u.Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - /* */ if (!((_r === 20))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!((_r === 20))) { */ case 1: - $panic(new $String("reflect: non-interface type passed to Type.Implements")); - /* } */ case 2: - $s = -1; return implements$1($assertType(u, ptrType$1), t); - /* */ } return; } var $f = {$blk: Implements, $c: true, $r, _r, t, u, $s};return $f; + return ut.ExportedMethods(); }; - $ptrType(rtype).prototype.AssignableTo = function AssignableTo(u) { - var {$24r, _r, t, u, uu, $s, $r, $c} = $restore(this, {u}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $ptrType(Type).prototype.NumMethod = function NumMethod() { + var t, tt; t = this; - if ($interfaceIsEqual(u, $ifaceNil)) { - $panic(new $String("reflect: nil type passed to Type.AssignableTo")); + if (t.Kind() === 20) { + tt = (t.kindType); + return tt.NumMethod(); } - uu = $assertType(u, ptrType$1); - _r = directlyAssignable(uu, t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r || implements$1(uu, t); - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: AssignableTo, $c: true, $r, $24r, _r, t, u, uu, $s};return $f; + return t.ExportedMethods().$length; }; - implements$1 = function implements$2(T, V) { - var T, V, i, i$1, j, j$1, t, tm, tm$1, tmName, tmName$1, tmPkgPath, tmPkgPath$1, v, v$1, vm, vm$1, vmName, vmName$1, vmPkgPath, vmPkgPath$1, vmethods, x, x$1, x$2; - if (!((T.Kind() === 20))) { - return false; + $ptrType(InterfaceType).prototype.NumMethod = function NumMethod$1() { + var t; + t = this; + return t.Methods.$length; + }; + $ptrType(MapType).prototype.IndirectKey = function IndirectKey() { + var mt; + mt = this; + return !((((mt.Flags & 1) >>> 0) === 0)); + }; + $ptrType(MapType).prototype.IndirectElem = function IndirectElem() { + var mt; + mt = this; + return !((((mt.Flags & 2) >>> 0) === 0)); + }; + $ptrType(MapType).prototype.ReflexiveKey = function ReflexiveKey() { + var mt; + mt = this; + return !((((mt.Flags & 4) >>> 0) === 0)); + }; + $ptrType(MapType).prototype.NeedKeyUpdate = function NeedKeyUpdate() { + var mt; + mt = this; + return !((((mt.Flags & 8) >>> 0) === 0)); + }; + $ptrType(MapType).prototype.HashMightPanic = function HashMightPanic() { + var mt; + mt = this; + return !((((mt.Flags & 16) >>> 0) === 0)); + }; + $ptrType(Type).prototype.Key = function Key() { + var t; + t = this; + if (t.Kind() === 21) { + return (t.kindType).Key; } - t = (T.kindType); - if (t.methods.$length === 0) { - return true; + return ptrType.nil; + }; + $ptrType(FuncType).prototype.In = function In(i) { + var i, t, x; + t = this; + return (x = t.InSlice(), ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + }; + $ptrType(FuncType).prototype.NumIn = function NumIn() { + var t; + t = this; + return ((t.InCount >> 0)); + }; + $ptrType(FuncType).prototype.NumOut = function NumOut() { + var t; + t = this; + return ((((t.OutCount & 32767) >>> 0) >> 0)); + }; + $ptrType(FuncType).prototype.Out = function Out(i) { + var i, t, x; + t = this; + return (x = t.OutSlice(), ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + }; + $ptrType(FuncType).prototype.IsVariadic = function IsVariadic() { + var t; + t = this; + return !((((t.OutCount & 32768) >>> 0) === 0)); + }; + $ptrType(StructField).prototype.Embedded = function Embedded() { + var f; + f = this; + return $clone(f.Name, Name).IsEmbedded(); + }; + UnsafeNew = function UnsafeNew$1(typ) { + var _1, typ; + _1 = typ.Kind(); + if (_1 === (25)) { + return (new (typ.JsType().ptr)()); + } else if (_1 === (17)) { + return (typ.JsType().zero()); + } else { + return ($newDataPointer(typ.JsType().zero(), typ.JsPtrTo())); } - if (V.Kind() === 20) { - v = (V.kindType); + }; + $pkg.UnsafeNew = UnsafeNew; + IfaceE2I = function IfaceE2I$1(t, src, dst) { + var dst, src, t; + dst.$set(src); + }; + $pkg.IfaceE2I = IfaceE2I; + TypedMemMove = function TypedMemMove$1(t, dst, src) { + var dst, src, t; + dst.$set(src.$get()); + }; + $pkg.TypedMemMove = TypedMemMove; + ReflectType = function ReflectType$1(typ) { + var _1, _i, _i$1, _i$2, _i$3, _ref, _ref$1, _ref$2, _ref$3, abiTyp, dir, exported, exported$1, exported$2, f, fields, i, i$1, i$2, i$3, i$4, i$5, imethods, in$1, jrt, m, m$1, m$2, mPkg, methodSet, methods, name, out, outCount, params, reflectFields, reflectMethods, results, typ, ut, xcount; + jrt = typ.abiType; + if (!(jrt === undefined)) { + return ((jrt)); + } + abiTyp = new Type.ptr(((($parseInt(typ.size) >> 0) >>> 0)), 0, 0, 0, 0, 0, ((($parseInt(typ.kind) >> 0) << 24 >>> 24)), $throwNilPointerError, ptrType$7.nil, ResolveReflectName($clone(NewName(internalStr(typ.string), "", !!(typ.exported), false), Name)), TypeOff.nil); + abiTyp.jsType = typ; + typ.abiType = abiTyp; + methodSet = $methodSet(typ); + if (!(($parseInt(methodSet.length) === 0)) || !!(typ.named)) { + abiTyp.TFlag = (abiTyp.TFlag | (1)) >>> 0; + if (!!(typ.named)) { + abiTyp.TFlag = (abiTyp.TFlag | (4)) >>> 0; + } + reflectMethods = sliceType$1.nil; i = 0; - j = 0; while (true) { - if (!(j < v.methods.$length)) { break; } - tm = (x = t.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - tmName = $clone(t.rtype.nameOff(tm.name), name); - vm = (x$1 = v.methods, ((j < 0 || j >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + j])); - vmName = $clone(V.nameOff(vm.name), name); - if ($clone(vmName, name).name() === $clone(tmName, name).name() && V.typeOff(vm.typ) === t.rtype.typeOff(tm.typ)) { - if (!$clone(tmName, name).isExported()) { - tmPkgPath = $clone(tmName, name).pkgPath(); - if (tmPkgPath === "") { - tmPkgPath = $clone(t.pkgPath, name).name(); - } - vmPkgPath = $clone(vmName, name).pkgPath(); - if (vmPkgPath === "") { - vmPkgPath = $clone(v.pkgPath, name).name(); - } - if (!(tmPkgPath === vmPkgPath)) { - j = j + (1) >> 0; - continue; - } - } + if (!(i < $parseInt(methodSet.length))) { break; } + m = methodSet[i]; + exported = internalStr(m.pkg) === ""; + if (!exported) { i = i + (1) >> 0; - if (i >= t.methods.$length) { - return true; - } + continue; } - j = j + (1) >> 0; + reflectMethods = $append(reflectMethods, new Method.ptr(ResolveReflectName($clone(NewName(internalStr(m.name), "", exported, false), Name)), ResolveReflectType(ReflectType(m.typ)), 0, 0)); + i = i + (1) >> 0; } - return false; - } - v$1 = V.uncommon(); - if (v$1 === ptrType$4.nil) { - return false; + xcount = ((reflectMethods.$length << 16 >>> 16)); + i$1 = 0; + while (true) { + if (!(i$1 < $parseInt(methodSet.length))) { break; } + m$1 = methodSet[i$1]; + exported$1 = internalStr(m$1.pkg) === ""; + if (exported$1) { + i$1 = i$1 + (1) >> 0; + continue; + } + reflectMethods = $append(reflectMethods, new Method.ptr(ResolveReflectName($clone(NewName(internalStr(m$1.name), "", exported$1, false), Name)), ResolveReflectType(ReflectType(m$1.typ)), 0, 0)); + i$1 = i$1 + (1) >> 0; + } + ut = new UncommonType.ptr(ResolveReflectName($clone(NewName(internalStr(typ.pkg), "", false, false), Name)), (($parseInt(methodSet.length) << 16 >>> 16)), xcount, reflectMethods); + abiTyp.uncommonType = ut; } - i$1 = 0; - vmethods = v$1.methods(); - j$1 = 0; + _1 = abiTyp.Kind(); + if (_1 === (17)) { + setKindType(abiTyp, new ArrayType.ptr(new Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$7.nil, NameOff.nil, TypeOff.nil), ReflectType(typ.elem), ptrType.nil, ((($parseInt(typ.len) >> 0) >>> 0)))); + } else if (_1 === (18)) { + dir = 3; + if (!!(typ.sendOnly)) { + dir = 2; + } + if (!!(typ.recvOnly)) { + dir = 1; + } + abiTyp.PtrBytes = 4; + setKindType(abiTyp, new ChanType.ptr(new Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$7.nil, NameOff.nil, TypeOff.nil), ReflectType(typ.elem), dir)); + } else if (_1 === (19)) { + params = typ.params; + in$1 = $makeSlice(sliceType$2, $parseInt(params.length)); + _ref = in$1; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i$2 = _i; + ((i$2 < 0 || i$2 >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + i$2] = ReflectType(params[i$2])); + _i++; + } + results = typ.results; + out = $makeSlice(sliceType$2, $parseInt(results.length)); + _ref$1 = out; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i$3 = _i$1; + ((i$3 < 0 || i$3 >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + i$3] = ReflectType(results[i$3])); + _i$1++; + } + outCount = (($parseInt(results.length) << 16 >>> 16)); + if (!!(typ.variadic)) { + outCount = (outCount | (32768)) >>> 0; + } + abiTyp.PtrBytes = 4; + setKindType(abiTyp, new FuncType.ptr(new Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$7.nil, NameOff.nil, TypeOff.nil), (($parseInt(params.length) << 16 >>> 16)), outCount, in$1, out)); + } else if (_1 === (20)) { + methods = typ.methods; + imethods = $makeSlice(sliceType$3, $parseInt(methods.length)); + _ref$2 = imethods; + _i$2 = 0; + while (true) { + if (!(_i$2 < _ref$2.$length)) { break; } + i$4 = _i$2; + m$2 = methods[i$4]; + mPkg = internalStr(m$2.pkg); + exported$2 = mPkg === ""; + name = $clone(NewName(internalStr(m$2.name), "", exported$2, false), Name); + name.SetPkgPath(mPkg); + Imethod.copy(((i$4 < 0 || i$4 >= imethods.$length) ? ($throwRuntimeError("index out of range"), undefined) : imethods.$array[imethods.$offset + i$4]), new Imethod.ptr(ResolveReflectName($clone(name, Name)), ResolveReflectType(ReflectType(m$2.typ)))); + _i$2++; + } + setKindType(abiTyp, new InterfaceType.ptr(new Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$7.nil, NameOff.nil, TypeOff.nil), $clone(NewName(internalStr(typ.pkg), "", false, false), Name), imethods)); + } else if (_1 === (21)) { + abiTyp.PtrBytes = 4; + setKindType(abiTyp, new MapType.ptr(new Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$7.nil, NameOff.nil, TypeOff.nil), ReflectType(typ.key), ReflectType(typ.elem), ptrType.nil, $throwNilPointerError, 0, 0, 0, 0)); + } else if (_1 === (22)) { + abiTyp.PtrBytes = 4; + setKindType(abiTyp, new PtrType.ptr(new Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$7.nil, NameOff.nil, TypeOff.nil), ReflectType(typ.elem))); + } else if (_1 === (23)) { + abiTyp.PtrBytes = 4; + setKindType(abiTyp, new SliceType.ptr(new Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$7.nil, NameOff.nil, TypeOff.nil), ReflectType(typ.elem))); + } else if (_1 === (25)) { + fields = typ.fields; + reflectFields = $makeSlice(sliceType$4, $parseInt(fields.length)); + _ref$3 = reflectFields; + _i$3 = 0; + while (true) { + if (!(_i$3 < _ref$3.$length)) { break; } + i$5 = _i$3; + f = fields[i$5]; + StructField.copy(((i$5 < 0 || i$5 >= reflectFields.$length) ? ($throwRuntimeError("index out of range"), undefined) : reflectFields.$array[reflectFields.$offset + i$5]), new StructField.ptr($clone(NewName(internalStr(f.name), internalStr(f.tag), !!(f.exported), !!(f.embedded)), Name), ReflectType(f.typ), ((i$5 >>> 0)))); + _i$3++; + } + setKindType(abiTyp, new StructType.ptr(new Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$7.nil, NameOff.nil, TypeOff.nil), $clone(NewName(internalStr(typ.pkgPath), "", false, false), Name), reflectFields)); + } else if (_1 === (26)) { + abiTyp.PtrBytes = 4; + } + return abiTyp; + }; + $pkg.ReflectType = ReflectType; + setKindType = function setKindType$1(abiTyp, kindType) { + var abiTyp, kindType; + abiTyp.kindType = kindType; + kindType.Type = abiTyp; + }; + $ptrType(UncommonType).prototype.Methods = function Methods() { + var t; + t = this; + return t.Methods_; + }; + $ptrType(UncommonType).prototype.ExportedMethods = function ExportedMethods$1() { + var t; + t = this; + return $subslice(t.Methods_, 0, t.Xcount, t.Xcount); + }; + $ptrType(Type).prototype.Uncommon = function Uncommon() { + var obj, t; + t = this; + obj = t.uncommonType; + if (obj === undefined) { + return ptrType$6.nil; + } + return ((obj)); + }; + $ptrType(Type).prototype.JsType = function JsType() { + var typ; + typ = this; + return typ.jsType; + }; + $ptrType(Type).prototype.PtrTo = function PtrTo() { + var typ; + typ = this; + return ReflectType($ptrType(typ.JsType())); + }; + $ptrType(Type).prototype.JsPtrTo = function JsPtrTo() { + var typ; + typ = this; + return typ.PtrTo().JsType(); + }; + $ptrType(Type).prototype.String = function String$1() { + var s, t; + t = this; + s = $clone(t.NameOff(t.Str), Name).Name(); + if (!((((t.TFlag & 2) >>> 0) === 0))) { + return $substring(s, 1); + } + return s; + }; + $ptrType(FuncType).prototype.InSlice = function InSlice() { + var t; + t = this; + return t.In_; + }; + $ptrType(FuncType).prototype.OutSlice = function OutSlice() { + var t; + t = this; + return t.Out_; + }; + $ptrType(Name).prototype.IsExported = function IsExported() { + var n; + n = this; + return n.exported; + }; + Name.prototype.IsExported = function(...$args) { return this.$val.IsExported(...$args); }; + $ptrType(Name).prototype.HasTag = function HasTag() { + var n; + n = this; + return n.tag.length > 0; + }; + Name.prototype.HasTag = function(...$args) { return this.$val.HasTag(...$args); }; + $ptrType(Name).prototype.IsEmbedded = function IsEmbedded() { + var n; + n = this; + return n.embedded; + }; + Name.prototype.IsEmbedded = function(...$args) { return this.$val.IsEmbedded(...$args); }; + $ptrType(Name).prototype.IsBlank = function IsBlank() { + var n; + n = this; + return $clone(n, Name).Name() === "_"; + }; + Name.prototype.IsBlank = function(...$args) { return this.$val.IsBlank(...$args); }; + $ptrType(Name).prototype.Name = function Name$1() { + var n; + n = this; + return n.name; + }; + Name.prototype.Name = function(...$args) { return this.$val.Name(...$args); }; + $ptrType(Name).prototype.Tag = function Tag() { + var n; + n = this; + return n.tag; + }; + Name.prototype.Tag = function(...$args) { return this.$val.Tag(...$args); }; + $ptrType(Name).prototype.PkgPath = function PkgPath() { + var n; + n = this; + return n.pkgPath; + }; + Name.prototype.PkgPath = function(...$args) { return this.$val.PkgPath(...$args); }; + $ptrType(Name).prototype.SetPkgPath = function SetPkgPath(pkgpath) { + var n, pkgpath; + n = this; + n.pkgPath = pkgpath; + }; + NewName = function NewName$1(n, tag, exported, embedded) { + var embedded, exported, n, tag; + return new Name.ptr(n, tag, exported, embedded, ""); + }; + $pkg.NewName = NewName; + $ptrType(Type).prototype.NameOff = function NameOff$1(off) { + var off, typ; + typ = this; + return (off === NameOff.nil && $throwNilPointerError(), off); + }; + ResolveReflectName = function ResolveReflectName$1(n) { + var n; + return $pointerOfStructConversion(n, NameOff); + }; + $pkg.ResolveReflectName = ResolveReflectName; + $ptrType(Type).prototype.TypeOff = function TypeOff$1(off) { + var off, typ; + typ = this; + return $pointerOfStructConversion(off, ptrType); + }; + ResolveReflectType = function ResolveReflectType$1(t) { + var t; + return $pointerOfStructConversion(t, TypeOff); + }; + $pkg.ResolveReflectType = ResolveReflectType; + $ptrType(Type).prototype.TextOff = function TextOff$1(off) { + var off, typ; + typ = this; + return (off); + }; + internalStr = function internalStr$1(strObj) { + var c, strObj; + c = new structType.ptr(""); + c.str = strObj; + return c.str; + }; + $ptrType(Type).prototype.IsWrapped = function IsWrapped() { + var typ; + typ = this; + return !!(typ.JsType().wrapped); + }; + WrapJsObject = function WrapJsObject$1(typ, val) { + var typ, val; + if (typ === $pkg.JsObjectPtr) { + return new ($pkg.JsObjectPtr.JsType())(val); + } + return val; + }; + $pkg.WrapJsObject = WrapJsObject; + UnwrapJsObject = function UnwrapJsObject$1(typ, val) { + var typ, val; + if (typ === $pkg.JsObjectPtr) { + return val.object; + } + return val; + }; + $pkg.UnwrapJsObject = UnwrapJsObject; + CopyStruct = function CopyStruct$1(dst, src, typ) { + var dst, fields, i, prop, src, typ; + fields = typ.JsType().fields; + i = 0; + while (true) { + if (!(i < $parseInt(fields.length))) { break; } + prop = $internalize(fields[i].prop, $String); + dst[$externalize(prop, $String)] = src[$externalize(prop, $String)]; + i = i + (1) >> 0; + } + }; + $pkg.CopyStruct = CopyStruct; + $ptrType(Type).prototype.Comparable = function Comparable() { + var _1, ft, i, st, t, x; + t = this; + _1 = t.Kind(); + if ((_1 === (19)) || (_1 === (23)) || (_1 === (21))) { + return false; + } else if (_1 === (17)) { + return t.Elem().Comparable(); + } else if (_1 === (25)) { + st = t.StructType(); + i = 0; + while (true) { + if (!(i < st.Fields.$length)) { break; } + ft = $clone((x = st.Fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])), StructField); + if (!ft.Typ.Comparable()) { + return false; + } + i = i + (1) >> 0; + } + } + return true; + }; + ptrType.methods = [{prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "HasName", name: "HasName", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Pointers", name: "Pointers", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IfaceIndir", name: "IfaceIndir", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsDirectIface", name: "IsDirectIface", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Common", name: "Common", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "ChanDir", name: "ChanDir", pkg: "", typ: $funcType([], [ChanDir], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "StructType", name: "StructType", pkg: "", typ: $funcType([], [ptrType$1], false)}, {prop: "MapType", name: "MapType", pkg: "", typ: $funcType([], [ptrType$2], false)}, {prop: "ArrayType", name: "ArrayType", pkg: "", typ: $funcType([], [ptrType$3], false)}, {prop: "FuncType", name: "FuncType", pkg: "", typ: $funcType([], [ptrType$4], false)}, {prop: "InterfaceType", name: "InterfaceType", pkg: "", typ: $funcType([], [ptrType$5], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "Align", name: "Align", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "FieldAlign", name: "FieldAlign", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "ExportedMethods", name: "ExportedMethods", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Key", name: "Key", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "Uncommon", name: "Uncommon", pkg: "", typ: $funcType([], [ptrType$6], false)}, {prop: "JsType", name: "JsType", pkg: "", typ: $funcType([], [ptrType$9], false)}, {prop: "PtrTo", name: "PtrTo", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "JsPtrTo", name: "JsPtrTo", pkg: "", typ: $funcType([], [ptrType$9], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "NameOff", name: "NameOff", pkg: "", typ: $funcType([NameOff], [Name], false)}, {prop: "TypeOff", name: "TypeOff", pkg: "", typ: $funcType([TypeOff], [ptrType], false)}, {prop: "TextOff", name: "TextOff", pkg: "", typ: $funcType([TextOff], [$UnsafePointer], false)}, {prop: "IsWrapped", name: "IsWrapped", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false)}]; + Kind.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$5.methods = [{prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}]; + ptrType$2.methods = [{prop: "IndirectKey", name: "IndirectKey", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IndirectElem", name: "IndirectElem", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "ReflexiveKey", name: "ReflexiveKey", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "NeedKeyUpdate", name: "NeedKeyUpdate", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "HashMightPanic", name: "HashMightPanic", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$10.methods = [{prop: "Embedded", name: "Embedded", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$6.methods = [{prop: "Methods", name: "Methods", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "ExportedMethods", name: "ExportedMethods", pkg: "", typ: $funcType([], [sliceType$1], false)}]; + ptrType$4.methods = [{prop: "In", name: "In", pkg: "", typ: $funcType([$Int], [ptrType], false)}, {prop: "NumIn", name: "NumIn", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumOut", name: "NumOut", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Out", name: "Out", pkg: "", typ: $funcType([$Int], [ptrType], false)}, {prop: "IsVariadic", name: "IsVariadic", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "InSlice", name: "InSlice", pkg: "", typ: $funcType([], [sliceType$2], false)}, {prop: "OutSlice", name: "OutSlice", pkg: "", typ: $funcType([], [sliceType$2], false)}]; + Name.methods = [{prop: "IsExported", name: "IsExported", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "HasTag", name: "HasTag", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsEmbedded", name: "IsEmbedded", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsBlank", name: "IsBlank", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Tag", name: "Tag", pkg: "", typ: $funcType([], [$String], false)}, {prop: "PkgPath", name: "PkgPath", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$11.methods = [{prop: "SetPkgPath", name: "SetPkgPath", pkg: "", typ: $funcType([$String], [], false)}]; + Type.init("", [{prop: "Size_", name: "Size_", embedded: false, exported: true, typ: $Uintptr, tag: ""}, {prop: "PtrBytes", name: "PtrBytes", embedded: false, exported: true, typ: $Uintptr, tag: ""}, {prop: "Hash", name: "Hash", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "TFlag", name: "TFlag", embedded: false, exported: true, typ: TFlag, tag: ""}, {prop: "Align_", name: "Align_", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "FieldAlign_", name: "FieldAlign_", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Kind_", name: "Kind_", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Equal", name: "Equal", embedded: false, exported: true, typ: funcType, tag: ""}, {prop: "GCData", name: "GCData", embedded: false, exported: true, typ: ptrType$7, tag: ""}, {prop: "Str", name: "Str", embedded: false, exported: true, typ: NameOff, tag: ""}, {prop: "PtrToThis", name: "PtrToThis", embedded: false, exported: true, typ: TypeOff, tag: ""}]); + Method.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: NameOff, tag: ""}, {prop: "Mtyp", name: "Mtyp", embedded: false, exported: true, typ: TypeOff, tag: ""}, {prop: "Ifn", name: "Ifn", embedded: false, exported: true, typ: TextOff, tag: ""}, {prop: "Tfn", name: "Tfn", embedded: false, exported: true, typ: TextOff, tag: ""}]); + Imethod.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: NameOff, tag: ""}, {prop: "Typ", name: "Typ", embedded: false, exported: true, typ: TypeOff, tag: ""}]); + ArrayType.init("", [{prop: "Type", name: "Type", embedded: true, exported: true, typ: Type, tag: ""}, {prop: "Elem", name: "Elem", embedded: false, exported: true, typ: ptrType, tag: ""}, {prop: "Slice", name: "Slice", embedded: false, exported: true, typ: ptrType, tag: ""}, {prop: "Len", name: "Len", embedded: false, exported: true, typ: $Uintptr, tag: ""}]); + ChanType.init("", [{prop: "Type", name: "Type", embedded: true, exported: true, typ: Type, tag: ""}, {prop: "Elem", name: "Elem", embedded: false, exported: true, typ: ptrType, tag: ""}, {prop: "Dir", name: "Dir", embedded: false, exported: true, typ: ChanDir, tag: ""}]); + InterfaceType.init("", [{prop: "Type", name: "Type", embedded: true, exported: true, typ: Type, tag: ""}, {prop: "PkgPath", name: "PkgPath", embedded: false, exported: true, typ: Name, tag: ""}, {prop: "Methods", name: "Methods", embedded: false, exported: true, typ: sliceType$3, tag: ""}]); + MapType.init("", [{prop: "Type", name: "Type", embedded: true, exported: true, typ: Type, tag: ""}, {prop: "Key", name: "Key", embedded: false, exported: true, typ: ptrType, tag: ""}, {prop: "Elem", name: "Elem", embedded: false, exported: true, typ: ptrType, tag: ""}, {prop: "Bucket", name: "Bucket", embedded: false, exported: true, typ: ptrType, tag: ""}, {prop: "Hasher", name: "Hasher", embedded: false, exported: true, typ: funcType$1, tag: ""}, {prop: "KeySize", name: "KeySize", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "ValueSize", name: "ValueSize", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "BucketSize", name: "BucketSize", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Flags", name: "Flags", embedded: false, exported: true, typ: $Uint32, tag: ""}]); + SliceType.init("", [{prop: "Type", name: "Type", embedded: true, exported: true, typ: Type, tag: ""}, {prop: "Elem", name: "Elem", embedded: false, exported: true, typ: ptrType, tag: ""}]); + PtrType.init("", [{prop: "Type", name: "Type", embedded: true, exported: true, typ: Type, tag: ""}, {prop: "Elem", name: "Elem", embedded: false, exported: true, typ: ptrType, tag: ""}]); + StructField.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: Name, tag: ""}, {prop: "Typ", name: "Typ", embedded: false, exported: true, typ: ptrType, tag: ""}, {prop: "Offset", name: "Offset", embedded: false, exported: true, typ: $Uintptr, tag: ""}]); + StructType.init("", [{prop: "Type", name: "Type", embedded: true, exported: true, typ: Type, tag: ""}, {prop: "PkgPath", name: "PkgPath", embedded: false, exported: true, typ: Name, tag: ""}, {prop: "Fields", name: "Fields", embedded: false, exported: true, typ: sliceType$4, tag: ""}]); + UncommonType.init("", [{prop: "PkgPath", name: "PkgPath", embedded: false, exported: true, typ: NameOff, tag: ""}, {prop: "Mcount", name: "Mcount", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Xcount", name: "Xcount", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Methods_", name: "Methods_", embedded: false, exported: true, typ: sliceType$1, tag: ""}]); + FuncType.init("", [{prop: "Type", name: "Type", embedded: true, exported: true, typ: Type, tag: ""}, {prop: "InCount", name: "InCount", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "OutCount", name: "OutCount", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "In_", name: "In_", embedded: false, exported: true, typ: sliceType$2, tag: ""}, {prop: "Out_", name: "Out_", embedded: false, exported: true, typ: sliceType$2, tag: ""}]); + Name.init("internal/abi", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "tag", name: "tag", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "exported", name: "exported", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "embedded", name: "embedded", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "pkgPath", name: "pkgPath", embedded: false, exported: false, typ: $String, tag: ""}]); + NameOff.init(Name); + TypeOff.init(Type); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = goarch.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + kindNames = new sliceType(["invalid", "bool", "int", "int8", "int16", "int32", "int64", "uint", "uint8", "uint16", "uint32", "uint64", "uintptr", "float32", "float64", "complex64", "complex128", "array", "chan", "func", "interface", "map", "ptr", "slice", "string", "struct", "unsafe.Pointer"]); + $pkg.JsObjectPtr = ReflectType($jsObjectPtr); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["internal/reflectlite"] = (function() { + var $pkg = {}, $init, js, abi, goarch, Value, flag, ValueError, Type, rtype, ptrType, ptrType$1, sliceType, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, sliceType$1, sliceType$2, sliceType$3, ptrType$10, sliceType$4, ptrType$11, toRType, elem, implements$1, directlyAssignable, haveIdenticalType, haveIdenticalUnderlyingType, toType, Swapper, init, jsType, pkgPath, makeValue, TypeOf, ValueOf, unsafe_New, methodReceiver, valueInterface, ifaceE2I, methodName, makeMethodValue; + js = $packages["github.com/gopherjs/gopherjs/js"]; + abi = $packages["internal/abi"]; + goarch = $packages["internal/goarch"]; + Value = $newType(0, $kindStruct, "reflectlite.Value", true, "internal/reflectlite", true, function(typ_, ptr_, flag_) { + this.$val = this; + if (arguments.length === 0) { + this.typ = ptrType.nil; + this.ptr = 0; + this.flag = 0; + return; + } + this.typ = typ_; + this.ptr = ptr_; + this.flag = flag_; + }); + flag = $newType(4, $kindUintptr, "reflectlite.flag", true, "internal/reflectlite", false, null); + ValueError = $newType(0, $kindStruct, "reflectlite.ValueError", true, "internal/reflectlite", true, function(Method_, Kind_) { + this.$val = this; + if (arguments.length === 0) { + this.Method = ""; + this.Kind = 0; + return; + } + this.Method = Method_; + this.Kind = Kind_; + }); + Type = $newType(8, $kindInterface, "reflectlite.Type", true, "internal/reflectlite", true, null); + rtype = $newType(0, $kindStruct, "reflectlite.rtype", true, "internal/reflectlite", false, function(Type_) { + this.$val = this; + if (arguments.length === 0) { + this.Type = ptrType.nil; + return; + } + this.Type = Type_; + }); + $pkg.Value = Value; + $pkg.flag = flag; + $pkg.ValueError = ValueError; + $pkg.Type = Type; + $pkg.rtype = rtype; + $pkg.$finishSetup = function() { + ptrType = $ptrType(abi.Type); + ptrType$1 = $ptrType(abi.UncommonType); + sliceType = $sliceType(abi.Method); + ptrType$2 = $ptrType(abi.InterfaceType); + ptrType$3 = $ptrType(abi.FuncType); + ptrType$4 = $ptrType(abi.MapType); + ptrType$5 = $ptrType(abi.ArrayType); + ptrType$6 = $ptrType(abi.StructType); + ptrType$7 = $ptrType(abi.Imethod); + ptrType$8 = $ptrType(abi.StructField); + ptrType$9 = $ptrType($Uint8); + sliceType$1 = $sliceType(ptrType); + sliceType$2 = $sliceType(abi.Imethod); + sliceType$3 = $sliceType(abi.StructField); + ptrType$10 = $ptrType(js.Object); + sliceType$4 = $sliceType(ptrType$10); + ptrType$11 = $ptrType(ValueError); + flag.prototype.kind = function kind() { + var f; + f = this.$val; + return ((((f & 31) >>> 0) >>> 0)); + }; + $ptrType(flag).prototype.kind = function(...$args) { return new flag(this.$get()).kind(...$args); }; + flag.prototype.ro = function ro() { + var f; + f = this.$val; + if (!((((f & 96) >>> 0) === 0))) { + return 32; + } + return 0; + }; + $ptrType(flag).prototype.ro = function(...$args) { return new flag(this.$get()).ro(...$args); }; + $ptrType(ValueError).prototype.Error = function Error() { + var e; + e = this; + if (e.Kind === 0) { + return "reflect: call of " + e.Method + " on zero Value"; + } + return "reflect: call of " + e.Method + " on " + new abi.Kind(e.Kind).String() + " Value"; + }; + flag.prototype.mustBeExported = function mustBeExported() { + var f; + f = this.$val; + if (f === 0) { + $panic(new ValueError.ptr(methodName(), 0)); + } + if (!((((f & 96) >>> 0) === 0))) { + $panic(new $String("reflect: " + methodName() + " using value obtained using unexported field")); + } + }; + $ptrType(flag).prototype.mustBeExported = function(...$args) { return new flag(this.$get()).mustBeExported(...$args); }; + flag.prototype.mustBeAssignable = function mustBeAssignable() { + var f; + f = this.$val; + if (f === 0) { + $panic(new ValueError.ptr(methodName(), 0)); + } + if (!((((f & 96) >>> 0) === 0))) { + $panic(new $String("reflect: " + methodName() + " using value obtained using unexported field")); + } + if (((f & 256) >>> 0) === 0) { + $panic(new $String("reflect: " + methodName() + " using unaddressable value")); + } + }; + $ptrType(flag).prototype.mustBeAssignable = function(...$args) { return new flag(this.$get()).mustBeAssignable(...$args); }; + $ptrType(Value).prototype.CanSet = function CanSet() { + var v; + v = this; + return ((v.flag & 352) >>> 0) === 256; + }; + Value.prototype.CanSet = function(...$args) { return this.$val.CanSet(...$args); }; + $ptrType(Value).prototype.IsValid = function IsValid() { + var v; + v = this; + return !((v.flag === 0)); + }; + Value.prototype.IsValid = function(...$args) { return this.$val.IsValid(...$args); }; + $ptrType(Value).prototype.Kind = function Kind$1() { + var v; + v = this; + return new flag(v.flag).kind(); + }; + Value.prototype.Kind = function(...$args) { return this.$val.Kind(...$args); }; + $ptrType(Value).prototype.Type = function Type$1() { + var f, v, x; + v = this; + f = v.flag; + if (f === 0) { + $panic(new ValueError.ptr("reflectlite.Value.Type", 0)); + } + return (x = toRType(v.typ), new x.constructor.elem(x)); + }; + Value.prototype.Type = function(...$args) { return this.$val.Type(...$args); }; + $ptrType(rtype).prototype.uncommon = function uncommon() { + var t; + t = this; + return t.Type.Uncommon(); + }; + rtype.prototype.uncommon = function(...$args) { return this.$val.uncommon(...$args); }; + $ptrType(rtype).prototype.common = function common() { + var t; + t = this; + return t.Type; + }; + rtype.prototype.common = function(...$args) { return this.$val.common(...$args); }; + $ptrType(rtype).prototype.exportedMethods = function exportedMethods() { + var t, ut; + t = this; + ut = $clone(t, rtype).uncommon(); + if (ut === ptrType$1.nil) { + return sliceType.nil; + } + return ut.ExportedMethods(); + }; + rtype.prototype.exportedMethods = function(...$args) { return this.$val.exportedMethods(...$args); }; + $ptrType(rtype).prototype.NumMethod = function NumMethod() { + var t, tt; + t = this; + tt = t.Type.InterfaceType(); + if (!(tt === ptrType$2.nil)) { + return tt.NumMethod(); + } + return $clone(t, rtype).exportedMethods().$length; + }; + rtype.prototype.NumMethod = function(...$args) { return this.$val.NumMethod(...$args); }; + $ptrType(rtype).prototype.PkgPath = function PkgPath() { + var t, ut; + t = this; + if (((t.Type.TFlag & 4) >>> 0) === 0) { + return ""; + } + ut = $clone(t, rtype).uncommon(); + if (ut === ptrType$1.nil) { + return ""; + } + return $clone($clone(t, rtype).nameOff(ut.PkgPath), abi.Name).Name(); + }; + rtype.prototype.PkgPath = function(...$args) { return this.$val.PkgPath(...$args); }; + $ptrType(rtype).prototype.Name = function Name() { + var _1, i, s, sqBrackets, t; + t = this; + if (!t.Type.HasName()) { + return ""; + } + s = $clone(t, rtype).String(); + i = s.length - 1 >> 0; + sqBrackets = 0; + while (true) { + if (!(i >= 0 && (!((s.charCodeAt(i) === 46)) || !((sqBrackets === 0))))) { break; } + _1 = s.charCodeAt(i); + if (_1 === (93)) { + sqBrackets = sqBrackets + (1) >> 0; + } else if (_1 === (91)) { + sqBrackets = sqBrackets - (1) >> 0; + } + i = i - (1) >> 0; + } + return $substring(s, (i + 1 >> 0)); + }; + rtype.prototype.Name = function(...$args) { return this.$val.Name(...$args); }; + toRType = function toRType$1(t) { + var t; + return new rtype.ptr(t); + }; + elem = function elem$1(t) { + var et, t; + et = t.Elem(); + if (!(et === ptrType.nil)) { + return et; + } + $panic(new $String("reflect: Elem of invalid type " + $clone(toRType(t), rtype).String())); + }; + $ptrType(rtype).prototype.Elem = function Elem() { + var t; + t = this; + return toType(elem($clone(t, rtype).common())); + }; + rtype.prototype.Elem = function(...$args) { return this.$val.Elem(...$args); }; + $ptrType(rtype).prototype.In = function In(i) { + var i, t, tt, x; + t = this; + tt = t.Type.FuncType(); + if (tt === ptrType$3.nil) { + $panic(new $String("reflect: In of non-func type")); + } + return toType((x = tt.InSlice(), ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]))); + }; + rtype.prototype.In = function(...$args) { return this.$val.In(...$args); }; + $ptrType(rtype).prototype.Key = function Key() { + var t, tt; + t = this; + tt = t.Type.MapType(); + if (tt === ptrType$4.nil) { + $panic(new $String("reflect: Key of non-map type")); + } + return toType(tt.Key); + }; + rtype.prototype.Key = function(...$args) { return this.$val.Key(...$args); }; + $ptrType(rtype).prototype.Len = function Len() { + var t, tt; + t = this; + tt = t.Type.ArrayType(); + if (tt === ptrType$5.nil) { + $panic(new $String("reflect: Len of non-array type")); + } + return ((tt.Len >> 0)); + }; + rtype.prototype.Len = function(...$args) { return this.$val.Len(...$args); }; + $ptrType(rtype).prototype.NumField = function NumField() { + var t, tt; + t = this; + tt = t.Type.StructType(); + if (tt === ptrType$6.nil) { + $panic(new $String("reflect: NumField of non-struct type")); + } + return tt.Fields.$length; + }; + rtype.prototype.NumField = function(...$args) { return this.$val.NumField(...$args); }; + $ptrType(rtype).prototype.NumIn = function NumIn() { + var t, tt; + t = this; + tt = t.Type.FuncType(); + if (tt === ptrType$3.nil) { + $panic(new $String("reflect: NumIn of non-func type")); + } + return ((tt.InCount >> 0)); + }; + rtype.prototype.NumIn = function(...$args) { return this.$val.NumIn(...$args); }; + $ptrType(rtype).prototype.NumOut = function NumOut() { + var t, tt; + t = this; + tt = t.Type.FuncType(); + if (tt === ptrType$3.nil) { + $panic(new $String("reflect: NumOut of non-func type")); + } + return tt.NumOut(); + }; + rtype.prototype.NumOut = function(...$args) { return this.$val.NumOut(...$args); }; + $ptrType(rtype).prototype.Out = function Out(i) { + var i, t, tt, x; + t = this; + tt = t.Type.FuncType(); + if (tt === ptrType$3.nil) { + $panic(new $String("reflect: Out of non-func type")); + } + return toType((x = tt.OutSlice(), ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]))); + }; + rtype.prototype.Out = function(...$args) { return this.$val.Out(...$args); }; + $ptrType(rtype).prototype.Implements = function Implements(u) { + var {$24r, _r, _r$1, _r$2, t, u, $s, $r, $c} = $restore(this, {u}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + if ($interfaceIsEqual(u, $ifaceNil)) { + $panic(new $String("reflect: nil type passed to Type.Implements")); + } + _r = u.Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!((_r === 20))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((_r === 20))) { */ case 1: + $panic(new $String("reflect: non-interface type passed to Type.Implements")); + /* } */ case 2: + _r$1 = u.common(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = implements$1(_r$1, $clone(t, rtype).common()); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 6; case 6: return $24r; + /* */ } return; } var $f = {$blk: Implements, $c: true, $r, $24r, _r, _r$1, _r$2, t, u, $s};return $f; + }; + rtype.prototype.Implements = function(...$args) { return this.$val.Implements(...$args); }; + $ptrType(rtype).prototype.AssignableTo = function AssignableTo(u) { + var {_r, t, tt, u, uu, $s, $r, $c} = $restore(this, {u}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + t = this; + if ($interfaceIsEqual(u, $ifaceNil)) { + $panic(new $String("reflect: nil type passed to Type.AssignableTo")); + } + _r = u.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + uu = _r; + tt = $clone(t, rtype).common(); + $s = -1; return directlyAssignable(uu, tt) || implements$1(uu, tt); + /* */ } return; } var $f = {$blk: AssignableTo, $c: true, $r, _r, t, tt, u, uu, $s};return $f; + }; + rtype.prototype.AssignableTo = function(...$args) { return this.$val.AssignableTo(...$args); }; + implements$1 = function implements$2(T, V) { + var T, V, i, i$1, j, j$1, rT, rV, t, tm, tm$1, tmName, tmName$1, tmPkgPath, tmPkgPath$1, v, v$1, vm, vm$1, vmName, vmName$1, vmPkgPath, vmPkgPath$1, vmethods, x, x$1, x$2; + t = T.InterfaceType(); + if (t === ptrType$2.nil) { + return false; + } + if (t.Methods.$length === 0) { + return true; + } + rT = $clone(toRType(T), rtype); + rV = $clone(toRType(V), rtype); + if (V.Kind() === 20) { + v = (V.kindType); + i = 0; + j = 0; + while (true) { + if (!(j < v.Methods.$length)) { break; } + tm = (x = t.Methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + i, ptrType$7))); + tmName = $clone($clone(rT, rtype).nameOff(tm.Name), abi.Name); + vm = (x$1 = v.Methods, ((j < 0 || j >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + j, ptrType$7))); + vmName = $clone($clone(rV, rtype).nameOff(vm.Name), abi.Name); + if ($clone(vmName, abi.Name).Name() === $clone(tmName, abi.Name).Name() && $clone(rV, rtype).typeOff(vm.Typ) === $clone(rT, rtype).typeOff(tm.Typ)) { + if (!$clone(tmName, abi.Name).IsExported()) { + tmPkgPath = pkgPath($clone(tmName, abi.Name)); + if (tmPkgPath === "") { + tmPkgPath = $clone(t.PkgPath, abi.Name).Name(); + } + vmPkgPath = pkgPath($clone(vmName, abi.Name)); + if (vmPkgPath === "") { + vmPkgPath = $clone(v.PkgPath, abi.Name).Name(); + } + if (!(tmPkgPath === vmPkgPath)) { + j = j + (1) >> 0; + continue; + } + } + i = i + (1) >> 0; + if (i >= t.Methods.$length) { + return true; + } + } + j = j + (1) >> 0; + } + return false; + } + v$1 = V.Uncommon(); + if (v$1 === ptrType$1.nil) { + return false; + } + i$1 = 0; + vmethods = v$1.Methods(); + j$1 = 0; while (true) { - if (!(j$1 < ((v$1.mcount >> 0)))) { break; } - tm$1 = (x$2 = t.methods, ((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$1])); - tmName$1 = $clone(t.rtype.nameOff(tm$1.name), name); - vm$1 = $clone(((j$1 < 0 || j$1 >= vmethods.$length) ? ($throwRuntimeError("index out of range"), undefined) : vmethods.$array[vmethods.$offset + j$1]), method); - vmName$1 = $clone(V.nameOff(vm$1.name), name); - if ($clone(vmName$1, name).name() === $clone(tmName$1, name).name() && V.typeOff(vm$1.mtyp) === t.rtype.typeOff(tm$1.typ)) { - if (!$clone(tmName$1, name).isExported()) { - tmPkgPath$1 = $clone(tmName$1, name).pkgPath(); + if (!(j$1 < ((v$1.Mcount >> 0)))) { break; } + tm$1 = (x$2 = t.Methods, ((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$2.$array, x$2.$offset + i$1, ptrType$7))); + tmName$1 = $clone($clone(rT, rtype).nameOff(tm$1.Name), abi.Name); + vm$1 = $clone(((j$1 < 0 || j$1 >= vmethods.$length) ? ($throwRuntimeError("index out of range"), undefined) : vmethods.$array[vmethods.$offset + j$1]), abi.Method); + vmName$1 = $clone($clone(rV, rtype).nameOff(vm$1.Name), abi.Name); + if ($clone(vmName$1, abi.Name).Name() === $clone(tmName$1, abi.Name).Name() && $clone(rV, rtype).typeOff(vm$1.Mtyp) === $clone(rT, rtype).typeOff(tm$1.Typ)) { + if (!$clone(tmName$1, abi.Name).IsExported()) { + tmPkgPath$1 = pkgPath($clone(tmName$1, abi.Name)); if (tmPkgPath$1 === "") { - tmPkgPath$1 = $clone(t.pkgPath, name).name(); + tmPkgPath$1 = $clone(t.PkgPath, abi.Name).Name(); } - vmPkgPath$1 = $clone(vmName$1, name).pkgPath(); + vmPkgPath$1 = pkgPath($clone(vmName$1, abi.Name)); if (vmPkgPath$1 === "") { - vmPkgPath$1 = $clone(V.nameOff(v$1.pkgPath), name).name(); + vmPkgPath$1 = $clone($clone(rV, rtype).nameOff(v$1.PkgPath), abi.Name).Name(); } if (!(tmPkgPath$1 === vmPkgPath$1)) { j$1 = j$1 + (1) >> 0; @@ -3679,7 +4363,7 @@ $packages["internal/reflectlite"] = (function() { } } i$1 = i$1 + (1) >> 0; - if (i$1 >= t.methods.$length) { + if (i$1 >= t.Methods.$length) { return true; } } @@ -3688,189 +4372,122 @@ $packages["internal/reflectlite"] = (function() { return false; }; directlyAssignable = function directlyAssignable$1(T, V) { - var {$24r, T, V, _r, $s, $r, $c} = $restore(this, {T, V}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var T, V; if (T === V) { - $s = -1; return true; + return true; } - if (T.hasName() && V.hasName() || !((T.Kind() === V.Kind()))) { - $s = -1; return false; + if (T.HasName() && V.HasName() || !((T.Kind() === V.Kind()))) { + return false; } - _r = haveIdenticalUnderlyingType(T, V, true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: directlyAssignable$1, $c: true, $r, $24r, T, V, _r, $s};return $f; + return haveIdenticalUnderlyingType(T, V, true); }; haveIdenticalType = function haveIdenticalType$1(T, V, cmpTags) { - var {$24r, T, V, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _v, cmpTags, $s, $r, $c} = $restore(this, {T, V, cmpTags}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var T, V, cmpTags; if (cmpTags) { - $s = -1; return $interfaceIsEqual(T, V); - } - _r = T.Name(); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = V.Name(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - if (!(_r === _r$1)) { _v = true; $s = 3; continue s; } - _r$2 = T.Kind(); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = V.Kind(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _v = !((_r$2 === _r$3)); case 3: - /* */ if (_v) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (_v) { */ case 1: - $s = -1; return false; - /* } */ case 2: - _r$4 = T.common(); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _arg = _r$4; - _r$5 = V.common(); /* */ $s = 9; case 9: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _arg$1 = _r$5; - _r$6 = haveIdenticalUnderlyingType(_arg, _arg$1, false); /* */ $s = 10; case 10: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - $24r = _r$6; - $s = 11; case 11: return $24r; - /* */ } return; } var $f = {$blk: haveIdenticalType$1, $c: true, $r, $24r, T, V, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _v, cmpTags, $s};return $f; + return T === V; + } + if (!($clone(toRType(T), rtype).Name() === $clone(toRType(V), rtype).Name()) || !((T.Kind() === V.Kind()))) { + return false; + } + return haveIdenticalUnderlyingType(T, V, false); }; haveIdenticalUnderlyingType = function haveIdenticalUnderlyingType$1(T, V, cmpTags) { - var {$24r, $24r$1, $24r$2, $24r$3, T, V, _1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _v, _v$1, _v$2, _v$3, cmpTags, i, i$1, i$2, kind$1, t, t$1, t$2, tf, v, v$1, v$2, vf, x, x$1, $s, $r, $c} = $restore(this, {T, V, cmpTags}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var T, V, _1, _i, _ref, cmpTags, i, i$1, i$2, kind$1, t, t$1, t$2, tf, v, v$1, v$2, vf, x, x$1; if (T === V) { - $s = -1; return true; + return true; } kind$1 = T.Kind(); if (!((kind$1 === V.Kind()))) { - $s = -1; return false; + return false; } if (1 <= kind$1 && kind$1 <= 16 || (kind$1 === 24) || (kind$1 === 26)) { - $s = -1; return true; + return true; } - _1 = kind$1; - /* */ if (_1 === (17)) { $s = 2; continue; } - /* */ if (_1 === (18)) { $s = 3; continue; } - /* */ if (_1 === (19)) { $s = 4; continue; } - /* */ if (_1 === (20)) { $s = 5; continue; } - /* */ if (_1 === (21)) { $s = 6; continue; } - /* */ if ((_1 === (22)) || (_1 === (23))) { $s = 7; continue; } - /* */ if (_1 === (25)) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (_1 === (17)) { */ case 2: - if (!(T.Len() === V.Len())) { _v = false; $s = 10; continue s; } - _r = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 11; case 11: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _v = _r; case 10: - $24r = _v; - $s = 12; case 12: return $24r; - /* } else if (_1 === (18)) { */ case 3: - if (!(V.chanDir() === 3)) { _v$1 = false; $s = 15; continue s; } - _r$1 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 16; case 16: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v$1 = _r$1; case 15: - /* */ if (_v$1) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (_v$1) { */ case 13: - $s = -1; return true; - /* } */ case 14: - if (!(V.chanDir() === T.chanDir())) { _v$2 = false; $s = 17; continue s; } - _r$2 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 18; case 18: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _v$2 = _r$2; case 17: - $24r$1 = _v$2; - $s = 19; case 19: return $24r$1; - /* } else if (_1 === (19)) { */ case 4: - t = (T.kindType); - v = (V.kindType); - if (!((t.outCount === v.outCount)) || !((t.inCount === v.inCount))) { - $s = -1; return false; + _1 = kind$1; + if (_1 === (17)) { + return (T.Len() === V.Len()) && haveIdenticalType(T.Elem(), V.Elem(), cmpTags); + } else if (_1 === (18)) { + if ((V.ChanDir() === 3) && haveIdenticalType(T.Elem(), V.Elem(), cmpTags)) { + return true; + } + return (V.ChanDir() === T.ChanDir()) && haveIdenticalType(T.Elem(), V.Elem(), cmpTags); + } else if (_1 === (19)) { + t = (T.kindType); + v = (V.kindType); + if (!((t.OutCount === v.OutCount)) || !((t.InCount === v.InCount))) { + return false; + } + i = 0; + while (true) { + if (!(i < t.NumIn())) { break; } + if (!haveIdenticalType(t.In(i), v.In(i), cmpTags)) { + return false; } - i = 0; - /* while (true) { */ case 20: - /* if (!(i < t.rtype.NumIn())) { break; } */ if(!(i < t.rtype.NumIn())) { $s = 21; continue; } - _r$3 = haveIdenticalType(t.rtype.In(i), v.rtype.In(i), cmpTags); /* */ $s = 24; case 24: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (!_r$3) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if (!_r$3) { */ case 22: - $s = -1; return false; - /* } */ case 23: - i = i + (1) >> 0; - $s = 20; continue; - case 21: - i$1 = 0; - /* while (true) { */ case 25: - /* if (!(i$1 < t.rtype.NumOut())) { break; } */ if(!(i$1 < t.rtype.NumOut())) { $s = 26; continue; } - _r$4 = haveIdenticalType(t.rtype.Out(i$1), v.rtype.Out(i$1), cmpTags); /* */ $s = 29; case 29: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if (!_r$4) { $s = 27; continue; } - /* */ $s = 28; continue; - /* if (!_r$4) { */ case 27: - $s = -1; return false; - /* } */ case 28: - i$1 = i$1 + (1) >> 0; - $s = 25; continue; - case 26: - $s = -1; return true; - /* } else if (_1 === (20)) { */ case 5: - t$1 = (T.kindType); - v$1 = (V.kindType); - if ((t$1.methods.$length === 0) && (v$1.methods.$length === 0)) { - $s = -1; return true; + i = i + (1) >> 0; + } + i$1 = 0; + while (true) { + if (!(i$1 < t.NumOut())) { break; } + if (!haveIdenticalType(t.Out(i$1), v.Out(i$1), cmpTags)) { + return false; } - $s = -1; return false; - /* } else if (_1 === (21)) { */ case 6: - _r$5 = haveIdenticalType(T.Key(), V.Key(), cmpTags); /* */ $s = 31; case 31: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - if (!(_r$5)) { _v$3 = false; $s = 30; continue s; } - _r$6 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 32; case 32: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _v$3 = _r$6; case 30: - $24r$2 = _v$3; - $s = 33; case 33: return $24r$2; - /* } else if ((_1 === (22)) || (_1 === (23))) { */ case 7: - _r$7 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 34; case 34: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - $24r$3 = _r$7; - $s = 35; case 35: return $24r$3; - /* } else if (_1 === (25)) { */ case 8: - t$2 = (T.kindType); - v$2 = (V.kindType); - if (!((t$2.fields.$length === v$2.fields.$length))) { - $s = -1; return false; + i$1 = i$1 + (1) >> 0; + } + return true; + } else if (_1 === (20)) { + t$1 = (T.kindType); + v$1 = (V.kindType); + if ((t$1.Methods.$length === 0) && (v$1.Methods.$length === 0)) { + return true; + } + return false; + } else if (_1 === (21)) { + return haveIdenticalType(T.Key(), V.Key(), cmpTags) && haveIdenticalType(T.Elem(), V.Elem(), cmpTags); + } else if ((_1 === (22)) || (_1 === (23))) { + return haveIdenticalType(T.Elem(), V.Elem(), cmpTags); + } else if (_1 === (25)) { + t$2 = (T.kindType); + v$2 = (V.kindType); + if (!((t$2.Fields.$length === v$2.Fields.$length))) { + return false; + } + if (!($clone(t$2.PkgPath, abi.Name).Name() === $clone(v$2.PkgPath, abi.Name).Name())) { + return false; + } + _ref = t$2.Fields; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i$2 = _i; + tf = (x = t$2.Fields, ((i$2 < 0 || i$2 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + i$2, ptrType$8))); + vf = (x$1 = v$2.Fields, ((i$2 < 0 || i$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + i$2, ptrType$8))); + if (!($clone(tf.Name, abi.Name).Name() === $clone(vf.Name, abi.Name).Name())) { + return false; } - if (!($clone(t$2.pkgPath, name).name() === $clone(v$2.pkgPath, name).name())) { - $s = -1; return false; + if (!haveIdenticalType(tf.Typ, vf.Typ, cmpTags)) { + return false; } - _ref = t$2.fields; - _i = 0; - /* while (true) { */ case 36: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 37; continue; } - i$2 = _i; - tf = (x = t$2.fields, ((i$2 < 0 || i$2 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i$2])); - vf = (x$1 = v$2.fields, ((i$2 < 0 || i$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$2])); - if (!($clone(tf.name, name).name() === $clone(vf.name, name).name())) { - $s = -1; return false; - } - _r$8 = haveIdenticalType(tf.typ, vf.typ, cmpTags); /* */ $s = 40; case 40: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - /* */ if (!_r$8) { $s = 38; continue; } - /* */ $s = 39; continue; - /* if (!_r$8) { */ case 38: - $s = -1; return false; - /* } */ case 39: - if (cmpTags && !($clone(tf.name, name).tag() === $clone(vf.name, name).tag())) { - $s = -1; return false; - } - if (!((tf.offset === vf.offset))) { - $s = -1; return false; - } - if (!(tf.embedded() === vf.embedded())) { - $s = -1; return false; - } - _i++; - $s = 36; continue; - case 37: - $s = -1; return true; - /* } */ case 9: - case 1: - $s = -1; return false; - /* */ } return; } var $f = {$blk: haveIdenticalUnderlyingType$1, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, T, V, _1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _v, _v$1, _v$2, _v$3, cmpTags, i, i$1, i$2, kind$1, t, t$1, t$2, tf, v, v$1, v$2, vf, x, x$1, $s};return $f; + if (cmpTags && !($clone(tf.Name, abi.Name).Tag() === $clone(vf.Name, abi.Name).Tag())) { + return false; + } + if (!((tf.Offset === vf.Offset))) { + return false; + } + if (!(tf.Embedded() === vf.Embedded())) { + return false; + } + _i++; + } + return true; + } + return false; }; toType = function toType$1(t) { - var t; - if (t === ptrType$1.nil) { + var t, x; + if (t === ptrType.nil) { return $ifaceNil; } - return t; - }; - ifaceIndir = function ifaceIndir$1(t) { - var t; - return ((t.kind & 32) >>> 0) === 0; + return (x = toRType(t), new x.constructor.elem(x)); }; $ptrType(Value).prototype.object = function object() { var _1, newVal, v, val; @@ -3906,7 +4523,7 @@ $packages["internal/reflectlite"] = (function() { }; Value.prototype.object = function(...$args) { return this.$val.object(...$args); }; $ptrType(Value).prototype.assignTo = function assignTo(context, dst, target) { - var {_r, _r$1, _r$2, context, dst, fl, target, v, x, $s, $r, $c} = $restore(this, {context, dst, target}); + var {_r, _r$1, context, dst, fl, target, v, x, $s, $r, $c} = $restore(this, {context, dst, target}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: v = this; /* */ if (!((((v.flag & 512) >>> 0) === 0))) { $s = 1; continue; } @@ -3915,11 +4532,10 @@ $packages["internal/reflectlite"] = (function() { _r = makeMethodValue(context, $clone(v, Value)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } Value.copy(v, _r); /* } */ case 2: - _r$1 = directlyAssignable(dst, v.typ); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 5; continue; } + /* */ if (directlyAssignable(dst, v.typ)) { $s = 5; continue; } /* */ if (implements$1(dst, v.typ)) { $s = 6; continue; } /* */ $s = 7; continue; - /* if (_r$1) { */ case 5: + /* if (directlyAssignable(dst, v.typ)) { */ case 5: fl = (((v.flag & 384) >>> 0) | new flag(v.flag).ro()) >>> 0; fl = (fl | (((dst.Kind() >>> 0)))) >>> 0; $s = -1; return new Value.ptr(dst, v.ptr, fl); @@ -3927,8 +4543,8 @@ $packages["internal/reflectlite"] = (function() { if (target === 0) { target = unsafe_New(dst); } - _r$2 = valueInterface($clone(v, Value)); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - x = _r$2; + _r$1 = valueInterface($clone(v, Value)); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + x = _r$1; if (dst.NumMethod() === 0) { (target).$set(x); } else { @@ -3938,105 +4554,10 @@ $packages["internal/reflectlite"] = (function() { /* } */ case 7: case 4: $panic(new $String(context + ": value of type " + v.typ.String() + " is not assignable to type " + dst.String())); - $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); - /* */ } return; } var $f = {$blk: assignTo, $c: true, $r, _r, _r$1, _r$2, context, dst, fl, target, v, x, $s};return $f; + $s = -1; return new Value.ptr(ptrType.nil, 0, 0); + /* */ } return; } var $f = {$blk: assignTo, $c: true, $r, _r, _r$1, context, dst, fl, target, v, x, $s};return $f; }; Value.prototype.assignTo = function(...$args) { return this.$val.assignTo(...$args); }; - $ptrType(Value).prototype.Cap = function Cap() { - var _1, k, v; - v = this; - k = new flag(v.flag).kind(); - _1 = k; - if (_1 === (17)) { - return v.typ.Len(); - } else if ((_1 === (18)) || (_1 === (23))) { - return $parseInt($clone(v, Value).object().$capacity) >> 0; - } - $panic(new ValueError.ptr("reflect.Value.Cap", k)); - }; - Value.prototype.Cap = function(...$args) { return this.$val.Cap(...$args); }; - $ptrType(Value).prototype.Index = function Index(i) { - var {$24r, $24r$1, _1, _r, _r$1, a, a$1, c, fl, fl$1, fl$2, i, k, s, str, tt, tt$1, typ, typ$1, v, $s, $r, $c} = $restore(this, {i}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - a = [a]; - a$1 = [a$1]; - c = [c]; - i = [i]; - typ = [typ]; - typ$1 = [typ$1]; - v = this; - k = new flag(v.flag).kind(); - _1 = k; - /* */ if (_1 === (17)) { $s = 2; continue; } - /* */ if (_1 === (23)) { $s = 3; continue; } - /* */ if (_1 === (24)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_1 === (17)) { */ case 2: - tt = (v.typ.kindType); - if (i[0] < 0 || i[0] > ((tt.len >> 0))) { - $panic(new $String("reflect: array index out of range")); - } - typ[0] = tt.elem; - fl = (((((v.flag & 384) >>> 0) | new flag(v.flag).ro()) >>> 0) | ((typ[0].Kind() >>> 0))) >>> 0; - a[0] = v.ptr; - /* */ if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { */ case 7: - $s = -1; return new Value.ptr(typ[0], (new (jsType(PtrTo(typ[0])))((function(a, a$1, c, i, typ, typ$1) { return function Value·Index·func1() { - return wrapJsObject(typ[0], a[0][i[0]]); - }; })(a, a$1, c, i, typ, typ$1), (function(a, a$1, c, i, typ, typ$1) { return function Value·Index·func2(x) { - var x; - a[0][i[0]] = unwrapJsObject(typ[0], x); - }; })(a, a$1, c, i, typ, typ$1))), fl); - /* } */ case 8: - _r = makeValue(typ[0], wrapJsObject(typ[0], a[0][i[0]]), fl); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 10; case 10: return $24r; - /* } else if (_1 === (23)) { */ case 3: - s = $clone(v, Value).object(); - if (i[0] < 0 || i[0] >= ($parseInt(s.$length) >> 0)) { - $panic(new $String("reflect: slice index out of range")); - } - tt$1 = (v.typ.kindType); - typ$1[0] = tt$1.elem; - fl$1 = (((384 | new flag(v.flag).ro()) >>> 0) | ((typ$1[0].Kind() >>> 0))) >>> 0; - i[0] = i[0] + (($parseInt(s.$offset) >> 0)) >> 0; - a$1[0] = s.$array; - /* */ if (!((((fl$1 & 128) >>> 0) === 0)) && !((typ$1[0].Kind() === 17)) && !((typ$1[0].Kind() === 25))) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (!((((fl$1 & 128) >>> 0) === 0)) && !((typ$1[0].Kind() === 17)) && !((typ$1[0].Kind() === 25))) { */ case 11: - $s = -1; return new Value.ptr(typ$1[0], (new (jsType(PtrTo(typ$1[0])))((function(a, a$1, c, i, typ, typ$1) { return function Value·Index·func3() { - return wrapJsObject(typ$1[0], a$1[0][i[0]]); - }; })(a, a$1, c, i, typ, typ$1), (function(a, a$1, c, i, typ, typ$1) { return function Value·Index·func4(x) { - var x; - a$1[0][i[0]] = unwrapJsObject(typ$1[0], x); - }; })(a, a$1, c, i, typ, typ$1))), fl$1); - /* } */ case 12: - _r$1 = makeValue(typ$1[0], wrapJsObject(typ$1[0], a$1[0][i[0]]), fl$1); /* */ $s = 13; case 13: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r$1 = _r$1; - $s = 14; case 14: return $24r$1; - /* } else if (_1 === (24)) { */ case 4: - str = (v.ptr).$get(); - if (i[0] < 0 || i[0] >= str.length) { - $panic(new $String("reflect: string index out of range")); - } - fl$2 = (((new flag(v.flag).ro() | 8) >>> 0) | 128) >>> 0; - c[0] = str.charCodeAt(i[0]); - $s = -1; return new Value.ptr(uint8Type, ((c.$ptr || (c.$ptr = new ptrType$6(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, c)))), fl$2); - /* } else { */ case 5: - $panic(new ValueError.ptr("reflect.Value.Index", k)); - /* } */ case 6: - case 1: - $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); - /* */ } return; } var $f = {$blk: Index, $c: true, $r, $24r, $24r$1, _1, _r, _r$1, a, a$1, c, fl, fl$1, fl$2, i, k, s, str, tt, tt$1, typ, typ$1, v, $s};return $f; - }; - Value.prototype.Index = function(...$args) { return this.$val.Index(...$args); }; - $ptrType(Value).prototype.InterfaceData = function InterfaceData() { - var v; - v = this; - $panic(new $String("InterfaceData is not supported by GopherJS")); - }; - Value.prototype.InterfaceData = function(...$args) { return this.$val.InterfaceData(...$args); }; $ptrType(Value).prototype.IsNil = function IsNil() { var _1, k, v; v = this; @@ -4077,31 +4598,6 @@ $packages["internal/reflectlite"] = (function() { } }; Value.prototype.Len = function(...$args) { return this.$val.Len(...$args); }; - $ptrType(Value).prototype.Pointer = function Pointer() { - var _1, k, v; - v = this; - k = new flag(v.flag).kind(); - _1 = k; - if ((_1 === (18)) || (_1 === (21)) || (_1 === (22)) || (_1 === (26))) { - if ($clone(v, Value).IsNil()) { - return 0; - } - return $clone(v, Value).object(); - } else if (_1 === (19)) { - if ($clone(v, Value).IsNil()) { - return 0; - } - return 1; - } else if (_1 === (23)) { - if ($clone(v, Value).IsNil()) { - return 0; - } - return $clone(v, Value).object().$array; - } else { - $panic(new ValueError.ptr("reflect.Value.Pointer", k)); - } - }; - Value.prototype.Pointer = function(...$args) { return this.$val.Pointer(...$args); }; $ptrType(Value).prototype.Set = function Set(x) { var {_1, _r, _r$1, v, x, $s, $r, $c} = $restore(this, {x}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: @@ -4126,7 +4622,7 @@ $packages["internal/reflectlite"] = (function() { v.ptr.$set(_r$1); $s = 9; continue; /* } else if (_1 === (25)) { */ case 7: - copyStruct(v.ptr, x.ptr, v.typ); + abi.CopyStruct(v.ptr, x.ptr, v.typ); $s = 9; continue; /* } else { */ case 8: v.ptr.$set($clone(x, Value).object()); @@ -4139,1003 +4635,173 @@ $packages["internal/reflectlite"] = (function() { /* */ } return; } var $f = {$blk: Set, $c: true, $r, _1, _r, _r$1, v, x, $s};return $f; }; Value.prototype.Set = function(...$args) { return this.$val.Set(...$args); }; - $ptrType(Value).prototype.SetBytes = function SetBytes(x) { - var {_r, _r$1, _v, slice, typedSlice, v, x, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - v = this; - new flag(v.flag).mustBeAssignable(); - new flag(v.flag).mustBe(23); - _r = v.typ.Elem().Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - /* */ if (!((_r === 8))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!((_r === 8))) { */ case 1: - $panic(new $String("reflect.Value.SetBytes of non-byte slice")); - /* } */ case 2: - slice = x; - if (!(v.typ.Name() === "")) { _v = true; $s = 6; continue s; } - _r$1 = v.typ.Elem().Name(); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = !(_r$1 === ""); case 6: - /* */ if (_v) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_v) { */ case 4: - typedSlice = new (jsType(v.typ))(slice.$array); - typedSlice.$offset = slice.$offset; - typedSlice.$length = slice.$length; - typedSlice.$capacity = slice.$capacity; - slice = typedSlice; - /* } */ case 5: - v.ptr.$set(slice); - $s = -1; return; - /* */ } return; } var $f = {$blk: SetBytes, $c: true, $r, _r, _r$1, _v, slice, typedSlice, v, x, $s};return $f; - }; - Value.prototype.SetBytes = function(...$args) { return this.$val.SetBytes(...$args); }; - $ptrType(Value).prototype.SetCap = function SetCap(n) { - var n, newSlice, s, v; - v = this; - new flag(v.flag).mustBeAssignable(); - new flag(v.flag).mustBe(23); - s = v.ptr.$get(); - if (n < ($parseInt(s.$length) >> 0) || n > ($parseInt(s.$capacity) >> 0)) { - $panic(new $String("reflect: slice capacity out of range in SetCap")); - } - newSlice = new (jsType(v.typ))(s.$array); - newSlice.$offset = s.$offset; - newSlice.$length = s.$length; - newSlice.$capacity = n; - v.ptr.$set(newSlice); - }; - Value.prototype.SetCap = function(...$args) { return this.$val.SetCap(...$args); }; - $ptrType(Value).prototype.SetLen = function SetLen(n) { - var n, newSlice, s, v; - v = this; - new flag(v.flag).mustBeAssignable(); - new flag(v.flag).mustBe(23); - s = v.ptr.$get(); - if (n < 0 || n > ($parseInt(s.$capacity) >> 0)) { - $panic(new $String("reflect: slice length out of range in SetLen")); - } - newSlice = new (jsType(v.typ))(s.$array); - newSlice.$offset = s.$offset; - newSlice.$length = n; - newSlice.$capacity = s.$capacity; - v.ptr.$set(newSlice); - }; - Value.prototype.SetLen = function(...$args) { return this.$val.SetLen(...$args); }; - $ptrType(Value).prototype.Slice = function Slice(i, j) { - var {$24r, $24r$1, _1, _r, _r$1, cap, i, j, kind$1, s, str, tt, typ, v, $s, $r, $c} = $restore(this, {i, j}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - v = this; - cap = 0; - typ = $ifaceNil; - s = null; - kind$1 = new flag(v.flag).kind(); - _1 = kind$1; - /* */ if (_1 === (17)) { $s = 2; continue; } - /* */ if (_1 === (23)) { $s = 3; continue; } - /* */ if (_1 === (24)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_1 === (17)) { */ case 2: - if (((v.flag & 256) >>> 0) === 0) { - $panic(new $String("reflect.Value.Slice: slice of unaddressable array")); - } - tt = (v.typ.kindType); - cap = ((tt.len >> 0)); - typ = SliceOf(tt.elem); - s = new (jsType(typ))($clone(v, Value).object()); - $s = 6; continue; - /* } else if (_1 === (23)) { */ case 3: - typ = v.typ; - s = $clone(v, Value).object(); - cap = $parseInt(s.$capacity) >> 0; - $s = 6; continue; - /* } else if (_1 === (24)) { */ case 4: - str = (v.ptr).$get(); - if (i < 0 || j < i || j > str.length) { - $panic(new $String("reflect.Value.Slice: string slice index out of bounds")); - } - _r = ValueOf(new $String($substring(str, i, j))); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 8; case 8: return $24r; - /* } else { */ case 5: - $panic(new ValueError.ptr("reflect.Value.Slice", kind$1)); - /* } */ case 6: - case 1: - if (i < 0 || j < i || j > cap) { - $panic(new $String("reflect.Value.Slice: slice index out of bounds")); - } - _r$1 = makeValue(typ, $subslice(s, i, j), new flag(v.flag).ro()); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r$1 = _r$1; - $s = 10; case 10: return $24r$1; - /* */ } return; } var $f = {$blk: Slice, $c: true, $r, $24r, $24r$1, _1, _r, _r$1, cap, i, j, kind$1, s, str, tt, typ, v, $s};return $f; - }; - Value.prototype.Slice = function(...$args) { return this.$val.Slice(...$args); }; - $ptrType(Value).prototype.Slice3 = function Slice3(i, j, k) { - var {$24r, _1, _r, cap, i, j, k, kind$1, s, tt, typ, v, $s, $r, $c} = $restore(this, {i, j, k}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $ptrType(Value).prototype.Elem = function Elem$1() { + var _1, fl, k, tt, typ, v, val, val$1; v = this; - cap = 0; - typ = $ifaceNil; - s = null; - kind$1 = new flag(v.flag).kind(); - _1 = kind$1; - if (_1 === (17)) { - if (((v.flag & 256) >>> 0) === 0) { - $panic(new $String("reflect.Value.Slice: slice of unaddressable array")); + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (20)) { + val = $clone(v, Value).object(); + if (val === $ifaceNil) { + return new Value.ptr(ptrType.nil, 0, 0); + } + typ = abi.ReflectType(val.constructor); + return makeValue(typ, val.$val, new flag(v.flag).ro()); + } else if (_1 === (22)) { + if ($clone(v, Value).IsNil()) { + return new Value.ptr(ptrType.nil, 0, 0); } + val$1 = $clone(v, Value).object(); tt = (v.typ.kindType); - cap = ((tt.len >> 0)); - typ = SliceOf(tt.elem); - s = new (jsType(typ))($clone(v, Value).object()); - } else if (_1 === (23)) { - typ = v.typ; - s = $clone(v, Value).object(); - cap = $parseInt(s.$capacity) >> 0; + fl = (((((v.flag & 96) >>> 0) | 128) >>> 0) | 256) >>> 0; + fl = (fl | (((tt.Elem.Kind() >>> 0)))) >>> 0; + return new Value.ptr(tt.Elem, (abi.WrapJsObject(tt.Elem, val$1)), fl); } else { - $panic(new ValueError.ptr("reflect.Value.Slice3", kind$1)); - } - if (i < 0 || j < i || k < j || k > cap) { - $panic(new $String("reflect.Value.Slice3: slice index out of bounds")); + $panic(new ValueError.ptr("reflect.Value.Elem", k)); } - _r = makeValue(typ, $subslice(s, i, j, k), new flag(v.flag).ro()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Slice3, $c: true, $r, $24r, _1, _r, cap, i, j, k, kind$1, s, tt, typ, v, $s};return $f; - }; - Value.prototype.Slice3 = function(...$args) { return this.$val.Slice3(...$args); }; - $ptrType(Value).prototype.Close = function Close() { - var v; - v = this; - new flag(v.flag).mustBe(18); - new flag(v.flag).mustBeExported(); - $close($clone(v, Value).object()); - }; - Value.prototype.Close = function(...$args) { return this.$val.Close(...$args); }; - $ptrType(Value).prototype.Elem = function Elem$1() { - var {$24r, _1, _r, fl, k, tt, typ, v, val, val$1, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - v = this; - k = new flag(v.flag).kind(); - _1 = k; - /* */ if (_1 === (20)) { $s = 2; continue; } - /* */ if (_1 === (22)) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (_1 === (20)) { */ case 2: - val = $clone(v, Value).object(); - if (val === $ifaceNil) { - $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); - } - typ = reflectType(val.constructor); - _r = makeValue(typ, val.$val, new flag(v.flag).ro()); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 7; case 7: return $24r; - /* } else if (_1 === (22)) { */ case 3: - if ($clone(v, Value).IsNil()) { - $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); - } - val$1 = $clone(v, Value).object(); - tt = (v.typ.kindType); - fl = (((((v.flag & 96) >>> 0) | 128) >>> 0) | 256) >>> 0; - fl = (fl | (((tt.elem.Kind() >>> 0)))) >>> 0; - $s = -1; return new Value.ptr(tt.elem, (wrapJsObject(tt.elem, val$1)), fl); - /* } else { */ case 4: - $panic(new ValueError.ptr("reflect.Value.Elem", k)); - /* } */ case 5: - case 1: - $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); - /* */ } return; } var $f = {$blk: Elem$1, $c: true, $r, $24r, _1, _r, fl, k, tt, typ, v, val, val$1, $s};return $f; }; Value.prototype.Elem = function(...$args) { return this.$val.Elem(...$args); }; - $ptrType(Value).prototype.NumField = function NumField() { - var tt, v; - v = this; - new flag(v.flag).mustBe(25); - tt = (v.typ.kindType); - return tt.fields.$length; - }; - Value.prototype.NumField = function(...$args) { return this.$val.NumField(...$args); }; - $ptrType(Value).prototype.MapKeys = function MapKeys() { - var {_r, a, fl, i, it, key, keyType, m, mlen, tt, v, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - v = this; - new flag(v.flag).mustBe(21); - tt = (v.typ.kindType); - keyType = tt.key; - fl = (new flag(v.flag).ro() | ((keyType.Kind() >>> 0))) >>> 0; - m = $clone(v, Value).pointer(); - mlen = 0; - if (!(m === 0)) { - mlen = maplen(m); - } - it = mapiterinit(v.typ, m); - a = $makeSlice(sliceType$6, mlen); - i = 0; - i = 0; - /* while (true) { */ case 1: - /* if (!(i < a.$length)) { break; } */ if(!(i < a.$length)) { $s = 2; continue; } - _r = mapiterkey(it); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - key = _r; - if (key === 0) { - /* break; */ $s = 2; continue; - } - Value.copy(((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i]), copyVal(keyType, fl, key)); - mapiternext(it); - i = i + (1) >> 0; - $s = 1; continue; - case 2: - $s = -1; return $subslice(a, 0, i); - /* */ } return; } var $f = {$blk: MapKeys, $c: true, $r, _r, a, fl, i, it, key, keyType, m, mlen, tt, v, $s};return $f; - }; - Value.prototype.MapKeys = function(...$args) { return this.$val.MapKeys(...$args); }; - $ptrType(Value).prototype.MapIndex = function MapIndex(key) { - var {_r, e, fl, k, key, tt, typ, v, $s, $r, $c} = $restore(this, {key}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - v = this; - new flag(v.flag).mustBe(21); - tt = (v.typ.kindType); - _r = $clone(key, Value).assignTo("reflect.Value.MapIndex", tt.key, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - Value.copy(key, _r); - k = 0; - if (!((((key.flag & 128) >>> 0) === 0))) { - k = key.ptr; - } else { - k = ((key.$ptr_ptr || (key.$ptr_ptr = new ptrType$7(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, key)))); - } - e = mapaccess(v.typ, $clone(v, Value).pointer(), k); - if (e === 0) { - $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); - } - typ = tt.elem; - fl = new flag((((v.flag | key.flag) >>> 0))).ro(); - fl = (fl | (((typ.Kind() >>> 0)))) >>> 0; - $s = -1; return copyVal(typ, fl, e); - /* */ } return; } var $f = {$blk: MapIndex, $c: true, $r, _r, e, fl, k, key, tt, typ, v, $s};return $f; - }; - Value.prototype.MapIndex = function(...$args) { return this.$val.MapIndex(...$args); }; - $ptrType(Value).prototype.Field = function Field(i) { - var {$24r, _r, _r$1, _r$2, field, fl, i, jsTag, o, prop, s, tag, tt, typ, v, x, x$1, $s, $r, $c} = $restore(this, {i}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - jsTag = [jsTag]; - prop = [prop]; - s = [s]; - typ = [typ]; - v = this; - if (!((new flag(v.flag).kind() === 25))) { - $panic(new ValueError.ptr("reflect.Value.Field", new flag(v.flag).kind())); - } - tt = (v.typ.kindType); - if (((i >>> 0)) >= ((tt.fields.$length >>> 0))) { - $panic(new $String("reflect: Field index out of range")); - } - prop[0] = $internalize(jsType(v.typ).fields[i].prop, $String); - field = (x = tt.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - typ[0] = field.typ; - fl = (((v.flag & 416) >>> 0) | ((typ[0].Kind() >>> 0))) >>> 0; - if (!$clone(field.name, name).isExported()) { - if (field.embedded()) { - fl = (fl | (64)) >>> 0; - } else { - fl = (fl | (32)) >>> 0; - } - } - tag = $clone((x$1 = tt.fields, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])).name, name).tag(); - /* */ if (!(tag === "") && !((i === 0))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(tag === "") && !((i === 0))) { */ case 1: - jsTag[0] = getJsTag(tag); - /* */ if (!(jsTag[0] === "")) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!(jsTag[0] === "")) { */ case 3: - /* while (true) { */ case 5: - o = [o]; - _r = $clone(v, Value).Field(0); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - Value.copy(v, _r); - /* */ if (v.typ === jsObjectPtr) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (v.typ === jsObjectPtr) { */ case 8: - o[0] = $clone(v, Value).object().object; - $s = -1; return new Value.ptr(typ[0], (new (jsType(PtrTo(typ[0])))((function(jsTag, o, prop, s, typ) { return function Value·Field·func1() { - return $internalize(o[0][$externalize(jsTag[0], $String)], jsType(typ[0])); - }; })(jsTag, o, prop, s, typ), (function(jsTag, o, prop, s, typ) { return function Value·Field·func2(x$2) { - var x$2; - o[0][$externalize(jsTag[0], $String)] = $externalize(x$2, jsType(typ[0])); - }; })(jsTag, o, prop, s, typ))), fl); - /* } */ case 9: - /* */ if (v.typ.Kind() === 22) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (v.typ.Kind() === 22) { */ case 10: - _r$1 = $clone(v, Value).Elem(); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - Value.copy(v, _r$1); - /* } */ case 11: - $s = 5; continue; - case 6: - /* } */ case 4: - /* } */ case 2: - s[0] = v.ptr; - /* */ if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { */ case 13: - $s = -1; return new Value.ptr(typ[0], (new (jsType(PtrTo(typ[0])))((function(jsTag, prop, s, typ) { return function Value·Field·func3() { - return wrapJsObject(typ[0], s[0][$externalize(prop[0], $String)]); - }; })(jsTag, prop, s, typ), (function(jsTag, prop, s, typ) { return function Value·Field·func4(x$2) { - var x$2; - s[0][$externalize(prop[0], $String)] = unwrapJsObject(typ[0], x$2); - }; })(jsTag, prop, s, typ))), fl); - /* } */ case 14: - _r$2 = makeValue(typ[0], wrapJsObject(typ[0], s[0][$externalize(prop[0], $String)]), fl); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 16; case 16: return $24r; - /* */ } return; } var $f = {$blk: Field, $c: true, $r, $24r, _r, _r$1, _r$2, field, fl, i, jsTag, o, prop, s, tag, tt, typ, v, x, x$1, $s};return $f; - }; - Value.prototype.Field = function(...$args) { return this.$val.Field(...$args); }; - $ptrType(errorString).prototype.Error = function Error$1() { - var e; - e = this; - return e.s; - }; - unquote = function unquote$1(s) { - var s; - if (s.length < 2) { - return [s, $ifaceNil]; - } - if ((s.charCodeAt(0) === 39) || (s.charCodeAt(0) === 34)) { - if (s.charCodeAt((s.length - 1 >> 0)) === s.charCodeAt(0)) { - return [$substring(s, 1, (s.length - 1 >> 0)), $ifaceNil]; - } - return ["", $pkg.ErrSyntax]; - } - return [s, $ifaceNil]; - }; - flag.prototype.mustBe = function mustBe(expected) { - var expected, f; - f = this.$val; - if (!((((((f & 31) >>> 0) >>> 0)) === expected))) { - $panic(new ValueError.ptr(methodName(), new flag(f).kind())); - } - }; - $ptrType(flag).prototype.mustBe = function(...$args) { return new flag(this.$get()).mustBe(...$args); }; $ptrType(rtype).prototype.Comparable = function Comparable() { - var {$24r, _1, _r, _r$1, ft, i, t, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _1 = t.Kind(); - /* */ if ((_1 === (19)) || (_1 === (23)) || (_1 === (21))) { $s = 2; continue; } - /* */ if (_1 === (17)) { $s = 3; continue; } - /* */ if (_1 === (25)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if ((_1 === (19)) || (_1 === (23)) || (_1 === (21))) { */ case 2: - $s = -1; return false; - /* } else if (_1 === (17)) { */ case 3: - _r = t.Elem().Comparable(); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 7; case 7: return $24r; - /* } else if (_1 === (25)) { */ case 4: - i = 0; - /* while (true) { */ case 8: - /* if (!(i < t.NumField())) { break; } */ if(!(i < t.NumField())) { $s = 9; continue; } - ft = $clone(t.Field(i), structField); - _r$1 = ft.typ.Comparable(); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (!_r$1) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (!_r$1) { */ case 10: - $s = -1; return false; - /* } */ case 11: - i = i + (1) >> 0; - $s = 8; continue; - case 9: - /* } */ case 5: - case 1: - $s = -1; return true; - /* */ } return; } var $f = {$blk: Comparable, $c: true, $r, $24r, _1, _r, _r$1, ft, i, t, $s};return $f; - }; - $ptrType(rtype).prototype.IsVariadic = function IsVariadic() { - var t, tt; - t = this; - if (!((t.Kind() === 19))) { - $panic(new $String("reflect: IsVariadic of non-func type")); - } - tt = (t.kindType); - return !((((tt.outCount & 32768) >>> 0) === 0)); - }; - $ptrType(rtype).prototype.Field = function Field$1(i) { - var i, t, tt, x; - t = this; - if (!((t.Kind() === 25))) { - $panic(new $String("reflect: Field of non-struct type")); - } - tt = (t.kindType); - if (i < 0 || i >= tt.fields.$length) { - $panic(new $String("reflect: Field index out of bounds")); - } - return (x = tt.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - }; - $ptrType(rtype).prototype.Key = function Key() { - var t, tt; - t = this; - if (!((t.Kind() === 21))) { - $panic(new $String("reflect: Key of non-map type")); - } - tt = (t.kindType); - return toType(tt.key); - }; - $ptrType(rtype).prototype.NumField = function NumField$1() { - var t, tt; + var t; t = this; - if (!((t.Kind() === 25))) { - $panic(new $String("reflect: NumField of non-struct type")); - } - tt = (t.kindType); - return tt.fields.$length; + return $clone(t, rtype).common().Comparable(); }; - $ptrType(rtype).prototype.Method = function Method$1(i) { - var {$24r, _i, _i$1, _r, _r$1, _ref, _ref$1, arg, fl, fn, ft, i, in$1, m, methods, mt, mtyp, out, p, pname, prop, ret, t, tt, $s, $r, $c} = $restore(this, {i}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - prop = [prop]; - m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0); + rtype.prototype.Comparable = function(...$args) { return this.$val.Comparable(...$args); }; + $ptrType(rtype).prototype.String = function String() { + var t; t = this; - /* */ if (t.Kind() === 20) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (t.Kind() === 20) { */ case 1: - tt = (t.kindType); - _r = tt.rtype.Method(i); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - Method.copy(m, _r); - $24r = m; - $s = 4; case 4: return $24r; - /* } */ case 2: - methods = t.exportedMethods(); - if (i < 0 || i >= methods.$length) { - $panic(new $String("reflect: Method index out of range")); - } - p = $clone(((i < 0 || i >= methods.$length) ? ($throwRuntimeError("index out of range"), undefined) : methods.$array[methods.$offset + i]), method); - pname = $clone(t.nameOff(p.name), name); - m.Name = $clone(pname, name).name(); - fl = 19; - mtyp = t.typeOff(p.mtyp); - ft = (mtyp.kindType); - in$1 = $makeSlice(sliceType$7, 0, (1 + ft.in$().$length >> 0)); - in$1 = $append(in$1, t); - _ref = ft.in$(); - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - in$1 = $append(in$1, arg); - _i++; - } - out = $makeSlice(sliceType$7, 0, ft.out().$length); - _ref$1 = ft.out(); - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - ret = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - out = $append(out, ret); - _i$1++; - } - _r$1 = FuncOf(in$1, out, ft.rtype.IsVariadic()); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - mt = _r$1; - m.Type = mt; - prop[0] = $internalize($methodSet(t[$externalize(idJsType, $String)])[i].prop, $String); - fn = js.MakeFunc((function(prop) { return function rtype·Method·func1(this$1, arguments$1) { - var arguments$1, rcvr, this$1; - rcvr = (0 >= arguments$1.$length ? ($throwRuntimeError("index out of range"), undefined) : arguments$1.$array[arguments$1.$offset + 0]); - return new $jsObjectPtr(rcvr[$externalize(prop[0], $String)].apply(rcvr, $externalize($subslice(arguments$1, 1), sliceType$8))); - }; })(prop)); - Value.copy(m.Func, new Value.ptr($assertType(mt, ptrType$1), (fn), fl)); - m.Index = i; - Method.copy(m, m); - $s = -1; return m; - /* */ } return; } var $f = {$blk: Method$1, $c: true, $r, $24r, _i, _i$1, _r, _r$1, _ref, _ref$1, arg, fl, fn, ft, i, in$1, m, methods, mt, mtyp, out, p, pname, prop, ret, t, tt, $s};return $f; + return $clone(t, rtype).common().String(); }; + rtype.prototype.String = function(...$args) { return this.$val.String(...$args); }; Swapper = function Swapper$1(slice) { - var {_1, _r, a, off, slice, v, vLen, $s, $r, $c} = $restore(this, {slice}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - a = [a]; - off = [off]; - vLen = [vLen]; - _r = ValueOf(slice); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - v = $clone(_r, Value); + var _1, a, off, slice, v, vLen; + v = $clone(ValueOf(slice), Value); if (!(($clone(v, Value).Kind() === 23))) { $panic(new ValueError.ptr("Swapper", $clone(v, Value).Kind())); } - vLen[0] = (($clone(v, Value).Len() >>> 0)); - _1 = vLen[0]; + vLen = (($clone(v, Value).Len() >>> 0)); + _1 = vLen; if (_1 === (0)) { - $s = -1; return (function(a, off, vLen) { return function Swapper·func1(i, j) { + return (function Swapper·func1(i, j) { var i, j; $panic(new $String("reflect: slice index out of range")); - }; })(a, off, vLen); + }); } else if (_1 === (1)) { - $s = -1; return (function(a, off, vLen) { return function Swapper·func2(i, j) { + return (function Swapper·func2(i, j) { var i, j; if (!((i === 0)) || !((j === 0))) { $panic(new $String("reflect: slice index out of range")); } - }; })(a, off, vLen); + }); } - a[0] = slice.$array; - off[0] = $parseInt(slice.$offset) >> 0; - $s = -1; return (function(a, off, vLen) { return function Swapper·func3(i, j) { + a = slice.$array; + off = $parseInt(slice.$offset) >> 0; + return (function Swapper·func3(i, j) { var i, j, tmp; - if (((i >>> 0)) >= vLen[0] || ((j >>> 0)) >= vLen[0]) { + if (((i >>> 0)) >= vLen || ((j >>> 0)) >= vLen) { $panic(new $String("reflect: slice index out of range")); } - i = i + (off[0]) >> 0; - j = j + (off[0]) >> 0; - tmp = a[0][i]; - a[0][i] = a[0][j]; - a[0][j] = tmp; - }; })(a, off, vLen); - /* */ } return; } var $f = {$blk: Swapper$1, $c: true, $r, _1, _r, a, off, slice, v, vLen, $s};return $f; + i = i + (off) >> 0; + j = j + (off) >> 0; + tmp = a[i]; + a[i] = a[j]; + a[j] = tmp; + }); }; $pkg.Swapper = Swapper; init = function init$1() { - var {used, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {}); + var {used, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: used = (function init·func1(i) { var i; }); - $r = used((x = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), new x.constructor.elem(x))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$1 = new uncommonType.ptr(0, 0, 0, 0, sliceType$5.nil), new x$1.constructor.elem(x$1))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$2 = new method.ptr(0, 0, 0, 0), new x$2.constructor.elem(x$2))); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$3 = new arrayType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), ptrType$1.nil, ptrType$1.nil, 0), new x$3.constructor.elem(x$3))); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$4 = new chanType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), ptrType$1.nil, 0), new x$4.constructor.elem(x$4))); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$5 = new funcType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), 0, 0, sliceType$2.nil, sliceType$2.nil), new x$5.constructor.elem(x$5))); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$6 = new interfaceType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), new name.ptr(ptrType$6.nil), sliceType$9.nil), new x$6.constructor.elem(x$6))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$7 = new mapType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), ptrType$1.nil, ptrType$1.nil, ptrType$1.nil, $throwNilPointerError, 0, 0, 0, 0), new x$7.constructor.elem(x$7))); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$8 = new ptrType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), ptrType$1.nil), new x$8.constructor.elem(x$8))); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$9 = new sliceType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), ptrType$1.nil), new x$9.constructor.elem(x$9))); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$10 = new structType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), new name.ptr(ptrType$6.nil), sliceType$10.nil), new x$10.constructor.elem(x$10))); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$11 = new imethod.ptr(0, 0), new x$11.constructor.elem(x$11))); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$12 = new structField.ptr(new name.ptr(ptrType$6.nil), ptrType$1.nil, 0), new x$12.constructor.elem(x$12))); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - initialized = true; - uint8Type = $assertType(TypeOf(new $Uint8(0)), ptrType$1); + $r = used((x = new rtype.ptr(ptrType.nil), new x.constructor.elem(x))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$1 = new abi.UncommonType.ptr(abi.NameOff.nil, 0, 0, sliceType.nil), new x$1.constructor.elem(x$1))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$2 = new abi.FuncType.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$9.nil, abi.NameOff.nil, abi.TypeOff.nil), 0, 0, sliceType$1.nil, sliceType$1.nil), new x$2.constructor.elem(x$2))); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$3 = new abi.InterfaceType.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$9.nil, abi.NameOff.nil, abi.TypeOff.nil), new abi.Name.ptr("", "", false, false, ""), sliceType$2.nil), new x$3.constructor.elem(x$3))); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$4 = new abi.StructType.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$9.nil, abi.NameOff.nil, abi.TypeOff.nil), new abi.Name.ptr("", "", false, false, ""), sliceType$3.nil), new x$4.constructor.elem(x$4))); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } var $f = {$blk: init$1, $c: true, $r, used, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; + /* */ } return; } var $f = {$blk: init$1, $c: true, $r, used, x, x$1, x$2, x$3, x$4, $s};return $f; }; jsType = function jsType$1(typ) { var typ; - return typ[$externalize(idJsType, $String)]; - }; - reflectType = function reflectType$1(typ) { - var _1, _i, _i$1, _i$2, _i$3, _key, _ref, _ref$1, _ref$2, _ref$3, dir, exported, exported$1, f, fields, i, i$1, i$2, i$3, i$4, i$5, imethods, in$1, m, m$1, m$2, methodSet, methods, out, outCount, params, reflectFields, reflectMethods, results, rt, typ, ut, xcount; - if (typ[$externalize(idReflectType, $String)] === undefined) { - rt = new rtype.ptr(((($parseInt(typ.size) >> 0) >>> 0)), 0, 0, 0, 0, 0, ((($parseInt(typ.kind) >> 0) << 24 >>> 24)), $throwNilPointerError, ptrType$6.nil, newNameOff($clone(newName(internalStr(typ.string), "", !!(typ.exported), false), name)), 0); - rt[$externalize(idJsType, $String)] = typ; - typ[$externalize(idReflectType, $String)] = rt; - methodSet = $methodSet(typ); - if (!(($parseInt(methodSet.length) === 0)) || !!(typ.named)) { - rt.tflag = (rt.tflag | (1)) >>> 0; - if (!!(typ.named)) { - rt.tflag = (rt.tflag | (4)) >>> 0; - } - reflectMethods = sliceType$5.nil; - i = 0; - while (true) { - if (!(i < $parseInt(methodSet.length))) { break; } - m = methodSet[i]; - exported = internalStr(m.pkg) === ""; - if (!exported) { - i = i + (1) >> 0; - continue; - } - reflectMethods = $append(reflectMethods, new method.ptr(newNameOff($clone(newName(internalStr(m.name), "", exported, false), name)), newTypeOff(reflectType(m.typ)), 0, 0)); - i = i + (1) >> 0; - } - xcount = ((reflectMethods.$length << 16 >>> 16)); - i$1 = 0; - while (true) { - if (!(i$1 < $parseInt(methodSet.length))) { break; } - m$1 = methodSet[i$1]; - exported$1 = internalStr(m$1.pkg) === ""; - if (exported$1) { - i$1 = i$1 + (1) >> 0; - continue; - } - reflectMethods = $append(reflectMethods, new method.ptr(newNameOff($clone(newName(internalStr(m$1.name), "", exported$1, false), name)), newTypeOff(reflectType(m$1.typ)), 0, 0)); - i$1 = i$1 + (1) >> 0; - } - ut = new uncommonType.ptr(newNameOff($clone(newName(internalStr(typ.pkg), "", false, false), name)), (($parseInt(methodSet.length) << 16 >>> 16)), xcount, 0, reflectMethods); - _key = rt; (uncommonTypeMap || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$1.keyFor(_key), { k: _key, v: ut }); - ut[$externalize(idJsType, $String)] = typ; - } - _1 = rt.Kind(); - if (_1 === (17)) { - setKindType(rt, new arrayType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), reflectType(typ.elem), ptrType$1.nil, ((($parseInt(typ.len) >> 0) >>> 0)))); - } else if (_1 === (18)) { - dir = 3; - if (!!(typ.sendOnly)) { - dir = 2; - } - if (!!(typ.recvOnly)) { - dir = 1; - } - setKindType(rt, new chanType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), reflectType(typ.elem), ((dir >>> 0)))); - } else if (_1 === (19)) { - params = typ.params; - in$1 = $makeSlice(sliceType$2, $parseInt(params.length)); - _ref = in$1; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i$2 = _i; - ((i$2 < 0 || i$2 >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + i$2] = reflectType(params[i$2])); - _i++; - } - results = typ.results; - out = $makeSlice(sliceType$2, $parseInt(results.length)); - _ref$1 = out; - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - i$3 = _i$1; - ((i$3 < 0 || i$3 >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + i$3] = reflectType(results[i$3])); - _i$1++; - } - outCount = (($parseInt(results.length) << 16 >>> 16)); - if (!!(typ.variadic)) { - outCount = (outCount | (32768)) >>> 0; - } - setKindType(rt, new funcType.ptr($clone(rt, rtype), (($parseInt(params.length) << 16 >>> 16)), outCount, in$1, out)); - } else if (_1 === (20)) { - methods = typ.methods; - imethods = $makeSlice(sliceType$9, $parseInt(methods.length)); - _ref$2 = imethods; - _i$2 = 0; - while (true) { - if (!(_i$2 < _ref$2.$length)) { break; } - i$4 = _i$2; - m$2 = methods[i$4]; - imethod.copy(((i$4 < 0 || i$4 >= imethods.$length) ? ($throwRuntimeError("index out of range"), undefined) : imethods.$array[imethods.$offset + i$4]), new imethod.ptr(newNameOff($clone(newName(internalStr(m$2.name), "", internalStr(m$2.pkg) === "", false), name)), newTypeOff(reflectType(m$2.typ)))); - _i$2++; - } - setKindType(rt, new interfaceType.ptr($clone(rt, rtype), $clone(newName(internalStr(typ.pkg), "", false, false), name), imethods)); - } else if (_1 === (21)) { - setKindType(rt, new mapType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), reflectType(typ.key), reflectType(typ.elem), ptrType$1.nil, $throwNilPointerError, 0, 0, 0, 0)); - } else if (_1 === (22)) { - setKindType(rt, new ptrType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), reflectType(typ.elem))); - } else if (_1 === (23)) { - setKindType(rt, new sliceType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), reflectType(typ.elem))); - } else if (_1 === (25)) { - fields = typ.fields; - reflectFields = $makeSlice(sliceType$10, $parseInt(fields.length)); - _ref$3 = reflectFields; - _i$3 = 0; - while (true) { - if (!(_i$3 < _ref$3.$length)) { break; } - i$5 = _i$3; - f = fields[i$5]; - structField.copy(((i$5 < 0 || i$5 >= reflectFields.$length) ? ($throwRuntimeError("index out of range"), undefined) : reflectFields.$array[reflectFields.$offset + i$5]), new structField.ptr($clone(newName(internalStr(f.name), internalStr(f.tag), !!(f.exported), !!(f.embedded)), name), reflectType(f.typ), ((i$5 >>> 0)))); - _i$3++; - } - setKindType(rt, new structType.ptr($clone(rt, rtype), $clone(newName(internalStr(typ.pkgPath), "", false, false), name), reflectFields)); - } - } - return ((typ[$externalize(idReflectType, $String)])); - }; - setKindType = function setKindType$1(rt, kindType$1) { - var kindType$1, rt; - rt[$externalize(idKindType, $String)] = kindType$1; - kindType$1[$externalize(idRtype, $String)] = rt; - }; - $ptrType(uncommonType).prototype.methods = function methods() { - var t; - t = this; - return t._methods; - }; - $ptrType(uncommonType).prototype.exportedMethods = function exportedMethods$1() { - var t; - t = this; - return $subslice(t._methods, 0, t.xcount, t.xcount); - }; - $ptrType(rtype).prototype.uncommon = function uncommon() { - var _entry, t; - t = this; - return (_entry = $mapIndex(uncommonTypeMap,ptrType$1.keyFor(t)), _entry !== undefined ? _entry.v : ptrType$4.nil); - }; - $ptrType(funcType).prototype.in$ = function in$1() { - var t; - t = this; - return t._in; - }; - $ptrType(funcType).prototype.out = function out() { - var t; - t = this; - return t._out; - }; - $ptrType(name).prototype.name = function name$1() { - var _entry, n, s; - s = ""; - n = this; - s = (_entry = $mapIndex(nameMap,ptrType$6.keyFor(n.bytes)), _entry !== undefined ? _entry.v : ptrType$8.nil).name; - return s; - }; - name.prototype.name = function(...$args) { return this.$val.name(...$args); }; - $ptrType(name).prototype.tag = function tag() { - var _entry, n, s; - s = ""; - n = this; - s = (_entry = $mapIndex(nameMap,ptrType$6.keyFor(n.bytes)), _entry !== undefined ? _entry.v : ptrType$8.nil).tag; - return s; + return typ.JsType(); }; - name.prototype.tag = function(...$args) { return this.$val.tag(...$args); }; - $ptrType(name).prototype.pkgPath = function pkgPath() { + pkgPath = function pkgPath$1(n) { var n; - n = this; - return ""; - }; - name.prototype.pkgPath = function(...$args) { return this.$val.pkgPath(...$args); }; - $ptrType(name).prototype.isExported = function isExported() { - var _entry, n; - n = this; - return (_entry = $mapIndex(nameMap,ptrType$6.keyFor(n.bytes)), _entry !== undefined ? _entry.v : ptrType$8.nil).exported; - }; - name.prototype.isExported = function(...$args) { return this.$val.isExported(...$args); }; - $ptrType(name).prototype.embedded = function embedded$1() { - var _entry, n; - n = this; - return (_entry = $mapIndex(nameMap,ptrType$6.keyFor(n.bytes)), _entry !== undefined ? _entry.v : ptrType$8.nil).embedded; - }; - name.prototype.embedded = function(...$args) { return this.$val.embedded(...$args); }; - newName = function newName$1(n, tag$1, exported, embedded$2) { - var _key, b, embedded$2, exported, n, tag$1; - b = $newDataPointer(0, ptrType$6); - _key = b; (nameMap || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$6.keyFor(_key), { k: _key, v: new nameData.ptr(n, tag$1, exported, embedded$2) }); - return new name.ptr(b); + return $clone(n, abi.Name).PkgPath(); }; $ptrType(rtype).prototype.nameOff = function nameOff$1(off) { - var off, t, x; + var off, t; t = this; - return (x = ((off >> 0)), ((x < 0 || x >= nameOffList.$length) ? ($throwRuntimeError("index out of range"), undefined) : nameOffList.$array[nameOffList.$offset + x])); - }; - newNameOff = function newNameOff$1(n) { - var i, n; - i = nameOffList.$length; - nameOffList = $append(nameOffList, n); - return ((i >> 0)); + return t.Type.NameOff(off); }; + rtype.prototype.nameOff = function(...$args) { return this.$val.nameOff(...$args); }; $ptrType(rtype).prototype.typeOff = function typeOff$1(off) { - var off, t, x; + var off, t; t = this; - return (x = ((off >> 0)), ((x < 0 || x >= typeOffList.$length) ? ($throwRuntimeError("index out of range"), undefined) : typeOffList.$array[typeOffList.$offset + x])); - }; - newTypeOff = function newTypeOff$1(t) { - var i, t; - i = typeOffList.$length; - typeOffList = $append(typeOffList, t); - return ((i >> 0)); + return t.Type.TypeOff(off); }; - internalStr = function internalStr$1(strObj) { - var c, strObj; - c = new structType$2.ptr(""); - c.str = strObj; - return c.str; + rtype.prototype.typeOff = function(...$args) { return this.$val.typeOff(...$args); }; + makeValue = function makeValue$1(t, v, fl) { + var _1, fl, t, v; + _1 = t.Kind(); + if ((_1 === (17)) || (_1 === (25)) || (_1 === (22))) { + return new Value.ptr(t, (v), (fl | ((t.Kind() >>> 0))) >>> 0); + } + return new Value.ptr(t, ($newDataPointer(v, t.JsPtrTo())), (((fl | ((t.Kind() >>> 0))) >>> 0) | 128) >>> 0); }; - isWrapped = function isWrapped$1(typ) { - var typ; - return !!(jsType(typ).wrapped); + TypeOf = function TypeOf$1(i) { + var i, x; + if ($interfaceIsEqual(i, $ifaceNil)) { + return $ifaceNil; + } + return (x = toRType(abi.ReflectType(i.constructor)), new x.constructor.elem(x)); }; - copyStruct = function copyStruct$1(dst, src, typ) { - var dst, fields, i, prop, src, typ; - fields = jsType(typ).fields; - i = 0; - while (true) { - if (!(i < $parseInt(fields.length))) { break; } - prop = $internalize(fields[i].prop, $String); - dst[$externalize(prop, $String)] = src[$externalize(prop, $String)]; - i = i + (1) >> 0; + $pkg.TypeOf = TypeOf; + ValueOf = function ValueOf$1(i) { + var i; + if ($interfaceIsEqual(i, $ifaceNil)) { + return new Value.ptr(ptrType.nil, 0, 0); } - }; - makeValue = function makeValue$1(t, v, fl) { - var {$24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _v, _v$1, fl, rt, t, v, $s, $r, $c} = $restore(this, {t, v, fl}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = t.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - rt = _r; - _r$1 = t.Kind(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - if (_r$1 === 17) { _v$1 = true; $s = 5; continue s; } - _r$2 = t.Kind(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _v$1 = _r$2 === 25; case 5: - if (_v$1) { _v = true; $s = 4; continue s; } - _r$3 = t.Kind(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _v = _r$3 === 22; case 4: - /* */ if (_v) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (_v) { */ case 2: - _r$4 = t.Kind(); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $24r = new Value.ptr(rt, (v), (fl | ((_r$4 >>> 0))) >>> 0); - $s = 10; case 10: return $24r; - /* } */ case 3: - _r$5 = t.Kind(); /* */ $s = 11; case 11: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - $24r$1 = new Value.ptr(rt, ($newDataPointer(v, jsType(rt.ptrTo()))), (((fl | ((_r$5 >>> 0))) >>> 0) | 128) >>> 0); - $s = 12; case 12: return $24r$1; - /* */ } return; } var $f = {$blk: makeValue$1, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _v, _v$1, fl, rt, t, v, $s};return $f; - }; - TypeOf = function TypeOf$1(i) { - var i; - if (!initialized) { - return new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0); - } - if ($interfaceIsEqual(i, $ifaceNil)) { - return $ifaceNil; - } - return reflectType(i.constructor); - }; - $pkg.TypeOf = TypeOf; - ValueOf = function ValueOf$1(i) { - var {$24r, _r, i, $s, $r, $c} = $restore(this, {i}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if ($interfaceIsEqual(i, $ifaceNil)) { - $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); - } - _r = makeValue(reflectType(i.constructor), i.$val, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: ValueOf$1, $c: true, $r, $24r, _r, i, $s};return $f; + return makeValue(abi.ReflectType(i.constructor), i.$val, 0); }; $pkg.ValueOf = ValueOf; - FuncOf = function FuncOf$1(in$2, out$1, variadic) { - var {_i, _i$1, _r, _ref, _ref$1, _v, _v$1, i, i$1, in$2, jsIn, jsOut, out$1, v, v$1, variadic, x, $s, $r, $c} = $restore(this, {in$2, out$1, variadic}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (!(variadic)) { _v = false; $s = 3; continue s; } - if (in$2.$length === 0) { _v$1 = true; $s = 4; continue s; } - _r = (x = in$2.$length - 1 >> 0, ((x < 0 || x >= in$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$2.$array[in$2.$offset + x])).Kind(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _v$1 = !((_r === 23)); case 4: - _v = _v$1; case 3: - /* */ if (_v) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (_v) { */ case 1: - $panic(new $String("reflect.FuncOf: last arg of variadic func must be slice")); - /* } */ case 2: - jsIn = $makeSlice(sliceType$8, in$2.$length); - _ref = in$2; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - ((i < 0 || i >= jsIn.$length) ? ($throwRuntimeError("index out of range"), undefined) : jsIn.$array[jsIn.$offset + i] = jsType(v)); - _i++; - } - jsOut = $makeSlice(sliceType$8, out$1.$length); - _ref$1 = out$1; - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - i$1 = _i$1; - v$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - ((i$1 < 0 || i$1 >= jsOut.$length) ? ($throwRuntimeError("index out of range"), undefined) : jsOut.$array[jsOut.$offset + i$1] = jsType(v$1)); - _i$1++; - } - $s = -1; return reflectType($funcType($externalize(jsIn, sliceType$8), $externalize(jsOut, sliceType$8), $externalize(variadic, $Bool))); - /* */ } return; } var $f = {$blk: FuncOf$1, $c: true, $r, _i, _i$1, _r, _ref, _ref$1, _v, _v$1, i, i$1, in$2, jsIn, jsOut, out$1, v, v$1, variadic, x, $s};return $f; - }; - $pkg.FuncOf = FuncOf; - $ptrType(rtype).prototype.ptrTo = function ptrTo() { - var t; - t = this; - return reflectType($ptrType(jsType(t))); - }; - SliceOf = function SliceOf$1(t) { - var t; - return reflectType($sliceType(jsType(t))); - }; - $pkg.SliceOf = SliceOf; unsafe_New = function unsafe_New$1(typ) { - var _1, typ; - _1 = typ.Kind(); - if (_1 === (25)) { - return (new (jsType(typ).ptr)()); - } else if (_1 === (17)) { - return (jsType(typ).zero()); - } else { - return ($newDataPointer(jsType(typ).zero(), jsType(typ.ptrTo()))); - } - }; - typedmemmove = function typedmemmove$1(t, dst, src) { - var dst, src, t; - dst.$set(src.$get()); - }; - keyFor = function keyFor$1(t, key) { - var k, key, kv, t; - kv = key; - if (!(kv.$get === undefined)) { - kv = kv.$get(); - } - k = $internalize(jsType(t.Key()).keyFor(kv), $String); - return [kv, k]; - }; - mapaccess = function mapaccess$1(t, m, key) { - var _tuple, entry, k, key, m, t; - _tuple = keyFor(t, key); - k = _tuple[1]; - entry = m.get($externalize(k, $String)); - if (entry === undefined) { - return 0; - } - return ($newDataPointer(entry.v, jsType(PtrTo(t.Elem())))); - }; - $ptrType(mapIter).prototype.skipUntilValidKey = function skipUntilValidKey() { - var iter, k; - iter = this; - while (true) { - if (!(iter.i < $parseInt(iter.keys.length))) { break; } - k = iter.keys[iter.i]; - if (!(iter.m.get(k) === undefined)) { - break; - } - iter.i = iter.i + (1) >> 0; - } - }; - mapiterinit = function mapiterinit$1(t, m) { - var m, t; - return (new mapIter.ptr(t, m, $global.Array.from(m.keys()), 0, null)); - }; - mapiterkey = function mapiterkey$1(it) { - var {$24r, _r, _r$1, _r$2, it, iter, k, kv, $s, $r, $c} = $restore(this, {it}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - iter = ($pointerOfStructConversion(it, ptrType$9)); - kv = null; - if (!(iter.last === null)) { - kv = iter.last; - } else { - iter.skipUntilValidKey(); - if (iter.i === $parseInt(iter.keys.length)) { - $s = -1; return 0; - } - k = iter.keys[iter.i]; - kv = iter.m.get(k); - iter.last = kv; - } - _r = $assertType(iter.t, TypeEx).Key(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = PtrTo(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = jsType(_r$1); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = ($newDataPointer(kv.k, _r$2)); - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: mapiterkey$1, $c: true, $r, $24r, _r, _r$1, _r$2, it, iter, k, kv, $s};return $f; - }; - mapiternext = function mapiternext$1(it) { - var it, iter; - iter = ($pointerOfStructConversion(it, ptrType$9)); - iter.last = null; - iter.i = iter.i + (1) >> 0; - }; - maplen = function maplen$1(m) { - var m; - return $parseInt(m.size) >> 0; + var typ; + return abi.UnsafeNew(typ); }; methodReceiver = function methodReceiver$1(op, v, i) { - var _, fn, i, m, m$1, ms, op, prop, rcvr, t, tt, v, x; - _ = ptrType$1.nil; - t = ptrType$5.nil; + var fn, i, m, m$1, ms, op, prop, rcvr, tt, v, x; fn = 0; prop = ""; if (v.typ.Kind() === 20) { - tt = (v.typ.kindType); - if (i < 0 || i >= tt.methods.$length) { + tt = v.typ.InterfaceType(); + if (i < 0 || i >= tt.Methods.$length) { $panic(new $String("reflect: internal error: invalid method index")); } - m = (x = tt.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - if (!$clone(tt.rtype.nameOff(m.name), name).isExported()) { + m = (x = tt.Methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + i, ptrType$7))); + if (!$clone(tt.Type.NameOff(m.Name), abi.Name).IsExported()) { $panic(new $String("reflect: " + op + " of unexported method")); } - t = (tt.rtype.typeOff(m.typ).kindType); - prop = $clone(tt.rtype.nameOff(m.name), name).name(); + prop = $clone(tt.Type.NameOff(m.Name), abi.Name).Name(); } else { - ms = v.typ.exportedMethods(); + ms = v.typ.ExportedMethods(); if (((i >>> 0)) >= ((ms.$length >>> 0))) { $panic(new $String("reflect: internal error: invalid method index")); } - m$1 = $clone(((i < 0 || i >= ms.$length) ? ($throwRuntimeError("index out of range"), undefined) : ms.$array[ms.$offset + i]), method); - if (!$clone(v.typ.nameOff(m$1.name), name).isExported()) { + m$1 = $clone(((i < 0 || i >= ms.$length) ? ($throwRuntimeError("index out of range"), undefined) : ms.$array[ms.$offset + i]), abi.Method); + if (!$clone(v.typ.NameOff(m$1.Name), abi.Name).IsExported()) { $panic(new $String("reflect: " + op + " of unexported method")); } - t = (v.typ.typeOff(m$1.mtyp).kindType); prop = $internalize($methodSet(jsType(v.typ))[i].prop, $String); } rcvr = $clone(v, Value).object(); - if (isWrapped(v.typ)) { + if (v.typ.IsWrapped()) { rcvr = new (jsType(v.typ))(rcvr); } fn = (rcvr[$externalize(prop, $String)]); - return [_, t, fn]; + return fn; }; valueInterface = function valueInterface$1(v) { var {_r, cv, v, $s, $r, $c} = $restore(this, {v}); @@ -5149,10 +4815,10 @@ $packages["internal/reflectlite"] = (function() { _r = makeMethodValue("Interface", $clone(v, Value)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } Value.copy(v, _r); /* } */ case 2: - if (isWrapped(v.typ)) { + if (v.typ.IsWrapped()) { if (!((((v.flag & 128) >>> 0) === 0)) && ($clone(v, Value).Kind() === 25)) { cv = jsType(v.typ).zero(); - copyStruct(cv, $clone(v, Value).object(), v.typ); + abi.CopyStruct(cv, $clone(v, Value).object(), v.typ); $s = -1; return ((new (jsType(v.typ))(cv))); } $s = -1; return ((new (jsType(v.typ))($clone(v, Value).object()))); @@ -5162,169 +4828,56 @@ $packages["internal/reflectlite"] = (function() { }; ifaceE2I = function ifaceE2I$1(t, src, dst) { var dst, src, t; - dst.$set(src); + abi.IfaceE2I(t, src, dst); }; methodName = function methodName$1() { return "?FIXME?"; }; makeMethodValue = function makeMethodValue$1(op, v) { - var {$24r, _r, _tuple, fn, fv, op, rcvr, v, $s, $r, $c} = $restore(this, {op, v}); + var {$24r, _r, fn, fv, op, rcvr, v, $s, $r, $c} = $restore(this, {op, v}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: fn = [fn]; rcvr = [rcvr]; if (((v.flag & 512) >>> 0) === 0) { $panic(new $String("reflect: internal error: invalid use of makePartialFunc")); } - _tuple = methodReceiver(op, $clone(v, Value), ((v.flag >> 0)) >> 10 >> 0); - fn[0] = _tuple[2]; + fn[0] = methodReceiver(op, $clone(v, Value), ((v.flag >> 0)) >> 10 >> 0); rcvr[0] = $clone(v, Value).object(); - if (isWrapped(v.typ)) { + if (v.typ.IsWrapped()) { rcvr[0] = new (jsType(v.typ))(rcvr[0]); } fv = js.MakeFunc((function(fn, rcvr) { return function makeMethodValue·func1(this$1, arguments$1) { var arguments$1, this$1; - return new $jsObjectPtr(fn[0].apply(rcvr[0], $externalize(arguments$1, sliceType$8))); + return new $jsObjectPtr(fn[0].apply(rcvr[0], $externalize(arguments$1, sliceType$4))); }; })(fn, rcvr)); _r = $clone(v, Value).Type().common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $24r = new Value.ptr(_r, (fv), (new flag(v.flag).ro() | 19) >>> 0); $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: makeMethodValue$1, $c: true, $r, $24r, _r, _tuple, fn, fv, op, rcvr, v, $s};return $f; + /* */ } return; } var $f = {$blk: makeMethodValue$1, $c: true, $r, $24r, _r, fn, fv, op, rcvr, v, $s};return $f; }; - wrapJsObject = function wrapJsObject$1(typ, val) { - var typ, val; - if ($interfaceIsEqual(typ, jsObjectPtr)) { - return new (jsType(jsObjectPtr))(val); - } - return val; - }; - unwrapJsObject = function unwrapJsObject$1(typ, val) { - var typ, val; - if ($interfaceIsEqual(typ, jsObjectPtr)) { - return val.object; - } - return val; - }; - getJsTag = function getJsTag$1(tag$1) { - var _tuple, i, name$2, qvalue, tag$1, value; - while (true) { - if (!(!(tag$1 === ""))) { break; } - i = 0; - while (true) { - if (!(i < tag$1.length && (tag$1.charCodeAt(i) === 32))) { break; } - i = i + (1) >> 0; - } - tag$1 = $substring(tag$1, i); - if (tag$1 === "") { - break; - } - i = 0; - while (true) { - if (!(i < tag$1.length && !((tag$1.charCodeAt(i) === 32)) && !((tag$1.charCodeAt(i) === 58)) && !((tag$1.charCodeAt(i) === 34)))) { break; } - i = i + (1) >> 0; - } - if ((i + 1 >> 0) >= tag$1.length || !((tag$1.charCodeAt(i) === 58)) || !((tag$1.charCodeAt((i + 1 >> 0)) === 34))) { - break; - } - name$2 = ($substring(tag$1, 0, i)); - tag$1 = $substring(tag$1, (i + 1 >> 0)); - i = 1; - while (true) { - if (!(i < tag$1.length && !((tag$1.charCodeAt(i) === 34)))) { break; } - if (tag$1.charCodeAt(i) === 92) { - i = i + (1) >> 0; - } - i = i + (1) >> 0; - } - if (i >= tag$1.length) { - break; - } - qvalue = ($substring(tag$1, 0, (i + 1 >> 0))); - tag$1 = $substring(tag$1, (i + 1 >> 0)); - if (name$2 === "js") { - _tuple = unquote(qvalue); - value = _tuple[0]; - return value; - } - } - return ""; - }; - PtrTo = function PtrTo$1(t) { - var t; - return $assertType(t, ptrType$1).ptrTo(); - }; - $pkg.PtrTo = PtrTo; - copyVal = function copyVal$1(typ, fl, ptr) { - var c, fl, ptr, typ; - if (ifaceIndir(typ)) { - c = unsafe_New(typ); - typedmemmove(typ, c, ptr); - return new Value.ptr(typ, c, (fl | 128) >>> 0); - } - return new Value.ptr(typ, (ptr).$get(), fl); - }; - Value.methods = [{prop: "pointer", name: "pointer", pkg: "internal/reflectlite", typ: $funcType([], [$UnsafePointer], false)}, {prop: "CanSet", name: "CanSet", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsValid", name: "IsValid", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "numMethod", name: "numMethod", pkg: "internal/reflectlite", typ: $funcType([], [$Int], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [Type], false)}, {prop: "object", name: "object", pkg: "internal/reflectlite", typ: $funcType([], [ptrType$2], false)}, {prop: "assignTo", name: "assignTo", pkg: "internal/reflectlite", typ: $funcType([$String, ptrType$1, $UnsafePointer], [Value], false)}, {prop: "call", name: "call", pkg: "internal/reflectlite", typ: $funcType([$String, sliceType$6], [sliceType$6], false)}, {prop: "Cap", name: "Cap", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Index", name: "Index", pkg: "", typ: $funcType([$Int], [Value], false)}, {prop: "InterfaceData", name: "InterfaceData", pkg: "", typ: $funcType([], [arrayType$2], false)}, {prop: "IsNil", name: "IsNil", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Pointer", name: "Pointer", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([Value], [], false)}, {prop: "SetBytes", name: "SetBytes", pkg: "", typ: $funcType([sliceType$13], [], false)}, {prop: "SetCap", name: "SetCap", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "SetLen", name: "SetLen", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Slice", name: "Slice", pkg: "", typ: $funcType([$Int, $Int], [Value], false)}, {prop: "Slice3", name: "Slice3", pkg: "", typ: $funcType([$Int, $Int, $Int], [Value], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Value], false)}, {prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "MapKeys", name: "MapKeys", pkg: "", typ: $funcType([], [sliceType$6], false)}, {prop: "MapIndex", name: "MapIndex", pkg: "", typ: $funcType([Value], [Value], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [Value], false)}]; - flag.methods = [{prop: "kind", name: "kind", pkg: "internal/reflectlite", typ: $funcType([], [Kind], false)}, {prop: "ro", name: "ro", pkg: "internal/reflectlite", typ: $funcType([], [flag], false)}, {prop: "mustBeExported", name: "mustBeExported", pkg: "internal/reflectlite", typ: $funcType([], [], false)}, {prop: "mustBeAssignable", name: "mustBeAssignable", pkg: "internal/reflectlite", typ: $funcType([], [], false)}, {prop: "mustBe", name: "mustBe", pkg: "internal/reflectlite", typ: $funcType([Kind], [], false)}]; - ptrType$10.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; - Kind.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$1.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "pointers", name: "pointers", pkg: "internal/reflectlite", typ: $funcType([], [$Bool], false)}, {prop: "common", name: "common", pkg: "internal/reflectlite", typ: $funcType([], [ptrType$1], false)}, {prop: "exportedMethods", name: "exportedMethods", pkg: "internal/reflectlite", typ: $funcType([], [sliceType$5], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "PkgPath", name: "PkgPath", pkg: "", typ: $funcType([], [$String], false)}, {prop: "hasName", name: "hasName", pkg: "internal/reflectlite", typ: $funcType([], [$Bool], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "chanDir", name: "chanDir", pkg: "internal/reflectlite", typ: $funcType([], [chanDir], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "In", name: "In", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumIn", name: "NumIn", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumOut", name: "NumOut", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Out", name: "Out", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "Implements", name: "Implements", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "AssignableTo", name: "AssignableTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsVariadic", name: "IsVariadic", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "kindType", name: "kindType", pkg: "internal/reflectlite", typ: $funcType([], [ptrType$1], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [structField], false)}, {prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Type], false)}, {prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Method], false)}, {prop: "uncommon", name: "uncommon", pkg: "internal/reflectlite", typ: $funcType([], [ptrType$4], false)}, {prop: "nameOff", name: "nameOff", pkg: "internal/reflectlite", typ: $funcType([nameOff], [name], false)}, {prop: "typeOff", name: "typeOff", pkg: "internal/reflectlite", typ: $funcType([typeOff], [ptrType$1], false)}, {prop: "ptrTo", name: "ptrTo", pkg: "internal/reflectlite", typ: $funcType([], [ptrType$1], false)}]; - ptrType$11.methods = [{prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}]; - ptrType$12.methods = [{prop: "embedded", name: "embedded", pkg: "internal/reflectlite", typ: $funcType([], [$Bool], false)}]; - ptrType$13.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$4.methods = [{prop: "methods", name: "methods", pkg: "internal/reflectlite", typ: $funcType([], [sliceType$5], false)}, {prop: "exportedMethods", name: "exportedMethods", pkg: "internal/reflectlite", typ: $funcType([], [sliceType$5], false)}]; - ptrType$5.methods = [{prop: "in$", name: "in", pkg: "internal/reflectlite", typ: $funcType([], [sliceType$2], false)}, {prop: "out", name: "out", pkg: "internal/reflectlite", typ: $funcType([], [sliceType$2], false)}]; - name.methods = [{prop: "data", name: "data", pkg: "internal/reflectlite", typ: $funcType([$Int, $String], [ptrType$6], false)}, {prop: "hasTag", name: "hasTag", pkg: "internal/reflectlite", typ: $funcType([], [$Bool], false)}, {prop: "readVarint", name: "readVarint", pkg: "internal/reflectlite", typ: $funcType([$Int], [$Int, $Int], false)}, {prop: "name", name: "name", pkg: "internal/reflectlite", typ: $funcType([], [$String], false)}, {prop: "tag", name: "tag", pkg: "internal/reflectlite", typ: $funcType([], [$String], false)}, {prop: "pkgPath", name: "pkgPath", pkg: "internal/reflectlite", typ: $funcType([], [$String], false)}, {prop: "isExported", name: "isExported", pkg: "internal/reflectlite", typ: $funcType([], [$Bool], false)}, {prop: "embedded", name: "embedded", pkg: "internal/reflectlite", typ: $funcType([], [$Bool], false)}]; - ptrType$9.methods = [{prop: "skipUntilValidKey", name: "skipUntilValidKey", pkg: "internal/reflectlite", typ: $funcType([], [], false)}]; - Value.init("internal/reflectlite", [{prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "ptr", name: "ptr", embedded: false, exported: false, typ: $UnsafePointer, tag: ""}, {prop: "flag", name: "flag", embedded: true, exported: false, typ: flag, tag: ""}]); - ValueError.init("", [{prop: "Method", name: "Method", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Kind", name: "Kind", embedded: false, exported: true, typ: Kind, tag: ""}]); - Type.init([{prop: "AssignableTo", name: "AssignableTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Implements", name: "Implements", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "PkgPath", name: "PkgPath", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "common", name: "common", pkg: "internal/reflectlite", typ: $funcType([], [ptrType$1], false)}, {prop: "uncommon", name: "uncommon", pkg: "internal/reflectlite", typ: $funcType([], [ptrType$4], false)}]); - rtype.init("internal/reflectlite", [{prop: "size", name: "size", embedded: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "ptrdata", name: "ptrdata", embedded: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "hash", name: "hash", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "tflag", name: "tflag", embedded: false, exported: false, typ: tflag, tag: ""}, {prop: "align", name: "align", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "fieldAlign", name: "fieldAlign", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "kind", name: "kind", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "equal", name: "equal", embedded: false, exported: false, typ: funcType$2, tag: ""}, {prop: "gcdata", name: "gcdata", embedded: false, exported: false, typ: ptrType$6, tag: ""}, {prop: "str", name: "str", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "ptrToThis", name: "ptrToThis", embedded: false, exported: false, typ: typeOff, tag: ""}]); - method.init("internal/reflectlite", [{prop: "name", name: "name", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "mtyp", name: "mtyp", embedded: false, exported: false, typ: typeOff, tag: ""}, {prop: "ifn", name: "ifn", embedded: false, exported: false, typ: textOff, tag: ""}, {prop: "tfn", name: "tfn", embedded: false, exported: false, typ: textOff, tag: ""}]); - arrayType.init("internal/reflectlite", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "slice", name: "slice", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "len", name: "len", embedded: false, exported: false, typ: $Uintptr, tag: ""}]); - chanType.init("internal/reflectlite", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "dir", name: "dir", embedded: false, exported: false, typ: $Uintptr, tag: ""}]); - imethod.init("internal/reflectlite", [{prop: "name", name: "name", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: typeOff, tag: ""}]); - interfaceType.init("internal/reflectlite", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "pkgPath", name: "pkgPath", embedded: false, exported: false, typ: name, tag: ""}, {prop: "methods", name: "methods", embedded: false, exported: false, typ: sliceType$9, tag: ""}]); - mapType.init("internal/reflectlite", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "key", name: "key", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "bucket", name: "bucket", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "hasher", name: "hasher", embedded: false, exported: false, typ: funcType$3, tag: ""}, {prop: "keysize", name: "keysize", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "valuesize", name: "valuesize", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "bucketsize", name: "bucketsize", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "flags", name: "flags", embedded: false, exported: false, typ: $Uint32, tag: ""}]); - ptrType.init("internal/reflectlite", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}]); - sliceType.init("internal/reflectlite", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}]); - structField.init("internal/reflectlite", [{prop: "name", name: "name", embedded: false, exported: false, typ: name, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "offset", name: "offset", embedded: false, exported: false, typ: $Uintptr, tag: ""}]); - structType.init("internal/reflectlite", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "pkgPath", name: "pkgPath", embedded: false, exported: false, typ: name, tag: ""}, {prop: "fields", name: "fields", embedded: false, exported: false, typ: sliceType$10, tag: ""}]); - errorString.init("internal/reflectlite", [{prop: "s", name: "s", embedded: false, exported: false, typ: $String, tag: ""}]); - Method.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "PkgPath", name: "PkgPath", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: Type, tag: ""}, {prop: "Func", name: "Func", embedded: false, exported: true, typ: Value, tag: ""}, {prop: "Index", name: "Index", embedded: false, exported: true, typ: $Int, tag: ""}]); - uncommonType.init("internal/reflectlite", [{prop: "pkgPath", name: "pkgPath", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "mcount", name: "mcount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "xcount", name: "xcount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "moff", name: "moff", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "_methods", name: "_methods", embedded: false, exported: false, typ: sliceType$5, tag: ""}]); - funcType.init("internal/reflectlite", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: "reflect:\"func\""}, {prop: "inCount", name: "inCount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "outCount", name: "outCount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "_in", name: "_in", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "_out", name: "_out", embedded: false, exported: false, typ: sliceType$2, tag: ""}]); - name.init("internal/reflectlite", [{prop: "bytes", name: "bytes", embedded: false, exported: false, typ: ptrType$6, tag: ""}]); - nameData.init("internal/reflectlite", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "tag", name: "tag", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "exported", name: "exported", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "embedded", name: "embedded", embedded: false, exported: false, typ: $Bool, tag: ""}]); - mapIter.init("internal/reflectlite", [{prop: "t", name: "t", embedded: false, exported: false, typ: Type, tag: ""}, {prop: "m", name: "m", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "keys", name: "keys", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "i", name: "i", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "last", name: "last", embedded: false, exported: false, typ: ptrType$2, tag: ""}]); - TypeEx.init([{prop: "AssignableTo", name: "AssignableTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Implements", name: "Implements", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "PkgPath", name: "PkgPath", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "common", name: "common", pkg: "internal/reflectlite", typ: $funcType([], [ptrType$1], false)}, {prop: "uncommon", name: "uncommon", pkg: "internal/reflectlite", typ: $funcType([], [ptrType$4], false)}]); + Value.methods = [{prop: "pointer", name: "pointer", pkg: "internal/reflectlite", typ: $funcType([], [$UnsafePointer], false)}, {prop: "CanSet", name: "CanSet", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsValid", name: "IsValid", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [abi.Kind], false)}, {prop: "numMethod", name: "numMethod", pkg: "internal/reflectlite", typ: $funcType([], [$Int], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [Type], false)}, {prop: "object", name: "object", pkg: "internal/reflectlite", typ: $funcType([], [ptrType$10], false)}, {prop: "assignTo", name: "assignTo", pkg: "internal/reflectlite", typ: $funcType([$String, ptrType, $UnsafePointer], [Value], false)}, {prop: "IsNil", name: "IsNil", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([Value], [], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Value], false)}]; + flag.methods = [{prop: "kind", name: "kind", pkg: "internal/reflectlite", typ: $funcType([], [abi.Kind], false)}, {prop: "ro", name: "ro", pkg: "internal/reflectlite", typ: $funcType([], [flag], false)}, {prop: "mustBeExported", name: "mustBeExported", pkg: "internal/reflectlite", typ: $funcType([], [], false)}, {prop: "mustBeAssignable", name: "mustBeAssignable", pkg: "internal/reflectlite", typ: $funcType([], [], false)}]; + ptrType$11.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + rtype.methods = [{prop: "uncommon", name: "uncommon", pkg: "internal/reflectlite", typ: $funcType([], [ptrType$1], false)}, {prop: "common", name: "common", pkg: "internal/reflectlite", typ: $funcType([], [ptrType], false)}, {prop: "exportedMethods", name: "exportedMethods", pkg: "internal/reflectlite", typ: $funcType([], [sliceType], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "PkgPath", name: "PkgPath", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "In", name: "In", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumIn", name: "NumIn", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumOut", name: "NumOut", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Out", name: "Out", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "Implements", name: "Implements", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "AssignableTo", name: "AssignableTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "nameOff", name: "nameOff", pkg: "internal/reflectlite", typ: $funcType([abi.NameOff], [abi.Name], false)}, {prop: "typeOff", name: "typeOff", pkg: "internal/reflectlite", typ: $funcType([abi.TypeOff], [ptrType], false)}]; + Value.init("internal/reflectlite", [{prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "ptr", name: "ptr", embedded: false, exported: false, typ: $UnsafePointer, tag: ""}, {prop: "flag", name: "flag", embedded: true, exported: false, typ: flag, tag: ""}]); + ValueError.init("", [{prop: "Method", name: "Method", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Kind", name: "Kind", embedded: false, exported: true, typ: abi.Kind, tag: ""}]); + Type.init([{prop: "AssignableTo", name: "AssignableTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Implements", name: "Implements", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [abi.Kind], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "PkgPath", name: "PkgPath", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "common", name: "common", pkg: "internal/reflectlite", typ: $funcType([], [ptrType], false)}, {prop: "uncommon", name: "uncommon", pkg: "internal/reflectlite", typ: $funcType([], [ptrType$1], false)}]); + rtype.init("", [{prop: "Type", name: "Type", embedded: true, exported: true, typ: ptrType, tag: ""}]); }; $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = goarch.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - uint8Type = ptrType$1.nil; - nameOffList = sliceType$1.nil; - typeOffList = sliceType$2.nil; - kindNames = new sliceType$3(["invalid", "bool", "int", "int8", "int16", "int32", "int64", "uint", "uint8", "uint16", "uint32", "uint64", "uintptr", "float32", "float64", "complex64", "complex128", "array", "chan", "func", "interface", "map", "ptr", "slice", "string", "struct", "unsafe.Pointer"]); - callHelper = $assertType($internalize($call, $emptyInterface), funcType$1); - $pkg.ErrSyntax = new errorString.ptr("invalid syntax"); - initialized = false; - idJsType = "_jsType"; - idReflectType = "_reflectType"; - idKindType = "kindType"; - idRtype = "_rtype"; - uncommonTypeMap = new $global.Map(); - nameMap = new $global.Map(); - jsObjectPtr = reflectType($jsObjectPtr); - selectHelper = $assertType($internalize($select, $emptyInterface), funcType$1); - $r = init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = abi.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = goarch.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $packages["errors"] = (function() { - var $pkg = {}, $init, reflectlite, errorString, ptrType, ptrType$2, errorType, _r, New; + var $pkg = {}, $init, reflectlite, errorString, ptrType, interfaceType, interfaceType$1, sliceType, interfaceType$2, ptrType$2, errorType, _r, Is, New; reflectlite = $packages["internal/reflectlite"]; errorString = $newType(0, $kindStruct, "errors.errorString", true, "errors", false, function(s_) { this.$val = this; @@ -5337,7 +4890,74 @@ $packages["errors"] = (function() { $pkg.errorString = errorString; $pkg.$finishSetup = function() { ptrType = $ptrType($error); + interfaceType = $interfaceType([{prop: "Unwrap", name: "Unwrap", pkg: "", typ: $funcType([], [$error], false)}]); + interfaceType$1 = $interfaceType([{prop: "Is", name: "Is", pkg: "", typ: $funcType([$error], [$Bool], false)}]); + sliceType = $sliceType($error); + interfaceType$2 = $interfaceType([{prop: "Unwrap", name: "Unwrap", pkg: "", typ: $funcType([], [sliceType], false)}]); ptrType$2 = $ptrType(errorString); + Is = function Is$1(err, target) { + var {_i, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _tuple, _v, err, err$1, isComparable, ok, target, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {err, target}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if ($interfaceIsEqual(target, $ifaceNil)) { + $s = -1; return $interfaceIsEqual(err, target); + } + _r$1 = reflectlite.TypeOf(target).Comparable(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + isComparable = _r$1; + /* while (true) { */ case 2: + if (isComparable && $interfaceIsEqual(err, target)) { + $s = -1; return true; + } + _tuple = $assertType(err, interfaceType$1, true); + x = _tuple[0]; + ok = _tuple[1]; + if (!(ok)) { _v = false; $s = 6; continue s; } + _r$2 = x.Is(target); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v = _r$2; case 6: + /* */ if (_v) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_v) { */ case 4: + $s = -1; return true; + /* } */ case 5: + _ref = err; + /* */ if ($assertType(_ref, interfaceType, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref, interfaceType$2, true)[1]) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if ($assertType(_ref, interfaceType, true)[1]) { */ case 8: + x$1 = _ref; + _r$3 = x$1.Unwrap(); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + err = _r$3; + if ($interfaceIsEqual(err, $ifaceNil)) { + $s = -1; return false; + } + $s = 11; continue; + /* } else if ($assertType(_ref, interfaceType$2, true)[1]) { */ case 9: + x$2 = _ref; + _r$4 = x$2.Unwrap(); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _ref$1 = _r$4; + _i = 0; + /* while (true) { */ case 14: + /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 15; continue; } + err$1 = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + _r$5 = Is(err$1, target); /* */ $s = 18; case 18: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (_r$5) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (_r$5) { */ case 16: + $s = -1; return true; + /* } */ case 17: + _i++; + $s = 14; continue; + case 15: + $s = -1; return false; + /* } else { */ case 10: + x$3 = _ref; + $s = -1; return false; + /* } */ case 11: + $s = 2; continue; + case 3: + $s = -1; return false; + /* */ } return; } var $f = {$blk: Is$1, $c: true, $r, _i, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _tuple, _v, err, err$1, isComparable, ok, target, x, x$1, x$2, x$3, $s};return $f; + }; + $pkg.Is = Is; New = function New$1(text) { var text; return new errorString.ptr(text); @@ -5357,6 +4977,7 @@ $packages["errors"] = (function() { $r = reflectlite.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _r = reflectlite.TypeOf((ptrType.nil)).Elem(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } errorType = _r; + $pkg.ErrUnsupported = New("unsupported operation"); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; @@ -6589,20 +6210,6 @@ $packages["github.com/gopherjs/gopherjs.github.io/playground/internal/bindings/r $pkg.$init = $init; return $pkg; })(); -$packages["internal/abi"] = (function() { - var $pkg = {}, $init, goarch; - goarch = $packages["internal/goarch"]; - $pkg.$finishSetup = function() { - }; - $init = function() { - $pkg.$init = function() {}; - /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: - $r = goarch.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; - }; - $pkg.$init = $init; - return $pkg; -})(); $packages["internal/cpu"] = (function() { var $pkg = {}, $init; $pkg.$finishSetup = function() { @@ -6616,9 +6223,10 @@ $packages["internal/cpu"] = (function() { return $pkg; })(); $packages["internal/bytealg"] = (function() { - var $pkg = {}, $init, cpu, Index, Cutover, Equal, IndexByteString, Count, HashStrBytes, HashStrRevBytes, IndexRabinKarpBytes; + var $pkg = {}, $init, cpu, sliceType, Index, Cutover, Equal, IndexByteString, MakeNoZero, Count, HashStrBytes, HashStrRevBytes, IndexRabinKarpBytes; cpu = $packages["internal/cpu"]; $pkg.$finishSetup = function() { + sliceType = $sliceType($Uint8); Index = function Index$1(a, b) { var a, b; $panic(new $String("unimplemented")); @@ -6661,6 +6269,11 @@ $packages["internal/bytealg"] = (function() { return -1; }; $pkg.IndexByteString = IndexByteString; + MakeNoZero = function MakeNoZero$1(n) { + var n; + return $makeSlice(sliceType, n); + }; + $pkg.MakeNoZero = MakeNoZero; Count = function Count$1(b, c) { var _i, _ref, b, c, n, x; n = 0; @@ -6809,385 +6422,172 @@ $packages["internal/itoa"] = (function() { return $pkg; })(); $packages["math/bits"] = (function() { - var $pkg = {}, $init, _err, overflowError, divideError, deBruijn32tab, deBruijn64tab, Mul32, Add32, Div32, LeadingZeros, LeadingZeros32, LeadingZeros64, TrailingZeros, TrailingZeros32, TrailingZeros64, Len, Len32, Len64, Add, Add64, Sub, Sub32, Sub64, Mul, Mul64, Div, Div64; - _err = $newType(8, $kindString, "bits._err", true, "math/bits", false, null); - $pkg._err = _err; + var $pkg = {}, $init, js, LeadingZeros32, LeadingZeros64, TrailingZeros32, TrailingZeros64, Len32, Len64, Mul64, Add64, TrailingZeros, Len; + js = $packages["github.com/gopherjs/gopherjs/js"]; $pkg.$finishSetup = function() { - _err.prototype.Error = function Error() { - var e; - e = this.$val; - return (e); - }; - $ptrType(_err).prototype.Error = function(...$args) { return new _err(this.$get()).Error(...$args); }; - _err.prototype.RuntimeError = function RuntimeError() { - var e; - e = this.$val; - }; - $ptrType(_err).prototype.RuntimeError = function(...$args) { return new _err(this.$get()).RuntimeError(...$args); }; - Mul32 = function Mul32$1(x, y) { - var hi, lo, t, w0, w1, w2, x, x0, x1, y, y0, y1; - hi = 0; - lo = 0; - x0 = (x & 65535) >>> 0; - x1 = x >>> 16 >>> 0; - y0 = (y & 65535) >>> 0; - y1 = y >>> 16 >>> 0; - w0 = $imul(x0, y0) >>> 0; - t = ($imul(x1, y0) >>> 0) + (w0 >>> 16 >>> 0) >>> 0; - w1 = (t & 65535) >>> 0; - w2 = t >>> 16 >>> 0; - w1 = w1 + (($imul(x0, y1) >>> 0)) >>> 0; - hi = (($imul(x1, y1) >>> 0) + w2 >>> 0) + (w1 >>> 16 >>> 0) >>> 0; - lo = $imul(x, y) >>> 0; - return [hi, lo]; - }; - $pkg.Mul32 = Mul32; - Add32 = function Add32$1(x, y, carry) { - var carry, carryOut, sum, x, y; - sum = 0; - carryOut = 0; - sum = (x + y >>> 0) + carry >>> 0; - carryOut = ((((((x & y) >>> 0)) | ((((((x | y) >>> 0)) & ~sum) >>> 0))) >>> 0)) >>> 31 >>> 0; - return [sum, carryOut]; - }; - $pkg.Add32 = Add32; - Div32 = function Div32$1(hi, lo, y) { - var _q, _q$1, _tmp, _tmp$1, hi, lo, q0, q1, quo, rem, rhat, s, un0, un1, un10, un16, un21, y, y$1, y$2, y$3, y$4, y$5, yn0, yn1; - quo = 0; - rem = 0; - if (y === 0) { - $panic(divideError); - } - if (y <= hi) { - $panic(overflowError); - } - s = ((LeadingZeros32(y) >>> 0)); - y = (y$1 = (s), y$1 < 32 ? (y << y$1) : 0) >>> 0; - yn1 = y >>> 16 >>> 0; - yn0 = (y & 65535) >>> 0; - un16 = (((y$2 = s, y$2 < 32 ? (hi << y$2) : 0) >>> 0) | ((y$3 = ((32 - s >>> 0)), y$3 < 32 ? (lo >>> y$3) : 0) >>> 0)) >>> 0; - un10 = (y$4 = s, y$4 < 32 ? (lo << y$4) : 0) >>> 0; - un1 = un10 >>> 16 >>> 0; - un0 = (un10 & 65535) >>> 0; - q1 = (_q = un16 / yn1, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); - rhat = un16 - ($imul(q1, yn1) >>> 0) >>> 0; - while (true) { - if (!(q1 >= 65536 || ($imul(q1, yn0) >>> 0) > (($imul(65536, rhat) >>> 0) + un1 >>> 0))) { break; } - q1 = q1 - (1) >>> 0; - rhat = rhat + (yn1) >>> 0; - if (rhat >= 65536) { - break; - } - } - un21 = (($imul(un16, 65536) >>> 0) + un1 >>> 0) - ($imul(q1, y) >>> 0) >>> 0; - q0 = (_q$1 = un21 / yn1, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero")); - rhat = un21 - ($imul(q0, yn1) >>> 0) >>> 0; - while (true) { - if (!(q0 >= 65536 || ($imul(q0, yn0) >>> 0) > (($imul(65536, rhat) >>> 0) + un0 >>> 0))) { break; } - q0 = q0 - (1) >>> 0; - rhat = rhat + (yn1) >>> 0; - if (rhat >= 65536) { - break; - } - } - _tmp = ($imul(q1, 65536) >>> 0) + q0 >>> 0; - _tmp$1 = (y$5 = s, y$5 < 32 ? ((((($imul(un21, 65536) >>> 0) + un0 >>> 0) - ($imul(q0, y) >>> 0) >>> 0)) >>> y$5) : 0) >>> 0; - quo = _tmp; - rem = _tmp$1; - return [quo, rem]; - }; - $pkg.Div32 = Div32; - LeadingZeros = function LeadingZeros$1(x) { - var x; - return 32 - Len(x) >> 0; - }; - $pkg.LeadingZeros = LeadingZeros; LeadingZeros32 = function LeadingZeros32$1(x) { var x; - return 32 - Len32(x) >> 0; + return $parseInt($global.Math.clz32(x)) >> 0; }; $pkg.LeadingZeros32 = LeadingZeros32; LeadingZeros64 = function LeadingZeros64$1(x) { - var x; - return 64 - Len64(x) >> 0; - }; - $pkg.LeadingZeros64 = LeadingZeros64; - TrailingZeros = function TrailingZeros$1(x) { - var x; - if (true) { - return TrailingZeros32(((x >>> 0))); + var hi, x; + hi = x.$high; + if (!((hi === 0))) { + return LeadingZeros32(hi); } - return TrailingZeros64((new $Uint64(0, x))); + return 32 + LeadingZeros32(x.$low) >> 0; }; - $pkg.TrailingZeros = TrailingZeros; + $pkg.LeadingZeros64 = LeadingZeros64; TrailingZeros32 = function TrailingZeros32$1(x) { - var x, x$1; + var x; if (x === 0) { return 32; } - return (((x$1 = ($imul((((x & (-x >>> 0)) >>> 0)), 125613361) >>> 0) >>> 27 >>> 0, ((x$1 < 0 || x$1 >= deBruijn32tab.length) ? ($throwRuntimeError("index out of range"), undefined) : deBruijn32tab[x$1])) >> 0)); + return 31 - LeadingZeros32((x & (-x >>> 0)) >>> 0) >> 0; }; $pkg.TrailingZeros32 = TrailingZeros32; TrailingZeros64 = function TrailingZeros64$1(x) { - var x, x$1, x$2; - if ((x.$high === 0 && x.$low === 0)) { + var hi, lo, x; + lo = x.$low; + if (!((lo === 0))) { + return 31 - LeadingZeros32((lo & (-lo >>> 0)) >>> 0) >> 0; + } + hi = x.$high; + if (hi === 0) { return 64; } - return (((x$1 = $shiftRightUint64($mul64(((x$2 = new $Uint64(-x.$high, -x.$low), new $Uint64(x.$high & x$2.$high, (x.$low & x$2.$low) >>> 0))), new $Uint64(66559345, 3033172745)), 58), (($flatten64(x$1) < 0 || $flatten64(x$1) >= deBruijn64tab.length) ? ($throwRuntimeError("index out of range"), undefined) : deBruijn64tab[$flatten64(x$1)])) >> 0)); + return 63 - LeadingZeros32((hi & (-hi >>> 0)) >>> 0) >> 0; }; $pkg.TrailingZeros64 = TrailingZeros64; - Len = function Len$1(x) { - var x; - if (true) { - return Len32(((x >>> 0))); - } - return Len64((new $Uint64(0, x))); - }; - $pkg.Len = Len; Len32 = function Len32$1(x) { - var n, x, y, y$1; - n = 0; - if (x >= 65536) { - x = (y = (16), y < 32 ? (x >>> y) : 0) >>> 0; - n = 16; - } - if (x >= 256) { - x = (y$1 = (8), y$1 < 32 ? (x >>> y$1) : 0) >>> 0; - n = n + (8) >> 0; - } - n = n + (("\x00\x01\x02\x02\x03\x03\x03\x03\x04\x04\x04\x04\x04\x04\x04\x04\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b".charCodeAt(x) >> 0)) >> 0; - return n; + var x; + return 32 - LeadingZeros32(x) >> 0; }; $pkg.Len32 = Len32; Len64 = function Len64$1(x) { - var n, x; - n = 0; - if ((x.$high > 1 || (x.$high === 1 && x.$low >= 0))) { - x = $shiftRightUint64(x, (32)); - n = 32; - } - if ((x.$high > 0 || (x.$high === 0 && x.$low >= 65536))) { - x = $shiftRightUint64(x, (16)); - n = n + (16) >> 0; - } - if ((x.$high > 0 || (x.$high === 0 && x.$low >= 256))) { - x = $shiftRightUint64(x, (8)); - n = n + (8) >> 0; - } - n = n + (("\x00\x01\x02\x02\x03\x03\x03\x03\x04\x04\x04\x04\x04\x04\x04\x04\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b".charCodeAt($flatten64(x)) >> 0)) >> 0; - return n; + var x; + return 64 - LeadingZeros64(x) >> 0; }; $pkg.Len64 = Len64; - Add = function Add$1(x, y, carry) { - var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, c32, c64, carry, carryOut, s32, s64, sum, x, y; - sum = 0; - carryOut = 0; - if (true) { - _tuple = Add32(((x >>> 0)), ((y >>> 0)), ((carry >>> 0))); - s32 = _tuple[0]; - c32 = _tuple[1]; - _tmp = ((s32 >>> 0)); - _tmp$1 = ((c32 >>> 0)); - sum = _tmp; - carryOut = _tmp$1; - return [sum, carryOut]; - } - _tuple$1 = Add64((new $Uint64(0, x)), (new $Uint64(0, y)), (new $Uint64(0, carry))); - s64 = _tuple$1[0]; - c64 = _tuple$1[1]; - _tmp$2 = ((s64.$low >>> 0)); - _tmp$3 = ((c64.$low >>> 0)); - sum = _tmp$2; - carryOut = _tmp$3; - return [sum, carryOut]; + Mul64 = function Mul64$1(x, y) { + var c0, c16, c32, c48, c64, c80, c96, hiLo, loHi, loLo, x, x0, x1, x2, x3, xHi, xLo, y, y0, y1, y2, y3, yHi, yLo; + xLo = x.$low; + x0 = (xLo & 65535) >>> 0; + x1 = xLo >>> 16 >>> 0; + xHi = x.$high; + x2 = (xHi & 65535) >>> 0; + x3 = xHi >>> 16 >>> 0; + yLo = y.$low; + y0 = (yLo & 65535) >>> 0; + y1 = yLo >>> 16 >>> 0; + yHi = y.$high; + y2 = (yHi & 65535) >>> 0; + y3 = yHi >>> 16 >>> 0; + c0 = $imul(x0, y0) >>> 0; + c16 = c0 >>> 16 >>> 0; + c0 = (c0 & (65535)) >>> 0; + c16 = c16 + (($imul(x1, y0) >>> 0)) >>> 0; + c32 = c16 >>> 16 >>> 0; + c16 = (c16 & (65535)) >>> 0; + c16 = c16 + (($imul(x0, y1) >>> 0)) >>> 0; + c32 = c32 + ((c16 >>> 16 >>> 0)) >>> 0; + c16 = (c16 & (65535)) >>> 0; + loLo = ((c16 << 16 >>> 0) | c0) >>> 0; + c48 = c32 >>> 16 >>> 0; + c32 = (c32 & (65535)) >>> 0; + c32 = c32 + (($imul(x2, y0) >>> 0)) >>> 0; + c48 = c48 + ((c32 >>> 16 >>> 0)) >>> 0; + c32 = (c32 & (65535)) >>> 0; + c32 = c32 + (($imul(x1, y1) >>> 0)) >>> 0; + c48 = c48 + ((c32 >>> 16 >>> 0)) >>> 0; + c32 = (c32 & (65535)) >>> 0; + c32 = c32 + (($imul(x0, y2) >>> 0)) >>> 0; + c48 = c48 + ((c32 >>> 16 >>> 0)) >>> 0; + c32 = (c32 & (65535)) >>> 0; + c64 = c48 >>> 16 >>> 0; + c48 = (c48 & (65535)) >>> 0; + c48 = c48 + (($imul(x3, y0) >>> 0)) >>> 0; + c64 = c64 + ((c48 >>> 16 >>> 0)) >>> 0; + c48 = (c48 & (65535)) >>> 0; + c48 = c48 + (($imul(x2, y1) >>> 0)) >>> 0; + c64 = c64 + ((c48 >>> 16 >>> 0)) >>> 0; + c48 = (c48 & (65535)) >>> 0; + c48 = c48 + (($imul(x1, y2) >>> 0)) >>> 0; + c64 = c64 + ((c48 >>> 16 >>> 0)) >>> 0; + c48 = (c48 & (65535)) >>> 0; + c48 = c48 + (($imul(x0, y3) >>> 0)) >>> 0; + c64 = c64 + ((c48 >>> 16 >>> 0)) >>> 0; + c48 = (c48 & (65535)) >>> 0; + loHi = ((c48 << 16 >>> 0) | c32) >>> 0; + c80 = c64 >>> 16 >>> 0; + c64 = (c64 & (65535)) >>> 0; + c64 = c64 + (($imul(x3, y1) >>> 0)) >>> 0; + c80 = c80 + ((c64 >>> 16 >>> 0)) >>> 0; + c64 = (c64 & (65535)) >>> 0; + c64 = c64 + (($imul(x2, y2) >>> 0)) >>> 0; + c80 = c80 + ((c64 >>> 16 >>> 0)) >>> 0; + c64 = (c64 & (65535)) >>> 0; + c64 = c64 + (($imul(x1, y3) >>> 0)) >>> 0; + c80 = c80 + ((c64 >>> 16 >>> 0)) >>> 0; + c64 = (c64 & (65535)) >>> 0; + c96 = c80 >>> 16 >>> 0; + c80 = (c80 & (65535)) >>> 0; + c80 = c80 + (($imul(x3, y2) >>> 0)) >>> 0; + c96 = c96 + ((c80 >>> 16 >>> 0)) >>> 0; + c80 = (c80 & (65535)) >>> 0; + c80 = c80 + (($imul(x2, y3) >>> 0)) >>> 0; + c96 = c96 + ((c80 >>> 16 >>> 0)) >>> 0; + c80 = (c80 & (65535)) >>> 0; + hiLo = ((c80 << 16 >>> 0) | c64) >>> 0; + c96 = c96 + (($imul(x3, y3) >>> 0)) >>> 0; + return [new $Uint64((c96), (hiLo)), new $Uint64((loHi), (loLo))]; }; - $pkg.Add = Add; + $pkg.Mul64 = Mul64; Add64 = function Add64$1(x, y, carry) { - var carry, carryOut, sum, x, x$1, x$2, x$3, x$4, y; + var carry, carryOut, hiSum, loSum, sum, x, y; sum = new $Uint64(0, 0); carryOut = new $Uint64(0, 0); - sum = (x$1 = new $Uint64(x.$high + y.$high, x.$low + y.$low), new $Uint64(x$1.$high + carry.$high, x$1.$low + carry.$low)); - carryOut = $shiftRightUint64(((x$2 = new $Uint64(x.$high & y.$high, (x.$low & y.$low) >>> 0), x$3 = (x$4 = new $Uint64(x.$high | y.$high, (x.$low | y.$low) >>> 0), new $Uint64(x$4.$high & ~sum.$high, (x$4.$low & ~sum.$low) >>> 0)), new $Uint64(x$2.$high | x$3.$high, (x$2.$low | x$3.$low) >>> 0))), 63); + hiSum = (x.$high) + (y.$high); + loSum = (x.$low) + (y.$low) + (carry.$low); + sum = new $Uint64(hiSum, loSum); + if (loSum >= 4.294967296e+09) { + hiSum = hiSum + (1); + } + if (hiSum >= 4.294967296e+09) { + carryOut = new $Uint64(0, 1); + } return [sum, carryOut]; }; $pkg.Add64 = Add64; - Sub = function Sub$1(x, y, borrow) { - var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, b32, b64, borrow, borrowOut, d32, d64, diff, x, y; - diff = 0; - borrowOut = 0; - if (true) { - _tuple = Sub32(((x >>> 0)), ((y >>> 0)), ((borrow >>> 0))); - d32 = _tuple[0]; - b32 = _tuple[1]; - _tmp = ((d32 >>> 0)); - _tmp$1 = ((b32 >>> 0)); - diff = _tmp; - borrowOut = _tmp$1; - return [diff, borrowOut]; - } - _tuple$1 = Sub64((new $Uint64(0, x)), (new $Uint64(0, y)), (new $Uint64(0, borrow))); - d64 = _tuple$1[0]; - b64 = _tuple$1[1]; - _tmp$2 = ((d64.$low >>> 0)); - _tmp$3 = ((b64.$low >>> 0)); - diff = _tmp$2; - borrowOut = _tmp$3; - return [diff, borrowOut]; - }; - $pkg.Sub = Sub; - Sub32 = function Sub32$1(x, y, borrow) { - var borrow, borrowOut, diff, x, y; - diff = 0; - borrowOut = 0; - diff = (x - y >>> 0) - borrow >>> 0; - borrowOut = (((((((~x >>> 0) & y) >>> 0)) | ((((~(((x ^ y) >>> 0)) >>> 0) & diff) >>> 0))) >>> 0)) >>> 31 >>> 0; - return [diff, borrowOut]; - }; - $pkg.Sub32 = Sub32; - Sub64 = function Sub64$1(x, y, borrow) { - var borrow, borrowOut, diff, x, x$1, x$2, x$3, x$4, x$5, x$6, y; - diff = new $Uint64(0, 0); - borrowOut = new $Uint64(0, 0); - diff = (x$1 = new $Uint64(x.$high - y.$high, x.$low - y.$low), new $Uint64(x$1.$high - borrow.$high, x$1.$low - borrow.$low)); - borrowOut = $shiftRightUint64(((x$2 = (x$3 = new $Uint64(~x.$high, ~x.$low >>> 0), new $Uint64(x$3.$high & y.$high, (x$3.$low & y.$low) >>> 0)), x$4 = (x$5 = (x$6 = new $Uint64(x.$high ^ y.$high, (x.$low ^ y.$low) >>> 0), new $Uint64(~x$6.$high, ~x$6.$low >>> 0)), new $Uint64(x$5.$high & diff.$high, (x$5.$low & diff.$low) >>> 0)), new $Uint64(x$2.$high | x$4.$high, (x$2.$low | x$4.$low) >>> 0))), 63); - return [diff, borrowOut]; - }; - $pkg.Sub64 = Sub64; - Mul = function Mul$1(x, y) { - var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, h, h$1, hi, l, l$1, lo, x, y; - hi = 0; - lo = 0; - if (true) { - _tuple = Mul32(((x >>> 0)), ((y >>> 0))); - h = _tuple[0]; - l = _tuple[1]; - _tmp = ((h >>> 0)); - _tmp$1 = ((l >>> 0)); - hi = _tmp; - lo = _tmp$1; - return [hi, lo]; - } - _tuple$1 = Mul64((new $Uint64(0, x)), (new $Uint64(0, y))); - h$1 = _tuple$1[0]; - l$1 = _tuple$1[1]; - _tmp$2 = ((h$1.$low >>> 0)); - _tmp$3 = ((l$1.$low >>> 0)); - hi = _tmp$2; - lo = _tmp$3; - return [hi, lo]; - }; - $pkg.Mul = Mul; - Mul64 = function Mul64$1(x, y) { - var hi, lo, t, w0, w1, w2, x, x$1, x$2, x$3, x$4, x$5, x$6, x0, x1, y, y0, y1; - hi = new $Uint64(0, 0); - lo = new $Uint64(0, 0); - x0 = new $Uint64(x.$high & 0, (x.$low & 4294967295) >>> 0); - x1 = $shiftRightUint64(x, 32); - y0 = new $Uint64(y.$high & 0, (y.$low & 4294967295) >>> 0); - y1 = $shiftRightUint64(y, 32); - w0 = $mul64(x0, y0); - t = (x$1 = $mul64(x1, y0), x$2 = $shiftRightUint64(w0, 32), new $Uint64(x$1.$high + x$2.$high, x$1.$low + x$2.$low)); - w1 = new $Uint64(t.$high & 0, (t.$low & 4294967295) >>> 0); - w2 = $shiftRightUint64(t, 32); - w1 = (x$3 = $mul64(x0, y1), new $Uint64(w1.$high + x$3.$high, w1.$low + x$3.$low)); - hi = (x$4 = (x$5 = $mul64(x1, y1), new $Uint64(x$5.$high + w2.$high, x$5.$low + w2.$low)), x$6 = $shiftRightUint64(w1, 32), new $Uint64(x$4.$high + x$6.$high, x$4.$low + x$6.$low)); - lo = $mul64(x, y); - return [hi, lo]; - }; - $pkg.Mul64 = Mul64; - Div = function Div$1(hi, lo, y) { - var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, hi, lo, q, q$1, quo, r, r$1, rem, y; - quo = 0; - rem = 0; + TrailingZeros = function TrailingZeros$1(x) { + var x; if (true) { - _tuple = Div32(((hi >>> 0)), ((lo >>> 0)), ((y >>> 0))); - q = _tuple[0]; - r = _tuple[1]; - _tmp = ((q >>> 0)); - _tmp$1 = ((r >>> 0)); - quo = _tmp; - rem = _tmp$1; - return [quo, rem]; + return TrailingZeros32(((x >>> 0))); } - _tuple$1 = Div64((new $Uint64(0, hi)), (new $Uint64(0, lo)), (new $Uint64(0, y))); - q$1 = _tuple$1[0]; - r$1 = _tuple$1[1]; - _tmp$2 = ((q$1.$low >>> 0)); - _tmp$3 = ((r$1.$low >>> 0)); - quo = _tmp$2; - rem = _tmp$3; - return [quo, rem]; + return TrailingZeros64((new $Uint64(0, x))); }; - $pkg.Div = Div; - Div64 = function Div64$1(hi, lo, y) { - var _tmp, _tmp$1, _tmp$2, _tmp$3, hi, lo, q0, q1, quo, rem, rhat, s, un0, un1, un10, un21, un32, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$3, x$4, x$5, x$6, x$7, x$8, x$9, y, yn0, yn1; - quo = new $Uint64(0, 0); - rem = new $Uint64(0, 0); - if ((y.$high === 0 && y.$low === 0)) { - $panic(divideError); - } - if ((y.$high < hi.$high || (y.$high === hi.$high && y.$low <= hi.$low))) { - $panic(overflowError); - } - if ((hi.$high === 0 && hi.$low === 0)) { - _tmp = $div64(lo, y, false); - _tmp$1 = $div64(lo, y, true); - quo = _tmp; - rem = _tmp$1; - return [quo, rem]; - } - s = ((LeadingZeros64(y) >>> 0)); - y = $shiftLeft64(y, (s)); - yn1 = $shiftRightUint64(y, 32); - yn0 = new $Uint64(y.$high & 0, (y.$low & 4294967295) >>> 0); - un32 = (x = $shiftLeft64(hi, s), x$1 = $shiftRightUint64(lo, ((64 - s >>> 0))), new $Uint64(x.$high | x$1.$high, (x.$low | x$1.$low) >>> 0)); - un10 = $shiftLeft64(lo, s); - un1 = $shiftRightUint64(un10, 32); - un0 = new $Uint64(un10.$high & 0, (un10.$low & 4294967295) >>> 0); - q1 = $div64(un32, yn1, false); - rhat = (x$2 = $mul64(q1, yn1), new $Uint64(un32.$high - x$2.$high, un32.$low - x$2.$low)); - while (true) { - if (!((q1.$high > 1 || (q1.$high === 1 && q1.$low >= 0)) || (x$3 = $mul64(q1, yn0), x$4 = (x$5 = $mul64(new $Uint64(1, 0), rhat), new $Uint64(x$5.$high + un1.$high, x$5.$low + un1.$low)), (x$3.$high > x$4.$high || (x$3.$high === x$4.$high && x$3.$low > x$4.$low))))) { break; } - q1 = (x$6 = new $Uint64(0, 1), new $Uint64(q1.$high - x$6.$high, q1.$low - x$6.$low)); - rhat = (x$7 = yn1, new $Uint64(rhat.$high + x$7.$high, rhat.$low + x$7.$low)); - if ((rhat.$high > 1 || (rhat.$high === 1 && rhat.$low >= 0))) { - break; - } - } - un21 = (x$8 = (x$9 = $mul64(un32, new $Uint64(1, 0)), new $Uint64(x$9.$high + un1.$high, x$9.$low + un1.$low)), x$10 = $mul64(q1, y), new $Uint64(x$8.$high - x$10.$high, x$8.$low - x$10.$low)); - q0 = $div64(un21, yn1, false); - rhat = (x$11 = $mul64(q0, yn1), new $Uint64(un21.$high - x$11.$high, un21.$low - x$11.$low)); - while (true) { - if (!((q0.$high > 1 || (q0.$high === 1 && q0.$low >= 0)) || (x$12 = $mul64(q0, yn0), x$13 = (x$14 = $mul64(new $Uint64(1, 0), rhat), new $Uint64(x$14.$high + un0.$high, x$14.$low + un0.$low)), (x$12.$high > x$13.$high || (x$12.$high === x$13.$high && x$12.$low > x$13.$low))))) { break; } - q0 = (x$15 = new $Uint64(0, 1), new $Uint64(q0.$high - x$15.$high, q0.$low - x$15.$low)); - rhat = (x$16 = yn1, new $Uint64(rhat.$high + x$16.$high, rhat.$low + x$16.$low)); - if ((rhat.$high > 1 || (rhat.$high === 1 && rhat.$low >= 0))) { - break; - } + $pkg.TrailingZeros = TrailingZeros; + Len = function Len$1(x) { + var x; + if (true) { + return Len32(((x >>> 0))); } - _tmp$2 = (x$17 = $mul64(q1, new $Uint64(1, 0)), new $Uint64(x$17.$high + q0.$high, x$17.$low + q0.$low)); - _tmp$3 = $shiftRightUint64(((x$18 = (x$19 = $mul64(un21, new $Uint64(1, 0)), new $Uint64(x$19.$high + un0.$high, x$19.$low + un0.$low)), x$20 = $mul64(q0, y), new $Uint64(x$18.$high - x$20.$high, x$18.$low - x$20.$low))), s); - quo = _tmp$2; - rem = _tmp$3; - return [quo, rem]; + return Len64((new $Uint64(0, x))); }; - $pkg.Div64 = Div64; - _err.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "RuntimeError", name: "RuntimeError", pkg: "", typ: $funcType([], [], false)}]; + $pkg.Len = Len; }; $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: - overflowError = new _err("runtime error: integer overflow"); - divideError = new _err("runtime error: integer divide by zero"); - deBruijn32tab = $toNativeArray($kindUint8, [0, 1, 28, 2, 29, 14, 24, 3, 30, 22, 20, 15, 25, 17, 4, 8, 31, 27, 13, 23, 21, 19, 16, 7, 26, 12, 18, 6, 11, 5, 10, 9]); - deBruijn64tab = $toNativeArray($kindUint8, [0, 1, 56, 2, 57, 49, 28, 3, 61, 58, 42, 50, 38, 29, 17, 4, 62, 47, 59, 36, 45, 43, 51, 22, 53, 39, 33, 30, 24, 18, 12, 5, 63, 55, 48, 27, 60, 41, 37, 16, 46, 35, 44, 21, 52, 32, 23, 11, 54, 26, 40, 15, 34, 20, 31, 10, 25, 14, 19, 9, 13, 8, 7, 6]); + $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); $packages["math"] = (function() { - var $pkg = {}, $init, js, bits, arrayType, arrayType$1, arrayType$2, structType, buf, math, _zero, posInf, negInf, nan, log2, ldexp, Copysign, Exp, Frexp, Inf, IsInf, IsNaN, Ldexp, Log, Log2, Pow, Signbit, Sqrt, init, Float32bits, Float32frombits, Float64bits, Float64frombits, frexp, normalize, Abs; + var $pkg = {}, $init, js, bits, arrayType, arrayType$1, arrayType$2, structType, buf, math, nan, Exp, Log, init, Float32bits, Float64bits; js = $packages["github.com/gopherjs/gopherjs/js"]; bits = $packages["math/bits"]; $pkg.$finishSetup = function() { @@ -7195,108 +6595,11 @@ $packages["math"] = (function() { arrayType$1 = $arrayType($Float32, 2); arrayType$2 = $arrayType($Float64, 1); structType = $structType("math", [{prop: "uint32array", name: "uint32array", embedded: false, exported: false, typ: arrayType, tag: ""}, {prop: "float32array", name: "float32array", embedded: false, exported: false, typ: arrayType$1, tag: ""}, {prop: "float64array", name: "float64array", embedded: false, exported: false, typ: arrayType$2, tag: ""}]); - log2 = function log2$1(x) { - var _tuple, exp$1, frac, x; - _tuple = Frexp(x); - frac = _tuple[0]; - exp$1 = _tuple[1]; - if (frac === 0.5) { - return ((exp$1 - 1 >> 0)); - } - return Log(frac) * 1.4426950408889634 + (exp$1); - }; - ldexp = function ldexp$1(frac, exp$1) { - var _tuple, e, exp$1, frac, m, x, x$1, x$2; - if ((frac === 0)) { - return frac; - } else if (IsInf(frac, 0) || IsNaN(frac)) { - return frac; - } - _tuple = normalize(frac); - frac = _tuple[0]; - e = _tuple[1]; - exp$1 = exp$1 + (e) >> 0; - x = Float64bits(frac); - exp$1 = exp$1 + ((((($shiftRightUint64(x, 52).$low >> 0)) & 2047) - 1023 >> 0)) >> 0; - if (exp$1 < -1075) { - return Copysign(0, frac); - } - if (exp$1 > 1023) { - if (frac < 0) { - return Inf(-1); - } - return Inf(1); - } - m = 1; - if (exp$1 < -1022) { - exp$1 = exp$1 + (53) >> 0; - m = 1.1102230246251565e-16; - } - x = (x$1 = new $Uint64(2146435072, 0), new $Uint64(x.$high & ~x$1.$high, (x.$low & ~x$1.$low) >>> 0)); - x = (x$2 = $shiftLeft64((new $Uint64(0, (exp$1 + 1023 >> 0))), 52), new $Uint64(x.$high | x$2.$high, (x.$low | x$2.$low) >>> 0)); - return m * Float64frombits(x); - }; - Copysign = function Copysign$1(x, y) { - var x, y; - if (!((x < 0 || (1 / x === negInf)) === (y < 0 || (1 / y === negInf)))) { - return -x; - } - return x; - }; - $pkg.Copysign = Copysign; Exp = function Exp$1(x) { var x; return $parseFloat(math.exp(x)); }; $pkg.Exp = Exp; - Frexp = function Frexp$1(f) { - var _tuple, exp$1, f, frac; - frac = 0; - exp$1 = 0; - _tuple = frexp(f); - frac = _tuple[0]; - exp$1 = _tuple[1]; - return [frac, exp$1]; - }; - $pkg.Frexp = Frexp; - Inf = function Inf$1(sign) { - var sign; - if (sign >= 0) { - return posInf; - } else { - return negInf; - } - }; - $pkg.Inf = Inf; - IsInf = function IsInf$1(f, sign) { - var f, sign; - if (f === posInf) { - return sign >= 0; - } - if (f === negInf) { - return sign <= 0; - } - return false; - }; - $pkg.IsInf = IsInf; - IsNaN = function IsNaN$1(f) { - var f, is; - is = false; - is = !((f === f)); - return is; - }; - $pkg.IsNaN = IsNaN; - Ldexp = function Ldexp$1(frac, exp$1) { - var exp$1, frac; - if (-1024 < exp$1 && exp$1 < 1024) { - if (frac === 0) { - return frac; - } - return frac * $parseFloat(math.pow(2, exp$1)); - } - return ldexp(frac, exp$1); - }; - $pkg.Ldexp = Ldexp; Log = function Log$1(x) { var x; if (!((x === x))) { @@ -7305,29 +6608,6 @@ $packages["math"] = (function() { return $parseFloat(math.log(x)); }; $pkg.Log = Log; - Log2 = function Log2$1(x) { - var x; - return log2(x); - }; - $pkg.Log2 = Log2; - Pow = function Pow$1(x, y) { - var x, y; - if ((x === 1) || ((x === -1) && ((y === posInf) || (y === negInf)))) { - return 1; - } - return $parseFloat(math.pow(x, y)); - }; - $pkg.Pow = Pow; - Signbit = function Signbit$1(x) { - var x; - return x < 0 || (1 / x === negInf); - }; - $pkg.Signbit = Signbit; - Sqrt = function Sqrt$1(x) { - var x; - return $parseFloat(math.sqrt(x)); - }; - $pkg.Sqrt = Sqrt; init = function init$1() { var ab; ab = new ($global.ArrayBuffer)(8); @@ -7341,74 +6621,12 @@ $packages["math"] = (function() { return buf.uint32array[0]; }; $pkg.Float32bits = Float32bits; - Float32frombits = function Float32frombits$1(b) { - var b; - buf.uint32array[0] = b; - return buf.float32array[0]; - }; - $pkg.Float32frombits = Float32frombits; Float64bits = function Float64bits$1(f) { var f, x, x$1; buf.float64array[0] = f; return (x = $shiftLeft64((new $Uint64(0, buf.uint32array[1])), 32), x$1 = (new $Uint64(0, buf.uint32array[0])), new $Uint64(x.$high + x$1.$high, x.$low + x$1.$low)); }; $pkg.Float64bits = Float64bits; - Float64frombits = function Float64frombits$1(b) { - var b; - buf.uint32array[0] = ((b.$low >>> 0)); - buf.uint32array[1] = (($shiftRightUint64(b, 32).$low >>> 0)); - return buf.float64array[0]; - }; - $pkg.Float64frombits = Float64frombits; - frexp = function frexp$1(f) { - var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, exp$1, f, frac, x, x$1, x$2, x$3; - frac = 0; - exp$1 = 0; - if ((f === 0)) { - _tmp = f; - _tmp$1 = 0; - frac = _tmp; - exp$1 = _tmp$1; - return [frac, exp$1]; - } else if (IsInf(f, 0) || IsNaN(f)) { - _tmp$2 = f; - _tmp$3 = 0; - frac = _tmp$2; - exp$1 = _tmp$3; - return [frac, exp$1]; - } - _tuple = normalize(f); - f = _tuple[0]; - exp$1 = _tuple[1]; - x = Float64bits(f); - exp$1 = exp$1 + ((((((x$1 = $shiftRightUint64(x, 52), new $Uint64(x$1.$high & 0, (x$1.$low & 2047) >>> 0)).$low >> 0)) - 1023 >> 0) + 1 >> 0)) >> 0; - x = (x$2 = new $Uint64(2146435072, 0), new $Uint64(x.$high & ~x$2.$high, (x.$low & ~x$2.$low) >>> 0)); - x = (x$3 = new $Uint64(1071644672, 0), new $Uint64(x.$high | x$3.$high, (x.$low | x$3.$low) >>> 0)); - frac = Float64frombits(x); - return [frac, exp$1]; - }; - normalize = function normalize$1(x) { - var _tmp, _tmp$1, _tmp$2, _tmp$3, exp$2, x, y; - y = 0; - exp$2 = 0; - if (Abs(x) < 2.2250738585072014e-308) { - _tmp = x * 4.503599627370496e+15; - _tmp$1 = -52; - y = _tmp; - exp$2 = _tmp$1; - return [y, exp$2]; - } - _tmp$2 = x; - _tmp$3 = 0; - y = _tmp$2; - exp$2 = _tmp$3; - return [y, exp$2]; - }; - Abs = function Abs$1(x) { - var x, x$1; - return Float64frombits((x$1 = Float64bits(x), new $Uint64(x$1.$high & ~2147483648, (x$1.$low & ~0) >>> 0))); - }; - $pkg.Abs = Abs; }; $init = function() { $pkg.$init = function() {}; @@ -7417,9 +6635,6 @@ $packages["math"] = (function() { $r = bits.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } buf = new structType.ptr(arrayType.zero(), arrayType$1.zero(), arrayType$2.zero()); math = $global.Math; - _zero = 0; - posInf = 1 / _zero; - negInf = -1 / _zero; nan = $parseFloat($NaN); init(); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; @@ -7945,7 +7160,7 @@ $packages["unicode/utf8"] = (function() { return $pkg; })(); $packages["strconv"] = (function() { - var $pkg = {}, $init, errors, js, bytealg, math, bits, utf8, floatInfo, decimalSlice, decimal, leftCheat, NumError, sliceType, sliceType$1, arrayType, sliceType$2, sliceType$6, arrayType$1, arrayType$2, ptrType, arrayType$3, arrayType$4, arrayType$5, ptrType$1, ptrType$2, isPrint16, isNotPrint16, isPrint32, isNotPrint32, isGraphic, uint64pow10, float32info, float32info$24ptr, float64info, float64info$24ptr, detailedPowersOfTen, leftcheats, optimize, contains, quoteWith, appendQuotedWith, appendQuotedRuneWith, appendEscapedRune, Quote, AppendQuote, QuoteToASCII, AppendQuoteToASCII, AppendQuoteRune, AppendQuoteRuneToASCII, CanBackquote, unhex, UnquoteChar, Unquote, unquote, bsearch16, bsearch32, IsPrint, isInGraphicList, FormatUint, FormatInt, AppendInt, small, formatBits, isPowerOfTwo, Itoa, Atoi, ryuFtoaFixed32, ryuFtoaFixed64, formatDecimal, ryuFtoaShortest, mulByLog2Log10, mulByLog10Log2, computeBounds, ryuDigits, ryuDigits32, mult64bitPow10, mult128bitPow10, divisibleByPower5, divmod1e9, AppendFloat, genericFtoa, bigFtoa, formatDigits, roundShortest, fmtE, fmtF, fmtB, fmtX, min, max, digitZero, trim, rightShift, prefixIsLessThan, leftShift, shouldRoundUp, index, lower, cloneString, syntaxError, rangeError, baseError, bitSizeError, ParseUint, ParseInt, underscoreOK, FormatBool; + var $pkg = {}, $init, errors, js, bytealg, math, bits, utf8, floatInfo, decimalSlice, decimal, leftCheat, NumError, sliceType, sliceType$1, arrayType, sliceType$2, sliceType$6, arrayType$1, arrayType$2, ptrType, arrayType$3, arrayType$4, arrayType$5, ptrType$1, ptrType$2, isPrint16, isNotPrint16, isPrint32, isNotPrint32, isGraphic, uint64pow10, float32info, float32info$24ptr, float64info, float64info$24ptr, detailedPowersOfTen, leftcheats, optimize, contains, quoteWith, appendQuotedWith, appendQuotedRuneWith, appendEscapedRune, Quote, AppendQuote, QuoteToASCII, AppendQuoteToASCII, AppendQuoteRune, AppendQuoteRuneToASCII, CanBackquote, unhex, UnquoteChar, Unquote, unquote, bsearch16, bsearch32, IsPrint, isInGraphicList, FormatUint, FormatInt, small, formatBits, isPowerOfTwo, Itoa, Atoi, ryuFtoaFixed32, ryuFtoaFixed64, formatDecimal, ryuFtoaShortest, mulByLog2Log10, mulByLog10Log2, computeBounds, ryuDigits, ryuDigits32, mult64bitPow10, mult128bitPow10, divisibleByPower5, divmod1e9, AppendFloat, genericFtoa, bigFtoa, formatDigits, roundShortest, fmtE, fmtF, fmtB, fmtX, min, max, digitZero, trim, rightShift, prefixIsLessThan, leftShift, shouldRoundUp, index, lower, cloneString, syntaxError, rangeError, baseError, bitSizeError, ParseUint, underscoreOK; errors = $packages["errors"]; js = $packages["github.com/gopherjs/gopherjs/js"]; bytealg = $packages["internal/bytealg"]; @@ -8635,16 +7850,6 @@ $packages["strconv"] = (function() { return s; }; $pkg.FormatInt = FormatInt; - AppendInt = function AppendInt$1(dst, i, base) { - var _tuple, base, dst, i; - if (true && (0 < i.$high || (0 === i.$high && 0 <= i.$low)) && (i.$high < 0 || (i.$high === 0 && i.$low < 100)) && (base === 10)) { - return $appendSlice(dst, small((((i.$low + ((i.$high >> 31) * 4294967296)) >> 0)))); - } - _tuple = formatBits(dst, (new $Uint64(i.$high, i.$low)), base, (i.$high < 0 || (i.$high === 0 && i.$low < 0)), true); - dst = _tuple[0]; - return dst; - }; - $pkg.AppendInt = AppendInt; small = function small$1(i) { var i; if (i < 10) { @@ -10127,67 +9332,6 @@ $packages["strconv"] = (function() { return [n, $ifaceNil]; }; $pkg.ParseUint = ParseUint; - ParseInt = function ParseInt$1(s, base, bitSize) { - var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, base, bitSize, cutoff, err, i, n, neg, s, s0, un, x, x$1; - i = new $Int64(0, 0); - err = $ifaceNil; - if (s === "") { - _tmp = new $Int64(0, 0); - _tmp$1 = syntaxError("ParseInt", s); - i = _tmp; - err = _tmp$1; - return [i, err]; - } - s0 = s; - neg = false; - if (s.charCodeAt(0) === 43) { - s = $substring(s, 1); - } else if (s.charCodeAt(0) === 45) { - neg = true; - s = $substring(s, 1); - } - un = new $Uint64(0, 0); - _tuple = ParseUint(s, base, bitSize); - un = _tuple[0]; - err = _tuple[1]; - if (!($interfaceIsEqual(err, $ifaceNil)) && !($interfaceIsEqual($assertType(err, ptrType$1).Err, $pkg.ErrRange))) { - $assertType(err, ptrType$1).Func = "ParseInt"; - $assertType(err, ptrType$1).Num = cloneString(s0); - _tmp$2 = new $Int64(0, 0); - _tmp$3 = err; - i = _tmp$2; - err = _tmp$3; - return [i, err]; - } - if (bitSize === 0) { - bitSize = 32; - } - cutoff = ($shiftLeft64(new $Uint64(0, 1), (((bitSize - 1 >> 0) >>> 0)))); - if (!neg && (un.$high > cutoff.$high || (un.$high === cutoff.$high && un.$low >= cutoff.$low))) { - _tmp$4 = ((x = new $Uint64(cutoff.$high - 0, cutoff.$low - 1), new $Int64(x.$high, x.$low))); - _tmp$5 = rangeError("ParseInt", s0); - i = _tmp$4; - err = _tmp$5; - return [i, err]; - } - if (neg && (un.$high > cutoff.$high || (un.$high === cutoff.$high && un.$low > cutoff.$low))) { - _tmp$6 = (x$1 = (new $Int64(cutoff.$high, cutoff.$low)), new $Int64(-x$1.$high, -x$1.$low)); - _tmp$7 = rangeError("ParseInt", s0); - i = _tmp$6; - err = _tmp$7; - return [i, err]; - } - n = (new $Int64(un.$high, un.$low)); - if (neg) { - n = new $Int64(-n.$high, -n.$low); - } - _tmp$8 = n; - _tmp$9 = $ifaceNil; - i = _tmp$8; - err = _tmp$9; - return [i, err]; - }; - $pkg.ParseInt = ParseInt; underscoreOK = function underscoreOK$1(s) { var hex, i, s, saw; saw = 94; @@ -10224,14 +9368,6 @@ $packages["strconv"] = (function() { } return !((saw === 95)); }; - FormatBool = function FormatBool$1(b) { - var b; - if (b) { - return "true"; - } - return "false"; - }; - $pkg.FormatBool = FormatBool; ptrType$2.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Assign", name: "Assign", pkg: "", typ: $funcType([$Uint64], [], false)}, {prop: "Shift", name: "Shift", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Round", name: "Round", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "RoundDown", name: "RoundDown", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "RoundUp", name: "RoundUp", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "RoundedInteger", name: "RoundedInteger", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "set", name: "set", pkg: "strconv", typ: $funcType([$String], [$Bool], false)}, {prop: "floatBits", name: "floatBits", pkg: "strconv", typ: $funcType([ptrType], [$Uint64, $Bool], false)}]; ptrType$1.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Unwrap", name: "Unwrap", pkg: "", typ: $funcType([], [$error], false)}]; floatInfo.init("strconv", [{prop: "mantbits", name: "mantbits", embedded: false, exported: false, typ: $Uint, tag: ""}, {prop: "expbits", name: "expbits", embedded: false, exported: false, typ: $Uint, tag: ""}, {prop: "bias", name: "bias", embedded: false, exported: false, typ: $Int, tag: ""}]); @@ -10249,10 +9385,10 @@ $packages["strconv"] = (function() { $r = math.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = bits.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = utf8.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - isPrint16 = new sliceType([32, 126, 161, 887, 890, 895, 900, 1366, 1369, 1418, 1421, 1479, 1488, 1514, 1519, 1524, 1542, 1563, 1566, 1805, 1808, 1866, 1869, 1969, 1984, 2042, 2045, 2093, 2096, 2139, 2142, 2154, 2208, 2247, 2259, 2444, 2447, 2448, 2451, 2482, 2486, 2489, 2492, 2500, 2503, 2504, 2507, 2510, 2519, 2519, 2524, 2531, 2534, 2558, 2561, 2570, 2575, 2576, 2579, 2617, 2620, 2626, 2631, 2632, 2635, 2637, 2641, 2641, 2649, 2654, 2662, 2678, 2689, 2745, 2748, 2765, 2768, 2768, 2784, 2787, 2790, 2801, 2809, 2828, 2831, 2832, 2835, 2873, 2876, 2884, 2887, 2888, 2891, 2893, 2901, 2903, 2908, 2915, 2918, 2935, 2946, 2954, 2958, 2965, 2969, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3006, 3010, 3014, 3021, 3024, 3024, 3031, 3031, 3046, 3066, 3072, 3129, 3133, 3149, 3157, 3162, 3168, 3171, 3174, 3183, 3191, 3257, 3260, 3277, 3285, 3286, 3294, 3299, 3302, 3314, 3328, 3407, 3412, 3427, 3430, 3478, 3482, 3517, 3520, 3526, 3530, 3530, 3535, 3551, 3558, 3567, 3570, 3572, 3585, 3642, 3647, 3675, 3713, 3773, 3776, 3789, 3792, 3801, 3804, 3807, 3840, 3948, 3953, 4058, 4096, 4295, 4301, 4301, 4304, 4685, 4688, 4701, 4704, 4749, 4752, 4789, 4792, 4805, 4808, 4885, 4888, 4954, 4957, 4988, 4992, 5017, 5024, 5109, 5112, 5117, 5120, 5788, 5792, 5880, 5888, 5908, 5920, 5942, 5952, 5971, 5984, 6003, 6016, 6109, 6112, 6121, 6128, 6137, 6144, 6157, 6160, 6169, 6176, 6264, 6272, 6314, 6320, 6389, 6400, 6443, 6448, 6459, 6464, 6464, 6468, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6608, 6618, 6622, 6683, 6686, 6780, 6783, 6793, 6800, 6809, 6816, 6829, 6832, 6848, 6912, 6987, 6992, 7036, 7040, 7155, 7164, 7223, 7227, 7241, 7245, 7304, 7312, 7354, 7357, 7367, 7376, 7418, 7424, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8061, 8064, 8147, 8150, 8175, 8178, 8190, 8208, 8231, 8240, 8286, 8304, 8305, 8308, 8348, 8352, 8383, 8400, 8432, 8448, 8587, 8592, 9254, 9280, 9290, 9312, 11123, 11126, 11507, 11513, 11559, 11565, 11565, 11568, 11623, 11631, 11632, 11647, 11670, 11680, 11858, 11904, 12019, 12032, 12245, 12272, 12283, 12289, 12438, 12441, 12543, 12549, 12771, 12784, 40956, 40960, 42124, 42128, 42182, 42192, 42539, 42560, 42743, 42752, 42943, 42946, 42954, 42997, 43052, 43056, 43065, 43072, 43127, 43136, 43205, 43214, 43225, 43232, 43347, 43359, 43388, 43392, 43481, 43486, 43574, 43584, 43597, 43600, 43609, 43612, 43714, 43739, 43766, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43883, 43888, 44013, 44016, 44025, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64449, 64467, 64831, 64848, 64911, 64914, 64967, 65008, 65021, 65024, 65049, 65056, 65131, 65136, 65276, 65281, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, 65504, 65518, 65532, 65533]); - isNotPrint16 = new sliceType([173, 907, 909, 930, 1328, 1424, 1757, 2111, 2143, 2229, 2274, 2436, 2473, 2481, 2526, 2564, 2601, 2609, 2612, 2615, 2621, 2653, 2692, 2702, 2706, 2729, 2737, 2740, 2758, 2762, 2816, 2820, 2857, 2865, 2868, 2910, 2948, 2961, 2971, 2973, 3017, 3085, 3089, 3113, 3141, 3145, 3159, 3213, 3217, 3241, 3252, 3269, 3273, 3295, 3312, 3341, 3345, 3397, 3401, 3456, 3460, 3506, 3516, 3541, 3543, 3715, 3717, 3723, 3748, 3750, 3781, 3783, 3912, 3992, 4029, 4045, 4294, 4681, 4695, 4697, 4745, 4785, 4799, 4801, 4823, 4881, 5760, 5901, 5997, 6001, 6431, 6751, 7674, 8024, 8026, 8028, 8030, 8117, 8133, 8156, 8181, 8335, 11158, 11311, 11359, 11558, 11687, 11695, 11703, 11711, 11719, 11727, 11735, 11743, 11930, 12352, 12592, 12687, 12831, 43470, 43519, 43815, 43823, 64311, 64317, 64319, 64322, 64325, 65107, 65127, 65141, 65511]); - isPrint32 = new sliceType$1([65536, 65613, 65616, 65629, 65664, 65786, 65792, 65794, 65799, 65843, 65847, 65948, 65952, 65952, 66000, 66045, 66176, 66204, 66208, 66256, 66272, 66299, 66304, 66339, 66349, 66378, 66384, 66426, 66432, 66499, 66504, 66517, 66560, 66717, 66720, 66729, 66736, 66771, 66776, 66811, 66816, 66855, 66864, 66915, 66927, 66927, 67072, 67382, 67392, 67413, 67424, 67431, 67584, 67589, 67592, 67640, 67644, 67644, 67647, 67742, 67751, 67759, 67808, 67829, 67835, 67867, 67871, 67897, 67903, 67903, 67968, 68023, 68028, 68047, 68050, 68102, 68108, 68149, 68152, 68154, 68159, 68168, 68176, 68184, 68192, 68255, 68288, 68326, 68331, 68342, 68352, 68405, 68409, 68437, 68440, 68466, 68472, 68497, 68505, 68508, 68521, 68527, 68608, 68680, 68736, 68786, 68800, 68850, 68858, 68903, 68912, 68921, 69216, 69293, 69296, 69297, 69376, 69415, 69424, 69465, 69552, 69579, 69600, 69622, 69632, 69709, 69714, 69743, 69759, 69825, 69840, 69864, 69872, 69881, 69888, 69959, 69968, 70006, 70016, 70132, 70144, 70206, 70272, 70313, 70320, 70378, 70384, 70393, 70400, 70412, 70415, 70416, 70419, 70468, 70471, 70472, 70475, 70477, 70480, 70480, 70487, 70487, 70493, 70499, 70502, 70508, 70512, 70516, 70656, 70753, 70784, 70855, 70864, 70873, 71040, 71093, 71096, 71133, 71168, 71236, 71248, 71257, 71264, 71276, 71296, 71352, 71360, 71369, 71424, 71450, 71453, 71467, 71472, 71487, 71680, 71739, 71840, 71922, 71935, 71942, 71945, 71945, 71948, 71992, 71995, 72006, 72016, 72025, 72096, 72103, 72106, 72151, 72154, 72164, 72192, 72263, 72272, 72354, 72384, 72440, 72704, 72773, 72784, 72812, 72816, 72847, 72850, 72886, 72960, 73014, 73018, 73031, 73040, 73049, 73056, 73112, 73120, 73129, 73440, 73464, 73648, 73648, 73664, 73713, 73727, 74649, 74752, 74868, 74880, 75075, 77824, 78894, 82944, 83526, 92160, 92728, 92736, 92777, 92782, 92783, 92880, 92909, 92912, 92917, 92928, 92997, 93008, 93047, 93053, 93071, 93760, 93850, 93952, 94026, 94031, 94087, 94095, 94111, 94176, 94180, 94192, 94193, 94208, 100343, 100352, 101589, 101632, 101640, 110592, 110878, 110928, 110930, 110948, 110951, 110960, 111355, 113664, 113770, 113776, 113788, 113792, 113800, 113808, 113817, 113820, 113823, 118784, 119029, 119040, 119078, 119081, 119154, 119163, 119272, 119296, 119365, 119520, 119539, 119552, 119638, 119648, 119672, 119808, 119967, 119970, 119970, 119973, 119974, 119977, 120074, 120077, 120134, 120138, 120485, 120488, 120779, 120782, 121483, 121499, 121519, 122880, 122904, 122907, 122922, 123136, 123180, 123184, 123197, 123200, 123209, 123214, 123215, 123584, 123641, 123647, 123647, 124928, 125124, 125127, 125142, 125184, 125259, 125264, 125273, 125278, 125279, 126065, 126132, 126209, 126269, 126464, 126500, 126503, 126523, 126530, 126530, 126535, 126548, 126551, 126564, 126567, 126619, 126625, 126651, 126704, 126705, 126976, 127019, 127024, 127123, 127136, 127150, 127153, 127221, 127232, 127405, 127462, 127490, 127504, 127547, 127552, 127560, 127568, 127569, 127584, 127589, 127744, 128727, 128736, 128748, 128752, 128764, 128768, 128883, 128896, 128984, 128992, 129003, 129024, 129035, 129040, 129095, 129104, 129113, 129120, 129159, 129168, 129197, 129200, 129201, 129280, 129619, 129632, 129645, 129648, 129652, 129656, 129658, 129664, 129670, 129680, 129704, 129712, 129718, 129728, 129730, 129744, 129750, 129792, 129994, 130032, 130041, 131072, 173789, 173824, 177972, 177984, 178205, 178208, 183969, 183984, 191456, 194560, 195101, 196608, 201546, 917760, 917999]); - isNotPrint32 = new sliceType([12, 39, 59, 62, 399, 926, 2057, 2102, 2134, 2291, 2564, 2580, 2584, 3711, 3754, 4285, 4405, 4576, 4626, 4743, 4745, 4750, 4766, 4868, 4905, 4913, 4916, 4922, 5212, 6420, 6423, 6454, 7177, 7223, 7336, 7431, 7434, 7483, 7486, 7526, 7529, 7567, 7570, 9327, 27231, 27482, 27490, 54357, 54429, 54445, 54458, 54460, 54468, 54534, 54549, 54557, 54586, 54591, 54597, 54609, 55968, 57351, 57378, 57381, 60932, 60960, 60963, 60968, 60979, 60984, 60986, 61000, 61002, 61004, 61008, 61011, 61016, 61018, 61020, 61022, 61024, 61027, 61035, 61043, 61048, 61053, 61055, 61066, 61092, 61098, 61632, 61648, 63865, 63948, 64403]); + isPrint16 = new sliceType([32, 126, 161, 887, 890, 895, 900, 1366, 1369, 1418, 1421, 1479, 1488, 1514, 1519, 1524, 1542, 1805, 1808, 1866, 1869, 1969, 1984, 2042, 2045, 2093, 2096, 2139, 2142, 2154, 2160, 2190, 2200, 2444, 2447, 2448, 2451, 2482, 2486, 2489, 2492, 2500, 2503, 2504, 2507, 2510, 2519, 2519, 2524, 2531, 2534, 2558, 2561, 2570, 2575, 2576, 2579, 2617, 2620, 2626, 2631, 2632, 2635, 2637, 2641, 2641, 2649, 2654, 2662, 2678, 2689, 2745, 2748, 2765, 2768, 2768, 2784, 2787, 2790, 2801, 2809, 2828, 2831, 2832, 2835, 2873, 2876, 2884, 2887, 2888, 2891, 2893, 2901, 2903, 2908, 2915, 2918, 2935, 2946, 2954, 2958, 2965, 2969, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3006, 3010, 3014, 3021, 3024, 3024, 3031, 3031, 3046, 3066, 3072, 3129, 3132, 3149, 3157, 3162, 3165, 3165, 3168, 3171, 3174, 3183, 3191, 3257, 3260, 3277, 3285, 3286, 3293, 3299, 3302, 3315, 3328, 3407, 3412, 3427, 3430, 3478, 3482, 3517, 3520, 3526, 3530, 3530, 3535, 3551, 3558, 3567, 3570, 3572, 3585, 3642, 3647, 3675, 3713, 3773, 3776, 3801, 3804, 3807, 3840, 3948, 3953, 4058, 4096, 4295, 4301, 4301, 4304, 4685, 4688, 4701, 4704, 4749, 4752, 4789, 4792, 4805, 4808, 4885, 4888, 4954, 4957, 4988, 4992, 5017, 5024, 5109, 5112, 5117, 5120, 5788, 5792, 5880, 5888, 5909, 5919, 5942, 5952, 5971, 5984, 6003, 6016, 6109, 6112, 6121, 6128, 6137, 6144, 6169, 6176, 6264, 6272, 6314, 6320, 6389, 6400, 6443, 6448, 6459, 6464, 6464, 6468, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6608, 6618, 6622, 6683, 6686, 6780, 6783, 6793, 6800, 6809, 6816, 6829, 6832, 6862, 6912, 6988, 6992, 7155, 7164, 7223, 7227, 7241, 7245, 7304, 7312, 7354, 7357, 7367, 7376, 7418, 7424, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8061, 8064, 8147, 8150, 8175, 8178, 8190, 8208, 8231, 8240, 8286, 8304, 8305, 8308, 8348, 8352, 8384, 8400, 8432, 8448, 8587, 8592, 9254, 9280, 9290, 9312, 11123, 11126, 11507, 11513, 11559, 11565, 11565, 11568, 11623, 11631, 11632, 11647, 11670, 11680, 11869, 11904, 12019, 12032, 12245, 12272, 12283, 12289, 12438, 12441, 12543, 12549, 12771, 12784, 42124, 42128, 42182, 42192, 42539, 42560, 42743, 42752, 42954, 42960, 42969, 42994, 43052, 43056, 43065, 43072, 43127, 43136, 43205, 43214, 43225, 43232, 43347, 43359, 43388, 43392, 43481, 43486, 43574, 43584, 43597, 43600, 43609, 43612, 43714, 43739, 43766, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43883, 43888, 44013, 44016, 44025, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64450, 64467, 64911, 64914, 64967, 64975, 64975, 65008, 65049, 65056, 65131, 65136, 65276, 65281, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, 65504, 65518, 65532, 65533]); + isNotPrint16 = new sliceType([173, 907, 909, 930, 1328, 1424, 1564, 1757, 2111, 2143, 2274, 2436, 2473, 2481, 2526, 2564, 2601, 2609, 2612, 2615, 2621, 2653, 2692, 2702, 2706, 2729, 2737, 2740, 2758, 2762, 2816, 2820, 2857, 2865, 2868, 2910, 2948, 2961, 2971, 2973, 3017, 3085, 3089, 3113, 3141, 3145, 3159, 3213, 3217, 3241, 3252, 3269, 3273, 3295, 3312, 3341, 3345, 3397, 3401, 3456, 3460, 3506, 3516, 3541, 3543, 3715, 3717, 3723, 3748, 3750, 3781, 3783, 3791, 3912, 3992, 4029, 4045, 4294, 4681, 4695, 4697, 4745, 4785, 4799, 4801, 4823, 4881, 5760, 5997, 6001, 6158, 6431, 6751, 7039, 8024, 8026, 8028, 8030, 8117, 8133, 8156, 8181, 8335, 11158, 11558, 11687, 11695, 11703, 11711, 11719, 11727, 11735, 11743, 11930, 12352, 12592, 12687, 12831, 42962, 42964, 43470, 43519, 43815, 43823, 64311, 64317, 64319, 64322, 64325, 65107, 65127, 65141, 65511]); + isPrint32 = new sliceType$1([65536, 65613, 65616, 65629, 65664, 65786, 65792, 65794, 65799, 65843, 65847, 65948, 65952, 65952, 66000, 66045, 66176, 66204, 66208, 66256, 66272, 66299, 66304, 66339, 66349, 66378, 66384, 66426, 66432, 66499, 66504, 66517, 66560, 66717, 66720, 66729, 66736, 66771, 66776, 66811, 66816, 66855, 66864, 66915, 66927, 67004, 67072, 67382, 67392, 67413, 67424, 67431, 67456, 67514, 67584, 67589, 67592, 67640, 67644, 67644, 67647, 67742, 67751, 67759, 67808, 67829, 67835, 67867, 67871, 67897, 67903, 67903, 67968, 68023, 68028, 68047, 68050, 68102, 68108, 68149, 68152, 68154, 68159, 68168, 68176, 68184, 68192, 68255, 68288, 68326, 68331, 68342, 68352, 68405, 68409, 68437, 68440, 68466, 68472, 68497, 68505, 68508, 68521, 68527, 68608, 68680, 68736, 68786, 68800, 68850, 68858, 68903, 68912, 68921, 69216, 69293, 69296, 69297, 69373, 69415, 69424, 69465, 69488, 69513, 69552, 69579, 69600, 69622, 69632, 69709, 69714, 69749, 69759, 69826, 69840, 69864, 69872, 69881, 69888, 69959, 69968, 70006, 70016, 70132, 70144, 70209, 70272, 70313, 70320, 70378, 70384, 70393, 70400, 70412, 70415, 70416, 70419, 70468, 70471, 70472, 70475, 70477, 70480, 70480, 70487, 70487, 70493, 70499, 70502, 70508, 70512, 70516, 70656, 70753, 70784, 70855, 70864, 70873, 71040, 71093, 71096, 71133, 71168, 71236, 71248, 71257, 71264, 71276, 71296, 71353, 71360, 71369, 71424, 71450, 71453, 71467, 71472, 71494, 71680, 71739, 71840, 71922, 71935, 71942, 71945, 71945, 71948, 71992, 71995, 72006, 72016, 72025, 72096, 72103, 72106, 72151, 72154, 72164, 72192, 72263, 72272, 72354, 72368, 72440, 72448, 72457, 72704, 72773, 72784, 72812, 72816, 72847, 72850, 72886, 72960, 73014, 73018, 73031, 73040, 73049, 73056, 73112, 73120, 73129, 73440, 73464, 73472, 73530, 73534, 73561, 73648, 73648, 73664, 73713, 73727, 74649, 74752, 74868, 74880, 75075, 77712, 77810, 77824, 78895, 78912, 78933, 82944, 83526, 92160, 92728, 92736, 92777, 92782, 92873, 92880, 92909, 92912, 92917, 92928, 92997, 93008, 93047, 93053, 93071, 93760, 93850, 93952, 94026, 94031, 94087, 94095, 94111, 94176, 94180, 94192, 94193, 94208, 100343, 100352, 101589, 101632, 101640, 110576, 110882, 110898, 110898, 110928, 110930, 110933, 110933, 110948, 110951, 110960, 111355, 113664, 113770, 113776, 113788, 113792, 113800, 113808, 113817, 113820, 113823, 118528, 118573, 118576, 118598, 118608, 118723, 118784, 119029, 119040, 119078, 119081, 119154, 119163, 119274, 119296, 119365, 119488, 119507, 119520, 119539, 119552, 119638, 119648, 119672, 119808, 119967, 119970, 119970, 119973, 119974, 119977, 120074, 120077, 120134, 120138, 120485, 120488, 120779, 120782, 121483, 121499, 121519, 122624, 122654, 122661, 122666, 122880, 122904, 122907, 122922, 122928, 122989, 123023, 123023, 123136, 123180, 123184, 123197, 123200, 123209, 123214, 123215, 123536, 123566, 123584, 123641, 123647, 123647, 124112, 124153, 124896, 125124, 125127, 125142, 125184, 125259, 125264, 125273, 125278, 125279, 126065, 126132, 126209, 126269, 126464, 126500, 126503, 126523, 126530, 126530, 126535, 126548, 126551, 126564, 126567, 126619, 126625, 126651, 126704, 126705, 126976, 127019, 127024, 127123, 127136, 127150, 127153, 127221, 127232, 127405, 127462, 127490, 127504, 127547, 127552, 127560, 127568, 127569, 127584, 127589, 127744, 128727, 128732, 128748, 128752, 128764, 128768, 128886, 128891, 128985, 128992, 129003, 129008, 129008, 129024, 129035, 129040, 129095, 129104, 129113, 129120, 129159, 129168, 129197, 129200, 129201, 129280, 129619, 129632, 129645, 129648, 129660, 129664, 129672, 129680, 129733, 129742, 129755, 129760, 129768, 129776, 129784, 129792, 129994, 130032, 130041, 131072, 173791, 173824, 177977, 177984, 178205, 178208, 183969, 183984, 191456, 194560, 195101, 196608, 201546, 201552, 205743, 917760, 917999]); + isNotPrint32 = new sliceType([12, 39, 59, 62, 399, 926, 1403, 1419, 1427, 1430, 1442, 1458, 1466, 1926, 1969, 2057, 2102, 2134, 2291, 2564, 2580, 2584, 3711, 3754, 4285, 4405, 4576, 4626, 4743, 4745, 4750, 4766, 4868, 4905, 4913, 4916, 4922, 5212, 6420, 6423, 6454, 7177, 7223, 7336, 7431, 7434, 7483, 7486, 7526, 7529, 7567, 7570, 7953, 9327, 27231, 27327, 27482, 27490, 45044, 45052, 45055, 54357, 54429, 54445, 54458, 54460, 54468, 54534, 54549, 54557, 54586, 54591, 54597, 54609, 55968, 57351, 57378, 57381, 59367, 59372, 59375, 59391, 60932, 60960, 60963, 60968, 60979, 60984, 60986, 61000, 61002, 61004, 61008, 61011, 61016, 61018, 61020, 61022, 61024, 61027, 61035, 61043, 61048, 61053, 61055, 61066, 61092, 61098, 61632, 61648, 64190, 64403]); isGraphic = new sliceType([160, 5760, 8192, 8193, 8194, 8195, 8196, 8197, 8198, 8199, 8200, 8201, 8202, 8239, 8287, 12288]); uint64pow10 = $toNativeArray($kindUint64, [new $Uint64(0, 1), new $Uint64(0, 10), new $Uint64(0, 100), new $Uint64(0, 1000), new $Uint64(0, 10000), new $Uint64(0, 100000), new $Uint64(0, 1000000), new $Uint64(0, 10000000), new $Uint64(0, 100000000), new $Uint64(0, 1000000000), new $Uint64(2, 1410065408), new $Uint64(23, 1215752192), new $Uint64(232, 3567587328), new $Uint64(2328, 1316134912), new $Uint64(23283, 276447232), new $Uint64(232830, 2764472320), new $Uint64(2328306, 1874919424), new $Uint64(23283064, 1569325056), new $Uint64(232830643, 2808348672), new $Uint64(2328306436, 2313682944)]); float32info = new floatInfo.ptr(23, 8, -127); @@ -10298,7 +9434,7 @@ $packages["internal/race"] = (function() { return $pkg; })(); $packages["sync/atomic"] = (function() { - var $pkg = {}, $init, js, Value, Bool, Int32, noCopy, Pointer = [], ptrType$1, ptrType$2, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, ptrType$11, ptrType$12, ptrType$17, ptrType$18, ptrType$19, ptrType$20, ptrType$21, b32, SwapInt32, SwapUint32, CompareAndSwapInt32, CompareAndSwapUint32, CompareAndSwapUint64, AddInt32, AddUint32, LoadInt32, LoadUint32, LoadUint64, StoreInt32, StoreUint32, sameType; + var $pkg = {}, $init, js, Value, Bool, Int32, noCopy, Pointer = [], ptrType$1, ptrType$2, ptrType$3, ptrType$4, ptrType$12, ptrType$14, ptrType$15, ptrType$16, ptrType$17, ptrType$19, b32, SwapInt32, SwapUint32, CompareAndSwapInt32, CompareAndSwapUint32, CompareAndSwapUint64, AddInt32, LoadInt32, LoadUint32, LoadUint64, StoreInt32, StoreUint32, sameType; js = $packages["github.com/gopherjs/gopherjs/js"]; Value = $newType(0, $kindStruct, "atomic.Value", true, "sync/atomic", true, function(v_) { this.$val = this; @@ -10332,31 +9468,15 @@ $packages["sync/atomic"] = (function() { Pointer[0 /* go/token.File */] = $newType(0, $kindStruct, "atomic.Pointer[go/token.File]", true, "sync/atomic", true, function(v_) { this.$val = this; if (arguments.length === 0) { - this.v = ptrType$6.nil; + this.v = ptrType$12.nil; return; } this.v = v_; }); - Pointer[5 /* string */] = $newType(0, $kindStruct, "atomic.Pointer[string]", true, "sync/atomic", true, function(v_) { + Pointer[10 /* any */] = $newType(0, $kindStruct, "atomic.Pointer[any]", true, "sync/atomic", true, function(v_) { this.$val = this; if (arguments.length === 0) { - this.v = ptrType$7.nil; - return; - } - this.v = v_; - }); - Pointer[10 /* sync.readOnly */] = $newType(0, $kindStruct, "atomic.Pointer[sync.readOnly]", true, "sync/atomic", true, function(v_) { - this.$val = this; - if (arguments.length === 0) { - this.v = ptrType$8.nil; - return; - } - this.v = v_; - }); - Pointer[15 /* any */] = $newType(0, $kindStruct, "atomic.Pointer[any]", true, "sync/atomic", true, function(v_) { - this.$val = this; - if (arguments.length === 0) { - this.v = ptrType$9.nil; + this.v = ptrType$14.nil; return; } this.v = v_; @@ -10367,42 +9487,38 @@ $packages["sync/atomic"] = (function() { $pkg.noCopy = noCopy; $pkg.Pointer = Pointer; $pkg.$finishSetup = function() { - ptrType$1 = $ptrType($Uint32); - ptrType$2 = $ptrType($Int32); - ptrType$6 = $ptrType($packages["go/token"].File); - ptrType$7 = $ptrType($String); - ptrType$8 = $ptrType($packages["sync"].readOnly); - ptrType$9 = $ptrType($emptyInterface); - ptrType$10 = $ptrType(Value); - ptrType$11 = $ptrType(Bool); - ptrType$12 = $ptrType(Int32); - ptrType$17 = $ptrType(noCopy); - ptrType$18 = $ptrType(Pointer[0 /* go/token.File */]); - ptrType$19 = $ptrType(Pointer[5 /* string */]); - ptrType$20 = $ptrType(Pointer[10 /* sync.readOnly */]); - ptrType$21 = $ptrType(Pointer[15 /* any */]); + ptrType$1 = $ptrType(Bool); + ptrType$2 = $ptrType($Uint32); + ptrType$3 = $ptrType(Int32); + ptrType$4 = $ptrType($Int32); + ptrType$12 = $ptrType($packages["go/token"].File); + ptrType$14 = $ptrType($emptyInterface); + ptrType$15 = $ptrType(Value); + ptrType$16 = $ptrType(noCopy); + ptrType$17 = $ptrType(Pointer[0 /* go/token.File */]); + ptrType$19 = $ptrType(Pointer[10 /* any */]); $ptrType(Bool).prototype.Load = function Load() { var x; x = this; - return !((LoadUint32((x.$ptr_v || (x.$ptr_v = new ptrType$1(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x)))) === 0)); + return !((LoadUint32((x === ptrType$1.nil && $throwNilPointerError(), (x.$ptr_v || (x.$ptr_v = new ptrType$2(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x))))) === 0)); }; $ptrType(Bool).prototype.Store = function Store(val) { var val, x; x = this; - StoreUint32((x.$ptr_v || (x.$ptr_v = new ptrType$1(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x))), b32(val)); + StoreUint32((x === ptrType$1.nil && $throwNilPointerError(), (x.$ptr_v || (x.$ptr_v = new ptrType$2(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x)))), b32(val)); }; $ptrType(Bool).prototype.Swap = function Swap(new$1) { var new$1, old, x; old = false; x = this; - old = !((SwapUint32((x.$ptr_v || (x.$ptr_v = new ptrType$1(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x))), b32(new$1)) === 0)); + old = !((SwapUint32((x === ptrType$1.nil && $throwNilPointerError(), (x.$ptr_v || (x.$ptr_v = new ptrType$2(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x)))), b32(new$1)) === 0)); return old; }; $ptrType(Bool).prototype.CompareAndSwap = function CompareAndSwap(old, new$1) { var new$1, old, swapped, x; swapped = false; x = this; - swapped = CompareAndSwapUint32((x.$ptr_v || (x.$ptr_v = new ptrType$1(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x))), b32(old), b32(new$1)); + swapped = CompareAndSwapUint32((x === ptrType$1.nil && $throwNilPointerError(), (x.$ptr_v || (x.$ptr_v = new ptrType$2(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x)))), b32(old), b32(new$1)); return swapped; }; b32 = function b32$1(b) { @@ -10415,32 +9531,32 @@ $packages["sync/atomic"] = (function() { $ptrType(Int32).prototype.Load = function Load$1() { var x; x = this; - return LoadInt32((x.$ptr_v || (x.$ptr_v = new ptrType$2(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x)))); + return LoadInt32((x === ptrType$3.nil && $throwNilPointerError(), (x.$ptr_v || (x.$ptr_v = new ptrType$4(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x))))); }; $ptrType(Int32).prototype.Store = function Store$1(val) { var val, x; x = this; - StoreInt32((x.$ptr_v || (x.$ptr_v = new ptrType$2(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x))), val); + StoreInt32((x === ptrType$3.nil && $throwNilPointerError(), (x.$ptr_v || (x.$ptr_v = new ptrType$4(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x)))), val); }; $ptrType(Int32).prototype.Swap = function Swap$1(new$1) { var new$1, old, x; old = 0; x = this; - old = SwapInt32((x.$ptr_v || (x.$ptr_v = new ptrType$2(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x))), new$1); + old = SwapInt32((x === ptrType$3.nil && $throwNilPointerError(), (x.$ptr_v || (x.$ptr_v = new ptrType$4(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x)))), new$1); return old; }; $ptrType(Int32).prototype.CompareAndSwap = function CompareAndSwap$1(old, new$1) { var new$1, old, swapped, x; swapped = false; x = this; - swapped = CompareAndSwapInt32((x.$ptr_v || (x.$ptr_v = new ptrType$2(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x))), old, new$1); + swapped = CompareAndSwapInt32((x === ptrType$3.nil && $throwNilPointerError(), (x.$ptr_v || (x.$ptr_v = new ptrType$4(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x)))), old, new$1); return swapped; }; $ptrType(Int32).prototype.Add = function Add(delta) { var delta, new$1, x; new$1 = 0; x = this; - new$1 = AddInt32((x.$ptr_v || (x.$ptr_v = new ptrType$2(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x))), delta); + new$1 = AddInt32((x === ptrType$3.nil && $throwNilPointerError(), (x.$ptr_v || (x.$ptr_v = new ptrType$4(function() { return this.$target.v; }, function($v) { this.$target.v = $v; }, x)))), delta); return new$1; }; $ptrType(noCopy).prototype.Lock = function Lock() { @@ -10495,13 +9611,6 @@ $packages["sync/atomic"] = (function() { return new$1; }; $pkg.AddInt32 = AddInt32; - AddUint32 = function AddUint32$1(addr, delta) { - var addr, delta, new$1; - new$1 = addr.$get() + delta >>> 0; - addr.$set(new$1); - return new$1; - }; - $pkg.AddUint32 = AddUint32; LoadInt32 = function LoadInt32$1(addr) { var addr; return addr.$get(); @@ -10587,17 +9696,7 @@ $packages["sync/atomic"] = (function() { x = this; return x.v; }; - $ptrType(Pointer[5 /* string */]).prototype.Load = function Load$8() { - var x; - x = this; - return x.v; - }; - $ptrType(Pointer[10 /* sync.readOnly */]).prototype.Load = function Load$9() { - var x; - x = this; - return x.v; - }; - $ptrType(Pointer[15 /* any */]).prototype.Load = function Load$10() { + $ptrType(Pointer[10 /* any */]).prototype.Load = function Load$9() { var x; x = this; return x.v; @@ -10607,51 +9706,23 @@ $packages["sync/atomic"] = (function() { x = this; x.v = val; }; - $ptrType(Pointer[5 /* string */]).prototype.Store = function Store$8(val) { - var val, x; - x = this; - x.v = val; - }; - $ptrType(Pointer[10 /* sync.readOnly */]).prototype.Store = function Store$9(val) { - var val, x; - x = this; - x.v = val; - }; - $ptrType(Pointer[15 /* any */]).prototype.Store = function Store$10(val) { + $ptrType(Pointer[10 /* any */]).prototype.Store = function Store$9(val) { var val, x; x = this; x.v = val; }; $ptrType(Pointer[0 /* go/token.File */]).prototype.Swap = function Swap$7(new$1) { var new$1, old, x; - old = ptrType$6.nil; - x = this; - old = x.v; - x.v = new$1; - old = old; - return old; - }; - $ptrType(Pointer[5 /* string */]).prototype.Swap = function Swap$8(new$1) { - var new$1, old, x; - old = ptrType$7.nil; + old = ptrType$12.nil; x = this; old = x.v; x.v = new$1; old = old; return old; }; - $ptrType(Pointer[10 /* sync.readOnly */]).prototype.Swap = function Swap$9(new$1) { + $ptrType(Pointer[10 /* any */]).prototype.Swap = function Swap$9(new$1) { var new$1, old, x; - old = ptrType$8.nil; - x = this; - old = x.v; - x.v = new$1; - old = old; - return old; - }; - $ptrType(Pointer[15 /* any */]).prototype.Swap = function Swap$10(new$1) { - var new$1, old, x; - old = ptrType$9.nil; + old = ptrType$14.nil; x = this; old = x.v; x.v = new$1; @@ -10667,25 +9738,7 @@ $packages["sync/atomic"] = (function() { } return false; }; - $ptrType(Pointer[5 /* string */]).prototype.CompareAndSwap = function CompareAndSwap$8(old, new$1) { - var new$1, old, x; - x = this; - if (x.v === old) { - x.v = new$1; - return true; - } - return false; - }; - $ptrType(Pointer[10 /* sync.readOnly */]).prototype.CompareAndSwap = function CompareAndSwap$9(old, new$1) { - var new$1, old, x; - x = this; - if (x.v === old) { - x.v = new$1; - return true; - } - return false; - }; - $ptrType(Pointer[15 /* any */]).prototype.CompareAndSwap = function CompareAndSwap$10(old, new$1) { + $ptrType(Pointer[10 /* any */]).prototype.CompareAndSwap = function CompareAndSwap$9(old, new$1) { var new$1, old, x; x = this; if (x.v === old) { @@ -10694,22 +9747,18 @@ $packages["sync/atomic"] = (function() { } return false; }; - ptrType$10.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$emptyInterface], [$emptyInterface], false)}, {prop: "CompareAndSwap", name: "CompareAndSwap", pkg: "", typ: $funcType([$emptyInterface, $emptyInterface], [$Bool], false)}, {prop: "checkNew", name: "checkNew", pkg: "sync/atomic", typ: $funcType([$String, $emptyInterface], [], false)}]; - ptrType$11.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([$Bool], [], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Bool], [$Bool], false)}, {prop: "CompareAndSwap", name: "CompareAndSwap", pkg: "", typ: $funcType([$Bool, $Bool], [$Bool], false)}]; - ptrType$12.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [$Int32], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([$Int32], [], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int32], [$Int32], false)}, {prop: "CompareAndSwap", name: "CompareAndSwap", pkg: "", typ: $funcType([$Int32, $Int32], [$Bool], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([$Int32], [$Int32], false)}]; - ptrType$17.methods = [{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}]; - ptrType$18.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [ptrType$6], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([ptrType$6], [], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([ptrType$6], [ptrType$6], false)}, {prop: "CompareAndSwap", name: "CompareAndSwap", pkg: "", typ: $funcType([ptrType$6, ptrType$6], [$Bool], false)}]; - ptrType$19.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [ptrType$7], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([ptrType$7], [], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([ptrType$7], [ptrType$7], false)}, {prop: "CompareAndSwap", name: "CompareAndSwap", pkg: "", typ: $funcType([ptrType$7, ptrType$7], [$Bool], false)}]; - ptrType$20.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [ptrType$8], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([ptrType$8], [], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([ptrType$8], [ptrType$8], false)}, {prop: "CompareAndSwap", name: "CompareAndSwap", pkg: "", typ: $funcType([ptrType$8, ptrType$8], [$Bool], false)}]; - ptrType$21.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [ptrType$9], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([ptrType$9], [], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([ptrType$9], [ptrType$9], false)}, {prop: "CompareAndSwap", name: "CompareAndSwap", pkg: "", typ: $funcType([ptrType$9, ptrType$9], [$Bool], false)}]; + ptrType$15.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$emptyInterface], [$emptyInterface], false)}, {prop: "CompareAndSwap", name: "CompareAndSwap", pkg: "", typ: $funcType([$emptyInterface, $emptyInterface], [$Bool], false)}, {prop: "checkNew", name: "checkNew", pkg: "sync/atomic", typ: $funcType([$String, $emptyInterface], [], false)}]; + ptrType$1.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([$Bool], [], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Bool], [$Bool], false)}, {prop: "CompareAndSwap", name: "CompareAndSwap", pkg: "", typ: $funcType([$Bool, $Bool], [$Bool], false)}]; + ptrType$3.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [$Int32], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([$Int32], [], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int32], [$Int32], false)}, {prop: "CompareAndSwap", name: "CompareAndSwap", pkg: "", typ: $funcType([$Int32, $Int32], [$Bool], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([$Int32], [$Int32], false)}]; + ptrType$16.methods = [{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}]; + ptrType$17.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [ptrType$12], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([ptrType$12], [], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([ptrType$12], [ptrType$12], false)}, {prop: "CompareAndSwap", name: "CompareAndSwap", pkg: "", typ: $funcType([ptrType$12, ptrType$12], [$Bool], false)}]; + ptrType$19.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [ptrType$14], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([ptrType$14], [], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([ptrType$14], [ptrType$14], false)}, {prop: "CompareAndSwap", name: "CompareAndSwap", pkg: "", typ: $funcType([ptrType$14, ptrType$14], [$Bool], false)}]; Value.init("sync/atomic", [{prop: "v", name: "v", embedded: false, exported: false, typ: $emptyInterface, tag: ""}]); Bool.init("sync/atomic", [{prop: "_$0", name: "_", embedded: false, exported: false, typ: noCopy, tag: ""}, {prop: "v", name: "v", embedded: false, exported: false, typ: $Uint32, tag: ""}]); Int32.init("sync/atomic", [{prop: "_$0", name: "_", embedded: false, exported: false, typ: noCopy, tag: ""}, {prop: "v", name: "v", embedded: false, exported: false, typ: $Int32, tag: ""}]); noCopy.init("", []); - Pointer[0 /* go/token.File */].init("sync/atomic", [{prop: "v", name: "v", embedded: false, exported: false, typ: ptrType$6, tag: ""}]); - Pointer[5 /* string */].init("sync/atomic", [{prop: "v", name: "v", embedded: false, exported: false, typ: ptrType$7, tag: ""}]); - Pointer[10 /* sync.readOnly */].init("sync/atomic", [{prop: "v", name: "v", embedded: false, exported: false, typ: ptrType$8, tag: ""}]); - Pointer[15 /* any */].init("sync/atomic", [{prop: "v", name: "v", embedded: false, exported: false, typ: ptrType$9, tag: ""}]); + Pointer[0 /* go/token.File */].init("sync/atomic", [{prop: "v", name: "v", embedded: false, exported: false, typ: ptrType$12, tag: ""}]); + Pointer[10 /* any */].init("sync/atomic", [{prop: "v", name: "v", embedded: false, exported: false, typ: ptrType$14, tag: ""}]); }; $init = function() { $pkg.$init = function() {}; @@ -10721,7 +9770,7 @@ $packages["sync/atomic"] = (function() { return $pkg; })(); $packages["sync"] = (function() { - var $pkg = {}, $init, js, race, atomic, RWMutex, rlocker, notifyList, Once, Mutex, Locker, Map, readOnly, entry, Pool, ptrType, ptrType$1, ptrType$2, ptrType$3, ptrType$9, ptrType$10, ptrType$11, chanType, sliceType$1, funcType, ptrType$15, ptrType$16, funcType$1, ptrType$17, mapType, sliceType$2, ptrType$19, funcType$2, expunged, semWaiters, semAwoken, init, runtime_doSpin, fatal, newEntry, runtime_Semacquire, runtime_SemacquireMutex, runtime_SemacquireRWMutexR, runtime_SemacquireRWMutex, runtime_Semrelease, runtime_notifyListCheck, runtime_canSpin, runtime_nanotime, throw$1; + var $pkg = {}, $init, js, race, atomic, RWMutex, rlocker, notifyList, Once, Mutex, Locker, Pool, ptrType, ptrType$1, ptrType$2, ptrType$3, ptrType$11, ptrType$12, ptrType$13, chanType, sliceType$1, funcType, sliceType$2, ptrType$19, funcType$2, expunged, semWaiters, semAwoken, init, runtime_doSpin, fatal, runtime_Semacquire, runtime_SemacquireMutex, runtime_SemacquireRWMutexR, runtime_SemacquireRWMutex, runtime_Semrelease, runtime_notifyListCheck, runtime_canSpin, runtime_nanotime, throw$1, syscall_hasWaitingReaders; js = $packages["github.com/gopherjs/gopherjs/js"]; race = $packages["internal/race"]; atomic = $packages["sync/atomic"]; @@ -10794,38 +9843,6 @@ $packages["sync"] = (function() { this.sema = sema_; }); Locker = $newType(8, $kindInterface, "sync.Locker", true, "sync", true, null); - Map = $newType(0, $kindStruct, "sync.Map", true, "sync", true, function(mu_, read_, dirty_, misses_) { - this.$val = this; - if (arguments.length === 0) { - this.mu = new Mutex.ptr(0, 0); - this.read = new atomic.Pointer[10 /* sync.readOnly */].ptr(ptrType$10.nil); - this.dirty = false; - this.misses = 0; - return; - } - this.mu = mu_; - this.read = read_; - this.dirty = dirty_; - this.misses = misses_; - }); - readOnly = $newType(0, $kindStruct, "sync.readOnly", true, "sync", false, function(m_, amended_) { - this.$val = this; - if (arguments.length === 0) { - this.m = false; - this.amended = false; - return; - } - this.m = m_; - this.amended = amended_; - }); - entry = $newType(0, $kindStruct, "sync.entry", true, "sync", false, function(p_) { - this.$val = this; - if (arguments.length === 0) { - this.p = new atomic.Pointer[15 /* any */].ptr(ptrType.nil); - return; - } - this.p = p_; - }); Pool = $newType(0, $kindStruct, "sync.Pool", true, "sync", true, function(store_, New_) { this.$val = this; if (arguments.length === 0) { @@ -10842,26 +9859,18 @@ $packages["sync"] = (function() { $pkg.Once = Once; $pkg.Mutex = Mutex; $pkg.Locker = Locker; - $pkg.Map = Map; - $pkg.readOnly = readOnly; - $pkg.entry = entry; $pkg.Pool = Pool; $pkg.$finishSetup = function() { ptrType = $ptrType($emptyInterface); - ptrType$1 = $ptrType($Uint32); - ptrType$2 = $ptrType(rlocker); - ptrType$3 = $ptrType(RWMutex); - ptrType$9 = $ptrType($Int32); - ptrType$10 = $ptrType(readOnly); - ptrType$11 = $ptrType(entry); + ptrType$1 = $ptrType(RWMutex); + ptrType$2 = $ptrType($Uint32); + ptrType$3 = $ptrType(rlocker); + ptrType$11 = $ptrType(Once); + ptrType$12 = $ptrType(Mutex); + ptrType$13 = $ptrType($Int32); chanType = $chanType($Bool, false, false); sliceType$1 = $sliceType(chanType); funcType = $funcType([], [], false); - ptrType$15 = $ptrType(Once); - ptrType$16 = $ptrType(Mutex); - funcType$1 = $funcType([$emptyInterface, $emptyInterface], [$Bool], false); - ptrType$17 = $ptrType(Map); - mapType = $mapType($emptyInterface, ptrType$11); sliceType$2 = $sliceType($emptyInterface); ptrType$19 = $ptrType(Pool); funcType$2 = $funcType([], [$emptyInterface], false); @@ -10876,11 +9885,11 @@ $packages["sync"] = (function() { /* */ if (rw.readerCount.Add(1) < 0) { $s = 1; continue; } /* */ $s = 2; continue; /* if (rw.readerCount.Add(1) < 0) { */ case 1: - $r = runtime_SemacquireRWMutexR((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw))), false, 0); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime_SemacquireRWMutexR((rw === ptrType$1.nil && $throwNilPointerError(), (rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$2(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw)))), false, 0); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 2: if (false) { race.Enable(); - race.Acquire(((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw))))); + race.Acquire(((rw === ptrType$1.nil && $throwNilPointerError(), (rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$2(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw)))))); } $s = -1; return; /* */ } return; } var $f = {$blk: RLock, $c: true, $r, rw, $s};return $f; @@ -10903,7 +9912,7 @@ $packages["sync"] = (function() { if (rw.readerCount.CompareAndSwap(c, c + 1 >> 0)) { if (false) { race.Enable(); - race.Acquire(((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw))))); + race.Acquire(((rw === ptrType$1.nil && $throwNilPointerError(), (rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$2(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw)))))); } return true; } @@ -10915,7 +9924,7 @@ $packages["sync"] = (function() { rw = this; if (false) { $unused(rw.w.state); - race.ReleaseMerge(((rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$1(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw))))); + race.ReleaseMerge(((rw === ptrType$1.nil && $throwNilPointerError(), (rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$2(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw)))))); race.Disable(); } r = rw.readerCount.Add(-1); @@ -10943,7 +9952,7 @@ $packages["sync"] = (function() { /* */ if (rw.readerWait.Add(-1) === 0) { $s = 4; continue; } /* */ $s = 5; continue; /* if (rw.readerWait.Add(-1) === 0) { */ case 4: - $r = runtime_Semrelease((rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$1(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw))), false, 1); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime_Semrelease((rw === ptrType$1.nil && $throwNilPointerError(), (rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$2(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw)))), false, 1); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 5: $s = -1; return; /* */ } return; } var $f = {$blk: rUnlockSlow, $c: true, $r, r, rw, $s};return $f; @@ -10961,12 +9970,12 @@ $packages["sync"] = (function() { /* */ if (!((r === 0)) && !((rw.readerWait.Add(r) === 0))) { $s = 2; continue; } /* */ $s = 3; continue; /* if (!((r === 0)) && !((rw.readerWait.Add(r) === 0))) { */ case 2: - $r = runtime_SemacquireRWMutex((rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$1(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw))), false, 0); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime_SemacquireRWMutex((rw === ptrType$1.nil && $throwNilPointerError(), (rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$2(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw)))), false, 0); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 3: if (false) { race.Enable(); - race.Acquire(((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw))))); - race.Acquire(((rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$1(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw))))); + race.Acquire(((rw === ptrType$1.nil && $throwNilPointerError(), (rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$2(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw)))))); + race.Acquire(((rw === ptrType$1.nil && $throwNilPointerError(), (rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$2(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw)))))); } $s = -1; return; /* */ } return; } var $f = {$blk: Lock, $c: true, $r, r, rw, $s};return $f; @@ -10996,8 +10005,8 @@ $packages["sync"] = (function() { /* } */ case 2: if (false) { race.Enable(); - race.Acquire(((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw))))); - race.Acquire(((rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$1(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw))))); + race.Acquire(((rw === ptrType$1.nil && $throwNilPointerError(), (rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$2(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw)))))); + race.Acquire(((rw === ptrType$1.nil && $throwNilPointerError(), (rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$2(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw)))))); } $s = -1; return true; /* */ } return; } var $f = {$blk: TryLock, $c: true, $r, rw, $s};return $f; @@ -11008,7 +10017,7 @@ $packages["sync"] = (function() { rw = this; if (false) { $unused(rw.w.state); - race.Release(((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw))))); + race.Release(((rw === ptrType$1.nil && $throwNilPointerError(), (rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$2(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw)))))); race.Disable(); } r = rw.readerCount.Add(1073741824); @@ -11021,7 +10030,7 @@ $packages["sync"] = (function() { i = 0; /* while (true) { */ case 4: /* if (!(i < ((r >> 0)))) { break; } */ if(!(i < ((r >> 0)))) { $s = 5; continue; } - $r = runtime_Semrelease((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw))), false, 0); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime_Semrelease((rw === ptrType$1.nil && $throwNilPointerError(), (rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$2(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw)))), false, 0); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } i = i + (1) >> 0; $s = 4; continue; case 5: @@ -11035,13 +10044,13 @@ $packages["sync"] = (function() { $ptrType(RWMutex).prototype.RLocker = function RLocker() { var rw; rw = this; - return ($pointerOfStructConversion(rw, ptrType$2)); + return ($pointerOfStructConversion(rw, ptrType$3)); }; $ptrType(rlocker).prototype.Lock = function Lock$1() { var {r, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: r = this; - $r = ($pointerOfStructConversion(r, ptrType$3)).RLock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = ($pointerOfStructConversion(r, ptrType$1)).RLock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* */ } return; } var $f = {$blk: Lock$1, $c: true, $r, r, $s};return $f; }; @@ -11049,7 +10058,7 @@ $packages["sync"] = (function() { var {r, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: r = this; - $r = ($pointerOfStructConversion(r, ptrType$3)).RUnlock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = ($pointerOfStructConversion(r, ptrType$1)).RUnlock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* */ } return; } var $f = {$blk: Unlock$1, $c: true, $r, r, $s};return $f; }; @@ -11065,9 +10074,9 @@ $packages["sync"] = (function() { var {f, o, $s, $r, $c} = $restore(this, {f}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: o = this; - /* */ if (atomic.LoadUint32((o.$ptr_done || (o.$ptr_done = new ptrType$1(function() { return this.$target.done; }, function($v) { this.$target.done = $v; }, o)))) === 0) { $s = 1; continue; } + /* */ if (atomic.LoadUint32((o === ptrType$11.nil && $throwNilPointerError(), (o.$ptr_done || (o.$ptr_done = new ptrType$2(function() { return this.$target.done; }, function($v) { this.$target.done = $v; }, o))))) === 0) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (atomic.LoadUint32((o.$ptr_done || (o.$ptr_done = new ptrType$1(function() { return this.$target.done; }, function($v) { this.$target.done = $v; }, o)))) === 0) { */ case 1: + /* if (atomic.LoadUint32((o === ptrType$11.nil && $throwNilPointerError(), (o.$ptr_done || (o.$ptr_done = new ptrType$2(function() { return this.$target.done; }, function($v) { this.$target.done = $v; }, o))))) === 0) { */ case 1: $r = o.doSlow(f); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 2: $s = -1; return; @@ -11082,7 +10091,7 @@ $packages["sync"] = (function() { /* */ if (o.done === 0) { $s = 2; continue; } /* */ $s = 3; continue; /* if (o.done === 0) { */ case 2: - $deferred.push([atomic.StoreUint32, [(o.$ptr_done || (o.$ptr_done = new ptrType$1(function() { return this.$target.done; }, function($v) { this.$target.done = $v; }, o))), 1]]); + $deferred.push([atomic.StoreUint32, [(o === ptrType$11.nil && $throwNilPointerError(), (o.$ptr_done || (o.$ptr_done = new ptrType$2(function() { return this.$target.done; }, function($v) { this.$target.done = $v; }, o)))), 1]]); $r = f(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 3: $s = -1; return; @@ -11095,7 +10104,7 @@ $packages["sync"] = (function() { var {m, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: m = this; - if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$9(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), 0, 1)) { + if (atomic.CompareAndSwapInt32((m === ptrType$12.nil && $throwNilPointerError(), (m.$ptr_state || (m.$ptr_state = new ptrType$13(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m)))), 0, 1)) { if (false) { race.Acquire((m)); } @@ -11112,7 +10121,7 @@ $packages["sync"] = (function() { if (!(((old & 5) === 0))) { return false; } - if (!atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$9(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, old | 1)) { + if (!atomic.CompareAndSwapInt32((m === ptrType$12.nil && $throwNilPointerError(), (m.$ptr_state || (m.$ptr_state = new ptrType$13(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m)))), old, old | 1)) { return false; } if (false) { @@ -11133,7 +10142,7 @@ $packages["sync"] = (function() { /* */ if (((old & 5) === 1) && runtime_canSpin(iter)) { $s = 3; continue; } /* */ $s = 4; continue; /* if (((old & 5) === 1) && runtime_canSpin(iter)) { */ case 3: - if (!awoke && ((old & 2) === 0) && !(((old >> 3 >> 0) === 0)) && atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$9(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, old | 2)) { + if (!awoke && ((old & 2) === 0) && !(((old >> 3 >> 0) === 0)) && atomic.CompareAndSwapInt32((m === ptrType$12.nil && $throwNilPointerError(), (m.$ptr_state || (m.$ptr_state = new ptrType$13(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m)))), old, old | 2)) { awoke = true; } $r = runtime_doSpin(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } @@ -11157,9 +10166,9 @@ $packages["sync"] = (function() { } new$1 = (new$1 & ~(2)) >> 0; } - /* */ if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$9(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, new$1)) { $s = 6; continue; } + /* */ if (atomic.CompareAndSwapInt32((m === ptrType$12.nil && $throwNilPointerError(), (m.$ptr_state || (m.$ptr_state = new ptrType$13(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m)))), old, new$1)) { $s = 6; continue; } /* */ $s = 7; continue; - /* if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$9(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, new$1)) { */ case 6: + /* if (atomic.CompareAndSwapInt32((m === ptrType$12.nil && $throwNilPointerError(), (m.$ptr_state || (m.$ptr_state = new ptrType$13(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m)))), old, new$1)) { */ case 6: if ((old & 5) === 0) { /* break; */ $s = 2; continue; } @@ -11170,7 +10179,7 @@ $packages["sync"] = (function() { _r = runtime_nanotime(); /* */ $s = 11; case 11: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } waitStartTime = _r; /* } */ case 10: - $r = runtime_SemacquireMutex((m.$ptr_sema || (m.$ptr_sema = new ptrType$1(function() { return this.$target.sema; }, function($v) { this.$target.sema = $v; }, m))), queueLifo, 1); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime_SemacquireMutex((m === ptrType$12.nil && $throwNilPointerError(), (m.$ptr_sema || (m.$ptr_sema = new ptrType$2(function() { return this.$target.sema; }, function($v) { this.$target.sema = $v; }, m)))), queueLifo, 1); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } if (starving) { _v = true; $s = 13; continue s; } _r$1 = runtime_nanotime(); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _v = (x = (x$1 = _r$1, new $Int64(x$1.$high - waitStartTime.$high, x$1.$low - waitStartTime.$low)), (x.$high > 0 || (x.$high === 0 && x.$low > 1000000))); case 13: @@ -11184,7 +10193,7 @@ $packages["sync"] = (function() { if (!starving || ((old >> 3 >> 0) === 1)) { delta = delta - (4) >> 0; } - atomic.AddInt32((m.$ptr_state || (m.$ptr_state = new ptrType$9(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), delta); + atomic.AddInt32((m === ptrType$12.nil && $throwNilPointerError(), (m.$ptr_state || (m.$ptr_state = new ptrType$13(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m)))), delta); /* break; */ $s = 2; continue; } awoke = true; @@ -11209,7 +10218,7 @@ $packages["sync"] = (function() { $unused(m.state); race.Release((m)); } - new$1 = atomic.AddInt32((m.$ptr_state || (m.$ptr_state = new ptrType$9(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), -1); + new$1 = atomic.AddInt32((m === ptrType$12.nil && $throwNilPointerError(), (m.$ptr_state || (m.$ptr_state = new ptrType$13(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m)))), -1); /* */ if (!((new$1 === 0))) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!((new$1 === 0))) { */ case 1: @@ -11236,10 +10245,10 @@ $packages["sync"] = (function() { $s = -1; return; } new$1 = ((old - 8 >> 0)) | 2; - /* */ if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$9(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, new$1)) { $s = 9; continue; } + /* */ if (atomic.CompareAndSwapInt32((m === ptrType$12.nil && $throwNilPointerError(), (m.$ptr_state || (m.$ptr_state = new ptrType$13(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m)))), old, new$1)) { $s = 9; continue; } /* */ $s = 10; continue; - /* if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$9(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, new$1)) { */ case 9: - $r = runtime_Semrelease((m.$ptr_sema || (m.$ptr_sema = new ptrType$1(function() { return this.$target.sema; }, function($v) { this.$target.sema = $v; }, m))), false, 1); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* if (atomic.CompareAndSwapInt32((m === ptrType$12.nil && $throwNilPointerError(), (m.$ptr_state || (m.$ptr_state = new ptrType$13(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m)))), old, new$1)) { */ case 9: + $r = runtime_Semrelease((m === ptrType$12.nil && $throwNilPointerError(), (m.$ptr_sema || (m.$ptr_sema = new ptrType$2(function() { return this.$target.sema; }, function($v) { this.$target.sema = $v; }, m)))), false, 1); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* } */ case 10: old = m.state; @@ -11247,582 +10256,11 @@ $packages["sync"] = (function() { case 8: $s = 6; continue; /* } else { */ case 5: - $r = runtime_Semrelease((m.$ptr_sema || (m.$ptr_sema = new ptrType$1(function() { return this.$target.sema; }, function($v) { this.$target.sema = $v; }, m))), true, 1); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime_Semrelease((m === ptrType$12.nil && $throwNilPointerError(), (m.$ptr_sema || (m.$ptr_sema = new ptrType$2(function() { return this.$target.sema; }, function($v) { this.$target.sema = $v; }, m)))), true, 1); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 6: $s = -1; return; /* */ } return; } var $f = {$blk: unlockSlow, $c: true, $r, m, new$1, old, $s};return $f; }; - newEntry = function newEntry$1(i) { - var e, i, i$24ptr; - e = new entry.ptr(new atomic.Pointer[15 /* any */].ptr(ptrType.nil)); - e.p.Store((i$24ptr || (i$24ptr = new ptrType(function() { return i; }, function($v) { i = $v; })))); - return e; - }; - $ptrType(Map).prototype.loadReadOnly = function loadReadOnly() { - var m, p; - m = this; - p = m.read.Load(); - if (!(p === ptrType$10.nil)) { - return p; - } - return new readOnly.ptr(false, false); - }; - $ptrType(Map).prototype.Load = function Load(key) { - var {_entry, _entry$1, _entry$2, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, e, key, m, ok, read, value, $s, $r, $c} = $restore(this, {key}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - value = $ifaceNil; - ok = false; - m = this; - read = $clone(m.loadReadOnly(), readOnly); - _tuple = (_entry = $mapIndex(read.m,$emptyInterface.keyFor(key)), _entry !== undefined ? [_entry.v, true] : [ptrType$11.nil, false]); - e = _tuple[0]; - ok = _tuple[1]; - /* */ if (!ok && read.amended) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!ok && read.amended) { */ case 1: - $r = m.mu.Lock(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - readOnly.copy(read, m.loadReadOnly()); - _tuple$1 = (_entry$1 = $mapIndex(read.m,$emptyInterface.keyFor(key)), _entry$1 !== undefined ? [_entry$1.v, true] : [ptrType$11.nil, false]); - e = _tuple$1[0]; - ok = _tuple$1[1]; - if (!ok && read.amended) { - _tuple$2 = (_entry$2 = $mapIndex(m.dirty,$emptyInterface.keyFor(key)), _entry$2 !== undefined ? [_entry$2.v, true] : [ptrType$11.nil, false]); - e = _tuple$2[0]; - ok = _tuple$2[1]; - m.missLocked(); - } - $r = m.mu.Unlock(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - if (!ok) { - _tmp = $ifaceNil; - _tmp$1 = false; - value = _tmp; - ok = _tmp$1; - $s = -1; return [value, ok]; - } - _tuple$3 = e.load(); - value = _tuple$3[0]; - ok = _tuple$3[1]; - $s = -1; return [value, ok]; - /* */ } return; } var $f = {$blk: Load, $c: true, $r, _entry, _entry$1, _entry$2, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, e, key, m, ok, read, value, $s};return $f; - }; - $ptrType(entry).prototype.load = function load() { - var _tmp, _tmp$1, _tmp$2, _tmp$3, e, ok, p, value; - value = $ifaceNil; - ok = false; - e = this; - p = e.p.Load(); - if (p === ptrType.nil || p === expunged) { - _tmp = $ifaceNil; - _tmp$1 = false; - value = _tmp; - ok = _tmp$1; - return [value, ok]; - } - _tmp$2 = p.$get(); - _tmp$3 = true; - value = _tmp$2; - ok = _tmp$3; - return [value, ok]; - }; - $ptrType(Map).prototype.Store = function Store(key, value) { - var {_r, _tuple, key, m, value, $s, $r, $c} = $restore(this, {key, value}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - m = this; - _r = m.Swap(key, value); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - $s = -1; return; - /* */ } return; } var $f = {$blk: Store, $c: true, $r, _r, _tuple, key, m, value, $s};return $f; - }; - $ptrType(entry).prototype.tryCompareAndSwap = function tryCompareAndSwap(old, new$1) { - var e, nc, nc$24ptr, new$1, old, p; - e = this; - p = e.p.Load(); - if (p === ptrType.nil || p === expunged || !($interfaceIsEqual(p.$get(), old))) { - return false; - } - nc = new$1; - while (true) { - if (e.p.CompareAndSwap(p, (nc$24ptr || (nc$24ptr = new ptrType(function() { return nc; }, function($v) { nc = $v; }))))) { - return true; - } - p = e.p.Load(); - if (p === ptrType.nil || p === expunged || !($interfaceIsEqual(p.$get(), old))) { - return false; - } - } - }; - $ptrType(entry).prototype.unexpungeLocked = function unexpungeLocked() { - var e, wasExpunged; - wasExpunged = false; - e = this; - wasExpunged = e.p.CompareAndSwap(expunged, ptrType.nil); - return wasExpunged; - }; - $ptrType(entry).prototype.swapLocked = function swapLocked(i) { - var e, i; - e = this; - return e.p.Swap(i); - }; - $ptrType(Map).prototype.LoadOrStore = function LoadOrStore(key, value) { - var {_entry, _entry$1, _entry$2, _key, _key$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, actual, actual$1, e, e$1, e$2, key, loaded, loaded$1, m, ok, ok$1, ok$2, ok$3, read, value, $s, $r, $c} = $restore(this, {key, value}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - actual = $ifaceNil; - loaded = false; - m = this; - read = $clone(m.loadReadOnly(), readOnly); - _tuple = (_entry = $mapIndex(read.m,$emptyInterface.keyFor(key)), _entry !== undefined ? [_entry.v, true] : [ptrType$11.nil, false]); - e = _tuple[0]; - ok = _tuple[1]; - if (ok) { - _tuple$1 = e.tryLoadOrStore(value); - actual$1 = _tuple$1[0]; - loaded$1 = _tuple$1[1]; - ok$1 = _tuple$1[2]; - if (ok$1) { - _tmp = actual$1; - _tmp$1 = loaded$1; - actual = _tmp; - loaded = _tmp$1; - $s = -1; return [actual, loaded]; - } - } - $r = m.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - readOnly.copy(read, m.loadReadOnly()); - _tuple$2 = (_entry$1 = $mapIndex(read.m,$emptyInterface.keyFor(key)), _entry$1 !== undefined ? [_entry$1.v, true] : [ptrType$11.nil, false]); - e$1 = _tuple$2[0]; - ok$2 = _tuple$2[1]; - if (ok$2) { - if (e$1.unexpungeLocked()) { - _key = key; (m.dirty || $throwRuntimeError("assignment to entry in nil map")).set($emptyInterface.keyFor(_key), { k: _key, v: e$1 }); - } - _tuple$3 = e$1.tryLoadOrStore(value); - actual = _tuple$3[0]; - loaded = _tuple$3[1]; - } else { - _tuple$4 = (_entry$2 = $mapIndex(m.dirty,$emptyInterface.keyFor(key)), _entry$2 !== undefined ? [_entry$2.v, true] : [ptrType$11.nil, false]); - e$2 = _tuple$4[0]; - ok$3 = _tuple$4[1]; - if (ok$3) { - _tuple$5 = e$2.tryLoadOrStore(value); - actual = _tuple$5[0]; - loaded = _tuple$5[1]; - m.missLocked(); - } else { - if (!read.amended) { - m.dirtyLocked(); - m.read.Store(new readOnly.ptr(read.m, true)); - } - _key$1 = key; (m.dirty || $throwRuntimeError("assignment to entry in nil map")).set($emptyInterface.keyFor(_key$1), { k: _key$1, v: newEntry(value) }); - _tmp$2 = value; - _tmp$3 = false; - actual = _tmp$2; - loaded = _tmp$3; - } - } - $r = m.mu.Unlock(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _tmp$4 = actual; - _tmp$5 = loaded; - actual = _tmp$4; - loaded = _tmp$5; - $s = -1; return [actual, loaded]; - /* */ } return; } var $f = {$blk: LoadOrStore, $c: true, $r, _entry, _entry$1, _entry$2, _key, _key$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, actual, actual$1, e, e$1, e$2, key, loaded, loaded$1, m, ok, ok$1, ok$2, ok$3, read, value, $s};return $f; - }; - $ptrType(entry).prototype.tryLoadOrStore = function tryLoadOrStore(i) { - var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, actual, e, i, ic, ic$24ptr, loaded, ok, p; - actual = $ifaceNil; - loaded = false; - ok = false; - e = this; - p = e.p.Load(); - if (p === expunged) { - _tmp = $ifaceNil; - _tmp$1 = false; - _tmp$2 = false; - actual = _tmp; - loaded = _tmp$1; - ok = _tmp$2; - return [actual, loaded, ok]; - } - if (!(p === ptrType.nil)) { - _tmp$3 = p.$get(); - _tmp$4 = true; - _tmp$5 = true; - actual = _tmp$3; - loaded = _tmp$4; - ok = _tmp$5; - return [actual, loaded, ok]; - } - ic = i; - while (true) { - if (e.p.CompareAndSwap(ptrType.nil, (ic$24ptr || (ic$24ptr = new ptrType(function() { return ic; }, function($v) { ic = $v; }))))) { - _tmp$6 = i; - _tmp$7 = false; - _tmp$8 = true; - actual = _tmp$6; - loaded = _tmp$7; - ok = _tmp$8; - return [actual, loaded, ok]; - } - p = e.p.Load(); - if (p === expunged) { - _tmp$9 = $ifaceNil; - _tmp$10 = false; - _tmp$11 = false; - actual = _tmp$9; - loaded = _tmp$10; - ok = _tmp$11; - return [actual, loaded, ok]; - } - if (!(p === ptrType.nil)) { - _tmp$12 = p.$get(); - _tmp$13 = true; - _tmp$14 = true; - actual = _tmp$12; - loaded = _tmp$13; - ok = _tmp$14; - return [actual, loaded, ok]; - } - } - }; - $ptrType(Map).prototype.LoadAndDelete = function LoadAndDelete(key) { - var {_entry, _entry$1, _entry$2, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, e, key, loaded, m, ok, read, value, $s, $r, $c} = $restore(this, {key}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - value = $ifaceNil; - loaded = false; - m = this; - read = $clone(m.loadReadOnly(), readOnly); - _tuple = (_entry = $mapIndex(read.m,$emptyInterface.keyFor(key)), _entry !== undefined ? [_entry.v, true] : [ptrType$11.nil, false]); - e = _tuple[0]; - ok = _tuple[1]; - /* */ if (!ok && read.amended) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!ok && read.amended) { */ case 1: - $r = m.mu.Lock(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - readOnly.copy(read, m.loadReadOnly()); - _tuple$1 = (_entry$1 = $mapIndex(read.m,$emptyInterface.keyFor(key)), _entry$1 !== undefined ? [_entry$1.v, true] : [ptrType$11.nil, false]); - e = _tuple$1[0]; - ok = _tuple$1[1]; - if (!ok && read.amended) { - _tuple$2 = (_entry$2 = $mapIndex(m.dirty,$emptyInterface.keyFor(key)), _entry$2 !== undefined ? [_entry$2.v, true] : [ptrType$11.nil, false]); - e = _tuple$2[0]; - ok = _tuple$2[1]; - $mapDelete(m.dirty, $emptyInterface.keyFor(key)); - m.missLocked(); - } - $r = m.mu.Unlock(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - if (ok) { - _tuple$3 = e.delete$(); - value = _tuple$3[0]; - loaded = _tuple$3[1]; - $s = -1; return [value, loaded]; - } - _tmp = $ifaceNil; - _tmp$1 = false; - value = _tmp; - loaded = _tmp$1; - $s = -1; return [value, loaded]; - /* */ } return; } var $f = {$blk: LoadAndDelete, $c: true, $r, _entry, _entry$1, _entry$2, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, e, key, loaded, m, ok, read, value, $s};return $f; - }; - $ptrType(Map).prototype.Delete = function Delete(key) { - var {_r, key, m, $s, $r, $c} = $restore(this, {key}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - m = this; - _r = m.LoadAndDelete(key); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r; - $s = -1; return; - /* */ } return; } var $f = {$blk: Delete, $c: true, $r, _r, key, m, $s};return $f; - }; - $ptrType(entry).prototype.delete$ = function delete$1() { - var _tmp, _tmp$1, _tmp$2, _tmp$3, e, ok, p, value; - value = $ifaceNil; - ok = false; - e = this; - while (true) { - p = e.p.Load(); - if (p === ptrType.nil || p === expunged) { - _tmp = $ifaceNil; - _tmp$1 = false; - value = _tmp; - ok = _tmp$1; - return [value, ok]; - } - if (e.p.CompareAndSwap(p, ptrType.nil)) { - _tmp$2 = p.$get(); - _tmp$3 = true; - value = _tmp$2; - ok = _tmp$3; - return [value, ok]; - } - } - }; - $ptrType(entry).prototype.trySwap = function trySwap(i) { - var e, i, p; - e = this; - while (true) { - p = e.p.Load(); - if (p === expunged) { - return [ptrType.nil, false]; - } - if (e.p.CompareAndSwap(p, i)) { - return [p, true]; - } - } - }; - $ptrType(Map).prototype.Swap = function Swap(key, value) { - var {_entry, _entry$1, _entry$2, _key, _key$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$2, _tuple$3, e, e$1, e$2, key, loaded, m, ok, ok$1, ok$2, ok$3, previous, read, v, v$1, v$2, value, $s, $r, $c} = $restore(this, {key, value}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - value = [value]; - previous = $ifaceNil; - loaded = false; - m = this; - read = $clone(m.loadReadOnly(), readOnly); - _tuple = (_entry = $mapIndex(read.m,$emptyInterface.keyFor(key)), _entry !== undefined ? [_entry.v, true] : [ptrType$11.nil, false]); - e = _tuple[0]; - ok = _tuple[1]; - if (ok) { - _tuple$1 = e.trySwap((value.$ptr || (value.$ptr = new ptrType(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, value)))); - v = _tuple$1[0]; - ok$1 = _tuple$1[1]; - if (ok$1) { - if (v === ptrType.nil) { - _tmp = $ifaceNil; - _tmp$1 = false; - previous = _tmp; - loaded = _tmp$1; - $s = -1; return [previous, loaded]; - } - _tmp$2 = v.$get(); - _tmp$3 = true; - previous = _tmp$2; - loaded = _tmp$3; - $s = -1; return [previous, loaded]; - } - } - $r = m.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - readOnly.copy(read, m.loadReadOnly()); - _tuple$2 = (_entry$1 = $mapIndex(read.m,$emptyInterface.keyFor(key)), _entry$1 !== undefined ? [_entry$1.v, true] : [ptrType$11.nil, false]); - e$1 = _tuple$2[0]; - ok$2 = _tuple$2[1]; - if (ok$2) { - if (e$1.unexpungeLocked()) { - _key = key; (m.dirty || $throwRuntimeError("assignment to entry in nil map")).set($emptyInterface.keyFor(_key), { k: _key, v: e$1 }); - } - v$1 = e$1.swapLocked((value.$ptr || (value.$ptr = new ptrType(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, value)))); - if (!(v$1 === ptrType.nil)) { - loaded = true; - previous = v$1.$get(); - } - } else { - _tuple$3 = (_entry$2 = $mapIndex(m.dirty,$emptyInterface.keyFor(key)), _entry$2 !== undefined ? [_entry$2.v, true] : [ptrType$11.nil, false]); - e$2 = _tuple$3[0]; - ok$3 = _tuple$3[1]; - if (ok$3) { - v$2 = e$2.swapLocked((value.$ptr || (value.$ptr = new ptrType(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, value)))); - if (!(v$2 === ptrType.nil)) { - loaded = true; - previous = v$2.$get(); - } - } else { - if (!read.amended) { - m.dirtyLocked(); - m.read.Store(new readOnly.ptr(read.m, true)); - } - _key$1 = key; (m.dirty || $throwRuntimeError("assignment to entry in nil map")).set($emptyInterface.keyFor(_key$1), { k: _key$1, v: newEntry(value[0]) }); - } - } - $r = m.mu.Unlock(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _tmp$4 = previous; - _tmp$5 = loaded; - previous = _tmp$4; - loaded = _tmp$5; - $s = -1; return [previous, loaded]; - /* */ } return; } var $f = {$blk: Swap, $c: true, $r, _entry, _entry$1, _entry$2, _key, _key$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$2, _tuple$3, e, e$1, e$2, key, loaded, m, ok, ok$1, ok$2, ok$3, previous, read, v, v$1, v$2, value, $s};return $f; - }; - $ptrType(Map).prototype.CompareAndSwap = function CompareAndSwap(key, old, new$1) { - var {$24r, _entry, _entry$1, _entry$2, _tuple, _tuple$1, _tuple$2, e, e$1, e$2, key, m, new$1, ok, ok$1, ok$2, old, read, swapped, $s, $deferred, $r, $c} = $restore(this, {key, old, new$1}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - m = this; - read = $clone(m.loadReadOnly(), readOnly); - _tuple = (_entry = $mapIndex(read.m,$emptyInterface.keyFor(key)), _entry !== undefined ? [_entry.v, true] : [ptrType$11.nil, false]); - e = _tuple[0]; - ok = _tuple[1]; - if (ok) { - $s = -1; return e.tryCompareAndSwap(old, new$1); - } else if (!read.amended) { - $s = -1; return false; - } - $r = m.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(m.mu, "Unlock"), []]); - readOnly.copy(read, m.loadReadOnly()); - swapped = false; - _tuple$1 = (_entry$1 = $mapIndex(read.m,$emptyInterface.keyFor(key)), _entry$1 !== undefined ? [_entry$1.v, true] : [ptrType$11.nil, false]); - e$1 = _tuple$1[0]; - ok$1 = _tuple$1[1]; - if (ok$1) { - swapped = e$1.tryCompareAndSwap(old, new$1); - } else { - _tuple$2 = (_entry$2 = $mapIndex(m.dirty,$emptyInterface.keyFor(key)), _entry$2 !== undefined ? [_entry$2.v, true] : [ptrType$11.nil, false]); - e$2 = _tuple$2[0]; - ok$2 = _tuple$2[1]; - if (ok$2) { - swapped = e$2.tryCompareAndSwap(old, new$1); - m.missLocked(); - } - } - $24r = swapped; - $s = 2; case 2: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return false; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: CompareAndSwap, $c: true, $r, $24r, _entry, _entry$1, _entry$2, _tuple, _tuple$1, _tuple$2, e, e$1, e$2, key, m, new$1, ok, ok$1, ok$2, old, read, swapped, $s, $deferred};return $f; } } - }; - $ptrType(Map).prototype.CompareAndDelete = function CompareAndDelete(key, old) { - var {_entry, _entry$1, _entry$2, _tuple, _tuple$1, _tuple$2, deleted, e, key, m, ok, old, p, read, $s, $r, $c} = $restore(this, {key, old}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - deleted = false; - m = this; - read = $clone(m.loadReadOnly(), readOnly); - _tuple = (_entry = $mapIndex(read.m,$emptyInterface.keyFor(key)), _entry !== undefined ? [_entry.v, true] : [ptrType$11.nil, false]); - e = _tuple[0]; - ok = _tuple[1]; - /* */ if (!ok && read.amended) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!ok && read.amended) { */ case 1: - $r = m.mu.Lock(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - readOnly.copy(read, m.loadReadOnly()); - _tuple$1 = (_entry$1 = $mapIndex(read.m,$emptyInterface.keyFor(key)), _entry$1 !== undefined ? [_entry$1.v, true] : [ptrType$11.nil, false]); - e = _tuple$1[0]; - ok = _tuple$1[1]; - if (!ok && read.amended) { - _tuple$2 = (_entry$2 = $mapIndex(m.dirty,$emptyInterface.keyFor(key)), _entry$2 !== undefined ? [_entry$2.v, true] : [ptrType$11.nil, false]); - e = _tuple$2[0]; - ok = _tuple$2[1]; - m.missLocked(); - } - $r = m.mu.Unlock(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - while (true) { - if (!(ok)) { break; } - p = e.p.Load(); - if (p === ptrType.nil || p === expunged || !($interfaceIsEqual(p.$get(), old))) { - deleted = false; - $s = -1; return deleted; - } - if (e.p.CompareAndSwap(p, ptrType.nil)) { - deleted = true; - $s = -1; return deleted; - } - } - deleted = false; - $s = -1; return deleted; - /* */ } return; } var $f = {$blk: CompareAndDelete, $c: true, $r, _entry, _entry$1, _entry$2, _tuple, _tuple$1, _tuple$2, deleted, e, key, m, ok, old, p, read, $s};return $f; - }; - $ptrType(Map).prototype.Range = function Range(f) { - var {_entry, _i, _key, _keys, _r, _ref, _size, _tuple, e, f, k, m, ok, read, v, $s, $r, $c} = $restore(this, {f}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - read = [read]; - m = this; - read[0] = $clone(m.loadReadOnly(), readOnly); - /* */ if (read[0].amended) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (read[0].amended) { */ case 1: - $r = m.mu.Lock(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - readOnly.copy(read[0], m.loadReadOnly()); - if (read[0].amended) { - readOnly.copy(read[0], new readOnly.ptr(m.dirty, false)); - m.read.Store(read[0]); - m.dirty = false; - m.misses = 0; - } - $r = m.mu.Unlock(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - _ref = read[0].m; - _i = 0; - _keys = _ref ? _ref.keys() : undefined; - _size = _ref ? _ref.size : 0; - /* while (true) { */ case 5: - /* if (!(_i < _size)) { break; } */ if(!(_i < _size)) { $s = 6; continue; } - _key = _keys.next().value; - _entry = _ref.get(_key); - if (_entry === undefined) { - _i++; - /* continue; */ $s = 5; continue; - } - k = _entry.k; - e = _entry.v; - _tuple = e.load(); - v = _tuple[0]; - ok = _tuple[1]; - if (!ok) { - _i++; - /* continue; */ $s = 5; continue; - } - _r = f(k, v); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - /* */ if (!_r) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (!_r) { */ case 7: - /* break; */ $s = 6; continue; - /* } */ case 8: - _i++; - $s = 5; continue; - case 6: - $s = -1; return; - /* */ } return; } var $f = {$blk: Range, $c: true, $r, _entry, _i, _key, _keys, _r, _ref, _size, _tuple, e, f, k, m, ok, read, v, $s};return $f; - }; - $ptrType(Map).prototype.missLocked = function missLocked() { - var m; - m = this; - m.misses = m.misses + (1) >> 0; - if (m.misses < (m.dirty ? m.dirty.size : 0)) { - return; - } - m.read.Store(new readOnly.ptr(m.dirty, false)); - m.dirty = false; - m.misses = 0; - }; - $ptrType(Map).prototype.dirtyLocked = function dirtyLocked() { - var _entry, _i, _key, _key$1, _keys, _ref, _size, e, k, m, read, x; - m = this; - if (!(m.dirty === false)) { - return; - } - read = $clone(m.loadReadOnly(), readOnly); - m.dirty = (x = (read.m ? read.m.size : 0), ((x < 0 || x > 2147483647) ? $throwRuntimeError("makemap: size out of range") : new $global.Map())); - _ref = read.m; - _i = 0; - _keys = _ref ? _ref.keys() : undefined; - _size = _ref ? _ref.size : 0; - while (true) { - if (!(_i < _size)) { break; } - _key = _keys.next().value; - _entry = _ref.get(_key); - if (_entry === undefined) { - _i++; - continue; - } - k = _entry.k; - e = _entry.v; - if (!e.tryExpungeLocked()) { - _key$1 = k; (m.dirty || $throwRuntimeError("assignment to entry in nil map")).set($emptyInterface.keyFor(_key$1), { k: _key$1, v: e }); - } - _i++; - } - }; - $ptrType(entry).prototype.tryExpungeLocked = function tryExpungeLocked() { - var e, isExpunged, p; - isExpunged = false; - e = this; - p = e.p.Load(); - while (true) { - if (!(p === ptrType.nil)) { break; } - if (e.p.CompareAndSwap(ptrType.nil, expunged)) { - isExpunged = true; - return isExpunged; - } - p = e.p.Load(); - } - isExpunged = p === expunged; - return isExpunged; - }; runtime_Semacquire = function runtime_Semacquire$1(s) { var {s, $s, $r, $c} = $restore(this, {s}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: @@ -11833,20 +10271,20 @@ $packages["sync"] = (function() { runtime_SemacquireMutex = function runtime_SemacquireMutex$1(s, lifo, skipframes) { var {_entry, _entry$1, _entry$2, _entry$3, _entry$4, _key, _key$1, _key$2, _r, ch, lifo, s, skipframes, $s, $r, $c} = $restore(this, {s, lifo, skipframes}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - /* */ if (((s.$get() - (_entry = $mapIndex(semAwoken,ptrType$1.keyFor(s)), _entry !== undefined ? _entry.v : 0) >>> 0)) === 0) { $s = 1; continue; } + /* */ if (((s.$get() - (_entry = $mapIndex(semAwoken,ptrType$2.keyFor(s)), _entry !== undefined ? _entry.v : 0) >>> 0)) === 0) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (((s.$get() - (_entry = $mapIndex(semAwoken,ptrType$1.keyFor(s)), _entry !== undefined ? _entry.v : 0) >>> 0)) === 0) { */ case 1: + /* if (((s.$get() - (_entry = $mapIndex(semAwoken,ptrType$2.keyFor(s)), _entry !== undefined ? _entry.v : 0) >>> 0)) === 0) { */ case 1: ch = new $Chan($Bool, 0); if (lifo) { - _key = s; (semWaiters || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$1.keyFor(_key), { k: _key, v: $appendSlice(new sliceType$1([ch]), (_entry$1 = $mapIndex(semWaiters,ptrType$1.keyFor(s)), _entry$1 !== undefined ? _entry$1.v : sliceType$1.nil)) }); + _key = s; (semWaiters || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$2.keyFor(_key), { k: _key, v: $appendSlice(new sliceType$1([ch]), (_entry$1 = $mapIndex(semWaiters,ptrType$2.keyFor(s)), _entry$1 !== undefined ? _entry$1.v : sliceType$1.nil)) }); } else { - _key$1 = s; (semWaiters || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$1.keyFor(_key$1), { k: _key$1, v: $append((_entry$2 = $mapIndex(semWaiters,ptrType$1.keyFor(s)), _entry$2 !== undefined ? _entry$2.v : sliceType$1.nil), ch) }); + _key$1 = s; (semWaiters || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$2.keyFor(_key$1), { k: _key$1, v: $append((_entry$2 = $mapIndex(semWaiters,ptrType$2.keyFor(s)), _entry$2 !== undefined ? _entry$2.v : sliceType$1.nil), ch) }); } _r = $recv(ch); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _r[0]; - _key$2 = s; (semAwoken || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$1.keyFor(_key$2), { k: _key$2, v: (_entry$3 = $mapIndex(semAwoken,ptrType$1.keyFor(s)), _entry$3 !== undefined ? _entry$3.v : 0) - (1) >>> 0 }); - if ((_entry$4 = $mapIndex(semAwoken,ptrType$1.keyFor(s)), _entry$4 !== undefined ? _entry$4.v : 0) === 0) { - $mapDelete(semAwoken, ptrType$1.keyFor(s)); + _key$2 = s; (semAwoken || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$2.keyFor(_key$2), { k: _key$2, v: (_entry$3 = $mapIndex(semAwoken,ptrType$2.keyFor(s)), _entry$3 !== undefined ? _entry$3.v : 0) - (1) >>> 0 }); + if ((_entry$4 = $mapIndex(semAwoken,ptrType$2.keyFor(s)), _entry$4 !== undefined ? _entry$4.v : 0) === 0) { + $mapDelete(semAwoken, ptrType$2.keyFor(s)); } /* } */ case 2: s.$set(s.$get() - (1) >>> 0); @@ -11871,17 +10309,17 @@ $packages["sync"] = (function() { var {_entry, _entry$1, _key, _key$1, ch, handoff, s, skipframes, w, $s, $r, $c} = $restore(this, {s, handoff, skipframes}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: s.$set(s.$get() + (1) >>> 0); - w = (_entry = $mapIndex(semWaiters,ptrType$1.keyFor(s)), _entry !== undefined ? _entry.v : sliceType$1.nil); + w = (_entry = $mapIndex(semWaiters,ptrType$2.keyFor(s)), _entry !== undefined ? _entry.v : sliceType$1.nil); if (w.$length === 0) { $s = -1; return; } ch = (0 >= w.$length ? ($throwRuntimeError("index out of range"), undefined) : w.$array[w.$offset + 0]); w = $subslice(w, 1); - _key = s; (semWaiters || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$1.keyFor(_key), { k: _key, v: w }); + _key = s; (semWaiters || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$2.keyFor(_key), { k: _key, v: w }); if (w.$length === 0) { - $mapDelete(semWaiters, ptrType$1.keyFor(s)); + $mapDelete(semWaiters, ptrType$2.keyFor(s)); } - _key$1 = s; (semAwoken || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$1.keyFor(_key$1), { k: _key$1, v: (_entry$1 = $mapIndex(semAwoken,ptrType$1.keyFor(s)), _entry$1 !== undefined ? _entry$1.v : 0) + (1) >>> 0 }); + _key$1 = s; (semAwoken || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$2.keyFor(_key$1), { k: _key$1, v: (_entry$1 = $mapIndex(semAwoken,ptrType$2.keyFor(s)), _entry$1 !== undefined ? _entry$1.v : 0) + (1) >>> 0 }); $r = $send(ch, true); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* */ } return; } var $f = {$blk: runtime_Semrelease$1, $c: true, $r, _entry, _entry$1, _key, _key$1, ch, handoff, s, skipframes, w, $s};return $f; @@ -11900,6 +10338,11 @@ $packages["sync"] = (function() { var s; $throwRuntimeError($externalize(s, $String)); }; + syscall_hasWaitingReaders = function syscall_hasWaitingReaders$1(rw) { + var r, rw; + r = rw.readerCount.Load(); + return r < 0 && (r + 1073741824 >> 0) > 0; + }; $ptrType(Pool).prototype.Get = function Get() { var {$24r, _r, p, x, x$1, x$2, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: @@ -11929,12 +10372,10 @@ $packages["sync"] = (function() { } p.store = $append(p.store, x); }; - ptrType$3.methods = [{prop: "RLock", name: "RLock", pkg: "", typ: $funcType([], [], false)}, {prop: "TryRLock", name: "TryRLock", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "RUnlock", name: "RUnlock", pkg: "", typ: $funcType([], [], false)}, {prop: "rUnlockSlow", name: "rUnlockSlow", pkg: "sync", typ: $funcType([$Int32], [], false)}, {prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "TryLock", name: "TryLock", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}, {prop: "RLocker", name: "RLocker", pkg: "", typ: $funcType([], [Locker], false)}]; - ptrType$2.methods = [{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}]; - ptrType$15.methods = [{prop: "Do", name: "Do", pkg: "", typ: $funcType([funcType], [], false)}, {prop: "doSlow", name: "doSlow", pkg: "sync", typ: $funcType([funcType], [], false)}]; - ptrType$16.methods = [{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "TryLock", name: "TryLock", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "lockSlow", name: "lockSlow", pkg: "sync", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}, {prop: "unlockSlow", name: "unlockSlow", pkg: "sync", typ: $funcType([$Int32], [], false)}]; - ptrType$17.methods = [{prop: "loadReadOnly", name: "loadReadOnly", pkg: "sync", typ: $funcType([], [readOnly], false)}, {prop: "Load", name: "Load", pkg: "", typ: $funcType([$emptyInterface], [$emptyInterface, $Bool], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([$emptyInterface, $emptyInterface], [], false)}, {prop: "LoadOrStore", name: "LoadOrStore", pkg: "", typ: $funcType([$emptyInterface, $emptyInterface], [$emptyInterface, $Bool], false)}, {prop: "LoadAndDelete", name: "LoadAndDelete", pkg: "", typ: $funcType([$emptyInterface], [$emptyInterface, $Bool], false)}, {prop: "Delete", name: "Delete", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$emptyInterface, $emptyInterface], [$emptyInterface, $Bool], false)}, {prop: "CompareAndSwap", name: "CompareAndSwap", pkg: "", typ: $funcType([$emptyInterface, $emptyInterface, $emptyInterface], [$Bool], false)}, {prop: "CompareAndDelete", name: "CompareAndDelete", pkg: "", typ: $funcType([$emptyInterface, $emptyInterface], [$Bool], false)}, {prop: "Range", name: "Range", pkg: "", typ: $funcType([funcType$1], [], false)}, {prop: "missLocked", name: "missLocked", pkg: "sync", typ: $funcType([], [], false)}, {prop: "dirtyLocked", name: "dirtyLocked", pkg: "sync", typ: $funcType([], [], false)}]; - ptrType$11.methods = [{prop: "load", name: "load", pkg: "sync", typ: $funcType([], [$emptyInterface, $Bool], false)}, {prop: "tryCompareAndSwap", name: "tryCompareAndSwap", pkg: "sync", typ: $funcType([$emptyInterface, $emptyInterface], [$Bool], false)}, {prop: "unexpungeLocked", name: "unexpungeLocked", pkg: "sync", typ: $funcType([], [$Bool], false)}, {prop: "swapLocked", name: "swapLocked", pkg: "sync", typ: $funcType([ptrType], [ptrType], false)}, {prop: "tryLoadOrStore", name: "tryLoadOrStore", pkg: "sync", typ: $funcType([$emptyInterface], [$emptyInterface, $Bool, $Bool], false)}, {prop: "delete$", name: "delete", pkg: "sync", typ: $funcType([], [$emptyInterface, $Bool], false)}, {prop: "trySwap", name: "trySwap", pkg: "sync", typ: $funcType([ptrType], [ptrType, $Bool], false)}, {prop: "tryExpungeLocked", name: "tryExpungeLocked", pkg: "sync", typ: $funcType([], [$Bool], false)}]; + ptrType$1.methods = [{prop: "RLock", name: "RLock", pkg: "", typ: $funcType([], [], false)}, {prop: "TryRLock", name: "TryRLock", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "RUnlock", name: "RUnlock", pkg: "", typ: $funcType([], [], false)}, {prop: "rUnlockSlow", name: "rUnlockSlow", pkg: "sync", typ: $funcType([$Int32], [], false)}, {prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "TryLock", name: "TryLock", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}, {prop: "RLocker", name: "RLocker", pkg: "", typ: $funcType([], [Locker], false)}]; + ptrType$3.methods = [{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}]; + ptrType$11.methods = [{prop: "Do", name: "Do", pkg: "", typ: $funcType([funcType], [], false)}, {prop: "doSlow", name: "doSlow", pkg: "sync", typ: $funcType([funcType], [], false)}]; + ptrType$12.methods = [{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "TryLock", name: "TryLock", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "lockSlow", name: "lockSlow", pkg: "sync", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}, {prop: "unlockSlow", name: "unlockSlow", pkg: "sync", typ: $funcType([$Int32], [], false)}]; ptrType$19.methods = [{prop: "Get", name: "Get", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Put", name: "Put", pkg: "", typ: $funcType([$emptyInterface], [], false)}]; RWMutex.init("sync", [{prop: "w", name: "w", embedded: false, exported: false, typ: Mutex, tag: ""}, {prop: "writerSem", name: "writerSem", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "readerSem", name: "readerSem", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "readerCount", name: "readerCount", embedded: false, exported: false, typ: atomic.Int32, tag: ""}, {prop: "readerWait", name: "readerWait", embedded: false, exported: false, typ: atomic.Int32, tag: ""}]); rlocker.init("sync", [{prop: "w", name: "w", embedded: false, exported: false, typ: Mutex, tag: ""}, {prop: "writerSem", name: "writerSem", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "readerSem", name: "readerSem", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "readerCount", name: "readerCount", embedded: false, exported: false, typ: atomic.Int32, tag: ""}, {prop: "readerWait", name: "readerWait", embedded: false, exported: false, typ: atomic.Int32, tag: ""}]); @@ -11942,12 +10383,10 @@ $packages["sync"] = (function() { Once.init("sync", [{prop: "done", name: "done", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "m", name: "m", embedded: false, exported: false, typ: Mutex, tag: ""}]); Mutex.init("sync", [{prop: "state", name: "state", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "sema", name: "sema", embedded: false, exported: false, typ: $Uint32, tag: ""}]); Locker.init([{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}]); - Map.init("sync", [{prop: "mu", name: "mu", embedded: false, exported: false, typ: Mutex, tag: ""}, {prop: "read", name: "read", embedded: false, exported: false, typ: atomic.Pointer[10 /* sync.readOnly */], tag: ""}, {prop: "dirty", name: "dirty", embedded: false, exported: false, typ: mapType, tag: ""}, {prop: "misses", name: "misses", embedded: false, exported: false, typ: $Int, tag: ""}]); - readOnly.init("sync", [{prop: "m", name: "m", embedded: false, exported: false, typ: mapType, tag: ""}, {prop: "amended", name: "amended", embedded: false, exported: false, typ: $Bool, tag: ""}]); - entry.init("sync", [{prop: "p", name: "p", embedded: false, exported: false, typ: atomic.Pointer[15 /* any */], tag: ""}]); Pool.init("sync", [{prop: "store", name: "store", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "New", name: "New", embedded: false, exported: true, typ: funcType$2, tag: ""}]); $linknames["sync.runtime_Semacquire"] = runtime_Semacquire; $linknames["sync.runtime_Semrelease"] = runtime_Semrelease; + $linknames["sync.syscall_hasWaitingReaders"] = syscall_hasWaitingReaders; $pkg.$initLinknames = function() { runtime_nanotime = $linknames["runtime.nanotime"]; }; @@ -11968,7 +10407,7 @@ $packages["sync"] = (function() { return $pkg; })(); $packages["unicode"] = (function() { - var $pkg = {}, $init, RangeTable, Range16, Range32, CaseRange, d, foldPair, sliceType, sliceType$1, sliceType$2, arrayType, sliceType$3, ptrType, sliceType$4, _C, _Cc, _Cf, _Co, _Cs, _L, _Ll, _Lm, _Lo, _Lt, _Lu, _M, _Mc, _Me, _Mn, _N, _Nd, _Nl, _No, _P, _Pc, _Pd, _Pe, _Pf, _Pi, _Po, _Ps, _S, _Sc, _Sk, _Sm, _So, _Z, _Zl, _Zp, _Zs, _Adlam, _Ahom, _Anatolian_Hieroglyphs, _Arabic, _Armenian, _Avestan, _Balinese, _Bamum, _Bassa_Vah, _Batak, _Bengali, _Bhaiksuki, _Bopomofo, _Brahmi, _Braille, _Buginese, _Buhid, _Canadian_Aboriginal, _Carian, _Caucasian_Albanian, _Chakma, _Cham, _Cherokee, _Chorasmian, _Common, _Coptic, _Cuneiform, _Cypriot, _Cyrillic, _Deseret, _Devanagari, _Dives_Akuru, _Dogra, _Duployan, _Egyptian_Hieroglyphs, _Elbasan, _Elymaic, _Ethiopic, _Georgian, _Glagolitic, _Gothic, _Grantha, _Greek, _Gujarati, _Gunjala_Gondi, _Gurmukhi, _Han, _Hangul, _Hanifi_Rohingya, _Hanunoo, _Hatran, _Hebrew, _Hiragana, _Imperial_Aramaic, _Inherited, _Inscriptional_Pahlavi, _Inscriptional_Parthian, _Javanese, _Kaithi, _Kannada, _Katakana, _Kayah_Li, _Kharoshthi, _Khitan_Small_Script, _Khmer, _Khojki, _Khudawadi, _Lao, _Latin, _Lepcha, _Limbu, _Linear_A, _Linear_B, _Lisu, _Lycian, _Lydian, _Mahajani, _Makasar, _Malayalam, _Mandaic, _Manichaean, _Marchen, _Masaram_Gondi, _Medefaidrin, _Meetei_Mayek, _Mende_Kikakui, _Meroitic_Cursive, _Meroitic_Hieroglyphs, _Miao, _Modi, _Mongolian, _Mro, _Multani, _Myanmar, _Nabataean, _Nandinagari, _New_Tai_Lue, _Newa, _Nko, _Nushu, _Nyiakeng_Puachue_Hmong, _Ogham, _Ol_Chiki, _Old_Hungarian, _Old_Italic, _Old_North_Arabian, _Old_Permic, _Old_Persian, _Old_Sogdian, _Old_South_Arabian, _Old_Turkic, _Oriya, _Osage, _Osmanya, _Pahawh_Hmong, _Palmyrene, _Pau_Cin_Hau, _Phags_Pa, _Phoenician, _Psalter_Pahlavi, _Rejang, _Runic, _Samaritan, _Saurashtra, _Sharada, _Shavian, _Siddham, _SignWriting, _Sinhala, _Sogdian, _Sora_Sompeng, _Soyombo, _Sundanese, _Syloti_Nagri, _Syriac, _Tagalog, _Tagbanwa, _Tai_Le, _Tai_Tham, _Tai_Viet, _Takri, _Tamil, _Tangut, _Telugu, _Thaana, _Thai, _Tibetan, _Tifinagh, _Tirhuta, _Ugaritic, _Vai, _Wancho, _Warang_Citi, _Yezidi, _Yi, _Zanabazar_Square, _White_Space, _CaseRanges, properties, asciiFold, caseOrbit, foldL, foldLl, foldLt, foldLu, foldM, foldMn, foldCommon, foldGreek, foldInherited, is16, is32, Is, isExcludingLatin, IsUpper, To, ToUpper, ToLower, SimpleFold, IsGraphic, IsPrint, In, IsLetter, IsPunct, IsSpace, to, IsDigit; + var $pkg = {}, $init, RangeTable, Range16, Range32, CaseRange, d, foldPair, sliceType, sliceType$1, sliceType$2, arrayType, sliceType$3, ptrType, sliceType$4, ptrType$1, ptrType$2, ptrType$3, _C, _Cc, _Cf, _Co, _Cs, _L, _Ll, _Lm, _Lo, _Lt, _Lu, _M, _Mc, _Me, _Mn, _N, _Nd, _Nl, _No, _P, _Pc, _Pd, _Pe, _Pf, _Pi, _Po, _Ps, _S, _Sc, _Sk, _Sm, _So, _Z, _Zl, _Zp, _Zs, _Adlam, _Ahom, _Anatolian_Hieroglyphs, _Arabic, _Armenian, _Avestan, _Balinese, _Bamum, _Bassa_Vah, _Batak, _Bengali, _Bhaiksuki, _Bopomofo, _Brahmi, _Braille, _Buginese, _Buhid, _Canadian_Aboriginal, _Carian, _Caucasian_Albanian, _Chakma, _Cham, _Cherokee, _Chorasmian, _Common, _Coptic, _Cuneiform, _Cypriot, _Cypro_Minoan, _Cyrillic, _Deseret, _Devanagari, _Dives_Akuru, _Dogra, _Duployan, _Egyptian_Hieroglyphs, _Elbasan, _Elymaic, _Ethiopic, _Georgian, _Glagolitic, _Gothic, _Grantha, _Greek, _Gujarati, _Gunjala_Gondi, _Gurmukhi, _Han, _Hangul, _Hanifi_Rohingya, _Hanunoo, _Hatran, _Hebrew, _Hiragana, _Imperial_Aramaic, _Inherited, _Inscriptional_Pahlavi, _Inscriptional_Parthian, _Javanese, _Kaithi, _Kannada, _Katakana, _Kawi, _Kayah_Li, _Kharoshthi, _Khitan_Small_Script, _Khmer, _Khojki, _Khudawadi, _Lao, _Latin, _Lepcha, _Limbu, _Linear_A, _Linear_B, _Lisu, _Lycian, _Lydian, _Mahajani, _Makasar, _Malayalam, _Mandaic, _Manichaean, _Marchen, _Masaram_Gondi, _Medefaidrin, _Meetei_Mayek, _Mende_Kikakui, _Meroitic_Cursive, _Meroitic_Hieroglyphs, _Miao, _Modi, _Mongolian, _Mro, _Multani, _Myanmar, _Nabataean, _Nag_Mundari, _Nandinagari, _New_Tai_Lue, _Newa, _Nko, _Nushu, _Nyiakeng_Puachue_Hmong, _Ogham, _Ol_Chiki, _Old_Hungarian, _Old_Italic, _Old_North_Arabian, _Old_Permic, _Old_Persian, _Old_Sogdian, _Old_South_Arabian, _Old_Turkic, _Old_Uyghur, _Oriya, _Osage, _Osmanya, _Pahawh_Hmong, _Palmyrene, _Pau_Cin_Hau, _Phags_Pa, _Phoenician, _Psalter_Pahlavi, _Rejang, _Runic, _Samaritan, _Saurashtra, _Sharada, _Shavian, _Siddham, _SignWriting, _Sinhala, _Sogdian, _Sora_Sompeng, _Soyombo, _Sundanese, _Syloti_Nagri, _Syriac, _Tagalog, _Tagbanwa, _Tai_Le, _Tai_Tham, _Tai_Viet, _Takri, _Tamil, _Tangsa, _Tangut, _Telugu, _Thaana, _Thai, _Tibetan, _Tifinagh, _Tirhuta, _Toto, _Ugaritic, _Vai, _Vithkuqi, _Wancho, _Warang_Citi, _Yezidi, _Yi, _Zanabazar_Square, _White_Space, _CaseRanges, properties, asciiFold, caseOrbit, foldL, foldLl, foldLt, foldLu, foldM, foldMn, foldCommon, foldGreek, foldInherited, is16, is32, Is, isExcludingLatin, IsUpper, To, ToUpper, ToLower, SimpleFold, IsGraphic, IsPrint, In, IsLetter, IsPunct, IsSpace, to, IsDigit; RangeTable = $newType(0, $kindStruct, "unicode.RangeTable", true, "unicode", true, function(R16_, R32_, LatinOffset_) { this.$val = this; if (arguments.length === 0) { @@ -12042,6 +10481,9 @@ $packages["unicode"] = (function() { sliceType$3 = $sliceType(foldPair); ptrType = $ptrType(RangeTable); sliceType$4 = $sliceType(ptrType); + ptrType$1 = $ptrType(Range16); + ptrType$2 = $ptrType(Range32); + ptrType$3 = $ptrType(CaseRange); is16 = function is16$1(ranges, r) { var _i, _q, _r, _r$1, _ref, hi, i, lo, m, r, range_, range_$1, ranges; if (ranges.$length <= 18 || r <= 255) { @@ -12050,7 +10492,7 @@ $packages["unicode"] = (function() { while (true) { if (!(_i < _ref.$length)) { break; } i = _i; - range_ = ((i < 0 || i >= ranges.$length) ? ($throwRuntimeError("index out of range"), undefined) : ranges.$array[ranges.$offset + i]); + range_ = ((i < 0 || i >= ranges.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(ranges.$array, ranges.$offset + i, ptrType$1)); if (r < range_.Lo) { return false; } @@ -12066,7 +10508,7 @@ $packages["unicode"] = (function() { while (true) { if (!(lo < hi)) { break; } m = lo + (_q = ((hi - lo >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0; - range_$1 = ((m < 0 || m >= ranges.$length) ? ($throwRuntimeError("index out of range"), undefined) : ranges.$array[ranges.$offset + m]); + range_$1 = ((m < 0 || m >= ranges.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(ranges.$array, ranges.$offset + m, ptrType$1)); if (range_$1.Lo <= r && r <= range_$1.Hi) { return (range_$1.Stride === 1) || ((_r$1 = ((r - range_$1.Lo << 16 >>> 16)) % range_$1.Stride, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) === 0); } @@ -12086,7 +10528,7 @@ $packages["unicode"] = (function() { while (true) { if (!(_i < _ref.$length)) { break; } i = _i; - range_ = ((i < 0 || i >= ranges.$length) ? ($throwRuntimeError("index out of range"), undefined) : ranges.$array[ranges.$offset + i]); + range_ = ((i < 0 || i >= ranges.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(ranges.$array, ranges.$offset + i, ptrType$2)); if (r < range_.Lo) { return false; } @@ -12281,7 +10723,7 @@ $packages["unicode"] = (function() { while (true) { if (!(lo < hi)) { break; } m = lo + (_q = ((hi - lo >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0; - cr = ((m < 0 || m >= caseRange.$length) ? ($throwRuntimeError("index out of range"), undefined) : caseRange.$array[caseRange.$offset + m]); + cr = ((m < 0 || m >= caseRange.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(caseRange.$array, caseRange.$offset + m, ptrType$3)); if (((cr.Lo >> 0)) <= r && r <= ((cr.Hi >> 0))) { delta = ((x = cr.Delta, ((_case < 0 || _case >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[_case]))); if (delta > 1114111) { @@ -12327,38 +10769,38 @@ $packages["unicode"] = (function() { $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: - _C = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(0, 31, 1), Range16), $clone(new Range16.ptr(127, 159, 1), Range16), $clone(new Range16.ptr(173, 1536, 1363), Range16), $clone(new Range16.ptr(1537, 1541, 1), Range16), $clone(new Range16.ptr(1564, 1757, 193), Range16), $clone(new Range16.ptr(1807, 2274, 467), Range16), $clone(new Range16.ptr(6158, 8203, 2045), Range16), $clone(new Range16.ptr(8204, 8207, 1), Range16), $clone(new Range16.ptr(8234, 8238, 1), Range16), $clone(new Range16.ptr(8288, 8292, 1), Range16), $clone(new Range16.ptr(8294, 8303, 1), Range16), $clone(new Range16.ptr(55296, 63743, 1), Range16), $clone(new Range16.ptr(65279, 65529, 250), Range16), $clone(new Range16.ptr(65530, 65531, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(69821, 69837, 16), Range32), $clone(new Range32.ptr(78896, 78904, 1), Range32), $clone(new Range32.ptr(113824, 113827, 1), Range32), $clone(new Range32.ptr(119155, 119162, 1), Range32), $clone(new Range32.ptr(917505, 917536, 31), Range32), $clone(new Range32.ptr(917537, 917631, 1), Range32), $clone(new Range32.ptr(983040, 1048573, 1), Range32), $clone(new Range32.ptr(1048576, 1114109, 1), Range32)]), 2); + _C = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(0, 31, 1), Range16), $clone(new Range16.ptr(127, 159, 1), Range16), $clone(new Range16.ptr(173, 1536, 1363), Range16), $clone(new Range16.ptr(1537, 1541, 1), Range16), $clone(new Range16.ptr(1564, 1757, 193), Range16), $clone(new Range16.ptr(1807, 2192, 385), Range16), $clone(new Range16.ptr(2193, 2274, 81), Range16), $clone(new Range16.ptr(6158, 8203, 2045), Range16), $clone(new Range16.ptr(8204, 8207, 1), Range16), $clone(new Range16.ptr(8234, 8238, 1), Range16), $clone(new Range16.ptr(8288, 8292, 1), Range16), $clone(new Range16.ptr(8294, 8303, 1), Range16), $clone(new Range16.ptr(55296, 63743, 1), Range16), $clone(new Range16.ptr(65279, 65529, 250), Range16), $clone(new Range16.ptr(65530, 65531, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(69821, 69837, 16), Range32), $clone(new Range32.ptr(78896, 78911, 1), Range32), $clone(new Range32.ptr(113824, 113827, 1), Range32), $clone(new Range32.ptr(119155, 119162, 1), Range32), $clone(new Range32.ptr(917505, 917536, 31), Range32), $clone(new Range32.ptr(917537, 917631, 1), Range32), $clone(new Range32.ptr(983040, 1048573, 1), Range32), $clone(new Range32.ptr(1048576, 1114109, 1), Range32)]), 2); _Cc = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(0, 31, 1), Range16), $clone(new Range16.ptr(127, 159, 1), Range16)]), sliceType$1.nil, 2); - _Cf = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(173, 1536, 1363), Range16), $clone(new Range16.ptr(1537, 1541, 1), Range16), $clone(new Range16.ptr(1564, 1757, 193), Range16), $clone(new Range16.ptr(1807, 2274, 467), Range16), $clone(new Range16.ptr(6158, 8203, 2045), Range16), $clone(new Range16.ptr(8204, 8207, 1), Range16), $clone(new Range16.ptr(8234, 8238, 1), Range16), $clone(new Range16.ptr(8288, 8292, 1), Range16), $clone(new Range16.ptr(8294, 8303, 1), Range16), $clone(new Range16.ptr(65279, 65529, 250), Range16), $clone(new Range16.ptr(65530, 65531, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(69821, 69837, 16), Range32), $clone(new Range32.ptr(78896, 78904, 1), Range32), $clone(new Range32.ptr(113824, 113827, 1), Range32), $clone(new Range32.ptr(119155, 119162, 1), Range32), $clone(new Range32.ptr(917505, 917536, 31), Range32), $clone(new Range32.ptr(917537, 917631, 1), Range32)]), 0); + _Cf = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(173, 1536, 1363), Range16), $clone(new Range16.ptr(1537, 1541, 1), Range16), $clone(new Range16.ptr(1564, 1757, 193), Range16), $clone(new Range16.ptr(1807, 2192, 385), Range16), $clone(new Range16.ptr(2193, 2274, 81), Range16), $clone(new Range16.ptr(6158, 8203, 2045), Range16), $clone(new Range16.ptr(8204, 8207, 1), Range16), $clone(new Range16.ptr(8234, 8238, 1), Range16), $clone(new Range16.ptr(8288, 8292, 1), Range16), $clone(new Range16.ptr(8294, 8303, 1), Range16), $clone(new Range16.ptr(65279, 65529, 250), Range16), $clone(new Range16.ptr(65530, 65531, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(69821, 69837, 16), Range32), $clone(new Range32.ptr(78896, 78911, 1), Range32), $clone(new Range32.ptr(113824, 113827, 1), Range32), $clone(new Range32.ptr(119155, 119162, 1), Range32), $clone(new Range32.ptr(917505, 917536, 31), Range32), $clone(new Range32.ptr(917537, 917631, 1), Range32)]), 0); _Co = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(57344, 63743, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(983040, 1048573, 1), Range32), $clone(new Range32.ptr(1048576, 1114109, 1), Range32)]), 0); _Cs = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(55296, 57343, 1), Range16)]), sliceType$1.nil, 0); - _L = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(65, 90, 1), Range16), $clone(new Range16.ptr(97, 122, 1), Range16), $clone(new Range16.ptr(170, 181, 11), Range16), $clone(new Range16.ptr(186, 192, 6), Range16), $clone(new Range16.ptr(193, 214, 1), Range16), $clone(new Range16.ptr(216, 246, 1), Range16), $clone(new Range16.ptr(248, 705, 1), Range16), $clone(new Range16.ptr(710, 721, 1), Range16), $clone(new Range16.ptr(736, 740, 1), Range16), $clone(new Range16.ptr(748, 750, 2), Range16), $clone(new Range16.ptr(880, 884, 1), Range16), $clone(new Range16.ptr(886, 887, 1), Range16), $clone(new Range16.ptr(890, 893, 1), Range16), $clone(new Range16.ptr(895, 902, 7), Range16), $clone(new Range16.ptr(904, 906, 1), Range16), $clone(new Range16.ptr(908, 910, 2), Range16), $clone(new Range16.ptr(911, 929, 1), Range16), $clone(new Range16.ptr(931, 1013, 1), Range16), $clone(new Range16.ptr(1015, 1153, 1), Range16), $clone(new Range16.ptr(1162, 1327, 1), Range16), $clone(new Range16.ptr(1329, 1366, 1), Range16), $clone(new Range16.ptr(1369, 1376, 7), Range16), $clone(new Range16.ptr(1377, 1416, 1), Range16), $clone(new Range16.ptr(1488, 1514, 1), Range16), $clone(new Range16.ptr(1519, 1522, 1), Range16), $clone(new Range16.ptr(1568, 1610, 1), Range16), $clone(new Range16.ptr(1646, 1647, 1), Range16), $clone(new Range16.ptr(1649, 1747, 1), Range16), $clone(new Range16.ptr(1749, 1765, 16), Range16), $clone(new Range16.ptr(1766, 1774, 8), Range16), $clone(new Range16.ptr(1775, 1786, 11), Range16), $clone(new Range16.ptr(1787, 1788, 1), Range16), $clone(new Range16.ptr(1791, 1808, 17), Range16), $clone(new Range16.ptr(1810, 1839, 1), Range16), $clone(new Range16.ptr(1869, 1957, 1), Range16), $clone(new Range16.ptr(1969, 1994, 25), Range16), $clone(new Range16.ptr(1995, 2026, 1), Range16), $clone(new Range16.ptr(2036, 2037, 1), Range16), $clone(new Range16.ptr(2042, 2048, 6), Range16), $clone(new Range16.ptr(2049, 2069, 1), Range16), $clone(new Range16.ptr(2074, 2084, 10), Range16), $clone(new Range16.ptr(2088, 2112, 24), Range16), $clone(new Range16.ptr(2113, 2136, 1), Range16), $clone(new Range16.ptr(2144, 2154, 1), Range16), $clone(new Range16.ptr(2208, 2228, 1), Range16), $clone(new Range16.ptr(2230, 2247, 1), Range16), $clone(new Range16.ptr(2308, 2361, 1), Range16), $clone(new Range16.ptr(2365, 2384, 19), Range16), $clone(new Range16.ptr(2392, 2401, 1), Range16), $clone(new Range16.ptr(2417, 2432, 1), Range16), $clone(new Range16.ptr(2437, 2444, 1), Range16), $clone(new Range16.ptr(2447, 2448, 1), Range16), $clone(new Range16.ptr(2451, 2472, 1), Range16), $clone(new Range16.ptr(2474, 2480, 1), Range16), $clone(new Range16.ptr(2482, 2486, 4), Range16), $clone(new Range16.ptr(2487, 2489, 1), Range16), $clone(new Range16.ptr(2493, 2510, 17), Range16), $clone(new Range16.ptr(2524, 2525, 1), Range16), $clone(new Range16.ptr(2527, 2529, 1), Range16), $clone(new Range16.ptr(2544, 2545, 1), Range16), $clone(new Range16.ptr(2556, 2565, 9), Range16), $clone(new Range16.ptr(2566, 2570, 1), Range16), $clone(new Range16.ptr(2575, 2576, 1), Range16), $clone(new Range16.ptr(2579, 2600, 1), Range16), $clone(new Range16.ptr(2602, 2608, 1), Range16), $clone(new Range16.ptr(2610, 2611, 1), Range16), $clone(new Range16.ptr(2613, 2614, 1), Range16), $clone(new Range16.ptr(2616, 2617, 1), Range16), $clone(new Range16.ptr(2649, 2652, 1), Range16), $clone(new Range16.ptr(2654, 2674, 20), Range16), $clone(new Range16.ptr(2675, 2676, 1), Range16), $clone(new Range16.ptr(2693, 2701, 1), Range16), $clone(new Range16.ptr(2703, 2705, 1), Range16), $clone(new Range16.ptr(2707, 2728, 1), Range16), $clone(new Range16.ptr(2730, 2736, 1), Range16), $clone(new Range16.ptr(2738, 2739, 1), Range16), $clone(new Range16.ptr(2741, 2745, 1), Range16), $clone(new Range16.ptr(2749, 2768, 19), Range16), $clone(new Range16.ptr(2784, 2785, 1), Range16), $clone(new Range16.ptr(2809, 2821, 12), Range16), $clone(new Range16.ptr(2822, 2828, 1), Range16), $clone(new Range16.ptr(2831, 2832, 1), Range16), $clone(new Range16.ptr(2835, 2856, 1), Range16), $clone(new Range16.ptr(2858, 2864, 1), Range16), $clone(new Range16.ptr(2866, 2867, 1), Range16), $clone(new Range16.ptr(2869, 2873, 1), Range16), $clone(new Range16.ptr(2877, 2908, 31), Range16), $clone(new Range16.ptr(2909, 2911, 2), Range16), $clone(new Range16.ptr(2912, 2913, 1), Range16), $clone(new Range16.ptr(2929, 2947, 18), Range16), $clone(new Range16.ptr(2949, 2954, 1), Range16), $clone(new Range16.ptr(2958, 2960, 1), Range16), $clone(new Range16.ptr(2962, 2965, 1), Range16), $clone(new Range16.ptr(2969, 2970, 1), Range16), $clone(new Range16.ptr(2972, 2974, 2), Range16), $clone(new Range16.ptr(2975, 2979, 4), Range16), $clone(new Range16.ptr(2980, 2984, 4), Range16), $clone(new Range16.ptr(2985, 2986, 1), Range16), $clone(new Range16.ptr(2990, 3001, 1), Range16), $clone(new Range16.ptr(3024, 3077, 53), Range16), $clone(new Range16.ptr(3078, 3084, 1), Range16), $clone(new Range16.ptr(3086, 3088, 1), Range16), $clone(new Range16.ptr(3090, 3112, 1), Range16), $clone(new Range16.ptr(3114, 3129, 1), Range16), $clone(new Range16.ptr(3133, 3160, 27), Range16), $clone(new Range16.ptr(3161, 3162, 1), Range16), $clone(new Range16.ptr(3168, 3169, 1), Range16), $clone(new Range16.ptr(3200, 3205, 5), Range16), $clone(new Range16.ptr(3206, 3212, 1), Range16), $clone(new Range16.ptr(3214, 3216, 1), Range16), $clone(new Range16.ptr(3218, 3240, 1), Range16), $clone(new Range16.ptr(3242, 3251, 1), Range16), $clone(new Range16.ptr(3253, 3257, 1), Range16), $clone(new Range16.ptr(3261, 3294, 33), Range16), $clone(new Range16.ptr(3296, 3297, 1), Range16), $clone(new Range16.ptr(3313, 3314, 1), Range16), $clone(new Range16.ptr(3332, 3340, 1), Range16), $clone(new Range16.ptr(3342, 3344, 1), Range16), $clone(new Range16.ptr(3346, 3386, 1), Range16), $clone(new Range16.ptr(3389, 3406, 17), Range16), $clone(new Range16.ptr(3412, 3414, 1), Range16), $clone(new Range16.ptr(3423, 3425, 1), Range16), $clone(new Range16.ptr(3450, 3455, 1), Range16), $clone(new Range16.ptr(3461, 3478, 1), Range16), $clone(new Range16.ptr(3482, 3505, 1), Range16), $clone(new Range16.ptr(3507, 3515, 1), Range16), $clone(new Range16.ptr(3517, 3520, 3), Range16), $clone(new Range16.ptr(3521, 3526, 1), Range16), $clone(new Range16.ptr(3585, 3632, 1), Range16), $clone(new Range16.ptr(3634, 3635, 1), Range16), $clone(new Range16.ptr(3648, 3654, 1), Range16), $clone(new Range16.ptr(3713, 3714, 1), Range16), $clone(new Range16.ptr(3716, 3718, 2), Range16), $clone(new Range16.ptr(3719, 3722, 1), Range16), $clone(new Range16.ptr(3724, 3747, 1), Range16), $clone(new Range16.ptr(3749, 3751, 2), Range16), $clone(new Range16.ptr(3752, 3760, 1), Range16), $clone(new Range16.ptr(3762, 3763, 1), Range16), $clone(new Range16.ptr(3773, 3776, 3), Range16), $clone(new Range16.ptr(3777, 3780, 1), Range16), $clone(new Range16.ptr(3782, 3804, 22), Range16), $clone(new Range16.ptr(3805, 3807, 1), Range16), $clone(new Range16.ptr(3840, 3904, 64), Range16), $clone(new Range16.ptr(3905, 3911, 1), Range16), $clone(new Range16.ptr(3913, 3948, 1), Range16), $clone(new Range16.ptr(3976, 3980, 1), Range16), $clone(new Range16.ptr(4096, 4138, 1), Range16), $clone(new Range16.ptr(4159, 4176, 17), Range16), $clone(new Range16.ptr(4177, 4181, 1), Range16), $clone(new Range16.ptr(4186, 4189, 1), Range16), $clone(new Range16.ptr(4193, 4197, 4), Range16), $clone(new Range16.ptr(4198, 4206, 8), Range16), $clone(new Range16.ptr(4207, 4208, 1), Range16), $clone(new Range16.ptr(4213, 4225, 1), Range16), $clone(new Range16.ptr(4238, 4256, 18), Range16), $clone(new Range16.ptr(4257, 4293, 1), Range16), $clone(new Range16.ptr(4295, 4301, 6), Range16), $clone(new Range16.ptr(4304, 4346, 1), Range16), $clone(new Range16.ptr(4348, 4680, 1), Range16), $clone(new Range16.ptr(4682, 4685, 1), Range16), $clone(new Range16.ptr(4688, 4694, 1), Range16), $clone(new Range16.ptr(4696, 4698, 2), Range16), $clone(new Range16.ptr(4699, 4701, 1), Range16), $clone(new Range16.ptr(4704, 4744, 1), Range16), $clone(new Range16.ptr(4746, 4749, 1), Range16), $clone(new Range16.ptr(4752, 4784, 1), Range16), $clone(new Range16.ptr(4786, 4789, 1), Range16), $clone(new Range16.ptr(4792, 4798, 1), Range16), $clone(new Range16.ptr(4800, 4802, 2), Range16), $clone(new Range16.ptr(4803, 4805, 1), Range16), $clone(new Range16.ptr(4808, 4822, 1), Range16), $clone(new Range16.ptr(4824, 4880, 1), Range16), $clone(new Range16.ptr(4882, 4885, 1), Range16), $clone(new Range16.ptr(4888, 4954, 1), Range16), $clone(new Range16.ptr(4992, 5007, 1), Range16), $clone(new Range16.ptr(5024, 5109, 1), Range16), $clone(new Range16.ptr(5112, 5117, 1), Range16), $clone(new Range16.ptr(5121, 5740, 1), Range16), $clone(new Range16.ptr(5743, 5759, 1), Range16), $clone(new Range16.ptr(5761, 5786, 1), Range16), $clone(new Range16.ptr(5792, 5866, 1), Range16), $clone(new Range16.ptr(5873, 5880, 1), Range16), $clone(new Range16.ptr(5888, 5900, 1), Range16), $clone(new Range16.ptr(5902, 5905, 1), Range16), $clone(new Range16.ptr(5920, 5937, 1), Range16), $clone(new Range16.ptr(5952, 5969, 1), Range16), $clone(new Range16.ptr(5984, 5996, 1), Range16), $clone(new Range16.ptr(5998, 6000, 1), Range16), $clone(new Range16.ptr(6016, 6067, 1), Range16), $clone(new Range16.ptr(6103, 6108, 5), Range16), $clone(new Range16.ptr(6176, 6264, 1), Range16), $clone(new Range16.ptr(6272, 6276, 1), Range16), $clone(new Range16.ptr(6279, 6312, 1), Range16), $clone(new Range16.ptr(6314, 6320, 6), Range16), $clone(new Range16.ptr(6321, 6389, 1), Range16), $clone(new Range16.ptr(6400, 6430, 1), Range16), $clone(new Range16.ptr(6480, 6509, 1), Range16), $clone(new Range16.ptr(6512, 6516, 1), Range16), $clone(new Range16.ptr(6528, 6571, 1), Range16), $clone(new Range16.ptr(6576, 6601, 1), Range16), $clone(new Range16.ptr(6656, 6678, 1), Range16), $clone(new Range16.ptr(6688, 6740, 1), Range16), $clone(new Range16.ptr(6823, 6917, 94), Range16), $clone(new Range16.ptr(6918, 6963, 1), Range16), $clone(new Range16.ptr(6981, 6987, 1), Range16), $clone(new Range16.ptr(7043, 7072, 1), Range16), $clone(new Range16.ptr(7086, 7087, 1), Range16), $clone(new Range16.ptr(7098, 7141, 1), Range16), $clone(new Range16.ptr(7168, 7203, 1), Range16), $clone(new Range16.ptr(7245, 7247, 1), Range16), $clone(new Range16.ptr(7258, 7293, 1), Range16), $clone(new Range16.ptr(7296, 7304, 1), Range16), $clone(new Range16.ptr(7312, 7354, 1), Range16), $clone(new Range16.ptr(7357, 7359, 1), Range16), $clone(new Range16.ptr(7401, 7404, 1), Range16), $clone(new Range16.ptr(7406, 7411, 1), Range16), $clone(new Range16.ptr(7413, 7414, 1), Range16), $clone(new Range16.ptr(7418, 7424, 6), Range16), $clone(new Range16.ptr(7425, 7615, 1), Range16), $clone(new Range16.ptr(7680, 7957, 1), Range16), $clone(new Range16.ptr(7960, 7965, 1), Range16), $clone(new Range16.ptr(7968, 8005, 1), Range16), $clone(new Range16.ptr(8008, 8013, 1), Range16), $clone(new Range16.ptr(8016, 8023, 1), Range16), $clone(new Range16.ptr(8025, 8031, 2), Range16), $clone(new Range16.ptr(8032, 8061, 1), Range16), $clone(new Range16.ptr(8064, 8116, 1), Range16), $clone(new Range16.ptr(8118, 8124, 1), Range16), $clone(new Range16.ptr(8126, 8130, 4), Range16), $clone(new Range16.ptr(8131, 8132, 1), Range16), $clone(new Range16.ptr(8134, 8140, 1), Range16), $clone(new Range16.ptr(8144, 8147, 1), Range16), $clone(new Range16.ptr(8150, 8155, 1), Range16), $clone(new Range16.ptr(8160, 8172, 1), Range16), $clone(new Range16.ptr(8178, 8180, 1), Range16), $clone(new Range16.ptr(8182, 8188, 1), Range16), $clone(new Range16.ptr(8305, 8319, 14), Range16), $clone(new Range16.ptr(8336, 8348, 1), Range16), $clone(new Range16.ptr(8450, 8455, 5), Range16), $clone(new Range16.ptr(8458, 8467, 1), Range16), $clone(new Range16.ptr(8469, 8473, 4), Range16), $clone(new Range16.ptr(8474, 8477, 1), Range16), $clone(new Range16.ptr(8484, 8490, 2), Range16), $clone(new Range16.ptr(8491, 8493, 1), Range16), $clone(new Range16.ptr(8495, 8505, 1), Range16), $clone(new Range16.ptr(8508, 8511, 1), Range16), $clone(new Range16.ptr(8517, 8521, 1), Range16), $clone(new Range16.ptr(8526, 8579, 53), Range16), $clone(new Range16.ptr(8580, 11264, 2684), Range16), $clone(new Range16.ptr(11265, 11310, 1), Range16), $clone(new Range16.ptr(11312, 11358, 1), Range16), $clone(new Range16.ptr(11360, 11492, 1), Range16), $clone(new Range16.ptr(11499, 11502, 1), Range16), $clone(new Range16.ptr(11506, 11507, 1), Range16), $clone(new Range16.ptr(11520, 11557, 1), Range16), $clone(new Range16.ptr(11559, 11565, 6), Range16), $clone(new Range16.ptr(11568, 11623, 1), Range16), $clone(new Range16.ptr(11631, 11648, 17), Range16), $clone(new Range16.ptr(11649, 11670, 1), Range16), $clone(new Range16.ptr(11680, 11686, 1), Range16), $clone(new Range16.ptr(11688, 11694, 1), Range16), $clone(new Range16.ptr(11696, 11702, 1), Range16), $clone(new Range16.ptr(11704, 11710, 1), Range16), $clone(new Range16.ptr(11712, 11718, 1), Range16), $clone(new Range16.ptr(11720, 11726, 1), Range16), $clone(new Range16.ptr(11728, 11734, 1), Range16), $clone(new Range16.ptr(11736, 11742, 1), Range16), $clone(new Range16.ptr(11823, 12293, 470), Range16), $clone(new Range16.ptr(12294, 12337, 43), Range16), $clone(new Range16.ptr(12338, 12341, 1), Range16), $clone(new Range16.ptr(12347, 12348, 1), Range16), $clone(new Range16.ptr(12353, 12438, 1), Range16), $clone(new Range16.ptr(12445, 12447, 1), Range16), $clone(new Range16.ptr(12449, 12538, 1), Range16), $clone(new Range16.ptr(12540, 12543, 1), Range16), $clone(new Range16.ptr(12549, 12591, 1), Range16), $clone(new Range16.ptr(12593, 12686, 1), Range16), $clone(new Range16.ptr(12704, 12735, 1), Range16), $clone(new Range16.ptr(12784, 12799, 1), Range16), $clone(new Range16.ptr(13312, 19903, 1), Range16), $clone(new Range16.ptr(19968, 40956, 1), Range16), $clone(new Range16.ptr(40960, 42124, 1), Range16), $clone(new Range16.ptr(42192, 42237, 1), Range16), $clone(new Range16.ptr(42240, 42508, 1), Range16), $clone(new Range16.ptr(42512, 42527, 1), Range16), $clone(new Range16.ptr(42538, 42539, 1), Range16), $clone(new Range16.ptr(42560, 42606, 1), Range16), $clone(new Range16.ptr(42623, 42653, 1), Range16), $clone(new Range16.ptr(42656, 42725, 1), Range16), $clone(new Range16.ptr(42775, 42783, 1), Range16), $clone(new Range16.ptr(42786, 42888, 1), Range16), $clone(new Range16.ptr(42891, 42943, 1), Range16), $clone(new Range16.ptr(42946, 42954, 1), Range16), $clone(new Range16.ptr(42997, 43009, 1), Range16), $clone(new Range16.ptr(43011, 43013, 1), Range16), $clone(new Range16.ptr(43015, 43018, 1), Range16), $clone(new Range16.ptr(43020, 43042, 1), Range16), $clone(new Range16.ptr(43072, 43123, 1), Range16), $clone(new Range16.ptr(43138, 43187, 1), Range16), $clone(new Range16.ptr(43250, 43255, 1), Range16), $clone(new Range16.ptr(43259, 43261, 2), Range16), $clone(new Range16.ptr(43262, 43274, 12), Range16), $clone(new Range16.ptr(43275, 43301, 1), Range16), $clone(new Range16.ptr(43312, 43334, 1), Range16), $clone(new Range16.ptr(43360, 43388, 1), Range16), $clone(new Range16.ptr(43396, 43442, 1), Range16), $clone(new Range16.ptr(43471, 43488, 17), Range16), $clone(new Range16.ptr(43489, 43492, 1), Range16), $clone(new Range16.ptr(43494, 43503, 1), Range16), $clone(new Range16.ptr(43514, 43518, 1), Range16), $clone(new Range16.ptr(43520, 43560, 1), Range16), $clone(new Range16.ptr(43584, 43586, 1), Range16), $clone(new Range16.ptr(43588, 43595, 1), Range16), $clone(new Range16.ptr(43616, 43638, 1), Range16), $clone(new Range16.ptr(43642, 43646, 4), Range16), $clone(new Range16.ptr(43647, 43695, 1), Range16), $clone(new Range16.ptr(43697, 43701, 4), Range16), $clone(new Range16.ptr(43702, 43705, 3), Range16), $clone(new Range16.ptr(43706, 43709, 1), Range16), $clone(new Range16.ptr(43712, 43714, 2), Range16), $clone(new Range16.ptr(43739, 43741, 1), Range16), $clone(new Range16.ptr(43744, 43754, 1), Range16), $clone(new Range16.ptr(43762, 43764, 1), Range16), $clone(new Range16.ptr(43777, 43782, 1), Range16), $clone(new Range16.ptr(43785, 43790, 1), Range16), $clone(new Range16.ptr(43793, 43798, 1), Range16), $clone(new Range16.ptr(43808, 43814, 1), Range16), $clone(new Range16.ptr(43816, 43822, 1), Range16), $clone(new Range16.ptr(43824, 43866, 1), Range16), $clone(new Range16.ptr(43868, 43881, 1), Range16), $clone(new Range16.ptr(43888, 44002, 1), Range16), $clone(new Range16.ptr(44032, 55203, 1), Range16), $clone(new Range16.ptr(55216, 55238, 1), Range16), $clone(new Range16.ptr(55243, 55291, 1), Range16), $clone(new Range16.ptr(63744, 64109, 1), Range16), $clone(new Range16.ptr(64112, 64217, 1), Range16), $clone(new Range16.ptr(64256, 64262, 1), Range16), $clone(new Range16.ptr(64275, 64279, 1), Range16), $clone(new Range16.ptr(64285, 64287, 2), Range16), $clone(new Range16.ptr(64288, 64296, 1), Range16), $clone(new Range16.ptr(64298, 64310, 1), Range16), $clone(new Range16.ptr(64312, 64316, 1), Range16), $clone(new Range16.ptr(64318, 64320, 2), Range16), $clone(new Range16.ptr(64321, 64323, 2), Range16), $clone(new Range16.ptr(64324, 64326, 2), Range16), $clone(new Range16.ptr(64327, 64433, 1), Range16), $clone(new Range16.ptr(64467, 64829, 1), Range16), $clone(new Range16.ptr(64848, 64911, 1), Range16), $clone(new Range16.ptr(64914, 64967, 1), Range16), $clone(new Range16.ptr(65008, 65019, 1), Range16), $clone(new Range16.ptr(65136, 65140, 1), Range16), $clone(new Range16.ptr(65142, 65276, 1), Range16), $clone(new Range16.ptr(65313, 65338, 1), Range16), $clone(new Range16.ptr(65345, 65370, 1), Range16), $clone(new Range16.ptr(65382, 65470, 1), Range16), $clone(new Range16.ptr(65474, 65479, 1), Range16), $clone(new Range16.ptr(65482, 65487, 1), Range16), $clone(new Range16.ptr(65490, 65495, 1), Range16), $clone(new Range16.ptr(65498, 65500, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65536, 65547, 1), Range32), $clone(new Range32.ptr(65549, 65574, 1), Range32), $clone(new Range32.ptr(65576, 65594, 1), Range32), $clone(new Range32.ptr(65596, 65597, 1), Range32), $clone(new Range32.ptr(65599, 65613, 1), Range32), $clone(new Range32.ptr(65616, 65629, 1), Range32), $clone(new Range32.ptr(65664, 65786, 1), Range32), $clone(new Range32.ptr(66176, 66204, 1), Range32), $clone(new Range32.ptr(66208, 66256, 1), Range32), $clone(new Range32.ptr(66304, 66335, 1), Range32), $clone(new Range32.ptr(66349, 66368, 1), Range32), $clone(new Range32.ptr(66370, 66377, 1), Range32), $clone(new Range32.ptr(66384, 66421, 1), Range32), $clone(new Range32.ptr(66432, 66461, 1), Range32), $clone(new Range32.ptr(66464, 66499, 1), Range32), $clone(new Range32.ptr(66504, 66511, 1), Range32), $clone(new Range32.ptr(66560, 66717, 1), Range32), $clone(new Range32.ptr(66736, 66771, 1), Range32), $clone(new Range32.ptr(66776, 66811, 1), Range32), $clone(new Range32.ptr(66816, 66855, 1), Range32), $clone(new Range32.ptr(66864, 66915, 1), Range32), $clone(new Range32.ptr(67072, 67382, 1), Range32), $clone(new Range32.ptr(67392, 67413, 1), Range32), $clone(new Range32.ptr(67424, 67431, 1), Range32), $clone(new Range32.ptr(67584, 67589, 1), Range32), $clone(new Range32.ptr(67592, 67594, 2), Range32), $clone(new Range32.ptr(67595, 67637, 1), Range32), $clone(new Range32.ptr(67639, 67640, 1), Range32), $clone(new Range32.ptr(67644, 67647, 3), Range32), $clone(new Range32.ptr(67648, 67669, 1), Range32), $clone(new Range32.ptr(67680, 67702, 1), Range32), $clone(new Range32.ptr(67712, 67742, 1), Range32), $clone(new Range32.ptr(67808, 67826, 1), Range32), $clone(new Range32.ptr(67828, 67829, 1), Range32), $clone(new Range32.ptr(67840, 67861, 1), Range32), $clone(new Range32.ptr(67872, 67897, 1), Range32), $clone(new Range32.ptr(67968, 68023, 1), Range32), $clone(new Range32.ptr(68030, 68031, 1), Range32), $clone(new Range32.ptr(68096, 68112, 16), Range32), $clone(new Range32.ptr(68113, 68115, 1), Range32), $clone(new Range32.ptr(68117, 68119, 1), Range32), $clone(new Range32.ptr(68121, 68149, 1), Range32), $clone(new Range32.ptr(68192, 68220, 1), Range32), $clone(new Range32.ptr(68224, 68252, 1), Range32), $clone(new Range32.ptr(68288, 68295, 1), Range32), $clone(new Range32.ptr(68297, 68324, 1), Range32), $clone(new Range32.ptr(68352, 68405, 1), Range32), $clone(new Range32.ptr(68416, 68437, 1), Range32), $clone(new Range32.ptr(68448, 68466, 1), Range32), $clone(new Range32.ptr(68480, 68497, 1), Range32), $clone(new Range32.ptr(68608, 68680, 1), Range32), $clone(new Range32.ptr(68736, 68786, 1), Range32), $clone(new Range32.ptr(68800, 68850, 1), Range32), $clone(new Range32.ptr(68864, 68899, 1), Range32), $clone(new Range32.ptr(69248, 69289, 1), Range32), $clone(new Range32.ptr(69296, 69297, 1), Range32), $clone(new Range32.ptr(69376, 69404, 1), Range32), $clone(new Range32.ptr(69415, 69424, 9), Range32), $clone(new Range32.ptr(69425, 69445, 1), Range32), $clone(new Range32.ptr(69552, 69572, 1), Range32), $clone(new Range32.ptr(69600, 69622, 1), Range32), $clone(new Range32.ptr(69635, 69687, 1), Range32), $clone(new Range32.ptr(69763, 69807, 1), Range32), $clone(new Range32.ptr(69840, 69864, 1), Range32), $clone(new Range32.ptr(69891, 69926, 1), Range32), $clone(new Range32.ptr(69956, 69959, 3), Range32), $clone(new Range32.ptr(69968, 70002, 1), Range32), $clone(new Range32.ptr(70006, 70019, 13), Range32), $clone(new Range32.ptr(70020, 70066, 1), Range32), $clone(new Range32.ptr(70081, 70084, 1), Range32), $clone(new Range32.ptr(70106, 70108, 2), Range32), $clone(new Range32.ptr(70144, 70161, 1), Range32), $clone(new Range32.ptr(70163, 70187, 1), Range32), $clone(new Range32.ptr(70272, 70278, 1), Range32), $clone(new Range32.ptr(70280, 70282, 2), Range32), $clone(new Range32.ptr(70283, 70285, 1), Range32), $clone(new Range32.ptr(70287, 70301, 1), Range32), $clone(new Range32.ptr(70303, 70312, 1), Range32), $clone(new Range32.ptr(70320, 70366, 1), Range32), $clone(new Range32.ptr(70405, 70412, 1), Range32), $clone(new Range32.ptr(70415, 70416, 1), Range32), $clone(new Range32.ptr(70419, 70440, 1), Range32), $clone(new Range32.ptr(70442, 70448, 1), Range32), $clone(new Range32.ptr(70450, 70451, 1), Range32), $clone(new Range32.ptr(70453, 70457, 1), Range32), $clone(new Range32.ptr(70461, 70480, 19), Range32), $clone(new Range32.ptr(70493, 70497, 1), Range32), $clone(new Range32.ptr(70656, 70708, 1), Range32), $clone(new Range32.ptr(70727, 70730, 1), Range32), $clone(new Range32.ptr(70751, 70753, 1), Range32), $clone(new Range32.ptr(70784, 70831, 1), Range32), $clone(new Range32.ptr(70852, 70853, 1), Range32), $clone(new Range32.ptr(70855, 71040, 185), Range32), $clone(new Range32.ptr(71041, 71086, 1), Range32), $clone(new Range32.ptr(71128, 71131, 1), Range32), $clone(new Range32.ptr(71168, 71215, 1), Range32), $clone(new Range32.ptr(71236, 71296, 60), Range32), $clone(new Range32.ptr(71297, 71338, 1), Range32), $clone(new Range32.ptr(71352, 71424, 72), Range32), $clone(new Range32.ptr(71425, 71450, 1), Range32), $clone(new Range32.ptr(71680, 71723, 1), Range32), $clone(new Range32.ptr(71840, 71903, 1), Range32), $clone(new Range32.ptr(71935, 71942, 1), Range32), $clone(new Range32.ptr(71945, 71948, 3), Range32), $clone(new Range32.ptr(71949, 71955, 1), Range32), $clone(new Range32.ptr(71957, 71958, 1), Range32), $clone(new Range32.ptr(71960, 71983, 1), Range32), $clone(new Range32.ptr(71999, 72001, 2), Range32), $clone(new Range32.ptr(72096, 72103, 1), Range32), $clone(new Range32.ptr(72106, 72144, 1), Range32), $clone(new Range32.ptr(72161, 72163, 2), Range32), $clone(new Range32.ptr(72192, 72203, 11), Range32), $clone(new Range32.ptr(72204, 72242, 1), Range32), $clone(new Range32.ptr(72250, 72272, 22), Range32), $clone(new Range32.ptr(72284, 72329, 1), Range32), $clone(new Range32.ptr(72349, 72384, 35), Range32), $clone(new Range32.ptr(72385, 72440, 1), Range32), $clone(new Range32.ptr(72704, 72712, 1), Range32), $clone(new Range32.ptr(72714, 72750, 1), Range32), $clone(new Range32.ptr(72768, 72818, 50), Range32), $clone(new Range32.ptr(72819, 72847, 1), Range32), $clone(new Range32.ptr(72960, 72966, 1), Range32), $clone(new Range32.ptr(72968, 72969, 1), Range32), $clone(new Range32.ptr(72971, 73008, 1), Range32), $clone(new Range32.ptr(73030, 73056, 26), Range32), $clone(new Range32.ptr(73057, 73061, 1), Range32), $clone(new Range32.ptr(73063, 73064, 1), Range32), $clone(new Range32.ptr(73066, 73097, 1), Range32), $clone(new Range32.ptr(73112, 73440, 328), Range32), $clone(new Range32.ptr(73441, 73458, 1), Range32), $clone(new Range32.ptr(73648, 73728, 80), Range32), $clone(new Range32.ptr(73729, 74649, 1), Range32), $clone(new Range32.ptr(74880, 75075, 1), Range32), $clone(new Range32.ptr(77824, 78894, 1), Range32), $clone(new Range32.ptr(82944, 83526, 1), Range32), $clone(new Range32.ptr(92160, 92728, 1), Range32), $clone(new Range32.ptr(92736, 92766, 1), Range32), $clone(new Range32.ptr(92880, 92909, 1), Range32), $clone(new Range32.ptr(92928, 92975, 1), Range32), $clone(new Range32.ptr(92992, 92995, 1), Range32), $clone(new Range32.ptr(93027, 93047, 1), Range32), $clone(new Range32.ptr(93053, 93071, 1), Range32), $clone(new Range32.ptr(93760, 93823, 1), Range32), $clone(new Range32.ptr(93952, 94026, 1), Range32), $clone(new Range32.ptr(94032, 94099, 67), Range32), $clone(new Range32.ptr(94100, 94111, 1), Range32), $clone(new Range32.ptr(94176, 94177, 1), Range32), $clone(new Range32.ptr(94179, 94208, 29), Range32), $clone(new Range32.ptr(94209, 100343, 1), Range32), $clone(new Range32.ptr(100352, 101589, 1), Range32), $clone(new Range32.ptr(101632, 101640, 1), Range32), $clone(new Range32.ptr(110592, 110878, 1), Range32), $clone(new Range32.ptr(110928, 110930, 1), Range32), $clone(new Range32.ptr(110948, 110951, 1), Range32), $clone(new Range32.ptr(110960, 111355, 1), Range32), $clone(new Range32.ptr(113664, 113770, 1), Range32), $clone(new Range32.ptr(113776, 113788, 1), Range32), $clone(new Range32.ptr(113792, 113800, 1), Range32), $clone(new Range32.ptr(113808, 113817, 1), Range32), $clone(new Range32.ptr(119808, 119892, 1), Range32), $clone(new Range32.ptr(119894, 119964, 1), Range32), $clone(new Range32.ptr(119966, 119967, 1), Range32), $clone(new Range32.ptr(119970, 119973, 3), Range32), $clone(new Range32.ptr(119974, 119977, 3), Range32), $clone(new Range32.ptr(119978, 119980, 1), Range32), $clone(new Range32.ptr(119982, 119993, 1), Range32), $clone(new Range32.ptr(119995, 119997, 2), Range32), $clone(new Range32.ptr(119998, 120003, 1), Range32), $clone(new Range32.ptr(120005, 120069, 1), Range32), $clone(new Range32.ptr(120071, 120074, 1), Range32), $clone(new Range32.ptr(120077, 120084, 1), Range32), $clone(new Range32.ptr(120086, 120092, 1), Range32), $clone(new Range32.ptr(120094, 120121, 1), Range32), $clone(new Range32.ptr(120123, 120126, 1), Range32), $clone(new Range32.ptr(120128, 120132, 1), Range32), $clone(new Range32.ptr(120134, 120138, 4), Range32), $clone(new Range32.ptr(120139, 120144, 1), Range32), $clone(new Range32.ptr(120146, 120485, 1), Range32), $clone(new Range32.ptr(120488, 120512, 1), Range32), $clone(new Range32.ptr(120514, 120538, 1), Range32), $clone(new Range32.ptr(120540, 120570, 1), Range32), $clone(new Range32.ptr(120572, 120596, 1), Range32), $clone(new Range32.ptr(120598, 120628, 1), Range32), $clone(new Range32.ptr(120630, 120654, 1), Range32), $clone(new Range32.ptr(120656, 120686, 1), Range32), $clone(new Range32.ptr(120688, 120712, 1), Range32), $clone(new Range32.ptr(120714, 120744, 1), Range32), $clone(new Range32.ptr(120746, 120770, 1), Range32), $clone(new Range32.ptr(120772, 120779, 1), Range32), $clone(new Range32.ptr(123136, 123180, 1), Range32), $clone(new Range32.ptr(123191, 123197, 1), Range32), $clone(new Range32.ptr(123214, 123584, 370), Range32), $clone(new Range32.ptr(123585, 123627, 1), Range32), $clone(new Range32.ptr(124928, 125124, 1), Range32), $clone(new Range32.ptr(125184, 125251, 1), Range32), $clone(new Range32.ptr(125259, 126464, 1205), Range32), $clone(new Range32.ptr(126465, 126467, 1), Range32), $clone(new Range32.ptr(126469, 126495, 1), Range32), $clone(new Range32.ptr(126497, 126498, 1), Range32), $clone(new Range32.ptr(126500, 126503, 3), Range32), $clone(new Range32.ptr(126505, 126514, 1), Range32), $clone(new Range32.ptr(126516, 126519, 1), Range32), $clone(new Range32.ptr(126521, 126523, 2), Range32), $clone(new Range32.ptr(126530, 126535, 5), Range32), $clone(new Range32.ptr(126537, 126541, 2), Range32), $clone(new Range32.ptr(126542, 126543, 1), Range32), $clone(new Range32.ptr(126545, 126546, 1), Range32), $clone(new Range32.ptr(126548, 126551, 3), Range32), $clone(new Range32.ptr(126553, 126561, 2), Range32), $clone(new Range32.ptr(126562, 126564, 2), Range32), $clone(new Range32.ptr(126567, 126570, 1), Range32), $clone(new Range32.ptr(126572, 126578, 1), Range32), $clone(new Range32.ptr(126580, 126583, 1), Range32), $clone(new Range32.ptr(126585, 126588, 1), Range32), $clone(new Range32.ptr(126590, 126592, 2), Range32), $clone(new Range32.ptr(126593, 126601, 1), Range32), $clone(new Range32.ptr(126603, 126619, 1), Range32), $clone(new Range32.ptr(126625, 126627, 1), Range32), $clone(new Range32.ptr(126629, 126633, 1), Range32), $clone(new Range32.ptr(126635, 126651, 1), Range32), $clone(new Range32.ptr(131072, 173789, 1), Range32), $clone(new Range32.ptr(173824, 177972, 1), Range32), $clone(new Range32.ptr(177984, 178205, 1), Range32), $clone(new Range32.ptr(178208, 183969, 1), Range32), $clone(new Range32.ptr(183984, 191456, 1), Range32), $clone(new Range32.ptr(194560, 195101, 1), Range32), $clone(new Range32.ptr(196608, 201546, 1), Range32)]), 6); - _Ll = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(97, 122, 1), Range16), $clone(new Range16.ptr(181, 223, 42), Range16), $clone(new Range16.ptr(224, 246, 1), Range16), $clone(new Range16.ptr(248, 255, 1), Range16), $clone(new Range16.ptr(257, 311, 2), Range16), $clone(new Range16.ptr(312, 328, 2), Range16), $clone(new Range16.ptr(329, 375, 2), Range16), $clone(new Range16.ptr(378, 382, 2), Range16), $clone(new Range16.ptr(383, 384, 1), Range16), $clone(new Range16.ptr(387, 389, 2), Range16), $clone(new Range16.ptr(392, 396, 4), Range16), $clone(new Range16.ptr(397, 402, 5), Range16), $clone(new Range16.ptr(405, 409, 4), Range16), $clone(new Range16.ptr(410, 411, 1), Range16), $clone(new Range16.ptr(414, 417, 3), Range16), $clone(new Range16.ptr(419, 421, 2), Range16), $clone(new Range16.ptr(424, 426, 2), Range16), $clone(new Range16.ptr(427, 429, 2), Range16), $clone(new Range16.ptr(432, 436, 4), Range16), $clone(new Range16.ptr(438, 441, 3), Range16), $clone(new Range16.ptr(442, 445, 3), Range16), $clone(new Range16.ptr(446, 447, 1), Range16), $clone(new Range16.ptr(454, 460, 3), Range16), $clone(new Range16.ptr(462, 476, 2), Range16), $clone(new Range16.ptr(477, 495, 2), Range16), $clone(new Range16.ptr(496, 499, 3), Range16), $clone(new Range16.ptr(501, 505, 4), Range16), $clone(new Range16.ptr(507, 563, 2), Range16), $clone(new Range16.ptr(564, 569, 1), Range16), $clone(new Range16.ptr(572, 575, 3), Range16), $clone(new Range16.ptr(576, 578, 2), Range16), $clone(new Range16.ptr(583, 591, 2), Range16), $clone(new Range16.ptr(592, 659, 1), Range16), $clone(new Range16.ptr(661, 687, 1), Range16), $clone(new Range16.ptr(881, 883, 2), Range16), $clone(new Range16.ptr(887, 891, 4), Range16), $clone(new Range16.ptr(892, 893, 1), Range16), $clone(new Range16.ptr(912, 940, 28), Range16), $clone(new Range16.ptr(941, 974, 1), Range16), $clone(new Range16.ptr(976, 977, 1), Range16), $clone(new Range16.ptr(981, 983, 1), Range16), $clone(new Range16.ptr(985, 1007, 2), Range16), $clone(new Range16.ptr(1008, 1011, 1), Range16), $clone(new Range16.ptr(1013, 1019, 3), Range16), $clone(new Range16.ptr(1020, 1072, 52), Range16), $clone(new Range16.ptr(1073, 1119, 1), Range16), $clone(new Range16.ptr(1121, 1153, 2), Range16), $clone(new Range16.ptr(1163, 1215, 2), Range16), $clone(new Range16.ptr(1218, 1230, 2), Range16), $clone(new Range16.ptr(1231, 1327, 2), Range16), $clone(new Range16.ptr(1376, 1416, 1), Range16), $clone(new Range16.ptr(4304, 4346, 1), Range16), $clone(new Range16.ptr(4349, 4351, 1), Range16), $clone(new Range16.ptr(5112, 5117, 1), Range16), $clone(new Range16.ptr(7296, 7304, 1), Range16), $clone(new Range16.ptr(7424, 7467, 1), Range16), $clone(new Range16.ptr(7531, 7543, 1), Range16), $clone(new Range16.ptr(7545, 7578, 1), Range16), $clone(new Range16.ptr(7681, 7829, 2), Range16), $clone(new Range16.ptr(7830, 7837, 1), Range16), $clone(new Range16.ptr(7839, 7935, 2), Range16), $clone(new Range16.ptr(7936, 7943, 1), Range16), $clone(new Range16.ptr(7952, 7957, 1), Range16), $clone(new Range16.ptr(7968, 7975, 1), Range16), $clone(new Range16.ptr(7984, 7991, 1), Range16), $clone(new Range16.ptr(8000, 8005, 1), Range16), $clone(new Range16.ptr(8016, 8023, 1), Range16), $clone(new Range16.ptr(8032, 8039, 1), Range16), $clone(new Range16.ptr(8048, 8061, 1), Range16), $clone(new Range16.ptr(8064, 8071, 1), Range16), $clone(new Range16.ptr(8080, 8087, 1), Range16), $clone(new Range16.ptr(8096, 8103, 1), Range16), $clone(new Range16.ptr(8112, 8116, 1), Range16), $clone(new Range16.ptr(8118, 8119, 1), Range16), $clone(new Range16.ptr(8126, 8130, 4), Range16), $clone(new Range16.ptr(8131, 8132, 1), Range16), $clone(new Range16.ptr(8134, 8135, 1), Range16), $clone(new Range16.ptr(8144, 8147, 1), Range16), $clone(new Range16.ptr(8150, 8151, 1), Range16), $clone(new Range16.ptr(8160, 8167, 1), Range16), $clone(new Range16.ptr(8178, 8180, 1), Range16), $clone(new Range16.ptr(8182, 8183, 1), Range16), $clone(new Range16.ptr(8458, 8462, 4), Range16), $clone(new Range16.ptr(8463, 8467, 4), Range16), $clone(new Range16.ptr(8495, 8505, 5), Range16), $clone(new Range16.ptr(8508, 8509, 1), Range16), $clone(new Range16.ptr(8518, 8521, 1), Range16), $clone(new Range16.ptr(8526, 8580, 54), Range16), $clone(new Range16.ptr(11312, 11358, 1), Range16), $clone(new Range16.ptr(11361, 11365, 4), Range16), $clone(new Range16.ptr(11366, 11372, 2), Range16), $clone(new Range16.ptr(11377, 11379, 2), Range16), $clone(new Range16.ptr(11380, 11382, 2), Range16), $clone(new Range16.ptr(11383, 11387, 1), Range16), $clone(new Range16.ptr(11393, 11491, 2), Range16), $clone(new Range16.ptr(11492, 11500, 8), Range16), $clone(new Range16.ptr(11502, 11507, 5), Range16), $clone(new Range16.ptr(11520, 11557, 1), Range16), $clone(new Range16.ptr(11559, 11565, 6), Range16), $clone(new Range16.ptr(42561, 42605, 2), Range16), $clone(new Range16.ptr(42625, 42651, 2), Range16), $clone(new Range16.ptr(42787, 42799, 2), Range16), $clone(new Range16.ptr(42800, 42801, 1), Range16), $clone(new Range16.ptr(42803, 42865, 2), Range16), $clone(new Range16.ptr(42866, 42872, 1), Range16), $clone(new Range16.ptr(42874, 42876, 2), Range16), $clone(new Range16.ptr(42879, 42887, 2), Range16), $clone(new Range16.ptr(42892, 42894, 2), Range16), $clone(new Range16.ptr(42897, 42899, 2), Range16), $clone(new Range16.ptr(42900, 42901, 1), Range16), $clone(new Range16.ptr(42903, 42921, 2), Range16), $clone(new Range16.ptr(42927, 42933, 6), Range16), $clone(new Range16.ptr(42935, 42943, 2), Range16), $clone(new Range16.ptr(42947, 42952, 5), Range16), $clone(new Range16.ptr(42954, 42998, 44), Range16), $clone(new Range16.ptr(43002, 43824, 822), Range16), $clone(new Range16.ptr(43825, 43866, 1), Range16), $clone(new Range16.ptr(43872, 43880, 1), Range16), $clone(new Range16.ptr(43888, 43967, 1), Range16), $clone(new Range16.ptr(64256, 64262, 1), Range16), $clone(new Range16.ptr(64275, 64279, 1), Range16), $clone(new Range16.ptr(65345, 65370, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(66600, 66639, 1), Range32), $clone(new Range32.ptr(66776, 66811, 1), Range32), $clone(new Range32.ptr(68800, 68850, 1), Range32), $clone(new Range32.ptr(71872, 71903, 1), Range32), $clone(new Range32.ptr(93792, 93823, 1), Range32), $clone(new Range32.ptr(119834, 119859, 1), Range32), $clone(new Range32.ptr(119886, 119892, 1), Range32), $clone(new Range32.ptr(119894, 119911, 1), Range32), $clone(new Range32.ptr(119938, 119963, 1), Range32), $clone(new Range32.ptr(119990, 119993, 1), Range32), $clone(new Range32.ptr(119995, 119997, 2), Range32), $clone(new Range32.ptr(119998, 120003, 1), Range32), $clone(new Range32.ptr(120005, 120015, 1), Range32), $clone(new Range32.ptr(120042, 120067, 1), Range32), $clone(new Range32.ptr(120094, 120119, 1), Range32), $clone(new Range32.ptr(120146, 120171, 1), Range32), $clone(new Range32.ptr(120198, 120223, 1), Range32), $clone(new Range32.ptr(120250, 120275, 1), Range32), $clone(new Range32.ptr(120302, 120327, 1), Range32), $clone(new Range32.ptr(120354, 120379, 1), Range32), $clone(new Range32.ptr(120406, 120431, 1), Range32), $clone(new Range32.ptr(120458, 120485, 1), Range32), $clone(new Range32.ptr(120514, 120538, 1), Range32), $clone(new Range32.ptr(120540, 120545, 1), Range32), $clone(new Range32.ptr(120572, 120596, 1), Range32), $clone(new Range32.ptr(120598, 120603, 1), Range32), $clone(new Range32.ptr(120630, 120654, 1), Range32), $clone(new Range32.ptr(120656, 120661, 1), Range32), $clone(new Range32.ptr(120688, 120712, 1), Range32), $clone(new Range32.ptr(120714, 120719, 1), Range32), $clone(new Range32.ptr(120746, 120770, 1), Range32), $clone(new Range32.ptr(120772, 120777, 1), Range32), $clone(new Range32.ptr(120779, 125218, 4439), Range32), $clone(new Range32.ptr(125219, 125251, 1), Range32)]), 4); - _Lm = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(688, 705, 1), Range16), $clone(new Range16.ptr(710, 721, 1), Range16), $clone(new Range16.ptr(736, 740, 1), Range16), $clone(new Range16.ptr(748, 750, 2), Range16), $clone(new Range16.ptr(884, 890, 6), Range16), $clone(new Range16.ptr(1369, 1600, 231), Range16), $clone(new Range16.ptr(1765, 1766, 1), Range16), $clone(new Range16.ptr(2036, 2037, 1), Range16), $clone(new Range16.ptr(2042, 2074, 32), Range16), $clone(new Range16.ptr(2084, 2088, 4), Range16), $clone(new Range16.ptr(2417, 3654, 1237), Range16), $clone(new Range16.ptr(3782, 4348, 566), Range16), $clone(new Range16.ptr(6103, 6211, 108), Range16), $clone(new Range16.ptr(6823, 7288, 465), Range16), $clone(new Range16.ptr(7289, 7293, 1), Range16), $clone(new Range16.ptr(7468, 7530, 1), Range16), $clone(new Range16.ptr(7544, 7579, 35), Range16), $clone(new Range16.ptr(7580, 7615, 1), Range16), $clone(new Range16.ptr(8305, 8319, 14), Range16), $clone(new Range16.ptr(8336, 8348, 1), Range16), $clone(new Range16.ptr(11388, 11389, 1), Range16), $clone(new Range16.ptr(11631, 11823, 192), Range16), $clone(new Range16.ptr(12293, 12337, 44), Range16), $clone(new Range16.ptr(12338, 12341, 1), Range16), $clone(new Range16.ptr(12347, 12445, 98), Range16), $clone(new Range16.ptr(12446, 12540, 94), Range16), $clone(new Range16.ptr(12541, 12542, 1), Range16), $clone(new Range16.ptr(40981, 42232, 1251), Range16), $clone(new Range16.ptr(42233, 42237, 1), Range16), $clone(new Range16.ptr(42508, 42623, 115), Range16), $clone(new Range16.ptr(42652, 42653, 1), Range16), $clone(new Range16.ptr(42775, 42783, 1), Range16), $clone(new Range16.ptr(42864, 42888, 24), Range16), $clone(new Range16.ptr(43000, 43001, 1), Range16), $clone(new Range16.ptr(43471, 43494, 23), Range16), $clone(new Range16.ptr(43632, 43741, 109), Range16), $clone(new Range16.ptr(43763, 43764, 1), Range16), $clone(new Range16.ptr(43868, 43871, 1), Range16), $clone(new Range16.ptr(43881, 65392, 21511), Range16), $clone(new Range16.ptr(65438, 65439, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(92992, 92995, 1), Range32), $clone(new Range32.ptr(94099, 94111, 1), Range32), $clone(new Range32.ptr(94176, 94177, 1), Range32), $clone(new Range32.ptr(94179, 123191, 29012), Range32), $clone(new Range32.ptr(123192, 123197, 1), Range32), $clone(new Range32.ptr(125259, 125259, 1), Range32)]), 0); - _Lo = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(170, 186, 16), Range16), $clone(new Range16.ptr(443, 448, 5), Range16), $clone(new Range16.ptr(449, 451, 1), Range16), $clone(new Range16.ptr(660, 1488, 828), Range16), $clone(new Range16.ptr(1489, 1514, 1), Range16), $clone(new Range16.ptr(1519, 1522, 1), Range16), $clone(new Range16.ptr(1568, 1599, 1), Range16), $clone(new Range16.ptr(1601, 1610, 1), Range16), $clone(new Range16.ptr(1646, 1647, 1), Range16), $clone(new Range16.ptr(1649, 1747, 1), Range16), $clone(new Range16.ptr(1749, 1774, 25), Range16), $clone(new Range16.ptr(1775, 1786, 11), Range16), $clone(new Range16.ptr(1787, 1788, 1), Range16), $clone(new Range16.ptr(1791, 1808, 17), Range16), $clone(new Range16.ptr(1810, 1839, 1), Range16), $clone(new Range16.ptr(1869, 1957, 1), Range16), $clone(new Range16.ptr(1969, 1994, 25), Range16), $clone(new Range16.ptr(1995, 2026, 1), Range16), $clone(new Range16.ptr(2048, 2069, 1), Range16), $clone(new Range16.ptr(2112, 2136, 1), Range16), $clone(new Range16.ptr(2144, 2154, 1), Range16), $clone(new Range16.ptr(2208, 2228, 1), Range16), $clone(new Range16.ptr(2230, 2247, 1), Range16), $clone(new Range16.ptr(2308, 2361, 1), Range16), $clone(new Range16.ptr(2365, 2384, 19), Range16), $clone(new Range16.ptr(2392, 2401, 1), Range16), $clone(new Range16.ptr(2418, 2432, 1), Range16), $clone(new Range16.ptr(2437, 2444, 1), Range16), $clone(new Range16.ptr(2447, 2448, 1), Range16), $clone(new Range16.ptr(2451, 2472, 1), Range16), $clone(new Range16.ptr(2474, 2480, 1), Range16), $clone(new Range16.ptr(2482, 2486, 4), Range16), $clone(new Range16.ptr(2487, 2489, 1), Range16), $clone(new Range16.ptr(2493, 2510, 17), Range16), $clone(new Range16.ptr(2524, 2525, 1), Range16), $clone(new Range16.ptr(2527, 2529, 1), Range16), $clone(new Range16.ptr(2544, 2545, 1), Range16), $clone(new Range16.ptr(2556, 2565, 9), Range16), $clone(new Range16.ptr(2566, 2570, 1), Range16), $clone(new Range16.ptr(2575, 2576, 1), Range16), $clone(new Range16.ptr(2579, 2600, 1), Range16), $clone(new Range16.ptr(2602, 2608, 1), Range16), $clone(new Range16.ptr(2610, 2611, 1), Range16), $clone(new Range16.ptr(2613, 2614, 1), Range16), $clone(new Range16.ptr(2616, 2617, 1), Range16), $clone(new Range16.ptr(2649, 2652, 1), Range16), $clone(new Range16.ptr(2654, 2674, 20), Range16), $clone(new Range16.ptr(2675, 2676, 1), Range16), $clone(new Range16.ptr(2693, 2701, 1), Range16), $clone(new Range16.ptr(2703, 2705, 1), Range16), $clone(new Range16.ptr(2707, 2728, 1), Range16), $clone(new Range16.ptr(2730, 2736, 1), Range16), $clone(new Range16.ptr(2738, 2739, 1), Range16), $clone(new Range16.ptr(2741, 2745, 1), Range16), $clone(new Range16.ptr(2749, 2768, 19), Range16), $clone(new Range16.ptr(2784, 2785, 1), Range16), $clone(new Range16.ptr(2809, 2821, 12), Range16), $clone(new Range16.ptr(2822, 2828, 1), Range16), $clone(new Range16.ptr(2831, 2832, 1), Range16), $clone(new Range16.ptr(2835, 2856, 1), Range16), $clone(new Range16.ptr(2858, 2864, 1), Range16), $clone(new Range16.ptr(2866, 2867, 1), Range16), $clone(new Range16.ptr(2869, 2873, 1), Range16), $clone(new Range16.ptr(2877, 2908, 31), Range16), $clone(new Range16.ptr(2909, 2911, 2), Range16), $clone(new Range16.ptr(2912, 2913, 1), Range16), $clone(new Range16.ptr(2929, 2947, 18), Range16), $clone(new Range16.ptr(2949, 2954, 1), Range16), $clone(new Range16.ptr(2958, 2960, 1), Range16), $clone(new Range16.ptr(2962, 2965, 1), Range16), $clone(new Range16.ptr(2969, 2970, 1), Range16), $clone(new Range16.ptr(2972, 2974, 2), Range16), $clone(new Range16.ptr(2975, 2979, 4), Range16), $clone(new Range16.ptr(2980, 2984, 4), Range16), $clone(new Range16.ptr(2985, 2986, 1), Range16), $clone(new Range16.ptr(2990, 3001, 1), Range16), $clone(new Range16.ptr(3024, 3077, 53), Range16), $clone(new Range16.ptr(3078, 3084, 1), Range16), $clone(new Range16.ptr(3086, 3088, 1), Range16), $clone(new Range16.ptr(3090, 3112, 1), Range16), $clone(new Range16.ptr(3114, 3129, 1), Range16), $clone(new Range16.ptr(3133, 3160, 27), Range16), $clone(new Range16.ptr(3161, 3162, 1), Range16), $clone(new Range16.ptr(3168, 3169, 1), Range16), $clone(new Range16.ptr(3200, 3205, 5), Range16), $clone(new Range16.ptr(3206, 3212, 1), Range16), $clone(new Range16.ptr(3214, 3216, 1), Range16), $clone(new Range16.ptr(3218, 3240, 1), Range16), $clone(new Range16.ptr(3242, 3251, 1), Range16), $clone(new Range16.ptr(3253, 3257, 1), Range16), $clone(new Range16.ptr(3261, 3294, 33), Range16), $clone(new Range16.ptr(3296, 3297, 1), Range16), $clone(new Range16.ptr(3313, 3314, 1), Range16), $clone(new Range16.ptr(3332, 3340, 1), Range16), $clone(new Range16.ptr(3342, 3344, 1), Range16), $clone(new Range16.ptr(3346, 3386, 1), Range16), $clone(new Range16.ptr(3389, 3406, 17), Range16), $clone(new Range16.ptr(3412, 3414, 1), Range16), $clone(new Range16.ptr(3423, 3425, 1), Range16), $clone(new Range16.ptr(3450, 3455, 1), Range16), $clone(new Range16.ptr(3461, 3478, 1), Range16), $clone(new Range16.ptr(3482, 3505, 1), Range16), $clone(new Range16.ptr(3507, 3515, 1), Range16), $clone(new Range16.ptr(3517, 3520, 3), Range16), $clone(new Range16.ptr(3521, 3526, 1), Range16), $clone(new Range16.ptr(3585, 3632, 1), Range16), $clone(new Range16.ptr(3634, 3635, 1), Range16), $clone(new Range16.ptr(3648, 3653, 1), Range16), $clone(new Range16.ptr(3713, 3714, 1), Range16), $clone(new Range16.ptr(3716, 3718, 2), Range16), $clone(new Range16.ptr(3719, 3722, 1), Range16), $clone(new Range16.ptr(3724, 3747, 1), Range16), $clone(new Range16.ptr(3749, 3751, 2), Range16), $clone(new Range16.ptr(3752, 3760, 1), Range16), $clone(new Range16.ptr(3762, 3763, 1), Range16), $clone(new Range16.ptr(3773, 3776, 3), Range16), $clone(new Range16.ptr(3777, 3780, 1), Range16), $clone(new Range16.ptr(3804, 3807, 1), Range16), $clone(new Range16.ptr(3840, 3904, 64), Range16), $clone(new Range16.ptr(3905, 3911, 1), Range16), $clone(new Range16.ptr(3913, 3948, 1), Range16), $clone(new Range16.ptr(3976, 3980, 1), Range16), $clone(new Range16.ptr(4096, 4138, 1), Range16), $clone(new Range16.ptr(4159, 4176, 17), Range16), $clone(new Range16.ptr(4177, 4181, 1), Range16), $clone(new Range16.ptr(4186, 4189, 1), Range16), $clone(new Range16.ptr(4193, 4197, 4), Range16), $clone(new Range16.ptr(4198, 4206, 8), Range16), $clone(new Range16.ptr(4207, 4208, 1), Range16), $clone(new Range16.ptr(4213, 4225, 1), Range16), $clone(new Range16.ptr(4238, 4352, 114), Range16), $clone(new Range16.ptr(4353, 4680, 1), Range16), $clone(new Range16.ptr(4682, 4685, 1), Range16), $clone(new Range16.ptr(4688, 4694, 1), Range16), $clone(new Range16.ptr(4696, 4698, 2), Range16), $clone(new Range16.ptr(4699, 4701, 1), Range16), $clone(new Range16.ptr(4704, 4744, 1), Range16), $clone(new Range16.ptr(4746, 4749, 1), Range16), $clone(new Range16.ptr(4752, 4784, 1), Range16), $clone(new Range16.ptr(4786, 4789, 1), Range16), $clone(new Range16.ptr(4792, 4798, 1), Range16), $clone(new Range16.ptr(4800, 4802, 2), Range16), $clone(new Range16.ptr(4803, 4805, 1), Range16), $clone(new Range16.ptr(4808, 4822, 1), Range16), $clone(new Range16.ptr(4824, 4880, 1), Range16), $clone(new Range16.ptr(4882, 4885, 1), Range16), $clone(new Range16.ptr(4888, 4954, 1), Range16), $clone(new Range16.ptr(4992, 5007, 1), Range16), $clone(new Range16.ptr(5121, 5740, 1), Range16), $clone(new Range16.ptr(5743, 5759, 1), Range16), $clone(new Range16.ptr(5761, 5786, 1), Range16), $clone(new Range16.ptr(5792, 5866, 1), Range16), $clone(new Range16.ptr(5873, 5880, 1), Range16), $clone(new Range16.ptr(5888, 5900, 1), Range16), $clone(new Range16.ptr(5902, 5905, 1), Range16), $clone(new Range16.ptr(5920, 5937, 1), Range16), $clone(new Range16.ptr(5952, 5969, 1), Range16), $clone(new Range16.ptr(5984, 5996, 1), Range16), $clone(new Range16.ptr(5998, 6000, 1), Range16), $clone(new Range16.ptr(6016, 6067, 1), Range16), $clone(new Range16.ptr(6108, 6176, 68), Range16), $clone(new Range16.ptr(6177, 6210, 1), Range16), $clone(new Range16.ptr(6212, 6264, 1), Range16), $clone(new Range16.ptr(6272, 6276, 1), Range16), $clone(new Range16.ptr(6279, 6312, 1), Range16), $clone(new Range16.ptr(6314, 6320, 6), Range16), $clone(new Range16.ptr(6321, 6389, 1), Range16), $clone(new Range16.ptr(6400, 6430, 1), Range16), $clone(new Range16.ptr(6480, 6509, 1), Range16), $clone(new Range16.ptr(6512, 6516, 1), Range16), $clone(new Range16.ptr(6528, 6571, 1), Range16), $clone(new Range16.ptr(6576, 6601, 1), Range16), $clone(new Range16.ptr(6656, 6678, 1), Range16), $clone(new Range16.ptr(6688, 6740, 1), Range16), $clone(new Range16.ptr(6917, 6963, 1), Range16), $clone(new Range16.ptr(6981, 6987, 1), Range16), $clone(new Range16.ptr(7043, 7072, 1), Range16), $clone(new Range16.ptr(7086, 7087, 1), Range16), $clone(new Range16.ptr(7098, 7141, 1), Range16), $clone(new Range16.ptr(7168, 7203, 1), Range16), $clone(new Range16.ptr(7245, 7247, 1), Range16), $clone(new Range16.ptr(7258, 7287, 1), Range16), $clone(new Range16.ptr(7401, 7404, 1), Range16), $clone(new Range16.ptr(7406, 7411, 1), Range16), $clone(new Range16.ptr(7413, 7414, 1), Range16), $clone(new Range16.ptr(7418, 8501, 1083), Range16), $clone(new Range16.ptr(8502, 8504, 1), Range16), $clone(new Range16.ptr(11568, 11623, 1), Range16), $clone(new Range16.ptr(11648, 11670, 1), Range16), $clone(new Range16.ptr(11680, 11686, 1), Range16), $clone(new Range16.ptr(11688, 11694, 1), Range16), $clone(new Range16.ptr(11696, 11702, 1), Range16), $clone(new Range16.ptr(11704, 11710, 1), Range16), $clone(new Range16.ptr(11712, 11718, 1), Range16), $clone(new Range16.ptr(11720, 11726, 1), Range16), $clone(new Range16.ptr(11728, 11734, 1), Range16), $clone(new Range16.ptr(11736, 11742, 1), Range16), $clone(new Range16.ptr(12294, 12348, 54), Range16), $clone(new Range16.ptr(12353, 12438, 1), Range16), $clone(new Range16.ptr(12447, 12449, 2), Range16), $clone(new Range16.ptr(12450, 12538, 1), Range16), $clone(new Range16.ptr(12543, 12549, 6), Range16), $clone(new Range16.ptr(12550, 12591, 1), Range16), $clone(new Range16.ptr(12593, 12686, 1), Range16), $clone(new Range16.ptr(12704, 12735, 1), Range16), $clone(new Range16.ptr(12784, 12799, 1), Range16), $clone(new Range16.ptr(13312, 19903, 1), Range16), $clone(new Range16.ptr(19968, 40956, 1), Range16), $clone(new Range16.ptr(40960, 40980, 1), Range16), $clone(new Range16.ptr(40982, 42124, 1), Range16), $clone(new Range16.ptr(42192, 42231, 1), Range16), $clone(new Range16.ptr(42240, 42507, 1), Range16), $clone(new Range16.ptr(42512, 42527, 1), Range16), $clone(new Range16.ptr(42538, 42539, 1), Range16), $clone(new Range16.ptr(42606, 42656, 50), Range16), $clone(new Range16.ptr(42657, 42725, 1), Range16), $clone(new Range16.ptr(42895, 42999, 104), Range16), $clone(new Range16.ptr(43003, 43009, 1), Range16), $clone(new Range16.ptr(43011, 43013, 1), Range16), $clone(new Range16.ptr(43015, 43018, 1), Range16), $clone(new Range16.ptr(43020, 43042, 1), Range16), $clone(new Range16.ptr(43072, 43123, 1), Range16), $clone(new Range16.ptr(43138, 43187, 1), Range16), $clone(new Range16.ptr(43250, 43255, 1), Range16), $clone(new Range16.ptr(43259, 43261, 2), Range16), $clone(new Range16.ptr(43262, 43274, 12), Range16), $clone(new Range16.ptr(43275, 43301, 1), Range16), $clone(new Range16.ptr(43312, 43334, 1), Range16), $clone(new Range16.ptr(43360, 43388, 1), Range16), $clone(new Range16.ptr(43396, 43442, 1), Range16), $clone(new Range16.ptr(43488, 43492, 1), Range16), $clone(new Range16.ptr(43495, 43503, 1), Range16), $clone(new Range16.ptr(43514, 43518, 1), Range16), $clone(new Range16.ptr(43520, 43560, 1), Range16), $clone(new Range16.ptr(43584, 43586, 1), Range16), $clone(new Range16.ptr(43588, 43595, 1), Range16), $clone(new Range16.ptr(43616, 43631, 1), Range16), $clone(new Range16.ptr(43633, 43638, 1), Range16), $clone(new Range16.ptr(43642, 43646, 4), Range16), $clone(new Range16.ptr(43647, 43695, 1), Range16), $clone(new Range16.ptr(43697, 43701, 4), Range16), $clone(new Range16.ptr(43702, 43705, 3), Range16), $clone(new Range16.ptr(43706, 43709, 1), Range16), $clone(new Range16.ptr(43712, 43714, 2), Range16), $clone(new Range16.ptr(43739, 43740, 1), Range16), $clone(new Range16.ptr(43744, 43754, 1), Range16), $clone(new Range16.ptr(43762, 43777, 15), Range16), $clone(new Range16.ptr(43778, 43782, 1), Range16), $clone(new Range16.ptr(43785, 43790, 1), Range16), $clone(new Range16.ptr(43793, 43798, 1), Range16), $clone(new Range16.ptr(43808, 43814, 1), Range16), $clone(new Range16.ptr(43816, 43822, 1), Range16), $clone(new Range16.ptr(43968, 44002, 1), Range16), $clone(new Range16.ptr(44032, 55203, 1), Range16), $clone(new Range16.ptr(55216, 55238, 1), Range16), $clone(new Range16.ptr(55243, 55291, 1), Range16), $clone(new Range16.ptr(63744, 64109, 1), Range16), $clone(new Range16.ptr(64112, 64217, 1), Range16), $clone(new Range16.ptr(64285, 64287, 2), Range16), $clone(new Range16.ptr(64288, 64296, 1), Range16), $clone(new Range16.ptr(64298, 64310, 1), Range16), $clone(new Range16.ptr(64312, 64316, 1), Range16), $clone(new Range16.ptr(64318, 64320, 2), Range16), $clone(new Range16.ptr(64321, 64323, 2), Range16), $clone(new Range16.ptr(64324, 64326, 2), Range16), $clone(new Range16.ptr(64327, 64433, 1), Range16), $clone(new Range16.ptr(64467, 64829, 1), Range16), $clone(new Range16.ptr(64848, 64911, 1), Range16), $clone(new Range16.ptr(64914, 64967, 1), Range16), $clone(new Range16.ptr(65008, 65019, 1), Range16), $clone(new Range16.ptr(65136, 65140, 1), Range16), $clone(new Range16.ptr(65142, 65276, 1), Range16), $clone(new Range16.ptr(65382, 65391, 1), Range16), $clone(new Range16.ptr(65393, 65437, 1), Range16), $clone(new Range16.ptr(65440, 65470, 1), Range16), $clone(new Range16.ptr(65474, 65479, 1), Range16), $clone(new Range16.ptr(65482, 65487, 1), Range16), $clone(new Range16.ptr(65490, 65495, 1), Range16), $clone(new Range16.ptr(65498, 65500, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65536, 65547, 1), Range32), $clone(new Range32.ptr(65549, 65574, 1), Range32), $clone(new Range32.ptr(65576, 65594, 1), Range32), $clone(new Range32.ptr(65596, 65597, 1), Range32), $clone(new Range32.ptr(65599, 65613, 1), Range32), $clone(new Range32.ptr(65616, 65629, 1), Range32), $clone(new Range32.ptr(65664, 65786, 1), Range32), $clone(new Range32.ptr(66176, 66204, 1), Range32), $clone(new Range32.ptr(66208, 66256, 1), Range32), $clone(new Range32.ptr(66304, 66335, 1), Range32), $clone(new Range32.ptr(66349, 66368, 1), Range32), $clone(new Range32.ptr(66370, 66377, 1), Range32), $clone(new Range32.ptr(66384, 66421, 1), Range32), $clone(new Range32.ptr(66432, 66461, 1), Range32), $clone(new Range32.ptr(66464, 66499, 1), Range32), $clone(new Range32.ptr(66504, 66511, 1), Range32), $clone(new Range32.ptr(66640, 66717, 1), Range32), $clone(new Range32.ptr(66816, 66855, 1), Range32), $clone(new Range32.ptr(66864, 66915, 1), Range32), $clone(new Range32.ptr(67072, 67382, 1), Range32), $clone(new Range32.ptr(67392, 67413, 1), Range32), $clone(new Range32.ptr(67424, 67431, 1), Range32), $clone(new Range32.ptr(67584, 67589, 1), Range32), $clone(new Range32.ptr(67592, 67594, 2), Range32), $clone(new Range32.ptr(67595, 67637, 1), Range32), $clone(new Range32.ptr(67639, 67640, 1), Range32), $clone(new Range32.ptr(67644, 67647, 3), Range32), $clone(new Range32.ptr(67648, 67669, 1), Range32), $clone(new Range32.ptr(67680, 67702, 1), Range32), $clone(new Range32.ptr(67712, 67742, 1), Range32), $clone(new Range32.ptr(67808, 67826, 1), Range32), $clone(new Range32.ptr(67828, 67829, 1), Range32), $clone(new Range32.ptr(67840, 67861, 1), Range32), $clone(new Range32.ptr(67872, 67897, 1), Range32), $clone(new Range32.ptr(67968, 68023, 1), Range32), $clone(new Range32.ptr(68030, 68031, 1), Range32), $clone(new Range32.ptr(68096, 68112, 16), Range32), $clone(new Range32.ptr(68113, 68115, 1), Range32), $clone(new Range32.ptr(68117, 68119, 1), Range32), $clone(new Range32.ptr(68121, 68149, 1), Range32), $clone(new Range32.ptr(68192, 68220, 1), Range32), $clone(new Range32.ptr(68224, 68252, 1), Range32), $clone(new Range32.ptr(68288, 68295, 1), Range32), $clone(new Range32.ptr(68297, 68324, 1), Range32), $clone(new Range32.ptr(68352, 68405, 1), Range32), $clone(new Range32.ptr(68416, 68437, 1), Range32), $clone(new Range32.ptr(68448, 68466, 1), Range32), $clone(new Range32.ptr(68480, 68497, 1), Range32), $clone(new Range32.ptr(68608, 68680, 1), Range32), $clone(new Range32.ptr(68864, 68899, 1), Range32), $clone(new Range32.ptr(69248, 69289, 1), Range32), $clone(new Range32.ptr(69296, 69297, 1), Range32), $clone(new Range32.ptr(69376, 69404, 1), Range32), $clone(new Range32.ptr(69415, 69424, 9), Range32), $clone(new Range32.ptr(69425, 69445, 1), Range32), $clone(new Range32.ptr(69552, 69572, 1), Range32), $clone(new Range32.ptr(69600, 69622, 1), Range32), $clone(new Range32.ptr(69635, 69687, 1), Range32), $clone(new Range32.ptr(69763, 69807, 1), Range32), $clone(new Range32.ptr(69840, 69864, 1), Range32), $clone(new Range32.ptr(69891, 69926, 1), Range32), $clone(new Range32.ptr(69956, 69959, 3), Range32), $clone(new Range32.ptr(69968, 70002, 1), Range32), $clone(new Range32.ptr(70006, 70019, 13), Range32), $clone(new Range32.ptr(70020, 70066, 1), Range32), $clone(new Range32.ptr(70081, 70084, 1), Range32), $clone(new Range32.ptr(70106, 70108, 2), Range32), $clone(new Range32.ptr(70144, 70161, 1), Range32), $clone(new Range32.ptr(70163, 70187, 1), Range32), $clone(new Range32.ptr(70272, 70278, 1), Range32), $clone(new Range32.ptr(70280, 70282, 2), Range32), $clone(new Range32.ptr(70283, 70285, 1), Range32), $clone(new Range32.ptr(70287, 70301, 1), Range32), $clone(new Range32.ptr(70303, 70312, 1), Range32), $clone(new Range32.ptr(70320, 70366, 1), Range32), $clone(new Range32.ptr(70405, 70412, 1), Range32), $clone(new Range32.ptr(70415, 70416, 1), Range32), $clone(new Range32.ptr(70419, 70440, 1), Range32), $clone(new Range32.ptr(70442, 70448, 1), Range32), $clone(new Range32.ptr(70450, 70451, 1), Range32), $clone(new Range32.ptr(70453, 70457, 1), Range32), $clone(new Range32.ptr(70461, 70480, 19), Range32), $clone(new Range32.ptr(70493, 70497, 1), Range32), $clone(new Range32.ptr(70656, 70708, 1), Range32), $clone(new Range32.ptr(70727, 70730, 1), Range32), $clone(new Range32.ptr(70751, 70753, 1), Range32), $clone(new Range32.ptr(70784, 70831, 1), Range32), $clone(new Range32.ptr(70852, 70853, 1), Range32), $clone(new Range32.ptr(70855, 71040, 185), Range32), $clone(new Range32.ptr(71041, 71086, 1), Range32), $clone(new Range32.ptr(71128, 71131, 1), Range32), $clone(new Range32.ptr(71168, 71215, 1), Range32), $clone(new Range32.ptr(71236, 71296, 60), Range32), $clone(new Range32.ptr(71297, 71338, 1), Range32), $clone(new Range32.ptr(71352, 71424, 72), Range32), $clone(new Range32.ptr(71425, 71450, 1), Range32), $clone(new Range32.ptr(71680, 71723, 1), Range32), $clone(new Range32.ptr(71935, 71942, 1), Range32), $clone(new Range32.ptr(71945, 71948, 3), Range32), $clone(new Range32.ptr(71949, 71955, 1), Range32), $clone(new Range32.ptr(71957, 71958, 1), Range32), $clone(new Range32.ptr(71960, 71983, 1), Range32), $clone(new Range32.ptr(71999, 72001, 2), Range32), $clone(new Range32.ptr(72096, 72103, 1), Range32), $clone(new Range32.ptr(72106, 72144, 1), Range32), $clone(new Range32.ptr(72161, 72163, 2), Range32), $clone(new Range32.ptr(72192, 72203, 11), Range32), $clone(new Range32.ptr(72204, 72242, 1), Range32), $clone(new Range32.ptr(72250, 72272, 22), Range32), $clone(new Range32.ptr(72284, 72329, 1), Range32), $clone(new Range32.ptr(72349, 72384, 35), Range32), $clone(new Range32.ptr(72385, 72440, 1), Range32), $clone(new Range32.ptr(72704, 72712, 1), Range32), $clone(new Range32.ptr(72714, 72750, 1), Range32), $clone(new Range32.ptr(72768, 72818, 50), Range32), $clone(new Range32.ptr(72819, 72847, 1), Range32), $clone(new Range32.ptr(72960, 72966, 1), Range32), $clone(new Range32.ptr(72968, 72969, 1), Range32), $clone(new Range32.ptr(72971, 73008, 1), Range32), $clone(new Range32.ptr(73030, 73056, 26), Range32), $clone(new Range32.ptr(73057, 73061, 1), Range32), $clone(new Range32.ptr(73063, 73064, 1), Range32), $clone(new Range32.ptr(73066, 73097, 1), Range32), $clone(new Range32.ptr(73112, 73440, 328), Range32), $clone(new Range32.ptr(73441, 73458, 1), Range32), $clone(new Range32.ptr(73648, 73728, 80), Range32), $clone(new Range32.ptr(73729, 74649, 1), Range32), $clone(new Range32.ptr(74880, 75075, 1), Range32), $clone(new Range32.ptr(77824, 78894, 1), Range32), $clone(new Range32.ptr(82944, 83526, 1), Range32), $clone(new Range32.ptr(92160, 92728, 1), Range32), $clone(new Range32.ptr(92736, 92766, 1), Range32), $clone(new Range32.ptr(92880, 92909, 1), Range32), $clone(new Range32.ptr(92928, 92975, 1), Range32), $clone(new Range32.ptr(93027, 93047, 1), Range32), $clone(new Range32.ptr(93053, 93071, 1), Range32), $clone(new Range32.ptr(93952, 94026, 1), Range32), $clone(new Range32.ptr(94032, 94208, 176), Range32), $clone(new Range32.ptr(94209, 100343, 1), Range32), $clone(new Range32.ptr(100352, 101589, 1), Range32), $clone(new Range32.ptr(101632, 101640, 1), Range32), $clone(new Range32.ptr(110592, 110878, 1), Range32), $clone(new Range32.ptr(110928, 110930, 1), Range32), $clone(new Range32.ptr(110948, 110951, 1), Range32), $clone(new Range32.ptr(110960, 111355, 1), Range32), $clone(new Range32.ptr(113664, 113770, 1), Range32), $clone(new Range32.ptr(113776, 113788, 1), Range32), $clone(new Range32.ptr(113792, 113800, 1), Range32), $clone(new Range32.ptr(113808, 113817, 1), Range32), $clone(new Range32.ptr(123136, 123180, 1), Range32), $clone(new Range32.ptr(123214, 123584, 370), Range32), $clone(new Range32.ptr(123585, 123627, 1), Range32), $clone(new Range32.ptr(124928, 125124, 1), Range32), $clone(new Range32.ptr(126464, 126467, 1), Range32), $clone(new Range32.ptr(126469, 126495, 1), Range32), $clone(new Range32.ptr(126497, 126498, 1), Range32), $clone(new Range32.ptr(126500, 126503, 3), Range32), $clone(new Range32.ptr(126505, 126514, 1), Range32), $clone(new Range32.ptr(126516, 126519, 1), Range32), $clone(new Range32.ptr(126521, 126523, 2), Range32), $clone(new Range32.ptr(126530, 126535, 5), Range32), $clone(new Range32.ptr(126537, 126541, 2), Range32), $clone(new Range32.ptr(126542, 126543, 1), Range32), $clone(new Range32.ptr(126545, 126546, 1), Range32), $clone(new Range32.ptr(126548, 126551, 3), Range32), $clone(new Range32.ptr(126553, 126561, 2), Range32), $clone(new Range32.ptr(126562, 126564, 2), Range32), $clone(new Range32.ptr(126567, 126570, 1), Range32), $clone(new Range32.ptr(126572, 126578, 1), Range32), $clone(new Range32.ptr(126580, 126583, 1), Range32), $clone(new Range32.ptr(126585, 126588, 1), Range32), $clone(new Range32.ptr(126590, 126592, 2), Range32), $clone(new Range32.ptr(126593, 126601, 1), Range32), $clone(new Range32.ptr(126603, 126619, 1), Range32), $clone(new Range32.ptr(126625, 126627, 1), Range32), $clone(new Range32.ptr(126629, 126633, 1), Range32), $clone(new Range32.ptr(126635, 126651, 1), Range32), $clone(new Range32.ptr(131072, 173789, 1), Range32), $clone(new Range32.ptr(173824, 177972, 1), Range32), $clone(new Range32.ptr(177984, 178205, 1), Range32), $clone(new Range32.ptr(178208, 183969, 1), Range32), $clone(new Range32.ptr(183984, 191456, 1), Range32), $clone(new Range32.ptr(194560, 195101, 1), Range32), $clone(new Range32.ptr(196608, 201546, 1), Range32)]), 1); + _L = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(65, 90, 1), Range16), $clone(new Range16.ptr(97, 122, 1), Range16), $clone(new Range16.ptr(170, 181, 11), Range16), $clone(new Range16.ptr(186, 192, 6), Range16), $clone(new Range16.ptr(193, 214, 1), Range16), $clone(new Range16.ptr(216, 246, 1), Range16), $clone(new Range16.ptr(248, 705, 1), Range16), $clone(new Range16.ptr(710, 721, 1), Range16), $clone(new Range16.ptr(736, 740, 1), Range16), $clone(new Range16.ptr(748, 750, 2), Range16), $clone(new Range16.ptr(880, 884, 1), Range16), $clone(new Range16.ptr(886, 887, 1), Range16), $clone(new Range16.ptr(890, 893, 1), Range16), $clone(new Range16.ptr(895, 902, 7), Range16), $clone(new Range16.ptr(904, 906, 1), Range16), $clone(new Range16.ptr(908, 910, 2), Range16), $clone(new Range16.ptr(911, 929, 1), Range16), $clone(new Range16.ptr(931, 1013, 1), Range16), $clone(new Range16.ptr(1015, 1153, 1), Range16), $clone(new Range16.ptr(1162, 1327, 1), Range16), $clone(new Range16.ptr(1329, 1366, 1), Range16), $clone(new Range16.ptr(1369, 1376, 7), Range16), $clone(new Range16.ptr(1377, 1416, 1), Range16), $clone(new Range16.ptr(1488, 1514, 1), Range16), $clone(new Range16.ptr(1519, 1522, 1), Range16), $clone(new Range16.ptr(1568, 1610, 1), Range16), $clone(new Range16.ptr(1646, 1647, 1), Range16), $clone(new Range16.ptr(1649, 1747, 1), Range16), $clone(new Range16.ptr(1749, 1765, 16), Range16), $clone(new Range16.ptr(1766, 1774, 8), Range16), $clone(new Range16.ptr(1775, 1786, 11), Range16), $clone(new Range16.ptr(1787, 1788, 1), Range16), $clone(new Range16.ptr(1791, 1808, 17), Range16), $clone(new Range16.ptr(1810, 1839, 1), Range16), $clone(new Range16.ptr(1869, 1957, 1), Range16), $clone(new Range16.ptr(1969, 1994, 25), Range16), $clone(new Range16.ptr(1995, 2026, 1), Range16), $clone(new Range16.ptr(2036, 2037, 1), Range16), $clone(new Range16.ptr(2042, 2048, 6), Range16), $clone(new Range16.ptr(2049, 2069, 1), Range16), $clone(new Range16.ptr(2074, 2084, 10), Range16), $clone(new Range16.ptr(2088, 2112, 24), Range16), $clone(new Range16.ptr(2113, 2136, 1), Range16), $clone(new Range16.ptr(2144, 2154, 1), Range16), $clone(new Range16.ptr(2160, 2183, 1), Range16), $clone(new Range16.ptr(2185, 2190, 1), Range16), $clone(new Range16.ptr(2208, 2249, 1), Range16), $clone(new Range16.ptr(2308, 2361, 1), Range16), $clone(new Range16.ptr(2365, 2384, 19), Range16), $clone(new Range16.ptr(2392, 2401, 1), Range16), $clone(new Range16.ptr(2417, 2432, 1), Range16), $clone(new Range16.ptr(2437, 2444, 1), Range16), $clone(new Range16.ptr(2447, 2448, 1), Range16), $clone(new Range16.ptr(2451, 2472, 1), Range16), $clone(new Range16.ptr(2474, 2480, 1), Range16), $clone(new Range16.ptr(2482, 2486, 4), Range16), $clone(new Range16.ptr(2487, 2489, 1), Range16), $clone(new Range16.ptr(2493, 2510, 17), Range16), $clone(new Range16.ptr(2524, 2525, 1), Range16), $clone(new Range16.ptr(2527, 2529, 1), Range16), $clone(new Range16.ptr(2544, 2545, 1), Range16), $clone(new Range16.ptr(2556, 2565, 9), Range16), $clone(new Range16.ptr(2566, 2570, 1), Range16), $clone(new Range16.ptr(2575, 2576, 1), Range16), $clone(new Range16.ptr(2579, 2600, 1), Range16), $clone(new Range16.ptr(2602, 2608, 1), Range16), $clone(new Range16.ptr(2610, 2611, 1), Range16), $clone(new Range16.ptr(2613, 2614, 1), Range16), $clone(new Range16.ptr(2616, 2617, 1), Range16), $clone(new Range16.ptr(2649, 2652, 1), Range16), $clone(new Range16.ptr(2654, 2674, 20), Range16), $clone(new Range16.ptr(2675, 2676, 1), Range16), $clone(new Range16.ptr(2693, 2701, 1), Range16), $clone(new Range16.ptr(2703, 2705, 1), Range16), $clone(new Range16.ptr(2707, 2728, 1), Range16), $clone(new Range16.ptr(2730, 2736, 1), Range16), $clone(new Range16.ptr(2738, 2739, 1), Range16), $clone(new Range16.ptr(2741, 2745, 1), Range16), $clone(new Range16.ptr(2749, 2768, 19), Range16), $clone(new Range16.ptr(2784, 2785, 1), Range16), $clone(new Range16.ptr(2809, 2821, 12), Range16), $clone(new Range16.ptr(2822, 2828, 1), Range16), $clone(new Range16.ptr(2831, 2832, 1), Range16), $clone(new Range16.ptr(2835, 2856, 1), Range16), $clone(new Range16.ptr(2858, 2864, 1), Range16), $clone(new Range16.ptr(2866, 2867, 1), Range16), $clone(new Range16.ptr(2869, 2873, 1), Range16), $clone(new Range16.ptr(2877, 2908, 31), Range16), $clone(new Range16.ptr(2909, 2911, 2), Range16), $clone(new Range16.ptr(2912, 2913, 1), Range16), $clone(new Range16.ptr(2929, 2947, 18), Range16), $clone(new Range16.ptr(2949, 2954, 1), Range16), $clone(new Range16.ptr(2958, 2960, 1), Range16), $clone(new Range16.ptr(2962, 2965, 1), Range16), $clone(new Range16.ptr(2969, 2970, 1), Range16), $clone(new Range16.ptr(2972, 2974, 2), Range16), $clone(new Range16.ptr(2975, 2979, 4), Range16), $clone(new Range16.ptr(2980, 2984, 4), Range16), $clone(new Range16.ptr(2985, 2986, 1), Range16), $clone(new Range16.ptr(2990, 3001, 1), Range16), $clone(new Range16.ptr(3024, 3077, 53), Range16), $clone(new Range16.ptr(3078, 3084, 1), Range16), $clone(new Range16.ptr(3086, 3088, 1), Range16), $clone(new Range16.ptr(3090, 3112, 1), Range16), $clone(new Range16.ptr(3114, 3129, 1), Range16), $clone(new Range16.ptr(3133, 3160, 27), Range16), $clone(new Range16.ptr(3161, 3162, 1), Range16), $clone(new Range16.ptr(3165, 3168, 3), Range16), $clone(new Range16.ptr(3169, 3200, 31), Range16), $clone(new Range16.ptr(3205, 3212, 1), Range16), $clone(new Range16.ptr(3214, 3216, 1), Range16), $clone(new Range16.ptr(3218, 3240, 1), Range16), $clone(new Range16.ptr(3242, 3251, 1), Range16), $clone(new Range16.ptr(3253, 3257, 1), Range16), $clone(new Range16.ptr(3261, 3293, 32), Range16), $clone(new Range16.ptr(3294, 3296, 2), Range16), $clone(new Range16.ptr(3297, 3313, 16), Range16), $clone(new Range16.ptr(3314, 3332, 18), Range16), $clone(new Range16.ptr(3333, 3340, 1), Range16), $clone(new Range16.ptr(3342, 3344, 1), Range16), $clone(new Range16.ptr(3346, 3386, 1), Range16), $clone(new Range16.ptr(3389, 3406, 17), Range16), $clone(new Range16.ptr(3412, 3414, 1), Range16), $clone(new Range16.ptr(3423, 3425, 1), Range16), $clone(new Range16.ptr(3450, 3455, 1), Range16), $clone(new Range16.ptr(3461, 3478, 1), Range16), $clone(new Range16.ptr(3482, 3505, 1), Range16), $clone(new Range16.ptr(3507, 3515, 1), Range16), $clone(new Range16.ptr(3517, 3520, 3), Range16), $clone(new Range16.ptr(3521, 3526, 1), Range16), $clone(new Range16.ptr(3585, 3632, 1), Range16), $clone(new Range16.ptr(3634, 3635, 1), Range16), $clone(new Range16.ptr(3648, 3654, 1), Range16), $clone(new Range16.ptr(3713, 3714, 1), Range16), $clone(new Range16.ptr(3716, 3718, 2), Range16), $clone(new Range16.ptr(3719, 3722, 1), Range16), $clone(new Range16.ptr(3724, 3747, 1), Range16), $clone(new Range16.ptr(3749, 3751, 2), Range16), $clone(new Range16.ptr(3752, 3760, 1), Range16), $clone(new Range16.ptr(3762, 3763, 1), Range16), $clone(new Range16.ptr(3773, 3776, 3), Range16), $clone(new Range16.ptr(3777, 3780, 1), Range16), $clone(new Range16.ptr(3782, 3804, 22), Range16), $clone(new Range16.ptr(3805, 3807, 1), Range16), $clone(new Range16.ptr(3840, 3904, 64), Range16), $clone(new Range16.ptr(3905, 3911, 1), Range16), $clone(new Range16.ptr(3913, 3948, 1), Range16), $clone(new Range16.ptr(3976, 3980, 1), Range16), $clone(new Range16.ptr(4096, 4138, 1), Range16), $clone(new Range16.ptr(4159, 4176, 17), Range16), $clone(new Range16.ptr(4177, 4181, 1), Range16), $clone(new Range16.ptr(4186, 4189, 1), Range16), $clone(new Range16.ptr(4193, 4197, 4), Range16), $clone(new Range16.ptr(4198, 4206, 8), Range16), $clone(new Range16.ptr(4207, 4208, 1), Range16), $clone(new Range16.ptr(4213, 4225, 1), Range16), $clone(new Range16.ptr(4238, 4256, 18), Range16), $clone(new Range16.ptr(4257, 4293, 1), Range16), $clone(new Range16.ptr(4295, 4301, 6), Range16), $clone(new Range16.ptr(4304, 4346, 1), Range16), $clone(new Range16.ptr(4348, 4680, 1), Range16), $clone(new Range16.ptr(4682, 4685, 1), Range16), $clone(new Range16.ptr(4688, 4694, 1), Range16), $clone(new Range16.ptr(4696, 4698, 2), Range16), $clone(new Range16.ptr(4699, 4701, 1), Range16), $clone(new Range16.ptr(4704, 4744, 1), Range16), $clone(new Range16.ptr(4746, 4749, 1), Range16), $clone(new Range16.ptr(4752, 4784, 1), Range16), $clone(new Range16.ptr(4786, 4789, 1), Range16), $clone(new Range16.ptr(4792, 4798, 1), Range16), $clone(new Range16.ptr(4800, 4802, 2), Range16), $clone(new Range16.ptr(4803, 4805, 1), Range16), $clone(new Range16.ptr(4808, 4822, 1), Range16), $clone(new Range16.ptr(4824, 4880, 1), Range16), $clone(new Range16.ptr(4882, 4885, 1), Range16), $clone(new Range16.ptr(4888, 4954, 1), Range16), $clone(new Range16.ptr(4992, 5007, 1), Range16), $clone(new Range16.ptr(5024, 5109, 1), Range16), $clone(new Range16.ptr(5112, 5117, 1), Range16), $clone(new Range16.ptr(5121, 5740, 1), Range16), $clone(new Range16.ptr(5743, 5759, 1), Range16), $clone(new Range16.ptr(5761, 5786, 1), Range16), $clone(new Range16.ptr(5792, 5866, 1), Range16), $clone(new Range16.ptr(5873, 5880, 1), Range16), $clone(new Range16.ptr(5888, 5905, 1), Range16), $clone(new Range16.ptr(5919, 5937, 1), Range16), $clone(new Range16.ptr(5952, 5969, 1), Range16), $clone(new Range16.ptr(5984, 5996, 1), Range16), $clone(new Range16.ptr(5998, 6000, 1), Range16), $clone(new Range16.ptr(6016, 6067, 1), Range16), $clone(new Range16.ptr(6103, 6108, 5), Range16), $clone(new Range16.ptr(6176, 6264, 1), Range16), $clone(new Range16.ptr(6272, 6276, 1), Range16), $clone(new Range16.ptr(6279, 6312, 1), Range16), $clone(new Range16.ptr(6314, 6320, 6), Range16), $clone(new Range16.ptr(6321, 6389, 1), Range16), $clone(new Range16.ptr(6400, 6430, 1), Range16), $clone(new Range16.ptr(6480, 6509, 1), Range16), $clone(new Range16.ptr(6512, 6516, 1), Range16), $clone(new Range16.ptr(6528, 6571, 1), Range16), $clone(new Range16.ptr(6576, 6601, 1), Range16), $clone(new Range16.ptr(6656, 6678, 1), Range16), $clone(new Range16.ptr(6688, 6740, 1), Range16), $clone(new Range16.ptr(6823, 6917, 94), Range16), $clone(new Range16.ptr(6918, 6963, 1), Range16), $clone(new Range16.ptr(6981, 6988, 1), Range16), $clone(new Range16.ptr(7043, 7072, 1), Range16), $clone(new Range16.ptr(7086, 7087, 1), Range16), $clone(new Range16.ptr(7098, 7141, 1), Range16), $clone(new Range16.ptr(7168, 7203, 1), Range16), $clone(new Range16.ptr(7245, 7247, 1), Range16), $clone(new Range16.ptr(7258, 7293, 1), Range16), $clone(new Range16.ptr(7296, 7304, 1), Range16), $clone(new Range16.ptr(7312, 7354, 1), Range16), $clone(new Range16.ptr(7357, 7359, 1), Range16), $clone(new Range16.ptr(7401, 7404, 1), Range16), $clone(new Range16.ptr(7406, 7411, 1), Range16), $clone(new Range16.ptr(7413, 7414, 1), Range16), $clone(new Range16.ptr(7418, 7424, 6), Range16), $clone(new Range16.ptr(7425, 7615, 1), Range16), $clone(new Range16.ptr(7680, 7957, 1), Range16), $clone(new Range16.ptr(7960, 7965, 1), Range16), $clone(new Range16.ptr(7968, 8005, 1), Range16), $clone(new Range16.ptr(8008, 8013, 1), Range16), $clone(new Range16.ptr(8016, 8023, 1), Range16), $clone(new Range16.ptr(8025, 8031, 2), Range16), $clone(new Range16.ptr(8032, 8061, 1), Range16), $clone(new Range16.ptr(8064, 8116, 1), Range16), $clone(new Range16.ptr(8118, 8124, 1), Range16), $clone(new Range16.ptr(8126, 8130, 4), Range16), $clone(new Range16.ptr(8131, 8132, 1), Range16), $clone(new Range16.ptr(8134, 8140, 1), Range16), $clone(new Range16.ptr(8144, 8147, 1), Range16), $clone(new Range16.ptr(8150, 8155, 1), Range16), $clone(new Range16.ptr(8160, 8172, 1), Range16), $clone(new Range16.ptr(8178, 8180, 1), Range16), $clone(new Range16.ptr(8182, 8188, 1), Range16), $clone(new Range16.ptr(8305, 8319, 14), Range16), $clone(new Range16.ptr(8336, 8348, 1), Range16), $clone(new Range16.ptr(8450, 8455, 5), Range16), $clone(new Range16.ptr(8458, 8467, 1), Range16), $clone(new Range16.ptr(8469, 8473, 4), Range16), $clone(new Range16.ptr(8474, 8477, 1), Range16), $clone(new Range16.ptr(8484, 8490, 2), Range16), $clone(new Range16.ptr(8491, 8493, 1), Range16), $clone(new Range16.ptr(8495, 8505, 1), Range16), $clone(new Range16.ptr(8508, 8511, 1), Range16), $clone(new Range16.ptr(8517, 8521, 1), Range16), $clone(new Range16.ptr(8526, 8579, 53), Range16), $clone(new Range16.ptr(8580, 11264, 2684), Range16), $clone(new Range16.ptr(11265, 11492, 1), Range16), $clone(new Range16.ptr(11499, 11502, 1), Range16), $clone(new Range16.ptr(11506, 11507, 1), Range16), $clone(new Range16.ptr(11520, 11557, 1), Range16), $clone(new Range16.ptr(11559, 11565, 6), Range16), $clone(new Range16.ptr(11568, 11623, 1), Range16), $clone(new Range16.ptr(11631, 11648, 17), Range16), $clone(new Range16.ptr(11649, 11670, 1), Range16), $clone(new Range16.ptr(11680, 11686, 1), Range16), $clone(new Range16.ptr(11688, 11694, 1), Range16), $clone(new Range16.ptr(11696, 11702, 1), Range16), $clone(new Range16.ptr(11704, 11710, 1), Range16), $clone(new Range16.ptr(11712, 11718, 1), Range16), $clone(new Range16.ptr(11720, 11726, 1), Range16), $clone(new Range16.ptr(11728, 11734, 1), Range16), $clone(new Range16.ptr(11736, 11742, 1), Range16), $clone(new Range16.ptr(11823, 12293, 470), Range16), $clone(new Range16.ptr(12294, 12337, 43), Range16), $clone(new Range16.ptr(12338, 12341, 1), Range16), $clone(new Range16.ptr(12347, 12348, 1), Range16), $clone(new Range16.ptr(12353, 12438, 1), Range16), $clone(new Range16.ptr(12445, 12447, 1), Range16), $clone(new Range16.ptr(12449, 12538, 1), Range16), $clone(new Range16.ptr(12540, 12543, 1), Range16), $clone(new Range16.ptr(12549, 12591, 1), Range16), $clone(new Range16.ptr(12593, 12686, 1), Range16), $clone(new Range16.ptr(12704, 12735, 1), Range16), $clone(new Range16.ptr(12784, 12799, 1), Range16), $clone(new Range16.ptr(13312, 19903, 1), Range16), $clone(new Range16.ptr(19968, 42124, 1), Range16), $clone(new Range16.ptr(42192, 42237, 1), Range16), $clone(new Range16.ptr(42240, 42508, 1), Range16), $clone(new Range16.ptr(42512, 42527, 1), Range16), $clone(new Range16.ptr(42538, 42539, 1), Range16), $clone(new Range16.ptr(42560, 42606, 1), Range16), $clone(new Range16.ptr(42623, 42653, 1), Range16), $clone(new Range16.ptr(42656, 42725, 1), Range16), $clone(new Range16.ptr(42775, 42783, 1), Range16), $clone(new Range16.ptr(42786, 42888, 1), Range16), $clone(new Range16.ptr(42891, 42954, 1), Range16), $clone(new Range16.ptr(42960, 42961, 1), Range16), $clone(new Range16.ptr(42963, 42965, 2), Range16), $clone(new Range16.ptr(42966, 42969, 1), Range16), $clone(new Range16.ptr(42994, 43009, 1), Range16), $clone(new Range16.ptr(43011, 43013, 1), Range16), $clone(new Range16.ptr(43015, 43018, 1), Range16), $clone(new Range16.ptr(43020, 43042, 1), Range16), $clone(new Range16.ptr(43072, 43123, 1), Range16), $clone(new Range16.ptr(43138, 43187, 1), Range16), $clone(new Range16.ptr(43250, 43255, 1), Range16), $clone(new Range16.ptr(43259, 43261, 2), Range16), $clone(new Range16.ptr(43262, 43274, 12), Range16), $clone(new Range16.ptr(43275, 43301, 1), Range16), $clone(new Range16.ptr(43312, 43334, 1), Range16), $clone(new Range16.ptr(43360, 43388, 1), Range16), $clone(new Range16.ptr(43396, 43442, 1), Range16), $clone(new Range16.ptr(43471, 43488, 17), Range16), $clone(new Range16.ptr(43489, 43492, 1), Range16), $clone(new Range16.ptr(43494, 43503, 1), Range16), $clone(new Range16.ptr(43514, 43518, 1), Range16), $clone(new Range16.ptr(43520, 43560, 1), Range16), $clone(new Range16.ptr(43584, 43586, 1), Range16), $clone(new Range16.ptr(43588, 43595, 1), Range16), $clone(new Range16.ptr(43616, 43638, 1), Range16), $clone(new Range16.ptr(43642, 43646, 4), Range16), $clone(new Range16.ptr(43647, 43695, 1), Range16), $clone(new Range16.ptr(43697, 43701, 4), Range16), $clone(new Range16.ptr(43702, 43705, 3), Range16), $clone(new Range16.ptr(43706, 43709, 1), Range16), $clone(new Range16.ptr(43712, 43714, 2), Range16), $clone(new Range16.ptr(43739, 43741, 1), Range16), $clone(new Range16.ptr(43744, 43754, 1), Range16), $clone(new Range16.ptr(43762, 43764, 1), Range16), $clone(new Range16.ptr(43777, 43782, 1), Range16), $clone(new Range16.ptr(43785, 43790, 1), Range16), $clone(new Range16.ptr(43793, 43798, 1), Range16), $clone(new Range16.ptr(43808, 43814, 1), Range16), $clone(new Range16.ptr(43816, 43822, 1), Range16), $clone(new Range16.ptr(43824, 43866, 1), Range16), $clone(new Range16.ptr(43868, 43881, 1), Range16), $clone(new Range16.ptr(43888, 44002, 1), Range16), $clone(new Range16.ptr(44032, 55203, 1), Range16), $clone(new Range16.ptr(55216, 55238, 1), Range16), $clone(new Range16.ptr(55243, 55291, 1), Range16), $clone(new Range16.ptr(63744, 64109, 1), Range16), $clone(new Range16.ptr(64112, 64217, 1), Range16), $clone(new Range16.ptr(64256, 64262, 1), Range16), $clone(new Range16.ptr(64275, 64279, 1), Range16), $clone(new Range16.ptr(64285, 64287, 2), Range16), $clone(new Range16.ptr(64288, 64296, 1), Range16), $clone(new Range16.ptr(64298, 64310, 1), Range16), $clone(new Range16.ptr(64312, 64316, 1), Range16), $clone(new Range16.ptr(64318, 64320, 2), Range16), $clone(new Range16.ptr(64321, 64323, 2), Range16), $clone(new Range16.ptr(64324, 64326, 2), Range16), $clone(new Range16.ptr(64327, 64433, 1), Range16), $clone(new Range16.ptr(64467, 64829, 1), Range16), $clone(new Range16.ptr(64848, 64911, 1), Range16), $clone(new Range16.ptr(64914, 64967, 1), Range16), $clone(new Range16.ptr(65008, 65019, 1), Range16), $clone(new Range16.ptr(65136, 65140, 1), Range16), $clone(new Range16.ptr(65142, 65276, 1), Range16), $clone(new Range16.ptr(65313, 65338, 1), Range16), $clone(new Range16.ptr(65345, 65370, 1), Range16), $clone(new Range16.ptr(65382, 65470, 1), Range16), $clone(new Range16.ptr(65474, 65479, 1), Range16), $clone(new Range16.ptr(65482, 65487, 1), Range16), $clone(new Range16.ptr(65490, 65495, 1), Range16), $clone(new Range16.ptr(65498, 65500, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65536, 65547, 1), Range32), $clone(new Range32.ptr(65549, 65574, 1), Range32), $clone(new Range32.ptr(65576, 65594, 1), Range32), $clone(new Range32.ptr(65596, 65597, 1), Range32), $clone(new Range32.ptr(65599, 65613, 1), Range32), $clone(new Range32.ptr(65616, 65629, 1), Range32), $clone(new Range32.ptr(65664, 65786, 1), Range32), $clone(new Range32.ptr(66176, 66204, 1), Range32), $clone(new Range32.ptr(66208, 66256, 1), Range32), $clone(new Range32.ptr(66304, 66335, 1), Range32), $clone(new Range32.ptr(66349, 66368, 1), Range32), $clone(new Range32.ptr(66370, 66377, 1), Range32), $clone(new Range32.ptr(66384, 66421, 1), Range32), $clone(new Range32.ptr(66432, 66461, 1), Range32), $clone(new Range32.ptr(66464, 66499, 1), Range32), $clone(new Range32.ptr(66504, 66511, 1), Range32), $clone(new Range32.ptr(66560, 66717, 1), Range32), $clone(new Range32.ptr(66736, 66771, 1), Range32), $clone(new Range32.ptr(66776, 66811, 1), Range32), $clone(new Range32.ptr(66816, 66855, 1), Range32), $clone(new Range32.ptr(66864, 66915, 1), Range32), $clone(new Range32.ptr(66928, 66938, 1), Range32), $clone(new Range32.ptr(66940, 66954, 1), Range32), $clone(new Range32.ptr(66956, 66962, 1), Range32), $clone(new Range32.ptr(66964, 66965, 1), Range32), $clone(new Range32.ptr(66967, 66977, 1), Range32), $clone(new Range32.ptr(66979, 66993, 1), Range32), $clone(new Range32.ptr(66995, 67001, 1), Range32), $clone(new Range32.ptr(67003, 67004, 1), Range32), $clone(new Range32.ptr(67072, 67382, 1), Range32), $clone(new Range32.ptr(67392, 67413, 1), Range32), $clone(new Range32.ptr(67424, 67431, 1), Range32), $clone(new Range32.ptr(67456, 67461, 1), Range32), $clone(new Range32.ptr(67463, 67504, 1), Range32), $clone(new Range32.ptr(67506, 67514, 1), Range32), $clone(new Range32.ptr(67584, 67589, 1), Range32), $clone(new Range32.ptr(67592, 67594, 2), Range32), $clone(new Range32.ptr(67595, 67637, 1), Range32), $clone(new Range32.ptr(67639, 67640, 1), Range32), $clone(new Range32.ptr(67644, 67647, 3), Range32), $clone(new Range32.ptr(67648, 67669, 1), Range32), $clone(new Range32.ptr(67680, 67702, 1), Range32), $clone(new Range32.ptr(67712, 67742, 1), Range32), $clone(new Range32.ptr(67808, 67826, 1), Range32), $clone(new Range32.ptr(67828, 67829, 1), Range32), $clone(new Range32.ptr(67840, 67861, 1), Range32), $clone(new Range32.ptr(67872, 67897, 1), Range32), $clone(new Range32.ptr(67968, 68023, 1), Range32), $clone(new Range32.ptr(68030, 68031, 1), Range32), $clone(new Range32.ptr(68096, 68112, 16), Range32), $clone(new Range32.ptr(68113, 68115, 1), Range32), $clone(new Range32.ptr(68117, 68119, 1), Range32), $clone(new Range32.ptr(68121, 68149, 1), Range32), $clone(new Range32.ptr(68192, 68220, 1), Range32), $clone(new Range32.ptr(68224, 68252, 1), Range32), $clone(new Range32.ptr(68288, 68295, 1), Range32), $clone(new Range32.ptr(68297, 68324, 1), Range32), $clone(new Range32.ptr(68352, 68405, 1), Range32), $clone(new Range32.ptr(68416, 68437, 1), Range32), $clone(new Range32.ptr(68448, 68466, 1), Range32), $clone(new Range32.ptr(68480, 68497, 1), Range32), $clone(new Range32.ptr(68608, 68680, 1), Range32), $clone(new Range32.ptr(68736, 68786, 1), Range32), $clone(new Range32.ptr(68800, 68850, 1), Range32), $clone(new Range32.ptr(68864, 68899, 1), Range32), $clone(new Range32.ptr(69248, 69289, 1), Range32), $clone(new Range32.ptr(69296, 69297, 1), Range32), $clone(new Range32.ptr(69376, 69404, 1), Range32), $clone(new Range32.ptr(69415, 69424, 9), Range32), $clone(new Range32.ptr(69425, 69445, 1), Range32), $clone(new Range32.ptr(69488, 69505, 1), Range32), $clone(new Range32.ptr(69552, 69572, 1), Range32), $clone(new Range32.ptr(69600, 69622, 1), Range32), $clone(new Range32.ptr(69635, 69687, 1), Range32), $clone(new Range32.ptr(69745, 69746, 1), Range32), $clone(new Range32.ptr(69749, 69763, 14), Range32), $clone(new Range32.ptr(69764, 69807, 1), Range32), $clone(new Range32.ptr(69840, 69864, 1), Range32), $clone(new Range32.ptr(69891, 69926, 1), Range32), $clone(new Range32.ptr(69956, 69959, 3), Range32), $clone(new Range32.ptr(69968, 70002, 1), Range32), $clone(new Range32.ptr(70006, 70019, 13), Range32), $clone(new Range32.ptr(70020, 70066, 1), Range32), $clone(new Range32.ptr(70081, 70084, 1), Range32), $clone(new Range32.ptr(70106, 70108, 2), Range32), $clone(new Range32.ptr(70144, 70161, 1), Range32), $clone(new Range32.ptr(70163, 70187, 1), Range32), $clone(new Range32.ptr(70207, 70208, 1), Range32), $clone(new Range32.ptr(70272, 70278, 1), Range32), $clone(new Range32.ptr(70280, 70282, 2), Range32), $clone(new Range32.ptr(70283, 70285, 1), Range32), $clone(new Range32.ptr(70287, 70301, 1), Range32), $clone(new Range32.ptr(70303, 70312, 1), Range32), $clone(new Range32.ptr(70320, 70366, 1), Range32), $clone(new Range32.ptr(70405, 70412, 1), Range32), $clone(new Range32.ptr(70415, 70416, 1), Range32), $clone(new Range32.ptr(70419, 70440, 1), Range32), $clone(new Range32.ptr(70442, 70448, 1), Range32), $clone(new Range32.ptr(70450, 70451, 1), Range32), $clone(new Range32.ptr(70453, 70457, 1), Range32), $clone(new Range32.ptr(70461, 70480, 19), Range32), $clone(new Range32.ptr(70493, 70497, 1), Range32), $clone(new Range32.ptr(70656, 70708, 1), Range32), $clone(new Range32.ptr(70727, 70730, 1), Range32), $clone(new Range32.ptr(70751, 70753, 1), Range32), $clone(new Range32.ptr(70784, 70831, 1), Range32), $clone(new Range32.ptr(70852, 70853, 1), Range32), $clone(new Range32.ptr(70855, 71040, 185), Range32), $clone(new Range32.ptr(71041, 71086, 1), Range32), $clone(new Range32.ptr(71128, 71131, 1), Range32), $clone(new Range32.ptr(71168, 71215, 1), Range32), $clone(new Range32.ptr(71236, 71296, 60), Range32), $clone(new Range32.ptr(71297, 71338, 1), Range32), $clone(new Range32.ptr(71352, 71424, 72), Range32), $clone(new Range32.ptr(71425, 71450, 1), Range32), $clone(new Range32.ptr(71488, 71494, 1), Range32), $clone(new Range32.ptr(71680, 71723, 1), Range32), $clone(new Range32.ptr(71840, 71903, 1), Range32), $clone(new Range32.ptr(71935, 71942, 1), Range32), $clone(new Range32.ptr(71945, 71948, 3), Range32), $clone(new Range32.ptr(71949, 71955, 1), Range32), $clone(new Range32.ptr(71957, 71958, 1), Range32), $clone(new Range32.ptr(71960, 71983, 1), Range32), $clone(new Range32.ptr(71999, 72001, 2), Range32), $clone(new Range32.ptr(72096, 72103, 1), Range32), $clone(new Range32.ptr(72106, 72144, 1), Range32), $clone(new Range32.ptr(72161, 72163, 2), Range32), $clone(new Range32.ptr(72192, 72203, 11), Range32), $clone(new Range32.ptr(72204, 72242, 1), Range32), $clone(new Range32.ptr(72250, 72272, 22), Range32), $clone(new Range32.ptr(72284, 72329, 1), Range32), $clone(new Range32.ptr(72349, 72368, 19), Range32), $clone(new Range32.ptr(72369, 72440, 1), Range32), $clone(new Range32.ptr(72704, 72712, 1), Range32), $clone(new Range32.ptr(72714, 72750, 1), Range32), $clone(new Range32.ptr(72768, 72818, 50), Range32), $clone(new Range32.ptr(72819, 72847, 1), Range32), $clone(new Range32.ptr(72960, 72966, 1), Range32), $clone(new Range32.ptr(72968, 72969, 1), Range32), $clone(new Range32.ptr(72971, 73008, 1), Range32), $clone(new Range32.ptr(73030, 73056, 26), Range32), $clone(new Range32.ptr(73057, 73061, 1), Range32), $clone(new Range32.ptr(73063, 73064, 1), Range32), $clone(new Range32.ptr(73066, 73097, 1), Range32), $clone(new Range32.ptr(73112, 73440, 328), Range32), $clone(new Range32.ptr(73441, 73458, 1), Range32), $clone(new Range32.ptr(73474, 73476, 2), Range32), $clone(new Range32.ptr(73477, 73488, 1), Range32), $clone(new Range32.ptr(73490, 73523, 1), Range32), $clone(new Range32.ptr(73648, 73728, 80), Range32), $clone(new Range32.ptr(73729, 74649, 1), Range32), $clone(new Range32.ptr(74880, 75075, 1), Range32), $clone(new Range32.ptr(77712, 77808, 1), Range32), $clone(new Range32.ptr(77824, 78895, 1), Range32), $clone(new Range32.ptr(78913, 78918, 1), Range32), $clone(new Range32.ptr(82944, 83526, 1), Range32), $clone(new Range32.ptr(92160, 92728, 1), Range32), $clone(new Range32.ptr(92736, 92766, 1), Range32), $clone(new Range32.ptr(92784, 92862, 1), Range32), $clone(new Range32.ptr(92880, 92909, 1), Range32), $clone(new Range32.ptr(92928, 92975, 1), Range32), $clone(new Range32.ptr(92992, 92995, 1), Range32), $clone(new Range32.ptr(93027, 93047, 1), Range32), $clone(new Range32.ptr(93053, 93071, 1), Range32), $clone(new Range32.ptr(93760, 93823, 1), Range32), $clone(new Range32.ptr(93952, 94026, 1), Range32), $clone(new Range32.ptr(94032, 94099, 67), Range32), $clone(new Range32.ptr(94100, 94111, 1), Range32), $clone(new Range32.ptr(94176, 94177, 1), Range32), $clone(new Range32.ptr(94179, 94208, 29), Range32), $clone(new Range32.ptr(94209, 100343, 1), Range32), $clone(new Range32.ptr(100352, 101589, 1), Range32), $clone(new Range32.ptr(101632, 101640, 1), Range32), $clone(new Range32.ptr(110576, 110579, 1), Range32), $clone(new Range32.ptr(110581, 110587, 1), Range32), $clone(new Range32.ptr(110589, 110590, 1), Range32), $clone(new Range32.ptr(110592, 110882, 1), Range32), $clone(new Range32.ptr(110898, 110928, 30), Range32), $clone(new Range32.ptr(110929, 110930, 1), Range32), $clone(new Range32.ptr(110933, 110948, 15), Range32), $clone(new Range32.ptr(110949, 110951, 1), Range32), $clone(new Range32.ptr(110960, 111355, 1), Range32), $clone(new Range32.ptr(113664, 113770, 1), Range32), $clone(new Range32.ptr(113776, 113788, 1), Range32), $clone(new Range32.ptr(113792, 113800, 1), Range32), $clone(new Range32.ptr(113808, 113817, 1), Range32), $clone(new Range32.ptr(119808, 119892, 1), Range32), $clone(new Range32.ptr(119894, 119964, 1), Range32), $clone(new Range32.ptr(119966, 119967, 1), Range32), $clone(new Range32.ptr(119970, 119973, 3), Range32), $clone(new Range32.ptr(119974, 119977, 3), Range32), $clone(new Range32.ptr(119978, 119980, 1), Range32), $clone(new Range32.ptr(119982, 119993, 1), Range32), $clone(new Range32.ptr(119995, 119997, 2), Range32), $clone(new Range32.ptr(119998, 120003, 1), Range32), $clone(new Range32.ptr(120005, 120069, 1), Range32), $clone(new Range32.ptr(120071, 120074, 1), Range32), $clone(new Range32.ptr(120077, 120084, 1), Range32), $clone(new Range32.ptr(120086, 120092, 1), Range32), $clone(new Range32.ptr(120094, 120121, 1), Range32), $clone(new Range32.ptr(120123, 120126, 1), Range32), $clone(new Range32.ptr(120128, 120132, 1), Range32), $clone(new Range32.ptr(120134, 120138, 4), Range32), $clone(new Range32.ptr(120139, 120144, 1), Range32), $clone(new Range32.ptr(120146, 120485, 1), Range32), $clone(new Range32.ptr(120488, 120512, 1), Range32), $clone(new Range32.ptr(120514, 120538, 1), Range32), $clone(new Range32.ptr(120540, 120570, 1), Range32), $clone(new Range32.ptr(120572, 120596, 1), Range32), $clone(new Range32.ptr(120598, 120628, 1), Range32), $clone(new Range32.ptr(120630, 120654, 1), Range32), $clone(new Range32.ptr(120656, 120686, 1), Range32), $clone(new Range32.ptr(120688, 120712, 1), Range32), $clone(new Range32.ptr(120714, 120744, 1), Range32), $clone(new Range32.ptr(120746, 120770, 1), Range32), $clone(new Range32.ptr(120772, 120779, 1), Range32), $clone(new Range32.ptr(122624, 122654, 1), Range32), $clone(new Range32.ptr(122661, 122666, 1), Range32), $clone(new Range32.ptr(122928, 122989, 1), Range32), $clone(new Range32.ptr(123136, 123180, 1), Range32), $clone(new Range32.ptr(123191, 123197, 1), Range32), $clone(new Range32.ptr(123214, 123536, 322), Range32), $clone(new Range32.ptr(123537, 123565, 1), Range32), $clone(new Range32.ptr(123584, 123627, 1), Range32), $clone(new Range32.ptr(124112, 124139, 1), Range32), $clone(new Range32.ptr(124896, 124902, 1), Range32), $clone(new Range32.ptr(124904, 124907, 1), Range32), $clone(new Range32.ptr(124909, 124910, 1), Range32), $clone(new Range32.ptr(124912, 124926, 1), Range32), $clone(new Range32.ptr(124928, 125124, 1), Range32), $clone(new Range32.ptr(125184, 125251, 1), Range32), $clone(new Range32.ptr(125259, 126464, 1205), Range32), $clone(new Range32.ptr(126465, 126467, 1), Range32), $clone(new Range32.ptr(126469, 126495, 1), Range32), $clone(new Range32.ptr(126497, 126498, 1), Range32), $clone(new Range32.ptr(126500, 126503, 3), Range32), $clone(new Range32.ptr(126505, 126514, 1), Range32), $clone(new Range32.ptr(126516, 126519, 1), Range32), $clone(new Range32.ptr(126521, 126523, 2), Range32), $clone(new Range32.ptr(126530, 126535, 5), Range32), $clone(new Range32.ptr(126537, 126541, 2), Range32), $clone(new Range32.ptr(126542, 126543, 1), Range32), $clone(new Range32.ptr(126545, 126546, 1), Range32), $clone(new Range32.ptr(126548, 126551, 3), Range32), $clone(new Range32.ptr(126553, 126561, 2), Range32), $clone(new Range32.ptr(126562, 126564, 2), Range32), $clone(new Range32.ptr(126567, 126570, 1), Range32), $clone(new Range32.ptr(126572, 126578, 1), Range32), $clone(new Range32.ptr(126580, 126583, 1), Range32), $clone(new Range32.ptr(126585, 126588, 1), Range32), $clone(new Range32.ptr(126590, 126592, 2), Range32), $clone(new Range32.ptr(126593, 126601, 1), Range32), $clone(new Range32.ptr(126603, 126619, 1), Range32), $clone(new Range32.ptr(126625, 126627, 1), Range32), $clone(new Range32.ptr(126629, 126633, 1), Range32), $clone(new Range32.ptr(126635, 126651, 1), Range32), $clone(new Range32.ptr(131072, 173791, 1), Range32), $clone(new Range32.ptr(173824, 177977, 1), Range32), $clone(new Range32.ptr(177984, 178205, 1), Range32), $clone(new Range32.ptr(178208, 183969, 1), Range32), $clone(new Range32.ptr(183984, 191456, 1), Range32), $clone(new Range32.ptr(194560, 195101, 1), Range32), $clone(new Range32.ptr(196608, 201546, 1), Range32), $clone(new Range32.ptr(201552, 205743, 1), Range32)]), 6); + _Ll = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(97, 122, 1), Range16), $clone(new Range16.ptr(181, 223, 42), Range16), $clone(new Range16.ptr(224, 246, 1), Range16), $clone(new Range16.ptr(248, 255, 1), Range16), $clone(new Range16.ptr(257, 311, 2), Range16), $clone(new Range16.ptr(312, 328, 2), Range16), $clone(new Range16.ptr(329, 375, 2), Range16), $clone(new Range16.ptr(378, 382, 2), Range16), $clone(new Range16.ptr(383, 384, 1), Range16), $clone(new Range16.ptr(387, 389, 2), Range16), $clone(new Range16.ptr(392, 396, 4), Range16), $clone(new Range16.ptr(397, 402, 5), Range16), $clone(new Range16.ptr(405, 409, 4), Range16), $clone(new Range16.ptr(410, 411, 1), Range16), $clone(new Range16.ptr(414, 417, 3), Range16), $clone(new Range16.ptr(419, 421, 2), Range16), $clone(new Range16.ptr(424, 426, 2), Range16), $clone(new Range16.ptr(427, 429, 2), Range16), $clone(new Range16.ptr(432, 436, 4), Range16), $clone(new Range16.ptr(438, 441, 3), Range16), $clone(new Range16.ptr(442, 445, 3), Range16), $clone(new Range16.ptr(446, 447, 1), Range16), $clone(new Range16.ptr(454, 460, 3), Range16), $clone(new Range16.ptr(462, 476, 2), Range16), $clone(new Range16.ptr(477, 495, 2), Range16), $clone(new Range16.ptr(496, 499, 3), Range16), $clone(new Range16.ptr(501, 505, 4), Range16), $clone(new Range16.ptr(507, 563, 2), Range16), $clone(new Range16.ptr(564, 569, 1), Range16), $clone(new Range16.ptr(572, 575, 3), Range16), $clone(new Range16.ptr(576, 578, 2), Range16), $clone(new Range16.ptr(583, 591, 2), Range16), $clone(new Range16.ptr(592, 659, 1), Range16), $clone(new Range16.ptr(661, 687, 1), Range16), $clone(new Range16.ptr(881, 883, 2), Range16), $clone(new Range16.ptr(887, 891, 4), Range16), $clone(new Range16.ptr(892, 893, 1), Range16), $clone(new Range16.ptr(912, 940, 28), Range16), $clone(new Range16.ptr(941, 974, 1), Range16), $clone(new Range16.ptr(976, 977, 1), Range16), $clone(new Range16.ptr(981, 983, 1), Range16), $clone(new Range16.ptr(985, 1007, 2), Range16), $clone(new Range16.ptr(1008, 1011, 1), Range16), $clone(new Range16.ptr(1013, 1019, 3), Range16), $clone(new Range16.ptr(1020, 1072, 52), Range16), $clone(new Range16.ptr(1073, 1119, 1), Range16), $clone(new Range16.ptr(1121, 1153, 2), Range16), $clone(new Range16.ptr(1163, 1215, 2), Range16), $clone(new Range16.ptr(1218, 1230, 2), Range16), $clone(new Range16.ptr(1231, 1327, 2), Range16), $clone(new Range16.ptr(1376, 1416, 1), Range16), $clone(new Range16.ptr(4304, 4346, 1), Range16), $clone(new Range16.ptr(4349, 4351, 1), Range16), $clone(new Range16.ptr(5112, 5117, 1), Range16), $clone(new Range16.ptr(7296, 7304, 1), Range16), $clone(new Range16.ptr(7424, 7467, 1), Range16), $clone(new Range16.ptr(7531, 7543, 1), Range16), $clone(new Range16.ptr(7545, 7578, 1), Range16), $clone(new Range16.ptr(7681, 7829, 2), Range16), $clone(new Range16.ptr(7830, 7837, 1), Range16), $clone(new Range16.ptr(7839, 7935, 2), Range16), $clone(new Range16.ptr(7936, 7943, 1), Range16), $clone(new Range16.ptr(7952, 7957, 1), Range16), $clone(new Range16.ptr(7968, 7975, 1), Range16), $clone(new Range16.ptr(7984, 7991, 1), Range16), $clone(new Range16.ptr(8000, 8005, 1), Range16), $clone(new Range16.ptr(8016, 8023, 1), Range16), $clone(new Range16.ptr(8032, 8039, 1), Range16), $clone(new Range16.ptr(8048, 8061, 1), Range16), $clone(new Range16.ptr(8064, 8071, 1), Range16), $clone(new Range16.ptr(8080, 8087, 1), Range16), $clone(new Range16.ptr(8096, 8103, 1), Range16), $clone(new Range16.ptr(8112, 8116, 1), Range16), $clone(new Range16.ptr(8118, 8119, 1), Range16), $clone(new Range16.ptr(8126, 8130, 4), Range16), $clone(new Range16.ptr(8131, 8132, 1), Range16), $clone(new Range16.ptr(8134, 8135, 1), Range16), $clone(new Range16.ptr(8144, 8147, 1), Range16), $clone(new Range16.ptr(8150, 8151, 1), Range16), $clone(new Range16.ptr(8160, 8167, 1), Range16), $clone(new Range16.ptr(8178, 8180, 1), Range16), $clone(new Range16.ptr(8182, 8183, 1), Range16), $clone(new Range16.ptr(8458, 8462, 4), Range16), $clone(new Range16.ptr(8463, 8467, 4), Range16), $clone(new Range16.ptr(8495, 8505, 5), Range16), $clone(new Range16.ptr(8508, 8509, 1), Range16), $clone(new Range16.ptr(8518, 8521, 1), Range16), $clone(new Range16.ptr(8526, 8580, 54), Range16), $clone(new Range16.ptr(11312, 11359, 1), Range16), $clone(new Range16.ptr(11361, 11365, 4), Range16), $clone(new Range16.ptr(11366, 11372, 2), Range16), $clone(new Range16.ptr(11377, 11379, 2), Range16), $clone(new Range16.ptr(11380, 11382, 2), Range16), $clone(new Range16.ptr(11383, 11387, 1), Range16), $clone(new Range16.ptr(11393, 11491, 2), Range16), $clone(new Range16.ptr(11492, 11500, 8), Range16), $clone(new Range16.ptr(11502, 11507, 5), Range16), $clone(new Range16.ptr(11520, 11557, 1), Range16), $clone(new Range16.ptr(11559, 11565, 6), Range16), $clone(new Range16.ptr(42561, 42605, 2), Range16), $clone(new Range16.ptr(42625, 42651, 2), Range16), $clone(new Range16.ptr(42787, 42799, 2), Range16), $clone(new Range16.ptr(42800, 42801, 1), Range16), $clone(new Range16.ptr(42803, 42865, 2), Range16), $clone(new Range16.ptr(42866, 42872, 1), Range16), $clone(new Range16.ptr(42874, 42876, 2), Range16), $clone(new Range16.ptr(42879, 42887, 2), Range16), $clone(new Range16.ptr(42892, 42894, 2), Range16), $clone(new Range16.ptr(42897, 42899, 2), Range16), $clone(new Range16.ptr(42900, 42901, 1), Range16), $clone(new Range16.ptr(42903, 42921, 2), Range16), $clone(new Range16.ptr(42927, 42933, 6), Range16), $clone(new Range16.ptr(42935, 42947, 2), Range16), $clone(new Range16.ptr(42952, 42954, 2), Range16), $clone(new Range16.ptr(42961, 42969, 2), Range16), $clone(new Range16.ptr(42998, 43002, 4), Range16), $clone(new Range16.ptr(43824, 43866, 1), Range16), $clone(new Range16.ptr(43872, 43880, 1), Range16), $clone(new Range16.ptr(43888, 43967, 1), Range16), $clone(new Range16.ptr(64256, 64262, 1), Range16), $clone(new Range16.ptr(64275, 64279, 1), Range16), $clone(new Range16.ptr(65345, 65370, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(66600, 66639, 1), Range32), $clone(new Range32.ptr(66776, 66811, 1), Range32), $clone(new Range32.ptr(66967, 66977, 1), Range32), $clone(new Range32.ptr(66979, 66993, 1), Range32), $clone(new Range32.ptr(66995, 67001, 1), Range32), $clone(new Range32.ptr(67003, 67004, 1), Range32), $clone(new Range32.ptr(68800, 68850, 1), Range32), $clone(new Range32.ptr(71872, 71903, 1), Range32), $clone(new Range32.ptr(93792, 93823, 1), Range32), $clone(new Range32.ptr(119834, 119859, 1), Range32), $clone(new Range32.ptr(119886, 119892, 1), Range32), $clone(new Range32.ptr(119894, 119911, 1), Range32), $clone(new Range32.ptr(119938, 119963, 1), Range32), $clone(new Range32.ptr(119990, 119993, 1), Range32), $clone(new Range32.ptr(119995, 119997, 2), Range32), $clone(new Range32.ptr(119998, 120003, 1), Range32), $clone(new Range32.ptr(120005, 120015, 1), Range32), $clone(new Range32.ptr(120042, 120067, 1), Range32), $clone(new Range32.ptr(120094, 120119, 1), Range32), $clone(new Range32.ptr(120146, 120171, 1), Range32), $clone(new Range32.ptr(120198, 120223, 1), Range32), $clone(new Range32.ptr(120250, 120275, 1), Range32), $clone(new Range32.ptr(120302, 120327, 1), Range32), $clone(new Range32.ptr(120354, 120379, 1), Range32), $clone(new Range32.ptr(120406, 120431, 1), Range32), $clone(new Range32.ptr(120458, 120485, 1), Range32), $clone(new Range32.ptr(120514, 120538, 1), Range32), $clone(new Range32.ptr(120540, 120545, 1), Range32), $clone(new Range32.ptr(120572, 120596, 1), Range32), $clone(new Range32.ptr(120598, 120603, 1), Range32), $clone(new Range32.ptr(120630, 120654, 1), Range32), $clone(new Range32.ptr(120656, 120661, 1), Range32), $clone(new Range32.ptr(120688, 120712, 1), Range32), $clone(new Range32.ptr(120714, 120719, 1), Range32), $clone(new Range32.ptr(120746, 120770, 1), Range32), $clone(new Range32.ptr(120772, 120777, 1), Range32), $clone(new Range32.ptr(120779, 122624, 1845), Range32), $clone(new Range32.ptr(122625, 122633, 1), Range32), $clone(new Range32.ptr(122635, 122654, 1), Range32), $clone(new Range32.ptr(122661, 122666, 1), Range32), $clone(new Range32.ptr(125218, 125251, 1), Range32)]), 4); + _Lm = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(688, 705, 1), Range16), $clone(new Range16.ptr(710, 721, 1), Range16), $clone(new Range16.ptr(736, 740, 1), Range16), $clone(new Range16.ptr(748, 750, 2), Range16), $clone(new Range16.ptr(884, 890, 6), Range16), $clone(new Range16.ptr(1369, 1600, 231), Range16), $clone(new Range16.ptr(1765, 1766, 1), Range16), $clone(new Range16.ptr(2036, 2037, 1), Range16), $clone(new Range16.ptr(2042, 2074, 32), Range16), $clone(new Range16.ptr(2084, 2088, 4), Range16), $clone(new Range16.ptr(2249, 2417, 168), Range16), $clone(new Range16.ptr(3654, 3782, 128), Range16), $clone(new Range16.ptr(4348, 6103, 1755), Range16), $clone(new Range16.ptr(6211, 6823, 612), Range16), $clone(new Range16.ptr(7288, 7293, 1), Range16), $clone(new Range16.ptr(7468, 7530, 1), Range16), $clone(new Range16.ptr(7544, 7579, 35), Range16), $clone(new Range16.ptr(7580, 7615, 1), Range16), $clone(new Range16.ptr(8305, 8319, 14), Range16), $clone(new Range16.ptr(8336, 8348, 1), Range16), $clone(new Range16.ptr(11388, 11389, 1), Range16), $clone(new Range16.ptr(11631, 11823, 192), Range16), $clone(new Range16.ptr(12293, 12337, 44), Range16), $clone(new Range16.ptr(12338, 12341, 1), Range16), $clone(new Range16.ptr(12347, 12445, 98), Range16), $clone(new Range16.ptr(12446, 12540, 94), Range16), $clone(new Range16.ptr(12541, 12542, 1), Range16), $clone(new Range16.ptr(40981, 42232, 1251), Range16), $clone(new Range16.ptr(42233, 42237, 1), Range16), $clone(new Range16.ptr(42508, 42623, 115), Range16), $clone(new Range16.ptr(42652, 42653, 1), Range16), $clone(new Range16.ptr(42775, 42783, 1), Range16), $clone(new Range16.ptr(42864, 42888, 24), Range16), $clone(new Range16.ptr(42994, 42996, 1), Range16), $clone(new Range16.ptr(43000, 43001, 1), Range16), $clone(new Range16.ptr(43471, 43494, 23), Range16), $clone(new Range16.ptr(43632, 43741, 109), Range16), $clone(new Range16.ptr(43763, 43764, 1), Range16), $clone(new Range16.ptr(43868, 43871, 1), Range16), $clone(new Range16.ptr(43881, 65392, 21511), Range16), $clone(new Range16.ptr(65438, 65439, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(67456, 67461, 1), Range32), $clone(new Range32.ptr(67463, 67504, 1), Range32), $clone(new Range32.ptr(67506, 67514, 1), Range32), $clone(new Range32.ptr(92992, 92995, 1), Range32), $clone(new Range32.ptr(94099, 94111, 1), Range32), $clone(new Range32.ptr(94176, 94177, 1), Range32), $clone(new Range32.ptr(94179, 110576, 16397), Range32), $clone(new Range32.ptr(110577, 110579, 1), Range32), $clone(new Range32.ptr(110581, 110587, 1), Range32), $clone(new Range32.ptr(110589, 110590, 1), Range32), $clone(new Range32.ptr(122928, 122989, 1), Range32), $clone(new Range32.ptr(123191, 123197, 1), Range32), $clone(new Range32.ptr(124139, 125259, 1120), Range32)]), 0); + _Lo = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(170, 186, 16), Range16), $clone(new Range16.ptr(443, 448, 5), Range16), $clone(new Range16.ptr(449, 451, 1), Range16), $clone(new Range16.ptr(660, 1488, 828), Range16), $clone(new Range16.ptr(1489, 1514, 1), Range16), $clone(new Range16.ptr(1519, 1522, 1), Range16), $clone(new Range16.ptr(1568, 1599, 1), Range16), $clone(new Range16.ptr(1601, 1610, 1), Range16), $clone(new Range16.ptr(1646, 1647, 1), Range16), $clone(new Range16.ptr(1649, 1747, 1), Range16), $clone(new Range16.ptr(1749, 1774, 25), Range16), $clone(new Range16.ptr(1775, 1786, 11), Range16), $clone(new Range16.ptr(1787, 1788, 1), Range16), $clone(new Range16.ptr(1791, 1808, 17), Range16), $clone(new Range16.ptr(1810, 1839, 1), Range16), $clone(new Range16.ptr(1869, 1957, 1), Range16), $clone(new Range16.ptr(1969, 1994, 25), Range16), $clone(new Range16.ptr(1995, 2026, 1), Range16), $clone(new Range16.ptr(2048, 2069, 1), Range16), $clone(new Range16.ptr(2112, 2136, 1), Range16), $clone(new Range16.ptr(2144, 2154, 1), Range16), $clone(new Range16.ptr(2160, 2183, 1), Range16), $clone(new Range16.ptr(2185, 2190, 1), Range16), $clone(new Range16.ptr(2208, 2248, 1), Range16), $clone(new Range16.ptr(2308, 2361, 1), Range16), $clone(new Range16.ptr(2365, 2384, 19), Range16), $clone(new Range16.ptr(2392, 2401, 1), Range16), $clone(new Range16.ptr(2418, 2432, 1), Range16), $clone(new Range16.ptr(2437, 2444, 1), Range16), $clone(new Range16.ptr(2447, 2448, 1), Range16), $clone(new Range16.ptr(2451, 2472, 1), Range16), $clone(new Range16.ptr(2474, 2480, 1), Range16), $clone(new Range16.ptr(2482, 2486, 4), Range16), $clone(new Range16.ptr(2487, 2489, 1), Range16), $clone(new Range16.ptr(2493, 2510, 17), Range16), $clone(new Range16.ptr(2524, 2525, 1), Range16), $clone(new Range16.ptr(2527, 2529, 1), Range16), $clone(new Range16.ptr(2544, 2545, 1), Range16), $clone(new Range16.ptr(2556, 2565, 9), Range16), $clone(new Range16.ptr(2566, 2570, 1), Range16), $clone(new Range16.ptr(2575, 2576, 1), Range16), $clone(new Range16.ptr(2579, 2600, 1), Range16), $clone(new Range16.ptr(2602, 2608, 1), Range16), $clone(new Range16.ptr(2610, 2611, 1), Range16), $clone(new Range16.ptr(2613, 2614, 1), Range16), $clone(new Range16.ptr(2616, 2617, 1), Range16), $clone(new Range16.ptr(2649, 2652, 1), Range16), $clone(new Range16.ptr(2654, 2674, 20), Range16), $clone(new Range16.ptr(2675, 2676, 1), Range16), $clone(new Range16.ptr(2693, 2701, 1), Range16), $clone(new Range16.ptr(2703, 2705, 1), Range16), $clone(new Range16.ptr(2707, 2728, 1), Range16), $clone(new Range16.ptr(2730, 2736, 1), Range16), $clone(new Range16.ptr(2738, 2739, 1), Range16), $clone(new Range16.ptr(2741, 2745, 1), Range16), $clone(new Range16.ptr(2749, 2768, 19), Range16), $clone(new Range16.ptr(2784, 2785, 1), Range16), $clone(new Range16.ptr(2809, 2821, 12), Range16), $clone(new Range16.ptr(2822, 2828, 1), Range16), $clone(new Range16.ptr(2831, 2832, 1), Range16), $clone(new Range16.ptr(2835, 2856, 1), Range16), $clone(new Range16.ptr(2858, 2864, 1), Range16), $clone(new Range16.ptr(2866, 2867, 1), Range16), $clone(new Range16.ptr(2869, 2873, 1), Range16), $clone(new Range16.ptr(2877, 2908, 31), Range16), $clone(new Range16.ptr(2909, 2911, 2), Range16), $clone(new Range16.ptr(2912, 2913, 1), Range16), $clone(new Range16.ptr(2929, 2947, 18), Range16), $clone(new Range16.ptr(2949, 2954, 1), Range16), $clone(new Range16.ptr(2958, 2960, 1), Range16), $clone(new Range16.ptr(2962, 2965, 1), Range16), $clone(new Range16.ptr(2969, 2970, 1), Range16), $clone(new Range16.ptr(2972, 2974, 2), Range16), $clone(new Range16.ptr(2975, 2979, 4), Range16), $clone(new Range16.ptr(2980, 2984, 4), Range16), $clone(new Range16.ptr(2985, 2986, 1), Range16), $clone(new Range16.ptr(2990, 3001, 1), Range16), $clone(new Range16.ptr(3024, 3077, 53), Range16), $clone(new Range16.ptr(3078, 3084, 1), Range16), $clone(new Range16.ptr(3086, 3088, 1), Range16), $clone(new Range16.ptr(3090, 3112, 1), Range16), $clone(new Range16.ptr(3114, 3129, 1), Range16), $clone(new Range16.ptr(3133, 3160, 27), Range16), $clone(new Range16.ptr(3161, 3162, 1), Range16), $clone(new Range16.ptr(3165, 3168, 3), Range16), $clone(new Range16.ptr(3169, 3200, 31), Range16), $clone(new Range16.ptr(3205, 3212, 1), Range16), $clone(new Range16.ptr(3214, 3216, 1), Range16), $clone(new Range16.ptr(3218, 3240, 1), Range16), $clone(new Range16.ptr(3242, 3251, 1), Range16), $clone(new Range16.ptr(3253, 3257, 1), Range16), $clone(new Range16.ptr(3261, 3293, 32), Range16), $clone(new Range16.ptr(3294, 3296, 2), Range16), $clone(new Range16.ptr(3297, 3313, 16), Range16), $clone(new Range16.ptr(3314, 3332, 18), Range16), $clone(new Range16.ptr(3333, 3340, 1), Range16), $clone(new Range16.ptr(3342, 3344, 1), Range16), $clone(new Range16.ptr(3346, 3386, 1), Range16), $clone(new Range16.ptr(3389, 3406, 17), Range16), $clone(new Range16.ptr(3412, 3414, 1), Range16), $clone(new Range16.ptr(3423, 3425, 1), Range16), $clone(new Range16.ptr(3450, 3455, 1), Range16), $clone(new Range16.ptr(3461, 3478, 1), Range16), $clone(new Range16.ptr(3482, 3505, 1), Range16), $clone(new Range16.ptr(3507, 3515, 1), Range16), $clone(new Range16.ptr(3517, 3520, 3), Range16), $clone(new Range16.ptr(3521, 3526, 1), Range16), $clone(new Range16.ptr(3585, 3632, 1), Range16), $clone(new Range16.ptr(3634, 3635, 1), Range16), $clone(new Range16.ptr(3648, 3653, 1), Range16), $clone(new Range16.ptr(3713, 3714, 1), Range16), $clone(new Range16.ptr(3716, 3718, 2), Range16), $clone(new Range16.ptr(3719, 3722, 1), Range16), $clone(new Range16.ptr(3724, 3747, 1), Range16), $clone(new Range16.ptr(3749, 3751, 2), Range16), $clone(new Range16.ptr(3752, 3760, 1), Range16), $clone(new Range16.ptr(3762, 3763, 1), Range16), $clone(new Range16.ptr(3773, 3776, 3), Range16), $clone(new Range16.ptr(3777, 3780, 1), Range16), $clone(new Range16.ptr(3804, 3807, 1), Range16), $clone(new Range16.ptr(3840, 3904, 64), Range16), $clone(new Range16.ptr(3905, 3911, 1), Range16), $clone(new Range16.ptr(3913, 3948, 1), Range16), $clone(new Range16.ptr(3976, 3980, 1), Range16), $clone(new Range16.ptr(4096, 4138, 1), Range16), $clone(new Range16.ptr(4159, 4176, 17), Range16), $clone(new Range16.ptr(4177, 4181, 1), Range16), $clone(new Range16.ptr(4186, 4189, 1), Range16), $clone(new Range16.ptr(4193, 4197, 4), Range16), $clone(new Range16.ptr(4198, 4206, 8), Range16), $clone(new Range16.ptr(4207, 4208, 1), Range16), $clone(new Range16.ptr(4213, 4225, 1), Range16), $clone(new Range16.ptr(4238, 4352, 114), Range16), $clone(new Range16.ptr(4353, 4680, 1), Range16), $clone(new Range16.ptr(4682, 4685, 1), Range16), $clone(new Range16.ptr(4688, 4694, 1), Range16), $clone(new Range16.ptr(4696, 4698, 2), Range16), $clone(new Range16.ptr(4699, 4701, 1), Range16), $clone(new Range16.ptr(4704, 4744, 1), Range16), $clone(new Range16.ptr(4746, 4749, 1), Range16), $clone(new Range16.ptr(4752, 4784, 1), Range16), $clone(new Range16.ptr(4786, 4789, 1), Range16), $clone(new Range16.ptr(4792, 4798, 1), Range16), $clone(new Range16.ptr(4800, 4802, 2), Range16), $clone(new Range16.ptr(4803, 4805, 1), Range16), $clone(new Range16.ptr(4808, 4822, 1), Range16), $clone(new Range16.ptr(4824, 4880, 1), Range16), $clone(new Range16.ptr(4882, 4885, 1), Range16), $clone(new Range16.ptr(4888, 4954, 1), Range16), $clone(new Range16.ptr(4992, 5007, 1), Range16), $clone(new Range16.ptr(5121, 5740, 1), Range16), $clone(new Range16.ptr(5743, 5759, 1), Range16), $clone(new Range16.ptr(5761, 5786, 1), Range16), $clone(new Range16.ptr(5792, 5866, 1), Range16), $clone(new Range16.ptr(5873, 5880, 1), Range16), $clone(new Range16.ptr(5888, 5905, 1), Range16), $clone(new Range16.ptr(5919, 5937, 1), Range16), $clone(new Range16.ptr(5952, 5969, 1), Range16), $clone(new Range16.ptr(5984, 5996, 1), Range16), $clone(new Range16.ptr(5998, 6000, 1), Range16), $clone(new Range16.ptr(6016, 6067, 1), Range16), $clone(new Range16.ptr(6108, 6176, 68), Range16), $clone(new Range16.ptr(6177, 6210, 1), Range16), $clone(new Range16.ptr(6212, 6264, 1), Range16), $clone(new Range16.ptr(6272, 6276, 1), Range16), $clone(new Range16.ptr(6279, 6312, 1), Range16), $clone(new Range16.ptr(6314, 6320, 6), Range16), $clone(new Range16.ptr(6321, 6389, 1), Range16), $clone(new Range16.ptr(6400, 6430, 1), Range16), $clone(new Range16.ptr(6480, 6509, 1), Range16), $clone(new Range16.ptr(6512, 6516, 1), Range16), $clone(new Range16.ptr(6528, 6571, 1), Range16), $clone(new Range16.ptr(6576, 6601, 1), Range16), $clone(new Range16.ptr(6656, 6678, 1), Range16), $clone(new Range16.ptr(6688, 6740, 1), Range16), $clone(new Range16.ptr(6917, 6963, 1), Range16), $clone(new Range16.ptr(6981, 6988, 1), Range16), $clone(new Range16.ptr(7043, 7072, 1), Range16), $clone(new Range16.ptr(7086, 7087, 1), Range16), $clone(new Range16.ptr(7098, 7141, 1), Range16), $clone(new Range16.ptr(7168, 7203, 1), Range16), $clone(new Range16.ptr(7245, 7247, 1), Range16), $clone(new Range16.ptr(7258, 7287, 1), Range16), $clone(new Range16.ptr(7401, 7404, 1), Range16), $clone(new Range16.ptr(7406, 7411, 1), Range16), $clone(new Range16.ptr(7413, 7414, 1), Range16), $clone(new Range16.ptr(7418, 8501, 1083), Range16), $clone(new Range16.ptr(8502, 8504, 1), Range16), $clone(new Range16.ptr(11568, 11623, 1), Range16), $clone(new Range16.ptr(11648, 11670, 1), Range16), $clone(new Range16.ptr(11680, 11686, 1), Range16), $clone(new Range16.ptr(11688, 11694, 1), Range16), $clone(new Range16.ptr(11696, 11702, 1), Range16), $clone(new Range16.ptr(11704, 11710, 1), Range16), $clone(new Range16.ptr(11712, 11718, 1), Range16), $clone(new Range16.ptr(11720, 11726, 1), Range16), $clone(new Range16.ptr(11728, 11734, 1), Range16), $clone(new Range16.ptr(11736, 11742, 1), Range16), $clone(new Range16.ptr(12294, 12348, 54), Range16), $clone(new Range16.ptr(12353, 12438, 1), Range16), $clone(new Range16.ptr(12447, 12449, 2), Range16), $clone(new Range16.ptr(12450, 12538, 1), Range16), $clone(new Range16.ptr(12543, 12549, 6), Range16), $clone(new Range16.ptr(12550, 12591, 1), Range16), $clone(new Range16.ptr(12593, 12686, 1), Range16), $clone(new Range16.ptr(12704, 12735, 1), Range16), $clone(new Range16.ptr(12784, 12799, 1), Range16), $clone(new Range16.ptr(13312, 19903, 1), Range16), $clone(new Range16.ptr(19968, 40980, 1), Range16), $clone(new Range16.ptr(40982, 42124, 1), Range16), $clone(new Range16.ptr(42192, 42231, 1), Range16), $clone(new Range16.ptr(42240, 42507, 1), Range16), $clone(new Range16.ptr(42512, 42527, 1), Range16), $clone(new Range16.ptr(42538, 42539, 1), Range16), $clone(new Range16.ptr(42606, 42656, 50), Range16), $clone(new Range16.ptr(42657, 42725, 1), Range16), $clone(new Range16.ptr(42895, 42999, 104), Range16), $clone(new Range16.ptr(43003, 43009, 1), Range16), $clone(new Range16.ptr(43011, 43013, 1), Range16), $clone(new Range16.ptr(43015, 43018, 1), Range16), $clone(new Range16.ptr(43020, 43042, 1), Range16), $clone(new Range16.ptr(43072, 43123, 1), Range16), $clone(new Range16.ptr(43138, 43187, 1), Range16), $clone(new Range16.ptr(43250, 43255, 1), Range16), $clone(new Range16.ptr(43259, 43261, 2), Range16), $clone(new Range16.ptr(43262, 43274, 12), Range16), $clone(new Range16.ptr(43275, 43301, 1), Range16), $clone(new Range16.ptr(43312, 43334, 1), Range16), $clone(new Range16.ptr(43360, 43388, 1), Range16), $clone(new Range16.ptr(43396, 43442, 1), Range16), $clone(new Range16.ptr(43488, 43492, 1), Range16), $clone(new Range16.ptr(43495, 43503, 1), Range16), $clone(new Range16.ptr(43514, 43518, 1), Range16), $clone(new Range16.ptr(43520, 43560, 1), Range16), $clone(new Range16.ptr(43584, 43586, 1), Range16), $clone(new Range16.ptr(43588, 43595, 1), Range16), $clone(new Range16.ptr(43616, 43631, 1), Range16), $clone(new Range16.ptr(43633, 43638, 1), Range16), $clone(new Range16.ptr(43642, 43646, 4), Range16), $clone(new Range16.ptr(43647, 43695, 1), Range16), $clone(new Range16.ptr(43697, 43701, 4), Range16), $clone(new Range16.ptr(43702, 43705, 3), Range16), $clone(new Range16.ptr(43706, 43709, 1), Range16), $clone(new Range16.ptr(43712, 43714, 2), Range16), $clone(new Range16.ptr(43739, 43740, 1), Range16), $clone(new Range16.ptr(43744, 43754, 1), Range16), $clone(new Range16.ptr(43762, 43777, 15), Range16), $clone(new Range16.ptr(43778, 43782, 1), Range16), $clone(new Range16.ptr(43785, 43790, 1), Range16), $clone(new Range16.ptr(43793, 43798, 1), Range16), $clone(new Range16.ptr(43808, 43814, 1), Range16), $clone(new Range16.ptr(43816, 43822, 1), Range16), $clone(new Range16.ptr(43968, 44002, 1), Range16), $clone(new Range16.ptr(44032, 55203, 1), Range16), $clone(new Range16.ptr(55216, 55238, 1), Range16), $clone(new Range16.ptr(55243, 55291, 1), Range16), $clone(new Range16.ptr(63744, 64109, 1), Range16), $clone(new Range16.ptr(64112, 64217, 1), Range16), $clone(new Range16.ptr(64285, 64287, 2), Range16), $clone(new Range16.ptr(64288, 64296, 1), Range16), $clone(new Range16.ptr(64298, 64310, 1), Range16), $clone(new Range16.ptr(64312, 64316, 1), Range16), $clone(new Range16.ptr(64318, 64320, 2), Range16), $clone(new Range16.ptr(64321, 64323, 2), Range16), $clone(new Range16.ptr(64324, 64326, 2), Range16), $clone(new Range16.ptr(64327, 64433, 1), Range16), $clone(new Range16.ptr(64467, 64829, 1), Range16), $clone(new Range16.ptr(64848, 64911, 1), Range16), $clone(new Range16.ptr(64914, 64967, 1), Range16), $clone(new Range16.ptr(65008, 65019, 1), Range16), $clone(new Range16.ptr(65136, 65140, 1), Range16), $clone(new Range16.ptr(65142, 65276, 1), Range16), $clone(new Range16.ptr(65382, 65391, 1), Range16), $clone(new Range16.ptr(65393, 65437, 1), Range16), $clone(new Range16.ptr(65440, 65470, 1), Range16), $clone(new Range16.ptr(65474, 65479, 1), Range16), $clone(new Range16.ptr(65482, 65487, 1), Range16), $clone(new Range16.ptr(65490, 65495, 1), Range16), $clone(new Range16.ptr(65498, 65500, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65536, 65547, 1), Range32), $clone(new Range32.ptr(65549, 65574, 1), Range32), $clone(new Range32.ptr(65576, 65594, 1), Range32), $clone(new Range32.ptr(65596, 65597, 1), Range32), $clone(new Range32.ptr(65599, 65613, 1), Range32), $clone(new Range32.ptr(65616, 65629, 1), Range32), $clone(new Range32.ptr(65664, 65786, 1), Range32), $clone(new Range32.ptr(66176, 66204, 1), Range32), $clone(new Range32.ptr(66208, 66256, 1), Range32), $clone(new Range32.ptr(66304, 66335, 1), Range32), $clone(new Range32.ptr(66349, 66368, 1), Range32), $clone(new Range32.ptr(66370, 66377, 1), Range32), $clone(new Range32.ptr(66384, 66421, 1), Range32), $clone(new Range32.ptr(66432, 66461, 1), Range32), $clone(new Range32.ptr(66464, 66499, 1), Range32), $clone(new Range32.ptr(66504, 66511, 1), Range32), $clone(new Range32.ptr(66640, 66717, 1), Range32), $clone(new Range32.ptr(66816, 66855, 1), Range32), $clone(new Range32.ptr(66864, 66915, 1), Range32), $clone(new Range32.ptr(67072, 67382, 1), Range32), $clone(new Range32.ptr(67392, 67413, 1), Range32), $clone(new Range32.ptr(67424, 67431, 1), Range32), $clone(new Range32.ptr(67584, 67589, 1), Range32), $clone(new Range32.ptr(67592, 67594, 2), Range32), $clone(new Range32.ptr(67595, 67637, 1), Range32), $clone(new Range32.ptr(67639, 67640, 1), Range32), $clone(new Range32.ptr(67644, 67647, 3), Range32), $clone(new Range32.ptr(67648, 67669, 1), Range32), $clone(new Range32.ptr(67680, 67702, 1), Range32), $clone(new Range32.ptr(67712, 67742, 1), Range32), $clone(new Range32.ptr(67808, 67826, 1), Range32), $clone(new Range32.ptr(67828, 67829, 1), Range32), $clone(new Range32.ptr(67840, 67861, 1), Range32), $clone(new Range32.ptr(67872, 67897, 1), Range32), $clone(new Range32.ptr(67968, 68023, 1), Range32), $clone(new Range32.ptr(68030, 68031, 1), Range32), $clone(new Range32.ptr(68096, 68112, 16), Range32), $clone(new Range32.ptr(68113, 68115, 1), Range32), $clone(new Range32.ptr(68117, 68119, 1), Range32), $clone(new Range32.ptr(68121, 68149, 1), Range32), $clone(new Range32.ptr(68192, 68220, 1), Range32), $clone(new Range32.ptr(68224, 68252, 1), Range32), $clone(new Range32.ptr(68288, 68295, 1), Range32), $clone(new Range32.ptr(68297, 68324, 1), Range32), $clone(new Range32.ptr(68352, 68405, 1), Range32), $clone(new Range32.ptr(68416, 68437, 1), Range32), $clone(new Range32.ptr(68448, 68466, 1), Range32), $clone(new Range32.ptr(68480, 68497, 1), Range32), $clone(new Range32.ptr(68608, 68680, 1), Range32), $clone(new Range32.ptr(68864, 68899, 1), Range32), $clone(new Range32.ptr(69248, 69289, 1), Range32), $clone(new Range32.ptr(69296, 69297, 1), Range32), $clone(new Range32.ptr(69376, 69404, 1), Range32), $clone(new Range32.ptr(69415, 69424, 9), Range32), $clone(new Range32.ptr(69425, 69445, 1), Range32), $clone(new Range32.ptr(69488, 69505, 1), Range32), $clone(new Range32.ptr(69552, 69572, 1), Range32), $clone(new Range32.ptr(69600, 69622, 1), Range32), $clone(new Range32.ptr(69635, 69687, 1), Range32), $clone(new Range32.ptr(69745, 69746, 1), Range32), $clone(new Range32.ptr(69749, 69763, 14), Range32), $clone(new Range32.ptr(69764, 69807, 1), Range32), $clone(new Range32.ptr(69840, 69864, 1), Range32), $clone(new Range32.ptr(69891, 69926, 1), Range32), $clone(new Range32.ptr(69956, 69959, 3), Range32), $clone(new Range32.ptr(69968, 70002, 1), Range32), $clone(new Range32.ptr(70006, 70019, 13), Range32), $clone(new Range32.ptr(70020, 70066, 1), Range32), $clone(new Range32.ptr(70081, 70084, 1), Range32), $clone(new Range32.ptr(70106, 70108, 2), Range32), $clone(new Range32.ptr(70144, 70161, 1), Range32), $clone(new Range32.ptr(70163, 70187, 1), Range32), $clone(new Range32.ptr(70207, 70208, 1), Range32), $clone(new Range32.ptr(70272, 70278, 1), Range32), $clone(new Range32.ptr(70280, 70282, 2), Range32), $clone(new Range32.ptr(70283, 70285, 1), Range32), $clone(new Range32.ptr(70287, 70301, 1), Range32), $clone(new Range32.ptr(70303, 70312, 1), Range32), $clone(new Range32.ptr(70320, 70366, 1), Range32), $clone(new Range32.ptr(70405, 70412, 1), Range32), $clone(new Range32.ptr(70415, 70416, 1), Range32), $clone(new Range32.ptr(70419, 70440, 1), Range32), $clone(new Range32.ptr(70442, 70448, 1), Range32), $clone(new Range32.ptr(70450, 70451, 1), Range32), $clone(new Range32.ptr(70453, 70457, 1), Range32), $clone(new Range32.ptr(70461, 70480, 19), Range32), $clone(new Range32.ptr(70493, 70497, 1), Range32), $clone(new Range32.ptr(70656, 70708, 1), Range32), $clone(new Range32.ptr(70727, 70730, 1), Range32), $clone(new Range32.ptr(70751, 70753, 1), Range32), $clone(new Range32.ptr(70784, 70831, 1), Range32), $clone(new Range32.ptr(70852, 70853, 1), Range32), $clone(new Range32.ptr(70855, 71040, 185), Range32), $clone(new Range32.ptr(71041, 71086, 1), Range32), $clone(new Range32.ptr(71128, 71131, 1), Range32), $clone(new Range32.ptr(71168, 71215, 1), Range32), $clone(new Range32.ptr(71236, 71296, 60), Range32), $clone(new Range32.ptr(71297, 71338, 1), Range32), $clone(new Range32.ptr(71352, 71424, 72), Range32), $clone(new Range32.ptr(71425, 71450, 1), Range32), $clone(new Range32.ptr(71488, 71494, 1), Range32), $clone(new Range32.ptr(71680, 71723, 1), Range32), $clone(new Range32.ptr(71935, 71942, 1), Range32), $clone(new Range32.ptr(71945, 71948, 3), Range32), $clone(new Range32.ptr(71949, 71955, 1), Range32), $clone(new Range32.ptr(71957, 71958, 1), Range32), $clone(new Range32.ptr(71960, 71983, 1), Range32), $clone(new Range32.ptr(71999, 72001, 2), Range32), $clone(new Range32.ptr(72096, 72103, 1), Range32), $clone(new Range32.ptr(72106, 72144, 1), Range32), $clone(new Range32.ptr(72161, 72163, 2), Range32), $clone(new Range32.ptr(72192, 72203, 11), Range32), $clone(new Range32.ptr(72204, 72242, 1), Range32), $clone(new Range32.ptr(72250, 72272, 22), Range32), $clone(new Range32.ptr(72284, 72329, 1), Range32), $clone(new Range32.ptr(72349, 72368, 19), Range32), $clone(new Range32.ptr(72369, 72440, 1), Range32), $clone(new Range32.ptr(72704, 72712, 1), Range32), $clone(new Range32.ptr(72714, 72750, 1), Range32), $clone(new Range32.ptr(72768, 72818, 50), Range32), $clone(new Range32.ptr(72819, 72847, 1), Range32), $clone(new Range32.ptr(72960, 72966, 1), Range32), $clone(new Range32.ptr(72968, 72969, 1), Range32), $clone(new Range32.ptr(72971, 73008, 1), Range32), $clone(new Range32.ptr(73030, 73056, 26), Range32), $clone(new Range32.ptr(73057, 73061, 1), Range32), $clone(new Range32.ptr(73063, 73064, 1), Range32), $clone(new Range32.ptr(73066, 73097, 1), Range32), $clone(new Range32.ptr(73112, 73440, 328), Range32), $clone(new Range32.ptr(73441, 73458, 1), Range32), $clone(new Range32.ptr(73474, 73476, 2), Range32), $clone(new Range32.ptr(73477, 73488, 1), Range32), $clone(new Range32.ptr(73490, 73523, 1), Range32), $clone(new Range32.ptr(73648, 73728, 80), Range32), $clone(new Range32.ptr(73729, 74649, 1), Range32), $clone(new Range32.ptr(74880, 75075, 1), Range32), $clone(new Range32.ptr(77712, 77808, 1), Range32), $clone(new Range32.ptr(77824, 78895, 1), Range32), $clone(new Range32.ptr(78913, 78918, 1), Range32), $clone(new Range32.ptr(82944, 83526, 1), Range32), $clone(new Range32.ptr(92160, 92728, 1), Range32), $clone(new Range32.ptr(92736, 92766, 1), Range32), $clone(new Range32.ptr(92784, 92862, 1), Range32), $clone(new Range32.ptr(92880, 92909, 1), Range32), $clone(new Range32.ptr(92928, 92975, 1), Range32), $clone(new Range32.ptr(93027, 93047, 1), Range32), $clone(new Range32.ptr(93053, 93071, 1), Range32), $clone(new Range32.ptr(93952, 94026, 1), Range32), $clone(new Range32.ptr(94032, 94208, 176), Range32), $clone(new Range32.ptr(94209, 100343, 1), Range32), $clone(new Range32.ptr(100352, 101589, 1), Range32), $clone(new Range32.ptr(101632, 101640, 1), Range32), $clone(new Range32.ptr(110592, 110882, 1), Range32), $clone(new Range32.ptr(110898, 110928, 30), Range32), $clone(new Range32.ptr(110929, 110930, 1), Range32), $clone(new Range32.ptr(110933, 110948, 15), Range32), $clone(new Range32.ptr(110949, 110951, 1), Range32), $clone(new Range32.ptr(110960, 111355, 1), Range32), $clone(new Range32.ptr(113664, 113770, 1), Range32), $clone(new Range32.ptr(113776, 113788, 1), Range32), $clone(new Range32.ptr(113792, 113800, 1), Range32), $clone(new Range32.ptr(113808, 113817, 1), Range32), $clone(new Range32.ptr(122634, 123136, 502), Range32), $clone(new Range32.ptr(123137, 123180, 1), Range32), $clone(new Range32.ptr(123214, 123536, 322), Range32), $clone(new Range32.ptr(123537, 123565, 1), Range32), $clone(new Range32.ptr(123584, 123627, 1), Range32), $clone(new Range32.ptr(124112, 124138, 1), Range32), $clone(new Range32.ptr(124896, 124902, 1), Range32), $clone(new Range32.ptr(124904, 124907, 1), Range32), $clone(new Range32.ptr(124909, 124910, 1), Range32), $clone(new Range32.ptr(124912, 124926, 1), Range32), $clone(new Range32.ptr(124928, 125124, 1), Range32), $clone(new Range32.ptr(126464, 126467, 1), Range32), $clone(new Range32.ptr(126469, 126495, 1), Range32), $clone(new Range32.ptr(126497, 126498, 1), Range32), $clone(new Range32.ptr(126500, 126503, 3), Range32), $clone(new Range32.ptr(126505, 126514, 1), Range32), $clone(new Range32.ptr(126516, 126519, 1), Range32), $clone(new Range32.ptr(126521, 126523, 2), Range32), $clone(new Range32.ptr(126530, 126535, 5), Range32), $clone(new Range32.ptr(126537, 126541, 2), Range32), $clone(new Range32.ptr(126542, 126543, 1), Range32), $clone(new Range32.ptr(126545, 126546, 1), Range32), $clone(new Range32.ptr(126548, 126551, 3), Range32), $clone(new Range32.ptr(126553, 126561, 2), Range32), $clone(new Range32.ptr(126562, 126564, 2), Range32), $clone(new Range32.ptr(126567, 126570, 1), Range32), $clone(new Range32.ptr(126572, 126578, 1), Range32), $clone(new Range32.ptr(126580, 126583, 1), Range32), $clone(new Range32.ptr(126585, 126588, 1), Range32), $clone(new Range32.ptr(126590, 126592, 2), Range32), $clone(new Range32.ptr(126593, 126601, 1), Range32), $clone(new Range32.ptr(126603, 126619, 1), Range32), $clone(new Range32.ptr(126625, 126627, 1), Range32), $clone(new Range32.ptr(126629, 126633, 1), Range32), $clone(new Range32.ptr(126635, 126651, 1), Range32), $clone(new Range32.ptr(131072, 173791, 1), Range32), $clone(new Range32.ptr(173824, 177977, 1), Range32), $clone(new Range32.ptr(177984, 178205, 1), Range32), $clone(new Range32.ptr(178208, 183969, 1), Range32), $clone(new Range32.ptr(183984, 191456, 1), Range32), $clone(new Range32.ptr(194560, 195101, 1), Range32), $clone(new Range32.ptr(196608, 201546, 1), Range32), $clone(new Range32.ptr(201552, 205743, 1), Range32)]), 1); _Lt = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(453, 459, 3), Range16), $clone(new Range16.ptr(498, 8072, 7574), Range16), $clone(new Range16.ptr(8073, 8079, 1), Range16), $clone(new Range16.ptr(8088, 8095, 1), Range16), $clone(new Range16.ptr(8104, 8111, 1), Range16), $clone(new Range16.ptr(8124, 8140, 16), Range16), $clone(new Range16.ptr(8188, 8188, 1), Range16)]), sliceType$1.nil, 0); - _Lu = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(65, 90, 1), Range16), $clone(new Range16.ptr(192, 214, 1), Range16), $clone(new Range16.ptr(216, 222, 1), Range16), $clone(new Range16.ptr(256, 310, 2), Range16), $clone(new Range16.ptr(313, 327, 2), Range16), $clone(new Range16.ptr(330, 376, 2), Range16), $clone(new Range16.ptr(377, 381, 2), Range16), $clone(new Range16.ptr(385, 386, 1), Range16), $clone(new Range16.ptr(388, 390, 2), Range16), $clone(new Range16.ptr(391, 393, 2), Range16), $clone(new Range16.ptr(394, 395, 1), Range16), $clone(new Range16.ptr(398, 401, 1), Range16), $clone(new Range16.ptr(403, 404, 1), Range16), $clone(new Range16.ptr(406, 408, 1), Range16), $clone(new Range16.ptr(412, 413, 1), Range16), $clone(new Range16.ptr(415, 416, 1), Range16), $clone(new Range16.ptr(418, 422, 2), Range16), $clone(new Range16.ptr(423, 425, 2), Range16), $clone(new Range16.ptr(428, 430, 2), Range16), $clone(new Range16.ptr(431, 433, 2), Range16), $clone(new Range16.ptr(434, 435, 1), Range16), $clone(new Range16.ptr(437, 439, 2), Range16), $clone(new Range16.ptr(440, 444, 4), Range16), $clone(new Range16.ptr(452, 461, 3), Range16), $clone(new Range16.ptr(463, 475, 2), Range16), $clone(new Range16.ptr(478, 494, 2), Range16), $clone(new Range16.ptr(497, 500, 3), Range16), $clone(new Range16.ptr(502, 504, 1), Range16), $clone(new Range16.ptr(506, 562, 2), Range16), $clone(new Range16.ptr(570, 571, 1), Range16), $clone(new Range16.ptr(573, 574, 1), Range16), $clone(new Range16.ptr(577, 579, 2), Range16), $clone(new Range16.ptr(580, 582, 1), Range16), $clone(new Range16.ptr(584, 590, 2), Range16), $clone(new Range16.ptr(880, 882, 2), Range16), $clone(new Range16.ptr(886, 895, 9), Range16), $clone(new Range16.ptr(902, 904, 2), Range16), $clone(new Range16.ptr(905, 906, 1), Range16), $clone(new Range16.ptr(908, 910, 2), Range16), $clone(new Range16.ptr(911, 913, 2), Range16), $clone(new Range16.ptr(914, 929, 1), Range16), $clone(new Range16.ptr(931, 939, 1), Range16), $clone(new Range16.ptr(975, 978, 3), Range16), $clone(new Range16.ptr(979, 980, 1), Range16), $clone(new Range16.ptr(984, 1006, 2), Range16), $clone(new Range16.ptr(1012, 1015, 3), Range16), $clone(new Range16.ptr(1017, 1018, 1), Range16), $clone(new Range16.ptr(1021, 1071, 1), Range16), $clone(new Range16.ptr(1120, 1152, 2), Range16), $clone(new Range16.ptr(1162, 1216, 2), Range16), $clone(new Range16.ptr(1217, 1229, 2), Range16), $clone(new Range16.ptr(1232, 1326, 2), Range16), $clone(new Range16.ptr(1329, 1366, 1), Range16), $clone(new Range16.ptr(4256, 4293, 1), Range16), $clone(new Range16.ptr(4295, 4301, 6), Range16), $clone(new Range16.ptr(5024, 5109, 1), Range16), $clone(new Range16.ptr(7312, 7354, 1), Range16), $clone(new Range16.ptr(7357, 7359, 1), Range16), $clone(new Range16.ptr(7680, 7828, 2), Range16), $clone(new Range16.ptr(7838, 7934, 2), Range16), $clone(new Range16.ptr(7944, 7951, 1), Range16), $clone(new Range16.ptr(7960, 7965, 1), Range16), $clone(new Range16.ptr(7976, 7983, 1), Range16), $clone(new Range16.ptr(7992, 7999, 1), Range16), $clone(new Range16.ptr(8008, 8013, 1), Range16), $clone(new Range16.ptr(8025, 8031, 2), Range16), $clone(new Range16.ptr(8040, 8047, 1), Range16), $clone(new Range16.ptr(8120, 8123, 1), Range16), $clone(new Range16.ptr(8136, 8139, 1), Range16), $clone(new Range16.ptr(8152, 8155, 1), Range16), $clone(new Range16.ptr(8168, 8172, 1), Range16), $clone(new Range16.ptr(8184, 8187, 1), Range16), $clone(new Range16.ptr(8450, 8455, 5), Range16), $clone(new Range16.ptr(8459, 8461, 1), Range16), $clone(new Range16.ptr(8464, 8466, 1), Range16), $clone(new Range16.ptr(8469, 8473, 4), Range16), $clone(new Range16.ptr(8474, 8477, 1), Range16), $clone(new Range16.ptr(8484, 8490, 2), Range16), $clone(new Range16.ptr(8491, 8493, 1), Range16), $clone(new Range16.ptr(8496, 8499, 1), Range16), $clone(new Range16.ptr(8510, 8511, 1), Range16), $clone(new Range16.ptr(8517, 8579, 62), Range16), $clone(new Range16.ptr(11264, 11310, 1), Range16), $clone(new Range16.ptr(11360, 11362, 2), Range16), $clone(new Range16.ptr(11363, 11364, 1), Range16), $clone(new Range16.ptr(11367, 11373, 2), Range16), $clone(new Range16.ptr(11374, 11376, 1), Range16), $clone(new Range16.ptr(11378, 11381, 3), Range16), $clone(new Range16.ptr(11390, 11392, 1), Range16), $clone(new Range16.ptr(11394, 11490, 2), Range16), $clone(new Range16.ptr(11499, 11501, 2), Range16), $clone(new Range16.ptr(11506, 42560, 31054), Range16), $clone(new Range16.ptr(42562, 42604, 2), Range16), $clone(new Range16.ptr(42624, 42650, 2), Range16), $clone(new Range16.ptr(42786, 42798, 2), Range16), $clone(new Range16.ptr(42802, 42862, 2), Range16), $clone(new Range16.ptr(42873, 42877, 2), Range16), $clone(new Range16.ptr(42878, 42886, 2), Range16), $clone(new Range16.ptr(42891, 42893, 2), Range16), $clone(new Range16.ptr(42896, 42898, 2), Range16), $clone(new Range16.ptr(42902, 42922, 2), Range16), $clone(new Range16.ptr(42923, 42926, 1), Range16), $clone(new Range16.ptr(42928, 42932, 1), Range16), $clone(new Range16.ptr(42934, 42942, 2), Range16), $clone(new Range16.ptr(42946, 42948, 2), Range16), $clone(new Range16.ptr(42949, 42951, 1), Range16), $clone(new Range16.ptr(42953, 42997, 44), Range16), $clone(new Range16.ptr(65313, 65338, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(66560, 66599, 1), Range32), $clone(new Range32.ptr(66736, 66771, 1), Range32), $clone(new Range32.ptr(68736, 68786, 1), Range32), $clone(new Range32.ptr(71840, 71871, 1), Range32), $clone(new Range32.ptr(93760, 93791, 1), Range32), $clone(new Range32.ptr(119808, 119833, 1), Range32), $clone(new Range32.ptr(119860, 119885, 1), Range32), $clone(new Range32.ptr(119912, 119937, 1), Range32), $clone(new Range32.ptr(119964, 119966, 2), Range32), $clone(new Range32.ptr(119967, 119973, 3), Range32), $clone(new Range32.ptr(119974, 119977, 3), Range32), $clone(new Range32.ptr(119978, 119980, 1), Range32), $clone(new Range32.ptr(119982, 119989, 1), Range32), $clone(new Range32.ptr(120016, 120041, 1), Range32), $clone(new Range32.ptr(120068, 120069, 1), Range32), $clone(new Range32.ptr(120071, 120074, 1), Range32), $clone(new Range32.ptr(120077, 120084, 1), Range32), $clone(new Range32.ptr(120086, 120092, 1), Range32), $clone(new Range32.ptr(120120, 120121, 1), Range32), $clone(new Range32.ptr(120123, 120126, 1), Range32), $clone(new Range32.ptr(120128, 120132, 1), Range32), $clone(new Range32.ptr(120134, 120138, 4), Range32), $clone(new Range32.ptr(120139, 120144, 1), Range32), $clone(new Range32.ptr(120172, 120197, 1), Range32), $clone(new Range32.ptr(120224, 120249, 1), Range32), $clone(new Range32.ptr(120276, 120301, 1), Range32), $clone(new Range32.ptr(120328, 120353, 1), Range32), $clone(new Range32.ptr(120380, 120405, 1), Range32), $clone(new Range32.ptr(120432, 120457, 1), Range32), $clone(new Range32.ptr(120488, 120512, 1), Range32), $clone(new Range32.ptr(120546, 120570, 1), Range32), $clone(new Range32.ptr(120604, 120628, 1), Range32), $clone(new Range32.ptr(120662, 120686, 1), Range32), $clone(new Range32.ptr(120720, 120744, 1), Range32), $clone(new Range32.ptr(120778, 125184, 4406), Range32), $clone(new Range32.ptr(125185, 125217, 1), Range32)]), 3); - _M = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(768, 879, 1), Range16), $clone(new Range16.ptr(1155, 1161, 1), Range16), $clone(new Range16.ptr(1425, 1469, 1), Range16), $clone(new Range16.ptr(1471, 1473, 2), Range16), $clone(new Range16.ptr(1474, 1476, 2), Range16), $clone(new Range16.ptr(1477, 1479, 2), Range16), $clone(new Range16.ptr(1552, 1562, 1), Range16), $clone(new Range16.ptr(1611, 1631, 1), Range16), $clone(new Range16.ptr(1648, 1750, 102), Range16), $clone(new Range16.ptr(1751, 1756, 1), Range16), $clone(new Range16.ptr(1759, 1764, 1), Range16), $clone(new Range16.ptr(1767, 1768, 1), Range16), $clone(new Range16.ptr(1770, 1773, 1), Range16), $clone(new Range16.ptr(1809, 1840, 31), Range16), $clone(new Range16.ptr(1841, 1866, 1), Range16), $clone(new Range16.ptr(1958, 1968, 1), Range16), $clone(new Range16.ptr(2027, 2035, 1), Range16), $clone(new Range16.ptr(2045, 2070, 25), Range16), $clone(new Range16.ptr(2071, 2073, 1), Range16), $clone(new Range16.ptr(2075, 2083, 1), Range16), $clone(new Range16.ptr(2085, 2087, 1), Range16), $clone(new Range16.ptr(2089, 2093, 1), Range16), $clone(new Range16.ptr(2137, 2139, 1), Range16), $clone(new Range16.ptr(2259, 2273, 1), Range16), $clone(new Range16.ptr(2275, 2307, 1), Range16), $clone(new Range16.ptr(2362, 2364, 1), Range16), $clone(new Range16.ptr(2366, 2383, 1), Range16), $clone(new Range16.ptr(2385, 2391, 1), Range16), $clone(new Range16.ptr(2402, 2403, 1), Range16), $clone(new Range16.ptr(2433, 2435, 1), Range16), $clone(new Range16.ptr(2492, 2494, 2), Range16), $clone(new Range16.ptr(2495, 2500, 1), Range16), $clone(new Range16.ptr(2503, 2504, 1), Range16), $clone(new Range16.ptr(2507, 2509, 1), Range16), $clone(new Range16.ptr(2519, 2530, 11), Range16), $clone(new Range16.ptr(2531, 2558, 27), Range16), $clone(new Range16.ptr(2561, 2563, 1), Range16), $clone(new Range16.ptr(2620, 2622, 2), Range16), $clone(new Range16.ptr(2623, 2626, 1), Range16), $clone(new Range16.ptr(2631, 2632, 1), Range16), $clone(new Range16.ptr(2635, 2637, 1), Range16), $clone(new Range16.ptr(2641, 2672, 31), Range16), $clone(new Range16.ptr(2673, 2677, 4), Range16), $clone(new Range16.ptr(2689, 2691, 1), Range16), $clone(new Range16.ptr(2748, 2750, 2), Range16), $clone(new Range16.ptr(2751, 2757, 1), Range16), $clone(new Range16.ptr(2759, 2761, 1), Range16), $clone(new Range16.ptr(2763, 2765, 1), Range16), $clone(new Range16.ptr(2786, 2787, 1), Range16), $clone(new Range16.ptr(2810, 2815, 1), Range16), $clone(new Range16.ptr(2817, 2819, 1), Range16), $clone(new Range16.ptr(2876, 2878, 2), Range16), $clone(new Range16.ptr(2879, 2884, 1), Range16), $clone(new Range16.ptr(2887, 2888, 1), Range16), $clone(new Range16.ptr(2891, 2893, 1), Range16), $clone(new Range16.ptr(2901, 2903, 1), Range16), $clone(new Range16.ptr(2914, 2915, 1), Range16), $clone(new Range16.ptr(2946, 3006, 60), Range16), $clone(new Range16.ptr(3007, 3010, 1), Range16), $clone(new Range16.ptr(3014, 3016, 1), Range16), $clone(new Range16.ptr(3018, 3021, 1), Range16), $clone(new Range16.ptr(3031, 3072, 41), Range16), $clone(new Range16.ptr(3073, 3076, 1), Range16), $clone(new Range16.ptr(3134, 3140, 1), Range16), $clone(new Range16.ptr(3142, 3144, 1), Range16), $clone(new Range16.ptr(3146, 3149, 1), Range16), $clone(new Range16.ptr(3157, 3158, 1), Range16), $clone(new Range16.ptr(3170, 3171, 1), Range16), $clone(new Range16.ptr(3201, 3203, 1), Range16), $clone(new Range16.ptr(3260, 3262, 2), Range16), $clone(new Range16.ptr(3263, 3268, 1), Range16), $clone(new Range16.ptr(3270, 3272, 1), Range16), $clone(new Range16.ptr(3274, 3277, 1), Range16), $clone(new Range16.ptr(3285, 3286, 1), Range16), $clone(new Range16.ptr(3298, 3299, 1), Range16), $clone(new Range16.ptr(3328, 3331, 1), Range16), $clone(new Range16.ptr(3387, 3388, 1), Range16), $clone(new Range16.ptr(3390, 3396, 1), Range16), $clone(new Range16.ptr(3398, 3400, 1), Range16), $clone(new Range16.ptr(3402, 3405, 1), Range16), $clone(new Range16.ptr(3415, 3426, 11), Range16), $clone(new Range16.ptr(3427, 3457, 30), Range16), $clone(new Range16.ptr(3458, 3459, 1), Range16), $clone(new Range16.ptr(3530, 3535, 5), Range16), $clone(new Range16.ptr(3536, 3540, 1), Range16), $clone(new Range16.ptr(3542, 3544, 2), Range16), $clone(new Range16.ptr(3545, 3551, 1), Range16), $clone(new Range16.ptr(3570, 3571, 1), Range16), $clone(new Range16.ptr(3633, 3636, 3), Range16), $clone(new Range16.ptr(3637, 3642, 1), Range16), $clone(new Range16.ptr(3655, 3662, 1), Range16), $clone(new Range16.ptr(3761, 3764, 3), Range16), $clone(new Range16.ptr(3765, 3772, 1), Range16), $clone(new Range16.ptr(3784, 3789, 1), Range16), $clone(new Range16.ptr(3864, 3865, 1), Range16), $clone(new Range16.ptr(3893, 3897, 2), Range16), $clone(new Range16.ptr(3902, 3903, 1), Range16), $clone(new Range16.ptr(3953, 3972, 1), Range16), $clone(new Range16.ptr(3974, 3975, 1), Range16), $clone(new Range16.ptr(3981, 3991, 1), Range16), $clone(new Range16.ptr(3993, 4028, 1), Range16), $clone(new Range16.ptr(4038, 4139, 101), Range16), $clone(new Range16.ptr(4140, 4158, 1), Range16), $clone(new Range16.ptr(4182, 4185, 1), Range16), $clone(new Range16.ptr(4190, 4192, 1), Range16), $clone(new Range16.ptr(4194, 4196, 1), Range16), $clone(new Range16.ptr(4199, 4205, 1), Range16), $clone(new Range16.ptr(4209, 4212, 1), Range16), $clone(new Range16.ptr(4226, 4237, 1), Range16), $clone(new Range16.ptr(4239, 4250, 11), Range16), $clone(new Range16.ptr(4251, 4253, 1), Range16), $clone(new Range16.ptr(4957, 4959, 1), Range16), $clone(new Range16.ptr(5906, 5908, 1), Range16), $clone(new Range16.ptr(5938, 5940, 1), Range16), $clone(new Range16.ptr(5970, 5971, 1), Range16), $clone(new Range16.ptr(6002, 6003, 1), Range16), $clone(new Range16.ptr(6068, 6099, 1), Range16), $clone(new Range16.ptr(6109, 6155, 46), Range16), $clone(new Range16.ptr(6156, 6157, 1), Range16), $clone(new Range16.ptr(6277, 6278, 1), Range16), $clone(new Range16.ptr(6313, 6432, 119), Range16), $clone(new Range16.ptr(6433, 6443, 1), Range16), $clone(new Range16.ptr(6448, 6459, 1), Range16), $clone(new Range16.ptr(6679, 6683, 1), Range16), $clone(new Range16.ptr(6741, 6750, 1), Range16), $clone(new Range16.ptr(6752, 6780, 1), Range16), $clone(new Range16.ptr(6783, 6832, 49), Range16), $clone(new Range16.ptr(6833, 6848, 1), Range16), $clone(new Range16.ptr(6912, 6916, 1), Range16), $clone(new Range16.ptr(6964, 6980, 1), Range16), $clone(new Range16.ptr(7019, 7027, 1), Range16), $clone(new Range16.ptr(7040, 7042, 1), Range16), $clone(new Range16.ptr(7073, 7085, 1), Range16), $clone(new Range16.ptr(7142, 7155, 1), Range16), $clone(new Range16.ptr(7204, 7223, 1), Range16), $clone(new Range16.ptr(7376, 7378, 1), Range16), $clone(new Range16.ptr(7380, 7400, 1), Range16), $clone(new Range16.ptr(7405, 7412, 7), Range16), $clone(new Range16.ptr(7415, 7417, 1), Range16), $clone(new Range16.ptr(7616, 7673, 1), Range16), $clone(new Range16.ptr(7675, 7679, 1), Range16), $clone(new Range16.ptr(8400, 8432, 1), Range16), $clone(new Range16.ptr(11503, 11505, 1), Range16), $clone(new Range16.ptr(11647, 11744, 97), Range16), $clone(new Range16.ptr(11745, 11775, 1), Range16), $clone(new Range16.ptr(12330, 12335, 1), Range16), $clone(new Range16.ptr(12441, 12442, 1), Range16), $clone(new Range16.ptr(42607, 42610, 1), Range16), $clone(new Range16.ptr(42612, 42621, 1), Range16), $clone(new Range16.ptr(42654, 42655, 1), Range16), $clone(new Range16.ptr(42736, 42737, 1), Range16), $clone(new Range16.ptr(43010, 43014, 4), Range16), $clone(new Range16.ptr(43019, 43043, 24), Range16), $clone(new Range16.ptr(43044, 43047, 1), Range16), $clone(new Range16.ptr(43052, 43136, 84), Range16), $clone(new Range16.ptr(43137, 43188, 51), Range16), $clone(new Range16.ptr(43189, 43205, 1), Range16), $clone(new Range16.ptr(43232, 43249, 1), Range16), $clone(new Range16.ptr(43263, 43302, 39), Range16), $clone(new Range16.ptr(43303, 43309, 1), Range16), $clone(new Range16.ptr(43335, 43347, 1), Range16), $clone(new Range16.ptr(43392, 43395, 1), Range16), $clone(new Range16.ptr(43443, 43456, 1), Range16), $clone(new Range16.ptr(43493, 43561, 68), Range16), $clone(new Range16.ptr(43562, 43574, 1), Range16), $clone(new Range16.ptr(43587, 43596, 9), Range16), $clone(new Range16.ptr(43597, 43643, 46), Range16), $clone(new Range16.ptr(43644, 43645, 1), Range16), $clone(new Range16.ptr(43696, 43698, 2), Range16), $clone(new Range16.ptr(43699, 43700, 1), Range16), $clone(new Range16.ptr(43703, 43704, 1), Range16), $clone(new Range16.ptr(43710, 43711, 1), Range16), $clone(new Range16.ptr(43713, 43755, 42), Range16), $clone(new Range16.ptr(43756, 43759, 1), Range16), $clone(new Range16.ptr(43765, 43766, 1), Range16), $clone(new Range16.ptr(44003, 44010, 1), Range16), $clone(new Range16.ptr(44012, 44013, 1), Range16), $clone(new Range16.ptr(64286, 65024, 738), Range16), $clone(new Range16.ptr(65025, 65039, 1), Range16), $clone(new Range16.ptr(65056, 65071, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(66045, 66272, 227), Range32), $clone(new Range32.ptr(66422, 66426, 1), Range32), $clone(new Range32.ptr(68097, 68099, 1), Range32), $clone(new Range32.ptr(68101, 68102, 1), Range32), $clone(new Range32.ptr(68108, 68111, 1), Range32), $clone(new Range32.ptr(68152, 68154, 1), Range32), $clone(new Range32.ptr(68159, 68325, 166), Range32), $clone(new Range32.ptr(68326, 68900, 574), Range32), $clone(new Range32.ptr(68901, 68903, 1), Range32), $clone(new Range32.ptr(69291, 69292, 1), Range32), $clone(new Range32.ptr(69446, 69456, 1), Range32), $clone(new Range32.ptr(69632, 69634, 1), Range32), $clone(new Range32.ptr(69688, 69702, 1), Range32), $clone(new Range32.ptr(69759, 69762, 1), Range32), $clone(new Range32.ptr(69808, 69818, 1), Range32), $clone(new Range32.ptr(69888, 69890, 1), Range32), $clone(new Range32.ptr(69927, 69940, 1), Range32), $clone(new Range32.ptr(69957, 69958, 1), Range32), $clone(new Range32.ptr(70003, 70016, 13), Range32), $clone(new Range32.ptr(70017, 70018, 1), Range32), $clone(new Range32.ptr(70067, 70080, 1), Range32), $clone(new Range32.ptr(70089, 70092, 1), Range32), $clone(new Range32.ptr(70094, 70095, 1), Range32), $clone(new Range32.ptr(70188, 70199, 1), Range32), $clone(new Range32.ptr(70206, 70367, 161), Range32), $clone(new Range32.ptr(70368, 70378, 1), Range32), $clone(new Range32.ptr(70400, 70403, 1), Range32), $clone(new Range32.ptr(70459, 70460, 1), Range32), $clone(new Range32.ptr(70462, 70468, 1), Range32), $clone(new Range32.ptr(70471, 70472, 1), Range32), $clone(new Range32.ptr(70475, 70477, 1), Range32), $clone(new Range32.ptr(70487, 70498, 11), Range32), $clone(new Range32.ptr(70499, 70502, 3), Range32), $clone(new Range32.ptr(70503, 70508, 1), Range32), $clone(new Range32.ptr(70512, 70516, 1), Range32), $clone(new Range32.ptr(70709, 70726, 1), Range32), $clone(new Range32.ptr(70750, 70832, 82), Range32), $clone(new Range32.ptr(70833, 70851, 1), Range32), $clone(new Range32.ptr(71087, 71093, 1), Range32), $clone(new Range32.ptr(71096, 71104, 1), Range32), $clone(new Range32.ptr(71132, 71133, 1), Range32), $clone(new Range32.ptr(71216, 71232, 1), Range32), $clone(new Range32.ptr(71339, 71351, 1), Range32), $clone(new Range32.ptr(71453, 71467, 1), Range32), $clone(new Range32.ptr(71724, 71738, 1), Range32), $clone(new Range32.ptr(71984, 71989, 1), Range32), $clone(new Range32.ptr(71991, 71992, 1), Range32), $clone(new Range32.ptr(71995, 71998, 1), Range32), $clone(new Range32.ptr(72000, 72002, 2), Range32), $clone(new Range32.ptr(72003, 72145, 142), Range32), $clone(new Range32.ptr(72146, 72151, 1), Range32), $clone(new Range32.ptr(72154, 72160, 1), Range32), $clone(new Range32.ptr(72164, 72193, 29), Range32), $clone(new Range32.ptr(72194, 72202, 1), Range32), $clone(new Range32.ptr(72243, 72249, 1), Range32), $clone(new Range32.ptr(72251, 72254, 1), Range32), $clone(new Range32.ptr(72263, 72273, 10), Range32), $clone(new Range32.ptr(72274, 72283, 1), Range32), $clone(new Range32.ptr(72330, 72345, 1), Range32), $clone(new Range32.ptr(72751, 72758, 1), Range32), $clone(new Range32.ptr(72760, 72767, 1), Range32), $clone(new Range32.ptr(72850, 72871, 1), Range32), $clone(new Range32.ptr(72873, 72886, 1), Range32), $clone(new Range32.ptr(73009, 73014, 1), Range32), $clone(new Range32.ptr(73018, 73020, 2), Range32), $clone(new Range32.ptr(73021, 73023, 2), Range32), $clone(new Range32.ptr(73024, 73029, 1), Range32), $clone(new Range32.ptr(73031, 73098, 67), Range32), $clone(new Range32.ptr(73099, 73102, 1), Range32), $clone(new Range32.ptr(73104, 73105, 1), Range32), $clone(new Range32.ptr(73107, 73111, 1), Range32), $clone(new Range32.ptr(73459, 73462, 1), Range32), $clone(new Range32.ptr(92912, 92916, 1), Range32), $clone(new Range32.ptr(92976, 92982, 1), Range32), $clone(new Range32.ptr(94031, 94033, 2), Range32), $clone(new Range32.ptr(94034, 94087, 1), Range32), $clone(new Range32.ptr(94095, 94098, 1), Range32), $clone(new Range32.ptr(94180, 94192, 12), Range32), $clone(new Range32.ptr(94193, 113821, 19628), Range32), $clone(new Range32.ptr(113822, 119141, 5319), Range32), $clone(new Range32.ptr(119142, 119145, 1), Range32), $clone(new Range32.ptr(119149, 119154, 1), Range32), $clone(new Range32.ptr(119163, 119170, 1), Range32), $clone(new Range32.ptr(119173, 119179, 1), Range32), $clone(new Range32.ptr(119210, 119213, 1), Range32), $clone(new Range32.ptr(119362, 119364, 1), Range32), $clone(new Range32.ptr(121344, 121398, 1), Range32), $clone(new Range32.ptr(121403, 121452, 1), Range32), $clone(new Range32.ptr(121461, 121476, 15), Range32), $clone(new Range32.ptr(121499, 121503, 1), Range32), $clone(new Range32.ptr(121505, 121519, 1), Range32), $clone(new Range32.ptr(122880, 122886, 1), Range32), $clone(new Range32.ptr(122888, 122904, 1), Range32), $clone(new Range32.ptr(122907, 122913, 1), Range32), $clone(new Range32.ptr(122915, 122916, 1), Range32), $clone(new Range32.ptr(122918, 122922, 1), Range32), $clone(new Range32.ptr(123184, 123190, 1), Range32), $clone(new Range32.ptr(123628, 123631, 1), Range32), $clone(new Range32.ptr(125136, 125142, 1), Range32), $clone(new Range32.ptr(125252, 125258, 1), Range32), $clone(new Range32.ptr(917760, 917999, 1), Range32)]), 0); - _Mc = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(2307, 2363, 56), Range16), $clone(new Range16.ptr(2366, 2368, 1), Range16), $clone(new Range16.ptr(2377, 2380, 1), Range16), $clone(new Range16.ptr(2382, 2383, 1), Range16), $clone(new Range16.ptr(2434, 2435, 1), Range16), $clone(new Range16.ptr(2494, 2496, 1), Range16), $clone(new Range16.ptr(2503, 2504, 1), Range16), $clone(new Range16.ptr(2507, 2508, 1), Range16), $clone(new Range16.ptr(2519, 2563, 44), Range16), $clone(new Range16.ptr(2622, 2624, 1), Range16), $clone(new Range16.ptr(2691, 2750, 59), Range16), $clone(new Range16.ptr(2751, 2752, 1), Range16), $clone(new Range16.ptr(2761, 2763, 2), Range16), $clone(new Range16.ptr(2764, 2818, 54), Range16), $clone(new Range16.ptr(2819, 2878, 59), Range16), $clone(new Range16.ptr(2880, 2887, 7), Range16), $clone(new Range16.ptr(2888, 2891, 3), Range16), $clone(new Range16.ptr(2892, 2903, 11), Range16), $clone(new Range16.ptr(3006, 3007, 1), Range16), $clone(new Range16.ptr(3009, 3010, 1), Range16), $clone(new Range16.ptr(3014, 3016, 1), Range16), $clone(new Range16.ptr(3018, 3020, 1), Range16), $clone(new Range16.ptr(3031, 3073, 42), Range16), $clone(new Range16.ptr(3074, 3075, 1), Range16), $clone(new Range16.ptr(3137, 3140, 1), Range16), $clone(new Range16.ptr(3202, 3203, 1), Range16), $clone(new Range16.ptr(3262, 3264, 2), Range16), $clone(new Range16.ptr(3265, 3268, 1), Range16), $clone(new Range16.ptr(3271, 3272, 1), Range16), $clone(new Range16.ptr(3274, 3275, 1), Range16), $clone(new Range16.ptr(3285, 3286, 1), Range16), $clone(new Range16.ptr(3330, 3331, 1), Range16), $clone(new Range16.ptr(3390, 3392, 1), Range16), $clone(new Range16.ptr(3398, 3400, 1), Range16), $clone(new Range16.ptr(3402, 3404, 1), Range16), $clone(new Range16.ptr(3415, 3458, 43), Range16), $clone(new Range16.ptr(3459, 3535, 76), Range16), $clone(new Range16.ptr(3536, 3537, 1), Range16), $clone(new Range16.ptr(3544, 3551, 1), Range16), $clone(new Range16.ptr(3570, 3571, 1), Range16), $clone(new Range16.ptr(3902, 3903, 1), Range16), $clone(new Range16.ptr(3967, 4139, 172), Range16), $clone(new Range16.ptr(4140, 4145, 5), Range16), $clone(new Range16.ptr(4152, 4155, 3), Range16), $clone(new Range16.ptr(4156, 4182, 26), Range16), $clone(new Range16.ptr(4183, 4194, 11), Range16), $clone(new Range16.ptr(4195, 4196, 1), Range16), $clone(new Range16.ptr(4199, 4205, 1), Range16), $clone(new Range16.ptr(4227, 4228, 1), Range16), $clone(new Range16.ptr(4231, 4236, 1), Range16), $clone(new Range16.ptr(4239, 4250, 11), Range16), $clone(new Range16.ptr(4251, 4252, 1), Range16), $clone(new Range16.ptr(6070, 6078, 8), Range16), $clone(new Range16.ptr(6079, 6085, 1), Range16), $clone(new Range16.ptr(6087, 6088, 1), Range16), $clone(new Range16.ptr(6435, 6438, 1), Range16), $clone(new Range16.ptr(6441, 6443, 1), Range16), $clone(new Range16.ptr(6448, 6449, 1), Range16), $clone(new Range16.ptr(6451, 6456, 1), Range16), $clone(new Range16.ptr(6681, 6682, 1), Range16), $clone(new Range16.ptr(6741, 6743, 2), Range16), $clone(new Range16.ptr(6753, 6755, 2), Range16), $clone(new Range16.ptr(6756, 6765, 9), Range16), $clone(new Range16.ptr(6766, 6770, 1), Range16), $clone(new Range16.ptr(6916, 6965, 49), Range16), $clone(new Range16.ptr(6971, 6973, 2), Range16), $clone(new Range16.ptr(6974, 6977, 1), Range16), $clone(new Range16.ptr(6979, 6980, 1), Range16), $clone(new Range16.ptr(7042, 7073, 31), Range16), $clone(new Range16.ptr(7078, 7079, 1), Range16), $clone(new Range16.ptr(7082, 7143, 61), Range16), $clone(new Range16.ptr(7146, 7148, 1), Range16), $clone(new Range16.ptr(7150, 7154, 4), Range16), $clone(new Range16.ptr(7155, 7204, 49), Range16), $clone(new Range16.ptr(7205, 7211, 1), Range16), $clone(new Range16.ptr(7220, 7221, 1), Range16), $clone(new Range16.ptr(7393, 7415, 22), Range16), $clone(new Range16.ptr(12334, 12335, 1), Range16), $clone(new Range16.ptr(43043, 43044, 1), Range16), $clone(new Range16.ptr(43047, 43136, 89), Range16), $clone(new Range16.ptr(43137, 43188, 51), Range16), $clone(new Range16.ptr(43189, 43203, 1), Range16), $clone(new Range16.ptr(43346, 43347, 1), Range16), $clone(new Range16.ptr(43395, 43444, 49), Range16), $clone(new Range16.ptr(43445, 43450, 5), Range16), $clone(new Range16.ptr(43451, 43454, 3), Range16), $clone(new Range16.ptr(43455, 43456, 1), Range16), $clone(new Range16.ptr(43567, 43568, 1), Range16), $clone(new Range16.ptr(43571, 43572, 1), Range16), $clone(new Range16.ptr(43597, 43643, 46), Range16), $clone(new Range16.ptr(43645, 43755, 110), Range16), $clone(new Range16.ptr(43758, 43759, 1), Range16), $clone(new Range16.ptr(43765, 44003, 238), Range16), $clone(new Range16.ptr(44004, 44006, 2), Range16), $clone(new Range16.ptr(44007, 44009, 2), Range16), $clone(new Range16.ptr(44010, 44012, 2), Range16)]), new sliceType$1([$clone(new Range32.ptr(69632, 69634, 2), Range32), $clone(new Range32.ptr(69762, 69808, 46), Range32), $clone(new Range32.ptr(69809, 69810, 1), Range32), $clone(new Range32.ptr(69815, 69816, 1), Range32), $clone(new Range32.ptr(69932, 69957, 25), Range32), $clone(new Range32.ptr(69958, 70018, 60), Range32), $clone(new Range32.ptr(70067, 70069, 1), Range32), $clone(new Range32.ptr(70079, 70080, 1), Range32), $clone(new Range32.ptr(70094, 70188, 94), Range32), $clone(new Range32.ptr(70189, 70190, 1), Range32), $clone(new Range32.ptr(70194, 70195, 1), Range32), $clone(new Range32.ptr(70197, 70368, 171), Range32), $clone(new Range32.ptr(70369, 70370, 1), Range32), $clone(new Range32.ptr(70402, 70403, 1), Range32), $clone(new Range32.ptr(70462, 70463, 1), Range32), $clone(new Range32.ptr(70465, 70468, 1), Range32), $clone(new Range32.ptr(70471, 70472, 1), Range32), $clone(new Range32.ptr(70475, 70477, 1), Range32), $clone(new Range32.ptr(70487, 70498, 11), Range32), $clone(new Range32.ptr(70499, 70709, 210), Range32), $clone(new Range32.ptr(70710, 70711, 1), Range32), $clone(new Range32.ptr(70720, 70721, 1), Range32), $clone(new Range32.ptr(70725, 70832, 107), Range32), $clone(new Range32.ptr(70833, 70834, 1), Range32), $clone(new Range32.ptr(70841, 70843, 2), Range32), $clone(new Range32.ptr(70844, 70846, 1), Range32), $clone(new Range32.ptr(70849, 71087, 238), Range32), $clone(new Range32.ptr(71088, 71089, 1), Range32), $clone(new Range32.ptr(71096, 71099, 1), Range32), $clone(new Range32.ptr(71102, 71216, 114), Range32), $clone(new Range32.ptr(71217, 71218, 1), Range32), $clone(new Range32.ptr(71227, 71228, 1), Range32), $clone(new Range32.ptr(71230, 71340, 110), Range32), $clone(new Range32.ptr(71342, 71343, 1), Range32), $clone(new Range32.ptr(71350, 71456, 106), Range32), $clone(new Range32.ptr(71457, 71462, 5), Range32), $clone(new Range32.ptr(71724, 71726, 1), Range32), $clone(new Range32.ptr(71736, 71984, 248), Range32), $clone(new Range32.ptr(71985, 71989, 1), Range32), $clone(new Range32.ptr(71991, 71992, 1), Range32), $clone(new Range32.ptr(71997, 72000, 3), Range32), $clone(new Range32.ptr(72002, 72145, 143), Range32), $clone(new Range32.ptr(72146, 72147, 1), Range32), $clone(new Range32.ptr(72156, 72159, 1), Range32), $clone(new Range32.ptr(72164, 72249, 85), Range32), $clone(new Range32.ptr(72279, 72280, 1), Range32), $clone(new Range32.ptr(72343, 72751, 408), Range32), $clone(new Range32.ptr(72766, 72873, 107), Range32), $clone(new Range32.ptr(72881, 72884, 3), Range32), $clone(new Range32.ptr(73098, 73102, 1), Range32), $clone(new Range32.ptr(73107, 73108, 1), Range32), $clone(new Range32.ptr(73110, 73461, 351), Range32), $clone(new Range32.ptr(73462, 94033, 20571), Range32), $clone(new Range32.ptr(94034, 94087, 1), Range32), $clone(new Range32.ptr(94192, 94193, 1), Range32), $clone(new Range32.ptr(119141, 119142, 1), Range32), $clone(new Range32.ptr(119149, 119154, 1), Range32)]), 0); + _Lu = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(65, 90, 1), Range16), $clone(new Range16.ptr(192, 214, 1), Range16), $clone(new Range16.ptr(216, 222, 1), Range16), $clone(new Range16.ptr(256, 310, 2), Range16), $clone(new Range16.ptr(313, 327, 2), Range16), $clone(new Range16.ptr(330, 376, 2), Range16), $clone(new Range16.ptr(377, 381, 2), Range16), $clone(new Range16.ptr(385, 386, 1), Range16), $clone(new Range16.ptr(388, 390, 2), Range16), $clone(new Range16.ptr(391, 393, 2), Range16), $clone(new Range16.ptr(394, 395, 1), Range16), $clone(new Range16.ptr(398, 401, 1), Range16), $clone(new Range16.ptr(403, 404, 1), Range16), $clone(new Range16.ptr(406, 408, 1), Range16), $clone(new Range16.ptr(412, 413, 1), Range16), $clone(new Range16.ptr(415, 416, 1), Range16), $clone(new Range16.ptr(418, 422, 2), Range16), $clone(new Range16.ptr(423, 425, 2), Range16), $clone(new Range16.ptr(428, 430, 2), Range16), $clone(new Range16.ptr(431, 433, 2), Range16), $clone(new Range16.ptr(434, 435, 1), Range16), $clone(new Range16.ptr(437, 439, 2), Range16), $clone(new Range16.ptr(440, 444, 4), Range16), $clone(new Range16.ptr(452, 461, 3), Range16), $clone(new Range16.ptr(463, 475, 2), Range16), $clone(new Range16.ptr(478, 494, 2), Range16), $clone(new Range16.ptr(497, 500, 3), Range16), $clone(new Range16.ptr(502, 504, 1), Range16), $clone(new Range16.ptr(506, 562, 2), Range16), $clone(new Range16.ptr(570, 571, 1), Range16), $clone(new Range16.ptr(573, 574, 1), Range16), $clone(new Range16.ptr(577, 579, 2), Range16), $clone(new Range16.ptr(580, 582, 1), Range16), $clone(new Range16.ptr(584, 590, 2), Range16), $clone(new Range16.ptr(880, 882, 2), Range16), $clone(new Range16.ptr(886, 895, 9), Range16), $clone(new Range16.ptr(902, 904, 2), Range16), $clone(new Range16.ptr(905, 906, 1), Range16), $clone(new Range16.ptr(908, 910, 2), Range16), $clone(new Range16.ptr(911, 913, 2), Range16), $clone(new Range16.ptr(914, 929, 1), Range16), $clone(new Range16.ptr(931, 939, 1), Range16), $clone(new Range16.ptr(975, 978, 3), Range16), $clone(new Range16.ptr(979, 980, 1), Range16), $clone(new Range16.ptr(984, 1006, 2), Range16), $clone(new Range16.ptr(1012, 1015, 3), Range16), $clone(new Range16.ptr(1017, 1018, 1), Range16), $clone(new Range16.ptr(1021, 1071, 1), Range16), $clone(new Range16.ptr(1120, 1152, 2), Range16), $clone(new Range16.ptr(1162, 1216, 2), Range16), $clone(new Range16.ptr(1217, 1229, 2), Range16), $clone(new Range16.ptr(1232, 1326, 2), Range16), $clone(new Range16.ptr(1329, 1366, 1), Range16), $clone(new Range16.ptr(4256, 4293, 1), Range16), $clone(new Range16.ptr(4295, 4301, 6), Range16), $clone(new Range16.ptr(5024, 5109, 1), Range16), $clone(new Range16.ptr(7312, 7354, 1), Range16), $clone(new Range16.ptr(7357, 7359, 1), Range16), $clone(new Range16.ptr(7680, 7828, 2), Range16), $clone(new Range16.ptr(7838, 7934, 2), Range16), $clone(new Range16.ptr(7944, 7951, 1), Range16), $clone(new Range16.ptr(7960, 7965, 1), Range16), $clone(new Range16.ptr(7976, 7983, 1), Range16), $clone(new Range16.ptr(7992, 7999, 1), Range16), $clone(new Range16.ptr(8008, 8013, 1), Range16), $clone(new Range16.ptr(8025, 8031, 2), Range16), $clone(new Range16.ptr(8040, 8047, 1), Range16), $clone(new Range16.ptr(8120, 8123, 1), Range16), $clone(new Range16.ptr(8136, 8139, 1), Range16), $clone(new Range16.ptr(8152, 8155, 1), Range16), $clone(new Range16.ptr(8168, 8172, 1), Range16), $clone(new Range16.ptr(8184, 8187, 1), Range16), $clone(new Range16.ptr(8450, 8455, 5), Range16), $clone(new Range16.ptr(8459, 8461, 1), Range16), $clone(new Range16.ptr(8464, 8466, 1), Range16), $clone(new Range16.ptr(8469, 8473, 4), Range16), $clone(new Range16.ptr(8474, 8477, 1), Range16), $clone(new Range16.ptr(8484, 8490, 2), Range16), $clone(new Range16.ptr(8491, 8493, 1), Range16), $clone(new Range16.ptr(8496, 8499, 1), Range16), $clone(new Range16.ptr(8510, 8511, 1), Range16), $clone(new Range16.ptr(8517, 8579, 62), Range16), $clone(new Range16.ptr(11264, 11311, 1), Range16), $clone(new Range16.ptr(11360, 11362, 2), Range16), $clone(new Range16.ptr(11363, 11364, 1), Range16), $clone(new Range16.ptr(11367, 11373, 2), Range16), $clone(new Range16.ptr(11374, 11376, 1), Range16), $clone(new Range16.ptr(11378, 11381, 3), Range16), $clone(new Range16.ptr(11390, 11392, 1), Range16), $clone(new Range16.ptr(11394, 11490, 2), Range16), $clone(new Range16.ptr(11499, 11501, 2), Range16), $clone(new Range16.ptr(11506, 42560, 31054), Range16), $clone(new Range16.ptr(42562, 42604, 2), Range16), $clone(new Range16.ptr(42624, 42650, 2), Range16), $clone(new Range16.ptr(42786, 42798, 2), Range16), $clone(new Range16.ptr(42802, 42862, 2), Range16), $clone(new Range16.ptr(42873, 42877, 2), Range16), $clone(new Range16.ptr(42878, 42886, 2), Range16), $clone(new Range16.ptr(42891, 42893, 2), Range16), $clone(new Range16.ptr(42896, 42898, 2), Range16), $clone(new Range16.ptr(42902, 42922, 2), Range16), $clone(new Range16.ptr(42923, 42926, 1), Range16), $clone(new Range16.ptr(42928, 42932, 1), Range16), $clone(new Range16.ptr(42934, 42948, 2), Range16), $clone(new Range16.ptr(42949, 42951, 1), Range16), $clone(new Range16.ptr(42953, 42960, 7), Range16), $clone(new Range16.ptr(42966, 42968, 2), Range16), $clone(new Range16.ptr(42997, 65313, 22316), Range16), $clone(new Range16.ptr(65314, 65338, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(66560, 66599, 1), Range32), $clone(new Range32.ptr(66736, 66771, 1), Range32), $clone(new Range32.ptr(66928, 66938, 1), Range32), $clone(new Range32.ptr(66940, 66954, 1), Range32), $clone(new Range32.ptr(66956, 66962, 1), Range32), $clone(new Range32.ptr(66964, 66965, 1), Range32), $clone(new Range32.ptr(68736, 68786, 1), Range32), $clone(new Range32.ptr(71840, 71871, 1), Range32), $clone(new Range32.ptr(93760, 93791, 1), Range32), $clone(new Range32.ptr(119808, 119833, 1), Range32), $clone(new Range32.ptr(119860, 119885, 1), Range32), $clone(new Range32.ptr(119912, 119937, 1), Range32), $clone(new Range32.ptr(119964, 119966, 2), Range32), $clone(new Range32.ptr(119967, 119973, 3), Range32), $clone(new Range32.ptr(119974, 119977, 3), Range32), $clone(new Range32.ptr(119978, 119980, 1), Range32), $clone(new Range32.ptr(119982, 119989, 1), Range32), $clone(new Range32.ptr(120016, 120041, 1), Range32), $clone(new Range32.ptr(120068, 120069, 1), Range32), $clone(new Range32.ptr(120071, 120074, 1), Range32), $clone(new Range32.ptr(120077, 120084, 1), Range32), $clone(new Range32.ptr(120086, 120092, 1), Range32), $clone(new Range32.ptr(120120, 120121, 1), Range32), $clone(new Range32.ptr(120123, 120126, 1), Range32), $clone(new Range32.ptr(120128, 120132, 1), Range32), $clone(new Range32.ptr(120134, 120138, 4), Range32), $clone(new Range32.ptr(120139, 120144, 1), Range32), $clone(new Range32.ptr(120172, 120197, 1), Range32), $clone(new Range32.ptr(120224, 120249, 1), Range32), $clone(new Range32.ptr(120276, 120301, 1), Range32), $clone(new Range32.ptr(120328, 120353, 1), Range32), $clone(new Range32.ptr(120380, 120405, 1), Range32), $clone(new Range32.ptr(120432, 120457, 1), Range32), $clone(new Range32.ptr(120488, 120512, 1), Range32), $clone(new Range32.ptr(120546, 120570, 1), Range32), $clone(new Range32.ptr(120604, 120628, 1), Range32), $clone(new Range32.ptr(120662, 120686, 1), Range32), $clone(new Range32.ptr(120720, 120744, 1), Range32), $clone(new Range32.ptr(120778, 125184, 4406), Range32), $clone(new Range32.ptr(125185, 125217, 1), Range32)]), 3); + _M = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(768, 879, 1), Range16), $clone(new Range16.ptr(1155, 1161, 1), Range16), $clone(new Range16.ptr(1425, 1469, 1), Range16), $clone(new Range16.ptr(1471, 1473, 2), Range16), $clone(new Range16.ptr(1474, 1476, 2), Range16), $clone(new Range16.ptr(1477, 1479, 2), Range16), $clone(new Range16.ptr(1552, 1562, 1), Range16), $clone(new Range16.ptr(1611, 1631, 1), Range16), $clone(new Range16.ptr(1648, 1750, 102), Range16), $clone(new Range16.ptr(1751, 1756, 1), Range16), $clone(new Range16.ptr(1759, 1764, 1), Range16), $clone(new Range16.ptr(1767, 1768, 1), Range16), $clone(new Range16.ptr(1770, 1773, 1), Range16), $clone(new Range16.ptr(1809, 1840, 31), Range16), $clone(new Range16.ptr(1841, 1866, 1), Range16), $clone(new Range16.ptr(1958, 1968, 1), Range16), $clone(new Range16.ptr(2027, 2035, 1), Range16), $clone(new Range16.ptr(2045, 2070, 25), Range16), $clone(new Range16.ptr(2071, 2073, 1), Range16), $clone(new Range16.ptr(2075, 2083, 1), Range16), $clone(new Range16.ptr(2085, 2087, 1), Range16), $clone(new Range16.ptr(2089, 2093, 1), Range16), $clone(new Range16.ptr(2137, 2139, 1), Range16), $clone(new Range16.ptr(2200, 2207, 1), Range16), $clone(new Range16.ptr(2250, 2273, 1), Range16), $clone(new Range16.ptr(2275, 2307, 1), Range16), $clone(new Range16.ptr(2362, 2364, 1), Range16), $clone(new Range16.ptr(2366, 2383, 1), Range16), $clone(new Range16.ptr(2385, 2391, 1), Range16), $clone(new Range16.ptr(2402, 2403, 1), Range16), $clone(new Range16.ptr(2433, 2435, 1), Range16), $clone(new Range16.ptr(2492, 2494, 2), Range16), $clone(new Range16.ptr(2495, 2500, 1), Range16), $clone(new Range16.ptr(2503, 2504, 1), Range16), $clone(new Range16.ptr(2507, 2509, 1), Range16), $clone(new Range16.ptr(2519, 2530, 11), Range16), $clone(new Range16.ptr(2531, 2558, 27), Range16), $clone(new Range16.ptr(2561, 2563, 1), Range16), $clone(new Range16.ptr(2620, 2622, 2), Range16), $clone(new Range16.ptr(2623, 2626, 1), Range16), $clone(new Range16.ptr(2631, 2632, 1), Range16), $clone(new Range16.ptr(2635, 2637, 1), Range16), $clone(new Range16.ptr(2641, 2672, 31), Range16), $clone(new Range16.ptr(2673, 2677, 4), Range16), $clone(new Range16.ptr(2689, 2691, 1), Range16), $clone(new Range16.ptr(2748, 2750, 2), Range16), $clone(new Range16.ptr(2751, 2757, 1), Range16), $clone(new Range16.ptr(2759, 2761, 1), Range16), $clone(new Range16.ptr(2763, 2765, 1), Range16), $clone(new Range16.ptr(2786, 2787, 1), Range16), $clone(new Range16.ptr(2810, 2815, 1), Range16), $clone(new Range16.ptr(2817, 2819, 1), Range16), $clone(new Range16.ptr(2876, 2878, 2), Range16), $clone(new Range16.ptr(2879, 2884, 1), Range16), $clone(new Range16.ptr(2887, 2888, 1), Range16), $clone(new Range16.ptr(2891, 2893, 1), Range16), $clone(new Range16.ptr(2901, 2903, 1), Range16), $clone(new Range16.ptr(2914, 2915, 1), Range16), $clone(new Range16.ptr(2946, 3006, 60), Range16), $clone(new Range16.ptr(3007, 3010, 1), Range16), $clone(new Range16.ptr(3014, 3016, 1), Range16), $clone(new Range16.ptr(3018, 3021, 1), Range16), $clone(new Range16.ptr(3031, 3072, 41), Range16), $clone(new Range16.ptr(3073, 3076, 1), Range16), $clone(new Range16.ptr(3132, 3134, 2), Range16), $clone(new Range16.ptr(3135, 3140, 1), Range16), $clone(new Range16.ptr(3142, 3144, 1), Range16), $clone(new Range16.ptr(3146, 3149, 1), Range16), $clone(new Range16.ptr(3157, 3158, 1), Range16), $clone(new Range16.ptr(3170, 3171, 1), Range16), $clone(new Range16.ptr(3201, 3203, 1), Range16), $clone(new Range16.ptr(3260, 3262, 2), Range16), $clone(new Range16.ptr(3263, 3268, 1), Range16), $clone(new Range16.ptr(3270, 3272, 1), Range16), $clone(new Range16.ptr(3274, 3277, 1), Range16), $clone(new Range16.ptr(3285, 3286, 1), Range16), $clone(new Range16.ptr(3298, 3299, 1), Range16), $clone(new Range16.ptr(3315, 3328, 13), Range16), $clone(new Range16.ptr(3329, 3331, 1), Range16), $clone(new Range16.ptr(3387, 3388, 1), Range16), $clone(new Range16.ptr(3390, 3396, 1), Range16), $clone(new Range16.ptr(3398, 3400, 1), Range16), $clone(new Range16.ptr(3402, 3405, 1), Range16), $clone(new Range16.ptr(3415, 3426, 11), Range16), $clone(new Range16.ptr(3427, 3457, 30), Range16), $clone(new Range16.ptr(3458, 3459, 1), Range16), $clone(new Range16.ptr(3530, 3535, 5), Range16), $clone(new Range16.ptr(3536, 3540, 1), Range16), $clone(new Range16.ptr(3542, 3544, 2), Range16), $clone(new Range16.ptr(3545, 3551, 1), Range16), $clone(new Range16.ptr(3570, 3571, 1), Range16), $clone(new Range16.ptr(3633, 3636, 3), Range16), $clone(new Range16.ptr(3637, 3642, 1), Range16), $clone(new Range16.ptr(3655, 3662, 1), Range16), $clone(new Range16.ptr(3761, 3764, 3), Range16), $clone(new Range16.ptr(3765, 3772, 1), Range16), $clone(new Range16.ptr(3784, 3790, 1), Range16), $clone(new Range16.ptr(3864, 3865, 1), Range16), $clone(new Range16.ptr(3893, 3897, 2), Range16), $clone(new Range16.ptr(3902, 3903, 1), Range16), $clone(new Range16.ptr(3953, 3972, 1), Range16), $clone(new Range16.ptr(3974, 3975, 1), Range16), $clone(new Range16.ptr(3981, 3991, 1), Range16), $clone(new Range16.ptr(3993, 4028, 1), Range16), $clone(new Range16.ptr(4038, 4139, 101), Range16), $clone(new Range16.ptr(4140, 4158, 1), Range16), $clone(new Range16.ptr(4182, 4185, 1), Range16), $clone(new Range16.ptr(4190, 4192, 1), Range16), $clone(new Range16.ptr(4194, 4196, 1), Range16), $clone(new Range16.ptr(4199, 4205, 1), Range16), $clone(new Range16.ptr(4209, 4212, 1), Range16), $clone(new Range16.ptr(4226, 4237, 1), Range16), $clone(new Range16.ptr(4239, 4250, 11), Range16), $clone(new Range16.ptr(4251, 4253, 1), Range16), $clone(new Range16.ptr(4957, 4959, 1), Range16), $clone(new Range16.ptr(5906, 5909, 1), Range16), $clone(new Range16.ptr(5938, 5940, 1), Range16), $clone(new Range16.ptr(5970, 5971, 1), Range16), $clone(new Range16.ptr(6002, 6003, 1), Range16), $clone(new Range16.ptr(6068, 6099, 1), Range16), $clone(new Range16.ptr(6109, 6155, 46), Range16), $clone(new Range16.ptr(6156, 6157, 1), Range16), $clone(new Range16.ptr(6159, 6277, 118), Range16), $clone(new Range16.ptr(6278, 6313, 35), Range16), $clone(new Range16.ptr(6432, 6443, 1), Range16), $clone(new Range16.ptr(6448, 6459, 1), Range16), $clone(new Range16.ptr(6679, 6683, 1), Range16), $clone(new Range16.ptr(6741, 6750, 1), Range16), $clone(new Range16.ptr(6752, 6780, 1), Range16), $clone(new Range16.ptr(6783, 6832, 49), Range16), $clone(new Range16.ptr(6833, 6862, 1), Range16), $clone(new Range16.ptr(6912, 6916, 1), Range16), $clone(new Range16.ptr(6964, 6980, 1), Range16), $clone(new Range16.ptr(7019, 7027, 1), Range16), $clone(new Range16.ptr(7040, 7042, 1), Range16), $clone(new Range16.ptr(7073, 7085, 1), Range16), $clone(new Range16.ptr(7142, 7155, 1), Range16), $clone(new Range16.ptr(7204, 7223, 1), Range16), $clone(new Range16.ptr(7376, 7378, 1), Range16), $clone(new Range16.ptr(7380, 7400, 1), Range16), $clone(new Range16.ptr(7405, 7412, 7), Range16), $clone(new Range16.ptr(7415, 7417, 1), Range16), $clone(new Range16.ptr(7616, 7679, 1), Range16), $clone(new Range16.ptr(8400, 8432, 1), Range16), $clone(new Range16.ptr(11503, 11505, 1), Range16), $clone(new Range16.ptr(11647, 11744, 97), Range16), $clone(new Range16.ptr(11745, 11775, 1), Range16), $clone(new Range16.ptr(12330, 12335, 1), Range16), $clone(new Range16.ptr(12441, 12442, 1), Range16), $clone(new Range16.ptr(42607, 42610, 1), Range16), $clone(new Range16.ptr(42612, 42621, 1), Range16), $clone(new Range16.ptr(42654, 42655, 1), Range16), $clone(new Range16.ptr(42736, 42737, 1), Range16), $clone(new Range16.ptr(43010, 43014, 4), Range16), $clone(new Range16.ptr(43019, 43043, 24), Range16), $clone(new Range16.ptr(43044, 43047, 1), Range16), $clone(new Range16.ptr(43052, 43136, 84), Range16), $clone(new Range16.ptr(43137, 43188, 51), Range16), $clone(new Range16.ptr(43189, 43205, 1), Range16), $clone(new Range16.ptr(43232, 43249, 1), Range16), $clone(new Range16.ptr(43263, 43302, 39), Range16), $clone(new Range16.ptr(43303, 43309, 1), Range16), $clone(new Range16.ptr(43335, 43347, 1), Range16), $clone(new Range16.ptr(43392, 43395, 1), Range16), $clone(new Range16.ptr(43443, 43456, 1), Range16), $clone(new Range16.ptr(43493, 43561, 68), Range16), $clone(new Range16.ptr(43562, 43574, 1), Range16), $clone(new Range16.ptr(43587, 43596, 9), Range16), $clone(new Range16.ptr(43597, 43643, 46), Range16), $clone(new Range16.ptr(43644, 43645, 1), Range16), $clone(new Range16.ptr(43696, 43698, 2), Range16), $clone(new Range16.ptr(43699, 43700, 1), Range16), $clone(new Range16.ptr(43703, 43704, 1), Range16), $clone(new Range16.ptr(43710, 43711, 1), Range16), $clone(new Range16.ptr(43713, 43755, 42), Range16), $clone(new Range16.ptr(43756, 43759, 1), Range16), $clone(new Range16.ptr(43765, 43766, 1), Range16), $clone(new Range16.ptr(44003, 44010, 1), Range16), $clone(new Range16.ptr(44012, 44013, 1), Range16), $clone(new Range16.ptr(64286, 65024, 738), Range16), $clone(new Range16.ptr(65025, 65039, 1), Range16), $clone(new Range16.ptr(65056, 65071, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(66045, 66272, 227), Range32), $clone(new Range32.ptr(66422, 66426, 1), Range32), $clone(new Range32.ptr(68097, 68099, 1), Range32), $clone(new Range32.ptr(68101, 68102, 1), Range32), $clone(new Range32.ptr(68108, 68111, 1), Range32), $clone(new Range32.ptr(68152, 68154, 1), Range32), $clone(new Range32.ptr(68159, 68325, 166), Range32), $clone(new Range32.ptr(68326, 68900, 574), Range32), $clone(new Range32.ptr(68901, 68903, 1), Range32), $clone(new Range32.ptr(69291, 69292, 1), Range32), $clone(new Range32.ptr(69373, 69375, 1), Range32), $clone(new Range32.ptr(69446, 69456, 1), Range32), $clone(new Range32.ptr(69506, 69509, 1), Range32), $clone(new Range32.ptr(69632, 69634, 1), Range32), $clone(new Range32.ptr(69688, 69702, 1), Range32), $clone(new Range32.ptr(69744, 69747, 3), Range32), $clone(new Range32.ptr(69748, 69759, 11), Range32), $clone(new Range32.ptr(69760, 69762, 1), Range32), $clone(new Range32.ptr(69808, 69818, 1), Range32), $clone(new Range32.ptr(69826, 69888, 62), Range32), $clone(new Range32.ptr(69889, 69890, 1), Range32), $clone(new Range32.ptr(69927, 69940, 1), Range32), $clone(new Range32.ptr(69957, 69958, 1), Range32), $clone(new Range32.ptr(70003, 70016, 13), Range32), $clone(new Range32.ptr(70017, 70018, 1), Range32), $clone(new Range32.ptr(70067, 70080, 1), Range32), $clone(new Range32.ptr(70089, 70092, 1), Range32), $clone(new Range32.ptr(70094, 70095, 1), Range32), $clone(new Range32.ptr(70188, 70199, 1), Range32), $clone(new Range32.ptr(70206, 70209, 3), Range32), $clone(new Range32.ptr(70367, 70378, 1), Range32), $clone(new Range32.ptr(70400, 70403, 1), Range32), $clone(new Range32.ptr(70459, 70460, 1), Range32), $clone(new Range32.ptr(70462, 70468, 1), Range32), $clone(new Range32.ptr(70471, 70472, 1), Range32), $clone(new Range32.ptr(70475, 70477, 1), Range32), $clone(new Range32.ptr(70487, 70498, 11), Range32), $clone(new Range32.ptr(70499, 70502, 3), Range32), $clone(new Range32.ptr(70503, 70508, 1), Range32), $clone(new Range32.ptr(70512, 70516, 1), Range32), $clone(new Range32.ptr(70709, 70726, 1), Range32), $clone(new Range32.ptr(70750, 70832, 82), Range32), $clone(new Range32.ptr(70833, 70851, 1), Range32), $clone(new Range32.ptr(71087, 71093, 1), Range32), $clone(new Range32.ptr(71096, 71104, 1), Range32), $clone(new Range32.ptr(71132, 71133, 1), Range32), $clone(new Range32.ptr(71216, 71232, 1), Range32), $clone(new Range32.ptr(71339, 71351, 1), Range32), $clone(new Range32.ptr(71453, 71467, 1), Range32), $clone(new Range32.ptr(71724, 71738, 1), Range32), $clone(new Range32.ptr(71984, 71989, 1), Range32), $clone(new Range32.ptr(71991, 71992, 1), Range32), $clone(new Range32.ptr(71995, 71998, 1), Range32), $clone(new Range32.ptr(72000, 72002, 2), Range32), $clone(new Range32.ptr(72003, 72145, 142), Range32), $clone(new Range32.ptr(72146, 72151, 1), Range32), $clone(new Range32.ptr(72154, 72160, 1), Range32), $clone(new Range32.ptr(72164, 72193, 29), Range32), $clone(new Range32.ptr(72194, 72202, 1), Range32), $clone(new Range32.ptr(72243, 72249, 1), Range32), $clone(new Range32.ptr(72251, 72254, 1), Range32), $clone(new Range32.ptr(72263, 72273, 10), Range32), $clone(new Range32.ptr(72274, 72283, 1), Range32), $clone(new Range32.ptr(72330, 72345, 1), Range32), $clone(new Range32.ptr(72751, 72758, 1), Range32), $clone(new Range32.ptr(72760, 72767, 1), Range32), $clone(new Range32.ptr(72850, 72871, 1), Range32), $clone(new Range32.ptr(72873, 72886, 1), Range32), $clone(new Range32.ptr(73009, 73014, 1), Range32), $clone(new Range32.ptr(73018, 73020, 2), Range32), $clone(new Range32.ptr(73021, 73023, 2), Range32), $clone(new Range32.ptr(73024, 73029, 1), Range32), $clone(new Range32.ptr(73031, 73098, 67), Range32), $clone(new Range32.ptr(73099, 73102, 1), Range32), $clone(new Range32.ptr(73104, 73105, 1), Range32), $clone(new Range32.ptr(73107, 73111, 1), Range32), $clone(new Range32.ptr(73459, 73462, 1), Range32), $clone(new Range32.ptr(73472, 73473, 1), Range32), $clone(new Range32.ptr(73475, 73524, 49), Range32), $clone(new Range32.ptr(73525, 73530, 1), Range32), $clone(new Range32.ptr(73534, 73538, 1), Range32), $clone(new Range32.ptr(78912, 78919, 7), Range32), $clone(new Range32.ptr(78920, 78933, 1), Range32), $clone(new Range32.ptr(92912, 92916, 1), Range32), $clone(new Range32.ptr(92976, 92982, 1), Range32), $clone(new Range32.ptr(94031, 94033, 2), Range32), $clone(new Range32.ptr(94034, 94087, 1), Range32), $clone(new Range32.ptr(94095, 94098, 1), Range32), $clone(new Range32.ptr(94180, 94192, 12), Range32), $clone(new Range32.ptr(94193, 113821, 19628), Range32), $clone(new Range32.ptr(113822, 118528, 4706), Range32), $clone(new Range32.ptr(118529, 118573, 1), Range32), $clone(new Range32.ptr(118576, 118598, 1), Range32), $clone(new Range32.ptr(119141, 119145, 1), Range32), $clone(new Range32.ptr(119149, 119154, 1), Range32), $clone(new Range32.ptr(119163, 119170, 1), Range32), $clone(new Range32.ptr(119173, 119179, 1), Range32), $clone(new Range32.ptr(119210, 119213, 1), Range32), $clone(new Range32.ptr(119362, 119364, 1), Range32), $clone(new Range32.ptr(121344, 121398, 1), Range32), $clone(new Range32.ptr(121403, 121452, 1), Range32), $clone(new Range32.ptr(121461, 121476, 15), Range32), $clone(new Range32.ptr(121499, 121503, 1), Range32), $clone(new Range32.ptr(121505, 121519, 1), Range32), $clone(new Range32.ptr(122880, 122886, 1), Range32), $clone(new Range32.ptr(122888, 122904, 1), Range32), $clone(new Range32.ptr(122907, 122913, 1), Range32), $clone(new Range32.ptr(122915, 122916, 1), Range32), $clone(new Range32.ptr(122918, 122922, 1), Range32), $clone(new Range32.ptr(123023, 123184, 161), Range32), $clone(new Range32.ptr(123185, 123190, 1), Range32), $clone(new Range32.ptr(123566, 123628, 62), Range32), $clone(new Range32.ptr(123629, 123631, 1), Range32), $clone(new Range32.ptr(124140, 124143, 1), Range32), $clone(new Range32.ptr(125136, 125142, 1), Range32), $clone(new Range32.ptr(125252, 125258, 1), Range32), $clone(new Range32.ptr(917760, 917999, 1), Range32)]), 0); + _Mc = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(2307, 2363, 56), Range16), $clone(new Range16.ptr(2366, 2368, 1), Range16), $clone(new Range16.ptr(2377, 2380, 1), Range16), $clone(new Range16.ptr(2382, 2383, 1), Range16), $clone(new Range16.ptr(2434, 2435, 1), Range16), $clone(new Range16.ptr(2494, 2496, 1), Range16), $clone(new Range16.ptr(2503, 2504, 1), Range16), $clone(new Range16.ptr(2507, 2508, 1), Range16), $clone(new Range16.ptr(2519, 2563, 44), Range16), $clone(new Range16.ptr(2622, 2624, 1), Range16), $clone(new Range16.ptr(2691, 2750, 59), Range16), $clone(new Range16.ptr(2751, 2752, 1), Range16), $clone(new Range16.ptr(2761, 2763, 2), Range16), $clone(new Range16.ptr(2764, 2818, 54), Range16), $clone(new Range16.ptr(2819, 2878, 59), Range16), $clone(new Range16.ptr(2880, 2887, 7), Range16), $clone(new Range16.ptr(2888, 2891, 3), Range16), $clone(new Range16.ptr(2892, 2903, 11), Range16), $clone(new Range16.ptr(3006, 3007, 1), Range16), $clone(new Range16.ptr(3009, 3010, 1), Range16), $clone(new Range16.ptr(3014, 3016, 1), Range16), $clone(new Range16.ptr(3018, 3020, 1), Range16), $clone(new Range16.ptr(3031, 3073, 42), Range16), $clone(new Range16.ptr(3074, 3075, 1), Range16), $clone(new Range16.ptr(3137, 3140, 1), Range16), $clone(new Range16.ptr(3202, 3203, 1), Range16), $clone(new Range16.ptr(3262, 3264, 2), Range16), $clone(new Range16.ptr(3265, 3268, 1), Range16), $clone(new Range16.ptr(3271, 3272, 1), Range16), $clone(new Range16.ptr(3274, 3275, 1), Range16), $clone(new Range16.ptr(3285, 3286, 1), Range16), $clone(new Range16.ptr(3315, 3330, 15), Range16), $clone(new Range16.ptr(3331, 3390, 59), Range16), $clone(new Range16.ptr(3391, 3392, 1), Range16), $clone(new Range16.ptr(3398, 3400, 1), Range16), $clone(new Range16.ptr(3402, 3404, 1), Range16), $clone(new Range16.ptr(3415, 3458, 43), Range16), $clone(new Range16.ptr(3459, 3535, 76), Range16), $clone(new Range16.ptr(3536, 3537, 1), Range16), $clone(new Range16.ptr(3544, 3551, 1), Range16), $clone(new Range16.ptr(3570, 3571, 1), Range16), $clone(new Range16.ptr(3902, 3903, 1), Range16), $clone(new Range16.ptr(3967, 4139, 172), Range16), $clone(new Range16.ptr(4140, 4145, 5), Range16), $clone(new Range16.ptr(4152, 4155, 3), Range16), $clone(new Range16.ptr(4156, 4182, 26), Range16), $clone(new Range16.ptr(4183, 4194, 11), Range16), $clone(new Range16.ptr(4195, 4196, 1), Range16), $clone(new Range16.ptr(4199, 4205, 1), Range16), $clone(new Range16.ptr(4227, 4228, 1), Range16), $clone(new Range16.ptr(4231, 4236, 1), Range16), $clone(new Range16.ptr(4239, 4250, 11), Range16), $clone(new Range16.ptr(4251, 4252, 1), Range16), $clone(new Range16.ptr(5909, 5940, 31), Range16), $clone(new Range16.ptr(6070, 6078, 8), Range16), $clone(new Range16.ptr(6079, 6085, 1), Range16), $clone(new Range16.ptr(6087, 6088, 1), Range16), $clone(new Range16.ptr(6435, 6438, 1), Range16), $clone(new Range16.ptr(6441, 6443, 1), Range16), $clone(new Range16.ptr(6448, 6449, 1), Range16), $clone(new Range16.ptr(6451, 6456, 1), Range16), $clone(new Range16.ptr(6681, 6682, 1), Range16), $clone(new Range16.ptr(6741, 6743, 2), Range16), $clone(new Range16.ptr(6753, 6755, 2), Range16), $clone(new Range16.ptr(6756, 6765, 9), Range16), $clone(new Range16.ptr(6766, 6770, 1), Range16), $clone(new Range16.ptr(6916, 6965, 49), Range16), $clone(new Range16.ptr(6971, 6973, 2), Range16), $clone(new Range16.ptr(6974, 6977, 1), Range16), $clone(new Range16.ptr(6979, 6980, 1), Range16), $clone(new Range16.ptr(7042, 7073, 31), Range16), $clone(new Range16.ptr(7078, 7079, 1), Range16), $clone(new Range16.ptr(7082, 7143, 61), Range16), $clone(new Range16.ptr(7146, 7148, 1), Range16), $clone(new Range16.ptr(7150, 7154, 4), Range16), $clone(new Range16.ptr(7155, 7204, 49), Range16), $clone(new Range16.ptr(7205, 7211, 1), Range16), $clone(new Range16.ptr(7220, 7221, 1), Range16), $clone(new Range16.ptr(7393, 7415, 22), Range16), $clone(new Range16.ptr(12334, 12335, 1), Range16), $clone(new Range16.ptr(43043, 43044, 1), Range16), $clone(new Range16.ptr(43047, 43136, 89), Range16), $clone(new Range16.ptr(43137, 43188, 51), Range16), $clone(new Range16.ptr(43189, 43203, 1), Range16), $clone(new Range16.ptr(43346, 43347, 1), Range16), $clone(new Range16.ptr(43395, 43444, 49), Range16), $clone(new Range16.ptr(43445, 43450, 5), Range16), $clone(new Range16.ptr(43451, 43454, 3), Range16), $clone(new Range16.ptr(43455, 43456, 1), Range16), $clone(new Range16.ptr(43567, 43568, 1), Range16), $clone(new Range16.ptr(43571, 43572, 1), Range16), $clone(new Range16.ptr(43597, 43643, 46), Range16), $clone(new Range16.ptr(43645, 43755, 110), Range16), $clone(new Range16.ptr(43758, 43759, 1), Range16), $clone(new Range16.ptr(43765, 44003, 238), Range16), $clone(new Range16.ptr(44004, 44006, 2), Range16), $clone(new Range16.ptr(44007, 44009, 2), Range16), $clone(new Range16.ptr(44010, 44012, 2), Range16)]), new sliceType$1([$clone(new Range32.ptr(69632, 69634, 2), Range32), $clone(new Range32.ptr(69762, 69808, 46), Range32), $clone(new Range32.ptr(69809, 69810, 1), Range32), $clone(new Range32.ptr(69815, 69816, 1), Range32), $clone(new Range32.ptr(69932, 69957, 25), Range32), $clone(new Range32.ptr(69958, 70018, 60), Range32), $clone(new Range32.ptr(70067, 70069, 1), Range32), $clone(new Range32.ptr(70079, 70080, 1), Range32), $clone(new Range32.ptr(70094, 70188, 94), Range32), $clone(new Range32.ptr(70189, 70190, 1), Range32), $clone(new Range32.ptr(70194, 70195, 1), Range32), $clone(new Range32.ptr(70197, 70368, 171), Range32), $clone(new Range32.ptr(70369, 70370, 1), Range32), $clone(new Range32.ptr(70402, 70403, 1), Range32), $clone(new Range32.ptr(70462, 70463, 1), Range32), $clone(new Range32.ptr(70465, 70468, 1), Range32), $clone(new Range32.ptr(70471, 70472, 1), Range32), $clone(new Range32.ptr(70475, 70477, 1), Range32), $clone(new Range32.ptr(70487, 70498, 11), Range32), $clone(new Range32.ptr(70499, 70709, 210), Range32), $clone(new Range32.ptr(70710, 70711, 1), Range32), $clone(new Range32.ptr(70720, 70721, 1), Range32), $clone(new Range32.ptr(70725, 70832, 107), Range32), $clone(new Range32.ptr(70833, 70834, 1), Range32), $clone(new Range32.ptr(70841, 70843, 2), Range32), $clone(new Range32.ptr(70844, 70846, 1), Range32), $clone(new Range32.ptr(70849, 71087, 238), Range32), $clone(new Range32.ptr(71088, 71089, 1), Range32), $clone(new Range32.ptr(71096, 71099, 1), Range32), $clone(new Range32.ptr(71102, 71216, 114), Range32), $clone(new Range32.ptr(71217, 71218, 1), Range32), $clone(new Range32.ptr(71227, 71228, 1), Range32), $clone(new Range32.ptr(71230, 71340, 110), Range32), $clone(new Range32.ptr(71342, 71343, 1), Range32), $clone(new Range32.ptr(71350, 71456, 106), Range32), $clone(new Range32.ptr(71457, 71462, 5), Range32), $clone(new Range32.ptr(71724, 71726, 1), Range32), $clone(new Range32.ptr(71736, 71984, 248), Range32), $clone(new Range32.ptr(71985, 71989, 1), Range32), $clone(new Range32.ptr(71991, 71992, 1), Range32), $clone(new Range32.ptr(71997, 72000, 3), Range32), $clone(new Range32.ptr(72002, 72145, 143), Range32), $clone(new Range32.ptr(72146, 72147, 1), Range32), $clone(new Range32.ptr(72156, 72159, 1), Range32), $clone(new Range32.ptr(72164, 72249, 85), Range32), $clone(new Range32.ptr(72279, 72280, 1), Range32), $clone(new Range32.ptr(72343, 72751, 408), Range32), $clone(new Range32.ptr(72766, 72873, 107), Range32), $clone(new Range32.ptr(72881, 72884, 3), Range32), $clone(new Range32.ptr(73098, 73102, 1), Range32), $clone(new Range32.ptr(73107, 73108, 1), Range32), $clone(new Range32.ptr(73110, 73461, 351), Range32), $clone(new Range32.ptr(73462, 73475, 13), Range32), $clone(new Range32.ptr(73524, 73525, 1), Range32), $clone(new Range32.ptr(73534, 73535, 1), Range32), $clone(new Range32.ptr(73537, 94033, 20496), Range32), $clone(new Range32.ptr(94034, 94087, 1), Range32), $clone(new Range32.ptr(94192, 94193, 1), Range32), $clone(new Range32.ptr(119141, 119142, 1), Range32), $clone(new Range32.ptr(119149, 119154, 1), Range32)]), 0); _Me = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(1160, 1161, 1), Range16), $clone(new Range16.ptr(6846, 8413, 1567), Range16), $clone(new Range16.ptr(8414, 8416, 1), Range16), $clone(new Range16.ptr(8418, 8420, 1), Range16), $clone(new Range16.ptr(42608, 42610, 1), Range16)]), sliceType$1.nil, 0); - _Mn = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(768, 879, 1), Range16), $clone(new Range16.ptr(1155, 1159, 1), Range16), $clone(new Range16.ptr(1425, 1469, 1), Range16), $clone(new Range16.ptr(1471, 1473, 2), Range16), $clone(new Range16.ptr(1474, 1476, 2), Range16), $clone(new Range16.ptr(1477, 1479, 2), Range16), $clone(new Range16.ptr(1552, 1562, 1), Range16), $clone(new Range16.ptr(1611, 1631, 1), Range16), $clone(new Range16.ptr(1648, 1750, 102), Range16), $clone(new Range16.ptr(1751, 1756, 1), Range16), $clone(new Range16.ptr(1759, 1764, 1), Range16), $clone(new Range16.ptr(1767, 1768, 1), Range16), $clone(new Range16.ptr(1770, 1773, 1), Range16), $clone(new Range16.ptr(1809, 1840, 31), Range16), $clone(new Range16.ptr(1841, 1866, 1), Range16), $clone(new Range16.ptr(1958, 1968, 1), Range16), $clone(new Range16.ptr(2027, 2035, 1), Range16), $clone(new Range16.ptr(2045, 2070, 25), Range16), $clone(new Range16.ptr(2071, 2073, 1), Range16), $clone(new Range16.ptr(2075, 2083, 1), Range16), $clone(new Range16.ptr(2085, 2087, 1), Range16), $clone(new Range16.ptr(2089, 2093, 1), Range16), $clone(new Range16.ptr(2137, 2139, 1), Range16), $clone(new Range16.ptr(2259, 2273, 1), Range16), $clone(new Range16.ptr(2275, 2306, 1), Range16), $clone(new Range16.ptr(2362, 2364, 2), Range16), $clone(new Range16.ptr(2369, 2376, 1), Range16), $clone(new Range16.ptr(2381, 2385, 4), Range16), $clone(new Range16.ptr(2386, 2391, 1), Range16), $clone(new Range16.ptr(2402, 2403, 1), Range16), $clone(new Range16.ptr(2433, 2492, 59), Range16), $clone(new Range16.ptr(2497, 2500, 1), Range16), $clone(new Range16.ptr(2509, 2530, 21), Range16), $clone(new Range16.ptr(2531, 2558, 27), Range16), $clone(new Range16.ptr(2561, 2562, 1), Range16), $clone(new Range16.ptr(2620, 2625, 5), Range16), $clone(new Range16.ptr(2626, 2631, 5), Range16), $clone(new Range16.ptr(2632, 2635, 3), Range16), $clone(new Range16.ptr(2636, 2637, 1), Range16), $clone(new Range16.ptr(2641, 2672, 31), Range16), $clone(new Range16.ptr(2673, 2677, 4), Range16), $clone(new Range16.ptr(2689, 2690, 1), Range16), $clone(new Range16.ptr(2748, 2753, 5), Range16), $clone(new Range16.ptr(2754, 2757, 1), Range16), $clone(new Range16.ptr(2759, 2760, 1), Range16), $clone(new Range16.ptr(2765, 2786, 21), Range16), $clone(new Range16.ptr(2787, 2810, 23), Range16), $clone(new Range16.ptr(2811, 2815, 1), Range16), $clone(new Range16.ptr(2817, 2876, 59), Range16), $clone(new Range16.ptr(2879, 2881, 2), Range16), $clone(new Range16.ptr(2882, 2884, 1), Range16), $clone(new Range16.ptr(2893, 2901, 8), Range16), $clone(new Range16.ptr(2902, 2914, 12), Range16), $clone(new Range16.ptr(2915, 2946, 31), Range16), $clone(new Range16.ptr(3008, 3021, 13), Range16), $clone(new Range16.ptr(3072, 3076, 4), Range16), $clone(new Range16.ptr(3134, 3136, 1), Range16), $clone(new Range16.ptr(3142, 3144, 1), Range16), $clone(new Range16.ptr(3146, 3149, 1), Range16), $clone(new Range16.ptr(3157, 3158, 1), Range16), $clone(new Range16.ptr(3170, 3171, 1), Range16), $clone(new Range16.ptr(3201, 3260, 59), Range16), $clone(new Range16.ptr(3263, 3270, 7), Range16), $clone(new Range16.ptr(3276, 3277, 1), Range16), $clone(new Range16.ptr(3298, 3299, 1), Range16), $clone(new Range16.ptr(3328, 3329, 1), Range16), $clone(new Range16.ptr(3387, 3388, 1), Range16), $clone(new Range16.ptr(3393, 3396, 1), Range16), $clone(new Range16.ptr(3405, 3426, 21), Range16), $clone(new Range16.ptr(3427, 3457, 30), Range16), $clone(new Range16.ptr(3530, 3538, 8), Range16), $clone(new Range16.ptr(3539, 3540, 1), Range16), $clone(new Range16.ptr(3542, 3633, 91), Range16), $clone(new Range16.ptr(3636, 3642, 1), Range16), $clone(new Range16.ptr(3655, 3662, 1), Range16), $clone(new Range16.ptr(3761, 3764, 3), Range16), $clone(new Range16.ptr(3765, 3772, 1), Range16), $clone(new Range16.ptr(3784, 3789, 1), Range16), $clone(new Range16.ptr(3864, 3865, 1), Range16), $clone(new Range16.ptr(3893, 3897, 2), Range16), $clone(new Range16.ptr(3953, 3966, 1), Range16), $clone(new Range16.ptr(3968, 3972, 1), Range16), $clone(new Range16.ptr(3974, 3975, 1), Range16), $clone(new Range16.ptr(3981, 3991, 1), Range16), $clone(new Range16.ptr(3993, 4028, 1), Range16), $clone(new Range16.ptr(4038, 4141, 103), Range16), $clone(new Range16.ptr(4142, 4144, 1), Range16), $clone(new Range16.ptr(4146, 4151, 1), Range16), $clone(new Range16.ptr(4153, 4154, 1), Range16), $clone(new Range16.ptr(4157, 4158, 1), Range16), $clone(new Range16.ptr(4184, 4185, 1), Range16), $clone(new Range16.ptr(4190, 4192, 1), Range16), $clone(new Range16.ptr(4209, 4212, 1), Range16), $clone(new Range16.ptr(4226, 4229, 3), Range16), $clone(new Range16.ptr(4230, 4237, 7), Range16), $clone(new Range16.ptr(4253, 4957, 704), Range16), $clone(new Range16.ptr(4958, 4959, 1), Range16), $clone(new Range16.ptr(5906, 5908, 1), Range16), $clone(new Range16.ptr(5938, 5940, 1), Range16), $clone(new Range16.ptr(5970, 5971, 1), Range16), $clone(new Range16.ptr(6002, 6003, 1), Range16), $clone(new Range16.ptr(6068, 6069, 1), Range16), $clone(new Range16.ptr(6071, 6077, 1), Range16), $clone(new Range16.ptr(6086, 6089, 3), Range16), $clone(new Range16.ptr(6090, 6099, 1), Range16), $clone(new Range16.ptr(6109, 6155, 46), Range16), $clone(new Range16.ptr(6156, 6157, 1), Range16), $clone(new Range16.ptr(6277, 6278, 1), Range16), $clone(new Range16.ptr(6313, 6432, 119), Range16), $clone(new Range16.ptr(6433, 6434, 1), Range16), $clone(new Range16.ptr(6439, 6440, 1), Range16), $clone(new Range16.ptr(6450, 6457, 7), Range16), $clone(new Range16.ptr(6458, 6459, 1), Range16), $clone(new Range16.ptr(6679, 6680, 1), Range16), $clone(new Range16.ptr(6683, 6742, 59), Range16), $clone(new Range16.ptr(6744, 6750, 1), Range16), $clone(new Range16.ptr(6752, 6754, 2), Range16), $clone(new Range16.ptr(6757, 6764, 1), Range16), $clone(new Range16.ptr(6771, 6780, 1), Range16), $clone(new Range16.ptr(6783, 6832, 49), Range16), $clone(new Range16.ptr(6833, 6845, 1), Range16), $clone(new Range16.ptr(6847, 6848, 1), Range16), $clone(new Range16.ptr(6912, 6915, 1), Range16), $clone(new Range16.ptr(6964, 6966, 2), Range16), $clone(new Range16.ptr(6967, 6970, 1), Range16), $clone(new Range16.ptr(6972, 6978, 6), Range16), $clone(new Range16.ptr(7019, 7027, 1), Range16), $clone(new Range16.ptr(7040, 7041, 1), Range16), $clone(new Range16.ptr(7074, 7077, 1), Range16), $clone(new Range16.ptr(7080, 7081, 1), Range16), $clone(new Range16.ptr(7083, 7085, 1), Range16), $clone(new Range16.ptr(7142, 7144, 2), Range16), $clone(new Range16.ptr(7145, 7149, 4), Range16), $clone(new Range16.ptr(7151, 7153, 1), Range16), $clone(new Range16.ptr(7212, 7219, 1), Range16), $clone(new Range16.ptr(7222, 7223, 1), Range16), $clone(new Range16.ptr(7376, 7378, 1), Range16), $clone(new Range16.ptr(7380, 7392, 1), Range16), $clone(new Range16.ptr(7394, 7400, 1), Range16), $clone(new Range16.ptr(7405, 7412, 7), Range16), $clone(new Range16.ptr(7416, 7417, 1), Range16), $clone(new Range16.ptr(7616, 7673, 1), Range16), $clone(new Range16.ptr(7675, 7679, 1), Range16), $clone(new Range16.ptr(8400, 8412, 1), Range16), $clone(new Range16.ptr(8417, 8421, 4), Range16), $clone(new Range16.ptr(8422, 8432, 1), Range16), $clone(new Range16.ptr(11503, 11505, 1), Range16), $clone(new Range16.ptr(11647, 11744, 97), Range16), $clone(new Range16.ptr(11745, 11775, 1), Range16), $clone(new Range16.ptr(12330, 12333, 1), Range16), $clone(new Range16.ptr(12441, 12442, 1), Range16), $clone(new Range16.ptr(42607, 42612, 5), Range16), $clone(new Range16.ptr(42613, 42621, 1), Range16), $clone(new Range16.ptr(42654, 42655, 1), Range16), $clone(new Range16.ptr(42736, 42737, 1), Range16), $clone(new Range16.ptr(43010, 43014, 4), Range16), $clone(new Range16.ptr(43019, 43045, 26), Range16), $clone(new Range16.ptr(43046, 43052, 6), Range16), $clone(new Range16.ptr(43204, 43205, 1), Range16), $clone(new Range16.ptr(43232, 43249, 1), Range16), $clone(new Range16.ptr(43263, 43302, 39), Range16), $clone(new Range16.ptr(43303, 43309, 1), Range16), $clone(new Range16.ptr(43335, 43345, 1), Range16), $clone(new Range16.ptr(43392, 43394, 1), Range16), $clone(new Range16.ptr(43443, 43446, 3), Range16), $clone(new Range16.ptr(43447, 43449, 1), Range16), $clone(new Range16.ptr(43452, 43453, 1), Range16), $clone(new Range16.ptr(43493, 43561, 68), Range16), $clone(new Range16.ptr(43562, 43566, 1), Range16), $clone(new Range16.ptr(43569, 43570, 1), Range16), $clone(new Range16.ptr(43573, 43574, 1), Range16), $clone(new Range16.ptr(43587, 43596, 9), Range16), $clone(new Range16.ptr(43644, 43696, 52), Range16), $clone(new Range16.ptr(43698, 43700, 1), Range16), $clone(new Range16.ptr(43703, 43704, 1), Range16), $clone(new Range16.ptr(43710, 43711, 1), Range16), $clone(new Range16.ptr(43713, 43756, 43), Range16), $clone(new Range16.ptr(43757, 43766, 9), Range16), $clone(new Range16.ptr(44005, 44008, 3), Range16), $clone(new Range16.ptr(44013, 64286, 20273), Range16), $clone(new Range16.ptr(65024, 65039, 1), Range16), $clone(new Range16.ptr(65056, 65071, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(66045, 66272, 227), Range32), $clone(new Range32.ptr(66422, 66426, 1), Range32), $clone(new Range32.ptr(68097, 68099, 1), Range32), $clone(new Range32.ptr(68101, 68102, 1), Range32), $clone(new Range32.ptr(68108, 68111, 1), Range32), $clone(new Range32.ptr(68152, 68154, 1), Range32), $clone(new Range32.ptr(68159, 68325, 166), Range32), $clone(new Range32.ptr(68326, 68900, 574), Range32), $clone(new Range32.ptr(68901, 68903, 1), Range32), $clone(new Range32.ptr(69291, 69292, 1), Range32), $clone(new Range32.ptr(69446, 69456, 1), Range32), $clone(new Range32.ptr(69633, 69688, 55), Range32), $clone(new Range32.ptr(69689, 69702, 1), Range32), $clone(new Range32.ptr(69759, 69761, 1), Range32), $clone(new Range32.ptr(69811, 69814, 1), Range32), $clone(new Range32.ptr(69817, 69818, 1), Range32), $clone(new Range32.ptr(69888, 69890, 1), Range32), $clone(new Range32.ptr(69927, 69931, 1), Range32), $clone(new Range32.ptr(69933, 69940, 1), Range32), $clone(new Range32.ptr(70003, 70016, 13), Range32), $clone(new Range32.ptr(70017, 70070, 53), Range32), $clone(new Range32.ptr(70071, 70078, 1), Range32), $clone(new Range32.ptr(70089, 70092, 1), Range32), $clone(new Range32.ptr(70095, 70191, 96), Range32), $clone(new Range32.ptr(70192, 70193, 1), Range32), $clone(new Range32.ptr(70196, 70198, 2), Range32), $clone(new Range32.ptr(70199, 70206, 7), Range32), $clone(new Range32.ptr(70367, 70371, 4), Range32), $clone(new Range32.ptr(70372, 70378, 1), Range32), $clone(new Range32.ptr(70400, 70401, 1), Range32), $clone(new Range32.ptr(70459, 70460, 1), Range32), $clone(new Range32.ptr(70464, 70502, 38), Range32), $clone(new Range32.ptr(70503, 70508, 1), Range32), $clone(new Range32.ptr(70512, 70516, 1), Range32), $clone(new Range32.ptr(70712, 70719, 1), Range32), $clone(new Range32.ptr(70722, 70724, 1), Range32), $clone(new Range32.ptr(70726, 70750, 24), Range32), $clone(new Range32.ptr(70835, 70840, 1), Range32), $clone(new Range32.ptr(70842, 70847, 5), Range32), $clone(new Range32.ptr(70848, 70850, 2), Range32), $clone(new Range32.ptr(70851, 71090, 239), Range32), $clone(new Range32.ptr(71091, 71093, 1), Range32), $clone(new Range32.ptr(71100, 71101, 1), Range32), $clone(new Range32.ptr(71103, 71104, 1), Range32), $clone(new Range32.ptr(71132, 71133, 1), Range32), $clone(new Range32.ptr(71219, 71226, 1), Range32), $clone(new Range32.ptr(71229, 71231, 2), Range32), $clone(new Range32.ptr(71232, 71339, 107), Range32), $clone(new Range32.ptr(71341, 71344, 3), Range32), $clone(new Range32.ptr(71345, 71349, 1), Range32), $clone(new Range32.ptr(71351, 71453, 102), Range32), $clone(new Range32.ptr(71454, 71455, 1), Range32), $clone(new Range32.ptr(71458, 71461, 1), Range32), $clone(new Range32.ptr(71463, 71467, 1), Range32), $clone(new Range32.ptr(71727, 71735, 1), Range32), $clone(new Range32.ptr(71737, 71738, 1), Range32), $clone(new Range32.ptr(71995, 71996, 1), Range32), $clone(new Range32.ptr(71998, 72003, 5), Range32), $clone(new Range32.ptr(72148, 72151, 1), Range32), $clone(new Range32.ptr(72154, 72155, 1), Range32), $clone(new Range32.ptr(72160, 72193, 33), Range32), $clone(new Range32.ptr(72194, 72202, 1), Range32), $clone(new Range32.ptr(72243, 72248, 1), Range32), $clone(new Range32.ptr(72251, 72254, 1), Range32), $clone(new Range32.ptr(72263, 72273, 10), Range32), $clone(new Range32.ptr(72274, 72278, 1), Range32), $clone(new Range32.ptr(72281, 72283, 1), Range32), $clone(new Range32.ptr(72330, 72342, 1), Range32), $clone(new Range32.ptr(72344, 72345, 1), Range32), $clone(new Range32.ptr(72752, 72758, 1), Range32), $clone(new Range32.ptr(72760, 72765, 1), Range32), $clone(new Range32.ptr(72767, 72850, 83), Range32), $clone(new Range32.ptr(72851, 72871, 1), Range32), $clone(new Range32.ptr(72874, 72880, 1), Range32), $clone(new Range32.ptr(72882, 72883, 1), Range32), $clone(new Range32.ptr(72885, 72886, 1), Range32), $clone(new Range32.ptr(73009, 73014, 1), Range32), $clone(new Range32.ptr(73018, 73020, 2), Range32), $clone(new Range32.ptr(73021, 73023, 2), Range32), $clone(new Range32.ptr(73024, 73029, 1), Range32), $clone(new Range32.ptr(73031, 73104, 73), Range32), $clone(new Range32.ptr(73105, 73109, 4), Range32), $clone(new Range32.ptr(73111, 73459, 348), Range32), $clone(new Range32.ptr(73460, 92912, 19452), Range32), $clone(new Range32.ptr(92913, 92916, 1), Range32), $clone(new Range32.ptr(92976, 92982, 1), Range32), $clone(new Range32.ptr(94031, 94095, 64), Range32), $clone(new Range32.ptr(94096, 94098, 1), Range32), $clone(new Range32.ptr(94180, 113821, 19641), Range32), $clone(new Range32.ptr(113822, 119143, 5321), Range32), $clone(new Range32.ptr(119144, 119145, 1), Range32), $clone(new Range32.ptr(119163, 119170, 1), Range32), $clone(new Range32.ptr(119173, 119179, 1), Range32), $clone(new Range32.ptr(119210, 119213, 1), Range32), $clone(new Range32.ptr(119362, 119364, 1), Range32), $clone(new Range32.ptr(121344, 121398, 1), Range32), $clone(new Range32.ptr(121403, 121452, 1), Range32), $clone(new Range32.ptr(121461, 121476, 15), Range32), $clone(new Range32.ptr(121499, 121503, 1), Range32), $clone(new Range32.ptr(121505, 121519, 1), Range32), $clone(new Range32.ptr(122880, 122886, 1), Range32), $clone(new Range32.ptr(122888, 122904, 1), Range32), $clone(new Range32.ptr(122907, 122913, 1), Range32), $clone(new Range32.ptr(122915, 122916, 1), Range32), $clone(new Range32.ptr(122918, 122922, 1), Range32), $clone(new Range32.ptr(123184, 123190, 1), Range32), $clone(new Range32.ptr(123628, 123631, 1), Range32), $clone(new Range32.ptr(125136, 125142, 1), Range32), $clone(new Range32.ptr(125252, 125258, 1), Range32), $clone(new Range32.ptr(917760, 917999, 1), Range32)]), 0); - _N = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(48, 57, 1), Range16), $clone(new Range16.ptr(178, 179, 1), Range16), $clone(new Range16.ptr(185, 188, 3), Range16), $clone(new Range16.ptr(189, 190, 1), Range16), $clone(new Range16.ptr(1632, 1641, 1), Range16), $clone(new Range16.ptr(1776, 1785, 1), Range16), $clone(new Range16.ptr(1984, 1993, 1), Range16), $clone(new Range16.ptr(2406, 2415, 1), Range16), $clone(new Range16.ptr(2534, 2543, 1), Range16), $clone(new Range16.ptr(2548, 2553, 1), Range16), $clone(new Range16.ptr(2662, 2671, 1), Range16), $clone(new Range16.ptr(2790, 2799, 1), Range16), $clone(new Range16.ptr(2918, 2927, 1), Range16), $clone(new Range16.ptr(2930, 2935, 1), Range16), $clone(new Range16.ptr(3046, 3058, 1), Range16), $clone(new Range16.ptr(3174, 3183, 1), Range16), $clone(new Range16.ptr(3192, 3198, 1), Range16), $clone(new Range16.ptr(3302, 3311, 1), Range16), $clone(new Range16.ptr(3416, 3422, 1), Range16), $clone(new Range16.ptr(3430, 3448, 1), Range16), $clone(new Range16.ptr(3558, 3567, 1), Range16), $clone(new Range16.ptr(3664, 3673, 1), Range16), $clone(new Range16.ptr(3792, 3801, 1), Range16), $clone(new Range16.ptr(3872, 3891, 1), Range16), $clone(new Range16.ptr(4160, 4169, 1), Range16), $clone(new Range16.ptr(4240, 4249, 1), Range16), $clone(new Range16.ptr(4969, 4988, 1), Range16), $clone(new Range16.ptr(5870, 5872, 1), Range16), $clone(new Range16.ptr(6112, 6121, 1), Range16), $clone(new Range16.ptr(6128, 6137, 1), Range16), $clone(new Range16.ptr(6160, 6169, 1), Range16), $clone(new Range16.ptr(6470, 6479, 1), Range16), $clone(new Range16.ptr(6608, 6618, 1), Range16), $clone(new Range16.ptr(6784, 6793, 1), Range16), $clone(new Range16.ptr(6800, 6809, 1), Range16), $clone(new Range16.ptr(6992, 7001, 1), Range16), $clone(new Range16.ptr(7088, 7097, 1), Range16), $clone(new Range16.ptr(7232, 7241, 1), Range16), $clone(new Range16.ptr(7248, 7257, 1), Range16), $clone(new Range16.ptr(8304, 8308, 4), Range16), $clone(new Range16.ptr(8309, 8313, 1), Range16), $clone(new Range16.ptr(8320, 8329, 1), Range16), $clone(new Range16.ptr(8528, 8578, 1), Range16), $clone(new Range16.ptr(8581, 8585, 1), Range16), $clone(new Range16.ptr(9312, 9371, 1), Range16), $clone(new Range16.ptr(9450, 9471, 1), Range16), $clone(new Range16.ptr(10102, 10131, 1), Range16), $clone(new Range16.ptr(11517, 12295, 778), Range16), $clone(new Range16.ptr(12321, 12329, 1), Range16), $clone(new Range16.ptr(12344, 12346, 1), Range16), $clone(new Range16.ptr(12690, 12693, 1), Range16), $clone(new Range16.ptr(12832, 12841, 1), Range16), $clone(new Range16.ptr(12872, 12879, 1), Range16), $clone(new Range16.ptr(12881, 12895, 1), Range16), $clone(new Range16.ptr(12928, 12937, 1), Range16), $clone(new Range16.ptr(12977, 12991, 1), Range16), $clone(new Range16.ptr(42528, 42537, 1), Range16), $clone(new Range16.ptr(42726, 42735, 1), Range16), $clone(new Range16.ptr(43056, 43061, 1), Range16), $clone(new Range16.ptr(43216, 43225, 1), Range16), $clone(new Range16.ptr(43264, 43273, 1), Range16), $clone(new Range16.ptr(43472, 43481, 1), Range16), $clone(new Range16.ptr(43504, 43513, 1), Range16), $clone(new Range16.ptr(43600, 43609, 1), Range16), $clone(new Range16.ptr(44016, 44025, 1), Range16), $clone(new Range16.ptr(65296, 65305, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65799, 65843, 1), Range32), $clone(new Range32.ptr(65856, 65912, 1), Range32), $clone(new Range32.ptr(65930, 65931, 1), Range32), $clone(new Range32.ptr(66273, 66299, 1), Range32), $clone(new Range32.ptr(66336, 66339, 1), Range32), $clone(new Range32.ptr(66369, 66378, 9), Range32), $clone(new Range32.ptr(66513, 66517, 1), Range32), $clone(new Range32.ptr(66720, 66729, 1), Range32), $clone(new Range32.ptr(67672, 67679, 1), Range32), $clone(new Range32.ptr(67705, 67711, 1), Range32), $clone(new Range32.ptr(67751, 67759, 1), Range32), $clone(new Range32.ptr(67835, 67839, 1), Range32), $clone(new Range32.ptr(67862, 67867, 1), Range32), $clone(new Range32.ptr(68028, 68029, 1), Range32), $clone(new Range32.ptr(68032, 68047, 1), Range32), $clone(new Range32.ptr(68050, 68095, 1), Range32), $clone(new Range32.ptr(68160, 68168, 1), Range32), $clone(new Range32.ptr(68221, 68222, 1), Range32), $clone(new Range32.ptr(68253, 68255, 1), Range32), $clone(new Range32.ptr(68331, 68335, 1), Range32), $clone(new Range32.ptr(68440, 68447, 1), Range32), $clone(new Range32.ptr(68472, 68479, 1), Range32), $clone(new Range32.ptr(68521, 68527, 1), Range32), $clone(new Range32.ptr(68858, 68863, 1), Range32), $clone(new Range32.ptr(68912, 68921, 1), Range32), $clone(new Range32.ptr(69216, 69246, 1), Range32), $clone(new Range32.ptr(69405, 69414, 1), Range32), $clone(new Range32.ptr(69457, 69460, 1), Range32), $clone(new Range32.ptr(69573, 69579, 1), Range32), $clone(new Range32.ptr(69714, 69743, 1), Range32), $clone(new Range32.ptr(69872, 69881, 1), Range32), $clone(new Range32.ptr(69942, 69951, 1), Range32), $clone(new Range32.ptr(70096, 70105, 1), Range32), $clone(new Range32.ptr(70113, 70132, 1), Range32), $clone(new Range32.ptr(70384, 70393, 1), Range32), $clone(new Range32.ptr(70736, 70745, 1), Range32), $clone(new Range32.ptr(70864, 70873, 1), Range32), $clone(new Range32.ptr(71248, 71257, 1), Range32), $clone(new Range32.ptr(71360, 71369, 1), Range32), $clone(new Range32.ptr(71472, 71483, 1), Range32), $clone(new Range32.ptr(71904, 71922, 1), Range32), $clone(new Range32.ptr(72016, 72025, 1), Range32), $clone(new Range32.ptr(72784, 72812, 1), Range32), $clone(new Range32.ptr(73040, 73049, 1), Range32), $clone(new Range32.ptr(73120, 73129, 1), Range32), $clone(new Range32.ptr(73664, 73684, 1), Range32), $clone(new Range32.ptr(74752, 74862, 1), Range32), $clone(new Range32.ptr(92768, 92777, 1), Range32), $clone(new Range32.ptr(93008, 93017, 1), Range32), $clone(new Range32.ptr(93019, 93025, 1), Range32), $clone(new Range32.ptr(93824, 93846, 1), Range32), $clone(new Range32.ptr(119520, 119539, 1), Range32), $clone(new Range32.ptr(119648, 119672, 1), Range32), $clone(new Range32.ptr(120782, 120831, 1), Range32), $clone(new Range32.ptr(123200, 123209, 1), Range32), $clone(new Range32.ptr(123632, 123641, 1), Range32), $clone(new Range32.ptr(125127, 125135, 1), Range32), $clone(new Range32.ptr(125264, 125273, 1), Range32), $clone(new Range32.ptr(126065, 126123, 1), Range32), $clone(new Range32.ptr(126125, 126127, 1), Range32), $clone(new Range32.ptr(126129, 126132, 1), Range32), $clone(new Range32.ptr(126209, 126253, 1), Range32), $clone(new Range32.ptr(126255, 126269, 1), Range32), $clone(new Range32.ptr(127232, 127244, 1), Range32), $clone(new Range32.ptr(130032, 130041, 1), Range32)]), 4); - _Nd = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(48, 57, 1), Range16), $clone(new Range16.ptr(1632, 1641, 1), Range16), $clone(new Range16.ptr(1776, 1785, 1), Range16), $clone(new Range16.ptr(1984, 1993, 1), Range16), $clone(new Range16.ptr(2406, 2415, 1), Range16), $clone(new Range16.ptr(2534, 2543, 1), Range16), $clone(new Range16.ptr(2662, 2671, 1), Range16), $clone(new Range16.ptr(2790, 2799, 1), Range16), $clone(new Range16.ptr(2918, 2927, 1), Range16), $clone(new Range16.ptr(3046, 3055, 1), Range16), $clone(new Range16.ptr(3174, 3183, 1), Range16), $clone(new Range16.ptr(3302, 3311, 1), Range16), $clone(new Range16.ptr(3430, 3439, 1), Range16), $clone(new Range16.ptr(3558, 3567, 1), Range16), $clone(new Range16.ptr(3664, 3673, 1), Range16), $clone(new Range16.ptr(3792, 3801, 1), Range16), $clone(new Range16.ptr(3872, 3881, 1), Range16), $clone(new Range16.ptr(4160, 4169, 1), Range16), $clone(new Range16.ptr(4240, 4249, 1), Range16), $clone(new Range16.ptr(6112, 6121, 1), Range16), $clone(new Range16.ptr(6160, 6169, 1), Range16), $clone(new Range16.ptr(6470, 6479, 1), Range16), $clone(new Range16.ptr(6608, 6617, 1), Range16), $clone(new Range16.ptr(6784, 6793, 1), Range16), $clone(new Range16.ptr(6800, 6809, 1), Range16), $clone(new Range16.ptr(6992, 7001, 1), Range16), $clone(new Range16.ptr(7088, 7097, 1), Range16), $clone(new Range16.ptr(7232, 7241, 1), Range16), $clone(new Range16.ptr(7248, 7257, 1), Range16), $clone(new Range16.ptr(42528, 42537, 1), Range16), $clone(new Range16.ptr(43216, 43225, 1), Range16), $clone(new Range16.ptr(43264, 43273, 1), Range16), $clone(new Range16.ptr(43472, 43481, 1), Range16), $clone(new Range16.ptr(43504, 43513, 1), Range16), $clone(new Range16.ptr(43600, 43609, 1), Range16), $clone(new Range16.ptr(44016, 44025, 1), Range16), $clone(new Range16.ptr(65296, 65305, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(66720, 66729, 1), Range32), $clone(new Range32.ptr(68912, 68921, 1), Range32), $clone(new Range32.ptr(69734, 69743, 1), Range32), $clone(new Range32.ptr(69872, 69881, 1), Range32), $clone(new Range32.ptr(69942, 69951, 1), Range32), $clone(new Range32.ptr(70096, 70105, 1), Range32), $clone(new Range32.ptr(70384, 70393, 1), Range32), $clone(new Range32.ptr(70736, 70745, 1), Range32), $clone(new Range32.ptr(70864, 70873, 1), Range32), $clone(new Range32.ptr(71248, 71257, 1), Range32), $clone(new Range32.ptr(71360, 71369, 1), Range32), $clone(new Range32.ptr(71472, 71481, 1), Range32), $clone(new Range32.ptr(71904, 71913, 1), Range32), $clone(new Range32.ptr(72016, 72025, 1), Range32), $clone(new Range32.ptr(72784, 72793, 1), Range32), $clone(new Range32.ptr(73040, 73049, 1), Range32), $clone(new Range32.ptr(73120, 73129, 1), Range32), $clone(new Range32.ptr(92768, 92777, 1), Range32), $clone(new Range32.ptr(93008, 93017, 1), Range32), $clone(new Range32.ptr(120782, 120831, 1), Range32), $clone(new Range32.ptr(123200, 123209, 1), Range32), $clone(new Range32.ptr(123632, 123641, 1), Range32), $clone(new Range32.ptr(125264, 125273, 1), Range32), $clone(new Range32.ptr(130032, 130041, 1), Range32)]), 1); + _Mn = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(768, 879, 1), Range16), $clone(new Range16.ptr(1155, 1159, 1), Range16), $clone(new Range16.ptr(1425, 1469, 1), Range16), $clone(new Range16.ptr(1471, 1473, 2), Range16), $clone(new Range16.ptr(1474, 1476, 2), Range16), $clone(new Range16.ptr(1477, 1479, 2), Range16), $clone(new Range16.ptr(1552, 1562, 1), Range16), $clone(new Range16.ptr(1611, 1631, 1), Range16), $clone(new Range16.ptr(1648, 1750, 102), Range16), $clone(new Range16.ptr(1751, 1756, 1), Range16), $clone(new Range16.ptr(1759, 1764, 1), Range16), $clone(new Range16.ptr(1767, 1768, 1), Range16), $clone(new Range16.ptr(1770, 1773, 1), Range16), $clone(new Range16.ptr(1809, 1840, 31), Range16), $clone(new Range16.ptr(1841, 1866, 1), Range16), $clone(new Range16.ptr(1958, 1968, 1), Range16), $clone(new Range16.ptr(2027, 2035, 1), Range16), $clone(new Range16.ptr(2045, 2070, 25), Range16), $clone(new Range16.ptr(2071, 2073, 1), Range16), $clone(new Range16.ptr(2075, 2083, 1), Range16), $clone(new Range16.ptr(2085, 2087, 1), Range16), $clone(new Range16.ptr(2089, 2093, 1), Range16), $clone(new Range16.ptr(2137, 2139, 1), Range16), $clone(new Range16.ptr(2200, 2207, 1), Range16), $clone(new Range16.ptr(2250, 2273, 1), Range16), $clone(new Range16.ptr(2275, 2306, 1), Range16), $clone(new Range16.ptr(2362, 2364, 2), Range16), $clone(new Range16.ptr(2369, 2376, 1), Range16), $clone(new Range16.ptr(2381, 2385, 4), Range16), $clone(new Range16.ptr(2386, 2391, 1), Range16), $clone(new Range16.ptr(2402, 2403, 1), Range16), $clone(new Range16.ptr(2433, 2492, 59), Range16), $clone(new Range16.ptr(2497, 2500, 1), Range16), $clone(new Range16.ptr(2509, 2530, 21), Range16), $clone(new Range16.ptr(2531, 2558, 27), Range16), $clone(new Range16.ptr(2561, 2562, 1), Range16), $clone(new Range16.ptr(2620, 2625, 5), Range16), $clone(new Range16.ptr(2626, 2631, 5), Range16), $clone(new Range16.ptr(2632, 2635, 3), Range16), $clone(new Range16.ptr(2636, 2637, 1), Range16), $clone(new Range16.ptr(2641, 2672, 31), Range16), $clone(new Range16.ptr(2673, 2677, 4), Range16), $clone(new Range16.ptr(2689, 2690, 1), Range16), $clone(new Range16.ptr(2748, 2753, 5), Range16), $clone(new Range16.ptr(2754, 2757, 1), Range16), $clone(new Range16.ptr(2759, 2760, 1), Range16), $clone(new Range16.ptr(2765, 2786, 21), Range16), $clone(new Range16.ptr(2787, 2810, 23), Range16), $clone(new Range16.ptr(2811, 2815, 1), Range16), $clone(new Range16.ptr(2817, 2876, 59), Range16), $clone(new Range16.ptr(2879, 2881, 2), Range16), $clone(new Range16.ptr(2882, 2884, 1), Range16), $clone(new Range16.ptr(2893, 2901, 8), Range16), $clone(new Range16.ptr(2902, 2914, 12), Range16), $clone(new Range16.ptr(2915, 2946, 31), Range16), $clone(new Range16.ptr(3008, 3021, 13), Range16), $clone(new Range16.ptr(3072, 3076, 4), Range16), $clone(new Range16.ptr(3132, 3134, 2), Range16), $clone(new Range16.ptr(3135, 3136, 1), Range16), $clone(new Range16.ptr(3142, 3144, 1), Range16), $clone(new Range16.ptr(3146, 3149, 1), Range16), $clone(new Range16.ptr(3157, 3158, 1), Range16), $clone(new Range16.ptr(3170, 3171, 1), Range16), $clone(new Range16.ptr(3201, 3260, 59), Range16), $clone(new Range16.ptr(3263, 3270, 7), Range16), $clone(new Range16.ptr(3276, 3277, 1), Range16), $clone(new Range16.ptr(3298, 3299, 1), Range16), $clone(new Range16.ptr(3328, 3329, 1), Range16), $clone(new Range16.ptr(3387, 3388, 1), Range16), $clone(new Range16.ptr(3393, 3396, 1), Range16), $clone(new Range16.ptr(3405, 3426, 21), Range16), $clone(new Range16.ptr(3427, 3457, 30), Range16), $clone(new Range16.ptr(3530, 3538, 8), Range16), $clone(new Range16.ptr(3539, 3540, 1), Range16), $clone(new Range16.ptr(3542, 3633, 91), Range16), $clone(new Range16.ptr(3636, 3642, 1), Range16), $clone(new Range16.ptr(3655, 3662, 1), Range16), $clone(new Range16.ptr(3761, 3764, 3), Range16), $clone(new Range16.ptr(3765, 3772, 1), Range16), $clone(new Range16.ptr(3784, 3790, 1), Range16), $clone(new Range16.ptr(3864, 3865, 1), Range16), $clone(new Range16.ptr(3893, 3897, 2), Range16), $clone(new Range16.ptr(3953, 3966, 1), Range16), $clone(new Range16.ptr(3968, 3972, 1), Range16), $clone(new Range16.ptr(3974, 3975, 1), Range16), $clone(new Range16.ptr(3981, 3991, 1), Range16), $clone(new Range16.ptr(3993, 4028, 1), Range16), $clone(new Range16.ptr(4038, 4141, 103), Range16), $clone(new Range16.ptr(4142, 4144, 1), Range16), $clone(new Range16.ptr(4146, 4151, 1), Range16), $clone(new Range16.ptr(4153, 4154, 1), Range16), $clone(new Range16.ptr(4157, 4158, 1), Range16), $clone(new Range16.ptr(4184, 4185, 1), Range16), $clone(new Range16.ptr(4190, 4192, 1), Range16), $clone(new Range16.ptr(4209, 4212, 1), Range16), $clone(new Range16.ptr(4226, 4229, 3), Range16), $clone(new Range16.ptr(4230, 4237, 7), Range16), $clone(new Range16.ptr(4253, 4957, 704), Range16), $clone(new Range16.ptr(4958, 4959, 1), Range16), $clone(new Range16.ptr(5906, 5908, 1), Range16), $clone(new Range16.ptr(5938, 5939, 1), Range16), $clone(new Range16.ptr(5970, 5971, 1), Range16), $clone(new Range16.ptr(6002, 6003, 1), Range16), $clone(new Range16.ptr(6068, 6069, 1), Range16), $clone(new Range16.ptr(6071, 6077, 1), Range16), $clone(new Range16.ptr(6086, 6089, 3), Range16), $clone(new Range16.ptr(6090, 6099, 1), Range16), $clone(new Range16.ptr(6109, 6155, 46), Range16), $clone(new Range16.ptr(6156, 6157, 1), Range16), $clone(new Range16.ptr(6159, 6277, 118), Range16), $clone(new Range16.ptr(6278, 6313, 35), Range16), $clone(new Range16.ptr(6432, 6434, 1), Range16), $clone(new Range16.ptr(6439, 6440, 1), Range16), $clone(new Range16.ptr(6450, 6457, 7), Range16), $clone(new Range16.ptr(6458, 6459, 1), Range16), $clone(new Range16.ptr(6679, 6680, 1), Range16), $clone(new Range16.ptr(6683, 6742, 59), Range16), $clone(new Range16.ptr(6744, 6750, 1), Range16), $clone(new Range16.ptr(6752, 6754, 2), Range16), $clone(new Range16.ptr(6757, 6764, 1), Range16), $clone(new Range16.ptr(6771, 6780, 1), Range16), $clone(new Range16.ptr(6783, 6832, 49), Range16), $clone(new Range16.ptr(6833, 6845, 1), Range16), $clone(new Range16.ptr(6847, 6862, 1), Range16), $clone(new Range16.ptr(6912, 6915, 1), Range16), $clone(new Range16.ptr(6964, 6966, 2), Range16), $clone(new Range16.ptr(6967, 6970, 1), Range16), $clone(new Range16.ptr(6972, 6978, 6), Range16), $clone(new Range16.ptr(7019, 7027, 1), Range16), $clone(new Range16.ptr(7040, 7041, 1), Range16), $clone(new Range16.ptr(7074, 7077, 1), Range16), $clone(new Range16.ptr(7080, 7081, 1), Range16), $clone(new Range16.ptr(7083, 7085, 1), Range16), $clone(new Range16.ptr(7142, 7144, 2), Range16), $clone(new Range16.ptr(7145, 7149, 4), Range16), $clone(new Range16.ptr(7151, 7153, 1), Range16), $clone(new Range16.ptr(7212, 7219, 1), Range16), $clone(new Range16.ptr(7222, 7223, 1), Range16), $clone(new Range16.ptr(7376, 7378, 1), Range16), $clone(new Range16.ptr(7380, 7392, 1), Range16), $clone(new Range16.ptr(7394, 7400, 1), Range16), $clone(new Range16.ptr(7405, 7412, 7), Range16), $clone(new Range16.ptr(7416, 7417, 1), Range16), $clone(new Range16.ptr(7616, 7679, 1), Range16), $clone(new Range16.ptr(8400, 8412, 1), Range16), $clone(new Range16.ptr(8417, 8421, 4), Range16), $clone(new Range16.ptr(8422, 8432, 1), Range16), $clone(new Range16.ptr(11503, 11505, 1), Range16), $clone(new Range16.ptr(11647, 11744, 97), Range16), $clone(new Range16.ptr(11745, 11775, 1), Range16), $clone(new Range16.ptr(12330, 12333, 1), Range16), $clone(new Range16.ptr(12441, 12442, 1), Range16), $clone(new Range16.ptr(42607, 42612, 5), Range16), $clone(new Range16.ptr(42613, 42621, 1), Range16), $clone(new Range16.ptr(42654, 42655, 1), Range16), $clone(new Range16.ptr(42736, 42737, 1), Range16), $clone(new Range16.ptr(43010, 43014, 4), Range16), $clone(new Range16.ptr(43019, 43045, 26), Range16), $clone(new Range16.ptr(43046, 43052, 6), Range16), $clone(new Range16.ptr(43204, 43205, 1), Range16), $clone(new Range16.ptr(43232, 43249, 1), Range16), $clone(new Range16.ptr(43263, 43302, 39), Range16), $clone(new Range16.ptr(43303, 43309, 1), Range16), $clone(new Range16.ptr(43335, 43345, 1), Range16), $clone(new Range16.ptr(43392, 43394, 1), Range16), $clone(new Range16.ptr(43443, 43446, 3), Range16), $clone(new Range16.ptr(43447, 43449, 1), Range16), $clone(new Range16.ptr(43452, 43453, 1), Range16), $clone(new Range16.ptr(43493, 43561, 68), Range16), $clone(new Range16.ptr(43562, 43566, 1), Range16), $clone(new Range16.ptr(43569, 43570, 1), Range16), $clone(new Range16.ptr(43573, 43574, 1), Range16), $clone(new Range16.ptr(43587, 43596, 9), Range16), $clone(new Range16.ptr(43644, 43696, 52), Range16), $clone(new Range16.ptr(43698, 43700, 1), Range16), $clone(new Range16.ptr(43703, 43704, 1), Range16), $clone(new Range16.ptr(43710, 43711, 1), Range16), $clone(new Range16.ptr(43713, 43756, 43), Range16), $clone(new Range16.ptr(43757, 43766, 9), Range16), $clone(new Range16.ptr(44005, 44008, 3), Range16), $clone(new Range16.ptr(44013, 64286, 20273), Range16), $clone(new Range16.ptr(65024, 65039, 1), Range16), $clone(new Range16.ptr(65056, 65071, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(66045, 66272, 227), Range32), $clone(new Range32.ptr(66422, 66426, 1), Range32), $clone(new Range32.ptr(68097, 68099, 1), Range32), $clone(new Range32.ptr(68101, 68102, 1), Range32), $clone(new Range32.ptr(68108, 68111, 1), Range32), $clone(new Range32.ptr(68152, 68154, 1), Range32), $clone(new Range32.ptr(68159, 68325, 166), Range32), $clone(new Range32.ptr(68326, 68900, 574), Range32), $clone(new Range32.ptr(68901, 68903, 1), Range32), $clone(new Range32.ptr(69291, 69292, 1), Range32), $clone(new Range32.ptr(69373, 69375, 1), Range32), $clone(new Range32.ptr(69446, 69456, 1), Range32), $clone(new Range32.ptr(69506, 69509, 1), Range32), $clone(new Range32.ptr(69633, 69688, 55), Range32), $clone(new Range32.ptr(69689, 69702, 1), Range32), $clone(new Range32.ptr(69744, 69747, 3), Range32), $clone(new Range32.ptr(69748, 69759, 11), Range32), $clone(new Range32.ptr(69760, 69761, 1), Range32), $clone(new Range32.ptr(69811, 69814, 1), Range32), $clone(new Range32.ptr(69817, 69818, 1), Range32), $clone(new Range32.ptr(69826, 69888, 62), Range32), $clone(new Range32.ptr(69889, 69890, 1), Range32), $clone(new Range32.ptr(69927, 69931, 1), Range32), $clone(new Range32.ptr(69933, 69940, 1), Range32), $clone(new Range32.ptr(70003, 70016, 13), Range32), $clone(new Range32.ptr(70017, 70070, 53), Range32), $clone(new Range32.ptr(70071, 70078, 1), Range32), $clone(new Range32.ptr(70089, 70092, 1), Range32), $clone(new Range32.ptr(70095, 70191, 96), Range32), $clone(new Range32.ptr(70192, 70193, 1), Range32), $clone(new Range32.ptr(70196, 70198, 2), Range32), $clone(new Range32.ptr(70199, 70206, 7), Range32), $clone(new Range32.ptr(70209, 70367, 158), Range32), $clone(new Range32.ptr(70371, 70378, 1), Range32), $clone(new Range32.ptr(70400, 70401, 1), Range32), $clone(new Range32.ptr(70459, 70460, 1), Range32), $clone(new Range32.ptr(70464, 70502, 38), Range32), $clone(new Range32.ptr(70503, 70508, 1), Range32), $clone(new Range32.ptr(70512, 70516, 1), Range32), $clone(new Range32.ptr(70712, 70719, 1), Range32), $clone(new Range32.ptr(70722, 70724, 1), Range32), $clone(new Range32.ptr(70726, 70750, 24), Range32), $clone(new Range32.ptr(70835, 70840, 1), Range32), $clone(new Range32.ptr(70842, 70847, 5), Range32), $clone(new Range32.ptr(70848, 70850, 2), Range32), $clone(new Range32.ptr(70851, 71090, 239), Range32), $clone(new Range32.ptr(71091, 71093, 1), Range32), $clone(new Range32.ptr(71100, 71101, 1), Range32), $clone(new Range32.ptr(71103, 71104, 1), Range32), $clone(new Range32.ptr(71132, 71133, 1), Range32), $clone(new Range32.ptr(71219, 71226, 1), Range32), $clone(new Range32.ptr(71229, 71231, 2), Range32), $clone(new Range32.ptr(71232, 71339, 107), Range32), $clone(new Range32.ptr(71341, 71344, 3), Range32), $clone(new Range32.ptr(71345, 71349, 1), Range32), $clone(new Range32.ptr(71351, 71453, 102), Range32), $clone(new Range32.ptr(71454, 71455, 1), Range32), $clone(new Range32.ptr(71458, 71461, 1), Range32), $clone(new Range32.ptr(71463, 71467, 1), Range32), $clone(new Range32.ptr(71727, 71735, 1), Range32), $clone(new Range32.ptr(71737, 71738, 1), Range32), $clone(new Range32.ptr(71995, 71996, 1), Range32), $clone(new Range32.ptr(71998, 72003, 5), Range32), $clone(new Range32.ptr(72148, 72151, 1), Range32), $clone(new Range32.ptr(72154, 72155, 1), Range32), $clone(new Range32.ptr(72160, 72193, 33), Range32), $clone(new Range32.ptr(72194, 72202, 1), Range32), $clone(new Range32.ptr(72243, 72248, 1), Range32), $clone(new Range32.ptr(72251, 72254, 1), Range32), $clone(new Range32.ptr(72263, 72273, 10), Range32), $clone(new Range32.ptr(72274, 72278, 1), Range32), $clone(new Range32.ptr(72281, 72283, 1), Range32), $clone(new Range32.ptr(72330, 72342, 1), Range32), $clone(new Range32.ptr(72344, 72345, 1), Range32), $clone(new Range32.ptr(72752, 72758, 1), Range32), $clone(new Range32.ptr(72760, 72765, 1), Range32), $clone(new Range32.ptr(72767, 72850, 83), Range32), $clone(new Range32.ptr(72851, 72871, 1), Range32), $clone(new Range32.ptr(72874, 72880, 1), Range32), $clone(new Range32.ptr(72882, 72883, 1), Range32), $clone(new Range32.ptr(72885, 72886, 1), Range32), $clone(new Range32.ptr(73009, 73014, 1), Range32), $clone(new Range32.ptr(73018, 73020, 2), Range32), $clone(new Range32.ptr(73021, 73023, 2), Range32), $clone(new Range32.ptr(73024, 73029, 1), Range32), $clone(new Range32.ptr(73031, 73104, 73), Range32), $clone(new Range32.ptr(73105, 73109, 4), Range32), $clone(new Range32.ptr(73111, 73459, 348), Range32), $clone(new Range32.ptr(73460, 73472, 12), Range32), $clone(new Range32.ptr(73473, 73526, 53), Range32), $clone(new Range32.ptr(73527, 73530, 1), Range32), $clone(new Range32.ptr(73536, 73538, 2), Range32), $clone(new Range32.ptr(78912, 78919, 7), Range32), $clone(new Range32.ptr(78920, 78933, 1), Range32), $clone(new Range32.ptr(92912, 92916, 1), Range32), $clone(new Range32.ptr(92976, 92982, 1), Range32), $clone(new Range32.ptr(94031, 94095, 64), Range32), $clone(new Range32.ptr(94096, 94098, 1), Range32), $clone(new Range32.ptr(94180, 113821, 19641), Range32), $clone(new Range32.ptr(113822, 118528, 4706), Range32), $clone(new Range32.ptr(118529, 118573, 1), Range32), $clone(new Range32.ptr(118576, 118598, 1), Range32), $clone(new Range32.ptr(119143, 119145, 1), Range32), $clone(new Range32.ptr(119163, 119170, 1), Range32), $clone(new Range32.ptr(119173, 119179, 1), Range32), $clone(new Range32.ptr(119210, 119213, 1), Range32), $clone(new Range32.ptr(119362, 119364, 1), Range32), $clone(new Range32.ptr(121344, 121398, 1), Range32), $clone(new Range32.ptr(121403, 121452, 1), Range32), $clone(new Range32.ptr(121461, 121476, 15), Range32), $clone(new Range32.ptr(121499, 121503, 1), Range32), $clone(new Range32.ptr(121505, 121519, 1), Range32), $clone(new Range32.ptr(122880, 122886, 1), Range32), $clone(new Range32.ptr(122888, 122904, 1), Range32), $clone(new Range32.ptr(122907, 122913, 1), Range32), $clone(new Range32.ptr(122915, 122916, 1), Range32), $clone(new Range32.ptr(122918, 122922, 1), Range32), $clone(new Range32.ptr(123023, 123184, 161), Range32), $clone(new Range32.ptr(123185, 123190, 1), Range32), $clone(new Range32.ptr(123566, 123628, 62), Range32), $clone(new Range32.ptr(123629, 123631, 1), Range32), $clone(new Range32.ptr(124140, 124143, 1), Range32), $clone(new Range32.ptr(125136, 125142, 1), Range32), $clone(new Range32.ptr(125252, 125258, 1), Range32), $clone(new Range32.ptr(917760, 917999, 1), Range32)]), 0); + _N = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(48, 57, 1), Range16), $clone(new Range16.ptr(178, 179, 1), Range16), $clone(new Range16.ptr(185, 188, 3), Range16), $clone(new Range16.ptr(189, 190, 1), Range16), $clone(new Range16.ptr(1632, 1641, 1), Range16), $clone(new Range16.ptr(1776, 1785, 1), Range16), $clone(new Range16.ptr(1984, 1993, 1), Range16), $clone(new Range16.ptr(2406, 2415, 1), Range16), $clone(new Range16.ptr(2534, 2543, 1), Range16), $clone(new Range16.ptr(2548, 2553, 1), Range16), $clone(new Range16.ptr(2662, 2671, 1), Range16), $clone(new Range16.ptr(2790, 2799, 1), Range16), $clone(new Range16.ptr(2918, 2927, 1), Range16), $clone(new Range16.ptr(2930, 2935, 1), Range16), $clone(new Range16.ptr(3046, 3058, 1), Range16), $clone(new Range16.ptr(3174, 3183, 1), Range16), $clone(new Range16.ptr(3192, 3198, 1), Range16), $clone(new Range16.ptr(3302, 3311, 1), Range16), $clone(new Range16.ptr(3416, 3422, 1), Range16), $clone(new Range16.ptr(3430, 3448, 1), Range16), $clone(new Range16.ptr(3558, 3567, 1), Range16), $clone(new Range16.ptr(3664, 3673, 1), Range16), $clone(new Range16.ptr(3792, 3801, 1), Range16), $clone(new Range16.ptr(3872, 3891, 1), Range16), $clone(new Range16.ptr(4160, 4169, 1), Range16), $clone(new Range16.ptr(4240, 4249, 1), Range16), $clone(new Range16.ptr(4969, 4988, 1), Range16), $clone(new Range16.ptr(5870, 5872, 1), Range16), $clone(new Range16.ptr(6112, 6121, 1), Range16), $clone(new Range16.ptr(6128, 6137, 1), Range16), $clone(new Range16.ptr(6160, 6169, 1), Range16), $clone(new Range16.ptr(6470, 6479, 1), Range16), $clone(new Range16.ptr(6608, 6618, 1), Range16), $clone(new Range16.ptr(6784, 6793, 1), Range16), $clone(new Range16.ptr(6800, 6809, 1), Range16), $clone(new Range16.ptr(6992, 7001, 1), Range16), $clone(new Range16.ptr(7088, 7097, 1), Range16), $clone(new Range16.ptr(7232, 7241, 1), Range16), $clone(new Range16.ptr(7248, 7257, 1), Range16), $clone(new Range16.ptr(8304, 8308, 4), Range16), $clone(new Range16.ptr(8309, 8313, 1), Range16), $clone(new Range16.ptr(8320, 8329, 1), Range16), $clone(new Range16.ptr(8528, 8578, 1), Range16), $clone(new Range16.ptr(8581, 8585, 1), Range16), $clone(new Range16.ptr(9312, 9371, 1), Range16), $clone(new Range16.ptr(9450, 9471, 1), Range16), $clone(new Range16.ptr(10102, 10131, 1), Range16), $clone(new Range16.ptr(11517, 12295, 778), Range16), $clone(new Range16.ptr(12321, 12329, 1), Range16), $clone(new Range16.ptr(12344, 12346, 1), Range16), $clone(new Range16.ptr(12690, 12693, 1), Range16), $clone(new Range16.ptr(12832, 12841, 1), Range16), $clone(new Range16.ptr(12872, 12879, 1), Range16), $clone(new Range16.ptr(12881, 12895, 1), Range16), $clone(new Range16.ptr(12928, 12937, 1), Range16), $clone(new Range16.ptr(12977, 12991, 1), Range16), $clone(new Range16.ptr(42528, 42537, 1), Range16), $clone(new Range16.ptr(42726, 42735, 1), Range16), $clone(new Range16.ptr(43056, 43061, 1), Range16), $clone(new Range16.ptr(43216, 43225, 1), Range16), $clone(new Range16.ptr(43264, 43273, 1), Range16), $clone(new Range16.ptr(43472, 43481, 1), Range16), $clone(new Range16.ptr(43504, 43513, 1), Range16), $clone(new Range16.ptr(43600, 43609, 1), Range16), $clone(new Range16.ptr(44016, 44025, 1), Range16), $clone(new Range16.ptr(65296, 65305, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65799, 65843, 1), Range32), $clone(new Range32.ptr(65856, 65912, 1), Range32), $clone(new Range32.ptr(65930, 65931, 1), Range32), $clone(new Range32.ptr(66273, 66299, 1), Range32), $clone(new Range32.ptr(66336, 66339, 1), Range32), $clone(new Range32.ptr(66369, 66378, 9), Range32), $clone(new Range32.ptr(66513, 66517, 1), Range32), $clone(new Range32.ptr(66720, 66729, 1), Range32), $clone(new Range32.ptr(67672, 67679, 1), Range32), $clone(new Range32.ptr(67705, 67711, 1), Range32), $clone(new Range32.ptr(67751, 67759, 1), Range32), $clone(new Range32.ptr(67835, 67839, 1), Range32), $clone(new Range32.ptr(67862, 67867, 1), Range32), $clone(new Range32.ptr(68028, 68029, 1), Range32), $clone(new Range32.ptr(68032, 68047, 1), Range32), $clone(new Range32.ptr(68050, 68095, 1), Range32), $clone(new Range32.ptr(68160, 68168, 1), Range32), $clone(new Range32.ptr(68221, 68222, 1), Range32), $clone(new Range32.ptr(68253, 68255, 1), Range32), $clone(new Range32.ptr(68331, 68335, 1), Range32), $clone(new Range32.ptr(68440, 68447, 1), Range32), $clone(new Range32.ptr(68472, 68479, 1), Range32), $clone(new Range32.ptr(68521, 68527, 1), Range32), $clone(new Range32.ptr(68858, 68863, 1), Range32), $clone(new Range32.ptr(68912, 68921, 1), Range32), $clone(new Range32.ptr(69216, 69246, 1), Range32), $clone(new Range32.ptr(69405, 69414, 1), Range32), $clone(new Range32.ptr(69457, 69460, 1), Range32), $clone(new Range32.ptr(69573, 69579, 1), Range32), $clone(new Range32.ptr(69714, 69743, 1), Range32), $clone(new Range32.ptr(69872, 69881, 1), Range32), $clone(new Range32.ptr(69942, 69951, 1), Range32), $clone(new Range32.ptr(70096, 70105, 1), Range32), $clone(new Range32.ptr(70113, 70132, 1), Range32), $clone(new Range32.ptr(70384, 70393, 1), Range32), $clone(new Range32.ptr(70736, 70745, 1), Range32), $clone(new Range32.ptr(70864, 70873, 1), Range32), $clone(new Range32.ptr(71248, 71257, 1), Range32), $clone(new Range32.ptr(71360, 71369, 1), Range32), $clone(new Range32.ptr(71472, 71483, 1), Range32), $clone(new Range32.ptr(71904, 71922, 1), Range32), $clone(new Range32.ptr(72016, 72025, 1), Range32), $clone(new Range32.ptr(72784, 72812, 1), Range32), $clone(new Range32.ptr(73040, 73049, 1), Range32), $clone(new Range32.ptr(73120, 73129, 1), Range32), $clone(new Range32.ptr(73552, 73561, 1), Range32), $clone(new Range32.ptr(73664, 73684, 1), Range32), $clone(new Range32.ptr(74752, 74862, 1), Range32), $clone(new Range32.ptr(92768, 92777, 1), Range32), $clone(new Range32.ptr(92864, 92873, 1), Range32), $clone(new Range32.ptr(93008, 93017, 1), Range32), $clone(new Range32.ptr(93019, 93025, 1), Range32), $clone(new Range32.ptr(93824, 93846, 1), Range32), $clone(new Range32.ptr(119488, 119507, 1), Range32), $clone(new Range32.ptr(119520, 119539, 1), Range32), $clone(new Range32.ptr(119648, 119672, 1), Range32), $clone(new Range32.ptr(120782, 120831, 1), Range32), $clone(new Range32.ptr(123200, 123209, 1), Range32), $clone(new Range32.ptr(123632, 123641, 1), Range32), $clone(new Range32.ptr(124144, 124153, 1), Range32), $clone(new Range32.ptr(125127, 125135, 1), Range32), $clone(new Range32.ptr(125264, 125273, 1), Range32), $clone(new Range32.ptr(126065, 126123, 1), Range32), $clone(new Range32.ptr(126125, 126127, 1), Range32), $clone(new Range32.ptr(126129, 126132, 1), Range32), $clone(new Range32.ptr(126209, 126253, 1), Range32), $clone(new Range32.ptr(126255, 126269, 1), Range32), $clone(new Range32.ptr(127232, 127244, 1), Range32), $clone(new Range32.ptr(130032, 130041, 1), Range32)]), 4); + _Nd = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(48, 57, 1), Range16), $clone(new Range16.ptr(1632, 1641, 1), Range16), $clone(new Range16.ptr(1776, 1785, 1), Range16), $clone(new Range16.ptr(1984, 1993, 1), Range16), $clone(new Range16.ptr(2406, 2415, 1), Range16), $clone(new Range16.ptr(2534, 2543, 1), Range16), $clone(new Range16.ptr(2662, 2671, 1), Range16), $clone(new Range16.ptr(2790, 2799, 1), Range16), $clone(new Range16.ptr(2918, 2927, 1), Range16), $clone(new Range16.ptr(3046, 3055, 1), Range16), $clone(new Range16.ptr(3174, 3183, 1), Range16), $clone(new Range16.ptr(3302, 3311, 1), Range16), $clone(new Range16.ptr(3430, 3439, 1), Range16), $clone(new Range16.ptr(3558, 3567, 1), Range16), $clone(new Range16.ptr(3664, 3673, 1), Range16), $clone(new Range16.ptr(3792, 3801, 1), Range16), $clone(new Range16.ptr(3872, 3881, 1), Range16), $clone(new Range16.ptr(4160, 4169, 1), Range16), $clone(new Range16.ptr(4240, 4249, 1), Range16), $clone(new Range16.ptr(6112, 6121, 1), Range16), $clone(new Range16.ptr(6160, 6169, 1), Range16), $clone(new Range16.ptr(6470, 6479, 1), Range16), $clone(new Range16.ptr(6608, 6617, 1), Range16), $clone(new Range16.ptr(6784, 6793, 1), Range16), $clone(new Range16.ptr(6800, 6809, 1), Range16), $clone(new Range16.ptr(6992, 7001, 1), Range16), $clone(new Range16.ptr(7088, 7097, 1), Range16), $clone(new Range16.ptr(7232, 7241, 1), Range16), $clone(new Range16.ptr(7248, 7257, 1), Range16), $clone(new Range16.ptr(42528, 42537, 1), Range16), $clone(new Range16.ptr(43216, 43225, 1), Range16), $clone(new Range16.ptr(43264, 43273, 1), Range16), $clone(new Range16.ptr(43472, 43481, 1), Range16), $clone(new Range16.ptr(43504, 43513, 1), Range16), $clone(new Range16.ptr(43600, 43609, 1), Range16), $clone(new Range16.ptr(44016, 44025, 1), Range16), $clone(new Range16.ptr(65296, 65305, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(66720, 66729, 1), Range32), $clone(new Range32.ptr(68912, 68921, 1), Range32), $clone(new Range32.ptr(69734, 69743, 1), Range32), $clone(new Range32.ptr(69872, 69881, 1), Range32), $clone(new Range32.ptr(69942, 69951, 1), Range32), $clone(new Range32.ptr(70096, 70105, 1), Range32), $clone(new Range32.ptr(70384, 70393, 1), Range32), $clone(new Range32.ptr(70736, 70745, 1), Range32), $clone(new Range32.ptr(70864, 70873, 1), Range32), $clone(new Range32.ptr(71248, 71257, 1), Range32), $clone(new Range32.ptr(71360, 71369, 1), Range32), $clone(new Range32.ptr(71472, 71481, 1), Range32), $clone(new Range32.ptr(71904, 71913, 1), Range32), $clone(new Range32.ptr(72016, 72025, 1), Range32), $clone(new Range32.ptr(72784, 72793, 1), Range32), $clone(new Range32.ptr(73040, 73049, 1), Range32), $clone(new Range32.ptr(73120, 73129, 1), Range32), $clone(new Range32.ptr(73552, 73561, 1), Range32), $clone(new Range32.ptr(92768, 92777, 1), Range32), $clone(new Range32.ptr(92864, 92873, 1), Range32), $clone(new Range32.ptr(93008, 93017, 1), Range32), $clone(new Range32.ptr(120782, 120831, 1), Range32), $clone(new Range32.ptr(123200, 123209, 1), Range32), $clone(new Range32.ptr(123632, 123641, 1), Range32), $clone(new Range32.ptr(124144, 124153, 1), Range32), $clone(new Range32.ptr(125264, 125273, 1), Range32), $clone(new Range32.ptr(130032, 130041, 1), Range32)]), 1); _Nl = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(5870, 5872, 1), Range16), $clone(new Range16.ptr(8544, 8578, 1), Range16), $clone(new Range16.ptr(8581, 8584, 1), Range16), $clone(new Range16.ptr(12295, 12321, 26), Range16), $clone(new Range16.ptr(12322, 12329, 1), Range16), $clone(new Range16.ptr(12344, 12346, 1), Range16), $clone(new Range16.ptr(42726, 42735, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65856, 65908, 1), Range32), $clone(new Range32.ptr(66369, 66378, 9), Range32), $clone(new Range32.ptr(66513, 66517, 1), Range32), $clone(new Range32.ptr(74752, 74862, 1), Range32)]), 0); - _No = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(178, 179, 1), Range16), $clone(new Range16.ptr(185, 188, 3), Range16), $clone(new Range16.ptr(189, 190, 1), Range16), $clone(new Range16.ptr(2548, 2553, 1), Range16), $clone(new Range16.ptr(2930, 2935, 1), Range16), $clone(new Range16.ptr(3056, 3058, 1), Range16), $clone(new Range16.ptr(3192, 3198, 1), Range16), $clone(new Range16.ptr(3416, 3422, 1), Range16), $clone(new Range16.ptr(3440, 3448, 1), Range16), $clone(new Range16.ptr(3882, 3891, 1), Range16), $clone(new Range16.ptr(4969, 4988, 1), Range16), $clone(new Range16.ptr(6128, 6137, 1), Range16), $clone(new Range16.ptr(6618, 8304, 1686), Range16), $clone(new Range16.ptr(8308, 8313, 1), Range16), $clone(new Range16.ptr(8320, 8329, 1), Range16), $clone(new Range16.ptr(8528, 8543, 1), Range16), $clone(new Range16.ptr(8585, 9312, 727), Range16), $clone(new Range16.ptr(9313, 9371, 1), Range16), $clone(new Range16.ptr(9450, 9471, 1), Range16), $clone(new Range16.ptr(10102, 10131, 1), Range16), $clone(new Range16.ptr(11517, 12690, 1173), Range16), $clone(new Range16.ptr(12691, 12693, 1), Range16), $clone(new Range16.ptr(12832, 12841, 1), Range16), $clone(new Range16.ptr(12872, 12879, 1), Range16), $clone(new Range16.ptr(12881, 12895, 1), Range16), $clone(new Range16.ptr(12928, 12937, 1), Range16), $clone(new Range16.ptr(12977, 12991, 1), Range16), $clone(new Range16.ptr(43056, 43061, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65799, 65843, 1), Range32), $clone(new Range32.ptr(65909, 65912, 1), Range32), $clone(new Range32.ptr(65930, 65931, 1), Range32), $clone(new Range32.ptr(66273, 66299, 1), Range32), $clone(new Range32.ptr(66336, 66339, 1), Range32), $clone(new Range32.ptr(67672, 67679, 1), Range32), $clone(new Range32.ptr(67705, 67711, 1), Range32), $clone(new Range32.ptr(67751, 67759, 1), Range32), $clone(new Range32.ptr(67835, 67839, 1), Range32), $clone(new Range32.ptr(67862, 67867, 1), Range32), $clone(new Range32.ptr(68028, 68029, 1), Range32), $clone(new Range32.ptr(68032, 68047, 1), Range32), $clone(new Range32.ptr(68050, 68095, 1), Range32), $clone(new Range32.ptr(68160, 68168, 1), Range32), $clone(new Range32.ptr(68221, 68222, 1), Range32), $clone(new Range32.ptr(68253, 68255, 1), Range32), $clone(new Range32.ptr(68331, 68335, 1), Range32), $clone(new Range32.ptr(68440, 68447, 1), Range32), $clone(new Range32.ptr(68472, 68479, 1), Range32), $clone(new Range32.ptr(68521, 68527, 1), Range32), $clone(new Range32.ptr(68858, 68863, 1), Range32), $clone(new Range32.ptr(69216, 69246, 1), Range32), $clone(new Range32.ptr(69405, 69414, 1), Range32), $clone(new Range32.ptr(69457, 69460, 1), Range32), $clone(new Range32.ptr(69573, 69579, 1), Range32), $clone(new Range32.ptr(69714, 69733, 1), Range32), $clone(new Range32.ptr(70113, 70132, 1), Range32), $clone(new Range32.ptr(71482, 71483, 1), Range32), $clone(new Range32.ptr(71914, 71922, 1), Range32), $clone(new Range32.ptr(72794, 72812, 1), Range32), $clone(new Range32.ptr(73664, 73684, 1), Range32), $clone(new Range32.ptr(93019, 93025, 1), Range32), $clone(new Range32.ptr(93824, 93846, 1), Range32), $clone(new Range32.ptr(119520, 119539, 1), Range32), $clone(new Range32.ptr(119648, 119672, 1), Range32), $clone(new Range32.ptr(125127, 125135, 1), Range32), $clone(new Range32.ptr(126065, 126123, 1), Range32), $clone(new Range32.ptr(126125, 126127, 1), Range32), $clone(new Range32.ptr(126129, 126132, 1), Range32), $clone(new Range32.ptr(126209, 126253, 1), Range32), $clone(new Range32.ptr(126255, 126269, 1), Range32), $clone(new Range32.ptr(127232, 127244, 1), Range32)]), 3); - _P = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(33, 35, 1), Range16), $clone(new Range16.ptr(37, 42, 1), Range16), $clone(new Range16.ptr(44, 47, 1), Range16), $clone(new Range16.ptr(58, 59, 1), Range16), $clone(new Range16.ptr(63, 64, 1), Range16), $clone(new Range16.ptr(91, 93, 1), Range16), $clone(new Range16.ptr(95, 123, 28), Range16), $clone(new Range16.ptr(125, 161, 36), Range16), $clone(new Range16.ptr(167, 171, 4), Range16), $clone(new Range16.ptr(182, 183, 1), Range16), $clone(new Range16.ptr(187, 191, 4), Range16), $clone(new Range16.ptr(894, 903, 9), Range16), $clone(new Range16.ptr(1370, 1375, 1), Range16), $clone(new Range16.ptr(1417, 1418, 1), Range16), $clone(new Range16.ptr(1470, 1472, 2), Range16), $clone(new Range16.ptr(1475, 1478, 3), Range16), $clone(new Range16.ptr(1523, 1524, 1), Range16), $clone(new Range16.ptr(1545, 1546, 1), Range16), $clone(new Range16.ptr(1548, 1549, 1), Range16), $clone(new Range16.ptr(1563, 1566, 3), Range16), $clone(new Range16.ptr(1567, 1642, 75), Range16), $clone(new Range16.ptr(1643, 1645, 1), Range16), $clone(new Range16.ptr(1748, 1792, 44), Range16), $clone(new Range16.ptr(1793, 1805, 1), Range16), $clone(new Range16.ptr(2039, 2041, 1), Range16), $clone(new Range16.ptr(2096, 2110, 1), Range16), $clone(new Range16.ptr(2142, 2404, 262), Range16), $clone(new Range16.ptr(2405, 2416, 11), Range16), $clone(new Range16.ptr(2557, 2678, 121), Range16), $clone(new Range16.ptr(2800, 3191, 391), Range16), $clone(new Range16.ptr(3204, 3572, 368), Range16), $clone(new Range16.ptr(3663, 3674, 11), Range16), $clone(new Range16.ptr(3675, 3844, 169), Range16), $clone(new Range16.ptr(3845, 3858, 1), Range16), $clone(new Range16.ptr(3860, 3898, 38), Range16), $clone(new Range16.ptr(3899, 3901, 1), Range16), $clone(new Range16.ptr(3973, 4048, 75), Range16), $clone(new Range16.ptr(4049, 4052, 1), Range16), $clone(new Range16.ptr(4057, 4058, 1), Range16), $clone(new Range16.ptr(4170, 4175, 1), Range16), $clone(new Range16.ptr(4347, 4960, 613), Range16), $clone(new Range16.ptr(4961, 4968, 1), Range16), $clone(new Range16.ptr(5120, 5742, 622), Range16), $clone(new Range16.ptr(5787, 5788, 1), Range16), $clone(new Range16.ptr(5867, 5869, 1), Range16), $clone(new Range16.ptr(5941, 5942, 1), Range16), $clone(new Range16.ptr(6100, 6102, 1), Range16), $clone(new Range16.ptr(6104, 6106, 1), Range16), $clone(new Range16.ptr(6144, 6154, 1), Range16), $clone(new Range16.ptr(6468, 6469, 1), Range16), $clone(new Range16.ptr(6686, 6687, 1), Range16), $clone(new Range16.ptr(6816, 6822, 1), Range16), $clone(new Range16.ptr(6824, 6829, 1), Range16), $clone(new Range16.ptr(7002, 7008, 1), Range16), $clone(new Range16.ptr(7164, 7167, 1), Range16), $clone(new Range16.ptr(7227, 7231, 1), Range16), $clone(new Range16.ptr(7294, 7295, 1), Range16), $clone(new Range16.ptr(7360, 7367, 1), Range16), $clone(new Range16.ptr(7379, 8208, 829), Range16), $clone(new Range16.ptr(8209, 8231, 1), Range16), $clone(new Range16.ptr(8240, 8259, 1), Range16), $clone(new Range16.ptr(8261, 8273, 1), Range16), $clone(new Range16.ptr(8275, 8286, 1), Range16), $clone(new Range16.ptr(8317, 8318, 1), Range16), $clone(new Range16.ptr(8333, 8334, 1), Range16), $clone(new Range16.ptr(8968, 8971, 1), Range16), $clone(new Range16.ptr(9001, 9002, 1), Range16), $clone(new Range16.ptr(10088, 10101, 1), Range16), $clone(new Range16.ptr(10181, 10182, 1), Range16), $clone(new Range16.ptr(10214, 10223, 1), Range16), $clone(new Range16.ptr(10627, 10648, 1), Range16), $clone(new Range16.ptr(10712, 10715, 1), Range16), $clone(new Range16.ptr(10748, 10749, 1), Range16), $clone(new Range16.ptr(11513, 11516, 1), Range16), $clone(new Range16.ptr(11518, 11519, 1), Range16), $clone(new Range16.ptr(11632, 11776, 144), Range16), $clone(new Range16.ptr(11777, 11822, 1), Range16), $clone(new Range16.ptr(11824, 11855, 1), Range16), $clone(new Range16.ptr(11858, 12289, 431), Range16), $clone(new Range16.ptr(12290, 12291, 1), Range16), $clone(new Range16.ptr(12296, 12305, 1), Range16), $clone(new Range16.ptr(12308, 12319, 1), Range16), $clone(new Range16.ptr(12336, 12349, 13), Range16), $clone(new Range16.ptr(12448, 12539, 91), Range16), $clone(new Range16.ptr(42238, 42239, 1), Range16), $clone(new Range16.ptr(42509, 42511, 1), Range16), $clone(new Range16.ptr(42611, 42622, 11), Range16), $clone(new Range16.ptr(42738, 42743, 1), Range16), $clone(new Range16.ptr(43124, 43127, 1), Range16), $clone(new Range16.ptr(43214, 43215, 1), Range16), $clone(new Range16.ptr(43256, 43258, 1), Range16), $clone(new Range16.ptr(43260, 43310, 50), Range16), $clone(new Range16.ptr(43311, 43359, 48), Range16), $clone(new Range16.ptr(43457, 43469, 1), Range16), $clone(new Range16.ptr(43486, 43487, 1), Range16), $clone(new Range16.ptr(43612, 43615, 1), Range16), $clone(new Range16.ptr(43742, 43743, 1), Range16), $clone(new Range16.ptr(43760, 43761, 1), Range16), $clone(new Range16.ptr(44011, 64830, 20819), Range16), $clone(new Range16.ptr(64831, 65040, 209), Range16), $clone(new Range16.ptr(65041, 65049, 1), Range16), $clone(new Range16.ptr(65072, 65106, 1), Range16), $clone(new Range16.ptr(65108, 65121, 1), Range16), $clone(new Range16.ptr(65123, 65128, 5), Range16), $clone(new Range16.ptr(65130, 65131, 1), Range16), $clone(new Range16.ptr(65281, 65283, 1), Range16), $clone(new Range16.ptr(65285, 65290, 1), Range16), $clone(new Range16.ptr(65292, 65295, 1), Range16), $clone(new Range16.ptr(65306, 65307, 1), Range16), $clone(new Range16.ptr(65311, 65312, 1), Range16), $clone(new Range16.ptr(65339, 65341, 1), Range16), $clone(new Range16.ptr(65343, 65371, 28), Range16), $clone(new Range16.ptr(65373, 65375, 2), Range16), $clone(new Range16.ptr(65376, 65381, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65792, 65794, 1), Range32), $clone(new Range32.ptr(66463, 66512, 49), Range32), $clone(new Range32.ptr(66927, 67671, 744), Range32), $clone(new Range32.ptr(67871, 67903, 32), Range32), $clone(new Range32.ptr(68176, 68184, 1), Range32), $clone(new Range32.ptr(68223, 68336, 113), Range32), $clone(new Range32.ptr(68337, 68342, 1), Range32), $clone(new Range32.ptr(68409, 68415, 1), Range32), $clone(new Range32.ptr(68505, 68508, 1), Range32), $clone(new Range32.ptr(69293, 69461, 168), Range32), $clone(new Range32.ptr(69462, 69465, 1), Range32), $clone(new Range32.ptr(69703, 69709, 1), Range32), $clone(new Range32.ptr(69819, 69820, 1), Range32), $clone(new Range32.ptr(69822, 69825, 1), Range32), $clone(new Range32.ptr(69952, 69955, 1), Range32), $clone(new Range32.ptr(70004, 70005, 1), Range32), $clone(new Range32.ptr(70085, 70088, 1), Range32), $clone(new Range32.ptr(70093, 70107, 14), Range32), $clone(new Range32.ptr(70109, 70111, 1), Range32), $clone(new Range32.ptr(70200, 70205, 1), Range32), $clone(new Range32.ptr(70313, 70731, 418), Range32), $clone(new Range32.ptr(70732, 70735, 1), Range32), $clone(new Range32.ptr(70746, 70747, 1), Range32), $clone(new Range32.ptr(70749, 70854, 105), Range32), $clone(new Range32.ptr(71105, 71127, 1), Range32), $clone(new Range32.ptr(71233, 71235, 1), Range32), $clone(new Range32.ptr(71264, 71276, 1), Range32), $clone(new Range32.ptr(71484, 71486, 1), Range32), $clone(new Range32.ptr(71739, 72004, 265), Range32), $clone(new Range32.ptr(72005, 72006, 1), Range32), $clone(new Range32.ptr(72162, 72255, 93), Range32), $clone(new Range32.ptr(72256, 72262, 1), Range32), $clone(new Range32.ptr(72346, 72348, 1), Range32), $clone(new Range32.ptr(72350, 72354, 1), Range32), $clone(new Range32.ptr(72769, 72773, 1), Range32), $clone(new Range32.ptr(72816, 72817, 1), Range32), $clone(new Range32.ptr(73463, 73464, 1), Range32), $clone(new Range32.ptr(73727, 74864, 1137), Range32), $clone(new Range32.ptr(74865, 74868, 1), Range32), $clone(new Range32.ptr(92782, 92783, 1), Range32), $clone(new Range32.ptr(92917, 92983, 66), Range32), $clone(new Range32.ptr(92984, 92987, 1), Range32), $clone(new Range32.ptr(92996, 93847, 851), Range32), $clone(new Range32.ptr(93848, 93850, 1), Range32), $clone(new Range32.ptr(94178, 113823, 19645), Range32), $clone(new Range32.ptr(121479, 121483, 1), Range32), $clone(new Range32.ptr(125278, 125279, 1), Range32)]), 11); + _No = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(178, 179, 1), Range16), $clone(new Range16.ptr(185, 188, 3), Range16), $clone(new Range16.ptr(189, 190, 1), Range16), $clone(new Range16.ptr(2548, 2553, 1), Range16), $clone(new Range16.ptr(2930, 2935, 1), Range16), $clone(new Range16.ptr(3056, 3058, 1), Range16), $clone(new Range16.ptr(3192, 3198, 1), Range16), $clone(new Range16.ptr(3416, 3422, 1), Range16), $clone(new Range16.ptr(3440, 3448, 1), Range16), $clone(new Range16.ptr(3882, 3891, 1), Range16), $clone(new Range16.ptr(4969, 4988, 1), Range16), $clone(new Range16.ptr(6128, 6137, 1), Range16), $clone(new Range16.ptr(6618, 8304, 1686), Range16), $clone(new Range16.ptr(8308, 8313, 1), Range16), $clone(new Range16.ptr(8320, 8329, 1), Range16), $clone(new Range16.ptr(8528, 8543, 1), Range16), $clone(new Range16.ptr(8585, 9312, 727), Range16), $clone(new Range16.ptr(9313, 9371, 1), Range16), $clone(new Range16.ptr(9450, 9471, 1), Range16), $clone(new Range16.ptr(10102, 10131, 1), Range16), $clone(new Range16.ptr(11517, 12690, 1173), Range16), $clone(new Range16.ptr(12691, 12693, 1), Range16), $clone(new Range16.ptr(12832, 12841, 1), Range16), $clone(new Range16.ptr(12872, 12879, 1), Range16), $clone(new Range16.ptr(12881, 12895, 1), Range16), $clone(new Range16.ptr(12928, 12937, 1), Range16), $clone(new Range16.ptr(12977, 12991, 1), Range16), $clone(new Range16.ptr(43056, 43061, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65799, 65843, 1), Range32), $clone(new Range32.ptr(65909, 65912, 1), Range32), $clone(new Range32.ptr(65930, 65931, 1), Range32), $clone(new Range32.ptr(66273, 66299, 1), Range32), $clone(new Range32.ptr(66336, 66339, 1), Range32), $clone(new Range32.ptr(67672, 67679, 1), Range32), $clone(new Range32.ptr(67705, 67711, 1), Range32), $clone(new Range32.ptr(67751, 67759, 1), Range32), $clone(new Range32.ptr(67835, 67839, 1), Range32), $clone(new Range32.ptr(67862, 67867, 1), Range32), $clone(new Range32.ptr(68028, 68029, 1), Range32), $clone(new Range32.ptr(68032, 68047, 1), Range32), $clone(new Range32.ptr(68050, 68095, 1), Range32), $clone(new Range32.ptr(68160, 68168, 1), Range32), $clone(new Range32.ptr(68221, 68222, 1), Range32), $clone(new Range32.ptr(68253, 68255, 1), Range32), $clone(new Range32.ptr(68331, 68335, 1), Range32), $clone(new Range32.ptr(68440, 68447, 1), Range32), $clone(new Range32.ptr(68472, 68479, 1), Range32), $clone(new Range32.ptr(68521, 68527, 1), Range32), $clone(new Range32.ptr(68858, 68863, 1), Range32), $clone(new Range32.ptr(69216, 69246, 1), Range32), $clone(new Range32.ptr(69405, 69414, 1), Range32), $clone(new Range32.ptr(69457, 69460, 1), Range32), $clone(new Range32.ptr(69573, 69579, 1), Range32), $clone(new Range32.ptr(69714, 69733, 1), Range32), $clone(new Range32.ptr(70113, 70132, 1), Range32), $clone(new Range32.ptr(71482, 71483, 1), Range32), $clone(new Range32.ptr(71914, 71922, 1), Range32), $clone(new Range32.ptr(72794, 72812, 1), Range32), $clone(new Range32.ptr(73664, 73684, 1), Range32), $clone(new Range32.ptr(93019, 93025, 1), Range32), $clone(new Range32.ptr(93824, 93846, 1), Range32), $clone(new Range32.ptr(119488, 119507, 1), Range32), $clone(new Range32.ptr(119520, 119539, 1), Range32), $clone(new Range32.ptr(119648, 119672, 1), Range32), $clone(new Range32.ptr(125127, 125135, 1), Range32), $clone(new Range32.ptr(126065, 126123, 1), Range32), $clone(new Range32.ptr(126125, 126127, 1), Range32), $clone(new Range32.ptr(126129, 126132, 1), Range32), $clone(new Range32.ptr(126209, 126253, 1), Range32), $clone(new Range32.ptr(126255, 126269, 1), Range32), $clone(new Range32.ptr(127232, 127244, 1), Range32)]), 3); + _P = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(33, 35, 1), Range16), $clone(new Range16.ptr(37, 42, 1), Range16), $clone(new Range16.ptr(44, 47, 1), Range16), $clone(new Range16.ptr(58, 59, 1), Range16), $clone(new Range16.ptr(63, 64, 1), Range16), $clone(new Range16.ptr(91, 93, 1), Range16), $clone(new Range16.ptr(95, 123, 28), Range16), $clone(new Range16.ptr(125, 161, 36), Range16), $clone(new Range16.ptr(167, 171, 4), Range16), $clone(new Range16.ptr(182, 183, 1), Range16), $clone(new Range16.ptr(187, 191, 4), Range16), $clone(new Range16.ptr(894, 903, 9), Range16), $clone(new Range16.ptr(1370, 1375, 1), Range16), $clone(new Range16.ptr(1417, 1418, 1), Range16), $clone(new Range16.ptr(1470, 1472, 2), Range16), $clone(new Range16.ptr(1475, 1478, 3), Range16), $clone(new Range16.ptr(1523, 1524, 1), Range16), $clone(new Range16.ptr(1545, 1546, 1), Range16), $clone(new Range16.ptr(1548, 1549, 1), Range16), $clone(new Range16.ptr(1563, 1565, 2), Range16), $clone(new Range16.ptr(1566, 1567, 1), Range16), $clone(new Range16.ptr(1642, 1645, 1), Range16), $clone(new Range16.ptr(1748, 1792, 44), Range16), $clone(new Range16.ptr(1793, 1805, 1), Range16), $clone(new Range16.ptr(2039, 2041, 1), Range16), $clone(new Range16.ptr(2096, 2110, 1), Range16), $clone(new Range16.ptr(2142, 2404, 262), Range16), $clone(new Range16.ptr(2405, 2416, 11), Range16), $clone(new Range16.ptr(2557, 2678, 121), Range16), $clone(new Range16.ptr(2800, 3191, 391), Range16), $clone(new Range16.ptr(3204, 3572, 368), Range16), $clone(new Range16.ptr(3663, 3674, 11), Range16), $clone(new Range16.ptr(3675, 3844, 169), Range16), $clone(new Range16.ptr(3845, 3858, 1), Range16), $clone(new Range16.ptr(3860, 3898, 38), Range16), $clone(new Range16.ptr(3899, 3901, 1), Range16), $clone(new Range16.ptr(3973, 4048, 75), Range16), $clone(new Range16.ptr(4049, 4052, 1), Range16), $clone(new Range16.ptr(4057, 4058, 1), Range16), $clone(new Range16.ptr(4170, 4175, 1), Range16), $clone(new Range16.ptr(4347, 4960, 613), Range16), $clone(new Range16.ptr(4961, 4968, 1), Range16), $clone(new Range16.ptr(5120, 5742, 622), Range16), $clone(new Range16.ptr(5787, 5788, 1), Range16), $clone(new Range16.ptr(5867, 5869, 1), Range16), $clone(new Range16.ptr(5941, 5942, 1), Range16), $clone(new Range16.ptr(6100, 6102, 1), Range16), $clone(new Range16.ptr(6104, 6106, 1), Range16), $clone(new Range16.ptr(6144, 6154, 1), Range16), $clone(new Range16.ptr(6468, 6469, 1), Range16), $clone(new Range16.ptr(6686, 6687, 1), Range16), $clone(new Range16.ptr(6816, 6822, 1), Range16), $clone(new Range16.ptr(6824, 6829, 1), Range16), $clone(new Range16.ptr(7002, 7008, 1), Range16), $clone(new Range16.ptr(7037, 7038, 1), Range16), $clone(new Range16.ptr(7164, 7167, 1), Range16), $clone(new Range16.ptr(7227, 7231, 1), Range16), $clone(new Range16.ptr(7294, 7295, 1), Range16), $clone(new Range16.ptr(7360, 7367, 1), Range16), $clone(new Range16.ptr(7379, 8208, 829), Range16), $clone(new Range16.ptr(8209, 8231, 1), Range16), $clone(new Range16.ptr(8240, 8259, 1), Range16), $clone(new Range16.ptr(8261, 8273, 1), Range16), $clone(new Range16.ptr(8275, 8286, 1), Range16), $clone(new Range16.ptr(8317, 8318, 1), Range16), $clone(new Range16.ptr(8333, 8334, 1), Range16), $clone(new Range16.ptr(8968, 8971, 1), Range16), $clone(new Range16.ptr(9001, 9002, 1), Range16), $clone(new Range16.ptr(10088, 10101, 1), Range16), $clone(new Range16.ptr(10181, 10182, 1), Range16), $clone(new Range16.ptr(10214, 10223, 1), Range16), $clone(new Range16.ptr(10627, 10648, 1), Range16), $clone(new Range16.ptr(10712, 10715, 1), Range16), $clone(new Range16.ptr(10748, 10749, 1), Range16), $clone(new Range16.ptr(11513, 11516, 1), Range16), $clone(new Range16.ptr(11518, 11519, 1), Range16), $clone(new Range16.ptr(11632, 11776, 144), Range16), $clone(new Range16.ptr(11777, 11822, 1), Range16), $clone(new Range16.ptr(11824, 11855, 1), Range16), $clone(new Range16.ptr(11858, 11869, 1), Range16), $clone(new Range16.ptr(12289, 12291, 1), Range16), $clone(new Range16.ptr(12296, 12305, 1), Range16), $clone(new Range16.ptr(12308, 12319, 1), Range16), $clone(new Range16.ptr(12336, 12349, 13), Range16), $clone(new Range16.ptr(12448, 12539, 91), Range16), $clone(new Range16.ptr(42238, 42239, 1), Range16), $clone(new Range16.ptr(42509, 42511, 1), Range16), $clone(new Range16.ptr(42611, 42622, 11), Range16), $clone(new Range16.ptr(42738, 42743, 1), Range16), $clone(new Range16.ptr(43124, 43127, 1), Range16), $clone(new Range16.ptr(43214, 43215, 1), Range16), $clone(new Range16.ptr(43256, 43258, 1), Range16), $clone(new Range16.ptr(43260, 43310, 50), Range16), $clone(new Range16.ptr(43311, 43359, 48), Range16), $clone(new Range16.ptr(43457, 43469, 1), Range16), $clone(new Range16.ptr(43486, 43487, 1), Range16), $clone(new Range16.ptr(43612, 43615, 1), Range16), $clone(new Range16.ptr(43742, 43743, 1), Range16), $clone(new Range16.ptr(43760, 43761, 1), Range16), $clone(new Range16.ptr(44011, 64830, 20819), Range16), $clone(new Range16.ptr(64831, 65040, 209), Range16), $clone(new Range16.ptr(65041, 65049, 1), Range16), $clone(new Range16.ptr(65072, 65106, 1), Range16), $clone(new Range16.ptr(65108, 65121, 1), Range16), $clone(new Range16.ptr(65123, 65128, 5), Range16), $clone(new Range16.ptr(65130, 65131, 1), Range16), $clone(new Range16.ptr(65281, 65283, 1), Range16), $clone(new Range16.ptr(65285, 65290, 1), Range16), $clone(new Range16.ptr(65292, 65295, 1), Range16), $clone(new Range16.ptr(65306, 65307, 1), Range16), $clone(new Range16.ptr(65311, 65312, 1), Range16), $clone(new Range16.ptr(65339, 65341, 1), Range16), $clone(new Range16.ptr(65343, 65371, 28), Range16), $clone(new Range16.ptr(65373, 65375, 2), Range16), $clone(new Range16.ptr(65376, 65381, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65792, 65794, 1), Range32), $clone(new Range32.ptr(66463, 66512, 49), Range32), $clone(new Range32.ptr(66927, 67671, 744), Range32), $clone(new Range32.ptr(67871, 67903, 32), Range32), $clone(new Range32.ptr(68176, 68184, 1), Range32), $clone(new Range32.ptr(68223, 68336, 113), Range32), $clone(new Range32.ptr(68337, 68342, 1), Range32), $clone(new Range32.ptr(68409, 68415, 1), Range32), $clone(new Range32.ptr(68505, 68508, 1), Range32), $clone(new Range32.ptr(69293, 69461, 168), Range32), $clone(new Range32.ptr(69462, 69465, 1), Range32), $clone(new Range32.ptr(69510, 69513, 1), Range32), $clone(new Range32.ptr(69703, 69709, 1), Range32), $clone(new Range32.ptr(69819, 69820, 1), Range32), $clone(new Range32.ptr(69822, 69825, 1), Range32), $clone(new Range32.ptr(69952, 69955, 1), Range32), $clone(new Range32.ptr(70004, 70005, 1), Range32), $clone(new Range32.ptr(70085, 70088, 1), Range32), $clone(new Range32.ptr(70093, 70107, 14), Range32), $clone(new Range32.ptr(70109, 70111, 1), Range32), $clone(new Range32.ptr(70200, 70205, 1), Range32), $clone(new Range32.ptr(70313, 70731, 418), Range32), $clone(new Range32.ptr(70732, 70735, 1), Range32), $clone(new Range32.ptr(70746, 70747, 1), Range32), $clone(new Range32.ptr(70749, 70854, 105), Range32), $clone(new Range32.ptr(71105, 71127, 1), Range32), $clone(new Range32.ptr(71233, 71235, 1), Range32), $clone(new Range32.ptr(71264, 71276, 1), Range32), $clone(new Range32.ptr(71353, 71484, 131), Range32), $clone(new Range32.ptr(71485, 71486, 1), Range32), $clone(new Range32.ptr(71739, 72004, 265), Range32), $clone(new Range32.ptr(72005, 72006, 1), Range32), $clone(new Range32.ptr(72162, 72255, 93), Range32), $clone(new Range32.ptr(72256, 72262, 1), Range32), $clone(new Range32.ptr(72346, 72348, 1), Range32), $clone(new Range32.ptr(72350, 72354, 1), Range32), $clone(new Range32.ptr(72448, 72457, 1), Range32), $clone(new Range32.ptr(72769, 72773, 1), Range32), $clone(new Range32.ptr(72816, 72817, 1), Range32), $clone(new Range32.ptr(73463, 73464, 1), Range32), $clone(new Range32.ptr(73539, 73551, 1), Range32), $clone(new Range32.ptr(73727, 74864, 1137), Range32), $clone(new Range32.ptr(74865, 74868, 1), Range32), $clone(new Range32.ptr(77809, 77810, 1), Range32), $clone(new Range32.ptr(92782, 92783, 1), Range32), $clone(new Range32.ptr(92917, 92983, 66), Range32), $clone(new Range32.ptr(92984, 92987, 1), Range32), $clone(new Range32.ptr(92996, 93847, 851), Range32), $clone(new Range32.ptr(93848, 93850, 1), Range32), $clone(new Range32.ptr(94178, 113823, 19645), Range32), $clone(new Range32.ptr(121479, 121483, 1), Range32), $clone(new Range32.ptr(125278, 125279, 1), Range32)]), 11); _Pc = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(95, 8255, 8160), Range16), $clone(new Range16.ptr(8256, 8276, 20), Range16), $clone(new Range16.ptr(65075, 65076, 1), Range16), $clone(new Range16.ptr(65101, 65103, 1), Range16), $clone(new Range16.ptr(65343, 65343, 1), Range16)]), sliceType$1.nil, 0); - _Pd = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(45, 1418, 1373), Range16), $clone(new Range16.ptr(1470, 5120, 3650), Range16), $clone(new Range16.ptr(6150, 8208, 2058), Range16), $clone(new Range16.ptr(8209, 8213, 1), Range16), $clone(new Range16.ptr(11799, 11802, 3), Range16), $clone(new Range16.ptr(11834, 11835, 1), Range16), $clone(new Range16.ptr(11840, 12316, 476), Range16), $clone(new Range16.ptr(12336, 12448, 112), Range16), $clone(new Range16.ptr(65073, 65074, 1), Range16), $clone(new Range16.ptr(65112, 65123, 11), Range16), $clone(new Range16.ptr(65293, 65293, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(69293, 69293, 1), Range32)]), 0); - _Pe = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(41, 93, 52), Range16), $clone(new Range16.ptr(125, 3899, 3774), Range16), $clone(new Range16.ptr(3901, 5788, 1887), Range16), $clone(new Range16.ptr(8262, 8318, 56), Range16), $clone(new Range16.ptr(8334, 8969, 635), Range16), $clone(new Range16.ptr(8971, 9002, 31), Range16), $clone(new Range16.ptr(10089, 10101, 2), Range16), $clone(new Range16.ptr(10182, 10215, 33), Range16), $clone(new Range16.ptr(10217, 10223, 2), Range16), $clone(new Range16.ptr(10628, 10648, 2), Range16), $clone(new Range16.ptr(10713, 10715, 2), Range16), $clone(new Range16.ptr(10749, 11811, 1062), Range16), $clone(new Range16.ptr(11813, 11817, 2), Range16), $clone(new Range16.ptr(12297, 12305, 2), Range16), $clone(new Range16.ptr(12309, 12315, 2), Range16), $clone(new Range16.ptr(12318, 12319, 1), Range16), $clone(new Range16.ptr(64830, 65048, 218), Range16), $clone(new Range16.ptr(65078, 65092, 2), Range16), $clone(new Range16.ptr(65096, 65114, 18), Range16), $clone(new Range16.ptr(65116, 65118, 2), Range16), $clone(new Range16.ptr(65289, 65341, 52), Range16), $clone(new Range16.ptr(65373, 65379, 3), Range16)]), sliceType$1.nil, 1); + _Pd = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(45, 1418, 1373), Range16), $clone(new Range16.ptr(1470, 5120, 3650), Range16), $clone(new Range16.ptr(6150, 8208, 2058), Range16), $clone(new Range16.ptr(8209, 8213, 1), Range16), $clone(new Range16.ptr(11799, 11802, 3), Range16), $clone(new Range16.ptr(11834, 11835, 1), Range16), $clone(new Range16.ptr(11840, 11869, 29), Range16), $clone(new Range16.ptr(12316, 12336, 20), Range16), $clone(new Range16.ptr(12448, 65073, 52625), Range16), $clone(new Range16.ptr(65074, 65112, 38), Range16), $clone(new Range16.ptr(65123, 65293, 170), Range16)]), new sliceType$1([$clone(new Range32.ptr(69293, 69293, 1), Range32)]), 0); + _Pe = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(41, 93, 52), Range16), $clone(new Range16.ptr(125, 3899, 3774), Range16), $clone(new Range16.ptr(3901, 5788, 1887), Range16), $clone(new Range16.ptr(8262, 8318, 56), Range16), $clone(new Range16.ptr(8334, 8969, 635), Range16), $clone(new Range16.ptr(8971, 9002, 31), Range16), $clone(new Range16.ptr(10089, 10101, 2), Range16), $clone(new Range16.ptr(10182, 10215, 33), Range16), $clone(new Range16.ptr(10217, 10223, 2), Range16), $clone(new Range16.ptr(10628, 10648, 2), Range16), $clone(new Range16.ptr(10713, 10715, 2), Range16), $clone(new Range16.ptr(10749, 11811, 1062), Range16), $clone(new Range16.ptr(11813, 11817, 2), Range16), $clone(new Range16.ptr(11862, 11868, 2), Range16), $clone(new Range16.ptr(12297, 12305, 2), Range16), $clone(new Range16.ptr(12309, 12315, 2), Range16), $clone(new Range16.ptr(12318, 12319, 1), Range16), $clone(new Range16.ptr(64830, 65048, 218), Range16), $clone(new Range16.ptr(65078, 65092, 2), Range16), $clone(new Range16.ptr(65096, 65114, 18), Range16), $clone(new Range16.ptr(65116, 65118, 2), Range16), $clone(new Range16.ptr(65289, 65341, 52), Range16), $clone(new Range16.ptr(65373, 65379, 3), Range16)]), sliceType$1.nil, 1); _Pf = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(187, 8217, 8030), Range16), $clone(new Range16.ptr(8221, 8250, 29), Range16), $clone(new Range16.ptr(11779, 11781, 2), Range16), $clone(new Range16.ptr(11786, 11789, 3), Range16), $clone(new Range16.ptr(11805, 11809, 4), Range16)]), sliceType$1.nil, 0); _Pi = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(171, 8216, 8045), Range16), $clone(new Range16.ptr(8219, 8220, 1), Range16), $clone(new Range16.ptr(8223, 8249, 26), Range16), $clone(new Range16.ptr(11778, 11780, 2), Range16), $clone(new Range16.ptr(11785, 11788, 3), Range16), $clone(new Range16.ptr(11804, 11808, 4), Range16)]), sliceType$1.nil, 0); - _Po = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(33, 35, 1), Range16), $clone(new Range16.ptr(37, 39, 1), Range16), $clone(new Range16.ptr(42, 46, 2), Range16), $clone(new Range16.ptr(47, 58, 11), Range16), $clone(new Range16.ptr(59, 63, 4), Range16), $clone(new Range16.ptr(64, 92, 28), Range16), $clone(new Range16.ptr(161, 167, 6), Range16), $clone(new Range16.ptr(182, 183, 1), Range16), $clone(new Range16.ptr(191, 894, 703), Range16), $clone(new Range16.ptr(903, 1370, 467), Range16), $clone(new Range16.ptr(1371, 1375, 1), Range16), $clone(new Range16.ptr(1417, 1472, 55), Range16), $clone(new Range16.ptr(1475, 1478, 3), Range16), $clone(new Range16.ptr(1523, 1524, 1), Range16), $clone(new Range16.ptr(1545, 1546, 1), Range16), $clone(new Range16.ptr(1548, 1549, 1), Range16), $clone(new Range16.ptr(1563, 1566, 3), Range16), $clone(new Range16.ptr(1567, 1642, 75), Range16), $clone(new Range16.ptr(1643, 1645, 1), Range16), $clone(new Range16.ptr(1748, 1792, 44), Range16), $clone(new Range16.ptr(1793, 1805, 1), Range16), $clone(new Range16.ptr(2039, 2041, 1), Range16), $clone(new Range16.ptr(2096, 2110, 1), Range16), $clone(new Range16.ptr(2142, 2404, 262), Range16), $clone(new Range16.ptr(2405, 2416, 11), Range16), $clone(new Range16.ptr(2557, 2678, 121), Range16), $clone(new Range16.ptr(2800, 3191, 391), Range16), $clone(new Range16.ptr(3204, 3572, 368), Range16), $clone(new Range16.ptr(3663, 3674, 11), Range16), $clone(new Range16.ptr(3675, 3844, 169), Range16), $clone(new Range16.ptr(3845, 3858, 1), Range16), $clone(new Range16.ptr(3860, 3973, 113), Range16), $clone(new Range16.ptr(4048, 4052, 1), Range16), $clone(new Range16.ptr(4057, 4058, 1), Range16), $clone(new Range16.ptr(4170, 4175, 1), Range16), $clone(new Range16.ptr(4347, 4960, 613), Range16), $clone(new Range16.ptr(4961, 4968, 1), Range16), $clone(new Range16.ptr(5742, 5867, 125), Range16), $clone(new Range16.ptr(5868, 5869, 1), Range16), $clone(new Range16.ptr(5941, 5942, 1), Range16), $clone(new Range16.ptr(6100, 6102, 1), Range16), $clone(new Range16.ptr(6104, 6106, 1), Range16), $clone(new Range16.ptr(6144, 6149, 1), Range16), $clone(new Range16.ptr(6151, 6154, 1), Range16), $clone(new Range16.ptr(6468, 6469, 1), Range16), $clone(new Range16.ptr(6686, 6687, 1), Range16), $clone(new Range16.ptr(6816, 6822, 1), Range16), $clone(new Range16.ptr(6824, 6829, 1), Range16), $clone(new Range16.ptr(7002, 7008, 1), Range16), $clone(new Range16.ptr(7164, 7167, 1), Range16), $clone(new Range16.ptr(7227, 7231, 1), Range16), $clone(new Range16.ptr(7294, 7295, 1), Range16), $clone(new Range16.ptr(7360, 7367, 1), Range16), $clone(new Range16.ptr(7379, 8214, 835), Range16), $clone(new Range16.ptr(8215, 8224, 9), Range16), $clone(new Range16.ptr(8225, 8231, 1), Range16), $clone(new Range16.ptr(8240, 8248, 1), Range16), $clone(new Range16.ptr(8251, 8254, 1), Range16), $clone(new Range16.ptr(8257, 8259, 1), Range16), $clone(new Range16.ptr(8263, 8273, 1), Range16), $clone(new Range16.ptr(8275, 8277, 2), Range16), $clone(new Range16.ptr(8278, 8286, 1), Range16), $clone(new Range16.ptr(11513, 11516, 1), Range16), $clone(new Range16.ptr(11518, 11519, 1), Range16), $clone(new Range16.ptr(11632, 11776, 144), Range16), $clone(new Range16.ptr(11777, 11782, 5), Range16), $clone(new Range16.ptr(11783, 11784, 1), Range16), $clone(new Range16.ptr(11787, 11790, 3), Range16), $clone(new Range16.ptr(11791, 11798, 1), Range16), $clone(new Range16.ptr(11800, 11801, 1), Range16), $clone(new Range16.ptr(11803, 11806, 3), Range16), $clone(new Range16.ptr(11807, 11818, 11), Range16), $clone(new Range16.ptr(11819, 11822, 1), Range16), $clone(new Range16.ptr(11824, 11833, 1), Range16), $clone(new Range16.ptr(11836, 11839, 1), Range16), $clone(new Range16.ptr(11841, 11843, 2), Range16), $clone(new Range16.ptr(11844, 11855, 1), Range16), $clone(new Range16.ptr(11858, 12289, 431), Range16), $clone(new Range16.ptr(12290, 12291, 1), Range16), $clone(new Range16.ptr(12349, 12539, 190), Range16), $clone(new Range16.ptr(42238, 42239, 1), Range16), $clone(new Range16.ptr(42509, 42511, 1), Range16), $clone(new Range16.ptr(42611, 42622, 11), Range16), $clone(new Range16.ptr(42738, 42743, 1), Range16), $clone(new Range16.ptr(43124, 43127, 1), Range16), $clone(new Range16.ptr(43214, 43215, 1), Range16), $clone(new Range16.ptr(43256, 43258, 1), Range16), $clone(new Range16.ptr(43260, 43310, 50), Range16), $clone(new Range16.ptr(43311, 43359, 48), Range16), $clone(new Range16.ptr(43457, 43469, 1), Range16), $clone(new Range16.ptr(43486, 43487, 1), Range16), $clone(new Range16.ptr(43612, 43615, 1), Range16), $clone(new Range16.ptr(43742, 43743, 1), Range16), $clone(new Range16.ptr(43760, 43761, 1), Range16), $clone(new Range16.ptr(44011, 65040, 21029), Range16), $clone(new Range16.ptr(65041, 65046, 1), Range16), $clone(new Range16.ptr(65049, 65072, 23), Range16), $clone(new Range16.ptr(65093, 65094, 1), Range16), $clone(new Range16.ptr(65097, 65100, 1), Range16), $clone(new Range16.ptr(65104, 65106, 1), Range16), $clone(new Range16.ptr(65108, 65111, 1), Range16), $clone(new Range16.ptr(65119, 65121, 1), Range16), $clone(new Range16.ptr(65128, 65130, 2), Range16), $clone(new Range16.ptr(65131, 65281, 150), Range16), $clone(new Range16.ptr(65282, 65283, 1), Range16), $clone(new Range16.ptr(65285, 65287, 1), Range16), $clone(new Range16.ptr(65290, 65294, 2), Range16), $clone(new Range16.ptr(65295, 65306, 11), Range16), $clone(new Range16.ptr(65307, 65311, 4), Range16), $clone(new Range16.ptr(65312, 65340, 28), Range16), $clone(new Range16.ptr(65377, 65380, 3), Range16), $clone(new Range16.ptr(65381, 65381, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65792, 65794, 1), Range32), $clone(new Range32.ptr(66463, 66512, 49), Range32), $clone(new Range32.ptr(66927, 67671, 744), Range32), $clone(new Range32.ptr(67871, 67903, 32), Range32), $clone(new Range32.ptr(68176, 68184, 1), Range32), $clone(new Range32.ptr(68223, 68336, 113), Range32), $clone(new Range32.ptr(68337, 68342, 1), Range32), $clone(new Range32.ptr(68409, 68415, 1), Range32), $clone(new Range32.ptr(68505, 68508, 1), Range32), $clone(new Range32.ptr(69461, 69465, 1), Range32), $clone(new Range32.ptr(69703, 69709, 1), Range32), $clone(new Range32.ptr(69819, 69820, 1), Range32), $clone(new Range32.ptr(69822, 69825, 1), Range32), $clone(new Range32.ptr(69952, 69955, 1), Range32), $clone(new Range32.ptr(70004, 70005, 1), Range32), $clone(new Range32.ptr(70085, 70088, 1), Range32), $clone(new Range32.ptr(70093, 70107, 14), Range32), $clone(new Range32.ptr(70109, 70111, 1), Range32), $clone(new Range32.ptr(70200, 70205, 1), Range32), $clone(new Range32.ptr(70313, 70731, 418), Range32), $clone(new Range32.ptr(70732, 70735, 1), Range32), $clone(new Range32.ptr(70746, 70747, 1), Range32), $clone(new Range32.ptr(70749, 70854, 105), Range32), $clone(new Range32.ptr(71105, 71127, 1), Range32), $clone(new Range32.ptr(71233, 71235, 1), Range32), $clone(new Range32.ptr(71264, 71276, 1), Range32), $clone(new Range32.ptr(71484, 71486, 1), Range32), $clone(new Range32.ptr(71739, 72004, 265), Range32), $clone(new Range32.ptr(72005, 72006, 1), Range32), $clone(new Range32.ptr(72162, 72255, 93), Range32), $clone(new Range32.ptr(72256, 72262, 1), Range32), $clone(new Range32.ptr(72346, 72348, 1), Range32), $clone(new Range32.ptr(72350, 72354, 1), Range32), $clone(new Range32.ptr(72769, 72773, 1), Range32), $clone(new Range32.ptr(72816, 72817, 1), Range32), $clone(new Range32.ptr(73463, 73464, 1), Range32), $clone(new Range32.ptr(73727, 74864, 1137), Range32), $clone(new Range32.ptr(74865, 74868, 1), Range32), $clone(new Range32.ptr(92782, 92783, 1), Range32), $clone(new Range32.ptr(92917, 92983, 66), Range32), $clone(new Range32.ptr(92984, 92987, 1), Range32), $clone(new Range32.ptr(92996, 93847, 851), Range32), $clone(new Range32.ptr(93848, 93850, 1), Range32), $clone(new Range32.ptr(94178, 113823, 19645), Range32), $clone(new Range32.ptr(121479, 121483, 1), Range32), $clone(new Range32.ptr(125278, 125279, 1), Range32)]), 8); - _Ps = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(40, 91, 51), Range16), $clone(new Range16.ptr(123, 3898, 3775), Range16), $clone(new Range16.ptr(3900, 5787, 1887), Range16), $clone(new Range16.ptr(8218, 8222, 4), Range16), $clone(new Range16.ptr(8261, 8317, 56), Range16), $clone(new Range16.ptr(8333, 8968, 635), Range16), $clone(new Range16.ptr(8970, 9001, 31), Range16), $clone(new Range16.ptr(10088, 10100, 2), Range16), $clone(new Range16.ptr(10181, 10214, 33), Range16), $clone(new Range16.ptr(10216, 10222, 2), Range16), $clone(new Range16.ptr(10627, 10647, 2), Range16), $clone(new Range16.ptr(10712, 10714, 2), Range16), $clone(new Range16.ptr(10748, 11810, 1062), Range16), $clone(new Range16.ptr(11812, 11816, 2), Range16), $clone(new Range16.ptr(11842, 12296, 454), Range16), $clone(new Range16.ptr(12298, 12304, 2), Range16), $clone(new Range16.ptr(12308, 12314, 2), Range16), $clone(new Range16.ptr(12317, 64831, 52514), Range16), $clone(new Range16.ptr(65047, 65077, 30), Range16), $clone(new Range16.ptr(65079, 65091, 2), Range16), $clone(new Range16.ptr(65095, 65113, 18), Range16), $clone(new Range16.ptr(65115, 65117, 2), Range16), $clone(new Range16.ptr(65288, 65339, 51), Range16), $clone(new Range16.ptr(65371, 65375, 4), Range16), $clone(new Range16.ptr(65378, 65378, 1), Range16)]), sliceType$1.nil, 1); - _S = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(36, 43, 7), Range16), $clone(new Range16.ptr(60, 62, 1), Range16), $clone(new Range16.ptr(94, 96, 2), Range16), $clone(new Range16.ptr(124, 126, 2), Range16), $clone(new Range16.ptr(162, 166, 1), Range16), $clone(new Range16.ptr(168, 169, 1), Range16), $clone(new Range16.ptr(172, 174, 2), Range16), $clone(new Range16.ptr(175, 177, 1), Range16), $clone(new Range16.ptr(180, 184, 4), Range16), $clone(new Range16.ptr(215, 247, 32), Range16), $clone(new Range16.ptr(706, 709, 1), Range16), $clone(new Range16.ptr(722, 735, 1), Range16), $clone(new Range16.ptr(741, 747, 1), Range16), $clone(new Range16.ptr(749, 751, 2), Range16), $clone(new Range16.ptr(752, 767, 1), Range16), $clone(new Range16.ptr(885, 900, 15), Range16), $clone(new Range16.ptr(901, 1014, 113), Range16), $clone(new Range16.ptr(1154, 1421, 267), Range16), $clone(new Range16.ptr(1422, 1423, 1), Range16), $clone(new Range16.ptr(1542, 1544, 1), Range16), $clone(new Range16.ptr(1547, 1550, 3), Range16), $clone(new Range16.ptr(1551, 1758, 207), Range16), $clone(new Range16.ptr(1769, 1789, 20), Range16), $clone(new Range16.ptr(1790, 2038, 248), Range16), $clone(new Range16.ptr(2046, 2047, 1), Range16), $clone(new Range16.ptr(2546, 2547, 1), Range16), $clone(new Range16.ptr(2554, 2555, 1), Range16), $clone(new Range16.ptr(2801, 2928, 127), Range16), $clone(new Range16.ptr(3059, 3066, 1), Range16), $clone(new Range16.ptr(3199, 3407, 208), Range16), $clone(new Range16.ptr(3449, 3647, 198), Range16), $clone(new Range16.ptr(3841, 3843, 1), Range16), $clone(new Range16.ptr(3859, 3861, 2), Range16), $clone(new Range16.ptr(3862, 3863, 1), Range16), $clone(new Range16.ptr(3866, 3871, 1), Range16), $clone(new Range16.ptr(3892, 3896, 2), Range16), $clone(new Range16.ptr(4030, 4037, 1), Range16), $clone(new Range16.ptr(4039, 4044, 1), Range16), $clone(new Range16.ptr(4046, 4047, 1), Range16), $clone(new Range16.ptr(4053, 4056, 1), Range16), $clone(new Range16.ptr(4254, 4255, 1), Range16), $clone(new Range16.ptr(5008, 5017, 1), Range16), $clone(new Range16.ptr(5741, 6107, 366), Range16), $clone(new Range16.ptr(6464, 6622, 158), Range16), $clone(new Range16.ptr(6623, 6655, 1), Range16), $clone(new Range16.ptr(7009, 7018, 1), Range16), $clone(new Range16.ptr(7028, 7036, 1), Range16), $clone(new Range16.ptr(8125, 8127, 2), Range16), $clone(new Range16.ptr(8128, 8129, 1), Range16), $clone(new Range16.ptr(8141, 8143, 1), Range16), $clone(new Range16.ptr(8157, 8159, 1), Range16), $clone(new Range16.ptr(8173, 8175, 1), Range16), $clone(new Range16.ptr(8189, 8190, 1), Range16), $clone(new Range16.ptr(8260, 8274, 14), Range16), $clone(new Range16.ptr(8314, 8316, 1), Range16), $clone(new Range16.ptr(8330, 8332, 1), Range16), $clone(new Range16.ptr(8352, 8383, 1), Range16), $clone(new Range16.ptr(8448, 8449, 1), Range16), $clone(new Range16.ptr(8451, 8454, 1), Range16), $clone(new Range16.ptr(8456, 8457, 1), Range16), $clone(new Range16.ptr(8468, 8470, 2), Range16), $clone(new Range16.ptr(8471, 8472, 1), Range16), $clone(new Range16.ptr(8478, 8483, 1), Range16), $clone(new Range16.ptr(8485, 8489, 2), Range16), $clone(new Range16.ptr(8494, 8506, 12), Range16), $clone(new Range16.ptr(8507, 8512, 5), Range16), $clone(new Range16.ptr(8513, 8516, 1), Range16), $clone(new Range16.ptr(8522, 8525, 1), Range16), $clone(new Range16.ptr(8527, 8586, 59), Range16), $clone(new Range16.ptr(8587, 8592, 5), Range16), $clone(new Range16.ptr(8593, 8967, 1), Range16), $clone(new Range16.ptr(8972, 9000, 1), Range16), $clone(new Range16.ptr(9003, 9254, 1), Range16), $clone(new Range16.ptr(9280, 9290, 1), Range16), $clone(new Range16.ptr(9372, 9449, 1), Range16), $clone(new Range16.ptr(9472, 10087, 1), Range16), $clone(new Range16.ptr(10132, 10180, 1), Range16), $clone(new Range16.ptr(10183, 10213, 1), Range16), $clone(new Range16.ptr(10224, 10626, 1), Range16), $clone(new Range16.ptr(10649, 10711, 1), Range16), $clone(new Range16.ptr(10716, 10747, 1), Range16), $clone(new Range16.ptr(10750, 11123, 1), Range16), $clone(new Range16.ptr(11126, 11157, 1), Range16), $clone(new Range16.ptr(11159, 11263, 1), Range16), $clone(new Range16.ptr(11493, 11498, 1), Range16), $clone(new Range16.ptr(11856, 11857, 1), Range16), $clone(new Range16.ptr(11904, 11929, 1), Range16), $clone(new Range16.ptr(11931, 12019, 1), Range16), $clone(new Range16.ptr(12032, 12245, 1), Range16), $clone(new Range16.ptr(12272, 12283, 1), Range16), $clone(new Range16.ptr(12292, 12306, 14), Range16), $clone(new Range16.ptr(12307, 12320, 13), Range16), $clone(new Range16.ptr(12342, 12343, 1), Range16), $clone(new Range16.ptr(12350, 12351, 1), Range16), $clone(new Range16.ptr(12443, 12444, 1), Range16), $clone(new Range16.ptr(12688, 12689, 1), Range16), $clone(new Range16.ptr(12694, 12703, 1), Range16), $clone(new Range16.ptr(12736, 12771, 1), Range16), $clone(new Range16.ptr(12800, 12830, 1), Range16), $clone(new Range16.ptr(12842, 12871, 1), Range16), $clone(new Range16.ptr(12880, 12896, 16), Range16), $clone(new Range16.ptr(12897, 12927, 1), Range16), $clone(new Range16.ptr(12938, 12976, 1), Range16), $clone(new Range16.ptr(12992, 13311, 1), Range16), $clone(new Range16.ptr(19904, 19967, 1), Range16), $clone(new Range16.ptr(42128, 42182, 1), Range16), $clone(new Range16.ptr(42752, 42774, 1), Range16), $clone(new Range16.ptr(42784, 42785, 1), Range16), $clone(new Range16.ptr(42889, 42890, 1), Range16), $clone(new Range16.ptr(43048, 43051, 1), Range16), $clone(new Range16.ptr(43062, 43065, 1), Range16), $clone(new Range16.ptr(43639, 43641, 1), Range16), $clone(new Range16.ptr(43867, 43882, 15), Range16), $clone(new Range16.ptr(43883, 64297, 20414), Range16), $clone(new Range16.ptr(64434, 64449, 1), Range16), $clone(new Range16.ptr(65020, 65021, 1), Range16), $clone(new Range16.ptr(65122, 65124, 2), Range16), $clone(new Range16.ptr(65125, 65126, 1), Range16), $clone(new Range16.ptr(65129, 65284, 155), Range16), $clone(new Range16.ptr(65291, 65308, 17), Range16), $clone(new Range16.ptr(65309, 65310, 1), Range16), $clone(new Range16.ptr(65342, 65344, 2), Range16), $clone(new Range16.ptr(65372, 65374, 2), Range16), $clone(new Range16.ptr(65504, 65510, 1), Range16), $clone(new Range16.ptr(65512, 65518, 1), Range16), $clone(new Range16.ptr(65532, 65533, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65847, 65855, 1), Range32), $clone(new Range32.ptr(65913, 65929, 1), Range32), $clone(new Range32.ptr(65932, 65934, 1), Range32), $clone(new Range32.ptr(65936, 65948, 1), Range32), $clone(new Range32.ptr(65952, 66000, 48), Range32), $clone(new Range32.ptr(66001, 66044, 1), Range32), $clone(new Range32.ptr(67703, 67704, 1), Range32), $clone(new Range32.ptr(68296, 71487, 3191), Range32), $clone(new Range32.ptr(73685, 73713, 1), Range32), $clone(new Range32.ptr(92988, 92991, 1), Range32), $clone(new Range32.ptr(92997, 113820, 20823), Range32), $clone(new Range32.ptr(118784, 119029, 1), Range32), $clone(new Range32.ptr(119040, 119078, 1), Range32), $clone(new Range32.ptr(119081, 119140, 1), Range32), $clone(new Range32.ptr(119146, 119148, 1), Range32), $clone(new Range32.ptr(119171, 119172, 1), Range32), $clone(new Range32.ptr(119180, 119209, 1), Range32), $clone(new Range32.ptr(119214, 119272, 1), Range32), $clone(new Range32.ptr(119296, 119361, 1), Range32), $clone(new Range32.ptr(119365, 119552, 187), Range32), $clone(new Range32.ptr(119553, 119638, 1), Range32), $clone(new Range32.ptr(120513, 120539, 26), Range32), $clone(new Range32.ptr(120571, 120597, 26), Range32), $clone(new Range32.ptr(120629, 120655, 26), Range32), $clone(new Range32.ptr(120687, 120713, 26), Range32), $clone(new Range32.ptr(120745, 120771, 26), Range32), $clone(new Range32.ptr(120832, 121343, 1), Range32), $clone(new Range32.ptr(121399, 121402, 1), Range32), $clone(new Range32.ptr(121453, 121460, 1), Range32), $clone(new Range32.ptr(121462, 121475, 1), Range32), $clone(new Range32.ptr(121477, 121478, 1), Range32), $clone(new Range32.ptr(123215, 123647, 432), Range32), $clone(new Range32.ptr(126124, 126128, 4), Range32), $clone(new Range32.ptr(126254, 126704, 450), Range32), $clone(new Range32.ptr(126705, 126976, 271), Range32), $clone(new Range32.ptr(126977, 127019, 1), Range32), $clone(new Range32.ptr(127024, 127123, 1), Range32), $clone(new Range32.ptr(127136, 127150, 1), Range32), $clone(new Range32.ptr(127153, 127167, 1), Range32), $clone(new Range32.ptr(127169, 127183, 1), Range32), $clone(new Range32.ptr(127185, 127221, 1), Range32), $clone(new Range32.ptr(127245, 127405, 1), Range32), $clone(new Range32.ptr(127462, 127490, 1), Range32), $clone(new Range32.ptr(127504, 127547, 1), Range32), $clone(new Range32.ptr(127552, 127560, 1), Range32), $clone(new Range32.ptr(127568, 127569, 1), Range32), $clone(new Range32.ptr(127584, 127589, 1), Range32), $clone(new Range32.ptr(127744, 128727, 1), Range32), $clone(new Range32.ptr(128736, 128748, 1), Range32), $clone(new Range32.ptr(128752, 128764, 1), Range32), $clone(new Range32.ptr(128768, 128883, 1), Range32), $clone(new Range32.ptr(128896, 128984, 1), Range32), $clone(new Range32.ptr(128992, 129003, 1), Range32), $clone(new Range32.ptr(129024, 129035, 1), Range32), $clone(new Range32.ptr(129040, 129095, 1), Range32), $clone(new Range32.ptr(129104, 129113, 1), Range32), $clone(new Range32.ptr(129120, 129159, 1), Range32), $clone(new Range32.ptr(129168, 129197, 1), Range32), $clone(new Range32.ptr(129200, 129201, 1), Range32), $clone(new Range32.ptr(129280, 129400, 1), Range32), $clone(new Range32.ptr(129402, 129483, 1), Range32), $clone(new Range32.ptr(129485, 129619, 1), Range32), $clone(new Range32.ptr(129632, 129645, 1), Range32), $clone(new Range32.ptr(129648, 129652, 1), Range32), $clone(new Range32.ptr(129656, 129658, 1), Range32), $clone(new Range32.ptr(129664, 129670, 1), Range32), $clone(new Range32.ptr(129680, 129704, 1), Range32), $clone(new Range32.ptr(129712, 129718, 1), Range32), $clone(new Range32.ptr(129728, 129730, 1), Range32), $clone(new Range32.ptr(129744, 129750, 1), Range32), $clone(new Range32.ptr(129792, 129938, 1), Range32), $clone(new Range32.ptr(129940, 129994, 1), Range32)]), 10); - _Sc = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(36, 162, 126), Range16), $clone(new Range16.ptr(163, 165, 1), Range16), $clone(new Range16.ptr(1423, 1547, 124), Range16), $clone(new Range16.ptr(2046, 2047, 1), Range16), $clone(new Range16.ptr(2546, 2547, 1), Range16), $clone(new Range16.ptr(2555, 2801, 246), Range16), $clone(new Range16.ptr(3065, 3647, 582), Range16), $clone(new Range16.ptr(6107, 8352, 2245), Range16), $clone(new Range16.ptr(8353, 8383, 1), Range16), $clone(new Range16.ptr(43064, 65020, 21956), Range16), $clone(new Range16.ptr(65129, 65284, 155), Range16), $clone(new Range16.ptr(65504, 65505, 1), Range16), $clone(new Range16.ptr(65509, 65510, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(73693, 73696, 1), Range32), $clone(new Range32.ptr(123647, 126128, 2481), Range32)]), 2); - _Sk = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(94, 96, 2), Range16), $clone(new Range16.ptr(168, 175, 7), Range16), $clone(new Range16.ptr(180, 184, 4), Range16), $clone(new Range16.ptr(706, 709, 1), Range16), $clone(new Range16.ptr(722, 735, 1), Range16), $clone(new Range16.ptr(741, 747, 1), Range16), $clone(new Range16.ptr(749, 751, 2), Range16), $clone(new Range16.ptr(752, 767, 1), Range16), $clone(new Range16.ptr(885, 900, 15), Range16), $clone(new Range16.ptr(901, 8125, 7224), Range16), $clone(new Range16.ptr(8127, 8129, 1), Range16), $clone(new Range16.ptr(8141, 8143, 1), Range16), $clone(new Range16.ptr(8157, 8159, 1), Range16), $clone(new Range16.ptr(8173, 8175, 1), Range16), $clone(new Range16.ptr(8189, 8190, 1), Range16), $clone(new Range16.ptr(12443, 12444, 1), Range16), $clone(new Range16.ptr(42752, 42774, 1), Range16), $clone(new Range16.ptr(42784, 42785, 1), Range16), $clone(new Range16.ptr(42889, 42890, 1), Range16), $clone(new Range16.ptr(43867, 43882, 15), Range16), $clone(new Range16.ptr(43883, 64434, 20551), Range16), $clone(new Range16.ptr(64435, 64449, 1), Range16), $clone(new Range16.ptr(65342, 65344, 2), Range16), $clone(new Range16.ptr(65507, 65507, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(127995, 127999, 1), Range32)]), 3); + _Po = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(33, 35, 1), Range16), $clone(new Range16.ptr(37, 39, 1), Range16), $clone(new Range16.ptr(42, 46, 2), Range16), $clone(new Range16.ptr(47, 58, 11), Range16), $clone(new Range16.ptr(59, 63, 4), Range16), $clone(new Range16.ptr(64, 92, 28), Range16), $clone(new Range16.ptr(161, 167, 6), Range16), $clone(new Range16.ptr(182, 183, 1), Range16), $clone(new Range16.ptr(191, 894, 703), Range16), $clone(new Range16.ptr(903, 1370, 467), Range16), $clone(new Range16.ptr(1371, 1375, 1), Range16), $clone(new Range16.ptr(1417, 1472, 55), Range16), $clone(new Range16.ptr(1475, 1478, 3), Range16), $clone(new Range16.ptr(1523, 1524, 1), Range16), $clone(new Range16.ptr(1545, 1546, 1), Range16), $clone(new Range16.ptr(1548, 1549, 1), Range16), $clone(new Range16.ptr(1563, 1565, 2), Range16), $clone(new Range16.ptr(1566, 1567, 1), Range16), $clone(new Range16.ptr(1642, 1645, 1), Range16), $clone(new Range16.ptr(1748, 1792, 44), Range16), $clone(new Range16.ptr(1793, 1805, 1), Range16), $clone(new Range16.ptr(2039, 2041, 1), Range16), $clone(new Range16.ptr(2096, 2110, 1), Range16), $clone(new Range16.ptr(2142, 2404, 262), Range16), $clone(new Range16.ptr(2405, 2416, 11), Range16), $clone(new Range16.ptr(2557, 2678, 121), Range16), $clone(new Range16.ptr(2800, 3191, 391), Range16), $clone(new Range16.ptr(3204, 3572, 368), Range16), $clone(new Range16.ptr(3663, 3674, 11), Range16), $clone(new Range16.ptr(3675, 3844, 169), Range16), $clone(new Range16.ptr(3845, 3858, 1), Range16), $clone(new Range16.ptr(3860, 3973, 113), Range16), $clone(new Range16.ptr(4048, 4052, 1), Range16), $clone(new Range16.ptr(4057, 4058, 1), Range16), $clone(new Range16.ptr(4170, 4175, 1), Range16), $clone(new Range16.ptr(4347, 4960, 613), Range16), $clone(new Range16.ptr(4961, 4968, 1), Range16), $clone(new Range16.ptr(5742, 5867, 125), Range16), $clone(new Range16.ptr(5868, 5869, 1), Range16), $clone(new Range16.ptr(5941, 5942, 1), Range16), $clone(new Range16.ptr(6100, 6102, 1), Range16), $clone(new Range16.ptr(6104, 6106, 1), Range16), $clone(new Range16.ptr(6144, 6149, 1), Range16), $clone(new Range16.ptr(6151, 6154, 1), Range16), $clone(new Range16.ptr(6468, 6469, 1), Range16), $clone(new Range16.ptr(6686, 6687, 1), Range16), $clone(new Range16.ptr(6816, 6822, 1), Range16), $clone(new Range16.ptr(6824, 6829, 1), Range16), $clone(new Range16.ptr(7002, 7008, 1), Range16), $clone(new Range16.ptr(7037, 7038, 1), Range16), $clone(new Range16.ptr(7164, 7167, 1), Range16), $clone(new Range16.ptr(7227, 7231, 1), Range16), $clone(new Range16.ptr(7294, 7295, 1), Range16), $clone(new Range16.ptr(7360, 7367, 1), Range16), $clone(new Range16.ptr(7379, 8214, 835), Range16), $clone(new Range16.ptr(8215, 8224, 9), Range16), $clone(new Range16.ptr(8225, 8231, 1), Range16), $clone(new Range16.ptr(8240, 8248, 1), Range16), $clone(new Range16.ptr(8251, 8254, 1), Range16), $clone(new Range16.ptr(8257, 8259, 1), Range16), $clone(new Range16.ptr(8263, 8273, 1), Range16), $clone(new Range16.ptr(8275, 8277, 2), Range16), $clone(new Range16.ptr(8278, 8286, 1), Range16), $clone(new Range16.ptr(11513, 11516, 1), Range16), $clone(new Range16.ptr(11518, 11519, 1), Range16), $clone(new Range16.ptr(11632, 11776, 144), Range16), $clone(new Range16.ptr(11777, 11782, 5), Range16), $clone(new Range16.ptr(11783, 11784, 1), Range16), $clone(new Range16.ptr(11787, 11790, 3), Range16), $clone(new Range16.ptr(11791, 11798, 1), Range16), $clone(new Range16.ptr(11800, 11801, 1), Range16), $clone(new Range16.ptr(11803, 11806, 3), Range16), $clone(new Range16.ptr(11807, 11818, 11), Range16), $clone(new Range16.ptr(11819, 11822, 1), Range16), $clone(new Range16.ptr(11824, 11833, 1), Range16), $clone(new Range16.ptr(11836, 11839, 1), Range16), $clone(new Range16.ptr(11841, 11843, 2), Range16), $clone(new Range16.ptr(11844, 11855, 1), Range16), $clone(new Range16.ptr(11858, 11860, 1), Range16), $clone(new Range16.ptr(12289, 12291, 1), Range16), $clone(new Range16.ptr(12349, 12539, 190), Range16), $clone(new Range16.ptr(42238, 42239, 1), Range16), $clone(new Range16.ptr(42509, 42511, 1), Range16), $clone(new Range16.ptr(42611, 42622, 11), Range16), $clone(new Range16.ptr(42738, 42743, 1), Range16), $clone(new Range16.ptr(43124, 43127, 1), Range16), $clone(new Range16.ptr(43214, 43215, 1), Range16), $clone(new Range16.ptr(43256, 43258, 1), Range16), $clone(new Range16.ptr(43260, 43310, 50), Range16), $clone(new Range16.ptr(43311, 43359, 48), Range16), $clone(new Range16.ptr(43457, 43469, 1), Range16), $clone(new Range16.ptr(43486, 43487, 1), Range16), $clone(new Range16.ptr(43612, 43615, 1), Range16), $clone(new Range16.ptr(43742, 43743, 1), Range16), $clone(new Range16.ptr(43760, 43761, 1), Range16), $clone(new Range16.ptr(44011, 65040, 21029), Range16), $clone(new Range16.ptr(65041, 65046, 1), Range16), $clone(new Range16.ptr(65049, 65072, 23), Range16), $clone(new Range16.ptr(65093, 65094, 1), Range16), $clone(new Range16.ptr(65097, 65100, 1), Range16), $clone(new Range16.ptr(65104, 65106, 1), Range16), $clone(new Range16.ptr(65108, 65111, 1), Range16), $clone(new Range16.ptr(65119, 65121, 1), Range16), $clone(new Range16.ptr(65128, 65130, 2), Range16), $clone(new Range16.ptr(65131, 65281, 150), Range16), $clone(new Range16.ptr(65282, 65283, 1), Range16), $clone(new Range16.ptr(65285, 65287, 1), Range16), $clone(new Range16.ptr(65290, 65294, 2), Range16), $clone(new Range16.ptr(65295, 65306, 11), Range16), $clone(new Range16.ptr(65307, 65311, 4), Range16), $clone(new Range16.ptr(65312, 65340, 28), Range16), $clone(new Range16.ptr(65377, 65380, 3), Range16), $clone(new Range16.ptr(65381, 65381, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65792, 65794, 1), Range32), $clone(new Range32.ptr(66463, 66512, 49), Range32), $clone(new Range32.ptr(66927, 67671, 744), Range32), $clone(new Range32.ptr(67871, 67903, 32), Range32), $clone(new Range32.ptr(68176, 68184, 1), Range32), $clone(new Range32.ptr(68223, 68336, 113), Range32), $clone(new Range32.ptr(68337, 68342, 1), Range32), $clone(new Range32.ptr(68409, 68415, 1), Range32), $clone(new Range32.ptr(68505, 68508, 1), Range32), $clone(new Range32.ptr(69461, 69465, 1), Range32), $clone(new Range32.ptr(69510, 69513, 1), Range32), $clone(new Range32.ptr(69703, 69709, 1), Range32), $clone(new Range32.ptr(69819, 69820, 1), Range32), $clone(new Range32.ptr(69822, 69825, 1), Range32), $clone(new Range32.ptr(69952, 69955, 1), Range32), $clone(new Range32.ptr(70004, 70005, 1), Range32), $clone(new Range32.ptr(70085, 70088, 1), Range32), $clone(new Range32.ptr(70093, 70107, 14), Range32), $clone(new Range32.ptr(70109, 70111, 1), Range32), $clone(new Range32.ptr(70200, 70205, 1), Range32), $clone(new Range32.ptr(70313, 70731, 418), Range32), $clone(new Range32.ptr(70732, 70735, 1), Range32), $clone(new Range32.ptr(70746, 70747, 1), Range32), $clone(new Range32.ptr(70749, 70854, 105), Range32), $clone(new Range32.ptr(71105, 71127, 1), Range32), $clone(new Range32.ptr(71233, 71235, 1), Range32), $clone(new Range32.ptr(71264, 71276, 1), Range32), $clone(new Range32.ptr(71353, 71484, 131), Range32), $clone(new Range32.ptr(71485, 71486, 1), Range32), $clone(new Range32.ptr(71739, 72004, 265), Range32), $clone(new Range32.ptr(72005, 72006, 1), Range32), $clone(new Range32.ptr(72162, 72255, 93), Range32), $clone(new Range32.ptr(72256, 72262, 1), Range32), $clone(new Range32.ptr(72346, 72348, 1), Range32), $clone(new Range32.ptr(72350, 72354, 1), Range32), $clone(new Range32.ptr(72448, 72457, 1), Range32), $clone(new Range32.ptr(72769, 72773, 1), Range32), $clone(new Range32.ptr(72816, 72817, 1), Range32), $clone(new Range32.ptr(73463, 73464, 1), Range32), $clone(new Range32.ptr(73539, 73551, 1), Range32), $clone(new Range32.ptr(73727, 74864, 1137), Range32), $clone(new Range32.ptr(74865, 74868, 1), Range32), $clone(new Range32.ptr(77809, 77810, 1), Range32), $clone(new Range32.ptr(92782, 92783, 1), Range32), $clone(new Range32.ptr(92917, 92983, 66), Range32), $clone(new Range32.ptr(92984, 92987, 1), Range32), $clone(new Range32.ptr(92996, 93847, 851), Range32), $clone(new Range32.ptr(93848, 93850, 1), Range32), $clone(new Range32.ptr(94178, 113823, 19645), Range32), $clone(new Range32.ptr(121479, 121483, 1), Range32), $clone(new Range32.ptr(125278, 125279, 1), Range32)]), 8); + _Ps = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(40, 91, 51), Range16), $clone(new Range16.ptr(123, 3898, 3775), Range16), $clone(new Range16.ptr(3900, 5787, 1887), Range16), $clone(new Range16.ptr(8218, 8222, 4), Range16), $clone(new Range16.ptr(8261, 8317, 56), Range16), $clone(new Range16.ptr(8333, 8968, 635), Range16), $clone(new Range16.ptr(8970, 9001, 31), Range16), $clone(new Range16.ptr(10088, 10100, 2), Range16), $clone(new Range16.ptr(10181, 10214, 33), Range16), $clone(new Range16.ptr(10216, 10222, 2), Range16), $clone(new Range16.ptr(10627, 10647, 2), Range16), $clone(new Range16.ptr(10712, 10714, 2), Range16), $clone(new Range16.ptr(10748, 11810, 1062), Range16), $clone(new Range16.ptr(11812, 11816, 2), Range16), $clone(new Range16.ptr(11842, 11861, 19), Range16), $clone(new Range16.ptr(11863, 11867, 2), Range16), $clone(new Range16.ptr(12296, 12304, 2), Range16), $clone(new Range16.ptr(12308, 12314, 2), Range16), $clone(new Range16.ptr(12317, 64831, 52514), Range16), $clone(new Range16.ptr(65047, 65077, 30), Range16), $clone(new Range16.ptr(65079, 65091, 2), Range16), $clone(new Range16.ptr(65095, 65113, 18), Range16), $clone(new Range16.ptr(65115, 65117, 2), Range16), $clone(new Range16.ptr(65288, 65339, 51), Range16), $clone(new Range16.ptr(65371, 65375, 4), Range16), $clone(new Range16.ptr(65378, 65378, 1), Range16)]), sliceType$1.nil, 1); + _S = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(36, 43, 7), Range16), $clone(new Range16.ptr(60, 62, 1), Range16), $clone(new Range16.ptr(94, 96, 2), Range16), $clone(new Range16.ptr(124, 126, 2), Range16), $clone(new Range16.ptr(162, 166, 1), Range16), $clone(new Range16.ptr(168, 169, 1), Range16), $clone(new Range16.ptr(172, 174, 2), Range16), $clone(new Range16.ptr(175, 177, 1), Range16), $clone(new Range16.ptr(180, 184, 4), Range16), $clone(new Range16.ptr(215, 247, 32), Range16), $clone(new Range16.ptr(706, 709, 1), Range16), $clone(new Range16.ptr(722, 735, 1), Range16), $clone(new Range16.ptr(741, 747, 1), Range16), $clone(new Range16.ptr(749, 751, 2), Range16), $clone(new Range16.ptr(752, 767, 1), Range16), $clone(new Range16.ptr(885, 900, 15), Range16), $clone(new Range16.ptr(901, 1014, 113), Range16), $clone(new Range16.ptr(1154, 1421, 267), Range16), $clone(new Range16.ptr(1422, 1423, 1), Range16), $clone(new Range16.ptr(1542, 1544, 1), Range16), $clone(new Range16.ptr(1547, 1550, 3), Range16), $clone(new Range16.ptr(1551, 1758, 207), Range16), $clone(new Range16.ptr(1769, 1789, 20), Range16), $clone(new Range16.ptr(1790, 2038, 248), Range16), $clone(new Range16.ptr(2046, 2047, 1), Range16), $clone(new Range16.ptr(2184, 2546, 362), Range16), $clone(new Range16.ptr(2547, 2554, 7), Range16), $clone(new Range16.ptr(2555, 2801, 246), Range16), $clone(new Range16.ptr(2928, 3059, 131), Range16), $clone(new Range16.ptr(3060, 3066, 1), Range16), $clone(new Range16.ptr(3199, 3407, 208), Range16), $clone(new Range16.ptr(3449, 3647, 198), Range16), $clone(new Range16.ptr(3841, 3843, 1), Range16), $clone(new Range16.ptr(3859, 3861, 2), Range16), $clone(new Range16.ptr(3862, 3863, 1), Range16), $clone(new Range16.ptr(3866, 3871, 1), Range16), $clone(new Range16.ptr(3892, 3896, 2), Range16), $clone(new Range16.ptr(4030, 4037, 1), Range16), $clone(new Range16.ptr(4039, 4044, 1), Range16), $clone(new Range16.ptr(4046, 4047, 1), Range16), $clone(new Range16.ptr(4053, 4056, 1), Range16), $clone(new Range16.ptr(4254, 4255, 1), Range16), $clone(new Range16.ptr(5008, 5017, 1), Range16), $clone(new Range16.ptr(5741, 6107, 366), Range16), $clone(new Range16.ptr(6464, 6622, 158), Range16), $clone(new Range16.ptr(6623, 6655, 1), Range16), $clone(new Range16.ptr(7009, 7018, 1), Range16), $clone(new Range16.ptr(7028, 7036, 1), Range16), $clone(new Range16.ptr(8125, 8127, 2), Range16), $clone(new Range16.ptr(8128, 8129, 1), Range16), $clone(new Range16.ptr(8141, 8143, 1), Range16), $clone(new Range16.ptr(8157, 8159, 1), Range16), $clone(new Range16.ptr(8173, 8175, 1), Range16), $clone(new Range16.ptr(8189, 8190, 1), Range16), $clone(new Range16.ptr(8260, 8274, 14), Range16), $clone(new Range16.ptr(8314, 8316, 1), Range16), $clone(new Range16.ptr(8330, 8332, 1), Range16), $clone(new Range16.ptr(8352, 8384, 1), Range16), $clone(new Range16.ptr(8448, 8449, 1), Range16), $clone(new Range16.ptr(8451, 8454, 1), Range16), $clone(new Range16.ptr(8456, 8457, 1), Range16), $clone(new Range16.ptr(8468, 8470, 2), Range16), $clone(new Range16.ptr(8471, 8472, 1), Range16), $clone(new Range16.ptr(8478, 8483, 1), Range16), $clone(new Range16.ptr(8485, 8489, 2), Range16), $clone(new Range16.ptr(8494, 8506, 12), Range16), $clone(new Range16.ptr(8507, 8512, 5), Range16), $clone(new Range16.ptr(8513, 8516, 1), Range16), $clone(new Range16.ptr(8522, 8525, 1), Range16), $clone(new Range16.ptr(8527, 8586, 59), Range16), $clone(new Range16.ptr(8587, 8592, 5), Range16), $clone(new Range16.ptr(8593, 8967, 1), Range16), $clone(new Range16.ptr(8972, 9000, 1), Range16), $clone(new Range16.ptr(9003, 9254, 1), Range16), $clone(new Range16.ptr(9280, 9290, 1), Range16), $clone(new Range16.ptr(9372, 9449, 1), Range16), $clone(new Range16.ptr(9472, 10087, 1), Range16), $clone(new Range16.ptr(10132, 10180, 1), Range16), $clone(new Range16.ptr(10183, 10213, 1), Range16), $clone(new Range16.ptr(10224, 10626, 1), Range16), $clone(new Range16.ptr(10649, 10711, 1), Range16), $clone(new Range16.ptr(10716, 10747, 1), Range16), $clone(new Range16.ptr(10750, 11123, 1), Range16), $clone(new Range16.ptr(11126, 11157, 1), Range16), $clone(new Range16.ptr(11159, 11263, 1), Range16), $clone(new Range16.ptr(11493, 11498, 1), Range16), $clone(new Range16.ptr(11856, 11857, 1), Range16), $clone(new Range16.ptr(11904, 11929, 1), Range16), $clone(new Range16.ptr(11931, 12019, 1), Range16), $clone(new Range16.ptr(12032, 12245, 1), Range16), $clone(new Range16.ptr(12272, 12283, 1), Range16), $clone(new Range16.ptr(12292, 12306, 14), Range16), $clone(new Range16.ptr(12307, 12320, 13), Range16), $clone(new Range16.ptr(12342, 12343, 1), Range16), $clone(new Range16.ptr(12350, 12351, 1), Range16), $clone(new Range16.ptr(12443, 12444, 1), Range16), $clone(new Range16.ptr(12688, 12689, 1), Range16), $clone(new Range16.ptr(12694, 12703, 1), Range16), $clone(new Range16.ptr(12736, 12771, 1), Range16), $clone(new Range16.ptr(12800, 12830, 1), Range16), $clone(new Range16.ptr(12842, 12871, 1), Range16), $clone(new Range16.ptr(12880, 12896, 16), Range16), $clone(new Range16.ptr(12897, 12927, 1), Range16), $clone(new Range16.ptr(12938, 12976, 1), Range16), $clone(new Range16.ptr(12992, 13311, 1), Range16), $clone(new Range16.ptr(19904, 19967, 1), Range16), $clone(new Range16.ptr(42128, 42182, 1), Range16), $clone(new Range16.ptr(42752, 42774, 1), Range16), $clone(new Range16.ptr(42784, 42785, 1), Range16), $clone(new Range16.ptr(42889, 42890, 1), Range16), $clone(new Range16.ptr(43048, 43051, 1), Range16), $clone(new Range16.ptr(43062, 43065, 1), Range16), $clone(new Range16.ptr(43639, 43641, 1), Range16), $clone(new Range16.ptr(43867, 43882, 15), Range16), $clone(new Range16.ptr(43883, 64297, 20414), Range16), $clone(new Range16.ptr(64434, 64450, 1), Range16), $clone(new Range16.ptr(64832, 64847, 1), Range16), $clone(new Range16.ptr(64975, 65020, 45), Range16), $clone(new Range16.ptr(65021, 65023, 1), Range16), $clone(new Range16.ptr(65122, 65124, 2), Range16), $clone(new Range16.ptr(65125, 65126, 1), Range16), $clone(new Range16.ptr(65129, 65284, 155), Range16), $clone(new Range16.ptr(65291, 65308, 17), Range16), $clone(new Range16.ptr(65309, 65310, 1), Range16), $clone(new Range16.ptr(65342, 65344, 2), Range16), $clone(new Range16.ptr(65372, 65374, 2), Range16), $clone(new Range16.ptr(65504, 65510, 1), Range16), $clone(new Range16.ptr(65512, 65518, 1), Range16), $clone(new Range16.ptr(65532, 65533, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65847, 65855, 1), Range32), $clone(new Range32.ptr(65913, 65929, 1), Range32), $clone(new Range32.ptr(65932, 65934, 1), Range32), $clone(new Range32.ptr(65936, 65948, 1), Range32), $clone(new Range32.ptr(65952, 66000, 48), Range32), $clone(new Range32.ptr(66001, 66044, 1), Range32), $clone(new Range32.ptr(67703, 67704, 1), Range32), $clone(new Range32.ptr(68296, 71487, 3191), Range32), $clone(new Range32.ptr(73685, 73713, 1), Range32), $clone(new Range32.ptr(92988, 92991, 1), Range32), $clone(new Range32.ptr(92997, 113820, 20823), Range32), $clone(new Range32.ptr(118608, 118723, 1), Range32), $clone(new Range32.ptr(118784, 119029, 1), Range32), $clone(new Range32.ptr(119040, 119078, 1), Range32), $clone(new Range32.ptr(119081, 119140, 1), Range32), $clone(new Range32.ptr(119146, 119148, 1), Range32), $clone(new Range32.ptr(119171, 119172, 1), Range32), $clone(new Range32.ptr(119180, 119209, 1), Range32), $clone(new Range32.ptr(119214, 119274, 1), Range32), $clone(new Range32.ptr(119296, 119361, 1), Range32), $clone(new Range32.ptr(119365, 119552, 187), Range32), $clone(new Range32.ptr(119553, 119638, 1), Range32), $clone(new Range32.ptr(120513, 120539, 26), Range32), $clone(new Range32.ptr(120571, 120597, 26), Range32), $clone(new Range32.ptr(120629, 120655, 26), Range32), $clone(new Range32.ptr(120687, 120713, 26), Range32), $clone(new Range32.ptr(120745, 120771, 26), Range32), $clone(new Range32.ptr(120832, 121343, 1), Range32), $clone(new Range32.ptr(121399, 121402, 1), Range32), $clone(new Range32.ptr(121453, 121460, 1), Range32), $clone(new Range32.ptr(121462, 121475, 1), Range32), $clone(new Range32.ptr(121477, 121478, 1), Range32), $clone(new Range32.ptr(123215, 123647, 432), Range32), $clone(new Range32.ptr(126124, 126128, 4), Range32), $clone(new Range32.ptr(126254, 126704, 450), Range32), $clone(new Range32.ptr(126705, 126976, 271), Range32), $clone(new Range32.ptr(126977, 127019, 1), Range32), $clone(new Range32.ptr(127024, 127123, 1), Range32), $clone(new Range32.ptr(127136, 127150, 1), Range32), $clone(new Range32.ptr(127153, 127167, 1), Range32), $clone(new Range32.ptr(127169, 127183, 1), Range32), $clone(new Range32.ptr(127185, 127221, 1), Range32), $clone(new Range32.ptr(127245, 127405, 1), Range32), $clone(new Range32.ptr(127462, 127490, 1), Range32), $clone(new Range32.ptr(127504, 127547, 1), Range32), $clone(new Range32.ptr(127552, 127560, 1), Range32), $clone(new Range32.ptr(127568, 127569, 1), Range32), $clone(new Range32.ptr(127584, 127589, 1), Range32), $clone(new Range32.ptr(127744, 128727, 1), Range32), $clone(new Range32.ptr(128732, 128748, 1), Range32), $clone(new Range32.ptr(128752, 128764, 1), Range32), $clone(new Range32.ptr(128768, 128886, 1), Range32), $clone(new Range32.ptr(128891, 128985, 1), Range32), $clone(new Range32.ptr(128992, 129003, 1), Range32), $clone(new Range32.ptr(129008, 129024, 16), Range32), $clone(new Range32.ptr(129025, 129035, 1), Range32), $clone(new Range32.ptr(129040, 129095, 1), Range32), $clone(new Range32.ptr(129104, 129113, 1), Range32), $clone(new Range32.ptr(129120, 129159, 1), Range32), $clone(new Range32.ptr(129168, 129197, 1), Range32), $clone(new Range32.ptr(129200, 129201, 1), Range32), $clone(new Range32.ptr(129280, 129619, 1), Range32), $clone(new Range32.ptr(129632, 129645, 1), Range32), $clone(new Range32.ptr(129648, 129660, 1), Range32), $clone(new Range32.ptr(129664, 129672, 1), Range32), $clone(new Range32.ptr(129680, 129725, 1), Range32), $clone(new Range32.ptr(129727, 129733, 1), Range32), $clone(new Range32.ptr(129742, 129755, 1), Range32), $clone(new Range32.ptr(129760, 129768, 1), Range32), $clone(new Range32.ptr(129776, 129784, 1), Range32), $clone(new Range32.ptr(129792, 129938, 1), Range32), $clone(new Range32.ptr(129940, 129994, 1), Range32)]), 10); + _Sc = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(36, 162, 126), Range16), $clone(new Range16.ptr(163, 165, 1), Range16), $clone(new Range16.ptr(1423, 1547, 124), Range16), $clone(new Range16.ptr(2046, 2047, 1), Range16), $clone(new Range16.ptr(2546, 2547, 1), Range16), $clone(new Range16.ptr(2555, 2801, 246), Range16), $clone(new Range16.ptr(3065, 3647, 582), Range16), $clone(new Range16.ptr(6107, 8352, 2245), Range16), $clone(new Range16.ptr(8353, 8384, 1), Range16), $clone(new Range16.ptr(43064, 65020, 21956), Range16), $clone(new Range16.ptr(65129, 65284, 155), Range16), $clone(new Range16.ptr(65504, 65505, 1), Range16), $clone(new Range16.ptr(65509, 65510, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(73693, 73696, 1), Range32), $clone(new Range32.ptr(123647, 126128, 2481), Range32)]), 2); + _Sk = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(94, 96, 2), Range16), $clone(new Range16.ptr(168, 175, 7), Range16), $clone(new Range16.ptr(180, 184, 4), Range16), $clone(new Range16.ptr(706, 709, 1), Range16), $clone(new Range16.ptr(722, 735, 1), Range16), $clone(new Range16.ptr(741, 747, 1), Range16), $clone(new Range16.ptr(749, 751, 2), Range16), $clone(new Range16.ptr(752, 767, 1), Range16), $clone(new Range16.ptr(885, 900, 15), Range16), $clone(new Range16.ptr(901, 2184, 1283), Range16), $clone(new Range16.ptr(8125, 8127, 2), Range16), $clone(new Range16.ptr(8128, 8129, 1), Range16), $clone(new Range16.ptr(8141, 8143, 1), Range16), $clone(new Range16.ptr(8157, 8159, 1), Range16), $clone(new Range16.ptr(8173, 8175, 1), Range16), $clone(new Range16.ptr(8189, 8190, 1), Range16), $clone(new Range16.ptr(12443, 12444, 1), Range16), $clone(new Range16.ptr(42752, 42774, 1), Range16), $clone(new Range16.ptr(42784, 42785, 1), Range16), $clone(new Range16.ptr(42889, 42890, 1), Range16), $clone(new Range16.ptr(43867, 43882, 15), Range16), $clone(new Range16.ptr(43883, 64434, 20551), Range16), $clone(new Range16.ptr(64435, 64450, 1), Range16), $clone(new Range16.ptr(65342, 65344, 2), Range16), $clone(new Range16.ptr(65507, 65507, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(127995, 127999, 1), Range32)]), 3); _Sm = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(43, 60, 17), Range16), $clone(new Range16.ptr(61, 62, 1), Range16), $clone(new Range16.ptr(124, 126, 2), Range16), $clone(new Range16.ptr(172, 177, 5), Range16), $clone(new Range16.ptr(215, 247, 32), Range16), $clone(new Range16.ptr(1014, 1542, 528), Range16), $clone(new Range16.ptr(1543, 1544, 1), Range16), $clone(new Range16.ptr(8260, 8274, 14), Range16), $clone(new Range16.ptr(8314, 8316, 1), Range16), $clone(new Range16.ptr(8330, 8332, 1), Range16), $clone(new Range16.ptr(8472, 8512, 40), Range16), $clone(new Range16.ptr(8513, 8516, 1), Range16), $clone(new Range16.ptr(8523, 8592, 69), Range16), $clone(new Range16.ptr(8593, 8596, 1), Range16), $clone(new Range16.ptr(8602, 8603, 1), Range16), $clone(new Range16.ptr(8608, 8614, 3), Range16), $clone(new Range16.ptr(8622, 8654, 32), Range16), $clone(new Range16.ptr(8655, 8658, 3), Range16), $clone(new Range16.ptr(8660, 8692, 32), Range16), $clone(new Range16.ptr(8693, 8959, 1), Range16), $clone(new Range16.ptr(8992, 8993, 1), Range16), $clone(new Range16.ptr(9084, 9115, 31), Range16), $clone(new Range16.ptr(9116, 9139, 1), Range16), $clone(new Range16.ptr(9180, 9185, 1), Range16), $clone(new Range16.ptr(9655, 9665, 10), Range16), $clone(new Range16.ptr(9720, 9727, 1), Range16), $clone(new Range16.ptr(9839, 10176, 337), Range16), $clone(new Range16.ptr(10177, 10180, 1), Range16), $clone(new Range16.ptr(10183, 10213, 1), Range16), $clone(new Range16.ptr(10224, 10239, 1), Range16), $clone(new Range16.ptr(10496, 10626, 1), Range16), $clone(new Range16.ptr(10649, 10711, 1), Range16), $clone(new Range16.ptr(10716, 10747, 1), Range16), $clone(new Range16.ptr(10750, 11007, 1), Range16), $clone(new Range16.ptr(11056, 11076, 1), Range16), $clone(new Range16.ptr(11079, 11084, 1), Range16), $clone(new Range16.ptr(64297, 65122, 825), Range16), $clone(new Range16.ptr(65124, 65126, 1), Range16), $clone(new Range16.ptr(65291, 65308, 17), Range16), $clone(new Range16.ptr(65309, 65310, 1), Range16), $clone(new Range16.ptr(65372, 65374, 2), Range16), $clone(new Range16.ptr(65506, 65513, 7), Range16), $clone(new Range16.ptr(65514, 65516, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(120513, 120539, 26), Range32), $clone(new Range32.ptr(120571, 120597, 26), Range32), $clone(new Range32.ptr(120629, 120655, 26), Range32), $clone(new Range32.ptr(120687, 120713, 26), Range32), $clone(new Range32.ptr(120745, 120771, 26), Range32), $clone(new Range32.ptr(126704, 126705, 1), Range32)]), 5); - _So = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(166, 169, 3), Range16), $clone(new Range16.ptr(174, 176, 2), Range16), $clone(new Range16.ptr(1154, 1421, 267), Range16), $clone(new Range16.ptr(1422, 1550, 128), Range16), $clone(new Range16.ptr(1551, 1758, 207), Range16), $clone(new Range16.ptr(1769, 1789, 20), Range16), $clone(new Range16.ptr(1790, 2038, 248), Range16), $clone(new Range16.ptr(2554, 2928, 374), Range16), $clone(new Range16.ptr(3059, 3064, 1), Range16), $clone(new Range16.ptr(3066, 3199, 133), Range16), $clone(new Range16.ptr(3407, 3449, 42), Range16), $clone(new Range16.ptr(3841, 3843, 1), Range16), $clone(new Range16.ptr(3859, 3861, 2), Range16), $clone(new Range16.ptr(3862, 3863, 1), Range16), $clone(new Range16.ptr(3866, 3871, 1), Range16), $clone(new Range16.ptr(3892, 3896, 2), Range16), $clone(new Range16.ptr(4030, 4037, 1), Range16), $clone(new Range16.ptr(4039, 4044, 1), Range16), $clone(new Range16.ptr(4046, 4047, 1), Range16), $clone(new Range16.ptr(4053, 4056, 1), Range16), $clone(new Range16.ptr(4254, 4255, 1), Range16), $clone(new Range16.ptr(5008, 5017, 1), Range16), $clone(new Range16.ptr(5741, 6464, 723), Range16), $clone(new Range16.ptr(6622, 6655, 1), Range16), $clone(new Range16.ptr(7009, 7018, 1), Range16), $clone(new Range16.ptr(7028, 7036, 1), Range16), $clone(new Range16.ptr(8448, 8449, 1), Range16), $clone(new Range16.ptr(8451, 8454, 1), Range16), $clone(new Range16.ptr(8456, 8457, 1), Range16), $clone(new Range16.ptr(8468, 8470, 2), Range16), $clone(new Range16.ptr(8471, 8478, 7), Range16), $clone(new Range16.ptr(8479, 8483, 1), Range16), $clone(new Range16.ptr(8485, 8489, 2), Range16), $clone(new Range16.ptr(8494, 8506, 12), Range16), $clone(new Range16.ptr(8507, 8522, 15), Range16), $clone(new Range16.ptr(8524, 8525, 1), Range16), $clone(new Range16.ptr(8527, 8586, 59), Range16), $clone(new Range16.ptr(8587, 8597, 10), Range16), $clone(new Range16.ptr(8598, 8601, 1), Range16), $clone(new Range16.ptr(8604, 8607, 1), Range16), $clone(new Range16.ptr(8609, 8610, 1), Range16), $clone(new Range16.ptr(8612, 8613, 1), Range16), $clone(new Range16.ptr(8615, 8621, 1), Range16), $clone(new Range16.ptr(8623, 8653, 1), Range16), $clone(new Range16.ptr(8656, 8657, 1), Range16), $clone(new Range16.ptr(8659, 8661, 2), Range16), $clone(new Range16.ptr(8662, 8691, 1), Range16), $clone(new Range16.ptr(8960, 8967, 1), Range16), $clone(new Range16.ptr(8972, 8991, 1), Range16), $clone(new Range16.ptr(8994, 9000, 1), Range16), $clone(new Range16.ptr(9003, 9083, 1), Range16), $clone(new Range16.ptr(9085, 9114, 1), Range16), $clone(new Range16.ptr(9140, 9179, 1), Range16), $clone(new Range16.ptr(9186, 9254, 1), Range16), $clone(new Range16.ptr(9280, 9290, 1), Range16), $clone(new Range16.ptr(9372, 9449, 1), Range16), $clone(new Range16.ptr(9472, 9654, 1), Range16), $clone(new Range16.ptr(9656, 9664, 1), Range16), $clone(new Range16.ptr(9666, 9719, 1), Range16), $clone(new Range16.ptr(9728, 9838, 1), Range16), $clone(new Range16.ptr(9840, 10087, 1), Range16), $clone(new Range16.ptr(10132, 10175, 1), Range16), $clone(new Range16.ptr(10240, 10495, 1), Range16), $clone(new Range16.ptr(11008, 11055, 1), Range16), $clone(new Range16.ptr(11077, 11078, 1), Range16), $clone(new Range16.ptr(11085, 11123, 1), Range16), $clone(new Range16.ptr(11126, 11157, 1), Range16), $clone(new Range16.ptr(11159, 11263, 1), Range16), $clone(new Range16.ptr(11493, 11498, 1), Range16), $clone(new Range16.ptr(11856, 11857, 1), Range16), $clone(new Range16.ptr(11904, 11929, 1), Range16), $clone(new Range16.ptr(11931, 12019, 1), Range16), $clone(new Range16.ptr(12032, 12245, 1), Range16), $clone(new Range16.ptr(12272, 12283, 1), Range16), $clone(new Range16.ptr(12292, 12306, 14), Range16), $clone(new Range16.ptr(12307, 12320, 13), Range16), $clone(new Range16.ptr(12342, 12343, 1), Range16), $clone(new Range16.ptr(12350, 12351, 1), Range16), $clone(new Range16.ptr(12688, 12689, 1), Range16), $clone(new Range16.ptr(12694, 12703, 1), Range16), $clone(new Range16.ptr(12736, 12771, 1), Range16), $clone(new Range16.ptr(12800, 12830, 1), Range16), $clone(new Range16.ptr(12842, 12871, 1), Range16), $clone(new Range16.ptr(12880, 12896, 16), Range16), $clone(new Range16.ptr(12897, 12927, 1), Range16), $clone(new Range16.ptr(12938, 12976, 1), Range16), $clone(new Range16.ptr(12992, 13311, 1), Range16), $clone(new Range16.ptr(19904, 19967, 1), Range16), $clone(new Range16.ptr(42128, 42182, 1), Range16), $clone(new Range16.ptr(43048, 43051, 1), Range16), $clone(new Range16.ptr(43062, 43063, 1), Range16), $clone(new Range16.ptr(43065, 43639, 574), Range16), $clone(new Range16.ptr(43640, 43641, 1), Range16), $clone(new Range16.ptr(65021, 65508, 487), Range16), $clone(new Range16.ptr(65512, 65517, 5), Range16), $clone(new Range16.ptr(65518, 65532, 14), Range16), $clone(new Range16.ptr(65533, 65533, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65847, 65855, 1), Range32), $clone(new Range32.ptr(65913, 65929, 1), Range32), $clone(new Range32.ptr(65932, 65934, 1), Range32), $clone(new Range32.ptr(65936, 65948, 1), Range32), $clone(new Range32.ptr(65952, 66000, 48), Range32), $clone(new Range32.ptr(66001, 66044, 1), Range32), $clone(new Range32.ptr(67703, 67704, 1), Range32), $clone(new Range32.ptr(68296, 71487, 3191), Range32), $clone(new Range32.ptr(73685, 73692, 1), Range32), $clone(new Range32.ptr(73697, 73713, 1), Range32), $clone(new Range32.ptr(92988, 92991, 1), Range32), $clone(new Range32.ptr(92997, 113820, 20823), Range32), $clone(new Range32.ptr(118784, 119029, 1), Range32), $clone(new Range32.ptr(119040, 119078, 1), Range32), $clone(new Range32.ptr(119081, 119140, 1), Range32), $clone(new Range32.ptr(119146, 119148, 1), Range32), $clone(new Range32.ptr(119171, 119172, 1), Range32), $clone(new Range32.ptr(119180, 119209, 1), Range32), $clone(new Range32.ptr(119214, 119272, 1), Range32), $clone(new Range32.ptr(119296, 119361, 1), Range32), $clone(new Range32.ptr(119365, 119552, 187), Range32), $clone(new Range32.ptr(119553, 119638, 1), Range32), $clone(new Range32.ptr(120832, 121343, 1), Range32), $clone(new Range32.ptr(121399, 121402, 1), Range32), $clone(new Range32.ptr(121453, 121460, 1), Range32), $clone(new Range32.ptr(121462, 121475, 1), Range32), $clone(new Range32.ptr(121477, 121478, 1), Range32), $clone(new Range32.ptr(123215, 126124, 2909), Range32), $clone(new Range32.ptr(126254, 126976, 722), Range32), $clone(new Range32.ptr(126977, 127019, 1), Range32), $clone(new Range32.ptr(127024, 127123, 1), Range32), $clone(new Range32.ptr(127136, 127150, 1), Range32), $clone(new Range32.ptr(127153, 127167, 1), Range32), $clone(new Range32.ptr(127169, 127183, 1), Range32), $clone(new Range32.ptr(127185, 127221, 1), Range32), $clone(new Range32.ptr(127245, 127405, 1), Range32), $clone(new Range32.ptr(127462, 127490, 1), Range32), $clone(new Range32.ptr(127504, 127547, 1), Range32), $clone(new Range32.ptr(127552, 127560, 1), Range32), $clone(new Range32.ptr(127568, 127569, 1), Range32), $clone(new Range32.ptr(127584, 127589, 1), Range32), $clone(new Range32.ptr(127744, 127994, 1), Range32), $clone(new Range32.ptr(128000, 128727, 1), Range32), $clone(new Range32.ptr(128736, 128748, 1), Range32), $clone(new Range32.ptr(128752, 128764, 1), Range32), $clone(new Range32.ptr(128768, 128883, 1), Range32), $clone(new Range32.ptr(128896, 128984, 1), Range32), $clone(new Range32.ptr(128992, 129003, 1), Range32), $clone(new Range32.ptr(129024, 129035, 1), Range32), $clone(new Range32.ptr(129040, 129095, 1), Range32), $clone(new Range32.ptr(129104, 129113, 1), Range32), $clone(new Range32.ptr(129120, 129159, 1), Range32), $clone(new Range32.ptr(129168, 129197, 1), Range32), $clone(new Range32.ptr(129200, 129201, 1), Range32), $clone(new Range32.ptr(129280, 129400, 1), Range32), $clone(new Range32.ptr(129402, 129483, 1), Range32), $clone(new Range32.ptr(129485, 129619, 1), Range32), $clone(new Range32.ptr(129632, 129645, 1), Range32), $clone(new Range32.ptr(129648, 129652, 1), Range32), $clone(new Range32.ptr(129656, 129658, 1), Range32), $clone(new Range32.ptr(129664, 129670, 1), Range32), $clone(new Range32.ptr(129680, 129704, 1), Range32), $clone(new Range32.ptr(129712, 129718, 1), Range32), $clone(new Range32.ptr(129728, 129730, 1), Range32), $clone(new Range32.ptr(129744, 129750, 1), Range32), $clone(new Range32.ptr(129792, 129938, 1), Range32), $clone(new Range32.ptr(129940, 129994, 1), Range32)]), 2); + _So = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(166, 169, 3), Range16), $clone(new Range16.ptr(174, 176, 2), Range16), $clone(new Range16.ptr(1154, 1421, 267), Range16), $clone(new Range16.ptr(1422, 1550, 128), Range16), $clone(new Range16.ptr(1551, 1758, 207), Range16), $clone(new Range16.ptr(1769, 1789, 20), Range16), $clone(new Range16.ptr(1790, 2038, 248), Range16), $clone(new Range16.ptr(2554, 2928, 374), Range16), $clone(new Range16.ptr(3059, 3064, 1), Range16), $clone(new Range16.ptr(3066, 3199, 133), Range16), $clone(new Range16.ptr(3407, 3449, 42), Range16), $clone(new Range16.ptr(3841, 3843, 1), Range16), $clone(new Range16.ptr(3859, 3861, 2), Range16), $clone(new Range16.ptr(3862, 3863, 1), Range16), $clone(new Range16.ptr(3866, 3871, 1), Range16), $clone(new Range16.ptr(3892, 3896, 2), Range16), $clone(new Range16.ptr(4030, 4037, 1), Range16), $clone(new Range16.ptr(4039, 4044, 1), Range16), $clone(new Range16.ptr(4046, 4047, 1), Range16), $clone(new Range16.ptr(4053, 4056, 1), Range16), $clone(new Range16.ptr(4254, 4255, 1), Range16), $clone(new Range16.ptr(5008, 5017, 1), Range16), $clone(new Range16.ptr(5741, 6464, 723), Range16), $clone(new Range16.ptr(6622, 6655, 1), Range16), $clone(new Range16.ptr(7009, 7018, 1), Range16), $clone(new Range16.ptr(7028, 7036, 1), Range16), $clone(new Range16.ptr(8448, 8449, 1), Range16), $clone(new Range16.ptr(8451, 8454, 1), Range16), $clone(new Range16.ptr(8456, 8457, 1), Range16), $clone(new Range16.ptr(8468, 8470, 2), Range16), $clone(new Range16.ptr(8471, 8478, 7), Range16), $clone(new Range16.ptr(8479, 8483, 1), Range16), $clone(new Range16.ptr(8485, 8489, 2), Range16), $clone(new Range16.ptr(8494, 8506, 12), Range16), $clone(new Range16.ptr(8507, 8522, 15), Range16), $clone(new Range16.ptr(8524, 8525, 1), Range16), $clone(new Range16.ptr(8527, 8586, 59), Range16), $clone(new Range16.ptr(8587, 8597, 10), Range16), $clone(new Range16.ptr(8598, 8601, 1), Range16), $clone(new Range16.ptr(8604, 8607, 1), Range16), $clone(new Range16.ptr(8609, 8610, 1), Range16), $clone(new Range16.ptr(8612, 8613, 1), Range16), $clone(new Range16.ptr(8615, 8621, 1), Range16), $clone(new Range16.ptr(8623, 8653, 1), Range16), $clone(new Range16.ptr(8656, 8657, 1), Range16), $clone(new Range16.ptr(8659, 8661, 2), Range16), $clone(new Range16.ptr(8662, 8691, 1), Range16), $clone(new Range16.ptr(8960, 8967, 1), Range16), $clone(new Range16.ptr(8972, 8991, 1), Range16), $clone(new Range16.ptr(8994, 9000, 1), Range16), $clone(new Range16.ptr(9003, 9083, 1), Range16), $clone(new Range16.ptr(9085, 9114, 1), Range16), $clone(new Range16.ptr(9140, 9179, 1), Range16), $clone(new Range16.ptr(9186, 9254, 1), Range16), $clone(new Range16.ptr(9280, 9290, 1), Range16), $clone(new Range16.ptr(9372, 9449, 1), Range16), $clone(new Range16.ptr(9472, 9654, 1), Range16), $clone(new Range16.ptr(9656, 9664, 1), Range16), $clone(new Range16.ptr(9666, 9719, 1), Range16), $clone(new Range16.ptr(9728, 9838, 1), Range16), $clone(new Range16.ptr(9840, 10087, 1), Range16), $clone(new Range16.ptr(10132, 10175, 1), Range16), $clone(new Range16.ptr(10240, 10495, 1), Range16), $clone(new Range16.ptr(11008, 11055, 1), Range16), $clone(new Range16.ptr(11077, 11078, 1), Range16), $clone(new Range16.ptr(11085, 11123, 1), Range16), $clone(new Range16.ptr(11126, 11157, 1), Range16), $clone(new Range16.ptr(11159, 11263, 1), Range16), $clone(new Range16.ptr(11493, 11498, 1), Range16), $clone(new Range16.ptr(11856, 11857, 1), Range16), $clone(new Range16.ptr(11904, 11929, 1), Range16), $clone(new Range16.ptr(11931, 12019, 1), Range16), $clone(new Range16.ptr(12032, 12245, 1), Range16), $clone(new Range16.ptr(12272, 12283, 1), Range16), $clone(new Range16.ptr(12292, 12306, 14), Range16), $clone(new Range16.ptr(12307, 12320, 13), Range16), $clone(new Range16.ptr(12342, 12343, 1), Range16), $clone(new Range16.ptr(12350, 12351, 1), Range16), $clone(new Range16.ptr(12688, 12689, 1), Range16), $clone(new Range16.ptr(12694, 12703, 1), Range16), $clone(new Range16.ptr(12736, 12771, 1), Range16), $clone(new Range16.ptr(12800, 12830, 1), Range16), $clone(new Range16.ptr(12842, 12871, 1), Range16), $clone(new Range16.ptr(12880, 12896, 16), Range16), $clone(new Range16.ptr(12897, 12927, 1), Range16), $clone(new Range16.ptr(12938, 12976, 1), Range16), $clone(new Range16.ptr(12992, 13311, 1), Range16), $clone(new Range16.ptr(19904, 19967, 1), Range16), $clone(new Range16.ptr(42128, 42182, 1), Range16), $clone(new Range16.ptr(43048, 43051, 1), Range16), $clone(new Range16.ptr(43062, 43063, 1), Range16), $clone(new Range16.ptr(43065, 43639, 574), Range16), $clone(new Range16.ptr(43640, 43641, 1), Range16), $clone(new Range16.ptr(64832, 64847, 1), Range16), $clone(new Range16.ptr(64975, 65021, 46), Range16), $clone(new Range16.ptr(65022, 65023, 1), Range16), $clone(new Range16.ptr(65508, 65512, 4), Range16), $clone(new Range16.ptr(65517, 65518, 1), Range16), $clone(new Range16.ptr(65532, 65533, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65847, 65855, 1), Range32), $clone(new Range32.ptr(65913, 65929, 1), Range32), $clone(new Range32.ptr(65932, 65934, 1), Range32), $clone(new Range32.ptr(65936, 65948, 1), Range32), $clone(new Range32.ptr(65952, 66000, 48), Range32), $clone(new Range32.ptr(66001, 66044, 1), Range32), $clone(new Range32.ptr(67703, 67704, 1), Range32), $clone(new Range32.ptr(68296, 71487, 3191), Range32), $clone(new Range32.ptr(73685, 73692, 1), Range32), $clone(new Range32.ptr(73697, 73713, 1), Range32), $clone(new Range32.ptr(92988, 92991, 1), Range32), $clone(new Range32.ptr(92997, 113820, 20823), Range32), $clone(new Range32.ptr(118608, 118723, 1), Range32), $clone(new Range32.ptr(118784, 119029, 1), Range32), $clone(new Range32.ptr(119040, 119078, 1), Range32), $clone(new Range32.ptr(119081, 119140, 1), Range32), $clone(new Range32.ptr(119146, 119148, 1), Range32), $clone(new Range32.ptr(119171, 119172, 1), Range32), $clone(new Range32.ptr(119180, 119209, 1), Range32), $clone(new Range32.ptr(119214, 119274, 1), Range32), $clone(new Range32.ptr(119296, 119361, 1), Range32), $clone(new Range32.ptr(119365, 119552, 187), Range32), $clone(new Range32.ptr(119553, 119638, 1), Range32), $clone(new Range32.ptr(120832, 121343, 1), Range32), $clone(new Range32.ptr(121399, 121402, 1), Range32), $clone(new Range32.ptr(121453, 121460, 1), Range32), $clone(new Range32.ptr(121462, 121475, 1), Range32), $clone(new Range32.ptr(121477, 121478, 1), Range32), $clone(new Range32.ptr(123215, 126124, 2909), Range32), $clone(new Range32.ptr(126254, 126976, 722), Range32), $clone(new Range32.ptr(126977, 127019, 1), Range32), $clone(new Range32.ptr(127024, 127123, 1), Range32), $clone(new Range32.ptr(127136, 127150, 1), Range32), $clone(new Range32.ptr(127153, 127167, 1), Range32), $clone(new Range32.ptr(127169, 127183, 1), Range32), $clone(new Range32.ptr(127185, 127221, 1), Range32), $clone(new Range32.ptr(127245, 127405, 1), Range32), $clone(new Range32.ptr(127462, 127490, 1), Range32), $clone(new Range32.ptr(127504, 127547, 1), Range32), $clone(new Range32.ptr(127552, 127560, 1), Range32), $clone(new Range32.ptr(127568, 127569, 1), Range32), $clone(new Range32.ptr(127584, 127589, 1), Range32), $clone(new Range32.ptr(127744, 127994, 1), Range32), $clone(new Range32.ptr(128000, 128727, 1), Range32), $clone(new Range32.ptr(128732, 128748, 1), Range32), $clone(new Range32.ptr(128752, 128764, 1), Range32), $clone(new Range32.ptr(128768, 128886, 1), Range32), $clone(new Range32.ptr(128891, 128985, 1), Range32), $clone(new Range32.ptr(128992, 129003, 1), Range32), $clone(new Range32.ptr(129008, 129024, 16), Range32), $clone(new Range32.ptr(129025, 129035, 1), Range32), $clone(new Range32.ptr(129040, 129095, 1), Range32), $clone(new Range32.ptr(129104, 129113, 1), Range32), $clone(new Range32.ptr(129120, 129159, 1), Range32), $clone(new Range32.ptr(129168, 129197, 1), Range32), $clone(new Range32.ptr(129200, 129201, 1), Range32), $clone(new Range32.ptr(129280, 129619, 1), Range32), $clone(new Range32.ptr(129632, 129645, 1), Range32), $clone(new Range32.ptr(129648, 129660, 1), Range32), $clone(new Range32.ptr(129664, 129672, 1), Range32), $clone(new Range32.ptr(129680, 129725, 1), Range32), $clone(new Range32.ptr(129727, 129733, 1), Range32), $clone(new Range32.ptr(129742, 129755, 1), Range32), $clone(new Range32.ptr(129760, 129768, 1), Range32), $clone(new Range32.ptr(129776, 129784, 1), Range32), $clone(new Range32.ptr(129792, 129938, 1), Range32), $clone(new Range32.ptr(129940, 129994, 1), Range32)]), 2); _Z = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(32, 160, 128), Range16), $clone(new Range16.ptr(5760, 8192, 2432), Range16), $clone(new Range16.ptr(8193, 8202, 1), Range16), $clone(new Range16.ptr(8232, 8233, 1), Range16), $clone(new Range16.ptr(8239, 8287, 48), Range16), $clone(new Range16.ptr(12288, 12288, 1), Range16)]), sliceType$1.nil, 1); _Zl = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(8232, 8232, 1), Range16)]), sliceType$1.nil, 0); _Zp = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(8233, 8233, 1), Range16)]), sliceType$1.nil, 0); @@ -12405,74 +10847,76 @@ $packages["unicode"] = (function() { $pkg.Zs = _Zs; $pkg.Categories = $makeMap($String.keyFor, [{ k: "C", v: $pkg.C }, { k: "Cc", v: $pkg.Cc }, { k: "Cf", v: $pkg.Cf }, { k: "Co", v: $pkg.Co }, { k: "Cs", v: $pkg.Cs }, { k: "L", v: $pkg.L }, { k: "Ll", v: $pkg.Ll }, { k: "Lm", v: $pkg.Lm }, { k: "Lo", v: $pkg.Lo }, { k: "Lt", v: $pkg.Lt }, { k: "Lu", v: $pkg.Lu }, { k: "M", v: $pkg.M }, { k: "Mc", v: $pkg.Mc }, { k: "Me", v: $pkg.Me }, { k: "Mn", v: $pkg.Mn }, { k: "N", v: $pkg.N }, { k: "Nd", v: $pkg.Nd }, { k: "Nl", v: $pkg.Nl }, { k: "No", v: $pkg.No }, { k: "P", v: $pkg.P }, { k: "Pc", v: $pkg.Pc }, { k: "Pd", v: $pkg.Pd }, { k: "Pe", v: $pkg.Pe }, { k: "Pf", v: $pkg.Pf }, { k: "Pi", v: $pkg.Pi }, { k: "Po", v: $pkg.Po }, { k: "Ps", v: $pkg.Ps }, { k: "S", v: $pkg.S }, { k: "Sc", v: $pkg.Sc }, { k: "Sk", v: $pkg.Sk }, { k: "Sm", v: $pkg.Sm }, { k: "So", v: $pkg.So }, { k: "Z", v: $pkg.Z }, { k: "Zl", v: $pkg.Zl }, { k: "Zp", v: $pkg.Zp }, { k: "Zs", v: $pkg.Zs }]); _Adlam = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(125184, 125259, 1), Range32), $clone(new Range32.ptr(125264, 125273, 1), Range32), $clone(new Range32.ptr(125278, 125279, 1), Range32)]), 0); - _Ahom = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(71424, 71450, 1), Range32), $clone(new Range32.ptr(71453, 71467, 1), Range32), $clone(new Range32.ptr(71472, 71487, 1), Range32)]), 0); + _Ahom = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(71424, 71450, 1), Range32), $clone(new Range32.ptr(71453, 71467, 1), Range32), $clone(new Range32.ptr(71472, 71494, 1), Range32)]), 0); _Anatolian_Hieroglyphs = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(82944, 83526, 1), Range32)]), 0); - _Arabic = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(1536, 1540, 1), Range16), $clone(new Range16.ptr(1542, 1547, 1), Range16), $clone(new Range16.ptr(1549, 1562, 1), Range16), $clone(new Range16.ptr(1564, 1568, 2), Range16), $clone(new Range16.ptr(1569, 1599, 1), Range16), $clone(new Range16.ptr(1601, 1610, 1), Range16), $clone(new Range16.ptr(1622, 1647, 1), Range16), $clone(new Range16.ptr(1649, 1756, 1), Range16), $clone(new Range16.ptr(1758, 1791, 1), Range16), $clone(new Range16.ptr(1872, 1919, 1), Range16), $clone(new Range16.ptr(2208, 2228, 1), Range16), $clone(new Range16.ptr(2230, 2247, 1), Range16), $clone(new Range16.ptr(2259, 2273, 1), Range16), $clone(new Range16.ptr(2275, 2303, 1), Range16), $clone(new Range16.ptr(64336, 64449, 1), Range16), $clone(new Range16.ptr(64467, 64829, 1), Range16), $clone(new Range16.ptr(64848, 64911, 1), Range16), $clone(new Range16.ptr(64914, 64967, 1), Range16), $clone(new Range16.ptr(65008, 65021, 1), Range16), $clone(new Range16.ptr(65136, 65140, 1), Range16), $clone(new Range16.ptr(65142, 65276, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(69216, 69246, 1), Range32), $clone(new Range32.ptr(126464, 126467, 1), Range32), $clone(new Range32.ptr(126469, 126495, 1), Range32), $clone(new Range32.ptr(126497, 126498, 1), Range32), $clone(new Range32.ptr(126500, 126503, 3), Range32), $clone(new Range32.ptr(126505, 126514, 1), Range32), $clone(new Range32.ptr(126516, 126519, 1), Range32), $clone(new Range32.ptr(126521, 126523, 2), Range32), $clone(new Range32.ptr(126530, 126535, 5), Range32), $clone(new Range32.ptr(126537, 126541, 2), Range32), $clone(new Range32.ptr(126542, 126543, 1), Range32), $clone(new Range32.ptr(126545, 126546, 1), Range32), $clone(new Range32.ptr(126548, 126551, 3), Range32), $clone(new Range32.ptr(126553, 126561, 2), Range32), $clone(new Range32.ptr(126562, 126564, 2), Range32), $clone(new Range32.ptr(126567, 126570, 1), Range32), $clone(new Range32.ptr(126572, 126578, 1), Range32), $clone(new Range32.ptr(126580, 126583, 1), Range32), $clone(new Range32.ptr(126585, 126588, 1), Range32), $clone(new Range32.ptr(126590, 126592, 2), Range32), $clone(new Range32.ptr(126593, 126601, 1), Range32), $clone(new Range32.ptr(126603, 126619, 1), Range32), $clone(new Range32.ptr(126625, 126627, 1), Range32), $clone(new Range32.ptr(126629, 126633, 1), Range32), $clone(new Range32.ptr(126635, 126651, 1), Range32), $clone(new Range32.ptr(126704, 126705, 1), Range32)]), 0); + _Arabic = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(1536, 1540, 1), Range16), $clone(new Range16.ptr(1542, 1547, 1), Range16), $clone(new Range16.ptr(1549, 1562, 1), Range16), $clone(new Range16.ptr(1564, 1566, 1), Range16), $clone(new Range16.ptr(1568, 1599, 1), Range16), $clone(new Range16.ptr(1601, 1610, 1), Range16), $clone(new Range16.ptr(1622, 1647, 1), Range16), $clone(new Range16.ptr(1649, 1756, 1), Range16), $clone(new Range16.ptr(1758, 1791, 1), Range16), $clone(new Range16.ptr(1872, 1919, 1), Range16), $clone(new Range16.ptr(2160, 2190, 1), Range16), $clone(new Range16.ptr(2192, 2193, 1), Range16), $clone(new Range16.ptr(2200, 2273, 1), Range16), $clone(new Range16.ptr(2275, 2303, 1), Range16), $clone(new Range16.ptr(64336, 64450, 1), Range16), $clone(new Range16.ptr(64467, 64829, 1), Range16), $clone(new Range16.ptr(64832, 64911, 1), Range16), $clone(new Range16.ptr(64914, 64967, 1), Range16), $clone(new Range16.ptr(64975, 65008, 33), Range16), $clone(new Range16.ptr(65009, 65023, 1), Range16), $clone(new Range16.ptr(65136, 65140, 1), Range16), $clone(new Range16.ptr(65142, 65276, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(69216, 69246, 1), Range32), $clone(new Range32.ptr(69373, 69375, 1), Range32), $clone(new Range32.ptr(126464, 126467, 1), Range32), $clone(new Range32.ptr(126469, 126495, 1), Range32), $clone(new Range32.ptr(126497, 126498, 1), Range32), $clone(new Range32.ptr(126500, 126503, 3), Range32), $clone(new Range32.ptr(126505, 126514, 1), Range32), $clone(new Range32.ptr(126516, 126519, 1), Range32), $clone(new Range32.ptr(126521, 126523, 2), Range32), $clone(new Range32.ptr(126530, 126535, 5), Range32), $clone(new Range32.ptr(126537, 126541, 2), Range32), $clone(new Range32.ptr(126542, 126543, 1), Range32), $clone(new Range32.ptr(126545, 126546, 1), Range32), $clone(new Range32.ptr(126548, 126551, 3), Range32), $clone(new Range32.ptr(126553, 126561, 2), Range32), $clone(new Range32.ptr(126562, 126564, 2), Range32), $clone(new Range32.ptr(126567, 126570, 1), Range32), $clone(new Range32.ptr(126572, 126578, 1), Range32), $clone(new Range32.ptr(126580, 126583, 1), Range32), $clone(new Range32.ptr(126585, 126588, 1), Range32), $clone(new Range32.ptr(126590, 126592, 2), Range32), $clone(new Range32.ptr(126593, 126601, 1), Range32), $clone(new Range32.ptr(126603, 126619, 1), Range32), $clone(new Range32.ptr(126625, 126627, 1), Range32), $clone(new Range32.ptr(126629, 126633, 1), Range32), $clone(new Range32.ptr(126635, 126651, 1), Range32), $clone(new Range32.ptr(126704, 126705, 1), Range32)]), 0); _Armenian = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(1329, 1366, 1), Range16), $clone(new Range16.ptr(1369, 1418, 1), Range16), $clone(new Range16.ptr(1421, 1423, 1), Range16), $clone(new Range16.ptr(64275, 64279, 1), Range16)]), sliceType$1.nil, 0); _Avestan = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(68352, 68405, 1), Range32), $clone(new Range32.ptr(68409, 68415, 1), Range32)]), 0); - _Balinese = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(6912, 6987, 1), Range16), $clone(new Range16.ptr(6992, 7036, 1), Range16)]), sliceType$1.nil, 0); + _Balinese = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(6912, 6988, 1), Range16), $clone(new Range16.ptr(6992, 7038, 1), Range16)]), sliceType$1.nil, 0); _Bamum = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(42656, 42743, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(92160, 92728, 1), Range32)]), 0); _Bassa_Vah = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(92880, 92909, 1), Range32), $clone(new Range32.ptr(92912, 92917, 1), Range32)]), 0); _Batak = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(7104, 7155, 1), Range16), $clone(new Range16.ptr(7164, 7167, 1), Range16)]), sliceType$1.nil, 0); _Bengali = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(2432, 2435, 1), Range16), $clone(new Range16.ptr(2437, 2444, 1), Range16), $clone(new Range16.ptr(2447, 2448, 1), Range16), $clone(new Range16.ptr(2451, 2472, 1), Range16), $clone(new Range16.ptr(2474, 2480, 1), Range16), $clone(new Range16.ptr(2482, 2486, 4), Range16), $clone(new Range16.ptr(2487, 2489, 1), Range16), $clone(new Range16.ptr(2492, 2500, 1), Range16), $clone(new Range16.ptr(2503, 2504, 1), Range16), $clone(new Range16.ptr(2507, 2510, 1), Range16), $clone(new Range16.ptr(2519, 2524, 5), Range16), $clone(new Range16.ptr(2525, 2527, 2), Range16), $clone(new Range16.ptr(2528, 2531, 1), Range16), $clone(new Range16.ptr(2534, 2558, 1), Range16)]), sliceType$1.nil, 0); _Bhaiksuki = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(72704, 72712, 1), Range32), $clone(new Range32.ptr(72714, 72758, 1), Range32), $clone(new Range32.ptr(72760, 72773, 1), Range32), $clone(new Range32.ptr(72784, 72812, 1), Range32)]), 0); _Bopomofo = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(746, 747, 1), Range16), $clone(new Range16.ptr(12549, 12591, 1), Range16), $clone(new Range16.ptr(12704, 12735, 1), Range16)]), sliceType$1.nil, 0); - _Brahmi = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(69632, 69709, 1), Range32), $clone(new Range32.ptr(69714, 69743, 1), Range32), $clone(new Range32.ptr(69759, 69759, 1), Range32)]), 0); + _Brahmi = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(69632, 69709, 1), Range32), $clone(new Range32.ptr(69714, 69749, 1), Range32), $clone(new Range32.ptr(69759, 69759, 1), Range32)]), 0); _Braille = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(10240, 10495, 1), Range16)]), sliceType$1.nil, 0); _Buginese = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(6656, 6683, 1), Range16), $clone(new Range16.ptr(6686, 6687, 1), Range16)]), sliceType$1.nil, 0); _Buhid = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(5952, 5971, 1), Range16)]), sliceType$1.nil, 0); - _Canadian_Aboriginal = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(5120, 5759, 1), Range16), $clone(new Range16.ptr(6320, 6389, 1), Range16)]), sliceType$1.nil, 0); + _Canadian_Aboriginal = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(5120, 5759, 1), Range16), $clone(new Range16.ptr(6320, 6389, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(72368, 72383, 1), Range32)]), 0); _Carian = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(66208, 66256, 1), Range32)]), 0); _Caucasian_Albanian = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(66864, 66915, 1), Range32), $clone(new Range32.ptr(66927, 66927, 1), Range32)]), 0); _Chakma = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(69888, 69940, 1), Range32), $clone(new Range32.ptr(69942, 69959, 1), Range32)]), 0); _Cham = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(43520, 43574, 1), Range16), $clone(new Range16.ptr(43584, 43597, 1), Range16), $clone(new Range16.ptr(43600, 43609, 1), Range16), $clone(new Range16.ptr(43612, 43615, 1), Range16)]), sliceType$1.nil, 0); _Cherokee = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(5024, 5109, 1), Range16), $clone(new Range16.ptr(5112, 5117, 1), Range16), $clone(new Range16.ptr(43888, 43967, 1), Range16)]), sliceType$1.nil, 0); _Chorasmian = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(69552, 69579, 1), Range32)]), 0); - _Common = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(0, 64, 1), Range16), $clone(new Range16.ptr(91, 96, 1), Range16), $clone(new Range16.ptr(123, 169, 1), Range16), $clone(new Range16.ptr(171, 185, 1), Range16), $clone(new Range16.ptr(187, 191, 1), Range16), $clone(new Range16.ptr(215, 247, 32), Range16), $clone(new Range16.ptr(697, 735, 1), Range16), $clone(new Range16.ptr(741, 745, 1), Range16), $clone(new Range16.ptr(748, 767, 1), Range16), $clone(new Range16.ptr(884, 894, 10), Range16), $clone(new Range16.ptr(901, 903, 2), Range16), $clone(new Range16.ptr(1541, 1548, 7), Range16), $clone(new Range16.ptr(1563, 1567, 4), Range16), $clone(new Range16.ptr(1600, 1757, 157), Range16), $clone(new Range16.ptr(2274, 2404, 130), Range16), $clone(new Range16.ptr(2405, 3647, 1242), Range16), $clone(new Range16.ptr(4053, 4056, 1), Range16), $clone(new Range16.ptr(4347, 5867, 1520), Range16), $clone(new Range16.ptr(5868, 5869, 1), Range16), $clone(new Range16.ptr(5941, 5942, 1), Range16), $clone(new Range16.ptr(6146, 6147, 1), Range16), $clone(new Range16.ptr(6149, 7379, 1230), Range16), $clone(new Range16.ptr(7393, 7401, 8), Range16), $clone(new Range16.ptr(7402, 7404, 1), Range16), $clone(new Range16.ptr(7406, 7411, 1), Range16), $clone(new Range16.ptr(7413, 7415, 1), Range16), $clone(new Range16.ptr(7418, 8192, 774), Range16), $clone(new Range16.ptr(8193, 8203, 1), Range16), $clone(new Range16.ptr(8206, 8292, 1), Range16), $clone(new Range16.ptr(8294, 8304, 1), Range16), $clone(new Range16.ptr(8308, 8318, 1), Range16), $clone(new Range16.ptr(8320, 8334, 1), Range16), $clone(new Range16.ptr(8352, 8383, 1), Range16), $clone(new Range16.ptr(8448, 8485, 1), Range16), $clone(new Range16.ptr(8487, 8489, 1), Range16), $clone(new Range16.ptr(8492, 8497, 1), Range16), $clone(new Range16.ptr(8499, 8525, 1), Range16), $clone(new Range16.ptr(8527, 8543, 1), Range16), $clone(new Range16.ptr(8585, 8587, 1), Range16), $clone(new Range16.ptr(8592, 9254, 1), Range16), $clone(new Range16.ptr(9280, 9290, 1), Range16), $clone(new Range16.ptr(9312, 10239, 1), Range16), $clone(new Range16.ptr(10496, 11123, 1), Range16), $clone(new Range16.ptr(11126, 11157, 1), Range16), $clone(new Range16.ptr(11159, 11263, 1), Range16), $clone(new Range16.ptr(11776, 11858, 1), Range16), $clone(new Range16.ptr(12272, 12283, 1), Range16), $clone(new Range16.ptr(12288, 12292, 1), Range16), $clone(new Range16.ptr(12294, 12296, 2), Range16), $clone(new Range16.ptr(12297, 12320, 1), Range16), $clone(new Range16.ptr(12336, 12343, 1), Range16), $clone(new Range16.ptr(12348, 12351, 1), Range16), $clone(new Range16.ptr(12443, 12444, 1), Range16), $clone(new Range16.ptr(12448, 12539, 91), Range16), $clone(new Range16.ptr(12540, 12688, 148), Range16), $clone(new Range16.ptr(12689, 12703, 1), Range16), $clone(new Range16.ptr(12736, 12771, 1), Range16), $clone(new Range16.ptr(12832, 12895, 1), Range16), $clone(new Range16.ptr(12927, 13007, 1), Range16), $clone(new Range16.ptr(13055, 13144, 89), Range16), $clone(new Range16.ptr(13145, 13311, 1), Range16), $clone(new Range16.ptr(19904, 19967, 1), Range16), $clone(new Range16.ptr(42752, 42785, 1), Range16), $clone(new Range16.ptr(42888, 42890, 1), Range16), $clone(new Range16.ptr(43056, 43065, 1), Range16), $clone(new Range16.ptr(43310, 43471, 161), Range16), $clone(new Range16.ptr(43867, 43882, 15), Range16), $clone(new Range16.ptr(43883, 64830, 20947), Range16), $clone(new Range16.ptr(64831, 65040, 209), Range16), $clone(new Range16.ptr(65041, 65049, 1), Range16), $clone(new Range16.ptr(65072, 65106, 1), Range16), $clone(new Range16.ptr(65108, 65126, 1), Range16), $clone(new Range16.ptr(65128, 65131, 1), Range16), $clone(new Range16.ptr(65279, 65281, 2), Range16), $clone(new Range16.ptr(65282, 65312, 1), Range16), $clone(new Range16.ptr(65339, 65344, 1), Range16), $clone(new Range16.ptr(65371, 65381, 1), Range16), $clone(new Range16.ptr(65392, 65438, 46), Range16), $clone(new Range16.ptr(65439, 65504, 65), Range16), $clone(new Range16.ptr(65505, 65510, 1), Range16), $clone(new Range16.ptr(65512, 65518, 1), Range16), $clone(new Range16.ptr(65529, 65533, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65792, 65794, 1), Range32), $clone(new Range32.ptr(65799, 65843, 1), Range32), $clone(new Range32.ptr(65847, 65855, 1), Range32), $clone(new Range32.ptr(65936, 65948, 1), Range32), $clone(new Range32.ptr(66000, 66044, 1), Range32), $clone(new Range32.ptr(66273, 66299, 1), Range32), $clone(new Range32.ptr(94178, 94179, 1), Range32), $clone(new Range32.ptr(113824, 113827, 1), Range32), $clone(new Range32.ptr(118784, 119029, 1), Range32), $clone(new Range32.ptr(119040, 119078, 1), Range32), $clone(new Range32.ptr(119081, 119142, 1), Range32), $clone(new Range32.ptr(119146, 119162, 1), Range32), $clone(new Range32.ptr(119171, 119172, 1), Range32), $clone(new Range32.ptr(119180, 119209, 1), Range32), $clone(new Range32.ptr(119214, 119272, 1), Range32), $clone(new Range32.ptr(119520, 119539, 1), Range32), $clone(new Range32.ptr(119552, 119638, 1), Range32), $clone(new Range32.ptr(119648, 119672, 1), Range32), $clone(new Range32.ptr(119808, 119892, 1), Range32), $clone(new Range32.ptr(119894, 119964, 1), Range32), $clone(new Range32.ptr(119966, 119967, 1), Range32), $clone(new Range32.ptr(119970, 119973, 3), Range32), $clone(new Range32.ptr(119974, 119977, 3), Range32), $clone(new Range32.ptr(119978, 119980, 1), Range32), $clone(new Range32.ptr(119982, 119993, 1), Range32), $clone(new Range32.ptr(119995, 119997, 2), Range32), $clone(new Range32.ptr(119998, 120003, 1), Range32), $clone(new Range32.ptr(120005, 120069, 1), Range32), $clone(new Range32.ptr(120071, 120074, 1), Range32), $clone(new Range32.ptr(120077, 120084, 1), Range32), $clone(new Range32.ptr(120086, 120092, 1), Range32), $clone(new Range32.ptr(120094, 120121, 1), Range32), $clone(new Range32.ptr(120123, 120126, 1), Range32), $clone(new Range32.ptr(120128, 120132, 1), Range32), $clone(new Range32.ptr(120134, 120138, 4), Range32), $clone(new Range32.ptr(120139, 120144, 1), Range32), $clone(new Range32.ptr(120146, 120485, 1), Range32), $clone(new Range32.ptr(120488, 120779, 1), Range32), $clone(new Range32.ptr(120782, 120831, 1), Range32), $clone(new Range32.ptr(126065, 126132, 1), Range32), $clone(new Range32.ptr(126209, 126269, 1), Range32), $clone(new Range32.ptr(126976, 127019, 1), Range32), $clone(new Range32.ptr(127024, 127123, 1), Range32), $clone(new Range32.ptr(127136, 127150, 1), Range32), $clone(new Range32.ptr(127153, 127167, 1), Range32), $clone(new Range32.ptr(127169, 127183, 1), Range32), $clone(new Range32.ptr(127185, 127221, 1), Range32), $clone(new Range32.ptr(127232, 127405, 1), Range32), $clone(new Range32.ptr(127462, 127487, 1), Range32), $clone(new Range32.ptr(127489, 127490, 1), Range32), $clone(new Range32.ptr(127504, 127547, 1), Range32), $clone(new Range32.ptr(127552, 127560, 1), Range32), $clone(new Range32.ptr(127568, 127569, 1), Range32), $clone(new Range32.ptr(127584, 127589, 1), Range32), $clone(new Range32.ptr(127744, 128727, 1), Range32), $clone(new Range32.ptr(128736, 128748, 1), Range32), $clone(new Range32.ptr(128752, 128764, 1), Range32), $clone(new Range32.ptr(128768, 128883, 1), Range32), $clone(new Range32.ptr(128896, 128984, 1), Range32), $clone(new Range32.ptr(128992, 129003, 1), Range32), $clone(new Range32.ptr(129024, 129035, 1), Range32), $clone(new Range32.ptr(129040, 129095, 1), Range32), $clone(new Range32.ptr(129104, 129113, 1), Range32), $clone(new Range32.ptr(129120, 129159, 1), Range32), $clone(new Range32.ptr(129168, 129197, 1), Range32), $clone(new Range32.ptr(129200, 129201, 1), Range32), $clone(new Range32.ptr(129280, 129400, 1), Range32), $clone(new Range32.ptr(129402, 129483, 1), Range32), $clone(new Range32.ptr(129485, 129619, 1), Range32), $clone(new Range32.ptr(129632, 129645, 1), Range32), $clone(new Range32.ptr(129648, 129652, 1), Range32), $clone(new Range32.ptr(129656, 129658, 1), Range32), $clone(new Range32.ptr(129664, 129670, 1), Range32), $clone(new Range32.ptr(129680, 129704, 1), Range32), $clone(new Range32.ptr(129712, 129718, 1), Range32), $clone(new Range32.ptr(129728, 129730, 1), Range32), $clone(new Range32.ptr(129744, 129750, 1), Range32), $clone(new Range32.ptr(129792, 129938, 1), Range32), $clone(new Range32.ptr(129940, 129994, 1), Range32), $clone(new Range32.ptr(130032, 130041, 1), Range32), $clone(new Range32.ptr(917505, 917536, 31), Range32), $clone(new Range32.ptr(917537, 917631, 1), Range32)]), 6); + _Common = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(0, 64, 1), Range16), $clone(new Range16.ptr(91, 96, 1), Range16), $clone(new Range16.ptr(123, 169, 1), Range16), $clone(new Range16.ptr(171, 185, 1), Range16), $clone(new Range16.ptr(187, 191, 1), Range16), $clone(new Range16.ptr(215, 247, 32), Range16), $clone(new Range16.ptr(697, 735, 1), Range16), $clone(new Range16.ptr(741, 745, 1), Range16), $clone(new Range16.ptr(748, 767, 1), Range16), $clone(new Range16.ptr(884, 894, 10), Range16), $clone(new Range16.ptr(901, 903, 2), Range16), $clone(new Range16.ptr(1541, 1548, 7), Range16), $clone(new Range16.ptr(1563, 1567, 4), Range16), $clone(new Range16.ptr(1600, 1757, 157), Range16), $clone(new Range16.ptr(2274, 2404, 130), Range16), $clone(new Range16.ptr(2405, 3647, 1242), Range16), $clone(new Range16.ptr(4053, 4056, 1), Range16), $clone(new Range16.ptr(4347, 5867, 1520), Range16), $clone(new Range16.ptr(5868, 5869, 1), Range16), $clone(new Range16.ptr(5941, 5942, 1), Range16), $clone(new Range16.ptr(6146, 6147, 1), Range16), $clone(new Range16.ptr(6149, 7379, 1230), Range16), $clone(new Range16.ptr(7393, 7401, 8), Range16), $clone(new Range16.ptr(7402, 7404, 1), Range16), $clone(new Range16.ptr(7406, 7411, 1), Range16), $clone(new Range16.ptr(7413, 7415, 1), Range16), $clone(new Range16.ptr(7418, 8192, 774), Range16), $clone(new Range16.ptr(8193, 8203, 1), Range16), $clone(new Range16.ptr(8206, 8292, 1), Range16), $clone(new Range16.ptr(8294, 8304, 1), Range16), $clone(new Range16.ptr(8308, 8318, 1), Range16), $clone(new Range16.ptr(8320, 8334, 1), Range16), $clone(new Range16.ptr(8352, 8384, 1), Range16), $clone(new Range16.ptr(8448, 8485, 1), Range16), $clone(new Range16.ptr(8487, 8489, 1), Range16), $clone(new Range16.ptr(8492, 8497, 1), Range16), $clone(new Range16.ptr(8499, 8525, 1), Range16), $clone(new Range16.ptr(8527, 8543, 1), Range16), $clone(new Range16.ptr(8585, 8587, 1), Range16), $clone(new Range16.ptr(8592, 9254, 1), Range16), $clone(new Range16.ptr(9280, 9290, 1), Range16), $clone(new Range16.ptr(9312, 10239, 1), Range16), $clone(new Range16.ptr(10496, 11123, 1), Range16), $clone(new Range16.ptr(11126, 11157, 1), Range16), $clone(new Range16.ptr(11159, 11263, 1), Range16), $clone(new Range16.ptr(11776, 11869, 1), Range16), $clone(new Range16.ptr(12272, 12283, 1), Range16), $clone(new Range16.ptr(12288, 12292, 1), Range16), $clone(new Range16.ptr(12294, 12296, 2), Range16), $clone(new Range16.ptr(12297, 12320, 1), Range16), $clone(new Range16.ptr(12336, 12343, 1), Range16), $clone(new Range16.ptr(12348, 12351, 1), Range16), $clone(new Range16.ptr(12443, 12444, 1), Range16), $clone(new Range16.ptr(12448, 12539, 91), Range16), $clone(new Range16.ptr(12540, 12688, 148), Range16), $clone(new Range16.ptr(12689, 12703, 1), Range16), $clone(new Range16.ptr(12736, 12771, 1), Range16), $clone(new Range16.ptr(12832, 12895, 1), Range16), $clone(new Range16.ptr(12927, 13007, 1), Range16), $clone(new Range16.ptr(13055, 13144, 89), Range16), $clone(new Range16.ptr(13145, 13311, 1), Range16), $clone(new Range16.ptr(19904, 19967, 1), Range16), $clone(new Range16.ptr(42752, 42785, 1), Range16), $clone(new Range16.ptr(42888, 42890, 1), Range16), $clone(new Range16.ptr(43056, 43065, 1), Range16), $clone(new Range16.ptr(43310, 43471, 161), Range16), $clone(new Range16.ptr(43867, 43882, 15), Range16), $clone(new Range16.ptr(43883, 64830, 20947), Range16), $clone(new Range16.ptr(64831, 65040, 209), Range16), $clone(new Range16.ptr(65041, 65049, 1), Range16), $clone(new Range16.ptr(65072, 65106, 1), Range16), $clone(new Range16.ptr(65108, 65126, 1), Range16), $clone(new Range16.ptr(65128, 65131, 1), Range16), $clone(new Range16.ptr(65279, 65281, 2), Range16), $clone(new Range16.ptr(65282, 65312, 1), Range16), $clone(new Range16.ptr(65339, 65344, 1), Range16), $clone(new Range16.ptr(65371, 65381, 1), Range16), $clone(new Range16.ptr(65392, 65438, 46), Range16), $clone(new Range16.ptr(65439, 65504, 65), Range16), $clone(new Range16.ptr(65505, 65510, 1), Range16), $clone(new Range16.ptr(65512, 65518, 1), Range16), $clone(new Range16.ptr(65529, 65533, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(65792, 65794, 1), Range32), $clone(new Range32.ptr(65799, 65843, 1), Range32), $clone(new Range32.ptr(65847, 65855, 1), Range32), $clone(new Range32.ptr(65936, 65948, 1), Range32), $clone(new Range32.ptr(66000, 66044, 1), Range32), $clone(new Range32.ptr(66273, 66299, 1), Range32), $clone(new Range32.ptr(113824, 113827, 1), Range32), $clone(new Range32.ptr(118608, 118723, 1), Range32), $clone(new Range32.ptr(118784, 119029, 1), Range32), $clone(new Range32.ptr(119040, 119078, 1), Range32), $clone(new Range32.ptr(119081, 119142, 1), Range32), $clone(new Range32.ptr(119146, 119162, 1), Range32), $clone(new Range32.ptr(119171, 119172, 1), Range32), $clone(new Range32.ptr(119180, 119209, 1), Range32), $clone(new Range32.ptr(119214, 119274, 1), Range32), $clone(new Range32.ptr(119488, 119507, 1), Range32), $clone(new Range32.ptr(119520, 119539, 1), Range32), $clone(new Range32.ptr(119552, 119638, 1), Range32), $clone(new Range32.ptr(119648, 119672, 1), Range32), $clone(new Range32.ptr(119808, 119892, 1), Range32), $clone(new Range32.ptr(119894, 119964, 1), Range32), $clone(new Range32.ptr(119966, 119967, 1), Range32), $clone(new Range32.ptr(119970, 119973, 3), Range32), $clone(new Range32.ptr(119974, 119977, 3), Range32), $clone(new Range32.ptr(119978, 119980, 1), Range32), $clone(new Range32.ptr(119982, 119993, 1), Range32), $clone(new Range32.ptr(119995, 119997, 2), Range32), $clone(new Range32.ptr(119998, 120003, 1), Range32), $clone(new Range32.ptr(120005, 120069, 1), Range32), $clone(new Range32.ptr(120071, 120074, 1), Range32), $clone(new Range32.ptr(120077, 120084, 1), Range32), $clone(new Range32.ptr(120086, 120092, 1), Range32), $clone(new Range32.ptr(120094, 120121, 1), Range32), $clone(new Range32.ptr(120123, 120126, 1), Range32), $clone(new Range32.ptr(120128, 120132, 1), Range32), $clone(new Range32.ptr(120134, 120138, 4), Range32), $clone(new Range32.ptr(120139, 120144, 1), Range32), $clone(new Range32.ptr(120146, 120485, 1), Range32), $clone(new Range32.ptr(120488, 120779, 1), Range32), $clone(new Range32.ptr(120782, 120831, 1), Range32), $clone(new Range32.ptr(126065, 126132, 1), Range32), $clone(new Range32.ptr(126209, 126269, 1), Range32), $clone(new Range32.ptr(126976, 127019, 1), Range32), $clone(new Range32.ptr(127024, 127123, 1), Range32), $clone(new Range32.ptr(127136, 127150, 1), Range32), $clone(new Range32.ptr(127153, 127167, 1), Range32), $clone(new Range32.ptr(127169, 127183, 1), Range32), $clone(new Range32.ptr(127185, 127221, 1), Range32), $clone(new Range32.ptr(127232, 127405, 1), Range32), $clone(new Range32.ptr(127462, 127487, 1), Range32), $clone(new Range32.ptr(127489, 127490, 1), Range32), $clone(new Range32.ptr(127504, 127547, 1), Range32), $clone(new Range32.ptr(127552, 127560, 1), Range32), $clone(new Range32.ptr(127568, 127569, 1), Range32), $clone(new Range32.ptr(127584, 127589, 1), Range32), $clone(new Range32.ptr(127744, 128727, 1), Range32), $clone(new Range32.ptr(128732, 128748, 1), Range32), $clone(new Range32.ptr(128752, 128764, 1), Range32), $clone(new Range32.ptr(128768, 128886, 1), Range32), $clone(new Range32.ptr(128891, 128985, 1), Range32), $clone(new Range32.ptr(128992, 129003, 1), Range32), $clone(new Range32.ptr(129008, 129024, 16), Range32), $clone(new Range32.ptr(129025, 129035, 1), Range32), $clone(new Range32.ptr(129040, 129095, 1), Range32), $clone(new Range32.ptr(129104, 129113, 1), Range32), $clone(new Range32.ptr(129120, 129159, 1), Range32), $clone(new Range32.ptr(129168, 129197, 1), Range32), $clone(new Range32.ptr(129200, 129201, 1), Range32), $clone(new Range32.ptr(129280, 129619, 1), Range32), $clone(new Range32.ptr(129632, 129645, 1), Range32), $clone(new Range32.ptr(129648, 129660, 1), Range32), $clone(new Range32.ptr(129664, 129672, 1), Range32), $clone(new Range32.ptr(129680, 129725, 1), Range32), $clone(new Range32.ptr(129727, 129733, 1), Range32), $clone(new Range32.ptr(129742, 129755, 1), Range32), $clone(new Range32.ptr(129760, 129768, 1), Range32), $clone(new Range32.ptr(129776, 129784, 1), Range32), $clone(new Range32.ptr(129792, 129938, 1), Range32), $clone(new Range32.ptr(129940, 129994, 1), Range32), $clone(new Range32.ptr(130032, 130041, 1), Range32), $clone(new Range32.ptr(917505, 917536, 31), Range32), $clone(new Range32.ptr(917537, 917631, 1), Range32)]), 6); _Coptic = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(994, 1007, 1), Range16), $clone(new Range16.ptr(11392, 11507, 1), Range16), $clone(new Range16.ptr(11513, 11519, 1), Range16)]), sliceType$1.nil, 0); _Cuneiform = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(73728, 74649, 1), Range32), $clone(new Range32.ptr(74752, 74862, 1), Range32), $clone(new Range32.ptr(74864, 74868, 1), Range32), $clone(new Range32.ptr(74880, 75075, 1), Range32)]), 0); _Cypriot = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(67584, 67589, 1), Range32), $clone(new Range32.ptr(67592, 67594, 2), Range32), $clone(new Range32.ptr(67595, 67637, 1), Range32), $clone(new Range32.ptr(67639, 67640, 1), Range32), $clone(new Range32.ptr(67644, 67647, 3), Range32)]), 0); - _Cyrillic = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(1024, 1156, 1), Range16), $clone(new Range16.ptr(1159, 1327, 1), Range16), $clone(new Range16.ptr(7296, 7304, 1), Range16), $clone(new Range16.ptr(7467, 7544, 77), Range16), $clone(new Range16.ptr(11744, 11775, 1), Range16), $clone(new Range16.ptr(42560, 42655, 1), Range16), $clone(new Range16.ptr(65070, 65071, 1), Range16)]), sliceType$1.nil, 0); + _Cypro_Minoan = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(77712, 77810, 1), Range32)]), 0); + _Cyrillic = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(1024, 1156, 1), Range16), $clone(new Range16.ptr(1159, 1327, 1), Range16), $clone(new Range16.ptr(7296, 7304, 1), Range16), $clone(new Range16.ptr(7467, 7544, 77), Range16), $clone(new Range16.ptr(11744, 11775, 1), Range16), $clone(new Range16.ptr(42560, 42655, 1), Range16), $clone(new Range16.ptr(65070, 65071, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(122928, 122989, 1), Range32), $clone(new Range32.ptr(123023, 123023, 1), Range32)]), 0); _Deseret = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(66560, 66639, 1), Range32)]), 0); - _Devanagari = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(2304, 2384, 1), Range16), $clone(new Range16.ptr(2389, 2403, 1), Range16), $clone(new Range16.ptr(2406, 2431, 1), Range16), $clone(new Range16.ptr(43232, 43263, 1), Range16)]), sliceType$1.nil, 0); + _Devanagari = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(2304, 2384, 1), Range16), $clone(new Range16.ptr(2389, 2403, 1), Range16), $clone(new Range16.ptr(2406, 2431, 1), Range16), $clone(new Range16.ptr(43232, 43263, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(72448, 72457, 1), Range32)]), 0); _Dives_Akuru = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(71936, 71942, 1), Range32), $clone(new Range32.ptr(71945, 71948, 3), Range32), $clone(new Range32.ptr(71949, 71955, 1), Range32), $clone(new Range32.ptr(71957, 71958, 1), Range32), $clone(new Range32.ptr(71960, 71989, 1), Range32), $clone(new Range32.ptr(71991, 71992, 1), Range32), $clone(new Range32.ptr(71995, 72006, 1), Range32), $clone(new Range32.ptr(72016, 72025, 1), Range32)]), 0); _Dogra = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(71680, 71739, 1), Range32)]), 0); _Duployan = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(113664, 113770, 1), Range32), $clone(new Range32.ptr(113776, 113788, 1), Range32), $clone(new Range32.ptr(113792, 113800, 1), Range32), $clone(new Range32.ptr(113808, 113817, 1), Range32), $clone(new Range32.ptr(113820, 113823, 1), Range32)]), 0); - _Egyptian_Hieroglyphs = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(77824, 78894, 1), Range32), $clone(new Range32.ptr(78896, 78904, 1), Range32)]), 0); + _Egyptian_Hieroglyphs = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(77824, 78933, 1), Range32)]), 0); _Elbasan = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(66816, 66855, 1), Range32)]), 0); _Elymaic = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(69600, 69622, 1), Range32)]), 0); - _Ethiopic = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(4608, 4680, 1), Range16), $clone(new Range16.ptr(4682, 4685, 1), Range16), $clone(new Range16.ptr(4688, 4694, 1), Range16), $clone(new Range16.ptr(4696, 4698, 2), Range16), $clone(new Range16.ptr(4699, 4701, 1), Range16), $clone(new Range16.ptr(4704, 4744, 1), Range16), $clone(new Range16.ptr(4746, 4749, 1), Range16), $clone(new Range16.ptr(4752, 4784, 1), Range16), $clone(new Range16.ptr(4786, 4789, 1), Range16), $clone(new Range16.ptr(4792, 4798, 1), Range16), $clone(new Range16.ptr(4800, 4802, 2), Range16), $clone(new Range16.ptr(4803, 4805, 1), Range16), $clone(new Range16.ptr(4808, 4822, 1), Range16), $clone(new Range16.ptr(4824, 4880, 1), Range16), $clone(new Range16.ptr(4882, 4885, 1), Range16), $clone(new Range16.ptr(4888, 4954, 1), Range16), $clone(new Range16.ptr(4957, 4988, 1), Range16), $clone(new Range16.ptr(4992, 5017, 1), Range16), $clone(new Range16.ptr(11648, 11670, 1), Range16), $clone(new Range16.ptr(11680, 11686, 1), Range16), $clone(new Range16.ptr(11688, 11694, 1), Range16), $clone(new Range16.ptr(11696, 11702, 1), Range16), $clone(new Range16.ptr(11704, 11710, 1), Range16), $clone(new Range16.ptr(11712, 11718, 1), Range16), $clone(new Range16.ptr(11720, 11726, 1), Range16), $clone(new Range16.ptr(11728, 11734, 1), Range16), $clone(new Range16.ptr(11736, 11742, 1), Range16), $clone(new Range16.ptr(43777, 43782, 1), Range16), $clone(new Range16.ptr(43785, 43790, 1), Range16), $clone(new Range16.ptr(43793, 43798, 1), Range16), $clone(new Range16.ptr(43808, 43814, 1), Range16), $clone(new Range16.ptr(43816, 43822, 1), Range16)]), sliceType$1.nil, 0); + _Ethiopic = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(4608, 4680, 1), Range16), $clone(new Range16.ptr(4682, 4685, 1), Range16), $clone(new Range16.ptr(4688, 4694, 1), Range16), $clone(new Range16.ptr(4696, 4698, 2), Range16), $clone(new Range16.ptr(4699, 4701, 1), Range16), $clone(new Range16.ptr(4704, 4744, 1), Range16), $clone(new Range16.ptr(4746, 4749, 1), Range16), $clone(new Range16.ptr(4752, 4784, 1), Range16), $clone(new Range16.ptr(4786, 4789, 1), Range16), $clone(new Range16.ptr(4792, 4798, 1), Range16), $clone(new Range16.ptr(4800, 4802, 2), Range16), $clone(new Range16.ptr(4803, 4805, 1), Range16), $clone(new Range16.ptr(4808, 4822, 1), Range16), $clone(new Range16.ptr(4824, 4880, 1), Range16), $clone(new Range16.ptr(4882, 4885, 1), Range16), $clone(new Range16.ptr(4888, 4954, 1), Range16), $clone(new Range16.ptr(4957, 4988, 1), Range16), $clone(new Range16.ptr(4992, 5017, 1), Range16), $clone(new Range16.ptr(11648, 11670, 1), Range16), $clone(new Range16.ptr(11680, 11686, 1), Range16), $clone(new Range16.ptr(11688, 11694, 1), Range16), $clone(new Range16.ptr(11696, 11702, 1), Range16), $clone(new Range16.ptr(11704, 11710, 1), Range16), $clone(new Range16.ptr(11712, 11718, 1), Range16), $clone(new Range16.ptr(11720, 11726, 1), Range16), $clone(new Range16.ptr(11728, 11734, 1), Range16), $clone(new Range16.ptr(11736, 11742, 1), Range16), $clone(new Range16.ptr(43777, 43782, 1), Range16), $clone(new Range16.ptr(43785, 43790, 1), Range16), $clone(new Range16.ptr(43793, 43798, 1), Range16), $clone(new Range16.ptr(43808, 43814, 1), Range16), $clone(new Range16.ptr(43816, 43822, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(124896, 124902, 1), Range32), $clone(new Range32.ptr(124904, 124907, 1), Range32), $clone(new Range32.ptr(124909, 124910, 1), Range32), $clone(new Range32.ptr(124912, 124926, 1), Range32)]), 0); _Georgian = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(4256, 4293, 1), Range16), $clone(new Range16.ptr(4295, 4301, 6), Range16), $clone(new Range16.ptr(4304, 4346, 1), Range16), $clone(new Range16.ptr(4348, 4351, 1), Range16), $clone(new Range16.ptr(7312, 7354, 1), Range16), $clone(new Range16.ptr(7357, 7359, 1), Range16), $clone(new Range16.ptr(11520, 11557, 1), Range16), $clone(new Range16.ptr(11559, 11565, 6), Range16)]), sliceType$1.nil, 0); - _Glagolitic = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(11264, 11310, 1), Range16), $clone(new Range16.ptr(11312, 11358, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(122880, 122886, 1), Range32), $clone(new Range32.ptr(122888, 122904, 1), Range32), $clone(new Range32.ptr(122907, 122913, 1), Range32), $clone(new Range32.ptr(122915, 122916, 1), Range32), $clone(new Range32.ptr(122918, 122922, 1), Range32)]), 0); + _Glagolitic = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(11264, 11359, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(122880, 122886, 1), Range32), $clone(new Range32.ptr(122888, 122904, 1), Range32), $clone(new Range32.ptr(122907, 122913, 1), Range32), $clone(new Range32.ptr(122915, 122916, 1), Range32), $clone(new Range32.ptr(122918, 122922, 1), Range32)]), 0); _Gothic = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(66352, 66378, 1), Range32)]), 0); _Grantha = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(70400, 70403, 1), Range32), $clone(new Range32.ptr(70405, 70412, 1), Range32), $clone(new Range32.ptr(70415, 70416, 1), Range32), $clone(new Range32.ptr(70419, 70440, 1), Range32), $clone(new Range32.ptr(70442, 70448, 1), Range32), $clone(new Range32.ptr(70450, 70451, 1), Range32), $clone(new Range32.ptr(70453, 70457, 1), Range32), $clone(new Range32.ptr(70460, 70468, 1), Range32), $clone(new Range32.ptr(70471, 70472, 1), Range32), $clone(new Range32.ptr(70475, 70477, 1), Range32), $clone(new Range32.ptr(70480, 70487, 7), Range32), $clone(new Range32.ptr(70493, 70499, 1), Range32), $clone(new Range32.ptr(70502, 70508, 1), Range32), $clone(new Range32.ptr(70512, 70516, 1), Range32)]), 0); _Greek = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(880, 883, 1), Range16), $clone(new Range16.ptr(885, 887, 1), Range16), $clone(new Range16.ptr(890, 893, 1), Range16), $clone(new Range16.ptr(895, 900, 5), Range16), $clone(new Range16.ptr(902, 904, 2), Range16), $clone(new Range16.ptr(905, 906, 1), Range16), $clone(new Range16.ptr(908, 910, 2), Range16), $clone(new Range16.ptr(911, 929, 1), Range16), $clone(new Range16.ptr(931, 993, 1), Range16), $clone(new Range16.ptr(1008, 1023, 1), Range16), $clone(new Range16.ptr(7462, 7466, 1), Range16), $clone(new Range16.ptr(7517, 7521, 1), Range16), $clone(new Range16.ptr(7526, 7530, 1), Range16), $clone(new Range16.ptr(7615, 7936, 321), Range16), $clone(new Range16.ptr(7937, 7957, 1), Range16), $clone(new Range16.ptr(7960, 7965, 1), Range16), $clone(new Range16.ptr(7968, 8005, 1), Range16), $clone(new Range16.ptr(8008, 8013, 1), Range16), $clone(new Range16.ptr(8016, 8023, 1), Range16), $clone(new Range16.ptr(8025, 8031, 2), Range16), $clone(new Range16.ptr(8032, 8061, 1), Range16), $clone(new Range16.ptr(8064, 8116, 1), Range16), $clone(new Range16.ptr(8118, 8132, 1), Range16), $clone(new Range16.ptr(8134, 8147, 1), Range16), $clone(new Range16.ptr(8150, 8155, 1), Range16), $clone(new Range16.ptr(8157, 8175, 1), Range16), $clone(new Range16.ptr(8178, 8180, 1), Range16), $clone(new Range16.ptr(8182, 8190, 1), Range16), $clone(new Range16.ptr(8486, 43877, 35391), Range16)]), new sliceType$1([$clone(new Range32.ptr(65856, 65934, 1), Range32), $clone(new Range32.ptr(65952, 119296, 53344), Range32), $clone(new Range32.ptr(119297, 119365, 1), Range32)]), 0); _Gujarati = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(2689, 2691, 1), Range16), $clone(new Range16.ptr(2693, 2701, 1), Range16), $clone(new Range16.ptr(2703, 2705, 1), Range16), $clone(new Range16.ptr(2707, 2728, 1), Range16), $clone(new Range16.ptr(2730, 2736, 1), Range16), $clone(new Range16.ptr(2738, 2739, 1), Range16), $clone(new Range16.ptr(2741, 2745, 1), Range16), $clone(new Range16.ptr(2748, 2757, 1), Range16), $clone(new Range16.ptr(2759, 2761, 1), Range16), $clone(new Range16.ptr(2763, 2765, 1), Range16), $clone(new Range16.ptr(2768, 2784, 16), Range16), $clone(new Range16.ptr(2785, 2787, 1), Range16), $clone(new Range16.ptr(2790, 2801, 1), Range16), $clone(new Range16.ptr(2809, 2815, 1), Range16)]), sliceType$1.nil, 0); _Gunjala_Gondi = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(73056, 73061, 1), Range32), $clone(new Range32.ptr(73063, 73064, 1), Range32), $clone(new Range32.ptr(73066, 73102, 1), Range32), $clone(new Range32.ptr(73104, 73105, 1), Range32), $clone(new Range32.ptr(73107, 73112, 1), Range32), $clone(new Range32.ptr(73120, 73129, 1), Range32)]), 0); _Gurmukhi = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(2561, 2563, 1), Range16), $clone(new Range16.ptr(2565, 2570, 1), Range16), $clone(new Range16.ptr(2575, 2576, 1), Range16), $clone(new Range16.ptr(2579, 2600, 1), Range16), $clone(new Range16.ptr(2602, 2608, 1), Range16), $clone(new Range16.ptr(2610, 2611, 1), Range16), $clone(new Range16.ptr(2613, 2614, 1), Range16), $clone(new Range16.ptr(2616, 2617, 1), Range16), $clone(new Range16.ptr(2620, 2622, 2), Range16), $clone(new Range16.ptr(2623, 2626, 1), Range16), $clone(new Range16.ptr(2631, 2632, 1), Range16), $clone(new Range16.ptr(2635, 2637, 1), Range16), $clone(new Range16.ptr(2641, 2649, 8), Range16), $clone(new Range16.ptr(2650, 2652, 1), Range16), $clone(new Range16.ptr(2654, 2662, 8), Range16), $clone(new Range16.ptr(2663, 2678, 1), Range16)]), sliceType$1.nil, 0); - _Han = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(11904, 11929, 1), Range16), $clone(new Range16.ptr(11931, 12019, 1), Range16), $clone(new Range16.ptr(12032, 12245, 1), Range16), $clone(new Range16.ptr(12293, 12295, 2), Range16), $clone(new Range16.ptr(12321, 12329, 1), Range16), $clone(new Range16.ptr(12344, 12347, 1), Range16), $clone(new Range16.ptr(13312, 19903, 1), Range16), $clone(new Range16.ptr(19968, 40956, 1), Range16), $clone(new Range16.ptr(63744, 64109, 1), Range16), $clone(new Range16.ptr(64112, 64217, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(94192, 94193, 1), Range32), $clone(new Range32.ptr(131072, 173789, 1), Range32), $clone(new Range32.ptr(173824, 177972, 1), Range32), $clone(new Range32.ptr(177984, 178205, 1), Range32), $clone(new Range32.ptr(178208, 183969, 1), Range32), $clone(new Range32.ptr(183984, 191456, 1), Range32), $clone(new Range32.ptr(194560, 195101, 1), Range32), $clone(new Range32.ptr(196608, 201546, 1), Range32)]), 0); + _Han = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(11904, 11929, 1), Range16), $clone(new Range16.ptr(11931, 12019, 1), Range16), $clone(new Range16.ptr(12032, 12245, 1), Range16), $clone(new Range16.ptr(12293, 12295, 2), Range16), $clone(new Range16.ptr(12321, 12329, 1), Range16), $clone(new Range16.ptr(12344, 12347, 1), Range16), $clone(new Range16.ptr(13312, 19903, 1), Range16), $clone(new Range16.ptr(19968, 40959, 1), Range16), $clone(new Range16.ptr(63744, 64109, 1), Range16), $clone(new Range16.ptr(64112, 64217, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(94178, 94179, 1), Range32), $clone(new Range32.ptr(94192, 94193, 1), Range32), $clone(new Range32.ptr(131072, 173791, 1), Range32), $clone(new Range32.ptr(173824, 177977, 1), Range32), $clone(new Range32.ptr(177984, 178205, 1), Range32), $clone(new Range32.ptr(178208, 183969, 1), Range32), $clone(new Range32.ptr(183984, 191456, 1), Range32), $clone(new Range32.ptr(194560, 195101, 1), Range32), $clone(new Range32.ptr(196608, 201546, 1), Range32), $clone(new Range32.ptr(201552, 205743, 1), Range32)]), 0); _Hangul = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(4352, 4607, 1), Range16), $clone(new Range16.ptr(12334, 12335, 1), Range16), $clone(new Range16.ptr(12593, 12686, 1), Range16), $clone(new Range16.ptr(12800, 12830, 1), Range16), $clone(new Range16.ptr(12896, 12926, 1), Range16), $clone(new Range16.ptr(43360, 43388, 1), Range16), $clone(new Range16.ptr(44032, 55203, 1), Range16), $clone(new Range16.ptr(55216, 55238, 1), Range16), $clone(new Range16.ptr(55243, 55291, 1), Range16), $clone(new Range16.ptr(65440, 65470, 1), Range16), $clone(new Range16.ptr(65474, 65479, 1), Range16), $clone(new Range16.ptr(65482, 65487, 1), Range16), $clone(new Range16.ptr(65490, 65495, 1), Range16), $clone(new Range16.ptr(65498, 65500, 1), Range16)]), sliceType$1.nil, 0); _Hanifi_Rohingya = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(68864, 68903, 1), Range32), $clone(new Range32.ptr(68912, 68921, 1), Range32)]), 0); _Hanunoo = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(5920, 5940, 1), Range16)]), sliceType$1.nil, 0); _Hatran = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(67808, 67826, 1), Range32), $clone(new Range32.ptr(67828, 67829, 1), Range32), $clone(new Range32.ptr(67835, 67839, 1), Range32)]), 0); _Hebrew = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(1425, 1479, 1), Range16), $clone(new Range16.ptr(1488, 1514, 1), Range16), $clone(new Range16.ptr(1519, 1524, 1), Range16), $clone(new Range16.ptr(64285, 64310, 1), Range16), $clone(new Range16.ptr(64312, 64316, 1), Range16), $clone(new Range16.ptr(64318, 64320, 2), Range16), $clone(new Range16.ptr(64321, 64323, 2), Range16), $clone(new Range16.ptr(64324, 64326, 2), Range16), $clone(new Range16.ptr(64327, 64335, 1), Range16)]), sliceType$1.nil, 0); - _Hiragana = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(12353, 12438, 1), Range16), $clone(new Range16.ptr(12445, 12447, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(110593, 110878, 1), Range32), $clone(new Range32.ptr(110928, 110930, 1), Range32), $clone(new Range32.ptr(127488, 127488, 1), Range32)]), 0); + _Hiragana = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(12353, 12438, 1), Range16), $clone(new Range16.ptr(12445, 12447, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(110593, 110879, 1), Range32), $clone(new Range32.ptr(110898, 110928, 30), Range32), $clone(new Range32.ptr(110929, 110930, 1), Range32), $clone(new Range32.ptr(127488, 127488, 1), Range32)]), 0); _Imperial_Aramaic = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(67648, 67669, 1), Range32), $clone(new Range32.ptr(67671, 67679, 1), Range32)]), 0); - _Inherited = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(768, 879, 1), Range16), $clone(new Range16.ptr(1157, 1158, 1), Range16), $clone(new Range16.ptr(1611, 1621, 1), Range16), $clone(new Range16.ptr(1648, 2385, 737), Range16), $clone(new Range16.ptr(2386, 2388, 1), Range16), $clone(new Range16.ptr(6832, 6848, 1), Range16), $clone(new Range16.ptr(7376, 7378, 1), Range16), $clone(new Range16.ptr(7380, 7392, 1), Range16), $clone(new Range16.ptr(7394, 7400, 1), Range16), $clone(new Range16.ptr(7405, 7412, 7), Range16), $clone(new Range16.ptr(7416, 7417, 1), Range16), $clone(new Range16.ptr(7616, 7673, 1), Range16), $clone(new Range16.ptr(7675, 7679, 1), Range16), $clone(new Range16.ptr(8204, 8205, 1), Range16), $clone(new Range16.ptr(8400, 8432, 1), Range16), $clone(new Range16.ptr(12330, 12333, 1), Range16), $clone(new Range16.ptr(12441, 12442, 1), Range16), $clone(new Range16.ptr(65024, 65039, 1), Range16), $clone(new Range16.ptr(65056, 65069, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(66045, 66272, 227), Range32), $clone(new Range32.ptr(70459, 119143, 48684), Range32), $clone(new Range32.ptr(119144, 119145, 1), Range32), $clone(new Range32.ptr(119163, 119170, 1), Range32), $clone(new Range32.ptr(119173, 119179, 1), Range32), $clone(new Range32.ptr(119210, 119213, 1), Range32), $clone(new Range32.ptr(917760, 917999, 1), Range32)]), 0); + _Inherited = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(768, 879, 1), Range16), $clone(new Range16.ptr(1157, 1158, 1), Range16), $clone(new Range16.ptr(1611, 1621, 1), Range16), $clone(new Range16.ptr(1648, 2385, 737), Range16), $clone(new Range16.ptr(2386, 2388, 1), Range16), $clone(new Range16.ptr(6832, 6862, 1), Range16), $clone(new Range16.ptr(7376, 7378, 1), Range16), $clone(new Range16.ptr(7380, 7392, 1), Range16), $clone(new Range16.ptr(7394, 7400, 1), Range16), $clone(new Range16.ptr(7405, 7412, 7), Range16), $clone(new Range16.ptr(7416, 7417, 1), Range16), $clone(new Range16.ptr(7616, 7679, 1), Range16), $clone(new Range16.ptr(8204, 8205, 1), Range16), $clone(new Range16.ptr(8400, 8432, 1), Range16), $clone(new Range16.ptr(12330, 12333, 1), Range16), $clone(new Range16.ptr(12441, 12442, 1), Range16), $clone(new Range16.ptr(65024, 65039, 1), Range16), $clone(new Range16.ptr(65056, 65069, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(66045, 66272, 227), Range32), $clone(new Range32.ptr(70459, 118528, 48069), Range32), $clone(new Range32.ptr(118529, 118573, 1), Range32), $clone(new Range32.ptr(118576, 118598, 1), Range32), $clone(new Range32.ptr(119143, 119145, 1), Range32), $clone(new Range32.ptr(119163, 119170, 1), Range32), $clone(new Range32.ptr(119173, 119179, 1), Range32), $clone(new Range32.ptr(119210, 119213, 1), Range32), $clone(new Range32.ptr(917760, 917999, 1), Range32)]), 0); _Inscriptional_Pahlavi = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(68448, 68466, 1), Range32), $clone(new Range32.ptr(68472, 68479, 1), Range32)]), 0); _Inscriptional_Parthian = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(68416, 68437, 1), Range32), $clone(new Range32.ptr(68440, 68447, 1), Range32)]), 0); _Javanese = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(43392, 43469, 1), Range16), $clone(new Range16.ptr(43472, 43481, 1), Range16), $clone(new Range16.ptr(43486, 43487, 1), Range16)]), sliceType$1.nil, 0); - _Kaithi = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(69760, 69825, 1), Range32), $clone(new Range32.ptr(69837, 69837, 1), Range32)]), 0); - _Kannada = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(3200, 3212, 1), Range16), $clone(new Range16.ptr(3214, 3216, 1), Range16), $clone(new Range16.ptr(3218, 3240, 1), Range16), $clone(new Range16.ptr(3242, 3251, 1), Range16), $clone(new Range16.ptr(3253, 3257, 1), Range16), $clone(new Range16.ptr(3260, 3268, 1), Range16), $clone(new Range16.ptr(3270, 3272, 1), Range16), $clone(new Range16.ptr(3274, 3277, 1), Range16), $clone(new Range16.ptr(3285, 3286, 1), Range16), $clone(new Range16.ptr(3294, 3296, 2), Range16), $clone(new Range16.ptr(3297, 3299, 1), Range16), $clone(new Range16.ptr(3302, 3311, 1), Range16), $clone(new Range16.ptr(3313, 3314, 1), Range16)]), sliceType$1.nil, 0); - _Katakana = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(12449, 12538, 1), Range16), $clone(new Range16.ptr(12541, 12543, 1), Range16), $clone(new Range16.ptr(12784, 12799, 1), Range16), $clone(new Range16.ptr(13008, 13054, 1), Range16), $clone(new Range16.ptr(13056, 13143, 1), Range16), $clone(new Range16.ptr(65382, 65391, 1), Range16), $clone(new Range16.ptr(65393, 65437, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(110592, 110948, 356), Range32), $clone(new Range32.ptr(110949, 110951, 1), Range32)]), 0); + _Kaithi = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(69760, 69826, 1), Range32), $clone(new Range32.ptr(69837, 69837, 1), Range32)]), 0); + _Kannada = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(3200, 3212, 1), Range16), $clone(new Range16.ptr(3214, 3216, 1), Range16), $clone(new Range16.ptr(3218, 3240, 1), Range16), $clone(new Range16.ptr(3242, 3251, 1), Range16), $clone(new Range16.ptr(3253, 3257, 1), Range16), $clone(new Range16.ptr(3260, 3268, 1), Range16), $clone(new Range16.ptr(3270, 3272, 1), Range16), $clone(new Range16.ptr(3274, 3277, 1), Range16), $clone(new Range16.ptr(3285, 3286, 1), Range16), $clone(new Range16.ptr(3293, 3294, 1), Range16), $clone(new Range16.ptr(3296, 3299, 1), Range16), $clone(new Range16.ptr(3302, 3311, 1), Range16), $clone(new Range16.ptr(3313, 3315, 1), Range16)]), sliceType$1.nil, 0); + _Katakana = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(12449, 12538, 1), Range16), $clone(new Range16.ptr(12541, 12543, 1), Range16), $clone(new Range16.ptr(12784, 12799, 1), Range16), $clone(new Range16.ptr(13008, 13054, 1), Range16), $clone(new Range16.ptr(13056, 13143, 1), Range16), $clone(new Range16.ptr(65382, 65391, 1), Range16), $clone(new Range16.ptr(65393, 65437, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(110576, 110579, 1), Range32), $clone(new Range32.ptr(110581, 110587, 1), Range32), $clone(new Range32.ptr(110589, 110590, 1), Range32), $clone(new Range32.ptr(110592, 110880, 288), Range32), $clone(new Range32.ptr(110881, 110882, 1), Range32), $clone(new Range32.ptr(110933, 110948, 15), Range32), $clone(new Range32.ptr(110949, 110951, 1), Range32)]), 0); + _Kawi = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(73472, 73488, 1), Range32), $clone(new Range32.ptr(73490, 73530, 1), Range32), $clone(new Range32.ptr(73534, 73561, 1), Range32)]), 0); _Kayah_Li = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(43264, 43309, 1), Range16), $clone(new Range16.ptr(43311, 43311, 1), Range16)]), sliceType$1.nil, 0); _Kharoshthi = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(68096, 68099, 1), Range32), $clone(new Range32.ptr(68101, 68102, 1), Range32), $clone(new Range32.ptr(68108, 68115, 1), Range32), $clone(new Range32.ptr(68117, 68119, 1), Range32), $clone(new Range32.ptr(68121, 68149, 1), Range32), $clone(new Range32.ptr(68152, 68154, 1), Range32), $clone(new Range32.ptr(68159, 68168, 1), Range32), $clone(new Range32.ptr(68176, 68184, 1), Range32)]), 0); _Khitan_Small_Script = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(94180, 101120, 6940), Range32), $clone(new Range32.ptr(101121, 101589, 1), Range32)]), 0); _Khmer = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(6016, 6109, 1), Range16), $clone(new Range16.ptr(6112, 6121, 1), Range16), $clone(new Range16.ptr(6128, 6137, 1), Range16), $clone(new Range16.ptr(6624, 6655, 1), Range16)]), sliceType$1.nil, 0); - _Khojki = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(70144, 70161, 1), Range32), $clone(new Range32.ptr(70163, 70206, 1), Range32)]), 0); + _Khojki = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(70144, 70161, 1), Range32), $clone(new Range32.ptr(70163, 70209, 1), Range32)]), 0); _Khudawadi = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(70320, 70378, 1), Range32), $clone(new Range32.ptr(70384, 70393, 1), Range32)]), 0); - _Lao = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(3713, 3714, 1), Range16), $clone(new Range16.ptr(3716, 3718, 2), Range16), $clone(new Range16.ptr(3719, 3722, 1), Range16), $clone(new Range16.ptr(3724, 3747, 1), Range16), $clone(new Range16.ptr(3749, 3751, 2), Range16), $clone(new Range16.ptr(3752, 3773, 1), Range16), $clone(new Range16.ptr(3776, 3780, 1), Range16), $clone(new Range16.ptr(3782, 3784, 2), Range16), $clone(new Range16.ptr(3785, 3789, 1), Range16), $clone(new Range16.ptr(3792, 3801, 1), Range16), $clone(new Range16.ptr(3804, 3807, 1), Range16)]), sliceType$1.nil, 0); - _Latin = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(65, 90, 1), Range16), $clone(new Range16.ptr(97, 122, 1), Range16), $clone(new Range16.ptr(170, 186, 16), Range16), $clone(new Range16.ptr(192, 214, 1), Range16), $clone(new Range16.ptr(216, 246, 1), Range16), $clone(new Range16.ptr(248, 696, 1), Range16), $clone(new Range16.ptr(736, 740, 1), Range16), $clone(new Range16.ptr(7424, 7461, 1), Range16), $clone(new Range16.ptr(7468, 7516, 1), Range16), $clone(new Range16.ptr(7522, 7525, 1), Range16), $clone(new Range16.ptr(7531, 7543, 1), Range16), $clone(new Range16.ptr(7545, 7614, 1), Range16), $clone(new Range16.ptr(7680, 7935, 1), Range16), $clone(new Range16.ptr(8305, 8319, 14), Range16), $clone(new Range16.ptr(8336, 8348, 1), Range16), $clone(new Range16.ptr(8490, 8491, 1), Range16), $clone(new Range16.ptr(8498, 8526, 28), Range16), $clone(new Range16.ptr(8544, 8584, 1), Range16), $clone(new Range16.ptr(11360, 11391, 1), Range16), $clone(new Range16.ptr(42786, 42887, 1), Range16), $clone(new Range16.ptr(42891, 42943, 1), Range16), $clone(new Range16.ptr(42946, 42954, 1), Range16), $clone(new Range16.ptr(42997, 43007, 1), Range16), $clone(new Range16.ptr(43824, 43866, 1), Range16), $clone(new Range16.ptr(43868, 43876, 1), Range16), $clone(new Range16.ptr(43878, 43881, 1), Range16), $clone(new Range16.ptr(64256, 64262, 1), Range16), $clone(new Range16.ptr(65313, 65338, 1), Range16), $clone(new Range16.ptr(65345, 65370, 1), Range16)]), sliceType$1.nil, 5); + _Lao = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(3713, 3714, 1), Range16), $clone(new Range16.ptr(3716, 3718, 2), Range16), $clone(new Range16.ptr(3719, 3722, 1), Range16), $clone(new Range16.ptr(3724, 3747, 1), Range16), $clone(new Range16.ptr(3749, 3751, 2), Range16), $clone(new Range16.ptr(3752, 3773, 1), Range16), $clone(new Range16.ptr(3776, 3780, 1), Range16), $clone(new Range16.ptr(3782, 3784, 2), Range16), $clone(new Range16.ptr(3785, 3790, 1), Range16), $clone(new Range16.ptr(3792, 3801, 1), Range16), $clone(new Range16.ptr(3804, 3807, 1), Range16)]), sliceType$1.nil, 0); + _Latin = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(65, 90, 1), Range16), $clone(new Range16.ptr(97, 122, 1), Range16), $clone(new Range16.ptr(170, 186, 16), Range16), $clone(new Range16.ptr(192, 214, 1), Range16), $clone(new Range16.ptr(216, 246, 1), Range16), $clone(new Range16.ptr(248, 696, 1), Range16), $clone(new Range16.ptr(736, 740, 1), Range16), $clone(new Range16.ptr(7424, 7461, 1), Range16), $clone(new Range16.ptr(7468, 7516, 1), Range16), $clone(new Range16.ptr(7522, 7525, 1), Range16), $clone(new Range16.ptr(7531, 7543, 1), Range16), $clone(new Range16.ptr(7545, 7614, 1), Range16), $clone(new Range16.ptr(7680, 7935, 1), Range16), $clone(new Range16.ptr(8305, 8319, 14), Range16), $clone(new Range16.ptr(8336, 8348, 1), Range16), $clone(new Range16.ptr(8490, 8491, 1), Range16), $clone(new Range16.ptr(8498, 8526, 28), Range16), $clone(new Range16.ptr(8544, 8584, 1), Range16), $clone(new Range16.ptr(11360, 11391, 1), Range16), $clone(new Range16.ptr(42786, 42887, 1), Range16), $clone(new Range16.ptr(42891, 42954, 1), Range16), $clone(new Range16.ptr(42960, 42961, 1), Range16), $clone(new Range16.ptr(42963, 42965, 2), Range16), $clone(new Range16.ptr(42966, 42969, 1), Range16), $clone(new Range16.ptr(42994, 43007, 1), Range16), $clone(new Range16.ptr(43824, 43866, 1), Range16), $clone(new Range16.ptr(43868, 43876, 1), Range16), $clone(new Range16.ptr(43878, 43881, 1), Range16), $clone(new Range16.ptr(64256, 64262, 1), Range16), $clone(new Range16.ptr(65313, 65338, 1), Range16), $clone(new Range16.ptr(65345, 65370, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(67456, 67461, 1), Range32), $clone(new Range32.ptr(67463, 67504, 1), Range32), $clone(new Range32.ptr(67506, 67514, 1), Range32), $clone(new Range32.ptr(122624, 122654, 1), Range32), $clone(new Range32.ptr(122661, 122666, 1), Range32)]), 5); _Lepcha = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(7168, 7223, 1), Range16), $clone(new Range16.ptr(7227, 7241, 1), Range16), $clone(new Range16.ptr(7245, 7247, 1), Range16)]), sliceType$1.nil, 0); _Limbu = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(6400, 6430, 1), Range16), $clone(new Range16.ptr(6432, 6443, 1), Range16), $clone(new Range16.ptr(6448, 6459, 1), Range16), $clone(new Range16.ptr(6464, 6468, 4), Range16), $clone(new Range16.ptr(6469, 6479, 1), Range16)]), sliceType$1.nil, 0); _Linear_A = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(67072, 67382, 1), Range32), $clone(new Range32.ptr(67392, 67413, 1), Range32), $clone(new Range32.ptr(67424, 67431, 1), Range32)]), 0); @@ -12494,11 +10938,12 @@ $packages["unicode"] = (function() { _Meroitic_Hieroglyphs = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(67968, 67999, 1), Range32)]), 0); _Miao = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(93952, 94026, 1), Range32), $clone(new Range32.ptr(94031, 94087, 1), Range32), $clone(new Range32.ptr(94095, 94111, 1), Range32)]), 0); _Modi = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(71168, 71236, 1), Range32), $clone(new Range32.ptr(71248, 71257, 1), Range32)]), 0); - _Mongolian = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(6144, 6145, 1), Range16), $clone(new Range16.ptr(6148, 6150, 2), Range16), $clone(new Range16.ptr(6151, 6158, 1), Range16), $clone(new Range16.ptr(6160, 6169, 1), Range16), $clone(new Range16.ptr(6176, 6264, 1), Range16), $clone(new Range16.ptr(6272, 6314, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(71264, 71276, 1), Range32)]), 0); + _Mongolian = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(6144, 6145, 1), Range16), $clone(new Range16.ptr(6148, 6150, 2), Range16), $clone(new Range16.ptr(6151, 6169, 1), Range16), $clone(new Range16.ptr(6176, 6264, 1), Range16), $clone(new Range16.ptr(6272, 6314, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(71264, 71276, 1), Range32)]), 0); _Mro = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(92736, 92766, 1), Range32), $clone(new Range32.ptr(92768, 92777, 1), Range32), $clone(new Range32.ptr(92782, 92783, 1), Range32)]), 0); _Multani = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(70272, 70278, 1), Range32), $clone(new Range32.ptr(70280, 70282, 2), Range32), $clone(new Range32.ptr(70283, 70285, 1), Range32), $clone(new Range32.ptr(70287, 70301, 1), Range32), $clone(new Range32.ptr(70303, 70313, 1), Range32)]), 0); _Myanmar = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(4096, 4255, 1), Range16), $clone(new Range16.ptr(43488, 43518, 1), Range16), $clone(new Range16.ptr(43616, 43647, 1), Range16)]), sliceType$1.nil, 0); _Nabataean = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(67712, 67742, 1), Range32), $clone(new Range32.ptr(67751, 67759, 1), Range32)]), 0); + _Nag_Mundari = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(124112, 124153, 1), Range32)]), 0); _Nandinagari = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(72096, 72103, 1), Range32), $clone(new Range32.ptr(72106, 72151, 1), Range32), $clone(new Range32.ptr(72154, 72164, 1), Range32)]), 0); _New_Tai_Lue = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(6528, 6571, 1), Range16), $clone(new Range16.ptr(6576, 6601, 1), Range16), $clone(new Range16.ptr(6608, 6618, 1), Range16), $clone(new Range16.ptr(6622, 6623, 1), Range16)]), sliceType$1.nil, 0); _Newa = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(70656, 70747, 1), Range32), $clone(new Range32.ptr(70749, 70753, 1), Range32)]), 0); @@ -12515,6 +10960,7 @@ $packages["unicode"] = (function() { _Old_Sogdian = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(69376, 69415, 1), Range32)]), 0); _Old_South_Arabian = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(68192, 68223, 1), Range32)]), 0); _Old_Turkic = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(68608, 68680, 1), Range32)]), 0); + _Old_Uyghur = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(69488, 69513, 1), Range32)]), 0); _Oriya = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(2817, 2819, 1), Range16), $clone(new Range16.ptr(2821, 2828, 1), Range16), $clone(new Range16.ptr(2831, 2832, 1), Range16), $clone(new Range16.ptr(2835, 2856, 1), Range16), $clone(new Range16.ptr(2858, 2864, 1), Range16), $clone(new Range16.ptr(2866, 2867, 1), Range16), $clone(new Range16.ptr(2869, 2873, 1), Range16), $clone(new Range16.ptr(2876, 2884, 1), Range16), $clone(new Range16.ptr(2887, 2888, 1), Range16), $clone(new Range16.ptr(2891, 2893, 1), Range16), $clone(new Range16.ptr(2901, 2903, 1), Range16), $clone(new Range16.ptr(2908, 2909, 1), Range16), $clone(new Range16.ptr(2911, 2915, 1), Range16), $clone(new Range16.ptr(2918, 2935, 1), Range16)]), sliceType$1.nil, 0); _Osage = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(66736, 66771, 1), Range32), $clone(new Range32.ptr(66776, 66811, 1), Range32)]), 0); _Osmanya = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(66688, 66717, 1), Range32), $clone(new Range32.ptr(66720, 66729, 1), Range32)]), 0); @@ -12539,22 +10985,25 @@ $packages["unicode"] = (function() { _Sundanese = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(7040, 7103, 1), Range16), $clone(new Range16.ptr(7360, 7367, 1), Range16)]), sliceType$1.nil, 0); _Syloti_Nagri = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(43008, 43052, 1), Range16)]), sliceType$1.nil, 0); _Syriac = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(1792, 1805, 1), Range16), $clone(new Range16.ptr(1807, 1866, 1), Range16), $clone(new Range16.ptr(1869, 1871, 1), Range16), $clone(new Range16.ptr(2144, 2154, 1), Range16)]), sliceType$1.nil, 0); - _Tagalog = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(5888, 5900, 1), Range16), $clone(new Range16.ptr(5902, 5908, 1), Range16)]), sliceType$1.nil, 0); + _Tagalog = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(5888, 5909, 1), Range16), $clone(new Range16.ptr(5919, 5919, 1), Range16)]), sliceType$1.nil, 0); _Tagbanwa = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(5984, 5996, 1), Range16), $clone(new Range16.ptr(5998, 6000, 1), Range16), $clone(new Range16.ptr(6002, 6003, 1), Range16)]), sliceType$1.nil, 0); _Tai_Le = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(6480, 6509, 1), Range16), $clone(new Range16.ptr(6512, 6516, 1), Range16)]), sliceType$1.nil, 0); _Tai_Tham = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(6688, 6750, 1), Range16), $clone(new Range16.ptr(6752, 6780, 1), Range16), $clone(new Range16.ptr(6783, 6793, 1), Range16), $clone(new Range16.ptr(6800, 6809, 1), Range16), $clone(new Range16.ptr(6816, 6829, 1), Range16)]), sliceType$1.nil, 0); _Tai_Viet = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(43648, 43714, 1), Range16), $clone(new Range16.ptr(43739, 43743, 1), Range16)]), sliceType$1.nil, 0); - _Takri = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(71296, 71352, 1), Range32), $clone(new Range32.ptr(71360, 71369, 1), Range32)]), 0); + _Takri = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(71296, 71353, 1), Range32), $clone(new Range32.ptr(71360, 71369, 1), Range32)]), 0); _Tamil = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(2946, 2947, 1), Range16), $clone(new Range16.ptr(2949, 2954, 1), Range16), $clone(new Range16.ptr(2958, 2960, 1), Range16), $clone(new Range16.ptr(2962, 2965, 1), Range16), $clone(new Range16.ptr(2969, 2970, 1), Range16), $clone(new Range16.ptr(2972, 2974, 2), Range16), $clone(new Range16.ptr(2975, 2979, 4), Range16), $clone(new Range16.ptr(2980, 2984, 4), Range16), $clone(new Range16.ptr(2985, 2986, 1), Range16), $clone(new Range16.ptr(2990, 3001, 1), Range16), $clone(new Range16.ptr(3006, 3010, 1), Range16), $clone(new Range16.ptr(3014, 3016, 1), Range16), $clone(new Range16.ptr(3018, 3021, 1), Range16), $clone(new Range16.ptr(3024, 3031, 7), Range16), $clone(new Range16.ptr(3046, 3066, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(73664, 73713, 1), Range32), $clone(new Range32.ptr(73727, 73727, 1), Range32)]), 0); + _Tangsa = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(92784, 92862, 1), Range32), $clone(new Range32.ptr(92864, 92873, 1), Range32)]), 0); _Tangut = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(94176, 94208, 32), Range32), $clone(new Range32.ptr(94209, 100343, 1), Range32), $clone(new Range32.ptr(100352, 101119, 1), Range32), $clone(new Range32.ptr(101632, 101640, 1), Range32)]), 0); - _Telugu = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(3072, 3084, 1), Range16), $clone(new Range16.ptr(3086, 3088, 1), Range16), $clone(new Range16.ptr(3090, 3112, 1), Range16), $clone(new Range16.ptr(3114, 3129, 1), Range16), $clone(new Range16.ptr(3133, 3140, 1), Range16), $clone(new Range16.ptr(3142, 3144, 1), Range16), $clone(new Range16.ptr(3146, 3149, 1), Range16), $clone(new Range16.ptr(3157, 3158, 1), Range16), $clone(new Range16.ptr(3160, 3162, 1), Range16), $clone(new Range16.ptr(3168, 3171, 1), Range16), $clone(new Range16.ptr(3174, 3183, 1), Range16), $clone(new Range16.ptr(3191, 3199, 1), Range16)]), sliceType$1.nil, 0); + _Telugu = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(3072, 3084, 1), Range16), $clone(new Range16.ptr(3086, 3088, 1), Range16), $clone(new Range16.ptr(3090, 3112, 1), Range16), $clone(new Range16.ptr(3114, 3129, 1), Range16), $clone(new Range16.ptr(3132, 3140, 1), Range16), $clone(new Range16.ptr(3142, 3144, 1), Range16), $clone(new Range16.ptr(3146, 3149, 1), Range16), $clone(new Range16.ptr(3157, 3158, 1), Range16), $clone(new Range16.ptr(3160, 3162, 1), Range16), $clone(new Range16.ptr(3165, 3168, 3), Range16), $clone(new Range16.ptr(3169, 3171, 1), Range16), $clone(new Range16.ptr(3174, 3183, 1), Range16), $clone(new Range16.ptr(3191, 3199, 1), Range16)]), sliceType$1.nil, 0); _Thaana = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(1920, 1969, 1), Range16)]), sliceType$1.nil, 0); _Thai = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(3585, 3642, 1), Range16), $clone(new Range16.ptr(3648, 3675, 1), Range16)]), sliceType$1.nil, 0); _Tibetan = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(3840, 3911, 1), Range16), $clone(new Range16.ptr(3913, 3948, 1), Range16), $clone(new Range16.ptr(3953, 3991, 1), Range16), $clone(new Range16.ptr(3993, 4028, 1), Range16), $clone(new Range16.ptr(4030, 4044, 1), Range16), $clone(new Range16.ptr(4046, 4052, 1), Range16), $clone(new Range16.ptr(4057, 4058, 1), Range16)]), sliceType$1.nil, 0); _Tifinagh = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(11568, 11623, 1), Range16), $clone(new Range16.ptr(11631, 11632, 1), Range16), $clone(new Range16.ptr(11647, 11647, 1), Range16)]), sliceType$1.nil, 0); _Tirhuta = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(70784, 70855, 1), Range32), $clone(new Range32.ptr(70864, 70873, 1), Range32)]), 0); + _Toto = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(123536, 123566, 1), Range32)]), 0); _Ugaritic = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(66432, 66461, 1), Range32), $clone(new Range32.ptr(66463, 66463, 1), Range32)]), 0); _Vai = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(42240, 42539, 1), Range16)]), sliceType$1.nil, 0); + _Vithkuqi = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(66928, 66938, 1), Range32), $clone(new Range32.ptr(66940, 66954, 1), Range32), $clone(new Range32.ptr(66956, 66962, 1), Range32), $clone(new Range32.ptr(66964, 66965, 1), Range32), $clone(new Range32.ptr(66967, 66977, 1), Range32), $clone(new Range32.ptr(66979, 66993, 1), Range32), $clone(new Range32.ptr(66995, 67001, 1), Range32), $clone(new Range32.ptr(67003, 67004, 1), Range32)]), 0); _Wancho = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(123584, 123641, 1), Range32), $clone(new Range32.ptr(123647, 123647, 1), Range32)]), 0); _Warang_Citi = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(71840, 71922, 1), Range32), $clone(new Range32.ptr(71935, 71935, 1), Range32)]), 0); _Yezidi = new RangeTable.ptr(new sliceType([]), new sliceType$1([$clone(new Range32.ptr(69248, 69289, 1), Range32), $clone(new Range32.ptr(69291, 69293, 1), Range32), $clone(new Range32.ptr(69296, 69297, 1), Range32)]), 0); @@ -12588,6 +11037,7 @@ $packages["unicode"] = (function() { $pkg.Coptic = _Coptic; $pkg.Cuneiform = _Cuneiform; $pkg.Cypriot = _Cypriot; + $pkg.Cypro_Minoan = _Cypro_Minoan; $pkg.Cyrillic = _Cyrillic; $pkg.Deseret = _Deseret; $pkg.Devanagari = _Devanagari; @@ -12621,6 +11071,7 @@ $packages["unicode"] = (function() { $pkg.Kaithi = _Kaithi; $pkg.Kannada = _Kannada; $pkg.Katakana = _Katakana; + $pkg.Kawi = _Kawi; $pkg.Kayah_Li = _Kayah_Li; $pkg.Kharoshthi = _Kharoshthi; $pkg.Khitan_Small_Script = _Khitan_Small_Script; @@ -12655,6 +11106,7 @@ $packages["unicode"] = (function() { $pkg.Multani = _Multani; $pkg.Myanmar = _Myanmar; $pkg.Nabataean = _Nabataean; + $pkg.Nag_Mundari = _Nag_Mundari; $pkg.Nandinagari = _Nandinagari; $pkg.New_Tai_Lue = _New_Tai_Lue; $pkg.Newa = _Newa; @@ -12671,6 +11123,7 @@ $packages["unicode"] = (function() { $pkg.Old_Sogdian = _Old_Sogdian; $pkg.Old_South_Arabian = _Old_South_Arabian; $pkg.Old_Turkic = _Old_Turkic; + $pkg.Old_Uyghur = _Old_Uyghur; $pkg.Oriya = _Oriya; $pkg.Osage = _Osage; $pkg.Osmanya = _Osmanya; @@ -12702,6 +11155,7 @@ $packages["unicode"] = (function() { $pkg.Tai_Viet = _Tai_Viet; $pkg.Takri = _Takri; $pkg.Tamil = _Tamil; + $pkg.Tangsa = _Tangsa; $pkg.Tangut = _Tangut; $pkg.Telugu = _Telugu; $pkg.Thaana = _Thaana; @@ -12709,25 +11163,27 @@ $packages["unicode"] = (function() { $pkg.Tibetan = _Tibetan; $pkg.Tifinagh = _Tifinagh; $pkg.Tirhuta = _Tirhuta; + $pkg.Toto = _Toto; $pkg.Ugaritic = _Ugaritic; $pkg.Vai = _Vai; + $pkg.Vithkuqi = _Vithkuqi; $pkg.Wancho = _Wancho; $pkg.Warang_Citi = _Warang_Citi; $pkg.Yezidi = _Yezidi; $pkg.Yi = _Yi; $pkg.Zanabazar_Square = _Zanabazar_Square; - $pkg.Scripts = $makeMap($String.keyFor, [{ k: "Adlam", v: $pkg.Adlam }, { k: "Ahom", v: $pkg.Ahom }, { k: "Anatolian_Hieroglyphs", v: $pkg.Anatolian_Hieroglyphs }, { k: "Arabic", v: $pkg.Arabic }, { k: "Armenian", v: $pkg.Armenian }, { k: "Avestan", v: $pkg.Avestan }, { k: "Balinese", v: $pkg.Balinese }, { k: "Bamum", v: $pkg.Bamum }, { k: "Bassa_Vah", v: $pkg.Bassa_Vah }, { k: "Batak", v: $pkg.Batak }, { k: "Bengali", v: $pkg.Bengali }, { k: "Bhaiksuki", v: $pkg.Bhaiksuki }, { k: "Bopomofo", v: $pkg.Bopomofo }, { k: "Brahmi", v: $pkg.Brahmi }, { k: "Braille", v: $pkg.Braille }, { k: "Buginese", v: $pkg.Buginese }, { k: "Buhid", v: $pkg.Buhid }, { k: "Canadian_Aboriginal", v: $pkg.Canadian_Aboriginal }, { k: "Carian", v: $pkg.Carian }, { k: "Caucasian_Albanian", v: $pkg.Caucasian_Albanian }, { k: "Chakma", v: $pkg.Chakma }, { k: "Cham", v: $pkg.Cham }, { k: "Cherokee", v: $pkg.Cherokee }, { k: "Chorasmian", v: $pkg.Chorasmian }, { k: "Common", v: $pkg.Common }, { k: "Coptic", v: $pkg.Coptic }, { k: "Cuneiform", v: $pkg.Cuneiform }, { k: "Cypriot", v: $pkg.Cypriot }, { k: "Cyrillic", v: $pkg.Cyrillic }, { k: "Deseret", v: $pkg.Deseret }, { k: "Devanagari", v: $pkg.Devanagari }, { k: "Dives_Akuru", v: $pkg.Dives_Akuru }, { k: "Dogra", v: $pkg.Dogra }, { k: "Duployan", v: $pkg.Duployan }, { k: "Egyptian_Hieroglyphs", v: $pkg.Egyptian_Hieroglyphs }, { k: "Elbasan", v: $pkg.Elbasan }, { k: "Elymaic", v: $pkg.Elymaic }, { k: "Ethiopic", v: $pkg.Ethiopic }, { k: "Georgian", v: $pkg.Georgian }, { k: "Glagolitic", v: $pkg.Glagolitic }, { k: "Gothic", v: $pkg.Gothic }, { k: "Grantha", v: $pkg.Grantha }, { k: "Greek", v: $pkg.Greek }, { k: "Gujarati", v: $pkg.Gujarati }, { k: "Gunjala_Gondi", v: $pkg.Gunjala_Gondi }, { k: "Gurmukhi", v: $pkg.Gurmukhi }, { k: "Han", v: $pkg.Han }, { k: "Hangul", v: $pkg.Hangul }, { k: "Hanifi_Rohingya", v: $pkg.Hanifi_Rohingya }, { k: "Hanunoo", v: $pkg.Hanunoo }, { k: "Hatran", v: $pkg.Hatran }, { k: "Hebrew", v: $pkg.Hebrew }, { k: "Hiragana", v: $pkg.Hiragana }, { k: "Imperial_Aramaic", v: $pkg.Imperial_Aramaic }, { k: "Inherited", v: $pkg.Inherited }, { k: "Inscriptional_Pahlavi", v: $pkg.Inscriptional_Pahlavi }, { k: "Inscriptional_Parthian", v: $pkg.Inscriptional_Parthian }, { k: "Javanese", v: $pkg.Javanese }, { k: "Kaithi", v: $pkg.Kaithi }, { k: "Kannada", v: $pkg.Kannada }, { k: "Katakana", v: $pkg.Katakana }, { k: "Kayah_Li", v: $pkg.Kayah_Li }, { k: "Kharoshthi", v: $pkg.Kharoshthi }, { k: "Khitan_Small_Script", v: $pkg.Khitan_Small_Script }, { k: "Khmer", v: $pkg.Khmer }, { k: "Khojki", v: $pkg.Khojki }, { k: "Khudawadi", v: $pkg.Khudawadi }, { k: "Lao", v: $pkg.Lao }, { k: "Latin", v: $pkg.Latin }, { k: "Lepcha", v: $pkg.Lepcha }, { k: "Limbu", v: $pkg.Limbu }, { k: "Linear_A", v: $pkg.Linear_A }, { k: "Linear_B", v: $pkg.Linear_B }, { k: "Lisu", v: $pkg.Lisu }, { k: "Lycian", v: $pkg.Lycian }, { k: "Lydian", v: $pkg.Lydian }, { k: "Mahajani", v: $pkg.Mahajani }, { k: "Makasar", v: $pkg.Makasar }, { k: "Malayalam", v: $pkg.Malayalam }, { k: "Mandaic", v: $pkg.Mandaic }, { k: "Manichaean", v: $pkg.Manichaean }, { k: "Marchen", v: $pkg.Marchen }, { k: "Masaram_Gondi", v: $pkg.Masaram_Gondi }, { k: "Medefaidrin", v: $pkg.Medefaidrin }, { k: "Meetei_Mayek", v: $pkg.Meetei_Mayek }, { k: "Mende_Kikakui", v: $pkg.Mende_Kikakui }, { k: "Meroitic_Cursive", v: $pkg.Meroitic_Cursive }, { k: "Meroitic_Hieroglyphs", v: $pkg.Meroitic_Hieroglyphs }, { k: "Miao", v: $pkg.Miao }, { k: "Modi", v: $pkg.Modi }, { k: "Mongolian", v: $pkg.Mongolian }, { k: "Mro", v: $pkg.Mro }, { k: "Multani", v: $pkg.Multani }, { k: "Myanmar", v: $pkg.Myanmar }, { k: "Nabataean", v: $pkg.Nabataean }, { k: "Nandinagari", v: $pkg.Nandinagari }, { k: "New_Tai_Lue", v: $pkg.New_Tai_Lue }, { k: "Newa", v: $pkg.Newa }, { k: "Nko", v: $pkg.Nko }, { k: "Nushu", v: $pkg.Nushu }, { k: "Nyiakeng_Puachue_Hmong", v: $pkg.Nyiakeng_Puachue_Hmong }, { k: "Ogham", v: $pkg.Ogham }, { k: "Ol_Chiki", v: $pkg.Ol_Chiki }, { k: "Old_Hungarian", v: $pkg.Old_Hungarian }, { k: "Old_Italic", v: $pkg.Old_Italic }, { k: "Old_North_Arabian", v: $pkg.Old_North_Arabian }, { k: "Old_Permic", v: $pkg.Old_Permic }, { k: "Old_Persian", v: $pkg.Old_Persian }, { k: "Old_Sogdian", v: $pkg.Old_Sogdian }, { k: "Old_South_Arabian", v: $pkg.Old_South_Arabian }, { k: "Old_Turkic", v: $pkg.Old_Turkic }, { k: "Oriya", v: $pkg.Oriya }, { k: "Osage", v: $pkg.Osage }, { k: "Osmanya", v: $pkg.Osmanya }, { k: "Pahawh_Hmong", v: $pkg.Pahawh_Hmong }, { k: "Palmyrene", v: $pkg.Palmyrene }, { k: "Pau_Cin_Hau", v: $pkg.Pau_Cin_Hau }, { k: "Phags_Pa", v: $pkg.Phags_Pa }, { k: "Phoenician", v: $pkg.Phoenician }, { k: "Psalter_Pahlavi", v: $pkg.Psalter_Pahlavi }, { k: "Rejang", v: $pkg.Rejang }, { k: "Runic", v: $pkg.Runic }, { k: "Samaritan", v: $pkg.Samaritan }, { k: "Saurashtra", v: $pkg.Saurashtra }, { k: "Sharada", v: $pkg.Sharada }, { k: "Shavian", v: $pkg.Shavian }, { k: "Siddham", v: $pkg.Siddham }, { k: "SignWriting", v: $pkg.SignWriting }, { k: "Sinhala", v: $pkg.Sinhala }, { k: "Sogdian", v: $pkg.Sogdian }, { k: "Sora_Sompeng", v: $pkg.Sora_Sompeng }, { k: "Soyombo", v: $pkg.Soyombo }, { k: "Sundanese", v: $pkg.Sundanese }, { k: "Syloti_Nagri", v: $pkg.Syloti_Nagri }, { k: "Syriac", v: $pkg.Syriac }, { k: "Tagalog", v: $pkg.Tagalog }, { k: "Tagbanwa", v: $pkg.Tagbanwa }, { k: "Tai_Le", v: $pkg.Tai_Le }, { k: "Tai_Tham", v: $pkg.Tai_Tham }, { k: "Tai_Viet", v: $pkg.Tai_Viet }, { k: "Takri", v: $pkg.Takri }, { k: "Tamil", v: $pkg.Tamil }, { k: "Tangut", v: $pkg.Tangut }, { k: "Telugu", v: $pkg.Telugu }, { k: "Thaana", v: $pkg.Thaana }, { k: "Thai", v: $pkg.Thai }, { k: "Tibetan", v: $pkg.Tibetan }, { k: "Tifinagh", v: $pkg.Tifinagh }, { k: "Tirhuta", v: $pkg.Tirhuta }, { k: "Ugaritic", v: $pkg.Ugaritic }, { k: "Vai", v: $pkg.Vai }, { k: "Wancho", v: $pkg.Wancho }, { k: "Warang_Citi", v: $pkg.Warang_Citi }, { k: "Yezidi", v: $pkg.Yezidi }, { k: "Yi", v: $pkg.Yi }, { k: "Zanabazar_Square", v: $pkg.Zanabazar_Square }]); + $pkg.Scripts = $makeMap($String.keyFor, [{ k: "Adlam", v: $pkg.Adlam }, { k: "Ahom", v: $pkg.Ahom }, { k: "Anatolian_Hieroglyphs", v: $pkg.Anatolian_Hieroglyphs }, { k: "Arabic", v: $pkg.Arabic }, { k: "Armenian", v: $pkg.Armenian }, { k: "Avestan", v: $pkg.Avestan }, { k: "Balinese", v: $pkg.Balinese }, { k: "Bamum", v: $pkg.Bamum }, { k: "Bassa_Vah", v: $pkg.Bassa_Vah }, { k: "Batak", v: $pkg.Batak }, { k: "Bengali", v: $pkg.Bengali }, { k: "Bhaiksuki", v: $pkg.Bhaiksuki }, { k: "Bopomofo", v: $pkg.Bopomofo }, { k: "Brahmi", v: $pkg.Brahmi }, { k: "Braille", v: $pkg.Braille }, { k: "Buginese", v: $pkg.Buginese }, { k: "Buhid", v: $pkg.Buhid }, { k: "Canadian_Aboriginal", v: $pkg.Canadian_Aboriginal }, { k: "Carian", v: $pkg.Carian }, { k: "Caucasian_Albanian", v: $pkg.Caucasian_Albanian }, { k: "Chakma", v: $pkg.Chakma }, { k: "Cham", v: $pkg.Cham }, { k: "Cherokee", v: $pkg.Cherokee }, { k: "Chorasmian", v: $pkg.Chorasmian }, { k: "Common", v: $pkg.Common }, { k: "Coptic", v: $pkg.Coptic }, { k: "Cuneiform", v: $pkg.Cuneiform }, { k: "Cypriot", v: $pkg.Cypriot }, { k: "Cypro_Minoan", v: $pkg.Cypro_Minoan }, { k: "Cyrillic", v: $pkg.Cyrillic }, { k: "Deseret", v: $pkg.Deseret }, { k: "Devanagari", v: $pkg.Devanagari }, { k: "Dives_Akuru", v: $pkg.Dives_Akuru }, { k: "Dogra", v: $pkg.Dogra }, { k: "Duployan", v: $pkg.Duployan }, { k: "Egyptian_Hieroglyphs", v: $pkg.Egyptian_Hieroglyphs }, { k: "Elbasan", v: $pkg.Elbasan }, { k: "Elymaic", v: $pkg.Elymaic }, { k: "Ethiopic", v: $pkg.Ethiopic }, { k: "Georgian", v: $pkg.Georgian }, { k: "Glagolitic", v: $pkg.Glagolitic }, { k: "Gothic", v: $pkg.Gothic }, { k: "Grantha", v: $pkg.Grantha }, { k: "Greek", v: $pkg.Greek }, { k: "Gujarati", v: $pkg.Gujarati }, { k: "Gunjala_Gondi", v: $pkg.Gunjala_Gondi }, { k: "Gurmukhi", v: $pkg.Gurmukhi }, { k: "Han", v: $pkg.Han }, { k: "Hangul", v: $pkg.Hangul }, { k: "Hanifi_Rohingya", v: $pkg.Hanifi_Rohingya }, { k: "Hanunoo", v: $pkg.Hanunoo }, { k: "Hatran", v: $pkg.Hatran }, { k: "Hebrew", v: $pkg.Hebrew }, { k: "Hiragana", v: $pkg.Hiragana }, { k: "Imperial_Aramaic", v: $pkg.Imperial_Aramaic }, { k: "Inherited", v: $pkg.Inherited }, { k: "Inscriptional_Pahlavi", v: $pkg.Inscriptional_Pahlavi }, { k: "Inscriptional_Parthian", v: $pkg.Inscriptional_Parthian }, { k: "Javanese", v: $pkg.Javanese }, { k: "Kaithi", v: $pkg.Kaithi }, { k: "Kannada", v: $pkg.Kannada }, { k: "Katakana", v: $pkg.Katakana }, { k: "Kawi", v: $pkg.Kawi }, { k: "Kayah_Li", v: $pkg.Kayah_Li }, { k: "Kharoshthi", v: $pkg.Kharoshthi }, { k: "Khitan_Small_Script", v: $pkg.Khitan_Small_Script }, { k: "Khmer", v: $pkg.Khmer }, { k: "Khojki", v: $pkg.Khojki }, { k: "Khudawadi", v: $pkg.Khudawadi }, { k: "Lao", v: $pkg.Lao }, { k: "Latin", v: $pkg.Latin }, { k: "Lepcha", v: $pkg.Lepcha }, { k: "Limbu", v: $pkg.Limbu }, { k: "Linear_A", v: $pkg.Linear_A }, { k: "Linear_B", v: $pkg.Linear_B }, { k: "Lisu", v: $pkg.Lisu }, { k: "Lycian", v: $pkg.Lycian }, { k: "Lydian", v: $pkg.Lydian }, { k: "Mahajani", v: $pkg.Mahajani }, { k: "Makasar", v: $pkg.Makasar }, { k: "Malayalam", v: $pkg.Malayalam }, { k: "Mandaic", v: $pkg.Mandaic }, { k: "Manichaean", v: $pkg.Manichaean }, { k: "Marchen", v: $pkg.Marchen }, { k: "Masaram_Gondi", v: $pkg.Masaram_Gondi }, { k: "Medefaidrin", v: $pkg.Medefaidrin }, { k: "Meetei_Mayek", v: $pkg.Meetei_Mayek }, { k: "Mende_Kikakui", v: $pkg.Mende_Kikakui }, { k: "Meroitic_Cursive", v: $pkg.Meroitic_Cursive }, { k: "Meroitic_Hieroglyphs", v: $pkg.Meroitic_Hieroglyphs }, { k: "Miao", v: $pkg.Miao }, { k: "Modi", v: $pkg.Modi }, { k: "Mongolian", v: $pkg.Mongolian }, { k: "Mro", v: $pkg.Mro }, { k: "Multani", v: $pkg.Multani }, { k: "Myanmar", v: $pkg.Myanmar }, { k: "Nabataean", v: $pkg.Nabataean }, { k: "Nag_Mundari", v: $pkg.Nag_Mundari }, { k: "Nandinagari", v: $pkg.Nandinagari }, { k: "New_Tai_Lue", v: $pkg.New_Tai_Lue }, { k: "Newa", v: $pkg.Newa }, { k: "Nko", v: $pkg.Nko }, { k: "Nushu", v: $pkg.Nushu }, { k: "Nyiakeng_Puachue_Hmong", v: $pkg.Nyiakeng_Puachue_Hmong }, { k: "Ogham", v: $pkg.Ogham }, { k: "Ol_Chiki", v: $pkg.Ol_Chiki }, { k: "Old_Hungarian", v: $pkg.Old_Hungarian }, { k: "Old_Italic", v: $pkg.Old_Italic }, { k: "Old_North_Arabian", v: $pkg.Old_North_Arabian }, { k: "Old_Permic", v: $pkg.Old_Permic }, { k: "Old_Persian", v: $pkg.Old_Persian }, { k: "Old_Sogdian", v: $pkg.Old_Sogdian }, { k: "Old_South_Arabian", v: $pkg.Old_South_Arabian }, { k: "Old_Turkic", v: $pkg.Old_Turkic }, { k: "Old_Uyghur", v: $pkg.Old_Uyghur }, { k: "Oriya", v: $pkg.Oriya }, { k: "Osage", v: $pkg.Osage }, { k: "Osmanya", v: $pkg.Osmanya }, { k: "Pahawh_Hmong", v: $pkg.Pahawh_Hmong }, { k: "Palmyrene", v: $pkg.Palmyrene }, { k: "Pau_Cin_Hau", v: $pkg.Pau_Cin_Hau }, { k: "Phags_Pa", v: $pkg.Phags_Pa }, { k: "Phoenician", v: $pkg.Phoenician }, { k: "Psalter_Pahlavi", v: $pkg.Psalter_Pahlavi }, { k: "Rejang", v: $pkg.Rejang }, { k: "Runic", v: $pkg.Runic }, { k: "Samaritan", v: $pkg.Samaritan }, { k: "Saurashtra", v: $pkg.Saurashtra }, { k: "Sharada", v: $pkg.Sharada }, { k: "Shavian", v: $pkg.Shavian }, { k: "Siddham", v: $pkg.Siddham }, { k: "SignWriting", v: $pkg.SignWriting }, { k: "Sinhala", v: $pkg.Sinhala }, { k: "Sogdian", v: $pkg.Sogdian }, { k: "Sora_Sompeng", v: $pkg.Sora_Sompeng }, { k: "Soyombo", v: $pkg.Soyombo }, { k: "Sundanese", v: $pkg.Sundanese }, { k: "Syloti_Nagri", v: $pkg.Syloti_Nagri }, { k: "Syriac", v: $pkg.Syriac }, { k: "Tagalog", v: $pkg.Tagalog }, { k: "Tagbanwa", v: $pkg.Tagbanwa }, { k: "Tai_Le", v: $pkg.Tai_Le }, { k: "Tai_Tham", v: $pkg.Tai_Tham }, { k: "Tai_Viet", v: $pkg.Tai_Viet }, { k: "Takri", v: $pkg.Takri }, { k: "Tamil", v: $pkg.Tamil }, { k: "Tangsa", v: $pkg.Tangsa }, { k: "Tangut", v: $pkg.Tangut }, { k: "Telugu", v: $pkg.Telugu }, { k: "Thaana", v: $pkg.Thaana }, { k: "Thai", v: $pkg.Thai }, { k: "Tibetan", v: $pkg.Tibetan }, { k: "Tifinagh", v: $pkg.Tifinagh }, { k: "Tirhuta", v: $pkg.Tirhuta }, { k: "Toto", v: $pkg.Toto }, { k: "Ugaritic", v: $pkg.Ugaritic }, { k: "Vai", v: $pkg.Vai }, { k: "Vithkuqi", v: $pkg.Vithkuqi }, { k: "Wancho", v: $pkg.Wancho }, { k: "Warang_Citi", v: $pkg.Warang_Citi }, { k: "Yezidi", v: $pkg.Yezidi }, { k: "Yi", v: $pkg.Yi }, { k: "Zanabazar_Square", v: $pkg.Zanabazar_Square }]); _White_Space = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(9, 13, 1), Range16), $clone(new Range16.ptr(32, 133, 101), Range16), $clone(new Range16.ptr(160, 5760, 5600), Range16), $clone(new Range16.ptr(8192, 8202, 1), Range16), $clone(new Range16.ptr(8232, 8233, 1), Range16), $clone(new Range16.ptr(8239, 8287, 48), Range16), $clone(new Range16.ptr(12288, 12288, 1), Range16)]), sliceType$1.nil, 2); $pkg.White_Space = _White_Space; - _CaseRanges = new sliceType$2([$clone(new CaseRange.ptr(65, 90, $clone($toNativeArray($kindInt32, [0, 32, 0]), d)), CaseRange), $clone(new CaseRange.ptr(97, 122, $clone($toNativeArray($kindInt32, [-32, 0, -32]), d)), CaseRange), $clone(new CaseRange.ptr(181, 181, $clone($toNativeArray($kindInt32, [743, 0, 743]), d)), CaseRange), $clone(new CaseRange.ptr(192, 214, $clone($toNativeArray($kindInt32, [0, 32, 0]), d)), CaseRange), $clone(new CaseRange.ptr(216, 222, $clone($toNativeArray($kindInt32, [0, 32, 0]), d)), CaseRange), $clone(new CaseRange.ptr(224, 246, $clone($toNativeArray($kindInt32, [-32, 0, -32]), d)), CaseRange), $clone(new CaseRange.ptr(248, 254, $clone($toNativeArray($kindInt32, [-32, 0, -32]), d)), CaseRange), $clone(new CaseRange.ptr(255, 255, $clone($toNativeArray($kindInt32, [121, 0, 121]), d)), CaseRange), $clone(new CaseRange.ptr(256, 303, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(304, 304, $clone($toNativeArray($kindInt32, [0, -199, 0]), d)), CaseRange), $clone(new CaseRange.ptr(305, 305, $clone($toNativeArray($kindInt32, [-232, 0, -232]), d)), CaseRange), $clone(new CaseRange.ptr(306, 311, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(313, 328, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(330, 375, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(376, 376, $clone($toNativeArray($kindInt32, [0, -121, 0]), d)), CaseRange), $clone(new CaseRange.ptr(377, 382, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(383, 383, $clone($toNativeArray($kindInt32, [-300, 0, -300]), d)), CaseRange), $clone(new CaseRange.ptr(384, 384, $clone($toNativeArray($kindInt32, [195, 0, 195]), d)), CaseRange), $clone(new CaseRange.ptr(385, 385, $clone($toNativeArray($kindInt32, [0, 210, 0]), d)), CaseRange), $clone(new CaseRange.ptr(386, 389, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(390, 390, $clone($toNativeArray($kindInt32, [0, 206, 0]), d)), CaseRange), $clone(new CaseRange.ptr(391, 392, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(393, 394, $clone($toNativeArray($kindInt32, [0, 205, 0]), d)), CaseRange), $clone(new CaseRange.ptr(395, 396, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(398, 398, $clone($toNativeArray($kindInt32, [0, 79, 0]), d)), CaseRange), $clone(new CaseRange.ptr(399, 399, $clone($toNativeArray($kindInt32, [0, 202, 0]), d)), CaseRange), $clone(new CaseRange.ptr(400, 400, $clone($toNativeArray($kindInt32, [0, 203, 0]), d)), CaseRange), $clone(new CaseRange.ptr(401, 402, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(403, 403, $clone($toNativeArray($kindInt32, [0, 205, 0]), d)), CaseRange), $clone(new CaseRange.ptr(404, 404, $clone($toNativeArray($kindInt32, [0, 207, 0]), d)), CaseRange), $clone(new CaseRange.ptr(405, 405, $clone($toNativeArray($kindInt32, [97, 0, 97]), d)), CaseRange), $clone(new CaseRange.ptr(406, 406, $clone($toNativeArray($kindInt32, [0, 211, 0]), d)), CaseRange), $clone(new CaseRange.ptr(407, 407, $clone($toNativeArray($kindInt32, [0, 209, 0]), d)), CaseRange), $clone(new CaseRange.ptr(408, 409, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(410, 410, $clone($toNativeArray($kindInt32, [163, 0, 163]), d)), CaseRange), $clone(new CaseRange.ptr(412, 412, $clone($toNativeArray($kindInt32, [0, 211, 0]), d)), CaseRange), $clone(new CaseRange.ptr(413, 413, $clone($toNativeArray($kindInt32, [0, 213, 0]), d)), CaseRange), $clone(new CaseRange.ptr(414, 414, $clone($toNativeArray($kindInt32, [130, 0, 130]), d)), CaseRange), $clone(new CaseRange.ptr(415, 415, $clone($toNativeArray($kindInt32, [0, 214, 0]), d)), CaseRange), $clone(new CaseRange.ptr(416, 421, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(422, 422, $clone($toNativeArray($kindInt32, [0, 218, 0]), d)), CaseRange), $clone(new CaseRange.ptr(423, 424, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(425, 425, $clone($toNativeArray($kindInt32, [0, 218, 0]), d)), CaseRange), $clone(new CaseRange.ptr(428, 429, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(430, 430, $clone($toNativeArray($kindInt32, [0, 218, 0]), d)), CaseRange), $clone(new CaseRange.ptr(431, 432, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(433, 434, $clone($toNativeArray($kindInt32, [0, 217, 0]), d)), CaseRange), $clone(new CaseRange.ptr(435, 438, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(439, 439, $clone($toNativeArray($kindInt32, [0, 219, 0]), d)), CaseRange), $clone(new CaseRange.ptr(440, 441, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(444, 445, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(447, 447, $clone($toNativeArray($kindInt32, [56, 0, 56]), d)), CaseRange), $clone(new CaseRange.ptr(452, 452, $clone($toNativeArray($kindInt32, [0, 2, 1]), d)), CaseRange), $clone(new CaseRange.ptr(453, 453, $clone($toNativeArray($kindInt32, [-1, 1, 0]), d)), CaseRange), $clone(new CaseRange.ptr(454, 454, $clone($toNativeArray($kindInt32, [-2, 0, -1]), d)), CaseRange), $clone(new CaseRange.ptr(455, 455, $clone($toNativeArray($kindInt32, [0, 2, 1]), d)), CaseRange), $clone(new CaseRange.ptr(456, 456, $clone($toNativeArray($kindInt32, [-1, 1, 0]), d)), CaseRange), $clone(new CaseRange.ptr(457, 457, $clone($toNativeArray($kindInt32, [-2, 0, -1]), d)), CaseRange), $clone(new CaseRange.ptr(458, 458, $clone($toNativeArray($kindInt32, [0, 2, 1]), d)), CaseRange), $clone(new CaseRange.ptr(459, 459, $clone($toNativeArray($kindInt32, [-1, 1, 0]), d)), CaseRange), $clone(new CaseRange.ptr(460, 460, $clone($toNativeArray($kindInt32, [-2, 0, -1]), d)), CaseRange), $clone(new CaseRange.ptr(461, 476, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(477, 477, $clone($toNativeArray($kindInt32, [-79, 0, -79]), d)), CaseRange), $clone(new CaseRange.ptr(478, 495, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(497, 497, $clone($toNativeArray($kindInt32, [0, 2, 1]), d)), CaseRange), $clone(new CaseRange.ptr(498, 498, $clone($toNativeArray($kindInt32, [-1, 1, 0]), d)), CaseRange), $clone(new CaseRange.ptr(499, 499, $clone($toNativeArray($kindInt32, [-2, 0, -1]), d)), CaseRange), $clone(new CaseRange.ptr(500, 501, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(502, 502, $clone($toNativeArray($kindInt32, [0, -97, 0]), d)), CaseRange), $clone(new CaseRange.ptr(503, 503, $clone($toNativeArray($kindInt32, [0, -56, 0]), d)), CaseRange), $clone(new CaseRange.ptr(504, 543, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(544, 544, $clone($toNativeArray($kindInt32, [0, -130, 0]), d)), CaseRange), $clone(new CaseRange.ptr(546, 563, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(570, 570, $clone($toNativeArray($kindInt32, [0, 10795, 0]), d)), CaseRange), $clone(new CaseRange.ptr(571, 572, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(573, 573, $clone($toNativeArray($kindInt32, [0, -163, 0]), d)), CaseRange), $clone(new CaseRange.ptr(574, 574, $clone($toNativeArray($kindInt32, [0, 10792, 0]), d)), CaseRange), $clone(new CaseRange.ptr(575, 576, $clone($toNativeArray($kindInt32, [10815, 0, 10815]), d)), CaseRange), $clone(new CaseRange.ptr(577, 578, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(579, 579, $clone($toNativeArray($kindInt32, [0, -195, 0]), d)), CaseRange), $clone(new CaseRange.ptr(580, 580, $clone($toNativeArray($kindInt32, [0, 69, 0]), d)), CaseRange), $clone(new CaseRange.ptr(581, 581, $clone($toNativeArray($kindInt32, [0, 71, 0]), d)), CaseRange), $clone(new CaseRange.ptr(582, 591, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(592, 592, $clone($toNativeArray($kindInt32, [10783, 0, 10783]), d)), CaseRange), $clone(new CaseRange.ptr(593, 593, $clone($toNativeArray($kindInt32, [10780, 0, 10780]), d)), CaseRange), $clone(new CaseRange.ptr(594, 594, $clone($toNativeArray($kindInt32, [10782, 0, 10782]), d)), CaseRange), $clone(new CaseRange.ptr(595, 595, $clone($toNativeArray($kindInt32, [-210, 0, -210]), d)), CaseRange), $clone(new CaseRange.ptr(596, 596, $clone($toNativeArray($kindInt32, [-206, 0, -206]), d)), CaseRange), $clone(new CaseRange.ptr(598, 599, $clone($toNativeArray($kindInt32, [-205, 0, -205]), d)), CaseRange), $clone(new CaseRange.ptr(601, 601, $clone($toNativeArray($kindInt32, [-202, 0, -202]), d)), CaseRange), $clone(new CaseRange.ptr(603, 603, $clone($toNativeArray($kindInt32, [-203, 0, -203]), d)), CaseRange), $clone(new CaseRange.ptr(604, 604, $clone($toNativeArray($kindInt32, [42319, 0, 42319]), d)), CaseRange), $clone(new CaseRange.ptr(608, 608, $clone($toNativeArray($kindInt32, [-205, 0, -205]), d)), CaseRange), $clone(new CaseRange.ptr(609, 609, $clone($toNativeArray($kindInt32, [42315, 0, 42315]), d)), CaseRange), $clone(new CaseRange.ptr(611, 611, $clone($toNativeArray($kindInt32, [-207, 0, -207]), d)), CaseRange), $clone(new CaseRange.ptr(613, 613, $clone($toNativeArray($kindInt32, [42280, 0, 42280]), d)), CaseRange), $clone(new CaseRange.ptr(614, 614, $clone($toNativeArray($kindInt32, [42308, 0, 42308]), d)), CaseRange), $clone(new CaseRange.ptr(616, 616, $clone($toNativeArray($kindInt32, [-209, 0, -209]), d)), CaseRange), $clone(new CaseRange.ptr(617, 617, $clone($toNativeArray($kindInt32, [-211, 0, -211]), d)), CaseRange), $clone(new CaseRange.ptr(618, 618, $clone($toNativeArray($kindInt32, [42308, 0, 42308]), d)), CaseRange), $clone(new CaseRange.ptr(619, 619, $clone($toNativeArray($kindInt32, [10743, 0, 10743]), d)), CaseRange), $clone(new CaseRange.ptr(620, 620, $clone($toNativeArray($kindInt32, [42305, 0, 42305]), d)), CaseRange), $clone(new CaseRange.ptr(623, 623, $clone($toNativeArray($kindInt32, [-211, 0, -211]), d)), CaseRange), $clone(new CaseRange.ptr(625, 625, $clone($toNativeArray($kindInt32, [10749, 0, 10749]), d)), CaseRange), $clone(new CaseRange.ptr(626, 626, $clone($toNativeArray($kindInt32, [-213, 0, -213]), d)), CaseRange), $clone(new CaseRange.ptr(629, 629, $clone($toNativeArray($kindInt32, [-214, 0, -214]), d)), CaseRange), $clone(new CaseRange.ptr(637, 637, $clone($toNativeArray($kindInt32, [10727, 0, 10727]), d)), CaseRange), $clone(new CaseRange.ptr(640, 640, $clone($toNativeArray($kindInt32, [-218, 0, -218]), d)), CaseRange), $clone(new CaseRange.ptr(642, 642, $clone($toNativeArray($kindInt32, [42307, 0, 42307]), d)), CaseRange), $clone(new CaseRange.ptr(643, 643, $clone($toNativeArray($kindInt32, [-218, 0, -218]), d)), CaseRange), $clone(new CaseRange.ptr(647, 647, $clone($toNativeArray($kindInt32, [42282, 0, 42282]), d)), CaseRange), $clone(new CaseRange.ptr(648, 648, $clone($toNativeArray($kindInt32, [-218, 0, -218]), d)), CaseRange), $clone(new CaseRange.ptr(649, 649, $clone($toNativeArray($kindInt32, [-69, 0, -69]), d)), CaseRange), $clone(new CaseRange.ptr(650, 651, $clone($toNativeArray($kindInt32, [-217, 0, -217]), d)), CaseRange), $clone(new CaseRange.ptr(652, 652, $clone($toNativeArray($kindInt32, [-71, 0, -71]), d)), CaseRange), $clone(new CaseRange.ptr(658, 658, $clone($toNativeArray($kindInt32, [-219, 0, -219]), d)), CaseRange), $clone(new CaseRange.ptr(669, 669, $clone($toNativeArray($kindInt32, [42261, 0, 42261]), d)), CaseRange), $clone(new CaseRange.ptr(670, 670, $clone($toNativeArray($kindInt32, [42258, 0, 42258]), d)), CaseRange), $clone(new CaseRange.ptr(837, 837, $clone($toNativeArray($kindInt32, [84, 0, 84]), d)), CaseRange), $clone(new CaseRange.ptr(880, 883, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(886, 887, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(891, 893, $clone($toNativeArray($kindInt32, [130, 0, 130]), d)), CaseRange), $clone(new CaseRange.ptr(895, 895, $clone($toNativeArray($kindInt32, [0, 116, 0]), d)), CaseRange), $clone(new CaseRange.ptr(902, 902, $clone($toNativeArray($kindInt32, [0, 38, 0]), d)), CaseRange), $clone(new CaseRange.ptr(904, 906, $clone($toNativeArray($kindInt32, [0, 37, 0]), d)), CaseRange), $clone(new CaseRange.ptr(908, 908, $clone($toNativeArray($kindInt32, [0, 64, 0]), d)), CaseRange), $clone(new CaseRange.ptr(910, 911, $clone($toNativeArray($kindInt32, [0, 63, 0]), d)), CaseRange), $clone(new CaseRange.ptr(913, 929, $clone($toNativeArray($kindInt32, [0, 32, 0]), d)), CaseRange), $clone(new CaseRange.ptr(931, 939, $clone($toNativeArray($kindInt32, [0, 32, 0]), d)), CaseRange), $clone(new CaseRange.ptr(940, 940, $clone($toNativeArray($kindInt32, [-38, 0, -38]), d)), CaseRange), $clone(new CaseRange.ptr(941, 943, $clone($toNativeArray($kindInt32, [-37, 0, -37]), d)), CaseRange), $clone(new CaseRange.ptr(945, 961, $clone($toNativeArray($kindInt32, [-32, 0, -32]), d)), CaseRange), $clone(new CaseRange.ptr(962, 962, $clone($toNativeArray($kindInt32, [-31, 0, -31]), d)), CaseRange), $clone(new CaseRange.ptr(963, 971, $clone($toNativeArray($kindInt32, [-32, 0, -32]), d)), CaseRange), $clone(new CaseRange.ptr(972, 972, $clone($toNativeArray($kindInt32, [-64, 0, -64]), d)), CaseRange), $clone(new CaseRange.ptr(973, 974, $clone($toNativeArray($kindInt32, [-63, 0, -63]), d)), CaseRange), $clone(new CaseRange.ptr(975, 975, $clone($toNativeArray($kindInt32, [0, 8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(976, 976, $clone($toNativeArray($kindInt32, [-62, 0, -62]), d)), CaseRange), $clone(new CaseRange.ptr(977, 977, $clone($toNativeArray($kindInt32, [-57, 0, -57]), d)), CaseRange), $clone(new CaseRange.ptr(981, 981, $clone($toNativeArray($kindInt32, [-47, 0, -47]), d)), CaseRange), $clone(new CaseRange.ptr(982, 982, $clone($toNativeArray($kindInt32, [-54, 0, -54]), d)), CaseRange), $clone(new CaseRange.ptr(983, 983, $clone($toNativeArray($kindInt32, [-8, 0, -8]), d)), CaseRange), $clone(new CaseRange.ptr(984, 1007, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(1008, 1008, $clone($toNativeArray($kindInt32, [-86, 0, -86]), d)), CaseRange), $clone(new CaseRange.ptr(1009, 1009, $clone($toNativeArray($kindInt32, [-80, 0, -80]), d)), CaseRange), $clone(new CaseRange.ptr(1010, 1010, $clone($toNativeArray($kindInt32, [7, 0, 7]), d)), CaseRange), $clone(new CaseRange.ptr(1011, 1011, $clone($toNativeArray($kindInt32, [-116, 0, -116]), d)), CaseRange), $clone(new CaseRange.ptr(1012, 1012, $clone($toNativeArray($kindInt32, [0, -60, 0]), d)), CaseRange), $clone(new CaseRange.ptr(1013, 1013, $clone($toNativeArray($kindInt32, [-96, 0, -96]), d)), CaseRange), $clone(new CaseRange.ptr(1015, 1016, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(1017, 1017, $clone($toNativeArray($kindInt32, [0, -7, 0]), d)), CaseRange), $clone(new CaseRange.ptr(1018, 1019, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(1021, 1023, $clone($toNativeArray($kindInt32, [0, -130, 0]), d)), CaseRange), $clone(new CaseRange.ptr(1024, 1039, $clone($toNativeArray($kindInt32, [0, 80, 0]), d)), CaseRange), $clone(new CaseRange.ptr(1040, 1071, $clone($toNativeArray($kindInt32, [0, 32, 0]), d)), CaseRange), $clone(new CaseRange.ptr(1072, 1103, $clone($toNativeArray($kindInt32, [-32, 0, -32]), d)), CaseRange), $clone(new CaseRange.ptr(1104, 1119, $clone($toNativeArray($kindInt32, [-80, 0, -80]), d)), CaseRange), $clone(new CaseRange.ptr(1120, 1153, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(1162, 1215, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(1216, 1216, $clone($toNativeArray($kindInt32, [0, 15, 0]), d)), CaseRange), $clone(new CaseRange.ptr(1217, 1230, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(1231, 1231, $clone($toNativeArray($kindInt32, [-15, 0, -15]), d)), CaseRange), $clone(new CaseRange.ptr(1232, 1327, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(1329, 1366, $clone($toNativeArray($kindInt32, [0, 48, 0]), d)), CaseRange), $clone(new CaseRange.ptr(1377, 1414, $clone($toNativeArray($kindInt32, [-48, 0, -48]), d)), CaseRange), $clone(new CaseRange.ptr(4256, 4293, $clone($toNativeArray($kindInt32, [0, 7264, 0]), d)), CaseRange), $clone(new CaseRange.ptr(4295, 4295, $clone($toNativeArray($kindInt32, [0, 7264, 0]), d)), CaseRange), $clone(new CaseRange.ptr(4301, 4301, $clone($toNativeArray($kindInt32, [0, 7264, 0]), d)), CaseRange), $clone(new CaseRange.ptr(4304, 4346, $clone($toNativeArray($kindInt32, [3008, 0, 0]), d)), CaseRange), $clone(new CaseRange.ptr(4349, 4351, $clone($toNativeArray($kindInt32, [3008, 0, 0]), d)), CaseRange), $clone(new CaseRange.ptr(5024, 5103, $clone($toNativeArray($kindInt32, [0, 38864, 0]), d)), CaseRange), $clone(new CaseRange.ptr(5104, 5109, $clone($toNativeArray($kindInt32, [0, 8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(5112, 5117, $clone($toNativeArray($kindInt32, [-8, 0, -8]), d)), CaseRange), $clone(new CaseRange.ptr(7296, 7296, $clone($toNativeArray($kindInt32, [-6254, 0, -6254]), d)), CaseRange), $clone(new CaseRange.ptr(7297, 7297, $clone($toNativeArray($kindInt32, [-6253, 0, -6253]), d)), CaseRange), $clone(new CaseRange.ptr(7298, 7298, $clone($toNativeArray($kindInt32, [-6244, 0, -6244]), d)), CaseRange), $clone(new CaseRange.ptr(7299, 7300, $clone($toNativeArray($kindInt32, [-6242, 0, -6242]), d)), CaseRange), $clone(new CaseRange.ptr(7301, 7301, $clone($toNativeArray($kindInt32, [-6243, 0, -6243]), d)), CaseRange), $clone(new CaseRange.ptr(7302, 7302, $clone($toNativeArray($kindInt32, [-6236, 0, -6236]), d)), CaseRange), $clone(new CaseRange.ptr(7303, 7303, $clone($toNativeArray($kindInt32, [-6181, 0, -6181]), d)), CaseRange), $clone(new CaseRange.ptr(7304, 7304, $clone($toNativeArray($kindInt32, [35266, 0, 35266]), d)), CaseRange), $clone(new CaseRange.ptr(7312, 7354, $clone($toNativeArray($kindInt32, [0, -3008, 0]), d)), CaseRange), $clone(new CaseRange.ptr(7357, 7359, $clone($toNativeArray($kindInt32, [0, -3008, 0]), d)), CaseRange), $clone(new CaseRange.ptr(7545, 7545, $clone($toNativeArray($kindInt32, [35332, 0, 35332]), d)), CaseRange), $clone(new CaseRange.ptr(7549, 7549, $clone($toNativeArray($kindInt32, [3814, 0, 3814]), d)), CaseRange), $clone(new CaseRange.ptr(7566, 7566, $clone($toNativeArray($kindInt32, [35384, 0, 35384]), d)), CaseRange), $clone(new CaseRange.ptr(7680, 7829, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(7835, 7835, $clone($toNativeArray($kindInt32, [-59, 0, -59]), d)), CaseRange), $clone(new CaseRange.ptr(7838, 7838, $clone($toNativeArray($kindInt32, [0, -7615, 0]), d)), CaseRange), $clone(new CaseRange.ptr(7840, 7935, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(7936, 7943, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(7944, 7951, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(7952, 7957, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(7960, 7965, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(7968, 7975, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(7976, 7983, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(7984, 7991, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(7992, 7999, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8000, 8005, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8008, 8013, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8017, 8017, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8019, 8019, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8021, 8021, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8023, 8023, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8025, 8025, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8027, 8027, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8029, 8029, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8031, 8031, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8032, 8039, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8040, 8047, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8048, 8049, $clone($toNativeArray($kindInt32, [74, 0, 74]), d)), CaseRange), $clone(new CaseRange.ptr(8050, 8053, $clone($toNativeArray($kindInt32, [86, 0, 86]), d)), CaseRange), $clone(new CaseRange.ptr(8054, 8055, $clone($toNativeArray($kindInt32, [100, 0, 100]), d)), CaseRange), $clone(new CaseRange.ptr(8056, 8057, $clone($toNativeArray($kindInt32, [128, 0, 128]), d)), CaseRange), $clone(new CaseRange.ptr(8058, 8059, $clone($toNativeArray($kindInt32, [112, 0, 112]), d)), CaseRange), $clone(new CaseRange.ptr(8060, 8061, $clone($toNativeArray($kindInt32, [126, 0, 126]), d)), CaseRange), $clone(new CaseRange.ptr(8064, 8071, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8072, 8079, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8080, 8087, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8088, 8095, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8096, 8103, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8104, 8111, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8112, 8113, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8115, 8115, $clone($toNativeArray($kindInt32, [9, 0, 9]), d)), CaseRange), $clone(new CaseRange.ptr(8120, 8121, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8122, 8123, $clone($toNativeArray($kindInt32, [0, -74, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8124, 8124, $clone($toNativeArray($kindInt32, [0, -9, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8126, 8126, $clone($toNativeArray($kindInt32, [-7205, 0, -7205]), d)), CaseRange), $clone(new CaseRange.ptr(8131, 8131, $clone($toNativeArray($kindInt32, [9, 0, 9]), d)), CaseRange), $clone(new CaseRange.ptr(8136, 8139, $clone($toNativeArray($kindInt32, [0, -86, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8140, 8140, $clone($toNativeArray($kindInt32, [0, -9, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8144, 8145, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8152, 8153, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8154, 8155, $clone($toNativeArray($kindInt32, [0, -100, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8160, 8161, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8165, 8165, $clone($toNativeArray($kindInt32, [7, 0, 7]), d)), CaseRange), $clone(new CaseRange.ptr(8168, 8169, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8170, 8171, $clone($toNativeArray($kindInt32, [0, -112, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8172, 8172, $clone($toNativeArray($kindInt32, [0, -7, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8179, 8179, $clone($toNativeArray($kindInt32, [9, 0, 9]), d)), CaseRange), $clone(new CaseRange.ptr(8184, 8185, $clone($toNativeArray($kindInt32, [0, -128, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8186, 8187, $clone($toNativeArray($kindInt32, [0, -126, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8188, 8188, $clone($toNativeArray($kindInt32, [0, -9, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8486, 8486, $clone($toNativeArray($kindInt32, [0, -7517, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8490, 8490, $clone($toNativeArray($kindInt32, [0, -8383, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8491, 8491, $clone($toNativeArray($kindInt32, [0, -8262, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8498, 8498, $clone($toNativeArray($kindInt32, [0, 28, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8526, 8526, $clone($toNativeArray($kindInt32, [-28, 0, -28]), d)), CaseRange), $clone(new CaseRange.ptr(8544, 8559, $clone($toNativeArray($kindInt32, [0, 16, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8560, 8575, $clone($toNativeArray($kindInt32, [-16, 0, -16]), d)), CaseRange), $clone(new CaseRange.ptr(8579, 8580, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(9398, 9423, $clone($toNativeArray($kindInt32, [0, 26, 0]), d)), CaseRange), $clone(new CaseRange.ptr(9424, 9449, $clone($toNativeArray($kindInt32, [-26, 0, -26]), d)), CaseRange), $clone(new CaseRange.ptr(11264, 11310, $clone($toNativeArray($kindInt32, [0, 48, 0]), d)), CaseRange), $clone(new CaseRange.ptr(11312, 11358, $clone($toNativeArray($kindInt32, [-48, 0, -48]), d)), CaseRange), $clone(new CaseRange.ptr(11360, 11361, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(11362, 11362, $clone($toNativeArray($kindInt32, [0, -10743, 0]), d)), CaseRange), $clone(new CaseRange.ptr(11363, 11363, $clone($toNativeArray($kindInt32, [0, -3814, 0]), d)), CaseRange), $clone(new CaseRange.ptr(11364, 11364, $clone($toNativeArray($kindInt32, [0, -10727, 0]), d)), CaseRange), $clone(new CaseRange.ptr(11365, 11365, $clone($toNativeArray($kindInt32, [-10795, 0, -10795]), d)), CaseRange), $clone(new CaseRange.ptr(11366, 11366, $clone($toNativeArray($kindInt32, [-10792, 0, -10792]), d)), CaseRange), $clone(new CaseRange.ptr(11367, 11372, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(11373, 11373, $clone($toNativeArray($kindInt32, [0, -10780, 0]), d)), CaseRange), $clone(new CaseRange.ptr(11374, 11374, $clone($toNativeArray($kindInt32, [0, -10749, 0]), d)), CaseRange), $clone(new CaseRange.ptr(11375, 11375, $clone($toNativeArray($kindInt32, [0, -10783, 0]), d)), CaseRange), $clone(new CaseRange.ptr(11376, 11376, $clone($toNativeArray($kindInt32, [0, -10782, 0]), d)), CaseRange), $clone(new CaseRange.ptr(11378, 11379, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(11381, 11382, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(11390, 11391, $clone($toNativeArray($kindInt32, [0, -10815, 0]), d)), CaseRange), $clone(new CaseRange.ptr(11392, 11491, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(11499, 11502, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(11506, 11507, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(11520, 11557, $clone($toNativeArray($kindInt32, [-7264, 0, -7264]), d)), CaseRange), $clone(new CaseRange.ptr(11559, 11559, $clone($toNativeArray($kindInt32, [-7264, 0, -7264]), d)), CaseRange), $clone(new CaseRange.ptr(11565, 11565, $clone($toNativeArray($kindInt32, [-7264, 0, -7264]), d)), CaseRange), $clone(new CaseRange.ptr(42560, 42605, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42624, 42651, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42786, 42799, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42802, 42863, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42873, 42876, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42877, 42877, $clone($toNativeArray($kindInt32, [0, -35332, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42878, 42887, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42891, 42892, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42893, 42893, $clone($toNativeArray($kindInt32, [0, -42280, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42896, 42899, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42900, 42900, $clone($toNativeArray($kindInt32, [48, 0, 48]), d)), CaseRange), $clone(new CaseRange.ptr(42902, 42921, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42922, 42922, $clone($toNativeArray($kindInt32, [0, -42308, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42923, 42923, $clone($toNativeArray($kindInt32, [0, -42319, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42924, 42924, $clone($toNativeArray($kindInt32, [0, -42315, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42925, 42925, $clone($toNativeArray($kindInt32, [0, -42305, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42926, 42926, $clone($toNativeArray($kindInt32, [0, -42308, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42928, 42928, $clone($toNativeArray($kindInt32, [0, -42258, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42929, 42929, $clone($toNativeArray($kindInt32, [0, -42282, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42930, 42930, $clone($toNativeArray($kindInt32, [0, -42261, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42931, 42931, $clone($toNativeArray($kindInt32, [0, 928, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42932, 42943, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42946, 42947, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42948, 42948, $clone($toNativeArray($kindInt32, [0, -48, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42949, 42949, $clone($toNativeArray($kindInt32, [0, -42307, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42950, 42950, $clone($toNativeArray($kindInt32, [0, -35384, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42951, 42954, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42997, 42998, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(43859, 43859, $clone($toNativeArray($kindInt32, [-928, 0, -928]), d)), CaseRange), $clone(new CaseRange.ptr(43888, 43967, $clone($toNativeArray($kindInt32, [-38864, 0, -38864]), d)), CaseRange), $clone(new CaseRange.ptr(65313, 65338, $clone($toNativeArray($kindInt32, [0, 32, 0]), d)), CaseRange), $clone(new CaseRange.ptr(65345, 65370, $clone($toNativeArray($kindInt32, [-32, 0, -32]), d)), CaseRange), $clone(new CaseRange.ptr(66560, 66599, $clone($toNativeArray($kindInt32, [0, 40, 0]), d)), CaseRange), $clone(new CaseRange.ptr(66600, 66639, $clone($toNativeArray($kindInt32, [-40, 0, -40]), d)), CaseRange), $clone(new CaseRange.ptr(66736, 66771, $clone($toNativeArray($kindInt32, [0, 40, 0]), d)), CaseRange), $clone(new CaseRange.ptr(66776, 66811, $clone($toNativeArray($kindInt32, [-40, 0, -40]), d)), CaseRange), $clone(new CaseRange.ptr(68736, 68786, $clone($toNativeArray($kindInt32, [0, 64, 0]), d)), CaseRange), $clone(new CaseRange.ptr(68800, 68850, $clone($toNativeArray($kindInt32, [-64, 0, -64]), d)), CaseRange), $clone(new CaseRange.ptr(71840, 71871, $clone($toNativeArray($kindInt32, [0, 32, 0]), d)), CaseRange), $clone(new CaseRange.ptr(71872, 71903, $clone($toNativeArray($kindInt32, [-32, 0, -32]), d)), CaseRange), $clone(new CaseRange.ptr(93760, 93791, $clone($toNativeArray($kindInt32, [0, 32, 0]), d)), CaseRange), $clone(new CaseRange.ptr(93792, 93823, $clone($toNativeArray($kindInt32, [-32, 0, -32]), d)), CaseRange), $clone(new CaseRange.ptr(125184, 125217, $clone($toNativeArray($kindInt32, [0, 34, 0]), d)), CaseRange), $clone(new CaseRange.ptr(125218, 125251, $clone($toNativeArray($kindInt32, [-34, 0, -34]), d)), CaseRange)]); + _CaseRanges = new sliceType$2([$clone(new CaseRange.ptr(65, 90, $clone($toNativeArray($kindInt32, [0, 32, 0]), d)), CaseRange), $clone(new CaseRange.ptr(97, 122, $clone($toNativeArray($kindInt32, [-32, 0, -32]), d)), CaseRange), $clone(new CaseRange.ptr(181, 181, $clone($toNativeArray($kindInt32, [743, 0, 743]), d)), CaseRange), $clone(new CaseRange.ptr(192, 214, $clone($toNativeArray($kindInt32, [0, 32, 0]), d)), CaseRange), $clone(new CaseRange.ptr(216, 222, $clone($toNativeArray($kindInt32, [0, 32, 0]), d)), CaseRange), $clone(new CaseRange.ptr(224, 246, $clone($toNativeArray($kindInt32, [-32, 0, -32]), d)), CaseRange), $clone(new CaseRange.ptr(248, 254, $clone($toNativeArray($kindInt32, [-32, 0, -32]), d)), CaseRange), $clone(new CaseRange.ptr(255, 255, $clone($toNativeArray($kindInt32, [121, 0, 121]), d)), CaseRange), $clone(new CaseRange.ptr(256, 303, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(304, 304, $clone($toNativeArray($kindInt32, [0, -199, 0]), d)), CaseRange), $clone(new CaseRange.ptr(305, 305, $clone($toNativeArray($kindInt32, [-232, 0, -232]), d)), CaseRange), $clone(new CaseRange.ptr(306, 311, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(313, 328, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(330, 375, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(376, 376, $clone($toNativeArray($kindInt32, [0, -121, 0]), d)), CaseRange), $clone(new CaseRange.ptr(377, 382, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(383, 383, $clone($toNativeArray($kindInt32, [-300, 0, -300]), d)), CaseRange), $clone(new CaseRange.ptr(384, 384, $clone($toNativeArray($kindInt32, [195, 0, 195]), d)), CaseRange), $clone(new CaseRange.ptr(385, 385, $clone($toNativeArray($kindInt32, [0, 210, 0]), d)), CaseRange), $clone(new CaseRange.ptr(386, 389, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(390, 390, $clone($toNativeArray($kindInt32, [0, 206, 0]), d)), CaseRange), $clone(new CaseRange.ptr(391, 392, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(393, 394, $clone($toNativeArray($kindInt32, [0, 205, 0]), d)), CaseRange), $clone(new CaseRange.ptr(395, 396, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(398, 398, $clone($toNativeArray($kindInt32, [0, 79, 0]), d)), CaseRange), $clone(new CaseRange.ptr(399, 399, $clone($toNativeArray($kindInt32, [0, 202, 0]), d)), CaseRange), $clone(new CaseRange.ptr(400, 400, $clone($toNativeArray($kindInt32, [0, 203, 0]), d)), CaseRange), $clone(new CaseRange.ptr(401, 402, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(403, 403, $clone($toNativeArray($kindInt32, [0, 205, 0]), d)), CaseRange), $clone(new CaseRange.ptr(404, 404, $clone($toNativeArray($kindInt32, [0, 207, 0]), d)), CaseRange), $clone(new CaseRange.ptr(405, 405, $clone($toNativeArray($kindInt32, [97, 0, 97]), d)), CaseRange), $clone(new CaseRange.ptr(406, 406, $clone($toNativeArray($kindInt32, [0, 211, 0]), d)), CaseRange), $clone(new CaseRange.ptr(407, 407, $clone($toNativeArray($kindInt32, [0, 209, 0]), d)), CaseRange), $clone(new CaseRange.ptr(408, 409, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(410, 410, $clone($toNativeArray($kindInt32, [163, 0, 163]), d)), CaseRange), $clone(new CaseRange.ptr(412, 412, $clone($toNativeArray($kindInt32, [0, 211, 0]), d)), CaseRange), $clone(new CaseRange.ptr(413, 413, $clone($toNativeArray($kindInt32, [0, 213, 0]), d)), CaseRange), $clone(new CaseRange.ptr(414, 414, $clone($toNativeArray($kindInt32, [130, 0, 130]), d)), CaseRange), $clone(new CaseRange.ptr(415, 415, $clone($toNativeArray($kindInt32, [0, 214, 0]), d)), CaseRange), $clone(new CaseRange.ptr(416, 421, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(422, 422, $clone($toNativeArray($kindInt32, [0, 218, 0]), d)), CaseRange), $clone(new CaseRange.ptr(423, 424, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(425, 425, $clone($toNativeArray($kindInt32, [0, 218, 0]), d)), CaseRange), $clone(new CaseRange.ptr(428, 429, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(430, 430, $clone($toNativeArray($kindInt32, [0, 218, 0]), d)), CaseRange), $clone(new CaseRange.ptr(431, 432, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(433, 434, $clone($toNativeArray($kindInt32, [0, 217, 0]), d)), CaseRange), $clone(new CaseRange.ptr(435, 438, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(439, 439, $clone($toNativeArray($kindInt32, [0, 219, 0]), d)), CaseRange), $clone(new CaseRange.ptr(440, 441, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(444, 445, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(447, 447, $clone($toNativeArray($kindInt32, [56, 0, 56]), d)), CaseRange), $clone(new CaseRange.ptr(452, 452, $clone($toNativeArray($kindInt32, [0, 2, 1]), d)), CaseRange), $clone(new CaseRange.ptr(453, 453, $clone($toNativeArray($kindInt32, [-1, 1, 0]), d)), CaseRange), $clone(new CaseRange.ptr(454, 454, $clone($toNativeArray($kindInt32, [-2, 0, -1]), d)), CaseRange), $clone(new CaseRange.ptr(455, 455, $clone($toNativeArray($kindInt32, [0, 2, 1]), d)), CaseRange), $clone(new CaseRange.ptr(456, 456, $clone($toNativeArray($kindInt32, [-1, 1, 0]), d)), CaseRange), $clone(new CaseRange.ptr(457, 457, $clone($toNativeArray($kindInt32, [-2, 0, -1]), d)), CaseRange), $clone(new CaseRange.ptr(458, 458, $clone($toNativeArray($kindInt32, [0, 2, 1]), d)), CaseRange), $clone(new CaseRange.ptr(459, 459, $clone($toNativeArray($kindInt32, [-1, 1, 0]), d)), CaseRange), $clone(new CaseRange.ptr(460, 460, $clone($toNativeArray($kindInt32, [-2, 0, -1]), d)), CaseRange), $clone(new CaseRange.ptr(461, 476, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(477, 477, $clone($toNativeArray($kindInt32, [-79, 0, -79]), d)), CaseRange), $clone(new CaseRange.ptr(478, 495, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(497, 497, $clone($toNativeArray($kindInt32, [0, 2, 1]), d)), CaseRange), $clone(new CaseRange.ptr(498, 498, $clone($toNativeArray($kindInt32, [-1, 1, 0]), d)), CaseRange), $clone(new CaseRange.ptr(499, 499, $clone($toNativeArray($kindInt32, [-2, 0, -1]), d)), CaseRange), $clone(new CaseRange.ptr(500, 501, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(502, 502, $clone($toNativeArray($kindInt32, [0, -97, 0]), d)), CaseRange), $clone(new CaseRange.ptr(503, 503, $clone($toNativeArray($kindInt32, [0, -56, 0]), d)), CaseRange), $clone(new CaseRange.ptr(504, 543, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(544, 544, $clone($toNativeArray($kindInt32, [0, -130, 0]), d)), CaseRange), $clone(new CaseRange.ptr(546, 563, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(570, 570, $clone($toNativeArray($kindInt32, [0, 10795, 0]), d)), CaseRange), $clone(new CaseRange.ptr(571, 572, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(573, 573, $clone($toNativeArray($kindInt32, [0, -163, 0]), d)), CaseRange), $clone(new CaseRange.ptr(574, 574, $clone($toNativeArray($kindInt32, [0, 10792, 0]), d)), CaseRange), $clone(new CaseRange.ptr(575, 576, $clone($toNativeArray($kindInt32, [10815, 0, 10815]), d)), CaseRange), $clone(new CaseRange.ptr(577, 578, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(579, 579, $clone($toNativeArray($kindInt32, [0, -195, 0]), d)), CaseRange), $clone(new CaseRange.ptr(580, 580, $clone($toNativeArray($kindInt32, [0, 69, 0]), d)), CaseRange), $clone(new CaseRange.ptr(581, 581, $clone($toNativeArray($kindInt32, [0, 71, 0]), d)), CaseRange), $clone(new CaseRange.ptr(582, 591, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(592, 592, $clone($toNativeArray($kindInt32, [10783, 0, 10783]), d)), CaseRange), $clone(new CaseRange.ptr(593, 593, $clone($toNativeArray($kindInt32, [10780, 0, 10780]), d)), CaseRange), $clone(new CaseRange.ptr(594, 594, $clone($toNativeArray($kindInt32, [10782, 0, 10782]), d)), CaseRange), $clone(new CaseRange.ptr(595, 595, $clone($toNativeArray($kindInt32, [-210, 0, -210]), d)), CaseRange), $clone(new CaseRange.ptr(596, 596, $clone($toNativeArray($kindInt32, [-206, 0, -206]), d)), CaseRange), $clone(new CaseRange.ptr(598, 599, $clone($toNativeArray($kindInt32, [-205, 0, -205]), d)), CaseRange), $clone(new CaseRange.ptr(601, 601, $clone($toNativeArray($kindInt32, [-202, 0, -202]), d)), CaseRange), $clone(new CaseRange.ptr(603, 603, $clone($toNativeArray($kindInt32, [-203, 0, -203]), d)), CaseRange), $clone(new CaseRange.ptr(604, 604, $clone($toNativeArray($kindInt32, [42319, 0, 42319]), d)), CaseRange), $clone(new CaseRange.ptr(608, 608, $clone($toNativeArray($kindInt32, [-205, 0, -205]), d)), CaseRange), $clone(new CaseRange.ptr(609, 609, $clone($toNativeArray($kindInt32, [42315, 0, 42315]), d)), CaseRange), $clone(new CaseRange.ptr(611, 611, $clone($toNativeArray($kindInt32, [-207, 0, -207]), d)), CaseRange), $clone(new CaseRange.ptr(613, 613, $clone($toNativeArray($kindInt32, [42280, 0, 42280]), d)), CaseRange), $clone(new CaseRange.ptr(614, 614, $clone($toNativeArray($kindInt32, [42308, 0, 42308]), d)), CaseRange), $clone(new CaseRange.ptr(616, 616, $clone($toNativeArray($kindInt32, [-209, 0, -209]), d)), CaseRange), $clone(new CaseRange.ptr(617, 617, $clone($toNativeArray($kindInt32, [-211, 0, -211]), d)), CaseRange), $clone(new CaseRange.ptr(618, 618, $clone($toNativeArray($kindInt32, [42308, 0, 42308]), d)), CaseRange), $clone(new CaseRange.ptr(619, 619, $clone($toNativeArray($kindInt32, [10743, 0, 10743]), d)), CaseRange), $clone(new CaseRange.ptr(620, 620, $clone($toNativeArray($kindInt32, [42305, 0, 42305]), d)), CaseRange), $clone(new CaseRange.ptr(623, 623, $clone($toNativeArray($kindInt32, [-211, 0, -211]), d)), CaseRange), $clone(new CaseRange.ptr(625, 625, $clone($toNativeArray($kindInt32, [10749, 0, 10749]), d)), CaseRange), $clone(new CaseRange.ptr(626, 626, $clone($toNativeArray($kindInt32, [-213, 0, -213]), d)), CaseRange), $clone(new CaseRange.ptr(629, 629, $clone($toNativeArray($kindInt32, [-214, 0, -214]), d)), CaseRange), $clone(new CaseRange.ptr(637, 637, $clone($toNativeArray($kindInt32, [10727, 0, 10727]), d)), CaseRange), $clone(new CaseRange.ptr(640, 640, $clone($toNativeArray($kindInt32, [-218, 0, -218]), d)), CaseRange), $clone(new CaseRange.ptr(642, 642, $clone($toNativeArray($kindInt32, [42307, 0, 42307]), d)), CaseRange), $clone(new CaseRange.ptr(643, 643, $clone($toNativeArray($kindInt32, [-218, 0, -218]), d)), CaseRange), $clone(new CaseRange.ptr(647, 647, $clone($toNativeArray($kindInt32, [42282, 0, 42282]), d)), CaseRange), $clone(new CaseRange.ptr(648, 648, $clone($toNativeArray($kindInt32, [-218, 0, -218]), d)), CaseRange), $clone(new CaseRange.ptr(649, 649, $clone($toNativeArray($kindInt32, [-69, 0, -69]), d)), CaseRange), $clone(new CaseRange.ptr(650, 651, $clone($toNativeArray($kindInt32, [-217, 0, -217]), d)), CaseRange), $clone(new CaseRange.ptr(652, 652, $clone($toNativeArray($kindInt32, [-71, 0, -71]), d)), CaseRange), $clone(new CaseRange.ptr(658, 658, $clone($toNativeArray($kindInt32, [-219, 0, -219]), d)), CaseRange), $clone(new CaseRange.ptr(669, 669, $clone($toNativeArray($kindInt32, [42261, 0, 42261]), d)), CaseRange), $clone(new CaseRange.ptr(670, 670, $clone($toNativeArray($kindInt32, [42258, 0, 42258]), d)), CaseRange), $clone(new CaseRange.ptr(837, 837, $clone($toNativeArray($kindInt32, [84, 0, 84]), d)), CaseRange), $clone(new CaseRange.ptr(880, 883, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(886, 887, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(891, 893, $clone($toNativeArray($kindInt32, [130, 0, 130]), d)), CaseRange), $clone(new CaseRange.ptr(895, 895, $clone($toNativeArray($kindInt32, [0, 116, 0]), d)), CaseRange), $clone(new CaseRange.ptr(902, 902, $clone($toNativeArray($kindInt32, [0, 38, 0]), d)), CaseRange), $clone(new CaseRange.ptr(904, 906, $clone($toNativeArray($kindInt32, [0, 37, 0]), d)), CaseRange), $clone(new CaseRange.ptr(908, 908, $clone($toNativeArray($kindInt32, [0, 64, 0]), d)), CaseRange), $clone(new CaseRange.ptr(910, 911, $clone($toNativeArray($kindInt32, [0, 63, 0]), d)), CaseRange), $clone(new CaseRange.ptr(913, 929, $clone($toNativeArray($kindInt32, [0, 32, 0]), d)), CaseRange), $clone(new CaseRange.ptr(931, 939, $clone($toNativeArray($kindInt32, [0, 32, 0]), d)), CaseRange), $clone(new CaseRange.ptr(940, 940, $clone($toNativeArray($kindInt32, [-38, 0, -38]), d)), CaseRange), $clone(new CaseRange.ptr(941, 943, $clone($toNativeArray($kindInt32, [-37, 0, -37]), d)), CaseRange), $clone(new CaseRange.ptr(945, 961, $clone($toNativeArray($kindInt32, [-32, 0, -32]), d)), CaseRange), $clone(new CaseRange.ptr(962, 962, $clone($toNativeArray($kindInt32, [-31, 0, -31]), d)), CaseRange), $clone(new CaseRange.ptr(963, 971, $clone($toNativeArray($kindInt32, [-32, 0, -32]), d)), CaseRange), $clone(new CaseRange.ptr(972, 972, $clone($toNativeArray($kindInt32, [-64, 0, -64]), d)), CaseRange), $clone(new CaseRange.ptr(973, 974, $clone($toNativeArray($kindInt32, [-63, 0, -63]), d)), CaseRange), $clone(new CaseRange.ptr(975, 975, $clone($toNativeArray($kindInt32, [0, 8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(976, 976, $clone($toNativeArray($kindInt32, [-62, 0, -62]), d)), CaseRange), $clone(new CaseRange.ptr(977, 977, $clone($toNativeArray($kindInt32, [-57, 0, -57]), d)), CaseRange), $clone(new CaseRange.ptr(981, 981, $clone($toNativeArray($kindInt32, [-47, 0, -47]), d)), CaseRange), $clone(new CaseRange.ptr(982, 982, $clone($toNativeArray($kindInt32, [-54, 0, -54]), d)), CaseRange), $clone(new CaseRange.ptr(983, 983, $clone($toNativeArray($kindInt32, [-8, 0, -8]), d)), CaseRange), $clone(new CaseRange.ptr(984, 1007, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(1008, 1008, $clone($toNativeArray($kindInt32, [-86, 0, -86]), d)), CaseRange), $clone(new CaseRange.ptr(1009, 1009, $clone($toNativeArray($kindInt32, [-80, 0, -80]), d)), CaseRange), $clone(new CaseRange.ptr(1010, 1010, $clone($toNativeArray($kindInt32, [7, 0, 7]), d)), CaseRange), $clone(new CaseRange.ptr(1011, 1011, $clone($toNativeArray($kindInt32, [-116, 0, -116]), d)), CaseRange), $clone(new CaseRange.ptr(1012, 1012, $clone($toNativeArray($kindInt32, [0, -60, 0]), d)), CaseRange), $clone(new CaseRange.ptr(1013, 1013, $clone($toNativeArray($kindInt32, [-96, 0, -96]), d)), CaseRange), $clone(new CaseRange.ptr(1015, 1016, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(1017, 1017, $clone($toNativeArray($kindInt32, [0, -7, 0]), d)), CaseRange), $clone(new CaseRange.ptr(1018, 1019, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(1021, 1023, $clone($toNativeArray($kindInt32, [0, -130, 0]), d)), CaseRange), $clone(new CaseRange.ptr(1024, 1039, $clone($toNativeArray($kindInt32, [0, 80, 0]), d)), CaseRange), $clone(new CaseRange.ptr(1040, 1071, $clone($toNativeArray($kindInt32, [0, 32, 0]), d)), CaseRange), $clone(new CaseRange.ptr(1072, 1103, $clone($toNativeArray($kindInt32, [-32, 0, -32]), d)), CaseRange), $clone(new CaseRange.ptr(1104, 1119, $clone($toNativeArray($kindInt32, [-80, 0, -80]), d)), CaseRange), $clone(new CaseRange.ptr(1120, 1153, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(1162, 1215, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(1216, 1216, $clone($toNativeArray($kindInt32, [0, 15, 0]), d)), CaseRange), $clone(new CaseRange.ptr(1217, 1230, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(1231, 1231, $clone($toNativeArray($kindInt32, [-15, 0, -15]), d)), CaseRange), $clone(new CaseRange.ptr(1232, 1327, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(1329, 1366, $clone($toNativeArray($kindInt32, [0, 48, 0]), d)), CaseRange), $clone(new CaseRange.ptr(1377, 1414, $clone($toNativeArray($kindInt32, [-48, 0, -48]), d)), CaseRange), $clone(new CaseRange.ptr(4256, 4293, $clone($toNativeArray($kindInt32, [0, 7264, 0]), d)), CaseRange), $clone(new CaseRange.ptr(4295, 4295, $clone($toNativeArray($kindInt32, [0, 7264, 0]), d)), CaseRange), $clone(new CaseRange.ptr(4301, 4301, $clone($toNativeArray($kindInt32, [0, 7264, 0]), d)), CaseRange), $clone(new CaseRange.ptr(4304, 4346, $clone($toNativeArray($kindInt32, [3008, 0, 0]), d)), CaseRange), $clone(new CaseRange.ptr(4349, 4351, $clone($toNativeArray($kindInt32, [3008, 0, 0]), d)), CaseRange), $clone(new CaseRange.ptr(5024, 5103, $clone($toNativeArray($kindInt32, [0, 38864, 0]), d)), CaseRange), $clone(new CaseRange.ptr(5104, 5109, $clone($toNativeArray($kindInt32, [0, 8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(5112, 5117, $clone($toNativeArray($kindInt32, [-8, 0, -8]), d)), CaseRange), $clone(new CaseRange.ptr(7296, 7296, $clone($toNativeArray($kindInt32, [-6254, 0, -6254]), d)), CaseRange), $clone(new CaseRange.ptr(7297, 7297, $clone($toNativeArray($kindInt32, [-6253, 0, -6253]), d)), CaseRange), $clone(new CaseRange.ptr(7298, 7298, $clone($toNativeArray($kindInt32, [-6244, 0, -6244]), d)), CaseRange), $clone(new CaseRange.ptr(7299, 7300, $clone($toNativeArray($kindInt32, [-6242, 0, -6242]), d)), CaseRange), $clone(new CaseRange.ptr(7301, 7301, $clone($toNativeArray($kindInt32, [-6243, 0, -6243]), d)), CaseRange), $clone(new CaseRange.ptr(7302, 7302, $clone($toNativeArray($kindInt32, [-6236, 0, -6236]), d)), CaseRange), $clone(new CaseRange.ptr(7303, 7303, $clone($toNativeArray($kindInt32, [-6181, 0, -6181]), d)), CaseRange), $clone(new CaseRange.ptr(7304, 7304, $clone($toNativeArray($kindInt32, [35266, 0, 35266]), d)), CaseRange), $clone(new CaseRange.ptr(7312, 7354, $clone($toNativeArray($kindInt32, [0, -3008, 0]), d)), CaseRange), $clone(new CaseRange.ptr(7357, 7359, $clone($toNativeArray($kindInt32, [0, -3008, 0]), d)), CaseRange), $clone(new CaseRange.ptr(7545, 7545, $clone($toNativeArray($kindInt32, [35332, 0, 35332]), d)), CaseRange), $clone(new CaseRange.ptr(7549, 7549, $clone($toNativeArray($kindInt32, [3814, 0, 3814]), d)), CaseRange), $clone(new CaseRange.ptr(7566, 7566, $clone($toNativeArray($kindInt32, [35384, 0, 35384]), d)), CaseRange), $clone(new CaseRange.ptr(7680, 7829, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(7835, 7835, $clone($toNativeArray($kindInt32, [-59, 0, -59]), d)), CaseRange), $clone(new CaseRange.ptr(7838, 7838, $clone($toNativeArray($kindInt32, [0, -7615, 0]), d)), CaseRange), $clone(new CaseRange.ptr(7840, 7935, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(7936, 7943, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(7944, 7951, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(7952, 7957, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(7960, 7965, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(7968, 7975, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(7976, 7983, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(7984, 7991, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(7992, 7999, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8000, 8005, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8008, 8013, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8017, 8017, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8019, 8019, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8021, 8021, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8023, 8023, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8025, 8025, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8027, 8027, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8029, 8029, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8031, 8031, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8032, 8039, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8040, 8047, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8048, 8049, $clone($toNativeArray($kindInt32, [74, 0, 74]), d)), CaseRange), $clone(new CaseRange.ptr(8050, 8053, $clone($toNativeArray($kindInt32, [86, 0, 86]), d)), CaseRange), $clone(new CaseRange.ptr(8054, 8055, $clone($toNativeArray($kindInt32, [100, 0, 100]), d)), CaseRange), $clone(new CaseRange.ptr(8056, 8057, $clone($toNativeArray($kindInt32, [128, 0, 128]), d)), CaseRange), $clone(new CaseRange.ptr(8058, 8059, $clone($toNativeArray($kindInt32, [112, 0, 112]), d)), CaseRange), $clone(new CaseRange.ptr(8060, 8061, $clone($toNativeArray($kindInt32, [126, 0, 126]), d)), CaseRange), $clone(new CaseRange.ptr(8064, 8071, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8072, 8079, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8080, 8087, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8088, 8095, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8096, 8103, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8104, 8111, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8112, 8113, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8115, 8115, $clone($toNativeArray($kindInt32, [9, 0, 9]), d)), CaseRange), $clone(new CaseRange.ptr(8120, 8121, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8122, 8123, $clone($toNativeArray($kindInt32, [0, -74, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8124, 8124, $clone($toNativeArray($kindInt32, [0, -9, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8126, 8126, $clone($toNativeArray($kindInt32, [-7205, 0, -7205]), d)), CaseRange), $clone(new CaseRange.ptr(8131, 8131, $clone($toNativeArray($kindInt32, [9, 0, 9]), d)), CaseRange), $clone(new CaseRange.ptr(8136, 8139, $clone($toNativeArray($kindInt32, [0, -86, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8140, 8140, $clone($toNativeArray($kindInt32, [0, -9, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8144, 8145, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8152, 8153, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8154, 8155, $clone($toNativeArray($kindInt32, [0, -100, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8160, 8161, $clone($toNativeArray($kindInt32, [8, 0, 8]), d)), CaseRange), $clone(new CaseRange.ptr(8165, 8165, $clone($toNativeArray($kindInt32, [7, 0, 7]), d)), CaseRange), $clone(new CaseRange.ptr(8168, 8169, $clone($toNativeArray($kindInt32, [0, -8, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8170, 8171, $clone($toNativeArray($kindInt32, [0, -112, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8172, 8172, $clone($toNativeArray($kindInt32, [0, -7, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8179, 8179, $clone($toNativeArray($kindInt32, [9, 0, 9]), d)), CaseRange), $clone(new CaseRange.ptr(8184, 8185, $clone($toNativeArray($kindInt32, [0, -128, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8186, 8187, $clone($toNativeArray($kindInt32, [0, -126, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8188, 8188, $clone($toNativeArray($kindInt32, [0, -9, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8486, 8486, $clone($toNativeArray($kindInt32, [0, -7517, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8490, 8490, $clone($toNativeArray($kindInt32, [0, -8383, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8491, 8491, $clone($toNativeArray($kindInt32, [0, -8262, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8498, 8498, $clone($toNativeArray($kindInt32, [0, 28, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8526, 8526, $clone($toNativeArray($kindInt32, [-28, 0, -28]), d)), CaseRange), $clone(new CaseRange.ptr(8544, 8559, $clone($toNativeArray($kindInt32, [0, 16, 0]), d)), CaseRange), $clone(new CaseRange.ptr(8560, 8575, $clone($toNativeArray($kindInt32, [-16, 0, -16]), d)), CaseRange), $clone(new CaseRange.ptr(8579, 8580, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(9398, 9423, $clone($toNativeArray($kindInt32, [0, 26, 0]), d)), CaseRange), $clone(new CaseRange.ptr(9424, 9449, $clone($toNativeArray($kindInt32, [-26, 0, -26]), d)), CaseRange), $clone(new CaseRange.ptr(11264, 11311, $clone($toNativeArray($kindInt32, [0, 48, 0]), d)), CaseRange), $clone(new CaseRange.ptr(11312, 11359, $clone($toNativeArray($kindInt32, [-48, 0, -48]), d)), CaseRange), $clone(new CaseRange.ptr(11360, 11361, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(11362, 11362, $clone($toNativeArray($kindInt32, [0, -10743, 0]), d)), CaseRange), $clone(new CaseRange.ptr(11363, 11363, $clone($toNativeArray($kindInt32, [0, -3814, 0]), d)), CaseRange), $clone(new CaseRange.ptr(11364, 11364, $clone($toNativeArray($kindInt32, [0, -10727, 0]), d)), CaseRange), $clone(new CaseRange.ptr(11365, 11365, $clone($toNativeArray($kindInt32, [-10795, 0, -10795]), d)), CaseRange), $clone(new CaseRange.ptr(11366, 11366, $clone($toNativeArray($kindInt32, [-10792, 0, -10792]), d)), CaseRange), $clone(new CaseRange.ptr(11367, 11372, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(11373, 11373, $clone($toNativeArray($kindInt32, [0, -10780, 0]), d)), CaseRange), $clone(new CaseRange.ptr(11374, 11374, $clone($toNativeArray($kindInt32, [0, -10749, 0]), d)), CaseRange), $clone(new CaseRange.ptr(11375, 11375, $clone($toNativeArray($kindInt32, [0, -10783, 0]), d)), CaseRange), $clone(new CaseRange.ptr(11376, 11376, $clone($toNativeArray($kindInt32, [0, -10782, 0]), d)), CaseRange), $clone(new CaseRange.ptr(11378, 11379, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(11381, 11382, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(11390, 11391, $clone($toNativeArray($kindInt32, [0, -10815, 0]), d)), CaseRange), $clone(new CaseRange.ptr(11392, 11491, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(11499, 11502, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(11506, 11507, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(11520, 11557, $clone($toNativeArray($kindInt32, [-7264, 0, -7264]), d)), CaseRange), $clone(new CaseRange.ptr(11559, 11559, $clone($toNativeArray($kindInt32, [-7264, 0, -7264]), d)), CaseRange), $clone(new CaseRange.ptr(11565, 11565, $clone($toNativeArray($kindInt32, [-7264, 0, -7264]), d)), CaseRange), $clone(new CaseRange.ptr(42560, 42605, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42624, 42651, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42786, 42799, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42802, 42863, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42873, 42876, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42877, 42877, $clone($toNativeArray($kindInt32, [0, -35332, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42878, 42887, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42891, 42892, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42893, 42893, $clone($toNativeArray($kindInt32, [0, -42280, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42896, 42899, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42900, 42900, $clone($toNativeArray($kindInt32, [48, 0, 48]), d)), CaseRange), $clone(new CaseRange.ptr(42902, 42921, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42922, 42922, $clone($toNativeArray($kindInt32, [0, -42308, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42923, 42923, $clone($toNativeArray($kindInt32, [0, -42319, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42924, 42924, $clone($toNativeArray($kindInt32, [0, -42315, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42925, 42925, $clone($toNativeArray($kindInt32, [0, -42305, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42926, 42926, $clone($toNativeArray($kindInt32, [0, -42308, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42928, 42928, $clone($toNativeArray($kindInt32, [0, -42258, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42929, 42929, $clone($toNativeArray($kindInt32, [0, -42282, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42930, 42930, $clone($toNativeArray($kindInt32, [0, -42261, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42931, 42931, $clone($toNativeArray($kindInt32, [0, 928, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42932, 42947, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42948, 42948, $clone($toNativeArray($kindInt32, [0, -48, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42949, 42949, $clone($toNativeArray($kindInt32, [0, -42307, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42950, 42950, $clone($toNativeArray($kindInt32, [0, -35384, 0]), d)), CaseRange), $clone(new CaseRange.ptr(42951, 42954, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42960, 42961, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42966, 42969, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(42997, 42998, $clone($toNativeArray($kindInt32, [1114112, 1114112, 1114112]), d)), CaseRange), $clone(new CaseRange.ptr(43859, 43859, $clone($toNativeArray($kindInt32, [-928, 0, -928]), d)), CaseRange), $clone(new CaseRange.ptr(43888, 43967, $clone($toNativeArray($kindInt32, [-38864, 0, -38864]), d)), CaseRange), $clone(new CaseRange.ptr(65313, 65338, $clone($toNativeArray($kindInt32, [0, 32, 0]), d)), CaseRange), $clone(new CaseRange.ptr(65345, 65370, $clone($toNativeArray($kindInt32, [-32, 0, -32]), d)), CaseRange), $clone(new CaseRange.ptr(66560, 66599, $clone($toNativeArray($kindInt32, [0, 40, 0]), d)), CaseRange), $clone(new CaseRange.ptr(66600, 66639, $clone($toNativeArray($kindInt32, [-40, 0, -40]), d)), CaseRange), $clone(new CaseRange.ptr(66736, 66771, $clone($toNativeArray($kindInt32, [0, 40, 0]), d)), CaseRange), $clone(new CaseRange.ptr(66776, 66811, $clone($toNativeArray($kindInt32, [-40, 0, -40]), d)), CaseRange), $clone(new CaseRange.ptr(66928, 66938, $clone($toNativeArray($kindInt32, [0, 39, 0]), d)), CaseRange), $clone(new CaseRange.ptr(66940, 66954, $clone($toNativeArray($kindInt32, [0, 39, 0]), d)), CaseRange), $clone(new CaseRange.ptr(66956, 66962, $clone($toNativeArray($kindInt32, [0, 39, 0]), d)), CaseRange), $clone(new CaseRange.ptr(66964, 66965, $clone($toNativeArray($kindInt32, [0, 39, 0]), d)), CaseRange), $clone(new CaseRange.ptr(66967, 66977, $clone($toNativeArray($kindInt32, [-39, 0, -39]), d)), CaseRange), $clone(new CaseRange.ptr(66979, 66993, $clone($toNativeArray($kindInt32, [-39, 0, -39]), d)), CaseRange), $clone(new CaseRange.ptr(66995, 67001, $clone($toNativeArray($kindInt32, [-39, 0, -39]), d)), CaseRange), $clone(new CaseRange.ptr(67003, 67004, $clone($toNativeArray($kindInt32, [-39, 0, -39]), d)), CaseRange), $clone(new CaseRange.ptr(68736, 68786, $clone($toNativeArray($kindInt32, [0, 64, 0]), d)), CaseRange), $clone(new CaseRange.ptr(68800, 68850, $clone($toNativeArray($kindInt32, [-64, 0, -64]), d)), CaseRange), $clone(new CaseRange.ptr(71840, 71871, $clone($toNativeArray($kindInt32, [0, 32, 0]), d)), CaseRange), $clone(new CaseRange.ptr(71872, 71903, $clone($toNativeArray($kindInt32, [-32, 0, -32]), d)), CaseRange), $clone(new CaseRange.ptr(93760, 93791, $clone($toNativeArray($kindInt32, [0, 32, 0]), d)), CaseRange), $clone(new CaseRange.ptr(93792, 93823, $clone($toNativeArray($kindInt32, [-32, 0, -32]), d)), CaseRange), $clone(new CaseRange.ptr(125184, 125217, $clone($toNativeArray($kindInt32, [0, 34, 0]), d)), CaseRange), $clone(new CaseRange.ptr(125218, 125251, $clone($toNativeArray($kindInt32, [-34, 0, -34]), d)), CaseRange)]); $pkg.CaseRanges = _CaseRanges; properties = $toNativeArray($kindUint8, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 144, 130, 130, 130, 136, 130, 130, 130, 130, 130, 130, 136, 130, 130, 130, 130, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 130, 130, 136, 136, 136, 130, 130, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 130, 130, 130, 136, 130, 136, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 130, 136, 130, 136, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 16, 130, 136, 136, 136, 136, 136, 130, 136, 136, 224, 130, 136, 0, 136, 136, 136, 136, 132, 132, 136, 192, 130, 130, 136, 132, 224, 130, 132, 132, 132, 130, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 136, 160, 160, 160, 160, 160, 160, 160, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 136, 192, 192, 192, 192, 192, 192, 192, 192]); asciiFold = $toNativeArray($kindUint16, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 91, 92, 93, 94, 95, 96, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 8490, 76, 77, 78, 79, 80, 81, 82, 383, 84, 85, 86, 87, 88, 89, 90, 123, 124, 125, 126, 127]); caseOrbit = new sliceType$3([$clone(new foldPair.ptr(75, 107), foldPair), $clone(new foldPair.ptr(83, 115), foldPair), $clone(new foldPair.ptr(107, 8490), foldPair), $clone(new foldPair.ptr(115, 383), foldPair), $clone(new foldPair.ptr(181, 924), foldPair), $clone(new foldPair.ptr(197, 229), foldPair), $clone(new foldPair.ptr(223, 7838), foldPair), $clone(new foldPair.ptr(229, 8491), foldPair), $clone(new foldPair.ptr(304, 304), foldPair), $clone(new foldPair.ptr(305, 305), foldPair), $clone(new foldPair.ptr(383, 83), foldPair), $clone(new foldPair.ptr(452, 453), foldPair), $clone(new foldPair.ptr(453, 454), foldPair), $clone(new foldPair.ptr(454, 452), foldPair), $clone(new foldPair.ptr(455, 456), foldPair), $clone(new foldPair.ptr(456, 457), foldPair), $clone(new foldPair.ptr(457, 455), foldPair), $clone(new foldPair.ptr(458, 459), foldPair), $clone(new foldPair.ptr(459, 460), foldPair), $clone(new foldPair.ptr(460, 458), foldPair), $clone(new foldPair.ptr(497, 498), foldPair), $clone(new foldPair.ptr(498, 499), foldPair), $clone(new foldPair.ptr(499, 497), foldPair), $clone(new foldPair.ptr(837, 921), foldPair), $clone(new foldPair.ptr(914, 946), foldPair), $clone(new foldPair.ptr(917, 949), foldPair), $clone(new foldPair.ptr(920, 952), foldPair), $clone(new foldPair.ptr(921, 953), foldPair), $clone(new foldPair.ptr(922, 954), foldPair), $clone(new foldPair.ptr(924, 956), foldPair), $clone(new foldPair.ptr(928, 960), foldPair), $clone(new foldPair.ptr(929, 961), foldPair), $clone(new foldPair.ptr(931, 962), foldPair), $clone(new foldPair.ptr(934, 966), foldPair), $clone(new foldPair.ptr(937, 969), foldPair), $clone(new foldPair.ptr(946, 976), foldPair), $clone(new foldPair.ptr(949, 1013), foldPair), $clone(new foldPair.ptr(952, 977), foldPair), $clone(new foldPair.ptr(953, 8126), foldPair), $clone(new foldPair.ptr(954, 1008), foldPair), $clone(new foldPair.ptr(956, 181), foldPair), $clone(new foldPair.ptr(960, 982), foldPair), $clone(new foldPair.ptr(961, 1009), foldPair), $clone(new foldPair.ptr(962, 963), foldPair), $clone(new foldPair.ptr(963, 931), foldPair), $clone(new foldPair.ptr(966, 981), foldPair), $clone(new foldPair.ptr(969, 8486), foldPair), $clone(new foldPair.ptr(976, 914), foldPair), $clone(new foldPair.ptr(977, 1012), foldPair), $clone(new foldPair.ptr(981, 934), foldPair), $clone(new foldPair.ptr(982, 928), foldPair), $clone(new foldPair.ptr(1008, 922), foldPair), $clone(new foldPair.ptr(1009, 929), foldPair), $clone(new foldPair.ptr(1012, 920), foldPair), $clone(new foldPair.ptr(1013, 917), foldPair), $clone(new foldPair.ptr(1042, 1074), foldPair), $clone(new foldPair.ptr(1044, 1076), foldPair), $clone(new foldPair.ptr(1054, 1086), foldPair), $clone(new foldPair.ptr(1057, 1089), foldPair), $clone(new foldPair.ptr(1058, 1090), foldPair), $clone(new foldPair.ptr(1066, 1098), foldPair), $clone(new foldPair.ptr(1074, 7296), foldPair), $clone(new foldPair.ptr(1076, 7297), foldPair), $clone(new foldPair.ptr(1086, 7298), foldPair), $clone(new foldPair.ptr(1089, 7299), foldPair), $clone(new foldPair.ptr(1090, 7300), foldPair), $clone(new foldPair.ptr(1098, 7302), foldPair), $clone(new foldPair.ptr(1122, 1123), foldPair), $clone(new foldPair.ptr(1123, 7303), foldPair), $clone(new foldPair.ptr(7296, 1042), foldPair), $clone(new foldPair.ptr(7297, 1044), foldPair), $clone(new foldPair.ptr(7298, 1054), foldPair), $clone(new foldPair.ptr(7299, 1057), foldPair), $clone(new foldPair.ptr(7300, 7301), foldPair), $clone(new foldPair.ptr(7301, 1058), foldPair), $clone(new foldPair.ptr(7302, 1066), foldPair), $clone(new foldPair.ptr(7303, 1122), foldPair), $clone(new foldPair.ptr(7304, 42570), foldPair), $clone(new foldPair.ptr(7776, 7777), foldPair), $clone(new foldPair.ptr(7777, 7835), foldPair), $clone(new foldPair.ptr(7835, 7776), foldPair), $clone(new foldPair.ptr(7838, 223), foldPair), $clone(new foldPair.ptr(8126, 837), foldPair), $clone(new foldPair.ptr(8486, 937), foldPair), $clone(new foldPair.ptr(8490, 75), foldPair), $clone(new foldPair.ptr(8491, 197), foldPair), $clone(new foldPair.ptr(42570, 42571), foldPair), $clone(new foldPair.ptr(42571, 7304), foldPair)]); foldL = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(837, 837, 1), Range16)]), sliceType$1.nil, 0); - foldLl = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(65, 90, 1), Range16), $clone(new Range16.ptr(192, 214, 1), Range16), $clone(new Range16.ptr(216, 222, 1), Range16), $clone(new Range16.ptr(256, 302, 2), Range16), $clone(new Range16.ptr(306, 310, 2), Range16), $clone(new Range16.ptr(313, 327, 2), Range16), $clone(new Range16.ptr(330, 376, 2), Range16), $clone(new Range16.ptr(377, 381, 2), Range16), $clone(new Range16.ptr(385, 386, 1), Range16), $clone(new Range16.ptr(388, 390, 2), Range16), $clone(new Range16.ptr(391, 393, 2), Range16), $clone(new Range16.ptr(394, 395, 1), Range16), $clone(new Range16.ptr(398, 401, 1), Range16), $clone(new Range16.ptr(403, 404, 1), Range16), $clone(new Range16.ptr(406, 408, 1), Range16), $clone(new Range16.ptr(412, 413, 1), Range16), $clone(new Range16.ptr(415, 416, 1), Range16), $clone(new Range16.ptr(418, 422, 2), Range16), $clone(new Range16.ptr(423, 425, 2), Range16), $clone(new Range16.ptr(428, 430, 2), Range16), $clone(new Range16.ptr(431, 433, 2), Range16), $clone(new Range16.ptr(434, 435, 1), Range16), $clone(new Range16.ptr(437, 439, 2), Range16), $clone(new Range16.ptr(440, 444, 4), Range16), $clone(new Range16.ptr(452, 453, 1), Range16), $clone(new Range16.ptr(455, 456, 1), Range16), $clone(new Range16.ptr(458, 459, 1), Range16), $clone(new Range16.ptr(461, 475, 2), Range16), $clone(new Range16.ptr(478, 494, 2), Range16), $clone(new Range16.ptr(497, 498, 1), Range16), $clone(new Range16.ptr(500, 502, 2), Range16), $clone(new Range16.ptr(503, 504, 1), Range16), $clone(new Range16.ptr(506, 562, 2), Range16), $clone(new Range16.ptr(570, 571, 1), Range16), $clone(new Range16.ptr(573, 574, 1), Range16), $clone(new Range16.ptr(577, 579, 2), Range16), $clone(new Range16.ptr(580, 582, 1), Range16), $clone(new Range16.ptr(584, 590, 2), Range16), $clone(new Range16.ptr(837, 880, 43), Range16), $clone(new Range16.ptr(882, 886, 4), Range16), $clone(new Range16.ptr(895, 902, 7), Range16), $clone(new Range16.ptr(904, 906, 1), Range16), $clone(new Range16.ptr(908, 910, 2), Range16), $clone(new Range16.ptr(911, 913, 2), Range16), $clone(new Range16.ptr(914, 929, 1), Range16), $clone(new Range16.ptr(931, 939, 1), Range16), $clone(new Range16.ptr(975, 984, 9), Range16), $clone(new Range16.ptr(986, 1006, 2), Range16), $clone(new Range16.ptr(1012, 1015, 3), Range16), $clone(new Range16.ptr(1017, 1018, 1), Range16), $clone(new Range16.ptr(1021, 1071, 1), Range16), $clone(new Range16.ptr(1120, 1152, 2), Range16), $clone(new Range16.ptr(1162, 1216, 2), Range16), $clone(new Range16.ptr(1217, 1229, 2), Range16), $clone(new Range16.ptr(1232, 1326, 2), Range16), $clone(new Range16.ptr(1329, 1366, 1), Range16), $clone(new Range16.ptr(4256, 4293, 1), Range16), $clone(new Range16.ptr(4295, 4301, 6), Range16), $clone(new Range16.ptr(5024, 5109, 1), Range16), $clone(new Range16.ptr(7312, 7354, 1), Range16), $clone(new Range16.ptr(7357, 7359, 1), Range16), $clone(new Range16.ptr(7680, 7828, 2), Range16), $clone(new Range16.ptr(7838, 7934, 2), Range16), $clone(new Range16.ptr(7944, 7951, 1), Range16), $clone(new Range16.ptr(7960, 7965, 1), Range16), $clone(new Range16.ptr(7976, 7983, 1), Range16), $clone(new Range16.ptr(7992, 7999, 1), Range16), $clone(new Range16.ptr(8008, 8013, 1), Range16), $clone(new Range16.ptr(8025, 8031, 2), Range16), $clone(new Range16.ptr(8040, 8047, 1), Range16), $clone(new Range16.ptr(8072, 8079, 1), Range16), $clone(new Range16.ptr(8088, 8095, 1), Range16), $clone(new Range16.ptr(8104, 8111, 1), Range16), $clone(new Range16.ptr(8120, 8124, 1), Range16), $clone(new Range16.ptr(8136, 8140, 1), Range16), $clone(new Range16.ptr(8152, 8155, 1), Range16), $clone(new Range16.ptr(8168, 8172, 1), Range16), $clone(new Range16.ptr(8184, 8188, 1), Range16), $clone(new Range16.ptr(8486, 8490, 4), Range16), $clone(new Range16.ptr(8491, 8498, 7), Range16), $clone(new Range16.ptr(8579, 11264, 2685), Range16), $clone(new Range16.ptr(11265, 11310, 1), Range16), $clone(new Range16.ptr(11360, 11362, 2), Range16), $clone(new Range16.ptr(11363, 11364, 1), Range16), $clone(new Range16.ptr(11367, 11373, 2), Range16), $clone(new Range16.ptr(11374, 11376, 1), Range16), $clone(new Range16.ptr(11378, 11381, 3), Range16), $clone(new Range16.ptr(11390, 11392, 1), Range16), $clone(new Range16.ptr(11394, 11490, 2), Range16), $clone(new Range16.ptr(11499, 11501, 2), Range16), $clone(new Range16.ptr(11506, 42560, 31054), Range16), $clone(new Range16.ptr(42562, 42604, 2), Range16), $clone(new Range16.ptr(42624, 42650, 2), Range16), $clone(new Range16.ptr(42786, 42798, 2), Range16), $clone(new Range16.ptr(42802, 42862, 2), Range16), $clone(new Range16.ptr(42873, 42877, 2), Range16), $clone(new Range16.ptr(42878, 42886, 2), Range16), $clone(new Range16.ptr(42891, 42893, 2), Range16), $clone(new Range16.ptr(42896, 42898, 2), Range16), $clone(new Range16.ptr(42902, 42922, 2), Range16), $clone(new Range16.ptr(42923, 42926, 1), Range16), $clone(new Range16.ptr(42928, 42932, 1), Range16), $clone(new Range16.ptr(42934, 42942, 2), Range16), $clone(new Range16.ptr(42946, 42948, 2), Range16), $clone(new Range16.ptr(42949, 42951, 1), Range16), $clone(new Range16.ptr(42953, 42997, 44), Range16), $clone(new Range16.ptr(65313, 65338, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(66560, 66599, 1), Range32), $clone(new Range32.ptr(66736, 66771, 1), Range32), $clone(new Range32.ptr(68736, 68786, 1), Range32), $clone(new Range32.ptr(71840, 71871, 1), Range32), $clone(new Range32.ptr(93760, 93791, 1), Range32), $clone(new Range32.ptr(125184, 125217, 1), Range32)]), 3); + foldLl = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(65, 90, 1), Range16), $clone(new Range16.ptr(192, 214, 1), Range16), $clone(new Range16.ptr(216, 222, 1), Range16), $clone(new Range16.ptr(256, 302, 2), Range16), $clone(new Range16.ptr(306, 310, 2), Range16), $clone(new Range16.ptr(313, 327, 2), Range16), $clone(new Range16.ptr(330, 376, 2), Range16), $clone(new Range16.ptr(377, 381, 2), Range16), $clone(new Range16.ptr(385, 386, 1), Range16), $clone(new Range16.ptr(388, 390, 2), Range16), $clone(new Range16.ptr(391, 393, 2), Range16), $clone(new Range16.ptr(394, 395, 1), Range16), $clone(new Range16.ptr(398, 401, 1), Range16), $clone(new Range16.ptr(403, 404, 1), Range16), $clone(new Range16.ptr(406, 408, 1), Range16), $clone(new Range16.ptr(412, 413, 1), Range16), $clone(new Range16.ptr(415, 416, 1), Range16), $clone(new Range16.ptr(418, 422, 2), Range16), $clone(new Range16.ptr(423, 425, 2), Range16), $clone(new Range16.ptr(428, 430, 2), Range16), $clone(new Range16.ptr(431, 433, 2), Range16), $clone(new Range16.ptr(434, 435, 1), Range16), $clone(new Range16.ptr(437, 439, 2), Range16), $clone(new Range16.ptr(440, 444, 4), Range16), $clone(new Range16.ptr(452, 453, 1), Range16), $clone(new Range16.ptr(455, 456, 1), Range16), $clone(new Range16.ptr(458, 459, 1), Range16), $clone(new Range16.ptr(461, 475, 2), Range16), $clone(new Range16.ptr(478, 494, 2), Range16), $clone(new Range16.ptr(497, 498, 1), Range16), $clone(new Range16.ptr(500, 502, 2), Range16), $clone(new Range16.ptr(503, 504, 1), Range16), $clone(new Range16.ptr(506, 562, 2), Range16), $clone(new Range16.ptr(570, 571, 1), Range16), $clone(new Range16.ptr(573, 574, 1), Range16), $clone(new Range16.ptr(577, 579, 2), Range16), $clone(new Range16.ptr(580, 582, 1), Range16), $clone(new Range16.ptr(584, 590, 2), Range16), $clone(new Range16.ptr(837, 880, 43), Range16), $clone(new Range16.ptr(882, 886, 4), Range16), $clone(new Range16.ptr(895, 902, 7), Range16), $clone(new Range16.ptr(904, 906, 1), Range16), $clone(new Range16.ptr(908, 910, 2), Range16), $clone(new Range16.ptr(911, 913, 2), Range16), $clone(new Range16.ptr(914, 929, 1), Range16), $clone(new Range16.ptr(931, 939, 1), Range16), $clone(new Range16.ptr(975, 984, 9), Range16), $clone(new Range16.ptr(986, 1006, 2), Range16), $clone(new Range16.ptr(1012, 1015, 3), Range16), $clone(new Range16.ptr(1017, 1018, 1), Range16), $clone(new Range16.ptr(1021, 1071, 1), Range16), $clone(new Range16.ptr(1120, 1152, 2), Range16), $clone(new Range16.ptr(1162, 1216, 2), Range16), $clone(new Range16.ptr(1217, 1229, 2), Range16), $clone(new Range16.ptr(1232, 1326, 2), Range16), $clone(new Range16.ptr(1329, 1366, 1), Range16), $clone(new Range16.ptr(4256, 4293, 1), Range16), $clone(new Range16.ptr(4295, 4301, 6), Range16), $clone(new Range16.ptr(5024, 5109, 1), Range16), $clone(new Range16.ptr(7312, 7354, 1), Range16), $clone(new Range16.ptr(7357, 7359, 1), Range16), $clone(new Range16.ptr(7680, 7828, 2), Range16), $clone(new Range16.ptr(7838, 7934, 2), Range16), $clone(new Range16.ptr(7944, 7951, 1), Range16), $clone(new Range16.ptr(7960, 7965, 1), Range16), $clone(new Range16.ptr(7976, 7983, 1), Range16), $clone(new Range16.ptr(7992, 7999, 1), Range16), $clone(new Range16.ptr(8008, 8013, 1), Range16), $clone(new Range16.ptr(8025, 8031, 2), Range16), $clone(new Range16.ptr(8040, 8047, 1), Range16), $clone(new Range16.ptr(8072, 8079, 1), Range16), $clone(new Range16.ptr(8088, 8095, 1), Range16), $clone(new Range16.ptr(8104, 8111, 1), Range16), $clone(new Range16.ptr(8120, 8124, 1), Range16), $clone(new Range16.ptr(8136, 8140, 1), Range16), $clone(new Range16.ptr(8152, 8155, 1), Range16), $clone(new Range16.ptr(8168, 8172, 1), Range16), $clone(new Range16.ptr(8184, 8188, 1), Range16), $clone(new Range16.ptr(8486, 8490, 4), Range16), $clone(new Range16.ptr(8491, 8498, 7), Range16), $clone(new Range16.ptr(8579, 11264, 2685), Range16), $clone(new Range16.ptr(11265, 11311, 1), Range16), $clone(new Range16.ptr(11360, 11362, 2), Range16), $clone(new Range16.ptr(11363, 11364, 1), Range16), $clone(new Range16.ptr(11367, 11373, 2), Range16), $clone(new Range16.ptr(11374, 11376, 1), Range16), $clone(new Range16.ptr(11378, 11381, 3), Range16), $clone(new Range16.ptr(11390, 11392, 1), Range16), $clone(new Range16.ptr(11394, 11490, 2), Range16), $clone(new Range16.ptr(11499, 11501, 2), Range16), $clone(new Range16.ptr(11506, 42560, 31054), Range16), $clone(new Range16.ptr(42562, 42604, 2), Range16), $clone(new Range16.ptr(42624, 42650, 2), Range16), $clone(new Range16.ptr(42786, 42798, 2), Range16), $clone(new Range16.ptr(42802, 42862, 2), Range16), $clone(new Range16.ptr(42873, 42877, 2), Range16), $clone(new Range16.ptr(42878, 42886, 2), Range16), $clone(new Range16.ptr(42891, 42893, 2), Range16), $clone(new Range16.ptr(42896, 42898, 2), Range16), $clone(new Range16.ptr(42902, 42922, 2), Range16), $clone(new Range16.ptr(42923, 42926, 1), Range16), $clone(new Range16.ptr(42928, 42932, 1), Range16), $clone(new Range16.ptr(42934, 42948, 2), Range16), $clone(new Range16.ptr(42949, 42951, 1), Range16), $clone(new Range16.ptr(42953, 42960, 7), Range16), $clone(new Range16.ptr(42966, 42968, 2), Range16), $clone(new Range16.ptr(42997, 65313, 22316), Range16), $clone(new Range16.ptr(65314, 65338, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(66560, 66599, 1), Range32), $clone(new Range32.ptr(66736, 66771, 1), Range32), $clone(new Range32.ptr(66928, 66938, 1), Range32), $clone(new Range32.ptr(66940, 66954, 1), Range32), $clone(new Range32.ptr(66956, 66962, 1), Range32), $clone(new Range32.ptr(66964, 66965, 1), Range32), $clone(new Range32.ptr(68736, 68786, 1), Range32), $clone(new Range32.ptr(71840, 71871, 1), Range32), $clone(new Range32.ptr(93760, 93791, 1), Range32), $clone(new Range32.ptr(125184, 125217, 1), Range32)]), 3); foldLt = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(452, 454, 2), Range16), $clone(new Range16.ptr(455, 457, 2), Range16), $clone(new Range16.ptr(458, 460, 2), Range16), $clone(new Range16.ptr(497, 499, 2), Range16), $clone(new Range16.ptr(8064, 8071, 1), Range16), $clone(new Range16.ptr(8080, 8087, 1), Range16), $clone(new Range16.ptr(8096, 8103, 1), Range16), $clone(new Range16.ptr(8115, 8131, 16), Range16), $clone(new Range16.ptr(8179, 8179, 1), Range16)]), sliceType$1.nil, 0); - foldLu = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(97, 122, 1), Range16), $clone(new Range16.ptr(181, 223, 42), Range16), $clone(new Range16.ptr(224, 246, 1), Range16), $clone(new Range16.ptr(248, 255, 1), Range16), $clone(new Range16.ptr(257, 303, 2), Range16), $clone(new Range16.ptr(307, 311, 2), Range16), $clone(new Range16.ptr(314, 328, 2), Range16), $clone(new Range16.ptr(331, 375, 2), Range16), $clone(new Range16.ptr(378, 382, 2), Range16), $clone(new Range16.ptr(383, 384, 1), Range16), $clone(new Range16.ptr(387, 389, 2), Range16), $clone(new Range16.ptr(392, 396, 4), Range16), $clone(new Range16.ptr(402, 405, 3), Range16), $clone(new Range16.ptr(409, 410, 1), Range16), $clone(new Range16.ptr(414, 417, 3), Range16), $clone(new Range16.ptr(419, 421, 2), Range16), $clone(new Range16.ptr(424, 429, 5), Range16), $clone(new Range16.ptr(432, 436, 4), Range16), $clone(new Range16.ptr(438, 441, 3), Range16), $clone(new Range16.ptr(445, 447, 2), Range16), $clone(new Range16.ptr(453, 454, 1), Range16), $clone(new Range16.ptr(456, 457, 1), Range16), $clone(new Range16.ptr(459, 460, 1), Range16), $clone(new Range16.ptr(462, 476, 2), Range16), $clone(new Range16.ptr(477, 495, 2), Range16), $clone(new Range16.ptr(498, 499, 1), Range16), $clone(new Range16.ptr(501, 505, 4), Range16), $clone(new Range16.ptr(507, 543, 2), Range16), $clone(new Range16.ptr(547, 563, 2), Range16), $clone(new Range16.ptr(572, 575, 3), Range16), $clone(new Range16.ptr(576, 578, 2), Range16), $clone(new Range16.ptr(583, 591, 2), Range16), $clone(new Range16.ptr(592, 596, 1), Range16), $clone(new Range16.ptr(598, 599, 1), Range16), $clone(new Range16.ptr(601, 603, 2), Range16), $clone(new Range16.ptr(604, 608, 4), Range16), $clone(new Range16.ptr(609, 613, 2), Range16), $clone(new Range16.ptr(614, 616, 2), Range16), $clone(new Range16.ptr(617, 620, 1), Range16), $clone(new Range16.ptr(623, 625, 2), Range16), $clone(new Range16.ptr(626, 629, 3), Range16), $clone(new Range16.ptr(637, 640, 3), Range16), $clone(new Range16.ptr(642, 643, 1), Range16), $clone(new Range16.ptr(647, 652, 1), Range16), $clone(new Range16.ptr(658, 669, 11), Range16), $clone(new Range16.ptr(670, 837, 167), Range16), $clone(new Range16.ptr(881, 883, 2), Range16), $clone(new Range16.ptr(887, 891, 4), Range16), $clone(new Range16.ptr(892, 893, 1), Range16), $clone(new Range16.ptr(940, 943, 1), Range16), $clone(new Range16.ptr(945, 974, 1), Range16), $clone(new Range16.ptr(976, 977, 1), Range16), $clone(new Range16.ptr(981, 983, 1), Range16), $clone(new Range16.ptr(985, 1007, 2), Range16), $clone(new Range16.ptr(1008, 1011, 1), Range16), $clone(new Range16.ptr(1013, 1019, 3), Range16), $clone(new Range16.ptr(1072, 1119, 1), Range16), $clone(new Range16.ptr(1121, 1153, 2), Range16), $clone(new Range16.ptr(1163, 1215, 2), Range16), $clone(new Range16.ptr(1218, 1230, 2), Range16), $clone(new Range16.ptr(1231, 1327, 2), Range16), $clone(new Range16.ptr(1377, 1414, 1), Range16), $clone(new Range16.ptr(4304, 4346, 1), Range16), $clone(new Range16.ptr(4349, 4351, 1), Range16), $clone(new Range16.ptr(5112, 5117, 1), Range16), $clone(new Range16.ptr(7296, 7304, 1), Range16), $clone(new Range16.ptr(7545, 7549, 4), Range16), $clone(new Range16.ptr(7566, 7681, 115), Range16), $clone(new Range16.ptr(7683, 7829, 2), Range16), $clone(new Range16.ptr(7835, 7841, 6), Range16), $clone(new Range16.ptr(7843, 7935, 2), Range16), $clone(new Range16.ptr(7936, 7943, 1), Range16), $clone(new Range16.ptr(7952, 7957, 1), Range16), $clone(new Range16.ptr(7968, 7975, 1), Range16), $clone(new Range16.ptr(7984, 7991, 1), Range16), $clone(new Range16.ptr(8000, 8005, 1), Range16), $clone(new Range16.ptr(8017, 8023, 2), Range16), $clone(new Range16.ptr(8032, 8039, 1), Range16), $clone(new Range16.ptr(8048, 8061, 1), Range16), $clone(new Range16.ptr(8112, 8113, 1), Range16), $clone(new Range16.ptr(8126, 8144, 18), Range16), $clone(new Range16.ptr(8145, 8160, 15), Range16), $clone(new Range16.ptr(8161, 8165, 4), Range16), $clone(new Range16.ptr(8526, 8580, 54), Range16), $clone(new Range16.ptr(11312, 11358, 1), Range16), $clone(new Range16.ptr(11361, 11365, 4), Range16), $clone(new Range16.ptr(11366, 11372, 2), Range16), $clone(new Range16.ptr(11379, 11382, 3), Range16), $clone(new Range16.ptr(11393, 11491, 2), Range16), $clone(new Range16.ptr(11500, 11502, 2), Range16), $clone(new Range16.ptr(11507, 11520, 13), Range16), $clone(new Range16.ptr(11521, 11557, 1), Range16), $clone(new Range16.ptr(11559, 11565, 6), Range16), $clone(new Range16.ptr(42561, 42605, 2), Range16), $clone(new Range16.ptr(42625, 42651, 2), Range16), $clone(new Range16.ptr(42787, 42799, 2), Range16), $clone(new Range16.ptr(42803, 42863, 2), Range16), $clone(new Range16.ptr(42874, 42876, 2), Range16), $clone(new Range16.ptr(42879, 42887, 2), Range16), $clone(new Range16.ptr(42892, 42897, 5), Range16), $clone(new Range16.ptr(42899, 42900, 1), Range16), $clone(new Range16.ptr(42903, 42921, 2), Range16), $clone(new Range16.ptr(42933, 42943, 2), Range16), $clone(new Range16.ptr(42947, 42952, 5), Range16), $clone(new Range16.ptr(42954, 42998, 44), Range16), $clone(new Range16.ptr(43859, 43888, 29), Range16), $clone(new Range16.ptr(43889, 43967, 1), Range16), $clone(new Range16.ptr(65345, 65370, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(66600, 66639, 1), Range32), $clone(new Range32.ptr(66776, 66811, 1), Range32), $clone(new Range32.ptr(68800, 68850, 1), Range32), $clone(new Range32.ptr(71872, 71903, 1), Range32), $clone(new Range32.ptr(93792, 93823, 1), Range32), $clone(new Range32.ptr(125218, 125251, 1), Range32)]), 4); + foldLu = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(97, 122, 1), Range16), $clone(new Range16.ptr(181, 223, 42), Range16), $clone(new Range16.ptr(224, 246, 1), Range16), $clone(new Range16.ptr(248, 255, 1), Range16), $clone(new Range16.ptr(257, 303, 2), Range16), $clone(new Range16.ptr(307, 311, 2), Range16), $clone(new Range16.ptr(314, 328, 2), Range16), $clone(new Range16.ptr(331, 375, 2), Range16), $clone(new Range16.ptr(378, 382, 2), Range16), $clone(new Range16.ptr(383, 384, 1), Range16), $clone(new Range16.ptr(387, 389, 2), Range16), $clone(new Range16.ptr(392, 396, 4), Range16), $clone(new Range16.ptr(402, 405, 3), Range16), $clone(new Range16.ptr(409, 410, 1), Range16), $clone(new Range16.ptr(414, 417, 3), Range16), $clone(new Range16.ptr(419, 421, 2), Range16), $clone(new Range16.ptr(424, 429, 5), Range16), $clone(new Range16.ptr(432, 436, 4), Range16), $clone(new Range16.ptr(438, 441, 3), Range16), $clone(new Range16.ptr(445, 447, 2), Range16), $clone(new Range16.ptr(453, 454, 1), Range16), $clone(new Range16.ptr(456, 457, 1), Range16), $clone(new Range16.ptr(459, 460, 1), Range16), $clone(new Range16.ptr(462, 476, 2), Range16), $clone(new Range16.ptr(477, 495, 2), Range16), $clone(new Range16.ptr(498, 499, 1), Range16), $clone(new Range16.ptr(501, 505, 4), Range16), $clone(new Range16.ptr(507, 543, 2), Range16), $clone(new Range16.ptr(547, 563, 2), Range16), $clone(new Range16.ptr(572, 575, 3), Range16), $clone(new Range16.ptr(576, 578, 2), Range16), $clone(new Range16.ptr(583, 591, 2), Range16), $clone(new Range16.ptr(592, 596, 1), Range16), $clone(new Range16.ptr(598, 599, 1), Range16), $clone(new Range16.ptr(601, 603, 2), Range16), $clone(new Range16.ptr(604, 608, 4), Range16), $clone(new Range16.ptr(609, 613, 2), Range16), $clone(new Range16.ptr(614, 616, 2), Range16), $clone(new Range16.ptr(617, 620, 1), Range16), $clone(new Range16.ptr(623, 625, 2), Range16), $clone(new Range16.ptr(626, 629, 3), Range16), $clone(new Range16.ptr(637, 640, 3), Range16), $clone(new Range16.ptr(642, 643, 1), Range16), $clone(new Range16.ptr(647, 652, 1), Range16), $clone(new Range16.ptr(658, 669, 11), Range16), $clone(new Range16.ptr(670, 837, 167), Range16), $clone(new Range16.ptr(881, 883, 2), Range16), $clone(new Range16.ptr(887, 891, 4), Range16), $clone(new Range16.ptr(892, 893, 1), Range16), $clone(new Range16.ptr(940, 943, 1), Range16), $clone(new Range16.ptr(945, 974, 1), Range16), $clone(new Range16.ptr(976, 977, 1), Range16), $clone(new Range16.ptr(981, 983, 1), Range16), $clone(new Range16.ptr(985, 1007, 2), Range16), $clone(new Range16.ptr(1008, 1011, 1), Range16), $clone(new Range16.ptr(1013, 1019, 3), Range16), $clone(new Range16.ptr(1072, 1119, 1), Range16), $clone(new Range16.ptr(1121, 1153, 2), Range16), $clone(new Range16.ptr(1163, 1215, 2), Range16), $clone(new Range16.ptr(1218, 1230, 2), Range16), $clone(new Range16.ptr(1231, 1327, 2), Range16), $clone(new Range16.ptr(1377, 1414, 1), Range16), $clone(new Range16.ptr(4304, 4346, 1), Range16), $clone(new Range16.ptr(4349, 4351, 1), Range16), $clone(new Range16.ptr(5112, 5117, 1), Range16), $clone(new Range16.ptr(7296, 7304, 1), Range16), $clone(new Range16.ptr(7545, 7549, 4), Range16), $clone(new Range16.ptr(7566, 7681, 115), Range16), $clone(new Range16.ptr(7683, 7829, 2), Range16), $clone(new Range16.ptr(7835, 7841, 6), Range16), $clone(new Range16.ptr(7843, 7935, 2), Range16), $clone(new Range16.ptr(7936, 7943, 1), Range16), $clone(new Range16.ptr(7952, 7957, 1), Range16), $clone(new Range16.ptr(7968, 7975, 1), Range16), $clone(new Range16.ptr(7984, 7991, 1), Range16), $clone(new Range16.ptr(8000, 8005, 1), Range16), $clone(new Range16.ptr(8017, 8023, 2), Range16), $clone(new Range16.ptr(8032, 8039, 1), Range16), $clone(new Range16.ptr(8048, 8061, 1), Range16), $clone(new Range16.ptr(8112, 8113, 1), Range16), $clone(new Range16.ptr(8126, 8144, 18), Range16), $clone(new Range16.ptr(8145, 8160, 15), Range16), $clone(new Range16.ptr(8161, 8165, 4), Range16), $clone(new Range16.ptr(8526, 8580, 54), Range16), $clone(new Range16.ptr(11312, 11359, 1), Range16), $clone(new Range16.ptr(11361, 11365, 4), Range16), $clone(new Range16.ptr(11366, 11372, 2), Range16), $clone(new Range16.ptr(11379, 11382, 3), Range16), $clone(new Range16.ptr(11393, 11491, 2), Range16), $clone(new Range16.ptr(11500, 11502, 2), Range16), $clone(new Range16.ptr(11507, 11520, 13), Range16), $clone(new Range16.ptr(11521, 11557, 1), Range16), $clone(new Range16.ptr(11559, 11565, 6), Range16), $clone(new Range16.ptr(42561, 42605, 2), Range16), $clone(new Range16.ptr(42625, 42651, 2), Range16), $clone(new Range16.ptr(42787, 42799, 2), Range16), $clone(new Range16.ptr(42803, 42863, 2), Range16), $clone(new Range16.ptr(42874, 42876, 2), Range16), $clone(new Range16.ptr(42879, 42887, 2), Range16), $clone(new Range16.ptr(42892, 42897, 5), Range16), $clone(new Range16.ptr(42899, 42900, 1), Range16), $clone(new Range16.ptr(42903, 42921, 2), Range16), $clone(new Range16.ptr(42933, 42947, 2), Range16), $clone(new Range16.ptr(42952, 42954, 2), Range16), $clone(new Range16.ptr(42961, 42967, 6), Range16), $clone(new Range16.ptr(42969, 42998, 29), Range16), $clone(new Range16.ptr(43859, 43888, 29), Range16), $clone(new Range16.ptr(43889, 43967, 1), Range16), $clone(new Range16.ptr(65345, 65370, 1), Range16)]), new sliceType$1([$clone(new Range32.ptr(66600, 66639, 1), Range32), $clone(new Range32.ptr(66776, 66811, 1), Range32), $clone(new Range32.ptr(66967, 66977, 1), Range32), $clone(new Range32.ptr(66979, 66993, 1), Range32), $clone(new Range32.ptr(66995, 67001, 1), Range32), $clone(new Range32.ptr(67003, 67004, 1), Range32), $clone(new Range32.ptr(68800, 68850, 1), Range32), $clone(new Range32.ptr(71872, 71903, 1), Range32), $clone(new Range32.ptr(93792, 93823, 1), Range32), $clone(new Range32.ptr(125218, 125251, 1), Range32)]), 4); foldM = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(921, 953, 32), Range16), $clone(new Range16.ptr(8126, 8126, 1), Range16)]), sliceType$1.nil, 0); foldMn = new RangeTable.ptr(new sliceType([$clone(new Range16.ptr(921, 953, 32), Range16), $clone(new Range16.ptr(8126, 8126, 1), Range16)]), sliceType$1.nil, 0); $pkg.FoldCategory = $makeMap($String.keyFor, [{ k: "L", v: foldL }, { k: "Ll", v: foldLl }, { k: "Lt", v: foldLt }, { k: "Lu", v: foldLu }, { k: "M", v: foldM }, { k: "Mn", v: foldMn }]); @@ -12743,7 +11199,7 @@ $packages["unicode"] = (function() { return $pkg; })(); $packages["reflect"] = (function() { - var $pkg = {}, $init, errors, js, abi, bytealg, goarch, itoa, math, runtime, strconv, sync, unicode, utf8, Value, flag, ValueError, emptyInterface, MapIter, Type, Kind, tflag, rtype, method, ChanDir, arrayType, chanType, imethod, interfaceType, mapType, ptrType, sliceType, structField, structType, Method, nameOff, typeOff, textOff, StructField, StructTag, fieldScan, uncommonType, funcType, name, nameData, hiter, arrayType$1, sliceType$1, sliceType$2, ptrType$2, sliceType$3, sliceType$4, sliceType$5, sliceType$6, ptrType$3, funcType$1, sliceType$8, arrayType$2, sliceType$9, ptrType$5, sliceType$10, ptrType$8, sliceType$12, ptrType$9, sliceType$13, ptrType$10, ptrType$11, sliceType$14, ptrType$12, ptrType$13, sliceType$16, sliceType$17, ptrType$17, structType$3, sliceType$18, ptrType$18, ptrType$19, sliceType$19, funcType$3, ptrType$22, arrayType$8, ptrType$23, funcType$4, funcType$5, ptrType$25, ptrType$26, zeroVal, nameOffList, typeOffList, bytesType, uint8Type, stringType, kindNames, initialized, nameMap, callHelper, jsObjectPtr, selectHelper, valueMethodName, copyVal, overflowFloat32, convertOp, makeFloat, makeFloat32, makeComplex, makeString, makeBytes, makeRunes, cvtInt, cvtUint, cvtFloatInt, cvtFloatUint, cvtIntFloat, cvtUintFloat, cvtFloat, cvtComplex, cvtIntString, cvtUintString, cvtBytesString, cvtStringBytes, cvtRunesString, cvtStringRunes, cvtT2I, cvtI2I, rtypeOf, PtrTo, PointerTo, implements$1, specialChannelAssignability, directlyAssignable, haveIdenticalType, haveIdenticalUnderlyingType, toType, ifaceIndir, init, New, jsType, reflectType, setKindType, newName, newMethodName, resolveReflectName, newTypeOff, internalStr, isWrapped, copyStruct, makeValue, MakeSlice, TypeOf, ValueOf, FuncOf, SliceOf, Zero, unsafe_New, makeInt, typedmemmove, keyFor, mapaccess, mapassign, mapdelete, mapaccess_faststr, mapassign_faststr, mapdelete_faststr, mapiterinit, mapiterkey, mapiterelem, mapiternext, maplen, cvtDirect, cvtSliceArrayPtr, cvtSliceArray, methodReceiver, valueInterface, ifaceE2I, makeMethodValue, wrapJsObject, unwrapJsObject, getJsTag, chanrecv, chansend; + var $pkg = {}, $init, errors, js, abi, bytealg, goarch, itoa, math, runtime, strconv, sync, unicode, utf8, Value, flag, ValueError, MapIter, Type, Kind, rtype, ChanDir, interfaceType, mapType, ptrType, sliceType, structType, Method, StructField, StructTag, fieldScan, hiter, arrayType$1, structType$1, sliceType$1, sliceType$2, sliceType$3, sliceType$4, ptrType$2, funcType$1, sliceType$6, ptrType$4, arrayType$2, sliceType$7, ptrType$5, sliceType$8, ptrType$6, ptrType$7, ptrType$9, sliceType$10, ptrType$10, sliceType$11, ptrType$11, ptrType$12, sliceType$12, ptrType$13, sliceType$13, ptrType$14, sliceType$15, sliceType$16, funcType$3, sliceType$17, ptrType$18, ptrType$19, ptrType$20, sliceType$18, funcType$4, ptrType$24, arrayType$5, ptrType$25, zeroVal, dummy, bytesType, uint8Type, stringType, kindNames, callHelper, selectHelper, valueMethodName, copyVal, overflowFloat32, convertOp, makeFloat, makeFloat32, makeComplex, makeString, makeBytes, makeRunes, cvtInt, cvtUint, cvtFloatInt, cvtFloatUint, cvtIntFloat, cvtUintFloat, cvtFloat, cvtComplex, cvtIntString, cvtUintString, cvtBytesString, cvtStringBytes, cvtRunesString, cvtStringRunes, cvtT2I, cvtI2I, escapes, nameOffFor, typeOffFor, pkgPathFor, nameFor, elem, PtrTo, PointerTo, ptrTo, implements$1, specialChannelAssignability, directlyAssignable, haveIdenticalType, haveIdenticalUnderlyingType, stringFor, toType, ifaceIndir, init, New, jsType, toAbiType, toRType, rtypeOf, pkgPath, makeValue, MakeSlice, TypeOf, ValueOf, FuncOf, SliceOf, Zero, unsafe_New, makeInt, typedmemmove, keyFor, mapaccess, mapassign, mapdelete, mapaccess_faststr, mapassign_faststr, mapdelete_faststr, mapiterinit, mapiterkey, mapiterelem, mapiternext, maplen, cvtDirect, cvtSliceArrayPtr, cvtSliceArray, methodReceiver, valueInterface, ifaceE2I, makeMethodValue, chanrecv, chansend, noescape, toKindTypeExt; errors = $packages["errors"]; js = $packages["github.com/gopherjs/gopherjs/js"]; abi = $packages["internal/abi"]; @@ -12756,15 +11212,15 @@ $packages["reflect"] = (function() { sync = $packages["sync"]; unicode = $packages["unicode"]; utf8 = $packages["unicode/utf8"]; - Value = $newType(0, $kindStruct, "reflect.Value", true, "reflect", true, function(typ_, ptr_, flag_) { + Value = $newType(0, $kindStruct, "reflect.Value", true, "reflect", true, function(typ__, ptr_, flag_) { this.$val = this; if (arguments.length === 0) { - this.typ = ptrType$2.nil; + this.typ_ = ptrType$4.nil; this.ptr = 0; this.flag = 0; return; } - this.typ = typ_; + this.typ_ = typ__; this.ptr = ptr_; this.flag = flag_; }); @@ -12779,21 +11235,11 @@ $packages["reflect"] = (function() { this.Method = Method_; this.Kind = Kind_; }); - emptyInterface = $newType(0, $kindStruct, "reflect.emptyInterface", true, "reflect", false, function(typ_, word_) { - this.$val = this; - if (arguments.length === 0) { - this.typ = ptrType$2.nil; - this.word = 0; - return; - } - this.typ = typ_; - this.word = word_; - }); MapIter = $newType(0, $kindStruct, "reflect.MapIter", true, "reflect", true, function(m_, hiter_) { this.$val = this; if (arguments.length === 0) { - this.m = new Value.ptr(ptrType$2.nil, 0, 0); - this.hiter = new hiter.ptr($ifaceNil, null, null, 0, null); + this.m = new Value.ptr(ptrType$4.nil, 0, 0); + this.hiter = new hiter.ptr(ptrType$4.nil, null, null, 0, null); return; } this.m = m_; @@ -12801,165 +11247,54 @@ $packages["reflect"] = (function() { }); Type = $newType(8, $kindInterface, "reflect.Type", true, "reflect", true, null); Kind = $newType(4, $kindUint, "reflect.Kind", true, "reflect", true, null); - tflag = $newType(1, $kindUint8, "reflect.tflag", true, "reflect", false, null); - rtype = $newType(0, $kindStruct, "reflect.rtype", true, "reflect", false, function(size_, ptrdata_, hash_, tflag_, align_, fieldAlign_, kind_, equal_, gcdata_, str_, ptrToThis_) { - this.$val = this; - if (arguments.length === 0) { - this.size = 0; - this.ptrdata = 0; - this.hash = 0; - this.tflag = 0; - this.align = 0; - this.fieldAlign = 0; - this.kind = 0; - this.equal = $throwNilPointerError; - this.gcdata = ptrType$13.nil; - this.str = 0; - this.ptrToThis = 0; - return; - } - this.size = size_; - this.ptrdata = ptrdata_; - this.hash = hash_; - this.tflag = tflag_; - this.align = align_; - this.fieldAlign = fieldAlign_; - this.kind = kind_; - this.equal = equal_; - this.gcdata = gcdata_; - this.str = str_; - this.ptrToThis = ptrToThis_; - }); - method = $newType(0, $kindStruct, "reflect.method", true, "reflect", false, function(name_, mtyp_, ifn_, tfn_) { + rtype = $newType(0, $kindStruct, "reflect.rtype", true, "reflect", false, function(t_) { this.$val = this; if (arguments.length === 0) { - this.name = 0; - this.mtyp = 0; - this.ifn = 0; - this.tfn = 0; + this.t = new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, abi.NameOff.nil, abi.TypeOff.nil); return; } - this.name = name_; - this.mtyp = mtyp_; - this.ifn = ifn_; - this.tfn = tfn_; + this.t = t_; }); ChanDir = $newType(4, $kindInt, "reflect.ChanDir", true, "reflect", true, null); - arrayType = $newType(0, $kindStruct, "reflect.arrayType", true, "reflect", false, function(rtype_, elem_, slice_, len_) { + interfaceType = $newType(0, $kindStruct, "reflect.interfaceType", true, "reflect", false, function(InterfaceType_) { this.$val = this; if (arguments.length === 0) { - this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0); - this.elem = ptrType$2.nil; - this.slice = ptrType$2.nil; - this.len = 0; + this.InterfaceType = new abi.InterfaceType.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, abi.NameOff.nil, abi.TypeOff.nil), new abi.Name.ptr("", "", false, false, ""), sliceType$15.nil); return; } - this.rtype = rtype_; - this.elem = elem_; - this.slice = slice_; - this.len = len_; + this.InterfaceType = InterfaceType_; }); - chanType = $newType(0, $kindStruct, "reflect.chanType", true, "reflect", false, function(rtype_, elem_, dir_) { + mapType = $newType(0, $kindStruct, "reflect.mapType", true, "reflect", false, function(MapType_) { this.$val = this; if (arguments.length === 0) { - this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0); - this.elem = ptrType$2.nil; - this.dir = 0; + this.MapType = new abi.MapType.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, abi.NameOff.nil, abi.TypeOff.nil), ptrType$4.nil, ptrType$4.nil, ptrType$4.nil, $throwNilPointerError, 0, 0, 0, 0); return; } - this.rtype = rtype_; - this.elem = elem_; - this.dir = dir_; + this.MapType = MapType_; }); - imethod = $newType(0, $kindStruct, "reflect.imethod", true, "reflect", false, function(name_, typ_) { + ptrType = $newType(0, $kindStruct, "reflect.ptrType", true, "reflect", false, function(PtrType_) { this.$val = this; if (arguments.length === 0) { - this.name = 0; - this.typ = 0; + this.PtrType = new abi.PtrType.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, abi.NameOff.nil, abi.TypeOff.nil), ptrType$4.nil); return; } - this.name = name_; - this.typ = typ_; + this.PtrType = PtrType_; }); - interfaceType = $newType(0, $kindStruct, "reflect.interfaceType", true, "reflect", false, function(rtype_, pkgPath_, methods_) { + sliceType = $newType(0, $kindStruct, "reflect.sliceType", true, "reflect", false, function(SliceType_) { this.$val = this; if (arguments.length === 0) { - this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0); - this.pkgPath = new name.ptr(ptrType$13.nil); - this.methods = sliceType$16.nil; + this.SliceType = new abi.SliceType.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, abi.NameOff.nil, abi.TypeOff.nil), ptrType$4.nil); return; } - this.rtype = rtype_; - this.pkgPath = pkgPath_; - this.methods = methods_; + this.SliceType = SliceType_; }); - mapType = $newType(0, $kindStruct, "reflect.mapType", true, "reflect", false, function(rtype_, key_, elem_, bucket_, hasher_, keysize_, valuesize_, bucketsize_, flags_) { + structType = $newType(0, $kindStruct, "reflect.structType", true, "reflect", false, function(StructType_) { this.$val = this; if (arguments.length === 0) { - this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0); - this.key = ptrType$2.nil; - this.elem = ptrType$2.nil; - this.bucket = ptrType$2.nil; - this.hasher = $throwNilPointerError; - this.keysize = 0; - this.valuesize = 0; - this.bucketsize = 0; - this.flags = 0; + this.StructType = new abi.StructType.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, abi.NameOff.nil, abi.TypeOff.nil), new abi.Name.ptr("", "", false, false, ""), sliceType$16.nil); return; } - this.rtype = rtype_; - this.key = key_; - this.elem = elem_; - this.bucket = bucket_; - this.hasher = hasher_; - this.keysize = keysize_; - this.valuesize = valuesize_; - this.bucketsize = bucketsize_; - this.flags = flags_; - }); - ptrType = $newType(0, $kindStruct, "reflect.ptrType", true, "reflect", false, function(rtype_, elem_) { - this.$val = this; - if (arguments.length === 0) { - this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0); - this.elem = ptrType$2.nil; - return; - } - this.rtype = rtype_; - this.elem = elem_; - }); - sliceType = $newType(0, $kindStruct, "reflect.sliceType", true, "reflect", false, function(rtype_, elem_) { - this.$val = this; - if (arguments.length === 0) { - this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0); - this.elem = ptrType$2.nil; - return; - } - this.rtype = rtype_; - this.elem = elem_; - }); - structField = $newType(0, $kindStruct, "reflect.structField", true, "reflect", false, function(name_, typ_, offset_) { - this.$val = this; - if (arguments.length === 0) { - this.name = new name.ptr(ptrType$13.nil); - this.typ = ptrType$2.nil; - this.offset = 0; - return; - } - this.name = name_; - this.typ = typ_; - this.offset = offset_; - }); - structType = $newType(0, $kindStruct, "reflect.structType", true, "reflect", false, function(rtype_, pkgPath_, fields_) { - this.$val = this; - if (arguments.length === 0) { - this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0); - this.pkgPath = new name.ptr(ptrType$13.nil); - this.fields = sliceType$17.nil; - return; - } - this.rtype = rtype_; - this.pkgPath = pkgPath_; - this.fields = fields_; + this.StructType = StructType_; }); Method = $newType(0, $kindStruct, "reflect.Method", true, "reflect", true, function(Name_, PkgPath_, Type_, Func_, Index_) { this.$val = this; @@ -12967,7 +11302,7 @@ $packages["reflect"] = (function() { this.Name = ""; this.PkgPath = ""; this.Type = $ifaceNil; - this.Func = new Value.ptr(ptrType$2.nil, 0, 0); + this.Func = new Value.ptr(ptrType$4.nil, 0, 0); this.Index = 0; return; } @@ -12977,9 +11312,6 @@ $packages["reflect"] = (function() { this.Func = Func_; this.Index = Index_; }); - nameOff = $newType(4, $kindInt32, "reflect.nameOff", true, "reflect", false, null); - typeOff = $newType(4, $kindInt32, "reflect.typeOff", true, "reflect", false, null); - textOff = $newType(4, $kindInt32, "reflect.textOff", true, "reflect", false, null); StructField = $newType(0, $kindStruct, "reflect.StructField", true, "reflect", true, function(Name_, PkgPath_, Type_, Tag_, Offset_, Index_, Anonymous_) { this.$val = this; if (arguments.length === 0) { @@ -12988,7 +11320,7 @@ $packages["reflect"] = (function() { this.Type = $ifaceNil; this.Tag = ""; this.Offset = 0; - this.Index = sliceType$8.nil; + this.Index = sliceType$6.nil; this.Anonymous = false; return; } @@ -13004,73 +11336,17 @@ $packages["reflect"] = (function() { fieldScan = $newType(0, $kindStruct, "reflect.fieldScan", true, "reflect", false, function(typ_, index_) { this.$val = this; if (arguments.length === 0) { - this.typ = ptrType$12.nil; - this.index = sliceType$8.nil; + this.typ = ptrType$13.nil; + this.index = sliceType$6.nil; return; } this.typ = typ_; this.index = index_; }); - uncommonType = $newType(0, $kindStruct, "reflect.uncommonType", true, "reflect", false, function(pkgPath_, mcount_, xcount_, moff_, _methods_) { - this.$val = this; - if (arguments.length === 0) { - this.pkgPath = 0; - this.mcount = 0; - this.xcount = 0; - this.moff = 0; - this._methods = sliceType$13.nil; - return; - } - this.pkgPath = pkgPath_; - this.mcount = mcount_; - this.xcount = xcount_; - this.moff = moff_; - this._methods = _methods_; - }); - funcType = $newType(0, $kindStruct, "reflect.funcType", true, "reflect", false, function(rtype_, inCount_, outCount_, _in_, _out_) { - this.$val = this; - if (arguments.length === 0) { - this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0); - this.inCount = 0; - this.outCount = 0; - this._in = sliceType$3.nil; - this._out = sliceType$3.nil; - return; - } - this.rtype = rtype_; - this.inCount = inCount_; - this.outCount = outCount_; - this._in = _in_; - this._out = _out_; - }); - name = $newType(0, $kindStruct, "reflect.name", true, "reflect", false, function(bytes_) { - this.$val = this; - if (arguments.length === 0) { - this.bytes = ptrType$13.nil; - return; - } - this.bytes = bytes_; - }); - nameData = $newType(0, $kindStruct, "reflect.nameData", true, "reflect", false, function(name_, tag_, exported_, embedded_, pkgPath_) { - this.$val = this; - if (arguments.length === 0) { - this.name = ""; - this.tag = ""; - this.exported = false; - this.embedded = false; - this.pkgPath = ""; - return; - } - this.name = name_; - this.tag = tag_; - this.exported = exported_; - this.embedded = embedded_; - this.pkgPath = pkgPath_; - }); hiter = $newType(0, $kindStruct, "reflect.hiter", true, "reflect", false, function(t_, m_, keys_, i_, last_) { this.$val = this; if (arguments.length === 0) { - this.t = $ifaceNil; + this.t = ptrType$4.nil; this.m = null; this.keys = null; this.i = 0; @@ -13086,76 +11362,60 @@ $packages["reflect"] = (function() { $pkg.Value = Value; $pkg.flag = flag; $pkg.ValueError = ValueError; - $pkg.emptyInterface = emptyInterface; $pkg.MapIter = MapIter; $pkg.Type = Type; $pkg.Kind = Kind; - $pkg.tflag = tflag; $pkg.rtype = rtype; - $pkg.method = method; $pkg.ChanDir = ChanDir; - $pkg.arrayType = arrayType; - $pkg.chanType = chanType; - $pkg.imethod = imethod; $pkg.interfaceType = interfaceType; $pkg.mapType = mapType; $pkg.ptrType = ptrType; $pkg.sliceType = sliceType; - $pkg.structField = structField; $pkg.structType = structType; $pkg.Method = Method; - $pkg.nameOff = nameOff; - $pkg.typeOff = typeOff; - $pkg.textOff = textOff; $pkg.StructField = StructField; $pkg.StructTag = StructTag; $pkg.fieldScan = fieldScan; - $pkg.uncommonType = uncommonType; - $pkg.funcType = funcType; - $pkg.name = name; - $pkg.nameData = nameData; $pkg.hiter = hiter; $pkg.$finishSetup = function() { arrayType$1 = $arrayType($Uint8, 1024); + structType$1 = $structType("reflect", [{prop: "b", name: "b", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "x", name: "x", embedded: false, exported: false, typ: $emptyInterface, tag: ""}]); sliceType$1 = $sliceType(Type); - sliceType$2 = $sliceType(name); - ptrType$2 = $ptrType(rtype); - sliceType$3 = $sliceType(ptrType$2); - sliceType$4 = $sliceType($Uint8); - sliceType$5 = $sliceType($String); - sliceType$6 = $sliceType($emptyInterface); - ptrType$3 = $ptrType(js.Object); - funcType$1 = $funcType([sliceType$6], [ptrType$3], true); - sliceType$8 = $sliceType($Int); + sliceType$2 = $sliceType($Uint8); + sliceType$3 = $sliceType($String); + sliceType$4 = $sliceType($emptyInterface); + ptrType$2 = $ptrType(js.Object); + funcType$1 = $funcType([sliceType$4], [ptrType$2], true); + sliceType$6 = $sliceType($Int); + ptrType$4 = $ptrType(abi.Type); arrayType$2 = $arrayType($Uintptr, 5); - sliceType$9 = $sliceType($Uintptr); + sliceType$7 = $sliceType($Uintptr); ptrType$5 = $ptrType(runtime.Func); - sliceType$10 = $sliceType(Value); - ptrType$8 = $ptrType($UnsafePointer); - sliceType$12 = $sliceType($Int32); - ptrType$9 = $ptrType(uncommonType); - sliceType$13 = $sliceType(method); - ptrType$10 = $ptrType(interfaceType); - ptrType$11 = $ptrType(imethod); - sliceType$14 = $sliceType(fieldScan); - ptrType$12 = $ptrType(structType); - ptrType$13 = $ptrType($Uint8); - sliceType$16 = $sliceType(imethod); - sliceType$17 = $sliceType(structField); - ptrType$17 = $ptrType(nameData); - structType$3 = $structType("reflect", [{prop: "str", name: "str", embedded: false, exported: false, typ: $String, tag: ""}]); - sliceType$18 = $sliceType(ptrType$3); + sliceType$8 = $sliceType(Value); + ptrType$6 = $ptrType($UnsafePointer); + ptrType$7 = $ptrType(abi.Imethod); + ptrType$9 = $ptrType(rtype); + sliceType$10 = $sliceType($Int32); + ptrType$10 = $ptrType(abi.UncommonType); + sliceType$11 = $sliceType(abi.Method); + ptrType$11 = $ptrType(interfaceType); + ptrType$12 = $ptrType(abi.StructField); + sliceType$12 = $sliceType(fieldScan); + ptrType$13 = $ptrType(structType); + sliceType$13 = $sliceType(ptrType$4); + ptrType$14 = $ptrType($Uint8); + sliceType$15 = $sliceType(abi.Imethod); + sliceType$16 = $sliceType(abi.StructField); + funcType$3 = $funcType([$emptyInterface], [ptrType$2], false); + sliceType$17 = $sliceType(ptrType$2); ptrType$18 = $ptrType($String); - ptrType$19 = $ptrType(funcType); - sliceType$19 = $sliceType(sliceType$18); - funcType$3 = $funcType([$String], [$Bool], false); - ptrType$22 = $ptrType(MapIter); - arrayType$8 = $arrayType($Uintptr, 2); - ptrType$23 = $ptrType(ValueError); - funcType$4 = $funcType([$UnsafePointer, $UnsafePointer], [$Bool], false); - funcType$5 = $funcType([$UnsafePointer, $Uintptr], [$Uintptr], false); - ptrType$25 = $ptrType(structField); - ptrType$26 = $ptrType(hiter); + ptrType$19 = $ptrType(hiter); + ptrType$20 = $ptrType(abi.FuncType); + sliceType$18 = $sliceType(sliceType$17); + funcType$4 = $funcType([$String], [$Bool], false); + ptrType$24 = $ptrType(MapIter); + arrayType$5 = $arrayType($Uintptr, 2); + ptrType$25 = $ptrType(ValueError); flag.prototype.kind = function kind() { var f; f = this.$val; @@ -13171,10 +11431,16 @@ $packages["reflect"] = (function() { return 0; }; $ptrType(flag).prototype.ro = function(...$args) { return new flag(this.$get()).ro(...$args); }; + $ptrType(Value).prototype.typ = function typ() { + var v; + v = this; + return ($pointerOfStructConversion(noescape((v.typ_)), ptrType$4)); + }; + Value.prototype.typ = function(...$args) { return this.$val.typ(...$args); }; $ptrType(Value).prototype.pointer = function pointer() { var v; v = this; - if (!((v.typ.size === 4)) || !v.typ.pointers()) { + if (!(($clone(v, Value).typ().Size() === 4)) || !$clone(v, Value).typ().Pointers()) { $panic(new $String("can't call pointer on a non-pointer Value")); } if (!((((v.flag & 128) >>> 0) === 0))) { @@ -13192,10 +11458,10 @@ $packages["reflect"] = (function() { return "reflect: call of " + e.Method + " on " + new Kind(e.Kind).String() + " Value"; }; valueMethodName = function valueMethodName$1() { - var _tuple, frame, frames, methodName, more, n, name$1, pc; + var _tuple, frame, frames, methodName, more, n, name, pc; pc = arrayType$2.zero(); - n = runtime.Callers(1, new sliceType$9(pc)); - frames = runtime.CallersFrames($subslice(new sliceType$9(pc), 0, n)); + n = runtime.Callers(1, new sliceType$7(pc)); + frames = runtime.CallersFrames($subslice(new sliceType$7(pc), 0, n)); frame = new runtime.Frame.ptr(0, ptrType$5.nil, "", "", 0, 0); more = true; while (true) { @@ -13203,11 +11469,11 @@ $packages["reflect"] = (function() { _tuple = frames.Next(); runtime.Frame.copy(frame, _tuple[0]); more = _tuple[1]; - name$1 = frame.Function; - if (name$1.length > 14 && $substring(name$1, 0, 14) === "reflect.Value.") { - methodName = $substring(name$1, 14); + name = frame.Function; + if (name.length > 14 && $substring(name, 0, 14) === "reflect.Value.") { + methodName = $substring(name, 14); if (methodName.length > 0 && 65 <= methodName.charCodeAt(0) && methodName.charCodeAt(0) <= 90) { - return name$1; + return name; } } } @@ -13269,7 +11535,7 @@ $packages["reflect"] = (function() { $panic(new $String("reflect.Value.Addr of unaddressable value")); } fl = (v.flag & 96) >>> 0; - return new Value.ptr(v.typ.ptrTo(), v.ptr, (fl | 22) >>> 0); + return new Value.ptr(ptrTo($clone(v, Value).typ()), v.ptr, (fl | 22) >>> 0); }; Value.prototype.Addr = function(...$args) { return this.$val.Addr(...$args); }; $ptrType(Value).prototype.Bool = function Bool() { @@ -13288,31 +11554,22 @@ $packages["reflect"] = (function() { }; Value.prototype.panicNotBool = function(...$args) { return this.$val.panicNotBool(...$args); }; $ptrType(Value).prototype.Bytes = function Bytes() { - var {$24r, _r, v, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var v; v = this; - if (v.typ === bytesType) { - $s = -1; return (v.ptr).$get(); + if (v.typ_ === bytesType) { + return (v.ptr).$get(); } - _r = $clone(v, Value).bytesSlow(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Bytes, $c: true, $r, $24r, _r, v, $s};return $f; + return $clone(v, Value).bytesSlow(); }; Value.prototype.Bytes = function(...$args) { return this.$val.Bytes(...$args); }; $ptrType(Value).prototype.runes = function runes() { - var {_r, v, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var v; v = this; new flag(v.flag).mustBe(23); - _r = v.typ.Elem().Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - /* */ if (!((_r === 5))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!((_r === 5))) { */ case 1: + if (!(($clone(v, Value).typ().Elem().Kind() === 5))) { $panic(new $String("reflect.Value.Bytes of non-rune slice")); - /* } */ case 2: - $s = -1; return (v.ptr).$get(); - /* */ } return; } var $f = {$blk: runes, $c: true, $r, _r, v, $s};return $f; + } + return (v.ptr).$get(); }; Value.prototype.runes = function(...$args) { return this.$val.runes(...$args); }; $ptrType(Value).prototype.CanAddr = function CanAddr() { @@ -13376,133 +11633,88 @@ $packages["reflect"] = (function() { }; Value.prototype.Complex = function(...$args) { return this.$val.Complex(...$args); }; $ptrType(Value).prototype.FieldByIndex = function FieldByIndex(index) { - var {$24r, _i, _r, _r$1, _r$2, _r$3, _ref, _v, i, index, v, x, $s, $r, $c} = $restore(this, {index}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var _i, _ref, i, index, v, x; v = this; - /* */ if (index.$length === 1) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (index.$length === 1) { */ case 1: - _r = $clone(v, Value).Field((0 >= index.$length ? ($throwRuntimeError("index out of range"), undefined) : index.$array[index.$offset + 0])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 4; case 4: return $24r; - /* } */ case 2: + if (index.$length === 1) { + return $clone(v, Value).Field((0 >= index.$length ? ($throwRuntimeError("index out of range"), undefined) : index.$array[index.$offset + 0])); + } new flag(v.flag).mustBe(25); _ref = index; _i = 0; - /* while (true) { */ case 5: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 6; continue; } + while (true) { + if (!(_i < _ref.$length)) { break; } i = _i; x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - /* */ if (i > 0) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (i > 0) { */ case 7: - if (!($clone(v, Value).Kind() === 22)) { _v = false; $s = 11; continue s; } - _r$1 = v.typ.Elem().Kind(); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = _r$1 === 25; case 11: - /* */ if (_v) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (_v) { */ case 9: + if (i > 0) { + if (($clone(v, Value).Kind() === 22) && ($clone(v, Value).typ().Elem().Kind() === 25)) { if ($clone(v, Value).IsNil()) { $panic(new $String("reflect: indirection through nil pointer to embedded struct")); } - _r$2 = $clone(v, Value).Elem(); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - v = _r$2; - /* } */ case 10: - /* } */ case 8: - _r$3 = $clone(v, Value).Field(x); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - v = _r$3; + v = $clone(v, Value).Elem(); + } + } + v = $clone(v, Value).Field(x); _i++; - $s = 5; continue; - case 6: - $s = -1; return v; - /* */ } return; } var $f = {$blk: FieldByIndex, $c: true, $r, $24r, _i, _r, _r$1, _r$2, _r$3, _ref, _v, i, index, v, x, $s};return $f; + } + return v; }; Value.prototype.FieldByIndex = function(...$args) { return this.$val.FieldByIndex(...$args); }; $ptrType(Value).prototype.FieldByIndexErr = function FieldByIndexErr(index) { - var {$24r, $24r$1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _v, i, index, v, x, $s, $r, $c} = $restore(this, {index}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var _i, _ref, i, index, v, x; v = this; - /* */ if (index.$length === 1) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (index.$length === 1) { */ case 1: - _r = $clone(v, Value).Field((0 >= index.$length ? ($throwRuntimeError("index out of range"), undefined) : index.$array[index.$offset + 0])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = [_r, $ifaceNil]; - $s = 4; case 4: return $24r; - /* } */ case 2: + if (index.$length === 1) { + return [$clone(v, Value).Field((0 >= index.$length ? ($throwRuntimeError("index out of range"), undefined) : index.$array[index.$offset + 0])), $ifaceNil]; + } new flag(v.flag).mustBe(25); _ref = index; _i = 0; - /* while (true) { */ case 5: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 6; continue; } + while (true) { + if (!(_i < _ref.$length)) { break; } i = _i; x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - /* */ if (i > 0) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (i > 0) { */ case 7: - if (!($clone(v, Value).Kind() === 22)) { _v = false; $s = 11; continue s; } - _r$1 = v.typ.Elem().Kind(); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = _r$1 === 25; case 11: - /* */ if (_v) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (_v) { */ case 9: - /* */ if ($clone(v, Value).IsNil()) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if ($clone(v, Value).IsNil()) { */ case 13: - _r$2 = v.typ.Elem().Name(); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = errors.New("reflect: indirection through nil pointer to embedded struct field " + _r$2); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r$1 = [new Value.ptr(ptrType$2.nil, 0, 0), _r$3]; - $s = 17; case 17: return $24r$1; - /* } */ case 14: - _r$4 = $clone(v, Value).Elem(); /* */ $s = 18; case 18: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - v = _r$4; - /* } */ case 10: - /* } */ case 8: - _r$5 = $clone(v, Value).Field(x); /* */ $s = 19; case 19: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - v = _r$5; + if (i > 0) { + if (($clone(v, Value).Kind() === 22) && ($clone(v, Value).typ().Elem().Kind() === 25)) { + if ($clone(v, Value).IsNil()) { + return [new Value.ptr(ptrType$4.nil, 0, 0), errors.New("reflect: indirection through nil pointer to embedded struct field " + nameFor($clone(v, Value).typ().Elem()))]; + } + v = $clone(v, Value).Elem(); + } + } + v = $clone(v, Value).Field(x); _i++; - $s = 5; continue; - case 6: - $s = -1; return [v, $ifaceNil]; - /* */ } return; } var $f = {$blk: FieldByIndexErr, $c: true, $r, $24r, $24r$1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _v, i, index, v, x, $s};return $f; + } + return [v, $ifaceNil]; }; Value.prototype.FieldByIndexErr = function(...$args) { return this.$val.FieldByIndexErr(...$args); }; - $ptrType(Value).prototype.FieldByName = function FieldByName(name$1) { - var {$24r, _r, _r$1, _tuple, f, name$1, ok, v, $s, $r, $c} = $restore(this, {name$1}); + $ptrType(Value).prototype.FieldByName = function FieldByName(name) { + var {_r, _tuple, f, name, ok, v, $s, $r, $c} = $restore(this, {name}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: v = this; new flag(v.flag).mustBe(25); - _r = v.typ.FieldByName(name$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = toRType($clone(v, Value).typ()).FieldByName(name); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; f = $clone(_tuple[0], StructField); ok = _tuple[1]; - /* */ if (ok) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (ok) { */ case 2: - _r$1 = $clone(v, Value).FieldByIndex(f.Index); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 5; case 5: return $24r; - /* } */ case 3: - $s = -1; return new Value.ptr(ptrType$2.nil, 0, 0); - /* */ } return; } var $f = {$blk: FieldByName, $c: true, $r, $24r, _r, _r$1, _tuple, f, name$1, ok, v, $s};return $f; + if (ok) { + $s = -1; return $clone(v, Value).FieldByIndex(f.Index); + } + $s = -1; return new Value.ptr(ptrType$4.nil, 0, 0); + /* */ } return; } var $f = {$blk: FieldByName, $c: true, $r, _r, _tuple, f, name, ok, v, $s};return $f; }; Value.prototype.FieldByName = function(...$args) { return this.$val.FieldByName(...$args); }; $ptrType(Value).prototype.FieldByNameFunc = function FieldByNameFunc(match) { - var {$24r, _r, _r$1, _tuple, f, match, ok, v, $s, $r, $c} = $restore(this, {match}); + var {_r, _tuple, f, match, ok, v, $s, $r, $c} = $restore(this, {match}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: v = this; - _r = v.typ.FieldByNameFunc(match); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = toRType($clone(v, Value).typ()).FieldByNameFunc(match); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; f = $clone(_tuple[0], StructField); ok = _tuple[1]; - /* */ if (ok) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (ok) { */ case 2: - _r$1 = $clone(v, Value).FieldByIndex(f.Index); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 5; case 5: return $24r; - /* } */ case 3: - $s = -1; return new Value.ptr(ptrType$2.nil, 0, 0); - /* */ } return; } var $f = {$blk: FieldByNameFunc, $c: true, $r, $24r, _r, _r$1, _tuple, f, match, ok, v, $s};return $f; + if (ok) { + $s = -1; return $clone(v, Value).FieldByIndex(f.Index); + } + $s = -1; return new Value.ptr(ptrType$4.nil, 0, 0); + /* */ } return; } var $f = {$blk: FieldByNameFunc, $c: true, $r, _r, _tuple, f, match, ok, v, $s};return $f; }; Value.prototype.FieldByNameFunc = function(...$args) { return this.$val.FieldByNameFunc(...$args); }; $ptrType(Value).prototype.CanFloat = function CanFloat() { @@ -13588,7 +11800,7 @@ $packages["reflect"] = (function() { }; Value.prototype.IsValid = function(...$args) { return this.$val.IsValid(...$args); }; $ptrType(Value).prototype.IsZero = function IsZero() { - var {$24r, $24r$1, $24r$2, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, c, i, i$1, n, n$1, v, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {}); + var {$24r, $24r$1, _1, _r, _r$1, _r$2, _r$3, c, i, i$1, n, n$1, v, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: v = this; _1 = new flag(v.flag).kind(); @@ -13614,70 +11826,65 @@ $packages["reflect"] = (function() { c = $clone(v, Value).Complex(); $s = -1; return (x$3 = math.Float64bits(c.$real), (x$3.$high === 0 && x$3.$low === 0)) && (x$4 = math.Float64bits(c.$imag), (x$4.$high === 0 && x$4.$low === 0)); /* } else if (_1 === (17)) { */ case 7: - /* */ if (!(v.typ.equal === $throwNilPointerError) && v.typ.size <= 1024) { $s = 13; continue; } + /* */ if (!($clone(v, Value).typ().Equal === $throwNilPointerError) && $clone(v, Value).typ().Size() <= 1024) { $s = 13; continue; } /* */ $s = 14; continue; - /* if (!(v.typ.equal === $throwNilPointerError) && v.typ.size <= 1024) { */ case 13: + /* if (!($clone(v, Value).typ().Equal === $throwNilPointerError) && $clone(v, Value).typ().Size() <= 1024) { */ case 13: if (((v.flag & 128) >>> 0) === 0) { $s = -1; return v.ptr === 0; } - _r = v.typ.equal(v.ptr, ($sliceToNativeArray(new sliceType$4(zeroVal)))); /* */ $s = 15; case 15: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = $clone(v, Value).typ().Equal(noescape(v.ptr), ($sliceToNativeArray(new sliceType$2(zeroVal)))); /* */ $s = 15; case 15: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $24r = _r; $s = 16; case 16: return $24r; /* } */ case 14: - _r$1 = $clone(v, Value).Len(); /* */ $s = 17; case 17: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - n = _r$1; + n = $clone(v, Value).Len(); i = 0; - /* while (true) { */ case 18: - /* if (!(i < n)) { break; } */ if(!(i < n)) { $s = 19; continue; } - _r$2 = $clone(v, Value).Index(i); /* */ $s = 22; case 22: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = $clone(_r$2, Value).IsZero(); /* */ $s = 23; case 23: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (!_r$3) { $s = 20; continue; } - /* */ $s = 21; continue; - /* if (!_r$3) { */ case 20: + /* while (true) { */ case 17: + /* if (!(i < n)) { break; } */ if(!(i < n)) { $s = 18; continue; } + _r$1 = $clone($clone(v, Value).Index(i), Value).IsZero(); /* */ $s = 21; case 21: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (!_r$1) { */ case 19: $s = -1; return false; - /* } */ case 21: + /* } */ case 20: i = i + (1) >> 0; - $s = 18; continue; - case 19: + $s = 17; continue; + case 18: $s = -1; return true; /* } else if ((_1 === (18)) || (_1 === (19)) || (_1 === (20)) || (_1 === (21)) || (_1 === (22)) || (_1 === (23)) || (_1 === (26))) { */ case 8: $s = -1; return $clone(v, Value).IsNil(); /* } else if (_1 === (24)) { */ case 9: - _r$4 = $clone(v, Value).Len(); /* */ $s = 24; case 24: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $24r$1 = _r$4 === 0; - $s = 25; case 25: return $24r$1; + $s = -1; return $clone(v, Value).Len() === 0; /* } else if (_1 === (25)) { */ case 10: - /* */ if (!(v.typ.equal === $throwNilPointerError) && v.typ.size <= 1024) { $s = 26; continue; } - /* */ $s = 27; continue; - /* if (!(v.typ.equal === $throwNilPointerError) && v.typ.size <= 1024) { */ case 26: + /* */ if (!($clone(v, Value).typ().Equal === $throwNilPointerError) && $clone(v, Value).typ().Size() <= 1024) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (!($clone(v, Value).typ().Equal === $throwNilPointerError) && $clone(v, Value).typ().Size() <= 1024) { */ case 22: if (((v.flag & 128) >>> 0) === 0) { $s = -1; return v.ptr === 0; } - _r$5 = v.typ.equal(v.ptr, ($sliceToNativeArray(new sliceType$4(zeroVal)))); /* */ $s = 28; case 28: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - $24r$2 = _r$5; - $s = 29; case 29: return $24r$2; - /* } */ case 27: + _r$2 = $clone(v, Value).typ().Equal(noescape(v.ptr), ($sliceToNativeArray(new sliceType$2(zeroVal)))); /* */ $s = 24; case 24: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r$1 = _r$2; + $s = 25; case 25: return $24r$1; + /* } */ case 23: n$1 = $clone(v, Value).NumField(); i$1 = 0; - /* while (true) { */ case 30: - /* if (!(i$1 < n$1)) { break; } */ if(!(i$1 < n$1)) { $s = 31; continue; } - _r$6 = $clone(v, Value).Field(i$1); /* */ $s = 34; case 34: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _r$7 = $clone(_r$6, Value).IsZero(); /* */ $s = 35; case 35: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - /* */ if (!_r$7) { $s = 32; continue; } - /* */ $s = 33; continue; - /* if (!_r$7) { */ case 32: + /* while (true) { */ case 26: + /* if (!(i$1 < n$1)) { break; } */ if(!(i$1 < n$1)) { $s = 27; continue; } + _r$3 = $clone($clone(v, Value).Field(i$1), Value).IsZero(); /* */ $s = 30; case 30: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!_r$3) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (!_r$3) { */ case 28: $s = -1; return false; - /* } */ case 33: + /* } */ case 29: i$1 = i$1 + (1) >> 0; - $s = 30; continue; - case 31: + $s = 26; continue; + case 27: $s = -1; return true; /* } else { */ case 11: $panic(new ValueError.ptr("reflect.Value.IsZero", $clone(v, Value).Kind())); /* } */ case 12: case 1: $s = -1; return false; - /* */ } return; } var $f = {$blk: IsZero, $c: true, $r, $24r, $24r$1, $24r$2, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, c, i, i$1, n, n$1, v, x, x$1, x$2, x$3, x$4, $s};return $f; + /* */ } return; } var $f = {$blk: IsZero, $c: true, $r, $24r, $24r$1, _1, _r, _r$1, _r$2, _r$3, c, i, i$1, n, n$1, v, x, x$1, x$2, x$3, x$4, $s};return $f; }; Value.prototype.IsZero = function(...$args) { return this.$val.IsZero(...$args); }; $ptrType(Value).prototype.Kind = function Kind$1() { @@ -13687,105 +11894,96 @@ $packages["reflect"] = (function() { }; Value.prototype.Kind = function(...$args) { return this.$val.Kind(...$args); }; $ptrType(Value).prototype.MapIndex = function MapIndex(key) { - var {_r, e, fl, k, k$1, key, tt, typ, v, $s, $r, $c} = $restore(this, {key}); + var {_r, e, fl, k, k$1, key, tt, typ$1, v, $s, $r, $c} = $restore(this, {key}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: v = this; new flag(v.flag).mustBe(21); - tt = (v.typ.kindType); + tt = (toKindTypeExt($clone(v, Value).typ())); e = 0; - /* */ if ((tt.key === stringType || (new flag(key.flag).kind() === 24)) && tt.key === key.typ && tt.elem.size <= 128) { $s = 1; continue; } + /* */ if ((tt.MapType.Key === stringType || (new flag(key.flag).kind() === 24)) && tt.MapType.Key === $clone(key, Value).typ() && tt.MapType.Elem.Size() <= 128) { $s = 1; continue; } /* */ $s = 2; continue; - /* if ((tt.key === stringType || (new flag(key.flag).kind() === 24)) && tt.key === key.typ && tt.elem.size <= 128) { */ case 1: + /* if ((tt.MapType.Key === stringType || (new flag(key.flag).kind() === 24)) && tt.MapType.Key === $clone(key, Value).typ() && tt.MapType.Elem.Size() <= 128) { */ case 1: k = (key.ptr).$get(); - e = mapaccess_faststr(v.typ, $clone(v, Value).pointer(), k); + e = mapaccess_faststr($clone(v, Value).typ(), $clone(v, Value).pointer(), k); $s = 3; continue; /* } else { */ case 2: - _r = $clone(key, Value).assignTo("reflect.Value.MapIndex", tt.key, 0); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = $clone(key, Value).assignTo("reflect.Value.MapIndex", tt.MapType.Key, 0); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } key = _r; k$1 = 0; if (!((((key.flag & 128) >>> 0) === 0))) { k$1 = key.ptr; } else { - k$1 = ((key.$ptr_ptr || (key.$ptr_ptr = new ptrType$8(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, key)))); + k$1 = ((key.$ptr_ptr || (key.$ptr_ptr = new ptrType$6(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, key)))); } - e = mapaccess(v.typ, $clone(v, Value).pointer(), k$1); + e = mapaccess($clone(v, Value).typ(), $clone(v, Value).pointer(), k$1); /* } */ case 3: if (e === 0) { - $s = -1; return new Value.ptr(ptrType$2.nil, 0, 0); + $s = -1; return new Value.ptr(ptrType$4.nil, 0, 0); } - typ = tt.elem; + typ$1 = tt.MapType.Elem; fl = new flag((((v.flag | key.flag) >>> 0))).ro(); - fl = (fl | (((typ.Kind() >>> 0)))) >>> 0; - $s = -1; return copyVal(typ, fl, e); - /* */ } return; } var $f = {$blk: MapIndex, $c: true, $r, _r, e, fl, k, k$1, key, tt, typ, v, $s};return $f; + fl = (fl | (((typ$1.Kind() >>> 0)))) >>> 0; + $s = -1; return copyVal(typ$1, fl, e); + /* */ } return; } var $f = {$blk: MapIndex, $c: true, $r, _r, e, fl, k, k$1, key, tt, typ$1, v, $s};return $f; }; Value.prototype.MapIndex = function(...$args) { return this.$val.MapIndex(...$args); }; $ptrType(Value).prototype.MapKeys = function MapKeys() { - var {_r, a, fl, i, it, key, keyType, m, mlen, tt, v, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - it = [it]; + var a, fl, i, it, key, keyType, m, mlen, tt, v; v = this; new flag(v.flag).mustBe(21); - tt = (v.typ.kindType); - keyType = tt.key; + tt = (toKindTypeExt($clone(v, Value).typ())); + keyType = tt.MapType.Key; fl = (new flag(v.flag).ro() | ((keyType.Kind() >>> 0))) >>> 0; m = $clone(v, Value).pointer(); mlen = 0; if (!(m === 0)) { mlen = maplen(m); } - it[0] = new hiter.ptr($ifaceNil, null, null, 0, null); - mapiterinit(v.typ, m, it[0]); - a = $makeSlice(sliceType$10, mlen); + it = new hiter.ptr(ptrType$4.nil, null, null, 0, null); + mapiterinit($clone(v, Value).typ(), m, it); + a = $makeSlice(sliceType$8, mlen); i = 0; i = 0; - /* while (true) { */ case 1: - /* if (!(i < a.$length)) { break; } */ if(!(i < a.$length)) { $s = 2; continue; } - _r = mapiterkey(it[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - key = _r; + while (true) { + if (!(i < a.$length)) { break; } + key = mapiterkey(it); if (key === 0) { - /* break; */ $s = 2; continue; + break; } ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i] = copyVal(keyType, fl, key)); - mapiternext(it[0]); + mapiternext(it); i = i + (1) >> 0; - $s = 1; continue; - case 2: - $s = -1; return $subslice(a, 0, i); - /* */ } return; } var $f = {$blk: MapKeys, $c: true, $r, _r, a, fl, i, it, key, keyType, m, mlen, tt, v, $s};return $f; + } + return $subslice(a, 0, i); }; Value.prototype.MapKeys = function(...$args) { return this.$val.MapKeys(...$args); }; - $ptrType(hiter).prototype.initialized = function initialized$1() { + $ptrType(hiter).prototype.initialized = function initialized() { var h; h = this; - return !($interfaceIsEqual(h.t, $ifaceNil)); + return !(h.t === ptrType$4.nil); }; $ptrType(MapIter).prototype.Key = function Key() { - var {_r, iter, iterkey, ktype, t, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var iter, iterkey, ktype, t; iter = this; if (!iter.hiter.initialized()) { $panic(new $String("MapIter.Key called before Next")); } - _r = mapiterkey(iter.hiter); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - iterkey = _r; + iterkey = mapiterkey(iter.hiter); if (iterkey === 0) { $panic(new $String("MapIter.Key called on exhausted iterator")); } - t = (iter.m.typ.kindType); - ktype = t.key; - $s = -1; return copyVal(ktype, (new flag(iter.m.flag).ro() | ((ktype.Kind() >>> 0))) >>> 0, iterkey); - /* */ } return; } var $f = {$blk: Key, $c: true, $r, _r, iter, iterkey, ktype, t, $s};return $f; + t = (toKindTypeExt($clone(iter.m, Value).typ())); + ktype = t.MapType.Key; + return copyVal(ktype, (new flag(iter.m.flag).ro() | ((ktype.Kind() >>> 0))) >>> 0, iterkey); }; $ptrType(Value).prototype.SetIterKey = function SetIterKey(iter) { - var {_r, _r$1, iter, iterkey, key, ktype, t, target, v, $s, $r, $c} = $restore(this, {iter}); + var {_r, iter, iterkey, key, ktype, t, target, v, $s, $r, $c} = $restore(this, {iter}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: v = this; if (!iter.hiter.initialized()) { $panic(new $String("reflect: Value.SetIterKey called before Next")); } - _r = mapiterkey(iter.hiter); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - iterkey = _r; + iterkey = mapiterkey(iter.hiter); if (iterkey === 0) { $panic(new $String("reflect: Value.SetIterKey called on exhausted iterator")); } @@ -13794,43 +11992,39 @@ $packages["reflect"] = (function() { if (new flag(v.flag).kind() === 20) { target = v.ptr; } - t = (iter.m.typ.kindType); - ktype = t.key; + t = (toKindTypeExt($clone(iter.m, Value).typ())); + ktype = t.MapType.Key; new flag(iter.m.flag).mustBeExported(); key = new Value.ptr(ktype, iterkey, (((iter.m.flag | ((ktype.Kind() >>> 0))) >>> 0) | 128) >>> 0); - _r$1 = $clone(key, Value).assignTo("reflect.MapIter.SetKey", v.typ, target); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - key = _r$1; - typedmemmove(v.typ, v.ptr, key.ptr); + _r = $clone(key, Value).assignTo("reflect.MapIter.SetKey", $clone(v, Value).typ(), target); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + key = _r; + typedmemmove($clone(v, Value).typ(), v.ptr, key.ptr); $s = -1; return; - /* */ } return; } var $f = {$blk: SetIterKey, $c: true, $r, _r, _r$1, iter, iterkey, key, ktype, t, target, v, $s};return $f; + /* */ } return; } var $f = {$blk: SetIterKey, $c: true, $r, _r, iter, iterkey, key, ktype, t, target, v, $s};return $f; }; Value.prototype.SetIterKey = function(...$args) { return this.$val.SetIterKey(...$args); }; $ptrType(MapIter).prototype.Value = function Value$1() { - var {_r, iter, iterelem, t, vtype, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var iter, iterelem, t, vtype; iter = this; if (!iter.hiter.initialized()) { $panic(new $String("MapIter.Value called before Next")); } - _r = mapiterelem(iter.hiter); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - iterelem = _r; + iterelem = mapiterelem(iter.hiter); if (iterelem === 0) { $panic(new $String("MapIter.Value called on exhausted iterator")); } - t = (iter.m.typ.kindType); - vtype = t.elem; - $s = -1; return copyVal(vtype, (new flag(iter.m.flag).ro() | ((vtype.Kind() >>> 0))) >>> 0, iterelem); - /* */ } return; } var $f = {$blk: Value$1, $c: true, $r, _r, iter, iterelem, t, vtype, $s};return $f; + t = (toKindTypeExt($clone(iter.m, Value).typ())); + vtype = t.MapType.Elem; + return copyVal(vtype, (new flag(iter.m.flag).ro() | ((vtype.Kind() >>> 0))) >>> 0, iterelem); }; $ptrType(Value).prototype.SetIterValue = function SetIterValue(iter) { - var {_r, _r$1, elem, iter, iterelem, t, target, v, vtype, $s, $r, $c} = $restore(this, {iter}); + var {_r, elem$1, iter, iterelem, t, target, v, vtype, $s, $r, $c} = $restore(this, {iter}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: v = this; if (!iter.hiter.initialized()) { $panic(new $String("reflect: Value.SetIterValue called before Next")); } - _r = mapiterelem(iter.hiter); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - iterelem = _r; + iterelem = mapiterelem(iter.hiter); if (iterelem === 0) { $panic(new $String("reflect: Value.SetIterValue called on exhausted iterator")); } @@ -13839,42 +12033,32 @@ $packages["reflect"] = (function() { if (new flag(v.flag).kind() === 20) { target = v.ptr; } - t = (iter.m.typ.kindType); - vtype = t.elem; + t = (toKindTypeExt($clone(iter.m, Value).typ())); + vtype = t.MapType.Elem; new flag(iter.m.flag).mustBeExported(); - elem = new Value.ptr(vtype, iterelem, (((iter.m.flag | ((vtype.Kind() >>> 0))) >>> 0) | 128) >>> 0); - _r$1 = $clone(elem, Value).assignTo("reflect.MapIter.SetValue", v.typ, target); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - elem = _r$1; - typedmemmove(v.typ, v.ptr, elem.ptr); + elem$1 = new Value.ptr(vtype, iterelem, (((iter.m.flag | ((vtype.Kind() >>> 0))) >>> 0) | 128) >>> 0); + _r = $clone(elem$1, Value).assignTo("reflect.MapIter.SetValue", $clone(v, Value).typ(), target); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + elem$1 = _r; + typedmemmove($clone(v, Value).typ(), v.ptr, elem$1.ptr); $s = -1; return; - /* */ } return; } var $f = {$blk: SetIterValue, $c: true, $r, _r, _r$1, elem, iter, iterelem, t, target, v, vtype, $s};return $f; + /* */ } return; } var $f = {$blk: SetIterValue, $c: true, $r, _r, elem$1, iter, iterelem, t, target, v, vtype, $s};return $f; }; Value.prototype.SetIterValue = function(...$args) { return this.$val.SetIterValue(...$args); }; $ptrType(MapIter).prototype.Next = function Next() { - var {$24r, _r, _r$1, iter, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var iter; iter = this; if (!$clone(iter.m, Value).IsValid()) { $panic(new $String("MapIter.Next called on an iterator that does not have an associated map Value")); } - /* */ if (!iter.hiter.initialized()) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!iter.hiter.initialized()) { */ case 1: - mapiterinit(iter.m.typ, $clone(iter.m, Value).pointer(), iter.hiter); - $s = 3; continue; - /* } else { */ case 2: - _r = mapiterkey(iter.hiter); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - /* */ if (_r === 0) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_r === 0) { */ case 4: + if (!iter.hiter.initialized()) { + mapiterinit($clone(iter.m, Value).typ(), $clone(iter.m, Value).pointer(), iter.hiter); + } else { + if (mapiterkey(iter.hiter) === 0) { $panic(new $String("MapIter.Next called on exhausted iterator")); - /* } */ case 5: + } mapiternext(iter.hiter); - /* } */ case 3: - _r$1 = mapiterkey(iter.hiter); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = !(_r$1 === 0); - $s = 8; case 8: return $24r; - /* */ } return; } var $f = {$blk: Next, $c: true, $r, $24r, _r, _r$1, iter, $s};return $f; + } + return !(mapiterkey(iter.hiter) === 0); }; $ptrType(MapIter).prototype.Reset = function Reset(v) { var iter, v; @@ -13883,7 +12067,7 @@ $packages["reflect"] = (function() { new flag(v.flag).mustBe(21); } iter.m = v; - hiter.copy(iter.hiter, new hiter.ptr($ifaceNil, null, null, 0, null)); + hiter.copy(iter.hiter, new hiter.ptr(ptrType$4.nil, null, null, 0, null)); }; $ptrType(Value).prototype.MapRange = function MapRange() { var v; @@ -13891,7 +12075,7 @@ $packages["reflect"] = (function() { if (!((new flag(v.flag).kind() === 21))) { new flag(v.flag).panicNotMap(); } - return new MapIter.ptr($clone(v, Value), new hiter.ptr($ifaceNil, null, null, 0, null)); + return new MapIter.ptr($clone(v, Value), new hiter.ptr(ptrType$4.nil, null, null, 0, null)); }; Value.prototype.MapRange = function(...$args) { return this.$val.MapRange(...$args); }; flag.prototype.panicNotMap = function panicNotMap() { @@ -13900,72 +12084,72 @@ $packages["reflect"] = (function() { new flag(f).mustBe(21); }; $ptrType(flag).prototype.panicNotMap = function(...$args) { return new flag(this.$get()).panicNotMap(...$args); }; - copyVal = function copyVal$1(typ, fl, ptr) { - var c, fl, ptr, typ; - if (ifaceIndir(typ)) { - c = unsafe_New(typ); - typedmemmove(typ, c, ptr); - return new Value.ptr(typ, c, (fl | 128) >>> 0); + copyVal = function copyVal$1(typ$1, fl, ptr) { + var c, fl, ptr, typ$1; + if (typ$1.IfaceIndir()) { + c = unsafe_New(typ$1); + typedmemmove(typ$1, c, ptr); + return new Value.ptr(typ$1, c, (fl | 128) >>> 0); } - return new Value.ptr(typ, (ptr).$get(), fl); + return new Value.ptr(typ$1, (ptr).$get(), fl); }; $ptrType(Value).prototype.Method = function Method$1(i) { var fl, i, v; v = this; - if (v.typ === ptrType$2.nil) { + if ($clone(v, Value).typ() === ptrType$4.nil) { $panic(new ValueError.ptr("reflect.Value.Method", 0)); } - if (!((((v.flag & 512) >>> 0) === 0)) || ((i >>> 0)) >= ((v.typ.NumMethod() >>> 0))) { + if (!((((v.flag & 512) >>> 0) === 0)) || ((i >>> 0)) >= ((toRType($clone(v, Value).typ()).NumMethod() >>> 0))) { $panic(new $String("reflect: Method index out of range")); } - if ((v.typ.Kind() === 20) && $clone(v, Value).IsNil()) { + if (($clone(v, Value).typ().Kind() === 20) && $clone(v, Value).IsNil()) { $panic(new $String("reflect: Method on nil interface value")); } fl = (new flag(v.flag).ro() | (((v.flag & 128) >>> 0))) >>> 0; fl = (fl | (19)) >>> 0; fl = (fl | ((((((i >>> 0)) << 10 >>> 0) | 512) >>> 0))) >>> 0; - return new Value.ptr(v.typ, v.ptr, fl); + return new Value.ptr($clone(v, Value).typ(), v.ptr, fl); }; Value.prototype.Method = function(...$args) { return this.$val.Method(...$args); }; $ptrType(Value).prototype.NumMethod = function NumMethod() { var v; v = this; - if (v.typ === ptrType$2.nil) { + if ($clone(v, Value).typ() === ptrType$4.nil) { $panic(new ValueError.ptr("reflect.Value.NumMethod", 0)); } if (!((((v.flag & 512) >>> 0) === 0))) { return 0; } - return v.typ.NumMethod(); + return toRType($clone(v, Value).typ()).NumMethod(); }; Value.prototype.NumMethod = function(...$args) { return this.$val.NumMethod(...$args); }; - $ptrType(Value).prototype.MethodByName = function MethodByName(name$1) { - var {_r, _tuple, m, name$1, ok, v, $s, $r, $c} = $restore(this, {name$1}); + $ptrType(Value).prototype.MethodByName = function MethodByName(name) { + var {_r, _tuple, m, name, ok, v, $s, $r, $c} = $restore(this, {name}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: v = this; - if (v.typ === ptrType$2.nil) { + if ($clone(v, Value).typ() === ptrType$4.nil) { $panic(new ValueError.ptr("reflect.Value.MethodByName", 0)); } if (!((((v.flag & 512) >>> 0) === 0))) { - $s = -1; return new Value.ptr(ptrType$2.nil, 0, 0); + $s = -1; return new Value.ptr(ptrType$4.nil, 0, 0); } - _r = v.typ.MethodByName(name$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = toRType($clone(v, Value).typ()).MethodByName(name); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; m = $clone(_tuple[0], Method); ok = _tuple[1]; if (!ok) { - $s = -1; return new Value.ptr(ptrType$2.nil, 0, 0); + $s = -1; return new Value.ptr(ptrType$4.nil, 0, 0); } $s = -1; return $clone(v, Value).Method(m.Index); - /* */ } return; } var $f = {$blk: MethodByName, $c: true, $r, _r, _tuple, m, name$1, ok, v, $s};return $f; + /* */ } return; } var $f = {$blk: MethodByName, $c: true, $r, _r, _tuple, m, name, ok, v, $s};return $f; }; Value.prototype.MethodByName = function(...$args) { return this.$val.MethodByName(...$args); }; $ptrType(Value).prototype.NumField = function NumField() { var tt, v; v = this; new flag(v.flag).mustBe(25); - tt = (v.typ.kindType); - return tt.fields.$length; + tt = (toKindTypeExt($clone(v, Value).typ())); + return tt.StructType.Fields.$length; }; Value.prototype.NumField = function(...$args) { return this.$val.NumField(...$args); }; $ptrType(Value).prototype.OverflowComplex = function OverflowComplex(x) { @@ -14007,7 +12191,7 @@ $packages["reflect"] = (function() { k = new flag(v.flag).kind(); _1 = k; if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { - bitSize = $imul(v.typ.size, 8) >>> 0; + bitSize = $imul($clone(v, Value).typ().Size(), 8) >>> 0; trunc = $shiftRightInt64(($shiftLeft64(x, ((64 - bitSize >>> 0)))), ((64 - bitSize >>> 0))); return !((x.$high === trunc.$high && x.$low === trunc.$low)); } @@ -14020,7 +12204,7 @@ $packages["reflect"] = (function() { k = new flag(v.flag).kind(); _1 = k; if ((_1 === (7)) || (_1 === (12)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11))) { - bitSize = $imul(v.typ.size, 8) >>> 0; + bitSize = $imul(v.typ_.Size(), 8) >>> 0; trunc = $shiftRightUint64(($shiftLeft64(x, ((64 - bitSize >>> 0)))), ((64 - bitSize >>> 0))); return !((x.$high === trunc.$high && x.$low === trunc.$low)); } @@ -14030,7 +12214,7 @@ $packages["reflect"] = (function() { $ptrType(Value).prototype.Recv = function Recv() { var {$24r, _r, _tuple, ok, v, x, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = new Value.ptr(ptrType$2.nil, 0, 0); + x = new Value.ptr(ptrType$4.nil, 0, 0); ok = false; v = this; new flag(v.flag).mustBe(18); @@ -14047,14 +12231,14 @@ $packages["reflect"] = (function() { $ptrType(Value).prototype.recv = function recv(nb) { var {_r, _tuple, nb, ok, p, selected, t, tt, v, val, $s, $r, $c} = $restore(this, {nb}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - val = new Value.ptr(ptrType$2.nil, 0, 0); + val = new Value.ptr(ptrType$4.nil, 0, 0); ok = false; v = this; - tt = (v.typ.kindType); - if ((((tt.dir >> 0)) & 1) === 0) { + tt = ($clone(v, Value).typ().kindType); + if ((((tt.Dir >> 0)) & 1) === 0) { $panic(new $String("reflect: recv on send-only channel")); } - t = tt.elem; + t = tt.Elem; val = new Value.ptr(t, 0, ((t.Kind() >>> 0))); p = 0; if (ifaceIndir(t)) { @@ -14062,14 +12246,14 @@ $packages["reflect"] = (function() { val.ptr = p; val.flag = (val.flag | (128)) >>> 0; } else { - p = ((val.$ptr_ptr || (val.$ptr_ptr = new ptrType$8(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, val)))); + p = ((val.$ptr_ptr || (val.$ptr_ptr = new ptrType$6(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, val)))); } _r = chanrecv($clone(v, Value).pointer(), nb, p); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; selected = _tuple[0]; ok = _tuple[1]; if (!selected) { - val = new Value.ptr(ptrType$2.nil, 0, 0); + val = new Value.ptr(ptrType$4.nil, 0, 0); } $s = -1; return [val, ok]; /* */ } return; } var $f = {$blk: recv, $c: true, $r, _r, _tuple, nb, ok, p, selected, t, tt, v, val, $s};return $f; @@ -14092,18 +12276,18 @@ $packages["reflect"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: selected = false; v = this; - tt = (v.typ.kindType); - if ((((tt.dir >> 0)) & 2) === 0) { + tt = ($clone(v, Value).typ().kindType); + if ((((tt.Dir >> 0)) & 2) === 0) { $panic(new $String("reflect: send on recv-only channel")); } new flag(x.flag).mustBeExported(); - _r = $clone(x, Value).assignTo("reflect.Value.Send", tt.elem, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = $clone(x, Value).assignTo("reflect.Value.Send", tt.Elem, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } x = _r; p = 0; if (!((((x.flag & 128) >>> 0) === 0))) { p = x.ptr; } else { - p = ((x.$ptr_ptr || (x.$ptr_ptr = new ptrType$8(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, x)))); + p = ((x.$ptr_ptr || (x.$ptr_ptr = new ptrType$6(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, x)))); } _r$1 = chansend($clone(v, Value).pointer(), p, nb); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } selected = _r$1; @@ -14121,20 +12305,14 @@ $packages["reflect"] = (function() { }; Value.prototype.SetBool = function(...$args) { return this.$val.SetBool(...$args); }; $ptrType(Value).prototype.setRunes = function setRunes(x) { - var {_r, v, x, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var v, x; v = this; new flag(v.flag).mustBeAssignable(); new flag(v.flag).mustBe(23); - _r = v.typ.Elem().Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - /* */ if (!((_r === 5))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!((_r === 5))) { */ case 1: + if (!(($clone(v, Value).typ().Elem().Kind() === 5))) { $panic(new $String("reflect.Value.setRunes of non-rune slice")); - /* } */ case 2: + } (v.ptr).$set(x); - $s = -1; return; - /* */ } return; } var $f = {$blk: setRunes, $c: true, $r, _r, v, x, $s};return $f; }; Value.prototype.setRunes = function(...$args) { return this.$val.setRunes(...$args); }; $ptrType(Value).prototype.SetComplex = function SetComplex(x) { @@ -14188,58 +12366,58 @@ $packages["reflect"] = (function() { } }; Value.prototype.SetInt = function(...$args) { return this.$val.SetInt(...$args); }; - $ptrType(Value).prototype.SetMapIndex = function SetMapIndex(key, elem) { - var {_r, _r$1, _r$2, e, e$1, elem, k, k$1, key, tt, v, $s, $r, $c} = $restore(this, {key, elem}); + $ptrType(Value).prototype.SetMapIndex = function SetMapIndex(key, elem$1) { + var {_r, _r$1, _r$2, e, e$1, elem$1, k, k$1, key, tt, v, $s, $r, $c} = $restore(this, {key, elem$1}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: v = this; new flag(v.flag).mustBe(21); new flag(v.flag).mustBeExported(); new flag(key.flag).mustBeExported(); - tt = (v.typ.kindType); - /* */ if ((tt.key === stringType || (new flag(key.flag).kind() === 24)) && tt.key === key.typ && tt.elem.size <= 128) { $s = 1; continue; } + tt = (toKindTypeExt($clone(v, Value).typ())); + /* */ if ((tt.MapType.Key === stringType || (new flag(key.flag).kind() === 24)) && tt.MapType.Key === $clone(key, Value).typ() && tt.MapType.Elem.Size() <= 128) { $s = 1; continue; } /* */ $s = 2; continue; - /* if ((tt.key === stringType || (new flag(key.flag).kind() === 24)) && tt.key === key.typ && tt.elem.size <= 128) { */ case 1: + /* if ((tt.MapType.Key === stringType || (new flag(key.flag).kind() === 24)) && tt.MapType.Key === $clone(key, Value).typ() && tt.MapType.Elem.Size() <= 128) { */ case 1: k = (key.ptr).$get(); - if (elem.typ === ptrType$2.nil) { - mapdelete_faststr(v.typ, $clone(v, Value).pointer(), k); + if ($clone(elem$1, Value).typ() === ptrType$4.nil) { + mapdelete_faststr($clone(v, Value).typ(), $clone(v, Value).pointer(), k); $s = -1; return; } - new flag(elem.flag).mustBeExported(); - _r = $clone(elem, Value).assignTo("reflect.Value.SetMapIndex", tt.elem, 0); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - elem = _r; + new flag(elem$1.flag).mustBeExported(); + _r = $clone(elem$1, Value).assignTo("reflect.Value.SetMapIndex", tt.MapType.Elem, 0); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + elem$1 = _r; e = 0; - if (!((((elem.flag & 128) >>> 0) === 0))) { - e = elem.ptr; + if (!((((elem$1.flag & 128) >>> 0) === 0))) { + e = elem$1.ptr; } else { - e = ((elem.$ptr_ptr || (elem.$ptr_ptr = new ptrType$8(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, elem)))); + e = ((elem$1.$ptr_ptr || (elem$1.$ptr_ptr = new ptrType$6(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, elem$1)))); } - $r = mapassign_faststr(v.typ, $clone(v, Value).pointer(), k, e); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + mapassign_faststr($clone(v, Value).typ(), $clone(v, Value).pointer(), k, e); $s = -1; return; /* } */ case 2: - _r$1 = $clone(key, Value).assignTo("reflect.Value.SetMapIndex", tt.key, 0); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1 = $clone(key, Value).assignTo("reflect.Value.SetMapIndex", tt.MapType.Key, 0); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } key = _r$1; k$1 = 0; if (!((((key.flag & 128) >>> 0) === 0))) { k$1 = key.ptr; } else { - k$1 = ((key.$ptr_ptr || (key.$ptr_ptr = new ptrType$8(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, key)))); + k$1 = ((key.$ptr_ptr || (key.$ptr_ptr = new ptrType$6(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, key)))); } - if (elem.typ === ptrType$2.nil) { - mapdelete(v.typ, $clone(v, Value).pointer(), k$1); + if ($clone(elem$1, Value).typ() === ptrType$4.nil) { + mapdelete($clone(v, Value).typ(), $clone(v, Value).pointer(), k$1); $s = -1; return; } - new flag(elem.flag).mustBeExported(); - _r$2 = $clone(elem, Value).assignTo("reflect.Value.SetMapIndex", tt.elem, 0); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - elem = _r$2; + new flag(elem$1.flag).mustBeExported(); + _r$2 = $clone(elem$1, Value).assignTo("reflect.Value.SetMapIndex", tt.MapType.Elem, 0); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + elem$1 = _r$2; e$1 = 0; - if (!((((elem.flag & 128) >>> 0) === 0))) { - e$1 = elem.ptr; + if (!((((elem$1.flag & 128) >>> 0) === 0))) { + e$1 = elem$1.ptr; } else { - e$1 = ((elem.$ptr_ptr || (elem.$ptr_ptr = new ptrType$8(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, elem)))); + e$1 = ((elem$1.$ptr_ptr || (elem$1.$ptr_ptr = new ptrType$6(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, elem$1)))); } - $r = mapassign(v.typ, $clone(v, Value).pointer(), k$1, e$1); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + mapassign($clone(v, Value).typ(), $clone(v, Value).pointer(), k$1, e$1); $s = -1; return; - /* */ } return; } var $f = {$blk: SetMapIndex, $c: true, $r, _r, _r$1, _r$2, e, e$1, elem, k, k$1, key, tt, v, $s};return $f; + /* */ } return; } var $f = {$blk: SetMapIndex, $c: true, $r, _r, _r$1, _r$2, e, e$1, elem$1, k, k$1, key, tt, v, $s};return $f; }; Value.prototype.SetMapIndex = function(...$args) { return this.$val.SetMapIndex(...$args); }; $ptrType(Value).prototype.SetUint = function SetUint(x) { @@ -14310,7 +12488,7 @@ $packages["reflect"] = (function() { $ptrType(Value).prototype.TryRecv = function TryRecv() { var {$24r, _r, _tuple, ok, v, x, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = new Value.ptr(ptrType$2.nil, 0, 0); + x = new Value.ptr(ptrType$4.nil, 0, 0); ok = false; v = this; new flag(v.flag).mustBe(18); @@ -14336,39 +12514,31 @@ $packages["reflect"] = (function() { /* */ } return; } var $f = {$blk: TrySend, $c: true, $r, $24r, _r, v, x, $s};return $f; }; Value.prototype.TrySend = function(...$args) { return this.$val.TrySend(...$args); }; - $ptrType(Value).prototype.Type = function Type$1() { - var v; - v = this; - if (!((v.flag === 0)) && (((v.flag & 512) >>> 0) === 0)) { - return v.typ; - } - return $clone(v, Value).typeSlow(); - }; - Value.prototype.Type = function(...$args) { return this.$val.Type(...$args); }; $ptrType(Value).prototype.typeSlow = function typeSlow() { - var i, m, m$1, ms, tt, v, x; + var i, m, m$1, ms, tt, typ$1, v, x; v = this; if (v.flag === 0) { $panic(new ValueError.ptr("reflect.Value.Type", 0)); } + typ$1 = $clone(v, Value).typ(); if (((v.flag & 512) >>> 0) === 0) { - return v.typ; + return toRType($clone(v, Value).typ()); } i = ((v.flag >> 0)) >> 10 >> 0; - if (v.typ.Kind() === 20) { - tt = (v.typ.kindType); - if (((i >>> 0)) >= ((tt.methods.$length >>> 0))) { + if ($clone(v, Value).typ().Kind() === 20) { + tt = (toKindTypeExt(typ$1)); + if (((i >>> 0)) >= ((tt.InterfaceType.Methods.$length >>> 0))) { $panic(new $String("reflect: internal error: invalid method index")); } - m = (x = tt.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - return v.typ.typeOff(m.typ); + m = (x = tt.InterfaceType.Methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + i, ptrType$7))); + return toRType(typeOffFor(typ$1, m.Typ)); } - ms = v.typ.exportedMethods(); + ms = typ$1.ExportedMethods(); if (((i >>> 0)) >= ((ms.$length >>> 0))) { $panic(new $String("reflect: internal error: invalid method index")); } - m$1 = $clone(((i < 0 || i >= ms.$length) ? ($throwRuntimeError("index out of range"), undefined) : ms.$array[ms.$offset + i]), method); - return v.typ.typeOff(m$1.mtyp); + m$1 = $clone(((i < 0 || i >= ms.$length) ? ($throwRuntimeError("index out of range"), undefined) : ms.$array[ms.$offset + i]), abi.Method); + return toRType(typeOffFor(typ$1, m$1.Mtyp)); }; Value.prototype.typeSlow = function(...$args) { return this.$val.typeSlow(...$args); }; $ptrType(Value).prototype.CanUint = function CanUint() { @@ -14407,12 +12577,13 @@ $packages["reflect"] = (function() { $ptrType(Value).prototype.UnsafeAddr = function UnsafeAddr() { var v; v = this; - if (v.typ === ptrType$2.nil) { + if ($clone(v, Value).typ() === ptrType$4.nil) { $panic(new ValueError.ptr("reflect.Value.UnsafeAddr", 0)); } if (((v.flag & 256) >>> 0) === 0) { $panic(new $String("reflect.Value.UnsafeAddr of unaddressable value")); } + escapes(new $UnsafePointer(v.ptr)); return (v.ptr); }; Value.prototype.UnsafeAddr = function(...$args) { return this.$val.UnsafeAddr(...$args); }; @@ -14435,13 +12606,13 @@ $packages["reflect"] = (function() { v = _r; /* } */ case 2: _r$1 = t.common(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = convertOp(_r$1, v.typ); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2 = convertOp(_r$1, $clone(v, Value).typ()); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } op = _r$2; /* */ if (op === $throwNilPointerError) { $s = 6; continue; } /* */ $s = 7; continue; /* if (op === $throwNilPointerError) { */ case 6: _r$3 = t.String(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $panic(new $String("reflect.Value.Convert: value of type " + v.typ.String() + " cannot be converted to type " + _r$3)); + $panic(new $String("reflect.Value.Convert: value of type " + stringFor($clone(v, Value).typ()) + " cannot be converted to type " + _r$3)); /* } */ case 7: _r$4 = op($clone(v, Value), t); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } $24r = _r$4; @@ -14450,7 +12621,7 @@ $packages["reflect"] = (function() { }; Value.prototype.Convert = function(...$args) { return this.$val.Convert(...$args); }; $ptrType(Value).prototype.CanConvert = function CanConvert(t) { - var {_r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _v, _v$1, _v$2, n, t, v, vt, $s, $r, $c} = $restore(this, {t}); + var {_r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _v, _v$1, _v$2, n, t, v, vt, $s, $r, $c} = $restore(this, {t}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: v = this; vt = $clone(v, Value).Type(); @@ -14477,31 +12648,27 @@ $packages["reflect"] = (function() { /* */ $s = 7; continue; /* if (_v) { */ case 5: _r$7 = t.Len(); /* */ $s = 19; case 19: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _r$8 = $clone(v, Value).Len(); /* */ $s = 20; case 20: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - /* */ if (_r$7 > _r$8) { $s = 17; continue; } + /* */ if (_r$7 > $clone(v, Value).Len()) { $s = 17; continue; } /* */ $s = 18; continue; - /* if (_r$7 > _r$8) { */ case 17: + /* if (_r$7 > $clone(v, Value).Len()) { */ case 17: $s = -1; return false; /* } */ case 18: $s = 7; continue; /* } else if (_v$1) { */ case 6: - _r$9 = t.Elem(); /* */ $s = 21; case 21: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _r$10 = _r$9.Len(); /* */ $s = 22; case 22: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - n = _r$10; - _r$11 = $clone(v, Value).Len(); /* */ $s = 25; case 25: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - /* */ if (n > _r$11) { $s = 23; continue; } - /* */ $s = 24; continue; - /* if (n > _r$11) { */ case 23: + _r$8 = t.Elem(); /* */ $s = 20; case 20: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$9 = _r$8.Len(); /* */ $s = 21; case 21: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + n = _r$9; + if (n > $clone(v, Value).Len()) { $s = -1; return false; - /* } */ case 24: + } /* } */ case 7: case 4: $s = -1; return true; - /* */ } return; } var $f = {$blk: CanConvert, $c: true, $r, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _v, _v$1, _v$2, n, t, v, vt, $s};return $f; + /* */ } return; } var $f = {$blk: CanConvert, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _v, _v$1, _v$2, n, t, v, vt, $s};return $f; }; Value.prototype.CanConvert = function(...$args) { return this.$val.CanConvert(...$args); }; $ptrType(Value).prototype.Comparable = function Comparable() { - var {$24r, $24r$1, $24r$2, _1, _2, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, i, i$1, k, v, $s, $r, $c} = $restore(this, {}); + var {$24r, $24r$1, $24r$2, _1, _2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, i, i$1, k, v, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: v = this; k = $clone(v, Value).Kind(); @@ -14524,11 +12691,10 @@ $packages["reflect"] = (function() { /* while (true) { */ case 13: _r$2 = $clone(v, Value).Type().Len(); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } /* if (!(i < _r$2)) { break; } */ if(!(i < _r$2)) { $s = 14; continue; } - _r$3 = $clone(v, Value).Index(i); /* */ $s = 18; case 18: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$4 = $clone(_r$3, Value).Comparable(); /* */ $s = 19; case 19: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if (!_r$4) { $s = 16; continue; } + _r$3 = $clone($clone(v, Value).Index(i), Value).Comparable(); /* */ $s = 18; case 18: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!_r$3) { $s = 16; continue; } /* */ $s = 17; continue; - /* if (!_r$4) { */ case 16: + /* if (!_r$3) { */ case 16: $s = -1; return false; /* } */ case 17: i = i + (1) >> 0; @@ -14537,55 +12703,47 @@ $packages["reflect"] = (function() { $s = -1; return true; /* } */ case 12: case 8: - _r$5 = $clone(v, Value).Type().Comparable(); /* */ $s = 20; case 20: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - $24r = _r$5; - $s = 21; case 21: return $24r; + _r$4 = $clone(v, Value).Type().Comparable(); /* */ $s = 19; case 19: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r = _r$4; + $s = 20; case 20: return $24r; /* } else if (_1 === (20)) { */ case 4: - _r$6 = $clone(v, Value).Elem(); /* */ $s = 22; case 22: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _r$7 = $clone(_r$6, Value).Comparable(); /* */ $s = 23; case 23: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - $24r$1 = _r$7; - $s = 24; case 24: return $24r$1; + _r$5 = $clone($clone(v, Value).Elem(), Value).Comparable(); /* */ $s = 21; case 21: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $24r$1 = _r$5; + $s = 22; case 22: return $24r$1; /* } else if (_1 === (25)) { */ case 5: i$1 = 0; - /* while (true) { */ case 25: - /* if (!(i$1 < $clone(v, Value).NumField())) { break; } */ if(!(i$1 < $clone(v, Value).NumField())) { $s = 26; continue; } - _r$8 = $clone(v, Value).Field(i$1); /* */ $s = 29; case 29: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _r$9 = $clone(_r$8, Value).Comparable(); /* */ $s = 30; case 30: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - /* */ if (!_r$9) { $s = 27; continue; } - /* */ $s = 28; continue; - /* if (!_r$9) { */ case 27: + /* while (true) { */ case 23: + /* if (!(i$1 < $clone(v, Value).NumField())) { break; } */ if(!(i$1 < $clone(v, Value).NumField())) { $s = 24; continue; } + _r$6 = $clone($clone(v, Value).Field(i$1), Value).Comparable(); /* */ $s = 27; case 27: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + /* */ if (!_r$6) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (!_r$6) { */ case 25: $s = -1; return false; - /* } */ case 28: + /* } */ case 26: i$1 = i$1 + (1) >> 0; - $s = 25; continue; - case 26: + $s = 23; continue; + case 24: $s = -1; return true; /* } else { */ case 6: - _r$10 = $clone(v, Value).Type().Comparable(); /* */ $s = 31; case 31: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - $24r$2 = _r$10; - $s = 32; case 32: return $24r$2; + _r$7 = $clone(v, Value).Type().Comparable(); /* */ $s = 28; case 28: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $24r$2 = _r$7; + $s = 29; case 29: return $24r$2; /* } */ case 7: case 1: $s = -1; return false; - /* */ } return; } var $f = {$blk: Comparable, $c: true, $r, $24r, $24r$1, $24r$2, _1, _2, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, i, i$1, k, v, $s};return $f; + /* */ } return; } var $f = {$blk: Comparable, $c: true, $r, $24r, $24r$1, $24r$2, _1, _2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, i, i$1, k, v, $s};return $f; }; Value.prototype.Comparable = function(...$args) { return this.$val.Comparable(...$args); }; $ptrType(Value).prototype.Equal = function Equal(u) { - var {$24r, _1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, i, i$1, nf, u, v, vl, x, x$1, x$2, x$3, x$4, x$5, $s, $r, $c} = $restore(this, {u}); + var {$24r, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, i, i$1, nf, u, v, vl, x, x$1, x$2, x$3, x$4, x$5, $s, $r, $c} = $restore(this, {u}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: v = this; - /* */ if ($clone(v, Value).Kind() === 20) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if ($clone(v, Value).Kind() === 20) { */ case 1: - _r = $clone(v, Value).Elem(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - v = _r; - /* } */ case 2: - /* */ if ($clone(u, Value).Kind() === 20) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if ($clone(u, Value).Kind() === 20) { */ case 4: - _r$1 = $clone(u, Value).Elem(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - u = _r$1; - /* } */ case 5: + if ($clone(v, Value).Kind() === 20) { + v = $clone(v, Value).Elem(); + } + if ($clone(u, Value).Kind() === 20) { + u = $clone(u, Value).Elem(); + } if (!$clone(v, Value).IsValid() || !$clone(u, Value).IsValid()) { $s = -1; return $clone(v, Value).IsValid() === $clone(u, Value).IsValid(); } @@ -14593,297 +12751,229 @@ $packages["reflect"] = (function() { $s = -1; return false; } _1 = $clone(v, Value).Kind(); - /* */ if (_1 === (1)) { $s = 8; continue; } - /* */ if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { $s = 9; continue; } - /* */ if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { $s = 10; continue; } - /* */ if ((_1 === (13)) || (_1 === (14))) { $s = 11; continue; } - /* */ if ((_1 === (15)) || (_1 === (16))) { $s = 12; continue; } - /* */ if (_1 === (24)) { $s = 13; continue; } - /* */ if ((_1 === (18)) || (_1 === (22)) || (_1 === (26))) { $s = 14; continue; } - /* */ if (_1 === (17)) { $s = 15; continue; } - /* */ if (_1 === (25)) { $s = 16; continue; } - /* */ if ((_1 === (19)) || (_1 === (21)) || (_1 === (23))) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (_1 === (1)) { */ case 8: + /* */ if (_1 === (1)) { $s = 2; continue; } + /* */ if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { $s = 3; continue; } + /* */ if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { $s = 4; continue; } + /* */ if ((_1 === (13)) || (_1 === (14))) { $s = 5; continue; } + /* */ if ((_1 === (15)) || (_1 === (16))) { $s = 6; continue; } + /* */ if (_1 === (24)) { $s = 7; continue; } + /* */ if ((_1 === (18)) || (_1 === (22)) || (_1 === (26))) { $s = 8; continue; } + /* */ if (_1 === (17)) { $s = 9; continue; } + /* */ if (_1 === (25)) { $s = 10; continue; } + /* */ if ((_1 === (19)) || (_1 === (21)) || (_1 === (23))) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (_1 === (1)) { */ case 2: $s = -1; return $clone(v, Value).Bool() === $clone(u, Value).Bool(); - /* } else if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { */ case 9: + /* } else if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { */ case 3: $s = -1; return (x = $clone(v, Value).Int(), x$1 = $clone(u, Value).Int(), (x.$high === x$1.$high && x.$low === x$1.$low)); - /* } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { */ case 10: + /* } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { */ case 4: $s = -1; return (x$2 = $clone(v, Value).Uint(), x$3 = $clone(u, Value).Uint(), (x$2.$high === x$3.$high && x$2.$low === x$3.$low)); - /* } else if ((_1 === (13)) || (_1 === (14))) { */ case 11: + /* } else if ((_1 === (13)) || (_1 === (14))) { */ case 5: $s = -1; return $clone(v, Value).Float() === $clone(u, Value).Float(); - /* } else if ((_1 === (15)) || (_1 === (16))) { */ case 12: + /* } else if ((_1 === (15)) || (_1 === (16))) { */ case 6: $s = -1; return (x$4 = $clone(v, Value).Complex(), x$5 = $clone(u, Value).Complex(), (x$4.$real === x$5.$real && x$4.$imag === x$5.$imag)); - /* } else if (_1 === (24)) { */ case 13: - _r$2 = $clone(v, Value).String(); /* */ $s = 20; case 20: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = $clone(u, Value).String(); /* */ $s = 21; case 21: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r = _r$2 === _r$3; - $s = 22; case 22: return $24r; - /* } else if ((_1 === (18)) || (_1 === (22)) || (_1 === (26))) { */ case 14: + /* } else if (_1 === (24)) { */ case 7: + _r = $clone(v, Value).String(); /* */ $s = 14; case 14: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = $clone(u, Value).String(); /* */ $s = 15; case 15: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r === _r$1; + $s = 16; case 16: return $24r; + /* } else if ((_1 === (18)) || (_1 === (22)) || (_1 === (26))) { */ case 8: $s = -1; return $clone(v, Value).Pointer() === $clone(u, Value).Pointer(); - /* } else if (_1 === (17)) { */ case 15: - _r$4 = $clone(v, Value).Len(); /* */ $s = 23; case 23: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - vl = _r$4; - /* */ if (vl === 0) { $s = 24; continue; } - /* */ $s = 25; continue; - /* if (vl === 0) { */ case 24: - _r$5 = $clone(v, Value).Type().Elem(); /* */ $s = 28; case 28: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$6 = _r$5.Comparable(); /* */ $s = 29; case 29: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - /* */ if (!_r$6) { $s = 26; continue; } - /* */ $s = 27; continue; - /* if (!_r$6) { */ case 26: - /* break; */ $s = 7; continue; - /* } */ case 27: + /* } else if (_1 === (17)) { */ case 9: + vl = $clone(v, Value).Len(); + /* */ if (vl === 0) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (vl === 0) { */ case 17: + _r$2 = $clone(v, Value).Type().Elem(); /* */ $s = 21; case 21: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = _r$2.Comparable(); /* */ $s = 22; case 22: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!_r$3) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (!_r$3) { */ case 19: + /* break; */ $s = 1; continue; + /* } */ case 20: $s = -1; return true; - /* } */ case 25: + /* } */ case 18: i = 0; - /* while (true) { */ case 30: - /* if (!(i < vl)) { break; } */ if(!(i < vl)) { $s = 31; continue; } - _r$7 = $clone(v, Value).Index(i); /* */ $s = 34; case 34: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _r$8 = $clone(u, Value).Index(i); /* */ $s = 35; case 35: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _r$9 = $clone(_r$7, Value).Equal($clone(_r$8, Value)); /* */ $s = 36; case 36: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - /* */ if (!_r$9) { $s = 32; continue; } - /* */ $s = 33; continue; - /* if (!_r$9) { */ case 32: + /* while (true) { */ case 23: + /* if (!(i < vl)) { break; } */ if(!(i < vl)) { $s = 24; continue; } + _r$4 = $clone($clone(v, Value).Index(i), Value).Equal($clone($clone(u, Value).Index(i), Value)); /* */ $s = 27; case 27: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (!_r$4) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (!_r$4) { */ case 25: $s = -1; return false; - /* } */ case 33: + /* } */ case 26: i = i + (1) >> 0; - $s = 30; continue; - case 31: + $s = 23; continue; + case 24: $s = -1; return true; - /* } else if (_1 === (25)) { */ case 16: + /* } else if (_1 === (25)) { */ case 10: nf = $clone(v, Value).NumField(); i$1 = 0; - /* while (true) { */ case 37: - /* if (!(i$1 < nf)) { break; } */ if(!(i$1 < nf)) { $s = 38; continue; } - _r$10 = $clone(v, Value).Field(i$1); /* */ $s = 41; case 41: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _r$11 = $clone(u, Value).Field(i$1); /* */ $s = 42; case 42: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _r$12 = $clone(_r$10, Value).Equal($clone(_r$11, Value)); /* */ $s = 43; case 43: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - /* */ if (!_r$12) { $s = 39; continue; } - /* */ $s = 40; continue; - /* if (!_r$12) { */ case 39: + /* while (true) { */ case 28: + /* if (!(i$1 < nf)) { break; } */ if(!(i$1 < nf)) { $s = 29; continue; } + _r$5 = $clone($clone(v, Value).Field(i$1), Value).Equal($clone($clone(u, Value).Field(i$1), Value)); /* */ $s = 32; case 32: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (!_r$5) { $s = 30; continue; } + /* */ $s = 31; continue; + /* if (!_r$5) { */ case 30: $s = -1; return false; - /* } */ case 40: + /* } */ case 31: i$1 = i$1 + (1) >> 0; - $s = 37; continue; - case 38: + $s = 28; continue; + case 29: $s = -1; return true; - /* } else if ((_1 === (19)) || (_1 === (21)) || (_1 === (23))) { */ case 17: - /* break; */ $s = 7; continue; - $s = 19; continue; - /* } else { */ case 18: + /* } else if ((_1 === (19)) || (_1 === (21)) || (_1 === (23))) { */ case 11: + /* break; */ $s = 1; continue; + $s = 13; continue; + /* } else { */ case 12: $panic(new $String("reflect.Value.Equal: invalid Kind")); - /* } */ case 19: - case 7: - _r$13 = $clone(v, Value).Type().String(); /* */ $s = 44; case 44: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - $panic(new $String("reflect.Value.Equal: values of type " + _r$13 + " are not comparable")); + /* } */ case 13: + case 1: + _r$6 = $clone(v, Value).Type().String(); /* */ $s = 33; case 33: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $panic(new $String("reflect.Value.Equal: values of type " + _r$6 + " are not comparable")); $s = -1; return false; - /* */ } return; } var $f = {$blk: Equal, $c: true, $r, $24r, _1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, i, i$1, nf, u, v, vl, x, x$1, x$2, x$3, x$4, x$5, $s};return $f; + /* */ } return; } var $f = {$blk: Equal, $c: true, $r, $24r, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, i, i$1, nf, u, v, vl, x, x$1, x$2, x$3, x$4, x$5, $s};return $f; }; Value.prototype.Equal = function(...$args) { return this.$val.Equal(...$args); }; convertOp = function convertOp$1(dst, src) { - var {_1, _2, _3, _4, _5, _6, _7, _arg, _arg$1, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _v, _v$1, _v$2, _v$3, _v$4, _v$5, dst, src, $s, $r, $c} = $restore(this, {dst, src}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _1 = src.Kind(); - /* */ if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { $s = 2; continue; } - /* */ if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { $s = 3; continue; } - /* */ if ((_1 === (13)) || (_1 === (14))) { $s = 4; continue; } - /* */ if ((_1 === (15)) || (_1 === (16))) { $s = 5; continue; } - /* */ if (_1 === (24)) { $s = 6; continue; } - /* */ if (_1 === (23)) { $s = 7; continue; } - /* */ if (_1 === (18)) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { */ case 2: - _2 = dst.Kind(); - if ((_2 === (2)) || (_2 === (3)) || (_2 === (4)) || (_2 === (5)) || (_2 === (6)) || (_2 === (7)) || (_2 === (8)) || (_2 === (9)) || (_2 === (10)) || (_2 === (11)) || (_2 === (12))) { - $s = -1; return cvtInt; - } else if ((_2 === (13)) || (_2 === (14))) { - $s = -1; return cvtIntFloat; - } else if (_2 === (24)) { - $s = -1; return cvtIntString; - } - $s = 9; continue; - /* } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { */ case 3: - _3 = dst.Kind(); - if ((_3 === (2)) || (_3 === (3)) || (_3 === (4)) || (_3 === (5)) || (_3 === (6)) || (_3 === (7)) || (_3 === (8)) || (_3 === (9)) || (_3 === (10)) || (_3 === (11)) || (_3 === (12))) { - $s = -1; return cvtUint; - } else if ((_3 === (13)) || (_3 === (14))) { - $s = -1; return cvtUintFloat; - } else if (_3 === (24)) { - $s = -1; return cvtUintString; - } - $s = 9; continue; - /* } else if ((_1 === (13)) || (_1 === (14))) { */ case 4: - _4 = dst.Kind(); - if ((_4 === (2)) || (_4 === (3)) || (_4 === (4)) || (_4 === (5)) || (_4 === (6))) { - $s = -1; return cvtFloatInt; - } else if ((_4 === (7)) || (_4 === (8)) || (_4 === (9)) || (_4 === (10)) || (_4 === (11)) || (_4 === (12))) { - $s = -1; return cvtFloatUint; - } else if ((_4 === (13)) || (_4 === (14))) { - $s = -1; return cvtFloat; - } - $s = 9; continue; - /* } else if ((_1 === (15)) || (_1 === (16))) { */ case 5: - _5 = dst.Kind(); - if ((_5 === (15)) || (_5 === (16))) { - $s = -1; return cvtComplex; + var _1, _2, _3, _4, _5, _6, _7, dst, src; + _1 = ((src.Kind() >>> 0)); + if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { + _2 = ((dst.Kind() >>> 0)); + if ((_2 === (2)) || (_2 === (3)) || (_2 === (4)) || (_2 === (5)) || (_2 === (6)) || (_2 === (7)) || (_2 === (8)) || (_2 === (9)) || (_2 === (10)) || (_2 === (11)) || (_2 === (12))) { + return cvtInt; + } else if ((_2 === (13)) || (_2 === (14))) { + return cvtIntFloat; + } else if (_2 === (24)) { + return cvtIntString; + } + } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { + _3 = ((dst.Kind() >>> 0)); + if ((_3 === (2)) || (_3 === (3)) || (_3 === (4)) || (_3 === (5)) || (_3 === (6)) || (_3 === (7)) || (_3 === (8)) || (_3 === (9)) || (_3 === (10)) || (_3 === (11)) || (_3 === (12))) { + return cvtUint; + } else if ((_3 === (13)) || (_3 === (14))) { + return cvtUintFloat; + } else if (_3 === (24)) { + return cvtUintString; + } + } else if ((_1 === (13)) || (_1 === (14))) { + _4 = ((dst.Kind() >>> 0)); + if ((_4 === (2)) || (_4 === (3)) || (_4 === (4)) || (_4 === (5)) || (_4 === (6))) { + return cvtFloatInt; + } else if ((_4 === (7)) || (_4 === (8)) || (_4 === (9)) || (_4 === (10)) || (_4 === (11)) || (_4 === (12))) { + return cvtFloatUint; + } else if ((_4 === (13)) || (_4 === (14))) { + return cvtFloat; + } + } else if ((_1 === (15)) || (_1 === (16))) { + _5 = ((dst.Kind() >>> 0)); + if ((_5 === (15)) || (_5 === (16))) { + return cvtComplex; + } + } else if (_1 === (24)) { + if ((dst.Kind() === 23) && pkgPathFor(dst.Elem()) === "") { + _6 = ((dst.Elem().Kind() >>> 0)); + if (_6 === (8)) { + return cvtStringBytes; + } else if (_6 === (5)) { + return cvtStringRunes; } - $s = 9; continue; - /* } else if (_1 === (24)) { */ case 6: - if (!(dst.Kind() === 23)) { _v = false; $s = 12; continue s; } - _r = dst.Elem().PkgPath(); /* */ $s = 13; case 13: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _v = _r === ""; case 12: - /* */ if (_v) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (_v) { */ case 10: - _r$1 = dst.Elem().Kind(); /* */ $s = 15; case 15: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _6 = _r$1; - if (_6 === (8)) { - $s = -1; return cvtStringBytes; - } else if (_6 === (5)) { - $s = -1; return cvtStringRunes; - } - case 14: - /* } */ case 11: - $s = 9; continue; - /* } else if (_1 === (23)) { */ case 7: - if (!(dst.Kind() === 24)) { _v$1 = false; $s = 18; continue s; } - _r$2 = src.Elem().PkgPath(); /* */ $s = 19; case 19: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _v$1 = _r$2 === ""; case 18: - /* */ if (_v$1) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (_v$1) { */ case 16: - _r$3 = src.Elem().Kind(); /* */ $s = 21; case 21: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _7 = _r$3; - if (_7 === (8)) { - $s = -1; return cvtBytesString; - } else if (_7 === (5)) { - $s = -1; return cvtRunesString; - } - case 20: - /* } */ case 17: - if (!(dst.Kind() === 22)) { _v$3 = false; $s = 25; continue s; } - _r$4 = dst.Elem().Kind(); /* */ $s = 26; case 26: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _v$3 = _r$4 === 17; case 25: - if (!(_v$3)) { _v$2 = false; $s = 24; continue s; } - _r$5 = dst.Elem().Elem(); /* */ $s = 27; case 27: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _v$2 = $interfaceIsEqual(src.Elem(), _r$5); case 24: - /* */ if (_v$2) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if (_v$2) { */ case 22: - $s = -1; return cvtSliceArrayPtr; - /* } */ case 23: - if ((dst.Kind() === 17) && $interfaceIsEqual(src.Elem(), dst.Elem())) { - $s = -1; return cvtSliceArray; + } + } else if (_1 === (23)) { + if ((dst.Kind() === 24) && pkgPathFor(src.Elem()) === "") { + _7 = ((src.Elem().Kind() >>> 0)); + if (_7 === (8)) { + return cvtBytesString; + } else if (_7 === (5)) { + return cvtRunesString; } - $s = 9; continue; - /* } else if (_1 === (18)) { */ case 8: - if (!(dst.Kind() === 18)) { _v$4 = false; $s = 30; continue s; } - _r$6 = specialChannelAssignability(dst, src); /* */ $s = 31; case 31: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _v$4 = _r$6; case 30: - /* */ if (_v$4) { $s = 28; continue; } - /* */ $s = 29; continue; - /* if (_v$4) { */ case 28: - $s = -1; return cvtDirect; - /* } */ case 29: - /* } */ case 9: - case 1: - _r$7 = haveIdenticalUnderlyingType(dst, src, false); /* */ $s = 34; case 34: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - /* */ if (_r$7) { $s = 32; continue; } - /* */ $s = 33; continue; - /* if (_r$7) { */ case 32: - $s = -1; return cvtDirect; - /* } */ case 33: - if (!((dst.Kind() === 22) && dst.Name() === "" && (src.Kind() === 22) && src.Name() === "")) { _v$5 = false; $s = 37; continue s; } - _r$8 = dst.Elem().common(); /* */ $s = 38; case 38: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _arg = _r$8; - _r$9 = src.Elem().common(); /* */ $s = 39; case 39: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _arg$1 = _r$9; - _r$10 = haveIdenticalUnderlyingType(_arg, _arg$1, false); /* */ $s = 40; case 40: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _v$5 = _r$10; case 37: - /* */ if (_v$5) { $s = 35; continue; } - /* */ $s = 36; continue; - /* if (_v$5) { */ case 35: - $s = -1; return cvtDirect; - /* } */ case 36: + } + if ((dst.Kind() === 22) && (dst.Elem().Kind() === 17) && src.Elem() === dst.Elem().Elem()) { + return cvtSliceArrayPtr; + } + if ((dst.Kind() === 17) && src.Elem() === dst.Elem()) { + return cvtSliceArray; + } + } else if (_1 === (18)) { + if ((dst.Kind() === 18) && specialChannelAssignability(dst, src)) { + return cvtDirect; + } + } + if (haveIdenticalUnderlyingType(dst, src, false)) { + return cvtDirect; + } + if ((dst.Kind() === 22) && nameFor(dst) === "" && (src.Kind() === 22) && nameFor(src) === "" && haveIdenticalUnderlyingType(elem(dst), elem(src), false)) { + return cvtDirect; + } if (implements$1(dst, src)) { if (src.Kind() === 20) { - $s = -1; return cvtI2I; + return cvtI2I; } - $s = -1; return cvtT2I; + return cvtT2I; } - $s = -1; return $throwNilPointerError; - /* */ } return; } var $f = {$blk: convertOp$1, $c: true, $r, _1, _2, _3, _4, _5, _6, _7, _arg, _arg$1, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _v, _v$1, _v$2, _v$3, _v$4, _v$5, dst, src, $s};return $f; + return $throwNilPointerError; }; makeFloat = function makeFloat$1(f, v, t) { - var {_1, _r, f, ptr, t, typ, v, $s, $r, $c} = $restore(this, {f, v, t}); + var {_1, _r, f, ptr, t, typ$1, v, $s, $r, $c} = $restore(this, {f, v, t}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: _r = t.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - typ = _r; - ptr = unsafe_New(typ); - _1 = typ.size; + typ$1 = _r; + ptr = unsafe_New(typ$1); + _1 = typ$1.Size(); if (_1 === (4)) { (ptr).$set(($fround(v))); } else if (_1 === (8)) { (ptr).$set(v); } - $s = -1; return new Value.ptr(typ, ptr, (((f | 128) >>> 0) | ((typ.Kind() >>> 0))) >>> 0); - /* */ } return; } var $f = {$blk: makeFloat$1, $c: true, $r, _1, _r, f, ptr, t, typ, v, $s};return $f; + $s = -1; return new Value.ptr(typ$1, ptr, (((f | 128) >>> 0) | ((typ$1.Kind() >>> 0))) >>> 0); + /* */ } return; } var $f = {$blk: makeFloat$1, $c: true, $r, _1, _r, f, ptr, t, typ$1, v, $s};return $f; }; makeFloat32 = function makeFloat32$1(f, v, t) { - var {_r, f, ptr, t, typ, v, $s, $r, $c} = $restore(this, {f, v, t}); + var {_r, f, ptr, t, typ$1, v, $s, $r, $c} = $restore(this, {f, v, t}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: _r = t.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - typ = _r; - ptr = unsafe_New(typ); + typ$1 = _r; + ptr = unsafe_New(typ$1); (ptr).$set(v); - $s = -1; return new Value.ptr(typ, ptr, (((f | 128) >>> 0) | ((typ.Kind() >>> 0))) >>> 0); - /* */ } return; } var $f = {$blk: makeFloat32$1, $c: true, $r, _r, f, ptr, t, typ, v, $s};return $f; + $s = -1; return new Value.ptr(typ$1, ptr, (((f | 128) >>> 0) | ((typ$1.Kind() >>> 0))) >>> 0); + /* */ } return; } var $f = {$blk: makeFloat32$1, $c: true, $r, _r, f, ptr, t, typ$1, v, $s};return $f; }; makeComplex = function makeComplex$1(f, v, t) { - var {_1, _r, f, ptr, t, typ, v, $s, $r, $c} = $restore(this, {f, v, t}); + var {_1, _r, f, ptr, t, typ$1, v, $s, $r, $c} = $restore(this, {f, v, t}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: _r = t.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - typ = _r; - ptr = unsafe_New(typ); - _1 = typ.size; + typ$1 = _r; + ptr = unsafe_New(typ$1); + _1 = typ$1.Size(); if (_1 === (8)) { (ptr).$set((new $Complex64(v.$real, v.$imag))); } else if (_1 === (16)) { (ptr).$set(v); } - $s = -1; return new Value.ptr(typ, ptr, (((f | 128) >>> 0) | ((typ.Kind() >>> 0))) >>> 0); - /* */ } return; } var $f = {$blk: makeComplex$1, $c: true, $r, _1, _r, f, ptr, t, typ, v, $s};return $f; + $s = -1; return new Value.ptr(typ$1, ptr, (((f | 128) >>> 0) | ((typ$1.Kind() >>> 0))) >>> 0); + /* */ } return; } var $f = {$blk: makeComplex$1, $c: true, $r, _1, _r, f, ptr, t, typ$1, v, $s};return $f; }; makeString = function makeString$1(f, v, t) { - var {_r, f, ret, t, v, $s, $r, $c} = $restore(this, {f, v, t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = $clone(New(t), Value).Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - ret = _r; + var f, ret, t, v; + ret = $clone(New(t), Value).Elem(); $clone(ret, Value).SetString(v); ret.flag = (((ret.flag & ~256) >>> 0) | f) >>> 0; - $s = -1; return ret; - /* */ } return; } var $f = {$blk: makeString$1, $c: true, $r, _r, f, ret, t, v, $s};return $f; + return ret; }; makeBytes = function makeBytes$1(f, v, t) { - var {_r, f, ret, t, v, $s, $r, $c} = $restore(this, {f, v, t}); + var {f, ret, t, v, $s, $r, $c} = $restore(this, {f, v, t}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = $clone(New(t), Value).Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - ret = _r; - $r = $clone(ret, Value).SetBytes(v); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + ret = $clone(New(t), Value).Elem(); + $r = $clone(ret, Value).SetBytes(v); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } ret.flag = (((ret.flag & ~256) >>> 0) | f) >>> 0; $s = -1; return ret; - /* */ } return; } var $f = {$blk: makeBytes$1, $c: true, $r, _r, f, ret, t, v, $s};return $f; + /* */ } return; } var $f = {$blk: makeBytes$1, $c: true, $r, f, ret, t, v, $s};return $f; }; makeRunes = function makeRunes$1(f, v, t) { - var {_r, f, ret, t, v, $s, $r, $c} = $restore(this, {f, v, t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = $clone(New(t), Value).Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - ret = _r; - $r = $clone(ret, Value).setRunes(v); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + var f, ret, t, v; + ret = $clone(New(t), Value).Elem(); + $clone(ret, Value).setRunes(v); ret.flag = (((ret.flag & ~256) >>> 0) | f) >>> 0; - $s = -1; return ret; - /* */ } return; } var $f = {$blk: makeRunes$1, $c: true, $r, _r, f, ret, t, v, $s};return $f; + return ret; }; cvtInt = function cvtInt$1(v, t) { var {$24r, _r, t, v, x, $s, $r, $c} = $restore(this, {v, t}); @@ -14961,49 +13051,33 @@ $packages["reflect"] = (function() { /* */ } return; } var $f = {$blk: cvtComplex$1, $c: true, $r, $24r, _r, t, v, $s};return $f; }; cvtIntString = function cvtIntString$1(v, t) { - var {$24r, _r, s, t, v, x, x$1, $s, $r, $c} = $restore(this, {v, t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var s, t, v, x, x$1; s = "\xEF\xBF\xBD"; x = $clone(v, Value).Int(); if ((x$1 = (new $Int64(0, (((x.$low + ((x.$high >> 31) * 4294967296)) >> 0)))), (x$1.$high === x.$high && x$1.$low === x.$low))) { s = ($encodeRune((((x.$low + ((x.$high >> 31) * 4294967296)) >> 0)))); } - _r = makeString(new flag(v.flag).ro(), s, t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: cvtIntString$1, $c: true, $r, $24r, _r, s, t, v, x, x$1, $s};return $f; + return makeString(new flag(v.flag).ro(), s, t); }; cvtUintString = function cvtUintString$1(v, t) { - var {$24r, _r, s, t, v, x, x$1, $s, $r, $c} = $restore(this, {v, t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var s, t, v, x, x$1; s = "\xEF\xBF\xBD"; x = $clone(v, Value).Uint(); if ((x$1 = (new $Uint64(0, ((x.$low >> 0)))), (x$1.$high === x.$high && x$1.$low === x.$low))) { s = ($encodeRune(((x.$low >> 0)))); } - _r = makeString(new flag(v.flag).ro(), s, t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: cvtUintString$1, $c: true, $r, $24r, _r, s, t, v, x, x$1, $s};return $f; + return makeString(new flag(v.flag).ro(), s, t); }; cvtBytesString = function cvtBytesString$1(v, t) { - var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s, $r, $c} = $restore(this, {v, t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _arg = new flag(v.flag).ro(); - _r = $clone(v, Value).Bytes(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _arg$1 = ($bytesToString(_r)); - _arg$2 = t; - _r$1 = makeString(_arg, _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: cvtBytesString$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s};return $f; + var t, v; + return makeString(new flag(v.flag).ro(), ($bytesToString($clone(v, Value).Bytes())), t); }; cvtStringBytes = function cvtStringBytes$1(v, t) { var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s, $r, $c} = $restore(this, {v, t}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: _arg = new flag(v.flag).ro(); _r = $clone(v, Value).String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _arg$1 = (new sliceType$4($stringToBytes(_r))); + _arg$1 = (new sliceType$2($stringToBytes(_r))); _arg$2 = t; _r$1 = makeBytes(_arg, _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $24r = _r$1; @@ -15011,72 +13085,100 @@ $packages["reflect"] = (function() { /* */ } return; } var $f = {$blk: cvtStringBytes$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s};return $f; }; cvtRunesString = function cvtRunesString$1(v, t) { - var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s, $r, $c} = $restore(this, {v, t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _arg = new flag(v.flag).ro(); - _r = $clone(v, Value).runes(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _arg$1 = ($runesToString(_r)); - _arg$2 = t; - _r$1 = makeString(_arg, _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: cvtRunesString$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s};return $f; + var t, v; + return makeString(new flag(v.flag).ro(), ($runesToString($clone(v, Value).runes())), t); }; cvtStringRunes = function cvtStringRunes$1(v, t) { var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s, $r, $c} = $restore(this, {v, t}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: _arg = new flag(v.flag).ro(); _r = $clone(v, Value).String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _arg$1 = (new sliceType$12($stringToRunes(_r))); + _arg$1 = (new sliceType$10($stringToRunes(_r))); _arg$2 = t; _r$1 = makeRunes(_arg, _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $24r = _r$1; $s = 3; case 3: return $24r; /* */ } return; } var $f = {$blk: cvtStringRunes$1, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s};return $f; }; - cvtT2I = function cvtT2I$1(v, typ) { - var {$24r, _r, _r$1, _r$2, _r$3, _r$4, target, typ, v, x, $s, $r, $c} = $restore(this, {v, typ}); + cvtT2I = function cvtT2I$1(v, typ$1) { + var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, target, typ$1, v, x, $s, $r, $c} = $restore(this, {v, typ$1}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = typ.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = typ$1.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _r$1 = unsafe_New(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } target = _r$1; _r$2 = valueInterface($clone(v, Value), false); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } x = _r$2; - _r$3 = typ.NumMethod(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3 = typ$1.NumMethod(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } /* */ if (_r$3 === 0) { $s = 4; continue; } /* */ $s = 5; continue; /* if (_r$3 === 0) { */ case 4: (target).$set(x); $s = 6; continue; /* } else { */ case 5: - ifaceE2I($assertType(typ, ptrType$2), x, target); + _r$4 = typ$1.common(); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $r = ifaceE2I(_r$4, x, target); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 6: - _r$4 = typ.common(); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $24r = new Value.ptr(_r$4, target, (((new flag(v.flag).ro() | 128) >>> 0) | 20) >>> 0); - $s = 9; case 9: return $24r; - /* */ } return; } var $f = {$blk: cvtT2I$1, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, target, typ, v, x, $s};return $f; + _r$5 = typ$1.common(); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $24r = new Value.ptr(_r$5, target, (((new flag(v.flag).ro() | 128) >>> 0) | 20) >>> 0); + $s = 11; case 11: return $24r; + /* */ } return; } var $f = {$blk: cvtT2I$1, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, target, typ$1, v, x, $s};return $f; }; - cvtI2I = function cvtI2I$1(v, typ) { - var {$24r, _r, _r$1, _r$2, ret, typ, v, $s, $r, $c} = $restore(this, {v, typ}); + cvtI2I = function cvtI2I$1(v, typ$1) { + var {$24r, _r, ret, typ$1, v, $s, $r, $c} = $restore(this, {v, typ$1}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - /* */ if ($clone(v, Value).IsNil()) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if ($clone(v, Value).IsNil()) { */ case 1: - _r = Zero(typ); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - ret = _r; + if ($clone(v, Value).IsNil()) { + ret = Zero(typ$1); ret.flag = (ret.flag | (new flag(v.flag).ro())) >>> 0; $s = -1; return ret; - /* } */ case 2: - _r$1 = $clone(v, Value).Elem(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = cvtT2I($clone(_r$1, Value), typ); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 6; case 6: return $24r; - /* */ } return; } var $f = {$blk: cvtI2I$1, $c: true, $r, $24r, _r, _r$1, _r$2, ret, typ, v, $s};return $f; + } + _r = cvtT2I($clone($clone(v, Value).Elem(), Value), typ$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: cvtI2I$1, $c: true, $r, $24r, _r, ret, typ$1, v, $s};return $f; }; - $ptrType(structField).prototype.embedded = function embedded() { - var f; - f = this; - return $clone(f.name, name).embedded(); + escapes = function escapes$1(x) { + var x; + if (dummy.b) { + dummy.x = x; + } + }; + $ptrType(rtype).prototype.common = function common() { + var t; + t = this; + return t.t; + }; + $ptrType(rtype).prototype.uncommon = function uncommon() { + var t; + t = this; + return t.t.Uncommon(); + }; + $ptrType(interfaceType).prototype.nameOff = function nameOff(off) { + var off, t; + t = this; + return toRType(t.InterfaceType.Type).nameOff(off); + }; + nameOffFor = function nameOffFor$1(t, off) { + var off, t; + return toRType(t).nameOff(off); + }; + typeOffFor = function typeOffFor$1(t, off) { + var off, t; + return toRType(t).typeOff(off); + }; + $ptrType(interfaceType).prototype.typeOff = function typeOff(off) { + var off, t; + t = this; + return toRType(t.InterfaceType.Type).typeOff(off); + }; + $ptrType(interfaceType).prototype.common = function common$1() { + var t; + t = this; + return t.InterfaceType.Type; + }; + $ptrType(interfaceType).prototype.uncommon = function uncommon$1() { + var t; + t = this; + return t.InterfaceType.Type.Uncommon(); }; $ptrType(Method).prototype.IsExported = function IsExported() { var m; @@ -15093,92 +13195,78 @@ $packages["reflect"] = (function() { return "kind" + strconv.Itoa(((k >> 0))); }; $ptrType(Kind).prototype.String = function(...$args) { return new Kind(this.$get()).String(...$args); }; - $ptrType(rtype).prototype.String = function String$2() { - var s, t; - t = this; - s = $clone(t.nameOff(t.str), name).name(); - if (!((((t.tflag & 2) >>> 0) === 0))) { - return $substring(s, 1); - } - return s; - }; $ptrType(rtype).prototype.Size = function Size() { var t; t = this; - return t.size; + return t.t.Size(); }; $ptrType(rtype).prototype.Bits = function Bits() { var k, t; t = this; - if (t === ptrType$2.nil) { + if (t === ptrType$9.nil) { $panic(new $String("reflect: Bits of nil Type")); } k = t.Kind(); if (k < 2 || k > 16) { $panic(new $String("reflect: Bits of non-arithmetic Type " + t.String())); } - return $imul(((t.size >> 0)), 8); + return $imul(((t.t.Size_ >> 0)), 8); }; $ptrType(rtype).prototype.Align = function Align() { var t; t = this; - return ((t.align >> 0)); + return t.t.Align(); }; $ptrType(rtype).prototype.FieldAlign = function FieldAlign() { var t; t = this; - return ((t.fieldAlign >> 0)); + return t.t.FieldAlign(); }; $ptrType(rtype).prototype.Kind = function Kind$2() { var t; t = this; - return ((((t.kind & 31) >>> 0) >>> 0)); - }; - $ptrType(rtype).prototype.common = function common() { - var t; - t = this; - return t; + return ((t.t.Kind() >>> 0)); }; $ptrType(rtype).prototype.exportedMethods = function exportedMethods() { var t, ut; t = this; ut = t.uncommon(); - if (ut === ptrType$9.nil) { - return sliceType$13.nil; + if (ut === ptrType$10.nil) { + return sliceType$11.nil; } - return ut.exportedMethods(); + return ut.ExportedMethods(); }; $ptrType(rtype).prototype.NumMethod = function NumMethod$1() { var t, tt; t = this; if (t.Kind() === 20) { - tt = (t.kindType); + tt = (toKindTypeExt(t)); return tt.NumMethod(); } return t.exportedMethods().$length; }; - $ptrType(rtype).prototype.MethodByName = function MethodByName$1(name$1) { - var {$24r, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, h, i, j, m, methods, name$1, ok, t, tt, ut, $s, $r, $c} = $restore(this, {name$1}); + $ptrType(rtype).prototype.MethodByName = function MethodByName$1(name) { + var {$24r, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, h, i, j, m, methods, name, ok, t, tt, ut, $s, $r, $c} = $restore(this, {name}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$2.nil, 0, 0), 0); + m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$4.nil, 0, 0), 0); ok = false; t = this; if (t.Kind() === 20) { - tt = (t.kindType); - _tuple = tt.MethodByName(name$1); + tt = (toKindTypeExt(t)); + _tuple = tt.MethodByName(name); Method.copy(m, _tuple[0]); ok = _tuple[1]; $s = -1; return [m, ok]; } ut = t.uncommon(); - if (ut === ptrType$9.nil) { - _tmp = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$2.nil, 0, 0), 0); + if (ut === ptrType$10.nil) { + _tmp = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$4.nil, 0, 0), 0); _tmp$1 = false; Method.copy(m, _tmp); ok = _tmp$1; $s = -1; return [m, ok]; } - methods = ut.exportedMethods(); + methods = ut.ExportedMethods(); _tmp$2 = 0; _tmp$3 = methods.$length; i = _tmp$2; @@ -15186,15 +13274,15 @@ $packages["reflect"] = (function() { while (true) { if (!(i < j)) { break; } h = ((((((i + j >> 0) >>> 0)) >>> 1 >>> 0) >> 0)); - if (!($clone(t.nameOff(((h < 0 || h >= methods.$length) ? ($throwRuntimeError("index out of range"), undefined) : methods.$array[methods.$offset + h]).name), name).name() >= name$1)) { + if (!($clone(t.nameOff(((h < 0 || h >= methods.$length) ? ($throwRuntimeError("index out of range"), undefined) : methods.$array[methods.$offset + h]).Name), abi.Name).Name() >= name)) { i = h + 1 >> 0; } else { j = h; } } - /* */ if (i < methods.$length && name$1 === $clone(t.nameOff(((i < 0 || i >= methods.$length) ? ($throwRuntimeError("index out of range"), undefined) : methods.$array[methods.$offset + i]).name), name).name()) { $s = 1; continue; } + /* */ if (i < methods.$length && name === $clone(t.nameOff(((i < 0 || i >= methods.$length) ? ($throwRuntimeError("index out of range"), undefined) : methods.$array[methods.$offset + i]).Name), abi.Name).Name()) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (i < methods.$length && name$1 === $clone(t.nameOff(((i < 0 || i >= methods.$length) ? ($throwRuntimeError("index out of range"), undefined) : methods.$array[methods.$offset + i]).name), name).name()) { */ case 1: + /* if (i < methods.$length && name === $clone(t.nameOff(((i < 0 || i >= methods.$length) ? ($throwRuntimeError("index out of range"), undefined) : methods.$array[methods.$offset + i]).Name), abi.Name).Name()) { */ case 1: _r = t.Method(i); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tmp$4 = $clone(_r, Method); _tmp$5 = true; @@ -15203,34 +13291,33 @@ $packages["reflect"] = (function() { $24r = [m, ok]; $s = 4; case 4: return $24r; /* } */ case 2: - _tmp$6 = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$2.nil, 0, 0), 0); + _tmp$6 = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$4.nil, 0, 0), 0); _tmp$7 = false; Method.copy(m, _tmp$6); ok = _tmp$7; $s = -1; return [m, ok]; - /* */ } return; } var $f = {$blk: MethodByName$1, $c: true, $r, $24r, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, h, i, j, m, methods, name$1, ok, t, tt, ut, $s};return $f; + /* */ } return; } var $f = {$blk: MethodByName$1, $c: true, $r, $24r, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, h, i, j, m, methods, name, ok, t, tt, ut, $s};return $f; }; $ptrType(rtype).prototype.PkgPath = function PkgPath() { var t, ut; t = this; - if (((t.tflag & 4) >>> 0) === 0) { + if (((t.t.TFlag & 4) >>> 0) === 0) { return ""; } ut = t.uncommon(); - if (ut === ptrType$9.nil) { + if (ut === ptrType$10.nil) { return ""; } - return $clone(t.nameOff(ut.pkgPath), name).name(); + return $clone(t.nameOff(ut.PkgPath), abi.Name).Name(); }; - $ptrType(rtype).prototype.hasName = function hasName() { + pkgPathFor = function pkgPathFor$1(t) { var t; - t = this; - return !((((t.tflag & 4) >>> 0) === 0)); + return toRType(t).PkgPath(); }; $ptrType(rtype).prototype.Name = function Name() { var _1, i, s, sqBrackets, t; t = this; - if (!t.hasName()) { + if (!t.t.HasName()) { return ""; } s = t.String(); @@ -15248,6 +13335,10 @@ $packages["reflect"] = (function() { } return $substring(s, (i + 1 >> 0)); }; + nameFor = function nameFor$1(t) { + var t; + return toRType(t).Name(); + }; $ptrType(rtype).prototype.ChanDir = function ChanDir$1() { var t, tt; t = this; @@ -15255,38 +13346,20 @@ $packages["reflect"] = (function() { $panic(new $String("reflect: ChanDir of non-chan type " + t.String())); } tt = (t.kindType); - return ((tt.dir >> 0)); + return ((tt.Dir >> 0)); }; - $ptrType(rtype).prototype.IsVariadic = function IsVariadic() { - var t, tt; - t = this; - if (!((t.Kind() === 19))) { - $panic(new $String("reflect: IsVariadic of non-func type " + t.String())); + elem = function elem$1(t) { + var et, t; + et = t.Elem(); + if (!(et === ptrType$4.nil)) { + return et; } - tt = (t.kindType); - return !((((tt.outCount & 32768) >>> 0) === 0)); + $panic(new $String("reflect: Elem of invalid type " + stringFor(t))); }; $ptrType(rtype).prototype.Elem = function Elem() { - var _1, t, tt, tt$1, tt$2, tt$3, tt$4; + var t; t = this; - _1 = t.Kind(); - if (_1 === (17)) { - tt = (t.kindType); - return toType(tt.elem); - } else if (_1 === (18)) { - tt$1 = (t.kindType); - return toType(tt$1.elem); - } else if (_1 === (21)) { - tt$2 = (t.kindType); - return toType(tt$2.elem); - } else if (_1 === (22)) { - tt$3 = (t.kindType); - return toType(tt$3.elem); - } else if (_1 === (23)) { - tt$4 = (t.kindType); - return toType(tt$4.elem); - } - $panic(new $String("reflect: Elem of invalid type " + t.String())); + return toType(elem(t.common())); }; $ptrType(rtype).prototype.Field = function Field(i) { var i, t, tt; @@ -15294,7 +13367,7 @@ $packages["reflect"] = (function() { if (!((t.Kind() === 25))) { $panic(new $String("reflect: Field of non-struct type " + t.String())); } - tt = (t.kindType); + tt = (toKindTypeExt(t)); return tt.Field(i); }; $ptrType(rtype).prototype.FieldByIndex = function FieldByIndex$1(index) { @@ -15304,24 +13377,24 @@ $packages["reflect"] = (function() { if (!((t.Kind() === 25))) { $panic(new $String("reflect: FieldByIndex of non-struct type " + t.String())); } - tt = (t.kindType); + tt = (toKindTypeExt(t)); _r = tt.FieldByIndex(index); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $24r = _r; $s = 2; case 2: return $24r; /* */ } return; } var $f = {$blk: FieldByIndex$1, $c: true, $r, $24r, _r, index, t, tt, $s};return $f; }; - $ptrType(rtype).prototype.FieldByName = function FieldByName$1(name$1) { - var {$24r, _r, name$1, t, tt, $s, $r, $c} = $restore(this, {name$1}); + $ptrType(rtype).prototype.FieldByName = function FieldByName$1(name) { + var {$24r, _r, name, t, tt, $s, $r, $c} = $restore(this, {name}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: t = this; if (!((t.Kind() === 25))) { $panic(new $String("reflect: FieldByName of non-struct type " + t.String())); } - tt = (t.kindType); - _r = tt.FieldByName(name$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + tt = (toKindTypeExt(t)); + _r = tt.FieldByName(name); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $24r = _r; $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: FieldByName$1, $c: true, $r, $24r, _r, name$1, t, tt, $s};return $f; + /* */ } return; } var $f = {$blk: FieldByName$1, $c: true, $r, $24r, _r, name, t, tt, $s};return $f; }; $ptrType(rtype).prototype.FieldByNameFunc = function FieldByNameFunc$1(match) { var {$24r, _r, match, t, tt, $s, $r, $c} = $restore(this, {match}); @@ -15330,29 +13403,20 @@ $packages["reflect"] = (function() { if (!((t.Kind() === 25))) { $panic(new $String("reflect: FieldByNameFunc of non-struct type " + t.String())); } - tt = (t.kindType); + tt = (toKindTypeExt(t)); _r = tt.FieldByNameFunc(match); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $24r = _r; $s = 2; case 2: return $24r; /* */ } return; } var $f = {$blk: FieldByNameFunc$1, $c: true, $r, $24r, _r, match, t, tt, $s};return $f; }; - $ptrType(rtype).prototype.In = function In(i) { - var i, t, tt, x; - t = this; - if (!((t.Kind() === 19))) { - $panic(new $String("reflect: In of non-func type " + t.String())); - } - tt = (t.kindType); - return toType((x = tt.in$(), ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]))); - }; $ptrType(rtype).prototype.Key = function Key$1() { var t, tt; t = this; if (!((t.Kind() === 21))) { $panic(new $String("reflect: Key of non-map type " + t.String())); } - tt = (t.kindType); - return toType(tt.key); + tt = (toKindTypeExt(t)); + return toType(tt.MapType.Key); }; $ptrType(rtype).prototype.Len = function Len() { var t, tt; @@ -15361,7 +13425,7 @@ $packages["reflect"] = (function() { $panic(new $String("reflect: Len of non-array type " + t.String())); } tt = (t.kindType); - return ((tt.len >> 0)); + return ((tt.Len >> 0)); }; $ptrType(rtype).prototype.NumField = function NumField$1() { var t, tt; @@ -15369,8 +13433,17 @@ $packages["reflect"] = (function() { if (!((t.Kind() === 25))) { $panic(new $String("reflect: NumField of non-struct type " + t.String())); } + tt = (toKindTypeExt(t)); + return tt.StructType.Fields.$length; + }; + $ptrType(rtype).prototype.In = function In(i) { + var i, t, tt, x; + t = this; + if (!((t.Kind() === 19))) { + $panic(new $String("reflect: In of non-func type " + t.String())); + } tt = (t.kindType); - return tt.fields.$length; + return toType((x = tt.InSlice(), ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]))); }; $ptrType(rtype).prototype.NumIn = function NumIn() { var t, tt; @@ -15379,7 +13452,7 @@ $packages["reflect"] = (function() { $panic(new $String("reflect: NumIn of non-func type " + t.String())); } tt = (t.kindType); - return ((tt.inCount >> 0)); + return tt.NumIn(); }; $ptrType(rtype).prototype.NumOut = function NumOut() { var t, tt; @@ -15388,7 +13461,7 @@ $packages["reflect"] = (function() { $panic(new $String("reflect: NumOut of non-func type " + t.String())); } tt = (t.kindType); - return tt.out().$length; + return tt.NumOut(); }; $ptrType(rtype).prototype.Out = function Out(i) { var i, t, tt, x; @@ -15397,9 +13470,18 @@ $packages["reflect"] = (function() { $panic(new $String("reflect: Out of non-func type " + t.String())); } tt = (t.kindType); - return toType((x = tt.out(), ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]))); + return toType((x = tt.OutSlice(), ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]))); }; - ChanDir.prototype.String = function String$3() { + $ptrType(rtype).prototype.IsVariadic = function IsVariadic() { + var t, tt; + t = this; + if (!((t.Kind() === 19))) { + $panic(new $String("reflect: IsVariadic of non-func type " + t.String())); + } + tt = (t.kindType); + return tt.IsVariadic(); + }; + ChanDir.prototype.String = function String$2() { var _1, d; d = this.$val; _1 = d; @@ -15415,45 +13497,45 @@ $packages["reflect"] = (function() { $ptrType(ChanDir).prototype.String = function(...$args) { return new ChanDir(this.$get()).String(...$args); }; $ptrType(interfaceType).prototype.Method = function Method$2(i) { var i, m, p, pname, t, x; - m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$2.nil, 0, 0), 0); + m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$4.nil, 0, 0), 0); t = this; - if (i < 0 || i >= t.methods.$length) { + if (i < 0 || i >= t.InterfaceType.Methods.$length) { return m; } - p = (x = t.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - pname = $clone(t.rtype.nameOff(p.name), name); - m.Name = $clone(pname, name).name(); - if (!$clone(pname, name).isExported()) { - m.PkgPath = $clone(pname, name).pkgPath(); + p = (x = t.InterfaceType.Methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + i, ptrType$7))); + pname = $clone(t.nameOff(p.Name), abi.Name); + m.Name = $clone(pname, abi.Name).Name(); + if (!$clone(pname, abi.Name).IsExported()) { + m.PkgPath = pkgPath($clone(pname, abi.Name)); if (m.PkgPath === "") { - m.PkgPath = $clone(t.pkgPath, name).name(); + m.PkgPath = $clone(t.InterfaceType.PkgPath, abi.Name).Name(); } } - m.Type = toType(t.rtype.typeOff(p.typ)); + m.Type = toType(t.typeOff(p.Typ)); m.Index = i; return m; }; $ptrType(interfaceType).prototype.NumMethod = function NumMethod$2() { var t; t = this; - return t.methods.$length; + return t.InterfaceType.Methods.$length; }; - $ptrType(interfaceType).prototype.MethodByName = function MethodByName$2(name$1) { - var _i, _ref, _tmp, _tmp$1, i, m, name$1, ok, p, t, x; - m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$2.nil, 0, 0), 0); + $ptrType(interfaceType).prototype.MethodByName = function MethodByName$2(name) { + var _i, _ref, _tmp, _tmp$1, i, m, name, ok, p, t, x; + m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$4.nil, 0, 0), 0); ok = false; t = this; - if (t === ptrType$10.nil) { + if (t === ptrType$11.nil) { return [m, ok]; } - p = ptrType$11.nil; - _ref = t.methods; + p = ptrType$7.nil; + _ref = t.InterfaceType.Methods; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } i = _i; - p = (x = t.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - if ($clone(t.rtype.nameOff(p.name), name).name() === name$1) { + p = (x = t.InterfaceType.Methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + i, ptrType$7))); + if ($clone(t.nameOff(p.Name), abi.Name).Name() === name) { _tmp = $clone(t.Method(i), Method); _tmp$1 = true; Method.copy(m, _tmp); @@ -15479,7 +13561,7 @@ $packages["reflect"] = (function() { }; $ptrType(StructTag).prototype.Get = function(...$args) { return new StructTag(this.$get()).Get(...$args); }; StructTag.prototype.Lookup = function Lookup(key) { - var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, err, i, key, name$1, ok, qvalue, tag, value, value$1; + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, err, i, key, name, ok, qvalue, tag, value, value$1; value = ""; ok = false; tag = this.$val; @@ -15502,7 +13584,7 @@ $packages["reflect"] = (function() { if ((i === 0) || (i + 1 >> 0) >= tag.length || !((tag.charCodeAt(i) === 58)) || !((tag.charCodeAt((i + 1 >> 0)) === 34))) { break; } - name$1 = ($substring(tag, 0, i)); + name = ($substring(tag, 0, i)); tag = $substring(tag, (i + 1 >> 0)); i = 1; while (true) { @@ -15517,7 +13599,7 @@ $packages["reflect"] = (function() { } qvalue = ($substring(tag, 0, (i + 1 >> 0))); tag = $substring(tag, (i + 1 >> 0)); - if (key === name$1) { + if (key === name) { _tuple = strconv.Unquote(qvalue); value$1 = _tuple[0]; err = _tuple[1]; @@ -15540,32 +13622,32 @@ $packages["reflect"] = (function() { $ptrType(StructTag).prototype.Lookup = function(...$args) { return new StructTag(this.$get()).Lookup(...$args); }; $ptrType(structType).prototype.Field = function Field$1(i) { var f, i, p, t, tag, x; - f = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$8.nil, false); + f = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$6.nil, false); t = this; - if (i < 0 || i >= t.fields.$length) { + if (i < 0 || i >= t.StructType.Fields.$length) { $panic(new $String("reflect: Field index out of bounds")); } - p = (x = t.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - f.Type = toType(p.typ); - f.Name = $clone(p.name, name).name(); - f.Anonymous = p.embedded(); - if (!$clone(p.name, name).isExported()) { - f.PkgPath = $clone(t.pkgPath, name).name(); + p = (x = t.StructType.Fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + i, ptrType$12))); + f.Type = toType(p.Typ); + f.Name = $clone(p.Name, abi.Name).Name(); + f.Anonymous = p.Embedded(); + if (!$clone(p.Name, abi.Name).IsExported()) { + f.PkgPath = $clone(t.StructType.PkgPath, abi.Name).Name(); } - tag = $clone(p.name, name).tag(); + tag = $clone(p.Name, abi.Name).Tag(); if (!(tag === "")) { f.Tag = (tag); } - f.Offset = p.offset; - f.Index = new sliceType$8([i]); + f.Offset = p.Offset; + f.Index = new sliceType$6([i]); return f; }; $ptrType(structType).prototype.FieldByIndex = function FieldByIndex$2(index) { var {_i, _r, _r$1, _r$2, _r$3, _r$4, _ref, _v, f, ft, i, index, t, x, $s, $r, $c} = $restore(this, {index}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - f = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$8.nil, false); + f = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$6.nil, false); t = this; - f.Type = toType(t.rtype); + f.Type = toType(t.StructType.Type); _ref = index; _i = 0; /* while (true) { */ case 1: @@ -15598,15 +13680,15 @@ $packages["reflect"] = (function() { /* */ } return; } var $f = {$blk: FieldByIndex$2, $c: true, $r, _i, _r, _r$1, _r$2, _r$3, _r$4, _ref, _v, f, ft, i, index, t, x, $s};return $f; }; $ptrType(structType).prototype.FieldByNameFunc = function FieldByNameFunc$2(match) { - var {_entry, _entry$1, _entry$2, _entry$3, _i, _i$1, _key, _key$1, _key$2, _key$3, _r, _r$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, count, current, f, fname, i, index, match, next, nextCount, ntyp, ok, result, scan, styp, t, t$1, visited, x, $s, $r, $c} = $restore(this, {match}); + var {_entry, _entry$1, _entry$2, _entry$3, _i, _i$1, _key, _key$1, _key$2, _key$3, _r, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, count, current, f, fname, i, index, match, next, nextCount, ntyp, ok, result, scan, styp, t, t$1, visited, x, $s, $r, $c} = $restore(this, {match}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - result = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$8.nil, false); + result = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$6.nil, false); ok = false; t = this; - current = new sliceType$14([]); - next = new sliceType$14([$clone(new fieldScan.ptr(t, sliceType$8.nil), fieldScan)]); + current = new sliceType$12([]); + next = new sliceType$12([$clone(new fieldScan.ptr(t, sliceType$6.nil), fieldScan)]); nextCount = false; - visited = $makeMap(ptrType$12.keyFor, []); + visited = $makeMap(ptrType$13.keyFor, []); /* while (true) { */ case 1: /* if (!(next.$length > 0)) { break; } */ if(!(next.$length > 0)) { $s = 2; continue; } _tmp = next; @@ -15621,67 +13703,62 @@ $packages["reflect"] = (function() { /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } scan = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), fieldScan); t$1 = scan.typ; - if ((_entry = $mapIndex(visited,ptrType$12.keyFor(t$1)), _entry !== undefined ? _entry.v : false)) { + if ((_entry = $mapIndex(visited,ptrType$13.keyFor(t$1)), _entry !== undefined ? _entry.v : false)) { _i++; /* continue; */ $s = 3; continue; } - _key = t$1; (visited || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$12.keyFor(_key), { k: _key, v: true }); - _ref$1 = t$1.fields; + _key = t$1; (visited || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$13.keyFor(_key), { k: _key, v: true }); + _ref$1 = t$1.StructType.Fields; _i$1 = 0; /* while (true) { */ case 5: /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 6; continue; } i = _i$1; - f = (x = t$1.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - fname = $clone(f.name, name).name(); - ntyp = ptrType$2.nil; - /* */ if (f.embedded()) { $s = 7; continue; } + f = (x = t$1.StructType.Fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + i, ptrType$12))); + fname = $clone(f.Name, abi.Name).Name(); + ntyp = ptrType$4.nil; + if (f.Embedded()) { + ntyp = f.Typ; + if (ntyp.Kind() === 22) { + ntyp = ntyp.Elem(); + } + } + _r = match(fname); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 7; continue; } /* */ $s = 8; continue; - /* if (f.embedded()) { */ case 7: - ntyp = f.typ; - /* */ if (ntyp.Kind() === 22) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (ntyp.Kind() === 22) { */ case 9: - _r = ntyp.Elem().common(); /* */ $s = 11; case 11: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - ntyp = _r; - /* } */ case 10: - /* } */ case 8: - _r$1 = match(fname); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (_r$1) { */ case 12: - if ((_entry$1 = $mapIndex(count,ptrType$12.keyFor(t$1)), _entry$1 !== undefined ? _entry$1.v : 0) > 1 || ok) { - _tmp$2 = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$8.nil, false); + /* if (_r) { */ case 7: + if ((_entry$1 = $mapIndex(count,ptrType$13.keyFor(t$1)), _entry$1 !== undefined ? _entry$1.v : 0) > 1 || ok) { + _tmp$2 = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$6.nil, false); _tmp$3 = false; StructField.copy(result, _tmp$2); ok = _tmp$3; $s = -1; return [result, ok]; } StructField.copy(result, t$1.Field(i)); - result.Index = sliceType$8.nil; + result.Index = sliceType$6.nil; result.Index = $appendSlice(result.Index, scan.index); result.Index = $append(result.Index, i); ok = true; _i$1++; /* continue; */ $s = 5; continue; - /* } */ case 13: - if (ok || ntyp === ptrType$2.nil || !((ntyp.Kind() === 25))) { + /* } */ case 8: + if (ok || ntyp === ptrType$4.nil || !((ntyp.Kind() === 25))) { _i$1++; /* continue; */ $s = 5; continue; } - styp = (ntyp.kindType); - if ((_entry$2 = $mapIndex(nextCount,ptrType$12.keyFor(styp)), _entry$2 !== undefined ? _entry$2.v : 0) > 0) { - _key$1 = styp; (nextCount || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$12.keyFor(_key$1), { k: _key$1, v: 2 }); + styp = (toKindTypeExt(ntyp)); + if ((_entry$2 = $mapIndex(nextCount,ptrType$13.keyFor(styp)), _entry$2 !== undefined ? _entry$2.v : 0) > 0) { + _key$1 = styp; (nextCount || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$13.keyFor(_key$1), { k: _key$1, v: 2 }); _i$1++; /* continue; */ $s = 5; continue; } if (nextCount === false) { - nextCount = $makeMap(ptrType$12.keyFor, []); + nextCount = $makeMap(ptrType$13.keyFor, []); } - _key$2 = styp; (nextCount || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$12.keyFor(_key$2), { k: _key$2, v: 1 }); - if ((_entry$3 = $mapIndex(count,ptrType$12.keyFor(t$1)), _entry$3 !== undefined ? _entry$3.v : 0) > 1) { - _key$3 = styp; (nextCount || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$12.keyFor(_key$3), { k: _key$3, v: 2 }); + _key$2 = styp; (nextCount || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$13.keyFor(_key$2), { k: _key$2, v: 1 }); + if ((_entry$3 = $mapIndex(count,ptrType$13.keyFor(t$1)), _entry$3 !== undefined ? _entry$3.v : 0) > 1) { + _key$3 = styp; (nextCount || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$13.keyFor(_key$3), { k: _key$3, v: 2 }); } - index = sliceType$8.nil; + index = sliceType$6.nil; index = $appendSlice(index, scan.index); index = $append(index, i); next = $append(next, new fieldScan.ptr(styp, index)); @@ -15697,31 +13774,31 @@ $packages["reflect"] = (function() { $s = 1; continue; case 2: $s = -1; return [result, ok]; - /* */ } return; } var $f = {$blk: FieldByNameFunc$2, $c: true, $r, _entry, _entry$1, _entry$2, _entry$3, _i, _i$1, _key, _key$1, _key$2, _key$3, _r, _r$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, count, current, f, fname, i, index, match, next, nextCount, ntyp, ok, result, scan, styp, t, t$1, visited, x, $s};return $f; + /* */ } return; } var $f = {$blk: FieldByNameFunc$2, $c: true, $r, _entry, _entry$1, _entry$2, _entry$3, _i, _i$1, _key, _key$1, _key$2, _key$3, _r, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, count, current, f, fname, i, index, match, next, nextCount, ntyp, ok, result, scan, styp, t, t$1, visited, x, $s};return $f; }; - $ptrType(structType).prototype.FieldByName = function FieldByName$2(name$1) { - var {$24r, _i, _r, _ref, _tmp, _tmp$1, _tuple, f, hasEmbeds, i, name$1, present, t, tf, x, $s, $r, $c} = $restore(this, {name$1}); + $ptrType(structType).prototype.FieldByName = function FieldByName$2(name) { + var {$24r, _i, _r, _ref, _tmp, _tmp$1, _tuple, f, hasEmbeds, i, name, present, t, tf, x, $s, $r, $c} = $restore(this, {name}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - name$1 = [name$1]; - f = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$8.nil, false); + name = [name]; + f = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$6.nil, false); present = false; t = this; hasEmbeds = false; - if (!(name$1[0] === "")) { - _ref = t.fields; + if (!(name[0] === "")) { + _ref = t.StructType.Fields; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } i = _i; - tf = (x = t.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - if ($clone(tf.name, name).name() === name$1[0]) { + tf = (x = t.StructType.Fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + i, ptrType$12))); + if ($clone(tf.Name, abi.Name).Name() === name[0]) { _tmp = $clone(t.Field(i), StructField); _tmp$1 = true; StructField.copy(f, _tmp); present = _tmp$1; $s = -1; return [f, present]; } - if (tf.embedded()) { + if (tf.Embedded()) { hasEmbeds = true; } _i++; @@ -15730,21 +13807,16 @@ $packages["reflect"] = (function() { if (!hasEmbeds) { $s = -1; return [f, present]; } - _r = t.FieldByNameFunc((function(name$1) { return function structType·FieldByName·func1(s) { + _r = t.FieldByNameFunc((function(name) { return function structType·FieldByName·func1(s) { var s; - return s === name$1[0]; - }; })(name$1)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + return s === name[0]; + }; })(name)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; StructField.copy(f, _tuple[0]); present = _tuple[1]; $24r = [f, present]; $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: FieldByName$2, $c: true, $r, $24r, _i, _r, _ref, _tmp, _tmp$1, _tuple, f, hasEmbeds, i, name$1, present, t, tf, x, $s};return $f; - }; - rtypeOf = function rtypeOf$1(i) { - var eface, i; - eface = $clone(i, emptyInterface); - return eface.typ; + /* */ } return; } var $f = {$blk: FieldByName$2, $c: true, $r, $24r, _i, _r, _ref, _tmp, _tmp$1, _tuple, f, hasEmbeds, i, name, present, t, tf, x, $s};return $f; }; PtrTo = function PtrTo$1(t) { var t; @@ -15753,11 +13825,15 @@ $packages["reflect"] = (function() { $pkg.PtrTo = PtrTo; PointerTo = function PointerTo$1(t) { var t; - return $assertType(t, ptrType$2).ptrTo(); + return toRType($assertType(t, ptrType$9).ptrTo()); }; $pkg.PointerTo = PointerTo; + ptrTo = function ptrTo$1(t) { + var t; + return toRType(t).ptrTo(); + }; $ptrType(rtype).prototype.Implements = function Implements(u) { - var {_r, t, u, $s, $r, $c} = $restore(this, {u}); + var {$24r, _r, _r$1, _r$2, t, u, $s, $r, $c} = $restore(this, {u}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: t = this; if ($interfaceIsEqual(u, $ifaceNil)) { @@ -15769,63 +13845,65 @@ $packages["reflect"] = (function() { /* if (!((_r === 20))) { */ case 1: $panic(new $String("reflect: non-interface type passed to Type.Implements")); /* } */ case 2: - $s = -1; return implements$1($assertType(u, ptrType$2), t); - /* */ } return; } var $f = {$blk: Implements, $c: true, $r, _r, t, u, $s};return $f; + _r$1 = u.common(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = implements$1(_r$1, t.common()); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 6; case 6: return $24r; + /* */ } return; } var $f = {$blk: Implements, $c: true, $r, $24r, _r, _r$1, _r$2, t, u, $s};return $f; }; $ptrType(rtype).prototype.AssignableTo = function AssignableTo(u) { - var {$24r, _r, t, u, uu, $s, $r, $c} = $restore(this, {u}); + var {_r, t, u, uu, $s, $r, $c} = $restore(this, {u}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: t = this; if ($interfaceIsEqual(u, $ifaceNil)) { $panic(new $String("reflect: nil type passed to Type.AssignableTo")); } - uu = $assertType(u, ptrType$2); - _r = directlyAssignable(uu, t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r || implements$1(uu, t); - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: AssignableTo, $c: true, $r, $24r, _r, t, u, uu, $s};return $f; + _r = u.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + uu = _r; + $s = -1; return directlyAssignable(uu, t.common()) || implements$1(uu, t.common()); + /* */ } return; } var $f = {$blk: AssignableTo, $c: true, $r, _r, t, u, uu, $s};return $f; }; $ptrType(rtype).prototype.ConvertibleTo = function ConvertibleTo(u) { - var {$24r, _r, t, u, uu, $s, $r, $c} = $restore(this, {u}); + var {$24r, _r, _r$1, t, u, $s, $r, $c} = $restore(this, {u}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: t = this; if ($interfaceIsEqual(u, $ifaceNil)) { $panic(new $String("reflect: nil type passed to Type.ConvertibleTo")); } - uu = $assertType(u, ptrType$2); - _r = convertOp(uu, t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = !(_r === $throwNilPointerError); - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: ConvertibleTo, $c: true, $r, $24r, _r, t, u, uu, $s};return $f; + _r = u.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = convertOp(_r, t.common()); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = !(_r$1 === $throwNilPointerError); + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: ConvertibleTo, $c: true, $r, $24r, _r, _r$1, t, u, $s};return $f; }; implements$1 = function implements$2(T, V) { var T, V, i, i$1, j, j$1, t, tm, tm$1, tmName, tmName$1, tmPkgPath, tmPkgPath$1, v, v$1, vm, vm$1, vmName, vmName$1, vmPkgPath, vmPkgPath$1, vmethods, x, x$1, x$2; if (!((T.Kind() === 20))) { return false; } - t = (T.kindType); - if (t.methods.$length === 0) { + t = (toKindTypeExt(T)); + if (t.InterfaceType.Methods.$length === 0) { return true; } if (V.Kind() === 20) { - v = (V.kindType); + v = (toKindTypeExt(V)); i = 0; j = 0; while (true) { - if (!(j < v.methods.$length)) { break; } - tm = (x = t.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - tmName = $clone(t.rtype.nameOff(tm.name), name); - vm = (x$1 = v.methods, ((j < 0 || j >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + j])); - vmName = $clone(V.nameOff(vm.name), name); - if ($clone(vmName, name).name() === $clone(tmName, name).name() && V.typeOff(vm.typ) === t.rtype.typeOff(tm.typ)) { - if (!$clone(tmName, name).isExported()) { - tmPkgPath = $clone(tmName, name).pkgPath(); + if (!(j < v.InterfaceType.Methods.$length)) { break; } + tm = (x = t.InterfaceType.Methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + i, ptrType$7))); + tmName = $clone(t.nameOff(tm.Name), abi.Name); + vm = (x$1 = v.InterfaceType.Methods, ((j < 0 || j >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + j, ptrType$7))); + vmName = $clone(nameOffFor(V, vm.Name), abi.Name); + if ($clone(vmName, abi.Name).Name() === $clone(tmName, abi.Name).Name() && typeOffFor(V, vm.Typ) === t.typeOff(tm.Typ)) { + if (!$clone(tmName, abi.Name).IsExported()) { + tmPkgPath = pkgPath($clone(tmName, abi.Name)); if (tmPkgPath === "") { - tmPkgPath = $clone(t.pkgPath, name).name(); + tmPkgPath = $clone(t.InterfaceType.PkgPath, abi.Name).Name(); } - vmPkgPath = $clone(vmName, name).pkgPath(); + vmPkgPath = pkgPath($clone(vmName, abi.Name)); if (vmPkgPath === "") { - vmPkgPath = $clone(v.pkgPath, name).name(); + vmPkgPath = $clone(v.InterfaceType.PkgPath, abi.Name).Name(); } if (!(tmPkgPath === vmPkgPath)) { j = j + (1) >> 0; @@ -15833,7 +13911,7 @@ $packages["reflect"] = (function() { } } i = i + (1) >> 0; - if (i >= t.methods.$length) { + if (i >= t.InterfaceType.Methods.$length) { return true; } } @@ -15841,28 +13919,28 @@ $packages["reflect"] = (function() { } return false; } - v$1 = V.uncommon(); - if (v$1 === ptrType$9.nil) { + v$1 = V.Uncommon(); + if (v$1 === ptrType$10.nil) { return false; } i$1 = 0; - vmethods = v$1.methods(); + vmethods = v$1.Methods(); j$1 = 0; while (true) { - if (!(j$1 < ((v$1.mcount >> 0)))) { break; } - tm$1 = (x$2 = t.methods, ((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$1])); - tmName$1 = $clone(t.rtype.nameOff(tm$1.name), name); - vm$1 = $clone(((j$1 < 0 || j$1 >= vmethods.$length) ? ($throwRuntimeError("index out of range"), undefined) : vmethods.$array[vmethods.$offset + j$1]), method); - vmName$1 = $clone(V.nameOff(vm$1.name), name); - if ($clone(vmName$1, name).name() === $clone(tmName$1, name).name() && V.typeOff(vm$1.mtyp) === t.rtype.typeOff(tm$1.typ)) { - if (!$clone(tmName$1, name).isExported()) { - tmPkgPath$1 = $clone(tmName$1, name).pkgPath(); + if (!(j$1 < ((v$1.Mcount >> 0)))) { break; } + tm$1 = (x$2 = t.InterfaceType.Methods, ((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$2.$array, x$2.$offset + i$1, ptrType$7))); + tmName$1 = $clone(t.nameOff(tm$1.Name), abi.Name); + vm$1 = $clone(((j$1 < 0 || j$1 >= vmethods.$length) ? ($throwRuntimeError("index out of range"), undefined) : vmethods.$array[vmethods.$offset + j$1]), abi.Method); + vmName$1 = $clone(nameOffFor(V, vm$1.Name), abi.Name); + if ($clone(vmName$1, abi.Name).Name() === $clone(tmName$1, abi.Name).Name() && typeOffFor(V, vm$1.Mtyp) === t.typeOff(tm$1.Typ)) { + if (!$clone(tmName$1, abi.Name).IsExported()) { + tmPkgPath$1 = pkgPath($clone(tmName$1, abi.Name)); if (tmPkgPath$1 === "") { - tmPkgPath$1 = $clone(t.pkgPath, name).name(); + tmPkgPath$1 = $clone(t.InterfaceType.PkgPath, abi.Name).Name(); } - vmPkgPath$1 = $clone(vmName$1, name).pkgPath(); + vmPkgPath$1 = pkgPath($clone(vmName$1, abi.Name)); if (vmPkgPath$1 === "") { - vmPkgPath$1 = $clone(V.nameOff(v$1.pkgPath), name).name(); + vmPkgPath$1 = $clone(nameOffFor(V, v$1.PkgPath), abi.Name).Name(); } if (!(tmPkgPath$1 === vmPkgPath$1)) { j$1 = j$1 + (1) >> 0; @@ -15870,7 +13948,7 @@ $packages["reflect"] = (function() { } } i$1 = i$1 + (1) >> 0; - if (i$1 >= t.methods.$length) { + if (i$1 >= t.InterfaceType.Methods.$length) { return true; } } @@ -15879,512 +13957,224 @@ $packages["reflect"] = (function() { return false; }; specialChannelAssignability = function specialChannelAssignability$1(T, V) { - var {$24r, T, V, _r, _v, $s, $r, $c} = $restore(this, {T, V}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (!((V.ChanDir() === 3) && (T.Name() === "" || V.Name() === ""))) { _v = false; $s = 1; continue s; } - _r = haveIdenticalType(T.Elem(), V.Elem(), true); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _v = _r; case 1: - $24r = _v; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: specialChannelAssignability$1, $c: true, $r, $24r, T, V, _r, _v, $s};return $f; + var T, V; + return (V.ChanDir() === 3) && (nameFor(T) === "" || nameFor(V) === "") && haveIdenticalType(T.Elem(), V.Elem(), true); }; directlyAssignable = function directlyAssignable$1(T, V) { - var {$24r, T, V, _r, _r$1, _v, $s, $r, $c} = $restore(this, {T, V}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var T, V; if (T === V) { - $s = -1; return true; + return true; } - if (T.hasName() && V.hasName() || !((T.Kind() === V.Kind()))) { - $s = -1; return false; + if (T.HasName() && V.HasName() || !((T.Kind() === V.Kind()))) { + return false; } - if (!(T.Kind() === 18)) { _v = false; $s = 3; continue s; } - _r = specialChannelAssignability(T, V); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _v = _r; case 3: - /* */ if (_v) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (_v) { */ case 1: - $s = -1; return true; - /* } */ case 2: - _r$1 = haveIdenticalUnderlyingType(T, V, true); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 6; case 6: return $24r; - /* */ } return; } var $f = {$blk: directlyAssignable$1, $c: true, $r, $24r, T, V, _r, _r$1, _v, $s};return $f; + if ((T.Kind() === 18) && specialChannelAssignability(T, V)) { + return true; + } + return haveIdenticalUnderlyingType(T, V, true); }; haveIdenticalType = function haveIdenticalType$1(T, V, cmpTags) { - var {$24r, T, V, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _v, _v$1, cmpTags, $s, $r, $c} = $restore(this, {T, V, cmpTags}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var T, V, cmpTags; if (cmpTags) { - $s = -1; return $interfaceIsEqual(T, V); - } - _r = T.Name(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = V.Name(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - if (!(_r === _r$1)) { _v$1 = true; $s = 4; continue s; } - _r$2 = T.Kind(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = V.Kind(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _v$1 = !((_r$2 === _r$3)); case 4: - if (_v$1) { _v = true; $s = 3; continue s; } - _r$4 = T.PkgPath(); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$5 = V.PkgPath(); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _v = !(_r$4 === _r$5); case 3: - /* */ if (_v) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (_v) { */ case 1: - $s = -1; return false; - /* } */ case 2: - _r$6 = T.common(); /* */ $s = 11; case 11: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _arg = _r$6; - _r$7 = V.common(); /* */ $s = 12; case 12: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _arg$1 = _r$7; - _r$8 = haveIdenticalUnderlyingType(_arg, _arg$1, false); /* */ $s = 13; case 13: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - $24r = _r$8; - $s = 14; case 14: return $24r; - /* */ } return; } var $f = {$blk: haveIdenticalType$1, $c: true, $r, $24r, T, V, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _v, _v$1, cmpTags, $s};return $f; + return T === V; + } + if (!(nameFor(T) === nameFor(V)) || !((T.Kind() === V.Kind())) || !(pkgPathFor(T) === pkgPathFor(V))) { + return false; + } + return haveIdenticalUnderlyingType(T, V, false); }; haveIdenticalUnderlyingType = function haveIdenticalUnderlyingType$1(T, V, cmpTags) { - var {$24r, $24r$1, $24r$2, $24r$3, T, V, _1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _v, _v$1, _v$2, cmpTags, i, i$1, i$2, kind$1, t, t$1, t$2, tf, v, v$1, v$2, vf, x, x$1, $s, $r, $c} = $restore(this, {T, V, cmpTags}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var T, V, _1, _i, _ref, cmpTags, i, i$1, i$2, kind$1, t, t$1, t$2, tf, v, v$1, v$2, vf, x, x$1; if (T === V) { - $s = -1; return true; + return true; } - kind$1 = T.Kind(); - if (!((kind$1 === V.Kind()))) { - $s = -1; return false; + kind$1 = ((T.Kind() >>> 0)); + if (!((kind$1 === ((V.Kind() >>> 0))))) { + return false; } if (1 <= kind$1 && kind$1 <= 16 || (kind$1 === 24) || (kind$1 === 26)) { - $s = -1; return true; + return true; } - _1 = kind$1; - /* */ if (_1 === (17)) { $s = 2; continue; } - /* */ if (_1 === (18)) { $s = 3; continue; } - /* */ if (_1 === (19)) { $s = 4; continue; } - /* */ if (_1 === (20)) { $s = 5; continue; } - /* */ if (_1 === (21)) { $s = 6; continue; } - /* */ if ((_1 === (22)) || (_1 === (23))) { $s = 7; continue; } - /* */ if (_1 === (25)) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (_1 === (17)) { */ case 2: - if (!(T.Len() === V.Len())) { _v = false; $s = 10; continue s; } - _r = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 11; case 11: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _v = _r; case 10: - $24r = _v; - $s = 12; case 12: return $24r; - /* } else if (_1 === (18)) { */ case 3: - if (!(V.ChanDir() === T.ChanDir())) { _v$1 = false; $s = 13; continue s; } - _r$1 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v$1 = _r$1; case 13: - $24r$1 = _v$1; - $s = 15; case 15: return $24r$1; - /* } else if (_1 === (19)) { */ case 4: - t = (T.kindType); - v = (V.kindType); - if (!((t.outCount === v.outCount)) || !((t.inCount === v.inCount))) { - $s = -1; return false; + _1 = kind$1; + if (_1 === (17)) { + return (T.Len() === V.Len()) && haveIdenticalType(T.Elem(), V.Elem(), cmpTags); + } else if (_1 === (18)) { + return (V.ChanDir() === T.ChanDir()) && haveIdenticalType(T.Elem(), V.Elem(), cmpTags); + } else if (_1 === (19)) { + t = (T.kindType); + v = (V.kindType); + if (!((t.OutCount === v.OutCount)) || !((t.InCount === v.InCount))) { + return false; + } + i = 0; + while (true) { + if (!(i < t.NumIn())) { break; } + if (!haveIdenticalType(t.In(i), v.In(i), cmpTags)) { + return false; } - i = 0; - /* while (true) { */ case 16: - /* if (!(i < t.rtype.NumIn())) { break; } */ if(!(i < t.rtype.NumIn())) { $s = 17; continue; } - _r$2 = haveIdenticalType(t.rtype.In(i), v.rtype.In(i), cmpTags); /* */ $s = 20; case 20: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (!_r$2) { $s = 18; continue; } - /* */ $s = 19; continue; - /* if (!_r$2) { */ case 18: - $s = -1; return false; - /* } */ case 19: - i = i + (1) >> 0; - $s = 16; continue; - case 17: - i$1 = 0; - /* while (true) { */ case 21: - /* if (!(i$1 < t.rtype.NumOut())) { break; } */ if(!(i$1 < t.rtype.NumOut())) { $s = 22; continue; } - _r$3 = haveIdenticalType(t.rtype.Out(i$1), v.rtype.Out(i$1), cmpTags); /* */ $s = 25; case 25: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (!_r$3) { $s = 23; continue; } - /* */ $s = 24; continue; - /* if (!_r$3) { */ case 23: - $s = -1; return false; - /* } */ case 24: - i$1 = i$1 + (1) >> 0; - $s = 21; continue; - case 22: - $s = -1; return true; - /* } else if (_1 === (20)) { */ case 5: - t$1 = (T.kindType); - v$1 = (V.kindType); - if ((t$1.methods.$length === 0) && (v$1.methods.$length === 0)) { - $s = -1; return true; + i = i + (1) >> 0; + } + i$1 = 0; + while (true) { + if (!(i$1 < t.NumOut())) { break; } + if (!haveIdenticalType(t.Out(i$1), v.Out(i$1), cmpTags)) { + return false; } - $s = -1; return false; - /* } else if (_1 === (21)) { */ case 6: - _r$4 = haveIdenticalType(T.Key(), V.Key(), cmpTags); /* */ $s = 27; case 27: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - if (!(_r$4)) { _v$2 = false; $s = 26; continue s; } - _r$5 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 28; case 28: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _v$2 = _r$5; case 26: - $24r$2 = _v$2; - $s = 29; case 29: return $24r$2; - /* } else if ((_1 === (22)) || (_1 === (23))) { */ case 7: - _r$6 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 30; case 30: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - $24r$3 = _r$6; - $s = 31; case 31: return $24r$3; - /* } else if (_1 === (25)) { */ case 8: - t$2 = (T.kindType); - v$2 = (V.kindType); - if (!((t$2.fields.$length === v$2.fields.$length))) { - $s = -1; return false; + i$1 = i$1 + (1) >> 0; + } + return true; + } else if (_1 === (20)) { + t$1 = (toKindTypeExt(T)); + v$1 = (toKindTypeExt(V)); + if ((t$1.InterfaceType.Methods.$length === 0) && (v$1.InterfaceType.Methods.$length === 0)) { + return true; + } + return false; + } else if (_1 === (21)) { + return haveIdenticalType(T.Key(), V.Key(), cmpTags) && haveIdenticalType(T.Elem(), V.Elem(), cmpTags); + } else if ((_1 === (22)) || (_1 === (23))) { + return haveIdenticalType(T.Elem(), V.Elem(), cmpTags); + } else if (_1 === (25)) { + t$2 = (toKindTypeExt(T)); + v$2 = (toKindTypeExt(V)); + if (!((t$2.StructType.Fields.$length === v$2.StructType.Fields.$length))) { + return false; + } + if (!($clone(t$2.StructType.PkgPath, abi.Name).Name() === $clone(v$2.StructType.PkgPath, abi.Name).Name())) { + return false; + } + _ref = t$2.StructType.Fields; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i$2 = _i; + tf = (x = t$2.StructType.Fields, ((i$2 < 0 || i$2 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + i$2, ptrType$12))); + vf = (x$1 = v$2.StructType.Fields, ((i$2 < 0 || i$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + i$2, ptrType$12))); + if (!($clone(tf.Name, abi.Name).Name() === $clone(vf.Name, abi.Name).Name())) { + return false; } - if (!($clone(t$2.pkgPath, name).name() === $clone(v$2.pkgPath, name).name())) { - $s = -1; return false; + if (!haveIdenticalType(tf.Typ, vf.Typ, cmpTags)) { + return false; } - _ref = t$2.fields; - _i = 0; - /* while (true) { */ case 32: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 33; continue; } - i$2 = _i; - tf = (x = t$2.fields, ((i$2 < 0 || i$2 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i$2])); - vf = (x$1 = v$2.fields, ((i$2 < 0 || i$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$2])); - if (!($clone(tf.name, name).name() === $clone(vf.name, name).name())) { - $s = -1; return false; - } - _r$7 = haveIdenticalType(tf.typ, vf.typ, cmpTags); /* */ $s = 36; case 36: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - /* */ if (!_r$7) { $s = 34; continue; } - /* */ $s = 35; continue; - /* if (!_r$7) { */ case 34: - $s = -1; return false; - /* } */ case 35: - if (cmpTags && !($clone(tf.name, name).tag() === $clone(vf.name, name).tag())) { - $s = -1; return false; - } - if (!((tf.offset === vf.offset))) { - $s = -1; return false; - } - if (!(tf.embedded() === vf.embedded())) { - $s = -1; return false; - } - _i++; - $s = 32; continue; - case 33: - $s = -1; return true; - /* } */ case 9: - case 1: - $s = -1; return false; - /* */ } return; } var $f = {$blk: haveIdenticalUnderlyingType$1, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, T, V, _1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _v, _v$1, _v$2, cmpTags, i, i$1, i$2, kind$1, t, t$1, t$2, tf, v, v$1, v$2, vf, x, x$1, $s};return $f; + if (cmpTags && !($clone(tf.Name, abi.Name).Tag() === $clone(vf.Name, abi.Name).Tag())) { + return false; + } + if (!((tf.Offset === vf.Offset))) { + return false; + } + if (!(tf.Embedded() === vf.Embedded())) { + return false; + } + _i++; + } + return true; + } + return false; + }; + stringFor = function stringFor$1(t) { + var t; + return toRType(t).String(); }; toType = function toType$1(t) { var t; - if (t === ptrType$2.nil) { + if (t === ptrType$4.nil) { return $ifaceNil; } - return t; + return toRType(t); }; ifaceIndir = function ifaceIndir$1(t) { var t; - return ((t.kind & 32) >>> 0) === 0; + return ((t.Kind_ & 32) >>> 0) === 0; }; init = function init$1() { - var {used, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {}); + var {used, x, x$1, x$10, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: used = (function init·func1(i) { var i; }); - $r = used((x = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0), new x.constructor.elem(x))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$1 = new uncommonType.ptr(0, 0, 0, 0, sliceType$13.nil), new x$1.constructor.elem(x$1))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$2 = new method.ptr(0, 0, 0, 0), new x$2.constructor.elem(x$2))); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$3 = new arrayType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0), ptrType$2.nil, ptrType$2.nil, 0), new x$3.constructor.elem(x$3))); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$4 = new chanType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0), ptrType$2.nil, 0), new x$4.constructor.elem(x$4))); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$5 = new funcType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0), 0, 0, sliceType$3.nil, sliceType$3.nil), new x$5.constructor.elem(x$5))); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$6 = new interfaceType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0), new name.ptr(ptrType$13.nil), sliceType$16.nil), new x$6.constructor.elem(x$6))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$7 = new mapType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0), ptrType$2.nil, ptrType$2.nil, ptrType$2.nil, $throwNilPointerError, 0, 0, 0, 0), new x$7.constructor.elem(x$7))); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$8 = new ptrType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0), ptrType$2.nil), new x$8.constructor.elem(x$8))); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$9 = new sliceType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0), ptrType$2.nil), new x$9.constructor.elem(x$9))); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$10 = new structType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0), new name.ptr(ptrType$13.nil), sliceType$17.nil), new x$10.constructor.elem(x$10))); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$11 = new imethod.ptr(0, 0), new x$11.constructor.elem(x$11))); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = used((x$12 = new structField.ptr(new name.ptr(ptrType$13.nil), ptrType$2.nil, 0), new x$12.constructor.elem(x$12))); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - initialized = true; - uint8Type = $assertType(TypeOf(new $Uint8(0)), ptrType$2); - $s = -1; return; - /* */ } return; } var $f = {$blk: init$1, $c: true, $r, used, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; - }; - New = function New$1(typ) { - var fl, pt, ptr, t, typ; - if ($interfaceIsEqual(typ, $ifaceNil)) { + $r = used((x = new rtype.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, abi.NameOff.nil, abi.TypeOff.nil)), new x.constructor.elem(x))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$1 = new abi.UncommonType.ptr(abi.NameOff.nil, 0, 0, sliceType$11.nil), new x$1.constructor.elem(x$1))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$2 = new abi.ArrayType.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, abi.NameOff.nil, abi.TypeOff.nil), ptrType$4.nil, ptrType$4.nil, 0), new x$2.constructor.elem(x$2))); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$3 = new abi.ChanType.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, abi.NameOff.nil, abi.TypeOff.nil), ptrType$4.nil, 0), new x$3.constructor.elem(x$3))); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$4 = new abi.FuncType.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, abi.NameOff.nil, abi.TypeOff.nil), 0, 0, sliceType$13.nil, sliceType$13.nil), new x$4.constructor.elem(x$4))); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$5 = new interfaceType.ptr(new abi.InterfaceType.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, abi.NameOff.nil, abi.TypeOff.nil), new abi.Name.ptr("", "", false, false, ""), sliceType$15.nil)), new x$5.constructor.elem(x$5))); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$6 = new mapType.ptr(new abi.MapType.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, abi.NameOff.nil, abi.TypeOff.nil), ptrType$4.nil, ptrType$4.nil, ptrType$4.nil, $throwNilPointerError, 0, 0, 0, 0)), new x$6.constructor.elem(x$6))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$7 = new ptrType.ptr(new abi.PtrType.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, abi.NameOff.nil, abi.TypeOff.nil), ptrType$4.nil)), new x$7.constructor.elem(x$7))); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$8 = new sliceType.ptr(new abi.SliceType.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, abi.NameOff.nil, abi.TypeOff.nil), ptrType$4.nil)), new x$8.constructor.elem(x$8))); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$9 = new structType.ptr(new abi.StructType.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, abi.NameOff.nil, abi.TypeOff.nil), new abi.Name.ptr("", "", false, false, ""), sliceType$16.nil)), new x$9.constructor.elem(x$9))); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$10 = new abi.StructField.ptr(new abi.Name.ptr("", "", false, false, ""), ptrType$4.nil, 0), new x$10.constructor.elem(x$10))); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used(new funcType$3(toKindTypeExt)); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: init$1, $c: true, $r, used, x, x$1, x$10, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; + }; + New = function New$1(typ$1) { + var fl, pt, ptr, t, typ$1; + if ($interfaceIsEqual(typ$1, $ifaceNil)) { $panic(new $String("reflect: New(nil)")); } - t = $assertType(typ, ptrType$2); - pt = t.ptrTo(); + t = toAbiType(typ$1); + pt = t.PtrTo(); ptr = unsafe_New(t); fl = 22; return new Value.ptr(pt, ptr, fl); }; $pkg.New = New; - jsType = function jsType$1(typ) { - var typ; - return typ.jsType; - }; - reflectType = function reflectType$1(typ) { - var _1, _i, _i$1, _i$2, _i$3, _ref, _ref$1, _ref$2, _ref$3, dir, exported, exported$1, f, fields, i, i$1, i$2, i$3, i$4, i$5, imethods, in$1, m, m$1, m$2, methodSet, methods, out, outCount, params, reflectFields, reflectMethods, results, rt, typ, ut, xcount; - if (typ.reflectType === undefined) { - rt = new rtype.ptr(((($parseInt(typ.size) >> 0) >>> 0)), 0, 0, 0, 0, 0, ((($parseInt(typ.kind) >> 0) << 24 >>> 24)), $throwNilPointerError, ptrType$13.nil, resolveReflectName($clone(newName(internalStr(typ.string), "", !!(typ.exported), false), name)), 0); - rt.jsType = typ; - typ.reflectType = rt; - methodSet = $methodSet(typ); - if (!(($parseInt(methodSet.length) === 0)) || !!(typ.named)) { - rt.tflag = (rt.tflag | (1)) >>> 0; - if (!!(typ.named)) { - rt.tflag = (rt.tflag | (4)) >>> 0; - } - reflectMethods = sliceType$13.nil; - i = 0; - while (true) { - if (!(i < $parseInt(methodSet.length))) { break; } - m = methodSet[i]; - exported = internalStr(m.pkg) === ""; - if (!exported) { - i = i + (1) >> 0; - continue; - } - reflectMethods = $append(reflectMethods, new method.ptr(resolveReflectName($clone(newMethodName(m), name)), newTypeOff(reflectType(m.typ)), 0, 0)); - i = i + (1) >> 0; - } - xcount = ((reflectMethods.$length << 16 >>> 16)); - i$1 = 0; - while (true) { - if (!(i$1 < $parseInt(methodSet.length))) { break; } - m$1 = methodSet[i$1]; - exported$1 = internalStr(m$1.pkg) === ""; - if (exported$1) { - i$1 = i$1 + (1) >> 0; - continue; - } - reflectMethods = $append(reflectMethods, new method.ptr(resolveReflectName($clone(newMethodName(m$1), name)), newTypeOff(reflectType(m$1.typ)), 0, 0)); - i$1 = i$1 + (1) >> 0; - } - ut = new uncommonType.ptr(resolveReflectName($clone(newName(internalStr(typ.pkg), "", false, false), name)), (($parseInt(methodSet.length) << 16 >>> 16)), xcount, 0, reflectMethods); - ut.jsType = typ; - rt.uncommonType = ut; - } - _1 = rt.Kind(); - if (_1 === (17)) { - setKindType(rt, new arrayType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0), reflectType(typ.elem), ptrType$2.nil, ((($parseInt(typ.len) >> 0) >>> 0)))); - } else if (_1 === (18)) { - dir = 3; - if (!!(typ.sendOnly)) { - dir = 2; - } - if (!!(typ.recvOnly)) { - dir = 1; - } - setKindType(rt, new chanType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0), reflectType(typ.elem), ((dir >>> 0)))); - } else if (_1 === (19)) { - params = typ.params; - in$1 = $makeSlice(sliceType$3, $parseInt(params.length)); - _ref = in$1; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i$2 = _i; - ((i$2 < 0 || i$2 >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + i$2] = reflectType(params[i$2])); - _i++; - } - results = typ.results; - out = $makeSlice(sliceType$3, $parseInt(results.length)); - _ref$1 = out; - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - i$3 = _i$1; - ((i$3 < 0 || i$3 >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + i$3] = reflectType(results[i$3])); - _i$1++; - } - outCount = (($parseInt(results.length) << 16 >>> 16)); - if (!!(typ.variadic)) { - outCount = (outCount | (32768)) >>> 0; - } - setKindType(rt, new funcType.ptr($clone(rt, rtype), (($parseInt(params.length) << 16 >>> 16)), outCount, in$1, out)); - } else if (_1 === (20)) { - methods = typ.methods; - imethods = $makeSlice(sliceType$16, $parseInt(methods.length)); - _ref$2 = imethods; - _i$2 = 0; - while (true) { - if (!(_i$2 < _ref$2.$length)) { break; } - i$4 = _i$2; - m$2 = methods[i$4]; - imethod.copy(((i$4 < 0 || i$4 >= imethods.$length) ? ($throwRuntimeError("index out of range"), undefined) : imethods.$array[imethods.$offset + i$4]), new imethod.ptr(resolveReflectName($clone(newMethodName(m$2), name)), newTypeOff(reflectType(m$2.typ)))); - _i$2++; - } - setKindType(rt, new interfaceType.ptr($clone(rt, rtype), $clone(newName(internalStr(typ.pkg), "", false, false), name), imethods)); - } else if (_1 === (21)) { - setKindType(rt, new mapType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0), reflectType(typ.key), reflectType(typ.elem), ptrType$2.nil, $throwNilPointerError, 0, 0, 0, 0)); - } else if (_1 === (22)) { - setKindType(rt, new ptrType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0), reflectType(typ.elem))); - } else if (_1 === (23)) { - setKindType(rt, new sliceType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0), reflectType(typ.elem))); - } else if (_1 === (25)) { - fields = typ.fields; - reflectFields = $makeSlice(sliceType$17, $parseInt(fields.length)); - _ref$3 = reflectFields; - _i$3 = 0; - while (true) { - if (!(_i$3 < _ref$3.$length)) { break; } - i$5 = _i$3; - f = fields[i$5]; - structField.copy(((i$5 < 0 || i$5 >= reflectFields.$length) ? ($throwRuntimeError("index out of range"), undefined) : reflectFields.$array[reflectFields.$offset + i$5]), new structField.ptr($clone(newName(internalStr(f.name), internalStr(f.tag), !!(f.exported), !!(f.embedded)), name), reflectType(f.typ), ((i$5 >>> 0)))); - _i$3++; - } - setKindType(rt, new structType.ptr($clone(rt, rtype), $clone(newName(internalStr(typ.pkgPath), "", false, false), name), reflectFields)); - } - } - return ((typ.reflectType)); - }; - setKindType = function setKindType$1(rt, kindType) { - var kindType, rt; - rt.kindType = kindType; - kindType.rtype = rt; - }; - $ptrType(uncommonType).prototype.methods = function methods() { + jsType = function jsType$1(typ$1) { + var typ$1; + return toAbiType(typ$1).JsType(); + }; + toAbiType = function toAbiType$1(typ$1) { + var typ$1; + return $assertType(typ$1, ptrType$9).common(); + }; + toRType = function toRType$1(t) { + var jrt, rtyp, t; + jrt = t.rType; + if (!(jrt === undefined)) { + return ((jrt)); + } + rtyp = new rtype.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, abi.NameOff.nil, abi.TypeOff.nil)); + rtyp.t = t; + t.rType = rtyp; + rtyp.kindType = t.kindType; + return rtyp; + }; + $ptrType(rtype).prototype.String = function String$3() { var t; t = this; - return t._methods; - }; - $ptrType(uncommonType).prototype.exportedMethods = function exportedMethods$1() { - var t; - t = this; - return $subslice(t._methods, 0, t.xcount, t.xcount); - }; - $ptrType(rtype).prototype.uncommon = function uncommon() { - var obj, t; - t = this; - obj = t.uncommonType; - if (obj === undefined) { - return ptrType$9.nil; - } - return ((obj)); - }; - $ptrType(funcType).prototype.in$ = function in$1() { - var t; - t = this; - return t._in; - }; - $ptrType(funcType).prototype.out = function out() { - var t; - t = this; - return t._out; - }; - $ptrType(name).prototype.name = function name$1() { - var _entry, n, s; - s = ""; - n = this; - s = (_entry = $mapIndex(nameMap,ptrType$13.keyFor(n.bytes)), _entry !== undefined ? _entry.v : ptrType$17.nil).name; - return s; - }; - name.prototype.name = function(...$args) { return this.$val.name(...$args); }; - $ptrType(name).prototype.tag = function tag() { - var _entry, n, s; - s = ""; - n = this; - s = (_entry = $mapIndex(nameMap,ptrType$13.keyFor(n.bytes)), _entry !== undefined ? _entry.v : ptrType$17.nil).tag; - return s; - }; - name.prototype.tag = function(...$args) { return this.$val.tag(...$args); }; - $ptrType(name).prototype.pkgPath = function pkgPath() { - var _entry, n; - n = this; - return (_entry = $mapIndex(nameMap,ptrType$13.keyFor(n.bytes)), _entry !== undefined ? _entry.v : ptrType$17.nil).pkgPath; - }; - name.prototype.pkgPath = function(...$args) { return this.$val.pkgPath(...$args); }; - $ptrType(name).prototype.isExported = function isExported() { - var _entry, n; - n = this; - return (_entry = $mapIndex(nameMap,ptrType$13.keyFor(n.bytes)), _entry !== undefined ? _entry.v : ptrType$17.nil).exported; - }; - name.prototype.isExported = function(...$args) { return this.$val.isExported(...$args); }; - $ptrType(name).prototype.embedded = function embedded$1() { - var _entry, n; - n = this; - return (_entry = $mapIndex(nameMap,ptrType$13.keyFor(n.bytes)), _entry !== undefined ? _entry.v : ptrType$17.nil).embedded; - }; - name.prototype.embedded = function(...$args) { return this.$val.embedded(...$args); }; - newName = function newName$1(n, tag$1, exported, embedded$2) { - var _key, b, embedded$2, exported, n, tag$1; - b = $newDataPointer(0, ptrType$13); - _key = b; (nameMap || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$13.keyFor(_key), { k: _key, v: new nameData.ptr(n, tag$1, exported, embedded$2, "") }); - return new name.ptr(b); + return toAbiType(t).String(); }; - newMethodName = function newMethodName$1(m) { - var _key, b, m; - b = $newDataPointer(0, ptrType$13); - _key = b; (nameMap || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$13.keyFor(_key), { k: _key, v: new nameData.ptr(internalStr(m.name), "", internalStr(m.pkg) === "", false, internalStr(m.pkg)) }); - return new name.ptr(b); + rtypeOf = function rtypeOf$1(i) { + var i; + return abi.ReflectType(i.constructor); }; $ptrType(rtype).prototype.nameOff = function nameOff$1(off) { - var off, t, x; + var off, t; t = this; - return (x = ((off >> 0)), ((x < 0 || x >= nameOffList.$length) ? ($throwRuntimeError("index out of range"), undefined) : nameOffList.$array[nameOffList.$offset + x])); - }; - resolveReflectName = function resolveReflectName$1(n) { - var i, n; - i = nameOffList.$length; - nameOffList = $append(nameOffList, n); - return ((i >> 0)); + return toAbiType(t).NameOff(off); }; $ptrType(rtype).prototype.typeOff = function typeOff$1(off) { - var off, t, x; + var off, t; t = this; - return (x = ((off >> 0)), ((x < 0 || x >= typeOffList.$length) ? ($throwRuntimeError("index out of range"), undefined) : typeOffList.$array[typeOffList.$offset + x])); - }; - newTypeOff = function newTypeOff$1(t) { - var i, t; - i = typeOffList.$length; - typeOffList = $append(typeOffList, t); - return ((i >> 0)); + return toAbiType(t).TypeOff(off); }; - internalStr = function internalStr$1(strObj) { - var c, strObj; - c = new structType$3.ptr(""); - c.str = strObj; - return c.str; - }; - isWrapped = function isWrapped$1(typ) { - var typ; - return !!(jsType(typ).wrapped); - }; - copyStruct = function copyStruct$1(dst, src, typ) { - var dst, fields, i, prop, src, typ; - fields = jsType(typ).fields; - i = 0; - while (true) { - if (!(i < $parseInt(fields.length))) { break; } - prop = $internalize(fields[i].prop, $String); - dst[$externalize(prop, $String)] = src[$externalize(prop, $String)]; - i = i + (1) >> 0; - } + pkgPath = function pkgPath$1(n) { + var n; + return $clone(n, abi.Name).PkgPath(); }; makeValue = function makeValue$1(t, v, fl) { - var {$24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _v, _v$1, fl, rt, t, v, $s, $r, $c} = $restore(this, {t, v, fl}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = t.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - rt = _r; - _r$1 = t.Kind(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - if (_r$1 === 17) { _v$1 = true; $s = 5; continue s; } - _r$2 = t.Kind(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _v$1 = _r$2 === 25; case 5: - if (_v$1) { _v = true; $s = 4; continue s; } - _r$3 = t.Kind(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _v = _r$3 === 22; case 4: - /* */ if (_v) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (_v) { */ case 2: - _r$4 = t.Kind(); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $24r = new Value.ptr(rt, (v), (fl | ((_r$4 >>> 0))) >>> 0); - $s = 10; case 10: return $24r; - /* } */ case 3: - _r$5 = t.Kind(); /* */ $s = 11; case 11: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - $24r$1 = new Value.ptr(rt, ($newDataPointer(v, jsType(rt.ptrTo()))), (((fl | ((_r$5 >>> 0))) >>> 0) | 128) >>> 0); - $s = 12; case 12: return $24r$1; - /* */ } return; } var $f = {$blk: makeValue$1, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _v, _v$1, fl, rt, t, v, $s};return $f; + var _1, fl, t, v; + _1 = t.Kind(); + if ((_1 === (17)) || (_1 === (25)) || (_1 === (22))) { + return new Value.ptr(t, (v), (fl | ((t.Kind() >>> 0))) >>> 0); + } + return new Value.ptr(t, ($newDataPointer(v, t.JsPtrTo())), (((fl | ((t.Kind() >>> 0))) >>> 0) | 128) >>> 0); }; - MakeSlice = function MakeSlice$1(typ, len, cap) { - var {$24r, _r, _r$1, cap, len, typ, $s, $r, $c} = $restore(this, {typ, len, cap}); + MakeSlice = function MakeSlice$1(typ$1, len, cap) { + var {_r, cap, len, typ$1, $s, $r, $c} = $restore(this, {typ$1, len, cap}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - typ = [typ]; - _r = typ[0].Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + typ$1 = [typ$1]; + _r = typ$1[0].Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (!((_r === 23))) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!((_r === 23))) { */ case 1: @@ -16399,49 +14189,40 @@ $packages["reflect"] = (function() { if (len > cap) { $panic(new $String("reflect.MakeSlice: len > cap")); } - _r$1 = makeValue(typ[0], $makeSlice(jsType(typ[0]), len, cap, (function(typ) { return function MakeSlice·func1() { + $s = -1; return makeValue(toAbiType(typ$1[0]), $makeSlice(jsType(typ$1[0]), len, cap, (function(typ$1) { return function MakeSlice·func1() { var {$24r, _r$1, _r$2, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = typ[0].Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1 = typ$1[0].Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _r$2 = jsType(_r$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } $24r = _r$2.zero(); $s = 3; case 3: return $24r; /* */ } return; } var $f = {$blk: MakeSlice·func1, $c: true, $r, $24r, _r$1, _r$2, $s};return $f; - }; })(typ)), 0); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 5; case 5: return $24r; - /* */ } return; } var $f = {$blk: MakeSlice$1, $c: true, $r, $24r, _r, _r$1, cap, len, typ, $s};return $f; + }; })(typ$1)), 0); + /* */ } return; } var $f = {$blk: MakeSlice$1, $c: true, $r, _r, cap, len, typ$1, $s};return $f; }; $pkg.MakeSlice = MakeSlice; TypeOf = function TypeOf$1(i) { var i; - if (!initialized) { - return new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0); - } if ($interfaceIsEqual(i, $ifaceNil)) { return $ifaceNil; } - return reflectType(i.constructor); + return toRType(rtypeOf(i)); }; $pkg.TypeOf = TypeOf; ValueOf = function ValueOf$1(i) { - var {$24r, _r, i, $s, $r, $c} = $restore(this, {i}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var i; if ($interfaceIsEqual(i, $ifaceNil)) { - $s = -1; return new Value.ptr(ptrType$2.nil, 0, 0); + return new Value.ptr(ptrType$4.nil, 0, 0); } - _r = makeValue(reflectType(i.constructor), i.$val, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: ValueOf$1, $c: true, $r, $24r, _r, i, $s};return $f; + return makeValue(rtypeOf(i), i.$val, 0); }; $pkg.ValueOf = ValueOf; - FuncOf = function FuncOf$1(in$2, out$1, variadic) { - var {_i, _i$1, _r, _ref, _ref$1, _v, _v$1, i, i$1, in$2, jsIn, jsOut, out$1, v, v$1, variadic, x, $s, $r, $c} = $restore(this, {in$2, out$1, variadic}); + FuncOf = function FuncOf$1(in$1, out, variadic) { + var {_i, _i$1, _r, _ref, _ref$1, _v, _v$1, i, i$1, in$1, jsIn, jsOut, out, v, v$1, variadic, x, $s, $r, $c} = $restore(this, {in$1, out, variadic}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if (!(variadic)) { _v = false; $s = 3; continue s; } - if (in$2.$length === 0) { _v$1 = true; $s = 4; continue s; } - _r = (x = in$2.$length - 1 >> 0, ((x < 0 || x >= in$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$2.$array[in$2.$offset + x])).Kind(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + if (in$1.$length === 0) { _v$1 = true; $s = 4; continue s; } + _r = (x = in$1.$length - 1 >> 0, ((x < 0 || x >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + x])).Kind(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _v$1 = !((_r === 23)); case 4: _v = _v$1; case 3: /* */ if (_v) { $s = 1; continue; } @@ -16449,8 +14230,8 @@ $packages["reflect"] = (function() { /* if (_v) { */ case 1: $panic(new $String("reflect.FuncOf: last arg of variadic func must be slice")); /* } */ case 2: - jsIn = $makeSlice(sliceType$18, in$2.$length); - _ref = in$2; + jsIn = $makeSlice(sliceType$17, in$1.$length); + _ref = in$1; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } @@ -16459,8 +14240,8 @@ $packages["reflect"] = (function() { ((i < 0 || i >= jsIn.$length) ? ($throwRuntimeError("index out of range"), undefined) : jsIn.$array[jsIn.$offset + i] = jsType(v)); _i++; } - jsOut = $makeSlice(sliceType$18, out$1.$length); - _ref$1 = out$1; + jsOut = $makeSlice(sliceType$17, out.$length); + _ref$1 = out; _i$1 = 0; while (true) { if (!(_i$1 < _ref$1.$length)) { break; } @@ -16469,47 +14250,36 @@ $packages["reflect"] = (function() { ((i$1 < 0 || i$1 >= jsOut.$length) ? ($throwRuntimeError("index out of range"), undefined) : jsOut.$array[jsOut.$offset + i$1] = jsType(v$1)); _i$1++; } - $s = -1; return reflectType($funcType($externalize(jsIn, sliceType$18), $externalize(jsOut, sliceType$18), $externalize(variadic, $Bool))); - /* */ } return; } var $f = {$blk: FuncOf$1, $c: true, $r, _i, _i$1, _r, _ref, _ref$1, _v, _v$1, i, i$1, in$2, jsIn, jsOut, out$1, v, v$1, variadic, x, $s};return $f; + $s = -1; return toRType(abi.ReflectType($funcType($externalize(jsIn, sliceType$17), $externalize(jsOut, sliceType$17), $externalize(variadic, $Bool)))); + /* */ } return; } var $f = {$blk: FuncOf$1, $c: true, $r, _i, _i$1, _r, _ref, _ref$1, _v, _v$1, i, i$1, in$1, jsIn, jsOut, out, v, v$1, variadic, x, $s};return $f; }; $pkg.FuncOf = FuncOf; - $ptrType(rtype).prototype.ptrTo = function ptrTo() { + $ptrType(rtype).prototype.ptrTo = function ptrTo$2() { var t; t = this; - return reflectType($ptrType(jsType(t))); + return abi.ReflectType($ptrType(jsType(t))); }; SliceOf = function SliceOf$1(t) { var t; - return reflectType($sliceType(jsType(t))); + return toRType(abi.ReflectType($sliceType(jsType(t)))); }; $pkg.SliceOf = SliceOf; - Zero = function Zero$1(typ) { - var {$24r, _r, typ, $s, $r, $c} = $restore(this, {typ}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = makeValue(typ, jsType(typ).zero(), 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Zero$1, $c: true, $r, $24r, _r, typ, $s};return $f; + Zero = function Zero$1(typ$1) { + var typ$1; + return makeValue(toAbiType(typ$1), jsType(typ$1).zero(), 0); }; $pkg.Zero = Zero; - unsafe_New = function unsafe_New$1(typ) { - var _1, typ; - _1 = typ.Kind(); - if (_1 === (25)) { - return (new (jsType(typ).ptr)()); - } else if (_1 === (17)) { - return (jsType(typ).zero()); - } else { - return ($newDataPointer(jsType(typ).zero(), jsType(typ.ptrTo()))); - } + unsafe_New = function unsafe_New$1(typ$1) { + var typ$1; + return abi.UnsafeNew(typ$1); }; makeInt = function makeInt$1(f, bits, t) { - var {_1, _r, bits, f, ptr, t, typ, $s, $r, $c} = $restore(this, {f, bits, t}); + var {_1, _r, bits, f, ptr, t, typ$1, $s, $r, $c} = $restore(this, {f, bits, t}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: _r = t.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - typ = _r; - ptr = unsafe_New(typ); - _1 = typ.Kind(); + typ$1 = _r; + ptr = unsafe_New(typ$1); + _1 = typ$1.Kind(); if (_1 === (3)) { (ptr).$set(((bits.$low << 24 >> 24))); } else if (_1 === (4)) { @@ -16527,12 +14297,12 @@ $packages["reflect"] = (function() { } else if (_1 === (11)) { (ptr).$set((bits)); } - $s = -1; return new Value.ptr(typ, ptr, (((f | 128) >>> 0) | ((typ.Kind() >>> 0))) >>> 0); - /* */ } return; } var $f = {$blk: makeInt$1, $c: true, $r, _1, _r, bits, f, ptr, t, typ, $s};return $f; + $s = -1; return new Value.ptr(typ$1, ptr, (((f | 128) >>> 0) | ((typ$1.Kind() >>> 0))) >>> 0); + /* */ } return; } var $f = {$blk: makeInt$1, $c: true, $r, _1, _r, bits, f, ptr, t, typ$1, $s};return $f; }; typedmemmove = function typedmemmove$1(t, dst, src) { var dst, src, t; - dst.$set(src.$get()); + abi.TypedMemMove(t, dst, src); }; keyFor = function keyFor$1(t, key) { var k, key, kv, t; @@ -16540,7 +14310,7 @@ $packages["reflect"] = (function() { if (!(kv.$get === undefined)) { kv = kv.$get(); } - k = jsType(t.Key()).keyFor(kv); + k = t.Key().JsType().keyFor(kv); return [kv, k]; }; mapaccess = function mapaccess$1(t, m, key) { @@ -16554,30 +14324,24 @@ $packages["reflect"] = (function() { if (entry === undefined) { return 0; } - return ($newDataPointer(entry.v, jsType(PtrTo(t.Elem())))); + return ($newDataPointer(entry.v, t.Elem().JsPtrTo())); }; mapassign = function mapassign$1(t, m, key, val) { - var {_r, _tuple, entry, et, jsVal, k, key, kv, m, newVal, t, val, $s, $r, $c} = $restore(this, {t, m, key, val}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var _tuple, entry, et, jsVal, k, key, kv, m, newVal, t, val; _tuple = keyFor(t, key); kv = _tuple[0]; k = _tuple[1]; jsVal = val.$get(); et = t.Elem(); - _r = et.Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - /* */ if (_r === 25) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (_r === 25) { */ case 1: - newVal = jsType(et).zero(); - copyStruct(newVal, jsVal, et); + if (et.Kind() === 25) { + newVal = et.JsType().zero(); + abi.CopyStruct(newVal, jsVal, et); jsVal = newVal; - /* } */ case 2: + } entry = new ($global.Object)(); entry.k = kv; entry.v = jsVal; m.set(k, entry); - $s = -1; return; - /* */ } return; } var $f = {$blk: mapassign$1, $c: true, $r, _r, _tuple, entry, et, jsVal, k, key, kv, m, newVal, t, val, $s};return $f; }; mapdelete = function mapdelete$1(t, m, key) { var _tuple, k, key, m, t; @@ -16595,12 +14359,8 @@ $packages["reflect"] = (function() { return val; }; mapassign_faststr = function mapassign_faststr$1(t, m, key, val) { - var {key, m, t, val, $s, $r, $c} = $restore(this, {t, m, key, val}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - key = [key]; - $r = mapassign(t, m, ((key.$ptr || (key.$ptr = new ptrType$18(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, key)))), val); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: mapassign_faststr$1, $c: true, $r, key, m, t, val, $s};return $f; + var key, key$24ptr, m, t, val; + mapassign(t, m, ((key$24ptr || (key$24ptr = new ptrType$18(function() { return key; }, function($v) { key = $v; })))), val); }; mapdelete_faststr = function mapdelete_faststr$1(t, m, key) { var key, key$24ptr, m, t; @@ -16629,51 +14389,39 @@ $packages["reflect"] = (function() { keys = $global.Array.from(keysIter); } } - hiter.copy(it, new hiter.ptr(t, mapObj, keys, 0, null)); + hiter.copy((it === ptrType$19.nil && $throwNilPointerError(), it), new hiter.ptr(t, mapObj, keys, 0, null)); }; mapiterkey = function mapiterkey$1(it) { - var {$24r, _r, _r$1, _r$2, it, k, kv, $s, $r, $c} = $restore(this, {it}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var it, k, kv; kv = null; if (!(it.last === null)) { kv = it.last; } else { it.skipUntilValidKey(); if (it.i === $parseInt(it.keys.length)) { - $s = -1; return 0; + return 0; } k = it.keys[it.i]; kv = it.m.get(k); it.last = kv; } - _r = it.t.Key(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = PtrTo(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = jsType(_r$1); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = ($newDataPointer(kv.k, _r$2)); - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: mapiterkey$1, $c: true, $r, $24r, _r, _r$1, _r$2, it, k, kv, $s};return $f; + return ($newDataPointer(kv.k, it.t.Key().JsPtrTo())); }; mapiterelem = function mapiterelem$1(it) { - var {$24r, _r, _r$1, _r$2, it, k, kv, $s, $r, $c} = $restore(this, {it}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var it, k, kv; kv = null; if (!(it.last === null)) { kv = it.last; } else { it.skipUntilValidKey(); if (it.i === $parseInt(it.keys.length)) { - $s = -1; return 0; + return 0; } k = it.keys[it.i]; kv = it.m.get(k); it.last = kv; } - _r = it.t.Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = PtrTo(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = jsType(_r$1); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = ($newDataPointer(kv.v, _r$2)); - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: mapiterelem$1, $c: true, $r, $24r, _r, _r$1, _r$2, it, k, kv, $s};return $f; + return ($newDataPointer(kv.v, it.t.Elem().JsPtrTo())); }; mapiternext = function mapiternext$1(it) { var it; @@ -16684,79 +14432,77 @@ $packages["reflect"] = (function() { var m; return $parseInt(m.size) >> 0; }; - cvtDirect = function cvtDirect$1(v, typ) { - var {$24r, $24r$1, _1, _2, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, k, slice, srcVal, typ, v, val, $s, $r, $c} = $restore(this, {v, typ}); + cvtDirect = function cvtDirect$1(v, typ$1) { + var {$24r, _1, _2, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, k, slice, srcVal, typ$1, v, val, $s, $r, $c} = $restore(this, {v, typ$1}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: srcVal = $clone(v, Value).object(); - /* */ if (srcVal === jsType(v.typ).nil) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (srcVal === jsType(v.typ).nil) { */ case 1: - _r = makeValue(typ, jsType(typ).nil, v.flag); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 4; case 4: return $24r; - /* } */ case 2: + if (srcVal === $clone(v, Value).typ().JsType().nil) { + $s = -1; return makeValue(toAbiType(typ$1), jsType(typ$1).nil, v.flag); + } val = null; - _r$1 = typ.Kind(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - k = _r$1; + _r = typ$1.Kind(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + k = _r; _1 = k; - /* */ if (_1 === (23)) { $s = 7; continue; } - /* */ if (_1 === (22)) { $s = 8; continue; } - /* */ if (_1 === (25)) { $s = 9; continue; } - /* */ if ((_1 === (17)) || (_1 === (1)) || (_1 === (18)) || (_1 === (19)) || (_1 === (20)) || (_1 === (21)) || (_1 === (24)) || (_1 === (26))) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (_1 === (23)) { */ case 7: - slice = new (jsType(typ))(srcVal.$array); + /* */ if (_1 === (23)) { $s = 3; continue; } + /* */ if (_1 === (22)) { $s = 4; continue; } + /* */ if (_1 === (25)) { $s = 5; continue; } + /* */ if ((_1 === (17)) || (_1 === (1)) || (_1 === (18)) || (_1 === (19)) || (_1 === (20)) || (_1 === (21)) || (_1 === (24)) || (_1 === (26))) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (_1 === (23)) { */ case 3: + slice = new (jsType(typ$1))(srcVal.$array); slice.$offset = srcVal.$offset; slice.$length = srcVal.$length; slice.$capacity = srcVal.$capacity; - val = $newDataPointer(slice, jsType(PtrTo(typ))); - $s = 12; continue; - /* } else if (_1 === (22)) { */ case 8: - _r$2 = typ.Elem(); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = _r$2.Kind(); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _2 = _r$3; - /* */ if (_2 === (25)) { $s = 16; continue; } - /* */ if (_2 === (17)) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (_2 === (25)) { */ case 16: - _r$4 = typ.Elem(); /* */ $s = 22; case 22: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if ($interfaceIsEqual(_r$4, v.typ.Elem())) { $s = 20; continue; } - /* */ $s = 21; continue; - /* if ($interfaceIsEqual(_r$4, v.typ.Elem())) { */ case 20: + val = $newDataPointer(slice, jsType(PtrTo(typ$1))); + $s = 8; continue; + /* } else if (_1 === (22)) { */ case 4: + _r$1 = typ$1.Elem(); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = _r$1.Kind(); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _2 = _r$2; + /* */ if (_2 === (25)) { $s = 12; continue; } + /* */ if (_2 === (17)) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (_2 === (25)) { */ case 12: + _r$3 = typ$1.Elem(); /* */ $s = 18; case 18: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$4 = toAbiType(_r$3); /* */ $s = 19; case 19: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (_r$4 === $clone(v, Value).typ().Elem()) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (_r$4 === $clone(v, Value).typ().Elem()) { */ case 16: val = srcVal; - /* break; */ $s = 13; continue; - /* } */ case 21: - val = new (jsType(typ))(); + /* break; */ $s = 9; continue; + /* } */ case 17: + val = new (jsType(typ$1))(); _arg = val; _arg$1 = srcVal; - _r$5 = typ.Elem(); /* */ $s = 23; case 23: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _arg$2 = _r$5; - $r = copyStruct(_arg, _arg$1, _arg$2); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 19; continue; - /* } else if (_2 === (17)) { */ case 17: + _r$5 = typ$1.Elem(); /* */ $s = 20; case 20: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$6 = toAbiType(_r$5); /* */ $s = 21; case 21: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _arg$2 = _r$6; + $r = abi.CopyStruct(_arg, _arg$1, _arg$2); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 15; continue; + /* } else if (_2 === (17)) { */ case 13: val = srcVal; - $s = 19; continue; - /* } else { */ case 18: - val = new (jsType(typ))(srcVal.$get, srcVal.$set); - /* } */ case 19: - case 13: - $s = 12; continue; - /* } else if (_1 === (25)) { */ case 9: - val = new (jsType(typ).ptr)(); - copyStruct(val, srcVal, typ); - $s = 12; continue; - /* } else if ((_1 === (17)) || (_1 === (1)) || (_1 === (18)) || (_1 === (19)) || (_1 === (20)) || (_1 === (21)) || (_1 === (24)) || (_1 === (26))) { */ case 10: + $s = 15; continue; + /* } else { */ case 14: + val = new (jsType(typ$1))(srcVal.$get, srcVal.$set, srcVal.$target, srcVal.$index); + /* } */ case 15: + case 9: + $s = 8; continue; + /* } else if (_1 === (25)) { */ case 5: + val = new (jsType(typ$1).ptr)(); + abi.CopyStruct(val, srcVal, toAbiType(typ$1)); + $s = 8; continue; + /* } else if ((_1 === (17)) || (_1 === (1)) || (_1 === (18)) || (_1 === (19)) || (_1 === (20)) || (_1 === (21)) || (_1 === (24)) || (_1 === (26))) { */ case 6: val = v.ptr; - $s = 12; continue; - /* } else { */ case 11: + $s = 8; continue; + /* } else { */ case 7: $panic(new ValueError.ptr("reflect.Convert", k)); - /* } */ case 12: - case 5: - _r$6 = typ.common(); /* */ $s = 25; case 25: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _r$7 = typ.Kind(); /* */ $s = 26; case 26: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - $24r$1 = new Value.ptr(_r$6, (val), (((new flag(v.flag).ro() | ((v.flag & 128) >>> 0)) >>> 0) | ((_r$7 >>> 0))) >>> 0); - $s = 27; case 27: return $24r$1; - /* */ } return; } var $f = {$blk: cvtDirect$1, $c: true, $r, $24r, $24r$1, _1, _2, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, k, slice, srcVal, typ, v, val, $s};return $f; + /* } */ case 8: + case 1: + _r$7 = typ$1.common(); /* */ $s = 23; case 23: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$8 = typ$1.Kind(); /* */ $s = 24; case 24: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + $24r = new Value.ptr(_r$7, (val), (((new flag(v.flag).ro() | ((v.flag & 128) >>> 0)) >>> 0) | ((_r$8 >>> 0))) >>> 0); + $s = 25; case 25: return $24r; + /* */ } return; } var $f = {$blk: cvtDirect$1, $c: true, $r, $24r, _1, _2, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, k, slice, srcVal, typ$1, v, val, $s};return $f; }; cvtSliceArrayPtr = function cvtSliceArrayPtr$1(v, t) { var {$24r, _r, _r$1, _r$2, alen, array, slen, slice, t, v, $s, $r, $c} = $restore(this, {v, t}); @@ -16776,69 +14522,66 @@ $packages["reflect"] = (function() { /* */ } return; } var $f = {$blk: cvtSliceArrayPtr$1, $c: true, $r, $24r, _r, _r$1, _r$2, alen, array, slen, slice, t, v, $s};return $f; }; cvtSliceArray = function cvtSliceArray$1(v, t) { - var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, arr, dst, n, slice, t, v, $s, $r, $c} = $restore(this, {v, t}); + var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, arr, dst, n, slice, t, v, $s, $r, $c} = $restore(this, {v, t}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: _r = t.Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } n = _r; - _r$1 = $clone(v, Value).Len(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (n > _r$1) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (n > _r$1) { */ case 2: - _r$2 = $clone(v, Value).Len(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = itoa.Itoa(_r$2); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $panic(new $String("reflect: cannot convert slice with length " + _r$3 + " to array with length " + itoa.Itoa(n))); - /* } */ case 3: + if (n > $clone(v, Value).Len()) { + $panic(new $String("reflect: cannot convert slice with length " + itoa.Itoa($clone(v, Value).Len()) + " to array with length " + itoa.Itoa(n))); + } slice = $clone(v, Value).object(); - _r$4 = t.Elem(); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$5 = SliceOf(_r$4); /* */ $s = 8; case 8: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$6 = MakeSlice(_r$5, n, n); /* */ $s = 9; case 9: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _r$7 = $clone(_r$6, Value).object(); /* */ $s = 10; case 10: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - dst = _r$7; + _r$1 = t.Elem(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = SliceOf(_r$1); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = MakeSlice(_r$2, n, n); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$4 = $clone(_r$3, Value).object(); /* */ $s = 5; case 5: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + dst = _r$4; $copySlice(dst, slice); arr = dst.$array; - _r$8 = t.common(); /* */ $s = 11; case 11: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - $24r = new Value.ptr(_r$8, (arr), (((v.flag & ~287) >>> 0) | 17) >>> 0); - $s = 12; case 12: return $24r; - /* */ } return; } var $f = {$blk: cvtSliceArray$1, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, arr, dst, n, slice, t, v, $s};return $f; + _r$5 = t.common(); /* */ $s = 6; case 6: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $24r = new Value.ptr(_r$5, (arr), (((v.flag & ~287) >>> 0) | 17) >>> 0); + $s = 7; case 7: return $24r; + /* */ } return; } var $f = {$blk: cvtSliceArray$1, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, arr, dst, n, slice, t, v, $s};return $f; }; - methodReceiver = function methodReceiver$1(op, v, i) { - var _, fn, i, m, m$1, ms, op, prop, rcvr, t, tt, v, x; - _ = ptrType$2.nil; - t = ptrType$19.nil; + methodReceiver = function methodReceiver$1(op, v, methodIndex) { + var fn, i, m, m$1, methodIndex, ms, op, prop, rcvr, rcvrtype, t, tt, v, x; + rcvrtype = ptrType$4.nil; + t = ptrType$20.nil; fn = 0; + i = methodIndex; prop = ""; - if (v.typ.Kind() === 20) { - tt = (v.typ.kindType); - if (i < 0 || i >= tt.methods.$length) { + if ($clone(v, Value).typ().Kind() === 20) { + tt = (toKindTypeExt($clone(v, Value).typ())); + if (i < 0 || i >= tt.InterfaceType.Methods.$length) { $panic(new $String("reflect: internal error: invalid method index")); } - m = (x = tt.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - if (!$clone(tt.rtype.nameOff(m.name), name).isExported()) { + m = (x = tt.InterfaceType.Methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + i, ptrType$7))); + if (!$clone(tt.InterfaceType.Type.NameOff(m.Name), abi.Name).IsExported()) { $panic(new $String("reflect: " + op + " of unexported method")); } - t = (tt.rtype.typeOff(m.typ).kindType); - prop = $clone(tt.rtype.nameOff(m.name), name).name(); + t = (tt.typeOff(m.Typ).kindType); + prop = $clone(tt.InterfaceType.Type.NameOff(m.Name), abi.Name).Name(); } else { - ms = v.typ.exportedMethods(); + rcvrtype = $clone(v, Value).typ(); + ms = $clone(v, Value).typ().ExportedMethods(); if (((i >>> 0)) >= ((ms.$length >>> 0))) { $panic(new $String("reflect: internal error: invalid method index")); } - m$1 = $clone(((i < 0 || i >= ms.$length) ? ($throwRuntimeError("index out of range"), undefined) : ms.$array[ms.$offset + i]), method); - if (!$clone(v.typ.nameOff(m$1.name), name).isExported()) { + m$1 = $clone(((i < 0 || i >= ms.$length) ? ($throwRuntimeError("index out of range"), undefined) : ms.$array[ms.$offset + i]), abi.Method); + if (!$clone($clone(v, Value).typ().NameOff(m$1.Name), abi.Name).IsExported()) { $panic(new $String("reflect: " + op + " of unexported method")); } - t = (v.typ.typeOff(m$1.mtyp).kindType); - prop = $internalize($methodSet(jsType(v.typ))[i].prop, $String); + t = ($clone(v, Value).typ().TypeOff(m$1.Mtyp).kindType); + prop = $internalize($methodSet($clone(v, Value).typ().JsType())[i].prop, $String); } rcvr = $clone(v, Value).object(); - if (isWrapped(v.typ)) { - rcvr = new (jsType(v.typ))(rcvr); + if ($clone(v, Value).typ().IsWrapped()) { + rcvr = new ($clone(v, Value).typ().JsType())(rcvr); } fn = (rcvr[$externalize(prop, $String)]); - return [_, t, fn]; + return [rcvrtype, t, fn]; }; valueInterface = function valueInterface$1(v, safe) { - var {_r, cv, safe, v, $s, $r, $c} = $restore(this, {v, safe}); + var {_r, cv, jsTyp, safe, v, $s, $r, $c} = $restore(this, {v, safe}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: if (v.flag === 0) { $panic(new ValueError.ptr("reflect.Value.Interface", 0)); @@ -16852,20 +14595,21 @@ $packages["reflect"] = (function() { _r = makeMethodValue("Interface", $clone(v, Value)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } v = _r; /* } */ case 2: - if (isWrapped(v.typ)) { + if ($clone(v, Value).typ().IsWrapped()) { + jsTyp = $clone(v, Value).typ().JsType(); if (!((((v.flag & 128) >>> 0) === 0)) && ($clone(v, Value).Kind() === 25)) { - cv = jsType(v.typ).zero(); - copyStruct(cv, $clone(v, Value).object(), v.typ); - $s = -1; return ((new (jsType(v.typ))(cv))); + cv = jsTyp.zero(); + abi.CopyStruct(cv, $clone(v, Value).object(), $clone(v, Value).typ()); + $s = -1; return ((new (jsTyp)(cv))); } - $s = -1; return ((new (jsType(v.typ))($clone(v, Value).object()))); + $s = -1; return ((new (jsTyp)($clone(v, Value).object()))); } $s = -1; return (($clone(v, Value).object())); - /* */ } return; } var $f = {$blk: valueInterface$1, $c: true, $r, _r, cv, safe, v, $s};return $f; + /* */ } return; } var $f = {$blk: valueInterface$1, $c: true, $r, _r, cv, jsTyp, safe, v, $s};return $f; }; ifaceE2I = function ifaceE2I$1(t, src, dst) { var dst, src, t; - dst.$set(src); + abi.IfaceE2I(t, src, dst); }; makeMethodValue = function makeMethodValue$1(op, v) { var {$24r, _r, _tuple, fn, fv, op, rcvr, v, $s, $r, $c} = $restore(this, {op, v}); @@ -16878,137 +14622,100 @@ $packages["reflect"] = (function() { _tuple = methodReceiver(op, $clone(v, Value), ((v.flag >> 0)) >> 10 >> 0); fn[0] = _tuple[2]; rcvr[0] = $clone(v, Value).object(); - if (isWrapped(v.typ)) { - rcvr[0] = new (jsType(v.typ))(rcvr[0]); + if ($clone(v, Value).typ().IsWrapped()) { + rcvr[0] = new ($clone(v, Value).typ().JsType())(rcvr[0]); } fv = js.MakeFunc((function(fn, rcvr) { return function makeMethodValue·func1(this$1, arguments$1) { var arguments$1, this$1; - return new $jsObjectPtr(fn[0].apply(rcvr[0], $externalize(arguments$1, sliceType$18))); + return new $jsObjectPtr(fn[0].apply(rcvr[0], $externalize(arguments$1, sliceType$17))); }; })(fn, rcvr)); _r = $clone(v, Value).Type().common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $24r = new Value.ptr(_r, (fv), (new flag(v.flag).ro() | 19) >>> 0); $s = 2; case 2: return $24r; /* */ } return; } var $f = {$blk: makeMethodValue$1, $c: true, $r, $24r, _r, _tuple, fn, fv, op, rcvr, v, $s};return $f; }; - $ptrType(rtype).prototype.pointers = function pointers() { - var _1, t; - t = this; - _1 = t.Kind(); - if ((_1 === (22)) || (_1 === (21)) || (_1 === (18)) || (_1 === (19)) || (_1 === (25)) || (_1 === (17))) { - return true; - } else { - return false; - } - }; $ptrType(rtype).prototype.Comparable = function Comparable$1() { - var {$24r, _1, _r, _r$1, i, t, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var t; t = this; - _1 = t.Kind(); - /* */ if ((_1 === (19)) || (_1 === (23)) || (_1 === (21))) { $s = 2; continue; } - /* */ if (_1 === (17)) { $s = 3; continue; } - /* */ if (_1 === (25)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if ((_1 === (19)) || (_1 === (23)) || (_1 === (21))) { */ case 2: - $s = -1; return false; - /* } else if (_1 === (17)) { */ case 3: - _r = t.Elem().Comparable(); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 7; case 7: return $24r; - /* } else if (_1 === (25)) { */ case 4: - i = 0; - /* while (true) { */ case 8: - /* if (!(i < t.NumField())) { break; } */ if(!(i < t.NumField())) { $s = 9; continue; } - _r$1 = t.Field(i).Type.Comparable(); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (!_r$1) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (!_r$1) { */ case 10: - $s = -1; return false; - /* } */ case 11: - i = i + (1) >> 0; - $s = 8; continue; - case 9: - /* } */ case 5: - case 1: - $s = -1; return true; - /* */ } return; } var $f = {$blk: Comparable$1, $c: true, $r, $24r, _1, _r, _r$1, i, t, $s};return $f; + return toAbiType(t).Comparable(); }; $ptrType(rtype).prototype.Method = function Method$3(i) { - var {_i, _i$1, _r, _ref, _ref$1, arg, fl, fn, ft, i, in$2, m, methods$1, mt, mtyp, out$1, p, pname, prop, ret, t, tt, $s, $r, $c} = $restore(this, {i}); + var {_i, _i$1, _r, _ref, _ref$1, arg, fl, fn, ft, i, in$1, m, methods, mt, mtyp, out, p, pname, prop, ret, t, tt, $s, $r, $c} = $restore(this, {i}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: prop = [prop]; - m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$2.nil, 0, 0), 0); + m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$4.nil, 0, 0), 0); t = this; if (t.Kind() === 20) { - tt = (t.kindType); + tt = (toKindTypeExt(t)); Method.copy(m, tt.Method(i)); $s = -1; return m; } - methods$1 = t.exportedMethods(); - if (i < 0 || i >= methods$1.$length) { + methods = t.exportedMethods(); + if (i < 0 || i >= methods.$length) { $panic(new $String("reflect: Method index out of range")); } - p = $clone(((i < 0 || i >= methods$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : methods$1.$array[methods$1.$offset + i]), method); - pname = $clone(t.nameOff(p.name), name); - m.Name = $clone(pname, name).name(); + p = $clone(((i < 0 || i >= methods.$length) ? ($throwRuntimeError("index out of range"), undefined) : methods.$array[methods.$offset + i]), abi.Method); + pname = $clone(t.nameOff(p.Name), abi.Name); + m.Name = $clone(pname, abi.Name).Name(); fl = 19; - mtyp = t.typeOff(p.mtyp); + mtyp = t.typeOff(p.Mtyp); ft = (mtyp.kindType); - in$2 = $makeSlice(sliceType$1, 0, (1 + ft.in$().$length >> 0)); - in$2 = $append(in$2, t); - _ref = ft.in$(); + in$1 = $makeSlice(sliceType$1, 0, (1 + ft.NumIn() >> 0)); + in$1 = $append(in$1, t); + _ref = ft.InSlice(); _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - in$2 = $append(in$2, arg); + in$1 = $append(in$1, toRType(arg)); _i++; } - out$1 = $makeSlice(sliceType$1, 0, ft.out().$length); - _ref$1 = ft.out(); + out = $makeSlice(sliceType$1, 0, ft.NumOut()); + _ref$1 = ft.OutSlice(); _i$1 = 0; while (true) { if (!(_i$1 < _ref$1.$length)) { break; } ret = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - out$1 = $append(out$1, ret); + out = $append(out, toRType(ret)); _i$1++; } - _r = FuncOf(in$2, out$1, ft.rtype.IsVariadic()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = FuncOf(in$1, out, ft.IsVariadic()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } mt = _r; m.Type = mt; - prop[0] = $internalize($methodSet(t.jsType)[i].prop, $String); + prop[0] = $internalize($methodSet(jsType(t))[i].prop, $String); fn = js.MakeFunc((function(prop) { return function rtype·Method·func1(this$1, arguments$1) { var arguments$1, rcvr, this$1; rcvr = (0 >= arguments$1.$length ? ($throwRuntimeError("index out of range"), undefined) : arguments$1.$array[arguments$1.$offset + 0]); - return new $jsObjectPtr(rcvr[$externalize(prop[0], $String)].apply(rcvr, $externalize($subslice(arguments$1, 1), sliceType$18))); + return new $jsObjectPtr(rcvr[$externalize(prop[0], $String)].apply(rcvr, $externalize($subslice(arguments$1, 1), sliceType$17))); }; })(prop)); - m.Func = new Value.ptr($assertType(mt, ptrType$2), (fn), fl); + m.Func = new Value.ptr(toAbiType(mt), (fn), fl); m.Index = i; Method.copy(m, m); $s = -1; return m; - /* */ } return; } var $f = {$blk: Method$3, $c: true, $r, _i, _i$1, _r, _ref, _ref$1, arg, fl, fn, ft, i, in$2, m, methods$1, mt, mtyp, out$1, p, pname, prop, ret, t, tt, $s};return $f; + /* */ } return; } var $f = {$blk: Method$3, $c: true, $r, _i, _i$1, _r, _ref, _ref$1, arg, fl, fn, ft, i, in$1, m, methods, mt, mtyp, out, p, pname, prop, ret, t, tt, $s};return $f; }; $ptrType(Value).prototype.object = function object() { - var _1, newVal, v, val; + var _1, jsTyp, newVal, v, val; v = this; - if ((v.typ.Kind() === 17) || (v.typ.Kind() === 25)) { + if (($clone(v, Value).typ().Kind() === 17) || ($clone(v, Value).typ().Kind() === 25)) { return v.ptr; } + jsTyp = $clone(v, Value).typ().JsType(); if (!((((v.flag & 128) >>> 0) === 0))) { val = v.ptr.$get(); - if (!(val === $ifaceNil) && !(val.constructor === jsType(v.typ))) { + if (!(val === $ifaceNil) && !(val.constructor === jsTyp)) { switch (0) { default: - _1 = v.typ.Kind(); + _1 = $clone(v, Value).typ().Kind(); if ((_1 === (11)) || (_1 === (6))) { - val = new (jsType(v.typ))(val.$high, val.$low); + val = new (jsTyp)(val.$high, val.$low); } else if ((_1 === (15)) || (_1 === (16))) { - val = new (jsType(v.typ))(val.$real, val.$imag); + val = new (jsTyp)(val.$real, val.$imag); } else if (_1 === (23)) { if (val === val.constructor.nil) { - val = jsType(v.typ).nil; + val = jsTyp.nil; break; } - newVal = new (jsType(v.typ))(val.$array); + newVal = new (jsTyp)(val.$array); newVal.$offset = val.$offset; newVal.$length = val.$length; newVal.$capacity = val.$capacity; @@ -17022,7 +14729,7 @@ $packages["reflect"] = (function() { }; Value.prototype.object = function(...$args) { return this.$val.object(...$args); }; $ptrType(Value).prototype.assignTo = function assignTo(context, dst, target) { - var {_r, _r$1, _r$2, context, dst, fl, target, v, x, $s, $r, $c} = $restore(this, {context, dst, target}); + var {_r, _r$1, context, dst, fl, target, v, x, $s, $r, $c} = $restore(this, {context, dst, target}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: v = this; /* */ if (!((((v.flag & 512) >>> 0) === 0))) { $s = 1; continue; } @@ -17031,20 +14738,19 @@ $packages["reflect"] = (function() { _r = makeMethodValue(context, $clone(v, Value)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } v = _r; /* } */ case 2: - _r$1 = directlyAssignable(dst, v.typ); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 5; continue; } - /* */ if (implements$1(dst, v.typ)) { $s = 6; continue; } + /* */ if (directlyAssignable(dst, $clone(v, Value).typ())) { $s = 5; continue; } + /* */ if (implements$1(dst, $clone(v, Value).typ())) { $s = 6; continue; } /* */ $s = 7; continue; - /* if (_r$1) { */ case 5: + /* if (directlyAssignable(dst, $clone(v, Value).typ())) { */ case 5: fl = (((v.flag & 384) >>> 0) | new flag(v.flag).ro()) >>> 0; fl = (fl | (((dst.Kind() >>> 0)))) >>> 0; $s = -1; return new Value.ptr(dst, v.ptr, fl); - /* } else if (implements$1(dst, v.typ)) { */ case 6: + /* } else if (implements$1(dst, $clone(v, Value).typ())) { */ case 6: if (target === 0) { target = unsafe_New(dst); } - _r$2 = valueInterface($clone(v, Value), false); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - x = _r$2; + _r$1 = valueInterface($clone(v, Value), false); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + x = _r$1; if (dst.NumMethod() === 0) { (target).$set(x); } else { @@ -17053,16 +14759,16 @@ $packages["reflect"] = (function() { $s = -1; return new Value.ptr(dst, target, 148); /* } */ case 7: case 4: - $panic(new $String(context + ": value of type " + v.typ.String() + " is not assignable to type " + dst.String())); - $s = -1; return new Value.ptr(ptrType$2.nil, 0, 0); - /* */ } return; } var $f = {$blk: assignTo, $c: true, $r, _r, _r$1, _r$2, context, dst, fl, target, v, x, $s};return $f; + $panic(new $String(context + ": value of type " + $clone(v, Value).typ().String() + " is not assignable to type " + dst.String())); + $s = -1; return new Value.ptr(ptrType$4.nil, 0, 0); + /* */ } return; } var $f = {$blk: assignTo, $c: true, $r, _r, _r$1, context, dst, fl, target, v, x, $s};return $f; }; Value.prototype.assignTo = function(...$args) { return this.$val.assignTo(...$args); }; - $ptrType(Value).prototype.call = function call$2(op, in$2) { - var {$24r, _1, _arg, _arg$1, _arg$2, _arg$3, _i, _i$1, _i$2, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tmp, _tmp$1, _tuple, arg, argsArray, elem, fn, i, i$1, i$2, i$3, in$2, isSlice, m, n, nin, nout, op, origIn, rcvr, results, ret, slice, t, targ, v, x, x$1, x$2, xt, xt$1, $s, $r, $c} = $restore(this, {op, in$2}); + $ptrType(Value).prototype.call = function call$2(op, in$1) { + var {_1, _arg, _arg$1, _i, _i$1, _i$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _ref$1, _ref$2, _tmp, _tmp$1, _tuple, arg, argsArray, elem$2, fn, i, i$1, i$2, i$3, in$1, isSlice, m, n, nin, nout, op, origIn, rcvr, results, ret, slice, t, targ, v, x, x$1, x$2, xt, xt$1, $s, $r, $c} = $restore(this, {op, in$1}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: v = this; - t = ptrType$19.nil; + t = ptrType$20.nil; fn = 0; rcvr = null; if (!((((v.flag & 512) >>> 0) === 0))) { @@ -17070,11 +14776,11 @@ $packages["reflect"] = (function() { t = _tuple[1]; fn = _tuple[2]; rcvr = $clone(v, Value).object(); - if (isWrapped(v.typ)) { - rcvr = new (jsType(v.typ))(rcvr); + if ($clone(v, Value).typ().IsWrapped()) { + rcvr = new ($clone(v, Value).typ().JsType())(rcvr); } } else { - t = (v.typ.kindType); + t = ($clone(v, Value).typ().kindType); fn = ($clone(v, Value).object()); rcvr = undefined; } @@ -17082,29 +14788,29 @@ $packages["reflect"] = (function() { $panic(new $String("reflect.Value.Call: call of nil function")); } isSlice = op === "CallSlice"; - n = t.rtype.NumIn(); + n = t.NumIn(); if (isSlice) { - if (!t.rtype.IsVariadic()) { + if (!t.IsVariadic()) { $panic(new $String("reflect: CallSlice of non-variadic function")); } - if (in$2.$length < n) { + if (in$1.$length < n) { $panic(new $String("reflect: CallSlice with too few input arguments")); } - if (in$2.$length > n) { + if (in$1.$length > n) { $panic(new $String("reflect: CallSlice with too many input arguments")); } } else { - if (t.rtype.IsVariadic()) { + if (t.IsVariadic()) { n = n - (1) >> 0; } - if (in$2.$length < n) { + if (in$1.$length < n) { $panic(new $String("reflect: Call with too few input arguments")); } - if (!t.rtype.IsVariadic() && in$2.$length > n) { + if (!t.IsVariadic() && in$1.$length > n) { $panic(new $String("reflect: Call with too many input arguments")); } } - _ref = in$2; + _ref = in$1; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } @@ -17117,8 +14823,8 @@ $packages["reflect"] = (function() { i = 0; /* while (true) { */ case 1: /* if (!(i < n)) { break; } */ if(!(i < n)) { $s = 2; continue; } - _tmp = $clone(((i < 0 || i >= in$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$2.$array[in$2.$offset + i]), Value).Type(); - _tmp$1 = t.rtype.In(i); + _tmp = $clone(((i < 0 || i >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + i]), Value).Type(); + _tmp$1 = toRType(t.In(i)); xt = _tmp; targ = _tmp$1; _r = xt.AssignableTo(targ); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } @@ -17126,298 +14832,191 @@ $packages["reflect"] = (function() { /* */ $s = 4; continue; /* if (!_r) { */ case 3: _r$1 = xt.String(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = targ.String(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $panic(new $String("reflect: " + op + " using " + _r$1 + " as type " + _r$2)); + $panic(new $String("reflect: " + op + " using " + _r$1 + " as type " + targ.String())); /* } */ case 4: i = i + (1) >> 0; $s = 1; continue; case 2: - /* */ if (!isSlice && t.rtype.IsVariadic()) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (!isSlice && t.rtype.IsVariadic()) { */ case 8: - m = in$2.$length - n >> 0; - _r$3 = MakeSlice(t.rtype.In(n), m, m); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - slice = _r$3; - _r$4 = t.rtype.In(n).Elem(); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - elem = _r$4; + /* */ if (!isSlice && t.IsVariadic()) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!isSlice && t.IsVariadic()) { */ case 7: + m = in$1.$length - n >> 0; + _r$2 = MakeSlice(toRType(t.In(n)), m, m); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + slice = _r$2; + elem$2 = toRType(t.In(n).Elem()); i$1 = 0; - /* while (true) { */ case 12: - /* if (!(i$1 < m)) { break; } */ if(!(i$1 < m)) { $s = 13; continue; } - x$2 = (x$1 = n + i$1 >> 0, ((x$1 < 0 || x$1 >= in$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$2.$array[in$2.$offset + x$1])); + /* while (true) { */ case 10: + /* if (!(i$1 < m)) { break; } */ if(!(i$1 < m)) { $s = 11; continue; } + x$2 = (x$1 = n + i$1 >> 0, ((x$1 < 0 || x$1 >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + x$1])); xt$1 = $clone(x$2, Value).Type(); - _r$5 = xt$1.AssignableTo(elem); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* */ if (!_r$5) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (!_r$5) { */ case 14: - _r$6 = xt$1.String(); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _r$7 = elem.String(); /* */ $s = 18; case 18: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - $panic(new $String("reflect: cannot use " + _r$6 + " as type " + _r$7 + " in " + op)); - /* } */ case 15: - _r$8 = $clone(slice, Value).Index(i$1); /* */ $s = 19; case 19: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - $r = $clone(_r$8, Value).Set($clone(x$2, Value)); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$3 = xt$1.AssignableTo(elem$2); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!_r$3) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (!_r$3) { */ case 12: + _r$4 = xt$1.String(); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $panic(new $String("reflect: cannot use " + _r$4 + " as type " + elem$2.String() + " in " + op)); + /* } */ case 13: + $r = $clone($clone(slice, Value).Index(i$1), Value).Set($clone(x$2, Value)); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } i$1 = i$1 + (1) >> 0; - $s = 12; continue; - case 13: - origIn = in$2; - in$2 = $makeSlice(sliceType$10, (n + 1 >> 0)); - $copySlice($subslice(in$2, 0, n), origIn); - ((n < 0 || n >= in$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$2.$array[in$2.$offset + n] = slice); - /* } */ case 9: - nin = in$2.$length; - if (!((nin === t.rtype.NumIn()))) { + $s = 10; continue; + case 11: + origIn = in$1; + in$1 = $makeSlice(sliceType$8, (n + 1 >> 0)); + $copySlice($subslice(in$1, 0, n), origIn); + ((n < 0 || n >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + n] = slice); + /* } */ case 8: + nin = in$1.$length; + if (!((nin === t.NumIn()))) { $panic(new $String("reflect.Value.Call: wrong argument count")); } - nout = t.rtype.NumOut(); - argsArray = new ($global.Array)(t.rtype.NumIn()); - _ref$1 = in$2; + nout = t.NumOut(); + argsArray = new ($global.Array)(t.NumIn()); + _ref$1 = in$1; _i$1 = 0; - /* while (true) { */ case 21: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 22; continue; } + /* while (true) { */ case 17: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 18; continue; } i$2 = _i$1; arg = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - _arg = t.rtype.In(i$2); - _r$9 = t.rtype.In(i$2).common(); /* */ $s = 23; case 23: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _arg$1 = _r$9; - _arg$2 = 0; - _r$10 = $clone(arg, Value).assignTo("reflect.Value.Call", _arg$1, _arg$2); /* */ $s = 24; case 24: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _r$11 = $clone(_r$10, Value).object(); /* */ $s = 25; case 25: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _arg$3 = _r$11; - _r$12 = unwrapJsObject(_arg, _arg$3); /* */ $s = 26; case 26: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - argsArray[i$2] = _r$12; + _arg = t.In(i$2); + _r$5 = $clone(arg, Value).assignTo("reflect.Value.Call", t.In(i$2), 0); /* */ $s = 19; case 19: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$6 = $clone(_r$5, Value).object(); /* */ $s = 20; case 20: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _arg$1 = _r$6; + _r$7 = abi.UnwrapJsObject(_arg, _arg$1); /* */ $s = 21; case 21: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + argsArray[i$2] = _r$7; _i$1++; - $s = 21; continue; - case 22: - _r$13 = callHelper(new sliceType$6([new $jsObjectPtr(fn), new $jsObjectPtr(rcvr), new $jsObjectPtr(argsArray)])); /* */ $s = 27; case 27: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - results = _r$13; - _1 = nout; - /* */ if (_1 === (0)) { $s = 29; continue; } - /* */ if (_1 === (1)) { $s = 30; continue; } - /* */ $s = 31; continue; - /* if (_1 === (0)) { */ case 29: - $s = -1; return sliceType$10.nil; - /* } else if (_1 === (1)) { */ case 30: - _r$14 = makeValue(t.rtype.Out(0), wrapJsObject(t.rtype.Out(0), results), 0); /* */ $s = 33; case 33: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - $24r = new sliceType$10([$clone(_r$14, Value)]); - $s = 34; case 34: return $24r; - /* } else { */ case 31: - ret = $makeSlice(sliceType$10, nout); - _ref$2 = ret; - _i$2 = 0; - /* while (true) { */ case 35: - /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 36; continue; } - i$3 = _i$2; - _r$15 = makeValue(t.rtype.Out(i$3), wrapJsObject(t.rtype.Out(i$3), results[i$3]), 0); /* */ $s = 37; case 37: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - ((i$3 < 0 || i$3 >= ret.$length) ? ($throwRuntimeError("index out of range"), undefined) : ret.$array[ret.$offset + i$3] = _r$15); - _i$2++; - $s = 35; continue; - case 36: - $s = -1; return ret; - /* } */ case 32: - case 28: - $s = -1; return sliceType$10.nil; - /* */ } return; } var $f = {$blk: call$2, $c: true, $r, $24r, _1, _arg, _arg$1, _arg$2, _arg$3, _i, _i$1, _i$2, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tmp, _tmp$1, _tuple, arg, argsArray, elem, fn, i, i$1, i$2, i$3, in$2, isSlice, m, n, nin, nout, op, origIn, rcvr, results, ret, slice, t, targ, v, x, x$1, x$2, xt, xt$1, $s};return $f; + $s = 17; continue; + case 18: + _r$8 = callHelper(new sliceType$4([new $jsObjectPtr(fn), new $jsObjectPtr(rcvr), new $jsObjectPtr(argsArray)])); /* */ $s = 22; case 22: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + results = _r$8; + _1 = nout; + if (_1 === (0)) { + $s = -1; return sliceType$8.nil; + } else if (_1 === (1)) { + $s = -1; return new sliceType$8([$clone(makeValue(t.Out(0), abi.WrapJsObject(t.Out(0), results), 0), Value)]); + } else { + ret = $makeSlice(sliceType$8, nout); + _ref$2 = ret; + _i$2 = 0; + while (true) { + if (!(_i$2 < _ref$2.$length)) { break; } + i$3 = _i$2; + ((i$3 < 0 || i$3 >= ret.$length) ? ($throwRuntimeError("index out of range"), undefined) : ret.$array[ret.$offset + i$3] = makeValue(t.Out(i$3), abi.WrapJsObject(t.Out(i$3), results[i$3]), 0)); + _i$2++; + } + $s = -1; return ret; + } + $s = -1; return sliceType$8.nil; + /* */ } return; } var $f = {$blk: call$2, $c: true, $r, _1, _arg, _arg$1, _i, _i$1, _i$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _ref$1, _ref$2, _tmp, _tmp$1, _tuple, arg, argsArray, elem$2, fn, i, i$1, i$2, i$3, in$1, isSlice, m, n, nin, nout, op, origIn, rcvr, results, ret, slice, t, targ, v, x, x$1, x$2, xt, xt$1, $s};return $f; }; Value.prototype.call = function(...$args) { return this.$val.call(...$args); }; + $ptrType(Value).prototype.Type = function Type$1() { + var v; + v = this; + if (!((v.flag === 0)) && (((v.flag & 512) >>> 0) === 0)) { + return toRType(v.typ_); + } + return $clone(v, Value).typeSlow(); + }; + Value.prototype.Type = function(...$args) { return this.$val.Type(...$args); }; $ptrType(Value).prototype.Cap = function Cap() { - var {$24r, _1, _r, _r$1, k, v, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var _1, k, v; v = this; k = new flag(v.flag).kind(); - _1 = k; - /* */ if (_1 === (17)) { $s = 2; continue; } - /* */ if ((_1 === (18)) || (_1 === (23))) { $s = 3; continue; } - /* */ if (_1 === (22)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_1 === (17)) { */ case 2: - $s = -1; return v.typ.Len(); - /* } else if ((_1 === (18)) || (_1 === (23))) { */ case 3: - $s = -1; return $parseInt($clone(v, Value).object().$capacity) >> 0; - /* } else if (_1 === (22)) { */ case 4: - _r = v.typ.Elem().Kind(); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - /* */ if (_r === 17) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (_r === 17) { */ case 6: - _r$1 = v.typ.Elem().Len(); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 10; case 10: return $24r; - /* } */ case 7: - $panic(new $String("reflect: call of reflect.Value.Cap on ptr to non-array Value")); - /* } */ case 5: - case 1: + _1 = k; + if (_1 === (17)) { + return $clone(v, Value).typ().Len(); + } else if ((_1 === (18)) || (_1 === (23))) { + return $parseInt($clone(v, Value).object().$capacity) >> 0; + } else if (_1 === (22)) { + if ($clone(v, Value).typ().Elem().Kind() === 17) { + return $clone(v, Value).typ().Elem().Len(); + } + $panic(new $String("reflect: call of reflect.Value.Cap on ptr to non-array Value")); + } $panic(new ValueError.ptr("reflect.Value.Cap", k)); - $s = -1; return 0; - /* */ } return; } var $f = {$blk: Cap, $c: true, $r, $24r, _1, _r, _r$1, k, v, $s};return $f; }; Value.prototype.Cap = function(...$args) { return this.$val.Cap(...$args); }; - wrapJsObject = function wrapJsObject$1(typ, val) { - var typ, val; - if ($interfaceIsEqual(typ, jsObjectPtr)) { - return new (jsType(jsObjectPtr))(val); - } - return val; - }; - unwrapJsObject = function unwrapJsObject$1(typ, val) { - var typ, val; - if ($interfaceIsEqual(typ, jsObjectPtr)) { - return val.object; - } - return val; - }; $ptrType(Value).prototype.Elem = function Elem$1() { - var {$24r, _1, _r, fl, k, tt, typ, v, val, val$1, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var _1, fl, k, tt, typ$1, v, val, val$1; v = this; - k = new flag(v.flag).kind(); - _1 = k; - /* */ if (_1 === (20)) { $s = 2; continue; } - /* */ if (_1 === (22)) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (_1 === (20)) { */ case 2: - val = $clone(v, Value).object(); - if (val === $ifaceNil) { - $s = -1; return new Value.ptr(ptrType$2.nil, 0, 0); - } - typ = reflectType(val.constructor); - _r = makeValue(typ, val.$val, new flag(v.flag).ro()); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 7; case 7: return $24r; - /* } else if (_1 === (22)) { */ case 3: - if ($clone(v, Value).IsNil()) { - $s = -1; return new Value.ptr(ptrType$2.nil, 0, 0); - } - val$1 = $clone(v, Value).object(); - tt = (v.typ.kindType); - fl = (((((v.flag & 96) >>> 0) | 128) >>> 0) | 256) >>> 0; - fl = (fl | (((tt.elem.Kind() >>> 0)))) >>> 0; - $s = -1; return new Value.ptr(tt.elem, (wrapJsObject(tt.elem, val$1)), fl); - /* } else { */ case 4: - $panic(new ValueError.ptr("reflect.Value.Elem", k)); - /* } */ case 5: - case 1: - $s = -1; return new Value.ptr(ptrType$2.nil, 0, 0); - /* */ } return; } var $f = {$blk: Elem$1, $c: true, $r, $24r, _1, _r, fl, k, tt, typ, v, val, val$1, $s};return $f; + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (20)) { + val = $clone(v, Value).object(); + if (val === $ifaceNil) { + return new Value.ptr(ptrType$4.nil, 0, 0); + } + typ$1 = abi.ReflectType(val.constructor); + return makeValue(typ$1, val.$val, new flag(v.flag).ro()); + } else if (_1 === (22)) { + if ($clone(v, Value).IsNil()) { + return new Value.ptr(ptrType$4.nil, 0, 0); + } + val$1 = $clone(v, Value).object(); + tt = (toKindTypeExt($clone(v, Value).typ())); + fl = (((((v.flag & 96) >>> 0) | 128) >>> 0) | 256) >>> 0; + fl = (fl | (((tt.PtrType.Elem.Kind() >>> 0)))) >>> 0; + return new Value.ptr(tt.PtrType.Elem, (abi.WrapJsObject(tt.PtrType.Elem, val$1)), fl); + } else { + $panic(new ValueError.ptr("reflect.Value.Elem", k)); + } }; Value.prototype.Elem = function(...$args) { return this.$val.Elem(...$args); }; $ptrType(Value).prototype.Field = function Field$2(i) { - var {$24r, _r, _r$1, _r$2, field, fl, i, jsTag, o, prop, s, tag$1, tt, typ, v, x, x$1, $s, $r, $c} = $restore(this, {i}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - jsTag = [jsTag]; - prop = [prop]; - s = [s]; - typ = [typ]; + var field, fl, i, jsTag, o, prop, s, tag, tt, typ$1, v, x, x$1; v = this; if (!((new flag(v.flag).kind() === 25))) { $panic(new ValueError.ptr("reflect.Value.Field", new flag(v.flag).kind())); } - tt = (v.typ.kindType); - if (((i >>> 0)) >= ((tt.fields.$length >>> 0))) { + tt = (toKindTypeExt($clone(v, Value).typ())); + if (((i >>> 0)) >= ((tt.StructType.Fields.$length >>> 0))) { $panic(new $String("reflect: Field index out of range")); } - prop[0] = $internalize(jsType(v.typ).fields[i].prop, $String); - field = (x = tt.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - typ[0] = field.typ; - fl = (((v.flag & 416) >>> 0) | ((typ[0].Kind() >>> 0))) >>> 0; - if (!$clone(field.name, name).isExported()) { - if (field.embedded()) { + prop = $internalize($clone(v, Value).typ().JsType().fields[i].prop, $String); + field = (x = tt.StructType.Fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + i, ptrType$12))); + typ$1 = field.Typ; + fl = (((v.flag & 416) >>> 0) | ((typ$1.Kind() >>> 0))) >>> 0; + if (!$clone(field.Name, abi.Name).IsExported()) { + if (field.Embedded()) { fl = (fl | (64)) >>> 0; } else { fl = (fl | (32)) >>> 0; } } - tag$1 = $clone((x$1 = tt.fields, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])).name, name).tag(); - /* */ if (!(tag$1 === "") && !((i === 0))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(tag$1 === "") && !((i === 0))) { */ case 1: - jsTag[0] = getJsTag(tag$1); - /* */ if (!(jsTag[0] === "")) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!(jsTag[0] === "")) { */ case 3: - /* while (true) { */ case 5: + tag = $clone((x$1 = tt.StructType.Fields, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])).Name, abi.Name).Tag(); + if (!(tag === "") && !((i === 0))) { + jsTag = new StructTag((tag)).Get("js"); + if (!(jsTag === "")) { + while (true) { o = [o]; - _r = $clone(v, Value).Field(0); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - v = _r; - /* */ if (v.typ === jsObjectPtr) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (v.typ === jsObjectPtr) { */ case 8: + v = $clone(v, Value).Field(0); + if ($clone(v, Value).typ() === abi.JsObjectPtr) { o[0] = $clone(v, Value).object().object; - $s = -1; return new Value.ptr(typ[0], (new (jsType(PtrTo(typ[0])))((function(jsTag, o, prop, s, typ) { return function Value·Field·func1() { - return $internalize(o[0][$externalize(jsTag[0], $String)], jsType(typ[0])); - }; })(jsTag, o, prop, s, typ), (function(jsTag, o, prop, s, typ) { return function Value·Field·func2(x$2) { + return new Value.ptr(typ$1, (new (typ$1.JsPtrTo())((function(o) { return function Value·Field·func1() { + return $internalize(o[0][$externalize(jsTag, $String)], typ$1.JsType()); + }; })(o), (function(o) { return function Value·Field·func2(x$2) { var x$2; - o[0][$externalize(jsTag[0], $String)] = $externalize(x$2, jsType(typ[0])); - }; })(jsTag, o, prop, s, typ))), fl); - /* } */ case 9: - /* */ if (v.typ.Kind() === 22) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (v.typ.Kind() === 22) { */ case 10: - _r$1 = $clone(v, Value).Elem(); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - v = _r$1; - /* } */ case 11: - $s = 5; continue; - case 6: - /* } */ case 4: - /* } */ case 2: - s[0] = v.ptr; - /* */ if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { */ case 13: - $s = -1; return new Value.ptr(typ[0], (new (jsType(PtrTo(typ[0])))((function(jsTag, prop, s, typ) { return function Value·Field·func3() { - return wrapJsObject(typ[0], s[0][$externalize(prop[0], $String)]); - }; })(jsTag, prop, s, typ), (function(jsTag, prop, s, typ) { return function Value·Field·func4(x$2) { - var x$2; - s[0][$externalize(prop[0], $String)] = unwrapJsObject(typ[0], x$2); - }; })(jsTag, prop, s, typ))), fl); - /* } */ case 14: - _r$2 = makeValue(typ[0], wrapJsObject(typ[0], s[0][$externalize(prop[0], $String)]), fl); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 16; case 16: return $24r; - /* */ } return; } var $f = {$blk: Field$2, $c: true, $r, $24r, _r, _r$1, _r$2, field, fl, i, jsTag, o, prop, s, tag$1, tt, typ, v, x, x$1, $s};return $f; - }; - Value.prototype.Field = function(...$args) { return this.$val.Field(...$args); }; - getJsTag = function getJsTag$1(tag$1) { - var _tuple, i, name$2, qvalue, tag$1, value; - while (true) { - if (!(!(tag$1 === ""))) { break; } - i = 0; - while (true) { - if (!(i < tag$1.length && (tag$1.charCodeAt(i) === 32))) { break; } - i = i + (1) >> 0; - } - tag$1 = $substring(tag$1, i); - if (tag$1 === "") { - break; - } - i = 0; - while (true) { - if (!(i < tag$1.length && !((tag$1.charCodeAt(i) === 32)) && !((tag$1.charCodeAt(i) === 58)) && !((tag$1.charCodeAt(i) === 34)))) { break; } - i = i + (1) >> 0; - } - if ((i + 1 >> 0) >= tag$1.length || !((tag$1.charCodeAt(i) === 58)) || !((tag$1.charCodeAt((i + 1 >> 0)) === 34))) { - break; - } - name$2 = ($substring(tag$1, 0, i)); - tag$1 = $substring(tag$1, (i + 1 >> 0)); - i = 1; - while (true) { - if (!(i < tag$1.length && !((tag$1.charCodeAt(i) === 34)))) { break; } - if (tag$1.charCodeAt(i) === 92) { - i = i + (1) >> 0; + o[0][$externalize(jsTag, $String)] = $externalize(x$2, typ$1.JsType()); + }; })(o))), fl); + } + if ($clone(v, Value).typ().Kind() === 22) { + v = $clone(v, Value).Elem(); + } } - i = i + (1) >> 0; - } - if (i >= tag$1.length) { - break; - } - qvalue = ($substring(tag$1, 0, (i + 1 >> 0))); - tag$1 = $substring(tag$1, (i + 1 >> 0)); - if (name$2 === "js") { - _tuple = strconv.Unquote(qvalue); - value = _tuple[0]; - return value; } } - return ""; + s = v.ptr; + if (!((((fl & 128) >>> 0) === 0)) && !((typ$1.Kind() === 17)) && !((typ$1.Kind() === 25))) { + return new Value.ptr(typ$1, (new (typ$1.JsPtrTo())((function Value·Field·func3() { + return abi.WrapJsObject(typ$1, s[$externalize(prop, $String)]); + }), (function Value·Field·func4(x$2) { + var x$2; + s[$externalize(prop, $String)] = abi.UnwrapJsObject(typ$1, x$2); + }))), fl); + } + return makeValue(typ$1, abi.WrapJsObject(typ$1, s[$externalize(prop, $String)]), fl); }; + Value.prototype.Field = function(...$args) { return this.$val.Field(...$args); }; $ptrType(Value).prototype.UnsafePointer = function UnsafePointer() { var v; v = this; @@ -17442,80 +15041,84 @@ $packages["reflect"] = (function() { } }; Value.prototype.grow = function(...$args) { return this.$val.grow(...$args); }; + $ptrType(Value).prototype.Clear = function Clear() { + var _1, a, array, elem$2, i, length, mapObj, offset, st, v, zeroFn; + v = this; + _1 = $clone(v, Value).Kind(); + if (_1 === (23)) { + st = (toKindTypeExt($clone(v, Value).typ())); + elem$2 = st.SliceType.Elem; + zeroFn = elem$2.JsType().zero; + a = v.ptr.$get(); + offset = $parseInt(a.$offset) >> 0; + length = $parseInt(a.$length) >> 0; + array = a.$array; + i = 0; + while (true) { + if (!(i < length)) { break; } + array[(i + offset >> 0)] = zeroFn(); + i = i + (1) >> 0; + } + } else if (_1 === (21)) { + mapObj = v.ptr.$get(); + mapObj.clear(); + } else { + $panic(new ValueError.ptr("reflect.Value.Clear", $clone(v, Value).Kind())); + } + }; + Value.prototype.Clear = function(...$args) { return this.$val.Clear(...$args); }; $ptrType(Value).prototype.Index = function Index(i) { - var {$24r, $24r$1, _1, _r, _r$1, a, a$1, c, fl, fl$1, fl$2, i, k, s, str, tt, tt$1, typ, typ$1, v, $s, $r, $c} = $restore(this, {i}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - a = [a]; - a$1 = [a$1]; - c = [c]; - i = [i]; - typ = [typ]; - typ$1 = [typ$1]; + var _1, a, a$1, c, c$24ptr, fl, fl$1, fl$2, i, k, s, str, tt, tt$1, typ$1, typ$2, v; v = this; - k = new flag(v.flag).kind(); - _1 = k; - /* */ if (_1 === (17)) { $s = 2; continue; } - /* */ if (_1 === (23)) { $s = 3; continue; } - /* */ if (_1 === (24)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_1 === (17)) { */ case 2: - tt = (v.typ.kindType); - if (i[0] < 0 || i[0] > ((tt.len >> 0))) { - $panic(new $String("reflect: array index out of range")); - } - typ[0] = tt.elem; - fl = (((((v.flag & 384) >>> 0) | new flag(v.flag).ro()) >>> 0) | ((typ[0].Kind() >>> 0))) >>> 0; - a[0] = v.ptr; - /* */ if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { */ case 7: - $s = -1; return new Value.ptr(typ[0], (new (jsType(PtrTo(typ[0])))((function(a, a$1, c, i, typ, typ$1) { return function Value·Index·func1() { - return wrapJsObject(typ[0], a[0][i[0]]); - }; })(a, a$1, c, i, typ, typ$1), (function(a, a$1, c, i, typ, typ$1) { return function Value·Index·func2(x) { - var x; - a[0][i[0]] = unwrapJsObject(typ[0], x); - }; })(a, a$1, c, i, typ, typ$1))), fl); - /* } */ case 8: - _r = makeValue(typ[0], wrapJsObject(typ[0], a[0][i[0]]), fl); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 10; case 10: return $24r; - /* } else if (_1 === (23)) { */ case 3: - s = $clone(v, Value).object(); - if (i[0] < 0 || i[0] >= ($parseInt(s.$length) >> 0)) { - $panic(new $String("reflect: slice index out of range")); - } - tt$1 = (v.typ.kindType); - typ$1[0] = tt$1.elem; - fl$1 = (((384 | new flag(v.flag).ro()) >>> 0) | ((typ$1[0].Kind() >>> 0))) >>> 0; - i[0] = i[0] + (($parseInt(s.$offset) >> 0)) >> 0; - a$1[0] = s.$array; - /* */ if (!((((fl$1 & 128) >>> 0) === 0)) && !((typ$1[0].Kind() === 17)) && !((typ$1[0].Kind() === 25))) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (!((((fl$1 & 128) >>> 0) === 0)) && !((typ$1[0].Kind() === 17)) && !((typ$1[0].Kind() === 25))) { */ case 11: - $s = -1; return new Value.ptr(typ$1[0], (new (jsType(PtrTo(typ$1[0])))((function(a, a$1, c, i, typ, typ$1) { return function Value·Index·func3() { - return wrapJsObject(typ$1[0], a$1[0][i[0]]); - }; })(a, a$1, c, i, typ, typ$1), (function(a, a$1, c, i, typ, typ$1) { return function Value·Index·func4(x) { - var x; - a$1[0][i[0]] = unwrapJsObject(typ$1[0], x); - }; })(a, a$1, c, i, typ, typ$1))), fl$1); - /* } */ case 12: - _r$1 = makeValue(typ$1[0], wrapJsObject(typ$1[0], a$1[0][i[0]]), fl$1); /* */ $s = 13; case 13: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r$1 = _r$1; - $s = 14; case 14: return $24r$1; - /* } else if (_1 === (24)) { */ case 4: - str = (v.ptr).$get(); - if (i[0] < 0 || i[0] >= str.length) { - $panic(new $String("reflect: string index out of range")); - } - fl$2 = (((new flag(v.flag).ro() | 8) >>> 0) | 128) >>> 0; - c[0] = str.charCodeAt(i[0]); - $s = -1; return new Value.ptr(uint8Type, ((c.$ptr || (c.$ptr = new ptrType$13(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, c)))), fl$2); - /* } else { */ case 5: - $panic(new ValueError.ptr("reflect.Value.Index", k)); - /* } */ case 6: - case 1: - $s = -1; return new Value.ptr(ptrType$2.nil, 0, 0); - /* */ } return; } var $f = {$blk: Index, $c: true, $r, $24r, $24r$1, _1, _r, _r$1, a, a$1, c, fl, fl$1, fl$2, i, k, s, str, tt, tt$1, typ, typ$1, v, $s};return $f; + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (17)) { + tt = $clone(v, Value).typ().ArrayType(); + if (i < 0 || i > ((tt.Len >> 0))) { + $panic(new $String("reflect: array index out of range")); + } + typ$1 = tt.Elem; + fl = (((((v.flag & 384) >>> 0) | new flag(v.flag).ro()) >>> 0) | ((typ$1.Kind() >>> 0))) >>> 0; + a = v.ptr; + if (!((((fl & 128) >>> 0) === 0)) && !((typ$1.Kind() === 17)) && !((typ$1.Kind() === 25))) { + return new Value.ptr(typ$1, (new (typ$1.JsPtrTo())((function Value·Index·func1() { + return abi.WrapJsObject(typ$1, a[i]); + }), (function Value·Index·func2(x) { + var x; + a[i] = abi.UnwrapJsObject(typ$1, x); + }))), fl); + } + return makeValue(typ$1, abi.WrapJsObject(typ$1, a[i]), fl); + } else if (_1 === (23)) { + s = $clone(v, Value).object(); + if (i < 0 || i >= ($parseInt(s.$length) >> 0)) { + $panic(new $String("reflect: slice index out of range")); + } + tt$1 = (toKindTypeExt($clone(v, Value).typ())); + typ$2 = tt$1.SliceType.Elem; + fl$1 = (((384 | new flag(v.flag).ro()) >>> 0) | ((typ$2.Kind() >>> 0))) >>> 0; + i = i + (($parseInt(s.$offset) >> 0)) >> 0; + a$1 = s.$array; + if (!((((fl$1 & 128) >>> 0) === 0)) && !((typ$2.Kind() === 17)) && !((typ$2.Kind() === 25))) { + return new Value.ptr(typ$2, (new (typ$2.JsPtrTo())((function Value·Index·func3() { + return abi.WrapJsObject(typ$2, a$1[i]); + }), (function Value·Index·func4(x) { + var x; + a$1[i] = abi.UnwrapJsObject(typ$2, x); + }))), fl$1); + } + return makeValue(typ$2, abi.WrapJsObject(typ$2, a$1[i]), fl$1); + } else if (_1 === (24)) { + str = (v.ptr).$get(); + if (i < 0 || i >= str.length) { + $panic(new $String("reflect: string index out of range")); + } + fl$2 = (((new flag(v.flag).ro() | 8) >>> 0) | 128) >>> 0; + c = str.charCodeAt(i); + return new Value.ptr(uint8Type, ((c$24ptr || (c$24ptr = new ptrType$14(function() { return c; }, function($v) { c = $v; })))), fl$2); + } else { + $panic(new ValueError.ptr("reflect.Value.Index", k)); + } }; Value.prototype.Index = function(...$args) { return this.$val.Index(...$args); }; $ptrType(Value).prototype.InterfaceData = function InterfaceData() { @@ -17525,14 +15128,13 @@ $packages["reflect"] = (function() { }; Value.prototype.InterfaceData = function(...$args) { return this.$val.InterfaceData(...$args); }; $ptrType(Value).prototype.SetZero = function SetZero() { - var {_r, v, $s, $r, $c} = $restore(this, {}); + var {v, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: v = this; new flag(v.flag).mustBeAssignable(); - _r = Zero(v.typ); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $r = $clone(v, Value).Set($clone(_r, Value)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = $clone(v, Value).Set($clone(Zero(toRType($clone(v, Value).typ())), Value)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } var $f = {$blk: SetZero, $c: true, $r, _r, v, $s};return $f; + /* */ } return; } var $f = {$blk: SetZero, $c: true, $r, v, $s};return $f; }; Value.prototype.SetZero = function(...$args) { return this.$val.SetZero(...$args); }; $ptrType(Value).prototype.IsNil = function IsNil() { @@ -17541,7 +15143,7 @@ $packages["reflect"] = (function() { k = new flag(v.flag).kind(); _1 = k; if ((_1 === (22)) || (_1 === (23))) { - return $clone(v, Value).object() === jsType(v.typ).nil; + return $clone(v, Value).object() === $clone(v, Value).typ().JsType().nil; } else if (_1 === (18)) { return $clone(v, Value).object() === $chanNil; } else if (_1 === (19)) { @@ -17558,42 +15160,27 @@ $packages["reflect"] = (function() { }; Value.prototype.IsNil = function(...$args) { return this.$val.IsNil(...$args); }; $ptrType(Value).prototype.Len = function Len$1() { - var {$24r, _1, _r, _r$1, k, v, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var _1, elem$2, k, v; v = this; - k = new flag(v.flag).kind(); - _1 = k; - /* */ if ((_1 === (17)) || (_1 === (24))) { $s = 2; continue; } - /* */ if (_1 === (23)) { $s = 3; continue; } - /* */ if (_1 === (18)) { $s = 4; continue; } - /* */ if (_1 === (21)) { $s = 5; continue; } - /* */ if (_1 === (22)) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if ((_1 === (17)) || (_1 === (24))) { */ case 2: - $s = -1; return $parseInt($clone(v, Value).object().length); - /* } else if (_1 === (23)) { */ case 3: - $s = -1; return $parseInt($clone(v, Value).object().$length) >> 0; - /* } else if (_1 === (18)) { */ case 4: - $s = -1; return $parseInt($clone(v, Value).object().$buffer.length) >> 0; - /* } else if (_1 === (21)) { */ case 5: - $s = -1; return $parseInt($clone(v, Value).object().size) >> 0; - /* } else if (_1 === (22)) { */ case 6: - _r = v.typ.Elem().Kind(); /* */ $s = 11; case 11: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - /* */ if (_r === 17) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (_r === 17) { */ case 9: - _r$1 = v.typ.Elem().Len(); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 13; case 13: return $24r; - /* } */ case 10: - $panic(new $String("reflect: call of reflect.Value.Len on ptr to non-array Value")); - $s = 8; continue; - /* } else { */ case 7: - $panic(new ValueError.ptr("reflect.Value.Len", k)); - /* } */ case 8: - case 1: - $s = -1; return 0; - /* */ } return; } var $f = {$blk: Len$1, $c: true, $r, $24r, _1, _r, _r$1, k, v, $s};return $f; + k = new flag(v.flag).kind(); + _1 = k; + if ((_1 === (17)) || (_1 === (24))) { + return $parseInt($clone(v, Value).object().length); + } else if (_1 === (23)) { + return $parseInt($clone(v, Value).object().$length) >> 0; + } else if (_1 === (18)) { + return $parseInt($clone(v, Value).object().$buffer.length) >> 0; + } else if (_1 === (21)) { + return $parseInt($clone(v, Value).object().size) >> 0; + } else if (_1 === (22)) { + elem$2 = $clone(v, Value).typ().Elem(); + if (elem$2.Kind() === 17) { + return elem$2.Len(); + } + $panic(new $String("reflect: call of reflect.Value.Len on ptr to non-array Value")); + } else { + $panic(new ValueError.ptr("reflect.Value.Len", k)); + } }; Value.prototype.Len = function(...$args) { return this.$val.Len(...$args); }; $ptrType(Value).prototype.Pointer = function Pointer() { @@ -17627,17 +15214,17 @@ $packages["reflect"] = (function() { v = this; new flag(v.flag).mustBeAssignable(); new flag(x.flag).mustBeExported(); - _r = $clone(x, Value).assignTo("reflect.Set", v.typ, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = $clone(x, Value).assignTo("reflect.Set", $clone(v, Value).typ(), 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } x = _r; /* */ if (!((((v.flag & 128) >>> 0) === 0))) { $s = 2; continue; } /* */ $s = 3; continue; /* if (!((((v.flag & 128) >>> 0) === 0))) { */ case 2: - _1 = v.typ.Kind(); + _1 = $clone(v, Value).typ().Kind(); /* */ if ((_1 === (17)) || (_1 === (25))) { $s = 5; continue; } /* */ if (_1 === (20)) { $s = 6; continue; } /* */ $s = 7; continue; /* if ((_1 === (17)) || (_1 === (25))) { */ case 5: - jsType(v.typ).copy(v.ptr, x.ptr); + $clone(v, Value).typ().JsType().copy(v.ptr, x.ptr); $s = 8; continue; /* } else if (_1 === (20)) { */ case 6: _r$1 = valueInterface($clone(x, Value), false); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } @@ -17655,67 +15242,51 @@ $packages["reflect"] = (function() { }; Value.prototype.Set = function(...$args) { return this.$val.Set(...$args); }; $ptrType(Value).prototype.bytesSlow = function bytesSlow() { - var {_1, _r, _r$1, v, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var _1, v; v = this; - _1 = new flag(v.flag).kind(); - /* */ if (_1 === (23)) { $s = 2; continue; } - /* */ if (_1 === (17)) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (_1 === (23)) { */ case 2: - _r = v.typ.Elem().Kind(); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - /* */ if (!((_r === 8))) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (!((_r === 8))) { */ case 5: - $panic(new $String("reflect.Value.Bytes of non-byte slice")); - /* } */ case 6: - $s = -1; return (v.ptr).$get(); - /* } else if (_1 === (17)) { */ case 3: - _r$1 = v.typ.Elem().Kind(); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (!((_r$1 === 8))) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (!((_r$1 === 8))) { */ case 8: - $panic(new $String("reflect.Value.Bytes of non-byte array")); - /* } */ case 9: - if (!$clone(v, Value).CanAddr()) { - $panic(new $String("reflect.Value.Bytes of unaddressable byte array")); - } - $s = -1; return $assertType($internalize(v.ptr, $emptyInterface), sliceType$4); - /* } */ case 4: - case 1: + _1 = new flag(v.flag).kind(); + if (_1 === (23)) { + if (!(($clone(v, Value).typ().Elem().Kind() === 8))) { + $panic(new $String("reflect.Value.Bytes of non-byte slice")); + } + return (v.ptr).$get(); + } else if (_1 === (17)) { + if (!(($clone(v, Value).typ().Elem().Kind() === 8))) { + $panic(new $String("reflect.Value.Bytes of non-byte array")); + } + if (!$clone(v, Value).CanAddr()) { + $panic(new $String("reflect.Value.Bytes of unaddressable byte array")); + } + return $assertType($internalize(v.ptr, $emptyInterface), sliceType$2); + } $panic(new ValueError.ptr("reflect.Value.Bytes", new flag(v.flag).kind())); - $s = -1; return sliceType$4.nil; - /* */ } return; } var $f = {$blk: bytesSlow, $c: true, $r, _1, _r, _r$1, v, $s};return $f; }; Value.prototype.bytesSlow = function(...$args) { return this.$val.bytesSlow(...$args); }; $ptrType(Value).prototype.SetBytes = function SetBytes(x) { - var {_r, _r$1, _v, slice, typedSlice, v, x, $s, $r, $c} = $restore(this, {x}); + var {_r, _v, slice, typedSlice, v, x, $s, $r, $c} = $restore(this, {x}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: v = this; new flag(v.flag).mustBeAssignable(); new flag(v.flag).mustBe(23); - _r = v.typ.Elem().Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - /* */ if (!((_r === 8))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!((_r === 8))) { */ case 1: + if (!(($clone(v, Value).typ().Elem().Kind() === 8))) { $panic(new $String("reflect.Value.SetBytes of non-byte slice")); - /* } */ case 2: + } slice = x; - if (!(v.typ.Name() === "")) { _v = true; $s = 6; continue s; } - _r$1 = v.typ.Elem().Name(); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = !(_r$1 === ""); case 6: - /* */ if (_v) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_v) { */ case 4: - typedSlice = new (jsType(v.typ))(slice.$array); + if (!(toRType($clone(v, Value).typ()).Name() === "")) { _v = true; $s = 3; continue s; } + _r = toRType($clone(v, Value).typ()).Elem().Name(); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = !(_r === ""); case 3: + /* */ if (_v) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_v) { */ case 1: + typedSlice = new ($clone(v, Value).typ().JsType())(slice.$array); typedSlice.$offset = slice.$offset; typedSlice.$length = slice.$length; typedSlice.$capacity = slice.$capacity; slice = typedSlice; - /* } */ case 5: + /* } */ case 2: v.ptr.$set(slice); $s = -1; return; - /* */ } return; } var $f = {$blk: SetBytes, $c: true, $r, _r, _r$1, _v, slice, typedSlice, v, x, $s};return $f; + /* */ } return; } var $f = {$blk: SetBytes, $c: true, $r, _r, _v, slice, typedSlice, v, x, $s};return $f; }; Value.prototype.SetBytes = function(...$args) { return this.$val.SetBytes(...$args); }; $ptrType(Value).prototype.SetCap = function SetCap(n) { @@ -17727,7 +15298,7 @@ $packages["reflect"] = (function() { if (n < ($parseInt(s.$length) >> 0) || n > ($parseInt(s.$capacity) >> 0)) { $panic(new $String("reflect: slice capacity out of range in SetCap")); } - newSlice = new (jsType(v.typ))(s.$array); + newSlice = new ($clone(v, Value).typ().JsType())(s.$array); newSlice.$offset = s.$offset; newSlice.$length = s.$length; newSlice.$capacity = n; @@ -17743,7 +15314,7 @@ $packages["reflect"] = (function() { if (n < 0 || n > ($parseInt(s.$capacity) >> 0)) { $panic(new $String("reflect: slice length out of range in SetLen")); } - newSlice = new (jsType(v.typ))(s.$array); + newSlice = new ($clone(v, Value).typ().JsType())(s.$array); newSlice.$offset = s.$offset; newSlice.$length = n; newSlice.$capacity = s.$capacity; @@ -17751,11 +15322,11 @@ $packages["reflect"] = (function() { }; Value.prototype.SetLen = function(...$args) { return this.$val.SetLen(...$args); }; $ptrType(Value).prototype.Slice = function Slice(i, j) { - var {$24r, $24r$1, _1, _r, _r$1, cap, i, j, kind$1, s, str, tt, typ, v, $s, $r, $c} = $restore(this, {i, j}); + var {_1, _r, cap, i, j, kind$1, s, str, tt, typ$1, v, $s, $r, $c} = $restore(this, {i, j}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: v = this; cap = 0; - typ = $ifaceNil; + typ$1 = ptrType$4.nil; s = null; kind$1 = new flag(v.flag).kind(); _1 = kind$1; @@ -17767,13 +15338,14 @@ $packages["reflect"] = (function() { if (((v.flag & 256) >>> 0) === 0) { $panic(new $String("reflect.Value.Slice: slice of unaddressable array")); } - tt = (v.typ.kindType); - cap = ((tt.len >> 0)); - typ = SliceOf(tt.elem); - s = new (jsType(typ))($clone(v, Value).object()); + tt = ($clone(v, Value).typ().kindType); + cap = ((tt.Len >> 0)); + _r = SliceOf(toRType(tt.Elem)).common(); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + typ$1 = _r; + s = new (typ$1.JsType())($clone(v, Value).object()); $s = 6; continue; /* } else if (_1 === (23)) { */ case 3: - typ = v.typ; + typ$1 = $clone(v, Value).typ(); s = $clone(v, Value).object(); cap = $parseInt(s.$capacity) >> 0; $s = 6; continue; @@ -17782,9 +15354,7 @@ $packages["reflect"] = (function() { if (i < 0 || j < i || j > str.length) { $panic(new $String("reflect.Value.Slice: string slice index out of bounds")); } - _r = ValueOf(new $String($substring(str, i, j))); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 8; case 8: return $24r; + $s = -1; return ValueOf(new $String($substring(str, i, j))); /* } else { */ case 5: $panic(new ValueError.ptr("reflect.Value.Slice", kind$1)); /* } */ case 6: @@ -17792,43 +15362,46 @@ $packages["reflect"] = (function() { if (i < 0 || j < i || j > cap) { $panic(new $String("reflect.Value.Slice: slice index out of bounds")); } - _r$1 = makeValue(typ, $subslice(s, i, j), new flag(v.flag).ro()); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r$1 = _r$1; - $s = 10; case 10: return $24r$1; - /* */ } return; } var $f = {$blk: Slice, $c: true, $r, $24r, $24r$1, _1, _r, _r$1, cap, i, j, kind$1, s, str, tt, typ, v, $s};return $f; + $s = -1; return makeValue(typ$1, $subslice(s, i, j), new flag(v.flag).ro()); + /* */ } return; } var $f = {$blk: Slice, $c: true, $r, _1, _r, cap, i, j, kind$1, s, str, tt, typ$1, v, $s};return $f; }; Value.prototype.Slice = function(...$args) { return this.$val.Slice(...$args); }; $ptrType(Value).prototype.Slice3 = function Slice3(i, j, k) { - var {$24r, _1, _r, cap, i, j, k, kind$1, s, tt, typ, v, $s, $r, $c} = $restore(this, {i, j, k}); + var {_1, _r, cap, i, j, k, kind$1, s, tt, typ$1, v, $s, $r, $c} = $restore(this, {i, j, k}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: v = this; cap = 0; - typ = $ifaceNil; + typ$1 = ptrType$4.nil; s = null; - kind$1 = new flag(v.flag).kind(); - _1 = kind$1; - if (_1 === (17)) { - if (((v.flag & 256) >>> 0) === 0) { - $panic(new $String("reflect.Value.Slice: slice of unaddressable array")); - } - tt = (v.typ.kindType); - cap = ((tt.len >> 0)); - typ = SliceOf(tt.elem); - s = new (jsType(typ))($clone(v, Value).object()); - } else if (_1 === (23)) { - typ = v.typ; - s = $clone(v, Value).object(); - cap = $parseInt(s.$capacity) >> 0; - } else { - $panic(new ValueError.ptr("reflect.Value.Slice3", kind$1)); - } + kind$1 = new flag(v.flag).kind(); + _1 = kind$1; + /* */ if (_1 === (17)) { $s = 2; continue; } + /* */ if (_1 === (23)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_1 === (17)) { */ case 2: + if (((v.flag & 256) >>> 0) === 0) { + $panic(new $String("reflect.Value.Slice: slice of unaddressable array")); + } + tt = ($clone(v, Value).typ().kindType); + cap = ((tt.Len >> 0)); + _r = SliceOf(toRType(tt.Elem)).common(); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + typ$1 = _r; + s = new (typ$1.JsType())($clone(v, Value).object()); + $s = 5; continue; + /* } else if (_1 === (23)) { */ case 3: + typ$1 = $clone(v, Value).typ(); + s = $clone(v, Value).object(); + cap = $parseInt(s.$capacity) >> 0; + $s = 5; continue; + /* } else { */ case 4: + $panic(new ValueError.ptr("reflect.Value.Slice3", kind$1)); + /* } */ case 5: + case 1: if (i < 0 || j < i || k < j || k > cap) { $panic(new $String("reflect.Value.Slice3: slice index out of bounds")); } - _r = makeValue(typ, $subslice(s, i, j, k), new flag(v.flag).ro()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Slice3, $c: true, $r, $24r, _1, _r, cap, i, j, k, kind$1, s, tt, typ, v, $s};return $f; + $s = -1; return makeValue(typ$1, $subslice(s, i, j, k), new flag(v.flag).ro()); + /* */ } return; } var $f = {$blk: Slice3, $c: true, $r, _1, _r, cap, i, j, k, kind$1, s, tt, typ$1, v, $s};return $f; }; Value.prototype.Slice3 = function(...$args) { return this.$val.Slice3(...$args); }; $ptrType(Value).prototype.Close = function Close() { @@ -17844,11 +15417,11 @@ $packages["reflect"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: selected = false; received = false; - comms = new sliceType$19([new sliceType$18([ch])]); + comms = new sliceType$18([new sliceType$17([ch])]); if (nb) { - comms = $append(comms, new sliceType$18([])); + comms = $append(comms, new sliceType$17([])); } - _r = selectHelper(new sliceType$6([comms])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = selectHelper(new sliceType$4([comms])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } selectRes = _r; if (nb && (($parseInt(selectRes[0]) >> 0) === 1)) { _tmp = false; @@ -17869,11 +15442,11 @@ $packages["reflect"] = (function() { chansend = function chansend$1(ch, val, nb) { var {_r, ch, comms, nb, selectRes, val, $s, $r, $c} = $restore(this, {ch, val, nb}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - comms = new sliceType$19([new sliceType$18([ch, val.$get()])]); + comms = new sliceType$18([new sliceType$17([ch, val.$get()])]); if (nb) { - comms = $append(comms, new sliceType$18([])); + comms = $append(comms, new sliceType$17([])); } - _r = selectHelper(new sliceType$6([comms])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = selectHelper(new sliceType$4([comms])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } selectRes = _r; if (nb && (($parseInt(selectRes[0]) >> 0) === 1)) { $s = -1; return false; @@ -17881,47 +15454,78 @@ $packages["reflect"] = (function() { $s = -1; return true; /* */ } return; } var $f = {$blk: chansend$1, $c: true, $r, _r, ch, comms, nb, selectRes, val, $s};return $f; }; - Value.methods = [{prop: "pointer", name: "pointer", pkg: "reflect", typ: $funcType([], [$UnsafePointer], false)}, {prop: "Addr", name: "Addr", pkg: "", typ: $funcType([], [Value], false)}, {prop: "Bool", name: "Bool", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "panicNotBool", name: "panicNotBool", pkg: "reflect", typ: $funcType([], [], false)}, {prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType$4], false)}, {prop: "runes", name: "runes", pkg: "reflect", typ: $funcType([], [sliceType$12], false)}, {prop: "CanAddr", name: "CanAddr", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "CanSet", name: "CanSet", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Call", name: "Call", pkg: "", typ: $funcType([sliceType$10], [sliceType$10], false)}, {prop: "CallSlice", name: "CallSlice", pkg: "", typ: $funcType([sliceType$10], [sliceType$10], false)}, {prop: "capNonSlice", name: "capNonSlice", pkg: "reflect", typ: $funcType([], [$Int], false)}, {prop: "CanComplex", name: "CanComplex", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Complex", name: "Complex", pkg: "", typ: $funcType([], [$Complex128], false)}, {prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$8], [Value], false)}, {prop: "FieldByIndexErr", name: "FieldByIndexErr", pkg: "", typ: $funcType([sliceType$8], [Value, $error], false)}, {prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [Value], false)}, {prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$3], [Value], false)}, {prop: "CanFloat", name: "CanFloat", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Float", name: "Float", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "CanInt", name: "CanInt", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Int", name: "Int", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "CanInterface", name: "CanInterface", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Interface", name: "Interface", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "IsValid", name: "IsValid", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsZero", name: "IsZero", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "MapIndex", name: "MapIndex", pkg: "", typ: $funcType([Value], [Value], false)}, {prop: "MapKeys", name: "MapKeys", pkg: "", typ: $funcType([], [sliceType$10], false)}, {prop: "SetIterKey", name: "SetIterKey", pkg: "", typ: $funcType([ptrType$22], [], false)}, {prop: "SetIterValue", name: "SetIterValue", pkg: "", typ: $funcType([ptrType$22], [], false)}, {prop: "MapRange", name: "MapRange", pkg: "", typ: $funcType([], [ptrType$22], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Value], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Value], false)}, {prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "OverflowComplex", name: "OverflowComplex", pkg: "", typ: $funcType([$Complex128], [$Bool], false)}, {prop: "OverflowFloat", name: "OverflowFloat", pkg: "", typ: $funcType([$Float64], [$Bool], false)}, {prop: "OverflowInt", name: "OverflowInt", pkg: "", typ: $funcType([$Int64], [$Bool], false)}, {prop: "OverflowUint", name: "OverflowUint", pkg: "", typ: $funcType([$Uint64], [$Bool], false)}, {prop: "Recv", name: "Recv", pkg: "", typ: $funcType([], [Value, $Bool], false)}, {prop: "recv", name: "recv", pkg: "reflect", typ: $funcType([$Bool], [Value, $Bool], false)}, {prop: "Send", name: "Send", pkg: "", typ: $funcType([Value], [], false)}, {prop: "send", name: "send", pkg: "reflect", typ: $funcType([Value, $Bool], [$Bool], false)}, {prop: "SetBool", name: "SetBool", pkg: "", typ: $funcType([$Bool], [], false)}, {prop: "setRunes", name: "setRunes", pkg: "reflect", typ: $funcType([sliceType$12], [], false)}, {prop: "SetComplex", name: "SetComplex", pkg: "", typ: $funcType([$Complex128], [], false)}, {prop: "SetFloat", name: "SetFloat", pkg: "", typ: $funcType([$Float64], [], false)}, {prop: "SetInt", name: "SetInt", pkg: "", typ: $funcType([$Int64], [], false)}, {prop: "SetMapIndex", name: "SetMapIndex", pkg: "", typ: $funcType([Value, Value], [], false)}, {prop: "SetUint", name: "SetUint", pkg: "", typ: $funcType([$Uint64], [], false)}, {prop: "SetPointer", name: "SetPointer", pkg: "", typ: $funcType([$UnsafePointer], [], false)}, {prop: "SetString", name: "SetString", pkg: "", typ: $funcType([$String], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "stringNonString", name: "stringNonString", pkg: "reflect", typ: $funcType([], [$String], false)}, {prop: "TryRecv", name: "TryRecv", pkg: "", typ: $funcType([], [Value, $Bool], false)}, {prop: "TrySend", name: "TrySend", pkg: "", typ: $funcType([Value], [$Bool], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [Type], false)}, {prop: "typeSlow", name: "typeSlow", pkg: "reflect", typ: $funcType([], [Type], false)}, {prop: "CanUint", name: "CanUint", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Uint", name: "Uint", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "UnsafeAddr", name: "UnsafeAddr", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "Grow", name: "Grow", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Convert", name: "Convert", pkg: "", typ: $funcType([Type], [Value], false)}, {prop: "CanConvert", name: "CanConvert", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Equal", name: "Equal", pkg: "", typ: $funcType([Value], [$Bool], false)}, {prop: "object", name: "object", pkg: "reflect", typ: $funcType([], [ptrType$3], false)}, {prop: "assignTo", name: "assignTo", pkg: "reflect", typ: $funcType([$String, ptrType$2, $UnsafePointer], [Value], false)}, {prop: "call", name: "call", pkg: "reflect", typ: $funcType([$String, sliceType$10], [sliceType$10], false)}, {prop: "Cap", name: "Cap", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Value], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [Value], false)}, {prop: "UnsafePointer", name: "UnsafePointer", pkg: "", typ: $funcType([], [$UnsafePointer], false)}, {prop: "grow", name: "grow", pkg: "reflect", typ: $funcType([$Int], [], false)}, {prop: "extendSlice", name: "extendSlice", pkg: "reflect", typ: $funcType([$Int], [Value], false)}, {prop: "Index", name: "Index", pkg: "", typ: $funcType([$Int], [Value], false)}, {prop: "InterfaceData", name: "InterfaceData", pkg: "", typ: $funcType([], [arrayType$8], false)}, {prop: "SetZero", name: "SetZero", pkg: "", typ: $funcType([], [], false)}, {prop: "IsNil", name: "IsNil", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Pointer", name: "Pointer", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([Value], [], false)}, {prop: "bytesSlow", name: "bytesSlow", pkg: "reflect", typ: $funcType([], [sliceType$4], false)}, {prop: "SetBytes", name: "SetBytes", pkg: "", typ: $funcType([sliceType$4], [], false)}, {prop: "SetCap", name: "SetCap", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "SetLen", name: "SetLen", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Slice", name: "Slice", pkg: "", typ: $funcType([$Int, $Int], [Value], false)}, {prop: "Slice3", name: "Slice3", pkg: "", typ: $funcType([$Int, $Int, $Int], [Value], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [], false)}]; + noescape = function noescape$1(p) { + var p; + return p; + }; + toKindTypeExt = function toKindTypeExt$1(src) { + var _1, _ref, abiTyp, ext, kindType, src, t, t$1, t$2; + abiTyp = ptrType$4.nil; + _ref = src; + if ($assertType(_ref, ptrType$9, true)[1]) { + t = _ref.$val; + abiTyp = t.common(); + } else if ($assertType(_ref, ptrType$4, true)[1]) { + t$1 = _ref.$val; + abiTyp = t$1; + } else { + t$2 = _ref; + $panic(new $String("unexpected type in toKindTypeExt")); + } + ext = abiTyp.kindTypeExt; + if (!(ext === undefined)) { + return ext; + } + kindType = abiTyp.kindType; + _1 = abiTyp.Kind(); + if (_1 === (20)) { + ext = new interfaceType.ptr(new abi.InterfaceType.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, abi.NameOff.nil, abi.TypeOff.nil), new abi.Name.ptr("", "", false, false, ""), sliceType$15.nil)); + ext.InterfaceType = kindType; + } else if (_1 === (21)) { + ext = new mapType.ptr(new abi.MapType.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, abi.NameOff.nil, abi.TypeOff.nil), ptrType$4.nil, ptrType$4.nil, ptrType$4.nil, $throwNilPointerError, 0, 0, 0, 0)); + ext.MapType = kindType; + } else if (_1 === (22)) { + ext = new ptrType.ptr(new abi.PtrType.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, abi.NameOff.nil, abi.TypeOff.nil), ptrType$4.nil)); + ext.PtrType = kindType; + } else if (_1 === (23)) { + ext = new sliceType.ptr(new abi.SliceType.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, abi.NameOff.nil, abi.TypeOff.nil), ptrType$4.nil)); + ext.SliceType = kindType; + } else if (_1 === (25)) { + ext = new structType.ptr(new abi.StructType.ptr(new abi.Type.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$14.nil, abi.NameOff.nil, abi.TypeOff.nil), new abi.Name.ptr("", "", false, false, ""), sliceType$16.nil)); + ext.StructType = kindType; + } else { + $panic(new $String("unexpected kind in toKindTypeExt")); + } + abiTyp.kindTypeExt = ext; + return ext; + }; + Value.methods = [{prop: "typ", name: "typ", pkg: "reflect", typ: $funcType([], [ptrType$4], false)}, {prop: "pointer", name: "pointer", pkg: "reflect", typ: $funcType([], [$UnsafePointer], false)}, {prop: "Addr", name: "Addr", pkg: "", typ: $funcType([], [Value], false)}, {prop: "Bool", name: "Bool", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "panicNotBool", name: "panicNotBool", pkg: "reflect", typ: $funcType([], [], false)}, {prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType$2], false)}, {prop: "runes", name: "runes", pkg: "reflect", typ: $funcType([], [sliceType$10], false)}, {prop: "CanAddr", name: "CanAddr", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "CanSet", name: "CanSet", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Call", name: "Call", pkg: "", typ: $funcType([sliceType$8], [sliceType$8], false)}, {prop: "CallSlice", name: "CallSlice", pkg: "", typ: $funcType([sliceType$8], [sliceType$8], false)}, {prop: "capNonSlice", name: "capNonSlice", pkg: "reflect", typ: $funcType([], [$Int], false)}, {prop: "CanComplex", name: "CanComplex", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Complex", name: "Complex", pkg: "", typ: $funcType([], [$Complex128], false)}, {prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$6], [Value], false)}, {prop: "FieldByIndexErr", name: "FieldByIndexErr", pkg: "", typ: $funcType([sliceType$6], [Value, $error], false)}, {prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [Value], false)}, {prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$4], [Value], false)}, {prop: "CanFloat", name: "CanFloat", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Float", name: "Float", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "CanInt", name: "CanInt", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Int", name: "Int", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "CanInterface", name: "CanInterface", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Interface", name: "Interface", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "IsValid", name: "IsValid", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsZero", name: "IsZero", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "MapIndex", name: "MapIndex", pkg: "", typ: $funcType([Value], [Value], false)}, {prop: "MapKeys", name: "MapKeys", pkg: "", typ: $funcType([], [sliceType$8], false)}, {prop: "SetIterKey", name: "SetIterKey", pkg: "", typ: $funcType([ptrType$24], [], false)}, {prop: "SetIterValue", name: "SetIterValue", pkg: "", typ: $funcType([ptrType$24], [], false)}, {prop: "MapRange", name: "MapRange", pkg: "", typ: $funcType([], [ptrType$24], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Value], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Value], false)}, {prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "OverflowComplex", name: "OverflowComplex", pkg: "", typ: $funcType([$Complex128], [$Bool], false)}, {prop: "OverflowFloat", name: "OverflowFloat", pkg: "", typ: $funcType([$Float64], [$Bool], false)}, {prop: "OverflowInt", name: "OverflowInt", pkg: "", typ: $funcType([$Int64], [$Bool], false)}, {prop: "OverflowUint", name: "OverflowUint", pkg: "", typ: $funcType([$Uint64], [$Bool], false)}, {prop: "Recv", name: "Recv", pkg: "", typ: $funcType([], [Value, $Bool], false)}, {prop: "recv", name: "recv", pkg: "reflect", typ: $funcType([$Bool], [Value, $Bool], false)}, {prop: "Send", name: "Send", pkg: "", typ: $funcType([Value], [], false)}, {prop: "send", name: "send", pkg: "reflect", typ: $funcType([Value, $Bool], [$Bool], false)}, {prop: "SetBool", name: "SetBool", pkg: "", typ: $funcType([$Bool], [], false)}, {prop: "setRunes", name: "setRunes", pkg: "reflect", typ: $funcType([sliceType$10], [], false)}, {prop: "SetComplex", name: "SetComplex", pkg: "", typ: $funcType([$Complex128], [], false)}, {prop: "SetFloat", name: "SetFloat", pkg: "", typ: $funcType([$Float64], [], false)}, {prop: "SetInt", name: "SetInt", pkg: "", typ: $funcType([$Int64], [], false)}, {prop: "SetMapIndex", name: "SetMapIndex", pkg: "", typ: $funcType([Value, Value], [], false)}, {prop: "SetUint", name: "SetUint", pkg: "", typ: $funcType([$Uint64], [], false)}, {prop: "SetPointer", name: "SetPointer", pkg: "", typ: $funcType([$UnsafePointer], [], false)}, {prop: "SetString", name: "SetString", pkg: "", typ: $funcType([$String], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "stringNonString", name: "stringNonString", pkg: "reflect", typ: $funcType([], [$String], false)}, {prop: "TryRecv", name: "TryRecv", pkg: "", typ: $funcType([], [Value, $Bool], false)}, {prop: "TrySend", name: "TrySend", pkg: "", typ: $funcType([Value], [$Bool], false)}, {prop: "typeSlow", name: "typeSlow", pkg: "reflect", typ: $funcType([], [Type], false)}, {prop: "CanUint", name: "CanUint", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Uint", name: "Uint", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "UnsafeAddr", name: "UnsafeAddr", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "Grow", name: "Grow", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Convert", name: "Convert", pkg: "", typ: $funcType([Type], [Value], false)}, {prop: "CanConvert", name: "CanConvert", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Equal", name: "Equal", pkg: "", typ: $funcType([Value], [$Bool], false)}, {prop: "object", name: "object", pkg: "reflect", typ: $funcType([], [ptrType$2], false)}, {prop: "assignTo", name: "assignTo", pkg: "reflect", typ: $funcType([$String, ptrType$4, $UnsafePointer], [Value], false)}, {prop: "call", name: "call", pkg: "reflect", typ: $funcType([$String, sliceType$8], [sliceType$8], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Cap", name: "Cap", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Value], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [Value], false)}, {prop: "UnsafePointer", name: "UnsafePointer", pkg: "", typ: $funcType([], [$UnsafePointer], false)}, {prop: "grow", name: "grow", pkg: "reflect", typ: $funcType([$Int], [], false)}, {prop: "extendSlice", name: "extendSlice", pkg: "reflect", typ: $funcType([$Int], [Value], false)}, {prop: "Clear", name: "Clear", pkg: "", typ: $funcType([], [], false)}, {prop: "Index", name: "Index", pkg: "", typ: $funcType([$Int], [Value], false)}, {prop: "InterfaceData", name: "InterfaceData", pkg: "", typ: $funcType([], [arrayType$5], false)}, {prop: "SetZero", name: "SetZero", pkg: "", typ: $funcType([], [], false)}, {prop: "IsNil", name: "IsNil", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Pointer", name: "Pointer", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([Value], [], false)}, {prop: "bytesSlow", name: "bytesSlow", pkg: "reflect", typ: $funcType([], [sliceType$2], false)}, {prop: "SetBytes", name: "SetBytes", pkg: "", typ: $funcType([sliceType$2], [], false)}, {prop: "SetCap", name: "SetCap", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "SetLen", name: "SetLen", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Slice", name: "Slice", pkg: "", typ: $funcType([$Int, $Int], [Value], false)}, {prop: "Slice3", name: "Slice3", pkg: "", typ: $funcType([$Int, $Int, $Int], [Value], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [], false)}]; flag.methods = [{prop: "kind", name: "kind", pkg: "reflect", typ: $funcType([], [Kind], false)}, {prop: "ro", name: "ro", pkg: "reflect", typ: $funcType([], [flag], false)}, {prop: "mustBe", name: "mustBe", pkg: "reflect", typ: $funcType([Kind], [], false)}, {prop: "mustBeExported", name: "mustBeExported", pkg: "reflect", typ: $funcType([], [], false)}, {prop: "mustBeExportedSlow", name: "mustBeExportedSlow", pkg: "reflect", typ: $funcType([], [], false)}, {prop: "mustBeAssignable", name: "mustBeAssignable", pkg: "reflect", typ: $funcType([], [], false)}, {prop: "mustBeAssignableSlow", name: "mustBeAssignableSlow", pkg: "reflect", typ: $funcType([], [], false)}, {prop: "panicNotMap", name: "panicNotMap", pkg: "reflect", typ: $funcType([], [], false)}]; - ptrType$23.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$22.methods = [{prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Value], false)}, {prop: "Value", name: "Value", pkg: "", typ: $funcType([], [Value], false)}, {prop: "Next", name: "Next", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([Value], [], false)}]; + ptrType$25.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$24.methods = [{prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Value], false)}, {prop: "Value", name: "Value", pkg: "", typ: $funcType([], [Value], false)}, {prop: "Next", name: "Next", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([Value], [], false)}]; Kind.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$2.methods = [{prop: "textOff", name: "textOff", pkg: "reflect", typ: $funcType([textOff], [$UnsafePointer], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "Bits", name: "Bits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Align", name: "Align", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "FieldAlign", name: "FieldAlign", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "common", name: "common", pkg: "reflect", typ: $funcType([], [ptrType$2], false)}, {prop: "exportedMethods", name: "exportedMethods", pkg: "reflect", typ: $funcType([], [sliceType$13], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Method, $Bool], false)}, {prop: "PkgPath", name: "PkgPath", pkg: "", typ: $funcType([], [$String], false)}, {prop: "hasName", name: "hasName", pkg: "reflect", typ: $funcType([], [$Bool], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "ChanDir", name: "ChanDir", pkg: "", typ: $funcType([], [ChanDir], false)}, {prop: "IsVariadic", name: "IsVariadic", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [StructField], false)}, {prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$8], [StructField], false)}, {prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [StructField, $Bool], false)}, {prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$3], [StructField, $Bool], false)}, {prop: "In", name: "In", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumIn", name: "NumIn", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumOut", name: "NumOut", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Out", name: "Out", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "Implements", name: "Implements", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "AssignableTo", name: "AssignableTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "ConvertibleTo", name: "ConvertibleTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "gcSlice", name: "gcSlice", pkg: "reflect", typ: $funcType([$Uintptr, $Uintptr], [sliceType$4], false)}, {prop: "uncommon", name: "uncommon", pkg: "reflect", typ: $funcType([], [ptrType$9], false)}, {prop: "nameOff", name: "nameOff", pkg: "reflect", typ: $funcType([nameOff], [name], false)}, {prop: "typeOff", name: "typeOff", pkg: "reflect", typ: $funcType([typeOff], [ptrType$2], false)}, {prop: "ptrTo", name: "ptrTo", pkg: "reflect", typ: $funcType([], [ptrType$2], false)}, {prop: "pointers", name: "pointers", pkg: "reflect", typ: $funcType([], [$Bool], false)}, {prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Method], false)}]; + ptrType$9.methods = [{prop: "common", name: "common", pkg: "reflect", typ: $funcType([], [ptrType$4], false)}, {prop: "uncommon", name: "uncommon", pkg: "reflect", typ: $funcType([], [ptrType$10], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "Bits", name: "Bits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Align", name: "Align", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "FieldAlign", name: "FieldAlign", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "exportedMethods", name: "exportedMethods", pkg: "reflect", typ: $funcType([], [sliceType$11], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Method, $Bool], false)}, {prop: "PkgPath", name: "PkgPath", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "ChanDir", name: "ChanDir", pkg: "", typ: $funcType([], [ChanDir], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [StructField], false)}, {prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$6], [StructField], false)}, {prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [StructField, $Bool], false)}, {prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$4], [StructField, $Bool], false)}, {prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "In", name: "In", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "NumIn", name: "NumIn", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumOut", name: "NumOut", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Out", name: "Out", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "IsVariadic", name: "IsVariadic", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Implements", name: "Implements", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "AssignableTo", name: "AssignableTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "ConvertibleTo", name: "ConvertibleTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "nameOff", name: "nameOff", pkg: "reflect", typ: $funcType([abi.NameOff], [abi.Name], false)}, {prop: "typeOff", name: "typeOff", pkg: "reflect", typ: $funcType([abi.TypeOff], [ptrType$4], false)}, {prop: "textOff", name: "textOff", pkg: "reflect", typ: $funcType([abi.TextOff], [$UnsafePointer], false)}, {prop: "ptrTo", name: "ptrTo", pkg: "reflect", typ: $funcType([], [ptrType$4], false)}, {prop: "pointers", name: "pointers", pkg: "reflect", typ: $funcType([], [$Bool], false)}, {prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Method], false)}]; ChanDir.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$10.methods = [{prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Method], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Method, $Bool], false)}]; - ptrType$25.methods = [{prop: "embedded", name: "embedded", pkg: "reflect", typ: $funcType([], [$Bool], false)}]; - ptrType$12.methods = [{prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [StructField], false)}, {prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$8], [StructField], false)}, {prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$3], [StructField, $Bool], false)}, {prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [StructField, $Bool], false)}]; + ptrType$11.methods = [{prop: "nameOff", name: "nameOff", pkg: "reflect", typ: $funcType([abi.NameOff], [abi.Name], false)}, {prop: "typeOff", name: "typeOff", pkg: "reflect", typ: $funcType([abi.TypeOff], [ptrType$4], false)}, {prop: "common", name: "common", pkg: "reflect", typ: $funcType([], [ptrType$4], false)}, {prop: "uncommon", name: "uncommon", pkg: "reflect", typ: $funcType([], [ptrType$10], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Method], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Method, $Bool], false)}]; + ptrType$13.methods = [{prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [StructField], false)}, {prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$6], [StructField], false)}, {prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$4], [StructField, $Bool], false)}, {prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [StructField, $Bool], false)}]; Method.methods = [{prop: "IsExported", name: "IsExported", pkg: "", typ: $funcType([], [$Bool], false)}]; StructField.methods = [{prop: "IsExported", name: "IsExported", pkg: "", typ: $funcType([], [$Bool], false)}]; StructTag.methods = [{prop: "Get", name: "Get", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "Lookup", name: "Lookup", pkg: "", typ: $funcType([$String], [$String, $Bool], false)}]; - ptrType$9.methods = [{prop: "methods", name: "methods", pkg: "reflect", typ: $funcType([], [sliceType$13], false)}, {prop: "exportedMethods", name: "exportedMethods", pkg: "reflect", typ: $funcType([], [sliceType$13], false)}]; - ptrType$19.methods = [{prop: "in$", name: "in", pkg: "reflect", typ: $funcType([], [sliceType$3], false)}, {prop: "out", name: "out", pkg: "reflect", typ: $funcType([], [sliceType$3], false)}]; - name.methods = [{prop: "data", name: "data", pkg: "reflect", typ: $funcType([$Int, $String], [ptrType$13], false)}, {prop: "hasTag", name: "hasTag", pkg: "reflect", typ: $funcType([], [$Bool], false)}, {prop: "readVarint", name: "readVarint", pkg: "reflect", typ: $funcType([$Int], [$Int, $Int], false)}, {prop: "name", name: "name", pkg: "reflect", typ: $funcType([], [$String], false)}, {prop: "tag", name: "tag", pkg: "reflect", typ: $funcType([], [$String], false)}, {prop: "pkgPath", name: "pkgPath", pkg: "reflect", typ: $funcType([], [$String], false)}, {prop: "isExported", name: "isExported", pkg: "reflect", typ: $funcType([], [$Bool], false)}, {prop: "embedded", name: "embedded", pkg: "reflect", typ: $funcType([], [$Bool], false)}, {prop: "setPkgPath", name: "setPkgPath", pkg: "reflect", typ: $funcType([$String], [], false)}]; - ptrType$26.methods = [{prop: "initialized", name: "initialized", pkg: "reflect", typ: $funcType([], [$Bool], false)}, {prop: "skipUntilValidKey", name: "skipUntilValidKey", pkg: "reflect", typ: $funcType([], [], false)}]; - Value.init("reflect", [{prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "ptr", name: "ptr", embedded: false, exported: false, typ: $UnsafePointer, tag: ""}, {prop: "flag", name: "flag", embedded: true, exported: false, typ: flag, tag: ""}]); + ptrType$19.methods = [{prop: "initialized", name: "initialized", pkg: "reflect", typ: $funcType([], [$Bool], false)}, {prop: "skipUntilValidKey", name: "skipUntilValidKey", pkg: "reflect", typ: $funcType([], [], false)}]; + Value.init("reflect", [{prop: "typ_", name: "typ_", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "ptr", name: "ptr", embedded: false, exported: false, typ: $UnsafePointer, tag: ""}, {prop: "flag", name: "flag", embedded: true, exported: false, typ: flag, tag: ""}]); ValueError.init("", [{prop: "Method", name: "Method", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Kind", name: "Kind", embedded: false, exported: true, typ: Kind, tag: ""}]); - emptyInterface.init("reflect", [{prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "word", name: "word", embedded: false, exported: false, typ: $UnsafePointer, tag: ""}]); MapIter.init("reflect", [{prop: "m", name: "m", embedded: false, exported: false, typ: Value, tag: ""}, {prop: "hiter", name: "hiter", embedded: false, exported: false, typ: hiter, tag: ""}]); - Type.init([{prop: "Align", name: "Align", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "AssignableTo", name: "AssignableTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Bits", name: "Bits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "ChanDir", name: "ChanDir", pkg: "", typ: $funcType([], [ChanDir], false)}, {prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "ConvertibleTo", name: "ConvertibleTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [StructField], false)}, {prop: "FieldAlign", name: "FieldAlign", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$8], [StructField], false)}, {prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [StructField, $Bool], false)}, {prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$3], [StructField, $Bool], false)}, {prop: "Implements", name: "Implements", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "In", name: "In", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "IsVariadic", name: "IsVariadic", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Method], false)}, {prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Method, $Bool], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumIn", name: "NumIn", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumOut", name: "NumOut", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Out", name: "Out", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "PkgPath", name: "PkgPath", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "common", name: "common", pkg: "reflect", typ: $funcType([], [ptrType$2], false)}, {prop: "uncommon", name: "uncommon", pkg: "reflect", typ: $funcType([], [ptrType$9], false)}]); - rtype.init("reflect", [{prop: "size", name: "size", embedded: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "ptrdata", name: "ptrdata", embedded: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "hash", name: "hash", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "tflag", name: "tflag", embedded: false, exported: false, typ: tflag, tag: ""}, {prop: "align", name: "align", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "fieldAlign", name: "fieldAlign", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "kind", name: "kind", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "equal", name: "equal", embedded: false, exported: false, typ: funcType$4, tag: ""}, {prop: "gcdata", name: "gcdata", embedded: false, exported: false, typ: ptrType$13, tag: ""}, {prop: "str", name: "str", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "ptrToThis", name: "ptrToThis", embedded: false, exported: false, typ: typeOff, tag: ""}]); - method.init("reflect", [{prop: "name", name: "name", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "mtyp", name: "mtyp", embedded: false, exported: false, typ: typeOff, tag: ""}, {prop: "ifn", name: "ifn", embedded: false, exported: false, typ: textOff, tag: ""}, {prop: "tfn", name: "tfn", embedded: false, exported: false, typ: textOff, tag: ""}]); - arrayType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "slice", name: "slice", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "len", name: "len", embedded: false, exported: false, typ: $Uintptr, tag: ""}]); - chanType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "dir", name: "dir", embedded: false, exported: false, typ: $Uintptr, tag: ""}]); - imethod.init("reflect", [{prop: "name", name: "name", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: typeOff, tag: ""}]); - interfaceType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "pkgPath", name: "pkgPath", embedded: false, exported: false, typ: name, tag: ""}, {prop: "methods", name: "methods", embedded: false, exported: false, typ: sliceType$16, tag: ""}]); - mapType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "key", name: "key", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "bucket", name: "bucket", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "hasher", name: "hasher", embedded: false, exported: false, typ: funcType$5, tag: ""}, {prop: "keysize", name: "keysize", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "valuesize", name: "valuesize", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "bucketsize", name: "bucketsize", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "flags", name: "flags", embedded: false, exported: false, typ: $Uint32, tag: ""}]); - ptrType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$2, tag: ""}]); - sliceType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$2, tag: ""}]); - structField.init("reflect", [{prop: "name", name: "name", embedded: false, exported: false, typ: name, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "offset", name: "offset", embedded: false, exported: false, typ: $Uintptr, tag: ""}]); - structType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "pkgPath", name: "pkgPath", embedded: false, exported: false, typ: name, tag: ""}, {prop: "fields", name: "fields", embedded: false, exported: false, typ: sliceType$17, tag: ""}]); + Type.init([{prop: "Align", name: "Align", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "AssignableTo", name: "AssignableTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Bits", name: "Bits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "ChanDir", name: "ChanDir", pkg: "", typ: $funcType([], [ChanDir], false)}, {prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "ConvertibleTo", name: "ConvertibleTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [StructField], false)}, {prop: "FieldAlign", name: "FieldAlign", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$6], [StructField], false)}, {prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [StructField, $Bool], false)}, {prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$4], [StructField, $Bool], false)}, {prop: "Implements", name: "Implements", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "In", name: "In", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "IsVariadic", name: "IsVariadic", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Method], false)}, {prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Method, $Bool], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumIn", name: "NumIn", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumOut", name: "NumOut", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Out", name: "Out", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "PkgPath", name: "PkgPath", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "common", name: "common", pkg: "reflect", typ: $funcType([], [ptrType$4], false)}, {prop: "uncommon", name: "uncommon", pkg: "reflect", typ: $funcType([], [ptrType$10], false)}]); + rtype.init("reflect", [{prop: "t", name: "t", embedded: false, exported: false, typ: abi.Type, tag: ""}]); + interfaceType.init("", [{prop: "InterfaceType", name: "InterfaceType", embedded: true, exported: true, typ: abi.InterfaceType, tag: ""}]); + mapType.init("", [{prop: "MapType", name: "MapType", embedded: true, exported: true, typ: abi.MapType, tag: ""}]); + ptrType.init("", [{prop: "PtrType", name: "PtrType", embedded: true, exported: true, typ: abi.PtrType, tag: ""}]); + sliceType.init("", [{prop: "SliceType", name: "SliceType", embedded: true, exported: true, typ: abi.SliceType, tag: ""}]); + structType.init("", [{prop: "StructType", name: "StructType", embedded: true, exported: true, typ: abi.StructType, tag: ""}]); Method.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "PkgPath", name: "PkgPath", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: Type, tag: ""}, {prop: "Func", name: "Func", embedded: false, exported: true, typ: Value, tag: ""}, {prop: "Index", name: "Index", embedded: false, exported: true, typ: $Int, tag: ""}]); - StructField.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "PkgPath", name: "PkgPath", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: Type, tag: ""}, {prop: "Tag", name: "Tag", embedded: false, exported: true, typ: StructTag, tag: ""}, {prop: "Offset", name: "Offset", embedded: false, exported: true, typ: $Uintptr, tag: ""}, {prop: "Index", name: "Index", embedded: false, exported: true, typ: sliceType$8, tag: ""}, {prop: "Anonymous", name: "Anonymous", embedded: false, exported: true, typ: $Bool, tag: ""}]); - fieldScan.init("reflect", [{prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType$12, tag: ""}, {prop: "index", name: "index", embedded: false, exported: false, typ: sliceType$8, tag: ""}]); - uncommonType.init("reflect", [{prop: "pkgPath", name: "pkgPath", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "mcount", name: "mcount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "xcount", name: "xcount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "moff", name: "moff", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "_methods", name: "_methods", embedded: false, exported: false, typ: sliceType$13, tag: ""}]); - funcType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: "reflect:\"func\""}, {prop: "inCount", name: "inCount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "outCount", name: "outCount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "_in", name: "_in", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "_out", name: "_out", embedded: false, exported: false, typ: sliceType$3, tag: ""}]); - name.init("reflect", [{prop: "bytes", name: "bytes", embedded: false, exported: false, typ: ptrType$13, tag: ""}]); - nameData.init("reflect", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "tag", name: "tag", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "exported", name: "exported", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "embedded", name: "embedded", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "pkgPath", name: "pkgPath", embedded: false, exported: false, typ: $String, tag: ""}]); - hiter.init("reflect", [{prop: "t", name: "t", embedded: false, exported: false, typ: Type, tag: ""}, {prop: "m", name: "m", embedded: false, exported: false, typ: ptrType$3, tag: ""}, {prop: "keys", name: "keys", embedded: false, exported: false, typ: ptrType$3, tag: ""}, {prop: "i", name: "i", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "last", name: "last", embedded: false, exported: false, typ: ptrType$3, tag: ""}]); + StructField.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "PkgPath", name: "PkgPath", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: Type, tag: ""}, {prop: "Tag", name: "Tag", embedded: false, exported: true, typ: StructTag, tag: ""}, {prop: "Offset", name: "Offset", embedded: false, exported: true, typ: $Uintptr, tag: ""}, {prop: "Index", name: "Index", embedded: false, exported: true, typ: sliceType$6, tag: ""}, {prop: "Anonymous", name: "Anonymous", embedded: false, exported: true, typ: $Bool, tag: ""}]); + fieldScan.init("reflect", [{prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType$13, tag: ""}, {prop: "index", name: "index", embedded: false, exported: false, typ: sliceType$6, tag: ""}]); + hiter.init("reflect", [{prop: "t", name: "t", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "m", name: "m", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "keys", name: "keys", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "i", name: "i", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "last", name: "last", embedded: false, exported: false, typ: ptrType$2, tag: ""}]); }; $init = function() { $pkg.$init = function() {}; @@ -17939,16 +15543,12 @@ $packages["reflect"] = (function() { $r = unicode.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = utf8.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } zeroVal = arrayType$1.zero(); - nameOffList = sliceType$2.nil; - typeOffList = sliceType$3.nil; - bytesType = rtypeOf((sliceType$4.nil)); + dummy = new structType$1.ptr(false, $ifaceNil); + bytesType = rtypeOf((sliceType$2.nil)); uint8Type = rtypeOf(new $Uint8(0)); stringType = rtypeOf(new $String("")); - kindNames = new sliceType$5(["invalid", "bool", "int", "int8", "int16", "int32", "int64", "uint", "uint8", "uint16", "uint32", "uint64", "uintptr", "float32", "float64", "complex64", "complex128", "array", "chan", "func", "interface", "map", "ptr", "slice", "string", "struct", "unsafe.Pointer"]); - initialized = false; - nameMap = new $global.Map(); + kindNames = new sliceType$3(["invalid", "bool", "int", "int8", "int16", "int32", "int64", "uint", "uint8", "uint16", "uint32", "uint64", "uintptr", "float32", "float64", "complex64", "complex128", "array", "chan", "func", "interface", "map", "ptr", "slice", "string", "struct", "unsafe.Pointer"]); callHelper = $assertType($internalize($call, $emptyInterface), funcType$1); - jsObjectPtr = reflectType($jsObjectPtr); selectHelper = $assertType($internalize($select, $emptyInterface), funcType$1); $r = init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; @@ -17957,7 +15557,7 @@ $packages["reflect"] = (function() { return $pkg; })(); $packages["sort"] = (function() { - var $pkg = {}, $init, reflectlite, bits, xorshift, lessSwap, IntSlice, StringSlice, ptrType, ptrType$1, sliceType, sliceType$2, funcType, funcType$1, insertionSort, siftDown, heapSort, pdqsort, partition, partitionEqual, partialInsertionSort, breakPatterns, choosePivot, order2, median, medianAdjacent, reverseRange, swapRange, stable, symMerge, rotate, insertionSort_func, siftDown_func, heapSort_func, pdqsort_func, partition_func, partitionEqual_func, partialInsertionSort_func, breakPatterns_func, choosePivot_func, order2_func, median_func, medianAdjacent_func, reverseRange_func, Sort, nextPowerOfTwo, IsSorted, Ints, Strings, Stable, Slice, Search, SearchInts, SearchStrings; + var $pkg = {}, $init, reflectlite, bits, xorshift, lessSwap, IntSlice, StringSlice, ptrType, ptrType$1, sliceType, sliceType$2, funcType, funcType$1, insertionSort, siftDown, heapSort, pdqsort, partition, partitionEqual, partialInsertionSort, breakPatterns, choosePivot, order2, median, medianAdjacent, reverseRange, swapRange, stable, symMerge, rotate, insertionSort_func, siftDown_func, heapSort_func, pdqsort_func, partition_func, partitionEqual_func, partialInsertionSort_func, breakPatterns_func, choosePivot_func, order2_func, median_func, medianAdjacent_func, reverseRange_func, Sort, nextPowerOfTwo, Ints, Strings, Stable, Slice, Search, SearchInts, SearchStrings; reflectlite = $packages["internal/reflectlite"]; bits = $packages["math/bits"]; xorshift = $newType(8, $kindUint64, "sort.xorshift", true, "sort", false, null); @@ -19114,27 +16714,6 @@ $packages["sort"] = (function() { shift = ((bits.Len(((length >>> 0))) >>> 0)); return (((y = shift, y < 32 ? (1 << y) : 0) >>> 0)); }; - IsSorted = function IsSorted$1(data) { - var {_r, _r$1, data, i, n, $s, $r, $c} = $restore(this, {data}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = data.Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - n = _r; - i = n - 1 >> 0; - /* while (true) { */ case 2: - /* if (!(i > 0)) { break; } */ if(!(i > 0)) { $s = 3; continue; } - _r$1 = data.Less(i, i - 1 >> 0); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_r$1) { */ case 4: - $s = -1; return false; - /* } */ case 5: - i = i - (1) >> 0; - $s = 2; continue; - case 3: - $s = -1; return true; - /* */ } return; } var $f = {$blk: IsSorted$1, $c: true, $r, _r, _r$1, data, i, n, $s};return $f; - }; - $pkg.IsSorted = IsSorted; IntSlice.prototype.Len = function Len() { var x; x = this; @@ -19223,17 +16802,15 @@ $packages["sort"] = (function() { }; $pkg.Stable = Stable; Slice = function Slice$1(x, less) { - var {_r, _r$1, length, less, limit, rv, swap, x, $s, $r, $c} = $restore(this, {x, less}); + var {length, less, limit, rv, swap, x, $s, $r, $c} = $restore(this, {x, less}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = reflectlite.ValueOf(x); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - rv = $clone(_r, reflectlite.Value); - _r$1 = reflectlite.Swapper(x); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - swap = _r$1; + rv = $clone(reflectlite.ValueOf(x), reflectlite.Value); + swap = reflectlite.Swapper(x); length = $clone(rv, reflectlite.Value).Len(); limit = bits.Len(((length >>> 0))); - $r = pdqsort_func($clone(new lessSwap.ptr(less, swap), lessSwap), 0, length, limit); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = pdqsort_func($clone(new lessSwap.ptr(less, swap), lessSwap), 0, length, limit); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } var $f = {$blk: Slice$1, $c: true, $r, _r, _r$1, length, less, limit, rv, swap, x, $s};return $f; + /* */ } return; } var $f = {$blk: Slice$1, $c: true, $r, length, less, limit, rv, swap, x, $s};return $f; }; $pkg.Slice = Slice; Search = function Search$1(n, f) { @@ -19371,7 +16948,7 @@ $packages["internal/fmtsort"] = (function() { (x$7 = o.Value, ((j < 0 || j >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + j] = _tmp$3)); }; Sort = function Sort$1(mapValue) { - var {_r, _r$1, _r$2, _r$3, _r$4, iter, key, mapValue, n, sorted, value, $s, $r, $c} = $restore(this, {mapValue}); + var {_r, iter, key, mapValue, n, sorted, value, $s, $r, $c} = $restore(this, {mapValue}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: _r = $clone(mapValue, reflect.Value).Type().Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } /* */ if (!((_r === 21))) { $s = 1; continue; } @@ -19379,28 +16956,23 @@ $packages["internal/fmtsort"] = (function() { /* if (!((_r === 21))) { */ case 1: $s = -1; return ptrType.nil; /* } */ case 2: - _r$1 = $clone(mapValue, reflect.Value).Len(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - n = _r$1; + n = $clone(mapValue, reflect.Value).Len(); key = $makeSlice(sliceType, 0, n); value = $makeSlice(sliceType, 0, n); iter = $clone(mapValue, reflect.Value).MapRange(); - /* while (true) { */ case 5: - _r$2 = iter.Next(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* if (!(_r$2)) { break; } */ if(!(_r$2)) { $s = 6; continue; } - _r$3 = iter.Key(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - key = $append(key, _r$3); - _r$4 = iter.Value(); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - value = $append(value, _r$4); - $s = 5; continue; - case 6: + while (true) { + if (!(iter.Next())) { break; } + key = $append(key, iter.Key()); + value = $append(value, iter.Value()); + } sorted = new SortedMap.ptr(key, value); - $r = sort.Stable(sorted); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sort.Stable(sorted); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return sorted; - /* */ } return; } var $f = {$blk: Sort$1, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, iter, key, mapValue, n, sorted, value, $s};return $f; + /* */ } return; } var $f = {$blk: Sort$1, $c: true, $r, _r, iter, key, mapValue, n, sorted, value, $s};return $f; }; $pkg.Sort = Sort; compare = function compare$1(aVal, bVal) { - var {$24r, _1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, a, a$1, a$2, a$3, a$4, a$5, aType, aVal, ap, b, b$1, b$2, b$3, b$4, b$5, bType, bVal, bp, c, c$1, c$2, c$3, c$4, c$5, i, i$1, ok, ok$1, $s, $r, $c} = $restore(this, {aVal, bVal}); + var {$24r, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, a, a$1, a$2, a$3, a$4, a$5, aType, aVal, ap, b, b$1, b$2, b$3, b$4, b$5, bType, bVal, bp, c, c$1, c$2, c$3, c$4, c$5, i, i$1, ok, ok$1, $s, $r, $c} = $restore(this, {aVal, bVal}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: _tmp = $clone(aVal, reflect.Value).Type(); _tmp$1 = $clone(bVal, reflect.Value).Type(); @@ -19524,12 +17096,8 @@ $packages["internal/fmtsort"] = (function() { i = 0; /* while (true) { */ case 17: /* if (!(i < $clone(aVal, reflect.Value).NumField())) { break; } */ if(!(i < $clone(aVal, reflect.Value).NumField())) { $s = 18; continue; } - _r$2 = $clone(aVal, reflect.Value).Field(i); /* */ $s = 19; case 19: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _arg = $clone(_r$2, reflect.Value); - _r$3 = $clone(bVal, reflect.Value).Field(i); /* */ $s = 20; case 20: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _arg$1 = $clone(_r$3, reflect.Value); - _r$4 = compare(_arg, _arg$1); /* */ $s = 21; case 21: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - c$2 = _r$4; + _r$2 = compare($clone($clone(aVal, reflect.Value).Field(i), reflect.Value), $clone($clone(bVal, reflect.Value).Field(i), reflect.Value)); /* */ $s = 19; case 19: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + c$2 = _r$2; if (!((c$2 === 0))) { $s = -1; return c$2; } @@ -19539,21 +17107,16 @@ $packages["internal/fmtsort"] = (function() { $s = -1; return 0; /* } else if (_1 === (17)) { */ case 11: i$1 = 0; - /* while (true) { */ case 22: - _r$5 = $clone(aVal, reflect.Value).Len(); /* */ $s = 24; case 24: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* if (!(i$1 < _r$5)) { break; } */ if(!(i$1 < _r$5)) { $s = 23; continue; } - _r$6 = $clone(aVal, reflect.Value).Index(i$1); /* */ $s = 25; case 25: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _arg$2 = $clone(_r$6, reflect.Value); - _r$7 = $clone(bVal, reflect.Value).Index(i$1); /* */ $s = 26; case 26: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _arg$3 = $clone(_r$7, reflect.Value); - _r$8 = compare(_arg$2, _arg$3); /* */ $s = 27; case 27: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - c$3 = _r$8; + /* while (true) { */ case 20: + /* if (!(i$1 < $clone(aVal, reflect.Value).Len())) { break; } */ if(!(i$1 < $clone(aVal, reflect.Value).Len())) { $s = 21; continue; } + _r$3 = compare($clone($clone(aVal, reflect.Value).Index(i$1), reflect.Value), $clone($clone(bVal, reflect.Value).Index(i$1), reflect.Value)); /* */ $s = 22; case 22: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + c$3 = _r$3; if (!((c$3 === 0))) { $s = -1; return c$3; } i$1 = i$1 + (1) >> 0; - $s = 22; continue; - case 23: + $s = 20; continue; + case 21: $s = -1; return 0; /* } else if (_1 === (20)) { */ case 12: _tuple$1 = nilCompare($clone(aVal, reflect.Value), $clone(bVal, reflect.Value)); @@ -19562,33 +17125,21 @@ $packages["internal/fmtsort"] = (function() { if (ok$1) { $s = -1; return c$4; } - _r$9 = $clone(aVal, reflect.Value).Elem(); /* */ $s = 28; case 28: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _r$10 = $clone(_r$9, reflect.Value).Type(); /* */ $s = 29; case 29: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _r$11 = reflect.ValueOf(_r$10); /* */ $s = 30; case 30: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _arg$4 = $clone(_r$11, reflect.Value); - _r$12 = $clone(bVal, reflect.Value).Elem(); /* */ $s = 31; case 31: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _r$13 = $clone(_r$12, reflect.Value).Type(); /* */ $s = 32; case 32: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - _r$14 = reflect.ValueOf(_r$13); /* */ $s = 33; case 33: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - _arg$5 = $clone(_r$14, reflect.Value); - _r$15 = compare(_arg$4, _arg$5); /* */ $s = 34; case 34: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - c$5 = _r$15; + _r$4 = compare($clone(reflect.ValueOf($clone($clone(aVal, reflect.Value).Elem(), reflect.Value).Type()), reflect.Value), $clone(reflect.ValueOf($clone($clone(bVal, reflect.Value).Elem(), reflect.Value).Type()), reflect.Value)); /* */ $s = 23; case 23: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + c$5 = _r$4; if (!((c$5 === 0))) { $s = -1; return c$5; } - _r$16 = $clone(aVal, reflect.Value).Elem(); /* */ $s = 35; case 35: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - _arg$6 = $clone(_r$16, reflect.Value); - _r$17 = $clone(bVal, reflect.Value).Elem(); /* */ $s = 36; case 36: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - _arg$7 = $clone(_r$17, reflect.Value); - _r$18 = compare(_arg$6, _arg$7); /* */ $s = 37; case 37: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - $24r = _r$18; - $s = 38; case 38: return $24r; + _r$5 = compare($clone($clone(aVal, reflect.Value).Elem(), reflect.Value), $clone($clone(bVal, reflect.Value).Elem(), reflect.Value)); /* */ $s = 24; case 24: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $24r = _r$5; + $s = 25; case 25: return $24r; /* } else { */ case 13: - _r$19 = aType.String(); /* */ $s = 39; case 39: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - $panic(new $String("bad type in compare: " + _r$19)); + _r$6 = aType.String(); /* */ $s = 26; case 26: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $panic(new $String("bad type in compare: " + _r$6)); /* } */ case 14: case 1: $s = -1; return 0; - /* */ } return; } var $f = {$blk: compare$1, $c: true, $r, $24r, _1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, a, a$1, a$2, a$3, a$4, a$5, aType, aVal, ap, b, b$1, b$2, b$3, b$4, b$5, bType, bVal, bp, c, c$1, c$2, c$3, c$4, c$5, i, i$1, ok, ok$1, $s};return $f; + /* */ } return; } var $f = {$blk: compare$1, $c: true, $r, $24r, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, a, a$1, a$2, a$3, a$4, a$5, aType, aVal, ap, b, b$1, b$2, b$3, b$4, b$5, bType, bVal, bp, c, c$1, c$2, c$3, c$4, c$5, i, i$1, ok, ok$1, $s};return $f; }; nilCompare = function nilCompare$1(aVal, bVal) { var aVal, bVal; @@ -19634,17 +17185,15 @@ $packages["internal/fmtsort"] = (function() { return $pkg; })(); $packages["io"] = (function() { - var $pkg = {}, $init, errors, sync, Reader, Writer, ReaderFrom, WriterTo, ByteScanner, RuneReader, RuneScanner, StringWriter, LimitedReader, sliceType, sliceType$1, ptrType$2, ptrType$3, errInvalidWrite, errWhence, errOffset, blackHolePool, WriteString, Copy, copyBuffer, ReadAll; + var $pkg = {}, $init, errors, sync, Reader, Writer, ReaderFrom, WriterTo, RuneReader, RuneScanner, LimitedReader, sliceType, sliceType$1, ptrType$2, ptrType$3, errInvalidWrite, errWhence, errOffset, blackHolePool, Copy, copyBuffer, ReadAll; errors = $packages["errors"]; sync = $packages["sync"]; Reader = $newType(8, $kindInterface, "io.Reader", true, "io", true, null); Writer = $newType(8, $kindInterface, "io.Writer", true, "io", true, null); ReaderFrom = $newType(8, $kindInterface, "io.ReaderFrom", true, "io", true, null); WriterTo = $newType(8, $kindInterface, "io.WriterTo", true, "io", true, null); - ByteScanner = $newType(8, $kindInterface, "io.ByteScanner", true, "io", true, null); RuneReader = $newType(8, $kindInterface, "io.RuneReader", true, "io", true, null); RuneScanner = $newType(8, $kindInterface, "io.RuneScanner", true, "io", true, null); - StringWriter = $newType(8, $kindInterface, "io.StringWriter", true, "io", true, null); LimitedReader = $newType(0, $kindStruct, "io.LimitedReader", true, "io", true, function(R_, N_) { this.$val = this; if (arguments.length === 0) { @@ -19659,43 +17208,14 @@ $packages["io"] = (function() { $pkg.Writer = Writer; $pkg.ReaderFrom = ReaderFrom; $pkg.WriterTo = WriterTo; - $pkg.ByteScanner = ByteScanner; $pkg.RuneReader = RuneReader; $pkg.RuneScanner = RuneScanner; - $pkg.StringWriter = StringWriter; $pkg.LimitedReader = LimitedReader; $pkg.$finishSetup = function() { sliceType = $sliceType($emptyInterface); sliceType$1 = $sliceType($Uint8); ptrType$2 = $ptrType(sliceType$1); ptrType$3 = $ptrType(LimitedReader); - WriteString = function WriteString$2(w, s) { - var {$24r, $24r$1, _r, _r$1, _tuple, _tuple$1, _tuple$2, err, n, ok, s, sw, w, $s, $r, $c} = $restore(this, {w, s}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - n = 0; - err = $ifaceNil; - _tuple = $assertType(w, StringWriter, true); - sw = _tuple[0]; - ok = _tuple[1]; - /* */ if (ok) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (ok) { */ case 1: - _r = sw.WriteString(s); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple$1 = _r; - n = _tuple$1[0]; - err = _tuple$1[1]; - $24r = [n, err]; - $s = 4; case 4: return $24r; - /* } */ case 2: - _r$1 = w.Write((new sliceType$1($stringToBytes(s)))); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$2 = _r$1; - n = _tuple$2[0]; - err = _tuple$2[1]; - $24r$1 = [n, err]; - $s = 6; case 6: return $24r$1; - /* */ } return; } var $f = {$blk: WriteString$2, $c: true, $r, $24r, $24r$1, _r, _r$1, _tuple, _tuple$1, _tuple$2, err, n, ok, s, sw, w, $s};return $f; - }; - $pkg.WriteString = WriteString; Copy = function Copy$1(dst, src) { var {$24r, _r, _tuple, dst, err, src, written, $s, $r, $c} = $restore(this, {dst, src}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: @@ -19827,9 +17347,6 @@ $packages["io"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: b = $makeSlice(sliceType$1, 0, 512); /* while (true) { */ case 1: - if (b.$length === b.$capacity) { - b = $subslice($append(b, 0), 0, b.$length); - } _r = r.Read($subslice(b, b.$length, b.$capacity)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } _tuple = _r; n = _tuple[0]; @@ -19841,6 +17358,9 @@ $packages["io"] = (function() { } $s = -1; return [b, err]; } + if (b.$length === b.$capacity) { + b = $subslice($append(b, 0), 0, b.$length); + } $s = 1; continue; case 2: $s = -1; return [sliceType$1.nil, $ifaceNil]; @@ -19852,10 +17372,8 @@ $packages["io"] = (function() { Writer.init([{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}]); ReaderFrom.init([{prop: "ReadFrom", name: "ReadFrom", pkg: "", typ: $funcType([Reader], [$Int64, $error], false)}]); WriterTo.init([{prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([Writer], [$Int64, $error], false)}]); - ByteScanner.init([{prop: "ReadByte", name: "ReadByte", pkg: "", typ: $funcType([], [$Uint8, $error], false)}, {prop: "UnreadByte", name: "UnreadByte", pkg: "", typ: $funcType([], [$error], false)}]); RuneReader.init([{prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}]); RuneScanner.init([{prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}, {prop: "UnreadRune", name: "UnreadRune", pkg: "", typ: $funcType([], [$error], false)}]); - StringWriter.init([{prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}]); LimitedReader.init("", [{prop: "R", name: "R", embedded: false, exported: true, typ: Reader, tag: ""}, {prop: "N", name: "N", embedded: false, exported: true, typ: $Int64, tag: ""}]); }; $init = function() { @@ -20535,6 +18053,8 @@ $packages["syscall"] = (function() { return (e === 17) || (e === 39); } else if ($interfaceIsEqual(_1, (oserror.ErrNotExist))) { return e === 2; + } else if ($interfaceIsEqual(_1, (errors.ErrUnsupported))) { + return (e === 38) || (e === 95) || (e === 95); } return false; }; @@ -21232,20 +18752,9 @@ $packages["syscall"] = (function() { return $pkg; })(); $packages["internal/syscall/unix"] = (function() { - var $pkg = {}, $init, syscall, IsNonblock, HasNonblockFlag, RecvfromInet4, RecvfromInet6, SendtoInet4, SendtoInet6, SendmsgNInet4, SendmsgNInet6, RecvmsgInet4, RecvmsgInet6; + var $pkg = {}, $init, syscall, HasNonblockFlag, RecvfromInet4, RecvfromInet6, SendtoInet4, SendtoInet6, SendmsgNInet4, SendmsgNInet6, RecvmsgInet4, RecvmsgInet6, Fcntl; syscall = $packages["syscall"]; $pkg.$finishSetup = function() { - IsNonblock = function IsNonblock$1(fd) { - var _tmp, _tmp$1, err, fd, nonblocking; - nonblocking = false; - err = $ifaceNil; - _tmp = false; - _tmp$1 = $ifaceNil; - nonblocking = _tmp; - err = _tmp$1; - return [nonblocking, err]; - }; - $pkg.IsNonblock = IsNonblock; HasNonblockFlag = function HasNonblockFlag$1(flag) { var flag; return false; @@ -21337,6 +18846,11 @@ $packages["internal/syscall/unix"] = (function() { return [n, oobn, recvflags, err]; }; $pkg.RecvmsgInet6 = RecvmsgInet6; + Fcntl = function Fcntl$1(fd, cmd, arg) { + var arg, cmd, fd; + return [0, new syscall.Errno(38)]; + }; + $pkg.Fcntl = Fcntl; }; $init = function() { $pkg.$init = function() {}; @@ -21534,7 +19048,7 @@ $packages["github.com/gopherjs/gopherjs/nosync"] = (function() { return $pkg; })(); $packages["time"] = (function() { - var $pkg = {}, $init, errors, js, nosync, runtime, syscall, Location, zone, zoneTrans, ruleKind, rule, Time, Month, Weekday, Duration, Timer, runtimeTimer, ParseError, sliceType, sliceType$1, ptrType, ptrType$1, sliceType$2, sliceType$3, sliceType$4, arrayType$2, funcType, arrayType$3, ptrType$4, chanType$1, ptrType$6, funcType$1, ptrType$7, ptrType$8, localLoc, localLoc$24ptr, localOnce, unnamedFixedZones, unnamedFixedZonesOnce, badData, utcLoc, utcLoc$24ptr, errLocation, daysBefore, startNano, x, _r, zoneSources, std0x, longDayNames, shortDayNames, shortMonthNames, longMonthNames, atoiError, errBad, errLeadingInt, FixedZone, fixedZone, tzset, tzsetName, tzsetOffset, tzsetRule, tzsetNum, tzruleTime, absWeekday, absClock, fmtFrac, fmtInt, lessThanHalf, absDate, daysIn, daysSinceEpoch, runtimeNano, Now, unixTime, Unix, isLeap, norm, Date, div, when, AfterFunc, goFunc, initLocal, itoa, init, now, startTimer, stopTimer, modTimer, resetTimer, parseRFC3339 = [], parseStrictRFC3339, startsWithLowerCase, nextStdChunk, match, lookup, appendInt, atoi = [], stdFracSecond, digitsLen, separator, appendNano, newParseError, cloneString, quote, isDigit = [], getnum, getnum3, cutspace, skip, Parse, parse, parseTimeZone, parseGMT, parseSignedOffset, commaOrPeriod, parseNanoseconds = [], leadingInt = []; + var $pkg = {}, $init, errors, js, nosync, runtime, syscall, Location, zone, zoneTrans, ruleKind, rule, Time, Month, Weekday, Duration, Timer, runtimeTimer, ParseError, sliceType, sliceType$1, ptrType, ptrType$1, sliceType$2, sliceType$3, sliceType$4, arrayType$2, ptrType$3, funcType, arrayType$3, chanType$1, ptrType$6, funcType$1, ptrType$7, ptrType$8, localLoc, localLoc$24ptr, localOnce, unnamedFixedZones, unnamedFixedZonesOnce, errBadData, utcLoc, utcLoc$24ptr, errLocation, daysBefore, startNano, x, _r, zoneSources, std0x, longDayNames, shortDayNames, shortMonthNames, longMonthNames, errAtoi, errBad, errLeadingInt, FixedZone, fixedZone, tzset, tzsetName, tzsetOffset, tzsetRule, tzsetNum, tzruleTime, absWeekday, absClock, fmtFrac, fmtInt, lessThanHalf, absDate, daysIn, daysSinceEpoch, runtimeNano, Now, unixTime, Unix, isLeap, norm, Date, div, when, AfterFunc, goFunc, initLocal, itoa, init, now, startTimer, stopTimer, modTimer, resetTimer, parseRFC3339 = [], parseStrictRFC3339, startsWithLowerCase, nextStdChunk, match, lookup, appendInt, atoi = [], stdFracSecond, digitsLen, separator, appendNano, newParseError, cloneString, quote, isDigit = [], getnum, getnum3, cutspace, skip, Parse, parse, parseTimeZone, parseGMT, parseSignedOffset, commaOrPeriod, parseNanoseconds = [], leadingInt = []; errors = $packages["errors"]; js = $packages["github.com/gopherjs/gopherjs/js"]; nosync = $packages["github.com/gopherjs/gopherjs/nosync"]; @@ -21687,9 +19201,9 @@ $packages["time"] = (function() { sliceType$3 = $sliceType($String); sliceType$4 = $sliceType($Uint8); arrayType$2 = $arrayType($Uint8, 32); + ptrType$3 = $ptrType(Time); funcType = $funcType([], [], false); arrayType$3 = $arrayType($Uint8, 64); - ptrType$4 = $ptrType(Time); chanType$1 = $chanType(Time, false, true); ptrType$6 = $ptrType(Timer); funcType$1 = $funcType([$emptyInterface, $Uintptr], [], false); @@ -21745,7 +19259,7 @@ $packages["time"] = (function() { fixedZone = function fixedZone$1(name, offset) { var l, name, offset, x$1; l = new Location.ptr(name, new sliceType([$clone(new zone.ptr(name, offset, false), zone)]), new sliceType$1([$clone(new zoneTrans.ptr(new $Int64(-2147483648, 0), 0, false, false), zoneTrans)]), "", new $Int64(-2147483648, 0), new $Int64(2147483647, 4294967295), ptrType.nil); - l.cacheZone = (x$1 = l.zone, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])); + l.cacheZone = (x$1 = l.zone, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + 0, ptrType))); return l; }; $ptrType(Location).prototype.lookup = function lookup$1(sec) { @@ -21777,7 +19291,7 @@ $packages["time"] = (function() { $s = -1; return [name, offset, start, end, isDST]; } if ((l.tx.$length === 0) || (x$3 = (x$4 = l.tx, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])).when, (sec.$high < x$3.$high || (sec.$high === x$3.$high && sec.$low < x$3.$low)))) { - zone$2 = (x$5 = l.zone, x$6 = l.lookupFirstZone(), ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$6])); + zone$2 = (x$5 = l.zone, x$6 = l.lookupFirstZone(), ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$5.$array, x$5.$offset + x$6, ptrType))); name = zone$2.name; offset = zone$2.offset; start = new $Int64(-2147483648, 0); @@ -21804,7 +19318,7 @@ $packages["time"] = (function() { lo = m; } } - zone$3 = (x$8 = l.zone, x$9 = ((lo < 0 || lo >= tx.$length) ? ($throwRuntimeError("index out of range"), undefined) : tx.$array[tx.$offset + lo]).index, ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + x$9])); + zone$3 = (x$8 = l.zone, x$9 = ((lo < 0 || lo >= tx.$length) ? ($throwRuntimeError("index out of range"), undefined) : tx.$array[tx.$offset + lo]).index, ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$8.$array, x$8.$offset + x$9, ptrType))); name = zone$3.name; offset = zone$3.offset; start = ((lo < 0 || lo >= tx.$length) ? ($throwRuntimeError("index out of range"), undefined) : tx.$array[tx.$offset + lo]).when; @@ -22444,7 +19958,7 @@ $packages["time"] = (function() { /* while (true) { */ case 2: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } i = _i; - zone$1 = (x$1 = l.zone, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])); + zone$1 = (x$1 = l.zone, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + i, ptrType))); /* */ if (zone$1.name === name) { $s = 4; continue; } /* */ $s = 5; continue; /* if (zone$1.name === name) { */ case 4: @@ -22468,7 +19982,7 @@ $packages["time"] = (function() { while (true) { if (!(_i$1 < _ref$1.$length)) { break; } i$1 = _i$1; - zone$2 = (x$3 = l.zone, ((i$1 < 0 || i$1 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + i$1])); + zone$2 = (x$3 = l.zone, ((i$1 < 0 || i$1 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$3.$array, x$3.$offset + i$1, ptrType))); if (zone$2.name === name) { _tmp$2 = zone$2.offset; _tmp$3 = true; @@ -23407,7 +20921,7 @@ $packages["time"] = (function() { if (version === 2) { offset = offset + ((((2 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 2]) >> 0))) >> 0; } - Time.copy(t, new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$1.nil)); + Time.copy((t === ptrType$3.nil && $throwNilPointerError(), t), new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$1.nil)); t.wall = (new $Uint64(0, nsec$1)); t.ext = sec$1; /* */ if (offset === -60) { $s = 1; continue; } @@ -23488,7 +21002,7 @@ $packages["time"] = (function() { err = $ifaceNil; _r$1 = parseStrictRFC3339(data); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple = _r$1; - Time.copy(t, _tuple[0]); + Time.copy((t === ptrType$3.nil && $throwNilPointerError(), t), _tuple[0]); err = _tuple[1]; $s = -1; return err; /* */ } return; } var $f = {$blk: UnmarshalJSON, $c: true, $r, _r$1, _tuple, data, err, t, x$1, $s};return $f; @@ -23521,7 +21035,7 @@ $packages["time"] = (function() { err = $ifaceNil; _r$1 = parseStrictRFC3339(data); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } _tuple = _r$1; - Time.copy(t, _tuple[0]); + Time.copy((t === ptrType$3.nil && $throwNilPointerError(), t), _tuple[0]); err = _tuple[1]; $s = -1; return err; /* */ } return; } var $f = {$blk: UnmarshalText, $c: true, $r, _r$1, _tuple, data, err, t, $s};return $f; @@ -24665,7 +22179,7 @@ $packages["time"] = (function() { x$1 = ((q.$low >> 0)); if (!($interfaceIsEqual(err, $ifaceNil)) || rem.length > 0) { _tmp = 0; - _tmp$1 = atoiError; + _tmp$1 = errAtoi; x$1 = _tmp; err = _tmp$1; return [x$1, err]; @@ -24695,7 +22209,7 @@ $packages["time"] = (function() { x$1 = ((q.$low >> 0)); if (!($interfaceIsEqual(err, $ifaceNil)) || rem.$length > 0) { _tmp = 0; - _tmp$1 = atoiError; + _tmp$1 = errAtoi; x$1 = _tmp; err = _tmp$1; return [x$1, err]; @@ -26053,7 +23567,7 @@ $packages["time"] = (function() { }; ptrType$1.methods = [{prop: "get", name: "get", pkg: "time", typ: $funcType([], [ptrType$1], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "lookup", name: "lookup", pkg: "time", typ: $funcType([$Int64], [$String, $Int, $Int64, $Int64, $Bool], false)}, {prop: "lookupFirstZone", name: "lookupFirstZone", pkg: "time", typ: $funcType([], [$Int], false)}, {prop: "firstZoneUsed", name: "firstZoneUsed", pkg: "time", typ: $funcType([], [$Bool], false)}, {prop: "lookupName", name: "lookupName", pkg: "time", typ: $funcType([$String, $Int64], [$Int, $Bool], false)}]; Time.methods = [{prop: "After", name: "After", pkg: "", typ: $funcType([Time], [$Bool], false)}, {prop: "Before", name: "Before", pkg: "", typ: $funcType([Time], [$Bool], false)}, {prop: "Compare", name: "Compare", pkg: "", typ: $funcType([Time], [$Int], false)}, {prop: "Equal", name: "Equal", pkg: "", typ: $funcType([Time], [$Bool], false)}, {prop: "IsZero", name: "IsZero", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "abs", name: "abs", pkg: "time", typ: $funcType([], [$Uint64], false)}, {prop: "locabs", name: "locabs", pkg: "time", typ: $funcType([], [$String, $Int, $Uint64], false)}, {prop: "Date", name: "Date", pkg: "", typ: $funcType([], [$Int, Month, $Int], false)}, {prop: "Year", name: "Year", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Month", name: "Month", pkg: "", typ: $funcType([], [Month], false)}, {prop: "Day", name: "Day", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Weekday", name: "Weekday", pkg: "", typ: $funcType([], [Weekday], false)}, {prop: "ISOWeek", name: "ISOWeek", pkg: "", typ: $funcType([], [$Int, $Int], false)}, {prop: "Clock", name: "Clock", pkg: "", typ: $funcType([], [$Int, $Int, $Int], false)}, {prop: "Hour", name: "Hour", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Minute", name: "Minute", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Second", name: "Second", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Nanosecond", name: "Nanosecond", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "YearDay", name: "YearDay", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([Duration], [Time], false)}, {prop: "Sub", name: "Sub", pkg: "", typ: $funcType([Time], [Duration], false)}, {prop: "AddDate", name: "AddDate", pkg: "", typ: $funcType([$Int, $Int, $Int], [Time], false)}, {prop: "date", name: "date", pkg: "time", typ: $funcType([$Bool], [$Int, Month, $Int, $Int], false)}, {prop: "UTC", name: "UTC", pkg: "", typ: $funcType([], [Time], false)}, {prop: "Local", name: "Local", pkg: "", typ: $funcType([], [Time], false)}, {prop: "In", name: "In", pkg: "", typ: $funcType([ptrType$1], [Time], false)}, {prop: "Location", name: "Location", pkg: "", typ: $funcType([], [ptrType$1], false)}, {prop: "Zone", name: "Zone", pkg: "", typ: $funcType([], [$String, $Int], false)}, {prop: "ZoneBounds", name: "ZoneBounds", pkg: "", typ: $funcType([], [Time, Time], false)}, {prop: "Unix", name: "Unix", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "UnixMilli", name: "UnixMilli", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "UnixMicro", name: "UnixMicro", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "UnixNano", name: "UnixNano", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "MarshalBinary", name: "MarshalBinary", pkg: "", typ: $funcType([], [sliceType$4, $error], false)}, {prop: "GobEncode", name: "GobEncode", pkg: "", typ: $funcType([], [sliceType$4, $error], false)}, {prop: "MarshalJSON", name: "MarshalJSON", pkg: "", typ: $funcType([], [sliceType$4, $error], false)}, {prop: "MarshalText", name: "MarshalText", pkg: "", typ: $funcType([], [sliceType$4, $error], false)}, {prop: "IsDST", name: "IsDST", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Truncate", name: "Truncate", pkg: "", typ: $funcType([Duration], [Time], false)}, {prop: "Round", name: "Round", pkg: "", typ: $funcType([Duration], [Time], false)}, {prop: "appendFormatRFC3339", name: "appendFormatRFC3339", pkg: "time", typ: $funcType([sliceType$4, $Bool], [sliceType$4], false)}, {prop: "appendStrictRFC3339", name: "appendStrictRFC3339", pkg: "time", typ: $funcType([sliceType$4], [sliceType$4, $error], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Format", name: "Format", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "AppendFormat", name: "AppendFormat", pkg: "", typ: $funcType([sliceType$4, $String], [sliceType$4], false)}, {prop: "appendFormat", name: "appendFormat", pkg: "time", typ: $funcType([sliceType$4, $String], [sliceType$4], false)}]; - ptrType$4.methods = [{prop: "nsec", name: "nsec", pkg: "time", typ: $funcType([], [$Int32], false)}, {prop: "sec", name: "sec", pkg: "time", typ: $funcType([], [$Int64], false)}, {prop: "unixSec", name: "unixSec", pkg: "time", typ: $funcType([], [$Int64], false)}, {prop: "addSec", name: "addSec", pkg: "time", typ: $funcType([$Int64], [], false)}, {prop: "setLoc", name: "setLoc", pkg: "time", typ: $funcType([ptrType$1], [], false)}, {prop: "stripMono", name: "stripMono", pkg: "time", typ: $funcType([], [], false)}, {prop: "setMono", name: "setMono", pkg: "time", typ: $funcType([$Int64], [], false)}, {prop: "mono", name: "mono", pkg: "time", typ: $funcType([], [$Int64], false)}, {prop: "UnmarshalBinary", name: "UnmarshalBinary", pkg: "", typ: $funcType([sliceType$4], [$error], false)}, {prop: "GobDecode", name: "GobDecode", pkg: "", typ: $funcType([sliceType$4], [$error], false)}, {prop: "UnmarshalJSON", name: "UnmarshalJSON", pkg: "", typ: $funcType([sliceType$4], [$error], false)}, {prop: "UnmarshalText", name: "UnmarshalText", pkg: "", typ: $funcType([sliceType$4], [$error], false)}]; + ptrType$3.methods = [{prop: "nsec", name: "nsec", pkg: "time", typ: $funcType([], [$Int32], false)}, {prop: "sec", name: "sec", pkg: "time", typ: $funcType([], [$Int64], false)}, {prop: "unixSec", name: "unixSec", pkg: "time", typ: $funcType([], [$Int64], false)}, {prop: "addSec", name: "addSec", pkg: "time", typ: $funcType([$Int64], [], false)}, {prop: "setLoc", name: "setLoc", pkg: "time", typ: $funcType([ptrType$1], [], false)}, {prop: "stripMono", name: "stripMono", pkg: "time", typ: $funcType([], [], false)}, {prop: "setMono", name: "setMono", pkg: "time", typ: $funcType([$Int64], [], false)}, {prop: "mono", name: "mono", pkg: "time", typ: $funcType([], [$Int64], false)}, {prop: "UnmarshalBinary", name: "UnmarshalBinary", pkg: "", typ: $funcType([sliceType$4], [$error], false)}, {prop: "GobDecode", name: "GobDecode", pkg: "", typ: $funcType([sliceType$4], [$error], false)}, {prop: "UnmarshalJSON", name: "UnmarshalJSON", pkg: "", typ: $funcType([sliceType$4], [$error], false)}, {prop: "UnmarshalText", name: "UnmarshalText", pkg: "", typ: $funcType([sliceType$4], [$error], false)}]; Month.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; Weekday.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; Duration.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Nanoseconds", name: "Nanoseconds", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Microseconds", name: "Microseconds", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Milliseconds", name: "Milliseconds", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Seconds", name: "Seconds", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Minutes", name: "Minutes", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Hours", name: "Hours", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Truncate", name: "Truncate", pkg: "", typ: $funcType([Duration], [Duration], false)}, {prop: "Round", name: "Round", pkg: "", typ: $funcType([Duration], [Duration], false)}, {prop: "Abs", name: "Abs", pkg: "", typ: $funcType([], [Duration], false)}]; @@ -26083,7 +23597,7 @@ $packages["time"] = (function() { localOnce = new nosync.Once.ptr(false, false); unnamedFixedZones = sliceType$2.nil; unnamedFixedZonesOnce = new nosync.Once.ptr(false, false); - badData = errors.New("malformed time zone information"); + errBadData = errors.New("malformed time zone information"); utcLoc = new Location.ptr("UTC", sliceType.nil, sliceType$1.nil, "", new $Int64(0, 0), new $Int64(0, 0), ptrType.nil); $pkg.UTC = utcLoc; $pkg.Local = localLoc; @@ -26097,7 +23611,7 @@ $packages["time"] = (function() { shortDayNames = new sliceType$3(["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]); shortMonthNames = new sliceType$3(["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]); longMonthNames = new sliceType$3(["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]); - atoiError = errors.New("time: invalid number"); + errAtoi = errors.New("time: invalid number"); errBad = errors.New("bad value for field"); errLeadingInt = errors.New("time: bad [0-9]*"); init(); @@ -26107,20 +23621,28 @@ $packages["time"] = (function() { return $pkg; })(); $packages["internal/poll"] = (function() { - var $pkg = {}, $init, errors, unix, io, atomic, syscall, time, FD, pollDesc, fdMutex, errNetClosing, DeadlineExceededError, ptrType, ptrType$1, ptrType$2, ptrType$3, sliceType, sliceType$1, ptrType$4, ptrType$5, ptrType$6, ptrType$7, funcType, funcType$1, ptrType$8, ptrType$9, ptrType$10, tryDupCloexec, tryDupCloexec$24ptr, accept, runtime_Semacquire, runtime_Semrelease, DupCloseOnExec, dupCloseOnExecOld, ignoringEINTRIO, ignoringEINTR, setDeadlineImpl, errClosing, fcntl; + var $pkg = {}, $init, errors, unix, io, atomic, syscall, time, SysFile, FD, pollDesc, fdMutex, errNetClosing, DeadlineExceededError, ptrType, ptrType$1, ptrType$2, ptrType$3, sliceType, sliceType$1, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, funcType, funcType$1, ptrType$9, ptrType$10, dupCloexecUnsupported, accept, runtime_Semacquire, runtime_Semrelease, dupCloseOnExecOld, DupCloseOnExec, ignoringEINTRIO, ignoringEINTR, setDeadlineImpl, errClosing; errors = $packages["errors"]; unix = $packages["internal/syscall/unix"]; io = $packages["io"]; atomic = $packages["sync/atomic"]; syscall = $packages["syscall"]; time = $packages["time"]; - FD = $newType(0, $kindStruct, "poll.FD", true, "internal/poll", true, function(fdmu_, Sysfd_, pd_, iovecs_, csema_, isBlocking_, IsStream_, ZeroReadIsEOF_, isFile_) { + SysFile = $newType(0, $kindStruct, "poll.SysFile", true, "internal/poll", true, function(iovecs_) { + this.$val = this; + if (arguments.length === 0) { + this.iovecs = ptrType$4.nil; + return; + } + this.iovecs = iovecs_; + }); + FD = $newType(0, $kindStruct, "poll.FD", true, "internal/poll", true, function(fdmu_, Sysfd_, SysFile_, pd_, csema_, isBlocking_, IsStream_, ZeroReadIsEOF_, isFile_) { this.$val = this; if (arguments.length === 0) { this.fdmu = new fdMutex.ptr(new $Uint64(0, 0), 0, 0); this.Sysfd = 0; - this.pd = new pollDesc.ptr(ptrType$2.nil, false); - this.iovecs = ptrType$4.nil; + this.SysFile = new SysFile.ptr(ptrType$4.nil); + this.pd = new pollDesc.ptr(ptrType.nil, false); this.csema = 0; this.isBlocking = 0; this.IsStream = false; @@ -26130,8 +23652,8 @@ $packages["internal/poll"] = (function() { } this.fdmu = fdmu_; this.Sysfd = Sysfd_; + this.SysFile = SysFile_; this.pd = pd_; - this.iovecs = iovecs_; this.csema = csema_; this.isBlocking = isBlocking_; this.IsStream = IsStream_; @@ -26141,7 +23663,7 @@ $packages["internal/poll"] = (function() { pollDesc = $newType(0, $kindStruct, "poll.pollDesc", true, "internal/poll", false, function(fd_, closing_) { this.$val = this; if (arguments.length === 0) { - this.fd = ptrType$2.nil; + this.fd = ptrType.nil; this.closing = false; return; } @@ -26162,26 +23684,27 @@ $packages["internal/poll"] = (function() { }); errNetClosing = $newType(0, $kindStruct, "poll.errNetClosing", true, "internal/poll", false, function() { this.$val = this; }); DeadlineExceededError = $newType(0, $kindStruct, "poll.DeadlineExceededError", true, "internal/poll", true, function() { this.$val = this; }); + $pkg.SysFile = SysFile; $pkg.FD = FD; $pkg.pollDesc = pollDesc; $pkg.fdMutex = fdMutex; $pkg.errNetClosing = errNetClosing; $pkg.DeadlineExceededError = DeadlineExceededError; $pkg.$finishSetup = function() { - ptrType = $ptrType($Uint32); - ptrType$1 = $ptrType($Int32); - ptrType$2 = $ptrType(FD); + ptrType = $ptrType(FD); + ptrType$1 = $ptrType($Uint32); + ptrType$2 = $ptrType(fdMutex); ptrType$3 = $ptrType($Uint64); sliceType = $sliceType($Uint8); sliceType$1 = $sliceType(syscall.Iovec); ptrType$4 = $ptrType(sliceType$1); - ptrType$5 = $ptrType(syscall.SockaddrInet4); - ptrType$6 = $ptrType(syscall.SockaddrInet6); - ptrType$7 = $ptrType(syscall.Stat_t); + ptrType$5 = $ptrType(SysFile); + ptrType$6 = $ptrType(syscall.SockaddrInet4); + ptrType$7 = $ptrType(syscall.SockaddrInet6); + ptrType$8 = $ptrType(syscall.Stat_t); funcType = $funcType([$Uintptr], [$Bool], false); funcType$1 = $funcType([$Uintptr], [], false); - ptrType$8 = $ptrType(pollDesc); - ptrType$9 = $ptrType(fdMutex); + ptrType$9 = $ptrType(pollDesc); ptrType$10 = $ptrType(DeadlineExceededError); accept = function accept$1(s) { var {_r, _r$1, _tuple, err, ns, s, sa, $s, $r, $c} = $restore(this, {s}); @@ -26214,9 +23737,99 @@ $packages["internal/poll"] = (function() { runtime_Semrelease = function() { $throwRuntimeError("native function not implemented: internal/poll.runtime_Semrelease"); }; + $ptrType(SysFile).prototype.init = function init() { + var s; + s = this; + }; + $ptrType(SysFile).prototype.destroy = function destroy(fd) { + var {$24r, _r, fd, s, $s, $r, $c} = $restore(this, {fd}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + s = this; + _r = $pkg.CloseFunc(fd); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: destroy, $c: true, $r, $24r, _r, fd, s, $s};return $f; + }; + dupCloseOnExecOld = function dupCloseOnExecOld$1(fd) { + var {$24r, $24r$1, _tuple, err, fd, newfd, $s, $deferred, $r, $c} = $restore(this, {fd}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + $r = syscall.ForkLock.RLock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(syscall.ForkLock, "RUnlock"), []]); + _tuple = syscall.Dup(fd); + newfd = _tuple[0]; + err = _tuple[1]; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2: + $24r = [-1, "dup", err]; + $s = 4; case 4: return $24r; + /* } */ case 3: + syscall.CloseOnExec(newfd); + $24r$1 = [newfd, "", $ifaceNil]; + $s = 5; case 5: return $24r$1; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, "", $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: dupCloseOnExecOld$1, $c: true, $r, $24r, $24r$1, _tuple, err, fd, newfd, $s, $deferred};return $f; } } + }; + $ptrType(FD).prototype.Fchdir = function Fchdir() { + var {$24r, _r, err, fd, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + _r = syscall.Fchdir(fd.Sysfd); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Fchdir, $c: true, $r, $24r, _r, err, fd, $s, $deferred};return $f; } } + }; + $ptrType(FD).prototype.ReadDirent = function ReadDirent(buf) { + var {$24r, _r, _tuple, buf, err, err$1, fd, n, $s, $deferred, $r, $c} = $restore(this, {buf}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, err]; + } + $deferred.push([$methodVal(fd, "decref"), []]); + /* while (true) { */ case 1: + _r = ignoringEINTRIO(syscall.ReadDirent, fd.Sysfd, buf); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err$1 = _tuple[1]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + n = 0; + if ($interfaceIsEqual(err$1, new syscall.Errno(11)) && fd.pd.pollable()) { + err$1 = fd.pd.waitRead(fd.isFile); + if ($interfaceIsEqual(err$1, $ifaceNil)) { + /* continue; */ $s = 1; continue; + } + } + } + $24r = [n, err$1]; + $s = 4; case 4: return $24r; + case 2: + $s = -1; return [0, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: ReadDirent, $c: true, $r, $24r, _r, _tuple, buf, err, err$1, fd, n, $s, $deferred};return $f; } } + }; + $ptrType(FD).prototype.Seek = function Seek(offset, whence) { + var {$24r, _r, err, fd, offset, whence, $s, $deferred, $r, $c} = $restore(this, {offset, whence}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [new $Int64(0, 0), err]; + } + $deferred.push([$methodVal(fd, "decref"), []]); + _r = syscall.Seek(fd.Sysfd, offset, whence); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [new $Int64(0, 0), $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Seek, $c: true, $r, $24r, _r, err, fd, offset, whence, $s, $deferred};return $f; } } + }; $ptrType(FD).prototype.Init = function Init(net, pollable) { var err, fd, net, pollable; fd = this; + fd.SysFile.init(); if (net === "file") { fd.isFile = true; } @@ -26230,17 +23843,17 @@ $packages["internal/poll"] = (function() { } return err; }; - $ptrType(FD).prototype.destroy = function destroy() { + $ptrType(FD).prototype.destroy = function destroy$1() { var {_r, err, fd, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: fd = this; fd.pd.close(); - _r = $pkg.CloseFunc(fd.Sysfd); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r = fd.SysFile.destroy(fd.Sysfd); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } err = _r; fd.Sysfd = -1; - $r = runtime_Semrelease((fd.$ptr_csema || (fd.$ptr_csema = new ptrType(function() { return this.$target.csema; }, function($v) { this.$target.csema = $v; }, fd)))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime_Semrelease((fd === ptrType.nil && $throwNilPointerError(), (fd.$ptr_csema || (fd.$ptr_csema = new ptrType$1(function() { return this.$target.csema; }, function($v) { this.$target.csema = $v; }, fd))))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return err; - /* */ } return; } var $f = {$blk: destroy, $c: true, $r, _r, err, fd, $s};return $f; + /* */ } return; } var $f = {$blk: destroy$1, $c: true, $r, _r, err, fd, $s};return $f; }; $ptrType(FD).prototype.Close = function Close() { var {_r, _r$1, err, fd, $s, $r, $c} = $restore(this, {}); @@ -26258,7 +23871,7 @@ $packages["internal/poll"] = (function() { /* */ if (fd.isBlocking === 0) { $s = 5; continue; } /* */ $s = 6; continue; /* if (fd.isBlocking === 0) { */ case 5: - $r = runtime_Semacquire((fd.$ptr_csema || (fd.$ptr_csema = new ptrType(function() { return this.$target.csema; }, function($v) { this.$target.csema = $v; }, fd)))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime_Semacquire((fd === ptrType.nil && $throwNilPointerError(), (fd.$ptr_csema || (fd.$ptr_csema = new ptrType$1(function() { return this.$target.csema; }, function($v) { this.$target.csema = $v; }, fd))))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 6: $s = -1; return err; /* */ } return; } var $f = {$blk: Close, $c: true, $r, _r, _r$1, err, fd, $s};return $f; @@ -26272,7 +23885,7 @@ $packages["internal/poll"] = (function() { $s = -1; return err; } $deferred.push([$methodVal(fd, "decref"), []]); - atomic.StoreUint32((fd.$ptr_isBlocking || (fd.$ptr_isBlocking = new ptrType(function() { return this.$target.isBlocking; }, function($v) { this.$target.isBlocking = $v; }, fd))), 1); + atomic.StoreUint32((fd === ptrType.nil && $throwNilPointerError(), (fd.$ptr_isBlocking || (fd.$ptr_isBlocking = new ptrType$1(function() { return this.$target.isBlocking; }, function($v) { this.$target.isBlocking = $v; }, fd)))), 1); $24r = syscall.SetNonblock(fd.Sysfd, false); $s = 1; case 1: return $24r; /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: SetBlocking, $c: true, $r, $24r, err, fd, $s, $deferred};return $f; } } @@ -27003,49 +24616,6 @@ $packages["internal/poll"] = (function() { $s = -1; return [0, $ifaceNil, "", $ifaceNil]; /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil, "", $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Accept, $c: true, $r, $24r, $24r$1, $24r$2, _1, _r, _r$1, _tuple, err, err$1, err$2, errcall, fd, rsa, s, $s, $deferred};return $f; } } }; - $ptrType(FD).prototype.Seek = function Seek(offset, whence) { - var {$24r, _r, err, fd, offset, whence, $s, $deferred, $r, $c} = $restore(this, {offset, whence}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - fd = this; - err = fd.incref(); - if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [new $Int64(0, 0), err]; - } - $deferred.push([$methodVal(fd, "decref"), []]); - _r = syscall.Seek(fd.Sysfd, offset, whence); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return [new $Int64(0, 0), $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Seek, $c: true, $r, $24r, _r, err, fd, offset, whence, $s, $deferred};return $f; } } - }; - $ptrType(FD).prototype.ReadDirent = function ReadDirent(buf) { - var {$24r, _r, _tuple, buf, err, err$1, fd, n, $s, $deferred, $r, $c} = $restore(this, {buf}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - fd = this; - err = fd.incref(); - if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [0, err]; - } - $deferred.push([$methodVal(fd, "decref"), []]); - /* while (true) { */ case 1: - _r = ignoringEINTRIO(syscall.ReadDirent, fd.Sysfd, buf); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - n = _tuple[0]; - err$1 = _tuple[1]; - if (!($interfaceIsEqual(err$1, $ifaceNil))) { - n = 0; - if ($interfaceIsEqual(err$1, new syscall.Errno(11)) && fd.pd.pollable()) { - err$1 = fd.pd.waitRead(fd.isFile); - if ($interfaceIsEqual(err$1, $ifaceNil)) { - /* continue; */ $s = 1; continue; - } - } - } - $24r = [n, err$1]; - $s = 4; case 4: return $24r; - case 2: - $s = -1; return [0, $ifaceNil]; - /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: ReadDirent, $c: true, $r, $24r, _r, _tuple, buf, err, err$1, fd, n, $s, $deferred};return $f; } } - }; $ptrType(FD).prototype.Fchmod = function Fchmod(mode) { var {$24r, _r, err, fd, mode, $s, $deferred, $r, $c} = $restore(this, {mode}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); @@ -27069,20 +24639,6 @@ $packages["internal/poll"] = (function() { $s = 2; case 2: return $24r; /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Fchmod, $c: true, $r, $24r, _r, err, fd, mode, $s, $deferred};return $f; } } }; - $ptrType(FD).prototype.Fchdir = function Fchdir() { - var {$24r, _r, err, fd, $s, $deferred, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - fd = this; - err = fd.incref(); - if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return err; - } - $deferred.push([$methodVal(fd, "decref"), []]); - _r = syscall.Fchdir(fd.Sysfd); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Fchdir, $c: true, $r, $24r, _r, err, fd, $s, $deferred};return $f; } } - }; $ptrType(FD).prototype.Fstat = function Fstat(s) { var {$24r, _r, err, fd, s, $s, $deferred, $r, $c} = $restore(this, {s}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); @@ -27107,47 +24663,28 @@ $packages["internal/poll"] = (function() { /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Fstat, $c: true, $r, $24r, _r, err, fd, s, $s, $deferred};return $f; } } }; DupCloseOnExec = function DupCloseOnExec$1(fd) { - var {$24r, _1, _r, _tuple, e1, fd, r0, $s, $r, $c} = $restore(this, {fd}); + var {$24r, _1, _r, _tuple, err, fd, r0, $s, $r, $c} = $restore(this, {fd}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (true && (atomic.LoadInt32((tryDupCloexec$24ptr || (tryDupCloexec$24ptr = new ptrType$1(function() { return tryDupCloexec; }, function($v) { tryDupCloexec = $v; })))) === 1)) { - _tuple = fcntl(fd, 1, 0); + if (true && !dupCloexecUnsupported.Load()) { + _tuple = unix.Fcntl(fd, 1, 0); r0 = _tuple[0]; - e1 = _tuple[1]; - if ($interfaceIsEqual(e1, $ifaceNil)) { + err = _tuple[1]; + if ($interfaceIsEqual(err, $ifaceNil)) { $s = -1; return [r0, "", $ifaceNil]; } - _1 = $assertType(e1, syscall.Errno); - if ((_1 === (22)) || (_1 === (38))) { - atomic.StoreInt32((tryDupCloexec$24ptr || (tryDupCloexec$24ptr = new ptrType$1(function() { return tryDupCloexec; }, function($v) { tryDupCloexec = $v; }))), 0); + _1 = err; + if ($interfaceIsEqual(_1, new syscall.Errno((22))) || $interfaceIsEqual(_1, new syscall.Errno((38)))) { + dupCloexecUnsupported.Store(true); } else { - $s = -1; return [-1, "fcntl", e1]; + $s = -1; return [-1, "fcntl", err]; } } _r = dupCloseOnExecOld(fd); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } $24r = _r; $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: DupCloseOnExec$1, $c: true, $r, $24r, _1, _r, _tuple, e1, fd, r0, $s};return $f; + /* */ } return; } var $f = {$blk: DupCloseOnExec$1, $c: true, $r, $24r, _1, _r, _tuple, err, fd, r0, $s};return $f; }; $pkg.DupCloseOnExec = DupCloseOnExec; - dupCloseOnExecOld = function dupCloseOnExecOld$1(fd) { - var {$24r, $24r$1, _tuple, err, fd, newfd, $s, $deferred, $r, $c} = $restore(this, {fd}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - $r = syscall.ForkLock.RLock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(syscall.ForkLock, "RUnlock"), []]); - _tuple = syscall.Dup(fd); - newfd = _tuple[0]; - err = _tuple[1]; - /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2: - $24r = [-1, "dup", err]; - $s = 4; case 4: return $24r; - /* } */ case 3: - syscall.CloseOnExec(newfd); - $24r$1 = [newfd, "", $ifaceNil]; - $s = 5; case 5: return $24r$1; - /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, "", $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: dupCloseOnExecOld$1, $c: true, $r, $24r, $24r$1, _tuple, err, fd, newfd, $s, $deferred};return $f; } } - }; $ptrType(FD).prototype.Dup = function Dup() { var {$24r, _r, err, fd, $s, $deferred, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); @@ -27368,7 +24905,7 @@ $packages["internal/poll"] = (function() { $s = -1; return $ifaceNil; /* */ } return; } var $f = {$blk: ignoringEINTR$1, $c: true, $r, _r, err, fn, $s};return $f; }; - $ptrType(pollDesc).prototype.init = function init(fd) { + $ptrType(pollDesc).prototype.init = function init$1(fd) { var fd, pd; pd = this; pd.fd = fd; @@ -27382,7 +24919,7 @@ $packages["internal/poll"] = (function() { var pd; pd = this; pd.closing = true; - if (!(pd.fd === ptrType$2.nil)) { + if (!(pd.fd === ptrType.nil)) { syscall.StopIO(pd.fd.Sysfd); } }; @@ -27486,7 +25023,7 @@ $packages["internal/poll"] = (function() { var mu, new$1, old, x, x$1; mu = this; while (true) { - old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))); + old = atomic.LoadUint64((mu === ptrType$2.nil && $throwNilPointerError(), (mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))))); if (!((x = new $Uint64(old.$high & 0, (old.$low & 1) >>> 0), (x.$high === 0 && x.$low === 0)))) { return false; } @@ -27494,7 +25031,7 @@ $packages["internal/poll"] = (function() { if ((x$1 = new $Uint64(new$1.$high & 0, (new$1.$low & 8388600) >>> 0), (x$1.$high === 0 && x$1.$low === 0))) { $panic(new $String("too many concurrent operations on a single file or socket (max 1048575)")); } - if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { + if (atomic.CompareAndSwapUint64((mu === ptrType$2.nil && $throwNilPointerError(), (mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))), old, new$1)) { return true; } } @@ -27504,7 +25041,7 @@ $packages["internal/poll"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: mu = this; /* while (true) { */ case 1: - old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))); + old = atomic.LoadUint64((mu === ptrType$2.nil && $throwNilPointerError(), (mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))))); if (!((x = new $Uint64(old.$high & 0, (old.$low & 1) >>> 0), (x.$high === 0 && x.$low === 0)))) { $s = -1; return false; } @@ -27513,19 +25050,19 @@ $packages["internal/poll"] = (function() { $panic(new $String("too many concurrent operations on a single file or socket (max 1048575)")); } new$1 = (x$3 = new $Uint64(2147483647, 4286578688), new $Uint64(new$1.$high & ~x$3.$high, (new$1.$low & ~x$3.$low) >>> 0)); - /* */ if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { $s = 3; continue; } + /* */ if (atomic.CompareAndSwapUint64((mu === ptrType$2.nil && $throwNilPointerError(), (mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))), old, new$1)) { $s = 3; continue; } /* */ $s = 4; continue; - /* if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { */ case 3: + /* if (atomic.CompareAndSwapUint64((mu === ptrType$2.nil && $throwNilPointerError(), (mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))), old, new$1)) { */ case 3: /* while (true) { */ case 5: /* if (!(!((x$4 = new $Uint64(old.$high & 2047, (old.$low & 4286578688) >>> 0), (x$4.$high === 0 && x$4.$low === 0))))) { break; } */ if(!(!((x$4 = new $Uint64(old.$high & 2047, (old.$low & 4286578688) >>> 0), (x$4.$high === 0 && x$4.$low === 0))))) { $s = 6; continue; } old = (x$5 = new $Uint64(0, 8388608), new $Uint64(old.$high - x$5.$high, old.$low - x$5.$low)); - $r = runtime_Semrelease((mu.$ptr_rsema || (mu.$ptr_rsema = new ptrType(function() { return this.$target.rsema; }, function($v) { this.$target.rsema = $v; }, mu)))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime_Semrelease((mu === ptrType$2.nil && $throwNilPointerError(), (mu.$ptr_rsema || (mu.$ptr_rsema = new ptrType$1(function() { return this.$target.rsema; }, function($v) { this.$target.rsema = $v; }, mu))))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 5; continue; case 6: /* while (true) { */ case 8: /* if (!(!((x$6 = new $Uint64(old.$high & 2147481600, (old.$low & 0) >>> 0), (x$6.$high === 0 && x$6.$low === 0))))) { break; } */ if(!(!((x$6 = new $Uint64(old.$high & 2147481600, (old.$low & 0) >>> 0), (x$6.$high === 0 && x$6.$low === 0))))) { $s = 9; continue; } old = (x$7 = new $Uint64(2048, 0), new $Uint64(old.$high - x$7.$high, old.$low - x$7.$low)); - $r = runtime_Semrelease((mu.$ptr_wsema || (mu.$ptr_wsema = new ptrType(function() { return this.$target.wsema; }, function($v) { this.$target.wsema = $v; }, mu)))); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime_Semrelease((mu === ptrType$2.nil && $throwNilPointerError(), (mu.$ptr_wsema || (mu.$ptr_wsema = new ptrType$1(function() { return this.$target.wsema; }, function($v) { this.$target.wsema = $v; }, mu))))); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 8; continue; case 9: $s = -1; return true; @@ -27539,12 +25076,12 @@ $packages["internal/poll"] = (function() { var mu, new$1, old, x, x$1; mu = this; while (true) { - old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))); + old = atomic.LoadUint64((mu === ptrType$2.nil && $throwNilPointerError(), (mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))))); if ((x = new $Uint64(old.$high & 0, (old.$low & 8388600) >>> 0), (x.$high === 0 && x.$low === 0))) { $panic(new $String("inconsistent poll.fdMutex")); } new$1 = new $Uint64(old.$high - 0, old.$low - 8); - if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { + if (atomic.CompareAndSwapUint64((mu === ptrType$2.nil && $throwNilPointerError(), (mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))), old, new$1)) { return (x$1 = new $Uint64(new$1.$high & 0, (new$1.$low & 8388601) >>> 0), (x$1.$high === 0 && x$1.$low === 1)); } } @@ -27559,20 +25096,20 @@ $packages["internal/poll"] = (function() { mutexBit = _tmp; mutexWait = _tmp$1; mutexMask = _tmp$2; - mutexSema = ptrType.nil; + mutexSema = ptrType$1.nil; if (read) { mutexBit = new $Uint64(0, 2); mutexWait = new $Uint64(0, 8388608); mutexMask = new $Uint64(2047, 4286578688); - mutexSema = (mu.$ptr_rsema || (mu.$ptr_rsema = new ptrType(function() { return this.$target.rsema; }, function($v) { this.$target.rsema = $v; }, mu))); + mutexSema = (mu === ptrType$2.nil && $throwNilPointerError(), (mu.$ptr_rsema || (mu.$ptr_rsema = new ptrType$1(function() { return this.$target.rsema; }, function($v) { this.$target.rsema = $v; }, mu)))); } else { mutexBit = new $Uint64(0, 4); mutexWait = new $Uint64(2048, 0); mutexMask = new $Uint64(2147481600, 0); - mutexSema = (mu.$ptr_wsema || (mu.$ptr_wsema = new ptrType(function() { return this.$target.wsema; }, function($v) { this.$target.wsema = $v; }, mu))); + mutexSema = (mu === ptrType$2.nil && $throwNilPointerError(), (mu.$ptr_wsema || (mu.$ptr_wsema = new ptrType$1(function() { return this.$target.wsema; }, function($v) { this.$target.wsema = $v; }, mu)))); } /* while (true) { */ case 1: - old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))); + old = atomic.LoadUint64((mu === ptrType$2.nil && $throwNilPointerError(), (mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))))); if (!((x = new $Uint64(old.$high & 0, (old.$low & 1) >>> 0), (x.$high === 0 && x.$low === 0)))) { $s = -1; return false; } @@ -27588,9 +25125,9 @@ $packages["internal/poll"] = (function() { $panic(new $String("too many concurrent operations on a single file or socket (max 1048575)")); } } - /* */ if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { $s = 3; continue; } + /* */ if (atomic.CompareAndSwapUint64((mu === ptrType$2.nil && $throwNilPointerError(), (mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))), old, new$1)) { $s = 3; continue; } /* */ $s = 4; continue; - /* if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { */ case 3: + /* if (atomic.CompareAndSwapUint64((mu === ptrType$2.nil && $throwNilPointerError(), (mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))), old, new$1)) { */ case 3: if ((x$5 = new $Uint64(old.$high & mutexBit.$high, (old.$low & mutexBit.$low) >>> 0), (x$5.$high === 0 && x$5.$low === 0))) { $s = -1; return true; } @@ -27611,20 +25148,20 @@ $packages["internal/poll"] = (function() { mutexBit = _tmp; mutexWait = _tmp$1; mutexMask = _tmp$2; - mutexSema = ptrType.nil; + mutexSema = ptrType$1.nil; if (read) { mutexBit = new $Uint64(0, 2); mutexWait = new $Uint64(0, 8388608); mutexMask = new $Uint64(2047, 4286578688); - mutexSema = (mu.$ptr_rsema || (mu.$ptr_rsema = new ptrType(function() { return this.$target.rsema; }, function($v) { this.$target.rsema = $v; }, mu))); + mutexSema = (mu === ptrType$2.nil && $throwNilPointerError(), (mu.$ptr_rsema || (mu.$ptr_rsema = new ptrType$1(function() { return this.$target.rsema; }, function($v) { this.$target.rsema = $v; }, mu)))); } else { mutexBit = new $Uint64(0, 4); mutexWait = new $Uint64(2048, 0); mutexMask = new $Uint64(2147481600, 0); - mutexSema = (mu.$ptr_wsema || (mu.$ptr_wsema = new ptrType(function() { return this.$target.wsema; }, function($v) { this.$target.wsema = $v; }, mu))); + mutexSema = (mu === ptrType$2.nil && $throwNilPointerError(), (mu.$ptr_wsema || (mu.$ptr_wsema = new ptrType$1(function() { return this.$target.wsema; }, function($v) { this.$target.wsema = $v; }, mu)))); } /* while (true) { */ case 1: - old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))); + old = atomic.LoadUint64((mu === ptrType$2.nil && $throwNilPointerError(), (mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))))); if ((x = new $Uint64(old.$high & mutexBit.$high, (old.$low & mutexBit.$low) >>> 0), (x.$high === 0 && x.$low === 0)) || (x$1 = new $Uint64(old.$high & 0, (old.$low & 8388600) >>> 0), (x$1.$high === 0 && x$1.$low === 0))) { $panic(new $String("inconsistent poll.fdMutex")); } @@ -27632,9 +25169,9 @@ $packages["internal/poll"] = (function() { if (!((x$3 = new $Uint64(old.$high & mutexMask.$high, (old.$low & mutexMask.$low) >>> 0), (x$3.$high === 0 && x$3.$low === 0)))) { new$1 = (x$4 = mutexWait, new $Uint64(new$1.$high - x$4.$high, new$1.$low - x$4.$low)); } - /* */ if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { $s = 3; continue; } + /* */ if (atomic.CompareAndSwapUint64((mu === ptrType$2.nil && $throwNilPointerError(), (mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))), old, new$1)) { $s = 3; continue; } /* */ $s = 4; continue; - /* if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { */ case 3: + /* if (atomic.CompareAndSwapUint64((mu === ptrType$2.nil && $throwNilPointerError(), (mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))), old, new$1)) { */ case 3: /* */ if (!((x$5 = new $Uint64(old.$high & mutexMask.$high, (old.$low & mutexMask.$low) >>> 0), (x$5.$high === 0 && x$5.$low === 0)))) { $s = 5; continue; } /* */ $s = 6; continue; /* if (!((x$5 = new $Uint64(old.$high & mutexMask.$high, (old.$low & mutexMask.$low) >>> 0), (x$5.$high === 0 && x$5.$low === 0)))) { */ case 5: @@ -27785,17 +25322,15 @@ $packages["internal/poll"] = (function() { e = this; return true; }; - fcntl = function fcntl$1(fd, cmd, arg) { - var arg, cmd, fd; - return [0, new syscall.Errno(38)]; - }; - ptrType$2.methods = [{prop: "Init", name: "Init", pkg: "", typ: $funcType([$String, $Bool], [$error], false)}, {prop: "destroy", name: "destroy", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "SetBlocking", name: "SetBlocking", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "Pread", name: "Pread", pkg: "", typ: $funcType([sliceType, $Int64], [$Int, $error], false)}, {prop: "ReadFrom", name: "ReadFrom", pkg: "", typ: $funcType([sliceType], [$Int, syscall.Sockaddr, $error], false)}, {prop: "ReadFromInet4", name: "ReadFromInet4", pkg: "", typ: $funcType([sliceType, ptrType$5], [$Int, $error], false)}, {prop: "ReadFromInet6", name: "ReadFromInet6", pkg: "", typ: $funcType([sliceType, ptrType$6], [$Int, $error], false)}, {prop: "ReadMsg", name: "ReadMsg", pkg: "", typ: $funcType([sliceType, sliceType, $Int], [$Int, $Int, $Int, syscall.Sockaddr, $error], false)}, {prop: "ReadMsgInet4", name: "ReadMsgInet4", pkg: "", typ: $funcType([sliceType, sliceType, $Int, ptrType$5], [$Int, $Int, $Int, $error], false)}, {prop: "ReadMsgInet6", name: "ReadMsgInet6", pkg: "", typ: $funcType([sliceType, sliceType, $Int, ptrType$6], [$Int, $Int, $Int, $error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "Pwrite", name: "Pwrite", pkg: "", typ: $funcType([sliceType, $Int64], [$Int, $error], false)}, {prop: "WriteToInet4", name: "WriteToInet4", pkg: "", typ: $funcType([sliceType, ptrType$5], [$Int, $error], false)}, {prop: "WriteToInet6", name: "WriteToInet6", pkg: "", typ: $funcType([sliceType, ptrType$6], [$Int, $error], false)}, {prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([sliceType, syscall.Sockaddr], [$Int, $error], false)}, {prop: "WriteMsg", name: "WriteMsg", pkg: "", typ: $funcType([sliceType, sliceType, syscall.Sockaddr], [$Int, $Int, $error], false)}, {prop: "WriteMsgInet4", name: "WriteMsgInet4", pkg: "", typ: $funcType([sliceType, sliceType, ptrType$5], [$Int, $Int, $error], false)}, {prop: "WriteMsgInet6", name: "WriteMsgInet6", pkg: "", typ: $funcType([sliceType, sliceType, ptrType$6], [$Int, $Int, $error], false)}, {prop: "Accept", name: "Accept", pkg: "", typ: $funcType([], [$Int, syscall.Sockaddr, $String, $error], false)}, {prop: "Seek", name: "Seek", pkg: "", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "ReadDirent", name: "ReadDirent", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "Fchmod", name: "Fchmod", pkg: "", typ: $funcType([$Uint32], [$error], false)}, {prop: "Fchdir", name: "Fchdir", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Fstat", name: "Fstat", pkg: "", typ: $funcType([ptrType$7], [$error], false)}, {prop: "Dup", name: "Dup", pkg: "", typ: $funcType([], [$Int, $String, $error], false)}, {prop: "WaitWrite", name: "WaitWrite", pkg: "", typ: $funcType([], [$error], false)}, {prop: "WriteOnce", name: "WriteOnce", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "RawRead", name: "RawRead", pkg: "", typ: $funcType([funcType], [$error], false)}, {prop: "RawWrite", name: "RawWrite", pkg: "", typ: $funcType([funcType], [$error], false)}, {prop: "eofError", name: "eofError", pkg: "internal/poll", typ: $funcType([$Int, $error], [$error], false)}, {prop: "Shutdown", name: "Shutdown", pkg: "", typ: $funcType([$Int], [$error], false)}, {prop: "Fchown", name: "Fchown", pkg: "", typ: $funcType([$Int, $Int], [$error], false)}, {prop: "Ftruncate", name: "Ftruncate", pkg: "", typ: $funcType([$Int64], [$error], false)}, {prop: "RawControl", name: "RawControl", pkg: "", typ: $funcType([funcType$1], [$error], false)}, {prop: "SetDeadline", name: "SetDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetReadDeadline", name: "SetReadDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetWriteDeadline", name: "SetWriteDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "incref", name: "incref", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "decref", name: "decref", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "readLock", name: "readLock", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "readUnlock", name: "readUnlock", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "writeLock", name: "writeLock", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "writeUnlock", name: "writeUnlock", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "Fsync", name: "Fsync", pkg: "", typ: $funcType([], [$error], false)}]; - ptrType$8.methods = [{prop: "init", name: "init", pkg: "internal/poll", typ: $funcType([ptrType$2], [$error], false)}, {prop: "close", name: "close", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "evict", name: "evict", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "prepare", name: "prepare", pkg: "internal/poll", typ: $funcType([$Int, $Bool], [$error], false)}, {prop: "prepareRead", name: "prepareRead", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false)}, {prop: "prepareWrite", name: "prepareWrite", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false)}, {prop: "wait", name: "wait", pkg: "internal/poll", typ: $funcType([$Int, $Bool], [$error], false)}, {prop: "waitRead", name: "waitRead", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false)}, {prop: "waitWrite", name: "waitWrite", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false)}, {prop: "waitCanceled", name: "waitCanceled", pkg: "internal/poll", typ: $funcType([$Int], [], false)}, {prop: "pollable", name: "pollable", pkg: "internal/poll", typ: $funcType([], [$Bool], false)}]; - ptrType$9.methods = [{prop: "incref", name: "incref", pkg: "internal/poll", typ: $funcType([], [$Bool], false)}, {prop: "increfAndClose", name: "increfAndClose", pkg: "internal/poll", typ: $funcType([], [$Bool], false)}, {prop: "decref", name: "decref", pkg: "internal/poll", typ: $funcType([], [$Bool], false)}, {prop: "rwlock", name: "rwlock", pkg: "internal/poll", typ: $funcType([$Bool], [$Bool], false)}, {prop: "rwunlock", name: "rwunlock", pkg: "internal/poll", typ: $funcType([$Bool], [$Bool], false)}]; + ptrType$5.methods = [{prop: "init", name: "init", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "destroy", name: "destroy", pkg: "internal/poll", typ: $funcType([$Int], [$error], false)}]; + ptrType.methods = [{prop: "Fchdir", name: "Fchdir", pkg: "", typ: $funcType([], [$error], false)}, {prop: "ReadDirent", name: "ReadDirent", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "Seek", name: "Seek", pkg: "", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "Init", name: "Init", pkg: "", typ: $funcType([$String, $Bool], [$error], false)}, {prop: "destroy", name: "destroy", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "SetBlocking", name: "SetBlocking", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "Pread", name: "Pread", pkg: "", typ: $funcType([sliceType, $Int64], [$Int, $error], false)}, {prop: "ReadFrom", name: "ReadFrom", pkg: "", typ: $funcType([sliceType], [$Int, syscall.Sockaddr, $error], false)}, {prop: "ReadFromInet4", name: "ReadFromInet4", pkg: "", typ: $funcType([sliceType, ptrType$6], [$Int, $error], false)}, {prop: "ReadFromInet6", name: "ReadFromInet6", pkg: "", typ: $funcType([sliceType, ptrType$7], [$Int, $error], false)}, {prop: "ReadMsg", name: "ReadMsg", pkg: "", typ: $funcType([sliceType, sliceType, $Int], [$Int, $Int, $Int, syscall.Sockaddr, $error], false)}, {prop: "ReadMsgInet4", name: "ReadMsgInet4", pkg: "", typ: $funcType([sliceType, sliceType, $Int, ptrType$6], [$Int, $Int, $Int, $error], false)}, {prop: "ReadMsgInet6", name: "ReadMsgInet6", pkg: "", typ: $funcType([sliceType, sliceType, $Int, ptrType$7], [$Int, $Int, $Int, $error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "Pwrite", name: "Pwrite", pkg: "", typ: $funcType([sliceType, $Int64], [$Int, $error], false)}, {prop: "WriteToInet4", name: "WriteToInet4", pkg: "", typ: $funcType([sliceType, ptrType$6], [$Int, $error], false)}, {prop: "WriteToInet6", name: "WriteToInet6", pkg: "", typ: $funcType([sliceType, ptrType$7], [$Int, $error], false)}, {prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([sliceType, syscall.Sockaddr], [$Int, $error], false)}, {prop: "WriteMsg", name: "WriteMsg", pkg: "", typ: $funcType([sliceType, sliceType, syscall.Sockaddr], [$Int, $Int, $error], false)}, {prop: "WriteMsgInet4", name: "WriteMsgInet4", pkg: "", typ: $funcType([sliceType, sliceType, ptrType$6], [$Int, $Int, $error], false)}, {prop: "WriteMsgInet6", name: "WriteMsgInet6", pkg: "", typ: $funcType([sliceType, sliceType, ptrType$7], [$Int, $Int, $error], false)}, {prop: "Accept", name: "Accept", pkg: "", typ: $funcType([], [$Int, syscall.Sockaddr, $String, $error], false)}, {prop: "Fchmod", name: "Fchmod", pkg: "", typ: $funcType([$Uint32], [$error], false)}, {prop: "Fstat", name: "Fstat", pkg: "", typ: $funcType([ptrType$8], [$error], false)}, {prop: "Dup", name: "Dup", pkg: "", typ: $funcType([], [$Int, $String, $error], false)}, {prop: "WaitWrite", name: "WaitWrite", pkg: "", typ: $funcType([], [$error], false)}, {prop: "WriteOnce", name: "WriteOnce", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "RawRead", name: "RawRead", pkg: "", typ: $funcType([funcType], [$error], false)}, {prop: "RawWrite", name: "RawWrite", pkg: "", typ: $funcType([funcType], [$error], false)}, {prop: "eofError", name: "eofError", pkg: "internal/poll", typ: $funcType([$Int, $error], [$error], false)}, {prop: "Shutdown", name: "Shutdown", pkg: "", typ: $funcType([$Int], [$error], false)}, {prop: "Fchown", name: "Fchown", pkg: "", typ: $funcType([$Int, $Int], [$error], false)}, {prop: "Ftruncate", name: "Ftruncate", pkg: "", typ: $funcType([$Int64], [$error], false)}, {prop: "RawControl", name: "RawControl", pkg: "", typ: $funcType([funcType$1], [$error], false)}, {prop: "SetDeadline", name: "SetDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetReadDeadline", name: "SetReadDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetWriteDeadline", name: "SetWriteDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "incref", name: "incref", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "decref", name: "decref", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "readLock", name: "readLock", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "readUnlock", name: "readUnlock", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "writeLock", name: "writeLock", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "writeUnlock", name: "writeUnlock", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "Fsync", name: "Fsync", pkg: "", typ: $funcType([], [$error], false)}]; + ptrType$9.methods = [{prop: "init", name: "init", pkg: "internal/poll", typ: $funcType([ptrType], [$error], false)}, {prop: "close", name: "close", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "evict", name: "evict", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "prepare", name: "prepare", pkg: "internal/poll", typ: $funcType([$Int, $Bool], [$error], false)}, {prop: "prepareRead", name: "prepareRead", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false)}, {prop: "prepareWrite", name: "prepareWrite", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false)}, {prop: "wait", name: "wait", pkg: "internal/poll", typ: $funcType([$Int, $Bool], [$error], false)}, {prop: "waitRead", name: "waitRead", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false)}, {prop: "waitWrite", name: "waitWrite", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false)}, {prop: "waitCanceled", name: "waitCanceled", pkg: "internal/poll", typ: $funcType([$Int], [], false)}, {prop: "pollable", name: "pollable", pkg: "internal/poll", typ: $funcType([], [$Bool], false)}]; + ptrType$2.methods = [{prop: "incref", name: "incref", pkg: "internal/poll", typ: $funcType([], [$Bool], false)}, {prop: "increfAndClose", name: "increfAndClose", pkg: "internal/poll", typ: $funcType([], [$Bool], false)}, {prop: "decref", name: "decref", pkg: "internal/poll", typ: $funcType([], [$Bool], false)}, {prop: "rwlock", name: "rwlock", pkg: "internal/poll", typ: $funcType([$Bool], [$Bool], false)}, {prop: "rwunlock", name: "rwunlock", pkg: "internal/poll", typ: $funcType([$Bool], [$Bool], false)}]; errNetClosing.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false)}]; ptrType$10.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false)}]; - FD.init("internal/poll", [{prop: "fdmu", name: "fdmu", embedded: false, exported: false, typ: fdMutex, tag: ""}, {prop: "Sysfd", name: "Sysfd", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "pd", name: "pd", embedded: false, exported: false, typ: pollDesc, tag: ""}, {prop: "iovecs", name: "iovecs", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "csema", name: "csema", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "isBlocking", name: "isBlocking", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "IsStream", name: "IsStream", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "ZeroReadIsEOF", name: "ZeroReadIsEOF", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "isFile", name: "isFile", embedded: false, exported: false, typ: $Bool, tag: ""}]); - pollDesc.init("internal/poll", [{prop: "fd", name: "fd", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "closing", name: "closing", embedded: false, exported: false, typ: $Bool, tag: ""}]); + SysFile.init("internal/poll", [{prop: "iovecs", name: "iovecs", embedded: false, exported: false, typ: ptrType$4, tag: ""}]); + FD.init("internal/poll", [{prop: "fdmu", name: "fdmu", embedded: false, exported: false, typ: fdMutex, tag: ""}, {prop: "Sysfd", name: "Sysfd", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "SysFile", name: "SysFile", embedded: true, exported: true, typ: SysFile, tag: ""}, {prop: "pd", name: "pd", embedded: false, exported: false, typ: pollDesc, tag: ""}, {prop: "csema", name: "csema", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "isBlocking", name: "isBlocking", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "IsStream", name: "IsStream", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "ZeroReadIsEOF", name: "ZeroReadIsEOF", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "isFile", name: "isFile", embedded: false, exported: false, typ: $Bool, tag: ""}]); + pollDesc.init("internal/poll", [{prop: "fd", name: "fd", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "closing", name: "closing", embedded: false, exported: false, typ: $Bool, tag: ""}]); fdMutex.init("internal/poll", [{prop: "state", name: "state", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "rsema", name: "rsema", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "wsema", name: "wsema", embedded: false, exported: false, typ: $Uint32, tag: ""}]); errNetClosing.init("", []); DeadlineExceededError.init("", []); @@ -27813,9 +25348,9 @@ $packages["internal/poll"] = (function() { $r = atomic.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = syscall.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = time.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + dupCloexecUnsupported = new atomic.Bool.ptr(new atomic.noCopy.ptr(), 0); $pkg.CloseFunc = syscall.Close; $pkg.AcceptFunc = syscall.Accept; - tryDupCloexec = 1; $pkg.ErrNetClosing = new errNetClosing.ptr(); $pkg.ErrFileClosing = errors.New("use of closed file"); $pkg.ErrNoDeadline = errors.New("file type does not support deadline"); @@ -27961,7 +25496,7 @@ $packages["path"] = (function() { return $pkg; })(); $packages["io/fs"] = (function() { - var $pkg = {}, $init, errors, oserror, io, path, sort, time, utf8, File, DirEntry, FileInfo, FileMode, PathError, ptrType, sliceType$2, arrayType, interfaceType, ValidPath, errInvalid, errPermission, errExist, errNotExist, errClosed; + var $pkg = {}, $init, errors, oserror, io, path, sort, time, utf8, File, DirEntry, FileInfo, FileMode, PathError, ptrType, sliceType$2, arrayType, interfaceType, arrayType$1, ValidPath, errInvalid, errPermission, errExist, errNotExist, errClosed, FormatFileInfo, FormatDirEntry; errors = $packages["errors"]; oserror = $packages["internal/oserror"]; io = $packages["io"]; @@ -27995,6 +25530,7 @@ $packages["io/fs"] = (function() { sliceType$2 = $sliceType($Uint8); arrayType = $arrayType($Uint8, 32); interfaceType = $interfaceType([{prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}]); + arrayType$1 = $arrayType($Uint8, 20); ValidPath = function ValidPath$1(name) { var elem, i, name; if (!utf8.ValidString(name)) { @@ -28035,7 +25571,7 @@ $packages["io/fs"] = (function() { errClosed = function errClosed$1() { return oserror.ErrClosed; }; - FileMode.prototype.String = function String() { + FileMode.prototype.String = function String$2() { var _i, _i$1, _ref, _ref$1, _rune, _rune$1, buf, c, c$1, i, i$1, m, w, y, y$1; m = this.$val; buf = arrayType.zero(); @@ -28127,6 +25663,79 @@ $packages["io/fs"] = (function() { $s = 3; case 3: return $24r; /* */ } return; } var $f = {$blk: Timeout, $c: true, $r, $24r, _r, _tuple, _v, e, ok, t, $s};return $f; }; + FormatFileInfo = function FormatFileInfo$1(info) { + var {_arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, b, buf, i, info, name, q, size, usize, x, x$1, x$2, $s, $r, $c} = $restore(this, {info}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = info.Name(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + name = _r; + b = $makeSlice(sliceType$2, 0, (40 + name.length >> 0)); + _arg = b; + _r$1 = info.Mode(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = new FileMode(_r$1).String(); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg$1 = _r$2; + b = $appendSlice(_arg, _arg$1); + b = $append(b, 32); + _r$3 = info.Size(); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + size = _r$3; + usize = new $Uint64(0, 0); + if ((size.$high > 0 || (size.$high === 0 && size.$low >= 0))) { + usize = (new $Uint64(size.$high, size.$low)); + } else { + b = $append(b, 45); + usize = ((x = new $Int64(-size.$high, -size.$low), new $Uint64(x.$high, x.$low))); + } + buf = arrayType$1.zero(); + i = 19; + while (true) { + if (!((usize.$high > 0 || (usize.$high === 0 && usize.$low >= 10)))) { break; } + q = $div64(usize, new $Uint64(0, 10), false); + ((i < 0 || i >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i] = (((x$1 = new $Uint64(0 + usize.$high, 48 + usize.$low), x$2 = $mul64(q, new $Uint64(0, 10)), new $Uint64(x$1.$high - x$2.$high, x$1.$low - x$2.$low)).$low << 24 >>> 24))); + i = i - (1) >> 0; + usize = q; + } + ((i < 0 || i >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i] = ((new $Uint64(0 + usize.$high, 48 + usize.$low).$low << 24 >>> 24))); + b = $appendSlice(b, $subslice(new sliceType$2(buf), i)); + b = $append(b, 32); + _arg$2 = b; + _r$4 = info.ModTime(); /* */ $s = 5; case 5: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$5 = $clone(_r$4, time.Time).Format("2006-01-02 15:04:05"); /* */ $s = 6; case 6: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _arg$3 = _r$5; + b = $appendSlice(_arg$2, _arg$3); + b = $append(b, 32); + b = $appendSlice(b, name); + _r$6 = info.IsDir(); /* */ $s = 9; case 9: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + /* */ if (_r$6) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (_r$6) { */ case 7: + b = $append(b, 47); + /* } */ case 8: + $s = -1; return ($bytesToString(b)); + /* */ } return; } var $f = {$blk: FormatFileInfo$1, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, b, buf, i, info, name, q, size, usize, x, x$1, x$2, $s};return $f; + }; + $pkg.FormatFileInfo = FormatFileInfo; + FormatDirEntry = function FormatDirEntry$1(dir) { + var {_r, _r$1, _r$2, _r$3, b, dir, mode, name, $s, $r, $c} = $restore(this, {dir}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = dir.Name(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + name = _r; + b = $makeSlice(sliceType$2, 0, (5 + name.length >> 0)); + _r$1 = dir.Type(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = new FileMode(_r$1).String(); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + mode = _r$2; + mode = $substring(mode, 0, (mode.length - 9 >> 0)); + b = $appendSlice(b, mode); + b = $append(b, 32); + b = $appendSlice(b, name); + _r$3 = dir.IsDir(); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_r$3) { */ case 4: + b = $append(b, 47); + /* } */ case 5: + $s = -1; return ($bytesToString(b)); + /* */ } return; } var $f = {$blk: FormatDirEntry$1, $c: true, $r, _r, _r$1, _r$2, _r$3, b, dir, mode, name, $s};return $f; + }; + $pkg.FormatDirEntry = FormatDirEntry; FileMode.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "IsDir", name: "IsDir", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsRegular", name: "IsRegular", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Perm", name: "Perm", pkg: "", typ: $funcType([], [FileMode], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [FileMode], false)}]; ptrType.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Unwrap", name: "Unwrap", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}]; File.init([{prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "Stat", name: "Stat", pkg: "", typ: $funcType([], [FileInfo, $error], false)}]); @@ -28157,7 +25766,7 @@ $packages["io/fs"] = (function() { return $pkg; })(); $packages["os"] = (function() { - var $pkg = {}, $init, errors, js, itoa, poll, safefilepath, execenv, unix, testlog, io, fs, runtime, sort, sync, atomic, syscall, time, fileStat, File, rawConn, file, unixDirent, LinkError, onlyWriter, timeout, SyscallError, dirInfo, readdirMode, sliceType, sliceType$1, sliceType$2, ptrType, ptrType$1, ptrType$2, ptrType$3, ptrType$5, ptrType$6, sliceType$4, ptrType$7, ptrType$8, ptrType$9, funcType, ptrType$16, ptrType$17, sliceType$7, sliceType$8, funcType$2, funcType$3, ptrType$18, ptrType$19, testingForceReadDirLstat, errPatternHasSeparator, errWriteAtInAppendMode, lstat, dirBufPool, _r, _r$1, _r$2, statNolog, lstatNolog, fillFileStatFromSys, Stat, Lstat, newRawConn, init, IsPathSeparator, basename, runtime_args, init$1, fixLongPath, NewFile, newFile, epipecheck, openFileNolog, newUnixDirent, sigpipe, syscallMode, chmod, ignoringEINTR, genericReadFrom, setStickyBit, Open, OpenFile, Chmod, ReadFile, errNoDeadline, errDeadlineExceeded, IsNotExist, underlyingErrorIs, underlyingError, direntIno, direntReclen, direntNamlen, direntType, readInt, readIntBE, readIntLE; + var $pkg = {}, $init, errors, js, itoa, poll, safefilepath, execenv, unix, testlog, io, fs, runtime, sort, sync, atomic, syscall, time, fileStat, File, rawConn, file, unixDirent, LinkError, fileWithoutReadFrom, timeout, SyscallError, dirInfo, readdirMode, sliceType, sliceType$1, sliceType$2, ptrType, ptrType$1, ptrType$2, ptrType$3, ptrType$5, sliceType$3, ptrType$6, ptrType$7, ptrType$8, ptrType$9, funcType, sliceType$5, ptrType$16, ptrType$17, sliceType$7, funcType$2, funcType$3, ptrType$18, ptrType$19, testingForceReadDirLstat, errPatternHasSeparator, errWriteAtInAppendMode, lstat, checkWrapErr, dirBufPool, _r, _r$1, _r$2, statNolog, lstatNolog, fillFileStatFromSys, Stat, Lstat, newRawConn, init, IsPathSeparator, basename, runtime_args, init$1, fixLongPath, NewFile, newFile, sigpipe, epipecheck, openFileNolog, newUnixDirent, syscallMode, chmod, ignoringEINTR, open, genericReadFrom, setStickyBit, Open, OpenFile, Chmod, ReadFile, errNoDeadline, errDeadlineExceeded, IsNotExist, underlyingErrorIs, underlyingError, direntIno, direntReclen, direntNamlen, direntType, readInt, readIntBE, readIntLE; errors = $packages["errors"]; js = $packages["github.com/gopherjs/gopherjs/js"]; itoa = $packages["internal/itoa"]; @@ -28209,7 +25818,7 @@ $packages["os"] = (function() { file = $newType(0, $kindStruct, "os.file", true, "os", false, function(pfd_, name_, dirinfo_, nonblock_, stdoutOrErr_, appendMode_) { this.$val = this; if (arguments.length === 0) { - this.pfd = new poll.FD.ptr(new poll.fdMutex.ptr(new $Uint64(0, 0), 0, 0), 0, new poll.pollDesc.ptr(ptrType$6.nil, false), ptrType$7.nil, 0, 0, false, false, false); + this.pfd = new poll.FD.ptr(new poll.fdMutex.ptr(new $Uint64(0, 0), 0, 0), 0, new poll.SysFile.ptr(ptrType$6.nil), new poll.pollDesc.ptr(ptrType$7.nil, false), 0, 0, false, false, false); this.name = ""; this.dirinfo = ptrType$8.nil; this.nonblock = false; @@ -28252,13 +25861,13 @@ $packages["os"] = (function() { this.New = New_; this.Err = Err_; }); - onlyWriter = $newType(0, $kindStruct, "os.onlyWriter", true, "os", false, function(Writer_) { + fileWithoutReadFrom = $newType(0, $kindStruct, "os.fileWithoutReadFrom", true, "os", false, function(File_) { this.$val = this; if (arguments.length === 0) { - this.Writer = $ifaceNil; + this.File = ptrType$2.nil; return; } - this.Writer = Writer_; + this.File = File_; }); timeout = $newType(8, $kindInterface, "os.timeout", true, "os", false, null); SyscallError = $newType(0, $kindStruct, "os.SyscallError", true, "os", true, function(Syscall_, Err_) { @@ -28290,7 +25899,7 @@ $packages["os"] = (function() { $pkg.file = file; $pkg.unixDirent = unixDirent; $pkg.LinkError = LinkError; - $pkg.onlyWriter = onlyWriter; + $pkg.fileWithoutReadFrom = fileWithoutReadFrom; $pkg.timeout = timeout; $pkg.SyscallError = SyscallError; $pkg.dirInfo = dirInfo; @@ -28304,16 +25913,16 @@ $packages["os"] = (function() { ptrType$2 = $ptrType(File); ptrType$3 = $ptrType(time.Location); ptrType$5 = $ptrType(fs.PathError); - ptrType$6 = $ptrType(poll.FD); - sliceType$4 = $sliceType(syscall.Iovec); - ptrType$7 = $ptrType(sliceType$4); + sliceType$3 = $sliceType(syscall.Iovec); + ptrType$6 = $ptrType(sliceType$3); + ptrType$7 = $ptrType(poll.FD); ptrType$8 = $ptrType(dirInfo); ptrType$9 = $ptrType(file); funcType = $funcType([ptrType$9], [$error], false); + sliceType$5 = $sliceType(fs.DirEntry); ptrType$16 = $ptrType(LinkError); ptrType$17 = $ptrType(SyscallError); - sliceType$7 = $sliceType(fs.DirEntry); - sliceType$8 = $sliceType(fs.FileInfo); + sliceType$7 = $sliceType(fs.FileInfo); funcType$2 = $funcType([$Uintptr], [], false); funcType$3 = $funcType([$Uintptr], [$Bool], false); ptrType$18 = $ptrType(rawConn); @@ -28608,31 +26217,36 @@ $packages["os"] = (function() { /* */ } return; } var $f = {$blk: Fd, $c: true, $r, _r$3, f, $s};return $f; }; NewFile = function NewFile$1(fd, name) { - var {$24r, _r$3, _tuple, err, fd, kind, name, nb, $s, $r, $c} = $restore(this, {fd, name}); + var {_r$3, _tuple, appendMode, err, f, fd, fdi, flags, kind, name, $s, $r, $c} = $restore(this, {fd, name}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + fdi = ((fd >> 0)); + if (fdi < 0) { + $s = -1; return ptrType$2.nil; + } kind = 0; - _tuple = unix.IsNonblock(((fd >> 0))); - nb = _tuple[0]; + appendMode = false; + _tuple = unix.Fcntl(fdi, 3, 0); + flags = _tuple[0]; err = _tuple[1]; - if ($interfaceIsEqual(err, $ifaceNil) && nb) { - kind = 3; + if ($interfaceIsEqual(err, $ifaceNil)) { + if (unix.HasNonblockFlag(flags)) { + kind = 3; + } + appendMode = !(((flags & 1024) === 0)); } - _r$3 = newFile(fd, name, kind); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r = _r$3; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: NewFile$1, $c: true, $r, $24r, _r$3, _tuple, err, fd, kind, name, nb, $s};return $f; + _r$3 = newFile(fdi, name, kind); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + f = _r$3; + f.file.appendMode = appendMode; + $s = -1; return f; + /* */ } return; } var $f = {$blk: NewFile$1, $c: true, $r, _r$3, _tuple, appendMode, err, f, fd, fdi, flags, kind, name, $s};return $f; }; $pkg.NewFile = NewFile; newFile = function newFile$1(fd, name, kind) { - var {_1, _r$3, clearNonBlock, err, err$1, err$2, f, fd, fdi, kind, name, pollErr, pollable, st, typ, $s, $r, $c} = $restore(this, {fd, name, kind}); + var {_1, _r$3, clearNonBlock, err, err$1, err$2, f, fd, kind, name, pollErr, pollable, st, typ, $s, $r, $c} = $restore(this, {fd, name, kind}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - fdi = [fdi]; + fd = [fd]; st = [st]; - fdi[0] = ((fd >> 0)); - if (fdi[0] < 0) { - $s = -1; return ptrType$2.nil; - } - f = new File.ptr(new file.ptr($clone(new poll.FD.ptr(new poll.fdMutex.ptr(new $Uint64(0, 0), 0, 0), fdi[0], new poll.pollDesc.ptr(ptrType$6.nil, false), ptrType$7.nil, 0, 0, true, true, false), poll.FD), name, ptrType$8.nil, false, (fdi[0] === 1) || (fdi[0] === 2), false)); + f = new File.ptr(new file.ptr($clone(new poll.FD.ptr(new poll.fdMutex.ptr(new $Uint64(0, 0), 0, 0), fd[0], new poll.SysFile.ptr(ptrType$6.nil), new poll.pollDesc.ptr(ptrType$7.nil, false), 0, 0, true, true, false), poll.FD), name, ptrType$8.nil, false, (fd[0] === 1) || (fd[0] === 2), false)); pollable = (kind === 1) || (kind === 2) || (kind === 3); /* */ if (kind === 1) { $s = 1; continue; } /* */ $s = 2; continue; @@ -28642,14 +26256,14 @@ $packages["os"] = (function() { /* */ $s = 5; continue; /* if (_1 === ("darwin") || _1 === ("ios") || _1 === ("dragonfly") || _1 === ("freebsd") || _1 === ("netbsd") || _1 === ("openbsd")) { */ case 4: st[0] = new syscall.Stat_t.ptr(new $Int64(0, 0), new $Uint64(0, 0), 0, 0, 0, 0, new $Int64(0, 0), new $Int64(0, 0), 0, 0, new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0)); - _r$3 = ignoringEINTR((function(fdi, st) { return function newFile·func1() { + _r$3 = ignoringEINTR((function(fd, st) { return function newFile·func1() { var {$24r, _r$3, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$3 = syscall.Fstat(fdi[0], st[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3 = syscall.Fstat(fd[0], st[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } $24r = _r$3; $s = 2; case 2: return $24r; /* */ } return; } var $f = {$blk: newFile·func1, $c: true, $r, $24r, _r$3, $s};return $f; - }; })(fdi, st)); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + }; })(fd, st)); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } err = _r$3; typ = (st[0].Mode & 126976) >>> 0; if ($interfaceIsEqual(err, $ifaceNil) && ((typ === 32768) || (typ === 16384))) { @@ -28665,7 +26279,7 @@ $packages["os"] = (function() { if (pollable) { if (kind === 3) { } else { - err$1 = syscall.SetNonblock(fdi[0], true); + err$1 = syscall.SetNonblock(fd[0], true); if ($interfaceIsEqual(err$1, $ifaceNil)) { f.file.nonblock = true; clearNonBlock = true; @@ -28676,15 +26290,18 @@ $packages["os"] = (function() { } pollErr = f.file.pfd.Init("file", pollable); if (!($interfaceIsEqual(pollErr, $ifaceNil)) && clearNonBlock) { - err$2 = syscall.SetNonblock(fdi[0], false); + err$2 = syscall.SetNonblock(fd[0], false); if ($interfaceIsEqual(err$2, $ifaceNil)) { f.file.nonblock = false; } } runtime.SetFinalizer(f.file, new funcType($methodExpr(ptrType$9, "close"))); $s = -1; return f; - /* */ } return; } var $f = {$blk: newFile$1, $c: true, $r, _1, _r$3, clearNonBlock, err, err$1, err$2, f, fd, fdi, kind, name, pollErr, pollable, st, typ, $s};return $f; + /* */ } return; } var $f = {$blk: newFile$1, $c: true, $r, _1, _r$3, clearNonBlock, err, err$1, err$2, f, fd, kind, name, pollErr, pollable, st, typ, $s};return $f; }; + sigpipe = function() { + $throwRuntimeError("native function not implemented: os.sigpipe"); + }; epipecheck = function epipecheck$1(file$1, e) { var {e, file$1, $s, $r, $c} = $restore(this, {file$1, e}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: @@ -28697,7 +26314,7 @@ $packages["os"] = (function() { /* */ } return; } var $f = {$blk: epipecheck$1, $c: true, $r, e, file$1, $s};return $f; }; openFileNolog = function openFileNolog$1(name, flag, perm) { - var {$24r, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, e, err, flag, kind, name, perm, r, setSticky, $s, $r, $c} = $restore(this, {name, flag, perm}); + var {_r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, e, err, f, flag, kind, name, perm, r, s, setSticky, $s, $r, $c} = $restore(this, {name, flag, perm}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: setSticky = false; /* */ if (true && !(((flag & 64) === 0)) && !((((perm & 1048576) >>> 0) === 0))) { $s = 1; continue; } @@ -28711,12 +26328,14 @@ $packages["os"] = (function() { } /* } */ case 2: r = 0; + s = new poll.SysFile.ptr(ptrType$6.nil); /* while (true) { */ case 4: e = $ifaceNil; - _r$4 = syscall.Open(name, flag | 0, syscallMode(perm)); /* */ $s = 6; case 6: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4 = open(name, flag | 0, syscallMode(perm)); /* */ $s = 6; case 6: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } _tuple$1 = _r$4; r = _tuple$1[0]; - e = _tuple$1[1]; + poll.SysFile.copy(s, _tuple$1[1]); + e = _tuple$1[2]; if ($interfaceIsEqual(e, $ifaceNil)) { /* break; */ $s = 5; continue; } @@ -28738,10 +26357,11 @@ $packages["os"] = (function() { if (unix.HasNonblockFlag(flag)) { kind = 3; } - _r$6 = newFile(((r >>> 0)), name, kind); /* */ $s = 10; case 10: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - $24r = [_r$6, $ifaceNil]; - $s = 11; case 11: return $24r; - /* */ } return; } var $f = {$blk: openFileNolog$1, $c: true, $r, $24r, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, e, err, flag, kind, name, perm, r, setSticky, $s};return $f; + _r$6 = newFile(r, name, kind); /* */ $s = 10; case 10: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + f = _r$6; + poll.SysFile.copy(f.file.pfd.SysFile, s); + $s = -1; return [f, $ifaceNil]; + /* */ } return; } var $f = {$blk: openFileNolog$1, $c: true, $r, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, e, err, f, flag, kind, name, perm, r, s, setSticky, $s};return $f; }; $ptrType(file).prototype.close = function close() { var {_r$3, e, err, file$1, $s, $r, $c} = $restore(this, {}); @@ -28816,6 +26436,15 @@ $packages["os"] = (function() { $s = 2; case 2: return $24r; /* */ } return; } var $f = {$blk: Info, $c: true, $r, $24r, _r$3, d, $s};return $f; }; + $ptrType(unixDirent).prototype.String = function String() { + var {$24r, _r$3, d, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + d = this; + _r$3 = fs.FormatDirEntry(d); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String, $c: true, $r, $24r, _r$3, d, $s};return $f; + }; newUnixDirent = function newUnixDirent$1(parent, name, typ) { var {_r$3, _r$4, _r$5, _tuple, err, info, name, parent, typ, ude, $s, $r, $c} = $restore(this, {parent, name, typ}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: @@ -28837,9 +26466,6 @@ $packages["os"] = (function() { $s = -1; return [ude, $ifaceNil]; /* */ } return; } var $f = {$blk: newUnixDirent$1, $c: true, $r, _r$3, _r$4, _r$5, _tuple, err, info, name, parent, typ, ude, $s};return $f; }; - sigpipe = function() { - $throwRuntimeError("native function not implemented: os.sigpipe"); - }; $ptrType(File).prototype.Close = function Close() { var {$24r, _r$3, f, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: @@ -28961,7 +26587,7 @@ $packages["os"] = (function() { /* */ } return; } var $f = {$blk: chmod$1, $c: true, $r, _r$3, e, longName, mode, name, $s};return $f; }; $ptrType(File).prototype.chmod = function chmod$2(mode) { - var {_r$3, e, err, f, mode, $s, $r, $c} = $restore(this, {mode}); + var {$24r, _r$3, _r$4, e, err, f, mode, $s, $r, $c} = $restore(this, {mode}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: f = this; err = f.checkValid("chmod"); @@ -28970,14 +26596,18 @@ $packages["os"] = (function() { } _r$3 = f.file.pfd.Fchmod(syscallMode(mode)); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } e = _r$3; - if (!($interfaceIsEqual(e, $ifaceNil))) { - $s = -1; return f.wrapErr("chmod", e); - } + /* */ if (!($interfaceIsEqual(e, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(e, $ifaceNil))) { */ case 2: + _r$4 = f.wrapErr("chmod", e); /* */ $s = 4; case 4: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r = _r$4; + $s = 5; case 5: return $24r; + /* } */ case 3: $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: chmod$2, $c: true, $r, _r$3, e, err, f, mode, $s};return $f; + /* */ } return; } var $f = {$blk: chmod$2, $c: true, $r, $24r, _r$3, _r$4, e, err, f, mode, $s};return $f; }; $ptrType(File).prototype.Chown = function Chown$2(uid, gid) { - var {_r$3, e, err, f, gid, uid, $s, $r, $c} = $restore(this, {uid, gid}); + var {$24r, _r$3, _r$4, e, err, f, gid, uid, $s, $r, $c} = $restore(this, {uid, gid}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: f = this; err = f.checkValid("chown"); @@ -28986,14 +26616,18 @@ $packages["os"] = (function() { } _r$3 = f.file.pfd.Fchown(uid, gid); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } e = _r$3; - if (!($interfaceIsEqual(e, $ifaceNil))) { - $s = -1; return f.wrapErr("chown", e); - } + /* */ if (!($interfaceIsEqual(e, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(e, $ifaceNil))) { */ case 2: + _r$4 = f.wrapErr("chown", e); /* */ $s = 4; case 4: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r = _r$4; + $s = 5; case 5: return $24r; + /* } */ case 3: $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: Chown$2, $c: true, $r, _r$3, e, err, f, gid, uid, $s};return $f; + /* */ } return; } var $f = {$blk: Chown$2, $c: true, $r, $24r, _r$3, _r$4, e, err, f, gid, uid, $s};return $f; }; $ptrType(File).prototype.Truncate = function Truncate$2(size) { - var {_r$3, e, err, f, size, $s, $r, $c} = $restore(this, {size}); + var {$24r, _r$3, _r$4, e, err, f, size, $s, $r, $c} = $restore(this, {size}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: f = this; err = f.checkValid("truncate"); @@ -29002,14 +26636,18 @@ $packages["os"] = (function() { } _r$3 = f.file.pfd.Ftruncate(size); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } e = _r$3; - if (!($interfaceIsEqual(e, $ifaceNil))) { - $s = -1; return f.wrapErr("truncate", e); - } + /* */ if (!($interfaceIsEqual(e, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(e, $ifaceNil))) { */ case 2: + _r$4 = f.wrapErr("truncate", e); /* */ $s = 4; case 4: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r = _r$4; + $s = 5; case 5: return $24r; + /* } */ case 3: $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: Truncate$2, $c: true, $r, _r$3, e, err, f, size, $s};return $f; + /* */ } return; } var $f = {$blk: Truncate$2, $c: true, $r, $24r, _r$3, _r$4, e, err, f, size, $s};return $f; }; $ptrType(File).prototype.Sync = function Sync() { - var {_r$3, e, err, f, $s, $r, $c} = $restore(this, {}); + var {$24r, _r$3, _r$4, e, err, f, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: f = this; err = f.checkValid("sync"); @@ -29018,14 +26656,18 @@ $packages["os"] = (function() { } _r$3 = f.file.pfd.Fsync(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } e = _r$3; - if (!($interfaceIsEqual(e, $ifaceNil))) { - $s = -1; return f.wrapErr("sync", e); - } + /* */ if (!($interfaceIsEqual(e, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(e, $ifaceNil))) { */ case 2: + _r$4 = f.wrapErr("sync", e); /* */ $s = 4; case 4: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r = _r$4; + $s = 5; case 5: return $24r; + /* } */ case 3: $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: Sync, $c: true, $r, _r$3, e, err, f, $s};return $f; + /* */ } return; } var $f = {$blk: Sync, $c: true, $r, $24r, _r$3, _r$4, e, err, f, $s};return $f; }; $ptrType(File).prototype.Chdir = function Chdir$1() { - var {_r$3, e, err, f, $s, $r, $c} = $restore(this, {}); + var {$24r, _r$3, _r$4, e, err, f, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: f = this; err = f.checkValid("chdir"); @@ -29034,11 +26676,15 @@ $packages["os"] = (function() { } _r$3 = f.file.pfd.Fchdir(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } e = _r$3; - if (!($interfaceIsEqual(e, $ifaceNil))) { - $s = -1; return f.wrapErr("chdir", e); - } + /* */ if (!($interfaceIsEqual(e, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(e, $ifaceNil))) { */ case 2: + _r$4 = f.wrapErr("chdir", e); /* */ $s = 4; case 4: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r = _r$4; + $s = 5; case 5: return $24r; + /* } */ case 3: $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: Chdir$1, $c: true, $r, _r$3, e, err, f, $s};return $f; + /* */ } return; } var $f = {$blk: Chdir$1, $c: true, $r, $24r, _r$3, _r$4, e, err, f, $s};return $f; }; $ptrType(File).prototype.setDeadline = function setDeadline(t) { var {$24r, _r$3, err, f, t, $s, $r, $c} = $restore(this, {t}); @@ -29101,6 +26747,16 @@ $packages["os"] = (function() { $s = -1; return $ifaceNil; /* */ } return; } var $f = {$blk: ignoringEINTR$1, $c: true, $r, _r$3, err, fn, $s};return $f; }; + open = function open$1(path, flag, perm) { + var {_r$3, _tuple, err, fd, flag, path, perm, $s, $r, $c} = $restore(this, {path, flag, perm}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r$3 = syscall.Open(path, flag, perm); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + fd = _tuple[0]; + err = _tuple[1]; + $s = -1; return [fd, new poll.SysFile.ptr(ptrType$6.nil), err]; + /* */ } return; } var $f = {$blk: open$1, $c: true, $r, _r$3, _tuple, err, fd, flag, path, perm, $s};return $f; + }; $ptrType(File).prototype.Name = function Name$2() { var f; f = this; @@ -29121,7 +26777,7 @@ $packages["os"] = (function() { return e.Err; }; $ptrType(File).prototype.Read = function Read$1(b) { - var {_r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, n, $s, $r, $c} = $restore(this, {b}); + var {$24r, _r$3, _r$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, n, $s, $r, $c} = $restore(this, {b}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: n = 0; err = $ifaceNil; @@ -29139,14 +26795,16 @@ $packages["os"] = (function() { n = _tuple[0]; e = _tuple[1]; _tmp$2 = n; - _tmp$3 = f.wrapErr("read", e); + _r$4 = f.wrapErr("read", e); /* */ $s = 2; case 2: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tmp$3 = _r$4; n = _tmp$2; err = _tmp$3; - $s = -1; return [n, err]; - /* */ } return; } var $f = {$blk: Read$1, $c: true, $r, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, n, $s};return $f; + $24r = [n, err]; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: Read$1, $c: true, $r, $24r, _r$3, _r$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, n, $s};return $f; }; $ptrType(File).prototype.ReadAt = function ReadAt(b, off) { - var {_r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, m, n, off, x, $s, $r, $c} = $restore(this, {b, off}); + var {_r$3, _r$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, m, n, off, x, $s, $r, $c} = $restore(this, {b, off}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: n = 0; err = $ifaceNil; @@ -29172,20 +26830,23 @@ $packages["os"] = (function() { _tuple = _r$3; m = _tuple[0]; e = _tuple[1]; - if (!($interfaceIsEqual(e, $ifaceNil))) { - err = f.wrapErr("read", e); + /* */ if (!($interfaceIsEqual(e, $ifaceNil))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!($interfaceIsEqual(e, $ifaceNil))) { */ case 4: + _r$4 = f.wrapErr("read", e); /* */ $s = 6; case 6: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + err = _r$4; /* break; */ $s = 2; continue; - } + /* } */ case 5: n = n + (m) >> 0; b = $subslice(b, m); off = (x = (new $Int64(0, m)), new $Int64(off.$high + x.$high, off.$low + x.$low)); $s = 1; continue; case 2: $s = -1; return [n, err]; - /* */ } return; } var $f = {$blk: ReadAt, $c: true, $r, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, m, n, off, x, $s};return $f; + /* */ } return; } var $f = {$blk: ReadAt, $c: true, $r, _r$3, _r$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, m, n, off, x, $s};return $f; }; $ptrType(File).prototype.ReadFrom = function ReadFrom(r) { - var {$24r, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, e, err, err$1, f, handled, n, r, $s, $r, $c} = $restore(this, {r}); + var {$24r, $24r$1, _r$3, _r$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, e, err, err$1, f, handled, n, r, $s, $r, $c} = $restore(this, {r}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: n = new $Int64(0, 0); err = $ifaceNil; @@ -29213,22 +26874,29 @@ $packages["os"] = (function() { $s = 4; case 4: return $24r; /* } */ case 2: _tmp$2 = n; - _tmp$3 = f.wrapErr("write", e); + _r$4 = f.wrapErr("write", e); /* */ $s = 5; case 5: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tmp$3 = _r$4; n = _tmp$2; err = _tmp$3; - $s = -1; return [n, err]; - /* */ } return; } var $f = {$blk: ReadFrom, $c: true, $r, $24r, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, e, err, err$1, f, handled, n, r, $s};return $f; + $24r$1 = [n, err]; + $s = 6; case 6: return $24r$1; + /* */ } return; } var $f = {$blk: ReadFrom, $c: true, $r, $24r, $24r$1, _r$3, _r$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, e, err, err$1, f, handled, n, r, $s};return $f; }; genericReadFrom = function genericReadFrom$1(f, r) { var {$24r, _r$3, f, r, x, $s, $r, $c} = $restore(this, {f, r}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$3 = io.Copy((x = new onlyWriter.ptr(f), new x.constructor.elem(x)), r); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3 = io.Copy((x = new fileWithoutReadFrom.ptr(f), new x.constructor.elem(x)), r); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } $24r = _r$3; $s = 2; case 2: return $24r; /* */ } return; } var $f = {$blk: genericReadFrom$1, $c: true, $r, $24r, _r$3, f, r, x, $s};return $f; }; + $ptrType(fileWithoutReadFrom).prototype.ReadFrom = function ReadFrom$1(param) { + var param; + $panic(new $String("unreachable")); + }; + fileWithoutReadFrom.prototype.ReadFrom = function(...$args) { return this.$val.ReadFrom(...$args); }; $ptrType(File).prototype.Write = function Write$1(b) { - var {_r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, n, $s, $r, $c} = $restore(this, {b}); + var {_r$3, _r$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, n, $s, $r, $c} = $restore(this, {b}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: n = 0; err = $ifaceNil; @@ -29252,18 +26920,21 @@ $packages["os"] = (function() { err = io.ErrShortWrite; } $r = epipecheck(f, e); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (!($interfaceIsEqual(e, $ifaceNil))) { - err = f.wrapErr("write", e); - } + /* */ if (!($interfaceIsEqual(e, $ifaceNil))) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!($interfaceIsEqual(e, $ifaceNil))) { */ case 3: + _r$4 = f.wrapErr("write", e); /* */ $s = 5; case 5: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + err = _r$4; + /* } */ case 4: _tmp$2 = n; _tmp$3 = err; n = _tmp$2; err = _tmp$3; $s = -1; return [n, err]; - /* */ } return; } var $f = {$blk: Write$1, $c: true, $r, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, n, $s};return $f; + /* */ } return; } var $f = {$blk: Write$1, $c: true, $r, _r$3, _r$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, n, $s};return $f; }; $ptrType(File).prototype.WriteAt = function WriteAt(b, off) { - var {_r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, b, e, err, err$1, f, m, n, off, x, $s, $r, $c} = $restore(this, {b, off}); + var {_r$3, _r$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, b, e, err, err$1, f, m, n, off, x, $s, $r, $c} = $restore(this, {b, off}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: n = 0; err = $ifaceNil; @@ -29296,20 +26967,23 @@ $packages["os"] = (function() { _tuple = _r$3; m = _tuple[0]; e = _tuple[1]; - if (!($interfaceIsEqual(e, $ifaceNil))) { - err = f.wrapErr("write", e); + /* */ if (!($interfaceIsEqual(e, $ifaceNil))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!($interfaceIsEqual(e, $ifaceNil))) { */ case 4: + _r$4 = f.wrapErr("write", e); /* */ $s = 6; case 6: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + err = _r$4; /* break; */ $s = 2; continue; - } + /* } */ case 5: n = n + (m) >> 0; b = $subslice(b, m); off = (x = (new $Int64(0, m)), new $Int64(off.$high + x.$high, off.$low + x.$low)); $s = 1; continue; case 2: $s = -1; return [n, err]; - /* */ } return; } var $f = {$blk: WriteAt, $c: true, $r, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, b, e, err, err$1, f, m, n, off, x, $s};return $f; + /* */ } return; } var $f = {$blk: WriteAt, $c: true, $r, _r$3, _r$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, b, e, err, err$1, f, m, n, off, x, $s};return $f; }; $ptrType(File).prototype.Seek = function Seek(offset, whence) { - var {_r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, e, err, err$1, f, offset, r, ret, whence, $s, $r, $c} = $restore(this, {offset, whence}); + var {$24r, _r$3, _r$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, e, err, err$1, f, offset, r, ret, whence, $s, $r, $c} = $restore(this, {offset, whence}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: ret = new $Int64(0, 0); err = $ifaceNil; @@ -29329,19 +27003,23 @@ $packages["os"] = (function() { if ($interfaceIsEqual(e, $ifaceNil) && !(f.file.dirinfo === ptrType$8.nil) && !((r.$high === 0 && r.$low === 0))) { e = new syscall.Errno(21); } - if (!($interfaceIsEqual(e, $ifaceNil))) { + /* */ if (!($interfaceIsEqual(e, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(e, $ifaceNil))) { */ case 2: _tmp$2 = new $Int64(0, 0); - _tmp$3 = f.wrapErr("seek", e); + _r$4 = f.wrapErr("seek", e); /* */ $s = 4; case 4: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tmp$3 = _r$4; ret = _tmp$2; err = _tmp$3; - $s = -1; return [ret, err]; - } + $24r = [ret, err]; + $s = 5; case 5: return $24r; + /* } */ case 3: _tmp$4 = r; _tmp$5 = $ifaceNil; ret = _tmp$4; err = _tmp$5; $s = -1; return [ret, err]; - /* */ } return; } var $f = {$blk: Seek, $c: true, $r, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, e, err, err$1, f, offset, r, ret, whence, $s};return $f; + /* */ } return; } var $f = {$blk: Seek, $c: true, $r, $24r, _r$3, _r$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, e, err, err$1, f, offset, r, ret, whence, $s};return $f; }; setStickyBit = function setStickyBit$1(name) { var {$24r, _arg, _arg$1, _r$3, _r$4, _r$5, _tuple, err, fi, name, $s, $r, $c} = $restore(this, {name}); @@ -29387,15 +27065,27 @@ $packages["os"] = (function() { }; $pkg.OpenFile = OpenFile; $ptrType(File).prototype.wrapErr = function wrapErr(op, err) { - var err, f, op; + var {_r$3, _r$4, _v, err, f, op, $s, $r, $c} = $restore(this, {op, err}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: f = this; if ($interfaceIsEqual(err, $ifaceNil) || $interfaceIsEqual(err, io.EOF)) { - return err; + $s = -1; return err; } - if ($interfaceIsEqual(err, poll.ErrFileClosing)) { + /* */ if ($interfaceIsEqual(err, poll.ErrFileClosing)) { $s = 1; continue; } + if (!(checkWrapErr)) { _v = false; $s = 4; continue s; } + _r$3 = errors.Is(err, poll.ErrFileClosing); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v = _r$3; case 4: + /* */ if (_v) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if ($interfaceIsEqual(err, poll.ErrFileClosing)) { */ case 1: err = $pkg.ErrClosed; - } - return new fs.PathError.ptr(op, f.file.name, err); + $s = 3; continue; + /* } else if (_v) { */ case 2: + _r$4 = err.Error(); /* */ $s = 6; case 6: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $panic(new $String("unexpected error wrapping poll.ErrFileClosing: " + _r$4)); + /* } */ case 3: + $s = -1; return new fs.PathError.ptr(op, f.file.name, err); + /* */ } return; } var $f = {$blk: wrapErr, $c: true, $r, _r$3, _r$4, _v, err, f, op, $s};return $f; }; Chmod = function Chmod$1(name, mode) { var {$24r, _r$3, mode, name, $s, $r, $c} = $restore(this, {name, mode}); @@ -29452,7 +27142,7 @@ $packages["os"] = (function() { _returncast = newRawConn(f); return [_returncast[0], _returncast[1]]; }; - ReadFile = function ReadFile$1(name) { + ReadFile = function ReadFile$2(name) { var {$24r, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, _tuple$2, d, data, err, err$1, err$2, f, info, n, name, size, size64, x, $s, $deferred, $r, $c} = $restore(this, {name}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); _r$3 = Open(name); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } @@ -29504,7 +27194,7 @@ $packages["os"] = (function() { $s = 6; continue; case 7: $s = -1; return [sliceType$2.nil, $ifaceNil]; - /* */ } return; } } catch(err) { $err = err; $s = -1; return [sliceType$2.nil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: ReadFile$1, $c: true, $r, $24r, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, _tuple$2, d, data, err, err$1, err$2, f, info, n, name, size, size64, x, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; return [sliceType$2.nil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: ReadFile$2, $c: true, $r, $24r, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, _tuple$2, d, data, err, err$1, err$2, f, info, n, name, size, size64, x, $s, $deferred};return $f; } } }; $pkg.ReadFile = ReadFile; errNoDeadline = function errNoDeadline$1() { @@ -29606,8 +27296,8 @@ $packages["os"] = (function() { var {_i, _r$3, _r$4, _r$5, _r$6, _ref, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, buf, c, d, de, dirents, err, err$1, err$2, errno, f, i, info, infos, ino, mode, n, name, names, namlen, ok, rec, reclen, x, x$1, x$2, $s, $r, $c} = $restore(this, {n, mode}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: names = sliceType.nil; - dirents = sliceType$7.nil; - infos = sliceType$8.nil; + dirents = sliceType$5.nil; + infos = sliceType$7.nil; err = $ifaceNil; f = this; /* */ if (f.file.dirinfo === ptrType$8.nil) { $s = 1; continue; } @@ -29663,7 +27353,7 @@ $packages["os"] = (function() { if (!ok) { /* break; */ $s = 5; continue; } - if ((ino.$high === 0 && ino.$low === 0)) { + if ((ino.$high === 0 && ino.$low === 0) && true) { /* continue; */ $s = 4; continue; } _tuple$3 = direntNamlen(rec); @@ -29708,7 +27398,7 @@ $packages["os"] = (function() { if (!($interfaceIsEqual(err$1, $ifaceNil))) { _tmp$4 = sliceType.nil; _tmp$5 = dirents; - _tmp$6 = sliceType$8.nil; + _tmp$6 = sliceType$7.nil; _tmp$7 = err$1; names = _tmp$4; dirents = _tmp$5; @@ -29728,7 +27418,7 @@ $packages["os"] = (function() { } if (!($interfaceIsEqual(err$2, $ifaceNil))) { _tmp$8 = sliceType.nil; - _tmp$9 = sliceType$7.nil; + _tmp$9 = sliceType$5.nil; _tmp$10 = infos; _tmp$11 = err$2; names = _tmp$8; @@ -29743,8 +27433,8 @@ $packages["os"] = (function() { case 5: if (n > 0 && (((names.$length + dirents.$length >> 0) + infos.$length >> 0) === 0)) { _tmp$12 = sliceType.nil; - _tmp$13 = sliceType$7.nil; - _tmp$14 = sliceType$8.nil; + _tmp$13 = sliceType$5.nil; + _tmp$14 = sliceType$7.nil; _tmp$15 = io.EOF; names = _tmp$12; dirents = _tmp$13; @@ -29828,14 +27518,14 @@ $packages["os"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: f = this; if (f === ptrType$2.nil) { - $s = -1; return [sliceType$8.nil, $pkg.ErrInvalid]; + $s = -1; return [sliceType$7.nil, $pkg.ErrInvalid]; } _r$3 = f.readdir(n, 2); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _tuple = _r$3; infos = _tuple[2]; err = _tuple[3]; - if (infos === sliceType$8.nil) { - infos = new sliceType$8([]); + if (infos === sliceType$7.nil) { + infos = new sliceType$7([]); } $s = -1; return [infos, err]; /* */ } return; } var $f = {$blk: Readdir, $c: true, $r, _r$3, _tuple, err, f, infos, n, $s};return $f; @@ -29867,29 +27557,30 @@ $packages["os"] = (function() { $s = -1; return [names, err]; /* */ } return; } var $f = {$blk: Readdirnames, $c: true, $r, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, err, f, n, names, $s};return $f; }; - $ptrType(File).prototype.ReadDir = function ReadDir$1(n) { + $ptrType(File).prototype.ReadDir = function ReadDir$2(n) { var {_r$3, _tuple, dirents, err, f, n, $s, $r, $c} = $restore(this, {n}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: f = this; if (f === ptrType$2.nil) { - $s = -1; return [sliceType$7.nil, $pkg.ErrInvalid]; + $s = -1; return [sliceType$5.nil, $pkg.ErrInvalid]; } _r$3 = f.readdir(n, 1); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } _tuple = _r$3; dirents = _tuple[1]; err = _tuple[3]; - if (dirents === sliceType$7.nil) { - dirents = new sliceType$7([]); + if (dirents === sliceType$5.nil) { + dirents = new sliceType$5([]); } $s = -1; return [dirents, err]; - /* */ } return; } var $f = {$blk: ReadDir$1, $c: true, $r, _r$3, _tuple, dirents, err, f, n, $s};return $f; + /* */ } return; } var $f = {$blk: ReadDir$2, $c: true, $r, _r$3, _tuple, dirents, err, f, n, $s};return $f; }; ptrType$1.methods = [{prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Mode", name: "Mode", pkg: "", typ: $funcType([], [fs.FileMode], false)}, {prop: "ModTime", name: "ModTime", pkg: "", typ: $funcType([], [time.Time], false)}, {prop: "Sys", name: "Sys", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "IsDir", name: "IsDir", pkg: "", typ: $funcType([], [$Bool], false)}]; - ptrType$2.methods = [{prop: "Stat", name: "Stat", pkg: "", typ: $funcType([], [fs.FileInfo, $error], false)}, {prop: "readFrom", name: "readFrom", pkg: "os", typ: $funcType([io.Reader], [$Int64, $Bool, $error], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}, {prop: "Fd", name: "Fd", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "seek", name: "seek", pkg: "os", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "read", name: "read", pkg: "os", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "pread", name: "pread", pkg: "os", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "write", name: "write", pkg: "os", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "pwrite", name: "pwrite", pkg: "os", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "chmod", name: "chmod", pkg: "os", typ: $funcType([fs.FileMode], [$error], false)}, {prop: "Chown", name: "Chown", pkg: "", typ: $funcType([$Int, $Int], [$error], false)}, {prop: "Truncate", name: "Truncate", pkg: "", typ: $funcType([$Int64], [$error], false)}, {prop: "Sync", name: "Sync", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Chdir", name: "Chdir", pkg: "", typ: $funcType([], [$error], false)}, {prop: "setDeadline", name: "setDeadline", pkg: "os", typ: $funcType([time.Time], [$error], false)}, {prop: "setReadDeadline", name: "setReadDeadline", pkg: "os", typ: $funcType([time.Time], [$error], false)}, {prop: "setWriteDeadline", name: "setWriteDeadline", pkg: "os", typ: $funcType([time.Time], [$error], false)}, {prop: "checkValid", name: "checkValid", pkg: "os", typ: $funcType([$String], [$error], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "ReadAt", name: "ReadAt", pkg: "", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "ReadFrom", name: "ReadFrom", pkg: "", typ: $funcType([io.Reader], [$Int64, $error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "WriteAt", name: "WriteAt", pkg: "", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "Seek", name: "Seek", pkg: "", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "wrapErr", name: "wrapErr", pkg: "os", typ: $funcType([$String, $error], [$error], false)}, {prop: "Chmod", name: "Chmod", pkg: "", typ: $funcType([fs.FileMode], [$error], false)}, {prop: "SetDeadline", name: "SetDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetReadDeadline", name: "SetReadDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetWriteDeadline", name: "SetWriteDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SyscallConn", name: "SyscallConn", pkg: "", typ: $funcType([], [syscall.RawConn, $error], false)}, {prop: "readdir", name: "readdir", pkg: "os", typ: $funcType([$Int, readdirMode], [sliceType, sliceType$7, sliceType$8, $error], false)}, {prop: "Readdir", name: "Readdir", pkg: "", typ: $funcType([$Int], [sliceType$8, $error], false)}, {prop: "Readdirnames", name: "Readdirnames", pkg: "", typ: $funcType([$Int], [sliceType, $error], false)}, {prop: "ReadDir", name: "ReadDir", pkg: "", typ: $funcType([$Int], [sliceType$7, $error], false)}]; + ptrType$2.methods = [{prop: "Stat", name: "Stat", pkg: "", typ: $funcType([], [fs.FileInfo, $error], false)}, {prop: "readFrom", name: "readFrom", pkg: "os", typ: $funcType([io.Reader], [$Int64, $Bool, $error], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}, {prop: "Fd", name: "Fd", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "seek", name: "seek", pkg: "os", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "read", name: "read", pkg: "os", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "pread", name: "pread", pkg: "os", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "write", name: "write", pkg: "os", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "pwrite", name: "pwrite", pkg: "os", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "chmod", name: "chmod", pkg: "os", typ: $funcType([fs.FileMode], [$error], false)}, {prop: "Chown", name: "Chown", pkg: "", typ: $funcType([$Int, $Int], [$error], false)}, {prop: "Truncate", name: "Truncate", pkg: "", typ: $funcType([$Int64], [$error], false)}, {prop: "Sync", name: "Sync", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Chdir", name: "Chdir", pkg: "", typ: $funcType([], [$error], false)}, {prop: "setDeadline", name: "setDeadline", pkg: "os", typ: $funcType([time.Time], [$error], false)}, {prop: "setReadDeadline", name: "setReadDeadline", pkg: "os", typ: $funcType([time.Time], [$error], false)}, {prop: "setWriteDeadline", name: "setWriteDeadline", pkg: "os", typ: $funcType([time.Time], [$error], false)}, {prop: "checkValid", name: "checkValid", pkg: "os", typ: $funcType([$String], [$error], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "ReadAt", name: "ReadAt", pkg: "", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "ReadFrom", name: "ReadFrom", pkg: "", typ: $funcType([io.Reader], [$Int64, $error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "WriteAt", name: "WriteAt", pkg: "", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "Seek", name: "Seek", pkg: "", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "wrapErr", name: "wrapErr", pkg: "os", typ: $funcType([$String, $error], [$error], false)}, {prop: "Chmod", name: "Chmod", pkg: "", typ: $funcType([fs.FileMode], [$error], false)}, {prop: "SetDeadline", name: "SetDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetReadDeadline", name: "SetReadDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetWriteDeadline", name: "SetWriteDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SyscallConn", name: "SyscallConn", pkg: "", typ: $funcType([], [syscall.RawConn, $error], false)}, {prop: "readdir", name: "readdir", pkg: "os", typ: $funcType([$Int, readdirMode], [sliceType, sliceType$5, sliceType$7, $error], false)}, {prop: "Readdir", name: "Readdir", pkg: "", typ: $funcType([$Int], [sliceType$7, $error], false)}, {prop: "Readdirnames", name: "Readdirnames", pkg: "", typ: $funcType([$Int], [sliceType, $error], false)}, {prop: "ReadDir", name: "ReadDir", pkg: "", typ: $funcType([$Int], [sliceType$5, $error], false)}]; ptrType$18.methods = [{prop: "Control", name: "Control", pkg: "", typ: $funcType([funcType$2], [$error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([funcType$3], [$error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([funcType$3], [$error], false)}]; ptrType$9.methods = [{prop: "close", name: "close", pkg: "os", typ: $funcType([], [$error], false)}]; - ptrType$19.methods = [{prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "IsDir", name: "IsDir", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [fs.FileMode], false)}, {prop: "Info", name: "Info", pkg: "", typ: $funcType([], [fs.FileInfo, $error], false)}]; + ptrType$19.methods = [{prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "IsDir", name: "IsDir", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [fs.FileMode], false)}, {prop: "Info", name: "Info", pkg: "", typ: $funcType([], [fs.FileInfo, $error], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; ptrType$16.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Unwrap", name: "Unwrap", pkg: "", typ: $funcType([], [$error], false)}]; + fileWithoutReadFrom.methods = [{prop: "ReadFrom", name: "ReadFrom", pkg: "", typ: $funcType([fileWithoutReadFrom], [], false)}]; ptrType$17.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Unwrap", name: "Unwrap", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}]; ptrType$8.methods = [{prop: "close", name: "close", pkg: "os", typ: $funcType([], [], false)}]; fileStat.init("os", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "mode", name: "mode", embedded: false, exported: false, typ: fs.FileMode, tag: ""}, {prop: "modTime", name: "modTime", embedded: false, exported: false, typ: time.Time, tag: ""}, {prop: "sys", name: "sys", embedded: false, exported: false, typ: syscall.Stat_t, tag: ""}]); @@ -29898,7 +27589,7 @@ $packages["os"] = (function() { file.init("os", [{prop: "pfd", name: "pfd", embedded: false, exported: false, typ: poll.FD, tag: ""}, {prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "dirinfo", name: "dirinfo", embedded: false, exported: false, typ: ptrType$8, tag: ""}, {prop: "nonblock", name: "nonblock", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "stdoutOrErr", name: "stdoutOrErr", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "appendMode", name: "appendMode", embedded: false, exported: false, typ: $Bool, tag: ""}]); unixDirent.init("os", [{prop: "parent", name: "parent", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: fs.FileMode, tag: ""}, {prop: "info", name: "info", embedded: false, exported: false, typ: fs.FileInfo, tag: ""}]); LinkError.init("", [{prop: "Op", name: "Op", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Old", name: "Old", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "New", name: "New", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Err", name: "Err", embedded: false, exported: true, typ: $error, tag: ""}]); - onlyWriter.init("", [{prop: "Writer", name: "Writer", embedded: true, exported: true, typ: io.Writer, tag: ""}]); + fileWithoutReadFrom.init("", [{prop: "File", name: "File", embedded: true, exported: true, typ: ptrType$2, tag: ""}]); timeout.init([{prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}]); SyscallError.init("", [{prop: "Syscall", name: "Syscall", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Err", name: "Err", embedded: false, exported: true, typ: $error, tag: ""}]); dirInfo.init("os", [{prop: "buf", name: "buf", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "nbuf", name: "nbuf", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "bufp", name: "bufp", embedded: false, exported: false, typ: $Int, tag: ""}]); @@ -29927,6 +27618,7 @@ $packages["os"] = (function() { errPatternHasSeparator = errors.New("pattern contains path separator"); errWriteAtInAppendMode = errors.New("os: invalid use of WriteAt on file opened with O_APPEND"); lstat = Lstat; + checkWrapErr = false; $pkg.ErrProcessDone = errors.New("os: process already finished"); $pkg.ErrInvalid = fs.ErrInvalid; $pkg.ErrNotExist = fs.ErrNotExist; @@ -29952,7 +27644,7 @@ $packages["os"] = (function() { return $pkg; })(); $packages["fmt"] = (function() { - var $pkg = {}, $init, errors, fmtsort, io, math, os, reflect, sort, strconv, sync, utf8, ScanState, scanError, ss, ssave, State, Formatter, Stringer, GoStringer, buffer, pp, fmtFlags, fmt, wrapError, wrapErrors, arrayType, sliceType, sliceType$1, ptrType, ptrType$1, arrayType$1, sliceType$2, sliceType$3, ptrType$4, ptrType$24, arrayType$4, sliceType$4, funcType, ptrType$26, ptrType$27, ptrType$28, space, ssFree, complexError, boolError, ppFree, isSpace, notSpace, indexRune, newPrinter, Fprintf, Printf, Sprintf, Fprint, Print, Fprintln, Println, getField, tooLarge, parsenum, intFromArg, parseArgNumber, Errorf; + var $pkg = {}, $init, errors, fmtsort, io, math, os, reflect, sort, strconv, sync, utf8, scanError, ss, ssave, State, Formatter, Stringer, GoStringer, buffer, pp, fmtFlags, fmt, wrapError, wrapErrors, arrayType, sliceType, sliceType$1, ptrType, ptrType$1, arrayType$1, sliceType$2, sliceType$3, ptrType$4, ptrType$24, arrayType$4, sliceType$4, funcType, ptrType$26, ptrType$27, ptrType$28, space, ssFree, errComplex, errBool, ppFree, isSpace, notSpace, indexRune, newPrinter, Fprintf, Printf, Sprintf, Fprint, Print, Fprintln, Println, getField, tooLarge, parsenum, intFromArg, parseArgNumber, Errorf; errors = $packages["errors"]; fmtsort = $packages["internal/fmtsort"]; io = $packages["io"]; @@ -29963,7 +27655,6 @@ $packages["fmt"] = (function() { strconv = $packages["strconv"]; sync = $packages["sync"]; utf8 = $packages["unicode/utf8"]; - ScanState = $newType(8, $kindInterface, "fmt.ScanState", true, "fmt", true, null); scanError = $newType(0, $kindStruct, "fmt.scanError", true, "fmt", false, function(err_) { this.$val = this; if (arguments.length === 0) { @@ -30097,7 +27788,6 @@ $packages["fmt"] = (function() { this.msg = msg_; this.errs = errs_; }); - $pkg.ScanState = ScanState; $pkg.scanError = scanError; $pkg.ss = ss; $pkg.ssave = ssave; @@ -30115,7 +27805,7 @@ $packages["fmt"] = (function() { arrayType = $arrayType($Uint16, 2); sliceType = $sliceType(arrayType); sliceType$1 = $sliceType($emptyInterface); - ptrType = $ptrType(reflect.rtype); + ptrType = $ptrType($packages["internal/abi"].Type); ptrType$1 = $ptrType(buffer); arrayType$1 = $arrayType($Uint8, 68); sliceType$2 = $sliceType($Int); @@ -30339,7 +28029,7 @@ $packages["fmt"] = (function() { _r$2; /* break; */ $s = 5; continue; /* } */ case 8: - (s.$ptr_buf || (s.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, s))).writeRune(r); + (s === ptrType$4.nil && $throwNilPointerError(), (s.$ptr_buf || (s.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, s)))).writeRune(r); $s = 4; continue; case 5: $s = -1; return $convertSliceType(s.buf, sliceType$3); @@ -30404,7 +28094,7 @@ $packages["fmt"] = (function() { p.panicking = false; p.erroring = false; p.wrapErrs = false; - p.fmt.init((p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))); + p.fmt.init((p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))))); $s = -1; return p; /* */ } return; } var $f = {$blk: newPrinter$1, $c: true, $r, _r, p, $s};return $f; }; @@ -30468,7 +28158,7 @@ $packages["fmt"] = (function() { ret = 0; err = $ifaceNil; p = this; - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).write(b); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).write(b); _tmp = b.$length; _tmp$1 = $ifaceNil; ret = _tmp; @@ -30480,7 +28170,7 @@ $packages["fmt"] = (function() { ret = 0; err = $ifaceNil; p = this; - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(s); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(s); _tmp = s.length; _tmp$1 = $ifaceNil; ret = _tmp; @@ -30593,18 +28283,12 @@ $packages["fmt"] = (function() { }; $pkg.Println = Println; getField = function getField$1(v, i) { - var {_r, _r$1, i, v, val, $s, $r, $c} = $restore(this, {v, i}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = $clone(v, reflect.Value).Field(i); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - val = _r; - /* */ if (($clone(val, reflect.Value).Kind() === 20) && !$clone(val, reflect.Value).IsNil()) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (($clone(val, reflect.Value).Kind() === 20) && !$clone(val, reflect.Value).IsNil()) { */ case 2: - _r$1 = $clone(val, reflect.Value).Elem(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - val = _r$1; - /* } */ case 3: - $s = -1; return val; - /* */ } return; } var $f = {$blk: getField$1, $c: true, $r, _r, _r$1, i, v, val, $s};return $f; + var i, v, val; + val = $clone(v, reflect.Value).Field(i); + if (($clone(val, reflect.Value).Kind() === 20) && !$clone(val, reflect.Value).IsNil()) { + val = $clone(val, reflect.Value).Elem(); + } + return val; }; tooLarge = function tooLarge$1(x) { var x; @@ -30647,13 +28331,13 @@ $packages["fmt"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; if (!$clone(v, reflect.Value).IsValid()) { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(""); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(""); $s = -1; return; } - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(63); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(63); _r = $clone(v, reflect.Value).Type().String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(_r); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(63); + $r = (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(_r); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(63); $s = -1; return; /* */ } return; } var $f = {$blk: unknownType, $c: true, $r, _r, p, v, $s};return $f; }; @@ -30662,29 +28346,29 @@ $packages["fmt"] = (function() { /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; p.erroring = true; - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("%!"); - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeRune(verb); - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(40); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString("%!"); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeRune(verb); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(40); /* */ if (!($interfaceIsEqual(p.arg, $ifaceNil))) { $s = 2; continue; } /* */ if ($clone(p.value, reflect.Value).IsValid()) { $s = 3; continue; } /* */ $s = 4; continue; /* if (!($interfaceIsEqual(p.arg, $ifaceNil))) { */ case 2: _r = reflect.TypeOf(p.arg).String(); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(_r); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(61); + $r = (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(_r); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(61); $r = p.printArg(p.arg, 118); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 5; continue; /* } else if ($clone(p.value, reflect.Value).IsValid()) { */ case 3: _r$1 = $clone(p.value, reflect.Value).Type().String(); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(_r$1); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(61); + $r = (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(_r$1); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(61); $r = p.printValue($clone(p.value, reflect.Value), 118, 0); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 5; continue; /* } else { */ case 4: - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(""); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(""); /* } */ case 5: case 1: - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(41); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(41); p.erroring = false; $s = -1; return; /* */ } return; } var $f = {$blk: badVerb, $c: true, $r, _r, _r$1, p, verb, $s};return $f; @@ -30805,11 +28489,11 @@ $packages["fmt"] = (function() { /* */ $s = 3; continue; /* if ((_1 === (118)) || (_1 === (98)) || (_1 === (103)) || (_1 === (71)) || (_1 === (120)) || (_1 === (88)) || (_1 === (102)) || (_1 === (70)) || (_1 === (101)) || (_1 === (69))) { */ case 2: oldPlus = p.fmt.fmtFlags.plus; - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(40); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(40); $r = p.fmtFloat(v.$real, (_q = size / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), verb); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } p.fmt.fmtFlags.plus = true; $r = p.fmtFloat(v.$imag, (_q$1 = size / 2, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")), verb); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("i)"); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString("i)"); p.fmt.fmtFlags.plus = oldPlus; $s = 4; continue; /* } else { */ case 3: @@ -30857,7 +28541,7 @@ $packages["fmt"] = (function() { /* */ } return; } var $f = {$blk: fmtString, $c: true, $r, _1, p, v, verb, $s};return $f; }; $ptrType(pp).prototype.fmtBytes = function fmtBytes(v, verb, typeString) { - var {_1, _i, _i$1, _r, _ref, _ref$1, c, c$1, i, i$1, p, typeString, v, verb, $s, $r, $c} = $restore(this, {v, verb, typeString}); + var {_1, _i, _i$1, _ref, _ref$1, c, c$1, i, i$1, p, typeString, v, verb, $s, $r, $c} = $restore(this, {v, verb, typeString}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; _1 = verb; @@ -30869,12 +28553,12 @@ $packages["fmt"] = (function() { /* */ $s = 7; continue; /* if ((_1 === (118)) || (_1 === (100))) { */ case 2: if (p.fmt.fmtFlags.sharpV) { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(typeString); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(typeString); if (v === sliceType$3.nil) { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("(nil)"); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString("(nil)"); $s = -1; return; } - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(123); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(123); _ref = v; _i = 0; while (true) { @@ -30882,14 +28566,14 @@ $packages["fmt"] = (function() { i = _i; c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); if (i > 0) { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(", "); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(", "); } p.fmt0x64((new $Uint64(0, c)), true); _i++; } - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(125); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(125); } else { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(91); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(91); _ref$1 = v; _i$1 = 0; while (true) { @@ -30897,12 +28581,12 @@ $packages["fmt"] = (function() { i$1 = _i$1; c$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); if (i$1 > 0) { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(32); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(32); } p.fmt.fmtInteger((new $Uint64(0, c$1)), 10, false, verb, "0123456789abcdefx"); _i$1++; } - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(93); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(93); } $s = 8; continue; /* } else if (_1 === (115)) { */ case 3: @@ -30918,12 +28602,11 @@ $packages["fmt"] = (function() { p.fmt.fmtQ(($bytesToString(v))); $s = 8; continue; /* } else { */ case 7: - _r = reflect.ValueOf(v); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $r = p.printValue($clone(_r, reflect.Value), verb, 0); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.printValue($clone(reflect.ValueOf(v), reflect.Value), verb, 0); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 8: case 1: $s = -1; return; - /* */ } return; } var $f = {$blk: fmtBytes, $c: true, $r, _1, _i, _i$1, _r, _ref, _ref$1, c, c$1, i, i$1, p, typeString, v, verb, $s};return $f; + /* */ } return; } var $f = {$blk: fmtBytes, $c: true, $r, _1, _i, _i$1, _ref, _ref$1, c, c$1, i, i$1, p, typeString, v, verb, $s};return $f; }; $ptrType(pp).prototype.fmtPointer = function fmtPointer(value, verb) { var {_1, _2, _r, p, u, value, verb, $s, $r, $c} = $restore(this, {value, verb}); @@ -30950,16 +28633,16 @@ $packages["fmt"] = (function() { /* */ if (p.fmt.fmtFlags.sharpV) { $s = 12; continue; } /* */ $s = 13; continue; /* if (p.fmt.fmtFlags.sharpV) { */ case 12: - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(40); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(40); _r = $clone(value, reflect.Value).Type().String(); /* */ $s = 15; case 15: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(_r); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(")("); + $r = (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(_r); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(")("); if (u === 0) { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("nil"); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString("nil"); } else { p.fmt0x64((new $Uint64(0, u.constructor === Number ? u : 1)), true); } - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(41); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(41); $s = 14; continue; /* } else { */ case 13: if (u === 0) { @@ -30983,17 +28666,16 @@ $packages["fmt"] = (function() { /* */ } return; } var $f = {$blk: fmtPointer, $c: true, $r, _1, _2, _r, p, u, value, verb, $s};return $f; }; $ptrType(pp).prototype.catchPanic = function catchPanic(arg, verb, method) { - var {_r, arg, err, method, oldFlags, p, v, verb, $s, $r, $c} = $restore(this, {arg, verb, method}); + var {arg, err, method, oldFlags, p, v, verb, $s, $r, $c} = $restore(this, {arg, verb, method}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; err = $recover(); /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 1; continue; } /* */ $s = 2; continue; /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 1: - _r = reflect.ValueOf(arg); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - v = _r; + v = reflect.ValueOf(arg); if (($clone(v, reflect.Value).Kind() === 22) && $clone(v, reflect.Value).IsNil()) { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(""); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(""); $s = -1; return; } if (p.panicking) { @@ -31001,19 +28683,19 @@ $packages["fmt"] = (function() { } oldFlags = $clone(p.fmt.fmtFlags, fmtFlags); p.fmt.clearflags(); - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("%!"); - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeRune(verb); - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("(PANIC="); - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(method); - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(" method: "); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString("%!"); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeRune(verb); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString("(PANIC="); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(method); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(" method: "); p.panicking = true; - $r = p.printArg(err, 118); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.printArg(err, 118); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } p.panicking = false; - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(41); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(41); fmtFlags.copy(p.fmt.fmtFlags, oldFlags); /* } */ case 2: $s = -1; return; - /* */ } return; } var $f = {$blk: catchPanic, $c: true, $r, _r, arg, err, method, oldFlags, p, v, verb, $s};return $f; + /* */ } return; } var $f = {$blk: catchPanic, $c: true, $r, arg, err, method, oldFlags, p, v, verb, $s};return $f; }; $ptrType(pp).prototype.handleMethods = function handleMethods(verb) { var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, _1, _r, _r$1, _r$2, _ref, _tuple, _tuple$1, _tuple$2, formatter, handled, ok, ok$1, ok$2, p, stringer, v, v$1, verb, $s, $deferred, $r, $c} = $restore(this, {verb}); @@ -31101,7 +28783,7 @@ $packages["fmt"] = (function() { /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return handled; } if($curGoroutine.asleep) { var $f = {$blk: handleMethods, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, _1, _r, _r$1, _r$2, _ref, _tuple, _tuple$1, _tuple$2, formatter, handled, ok, ok$1, ok$2, p, stringer, v, v$1, verb, $s, $deferred};return $f; } } }; $ptrType(pp).prototype.printArg = function printArg(arg, verb) { - var {_1, _2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, arg, f, f$1, f$10, f$11, f$12, f$13, f$14, f$15, f$16, f$17, f$18, f$19, f$2, f$3, f$4, f$5, f$6, f$7, f$8, f$9, p, verb, $s, $r, $c} = $restore(this, {arg, verb}); + var {_1, _2, _r, _r$1, _r$2, _r$3, _ref, arg, f, f$1, f$10, f$11, f$12, f$13, f$14, f$15, f$16, f$17, f$18, f$19, f$2, f$3, f$4, f$5, f$6, f$7, f$8, f$9, p, verb, $s, $r, $c} = $restore(this, {arg, verb}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; p.arg = arg; @@ -31130,135 +28812,133 @@ $packages["fmt"] = (function() { $r = p.fmt.fmtS(_r); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* } else if (_2 === (112)) { */ case 10: - _r$1 = reflect.ValueOf(arg); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $r = p.fmtPointer($clone(_r$1, reflect.Value), 112); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.fmtPointer($clone(reflect.ValueOf(arg), reflect.Value), 112); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* } */ case 11: case 8: _ref = arg; - /* */ if ($assertType(_ref, $Bool, true)[1]) { $s = 16; continue; } - /* */ if ($assertType(_ref, $Float32, true)[1]) { $s = 17; continue; } - /* */ if ($assertType(_ref, $Float64, true)[1]) { $s = 18; continue; } - /* */ if ($assertType(_ref, $Complex64, true)[1]) { $s = 19; continue; } - /* */ if ($assertType(_ref, $Complex128, true)[1]) { $s = 20; continue; } - /* */ if ($assertType(_ref, $Int, true)[1]) { $s = 21; continue; } - /* */ if ($assertType(_ref, $Int8, true)[1]) { $s = 22; continue; } - /* */ if ($assertType(_ref, $Int16, true)[1]) { $s = 23; continue; } - /* */ if ($assertType(_ref, $Int32, true)[1]) { $s = 24; continue; } - /* */ if ($assertType(_ref, $Int64, true)[1]) { $s = 25; continue; } - /* */ if ($assertType(_ref, $Uint, true)[1]) { $s = 26; continue; } - /* */ if ($assertType(_ref, $Uint8, true)[1]) { $s = 27; continue; } - /* */ if ($assertType(_ref, $Uint16, true)[1]) { $s = 28; continue; } - /* */ if ($assertType(_ref, $Uint32, true)[1]) { $s = 29; continue; } - /* */ if ($assertType(_ref, $Uint64, true)[1]) { $s = 30; continue; } - /* */ if ($assertType(_ref, $Uintptr, true)[1]) { $s = 31; continue; } - /* */ if ($assertType(_ref, $String, true)[1]) { $s = 32; continue; } - /* */ if ($assertType(_ref, sliceType$3, true)[1]) { $s = 33; continue; } - /* */ if ($assertType(_ref, reflect.Value, true)[1]) { $s = 34; continue; } - /* */ $s = 35; continue; - /* if ($assertType(_ref, $Bool, true)[1]) { */ case 16: + /* */ if ($assertType(_ref, $Bool, true)[1]) { $s = 15; continue; } + /* */ if ($assertType(_ref, $Float32, true)[1]) { $s = 16; continue; } + /* */ if ($assertType(_ref, $Float64, true)[1]) { $s = 17; continue; } + /* */ if ($assertType(_ref, $Complex64, true)[1]) { $s = 18; continue; } + /* */ if ($assertType(_ref, $Complex128, true)[1]) { $s = 19; continue; } + /* */ if ($assertType(_ref, $Int, true)[1]) { $s = 20; continue; } + /* */ if ($assertType(_ref, $Int8, true)[1]) { $s = 21; continue; } + /* */ if ($assertType(_ref, $Int16, true)[1]) { $s = 22; continue; } + /* */ if ($assertType(_ref, $Int32, true)[1]) { $s = 23; continue; } + /* */ if ($assertType(_ref, $Int64, true)[1]) { $s = 24; continue; } + /* */ if ($assertType(_ref, $Uint, true)[1]) { $s = 25; continue; } + /* */ if ($assertType(_ref, $Uint8, true)[1]) { $s = 26; continue; } + /* */ if ($assertType(_ref, $Uint16, true)[1]) { $s = 27; continue; } + /* */ if ($assertType(_ref, $Uint32, true)[1]) { $s = 28; continue; } + /* */ if ($assertType(_ref, $Uint64, true)[1]) { $s = 29; continue; } + /* */ if ($assertType(_ref, $Uintptr, true)[1]) { $s = 30; continue; } + /* */ if ($assertType(_ref, $String, true)[1]) { $s = 31; continue; } + /* */ if ($assertType(_ref, sliceType$3, true)[1]) { $s = 32; continue; } + /* */ if ($assertType(_ref, reflect.Value, true)[1]) { $s = 33; continue; } + /* */ $s = 34; continue; + /* if ($assertType(_ref, $Bool, true)[1]) { */ case 15: f = _ref.$val; - $r = p.fmtBool(f, verb); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 36; continue; - /* } else if ($assertType(_ref, $Float32, true)[1]) { */ case 17: + $r = p.fmtBool(f, verb); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 35; continue; + /* } else if ($assertType(_ref, $Float32, true)[1]) { */ case 16: f$1 = _ref.$val; - $r = p.fmtFloat((f$1), 32, verb); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 36; continue; - /* } else if ($assertType(_ref, $Float64, true)[1]) { */ case 18: + $r = p.fmtFloat((f$1), 32, verb); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 35; continue; + /* } else if ($assertType(_ref, $Float64, true)[1]) { */ case 17: f$2 = _ref.$val; - $r = p.fmtFloat(f$2, 64, verb); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 36; continue; - /* } else if ($assertType(_ref, $Complex64, true)[1]) { */ case 19: + $r = p.fmtFloat(f$2, 64, verb); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 35; continue; + /* } else if ($assertType(_ref, $Complex64, true)[1]) { */ case 18: f$3 = _ref.$val; - $r = p.fmtComplex((new $Complex128(f$3.$real, f$3.$imag)), 64, verb); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 36; continue; - /* } else if ($assertType(_ref, $Complex128, true)[1]) { */ case 20: + $r = p.fmtComplex((new $Complex128(f$3.$real, f$3.$imag)), 64, verb); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 35; continue; + /* } else if ($assertType(_ref, $Complex128, true)[1]) { */ case 19: f$4 = _ref.$val; - $r = p.fmtComplex(f$4, 128, verb); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 36; continue; - /* } else if ($assertType(_ref, $Int, true)[1]) { */ case 21: + $r = p.fmtComplex(f$4, 128, verb); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 35; continue; + /* } else if ($assertType(_ref, $Int, true)[1]) { */ case 20: f$5 = _ref.$val; - $r = p.fmtInteger((new $Uint64(0, f$5)), true, verb); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 36; continue; - /* } else if ($assertType(_ref, $Int8, true)[1]) { */ case 22: + $r = p.fmtInteger((new $Uint64(0, f$5)), true, verb); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 35; continue; + /* } else if ($assertType(_ref, $Int8, true)[1]) { */ case 21: f$6 = _ref.$val; - $r = p.fmtInteger((new $Uint64(0, f$6)), true, verb); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 36; continue; - /* } else if ($assertType(_ref, $Int16, true)[1]) { */ case 23: + $r = p.fmtInteger((new $Uint64(0, f$6)), true, verb); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 35; continue; + /* } else if ($assertType(_ref, $Int16, true)[1]) { */ case 22: f$7 = _ref.$val; - $r = p.fmtInteger((new $Uint64(0, f$7)), true, verb); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 36; continue; - /* } else if ($assertType(_ref, $Int32, true)[1]) { */ case 24: + $r = p.fmtInteger((new $Uint64(0, f$7)), true, verb); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 35; continue; + /* } else if ($assertType(_ref, $Int32, true)[1]) { */ case 23: f$8 = _ref.$val; - $r = p.fmtInteger((new $Uint64(0, f$8)), true, verb); /* */ $s = 45; case 45: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 36; continue; - /* } else if ($assertType(_ref, $Int64, true)[1]) { */ case 25: + $r = p.fmtInteger((new $Uint64(0, f$8)), true, verb); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 35; continue; + /* } else if ($assertType(_ref, $Int64, true)[1]) { */ case 24: f$9 = _ref.$val; - $r = p.fmtInteger((new $Uint64(f$9.$high, f$9.$low)), true, verb); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 36; continue; - /* } else if ($assertType(_ref, $Uint, true)[1]) { */ case 26: + $r = p.fmtInteger((new $Uint64(f$9.$high, f$9.$low)), true, verb); /* */ $s = 45; case 45: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 35; continue; + /* } else if ($assertType(_ref, $Uint, true)[1]) { */ case 25: f$10 = _ref.$val; - $r = p.fmtInteger((new $Uint64(0, f$10)), false, verb); /* */ $s = 47; case 47: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 36; continue; - /* } else if ($assertType(_ref, $Uint8, true)[1]) { */ case 27: + $r = p.fmtInteger((new $Uint64(0, f$10)), false, verb); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 35; continue; + /* } else if ($assertType(_ref, $Uint8, true)[1]) { */ case 26: f$11 = _ref.$val; - $r = p.fmtInteger((new $Uint64(0, f$11)), false, verb); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 36; continue; - /* } else if ($assertType(_ref, $Uint16, true)[1]) { */ case 28: + $r = p.fmtInteger((new $Uint64(0, f$11)), false, verb); /* */ $s = 47; case 47: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 35; continue; + /* } else if ($assertType(_ref, $Uint16, true)[1]) { */ case 27: f$12 = _ref.$val; - $r = p.fmtInteger((new $Uint64(0, f$12)), false, verb); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 36; continue; - /* } else if ($assertType(_ref, $Uint32, true)[1]) { */ case 29: + $r = p.fmtInteger((new $Uint64(0, f$12)), false, verb); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 35; continue; + /* } else if ($assertType(_ref, $Uint32, true)[1]) { */ case 28: f$13 = _ref.$val; - $r = p.fmtInteger((new $Uint64(0, f$13)), false, verb); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 36; continue; - /* } else if ($assertType(_ref, $Uint64, true)[1]) { */ case 30: + $r = p.fmtInteger((new $Uint64(0, f$13)), false, verb); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 35; continue; + /* } else if ($assertType(_ref, $Uint64, true)[1]) { */ case 29: f$14 = _ref.$val; - $r = p.fmtInteger(f$14, false, verb); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 36; continue; - /* } else if ($assertType(_ref, $Uintptr, true)[1]) { */ case 31: + $r = p.fmtInteger(f$14, false, verb); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 35; continue; + /* } else if ($assertType(_ref, $Uintptr, true)[1]) { */ case 30: f$15 = _ref.$val; - $r = p.fmtInteger((new $Uint64(0, f$15.constructor === Number ? f$15 : 1)), false, verb); /* */ $s = 52; case 52: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 36; continue; - /* } else if ($assertType(_ref, $String, true)[1]) { */ case 32: + $r = p.fmtInteger((new $Uint64(0, f$15.constructor === Number ? f$15 : 1)), false, verb); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 35; continue; + /* } else if ($assertType(_ref, $String, true)[1]) { */ case 31: f$16 = _ref.$val; - $r = p.fmtString(f$16, verb); /* */ $s = 53; case 53: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 36; continue; - /* } else if ($assertType(_ref, sliceType$3, true)[1]) { */ case 33: + $r = p.fmtString(f$16, verb); /* */ $s = 52; case 52: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 35; continue; + /* } else if ($assertType(_ref, sliceType$3, true)[1]) { */ case 32: f$17 = _ref.$val; - $r = p.fmtBytes(f$17, verb, "[]byte"); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 36; continue; - /* } else if ($assertType(_ref, reflect.Value, true)[1]) { */ case 34: + $r = p.fmtBytes(f$17, verb, "[]byte"); /* */ $s = 53; case 53: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 35; continue; + /* } else if ($assertType(_ref, reflect.Value, true)[1]) { */ case 33: f$18 = _ref.$val; - /* */ if ($clone(f$18, reflect.Value).IsValid() && $clone(f$18, reflect.Value).CanInterface()) { $s = 55; continue; } - /* */ $s = 56; continue; - /* if ($clone(f$18, reflect.Value).IsValid() && $clone(f$18, reflect.Value).CanInterface()) { */ case 55: - _r$2 = $clone(f$18, reflect.Value).Interface(); /* */ $s = 57; case 57: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - p.arg = _r$2; - _r$3 = p.handleMethods(verb); /* */ $s = 60; case 60: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (_r$3) { $s = 58; continue; } - /* */ $s = 59; continue; - /* if (_r$3) { */ case 58: + /* */ if ($clone(f$18, reflect.Value).IsValid() && $clone(f$18, reflect.Value).CanInterface()) { $s = 54; continue; } + /* */ $s = 55; continue; + /* if ($clone(f$18, reflect.Value).IsValid() && $clone(f$18, reflect.Value).CanInterface()) { */ case 54: + _r$1 = $clone(f$18, reflect.Value).Interface(); /* */ $s = 56; case 56: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + p.arg = _r$1; + _r$2 = p.handleMethods(verb); /* */ $s = 59; case 59: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (_r$2) { $s = 57; continue; } + /* */ $s = 58; continue; + /* if (_r$2) { */ case 57: $s = -1; return; - /* } */ case 59: - /* } */ case 56: - $r = p.printValue($clone(f$18, reflect.Value), verb, 0); /* */ $s = 61; case 61: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 36; continue; - /* } else { */ case 35: + /* } */ case 58: + /* } */ case 55: + $r = p.printValue($clone(f$18, reflect.Value), verb, 0); /* */ $s = 60; case 60: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 35; continue; + /* } else { */ case 34: f$19 = _ref; - _r$4 = p.handleMethods(verb); /* */ $s = 64; case 64: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if (!_r$4) { $s = 62; continue; } - /* */ $s = 63; continue; - /* if (!_r$4) { */ case 62: - _r$5 = reflect.ValueOf(f$19); /* */ $s = 65; case 65: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - $r = p.printValue($clone(_r$5, reflect.Value), verb, 0); /* */ $s = 66; case 66: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 63: - /* } */ case 36: + _r$3 = p.handleMethods(verb); /* */ $s = 63; case 63: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!_r$3) { $s = 61; continue; } + /* */ $s = 62; continue; + /* if (!_r$3) { */ case 61: + $r = p.printValue($clone(reflect.ValueOf(f$19), reflect.Value), verb, 0); /* */ $s = 64; case 64: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 62: + /* } */ case 35: $s = -1; return; - /* */ } return; } var $f = {$blk: printArg, $c: true, $r, _1, _2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, arg, f, f$1, f$10, f$11, f$12, f$13, f$14, f$15, f$16, f$17, f$18, f$19, f$2, f$3, f$4, f$5, f$6, f$7, f$8, f$9, p, verb, $s};return $f; + /* */ } return; } var $f = {$blk: printArg, $c: true, $r, _1, _2, _r, _r$1, _r$2, _r$3, _ref, arg, f, f$1, f$10, f$11, f$12, f$13, f$14, f$15, f$16, f$17, f$18, f$19, f$2, f$3, f$4, f$5, f$6, f$7, f$8, f$9, p, verb, $s};return $f; }; $ptrType(pp).prototype.printValue = function printValue(value, verb, depth) { - var {_1, _2, _3, _4, _arg, _arg$1, _arg$2, _arg$3, _i, _i$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, a, bytes, depth, f, i, i$1, i$2, i$3, i$4, key, name, p, sorted, t, value, value$1, verb, x, x$1, $s, $r, $c} = $restore(this, {value, verb, depth}); + var {_1, _2, _3, _4, _arg, _arg$1, _arg$2, _i, _i$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, a, bytes, depth, f, i, i$1, i$2, i$3, i$4, key, name, p, sorted, t, value, value$1, verb, x, x$1, $s, $r, $c} = $restore(this, {value, verb, depth}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; /* */ if (depth > 0 && $clone(value, reflect.Value).IsValid() && $clone(value, reflect.Value).CanInterface()) { $s = 1; continue; } @@ -31297,14 +28977,14 @@ $packages["fmt"] = (function() { /* */ if (depth === 0) { $s = 25; continue; } /* */ $s = 26; continue; /* if (depth === 0) { */ case 25: - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(""); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(""); $s = 27; continue; /* } else { */ case 26: _2 = verb; /* */ if (_2 === (118)) { $s = 29; continue; } /* */ $s = 30; continue; /* if (_2 === (118)) { */ case 29: - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(""); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(""); $s = 31; continue; /* } else { */ case 30: $r = p.badVerb(verb); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } @@ -31342,15 +29022,15 @@ $packages["fmt"] = (function() { /* */ $s = 43; continue; /* if (p.fmt.fmtFlags.sharpV) { */ case 42: _r$3 = $clone(f, reflect.Value).Type().String(); /* */ $s = 45; case 45: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(_r$3); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(_r$3); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } if ($clone(f, reflect.Value).IsNil()) { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("(nil)"); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString("(nil)"); $s = -1; return; } - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(123); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(123); $s = 44; continue; /* } else { */ case 43: - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("map["); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString("map["); /* } */ case 44: _r$4 = fmtsort.Sort($clone(f, reflect.Value)); /* */ $s = 47; case 47: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } sorted = _r$4; @@ -31362,21 +29042,21 @@ $packages["fmt"] = (function() { key = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); if (i > 0) { if (p.fmt.fmtFlags.sharpV) { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(", "); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(", "); } else { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(32); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(32); } } $r = p.printValue($clone(key, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(58); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(58); $r = p.printValue($clone((x$1 = sorted.Value, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])), reflect.Value), verb, depth + 1 >> 0); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _i++; $s = 48; continue; case 49: if (p.fmt.fmtFlags.sharpV) { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(125); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(125); } else { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(93); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(93); } $s = 24; continue; /* } else if (_1 === (25)) { */ case 18: @@ -31384,17 +29064,17 @@ $packages["fmt"] = (function() { /* */ $s = 53; continue; /* if (p.fmt.fmtFlags.sharpV) { */ case 52: _r$5 = $clone(f, reflect.Value).Type().String(); /* */ $s = 54; case 54: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(_r$5); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(_r$5); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 53: - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(123); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(123); i$1 = 0; /* while (true) { */ case 56: /* if (!(i$1 < $clone(f, reflect.Value).NumField())) { break; } */ if(!(i$1 < $clone(f, reflect.Value).NumField())) { $s = 57; continue; } if (i$1 > 0) { if (p.fmt.fmtFlags.sharpV) { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(", "); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(", "); } else { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(32); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(32); } } /* */ if (p.fmt.fmtFlags.plusV || p.fmt.fmtFlags.sharpV) { $s = 58; continue; } @@ -31403,199 +29083,177 @@ $packages["fmt"] = (function() { _r$6 = $clone(f, reflect.Value).Type().Field(i$1); /* */ $s = 60; case 60: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } name = _r$6.Name; if (!(name === "")) { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(name); - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(58); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(name); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(58); } /* } */ case 59: - _r$7 = getField($clone(f, reflect.Value), i$1); /* */ $s = 61; case 61: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - $r = p.printValue($clone(_r$7, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 62; case 62: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.printValue($clone(getField($clone(f, reflect.Value), i$1), reflect.Value), verb, depth + 1 >> 0); /* */ $s = 61; case 61: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } i$1 = i$1 + (1) >> 0; $s = 56; continue; case 57: - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(125); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(125); $s = 24; continue; /* } else if (_1 === (20)) { */ case 19: - _r$8 = $clone(f, reflect.Value).Elem(); /* */ $s = 63; case 63: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - value$1 = _r$8; - /* */ if (!$clone(value$1, reflect.Value).IsValid()) { $s = 64; continue; } - /* */ $s = 65; continue; - /* if (!$clone(value$1, reflect.Value).IsValid()) { */ case 64: - /* */ if (p.fmt.fmtFlags.sharpV) { $s = 67; continue; } - /* */ $s = 68; continue; - /* if (p.fmt.fmtFlags.sharpV) { */ case 67: - _r$9 = $clone(f, reflect.Value).Type().String(); /* */ $s = 70; case 70: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(_r$9); /* */ $s = 71; case 71: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("(nil)"); - $s = 69; continue; - /* } else { */ case 68: - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(""); - /* } */ case 69: - $s = 66; continue; - /* } else { */ case 65: - $r = p.printValue($clone(value$1, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 72; case 72: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 66: + value$1 = $clone(f, reflect.Value).Elem(); + /* */ if (!$clone(value$1, reflect.Value).IsValid()) { $s = 62; continue; } + /* */ $s = 63; continue; + /* if (!$clone(value$1, reflect.Value).IsValid()) { */ case 62: + /* */ if (p.fmt.fmtFlags.sharpV) { $s = 65; continue; } + /* */ $s = 66; continue; + /* if (p.fmt.fmtFlags.sharpV) { */ case 65: + _r$7 = $clone(f, reflect.Value).Type().String(); /* */ $s = 68; case 68: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $r = (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(_r$7); /* */ $s = 69; case 69: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString("(nil)"); + $s = 67; continue; + /* } else { */ case 66: + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(""); + /* } */ case 67: + $s = 64; continue; + /* } else { */ case 63: + $r = p.printValue($clone(value$1, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 70; case 70: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 64: $s = 24; continue; /* } else if ((_1 === (17)) || (_1 === (23))) { */ case 20: _3 = verb; - /* */ if ((_3 === (115)) || (_3 === (113)) || (_3 === (120)) || (_3 === (88))) { $s = 74; continue; } - /* */ $s = 75; continue; - /* if ((_3 === (115)) || (_3 === (113)) || (_3 === (120)) || (_3 === (88))) { */ case 74: + /* */ if ((_3 === (115)) || (_3 === (113)) || (_3 === (120)) || (_3 === (88))) { $s = 72; continue; } + /* */ $s = 73; continue; + /* if ((_3 === (115)) || (_3 === (113)) || (_3 === (120)) || (_3 === (88))) { */ case 72: t = $clone(f, reflect.Value).Type(); - _r$10 = t.Elem(); /* */ $s = 78; case 78: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _r$11 = _r$10.Kind(); /* */ $s = 79; case 79: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - /* */ if (_r$11 === 8) { $s = 76; continue; } - /* */ $s = 77; continue; - /* if (_r$11 === 8) { */ case 76: + _r$8 = t.Elem(); /* */ $s = 76; case 76: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$9 = _r$8.Kind(); /* */ $s = 77; case 77: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + /* */ if (_r$9 === 8) { $s = 74; continue; } + /* */ $s = 75; continue; + /* if (_r$9 === 8) { */ case 74: bytes = sliceType$3.nil; - /* */ if ($clone(f, reflect.Value).Kind() === 23) { $s = 80; continue; } - /* */ if ($clone(f, reflect.Value).CanAddr()) { $s = 81; continue; } - /* */ $s = 82; continue; - /* if ($clone(f, reflect.Value).Kind() === 23) { */ case 80: - _r$12 = $clone(f, reflect.Value).Bytes(); /* */ $s = 84; case 84: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - bytes = _r$12; - $s = 83; continue; - /* } else if ($clone(f, reflect.Value).CanAddr()) { */ case 81: - _r$13 = $clone(f, reflect.Value).Len(); /* */ $s = 85; case 85: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - _arg = _r$13; - _r$14 = $clone(f, reflect.Value).Slice(0, _arg); /* */ $s = 86; case 86: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - _r$15 = $clone(_r$14, reflect.Value).Bytes(); /* */ $s = 87; case 87: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - bytes = _r$15; - $s = 83; continue; - /* } else { */ case 82: - _r$16 = $clone(f, reflect.Value).Len(); /* */ $s = 88; case 88: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - bytes = $makeSlice(sliceType$3, _r$16); + /* */ if ($clone(f, reflect.Value).Kind() === 23) { $s = 78; continue; } + /* */ if ($clone(f, reflect.Value).CanAddr()) { $s = 79; continue; } + /* */ $s = 80; continue; + /* if ($clone(f, reflect.Value).Kind() === 23) { */ case 78: + bytes = $clone(f, reflect.Value).Bytes(); + $s = 81; continue; + /* } else if ($clone(f, reflect.Value).CanAddr()) { */ case 79: + _r$10 = $clone(f, reflect.Value).Slice(0, $clone(f, reflect.Value).Len()); /* */ $s = 82; case 82: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$11 = $clone(_r$10, reflect.Value).Bytes(); /* */ $s = 83; case 83: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + bytes = _r$11; + $s = 81; continue; + /* } else { */ case 80: + bytes = $makeSlice(sliceType$3, $clone(f, reflect.Value).Len()); _ref$1 = bytes; _i$1 = 0; - /* while (true) { */ case 89: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 90; continue; } + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } i$2 = _i$1; - _r$17 = $clone(f, reflect.Value).Index(i$2); /* */ $s = 91; case 91: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - _r$18 = $clone(_r$17, reflect.Value).Uint(); /* */ $s = 92; case 92: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - ((i$2 < 0 || i$2 >= bytes.$length) ? ($throwRuntimeError("index out of range"), undefined) : bytes.$array[bytes.$offset + i$2] = ((_r$18.$low << 24 >>> 24))); + ((i$2 < 0 || i$2 >= bytes.$length) ? ($throwRuntimeError("index out of range"), undefined) : bytes.$array[bytes.$offset + i$2] = (($clone($clone(f, reflect.Value).Index(i$2), reflect.Value).Uint().$low << 24 >>> 24))); _i$1++; - $s = 89; continue; - case 90: - /* } */ case 83: - _arg$1 = bytes; - _arg$2 = verb; - _r$19 = t.String(); /* */ $s = 93; case 93: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - _arg$3 = _r$19; - $r = p.fmtBytes(_arg$1, _arg$2, _arg$3); /* */ $s = 94; case 94: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + } + /* } */ case 81: + _arg = bytes; + _arg$1 = verb; + _r$12 = t.String(); /* */ $s = 84; case 84: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _arg$2 = _r$12; + $r = p.fmtBytes(_arg, _arg$1, _arg$2); /* */ $s = 85; case 85: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* } */ case 77: - /* } */ case 75: - case 73: - /* */ if (p.fmt.fmtFlags.sharpV) { $s = 95; continue; } - /* */ $s = 96; continue; - /* if (p.fmt.fmtFlags.sharpV) { */ case 95: - _r$20 = $clone(f, reflect.Value).Type().String(); /* */ $s = 98; case 98: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(_r$20); /* */ $s = 99; case 99: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 75: + /* } */ case 73: + case 71: + /* */ if (p.fmt.fmtFlags.sharpV) { $s = 86; continue; } + /* */ $s = 87; continue; + /* if (p.fmt.fmtFlags.sharpV) { */ case 86: + _r$13 = $clone(f, reflect.Value).Type().String(); /* */ $s = 89; case 89: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + $r = (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(_r$13); /* */ $s = 90; case 90: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } if (($clone(f, reflect.Value).Kind() === 23) && $clone(f, reflect.Value).IsNil()) { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("(nil)"); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString("(nil)"); $s = -1; return; } - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(123); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(123); i$3 = 0; - /* while (true) { */ case 100: - _r$21 = $clone(f, reflect.Value).Len(); /* */ $s = 102; case 102: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } - /* if (!(i$3 < _r$21)) { break; } */ if(!(i$3 < _r$21)) { $s = 101; continue; } + /* while (true) { */ case 91: + /* if (!(i$3 < $clone(f, reflect.Value).Len())) { break; } */ if(!(i$3 < $clone(f, reflect.Value).Len())) { $s = 92; continue; } if (i$3 > 0) { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(", "); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(", "); } - _r$22 = $clone(f, reflect.Value).Index(i$3); /* */ $s = 103; case 103: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - $r = p.printValue($clone(_r$22, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 104; case 104: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.printValue($clone($clone(f, reflect.Value).Index(i$3), reflect.Value), verb, depth + 1 >> 0); /* */ $s = 93; case 93: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } i$3 = i$3 + (1) >> 0; - $s = 100; continue; - case 101: - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(125); - $s = 97; continue; - /* } else { */ case 96: - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(91); + $s = 91; continue; + case 92: + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(125); + $s = 88; continue; + /* } else { */ case 87: + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(91); i$4 = 0; - /* while (true) { */ case 105: - _r$23 = $clone(f, reflect.Value).Len(); /* */ $s = 107; case 107: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - /* if (!(i$4 < _r$23)) { break; } */ if(!(i$4 < _r$23)) { $s = 106; continue; } + /* while (true) { */ case 94: + /* if (!(i$4 < $clone(f, reflect.Value).Len())) { break; } */ if(!(i$4 < $clone(f, reflect.Value).Len())) { $s = 95; continue; } if (i$4 > 0) { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(32); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(32); } - _r$24 = $clone(f, reflect.Value).Index(i$4); /* */ $s = 108; case 108: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - $r = p.printValue($clone(_r$24, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 109; case 109: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.printValue($clone($clone(f, reflect.Value).Index(i$4), reflect.Value), verb, depth + 1 >> 0); /* */ $s = 96; case 96: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } i$4 = i$4 + (1) >> 0; - $s = 105; continue; - case 106: - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(93); - /* } */ case 97: + $s = 94; continue; + case 95: + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(93); + /* } */ case 88: $s = 24; continue; /* } else if (_1 === (22)) { */ case 21: - /* */ if ((depth === 0) && !(($clone(f, reflect.Value).Pointer() === 0))) { $s = 110; continue; } - /* */ $s = 111; continue; - /* if ((depth === 0) && !(($clone(f, reflect.Value).Pointer() === 0))) { */ case 110: - _r$25 = $clone(f, reflect.Value).Elem(); /* */ $s = 113; case 113: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - a = _r$25; + /* */ if ((depth === 0) && !(($clone(f, reflect.Value).Pointer() === 0))) { $s = 97; continue; } + /* */ $s = 98; continue; + /* if ((depth === 0) && !(($clone(f, reflect.Value).Pointer() === 0))) { */ case 97: + a = $clone(f, reflect.Value).Elem(); _4 = $clone(a, reflect.Value).Kind(); - /* */ if ((_4 === (17)) || (_4 === (23)) || (_4 === (25)) || (_4 === (21))) { $s = 114; continue; } - /* */ $s = 115; continue; - /* if ((_4 === (17)) || (_4 === (23)) || (_4 === (25)) || (_4 === (21))) { */ case 114: - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(38); - $r = p.printValue($clone(a, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 116; case 116: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if ((_4 === (17)) || (_4 === (23)) || (_4 === (25)) || (_4 === (21))) { $s = 100; continue; } + /* */ $s = 101; continue; + /* if ((_4 === (17)) || (_4 === (23)) || (_4 === (25)) || (_4 === (21))) { */ case 100: + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(38); + $r = p.printValue($clone(a, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 102; case 102: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* } */ case 115: - case 112: - /* } */ case 111: - $r = p.fmtPointer($clone(f, reflect.Value), verb); /* */ $s = 117; case 117: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 101: + case 99: + /* } */ case 98: + $r = p.fmtPointer($clone(f, reflect.Value), verb); /* */ $s = 103; case 103: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 24; continue; /* } else if ((_1 === (18)) || (_1 === (19)) || (_1 === (26))) { */ case 22: - $r = p.fmtPointer($clone(f, reflect.Value), verb); /* */ $s = 118; case 118: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.fmtPointer($clone(f, reflect.Value), verb); /* */ $s = 104; case 104: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 24; continue; /* } else { */ case 23: - $r = p.unknownType($clone(f, reflect.Value)); /* */ $s = 119; case 119: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.unknownType($clone(f, reflect.Value)); /* */ $s = 105; case 105: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 24: case 7: $s = -1; return; - /* */ } return; } var $f = {$blk: printValue, $c: true, $r, _1, _2, _3, _4, _arg, _arg$1, _arg$2, _arg$3, _i, _i$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, a, bytes, depth, f, i, i$1, i$2, i$3, i$4, key, name, p, sorted, t, value, value$1, verb, x, x$1, $s};return $f; + /* */ } return; } var $f = {$blk: printValue, $c: true, $r, _1, _2, _3, _4, _arg, _arg$1, _arg$2, _i, _i$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, a, bytes, depth, f, i, i$1, i$2, i$3, i$4, key, name, p, sorted, t, value, value$1, verb, x, x$1, $s};return $f; }; intFromArg = function intFromArg$1(a, argNum) { - var {_1, _r, _tuple, a, argNum, isInt, n, n$1, newArgNum, num, v, x, x$1, x$2, $s, $r, $c} = $restore(this, {a, argNum}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + var _1, _tuple, a, argNum, isInt, n, n$1, newArgNum, num, v, x, x$1, x$2; num = 0; isInt = false; newArgNum = 0; newArgNum = argNum; - /* */ if (argNum < a.$length) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (argNum < a.$length) { */ case 1: + if (argNum < a.$length) { _tuple = $assertType(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), $Int, true); num = _tuple[0]; isInt = _tuple[1]; - /* */ if (!isInt) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!isInt) { */ case 3: - _r = reflect.ValueOf(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum])); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - v = _r; - _1 = $clone(v, reflect.Value).Kind(); - if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { - n = $clone(v, reflect.Value).Int(); - if ((x = (new $Int64(0, (((n.$low + ((n.$high >> 31) * 4294967296)) >> 0)))), (x.$high === n.$high && x.$low === n.$low))) { - num = (((n.$low + ((n.$high >> 31) * 4294967296)) >> 0)); - isInt = true; - } - } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { - n$1 = $clone(v, reflect.Value).Uint(); - if ((x$1 = (new $Int64(n$1.$high, n$1.$low)), (x$1.$high > 0 || (x$1.$high === 0 && x$1.$low >= 0))) && (x$2 = (new $Uint64(0, ((n$1.$low >> 0)))), (x$2.$high === n$1.$high && x$2.$low === n$1.$low))) { - num = ((n$1.$low >> 0)); - isInt = true; - } + if (!isInt) { + v = reflect.ValueOf(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum])); + _1 = $clone(v, reflect.Value).Kind(); + if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { + n = $clone(v, reflect.Value).Int(); + if ((x = (new $Int64(0, (((n.$low + ((n.$high >> 31) * 4294967296)) >> 0)))), (x.$high === n.$high && x.$low === n.$low))) { + num = (((n.$low + ((n.$high >> 31) * 4294967296)) >> 0)); + isInt = true; } - case 5: - /* } */ case 4: + } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { + n$1 = $clone(v, reflect.Value).Uint(); + if ((x$1 = (new $Int64(n$1.$high, n$1.$low)), (x$1.$high > 0 || (x$1.$high === 0 && x$1.$low >= 0))) && (x$2 = (new $Uint64(0, ((n$1.$low >> 0)))), (x$2.$high === n$1.$high && x$2.$low === n$1.$low))) { + num = ((n$1.$low >> 0)); + isInt = true; + } + } + } newArgNum = argNum + 1 >> 0; if (tooLarge(num)) { num = 0; isInt = false; } - /* } */ case 2: - $s = -1; return [num, isInt, newArgNum]; - /* */ } return; } var $f = {$blk: intFromArg$1, $c: true, $r, _1, _r, _tuple, a, argNum, isInt, n, n$1, newArgNum, num, v, x, x$1, x$2, $s};return $f; + } + return [num, isInt, newArgNum]; }; parseArgNumber = function parseArgNumber$1(format) { var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, format, i, index, newi, ok, ok$1, wid, width; @@ -31687,19 +29345,19 @@ $packages["fmt"] = (function() { $ptrType(pp).prototype.badArgNum = function badArgNum(verb) { var p, verb; p = this; - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("%!"); - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeRune(verb); - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("(BADINDEX)"); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString("%!"); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeRune(verb); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString("(BADINDEX)"); }; $ptrType(pp).prototype.missingArg = function missingArg(verb) { var p, verb; p = this; - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("%!"); - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeRune(verb); - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("(MISSING)"); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString("%!"); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeRune(verb); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString("(MISSING)"); }; $ptrType(pp).prototype.doPrintf = function doPrintf(format, a) { - var {_1, _2, _i, _r, _r$1, _r$2, _ref, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, a, afterIndex, arg, argNum, c, end, format, i, i$1, lasti, p, size, verb, $s, $r, $c} = $restore(this, {format, a}); + var {_1, _2, _i, _r, _ref, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, a, afterIndex, arg, argNum, c, end, format, i, i$1, lasti, p, size, verb, $s, $r, $c} = $restore(this, {format, a}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; end = format.length; @@ -31716,7 +29374,7 @@ $packages["fmt"] = (function() { i = i + (1) >> 0; } if (i > lasti) { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString($substring(format, lasti, i)); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString($substring(format, lasti, i)); } if (i >= end) { /* break; */ $s = 2; continue; @@ -31781,17 +29439,14 @@ $packages["fmt"] = (function() { argNum = _tuple[0]; i = _tuple[1]; afterIndex = _tuple[2]; - /* */ if (i < end && (format.charCodeAt(i) === 42)) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (i < end && (format.charCodeAt(i) === 42)) { */ case 16: + if (i < end && (format.charCodeAt(i) === 42)) { i = i + (1) >> 0; - _r = intFromArg(a, argNum); /* */ $s = 19; case 19: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple$1 = _r; + _tuple$1 = intFromArg(a, argNum); p.fmt.wid = _tuple$1[0]; p.fmt.fmtFlags.widPresent = _tuple$1[1]; argNum = _tuple$1[2]; if (!p.fmt.fmtFlags.widPresent) { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("%!(BADWIDTH)"); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString("%!(BADWIDTH)"); } if (p.fmt.wid < 0) { p.fmt.wid = -p.fmt.wid; @@ -31799,8 +29454,7 @@ $packages["fmt"] = (function() { p.fmt.fmtFlags.zero = false; } afterIndex = false; - $s = 18; continue; - /* } else { */ case 17: + } else { _tuple$2 = parsenum(format, i, end); p.fmt.wid = _tuple$2[0]; p.fmt.fmtFlags.widPresent = _tuple$2[1]; @@ -31808,10 +29462,8 @@ $packages["fmt"] = (function() { if (afterIndex && p.fmt.fmtFlags.widPresent) { p.goodArgNum = false; } - /* } */ case 18: - /* */ if ((i + 1 >> 0) < end && (format.charCodeAt(i) === 46)) { $s = 20; continue; } - /* */ $s = 21; continue; - /* if ((i + 1 >> 0) < end && (format.charCodeAt(i) === 46)) { */ case 20: + } + if ((i + 1 >> 0) < end && (format.charCodeAt(i) === 46)) { i = i + (1) >> 0; if (afterIndex) { p.goodArgNum = false; @@ -31820,12 +29472,9 @@ $packages["fmt"] = (function() { argNum = _tuple$3[0]; i = _tuple$3[1]; afterIndex = _tuple$3[2]; - /* */ if (i < end && (format.charCodeAt(i) === 42)) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if (i < end && (format.charCodeAt(i) === 42)) { */ case 22: + if (i < end && (format.charCodeAt(i) === 42)) { i = i + (1) >> 0; - _r$1 = intFromArg(a, argNum); /* */ $s = 25; case 25: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$4 = _r$1; + _tuple$4 = intFromArg(a, argNum); p.fmt.prec = _tuple$4[0]; p.fmt.fmtFlags.precPresent = _tuple$4[1]; argNum = _tuple$4[2]; @@ -31834,11 +29483,10 @@ $packages["fmt"] = (function() { p.fmt.fmtFlags.precPresent = false; } if (!p.fmt.fmtFlags.precPresent) { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("%!(BADPREC)"); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString("%!(BADPREC)"); } afterIndex = false; - $s = 24; continue; - /* } else { */ case 23: + } else { _tuple$5 = parsenum(format, i, end); p.fmt.prec = _tuple$5[0]; p.fmt.fmtFlags.precPresent = _tuple$5[1]; @@ -31847,8 +29495,8 @@ $packages["fmt"] = (function() { p.fmt.prec = 0; p.fmt.fmtFlags.precPresent = true; } - /* } */ case 24: - /* } */ case 21: + } + } if (!afterIndex) { _tuple$6 = p.argNumber(argNum, format, i, a.$length); argNum = _tuple$6[0]; @@ -31856,7 +29504,7 @@ $packages["fmt"] = (function() { afterIndex = _tuple$6[2]; } if (i >= end) { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("%!(NOVERB)"); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString("%!(NOVERB)"); /* break; */ $s = 2; continue; } _tmp = ((format.charCodeAt(i) >> 0)); @@ -31869,77 +29517,77 @@ $packages["fmt"] = (function() { size = _tuple$7[1]; } i = i + (size) >> 0; - /* */ if ((verb === 37)) { $s = 27; continue; } - /* */ if (!p.goodArgNum) { $s = 28; continue; } - /* */ if (argNum >= a.$length) { $s = 29; continue; } - /* */ if ((verb === 119)) { $s = 30; continue; } - /* */ if ((verb === 118)) { $s = 31; continue; } - /* */ $s = 32; continue; - /* if ((verb === 37)) { */ case 27: - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(37); - $s = 33; continue; - /* } else if (!p.goodArgNum) { */ case 28: + /* */ if ((verb === 37)) { $s = 17; continue; } + /* */ if (!p.goodArgNum) { $s = 18; continue; } + /* */ if (argNum >= a.$length) { $s = 19; continue; } + /* */ if ((verb === 119)) { $s = 20; continue; } + /* */ if ((verb === 118)) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if ((verb === 37)) { */ case 17: + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(37); + $s = 23; continue; + /* } else if (!p.goodArgNum) { */ case 18: p.badArgNum(verb); - $s = 33; continue; - /* } else if (argNum >= a.$length) { */ case 29: + $s = 23; continue; + /* } else if (argNum >= a.$length) { */ case 19: p.missingArg(verb); - $s = 33; continue; - /* } else if ((verb === 119)) { */ case 30: + $s = 23; continue; + /* } else if ((verb === 119)) { */ case 20: p.wrappedErrs = $append(p.wrappedErrs, argNum); p.fmt.fmtFlags.sharpV = p.fmt.fmtFlags.sharp; p.fmt.fmtFlags.sharp = false; p.fmt.fmtFlags.plusV = p.fmt.fmtFlags.plus; p.fmt.fmtFlags.plus = false; - $r = p.printArg(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), verb); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.printArg(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), verb); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } argNum = argNum + (1) >> 0; - $s = 33; continue; - /* } else if ((verb === 118)) { */ case 31: + $s = 23; continue; + /* } else if ((verb === 118)) { */ case 21: p.fmt.fmtFlags.sharpV = p.fmt.fmtFlags.sharp; p.fmt.fmtFlags.sharp = false; p.fmt.fmtFlags.plusV = p.fmt.fmtFlags.plus; p.fmt.fmtFlags.plus = false; - $r = p.printArg(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), verb); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.printArg(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), verb); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } argNum = argNum + (1) >> 0; - $s = 33; continue; - /* } else { */ case 32: - $r = p.printArg(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), verb); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 23; continue; + /* } else { */ case 22: + $r = p.printArg(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), verb); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } argNum = argNum + (1) >> 0; - /* } */ case 33: - case 26: + /* } */ case 23: + case 16: $s = 1; continue; case 2: - /* */ if (!p.reordered && argNum < a.$length) { $s = 37; continue; } - /* */ $s = 38; continue; - /* if (!p.reordered && argNum < a.$length) { */ case 37: + /* */ if (!p.reordered && argNum < a.$length) { $s = 27; continue; } + /* */ $s = 28; continue; + /* if (!p.reordered && argNum < a.$length) { */ case 27: p.fmt.clearflags(); - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("%!(EXTRA "); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString("%!(EXTRA "); _ref = $subslice(a, argNum); _i = 0; - /* while (true) { */ case 39: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 40; continue; } + /* while (true) { */ case 29: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 30; continue; } i$1 = _i; arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); if (i$1 > 0) { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(", "); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(", "); } - /* */ if ($interfaceIsEqual(arg, $ifaceNil)) { $s = 41; continue; } - /* */ $s = 42; continue; - /* if ($interfaceIsEqual(arg, $ifaceNil)) { */ case 41: - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(""); - $s = 43; continue; - /* } else { */ case 42: - _r$2 = reflect.TypeOf(arg).String(); /* */ $s = 44; case 44: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(_r$2); /* */ $s = 45; case 45: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(61); - $r = p.printArg(arg, 118); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 43: + /* */ if ($interfaceIsEqual(arg, $ifaceNil)) { $s = 31; continue; } + /* */ $s = 32; continue; + /* if ($interfaceIsEqual(arg, $ifaceNil)) { */ case 31: + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(""); + $s = 33; continue; + /* } else { */ case 32: + _r = reflect.TypeOf(arg).String(); /* */ $s = 34; case 34: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeString(_r); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(61); + $r = p.printArg(arg, 118); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 33: _i++; - $s = 39; continue; - case 40: - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(41); - /* } */ case 38: + $s = 29; continue; + case 30: + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(41); + /* } */ case 28: $s = -1; return; - /* */ } return; } var $f = {$blk: doPrintf, $c: true, $r, _1, _2, _i, _r, _r$1, _r$2, _ref, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, a, afterIndex, arg, argNum, c, end, format, i, i$1, lasti, p, size, verb, $s};return $f; + /* */ } return; } var $f = {$blk: doPrintf, $c: true, $r, _1, _2, _i, _r, _ref, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, a, afterIndex, arg, argNum, c, end, format, i, i$1, lasti, p, size, verb, $s};return $f; }; $ptrType(pp).prototype.doPrint = function doPrint(a) { var {_i, _r, _ref, _v, a, arg, argNum, isString, p, prevString, $s, $r, $c} = $restore(this, {a}); @@ -31957,7 +29605,7 @@ $packages["fmt"] = (function() { _v = _r === 24; case 3: isString = _v; if (argNum > 0 && !isString && !prevString) { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(32); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(32); } $r = p.printArg(arg, 118); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } prevString = isString; @@ -31978,13 +29626,13 @@ $packages["fmt"] = (function() { argNum = _i; arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); if (argNum > 0) { - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(32); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(32); } $r = p.printArg(arg, 118); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _i++; $s = 1; continue; case 2: - (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(10); + (p === ptrType$24.nil && $throwNilPointerError(), (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))).writeByte(10); $s = -1; return; /* */ } return; } var $f = {$blk: doPrintln, $c: true, $r, _i, _ref, a, arg, argNum, p, $s};return $f; }; @@ -32563,7 +30211,6 @@ $packages["fmt"] = (function() { ptrType$26.methods = [{prop: "clearflags", name: "clearflags", pkg: "fmt", typ: $funcType([], [], false)}, {prop: "init", name: "init", pkg: "fmt", typ: $funcType([ptrType$1], [], false)}, {prop: "writePadding", name: "writePadding", pkg: "fmt", typ: $funcType([$Int], [], false)}, {prop: "pad", name: "pad", pkg: "fmt", typ: $funcType([sliceType$3], [], false)}, {prop: "padString", name: "padString", pkg: "fmt", typ: $funcType([$String], [], false)}, {prop: "fmtBoolean", name: "fmtBoolean", pkg: "fmt", typ: $funcType([$Bool], [], false)}, {prop: "fmtUnicode", name: "fmtUnicode", pkg: "fmt", typ: $funcType([$Uint64], [], false)}, {prop: "fmtInteger", name: "fmtInteger", pkg: "fmt", typ: $funcType([$Uint64, $Int, $Bool, $Int32, $String], [], false)}, {prop: "truncateString", name: "truncateString", pkg: "fmt", typ: $funcType([$String], [$String], false)}, {prop: "truncate", name: "truncate", pkg: "fmt", typ: $funcType([sliceType$3], [sliceType$3], false)}, {prop: "fmtS", name: "fmtS", pkg: "fmt", typ: $funcType([$String], [], false)}, {prop: "fmtBs", name: "fmtBs", pkg: "fmt", typ: $funcType([sliceType$3], [], false)}, {prop: "fmtSbx", name: "fmtSbx", pkg: "fmt", typ: $funcType([$String, sliceType$3, $String], [], false)}, {prop: "fmtSx", name: "fmtSx", pkg: "fmt", typ: $funcType([$String, $String], [], false)}, {prop: "fmtBx", name: "fmtBx", pkg: "fmt", typ: $funcType([sliceType$3, $String], [], false)}, {prop: "fmtQ", name: "fmtQ", pkg: "fmt", typ: $funcType([$String], [], false)}, {prop: "fmtC", name: "fmtC", pkg: "fmt", typ: $funcType([$Uint64], [], false)}, {prop: "fmtQc", name: "fmtQc", pkg: "fmt", typ: $funcType([$Uint64], [], false)}, {prop: "fmtFloat", name: "fmtFloat", pkg: "fmt", typ: $funcType([$Float64, $Int, $Int32, $Int], [], false)}]; ptrType$27.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Unwrap", name: "Unwrap", pkg: "", typ: $funcType([], [$error], false)}]; ptrType$28.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Unwrap", name: "Unwrap", pkg: "", typ: $funcType([], [sliceType$4], false)}]; - ScanState.init([{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}, {prop: "SkipSpace", name: "SkipSpace", pkg: "", typ: $funcType([], [], false)}, {prop: "Token", name: "Token", pkg: "", typ: $funcType([$Bool, funcType], [sliceType$3, $error], false)}, {prop: "UnreadRune", name: "UnreadRune", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Width", name: "Width", pkg: "", typ: $funcType([], [$Int, $Bool], false)}]); scanError.init("fmt", [{prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}]); ss.init("fmt", [{prop: "rs", name: "rs", embedded: false, exported: false, typ: io.RuneScanner, tag: ""}, {prop: "buf", name: "buf", embedded: false, exported: false, typ: buffer, tag: ""}, {prop: "count", name: "count", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "atEOF", name: "atEOF", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "ssave", name: "ssave", embedded: true, exported: false, typ: ssave, tag: ""}]); ssave.init("fmt", [{prop: "validSave", name: "validSave", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "nlIsEnd", name: "nlIsEnd", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "nlIsSpace", name: "nlIsSpace", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "argLimit", name: "argLimit", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "limit", name: "limit", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "maxWid", name: "maxWid", embedded: false, exported: false, typ: $Int, tag: ""}]); @@ -32595,8 +30242,8 @@ $packages["fmt"] = (function() { ssFree = new sync.Pool.ptr(sliceType$1.nil, (function func1() { return new ss.ptr($ifaceNil, buffer.nil, 0, false, new ssave.ptr(false, false, false, 0, 0, 0)); })); - complexError = errors.New("syntax error scanning complex number"); - boolError = errors.New("syntax error scanning boolean"); + errComplex = errors.New("syntax error scanning complex number"); + errBool = errors.New("syntax error scanning boolean"); ppFree = new sync.Pool.ptr(sliceType$1.nil, (function func2() { return new pp.ptr(buffer.nil, $ifaceNil, new reflect.Value.ptr(ptrType.nil, 0, 0), new fmt.ptr(ptrType$1.nil, new fmtFlags.ptr(false, false, false, false, false, false, false, false, false), 0, 0, arrayType$1.zero()), false, false, false, false, false, sliceType$2.nil); })); @@ -32606,26 +30253,15 @@ $packages["fmt"] = (function() { return $pkg; })(); $packages["strings"] = (function() { - var $pkg = {}, $init, errors, js, io, sync, unicode, utf8, asciiSet, Reader, Builder, span, sliceType, ptrType, sliceType$1, ptrType$1, sliceType$2, arrayType, ptrType$10, asciiSpace, explode, Contains, ContainsAny, ContainsRune, IndexRune, IndexAny, LastIndexAny, LastIndexByte, genSplit, Split, Fields, FieldsFunc, Join, HasPrefix, HasSuffix, TrimLeftFunc, TrimRightFunc, TrimFunc, indexFunc, lastIndexFunc, makeASCIISet, Trim, TrimLeft, trimLeftByte, trimLeftASCII, trimLeftUnicode, trimRightByte, trimRightASCII, trimRightUnicode, TrimSpace, TrimPrefix, TrimSuffix, Replace, ReplaceAll, EqualFold, Cut, CutPrefix, NewReader, IndexByte, Index, LastIndex, Count, Repeat; + var $pkg = {}, $init, errors, js, bytealg, io, sync, unicode, utf8, asciiSet, Builder, span, sliceType, ptrType, sliceType$1, ptrType$1, sliceType$2, arrayType, asciiSpace, explode, Contains, ContainsAny, ContainsRune, IndexRune, IndexAny, LastIndexByte, genSplit, Split, Fields, FieldsFunc, Join, HasPrefix, HasSuffix, TrimLeftFunc, TrimRightFunc, TrimFunc, indexFunc, lastIndexFunc, makeASCIISet, Trim, TrimLeft, trimLeftByte, trimLeftASCII, trimLeftUnicode, trimRightByte, trimRightASCII, trimRightUnicode, TrimSpace, TrimPrefix, TrimSuffix, Replace, ReplaceAll, Cut, CutPrefix, IndexByte, Index, LastIndex, Count, Repeat; errors = $packages["errors"]; js = $packages["github.com/gopherjs/gopherjs/js"]; + bytealg = $packages["internal/bytealg"]; io = $packages["io"]; sync = $packages["sync"]; unicode = $packages["unicode"]; utf8 = $packages["unicode/utf8"]; asciiSet = $newType(32, $kindArray, "strings.asciiSet", true, "strings", false, null); - Reader = $newType(0, $kindStruct, "strings.Reader", true, "strings", true, function(s_, i_, prevRune_) { - this.$val = this; - if (arguments.length === 0) { - this.s = ""; - this.i = new $Int64(0, 0); - this.prevRune = 0; - return; - } - this.s = s_; - this.i = i_; - this.prevRune = prevRune_; - }); Builder = $newType(0, $kindStruct, "strings.Builder", true, "strings", true, function(addr_, buf_) { this.$val = this; if (arguments.length === 0) { @@ -32647,7 +30283,6 @@ $packages["strings"] = (function() { this.end = end_; }); $pkg.asciiSet = asciiSet; - $pkg.Reader = Reader; $pkg.Builder = Builder; $pkg.span = span; $pkg.$finishSetup = function() { @@ -32657,7 +30292,6 @@ $packages["strings"] = (function() { ptrType$1 = $ptrType(Builder); sliceType$2 = $sliceType($Uint8); arrayType = $arrayType($Uint32, 8); - ptrType$10 = $ptrType(Reader); explode = function explode$1(s, n) { var _tuple, a, i, l, n, s, size, x; l = utf8.RuneCountInString(s); @@ -32762,69 +30396,6 @@ $packages["strings"] = (function() { return -1; }; $pkg.IndexAny = IndexAny; - LastIndexAny = function LastIndexAny$1(s, chars) { - var _tuple, _tuple$1, _tuple$2, as, chars, i, i$1, i$2, isASCII, r, r$1, rc, rc$1, s, size, size$1; - if (chars === "") { - return -1; - } - if (s.length === 1) { - rc = ((s.charCodeAt(0) >> 0)); - if (rc >= 128) { - rc = 65533; - } - if (IndexRune(chars, rc) >= 0) { - return 0; - } - return -1; - } - if (s.length > 8) { - _tuple = makeASCIISet(chars); - as = $clone(_tuple[0], asciiSet); - isASCII = _tuple[1]; - if (isASCII) { - i = s.length - 1 >> 0; - while (true) { - if (!(i >= 0)) { break; } - if (new ptrType(as).contains(s.charCodeAt(i))) { - return i; - } - i = i - (1) >> 0; - } - return -1; - } - } - if (chars.length === 1) { - rc$1 = ((chars.charCodeAt(0) >> 0)); - if (rc$1 >= 128) { - rc$1 = 65533; - } - i$1 = s.length; - while (true) { - if (!(i$1 > 0)) { break; } - _tuple$1 = utf8.DecodeLastRuneInString($substring(s, 0, i$1)); - r = _tuple$1[0]; - size = _tuple$1[1]; - i$1 = i$1 - (size) >> 0; - if (rc$1 === r) { - return i$1; - } - } - return -1; - } - i$2 = s.length; - while (true) { - if (!(i$2 > 0)) { break; } - _tuple$2 = utf8.DecodeLastRuneInString($substring(s, 0, i$2)); - r$1 = _tuple$2[0]; - size$1 = _tuple$2[1]; - i$2 = i$2 - (size$1) >> 0; - if (IndexRune(chars, r$1) >= 0) { - return i$2; - } - } - return -1; - }; - $pkg.LastIndexAny = LastIndexAny; LastIndexByte = function LastIndexByte$1(s, c) { var c, i, s; i = s.length - 1 >> 0; @@ -32974,31 +30545,42 @@ $packages["strings"] = (function() { }; $pkg.FieldsFunc = FieldsFunc; Join = function Join$1(elems, sep) { - var _1, _i, _ref, b, elems, i, n, s, sep; + var _1, _i, _i$1, _q, _ref, _ref$1, b, elem, elems, n, s, sep; _1 = elems.$length; if (_1 === (0)) { return ""; } else if (_1 === (1)) { return (0 >= elems.$length ? ($throwRuntimeError("index out of range"), undefined) : elems.$array[elems.$offset + 0]); } - n = $imul(sep.length, ((elems.$length - 1 >> 0))); - i = 0; + n = 0; + if (sep.length > 0) { + if (sep.length >= (_q = 2147483647 / ((elems.$length - 1 >> 0)), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))) { + $panic(new $String("strings: Join output length overflow")); + } + n = n + (($imul(sep.length, ((elems.$length - 1 >> 0))))) >> 0; + } + _ref = elems; + _i = 0; while (true) { - if (!(i < elems.$length)) { break; } - n = n + (((i < 0 || i >= elems.$length) ? ($throwRuntimeError("index out of range"), undefined) : elems.$array[elems.$offset + i]).length) >> 0; - i = i + (1) >> 0; + if (!(_i < _ref.$length)) { break; } + elem = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (elem.length > (2147483647 - n >> 0)) { + $panic(new $String("strings: Join output length overflow")); + } + n = n + (elem.length) >> 0; + _i++; } b = new Builder.ptr(ptrType$1.nil, sliceType$2.nil); b.Grow(n); b.WriteString((0 >= elems.$length ? ($throwRuntimeError("index out of range"), undefined) : elems.$array[elems.$offset + 0])); - _ref = $subslice(elems, 1); - _i = 0; + _ref$1 = $subslice(elems, 1); + _i$1 = 0; while (true) { - if (!(_i < _ref.$length)) { break; } - s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!(_i$1 < _ref$1.$length)) { break; } + s = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); b.WriteString(sep); b.WriteString(s); - _i++; + _i$1++; } return b.String(); }; @@ -33122,7 +30704,7 @@ $packages["strings"] = (function() { $ptrType(asciiSet).prototype.contains = function contains(c) { var _q, _r, as, c, x, x$1, y; as = this.$val; - return !((((((x = as, x$1 = (_q = c / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")), ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])) & (((y = ((_r = c % 32, _r === _r ? _r : $throwRuntimeError("integer divide by zero"))), y < 32 ? (1 << y) : 0) >>> 0))) >>> 0)) === 0)); + return !((((((x = (as === ptrType.nil && $throwNilPointerError(), as), x$1 = (_q = c / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")), ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])) & (((y = ((_r = c % 32, _r === _r ? _r : $throwRuntimeError("integer divide by zero"))), y < 32 ? (1 << y) : 0) >>> 0))) >>> 0)) === 0)); }; Trim = function Trim$1(s, cutset) { var _tuple, as, cutset, ok, s; @@ -33334,95 +30916,6 @@ $packages["strings"] = (function() { return Replace(s, old, new$1, -1); }; $pkg.ReplaceAll = ReplaceAll; - EqualFold = function EqualFold$1(s, t) { - var _i, _ref, _rune, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, i, r, r$1, s, size, sr, sr$1, t, tr, tr$1, $s; - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - i = 0; - /* while (true) { */ case 1: - /* if (!(i < s.length && i < t.length)) { break; } */ if(!(i < s.length && i < t.length)) { $s = 2; continue; } - sr = s.charCodeAt(i); - tr = t.charCodeAt(i); - /* */ if (((sr | tr) >>> 0) >= 128) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (((sr | tr) >>> 0) >= 128) { */ case 3: - /* goto hasUnicode */ $s = 5; continue; - /* } */ case 4: - if (tr === sr) { - i = i + (1) >> 0; - /* continue; */ $s = 1; continue; - } - if (tr < sr) { - _tmp = sr; - _tmp$1 = tr; - tr = _tmp; - sr = _tmp$1; - } - if (65 <= sr && sr <= 90 && (tr === ((sr + 97 << 24 >>> 24) - 65 << 24 >>> 24))) { - i = i + (1) >> 0; - /* continue; */ $s = 1; continue; - } - $s = -1; return false; - case 2: - $s = -1; return s.length === t.length; - /* hasUnicode: */ case 5: - s = $substring(s, i); - t = $substring(t, i); - _ref = s; - _i = 0; - while (true) { - if (!(_i < _ref.length)) { break; } - _rune = $decodeRune(_ref, _i); - sr$1 = _rune[0]; - if (t.length === 0) { - $s = -1; return false; - } - tr$1 = 0; - if (t.charCodeAt(0) < 128) { - _tmp$2 = ((t.charCodeAt(0) >> 0)); - _tmp$3 = $substring(t, 1); - tr$1 = _tmp$2; - t = _tmp$3; - } else { - _tuple = utf8.DecodeRuneInString(t); - r = _tuple[0]; - size = _tuple[1]; - _tmp$4 = r; - _tmp$5 = $substring(t, size); - tr$1 = _tmp$4; - t = _tmp$5; - } - if (tr$1 === sr$1) { - _i += _rune[1]; - continue; - } - if (tr$1 < sr$1) { - _tmp$6 = sr$1; - _tmp$7 = tr$1; - tr$1 = _tmp$6; - sr$1 = _tmp$7; - } - if (tr$1 < 128) { - if (65 <= sr$1 && sr$1 <= 90 && (tr$1 === ((sr$1 + 97 >> 0) - 65 >> 0))) { - _i += _rune[1]; - continue; - } - $s = -1; return false; - } - r$1 = unicode.SimpleFold(sr$1); - while (true) { - if (!(!((r$1 === sr$1)) && r$1 < tr$1)) { break; } - r$1 = unicode.SimpleFold(r$1); - } - if (r$1 === tr$1) { - _i += _rune[1]; - continue; - } - $s = -1; return false; - } - $s = -1; return t.length === 0; - /* */ } return; } - }; - $pkg.EqualFold = EqualFold; Cut = function Cut$1(s, sep) { var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, after, before, found, i, s, sep; before = ""; @@ -33465,190 +30958,6 @@ $packages["strings"] = (function() { return [after, found]; }; $pkg.CutPrefix = CutPrefix; - $ptrType(Reader).prototype.Len = function Len() { - var r, x, x$1, x$2, x$3, x$4; - r = this; - if ((x = r.i, x$1 = (new $Int64(0, r.s.length)), (x.$high > x$1.$high || (x.$high === x$1.$high && x.$low >= x$1.$low)))) { - return 0; - } - return (((x$2 = (x$3 = (new $Int64(0, r.s.length)), x$4 = r.i, new $Int64(x$3.$high - x$4.$high, x$3.$low - x$4.$low)), x$2.$low + ((x$2.$high >> 31) * 4294967296)) >> 0)); - }; - $ptrType(Reader).prototype.Size = function Size() { - var r; - r = this; - return (new $Int64(0, r.s.length)); - }; - $ptrType(Reader).prototype.Read = function Read(b) { - var _tmp, _tmp$1, b, err, n, r, x, x$1, x$2, x$3; - n = 0; - err = $ifaceNil; - r = this; - if ((x = r.i, x$1 = (new $Int64(0, r.s.length)), (x.$high > x$1.$high || (x.$high === x$1.$high && x.$low >= x$1.$low)))) { - _tmp = 0; - _tmp$1 = io.EOF; - n = _tmp; - err = _tmp$1; - return [n, err]; - } - r.prevRune = -1; - n = $copyString(b, $substring(r.s, $flatten64(r.i))); - r.i = (x$2 = r.i, x$3 = (new $Int64(0, n)), new $Int64(x$2.$high + x$3.$high, x$2.$low + x$3.$low)); - return [n, err]; - }; - $ptrType(Reader).prototype.ReadAt = function ReadAt(b, off) { - var _tmp, _tmp$1, _tmp$2, _tmp$3, b, err, n, off, r, x; - n = 0; - err = $ifaceNil; - r = this; - if ((off.$high < 0 || (off.$high === 0 && off.$low < 0))) { - _tmp = 0; - _tmp$1 = errors.New("strings.Reader.ReadAt: negative offset"); - n = _tmp; - err = _tmp$1; - return [n, err]; - } - if ((x = (new $Int64(0, r.s.length)), (off.$high > x.$high || (off.$high === x.$high && off.$low >= x.$low)))) { - _tmp$2 = 0; - _tmp$3 = io.EOF; - n = _tmp$2; - err = _tmp$3; - return [n, err]; - } - n = $copyString(b, $substring(r.s, $flatten64(off))); - if (n < b.$length) { - err = io.EOF; - } - return [n, err]; - }; - $ptrType(Reader).prototype.ReadByte = function ReadByte() { - var b, r, x, x$1, x$2, x$3; - r = this; - r.prevRune = -1; - if ((x = r.i, x$1 = (new $Int64(0, r.s.length)), (x.$high > x$1.$high || (x.$high === x$1.$high && x.$low >= x$1.$low)))) { - return [0, io.EOF]; - } - b = r.s.charCodeAt($flatten64(r.i)); - r.i = (x$2 = r.i, x$3 = new $Int64(0, 1), new $Int64(x$2.$high + x$3.$high, x$2.$low + x$3.$low)); - return [b, $ifaceNil]; - }; - $ptrType(Reader).prototype.UnreadByte = function UnreadByte() { - var r, x, x$1, x$2; - r = this; - if ((x = r.i, (x.$high < 0 || (x.$high === 0 && x.$low <= 0)))) { - return errors.New("strings.Reader.UnreadByte: at beginning of string"); - } - r.prevRune = -1; - r.i = (x$1 = r.i, x$2 = new $Int64(0, 1), new $Int64(x$1.$high - x$2.$high, x$1.$low - x$2.$low)); - return $ifaceNil; - }; - $ptrType(Reader).prototype.ReadRune = function ReadRune() { - var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, c, ch, err, r, size, x, x$1, x$2, x$3, x$4, x$5, x$6; - ch = 0; - size = 0; - err = $ifaceNil; - r = this; - if ((x = r.i, x$1 = (new $Int64(0, r.s.length)), (x.$high > x$1.$high || (x.$high === x$1.$high && x.$low >= x$1.$low)))) { - r.prevRune = -1; - _tmp = 0; - _tmp$1 = 0; - _tmp$2 = io.EOF; - ch = _tmp; - size = _tmp$1; - err = _tmp$2; - return [ch, size, err]; - } - r.prevRune = (((x$2 = r.i, x$2.$low + ((x$2.$high >> 31) * 4294967296)) >> 0)); - c = r.s.charCodeAt($flatten64(r.i)); - if (c < 128) { - r.i = (x$3 = r.i, x$4 = new $Int64(0, 1), new $Int64(x$3.$high + x$4.$high, x$3.$low + x$4.$low)); - _tmp$3 = ((c >> 0)); - _tmp$4 = 1; - _tmp$5 = $ifaceNil; - ch = _tmp$3; - size = _tmp$4; - err = _tmp$5; - return [ch, size, err]; - } - _tuple = utf8.DecodeRuneInString($substring(r.s, $flatten64(r.i))); - ch = _tuple[0]; - size = _tuple[1]; - r.i = (x$5 = r.i, x$6 = (new $Int64(0, size)), new $Int64(x$5.$high + x$6.$high, x$5.$low + x$6.$low)); - return [ch, size, err]; - }; - $ptrType(Reader).prototype.UnreadRune = function UnreadRune() { - var r, x; - r = this; - if ((x = r.i, (x.$high < 0 || (x.$high === 0 && x.$low <= 0)))) { - return errors.New("strings.Reader.UnreadRune: at beginning of string"); - } - if (r.prevRune < 0) { - return errors.New("strings.Reader.UnreadRune: previous operation was not ReadRune"); - } - r.i = (new $Int64(0, r.prevRune)); - r.prevRune = -1; - return $ifaceNil; - }; - $ptrType(Reader).prototype.Seek = function Seek(offset, whence) { - var _1, abs, offset, r, whence, x, x$1; - r = this; - r.prevRune = -1; - abs = new $Int64(0, 0); - _1 = whence; - if (_1 === (0)) { - abs = offset; - } else if (_1 === (1)) { - abs = (x = r.i, new $Int64(x.$high + offset.$high, x.$low + offset.$low)); - } else if (_1 === (2)) { - abs = (x$1 = (new $Int64(0, r.s.length)), new $Int64(x$1.$high + offset.$high, x$1.$low + offset.$low)); - } else { - return [new $Int64(0, 0), errors.New("strings.Reader.Seek: invalid whence")]; - } - if ((abs.$high < 0 || (abs.$high === 0 && abs.$low < 0))) { - return [new $Int64(0, 0), errors.New("strings.Reader.Seek: negative position")]; - } - r.i = abs; - return [abs, $ifaceNil]; - }; - $ptrType(Reader).prototype.WriteTo = function WriteTo(w) { - var {_r, _tmp, _tmp$1, _tuple, err, m, n, r, s, w, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {w}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - n = new $Int64(0, 0); - err = $ifaceNil; - r = this; - r.prevRune = -1; - if ((x = r.i, x$1 = (new $Int64(0, r.s.length)), (x.$high > x$1.$high || (x.$high === x$1.$high && x.$low >= x$1.$low)))) { - _tmp = new $Int64(0, 0); - _tmp$1 = $ifaceNil; - n = _tmp; - err = _tmp$1; - $s = -1; return [n, err]; - } - s = $substring(r.s, $flatten64(r.i)); - _r = io.WriteString(w, s); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - m = _tuple[0]; - err = _tuple[1]; - if (m > s.length) { - $panic(new $String("strings.Reader.WriteTo: invalid WriteString count")); - } - r.i = (x$2 = r.i, x$3 = (new $Int64(0, m)), new $Int64(x$2.$high + x$3.$high, x$2.$low + x$3.$low)); - n = (new $Int64(0, m)); - if (!((m === s.length)) && $interfaceIsEqual(err, $ifaceNil)) { - err = io.ErrShortWrite; - } - $s = -1; return [n, err]; - /* */ } return; } var $f = {$blk: WriteTo, $c: true, $r, _r, _tmp, _tmp$1, _tuple, err, m, n, r, s, w, x, x$1, x$2, x$3, $s};return $f; - }; - $ptrType(Reader).prototype.Reset = function Reset(s) { - var r, s; - r = this; - Reader.copy(r, new Reader.ptr(s, new $Int64(0, 0), -1)); - }; - NewReader = function NewReader$1(s) { - var s; - return new Reader.ptr(s, new $Int64(0, 0), -1); - }; - $pkg.NewReader = NewReader; IndexByte = function IndexByte$1(s, c) { var c, s; return $parseInt(s.indexOf($global.String.fromCharCode(c))) >> 0; @@ -33747,7 +31056,7 @@ $packages["strings"] = (function() { $ptrType(Builder).prototype.grow = function grow(n) { var b, buf, n; b = this; - buf = $makeSlice(sliceType$2, b.buf.$length, (($imul(2, b.buf.$capacity)) + n >> 0)); + buf = $subslice(bytealg.MakeNoZero(($imul(2, b.buf.$capacity)) + n >> 0), 0, b.buf.$length); $copySlice(buf, b.buf); b.buf = buf; }; @@ -33792,10 +31101,8 @@ $packages["strings"] = (function() { return [s.length, $ifaceNil]; }; ptrType.methods = [{prop: "contains", name: "contains", pkg: "strings", typ: $funcType([$Uint8], [$Bool], false)}]; - ptrType$10.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "ReadAt", name: "ReadAt", pkg: "", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "ReadByte", name: "ReadByte", pkg: "", typ: $funcType([], [$Uint8, $error], false)}, {prop: "UnreadByte", name: "UnreadByte", pkg: "", typ: $funcType([], [$error], false)}, {prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}, {prop: "UnreadRune", name: "UnreadRune", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Seek", name: "Seek", pkg: "", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([io.Writer], [$Int64, $error], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([$String], [], false)}]; ptrType$1.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "copyCheck", name: "copyCheck", pkg: "strings", typ: $funcType([], [], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Cap", name: "Cap", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}, {prop: "grow", name: "grow", pkg: "strings", typ: $funcType([$Int], [], false)}, {prop: "Grow", name: "Grow", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "WriteByte", name: "WriteByte", pkg: "", typ: $funcType([$Uint8], [$error], false)}, {prop: "WriteRune", name: "WriteRune", pkg: "", typ: $funcType([$Int32], [$Int, $error], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}]; asciiSet.init($Uint32, 8); - Reader.init("strings", [{prop: "s", name: "s", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "i", name: "i", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "prevRune", name: "prevRune", embedded: false, exported: false, typ: $Int, tag: ""}]); Builder.init("strings", [{prop: "addr", name: "addr", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "buf", name: "buf", embedded: false, exported: false, typ: sliceType$2, tag: ""}]); span.init("strings", [{prop: "start", name: "start", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "end", name: "end", embedded: false, exported: false, typ: $Int, tag: ""}]); }; @@ -33804,10 +31111,11 @@ $packages["strings"] = (function() { /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $r = js.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = io.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = sync.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = unicode.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = utf8.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = bytealg.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unicode.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } asciiSpace = $toNativeArray($kindUint8, [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; @@ -34991,7 +32299,7 @@ $packages["github.com/gopherjs/gopherjs.github.io/playground/internal/editor"] = return $pkg; })(); $packages["bytes"] = (function() { - var $pkg = {}, $init, errors, bytealg, io, unicode, utf8, Reader, asciiSet, Buffer, readOp, sliceType, ptrType, arrayType$1, ptrType$1, ptrType$2, asciiSpace, errNegativeRead, errUnreadByte, NewReader, IndexByte, Equal, Count, LastIndex, LastIndexByte, HasPrefix, TrimLeftFunc, TrimRightFunc, TrimFunc, indexFunc, lastIndexFunc, makeASCIISet, containsRune, TrimRight, trimRightByte, trimRightASCII, trimRightUnicode, TrimSpace, Replace, Index, growSlice, NewBufferString; + var $pkg = {}, $init, errors, bytealg, io, unicode, utf8, Reader, Buffer, readOp, ptrType, sliceType, ptrType$2, asciiSpace, errNegativeRead, errUnreadByte, NewReader, IndexByte, Equal, Count, LastIndex, LastIndexByte, HasPrefix, TrimLeftFunc, TrimRightFunc, TrimFunc, indexFunc, lastIndexFunc, TrimSpace, Replace, Index, growSlice; errors = $packages["errors"]; bytealg = $packages["internal/bytealg"]; io = $packages["io"]; @@ -35009,7 +32317,6 @@ $packages["bytes"] = (function() { this.i = i_; this.prevRune = prevRune_; }); - asciiSet = $newType(32, $kindArray, "bytes.asciiSet", true, "bytes", false, null); Buffer = $newType(0, $kindStruct, "bytes.Buffer", true, "bytes", true, function(buf_, off_, lastRead_) { this.$val = this; if (arguments.length === 0) { @@ -35024,15 +32331,12 @@ $packages["bytes"] = (function() { }); readOp = $newType(1, $kindInt8, "bytes.readOp", true, "bytes", false, null); $pkg.Reader = Reader; - $pkg.asciiSet = asciiSet; $pkg.Buffer = Buffer; $pkg.readOp = readOp; $pkg.$finishSetup = function() { + ptrType = $ptrType(Reader); sliceType = $sliceType($Uint8); - ptrType = $ptrType(asciiSet); - arrayType$1 = $arrayType($Uint32, 8); - ptrType$1 = $ptrType(Buffer); - ptrType$2 = $ptrType(Reader); + ptrType$2 = $ptrType(Buffer); $ptrType(Reader).prototype.Len = function Len() { var r, x, x$1, x$2, x$3, x$4; r = this; @@ -35210,7 +32514,7 @@ $packages["bytes"] = (function() { $ptrType(Reader).prototype.Reset = function Reset(b) { var b, r; r = this; - Reader.copy(r, new Reader.ptr(b, new $Int64(0, 0), -1)); + Reader.copy((r === ptrType.nil && $throwNilPointerError(), r), new Reader.ptr(b, new $Int64(0, 0), -1)); }; NewReader = function NewReader$1(b) { var b; @@ -35422,107 +32726,6 @@ $packages["bytes"] = (function() { $s = -1; return -1; /* */ } return; } var $f = {$blk: lastIndexFunc$1, $c: true, $r, _r, _tmp, _tmp$1, _tuple, f, i, r, s, size, truth, x, $s};return $f; }; - makeASCIISet = function makeASCIISet$1(chars) { - var _index, _q, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, as, c, chars, i, ok, y; - as = arrayType$1.zero(); - ok = false; - i = 0; - while (true) { - if (!(i < chars.length)) { break; } - c = chars.charCodeAt(i); - if (c >= 128) { - _tmp = $clone(as, asciiSet); - _tmp$1 = false; - asciiSet.copy(as, _tmp); - ok = _tmp$1; - return [as, ok]; - } - _index = (_q = c / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); - ((_index < 0 || _index >= as.length) ? ($throwRuntimeError("index out of range"), undefined) : as[_index] = ((((_index < 0 || _index >= as.length) ? ($throwRuntimeError("index out of range"), undefined) : as[_index]) | (((y = ((_r = c % 32, _r === _r ? _r : $throwRuntimeError("integer divide by zero"))), y < 32 ? (1 << y) : 0) >>> 0))) >>> 0)); - i = i + (1) >> 0; - } - _tmp$2 = $clone(as, asciiSet); - _tmp$3 = true; - asciiSet.copy(as, _tmp$2); - ok = _tmp$3; - return [as, ok]; - }; - $ptrType(asciiSet).prototype.contains = function contains(c) { - var _q, _r, as, c, x, x$1, y; - as = this.$val; - return !((((((x = as, x$1 = (_q = c / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")), ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])) & (((y = ((_r = c % 32, _r === _r ? _r : $throwRuntimeError("integer divide by zero"))), y < 32 ? (1 << y) : 0) >>> 0))) >>> 0)) === 0)); - }; - containsRune = function containsRune$1(s, r) { - var _i, _ref, _rune, c, r, s; - _ref = s; - _i = 0; - while (true) { - if (!(_i < _ref.length)) { break; } - _rune = $decodeRune(_ref, _i); - c = _rune[0]; - if (c === r) { - return true; - } - _i += _rune[1]; - } - return false; - }; - TrimRight = function TrimRight$1(s, cutset) { - var _tuple, as, cutset, ok, s; - if ((s.$length === 0) || cutset === "") { - return s; - } - if ((cutset.length === 1) && cutset.charCodeAt(0) < 128) { - return trimRightByte(s, cutset.charCodeAt(0)); - } - _tuple = makeASCIISet(cutset); - as = $clone(_tuple[0], asciiSet); - ok = _tuple[1]; - if (ok) { - return trimRightASCII(s, as); - } - return trimRightUnicode(s, cutset); - }; - $pkg.TrimRight = TrimRight; - trimRightByte = function trimRightByte$1(s, c) { - var c, s, x; - while (true) { - if (!(s.$length > 0 && ((x = s.$length - 1 >> 0, ((x < 0 || x >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + x])) === c))) { break; } - s = $subslice(s, 0, (s.$length - 1 >> 0)); - } - return s; - }; - trimRightASCII = function trimRightASCII$1(s, as) { - var as, s, x; - while (true) { - if (!(s.$length > 0)) { break; } - if (!new ptrType(as).contains((x = s.$length - 1 >> 0, ((x < 0 || x >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + x])))) { - break; - } - s = $subslice(s, 0, (s.$length - 1 >> 0)); - } - return s; - }; - trimRightUnicode = function trimRightUnicode$1(s, cutset) { - var _tmp, _tmp$1, _tuple, cutset, n, r, s, x; - while (true) { - if (!(s.$length > 0)) { break; } - _tmp = (((x = s.$length - 1 >> 0, ((x < 0 || x >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + x])) >> 0)); - _tmp$1 = 1; - r = _tmp; - n = _tmp$1; - if (r >= 128) { - _tuple = utf8.DecodeLastRune(s); - r = _tuple[0]; - n = _tuple[1]; - } - if (!containsRune(cutset, r)) { - break; - } - s = $subslice(s, 0, (s.$length - n >> 0)); - } - return s; - }; TrimSpace = function TrimSpace$1(s) { var {$24r, $24r$1, _r, _r$1, c, c$1, s, start, stop, x, $s, $r, $c} = $restore(this, {s}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: @@ -35686,10 +32889,15 @@ $packages["bytes"] = (function() { b = this; return $subslice(b.buf, b.off); }; + $ptrType(Buffer).prototype.AvailableBuffer = function AvailableBuffer() { + var b; + b = this; + return $subslice(b.buf, b.buf.$length); + }; $ptrType(Buffer).prototype.String = function String() { var b; b = this; - if (b === ptrType$1.nil) { + if (b === ptrType$2.nil) { return ""; } return ($bytesToString($subslice(b.buf, b.off))); @@ -35709,6 +32917,11 @@ $packages["bytes"] = (function() { b = this; return b.buf.$capacity; }; + $ptrType(Buffer).prototype.Available = function Available() { + var b; + b = this; + return b.buf.$capacity - b.buf.$length >> 0; + }; $ptrType(Buffer).prototype.Truncate = function Truncate(n) { var b, n; b = this; @@ -36124,16 +33337,9 @@ $packages["bytes"] = (function() { err = _tmp$1; return [line, err]; }; - NewBufferString = function NewBufferString$1(s) { - var s; - return new Buffer.ptr((new sliceType($stringToBytes(s))), 0, 0); - }; - $pkg.NewBufferString = NewBufferString; - ptrType$2.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "ReadAt", name: "ReadAt", pkg: "", typ: $funcType([sliceType, $Int64], [$Int, $error], false)}, {prop: "ReadByte", name: "ReadByte", pkg: "", typ: $funcType([], [$Uint8, $error], false)}, {prop: "UnreadByte", name: "UnreadByte", pkg: "", typ: $funcType([], [$error], false)}, {prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}, {prop: "UnreadRune", name: "UnreadRune", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Seek", name: "Seek", pkg: "", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([io.Writer], [$Int64, $error], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([sliceType], [], false)}]; - ptrType.methods = [{prop: "contains", name: "contains", pkg: "bytes", typ: $funcType([$Uint8], [$Bool], false)}]; - ptrType$1.methods = [{prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "empty", name: "empty", pkg: "bytes", typ: $funcType([], [$Bool], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Cap", name: "Cap", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Truncate", name: "Truncate", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}, {prop: "tryGrowByReslice", name: "tryGrowByReslice", pkg: "bytes", typ: $funcType([$Int], [$Int, $Bool], false)}, {prop: "grow", name: "grow", pkg: "bytes", typ: $funcType([$Int], [$Int], false)}, {prop: "Grow", name: "Grow", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}, {prop: "ReadFrom", name: "ReadFrom", pkg: "", typ: $funcType([io.Reader], [$Int64, $error], false)}, {prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([io.Writer], [$Int64, $error], false)}, {prop: "WriteByte", name: "WriteByte", pkg: "", typ: $funcType([$Uint8], [$error], false)}, {prop: "WriteRune", name: "WriteRune", pkg: "", typ: $funcType([$Int32], [$Int, $error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "Next", name: "Next", pkg: "", typ: $funcType([$Int], [sliceType], false)}, {prop: "ReadByte", name: "ReadByte", pkg: "", typ: $funcType([], [$Uint8, $error], false)}, {prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}, {prop: "UnreadRune", name: "UnreadRune", pkg: "", typ: $funcType([], [$error], false)}, {prop: "UnreadByte", name: "UnreadByte", pkg: "", typ: $funcType([], [$error], false)}, {prop: "ReadBytes", name: "ReadBytes", pkg: "", typ: $funcType([$Uint8], [sliceType, $error], false)}, {prop: "readSlice", name: "readSlice", pkg: "bytes", typ: $funcType([$Uint8], [sliceType, $error], false)}, {prop: "ReadString", name: "ReadString", pkg: "", typ: $funcType([$Uint8], [$String, $error], false)}]; + ptrType.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "ReadAt", name: "ReadAt", pkg: "", typ: $funcType([sliceType, $Int64], [$Int, $error], false)}, {prop: "ReadByte", name: "ReadByte", pkg: "", typ: $funcType([], [$Uint8, $error], false)}, {prop: "UnreadByte", name: "UnreadByte", pkg: "", typ: $funcType([], [$error], false)}, {prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}, {prop: "UnreadRune", name: "UnreadRune", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Seek", name: "Seek", pkg: "", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([io.Writer], [$Int64, $error], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([sliceType], [], false)}]; + ptrType$2.methods = [{prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "AvailableBuffer", name: "AvailableBuffer", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "empty", name: "empty", pkg: "bytes", typ: $funcType([], [$Bool], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Cap", name: "Cap", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Available", name: "Available", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Truncate", name: "Truncate", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}, {prop: "tryGrowByReslice", name: "tryGrowByReslice", pkg: "bytes", typ: $funcType([$Int], [$Int, $Bool], false)}, {prop: "grow", name: "grow", pkg: "bytes", typ: $funcType([$Int], [$Int], false)}, {prop: "Grow", name: "Grow", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}, {prop: "ReadFrom", name: "ReadFrom", pkg: "", typ: $funcType([io.Reader], [$Int64, $error], false)}, {prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([io.Writer], [$Int64, $error], false)}, {prop: "WriteByte", name: "WriteByte", pkg: "", typ: $funcType([$Uint8], [$error], false)}, {prop: "WriteRune", name: "WriteRune", pkg: "", typ: $funcType([$Int32], [$Int, $error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "Next", name: "Next", pkg: "", typ: $funcType([$Int], [sliceType], false)}, {prop: "ReadByte", name: "ReadByte", pkg: "", typ: $funcType([], [$Uint8, $error], false)}, {prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}, {prop: "UnreadRune", name: "UnreadRune", pkg: "", typ: $funcType([], [$error], false)}, {prop: "UnreadByte", name: "UnreadByte", pkg: "", typ: $funcType([], [$error], false)}, {prop: "ReadBytes", name: "ReadBytes", pkg: "", typ: $funcType([$Uint8], [sliceType, $error], false)}, {prop: "readSlice", name: "readSlice", pkg: "bytes", typ: $funcType([$Uint8], [sliceType, $error], false)}, {prop: "ReadString", name: "ReadString", pkg: "", typ: $funcType([$Uint8], [$String, $error], false)}]; Reader.init("bytes", [{prop: "s", name: "s", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "i", name: "i", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "prevRune", name: "prevRune", embedded: false, exported: false, typ: $Int, tag: ""}]); - asciiSet.init($Uint32, 8); Buffer.init("bytes", [{prop: "buf", name: "buf", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "off", name: "off", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "lastRead", name: "lastRead", embedded: false, exported: false, typ: readOp, tag: ""}]); }; $init = function() { @@ -36434,7 +33640,7 @@ $packages["bufio"] = (function() { return $pkg; })(); $packages["go/token"] = (function() { - var $pkg = {}, $init, fmt, nosync, sort, strconv, atomic, unicode, utf8, Token, serializedFile, serializedFileSet, Position, Pos, File, lineInfo, FileSet, sliceType, ptrType, sliceType$1, sliceType$2, sliceType$3, sliceType$4, ptrType$1, ptrType$2, sliceType$5, funcType, funcType$1, ptrType$3, keywords, tokens, init, Lookup, IsExported, searchLineInfos, NewFileSet, searchFiles, searchInts; + var $pkg = {}, $init, fmt, nosync, sort, strconv, atomic, unicode, utf8, Token, serializedFile, serializedFileSet, Position, Pos, File, lineInfo, FileSet, sliceType, ptrType, sliceType$1, ptrType$1, sliceType$2, sliceType$3, sliceType$4, ptrType$2, ptrType$3, ptrType$4, sliceType$5, funcType, funcType$1, ptrType$5, keywords, tokens, init, Lookup, IsExported, searchLineInfos, NewFileSet, searchFiles, searchInts; fmt = $packages["fmt"]; nosync = $packages["github.com/gopherjs/gopherjs/nosync"]; sort = $packages["sort"]; @@ -36542,15 +33748,17 @@ $packages["go/token"] = (function() { sliceType = $sliceType(serializedFile); ptrType = $ptrType(File); sliceType$1 = $sliceType(ptrType); + ptrType$1 = $ptrType(serializedFile); sliceType$2 = $sliceType($Int); sliceType$3 = $sliceType(lineInfo); sliceType$4 = $sliceType($emptyInterface); - ptrType$1 = $ptrType(ptrType); - ptrType$2 = $ptrType(Position); + ptrType$2 = $ptrType(lineInfo); + ptrType$3 = $ptrType(ptrType); + ptrType$4 = $ptrType(Position); sliceType$5 = $sliceType($Uint8); funcType = $funcType([$emptyInterface], [$error], false); funcType$1 = $funcType([ptrType], [$Bool], false); - ptrType$3 = $ptrType(FileSet); + ptrType$5 = $ptrType(FileSet); Token.prototype.String = function String() { var s, tok; tok = this.$val; @@ -36645,7 +33853,7 @@ $packages["go/token"] = (function() { i = 0; while (true) { if (!(i < ss[0].Files.$length)) { break; } - f = (x = ss[0].Files, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + f = (x = ss[0].Files, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + i, ptrType$1))); ((i < 0 || i >= files.$length) ? ($throwRuntimeError("index out of range"), undefined) : files.$array[files.$offset + i] = new File.ptr(f.Name, f.Base, f.Size, new nosync.Mutex.ptr(false, false, false, false, 0), f.Lines, f.Infos)); i = i + (1) >> 0; } @@ -36687,7 +33895,7 @@ $packages["go/token"] = (function() { return pos.Line > 0; }; $ptrType(Position).prototype.String = function String$1() { - var {_r, _r$1, pos, s, $s, $r, $c} = $restore(this, {}); + var {_r, pos, s, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: pos = this; s = pos.Filename; @@ -36697,20 +33905,19 @@ $packages["go/token"] = (function() { if (!(s === "")) { s = s + (":"); } - _r = fmt.Sprintf("%d", new sliceType$4([new $Int(pos.Line)])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - s = s + (_r); - /* */ if (!((pos.Column === 0))) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (!((pos.Column === 0))) { */ case 4: - _r$1 = fmt.Sprintf(":%d", new sliceType$4([new $Int(pos.Column)])); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - s = s + (_r$1); - /* } */ case 5: + s = s + (strconv.Itoa(pos.Line)); + /* */ if (!((pos.Column === 0))) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!((pos.Column === 0))) { */ case 3: + _r = fmt.Sprintf(":%d", new sliceType$4([new $Int(pos.Column)])); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + s = s + (_r); + /* } */ case 4: /* } */ case 2: if (s === "") { s = "-"; } $s = -1; return s; - /* */ } return; } var $f = {$blk: String$1, $c: true, $r, _r, _r$1, pos, s, $s};return $f; + /* */ } return; } var $f = {$blk: String$1, $c: true, $r, _r, pos, s, $s};return $f; }; Position.prototype.String = function(...$args) { return this.$val.String(...$args); }; Pos.prototype.IsValid = function IsValid$1() { @@ -36775,6 +33982,14 @@ $packages["go/token"] = (function() { $s = -1; return; /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: MergeLine, $c: true, $r, _r, _r$1, f, line, $s, $deferred};return $f; } } }; + $ptrType(File).prototype.Lines = function Lines() { + var f, lines; + f = this; + f.mutex.Lock(); + lines = f.lines; + f.mutex.Unlock(); + return lines; + }; $ptrType(File).prototype.SetLines = function SetLines(lines) { var _i, _ref, f, i, lines, offset, size, x; f = this; @@ -36925,7 +34140,7 @@ $packages["go/token"] = (function() { _r = searchLineInfos(f.infos, offset); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } i$1 = _r; if (i$1 >= 0) { - alt = (x$1 = f.infos, ((i$1 < 0 || i$1 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$1])); + alt = (x$1 = f.infos, ((i$1 < 0 || i$1 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + i$1, ptrType$2))); filename = alt.Filename; i$2 = searchInts(f.lines, alt.Offset); if (i$2 >= 0) { @@ -37035,7 +34250,7 @@ $packages["go/token"] = (function() { /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: AddFile, $c: true, $r, _r, _r$1, base, f, filename, s, size, $s, $deferred};return $f; } } }; $ptrType(FileSet).prototype.RemoveFile = function RemoveFile(file) { - var {_r, file, i, last, s, x, x$1, $s, $deferred, $r, $c} = $restore(this, {file}); + var {_r, file, i, last, s, x, x$1, x$2, $s, $deferred, $r, $c} = $restore(this, {file}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); s = this; s.last.CompareAndSwap(file, ptrType.nil); @@ -37044,12 +34259,12 @@ $packages["go/token"] = (function() { _r = searchFiles(s.files, file.base); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } i = _r; if (i >= 0 && (x = s.files, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])) === file) { - last = (x$1 = s.files, $indexPtr(x$1.$array, x$1.$offset + (s.files.$length - 1 >> 0), ptrType$1)); + last = (x$1 = s.files, x$2 = s.files.$length - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + x$2, ptrType$3))); s.files = $appendSlice($subslice(s.files, 0, i), $subslice(s.files, (i + 1 >> 0))); last.$set(ptrType.nil); } $s = -1; return; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: RemoveFile, $c: true, $r, _r, file, i, last, s, x, x$1, $s, $deferred};return $f; } } + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: RemoveFile, $c: true, $r, _r, file, i, last, s, x, x$1, x$2, $s, $deferred};return $f; } } }; $ptrType(FileSet).prototype.Iterate = function Iterate(f) { var {_r, _v, f, file, i, s, x, $s, $r, $c} = $restore(this, {f}); @@ -37178,10 +34393,10 @@ $packages["go/token"] = (function() { }; Token.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Precedence", name: "Precedence", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "IsLiteral", name: "IsLiteral", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsOperator", name: "IsOperator", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsKeyword", name: "IsKeyword", pkg: "", typ: $funcType([], [$Bool], false)}]; Position.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$2.methods = [{prop: "IsValid", name: "IsValid", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$4.methods = [{prop: "IsValid", name: "IsValid", pkg: "", typ: $funcType([], [$Bool], false)}]; Pos.methods = [{prop: "IsValid", name: "IsValid", pkg: "", typ: $funcType([], [$Bool], false)}]; - ptrType.methods = [{prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Base", name: "Base", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "LineCount", name: "LineCount", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "AddLine", name: "AddLine", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "MergeLine", name: "MergeLine", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "SetLines", name: "SetLines", pkg: "", typ: $funcType([sliceType$2], [$Bool], false)}, {prop: "SetLinesForContent", name: "SetLinesForContent", pkg: "", typ: $funcType([sliceType$5], [], false)}, {prop: "LineStart", name: "LineStart", pkg: "", typ: $funcType([$Int], [Pos], false)}, {prop: "AddLineInfo", name: "AddLineInfo", pkg: "", typ: $funcType([$Int, $String, $Int], [], false)}, {prop: "AddLineColumnInfo", name: "AddLineColumnInfo", pkg: "", typ: $funcType([$Int, $String, $Int, $Int], [], false)}, {prop: "Pos", name: "Pos", pkg: "", typ: $funcType([$Int], [Pos], false)}, {prop: "Offset", name: "Offset", pkg: "", typ: $funcType([Pos], [$Int], false)}, {prop: "Line", name: "Line", pkg: "", typ: $funcType([Pos], [$Int], false)}, {prop: "unpack", name: "unpack", pkg: "go/token", typ: $funcType([$Int, $Bool], [$String, $Int, $Int], false)}, {prop: "position", name: "position", pkg: "go/token", typ: $funcType([Pos, $Bool], [Position], false)}, {prop: "PositionFor", name: "PositionFor", pkg: "", typ: $funcType([Pos, $Bool], [Position], false)}, {prop: "Position", name: "Position", pkg: "", typ: $funcType([Pos], [Position], false)}]; - ptrType$3.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([funcType], [$error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([funcType], [$error], false)}, {prop: "Base", name: "Base", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "AddFile", name: "AddFile", pkg: "", typ: $funcType([$String, $Int, $Int], [ptrType], false)}, {prop: "RemoveFile", name: "RemoveFile", pkg: "", typ: $funcType([ptrType], [], false)}, {prop: "Iterate", name: "Iterate", pkg: "", typ: $funcType([funcType$1], [], false)}, {prop: "file", name: "file", pkg: "go/token", typ: $funcType([Pos], [ptrType], false)}, {prop: "File", name: "File", pkg: "", typ: $funcType([Pos], [ptrType], false)}, {prop: "PositionFor", name: "PositionFor", pkg: "", typ: $funcType([Pos, $Bool], [Position], false)}, {prop: "Position", name: "Position", pkg: "", typ: $funcType([Pos], [Position], false)}]; + ptrType.methods = [{prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Base", name: "Base", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "LineCount", name: "LineCount", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "AddLine", name: "AddLine", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "MergeLine", name: "MergeLine", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Lines", name: "Lines", pkg: "", typ: $funcType([], [sliceType$2], false)}, {prop: "SetLines", name: "SetLines", pkg: "", typ: $funcType([sliceType$2], [$Bool], false)}, {prop: "SetLinesForContent", name: "SetLinesForContent", pkg: "", typ: $funcType([sliceType$5], [], false)}, {prop: "LineStart", name: "LineStart", pkg: "", typ: $funcType([$Int], [Pos], false)}, {prop: "AddLineInfo", name: "AddLineInfo", pkg: "", typ: $funcType([$Int, $String, $Int], [], false)}, {prop: "AddLineColumnInfo", name: "AddLineColumnInfo", pkg: "", typ: $funcType([$Int, $String, $Int, $Int], [], false)}, {prop: "Pos", name: "Pos", pkg: "", typ: $funcType([$Int], [Pos], false)}, {prop: "Offset", name: "Offset", pkg: "", typ: $funcType([Pos], [$Int], false)}, {prop: "Line", name: "Line", pkg: "", typ: $funcType([Pos], [$Int], false)}, {prop: "unpack", name: "unpack", pkg: "go/token", typ: $funcType([$Int, $Bool], [$String, $Int, $Int], false)}, {prop: "position", name: "position", pkg: "go/token", typ: $funcType([Pos, $Bool], [Position], false)}, {prop: "PositionFor", name: "PositionFor", pkg: "", typ: $funcType([Pos, $Bool], [Position], false)}, {prop: "Position", name: "Position", pkg: "", typ: $funcType([Pos], [Position], false)}]; + ptrType$5.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([funcType], [$error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([funcType], [$error], false)}, {prop: "Base", name: "Base", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "AddFile", name: "AddFile", pkg: "", typ: $funcType([$String, $Int, $Int], [ptrType], false)}, {prop: "RemoveFile", name: "RemoveFile", pkg: "", typ: $funcType([ptrType], [], false)}, {prop: "Iterate", name: "Iterate", pkg: "", typ: $funcType([funcType$1], [], false)}, {prop: "file", name: "file", pkg: "go/token", typ: $funcType([Pos], [ptrType], false)}, {prop: "File", name: "File", pkg: "", typ: $funcType([Pos], [ptrType], false)}, {prop: "PositionFor", name: "PositionFor", pkg: "", typ: $funcType([Pos, $Bool], [Position], false)}, {prop: "Position", name: "Position", pkg: "", typ: $funcType([Pos], [Position], false)}]; serializedFile.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Base", name: "Base", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Size", name: "Size", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Lines", name: "Lines", embedded: false, exported: true, typ: sliceType$2, tag: ""}, {prop: "Infos", name: "Infos", embedded: false, exported: true, typ: sliceType$3, tag: ""}]); serializedFileSet.init("", [{prop: "Base", name: "Base", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Files", name: "Files", embedded: false, exported: true, typ: sliceType, tag: ""}]); Position.init("", [{prop: "Filename", name: "Filename", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Offset", name: "Offset", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Line", name: "Line", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Column", name: "Column", embedded: false, exported: true, typ: $Int, tag: ""}]); @@ -37702,9 +34917,9 @@ $packages["go/scanner"] = (function() { _tmp$5 = n; line = _tmp$4; col = _tmp$5; - /* */ if ((col === 0) || col > 1073741823) { $s = 7; continue; } + /* */ if ((col === 0) || col > 1073741824) { $s = 7; continue; } /* */ $s = 8; continue; - /* if ((col === 0) || col > 1073741823) { */ case 7: + /* if ((col === 0) || col > 1073741824) { */ case 7: $r = s.error(offs + i2 >> 0, "invalid column number: " + ($bytesToString($subslice(text, i2)))); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* } */ case 8: @@ -37713,9 +34928,9 @@ $packages["go/scanner"] = (function() { /* } else { */ case 5: line = n; /* } */ case 6: - /* */ if ((line === 0) || line > 1073741823) { $s = 10; continue; } + /* */ if ((line === 0) || line > 1073741824) { $s = 10; continue; } /* */ $s = 11; continue; - /* if ((line === 0) || line > 1073741823) { */ case 10: + /* if ((line === 0) || line > 1073741824) { */ case 10: $r = s.error(offs + i >> 0, "invalid line number: " + ($bytesToString($subslice(text, i)))); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; /* } */ case 11: @@ -39508,7 +36723,7 @@ $packages["go/ast"] = (function() { this.Type = Type_; this.Body = Body_; }); - File = $newType(0, $kindStruct, "ast.File", true, "go/ast", true, function(Doc_, Package_, Name_, Decls_, FileStart_, FileEnd_, Scope_, Imports_, Unresolved_, Comments_) { + File = $newType(0, $kindStruct, "ast.File", true, "go/ast", true, function(Doc_, Package_, Name_, Decls_, FileStart_, FileEnd_, Scope_, Imports_, Unresolved_, Comments_, GoVersion_) { this.$val = this; if (arguments.length === 0) { this.Doc = ptrType$1.nil; @@ -39521,6 +36736,7 @@ $packages["go/ast"] = (function() { this.Imports = sliceType$8.nil; this.Unresolved = sliceType$9.nil; this.Comments = sliceType$3.nil; + this.GoVersion = ""; return; } this.Doc = Doc_; @@ -39533,6 +36749,7 @@ $packages["go/ast"] = (function() { this.Imports = Imports_; this.Unresolved = Unresolved_; this.Comments = Comments_; + this.GoVersion = GoVersion_; }); Package = $newType(0, $kindStruct, "ast.Package", true, "go/ast", true, function(Name_, Scope_, Imports_, Files_) { this.$val = this; @@ -41930,7 +39147,7 @@ $packages["go/ast"] = (function() { BadDecl.init("", [{prop: "From", name: "From", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "To", name: "To", embedded: false, exported: true, typ: token.Pos, tag: ""}]); GenDecl.init("", [{prop: "Doc", name: "Doc", embedded: false, exported: true, typ: ptrType$1, tag: ""}, {prop: "TokPos", name: "TokPos", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Tok", name: "Tok", embedded: false, exported: true, typ: token.Token, tag: ""}, {prop: "Lparen", name: "Lparen", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Specs", name: "Specs", embedded: false, exported: true, typ: sliceType$14, tag: ""}, {prop: "Rparen", name: "Rparen", embedded: false, exported: true, typ: token.Pos, tag: ""}]); FuncDecl.init("", [{prop: "Doc", name: "Doc", embedded: false, exported: true, typ: ptrType$1, tag: ""}, {prop: "Recv", name: "Recv", embedded: false, exported: true, typ: ptrType$3, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: ptrType$5, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: ptrType$23, tag: ""}, {prop: "Body", name: "Body", embedded: false, exported: true, typ: ptrType$39, tag: ""}]); - File.init("", [{prop: "Doc", name: "Doc", embedded: false, exported: true, typ: ptrType$1, tag: ""}, {prop: "Package", name: "Package", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: ptrType$5, tag: ""}, {prop: "Decls", name: "Decls", embedded: false, exported: true, typ: sliceType$7, tag: ""}, {prop: "FileStart", name: "FileStart", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "FileEnd", name: "FileEnd", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Scope", name: "Scope", embedded: false, exported: true, typ: ptrType$58, tag: ""}, {prop: "Imports", name: "Imports", embedded: false, exported: true, typ: sliceType$8, tag: ""}, {prop: "Unresolved", name: "Unresolved", embedded: false, exported: true, typ: sliceType$9, tag: ""}, {prop: "Comments", name: "Comments", embedded: false, exported: true, typ: sliceType$3, tag: ""}]); + File.init("", [{prop: "Doc", name: "Doc", embedded: false, exported: true, typ: ptrType$1, tag: ""}, {prop: "Package", name: "Package", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: ptrType$5, tag: ""}, {prop: "Decls", name: "Decls", embedded: false, exported: true, typ: sliceType$7, tag: ""}, {prop: "FileStart", name: "FileStart", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "FileEnd", name: "FileEnd", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Scope", name: "Scope", embedded: false, exported: true, typ: ptrType$58, tag: ""}, {prop: "Imports", name: "Imports", embedded: false, exported: true, typ: sliceType$8, tag: ""}, {prop: "Unresolved", name: "Unresolved", embedded: false, exported: true, typ: sliceType$9, tag: ""}, {prop: "Comments", name: "Comments", embedded: false, exported: true, typ: sliceType$3, tag: ""}, {prop: "GoVersion", name: "GoVersion", embedded: false, exported: true, typ: $String, tag: ""}]); Package.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Scope", name: "Scope", embedded: false, exported: true, typ: ptrType$58, tag: ""}, {prop: "Imports", name: "Imports", embedded: false, exported: true, typ: mapType, tag: ""}, {prop: "Files", name: "Files", embedded: false, exported: true, typ: mapType$2, tag: ""}]); }; $init = function() { @@ -41952,57775 +39169,20789 @@ $packages["go/ast"] = (function() { $pkg.$init = $init; return $pkg; })(); -$packages["go/internal/typeparams"] = (function() { - var $pkg = {}, $init, ast, token, IndexExpr, sliceType, ptrType, ptrType$1, ptrType$2, PackIndexExpr, UnpackIndexExpr; - ast = $packages["go/ast"]; - token = $packages["go/token"]; - IndexExpr = $newType(0, $kindStruct, "typeparams.IndexExpr", true, "go/internal/typeparams", true, function(Orig_, IndexListExpr_) { +$packages["go/build/constraint"] = (function() { + var $pkg = {}, $init, errors, strconv, strings, unicode, utf8, Expr, TagExpr, NotExpr, AndExpr, OrExpr, SyntaxError, exprParser, ptrType, ptrType$1, ptrType$2, ptrType$3, ptrType$4, sliceType, sliceType$1, sliceType$2, sliceType$3, funcType, ptrType$5, errNotConstraint, errComplex, GoVersion, minVersion, stringsCut, andVersion, orVersion, tag, not, andArg, and, orArg, or, Parse, IsGoBuild, splitGoBuild, parseExpr, IsPlusBuild, splitPlusBuild, parsePlusBuildExpr, isValidTag, PlusBuildLines, pushNot, appendSplitAnd, appendSplitOr; + errors = $packages["errors"]; + strconv = $packages["strconv"]; + strings = $packages["strings"]; + unicode = $packages["unicode"]; + utf8 = $packages["unicode/utf8"]; + Expr = $newType(8, $kindInterface, "constraint.Expr", true, "go/build/constraint", true, null); + TagExpr = $newType(0, $kindStruct, "constraint.TagExpr", true, "go/build/constraint", true, function(Tag_) { this.$val = this; if (arguments.length === 0) { - this.Orig = $ifaceNil; - this.IndexListExpr = ptrType$1.nil; + this.Tag = ""; return; } - this.Orig = Orig_; - this.IndexListExpr = IndexListExpr_; + this.Tag = Tag_; }); - $pkg.IndexExpr = IndexExpr; - $pkg.$finishSetup = function() { - sliceType = $sliceType(ast.Expr); - ptrType = $ptrType(ast.IndexExpr); - ptrType$1 = $ptrType(ast.IndexListExpr); - ptrType$2 = $ptrType(IndexExpr); - PackIndexExpr = function PackIndexExpr$1(x, lbrack, exprs, rbrack) { - var _1, exprs, lbrack, rbrack, x; - _1 = exprs.$length; - if (_1 === (0)) { - $panic(new $String("internal error: PackIndexExpr with empty expr slice")); - } else if (_1 === (1)) { - return new ast.IndexExpr.ptr(x, lbrack, (0 >= exprs.$length ? ($throwRuntimeError("index out of range"), undefined) : exprs.$array[exprs.$offset + 0]), rbrack); - } else { - return new ast.IndexListExpr.ptr(x, lbrack, exprs, rbrack); - } - }; - $pkg.PackIndexExpr = PackIndexExpr; - UnpackIndexExpr = function UnpackIndexExpr$1(n) { - var _ref, e, e$1, n; - _ref = n; - if ($assertType(_ref, ptrType, true)[1]) { - e = _ref.$val; - return new IndexExpr.ptr(e, new ast.IndexListExpr.ptr(e.X, e.Lbrack, new sliceType([e.Index]), e.Rbrack)); - } else if ($assertType(_ref, ptrType$1, true)[1]) { - e$1 = _ref.$val; - return new IndexExpr.ptr(e$1, e$1); - } - return ptrType$2.nil; - }; - $pkg.UnpackIndexExpr = UnpackIndexExpr; - IndexExpr.init("", [{prop: "Orig", name: "Orig", embedded: false, exported: true, typ: ast.Expr, tag: ""}, {prop: "IndexListExpr", name: "IndexListExpr", embedded: true, exported: true, typ: ptrType$1, tag: ""}]); - }; - $init = function() { - $pkg.$init = function() {}; - /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: - $r = ast.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = token.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; - }; - $pkg.$init = $init; - return $pkg; -})(); -$packages["go/parser"] = (function() { - var $pkg = {}, $init, bytes, errors, fmt, ast, typeparams, scanner, token, io, fs, os, filepath, strings, resolver, parser, bailout, field, parseSpecFunction, Mode, ptrType, ptrType$1, ptrType$2, sliceType, sliceType$1, ptrType$3, interfaceType, sliceType$2, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, ptrType$11, ptrType$12, ptrType$13, ptrType$14, ptrType$15, ptrType$16, ptrType$17, ptrType$18, ptrType$19, ptrType$20, ptrType$21, ptrType$22, ptrType$23, ptrType$24, sliceType$3, ptrType$25, ptrType$26, ptrType$27, ptrType$28, ptrType$29, ptrType$30, ptrType$31, ptrType$32, ptrType$33, sliceType$4, ptrType$34, ptrType$35, ptrType$36, sliceType$5, ptrType$37, sliceType$6, ptrType$38, ptrType$39, sliceType$7, arrayType, arrayType$1, ptrType$40, ptrType$41, ptrType$42, ptrType$43, ptrType$44, structType, ptrType$45, ptrType$46, ptrType$47, sliceType$8, ptrType$48, sliceType$9, ptrType$49, sliceType$10, sliceType$11, sliceType$12, ptrType$50, ptrType$51, ptrType$53, funcType, mapType, ptrType$54, unresolved, stmtStart, declStart, exprEnd, resolveFile, trace, un, incNestLev, decNestLev, assert, unparen, isTypeSwitchAssert, extractName, isTypeElem, readSource, ParseFile; - bytes = $packages["bytes"]; - errors = $packages["errors"]; - fmt = $packages["fmt"]; - ast = $packages["go/ast"]; - typeparams = $packages["go/internal/typeparams"]; - scanner = $packages["go/scanner"]; - token = $packages["go/token"]; - io = $packages["io"]; - fs = $packages["io/fs"]; - os = $packages["os"]; - filepath = $packages["path/filepath"]; - strings = $packages["strings"]; - resolver = $newType(0, $kindStruct, "parser.resolver", true, "go/parser", false, function(handle_, declErr_, pkgScope_, topScope_, unresolved_, depth_, labelScope_, targetStack_) { + NotExpr = $newType(0, $kindStruct, "constraint.NotExpr", true, "go/build/constraint", true, function(X_) { this.$val = this; if (arguments.length === 0) { - this.handle = ptrType$1.nil; - this.declErr = $throwNilPointerError; - this.pkgScope = ptrType.nil; - this.topScope = ptrType.nil; - this.unresolved = sliceType.nil; - this.depth = 0; - this.labelScope = ptrType.nil; - this.targetStack = sliceType$1.nil; + this.X = $ifaceNil; return; } - this.handle = handle_; - this.declErr = declErr_; - this.pkgScope = pkgScope_; - this.topScope = topScope_; - this.unresolved = unresolved_; - this.depth = depth_; - this.labelScope = labelScope_; - this.targetStack = targetStack_; + this.X = X_; }); - parser = $newType(0, $kindStruct, "parser.parser", true, "go/parser", false, function(file_, errors_, scanner_, mode_, trace_, indent_, comments_, leadComment_, lineComment_, pos_, tok_, lit_, syncPos_, syncCnt_, exprLev_, inRhs_, imports_, nestLev_) { + AndExpr = $newType(0, $kindStruct, "constraint.AndExpr", true, "go/build/constraint", true, function(X_, Y_) { this.$val = this; if (arguments.length === 0) { - this.file = ptrType$1.nil; - this.errors = scanner.ErrorList.nil; - this.scanner = new scanner.Scanner.ptr(ptrType$1.nil, "", sliceType$12.nil, $throwNilPointerError, 0, 0, 0, 0, 0, false, 0, 0); - this.mode = 0; - this.trace = false; - this.indent = 0; - this.comments = sliceType$11.nil; - this.leadComment = ptrType$33.nil; - this.lineComment = ptrType$33.nil; - this.pos = 0; - this.tok = 0; - this.lit = ""; - this.syncPos = 0; - this.syncCnt = 0; - this.exprLev = 0; - this.inRhs = false; - this.imports = sliceType$10.nil; - this.nestLev = 0; + this.X = $ifaceNil; + this.Y = $ifaceNil; return; } - this.file = file_; - this.errors = errors_; - this.scanner = scanner_; - this.mode = mode_; - this.trace = trace_; - this.indent = indent_; - this.comments = comments_; - this.leadComment = leadComment_; - this.lineComment = lineComment_; - this.pos = pos_; - this.tok = tok_; - this.lit = lit_; - this.syncPos = syncPos_; - this.syncCnt = syncCnt_; - this.exprLev = exprLev_; - this.inRhs = inRhs_; - this.imports = imports_; - this.nestLev = nestLev_; + this.X = X_; + this.Y = Y_; }); - bailout = $newType(0, $kindStruct, "parser.bailout", true, "go/parser", false, function(pos_, msg_) { + OrExpr = $newType(0, $kindStruct, "constraint.OrExpr", true, "go/build/constraint", true, function(X_, Y_) { this.$val = this; if (arguments.length === 0) { - this.pos = 0; - this.msg = ""; + this.X = $ifaceNil; + this.Y = $ifaceNil; return; } - this.pos = pos_; - this.msg = msg_; + this.X = X_; + this.Y = Y_; }); - field = $newType(0, $kindStruct, "parser.field", true, "go/parser", false, function(name_, typ_) { + SyntaxError = $newType(0, $kindStruct, "constraint.SyntaxError", true, "go/build/constraint", true, function(Offset_, Err_) { this.$val = this; if (arguments.length === 0) { - this.name = ptrType$2.nil; - this.typ = $ifaceNil; + this.Offset = 0; + this.Err = ""; return; } - this.name = name_; - this.typ = typ_; + this.Offset = Offset_; + this.Err = Err_; }); - parseSpecFunction = $newType(4, $kindFunc, "parser.parseSpecFunction", true, "go/parser", false, null); - Mode = $newType(4, $kindUint, "parser.Mode", true, "go/parser", true, null); - $pkg.resolver = resolver; - $pkg.parser = parser; - $pkg.bailout = bailout; - $pkg.field = field; - $pkg.parseSpecFunction = parseSpecFunction; - $pkg.Mode = Mode; + exprParser = $newType(0, $kindStruct, "constraint.exprParser", true, "go/build/constraint", false, function(s_, i_, tok_, isTag_, pos_) { + this.$val = this; + if (arguments.length === 0) { + this.s = ""; + this.i = 0; + this.tok = ""; + this.isTag = false; + this.pos = 0; + return; + } + this.s = s_; + this.i = i_; + this.tok = tok_; + this.isTag = isTag_; + this.pos = pos_; + }); + $pkg.Expr = Expr; + $pkg.TagExpr = TagExpr; + $pkg.NotExpr = NotExpr; + $pkg.AndExpr = AndExpr; + $pkg.OrExpr = OrExpr; + $pkg.SyntaxError = SyntaxError; + $pkg.exprParser = exprParser; $pkg.$finishSetup = function() { - ptrType = $ptrType(ast.Scope); - ptrType$1 = $ptrType(token.File); - ptrType$2 = $ptrType(ast.Ident); - sliceType = $sliceType(ptrType$2); + ptrType = $ptrType(AndExpr); + ptrType$1 = $ptrType(OrExpr); + ptrType$2 = $ptrType(NotExpr); + ptrType$3 = $ptrType(TagExpr); + ptrType$4 = $ptrType(SyntaxError); + sliceType = $sliceType(Expr); sliceType$1 = $sliceType(sliceType); - ptrType$3 = $ptrType(ast.Object); - interfaceType = $interfaceType([{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}]); - sliceType$2 = $sliceType($emptyInterface); - ptrType$4 = $ptrType(ast.FuncLit); - ptrType$5 = $ptrType(ast.SelectorExpr); - ptrType$6 = $ptrType(ast.StructType); - ptrType$7 = $ptrType(ast.FuncType); - ptrType$8 = $ptrType(ast.CompositeLit); - ptrType$9 = $ptrType(ast.InterfaceType); - ptrType$10 = $ptrType(ast.LabeledStmt); - ptrType$11 = $ptrType(ast.AssignStmt); - ptrType$12 = $ptrType(ast.BranchStmt); - ptrType$13 = $ptrType(ast.BlockStmt); - ptrType$14 = $ptrType(ast.IfStmt); - ptrType$15 = $ptrType(ast.CaseClause); - ptrType$16 = $ptrType(ast.SwitchStmt); - ptrType$17 = $ptrType(ast.TypeSwitchStmt); - ptrType$18 = $ptrType(ast.CommClause); - ptrType$19 = $ptrType(ast.SelectStmt); - ptrType$20 = $ptrType(ast.ForStmt); - ptrType$21 = $ptrType(ast.RangeStmt); - ptrType$22 = $ptrType(ast.GenDecl); - ptrType$23 = $ptrType(ast.FuncDecl); - ptrType$24 = $ptrType(ast.KeyValueExpr); - sliceType$3 = $sliceType(ast.Expr); - ptrType$25 = $ptrType(ast.ValueSpec); - ptrType$26 = $ptrType(ast.TypeSpec); - ptrType$27 = $ptrType(ast.FieldList); - ptrType$28 = $ptrType(ast.StarExpr); - ptrType$29 = $ptrType(ast.IndexExpr); - ptrType$30 = $ptrType(ast.IndexListExpr); - ptrType$31 = $ptrType(scanner.ErrorList); - ptrType$32 = $ptrType(ast.Comment); - ptrType$33 = $ptrType(ast.CommentGroup); - sliceType$4 = $sliceType(ptrType$32); - ptrType$34 = $ptrType(ast.ArrayType); - ptrType$35 = $ptrType(ast.BasicLit); - ptrType$36 = $ptrType(ast.Field); - sliceType$5 = $sliceType(ptrType$36); - ptrType$37 = $ptrType(ast.Ellipsis); - sliceType$6 = $sliceType(field); - ptrType$38 = $ptrType(ast.MapType); - ptrType$39 = $ptrType(ast.ChanType); - sliceType$7 = $sliceType(ast.Stmt); - arrayType = $arrayType(ast.Expr, 3); - arrayType$1 = $arrayType(token.Pos, 2); - ptrType$40 = $ptrType(ast.CallExpr); - ptrType$41 = $ptrType(ast.ParenExpr); - ptrType$42 = $ptrType(ast.BadExpr); - ptrType$43 = $ptrType(ast.ReturnStmt); - ptrType$44 = $ptrType(ast.ExprStmt); - structType = $structType("go/parser", [{prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "lit", name: "lit", embedded: false, exported: false, typ: $String, tag: ""}]); - ptrType$45 = $ptrType(ast.TypeAssertExpr); - ptrType$46 = $ptrType(ast.UnaryExpr); - ptrType$47 = $ptrType(ast.BinaryExpr); - sliceType$8 = $sliceType(ast.Spec); - ptrType$48 = $ptrType(ast.File); - sliceType$9 = $sliceType(ast.Decl); - ptrType$49 = $ptrType(ast.ImportSpec); - sliceType$10 = $sliceType(ptrType$49); - sliceType$11 = $sliceType(ptrType$33); - sliceType$12 = $sliceType($Uint8); - ptrType$50 = $ptrType(bytes.Buffer); - ptrType$51 = $ptrType(token.FileSet); - ptrType$53 = $ptrType(resolver); - funcType = $funcType([token.Pos, $String], [], false); - mapType = $mapType(token.Token, $Bool); - ptrType$54 = $ptrType(parser); - resolveFile = function resolveFile$1(file, handle, declErr) { - var {_i, _i$1, _r, _ref, _ref$1, decl, declErr, file, handle, i, ident, pkgScope, pos, r, x, $s, $r, $c} = $restore(this, {file, handle, declErr}); + sliceType$2 = $sliceType(sliceType$1); + sliceType$3 = $sliceType($String); + funcType = $funcType([$String], [$Bool], false); + ptrType$5 = $ptrType(exprParser); + GoVersion = function GoVersion$1(x) { + var {_r, v, x, $s, $r, $c} = $restore(this, {x}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - pkgScope = ast.NewScope(ptrType.nil); - r = new resolver.ptr(handle, declErr, pkgScope, pkgScope, sliceType.nil, 1, ptrType.nil, sliceType$1.nil); - _ref = file.Decls; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - decl = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - $r = ast.Walk(r, decl); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 1; continue; - case 2: - $r = r.closeScope(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - assert(r.topScope === ptrType.nil, "unbalanced scopes"); - assert(r.labelScope === ptrType.nil, "unbalanced label scopes"); - i = 0; - _ref$1 = r.unresolved; - _i$1 = 0; - /* while (true) { */ case 5: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 6; continue; } - ident = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - assert(ident.Obj === unresolved, "object already resolved"); - ident.Obj = r.pkgScope.Lookup(ident.Name); - /* */ if (ident.Obj === ptrType$3.nil) { $s = 7; continue; } - /* */ if (false) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (ident.Obj === ptrType$3.nil) { */ case 7: - (x = r.unresolved, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i] = ident)); - i = i + (1) >> 0; - $s = 9; continue; - /* } else if (false) { */ case 8: - _r = $assertType(ident.Obj.Decl, interfaceType).Pos(); /* */ $s = 10; case 10: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - pos = _r; - $r = r.trace("resolved %s@%v to package object %v", new sliceType$2([new $String(ident.Name), new token.Pos(ident.Pos()), new token.Pos(pos)])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 9: - _i$1++; - $s = 5; continue; - case 6: - file.Scope = r.pkgScope; - file.Unresolved = $subslice(r.unresolved, 0, i); - $s = -1; return; - /* */ } return; } var $f = {$blk: resolveFile$1, $c: true, $r, _i, _i$1, _r, _ref, _ref$1, decl, declErr, file, handle, i, ident, pkgScope, pos, r, x, $s};return $f; + _r = minVersion(x, 1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + v = _r; + if (v < 0) { + $s = -1; return ""; + } + if (v === 0) { + $s = -1; return "go1"; + } + $s = -1; return "go1." + strconv.Itoa(v); + /* */ } return; } var $f = {$blk: GoVersion$1, $c: true, $r, _r, v, x, $s};return $f; }; - $ptrType(resolver).prototype.trace = function trace$1(format, args) { - var {_r, _r$1, args, format, r, $s, $r, $c} = $restore(this, {format, args}); + $pkg.GoVersion = GoVersion; + minVersion = function minVersion$1(z, sign) { + var {$24r, $24r$1, $24r$2, _arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _tuple, _tuple$1, err, n, op, op$1, sign, v, z, z$1, z$2, z$3, z$4, z$5, $s, $r, $c} = $restore(this, {z, sign}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - r = this; - _r = r.sprintf(format, args); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = fmt.Println(new sliceType$2([new $String(strings.Repeat(". ", r.depth) + _r)])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - $s = -1; return; - /* */ } return; } var $f = {$blk: trace$1, $c: true, $r, _r, _r$1, args, format, r, $s};return $f; + _ref = z; + /* */ if ($assertType(_ref, ptrType, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$1, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$2, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$3, true)[1]) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ($assertType(_ref, ptrType, true)[1]) { */ case 1: + z$2 = _ref.$val; + op = andVersion; + if (sign < 0) { + op = orVersion; + } + _r = minVersion(z$2.X, sign); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg = _r; + _r$1 = minVersion(z$2.Y, sign); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg$1 = _r$1; + _r$2 = op(_arg, _arg$1); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 10; case 10: return $24r; + /* } else if ($assertType(_ref, ptrType$1, true)[1]) { */ case 2: + z$3 = _ref.$val; + op$1 = orVersion; + if (sign < 0) { + op$1 = andVersion; + } + _r$3 = minVersion(z$3.X, sign); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _arg$2 = _r$3; + _r$4 = minVersion(z$3.Y, sign); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _arg$3 = _r$4; + _r$5 = op$1(_arg$2, _arg$3); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $24r$1 = _r$5; + $s = 14; case 14: return $24r$1; + /* } else if ($assertType(_ref, ptrType$2, true)[1]) { */ case 3: + z$4 = _ref.$val; + _r$6 = minVersion(z$4.X, -sign); /* */ $s = 15; case 15: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $24r$2 = _r$6; + $s = 16; case 16: return $24r$2; + /* } else if ($assertType(_ref, ptrType$3, true)[1]) { */ case 4: + z$5 = _ref.$val; + if (sign < 0) { + $s = -1; return -1; + } + if (z$5.Tag === "go1") { + $s = -1; return 0; + } + _tuple = stringsCut(z$5.Tag, "go1."); + v = _tuple[1]; + _tuple$1 = strconv.Atoi(v); + n = _tuple$1[0]; + err = _tuple$1[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return -1; + } + $s = -1; return n; + /* } else { */ case 5: + z$1 = _ref; + $s = -1; return -1; + /* } */ case 6: + $s = -1; return 0; + /* */ } return; } var $f = {$blk: minVersion$1, $c: true, $r, $24r, $24r$1, $24r$2, _arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _tuple, _tuple$1, err, n, op, op$1, sign, v, z, z$1, z$2, z$3, z$4, z$5, $s};return $f; }; - $ptrType(resolver).prototype.sprintf = function sprintf(format, args) { - var {$24r, _i, _r, _r$1, _ref, _ref$1, arg, arg$1, args, format, i, r, x, $s, $r, $c} = $restore(this, {format, args}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - r = this; - _ref = args; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _ref$1 = arg; - /* */ if ($assertType(_ref$1, token.Pos, true)[1]) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if ($assertType(_ref$1, token.Pos, true)[1]) { */ case 3: - arg$1 = _ref$1.$val; - _r = r.handle.Position(arg$1); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - ((i < 0 || i >= args.$length) ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + i] = (x = _r, new x.constructor.elem(x))); - /* } */ case 4: - _i++; - $s = 1; continue; - case 2: - _r$1 = fmt.Sprintf(format, args); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 7; case 7: return $24r; - /* */ } return; } var $f = {$blk: sprintf, $c: true, $r, $24r, _i, _r, _r$1, _ref, _ref$1, arg, arg$1, args, format, i, r, x, $s};return $f; + stringsCut = function stringsCut$1(s, sep) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, after, before, found, i, s, sep; + before = ""; + after = ""; + found = false; + i = strings.Index(s, sep); + if (i >= 0) { + _tmp = $substring(s, 0, i); + _tmp$1 = $substring(s, (i + sep.length >> 0)); + _tmp$2 = true; + before = _tmp; + after = _tmp$1; + found = _tmp$2; + return [before, after, found]; + } + _tmp$3 = s; + _tmp$4 = ""; + _tmp$5 = false; + before = _tmp$3; + after = _tmp$4; + found = _tmp$5; + return [before, after, found]; }; - $ptrType(resolver).prototype.openScope = function openScope(pos) { - var {pos, r, x, $s, $r, $c} = $restore(this, {pos}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - r = this; - r.depth = r.depth + (1) >> 0; - if (r.depth > 1000) { - $panic((x = new bailout.ptr(pos, "exceeded max scope depth during object resolution"), new x.constructor.elem(x))); + andVersion = function andVersion$1(x, y) { + var x, y; + if (x > y) { + return x; } - /* */ if (false) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (false) { */ case 1: - $r = r.trace("opening scope @%v", new sliceType$2([new token.Pos(pos)])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - r.topScope = ast.NewScope(r.topScope); - $s = -1; return; - /* */ } return; } var $f = {$blk: openScope, $c: true, $r, pos, r, x, $s};return $f; + return y; }; - $ptrType(resolver).prototype.closeScope = function closeScope() { - var {r, $s, $r, $c} = $restore(this, {}); + orVersion = function orVersion$1(x, y) { + var x, y; + if (x < y) { + return x; + } + return y; + }; + $ptrType(TagExpr).prototype.Eval = function Eval(ok) { + var {$24r, _r, ok, x, $s, $r, $c} = $restore(this, {ok}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - r = this; - r.depth = r.depth - (1) >> 0; - /* */ if (false) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (false) { */ case 1: - $r = r.trace("closing scope", sliceType$2.nil); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - r.topScope = r.topScope.Outer; - $s = -1; return; - /* */ } return; } var $f = {$blk: closeScope, $c: true, $r, r, $s};return $f; + x = this; + _r = ok(x.Tag); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Eval, $c: true, $r, $24r, _r, ok, x, $s};return $f; }; - $ptrType(resolver).prototype.openLabelScope = function openLabelScope() { - var r; - r = this; - r.labelScope = ast.NewScope(r.labelScope); - r.targetStack = $append(r.targetStack, sliceType.nil); + $ptrType(TagExpr).prototype.String = function String() { + var x; + x = this; + return x.Tag; }; - $ptrType(resolver).prototype.closeLabelScope = function closeLabelScope() { - var {_arg, _arg$1, _i, _r, _ref, ident, n, r, scope, x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - r = this; - n = r.targetStack.$length - 1 >> 0; - scope = r.labelScope; - _ref = (x = r.targetStack, ((n < 0 || n >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + n])); - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - ident = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - ident.Obj = scope.Lookup(ident.Name); - /* */ if (ident.Obj === ptrType$3.nil && !(r.declErr === $throwNilPointerError)) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (ident.Obj === ptrType$3.nil && !(r.declErr === $throwNilPointerError)) { */ case 3: - _arg = ident.Pos(); - _r = fmt.Sprintf("label %s undefined", new sliceType$2([new $String(ident.Name)])); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _arg$1 = _r; - $r = r.declErr(_arg, _arg$1); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 4: - _i++; - $s = 1; continue; - case 2: - r.targetStack = $subslice(r.targetStack, 0, n); - r.labelScope = r.labelScope.Outer; - $s = -1; return; - /* */ } return; } var $f = {$blk: closeLabelScope, $c: true, $r, _arg, _arg$1, _i, _r, _ref, ident, n, r, scope, x, $s};return $f; + tag = function tag$1(tag$2) { + var tag$2; + return new TagExpr.ptr(tag$2); }; - $ptrType(resolver).prototype.declare = function declare(decl, data, scope, kind, idents) { - var {_arg, _arg$1, _i, _r, _r$1, _r$2, _ref, _tuple, alt, data, decl, ident, idents, kind, obj, ok, pos, prevDecl, r, scope, $s, $r, $c} = $restore(this, {decl, data, scope, kind, idents}); + $ptrType(NotExpr).prototype.Eval = function Eval$1(ok) { + var {$24r, _r, ok, x, $s, $r, $c} = $restore(this, {ok}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - r = this; - _ref = idents; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - ident = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - /* */ if (!(ident.Obj === ptrType$3.nil)) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!(ident.Obj === ptrType$3.nil)) { */ case 3: - _r = fmt.Sprintf("%v: identifier %s already declared or resolved", new sliceType$2([new token.Pos(ident.Pos()), new $String(ident.Name)])); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $panic(new $String(_r)); - /* } */ case 4: - obj = ast.NewObj(kind, ident.Name); - obj.Decl = decl; - obj.Data = data; - _tuple = $assertType(decl, ptrType$2, true); - ok = _tuple[1]; - if (!ok) { - ident.Obj = obj; - } - /* */ if (!(ident.Name === "_")) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (!(ident.Name === "_")) { */ case 6: - /* */ if (false) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (false) { */ case 8: - $r = r.trace("declaring %s@%v", new sliceType$2([new $String(ident.Name), new token.Pos(ident.Pos())])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 9: - alt = scope.Insert(obj); - /* */ if (!(alt === ptrType$3.nil) && !(r.declErr === $throwNilPointerError)) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (!(alt === ptrType$3.nil) && !(r.declErr === $throwNilPointerError)) { */ case 11: - prevDecl = ""; - pos = alt.Pos(); - /* */ if (new token.Pos(pos).IsValid()) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (new token.Pos(pos).IsValid()) { */ case 13: - _r$1 = r.sprintf("\n\tprevious declaration at %v", new sliceType$2([new token.Pos(pos)])); /* */ $s = 15; case 15: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - prevDecl = _r$1; - /* } */ case 14: - _arg = ident.Pos(); - _r$2 = fmt.Sprintf("%s redeclared in this block%s", new sliceType$2([new $String(ident.Name), new $String(prevDecl)])); /* */ $s = 16; case 16: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _arg$1 = _r$2; - $r = r.declErr(_arg, _arg$1); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 12: - /* } */ case 7: - _i++; - $s = 1; continue; - case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: declare, $c: true, $r, _arg, _arg$1, _i, _r, _r$1, _r$2, _ref, _tuple, alt, data, decl, ident, idents, kind, obj, ok, pos, prevDecl, r, scope, $s};return $f; + x = this; + _r = x.X.Eval(ok); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = !_r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Eval$1, $c: true, $r, $24r, _r, ok, x, $s};return $f; }; - $ptrType(resolver).prototype.shortVarDecl = function shortVarDecl(decl) { - var {_i, _r, _ref, _tuple, alt, decl, ident, isIdent, n, obj, r, x, x$1, $s, $r, $c} = $restore(this, {decl}); + $ptrType(NotExpr).prototype.String = function String$1() { + var {_r, _ref, s, x, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - r = this; - n = 0; - _ref = decl.Lhs; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _tuple = $assertType(x, ptrType$2, true); - ident = _tuple[0]; - isIdent = _tuple[1]; - /* */ if (isIdent) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (isIdent) { */ case 3: - assert(ident.Obj === ptrType$3.nil, "identifier already declared or resolved"); - obj = ast.NewObj(4, ident.Name); - obj.Decl = decl; - ident.Obj = obj; - /* */ if (!(ident.Name === "_")) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (!(ident.Name === "_")) { */ case 5: - /* */ if (false) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (false) { */ case 7: - $r = r.trace("declaring %s@%v", new sliceType$2([new $String(ident.Name), new token.Pos(ident.Pos())])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 8: - alt = r.topScope.Insert(obj); - if (!(alt === ptrType$3.nil)) { - ident.Obj = alt; - } else { - n = n + (1) >> 0; - } - /* } */ case 6: - /* } */ case 4: - _i++; - $s = 1; continue; - case 2: - /* */ if ((n === 0) && !(r.declErr === $throwNilPointerError)) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if ((n === 0) && !(r.declErr === $throwNilPointerError)) { */ case 10: - _r = (x$1 = decl.Lhs, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])).Pos(); /* */ $s = 12; case 12: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $r = r.declErr(_r, "no new variables on left side of :="); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 11: - $s = -1; return; - /* */ } return; } var $f = {$blk: shortVarDecl, $c: true, $r, _i, _r, _ref, _tuple, alt, decl, ident, isIdent, n, obj, r, x, x$1, $s};return $f; + x = this; + _r = x.X.String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + s = _r; + _ref = x.X; + if ($assertType(_ref, ptrType, true)[1] || $assertType(_ref, ptrType$1, true)[1]) { + s = "(" + s + ")"; + } + $s = -1; return "!" + s; + /* */ } return; } var $f = {$blk: String$1, $c: true, $r, _r, _ref, s, x, $s};return $f; }; - $ptrType(resolver).prototype.resolve = function resolve(ident, collectUnresolved) { - var {_r, _tuple, collectUnresolved, ident, obj, ok, r, s, $s, $r, $c} = $restore(this, {ident, collectUnresolved}); + not = function not$1(x) { + var x; + return new NotExpr.ptr(x); + }; + $ptrType(AndExpr).prototype.Eval = function Eval$2(ok) { + var {_r, _r$1, ok, x, xok, yok, $s, $r, $c} = $restore(this, {ok}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - r = this; - /* */ if (!(ident.Obj === ptrType$3.nil)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(ident.Obj === ptrType$3.nil)) { */ case 1: - _r = r.sprintf("%v: identifier %s already declared or resolved", new sliceType$2([new token.Pos(ident.Pos()), new $String(ident.Name)])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $panic(new $String(_r)); - /* } */ case 2: - if (ident.Name === "_") { - $s = -1; return; + x = this; + _r = x.X.Eval(ok); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + xok = _r; + _r$1 = x.Y.Eval(ok); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + yok = _r$1; + $s = -1; return xok && yok; + /* */ } return; } var $f = {$blk: Eval$2, $c: true, $r, _r, _r$1, ok, x, xok, yok, $s};return $f; + }; + $ptrType(AndExpr).prototype.String = function String$2() { + var {$24r, _r, _r$1, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r = andArg(x.X); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = andArg(x.Y); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r + " && " + _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: String$2, $c: true, $r, $24r, _r, _r$1, x, $s};return $f; + }; + andArg = function andArg$1(x) { + var {_r, _tuple, ok, s, x, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = x.String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + s = _r; + _tuple = $assertType(x, ptrType$1, true); + ok = _tuple[1]; + if (ok) { + s = "(" + s + ")"; } - s = r.topScope; - /* while (true) { */ case 4: - /* if (!(!(s === ptrType.nil))) { break; } */ if(!(!(s === ptrType.nil))) { $s = 5; continue; } - obj = s.Lookup(ident.Name); - /* */ if (!(obj === ptrType$3.nil)) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (!(obj === ptrType$3.nil)) { */ case 6: - /* */ if (false) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (false) { */ case 8: - $r = r.trace("resolved %v:%s to %v", new sliceType$2([new token.Pos(ident.Pos()), new $String(ident.Name), obj])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 9: - assert(!(obj.Name === ""), "obj with no name"); - _tuple = $assertType(obj.Decl, ptrType$2, true); - ok = _tuple[1]; - if (!ok) { - ident.Obj = obj; - } - $s = -1; return; - /* } */ case 7: - s = s.Outer; - $s = 4; continue; - case 5: - if (collectUnresolved) { - ident.Obj = unresolved; - r.unresolved = $append(r.unresolved, ident); + $s = -1; return s; + /* */ } return; } var $f = {$blk: andArg$1, $c: true, $r, _r, _tuple, ok, s, x, $s};return $f; + }; + and = function and$1(x, y) { + var x, y; + return new AndExpr.ptr(x, y); + }; + $ptrType(OrExpr).prototype.Eval = function Eval$3(ok) { + var {_r, _r$1, ok, x, xok, yok, $s, $r, $c} = $restore(this, {ok}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r = x.X.Eval(ok); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + xok = _r; + _r$1 = x.Y.Eval(ok); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + yok = _r$1; + $s = -1; return xok || yok; + /* */ } return; } var $f = {$blk: Eval$3, $c: true, $r, _r, _r$1, ok, x, xok, yok, $s};return $f; + }; + $ptrType(OrExpr).prototype.String = function String$3() { + var {$24r, _r, _r$1, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + x = this; + _r = orArg(x.X); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = orArg(x.Y); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r + " || " + _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: String$3, $c: true, $r, $24r, _r, _r$1, x, $s};return $f; + }; + orArg = function orArg$1(x) { + var {_r, _tuple, ok, s, x, $s, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = x.String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + s = _r; + _tuple = $assertType(x, ptrType, true); + ok = _tuple[1]; + if (ok) { + s = "(" + s + ")"; } - $s = -1; return; - /* */ } return; } var $f = {$blk: resolve, $c: true, $r, _r, _tuple, collectUnresolved, ident, obj, ok, r, s, $s};return $f; + $s = -1; return s; + /* */ } return; } var $f = {$blk: orArg$1, $c: true, $r, _r, _tuple, ok, s, x, $s};return $f; }; - $ptrType(resolver).prototype.walkExprs = function walkExprs(list) { - var {_i, _ref, list, node, r, $s, $r, $c} = $restore(this, {list}); + or = function or$1(x, y) { + var x, y; + return new OrExpr.ptr(x, y); + }; + $ptrType(SyntaxError).prototype.Error = function Error() { + var e; + e = this; + return e.Err; + }; + Parse = function Parse$1(line) { + var {$24r, _r, _r$1, _r$2, _tuple, _tuple$1, line, ok, ok$1, text, text$1, $s, $r, $c} = $restore(this, {line}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - r = this; - _ref = list; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - node = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - $r = ast.Walk(r, node); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 1; continue; - case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: walkExprs, $c: true, $r, _i, _ref, list, node, r, $s};return $f; + _r = splitGoBuild(line); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + text = _tuple[0]; + ok = _tuple[1]; + if (ok) { + $s = -1; return parseExpr(text); + } + _r$1 = splitPlusBuild(line); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + text$1 = _tuple$1[0]; + ok$1 = _tuple$1[1]; + /* */ if (ok$1) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (ok$1) { */ case 3: + _r$2 = parsePlusBuildExpr(text$1); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = [_r$2, $ifaceNil]; + $s = 6; case 6: return $24r; + /* } */ case 4: + $s = -1; return [$ifaceNil, errNotConstraint]; + /* */ } return; } var $f = {$blk: Parse$1, $c: true, $r, $24r, _r, _r$1, _r$2, _tuple, _tuple$1, line, ok, ok$1, text, text$1, $s};return $f; }; - $ptrType(resolver).prototype.walkLHS = function walkLHS(list) { - var {_i, _ref, _tuple, expr, expr$1, list, ok, r, $s, $r, $c} = $restore(this, {list}); + $pkg.Parse = Parse; + IsGoBuild = function IsGoBuild$1(line) { + var {_r, _tuple, line, ok, $s, $r, $c} = $restore(this, {line}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - r = this; - _ref = list; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - expr = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - expr$1 = unparen(expr); - _tuple = $assertType(expr$1, ptrType$2, true); - ok = _tuple[1]; - /* */ if (!ok && !($interfaceIsEqual(expr$1, $ifaceNil))) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!ok && !($interfaceIsEqual(expr$1, $ifaceNil))) { */ case 3: - $r = ast.Walk(r, expr$1); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 4: - _i++; - $s = 1; continue; - case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: walkLHS, $c: true, $r, _i, _ref, _tuple, expr, expr$1, list, ok, r, $s};return $f; + _r = splitGoBuild(line); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + ok = _tuple[1]; + $s = -1; return ok; + /* */ } return; } var $f = {$blk: IsGoBuild$1, $c: true, $r, _r, _tuple, line, ok, $s};return $f; }; - $ptrType(resolver).prototype.walkStmts = function walkStmts(list) { - var {_i, _ref, list, r, stmt, $s, $r, $c} = $restore(this, {list}); + $pkg.IsGoBuild = IsGoBuild; + splitGoBuild = function splitGoBuild$1(line) { + var {_r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, expr, line, ok, trim, $s, $r, $c} = $restore(this, {line}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - r = this; - _ref = list; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - stmt = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - $r = ast.Walk(r, stmt); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 1; continue; - case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: walkStmts, $c: true, $r, _i, _ref, list, r, stmt, $s};return $f; + expr = ""; + ok = false; + if (line.length > 0 && (line.charCodeAt((line.length - 1 >> 0)) === 10)) { + line = $substring(line, 0, (line.length - 1 >> 0)); + } + if (strings.Contains(line, "\n")) { + _tmp = ""; + _tmp$1 = false; + expr = _tmp; + ok = _tmp$1; + $s = -1; return [expr, ok]; + } + if (!strings.HasPrefix(line, "//go:build")) { + _tmp$2 = ""; + _tmp$3 = false; + expr = _tmp$2; + ok = _tmp$3; + $s = -1; return [expr, ok]; + } + _r = strings.TrimSpace(line); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + line = _r; + line = $substring(line, 10); + _r$1 = strings.TrimSpace(line); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + trim = _r$1; + if ((line.length === trim.length) && !(line === "")) { + _tmp$4 = ""; + _tmp$5 = false; + expr = _tmp$4; + ok = _tmp$5; + $s = -1; return [expr, ok]; + } + _tmp$6 = trim; + _tmp$7 = true; + expr = _tmp$6; + ok = _tmp$7; + $s = -1; return [expr, ok]; + /* */ } return; } var $f = {$blk: splitGoBuild$1, $c: true, $r, _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, expr, line, ok, trim, $s};return $f; }; - $ptrType(resolver).prototype.Visit = function Visit(node) { - var {$24r, $24r$1, _1, _arg, _arg$1, _i, _i$1, _i$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _ref$2, _ref$3, _tuple, _tuple$1, as, depth, e, i, ident, kind, kv, lhs, n, n$1, n$10, n$11, n$12, n$13, n$14, n$15, n$16, n$17, n$18, n$19, n$2, n$20, n$21, n$3, n$4, n$5, n$6, n$7, n$8, n$9, node, r, spec, spec$1, spec$2, spec$3, x, x$1, $s, $deferred, $r, $c} = $restore(this, {node}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - r = this; - /* */ if (false && !($interfaceIsEqual(node, $ifaceNil))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (false && !($interfaceIsEqual(node, $ifaceNil))) { */ case 1: - _arg = node; - _r = node.Pos(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _arg$1 = new token.Pos(_r); - $r = r.trace("node %T@%v", new sliceType$2([_arg, _arg$1])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - _ref = node; - /* */ if ($assertType(_ref, ptrType$2, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType$5, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref, ptrType$6, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref, ptrType$7, true)[1]) { $s = 9; continue; } - /* */ if ($assertType(_ref, ptrType$8, true)[1]) { $s = 10; continue; } - /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 11; continue; } - /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 12; continue; } - /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 13; continue; } - /* */ if ($assertType(_ref, ptrType$12, true)[1]) { $s = 14; continue; } - /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 15; continue; } - /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 16; continue; } - /* */ if ($assertType(_ref, ptrType$15, true)[1]) { $s = 17; continue; } - /* */ if ($assertType(_ref, ptrType$16, true)[1]) { $s = 18; continue; } - /* */ if ($assertType(_ref, ptrType$17, true)[1]) { $s = 19; continue; } - /* */ if ($assertType(_ref, ptrType$18, true)[1]) { $s = 20; continue; } - /* */ if ($assertType(_ref, ptrType$19, true)[1]) { $s = 21; continue; } - /* */ if ($assertType(_ref, ptrType$20, true)[1]) { $s = 22; continue; } - /* */ if ($assertType(_ref, ptrType$21, true)[1]) { $s = 23; continue; } - /* */ if ($assertType(_ref, ptrType$22, true)[1]) { $s = 24; continue; } - /* */ if ($assertType(_ref, ptrType$23, true)[1]) { $s = 25; continue; } - /* */ $s = 26; continue; - /* if ($assertType(_ref, ptrType$2, true)[1]) { */ case 5: - n = _ref.$val; - $r = r.resolve(n, true); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$4, true)[1]) { */ case 6: - n$1 = _ref.$val; - _r$1 = n$1.Pos(); /* */ $s = 29; case 29: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $r = r.openScope(_r$1); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(r, "closeScope"), []]); - $r = r.walkFuncType(n$1.Type); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = r.walkBody(n$1.Body); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$5, true)[1]) { */ case 7: - n$2 = _ref.$val; - $r = ast.Walk(r, n$2.X); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$6, true)[1]) { */ case 8: - n$3 = _ref.$val; - $r = r.openScope(n$3.Pos()); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(r, "closeScope"), []]); - $r = r.walkFieldList(n$3.Fields, 4); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$7, true)[1]) { */ case 9: - n$4 = _ref.$val; - _r$2 = n$4.Pos(); /* */ $s = 36; case 36: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $r = r.openScope(_r$2); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(r, "closeScope"), []]); - $r = r.walkFuncType(n$4); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$8, true)[1]) { */ case 10: - n$5 = _ref.$val; - /* */ if (!($interfaceIsEqual(n$5.Type, $ifaceNil))) { $s = 39; continue; } - /* */ $s = 40; continue; - /* if (!($interfaceIsEqual(n$5.Type, $ifaceNil))) { */ case 39: - $r = ast.Walk(r, n$5.Type); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 40: - _ref$1 = n$5.Elts; - _i = 0; - /* while (true) { */ case 42: - /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 43; continue; } - e = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); - _tuple = $assertType(e, ptrType$24, true); - kv = _tuple[0]; - /* */ if (!(kv === ptrType$24.nil)) { $s = 44; continue; } - /* */ $s = 45; continue; - /* if (!(kv === ptrType$24.nil)) { */ case 44: - _tuple$1 = $assertType(kv.Key, ptrType$2, true); - ident = _tuple$1[0]; - /* */ if (!(ident === ptrType$2.nil)) { $s = 47; continue; } - /* */ $s = 48; continue; - /* if (!(ident === ptrType$2.nil)) { */ case 47: - $r = r.resolve(ident, false); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 49; continue; - /* } else { */ case 48: - $r = ast.Walk(r, kv.Key); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 49: - $r = ast.Walk(r, kv.Value); /* */ $s = 52; case 52: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 46; continue; - /* } else { */ case 45: - $r = ast.Walk(r, e); /* */ $s = 53; case 53: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 46: - _i++; - $s = 42; continue; - case 43: - $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$9, true)[1]) { */ case 11: - n$6 = _ref.$val; - $r = r.openScope(n$6.Pos()); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(r, "closeScope"), []]); - $r = r.walkFieldList(n$6.Methods, 5); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 12: - n$7 = _ref.$val; - $r = r.declare(n$7, $ifaceNil, r.labelScope, 6, new sliceType([n$7.Label])); /* */ $s = 56; case 56: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = ast.Walk(r, n$7.Stmt); /* */ $s = 57; case 57: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 13: - n$8 = _ref.$val; - $r = r.walkExprs(n$8.Rhs); /* */ $s = 58; case 58: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (n$8.Tok === 47) { $s = 59; continue; } - /* */ $s = 60; continue; - /* if (n$8.Tok === 47) { */ case 59: - $r = r.shortVarDecl(n$8); /* */ $s = 62; case 62: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 61; continue; - /* } else { */ case 60: - $r = r.walkExprs(n$8.Lhs); /* */ $s = 63; case 63: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 61: - $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$12, true)[1]) { */ case 14: - n$9 = _ref.$val; - if (!((n$9.Tok === 69)) && !(n$9.Label === ptrType$2.nil)) { - depth = r.targetStack.$length - 1 >> 0; - (x$1 = r.targetStack, ((depth < 0 || depth >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + depth] = $append((x = r.targetStack, ((depth < 0 || depth >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + depth])), n$9.Label))); - } - $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 15: - n$10 = _ref.$val; - $r = r.openScope(n$10.Pos()); /* */ $s = 64; case 64: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(r, "closeScope"), []]); - $r = r.walkStmts(n$10.List); /* */ $s = 65; case 65: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 16: - n$11 = _ref.$val; - $r = r.openScope(n$11.Pos()); /* */ $s = 66; case 66: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(r, "closeScope"), []]); - /* */ if (!($interfaceIsEqual(n$11.Init, $ifaceNil))) { $s = 67; continue; } - /* */ $s = 68; continue; - /* if (!($interfaceIsEqual(n$11.Init, $ifaceNil))) { */ case 67: - $r = ast.Walk(r, n$11.Init); /* */ $s = 69; case 69: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 68: - $r = ast.Walk(r, n$11.Cond); /* */ $s = 70; case 70: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = ast.Walk(r, n$11.Body); /* */ $s = 71; case 71: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!($interfaceIsEqual(n$11.Else, $ifaceNil))) { $s = 72; continue; } - /* */ $s = 73; continue; - /* if (!($interfaceIsEqual(n$11.Else, $ifaceNil))) { */ case 72: - $r = ast.Walk(r, n$11.Else); /* */ $s = 74; case 74: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 73: - $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$15, true)[1]) { */ case 17: - n$12 = _ref.$val; - $r = r.walkExprs(n$12.List); /* */ $s = 75; case 75: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = r.openScope(n$12.Pos()); /* */ $s = 76; case 76: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(r, "closeScope"), []]); - $r = r.walkStmts(n$12.Body); /* */ $s = 77; case 77: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$16, true)[1]) { */ case 18: - n$13 = _ref.$val; - $r = r.openScope(n$13.Pos()); /* */ $s = 78; case 78: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(r, "closeScope"), []]); - /* */ if (!($interfaceIsEqual(n$13.Init, $ifaceNil))) { $s = 79; continue; } - /* */ $s = 80; continue; - /* if (!($interfaceIsEqual(n$13.Init, $ifaceNil))) { */ case 79: - $r = ast.Walk(r, n$13.Init); /* */ $s = 81; case 81: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 80: - /* */ if (!($interfaceIsEqual(n$13.Tag, $ifaceNil))) { $s = 82; continue; } - /* */ $s = 83; continue; - /* if (!($interfaceIsEqual(n$13.Tag, $ifaceNil))) { */ case 82: - /* */ if (!($interfaceIsEqual(n$13.Init, $ifaceNil))) { $s = 84; continue; } - /* */ $s = 85; continue; - /* if (!($interfaceIsEqual(n$13.Init, $ifaceNil))) { */ case 84: - _r$3 = n$13.Tag.Pos(); /* */ $s = 86; case 86: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $r = r.openScope(_r$3); /* */ $s = 87; case 87: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(r, "closeScope"), []]); - /* } */ case 85: - $r = ast.Walk(r, n$13.Tag); /* */ $s = 88; case 88: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 83: - /* */ if (!(n$13.Body === ptrType$13.nil)) { $s = 89; continue; } - /* */ $s = 90; continue; - /* if (!(n$13.Body === ptrType$13.nil)) { */ case 89: - $r = r.walkStmts(n$13.Body.List); /* */ $s = 91; case 91: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 90: - $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$17, true)[1]) { */ case 19: - n$14 = _ref.$val; - /* */ if (!($interfaceIsEqual(n$14.Init, $ifaceNil))) { $s = 92; continue; } - /* */ $s = 93; continue; - /* if (!($interfaceIsEqual(n$14.Init, $ifaceNil))) { */ case 92: - $r = r.openScope(n$14.Pos()); /* */ $s = 94; case 94: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(r, "closeScope"), []]); - $r = ast.Walk(r, n$14.Init); /* */ $s = 95; case 95: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 93: - _r$4 = n$14.Assign.Pos(); /* */ $s = 96; case 96: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $r = r.openScope(_r$4); /* */ $s = 97; case 97: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(r, "closeScope"), []]); - $r = ast.Walk(r, n$14.Assign); /* */ $s = 98; case 98: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!(n$14.Body === ptrType$13.nil)) { $s = 99; continue; } - /* */ $s = 100; continue; - /* if (!(n$14.Body === ptrType$13.nil)) { */ case 99: - $r = r.walkStmts(n$14.Body.List); /* */ $s = 101; case 101: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 100: - $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$18, true)[1]) { */ case 20: - n$15 = _ref.$val; - $r = r.openScope(n$15.Pos()); /* */ $s = 102; case 102: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(r, "closeScope"), []]); - /* */ if (!($interfaceIsEqual(n$15.Comm, $ifaceNil))) { $s = 103; continue; } - /* */ $s = 104; continue; - /* if (!($interfaceIsEqual(n$15.Comm, $ifaceNil))) { */ case 103: - $r = ast.Walk(r, n$15.Comm); /* */ $s = 105; case 105: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 104: - $r = r.walkStmts(n$15.Body); /* */ $s = 106; case 106: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$19, true)[1]) { */ case 21: - n$16 = _ref.$val; - /* */ if (!(n$16.Body === ptrType$13.nil)) { $s = 107; continue; } - /* */ $s = 108; continue; - /* if (!(n$16.Body === ptrType$13.nil)) { */ case 107: - $r = r.walkStmts(n$16.Body.List); /* */ $s = 109; case 109: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 108: - $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$20, true)[1]) { */ case 22: - n$17 = _ref.$val; - $r = r.openScope(n$17.Pos()); /* */ $s = 110; case 110: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(r, "closeScope"), []]); - /* */ if (!($interfaceIsEqual(n$17.Init, $ifaceNil))) { $s = 111; continue; } - /* */ $s = 112; continue; - /* if (!($interfaceIsEqual(n$17.Init, $ifaceNil))) { */ case 111: - $r = ast.Walk(r, n$17.Init); /* */ $s = 113; case 113: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 112: - /* */ if (!($interfaceIsEqual(n$17.Cond, $ifaceNil))) { $s = 114; continue; } - /* */ $s = 115; continue; - /* if (!($interfaceIsEqual(n$17.Cond, $ifaceNil))) { */ case 114: - $r = ast.Walk(r, n$17.Cond); /* */ $s = 116; case 116: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 115: - /* */ if (!($interfaceIsEqual(n$17.Post, $ifaceNil))) { $s = 117; continue; } - /* */ $s = 118; continue; - /* if (!($interfaceIsEqual(n$17.Post, $ifaceNil))) { */ case 117: - $r = ast.Walk(r, n$17.Post); /* */ $s = 119; case 119: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 118: - $r = ast.Walk(r, n$17.Body); /* */ $s = 120; case 120: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$21, true)[1]) { */ case 23: - n$18 = _ref.$val; - $r = r.openScope(n$18.Pos()); /* */ $s = 121; case 121: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(r, "closeScope"), []]); - $r = ast.Walk(r, n$18.X); /* */ $s = 122; case 122: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - lhs = sliceType$3.nil; - if (!($interfaceIsEqual(n$18.Key, $ifaceNil))) { - lhs = $append(lhs, n$18.Key); - } - if (!($interfaceIsEqual(n$18.Value, $ifaceNil))) { - lhs = $append(lhs, n$18.Value); - } - /* */ if (lhs.$length > 0) { $s = 123; continue; } - /* */ $s = 124; continue; - /* if (lhs.$length > 0) { */ case 123: - /* */ if (n$18.Tok === 47) { $s = 125; continue; } - /* */ $s = 126; continue; - /* if (n$18.Tok === 47) { */ case 125: - as = new ast.AssignStmt.ptr(lhs, n$18.TokPos, 47, new sliceType$3([new ast.UnaryExpr.ptr(0, 79, n$18.X)])); - $r = r.walkLHS(lhs); /* */ $s = 128; case 128: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = r.shortVarDecl(as); /* */ $s = 129; case 129: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 127; continue; - /* } else { */ case 126: - $r = r.walkExprs(lhs); /* */ $s = 130; case 130: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 127: - /* } */ case 124: - $r = ast.Walk(r, n$18.Body); /* */ $s = 131; case 131: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$22, true)[1]) { */ case 24: - n$19 = _ref.$val; - _1 = n$19.Tok; - /* */ if ((_1 === (64)) || (_1 === (85))) { $s = 133; continue; } - /* */ if (_1 === (84)) { $s = 134; continue; } - /* */ $s = 135; continue; - /* if ((_1 === (64)) || (_1 === (85))) { */ case 133: - _ref$2 = n$19.Specs; - _i$1 = 0; - /* while (true) { */ case 136: - /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 137; continue; } - i = _i$1; - spec = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); - spec$1 = $assertType(spec, ptrType$25); - kind = 2; - if (n$19.Tok === 85) { - kind = 4; - } - $r = r.walkExprs(spec$1.Values); /* */ $s = 138; case 138: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!($interfaceIsEqual(spec$1.Type, $ifaceNil))) { $s = 139; continue; } - /* */ $s = 140; continue; - /* if (!($interfaceIsEqual(spec$1.Type, $ifaceNil))) { */ case 139: - $r = ast.Walk(r, spec$1.Type); /* */ $s = 141; case 141: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 140: - $r = r.declare(spec$1, new $Int(i), r.topScope, kind, spec$1.Names); /* */ $s = 142; case 142: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$1++; - $s = 136; continue; - case 137: - $s = 135; continue; - /* } else if (_1 === (84)) { */ case 134: - _ref$3 = n$19.Specs; - _i$2 = 0; - /* while (true) { */ case 143: - /* if (!(_i$2 < _ref$3.$length)) { break; } */ if(!(_i$2 < _ref$3.$length)) { $s = 144; continue; } - spec$2 = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]); - spec$3 = $assertType(spec$2, ptrType$26); - $r = r.declare(spec$3, $ifaceNil, r.topScope, 3, new sliceType([spec$3.Name])); /* */ $s = 145; case 145: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!(spec$3.TypeParams === ptrType$27.nil)) { $s = 146; continue; } - /* */ $s = 147; continue; - /* if (!(spec$3.TypeParams === ptrType$27.nil)) { */ case 146: - $r = r.openScope(spec$3.Pos()); /* */ $s = 148; case 148: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(r, "closeScope"), []]); - $r = r.walkTParams(spec$3.TypeParams); /* */ $s = 149; case 149: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 147: - $r = ast.Walk(r, spec$3.Type); /* */ $s = 150; case 150: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$2++; - $s = 143; continue; - case 144: - /* } */ case 135: - case 132: - $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$23, true)[1]) { */ case 25: - n$20 = _ref.$val; - _r$5 = n$20.Pos(); /* */ $s = 151; case 151: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - $r = r.openScope(_r$5); /* */ $s = 152; case 152: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(r, "closeScope"), []]); - $r = r.walkRecv(n$20.Recv); /* */ $s = 153; case 153: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!(n$20.Type.TypeParams === ptrType$27.nil)) { $s = 154; continue; } - /* */ $s = 155; continue; - /* if (!(n$20.Type.TypeParams === ptrType$27.nil)) { */ case 154: - $r = r.walkTParams(n$20.Type.TypeParams); /* */ $s = 156; case 156: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 155: - $r = r.resolveList(n$20.Type.Params); /* */ $s = 157; case 157: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = r.resolveList(n$20.Type.Results); /* */ $s = 158; case 158: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = r.declareList(n$20.Recv, 4); /* */ $s = 159; case 159: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = r.declareList(n$20.Type.Params, 4); /* */ $s = 160; case 160: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = r.declareList(n$20.Type.Results, 4); /* */ $s = 161; case 161: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = r.walkBody(n$20.Body); /* */ $s = 162; case 162: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (n$20.Recv === ptrType$27.nil && !(n$20.Name.Name === "init")) { $s = 163; continue; } - /* */ $s = 164; continue; - /* if (n$20.Recv === ptrType$27.nil && !(n$20.Name.Name === "init")) { */ case 163: - $r = r.declare(n$20, $ifaceNil, r.pkgScope, 5, new sliceType([n$20.Name])); /* */ $s = 165; case 165: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 164: - $s = 27; continue; - /* } else { */ case 26: - n$21 = _ref; - $24r = r; - $s = 166; case 166: return $24r; - /* } */ case 27: - $24r$1 = $ifaceNil; - $s = 167; case 167: return $24r$1; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Visit, $c: true, $r, $24r, $24r$1, _1, _arg, _arg$1, _i, _i$1, _i$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _ref$2, _ref$3, _tuple, _tuple$1, as, depth, e, i, ident, kind, kv, lhs, n, n$1, n$10, n$11, n$12, n$13, n$14, n$15, n$16, n$17, n$18, n$19, n$2, n$20, n$21, n$3, n$4, n$5, n$6, n$7, n$8, n$9, node, r, spec, spec$1, spec$2, spec$3, x, x$1, $s, $deferred};return $f; } } + parseExpr = function parseExpr$1(text) { + var _tmp, _tmp$1, err, p, text, x, $deferred; + /* */ var $err = null; try { $deferred = []; $curGoroutine.deferStack.push($deferred); + x = $ifaceNil; + err = $ifaceNil; + $deferred.push([(function parseExpr·func1() { + var _tuple, e, e$1, ok; + e = $recover(); + if (!($interfaceIsEqual(e, $ifaceNil))) { + _tuple = $assertType(e, ptrType$4, true); + e$1 = _tuple[0]; + ok = _tuple[1]; + if (ok) { + err = e$1; + return; + } + $panic(e); + } + }), []]); + p = new exprParser.ptr(text, 0, "", false, 0); + x = p.or(); + if (!(p.tok === "")) { + $panic(new SyntaxError.ptr(p.pos, "unexpected token " + p.tok)); + } + _tmp = x; + _tmp$1 = $ifaceNil; + x = _tmp; + err = _tmp$1; + return [x, err]; + /* */ } catch(err) { $err = err; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [x, err]; } } }; - $ptrType(resolver).prototype.walkFuncType = function walkFuncType(typ) { - var {r, typ, $s, $r, $c} = $restore(this, {typ}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - r = this; - $r = r.resolveList(typ.Params); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = r.resolveList(typ.Results); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = r.declareList(typ.Params, 4); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = r.declareList(typ.Results, 4); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: walkFuncType, $c: true, $r, r, typ, $s};return $f; + $ptrType(exprParser).prototype.or = function or$2() { + var p, x; + p = this; + x = p.and(); + while (true) { + if (!(p.tok === "||")) { break; } + x = or(x, p.and()); + } + return x; }; - $ptrType(resolver).prototype.resolveList = function resolveList(list) { - var {_i, _ref, f, list, r, $s, $r, $c} = $restore(this, {list}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - r = this; - if (list === ptrType$27.nil) { - $s = -1; return; + $ptrType(exprParser).prototype.and = function and$2() { + var p, x; + p = this; + x = p.not(); + while (true) { + if (!(p.tok === "&&")) { break; } + x = and(x, p.not()); } - _ref = list.List; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - /* */ if (!($interfaceIsEqual(f.Type, $ifaceNil))) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!($interfaceIsEqual(f.Type, $ifaceNil))) { */ case 3: - $r = ast.Walk(r, f.Type); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 4: - _i++; - $s = 1; continue; - case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: resolveList, $c: true, $r, _i, _ref, f, list, r, $s};return $f; + return x; }; - $ptrType(resolver).prototype.declareList = function declareList(list, kind) { - var {_i, _ref, f, kind, list, r, $s, $r, $c} = $restore(this, {list, kind}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - r = this; - if (list === ptrType$27.nil) { - $s = -1; return; + $ptrType(exprParser).prototype.not = function not$2() { + var p; + p = this; + p.lex(); + if (p.tok === "!") { + p.lex(); + if (p.tok === "!") { + $panic(new SyntaxError.ptr(p.pos, "double negation not allowed")); + } + return not(p.atom()); } - _ref = list.List; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - $r = r.declare(f, $ifaceNil, r.topScope, kind, f.Names); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 1; continue; - case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: declareList, $c: true, $r, _i, _ref, f, kind, list, r, $s};return $f; + return p.atom(); }; - $ptrType(resolver).prototype.walkRecv = function walkRecv(recv) { - var {_i, _i$1, _i$2, _ref, _ref$1, _ref$2, _ref$3, _tuple, _tuple$1, declareExprs, expr, expr$1, f, id, ok, ptr, r, recv, resolveExprs, typ, typ$1, typ$2, typ$3, x, $s, $r, $c} = $restore(this, {recv}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - r = this; - if (recv === ptrType$27.nil || (recv.List.$length === 0)) { - $s = -1; return; + $ptrType(exprParser).prototype.atom = function atom() { + var p, pos, tok, x, $deferred; + /* */ var $err = null; try { $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + if (p.tok === "(") { + pos = p.pos; + $deferred.push([(function exprParser·atom·func1() { + var _tuple, e, e$1, ok; + e = $recover(); + if (!($interfaceIsEqual(e, $ifaceNil))) { + _tuple = $assertType(e, ptrType$4, true); + e$1 = _tuple[0]; + ok = _tuple[1]; + if (ok && e$1.Err === "unexpected end of expression") { + e$1.Err = "missing close paren"; + } + $panic(e); + } + }), []]); + x = p.or(); + if (!(p.tok === ")")) { + $panic(new SyntaxError.ptr(pos, "missing close paren")); + } + p.lex(); + return x; } - typ = (x = recv.List, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).Type; - _tuple = $assertType(typ, ptrType$28, true); - ptr = _tuple[0]; - ok = _tuple[1]; - if (ok) { - typ = ptr.X; + if (!p.isTag) { + if (p.tok === "") { + $panic(new SyntaxError.ptr(p.pos, "unexpected end of expression")); + } + $panic(new SyntaxError.ptr(p.pos, "unexpected token " + p.tok)); } - declareExprs = sliceType$3.nil; - resolveExprs = sliceType$3.nil; - _ref = typ; - if ($assertType(_ref, ptrType$29, true)[1]) { - typ$1 = _ref.$val; - declareExprs = new sliceType$3([typ$1.Index]); - resolveExprs = $append(resolveExprs, typ$1.X); - } else if ($assertType(_ref, ptrType$30, true)[1]) { - typ$2 = _ref.$val; - declareExprs = typ$2.Indices; - resolveExprs = $append(resolveExprs, typ$2.X); - } else { - typ$3 = _ref; - resolveExprs = $append(resolveExprs, typ$3); + tok = p.tok; + p.lex(); + return tag(tok); + /* */ } catch(err) { $err = err; return $ifaceNil; } finally { $callDeferred($deferred, $err); } + }; + $ptrType(exprParser).prototype.lex = function lex() { + var _1, _i, _ref, _rune, _tuple, c, c$1, i, p, tag$2; + p = this; + p.isTag = false; + while (true) { + if (!(p.i < p.s.length && ((p.s.charCodeAt(p.i) === 32) || (p.s.charCodeAt(p.i) === 9)))) { break; } + p.i = p.i + (1) >> 0; } - _ref$1 = declareExprs; + if (p.i >= p.s.length) { + p.tok = ""; + p.pos = p.i; + return; + } + _1 = p.s.charCodeAt(p.i); + if ((_1 === (40)) || (_1 === (41)) || (_1 === (33))) { + p.pos = p.i; + p.i = p.i + (1) >> 0; + p.tok = $substring(p.s, p.pos, p.i); + return; + } else if ((_1 === (38)) || (_1 === (124))) { + if ((p.i + 1 >> 0) >= p.s.length || !((p.s.charCodeAt((p.i + 1 >> 0)) === p.s.charCodeAt(p.i)))) { + $panic(new SyntaxError.ptr(p.i, "invalid syntax at " + ($encodeRune(((p.s.charCodeAt(p.i) >> 0)))))); + } + p.pos = p.i; + p.i = p.i + (2) >> 0; + p.tok = $substring(p.s, p.pos, p.i); + return; + } + tag$2 = $substring(p.s, p.i); + _ref = tag$2; _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 2; continue; } - expr = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); - _tuple$1 = $assertType(expr, ptrType$2, true); - id = _tuple$1[0]; - /* */ if (!(id === ptrType$2.nil)) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!(id === ptrType$2.nil)) { */ case 3: - $r = r.declare(expr, $ifaceNil, r.topScope, 3, new sliceType([id])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 5; continue; - /* } else { */ case 4: - resolveExprs = $append(resolveExprs, expr); - /* } */ case 5: - _i++; - $s = 1; continue; - case 2: - _ref$2 = resolveExprs; - _i$1 = 0; - /* while (true) { */ case 7: - /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 8; continue; } - expr$1 = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); - /* */ if (!($interfaceIsEqual(expr$1, $ifaceNil))) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (!($interfaceIsEqual(expr$1, $ifaceNil))) { */ case 9: - $r = ast.Walk(r, expr$1); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 10: - _i$1++; - $s = 7; continue; - case 8: - _ref$3 = $subslice(recv.List, 1); - _i$2 = 0; - /* while (true) { */ case 12: - /* if (!(_i$2 < _ref$3.$length)) { break; } */ if(!(_i$2 < _ref$3.$length)) { $s = 13; continue; } - f = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]); - /* */ if (!($interfaceIsEqual(f.Type, $ifaceNil))) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (!($interfaceIsEqual(f.Type, $ifaceNil))) { */ case 14: - $r = ast.Walk(r, f.Type); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 15: - _i$2++; - $s = 12; continue; - case 13: - $s = -1; return; - /* */ } return; } var $f = {$blk: walkRecv, $c: true, $r, _i, _i$1, _i$2, _ref, _ref$1, _ref$2, _ref$3, _tuple, _tuple$1, declareExprs, expr, expr$1, f, id, ok, ptr, r, recv, resolveExprs, typ, typ$1, typ$2, typ$3, x, $s};return $f; - }; - $ptrType(resolver).prototype.walkFieldList = function walkFieldList(list, kind) { - var {kind, list, r, $s, $r, $c} = $restore(this, {list, kind}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - r = this; - if (list === ptrType$27.nil) { - $s = -1; return; + while (true) { + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + i = _i; + c = _rune[0]; + if (!unicode.IsLetter(c) && !unicode.IsDigit(c) && !((c === 95)) && !((c === 46))) { + tag$2 = $substring(tag$2, 0, i); + break; + } + _i += _rune[1]; } - $r = r.resolveList(list); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = r.declareList(list, kind); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: walkFieldList, $c: true, $r, kind, list, r, $s};return $f; + if (tag$2 === "") { + _tuple = utf8.DecodeRuneInString($substring(p.s, p.i)); + c$1 = _tuple[0]; + $panic(new SyntaxError.ptr(p.i, "invalid syntax at " + ($encodeRune(c$1)))); + } + p.pos = p.i; + p.i = p.i + (tag$2.length) >> 0; + p.tok = $substring(p.s, p.pos, p.i); + p.isTag = true; }; - $ptrType(resolver).prototype.walkTParams = function walkTParams(list) { - var {list, r, $s, $r, $c} = $restore(this, {list}); + IsPlusBuild = function IsPlusBuild$1(line) { + var {_r, _tuple, line, ok, $s, $r, $c} = $restore(this, {line}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - r = this; - $r = r.declareList(list, 3); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = r.resolveList(list); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: walkTParams, $c: true, $r, list, r, $s};return $f; + _r = splitPlusBuild(line); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + ok = _tuple[1]; + $s = -1; return ok; + /* */ } return; } var $f = {$blk: IsPlusBuild$1, $c: true, $r, _r, _tuple, line, ok, $s};return $f; }; - $ptrType(resolver).prototype.walkBody = function walkBody(body) { - var {body, r, $s, $deferred, $r, $c} = $restore(this, {body}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - r = this; - if (body === ptrType$13.nil) { - $s = -1; return; - } - r.openLabelScope(); - $deferred.push([$methodVal(r, "closeLabelScope"), []]); - $r = r.walkStmts(body.List); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: walkBody, $c: true, $r, body, r, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.init = function init(fset, filename, src, mode) { - var {_r, eh, filename, fset, m, mode, p, src, $s, $r, $c} = $restore(this, {fset, filename, src, mode}); + $pkg.IsPlusBuild = IsPlusBuild; + splitPlusBuild = function splitPlusBuild$1(line) { + var {_r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, expr, line, ok, trim, $s, $r, $c} = $restore(this, {line}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = [p]; - p[0] = this; - _r = fset.AddFile(filename, -1, src.$length); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - p[0].file = _r; - m = 0; - if (!((((mode & 4) >>> 0) === 0))) { - m = 1; + expr = ""; + ok = false; + if (line.length > 0 && (line.charCodeAt((line.length - 1 >> 0)) === 10)) { + line = $substring(line, 0, (line.length - 1 >> 0)); } - eh = (function(p) { return function parser·init·func1(pos, msg) { - var msg, pos; - (p[0].$ptr_errors || (p[0].$ptr_errors = new ptrType$31(function() { return this.$target.errors; }, function($v) { this.$target.errors = $v; }, p[0]))).Add($clone(pos, token.Position), msg); - }; })(p); - $r = p[0].scanner.Init(p[0].file, src, eh, m); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - p[0].mode = mode; - p[0].trace = !((((mode & 8) >>> 0) === 0)); - $r = p[0].next(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: init, $c: true, $r, _r, eh, filename, fset, m, mode, p, src, $s};return $f; - }; - $ptrType(parser).prototype.printTrace = function printTrace(a) { - var {_r, _r$1, _r$2, _r$3, _r$4, a, i, p, pos, $s, $r, $c} = $restore(this, {a}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - _r = p.file.Position(p.pos); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - pos = $clone(_r, token.Position); - _r$1 = fmt.Printf("%5d:%3d: ", new sliceType$2([new $Int(pos.Line), new $Int(pos.Column)])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - i = $imul(2, p.indent); - /* while (true) { */ case 3: - /* if (!(i > 64)) { break; } */ if(!(i > 64)) { $s = 4; continue; } - _r$2 = fmt.Print(new sliceType$2([new $String(". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ")])); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - i = i - (64) >> 0; - $s = 3; continue; - case 4: - _r$3 = fmt.Print(new sliceType$2([new $String($substring(". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", 0, i))])); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$3; - _r$4 = fmt.Println(a); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$4; - $s = -1; return; - /* */ } return; } var $f = {$blk: printTrace, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, a, i, p, pos, $s};return $f; - }; - trace = function trace$2(p, msg) { - var {msg, p, $s, $r, $c} = $restore(this, {p, msg}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = p.printTrace(new sliceType$2([new $String(msg), new $String("(")])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - p.indent = p.indent + (1) >> 0; - $s = -1; return p; - /* */ } return; } var $f = {$blk: trace$2, $c: true, $r, msg, p, $s};return $f; - }; - un = function un$1(p) { - var {p, $s, $r, $c} = $restore(this, {p}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p.indent = p.indent - (1) >> 0; - $r = p.printTrace(new sliceType$2([new $String(")")])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: un$1, $c: true, $r, p, $s};return $f; - }; - incNestLev = function incNestLev$1(p) { - var {p, x, $s, $r, $c} = $restore(this, {p}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p.nestLev = p.nestLev + (1) >> 0; - /* */ if (p.nestLev > 100000) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.nestLev > 100000) { */ case 1: - $r = p.error(p.pos, "exceeded max nesting depth"); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $panic((x = new bailout.ptr(0, ""), new x.constructor.elem(x))); - /* } */ case 2: - $s = -1; return p; - /* */ } return; } var $f = {$blk: incNestLev$1, $c: true, $r, p, x, $s};return $f; - }; - decNestLev = function decNestLev$1(p) { - var p; - p.nestLev = p.nestLev - (1) >> 0; - }; - $ptrType(parser).prototype.next0 = function next0() { - var {_r, _tuple, p, s, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - /* */ if (p.trace && new token.Pos(p.pos).IsValid()) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace && new token.Pos(p.pos).IsValid()) { */ case 1: - s = new token.Token(p.tok).String(); - /* */ if (new token.Token(p.tok).IsLiteral()) { $s = 4; continue; } - /* */ if ((new token.Token(p.tok).IsOperator()) || (new token.Token(p.tok).IsKeyword())) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (new token.Token(p.tok).IsLiteral()) { */ case 4: - $r = p.printTrace(new sliceType$2([new $String(s), new $String(p.lit)])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 7; continue; - /* } else if ((new token.Token(p.tok).IsOperator()) || (new token.Token(p.tok).IsKeyword())) { */ case 5: - $r = p.printTrace(new sliceType$2([new $String("\"" + s + "\"")])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 7; continue; - /* } else { */ case 6: - $r = p.printTrace(new sliceType$2([new $String(s)])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 7: - case 3: - /* } */ case 2: - _r = p.scanner.Scan(); /* */ $s = 11; case 11: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - p.pos = _tuple[0]; - p.tok = _tuple[1]; - p.lit = _tuple[2]; - $s = -1; return; - /* */ } return; } var $f = {$blk: next0, $c: true, $r, _r, _tuple, p, s, $s};return $f; - }; - $ptrType(parser).prototype.consumeComment = function consumeComment() { - var {_r, comment, endline, i, p, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - comment = ptrType$32.nil; - endline = 0; - p = this; - _r = p.file.Line(p.pos); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - endline = _r; - if (p.lit.charCodeAt(1) === 42) { - i = 0; - while (true) { - if (!(i < p.lit.length)) { break; } - if (p.lit.charCodeAt(i) === 10) { - endline = endline + (1) >> 0; - } - i = i + (1) >> 0; - } + if (strings.Contains(line, "\n")) { + _tmp = ""; + _tmp$1 = false; + expr = _tmp; + ok = _tmp$1; + $s = -1; return [expr, ok]; } - comment = new ast.Comment.ptr(p.pos, p.lit); - $r = p.next0(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return [comment, endline]; - /* */ } return; } var $f = {$blk: consumeComment, $c: true, $r, _r, comment, endline, i, p, $s};return $f; + if (!strings.HasPrefix(line, "//")) { + _tmp$2 = ""; + _tmp$3 = false; + expr = _tmp$2; + ok = _tmp$3; + $s = -1; return [expr, ok]; + } + line = $substring(line, 2); + _r = strings.TrimSpace(line); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + line = _r; + if (!strings.HasPrefix(line, "+build")) { + _tmp$4 = ""; + _tmp$5 = false; + expr = _tmp$4; + ok = _tmp$5; + $s = -1; return [expr, ok]; + } + line = $substring(line, 6); + _r$1 = strings.TrimSpace(line); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + trim = _r$1; + if ((line.length === trim.length) && !(line === "")) { + _tmp$6 = ""; + _tmp$7 = false; + expr = _tmp$6; + ok = _tmp$7; + $s = -1; return [expr, ok]; + } + _tmp$8 = trim; + _tmp$9 = true; + expr = _tmp$8; + ok = _tmp$9; + $s = -1; return [expr, ok]; + /* */ } return; } var $f = {$blk: splitPlusBuild$1, $c: true, $r, _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, expr, line, ok, trim, $s};return $f; }; - $ptrType(parser).prototype.consumeCommentGroup = function consumeCommentGroup(n) { - var {_r, _r$1, _r$2, _tuple, _v, comment, comments, endline, list, n, p, $s, $r, $c} = $restore(this, {n}); + parsePlusBuildExpr = function parsePlusBuildExpr$1(text) { + var {_i, _i$1, _r, _ref, _ref$1, clause, lit, neg, text, x, y, z, $s, $r, $c} = $restore(this, {text}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - comments = ptrType$33.nil; - endline = 0; - p = this; - list = sliceType$4.nil; - _r = p.file.Line(p.pos); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - endline = _r; + x = $ifaceNil; + _r = strings.Fields(text); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _ref = _r; + _i = 0; /* while (true) { */ case 2: - if (!(p.tok === 2)) { _v = false; $s = 4; continue s; } - _r$1 = p.file.Line(p.pos); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = _r$1 <= (endline + n >> 0); case 4: - /* if (!(_v)) { break; } */ if(!(_v)) { $s = 3; continue; } - comment = ptrType$32.nil; - _r$2 = p.consumeComment(); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple = _r$2; - comment = _tuple[0]; - endline = _tuple[1]; - list = $append(list, comment); - $s = 2; continue; - case 3: - comments = new ast.CommentGroup.ptr(list); - p.comments = $append(p.comments, comments); - $s = -1; return [comments, endline]; - /* */ } return; } var $f = {$blk: consumeCommentGroup, $c: true, $r, _r, _r$1, _r$2, _tuple, _v, comment, comments, endline, list, n, p, $s};return $f; - }; - $ptrType(parser).prototype.next = function next() { - var {_r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, comment, endline, p, prev, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - p.leadComment = ptrType$33.nil; - p.lineComment = ptrType$33.nil; - prev = p.pos; - $r = p.next0(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (p.tok === 2) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (p.tok === 2) { */ case 2: - comment = ptrType$33.nil; - endline = 0; - _r = p.file.Line(p.pos); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = p.file.Line(prev); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r === _r$1) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_r === _r$1) { */ case 4: - _r$2 = p.consumeCommentGroup(0); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple = _r$2; - comment = _tuple[0]; - endline = _tuple[1]; - _r$3 = p.file.Line(p.pos); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (!((_r$3 === endline)) || (p.tok === 57) || (p.tok === 1)) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (!((_r$3 === endline)) || (p.tok === 57) || (p.tok === 1)) { */ case 9: - p.lineComment = comment; - /* } */ case 10: - /* } */ case 5: - endline = -1; - /* while (true) { */ case 12: - /* if (!(p.tok === 2)) { break; } */ if(!(p.tok === 2)) { $s = 13; continue; } - _r$4 = p.consumeCommentGroup(1); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _tuple$1 = _r$4; - comment = _tuple$1[0]; - endline = _tuple$1[1]; - $s = 12; continue; - case 13: - _r$5 = p.file.Line(p.pos); /* */ $s = 17; case 17: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* */ if ((endline + 1 >> 0) === _r$5) { $s = 15; continue; } - /* */ $s = 16; continue; - /* if ((endline + 1 >> 0) === _r$5) { */ case 15: - p.leadComment = comment; - /* } */ case 16: - /* } */ case 3: - $s = -1; return; - /* */ } return; } var $f = {$blk: next, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, comment, endline, p, prev, $s};return $f; - }; - $ptrType(parser).prototype.error = function error(pos, msg) { - var {_r, _r$1, epos, msg, n, p, pos, x, x$1, x$2, $s, $deferred, $r, $c} = $restore(this, {pos, msg}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "error: " + msg); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - _r$1 = p.file.Position(pos); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - epos = $clone(_r$1, token.Position); - /* */ if (((p.mode & 32) >>> 0) === 0) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (((p.mode & 32) >>> 0) === 0) { */ case 5: - n = p.errors.$length; - /* */ if (n > 0 && ((x = p.errors, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Pos.Line === epos.Line)) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (n > 0 && ((x = p.errors, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Pos.Line === epos.Line)) { */ case 7: - $s = 9; case 9: return; - /* } */ case 8: - if (n > 10) { - $panic((x$2 = new bailout.ptr(0, ""), new x$2.constructor.elem(x$2))); + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } + clause = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + y = $ifaceNil; + _ref$1 = strings.Split(clause, ","); + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + lit = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + z = $ifaceNil; + neg = false; + if (strings.HasPrefix(lit, "!!") || lit === "!") { + z = tag("ignore"); + } else { + if (strings.HasPrefix(lit, "!")) { + neg = true; + lit = $substring(lit, 1); + } + if (isValidTag(lit)) { + z = tag(lit); + } else { + z = tag("ignore"); + } + if (neg) { + z = not(z); + } + } + if ($interfaceIsEqual(y, $ifaceNil)) { + y = z; + } else { + y = and(y, z); + } + _i$1++; } - /* } */ case 6: - (p.$ptr_errors || (p.$ptr_errors = new ptrType$31(function() { return this.$target.errors; }, function($v) { this.$target.errors = $v; }, p))).Add($clone(epos, token.Position), msg); - $s = -1; return; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: error, $c: true, $r, _r, _r$1, epos, msg, n, p, pos, x, x$1, x$2, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.errorExpected = function errorExpected(pos, msg) { - var {msg, p, pos, $s, $r, $c} = $restore(this, {pos, msg}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - msg = "expected " + msg; - if (pos === p.pos) { - if ((p.tok === 57) && p.lit === "\n") { - msg = msg + (", found newline"); - } else if (new token.Token(p.tok).IsLiteral()) { - msg = msg + (", found " + p.lit); + if ($interfaceIsEqual(x, $ifaceNil)) { + x = y; } else { - msg = msg + (", found '" + new token.Token(p.tok).String() + "'"); + x = or(x, y); } + _i++; + $s = 2; continue; + case 3: + if ($interfaceIsEqual(x, $ifaceNil)) { + x = tag("ignore"); } - $r = p.error(pos, msg); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: errorExpected, $c: true, $r, msg, p, pos, $s};return $f; - }; - $ptrType(parser).prototype.expect = function expect(tok) { - var {p, pos, tok, $s, $r, $c} = $restore(this, {tok}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - pos = p.pos; - /* */ if (!((p.tok === tok))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!((p.tok === tok))) { */ case 1: - $r = p.errorExpected(pos, "'" + new token.Token(tok).String() + "'"); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - $r = p.next(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return pos; - /* */ } return; } var $f = {$blk: expect, $c: true, $r, p, pos, tok, $s};return $f; - }; - $ptrType(parser).prototype.expect2 = function expect2(tok) { - var {p, pos, tok, $s, $r, $c} = $restore(this, {tok}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - pos = 0; - p = this; - /* */ if (p.tok === tok) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.tok === tok) { */ case 1: - pos = p.pos; - $s = 3; continue; - /* } else { */ case 2: - $r = p.errorExpected(p.pos, "'" + new token.Token(tok).String() + "'"); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 3: - $r = p.next(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return pos; - /* */ } return; } var $f = {$blk: expect2, $c: true, $r, p, pos, tok, $s};return $f; - }; - $ptrType(parser).prototype.expectClosing = function expectClosing(tok, context) { - var {$24r, _r, context, p, tok, $s, $r, $c} = $restore(this, {tok, context}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - /* */ if (!((p.tok === tok)) && (p.tok === 57) && p.lit === "\n") { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!((p.tok === tok)) && (p.tok === 57) && p.lit === "\n") { */ case 1: - $r = p.error(p.pos, "missing ',' before newline in " + context); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.next(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - _r = p.expect(tok); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 6; case 6: return $24r; - /* */ } return; } var $f = {$blk: expectClosing, $c: true, $r, $24r, _r, context, p, tok, $s};return $f; - }; - $ptrType(parser).prototype.expectSemi = function expectSemi() { - var {_1, comment, p, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - comment = ptrType$33.nil; - p = this; - /* */ if (!((p.tok === 54)) && !((p.tok === 56))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!((p.tok === 54)) && !((p.tok === 56))) { */ case 1: - _1 = p.tok; - /* */ if (_1 === (52)) { $s = 4; continue; } - /* */ if (_1 === (57)) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (_1 === (52)) { */ case 4: - $r = p.errorExpected(p.pos, "';'"); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (p.lit === ";") { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (p.lit === ";") { */ case 9: - $r = p.next(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - comment = p.lineComment; - $s = 11; continue; - /* } else { */ case 10: - comment = p.lineComment; - $r = p.next(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 11: - comment = comment; - $s = -1; return comment; - /* } else if (_1 === (57)) { */ case 5: - /* */ if (p.lit === ";") { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (p.lit === ";") { */ case 14: - $r = p.next(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - comment = p.lineComment; - $s = 16; continue; - /* } else { */ case 15: - comment = p.lineComment; - $r = p.next(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 16: - comment = comment; - $s = -1; return comment; - /* } else { */ case 6: - $r = p.errorExpected(p.pos, "';'"); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.advance(stmtStart); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 7: - case 3: - /* } */ case 2: - comment = ptrType$33.nil; - $s = -1; return comment; - /* */ } return; } var $f = {$blk: expectSemi, $c: true, $r, _1, comment, p, $s};return $f; + $s = -1; return x; + /* */ } return; } var $f = {$blk: parsePlusBuildExpr$1, $c: true, $r, _i, _i$1, _r, _ref, _ref$1, clause, lit, neg, text, x, y, z, $s};return $f; }; - $ptrType(parser).prototype.atComma = function atComma(context, follow) { - var {context, follow, msg, p, $s, $r, $c} = $restore(this, {context, follow}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - if (p.tok === 52) { - $s = -1; return true; + isValidTag = function isValidTag$1(word) { + var _i, _ref, _rune, c, word; + if (word === "") { + return false; } - /* */ if (!((p.tok === follow))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!((p.tok === follow))) { */ case 1: - msg = "missing ','"; - if ((p.tok === 57) && p.lit === "\n") { - msg = msg + (" before newline"); + _ref = word; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + c = _rune[0]; + if (!unicode.IsLetter(c) && !unicode.IsDigit(c) && !((c === 95)) && !((c === 46))) { + return false; } - $r = p.error(p.pos, msg + " in " + context); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return true; - /* } */ case 2: - $s = -1; return false; - /* */ } return; } var $f = {$blk: atComma, $c: true, $r, context, follow, msg, p, $s};return $f; - }; - assert = function assert$1(cond, msg) { - var cond, msg; - if (!cond) { - $panic(new $String("go/parser internal error: " + msg)); + _i += _rune[1]; } + return true; }; - $ptrType(parser).prototype.advance = function advance(to) { - var {_entry, p, to, $s, $r, $c} = $restore(this, {to}); + PlusBuildLines = function PlusBuildLines$1(x) { + var {_i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _r, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, and$3, and$4, ands, clause, i, line, lines, lit, lit$1, lits, lits$1, maxOr, or$3, or$4, or$5, or$6, split, x, $s, $r, $c} = $restore(this, {x}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - /* while (true) { */ case 1: - /* if (!(!((p.tok === 1)))) { break; } */ if(!(!((p.tok === 1)))) { $s = 2; continue; } - if ((_entry = $mapIndex(to,token.Token.keyFor(p.tok)), _entry !== undefined ? _entry.v : false)) { - if ((p.pos === p.syncPos) && p.syncCnt < 10) { - p.syncCnt = p.syncCnt + (1) >> 0; - $s = -1; return; - } - if (p.pos > p.syncPos) { - p.syncPos = p.pos; - p.syncCnt = 0; - $s = -1; return; + x = pushNot(x, false); + split = sliceType$2.nil; + _ref = appendSplitAnd(sliceType.nil, x); + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + or$3 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + ands = sliceType$1.nil; + _ref$1 = appendSplitOr(sliceType.nil, or$3); + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + and$3 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + lits = sliceType.nil; + _ref$2 = appendSplitAnd(sliceType.nil, and$3); + _i$2 = 0; + while (true) { + if (!(_i$2 < _ref$2.$length)) { break; } + lit = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); + _ref$3 = lit; + if ($assertType(_ref$3, ptrType$3, true)[1] || $assertType(_ref$3, ptrType$2, true)[1]) { + lits = $append(lits, lit); + } else { + $s = -1; return [sliceType$3.nil, errComplex]; + } + _i$2++; } + ands = $append(ands, lits); + _i$1++; } - $r = p.next(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 1; continue; - case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: advance, $c: true, $r, _entry, p, to, $s};return $f; - }; - $ptrType(parser).prototype.safePos = function safePos(pos) { - var {_r, p, pos, res, $s, $deferred, $r, $c} = $restore(this, {pos}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = [p]; - res = [res]; - res[0] = 0; - p[0] = this; - $deferred.push([(function(p, res) { return function parser·safePos·func1() { - if (!($interfaceIsEqual($recover(), $ifaceNil))) { - res[0] = (((p[0].file.Base() + p[0].file.Size() >> 0) >> 0)); - } - }; })(p, res), []]); - _r = p[0].file.Offset(pos); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $unused(_r); - res[0] = pos; - $s = -1; return res[0]; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return res[0]; } if($curGoroutine.asleep) { var $f = {$blk: safePos, $c: true, $r, _r, p, pos, res, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseIdent = function parseIdent() { - var {_r, name, p, pos, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - pos = p.pos; - name = "_"; - /* */ if (p.tok === 4) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.tok === 4) { */ case 1: - name = p.lit; - $r = p.next(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + split = $append(split, ands); + _i++; + } + maxOr = 0; + _ref$4 = split; + _i$3 = 0; + while (true) { + if (!(_i$3 < _ref$4.$length)) { break; } + or$4 = ((_i$3 < 0 || _i$3 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$3]); + if (maxOr < or$4.$length) { + maxOr = or$4.$length; + } + _i$3++; + } + if (maxOr === 1) { + lits$1 = sliceType.nil; + _ref$5 = split; + _i$4 = 0; + while (true) { + if (!(_i$4 < _ref$5.$length)) { break; } + or$5 = ((_i$4 < 0 || _i$4 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$4]); + lits$1 = $appendSlice(lits$1, (0 >= or$5.$length ? ($throwRuntimeError("index out of range"), undefined) : or$5.$array[or$5.$offset + 0])); + _i$4++; + } + split = new sliceType$2([new sliceType$1([lits$1])]); + } + lines = sliceType$3.nil; + _ref$6 = split; + _i$5 = 0; + /* while (true) { */ case 1: + /* if (!(_i$5 < _ref$6.$length)) { break; } */ if(!(_i$5 < _ref$6.$length)) { $s = 2; continue; } + or$6 = ((_i$5 < 0 || _i$5 >= _ref$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$6.$array[_ref$6.$offset + _i$5]); + line = "// +build"; + _ref$7 = or$6; + _i$6 = 0; + /* while (true) { */ case 3: + /* if (!(_i$6 < _ref$7.$length)) { break; } */ if(!(_i$6 < _ref$7.$length)) { $s = 4; continue; } + and$4 = ((_i$6 < 0 || _i$6 >= _ref$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$7.$array[_ref$7.$offset + _i$6]); + clause = ""; + _ref$8 = and$4; + _i$7 = 0; + /* while (true) { */ case 5: + /* if (!(_i$7 < _ref$8.$length)) { break; } */ if(!(_i$7 < _ref$8.$length)) { $s = 6; continue; } + i = _i$7; + lit$1 = ((_i$7 < 0 || _i$7 >= _ref$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$8.$array[_ref$8.$offset + _i$7]); + if (i > 0) { + clause = clause + (","); + } + _r = lit$1.String(); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + clause = clause + (_r); + _i$7++; + $s = 5; continue; + case 6: + line = line + (" " + clause); + _i$6++; $s = 3; continue; - /* } else { */ case 2: - _r = p.expect(4); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r; - /* } */ case 3: - $s = -1; return new ast.Ident.ptr(pos, name, ptrType$3.nil); - /* */ } return; } var $f = {$blk: parseIdent, $c: true, $r, _r, name, p, pos, $s};return $f; + case 4: + lines = $append(lines, line); + _i$5++; + $s = 1; continue; + case 2: + $s = -1; return [lines, $ifaceNil]; + /* */ } return; } var $f = {$blk: PlusBuildLines$1, $c: true, $r, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _r, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, and$3, and$4, ands, clause, i, line, lines, lit, lit$1, lits, lits$1, maxOr, or$3, or$4, or$5, or$6, split, x, $s};return $f; }; - $ptrType(parser).prototype.parseIdentList = function parseIdentList() { - var {$24r, _r, _r$1, _r$2, list, p, $s, $deferred, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - list = sliceType.nil; - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "IdentList"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - _r$1 = p.parseIdent(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - list = $append(list, _r$1); - /* while (true) { */ case 5: - /* if (!(p.tok === 52)) { break; } */ if(!(p.tok === 52)) { $s = 6; continue; } - $r = p.next(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$2 = p.parseIdent(); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - list = $append(list, _r$2); - $s = 5; continue; - case 6: - $24r = list; - $s = 9; case 9: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return list; } if($curGoroutine.asleep) { var $f = {$blk: parseIdentList, $c: true, $r, $24r, _r, _r$1, _r$2, list, p, $s, $deferred};return $f; } } + $pkg.PlusBuildLines = PlusBuildLines; + pushNot = function pushNot$1(x, not$3) { + var _ref, _tuple, not$3, ok, x, x$1, x$2, x$3, x$4, x$5, x1, x1$1, y1, y1$1; + _ref = x; + if ($assertType(_ref, ptrType$2, true)[1]) { + x$2 = _ref.$val; + _tuple = $assertType(x$2.X, ptrType$3, true); + ok = _tuple[1]; + if (ok && !not$3) { + return x$2; + } + return pushNot(x$2.X, !not$3); + } else if ($assertType(_ref, ptrType$3, true)[1]) { + x$3 = _ref.$val; + if (not$3) { + return new NotExpr.ptr(x$3); + } + return x$3; + } else if ($assertType(_ref, ptrType, true)[1]) { + x$4 = _ref.$val; + x1 = pushNot(x$4.X, not$3); + y1 = pushNot(x$4.Y, not$3); + if (not$3) { + return or(x1, y1); + } + if ($interfaceIsEqual(x1, x$4.X) && $interfaceIsEqual(y1, x$4.Y)) { + return x$4; + } + return and(x1, y1); + } else if ($assertType(_ref, ptrType$1, true)[1]) { + x$5 = _ref.$val; + x1$1 = pushNot(x$5.X, not$3); + y1$1 = pushNot(x$5.Y, not$3); + if (not$3) { + return and(x1$1, y1$1); + } + if ($interfaceIsEqual(x1$1, x$5.X) && $interfaceIsEqual(y1$1, x$5.Y)) { + return x$5; + } + return or(x1$1, y1$1); + } else { + x$1 = _ref; + return x$1; + } }; - $ptrType(parser).prototype.parseExprList = function parseExprList() { - var {$24r, _r, _r$1, _r$2, list, p, $s, $deferred, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - list = sliceType$3.nil; - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "ExpressionList"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - _r$1 = p.parseExpr(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - list = $append(list, _r$1); + appendSplitAnd = function appendSplitAnd$1(list, x) { + var _tuple, list, ok, x, x$1; + _tuple = $assertType(x, ptrType, true); + x$1 = _tuple[0]; + ok = _tuple[1]; + if (ok) { + list = appendSplitAnd(list, x$1.X); + list = appendSplitAnd(list, x$1.Y); + return list; + } + return $append(list, x); + }; + appendSplitOr = function appendSplitOr$1(list, x) { + var _tuple, list, ok, x, x$1; + _tuple = $assertType(x, ptrType$1, true); + x$1 = _tuple[0]; + ok = _tuple[1]; + if (ok) { + list = appendSplitOr(list, x$1.X); + list = appendSplitOr(list, x$1.Y); + return list; + } + return $append(list, x); + }; + ptrType$3.methods = [{prop: "isExpr", name: "isExpr", pkg: "go/build/constraint", typ: $funcType([], [], false)}, {prop: "Eval", name: "Eval", pkg: "", typ: $funcType([funcType], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$2.methods = [{prop: "isExpr", name: "isExpr", pkg: "go/build/constraint", typ: $funcType([], [], false)}, {prop: "Eval", name: "Eval", pkg: "", typ: $funcType([funcType], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType.methods = [{prop: "isExpr", name: "isExpr", pkg: "go/build/constraint", typ: $funcType([], [], false)}, {prop: "Eval", name: "Eval", pkg: "", typ: $funcType([funcType], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$1.methods = [{prop: "isExpr", name: "isExpr", pkg: "go/build/constraint", typ: $funcType([], [], false)}, {prop: "Eval", name: "Eval", pkg: "", typ: $funcType([funcType], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$4.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$5.methods = [{prop: "or", name: "or", pkg: "go/build/constraint", typ: $funcType([], [Expr], false)}, {prop: "and", name: "and", pkg: "go/build/constraint", typ: $funcType([], [Expr], false)}, {prop: "not", name: "not", pkg: "go/build/constraint", typ: $funcType([], [Expr], false)}, {prop: "atom", name: "atom", pkg: "go/build/constraint", typ: $funcType([], [Expr], false)}, {prop: "lex", name: "lex", pkg: "go/build/constraint", typ: $funcType([], [], false)}]; + Expr.init([{prop: "Eval", name: "Eval", pkg: "", typ: $funcType([funcType], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "isExpr", name: "isExpr", pkg: "go/build/constraint", typ: $funcType([], [], false)}]); + TagExpr.init("", [{prop: "Tag", name: "Tag", embedded: false, exported: true, typ: $String, tag: ""}]); + NotExpr.init("", [{prop: "X", name: "X", embedded: false, exported: true, typ: Expr, tag: ""}]); + AndExpr.init("", [{prop: "X", name: "X", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Y", name: "Y", embedded: false, exported: true, typ: Expr, tag: ""}]); + OrExpr.init("", [{prop: "X", name: "X", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Y", name: "Y", embedded: false, exported: true, typ: Expr, tag: ""}]); + SyntaxError.init("", [{prop: "Offset", name: "Offset", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Err", name: "Err", embedded: false, exported: true, typ: $String, tag: ""}]); + exprParser.init("go/build/constraint", [{prop: "s", name: "s", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "i", name: "i", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "tok", name: "tok", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "isTag", name: "isTag", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: $Int, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unicode.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + errNotConstraint = errors.New("not a build constraint"); + errComplex = errors.New("expression too complex for // +build lines"); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["go/internal/typeparams"] = (function() { + var $pkg = {}, $init, ast, token, sliceType, PackIndexExpr; + ast = $packages["go/ast"]; + token = $packages["go/token"]; + $pkg.$finishSetup = function() { + sliceType = $sliceType(ast.Expr); + PackIndexExpr = function PackIndexExpr$1(x, lbrack, exprs, rbrack) { + var _1, exprs, lbrack, rbrack, x; + _1 = exprs.$length; + if (_1 === (0)) { + $panic(new $String("internal error: PackIndexExpr with empty expr slice")); + } else if (_1 === (1)) { + return new ast.IndexExpr.ptr(x, lbrack, (0 >= exprs.$length ? ($throwRuntimeError("index out of range"), undefined) : exprs.$array[exprs.$offset + 0]), rbrack); + } else { + return new ast.IndexListExpr.ptr(x, lbrack, exprs, rbrack); + } + }; + $pkg.PackIndexExpr = PackIndexExpr; + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = ast.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = token.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["go/parser"] = (function() { + var $pkg = {}, $init, bytes, errors, fmt, ast, constraint, typeparams, scanner, token, io, fs, os, filepath, strings, resolver, parser, bailout, field, parseSpecFunction, Mode, ptrType, ptrType$1, ptrType$2, sliceType, sliceType$1, ptrType$3, interfaceType, sliceType$2, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, ptrType$11, ptrType$12, ptrType$13, ptrType$14, ptrType$15, ptrType$16, ptrType$17, ptrType$18, ptrType$19, ptrType$20, ptrType$21, ptrType$22, ptrType$23, ptrType$24, sliceType$3, ptrType$25, ptrType$26, ptrType$27, ptrType$28, ptrType$29, ptrType$30, ptrType$31, ptrType$32, ptrType$33, ptrType$34, sliceType$4, ptrType$35, ptrType$36, ptrType$37, sliceType$5, ptrType$38, sliceType$6, ptrType$39, ptrType$40, ptrType$41, sliceType$7, arrayType, arrayType$1, ptrType$42, ptrType$43, ptrType$44, ptrType$45, ptrType$46, structType, ptrType$47, ptrType$48, ptrType$49, sliceType$8, ptrType$50, sliceType$9, ptrType$51, sliceType$10, sliceType$11, sliceType$12, ptrType$52, ptrType$53, ptrType$55, funcType, mapType, unresolved, stmtStart, declStart, exprEnd, resolveFile, trace, un, incNestLev, decNestLev, assert, unparen, isTypeSwitchAssert, extractName, isTypeElem, readSource, ParseFile; + bytes = $packages["bytes"]; + errors = $packages["errors"]; + fmt = $packages["fmt"]; + ast = $packages["go/ast"]; + constraint = $packages["go/build/constraint"]; + typeparams = $packages["go/internal/typeparams"]; + scanner = $packages["go/scanner"]; + token = $packages["go/token"]; + io = $packages["io"]; + fs = $packages["io/fs"]; + os = $packages["os"]; + filepath = $packages["path/filepath"]; + strings = $packages["strings"]; + resolver = $newType(0, $kindStruct, "parser.resolver", true, "go/parser", false, function(handle_, declErr_, pkgScope_, topScope_, unresolved_, depth_, labelScope_, targetStack_) { + this.$val = this; + if (arguments.length === 0) { + this.handle = ptrType$1.nil; + this.declErr = $throwNilPointerError; + this.pkgScope = ptrType.nil; + this.topScope = ptrType.nil; + this.unresolved = sliceType.nil; + this.depth = 0; + this.labelScope = ptrType.nil; + this.targetStack = sliceType$1.nil; + return; + } + this.handle = handle_; + this.declErr = declErr_; + this.pkgScope = pkgScope_; + this.topScope = topScope_; + this.unresolved = unresolved_; + this.depth = depth_; + this.labelScope = labelScope_; + this.targetStack = targetStack_; + }); + parser = $newType(0, $kindStruct, "parser.parser", true, "go/parser", false, function(file_, errors_, scanner_, mode_, trace_, indent_, comments_, leadComment_, lineComment_, top_, goVersion_, pos_, tok_, lit_, syncPos_, syncCnt_, exprLev_, inRhs_, imports_, nestLev_) { + this.$val = this; + if (arguments.length === 0) { + this.file = ptrType$1.nil; + this.errors = scanner.ErrorList.nil; + this.scanner = new scanner.Scanner.ptr(ptrType$1.nil, "", sliceType$12.nil, $throwNilPointerError, 0, 0, 0, 0, 0, false, 0, 0); + this.mode = 0; + this.trace = false; + this.indent = 0; + this.comments = sliceType$11.nil; + this.leadComment = ptrType$34.nil; + this.lineComment = ptrType$34.nil; + this.top = false; + this.goVersion = ""; + this.pos = 0; + this.tok = 0; + this.lit = ""; + this.syncPos = 0; + this.syncCnt = 0; + this.exprLev = 0; + this.inRhs = false; + this.imports = sliceType$10.nil; + this.nestLev = 0; + return; + } + this.file = file_; + this.errors = errors_; + this.scanner = scanner_; + this.mode = mode_; + this.trace = trace_; + this.indent = indent_; + this.comments = comments_; + this.leadComment = leadComment_; + this.lineComment = lineComment_; + this.top = top_; + this.goVersion = goVersion_; + this.pos = pos_; + this.tok = tok_; + this.lit = lit_; + this.syncPos = syncPos_; + this.syncCnt = syncCnt_; + this.exprLev = exprLev_; + this.inRhs = inRhs_; + this.imports = imports_; + this.nestLev = nestLev_; + }); + bailout = $newType(0, $kindStruct, "parser.bailout", true, "go/parser", false, function(pos_, msg_) { + this.$val = this; + if (arguments.length === 0) { + this.pos = 0; + this.msg = ""; + return; + } + this.pos = pos_; + this.msg = msg_; + }); + field = $newType(0, $kindStruct, "parser.field", true, "go/parser", false, function(name_, typ_) { + this.$val = this; + if (arguments.length === 0) { + this.name = ptrType$2.nil; + this.typ = $ifaceNil; + return; + } + this.name = name_; + this.typ = typ_; + }); + parseSpecFunction = $newType(4, $kindFunc, "parser.parseSpecFunction", true, "go/parser", false, null); + Mode = $newType(4, $kindUint, "parser.Mode", true, "go/parser", true, null); + $pkg.resolver = resolver; + $pkg.parser = parser; + $pkg.bailout = bailout; + $pkg.field = field; + $pkg.parseSpecFunction = parseSpecFunction; + $pkg.Mode = Mode; + $pkg.$finishSetup = function() { + ptrType = $ptrType(ast.Scope); + ptrType$1 = $ptrType(token.File); + ptrType$2 = $ptrType(ast.Ident); + sliceType = $sliceType(ptrType$2); + sliceType$1 = $sliceType(sliceType); + ptrType$3 = $ptrType(ast.Object); + interfaceType = $interfaceType([{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}]); + sliceType$2 = $sliceType($emptyInterface); + ptrType$4 = $ptrType(ast.FuncLit); + ptrType$5 = $ptrType(ast.SelectorExpr); + ptrType$6 = $ptrType(ast.StructType); + ptrType$7 = $ptrType(ast.FuncType); + ptrType$8 = $ptrType(ast.CompositeLit); + ptrType$9 = $ptrType(ast.InterfaceType); + ptrType$10 = $ptrType(ast.LabeledStmt); + ptrType$11 = $ptrType(ast.AssignStmt); + ptrType$12 = $ptrType(ast.BranchStmt); + ptrType$13 = $ptrType(ast.BlockStmt); + ptrType$14 = $ptrType(ast.IfStmt); + ptrType$15 = $ptrType(ast.CaseClause); + ptrType$16 = $ptrType(ast.SwitchStmt); + ptrType$17 = $ptrType(ast.TypeSwitchStmt); + ptrType$18 = $ptrType(ast.CommClause); + ptrType$19 = $ptrType(ast.SelectStmt); + ptrType$20 = $ptrType(ast.ForStmt); + ptrType$21 = $ptrType(ast.RangeStmt); + ptrType$22 = $ptrType(ast.GenDecl); + ptrType$23 = $ptrType(ast.FuncDecl); + ptrType$24 = $ptrType(ast.KeyValueExpr); + sliceType$3 = $sliceType(ast.Expr); + ptrType$25 = $ptrType(ast.ValueSpec); + ptrType$26 = $ptrType(ast.TypeSpec); + ptrType$27 = $ptrType(ast.FieldList); + ptrType$28 = $ptrType(ast.StarExpr); + ptrType$29 = $ptrType(ast.IndexExpr); + ptrType$30 = $ptrType(ast.IndexListExpr); + ptrType$31 = $ptrType(parser); + ptrType$32 = $ptrType(scanner.ErrorList); + ptrType$33 = $ptrType(ast.Comment); + ptrType$34 = $ptrType(ast.CommentGroup); + sliceType$4 = $sliceType(ptrType$33); + ptrType$35 = $ptrType(ast.ArrayType); + ptrType$36 = $ptrType(ast.BasicLit); + ptrType$37 = $ptrType(ast.Field); + sliceType$5 = $sliceType(ptrType$37); + ptrType$38 = $ptrType(ast.Ellipsis); + sliceType$6 = $sliceType(field); + ptrType$39 = $ptrType(field); + ptrType$40 = $ptrType(ast.MapType); + ptrType$41 = $ptrType(ast.ChanType); + sliceType$7 = $sliceType(ast.Stmt); + arrayType = $arrayType(ast.Expr, 3); + arrayType$1 = $arrayType(token.Pos, 2); + ptrType$42 = $ptrType(ast.CallExpr); + ptrType$43 = $ptrType(ast.ParenExpr); + ptrType$44 = $ptrType(ast.BadExpr); + ptrType$45 = $ptrType(ast.ReturnStmt); + ptrType$46 = $ptrType(ast.ExprStmt); + structType = $structType("go/parser", [{prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "lit", name: "lit", embedded: false, exported: false, typ: $String, tag: ""}]); + ptrType$47 = $ptrType(ast.TypeAssertExpr); + ptrType$48 = $ptrType(ast.UnaryExpr); + ptrType$49 = $ptrType(ast.BinaryExpr); + sliceType$8 = $sliceType(ast.Spec); + ptrType$50 = $ptrType(ast.File); + sliceType$9 = $sliceType(ast.Decl); + ptrType$51 = $ptrType(ast.ImportSpec); + sliceType$10 = $sliceType(ptrType$51); + sliceType$11 = $sliceType(ptrType$34); + sliceType$12 = $sliceType($Uint8); + ptrType$52 = $ptrType(bytes.Buffer); + ptrType$53 = $ptrType(token.FileSet); + ptrType$55 = $ptrType(resolver); + funcType = $funcType([token.Pos, $String], [], false); + mapType = $mapType(token.Token, $Bool); + resolveFile = function resolveFile$1(file, handle, declErr) { + var {_i, _i$1, _r, _ref, _ref$1, decl, declErr, file, handle, i, ident, pkgScope, pos, r, x, $s, $r, $c} = $restore(this, {file, handle, declErr}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + pkgScope = ast.NewScope(ptrType.nil); + r = new resolver.ptr(handle, declErr, pkgScope, pkgScope, sliceType.nil, 1, ptrType.nil, sliceType$1.nil); + _ref = file.Decls; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + decl = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = ast.Walk(r, decl); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + $r = r.closeScope(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + assert(r.topScope === ptrType.nil, "unbalanced scopes"); + assert(r.labelScope === ptrType.nil, "unbalanced label scopes"); + i = 0; + _ref$1 = r.unresolved; + _i$1 = 0; /* while (true) { */ case 5: - /* if (!(p.tok === 52)) { break; } */ if(!(p.tok === 52)) { $s = 6; continue; } - $r = p.next(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$2 = p.parseExpr(); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - list = $append(list, _r$2); + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 6; continue; } + ident = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + assert(ident.Obj === unresolved, "object already resolved"); + ident.Obj = r.pkgScope.Lookup(ident.Name); + /* */ if (ident.Obj === ptrType$3.nil) { $s = 7; continue; } + /* */ if (false) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (ident.Obj === ptrType$3.nil) { */ case 7: + (x = r.unresolved, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i] = ident)); + i = i + (1) >> 0; + $s = 9; continue; + /* } else if (false) { */ case 8: + _r = $assertType(ident.Obj.Decl, interfaceType).Pos(); /* */ $s = 10; case 10: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + pos = _r; + $r = r.trace("resolved %s@%v to package object %v", new sliceType$2([new $String(ident.Name), new token.Pos(ident.Pos()), new token.Pos(pos)])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 9: + _i$1++; $s = 5; continue; case 6: - $24r = list; - $s = 9; case 9: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return list; } if($curGoroutine.asleep) { var $f = {$blk: parseExprList, $c: true, $r, $24r, _r, _r$1, _r$2, list, p, $s, $deferred};return $f; } } + file.Scope = r.pkgScope; + file.Unresolved = $subslice(r.unresolved, 0, i); + $s = -1; return; + /* */ } return; } var $f = {$blk: resolveFile$1, $c: true, $r, _i, _i$1, _r, _ref, _ref$1, decl, declErr, file, handle, i, ident, pkgScope, pos, r, x, $s};return $f; }; - $ptrType(parser).prototype.parseList = function parseList(inRhs) { - var {_r, inRhs, list, old, p, $s, $r, $c} = $restore(this, {inRhs}); + $ptrType(resolver).prototype.trace = function trace$1(format, args) { + var {_r, _r$1, args, format, r, $s, $r, $c} = $restore(this, {format, args}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - old = p.inRhs; - p.inRhs = inRhs; - _r = p.parseExprList(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - list = _r; - p.inRhs = old; - $s = -1; return list; - /* */ } return; } var $f = {$blk: parseList, $c: true, $r, _r, inRhs, list, old, p, $s};return $f; + r = this; + _r = r.sprintf(format, args); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = fmt.Println(new sliceType$2([new $String(strings.Repeat(". ", r.depth) + _r)])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + $s = -1; return; + /* */ } return; } var $f = {$blk: trace$1, $c: true, $r, _r, _r$1, args, format, r, $s};return $f; }; - $ptrType(parser).prototype.parseType = function parseType() { - var {$24r, $24r$1, _r, _r$1, p, pos, typ, $s, $deferred, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } + $ptrType(resolver).prototype.sprintf = function sprintf(format, args) { + var {$24r, _i, _r, _r$1, _ref, _ref$1, arg, arg$1, args, format, i, r, x, $s, $r, $c} = $restore(this, {format, args}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + _ref = args; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _ref$1 = arg; + /* */ if ($assertType(_ref$1, token.Pos, true)[1]) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if ($assertType(_ref$1, token.Pos, true)[1]) { */ case 3: + arg$1 = _ref$1.$val; + _r = r.handle.Position(arg$1); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + ((i < 0 || i >= args.$length) ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + i] = (x = _r, new x.constructor.elem(x))); + /* } */ case 4: + _i++; + $s = 1; continue; + case 2: + _r$1 = fmt.Sprintf(format, args); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 7; case 7: return $24r; + /* */ } return; } var $f = {$blk: sprintf, $c: true, $r, $24r, _i, _r, _r$1, _ref, _ref$1, arg, arg$1, args, format, i, r, x, $s};return $f; + }; + $ptrType(resolver).prototype.openScope = function openScope(pos) { + var {pos, r, x, $s, $r, $c} = $restore(this, {pos}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + r.depth = r.depth + (1) >> 0; + if (r.depth > 1000) { + $panic((x = new bailout.ptr(pos, "exceeded max scope depth during object resolution"), new x.constructor.elem(x))); + } + /* */ if (false) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "Type"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); + /* if (false) { */ case 1: + $r = r.trace("opening scope @%v", new sliceType$2([new token.Pos(pos)])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 2: - _r$1 = p.tryIdentOrType(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - typ = _r$1; - /* */ if ($interfaceIsEqual(typ, $ifaceNil)) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if ($interfaceIsEqual(typ, $ifaceNil)) { */ case 5: - pos = p.pos; - $r = p.errorExpected(pos, "type"); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.advance(exprEnd); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $24r = new ast.BadExpr.ptr(pos, p.pos); - $s = 9; case 9: return $24r; - /* } */ case 6: - $24r$1 = typ; - $s = 10; case 10: return $24r$1; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseType, $c: true, $r, $24r, $24r$1, _r, _r$1, p, pos, typ, $s, $deferred};return $f; } } + r.topScope = ast.NewScope(r.topScope); + $s = -1; return; + /* */ } return; } var $f = {$blk: openScope, $c: true, $r, pos, r, x, $s};return $f; }; - $ptrType(parser).prototype.parseQualifiedIdent = function parseQualifiedIdent(ident) { - var {$24r, _r, _r$1, _r$2, ident, p, typ, $s, $deferred, $r, $c} = $restore(this, {ident}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } + $ptrType(resolver).prototype.closeScope = function closeScope() { + var {r, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + r.depth = r.depth - (1) >> 0; + /* */ if (false) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "QualifiedIdent"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); + /* if (false) { */ case 1: + $r = r.trace("closing scope", sliceType$2.nil); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 2: - _r$1 = p.parseTypeName(ident); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - typ = _r$1; - /* */ if (p.tok === 50) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (p.tok === 50) { */ case 5: - _r$2 = p.parseTypeInstance(typ); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - typ = _r$2; - /* } */ case 6: - $24r = typ; - $s = 8; case 8: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseQualifiedIdent, $c: true, $r, $24r, _r, _r$1, _r$2, ident, p, typ, $s, $deferred};return $f; } } + r.topScope = r.topScope.Outer; + $s = -1; return; + /* */ } return; } var $f = {$blk: closeScope, $c: true, $r, r, $s};return $f; }; - $ptrType(parser).prototype.parseTypeName = function parseTypeName(ident) { - var {$24r, $24r$1, _r, _r$1, _r$2, ident, p, sel, $s, $deferred, $r, $c} = $restore(this, {ident}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "TypeName"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - /* */ if (ident === ptrType$2.nil) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (ident === ptrType$2.nil) { */ case 4: - _r$1 = p.parseIdent(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - ident = _r$1; - /* } */ case 5: - /* */ if (p.tok === 53) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (p.tok === 53) { */ case 7: - $r = p.next(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$2 = p.parseIdent(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - sel = _r$2; - $24r = new ast.SelectorExpr.ptr(ident, sel); - $s = 11; case 11: return $24r; - /* } */ case 8: - $24r$1 = ident; - $s = 12; case 12: return $24r$1; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseTypeName, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, ident, p, sel, $s, $deferred};return $f; } } + $ptrType(resolver).prototype.openLabelScope = function openLabelScope() { + var r; + r = this; + r.labelScope = ast.NewScope(r.labelScope); + r.targetStack = $append(r.targetStack, sliceType.nil); }; - $ptrType(parser).prototype.parseArrayType = function parseArrayType(lbrack, len) { - var {$24r, _r, _r$1, _r$2, _r$3, elt, lbrack, len, p, $s, $deferred, $r, $c} = $restore(this, {lbrack, len}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "ArrayType"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - /* */ if ($interfaceIsEqual(len, $ifaceNil)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if ($interfaceIsEqual(len, $ifaceNil)) { */ case 4: - p.exprLev = p.exprLev + (1) >> 0; - /* */ if (p.tok === 48) { $s = 6; continue; } - /* */ if (!((p.tok === 55))) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (p.tok === 48) { */ case 6: - len = new ast.Ellipsis.ptr(p.pos, $ifaceNil); - $r = p.next(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 8; continue; - /* } else if (!((p.tok === 55))) { */ case 7: - _r$1 = p.parseRhs(); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - len = _r$1; - /* } */ case 8: - p.exprLev = p.exprLev - (1) >> 0; - /* } */ case 5: - /* */ if (p.tok === 52) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (p.tok === 52) { */ case 11: - $r = p.error(p.pos, "unexpected comma; expecting ]"); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.next(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 12: - _r$2 = p.expect(55); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - _r$3 = p.parseType(); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - elt = _r$3; - $24r = new ast.ArrayType.ptr(lbrack, len, elt); - $s = 17; case 17: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$34.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseArrayType, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, elt, lbrack, len, p, $s, $deferred};return $f; } } + $ptrType(resolver).prototype.closeLabelScope = function closeLabelScope() { + var {_arg, _arg$1, _i, _r, _ref, ident, n, r, scope, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + n = r.targetStack.$length - 1 >> 0; + scope = r.labelScope; + _ref = (x = r.targetStack, ((n < 0 || n >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + n])); + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + ident = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + ident.Obj = scope.Lookup(ident.Name); + /* */ if (ident.Obj === ptrType$3.nil && !(r.declErr === $throwNilPointerError)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (ident.Obj === ptrType$3.nil && !(r.declErr === $throwNilPointerError)) { */ case 3: + _arg = ident.Pos(); + _r = fmt.Sprintf("label %s undefined", new sliceType$2([new $String(ident.Name)])); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = _r; + $r = r.declErr(_arg, _arg$1); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 4: + _i++; + $s = 1; continue; + case 2: + r.targetStack = $subslice(r.targetStack, 0, n); + r.labelScope = r.labelScope.Outer; + $s = -1; return; + /* */ } return; } var $f = {$blk: closeLabelScope, $c: true, $r, _arg, _arg$1, _i, _r, _ref, ident, n, r, scope, x, $s};return $f; }; - $ptrType(parser).prototype.parseArrayFieldOrTypeInstance = function parseArrayFieldOrTypeInstance(x) { - var {$24r, $24r$1, $24r$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, args, comma, elt, elt$1, lbrack, p, rbrack, trailingComma, x, $s, $deferred, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } + $ptrType(resolver).prototype.declare = function declare(decl, data, scope, kind, idents) { + var {_arg, _arg$1, _i, _r, _r$1, _r$2, _ref, _tuple, alt, data, decl, ident, idents, kind, obj, ok, pos, prevDecl, r, scope, $s, $r, $c} = $restore(this, {decl, data, scope, kind, idents}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + _ref = idents; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + ident = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + /* */ if (!(ident.Obj === ptrType$3.nil)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!(ident.Obj === ptrType$3.nil)) { */ case 3: + _r = fmt.Sprintf("%v: identifier %s already declared or resolved", new sliceType$2([new token.Pos(ident.Pos()), new $String(ident.Name)])); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $panic(new $String(_r)); + /* } */ case 4: + obj = ast.NewObj(kind, ident.Name); + obj.Decl = decl; + obj.Data = data; + _tuple = $assertType(decl, ptrType$2, true); + ok = _tuple[1]; + if (!ok) { + ident.Obj = obj; + } + /* */ if (!(ident.Name === "_")) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (!(ident.Name === "_")) { */ case 6: + /* */ if (false) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (false) { */ case 8: + $r = r.trace("declaring %s@%v", new sliceType$2([new $String(ident.Name), new token.Pos(ident.Pos())])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 9: + alt = scope.Insert(obj); + /* */ if (!(alt === ptrType$3.nil) && !(r.declErr === $throwNilPointerError)) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (!(alt === ptrType$3.nil) && !(r.declErr === $throwNilPointerError)) { */ case 11: + prevDecl = ""; + pos = alt.Pos(); + /* */ if (new token.Pos(pos).IsValid()) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (new token.Pos(pos).IsValid()) { */ case 13: + _r$1 = r.sprintf("\n\tprevious declaration at %v", new sliceType$2([new token.Pos(pos)])); /* */ $s = 15; case 15: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + prevDecl = _r$1; + /* } */ case 14: + _arg = ident.Pos(); + _r$2 = fmt.Sprintf("%s redeclared in this block%s", new sliceType$2([new $String(ident.Name), new $String(prevDecl)])); /* */ $s = 16; case 16: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg$1 = _r$2; + $r = r.declErr(_arg, _arg$1); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 12: + /* } */ case 7: + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: declare, $c: true, $r, _arg, _arg$1, _i, _r, _r$1, _r$2, _ref, _tuple, alt, data, decl, ident, idents, kind, obj, ok, pos, prevDecl, r, scope, $s};return $f; + }; + $ptrType(resolver).prototype.shortVarDecl = function shortVarDecl(decl) { + var {_i, _r, _ref, _tuple, alt, decl, ident, isIdent, n, obj, r, x, x$1, $s, $r, $c} = $restore(this, {decl}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + n = 0; + _ref = decl.Lhs; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _tuple = $assertType(x, ptrType$2, true); + ident = _tuple[0]; + isIdent = _tuple[1]; + /* */ if (isIdent) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (isIdent) { */ case 3: + assert(ident.Obj === ptrType$3.nil, "identifier already declared or resolved"); + obj = ast.NewObj(4, ident.Name); + obj.Decl = decl; + ident.Obj = obj; + /* */ if (!(ident.Name === "_")) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!(ident.Name === "_")) { */ case 5: + /* */ if (false) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (false) { */ case 7: + $r = r.trace("declaring %s@%v", new sliceType$2([new $String(ident.Name), new token.Pos(ident.Pos())])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 8: + alt = r.topScope.Insert(obj); + if (!(alt === ptrType$3.nil)) { + ident.Obj = alt; + } else { + n = n + (1) >> 0; + } + /* } */ case 6: + /* } */ case 4: + _i++; + $s = 1; continue; + case 2: + /* */ if ((n === 0) && !(r.declErr === $throwNilPointerError)) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if ((n === 0) && !(r.declErr === $throwNilPointerError)) { */ case 10: + _r = (x$1 = decl.Lhs, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])).Pos(); /* */ $s = 12; case 12: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = r.declErr(_r, "no new variables on left side of :="); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 11: + $s = -1; return; + /* */ } return; } var $f = {$blk: shortVarDecl, $c: true, $r, _i, _r, _ref, _tuple, alt, decl, ident, isIdent, n, obj, r, x, x$1, $s};return $f; + }; + $ptrType(resolver).prototype.resolve = function resolve(ident, collectUnresolved) { + var {_r, _tuple, collectUnresolved, ident, obj, ok, r, s, $s, $r, $c} = $restore(this, {ident, collectUnresolved}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + /* */ if (!(ident.Obj === ptrType$3.nil)) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "ArrayFieldOrTypeInstance"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); + /* if (!(ident.Obj === ptrType$3.nil)) { */ case 1: + _r = r.sprintf("%v: identifier %s already declared or resolved", new sliceType$2([new token.Pos(ident.Pos()), new $String(ident.Name)])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $panic(new $String(_r)); /* } */ case 2: - _r$1 = p.expect(50); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - lbrack = _r$1; - trailingComma = 0; - args = sliceType$3.nil; - /* */ if (!((p.tok === 55))) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (!((p.tok === 55))) { */ case 5: - p.exprLev = p.exprLev + (1) >> 0; - _r$2 = p.parseRhs(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - args = $append(args, _r$2); - /* while (true) { */ case 8: - /* if (!(p.tok === 52)) { break; } */ if(!(p.tok === 52)) { $s = 9; continue; } - comma = p.pos; - $r = p.next(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (p.tok === 55) { - trailingComma = comma; - /* break; */ $s = 9; continue; + if (ident.Name === "_") { + $s = -1; return; + } + s = r.topScope; + /* while (true) { */ case 4: + /* if (!(!(s === ptrType.nil))) { break; } */ if(!(!(s === ptrType.nil))) { $s = 5; continue; } + obj = s.Lookup(ident.Name); + /* */ if (!(obj === ptrType$3.nil)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (!(obj === ptrType$3.nil)) { */ case 6: + /* */ if (false) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (false) { */ case 8: + $r = r.trace("resolved %v:%s to %v", new sliceType$2([new token.Pos(ident.Pos()), new $String(ident.Name), obj])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 9: + assert(!(obj.Name === ""), "obj with no name"); + _tuple = $assertType(obj.Decl, ptrType$2, true); + ok = _tuple[1]; + if (!ok) { + ident.Obj = obj; } - _r$3 = p.parseRhs(); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - args = $append(args, _r$3); - $s = 8; continue; - case 9: - p.exprLev = p.exprLev - (1) >> 0; - /* } */ case 6: - _r$4 = p.expect(55); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - rbrack = _r$4; - /* */ if (args.$length === 0) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (args.$length === 0) { */ case 13: - _r$5 = p.parseType(); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - elt = _r$5; - $24r = [x, new ast.ArrayType.ptr(lbrack, $ifaceNil, elt)]; - $s = 16; case 16: return $24r; - /* } */ case 14: - /* */ if (args.$length === 1) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (args.$length === 1) { */ case 17: - _r$6 = p.tryIdentOrType(); /* */ $s = 19; case 19: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - elt$1 = _r$6; - /* */ if (!($interfaceIsEqual(elt$1, $ifaceNil))) { $s = 20; continue; } - /* */ $s = 21; continue; - /* if (!($interfaceIsEqual(elt$1, $ifaceNil))) { */ case 20: - /* */ if (new token.Pos(trailingComma).IsValid()) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if (new token.Pos(trailingComma).IsValid()) { */ case 22: - $r = p.error(trailingComma, "unexpected comma; expecting ]"); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 23: - $24r$1 = [x, new ast.ArrayType.ptr(lbrack, (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), elt$1)]; - $s = 25; case 25: return $24r$1; - /* } */ case 21: - /* } */ case 18: - $24r$2 = [ptrType$2.nil, typeparams.PackIndexExpr(x, lbrack, args, rbrack)]; - $s = 26; case 26: return $24r$2; - /* */ } return; } } catch(err) { $err = err; $s = -1; return [ptrType$2.nil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseArrayFieldOrTypeInstance, $c: true, $r, $24r, $24r$1, $24r$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, args, comma, elt, elt$1, lbrack, p, rbrack, trailingComma, x, $s, $deferred};return $f; } } + $s = -1; return; + /* } */ case 7: + s = s.Outer; + $s = 4; continue; + case 5: + if (collectUnresolved) { + ident.Obj = unresolved; + r.unresolved = $append(r.unresolved, ident); + } + $s = -1; return; + /* */ } return; } var $f = {$blk: resolve, $c: true, $r, _r, _tuple, collectUnresolved, ident, obj, ok, r, s, $s};return $f; }; - $ptrType(parser).prototype.parseFieldDecl = function parseFieldDecl() { - var {$24r, _1, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, comment, doc, field$1, name, names, p, pos, star, star$1, tag, typ, $s, $deferred, $r, $c} = $restore(this, {}); + $ptrType(resolver).prototype.walkExprs = function walkExprs(list) { + var {_i, _ref, list, node, r, $s, $r, $c} = $restore(this, {list}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + _ref = list; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + node = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = ast.Walk(r, node); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: walkExprs, $c: true, $r, _i, _ref, list, node, r, $s};return $f; + }; + $ptrType(resolver).prototype.walkLHS = function walkLHS(list) { + var {_i, _ref, _tuple, expr, expr$1, list, ok, r, $s, $r, $c} = $restore(this, {list}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + _ref = list; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + expr = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + expr$1 = unparen(expr); + _tuple = $assertType(expr$1, ptrType$2, true); + ok = _tuple[1]; + /* */ if (!ok && !($interfaceIsEqual(expr$1, $ifaceNil))) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!ok && !($interfaceIsEqual(expr$1, $ifaceNil))) { */ case 3: + $r = ast.Walk(r, expr$1); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 4: + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: walkLHS, $c: true, $r, _i, _ref, _tuple, expr, expr$1, list, ok, r, $s};return $f; + }; + $ptrType(resolver).prototype.walkStmts = function walkStmts(list) { + var {_i, _ref, list, r, stmt, $s, $r, $c} = $restore(this, {list}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + _ref = list; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + stmt = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = ast.Walk(r, stmt); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: walkStmts, $c: true, $r, _i, _ref, list, r, stmt, $s};return $f; + }; + $ptrType(resolver).prototype.Visit = function Visit(node) { + var {$24r, $24r$1, _1, _arg, _arg$1, _i, _i$1, _i$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _ref$2, _ref$3, _tuple, _tuple$1, as, depth, e, i, ident, kind, kv, lhs, n, n$1, n$10, n$11, n$12, n$13, n$14, n$15, n$16, n$17, n$18, n$19, n$2, n$20, n$21, n$3, n$4, n$5, n$6, n$7, n$8, n$9, node, r, spec, spec$1, spec$2, spec$3, x, x$1, $s, $deferred, $r, $c} = $restore(this, {node}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } + r = this; + /* */ if (false && !($interfaceIsEqual(node, $ifaceNil))) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "FieldDecl"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); + /* if (false && !($interfaceIsEqual(node, $ifaceNil))) { */ case 1: + _arg = node; + _r = node.Pos(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = new token.Pos(_r); + $r = r.trace("node %T@%v", new sliceType$2([_arg, _arg$1])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 2: - doc = p.leadComment; - names = sliceType.nil; - typ = $ifaceNil; - _1 = p.tok; - /* */ if (_1 === (4)) { $s = 5; continue; } - /* */ if (_1 === (14)) { $s = 6; continue; } - /* */ if (_1 === (49)) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (_1 === (4)) { */ case 5: - _r$1 = p.parseIdent(); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - name = _r$1; - /* */ if ((p.tok === 53) || (p.tok === 9) || (p.tok === 57) || (p.tok === 56)) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if ((p.tok === 53) || (p.tok === 9) || (p.tok === 57) || (p.tok === 56)) { */ case 11: - typ = name; - /* */ if (p.tok === 53) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (p.tok === 53) { */ case 14: - _r$2 = p.parseQualifiedIdent(name); /* */ $s = 16; case 16: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - typ = _r$2; - /* } */ case 15: - $s = 13; continue; - /* } else { */ case 12: - names = new sliceType([name]); - /* while (true) { */ case 17: - /* if (!(p.tok === 52)) { break; } */ if(!(p.tok === 52)) { $s = 18; continue; } - $r = p.next(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$3 = p.parseIdent(); /* */ $s = 20; case 20: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - names = $append(names, _r$3); - $s = 17; continue; - case 18: - /* */ if ((names.$length === 1) && (p.tok === 50)) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if ((names.$length === 1) && (p.tok === 50)) { */ case 21: - _r$4 = p.parseArrayFieldOrTypeInstance(name); /* */ $s = 24; case 24: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _tuple = _r$4; - name = _tuple[0]; - typ = _tuple[1]; - if (name === ptrType$2.nil) { - names = sliceType.nil; - } - $s = 23; continue; - /* } else { */ case 22: - _r$5 = p.parseType(); /* */ $s = 25; case 25: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - typ = _r$5; - /* } */ case 23: - /* } */ case 13: - $s = 9; continue; - /* } else if (_1 === (14)) { */ case 6: - star = p.pos; - $r = p.next(); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (p.tok === 49) { $s = 27; continue; } - /* */ $s = 28; continue; - /* if (p.tok === 49) { */ case 27: - $r = p.error(p.pos, "cannot parenthesize embedded type"); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.next(); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$6 = p.parseQualifiedIdent(ptrType$2.nil); /* */ $s = 32; case 32: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - typ = _r$6; - /* */ if (p.tok === 54) { $s = 33; continue; } - /* */ $s = 34; continue; - /* if (p.tok === 54) { */ case 33: - $r = p.next(); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 34: - $s = 29; continue; - /* } else { */ case 28: - _r$7 = p.parseQualifiedIdent(ptrType$2.nil); /* */ $s = 36; case 36: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - typ = _r$7; - /* } */ case 29: - typ = new ast.StarExpr.ptr(star, typ); - $s = 9; continue; - /* } else if (_1 === (49)) { */ case 7: - $r = p.error(p.pos, "cannot parenthesize embedded type"); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.next(); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (p.tok === 14) { $s = 39; continue; } - /* */ $s = 40; continue; - /* if (p.tok === 14) { */ case 39: - star$1 = p.pos; - $r = p.next(); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$8 = p.parseQualifiedIdent(ptrType$2.nil); /* */ $s = 43; case 43: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - typ = new ast.StarExpr.ptr(star$1, _r$8); - $s = 41; continue; - /* } else { */ case 40: - _r$9 = p.parseQualifiedIdent(ptrType$2.nil); /* */ $s = 44; case 44: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - typ = _r$9; - /* } */ case 41: - /* */ if (p.tok === 54) { $s = 45; continue; } - /* */ $s = 46; continue; - /* if (p.tok === 54) { */ case 45: - $r = p.next(); /* */ $s = 47; case 47: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 46: - $s = 9; continue; - /* } else { */ case 8: - pos = p.pos; - $r = p.errorExpected(pos, "field name or embedded type"); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.advance(exprEnd); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - typ = new ast.BadExpr.ptr(pos, p.pos); - /* } */ case 9: - case 4: - tag = ptrType$35.nil; - /* */ if (p.tok === 9) { $s = 50; continue; } - /* */ $s = 51; continue; - /* if (p.tok === 9) { */ case 50: - tag = new ast.BasicLit.ptr(p.pos, p.tok, p.lit); - $r = p.next(); /* */ $s = 52; case 52: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 51: - _r$10 = p.expectSemi(); /* */ $s = 53; case 53: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - comment = _r$10; - field$1 = new ast.Field.ptr(doc, names, typ, tag, comment); - $24r = field$1; - $s = 54; case 54: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$36.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseFieldDecl, $c: true, $r, $24r, _1, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, comment, doc, field$1, name, names, p, pos, star, star$1, tag, typ, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseStructType = function parseStructType() { - var {$24r, _r, _r$1, _r$2, _r$3, _r$4, lbrace, list, p, pos, rbrace, $s, $deferred, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "StructType"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - _r$1 = p.expect(82); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - pos = _r$1; - _r$2 = p.expect(51); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - lbrace = _r$2; - list = sliceType$5.nil; - /* while (true) { */ case 6: - /* if (!((p.tok === 4) || (p.tok === 14) || (p.tok === 49))) { break; } */ if(!((p.tok === 4) || (p.tok === 14) || (p.tok === 49))) { $s = 7; continue; } - _r$3 = p.parseFieldDecl(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - list = $append(list, _r$3); - $s = 6; continue; - case 7: - _r$4 = p.expect(56); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - rbrace = _r$4; - $24r = new ast.StructType.ptr(pos, new ast.FieldList.ptr(lbrace, list, rbrace), false); - $s = 10; case 10: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$6.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseStructType, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, lbrace, list, p, pos, rbrace, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parsePointerType = function parsePointerType() { - var {$24r, _r, _r$1, _r$2, base, p, star, $s, $deferred, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "PointerType"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - _r$1 = p.expect(14); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - star = _r$1; - _r$2 = p.parseType(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - base = _r$2; - $24r = new ast.StarExpr.ptr(star, base); - $s = 6; case 6: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$28.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parsePointerType, $c: true, $r, $24r, _r, _r$1, _r$2, base, p, star, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseDotsType = function parseDotsType() { - var {$24r, _r, _r$1, _r$2, elt, p, pos, $s, $deferred, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "DotsType"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - _r$1 = p.expect(48); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - pos = _r$1; - _r$2 = p.parseType(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - elt = _r$2; - $24r = new ast.Ellipsis.ptr(pos, elt); - $s = 6; case 6: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$37.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseDotsType, $c: true, $r, $24r, _r, _r$1, _r$2, elt, p, pos, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseParamDecl = function parseParamDecl(name, typeSetsOK) { - var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, _1, _2, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, f, name, p, ptok, typeSetsOK, $s, $deferred, $r, $c} = $restore(this, {name, typeSetsOK}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - f = new field.ptr(ptrType$2.nil, $ifaceNil); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "ParamDeclOrNil"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - ptok = p.tok; - /* */ if (!(name === ptrType$2.nil)) { $s = 4; continue; } - /* */ if (typeSetsOK && (p.tok === 88)) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (!(name === ptrType$2.nil)) { */ case 4: - p.tok = 4; - $s = 6; continue; - /* } else if (typeSetsOK && (p.tok === 88)) { */ case 5: - _r$1 = p.embeddedElem($ifaceNil); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - field.copy(f, new field.ptr(ptrType$2.nil, _r$1)); - $24r = f; - $s = 8; case 8: return $24r; - /* } */ case 6: - _1 = p.tok; - /* */ if (_1 === (4)) { $s = 10; continue; } - /* */ if ((_1 === (14)) || (_1 === (36)) || (_1 === (71)) || (_1 === (50)) || (_1 === (63)) || (_1 === (77)) || (_1 === (82)) || (_1 === (76)) || (_1 === (49))) { $s = 11; continue; } - /* */ if (_1 === (48)) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (_1 === (4)) { */ case 10: - /* */ if (!(name === ptrType$2.nil)) { $s = 15; continue; } - /* */ $s = 16; continue; - /* if (!(name === ptrType$2.nil)) { */ case 15: - f.name = name; - p.tok = ptok; - $s = 17; continue; - /* } else { */ case 16: - _r$2 = p.parseIdent(); /* */ $s = 18; case 18: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - f.name = _r$2; - /* } */ case 17: - _2 = p.tok; - /* */ if ((_2 === (4)) || (_2 === (14)) || (_2 === (36)) || (_2 === (71)) || (_2 === (63)) || (_2 === (77)) || (_2 === (82)) || (_2 === (76)) || (_2 === (49))) { $s = 20; continue; } - /* */ if (_2 === (50)) { $s = 21; continue; } - /* */ if (_2 === (48)) { $s = 22; continue; } - /* */ if (_2 === (53)) { $s = 23; continue; } - /* */ if (_2 === (88)) { $s = 24; continue; } - /* */ if (_2 === (18)) { $s = 25; continue; } - /* */ $s = 26; continue; - /* if ((_2 === (4)) || (_2 === (14)) || (_2 === (36)) || (_2 === (71)) || (_2 === (63)) || (_2 === (77)) || (_2 === (82)) || (_2 === (76)) || (_2 === (49))) { */ case 20: - _r$3 = p.parseType(); /* */ $s = 27; case 27: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - f.typ = _r$3; - $s = 26; continue; - /* } else if (_2 === (50)) { */ case 21: - _r$4 = p.parseArrayFieldOrTypeInstance(f.name); /* */ $s = 28; case 28: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _tuple = _r$4; - f.name = _tuple[0]; - f.typ = _tuple[1]; - $s = 26; continue; - /* } else if (_2 === (48)) { */ case 22: - _r$5 = p.parseDotsType(); /* */ $s = 29; case 29: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - f.typ = _r$5; - $24r$1 = f; - $s = 30; case 30: return $24r$1; - /* } else if (_2 === (53)) { */ case 23: - _r$6 = p.parseQualifiedIdent(f.name); /* */ $s = 31; case 31: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - f.typ = _r$6; - f.name = ptrType$2.nil; - $s = 26; continue; - /* } else if (_2 === (88)) { */ case 24: - /* */ if (typeSetsOK) { $s = 32; continue; } - /* */ $s = 33; continue; - /* if (typeSetsOK) { */ case 32: - _r$7 = p.embeddedElem($ifaceNil); /* */ $s = 34; case 34: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - f.typ = _r$7; - $24r$2 = f; - $s = 35; case 35: return $24r$2; - /* } */ case 33: - $s = 26; continue; - /* } else if (_2 === (18)) { */ case 25: - /* */ if (typeSetsOK) { $s = 36; continue; } - /* */ $s = 37; continue; - /* if (typeSetsOK) { */ case 36: - _r$8 = p.embeddedElem(f.name); /* */ $s = 38; case 38: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - f.typ = _r$8; - f.name = ptrType$2.nil; - $24r$3 = f; - $s = 39; case 39: return $24r$3; - /* } */ case 37: - /* } */ case 26: - case 19: - $s = 14; continue; - /* } else if ((_1 === (14)) || (_1 === (36)) || (_1 === (71)) || (_1 === (50)) || (_1 === (63)) || (_1 === (77)) || (_1 === (82)) || (_1 === (76)) || (_1 === (49))) { */ case 11: - _r$9 = p.parseType(); /* */ $s = 40; case 40: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - f.typ = _r$9; - $s = 14; continue; - /* } else if (_1 === (48)) { */ case 12: - _r$10 = p.parseDotsType(); /* */ $s = 41; case 41: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - f.typ = _r$10; - $24r$4 = f; - $s = 42; case 42: return $24r$4; - /* } else { */ case 13: - $r = p.errorExpected(p.pos, "')'"); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.advance(exprEnd); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 14: - case 9: - /* */ if (typeSetsOK && (p.tok === 18) && !($interfaceIsEqual(f.typ, $ifaceNil))) { $s = 45; continue; } - /* */ $s = 46; continue; - /* if (typeSetsOK && (p.tok === 18) && !($interfaceIsEqual(f.typ, $ifaceNil))) { */ case 45: - _r$11 = p.embeddedElem(f.typ); /* */ $s = 47; case 47: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - f.typ = _r$11; - /* } */ case 46: - $24r$5 = f; - $s = 48; case 48: return $24r$5; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return f; } if($curGoroutine.asleep) { var $f = {$blk: parseParamDecl, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, _1, _2, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, f, name, p, ptok, typeSetsOK, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseParameterList = function parseParameterList(name0, typ0, closing) { - var {$24r, $24r$1, $24r$2, _i, _i$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, addParams, closing, i, i$1, list, missingName, n, name0, named, names, ok, p, par, par$1, par$2, par$3, par$4, params, pos, tparams, typ, typ$1, typ$2, typ0, typeSetsOK, $s, $deferred, $r, $c} = $restore(this, {name0, typ0, closing}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - names = [names]; - params = [params]; - typ = [typ]; - params[0] = sliceType$5.nil; - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "ParameterList"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - tparams = closing === 55; - typeSetsOK = tparams; - pos = p.pos; - if (!(name0 === ptrType$2.nil)) { - pos = name0.Pos(); - } - list = sliceType$6.nil; - named = 0; - /* while (true) { */ case 4: - /* if (!(!(name0 === ptrType$2.nil) || !((p.tok === closing)) && !((p.tok === 1)))) { break; } */ if(!(!(name0 === ptrType$2.nil) || !((p.tok === closing)) && !((p.tok === 1)))) { $s = 5; continue; } - par = new field.ptr(ptrType$2.nil, $ifaceNil); - /* */ if (!($interfaceIsEqual(typ0, $ifaceNil))) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (!($interfaceIsEqual(typ0, $ifaceNil))) { */ case 6: - /* */ if (typeSetsOK) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (typeSetsOK) { */ case 9: - _r$1 = p.embeddedElem(typ0); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - typ0 = _r$1; - /* } */ case 10: - field.copy(par, new field.ptr(name0, typ0)); - $s = 8; continue; - /* } else { */ case 7: - _r$2 = p.parseParamDecl(name0, typeSetsOK); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - field.copy(par, _r$2); - /* } */ case 8: - name0 = ptrType$2.nil; - typ0 = $ifaceNil; - if (!(par.name === ptrType$2.nil) || !($interfaceIsEqual(par.typ, $ifaceNil))) { - list = $append(list, par); - if (!(par.name === ptrType$2.nil) && !($interfaceIsEqual(par.typ, $ifaceNil))) { - named = named + (1) >> 0; - } - } - _r$3 = p.atComma("parameter list", closing); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (!_r$3) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (!_r$3) { */ case 13: - /* break; */ $s = 5; continue; - /* } */ case 14: - $r = p.next(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 4; continue; - case 5: - /* */ if (list.$length === 0) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (list.$length === 0) { */ case 17: - $24r = params[0]; - $s = 19; case 19: return $24r; - /* } */ case 18: - /* */ if (named === 0) { $s = 20; continue; } - /* */ if (!((named === list.$length))) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if (named === 0) { */ case 20: - i = 0; - while (true) { - if (!(i < list.$length)) { break; } - par$1 = ((i < 0 || i >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + i]); - typ$1 = par$1.name; - if (!(typ$1 === ptrType$2.nil)) { - par$1.typ = typ$1; - par$1.name = ptrType$2.nil; - } - i = i + (1) >> 0; - } - /* */ if (tparams) { $s = 23; continue; } - /* */ $s = 24; continue; - /* if (tparams) { */ case 23: - $r = p.error(pos, "type parameters must be named"); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 24: - $s = 22; continue; - /* } else if (!((named === list.$length))) { */ case 21: - ok = true; - typ$2 = $ifaceNil; - missingName = pos; - i$1 = list.$length - 1 >> 0; - /* while (true) { */ case 26: - /* if (!(i$1 >= 0)) { break; } */ if(!(i$1 >= 0)) { $s = 27; continue; } - par$2 = ((i$1 < 0 || i$1 >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + i$1]); - /* */ if (!($interfaceIsEqual(par$2.typ, $ifaceNil))) { $s = 28; continue; } - /* */ if (!($interfaceIsEqual(typ$2, $ifaceNil))) { $s = 29; continue; } - /* */ $s = 30; continue; - /* if (!($interfaceIsEqual(par$2.typ, $ifaceNil))) { */ case 28: - typ$2 = par$2.typ; - /* */ if (par$2.name === ptrType$2.nil) { $s = 32; continue; } - /* */ $s = 33; continue; - /* if (par$2.name === ptrType$2.nil) { */ case 32: - ok = false; - _r$4 = par$2.typ.Pos(); /* */ $s = 34; case 34: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - missingName = _r$4; - n = ast.NewIdent("_"); - _r$5 = typ$2.Pos(); /* */ $s = 35; case 35: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - n.NamePos = _r$5; - par$2.name = n; - /* } */ case 33: - $s = 31; continue; - /* } else if (!($interfaceIsEqual(typ$2, $ifaceNil))) { */ case 29: - par$2.typ = typ$2; - $s = 31; continue; - /* } else { */ case 30: - ok = false; - missingName = par$2.name.Pos(); - par$2.typ = new ast.BadExpr.ptr(par$2.name.Pos(), p.pos); - /* } */ case 31: - i$1 = i$1 - (1) >> 0; - $s = 26; continue; - case 27: - /* */ if (!ok) { $s = 36; continue; } - /* */ $s = 37; continue; - /* if (!ok) { */ case 36: - /* */ if (tparams) { $s = 38; continue; } - /* */ $s = 39; continue; - /* if (tparams) { */ case 38: - $r = p.error(missingName, "type parameters must be named"); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 40; continue; - /* } else { */ case 39: - $r = p.error(pos, "mixed named and unnamed parameters"); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 40: - /* } */ case 37: - /* } */ case 22: - /* */ if (named === 0) { $s = 43; continue; } - /* */ $s = 44; continue; - /* if (named === 0) { */ case 43: - _ref = list; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - par$3 = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), field); - assert(!($interfaceIsEqual(par$3.typ, $ifaceNil)), "nil type in unnamed parameter list"); - params[0] = $append(params[0], new ast.Field.ptr(ptrType$33.nil, sliceType.nil, par$3.typ, ptrType$35.nil, ptrType$33.nil)); - _i++; - } - $24r$1 = params[0]; - $s = 45; case 45: return $24r$1; - /* } */ case 44: - names[0] = sliceType.nil; - typ[0] = $ifaceNil; - addParams = (function(names, params, typ) { return function parser·parseParameterList·func1() { - var field$1; - assert(!($interfaceIsEqual(typ[0], $ifaceNil)), "nil type in named parameter list"); - field$1 = new ast.Field.ptr(ptrType$33.nil, names[0], typ[0], ptrType$35.nil, ptrType$33.nil); - params[0] = $append(params[0], field$1); - names[0] = sliceType.nil; - }; })(names, params, typ); - _ref$1 = list; - _i$1 = 0; - /* while (true) { */ case 46: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 47; continue; } - par$4 = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), field); - /* */ if (!($interfaceIsEqual(par$4.typ, typ[0]))) { $s = 48; continue; } - /* */ $s = 49; continue; - /* if (!($interfaceIsEqual(par$4.typ, typ[0]))) { */ case 48: - /* */ if (names[0].$length > 0) { $s = 50; continue; } - /* */ $s = 51; continue; - /* if (names[0].$length > 0) { */ case 50: - $r = addParams(); /* */ $s = 52; case 52: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 51: - typ[0] = par$4.typ; - /* } */ case 49: - names[0] = $append(names[0], par$4.name); - _i$1++; - $s = 46; continue; - case 47: - /* */ if (names[0].$length > 0) { $s = 53; continue; } - /* */ $s = 54; continue; - /* if (names[0].$length > 0) { */ case 53: - $r = addParams(); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 54: - $24r$2 = params[0]; - $s = 56; case 56: return $24r$2; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return params[0]; } if($curGoroutine.asleep) { var $f = {$blk: parseParameterList, $c: true, $r, $24r, $24r$1, $24r$2, _i, _i$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, addParams, closing, i, i$1, list, missingName, n, name0, named, names, ok, p, par, par$1, par$2, par$3, par$4, params, pos, tparams, typ, typ$1, typ$2, typ0, typeSetsOK, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseParameters = function parseParameters(acceptTParams) { - var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, acceptTParams, fields, list, opening, opening$1, p, params, rbrack, rparen, tparams, $s, $deferred, $r, $c} = $restore(this, {acceptTParams}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - tparams = ptrType$27.nil; - params = ptrType$27.nil; - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "Parameters"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - /* */ if (acceptTParams && (p.tok === 50)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (acceptTParams && (p.tok === 50)) { */ case 4: - opening = p.pos; - $r = p.next(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$1 = p.parseParameterList(ptrType$2.nil, $ifaceNil, 55); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - list = _r$1; - _r$2 = p.expect(55); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - rbrack = _r$2; - tparams = new ast.FieldList.ptr(opening, list, rbrack); - /* */ if (tparams.NumFields() === 0) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (tparams.NumFields() === 0) { */ case 9: - $r = p.error(tparams.Closing, "empty type parameter list"); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - tparams = ptrType$27.nil; - /* } */ case 10: - /* } */ case 5: - _r$3 = p.expect(49); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - opening$1 = _r$3; - fields = sliceType$5.nil; - /* */ if (!((p.tok === 54))) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (!((p.tok === 54))) { */ case 13: - _r$4 = p.parseParameterList(ptrType$2.nil, $ifaceNil, 54); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - fields = _r$4; - /* } */ case 14: - _r$5 = p.expect(54); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - rparen = _r$5; - params = new ast.FieldList.ptr(opening$1, fields, rparen); - $24r = [tparams, params]; - $s = 17; case 17: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [tparams, params]; } if($curGoroutine.asleep) { var $f = {$blk: parseParameters, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, acceptTParams, fields, list, opening, opening$1, p, params, rbrack, rparen, tparams, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseResult = function parseResult() { - var {$24r, $24r$1, $24r$2, _r, _r$1, _r$2, _tuple, list, p, results, typ, $s, $deferred, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "Result"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - /* */ if (p.tok === 49) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (p.tok === 49) { */ case 4: - _r$1 = p.parseParameters(false); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - results = _tuple[1]; - $24r = results; - $s = 7; case 7: return $24r; - /* } */ case 5: - _r$2 = p.tryIdentOrType(); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - typ = _r$2; - /* */ if (!($interfaceIsEqual(typ, $ifaceNil))) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (!($interfaceIsEqual(typ, $ifaceNil))) { */ case 9: - list = $makeSlice(sliceType$5, 1); - (0 >= list.$length ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + 0] = new ast.Field.ptr(ptrType$33.nil, sliceType.nil, typ, ptrType$35.nil, ptrType$33.nil)); - $24r$1 = new ast.FieldList.ptr(0, list, 0); - $s = 11; case 11: return $24r$1; - /* } */ case 10: - $24r$2 = ptrType$27.nil; - $s = 12; case 12: return $24r$2; - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$27.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseResult, $c: true, $r, $24r, $24r$1, $24r$2, _r, _r$1, _r$2, _tuple, list, p, results, typ, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseFuncType = function parseFuncType() { - var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _tuple, p, params, pos, results, tparams, $s, $deferred, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "FuncType"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - _r$1 = p.expect(71); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - pos = _r$1; - _r$2 = p.parseParameters(true); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple = _r$2; - tparams = _tuple[0]; - params = _tuple[1]; - /* */ if (!(tparams === ptrType$27.nil)) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (!(tparams === ptrType$27.nil)) { */ case 6: - _r$3 = tparams.Pos(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $r = p.error(_r$3, "function type must have no type parameters"); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 7: - _r$4 = p.parseResult(); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - results = _r$4; - $24r = new ast.FuncType.ptr(pos, ptrType$27.nil, params, results); - $s = 11; case 11: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$7.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseFuncType, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _tuple, p, params, pos, results, tparams, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseMethodSpec = function parseMethodSpec() { - var {$24r, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, doc, ident, idents, lbrack, list, name0, p, params, params$1, rbrack, results, results$1, typ, x, x$1, $s, $deferred, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "MethodSpec"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - doc = p.leadComment; - idents = sliceType.nil; - typ = $ifaceNil; - _r$1 = p.parseTypeName(ptrType$2.nil); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - x = _r$1; - _tuple = $assertType(x, ptrType$2, true); - ident = _tuple[0]; - /* */ if (!(ident === ptrType$2.nil)) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (!(ident === ptrType$2.nil)) { */ case 5: - /* */ if ((p.tok === 50)) { $s = 9; continue; } - /* */ if ((p.tok === 49)) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if ((p.tok === 50)) { */ case 9: - lbrack = p.pos; - $r = p.next(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - p.exprLev = p.exprLev + (1) >> 0; - _r$2 = p.parseExpr(); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - x$1 = _r$2; - p.exprLev = p.exprLev - (1) >> 0; - _tuple$1 = $assertType(x$1, ptrType$2, true); - name0 = _tuple$1[0]; - /* */ if (!(name0 === ptrType$2.nil) && !((p.tok === 52)) && !((p.tok === 55))) { $s = 15; continue; } - /* */ $s = 16; continue; - /* if (!(name0 === ptrType$2.nil) && !((p.tok === 52)) && !((p.tok === 55))) { */ case 15: - _r$3 = p.parseParameterList(name0, $ifaceNil, 55); /* */ $s = 18; case 18: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $unused(_r$3); - _r$4 = p.expect(55); /* */ $s = 19; case 19: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $unused(_r$4); - $r = p.error(lbrack, "interface method must have no type parameters"); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$5 = p.parseParameters(false); /* */ $s = 21; case 21: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _tuple$2 = _r$5; - params = _tuple$2[1]; - _r$6 = p.parseResult(); /* */ $s = 22; case 22: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - results = _r$6; - idents = new sliceType([ident]); - typ = new ast.FuncType.ptr(0, ptrType$27.nil, params, results); - $s = 17; continue; - /* } else { */ case 16: - list = new sliceType$3([x$1]); - _r$7 = p.atComma("type argument list", 55); /* */ $s = 25; case 25: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - /* */ if (_r$7) { $s = 23; continue; } - /* */ $s = 24; continue; - /* if (_r$7) { */ case 23: - p.exprLev = p.exprLev + (1) >> 0; - $r = p.next(); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* while (true) { */ case 27: - /* if (!(!((p.tok === 55)) && !((p.tok === 1)))) { break; } */ if(!(!((p.tok === 55)) && !((p.tok === 1)))) { $s = 28; continue; } - _r$8 = p.parseType(); /* */ $s = 29; case 29: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - list = $append(list, _r$8); - _r$9 = p.atComma("type argument list", 55); /* */ $s = 32; case 32: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - /* */ if (!_r$9) { $s = 30; continue; } - /* */ $s = 31; continue; - /* if (!_r$9) { */ case 30: - /* break; */ $s = 28; continue; - /* } */ case 31: - $r = p.next(); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 27; continue; - case 28: - p.exprLev = p.exprLev - (1) >> 0; - /* } */ case 24: - _r$10 = p.expectClosing(55, "type argument list"); /* */ $s = 34; case 34: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - rbrack = _r$10; - typ = typeparams.PackIndexExpr(ident, lbrack, list, rbrack); - /* } */ case 17: - $s = 12; continue; - /* } else if ((p.tok === 49)) { */ case 10: - _r$11 = p.parseParameters(false); /* */ $s = 35; case 35: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _tuple$3 = _r$11; - params$1 = _tuple$3[1]; - _r$12 = p.parseResult(); /* */ $s = 36; case 36: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - results$1 = _r$12; - idents = new sliceType([ident]); - typ = new ast.FuncType.ptr(0, ptrType$27.nil, params$1, results$1); - $s = 12; continue; - /* } else { */ case 11: - typ = x; - /* } */ case 12: - case 8: - $s = 7; continue; - /* } else { */ case 6: - typ = x; - /* */ if (p.tok === 50) { $s = 37; continue; } - /* */ $s = 38; continue; - /* if (p.tok === 50) { */ case 37: - _r$13 = p.parseTypeInstance(typ); /* */ $s = 39; case 39: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - typ = _r$13; - /* } */ case 38: - /* } */ case 7: - $24r = new ast.Field.ptr(doc, idents, typ, ptrType$35.nil, ptrType$33.nil); - $s = 40; case 40: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$36.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseMethodSpec, $c: true, $r, $24r, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, doc, ident, idents, lbrack, list, name0, p, params, params$1, rbrack, results, results$1, typ, x, x$1, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.embeddedElem = function embeddedElem(x) { - var {$24r, _r, _r$1, _r$2, p, t, x, $s, $deferred, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "EmbeddedElem"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - /* */ if ($interfaceIsEqual(x, $ifaceNil)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if ($interfaceIsEqual(x, $ifaceNil)) { */ case 4: - _r$1 = p.embeddedTerm(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - x = _r$1; - /* } */ case 5: - /* while (true) { */ case 7: - /* if (!(p.tok === 18)) { break; } */ if(!(p.tok === 18)) { $s = 8; continue; } - t = new ast.BinaryExpr.ptr($ifaceNil, 0, 0, $ifaceNil); - t.OpPos = p.pos; - t.Op = 18; - $r = p.next(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - t.X = x; - _r$2 = p.embeddedTerm(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - t.Y = _r$2; - x = t; - $s = 7; continue; - case 8: - $24r = x; - $s = 11; case 11: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: embeddedElem, $c: true, $r, $24r, _r, _r$1, _r$2, p, t, x, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.embeddedTerm = function embeddedTerm() { - var {$24r, $24r$1, $24r$2, _r, _r$1, _r$2, p, pos, t, t$1, $s, $deferred, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "EmbeddedTerm"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - /* */ if (p.tok === 88) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (p.tok === 88) { */ case 4: - t = new ast.UnaryExpr.ptr(0, 0, $ifaceNil); - t.OpPos = p.pos; - t.Op = 88; - $r = p.next(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$1 = p.parseType(); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - t.X = _r$1; - $24r = t; - $s = 8; case 8: return $24r; - /* } */ case 5: - _r$2 = p.tryIdentOrType(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - t$1 = _r$2; - /* */ if ($interfaceIsEqual(t$1, $ifaceNil)) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if ($interfaceIsEqual(t$1, $ifaceNil)) { */ case 10: - pos = p.pos; - $r = p.errorExpected(pos, "~ term or type"); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.advance(exprEnd); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $24r$1 = new ast.BadExpr.ptr(pos, p.pos); - $s = 14; case 14: return $24r$1; - /* } */ case 11: - $24r$2 = t$1; - $s = 15; case 15: return $24r$2; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: embeddedTerm, $c: true, $r, $24r, $24r$1, $24r$2, _r, _r$1, _r$2, p, pos, t, t$1, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseInterfaceType = function parseInterfaceType() { - var {$24r, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, comment, comment$1, f, lbrace, list, p, pos, rbrace, t, typ, typ$1, $s, $deferred, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "InterfaceType"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - _r$1 = p.expect(76); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - pos = _r$1; - _r$2 = p.expect(51); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - lbrace = _r$2; - list = sliceType$5.nil; - /* while (true) { */ case 6: - /* */ if ((p.tok === 4)) { $s = 9; continue; } - /* */ if ((p.tok === 88)) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if ((p.tok === 4)) { */ case 9: - _r$3 = p.parseMethodSpec(); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - f = _r$3; - /* */ if (f.Names === sliceType.nil) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (f.Names === sliceType.nil) { */ case 14: - _r$4 = p.embeddedElem(f.Type); /* */ $s = 16; case 16: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - f.Type = _r$4; - /* } */ case 15: - _r$5 = p.expectSemi(); /* */ $s = 17; case 17: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - f.Comment = _r$5; - list = $append(list, f); - $s = 12; continue; - /* } else if ((p.tok === 88)) { */ case 10: - _r$6 = p.embeddedElem($ifaceNil); /* */ $s = 18; case 18: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - typ = _r$6; - _r$7 = p.expectSemi(); /* */ $s = 19; case 19: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - comment = _r$7; - list = $append(list, new ast.Field.ptr(ptrType$33.nil, sliceType.nil, typ, ptrType$35.nil, comment)); - $s = 12; continue; - /* } else { */ case 11: - _r$8 = p.tryIdentOrType(); /* */ $s = 20; case 20: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - t = _r$8; - /* */ if (!($interfaceIsEqual(t, $ifaceNil))) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if (!($interfaceIsEqual(t, $ifaceNil))) { */ case 21: - _r$9 = p.embeddedElem(t); /* */ $s = 24; case 24: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - typ$1 = _r$9; - _r$10 = p.expectSemi(); /* */ $s = 25; case 25: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - comment$1 = _r$10; - list = $append(list, new ast.Field.ptr(ptrType$33.nil, sliceType.nil, typ$1, ptrType$35.nil, comment$1)); - $s = 23; continue; - /* } else { */ case 22: - /* break parseElements; */ $s = 7; continue s; - /* } */ case 23: - /* } */ case 12: - case 8: - $s = 6; continue; - case 7: - _r$11 = p.expect(56); /* */ $s = 26; case 26: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - rbrace = _r$11; - $24r = new ast.InterfaceType.ptr(pos, new ast.FieldList.ptr(lbrace, list, rbrace), false); - $s = 27; case 27: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$9.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseInterfaceType, $c: true, $r, $24r, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, comment, comment$1, f, lbrace, list, p, pos, rbrace, t, typ, typ$1, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseMapType = function parseMapType() { - var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, key, p, pos, value, $s, $deferred, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "MapType"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - _r$1 = p.expect(77); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - pos = _r$1; - _r$2 = p.expect(50); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - _r$3 = p.parseType(); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - key = _r$3; - _r$4 = p.expect(55); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$4; - _r$5 = p.parseType(); /* */ $s = 8; case 8: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - value = _r$5; - $24r = new ast.MapType.ptr(pos, key, value); - $s = 9; case 9: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$38.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseMapType, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, key, p, pos, value, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseChanType = function parseChanType() { - var {$24r, _r, _r$1, _r$2, _r$3, arrow, dir, p, pos, value, $s, $deferred, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "ChanType"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - pos = p.pos; - dir = 3; - arrow = 0; - /* */ if (p.tok === 63) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (p.tok === 63) { */ case 4: - $r = p.next(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (p.tok === 36) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (p.tok === 36) { */ case 8: - arrow = p.pos; - $r = p.next(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - dir = 1; - /* } */ case 9: - $s = 6; continue; - /* } else { */ case 5: - _r$1 = p.expect(36); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - arrow = _r$1; - _r$2 = p.expect(63); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - dir = 2; - /* } */ case 6: - _r$3 = p.parseType(); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - value = _r$3; - $24r = new ast.ChanType.ptr(pos, arrow, dir, value); - $s = 14; case 14: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$39.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseChanType, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, arrow, dir, p, pos, value, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseTypeInstance = function parseTypeInstance(typ) { - var {$24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, closing, list, opening, p, typ, $s, $deferred, $r, $c} = $restore(this, {typ}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "TypeInstance"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - _r$1 = p.expect(50); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - opening = _r$1; - p.exprLev = p.exprLev + (1) >> 0; - list = sliceType$3.nil; - /* while (true) { */ case 5: - /* if (!(!((p.tok === 55)) && !((p.tok === 1)))) { break; } */ if(!(!((p.tok === 55)) && !((p.tok === 1)))) { $s = 6; continue; } - _r$2 = p.parseType(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - list = $append(list, _r$2); - _r$3 = p.atComma("type argument list", 55); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (!_r$3) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (!_r$3) { */ case 8: - /* break; */ $s = 6; continue; - /* } */ case 9: - $r = p.next(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 5; continue; - case 6: - p.exprLev = p.exprLev - (1) >> 0; - _r$4 = p.expectClosing(55, "type argument list"); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - closing = _r$4; - /* */ if (list.$length === 0) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (list.$length === 0) { */ case 13: - $r = p.errorExpected(closing, "type argument list"); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $24r = new ast.IndexExpr.ptr(typ, opening, new ast.BadExpr.ptr(opening + 1 >> 0, closing), closing); - $s = 16; case 16: return $24r; - /* } */ case 14: - $24r$1 = typeparams.PackIndexExpr(typ, opening, list, closing); - $s = 17; case 17: return $24r$1; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseTypeInstance, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, closing, list, opening, p, typ, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.tryIdentOrType = function tryIdentOrType() { - var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, _1, _r, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, lbrack, lparen, p, rparen, typ, typ$1, $s, $deferred, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - _r = incNestLev(p); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([decNestLev, [_r]]); - _1 = p.tok; - /* */ if (_1 === (4)) { $s = 3; continue; } - /* */ if (_1 === (50)) { $s = 4; continue; } - /* */ if (_1 === (82)) { $s = 5; continue; } - /* */ if (_1 === (14)) { $s = 6; continue; } - /* */ if (_1 === (71)) { $s = 7; continue; } - /* */ if (_1 === (76)) { $s = 8; continue; } - /* */ if (_1 === (77)) { $s = 9; continue; } - /* */ if ((_1 === (63)) || (_1 === (36))) { $s = 10; continue; } - /* */ if (_1 === (49)) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (_1 === (4)) { */ case 3: - _r$1 = p.parseTypeName(ptrType$2.nil); /* */ $s = 13; case 13: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - typ = _r$1; - /* */ if (p.tok === 50) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (p.tok === 50) { */ case 14: - _r$2 = p.parseTypeInstance(typ); /* */ $s = 16; case 16: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - typ = _r$2; - /* } */ case 15: - $s = -1; return typ; - /* } else if (_1 === (50)) { */ case 4: - _r$3 = p.expect(50); /* */ $s = 17; case 17: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - lbrack = _r$3; - _r$4 = p.parseArrayType(lbrack, $ifaceNil); /* */ $s = 18; case 18: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $24r = _r$4; - $s = 19; case 19: return $24r; - /* } else if (_1 === (82)) { */ case 5: - _r$5 = p.parseStructType(); /* */ $s = 20; case 20: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - $24r$1 = _r$5; - $s = 21; case 21: return $24r$1; - /* } else if (_1 === (14)) { */ case 6: - _r$6 = p.parsePointerType(); /* */ $s = 22; case 22: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - $24r$2 = _r$6; - $s = 23; case 23: return $24r$2; - /* } else if (_1 === (71)) { */ case 7: - _r$7 = p.parseFuncType(); /* */ $s = 24; case 24: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - $24r$3 = _r$7; - $s = 25; case 25: return $24r$3; - /* } else if (_1 === (76)) { */ case 8: - _r$8 = p.parseInterfaceType(); /* */ $s = 26; case 26: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - $24r$4 = _r$8; - $s = 27; case 27: return $24r$4; - /* } else if (_1 === (77)) { */ case 9: - _r$9 = p.parseMapType(); /* */ $s = 28; case 28: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - $24r$5 = _r$9; - $s = 29; case 29: return $24r$5; - /* } else if ((_1 === (63)) || (_1 === (36))) { */ case 10: - _r$10 = p.parseChanType(); /* */ $s = 30; case 30: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - $24r$6 = _r$10; - $s = 31; case 31: return $24r$6; - /* } else if (_1 === (49)) { */ case 11: - lparen = p.pos; - $r = p.next(); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$11 = p.parseType(); /* */ $s = 33; case 33: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - typ$1 = _r$11; - _r$12 = p.expect(54); /* */ $s = 34; case 34: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - rparen = _r$12; - $s = -1; return new ast.ParenExpr.ptr(lparen, typ$1, rparen); - /* } */ case 12: - case 2: - $s = -1; return $ifaceNil; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: tryIdentOrType, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, _1, _r, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, lbrack, lparen, p, rparen, typ, typ$1, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseStmtList = function parseStmtList() { - var {$24r, _r, _r$1, list, p, $s, $deferred, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - list = sliceType$7.nil; - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "StatementList"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - /* while (true) { */ case 4: - /* if (!(!((p.tok === 62)) && !((p.tok === 66)) && !((p.tok === 56)) && !((p.tok === 1)))) { break; } */ if(!(!((p.tok === 62)) && !((p.tok === 66)) && !((p.tok === 56)) && !((p.tok === 1)))) { $s = 5; continue; } - _r$1 = p.parseStmt(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - list = $append(list, _r$1); - $s = 4; continue; - case 5: - $24r = list; - $s = 7; case 7: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return list; } if($curGoroutine.asleep) { var $f = {$blk: parseStmtList, $c: true, $r, $24r, _r, _r$1, list, p, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseBody = function parseBody() { - var {$24r, _r, _r$1, _r$2, _r$3, lbrace, list, p, rbrace, $s, $deferred, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "Body"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - _r$1 = p.expect(51); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - lbrace = _r$1; - _r$2 = p.parseStmtList(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - list = _r$2; - _r$3 = p.expect2(56); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - rbrace = _r$3; - $24r = new ast.BlockStmt.ptr(lbrace, list, rbrace); - $s = 7; case 7: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$13.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseBody, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, lbrace, list, p, rbrace, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseBlockStmt = function parseBlockStmt() { - var {$24r, _r, _r$1, _r$2, _r$3, lbrace, list, p, rbrace, $s, $deferred, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "BlockStmt"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - _r$1 = p.expect(51); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - lbrace = _r$1; - _r$2 = p.parseStmtList(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - list = _r$2; - _r$3 = p.expect2(56); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - rbrace = _r$3; - $24r = new ast.BlockStmt.ptr(lbrace, list, rbrace); - $s = 7; case 7: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$13.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseBlockStmt, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, lbrace, list, p, rbrace, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseFuncTypeOrLit = function parseFuncTypeOrLit() { - var {$24r, $24r$1, _r, _r$1, _r$2, body, p, typ, $s, $deferred, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "FuncTypeOrLit"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - _r$1 = p.parseFuncType(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - typ = _r$1; - /* */ if (!((p.tok === 51))) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (!((p.tok === 51))) { */ case 5: - $24r = typ; - $s = 7; case 7: return $24r; - /* } */ case 6: - p.exprLev = p.exprLev + (1) >> 0; - _r$2 = p.parseBody(); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - body = _r$2; - p.exprLev = p.exprLev - (1) >> 0; - $24r$1 = new ast.FuncLit.ptr(typ, body); - $s = 9; case 9: return $24r$1; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseFuncTypeOrLit, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, body, p, typ, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseOperand = function parseOperand() { - var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, isIdent, lparen, p, pos, rparen, typ, x, x$1, x$2, $s, $deferred, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "Operand"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - _1 = p.tok; - /* */ if (_1 === (4)) { $s = 5; continue; } - /* */ if ((_1 === (5)) || (_1 === (6)) || (_1 === (7)) || (_1 === (8)) || (_1 === (9))) { $s = 6; continue; } - /* */ if (_1 === (49)) { $s = 7; continue; } - /* */ if (_1 === (71)) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (_1 === (4)) { */ case 5: - _r$1 = p.parseIdent(); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - x = _r$1; - $24r = x; - $s = 11; case 11: return $24r; - /* } else if ((_1 === (5)) || (_1 === (6)) || (_1 === (7)) || (_1 === (8)) || (_1 === (9))) { */ case 6: - x$1 = new ast.BasicLit.ptr(p.pos, p.tok, p.lit); - $r = p.next(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $24r$1 = x$1; - $s = 13; case 13: return $24r$1; - /* } else if (_1 === (49)) { */ case 7: - lparen = p.pos; - $r = p.next(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - p.exprLev = p.exprLev + (1) >> 0; - _r$2 = p.parseRhs(); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - x$2 = _r$2; - p.exprLev = p.exprLev - (1) >> 0; - _r$3 = p.expect(54); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - rparen = _r$3; - $24r$2 = new ast.ParenExpr.ptr(lparen, x$2, rparen); - $s = 17; case 17: return $24r$2; - /* } else if (_1 === (71)) { */ case 8: - _r$4 = p.parseFuncTypeOrLit(); /* */ $s = 18; case 18: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $24r$3 = _r$4; - $s = 19; case 19: return $24r$3; - /* } */ case 9: - case 4: - _r$5 = p.tryIdentOrType(); /* */ $s = 20; case 20: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - typ = _r$5; - /* */ if (!($interfaceIsEqual(typ, $ifaceNil))) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if (!($interfaceIsEqual(typ, $ifaceNil))) { */ case 21: - _tuple = $assertType(typ, ptrType$2, true); - isIdent = _tuple[1]; - assert(!isIdent, "type cannot be identifier"); - $24r$4 = typ; - $s = 23; case 23: return $24r$4; - /* } */ case 22: - pos = p.pos; - $r = p.errorExpected(pos, "operand"); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.advance(stmtStart); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $24r$5 = new ast.BadExpr.ptr(pos, p.pos); - $s = 26; case 26: return $24r$5; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseOperand, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, isIdent, lparen, p, pos, rparen, typ, x, x$1, x$2, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseSelector = function parseSelector(x) { - var {$24r, _r, _r$1, p, sel, x, $s, $deferred, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "Selector"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - _r$1 = p.parseIdent(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - sel = _r$1; - $24r = new ast.SelectorExpr.ptr(x, sel); - $s = 5; case 5: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseSelector, $c: true, $r, $24r, _r, _r$1, p, sel, x, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseTypeAssertion = function parseTypeAssertion(x) { - var {$24r, _r, _r$1, _r$2, _r$3, lparen, p, rparen, typ, x, $s, $deferred, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "TypeAssertion"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - _r$1 = p.expect(49); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - lparen = _r$1; - typ = $ifaceNil; - /* */ if (p.tok === 84) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (p.tok === 84) { */ case 5: - $r = p.next(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 7; continue; - /* } else { */ case 6: - _r$2 = p.parseType(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - typ = _r$2; - /* } */ case 7: - _r$3 = p.expect(54); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - rparen = _r$3; - $24r = new ast.TypeAssertExpr.ptr(x, lparen, typ, rparen); - $s = 11; case 11: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseTypeAssertion, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, lparen, p, rparen, typ, x, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseIndexOrSliceOrInstance = function parseIndexOrSliceOrInstance(x) { - var {$24r, $24r$1, $24r$2, $24r$3, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, args, colons, index, lbrack, ncolons, p, rbrack, rbrack$1, slice3, x, $s, $deferred, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "parseIndexOrSliceOrInstance"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - _r$1 = p.expect(50); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - lbrack = _r$1; - /* */ if (p.tok === 55) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (p.tok === 55) { */ case 5: - $r = p.errorExpected(p.pos, "operand"); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - rbrack = p.pos; - $r = p.next(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $24r = new ast.IndexExpr.ptr(x, lbrack, new ast.BadExpr.ptr(rbrack, rbrack), rbrack); - $s = 9; case 9: return $24r; - /* } */ case 6: - p.exprLev = p.exprLev + (1) >> 0; - args = sliceType$3.nil; - index = arrayType.zero(); - colons = arrayType$1.zero(); - /* */ if (!((p.tok === 58))) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (!((p.tok === 58))) { */ case 10: - _r$2 = p.parseRhs(); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - index[0] = _r$2; - /* } */ case 11: - ncolons = 0; - _1 = p.tok; - /* */ if (_1 === (58)) { $s = 14; continue; } - /* */ if (_1 === (52)) { $s = 15; continue; } - /* */ $s = 16; continue; - /* if (_1 === (58)) { */ case 14: - /* while (true) { */ case 17: - /* if (!((p.tok === 58) && ncolons < 2)) { break; } */ if(!((p.tok === 58) && ncolons < 2)) { $s = 18; continue; } - ((ncolons < 0 || ncolons >= colons.length) ? ($throwRuntimeError("index out of range"), undefined) : colons[ncolons] = p.pos); - ncolons = ncolons + (1) >> 0; - $r = p.next(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!((p.tok === 58)) && !((p.tok === 55)) && !((p.tok === 1))) { $s = 20; continue; } - /* */ $s = 21; continue; - /* if (!((p.tok === 58)) && !((p.tok === 55)) && !((p.tok === 1))) { */ case 20: - _r$3 = p.parseRhs(); /* */ $s = 22; case 22: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - ((ncolons < 0 || ncolons >= index.length) ? ($throwRuntimeError("index out of range"), undefined) : index[ncolons] = _r$3); - /* } */ case 21: - $s = 17; continue; - case 18: - $s = 16; continue; - /* } else if (_1 === (52)) { */ case 15: - args = $append(args, index[0]); - /* while (true) { */ case 23: - /* if (!(p.tok === 52)) { break; } */ if(!(p.tok === 52)) { $s = 24; continue; } - $r = p.next(); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!((p.tok === 55)) && !((p.tok === 1))) { $s = 26; continue; } - /* */ $s = 27; continue; - /* if (!((p.tok === 55)) && !((p.tok === 1))) { */ case 26: - _r$4 = p.parseType(); /* */ $s = 28; case 28: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - args = $append(args, _r$4); - /* } */ case 27: - $s = 23; continue; - case 24: - /* } */ case 16: - case 13: - p.exprLev = p.exprLev - (1) >> 0; - _r$5 = p.expect(55); /* */ $s = 29; case 29: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - rbrack$1 = _r$5; - /* */ if (ncolons > 0) { $s = 30; continue; } - /* */ $s = 31; continue; - /* if (ncolons > 0) { */ case 30: - slice3 = false; - /* */ if (ncolons === 2) { $s = 32; continue; } - /* */ $s = 33; continue; - /* if (ncolons === 2) { */ case 32: - slice3 = true; - /* */ if ($interfaceIsEqual(index[1], $ifaceNil)) { $s = 34; continue; } - /* */ $s = 35; continue; - /* if ($interfaceIsEqual(index[1], $ifaceNil)) { */ case 34: - $r = p.error(colons[0], "middle index required in 3-index slice"); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - index[1] = new ast.BadExpr.ptr(colons[0] + 1 >> 0, colons[1]); - /* } */ case 35: - /* */ if ($interfaceIsEqual(index[2], $ifaceNil)) { $s = 37; continue; } - /* */ $s = 38; continue; - /* if ($interfaceIsEqual(index[2], $ifaceNil)) { */ case 37: - $r = p.error(colons[1], "final index required in 3-index slice"); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - index[2] = new ast.BadExpr.ptr(colons[1] + 1 >> 0, rbrack$1); - /* } */ case 38: - /* } */ case 33: - $24r$1 = new ast.SliceExpr.ptr(x, lbrack, index[0], index[1], index[2], slice3, rbrack$1); - $s = 40; case 40: return $24r$1; - /* } */ case 31: - /* */ if (args.$length === 0) { $s = 41; continue; } - /* */ $s = 42; continue; - /* if (args.$length === 0) { */ case 41: - $24r$2 = new ast.IndexExpr.ptr(x, lbrack, index[0], rbrack$1); - $s = 43; case 43: return $24r$2; - /* } */ case 42: - $24r$3 = typeparams.PackIndexExpr(x, lbrack, args, rbrack$1); - $s = 44; case 44: return $24r$3; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseIndexOrSliceOrInstance, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, args, colons, index, lbrack, ncolons, p, rbrack, rbrack$1, slice3, x, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseCallOrConversion = function parseCallOrConversion(fun) { - var {$24r, _r, _r$1, _r$2, _r$3, _r$4, ellipsis, fun, list, lparen, p, rparen, $s, $deferred, $r, $c} = $restore(this, {fun}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "CallOrConversion"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - _r$1 = p.expect(49); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - lparen = _r$1; - p.exprLev = p.exprLev + (1) >> 0; - list = sliceType$3.nil; - ellipsis = 0; - /* while (true) { */ case 5: - /* if (!(!((p.tok === 54)) && !((p.tok === 1)) && !new token.Pos(ellipsis).IsValid())) { break; } */ if(!(!((p.tok === 54)) && !((p.tok === 1)) && !new token.Pos(ellipsis).IsValid())) { $s = 6; continue; } - _r$2 = p.parseRhs(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - list = $append(list, _r$2); - /* */ if (p.tok === 48) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (p.tok === 48) { */ case 8: - ellipsis = p.pos; - $r = p.next(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 9: - _r$3 = p.atComma("argument list", 54); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (!_r$3) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (!_r$3) { */ case 11: - /* break; */ $s = 6; continue; - /* } */ case 12: - $r = p.next(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 5; continue; - case 6: - p.exprLev = p.exprLev - (1) >> 0; - _r$4 = p.expectClosing(54, "argument list"); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - rparen = _r$4; - $24r = new ast.CallExpr.ptr(fun, lparen, list, ellipsis, rparen); - $s = 16; case 16: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$40.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseCallOrConversion, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, ellipsis, fun, list, lparen, p, rparen, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseValue = function parseValue() { - var {$24r, $24r$1, _r, _r$1, _r$2, p, x, $s, $deferred, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "Element"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - /* */ if (p.tok === 51) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (p.tok === 51) { */ case 4: - _r$1 = p.parseLiteralValue($ifaceNil); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 7; case 7: return $24r; - /* } */ case 5: - _r$2 = p.parseExpr(); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - x = _r$2; - $24r$1 = x; - $s = 9; case 9: return $24r$1; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseValue, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, p, x, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseElement = function parseElement() { - var {$24r, _r, _r$1, _r$2, colon, p, x, $s, $deferred, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "Element"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - _r$1 = p.parseValue(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - x = _r$1; - /* */ if (p.tok === 58) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (p.tok === 58) { */ case 5: - colon = p.pos; - $r = p.next(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$2 = p.parseValue(); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - x = new ast.KeyValueExpr.ptr(x, colon, _r$2); - /* } */ case 6: - $24r = x; - $s = 9; case 9: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseElement, $c: true, $r, $24r, _r, _r$1, _r$2, colon, p, x, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseElementList = function parseElementList() { - var {$24r, _r, _r$1, _r$2, list, p, $s, $deferred, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - list = sliceType$3.nil; - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "ElementList"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - /* while (true) { */ case 4: - /* if (!(!((p.tok === 56)) && !((p.tok === 1)))) { break; } */ if(!(!((p.tok === 56)) && !((p.tok === 1)))) { $s = 5; continue; } - _r$1 = p.parseElement(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - list = $append(list, _r$1); - _r$2 = p.atComma("composite literal", 56); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (!_r$2) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (!_r$2) { */ case 7: - /* break; */ $s = 5; continue; - /* } */ case 8: - $r = p.next(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 4; continue; - case 5: - $24r = list; - $s = 11; case 11: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return list; } if($curGoroutine.asleep) { var $f = {$blk: parseElementList, $c: true, $r, $24r, _r, _r$1, _r$2, list, p, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseLiteralValue = function parseLiteralValue(typ) { - var {$24r, _r, _r$1, _r$2, _r$3, elts, lbrace, p, rbrace, typ, $s, $deferred, $r, $c} = $restore(this, {typ}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "LiteralValue"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - _r$1 = p.expect(51); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - lbrace = _r$1; - elts = sliceType$3.nil; - p.exprLev = p.exprLev + (1) >> 0; - /* */ if (!((p.tok === 56))) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (!((p.tok === 56))) { */ case 5: - _r$2 = p.parseElementList(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - elts = _r$2; - /* } */ case 6: - p.exprLev = p.exprLev - (1) >> 0; - _r$3 = p.expectClosing(56, "composite literal"); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - rbrace = _r$3; - $24r = new ast.CompositeLit.ptr(typ, lbrace, elts, rbrace, false); - $s = 9; case 9: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseLiteralValue, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, elts, lbrace, p, rbrace, typ, $s, $deferred};return $f; } } - }; - unparen = function unparen$1(x) { - var _tuple, isParen, p, x; - _tuple = $assertType(x, ptrType$41, true); - p = _tuple[0]; - isParen = _tuple[1]; - if (isParen) { - x = unparen(p.X); - } - return x; - }; - $ptrType(parser).prototype.parsePrimaryExpr = function parsePrimaryExpr(x) { - var {$24r, $24r$1, $24r$2, $24r$3, _1, _2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, n, p, pos, sel, t, x, $s, $deferred, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - n = [n]; - p = [p]; - p[0] = this; - /* */ if (p[0].trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p[0].trace) { */ case 1: - _r = trace(p[0], "PrimaryExpr"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - /* */ if ($interfaceIsEqual(x, $ifaceNil)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if ($interfaceIsEqual(x, $ifaceNil)) { */ case 4: - _r$1 = p[0].parseOperand(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - x = _r$1; - /* } */ case 5: - n[0] = 0; - $deferred.push([(function(n, p) { return function parser·parsePrimaryExpr·func1() { - p[0].nestLev = p[0].nestLev - (n[0]) >> 0; - }; })(n, p), []]); - n[0] = 1; - /* while (true) { */ case 7: - _r$2 = incNestLev(p[0]); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - _1 = p[0].tok; - /* */ if (_1 === (53)) { $s = 11; continue; } - /* */ if (_1 === (50)) { $s = 12; continue; } - /* */ if (_1 === (49)) { $s = 13; continue; } - /* */ if (_1 === (51)) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (_1 === (53)) { */ case 11: - $r = p[0].next(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _2 = p[0].tok; - /* */ if (_2 === (4)) { $s = 19; continue; } - /* */ if (_2 === (49)) { $s = 20; continue; } - /* */ $s = 21; continue; - /* if (_2 === (4)) { */ case 19: - _r$3 = p[0].parseSelector(x); /* */ $s = 23; case 23: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - x = _r$3; - $s = 22; continue; - /* } else if (_2 === (49)) { */ case 20: - _r$4 = p[0].parseTypeAssertion(x); /* */ $s = 24; case 24: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - x = _r$4; - $s = 22; continue; - /* } else { */ case 21: - pos = p[0].pos; - $r = p[0].errorExpected(pos, "selector or type assertion"); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!((p[0].tok === 56))) { $s = 26; continue; } - /* */ $s = 27; continue; - /* if (!((p[0].tok === 56))) { */ case 26: - $r = p[0].next(); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 27: - sel = new ast.Ident.ptr(pos, "_", ptrType$3.nil); - x = new ast.SelectorExpr.ptr(x, sel); - /* } */ case 22: - case 18: - $s = 16; continue; - /* } else if (_1 === (50)) { */ case 12: - _r$5 = p[0].parseIndexOrSliceOrInstance(x); /* */ $s = 29; case 29: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - x = _r$5; - $s = 16; continue; - /* } else if (_1 === (49)) { */ case 13: - _r$6 = p[0].parseCallOrConversion(x); /* */ $s = 30; case 30: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - x = _r$6; - $s = 16; continue; - /* } else if (_1 === (51)) { */ case 14: - t = unparen(x); - _ref = t; - /* */ if ($assertType(_ref, ptrType$42, true)[1] || $assertType(_ref, ptrType$2, true)[1] || $assertType(_ref, ptrType$5, true)[1]) { $s = 31; continue; } - /* */ if ($assertType(_ref, ptrType$29, true)[1] || $assertType(_ref, ptrType$30, true)[1]) { $s = 32; continue; } - /* */ if ($assertType(_ref, ptrType$34, true)[1] || $assertType(_ref, ptrType$6, true)[1] || $assertType(_ref, ptrType$38, true)[1]) { $s = 33; continue; } - /* */ $s = 34; continue; - /* if ($assertType(_ref, ptrType$42, true)[1] || $assertType(_ref, ptrType$2, true)[1] || $assertType(_ref, ptrType$5, true)[1]) { */ case 31: - /* */ if (p[0].exprLev < 0) { $s = 36; continue; } - /* */ $s = 37; continue; - /* if (p[0].exprLev < 0) { */ case 36: - $24r = x; - $s = 38; case 38: return $24r; - /* } */ case 37: - $s = 35; continue; - /* } else if ($assertType(_ref, ptrType$29, true)[1] || $assertType(_ref, ptrType$30, true)[1]) { */ case 32: - /* */ if (p[0].exprLev < 0) { $s = 39; continue; } - /* */ $s = 40; continue; - /* if (p[0].exprLev < 0) { */ case 39: - $24r$1 = x; - $s = 41; case 41: return $24r$1; - /* } */ case 40: - $s = 35; continue; - /* } else if ($assertType(_ref, ptrType$34, true)[1] || $assertType(_ref, ptrType$6, true)[1] || $assertType(_ref, ptrType$38, true)[1]) { */ case 33: - $s = 35; continue; - /* } else { */ case 34: - $24r$2 = x; - $s = 42; case 42: return $24r$2; - /* } */ case 35: - /* */ if (!($interfaceIsEqual(t, x))) { $s = 43; continue; } - /* */ $s = 44; continue; - /* if (!($interfaceIsEqual(t, x))) { */ case 43: - _r$7 = t.Pos(); /* */ $s = 45; case 45: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - $r = p[0].error(_r$7, "cannot parenthesize type in composite literal"); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 44: - _r$8 = p[0].parseLiteralValue(x); /* */ $s = 47; case 47: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - x = _r$8; - $s = 16; continue; - /* } else { */ case 15: - $24r$3 = x; - $s = 48; case 48: return $24r$3; - /* } */ case 16: - case 10: - n[0] = n[0] + (1) >> 0; - $s = 7; continue; - case 8: - $s = -1; return $ifaceNil; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parsePrimaryExpr, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, _1, _2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, n, p, pos, sel, t, x, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseUnaryExpr = function parseUnaryExpr() { - var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tuple, _tuple$1, arrow, dir, ok, op, p, pos, pos$1, typ, x, x$1, x$2, $s, $deferred, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - _r = incNestLev(p); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([decNestLev, [_r]]); - /* */ if (p.trace) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (p.trace) { */ case 2: - _r$1 = trace(p, "UnaryExpr"); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $deferred.push([un, [_r$1]]); - /* } */ case 3: - _1 = p.tok; - /* */ if ((_1 === (12)) || (_1 === (13)) || (_1 === (43)) || (_1 === (19)) || (_1 === (17)) || (_1 === (88))) { $s = 6; continue; } - /* */ if (_1 === (36)) { $s = 7; continue; } - /* */ if (_1 === (14)) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if ((_1 === (12)) || (_1 === (13)) || (_1 === (43)) || (_1 === (19)) || (_1 === (17)) || (_1 === (88))) { */ case 6: - _tmp = p.pos; - _tmp$1 = p.tok; - pos = _tmp; - op = _tmp$1; - $r = p.next(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$2 = p.parseUnaryExpr(); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - x = _r$2; - $24r = new ast.UnaryExpr.ptr(pos, op, x); - $s = 12; case 12: return $24r; - /* } else if (_1 === (36)) { */ case 7: - arrow = p.pos; - $r = p.next(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$3 = p.parseUnaryExpr(); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - x$1 = _r$3; - _tuple = $assertType(x$1, ptrType$39, true); - typ = _tuple[0]; - ok = _tuple[1]; - /* */ if (ok) { $s = 15; continue; } - /* */ $s = 16; continue; - /* if (ok) { */ case 15: - dir = 1; - /* while (true) { */ case 17: - /* if (!(ok && (dir === 1))) { break; } */ if(!(ok && (dir === 1))) { $s = 18; continue; } - /* */ if (typ.Dir === 2) { $s = 19; continue; } - /* */ $s = 20; continue; - /* if (typ.Dir === 2) { */ case 19: - $r = p.errorExpected(typ.Arrow, "'chan'"); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 20: - _tmp$2 = typ.Arrow; - _tmp$3 = arrow; - _tmp$4 = arrow; - arrow = _tmp$2; - typ.Begin = _tmp$3; - typ.Arrow = _tmp$4; - _tmp$5 = typ.Dir; - _tmp$6 = 2; - dir = _tmp$5; - typ.Dir = _tmp$6; - _tuple$1 = $assertType(typ.Value, ptrType$39, true); - typ = _tuple$1[0]; - ok = _tuple$1[1]; - $s = 17; continue; - case 18: - /* */ if (dir === 1) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if (dir === 1) { */ case 22: - $r = p.errorExpected(arrow, "channel type"); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 23: - $24r$1 = x$1; - $s = 25; case 25: return $24r$1; - /* } */ case 16: - $24r$2 = new ast.UnaryExpr.ptr(arrow, 36, x$1); - $s = 26; case 26: return $24r$2; - /* } else if (_1 === (14)) { */ case 8: - pos$1 = p.pos; - $r = p.next(); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$4 = p.parseUnaryExpr(); /* */ $s = 28; case 28: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - x$2 = _r$4; - $24r$3 = new ast.StarExpr.ptr(pos$1, x$2); - $s = 29; case 29: return $24r$3; - /* } */ case 9: - case 5: - _r$5 = p.parsePrimaryExpr($ifaceNil); /* */ $s = 30; case 30: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - $24r$4 = _r$5; - $s = 31; case 31: return $24r$4; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseUnaryExpr, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tuple, _tuple$1, arrow, dir, ok, op, p, pos, pos$1, typ, x, x$1, x$2, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.tokPrec = function tokPrec() { - var p, tok; - p = this; - tok = p.tok; - if (p.inRhs && (tok === 42)) { - tok = 39; - } - return [tok, new token.Token(tok).Precedence()]; - }; - $ptrType(parser).prototype.parseBinaryExpr = function parseBinaryExpr(x, prec1) { - var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _tuple, n, op, oprec, p, pos, prec1, x, y, $s, $deferred, $r, $c} = $restore(this, {x, prec1}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - n = [n]; - p = [p]; - p[0] = this; - /* */ if (p[0].trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p[0].trace) { */ case 1: - _r = trace(p[0], "BinaryExpr"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - /* */ if ($interfaceIsEqual(x, $ifaceNil)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if ($interfaceIsEqual(x, $ifaceNil)) { */ case 4: - _r$1 = p[0].parseUnaryExpr(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - x = _r$1; - /* } */ case 5: - n[0] = 0; - $deferred.push([(function(n, p) { return function parser·parseBinaryExpr·func1() { - p[0].nestLev = p[0].nestLev - (n[0]) >> 0; - }; })(n, p), []]); - n[0] = 1; - /* while (true) { */ case 7: - _r$2 = incNestLev(p[0]); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - _tuple = p[0].tokPrec(); - op = _tuple[0]; - oprec = _tuple[1]; - /* */ if (oprec < prec1) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (oprec < prec1) { */ case 10: - $24r = x; - $s = 12; case 12: return $24r; - /* } */ case 11: - _r$3 = p[0].expect(op); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - pos = _r$3; - _r$4 = p[0].parseBinaryExpr($ifaceNil, oprec + 1 >> 0); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - y = _r$4; - x = new ast.BinaryExpr.ptr(x, pos, op, y); - n[0] = n[0] + (1) >> 0; - $s = 7; continue; - case 8: - $s = -1; return $ifaceNil; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseBinaryExpr, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _tuple, n, op, oprec, p, pos, prec1, x, y, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseExpr = function parseExpr() { - var {$24r, _r, _r$1, p, $s, $deferred, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "Expression"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - _r$1 = p.parseBinaryExpr($ifaceNil, 1); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 5; case 5: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseExpr, $c: true, $r, $24r, _r, _r$1, p, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseRhs = function parseRhs() { - var {_r, old, p, x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - old = p.inRhs; - p.inRhs = true; - _r = p.parseExpr(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - x = _r; - p.inRhs = old; - $s = -1; return x; - /* */ } return; } var $f = {$blk: parseRhs, $c: true, $r, _r, old, p, x, $s};return $f; - }; - $ptrType(parser).prototype.parseSimpleStmt = function parseSimpleStmt(mode) { - var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, _1, _2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tmp, _tmp$1, _tuple, arrow, colon, isIdent, isRange, label, mode, p, pos, pos$1, s, stmt, tok, x, y, y$1, $s, $deferred, $r, $c} = $restore(this, {mode}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "SimpleStmt"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - _r$1 = p.parseList(false); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - x = _r$1; - _1 = p.tok; - /* */ if ((_1 === (47)) || (_1 === (42)) || (_1 === (23)) || (_1 === (24)) || (_1 === (25)) || (_1 === (26)) || (_1 === (27)) || (_1 === (28)) || (_1 === (29)) || (_1 === (30)) || (_1 === (31)) || (_1 === (32)) || (_1 === (33))) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if ((_1 === (47)) || (_1 === (42)) || (_1 === (23)) || (_1 === (24)) || (_1 === (25)) || (_1 === (26)) || (_1 === (27)) || (_1 === (28)) || (_1 === (29)) || (_1 === (30)) || (_1 === (31)) || (_1 === (32)) || (_1 === (33))) { */ case 6: - _tmp = p.pos; - _tmp$1 = p.tok; - pos = _tmp; - tok = _tmp$1; - $r = p.next(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - y = sliceType$3.nil; - isRange = false; - /* */ if ((mode === 2) && (p.tok === 79) && ((tok === 47) || (tok === 42))) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if ((mode === 2) && (p.tok === 79) && ((tok === 47) || (tok === 42))) { */ case 9: - pos$1 = p.pos; - $r = p.next(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$2 = p.parseRhs(); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - y = new sliceType$3([new ast.UnaryExpr.ptr(pos$1, 79, _r$2)]); - isRange = true; - $s = 11; continue; - /* } else { */ case 10: - _r$3 = p.parseList(true); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - y = _r$3; - /* } */ case 11: - $24r = [new ast.AssignStmt.ptr(x, pos, tok, y), isRange]; - $s = 15; case 15: return $24r; - /* } */ case 7: - case 5: - /* */ if (x.$length > 1) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (x.$length > 1) { */ case 16: - _r$4 = (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]).Pos(); /* */ $s = 18; case 18: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $r = p.errorExpected(_r$4, "1 expression"); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 17: - _2 = p.tok; - /* */ if (_2 === (58)) { $s = 21; continue; } - /* */ if (_2 === (36)) { $s = 22; continue; } - /* */ if ((_2 === (37)) || (_2 === (38))) { $s = 23; continue; } - /* */ $s = 24; continue; - /* if (_2 === (58)) { */ case 21: - colon = p.pos; - $r = p.next(); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _tuple = $assertType((0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]), ptrType$2, true); - label = _tuple[0]; - isIdent = _tuple[1]; - /* */ if ((mode === 1) && isIdent) { $s = 26; continue; } - /* */ $s = 27; continue; - /* if ((mode === 1) && isIdent) { */ case 26: - _r$5 = p.parseStmt(); /* */ $s = 28; case 28: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - stmt = new ast.LabeledStmt.ptr(label, colon, _r$5); - $24r$1 = [stmt, false]; - $s = 29; case 29: return $24r$1; - /* } */ case 27: - $r = p.error(colon, "illegal label declaration"); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$6 = (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]).Pos(); /* */ $s = 31; case 31: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - $24r$2 = [new ast.BadStmt.ptr(_r$6, colon + 1 >> 0), false]; - $s = 32; case 32: return $24r$2; - /* } else if (_2 === (36)) { */ case 22: - arrow = p.pos; - $r = p.next(); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$7 = p.parseRhs(); /* */ $s = 34; case 34: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - y$1 = _r$7; - $24r$3 = [new ast.SendStmt.ptr((0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]), arrow, y$1), false]; - $s = 35; case 35: return $24r$3; - /* } else if ((_2 === (37)) || (_2 === (38))) { */ case 23: - s = new ast.IncDecStmt.ptr((0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]), p.pos, p.tok); - $r = p.next(); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $24r$4 = [s, false]; - $s = 37; case 37: return $24r$4; - /* } */ case 24: - case 20: - $24r$5 = [new ast.ExprStmt.ptr((0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])), false]; - $s = 38; case 38: return $24r$5; - /* */ } return; } } catch(err) { $err = err; $s = -1; return [$ifaceNil, false]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseSimpleStmt, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, _1, _2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tmp, _tmp$1, _tuple, arrow, colon, isIdent, isRange, label, mode, p, pos, pos$1, s, stmt, tok, x, y, y$1, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseCallExpr = function parseCallExpr(callType) { - var {_arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, call, callType, isBad, isCall, p, t, x, $s, $r, $c} = $restore(this, {callType}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - _r = p.parseRhs(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - x = _r; - t = unparen(x); - /* */ if (!($interfaceIsEqual(t, x))) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!($interfaceIsEqual(t, x))) { */ case 2: - _r$1 = x.Pos(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _arg = _r$1; - _r$2 = fmt.Sprintf("expression in %s must not be parenthesized", new sliceType$2([new $String(callType)])); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _arg$1 = _r$2; - $r = p.error(_arg, _arg$1); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x = t; - /* } */ case 3: - _tuple = $assertType(x, ptrType$40, true); - call = _tuple[0]; - isCall = _tuple[1]; - if (isCall) { - $s = -1; return call; - } - _tuple$1 = $assertType(x, ptrType$42, true); - isBad = _tuple$1[1]; - /* */ if (!isBad) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (!isBad) { */ case 7: - _r$3 = x.End(); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$4 = p.safePos(_r$3); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _arg$2 = _r$4; - _r$5 = fmt.Sprintf("expression in %s must be function call", new sliceType$2([new $String(callType)])); /* */ $s = 11; case 11: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _arg$3 = _r$5; - $r = p.error(_arg$2, _arg$3); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 8: - $s = -1; return ptrType$40.nil; - /* */ } return; } var $f = {$blk: parseCallExpr, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, call, callType, isBad, isCall, p, t, x, $s};return $f; - }; - $ptrType(parser).prototype.parseGoStmt = function parseGoStmt() { - var {$24r, $24r$1, _r, _r$1, _r$2, _r$3, call, p, pos, $s, $deferred, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "GoStmt"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - _r$1 = p.expect(72); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - pos = _r$1; - _r$2 = p.parseCallExpr("go"); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - call = _r$2; - _r$3 = p.expectSemi(); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$3; - /* */ if (call === ptrType$40.nil) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (call === ptrType$40.nil) { */ case 7: - $24r = new ast.BadStmt.ptr(pos, pos + 2 >> 0); - $s = 9; case 9: return $24r; - /* } */ case 8: - $24r$1 = new ast.GoStmt.ptr(pos, call); - $s = 10; case 10: return $24r$1; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseGoStmt, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _r$3, call, p, pos, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseDeferStmt = function parseDeferStmt() { - var {$24r, $24r$1, _r, _r$1, _r$2, _r$3, call, p, pos, $s, $deferred, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "DeferStmt"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - _r$1 = p.expect(67); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - pos = _r$1; - _r$2 = p.parseCallExpr("defer"); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - call = _r$2; - _r$3 = p.expectSemi(); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$3; - /* */ if (call === ptrType$40.nil) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (call === ptrType$40.nil) { */ case 7: - $24r = new ast.BadStmt.ptr(pos, pos + 5 >> 0); - $s = 9; case 9: return $24r; - /* } */ case 8: - $24r$1 = new ast.DeferStmt.ptr(pos, call); - $s = 10; case 10: return $24r$1; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseDeferStmt, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _r$3, call, p, pos, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseReturnStmt = function parseReturnStmt() { - var {$24r, _r, _r$1, _r$2, _r$3, p, pos, x, $s, $deferred, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "ReturnStmt"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - pos = p.pos; - _r$1 = p.expect(80); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - x = sliceType$3.nil; - /* */ if (!((p.tok === 57)) && !((p.tok === 56))) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (!((p.tok === 57)) && !((p.tok === 56))) { */ case 5: - _r$2 = p.parseList(true); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - x = _r$2; - /* } */ case 6: - _r$3 = p.expectSemi(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$3; - $24r = new ast.ReturnStmt.ptr(pos, x); - $s = 9; case 9: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$43.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseReturnStmt, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, p, pos, x, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseBranchStmt = function parseBranchStmt(tok) { - var {$24r, _r, _r$1, _r$2, _r$3, label, p, pos, tok, $s, $deferred, $r, $c} = $restore(this, {tok}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "BranchStmt"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - _r$1 = p.expect(tok); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - pos = _r$1; - label = ptrType$2.nil; - /* */ if (!((tok === 69)) && (p.tok === 4)) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (!((tok === 69)) && (p.tok === 4)) { */ case 5: - _r$2 = p.parseIdent(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - label = _r$2; - /* } */ case 6: - _r$3 = p.expectSemi(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$3; - $24r = new ast.BranchStmt.ptr(pos, tok, label); - $s = 9; case 9: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$12.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseBranchStmt, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, label, p, pos, tok, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.makeExpr = function makeExpr(s, want) { - var {$24r, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, es, found, isAss, isExpr, p, s, want, $s, $r, $c} = $restore(this, {s, want}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - if ($interfaceIsEqual(s, $ifaceNil)) { - $s = -1; return $ifaceNil; - } - _tuple = $assertType(s, ptrType$44, true); - es = _tuple[0]; - isExpr = _tuple[1]; - if (isExpr) { - $s = -1; return es.X; - } - found = "simple statement"; - _tuple$1 = $assertType(s, ptrType$11, true); - isAss = _tuple$1[1]; - if (isAss) { - found = "assignment"; - } - _r = s.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _arg = _r; - _r$1 = fmt.Sprintf("expected %s, found %s (missing parentheses around composite literal?)", new sliceType$2([new $String(want), new $String(found)])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _arg$1 = _r$1; - $r = p.error(_arg, _arg$1); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$2 = s.Pos(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = s.End(); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$4 = p.safePos(_r$3); /* */ $s = 6; case 6: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $24r = new ast.BadExpr.ptr(_r$2, _r$4); - $s = 7; case 7: return $24r; - /* */ } return; } var $f = {$blk: makeExpr, $c: true, $r, $24r, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, es, found, isAss, isExpr, p, s, want, $s};return $f; - }; - $ptrType(parser).prototype.parseIfHeader = function parseIfHeader() { - var {_r, _r$1, _r$2, _r$3, _tuple, _tuple$1, cond, condStmt, init$1, p, prevLev, semi, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - init$1 = $ifaceNil; - cond = $ifaceNil; - p = this; - /* */ if (p.tok === 51) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.tok === 51) { */ case 1: - $r = p.error(p.pos, "missing condition in if statement"); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - cond = new ast.BadExpr.ptr(p.pos, p.pos); - $s = -1; return [init$1, cond]; - /* } */ case 2: - prevLev = p.exprLev; - p.exprLev = -1; - /* */ if (!((p.tok === 57))) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (!((p.tok === 57))) { */ case 4: - /* */ if (p.tok === 85) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (p.tok === 85) { */ case 6: - $r = p.next(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.error(p.pos, "var declaration not allowed in if initializer"); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 7: - _r = p.parseSimpleStmt(0); /* */ $s = 10; case 10: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - init$1 = _tuple[0]; - /* } */ case 5: - condStmt = $ifaceNil; - semi = new structType.ptr(0, ""); - /* */ if (!((p.tok === 51))) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (!((p.tok === 51))) { */ case 11: - /* */ if (p.tok === 57) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (p.tok === 57) { */ case 14: - semi.pos = p.pos; - semi.lit = p.lit; - $r = p.next(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 16; continue; - /* } else { */ case 15: - _r$1 = p.expect(57); /* */ $s = 18; case 18: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - /* } */ case 16: - /* */ if (!((p.tok === 51))) { $s = 19; continue; } - /* */ $s = 20; continue; - /* if (!((p.tok === 51))) { */ case 19: - _r$2 = p.parseSimpleStmt(0); /* */ $s = 21; case 21: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple$1 = _r$2; - condStmt = _tuple$1[0]; - /* } */ case 20: - $s = 13; continue; - /* } else { */ case 12: - condStmt = init$1; - init$1 = $ifaceNil; - /* } */ case 13: - /* */ if (!($interfaceIsEqual(condStmt, $ifaceNil))) { $s = 22; continue; } - /* */ if (new token.Pos(semi.pos).IsValid()) { $s = 23; continue; } - /* */ $s = 24; continue; - /* if (!($interfaceIsEqual(condStmt, $ifaceNil))) { */ case 22: - _r$3 = p.makeExpr(condStmt, "boolean expression"); /* */ $s = 25; case 25: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - cond = _r$3; - $s = 24; continue; - /* } else if (new token.Pos(semi.pos).IsValid()) { */ case 23: - /* */ if (semi.lit === "\n") { $s = 26; continue; } - /* */ $s = 27; continue; - /* if (semi.lit === "\n") { */ case 26: - $r = p.error(semi.pos, "unexpected newline, expecting { after if clause"); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 28; continue; - /* } else { */ case 27: - $r = p.error(semi.pos, "missing condition in if statement"); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 28: - /* } */ case 24: - if ($interfaceIsEqual(cond, $ifaceNil)) { - cond = new ast.BadExpr.ptr(p.pos, p.pos); - } - p.exprLev = prevLev; - $s = -1; return [init$1, cond]; - /* */ } return; } var $f = {$blk: parseIfHeader, $c: true, $r, _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, cond, condStmt, init$1, p, prevLev, semi, $s};return $f; - }; - $ptrType(parser).prototype.parseIfStmt = function parseIfStmt() { - var {$24r, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _tuple, body, cond, else_, init$1, p, pos, $s, $deferred, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - _r = incNestLev(p); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([decNestLev, [_r]]); - /* */ if (p.trace) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (p.trace) { */ case 2: - _r$1 = trace(p, "IfStmt"); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $deferred.push([un, [_r$1]]); - /* } */ case 3: - _r$2 = p.expect(74); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - pos = _r$2; - _r$3 = p.parseIfHeader(); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple = _r$3; - init$1 = _tuple[0]; - cond = _tuple[1]; - _r$4 = p.parseBlockStmt(); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - body = _r$4; - else_ = $ifaceNil; - /* */ if (p.tok === 68) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (p.tok === 68) { */ case 8: - $r = p.next(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _1 = p.tok; - /* */ if (_1 === (74)) { $s = 13; continue; } - /* */ if (_1 === (51)) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (_1 === (74)) { */ case 13: - _r$5 = p.parseIfStmt(); /* */ $s = 17; case 17: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - else_ = _r$5; - $s = 16; continue; - /* } else if (_1 === (51)) { */ case 14: - _r$6 = p.parseBlockStmt(); /* */ $s = 18; case 18: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - else_ = _r$6; - _r$7 = p.expectSemi(); /* */ $s = 19; case 19: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _r$7; - $s = 16; continue; - /* } else { */ case 15: - $r = p.errorExpected(p.pos, "if statement or block"); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - else_ = new ast.BadStmt.ptr(p.pos, p.pos); - /* } */ case 16: - case 12: - $s = 10; continue; - /* } else { */ case 9: - _r$8 = p.expectSemi(); /* */ $s = 21; case 21: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _r$8; - /* } */ case 10: - $24r = new ast.IfStmt.ptr(pos, init$1, cond, body, else_); - $s = 22; case 22: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$14.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseIfStmt, $c: true, $r, $24r, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _tuple, body, cond, else_, init$1, p, pos, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseCaseClause = function parseCaseClause() { - var {$24r, _r, _r$1, _r$2, _r$3, _r$4, body, colon, list, p, pos, $s, $deferred, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "CaseClause"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - pos = p.pos; - list = sliceType$3.nil; - /* */ if (p.tok === 62) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (p.tok === 62) { */ case 4: - $r = p.next(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$1 = p.parseList(true); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - list = _r$1; - $s = 6; continue; - /* } else { */ case 5: - _r$2 = p.expect(66); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - /* } */ case 6: - _r$3 = p.expect(58); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - colon = _r$3; - _r$4 = p.parseStmtList(); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - body = _r$4; - $24r = new ast.CaseClause.ptr(pos, list, colon, body); - $s = 12; case 12: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$15.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseCaseClause, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, body, colon, list, p, pos, $s, $deferred};return $f; } } - }; - isTypeSwitchAssert = function isTypeSwitchAssert$1(x) { - var _tuple, a, ok, x; - _tuple = $assertType(x, ptrType$45, true); - a = _tuple[0]; - ok = _tuple[1]; - return ok && $interfaceIsEqual(a.Type, $ifaceNil); - }; - $ptrType(parser).prototype.isTypeSwitchGuard = function isTypeSwitchGuard(s) { - var {_1, _ref, p, s, t, t$1, x, $s, $r, $c} = $restore(this, {s}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - _ref = s; - /* */ if ($assertType(_ref, ptrType$44, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if ($assertType(_ref, ptrType$44, true)[1]) { */ case 1: - t = _ref.$val; - $s = -1; return isTypeSwitchAssert(t.X); - /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 2: - t$1 = _ref.$val; - /* */ if ((t$1.Lhs.$length === 1) && (t$1.Rhs.$length === 1) && isTypeSwitchAssert((x = t$1.Rhs, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])))) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if ((t$1.Lhs.$length === 1) && (t$1.Rhs.$length === 1) && isTypeSwitchAssert((x = t$1.Rhs, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])))) { */ case 4: - _1 = t$1.Tok; - /* */ if (_1 === (42)) { $s = 7; continue; } - /* */ if (_1 === (47)) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (_1 === (42)) { */ case 7: - $r = p.error(t$1.TokPos, "expected ':=', found '='"); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return true; - /* } else if (_1 === (47)) { */ case 8: - $s = -1; return true; - /* } */ case 9: - case 6: - /* } */ case 5: - /* } */ case 3: - $s = -1; return false; - /* */ } return; } var $f = {$blk: isTypeSwitchGuard, $c: true, $r, _1, _ref, p, s, t, t$1, x, $s};return $f; - }; - $ptrType(parser).prototype.parseSwitchStmt = function parseSwitchStmt() { - var {$24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tuple, _tuple$1, body, lbrace, list, p, pos, prevLev, rbrace, s1, s2, typeSwitch, $s, $deferred, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "SwitchStmt"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - _r$1 = p.expect(83); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - pos = _r$1; - _tmp = $ifaceNil; - _tmp$1 = $ifaceNil; - s1 = _tmp; - s2 = _tmp$1; - /* */ if (!((p.tok === 51))) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (!((p.tok === 51))) { */ case 5: - prevLev = p.exprLev; - p.exprLev = -1; - /* */ if (!((p.tok === 57))) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (!((p.tok === 57))) { */ case 7: - _r$2 = p.parseSimpleStmt(0); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple = _r$2; - s2 = _tuple[0]; - /* } */ case 8: - /* */ if (p.tok === 57) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (p.tok === 57) { */ case 10: - $r = p.next(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - s1 = s2; - s2 = $ifaceNil; - /* */ if (!((p.tok === 51))) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (!((p.tok === 51))) { */ case 13: - _r$3 = p.parseSimpleStmt(0); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple$1 = _r$3; - s2 = _tuple$1[0]; - /* } */ case 14: - /* } */ case 11: - p.exprLev = prevLev; - /* } */ case 6: - _r$4 = p.isTypeSwitchGuard(s2); /* */ $s = 16; case 16: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - typeSwitch = _r$4; - _r$5 = p.expect(51); /* */ $s = 17; case 17: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - lbrace = _r$5; - list = sliceType$7.nil; - /* while (true) { */ case 18: - /* if (!((p.tok === 62) || (p.tok === 66))) { break; } */ if(!((p.tok === 62) || (p.tok === 66))) { $s = 19; continue; } - _r$6 = p.parseCaseClause(); /* */ $s = 20; case 20: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - list = $append(list, _r$6); - $s = 18; continue; - case 19: - _r$7 = p.expect(56); /* */ $s = 21; case 21: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - rbrace = _r$7; - _r$8 = p.expectSemi(); /* */ $s = 22; case 22: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _r$8; - body = new ast.BlockStmt.ptr(lbrace, list, rbrace); - /* */ if (typeSwitch) { $s = 23; continue; } - /* */ $s = 24; continue; - /* if (typeSwitch) { */ case 23: - $24r = new ast.TypeSwitchStmt.ptr(pos, s1, s2, body); - $s = 25; case 25: return $24r; - /* } */ case 24: - _r$9 = p.makeExpr(s2, "switch expression"); /* */ $s = 26; case 26: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - $24r$1 = new ast.SwitchStmt.ptr(pos, s1, _r$9, body); - $s = 27; case 27: return $24r$1; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseSwitchStmt, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tuple, _tuple$1, body, lbrace, list, p, pos, prevLev, rbrace, s1, s2, typeSwitch, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseCommClause = function parseCommClause() { - var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, arrow, body, colon, comm, lhs, p, pos, pos$1, rhs, rhs$1, tok, $s, $deferred, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "CommClause"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - pos = p.pos; - comm = $ifaceNil; - /* */ if (p.tok === 62) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (p.tok === 62) { */ case 4: - $r = p.next(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$1 = p.parseList(false); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - lhs = _r$1; - /* */ if (p.tok === 36) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (p.tok === 36) { */ case 9: - /* */ if (lhs.$length > 1) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (lhs.$length > 1) { */ case 12: - _r$2 = (0 >= lhs.$length ? ($throwRuntimeError("index out of range"), undefined) : lhs.$array[lhs.$offset + 0]).Pos(); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $r = p.errorExpected(_r$2, "1 expression"); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 13: - arrow = p.pos; - $r = p.next(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$3 = p.parseRhs(); /* */ $s = 17; case 17: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - rhs = _r$3; - comm = new ast.SendStmt.ptr((0 >= lhs.$length ? ($throwRuntimeError("index out of range"), undefined) : lhs.$array[lhs.$offset + 0]), arrow, rhs); - $s = 11; continue; - /* } else { */ case 10: - tok = p.tok; - /* */ if ((tok === 42) || (tok === 47)) { $s = 18; continue; } - /* */ $s = 19; continue; - /* if ((tok === 42) || (tok === 47)) { */ case 18: - /* */ if (lhs.$length > 2) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if (lhs.$length > 2) { */ case 21: - _r$4 = (0 >= lhs.$length ? ($throwRuntimeError("index out of range"), undefined) : lhs.$array[lhs.$offset + 0]).Pos(); /* */ $s = 23; case 23: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $r = p.errorExpected(_r$4, "1 or 2 expressions"); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - lhs = $subslice(lhs, 0, 2); - /* } */ case 22: - pos$1 = p.pos; - $r = p.next(); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$5 = p.parseRhs(); /* */ $s = 26; case 26: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - rhs$1 = _r$5; - comm = new ast.AssignStmt.ptr(lhs, pos$1, tok, new sliceType$3([rhs$1])); - $s = 20; continue; - /* } else { */ case 19: - /* */ if (lhs.$length > 1) { $s = 27; continue; } - /* */ $s = 28; continue; - /* if (lhs.$length > 1) { */ case 27: - _r$6 = (0 >= lhs.$length ? ($throwRuntimeError("index out of range"), undefined) : lhs.$array[lhs.$offset + 0]).Pos(); /* */ $s = 29; case 29: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - $r = p.errorExpected(_r$6, "1 expression"); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 28: - comm = new ast.ExprStmt.ptr((0 >= lhs.$length ? ($throwRuntimeError("index out of range"), undefined) : lhs.$array[lhs.$offset + 0])); - /* } */ case 20: - /* } */ case 11: - $s = 6; continue; - /* } else { */ case 5: - _r$7 = p.expect(66); /* */ $s = 31; case 31: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _r$7; - /* } */ case 6: - _r$8 = p.expect(58); /* */ $s = 32; case 32: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - colon = _r$8; - _r$9 = p.parseStmtList(); /* */ $s = 33; case 33: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - body = _r$9; - $24r = new ast.CommClause.ptr(pos, comm, colon, body); - $s = 34; case 34: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$18.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseCommClause, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, arrow, body, colon, comm, lhs, p, pos, pos$1, rhs, rhs$1, tok, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseSelectStmt = function parseSelectStmt() { - var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, body, lbrace, list, p, pos, rbrace, $s, $deferred, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "SelectStmt"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - _r$1 = p.expect(81); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - pos = _r$1; - _r$2 = p.expect(51); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - lbrace = _r$2; - list = sliceType$7.nil; - /* while (true) { */ case 6: - /* if (!((p.tok === 62) || (p.tok === 66))) { break; } */ if(!((p.tok === 62) || (p.tok === 66))) { $s = 7; continue; } - _r$3 = p.parseCommClause(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - list = $append(list, _r$3); - $s = 6; continue; - case 7: - _r$4 = p.expect(56); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - rbrace = _r$4; - _r$5 = p.expectSemi(); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$5; - body = new ast.BlockStmt.ptr(lbrace, list, rbrace); - $24r = new ast.SelectStmt.ptr(pos, body); - $s = 11; case 11: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$19.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseSelectStmt, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, body, lbrace, list, p, pos, rbrace, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseForStmt = function parseForStmt() { - var {$24r, $24r$1, $24r$2, _1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tuple, _tuple$1, _tuple$2, as, body, isRange, key, p, pos, pos$1, prevLev, s1, s2, s3, value, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, y, $s, $deferred, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "ForStmt"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - _r$1 = p.expect(70); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - pos = _r$1; - _tmp = $ifaceNil; - _tmp$1 = $ifaceNil; - _tmp$2 = $ifaceNil; - s1 = _tmp; - s2 = _tmp$1; - s3 = _tmp$2; - isRange = false; - /* */ if (!((p.tok === 51))) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (!((p.tok === 51))) { */ case 5: - prevLev = p.exprLev; - p.exprLev = -1; - /* */ if (!((p.tok === 57))) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (!((p.tok === 57))) { */ case 7: - /* */ if (p.tok === 79) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (p.tok === 79) { */ case 9: - pos$1 = p.pos; - $r = p.next(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$2 = p.parseRhs(); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - y = new sliceType$3([new ast.UnaryExpr.ptr(pos$1, 79, _r$2)]); - s2 = new ast.AssignStmt.ptr(sliceType$3.nil, 0, 0, y); - isRange = true; - $s = 11; continue; - /* } else { */ case 10: - _r$3 = p.parseSimpleStmt(2); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple = _r$3; - s2 = _tuple[0]; - isRange = _tuple[1]; - /* } */ case 11: - /* } */ case 8: - /* */ if (!isRange && (p.tok === 57)) { $s = 15; continue; } - /* */ $s = 16; continue; - /* if (!isRange && (p.tok === 57)) { */ case 15: - $r = p.next(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - s1 = s2; - s2 = $ifaceNil; - /* */ if (!((p.tok === 57))) { $s = 18; continue; } - /* */ $s = 19; continue; - /* if (!((p.tok === 57))) { */ case 18: - _r$4 = p.parseSimpleStmt(0); /* */ $s = 20; case 20: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _tuple$1 = _r$4; - s2 = _tuple$1[0]; - /* } */ case 19: - _r$5 = p.expectSemi(); /* */ $s = 21; case 21: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$5; - /* */ if (!((p.tok === 51))) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if (!((p.tok === 51))) { */ case 22: - _r$6 = p.parseSimpleStmt(0); /* */ $s = 24; case 24: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _tuple$2 = _r$6; - s3 = _tuple$2[0]; - /* } */ case 23: - /* } */ case 16: - p.exprLev = prevLev; - /* } */ case 6: - _r$7 = p.parseBlockStmt(); /* */ $s = 25; case 25: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - body = _r$7; - _r$8 = p.expectSemi(); /* */ $s = 26; case 26: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _r$8; - /* */ if (isRange) { $s = 27; continue; } - /* */ $s = 28; continue; - /* if (isRange) { */ case 27: - as = $assertType(s2, ptrType$11); - _tmp$3 = $ifaceNil; - _tmp$4 = $ifaceNil; - key = _tmp$3; - value = _tmp$4; - _1 = as.Lhs.$length; - /* */ if (_1 === (0)) { $s = 30; continue; } - /* */ if (_1 === (1)) { $s = 31; continue; } - /* */ if (_1 === (2)) { $s = 32; continue; } - /* */ $s = 33; continue; - /* if (_1 === (0)) { */ case 30: - $s = 34; continue; - /* } else if (_1 === (1)) { */ case 31: - key = (x = as.Lhs, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); - $s = 34; continue; - /* } else if (_1 === (2)) { */ case 32: - _tmp$5 = (x$1 = as.Lhs, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])); - _tmp$6 = (x$2 = as.Lhs, (1 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 1])); - key = _tmp$5; - value = _tmp$6; - $s = 34; continue; - /* } else { */ case 33: - _r$9 = (x$3 = as.Lhs, x$4 = as.Lhs.$length - 1 >> 0, ((x$4 < 0 || x$4 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + x$4])).Pos(); /* */ $s = 35; case 35: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - $r = p.errorExpected(_r$9, "at most 2 expressions"); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$10 = body.End(); /* */ $s = 37; case 37: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _r$11 = p.safePos(_r$10); /* */ $s = 38; case 38: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - $24r = new ast.BadStmt.ptr(pos, _r$11); - $s = 39; case 39: return $24r; - /* } */ case 34: - case 29: - x$6 = $assertType((x$5 = as.Rhs, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0])), ptrType$46).X; - _r$12 = (x$7 = as.Rhs, (0 >= x$7.$length ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + 0])).Pos(); /* */ $s = 40; case 40: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - $24r$1 = new ast.RangeStmt.ptr(pos, key, value, as.TokPos, as.Tok, _r$12, x$6, body); - $s = 41; case 41: return $24r$1; - /* } */ case 28: - _r$13 = p.makeExpr(s2, "boolean or range expression"); /* */ $s = 42; case 42: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - $24r$2 = new ast.ForStmt.ptr(pos, s1, _r$13, s3, body); - $s = 43; case 43: return $24r$2; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseForStmt, $c: true, $r, $24r, $24r$1, $24r$2, _1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tuple, _tuple$1, _tuple$2, as, body, isRange, key, p, pos, pos$1, prevLev, s1, s2, s3, value, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, y, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseStmt = function parseStmt() { - var {$24r, _1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, isLabeledStmt, p, pos, s, $s, $deferred, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - s = $ifaceNil; - p = this; - _r = incNestLev(p); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([decNestLev, [_r]]); - /* */ if (p.trace) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (p.trace) { */ case 2: - _r$1 = trace(p, "Statement"); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $deferred.push([un, [_r$1]]); - /* } */ case 3: - _1 = p.tok; - /* */ if ((_1 === (64)) || (_1 === (84)) || (_1 === (85))) { $s = 6; continue; } - /* */ if ((_1 === (4)) || (_1 === (5)) || (_1 === (6)) || (_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (71)) || (_1 === (49)) || (_1 === (50)) || (_1 === (82)) || (_1 === (77)) || (_1 === (63)) || (_1 === (76)) || (_1 === (12)) || (_1 === (13)) || (_1 === (14)) || (_1 === (17)) || (_1 === (19)) || (_1 === (36)) || (_1 === (43))) { $s = 7; continue; } - /* */ if (_1 === (72)) { $s = 8; continue; } - /* */ if (_1 === (67)) { $s = 9; continue; } - /* */ if (_1 === (80)) { $s = 10; continue; } - /* */ if ((_1 === (61)) || (_1 === (65)) || (_1 === (73)) || (_1 === (69))) { $s = 11; continue; } - /* */ if (_1 === (51)) { $s = 12; continue; } - /* */ if (_1 === (74)) { $s = 13; continue; } - /* */ if (_1 === (83)) { $s = 14; continue; } - /* */ if (_1 === (81)) { $s = 15; continue; } - /* */ if (_1 === (70)) { $s = 16; continue; } - /* */ if (_1 === (57)) { $s = 17; continue; } - /* */ if (_1 === (56)) { $s = 18; continue; } - /* */ $s = 19; continue; - /* if ((_1 === (64)) || (_1 === (84)) || (_1 === (85))) { */ case 6: - _r$2 = p.parseDecl(stmtStart); /* */ $s = 21; case 21: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - s = new ast.DeclStmt.ptr(_r$2); - $s = 20; continue; - /* } else if ((_1 === (4)) || (_1 === (5)) || (_1 === (6)) || (_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (71)) || (_1 === (49)) || (_1 === (50)) || (_1 === (82)) || (_1 === (77)) || (_1 === (63)) || (_1 === (76)) || (_1 === (12)) || (_1 === (13)) || (_1 === (14)) || (_1 === (17)) || (_1 === (19)) || (_1 === (36)) || (_1 === (43))) { */ case 7: - _r$3 = p.parseSimpleStmt(1); /* */ $s = 22; case 22: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple = _r$3; - s = _tuple[0]; - _tuple$1 = $assertType(s, ptrType$10, true); - isLabeledStmt = _tuple$1[1]; - /* */ if (!isLabeledStmt) { $s = 23; continue; } - /* */ $s = 24; continue; - /* if (!isLabeledStmt) { */ case 23: - _r$4 = p.expectSemi(); /* */ $s = 25; case 25: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$4; - /* } */ case 24: - $s = 20; continue; - /* } else if (_1 === (72)) { */ case 8: - _r$5 = p.parseGoStmt(); /* */ $s = 26; case 26: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - s = _r$5; - $s = 20; continue; - /* } else if (_1 === (67)) { */ case 9: - _r$6 = p.parseDeferStmt(); /* */ $s = 27; case 27: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - s = _r$6; - $s = 20; continue; - /* } else if (_1 === (80)) { */ case 10: - _r$7 = p.parseReturnStmt(); /* */ $s = 28; case 28: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - s = _r$7; - $s = 20; continue; - /* } else if ((_1 === (61)) || (_1 === (65)) || (_1 === (73)) || (_1 === (69))) { */ case 11: - _r$8 = p.parseBranchStmt(p.tok); /* */ $s = 29; case 29: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - s = _r$8; - $s = 20; continue; - /* } else if (_1 === (51)) { */ case 12: - _r$9 = p.parseBlockStmt(); /* */ $s = 30; case 30: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - s = _r$9; - _r$10 = p.expectSemi(); /* */ $s = 31; case 31: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _r$10; - $s = 20; continue; - /* } else if (_1 === (74)) { */ case 13: - _r$11 = p.parseIfStmt(); /* */ $s = 32; case 32: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - s = _r$11; - $s = 20; continue; - /* } else if (_1 === (83)) { */ case 14: - _r$12 = p.parseSwitchStmt(); /* */ $s = 33; case 33: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - s = _r$12; - $s = 20; continue; - /* } else if (_1 === (81)) { */ case 15: - _r$13 = p.parseSelectStmt(); /* */ $s = 34; case 34: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - s = _r$13; - $s = 20; continue; - /* } else if (_1 === (70)) { */ case 16: - _r$14 = p.parseForStmt(); /* */ $s = 35; case 35: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - s = _r$14; - $s = 20; continue; - /* } else if (_1 === (57)) { */ case 17: - s = new ast.EmptyStmt.ptr(p.pos, p.lit === "\n"); - $r = p.next(); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 20; continue; - /* } else if (_1 === (56)) { */ case 18: - s = new ast.EmptyStmt.ptr(p.pos, true); - $s = 20; continue; - /* } else { */ case 19: - pos = p.pos; - $r = p.errorExpected(pos, "statement"); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.advance(stmtStart); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - s = new ast.BadStmt.ptr(pos, p.pos); - /* } */ case 20: - case 5: - $24r = s; - $s = 39; case 39: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return s; } if($curGoroutine.asleep) { var $f = {$blk: parseStmt, $c: true, $r, $24r, _1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, isLabeledStmt, p, pos, s, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseImportSpec = function parseImportSpec(doc, param, param$1) { - var {$24r, _1, _r, _r$1, _r$2, comment, doc, ident, p, param, param$1, path, pos, spec, $s, $deferred, $r, $c} = $restore(this, {doc, param, param$1}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "ImportSpec"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - ident = ptrType$2.nil; - _1 = p.tok; - /* */ if (_1 === (4)) { $s = 5; continue; } - /* */ if (_1 === (53)) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (_1 === (4)) { */ case 5: - _r$1 = p.parseIdent(); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - ident = _r$1; - $s = 7; continue; - /* } else if (_1 === (53)) { */ case 6: - ident = new ast.Ident.ptr(p.pos, ".", ptrType$3.nil); - $r = p.next(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 7: - case 4: - pos = p.pos; - path = ""; - /* */ if (p.tok === 9) { $s = 10; continue; } - /* */ if (new token.Token(p.tok).IsLiteral()) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (p.tok === 9) { */ case 10: - path = p.lit; - $r = p.next(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 13; continue; - /* } else if (new token.Token(p.tok).IsLiteral()) { */ case 11: - $r = p.error(pos, "import path must be a string"); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.next(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 13; continue; - /* } else { */ case 12: - $r = p.error(pos, "missing import path"); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.advance(exprEnd); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 13: - _r$2 = p.expectSemi(); /* */ $s = 19; case 19: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - comment = _r$2; - spec = new ast.ImportSpec.ptr(doc, ident, new ast.BasicLit.ptr(pos, 9, path), comment, 0); - p.imports = $append(p.imports, spec); - $24r = spec; - $s = 20; case 20: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseImportSpec, $c: true, $r, $24r, _1, _r, _r$1, _r$2, comment, doc, ident, p, param, param$1, path, pos, spec, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseValueSpec = function parseValueSpec(doc, keyword, iota) { - var {$24r, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, comment, doc, idents, iota, keyword, p, spec, typ, values, $s, $deferred, $r, $c} = $restore(this, {doc, keyword, iota}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, new token.Token(keyword).String() + "Spec"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - _r$1 = p.parseIdentList(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - idents = _r$1; - typ = $ifaceNil; - values = sliceType$3.nil; - _1 = keyword; - /* */ if (_1 === (64)) { $s = 6; continue; } - /* */ if (_1 === (85)) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (_1 === (64)) { */ case 6: - /* */ if (!((p.tok === 1)) && !((p.tok === 57)) && !((p.tok === 54))) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (!((p.tok === 1)) && !((p.tok === 57)) && !((p.tok === 54))) { */ case 10: - _r$2 = p.tryIdentOrType(); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - typ = _r$2; - /* */ if (p.tok === 42) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (p.tok === 42) { */ case 13: - $r = p.next(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$3 = p.parseList(true); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - values = _r$3; - /* } */ case 14: - /* } */ case 11: - $s = 9; continue; - /* } else if (_1 === (85)) { */ case 7: - /* */ if (!((p.tok === 42))) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (!((p.tok === 42))) { */ case 17: - _r$4 = p.parseType(); /* */ $s = 19; case 19: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - typ = _r$4; - /* } */ case 18: - /* */ if (p.tok === 42) { $s = 20; continue; } - /* */ $s = 21; continue; - /* if (p.tok === 42) { */ case 20: - $r = p.next(); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$5 = p.parseList(true); /* */ $s = 23; case 23: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - values = _r$5; - /* } */ case 21: - $s = 9; continue; - /* } else { */ case 8: - $panic(new $String("unreachable")); - /* } */ case 9: - case 5: - _r$6 = p.expectSemi(); /* */ $s = 24; case 24: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - comment = _r$6; - spec = new ast.ValueSpec.ptr(doc, idents, typ, values, comment); - $24r = spec; - $s = 25; case 25: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseValueSpec, $c: true, $r, $24r, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, comment, doc, idents, iota, keyword, p, spec, typ, values, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseGenericType = function parseGenericType(spec, openPos, name0, typ0) { - var {_r, _r$1, _r$2, _r$3, closePos, list, name0, openPos, p, spec, typ0, $s, $deferred, $r, $c} = $restore(this, {spec, openPos, name0, typ0}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "parseGenericType"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - _r$1 = p.parseParameterList(name0, typ0, 55); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - list = _r$1; - _r$2 = p.expect(55); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - closePos = _r$2; - spec.TypeParams = new ast.FieldList.ptr(openPos, list, closePos); - /* */ if (p.tok === 42) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (p.tok === 42) { */ case 6: - spec.Assign = p.pos; - $r = p.next(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 7: - _r$3 = p.parseType(); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - spec.Type = _r$3; - $s = -1; return; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseGenericType, $c: true, $r, _r, _r$1, _r$2, _r$3, closePos, list, name0, openPos, p, spec, typ0, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseTypeSpec = function parseTypeSpec(doc, param, param$1) { - var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _tuple, doc, lbrack, lhs, name, p, param, param$1, pname, ptype, spec, x, $s, $deferred, $r, $c} = $restore(this, {doc, param, param$1}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "TypeSpec"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - _r$1 = p.parseIdent(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - name = _r$1; - spec = new ast.TypeSpec.ptr(doc, name, ptrType$27.nil, 0, $ifaceNil, ptrType$33.nil); - /* */ if (p.tok === 50) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (p.tok === 50) { */ case 5: - lbrack = p.pos; - $r = p.next(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (p.tok === 4) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (p.tok === 4) { */ case 9: - _r$2 = p.parseIdent(); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - x = _r$2; - /* */ if (!((p.tok === 50))) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (!((p.tok === 50))) { */ case 13: - p.exprLev = p.exprLev + (1) >> 0; - _r$3 = p.parsePrimaryExpr(x); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - lhs = _r$3; - _r$4 = p.parseBinaryExpr(lhs, 1); /* */ $s = 16; case 16: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - x = _r$4; - p.exprLev = p.exprLev - (1) >> 0; - /* } */ case 14: - _tuple = extractName(x, p.tok === 52); - pname = _tuple[0]; - ptype = _tuple[1]; - /* */ if (!(pname === ptrType$2.nil) && (!($interfaceIsEqual(ptype, $ifaceNil)) || !((p.tok === 55)))) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (!(pname === ptrType$2.nil) && (!($interfaceIsEqual(ptype, $ifaceNil)) || !((p.tok === 55)))) { */ case 17: - $r = p.parseGenericType(spec, lbrack, pname, ptype); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 19; continue; - /* } else { */ case 18: - _r$5 = p.parseArrayType(lbrack, x); /* */ $s = 21; case 21: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - spec.Type = _r$5; - /* } */ case 19: - $s = 11; continue; - /* } else { */ case 10: - _r$6 = p.parseArrayType(lbrack, $ifaceNil); /* */ $s = 22; case 22: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - spec.Type = _r$6; - /* } */ case 11: - $s = 7; continue; - /* } else { */ case 6: - /* */ if (p.tok === 42) { $s = 23; continue; } - /* */ $s = 24; continue; - /* if (p.tok === 42) { */ case 23: - spec.Assign = p.pos; - $r = p.next(); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 24: - _r$7 = p.parseType(); /* */ $s = 26; case 26: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - spec.Type = _r$7; - /* } */ case 7: - _r$8 = p.expectSemi(); /* */ $s = 27; case 27: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - spec.Comment = _r$8; - $24r = spec; - $s = 28; case 28: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseTypeSpec, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _tuple, doc, lbrack, lhs, name, p, param, param$1, pname, ptype, spec, x, $s, $deferred};return $f; } } - }; - extractName = function extractName$1(x, force) { - var _1, _ref, _tuple, _tuple$1, _tuple$2, force, lhs, name, name$1, name$2, op, x, x$1, x$2, x$3, x$4, x$5; - _ref = x; - if ($assertType(_ref, ptrType$2, true)[1]) { - x$1 = _ref.$val; - return [x$1, $ifaceNil]; - } else if ($assertType(_ref, ptrType$47, true)[1]) { - x$2 = _ref.$val; - _1 = x$2.Op; - if (_1 === (14)) { - _tuple = $assertType(x$2.X, ptrType$2, true); - name = _tuple[0]; - if (!(name === ptrType$2.nil) && (force || isTypeElem(x$2.Y))) { - return [name, new ast.StarExpr.ptr(x$2.OpPos, x$2.Y)]; - } - } else if (_1 === (18)) { - _tuple$1 = extractName(x$2.X, force || isTypeElem(x$2.Y)); - name$1 = _tuple$1[0]; - lhs = _tuple$1[1]; - if (!(name$1 === ptrType$2.nil) && !($interfaceIsEqual(lhs, $ifaceNil))) { - op = $clone(x$2, ast.BinaryExpr); - op.X = lhs; - return [name$1, op]; - } - } - } else if ($assertType(_ref, ptrType$40, true)[1]) { - x$3 = _ref.$val; - _tuple$2 = $assertType(x$3.Fun, ptrType$2, true); - name$2 = _tuple$2[0]; - if (!(name$2 === ptrType$2.nil)) { - if ((x$3.Args.$length === 1) && (x$3.Ellipsis === 0) && (force || isTypeElem((x$4 = x$3.Args, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0]))))) { - return [name$2, (x$5 = x$3.Args, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0]))]; - } - } - } - return [ptrType$2.nil, x]; - }; - isTypeElem = function isTypeElem$1(x) { - var _ref, x, x$1, x$2, x$3, x$4; - _ref = x; - if ($assertType(_ref, ptrType$34, true)[1] || $assertType(_ref, ptrType$6, true)[1] || $assertType(_ref, ptrType$7, true)[1] || $assertType(_ref, ptrType$9, true)[1] || $assertType(_ref, ptrType$38, true)[1] || $assertType(_ref, ptrType$39, true)[1]) { - x$1 = _ref; - return true; - } else if ($assertType(_ref, ptrType$47, true)[1]) { - x$2 = _ref.$val; - return isTypeElem(x$2.X) || isTypeElem(x$2.Y); - } else if ($assertType(_ref, ptrType$46, true)[1]) { - x$3 = _ref.$val; - return x$3.Op === 88; - } else if ($assertType(_ref, ptrType$41, true)[1]) { - x$4 = _ref.$val; - return isTypeElem(x$4.X); - } - return false; - }; - $ptrType(parser).prototype.parseGenDecl = function parseGenDecl(keyword, f) { - var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tmp, _tmp$1, doc, f, iota, keyword, list, lparen, p, pos, rparen, $s, $deferred, $r, $c} = $restore(this, {keyword, f}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "GenDecl(" + new token.Token(keyword).String() + ")"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - doc = p.leadComment; - _r$1 = p.expect(keyword); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - pos = _r$1; - _tmp = 0; - _tmp$1 = 0; - lparen = _tmp; - rparen = _tmp$1; - list = sliceType$8.nil; - /* */ if (p.tok === 49) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (p.tok === 49) { */ case 5: - lparen = p.pos; - $r = p.next(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - iota = 0; - /* while (true) { */ case 9: - /* if (!(!((p.tok === 54)) && !((p.tok === 1)))) { break; } */ if(!(!((p.tok === 54)) && !((p.tok === 1)))) { $s = 10; continue; } - _r$2 = f(p.leadComment, keyword, iota); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - list = $append(list, _r$2); - iota = iota + (1) >> 0; - $s = 9; continue; - case 10: - _r$3 = p.expect(54); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - rparen = _r$3; - _r$4 = p.expectSemi(); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$4; - $s = 7; continue; - /* } else { */ case 6: - _r$5 = f(ptrType$33.nil, keyword, 0); /* */ $s = 14; case 14: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - list = $append(list, _r$5); - /* } */ case 7: - $24r = new ast.GenDecl.ptr(doc, pos, keyword, lparen, list, rparen); - $s = 15; case 15: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$22.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseGenDecl, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tmp, _tmp$1, doc, f, iota, keyword, list, lparen, p, pos, rparen, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseFuncDecl = function parseFuncDecl() { - var {$24r, _1, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, body, decl, doc, ident, p, params, pos, recv, results, tparams, $s, $deferred, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "FunctionDecl"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - doc = p.leadComment; - _r$1 = p.expect(71); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - pos = _r$1; - recv = ptrType$27.nil; - /* */ if (p.tok === 49) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (p.tok === 49) { */ case 5: - _r$2 = p.parseParameters(false); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple = _r$2; - recv = _tuple[1]; - /* } */ case 6: - _r$3 = p.parseIdent(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - ident = _r$3; - _r$4 = p.parseParameters(true); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _tuple$1 = _r$4; - tparams = _tuple$1[0]; - params = _tuple$1[1]; - /* */ if (!(recv === ptrType$27.nil) && !(tparams === ptrType$27.nil)) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (!(recv === ptrType$27.nil) && !(tparams === ptrType$27.nil)) { */ case 10: - $r = p.error(tparams.Opening, "method must have no type parameters"); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - tparams = ptrType$27.nil; - /* } */ case 11: - _r$5 = p.parseResult(); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - results = _r$5; - body = ptrType$13.nil; - _1 = p.tok; - /* */ if (_1 === (51)) { $s = 15; continue; } - /* */ if (_1 === (57)) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (_1 === (51)) { */ case 15: - _r$6 = p.parseBody(); /* */ $s = 19; case 19: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - body = _r$6; - _r$7 = p.expectSemi(); /* */ $s = 20; case 20: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _r$7; - $s = 18; continue; - /* } else if (_1 === (57)) { */ case 16: - $r = p.next(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (p.tok === 51) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if (p.tok === 51) { */ case 22: - $r = p.error(p.pos, "unexpected semicolon or newline before {"); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$8 = p.parseBody(); /* */ $s = 25; case 25: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - body = _r$8; - _r$9 = p.expectSemi(); /* */ $s = 26; case 26: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _r$9; - /* } */ case 23: - $s = 18; continue; - /* } else { */ case 17: - _r$10 = p.expectSemi(); /* */ $s = 27; case 27: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _r$10; - /* } */ case 18: - case 14: - decl = new ast.FuncDecl.ptr(doc, recv, ident, new ast.FuncType.ptr(pos, tparams, params, results), body); - $24r = decl; - $s = 28; case 28: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$23.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseFuncDecl, $c: true, $r, $24r, _1, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, body, decl, doc, ident, p, params, pos, recv, results, tparams, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseDecl = function parseDecl(sync) { - var {$24r, $24r$1, $24r$2, _1, _r, _r$1, _r$2, f, p, pos, sync, $s, $deferred, $r, $c} = $restore(this, {sync}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "Declaration"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - f = $throwNilPointerError; - _1 = p.tok; - /* */ if (_1 === (75)) { $s = 5; continue; } - /* */ if ((_1 === (64)) || (_1 === (85))) { $s = 6; continue; } - /* */ if (_1 === (84)) { $s = 7; continue; } - /* */ if (_1 === (71)) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (_1 === (75)) { */ case 5: - f = $methodVal(p, "parseImportSpec"); - $s = 10; continue; - /* } else if ((_1 === (64)) || (_1 === (85))) { */ case 6: - f = $methodVal(p, "parseValueSpec"); - $s = 10; continue; - /* } else if (_1 === (84)) { */ case 7: - f = $methodVal(p, "parseTypeSpec"); - $s = 10; continue; - /* } else if (_1 === (71)) { */ case 8: - _r$1 = p.parseFuncDecl(); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 12; case 12: return $24r; - /* } else { */ case 9: - pos = p.pos; - $r = p.errorExpected(pos, "declaration"); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.advance(sync); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $24r$1 = new ast.BadDecl.ptr(pos, p.pos); - $s = 15; case 15: return $24r$1; - /* } */ case 10: - case 4: - _r$2 = p.parseGenDecl(p.tok, f); /* */ $s = 16; case 16: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r$2 = _r$2; - $s = 17; case 17: return $24r$2; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseDecl, $c: true, $r, $24r, $24r$1, $24r$2, _1, _r, _r$1, _r$2, f, p, pos, sync, $s, $deferred};return $f; } } - }; - $ptrType(parser).prototype.parseFile = function parseFile() { - var {$24r, $24r$1, $24r$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, declErr, decls, doc, f, ident, p, pos, prev, $s, $deferred, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - /* */ if (p.trace) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.trace) { */ case 1: - _r = trace(p, "File"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $deferred.push([un, [_r]]); - /* } */ case 2: - /* */ if (!((p.errors.Len() === 0))) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (!((p.errors.Len() === 0))) { */ case 4: - $24r = ptrType$48.nil; - $s = 6; case 6: return $24r; - /* } */ case 5: - doc = p.leadComment; - _r$1 = p.expect(78); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - pos = _r$1; - _r$2 = p.parseIdent(); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - ident = _r$2; - /* */ if (ident.Name === "_" && !((((p.mode & 16) >>> 0) === 0))) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (ident.Name === "_" && !((((p.mode & 16) >>> 0) === 0))) { */ case 9: - $r = p.error(p.pos, "invalid package name _"); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 10: - _r$3 = p.expectSemi(); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$3; - /* */ if (!((p.errors.Len() === 0))) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (!((p.errors.Len() === 0))) { */ case 13: - $24r$1 = ptrType$48.nil; - $s = 15; case 15: return $24r$1; - /* } */ case 14: - decls = sliceType$9.nil; - /* */ if (((p.mode & 1) >>> 0) === 0) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (((p.mode & 1) >>> 0) === 0) { */ case 16: - /* while (true) { */ case 18: - /* if (!(p.tok === 75)) { break; } */ if(!(p.tok === 75)) { $s = 19; continue; } - _r$4 = p.parseGenDecl(75, $methodVal(p, "parseImportSpec")); /* */ $s = 20; case 20: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - decls = $append(decls, _r$4); - $s = 18; continue; - case 19: - /* */ if (((p.mode & 2) >>> 0) === 0) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if (((p.mode & 2) >>> 0) === 0) { */ case 21: - prev = 75; - /* while (true) { */ case 23: - /* if (!(!((p.tok === 1)))) { break; } */ if(!(!((p.tok === 1)))) { $s = 24; continue; } - /* */ if ((p.tok === 75) && !((prev === 75))) { $s = 25; continue; } - /* */ $s = 26; continue; - /* if ((p.tok === 75) && !((prev === 75))) { */ case 25: - $r = p.error(p.pos, "imports must appear before other declarations"); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 26: - prev = p.tok; - _r$5 = p.parseDecl(declStart); /* */ $s = 28; case 28: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - decls = $append(decls, _r$5); - $s = 23; continue; - case 24: - /* } */ case 22: - /* } */ case 17: - f = new ast.File.ptr(doc, pos, ident, decls, ((p.file.Base() >> 0)), (((p.file.Base() + p.file.Size() >> 0) >> 0)), ptrType.nil, p.imports, sliceType.nil, p.comments); - declErr = $throwNilPointerError; - if (!((((p.mode & 16) >>> 0) === 0))) { - declErr = $methodVal(p, "error"); - } - /* */ if (((p.mode & 64) >>> 0) === 0) { $s = 29; continue; } - /* */ $s = 30; continue; - /* if (((p.mode & 64) >>> 0) === 0) { */ case 29: - $r = resolveFile(f, p.file, declErr); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 30: - $24r$2 = f; - $s = 32; case 32: return $24r$2; - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$48.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseFile, $c: true, $r, $24r, $24r$1, $24r$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, declErr, decls, doc, f, ident, p, pos, prev, $s, $deferred};return $f; } } - }; - readSource = function readSource$1(filename, src) { - var {$24r, $24r$1, _r, _r$1, _ref, filename, s, s$1, s$2, s$3, src, $s, $r, $c} = $restore(this, {filename, src}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - /* */ if (!($interfaceIsEqual(src, $ifaceNil))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!($interfaceIsEqual(src, $ifaceNil))) { */ case 1: - _ref = src; - /* */ if ($assertType(_ref, $String, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, sliceType$12, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$50, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, io.Reader, true)[1]) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if ($assertType(_ref, $String, true)[1]) { */ case 3: - s = _ref.$val; - $s = -1; return [(new sliceType$12($stringToBytes(s))), $ifaceNil]; - /* } else if ($assertType(_ref, sliceType$12, true)[1]) { */ case 4: - s$1 = _ref.$val; - $s = -1; return [s$1, $ifaceNil]; - /* } else if ($assertType(_ref, ptrType$50, true)[1]) { */ case 5: - s$2 = _ref.$val; - if (!(s$2 === ptrType$50.nil)) { - $s = -1; return [s$2.Bytes(), $ifaceNil]; - } - $s = 7; continue; - /* } else if ($assertType(_ref, io.Reader, true)[1]) { */ case 6: - s$3 = _ref; - _r = io.ReadAll(s$3); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 9; case 9: return $24r; - /* } */ case 7: - $s = -1; return [sliceType$12.nil, errors.New("invalid source")]; - /* } */ case 2: - _r$1 = os.ReadFile(filename); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r$1 = _r$1; - $s = 11; case 11: return $24r$1; - /* */ } return; } var $f = {$blk: readSource$1, $c: true, $r, $24r, $24r$1, _r, _r$1, _ref, filename, s, s$1, s$2, s$3, src, $s};return $f; - }; - ParseFile = function ParseFile$1(fset, filename, src, mode) { - var {$24r, _r, _r$1, _tmp, _tmp$1, _tuple, err, f, filename, fset, mode, p, src, text, $s, $deferred, $r, $c} = $restore(this, {fset, filename, src, mode}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - err = [err]; - f = [f]; - p = [p]; - f[0] = ptrType$48.nil; - err[0] = $ifaceNil; - if (fset === ptrType$51.nil) { - $panic(new $String("parser.ParseFile: no token.FileSet provided (fset == nil)")); - } - _r = readSource(filename, src); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - text = _tuple[0]; - err[0] = _tuple[1]; - if (!($interfaceIsEqual(err[0], $ifaceNil))) { - _tmp = ptrType$48.nil; - _tmp$1 = err[0]; - f[0] = _tmp; - err[0] = _tmp$1; - $s = -1; return [f[0], err[0]]; - } - p[0] = new parser.ptr(ptrType$1.nil, scanner.ErrorList.nil, new scanner.Scanner.ptr(ptrType$1.nil, "", sliceType$12.nil, $throwNilPointerError, 0, 0, 0, 0, 0, false, 0, 0), 0, false, 0, sliceType$11.nil, ptrType$33.nil, ptrType$33.nil, 0, 0, "", 0, 0, 0, false, sliceType$10.nil, 0); - $deferred.push([(function(err, f, p) { return function ParseFile·func1() { - var {_r$1, _tuple$1, bail, e, ok, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - e = $recover(); - /* */ if (!($interfaceIsEqual(e, $ifaceNil))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!($interfaceIsEqual(e, $ifaceNil))) { */ case 1: - _tuple$1 = $assertType(e, bailout, true); - bail = $clone(_tuple$1[0], bailout); - ok = _tuple$1[1]; - /* */ if (!ok) { $s = 3; continue; } - /* */ if (!(bail.msg === "")) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (!ok) { */ case 3: - $panic(e); - $s = 5; continue; - /* } else if (!(bail.msg === "")) { */ case 4: - _r$1 = p[0].file.Position(bail.pos); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $r = (p[0].$ptr_errors || (p[0].$ptr_errors = new ptrType$31(function() { return this.$target.errors; }, function($v) { this.$target.errors = $v; }, p[0]))).Add($clone(_r$1, token.Position), bail.msg); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 5: - /* } */ case 2: - if (f[0] === ptrType$48.nil) { - f[0] = new ast.File.ptr(ptrType$33.nil, 0, new ast.Ident.ptr(0, "", ptrType$3.nil), sliceType$9.nil, 0, 0, ast.NewScope(ptrType.nil), sliceType$10.nil, sliceType.nil, sliceType$11.nil); - } - $r = p[0].errors.Sort(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - err[0] = p[0].errors.Err(); - $s = -1; return; - /* */ } return; } var $f = {$blk: ParseFile·func1, $c: true, $r, _r$1, _tuple$1, bail, e, ok, $s};return $f; - }; })(err, f, p), []]); - $r = p[0].init(fset, filename, text, mode); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$1 = p[0].parseFile(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - f[0] = _r$1; - $24r = [f[0], err[0]]; - $s = 4; case 4: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [f[0], err[0]]; } if($curGoroutine.asleep) { var $f = {$blk: ParseFile$1, $c: true, $r, $24r, _r, _r$1, _tmp, _tmp$1, _tuple, err, f, filename, fset, mode, p, src, text, $s, $deferred};return $f; } } - }; - $pkg.ParseFile = ParseFile; - ptrType$53.methods = [{prop: "trace", name: "trace", pkg: "go/parser", typ: $funcType([$String, sliceType$2], [], true)}, {prop: "sprintf", name: "sprintf", pkg: "go/parser", typ: $funcType([$String, sliceType$2], [$String], true)}, {prop: "openScope", name: "openScope", pkg: "go/parser", typ: $funcType([token.Pos], [], false)}, {prop: "closeScope", name: "closeScope", pkg: "go/parser", typ: $funcType([], [], false)}, {prop: "openLabelScope", name: "openLabelScope", pkg: "go/parser", typ: $funcType([], [], false)}, {prop: "closeLabelScope", name: "closeLabelScope", pkg: "go/parser", typ: $funcType([], [], false)}, {prop: "declare", name: "declare", pkg: "go/parser", typ: $funcType([$emptyInterface, $emptyInterface, ptrType, ast.ObjKind, sliceType], [], true)}, {prop: "shortVarDecl", name: "shortVarDecl", pkg: "go/parser", typ: $funcType([ptrType$11], [], false)}, {prop: "resolve", name: "resolve", pkg: "go/parser", typ: $funcType([ptrType$2, $Bool], [], false)}, {prop: "walkExprs", name: "walkExprs", pkg: "go/parser", typ: $funcType([sliceType$3], [], false)}, {prop: "walkLHS", name: "walkLHS", pkg: "go/parser", typ: $funcType([sliceType$3], [], false)}, {prop: "walkStmts", name: "walkStmts", pkg: "go/parser", typ: $funcType([sliceType$7], [], false)}, {prop: "Visit", name: "Visit", pkg: "", typ: $funcType([ast.Node], [ast.Visitor], false)}, {prop: "walkFuncType", name: "walkFuncType", pkg: "go/parser", typ: $funcType([ptrType$7], [], false)}, {prop: "resolveList", name: "resolveList", pkg: "go/parser", typ: $funcType([ptrType$27], [], false)}, {prop: "declareList", name: "declareList", pkg: "go/parser", typ: $funcType([ptrType$27, ast.ObjKind], [], false)}, {prop: "walkRecv", name: "walkRecv", pkg: "go/parser", typ: $funcType([ptrType$27], [], false)}, {prop: "walkFieldList", name: "walkFieldList", pkg: "go/parser", typ: $funcType([ptrType$27, ast.ObjKind], [], false)}, {prop: "walkTParams", name: "walkTParams", pkg: "go/parser", typ: $funcType([ptrType$27], [], false)}, {prop: "walkBody", name: "walkBody", pkg: "go/parser", typ: $funcType([ptrType$13], [], false)}]; - ptrType$54.methods = [{prop: "init", name: "init", pkg: "go/parser", typ: $funcType([ptrType$51, $String, sliceType$12, Mode], [], false)}, {prop: "printTrace", name: "printTrace", pkg: "go/parser", typ: $funcType([sliceType$2], [], true)}, {prop: "next0", name: "next0", pkg: "go/parser", typ: $funcType([], [], false)}, {prop: "consumeComment", name: "consumeComment", pkg: "go/parser", typ: $funcType([], [ptrType$32, $Int], false)}, {prop: "consumeCommentGroup", name: "consumeCommentGroup", pkg: "go/parser", typ: $funcType([$Int], [ptrType$33, $Int], false)}, {prop: "next", name: "next", pkg: "go/parser", typ: $funcType([], [], false)}, {prop: "error", name: "error", pkg: "go/parser", typ: $funcType([token.Pos, $String], [], false)}, {prop: "errorExpected", name: "errorExpected", pkg: "go/parser", typ: $funcType([token.Pos, $String], [], false)}, {prop: "expect", name: "expect", pkg: "go/parser", typ: $funcType([token.Token], [token.Pos], false)}, {prop: "expect2", name: "expect2", pkg: "go/parser", typ: $funcType([token.Token], [token.Pos], false)}, {prop: "expectClosing", name: "expectClosing", pkg: "go/parser", typ: $funcType([token.Token, $String], [token.Pos], false)}, {prop: "expectSemi", name: "expectSemi", pkg: "go/parser", typ: $funcType([], [ptrType$33], false)}, {prop: "atComma", name: "atComma", pkg: "go/parser", typ: $funcType([$String, token.Token], [$Bool], false)}, {prop: "advance", name: "advance", pkg: "go/parser", typ: $funcType([mapType], [], false)}, {prop: "safePos", name: "safePos", pkg: "go/parser", typ: $funcType([token.Pos], [token.Pos], false)}, {prop: "parseIdent", name: "parseIdent", pkg: "go/parser", typ: $funcType([], [ptrType$2], false)}, {prop: "parseIdentList", name: "parseIdentList", pkg: "go/parser", typ: $funcType([], [sliceType], false)}, {prop: "parseExprList", name: "parseExprList", pkg: "go/parser", typ: $funcType([], [sliceType$3], false)}, {prop: "parseList", name: "parseList", pkg: "go/parser", typ: $funcType([$Bool], [sliceType$3], false)}, {prop: "parseType", name: "parseType", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseQualifiedIdent", name: "parseQualifiedIdent", pkg: "go/parser", typ: $funcType([ptrType$2], [ast.Expr], false)}, {prop: "parseTypeName", name: "parseTypeName", pkg: "go/parser", typ: $funcType([ptrType$2], [ast.Expr], false)}, {prop: "parseArrayType", name: "parseArrayType", pkg: "go/parser", typ: $funcType([token.Pos, ast.Expr], [ptrType$34], false)}, {prop: "parseArrayFieldOrTypeInstance", name: "parseArrayFieldOrTypeInstance", pkg: "go/parser", typ: $funcType([ptrType$2], [ptrType$2, ast.Expr], false)}, {prop: "parseFieldDecl", name: "parseFieldDecl", pkg: "go/parser", typ: $funcType([], [ptrType$36], false)}, {prop: "parseStructType", name: "parseStructType", pkg: "go/parser", typ: $funcType([], [ptrType$6], false)}, {prop: "parsePointerType", name: "parsePointerType", pkg: "go/parser", typ: $funcType([], [ptrType$28], false)}, {prop: "parseDotsType", name: "parseDotsType", pkg: "go/parser", typ: $funcType([], [ptrType$37], false)}, {prop: "parseParamDecl", name: "parseParamDecl", pkg: "go/parser", typ: $funcType([ptrType$2, $Bool], [field], false)}, {prop: "parseParameterList", name: "parseParameterList", pkg: "go/parser", typ: $funcType([ptrType$2, ast.Expr, token.Token], [sliceType$5], false)}, {prop: "parseParameters", name: "parseParameters", pkg: "go/parser", typ: $funcType([$Bool], [ptrType$27, ptrType$27], false)}, {prop: "parseResult", name: "parseResult", pkg: "go/parser", typ: $funcType([], [ptrType$27], false)}, {prop: "parseFuncType", name: "parseFuncType", pkg: "go/parser", typ: $funcType([], [ptrType$7], false)}, {prop: "parseMethodSpec", name: "parseMethodSpec", pkg: "go/parser", typ: $funcType([], [ptrType$36], false)}, {prop: "embeddedElem", name: "embeddedElem", pkg: "go/parser", typ: $funcType([ast.Expr], [ast.Expr], false)}, {prop: "embeddedTerm", name: "embeddedTerm", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseInterfaceType", name: "parseInterfaceType", pkg: "go/parser", typ: $funcType([], [ptrType$9], false)}, {prop: "parseMapType", name: "parseMapType", pkg: "go/parser", typ: $funcType([], [ptrType$38], false)}, {prop: "parseChanType", name: "parseChanType", pkg: "go/parser", typ: $funcType([], [ptrType$39], false)}, {prop: "parseTypeInstance", name: "parseTypeInstance", pkg: "go/parser", typ: $funcType([ast.Expr], [ast.Expr], false)}, {prop: "tryIdentOrType", name: "tryIdentOrType", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseStmtList", name: "parseStmtList", pkg: "go/parser", typ: $funcType([], [sliceType$7], false)}, {prop: "parseBody", name: "parseBody", pkg: "go/parser", typ: $funcType([], [ptrType$13], false)}, {prop: "parseBlockStmt", name: "parseBlockStmt", pkg: "go/parser", typ: $funcType([], [ptrType$13], false)}, {prop: "parseFuncTypeOrLit", name: "parseFuncTypeOrLit", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseOperand", name: "parseOperand", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseSelector", name: "parseSelector", pkg: "go/parser", typ: $funcType([ast.Expr], [ast.Expr], false)}, {prop: "parseTypeAssertion", name: "parseTypeAssertion", pkg: "go/parser", typ: $funcType([ast.Expr], [ast.Expr], false)}, {prop: "parseIndexOrSliceOrInstance", name: "parseIndexOrSliceOrInstance", pkg: "go/parser", typ: $funcType([ast.Expr], [ast.Expr], false)}, {prop: "parseCallOrConversion", name: "parseCallOrConversion", pkg: "go/parser", typ: $funcType([ast.Expr], [ptrType$40], false)}, {prop: "parseValue", name: "parseValue", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseElement", name: "parseElement", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseElementList", name: "parseElementList", pkg: "go/parser", typ: $funcType([], [sliceType$3], false)}, {prop: "parseLiteralValue", name: "parseLiteralValue", pkg: "go/parser", typ: $funcType([ast.Expr], [ast.Expr], false)}, {prop: "parsePrimaryExpr", name: "parsePrimaryExpr", pkg: "go/parser", typ: $funcType([ast.Expr], [ast.Expr], false)}, {prop: "parseUnaryExpr", name: "parseUnaryExpr", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "tokPrec", name: "tokPrec", pkg: "go/parser", typ: $funcType([], [token.Token, $Int], false)}, {prop: "parseBinaryExpr", name: "parseBinaryExpr", pkg: "go/parser", typ: $funcType([ast.Expr, $Int], [ast.Expr], false)}, {prop: "parseExpr", name: "parseExpr", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseRhs", name: "parseRhs", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseSimpleStmt", name: "parseSimpleStmt", pkg: "go/parser", typ: $funcType([$Int], [ast.Stmt, $Bool], false)}, {prop: "parseCallExpr", name: "parseCallExpr", pkg: "go/parser", typ: $funcType([$String], [ptrType$40], false)}, {prop: "parseGoStmt", name: "parseGoStmt", pkg: "go/parser", typ: $funcType([], [ast.Stmt], false)}, {prop: "parseDeferStmt", name: "parseDeferStmt", pkg: "go/parser", typ: $funcType([], [ast.Stmt], false)}, {prop: "parseReturnStmt", name: "parseReturnStmt", pkg: "go/parser", typ: $funcType([], [ptrType$43], false)}, {prop: "parseBranchStmt", name: "parseBranchStmt", pkg: "go/parser", typ: $funcType([token.Token], [ptrType$12], false)}, {prop: "makeExpr", name: "makeExpr", pkg: "go/parser", typ: $funcType([ast.Stmt, $String], [ast.Expr], false)}, {prop: "parseIfHeader", name: "parseIfHeader", pkg: "go/parser", typ: $funcType([], [ast.Stmt, ast.Expr], false)}, {prop: "parseIfStmt", name: "parseIfStmt", pkg: "go/parser", typ: $funcType([], [ptrType$14], false)}, {prop: "parseCaseClause", name: "parseCaseClause", pkg: "go/parser", typ: $funcType([], [ptrType$15], false)}, {prop: "isTypeSwitchGuard", name: "isTypeSwitchGuard", pkg: "go/parser", typ: $funcType([ast.Stmt], [$Bool], false)}, {prop: "parseSwitchStmt", name: "parseSwitchStmt", pkg: "go/parser", typ: $funcType([], [ast.Stmt], false)}, {prop: "parseCommClause", name: "parseCommClause", pkg: "go/parser", typ: $funcType([], [ptrType$18], false)}, {prop: "parseSelectStmt", name: "parseSelectStmt", pkg: "go/parser", typ: $funcType([], [ptrType$19], false)}, {prop: "parseForStmt", name: "parseForStmt", pkg: "go/parser", typ: $funcType([], [ast.Stmt], false)}, {prop: "parseStmt", name: "parseStmt", pkg: "go/parser", typ: $funcType([], [ast.Stmt], false)}, {prop: "parseImportSpec", name: "parseImportSpec", pkg: "go/parser", typ: $funcType([ptrType$33, token.Token, $Int], [ast.Spec], false)}, {prop: "parseValueSpec", name: "parseValueSpec", pkg: "go/parser", typ: $funcType([ptrType$33, token.Token, $Int], [ast.Spec], false)}, {prop: "parseGenericType", name: "parseGenericType", pkg: "go/parser", typ: $funcType([ptrType$26, token.Pos, ptrType$2, ast.Expr], [], false)}, {prop: "parseTypeSpec", name: "parseTypeSpec", pkg: "go/parser", typ: $funcType([ptrType$33, token.Token, $Int], [ast.Spec], false)}, {prop: "parseGenDecl", name: "parseGenDecl", pkg: "go/parser", typ: $funcType([token.Token, parseSpecFunction], [ptrType$22], false)}, {prop: "parseFuncDecl", name: "parseFuncDecl", pkg: "go/parser", typ: $funcType([], [ptrType$23], false)}, {prop: "parseDecl", name: "parseDecl", pkg: "go/parser", typ: $funcType([mapType], [ast.Decl], false)}, {prop: "parseFile", name: "parseFile", pkg: "go/parser", typ: $funcType([], [ptrType$48], false)}]; - resolver.init("go/parser", [{prop: "handle", name: "handle", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "declErr", name: "declErr", embedded: false, exported: false, typ: funcType, tag: ""}, {prop: "pkgScope", name: "pkgScope", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "topScope", name: "topScope", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "unresolved", name: "unresolved", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "depth", name: "depth", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "labelScope", name: "labelScope", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "targetStack", name: "targetStack", embedded: false, exported: false, typ: sliceType$1, tag: ""}]); - parser.init("go/parser", [{prop: "file", name: "file", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "errors", name: "errors", embedded: false, exported: false, typ: scanner.ErrorList, tag: ""}, {prop: "scanner", name: "scanner", embedded: false, exported: false, typ: scanner.Scanner, tag: ""}, {prop: "mode", name: "mode", embedded: false, exported: false, typ: Mode, tag: ""}, {prop: "trace", name: "trace", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "indent", name: "indent", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "comments", name: "comments", embedded: false, exported: false, typ: sliceType$11, tag: ""}, {prop: "leadComment", name: "leadComment", embedded: false, exported: false, typ: ptrType$33, tag: ""}, {prop: "lineComment", name: "lineComment", embedded: false, exported: false, typ: ptrType$33, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "tok", name: "tok", embedded: false, exported: false, typ: token.Token, tag: ""}, {prop: "lit", name: "lit", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "syncPos", name: "syncPos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "syncCnt", name: "syncCnt", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "exprLev", name: "exprLev", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "inRhs", name: "inRhs", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "imports", name: "imports", embedded: false, exported: false, typ: sliceType$10, tag: ""}, {prop: "nestLev", name: "nestLev", embedded: false, exported: false, typ: $Int, tag: ""}]); - bailout.init("go/parser", [{prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "msg", name: "msg", embedded: false, exported: false, typ: $String, tag: ""}]); - field.init("go/parser", [{prop: "name", name: "name", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: ast.Expr, tag: ""}]); - parseSpecFunction.init([ptrType$33, token.Token, $Int], [ast.Spec], false); - }; - $init = function() { - $pkg.$init = function() {}; - /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: - $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = errors.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = fmt.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = ast.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = typeparams.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = scanner.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = token.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = io.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = fs.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = os.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = filepath.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = strings.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - unresolved = new ast.Object.ptr(0, "", $ifaceNil, $ifaceNil, $ifaceNil); - stmtStart = $makeMap(token.Token.keyFor, [{ k: 61, v: true }, { k: 64, v: true }, { k: 65, v: true }, { k: 67, v: true }, { k: 69, v: true }, { k: 70, v: true }, { k: 72, v: true }, { k: 73, v: true }, { k: 74, v: true }, { k: 80, v: true }, { k: 81, v: true }, { k: 83, v: true }, { k: 84, v: true }, { k: 85, v: true }]); - declStart = $makeMap(token.Token.keyFor, [{ k: 75, v: true }, { k: 64, v: true }, { k: 84, v: true }, { k: 85, v: true }]); - exprEnd = $makeMap(token.Token.keyFor, [{ k: 52, v: true }, { k: 58, v: true }, { k: 57, v: true }, { k: 54, v: true }, { k: 55, v: true }, { k: 56, v: true }]); - /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; - }; - $pkg.$init = $init; - return $pkg; -})(); -$packages["go/build/constraint"] = (function() { - var $pkg = {}, $init, errors, strings, unicode, utf8, Expr, TagExpr, NotExpr, AndExpr, OrExpr, SyntaxError, exprParser, ptrType, ptrType$1, ptrType$2, sliceType, sliceType$1, sliceType$2, ptrType$3, ptrType$4, sliceType$3, funcType, ptrType$5, errNotConstraint, errComplex, tag, not, andArg, and, orArg, or, Parse, IsGoBuild, splitGoBuild, parseExpr, IsPlusBuild, splitPlusBuild, parsePlusBuildExpr, isValidTag, PlusBuildLines, pushNot, appendSplitAnd, appendSplitOr; - errors = $packages["errors"]; - strings = $packages["strings"]; - unicode = $packages["unicode"]; - utf8 = $packages["unicode/utf8"]; - Expr = $newType(8, $kindInterface, "constraint.Expr", true, "go/build/constraint", true, null); - TagExpr = $newType(0, $kindStruct, "constraint.TagExpr", true, "go/build/constraint", true, function(Tag_) { - this.$val = this; - if (arguments.length === 0) { - this.Tag = ""; - return; - } - this.Tag = Tag_; - }); - NotExpr = $newType(0, $kindStruct, "constraint.NotExpr", true, "go/build/constraint", true, function(X_) { - this.$val = this; - if (arguments.length === 0) { - this.X = $ifaceNil; - return; - } - this.X = X_; - }); - AndExpr = $newType(0, $kindStruct, "constraint.AndExpr", true, "go/build/constraint", true, function(X_, Y_) { - this.$val = this; - if (arguments.length === 0) { - this.X = $ifaceNil; - this.Y = $ifaceNil; - return; - } - this.X = X_; - this.Y = Y_; - }); - OrExpr = $newType(0, $kindStruct, "constraint.OrExpr", true, "go/build/constraint", true, function(X_, Y_) { - this.$val = this; - if (arguments.length === 0) { - this.X = $ifaceNil; - this.Y = $ifaceNil; - return; - } - this.X = X_; - this.Y = Y_; - }); - SyntaxError = $newType(0, $kindStruct, "constraint.SyntaxError", true, "go/build/constraint", true, function(Offset_, Err_) { - this.$val = this; - if (arguments.length === 0) { - this.Offset = 0; - this.Err = ""; - return; - } - this.Offset = Offset_; - this.Err = Err_; - }); - exprParser = $newType(0, $kindStruct, "constraint.exprParser", true, "go/build/constraint", false, function(s_, i_, tok_, isTag_, pos_) { - this.$val = this; - if (arguments.length === 0) { - this.s = ""; - this.i = 0; - this.tok = ""; - this.isTag = false; - this.pos = 0; - return; - } - this.s = s_; - this.i = i_; - this.tok = tok_; - this.isTag = isTag_; - this.pos = pos_; - }); - $pkg.Expr = Expr; - $pkg.TagExpr = TagExpr; - $pkg.NotExpr = NotExpr; - $pkg.AndExpr = AndExpr; - $pkg.OrExpr = OrExpr; - $pkg.SyntaxError = SyntaxError; - $pkg.exprParser = exprParser; - $pkg.$finishSetup = function() { - ptrType = $ptrType(AndExpr); - ptrType$1 = $ptrType(OrExpr); - ptrType$2 = $ptrType(SyntaxError); - sliceType = $sliceType(Expr); - sliceType$1 = $sliceType(sliceType); - sliceType$2 = $sliceType(sliceType$1); - ptrType$3 = $ptrType(TagExpr); - ptrType$4 = $ptrType(NotExpr); - sliceType$3 = $sliceType($String); - funcType = $funcType([$String], [$Bool], false); - ptrType$5 = $ptrType(exprParser); - $ptrType(TagExpr).prototype.Eval = function Eval(ok) { - var {$24r, _r, ok, x, $s, $r, $c} = $restore(this, {ok}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - _r = ok(x.Tag); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Eval, $c: true, $r, $24r, _r, ok, x, $s};return $f; - }; - $ptrType(TagExpr).prototype.String = function String() { - var x; - x = this; - return x.Tag; - }; - tag = function tag$1(tag$2) { - var tag$2; - return new TagExpr.ptr(tag$2); - }; - $ptrType(NotExpr).prototype.Eval = function Eval$1(ok) { - var {$24r, _r, ok, x, $s, $r, $c} = $restore(this, {ok}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - _r = x.X.Eval(ok); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = !_r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Eval$1, $c: true, $r, $24r, _r, ok, x, $s};return $f; - }; - $ptrType(NotExpr).prototype.String = function String$1() { - var {_r, _ref, s, x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - _r = x.X.String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - s = _r; - _ref = x.X; - if ($assertType(_ref, ptrType, true)[1] || $assertType(_ref, ptrType$1, true)[1]) { - s = "(" + s + ")"; - } - $s = -1; return "!" + s; - /* */ } return; } var $f = {$blk: String$1, $c: true, $r, _r, _ref, s, x, $s};return $f; - }; - not = function not$1(x) { - var x; - return new NotExpr.ptr(x); - }; - $ptrType(AndExpr).prototype.Eval = function Eval$2(ok) { - var {_r, _r$1, ok, x, xok, yok, $s, $r, $c} = $restore(this, {ok}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - _r = x.X.Eval(ok); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - xok = _r; - _r$1 = x.Y.Eval(ok); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - yok = _r$1; - $s = -1; return xok && yok; - /* */ } return; } var $f = {$blk: Eval$2, $c: true, $r, _r, _r$1, ok, x, xok, yok, $s};return $f; - }; - $ptrType(AndExpr).prototype.String = function String$2() { - var {$24r, _r, _r$1, x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - _r = andArg(x.X); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = andArg(x.Y); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r + " && " + _r$1; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: String$2, $c: true, $r, $24r, _r, _r$1, x, $s};return $f; - }; - andArg = function andArg$1(x) { - var {_r, _tuple, ok, s, x, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = x.String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - s = _r; - _tuple = $assertType(x, ptrType$1, true); - ok = _tuple[1]; - if (ok) { - s = "(" + s + ")"; - } - $s = -1; return s; - /* */ } return; } var $f = {$blk: andArg$1, $c: true, $r, _r, _tuple, ok, s, x, $s};return $f; - }; - and = function and$1(x, y) { - var x, y; - return new AndExpr.ptr(x, y); - }; - $ptrType(OrExpr).prototype.Eval = function Eval$3(ok) { - var {_r, _r$1, ok, x, xok, yok, $s, $r, $c} = $restore(this, {ok}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - _r = x.X.Eval(ok); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - xok = _r; - _r$1 = x.Y.Eval(ok); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - yok = _r$1; - $s = -1; return xok || yok; - /* */ } return; } var $f = {$blk: Eval$3, $c: true, $r, _r, _r$1, ok, x, xok, yok, $s};return $f; - }; - $ptrType(OrExpr).prototype.String = function String$3() { - var {$24r, _r, _r$1, x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - _r = orArg(x.X); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = orArg(x.Y); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r + " || " + _r$1; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: String$3, $c: true, $r, $24r, _r, _r$1, x, $s};return $f; - }; - orArg = function orArg$1(x) { - var {_r, _tuple, ok, s, x, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = x.String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - s = _r; - _tuple = $assertType(x, ptrType, true); - ok = _tuple[1]; - if (ok) { - s = "(" + s + ")"; - } - $s = -1; return s; - /* */ } return; } var $f = {$blk: orArg$1, $c: true, $r, _r, _tuple, ok, s, x, $s};return $f; - }; - or = function or$1(x, y) { - var x, y; - return new OrExpr.ptr(x, y); - }; - $ptrType(SyntaxError).prototype.Error = function Error() { - var e; - e = this; - return e.Err; - }; - Parse = function Parse$1(line) { - var {$24r, _r, _r$1, _r$2, _tuple, _tuple$1, line, ok, ok$1, text, text$1, $s, $r, $c} = $restore(this, {line}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = splitGoBuild(line); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - text = _tuple[0]; - ok = _tuple[1]; - if (ok) { - $s = -1; return parseExpr(text); - } - _r$1 = splitPlusBuild(line); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$1 = _r$1; - text$1 = _tuple$1[0]; - ok$1 = _tuple$1[1]; - /* */ if (ok$1) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (ok$1) { */ case 3: - _r$2 = parsePlusBuildExpr(text$1); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = [_r$2, $ifaceNil]; - $s = 6; case 6: return $24r; - /* } */ case 4: - $s = -1; return [$ifaceNil, errNotConstraint]; - /* */ } return; } var $f = {$blk: Parse$1, $c: true, $r, $24r, _r, _r$1, _r$2, _tuple, _tuple$1, line, ok, ok$1, text, text$1, $s};return $f; - }; - $pkg.Parse = Parse; - IsGoBuild = function IsGoBuild$1(line) { - var {_r, _tuple, line, ok, $s, $r, $c} = $restore(this, {line}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = splitGoBuild(line); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - ok = _tuple[1]; - $s = -1; return ok; - /* */ } return; } var $f = {$blk: IsGoBuild$1, $c: true, $r, _r, _tuple, line, ok, $s};return $f; - }; - $pkg.IsGoBuild = IsGoBuild; - splitGoBuild = function splitGoBuild$1(line) { - var {_r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, expr, line, ok, trim, $s, $r, $c} = $restore(this, {line}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - expr = ""; - ok = false; - if (line.length > 0 && (line.charCodeAt((line.length - 1 >> 0)) === 10)) { - line = $substring(line, 0, (line.length - 1 >> 0)); - } - if (strings.Contains(line, "\n")) { - _tmp = ""; - _tmp$1 = false; - expr = _tmp; - ok = _tmp$1; - $s = -1; return [expr, ok]; - } - if (!strings.HasPrefix(line, "//go:build")) { - _tmp$2 = ""; - _tmp$3 = false; - expr = _tmp$2; - ok = _tmp$3; - $s = -1; return [expr, ok]; - } - _r = strings.TrimSpace(line); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - line = _r; - line = $substring(line, 10); - _r$1 = strings.TrimSpace(line); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - trim = _r$1; - if ((line.length === trim.length) && !(line === "")) { - _tmp$4 = ""; - _tmp$5 = false; - expr = _tmp$4; - ok = _tmp$5; - $s = -1; return [expr, ok]; - } - _tmp$6 = trim; - _tmp$7 = true; - expr = _tmp$6; - ok = _tmp$7; - $s = -1; return [expr, ok]; - /* */ } return; } var $f = {$blk: splitGoBuild$1, $c: true, $r, _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, expr, line, ok, trim, $s};return $f; - }; - parseExpr = function parseExpr$1(text) { - var _tmp, _tmp$1, err, p, text, x, $deferred; - /* */ var $err = null; try { $deferred = []; $curGoroutine.deferStack.push($deferred); - x = $ifaceNil; - err = $ifaceNil; - $deferred.push([(function parseExpr·func1() { - var _tuple, e, e$1, ok; - e = $recover(); - if (!($interfaceIsEqual(e, $ifaceNil))) { - _tuple = $assertType(e, ptrType$2, true); - e$1 = _tuple[0]; - ok = _tuple[1]; - if (ok) { - err = e$1; - return; - } - $panic(e); - } - }), []]); - p = new exprParser.ptr(text, 0, "", false, 0); - x = p.or(); - if (!(p.tok === "")) { - $panic(new SyntaxError.ptr(p.pos, "unexpected token " + p.tok)); - } - _tmp = x; - _tmp$1 = $ifaceNil; - x = _tmp; - err = _tmp$1; - return [x, err]; - /* */ } catch(err) { $err = err; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [x, err]; } } - }; - $ptrType(exprParser).prototype.or = function or$2() { - var p, x; - p = this; - x = p.and(); - while (true) { - if (!(p.tok === "||")) { break; } - x = or(x, p.and()); - } - return x; - }; - $ptrType(exprParser).prototype.and = function and$2() { - var p, x; - p = this; - x = p.not(); - while (true) { - if (!(p.tok === "&&")) { break; } - x = and(x, p.not()); - } - return x; - }; - $ptrType(exprParser).prototype.not = function not$2() { - var p; - p = this; - p.lex(); - if (p.tok === "!") { - p.lex(); - if (p.tok === "!") { - $panic(new SyntaxError.ptr(p.pos, "double negation not allowed")); - } - return not(p.atom()); - } - return p.atom(); - }; - $ptrType(exprParser).prototype.atom = function atom() { - var p, pos, tok, x, $deferred; - /* */ var $err = null; try { $deferred = []; $curGoroutine.deferStack.push($deferred); - p = this; - if (p.tok === "(") { - pos = p.pos; - $deferred.push([(function exprParser·atom·func1() { - var _tuple, e, e$1, ok; - e = $recover(); - if (!($interfaceIsEqual(e, $ifaceNil))) { - _tuple = $assertType(e, ptrType$2, true); - e$1 = _tuple[0]; - ok = _tuple[1]; - if (ok && e$1.Err === "unexpected end of expression") { - e$1.Err = "missing close paren"; - } - $panic(e); - } - }), []]); - x = p.or(); - if (!(p.tok === ")")) { - $panic(new SyntaxError.ptr(pos, "missing close paren")); - } - p.lex(); - return x; - } - if (!p.isTag) { - if (p.tok === "") { - $panic(new SyntaxError.ptr(p.pos, "unexpected end of expression")); - } - $panic(new SyntaxError.ptr(p.pos, "unexpected token " + p.tok)); - } - tok = p.tok; - p.lex(); - return tag(tok); - /* */ } catch(err) { $err = err; return $ifaceNil; } finally { $callDeferred($deferred, $err); } - }; - $ptrType(exprParser).prototype.lex = function lex() { - var _1, _i, _ref, _rune, _tuple, c, c$1, i, p, tag$2; - p = this; - p.isTag = false; - while (true) { - if (!(p.i < p.s.length && ((p.s.charCodeAt(p.i) === 32) || (p.s.charCodeAt(p.i) === 9)))) { break; } - p.i = p.i + (1) >> 0; - } - if (p.i >= p.s.length) { - p.tok = ""; - p.pos = p.i; - return; - } - _1 = p.s.charCodeAt(p.i); - if ((_1 === (40)) || (_1 === (41)) || (_1 === (33))) { - p.pos = p.i; - p.i = p.i + (1) >> 0; - p.tok = $substring(p.s, p.pos, p.i); - return; - } else if ((_1 === (38)) || (_1 === (124))) { - if ((p.i + 1 >> 0) >= p.s.length || !((p.s.charCodeAt((p.i + 1 >> 0)) === p.s.charCodeAt(p.i)))) { - $panic(new SyntaxError.ptr(p.i, "invalid syntax at " + ($encodeRune(((p.s.charCodeAt(p.i) >> 0)))))); - } - p.pos = p.i; - p.i = p.i + (2) >> 0; - p.tok = $substring(p.s, p.pos, p.i); - return; - } - tag$2 = $substring(p.s, p.i); - _ref = tag$2; - _i = 0; - while (true) { - if (!(_i < _ref.length)) { break; } - _rune = $decodeRune(_ref, _i); - i = _i; - c = _rune[0]; - if (!unicode.IsLetter(c) && !unicode.IsDigit(c) && !((c === 95)) && !((c === 46))) { - tag$2 = $substring(tag$2, 0, i); - break; - } - _i += _rune[1]; - } - if (tag$2 === "") { - _tuple = utf8.DecodeRuneInString($substring(p.s, p.i)); - c$1 = _tuple[0]; - $panic(new SyntaxError.ptr(p.i, "invalid syntax at " + ($encodeRune(c$1)))); - } - p.pos = p.i; - p.i = p.i + (tag$2.length) >> 0; - p.tok = $substring(p.s, p.pos, p.i); - p.isTag = true; - }; - IsPlusBuild = function IsPlusBuild$1(line) { - var {_r, _tuple, line, ok, $s, $r, $c} = $restore(this, {line}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = splitPlusBuild(line); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - ok = _tuple[1]; - $s = -1; return ok; - /* */ } return; } var $f = {$blk: IsPlusBuild$1, $c: true, $r, _r, _tuple, line, ok, $s};return $f; - }; - $pkg.IsPlusBuild = IsPlusBuild; - splitPlusBuild = function splitPlusBuild$1(line) { - var {_r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, expr, line, ok, trim, $s, $r, $c} = $restore(this, {line}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - expr = ""; - ok = false; - if (line.length > 0 && (line.charCodeAt((line.length - 1 >> 0)) === 10)) { - line = $substring(line, 0, (line.length - 1 >> 0)); - } - if (strings.Contains(line, "\n")) { - _tmp = ""; - _tmp$1 = false; - expr = _tmp; - ok = _tmp$1; - $s = -1; return [expr, ok]; - } - if (!strings.HasPrefix(line, "//")) { - _tmp$2 = ""; - _tmp$3 = false; - expr = _tmp$2; - ok = _tmp$3; - $s = -1; return [expr, ok]; - } - line = $substring(line, 2); - _r = strings.TrimSpace(line); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - line = _r; - if (!strings.HasPrefix(line, "+build")) { - _tmp$4 = ""; - _tmp$5 = false; - expr = _tmp$4; - ok = _tmp$5; - $s = -1; return [expr, ok]; - } - line = $substring(line, 6); - _r$1 = strings.TrimSpace(line); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - trim = _r$1; - if ((line.length === trim.length) && !(line === "")) { - _tmp$6 = ""; - _tmp$7 = false; - expr = _tmp$6; - ok = _tmp$7; - $s = -1; return [expr, ok]; - } - _tmp$8 = trim; - _tmp$9 = true; - expr = _tmp$8; - ok = _tmp$9; - $s = -1; return [expr, ok]; - /* */ } return; } var $f = {$blk: splitPlusBuild$1, $c: true, $r, _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, expr, line, ok, trim, $s};return $f; - }; - parsePlusBuildExpr = function parsePlusBuildExpr$1(text) { - var {_i, _i$1, _r, _ref, _ref$1, clause, lit, neg, text, x, y, z, $s, $r, $c} = $restore(this, {text}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = $ifaceNil; - _r = strings.Fields(text); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _ref = _r; - _i = 0; - /* while (true) { */ case 2: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } - clause = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - y = $ifaceNil; - _ref$1 = strings.Split(clause, ","); - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - lit = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - z = $ifaceNil; - neg = false; - if (strings.HasPrefix(lit, "!!") || lit === "!") { - z = tag("ignore"); - } else { - if (strings.HasPrefix(lit, "!")) { - neg = true; - lit = $substring(lit, 1); - } - if (isValidTag(lit)) { - z = tag(lit); - } else { - z = tag("ignore"); - } - if (neg) { - z = not(z); - } - } - if ($interfaceIsEqual(y, $ifaceNil)) { - y = z; - } else { - y = and(y, z); - } - _i$1++; - } - if ($interfaceIsEqual(x, $ifaceNil)) { - x = y; - } else { - x = or(x, y); - } - _i++; - $s = 2; continue; - case 3: - if ($interfaceIsEqual(x, $ifaceNil)) { - x = tag("ignore"); - } - $s = -1; return x; - /* */ } return; } var $f = {$blk: parsePlusBuildExpr$1, $c: true, $r, _i, _i$1, _r, _ref, _ref$1, clause, lit, neg, text, x, y, z, $s};return $f; - }; - isValidTag = function isValidTag$1(word) { - var _i, _ref, _rune, c, word; - if (word === "") { - return false; - } - _ref = word; - _i = 0; - while (true) { - if (!(_i < _ref.length)) { break; } - _rune = $decodeRune(_ref, _i); - c = _rune[0]; - if (!unicode.IsLetter(c) && !unicode.IsDigit(c) && !((c === 95)) && !((c === 46))) { - return false; - } - _i += _rune[1]; - } - return true; - }; - PlusBuildLines = function PlusBuildLines$1(x) { - var {_i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _r, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, and$3, and$4, ands, clause, i, line, lines, lit, lit$1, lits, lits$1, maxOr, or$3, or$4, or$5, or$6, split, x, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = pushNot(x, false); - split = sliceType$2.nil; - _ref = appendSplitAnd(sliceType.nil, x); - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - or$3 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - ands = sliceType$1.nil; - _ref$1 = appendSplitOr(sliceType.nil, or$3); - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - and$3 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - lits = sliceType.nil; - _ref$2 = appendSplitAnd(sliceType.nil, and$3); - _i$2 = 0; - while (true) { - if (!(_i$2 < _ref$2.$length)) { break; } - lit = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); - _ref$3 = lit; - if ($assertType(_ref$3, ptrType$3, true)[1] || $assertType(_ref$3, ptrType$4, true)[1]) { - lits = $append(lits, lit); - } else { - $s = -1; return [sliceType$3.nil, errComplex]; - } - _i$2++; - } - ands = $append(ands, lits); - _i$1++; - } - split = $append(split, ands); - _i++; - } - maxOr = 0; - _ref$4 = split; - _i$3 = 0; - while (true) { - if (!(_i$3 < _ref$4.$length)) { break; } - or$4 = ((_i$3 < 0 || _i$3 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$3]); - if (maxOr < or$4.$length) { - maxOr = or$4.$length; - } - _i$3++; - } - if (maxOr === 1) { - lits$1 = sliceType.nil; - _ref$5 = split; - _i$4 = 0; - while (true) { - if (!(_i$4 < _ref$5.$length)) { break; } - or$5 = ((_i$4 < 0 || _i$4 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$4]); - lits$1 = $appendSlice(lits$1, (0 >= or$5.$length ? ($throwRuntimeError("index out of range"), undefined) : or$5.$array[or$5.$offset + 0])); - _i$4++; - } - split = new sliceType$2([new sliceType$1([lits$1])]); - } - lines = sliceType$3.nil; - _ref$6 = split; - _i$5 = 0; - /* while (true) { */ case 1: - /* if (!(_i$5 < _ref$6.$length)) { break; } */ if(!(_i$5 < _ref$6.$length)) { $s = 2; continue; } - or$6 = ((_i$5 < 0 || _i$5 >= _ref$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$6.$array[_ref$6.$offset + _i$5]); - line = "// +build"; - _ref$7 = or$6; - _i$6 = 0; - /* while (true) { */ case 3: - /* if (!(_i$6 < _ref$7.$length)) { break; } */ if(!(_i$6 < _ref$7.$length)) { $s = 4; continue; } - and$4 = ((_i$6 < 0 || _i$6 >= _ref$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$7.$array[_ref$7.$offset + _i$6]); - clause = ""; - _ref$8 = and$4; - _i$7 = 0; - /* while (true) { */ case 5: - /* if (!(_i$7 < _ref$8.$length)) { break; } */ if(!(_i$7 < _ref$8.$length)) { $s = 6; continue; } - i = _i$7; - lit$1 = ((_i$7 < 0 || _i$7 >= _ref$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$8.$array[_ref$8.$offset + _i$7]); - if (i > 0) { - clause = clause + (","); - } - _r = lit$1.String(); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - clause = clause + (_r); - _i$7++; - $s = 5; continue; - case 6: - line = line + (" " + clause); - _i$6++; - $s = 3; continue; - case 4: - lines = $append(lines, line); - _i$5++; - $s = 1; continue; - case 2: - $s = -1; return [lines, $ifaceNil]; - /* */ } return; } var $f = {$blk: PlusBuildLines$1, $c: true, $r, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _r, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, and$3, and$4, ands, clause, i, line, lines, lit, lit$1, lits, lits$1, maxOr, or$3, or$4, or$5, or$6, split, x, $s};return $f; - }; - $pkg.PlusBuildLines = PlusBuildLines; - pushNot = function pushNot$1(x, not$3) { - var _ref, _tuple, not$3, ok, x, x$1, x$2, x$3, x$4, x$5, x1, x1$1, y1, y1$1; - _ref = x; - if ($assertType(_ref, ptrType$4, true)[1]) { - x$2 = _ref.$val; - _tuple = $assertType(x$2.X, ptrType$3, true); - ok = _tuple[1]; - if (ok && !not$3) { - return x$2; - } - return pushNot(x$2.X, !not$3); - } else if ($assertType(_ref, ptrType$3, true)[1]) { - x$3 = _ref.$val; - if (not$3) { - return new NotExpr.ptr(x$3); - } - return x$3; - } else if ($assertType(_ref, ptrType, true)[1]) { - x$4 = _ref.$val; - x1 = pushNot(x$4.X, not$3); - y1 = pushNot(x$4.Y, not$3); - if (not$3) { - return or(x1, y1); - } - if ($interfaceIsEqual(x1, x$4.X) && $interfaceIsEqual(y1, x$4.Y)) { - return x$4; - } - return and(x1, y1); - } else if ($assertType(_ref, ptrType$1, true)[1]) { - x$5 = _ref.$val; - x1$1 = pushNot(x$5.X, not$3); - y1$1 = pushNot(x$5.Y, not$3); - if (not$3) { - return and(x1$1, y1$1); - } - if ($interfaceIsEqual(x1$1, x$5.X) && $interfaceIsEqual(y1$1, x$5.Y)) { - return x$5; - } - return or(x1$1, y1$1); - } else { - x$1 = _ref; - return x$1; - } - }; - appendSplitAnd = function appendSplitAnd$1(list, x) { - var _tuple, list, ok, x, x$1; - _tuple = $assertType(x, ptrType, true); - x$1 = _tuple[0]; - ok = _tuple[1]; - if (ok) { - list = appendSplitAnd(list, x$1.X); - list = appendSplitAnd(list, x$1.Y); - return list; - } - return $append(list, x); - }; - appendSplitOr = function appendSplitOr$1(list, x) { - var _tuple, list, ok, x, x$1; - _tuple = $assertType(x, ptrType$1, true); - x$1 = _tuple[0]; - ok = _tuple[1]; - if (ok) { - list = appendSplitOr(list, x$1.X); - list = appendSplitOr(list, x$1.Y); - return list; - } - return $append(list, x); - }; - ptrType$3.methods = [{prop: "isExpr", name: "isExpr", pkg: "go/build/constraint", typ: $funcType([], [], false)}, {prop: "Eval", name: "Eval", pkg: "", typ: $funcType([funcType], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$4.methods = [{prop: "isExpr", name: "isExpr", pkg: "go/build/constraint", typ: $funcType([], [], false)}, {prop: "Eval", name: "Eval", pkg: "", typ: $funcType([funcType], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType.methods = [{prop: "isExpr", name: "isExpr", pkg: "go/build/constraint", typ: $funcType([], [], false)}, {prop: "Eval", name: "Eval", pkg: "", typ: $funcType([funcType], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$1.methods = [{prop: "isExpr", name: "isExpr", pkg: "go/build/constraint", typ: $funcType([], [], false)}, {prop: "Eval", name: "Eval", pkg: "", typ: $funcType([funcType], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$2.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$5.methods = [{prop: "or", name: "or", pkg: "go/build/constraint", typ: $funcType([], [Expr], false)}, {prop: "and", name: "and", pkg: "go/build/constraint", typ: $funcType([], [Expr], false)}, {prop: "not", name: "not", pkg: "go/build/constraint", typ: $funcType([], [Expr], false)}, {prop: "atom", name: "atom", pkg: "go/build/constraint", typ: $funcType([], [Expr], false)}, {prop: "lex", name: "lex", pkg: "go/build/constraint", typ: $funcType([], [], false)}]; - Expr.init([{prop: "Eval", name: "Eval", pkg: "", typ: $funcType([funcType], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "isExpr", name: "isExpr", pkg: "go/build/constraint", typ: $funcType([], [], false)}]); - TagExpr.init("", [{prop: "Tag", name: "Tag", embedded: false, exported: true, typ: $String, tag: ""}]); - NotExpr.init("", [{prop: "X", name: "X", embedded: false, exported: true, typ: Expr, tag: ""}]); - AndExpr.init("", [{prop: "X", name: "X", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Y", name: "Y", embedded: false, exported: true, typ: Expr, tag: ""}]); - OrExpr.init("", [{prop: "X", name: "X", embedded: false, exported: true, typ: Expr, tag: ""}, {prop: "Y", name: "Y", embedded: false, exported: true, typ: Expr, tag: ""}]); - SyntaxError.init("", [{prop: "Offset", name: "Offset", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Err", name: "Err", embedded: false, exported: true, typ: $String, tag: ""}]); - exprParser.init("go/build/constraint", [{prop: "s", name: "s", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "i", name: "i", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "tok", name: "tok", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "isTag", name: "isTag", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: $Int, tag: ""}]); - }; - $init = function() { - $pkg.$init = function() {}; - /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: - $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = strings.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = unicode.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = utf8.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - errNotConstraint = errors.New("not a build constraint"); - errComplex = errors.New("expression too complex for // +build lines"); - /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; - }; - $pkg.$init = $init; - return $pkg; -})(); -$packages["go/doc/comment"] = (function() { - var $pkg = {}, $init, bytes, fmt, sort, strconv, strings, unicode, utf8, textPrinter, Printer, commentPrinter, Doc, LinkDef, Block, Heading, List, ListItem, Paragraph, Code, Text, Plain, Italic, Link, DocLink, Parser, parseDoc, span, spanKind, mdPrinter, htmlPrinter, score, sliceType, ptrType, ptrType$1, sliceType$1, sliceType$2, ptrType$2, ptrType$3, ptrType$4, ptrType$5, sliceType$3, ptrType$6, ptrType$7, sliceType$4, ptrType$8, ptrType$9, sliceType$5, ptrType$10, sliceType$6, sliceType$7, sliceType$8, ptrType$11, sliceType$9, ptrType$12, ptrType$13, funcType, funcType$1, ptrType$14, mapType, mapType$1, funcType$2, funcType$3, ptrType$15, mapType$2, ptrType$16, ptrType$17, stdPkgs, writeNL, wrap, wrapPenalty, blankBefore, isStdPkg, DefaultLookupPackage, parseSpans, indented, unindent, isBlank, commonPrefix, leadingSpace, isOldHeading, isHeading, parseLink, listMarker, isList, splitDocName, autoURL, isScheme, isHost, isPunct, isPath, isName, ident, isIdentASCII, validImportPath, validImportPathElem, importPathOK, inc; - bytes = $packages["bytes"]; - fmt = $packages["fmt"]; - sort = $packages["sort"]; - strconv = $packages["strconv"]; - strings = $packages["strings"]; - unicode = $packages["unicode"]; - utf8 = $packages["unicode/utf8"]; - textPrinter = $newType(0, $kindStruct, "comment.textPrinter", true, "go/doc/comment", false, function(Printer_, long$1_, prefix_, codePrefix_, width_) { - this.$val = this; - if (arguments.length === 0) { - this.Printer = ptrType.nil; - this.long$1 = new strings.Builder.ptr(ptrType$1.nil, sliceType$1.nil); - this.prefix = ""; - this.codePrefix = ""; - this.width = 0; - return; - } - this.Printer = Printer_; - this.long$1 = long$1_; - this.prefix = prefix_; - this.codePrefix = codePrefix_; - this.width = width_; - }); - Printer = $newType(0, $kindStruct, "comment.Printer", true, "go/doc/comment", true, function(HeadingLevel_, HeadingID_, DocLinkURL_, DocLinkBaseURL_, TextPrefix_, TextCodePrefix_, TextWidth_) { - this.$val = this; - if (arguments.length === 0) { - this.HeadingLevel = 0; - this.HeadingID = $throwNilPointerError; - this.DocLinkURL = $throwNilPointerError; - this.DocLinkBaseURL = ""; - this.TextPrefix = ""; - this.TextCodePrefix = ""; - this.TextWidth = 0; - return; - } - this.HeadingLevel = HeadingLevel_; - this.HeadingID = HeadingID_; - this.DocLinkURL = DocLinkURL_; - this.DocLinkBaseURL = DocLinkBaseURL_; - this.TextPrefix = TextPrefix_; - this.TextCodePrefix = TextCodePrefix_; - this.TextWidth = TextWidth_; - }); - commentPrinter = $newType(0, $kindStruct, "comment.commentPrinter", true, "go/doc/comment", false, function(Printer_, headingPrefix_, needDoc_) { - this.$val = this; - if (arguments.length === 0) { - this.Printer = ptrType.nil; - this.headingPrefix = ""; - this.needDoc = false; - return; - } - this.Printer = Printer_; - this.headingPrefix = headingPrefix_; - this.needDoc = needDoc_; - }); - Doc = $newType(0, $kindStruct, "comment.Doc", true, "go/doc/comment", true, function(Content_, Links_) { - this.$val = this; - if (arguments.length === 0) { - this.Content = sliceType$5.nil; - this.Links = sliceType$6.nil; - return; - } - this.Content = Content_; - this.Links = Links_; - }); - LinkDef = $newType(0, $kindStruct, "comment.LinkDef", true, "go/doc/comment", true, function(Text_, URL_, Used_) { - this.$val = this; - if (arguments.length === 0) { - this.Text = ""; - this.URL = ""; - this.Used = false; - return; - } - this.Text = Text_; - this.URL = URL_; - this.Used = Used_; - }); - Block = $newType(8, $kindInterface, "comment.Block", true, "go/doc/comment", true, null); - Heading = $newType(0, $kindStruct, "comment.Heading", true, "go/doc/comment", true, function(Text_) { - this.$val = this; - if (arguments.length === 0) { - this.Text = sliceType$8.nil; - return; - } - this.Text = Text_; - }); - List = $newType(0, $kindStruct, "comment.List", true, "go/doc/comment", true, function(Items_, ForceBlankBefore_, ForceBlankBetween_) { - this.$val = this; - if (arguments.length === 0) { - this.Items = sliceType$9.nil; - this.ForceBlankBefore = false; - this.ForceBlankBetween = false; - return; - } - this.Items = Items_; - this.ForceBlankBefore = ForceBlankBefore_; - this.ForceBlankBetween = ForceBlankBetween_; - }); - ListItem = $newType(0, $kindStruct, "comment.ListItem", true, "go/doc/comment", true, function(Number_, Content_) { - this.$val = this; - if (arguments.length === 0) { - this.Number = ""; - this.Content = sliceType$5.nil; - return; - } - this.Number = Number_; - this.Content = Content_; - }); - Paragraph = $newType(0, $kindStruct, "comment.Paragraph", true, "go/doc/comment", true, function(Text_) { - this.$val = this; - if (arguments.length === 0) { - this.Text = sliceType$8.nil; - return; - } - this.Text = Text_; - }); - Code = $newType(0, $kindStruct, "comment.Code", true, "go/doc/comment", true, function(Text_) { - this.$val = this; - if (arguments.length === 0) { - this.Text = ""; - return; - } - this.Text = Text_; - }); - Text = $newType(8, $kindInterface, "comment.Text", true, "go/doc/comment", true, null); - Plain = $newType(8, $kindString, "comment.Plain", true, "go/doc/comment", true, null); - Italic = $newType(8, $kindString, "comment.Italic", true, "go/doc/comment", true, null); - Link = $newType(0, $kindStruct, "comment.Link", true, "go/doc/comment", true, function(Auto_, Text_, URL_) { - this.$val = this; - if (arguments.length === 0) { - this.Auto = false; - this.Text = sliceType$8.nil; - this.URL = ""; - return; - } - this.Auto = Auto_; - this.Text = Text_; - this.URL = URL_; - }); - DocLink = $newType(0, $kindStruct, "comment.DocLink", true, "go/doc/comment", true, function(Text_, ImportPath_, Recv_, Name_) { - this.$val = this; - if (arguments.length === 0) { - this.Text = sliceType$8.nil; - this.ImportPath = ""; - this.Recv = ""; - this.Name = ""; - return; - } - this.Text = Text_; - this.ImportPath = ImportPath_; - this.Recv = Recv_; - this.Name = Name_; - }); - Parser = $newType(0, $kindStruct, "comment.Parser", true, "go/doc/comment", true, function(Words_, LookupPackage_, LookupSym_) { - this.$val = this; - if (arguments.length === 0) { - this.Words = false; - this.LookupPackage = $throwNilPointerError; - this.LookupSym = $throwNilPointerError; - return; - } - this.Words = Words_; - this.LookupPackage = LookupPackage_; - this.LookupSym = LookupSym_; - }); - parseDoc = $newType(0, $kindStruct, "comment.parseDoc", true, "go/doc/comment", false, function(Parser_, Doc_, links_, lines_, lookupSym_) { - this.$val = this; - if (arguments.length === 0) { - this.Parser = ptrType$8.nil; - this.Doc = ptrType$9.nil; - this.links = false; - this.lines = sliceType.nil; - this.lookupSym = $throwNilPointerError; - return; - } - this.Parser = Parser_; - this.Doc = Doc_; - this.links = links_; - this.lines = lines_; - this.lookupSym = lookupSym_; - }); - span = $newType(0, $kindStruct, "comment.span", true, "go/doc/comment", false, function(start_, end_, kind_) { - this.$val = this; - if (arguments.length === 0) { - this.start = 0; - this.end = 0; - this.kind = 0; - return; - } - this.start = start_; - this.end = end_; - this.kind = kind_; - }); - spanKind = $newType(4, $kindInt, "comment.spanKind", true, "go/doc/comment", false, null); - mdPrinter = $newType(0, $kindStruct, "comment.mdPrinter", true, "go/doc/comment", false, function(Printer_, headingPrefix_, raw_) { - this.$val = this; - if (arguments.length === 0) { - this.Printer = ptrType.nil; - this.headingPrefix = ""; - this.raw = new bytes.Buffer.ptr(sliceType$1.nil, 0, 0); - return; - } - this.Printer = Printer_; - this.headingPrefix = headingPrefix_; - this.raw = raw_; - }); - htmlPrinter = $newType(0, $kindStruct, "comment.htmlPrinter", true, "go/doc/comment", false, function(Printer_, tight_) { - this.$val = this; - if (arguments.length === 0) { - this.Printer = ptrType.nil; - this.tight = false; - return; - } - this.Printer = Printer_; - this.tight = tight_; - }); - score = $newType(0, $kindStruct, "comment.score", true, "go/doc/comment", false, function(hi_, lo_) { - this.$val = this; - if (arguments.length === 0) { - this.hi = new $Int64(0, 0); - this.lo = new $Int64(0, 0); - return; - } - this.hi = hi_; - this.lo = lo_; - }); - $pkg.textPrinter = textPrinter; - $pkg.Printer = Printer; - $pkg.commentPrinter = commentPrinter; - $pkg.Doc = Doc; - $pkg.LinkDef = LinkDef; - $pkg.Block = Block; - $pkg.Heading = Heading; - $pkg.List = List; - $pkg.ListItem = ListItem; - $pkg.Paragraph = Paragraph; - $pkg.Code = Code; - $pkg.Text = Text; - $pkg.Plain = Plain; - $pkg.Italic = Italic; - $pkg.Link = Link; - $pkg.DocLink = DocLink; - $pkg.Parser = Parser; - $pkg.parseDoc = parseDoc; - $pkg.span = span; - $pkg.spanKind = spanKind; - $pkg.mdPrinter = mdPrinter; - $pkg.htmlPrinter = htmlPrinter; - $pkg.score = score; - $pkg.$finishSetup = function() { - sliceType = $sliceType($String); - ptrType = $ptrType(Printer); - ptrType$1 = $ptrType(strings.Builder); - sliceType$1 = $sliceType($Uint8); - sliceType$2 = $sliceType($emptyInterface); - ptrType$2 = $ptrType(Paragraph); - ptrType$3 = $ptrType(Heading); - ptrType$4 = $ptrType(Code); - ptrType$5 = $ptrType(List); - sliceType$3 = $sliceType($Int); - ptrType$6 = $ptrType(Link); - ptrType$7 = $ptrType(DocLink); - sliceType$4 = $sliceType(score); - ptrType$8 = $ptrType(Parser); - ptrType$9 = $ptrType(Doc); - sliceType$5 = $sliceType(Block); - ptrType$10 = $ptrType(LinkDef); - sliceType$6 = $sliceType(ptrType$10); - sliceType$7 = $sliceType(span); - sliceType$8 = $sliceType(Text); - ptrType$11 = $ptrType(ListItem); - sliceType$9 = $sliceType(ptrType$11); - ptrType$12 = $ptrType(bytes.Buffer); - ptrType$13 = $ptrType(textPrinter); - funcType = $funcType([ptrType$3], [$String], false); - funcType$1 = $funcType([ptrType$7], [$String], false); - ptrType$14 = $ptrType(commentPrinter); - mapType = $mapType($String, $Bool); - mapType$1 = $mapType($String, $String); - funcType$2 = $funcType([$String], [$String, $Bool], false); - funcType$3 = $funcType([$String, $String], [$Bool], false); - ptrType$15 = $ptrType(parseDoc); - mapType$2 = $mapType($String, ptrType$10); - ptrType$16 = $ptrType(mdPrinter); - ptrType$17 = $ptrType(htmlPrinter); - $ptrType(Printer).prototype.Text = function Text$1(d) { - var {_i, _i$1, _i$2, _r, _ref, _ref$1, _ref$2, anyUsed, d, def, def$1, i, out, p, tp, x, $s, $r, $c} = $restore(this, {d}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - out = [out]; - p = this; - tp = new textPrinter.ptr(p, new strings.Builder.ptr(ptrType$1.nil, sliceType$1.nil), p.TextPrefix, p.TextCodePrefix, p.TextWidth); - if (tp.codePrefix === "") { - tp.codePrefix = p.TextPrefix + "\t"; - } - if (tp.width === 0) { - tp.width = 80 - utf8.RuneCountInString(tp.prefix) >> 0; - } - out[0] = new bytes.Buffer.ptr(sliceType$1.nil, 0, 0); - _ref = d.Content; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (i > 0 && blankBefore(x)) { - out[0].WriteString(tp.prefix); - writeNL(out[0]); - } - $r = tp.block(out[0], x); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 1; continue; - case 2: - anyUsed = false; - _ref$1 = d.Links; - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - def = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - if (def.Used) { - anyUsed = true; - break; - } - _i$1++; - } - /* */ if (anyUsed) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (anyUsed) { */ case 4: - writeNL(out[0]); - _ref$2 = d.Links; - _i$2 = 0; - /* while (true) { */ case 6: - /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 7; continue; } - def$1 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); - /* */ if (def$1.Used) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (def$1.Used) { */ case 8: - _r = fmt.Fprintf(out[0], "[%s]: %s\n", new sliceType$2([new $String(def$1.Text), new $String(def$1.URL)])); /* */ $s = 10; case 10: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r; - /* } */ case 9: - _i$2++; - $s = 6; continue; - case 7: - /* } */ case 5: - $s = -1; return out[0].Bytes(); - /* */ } return; } var $f = {$blk: Text$1, $c: true, $r, _i, _i$1, _i$2, _r, _ref, _ref$1, _ref$2, anyUsed, d, def, def$1, i, out, p, tp, x, $s};return $f; - }; - writeNL = function writeNL$1(out) { - var data, n, out, x, x$1; - data = out.Bytes(); - n = 0; - while (true) { - if (!(n < data.$length && (((x = (data.$length - n >> 0) - 1 >> 0, ((x < 0 || x >= data.$length) ? ($throwRuntimeError("index out of range"), undefined) : data.$array[data.$offset + x])) === 32) || ((x$1 = (data.$length - n >> 0) - 1 >> 0, ((x$1 < 0 || x$1 >= data.$length) ? ($throwRuntimeError("index out of range"), undefined) : data.$array[data.$offset + x$1])) === 9)))) { break; } - n = n + (1) >> 0; - } - if (n > 0) { - out.Truncate(data.$length - n >> 0); - } - out.WriteByte(10); - }; - $ptrType(textPrinter).prototype.block = function block(out, x) { - var {_i, _i$1, _r, _ref, _ref$1, _ref$2, _tuple, blk, i, i$1, item, line, loose, out, p, text, x, x$1, x$2, x$3, x$4, x$5, $s, $r, $c} = $restore(this, {out, x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - _ref = x; - /* */ if ($assertType(_ref, ptrType$2, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$3, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$5, true)[1]) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if ($assertType(_ref, ptrType$2, true)[1]) { */ case 1: - x$2 = _ref.$val; - out.WriteString(p.prefix); - $r = p.text(out, "", x$2.Text); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 6; continue; - /* } else if ($assertType(_ref, ptrType$3, true)[1]) { */ case 2: - x$3 = _ref.$val; - out.WriteString(p.prefix); - out.WriteString("# "); - $r = p.text(out, "", x$3.Text); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 6; continue; - /* } else if ($assertType(_ref, ptrType$4, true)[1]) { */ case 3: - x$4 = _ref.$val; - text = x$4.Text; - while (true) { - if (!(!(text === ""))) { break; } - line = ""; - _tuple = strings.Cut(text, "\n"); - line = _tuple[0]; - text = _tuple[1]; - if (!(line === "")) { - out.WriteString(p.codePrefix); - out.WriteString(line); - } - writeNL(out); - } - $s = 6; continue; - /* } else if ($assertType(_ref, ptrType$5, true)[1]) { */ case 4: - x$5 = _ref.$val; - loose = x$5.BlankBetween(); - _ref$1 = x$5.Items; - _i = 0; - /* while (true) { */ case 9: - /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 10; continue; } - i = _i; - item = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); - if (i > 0 && loose) { - out.WriteString(p.prefix); - writeNL(out); - } - out.WriteString(p.prefix); - out.WriteString(" "); - if (item.Number === "") { - out.WriteString(" - "); - } else { - out.WriteString(item.Number); - out.WriteString(". "); - } - _ref$2 = item.Content; - _i$1 = 0; - /* while (true) { */ case 11: - /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 12; continue; } - i$1 = _i$1; - blk = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); - if (i$1 > 0) { - writeNL(out); - out.WriteString(p.prefix); - out.WriteString(" "); - } - $r = p.text(out, " ", $assertType(blk, ptrType$2).Text); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$1++; - $s = 11; continue; - case 12: - _i++; - $s = 9; continue; - case 10: - $s = 6; continue; - /* } else { */ case 5: - x$1 = _ref; - _r = fmt.Fprintf(out, "?%T\n", new sliceType$2([x$1])); /* */ $s = 14; case 14: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r; - /* } */ case 6: - $s = -1; return; - /* */ } return; } var $f = {$blk: block, $c: true, $r, _i, _i$1, _r, _ref, _ref$1, _ref$2, _tuple, blk, i, i$1, item, line, loose, out, p, text, x, x$1, x$2, x$3, x$4, x$5, $s};return $f; - }; - $ptrType(textPrinter).prototype.text = function text(out, indent, x) { - var {_i, _r, _r$1, _ref, i, indent, j, out, p, seq, w, words, x, x$1, $s, $r, $c} = $restore(this, {out, indent, x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - p.oneLongLine(p.long$1, x); - _r = strings.Fields(p.long$1.String()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - words = _r; - p.long$1.Reset(); - seq = sliceType$3.nil; - /* */ if (p.width < 0 || (words.$length === 0)) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (p.width < 0 || (words.$length === 0)) { */ case 2: - seq = new sliceType$3([0, words.$length]); - $s = 4; continue; - /* } else { */ case 3: - _r$1 = wrap(words, p.width - utf8.RuneCountInString(indent) >> 0); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - seq = _r$1; - /* } */ case 4: - i = 0; - while (true) { - if (!((i + 1 >> 0) < seq.$length)) { break; } - if (i > 0) { - out.WriteString(p.prefix); - out.WriteString(indent); - } - _ref = $subslice(words, ((i < 0 || i >= seq.$length) ? ($throwRuntimeError("index out of range"), undefined) : seq.$array[seq.$offset + i]), (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= seq.$length) ? ($throwRuntimeError("index out of range"), undefined) : seq.$array[seq.$offset + x$1]))); - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - j = _i; - w = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (j > 0) { - out.WriteString(" "); - } - out.WriteString(w); - _i++; - } - writeNL(out); - i = i + (1) >> 0; - } - $s = -1; return; - /* */ } return; } var $f = {$blk: text, $c: true, $r, _i, _r, _r$1, _ref, i, indent, j, out, p, seq, w, words, x, x$1, $s};return $f; - }; - $ptrType(textPrinter).prototype.oneLongLine = function oneLongLine(out, x) { - var _i, _ref, _ref$1, out, p, t, t$1, t$2, t$3, t$4, x; - p = this; - _ref = x; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _ref$1 = t; - if ($assertType(_ref$1, Plain, true)[1]) { - t$1 = _ref$1.$val; - out.WriteString((t$1)); - } else if ($assertType(_ref$1, Italic, true)[1]) { - t$2 = _ref$1.$val; - out.WriteString((t$2)); - } else if ($assertType(_ref$1, ptrType$6, true)[1]) { - t$3 = _ref$1.$val; - p.oneLongLine(out, t$3.Text); - } else if ($assertType(_ref$1, ptrType$7, true)[1]) { - t$4 = _ref$1.$val; - p.oneLongLine(out, t$4.Text); - } - _i++; - } - }; - wrap = function wrap$1(words, max) { - var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _i, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _v, _v$1, _v$2, add, bestleft, bridge, cmp, d, f, g, i, m, m$1, m$2, max, n, s, seq, total, weight, words, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {words, max}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - add = [add]; - cmp = [cmp]; - f = [f]; - g = [g]; - max = [max]; - total = [total]; - weight = [weight]; - words = [words]; - seq = sliceType$3.nil; - add[0] = (function(add, cmp, f, g, max, total, weight, words) { return function wrap·func1(s, t) { - var s, t, x, x$1, x$2, x$3; - return new score.ptr((x = s.hi, x$1 = t.hi, new $Int64(x.$high + x$1.$high, x.$low + x$1.$low)), (x$2 = s.lo, x$3 = t.lo, new $Int64(x$2.$high + x$3.$high, x$2.$low + x$3.$low))); - }; })(add, cmp, f, g, max, total, weight, words); - cmp[0] = (function(add, cmp, f, g, max, total, weight, words) { return function wrap·func2(s, t) { - var s, t, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7; - if ((x = s.hi, x$1 = t.hi, (x.$high < x$1.$high || (x.$high === x$1.$high && x.$low < x$1.$low)))) { - return -1; - } else if ((x$2 = s.hi, x$3 = t.hi, (x$2.$high > x$3.$high || (x$2.$high === x$3.$high && x$2.$low > x$3.$low)))) { - return 1; - } else if ((x$4 = s.lo, x$5 = t.lo, (x$4.$high < x$5.$high || (x$4.$high === x$5.$high && x$4.$low < x$5.$low)))) { - return -1; - } else if ((x$6 = s.lo, x$7 = t.lo, (x$6.$high > x$7.$high || (x$6.$high === x$7.$high && x$6.$low > x$7.$low)))) { - return 1; - } - return 0; - }; })(add, cmp, f, g, max, total, weight, words); - total[0] = $makeSlice(sliceType$3, (words[0].$length + 1 >> 0)); - (0 >= total[0].$length ? ($throwRuntimeError("index out of range"), undefined) : total[0].$array[total[0].$offset + 0] = 0); - _ref = words[0]; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - (x = 1 + i >> 0, ((x < 0 || x >= total[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : total[0].$array[total[0].$offset + x] = ((((i < 0 || i >= total[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : total[0].$array[total[0].$offset + i]) + utf8.RuneCountInString(s) >> 0) + 1 >> 0))); - _i++; - } - weight[0] = (function(add, cmp, f, g, max, total, weight, words) { return function wrap·func3(i$1, j) { - var i$1, j, n, p, v, x$1; - n = (((j < 0 || j >= total[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : total[0].$array[total[0].$offset + j]) - 1 >> 0) - ((i$1 < 0 || i$1 >= total[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : total[0].$array[total[0].$offset + i$1]) >> 0; - if ((j === words[0].$length) && n <= max[0]) { - return new score.ptr(new $Int64(0, 0), new $Int64(0, 0)); - } - p = wrapPenalty((x$1 = j - 1 >> 0, ((x$1 < 0 || x$1 >= words[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : words[0].$array[words[0].$offset + x$1]))); - v = $mul64((new $Int64(0, (max[0] - n >> 0))), (new $Int64(0, (max[0] - n >> 0)))); - if (n > max[0]) { - return new score.ptr(v, p); - } - return new score.ptr(new $Int64(0, 0), new $Int64(v.$high + p.$high, v.$low + p.$low)); - }; })(add, cmp, f, g, max, total, weight, words); - f[0] = new sliceType$4([$clone(new score.ptr(new $Int64(0, 0), new $Int64(0, 0)), score)]); - g[0] = (function(add, cmp, f, g, max, total, weight, words) { return function wrap·func4(i$1, j) { - var {$24r, _arg, _arg$1, _r, _r$1, i$1, j, $s, $r, $c} = $restore(this, {i$1, j}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _arg = $clone(((i$1 < 0 || i$1 >= f[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : f[0].$array[f[0].$offset + i$1]), score); - _r = weight[0](i$1, j); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _arg$1 = $clone(_r, score); - _r$1 = add[0](_arg, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: wrap·func4, $c: true, $r, $24r, _arg, _arg$1, _r, _r$1, i$1, j, $s};return $f; - }; })(add, cmp, f, g, max, total, weight, words); - bridge = (function(add, cmp, f, g, max, total, weight, words) { return function wrap·func5(a, b, c) { - var {$24r, _arg, _arg$1, _r, _r$1, _r$2, _r$3, a, b, c, k, $s, $r, $c} = $restore(this, {a, b, c}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - a = [a]; - b = [b]; - c = [c]; - _r = sort.Search((words[0].$length + 1 >> 0) - c[0] >> 0, (function(a, add, b, c, cmp, f, g, max, total, weight, words) { return function wrap·func5·func1(k) { - var {$24r, _arg, _arg$1, _r, _r$1, _r$2, k, $s, $r, $c} = $restore(this, {k}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - k = k + (c[0]) >> 0; - _r = g[0](a[0], k); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _arg = $clone(_r, score); - _r$1 = g[0](b[0], k); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _arg$1 = $clone(_r$1, score); - _r$2 = cmp[0](_arg, _arg$1); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2 > 0; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: wrap·func5·func1, $c: true, $r, $24r, _arg, _arg$1, _r, _r$1, _r$2, k, $s};return $f; - }; })(a, add, b, c, cmp, f, g, max, total, weight, words)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - k = c[0] + _r >> 0; - if (k > words[0].$length) { - $s = -1; return true; - } - _r$1 = g[0](c[0], k); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _arg = $clone(_r$1, score); - _r$2 = g[0](b[0], k); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _arg$1 = $clone(_r$2, score); - _r$3 = cmp[0](_arg, _arg$1); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r = _r$3 <= 0; - $s = 5; case 5: return $24r; - /* */ } return; } var $f = {$blk: wrap·func5, $c: true, $r, $24r, _arg, _arg$1, _r, _r$1, _r$2, _r$3, a, b, c, k, $s};return $f; - }; })(add, cmp, f, g, max, total, weight, words); - d = $makeSlice(sliceType$3, 1, words[0].$length); - (0 >= d.$length ? ($throwRuntimeError("index out of range"), undefined) : d.$array[d.$offset + 0] = 0); - bestleft = $makeSlice(sliceType$3, 1, words[0].$length); - (0 >= bestleft.$length ? ($throwRuntimeError("index out of range"), undefined) : bestleft.$array[bestleft.$offset + 0] = -1); - m = 1; - /* while (true) { */ case 1: - /* if (!(m < words[0].$length)) { break; } */ if(!(m < words[0].$length)) { $s = 2; continue; } - _r = g[0]((0 >= d.$length ? ($throwRuntimeError("index out of range"), undefined) : d.$array[d.$offset + 0]), m); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - f[0] = $append(f[0], _r); - bestleft = $append(bestleft, (0 >= d.$length ? ($throwRuntimeError("index out of range"), undefined) : d.$array[d.$offset + 0])); - /* while (true) { */ case 4: - if (!(d.$length > 1)) { _v = false; $s = 6; continue s; } - _r$1 = g[0]((1 >= d.$length ? ($throwRuntimeError("index out of range"), undefined) : d.$array[d.$offset + 1]), m + 1 >> 0); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _arg = $clone(_r$1, score); - _r$2 = g[0]((0 >= d.$length ? ($throwRuntimeError("index out of range"), undefined) : d.$array[d.$offset + 0]), m + 1 >> 0); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _arg$1 = $clone(_r$2, score); - _r$3 = cmp[0](_arg, _arg$1); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _v = _r$3 <= 0; case 6: - /* if (!(_v)) { break; } */ if(!(_v)) { $s = 5; continue; } - d = $subslice(d, 1); - $s = 4; continue; - case 5: - /* while (true) { */ case 10: - if (!(d.$length > 1)) { _v$1 = false; $s = 12; continue s; } - _r$4 = bridge((x$1 = d.$length - 2 >> 0, ((x$1 < 0 || x$1 >= d.$length) ? ($throwRuntimeError("index out of range"), undefined) : d.$array[d.$offset + x$1])), (x$2 = d.$length - 1 >> 0, ((x$2 < 0 || x$2 >= d.$length) ? ($throwRuntimeError("index out of range"), undefined) : d.$array[d.$offset + x$2])), m); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _v$1 = _r$4; case 12: - /* if (!(_v$1)) { break; } */ if(!(_v$1)) { $s = 11; continue; } - d = $subslice(d, 0, (d.$length - 1 >> 0)); - $s = 10; continue; - case 11: - _r$5 = g[0](m, words[0].$length); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _arg$2 = $clone(_r$5, score); - _r$6 = g[0]((x$3 = d.$length - 1 >> 0, ((x$3 < 0 || x$3 >= d.$length) ? ($throwRuntimeError("index out of range"), undefined) : d.$array[d.$offset + x$3])), words[0].$length); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _arg$3 = $clone(_r$6, score); - _r$7 = cmp[0](_arg$2, _arg$3); /* */ $s = 18; case 18: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - /* */ if (_r$7 < 0) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (_r$7 < 0) { */ case 14: - d = $append(d, m); - if (!(d.$length === 2)) { _v$2 = false; $s = 21; continue s; } - _r$8 = g[0]((1 >= d.$length ? ($throwRuntimeError("index out of range"), undefined) : d.$array[d.$offset + 1]), m + 1 >> 0); /* */ $s = 22; case 22: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _arg$4 = $clone(_r$8, score); - _r$9 = g[0]((0 >= d.$length ? ($throwRuntimeError("index out of range"), undefined) : d.$array[d.$offset + 0]), m + 1 >> 0); /* */ $s = 23; case 23: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _arg$5 = $clone(_r$9, score); - _r$10 = cmp[0](_arg$4, _arg$5); /* */ $s = 24; case 24: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _v$2 = _r$10 <= 0; case 21: - /* */ if (_v$2) { $s = 19; continue; } - /* */ $s = 20; continue; - /* if (_v$2) { */ case 19: - d = $subslice(d, 1); - /* } */ case 20: - /* } */ case 15: - m = m + (1) >> 0; - $s = 1; continue; - case 2: - bestleft = $append(bestleft, (0 >= d.$length ? ($throwRuntimeError("index out of range"), undefined) : d.$array[d.$offset + 0])); - n = 1; - m$1 = words[0].$length; - while (true) { - if (!(m$1 > 0)) { break; } - n = n + (1) >> 0; - m$1 = ((m$1 < 0 || m$1 >= bestleft.$length) ? ($throwRuntimeError("index out of range"), undefined) : bestleft.$array[bestleft.$offset + m$1]); - } - seq = $makeSlice(sliceType$3, n); - m$2 = words[0].$length; - while (true) { - if (!(m$2 > 0)) { break; } - n = n - (1) >> 0; - ((n < 0 || n >= seq.$length) ? ($throwRuntimeError("index out of range"), undefined) : seq.$array[seq.$offset + n] = m$2); - m$2 = ((m$2 < 0 || m$2 >= bestleft.$length) ? ($throwRuntimeError("index out of range"), undefined) : bestleft.$array[bestleft.$offset + m$2]); - } - seq = seq; - $s = -1; return seq; - /* */ } return; } var $f = {$blk: wrap$1, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _i, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _v, _v$1, _v$2, add, bestleft, bridge, cmp, d, f, g, i, m, m$1, m$2, max, n, s, seq, total, weight, words, x, x$1, x$2, x$3, $s};return $f; - }; - wrapPenalty = function wrapPenalty$1(s) { - var _1, s; - _1 = s.charCodeAt((s.length - 1 >> 0)); - if ((_1 === (46)) || (_1 === (44)) || (_1 === (58)) || (_1 === (59))) { - return new $Int64(0, 0); - } - return new $Int64(0, 64); - }; - $ptrType(Printer).prototype.headingLevel = function headingLevel() { - var p; - p = this; - if (p.HeadingLevel <= 0) { - return 3; - } - return p.HeadingLevel; - }; - $ptrType(Printer).prototype.headingID = function headingID(h) { - var {$24r, $24r$1, _r, _r$1, h, p, $s, $r, $c} = $restore(this, {h}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - /* */ if (p.HeadingID === $throwNilPointerError) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.HeadingID === $throwNilPointerError) { */ case 1: - _r = h.DefaultID(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 4; case 4: return $24r; - /* } */ case 2: - _r$1 = p.HeadingID(h); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r$1 = _r$1; - $s = 6; case 6: return $24r$1; - /* */ } return; } var $f = {$blk: headingID, $c: true, $r, $24r, $24r$1, _r, _r$1, h, p, $s};return $f; - }; - $ptrType(Printer).prototype.docLinkURL = function docLinkURL(link) { - var {$24r, _r, link, p, $s, $r, $c} = $restore(this, {link}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - /* */ if (!(p.DocLinkURL === $throwNilPointerError)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(p.DocLinkURL === $throwNilPointerError)) { */ case 1: - _r = p.DocLinkURL(link); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 4; case 4: return $24r; - /* } */ case 2: - $s = -1; return link.DefaultURL(p.DocLinkBaseURL); - /* */ } return; } var $f = {$blk: docLinkURL, $c: true, $r, $24r, _r, link, p, $s};return $f; - }; - $ptrType(DocLink).prototype.DefaultURL = function DefaultURL(baseURL) { - var baseURL, l, slash; - l = this; - if (!(l.ImportPath === "")) { - slash = ""; - if (strings.HasSuffix(baseURL, "/")) { - slash = "/"; - } else { - baseURL = baseURL + ("/"); - } - if (l.Name === "") { - return baseURL + l.ImportPath + slash; - } else if (!(l.Recv === "")) { - return baseURL + l.ImportPath + slash + "#" + l.Recv + "." + l.Name; - } else { - return baseURL + l.ImportPath + slash + "#" + l.Name; - } - } - if (!(l.Recv === "")) { - return "#" + l.Recv + "." + l.Name; - } - return "#" + l.Name; - }; - $ptrType(Heading).prototype.DefaultID = function DefaultID() { - var {_i, _r, _ref, _rune, h, out, p, r, s, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - out = [out]; - h = this; - out[0] = new strings.Builder.ptr(ptrType$1.nil, sliceType$1.nil); - p = new textPrinter.ptr(ptrType.nil, new strings.Builder.ptr(ptrType$1.nil, sliceType$1.nil), "", "", 0); - p.oneLongLine(out[0], h.Text); - _r = strings.TrimSpace(out[0].String()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - s = _r; - if (s === "") { - $s = -1; return ""; - } - out[0].Reset(); - out[0].WriteString("hdr-"); - _ref = s; - _i = 0; - while (true) { - if (!(_i < _ref.length)) { break; } - _rune = $decodeRune(_ref, _i); - r = _rune[0]; - if (r < 128 && isIdentASCII(((r << 24 >>> 24)))) { - out[0].WriteByte(((r << 24 >>> 24))); - } else { - out[0].WriteByte(95); - } - _i += _rune[1]; - } - $s = -1; return out[0].String(); - /* */ } return; } var $f = {$blk: DefaultID, $c: true, $r, _i, _r, _ref, _rune, h, out, p, r, s, $s};return $f; - }; - $ptrType(Printer).prototype.Comment = function Comment(d) { - var {_i, _i$1, _ref, _ref$1, cp, d, def, first, i, i$1, out, p, used, x, $s, $r, $c} = $restore(this, {d}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - out = [out]; - p = this; - cp = new commentPrinter.ptr(p, "", false); - out[0] = new bytes.Buffer.ptr(sliceType$1.nil, 0, 0); - _ref = d.Content; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (i > 0 && blankBefore(x)) { - out[0].WriteString("\n"); - } - $r = cp.block(out[0], x); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 1; continue; - case 2: - i$1 = 0; - while (true) { - if (!(i$1 < 2)) { break; } - used = i$1 === 0; - first = true; - _ref$1 = d.Links; - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - def = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - if (def.Used === used) { - if (first) { - out[0].WriteString("\n"); - first = false; - } - out[0].WriteString("["); - out[0].WriteString(def.Text); - out[0].WriteString("]: "); - out[0].WriteString(def.URL); - out[0].WriteString("\n"); - } - _i$1++; - } - i$1 = i$1 + (1) >> 0; - } - $s = -1; return out[0].Bytes(); - /* */ } return; } var $f = {$blk: Comment, $c: true, $r, _i, _i$1, _ref, _ref$1, cp, d, def, first, i, i$1, out, p, used, x, $s};return $f; - }; - blankBefore = function blankBefore$1(x) { - var _tuple, ok, x, x$1; - _tuple = $assertType(x, ptrType$5, true); - x$1 = _tuple[0]; - ok = _tuple[1]; - if (ok) { - return x$1.BlankBefore(); - } - return true; - }; - $ptrType(commentPrinter).prototype.block = function block$1(out, x) { - var {_i, _i$1, _r, _ref, _ref$1, _ref$2, _tuple, blk, i, i$1, item, line, loose, md, out, p, x, x$1, x$2, x$3, x$4, x$5, $s, $r, $c} = $restore(this, {out, x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - _ref = x; - /* */ if ($assertType(_ref, ptrType$2, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$3, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$5, true)[1]) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if ($assertType(_ref, ptrType$2, true)[1]) { */ case 1: - x$2 = _ref.$val; - p.text(out, "", x$2.Text); - out.WriteString("\n"); - $s = 6; continue; - /* } else if ($assertType(_ref, ptrType$3, true)[1]) { */ case 2: - x$3 = _ref.$val; - out.WriteString("# "); - p.text(out, "", x$3.Text); - out.WriteString("\n"); - $s = 6; continue; - /* } else if ($assertType(_ref, ptrType$4, true)[1]) { */ case 3: - x$4 = _ref.$val; - md = x$4.Text; - while (true) { - if (!(!(md === ""))) { break; } - line = ""; - _tuple = strings.Cut(md, "\n"); - line = _tuple[0]; - md = _tuple[1]; - if (!(line === "")) { - out.WriteString("\t"); - out.WriteString(line); - } - out.WriteString("\n"); - } - $s = 6; continue; - /* } else if ($assertType(_ref, ptrType$5, true)[1]) { */ case 4: - x$5 = _ref.$val; - loose = x$5.BlankBetween(); - _ref$1 = x$5.Items; - _i = 0; - while (true) { - if (!(_i < _ref$1.$length)) { break; } - i = _i; - item = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); - if (i > 0 && loose) { - out.WriteString("\n"); - } - out.WriteString(" "); - if (item.Number === "") { - out.WriteString(" - "); - } else { - out.WriteString(item.Number); - out.WriteString(". "); - } - _ref$2 = item.Content; - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$2.$length)) { break; } - i$1 = _i$1; - blk = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); - if (i$1 > 0) { - out.WriteString("\n "); - } - p.text(out, " ", $assertType(blk, ptrType$2).Text); - out.WriteString("\n"); - _i$1++; - } - _i++; - } - $s = 6; continue; - /* } else { */ case 5: - x$1 = _ref; - _r = fmt.Fprintf(out, "?%T", new sliceType$2([x$1])); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r; - /* } */ case 6: - $s = -1; return; - /* */ } return; } var $f = {$blk: block$1, $c: true, $r, _i, _i$1, _r, _ref, _ref$1, _ref$2, _tuple, blk, i, i$1, item, line, loose, md, out, p, x, x$1, x$2, x$3, x$4, x$5, $s};return $f; - }; - $ptrType(commentPrinter).prototype.text = function text$1(out, indent, x) { - var _i, _ref, _ref$1, indent, out, p, t, t$1, t$2, t$3, t$4, x; - p = this; - _ref = x; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _ref$1 = t; - if ($assertType(_ref$1, Plain, true)[1]) { - t$1 = _ref$1.$val; - p.indent(out, indent, (t$1)); - } else if ($assertType(_ref$1, Italic, true)[1]) { - t$2 = _ref$1.$val; - p.indent(out, indent, (t$2)); - } else if ($assertType(_ref$1, ptrType$6, true)[1]) { - t$3 = _ref$1.$val; - if (t$3.Auto) { - p.text(out, indent, t$3.Text); - } else { - out.WriteString("["); - p.text(out, indent, t$3.Text); - out.WriteString("]"); - } - } else if ($assertType(_ref$1, ptrType$7, true)[1]) { - t$4 = _ref$1.$val; - out.WriteString("["); - p.text(out, indent, t$4.Text); - out.WriteString("]"); - } - _i++; - } - }; - $ptrType(commentPrinter).prototype.indent = function indent(out, indent$1, s) { - var _tuple, indent$1, line, ok, out, p, rest, s; - p = this; - while (true) { - if (!(!(s === ""))) { break; } - _tuple = strings.Cut(s, "\n"); - line = _tuple[0]; - rest = _tuple[1]; - ok = _tuple[2]; - out.WriteString(line); - if (ok) { - out.WriteString("\n"); - out.WriteString(indent$1); - } - s = rest; - } - }; - $ptrType(List).prototype.BlankBefore = function BlankBefore() { - var l; - l = this; - return l.ForceBlankBefore || l.BlankBetween(); - }; - $ptrType(List).prototype.BlankBetween = function BlankBetween() { - var _i, _ref, item, l; - l = this; - if (l.ForceBlankBetween) { - return true; - } - _ref = l.Items; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - item = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (!((item.Content.$length === 1))) { - return true; - } - _i++; - } - return false; - }; - $ptrType(parseDoc).prototype.lookupPkg = function lookupPkg(pkg) { - var {$24r, _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, d, importPath, ok, ok$1, path, pkg, $s, $r, $c} = $restore(this, {pkg}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - importPath = ""; - ok = false; - d = this; - if (strings.Contains(pkg, "/")) { - if (validImportPath(pkg)) { - _tmp = pkg; - _tmp$1 = true; - importPath = _tmp; - ok = _tmp$1; - $s = -1; return [importPath, ok]; - } - _tmp$2 = ""; - _tmp$3 = false; - importPath = _tmp$2; - ok = _tmp$3; - $s = -1; return [importPath, ok]; - } - /* */ if (!(d.Parser.LookupPackage === $throwNilPointerError)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(d.Parser.LookupPackage === $throwNilPointerError)) { */ case 1: - _r = d.Parser.LookupPackage(pkg); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - path = _tuple[0]; - ok$1 = _tuple[1]; - if (ok$1) { - _tmp$4 = path; - _tmp$5 = true; - importPath = _tmp$4; - ok = _tmp$5; - $s = -1; return [importPath, ok]; - } - /* } */ case 2: - _r$1 = DefaultLookupPackage(pkg); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$1 = _r$1; - importPath = _tuple$1[0]; - ok = _tuple$1[1]; - $24r = [importPath, ok]; - $s = 5; case 5: return $24r; - /* */ } return; } var $f = {$blk: lookupPkg, $c: true, $r, $24r, _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, d, importPath, ok, ok$1, path, pkg, $s};return $f; - }; - isStdPkg = function isStdPkg$1(path) { - var {_r, i, path, $s, $r, $c} = $restore(this, {path}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - path = [path]; - _r = sort.Search(stdPkgs.$length, (function(path) { return function isStdPkg·func1(i) { - var i; - return ((i < 0 || i >= stdPkgs.$length) ? ($throwRuntimeError("index out of range"), undefined) : stdPkgs.$array[stdPkgs.$offset + i]) >= path[0]; - }; })(path)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - i = _r; - $s = -1; return i < stdPkgs.$length && ((i < 0 || i >= stdPkgs.$length) ? ($throwRuntimeError("index out of range"), undefined) : stdPkgs.$array[stdPkgs.$offset + i]) === path[0]; - /* */ } return; } var $f = {$blk: isStdPkg$1, $c: true, $r, _r, i, path, $s};return $f; - }; - DefaultLookupPackage = function DefaultLookupPackage$1(name) { - var {_r, _tmp, _tmp$1, _tmp$2, _tmp$3, importPath, name, ok, $s, $r, $c} = $restore(this, {name}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - importPath = ""; - ok = false; - _r = isStdPkg(name); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - /* */ if (_r) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (_r) { */ case 1: - _tmp = name; - _tmp$1 = true; - importPath = _tmp; - ok = _tmp$1; - $s = -1; return [importPath, ok]; - /* } */ case 2: - _tmp$2 = ""; - _tmp$3 = false; - importPath = _tmp$2; - ok = _tmp$3; - $s = -1; return [importPath, ok]; - /* */ } return; } var $f = {$blk: DefaultLookupPackage$1, $c: true, $r, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, importPath, name, ok, $s};return $f; - }; - $pkg.DefaultLookupPackage = DefaultLookupPackage; - $ptrType(Parser).prototype.Parse = function Parse(text$6) { - var {_1, _i, _i$1, _i$2, _i$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _ref$1, _ref$2, _ref$3, _ref$4, b, b$1, b$2, b$3, c, d, i, lines, p, p$1, prev, s, text$6, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {text$6}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - _r = unindent(strings.Split(text$6, "\n")); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - lines = _r; - d = new parseDoc.ptr(p, new Doc.ptr(sliceType$5.nil, sliceType$6.nil), new $global.Map(), lines, (function Parser·Parse·func1(recv, name) { - var name, recv; - return false; - })); - if (!(p.LookupSym === $throwNilPointerError)) { - d.lookupSym = p.LookupSym; - } - prev = new span.ptr(0, 0, 0); - _r$1 = parseSpans(lines); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _ref = _r$1; - _i = 0; - /* while (true) { */ case 3: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } - s = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), span); - b = $ifaceNil; - _1 = s.kind; - /* */ if (_1 === (3)) { $s = 6; continue; } - /* */ if (_1 === (1)) { $s = 7; continue; } - /* */ if (_1 === (4)) { $s = 8; continue; } - /* */ if (_1 === (2)) { $s = 9; continue; } - /* */ if (_1 === (5)) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (_1 === (3)) { */ case 6: - _r$2 = d.list($subslice(lines, s.start, s.end), prev.end < s.start); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - b = _r$2; - $s = 12; continue; - /* } else if (_1 === (1)) { */ case 7: - _r$3 = d.code($subslice(lines, s.start, s.end)); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - b = _r$3; - $s = 12; continue; - /* } else if (_1 === (4)) { */ case 8: - _r$4 = d.oldHeading((x = s.start, ((x < 0 || x >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + x]))); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - b = _r$4; - $s = 12; continue; - /* } else if (_1 === (2)) { */ case 9: - _r$5 = d.heading((x$1 = s.start, ((x$1 < 0 || x$1 >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + x$1]))); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - b = _r$5; - $s = 12; continue; - /* } else if (_1 === (5)) { */ case 10: - _r$6 = d.paragraph($subslice(lines, s.start, s.end)); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - b = _r$6; - $s = 12; continue; - /* } else { */ case 11: - $panic(new $String("go/doc/comment: internal error: unknown span kind")); - /* } */ case 12: - case 5: - if (!($interfaceIsEqual(b, $ifaceNil))) { - d.Doc.Content = $append(d.Doc.Content, b); - } - span.copy(prev, s); - _i++; - $s = 3; continue; - case 4: - _ref$1 = d.Doc.Content; - _i$1 = 0; - /* while (true) { */ case 18: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 19; continue; } - b$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - _ref$2 = b$1; - /* */ if ($assertType(_ref$2, ptrType$2, true)[1]) { $s = 20; continue; } - /* */ if ($assertType(_ref$2, ptrType$5, true)[1]) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if ($assertType(_ref$2, ptrType$2, true)[1]) { */ case 20: - b$2 = _ref$2.$val; - _r$7 = d.parseLinkedText(($assertType((x$2 = b$2.Text, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])), Plain))); /* */ $s = 23; case 23: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - b$2.Text = _r$7; - $s = 22; continue; - /* } else if ($assertType(_ref$2, ptrType$5, true)[1]) { */ case 21: - b$3 = _ref$2.$val; - _ref$3 = b$3.Items; - _i$2 = 0; - /* while (true) { */ case 24: - /* if (!(_i$2 < _ref$3.$length)) { break; } */ if(!(_i$2 < _ref$3.$length)) { $s = 25; continue; } - i = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]); - _ref$4 = i.Content; - _i$3 = 0; - /* while (true) { */ case 26: - /* if (!(_i$3 < _ref$4.$length)) { break; } */ if(!(_i$3 < _ref$4.$length)) { $s = 27; continue; } - c = ((_i$3 < 0 || _i$3 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$3]); - p$1 = $assertType(c, ptrType$2); - _r$8 = d.parseLinkedText(($assertType((x$3 = p$1.Text, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])), Plain))); /* */ $s = 28; case 28: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - p$1.Text = _r$8; - _i$3++; - $s = 26; continue; - case 27: - _i$2++; - $s = 24; continue; - case 25: - /* } */ case 22: - _i$1++; - $s = 18; continue; - case 19: - $s = -1; return d.Doc; - /* */ } return; } var $f = {$blk: Parse, $c: true, $r, _1, _i, _i$1, _i$2, _i$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _ref$1, _ref$2, _ref$3, _ref$4, b, b$1, b$2, b$3, c, d, i, lines, p, p$1, prev, s, text$6, x, x$1, x$2, x$3, $s};return $f; - }; - parseSpans = function parseSpans$1(lines) { - var {_r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _v, _v$1, _v$2, _v$3, _v$4, _v$5, _v$6, end, forceIndent, i, kind, lines, spans, start, unindentedListOK, watchdog, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {lines}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - spans = sliceType$7.nil; - watchdog = $imul(2, lines.$length); - i = 0; - forceIndent = 0; - /* while (true) { */ case 1: - while (true) { - if (!(i < lines.$length && ((i < 0 || i >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + i]) === "")) { break; } - i = i + (1) >> 0; - } - if (i >= lines.$length) { - /* break; */ $s = 2; continue; - } - watchdog = watchdog - (1) >> 0; - if (watchdog < 0) { - $panic(new $String("go/doc/comment: internal error: not making progress")); - } - kind = 0; - start = i; - end = i; - /* */ if (i < forceIndent || indented(((i < 0 || i >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + i]))) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (i < forceIndent || indented(((i < 0 || i >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + i]))) { */ case 3: - _r = isList(((i < 0 || i >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + i])); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - unindentedListOK = _r && i < forceIndent; - i = i + (1) >> 0; - /* while (true) { */ case 7: - if (!(i < lines.$length)) { _v = false; $s = 9; continue s; } - if (((i < 0 || i >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + i]) === "" || i < forceIndent || indented(((i < 0 || i >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + i]))) { _v$1 = true; $s = 10; continue s; } - if (!(unindentedListOK)) { _v$2 = false; $s = 11; continue s; } - _r$1 = isList(((i < 0 || i >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + i])); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v$2 = _r$1; case 11: - _v$1 = _v$2; case 10: - _v = _v$1; case 9: - /* if (!(_v)) { break; } */ if(!(_v)) { $s = 8; continue; } - if (((i < 0 || i >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + i]) === "") { - unindentedListOK = false; - } - i = i + (1) >> 0; - $s = 7; continue; - case 8: - end = i; - while (true) { - if (!(end > start && (x = end - 1 >> 0, ((x < 0 || x >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + x])) === "")) { break; } - end = end - (1) >> 0; - } - if (end < lines.$length && strings.HasPrefix(((end < 0 || end >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + end]), "}")) { - end = end + (1) >> 0; - } - _r$2 = isList(((start < 0 || start >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + start])); /* */ $s = 16; case 16: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (_r$2) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (_r$2) { */ case 13: - kind = 3; - $s = 15; continue; - /* } else { */ case 14: - kind = 1; - /* } */ case 15: - $s = 5; continue; - /* } else { */ case 4: - i = i + (1) >> 0; - while (true) { - if (!(i < lines.$length && !(((i < 0 || i >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + i]) === "") && !indented(((i < 0 || i >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + i])))) { break; } - i = i + (1) >> 0; - } - end = i; - if (!(i < lines.$length && !(((i < 0 || i >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + i]) === ""))) { _v$3 = false; $s = 19; continue s; } - _r$3 = isList(((i < 0 || i >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + i])); /* */ $s = 20; case 20: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _v$3 = !_r$3; case 19: - /* */ if (_v$3) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (_v$3) { */ case 17: - _r$4 = isList((x$1 = i - 1 >> 0, ((x$1 < 0 || x$1 >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + x$1]))); /* */ $s = 25; case 25: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if (_r$4) { $s = 22; continue; } - /* */ if (strings.HasSuffix((x$2 = i - 1 >> 0, ((x$2 < 0 || x$2 >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + x$2])), "{") || strings.HasSuffix((x$3 = i - 1 >> 0, ((x$3 < 0 || x$3 >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + x$3])), "\\")) { $s = 23; continue; } - /* */ $s = 24; continue; - /* if (_r$4) { */ case 22: - forceIndent = end; - end = end - (1) >> 0; - /* while (true) { */ case 26: - if (!(end > start)) { _v$4 = false; $s = 28; continue s; } - _r$5 = isList((x$4 = end - 1 >> 0, ((x$4 < 0 || x$4 >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + x$4]))); /* */ $s = 29; case 29: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _v$4 = _r$5; case 28: - /* if (!(_v$4)) { break; } */ if(!(_v$4)) { $s = 27; continue; } - end = end - (1) >> 0; - $s = 26; continue; - case 27: - $s = 24; continue; - /* } else if (strings.HasSuffix((x$2 = i - 1 >> 0, ((x$2 < 0 || x$2 >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + x$2])), "{") || strings.HasSuffix((x$3 = i - 1 >> 0, ((x$3 < 0 || x$3 >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + x$3])), "\\")) { */ case 23: - forceIndent = end; - end = end - (1) >> 0; - /* } */ case 24: - case 21: - if ((start === end) && forceIndent > start) { - i = start; - /* continue Spans; */ $s = 1; continue s; - } - /* } */ case 18: - if (!((end - start >> 0) === 1)) { _v$5 = false; $s = 34; continue s; } - _r$6 = isHeading(((start < 0 || start >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + start])); /* */ $s = 35; case 35: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _v$5 = _r$6; case 34: - /* */ if (_v$5) { $s = 30; continue; } - if (!((end - start >> 0) === 1)) { _v$6 = false; $s = 36; continue s; } - _r$7 = isOldHeading(((start < 0 || start >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + start]), lines, start); /* */ $s = 37; case 37: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _v$6 = _r$7; case 36: - /* */ if (_v$6) { $s = 31; continue; } - /* */ $s = 32; continue; - /* if (_v$5) { */ case 30: - kind = 2; - $s = 33; continue; - /* } else if (_v$6) { */ case 31: - kind = 4; - $s = 33; continue; - /* } else { */ case 32: - kind = 5; - /* } */ case 33: - /* } */ case 5: - spans = $append(spans, new span.ptr(start, end, kind)); - i = end; - $s = 1; continue; - case 2: - $s = -1; return spans; - /* */ } return; } var $f = {$blk: parseSpans$1, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _v, _v$1, _v$2, _v$3, _v$4, _v$5, _v$6, end, forceIndent, i, kind, lines, spans, start, unindentedListOK, watchdog, x, x$1, x$2, x$3, x$4, $s};return $f; - }; - indented = function indented$1(line) { - var line; - return !(line === "") && ((line.charCodeAt(0) === 32) || (line.charCodeAt(0) === 9)); - }; - unindent = function unindent$1(lines) { - var {_i, _i$1, _r, _ref, _ref$1, i, line, line$1, lines, out, prefix, x, x$1, $s, $r, $c} = $restore(this, {lines}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - while (true) { - if (!(lines.$length > 0 && isBlank((0 >= lines.$length ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + 0])))) { break; } - lines = $subslice(lines, 1); - } - while (true) { - if (!(lines.$length > 0 && isBlank((x = lines.$length - 1 >> 0, ((x < 0 || x >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + x]))))) { break; } - lines = $subslice(lines, 0, (lines.$length - 1 >> 0)); - } - if (lines.$length === 0) { - $s = -1; return sliceType.nil; - } - prefix = leadingSpace((0 >= lines.$length ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + 0])); - _ref = $subslice(lines, 1); - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - line = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (!isBlank(line)) { - prefix = commonPrefix(prefix, leadingSpace(line)); - } - _i++; - } - out = $makeSlice(sliceType, lines.$length); - _ref$1 = lines; - _i$1 = 0; - /* while (true) { */ case 1: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 2; continue; } - i = _i$1; - line$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - line$1 = strings.TrimPrefix(line$1, prefix); - _r = strings.TrimSpace(line$1); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - /* */ if (_r === "") { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (_r === "") { */ case 3: - line$1 = ""; - /* } */ case 4: - ((i < 0 || i >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + i] = line$1); - _i$1++; - $s = 1; continue; - case 2: - while (true) { - if (!(out.$length > 0 && (0 >= out.$length ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + 0]) === "")) { break; } - out = $subslice(out, 1); - } - while (true) { - if (!(out.$length > 0 && (x$1 = out.$length - 1 >> 0, ((x$1 < 0 || x$1 >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + x$1])) === "")) { break; } - out = $subslice(out, 0, (out.$length - 1 >> 0)); - } - $s = -1; return out; - /* */ } return; } var $f = {$blk: unindent$1, $c: true, $r, _i, _i$1, _r, _ref, _ref$1, i, line, line$1, lines, out, prefix, x, x$1, $s};return $f; - }; - isBlank = function isBlank$1(s) { - var s; - return (s.length === 0) || ((s.length === 1) && (s.charCodeAt(0) === 10)); - }; - commonPrefix = function commonPrefix$1(a, b) { - var a, b, i; - i = 0; - while (true) { - if (!(i < a.length && i < b.length && (a.charCodeAt(i) === b.charCodeAt(i)))) { break; } - i = i + (1) >> 0; - } - return $substring(a, 0, i); - }; - leadingSpace = function leadingSpace$1(s) { - var i, s; - i = 0; - while (true) { - if (!(i < s.length && ((s.charCodeAt(i) === 32) || (s.charCodeAt(i) === 9)))) { break; } - i = i + (1) >> 0; - } - return $substring(s, 0, i); - }; - isOldHeading = function isOldHeading$1(line, all, off) { - var {_r, _tuple, _tuple$1, _tuple$2, _tuple$3, all, b, b$1, line, off, ok, ok$1, r, x, x$1, x$2, $s, $r, $c} = $restore(this, {line, all, off}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (off <= 0 || !((x = off - 1 >> 0, ((x < 0 || x >= all.$length) ? ($throwRuntimeError("index out of range"), undefined) : all.$array[all.$offset + x])) === "") || (off + 2 >> 0) >= all.$length || !((x$1 = off + 1 >> 0, ((x$1 < 0 || x$1 >= all.$length) ? ($throwRuntimeError("index out of range"), undefined) : all.$array[all.$offset + x$1])) === "") || !(leadingSpace((x$2 = off + 2 >> 0, ((x$2 < 0 || x$2 >= all.$length) ? ($throwRuntimeError("index out of range"), undefined) : all.$array[all.$offset + x$2]))) === "")) { - $s = -1; return false; - } - _r = strings.TrimSpace(line); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - line = _r; - _tuple = utf8.DecodeRuneInString(line); - r = _tuple[0]; - if (!unicode.IsLetter(r) || !unicode.IsUpper(r)) { - $s = -1; return false; - } - _tuple$1 = utf8.DecodeLastRuneInString(line); - r = _tuple$1[0]; - if (!unicode.IsLetter(r) && !unicode.IsDigit(r)) { - $s = -1; return false; - } - if (strings.ContainsAny(line, ";:!?+*/=[]{}_^\xC2\xB0&\xC2\xA7~%#@<\">\\")) { - $s = -1; return false; - } - b = line; - while (true) { - ok = false; - _tuple$2 = strings.Cut(b, "'"); - b = _tuple$2[1]; - ok = _tuple$2[2]; - if (!ok) { - break; - } - if (!(b === "s") && !strings.HasPrefix(b, "s ")) { - $s = -1; return false; - } - } - b$1 = line; - while (true) { - ok$1 = false; - _tuple$3 = strings.Cut(b$1, "."); - b$1 = _tuple$3[1]; - ok$1 = _tuple$3[2]; - if (!ok$1) { - break; - } - if (b$1 === "" || strings.HasPrefix(b$1, " ")) { - $s = -1; return false; - } - } - $s = -1; return true; - /* */ } return; } var $f = {$blk: isOldHeading$1, $c: true, $r, _r, _tuple, _tuple$1, _tuple$2, _tuple$3, all, b, b$1, line, off, ok, ok$1, r, x, x$1, x$2, $s};return $f; - }; - $ptrType(parseDoc).prototype.oldHeading = function oldHeading(line) { - var {$24r, _r, d, line, $s, $r, $c} = $restore(this, {line}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - d = this; - _r = strings.TrimSpace(line); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = new Heading.ptr(new sliceType$8([new Plain((_r))])); - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: oldHeading, $c: true, $r, $24r, _r, d, line, $s};return $f; - }; - isHeading = function isHeading$1(line) { - var {$24r, _r, _v, line, $s, $r, $c} = $restore(this, {line}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (!(line.length >= 2 && (line.charCodeAt(0) === 35) && ((line.charCodeAt(1) === 32) || (line.charCodeAt(1) === 9)))) { _v = false; $s = 1; continue s; } - _r = strings.TrimSpace(line); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _v = !(_r === "#"); case 1: - $24r = _v; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: isHeading$1, $c: true, $r, $24r, _r, _v, line, $s};return $f; - }; - $ptrType(parseDoc).prototype.heading = function heading(line) { - var {$24r, _r, d, line, $s, $r, $c} = $restore(this, {line}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - d = this; - _r = strings.TrimSpace($substring(line, 1)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = new Heading.ptr(new sliceType$8([new Plain((_r))])); - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: heading, $c: true, $r, $24r, _r, d, line, $s};return $f; - }; - $ptrType(parseDoc).prototype.code = function code(lines) { - var {_r, body, d, lines, $s, $r, $c} = $restore(this, {lines}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - d = this; - _r = unindent(lines); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - body = _r; - body = $append(body, ""); - $s = -1; return new Code.ptr(strings.Join(body, "\n")); - /* */ } return; } var $f = {$blk: code, $c: true, $r, _r, body, d, lines, $s};return $f; - }; - $ptrType(parseDoc).prototype.paragraph = function paragraph(lines) { - var {_entry, _i, _i$1, _key, _r, _ref, _ref$1, _tuple, d, def, def$1, defs, line, lines, ok, $s, $r, $c} = $restore(this, {lines}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - d = this; - defs = sliceType$6.nil; - _ref = lines; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - line = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r = parseLink(line); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - def = _tuple[0]; - ok = _tuple[1]; - /* */ if (!ok) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (!ok) { */ case 4: - /* goto NoDefs */ $s = 6; continue; - /* } */ case 5: - defs = $append(defs, def); - _i++; - $s = 1; continue; - case 2: - _ref$1 = defs; - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - def$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - d.Doc.Links = $append(d.Doc.Links, def$1); - if ((_entry = $mapIndex(d.links,$String.keyFor(def$1.Text)), _entry !== undefined ? _entry.v : ptrType$10.nil) === ptrType$10.nil) { - _key = def$1.Text; (d.links || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: def$1 }); - } - _i$1++; - } - $s = -1; return $ifaceNil; - /* NoDefs: */ case 6: - $s = -1; return new Paragraph.ptr(new sliceType$8([new Plain((strings.Join(lines, "\n")))])); - /* */ } return; } var $f = {$blk: paragraph, $c: true, $r, _entry, _i, _i$1, _key, _r, _ref, _ref$1, _tuple, d, def, def$1, defs, line, lines, ok, $s};return $f; - }; - parseLink = function parseLink$1(line) { - var {_r, i, j, line, text$6, url, $s, $r, $c} = $restore(this, {line}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (line === "" || !((line.charCodeAt(0) === 91))) { - $s = -1; return [ptrType$10.nil, false]; - } - i = strings.Index(line, "]:"); - if (i < 0 || (i + 3 >> 0) >= line.length || (!((line.charCodeAt((i + 2 >> 0)) === 32)) && !((line.charCodeAt((i + 2 >> 0)) === 9)))) { - $s = -1; return [ptrType$10.nil, false]; - } - text$6 = $substring(line, 1, i); - _r = strings.TrimSpace($substring(line, (i + 3 >> 0))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - url = _r; - j = strings.Index(url, "://"); - if (j < 0 || !isScheme($substring(url, 0, j))) { - $s = -1; return [ptrType$10.nil, false]; - } - $s = -1; return [new LinkDef.ptr(text$6, url, false), true]; - /* */ } return; } var $f = {$blk: parseLink$1, $c: true, $r, _r, i, j, line, text$6, url, $s};return $f; - }; - $ptrType(parseDoc).prototype.list = function list(lines, forceBlankBefore) { - var {_i, _r, _r$1, _r$2, _r$3, _ref, _tuple, _tuple$1, after, d, flush, forceBlankBefore, item, line, lines, list$1, n, num, ok, text$6, $s, $r, $c} = $restore(this, {lines, forceBlankBefore}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - d = [d]; - item = [item]; - text$6 = [text$6]; - d[0] = this; - _r = listMarker((0 >= lines.$length ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + 0])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - num = _tuple[0]; - list$1 = new List.ptr(sliceType$9.nil, forceBlankBefore, false); - item[0] = ptrType$11.nil; - text$6[0] = sliceType.nil; - flush = (function(d, item, text$6) { return function parseDoc·list·func1() { - var {_r$1, para, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - /* */ if (!(item[0] === ptrType$11.nil)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(item[0] === ptrType$11.nil)) { */ case 1: - _r$1 = d[0].paragraph(text$6[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - para = _r$1; - if (!($interfaceIsEqual(para, $ifaceNil))) { - item[0].Content = $append(item[0].Content, para); - } - /* } */ case 2: - text$6[0] = sliceType.nil; - $s = -1; return; - /* */ } return; } var $f = {$blk: parseDoc·list·func1, $c: true, $r, _r$1, para, $s};return $f; - }; })(d, item, text$6); - _ref = lines; - _i = 0; - /* while (true) { */ case 2: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } - line = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$1 = listMarker(line); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$1 = _r$1; - n = _tuple$1[0]; - after = _tuple$1[1]; - ok = _tuple$1[2]; - /* */ if (ok && (!(n === "")) === (!(num === ""))) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (ok && (!(n === "")) === (!(num === ""))) { */ case 5: - $r = flush(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - item[0] = new ListItem.ptr(n, sliceType$5.nil); - list$1.Items = $append(list$1.Items, item[0]); - line = after; - /* } */ case 6: - _r$2 = strings.TrimSpace(line); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - line = _r$2; - /* */ if (line === "") { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (line === "") { */ case 9: - list$1.ForceBlankBetween = true; - $r = flush(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - /* continue; */ $s = 2; continue; - /* } */ case 10: - _r$3 = strings.TrimSpace(line); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - text$6[0] = $append(text$6[0], _r$3); - _i++; - $s = 2; continue; - case 3: - $r = flush(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return list$1; - /* */ } return; } var $f = {$blk: list, $c: true, $r, _i, _r, _r$1, _r$2, _r$3, _ref, _tuple, _tuple$1, after, d, flush, forceBlankBefore, item, line, lines, list$1, n, num, ok, text$6, $s};return $f; - }; - listMarker = function listMarker$1(line) { - var {_r, _r$1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _v, line, n, n$1, num, ok, r, rest, $s, $r, $c} = $restore(this, {line}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - num = ""; - rest = ""; - ok = false; - _r = strings.TrimSpace(line); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - line = _r; - if (line === "") { - _tmp = ""; - _tmp$1 = ""; - _tmp$2 = false; - num = _tmp; - rest = _tmp$1; - ok = _tmp$2; - $s = -1; return [num, rest, ok]; - } - _tuple = utf8.DecodeRuneInString(line); - r = _tuple[0]; - n = _tuple[1]; - if ((r === 8226) || (r === 42) || (r === 43) || (r === 45)) { - _tmp$3 = ""; - _tmp$4 = $substring(line, n); - num = _tmp$3; - rest = _tmp$4; - } else if (48 <= line.charCodeAt(0) && line.charCodeAt(0) <= 57) { - n$1 = 1; - while (true) { - if (!(n$1 < line.length && 48 <= line.charCodeAt(n$1) && line.charCodeAt(n$1) <= 57)) { break; } - n$1 = n$1 + (1) >> 0; - } - if (n$1 >= line.length || (!((line.charCodeAt(n$1) === 46)) && !((line.charCodeAt(n$1) === 41)))) { - _tmp$5 = ""; - _tmp$6 = ""; - _tmp$7 = false; - num = _tmp$5; - rest = _tmp$6; - ok = _tmp$7; - $s = -1; return [num, rest, ok]; - } - _tmp$8 = $substring(line, 0, n$1); - _tmp$9 = $substring(line, (n$1 + 1 >> 0)); - num = _tmp$8; - rest = _tmp$9; - } else { - _tmp$10 = ""; - _tmp$11 = ""; - _tmp$12 = false; - num = _tmp$10; - rest = _tmp$11; - ok = _tmp$12; - $s = -1; return [num, rest, ok]; - } - if (!indented(rest)) { _v = true; $s = 4; continue s; } - _r$1 = strings.TrimSpace(rest); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = _r$1 === ""; case 4: - /* */ if (_v) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (_v) { */ case 2: - _tmp$13 = ""; - _tmp$14 = ""; - _tmp$15 = false; - num = _tmp$13; - rest = _tmp$14; - ok = _tmp$15; - $s = -1; return [num, rest, ok]; - /* } */ case 3: - _tmp$16 = num; - _tmp$17 = rest; - _tmp$18 = true; - num = _tmp$16; - rest = _tmp$17; - ok = _tmp$18; - $s = -1; return [num, rest, ok]; - /* */ } return; } var $f = {$blk: listMarker$1, $c: true, $r, _r, _r$1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _v, line, n, n$1, num, ok, r, rest, $s};return $f; - }; - isList = function isList$1(line) { - var {_r, _tuple, line, ok, $s, $r, $c} = $restore(this, {line}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = listMarker(line); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - ok = _tuple[2]; - $s = -1; return ok; - /* */ } return; } var $f = {$blk: isList$1, $c: true, $r, _r, _tuple, line, ok, $s};return $f; - }; - $ptrType(parseDoc).prototype.parseLinkedText = function parseLinkedText(text$6) { - var {_1, _entry, _r, _r$1, _r$2, _tuple, _tuple$1, buf, c, d, def, flush, i, link, ok, ok$1, out, start, text$6, wrote, $s, $r, $c} = $restore(this, {text$6}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - d = [d]; - out = [out]; - text$6 = [text$6]; - wrote = [wrote]; - d[0] = this; - out[0] = sliceType$8.nil; - wrote[0] = 0; - flush = (function(d, out, text$6, wrote) { return function parseDoc·parseLinkedText·func1(i) { - var {_r, i, $s, $r, $c} = $restore(this, {i}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - /* */ if (wrote[0] < i) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (wrote[0] < i) { */ case 1: - _r = d[0].parseText(out[0], $substring(text$6[0], wrote[0], i), true); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - out[0] = _r; - wrote[0] = i; - /* } */ case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: parseDoc·parseLinkedText·func1, $c: true, $r, _r, i, $s};return $f; - }; })(d, out, text$6, wrote); - start = -1; - buf = sliceType$1.nil; - i = 0; - /* while (true) { */ case 1: - /* if (!(i < text$6[0].length)) { break; } */ if(!(i < text$6[0].length)) { $s = 2; continue; } - c = text$6[0].charCodeAt(i); - if ((c === 10) || (c === 9)) { - c = 32; - } - _1 = c; - /* */ if (_1 === (91)) { $s = 4; continue; } - /* */ if (_1 === (93)) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (_1 === (91)) { */ case 4: - start = i; - $s = 6; continue; - /* } else if (_1 === (93)) { */ case 5: - /* */ if (start >= 0) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (start >= 0) { */ case 7: - _tuple = (_entry = $mapIndex(d[0].links,$String.keyFor(($bytesToString(buf)))), _entry !== undefined ? [_entry.v, true] : [ptrType$10.nil, false]); - def = _tuple[0]; - ok = _tuple[1]; - /* */ if (ok) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (ok) { */ case 9: - def.Used = true; - $r = flush(start); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r = d[0].parseText(sliceType$8.nil, $substring(text$6[0], (start + 1 >> 0), i), false); /* */ $s = 13; case 13: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - out[0] = $append(out[0], new Link.ptr(false, _r, def.URL)); - wrote[0] = i + 1 >> 0; - $s = 11; continue; - /* } else { */ case 10: - _r$1 = d[0].docLink($substring(text$6[0], (start + 1 >> 0), i), $substring(text$6[0], 0, start), $substring(text$6[0], (i + 1 >> 0))); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$1 = _r$1; - link = _tuple$1[0]; - ok$1 = _tuple$1[1]; - /* */ if (ok$1) { $s = 15; continue; } - /* */ $s = 16; continue; - /* if (ok$1) { */ case 15: - $r = flush(start); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$2 = d[0].parseText(sliceType$8.nil, $substring(text$6[0], (start + 1 >> 0), i), false); /* */ $s = 18; case 18: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - link.Text = _r$2; - out[0] = $append(out[0], link); - wrote[0] = i + 1 >> 0; - /* } */ case 16: - /* } */ case 11: - /* } */ case 8: - start = -1; - buf = $subslice(buf, 0, 0); - /* } */ case 6: - case 3: - if (start >= 0 && !((i === start))) { - buf = $append(buf, c); - } - i = i + (1) >> 0; - $s = 1; continue; - case 2: - $r = flush(text$6[0].length); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return out[0]; - /* */ } return; } var $f = {$blk: parseLinkedText, $c: true, $r, _1, _entry, _r, _r$1, _r$2, _tuple, _tuple$1, buf, c, d, def, flush, i, link, ok, ok$1, out, start, text$6, wrote, $s};return $f; - }; - $ptrType(parseDoc).prototype.docLink = function docLink(text$6, before, after) { - var {_r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, after, before, d, link, name, ok, pkg, r, r$1, recv, text$6, $s, $r, $c} = $restore(this, {text$6, before, after}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - link = ptrType$7.nil; - ok = false; - d = this; - if (!(before === "")) { - _tuple = utf8.DecodeLastRuneInString(before); - r = _tuple[0]; - if (!unicode.IsPunct(r) && !((r === 32)) && !((r === 9)) && !((r === 10))) { - _tmp = ptrType$7.nil; - _tmp$1 = false; - link = _tmp; - ok = _tmp$1; - $s = -1; return [link, ok]; - } - } - if (!(after === "")) { - _tuple$1 = utf8.DecodeRuneInString(after); - r$1 = _tuple$1[0]; - if (!unicode.IsPunct(r$1) && !((r$1 === 32)) && !((r$1 === 9)) && !((r$1 === 10))) { - _tmp$2 = ptrType$7.nil; - _tmp$3 = false; - link = _tmp$2; - ok = _tmp$3; - $s = -1; return [link, ok]; - } - } - text$6 = strings.TrimPrefix(text$6, "*"); - _tuple$2 = splitDocName(text$6); - pkg = _tuple$2[0]; - name = _tuple$2[1]; - ok = _tuple$2[2]; - recv = ""; - if (ok) { - _tuple$3 = splitDocName(pkg); - pkg = _tuple$3[0]; - recv = _tuple$3[1]; - } - /* */ if (!(pkg === "")) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(pkg === "")) { */ case 1: - _r = d.lookupPkg(pkg); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple$4 = _r; - pkg = _tuple$4[0]; - ok = _tuple$4[1]; - if (!ok) { - _tmp$4 = ptrType$7.nil; - _tmp$5 = false; - link = _tmp$4; - ok = _tmp$5; - $s = -1; return [link, ok]; - } - $s = 3; continue; - /* } else { */ case 2: - _r$1 = d.lookupSym(recv, name); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - ok = _r$1; - if (!ok) { - _tmp$6 = ptrType$7.nil; - _tmp$7 = false; - link = _tmp$6; - ok = _tmp$7; - $s = -1; return [link, ok]; - } - /* } */ case 3: - link = new DocLink.ptr(sliceType$8.nil, pkg, recv, name); - _tmp$8 = link; - _tmp$9 = true; - link = _tmp$8; - ok = _tmp$9; - $s = -1; return [link, ok]; - /* */ } return; } var $f = {$blk: docLink, $c: true, $r, _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, after, before, d, link, name, ok, pkg, r, r$1, recv, text$6, $s};return $f; - }; - splitDocName = function splitDocName$1(text$6) { - var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, before, foundDot, i, name, text$6; - before = ""; - name = ""; - foundDot = false; - i = strings.LastIndex(text$6, "."); - name = $substring(text$6, (i + 1 >> 0)); - if (!isName(name)) { - _tmp = text$6; - _tmp$1 = ""; - _tmp$2 = false; - before = _tmp; - name = _tmp$1; - foundDot = _tmp$2; - return [before, name, foundDot]; - } - if (i >= 0) { - before = $substring(text$6, 0, i); - } - _tmp$3 = before; - _tmp$4 = name; - _tmp$5 = true; - before = _tmp$3; - name = _tmp$4; - foundDot = _tmp$5; - return [before, name, foundDot]; - }; - $ptrType(parseDoc).prototype.parseText = function parseText(out, s, autoLink) { - var {_entry, _tuple, _tuple$1, _tuple$2, autoLink, d, flush, i, id, italics, ok, ok$1, out, s, t, url, url$1, w, writeUntil, wrote, $s, $r, $c} = $restore(this, {out, s, autoLink}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - out = [out]; - s = [s]; - w = [w]; - writeUntil = [writeUntil]; - wrote = [wrote]; - d = this; - w[0] = new strings.Builder.ptr(ptrType$1.nil, sliceType$1.nil); - wrote[0] = 0; - writeUntil[0] = (function(out, s, w, writeUntil, wrote) { return function parseDoc·parseText·func1(i) { - var i; - w[0].WriteString($substring(s[0], wrote[0], i)); - wrote[0] = i; - }; })(out, s, w, writeUntil, wrote); - flush = (function(out, s, w, writeUntil, wrote) { return function parseDoc·parseText·func2(i) { - var {i, $s, $r, $c} = $restore(this, {i}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = writeUntil[0](i); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (w[0].Len() > 0) { - out[0] = $append(out[0], new Plain((w[0].String()))); - w[0].Reset(); - } - $s = -1; return; - /* */ } return; } var $f = {$blk: parseDoc·parseText·func2, $c: true, $r, i, $s};return $f; - }; })(out, s, w, writeUntil, wrote); - i = 0; - /* while (true) { */ case 1: - /* if (!(i < s[0].length)) { break; } */ if(!(i < s[0].length)) { $s = 2; continue; } - t = $substring(s[0], i); - /* */ if (autoLink) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (autoLink) { */ case 3: - _tuple = autoURL(t); - url = _tuple[0]; - ok = _tuple[1]; - /* */ if (ok) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (ok) { */ case 5: - $r = flush(i); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - out[0] = $append(out[0], new Link.ptr(true, new sliceType$8([new Plain((url))]), url)); - i = i + (url.length) >> 0; - wrote[0] = i; - /* continue; */ $s = 1; continue; - /* } */ case 6: - _tuple$1 = ident(t); - id = _tuple$1[0]; - ok$1 = _tuple$1[1]; - /* */ if (ok$1) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (ok$1) { */ case 8: - _tuple$2 = (_entry = $mapIndex(d.Parser.Words,$String.keyFor(id)), _entry !== undefined ? [_entry.v, true] : ["", false]); - url$1 = _tuple$2[0]; - italics = _tuple$2[1]; - if (!italics) { - i = i + (id.length) >> 0; - /* continue; */ $s = 1; continue; - } - $r = flush(i); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (url$1 === "") { - out[0] = $append(out[0], new Italic((id))); - } else { - out[0] = $append(out[0], new Link.ptr(true, new sliceType$8([new Italic((id))]), url$1)); - } - i = i + (id.length) >> 0; - wrote[0] = i; - /* continue; */ $s = 1; continue; - /* } */ case 9: - /* } */ case 4: - /* */ if (strings.HasPrefix(t, "``")) { $s = 12; continue; } - /* */ if (strings.HasPrefix(t, "''")) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (strings.HasPrefix(t, "``")) { */ case 12: - if (t.length >= 3 && (t.charCodeAt(2) === 96)) { - i = i + (3) >> 0; - while (true) { - if (!(i < t.length && (t.charCodeAt(i) === 96))) { break; } - i = i + (1) >> 0; - } - /* break; */ $s = 11; continue; - } - $r = writeUntil[0](i); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - w[0].WriteRune(8220); - i = i + (2) >> 0; - wrote[0] = i; - $s = 15; continue; - /* } else if (strings.HasPrefix(t, "''")) { */ case 13: - $r = writeUntil[0](i); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - w[0].WriteRune(8221); - i = i + (2) >> 0; - wrote[0] = i; - $s = 15; continue; - /* } else { */ case 14: - i = i + (1) >> 0; - /* } */ case 15: - case 11: - $s = 1; continue; - case 2: - $r = flush(s[0].length); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return out[0]; - /* */ } return; } var $f = {$blk: parseText, $c: true, $r, _entry, _tuple, _tuple$1, _tuple$2, autoLink, d, flush, i, id, italics, ok, ok$1, out, s, t, url, url$1, w, writeUntil, wrote, $s};return $f; - }; - autoURL = function autoURL$1(s) { - var _1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, end, i, ok, s, stk, url, x; - url = ""; - ok = false; - i = 0; - if (s.length < 7) { - _tmp = ""; - _tmp$1 = false; - url = _tmp; - ok = _tmp$1; - return [url, ok]; - } else if ((s.charCodeAt(3) === 58)) { - i = 3; - } else if ((s.charCodeAt(4) === 58)) { - i = 4; - } else if ((s.charCodeAt(5) === 58)) { - i = 5; - } else if ((s.charCodeAt(6) === 58)) { - i = 6; - } else { - _tmp$2 = ""; - _tmp$3 = false; - url = _tmp$2; - ok = _tmp$3; - return [url, ok]; - } - if ((i + 3 >> 0) > s.length || !($substring(s, i, (i + 3 >> 0)) === "://")) { - _tmp$4 = ""; - _tmp$5 = false; - url = _tmp$4; - ok = _tmp$5; - return [url, ok]; - } - if (!isScheme($substring(s, 0, i))) { - _tmp$6 = ""; - _tmp$7 = false; - url = _tmp$6; - ok = _tmp$7; - return [url, ok]; - } - i = i + (3) >> 0; - if (i >= s.length || !isHost(s.charCodeAt(i)) || isPunct(s.charCodeAt(i))) { - _tmp$8 = ""; - _tmp$9 = false; - url = _tmp$8; - ok = _tmp$9; - return [url, ok]; - } - i = i + (1) >> 0; - end = i; - while (true) { - if (!(i < s.length && isHost(s.charCodeAt(i)))) { break; } - if (!isPunct(s.charCodeAt(i))) { - end = i + 1 >> 0; - } - i = i + (1) >> 0; - } - i = end; - stk = new sliceType$1([]); - end = i; - Path: - while (true) { - if (!(i < s.length)) { break; } - if (isPunct(s.charCodeAt(i))) { - i = i + (1) >> 0; - continue; - } - if (!isPath(s.charCodeAt(i))) { - break; - } - _1 = s.charCodeAt(i); - if (_1 === (40)) { - stk = $append(stk, 41); - } else if (_1 === (123)) { - stk = $append(stk, 125); - } else if (_1 === (91)) { - stk = $append(stk, 93); - } else if ((_1 === (41)) || (_1 === (125)) || (_1 === (93))) { - if ((stk.$length === 0) || !(((x = stk.$length - 1 >> 0, ((x < 0 || x >= stk.$length) ? ($throwRuntimeError("index out of range"), undefined) : stk.$array[stk.$offset + x])) === s.charCodeAt(i)))) { - break Path; - } - stk = $subslice(stk, 0, (stk.$length - 1 >> 0)); - } - if (stk.$length === 0) { - end = i + 1 >> 0; - } - i = i + (1) >> 0; - } - _tmp$10 = $substring(s, 0, end); - _tmp$11 = true; - url = _tmp$10; - ok = _tmp$11; - return [url, ok]; - }; - isScheme = function isScheme$1(s) { - var _1, s; - _1 = s; - if (_1 === ("file") || _1 === ("ftp") || _1 === ("gopher") || _1 === ("http") || _1 === ("https") || _1 === ("mailto") || _1 === ("nntp")) { - return true; - } - return false; - }; - isHost = function isHost$1(c) { - var c, x, x$1, x$2, x$3, x$4; - return !((x = (x$1 = (x$2 = $shiftLeft64(new $Uint64(0, 1), c), new $Uint64(x$2.$high & 134176768, (x$2.$low & 0) >>> 0)), x$3 = (x$4 = $shiftLeft64(new $Uint64(0, 1), ((c - 64 << 24 >>> 24))), new $Uint64(x$4.$high & 134217726, (x$4.$low & 2952790015) >>> 0)), new $Uint64(x$1.$high | x$3.$high, (x$1.$low | x$3.$low) >>> 0)), (x.$high === 0 && x.$low === 0))); - }; - isPunct = function isPunct$1(c) { - var c, x, x$1, x$2, x$3, x$4; - return !((x = (x$1 = (x$2 = $shiftLeft64(new $Uint64(0, 1), c), new $Uint64(x$2.$high & 2348830722, (x$2.$low & 0) >>> 0)), x$3 = (x$4 = $shiftLeft64(new $Uint64(0, 1), ((c - 64 << 24 >>> 24))), new $Uint64(x$4.$high & 0, (x$4.$low & 0) >>> 0)), new $Uint64(x$1.$high | x$3.$high, (x$1.$low | x$3.$low) >>> 0)), (x.$high === 0 && x.$low === 0))); - }; - isPath = function isPath$1(c) { - var c, x, x$1, x$2, x$3, x$4; - return !((x = (x$1 = (x$2 = $shiftLeft64(new $Uint64(0, 1), c), new $Uint64(x$2.$high & 603959288, (x$2.$low & 0) >>> 0)), x$3 = (x$4 = $shiftLeft64(new $Uint64(0, 1), ((c - 64 << 24 >>> 24))), new $Uint64(x$4.$high & 1879048190, (x$4.$low & 2952790015) >>> 0)), new $Uint64(x$1.$high | x$3.$high, (x$1.$low | x$3.$low) >>> 0)), (x.$high === 0 && x.$low === 0))); - }; - isName = function isName$1(s) { - var _tuple, _tuple$1, ok, r, s, t; - _tuple = ident(s); - t = _tuple[0]; - ok = _tuple[1]; - if (!ok || !(t === s)) { - return false; - } - _tuple$1 = utf8.DecodeRuneInString(s); - r = _tuple$1[0]; - return unicode.IsUpper(r); - }; - ident = function ident$1(s) { - var _tmp, _tmp$1, _tuple, c, id, n, nr, ok, r, s; - id = ""; - ok = false; - n = 0; - while (true) { - if (!(n < s.length)) { break; } - c = s.charCodeAt(n); - if (c < 128) { - if (isIdentASCII(c) && (n > 0 || c < 48 || c > 57)) { - n = n + (1) >> 0; - continue; - } - break; - } - _tuple = utf8.DecodeRuneInString($substring(s, n)); - r = _tuple[0]; - nr = _tuple[1]; - if (unicode.IsLetter(r)) { - n = n + (nr) >> 0; - continue; - } - break; - } - _tmp = $substring(s, 0, n); - _tmp$1 = n > 0; - id = _tmp; - ok = _tmp$1; - return [id, ok]; - }; - isIdentASCII = function isIdentASCII$1(c) { - var c, x, x$1, x$2, x$3, x$4; - return !((x = (x$1 = (x$2 = $shiftLeft64(new $Uint64(0, 1), c), new $Uint64(x$2.$high & 67043328, (x$2.$low & 0) >>> 0)), x$3 = (x$4 = $shiftLeft64(new $Uint64(0, 1), ((c - 64 << 24 >>> 24))), new $Uint64(x$4.$high & 134217726, (x$4.$low & 2281701374) >>> 0)), new $Uint64(x$1.$high | x$3.$high, (x$1.$low | x$3.$low) >>> 0)), (x.$high === 0 && x.$low === 0))); - }; - validImportPath = function validImportPath$1(path) { - var _i, _ref, _rune, elemStart, i, path, r; - if (!utf8.ValidString(path)) { - return false; - } - if (path === "") { - return false; - } - if (path.charCodeAt(0) === 45) { - return false; - } - if (strings.Contains(path, "//")) { - return false; - } - if (path.charCodeAt((path.length - 1 >> 0)) === 47) { - return false; - } - elemStart = 0; - _ref = path; - _i = 0; - while (true) { - if (!(_i < _ref.length)) { break; } - _rune = $decodeRune(_ref, _i); - i = _i; - r = _rune[0]; - if (r === 47) { - if (!validImportPathElem($substring(path, elemStart, i))) { - return false; - } - elemStart = i + 1 >> 0; - } - _i += _rune[1]; - } - return validImportPathElem($substring(path, elemStart)); - }; - validImportPathElem = function validImportPathElem$1(elem) { - var elem, i; - if (elem === "" || (elem.charCodeAt(0) === 46) || (elem.charCodeAt((elem.length - 1 >> 0)) === 46)) { - return false; - } - i = 0; - while (true) { - if (!(i < elem.length)) { break; } - if (!importPathOK(elem.charCodeAt(i))) { - return false; - } - i = i + (1) >> 0; - } - return true; - }; - importPathOK = function importPathOK$1(c) { - var c, x, x$1, x$2, x$3, x$4; - return !((x = (x$1 = (x$2 = $shiftLeft64(new $Uint64(0, 1), c), new $Uint64(x$2.$high & 67069952, (x$2.$low & 0) >>> 0)), x$3 = (x$4 = $shiftLeft64(new $Uint64(0, 1), ((c - 64 << 24 >>> 24))), new $Uint64(x$4.$high & 1207959550, (x$4.$low & 2281701374) >>> 0)), new $Uint64(x$1.$high | x$3.$high, (x$1.$low | x$3.$low) >>> 0)), (x.$high === 0 && x.$low === 0))); - }; - $ptrType(Printer).prototype.Markdown = function Markdown(d) { - var {_i, _ref, d, i, mp, out, p, x, $s, $r, $c} = $restore(this, {d}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - out = [out]; - p = this; - mp = new mdPrinter.ptr(p, strings.Repeat("#", p.headingLevel()) + " ", new bytes.Buffer.ptr(sliceType$1.nil, 0, 0)); - out[0] = new bytes.Buffer.ptr(sliceType$1.nil, 0, 0); - _ref = d.Content; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (i > 0) { - out[0].WriteByte(10); - } - $r = mp.block(out[0], x); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 1; continue; - case 2: - $s = -1; return out[0].Bytes(); - /* */ } return; } var $f = {$blk: Markdown, $c: true, $r, _i, _ref, d, i, mp, out, p, x, $s};return $f; - }; - $ptrType(mdPrinter).prototype.block = function block$6(out, x) { - var {_i, _i$1, _r, _r$1, _ref, _ref$1, _ref$2, _tuple, blk, i, i$1, id, item, line, loose, md, n, out, p, x, x$1, x$2, x$3, x$4, x$5, $s, $r, $c} = $restore(this, {out, x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - _ref = x; - /* */ if ($assertType(_ref, ptrType$2, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$3, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$5, true)[1]) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if ($assertType(_ref, ptrType$2, true)[1]) { */ case 1: - x$2 = _ref.$val; - $r = p.text(out, x$2.Text); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - out.WriteString("\n"); - $s = 6; continue; - /* } else if ($assertType(_ref, ptrType$3, true)[1]) { */ case 2: - x$3 = _ref.$val; - out.WriteString(p.headingPrefix); - $r = p.text(out, x$3.Text); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r = p.Printer.headingID(x$3); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - id = _r; - if (!(id === "")) { - out.WriteString(" {#"); - out.WriteString(id); - out.WriteString("}"); - } - out.WriteString("\n"); - $s = 6; continue; - /* } else if ($assertType(_ref, ptrType$4, true)[1]) { */ case 3: - x$4 = _ref.$val; - md = x$4.Text; - while (true) { - if (!(!(md === ""))) { break; } - line = ""; - _tuple = strings.Cut(md, "\n"); - line = _tuple[0]; - md = _tuple[1]; - if (!(line === "")) { - out.WriteString("\t"); - out.WriteString(line); - } - out.WriteString("\n"); - } - $s = 6; continue; - /* } else if ($assertType(_ref, ptrType$5, true)[1]) { */ case 4: - x$5 = _ref.$val; - loose = x$5.BlankBetween(); - _ref$1 = x$5.Items; - _i = 0; - /* while (true) { */ case 10: - /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 11; continue; } - i = _i; - item = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); - if (i > 0 && loose) { - out.WriteString("\n"); - } - n = item.Number; - if (!(n === "")) { - out.WriteString(" "); - out.WriteString(n); - out.WriteString(". "); - } else { - out.WriteString(" - "); - } - _ref$2 = item.Content; - _i$1 = 0; - /* while (true) { */ case 12: - /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 13; continue; } - i$1 = _i$1; - blk = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); - if (i$1 > 0) { - out.WriteString("\n "); - } - $r = p.text(out, $assertType(blk, ptrType$2).Text); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - out.WriteString("\n"); - _i$1++; - $s = 12; continue; - case 13: - _i++; - $s = 10; continue; - case 11: - $s = 6; continue; - /* } else { */ case 5: - x$1 = _ref; - _r$1 = fmt.Fprintf(out, "?%T", new sliceType$2([x$1])); /* */ $s = 15; case 15: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - /* } */ case 6: - $s = -1; return; - /* */ } return; } var $f = {$blk: block$6, $c: true, $r, _i, _i$1, _r, _r$1, _ref, _ref$1, _ref$2, _tuple, blk, i, i$1, id, item, line, loose, md, n, out, p, x, x$1, x$2, x$3, x$4, x$5, $s};return $f; - }; - $ptrType(mdPrinter).prototype.text = function text$6(out, x) { - var {_1, _r, i, line, out, p, x, $s, $r, $c} = $restore(this, {out, x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - p.raw.Reset(); - $r = p.rawText(p.raw, x); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r = bytes.TrimSpace(p.raw.Bytes()); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - line = _r; - if (line.$length === 0) { - $s = -1; return; - } - _1 = (0 >= line.$length ? ($throwRuntimeError("index out of range"), undefined) : line.$array[line.$offset + 0]); - if ((_1 === (43)) || (_1 === (45)) || (_1 === (42)) || (_1 === (35))) { - out.WriteByte(92); - } else if ((_1 === (48)) || (_1 === (49)) || (_1 === (50)) || (_1 === (51)) || (_1 === (52)) || (_1 === (53)) || (_1 === (54)) || (_1 === (55)) || (_1 === (56)) || (_1 === (57))) { - i = 1; - while (true) { - if (!(i < line.$length && 48 <= ((i < 0 || i >= line.$length) ? ($throwRuntimeError("index out of range"), undefined) : line.$array[line.$offset + i]) && ((i < 0 || i >= line.$length) ? ($throwRuntimeError("index out of range"), undefined) : line.$array[line.$offset + i]) <= 57)) { break; } - i = i + (1) >> 0; - } - if (i < line.$length && ((((i < 0 || i >= line.$length) ? ($throwRuntimeError("index out of range"), undefined) : line.$array[line.$offset + i]) === 46) || (((i < 0 || i >= line.$length) ? ($throwRuntimeError("index out of range"), undefined) : line.$array[line.$offset + i]) === 41))) { - out.Write($subslice(line, 0, i)); - out.WriteByte(92); - line = $subslice(line, i); - } - } - out.Write(line); - $s = -1; return; - /* */ } return; } var $f = {$blk: text$6, $c: true, $r, _1, _r, i, line, out, p, x, $s};return $f; - }; - $ptrType(mdPrinter).prototype.rawText = function rawText(out, x) { - var {_i, _r, _ref, _ref$1, out, p, t, t$1, t$2, t$3, t$4, url, x, $s, $r, $c} = $restore(this, {out, x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - _ref = x; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _ref$1 = t; - /* */ if ($assertType(_ref$1, Plain, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref$1, Italic, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref$1, ptrType$6, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref$1, ptrType$7, true)[1]) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if ($assertType(_ref$1, Plain, true)[1]) { */ case 3: - t$1 = _ref$1.$val; - p.escape(out, (t$1)); - $s = 7; continue; - /* } else if ($assertType(_ref$1, Italic, true)[1]) { */ case 4: - t$2 = _ref$1.$val; - out.WriteString("*"); - p.escape(out, (t$2)); - out.WriteString("*"); - $s = 7; continue; - /* } else if ($assertType(_ref$1, ptrType$6, true)[1]) { */ case 5: - t$3 = _ref$1.$val; - out.WriteString("["); - $r = p.rawText(out, t$3.Text); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - out.WriteString("]("); - out.WriteString(t$3.URL); - out.WriteString(")"); - $s = 7; continue; - /* } else if ($assertType(_ref$1, ptrType$7, true)[1]) { */ case 6: - t$4 = _ref$1.$val; - _r = p.Printer.docLinkURL(t$4); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - url = _r; - if (!(url === "")) { - out.WriteString("["); - } - $r = p.rawText(out, t$4.Text); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (!(url === "")) { - out.WriteString("]("); - url = strings.ReplaceAll(url, "(", "%28"); - url = strings.ReplaceAll(url, ")", "%29"); - out.WriteString(url); - out.WriteString(")"); - } - /* } */ case 7: - _i++; - $s = 1; continue; - case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: rawText, $c: true, $r, _i, _r, _ref, _ref$1, out, p, t, t$1, t$2, t$3, t$4, url, x, $s};return $f; - }; - $ptrType(mdPrinter).prototype.escape = function escape(out, s) { - var _1, i, out, p, s, start; - p = this; - start = 0; - i = 0; - while (true) { - if (!(i < s.length)) { break; } - _1 = s.charCodeAt(i); - if (_1 === (10)) { - out.WriteString($substring(s, start, i)); - out.WriteByte(32); - start = i + 1 >> 0; - i = i + (1) >> 0; - continue; - } else if ((_1 === (96)) || (_1 === (95)) || (_1 === (42)) || (_1 === (91)) || (_1 === (60)) || (_1 === (92))) { - out.WriteString($substring(s, start, i)); - out.WriteByte(92); - out.WriteByte(s.charCodeAt(i)); - start = i + 1 >> 0; - } - i = i + (1) >> 0; - } - out.WriteString($substring(s, start)); - }; - $ptrType(Printer).prototype.HTML = function HTML(d) { - var {_i, _ref, d, hp, out, p, x, $s, $r, $c} = $restore(this, {d}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - out = [out]; - p = this; - hp = new htmlPrinter.ptr(p, false); - out[0] = new bytes.Buffer.ptr(sliceType$1.nil, 0, 0); - _ref = d.Content; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - $r = hp.block(out[0], x); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 1; continue; - case 2: - $s = -1; return out[0].Bytes(); - /* */ } return; } var $f = {$blk: HTML, $c: true, $r, _i, _ref, d, hp, out, p, x, $s};return $f; - }; - $ptrType(htmlPrinter).prototype.block = function block$7(out, x) { - var {_i, _i$1, _r, _r$1, _ref, _ref$1, _ref$2, blk, h, id, item, kind, n, next, out, p, x, x$1, x$2, x$3, x$4, x$5, x$6, $s, $r, $c} = $restore(this, {out, x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - _ref = x; - /* */ if ($assertType(_ref, ptrType$2, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$3, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$5, true)[1]) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if ($assertType(_ref, ptrType$2, true)[1]) { */ case 1: - x$2 = _ref.$val; - if (!p.tight) { - out.WriteString("

"); - } - $r = p.text(out, x$2.Text); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - out.WriteString("\n"); - $s = 6; continue; - /* } else if ($assertType(_ref, ptrType$3, true)[1]) { */ case 2: - x$3 = _ref.$val; - out.WriteString(""); - $r = p.text(out, x$3.Text); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - out.WriteString("\n"); - $s = 6; continue; - /* } else if ($assertType(_ref, ptrType$4, true)[1]) { */ case 3: - x$4 = _ref.$val; - out.WriteString("

");
-				p.escape(out, x$4.Text);
-				out.WriteString("
\n"); - $s = 6; continue; - /* } else if ($assertType(_ref, ptrType$5, true)[1]) { */ case 4: - x$5 = _ref.$val; - kind = "ol>\n"; - if ((x$6 = x$5.Items, (0 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + 0])).Number === "") { - kind = "ul>\n"; - } - out.WriteString("<"); - out.WriteString(kind); - next = "1"; - _ref$1 = x$5.Items; - _i = 0; - /* while (true) { */ case 10: - /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 11; continue; } - item = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); - out.WriteString(""); - p.tight = !x$5.BlankBetween(); - _ref$2 = item.Content; - _i$1 = 0; - /* while (true) { */ case 12: - /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 13; continue; } - blk = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); - $r = p.block(out, blk); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$1++; - $s = 12; continue; - case 13: - p.tight = false; - _i++; - $s = 10; continue; - case 11: - out.WriteString("> 0; - while (true) { - if (!(i >= 0)) { break; } - if (((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i]) < 57) { - ((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i] = (((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i]) + (1) << 24 >>> 24)); - return ($bytesToString(b)); - } - ((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i] = 48); - i = i - (1) >> 0; - } - return "1" + ($bytesToString(b)); - }; - $ptrType(htmlPrinter).prototype.text = function text$7(out, x) { - var {_i, _r, _ref, _ref$1, out, p, t, t$1, t$2, t$3, t$4, url, x, $s, $r, $c} = $restore(this, {out, x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - _ref = x; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _ref$1 = t; - /* */ if ($assertType(_ref$1, Plain, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref$1, Italic, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref$1, ptrType$6, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref$1, ptrType$7, true)[1]) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if ($assertType(_ref$1, Plain, true)[1]) { */ case 3: - t$1 = _ref$1.$val; - p.escape(out, (t$1)); - $s = 7; continue; - /* } else if ($assertType(_ref$1, Italic, true)[1]) { */ case 4: - t$2 = _ref$1.$val; - out.WriteString(""); - p.escape(out, (t$2)); - out.WriteString(""); - $s = 7; continue; - /* } else if ($assertType(_ref$1, ptrType$6, true)[1]) { */ case 5: - t$3 = _ref$1.$val; - out.WriteString(""); - $r = p.text(out, t$3.Text); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - out.WriteString(""); - $s = 7; continue; - /* } else if ($assertType(_ref$1, ptrType$7, true)[1]) { */ case 6: - t$4 = _ref$1.$val; - _r = p.Printer.docLinkURL(t$4); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - url = _r; - if (!(url === "")) { - out.WriteString(""); - } - $r = p.text(out, t$4.Text); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (!(url === "")) { - out.WriteString(""); - } - /* } */ case 7: - _i++; - $s = 1; continue; - case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: text$7, $c: true, $r, _i, _r, _ref, _ref$1, out, p, t, t$1, t$2, t$3, t$4, url, x, $s};return $f; - }; - $ptrType(htmlPrinter).prototype.escape = function escape$1(out, s) { - var _1, i, out, p, s, start; - p = this; - start = 0; - i = 0; - while (true) { - if (!(i < s.length)) { break; } - _1 = s.charCodeAt(i); - if (_1 === (60)) { - out.WriteString($substring(s, start, i)); - out.WriteString("<"); - start = i + 1 >> 0; - } else if (_1 === (38)) { - out.WriteString($substring(s, start, i)); - out.WriteString("&"); - start = i + 1 >> 0; - } else if (_1 === (34)) { - out.WriteString($substring(s, start, i)); - out.WriteString("""); - start = i + 1 >> 0; - } else if (_1 === (39)) { - out.WriteString($substring(s, start, i)); - out.WriteString("'"); - start = i + 1 >> 0; - } else if (_1 === (62)) { - out.WriteString($substring(s, start, i)); - out.WriteString(">"); - start = i + 1 >> 0; - } - i = i + (1) >> 0; - } - out.WriteString($substring(s, start)); - }; - ptrType$13.methods = [{prop: "block", name: "block", pkg: "go/doc/comment", typ: $funcType([ptrType$12, Block], [], false)}, {prop: "text", name: "text", pkg: "go/doc/comment", typ: $funcType([ptrType$12, $String, sliceType$8], [], false)}, {prop: "oneLongLine", name: "oneLongLine", pkg: "go/doc/comment", typ: $funcType([ptrType$1, sliceType$8], [], false)}]; - ptrType.methods = [{prop: "Text", name: "Text", pkg: "", typ: $funcType([ptrType$9], [sliceType$1], false)}, {prop: "headingLevel", name: "headingLevel", pkg: "go/doc/comment", typ: $funcType([], [$Int], false)}, {prop: "headingID", name: "headingID", pkg: "go/doc/comment", typ: $funcType([ptrType$3], [$String], false)}, {prop: "docLinkURL", name: "docLinkURL", pkg: "go/doc/comment", typ: $funcType([ptrType$7], [$String], false)}, {prop: "Comment", name: "Comment", pkg: "", typ: $funcType([ptrType$9], [sliceType$1], false)}, {prop: "Markdown", name: "Markdown", pkg: "", typ: $funcType([ptrType$9], [sliceType$1], false)}, {prop: "HTML", name: "HTML", pkg: "", typ: $funcType([ptrType$9], [sliceType$1], false)}]; - ptrType$14.methods = [{prop: "block", name: "block", pkg: "go/doc/comment", typ: $funcType([ptrType$12, Block], [], false)}, {prop: "text", name: "text", pkg: "go/doc/comment", typ: $funcType([ptrType$12, $String, sliceType$8], [], false)}, {prop: "indent", name: "indent", pkg: "go/doc/comment", typ: $funcType([ptrType$12, $String, $String], [], false)}]; - ptrType$3.methods = [{prop: "DefaultID", name: "DefaultID", pkg: "", typ: $funcType([], [$String], false)}, {prop: "block", name: "block", pkg: "go/doc/comment", typ: $funcType([], [], false)}]; - ptrType$5.methods = [{prop: "block", name: "block", pkg: "go/doc/comment", typ: $funcType([], [], false)}, {prop: "BlankBefore", name: "BlankBefore", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "BlankBetween", name: "BlankBetween", pkg: "", typ: $funcType([], [$Bool], false)}]; - ptrType$2.methods = [{prop: "block", name: "block", pkg: "go/doc/comment", typ: $funcType([], [], false)}]; - ptrType$4.methods = [{prop: "block", name: "block", pkg: "go/doc/comment", typ: $funcType([], [], false)}]; - Plain.methods = [{prop: "text", name: "text", pkg: "go/doc/comment", typ: $funcType([], [], false)}]; - Italic.methods = [{prop: "text", name: "text", pkg: "go/doc/comment", typ: $funcType([], [], false)}]; - ptrType$6.methods = [{prop: "text", name: "text", pkg: "go/doc/comment", typ: $funcType([], [], false)}]; - ptrType$7.methods = [{prop: "DefaultURL", name: "DefaultURL", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "text", name: "text", pkg: "go/doc/comment", typ: $funcType([], [], false)}]; - ptrType$8.methods = [{prop: "Parse", name: "Parse", pkg: "", typ: $funcType([$String], [ptrType$9], false)}]; - ptrType$15.methods = [{prop: "lookupPkg", name: "lookupPkg", pkg: "go/doc/comment", typ: $funcType([$String], [$String, $Bool], false)}, {prop: "oldHeading", name: "oldHeading", pkg: "go/doc/comment", typ: $funcType([$String], [Block], false)}, {prop: "heading", name: "heading", pkg: "go/doc/comment", typ: $funcType([$String], [Block], false)}, {prop: "code", name: "code", pkg: "go/doc/comment", typ: $funcType([sliceType], [ptrType$4], false)}, {prop: "paragraph", name: "paragraph", pkg: "go/doc/comment", typ: $funcType([sliceType], [Block], false)}, {prop: "list", name: "list", pkg: "go/doc/comment", typ: $funcType([sliceType, $Bool], [ptrType$5], false)}, {prop: "parseLinkedText", name: "parseLinkedText", pkg: "go/doc/comment", typ: $funcType([$String], [sliceType$8], false)}, {prop: "docLink", name: "docLink", pkg: "go/doc/comment", typ: $funcType([$String, $String, $String], [ptrType$7, $Bool], false)}, {prop: "parseText", name: "parseText", pkg: "go/doc/comment", typ: $funcType([sliceType$8, $String, $Bool], [sliceType$8], false)}]; - ptrType$16.methods = [{prop: "block", name: "block", pkg: "go/doc/comment", typ: $funcType([ptrType$12, Block], [], false)}, {prop: "text", name: "text", pkg: "go/doc/comment", typ: $funcType([ptrType$12, sliceType$8], [], false)}, {prop: "rawText", name: "rawText", pkg: "go/doc/comment", typ: $funcType([ptrType$12, sliceType$8], [], false)}, {prop: "escape", name: "escape", pkg: "go/doc/comment", typ: $funcType([ptrType$12, $String], [], false)}]; - ptrType$17.methods = [{prop: "block", name: "block", pkg: "go/doc/comment", typ: $funcType([ptrType$12, Block], [], false)}, {prop: "text", name: "text", pkg: "go/doc/comment", typ: $funcType([ptrType$12, sliceType$8], [], false)}, {prop: "escape", name: "escape", pkg: "go/doc/comment", typ: $funcType([ptrType$12, $String], [], false)}]; - textPrinter.init("go/doc/comment", [{prop: "Printer", name: "Printer", embedded: true, exported: true, typ: ptrType, tag: ""}, {prop: "long$1", name: "long", embedded: false, exported: false, typ: strings.Builder, tag: ""}, {prop: "prefix", name: "prefix", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "codePrefix", name: "codePrefix", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "width", name: "width", embedded: false, exported: false, typ: $Int, tag: ""}]); - Printer.init("", [{prop: "HeadingLevel", name: "HeadingLevel", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "HeadingID", name: "HeadingID", embedded: false, exported: true, typ: funcType, tag: ""}, {prop: "DocLinkURL", name: "DocLinkURL", embedded: false, exported: true, typ: funcType$1, tag: ""}, {prop: "DocLinkBaseURL", name: "DocLinkBaseURL", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "TextPrefix", name: "TextPrefix", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "TextCodePrefix", name: "TextCodePrefix", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "TextWidth", name: "TextWidth", embedded: false, exported: true, typ: $Int, tag: ""}]); - commentPrinter.init("go/doc/comment", [{prop: "Printer", name: "Printer", embedded: true, exported: true, typ: ptrType, tag: ""}, {prop: "headingPrefix", name: "headingPrefix", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "needDoc", name: "needDoc", embedded: false, exported: false, typ: mapType, tag: ""}]); - Doc.init("", [{prop: "Content", name: "Content", embedded: false, exported: true, typ: sliceType$5, tag: ""}, {prop: "Links", name: "Links", embedded: false, exported: true, typ: sliceType$6, tag: ""}]); - LinkDef.init("", [{prop: "Text", name: "Text", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "URL", name: "URL", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Used", name: "Used", embedded: false, exported: true, typ: $Bool, tag: ""}]); - Block.init([{prop: "block", name: "block", pkg: "go/doc/comment", typ: $funcType([], [], false)}]); - Heading.init("", [{prop: "Text", name: "Text", embedded: false, exported: true, typ: sliceType$8, tag: ""}]); - List.init("", [{prop: "Items", name: "Items", embedded: false, exported: true, typ: sliceType$9, tag: ""}, {prop: "ForceBlankBefore", name: "ForceBlankBefore", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "ForceBlankBetween", name: "ForceBlankBetween", embedded: false, exported: true, typ: $Bool, tag: ""}]); - ListItem.init("", [{prop: "Number", name: "Number", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Content", name: "Content", embedded: false, exported: true, typ: sliceType$5, tag: ""}]); - Paragraph.init("", [{prop: "Text", name: "Text", embedded: false, exported: true, typ: sliceType$8, tag: ""}]); - Code.init("", [{prop: "Text", name: "Text", embedded: false, exported: true, typ: $String, tag: ""}]); - Text.init([{prop: "text", name: "text", pkg: "go/doc/comment", typ: $funcType([], [], false)}]); - Link.init("", [{prop: "Auto", name: "Auto", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Text", name: "Text", embedded: false, exported: true, typ: sliceType$8, tag: ""}, {prop: "URL", name: "URL", embedded: false, exported: true, typ: $String, tag: ""}]); - DocLink.init("", [{prop: "Text", name: "Text", embedded: false, exported: true, typ: sliceType$8, tag: ""}, {prop: "ImportPath", name: "ImportPath", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Recv", name: "Recv", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}]); - Parser.init("", [{prop: "Words", name: "Words", embedded: false, exported: true, typ: mapType$1, tag: ""}, {prop: "LookupPackage", name: "LookupPackage", embedded: false, exported: true, typ: funcType$2, tag: ""}, {prop: "LookupSym", name: "LookupSym", embedded: false, exported: true, typ: funcType$3, tag: ""}]); - parseDoc.init("go/doc/comment", [{prop: "Parser", name: "Parser", embedded: true, exported: true, typ: ptrType$8, tag: ""}, {prop: "Doc", name: "Doc", embedded: true, exported: true, typ: ptrType$9, tag: ""}, {prop: "links", name: "links", embedded: false, exported: false, typ: mapType$2, tag: ""}, {prop: "lines", name: "lines", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "lookupSym", name: "lookupSym", embedded: false, exported: false, typ: funcType$3, tag: ""}]); - span.init("go/doc/comment", [{prop: "start", name: "start", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "end", name: "end", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "kind", name: "kind", embedded: false, exported: false, typ: spanKind, tag: ""}]); - mdPrinter.init("go/doc/comment", [{prop: "Printer", name: "Printer", embedded: true, exported: true, typ: ptrType, tag: ""}, {prop: "headingPrefix", name: "headingPrefix", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "raw", name: "raw", embedded: false, exported: false, typ: bytes.Buffer, tag: ""}]); - htmlPrinter.init("go/doc/comment", [{prop: "Printer", name: "Printer", embedded: true, exported: true, typ: ptrType, tag: ""}, {prop: "tight", name: "tight", embedded: false, exported: false, typ: $Bool, tag: ""}]); - score.init("go/doc/comment", [{prop: "hi", name: "hi", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "lo", name: "lo", embedded: false, exported: false, typ: $Int64, tag: ""}]); - }; - $init = function() { - $pkg.$init = function() {}; - /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: - $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = fmt.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = sort.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = strconv.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = strings.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = unicode.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = utf8.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - stdPkgs = new sliceType(["bufio", "bytes", "context", "crypto", "embed", "encoding", "errors", "expvar", "flag", "fmt", "hash", "html", "image", "io", "log", "math", "mime", "net", "os", "path", "plugin", "reflect", "regexp", "runtime", "sort", "strconv", "strings", "sync", "syscall", "testing", "time", "unicode", "unsafe"]); - /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; - }; - $pkg.$init = $init; - return $pkg; -})(); -$packages["text/tabwriter"] = (function() { - var $pkg = {}, $init, io, utf8, cell, Writer, osError, sliceType, sliceType$1, ptrType, ptrType$1, arrayType, sliceType$2, sliceType$3, ptrType$2, newline, tabs, vbar, hbar, NewWriter; - io = $packages["io"]; - utf8 = $packages["unicode/utf8"]; - cell = $newType(0, $kindStruct, "tabwriter.cell", true, "text/tabwriter", false, function(size_, width_, htab_) { - this.$val = this; - if (arguments.length === 0) { - this.size = 0; - this.width = 0; - this.htab = false; - return; - } - this.size = size_; - this.width = width_; - this.htab = htab_; - }); - Writer = $newType(0, $kindStruct, "tabwriter.Writer", true, "text/tabwriter", true, function(output_, minwidth_, tabwidth_, padding_, padbytes_, flags_, buf_, pos_, cell_, endChar_, lines_, widths_) { - this.$val = this; - if (arguments.length === 0) { - this.output = $ifaceNil; - this.minwidth = 0; - this.tabwidth = 0; - this.padding = 0; - this.padbytes = arrayType.zero(); - this.flags = 0; - this.buf = sliceType.nil; - this.pos = 0; - this.cell = new cell.ptr(0, 0, false); - this.endChar = 0; - this.lines = sliceType$2.nil; - this.widths = sliceType$3.nil; - return; - } - this.output = output_; - this.minwidth = minwidth_; - this.tabwidth = tabwidth_; - this.padding = padding_; - this.padbytes = padbytes_; - this.flags = flags_; - this.buf = buf_; - this.pos = pos_; - this.cell = cell_; - this.endChar = endChar_; - this.lines = lines_; - this.widths = widths_; - }); - osError = $newType(0, $kindStruct, "tabwriter.osError", true, "text/tabwriter", false, function(err_) { - this.$val = this; - if (arguments.length === 0) { - this.err = $ifaceNil; - return; - } - this.err = err_; - }); - $pkg.cell = cell; - $pkg.Writer = Writer; - $pkg.osError = osError; - $pkg.$finishSetup = function() { - sliceType = $sliceType($Uint8); - sliceType$1 = $sliceType(cell); - ptrType = $ptrType(sliceType$1); - ptrType$1 = $ptrType($error); - arrayType = $arrayType($Uint8, 8); - sliceType$2 = $sliceType(sliceType$1); - sliceType$3 = $sliceType($Int); - ptrType$2 = $ptrType(Writer); - $ptrType(Writer).prototype.addLine = function addLine(flushed) { - var b, flushed, n, n$1, prev, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; - b = this; - n = b.lines.$length + 1 >> 0; - if (n <= b.lines.$capacity) { - b.lines = $subslice(b.lines, 0, n); - (x$2 = b.lines, x$3 = n - 1 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3] = $subslice((x = b.lines, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])), 0, 0))); - } else { - b.lines = $append(b.lines, sliceType$1.nil); - } - if (!flushed) { - n$1 = b.lines.$length; - if (n$1 >= 2) { - prev = (x$4 = b.lines, x$5 = n$1 - 2 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])).$length; - if (prev > (x$6 = b.lines, x$7 = n$1 - 1 >> 0, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])).$capacity) { - (x$8 = b.lines, x$9 = n$1 - 1 >> 0, ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + x$9] = $makeSlice(sliceType$1, 0, prev))); - } - } - } - }; - $ptrType(Writer).prototype.reset = function reset() { - var b; - b = this; - b.buf = $subslice(b.buf, 0, 0); - b.pos = 0; - cell.copy(b.cell, new cell.ptr(0, 0, false)); - b.endChar = 0; - b.lines = $subslice(b.lines, 0, 0); - b.widths = $subslice(b.widths, 0, 0); - b.addLine(true); - }; - $ptrType(Writer).prototype.Init = function Init(output, minwidth, tabwidth, padding, padchar, flags) { - var _i, _ref, b, flags, i, minwidth, output, padchar, padding, tabwidth, x; - b = this; - if (minwidth < 0 || tabwidth < 0 || padding < 0) { - $panic(new $String("negative minwidth, tabwidth, or padding")); - } - b.output = output; - b.minwidth = minwidth; - b.tabwidth = tabwidth; - b.padding = padding; - _ref = b.padbytes; - _i = 0; - while (true) { - if (!(_i < 8)) { break; } - i = _i; - (x = b.padbytes, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i] = padchar)); - _i++; - } - if (padchar === 9) { - flags = (flags & ~(4)) >>> 0; - } - b.flags = flags; - b.reset(); - return b; - }; - $ptrType(Writer).prototype.write0 = function write0(buf) { - var {_r, _tuple, b, buf, err, n, x, $s, $r, $c} = $restore(this, {buf}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - b = this; - _r = b.output.Write(buf); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - n = _tuple[0]; - err = _tuple[1]; - if (!((n === buf.$length)) && $interfaceIsEqual(err, $ifaceNil)) { - err = io.ErrShortWrite; - } - if (!($interfaceIsEqual(err, $ifaceNil))) { - $panic((x = new osError.ptr(err), new x.constructor.elem(x))); - } - $s = -1; return; - /* */ } return; } var $f = {$blk: write0, $c: true, $r, _r, _tuple, b, buf, err, n, x, $s};return $f; - }; - $ptrType(Writer).prototype.writeN = function writeN(src, n) { - var {b, n, src, $s, $r, $c} = $restore(this, {src, n}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - b = this; - /* while (true) { */ case 1: - /* if (!(n > src.$length)) { break; } */ if(!(n > src.$length)) { $s = 2; continue; } - $r = b.write0(src); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - n = n - (src.$length) >> 0; - $s = 1; continue; - case 2: - $r = b.write0($subslice(src, 0, n)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: writeN, $c: true, $r, b, n, src, $s};return $f; - }; - $ptrType(Writer).prototype.writePadding = function writePadding(textw, cellw, useTabs) { - var {_q, _q$1, b, cellw, n, textw, useTabs, $s, $r, $c} = $restore(this, {textw, cellw, useTabs}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - b = this; - /* */ if ((b.padbytes[0] === 9) || useTabs) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if ((b.padbytes[0] === 9) || useTabs) { */ case 1: - if (b.tabwidth === 0) { - $s = -1; return; - } - cellw = $imul((_q = (((cellw + b.tabwidth >> 0) - 1 >> 0)) / b.tabwidth, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), b.tabwidth); - n = cellw - textw >> 0; - if (n < 0) { - $panic(new $String("internal error")); - } - $r = b.writeN(tabs, (_q$1 = (((n + b.tabwidth >> 0) - 1 >> 0)) / b.tabwidth, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 2: - $r = b.writeN($subslice(new sliceType(b.padbytes), 0), cellw - textw >> 0); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: writePadding, $c: true, $r, _q, _q$1, b, cellw, n, textw, useTabs, $s};return $f; - }; - $ptrType(Writer).prototype.writeLines = function writeLines(pos0, line0, line1) { - var {_i, _ref, b, c, i, j, line, line0, line1, pos, pos0, useTabs, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {pos0, line0, line1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - pos = 0; - b = this; - pos = pos0; - i = line0; - /* while (true) { */ case 1: - /* if (!(i < line1)) { break; } */ if(!(i < line1)) { $s = 2; continue; } - line = (x = b.lines, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - useTabs = !((((b.flags & 16) >>> 0) === 0)); - _ref = line; - _i = 0; - /* while (true) { */ case 3: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } - j = _i; - c = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), cell); - /* */ if (j > 0 && !((((b.flags & 32) >>> 0) === 0))) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (j > 0 && !((((b.flags & 32) >>> 0) === 0))) { */ case 5: - $r = b.write0(vbar); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 6: - /* */ if (c.size === 0) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (c.size === 0) { */ case 8: - /* */ if (j < b.widths.$length) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (j < b.widths.$length) { */ case 11: - $r = b.writePadding(c.width, (x$1 = b.widths, ((j < 0 || j >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + j])), useTabs); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 12: - $s = 10; continue; - /* } else { */ case 9: - useTabs = false; - /* */ if (((b.flags & 4) >>> 0) === 0) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (((b.flags & 4) >>> 0) === 0) { */ case 14: - $r = b.write0($subslice(b.buf, pos, (pos + c.size >> 0))); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - pos = pos + (c.size) >> 0; - /* */ if (j < b.widths.$length) { $s = 18; continue; } - /* */ $s = 19; continue; - /* if (j < b.widths.$length) { */ case 18: - $r = b.writePadding(c.width, (x$2 = b.widths, ((j < 0 || j >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + j])), false); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 19: - $s = 16; continue; - /* } else { */ case 15: - /* */ if (j < b.widths.$length) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if (j < b.widths.$length) { */ case 21: - $r = b.writePadding(c.width, (x$3 = b.widths, ((j < 0 || j >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + j])), false); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 22: - $r = b.write0($subslice(b.buf, pos, (pos + c.size >> 0))); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - pos = pos + (c.size) >> 0; - /* } */ case 16: - /* } */ case 10: - _i++; - $s = 3; continue; - case 4: - /* */ if ((i + 1 >> 0) === b.lines.$length) { $s = 25; continue; } - /* */ $s = 26; continue; - /* if ((i + 1 >> 0) === b.lines.$length) { */ case 25: - $r = b.write0($subslice(b.buf, pos, (pos + b.cell.size >> 0))); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - pos = pos + (b.cell.size) >> 0; - $s = 27; continue; - /* } else { */ case 26: - $r = b.write0(newline); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 27: - i = i + (1) >> 0; - $s = 1; continue; - case 2: - $s = -1; return pos; - /* */ } return; } var $f = {$blk: writeLines, $c: true, $r, _i, _ref, b, c, i, j, line, line0, line1, pos, pos0, useTabs, x, x$1, x$2, x$3, $s};return $f; - }; - $ptrType(Writer).prototype.format = function format(pos0, line0, line1) { - var {$24r, _r, _r$1, _r$2, b, c, column, discardable, line, line0, line1, pos, pos0, this$1, w, width, x, x$1, $s, $r, $c} = $restore(this, {pos0, line0, line1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - pos = 0; - b = this; - pos = pos0; - column = b.widths.$length; - this$1 = line0; - /* while (true) { */ case 1: - /* if (!(this$1 < line1)) { break; } */ if(!(this$1 < line1)) { $s = 2; continue; } - line = (x = b.lines, ((this$1 < 0 || this$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + this$1])); - if (column >= (line.$length - 1 >> 0)) { - this$1 = this$1 + (1) >> 0; - /* continue; */ $s = 1; continue; - } - _r = b.writeLines(pos, line0, this$1); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - pos = _r; - line0 = this$1; - width = b.minwidth; - discardable = true; - while (true) { - if (!(this$1 < line1)) { break; } - line = (x$1 = b.lines, ((this$1 < 0 || this$1 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + this$1])); - if (column >= (line.$length - 1 >> 0)) { - break; - } - c = $clone(((column < 0 || column >= line.$length) ? ($throwRuntimeError("index out of range"), undefined) : line.$array[line.$offset + column]), cell); - w = c.width + b.padding >> 0; - if (w > width) { - width = w; - } - if (c.width > 0 || c.htab) { - discardable = false; - } - this$1 = this$1 + (1) >> 0; - } - if (discardable && !((((b.flags & 8) >>> 0) === 0))) { - width = 0; - } - b.widths = $append(b.widths, width); - _r$1 = b.format(pos, line0, this$1); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - pos = _r$1; - b.widths = $subslice(b.widths, 0, (b.widths.$length - 1 >> 0)); - line0 = this$1; - this$1 = this$1 + (1) >> 0; - $s = 1; continue; - case 2: - _r$2 = b.writeLines(pos, line0, line1); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - pos = _r$2; - $24r = pos; - $s = 6; case 6: return $24r; - /* */ } return; } var $f = {$blk: format, $c: true, $r, $24r, _r, _r$1, _r$2, b, c, column, discardable, line, line0, line1, pos, pos0, this$1, w, width, x, x$1, $s};return $f; - }; - $ptrType(Writer).prototype.append = function append(text) { - var b, text; - b = this; - b.buf = $appendSlice(b.buf, text); - b.cell.size = b.cell.size + (text.$length) >> 0; - }; - $ptrType(Writer).prototype.updateWidth = function updateWidth() { - var b; - b = this; - b.cell.width = b.cell.width + (utf8.RuneCount($subslice(b.buf, b.pos))) >> 0; - b.pos = b.buf.$length; - }; - $ptrType(Writer).prototype.startEscape = function startEscape(ch) { - var _1, b, ch; - b = this; - _1 = ch; - if (_1 === (255)) { - b.endChar = 255; - } else if (_1 === (60)) { - b.endChar = 62; - } else if (_1 === (38)) { - b.endChar = 59; - } - }; - $ptrType(Writer).prototype.endEscape = function endEscape() { - var _1, b; - b = this; - _1 = b.endChar; - if (_1 === (255)) { - b.updateWidth(); - if (((b.flags & 2) >>> 0) === 0) { - b.cell.width = b.cell.width - (2) >> 0; - } - } else if (_1 === (62)) { - } else if (_1 === (59)) { - b.cell.width = b.cell.width + (1) >> 0; - } - b.pos = b.buf.$length; - b.endChar = 0; - }; - $ptrType(Writer).prototype.terminateCell = function terminateCell(htab) { - var b, htab, line, x; - b = this; - b.cell.htab = htab; - line = (x = b.lines, $indexPtr(x.$array, x.$offset + (b.lines.$length - 1 >> 0), ptrType)); - line.$set($append(line.$get(), b.cell)); - cell.copy(b.cell, new cell.ptr(0, 0, false)); - return line.$get().$length; - }; - $ptrType(Writer).prototype.handlePanic = function handlePanic(err, op) { - var _tuple, b, e, err, nerr, ok, op; - b = this; - e = $recover(); - if (!($interfaceIsEqual(e, $ifaceNil))) { - if (op === "Flush") { - b.reset(); - } - _tuple = $assertType(e, osError, true); - nerr = $clone(_tuple[0], osError); - ok = _tuple[1]; - if (ok) { - err.$set(nerr.err); - return; - } - $panic(new $String("tabwriter: panic during " + op)); - } - }; - $ptrType(Writer).prototype.Flush = function Flush() { - var {$24r, _r, b, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - b = this; - _r = b.flush(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Flush, $c: true, $r, $24r, _r, b, $s};return $f; - }; - $ptrType(Writer).prototype.flush = function flush() { - var {b, err, $s, $deferred, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - err = [err]; - err[0] = $ifaceNil; - b = this; - $deferred.push([$methodVal(b, "handlePanic"), [(err.$ptr || (err.$ptr = new ptrType$1(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, err))), "Flush"]]); - $r = b.flushNoDefers(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - err[0] = $ifaceNil; - $s = -1; return err[0]; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return err[0]; } if($curGoroutine.asleep) { var $f = {$blk: flush, $c: true, $r, b, err, $s, $deferred};return $f; } } - }; - $ptrType(Writer).prototype.flushNoDefers = function flushNoDefers() { - var {_r, b, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - b = this; - if (b.cell.size > 0) { - if (!((b.endChar === 0))) { - b.endEscape(); - } - b.terminateCell(false); - } - _r = b.format(0, 0, b.lines.$length); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r; - b.reset(); - $s = -1; return; - /* */ } return; } var $f = {$blk: flushNoDefers, $c: true, $r, _r, b, $s};return $f; - }; - $ptrType(Writer).prototype.Write = function Write(buf) { - var {_1, _i, _ref, b, buf, ch, err, i, j, n, ncells, $s, $deferred, $r, $c} = $restore(this, {buf}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - err = [err]; - n = 0; - err[0] = $ifaceNil; - b = this; - $deferred.push([$methodVal(b, "handlePanic"), [(err.$ptr || (err.$ptr = new ptrType$1(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, err))), "Write"]]); - n = 0; - _ref = buf; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - ch = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - /* */ if (b.endChar === 0) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (b.endChar === 0) { */ case 3: - _1 = ch; - /* */ if ((_1 === (9)) || (_1 === (11)) || (_1 === (10)) || (_1 === (12))) { $s = 7; continue; } - /* */ if (_1 === (255)) { $s = 8; continue; } - /* */ if ((_1 === (60)) || (_1 === (38))) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if ((_1 === (9)) || (_1 === (11)) || (_1 === (10)) || (_1 === (12))) { */ case 7: - b.append($subslice(buf, n, i)); - b.updateWidth(); - n = i + 1 >> 0; - ncells = b.terminateCell(ch === 9); - /* */ if ((ch === 10) || (ch === 12)) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if ((ch === 10) || (ch === 12)) { */ case 11: - b.addLine(ch === 12); - /* */ if ((ch === 12) || (ncells === 1)) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if ((ch === 12) || (ncells === 1)) { */ case 13: - $r = b.flushNoDefers(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if ((ch === 12) && !((((b.flags & 32) >>> 0) === 0))) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if ((ch === 12) && !((((b.flags & 32) >>> 0) === 0))) { */ case 16: - $r = b.write0(hbar); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 17: - /* } */ case 14: - /* } */ case 12: - $s = 10; continue; - /* } else if (_1 === (255)) { */ case 8: - b.append($subslice(buf, n, i)); - b.updateWidth(); - n = i; - if (!((((b.flags & 2) >>> 0) === 0))) { - n = n + (1) >> 0; - } - b.startEscape(255); - $s = 10; continue; - /* } else if ((_1 === (60)) || (_1 === (38))) { */ case 9: - if (!((((b.flags & 1) >>> 0) === 0))) { - b.append($subslice(buf, n, i)); - b.updateWidth(); - n = i; - b.startEscape(ch); - } - /* } */ case 10: - case 6: - $s = 5; continue; - /* } else { */ case 4: - if (ch === b.endChar) { - j = i + 1 >> 0; - if ((ch === 255) && !((((b.flags & 2) >>> 0) === 0))) { - j = i; - } - b.append($subslice(buf, n, j)); - n = i + 1 >> 0; - b.endEscape(); - } - /* } */ case 5: - _i++; - $s = 1; continue; - case 2: - b.append($subslice(buf, n)); - n = buf.$length; - $s = -1; return [n, err[0]]; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [n, err[0]]; } if($curGoroutine.asleep) { var $f = {$blk: Write, $c: true, $r, _1, _i, _ref, b, buf, ch, err, i, j, n, ncells, $s, $deferred};return $f; } } - }; - NewWriter = function NewWriter$1(output, minwidth, tabwidth, padding, padchar, flags) { - var flags, minwidth, output, padchar, padding, tabwidth; - return new Writer.ptr($ifaceNil, 0, 0, 0, arrayType.zero(), 0, sliceType.nil, 0, new cell.ptr(0, 0, false), 0, sliceType$2.nil, sliceType$3.nil).Init(output, minwidth, tabwidth, padding, padchar, flags); - }; - $pkg.NewWriter = NewWriter; - ptrType$2.methods = [{prop: "addLine", name: "addLine", pkg: "text/tabwriter", typ: $funcType([$Bool], [], false)}, {prop: "reset", name: "reset", pkg: "text/tabwriter", typ: $funcType([], [], false)}, {prop: "Init", name: "Init", pkg: "", typ: $funcType([io.Writer, $Int, $Int, $Int, $Uint8, $Uint], [ptrType$2], false)}, {prop: "dump", name: "dump", pkg: "text/tabwriter", typ: $funcType([], [], false)}, {prop: "write0", name: "write0", pkg: "text/tabwriter", typ: $funcType([sliceType], [], false)}, {prop: "writeN", name: "writeN", pkg: "text/tabwriter", typ: $funcType([sliceType, $Int], [], false)}, {prop: "writePadding", name: "writePadding", pkg: "text/tabwriter", typ: $funcType([$Int, $Int, $Bool], [], false)}, {prop: "writeLines", name: "writeLines", pkg: "text/tabwriter", typ: $funcType([$Int, $Int, $Int], [$Int], false)}, {prop: "format", name: "format", pkg: "text/tabwriter", typ: $funcType([$Int, $Int, $Int], [$Int], false)}, {prop: "append", name: "append", pkg: "text/tabwriter", typ: $funcType([sliceType], [], false)}, {prop: "updateWidth", name: "updateWidth", pkg: "text/tabwriter", typ: $funcType([], [], false)}, {prop: "startEscape", name: "startEscape", pkg: "text/tabwriter", typ: $funcType([$Uint8], [], false)}, {prop: "endEscape", name: "endEscape", pkg: "text/tabwriter", typ: $funcType([], [], false)}, {prop: "terminateCell", name: "terminateCell", pkg: "text/tabwriter", typ: $funcType([$Bool], [$Int], false)}, {prop: "handlePanic", name: "handlePanic", pkg: "text/tabwriter", typ: $funcType([ptrType$1, $String], [], false)}, {prop: "Flush", name: "Flush", pkg: "", typ: $funcType([], [$error], false)}, {prop: "flush", name: "flush", pkg: "text/tabwriter", typ: $funcType([], [$error], false)}, {prop: "flushNoDefers", name: "flushNoDefers", pkg: "text/tabwriter", typ: $funcType([], [], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}]; - cell.init("text/tabwriter", [{prop: "size", name: "size", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "width", name: "width", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "htab", name: "htab", embedded: false, exported: false, typ: $Bool, tag: ""}]); - Writer.init("text/tabwriter", [{prop: "output", name: "output", embedded: false, exported: false, typ: io.Writer, tag: ""}, {prop: "minwidth", name: "minwidth", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "tabwidth", name: "tabwidth", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "padding", name: "padding", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "padbytes", name: "padbytes", embedded: false, exported: false, typ: arrayType, tag: ""}, {prop: "flags", name: "flags", embedded: false, exported: false, typ: $Uint, tag: ""}, {prop: "buf", name: "buf", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "cell", name: "cell", embedded: false, exported: false, typ: cell, tag: ""}, {prop: "endChar", name: "endChar", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "lines", name: "lines", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "widths", name: "widths", embedded: false, exported: false, typ: sliceType$3, tag: ""}]); - osError.init("text/tabwriter", [{prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}]); - }; - $init = function() { - $pkg.$init = function() {}; - /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: - $r = io.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = utf8.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - newline = new sliceType([10]); - tabs = (new sliceType($stringToBytes("\t\t\t\t\t\t\t\t"))); - vbar = new sliceType([124]); - hbar = (new sliceType($stringToBytes("---\n"))); - /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; - }; - $pkg.$init = $init; - return $pkg; -})(); -$packages["go/printer"] = (function() { - var $pkg = {}, $init, fmt, ast, constraint, comment, token, io, math, os, sort, strconv, strings, sync, tabwriter, unicode, utf8, whiteSpace, pmode, commentInfo, printer, trimmer, Mode, Config, CommentedNode, exprListMode, paramMode, sizeCounter, sliceType, sliceType$1, ptrType, sliceType$2, sliceType$3, ptrType$1, ptrType$2, sliceType$4, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, ptrType$11, ptrType$12, ptrType$13, sliceType$5, sliceType$6, ptrType$14, ptrType$15, ptrType$16, sliceType$7, ptrType$17, ptrType$18, ptrType$19, ptrType$20, ptrType$21, ptrType$22, ptrType$23, ptrType$24, ptrType$25, ptrType$26, ptrType$27, ptrType$28, sliceType$8, sliceType$9, ptrType$29, ptrType$30, ptrType$31, ptrType$32, ptrType$33, ptrType$34, ptrType$35, ptrType$36, ptrType$37, ptrType$38, ptrType$39, ptrType$40, ptrType$41, ptrType$42, ptrType$43, ptrType$44, ptrType$45, ptrType$46, ptrType$47, ptrType$48, ptrType$49, ptrType$50, ptrType$51, ptrType$52, ptrType$53, ptrType$54, ptrType$55, ptrType$56, ptrType$57, ptrType$58, sliceType$10, ptrType$59, sliceType$11, ptrType$60, sliceType$12, mapType, ptrType$61, ptrType$62, ptrType$63, aNewline, printerPool, isBlank, commonPrefix, trimRight, stripCommonPrefix, nlimit, mayCombine, getDoc, getLastComment, newPrinter, combinesWithName, isTypeElem, identListSize, walkBinary, cutoff, diffPrec, reduceDepth, isBinary, normalizedNumber, isTypeName, stripParens, stripParensAlways, keepTypeColumn, sanitizeImportPath, declToken, appendLines, isNL, formatDocComment, isDirective, allStars; - fmt = $packages["fmt"]; - ast = $packages["go/ast"]; - constraint = $packages["go/build/constraint"]; - comment = $packages["go/doc/comment"]; - token = $packages["go/token"]; - io = $packages["io"]; - math = $packages["math"]; - os = $packages["os"]; - sort = $packages["sort"]; - strconv = $packages["strconv"]; - strings = $packages["strings"]; - sync = $packages["sync"]; - tabwriter = $packages["text/tabwriter"]; - unicode = $packages["unicode"]; - utf8 = $packages["unicode/utf8"]; - whiteSpace = $newType(1, $kindUint8, "printer.whiteSpace", true, "go/printer", false, null); - pmode = $newType(4, $kindInt, "printer.pmode", true, "go/printer", false, null); - commentInfo = $newType(0, $kindStruct, "printer.commentInfo", true, "go/printer", false, function(cindex_, comment_, commentOffset_, commentNewline_) { - this.$val = this; - if (arguments.length === 0) { - this.cindex = 0; - this.comment = ptrType$2.nil; - this.commentOffset = 0; - this.commentNewline = false; - return; - } - this.cindex = cindex_; - this.comment = comment_; - this.commentOffset = commentOffset_; - this.commentNewline = commentNewline_; - }); - printer = $newType(0, $kindStruct, "printer.printer", true, "go/printer", false, function(Config_, fset_, output_, indent_, level_, mode_, endAlignment_, impliedSemi_, lastTok_, prevOpen_, wsbuf_, goBuild_, plusBuild_, pos_, out_, last_, linePtr_, sourcePosErr_, comments_, useNodeComments_, commentInfo_, nodeSizes_, cachedPos_, cachedLine_) { - this.$val = this; - if (arguments.length === 0) { - this.Config = new Config.ptr(0, 0, 0); - this.fset = ptrType.nil; - this.output = sliceType.nil; - this.indent = 0; - this.level = 0; - this.mode = 0; - this.endAlignment = false; - this.impliedSemi = false; - this.lastTok = 0; - this.prevOpen = 0; - this.wsbuf = sliceType$2.nil; - this.goBuild = sliceType$3.nil; - this.plusBuild = sliceType$3.nil; - this.pos = new token.Position.ptr("", 0, 0, 0); - this.out = new token.Position.ptr("", 0, 0, 0); - this.last = new token.Position.ptr("", 0, 0, 0); - this.linePtr = ptrType$1.nil; - this.sourcePosErr = $ifaceNil; - this.comments = sliceType$4.nil; - this.useNodeComments = false; - this.commentInfo = new commentInfo.ptr(0, ptrType$2.nil, 0, false); - this.nodeSizes = false; - this.cachedPos = 0; - this.cachedLine = 0; - return; - } - this.Config = Config_; - this.fset = fset_; - this.output = output_; - this.indent = indent_; - this.level = level_; - this.mode = mode_; - this.endAlignment = endAlignment_; - this.impliedSemi = impliedSemi_; - this.lastTok = lastTok_; - this.prevOpen = prevOpen_; - this.wsbuf = wsbuf_; - this.goBuild = goBuild_; - this.plusBuild = plusBuild_; - this.pos = pos_; - this.out = out_; - this.last = last_; - this.linePtr = linePtr_; - this.sourcePosErr = sourcePosErr_; - this.comments = comments_; - this.useNodeComments = useNodeComments_; - this.commentInfo = commentInfo_; - this.nodeSizes = nodeSizes_; - this.cachedPos = cachedPos_; - this.cachedLine = cachedLine_; - }); - trimmer = $newType(0, $kindStruct, "printer.trimmer", true, "go/printer", false, function(output_, state_, space_) { - this.$val = this; - if (arguments.length === 0) { - this.output = $ifaceNil; - this.state = 0; - this.space = sliceType.nil; - return; - } - this.output = output_; - this.state = state_; - this.space = space_; - }); - Mode = $newType(4, $kindUint, "printer.Mode", true, "go/printer", true, null); - Config = $newType(0, $kindStruct, "printer.Config", true, "go/printer", true, function(Mode_, Tabwidth_, Indent_) { - this.$val = this; - if (arguments.length === 0) { - this.Mode = 0; - this.Tabwidth = 0; - this.Indent = 0; - return; - } - this.Mode = Mode_; - this.Tabwidth = Tabwidth_; - this.Indent = Indent_; - }); - CommentedNode = $newType(0, $kindStruct, "printer.CommentedNode", true, "go/printer", true, function(Node_, Comments_) { - this.$val = this; - if (arguments.length === 0) { - this.Node = $ifaceNil; - this.Comments = sliceType$4.nil; - return; - } - this.Node = Node_; - this.Comments = Comments_; - }); - exprListMode = $newType(4, $kindUint, "printer.exprListMode", true, "go/printer", false, null); - paramMode = $newType(4, $kindInt, "printer.paramMode", true, "go/printer", false, null); - sizeCounter = $newType(0, $kindStruct, "printer.sizeCounter", true, "go/printer", false, function(hasNewline_, size_) { - this.$val = this; - if (arguments.length === 0) { - this.hasNewline = false; - this.size = 0; - return; - } - this.hasNewline = hasNewline_; - this.size = size_; - }); - $pkg.whiteSpace = whiteSpace; - $pkg.pmode = pmode; - $pkg.commentInfo = commentInfo; - $pkg.printer = printer; - $pkg.trimmer = trimmer; - $pkg.Mode = Mode; - $pkg.Config = Config; - $pkg.CommentedNode = CommentedNode; - $pkg.exprListMode = exprListMode; - $pkg.paramMode = paramMode; - $pkg.sizeCounter = sizeCounter; - $pkg.$finishSetup = function() { - sliceType = $sliceType($Uint8); - sliceType$1 = $sliceType($emptyInterface); - ptrType = $ptrType(token.FileSet); - sliceType$2 = $sliceType(whiteSpace); - sliceType$3 = $sliceType($Int); - ptrType$1 = $ptrType($Int); - ptrType$2 = $ptrType(ast.CommentGroup); - sliceType$4 = $sliceType(ptrType$2); - ptrType$3 = $ptrType(ast.Comment); - ptrType$4 = $ptrType(ast.Ident); - ptrType$5 = $ptrType(ast.BasicLit); - ptrType$6 = $ptrType(ast.Field); - ptrType$7 = $ptrType(ast.ImportSpec); - ptrType$8 = $ptrType(ast.ValueSpec); - ptrType$9 = $ptrType(ast.TypeSpec); - ptrType$10 = $ptrType(ast.GenDecl); - ptrType$11 = $ptrType(ast.FuncDecl); - ptrType$12 = $ptrType(ast.File); - ptrType$13 = $ptrType(CommentedNode); - sliceType$5 = $sliceType(ast.Stmt); - sliceType$6 = $sliceType(ast.Decl); - ptrType$14 = $ptrType(ast.LabeledStmt); - ptrType$15 = $ptrType(printer); - ptrType$16 = $ptrType(tabwriter.Writer); - sliceType$7 = $sliceType(ast.Expr); - ptrType$17 = $ptrType(ast.KeyValueExpr); - ptrType$18 = $ptrType(ast.StarExpr); - ptrType$19 = $ptrType(ast.BinaryExpr); - ptrType$20 = $ptrType(ast.ParenExpr); - ptrType$21 = $ptrType(ast.ArrayType); - ptrType$22 = $ptrType(ast.StructType); - ptrType$23 = $ptrType(ast.FuncType); - ptrType$24 = $ptrType(ast.InterfaceType); - ptrType$25 = $ptrType(ast.MapType); - ptrType$26 = $ptrType(ast.ChanType); - ptrType$27 = $ptrType(ast.UnaryExpr); - ptrType$28 = $ptrType(ast.FieldList); - sliceType$8 = $sliceType(ptrType$4); - sliceType$9 = $sliceType(ptrType$3); - ptrType$29 = $ptrType(ast.BadExpr); - ptrType$30 = $ptrType(ast.FuncLit); - ptrType$31 = $ptrType(ast.SelectorExpr); - ptrType$32 = $ptrType(ast.TypeAssertExpr); - ptrType$33 = $ptrType(ast.IndexExpr); - ptrType$34 = $ptrType(ast.IndexListExpr); - ptrType$35 = $ptrType(ast.SliceExpr); - ptrType$36 = $ptrType(ast.CallExpr); - ptrType$37 = $ptrType(ast.CompositeLit); - ptrType$38 = $ptrType(ast.Ellipsis); - ptrType$39 = $ptrType(ast.EmptyStmt); - ptrType$40 = $ptrType(ast.BadStmt); - ptrType$41 = $ptrType(ast.DeclStmt); - ptrType$42 = $ptrType(ast.ExprStmt); - ptrType$43 = $ptrType(ast.SendStmt); - ptrType$44 = $ptrType(ast.IncDecStmt); - ptrType$45 = $ptrType(ast.AssignStmt); - ptrType$46 = $ptrType(ast.GoStmt); - ptrType$47 = $ptrType(ast.DeferStmt); - ptrType$48 = $ptrType(ast.ReturnStmt); - ptrType$49 = $ptrType(ast.BranchStmt); - ptrType$50 = $ptrType(ast.BlockStmt); - ptrType$51 = $ptrType(ast.IfStmt); - ptrType$52 = $ptrType(ast.CaseClause); - ptrType$53 = $ptrType(ast.SwitchStmt); - ptrType$54 = $ptrType(ast.TypeSwitchStmt); - ptrType$55 = $ptrType(ast.CommClause); - ptrType$56 = $ptrType(ast.SelectStmt); - ptrType$57 = $ptrType(ast.ForStmt); - ptrType$58 = $ptrType(ast.RangeStmt); - sliceType$10 = $sliceType($Bool); - ptrType$59 = $ptrType(ast.BadDecl); - sliceType$11 = $sliceType($String); - ptrType$60 = $ptrType(strings.Builder); - sliceType$12 = $sliceType(ptrType$6); - mapType = $mapType(ast.Node, $Int); - ptrType$61 = $ptrType(trimmer); - ptrType$62 = $ptrType(Config); - ptrType$63 = $ptrType(sizeCounter); - $ptrType(printer).prototype.internalError = function internalError(msg) { - var {_r, _r$1, _r$2, msg, p, $s, $r, $c} = $restore(this, {msg}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - /* */ if (false) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (false) { */ case 1: - _r = $clone(p.pos, token.Position).String(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = fmt.Print(new sliceType$1([new $String(_r + ": ")])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - _r$2 = fmt.Println(msg); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - $panic(new $String("go/printer")); - /* } */ case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: internalError, $c: true, $r, _r, _r$1, _r$2, msg, p, $s};return $f; - }; - $ptrType(printer).prototype.commentsHaveNewline = function commentsHaveNewline(list) { - var {_i, _r, _r$1, _ref, _v, c, i, line, list, p, t, $s, $r, $c} = $restore(this, {list}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - _r = p.lineFor((0 >= list.$length ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + 0]).Pos()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - line = _r; - _ref = list; - _i = 0; - /* while (true) { */ case 2: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } - i = _i; - c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (!(i > 0)) { _v = false; $s = 6; continue s; } - _r$1 = p.lineFor(((i < 0 || i >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + i]).Pos()); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = !((_r$1 === line)); case 6: - /* */ if (_v) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_v) { */ case 4: - $s = -1; return true; - /* } */ case 5: - t = c.Text; - if (t.length >= 2 && ((t.charCodeAt(1) === 47) || strings.Contains(t, "\n"))) { - $s = -1; return true; - } - _i++; - $s = 2; continue; - case 3: - $unused(line); - $s = -1; return false; - /* */ } return; } var $f = {$blk: commentsHaveNewline, $c: true, $r, _i, _r, _r$1, _ref, _v, c, i, line, list, p, t, $s};return $f; - }; - $ptrType(printer).prototype.nextComment = function nextComment() { - var {_r, _r$1, c, list, p, x, x$1, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - /* while (true) { */ case 1: - /* if (!(p.commentInfo.cindex < p.comments.$length)) { break; } */ if(!(p.commentInfo.cindex < p.comments.$length)) { $s = 2; continue; } - c = (x = p.comments, x$1 = p.commentInfo.cindex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); - p.commentInfo.cindex = p.commentInfo.cindex + (1) >> 0; - list = c.List; - /* */ if (list.$length > 0) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (list.$length > 0) { */ case 3: - p.commentInfo.comment = c; - _r = p.posFor((0 >= list.$length ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + 0]).Pos()); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - p.commentInfo.commentOffset = _r.Offset; - _r$1 = p.commentsHaveNewline(list); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - p.commentInfo.commentNewline = _r$1; - $s = -1; return; - /* } */ case 4: - $s = 1; continue; - case 2: - p.commentInfo.commentOffset = 1073741824; - $s = -1; return; - /* */ } return; } var $f = {$blk: nextComment, $c: true, $r, _r, _r$1, c, list, p, x, x$1, $s};return $f; - }; - $ptrType(printer).prototype.commentBefore = function commentBefore(next) { - var next, p; - p = this; - return p.commentInfo.commentOffset < next.Offset && (!p.impliedSemi || !p.commentInfo.commentNewline); - }; - $ptrType(printer).prototype.commentSizeBefore = function commentSizeBefore(next) { - var {_i, _ref, c, next, p, size, $s, $deferred, $r, $c} = $restore(this, {next}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = [p]; - p[0] = this; - $deferred.push([(function(p) { return function printer·commentSizeBefore·func1(info) { - var info; - commentInfo.copy(p[0].commentInfo, info); - }; })(p), [$clone(p[0].commentInfo, commentInfo)]]); - size = 0; - /* while (true) { */ case 1: - /* if (!(p[0].commentBefore($clone(next, token.Position)))) { break; } */ if(!(p[0].commentBefore($clone(next, token.Position)))) { $s = 2; continue; } - _ref = p[0].commentInfo.comment.List; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - size = size + (c.Text.length) >> 0; - _i++; - } - $r = p[0].nextComment(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 1; continue; - case 2: - $s = -1; return size; - /* */ } return; } } catch(err) { $err = err; $s = -1; return 0; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: commentSizeBefore, $c: true, $r, _i, _ref, c, next, p, size, $s, $deferred};return $f; } } - }; - $ptrType(printer).prototype.recordLine = function recordLine(linePtr) { - var linePtr, p; - p = this; - p.linePtr = linePtr; - }; - $ptrType(printer).prototype.linesFrom = function linesFrom(line) { - var line, p; - p = this; - return p.out.Line - line >> 0; - }; - $ptrType(printer).prototype.posFor = function posFor(pos) { - var {$24r, _r, p, pos, $s, $r, $c} = $restore(this, {pos}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - _r = p.fset.PositionFor(pos, false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: posFor, $c: true, $r, $24r, _r, p, pos, $s};return $f; - }; - $ptrType(printer).prototype.lineFor = function lineFor(pos) { - var {_r, p, pos, $s, $r, $c} = $restore(this, {pos}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - /* */ if (!((pos === p.cachedPos))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!((pos === p.cachedPos))) { */ case 1: - p.cachedPos = pos; - _r = p.fset.PositionFor(pos, false); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - p.cachedLine = _r.Line; - /* } */ case 2: - $s = -1; return p.cachedLine; - /* */ } return; } var $f = {$blk: lineFor, $c: true, $r, _r, p, pos, $s};return $f; - }; - $ptrType(printer).prototype.writeLineDirective = function writeLineDirective(pos) { - var {_arg, _arg$1, _r, _r$1, p, pos, $s, $r, $c} = $restore(this, {pos}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - /* */ if (pos.IsValid() && (!((p.out.Line === pos.Line)) || !(p.out.Filename === pos.Filename))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (pos.IsValid() && (!((p.out.Line === pos.Line)) || !(p.out.Filename === pos.Filename))) { */ case 1: - /* */ if (strings.ContainsAny(pos.Filename, "\r\n")) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (strings.ContainsAny(pos.Filename, "\r\n")) { */ case 3: - /* */ if ($interfaceIsEqual(p.sourcePosErr, $ifaceNil)) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if ($interfaceIsEqual(p.sourcePosErr, $ifaceNil)) { */ case 5: - _r = fmt.Errorf("go/printer: source filename contains unexpected newline character: %q", new sliceType$1([new $String(pos.Filename)])); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - p.sourcePosErr = _r; - /* } */ case 6: - $s = -1; return; - /* } */ case 4: - p.output = $append(p.output, 255); - _arg = p.output; - _r$1 = fmt.Sprintf("//line %s:%d\n", new sliceType$1([new $String(pos.Filename), new $Int(pos.Line)])); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _arg$1 = _r$1; - p.output = $appendSlice(_arg, _arg$1); - p.output = $append(p.output, 255); - p.out.Filename = pos.Filename; - p.out.Line = pos.Line; - /* } */ case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: writeLineDirective, $c: true, $r, _arg, _arg$1, _r, _r$1, p, pos, $s};return $f; - }; - $ptrType(printer).prototype.writeIndent = function writeIndent() { - var i, n, p; - p = this; - n = p.Config.Indent + p.indent >> 0; - i = 0; - while (true) { - if (!(i < n)) { break; } - p.output = $append(p.output, 9); - i = i + (1) >> 0; - } - p.pos.Offset = p.pos.Offset + (n) >> 0; - p.pos.Column = p.pos.Column + (n) >> 0; - p.out.Column = p.out.Column + (n) >> 0; - }; - $ptrType(printer).prototype.writeByte = function writeByte(ch, n) { - var _1, ch, i, n, p; - p = this; - if (p.endAlignment) { - _1 = ch; - if ((_1 === (9)) || (_1 === (11))) { - ch = 32; - } else if ((_1 === (10)) || (_1 === (12))) { - ch = 12; - p.endAlignment = false; - } - } - if (p.out.Column === 1) { - p.writeIndent(); - } - i = 0; - while (true) { - if (!(i < n)) { break; } - p.output = $append(p.output, ch); - i = i + (1) >> 0; - } - p.pos.Offset = p.pos.Offset + (n) >> 0; - if ((ch === 10) || (ch === 12)) { - p.pos.Line = p.pos.Line + (n) >> 0; - p.out.Line = p.out.Line + (n) >> 0; - p.pos.Column = 1; - p.out.Column = 1; - return; - } - p.pos.Column = p.pos.Column + (n) >> 0; - p.out.Column = p.out.Column + (n) >> 0; - }; - $ptrType(printer).prototype.writeString = function writeString(pos, s, isLit) { - var {_arg, _arg$1, _r, c, ch, i, isLit, li, nlines, p, pos, s, $s, $r, $c} = $restore(this, {pos, s, isLit}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - /* */ if (p.out.Column === 1) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.out.Column === 1) { */ case 1: - /* */ if (!((((p.Config.Mode & 8) >>> 0) === 0))) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!((((p.Config.Mode & 8) >>> 0) === 0))) { */ case 3: - $r = p.writeLineDirective($clone(pos, token.Position)); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 4: - p.writeIndent(); - /* } */ case 2: - if (pos.IsValid()) { - token.Position.copy(p.pos, pos); - } - if (isLit) { - p.output = $append(p.output, 255); - } - /* */ if (false) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (false) { */ case 6: - _arg = p.output; - _r = fmt.Sprintf("/*%s*/", new sliceType$1([new pos.constructor.elem(pos)])); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _arg$1 = _r; - p.output = $appendSlice(_arg, _arg$1); - /* } */ case 7: - p.output = $appendSlice(p.output, s); - nlines = 0; - li = 0; - i = 0; - while (true) { - if (!(i < s.length)) { break; } - ch = s.charCodeAt(i); - if ((ch === 10) || (ch === 12)) { - nlines = nlines + (1) >> 0; - li = i; - p.endAlignment = true; - } - i = i + (1) >> 0; - } - p.pos.Offset = p.pos.Offset + (s.length) >> 0; - if (nlines > 0) { - p.pos.Line = p.pos.Line + (nlines) >> 0; - p.out.Line = p.out.Line + (nlines) >> 0; - c = s.length - li >> 0; - p.pos.Column = c; - p.out.Column = c; - } else { - p.pos.Column = p.pos.Column + (s.length) >> 0; - p.out.Column = p.out.Column + (s.length) >> 0; - } - if (isLit) { - p.output = $append(p.output, 255); - } - token.Position.copy(p.last, p.pos); - $s = -1; return; - /* */ } return; } var $f = {$blk: writeString, $c: true, $r, _arg, _arg$1, _r, c, ch, i, isLit, li, nlines, p, pos, s, $s};return $f; - }; - $ptrType(printer).prototype.writeCommentPrefix = function writeCommentPrefix(pos, next, prev, tok) { - var {_1, _2, _i, _i$1, _ref, _ref$1, ch, ch$1, droppedLinebreak, hasSep, i, i$1, j, j$1, n, next, p, pos, prev, sep, tok, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {pos, next, prev, tok}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - if (p.output.$length === 0) { - $s = -1; return; - } - if (pos.IsValid() && !(pos.Filename === p.last.Filename)) { - p.writeByte(12, 2); - $s = -1; return; - } - /* */ if ((pos.Line === p.last.Line) && (prev === ptrType$3.nil || !((prev.Text.charCodeAt(1) === 47)))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if ((pos.Line === p.last.Line) && (prev === ptrType$3.nil || !((prev.Text.charCodeAt(1) === 47)))) { */ case 1: - hasSep = false; - /* */ if (prev === ptrType$3.nil) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (prev === ptrType$3.nil) { */ case 4: - j = 0; - _ref = p.wsbuf; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - ch = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _1 = ch; - if (_1 === (32)) { - (x = p.wsbuf, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i] = 0)); - _i++; - continue; - } else if (_1 === (11)) { - hasSep = true; - _i++; - continue; - } else if (_1 === (62)) { - _i++; - continue; - } - j = i; - break; - } - $r = p.writeWhitespace(j); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 5: - if (!hasSep) { - sep = 9; - if (pos.Line === next.Line) { - sep = 32; - } - p.writeByte(sep, 1); - } - $s = 3; continue; - /* } else { */ case 2: - droppedLinebreak = false; - j$1 = 0; - _ref$1 = p.wsbuf; - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - i$1 = _i$1; - ch$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - _2 = ch$1; - if ((_2 === (32)) || (_2 === (11))) { - (x$1 = p.wsbuf, ((i$1 < 0 || i$1 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$1] = 0)); - _i$1++; - continue; - } else if (_2 === (62)) { - _i$1++; - continue; - } else if (_2 === (60)) { - if ((i$1 + 1 >> 0) < p.wsbuf.$length && ((x$2 = p.wsbuf, x$3 = i$1 + 1 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])) === 60)) { - _i$1++; - continue; - } - if (!((tok === 56)) && (pos.Column === next.Column)) { - _i$1++; - continue; - } - } else if ((_2 === (10)) || (_2 === (12))) { - (x$4 = p.wsbuf, ((i$1 < 0 || i$1 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + i$1] = 0)); - droppedLinebreak = prev === ptrType$3.nil; - } - j$1 = i$1; - break; - } - $r = p.writeWhitespace(j$1); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - n = 0; - if (pos.IsValid() && p.last.IsValid()) { - n = pos.Line - p.last.Line >> 0; - if (n < 0) { - n = 0; - } - } - if ((p.indent === 0) && droppedLinebreak) { - n = n + (1) >> 0; - } - if ((n === 0) && !(prev === ptrType$3.nil) && (prev.Text.charCodeAt(1) === 47)) { - n = 1; - } - if (n > 0) { - p.writeByte(12, nlimit(n)); - } - /* } */ case 3: - $s = -1; return; - /* */ } return; } var $f = {$blk: writeCommentPrefix, $c: true, $r, _1, _2, _i, _i$1, _ref, _ref$1, ch, ch$1, droppedLinebreak, hasSep, i, i$1, j, j$1, n, next, p, pos, prev, sep, tok, x, x$1, x$2, x$3, x$4, $s};return $f; - }; - isBlank = function isBlank$1(s) { - var i, s; - i = 0; - while (true) { - if (!(i < s.length)) { break; } - if (s.charCodeAt(i) > 32) { - return false; - } - i = i + (1) >> 0; - } - return true; - }; - commonPrefix = function commonPrefix$1(a, b) { - var a, b, i; - i = 0; - while (true) { - if (!(i < a.length && i < b.length && (a.charCodeAt(i) === b.charCodeAt(i)) && (a.charCodeAt(i) <= 32 || (a.charCodeAt(i) === 42)))) { break; } - i = i + (1) >> 0; - } - return $substring(a, 0, i); - }; - trimRight = function trimRight$1(s) { - var {$24r, _r, s, $s, $r, $c} = $restore(this, {s}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = strings.TrimRightFunc(s, unicode.IsSpace); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: trimRight$1, $c: true, $r, $24r, _r, s, $s};return $f; - }; - stripCommonPrefix = function stripCommonPrefix$1(lines) { - var _i, _i$1, _ref, _ref$1, _tmp, _tmp$1, _tuple, _tuple$1, before, closing, first, i, i$1, i$2, last, line, line$1, line$2, lineOfStars, lines, n, n$1, ok, p, prefix, prefixSet, suffix, x, x$1, x$2, x$3; - if (lines.$length <= 1) { - return; - } - prefix = ""; - prefixSet = false; - if (lines.$length > 2) { - _ref = $subslice(lines, 1, (lines.$length - 1 >> 0)); - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - line = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (isBlank(line)) { - (x = 1 + i >> 0, ((x < 0 || x >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + x] = "")); - } else { - if (!prefixSet) { - prefix = line; - prefixSet = true; - } - prefix = commonPrefix(prefix, line); - } - _i++; - } - } - if (!prefixSet) { - line$1 = (x$1 = lines.$length - 1 >> 0, ((x$1 < 0 || x$1 >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + x$1])); - prefix = commonPrefix(line$1, line$1); - } - lineOfStars = false; - _tuple = strings.Cut(prefix, "*"); - p = _tuple[0]; - ok = _tuple[2]; - if (ok) { - prefix = strings.TrimSuffix(p, " "); - lineOfStars = true; - } else { - first = (0 >= lines.$length ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + 0]); - if (isBlank($substring(first, 2))) { - i$1 = prefix.length; - n = 0; - while (true) { - if (!(n < 3 && i$1 > 0 && (prefix.charCodeAt((i$1 - 1 >> 0)) === 32))) { break; } - i$1 = i$1 - (1) >> 0; - n = n + (1) >> 0; - } - if ((i$1 === prefix.length) && i$1 > 0 && (prefix.charCodeAt((i$1 - 1 >> 0)) === 9)) { - i$1 = i$1 - (1) >> 0; - } - prefix = $substring(prefix, 0, i$1); - } else { - suffix = $makeSlice(sliceType, first.length); - n$1 = 2; - while (true) { - if (!(n$1 < first.length && first.charCodeAt(n$1) <= 32)) { break; } - ((n$1 < 0 || n$1 >= suffix.$length) ? ($throwRuntimeError("index out of range"), undefined) : suffix.$array[suffix.$offset + n$1] = first.charCodeAt(n$1)); - n$1 = n$1 + (1) >> 0; - } - if (n$1 > 2 && ((2 >= suffix.$length ? ($throwRuntimeError("index out of range"), undefined) : suffix.$array[suffix.$offset + 2]) === 9)) { - suffix = $subslice(suffix, 2, n$1); - } else { - _tmp = 32; - _tmp$1 = 32; - (0 >= suffix.$length ? ($throwRuntimeError("index out of range"), undefined) : suffix.$array[suffix.$offset + 0] = _tmp); - (1 >= suffix.$length ? ($throwRuntimeError("index out of range"), undefined) : suffix.$array[suffix.$offset + 1] = _tmp$1); - suffix = $subslice(suffix, 0, n$1); - } - prefix = strings.TrimSuffix(prefix, ($bytesToString(suffix))); - } - } - last = (x$2 = lines.$length - 1 >> 0, ((x$2 < 0 || x$2 >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + x$2])); - closing = "*/"; - _tuple$1 = strings.Cut(last, closing); - before = _tuple$1[0]; - if (isBlank(before)) { - if (lineOfStars) { - closing = " */"; - } - (x$3 = lines.$length - 1 >> 0, ((x$3 < 0 || x$3 >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + x$3] = prefix + closing)); - } else { - prefix = commonPrefix(prefix, last); - } - _ref$1 = lines; - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - i$2 = _i$1; - line$2 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - if (i$2 > 0 && !(line$2 === "")) { - ((i$2 < 0 || i$2 >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + i$2] = $substring(line$2, prefix.length)); - } - _i$1++; - } - }; - $ptrType(printer).prototype.writeComment = function writeComment(comment$1) { - var {_arg, _arg$1, _arg$2, _arg$3, _i, _i$1, _r, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, comment$1, i, i$1, line, line$1, lines, p, pos, text, x, $s, $deferred, $r, $c} = $restore(this, {comment$1}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = [p]; - p[0] = this; - text = comment$1.Text; - _r = p[0].posFor(comment$1.Pos()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - pos = $clone(_r, token.Position); - /* */ if (strings.HasPrefix(text, "//line ") && (!pos.IsValid() || (pos.Column === 1))) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (strings.HasPrefix(text, "//line ") && (!pos.IsValid() || (pos.Column === 1))) { */ case 2: - $deferred.push([(function(p) { return function printer·writeComment·func1(indent) { - var indent; - p[0].indent = indent; - }; })(p), [p[0].indent]]); - p[0].indent = 0; - /* } */ case 3: - /* */ if (text.charCodeAt(1) === 47) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (text.charCodeAt(1) === 47) { */ case 4: - _r$1 = constraint.IsGoBuild(text); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 6; continue; } - _r$2 = constraint.IsPlusBuild(text); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (_r$2) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (_r$1) { */ case 6: - p[0].goBuild = $append(p[0].goBuild, p[0].output.$length); - $s = 8; continue; - /* } else if (_r$2) { */ case 7: - p[0].plusBuild = $append(p[0].plusBuild, p[0].output.$length); - /* } */ case 8: - _arg = $clone(pos, token.Position); - _r$3 = trimRight(text); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _arg$1 = _r$3; - $r = p[0].writeString(_arg, _arg$1, true); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 5: - lines = strings.Split(text, "\n"); - if (pos.IsValid() && (pos.Column === 1) && p[0].indent > 0) { - _ref = $subslice(lines, 1); - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - line = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - (x = 1 + i >> 0, ((x < 0 || x >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + x] = " " + line)); - _i++; - } - } - stripCommonPrefix(lines); - _ref$1 = lines; - _i$1 = 0; - /* while (true) { */ case 13: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 14; continue; } - i$1 = _i$1; - line$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - if (i$1 > 0) { - p[0].writeByte(12, 1); - token.Position.copy(pos, p[0].pos); - } - /* */ if (line$1.length > 0) { $s = 15; continue; } - /* */ $s = 16; continue; - /* if (line$1.length > 0) { */ case 15: - _arg$2 = $clone(pos, token.Position); - _r$4 = trimRight(line$1); /* */ $s = 17; case 17: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _arg$3 = _r$4; - $r = p[0].writeString(_arg$2, _arg$3, true); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 16: - _i$1++; - $s = 13; continue; - case 14: - $s = -1; return; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: writeComment, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _i, _i$1, _r, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, comment$1, i, i$1, line, line$1, lines, p, pos, text, x, $s, $deferred};return $f; } } - }; - $ptrType(printer).prototype.writeCommentSuffix = function writeCommentSuffix(needsLinebreak) { - var {_1, _i, _ref, ch, droppedFF, i, needsLinebreak, p, wroteNewline, x, x$1, $s, $r, $c} = $restore(this, {needsLinebreak}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - wroteNewline = false; - droppedFF = false; - p = this; - _ref = p.wsbuf; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - ch = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _1 = ch; - if ((_1 === (32)) || (_1 === (11))) { - (x = p.wsbuf, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i] = 0)); - } else if ((_1 === (62)) || (_1 === (60))) { - } else if ((_1 === (10)) || (_1 === (12))) { - if (needsLinebreak) { - needsLinebreak = false; - wroteNewline = true; - } else { - if (ch === 12) { - droppedFF = true; - } - (x$1 = p.wsbuf, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i] = 0)); - } - } - _i++; - } - $r = p.writeWhitespace(p.wsbuf.$length); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (needsLinebreak) { - p.writeByte(10, 1); - wroteNewline = true; - } - $s = -1; return [wroteNewline, droppedFF]; - /* */ } return; } var $f = {$blk: writeCommentSuffix, $c: true, $r, _1, _i, _ref, ch, droppedFF, i, needsLinebreak, p, wroteNewline, x, x$1, $s};return $f; - }; - $ptrType(printer).prototype.containsLinebreak = function containsLinebreak() { - var _i, _ref, ch, p; - p = this; - _ref = p.wsbuf; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - ch = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if ((ch === 10) || (ch === 12)) { - return true; - } - _i++; - } - return false; - }; - $ptrType(printer).prototype.intersperseComments = function intersperseComments(next, tok) { - var {$24r, $24r$1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _tuple, _tuple$1, _v, _v$1, _v$2, c, changed, droppedFF, last, list, needsLinebreak, next, p, tok, wroteNewline, x, x$1, $s, $r, $c} = $restore(this, {next, tok}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - wroteNewline = false; - droppedFF = false; - p = this; - last = ptrType$3.nil; - /* while (true) { */ case 1: - /* if (!(p.commentBefore($clone(next, token.Position)))) { break; } */ if(!(p.commentBefore($clone(next, token.Position)))) { $s = 2; continue; } - list = p.commentInfo.comment.List; - changed = false; - if (!(!((p.lastTok === 75)))) { _v$1 = false; $s = 6; continue s; } - _r = p.posFor(p.commentInfo.comment.Pos()); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _v$1 = _r.Column === 1; case 6: - if (!(_v$1)) { _v = false; $s = 5; continue s; } - _r$1 = p.posFor(p.commentInfo.comment.End() + 1 >> 0); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = $equal(_r$1, next, token.Position); case 5: - /* */ if (_v) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (_v) { */ case 3: - _r$2 = formatDocComment(list); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - list = _r$2; - changed = true; - /* */ if (p.commentInfo.comment.List.$length > 0 && (list.$length === 0)) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (p.commentInfo.comment.List.$length > 0 && (list.$length === 0)) { */ case 10: - _r$3 = p.posFor(p.commentInfo.comment.Pos()); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $r = p.writeCommentPrefix($clone(_r$3, token.Position), $clone(next, token.Position), last, tok); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - token.Position.copy(p.pos, next); - token.Position.copy(p.last, next); - $r = p.nextComment(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$4 = p.writeCommentSuffix(false); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _tuple = _r$4; - wroteNewline = _tuple[0]; - droppedFF = _tuple[1]; - $24r = [wroteNewline, droppedFF]; - $s = 16; case 16: return $24r; - /* } */ case 11: - /* } */ case 4: - _ref = list; - _i = 0; - /* while (true) { */ case 17: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 18; continue; } - c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$5 = p.posFor(c.Pos()); /* */ $s = 19; case 19: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - $r = p.writeCommentPrefix($clone(_r$5, token.Position), $clone(next, token.Position), last, tok); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.writeComment(c); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - last = c; - _i++; - $s = 17; continue; - case 18: - /* */ if (p.commentInfo.comment.List.$length > 0 && changed) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if (p.commentInfo.comment.List.$length > 0 && changed) { */ case 22: - last = (x = p.commentInfo.comment.List, x$1 = p.commentInfo.comment.List.$length - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); - _r$6 = p.posFor(last.End()); /* */ $s = 24; case 24: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - token.Position.copy(p.pos, _r$6); - token.Position.copy(p.last, p.pos); - /* } */ case 23: - $r = p.nextComment(); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 1; continue; - case 2: - /* */ if (!(last === ptrType$3.nil)) { $s = 26; continue; } - /* */ $s = 27; continue; - /* if (!(last === ptrType$3.nil)) { */ case 26: - needsLinebreak = false; - if (!(((p.mode & 1) === 0) && (last.Text.charCodeAt(1) === 42))) { _v$2 = false; $s = 30; continue s; } - _r$7 = p.lineFor(last.Pos()); /* */ $s = 31; case 31: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _v$2 = _r$7 === next.Line; case 30: - /* */ if (_v$2 && !((tok === 52)) && (!((tok === 54)) || (p.prevOpen === 49)) && (!((tok === 55)) || (p.prevOpen === 50))) { $s = 28; continue; } - /* */ $s = 29; continue; - /* if (_v$2 && !((tok === 52)) && (!((tok === 54)) || (p.prevOpen === 49)) && (!((tok === 55)) || (p.prevOpen === 50))) { */ case 28: - if (p.containsLinebreak() && ((p.mode & 2) === 0) && (p.level === 0)) { - needsLinebreak = true; - } else { - p.writeByte(32, 1); - } - /* } */ case 29: - if ((last.Text.charCodeAt(1) === 47) || (tok === 1) || (tok === 56) && ((p.mode & 2) === 0)) { - needsLinebreak = true; - } - _r$8 = p.writeCommentSuffix(needsLinebreak); /* */ $s = 32; case 32: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _tuple$1 = _r$8; - wroteNewline = _tuple$1[0]; - droppedFF = _tuple$1[1]; - $24r$1 = [wroteNewline, droppedFF]; - $s = 33; case 33: return $24r$1; - /* } */ case 27: - $r = p.internalError(new sliceType$1([new $String("intersperseComments called without pending comments")])); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return [wroteNewline, droppedFF]; - /* */ } return; } var $f = {$blk: intersperseComments, $c: true, $r, $24r, $24r$1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _tuple, _tuple$1, _v, _v$1, _v$2, c, changed, droppedFF, last, list, needsLinebreak, next, p, tok, wroteNewline, x, x$1, $s};return $f; - }; - $ptrType(printer).prototype.writeWhitespace = function writeWhitespace(n) { - var {_1, _tmp, _tmp$1, ch, i, l, n, p, x, x$1, x$2, x$3, x$4, x$5, $s, $r, $c} = $restore(this, {n}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - i = 0; - /* while (true) { */ case 1: - /* if (!(i < n)) { break; } */ if(!(i < n)) { $s = 2; continue; } - ch = (x = p.wsbuf, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - _1 = ch; - /* */ if (_1 === (0)) { $s = 4; continue; } - /* */ if (_1 === (62)) { $s = 5; continue; } - /* */ if (_1 === (60)) { $s = 6; continue; } - /* */ if ((_1 === (10)) || (_1 === (12))) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (_1 === (0)) { */ case 4: - $s = 9; continue; - /* } else if (_1 === (62)) { */ case 5: - p.indent = p.indent + (1) >> 0; - $s = 9; continue; - /* } else if (_1 === (60)) { */ case 6: - p.indent = p.indent - (1) >> 0; - /* */ if (p.indent < 0) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (p.indent < 0) { */ case 10: - $r = p.internalError(new sliceType$1([new $String("negative indentation:"), new $Int(p.indent)])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - p.indent = 0; - /* } */ case 11: - $s = 9; continue; - /* } else if ((_1 === (10)) || (_1 === (12))) { */ case 7: - if ((i + 1 >> 0) < n && ((x$1 = p.wsbuf, x$2 = i + 1 >> 0, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])) === 60)) { - _tmp = 60; - _tmp$1 = 12; - (x$3 = p.wsbuf, ((i < 0 || i >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + i] = _tmp)); - (x$4 = p.wsbuf, x$5 = i + 1 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5] = _tmp$1)); - i = i - (1) >> 0; - i = i + (1) >> 0; - /* continue; */ $s = 1; continue; - } - p.writeByte(((ch << 24 >>> 24)), 1); - $s = 9; continue; - /* } else { */ case 8: - p.writeByte(((ch << 24 >>> 24)), 1); - /* } */ case 9: - case 3: - i = i + (1) >> 0; - $s = 1; continue; - case 2: - l = $copySlice(p.wsbuf, $subslice(p.wsbuf, n)); - p.wsbuf = $subslice(p.wsbuf, 0, l); - $s = -1; return; - /* */ } return; } var $f = {$blk: writeWhitespace, $c: true, $r, _1, _tmp, _tmp$1, ch, i, l, n, p, x, x$1, x$2, x$3, x$4, x$5, $s};return $f; - }; - nlimit = function nlimit$1(n) { - var n; - if (n > 2) { - n = 2; - } - return n; - }; - mayCombine = function mayCombine$1(prev, next) { - var _1, b, next, prev; - b = false; - _1 = prev; - if (_1 === (5)) { - b = next === 46; - } else if (_1 === (12)) { - b = next === 43; - } else if (_1 === (13)) { - b = next === 45; - } else if (_1 === (15)) { - b = next === 42; - } else if (_1 === (40)) { - b = (next === 45) || (next === 60); - } else if (_1 === (17)) { - b = (next === 38) || (next === 94); - } - return b; - }; - $ptrType(printer).prototype.setPos = function setPos(pos) { - var {_r, p, pos, $s, $r, $c} = $restore(this, {pos}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - /* */ if (new token.Pos(pos).IsValid()) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (new token.Pos(pos).IsValid()) { */ case 1: - _r = p.posFor(pos); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - token.Position.copy(p.pos, _r); - /* } */ case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: setPos, $c: true, $r, _r, p, pos, $s};return $f; - }; - $ptrType(printer).prototype.print = function print(args) { - var {_1, _2, _i, _r, _r$1, _ref, _ref$1, _tuple, arg, args, ch, data, droppedFF, i, impliedSemi, isLit, n, next, p, s, wroteNewline, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, $s, $r, $c} = $restore(this, {args}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - _ref = args; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - data = ""; - isLit = false; - impliedSemi = false; - _1 = p.lastTok; - if (_1 === (0)) { - } else if ((_1 === (49)) || (_1 === (50))) { - p.prevOpen = p.lastTok; - } else { - p.prevOpen = 0; - } - _ref$1 = arg; - /* */ if ($assertType(_ref$1, pmode, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref$1, whiteSpace, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref$1, ptrType$4, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref$1, ptrType$5, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref$1, token.Token, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref$1, $String, true)[1]) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if ($assertType(_ref$1, pmode, true)[1]) { */ case 3: - x = _ref$1.$val; - p.mode = (p.mode ^ (x)) >> 0; - _i++; - /* continue; */ $s = 1; continue; - $s = 10; continue; - /* } else if ($assertType(_ref$1, whiteSpace, true)[1]) { */ case 4: - x$1 = _ref$1.$val; - if (x$1 === 0) { - _i++; - /* continue; */ $s = 1; continue; - } - i = p.wsbuf.$length; - /* */ if (i === p.wsbuf.$capacity) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (i === p.wsbuf.$capacity) { */ case 11: - $r = p.writeWhitespace(i); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - i = 0; - /* } */ case 12: - p.wsbuf = $subslice(p.wsbuf, 0, (i + 1 >> 0)); - (x$7 = p.wsbuf, ((i < 0 || i >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + i] = x$1)); - if ((x$1 === 10) || (x$1 === 12)) { - p.impliedSemi = false; - } - p.lastTok = 0; - _i++; - /* continue; */ $s = 1; continue; - $s = 10; continue; - /* } else if ($assertType(_ref$1, ptrType$4, true)[1]) { */ case 5: - x$2 = _ref$1.$val; - data = x$2.Name; - impliedSemi = true; - p.lastTok = 4; - $s = 10; continue; - /* } else if ($assertType(_ref$1, ptrType$5, true)[1]) { */ case 6: - x$3 = _ref$1.$val; - data = x$3.Value; - isLit = true; - impliedSemi = true; - p.lastTok = x$3.Kind; - $s = 10; continue; - /* } else if ($assertType(_ref$1, token.Token, true)[1]) { */ case 7: - x$4 = _ref$1.$val; - s = new token.Token(x$4).String(); - /* */ if (mayCombine(p.lastTok, s.charCodeAt(0))) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (mayCombine(p.lastTok, s.charCodeAt(0))) { */ case 14: - /* */ if (!((p.wsbuf.$length === 0))) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (!((p.wsbuf.$length === 0))) { */ case 16: - $r = p.internalError(new sliceType$1([new $String("whitespace buffer not empty")])); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 17: - p.wsbuf = $subslice(p.wsbuf, 0, 1); - (x$8 = p.wsbuf, (0 >= x$8.$length ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + 0] = 32)); - /* } */ case 15: - data = s; - _2 = x$4; - if ((_2 === (61)) || (_2 === (65)) || (_2 === (69)) || (_2 === (80)) || (_2 === (37)) || (_2 === (38)) || (_2 === (54)) || (_2 === (55)) || (_2 === (56))) { - impliedSemi = true; - } - p.lastTok = x$4; - $s = 10; continue; - /* } else if ($assertType(_ref$1, $String, true)[1]) { */ case 8: - x$5 = _ref$1.$val; - data = x$5; - isLit = true; - impliedSemi = true; - p.lastTok = 9; - $s = 10; continue; - /* } else { */ case 9: - x$6 = _ref$1; - _r = fmt.Fprintf(os.Stderr, "print: unsupported argument %v (%T)\n", new sliceType$1([arg, arg])); /* */ $s = 19; case 19: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r; - $panic(new $String("go/printer type")); - /* } */ case 10: - next = $clone(p.pos, token.Position); - _r$1 = p.flush($clone(next, token.Position), p.lastTok); /* */ $s = 20; case 20: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - wroteNewline = _tuple[0]; - droppedFF = _tuple[1]; - if (!p.impliedSemi) { - n = nlimit(next.Line - p.pos.Line >> 0); - if (wroteNewline && (n === 2)) { - n = 1; - } - if (n > 0) { - ch = 10; - if (droppedFF) { - ch = 12; - } - p.writeByte(ch, n); - impliedSemi = false; - } - } - if (!(p.linePtr === ptrType$1.nil)) { - p.linePtr.$set(p.out.Line); - p.linePtr = ptrType$1.nil; - } - $r = p.writeString($clone(next, token.Position), data, isLit); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - p.impliedSemi = impliedSemi; - _i++; - $s = 1; continue; - case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: print, $c: true, $r, _1, _2, _i, _r, _r$1, _ref, _ref$1, _tuple, arg, args, ch, data, droppedFF, i, impliedSemi, isLit, n, next, p, s, wroteNewline, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, $s};return $f; - }; - $ptrType(printer).prototype.flush = function flush(next, tok) { - var {_r, _tuple, droppedFF, next, p, tok, wroteNewline, $s, $r, $c} = $restore(this, {next, tok}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - wroteNewline = false; - droppedFF = false; - p = this; - /* */ if (p.commentBefore($clone(next, token.Position))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p.commentBefore($clone(next, token.Position))) { */ case 1: - _r = p.intersperseComments($clone(next, token.Position), tok); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - wroteNewline = _tuple[0]; - droppedFF = _tuple[1]; - $s = 3; continue; - /* } else { */ case 2: - $r = p.writeWhitespace(p.wsbuf.$length); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 3: - $s = -1; return [wroteNewline, droppedFF]; - /* */ } return; } var $f = {$blk: flush, $c: true, $r, _r, _tuple, droppedFF, next, p, tok, wroteNewline, $s};return $f; - }; - getDoc = function getDoc$1(n) { - var _ref, n, n$1, n$2, n$3, n$4, n$5, n$6, n$7; - _ref = n; - if ($assertType(_ref, ptrType$6, true)[1]) { - n$1 = _ref.$val; - return n$1.Doc; - } else if ($assertType(_ref, ptrType$7, true)[1]) { - n$2 = _ref.$val; - return n$2.Doc; - } else if ($assertType(_ref, ptrType$8, true)[1]) { - n$3 = _ref.$val; - return n$3.Doc; - } else if ($assertType(_ref, ptrType$9, true)[1]) { - n$4 = _ref.$val; - return n$4.Doc; - } else if ($assertType(_ref, ptrType$10, true)[1]) { - n$5 = _ref.$val; - return n$5.Doc; - } else if ($assertType(_ref, ptrType$11, true)[1]) { - n$6 = _ref.$val; - return n$6.Doc; - } else if ($assertType(_ref, ptrType$12, true)[1]) { - n$7 = _ref.$val; - return n$7.Doc; - } - return ptrType$2.nil; - }; - getLastComment = function getLastComment$1(n) { - var _ref, n, n$1, n$2, n$3, n$4, n$5, n$6, x, x$1, x$2, x$3; - _ref = n; - if ($assertType(_ref, ptrType$6, true)[1]) { - n$1 = _ref.$val; - return n$1.Comment; - } else if ($assertType(_ref, ptrType$7, true)[1]) { - n$2 = _ref.$val; - return n$2.Comment; - } else if ($assertType(_ref, ptrType$8, true)[1]) { - n$3 = _ref.$val; - return n$3.Comment; - } else if ($assertType(_ref, ptrType$9, true)[1]) { - n$4 = _ref.$val; - return n$4.Comment; - } else if ($assertType(_ref, ptrType$10, true)[1]) { - n$5 = _ref.$val; - if (n$5.Specs.$length > 0) { - return getLastComment((x = n$5.Specs, x$1 = n$5.Specs.$length - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1]))); - } - } else if ($assertType(_ref, ptrType$12, true)[1]) { - n$6 = _ref.$val; - if (n$6.Comments.$length > 0) { - return (x$2 = n$6.Comments, x$3 = n$6.Comments.$length - 1 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])); - } - } - return ptrType$2.nil; - }; - $ptrType(printer).prototype.printNode = function printNode(node) { - var {$24r, _i, _r, _r$1, _r$2, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, beg, cnode, com, comments, doc, e, end, i, j, n, n$1, n$2, n$3, n$4, n$5, n$6, n$7, n$8, n$9, node, ok, ok$1, ok$2, ok$3, ok$4, p, s, $s, $r, $c} = $restore(this, {node}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - comments = sliceType$4.nil; - _tuple = $assertType(node, ptrType$13, true); - cnode = _tuple[0]; - ok = _tuple[1]; - if (ok) { - node = cnode.Node; - comments = cnode.Comments; - } - /* */ if (!(comments === sliceType$4.nil)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(comments === sliceType$4.nil)) { */ case 1: - _tuple$1 = $assertType(node, ast.Node, true); - n = _tuple$1[0]; - ok$1 = _tuple$1[1]; - /* */ if (!ok$1) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (!ok$1) { */ case 4: - /* goto unsupported */ $s = 6; continue; - /* } */ case 5: - _r = n.Pos(); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - beg = _r; - _r$1 = n.End(); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - end = _r$1; - doc = getDoc(n); - if (!(doc === ptrType$2.nil)) { - beg = doc.Pos(); - } - com = getLastComment(n); - if (!(com === ptrType$2.nil)) { - e = com.End(); - if (e > end) { - end = e; - } - } - i = 0; - while (true) { - if (!(i < comments.$length && ((i < 0 || i >= comments.$length) ? ($throwRuntimeError("index out of range"), undefined) : comments.$array[comments.$offset + i]).End() < beg)) { break; } - i = i + (1) >> 0; - } - j = i; - while (true) { - if (!(j < comments.$length && ((j < 0 || j >= comments.$length) ? ($throwRuntimeError("index out of range"), undefined) : comments.$array[comments.$offset + j]).Pos() < end)) { break; } - j = j + (1) >> 0; - } - if (i < j) { - p.comments = $subslice(comments, i, j); - } - $s = 3; continue; - /* } else { */ case 2: - _tuple$2 = $assertType(node, ptrType$12, true); - n$1 = _tuple$2[0]; - ok$2 = _tuple$2[1]; - if (ok$2) { - p.comments = n$1.Comments; - } - /* } */ case 3: - p.useNodeComments = p.comments === sliceType$4.nil; - $r = p.nextComment(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new pmode(0)])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _ref = node; - /* */ if ($assertType(_ref, ast.Expr, true)[1]) { $s = 11; continue; } - /* */ if ($assertType(_ref, ast.Stmt, true)[1]) { $s = 12; continue; } - /* */ if ($assertType(_ref, ast.Decl, true)[1]) { $s = 13; continue; } - /* */ if ($assertType(_ref, ast.Spec, true)[1]) { $s = 14; continue; } - /* */ if ($assertType(_ref, sliceType$5, true)[1]) { $s = 15; continue; } - /* */ if ($assertType(_ref, sliceType$6, true)[1]) { $s = 16; continue; } - /* */ if ($assertType(_ref, ptrType$12, true)[1]) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if ($assertType(_ref, ast.Expr, true)[1]) { */ case 11: - n$2 = _ref; - $r = p.expr(n$2); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 19; continue; - /* } else if ($assertType(_ref, ast.Stmt, true)[1]) { */ case 12: - n$3 = _ref; - _tuple$3 = $assertType(n$3, ptrType$14, true); - ok$3 = _tuple$3[1]; - if (ok$3) { - p.indent = 1; - } - $r = p.stmt(n$3, false); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 19; continue; - /* } else if ($assertType(_ref, ast.Decl, true)[1]) { */ case 13: - n$4 = _ref; - $r = p.decl(n$4); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 19; continue; - /* } else if ($assertType(_ref, ast.Spec, true)[1]) { */ case 14: - n$5 = _ref; - $r = p.spec(n$5, 1, false); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 19; continue; - /* } else if ($assertType(_ref, sliceType$5, true)[1]) { */ case 15: - n$6 = _ref.$val; - _ref$1 = n$6; - _i = 0; - while (true) { - if (!(_i < _ref$1.$length)) { break; } - s = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); - _tuple$4 = $assertType(s, ptrType$14, true); - ok$4 = _tuple$4[1]; - if (ok$4) { - p.indent = 1; - } - _i++; - } - $r = p.stmtList(n$6, 0, false); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 19; continue; - /* } else if ($assertType(_ref, sliceType$6, true)[1]) { */ case 16: - n$7 = _ref.$val; - $r = p.declList(n$7); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 19; continue; - /* } else if ($assertType(_ref, ptrType$12, true)[1]) { */ case 17: - n$8 = _ref.$val; - $r = p.file(n$8); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 19; continue; - /* } else { */ case 18: - n$9 = _ref; - /* goto unsupported */ $s = 6; continue; - /* } */ case 19: - $s = -1; return p.sourcePosErr; - /* unsupported: */ case 6: - _r$2 = fmt.Errorf("go/printer: unsupported node type %T", new sliceType$1([node])); /* */ $s = 27; case 27: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 28; case 28: return $24r; - /* */ } return; } var $f = {$blk: printNode, $c: true, $r, $24r, _i, _r, _r$1, _r$2, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, beg, cnode, com, comments, doc, e, end, i, j, n, n$1, n$2, n$3, n$4, n$5, n$6, n$7, n$8, n$9, node, ok, ok$1, ok$2, ok$3, ok$4, p, s, $s};return $f; - }; - $ptrType(trimmer).prototype.resetSpace = function resetSpace() { - var p; - p = this; - p.state = 0; - p.space = $subslice(p.space, 0, 0); - }; - $ptrType(trimmer).prototype.Write = function Write(data) { - var {_1, _2, _3, _4, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, b, data, err, m, n, p, $s, $r, $c} = $restore(this, {data}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - n = 0; - err = $ifaceNil; - p = this; - m = 0; - b = 0; - _ref = data; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - n = _i; - b = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (b === 11) { - b = 9; - } - _1 = p.state; - /* */ if (_1 === (0)) { $s = 4; continue; } - /* */ if (_1 === (1)) { $s = 5; continue; } - /* */ if (_1 === (2)) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (_1 === (0)) { */ case 4: - _2 = b; - /* */ if ((_2 === (9)) || (_2 === (32))) { $s = 10; continue; } - /* */ if ((_2 === (10)) || (_2 === (12))) { $s = 11; continue; } - /* */ if (_2 === (255)) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if ((_2 === (9)) || (_2 === (32))) { */ case 10: - p.space = $append(p.space, b); - $s = 14; continue; - /* } else if ((_2 === (10)) || (_2 === (12))) { */ case 11: - p.resetSpace(); - _r = p.output.Write(aNewline); /* */ $s = 15; case 15: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - err = _tuple[1]; - $s = 14; continue; - /* } else if (_2 === (255)) { */ case 12: - _r$1 = p.output.Write(p.space); /* */ $s = 16; case 16: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$1 = _r$1; - err = _tuple$1[1]; - p.state = 1; - m = n + 1 >> 0; - $s = 14; continue; - /* } else { */ case 13: - _r$2 = p.output.Write(p.space); /* */ $s = 17; case 17: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple$2 = _r$2; - err = _tuple$2[1]; - p.state = 2; - m = n; - /* } */ case 14: - case 9: - $s = 8; continue; - /* } else if (_1 === (1)) { */ case 5: - /* */ if (b === 255) { $s = 18; continue; } - /* */ $s = 19; continue; - /* if (b === 255) { */ case 18: - _r$3 = p.output.Write($subslice(data, m, n)); /* */ $s = 20; case 20: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple$3 = _r$3; - err = _tuple$3[1]; - p.resetSpace(); - /* } */ case 19: - $s = 8; continue; - /* } else if (_1 === (2)) { */ case 6: - _3 = b; - /* */ if ((_3 === (9)) || (_3 === (32))) { $s = 22; continue; } - /* */ if ((_3 === (10)) || (_3 === (12))) { $s = 23; continue; } - /* */ if (_3 === (255)) { $s = 24; continue; } - /* */ $s = 25; continue; - /* if ((_3 === (9)) || (_3 === (32))) { */ case 22: - _r$4 = p.output.Write($subslice(data, m, n)); /* */ $s = 26; case 26: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _tuple$4 = _r$4; - err = _tuple$4[1]; - p.resetSpace(); - p.space = $append(p.space, b); - $s = 25; continue; - /* } else if ((_3 === (10)) || (_3 === (12))) { */ case 23: - _r$5 = p.output.Write($subslice(data, m, n)); /* */ $s = 27; case 27: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _tuple$5 = _r$5; - err = _tuple$5[1]; - p.resetSpace(); - /* */ if ($interfaceIsEqual(err, $ifaceNil)) { $s = 28; continue; } - /* */ $s = 29; continue; - /* if ($interfaceIsEqual(err, $ifaceNil)) { */ case 28: - _r$6 = p.output.Write(aNewline); /* */ $s = 30; case 30: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _tuple$6 = _r$6; - err = _tuple$6[1]; - /* } */ case 29: - $s = 25; continue; - /* } else if (_3 === (255)) { */ case 24: - _r$7 = p.output.Write($subslice(data, m, n)); /* */ $s = 31; case 31: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _tuple$7 = _r$7; - err = _tuple$7[1]; - p.state = 1; - m = n + 1 >> 0; - /* } */ case 25: - case 21: - $s = 8; continue; - /* } else { */ case 7: - $panic(new $String("unreachable")); - /* } */ case 8: - case 3: - if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [n, err]; - } - _i++; - $s = 1; continue; - case 2: - n = data.$length; - _4 = p.state; - /* */ if ((_4 === (1)) || (_4 === (2))) { $s = 33; continue; } - /* */ $s = 34; continue; - /* if ((_4 === (1)) || (_4 === (2))) { */ case 33: - _r$8 = p.output.Write($subslice(data, m, n)); /* */ $s = 35; case 35: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _tuple$8 = _r$8; - err = _tuple$8[1]; - p.resetSpace(); - /* } */ case 34: - case 32: - $s = -1; return [n, err]; - /* */ } return; } var $f = {$blk: Write, $c: true, $r, _1, _2, _3, _4, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, b, data, err, m, n, p, $s};return $f; - }; - newPrinter = function newPrinter$1(cfg, fset, nodeSizes) { - var {_r, cfg, fset, nodeSizes, p, $s, $r, $c} = $restore(this, {cfg, fset, nodeSizes}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = printerPool.Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - p = $assertType(_r, ptrType$15); - printer.copy(p, new printer.ptr($clone(cfg, Config), fset, $subslice(p.output, 0, 0), 0, 0, 0, false, false, 0, 0, $subslice(p.wsbuf, 0, 0), sliceType$3.nil, sliceType$3.nil, $clone(new token.Position.ptr("", 0, 1, 1), token.Position), $clone(new token.Position.ptr("", 0, 1, 1), token.Position), new token.Position.ptr("", 0, 0, 0), ptrType$1.nil, $ifaceNil, sliceType$4.nil, false, new commentInfo.ptr(0, ptrType$2.nil, 0, false), nodeSizes, -1, 0)); - $s = -1; return p; - /* */ } return; } var $f = {$blk: newPrinter$1, $c: true, $r, _r, cfg, fset, nodeSizes, p, $s};return $f; - }; - $ptrType(printer).prototype.free = function free() { - var p; - p = this; - if (p.output.$capacity > 65536) { - return; - } - printerPool.Put(p); - }; - $ptrType(Config).prototype.fprint = function fprint(output, fset, node, nodeSizes) { - var {_r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, cfg, err, fset, minwidth, node, nodeSizes, output, p, padchar, tw, twmode, $s, $deferred, $r, $c} = $restore(this, {output, fset, node, nodeSizes}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - err = $ifaceNil; - cfg = this; - _r = newPrinter(cfg, fset, nodeSizes); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - p = _r; - $deferred.push([$methodVal(p, "free"), []]); - _r$1 = p.printNode(node); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - err = _r$1; - if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return err; - } - p.impliedSemi = false; - _r$2 = p.flush($clone(new token.Position.ptr("", 1073741824, 1073741824, 0), token.Position), 1); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - $r = p.fixGoBuildLines(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - output = new trimmer.ptr(output, 0, sliceType.nil); - if (((cfg.Mode & 1) >>> 0) === 0) { - minwidth = cfg.Tabwidth; - padchar = 9; - if (!((((cfg.Mode & 4) >>> 0) === 0))) { - padchar = 32; - } - twmode = 8; - if (!((((cfg.Mode & 2) >>> 0) === 0))) { - minwidth = 0; - twmode = (twmode | (16)) >>> 0; - } - output = tabwriter.NewWriter(output, minwidth, cfg.Tabwidth, 1, padchar, twmode); - } - _r$3 = output.Write(p.output); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple = _r$3; - err = _tuple[1]; - if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return err; - } - _tuple$1 = $assertType(output, ptrType$16, true); - tw = _tuple$1[0]; - /* */ if (!(tw === ptrType$16.nil)) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (!(tw === ptrType$16.nil)) { */ case 6: - _r$4 = tw.Flush(); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - err = _r$4; - /* } */ case 7: - $s = -1; return err; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return err; } if($curGoroutine.asleep) { var $f = {$blk: fprint, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, cfg, err, fset, minwidth, node, nodeSizes, output, p, padchar, tw, twmode, $s, $deferred};return $f; } } - }; - $ptrType(Config).prototype.Fprint = function Fprint$1(output, fset, node) { - var {$24r, _r, cfg, fset, node, output, $s, $r, $c} = $restore(this, {output, fset, node}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - cfg = this; - _r = cfg.fprint(output, fset, node, new $global.Map()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Fprint$1, $c: true, $r, $24r, _r, cfg, fset, node, output, $s};return $f; - }; - $ptrType(printer).prototype.linebreak = function linebreak(line, min, ws, newSection) { - var {line, min, n, nbreaks, newSection, p, ws, $s, $r, $c} = $restore(this, {line, min, ws, newSection}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - nbreaks = 0; - p = this; - n = nlimit(line - p.pos.Line >> 0); - if (n < min) { - n = min; - } - /* */ if (n > 0) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (n > 0) { */ case 1: - $r = p.print(new sliceType$1([new whiteSpace(ws)])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (newSection) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (newSection) { */ case 4: - $r = p.print(new sliceType$1([new whiteSpace(12)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - n = n - (1) >> 0; - nbreaks = 2; - /* } */ case 5: - nbreaks = nbreaks + (n) >> 0; - /* while (true) { */ case 7: - /* if (!(n > 0)) { break; } */ if(!(n > 0)) { $s = 8; continue; } - $r = p.print(new sliceType$1([new whiteSpace(10)])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - n = n - (1) >> 0; - $s = 7; continue; - case 8: - /* } */ case 2: - $s = -1; return nbreaks; - /* */ } return; } var $f = {$blk: linebreak, $c: true, $r, line, min, n, nbreaks, newSection, p, ws, $s};return $f; - }; - $ptrType(printer).prototype.setComment = function setComment(g) { - var {_r, _r$1, g, p, x, x$1, $s, $r, $c} = $restore(this, {g}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - if (g === ptrType$2.nil || !p.useNodeComments) { - $s = -1; return; - } - /* */ if (p.comments === sliceType$4.nil) { $s = 1; continue; } - /* */ if (p.commentInfo.cindex < p.comments.$length) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (p.comments === sliceType$4.nil) { */ case 1: - p.comments = $makeSlice(sliceType$4, 1); - $s = 3; continue; - /* } else if (p.commentInfo.cindex < p.comments.$length) { */ case 2: - _r = p.posFor((x = g.List, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).Pos()); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = p.flush($clone(_r, token.Position), 0); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - p.comments = $subslice(p.comments, 0, 1); - $r = p.internalError(new sliceType$1([new $String("setComment found pending comments")])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 3: - (x$1 = p.comments, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0] = g)); - p.commentInfo.cindex = 0; - /* */ if (p.commentInfo.commentOffset === 1073741824) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (p.commentInfo.commentOffset === 1073741824) { */ case 7: - $r = p.nextComment(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 8: - $s = -1; return; - /* */ } return; } var $f = {$blk: setComment, $c: true, $r, _r, _r$1, g, p, x, x$1, $s};return $f; - }; - $ptrType(printer).prototype.identList = function identList(list, indent) { - var {_i, _ref, i, indent, list, mode, p, x, xlist, $s, $r, $c} = $restore(this, {list, indent}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - xlist = $makeSlice(sliceType$7, list.$length); - _ref = list; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - ((i < 0 || i >= xlist.$length) ? ($throwRuntimeError("index out of range"), undefined) : xlist.$array[xlist.$offset + i] = x); - _i++; - } - mode = 0; - if (!indent) { - mode = 2; - } - $r = p.exprList(0, xlist, 1, mode, 0, false); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: identList, $c: true, $r, _i, _ref, i, indent, list, mode, p, x, xlist, $s};return $f; - }; - $ptrType(printer).prototype.exprList = function exprList(prev0, list, depth, mode, next0, isIncomplete) { - var {_i, _i$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _v, count, depth, endLine, geomean, i, i$1, isIncomplete, isPair, line, list, lnsum, mode, nbreaks, needsBlank, needsLinebreak, next, next$1, next0, p, pair, prev, prev$1, prev0, prevBreak, prevLine, prevSize, ratio, size, useFF, ws, x, x$1, x$2, $s, $r, $c} = $restore(this, {prev0, list, depth, mode, next0, isIncomplete}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - /* */ if (list.$length === 0) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (list.$length === 0) { */ case 1: - /* */ if (isIncomplete) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (isIncomplete) { */ case 3: - _r = p.posFor(prev0); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - prev = $clone(_r, token.Position); - _r$1 = p.posFor(next0); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - next = $clone(_r$1, token.Position); - /* */ if (prev.IsValid() && (prev.Line === next.Line)) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (prev.IsValid() && (prev.Line === next.Line)) { */ case 7: - $r = p.print(new sliceType$1([new $String("/* contains filtered or unexported fields */")])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 9; continue; - /* } else { */ case 8: - $r = p.print(new sliceType$1([new whiteSpace(10)])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new whiteSpace(62), new $String("// contains filtered or unexported fields"), new whiteSpace(60), new whiteSpace(10)])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 9: - /* } */ case 4: - $s = -1; return; - /* } */ case 2: - _r$2 = p.posFor(prev0); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - prev$1 = $clone(_r$2, token.Position); - _r$3 = p.posFor(next0); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - next$1 = $clone(_r$3, token.Position); - _r$4 = (0 >= list.$length ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + 0]).Pos(); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$5 = p.lineFor(_r$4); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - line = _r$5; - _r$6 = (x = list.$length - 1 >> 0, ((x < 0 || x >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + x])).End(); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _r$7 = p.lineFor(_r$6); /* */ $s = 18; case 18: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - endLine = _r$7; - /* */ if (prev$1.IsValid() && (prev$1.Line === line) && (line === endLine)) { $s = 19; continue; } - /* */ $s = 20; continue; - /* if (prev$1.IsValid() && (prev$1.Line === line) && (line === endLine)) { */ case 19: - _ref = list; - _i = 0; - /* while (true) { */ case 21: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 22; continue; } - i = _i; - x$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - /* */ if (i > 0) { $s = 23; continue; } - /* */ $s = 24; continue; - /* if (i > 0) { */ case 23: - _r$8 = x$1.Pos(); /* */ $s = 25; case 25: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - $r = p.setPos(_r$8); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(52), new whiteSpace(32)])); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 24: - $r = p.expr0(x$1, depth); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 21; continue; - case 22: - /* */ if (isIncomplete) { $s = 29; continue; } - /* */ $s = 30; continue; - /* if (isIncomplete) { */ case 29: - $r = p.print(new sliceType$1([new token.Token(52), new whiteSpace(32), new $String("/* contains filtered or unexported fields */")])); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 30: - $s = -1; return; - /* } */ case 20: - ws = 0; - if (((mode & 2) >>> 0) === 0) { - ws = 62; - } - prevBreak = -1; - if (!(prev$1.IsValid() && prev$1.Line < line)) { _v = false; $s = 34; continue s; } - _r$9 = p.linebreak(line, 0, ws, true); /* */ $s = 35; case 35: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _v = _r$9 > 0; case 34: - /* */ if (_v) { $s = 32; continue; } - /* */ $s = 33; continue; - /* if (_v) { */ case 32: - ws = 0; - prevBreak = 0; - /* } */ case 33: - size = 0; - lnsum = 0; - count = 0; - prevLine = prev$1.Line; - _ref$1 = list; - _i$1 = 0; - /* while (true) { */ case 36: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 37; continue; } - i$1 = _i$1; - x$2 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - _r$10 = x$2.Pos(); /* */ $s = 38; case 38: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _r$11 = p.lineFor(_r$10); /* */ $s = 39; case 39: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - line = _r$11; - useFF = true; - prevSize = size; - _r$12 = p.nodeSize(x$2, 1000000); /* */ $s = 40; case 40: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - size = _r$12; - _tuple = $assertType(x$2, ptrType$17, true); - pair = _tuple[0]; - isPair = _tuple[1]; - /* */ if (size <= 1000000 && prev$1.IsValid() && next$1.IsValid()) { $s = 41; continue; } - /* */ $s = 42; continue; - /* if (size <= 1000000 && prev$1.IsValid() && next$1.IsValid()) { */ case 41: - /* */ if (isPair) { $s = 44; continue; } - /* */ $s = 45; continue; - /* if (isPair) { */ case 44: - _r$13 = p.nodeSize(pair.Key, 1000000); /* */ $s = 46; case 46: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - size = _r$13; - /* } */ case 45: - $s = 43; continue; - /* } else { */ case 42: - size = 0; - /* } */ case 43: - if (prevSize > 0 && size > 0) { - if ((count === 0) || prevSize <= 40 && size <= 40) { - useFF = false; - } else { - geomean = math.Exp(lnsum / (count)); - ratio = (size) / geomean; - useFF = 2.5 * ratio <= 1 || 2.5 <= ratio; - } - } - needsLinebreak = 0 < prevLine && prevLine < line; - /* */ if (i$1 > 0) { $s = 47; continue; } - /* */ $s = 48; continue; - /* if (i$1 > 0) { */ case 47: - /* */ if (!needsLinebreak) { $s = 49; continue; } - /* */ $s = 50; continue; - /* if (!needsLinebreak) { */ case 49: - _r$14 = x$2.Pos(); /* */ $s = 51; case 51: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - $r = p.setPos(_r$14); /* */ $s = 52; case 52: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 50: - $r = p.print(new sliceType$1([new token.Token(52)])); /* */ $s = 53; case 53: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - needsBlank = true; - /* */ if (needsLinebreak) { $s = 54; continue; } - /* */ $s = 55; continue; - /* if (needsLinebreak) { */ case 54: - _r$15 = p.linebreak(line, 0, ws, useFF || (prevBreak + 1 >> 0) < i$1); /* */ $s = 56; case 56: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - nbreaks = _r$15; - if (nbreaks > 0) { - ws = 0; - prevBreak = i$1; - needsBlank = false; - } - if (nbreaks > 1) { - lnsum = 0; - count = 0; - } - /* } */ case 55: - /* */ if (needsBlank) { $s = 57; continue; } - /* */ $s = 58; continue; - /* if (needsBlank) { */ case 57: - $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 59; case 59: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 58: - /* } */ case 48: - /* */ if (list.$length > 1 && isPair && size > 0 && needsLinebreak) { $s = 60; continue; } - /* */ $s = 61; continue; - /* if (list.$length > 1 && isPair && size > 0 && needsLinebreak) { */ case 60: - $r = p.expr(pair.Key); /* */ $s = 63; case 63: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.setPos(pair.Colon); /* */ $s = 64; case 64: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(58), new whiteSpace(11)])); /* */ $s = 65; case 65: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.expr(pair.Value); /* */ $s = 66; case 66: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 62; continue; - /* } else { */ case 61: - $r = p.expr0(x$2, depth); /* */ $s = 67; case 67: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 62: - if (size > 0) { - lnsum = lnsum + (math.Log((size))); - count = count + (1) >> 0; - } - prevLine = line; - _i$1++; - $s = 36; continue; - case 37: - /* */ if (!((((mode & 1) >>> 0) === 0)) && next$1.IsValid() && p.pos.Line < next$1.Line) { $s = 68; continue; } - /* */ $s = 69; continue; - /* if (!((((mode & 1) >>> 0) === 0)) && next$1.IsValid() && p.pos.Line < next$1.Line) { */ case 68: - $r = p.print(new sliceType$1([new token.Token(52)])); /* */ $s = 70; case 70: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (isIncomplete) { $s = 71; continue; } - /* */ $s = 72; continue; - /* if (isIncomplete) { */ case 71: - $r = p.print(new sliceType$1([new whiteSpace(10)])); /* */ $s = 73; case 73: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new $String("// contains filtered or unexported fields")])); /* */ $s = 74; case 74: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 72: - /* */ if ((ws === 0) && (((mode & 2) >>> 0) === 0)) { $s = 75; continue; } - /* */ $s = 76; continue; - /* if ((ws === 0) && (((mode & 2) >>> 0) === 0)) { */ case 75: - $r = p.print(new sliceType$1([new whiteSpace(60)])); /* */ $s = 77; case 77: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 76: - $r = p.print(new sliceType$1([new whiteSpace(12)])); /* */ $s = 78; case 78: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 69: - /* */ if (isIncomplete) { $s = 79; continue; } - /* */ $s = 80; continue; - /* if (isIncomplete) { */ case 79: - $r = p.print(new sliceType$1([new token.Token(52), new whiteSpace(10)])); /* */ $s = 81; case 81: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new $String("// contains filtered or unexported fields"), new whiteSpace(10)])); /* */ $s = 82; case 82: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 80: - /* */ if ((ws === 0) && (((mode & 2) >>> 0) === 0)) { $s = 83; continue; } - /* */ $s = 84; continue; - /* if ((ws === 0) && (((mode & 2) >>> 0) === 0)) { */ case 83: - $r = p.print(new sliceType$1([new whiteSpace(60)])); /* */ $s = 85; case 85: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 84: - $s = -1; return; - /* */ } return; } var $f = {$blk: exprList, $c: true, $r, _i, _i$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _v, count, depth, endLine, geomean, i, i$1, isIncomplete, isPair, line, list, lnsum, mode, nbreaks, needsBlank, needsLinebreak, next, next$1, next0, p, pair, prev, prev$1, prev0, prevBreak, prevLine, prevSize, ratio, size, useFF, ws, x, x$1, x$2, $s};return $f; - }; - $ptrType(printer).prototype.parameters = function parameters(fields, mode) { - var {_i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _v, closeTok, closing, fields, i, mode, needsLinebreak, openTok, p, par, parLineBeg, parLineEnd, prevLine, ws, x, $s, $r, $c} = $restore(this, {fields, mode}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - _tmp = 49; - _tmp$1 = 54; - openTok = _tmp; - closeTok = _tmp$1; - if (!((mode === 0))) { - _tmp$2 = 50; - _tmp$3 = 55; - openTok = _tmp$2; - closeTok = _tmp$3; - } - $r = p.setPos(fields.Opening); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(openTok)])); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (fields.List.$length > 0) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (fields.List.$length > 0) { */ case 3: - _r = p.lineFor(fields.Opening); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - prevLine = _r; - ws = 62; - _ref = fields.List; - _i = 0; - /* while (true) { */ case 6: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 7; continue; } - i = _i; - par = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$1 = par.Pos(); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = p.lineFor(_r$1); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - parLineBeg = _r$2; - _r$3 = par.End(); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$4 = p.lineFor(_r$3); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - parLineEnd = _r$4; - needsLinebreak = 0 < prevLine && prevLine < parLineBeg; - /* */ if (i > 0) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (i > 0) { */ case 12: - /* */ if (!needsLinebreak) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (!needsLinebreak) { */ case 14: - _r$5 = par.Pos(); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - $r = p.setPos(_r$5); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 15: - $r = p.print(new sliceType$1([new token.Token(52)])); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 13: - if (!(needsLinebreak)) { _v = false; $s = 22; continue s; } - _r$6 = p.linebreak(parLineBeg, 0, ws, true); /* */ $s = 23; case 23: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _v = _r$6 > 0; case 22: - /* */ if (_v) { $s = 19; continue; } - /* */ if (i > 0) { $s = 20; continue; } - /* */ $s = 21; continue; - /* if (_v) { */ case 19: - ws = 0; - $s = 21; continue; - /* } else if (i > 0) { */ case 20: - $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 21: - /* */ if (par.Names.$length > 0) { $s = 25; continue; } - /* */ $s = 26; continue; - /* if (par.Names.$length > 0) { */ case 25: - $r = p.identList(par.Names, ws === 62); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 26: - $r = p.expr(stripParensAlways(par.Type)); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - prevLine = parLineEnd; - _i++; - $s = 6; continue; - case 7: - _r$7 = p.lineFor(fields.Closing); /* */ $s = 30; case 30: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - closing = _r$7; - /* */ if (0 < prevLine && prevLine < closing) { $s = 31; continue; } - /* */ if ((mode === 2) && (fields.NumFields() === 1) && combinesWithName((x = fields.List, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).Type)) { $s = 32; continue; } - /* */ $s = 33; continue; - /* if (0 < prevLine && prevLine < closing) { */ case 31: - $r = p.print(new sliceType$1([new token.Token(52)])); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$8 = p.linebreak(closing, 0, 0, true); /* */ $s = 35; case 35: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _r$8; - $s = 33; continue; - /* } else if ((mode === 2) && (fields.NumFields() === 1) && combinesWithName((x = fields.List, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).Type)) { */ case 32: - $r = p.print(new sliceType$1([new token.Token(52)])); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 33: - /* */ if (ws === 0) { $s = 37; continue; } - /* */ $s = 38; continue; - /* if (ws === 0) { */ case 37: - $r = p.print(new sliceType$1([new whiteSpace(60)])); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 38: - /* } */ case 4: - $r = p.setPos(fields.Closing); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(closeTok)])); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: parameters, $c: true, $r, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _v, closeTok, closing, fields, i, mode, needsLinebreak, openTok, p, par, parLineBeg, parLineEnd, prevLine, ws, x, $s};return $f; - }; - combinesWithName = function combinesWithName$1(x) { - var _ref, x, x$1, x$2, x$3; - _ref = x; - if ($assertType(_ref, ptrType$18, true)[1]) { - x$1 = _ref.$val; - return !isTypeElem(x$1.X); - } else if ($assertType(_ref, ptrType$19, true)[1]) { - x$2 = _ref.$val; - return combinesWithName(x$2.X) && !isTypeElem(x$2.Y); - } else if ($assertType(_ref, ptrType$20, true)[1]) { - x$3 = _ref.$val; - $panic(new $String("unexpected parenthesized expression")); - } - return false; - }; - isTypeElem = function isTypeElem$1(x) { - var _ref, x, x$1, x$2, x$3, x$4; - _ref = x; - if ($assertType(_ref, ptrType$21, true)[1] || $assertType(_ref, ptrType$22, true)[1] || $assertType(_ref, ptrType$23, true)[1] || $assertType(_ref, ptrType$24, true)[1] || $assertType(_ref, ptrType$25, true)[1] || $assertType(_ref, ptrType$26, true)[1]) { - x$1 = _ref; - return true; - } else if ($assertType(_ref, ptrType$27, true)[1]) { - x$2 = _ref.$val; - return x$2.Op === 88; - } else if ($assertType(_ref, ptrType$19, true)[1]) { - x$3 = _ref.$val; - return isTypeElem(x$3.X) || isTypeElem(x$3.Y); - } else if ($assertType(_ref, ptrType$20, true)[1]) { - x$4 = _ref.$val; - return isTypeElem(x$4.X); - } - return false; - }; - $ptrType(printer).prototype.signature = function signature(sig) { - var {n, p, res, sig, x, x$1, $s, $r, $c} = $restore(this, {sig}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - /* */ if (!(sig.TypeParams === ptrType$28.nil)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(sig.TypeParams === ptrType$28.nil)) { */ case 1: - $r = p.parameters(sig.TypeParams, 1); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - /* */ if (!(sig.Params === ptrType$28.nil)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (!(sig.Params === ptrType$28.nil)) { */ case 4: - $r = p.parameters(sig.Params, 0); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 6; continue; - /* } else { */ case 5: - $r = p.print(new sliceType$1([new token.Token(49), new token.Token(54)])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 6: - res = sig.Results; - n = res.NumFields(); - /* */ if (n > 0) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (n > 0) { */ case 9: - $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if ((n === 1) && (x = res.List, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).Names === sliceType$8.nil) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if ((n === 1) && (x = res.List, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).Names === sliceType$8.nil) { */ case 12: - $r = p.expr(stripParensAlways((x$1 = res.List, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])).Type)); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 13: - $r = p.parameters(res, 0); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 10: - $s = -1; return; - /* */ } return; } var $f = {$blk: signature, $c: true, $r, n, p, res, sig, x, x$1, $s};return $f; - }; - identListSize = function identListSize$1(list, maxSize) { - var _i, _ref, i, list, maxSize, size, x; - size = 0; - _ref = list; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (i > 0) { - size = size + (2) >> 0; - } - size = size + (utf8.RuneCountInString(x.Name)) >> 0; - if (size >= maxSize) { - break; - } - _i++; - } - return size; - }; - $ptrType(printer).prototype.isOneLineFieldList = function isOneLineFieldList(list) { - var {_r, f, list, namesSize, p, typeSize, $s, $r, $c} = $restore(this, {list}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - if (!((list.$length === 1))) { - $s = -1; return false; - } - f = (0 >= list.$length ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + 0]); - if (!(f.Tag === ptrType$5.nil) || !(f.Comment === ptrType$2.nil)) { - $s = -1; return false; - } - namesSize = identListSize(f.Names, 30); - if (namesSize > 0) { - namesSize = 1; - } - _r = p.nodeSize(f.Type, 30); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - typeSize = _r; - $s = -1; return (namesSize + typeSize >> 0) <= 30; - /* */ } return; } var $f = {$blk: isOneLineFieldList, $c: true, $r, _r, f, list, namesSize, p, typeSize, $s};return $f; - }; - $ptrType(printer).prototype.setLineComment = function setLineComment(text) { - var {p, text, $s, $r, $c} = $restore(this, {text}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - $r = p.setComment(new ast.CommentGroup.ptr(new sliceType$9([new ast.Comment.ptr(0, text)]))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: setLineComment, $c: true, $r, p, text, $s};return $f; - }; - $ptrType(printer).prototype.fieldList = function fieldList(fields, isStruct, isIncomplete) { - var {_i, _i$1, _i$2, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _v, _v$1, extraTabs, f, f$1, f$2, fields, hasComments, i, i$1, i$2, isIncomplete, isStruct, lbrace, line, line$1, list, min, name, name$1, p, prev, rbrace, sep, srcIsOneLine, x, x$1, x$2, $s, $r, $c} = $restore(this, {fields, isStruct, isIncomplete}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - line = [line]; - line$1 = [line$1]; - p = this; - lbrace = fields.Opening; - list = fields.List; - rbrace = fields.Closing; - if (isIncomplete) { _v = true; $s = 1; continue s; } - _r = p.posFor(rbrace); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = p.commentBefore($clone(_r, token.Position)); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = _r$1; case 1: - hasComments = _v; - if (!(new token.Pos(lbrace).IsValid() && new token.Pos(rbrace).IsValid())) { _v$1 = false; $s = 4; continue s; } - _r$2 = p.lineFor(lbrace); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = p.lineFor(rbrace); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _v$1 = _r$2 === _r$3; case 4: - srcIsOneLine = _v$1; - /* */ if (!hasComments && srcIsOneLine) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (!hasComments && srcIsOneLine) { */ case 7: - /* */ if (list.$length === 0) { $s = 9; continue; } - _r$4 = p.isOneLineFieldList(list); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if (_r$4) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (list.$length === 0) { */ case 9: - $r = p.setPos(lbrace); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(51)])); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.setPos(rbrace); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(56)])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } else if (_r$4) { */ case 10: - $r = p.setPos(lbrace); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(51), new whiteSpace(32)])); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - f = (0 >= list.$length ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + 0]); - /* */ if (isStruct) { $s = 19; continue; } - /* */ $s = 20; continue; - /* if (isStruct) { */ case 19: - _ref = f.Names; - _i = 0; - /* while (true) { */ case 22: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 23; continue; } - i = _i; - x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - /* */ if (i > 0) { $s = 24; continue; } - /* */ $s = 25; continue; - /* if (i > 0) { */ case 24: - $r = p.print(new sliceType$1([new token.Token(52), new whiteSpace(32)])); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 25: - $r = p.expr(x); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 22; continue; - case 23: - /* */ if (f.Names.$length > 0) { $s = 28; continue; } - /* */ $s = 29; continue; - /* if (f.Names.$length > 0) { */ case 28: - $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 29: - $r = p.expr(f.Type); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 21; continue; - /* } else { */ case 20: - /* */ if (f.Names.$length > 0) { $s = 32; continue; } - /* */ $s = 33; continue; - /* if (f.Names.$length > 0) { */ case 32: - name = (x$1 = f.Names, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])); - $r = p.expr(name); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.signature($assertType(f.Type, ptrType$23)); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 34; continue; - /* } else { */ case 33: - $r = p.expr(f.Type); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 34: - /* } */ case 21: - $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.setPos(rbrace); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(56)])); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 11: - /* } */ case 8: - $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.setPos(lbrace); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(51), new whiteSpace(62)])); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (hasComments || list.$length > 0) { $s = 44; continue; } - /* */ $s = 45; continue; - /* if (hasComments || list.$length > 0) { */ case 44: - $r = p.print(new sliceType$1([new whiteSpace(12)])); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 45: - /* */ if (isStruct) { $s = 47; continue; } - /* */ $s = 48; continue; - /* if (isStruct) { */ case 47: - sep = 11; - if (list.$length === 1) { - sep = 32; - } - line[0] = 0; - _ref$1 = list; - _i$1 = 0; - /* while (true) { */ case 50: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 51; continue; } - i$1 = _i$1; - f$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - /* */ if (i$1 > 0) { $s = 52; continue; } - /* */ $s = 53; continue; - /* if (i$1 > 0) { */ case 52: - _r$5 = f$1.Pos(); /* */ $s = 54; case 54: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$6 = p.lineFor(_r$5); /* */ $s = 55; case 55: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _r$7 = p.linebreak(_r$6, 1, 0, p.linesFrom(line[0]) > 0); /* */ $s = 56; case 56: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _r$7; - /* } */ case 53: - extraTabs = 0; - $r = p.setComment(f$1.Doc); /* */ $s = 57; case 57: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - p.recordLine((line.$ptr || (line.$ptr = new ptrType$1(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, line)))); - /* */ if (f$1.Names.$length > 0) { $s = 58; continue; } - /* */ $s = 59; continue; - /* if (f$1.Names.$length > 0) { */ case 58: - $r = p.identList(f$1.Names, false); /* */ $s = 61; case 61: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new whiteSpace(sep)])); /* */ $s = 62; case 62: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.expr(f$1.Type); /* */ $s = 63; case 63: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - extraTabs = 1; - $s = 60; continue; - /* } else { */ case 59: - $r = p.expr(f$1.Type); /* */ $s = 64; case 64: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - extraTabs = 2; - /* } */ case 60: - /* */ if (!(f$1.Tag === ptrType$5.nil)) { $s = 65; continue; } - /* */ $s = 66; continue; - /* if (!(f$1.Tag === ptrType$5.nil)) { */ case 65: - /* */ if (f$1.Names.$length > 0 && (sep === 11)) { $s = 67; continue; } - /* */ $s = 68; continue; - /* if (f$1.Names.$length > 0 && (sep === 11)) { */ case 67: - $r = p.print(new sliceType$1([new whiteSpace(sep)])); /* */ $s = 69; case 69: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 68: - $r = p.print(new sliceType$1([new whiteSpace(sep)])); /* */ $s = 70; case 70: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.expr(f$1.Tag); /* */ $s = 71; case 71: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - extraTabs = 0; - /* } */ case 66: - /* */ if (!(f$1.Comment === ptrType$2.nil)) { $s = 72; continue; } - /* */ $s = 73; continue; - /* if (!(f$1.Comment === ptrType$2.nil)) { */ case 72: - /* while (true) { */ case 74: - /* if (!(extraTabs > 0)) { break; } */ if(!(extraTabs > 0)) { $s = 75; continue; } - $r = p.print(new sliceType$1([new whiteSpace(sep)])); /* */ $s = 76; case 76: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - extraTabs = extraTabs - (1) >> 0; - $s = 74; continue; - case 75: - $r = p.setComment(f$1.Comment); /* */ $s = 77; case 77: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 73: - _i$1++; - $s = 50; continue; - case 51: - /* */ if (isIncomplete) { $s = 78; continue; } - /* */ $s = 79; continue; - /* if (isIncomplete) { */ case 78: - /* */ if (list.$length > 0) { $s = 80; continue; } - /* */ $s = 81; continue; - /* if (list.$length > 0) { */ case 80: - $r = p.print(new sliceType$1([new whiteSpace(12)])); /* */ $s = 82; case 82: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 81: - _r$8 = p.posFor(rbrace); /* */ $s = 83; case 83: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _r$9 = p.flush($clone(_r$8, token.Position), 56); /* */ $s = 84; case 84: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _r$9; - $r = p.setLineComment("// contains filtered or unexported fields"); /* */ $s = 85; case 85: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 79: - $s = 49; continue; - /* } else { */ case 48: - line$1[0] = 0; - prev = ptrType$4.nil; - _ref$2 = list; - _i$2 = 0; - /* while (true) { */ case 86: - /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 87; continue; } - i$2 = _i$2; - f$2 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); - name$1 = ptrType$4.nil; - if (f$2.Names.$length > 0) { - name$1 = (x$2 = f$2.Names, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])); - } - /* */ if (i$2 > 0) { $s = 88; continue; } - /* */ $s = 89; continue; - /* if (i$2 > 0) { */ case 88: - min = 1; - if (!(prev === ptrType$4.nil) && name$1 === prev) { - min = 0; - } - _r$10 = f$2.Pos(); /* */ $s = 90; case 90: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _r$11 = p.lineFor(_r$10); /* */ $s = 91; case 91: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _r$12 = p.linebreak(_r$11, min, 0, p.linesFrom(line$1[0]) > 0); /* */ $s = 92; case 92: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _r$12; - /* } */ case 89: - $r = p.setComment(f$2.Doc); /* */ $s = 93; case 93: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - p.recordLine((line$1.$ptr || (line$1.$ptr = new ptrType$1(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, line$1)))); - /* */ if (!(name$1 === ptrType$4.nil)) { $s = 94; continue; } - /* */ $s = 95; continue; - /* if (!(name$1 === ptrType$4.nil)) { */ case 94: - $r = p.expr(name$1); /* */ $s = 97; case 97: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.signature($assertType(f$2.Type, ptrType$23)); /* */ $s = 98; case 98: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - prev = ptrType$4.nil; - $s = 96; continue; - /* } else { */ case 95: - $r = p.expr(f$2.Type); /* */ $s = 99; case 99: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - prev = ptrType$4.nil; - /* } */ case 96: - $r = p.setComment(f$2.Comment); /* */ $s = 100; case 100: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$2++; - $s = 86; continue; - case 87: - /* */ if (isIncomplete) { $s = 101; continue; } - /* */ $s = 102; continue; - /* if (isIncomplete) { */ case 101: - /* */ if (list.$length > 0) { $s = 103; continue; } - /* */ $s = 104; continue; - /* if (list.$length > 0) { */ case 103: - $r = p.print(new sliceType$1([new whiteSpace(12)])); /* */ $s = 105; case 105: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 104: - _r$13 = p.posFor(rbrace); /* */ $s = 106; case 106: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - _r$14 = p.flush($clone(_r$13, token.Position), 56); /* */ $s = 107; case 107: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - _r$14; - $r = p.setLineComment("// contains filtered or unexported methods"); /* */ $s = 108; case 108: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 102: - /* } */ case 49: - $r = p.print(new sliceType$1([new whiteSpace(60), new whiteSpace(12)])); /* */ $s = 109; case 109: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.setPos(rbrace); /* */ $s = 110; case 110: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(56)])); /* */ $s = 111; case 111: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: fieldList, $c: true, $r, _i, _i$1, _i$2, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _v, _v$1, extraTabs, f, f$1, f$2, fields, hasComments, i, i$1, i$2, isIncomplete, isStruct, lbrace, line, line$1, list, min, name, name$1, p, prev, rbrace, sep, srcIsOneLine, x, x$1, x$2, $s};return $f; - }; - walkBinary = function walkBinary$1(e) { - var _1, _2, _ref, _ref$1, _tuple, _tuple$1, e, h4, h4$1, h5, h5$1, has4, has5, l, maxProblem, mp, mp$1, r, r$1, r$2; - has4 = false; - has5 = false; - maxProblem = 0; - _1 = new token.Token(e.Op).Precedence(); - if (_1 === (4)) { - has4 = true; - } else if (_1 === (5)) { - has5 = true; - } - _ref = e.X; - switch (0) { default: if ($assertType(_ref, ptrType$19, true)[1]) { - l = _ref.$val; - if (new token.Token(l.Op).Precedence() < new token.Token(e.Op).Precedence()) { - break; - } - _tuple = walkBinary(l); - h4 = _tuple[0]; - h5 = _tuple[1]; - mp = _tuple[2]; - has4 = has4 || h4; - has5 = has5 || h5; - if (maxProblem < mp) { - maxProblem = mp; - } - } } - _ref$1 = e.Y; - switch (0) { default: if ($assertType(_ref$1, ptrType$19, true)[1]) { - r = _ref$1.$val; - if (new token.Token(r.Op).Precedence() <= new token.Token(e.Op).Precedence()) { - break; - } - _tuple$1 = walkBinary(r); - h4$1 = _tuple$1[0]; - h5$1 = _tuple$1[1]; - mp$1 = _tuple$1[2]; - has4 = has4 || h4$1; - has5 = has5 || h5$1; - if (maxProblem < mp$1) { - maxProblem = mp$1; - } - } else if ($assertType(_ref$1, ptrType$18, true)[1]) { - r$1 = _ref$1.$val; - if (e.Op === 15) { - maxProblem = 5; - } - } else if ($assertType(_ref$1, ptrType$27, true)[1]) { - r$2 = _ref$1.$val; - _2 = new token.Token(e.Op).String() + new token.Token(r$2.Op).String(); - if (_2 === ("/*") || _2 === ("&&") || _2 === ("&^")) { - maxProblem = 5; - } else if (_2 === ("++") || _2 === ("--")) { - if (maxProblem < 4) { - maxProblem = 4; - } - } - } } - return [has4, has5, maxProblem]; - }; - cutoff = function cutoff$1(e, depth) { - var _tuple, depth, e, has4, has5, maxProblem; - _tuple = walkBinary(e); - has4 = _tuple[0]; - has5 = _tuple[1]; - maxProblem = _tuple[2]; - if (maxProblem > 0) { - return maxProblem + 1 >> 0; - } - if (has4 && has5) { - if (depth === 1) { - return 5; - } - return 4; - } - if (depth === 1) { - return 6; - } - return 4; - }; - diffPrec = function diffPrec$1(expr, prec) { - var _tuple, expr, ok, prec, x; - _tuple = $assertType(expr, ptrType$19, true); - x = _tuple[0]; - ok = _tuple[1]; - if (!ok || !((prec === new token.Token(x.Op).Precedence()))) { - return 1; - } - return 0; - }; - reduceDepth = function reduceDepth$1(depth) { - var depth; - depth = depth - (1) >> 0; - if (depth < 1) { - depth = 1; - } - return depth; - }; - $ptrType(printer).prototype.binaryExpr = function binaryExpr(x, prec1, cutoff$2, depth) { - var {_r, _r$1, _r$2, cutoff$2, depth, p, prec, prec1, printBlank, ws, x, xline, yline, $s, $r, $c} = $restore(this, {x, prec1, cutoff$2, depth}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - prec = new token.Token(x.Op).Precedence(); - /* */ if (prec < prec1) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (prec < prec1) { */ case 1: - $r = p.print(new sliceType$1([new token.Token(49)])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.expr0(x, reduceDepth(depth)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(54)])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 2: - printBlank = prec < cutoff$2; - ws = 62; - $r = p.expr1(x.X, prec, depth + diffPrec(x.X, prec) >> 0); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (printBlank) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (printBlank) { */ case 7: - $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 8: - xline = p.pos.Line; - _r = x.Y.Pos(); /* */ $s = 10; case 10: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = p.lineFor(_r); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - yline = _r$1; - $r = p.setPos(x.OpPos); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(x.Op)])); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!((xline === yline)) && xline > 0 && yline > 0) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (!((xline === yline)) && xline > 0 && yline > 0) { */ case 14: - _r$2 = p.linebreak(yline, 1, ws, true); /* */ $s = 18; case 18: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (_r$2 > 0) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (_r$2 > 0) { */ case 16: - ws = 0; - printBlank = false; - /* } */ case 17: - /* } */ case 15: - /* */ if (printBlank) { $s = 19; continue; } - /* */ $s = 20; continue; - /* if (printBlank) { */ case 19: - $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 20: - $r = p.expr1(x.Y, prec + 1 >> 0, depth + 1 >> 0); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (ws === 0) { $s = 23; continue; } - /* */ $s = 24; continue; - /* if (ws === 0) { */ case 23: - $r = p.print(new sliceType$1([new whiteSpace(60)])); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 24: - $s = -1; return; - /* */ } return; } var $f = {$blk: binaryExpr, $c: true, $r, _r, _r$1, _r$2, cutoff$2, depth, p, prec, prec1, printBlank, ws, x, xline, yline, $s};return $f; - }; - isBinary = function isBinary$1(expr) { - var _tuple, expr, ok; - _tuple = $assertType(expr, ptrType$19, true); - ok = _tuple[1]; - return ok; - }; - $ptrType(printer).prototype.expr1 = function expr1(expr, prec1, depth) { - var {_1, _i, _i$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _ref$1, _ref$2, _tuple, _tuple$1, _v, depth, expr, hasBinaries, hasParens, i, indexCount, indices, mode, needsBlanks, ok, p, prec1, startCol, wasIndented, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$25, x$26, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {expr, prec1, depth}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - _r = expr.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $r = p.setPos(_r); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _ref = expr; - /* */ if ($assertType(_ref, ptrType$29, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$19, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$17, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType$18, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref, ptrType$5, true)[1]) { $s = 9; continue; } - /* */ if ($assertType(_ref, ptrType$30, true)[1]) { $s = 10; continue; } - /* */ if ($assertType(_ref, ptrType$20, true)[1]) { $s = 11; continue; } - /* */ if ($assertType(_ref, ptrType$31, true)[1]) { $s = 12; continue; } - /* */ if ($assertType(_ref, ptrType$32, true)[1]) { $s = 13; continue; } - /* */ if ($assertType(_ref, ptrType$33, true)[1]) { $s = 14; continue; } - /* */ if ($assertType(_ref, ptrType$34, true)[1]) { $s = 15; continue; } - /* */ if ($assertType(_ref, ptrType$35, true)[1]) { $s = 16; continue; } - /* */ if ($assertType(_ref, ptrType$36, true)[1]) { $s = 17; continue; } - /* */ if ($assertType(_ref, ptrType$37, true)[1]) { $s = 18; continue; } - /* */ if ($assertType(_ref, ptrType$38, true)[1]) { $s = 19; continue; } - /* */ if ($assertType(_ref, ptrType$21, true)[1]) { $s = 20; continue; } - /* */ if ($assertType(_ref, ptrType$22, true)[1]) { $s = 21; continue; } - /* */ if ($assertType(_ref, ptrType$23, true)[1]) { $s = 22; continue; } - /* */ if ($assertType(_ref, ptrType$24, true)[1]) { $s = 23; continue; } - /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 24; continue; } - /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 25; continue; } - /* */ $s = 26; continue; - /* if ($assertType(_ref, ptrType$29, true)[1]) { */ case 3: - x = _ref.$val; - $r = p.print(new sliceType$1([new $String("BadExpr")])); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$4, true)[1]) { */ case 4: - x$1 = _ref.$val; - $r = p.print(new sliceType$1([x$1])); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$19, true)[1]) { */ case 5: - x$2 = _ref.$val; - /* */ if (depth < 1) { $s = 30; continue; } - /* */ $s = 31; continue; - /* if (depth < 1) { */ case 30: - $r = p.internalError(new sliceType$1([new $String("depth < 1:"), new $Int(depth)])); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - depth = 1; - /* } */ case 31: - $r = p.binaryExpr(x$2, prec1, cutoff(x$2, depth), depth); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$17, true)[1]) { */ case 6: - x$3 = _ref.$val; - $r = p.expr(x$3.Key); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.setPos(x$3.Colon); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(58), new whiteSpace(32)])); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.expr(x$3.Value); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$18, true)[1]) { */ case 7: - x$4 = _ref.$val; - /* */ if (6 < prec1) { $s = 38; continue; } - /* */ $s = 39; continue; - /* if (6 < prec1) { */ case 38: - $r = p.print(new sliceType$1([new token.Token(49)])); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(14)])); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.expr(x$4.X); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(54)])); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 40; continue; - /* } else { */ case 39: - $r = p.print(new sliceType$1([new token.Token(14)])); /* */ $s = 45; case 45: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.expr(x$4.X); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 40: - $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 8: - x$5 = _ref.$val; - /* */ if (6 < prec1) { $s = 47; continue; } - /* */ $s = 48; continue; - /* if (6 < prec1) { */ case 47: - $r = p.print(new sliceType$1([new token.Token(49)])); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.expr(x$5); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(54)])); /* */ $s = 52; case 52: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 49; continue; - /* } else { */ case 48: - $r = p.print(new sliceType$1([new token.Token(x$5.Op)])); /* */ $s = 53; case 53: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (x$5.Op === 79) { $s = 54; continue; } - /* */ $s = 55; continue; - /* if (x$5.Op === 79) { */ case 54: - $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 56; case 56: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 55: - $r = p.expr1(x$5.X, 6, depth); /* */ $s = 57; case 57: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 49: - $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$5, true)[1]) { */ case 9: - x$6 = _ref.$val; - if (!((((p.Config.Mode & 1073741824) >>> 0) === 0))) { - x$6 = normalizedNumber(x$6); - } - $r = p.print(new sliceType$1([x$6])); /* */ $s = 58; case 58: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$30, true)[1]) { */ case 10: - x$7 = _ref.$val; - _r$1 = x$7.Type.Pos(); /* */ $s = 59; case 59: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $r = p.setPos(_r$1); /* */ $s = 60; case 60: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(71)])); /* */ $s = 61; case 61: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - startCol = p.out.Column - 4 >> 0; - $r = p.signature(x$7.Type); /* */ $s = 62; case 62: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$2 = x$7.Type.Pos(); /* */ $s = 63; case 63: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = p.distanceFrom(_r$2, startCol); /* */ $s = 64; case 64: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $r = p.funcBody(_r$3, 32, x$7.Body); /* */ $s = 65; case 65: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$20, true)[1]) { */ case 11: - x$8 = _ref.$val; - _tuple = $assertType(x$8.X, ptrType$20, true); - hasParens = _tuple[1]; - /* */ if (hasParens) { $s = 66; continue; } - /* */ $s = 67; continue; - /* if (hasParens) { */ case 66: - $r = p.expr0(x$8.X, depth); /* */ $s = 69; case 69: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 68; continue; - /* } else { */ case 67: - $r = p.print(new sliceType$1([new token.Token(49)])); /* */ $s = 70; case 70: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.expr0(x$8.X, reduceDepth(depth)); /* */ $s = 71; case 71: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.setPos(x$8.Rparen); /* */ $s = 72; case 72: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(54)])); /* */ $s = 73; case 73: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 68: - $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$31, true)[1]) { */ case 12: - x$9 = _ref.$val; - _r$4 = p.selectorExpr(x$9, depth, false); /* */ $s = 74; case 74: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$4; - $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$32, true)[1]) { */ case 13: - x$10 = _ref.$val; - $r = p.expr1(x$10.X, 7, depth); /* */ $s = 75; case 75: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(53)])); /* */ $s = 76; case 76: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.setPos(x$10.Lparen); /* */ $s = 77; case 77: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(49)])); /* */ $s = 78; case 78: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!($interfaceIsEqual(x$10.Type, $ifaceNil))) { $s = 79; continue; } - /* */ $s = 80; continue; - /* if (!($interfaceIsEqual(x$10.Type, $ifaceNil))) { */ case 79: - $r = p.expr(x$10.Type); /* */ $s = 82; case 82: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 81; continue; - /* } else { */ case 80: - $r = p.print(new sliceType$1([new token.Token(84)])); /* */ $s = 83; case 83: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 81: - $r = p.setPos(x$10.Rparen); /* */ $s = 84; case 84: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(54)])); /* */ $s = 85; case 85: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$33, true)[1]) { */ case 14: - x$11 = _ref.$val; - $r = p.expr1(x$11.X, 7, 1); /* */ $s = 86; case 86: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.setPos(x$11.Lbrack); /* */ $s = 87; case 87: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(50)])); /* */ $s = 88; case 88: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.expr0(x$11.Index, depth + 1 >> 0); /* */ $s = 89; case 89: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.setPos(x$11.Rbrack); /* */ $s = 90; case 90: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(55)])); /* */ $s = 91; case 91: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$34, true)[1]) { */ case 15: - x$12 = _ref.$val; - $r = p.expr1(x$12.X, 7, 1); /* */ $s = 92; case 92: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.setPos(x$12.Lbrack); /* */ $s = 93; case 93: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(50)])); /* */ $s = 94; case 94: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.exprList(x$12.Lbrack, x$12.Indices, depth + 1 >> 0, 1, x$12.Rbrack, false); /* */ $s = 95; case 95: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.setPos(x$12.Rbrack); /* */ $s = 96; case 96: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(55)])); /* */ $s = 97; case 97: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$35, true)[1]) { */ case 16: - x$13 = _ref.$val; - $r = p.expr1(x$13.X, 7, 1); /* */ $s = 98; case 98: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.setPos(x$13.Lbrack); /* */ $s = 99; case 99: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(50)])); /* */ $s = 100; case 100: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - indices = new sliceType$7([x$13.Low, x$13.High]); - if (!($interfaceIsEqual(x$13.Max, $ifaceNil))) { - indices = $append(indices, x$13.Max); - } - needsBlanks = false; - if (depth <= 1) { - indexCount = 0; - hasBinaries = false; - _ref$1 = indices; - _i = 0; - while (true) { - if (!(_i < _ref$1.$length)) { break; } - x$24 = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); - if (!($interfaceIsEqual(x$24, $ifaceNil))) { - indexCount = indexCount + (1) >> 0; - if (isBinary(x$24)) { - hasBinaries = true; - } - } - _i++; - } - if (indexCount > 1 && hasBinaries) { - needsBlanks = true; - } - } - _ref$2 = indices; - _i$1 = 0; - /* while (true) { */ case 101: - /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 102; continue; } - i = _i$1; - x$25 = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); - /* */ if (i > 0) { $s = 103; continue; } - /* */ $s = 104; continue; - /* if (i > 0) { */ case 103: - /* */ if (!($interfaceIsEqual((x$26 = i - 1 >> 0, ((x$26 < 0 || x$26 >= indices.$length) ? ($throwRuntimeError("index out of range"), undefined) : indices.$array[indices.$offset + x$26])), $ifaceNil)) && needsBlanks) { $s = 105; continue; } - /* */ $s = 106; continue; - /* if (!($interfaceIsEqual((x$26 = i - 1 >> 0, ((x$26 < 0 || x$26 >= indices.$length) ? ($throwRuntimeError("index out of range"), undefined) : indices.$array[indices.$offset + x$26])), $ifaceNil)) && needsBlanks) { */ case 105: - $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 107; case 107: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 106: - $r = p.print(new sliceType$1([new token.Token(58)])); /* */ $s = 108; case 108: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!($interfaceIsEqual(x$25, $ifaceNil)) && needsBlanks) { $s = 109; continue; } - /* */ $s = 110; continue; - /* if (!($interfaceIsEqual(x$25, $ifaceNil)) && needsBlanks) { */ case 109: - $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 111; case 111: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 110: - /* } */ case 104: - /* */ if (!($interfaceIsEqual(x$25, $ifaceNil))) { $s = 112; continue; } - /* */ $s = 113; continue; - /* if (!($interfaceIsEqual(x$25, $ifaceNil))) { */ case 112: - $r = p.expr0(x$25, depth + 1 >> 0); /* */ $s = 114; case 114: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 113: - _i$1++; - $s = 101; continue; - case 102: - $r = p.setPos(x$13.Rbrack); /* */ $s = 115; case 115: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(55)])); /* */ $s = 116; case 116: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$36, true)[1]) { */ case 17: - x$14 = _ref.$val; - if (x$14.Args.$length > 1) { - depth = depth + (1) >> 0; - } - wasIndented = false; - _tuple$1 = $assertType(x$14.Fun, ptrType$23, true); - ok = _tuple$1[1]; - /* */ if (ok) { $s = 117; continue; } - /* */ $s = 118; continue; - /* if (ok) { */ case 117: - $r = p.print(new sliceType$1([new token.Token(49)])); /* */ $s = 120; case 120: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$5 = p.possibleSelectorExpr(x$14.Fun, 7, depth); /* */ $s = 121; case 121: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - wasIndented = _r$5; - $r = p.print(new sliceType$1([new token.Token(54)])); /* */ $s = 122; case 122: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 119; continue; - /* } else { */ case 118: - _r$6 = p.possibleSelectorExpr(x$14.Fun, 7, depth); /* */ $s = 123; case 123: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - wasIndented = _r$6; - /* } */ case 119: - $r = p.setPos(x$14.Lparen); /* */ $s = 124; case 124: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(49)])); /* */ $s = 125; case 125: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (new token.Pos(x$14.Ellipsis).IsValid()) { $s = 126; continue; } - /* */ $s = 127; continue; - /* if (new token.Pos(x$14.Ellipsis).IsValid()) { */ case 126: - $r = p.exprList(x$14.Lparen, x$14.Args, depth, 0, x$14.Ellipsis, false); /* */ $s = 129; case 129: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.setPos(x$14.Ellipsis); /* */ $s = 130; case 130: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(48)])); /* */ $s = 131; case 131: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (!(new token.Pos(x$14.Rparen).IsValid())) { _v = false; $s = 134; continue s; } - _r$7 = p.lineFor(x$14.Ellipsis); /* */ $s = 135; case 135: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _r$8 = p.lineFor(x$14.Rparen); /* */ $s = 136; case 136: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _v = _r$7 < _r$8; case 134: - /* */ if (_v) { $s = 132; continue; } - /* */ $s = 133; continue; - /* if (_v) { */ case 132: - $r = p.print(new sliceType$1([new token.Token(52), new whiteSpace(12)])); /* */ $s = 137; case 137: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 133: - $s = 128; continue; - /* } else { */ case 127: - $r = p.exprList(x$14.Lparen, x$14.Args, depth, 1, x$14.Rparen, false); /* */ $s = 138; case 138: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 128: - $r = p.setPos(x$14.Rparen); /* */ $s = 139; case 139: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(54)])); /* */ $s = 140; case 140: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (wasIndented) { $s = 141; continue; } - /* */ $s = 142; continue; - /* if (wasIndented) { */ case 141: - $r = p.print(new sliceType$1([new whiteSpace(60)])); /* */ $s = 143; case 143: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 142: - $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$37, true)[1]) { */ case 18: - x$15 = _ref.$val; - /* */ if (!($interfaceIsEqual(x$15.Type, $ifaceNil))) { $s = 144; continue; } - /* */ $s = 145; continue; - /* if (!($interfaceIsEqual(x$15.Type, $ifaceNil))) { */ case 144: - $r = p.expr1(x$15.Type, 7, depth); /* */ $s = 146; case 146: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 145: - p.level = p.level + (1) >> 0; - $r = p.setPos(x$15.Lbrace); /* */ $s = 147; case 147: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(51)])); /* */ $s = 148; case 148: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.exprList(x$15.Lbrace, x$15.Elts, 1, 1, x$15.Rbrace, x$15.Incomplete); /* */ $s = 149; case 149: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - mode = 2; - if (x$15.Elts.$length > 0) { - mode = mode | (1); - } - $r = p.print(new sliceType$1([new whiteSpace(62), new whiteSpace(60), new pmode(mode)])); /* */ $s = 150; case 150: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.setPos(x$15.Rbrace); /* */ $s = 151; case 151: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(56), new pmode(mode)])); /* */ $s = 152; case 152: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - p.level = p.level - (1) >> 0; - $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$38, true)[1]) { */ case 19: - x$16 = _ref.$val; - $r = p.print(new sliceType$1([new token.Token(48)])); /* */ $s = 153; case 153: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!($interfaceIsEqual(x$16.Elt, $ifaceNil))) { $s = 154; continue; } - /* */ $s = 155; continue; - /* if (!($interfaceIsEqual(x$16.Elt, $ifaceNil))) { */ case 154: - $r = p.expr(x$16.Elt); /* */ $s = 156; case 156: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 155: - $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$21, true)[1]) { */ case 20: - x$17 = _ref.$val; - $r = p.print(new sliceType$1([new token.Token(50)])); /* */ $s = 157; case 157: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!($interfaceIsEqual(x$17.Len, $ifaceNil))) { $s = 158; continue; } - /* */ $s = 159; continue; - /* if (!($interfaceIsEqual(x$17.Len, $ifaceNil))) { */ case 158: - $r = p.expr(x$17.Len); /* */ $s = 160; case 160: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 159: - $r = p.print(new sliceType$1([new token.Token(55)])); /* */ $s = 161; case 161: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.expr(x$17.Elt); /* */ $s = 162; case 162: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$22, true)[1]) { */ case 21: - x$18 = _ref.$val; - $r = p.print(new sliceType$1([new token.Token(82)])); /* */ $s = 163; case 163: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.fieldList(x$18.Fields, true, x$18.Incomplete); /* */ $s = 164; case 164: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$23, true)[1]) { */ case 22: - x$19 = _ref.$val; - $r = p.print(new sliceType$1([new token.Token(71)])); /* */ $s = 165; case 165: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.signature(x$19); /* */ $s = 166; case 166: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$24, true)[1]) { */ case 23: - x$20 = _ref.$val; - $r = p.print(new sliceType$1([new token.Token(76)])); /* */ $s = 167; case 167: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.fieldList(x$20.Methods, false, x$20.Incomplete); /* */ $s = 168; case 168: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$25, true)[1]) { */ case 24: - x$21 = _ref.$val; - $r = p.print(new sliceType$1([new token.Token(77), new token.Token(50)])); /* */ $s = 169; case 169: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.expr(x$21.Key); /* */ $s = 170; case 170: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(55)])); /* */ $s = 171; case 171: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.expr(x$21.Value); /* */ $s = 172; case 172: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 27; continue; - /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 25: - x$22 = _ref.$val; - _1 = x$22.Dir; - /* */ if (_1 === (3)) { $s = 174; continue; } - /* */ if (_1 === (2)) { $s = 175; continue; } - /* */ if (_1 === (1)) { $s = 176; continue; } - /* */ $s = 177; continue; - /* if (_1 === (3)) { */ case 174: - $r = p.print(new sliceType$1([new token.Token(63)])); /* */ $s = 178; case 178: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 177; continue; - /* } else if (_1 === (2)) { */ case 175: - $r = p.print(new sliceType$1([new token.Token(36), new token.Token(63)])); /* */ $s = 179; case 179: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 177; continue; - /* } else if (_1 === (1)) { */ case 176: - $r = p.print(new sliceType$1([new token.Token(63)])); /* */ $s = 180; case 180: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.setPos(x$22.Arrow); /* */ $s = 181; case 181: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(36)])); /* */ $s = 182; case 182: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 177: - case 173: - $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 183; case 183: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.expr(x$22.Value); /* */ $s = 184; case 184: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 27; continue; - /* } else { */ case 26: - x$23 = _ref; - $panic(new $String("unreachable")); - /* } */ case 27: - $s = -1; return; - /* */ } return; } var $f = {$blk: expr1, $c: true, $r, _1, _i, _i$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _ref$1, _ref$2, _tuple, _tuple$1, _v, depth, expr, hasBinaries, hasParens, i, indexCount, indices, mode, needsBlanks, ok, p, prec1, startCol, wasIndented, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$25, x$26, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; - }; - normalizedNumber = function normalizedNumber$1(lit) { - var _1, i, i$1, i$2, lit, x; - if (!((lit.Kind === 5)) && !((lit.Kind === 6)) && !((lit.Kind === 7))) { - return lit; - } - if (lit.Value.length < 2) { - return lit; - } - x = lit.Value; - switch (0) { default: - _1 = $substring(x, 0, 2); - if (_1 === ("0X")) { - x = "0x" + $substring(x, 2); - i = strings.LastIndexByte(x, 80); - if (i >= 0) { - x = $substring(x, 0, i) + "p" + $substring(x, (i + 1 >> 0)); - } - } else if (_1 === ("0x")) { - i$1 = strings.LastIndexByte(x, 80); - if (i$1 === -1) { - return lit; - } - x = $substring(x, 0, i$1) + "p" + $substring(x, (i$1 + 1 >> 0)); - } else if (_1 === ("0O")) { - x = "0o" + $substring(x, 2); - } else if (_1 === ("0o")) { - return lit; - } else if (_1 === ("0B")) { - x = "0b" + $substring(x, 2); - } else if (_1 === ("0b")) { - return lit; - } else { - i$2 = strings.LastIndexByte(x, 69); - if (i$2 >= 0) { - x = $substring(x, 0, i$2) + "e" + $substring(x, (i$2 + 1 >> 0)); - break; - } - if ((x.charCodeAt((x.length - 1 >> 0)) === 105) && !strings.ContainsAny(x, ".e")) { - x = strings.TrimLeft(x, "0_"); - if (x === "i") { - x = "0i"; - } - } - } - } - return new ast.BasicLit.ptr(lit.ValuePos, lit.Kind, x); - }; - $ptrType(printer).prototype.possibleSelectorExpr = function possibleSelectorExpr(expr, prec1, depth) { - var {$24r, _r, _tuple, depth, expr, ok, p, prec1, x, $s, $r, $c} = $restore(this, {expr, prec1, depth}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - _tuple = $assertType(expr, ptrType$31, true); - x = _tuple[0]; - ok = _tuple[1]; - /* */ if (ok) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (ok) { */ case 1: - _r = p.selectorExpr(x, depth, true); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 4; case 4: return $24r; - /* } */ case 2: - $r = p.expr1(expr, prec1, depth); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return false; - /* */ } return; } var $f = {$blk: possibleSelectorExpr, $c: true, $r, $24r, _r, _tuple, depth, expr, ok, p, prec1, x, $s};return $f; - }; - $ptrType(printer).prototype.selectorExpr = function selectorExpr(x, depth, isMethod) { - var {_r, depth, isMethod, line, p, x, $s, $r, $c} = $restore(this, {x, depth, isMethod}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - $r = p.expr1(x.X, 7, depth); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(53)])); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r = p.lineFor(x.Sel.Pos()); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - line = _r; - /* */ if (p.pos.IsValid() && p.pos.Line < line) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (p.pos.IsValid() && p.pos.Line < line) { */ case 4: - $r = p.print(new sliceType$1([new whiteSpace(62), new whiteSpace(10)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.setPos(x.Sel.Pos()); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([x.Sel])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!isMethod) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (!isMethod) { */ case 9: - $r = p.print(new sliceType$1([new whiteSpace(60)])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 10: - $s = -1; return true; - /* } */ case 5: - $r = p.setPos(x.Sel.Pos()); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([x.Sel])); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return false; - /* */ } return; } var $f = {$blk: selectorExpr, $c: true, $r, _r, depth, isMethod, line, p, x, $s};return $f; - }; - $ptrType(printer).prototype.expr0 = function expr0(x, depth) { - var {depth, p, x, $s, $r, $c} = $restore(this, {x, depth}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - $r = p.expr1(x, 0, depth); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: expr0, $c: true, $r, depth, p, x, $s};return $f; - }; - $ptrType(printer).prototype.expr = function expr(x) { - var {p, x, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - $r = p.expr1(x, 0, 1); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: expr, $c: true, $r, p, x, $s};return $f; - }; - $ptrType(printer).prototype.stmtList = function stmtList(list, nindent, nextIsRBrace) { - var {_i, _r, _r$1, _r$2, _ref, _tuple, _tuple$1, i, isEmpty, line, list, lt, nextIsRBrace, nindent, p, s, t, $s, $r, $c} = $restore(this, {list, nindent, nextIsRBrace}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - line = [line]; - p = this; - /* */ if (nindent > 0) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (nindent > 0) { */ case 1: - $r = p.print(new sliceType$1([new whiteSpace(62)])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - line[0] = 0; - i = 0; - _ref = list; - _i = 0; - /* while (true) { */ case 4: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 5; continue; } - s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _tuple = $assertType(s, ptrType$39, true); - isEmpty = _tuple[1]; - /* */ if (!isEmpty) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (!isEmpty) { */ case 6: - /* */ if (p.output.$length > 0) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (p.output.$length > 0) { */ case 8: - _r = s.Pos(); /* */ $s = 10; case 10: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = p.lineFor(_r); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = p.linebreak(_r$1, 1, 0, (i === 0) || (nindent === 0) || p.linesFrom(line[0]) > 0); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - /* } */ case 9: - p.recordLine((line.$ptr || (line.$ptr = new ptrType$1(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, line)))); - $r = p.stmt(s, nextIsRBrace && (i === (list.$length - 1 >> 0))); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - t = s; - while (true) { - _tuple$1 = $assertType(t, ptrType$14, true); - lt = _tuple$1[0]; - if (lt === ptrType$14.nil) { - break; - } - line[0] = line[0] + (1) >> 0; - t = lt.Stmt; - } - i = i + (1) >> 0; - /* } */ case 7: - _i++; - $s = 4; continue; - case 5: - /* */ if (nindent > 0) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (nindent > 0) { */ case 14: - $r = p.print(new sliceType$1([new whiteSpace(60)])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 15: - $s = -1; return; - /* */ } return; } var $f = {$blk: stmtList, $c: true, $r, _i, _r, _r$1, _r$2, _ref, _tuple, _tuple$1, i, isEmpty, line, list, lt, nextIsRBrace, nindent, p, s, t, $s};return $f; - }; - $ptrType(printer).prototype.block = function block(b, nindent) { - var {_r, _r$1, b, nindent, p, $s, $r, $c} = $restore(this, {b, nindent}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - $r = p.setPos(b.Lbrace); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(51)])); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.stmtList(b.List, nindent, true); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r = p.lineFor(b.Rbrace); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = p.linebreak(_r, 1, 0, true); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - $r = p.setPos(b.Rbrace); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(56)])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: block, $c: true, $r, _r, _r$1, b, nindent, p, $s};return $f; - }; - isTypeName = function isTypeName$1(x) { - var _ref, t, t$1, x; - _ref = x; - if ($assertType(_ref, ptrType$4, true)[1]) { - t = _ref.$val; - return true; - } else if ($assertType(_ref, ptrType$31, true)[1]) { - t$1 = _ref.$val; - return isTypeName(t$1.X); - } - return false; - }; - stripParens = function stripParens$1(x) { - var {$24r, _r, _tuple, px, strip, x, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - strip = [strip]; - _tuple = $assertType(x, ptrType$20, true); - px = _tuple[0]; - strip[0] = _tuple[1]; - /* */ if (strip[0]) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (strip[0]) { */ case 1: - $r = ast.Inspect(px.X, (function(strip) { return function stripParens·func1(node) { - var _ref, node, x$1, x$2; - _ref = node; - if ($assertType(_ref, ptrType$20, true)[1]) { - x$1 = _ref.$val; - return false; - } else if ($assertType(_ref, ptrType$37, true)[1]) { - x$2 = _ref.$val; - if (isTypeName(x$2.Type)) { - strip[0] = false; - } - return false; - } - return true; - }; })(strip)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (strip[0]) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (strip[0]) { */ case 4: - _r = stripParens(px.X); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 7; case 7: return $24r; - /* } */ case 5: - /* } */ case 2: - $s = -1; return x; - /* */ } return; } var $f = {$blk: stripParens$1, $c: true, $r, $24r, _r, _tuple, px, strip, x, $s};return $f; - }; - stripParensAlways = function stripParensAlways$1(x) { - var _tuple, ok, x, x$1; - _tuple = $assertType(x, ptrType$20, true); - x$1 = _tuple[0]; - ok = _tuple[1]; - if (ok) { - return stripParensAlways(x$1.X); - } - return x; - }; - $ptrType(printer).prototype.controlClause = function controlClause(isForStmt, init, expr$1, post) { - var {_r, _r$1, expr$1, init, isForStmt, needsBlank, p, post, $s, $r, $c} = $restore(this, {isForStmt, init, expr$1, post}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - needsBlank = false; - /* */ if ($interfaceIsEqual(init, $ifaceNil) && $interfaceIsEqual(post, $ifaceNil)) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if ($interfaceIsEqual(init, $ifaceNil) && $interfaceIsEqual(post, $ifaceNil)) { */ case 2: - /* */ if (!($interfaceIsEqual(expr$1, $ifaceNil))) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (!($interfaceIsEqual(expr$1, $ifaceNil))) { */ case 5: - _r = stripParens(expr$1); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $r = p.expr(_r); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - needsBlank = true; - /* } */ case 6: - $s = 4; continue; - /* } else { */ case 3: - /* */ if (!($interfaceIsEqual(init, $ifaceNil))) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (!($interfaceIsEqual(init, $ifaceNil))) { */ case 9: - $r = p.stmt(init, false); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 10: - $r = p.print(new sliceType$1([new token.Token(57), new whiteSpace(32)])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!($interfaceIsEqual(expr$1, $ifaceNil))) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (!($interfaceIsEqual(expr$1, $ifaceNil))) { */ case 13: - _r$1 = stripParens(expr$1); /* */ $s = 15; case 15: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $r = p.expr(_r$1); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - needsBlank = true; - /* } */ case 14: - /* */ if (isForStmt) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (isForStmt) { */ case 17: - $r = p.print(new sliceType$1([new token.Token(57), new whiteSpace(32)])); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - needsBlank = false; - /* */ if (!($interfaceIsEqual(post, $ifaceNil))) { $s = 20; continue; } - /* */ $s = 21; continue; - /* if (!($interfaceIsEqual(post, $ifaceNil))) { */ case 20: - $r = p.stmt(post, false); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - needsBlank = true; - /* } */ case 21: - /* } */ case 18: - /* } */ case 4: - /* */ if (needsBlank) { $s = 23; continue; } - /* */ $s = 24; continue; - /* if (needsBlank) { */ case 23: - $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 24: - $s = -1; return; - /* */ } return; } var $f = {$blk: controlClause, $c: true, $r, _r, _r$1, expr$1, init, isForStmt, needsBlank, p, post, $s};return $f; - }; - $ptrType(printer).prototype.indentList = function indentList(list) { - var {_i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, b, e, line, list, n, p, x, x$1, xb, xe, $s, $r, $c} = $restore(this, {list}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - /* */ if (list.$length >= 2) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (list.$length >= 2) { */ case 1: - _r = (0 >= list.$length ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + 0]).Pos(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = p.lineFor(_r); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - b = _r$1; - _r$2 = (x = list.$length - 1 >> 0, ((x < 0 || x >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + x])).End(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = p.lineFor(_r$2); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - e = _r$3; - /* */ if (0 < b && b < e) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (0 < b && b < e) { */ case 7: - n = 0; - line = b; - _ref = list; - _i = 0; - /* while (true) { */ case 9: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 10; continue; } - x$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$4 = x$1.Pos(); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$5 = p.lineFor(_r$4); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - xb = _r$5; - _r$6 = x$1.End(); /* */ $s = 13; case 13: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _r$7 = p.lineFor(_r$6); /* */ $s = 14; case 14: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - xe = _r$7; - if (line < xb) { - $s = -1; return true; - } - if (xb < xe) { - n = n + (1) >> 0; - } - line = xe; - _i++; - $s = 9; continue; - case 10: - $s = -1; return n > 1; - /* } */ case 8: - /* } */ case 2: - $s = -1; return false; - /* */ } return; } var $f = {$blk: indentList, $c: true, $r, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, b, e, line, list, n, p, x, x$1, xb, xe, $s};return $f; - }; - $ptrType(printer).prototype.stmt = function stmt(stmt$1, nextIsRBrace) { - var {_r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _v, body, depth, e, isEmpty, nextIsRBrace, p, s, s$1, s$10, s$11, s$12, s$13, s$14, s$15, s$16, s$17, s$18, s$19, s$2, s$20, s$21, s$3, s$4, s$5, s$6, s$7, s$8, s$9, stmt$1, $s, $r, $c} = $restore(this, {stmt$1, nextIsRBrace}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - _r = stmt$1.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $r = p.setPos(_r); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _ref = stmt$1; - /* */ if ($assertType(_ref, ptrType$40, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$41, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$39, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType$42, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref, ptrType$43, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref, ptrType$44, true)[1]) { $s = 9; continue; } - /* */ if ($assertType(_ref, ptrType$45, true)[1]) { $s = 10; continue; } - /* */ if ($assertType(_ref, ptrType$46, true)[1]) { $s = 11; continue; } - /* */ if ($assertType(_ref, ptrType$47, true)[1]) { $s = 12; continue; } - /* */ if ($assertType(_ref, ptrType$48, true)[1]) { $s = 13; continue; } - /* */ if ($assertType(_ref, ptrType$49, true)[1]) { $s = 14; continue; } - /* */ if ($assertType(_ref, ptrType$50, true)[1]) { $s = 15; continue; } - /* */ if ($assertType(_ref, ptrType$51, true)[1]) { $s = 16; continue; } - /* */ if ($assertType(_ref, ptrType$52, true)[1]) { $s = 17; continue; } - /* */ if ($assertType(_ref, ptrType$53, true)[1]) { $s = 18; continue; } - /* */ if ($assertType(_ref, ptrType$54, true)[1]) { $s = 19; continue; } - /* */ if ($assertType(_ref, ptrType$55, true)[1]) { $s = 20; continue; } - /* */ if ($assertType(_ref, ptrType$56, true)[1]) { $s = 21; continue; } - /* */ if ($assertType(_ref, ptrType$57, true)[1]) { $s = 22; continue; } - /* */ if ($assertType(_ref, ptrType$58, true)[1]) { $s = 23; continue; } - /* */ $s = 24; continue; - /* switch (0) { default: if ($assertType(_ref, ptrType$40, true)[1]) { */ case 3: - s = _ref.$val; - $r = p.print(new sliceType$1([new $String("BadStmt")])); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 25; continue; - /* } else if ($assertType(_ref, ptrType$41, true)[1]) { */ case 4: - s$1 = _ref.$val; - $r = p.decl(s$1.Decl); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 25; continue; - /* } else if ($assertType(_ref, ptrType$39, true)[1]) { */ case 5: - s$2 = _ref.$val; - $s = 25; continue; - /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 6: - s$3 = _ref.$val; - $r = p.print(new sliceType$1([new whiteSpace(60)])); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.expr(s$3.Label); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.setPos(s$3.Colon); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(58), new whiteSpace(62)])); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _tuple = $assertType(s$3.Stmt, ptrType$39, true); - e = _tuple[0]; - isEmpty = _tuple[1]; - /* */ if (isEmpty) { $s = 32; continue; } - /* */ $s = 33; continue; - /* if (isEmpty) { */ case 32: - /* */ if (!nextIsRBrace) { $s = 35; continue; } - /* */ $s = 36; continue; - /* if (!nextIsRBrace) { */ case 35: - $r = p.print(new sliceType$1([new whiteSpace(10)])); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.setPos(e.Pos()); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(57)])); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* break; */ $s = 25; continue; - /* } */ case 36: - $s = 34; continue; - /* } else { */ case 33: - _r$1 = s$3.Stmt.Pos(); /* */ $s = 40; case 40: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = p.lineFor(_r$1); /* */ $s = 41; case 41: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = p.linebreak(_r$2, 1, 0, true); /* */ $s = 42; case 42: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$3; - /* } */ case 34: - $r = p.stmt(s$3.Stmt, nextIsRBrace); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 25; continue; - /* } else if ($assertType(_ref, ptrType$42, true)[1]) { */ case 7: - s$4 = _ref.$val; - $r = p.expr0(s$4.X, 1); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 25; continue; - /* } else if ($assertType(_ref, ptrType$43, true)[1]) { */ case 8: - s$5 = _ref.$val; - $r = p.expr0(s$5.Chan, 1); /* */ $s = 45; case 45: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.setPos(s$5.Arrow); /* */ $s = 47; case 47: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(36), new whiteSpace(32)])); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.expr0(s$5.Value, 1); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 25; continue; - /* } else if ($assertType(_ref, ptrType$44, true)[1]) { */ case 9: - s$6 = _ref.$val; - $r = p.expr0(s$6.X, 2); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.setPos(s$6.TokPos); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(s$6.Tok)])); /* */ $s = 52; case 52: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 25; continue; - /* } else if ($assertType(_ref, ptrType$45, true)[1]) { */ case 10: - s$7 = _ref.$val; - depth = 1; - if (s$7.Lhs.$length > 1 && s$7.Rhs.$length > 1) { - depth = depth + (1) >> 0; - } - _r$4 = s$7.Pos(); /* */ $s = 53; case 53: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $r = p.exprList(_r$4, s$7.Lhs, depth, 0, s$7.TokPos, false); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.setPos(s$7.TokPos); /* */ $s = 56; case 56: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(s$7.Tok), new whiteSpace(32)])); /* */ $s = 57; case 57: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.exprList(s$7.TokPos, s$7.Rhs, depth, 0, 0, false); /* */ $s = 58; case 58: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 25; continue; - /* } else if ($assertType(_ref, ptrType$46, true)[1]) { */ case 11: - s$8 = _ref.$val; - $r = p.print(new sliceType$1([new token.Token(72), new whiteSpace(32)])); /* */ $s = 59; case 59: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.expr(s$8.Call); /* */ $s = 60; case 60: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 25; continue; - /* } else if ($assertType(_ref, ptrType$47, true)[1]) { */ case 12: - s$9 = _ref.$val; - $r = p.print(new sliceType$1([new token.Token(67), new whiteSpace(32)])); /* */ $s = 61; case 61: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.expr(s$9.Call); /* */ $s = 62; case 62: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 25; continue; - /* } else if ($assertType(_ref, ptrType$48, true)[1]) { */ case 13: - s$10 = _ref.$val; - $r = p.print(new sliceType$1([new token.Token(80)])); /* */ $s = 63; case 63: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!(s$10.Results === sliceType$7.nil)) { $s = 64; continue; } - /* */ $s = 65; continue; - /* if (!(s$10.Results === sliceType$7.nil)) { */ case 64: - $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 66; case 66: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$5 = p.indentList(s$10.Results); /* */ $s = 70; case 70: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* */ if (_r$5) { $s = 67; continue; } - /* */ $s = 68; continue; - /* if (_r$5) { */ case 67: - $r = p.print(new sliceType$1([new whiteSpace(62)])); /* */ $s = 71; case 71: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.exprList(0, s$10.Results, 1, 2, 0, false); /* */ $s = 72; case 72: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new whiteSpace(60)])); /* */ $s = 73; case 73: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 69; continue; - /* } else { */ case 68: - $r = p.exprList(0, s$10.Results, 1, 0, 0, false); /* */ $s = 74; case 74: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 69: - /* } */ case 65: - $s = 25; continue; - /* } else if ($assertType(_ref, ptrType$49, true)[1]) { */ case 14: - s$11 = _ref.$val; - $r = p.print(new sliceType$1([new token.Token(s$11.Tok)])); /* */ $s = 75; case 75: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!(s$11.Label === ptrType$4.nil)) { $s = 76; continue; } - /* */ $s = 77; continue; - /* if (!(s$11.Label === ptrType$4.nil)) { */ case 76: - $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 78; case 78: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.expr(s$11.Label); /* */ $s = 79; case 79: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 77: - $s = 25; continue; - /* } else if ($assertType(_ref, ptrType$50, true)[1]) { */ case 15: - s$12 = _ref.$val; - $r = p.block(s$12, 1); /* */ $s = 80; case 80: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 25; continue; - /* } else if ($assertType(_ref, ptrType$51, true)[1]) { */ case 16: - s$13 = _ref.$val; - $r = p.print(new sliceType$1([new token.Token(74)])); /* */ $s = 81; case 81: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.controlClause(false, s$13.Init, s$13.Cond, $ifaceNil); /* */ $s = 82; case 82: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.block(s$13.Body, 1); /* */ $s = 83; case 83: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!($interfaceIsEqual(s$13.Else, $ifaceNil))) { $s = 84; continue; } - /* */ $s = 85; continue; - /* if (!($interfaceIsEqual(s$13.Else, $ifaceNil))) { */ case 84: - $r = p.print(new sliceType$1([new whiteSpace(32), new token.Token(68), new whiteSpace(32)])); /* */ $s = 86; case 86: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _ref$1 = s$13.Else; - /* */ if ($assertType(_ref$1, ptrType$50, true)[1] || $assertType(_ref$1, ptrType$51, true)[1]) { $s = 87; continue; } - /* */ $s = 88; continue; - /* if ($assertType(_ref$1, ptrType$50, true)[1] || $assertType(_ref$1, ptrType$51, true)[1]) { */ case 87: - $r = p.stmt(s$13.Else, nextIsRBrace); /* */ $s = 90; case 90: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 89; continue; - /* } else { */ case 88: - $r = p.print(new sliceType$1([new token.Token(51), new whiteSpace(62), new whiteSpace(12)])); /* */ $s = 91; case 91: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.stmt(s$13.Else, true); /* */ $s = 92; case 92: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new whiteSpace(60), new whiteSpace(12), new token.Token(56)])); /* */ $s = 93; case 93: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 89: - /* } */ case 85: - $s = 25; continue; - /* } else if ($assertType(_ref, ptrType$52, true)[1]) { */ case 17: - s$14 = _ref.$val; - /* */ if (!(s$14.List === sliceType$7.nil)) { $s = 94; continue; } - /* */ $s = 95; continue; - /* if (!(s$14.List === sliceType$7.nil)) { */ case 94: - $r = p.print(new sliceType$1([new token.Token(62), new whiteSpace(32)])); /* */ $s = 97; case 97: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.exprList(s$14.Pos(), s$14.List, 1, 0, s$14.Colon, false); /* */ $s = 98; case 98: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 96; continue; - /* } else { */ case 95: - $r = p.print(new sliceType$1([new token.Token(66)])); /* */ $s = 99; case 99: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 96: - $r = p.setPos(s$14.Colon); /* */ $s = 100; case 100: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(58)])); /* */ $s = 101; case 101: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.stmtList(s$14.Body, 1, nextIsRBrace); /* */ $s = 102; case 102: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 25; continue; - /* } else if ($assertType(_ref, ptrType$53, true)[1]) { */ case 18: - s$15 = _ref.$val; - $r = p.print(new sliceType$1([new token.Token(83)])); /* */ $s = 103; case 103: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.controlClause(false, s$15.Init, s$15.Tag, $ifaceNil); /* */ $s = 104; case 104: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.block(s$15.Body, 0); /* */ $s = 105; case 105: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 25; continue; - /* } else if ($assertType(_ref, ptrType$54, true)[1]) { */ case 19: - s$16 = _ref.$val; - $r = p.print(new sliceType$1([new token.Token(83)])); /* */ $s = 106; case 106: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!($interfaceIsEqual(s$16.Init, $ifaceNil))) { $s = 107; continue; } - /* */ $s = 108; continue; - /* if (!($interfaceIsEqual(s$16.Init, $ifaceNil))) { */ case 107: - $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 109; case 109: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.stmt(s$16.Init, false); /* */ $s = 110; case 110: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(57)])); /* */ $s = 111; case 111: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 108: - $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 112; case 112: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.stmt(s$16.Assign, false); /* */ $s = 113; case 113: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 114; case 114: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.block(s$16.Body, 0); /* */ $s = 115; case 115: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 25; continue; - /* } else if ($assertType(_ref, ptrType$55, true)[1]) { */ case 20: - s$17 = _ref.$val; - /* */ if (!($interfaceIsEqual(s$17.Comm, $ifaceNil))) { $s = 116; continue; } - /* */ $s = 117; continue; - /* if (!($interfaceIsEqual(s$17.Comm, $ifaceNil))) { */ case 116: - $r = p.print(new sliceType$1([new token.Token(62), new whiteSpace(32)])); /* */ $s = 119; case 119: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.stmt(s$17.Comm, false); /* */ $s = 120; case 120: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 118; continue; - /* } else { */ case 117: - $r = p.print(new sliceType$1([new token.Token(66)])); /* */ $s = 121; case 121: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 118: - $r = p.setPos(s$17.Colon); /* */ $s = 122; case 122: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(58)])); /* */ $s = 123; case 123: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.stmtList(s$17.Body, 1, nextIsRBrace); /* */ $s = 124; case 124: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 25; continue; - /* } else if ($assertType(_ref, ptrType$56, true)[1]) { */ case 21: - s$18 = _ref.$val; - $r = p.print(new sliceType$1([new token.Token(81), new whiteSpace(32)])); /* */ $s = 125; case 125: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - body = s$18.Body; - if (!(body.List.$length === 0)) { _v = false; $s = 129; continue s; } - _r$6 = p.posFor(body.Rbrace); /* */ $s = 130; case 130: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _r$7 = p.commentBefore($clone(_r$6, token.Position)); /* */ $s = 131; case 131: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _v = !_r$7; case 129: - /* */ if (_v) { $s = 126; continue; } - /* */ $s = 127; continue; - /* if (_v) { */ case 126: - $r = p.setPos(body.Lbrace); /* */ $s = 132; case 132: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(51)])); /* */ $s = 133; case 133: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.setPos(body.Rbrace); /* */ $s = 134; case 134: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(56)])); /* */ $s = 135; case 135: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 128; continue; - /* } else { */ case 127: - $r = p.block(body, 0); /* */ $s = 136; case 136: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 128: - $s = 25; continue; - /* } else if ($assertType(_ref, ptrType$57, true)[1]) { */ case 22: - s$19 = _ref.$val; - $r = p.print(new sliceType$1([new token.Token(70)])); /* */ $s = 137; case 137: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.controlClause(true, s$19.Init, s$19.Cond, s$19.Post); /* */ $s = 138; case 138: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.block(s$19.Body, 1); /* */ $s = 139; case 139: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 25; continue; - /* } else if ($assertType(_ref, ptrType$58, true)[1]) { */ case 23: - s$20 = _ref.$val; - $r = p.print(new sliceType$1([new token.Token(70), new whiteSpace(32)])); /* */ $s = 140; case 140: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!($interfaceIsEqual(s$20.Key, $ifaceNil))) { $s = 141; continue; } - /* */ $s = 142; continue; - /* if (!($interfaceIsEqual(s$20.Key, $ifaceNil))) { */ case 141: - $r = p.expr(s$20.Key); /* */ $s = 143; case 143: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!($interfaceIsEqual(s$20.Value, $ifaceNil))) { $s = 144; continue; } - /* */ $s = 145; continue; - /* if (!($interfaceIsEqual(s$20.Value, $ifaceNil))) { */ case 144: - _r$8 = s$20.Value.Pos(); /* */ $s = 146; case 146: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - $r = p.setPos(_r$8); /* */ $s = 147; case 147: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(52), new whiteSpace(32)])); /* */ $s = 148; case 148: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.expr(s$20.Value); /* */ $s = 149; case 149: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 145: - $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 150; case 150: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.setPos(s$20.TokPos); /* */ $s = 151; case 151: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(s$20.Tok), new whiteSpace(32)])); /* */ $s = 152; case 152: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 142: - $r = p.print(new sliceType$1([new token.Token(79), new whiteSpace(32)])); /* */ $s = 153; case 153: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$9 = stripParens(s$20.X); /* */ $s = 154; case 154: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - $r = p.expr(_r$9); /* */ $s = 155; case 155: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 156; case 156: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.block(s$20.Body, 1); /* */ $s = 157; case 157: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 25; continue; - /* } else { */ case 24: - s$21 = _ref; - $panic(new $String("unreachable")); - /* } } */ case 25: - $s = -1; return; - /* */ } return; } var $f = {$blk: stmt, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _v, body, depth, e, isEmpty, nextIsRBrace, p, s, s$1, s$10, s$11, s$12, s$13, s$14, s$15, s$16, s$17, s$18, s$19, s$2, s$20, s$21, s$3, s$4, s$5, s$6, s$7, s$8, s$9, stmt$1, $s};return $f; - }; - keepTypeColumn = function keepTypeColumn$1(specs) { - var {_i, _ref, i, i0, keepType, m, populate, s, specs, t, $s, $r, $c} = $restore(this, {specs}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - m = [m]; - m[0] = $makeSlice(sliceType$10, specs.$length); - populate = (function(m) { return function keepTypeColumn·func1(i, j, keepType) { - var i, j, keepType; - if (keepType) { - while (true) { - if (!(i < j)) { break; } - ((i < 0 || i >= m[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : m[0].$array[m[0].$offset + i] = true); - i = i + (1) >> 0; - } - } - }; })(m); - i0 = -1; - keepType = false; - _ref = specs; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - t = $assertType(s, ptrType$8); - /* */ if (!(t.Values === sliceType$7.nil)) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!(t.Values === sliceType$7.nil)) { */ case 3: - if (i0 < 0) { - i0 = i; - keepType = false; - } - $s = 5; continue; - /* } else { */ case 4: - /* */ if (i0 >= 0) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (i0 >= 0) { */ case 6: - $r = populate(i0, i, keepType); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - i0 = -1; - /* } */ case 7: - /* } */ case 5: - if (!($interfaceIsEqual(t.Type, $ifaceNil))) { - keepType = true; - } - _i++; - $s = 1; continue; - case 2: - /* */ if (i0 >= 0) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (i0 >= 0) { */ case 9: - $r = populate(i0, specs.$length, keepType); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 10: - $s = -1; return m[0]; - /* */ } return; } var $f = {$blk: keepTypeColumn$1, $c: true, $r, _i, _ref, i, i0, keepType, m, populate, s, specs, t, $s};return $f; - }; - $ptrType(printer).prototype.valueSpec = function valueSpec(s, keepType) { - var {extraTabs, keepType, p, s, $s, $r, $c} = $restore(this, {s, keepType}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - $r = p.setComment(s.Doc); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.identList(s.Names, false); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - extraTabs = 3; - /* */ if (!($interfaceIsEqual(s.Type, $ifaceNil)) || keepType) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!($interfaceIsEqual(s.Type, $ifaceNil)) || keepType) { */ case 3: - $r = p.print(new sliceType$1([new whiteSpace(11)])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - extraTabs = extraTabs - (1) >> 0; - /* } */ case 4: - /* */ if (!($interfaceIsEqual(s.Type, $ifaceNil))) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (!($interfaceIsEqual(s.Type, $ifaceNil))) { */ case 6: - $r = p.expr(s.Type); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 7: - /* */ if (!(s.Values === sliceType$7.nil)) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (!(s.Values === sliceType$7.nil)) { */ case 9: - $r = p.print(new sliceType$1([new whiteSpace(11), new token.Token(42), new whiteSpace(32)])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.exprList(0, s.Values, 1, 0, 0, false); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - extraTabs = extraTabs - (1) >> 0; - /* } */ case 10: - /* */ if (!(s.Comment === ptrType$2.nil)) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (!(s.Comment === ptrType$2.nil)) { */ case 13: - /* while (true) { */ case 15: - /* if (!(extraTabs > 0)) { break; } */ if(!(extraTabs > 0)) { $s = 16; continue; } - $r = p.print(new sliceType$1([new whiteSpace(11)])); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - extraTabs = extraTabs - (1) >> 0; - $s = 15; continue; - case 16: - $r = p.setComment(s.Comment); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 14: - $s = -1; return; - /* */ } return; } var $f = {$blk: valueSpec, $c: true, $r, extraTabs, keepType, p, s, $s};return $f; - }; - sanitizeImportPath = function sanitizeImportPath$1(lit) { - var _i, _ref, _rune, _tuple, err, lit, r, s; - if (!((lit.Kind === 9))) { - return lit; - } - _tuple = strconv.Unquote(lit.Value); - s = _tuple[0]; - err = _tuple[1]; - if (!($interfaceIsEqual(err, $ifaceNil))) { - return lit; - } - if (s === "") { - return lit; - } - _ref = s; - _i = 0; - while (true) { - if (!(_i < _ref.length)) { break; } - _rune = $decodeRune(_ref, _i); - r = _rune[0]; - if (!unicode.IsGraphic(r) || unicode.IsSpace(r) || strings.ContainsRune("!\"#$%&'()*,:;<=>?[\\]^{|}`\xEF\xBF\xBD", r)) { - return lit; - } - _i += _rune[1]; - } - s = strconv.Quote(s); - if (s === lit.Value) { - return lit; - } - return new ast.BasicLit.ptr(lit.ValuePos, 9, s); - }; - $ptrType(printer).prototype.spec = function spec(spec$1, n, doIndent) { - var {_ref, doIndent, n, p, s, s$1, s$2, s$3, spec$1, $s, $r, $c} = $restore(this, {spec$1, n, doIndent}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - _ref = spec$1; - /* */ if ($assertType(_ref, ptrType$7, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$8, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if ($assertType(_ref, ptrType$7, true)[1]) { */ case 1: - s = _ref.$val; - $r = p.setComment(s.Doc); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!(s.Name === ptrType$4.nil)) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (!(s.Name === ptrType$4.nil)) { */ case 7: - $r = p.expr(s.Name); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 8: - $r = p.expr(sanitizeImportPath(s.Path)); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.setComment(s.Comment); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.setPos(s.EndPos); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 5; continue; - /* } else if ($assertType(_ref, ptrType$8, true)[1]) { */ case 2: - s$1 = _ref.$val; - /* */ if (!((n === 1))) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (!((n === 1))) { */ case 14: - $r = p.internalError(new sliceType$1([new $String("expected n = 1; got"), new $Int(n)])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 15: - $r = p.setComment(s$1.Doc); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.identList(s$1.Names, doIndent); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!($interfaceIsEqual(s$1.Type, $ifaceNil))) { $s = 19; continue; } - /* */ $s = 20; continue; - /* if (!($interfaceIsEqual(s$1.Type, $ifaceNil))) { */ case 19: - $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.expr(s$1.Type); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 20: - /* */ if (!(s$1.Values === sliceType$7.nil)) { $s = 23; continue; } - /* */ $s = 24; continue; - /* if (!(s$1.Values === sliceType$7.nil)) { */ case 23: - $r = p.print(new sliceType$1([new whiteSpace(32), new token.Token(42), new whiteSpace(32)])); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.exprList(0, s$1.Values, 1, 0, 0, false); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 24: - $r = p.setComment(s$1.Comment); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 5; continue; - /* } else if ($assertType(_ref, ptrType$9, true)[1]) { */ case 3: - s$2 = _ref.$val; - $r = p.setComment(s$2.Doc); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.expr(s$2.Name); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!(s$2.TypeParams === ptrType$28.nil)) { $s = 30; continue; } - /* */ $s = 31; continue; - /* if (!(s$2.TypeParams === ptrType$28.nil)) { */ case 30: - $r = p.parameters(s$2.TypeParams, 2); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 31: - /* */ if (n === 1) { $s = 33; continue; } - /* */ $s = 34; continue; - /* if (n === 1) { */ case 33: - $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 35; continue; - /* } else { */ case 34: - $r = p.print(new sliceType$1([new whiteSpace(11)])); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 35: - /* */ if (new token.Pos(s$2.Assign).IsValid()) { $s = 38; continue; } - /* */ $s = 39; continue; - /* if (new token.Pos(s$2.Assign).IsValid()) { */ case 38: - $r = p.print(new sliceType$1([new token.Token(42), new whiteSpace(32)])); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 39: - $r = p.expr(s$2.Type); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.setComment(s$2.Comment); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 5; continue; - /* } else { */ case 4: - s$3 = _ref; - $panic(new $String("unreachable")); - /* } */ case 5: - $s = -1; return; - /* */ } return; } var $f = {$blk: spec, $c: true, $r, _ref, doIndent, n, p, s, s$1, s$2, s$3, spec$1, $s};return $f; - }; - $ptrType(printer).prototype.genDecl = function genDecl(d) { - var {_i, _i$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, d, i, i$1, keepType, line, line$1, n, p, s, s$1, x, $s, $r, $c} = $restore(this, {d}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - line = [line]; - line$1 = [line$1]; - p = this; - $r = p.setComment(d.Doc); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.setPos(d.Pos()); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(d.Tok), new whiteSpace(32)])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (new token.Pos(d.Lparen).IsValid() || d.Specs.$length > 1) { $s = 4; continue; } - /* */ if (d.Specs.$length > 0) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (new token.Pos(d.Lparen).IsValid() || d.Specs.$length > 1) { */ case 4: - $r = p.setPos(d.Lparen); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(49)])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - n = d.Specs.$length; - /* */ if (n > 0) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (n > 0) { */ case 9: - $r = p.print(new sliceType$1([new whiteSpace(62), new whiteSpace(12)])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (n > 1 && ((d.Tok === 64) || (d.Tok === 85))) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (n > 1 && ((d.Tok === 64) || (d.Tok === 85))) { */ case 12: - _r = keepTypeColumn(d.Specs); /* */ $s = 15; case 15: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - keepType = _r; - line[0] = 0; - _ref = d.Specs; - _i = 0; - /* while (true) { */ case 16: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 17; continue; } - i = _i; - s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - /* */ if (i > 0) { $s = 18; continue; } - /* */ $s = 19; continue; - /* if (i > 0) { */ case 18: - _r$1 = s.Pos(); /* */ $s = 20; case 20: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = p.lineFor(_r$1); /* */ $s = 21; case 21: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = p.linebreak(_r$2, 1, 0, p.linesFrom(line[0]) > 0); /* */ $s = 22; case 22: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$3; - /* } */ case 19: - p.recordLine((line.$ptr || (line.$ptr = new ptrType$1(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, line)))); - $r = p.valueSpec($assertType(s, ptrType$8), ((i < 0 || i >= keepType.$length) ? ($throwRuntimeError("index out of range"), undefined) : keepType.$array[keepType.$offset + i])); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 16; continue; - case 17: - $s = 14; continue; - /* } else { */ case 13: - line$1[0] = 0; - _ref$1 = d.Specs; - _i$1 = 0; - /* while (true) { */ case 24: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 25; continue; } - i$1 = _i$1; - s$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - /* */ if (i$1 > 0) { $s = 26; continue; } - /* */ $s = 27; continue; - /* if (i$1 > 0) { */ case 26: - _r$4 = s$1.Pos(); /* */ $s = 28; case 28: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$5 = p.lineFor(_r$4); /* */ $s = 29; case 29: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$6 = p.linebreak(_r$5, 1, 0, p.linesFrom(line$1[0]) > 0); /* */ $s = 30; case 30: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _r$6; - /* } */ case 27: - p.recordLine((line$1.$ptr || (line$1.$ptr = new ptrType$1(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, line$1)))); - $r = p.spec(s$1, n, false); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$1++; - $s = 24; continue; - case 25: - /* } */ case 14: - $r = p.print(new sliceType$1([new whiteSpace(60), new whiteSpace(12)])); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 10: - $r = p.setPos(d.Rparen); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(54)])); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 6; continue; - /* } else if (d.Specs.$length > 0) { */ case 5: - $r = p.spec((x = d.Specs, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])), 1, true); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 6: - $s = -1; return; - /* */ } return; } var $f = {$blk: genDecl, $c: true, $r, _i, _i$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, d, i, i$1, keepType, line, line$1, n, p, s, s$1, x, $s};return $f; - }; - $ptrType(sizeCounter).prototype.Write = function Write$1(p) { - var _i, _ref, b, c, p; - c = this; - if (!c.hasNewline) { - _ref = p; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - b = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if ((b === 10) || (b === 12)) { - c.hasNewline = true; - break; - } - _i++; - } - } - c.size = c.size + (p.$length) >> 0; - return [p.$length, $ifaceNil]; - }; - $ptrType(printer).prototype.nodeSize = function nodeSize(n, maxSize) { - var {_entry, _key, _key$1, _r, _tuple, cfg, counter, err, found, maxSize, n, p, size, size$1, $s, $r, $c} = $restore(this, {n, maxSize}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - counter = [counter]; - size = 0; - p = this; - _tuple = (_entry = $mapIndex(p.nodeSizes,ast.Node.keyFor(n)), _entry !== undefined ? [_entry.v, true] : [0, false]); - size$1 = _tuple[0]; - found = _tuple[1]; - if (found) { - size = size$1; - $s = -1; return size; - } - size = maxSize + 1 >> 0; - _key = n; (p.nodeSizes || $throwRuntimeError("assignment to entry in nil map")).set(ast.Node.keyFor(_key), { k: _key, v: size }); - cfg = new Config.ptr(1, 0, 0); - counter[0] = new sizeCounter.ptr(false, 0); - _r = cfg.fprint(counter[0], p.fset, n, p.nodeSizes); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - err = _r; - if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return size; - } - if (counter[0].size <= maxSize && !counter[0].hasNewline) { - size = counter[0].size; - _key$1 = n; (p.nodeSizes || $throwRuntimeError("assignment to entry in nil map")).set(ast.Node.keyFor(_key$1), { k: _key$1, v: size }); - } - $s = -1; return size; - /* */ } return; } var $f = {$blk: nodeSize, $c: true, $r, _entry, _key, _key$1, _r, _tuple, cfg, counter, err, found, maxSize, n, p, size, size$1, $s};return $f; - }; - $ptrType(printer).prototype.numLines = function numLines(n) { - var {$24r, _r, _r$1, _r$2, _r$3, from, n, p, to, $s, $r, $c} = $restore(this, {n}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - _r = n.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - from = _r; - /* */ if (new token.Pos(from).IsValid()) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (new token.Pos(from).IsValid()) { */ case 2: - _r$1 = n.End(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - to = _r$1; - /* */ if (new token.Pos(to).IsValid()) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (new token.Pos(to).IsValid()) { */ case 5: - _r$2 = p.lineFor(to); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = p.lineFor(from); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r = (_r$2 - _r$3 >> 0) + 1 >> 0; - $s = 9; case 9: return $24r; - /* } */ case 6: - /* } */ case 3: - $s = -1; return 1073741824; - /* */ } return; } var $f = {$blk: numLines, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, from, n, p, to, $s};return $f; - }; - $ptrType(printer).prototype.bodySize = function bodySize(b, maxSize) { - var {_i, _r, _r$1, _r$2, _r$3, _r$4, _ref, _v, b, bodySize$1, i, maxSize, p, pos1, pos2, s, $s, $r, $c} = $restore(this, {b, maxSize}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - pos1 = b.Pos(); - pos2 = b.Rbrace; - if (!(new token.Pos(pos1).IsValid() && new token.Pos(pos2).IsValid())) { _v = false; $s = 3; continue s; } - _r = p.lineFor(pos1); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = p.lineFor(pos2); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = !((_r === _r$1)); case 3: - /* */ if (_v) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (_v) { */ case 1: - $s = -1; return maxSize + 1 >> 0; - /* } */ case 2: - if (b.List.$length > 5) { - $s = -1; return maxSize + 1 >> 0; - } - _r$2 = p.posFor(pos2); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = p.commentSizeBefore($clone(_r$2, token.Position)); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - bodySize$1 = _r$3; - _ref = b.List; - _i = 0; - /* while (true) { */ case 8: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 9; continue; } - i = _i; - s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (bodySize$1 > maxSize) { - /* break; */ $s = 9; continue; - } - if (i > 0) { - bodySize$1 = bodySize$1 + (2) >> 0; - } - _r$4 = p.nodeSize(s, maxSize); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - bodySize$1 = bodySize$1 + (_r$4) >> 0; - _i++; - $s = 8; continue; - case 9: - $s = -1; return bodySize$1; - /* */ } return; } var $f = {$blk: bodySize, $c: true, $r, _i, _r, _r$1, _r$2, _r$3, _r$4, _ref, _v, b, bodySize$1, i, maxSize, p, pos1, pos2, s, $s};return $f; - }; - $ptrType(printer).prototype.funcBody = function funcBody(headerSize, sep, b) { - var {_i, _r, _ref, b, headerSize, i, p, s, sep, $s, $deferred, $r, $c} = $restore(this, {headerSize, sep, b}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - p = [p]; - p[0] = this; - if (b === ptrType$50.nil) { - $s = -1; return; - } - $deferred.push([(function(p) { return function printer·funcBody·func1(level) { - var level; - p[0].level = level; - }; })(p), [p[0].level]]); - p[0].level = 0; - _r = p[0].bodySize(b, 100); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - /* */ if ((headerSize + _r >> 0) <= 100) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if ((headerSize + _r >> 0) <= 100) { */ case 1: - $r = p[0].print(new sliceType$1([new whiteSpace(sep)])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p[0].setPos(b.Lbrace); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p[0].print(new sliceType$1([new token.Token(51)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (b.List.$length > 0) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (b.List.$length > 0) { */ case 7: - $r = p[0].print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _ref = b.List; - _i = 0; - /* while (true) { */ case 10: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 11; continue; } - i = _i; - s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - /* */ if (i > 0) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (i > 0) { */ case 12: - $r = p[0].print(new sliceType$1([new token.Token(57), new whiteSpace(32)])); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 13: - $r = p[0].stmt(s, i === (b.List.$length - 1 >> 0)); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 10; continue; - case 11: - $r = p[0].print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 8: - $r = p[0].print(new sliceType$1([new pmode(2)])); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p[0].setPos(b.Rbrace); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p[0].print(new sliceType$1([new token.Token(56), new pmode(2)])); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 2: - /* */ if (!((sep === 0))) { $s = 20; continue; } - /* */ $s = 21; continue; - /* if (!((sep === 0))) { */ case 20: - $r = p[0].print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 21: - $r = p[0].block(b, 1); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: funcBody, $c: true, $r, _i, _r, _ref, b, headerSize, i, p, s, sep, $s, $deferred};return $f; } } - }; - $ptrType(printer).prototype.distanceFrom = function distanceFrom(startPos, startOutCol) { - var {_r, _v, p, startOutCol, startPos, $s, $r, $c} = $restore(this, {startPos, startOutCol}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - if (!(new token.Pos(startPos).IsValid() && p.pos.IsValid())) { _v = false; $s = 3; continue s; } - _r = p.posFor(startPos); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _v = _r.Line === p.pos.Line; case 3: - /* */ if (_v) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (_v) { */ case 1: - $s = -1; return p.out.Column - startOutCol >> 0; - /* } */ case 2: - $s = -1; return 1073741824; - /* */ } return; } var $f = {$blk: distanceFrom, $c: true, $r, _r, _v, p, startOutCol, startPos, $s};return $f; - }; - $ptrType(printer).prototype.funcDecl = function funcDecl(d) { - var {_r, _r$1, _r$2, d, p, startCol, $s, $r, $c} = $restore(this, {d}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - $r = p.setComment(d.Doc); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r = d.Pos(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $r = p.setPos(_r); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(71), new whiteSpace(32)])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - startCol = p.out.Column - 5 >> 0; - /* */ if (!(d.Recv === ptrType$28.nil)) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (!(d.Recv === ptrType$28.nil)) { */ case 5: - $r = p.parameters(d.Recv, 0); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 6: - $r = p.expr(d.Name); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.signature(d.Type); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$1 = d.Pos(); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = p.distanceFrom(_r$1, startCol); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $r = p.funcBody(_r$2, 11, d.Body); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: funcDecl, $c: true, $r, _r, _r$1, _r$2, d, p, startCol, $s};return $f; - }; - $ptrType(printer).prototype.decl = function decl(decl$1) { - var {_ref, d, d$1, d$2, d$3, decl$1, p, $s, $r, $c} = $restore(this, {decl$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - _ref = decl$1; - /* */ if ($assertType(_ref, ptrType$59, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if ($assertType(_ref, ptrType$59, true)[1]) { */ case 1: - d = _ref.$val; - $r = p.setPos(d.Pos()); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new $String("BadDecl")])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 5; continue; - /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 2: - d$1 = _ref.$val; - $r = p.genDecl(d$1); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 5; continue; - /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 3: - d$2 = _ref.$val; - $r = p.funcDecl(d$2); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 5; continue; - /* } else { */ case 4: - d$3 = _ref; - $panic(new $String("unreachable")); - /* } */ case 5: - $s = -1; return; - /* */ } return; } var $f = {$blk: decl, $c: true, $r, _ref, d, d$1, d$2, d$3, decl$1, p, $s};return $f; - }; - declToken = function declToken$1(decl$1) { - var _ref, d, d$1, decl$1, tok; - tok = 0; - tok = 0; - _ref = decl$1; - if ($assertType(_ref, ptrType$10, true)[1]) { - d = _ref.$val; - tok = d.Tok; - } else if ($assertType(_ref, ptrType$11, true)[1]) { - d$1 = _ref.$val; - tok = 71; - } - return tok; - }; - $ptrType(printer).prototype.declList = function declList(list) { - var {_arg, _arg$1, _arg$2, _i, _r, _r$1, _r$2, _r$3, _ref, _v, d, list, min, p, prev, tok, $s, $r, $c} = $restore(this, {list}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - tok = 0; - _ref = list; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - d = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - prev = tok; - tok = declToken(d); - /* */ if (p.output.$length > 0) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (p.output.$length > 0) { */ case 3: - min = 1; - if (!((prev === tok)) || !(getDoc(d) === ptrType$2.nil)) { - min = 2; - } - _r = d.Pos(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = p.lineFor(_r); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _arg = _r$1; - _arg$1 = min; - if (!(tok === 71)) { _v = false; $s = 7; continue s; } - _r$2 = p.numLines(d); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _v = _r$2 > 1; case 7: - _arg$2 = _v; - _r$3 = p.linebreak(_arg, _arg$1, 0, _arg$2); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$3; - /* } */ case 4: - $r = p.decl(d); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 1; continue; - case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: declList, $c: true, $r, _arg, _arg$1, _arg$2, _i, _r, _r$1, _r$2, _r$3, _ref, _v, d, list, min, p, prev, tok, $s};return $f; - }; - $ptrType(printer).prototype.file = function file(src) { - var {p, src, $s, $r, $c} = $restore(this, {src}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - $r = p.setComment(src.Doc); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.setPos(src.Pos()); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new token.Token(78), new whiteSpace(32)])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.expr(src.Name); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.declList(src.Decls); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = p.print(new sliceType$1([new whiteSpace(10)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: file, $c: true, $r, p, src, $s};return $f; - }; - $ptrType(printer).prototype.fixGoBuildLines = function fixGoBuildLines() { - var {_1, _arg, _arg$1, _i, _i$1, _i$2, _i$3, _i$4, _r, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tuple, _tuple$1, _tuple$2, after, blank, block$1, end, err, err$1, insert, line, lines, n, p, pos, pos$1, pos$2, pos$3, start, toDelete, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, y, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - if ((p.goBuild.$length + p.plusBuild.$length >> 0) === 0) { - $s = -1; return; - } - insert = 0; - pos = 0; - while (true) { - blank = true; - while (true) { - if (!(pos < p.output.$length && (((x = p.output, ((pos < 0 || pos >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pos])) === 32) || ((x$1 = p.output, ((pos < 0 || pos >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + pos])) === 9)))) { break; } - pos = pos + (1) >> 0; - } - if ((pos + 3 >> 0) < p.output.$length && ((x$2 = p.output, ((pos < 0 || pos >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + pos])) === 255) && ((x$3 = p.output, x$4 = pos + 1 >> 0, ((x$4 < 0 || x$4 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + x$4])) === 47) && ((x$5 = p.output, x$6 = pos + 2 >> 0, ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$6])) === 47)) { - blank = false; - while (true) { - if (!(pos < p.output.$length && !isNL((x$7 = p.output, ((pos < 0 || pos >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + pos]))))) { break; } - pos = pos + (1) >> 0; - } - } - if (pos >= p.output.$length || !isNL((x$8 = p.output, ((pos < 0 || pos >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + pos])))) { - break; - } - pos = pos + (1) >> 0; - if (blank) { - insert = pos; - } - } - if (p.goBuild.$length > 0 && (x$9 = p.goBuild, (0 >= x$9.$length ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + 0])) < insert) { - insert = (x$11 = p.goBuild, (0 >= x$11.$length ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + 0])); - } else if (p.plusBuild.$length > 0 && (x$10 = p.plusBuild, (0 >= x$10.$length ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + 0])) < insert) { - insert = (x$12 = p.plusBuild, (0 >= x$12.$length ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + 0])); - } - x$13 = $ifaceNil; - _1 = p.goBuild.$length; - /* */ if (_1 === (0)) { $s = 2; continue; } - /* */ if (_1 === (1)) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (_1 === (0)) { */ case 2: - _ref = p.plusBuild; - _i = 0; - /* while (true) { */ case 5: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 6; continue; } - pos$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r = constraint.Parse(p.commentTextAt(pos$1)); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - y = _tuple[0]; - err = _tuple[1]; - if (!($interfaceIsEqual(err, $ifaceNil))) { - x$13 = $ifaceNil; - /* break; */ $s = 6; continue; - } - if ($interfaceIsEqual(x$13, $ifaceNil)) { - x$13 = y; - } else { - x$13 = new constraint.AndExpr.ptr(x$13, y); - } - _i++; - $s = 5; continue; - case 6: - $s = 4; continue; - /* } else if (_1 === (1)) { */ case 3: - _r$1 = constraint.Parse(p.commentTextAt((x$14 = p.goBuild, (0 >= x$14.$length ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + 0])))); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$1 = _r$1; - x$13 = _tuple$1[0]; - /* } */ case 4: - case 1: - block$1 = sliceType.nil; - /* */ if ($interfaceIsEqual(x$13, $ifaceNil)) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if ($interfaceIsEqual(x$13, $ifaceNil)) { */ case 9: - _ref$1 = p.goBuild; - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - pos$2 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - block$1 = $appendSlice(block$1, p.lineAt(pos$2)); - _i$1++; - } - _ref$2 = p.plusBuild; - _i$2 = 0; - while (true) { - if (!(_i$2 < _ref$2.$length)) { break; } - pos$3 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); - block$1 = $appendSlice(block$1, p.lineAt(pos$3)); - _i$2++; - } - $s = 11; continue; - /* } else { */ case 10: - block$1 = $append(block$1, 255); - block$1 = $appendSlice(block$1, "//go:build "); - _arg = block$1; - _r$2 = x$13.String(); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _arg$1 = _r$2; - block$1 = $appendSlice(_arg, _arg$1); - block$1 = $append(block$1, 255, 10); - /* */ if (p.plusBuild.$length > 0) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (p.plusBuild.$length > 0) { */ case 13: - _r$3 = constraint.PlusBuildLines(x$13); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple$2 = _r$3; - lines = _tuple$2[0]; - err$1 = _tuple$2[1]; - /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 16: - _r$4 = err$1.Error(); /* */ $s = 18; case 18: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - lines = new sliceType$11(["// +build error: " + _r$4]); - /* } */ case 17: - _ref$3 = lines; - _i$3 = 0; - while (true) { - if (!(_i$3 < _ref$3.$length)) { break; } - line = ((_i$3 < 0 || _i$3 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$3]); - block$1 = $append(block$1, 255); - block$1 = $appendSlice(block$1, line); - block$1 = $append(block$1, 255, 10); - _i$3++; - } - /* } */ case 14: - /* } */ case 11: - block$1 = $append(block$1, 10); - toDelete = $appendSlice(p.goBuild, p.plusBuild); - $r = sort.Ints(toDelete); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - after = sliceType.nil; - start = insert; - _ref$4 = toDelete; - _i$4 = 0; - while (true) { - if (!(_i$4 < _ref$4.$length)) { break; } - end = ((_i$4 < 0 || _i$4 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$4]); - if (end < start) { - _i$4++; - continue; - } - after = appendLines(after, $subslice(p.output, start, end)); - start = end + p.lineAt(end).$length >> 0; - _i$4++; - } - after = appendLines(after, $subslice(p.output, start)); - n = after.$length; - if (n >= 2 && isNL((x$15 = n - 1 >> 0, ((x$15 < 0 || x$15 >= after.$length) ? ($throwRuntimeError("index out of range"), undefined) : after.$array[after.$offset + x$15]))) && isNL((x$16 = n - 2 >> 0, ((x$16 < 0 || x$16 >= after.$length) ? ($throwRuntimeError("index out of range"), undefined) : after.$array[after.$offset + x$16])))) { - after = $subslice(after, 0, (n - 1 >> 0)); - } - p.output = $subslice(p.output, 0, insert); - p.output = $appendSlice(p.output, block$1); - p.output = $appendSlice(p.output, after); - $s = -1; return; - /* */ } return; } var $f = {$blk: fixGoBuildLines, $c: true, $r, _1, _arg, _arg$1, _i, _i$1, _i$2, _i$3, _i$4, _r, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tuple, _tuple$1, _tuple$2, after, blank, block$1, end, err, err$1, insert, line, lines, n, p, pos, pos$1, pos$2, pos$3, start, toDelete, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, y, $s};return $f; - }; - appendLines = function appendLines$1(x, y) { - var x, x$1, x$2, y; - if (y.$length > 0 && isNL((0 >= y.$length ? ($throwRuntimeError("index out of range"), undefined) : y.$array[y.$offset + 0])) && ((x.$length === 0) || x.$length >= 2 && isNL((x$1 = x.$length - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1]))) && isNL((x$2 = x.$length - 2 >> 0, ((x$2 < 0 || x$2 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$2]))))) { - y = $subslice(y, 1); - } - return $appendSlice(x, y); - }; - $ptrType(printer).prototype.lineAt = function lineAt(start) { - var p, pos, start, x; - p = this; - pos = start; - while (true) { - if (!(pos < p.output.$length && !isNL((x = p.output, ((pos < 0 || pos >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pos]))))) { break; } - pos = pos + (1) >> 0; - } - if (pos < p.output.$length) { - pos = pos + (1) >> 0; - } - return $subslice(p.output, start, pos); - }; - $ptrType(printer).prototype.commentTextAt = function commentTextAt(start) { - var p, pos, start, x, x$1, x$2; - p = this; - if (start < p.output.$length && ((x = p.output, ((start < 0 || start >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + start])) === 255)) { - start = start + (1) >> 0; - } - pos = start; - while (true) { - if (!(pos < p.output.$length && !(((x$1 = p.output, ((pos < 0 || pos >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + pos])) === 255)) && !isNL((x$2 = p.output, ((pos < 0 || pos >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + pos]))))) { break; } - pos = pos + (1) >> 0; - } - return ($bytesToString($subslice(p.output, start, pos))); - }; - isNL = function isNL$1(b) { - var b; - return (b === 10) || (b === 12); - }; - formatDocComment = function formatDocComment$1(list) { - var {_i, _i$1, _r, _r$1, _ref, _ref$1, _tmp, _tmp$1, _tuple, _tuple$1, after, b, c, c$1, c$2, d, directives, found, kind, line, list, out, p, pr, slash, text, $s, $r, $c} = $restore(this, {list}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _tmp = ""; - _tmp$1 = ""; - kind = _tmp; - text = _tmp$1; - directives = sliceType$9.nil; - if ((list.$length === 1) && strings.HasPrefix((0 >= list.$length ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + 0]).Text, "/*")) { - kind = "/*"; - text = (0 >= list.$length ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + 0]).Text; - if (!strings.Contains(text, "\n") || allStars(text)) { - $s = -1; return list; - } - text = $substring(text, 2, (text.length - 2 >> 0)); - } else if (strings.HasPrefix((0 >= list.$length ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + 0]).Text, "//")) { - kind = "//"; - b = new strings.Builder.ptr(ptrType$60.nil, sliceType.nil); - _ref = list; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _tuple = strings.CutPrefix(c.Text, "//"); - after = _tuple[0]; - found = _tuple[1]; - if (!found) { - $s = -1; return list; - } - if (isDirective(after)) { - directives = $append(directives, c); - _i++; - continue; - } - b.WriteString(strings.TrimPrefix(after, " ")); - b.WriteString("\n"); - _i++; - } - text = b.String(); - } else { - $s = -1; return list; - } - if (text === "") { - $s = -1; return list; - } - p = new comment.Parser.ptr(false, $throwNilPointerError, $throwNilPointerError); - _r = p.Parse(text); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - d = _r; - pr = new comment.Printer.ptr(0, $throwNilPointerError, $throwNilPointerError, "", "", "", 0); - _r$1 = pr.Comment(d); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - text = ($bytesToString(_r$1)); - slash = (0 >= list.$length ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + 0]).Slash; - if (kind === "/*") { - c$1 = new ast.Comment.ptr(slash, "/*\n" + text + "*/"); - $s = -1; return new sliceType$9([c$1]); - } - out = sliceType$9.nil; - while (true) { - if (!(!(text === ""))) { break; } - line = ""; - _tuple$1 = strings.Cut(text, "\n"); - line = _tuple$1[0]; - text = _tuple$1[1]; - if (line === "") { - line = "//"; - } else if (strings.HasPrefix(line, "\t")) { - line = "//" + line; - } else { - line = "// " + line; - } - out = $append(out, new ast.Comment.ptr(slash, line)); - } - if (directives.$length > 0) { - out = $append(out, new ast.Comment.ptr(slash, "//")); - _ref$1 = directives; - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - c$2 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - out = $append(out, new ast.Comment.ptr(slash, c$2.Text)); - _i$1++; - } - } - $s = -1; return out; - /* */ } return; } var $f = {$blk: formatDocComment$1, $c: true, $r, _i, _i$1, _r, _r$1, _ref, _ref$1, _tmp, _tmp$1, _tuple, _tuple$1, after, b, c, c$1, c$2, d, directives, found, kind, line, list, out, p, pr, slash, text, $s};return $f; - }; - isDirective = function isDirective$1(c) { - var b, c, colon, i; - if (strings.HasPrefix(c, "line ") || strings.HasPrefix(c, "extern ") || strings.HasPrefix(c, "export ")) { - return true; - } - colon = strings.Index(c, ":"); - if (colon <= 0 || (colon + 1 >> 0) >= c.length) { - return false; - } - i = 0; - while (true) { - if (!(i <= (colon + 1 >> 0))) { break; } - if (i === colon) { - i = i + (1) >> 0; - continue; - } - b = c.charCodeAt(i); - if (!(97 <= b && b <= 122 || 48 <= b && b <= 57)) { - return false; - } - i = i + (1) >> 0; - } - return true; - }; - allStars = function allStars$1(text) { - var i, j, text; - i = 0; - while (true) { - if (!(i < text.length)) { break; } - if (text.charCodeAt(i) === 10) { - j = i + 1 >> 0; - while (true) { - if (!(j < text.length && ((text.charCodeAt(j) === 32) || (text.charCodeAt(j) === 9)))) { break; } - j = j + (1) >> 0; - } - if (j < text.length && !((text.charCodeAt(j) === 42))) { - return false; - } - } - i = i + (1) >> 0; - } - return true; - }; - ptrType$15.methods = [{prop: "internalError", name: "internalError", pkg: "go/printer", typ: $funcType([sliceType$1], [], true)}, {prop: "commentsHaveNewline", name: "commentsHaveNewline", pkg: "go/printer", typ: $funcType([sliceType$9], [$Bool], false)}, {prop: "nextComment", name: "nextComment", pkg: "go/printer", typ: $funcType([], [], false)}, {prop: "commentBefore", name: "commentBefore", pkg: "go/printer", typ: $funcType([token.Position], [$Bool], false)}, {prop: "commentSizeBefore", name: "commentSizeBefore", pkg: "go/printer", typ: $funcType([token.Position], [$Int], false)}, {prop: "recordLine", name: "recordLine", pkg: "go/printer", typ: $funcType([ptrType$1], [], false)}, {prop: "linesFrom", name: "linesFrom", pkg: "go/printer", typ: $funcType([$Int], [$Int], false)}, {prop: "posFor", name: "posFor", pkg: "go/printer", typ: $funcType([token.Pos], [token.Position], false)}, {prop: "lineFor", name: "lineFor", pkg: "go/printer", typ: $funcType([token.Pos], [$Int], false)}, {prop: "writeLineDirective", name: "writeLineDirective", pkg: "go/printer", typ: $funcType([token.Position], [], false)}, {prop: "writeIndent", name: "writeIndent", pkg: "go/printer", typ: $funcType([], [], false)}, {prop: "writeByte", name: "writeByte", pkg: "go/printer", typ: $funcType([$Uint8, $Int], [], false)}, {prop: "writeString", name: "writeString", pkg: "go/printer", typ: $funcType([token.Position, $String, $Bool], [], false)}, {prop: "writeCommentPrefix", name: "writeCommentPrefix", pkg: "go/printer", typ: $funcType([token.Position, token.Position, ptrType$3, token.Token], [], false)}, {prop: "writeComment", name: "writeComment", pkg: "go/printer", typ: $funcType([ptrType$3], [], false)}, {prop: "writeCommentSuffix", name: "writeCommentSuffix", pkg: "go/printer", typ: $funcType([$Bool], [$Bool, $Bool], false)}, {prop: "containsLinebreak", name: "containsLinebreak", pkg: "go/printer", typ: $funcType([], [$Bool], false)}, {prop: "intersperseComments", name: "intersperseComments", pkg: "go/printer", typ: $funcType([token.Position, token.Token], [$Bool, $Bool], false)}, {prop: "writeWhitespace", name: "writeWhitespace", pkg: "go/printer", typ: $funcType([$Int], [], false)}, {prop: "setPos", name: "setPos", pkg: "go/printer", typ: $funcType([token.Pos], [], false)}, {prop: "print", name: "print", pkg: "go/printer", typ: $funcType([sliceType$1], [], true)}, {prop: "flush", name: "flush", pkg: "go/printer", typ: $funcType([token.Position, token.Token], [$Bool, $Bool], false)}, {prop: "printNode", name: "printNode", pkg: "go/printer", typ: $funcType([$emptyInterface], [$error], false)}, {prop: "free", name: "free", pkg: "go/printer", typ: $funcType([], [], false)}, {prop: "linebreak", name: "linebreak", pkg: "go/printer", typ: $funcType([$Int, $Int, whiteSpace, $Bool], [$Int], false)}, {prop: "setComment", name: "setComment", pkg: "go/printer", typ: $funcType([ptrType$2], [], false)}, {prop: "identList", name: "identList", pkg: "go/printer", typ: $funcType([sliceType$8, $Bool], [], false)}, {prop: "exprList", name: "exprList", pkg: "go/printer", typ: $funcType([token.Pos, sliceType$7, $Int, exprListMode, token.Pos, $Bool], [], false)}, {prop: "parameters", name: "parameters", pkg: "go/printer", typ: $funcType([ptrType$28, paramMode], [], false)}, {prop: "signature", name: "signature", pkg: "go/printer", typ: $funcType([ptrType$23], [], false)}, {prop: "isOneLineFieldList", name: "isOneLineFieldList", pkg: "go/printer", typ: $funcType([sliceType$12], [$Bool], false)}, {prop: "setLineComment", name: "setLineComment", pkg: "go/printer", typ: $funcType([$String], [], false)}, {prop: "fieldList", name: "fieldList", pkg: "go/printer", typ: $funcType([ptrType$28, $Bool, $Bool], [], false)}, {prop: "binaryExpr", name: "binaryExpr", pkg: "go/printer", typ: $funcType([ptrType$19, $Int, $Int, $Int], [], false)}, {prop: "expr1", name: "expr1", pkg: "go/printer", typ: $funcType([ast.Expr, $Int, $Int], [], false)}, {prop: "possibleSelectorExpr", name: "possibleSelectorExpr", pkg: "go/printer", typ: $funcType([ast.Expr, $Int, $Int], [$Bool], false)}, {prop: "selectorExpr", name: "selectorExpr", pkg: "go/printer", typ: $funcType([ptrType$31, $Int, $Bool], [$Bool], false)}, {prop: "expr0", name: "expr0", pkg: "go/printer", typ: $funcType([ast.Expr, $Int], [], false)}, {prop: "expr", name: "expr", pkg: "go/printer", typ: $funcType([ast.Expr], [], false)}, {prop: "stmtList", name: "stmtList", pkg: "go/printer", typ: $funcType([sliceType$5, $Int, $Bool], [], false)}, {prop: "block", name: "block", pkg: "go/printer", typ: $funcType([ptrType$50, $Int], [], false)}, {prop: "controlClause", name: "controlClause", pkg: "go/printer", typ: $funcType([$Bool, ast.Stmt, ast.Expr, ast.Stmt], [], false)}, {prop: "indentList", name: "indentList", pkg: "go/printer", typ: $funcType([sliceType$7], [$Bool], false)}, {prop: "stmt", name: "stmt", pkg: "go/printer", typ: $funcType([ast.Stmt, $Bool], [], false)}, {prop: "valueSpec", name: "valueSpec", pkg: "go/printer", typ: $funcType([ptrType$8, $Bool], [], false)}, {prop: "spec", name: "spec", pkg: "go/printer", typ: $funcType([ast.Spec, $Int, $Bool], [], false)}, {prop: "genDecl", name: "genDecl", pkg: "go/printer", typ: $funcType([ptrType$10], [], false)}, {prop: "nodeSize", name: "nodeSize", pkg: "go/printer", typ: $funcType([ast.Node, $Int], [$Int], false)}, {prop: "numLines", name: "numLines", pkg: "go/printer", typ: $funcType([ast.Node], [$Int], false)}, {prop: "bodySize", name: "bodySize", pkg: "go/printer", typ: $funcType([ptrType$50, $Int], [$Int], false)}, {prop: "funcBody", name: "funcBody", pkg: "go/printer", typ: $funcType([$Int, whiteSpace, ptrType$50], [], false)}, {prop: "distanceFrom", name: "distanceFrom", pkg: "go/printer", typ: $funcType([token.Pos, $Int], [$Int], false)}, {prop: "funcDecl", name: "funcDecl", pkg: "go/printer", typ: $funcType([ptrType$11], [], false)}, {prop: "decl", name: "decl", pkg: "go/printer", typ: $funcType([ast.Decl], [], false)}, {prop: "declList", name: "declList", pkg: "go/printer", typ: $funcType([sliceType$6], [], false)}, {prop: "file", name: "file", pkg: "go/printer", typ: $funcType([ptrType$12], [], false)}, {prop: "fixGoBuildLines", name: "fixGoBuildLines", pkg: "go/printer", typ: $funcType([], [], false)}, {prop: "lineAt", name: "lineAt", pkg: "go/printer", typ: $funcType([$Int], [sliceType], false)}, {prop: "commentTextAt", name: "commentTextAt", pkg: "go/printer", typ: $funcType([$Int], [$String], false)}]; - ptrType$61.methods = [{prop: "resetSpace", name: "resetSpace", pkg: "go/printer", typ: $funcType([], [], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}]; - ptrType$62.methods = [{prop: "fprint", name: "fprint", pkg: "go/printer", typ: $funcType([io.Writer, ptrType, $emptyInterface, mapType], [$error], false)}, {prop: "Fprint", name: "Fprint", pkg: "", typ: $funcType([io.Writer, ptrType, $emptyInterface], [$error], false)}]; - ptrType$63.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}]; - commentInfo.init("go/printer", [{prop: "cindex", name: "cindex", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "comment", name: "comment", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "commentOffset", name: "commentOffset", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "commentNewline", name: "commentNewline", embedded: false, exported: false, typ: $Bool, tag: ""}]); - printer.init("go/printer", [{prop: "Config", name: "Config", embedded: true, exported: true, typ: Config, tag: ""}, {prop: "fset", name: "fset", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "output", name: "output", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "indent", name: "indent", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "level", name: "level", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "mode", name: "mode", embedded: false, exported: false, typ: pmode, tag: ""}, {prop: "endAlignment", name: "endAlignment", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "impliedSemi", name: "impliedSemi", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "lastTok", name: "lastTok", embedded: false, exported: false, typ: token.Token, tag: ""}, {prop: "prevOpen", name: "prevOpen", embedded: false, exported: false, typ: token.Token, tag: ""}, {prop: "wsbuf", name: "wsbuf", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "goBuild", name: "goBuild", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "plusBuild", name: "plusBuild", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Position, tag: ""}, {prop: "out", name: "out", embedded: false, exported: false, typ: token.Position, tag: ""}, {prop: "last", name: "last", embedded: false, exported: false, typ: token.Position, tag: ""}, {prop: "linePtr", name: "linePtr", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "sourcePosErr", name: "sourcePosErr", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "comments", name: "comments", embedded: false, exported: false, typ: sliceType$4, tag: ""}, {prop: "useNodeComments", name: "useNodeComments", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "commentInfo", name: "commentInfo", embedded: true, exported: false, typ: commentInfo, tag: ""}, {prop: "nodeSizes", name: "nodeSizes", embedded: false, exported: false, typ: mapType, tag: ""}, {prop: "cachedPos", name: "cachedPos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "cachedLine", name: "cachedLine", embedded: false, exported: false, typ: $Int, tag: ""}]); - trimmer.init("go/printer", [{prop: "output", name: "output", embedded: false, exported: false, typ: io.Writer, tag: ""}, {prop: "state", name: "state", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "space", name: "space", embedded: false, exported: false, typ: sliceType, tag: ""}]); - Config.init("", [{prop: "Mode", name: "Mode", embedded: false, exported: true, typ: Mode, tag: ""}, {prop: "Tabwidth", name: "Tabwidth", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Indent", name: "Indent", embedded: false, exported: true, typ: $Int, tag: ""}]); - CommentedNode.init("", [{prop: "Node", name: "Node", embedded: false, exported: true, typ: $emptyInterface, tag: ""}, {prop: "Comments", name: "Comments", embedded: false, exported: true, typ: sliceType$4, tag: ""}]); - sizeCounter.init("go/printer", [{prop: "hasNewline", name: "hasNewline", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: $Int, tag: ""}]); - }; - $init = function() { - $pkg.$init = function() {}; - /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: - $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = ast.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = constraint.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = comment.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = token.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = io.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = math.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = os.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = sort.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = strconv.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = strings.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = sync.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = tabwriter.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = unicode.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = utf8.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - aNewline = (new sliceType($stringToBytes("\n"))); - printerPool = new sync.Pool.ptr(sliceType$1.nil, (function func1() { - return new printer.ptr(new Config.ptr(0, 0, 0), ptrType.nil, $makeSlice(sliceType, 0, 16384), 0, 0, 0, false, false, 0, 0, $makeSlice(sliceType$2, 0, 16), sliceType$3.nil, sliceType$3.nil, new token.Position.ptr("", 0, 0, 0), new token.Position.ptr("", 0, 0, 0), new token.Position.ptr("", 0, 0, 0), ptrType$1.nil, $ifaceNil, sliceType$4.nil, false, new commentInfo.ptr(0, ptrType$2.nil, 0, false), false, 0, 0); - })); - /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; - }; - $pkg.$init = $init; - return $pkg; -})(); -$packages["go/format"] = (function() { - var $pkg = {}, $init, bytes, fmt, ast, parser, printer, token, io, strings, ptrType, sliceType, config, parse, format, isSpace, Source; - bytes = $packages["bytes"]; - fmt = $packages["fmt"]; - ast = $packages["go/ast"]; - parser = $packages["go/parser"]; - printer = $packages["go/printer"]; - token = $packages["go/token"]; - io = $packages["io"]; - strings = $packages["strings"]; - $pkg.$finishSetup = function() { - ptrType = $ptrType(ast.File); - sliceType = $sliceType($Uint8); - parse = function parse$1(fset, filename, src, fragmentOk) { - var {_r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, _tuple$2, _v, err, file, filename, fragmentOk, fset, fsrc, indentAdj, psrc, sourceAdj, src, $s, $r, $c} = $restore(this, {fset, filename, src, fragmentOk}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - file = ptrType.nil; - sourceAdj = $throwNilPointerError; - indentAdj = 0; - err = $ifaceNil; - _r = parser.ParseFile(fset, filename, src, 68); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - file = _tuple[0]; - err = _tuple[1]; - if ($interfaceIsEqual(err, $ifaceNil) || !fragmentOk) { _v = true; $s = 4; continue s; } - _r$1 = err.Error(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = strings.Contains(_r$1, "expected 'package'"); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _v = !_r$2; case 4: - /* */ if (_v) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (_v) { */ case 2: - $s = -1; return [file, sourceAdj, indentAdj, err]; - /* } */ case 3: - psrc = $appendSlice((new sliceType($stringToBytes("package p;"))), src); - _r$3 = parser.ParseFile(fset, filename, psrc, 68); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple$1 = _r$3; - file = _tuple$1[0]; - err = _tuple$1[1]; - /* */ if ($interfaceIsEqual(err, $ifaceNil)) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if ($interfaceIsEqual(err, $ifaceNil)) { */ case 8: - sourceAdj = (function parse·func1(src$1, indent) { - var {$24r, _r$4, indent, src$1, $s, $r, $c} = $restore(this, {src$1, indent}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - src$1 = $subslice(src$1, (indent + 10 >> 0)); - _r$4 = bytes.TrimSpace(src$1); /* */ $s = 1; case 1: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $24r = _r$4; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: parse·func1, $c: true, $r, $24r, _r$4, indent, src$1, $s};return $f; - }); - $s = -1; return [file, sourceAdj, indentAdj, err]; - /* } */ case 9: - _r$4 = err.Error(); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$5 = strings.Contains(_r$4, "expected declaration"); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* */ if (!_r$5) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (!_r$5) { */ case 10: - $s = -1; return [file, sourceAdj, indentAdj, err]; - /* } */ case 11: - fsrc = $append($appendSlice((new sliceType($stringToBytes("package p; func _() {"))), src), 10, 10, 125); - _r$6 = parser.ParseFile(fset, filename, fsrc, 68); /* */ $s = 14; case 14: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _tuple$2 = _r$6; - file = _tuple$2[0]; - err = _tuple$2[1]; - if ($interfaceIsEqual(err, $ifaceNil)) { - sourceAdj = (function parse·func2(src$1, indent) { - var {$24r, _r$7, indent, src$1, $s, $r, $c} = $restore(this, {src$1, indent}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (indent < 0) { - indent = 0; - } - src$1 = $subslice(src$1, (($imul(2, indent)) + 21 >> 0)); - src$1 = $subslice(src$1, 0, (src$1.$length - 2 >> 0)); - _r$7 = bytes.TrimSpace(src$1); /* */ $s = 1; case 1: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - $24r = _r$7; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: parse·func2, $c: true, $r, $24r, _r$7, indent, src$1, $s};return $f; - }); - indentAdj = -1; - } - $s = -1; return [file, sourceAdj, indentAdj, err]; - /* */ } return; } var $f = {$blk: parse$1, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, _tuple$2, _v, err, file, filename, fragmentOk, fset, fsrc, indentAdj, psrc, sourceAdj, src, $s};return $f; - }; - format = function format$1(fset, file, sourceAdj, indentAdj, src, cfg) { - var {_1, _i, _r, _r$1, _r$2, _ref, _tmp, _tmp$1, b, buf, buf$1, cfg, err, err$1, file, fset, hasSpace, i, i$1, indent, indentAdj, j, out, res, sourceAdj, src, x, $s, $r, $c} = $restore(this, {fset, file, sourceAdj, indentAdj, src, cfg}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - buf = [buf]; - buf$1 = [buf$1]; - /* */ if (sourceAdj === $throwNilPointerError) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (sourceAdj === $throwNilPointerError) { */ case 1: - buf[0] = new bytes.Buffer.ptr(sliceType.nil, 0, 0); - _r = cfg.Fprint(buf[0], fset, file); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - err = _r; - if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [sliceType.nil, err]; - } - $s = -1; return [buf[0].Bytes(), $ifaceNil]; - /* } */ case 2: - _tmp = 0; - _tmp$1 = 0; - i = _tmp; - j = _tmp$1; - while (true) { - if (!(j < src.$length && isSpace(((j < 0 || j >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + j])))) { break; } - if (((j < 0 || j >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + j]) === 10) { - i = j + 1 >> 0; - } - j = j + (1) >> 0; - } - res = sliceType.nil; - res = $appendSlice(res, $subslice(src, 0, i)); - indent = 0; - hasSpace = false; - _ref = $subslice(src, i, j); - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - b = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _1 = b; - if (_1 === (32)) { - hasSpace = true; - } else if (_1 === (9)) { - indent = indent + (1) >> 0; - } - _i++; - } - if ((indent === 0) && hasSpace) { - indent = 1; - } - i$1 = 0; - while (true) { - if (!(i$1 < indent)) { break; } - res = $append(res, 9); - i$1 = i$1 + (1) >> 0; - } - cfg.Indent = indent + indentAdj >> 0; - buf$1[0] = new bytes.Buffer.ptr(sliceType.nil, 0, 0); - _r$1 = cfg.Fprint(buf$1[0], fset, file); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - err$1 = _r$1; - if (!($interfaceIsEqual(err$1, $ifaceNil))) { - $s = -1; return [sliceType.nil, err$1]; - } - _r$2 = sourceAdj(buf$1[0].Bytes(), cfg.Indent); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - out = _r$2; - if (out.$length === 0) { - $s = -1; return [src, $ifaceNil]; - } - res = $appendSlice(res, out); - i = src.$length; - while (true) { - if (!(i > 0 && isSpace((x = i - 1 >> 0, ((x < 0 || x >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x]))))) { break; } - i = i - (1) >> 0; - } - $s = -1; return [$appendSlice(res, $subslice(src, i)), $ifaceNil]; - /* */ } return; } var $f = {$blk: format$1, $c: true, $r, _1, _i, _r, _r$1, _r$2, _ref, _tmp, _tmp$1, b, buf, buf$1, cfg, err, err$1, file, fset, hasSpace, i, i$1, indent, indentAdj, j, out, res, sourceAdj, src, x, $s};return $f; - }; - isSpace = function isSpace$1(b) { - var b; - return (b === 32) || (b === 9) || (b === 10) || (b === 13); - }; - Source = function Source$1(src) { - var {$24r, _r, _r$1, _tuple, err, file, fset, indentAdj, sourceAdj, src, $s, $r, $c} = $restore(this, {src}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - fset = token.NewFileSet(); - _r = parse(fset, "", src, true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - file = _tuple[0]; - sourceAdj = _tuple[1]; - indentAdj = _tuple[2]; - err = _tuple[3]; - if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [sliceType.nil, err]; - } - /* */ if (sourceAdj === $throwNilPointerError) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (sourceAdj === $throwNilPointerError) { */ case 2: - $r = ast.SortImports(fset, file); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 3: - _r$1 = format(fset, file, sourceAdj, indentAdj, src, $clone(config, printer.Config)); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 6; case 6: return $24r; - /* */ } return; } var $f = {$blk: Source$1, $c: true, $r, $24r, _r, _r$1, _tuple, err, file, fset, indentAdj, sourceAdj, src, $s};return $f; - }; - $pkg.Source = Source; - }; - $init = function() { - $pkg.$init = function() {}; - /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: - $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = fmt.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = ast.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = parser.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = printer.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = token.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = io.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = strings.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - config = new printer.Config.ptr(1073741830, 8, 0); - /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; - }; - $pkg.$init = $init; - return $pkg; -})(); -$packages["container/heap"] = (function() { - var $pkg = {}, $init, sort, Init, Pop, Fix, up, down; - sort = $packages["sort"]; - $pkg.$finishSetup = function() { - Init = function Init$1(h) { - var {_q, _r, _r$1, h, i, n, $s, $r, $c} = $restore(this, {h}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = h.Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - n = _r; - i = (_q = n / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) - 1 >> 0; - /* while (true) { */ case 2: - /* if (!(i >= 0)) { break; } */ if(!(i >= 0)) { $s = 3; continue; } - _r$1 = down(h, i, n); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - i = i - (1) >> 0; - $s = 2; continue; - case 3: - $s = -1; return; - /* */ } return; } var $f = {$blk: Init$1, $c: true, $r, _q, _r, _r$1, h, i, n, $s};return $f; - }; - $pkg.Init = Init; - Pop = function Pop$1(h) { - var {$24r, _r, _r$1, _r$2, h, n, $s, $r, $c} = $restore(this, {h}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = h.Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - n = _r - 1 >> 0; - $r = h.Swap(0, n); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$1 = down(h, 0, n); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - _r$2 = h.Pop(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 5; case 5: return $24r; - /* */ } return; } var $f = {$blk: Pop$1, $c: true, $r, $24r, _r, _r$1, _r$2, h, n, $s};return $f; - }; - $pkg.Pop = Pop; - Fix = function Fix$1(h, i) { - var {_arg, _arg$1, _arg$2, _r, _r$1, h, i, $s, $r, $c} = $restore(this, {h, i}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _arg = h; - _arg$1 = i; - _r = h.Len(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _arg$2 = _r; - _r$1 = down(_arg, _arg$1, _arg$2); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (!_r$1) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!_r$1) { */ case 1: - $r = up(h, i); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: Fix$1, $c: true, $r, _arg, _arg$1, _arg$2, _r, _r$1, h, i, $s};return $f; - }; - $pkg.Fix = Fix; - up = function up$1(h, j) { - var {_q, _r, _v, h, i, j, $s, $r, $c} = $restore(this, {h, j}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - /* while (true) { */ case 1: - i = (_q = ((j - 1 >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); - if (i === j) { _v = true; $s = 5; continue s; } - _r = h.Less(j, i); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _v = !_r; case 5: - /* */ if (_v) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (_v) { */ case 3: - /* break; */ $s = 2; continue; - /* } */ case 4: - $r = h.Swap(i, j); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - j = i; - $s = 1; continue; - case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: up$1, $c: true, $r, _q, _r, _v, h, i, j, $s};return $f; - }; - down = function down$1(h, i0, n) { - var {_r, _r$1, _v, h, i, i0, j, j1, j2, n, $s, $r, $c} = $restore(this, {h, i0, n}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - i = i0; - /* while (true) { */ case 1: - j1 = ($imul(2, i)) + 1 >> 0; - if (j1 >= n || j1 < 0) { - /* break; */ $s = 2; continue; - } - j = j1; - j2 = j1 + 1 >> 0; - if (!(j2 < n)) { _v = false; $s = 5; continue s; } - _r = h.Less(j2, j1); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _v = _r; case 5: - /* */ if (_v) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (_v) { */ case 3: - j = j2; - /* } */ case 4: - _r$1 = h.Less(j, i); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (!_r$1) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (!_r$1) { */ case 7: - /* break; */ $s = 2; continue; - /* } */ case 8: - $r = h.Swap(i, j); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - i = j; - $s = 1; continue; - case 2: - $s = -1; return i > i0; - /* */ } return; } var $f = {$blk: down$1, $c: true, $r, _r, _r$1, _v, h, i, i0, j, j1, j2, n, $s};return $f; - }; - }; - $init = function() { - $pkg.$init = function() {}; - /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: - $r = sort.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; - }; - $pkg.$init = $init; - return $pkg; -})(); -$packages["encoding/binary"] = (function() { - var $pkg = {}, $init, errors, io, math, reflect, sync, bigEndian, sliceType, overflow; - errors = $packages["errors"]; - io = $packages["io"]; - math = $packages["math"]; - reflect = $packages["reflect"]; - sync = $packages["sync"]; - bigEndian = $newType(0, $kindStruct, "binary.bigEndian", true, "encoding/binary", false, function() { this.$val = this; }); - $pkg.bigEndian = bigEndian; - $pkg.$finishSetup = function() { - sliceType = $sliceType($Uint8); - $ptrType(bigEndian).prototype.Uint16 = function Uint16$1(b) { - var b; - $unused((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1])); - return ((((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]) << 16 >>> 16)) | ((((0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]) << 16 >>> 16)) << 8 << 16 >>> 16)) >>> 0; - }; - bigEndian.prototype.Uint16 = function(...$args) { return this.$val.Uint16(...$args); }; - $ptrType(bigEndian).prototype.PutUint16 = function PutUint16$1(b, v) { - var b, v; - $unused((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1])); - (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0] = (((v >>> 8 << 16 >>> 16) << 24 >>> 24))); - (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1] = ((v << 24 >>> 24))); - }; - bigEndian.prototype.PutUint16 = function(...$args) { return this.$val.PutUint16(...$args); }; - $ptrType(bigEndian).prototype.AppendUint16 = function AppendUint16$1(b, v) { - var b, v; - return $append(b, (((v >>> 8 << 16 >>> 16) << 24 >>> 24)), ((v << 24 >>> 24))); - }; - bigEndian.prototype.AppendUint16 = function(...$args) { return this.$val.AppendUint16(...$args); }; - $ptrType(bigEndian).prototype.Uint32 = function Uint32$1(b) { - var b; - $unused((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3])); - return ((((((((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]) >>> 0)) | ((((2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]) >>> 0)) << 8 >>> 0)) >>> 0) | ((((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]) >>> 0)) << 16 >>> 0)) >>> 0) | ((((0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]) >>> 0)) << 24 >>> 0)) >>> 0; - }; - bigEndian.prototype.Uint32 = function(...$args) { return this.$val.Uint32(...$args); }; - $ptrType(bigEndian).prototype.PutUint32 = function PutUint32$1(b, v) { - var b, v; - $unused((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3])); - (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0] = (((v >>> 24 >>> 0) << 24 >>> 24))); - (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1] = (((v >>> 16 >>> 0) << 24 >>> 24))); - (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2] = (((v >>> 8 >>> 0) << 24 >>> 24))); - (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3] = ((v << 24 >>> 24))); - }; - bigEndian.prototype.PutUint32 = function(...$args) { return this.$val.PutUint32(...$args); }; - $ptrType(bigEndian).prototype.AppendUint32 = function AppendUint32$1(b, v) { - var b, v; - return $append(b, (((v >>> 24 >>> 0) << 24 >>> 24)), (((v >>> 16 >>> 0) << 24 >>> 24)), (((v >>> 8 >>> 0) << 24 >>> 24)), ((v << 24 >>> 24))); - }; - bigEndian.prototype.AppendUint32 = function(...$args) { return this.$val.AppendUint32(...$args); }; - $ptrType(bigEndian).prototype.Uint64 = function Uint64$1(b) { - var b, x, x$1, x$10, x$11, x$12, x$13, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; - $unused((7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7])); - return (x = (x$1 = (x$2 = (x$3 = (x$4 = (x$5 = (x$6 = (new $Uint64(0, (7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7]))), x$7 = $shiftLeft64((new $Uint64(0, (6 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 6]))), 8), new $Uint64(x$6.$high | x$7.$high, (x$6.$low | x$7.$low) >>> 0)), x$8 = $shiftLeft64((new $Uint64(0, (5 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 5]))), 16), new $Uint64(x$5.$high | x$8.$high, (x$5.$low | x$8.$low) >>> 0)), x$9 = $shiftLeft64((new $Uint64(0, (4 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 4]))), 24), new $Uint64(x$4.$high | x$9.$high, (x$4.$low | x$9.$low) >>> 0)), x$10 = $shiftLeft64((new $Uint64(0, (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]))), 32), new $Uint64(x$3.$high | x$10.$high, (x$3.$low | x$10.$low) >>> 0)), x$11 = $shiftLeft64((new $Uint64(0, (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]))), 40), new $Uint64(x$2.$high | x$11.$high, (x$2.$low | x$11.$low) >>> 0)), x$12 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 48), new $Uint64(x$1.$high | x$12.$high, (x$1.$low | x$12.$low) >>> 0)), x$13 = $shiftLeft64((new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), 56), new $Uint64(x.$high | x$13.$high, (x.$low | x$13.$low) >>> 0)); - }; - bigEndian.prototype.Uint64 = function(...$args) { return this.$val.Uint64(...$args); }; - $ptrType(bigEndian).prototype.PutUint64 = function PutUint64$1(b, v) { - var b, v; - $unused((7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7])); - (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0] = (($shiftRightUint64(v, 56).$low << 24 >>> 24))); - (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1] = (($shiftRightUint64(v, 48).$low << 24 >>> 24))); - (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2] = (($shiftRightUint64(v, 40).$low << 24 >>> 24))); - (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3] = (($shiftRightUint64(v, 32).$low << 24 >>> 24))); - (4 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 4] = (($shiftRightUint64(v, 24).$low << 24 >>> 24))); - (5 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 5] = (($shiftRightUint64(v, 16).$low << 24 >>> 24))); - (6 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 6] = (($shiftRightUint64(v, 8).$low << 24 >>> 24))); - (7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7] = ((v.$low << 24 >>> 24))); - }; - bigEndian.prototype.PutUint64 = function(...$args) { return this.$val.PutUint64(...$args); }; - $ptrType(bigEndian).prototype.AppendUint64 = function AppendUint64$1(b, v) { - var b, v; - return $append(b, (($shiftRightUint64(v, 56).$low << 24 >>> 24)), (($shiftRightUint64(v, 48).$low << 24 >>> 24)), (($shiftRightUint64(v, 40).$low << 24 >>> 24)), (($shiftRightUint64(v, 32).$low << 24 >>> 24)), (($shiftRightUint64(v, 24).$low << 24 >>> 24)), (($shiftRightUint64(v, 16).$low << 24 >>> 24)), (($shiftRightUint64(v, 8).$low << 24 >>> 24)), ((v.$low << 24 >>> 24))); - }; - bigEndian.prototype.AppendUint64 = function(...$args) { return this.$val.AppendUint64(...$args); }; - $ptrType(bigEndian).prototype.String = function String$1() { - return "BigEndian"; - }; - bigEndian.prototype.String = function(...$args) { return this.$val.String(...$args); }; - $ptrType(bigEndian).prototype.GoString = function GoString$1() { - return "binary.BigEndian"; - }; - bigEndian.prototype.GoString = function(...$args) { return this.$val.GoString(...$args); }; - bigEndian.methods = [{prop: "Uint16", name: "Uint16", pkg: "", typ: $funcType([sliceType], [$Uint16], false)}, {prop: "PutUint16", name: "PutUint16", pkg: "", typ: $funcType([sliceType, $Uint16], [], false)}, {prop: "AppendUint16", name: "AppendUint16", pkg: "", typ: $funcType([sliceType, $Uint16], [sliceType], false)}, {prop: "Uint32", name: "Uint32", pkg: "", typ: $funcType([sliceType], [$Uint32], false)}, {prop: "PutUint32", name: "PutUint32", pkg: "", typ: $funcType([sliceType, $Uint32], [], false)}, {prop: "AppendUint32", name: "AppendUint32", pkg: "", typ: $funcType([sliceType, $Uint32], [sliceType], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([sliceType], [$Uint64], false)}, {prop: "PutUint64", name: "PutUint64", pkg: "", typ: $funcType([sliceType, $Uint64], [], false)}, {prop: "AppendUint64", name: "AppendUint64", pkg: "", typ: $funcType([sliceType, $Uint64], [sliceType], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}]; - bigEndian.init("", []); - }; - $init = function() { - $pkg.$init = function() {}; - /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: - $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = io.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = math.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = reflect.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = sync.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $pkg.BigEndian = new bigEndian.ptr(); - overflow = errors.New("binary: varint overflows a 64-bit integer"); - /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; - }; - $pkg.$init = $init; - return $pkg; -})(); -$packages["internal/godebug"] = (function() { - var $pkg = {}, $init, sync, atomic, Setting, ptrType, ptrType$1, ptrType$2, ptrType$3, cache, empty, empty$24ptr, updateMu, setUpdate, New, init, update, parse; - sync = $packages["sync"]; - atomic = $packages["sync/atomic"]; - Setting = $newType(0, $kindStruct, "godebug.Setting", true, "internal/godebug", true, function(name_, once_, value_) { - this.$val = this; - if (arguments.length === 0) { - this.name = ""; - this.once = new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0)); - this.value = ptrType$1.nil; - return; - } - this.name = name_; - this.once = once_; - this.value = value_; - }); - $pkg.Setting = Setting; - $pkg.$finishSetup = function() { - ptrType = $ptrType(sync.readOnly); - ptrType$1 = $ptrType(atomic.Pointer[5 /* string */]); - ptrType$2 = $ptrType($String); - ptrType$3 = $ptrType(Setting); - setUpdate = function() { - $throwRuntimeError("native function not implemented: internal/godebug.setUpdate"); - }; - New = function New$1(name) { - var name; - return new Setting.ptr(name, new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0)), ptrType$1.nil); - }; - $pkg.New = New; - $ptrType(Setting).prototype.Name = function Name() { - var s; - s = this; - return s.name; - }; - $ptrType(Setting).prototype.String = function String() { - var {$24r, _r, s, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - s = this; - _r = s.Value(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = s.name + "=" + _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String, $c: true, $r, $24r, _r, s, $s};return $f; - }; - $ptrType(Setting).prototype.Value = function Value() { - var {s, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - s = [s]; - s[0] = this; - $r = s[0].once.Do((function(s) { return function Setting·Value·func1() { - var {_r, _r$1, _tuple, _tuple$1, ok, p, v, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = cache.Load(new $String(s[0].name)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - v = _tuple[0]; - ok = _tuple[1]; - /* */ if (!ok) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!ok) { */ case 2: - p = new atomic.Pointer[5 /* string */].ptr(ptrType$2.nil); - p.Store((empty$24ptr || (empty$24ptr = new ptrType$2(function() { return empty; }, function($v) { empty = $v; })))); - _r$1 = cache.LoadOrStore(new $String(s[0].name), p); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$1 = _r$1; - v = _tuple$1[0]; - /* } */ case 3: - s[0].value = $assertType(v, ptrType$1); - $s = -1; return; - /* */ } return; } var $f = {$blk: Setting·Value·func1, $c: true, $r, _r, _r$1, _tuple, _tuple$1, ok, p, v, $s};return $f; - }; })(s)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return s[0].value.Load().$get(); - /* */ } return; } var $f = {$blk: Value, $c: true, $r, s, $s};return $f; - }; - init = function init$1() { - var {$s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = setUpdate(update); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: init$1, $c: true, $r, $s};return $f; - }; - update = function update$1(def, env) { - var {def, did, env, $s, $deferred, $r, $c} = $restore(this, {def, env}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - did = [did]; - $r = updateMu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(updateMu, "Unlock"), []]); - did[0] = new $global.Map(); - $r = parse(did[0], env); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = parse(did[0], def); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = cache.Range((function(did) { return function update·func1(name, v) { - var _entry, name, v; - if (!(_entry = $mapIndex(did[0],$String.keyFor($assertType(name, $String))), _entry !== undefined ? _entry.v : false)) { - $assertType(v, ptrType$1).Store((empty$24ptr || (empty$24ptr = new ptrType$2(function() { return empty; }, function($v) { empty = $v; })))); - } - return true; - }; })(did)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: update$1, $c: true, $r, def, did, env, $s, $deferred};return $f; } } - }; - parse = function parse$1(did, s) { - var {_entry, _key, _r, _r$1, _tmp, _tmp$1, _tuple, _tuple$1, did, end, eq, i, name, ok, p, s, v, value, $s, $r, $c} = $restore(this, {did, s}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - end = s.length; - eq = -1; - i = end - 1 >> 0; - /* while (true) { */ case 1: - /* if (!(i >= -1)) { break; } */ if(!(i >= -1)) { $s = 2; continue; } - value = [value]; - /* */ if ((i === -1) || (s.charCodeAt(i) === 44)) { $s = 3; continue; } - /* */ if (s.charCodeAt(i) === 61) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if ((i === -1) || (s.charCodeAt(i) === 44)) { */ case 3: - /* */ if (eq >= 0) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (eq >= 0) { */ case 6: - _tmp = $substring(s, (i + 1 >> 0), eq); - _tmp$1 = $substring(s, (eq + 1 >> 0), end); - name = _tmp; - value[0] = _tmp$1; - /* */ if (!(_entry = $mapIndex(did,$String.keyFor(name)), _entry !== undefined ? _entry.v : false)) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (!(_entry = $mapIndex(did,$String.keyFor(name)), _entry !== undefined ? _entry.v : false)) { */ case 8: - _key = name; (did || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: true }); - _r = cache.Load(new $String(name)); /* */ $s = 10; case 10: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - v = _tuple[0]; - ok = _tuple[1]; - /* */ if (!ok) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (!ok) { */ case 11: - p = new atomic.Pointer[5 /* string */].ptr(ptrType$2.nil); - p.Store((empty$24ptr || (empty$24ptr = new ptrType$2(function() { return empty; }, function($v) { empty = $v; })))); - _r$1 = cache.LoadOrStore(new $String(name), p); /* */ $s = 13; case 13: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$1 = _r$1; - v = _tuple$1[0]; - /* } */ case 12: - $assertType(v, ptrType$1).Store((value.$ptr || (value.$ptr = new ptrType$2(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, value)))); - /* } */ case 9: - /* } */ case 7: - eq = -1; - end = i; - $s = 5; continue; - /* } else if (s.charCodeAt(i) === 61) { */ case 4: - eq = i; - /* } */ case 5: - i = i - (1) >> 0; - $s = 1; continue; - case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: parse$1, $c: true, $r, _entry, _key, _r, _r$1, _tmp, _tmp$1, _tuple, _tuple$1, did, end, eq, i, name, ok, p, s, v, value, $s};return $f; - }; - ptrType$3.methods = [{prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Value", name: "Value", pkg: "", typ: $funcType([], [$String], false)}]; - Setting.init("internal/godebug", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "once", name: "once", embedded: false, exported: false, typ: sync.Once, tag: ""}, {prop: "value", name: "value", embedded: false, exported: false, typ: ptrType$1, tag: ""}]); - $pkg.$initLinknames = function() { - setUpdate = $linknames["runtime.godebug_setUpdate"]; - }; - }; - $init = function() { - $pkg.$init = function() {}; - /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: - $r = sync.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = atomic.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - cache = new sync.Map.ptr(new sync.Mutex.ptr(0, 0), new atomic.Pointer[10 /* sync.readOnly */].ptr(ptrType.nil), false, 0); - empty = ""; - updateMu = new sync.Mutex.ptr(0, 0); - $r = init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; - }; - $pkg.$init = $init; - return $pkg; -})(); -$packages["math/rand"] = (function() { - var $pkg = {}, $init, nosync, godebug, math, rngSource, Source, Source64, Rand, lockedSource, ptrType, ptrType$1, arrayType, ptrType$3, ptrType$4, sliceType, ptrType$5, funcType, sliceType$1, rngCooked, globalRand, randautoseed, kn, wn, fn, ke, we, fe, seedrand, NewSource, newSource, New, read, absInt32, fastrand64; - nosync = $packages["github.com/gopherjs/gopherjs/nosync"]; - godebug = $packages["internal/godebug"]; - math = $packages["math"]; - rngSource = $newType(0, $kindStruct, "rand.rngSource", true, "math/rand", false, function(tap_, feed_, vec_) { - this.$val = this; - if (arguments.length === 0) { - this.tap = 0; - this.feed = 0; - this.vec = arrayType.zero(); - return; - } - this.tap = tap_; - this.feed = feed_; - this.vec = vec_; - }); - Source = $newType(8, $kindInterface, "rand.Source", true, "math/rand", true, null); - Source64 = $newType(8, $kindInterface, "rand.Source64", true, "math/rand", true, null); - Rand = $newType(0, $kindStruct, "rand.Rand", true, "math/rand", true, function(src_, s64_, readVal_, readPos_) { - this.$val = this; - if (arguments.length === 0) { - this.src = $ifaceNil; - this.s64 = $ifaceNil; - this.readVal = new $Int64(0, 0); - this.readPos = 0; - return; - } - this.src = src_; - this.s64 = s64_; - this.readVal = readVal_; - this.readPos = readPos_; - }); - lockedSource = $newType(0, $kindStruct, "rand.lockedSource", true, "math/rand", false, function(lk_, s_) { - this.$val = this; - if (arguments.length === 0) { - this.lk = new nosync.Mutex.ptr(false, false, false, false, 0); - this.s = ptrType.nil; - return; - } - this.lk = lk_; - this.s = s_; - }); - $pkg.rngSource = rngSource; - $pkg.Source = Source; - $pkg.Source64 = Source64; - $pkg.Rand = Rand; - $pkg.lockedSource = lockedSource; - $pkg.$finishSetup = function() { - ptrType = $ptrType(rngSource); - ptrType$1 = $ptrType(Rand); - arrayType = $arrayType($Int64, 607); - ptrType$3 = $ptrType(lockedSource); - ptrType$4 = $ptrType($Int8); - sliceType = $sliceType($Int); - ptrType$5 = $ptrType($Int64); - funcType = $funcType([$Int, $Int], [], false); - sliceType$1 = $sliceType($Uint8); - seedrand = function seedrand$1(x) { - var _q, _r, hi, lo, x; - hi = (_q = x / 44488, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); - lo = (_r = x % 44488, _r === _r ? _r : $throwRuntimeError("integer divide by zero")); - x = ($imul(48271, lo)) - ($imul(3399, hi)) >> 0; - if (x < 0) { - x = x + (2147483647) >> 0; - } - return x; - }; - $ptrType(rngSource).prototype.Seed = function Seed$1(seed) { - var i, rng, seed, u, x, x$1, x$2, x$3, x$4, x$5; - rng = this; - rng.tap = 0; - rng.feed = 334; - seed = $div64(seed, new $Int64(0, 2147483647), true); - if ((seed.$high < 0 || (seed.$high === 0 && seed.$low < 0))) { - seed = (x = new $Int64(0, 2147483647), new $Int64(seed.$high + x.$high, seed.$low + x.$low)); - } - if ((seed.$high === 0 && seed.$low === 0)) { - seed = new $Int64(0, 89482311); - } - x$1 = (((seed.$low + ((seed.$high >> 31) * 4294967296)) >> 0)); - i = -20; - while (true) { - if (!(i < 607)) { break; } - x$1 = seedrand(x$1); - if (i >= 0) { - u = new $Int64(0, 0); - u = $shiftLeft64((new $Int64(0, x$1)), 40); - x$1 = seedrand(x$1); - u = (x$2 = $shiftLeft64((new $Int64(0, x$1)), 20), new $Int64(u.$high ^ x$2.$high, (u.$low ^ x$2.$low) >>> 0)); - x$1 = seedrand(x$1); - u = (x$3 = (new $Int64(0, x$1)), new $Int64(u.$high ^ x$3.$high, (u.$low ^ x$3.$low) >>> 0)); - u = (x$4 = ((i < 0 || i >= rngCooked.length) ? ($throwRuntimeError("index out of range"), undefined) : rngCooked[i]), new $Int64(u.$high ^ x$4.$high, (u.$low ^ x$4.$low) >>> 0)); - (x$5 = rng.vec, ((i < 0 || i >= x$5.length) ? ($throwRuntimeError("index out of range"), undefined) : x$5[i] = u)); - } - i = i + (1) >> 0; - } - }; - $ptrType(rngSource).prototype.Int63 = function Int63$1() { - var rng, x, x$1; - rng = this; - return ((x = (x$1 = rng.Uint64(), new $Uint64(x$1.$high & 2147483647, (x$1.$low & 4294967295) >>> 0)), new $Int64(x.$high, x.$low))); - }; - $ptrType(rngSource).prototype.Uint64 = function Uint64$2() { - var rng, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8; - rng = this; - rng.tap = rng.tap - (1) >> 0; - if (rng.tap < 0) { - rng.tap = rng.tap + (607) >> 0; - } - rng.feed = rng.feed - (1) >> 0; - if (rng.feed < 0) { - rng.feed = rng.feed + (607) >> 0; - } - x$6 = (x = (x$1 = rng.vec, x$2 = rng.feed, ((x$2 < 0 || x$2 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$2])), x$3 = (x$4 = rng.vec, x$5 = rng.tap, ((x$5 < 0 || x$5 >= x$4.length) ? ($throwRuntimeError("index out of range"), undefined) : x$4[x$5])), new $Int64(x.$high + x$3.$high, x.$low + x$3.$low)); - (x$7 = rng.vec, x$8 = rng.feed, ((x$8 < 0 || x$8 >= x$7.length) ? ($throwRuntimeError("index out of range"), undefined) : x$7[x$8] = x$6)); - return (new $Uint64(x$6.$high, x$6.$low)); - }; - NewSource = function NewSource$1(seed) { - var seed; - return newSource(seed); - }; - $pkg.NewSource = NewSource; - newSource = function newSource$1(seed) { - var rng, seed; - rng = new rngSource.ptr(0, 0, arrayType.zero()); - rng.Seed(seed); - return rng; - }; - New = function New$1(src) { - var _tuple, s64, src; - _tuple = $assertType(src, Source64, true); - s64 = _tuple[0]; - return new Rand.ptr(src, s64, new $Int64(0, 0), 0); - }; - $pkg.New = New; - $ptrType(Rand).prototype.Seed = function Seed$2(seed) { - var {_tuple, lk, ok, r, seed, $s, $r, $c} = $restore(this, {seed}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - r = this; - _tuple = $assertType(r.src, ptrType$3, true); - lk = _tuple[0]; - ok = _tuple[1]; - if (ok) { - lk.seedPos(seed, (r.$ptr_readPos || (r.$ptr_readPos = new ptrType$4(function() { return this.$target.readPos; }, function($v) { this.$target.readPos = $v; }, r)))); - $s = -1; return; - } - $r = r.src.Seed(seed); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - r.readPos = 0; - $s = -1; return; - /* */ } return; } var $f = {$blk: Seed$2, $c: true, $r, _tuple, lk, ok, r, seed, $s};return $f; - }; - $ptrType(Rand).prototype.Int63 = function Int63$2() { - var {$24r, _r, r, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - r = this; - _r = r.src.Int63(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Int63$2, $c: true, $r, $24r, _r, r, $s};return $f; - }; - $ptrType(Rand).prototype.Uint32 = function Uint32$1() { - var {$24r, _r, r, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - r = this; - _r = r.Int63(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = (($shiftRightInt64(_r, 31).$low >>> 0)); - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Uint32$1, $c: true, $r, $24r, _r, r, $s};return $f; - }; - $ptrType(Rand).prototype.Uint64 = function Uint64$3() { - var {$24r, $24r$1, _r, _r$1, _r$2, r, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - r = this; - /* */ if (!($interfaceIsEqual(r.s64, $ifaceNil))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!($interfaceIsEqual(r.s64, $ifaceNil))) { */ case 1: - _r = r.s64.Uint64(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 4; case 4: return $24r; - /* } */ case 2: - _r$1 = r.Int63(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = r.Int63(); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r$1 = (x = $shiftRightUint64(((x$1 = _r$1, new $Uint64(x$1.$high, x$1.$low))), 31), x$2 = $shiftLeft64(((x$3 = _r$2, new $Uint64(x$3.$high, x$3.$low))), 32), new $Uint64(x.$high | x$2.$high, (x.$low | x$2.$low) >>> 0)); - $s = 7; case 7: return $24r$1; - /* */ } return; } var $f = {$blk: Uint64$3, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, r, x, x$1, x$2, x$3, $s};return $f; - }; - $ptrType(Rand).prototype.Int31 = function Int31$1() { - var {$24r, _r, r, x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - r = this; - _r = r.Int63(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = (((x = $shiftRightInt64(_r, 32), x.$low + ((x.$high >> 31) * 4294967296)) >> 0)); - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Int31$1, $c: true, $r, $24r, _r, r, x, $s};return $f; - }; - $ptrType(Rand).prototype.Int = function Int$1() { - var {_r, r, u, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - r = this; - _r = r.Int63(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - u = ((_r.$low >>> 0)); - $s = -1; return ((((u << 1 >>> 0) >>> 1 >>> 0) >> 0)); - /* */ } return; } var $f = {$blk: Int$1, $c: true, $r, _r, r, u, $s};return $f; - }; - $ptrType(Rand).prototype.Int63n = function Int63n$1(n) { - var {$24r, _r, _r$1, _r$2, max, n, r, v, x, x$1, x$2, x$3, x$4, x$5, $s, $r, $c} = $restore(this, {n}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - r = this; - if ((n.$high < 0 || (n.$high === 0 && n.$low <= 0))) { - $panic(new $String("invalid argument to Int63n")); - } - /* */ if ((x = (x$1 = new $Int64(n.$high - 0, n.$low - 1), new $Int64(n.$high & x$1.$high, (n.$low & x$1.$low) >>> 0)), (x.$high === 0 && x.$low === 0))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if ((x = (x$1 = new $Int64(n.$high - 0, n.$low - 1), new $Int64(n.$high & x$1.$high, (n.$low & x$1.$low) >>> 0)), (x.$high === 0 && x.$low === 0))) { */ case 1: - _r = r.Int63(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = (x$2 = _r, x$3 = new $Int64(n.$high - 0, n.$low - 1), new $Int64(x$2.$high & x$3.$high, (x$2.$low & x$3.$low) >>> 0)); - $s = 4; case 4: return $24r; - /* } */ case 2: - max = ((x$4 = (x$5 = $div64(new $Uint64(2147483648, 0), (new $Uint64(n.$high, n.$low)), true), new $Uint64(2147483647 - x$5.$high, 4294967295 - x$5.$low)), new $Int64(x$4.$high, x$4.$low))); - _r$1 = r.Int63(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - v = _r$1; - /* while (true) { */ case 6: - /* if (!((v.$high > max.$high || (v.$high === max.$high && v.$low > max.$low)))) { break; } */ if(!((v.$high > max.$high || (v.$high === max.$high && v.$low > max.$low)))) { $s = 7; continue; } - _r$2 = r.Int63(); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - v = _r$2; - $s = 6; continue; - case 7: - $s = -1; return $div64(v, n, true); - /* */ } return; } var $f = {$blk: Int63n$1, $c: true, $r, $24r, _r, _r$1, _r$2, max, n, r, v, x, x$1, x$2, x$3, x$4, x$5, $s};return $f; - }; - $ptrType(Rand).prototype.Int31n = function Int31n$1(n) { - var {$24r, _r, _r$1, _r$2, _r$3, _r$4, max, n, r, v, $s, $r, $c} = $restore(this, {n}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - r = this; - if (n <= 0) { - $panic(new $String("invalid argument to Int31n")); - } - /* */ if ((n & ((n - 1 >> 0))) === 0) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if ((n & ((n - 1 >> 0))) === 0) { */ case 1: - _r = r.Int31(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r & ((n - 1 >> 0)); - $s = 4; case 4: return $24r; - /* } */ case 2: - max = (((2147483647 - (_r$1 = 2147483648 % ((n >>> 0)), _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) >>> 0) >> 0)); - _r$2 = r.Int31(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - v = _r$2; - /* while (true) { */ case 6: - /* if (!(v > max)) { break; } */ if(!(v > max)) { $s = 7; continue; } - _r$3 = r.Int31(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - v = _r$3; - $s = 6; continue; - case 7: - $s = -1; return (_r$4 = v % n, _r$4 === _r$4 ? _r$4 : $throwRuntimeError("integer divide by zero")); - /* */ } return; } var $f = {$blk: Int31n$1, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, max, n, r, v, $s};return $f; - }; - $ptrType(Rand).prototype.int31n = function int31n(n) { - var {_r, _r$1, _r$2, low, n, prod, r, thresh, v, $s, $r, $c} = $restore(this, {n}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - r = this; - _r = r.Uint32(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - v = _r; - prod = $mul64((new $Uint64(0, v)), (new $Uint64(0, n))); - low = ((prod.$low >>> 0)); - /* */ if (low < ((n >>> 0))) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (low < ((n >>> 0))) { */ case 2: - thresh = (_r$1 = ((-n >>> 0)) % ((n >>> 0)), _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")); - /* while (true) { */ case 4: - /* if (!(low < thresh)) { break; } */ if(!(low < thresh)) { $s = 5; continue; } - _r$2 = r.Uint32(); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - v = _r$2; - prod = $mul64((new $Uint64(0, v)), (new $Uint64(0, n))); - low = ((prod.$low >>> 0)); - $s = 4; continue; - case 5: - /* } */ case 3: - $s = -1; return (($shiftRightUint64(prod, 32).$low >> 0)); - /* */ } return; } var $f = {$blk: int31n, $c: true, $r, _r, _r$1, _r$2, low, n, prod, r, thresh, v, $s};return $f; - }; - $ptrType(Rand).prototype.Intn = function Intn$1(n) { - var {$24r, $24r$1, _r, _r$1, n, r, x, $s, $r, $c} = $restore(this, {n}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - r = this; - if (n <= 0) { - $panic(new $String("invalid argument to Intn")); - } - /* */ if (n <= 2147483647) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (n <= 2147483647) { */ case 1: - _r = r.Int31n(((n >> 0))); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = ((_r >> 0)); - $s = 4; case 4: return $24r; - /* } */ case 2: - _r$1 = r.Int63n((new $Int64(0, n))); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r$1 = (((x = _r$1, x.$low + ((x.$high >> 31) * 4294967296)) >> 0)); - $s = 6; case 6: return $24r$1; - /* */ } return; } var $f = {$blk: Intn$1, $c: true, $r, $24r, $24r$1, _r, _r$1, n, r, x, $s};return $f; - }; - $ptrType(Rand).prototype.Float64 = function Float64$1() { - var {_r, f, r, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - r = this; - /* again: */ case 1: - _r = r.Int63(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - f = ($flatten64(_r)) / 9.223372036854776e+18; - /* */ if (f === 1) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (f === 1) { */ case 3: - /* goto again */ $s = 1; continue; - /* } */ case 4: - $s = -1; return f; - /* */ } return; } var $f = {$blk: Float64$1, $c: true, $r, _r, f, r, $s};return $f; - }; - $ptrType(Rand).prototype.Float32 = function Float32$1() { - var {_r, f, r, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - r = this; - /* again: */ case 1: - _r = r.Float64(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - f = ($fround(_r)); - /* */ if (f === 1) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (f === 1) { */ case 3: - /* goto again */ $s = 1; continue; - /* } */ case 4: - $s = -1; return f; - /* */ } return; } var $f = {$blk: Float32$1, $c: true, $r, _r, f, r, $s};return $f; - }; - $ptrType(Rand).prototype.Perm = function Perm$1(n) { - var {_r, i, j, m, n, r, $s, $r, $c} = $restore(this, {n}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - r = this; - m = $makeSlice(sliceType, n); - i = 0; - /* while (true) { */ case 1: - /* if (!(i < n)) { break; } */ if(!(i < n)) { $s = 2; continue; } - _r = r.Intn(i + 1 >> 0); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - j = _r; - ((i < 0 || i >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + i] = ((j < 0 || j >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + j])); - ((j < 0 || j >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + j] = i); - i = i + (1) >> 0; - $s = 1; continue; - case 2: - $s = -1; return m; - /* */ } return; } var $f = {$blk: Perm$1, $c: true, $r, _r, i, j, m, n, r, $s};return $f; - }; - $ptrType(Rand).prototype.Shuffle = function Shuffle$1(n, swap) { - var {_r, _r$1, i, j, j$1, n, r, swap, x, $s, $r, $c} = $restore(this, {n, swap}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - r = this; - if (n < 0) { - $panic(new $String("invalid argument to Shuffle")); - } - i = n - 1 >> 0; - /* while (true) { */ case 1: - /* if (!(i > 2147483646)) { break; } */ if(!(i > 2147483646)) { $s = 2; continue; } - _r = r.Int63n((new $Int64(0, (i + 1 >> 0)))); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - j = (((x = _r, x.$low + ((x.$high >> 31) * 4294967296)) >> 0)); - $r = swap(i, j); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - i = i - (1) >> 0; - $s = 1; continue; - case 2: - /* while (true) { */ case 5: - /* if (!(i > 0)) { break; } */ if(!(i > 0)) { $s = 6; continue; } - _r$1 = r.int31n((((i + 1 >> 0) >> 0))); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - j$1 = ((_r$1 >> 0)); - $r = swap(i, j$1); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - i = i - (1) >> 0; - $s = 5; continue; - case 6: - $s = -1; return; - /* */ } return; } var $f = {$blk: Shuffle$1, $c: true, $r, _r, _r$1, i, j, j$1, n, r, swap, x, $s};return $f; - }; - $ptrType(Rand).prototype.Read = function Read$1(p) { - var {$24r, $24r$1, _r, _r$1, _tuple, _tuple$1, _tuple$2, err, lk, n, ok, p, r, $s, $r, $c} = $restore(this, {p}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - n = 0; - err = $ifaceNil; - r = this; - _tuple = $assertType(r.src, ptrType$3, true); - lk = _tuple[0]; - ok = _tuple[1]; - /* */ if (ok) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (ok) { */ case 1: - _r = lk.read(p, (r.$ptr_readVal || (r.$ptr_readVal = new ptrType$5(function() { return this.$target.readVal; }, function($v) { this.$target.readVal = $v; }, r))), (r.$ptr_readPos || (r.$ptr_readPos = new ptrType$4(function() { return this.$target.readPos; }, function($v) { this.$target.readPos = $v; }, r)))); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple$1 = _r; - n = _tuple$1[0]; - err = _tuple$1[1]; - $24r = [n, err]; - $s = 4; case 4: return $24r; - /* } */ case 2: - _r$1 = read(p, r.src, (r.$ptr_readVal || (r.$ptr_readVal = new ptrType$5(function() { return this.$target.readVal; }, function($v) { this.$target.readVal = $v; }, r))), (r.$ptr_readPos || (r.$ptr_readPos = new ptrType$4(function() { return this.$target.readPos; }, function($v) { this.$target.readPos = $v; }, r)))); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$2 = _r$1; - n = _tuple$2[0]; - err = _tuple$2[1]; - $24r$1 = [n, err]; - $s = 6; case 6: return $24r$1; - /* */ } return; } var $f = {$blk: Read$1, $c: true, $r, $24r, $24r$1, _r, _r$1, _tuple, _tuple$1, _tuple$2, err, lk, n, ok, p, r, $s};return $f; - }; - read = function read$1(p, src, readVal, readPos) { - var {_r, _tuple, err, n, p, pos, readPos, readVal, rng, src, val, $s, $r, $c} = $restore(this, {p, src, readVal, readPos}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - n = 0; - err = $ifaceNil; - pos = readPos.$get(); - val = readVal.$get(); - _tuple = $assertType(src, ptrType, true); - rng = _tuple[0]; - n = 0; - /* while (true) { */ case 1: - /* if (!(n < p.$length)) { break; } */ if(!(n < p.$length)) { $s = 2; continue; } - /* */ if (pos === 0) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (pos === 0) { */ case 3: - /* */ if (!(rng === ptrType.nil)) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (!(rng === ptrType.nil)) { */ case 5: - val = rng.Int63(); - $s = 7; continue; - /* } else { */ case 6: - _r = src.Int63(); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - val = _r; - /* } */ case 7: - pos = 7; - /* } */ case 4: - ((n < 0 || n >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + n] = ((val.$low << 24 >>> 24))); - val = $shiftRightInt64(val, (8)); - pos = pos - (1) << 24 >> 24; - n = n + (1) >> 0; - $s = 1; continue; - case 2: - readPos.$set(pos); - readVal.$set(val); - $s = -1; return [n, err]; - /* */ } return; } var $f = {$blk: read$1, $c: true, $r, _r, _tuple, err, n, p, pos, readPos, readVal, rng, src, val, $s};return $f; - }; - $ptrType(lockedSource).prototype.source = function source() { - var {_r, _r$1, r, seed, x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - r = this; - /* */ if (r.s === ptrType.nil) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (r.s === ptrType.nil) { */ case 1: - seed = new $Int64(0, 0); - _r = randautoseed.Value(); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - /* */ if (_r === "0") { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (_r === "0") { */ case 3: - seed = new $Int64(0, 1); - $s = 5; continue; - /* } else { */ case 4: - _r$1 = fastrand64(); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - seed = ((x = _r$1, new $Int64(x.$high, x.$low))); - /* } */ case 5: - r.s = newSource(seed); - /* } */ case 2: - $s = -1; return r.s; - /* */ } return; } var $f = {$blk: source, $c: true, $r, _r, _r$1, r, seed, x, $s};return $f; - }; - $ptrType(lockedSource).prototype.Int63 = function Int63$4() { - var {_r, _r$1, n, r, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - n = new $Int64(0, 0); - r = this; - r.lk.Lock(); - _r = r.source(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = _r.Int63(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - n = _r$1; - r.lk.Unlock(); - $s = -1; return n; - /* */ } return; } var $f = {$blk: Int63$4, $c: true, $r, _r, _r$1, n, r, $s};return $f; - }; - $ptrType(lockedSource).prototype.Uint64 = function Uint64$5() { - var {_r, _r$1, n, r, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - n = new $Uint64(0, 0); - r = this; - r.lk.Lock(); - _r = r.source(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = _r.Uint64(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - n = _r$1; - r.lk.Unlock(); - $s = -1; return n; - /* */ } return; } var $f = {$blk: Uint64$5, $c: true, $r, _r, _r$1, n, r, $s};return $f; - }; - $ptrType(lockedSource).prototype.Seed = function Seed$4(seed) { - var r, seed; - r = this; - r.lk.Lock(); - r.seed(seed); - r.lk.Unlock(); - }; - $ptrType(lockedSource).prototype.seedPos = function seedPos(seed, readPos) { - var r, readPos, seed; - r = this; - r.lk.Lock(); - r.seed(seed); - readPos.$set(0); - r.lk.Unlock(); - }; - $ptrType(lockedSource).prototype.seed = function seed(seed$1) { - var r, seed$1; - r = this; - if (r.s === ptrType.nil) { - r.s = newSource(seed$1); - } else { - r.s.Seed(seed$1); - } - }; - $ptrType(lockedSource).prototype.read = function read$2(p, readVal, readPos) { - var {_arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _tuple, err, n, p, r, readPos, readVal, $s, $r, $c} = $restore(this, {p, readVal, readPos}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - n = 0; - err = $ifaceNil; - r = this; - r.lk.Lock(); - _arg = p; - _r = r.source(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _arg$1 = _r; - _arg$2 = readVal; - _arg$3 = readPos; - _r$1 = read(_arg, _arg$1, _arg$2, _arg$3); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - n = _tuple[0]; - err = _tuple[1]; - r.lk.Unlock(); - $s = -1; return [n, err]; - /* */ } return; } var $f = {$blk: read$2, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _tuple, err, n, p, r, readPos, readVal, $s};return $f; - }; - absInt32 = function absInt32$1(i) { - var i; - if (i < 0) { - return ((-i >>> 0)); - } - return ((i >>> 0)); - }; - $ptrType(Rand).prototype.NormFloat64 = function NormFloat64$2() { - var {_r, _r$1, _r$2, _r$3, _r$4, _r$5, i, j, r, x, x$1, y, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - r = this; - /* while (true) { */ case 1: - _r = r.Uint32(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - j = ((_r >> 0)); - i = j & 127; - x = (j) * (((i < 0 || i >= wn.length) ? ($throwRuntimeError("index out of range"), undefined) : wn[i])); - if (absInt32(j) < ((i < 0 || i >= kn.length) ? ($throwRuntimeError("index out of range"), undefined) : kn[i])) { - $s = -1; return x; - } - /* */ if (i === 0) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (i === 0) { */ case 4: - /* while (true) { */ case 6: - _r$1 = r.Float64(); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = math.Log(_r$1); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - x = -_r$2 * 0.29047645161474317; - _r$3 = r.Float64(); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$4 = math.Log(_r$3); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - y = -_r$4; - if (y + y >= x * x) { - /* break; */ $s = 7; continue; - } - $s = 6; continue; - case 7: - if (j > 0) { - $s = -1; return 3.442619855899 + x; - } - $s = -1; return -3.442619855899 - x; - /* } */ case 5: - _r$5 = r.Float64(); /* */ $s = 14; case 14: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* */ if ($fround(((i < 0 || i >= fn.length) ? ($throwRuntimeError("index out of range"), undefined) : fn[i]) + $fround(($fround(_r$5)) * ($fround((x$1 = i - 1 >> 0, ((x$1 < 0 || x$1 >= fn.length) ? ($throwRuntimeError("index out of range"), undefined) : fn[x$1])) - ((i < 0 || i >= fn.length) ? ($throwRuntimeError("index out of range"), undefined) : fn[i]))))) < ($fround(math.Exp(-0.5 * x * x)))) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if ($fround(((i < 0 || i >= fn.length) ? ($throwRuntimeError("index out of range"), undefined) : fn[i]) + $fround(($fround(_r$5)) * ($fround((x$1 = i - 1 >> 0, ((x$1 < 0 || x$1 >= fn.length) ? ($throwRuntimeError("index out of range"), undefined) : fn[x$1])) - ((i < 0 || i >= fn.length) ? ($throwRuntimeError("index out of range"), undefined) : fn[i]))))) < ($fround(math.Exp(-0.5 * x * x)))) { */ case 12: - $s = -1; return x; - /* } */ case 13: - $s = 1; continue; - case 2: - $s = -1; return 0; - /* */ } return; } var $f = {$blk: NormFloat64$2, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, i, j, r, x, x$1, y, $s};return $f; - }; - fastrand64 = function() { - $throwRuntimeError("native function not implemented: math/rand.fastrand64"); - }; - $ptrType(Rand).prototype.ExpFloat64 = function ExpFloat64$2() { - var {$24r, _r, _r$1, _r$2, _r$3, i, j, r, x, x$1, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - r = this; - /* while (true) { */ case 1: - _r = r.Uint32(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - j = _r; - i = (j & 255) >>> 0; - x = (j) * (((i < 0 || i >= we.length) ? ($throwRuntimeError("index out of range"), undefined) : we[i])); - if (j < ((i < 0 || i >= ke.length) ? ($throwRuntimeError("index out of range"), undefined) : ke[i])) { - $s = -1; return x; - } - /* */ if (i === 0) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (i === 0) { */ case 4: - _r$1 = r.Float64(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = math.Log(_r$1); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = 7.69711747013105 - _r$2; - $s = 8; case 8: return $24r; - /* } */ case 5: - _r$3 = r.Float64(); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if ($fround(((i < 0 || i >= fe.length) ? ($throwRuntimeError("index out of range"), undefined) : fe[i]) + $fround(($fround(_r$3)) * ($fround((x$1 = i - 1 >>> 0, ((x$1 < 0 || x$1 >= fe.length) ? ($throwRuntimeError("index out of range"), undefined) : fe[x$1])) - ((i < 0 || i >= fe.length) ? ($throwRuntimeError("index out of range"), undefined) : fe[i]))))) < ($fround(math.Exp(-x)))) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if ($fround(((i < 0 || i >= fe.length) ? ($throwRuntimeError("index out of range"), undefined) : fe[i]) + $fround(($fround(_r$3)) * ($fround((x$1 = i - 1 >>> 0, ((x$1 < 0 || x$1 >= fe.length) ? ($throwRuntimeError("index out of range"), undefined) : fe[x$1])) - ((i < 0 || i >= fe.length) ? ($throwRuntimeError("index out of range"), undefined) : fe[i]))))) < ($fround(math.Exp(-x)))) { */ case 9: - $s = -1; return x; - /* } */ case 10: - $s = 1; continue; - case 2: - $s = -1; return 0; - /* */ } return; } var $f = {$blk: ExpFloat64$2, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, i, j, r, x, x$1, $s};return $f; - }; - ptrType.methods = [{prop: "Seed", name: "Seed", pkg: "", typ: $funcType([$Int64], [], false)}, {prop: "Int63", name: "Int63", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([], [$Uint64], false)}]; - ptrType$1.methods = [{prop: "Seed", name: "Seed", pkg: "", typ: $funcType([$Int64], [], false)}, {prop: "Int63", name: "Int63", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Uint32", name: "Uint32", pkg: "", typ: $funcType([], [$Uint32], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "Int31", name: "Int31", pkg: "", typ: $funcType([], [$Int32], false)}, {prop: "Int", name: "Int", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Int63n", name: "Int63n", pkg: "", typ: $funcType([$Int64], [$Int64], false)}, {prop: "Int31n", name: "Int31n", pkg: "", typ: $funcType([$Int32], [$Int32], false)}, {prop: "int31n", name: "int31n", pkg: "math/rand", typ: $funcType([$Int32], [$Int32], false)}, {prop: "Intn", name: "Intn", pkg: "", typ: $funcType([$Int], [$Int], false)}, {prop: "Float64", name: "Float64", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Float32", name: "Float32", pkg: "", typ: $funcType([], [$Float32], false)}, {prop: "Perm", name: "Perm", pkg: "", typ: $funcType([$Int], [sliceType], false)}, {prop: "Shuffle", name: "Shuffle", pkg: "", typ: $funcType([$Int, funcType], [], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "NormFloat64", name: "NormFloat64", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "ExpFloat64", name: "ExpFloat64", pkg: "", typ: $funcType([], [$Float64], false)}]; - ptrType$3.methods = [{prop: "source", name: "source", pkg: "math/rand", typ: $funcType([], [ptrType], false)}, {prop: "Int63", name: "Int63", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "Seed", name: "Seed", pkg: "", typ: $funcType([$Int64], [], false)}, {prop: "seedPos", name: "seedPos", pkg: "math/rand", typ: $funcType([$Int64, ptrType$4], [], false)}, {prop: "seed", name: "seed", pkg: "math/rand", typ: $funcType([$Int64], [], false)}, {prop: "read", name: "read", pkg: "math/rand", typ: $funcType([sliceType$1, ptrType$5, ptrType$4], [$Int, $error], false)}]; - rngSource.init("math/rand", [{prop: "tap", name: "tap", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "feed", name: "feed", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "vec", name: "vec", embedded: false, exported: false, typ: arrayType, tag: ""}]); - Source.init([{prop: "Int63", name: "Int63", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Seed", name: "Seed", pkg: "", typ: $funcType([$Int64], [], false)}]); - Source64.init([{prop: "Int63", name: "Int63", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Seed", name: "Seed", pkg: "", typ: $funcType([$Int64], [], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([], [$Uint64], false)}]); - Rand.init("math/rand", [{prop: "src", name: "src", embedded: false, exported: false, typ: Source, tag: ""}, {prop: "s64", name: "s64", embedded: false, exported: false, typ: Source64, tag: ""}, {prop: "readVal", name: "readVal", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "readPos", name: "readPos", embedded: false, exported: false, typ: $Int8, tag: ""}]); - lockedSource.init("math/rand", [{prop: "lk", name: "lk", embedded: false, exported: false, typ: nosync.Mutex, tag: ""}, {prop: "s", name: "s", embedded: false, exported: false, typ: ptrType, tag: ""}]); - $pkg.$initLinknames = function() { - fastrand64 = $linknames["runtime.fastrand64"]; - }; - }; - $init = function() { - $pkg.$init = function() {}; - /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: - $r = nosync.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = godebug.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = math.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - rngCooked = $toNativeArray($kindInt64, [new $Int64(-973649357, 3952672746), new $Int64(-1065661887, 3130416987), new $Int64(324977939, 3414273807), new $Int64(1241840476, 2806224363), new $Int64(-1477934308, 1997590414), new $Int64(2103305448, 2402795971), new $Int64(1663160183, 1140819369), new $Int64(1120601685, 1788868961), new $Int64(1848035537, 1089001426), new $Int64(1235702047, 873593504), new $Int64(1911387977, 581324885), new $Int64(-1654874170, 1609182556), new $Int64(1069394745, 1241596776), new $Int64(1895445337, 1771189259), new $Int64(-1374618802, 3467012610), new $Int64(-140526423, 2344407434), new $Int64(-1745367887, 782467244), new $Int64(26335124, 3404933915), new $Int64(1063924276, 618867887), new $Int64(-968700782, 520164395), new $Int64(-1591572833, 1341358184), new $Int64(-1515085039, 665794848), new $Int64(1527227641, 3183648150), new $Int64(1781176124, 696329606), new $Int64(1789146075, 4151988961), new $Int64(-2087444114, 998951326), new $Int64(-612324923, 1364957564), new $Int64(63173359, 4090230633), new $Int64(-1498029007, 4009697548), new $Int64(248009524, 2569622517), new $Int64(778703922, 3742421481), new $Int64(-1109106023, 1506914633), new $Int64(1738099768, 1983412561), new $Int64(236311649, 1436266083), new $Int64(-1111517500, 3922894967), new $Int64(-1336974714, 1792680179), new $Int64(563141142, 1188796351), new $Int64(1349617468, 405968250), new $Int64(1044074554, 433754187), new $Int64(870549669, 4073162024), new $Int64(-1094251604, 433121399), new $Int64(2451824, 4162580594), new $Int64(-137262572, 4132415622), new $Int64(-1536231048, 3033822028), new $Int64(2016407895, 824682382), new $Int64(2366218, 3583765414), new $Int64(-624604839, 535386927), new $Int64(1637219058, 2286693689), new $Int64(1453075389, 2968466525), new $Int64(193683513, 1351410206), new $Int64(-283806096, 1412813499), new $Int64(492736522, 4126267639), new $Int64(512765208, 2105529399), new $Int64(2132966268, 2413882233), new $Int64(947457634, 32226200), new $Int64(1149341356, 2032329073), new $Int64(106485445, 1356518208), new $Int64(-2067810156, 3430061722), new $Int64(-1484435135, 3820169661), new $Int64(-1665985194, 2981816134), new $Int64(1017155588, 4184371017), new $Int64(206574701, 2119206761), new $Int64(-852109057, 2472200560), new $Int64(-560457548, 2853524696), new $Int64(1307803389, 1681119904), new $Int64(-174986835, 95608918), new $Int64(392686347, 3690479145), new $Int64(-1205570926, 1397922290), new $Int64(-1159314025, 1516129515), new $Int64(-320178155, 1547420459), new $Int64(1311333971, 1470949486), new $Int64(-1953469798, 1336785672), new $Int64(-45086614, 4131677129), new $Int64(-1392278100, 4246329084), new $Int64(-1142500187, 3788585631), new $Int64(-66478285, 3080389532), new $Int64(-646438364, 2215402037), new $Int64(391002300, 1171593935), new $Int64(1408774047, 1423855166), new $Int64(-519177718, 2276716302), new $Int64(-368453140, 2068027241), new $Int64(1369359303, 3427553297), new $Int64(189241615, 3289637845), new $Int64(1057480830, 3486407650), new $Int64(-1512910664, 3071877822), new $Int64(1159653919, 3363620705), new $Int64(-934256930, 4159821533), new $Int64(-76621938, 1894661), new $Int64(-674493898, 1156868282), new $Int64(348271067, 776219088), new $Int64(-501428838, 2425634259), new $Int64(1716021749, 680510161), new $Int64(-574263456, 1310101429), new $Int64(1095885995, 2964454134), new $Int64(-325695512, 3467098407), new $Int64(1990672920, 2109628894), new $Int64(-2139648704, 1232604732), new $Int64(-1838070714, 3261916179), new $Int64(1699175360, 434597899), new $Int64(235436061, 1624796439), new $Int64(-1626402839, 3589632480), new $Int64(1198416575, 864579159), new $Int64(-1938748161, 1380889830), new $Int64(619206309, 2654509477), new $Int64(1419738251, 1468209306), new $Int64(-1744284772, 100794388), new $Int64(-1191421458, 2991674471), new $Int64(-208666741, 2224662036), new $Int64(-173659161, 977097250), new $Int64(1351320195, 726419512), new $Int64(-183459897, 1747974366), new $Int64(-753095183, 1556430604), new $Int64(-1049492215, 1080776742), new $Int64(-385846958, 280794874), new $Int64(117767733, 919835643), new $Int64(-967009426, 3434019658), new $Int64(-1951414480, 2461941785), new $Int64(133215641, 3615001066), new $Int64(417204809, 3103414427), new $Int64(790056561, 3380809712), new $Int64(-1267681408, 2724693469), new $Int64(547796833, 598827710), new $Int64(-1846559452, 3452273442), new $Int64(-75778224, 649274915), new $Int64(-801301329, 2585724112), new $Int64(-1510934263, 3165579553), new $Int64(1185578221, 2635894283), new $Int64(-52910178, 2053289721), new $Int64(985976581, 3169337108), new $Int64(1170569632, 144717764), new $Int64(1079216270, 1383666384), new $Int64(-124804942, 681540375), new $Int64(1375448925, 537050586), new $Int64(-1964768344, 315246468), new $Int64(226402871, 849323088), new $Int64(-885062465, 45543944), new $Int64(-946445250, 2319052083), new $Int64(-40708194, 3613090841), new $Int64(560472520, 2992171180), new $Int64(-381863169, 2068244785), new $Int64(917538188, 4239862634), new $Int64(-1369555809, 3892253031), new $Int64(720683925, 958186149), new $Int64(-423297785, 1877702262), new $Int64(1357886971, 837674867), new $Int64(1837048883, 1507589294), new $Int64(1905518400, 873336795), new $Int64(-1879761037, 2764496274), new $Int64(-1806480530, 4196182374), new $Int64(-1066765755, 550964545), new $Int64(818747069, 420611474), new $Int64(-1924830376, 204265180), new $Int64(1549974541, 1787046383), new $Int64(1215581865, 3102292318), new $Int64(418321538, 1552199393), new $Int64(1243493047, 980542004), new $Int64(267284263, 3293718720), new $Int64(1179528763, 3771917473), new $Int64(599484404, 2195808264), new $Int64(252818753, 3894702887), new $Int64(-1367475956, 2099949527), new $Int64(1424094358, 338442522), new $Int64(490737398, 637158004), new $Int64(-1727621530, 281976339), new $Int64(574970164, 3619802330), new $Int64(-431930823, 3084554784), new $Int64(-1264611183, 4129772886), new $Int64(-2104399043, 1680378557), new $Int64(-1621962591, 3339087776), new $Int64(1680500332, 4220317857), new $Int64(-1935828963, 2959322499), new $Int64(1675600481, 1488354890), new $Int64(-834863562, 3958162143), new $Int64(-1226511573, 2773705983), new $Int64(1876039582, 225908689), new $Int64(-1183735113, 908216283), new $Int64(-605696219, 3574646075), new $Int64(-1827723091, 1936937569), new $Int64(1519770881, 75492235), new $Int64(816689472, 1935193178), new $Int64(2142521206, 2018250883), new $Int64(455141620, 3943126022), new $Int64(-601399488, 3066544345), new $Int64(1932392669, 2793082663), new $Int64(-1239009361, 3297036421), new $Int64(1640597065, 2206987825), new $Int64(-553246738, 807894872), new $Int64(-1781325307, 766252117), new $Int64(2060649606, 3833114345), new $Int64(845619743, 1255067973), new $Int64(1201145605, 741697208), new $Int64(-1476242608, 2810093753), new $Int64(1109032642, 4229340371), new $Int64(1462188720, 1361684224), new $Int64(-1159399429, 1906263026), new $Int64(475781207, 3904421704), new $Int64(-623537128, 1769075545), new $Int64(1062308525, 2621599764), new $Int64(1279509432, 3431891480), new $Int64(-1742751146, 1871896503), new $Int64(128756421, 1412808876), new $Int64(1605404688, 952876175), new $Int64(-230443691, 1824438899), new $Int64(1662295856, 1005035476), new $Int64(-156574141, 527508597), new $Int64(1288873303, 3066806859), new $Int64(565995893, 3244940914), new $Int64(-889746188, 209092916), new $Int64(-247669406, 1242699167), new $Int64(-713830396, 456723774), new $Int64(1776978905, 1001252870), new $Int64(1468772157, 2026725874), new $Int64(857254202, 2137562569), new $Int64(765939740, 3183366709), new $Int64(1533887628, 2612072960), new $Int64(56977098, 1727148468), new $Int64(-1197583895, 3803658212), new $Int64(1883670356, 479946959), new $Int64(685713571, 1562982345), new $Int64(-1946242443, 1766109365), new $Int64(700596547, 3257093788), new $Int64(-184714929, 2365720207), new $Int64(93384808, 3742754173), new $Int64(-458385235, 2878193673), new $Int64(1096135042, 2174002182), new $Int64(-834260953, 3573511231), new $Int64(-754572527, 1760299077), new $Int64(-1375627191, 2260779833), new $Int64(-866019274, 1452805722), new $Int64(-1229671918, 2940011802), new $Int64(1890251082, 1886183802), new $Int64(893897673, 2514369088), new $Int64(1644345561, 3924317791), new $Int64(-1974867432, 500935732), new $Int64(1403501753, 676580929), new $Int64(-1565912283, 1184984890), new $Int64(-691968413, 1271474274), new $Int64(-1828754738, 3163791473), new $Int64(2051027584, 2842487377), new $Int64(1511537551, 2170968612), new $Int64(573262976, 3535856740), new $Int64(-2053227187, 1488599718), new $Int64(-1180531831, 3408913763), new $Int64(-2086531912, 2501050084), new $Int64(-875130448, 1639124157), new $Int64(-2009482504, 4088176393), new $Int64(1574896563, 3989947576), new $Int64(-165243708, 3414355209), new $Int64(-792329287, 2275136352), new $Int64(-2057774345, 2151835223), new $Int64(-931144933, 1654534827), new $Int64(-679921451, 377892833), new $Int64(-482716010, 660204544), new $Int64(85706799, 390828249), new $Int64(-1422172693, 3402783878), new $Int64(-1468634160, 3717936603), new $Int64(1113532086, 2211058823), new $Int64(1564224320, 2692150867), new $Int64(1952770442, 1928910388), new $Int64(788716862, 3931011137), new $Int64(1083670504, 1112701047), new $Int64(-68150572, 2452299106), new $Int64(-896164822, 2337204777), new $Int64(1774877857, 273889282), new $Int64(1798719843, 1462008793), new $Int64(2138834788, 1554494002), new $Int64(-1194967131, 182675323), new $Int64(-1598554764, 1882802136), new $Int64(589279648, 3700220025), new $Int64(381039426, 3083431543), new $Int64(-851859191, 3622207527), new $Int64(338126939, 432729309), new $Int64(-1667470126, 2391914317), new $Int64(-1849558151, 235747924), new $Int64(2120733629, 3088823825), new $Int64(-745079795, 2314658321), new $Int64(1165929723, 2957634338), new $Int64(501323675, 4117056981), new $Int64(1564699815, 1482500298), new $Int64(-740826490, 840489337), new $Int64(799522364, 3483178565), new $Int64(532129761, 2074004656), new $Int64(724246478, 3643392642), new $Int64(-665153481, 1583624461), new $Int64(-885822954, 287473085), new $Int64(1667835381, 3136843981), new $Int64(1138806821, 1266970974), new $Int64(135185781, 1998688839), new $Int64(392094735, 1492900209), new $Int64(1031326774, 1538112737), new $Int64(-2070568842, 2207265429), new $Int64(-1886797613, 963263315), new $Int64(1671145500, 2295892134), new $Int64(1068469660, 2002560897), new $Int64(-356250305, 1369254035), new $Int64(33436120, 3353312708), new $Int64(57507843, 947771099), new $Int64(-1945755145, 1747061399), new $Int64(1507240140, 2047354631), new $Int64(720000810, 4165367136), new $Int64(479265078, 3388864963), new $Int64(-952181250, 286492130), new $Int64(2045622690, 2795735007), new $Int64(-715730566, 3703961339), new $Int64(-148436487, 1797825479), new $Int64(1429039600, 1116589674), new $Int64(-1665420098, 2593309206), new $Int64(1329049334, 3404995677), new $Int64(-750579440, 3453462936), new $Int64(1014767077, 3016498634), new $Int64(75698599, 1650371545), new $Int64(1592007860, 212344364), new $Int64(1127766888, 3843932156), new $Int64(-748019856, 3573129983), new $Int64(-890581831, 665897820), new $Int64(1071492673, 1675628772), new $Int64(243225682, 2831752928), new $Int64(2120298836, 1486294219), new $Int64(-1954407413, 268782709), new $Int64(-1002123503, 4186179080), new $Int64(624342951, 1613720397), new $Int64(857179861, 2703686015), new $Int64(-911618704, 2205342611), new $Int64(-672703993, 1411666394), new $Int64(-1528454899, 677744900), new $Int64(-1876628533, 4172867247), new $Int64(135494707, 2163418403), new $Int64(849547544, 2841526879), new $Int64(-1117516959, 1082141470), new $Int64(-1770111792, 4046134367), new $Int64(51415528, 2142943655), new $Int64(-249824333, 3124627521), new $Int64(998228909, 219992939), new $Int64(-1078790951, 1756846531), new $Int64(1283749206, 1225118210), new $Int64(-525858006, 1647770243), new $Int64(-2035959705, 444807907), new $Int64(2036369448, 3952076173), new $Int64(53201823, 1461839639), new $Int64(315761893, 3699250910), new $Int64(702974850, 1373688981), new $Int64(734022261, 147523747), new $Int64(-2047330906, 1211276581), new $Int64(1294440951, 2548832680), new $Int64(1144696256, 1995631888), new $Int64(-1992983070, 2011457303), new $Int64(-1351022674, 3057425772), new $Int64(667839456, 81484597), new $Int64(-1681980888, 3646681560), new $Int64(-1372462725, 635548515), new $Int64(602489502, 2508044581), new $Int64(-1794220117, 1014917157), new $Int64(719992433, 3214891315), new $Int64(-1294799037, 959582252), new $Int64(226415134, 3347040449), new $Int64(-362868096, 4102971975), new $Int64(397887437, 4078022210), new $Int64(-536803826, 2851767182), new $Int64(-1398321012, 1540160644), new $Int64(-1549098876, 1057290595), new $Int64(-112592988, 3907769253), new $Int64(579300318, 4248952684), new $Int64(-1054576049, 132554364), new $Int64(-1085862414, 1029351092), new $Int64(697840928, 2583007416), new $Int64(298619124, 1486185789), new $Int64(55905697, 2871589073), new $Int64(2017643612, 723203291), new $Int64(146250550, 2494333952), new $Int64(-1082993397, 2230939180), new $Int64(-1804568072, 3943232912), new $Int64(1768732449, 2181367922), new $Int64(-729261111, 2889274791), new $Int64(1824032949, 2046728161), new $Int64(1653899792, 1376052477), new $Int64(1022327048, 381236993), new $Int64(-1113097690, 3188942166), new $Int64(-74480109, 350070824), new $Int64(144881592, 61758415), new $Int64(-741824226, 3492950336), new $Int64(-2030042720, 3093818430), new $Int64(-453590535, 2962480613), new $Int64(-1912050708, 3154871160), new $Int64(-1636478569, 3228564679), new $Int64(610731502, 888276216), new $Int64(-946702974, 3574998604), new $Int64(-1277068380, 1967526716), new $Int64(-1556147941, 1554691298), new $Int64(-1573024234, 339944798), new $Int64(1223764147, 1154515356), new $Int64(1825645307, 967516237), new $Int64(1546195135, 596588202), new $Int64(-1867600880, 3764362170), new $Int64(-1655392592, 266611402), new $Int64(-393255880, 2047856075), new $Int64(-1000726433, 21444105), new $Int64(-949424754, 3065563181), new $Int64(-232418803, 1140663212), new $Int64(633187674, 2323741028), new $Int64(2126290159, 3103873707), new $Int64(1008658319, 2766828349), new $Int64(-485587503, 1970872996), new $Int64(1628585413, 3766615585), new $Int64(-595148528, 2036813414), new $Int64(-1994877121, 3105536507), new $Int64(13954645, 3396176938), new $Int64(-721402003, 1377154485), new $Int64(-61839181, 3807014186), new $Int64(543009040, 3710110597), new $Int64(-1751425519, 916420443), new $Int64(734556788, 2103831255), new $Int64(-1766161494, 717331943), new $Int64(-1574598896, 3550505941), new $Int64(45939673, 378749927), new $Int64(-1997615719, 611017331), new $Int64(592130075, 758907650), new $Int64(1012992349, 154266815), new $Int64(-1040454942, 1407468696), new $Int64(-1678191250, 970098704), new $Int64(-285057486, 1971660656), new $Int64(998365243, 3332747885), new $Int64(1947089649, 1935189867), new $Int64(1510248801, 203520055), new $Int64(-1305165746, 3916463034), new $Int64(-388598655, 3474113316), new $Int64(1036101639, 316544223), new $Int64(-1773744891, 1650844677), new $Int64(-907191419, 4267565603), new $Int64(-1070275024, 2501167616), new $Int64(-1520651863, 3929401789), new $Int64(-2091360852, 337170252), new $Int64(-960502090, 2061966842), new $Int64(-304190848, 2508461464), new $Int64(-1941471116, 2791377107), new $Int64(1240791848, 1227227588), new $Int64(1813978778, 1709681848), new $Int64(1153692192, 3768820575), new $Int64(-1002297449, 2887126398), new $Int64(-1447111334, 296561685), new $Int64(700300844, 3729960077), new $Int64(-1572311344, 372833036), new $Int64(2078875613, 2409779288), new $Int64(1829161290, 555274064), new $Int64(-1105595719, 4239804901), new $Int64(1839403216, 3723486978), new $Int64(-1649093095, 2145871984), new $Int64(-1582765715, 3565480803), new $Int64(-1568653827, 2197313814), new $Int64(974785092, 3613674566), new $Int64(438638731, 3042093666), new $Int64(-96556264, 3324034321), new $Int64(869420878, 3708873369), new $Int64(946682149, 1698090092), new $Int64(1618900382, 4213940712), new $Int64(-1843479747, 2087477361), new $Int64(-1766167800, 2407950639), new $Int64(-1296225558, 3942568569), new $Int64(-1223900450, 4088074412), new $Int64(723260036, 2964773675), new $Int64(-673921829, 1539178386), new $Int64(1062961552, 2694849566), new $Int64(460977733, 2120273838), new $Int64(-1604570740, 2484608657), new $Int64(880846449, 2956190677), new $Int64(1970902366, 4223313749), new $Int64(662161910, 3502682327), new $Int64(705634754, 4133891139), new $Int64(-1031359300, 1166449596), new $Int64(1038247601, 3362705993), new $Int64(93734798, 3892921029), new $Int64(1876124043, 786869787), new $Int64(1057490746, 1046342263), new $Int64(242763728, 493777327), new $Int64(-853573201, 3304827646), new $Int64(616460742, 125356352), new $Int64(499300063, 74094113), new $Int64(-795586925, 2500816079), new $Int64(-490248444, 514015239), new $Int64(1377565129, 543520454), new $Int64(-2039776725, 3614531153), new $Int64(2056746300, 2356753985), new $Int64(1390062617, 2018141668), new $Int64(131272971, 2087974891), new $Int64(-1502927041, 3166972343), new $Int64(372256200, 1517638666), new $Int64(-935275664, 173466846), new $Int64(-695774461, 4241513471), new $Int64(-1413550842, 2783126920), new $Int64(1972004134, 4167264826), new $Int64(29260506, 3907395640), new $Int64(-910901561, 1539634186), new $Int64(-595957298, 178241987), new $Int64(-113277636, 182168164), new $Int64(-1102530459, 2386154934), new $Int64(1379126408, 4077374341), new $Int64(-2114679722, 1732699140), new $Int64(-421057745, 1041306002), new $Int64(1860414813, 2068001749), new $Int64(1005320202, 3208962910), new $Int64(844054010, 697710380), new $Int64(-1509359403, 2228431183), new $Int64(-810313977, 3554678728), new $Int64(-750989047, 173470263), new $Int64(-85886265, 3848297795), new $Int64(-926936977, 246236185), new $Int64(-1984190461, 2066374846), new $Int64(1771673660, 312890749), new $Int64(703378057, 3573310289), new $Int64(-598851901, 143166754), new $Int64(613554316, 2081511079), new $Int64(1197802104, 486038032), new $Int64(-1906483789, 2982218564), new $Int64(364901986, 1000939191), new $Int64(1902782651, 2750454885), new $Int64(-671844857, 3375313137), new $Int64(-1643868040, 881302957), new $Int64(-1508784745, 2514186393), new $Int64(-1703622845, 360024739), new $Int64(1399671872, 292500025), new $Int64(1381210821, 2276300752), new $Int64(521803381, 4069087683), new $Int64(-1938982667, 1637778212), new $Int64(720490469, 1676670893), new $Int64(1067262482, 3855174429), new $Int64(2114075974, 2067248671), new $Int64(-89426259, 2884561259), new $Int64(-805741095, 2456511185), new $Int64(983726246, 561175414), new $Int64(-1719489563, 432588903), new $Int64(885133709, 4059399550), new $Int64(-93096266, 1075014784), new $Int64(-1733832628, 2728058415), new $Int64(1839142064, 1299703678), new $Int64(1262333188, 2347583393), new $Int64(1285481956, 2468164145), new $Int64(-1158354011, 1140014346), new $Int64(2033889184, 1936972070), new $Int64(-1737578993, 3870530098), new $Int64(-484494257, 1717789158), new $Int64(-232997156, 1153452491), new $Int64(-990424416, 3948827651), new $Int64(-1357145630, 2101413152), new $Int64(1495744672, 3854091229), new $Int64(83644069, 4215565463), new $Int64(-1385277313, 1202710438), new $Int64(-564909037, 2072216740), new $Int64(705690639, 2066751068), new $Int64(-2113583312, 173902580), new $Int64(-741983806, 142459001), new $Int64(172391592, 1889151926), new $Int64(-498943125, 3034199774), new $Int64(1618587731, 516490102), new $Int64(93114264, 3692577783), new $Int64(-2078821353, 2953948865), new $Int64(-320938673, 4041040923), new $Int64(-1942517976, 592046130), new $Int64(-705643640, 384297211), new $Int64(-2051649464, 265863924), new $Int64(2101717619, 1333136237), new $Int64(1499611781, 1406273556), new $Int64(1074670496, 426305476), new $Int64(125704633, 2750898176), new $Int64(488068495, 1633944332), new $Int64(2037723464, 3236349343), new $Int64(-1703423246, 4013676611), new $Int64(1718532237, 2265047407), new $Int64(1433593806, 875071080), new $Int64(-343047503, 1418843655), new $Int64(2009228711, 451657300), new $Int64(1229446621, 1866374663), new $Int64(1653472867, 1551455622), new $Int64(577191481, 3560962459), new $Int64(1669204077, 3347903778), new $Int64(-298327194, 2675874918), new $Int64(-1831355577, 2762991672), new $Int64(530492383, 3689068477), new $Int64(844089962, 4071997905), new $Int64(1508155730, 1381702441), new $Int64(2089931018, 2373284878), new $Int64(-864267462, 2143983064), new $Int64(308739063, 1938207195), new $Int64(1754949306, 1188152253), new $Int64(1272345009, 615870490), new $Int64(742653194, 2662252621), new $Int64(1477718295, 3839976789), new $Int64(-2091334213, 306752547), new $Int64(-1426688067, 2162363077), new $Int64(-57052633, 2767224719), new $Int64(-1471624099, 2628837712), new $Int64(1678405918, 2967771969), new $Int64(1694285728, 499792248), new $Int64(-1744131281, 4285253508), new $Int64(962357072, 2856511070), new $Int64(679471692, 2526409716), new $Int64(-1793706473, 1240875658), new $Int64(-914893422, 2577342868), new $Int64(-1001298215, 4136853496), new $Int64(-1477114974, 2403540137), new $Int64(1372824515, 1371410668), new $Int64(-176562048, 371758825), new $Int64(-441063112, 1528834084), new $Int64(-71688630, 1504757260), new $Int64(-1461820072, 699052551), new $Int64(-505543539, 3347789870), new $Int64(1951619734, 3430604759), new $Int64(2119672219, 1935601723), new $Int64(966789690, 834676166)]); - globalRand = New(new lockedSource.ptr(new nosync.Mutex.ptr(false, false, false, false, 0), ptrType.nil)); - randautoseed = godebug.New("randautoseed"); - kn = $toNativeArray($kindUint32, [1991057938, 0, 1611602771, 1826899878, 1918584482, 1969227037, 2001281515, 2023368125, 2039498179, 2051788381, 2061460127, 2069267110, 2075699398, 2081089314, 2085670119, 2089610331, 2093034710, 2096037586, 2098691595, 2101053571, 2103168620, 2105072996, 2106796166, 2108362327, 2109791536, 2111100552, 2112303493, 2113412330, 2114437283, 2115387130, 2116269447, 2117090813, 2117856962, 2118572919, 2119243101, 2119871411, 2120461303, 2121015852, 2121537798, 2122029592, 2122493434, 2122931299, 2123344971, 2123736059, 2124106020, 2124456175, 2124787725, 2125101763, 2125399283, 2125681194, 2125948325, 2126201433, 2126441213, 2126668298, 2126883268, 2127086657, 2127278949, 2127460589, 2127631985, 2127793506, 2127945490, 2128088244, 2128222044, 2128347141, 2128463758, 2128572095, 2128672327, 2128764606, 2128849065, 2128925811, 2128994934, 2129056501, 2129110560, 2129157136, 2129196237, 2129227847, 2129251929, 2129268426, 2129277255, 2129278312, 2129271467, 2129256561, 2129233410, 2129201800, 2129161480, 2129112170, 2129053545, 2128985244, 2128906855, 2128817916, 2128717911, 2128606255, 2128482298, 2128345305, 2128194452, 2128028813, 2127847342, 2127648860, 2127432031, 2127195339, 2126937058, 2126655214, 2126347546, 2126011445, 2125643893, 2125241376, 2124799783, 2124314271, 2123779094, 2123187386, 2122530867, 2121799464, 2120980787, 2120059418, 2119015917, 2117825402, 2116455471, 2114863093, 2112989789, 2110753906, 2108037662, 2104664315, 2100355223, 2094642347, 2086670106, 2074676188, 2054300022, 2010539237]); - wn = $toNativeArray($kindFloat32, [1.7290404663583558e-09, 1.2680928529462676e-10, 1.689751810696194e-10, 1.9862687883343e-10, 2.223243117382978e-10, 2.4244936613904144e-10, 2.601613091623989e-10, 2.761198769629658e-10, 2.9073962681813725e-10, 3.042996965518796e-10, 3.169979556627567e-10, 3.289802041894774e-10, 3.4035738116777736e-10, 3.5121602848242617e-10, 3.61625090983253e-10, 3.7164057942185025e-10, 3.813085680537398e-10, 3.906675816178762e-10, 3.997501218933053e-10, 4.0858399996679395e-10, 4.1719308563337165e-10, 4.255982233303257e-10, 4.3381759295968436e-10, 4.4186720948857783e-10, 4.497613115272969e-10, 4.57512583373898e-10, 4.6513240481438345e-10, 4.726310454117311e-10, 4.800177477726209e-10, 4.873009773476156e-10, 4.944885056978876e-10, 5.015873272284921e-10, 5.086040477664255e-10, 5.155446070048697e-10, 5.224146670812502e-10, 5.292193350214802e-10, 5.359634958068682e-10, 5.426517013518151e-10, 5.492881705038144e-10, 5.558769555769061e-10, 5.624218868405251e-10, 5.689264614971989e-10, 5.75394121238304e-10, 5.818281967329142e-10, 5.882316855831959e-10, 5.946076964136182e-10, 6.009590047817426e-10, 6.072883862451306e-10, 6.135985053390414e-10, 6.19892026598734e-10, 6.261713370037114e-10, 6.324390455780815e-10, 6.386973727678935e-10, 6.449488165749528e-10, 6.511955974453087e-10, 6.574400468473129e-10, 6.636843297158634e-10, 6.699307220081607e-10, 6.761814441702541e-10, 6.824387166481927e-10, 6.887046488657234e-10, 6.949815167800466e-10, 7.012714853260604e-10, 7.075767749498141e-10, 7.13899661608508e-10, 7.202424212593428e-10, 7.266072743483676e-10, 7.329966078550854e-10, 7.394128087589991e-10, 7.458582640396116e-10, 7.523354716987285e-10, 7.588469852493063e-10, 7.653954137154528e-10, 7.719834771435785e-10, 7.786139510912449e-10, 7.852897221383159e-10, 7.920137878869582e-10, 7.987892014504894e-10, 8.056192379868321e-10, 8.125072836762115e-10, 8.194568912323064e-10, 8.264716688799467e-10, 8.3355555791087e-10, 8.407127216614185e-10, 8.479473234679347e-10, 8.552640262671218e-10, 8.626675485068347e-10, 8.701631637464402e-10, 8.777562010564566e-10, 8.854524335966119e-10, 8.932581896381464e-10, 9.011799639857543e-10, 9.092249730890956e-10, 9.174008219758889e-10, 9.25715837318819e-10, 9.341788453909317e-10, 9.42799727177146e-10, 9.515889187738935e-10, 9.605578554783278e-10, 9.697193048552322e-10, 9.790869226478094e-10, 9.886760299337993e-10, 9.985036131254788e-10, 1.008588212947359e-09, 1.0189509236369076e-09, 1.0296150598776421e-09, 1.040606933955246e-09, 1.0519566329136865e-09, 1.0636980185552147e-09, 1.0758701707302976e-09, 1.0885182755160372e-09, 1.101694735439196e-09, 1.115461056855338e-09, 1.1298901814171813e-09, 1.1450695946990663e-09, 1.1611052119775422e-09, 1.178127595480305e-09, 1.1962995039027646e-09, 1.2158286599728285e-09, 1.2369856250415978e-09, 1.2601323318151003e-09, 1.2857697129220469e-09, 1.3146201904845611e-09, 1.3477839955200466e-09, 1.3870635751089821e-09, 1.43574030442295e-09, 1.5008658760251592e-09, 1.6030947680434338e-09]); - fn = $toNativeArray($kindFloat32, [1, 0.963599681854248, 0.9362826943397522, 0.9130436182022095, 0.8922816514968872, 0.8732430338859558, 0.8555005788803101, 0.8387836217880249, 0.8229072093963623, 0.8077383041381836, 0.7931770086288452, 0.7791460752487183, 0.7655841708183289, 0.7524415850639343, 0.7396772503852844, 0.7272568941116333, 0.7151514887809753, 0.7033361196517944, 0.6917891502380371, 0.6804918646812439, 0.6694276928901672, 0.6585819721221924, 0.6479418277740479, 0.6374954581260681, 0.6272324919700623, 0.6171433925628662, 0.6072195172309875, 0.5974531769752502, 0.5878370404243469, 0.5783646702766418, 0.5690299868583679, 0.5598273873329163, 0.550751805305481, 0.5417983531951904, 0.5329626798629761, 0.5242405533790588, 0.5156282186508179, 0.5071220397949219, 0.49871864914894104, 0.4904148280620575, 0.48220765590667725, 0.47409430146217346, 0.466072142124176, 0.45813870429992676, 0.45029163360595703, 0.44252872467041016, 0.4348478317260742, 0.42724698781967163, 0.41972434520721436, 0.41227802634239197, 0.40490642189979553, 0.39760786294937134, 0.3903807997703552, 0.3832238018512726, 0.3761354684829712, 0.3691144585609436, 0.36215949058532715, 0.3552693724632263, 0.3484429717063904, 0.3416791558265686, 0.33497685194015503, 0.32833510637283325, 0.3217529058456421, 0.3152293860912323, 0.30876362323760986, 0.3023548424243927, 0.2960021495819092, 0.2897048592567444, 0.28346219658851624, 0.2772735059261322, 0.271138072013855, 0.2650552988052368, 0.25902456045150757, 0.25304529070854187, 0.24711695313453674, 0.24123899638652802, 0.23541094362735748, 0.22963231801986694, 0.22390270233154297, 0.21822164952754974, 0.21258877217769623, 0.20700371265411377, 0.20146611332893372, 0.1959756463766098, 0.19053204357624054, 0.18513499200344086, 0.17978426814079285, 0.1744796335697174, 0.16922089457511902, 0.16400785744190216, 0.1588403731584549, 0.15371830761432648, 0.14864157140254974, 0.14361007511615753, 0.13862377405166626, 0.13368265330791473, 0.12878671288490295, 0.12393598258495331, 0.11913054436445236, 0.11437050998210907, 0.10965602099895477, 0.1049872562289238, 0.10036443918943405, 0.09578784555196762, 0.09125780314207077, 0.08677466958761215, 0.08233889937400818, 0.07795098423957825, 0.07361150532960892, 0.06932111829519272, 0.06508058309555054, 0.06089077144861221, 0.05675266310572624, 0.05266740173101425, 0.048636294901371, 0.044660862535238266, 0.040742866694927216, 0.03688438981771469, 0.03308788686990738, 0.029356317594647408, 0.025693291798233986, 0.02210330404341221, 0.018592102453112602, 0.015167297795414925, 0.011839478276669979, 0.0086244847625494, 0.005548994988203049, 0.0026696291752159595]); - ke = $toNativeArray($kindUint32, [3801129273, 0, 2615860924, 3279400049, 3571300752, 3733536696, 3836274812, 3906990442, 3958562475, 3997804264, 4028649213, 4053523342, 4074002619, 4091154507, 4105727352, 4118261130, 4129155133, 4138710916, 4147160435, 4154685009, 4161428406, 4167506077, 4173011791, 4178022498, 4182601930, 4186803325, 4190671498, 4194244443, 4197554582, 4200629752, 4203493986, 4206168142, 4208670408, 4211016720, 4213221098, 4215295924, 4217252177, 4219099625, 4220846988, 4222502074, 4224071896, 4225562770, 4226980400, 4228329951, 4229616109, 4230843138, 4232014925, 4233135020, 4234206673, 4235232866, 4236216336, 4237159604, 4238064994, 4238934652, 4239770563, 4240574564, 4241348362, 4242093539, 4242811568, 4243503822, 4244171579, 4244816032, 4245438297, 4246039419, 4246620374, 4247182079, 4247725394, 4248251127, 4248760037, 4249252839, 4249730206, 4250192773, 4250641138, 4251075867, 4251497493, 4251906522, 4252303431, 4252688672, 4253062674, 4253425844, 4253778565, 4254121205, 4254454110, 4254777611, 4255092022, 4255397640, 4255694750, 4255983622, 4256264513, 4256537670, 4256803325, 4257061702, 4257313014, 4257557464, 4257795244, 4258026541, 4258251531, 4258470383, 4258683258, 4258890309, 4259091685, 4259287526, 4259477966, 4259663135, 4259843154, 4260018142, 4260188212, 4260353470, 4260514019, 4260669958, 4260821380, 4260968374, 4261111028, 4261249421, 4261383632, 4261513736, 4261639802, 4261761900, 4261880092, 4261994441, 4262105003, 4262211835, 4262314988, 4262414513, 4262510454, 4262602857, 4262691764, 4262777212, 4262859239, 4262937878, 4263013162, 4263085118, 4263153776, 4263219158, 4263281289, 4263340187, 4263395872, 4263448358, 4263497660, 4263543789, 4263586755, 4263626565, 4263663224, 4263696735, 4263727099, 4263754314, 4263778377, 4263799282, 4263817020, 4263831582, 4263842955, 4263851124, 4263856071, 4263857776, 4263856218, 4263851370, 4263843206, 4263831695, 4263816804, 4263798497, 4263776735, 4263751476, 4263722676, 4263690284, 4263654251, 4263614520, 4263571032, 4263523724, 4263472530, 4263417377, 4263358192, 4263294892, 4263227394, 4263155608, 4263079437, 4262998781, 4262913534, 4262823581, 4262728804, 4262629075, 4262524261, 4262414220, 4262298801, 4262177846, 4262051187, 4261918645, 4261780032, 4261635148, 4261483780, 4261325704, 4261160681, 4260988457, 4260808763, 4260621313, 4260425802, 4260221905, 4260009277, 4259787550, 4259556329, 4259315195, 4259063697, 4258801357, 4258527656, 4258242044, 4257943926, 4257632664, 4257307571, 4256967906, 4256612870, 4256241598, 4255853155, 4255446525, 4255020608, 4254574202, 4254106002, 4253614578, 4253098370, 4252555662, 4251984571, 4251383021, 4250748722, 4250079132, 4249371435, 4248622490, 4247828790, 4246986404, 4246090910, 4245137315, 4244119963, 4243032411, 4241867296, 4240616155, 4239269214, 4237815118, 4236240596, 4234530035, 4232664930, 4230623176, 4228378137, 4225897409, 4223141146, 4220059768, 4216590757, 4212654085, 4208145538, 4202926710, 4196809522, 4189531420, 4180713890, 4169789475, 4155865042, 4137444620, 4111806704, 4073393724, 4008685917, 3873074895]); - we = $toNativeArray($kindFloat32, [2.0249555365836613e-09, 1.4866739783681027e-11, 2.4409616689036184e-11, 3.1968806074589295e-11, 3.844677007314168e-11, 4.42282044321729e-11, 4.951644302919611e-11, 5.443358958023836e-11, 5.905943789574764e-11, 6.34494193296753e-11, 6.764381416113352e-11, 7.167294535648239e-11, 7.556032188826833e-11, 7.932458162551725e-11, 8.298078890689453e-11, 8.654132271912474e-11, 9.001651507523079e-11, 9.341507428706208e-11, 9.674443190998971e-11, 1.0001099254308699e-10, 1.0322031424037093e-10, 1.0637725422757427e-10, 1.0948611461891744e-10, 1.1255067711157807e-10, 1.1557434870246297e-10, 1.1856014781042035e-10, 1.2151082917633005e-10, 1.2442885610752796e-10, 1.2731647680563896e-10, 1.3017574518325858e-10, 1.330085347417409e-10, 1.3581656632677408e-10, 1.386014220061682e-10, 1.413645728254309e-10, 1.4410737880776736e-10, 1.4683107507629245e-10, 1.4953686899854546e-10, 1.522258291641876e-10, 1.5489899640730442e-10, 1.575573282952547e-10, 1.6020171300645814e-10, 1.628330109637588e-10, 1.6545202707884954e-10, 1.68059510752272e-10, 1.7065616975120435e-10, 1.73242697965037e-10, 1.758197337720091e-10, 1.783878739169964e-10, 1.8094774290045024e-10, 1.834998542005195e-10, 1.8604476292871652e-10, 1.8858298256319017e-10, 1.9111498494872592e-10, 1.9364125580789704e-10, 1.9616222535212557e-10, 1.9867835154840918e-10, 2.011900368525943e-10, 2.0369768372052732e-10, 2.062016807302669e-10, 2.0870240258208383e-10, 2.1120022397624894e-10, 2.136955057352452e-10, 2.1618855317040442e-10, 2.1867974098199738e-10, 2.2116936060356807e-10, 2.2365774510202385e-10, 2.2614519978869652e-10, 2.2863201609713002e-10, 2.3111849933865614e-10, 2.3360494094681883e-10, 2.3609159072179864e-10, 2.3857874009713953e-10, 2.4106666662859766e-10, 2.4355562011635357e-10, 2.460458781161634e-10, 2.485376904282077e-10, 2.5103127909709144e-10, 2.5352694943414633e-10, 2.560248957284017e-10, 2.585253955356137e-10, 2.610286709003873e-10, 2.6353494386732734e-10, 2.6604446423661443e-10, 2.6855745405285347e-10, 2.71074163116225e-10, 2.7359478571575835e-10, 2.7611959940720965e-10, 2.786487707240326e-10, 2.8118254946640775e-10, 2.8372118543451563e-10, 2.8626484516180994e-10, 2.8881380620404684e-10, 2.9136826285025563e-10, 2.9392840938946563e-10, 2.96494523377433e-10, 2.990667713476114e-10, 3.016454031001814e-10, 3.042306406797479e-10, 3.068226783753403e-10, 3.09421765987139e-10, 3.12028125559749e-10, 3.1464195138219964e-10, 3.17263521010247e-10, 3.1989300097734485e-10, 3.225306410836737e-10, 3.2517669112941405e-10, 3.2783134540359526e-10, 3.3049485370639786e-10, 3.3316743808242677e-10, 3.3584937608743815e-10, 3.385408342548857e-10, 3.4124211789610115e-10, 3.4395342130011386e-10, 3.4667499426710435e-10, 3.494071143528288e-10, 3.521500313574677e-10, 3.54903967325626e-10, 3.576691720574843e-10, 3.6044595086437425e-10, 3.632345535464765e-10, 3.660352021483959e-10, 3.688482297370399e-10, 3.716738583570134e-10, 3.7451239331964814e-10, 3.773641121807003e-10, 3.802292924959261e-10, 3.831082673322328e-10, 3.8600128648980103e-10, 3.8890865527996255e-10, 3.9183070676962473e-10, 3.9476774627011935e-10, 3.977200790927782e-10, 4.006880383045086e-10, 4.0367195697221803e-10, 4.066721681628138e-10, 4.0968900494320337e-10, 4.127228558914453e-10, 4.15774054074447e-10, 4.188429603146915e-10, 4.2192993543466173e-10, 4.25035395767992e-10, 4.2815970213716525e-10, 4.313032986313914e-10, 4.3446651831757777e-10, 4.376498607960855e-10, 4.408536868893975e-10, 4.4407846844229937e-10, 4.4732464954400086e-10, 4.5059267428371186e-10, 4.538830145062178e-10, 4.5719619756745544e-10, 4.605326675566346e-10, 4.638929240741163e-10, 4.672775499869886e-10, 4.706869893844612e-10, 4.74121908400349e-10, 4.775827511238617e-10, 4.810701836888143e-10, 4.845848167178701e-10, 4.881271498113904e-10, 4.916979601254923e-10, 4.952977472605369e-10, 4.989272883726414e-10, 5.025872495956207e-10, 5.062783525744408e-10, 5.100013189540675e-10, 5.13756870379467e-10, 5.175458395179078e-10, 5.21369003525507e-10, 5.252272505806843e-10, 5.29121357839557e-10, 5.330522134805449e-10, 5.3702081670437e-10, 5.41028055689452e-10, 5.450749851476644e-10, 5.491624932574268e-10, 5.532918012640664e-10, 5.574638528571541e-10, 5.616799247931681e-10, 5.659410717839819e-10, 5.702485705860738e-10, 5.746036979559221e-10, 5.790077306500052e-10, 5.83462111958255e-10, 5.879682296594524e-10, 5.925275825546805e-10, 5.971417249561739e-10, 6.01812211176167e-10, 6.065408175714992e-10, 6.113292094767075e-10, 6.16179329782085e-10, 6.21092954844471e-10, 6.260721940876124e-10, 6.311191569352559e-10, 6.362359528111483e-10, 6.414249686947926e-10, 6.466885360545405e-10, 6.520292639144998e-10, 6.574497612987784e-10, 6.629528592760892e-10, 6.685415554485985e-10, 6.742187919073217e-10, 6.799880103436351e-10, 6.858525969377638e-10, 6.918161599145378e-10, 6.978825850545434e-10, 7.040559801829716e-10, 7.103406751696184e-10, 7.167412219288849e-10, 7.232625609532306e-10, 7.2990985477972e-10, 7.366885990123251e-10, 7.436047333442275e-10, 7.506645305355164e-10, 7.57874762946642e-10, 7.652426470272644e-10, 7.727759543385559e-10, 7.804830115532013e-10, 7.883728114777e-10, 7.964550685635174e-10, 8.047402189070851e-10, 8.132396422944055e-10, 8.219657177122031e-10, 8.309318788590758e-10, 8.401527806789488e-10, 8.496445214056791e-10, 8.594246980742071e-10, 8.695127395874636e-10, 8.799300732498239e-10, 8.90700457834015e-10, 9.01850316648023e-10, 9.134091816243028e-10, 9.254100818978372e-10, 9.37890431984556e-10, 9.508922538259412e-10, 9.64463842123564e-10, 9.78660263939446e-10, 9.935448019859905e-10, 1.0091912860943353e-09, 1.0256859805934937e-09, 1.0431305819125214e-09, 1.0616465484503124e-09, 1.0813799855569073e-09, 1.1025096391392708e-09, 1.1252564435793033e-09, 1.149898620766976e-09, 1.176793218427008e-09, 1.2064089727203964e-09, 1.2393785997488749e-09, 1.2765849488616254e-09, 1.319313880365769e-09, 1.36954347862428e-09, 1.4305497897382224e-09, 1.5083649884672923e-09, 1.6160853766322703e-09, 1.7921247819074893e-09]); - fe = $toNativeArray($kindFloat32, [1, 0.9381436705589294, 0.900469958782196, 0.8717043399810791, 0.847785472869873, 0.8269932866096497, 0.8084216713905334, 0.7915276288986206, 0.7759568691253662, 0.7614634037017822, 0.7478685975074768, 0.7350381016731262, 0.7228676676750183, 0.7112747430801392, 0.7001926302909851, 0.6895664930343628, 0.6793505549430847, 0.669506311416626, 0.6600008606910706, 0.6508058309555054, 0.6418967247009277, 0.633251965045929, 0.62485271692276, 0.6166821718215942, 0.608725368976593, 0.6009689569473267, 0.5934008955955505, 0.5860103368759155, 0.5787873864173889, 0.5717230439186096, 0.5648092031478882, 0.5580382943153381, 0.5514034032821655, 0.5448982119560242, 0.5385168790817261, 0.5322538614273071, 0.526104211807251, 0.5200631618499756, 0.5141264200210571, 0.5082897543907166, 0.5025495290756226, 0.4969019889831543, 0.4913438558578491, 0.4858720004558563, 0.48048335313796997, 0.4751752018928528, 0.4699448347091675, 0.4647897481918335, 0.4597076177597046, 0.4546961486339569, 0.4497532546520233, 0.44487687945365906, 0.4400651156902313, 0.4353161156177521, 0.4306281507015228, 0.42599955201148987, 0.42142874002456665, 0.4169141948223114, 0.4124544560909271, 0.40804818272590637, 0.4036940038204193, 0.39939069747924805, 0.3951369822025299, 0.39093172550201416, 0.38677382469177246, 0.38266217708587646, 0.378595769405365, 0.37457355856895447, 0.37059465050697327, 0.366658091545105, 0.362762987613678, 0.358908474445343, 0.35509374737739563, 0.35131800174713135, 0.3475804924964905, 0.34388044476509094, 0.34021714329719543, 0.33658990263938904, 0.3329980671405792, 0.3294409513473511, 0.32591795921325684, 0.32242849469184875, 0.3189719021320343, 0.3155476748943329, 0.31215524673461914, 0.3087940812110901, 0.30546361207962036, 0.30216339230537415, 0.29889291524887085, 0.29565170407295227, 0.2924392819404602, 0.2892552316188812, 0.28609907627105713, 0.2829704284667969, 0.27986884117126465, 0.2767939269542694, 0.2737452983856201, 0.2707225978374481, 0.26772540807724, 0.26475343108177185, 0.2618062496185303, 0.258883535861969, 0.2559850215911865, 0.25311028957366943, 0.25025907158851624, 0.24743106961250305, 0.2446259707212448, 0.24184346199035645, 0.23908329010009766, 0.23634515702724457, 0.2336287796497345, 0.23093391954898834, 0.22826029360294342, 0.22560766339302063, 0.22297576069831848, 0.22036437690258026, 0.21777324378490448, 0.21520215272903442, 0.212650865316391, 0.21011915802955627, 0.20760682225227356, 0.20511364936828613, 0.20263944566249847, 0.20018397271633148, 0.19774706661701202, 0.1953285187482834, 0.19292815029621124, 0.19054576754570007, 0.18818120658397675, 0.18583425879478455, 0.18350479006767273, 0.18119260668754578, 0.17889754474163055, 0.17661945521831512, 0.17435817420482635, 0.1721135377883911, 0.16988539695739746, 0.16767361760139465, 0.16547803580760956, 0.16329853236675262, 0.16113494336605072, 0.1589871346950531, 0.15685498714447021, 0.15473836660385132, 0.15263713896274567, 0.1505511850118637, 0.1484803706407547, 0.14642459154129028, 0.1443837285041809, 0.14235764741897583, 0.1403462439775467, 0.13834942877292633, 0.136367067694664, 0.13439907133579254, 0.1324453204870224, 0.1305057406425476, 0.12858019769191742, 0.12666863203048706, 0.12477091699838638, 0.12288697808980942, 0.1210167184472084, 0.11916005611419678, 0.11731690168380737, 0.11548716574907303, 0.11367076635360718, 0.11186762899160385, 0.11007767915725708, 0.1083008274435997, 0.10653700679540634, 0.10478614270687103, 0.1030481606721878, 0.10132300108671188, 0.0996105819940567, 0.09791085124015808, 0.09622374176979065, 0.09454918652772903, 0.09288713335990906, 0.09123751521110535, 0.08960027992725372, 0.08797537535429001, 0.08636274188756943, 0.0847623273730278, 0.08317409455776215, 0.08159798383712769, 0.08003395050764084, 0.07848194986581802, 0.07694194465875626, 0.07541389018297195, 0.07389774918556213, 0.07239348441362381, 0.070901058614254, 0.06942043453454971, 0.06795158982276917, 0.06649449467658997, 0.06504911929368973, 0.06361543387174606, 0.06219341605901718, 0.06078304722905159, 0.0593843050301075, 0.05799717456102371, 0.05662164092063904, 0.05525768920779228, 0.05390531197190285, 0.05256449431180954, 0.05123523622751236, 0.04991753399372101, 0.04861138388514519, 0.047316793352365494, 0.04603376239538193, 0.044762298464775085, 0.04350241273641586, 0.04225412383675575, 0.04101744294166565, 0.039792392402887344, 0.03857899457216263, 0.03737728297710419, 0.03618728369474411, 0.03500903770327568, 0.03384258225560188, 0.0326879620552063, 0.031545232981443405, 0.030414443463087082, 0.0292956605553627, 0.028188949450850487, 0.027094384655356407, 0.02601204626262188, 0.024942025542259216, 0.023884421214461327, 0.022839335724711418, 0.021806888282299042, 0.020787203684449196, 0.019780423492193222, 0.018786700442433357, 0.017806200310587883, 0.016839107498526573, 0.015885621309280396, 0.014945968054234982, 0.01402039173990488, 0.013109165243804455, 0.012212592177093029, 0.011331013403832912, 0.010464809834957123, 0.009614413604140282, 0.008780314587056637, 0.007963077165186405, 0.007163353264331818, 0.0063819061033427715, 0.005619642324745655, 0.004877655766904354, 0.004157294984906912, 0.003460264764726162, 0.0027887988835573196, 0.0021459676790982485, 0.001536299823783338, 0.0009672692976891994, 0.0004541343660093844]); - /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; - }; - $pkg.$init = $init; - return $pkg; -})(); -$packages["math/big"] = (function() { - var $pkg = {}, $init, bytes, binary, errors, fmt, nosync, io, math, bits, rand, strconv, strings, Rat, divisor, nat, byteReader, Int, Float, ErrNaN, form, RoundingMode, Accuracy, decimal, Word, ptrType, structType, arrayType, structType$1, sliceType, ptrType$1, sliceType$1, ptrType$2, sliceType$2, ptrType$3, sliceType$3, sliceType$4, ptrType$4, arrayType$1, arrayType$2, ptrType$5, ptrType$6, threeOnce, cacheBase10, natPool, _RoundingMode_index, errNoDigits, errInvalSep, leafSize, natOne, natTwo, natFive, natTen, karatsubaThreshold, basicSqrThreshold, karatsubaSqrThreshold, intOne, pow5tab, _Accuracy_index, three, newFloat, ratTok, scanExponent, NewRat, quotToFloat32, quotToFloat64, mulDenom, divWVW, greaterThan, maxPow, pow, divisors, basicMul, karatsubaAdd, karatsubaSub, karatsuba, alias, addAt, max, karatsubaLen, basicSqr, karatsubaSqr, getNat, putNat, same, bigEndianWord, writeMultiple, scanSign, NewInt, low32, low64, lehmerSimulate, lehmerUpdate, euclidUpdate, Jacobi, roundShortest, fmtE, fmtF, min, NewFloat, makeAcc, fnorm, msb32, msb64, validateBinaryOperands, umax32, shr, appendZeros, shouldRoundUp, trim, addVV, subVV, addVW, subVW, shlVU, shrVU, mulAddVWW, addMulVVW, mulWW, mulAddWWW_g, nlz, addVV_g, subVV_g, addVW_g, addVWlarge, subVW_g, subVWlarge, shlVU_g, shrVU_g, mulAddVWW_g, addMulVVW_g, divWW, reciprocalWord; - bytes = $packages["bytes"]; - binary = $packages["encoding/binary"]; - errors = $packages["errors"]; - fmt = $packages["fmt"]; - nosync = $packages["github.com/gopherjs/gopherjs/nosync"]; - io = $packages["io"]; - math = $packages["math"]; - bits = $packages["math/bits"]; - rand = $packages["math/rand"]; - strconv = $packages["strconv"]; - strings = $packages["strings"]; - Rat = $newType(0, $kindStruct, "big.Rat", true, "math/big", true, function(a_, b_) { - this.$val = this; - if (arguments.length === 0) { - this.a = new Int.ptr(false, nat.nil); - this.b = new Int.ptr(false, nat.nil); - return; - } - this.a = a_; - this.b = b_; - }); - divisor = $newType(0, $kindStruct, "big.divisor", true, "math/big", false, function(bbb_, nbits_, ndigits_) { - this.$val = this; - if (arguments.length === 0) { - this.bbb = nat.nil; - this.nbits = 0; - this.ndigits = 0; - return; - } - this.bbb = bbb_; - this.nbits = nbits_; - this.ndigits = ndigits_; - }); - nat = $newType(12, $kindSlice, "big.nat", true, "math/big", false, null); - byteReader = $newType(0, $kindStruct, "big.byteReader", true, "math/big", false, function(ScanState_) { - this.$val = this; - if (arguments.length === 0) { - this.ScanState = $ifaceNil; - return; - } - this.ScanState = ScanState_; - }); - Int = $newType(0, $kindStruct, "big.Int", true, "math/big", true, function(neg_, abs_) { - this.$val = this; - if (arguments.length === 0) { - this.neg = false; - this.abs = nat.nil; - return; - } - this.neg = neg_; - this.abs = abs_; - }); - Float = $newType(0, $kindStruct, "big.Float", true, "math/big", true, function(prec_, mode_, acc_, form_, neg_, mant_, exp_) { - this.$val = this; - if (arguments.length === 0) { - this.prec = 0; - this.mode = 0; - this.acc = 0; - this.form = 0; - this.neg = false; - this.mant = nat.nil; - this.exp = 0; - return; - } - this.prec = prec_; - this.mode = mode_; - this.acc = acc_; - this.form = form_; - this.neg = neg_; - this.mant = mant_; - this.exp = exp_; - }); - ErrNaN = $newType(0, $kindStruct, "big.ErrNaN", true, "math/big", true, function(msg_) { - this.$val = this; - if (arguments.length === 0) { - this.msg = ""; - return; - } - this.msg = msg_; - }); - form = $newType(1, $kindUint8, "big.form", true, "math/big", false, null); - RoundingMode = $newType(1, $kindUint8, "big.RoundingMode", true, "math/big", true, null); - Accuracy = $newType(1, $kindInt8, "big.Accuracy", true, "math/big", true, null); - decimal = $newType(0, $kindStruct, "big.decimal", true, "math/big", false, function(mant_, exp_) { - this.$val = this; - if (arguments.length === 0) { - this.mant = sliceType$1.nil; - this.exp = 0; - return; - } - this.mant = mant_; - this.exp = exp_; - }); - Word = $newType(4, $kindUint, "big.Word", true, "math/big", true, null); - $pkg.Rat = Rat; - $pkg.divisor = divisor; - $pkg.nat = nat; - $pkg.byteReader = byteReader; - $pkg.Int = Int; - $pkg.Float = Float; - $pkg.ErrNaN = ErrNaN; - $pkg.form = form; - $pkg.RoundingMode = RoundingMode; - $pkg.Accuracy = Accuracy; - $pkg.decimal = decimal; - $pkg.Word = Word; - $pkg.$finishSetup = function() { - ptrType = $ptrType(Float); - structType = $structType("math/big", [{prop: "Once", name: "Once", embedded: true, exported: true, typ: nosync.Once, tag: ""}, {prop: "v", name: "v", embedded: false, exported: false, typ: ptrType, tag: ""}]); - arrayType = $arrayType(divisor, 64); - structType$1 = $structType("math/big", [{prop: "Mutex", name: "Mutex", embedded: true, exported: true, typ: nosync.Mutex, tag: ""}, {prop: "table", name: "table", embedded: false, exported: false, typ: arrayType, tag: ""}]); - sliceType = $sliceType($emptyInterface); - ptrType$1 = $ptrType(Rat); - sliceType$1 = $sliceType($Uint8); - ptrType$2 = $ptrType(Int); - sliceType$2 = $sliceType(Word); - ptrType$3 = $ptrType(nat); - sliceType$3 = $sliceType(ptrType$3); - sliceType$4 = $sliceType(divisor); - ptrType$4 = $ptrType(Word); - arrayType$1 = $arrayType(ptrType$3, 16); - arrayType$2 = $arrayType(nat, 16); - ptrType$5 = $ptrType(rand.Rand); - ptrType$6 = $ptrType(decimal); - three = function three$1() { - var {$s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = threeOnce.Once.Do((function three·func1() { - var {_r, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = NewFloat(3); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - threeOnce.v = _r; - $s = -1; return; - /* */ } return; } var $f = {$blk: three·func1, $c: true, $r, _r, $s};return $f; - })); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return threeOnce.v; - /* */ } return; } var $f = {$blk: three$1, $c: true, $r, $s};return $f; - }; - $ptrType(Float).prototype.Sqrt = function Sqrt(x) { - var {$24r, _1, _q, _r, _r$1, _r$2, _r$3, b, prec, x, x$1, z, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - /* */ if (false) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (false) { */ case 1: - $r = x.validate(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - if (z.prec === 0) { - z.prec = x.prec; - } - _r = x.Sign(); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - /* */ if (_r === -1) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_r === -1) { */ case 4: - $panic((x$1 = new ErrNaN.ptr("square root of negative operand"), new x$1.constructor.elem(x$1))); - /* } */ case 5: - if (!((x.form === 1))) { - z.acc = 0; - z.form = x.form; - z.neg = x.neg; - $s = -1; return z; - } - prec = z.prec; - _r$1 = x.MantExp(z); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - b = _r$1; - z.prec = prec; - _1 = (_r$2 = b % 2, _r$2 === _r$2 ? _r$2 : $throwRuntimeError("integer divide by zero")); - if (_1 === (0)) { - } else if (_1 === (1)) { - z.exp = z.exp + (1) >> 0; - } else if (_1 === (-1)) { - z.exp = z.exp - (1) >> 0; - } - $r = z.sqrtInverse(z); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$3 = z.SetMantExp(z, (_q = b / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r = _r$3; - $s = 10; case 10: return $24r; - /* */ } return; } var $f = {$blk: Sqrt, $c: true, $r, $24r, _1, _q, _r, _r$1, _r$2, _r$3, b, prec, x, x$1, z, $s};return $f; - }; - $ptrType(Float).prototype.sqrtInverse = function sqrtInverse(x) { - var {_r, _r$1, _r$2, _r$3, _r$4, _tuple, ng, prec, sqi, three$2, u, v, x, xf, z, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - three$2 = [three$2]; - u = [u]; - v = [v]; - x = [x]; - z = this; - u[0] = newFloat(z.prec); - v[0] = newFloat(z.prec); - _r = three(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - three$2[0] = _r; - ng = (function(three$2, u, v, x) { return function Float·sqrtInverse·func1(t) { - var {$24r, _r$1, _r$2, _r$3, _r$4, _r$5, t, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - u[0].prec = t.prec; - v[0].prec = t.prec; - _r$1 = u[0].Mul(t, t); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - _r$2 = u[0].Mul(x[0], u[0]); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - _r$3 = v[0].Sub(three$2[0], u[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$3; - _r$4 = u[0].Mul(t, v[0]); /* */ $s = 4; case 4: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$4; - u[0].exp = u[0].exp - (1) >> 0; - _r$5 = t.Set(u[0]); /* */ $s = 5; case 5: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - $24r = _r$5; - $s = 6; case 6: return $24r; - /* */ } return; } var $f = {$blk: Float·sqrtInverse·func1, $c: true, $r, $24r, _r$1, _r$2, _r$3, _r$4, _r$5, t, $s};return $f; - }; })(three$2, u, v, x); - _r$1 = x[0].Float64(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - xf = _tuple[0]; - sqi = newFloat(z.prec); - _r$2 = sqi.SetFloat64(1 / math.Sqrt(xf)); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - prec = z.prec + 32 >>> 0; - /* while (true) { */ case 4: - /* if (!(sqi.prec < prec)) { break; } */ if(!(sqi.prec < prec)) { $s = 5; continue; } - sqi.prec = $imul(sqi.prec, (2)) >>> 0; - _r$3 = ng(sqi); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - sqi = _r$3; - $s = 4; continue; - case 5: - _r$4 = z.Mul(x[0], sqi); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$4; - $s = -1; return; - /* */ } return; } var $f = {$blk: sqrtInverse, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _tuple, ng, prec, sqi, three$2, u, v, x, xf, z, $s};return $f; - }; - newFloat = function newFloat$1(prec2) { - var _q, prec2, z; - z = new Float.ptr(0, 0, 0, 0, false, nat.nil, 0); - z.mant = z.mant.make($imul((((_q = prec2 / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")) >> 0)), 2)); - return z; - }; - RoundingMode.prototype.String = function String() { - var i, x; - i = this.$val; - if (i >= 6) { - return "RoundingMode(" + strconv.FormatInt((new $Int64(0, i)), 10) + ")"; - } - return $substring("ToNearestEvenToNearestAwayToZeroAwayFromZeroToNegativeInfToPositiveInf", ((i < 0 || i >= _RoundingMode_index.length) ? ($throwRuntimeError("index out of range"), undefined) : _RoundingMode_index[i]), (x = i + 1 << 24 >>> 24, ((x < 0 || x >= _RoundingMode_index.length) ? ($throwRuntimeError("index out of range"), undefined) : _RoundingMode_index[x]))); - }; - $ptrType(RoundingMode).prototype.String = function(...$args) { return new RoundingMode(this.$get()).String(...$args); }; - $ptrType(Rat).prototype.GobEncode = function GobEncode() { - var b, buf, i, j, n, x; - x = this; - if (x === ptrType$1.nil) { - return [sliceType$1.nil, $ifaceNil]; - } - buf = $makeSlice(sliceType$1, (5 + ($imul(((x.a.abs.$length + x.b.abs.$length >> 0)), 4)) >> 0)); - i = x.b.abs.bytes(buf); - j = x.a.abs.bytes($subslice(buf, 0, i)); - n = i - j >> 0; - if (!((((((n >>> 0)) >> 0)) === n))) { - return [sliceType$1.nil, errors.New("Rat.GobEncode: numerator too large")]; - } - $clone(binary.BigEndian, binary.bigEndian).PutUint32($subslice(buf, (j - 4 >> 0), j), ((n >>> 0))); - j = j - (5) >> 0; - b = 2; - if (x.a.neg) { - b = (b | (1)) >>> 0; - } - ((j < 0 || j >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + j] = b); - return [$subslice(buf, j), $ifaceNil]; - }; - $ptrType(Rat).prototype.GobDecode = function GobDecode(buf) { - var {$24r, _r, b, buf, i, ln, x, z, $s, $r, $c} = $restore(this, {buf}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - if (buf.$length === 0) { - Rat.copy(z, new Rat.ptr(new Int.ptr(false, nat.nil), new Int.ptr(false, nat.nil))); - $s = -1; return $ifaceNil; - } - if (buf.$length < 5) { - $s = -1; return errors.New("Rat.GobDecode: buffer too small"); - } - b = (0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]); - /* */ if (!(((b >>> 1 << 24 >>> 24) === 1))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(((b >>> 1 << 24 >>> 24) === 1))) { */ case 1: - _r = fmt.Errorf("Rat.GobDecode: encoding version %d not supported", new sliceType([new $Uint8((b >>> 1 << 24 >>> 24))])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 4; case 4: return $24r; - /* } */ case 2: - ln = $clone(binary.BigEndian, binary.bigEndian).Uint32($subslice(buf, 1, 5)); - if ((x = (new $Uint64(0, ln)), (x.$high > 0 || (x.$high === 0 && x.$low > 2147483642)))) { - $s = -1; return errors.New("Rat.GobDecode: invalid length"); - } - i = 5 + ((ln >> 0)) >> 0; - if (buf.$length < i) { - $s = -1; return errors.New("Rat.GobDecode: buffer too small"); - } - z.a.neg = !((((b & 1) >>> 0) === 0)); - z.a.abs = z.a.abs.setBytes($subslice(buf, 5, i)); - z.b.abs = z.b.abs.setBytes($subslice(buf, i)); - $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: GobDecode, $c: true, $r, $24r, _r, b, buf, i, ln, x, z, $s};return $f; - }; - $ptrType(Rat).prototype.MarshalText = function MarshalText() { - var {$24r, $24r$1, _r, _r$1, _tmp, _tmp$1, _tuple, err, text, x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - text = sliceType$1.nil; - err = $ifaceNil; - x = this; - /* */ if (x.IsInt()) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (x.IsInt()) { */ case 1: - _r = x.a.MarshalText(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - text = _tuple[0]; - err = _tuple[1]; - $24r = [text, err]; - $s = 4; case 4: return $24r; - /* } */ case 2: - _r$1 = x.marshal(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tmp = _r$1; - _tmp$1 = $ifaceNil; - text = _tmp; - err = _tmp$1; - $24r$1 = [text, err]; - $s = 6; case 6: return $24r$1; - /* */ } return; } var $f = {$blk: MarshalText, $c: true, $r, $24r, $24r$1, _r, _r$1, _tmp, _tmp$1, _tuple, err, text, x, $s};return $f; - }; - $ptrType(Rat).prototype.UnmarshalText = function UnmarshalText(text) { - var {$24r, _r, _r$1, _tuple, ok, text, z, $s, $r, $c} = $restore(this, {text}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - _r = z.SetString(($bytesToString(text))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - ok = _tuple[1]; - /* */ if (!ok) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!ok) { */ case 2: - _r$1 = fmt.Errorf("math/big: cannot unmarshal %q into a *big.Rat", new sliceType([text])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 5; case 5: return $24r; - /* } */ case 3: - $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: UnmarshalText, $c: true, $r, $24r, _r, _r$1, _tuple, ok, text, z, $s};return $f; - }; - ratTok = function ratTok$1(ch) { - var ch; - return strings.ContainsRune("+-/0123456789.eE", ch); - }; - $ptrType(Rat).prototype.Scan = function Scan(s, ch) { - var {_r, _r$1, _tuple, _tuple$1, ch, err, ok, s, tok, z, $s, $r, $c} = $restore(this, {s, ch}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - _r = s.Token(true, ratTok); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - tok = _tuple[0]; - err = _tuple[1]; - if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return err; - } - if (!strings.ContainsRune("efgEFGv", ch)) { - $s = -1; return errors.New("Rat.Scan: invalid verb"); - } - _r$1 = z.SetString(($bytesToString(tok))); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$1 = _r$1; - ok = _tuple$1[1]; - if (!ok) { - $s = -1; return errors.New("Rat.Scan: invalid syntax"); - } - $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: Scan, $c: true, $r, _r, _r$1, _tuple, _tuple$1, ch, err, ok, s, tok, z, $s};return $f; - }; - $ptrType(Rat).prototype.SetString = function SetString(s) { - var {$24r, $24r$1, $24r$2, _1, _2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, base, d, ebase, err, err$1, exp, exp2, exp5, fcount, n, neg, ok, pow5, r, r$1, s, sep, x, x$1, x$2, z, $s, $r, $c} = $restore(this, {s}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - if (s.length === 0) { - $s = -1; return [ptrType$1.nil, false]; - } - sep = strings.Index(s, "/"); - /* */ if (sep >= 0) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (sep >= 0) { */ case 1: - _r = z.a.SetString($substring(s, 0, sep), 0); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - ok = _tuple[1]; - if (!ok) { - $s = -1; return [ptrType$1.nil, false]; - } - r = strings.NewReader($substring(s, (sep + 1 >> 0))); - err = $ifaceNil; - _r$1 = z.b.abs.scan(r, 0, false); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$1 = _r$1; - z.b.abs = _tuple$1[0]; - err = _tuple$1[3]; - if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [ptrType$1.nil, false]; - } - _tuple$2 = r.ReadByte(); - err = _tuple$2[1]; - if (!($interfaceIsEqual(err, io.EOF))) { - $s = -1; return [ptrType$1.nil, false]; - } - if (z.b.abs.$length === 0) { - $s = -1; return [ptrType$1.nil, false]; - } - _r$2 = z.norm(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = [_r$2, true]; - $s = 6; case 6: return $24r; - /* } */ case 2: - r$1 = strings.NewReader(s); - _r$3 = scanSign(r$1); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple$3 = _r$3; - neg = _tuple$3[0]; - err$1 = _tuple$3[1]; - if (!($interfaceIsEqual(err$1, $ifaceNil))) { - $s = -1; return [ptrType$1.nil, false]; - } - base = 0; - fcount = 0; - _r$4 = z.a.abs.scan(r$1, 0, true); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _tuple$4 = _r$4; - z.a.abs = _tuple$4[0]; - base = _tuple$4[1]; - fcount = _tuple$4[2]; - err$1 = _tuple$4[3]; - if (!($interfaceIsEqual(err$1, $ifaceNil))) { - $s = -1; return [ptrType$1.nil, false]; - } - exp = new $Int64(0, 0); - ebase = 0; - _r$5 = scanExponent(r$1, true, true); /* */ $s = 9; case 9: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _tuple$5 = _r$5; - exp = _tuple$5[0]; - ebase = _tuple$5[1]; - err$1 = _tuple$5[2]; - if (!($interfaceIsEqual(err$1, $ifaceNil))) { - $s = -1; return [ptrType$1.nil, false]; - } - _tuple$6 = r$1.ReadByte(); - err$1 = _tuple$6[1]; - if (!($interfaceIsEqual(err$1, io.EOF))) { - $s = -1; return [ptrType$1.nil, false]; - } - /* */ if (z.a.abs.$length === 0) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (z.a.abs.$length === 0) { */ case 10: - _r$6 = z.norm(); /* */ $s = 12; case 12: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - $24r$1 = [_r$6, true]; - $s = 13; case 13: return $24r$1; - /* } */ case 11: - _tmp = new $Int64(0, 0); - _tmp$1 = new $Int64(0, 0); - exp2 = _tmp; - exp5 = _tmp$1; - if (fcount < 0) { - d = (new $Int64(0, fcount)); - _1 = base; - if (_1 === (10)) { - exp5 = d; - exp2 = d; - } else if (_1 === (2)) { - exp2 = d; - } else if (_1 === (8)) { - exp2 = $mul64(d, new $Int64(0, 3)); - } else if (_1 === (16)) { - exp2 = $mul64(d, new $Int64(0, 4)); - } else { - $panic(new $String("unexpected mantissa base")); - } - } - _2 = ebase; - if (_2 === (10)) { - exp5 = (x = exp, new $Int64(exp5.$high + x.$high, exp5.$low + x.$low)); - exp2 = (x$1 = exp, new $Int64(exp2.$high + x$1.$high, exp2.$low + x$1.$low)); - } else if (_2 === (2)) { - exp2 = (x$2 = exp, new $Int64(exp2.$high + x$2.$high, exp2.$low + x$2.$low)); - } else { - $panic(new $String("unexpected exponent base")); - } - /* */ if (!((exp5.$high === 0 && exp5.$low === 0))) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (!((exp5.$high === 0 && exp5.$low === 0))) { */ case 14: - n = exp5; - if ((n.$high < 0 || (n.$high === 0 && n.$low < 0))) { - n = new $Int64(-n.$high, -n.$low); - if ((n.$high < 0 || (n.$high === 0 && n.$low < 0))) { - $s = -1; return [ptrType$1.nil, false]; - } - } - if ((n.$high > 0 || (n.$high === 0 && n.$low > 1000000))) { - $s = -1; return [ptrType$1.nil, false]; - } - _r$7 = z.b.abs.expNN(natFive, (nat.nil).setWord(((n.$low >>> 0))), nat.nil, false); /* */ $s = 17; case 17: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - pow5 = _r$7; - /* */ if ((exp5.$high > 0 || (exp5.$high === 0 && exp5.$low > 0))) { $s = 18; continue; } - /* */ $s = 19; continue; - /* if ((exp5.$high > 0 || (exp5.$high === 0 && exp5.$low > 0))) { */ case 18: - _r$8 = z.a.abs.mul(z.a.abs, pow5); /* */ $s = 21; case 21: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - z.a.abs = _r$8; - z.b.abs = z.b.abs.setWord(1); - $s = 20; continue; - /* } else { */ case 19: - z.b.abs = pow5; - /* } */ case 20: - $s = 16; continue; - /* } else { */ case 15: - z.b.abs = z.b.abs.setWord(1); - /* } */ case 16: - if ((exp2.$high < -1 || (exp2.$high === -1 && exp2.$low < 4284967296)) || (exp2.$high > 0 || (exp2.$high === 0 && exp2.$low > 10000000))) { - $s = -1; return [ptrType$1.nil, false]; - } - if ((exp2.$high > 0 || (exp2.$high === 0 && exp2.$low > 0))) { - z.a.abs = z.a.abs.shl(z.a.abs, ((exp2.$low >>> 0))); - } else if ((exp2.$high < 0 || (exp2.$high === 0 && exp2.$low < 0))) { - z.b.abs = z.b.abs.shl(z.b.abs, ((new $Int64(-exp2.$high, -exp2.$low).$low >>> 0))); - } - z.a.neg = neg && z.a.abs.$length > 0; - _r$9 = z.norm(); /* */ $s = 22; case 22: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - $24r$2 = [_r$9, true]; - $s = 23; case 23: return $24r$2; - /* */ } return; } var $f = {$blk: SetString, $c: true, $r, $24r, $24r$1, $24r$2, _1, _2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, base, d, ebase, err, err$1, exp, exp2, exp5, fcount, n, neg, ok, pow5, r, r$1, s, sep, x, x$1, x$2, z, $s};return $f; - }; - scanExponent = function scanExponent$1(r, base2ok, sepOk) { - var {_1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, base, base2ok, ch, digits, err, exp, hasDigits, invalSep, prev, r, sepOk, $s, $r, $c} = $restore(this, {r, base2ok, sepOk}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - exp = new $Int64(0, 0); - base = 0; - err = $ifaceNil; - _r = r.ReadByte(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - ch = _tuple[0]; - err = _tuple[1]; - if (!($interfaceIsEqual(err, $ifaceNil))) { - if ($interfaceIsEqual(err, io.EOF)) { - err = $ifaceNil; - } - _tmp = new $Int64(0, 0); - _tmp$1 = 10; - _tmp$2 = err; - exp = _tmp; - base = _tmp$1; - err = _tmp$2; - $s = -1; return [exp, base, err]; - } - _1 = ch; - /* */ if ((_1 === (101)) || (_1 === (69))) { $s = 3; continue; } - /* */ if ((_1 === (112)) || (_1 === (80))) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if ((_1 === (101)) || (_1 === (69))) { */ case 3: - base = 10; - $s = 6; continue; - /* } else if ((_1 === (112)) || (_1 === (80))) { */ case 4: - if (base2ok) { - base = 2; - /* break; */ $s = 2; continue; - } - _r$1 = r.UnreadByte(); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - _tmp$3 = new $Int64(0, 0); - _tmp$4 = 10; - _tmp$5 = $ifaceNil; - exp = _tmp$3; - base = _tmp$4; - err = _tmp$5; - $s = -1; return [exp, base, err]; - /* } else { */ case 5: - _r$2 = r.UnreadByte(); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - _tmp$6 = new $Int64(0, 0); - _tmp$7 = 10; - _tmp$8 = $ifaceNil; - exp = _tmp$6; - base = _tmp$7; - err = _tmp$8; - $s = -1; return [exp, base, err]; - /* } */ case 6: - case 2: - digits = sliceType$1.nil; - _r$3 = r.ReadByte(); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple$1 = _r$3; - ch = _tuple$1[0]; - err = _tuple$1[1]; - /* */ if ($interfaceIsEqual(err, $ifaceNil) && ((ch === 43) || (ch === 45))) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if ($interfaceIsEqual(err, $ifaceNil) && ((ch === 43) || (ch === 45))) { */ case 10: - if (ch === 45) { - digits = $append(digits, 45); - } - _r$4 = r.ReadByte(); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _tuple$2 = _r$4; - ch = _tuple$2[0]; - err = _tuple$2[1]; - /* } */ case 11: - prev = 46; - invalSep = false; - hasDigits = false; - /* while (true) { */ case 13: - /* if (!($interfaceIsEqual(err, $ifaceNil))) { break; } */ if(!($interfaceIsEqual(err, $ifaceNil))) { $s = 14; continue; } - /* */ if (48 <= ch && ch <= 57) { $s = 15; continue; } - /* */ if ((ch === 95) && sepOk) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (48 <= ch && ch <= 57) { */ case 15: - digits = $append(digits, ch); - prev = 48; - hasDigits = true; - $s = 18; continue; - /* } else if ((ch === 95) && sepOk) { */ case 16: - if (!((prev === 48))) { - invalSep = true; - } - prev = 95; - $s = 18; continue; - /* } else { */ case 17: - _r$5 = r.UnreadByte(); /* */ $s = 19; case 19: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$5; - /* break; */ $s = 14; continue; - /* } */ case 18: - _r$6 = r.ReadByte(); /* */ $s = 20; case 20: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _tuple$3 = _r$6; - ch = _tuple$3[0]; - err = _tuple$3[1]; - $s = 13; continue; - case 14: - if ($interfaceIsEqual(err, io.EOF)) { - err = $ifaceNil; - } - if ($interfaceIsEqual(err, $ifaceNil) && !hasDigits) { - err = errNoDigits; - } - if ($interfaceIsEqual(err, $ifaceNil)) { - _tuple$4 = strconv.ParseInt(($bytesToString(digits)), 10, 64); - exp = _tuple$4[0]; - err = _tuple$4[1]; - } - if ($interfaceIsEqual(err, $ifaceNil) && (invalSep || (prev === 95))) { - err = errInvalSep; - } - $s = -1; return [exp, base, err]; - /* */ } return; } var $f = {$blk: scanExponent$1, $c: true, $r, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, base, base2ok, ch, digits, err, exp, hasDigits, invalSep, prev, r, sepOk, $s};return $f; - }; - $ptrType(Rat).prototype.String = function String$1() { - var {$24r, _r, x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - _r = x.marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = ($bytesToString(_r)); - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$1, $c: true, $r, $24r, _r, x, $s};return $f; - }; - $ptrType(Rat).prototype.marshal = function marshal() { - var {_r, _r$1, buf, x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - buf = sliceType$1.nil; - _r = x.a.Append(buf, 10); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - buf = _r; - buf = $append(buf, 47); - /* */ if (!((x.b.abs.$length === 0))) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!((x.b.abs.$length === 0))) { */ case 2: - _r$1 = x.b.Append(buf, 10); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - buf = _r$1; - $s = 4; continue; - /* } else { */ case 3: - buf = $append(buf, 49); - /* } */ case 4: - $s = -1; return buf; - /* */ } return; } var $f = {$blk: marshal, $c: true, $r, _r, _r$1, buf, x, $s};return $f; - }; - $ptrType(Rat).prototype.RatString = function RatString() { - var {$24r, $24r$1, _r, _r$1, x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - /* */ if (x.IsInt()) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (x.IsInt()) { */ case 1: - _r = x.a.String(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 4; case 4: return $24r; - /* } */ case 2: - _r$1 = x.String(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r$1 = _r$1; - $s = 6; case 6: return $24r$1; - /* */ } return; } var $f = {$blk: RatString, $c: true, $r, $24r, $24r$1, _r, _r$1, x, $s};return $f; - }; - $ptrType(Rat).prototype.FloatString = function FloatString(prec) { - var {_arg, _arg$1, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, buf, i, i$1, p, prec, q, r, r2, rs, x, $s, $r, $c} = $restore(this, {prec}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - buf = sliceType$1.nil; - /* */ if (x.IsInt()) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (x.IsInt()) { */ case 1: - _r = x.a.Append(buf, 10); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - buf = _r; - if (prec > 0) { - buf = $append(buf, 46); - i = prec; - while (true) { - if (!(i > 0)) { break; } - buf = $append(buf, 48); - i = i - (1) >> 0; - } - } - $s = -1; return ($bytesToString(buf)); - /* } */ case 2: - _r$1 = (nat.nil).div((nat.nil), x.a.abs, x.b.abs); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - q = _tuple[0]; - r = _tuple[1]; - p = natOne; - /* */ if (prec > 0) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (prec > 0) { */ case 5: - _r$2 = (nat.nil).expNN(natTen, (nat.nil).setUint64((new $Uint64(0, prec))), nat.nil, false); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - p = _r$2; - /* } */ case 6: - _r$3 = r.mul(r, p); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - r = _r$3; - _r$4 = r.div((nat.nil), r, x.b.abs); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _tuple$1 = _r$4; - r = _tuple$1[0]; - r2 = _tuple$1[1]; - _r$5 = r2.add(r2, r2); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - r2 = _r$5; - /* */ if (x.b.abs.cmp(r2) <= 0) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (x.b.abs.cmp(r2) <= 0) { */ case 11: - _r$6 = r.add(r, natOne); /* */ $s = 13; case 13: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - r = _r$6; - /* */ if (r.cmp(p) >= 0) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (r.cmp(p) >= 0) { */ case 14: - _r$7 = (nat.nil).add(q, natOne); /* */ $s = 16; case 16: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - q = _r$7; - _r$8 = (nat.nil).sub(r, p); /* */ $s = 17; case 17: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - r = _r$8; - /* } */ case 15: - /* } */ case 12: - if (x.a.neg) { - buf = $append(buf, 45); - } - _arg = buf; - _r$9 = q.utoa(10); /* */ $s = 18; case 18: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _arg$1 = _r$9; - buf = $appendSlice(_arg, _arg$1); - /* */ if (prec > 0) { $s = 19; continue; } - /* */ $s = 20; continue; - /* if (prec > 0) { */ case 19: - buf = $append(buf, 46); - _r$10 = r.utoa(10); /* */ $s = 21; case 21: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - rs = _r$10; - i$1 = prec - rs.$length >> 0; - while (true) { - if (!(i$1 > 0)) { break; } - buf = $append(buf, 48); - i$1 = i$1 - (1) >> 0; - } - buf = $appendSlice(buf, rs); - /* } */ case 20: - $s = -1; return ($bytesToString(buf)); - /* */ } return; } var $f = {$blk: FloatString, $c: true, $r, _arg, _arg$1, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, buf, i, i$1, p, prec, q, r, r2, rs, x, $s};return $f; - }; - NewRat = function NewRat$1(a, b) { - var {$24r, _r, a, b, $s, $r, $c} = $restore(this, {a, b}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = new Rat.ptr(new Int.ptr(false, nat.nil), new Int.ptr(false, nat.nil)).SetFrac64(a, b); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: NewRat$1, $c: true, $r, $24r, _r, a, b, $s};return $f; - }; - $pkg.NewRat = NewRat; - $ptrType(Rat).prototype.SetFloat64 = function SetFloat64(f) { - var {$24r, _1, _r, bits$1, exp, f, mantissa, shift, x, x$1, x$2, z, $s, $r, $c} = $restore(this, {f}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - bits$1 = math.Float64bits(f); - mantissa = new $Uint64(bits$1.$high & 1048575, (bits$1.$low & 4294967295) >>> 0); - exp = (((x = $shiftRightUint64(bits$1, 52), new $Uint64(x.$high & 0, (x.$low & 2047) >>> 0)).$low >> 0)); - _1 = exp; - if (_1 === (2047)) { - $s = -1; return ptrType$1.nil; - } else if (_1 === (0)) { - exp = exp - (1022) >> 0; - } else { - mantissa = (x$1 = new $Uint64(1048576, 0), new $Uint64(mantissa.$high | x$1.$high, (mantissa.$low | x$1.$low) >>> 0)); - exp = exp - (1023) >> 0; - } - shift = 52 - exp >> 0; - while (true) { - if (!((x$2 = new $Uint64(mantissa.$high & 0, (mantissa.$low & 1) >>> 0), (x$2.$high === 0 && x$2.$low === 0)) && shift > 0)) { break; } - mantissa = $shiftRightUint64(mantissa, (1)); - shift = shift - (1) >> 0; - } - z.a.SetUint64(mantissa); - z.a.neg = f < 0; - z.b.Set(intOne); - if (shift > 0) { - z.b.Lsh(z.b, ((shift >>> 0))); - } else { - z.a.Lsh(z.a, ((-shift >>> 0))); - } - _r = z.norm(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: SetFloat64, $c: true, $r, $24r, _1, _r, bits$1, exp, f, mantissa, shift, x, x$1, x$2, z, $s};return $f; - }; - quotToFloat32 = function quotToFloat32$1(a, b) { - var {_r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, a, a2, alen, b, b2, blen, exact, exp, f, haveRem, lostbits, mantissa, q, r, shift, shift$1, y, y$1, y$2, y$3, y$4, $s, $r, $c} = $restore(this, {a, b}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - f = 0; - exact = false; - alen = a.bitLen(); - if (alen === 0) { - _tmp = 0; - _tmp$1 = true; - f = _tmp; - exact = _tmp$1; - $s = -1; return [f, exact]; - } - blen = b.bitLen(); - if (blen === 0) { - $panic(new $String("division by zero")); - } - exp = alen - blen >> 0; - _tmp$2 = nat.nil; - _tmp$3 = nat.nil; - a2 = _tmp$2; - b2 = _tmp$3; - a2 = a2.set(a); - b2 = b2.set(b); - shift = 25 - exp >> 0; - if (shift > 0) { - a2 = a2.shl(a2, ((shift >>> 0))); - } else if (shift < 0) { - b2 = b2.shl(b2, ((-shift >>> 0))); - } - q = nat.nil; - _r = q.div(a2, a2, b2); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - q = _tuple[0]; - r = _tuple[1]; - mantissa = low32(q); - haveRem = r.$length > 0; - if ((mantissa >>> 25 >>> 0) === 1) { - if (((mantissa & 1) >>> 0) === 1) { - haveRem = true; - } - mantissa = (y = (1), y < 32 ? (mantissa >>> y) : 0) >>> 0; - exp = exp + (1) >> 0; - } - /* */ if (!(((mantissa >>> 24 >>> 0) === 1))) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!(((mantissa >>> 24 >>> 0) === 1))) { */ case 2: - _r$1 = fmt.Sprintf("expected exactly %d bits of result", new sliceType([new $Int(25)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $panic(new $String(_r$1)); - /* } */ case 3: - if (-149 <= exp && exp <= -126) { - shift$1 = (((-126 - ((exp - 1 >> 0)) >> 0) >>> 0)); - lostbits = (mantissa & ((((y$1 = shift$1, y$1 < 32 ? (1 << y$1) : 0) >>> 0) - 1 >>> 0))) >>> 0; - haveRem = haveRem || !((lostbits === 0)); - mantissa = (y$2 = (shift$1), y$2 < 32 ? (mantissa >>> y$2) : 0) >>> 0; - exp = -125; - } - exact = !haveRem; - if (!((((mantissa & 1) >>> 0) === 0))) { - exact = false; - if (haveRem || !((((mantissa & 2) >>> 0) === 0))) { - mantissa = mantissa + (1) >>> 0; - if (mantissa >= 33554432) { - mantissa = (y$3 = (1), y$3 < 32 ? (mantissa >>> y$3) : 0) >>> 0; - exp = exp + (1) >> 0; - } - } - } - mantissa = (y$4 = (1), y$4 < 32 ? (mantissa >>> y$4) : 0) >>> 0; - f = ($fround(math.Ldexp((mantissa), exp - 24 >> 0))); - if (math.IsInf((f), 0)) { - exact = false; - } - $s = -1; return [f, exact]; - /* */ } return; } var $f = {$blk: quotToFloat32$1, $c: true, $r, _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, a, a2, alen, b, b2, blen, exact, exp, f, haveRem, lostbits, mantissa, q, r, shift, shift$1, y, y$1, y$2, y$3, y$4, $s};return $f; - }; - quotToFloat64 = function quotToFloat64$1(a, b) { - var {_r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, a, a2, alen, b, b2, blen, exact, exp, f, haveRem, lostbits, mantissa, q, r, shift, shift$1, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r, $c} = $restore(this, {a, b}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - f = 0; - exact = false; - alen = a.bitLen(); - if (alen === 0) { - _tmp = 0; - _tmp$1 = true; - f = _tmp; - exact = _tmp$1; - $s = -1; return [f, exact]; - } - blen = b.bitLen(); - if (blen === 0) { - $panic(new $String("division by zero")); - } - exp = alen - blen >> 0; - _tmp$2 = nat.nil; - _tmp$3 = nat.nil; - a2 = _tmp$2; - b2 = _tmp$3; - a2 = a2.set(a); - b2 = b2.set(b); - shift = 54 - exp >> 0; - if (shift > 0) { - a2 = a2.shl(a2, ((shift >>> 0))); - } else if (shift < 0) { - b2 = b2.shl(b2, ((-shift >>> 0))); - } - q = nat.nil; - _r = q.div(a2, a2, b2); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - q = _tuple[0]; - r = _tuple[1]; - mantissa = low64(q); - haveRem = r.$length > 0; - if ((x = $shiftRightUint64(mantissa, 54), (x.$high === 0 && x.$low === 1))) { - if ((x$1 = new $Uint64(mantissa.$high & 0, (mantissa.$low & 1) >>> 0), (x$1.$high === 0 && x$1.$low === 1))) { - haveRem = true; - } - mantissa = $shiftRightUint64(mantissa, (1)); - exp = exp + (1) >> 0; - } - /* */ if (!((x$2 = $shiftRightUint64(mantissa, 53), (x$2.$high === 0 && x$2.$low === 1)))) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!((x$2 = $shiftRightUint64(mantissa, 53), (x$2.$high === 0 && x$2.$low === 1)))) { */ case 2: - _r$1 = fmt.Sprintf("expected exactly %d bits of result", new sliceType([new $Int(54)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $panic(new $String(_r$1)); - /* } */ case 3: - if (-1074 <= exp && exp <= -1022) { - shift$1 = (((-1022 - ((exp - 1 >> 0)) >> 0) >>> 0)); - lostbits = (x$3 = (x$4 = $shiftLeft64(new $Uint64(0, 1), shift$1), new $Uint64(x$4.$high - 0, x$4.$low - 1)), new $Uint64(mantissa.$high & x$3.$high, (mantissa.$low & x$3.$low) >>> 0)); - haveRem = haveRem || !((lostbits.$high === 0 && lostbits.$low === 0)); - mantissa = $shiftRightUint64(mantissa, (shift$1)); - exp = -1021; - } - exact = !haveRem; - if (!((x$5 = new $Uint64(mantissa.$high & 0, (mantissa.$low & 1) >>> 0), (x$5.$high === 0 && x$5.$low === 0)))) { - exact = false; - if (haveRem || !((x$6 = new $Uint64(mantissa.$high & 0, (mantissa.$low & 2) >>> 0), (x$6.$high === 0 && x$6.$low === 0)))) { - mantissa = (x$7 = new $Uint64(0, 1), new $Uint64(mantissa.$high + x$7.$high, mantissa.$low + x$7.$low)); - if ((mantissa.$high > 4194304 || (mantissa.$high === 4194304 && mantissa.$low >= 0))) { - mantissa = $shiftRightUint64(mantissa, (1)); - exp = exp + (1) >> 0; - } - } - } - mantissa = $shiftRightUint64(mantissa, (1)); - f = math.Ldexp(($flatten64(mantissa)), exp - 53 >> 0); - if (math.IsInf(f, 0)) { - exact = false; - } - $s = -1; return [f, exact]; - /* */ } return; } var $f = {$blk: quotToFloat64$1, $c: true, $r, _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, a, a2, alen, b, b2, blen, exact, exp, f, haveRem, lostbits, mantissa, q, r, shift, shift$1, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s};return $f; - }; - $ptrType(Rat).prototype.Float32 = function Float32() { - var {_r, _tuple, b, exact, f, x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - f = 0; - exact = false; - x = this; - b = x.b.abs; - if (b.$length === 0) { - b = natOne; - } - _r = quotToFloat32(x.a.abs, b); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - f = _tuple[0]; - exact = _tuple[1]; - if (x.a.neg) { - f = -f; - } - $s = -1; return [f, exact]; - /* */ } return; } var $f = {$blk: Float32, $c: true, $r, _r, _tuple, b, exact, f, x, $s};return $f; - }; - $ptrType(Rat).prototype.Float64 = function Float64() { - var {_r, _tuple, b, exact, f, x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - f = 0; - exact = false; - x = this; - b = x.b.abs; - if (b.$length === 0) { - b = natOne; - } - _r = quotToFloat64(x.a.abs, b); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - f = _tuple[0]; - exact = _tuple[1]; - if (x.a.neg) { - f = -f; - } - $s = -1; return [f, exact]; - /* */ } return; } var $f = {$blk: Float64, $c: true, $r, _r, _tuple, b, exact, f, x, $s};return $f; - }; - $ptrType(Rat).prototype.SetFrac = function SetFrac(a, b) { - var {$24r, _r, a, b, babs, z, $s, $r, $c} = $restore(this, {a, b}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - z.a.neg = !(a.neg === b.neg); - babs = b.abs; - if (babs.$length === 0) { - $panic(new $String("division by zero")); - } - if (z.a === b || alias(z.a.abs, babs)) { - babs = (nat.nil).set(babs); - } - z.a.abs = z.a.abs.set(a.abs); - z.b.abs = z.b.abs.set(babs); - _r = z.norm(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: SetFrac, $c: true, $r, $24r, _r, a, b, babs, z, $s};return $f; - }; - $ptrType(Rat).prototype.SetFrac64 = function SetFrac64(a, b) { - var {$24r, _r, a, b, z, $s, $r, $c} = $restore(this, {a, b}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - if ((b.$high === 0 && b.$low === 0)) { - $panic(new $String("division by zero")); - } - z.a.SetInt64(a); - if ((b.$high < 0 || (b.$high === 0 && b.$low < 0))) { - b = new $Int64(-b.$high, -b.$low); - z.a.neg = !z.a.neg; - } - z.b.abs = z.b.abs.setUint64((new $Uint64(b.$high, b.$low))); - _r = z.norm(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: SetFrac64, $c: true, $r, $24r, _r, a, b, z, $s};return $f; - }; - $ptrType(Rat).prototype.SetInt = function SetInt(x) { - var x, z; - z = this; - z.a.Set(x); - z.b.abs = z.b.abs.setWord(1); - return z; - }; - $ptrType(Rat).prototype.SetInt64 = function SetInt64(x) { - var x, z; - z = this; - z.a.SetInt64(x); - z.b.abs = z.b.abs.setWord(1); - return z; - }; - $ptrType(Rat).prototype.SetUint64 = function SetUint64(x) { - var x, z; - z = this; - z.a.SetUint64(x); - z.b.abs = z.b.abs.setWord(1); - return z; - }; - $ptrType(Rat).prototype.Set = function Set(x) { - var x, z; - z = this; - if (!(z === x)) { - z.a.Set(x.a); - z.b.Set(x.b); - } - if (z.b.abs.$length === 0) { - z.b.abs = z.b.abs.setWord(1); - } - return z; - }; - $ptrType(Rat).prototype.Abs = function Abs(x) { - var x, z; - z = this; - z.Set(x); - z.a.neg = false; - return z; - }; - $ptrType(Rat).prototype.Neg = function Neg(x) { - var x, z; - z = this; - z.Set(x); - z.a.neg = z.a.abs.$length > 0 && !z.a.neg; - return z; - }; - $ptrType(Rat).prototype.Inv = function Inv(x) { - var _tmp, _tmp$1, x, z; - z = this; - if (x.a.abs.$length === 0) { - $panic(new $String("division by zero")); - } - z.Set(x); - _tmp = z.b.abs; - _tmp$1 = z.a.abs; - z.a.abs = _tmp; - z.b.abs = _tmp$1; - return z; - }; - $ptrType(Rat).prototype.Sign = function Sign() { - var x; - x = this; - return x.a.Sign(); - }; - $ptrType(Rat).prototype.IsInt = function IsInt() { - var x; - x = this; - return (x.b.abs.$length === 0) || (x.b.abs.cmp(natOne) === 0); - }; - $ptrType(Rat).prototype.Num = function Num() { - var x; - x = this; - return x.a; - }; - $ptrType(Rat).prototype.Denom = function Denom() { - var x; - x = this; - if (x.b.abs.$length === 0) { - return new Int.ptr(false, new nat([1])); - } - return x.b; - }; - $ptrType(Rat).prototype.norm = function norm() { - var {_r, _r$1, _r$2, _tuple, _tuple$1, f, neg, z, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - /* */ if ((z.a.abs.$length === 0)) { $s = 2; continue; } - /* */ if ((z.b.abs.$length === 0)) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if ((z.a.abs.$length === 0)) { */ case 2: - z.a.neg = false; - z.b.abs = z.b.abs.setWord(1); - $s = 5; continue; - /* } else if ((z.b.abs.$length === 0)) { */ case 3: - z.b.abs = z.b.abs.setWord(1); - $s = 5; continue; - /* } else { */ case 4: - neg = z.a.neg; - z.a.neg = false; - z.b.neg = false; - _r = NewInt(new $Int64(0, 0)).lehmerGCD(ptrType$2.nil, ptrType$2.nil, z.a, z.b); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - f = _r; - /* */ if (!((f.Cmp(intOne) === 0))) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (!((f.Cmp(intOne) === 0))) { */ case 7: - _r$1 = z.a.abs.div(nat.nil, z.a.abs, f.abs); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - z.a.abs = _tuple[0]; - _r$2 = z.b.abs.div(nat.nil, z.b.abs, f.abs); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple$1 = _r$2; - z.b.abs = _tuple$1[0]; - /* } */ case 8: - z.a.neg = neg; - /* } */ case 5: - case 1: - $s = -1; return z; - /* */ } return; } var $f = {$blk: norm, $c: true, $r, _r, _r$1, _r$2, _tuple, _tuple$1, f, neg, z, $s};return $f; - }; - mulDenom = function mulDenom$1(z, x, y) { - var {$24r, _r, x, y, z, $s, $r, $c} = $restore(this, {z, x, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if ((x.$length === 0) && (y.$length === 0)) { - $s = -1; return z.setWord(1); - } else if ((x.$length === 0)) { - $s = -1; return z.set(y); - } else if ((y.$length === 0)) { - $s = -1; return z.set(x); - } - _r = z.mul(x, y); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: mulDenom$1, $c: true, $r, $24r, _r, x, y, z, $s};return $f; - }; - $ptrType(Int).prototype.scaleDenom = function scaleDenom(x, f) { - var {_r, f, x, z, $s, $r, $c} = $restore(this, {x, f}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - if (f.$length === 0) { - z.Set(x); - $s = -1; return; - } - _r = z.abs.mul(x.abs, f); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - z.abs = _r; - z.neg = x.neg; - $s = -1; return; - /* */ } return; } var $f = {$blk: scaleDenom, $c: true, $r, _r, f, x, z, $s};return $f; - }; - $ptrType(Rat).prototype.Cmp = function Cmp(y) { - var {_tmp, _tmp$1, a, b, x, y, $s, $r, $c} = $restore(this, {y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - b = [b]; - x = this; - _tmp = new Int.ptr(false, nat.nil); - _tmp$1 = new Int.ptr(false, nat.nil); - a = $clone(_tmp, Int); - b[0] = $clone(_tmp$1, Int); - $r = a.scaleDenom(x.a, y.b.abs); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = b[0].scaleDenom(y.a, x.b.abs); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return a.Cmp(b[0]); - /* */ } return; } var $f = {$blk: Cmp, $c: true, $r, _tmp, _tmp$1, a, b, x, y, $s};return $f; - }; - $ptrType(Rat).prototype.Add = function Add(x, y) { - var {$24r, _r, _r$1, _r$2, _tmp, _tmp$1, a1, a2, x, y, z, $s, $r, $c} = $restore(this, {x, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - a1 = [a1]; - a2 = [a2]; - z = this; - _tmp = new Int.ptr(false, nat.nil); - _tmp$1 = new Int.ptr(false, nat.nil); - a1[0] = $clone(_tmp, Int); - a2[0] = $clone(_tmp$1, Int); - $r = a1[0].scaleDenom(x.a, y.b.abs); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = a2[0].scaleDenom(y.a, x.b.abs); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r = z.a.Add(a1[0], a2[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r; - _r$1 = mulDenom(z.b.abs, x.b.abs, y.b.abs); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - z.b.abs = _r$1; - _r$2 = z.norm(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 6; case 6: return $24r; - /* */ } return; } var $f = {$blk: Add, $c: true, $r, $24r, _r, _r$1, _r$2, _tmp, _tmp$1, a1, a2, x, y, z, $s};return $f; - }; - $ptrType(Rat).prototype.Sub = function Sub(x, y) { - var {$24r, _r, _r$1, _r$2, _tmp, _tmp$1, a1, a2, x, y, z, $s, $r, $c} = $restore(this, {x, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - a1 = [a1]; - a2 = [a2]; - z = this; - _tmp = new Int.ptr(false, nat.nil); - _tmp$1 = new Int.ptr(false, nat.nil); - a1[0] = $clone(_tmp, Int); - a2[0] = $clone(_tmp$1, Int); - $r = a1[0].scaleDenom(x.a, y.b.abs); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = a2[0].scaleDenom(y.a, x.b.abs); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r = z.a.Sub(a1[0], a2[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r; - _r$1 = mulDenom(z.b.abs, x.b.abs, y.b.abs); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - z.b.abs = _r$1; - _r$2 = z.norm(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 6; case 6: return $24r; - /* */ } return; } var $f = {$blk: Sub, $c: true, $r, $24r, _r, _r$1, _r$2, _tmp, _tmp$1, a1, a2, x, y, z, $s};return $f; - }; - $ptrType(Rat).prototype.Mul = function Mul(x, y) { - var {$24r, _r, _r$1, _r$2, _r$3, _r$4, x, y, z, $s, $r, $c} = $restore(this, {x, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - /* */ if (x === y) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (x === y) { */ case 1: - z.a.neg = false; - _r = z.a.abs.sqr(x.a.abs); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - z.a.abs = _r; - /* */ if (x.b.abs.$length === 0) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (x.b.abs.$length === 0) { */ case 4: - z.b.abs = z.b.abs.setWord(1); - $s = 6; continue; - /* } else { */ case 5: - _r$1 = z.b.abs.sqr(x.b.abs); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - z.b.abs = _r$1; - /* } */ case 6: - $s = -1; return z; - /* } */ case 2: - _r$2 = z.a.Mul(x.a, y.a); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - _r$3 = mulDenom(z.b.abs, x.b.abs, y.b.abs); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - z.b.abs = _r$3; - _r$4 = z.norm(); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $24r = _r$4; - $s = 11; case 11: return $24r; - /* */ } return; } var $f = {$blk: Mul, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, x, y, z, $s};return $f; - }; - $ptrType(Rat).prototype.Quo = function Quo(x, y) { - var {$24r, _r, _tmp, _tmp$1, a, b, x, y, z, $s, $r, $c} = $restore(this, {x, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - if (y.a.abs.$length === 0) { - $panic(new $String("division by zero")); - } - _tmp = new Int.ptr(false, nat.nil); - _tmp$1 = new Int.ptr(false, nat.nil); - a = $clone(_tmp, Int); - b = $clone(_tmp$1, Int); - $r = a.scaleDenom(x.a, y.b.abs); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = b.scaleDenom(y.a, x.b.abs); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - z.a.abs = a.abs; - z.b.abs = b.abs; - z.a.neg = !(a.neg === b.neg); - _r = z.norm(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: Quo, $c: true, $r, $24r, _r, _tmp, _tmp$1, a, b, x, y, z, $s};return $f; - }; - $ptrType(Int).prototype.ProbablyPrime = function ProbablyPrime(n) { - var {$24r, _1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _v, n, r, rA, rB, w, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {n}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - if (n < 0) { - $panic(new $String("negative n for ProbablyPrime")); - } - if (x.neg || (x.abs.$length === 0)) { - $s = -1; return false; - } - w = (x$1 = x.abs, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])); - if ((x.abs.$length === 1) && w < 64) { - $s = -1; return !((x$2 = (x$3 = $shiftLeft64(new $Uint64(0, 1), w), new $Uint64(673221152 & x$3.$high, (2693408940 & x$3.$low) >>> 0)), (x$2.$high === 0 && x$2.$low === 0))); - } - if (((w & 1) >>> 0) === 0) { - $s = -1; return false; - } - _tmp = 0; - _tmp$1 = 0; - rA = _tmp; - rB = _tmp$1; - _1 = 32; - if (_1 === (32)) { - rA = ((x.abs.modW(4127218095) >>> 0)); - rB = ((x.abs.modW(3948078067) >>> 0)); - } else if (_1 === (64)) { - r = x.abs.modW(820596253); - rA = (((_r = r % 4127218095, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) >>> 0)); - rB = (((_r$1 = r % 3948078067, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) >>> 0)); - } else { - $panic(new $String("math/big: invalid word size")); - } - if (((_r$2 = rA % 3, _r$2 === _r$2 ? _r$2 : $throwRuntimeError("integer divide by zero")) === 0) || ((_r$3 = rA % 5, _r$3 === _r$3 ? _r$3 : $throwRuntimeError("integer divide by zero")) === 0) || ((_r$4 = rA % 7, _r$4 === _r$4 ? _r$4 : $throwRuntimeError("integer divide by zero")) === 0) || ((_r$5 = rA % 11, _r$5 === _r$5 ? _r$5 : $throwRuntimeError("integer divide by zero")) === 0) || ((_r$6 = rA % 13, _r$6 === _r$6 ? _r$6 : $throwRuntimeError("integer divide by zero")) === 0) || ((_r$7 = rA % 17, _r$7 === _r$7 ? _r$7 : $throwRuntimeError("integer divide by zero")) === 0) || ((_r$8 = rA % 19, _r$8 === _r$8 ? _r$8 : $throwRuntimeError("integer divide by zero")) === 0) || ((_r$9 = rA % 23, _r$9 === _r$9 ? _r$9 : $throwRuntimeError("integer divide by zero")) === 0) || ((_r$10 = rA % 37, _r$10 === _r$10 ? _r$10 : $throwRuntimeError("integer divide by zero")) === 0) || ((_r$11 = rB % 29, _r$11 === _r$11 ? _r$11 : $throwRuntimeError("integer divide by zero")) === 0) || ((_r$12 = rB % 31, _r$12 === _r$12 ? _r$12 : $throwRuntimeError("integer divide by zero")) === 0) || ((_r$13 = rB % 41, _r$13 === _r$13 ? _r$13 : $throwRuntimeError("integer divide by zero")) === 0) || ((_r$14 = rB % 43, _r$14 === _r$14 ? _r$14 : $throwRuntimeError("integer divide by zero")) === 0) || ((_r$15 = rB % 47, _r$15 === _r$15 ? _r$15 : $throwRuntimeError("integer divide by zero")) === 0) || ((_r$16 = rB % 53, _r$16 === _r$16 ? _r$16 : $throwRuntimeError("integer divide by zero")) === 0)) { - $s = -1; return false; - } - _r$17 = x.abs.probablyPrimeMillerRabin(n + 1 >> 0, true); /* */ $s = 2; case 2: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - if (!(_r$17)) { _v = false; $s = 1; continue s; } - _r$18 = x.abs.probablyPrimeLucas(); /* */ $s = 3; case 3: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - _v = _r$18; case 1: - $24r = _v; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: ProbablyPrime, $c: true, $r, $24r, _1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _v, n, r, rA, rB, w, x, x$1, x$2, x$3, $s};return $f; - }; - nat.prototype.probablyPrimeMillerRabin = function probablyPrimeMillerRabin(reps, force2) { - var {_r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tmp, _tmp$1, _tmp$2, _tuple, force2, i, j, k, n, nm1, nm3, nm3Len, q, quotient, rand$1, reps, x, y, $s, $r, $c} = $restore(this, {reps, force2}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - n = this; - _r = (nat.nil).sub(n, natOne); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - nm1 = _r; - k = nm1.trailingZeroBits(); - q = (nat.nil).shr(nm1, k); - _r$1 = (nat.nil).sub(nm1, natTwo); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - nm3 = _r$1; - rand$1 = rand.New(rand.NewSource((new $Int64(0, (0 >= n.$length ? ($throwRuntimeError("index out of range"), undefined) : n.$array[n.$offset + 0]))))); - _tmp = nat.nil; - _tmp$1 = nat.nil; - _tmp$2 = nat.nil; - x = _tmp; - y = _tmp$1; - quotient = _tmp$2; - nm3Len = nm3.bitLen(); - i = 0; - /* while (true) { */ case 3: - /* if (!(i < reps)) { break; } */ if(!(i < reps)) { $s = 4; continue; } - /* */ if ((i === (reps - 1 >> 0)) && force2) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if ((i === (reps - 1 >> 0)) && force2) { */ case 5: - x = x.set(natTwo); - $s = 7; continue; - /* } else { */ case 6: - _r$2 = x.random(rand$1, nm3, nm3Len); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - x = _r$2; - _r$3 = x.add(x, natTwo); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - x = _r$3; - /* } */ case 7: - _r$4 = y.expNN(x, q, n, false); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - y = _r$4; - if ((y.cmp(natOne) === 0) || (y.cmp(nm1) === 0)) { - i = i + (1) >> 0; - /* continue; */ $s = 3; continue; - } - j = 1; - /* while (true) { */ case 11: - /* if (!(j < k)) { break; } */ if(!(j < k)) { $s = 12; continue; } - _r$5 = y.sqr(y); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - y = _r$5; - _r$6 = quotient.div(y, y, n); /* */ $s = 14; case 14: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _tuple = _r$6; - quotient = _tuple[0]; - y = _tuple[1]; - if (y.cmp(nm1) === 0) { - i = i + (1) >> 0; - /* continue NextRandom; */ $s = 3; continue s; - } - if (y.cmp(natOne) === 0) { - $s = -1; return false; - } - j = j + (1) >>> 0; - $s = 11; continue; - case 12: - $s = -1; return false; - case 4: - $s = -1; return true; - /* */ } return; } var $f = {$blk: probablyPrimeMillerRabin, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tmp, _tmp$1, _tmp$2, _tuple, force2, i, j, k, n, nm1, nm3, nm3Len, q, quotient, rand$1, reps, x, y, $s};return $f; - }; - $ptrType(nat).prototype.probablyPrimeMillerRabin = function(...$args) { return this.$get().probablyPrimeMillerRabin(...$args); }; - nat.prototype.probablyPrimeLucas = function probablyPrimeLucas() { - var {_r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, d, i, intD, intN, j, n, natP, nm2, p, r, s, t, t1, t1$1, t2, t2$1, t3, vk, vk1, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - n = this; - if ((n.$length === 0) || (n.cmp(natOne) === 0)) { - $s = -1; return false; - } - if ((((0 >= n.$length ? ($throwRuntimeError("index out of range"), undefined) : n.$array[n.$offset + 0]) & 1) >>> 0) === 0) { - $s = -1; return n.cmp(natTwo) === 0; - } - p = 3; - d = new nat([1]); - t1 = (nat.nil); - intD = new Int.ptr(false, d); - intN = new Int.ptr(false, n); - /* while (true) { */ case 1: - /* */ if (p > 10000) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (p > 10000) { */ case 3: - _r = intN.String(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $panic(new $String("math/big: internal error: cannot find (D/n) = -1 for " + _r)); - /* } */ case 4: - (0 >= d.$length ? ($throwRuntimeError("index out of range"), undefined) : d.$array[d.$offset + 0] = (($imul(p, p) >>> 0) - 4 >>> 0)); - _r$1 = Jacobi(intD, intN); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - j = _r$1; - if (j === -1) { - /* break; */ $s = 2; continue; - } - if (j === 0) { - $s = -1; return (n.$length === 1) && ((0 >= n.$length ? ($throwRuntimeError("index out of range"), undefined) : n.$array[n.$offset + 0]) === (p + 2 >>> 0)); - } - /* */ if (p === 40) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (p === 40) { */ case 7: - _r$2 = t1.sqrt(n); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - t1 = _r$2; - _r$3 = t1.sqr(t1); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - t1 = _r$3; - if (t1.cmp(n) === 0) { - $s = -1; return false; - } - /* } */ case 8: - p = p + (1) >>> 0; - $s = 1; continue; - case 2: - _r$4 = (nat.nil).add(n, natOne); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - s = _r$4; - r = ((s.trailingZeroBits() >> 0)); - s = s.shr(s, ((r >>> 0))); - _r$5 = (nat.nil).sub(n, natTwo); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - nm2 = _r$5; - natP = (nat.nil).setWord(p); - vk = (nat.nil).setWord(2); - vk1 = (nat.nil).setWord(p); - t2 = (nat.nil); - i = (s.bitLen()); - /* while (true) { */ case 13: - /* if (!(i >= 0)) { break; } */ if(!(i >= 0)) { $s = 14; continue; } - /* */ if (!((s.bit(((i >>> 0))) === 0))) { $s = 15; continue; } - /* */ $s = 16; continue; - /* if (!((s.bit(((i >>> 0))) === 0))) { */ case 15: - _r$6 = t1.mul(vk, vk1); /* */ $s = 18; case 18: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - t1 = _r$6; - _r$7 = t1.add(t1, n); /* */ $s = 19; case 19: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - t1 = _r$7; - _r$8 = t1.sub(t1, natP); /* */ $s = 20; case 20: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - t1 = _r$8; - _r$9 = t2.div(vk, t1, n); /* */ $s = 21; case 21: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _tuple = _r$9; - t2 = _tuple[0]; - vk = _tuple[1]; - _r$10 = t1.sqr(vk1); /* */ $s = 22; case 22: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - t1 = _r$10; - _r$11 = t1.add(t1, nm2); /* */ $s = 23; case 23: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - t1 = _r$11; - _r$12 = t2.div(vk1, t1, n); /* */ $s = 24; case 24: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _tuple$1 = _r$12; - t2 = _tuple$1[0]; - vk1 = _tuple$1[1]; - $s = 17; continue; - /* } else { */ case 16: - _r$13 = t1.mul(vk, vk1); /* */ $s = 25; case 25: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - t1 = _r$13; - _r$14 = t1.add(t1, n); /* */ $s = 26; case 26: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - t1 = _r$14; - _r$15 = t1.sub(t1, natP); /* */ $s = 27; case 27: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - t1 = _r$15; - _r$16 = t2.div(vk1, t1, n); /* */ $s = 28; case 28: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - _tuple$2 = _r$16; - t2 = _tuple$2[0]; - vk1 = _tuple$2[1]; - _r$17 = t1.sqr(vk); /* */ $s = 29; case 29: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - t1 = _r$17; - _r$18 = t1.add(t1, nm2); /* */ $s = 30; case 30: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - t1 = _r$18; - _r$19 = t2.div(vk, t1, n); /* */ $s = 31; case 31: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - _tuple$3 = _r$19; - t2 = _tuple$3[0]; - vk = _tuple$3[1]; - /* } */ case 17: - i = i - (1) >> 0; - $s = 13; continue; - case 14: - /* */ if ((vk.cmp(natTwo) === 0) || (vk.cmp(nm2) === 0)) { $s = 32; continue; } - /* */ $s = 33; continue; - /* if ((vk.cmp(natTwo) === 0) || (vk.cmp(nm2) === 0)) { */ case 32: - _r$20 = t1.mul(vk, natP); /* */ $s = 34; case 34: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - t1$1 = _r$20; - t2$1 = t2.shl(vk1, 1); - if (t1$1.cmp(t2$1) < 0) { - _tmp = t2$1; - _tmp$1 = t1$1; - t1$1 = _tmp; - t2$1 = _tmp$1; - } - _r$21 = t1$1.sub(t1$1, t2$1); /* */ $s = 35; case 35: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } - t1$1 = _r$21; - t3 = vk1; - vk1 = nat.nil; - $unused(vk1); - _r$22 = t2$1.div(t3, t1$1, n); /* */ $s = 36; case 36: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _tuple$4 = _r$22; - t2$1 = _tuple$4[0]; - t3 = _tuple$4[1]; - if (t3.$length === 0) { - $s = -1; return true; - } - /* } */ case 33: - t = 0; - /* while (true) { */ case 37: - /* if (!(t < (r - 1 >> 0))) { break; } */ if(!(t < (r - 1 >> 0))) { $s = 38; continue; } - if (vk.$length === 0) { - $s = -1; return true; - } - if ((vk.$length === 1) && ((0 >= vk.$length ? ($throwRuntimeError("index out of range"), undefined) : vk.$array[vk.$offset + 0]) === 2)) { - $s = -1; return false; - } - _r$23 = t1.sqr(vk); /* */ $s = 39; case 39: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - t1 = _r$23; - _r$24 = t1.sub(t1, natTwo); /* */ $s = 40; case 40: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - t1 = _r$24; - _r$25 = t2.div(vk, t1, n); /* */ $s = 41; case 41: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - _tuple$5 = _r$25; - t2 = _tuple$5[0]; - vk = _tuple$5[1]; - t = t + (1) >> 0; - $s = 37; continue; - case 38: - $s = -1; return false; - /* */ } return; } var $f = {$blk: probablyPrimeLucas, $c: true, $r, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, d, i, intD, intN, j, n, natP, nm2, p, r, s, t, t1, t1$1, t2, t2$1, t3, vk, vk1, $s};return $f; - }; - $ptrType(nat).prototype.probablyPrimeLucas = function(...$args) { return this.$get().probablyPrimeLucas(...$args); }; - nat.prototype.rem = function rem(u, v) { - var {_r, _r$1, _tuple, q, qp, r, u, v, z, $s, $r, $c} = $restore(this, {u, v}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - r = nat.nil; - z = this; - if (alias(z, u)) { - z = nat.nil; - } - _r = getNat(0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - qp = _r; - _r$1 = qp.div(z, u, v); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - q = _tuple[0]; - r = _tuple[1]; - qp.$set(q); - putNat(qp); - r = r; - $s = -1; return r; - /* */ } return; } var $f = {$blk: rem, $c: true, $r, _r, _r$1, _tuple, q, qp, r, u, v, z, $s};return $f; - }; - $ptrType(nat).prototype.rem = function(...$args) { return this.$get().rem(...$args); }; - nat.prototype.div = function div(z2, u, v) { - var {_r, _tuple, _tuple$1, q, r, r2, u, v, z, z2, $s, $r, $c} = $restore(this, {z2, u, v}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - q = nat.nil; - r = nat.nil; - z = this; - if (v.$length === 0) { - $panic(new $String("division by zero")); - } - if (u.cmp(v) < 0) { - q = $subslice(z, 0, 0); - r = z2.set(u); - $s = -1; return [q, r]; - } - if (v.$length === 1) { - r2 = 0; - _tuple = z.divW(u, (0 >= v.$length ? ($throwRuntimeError("index out of range"), undefined) : v.$array[v.$offset + 0])); - q = _tuple[0]; - r2 = _tuple[1]; - r = z2.setWord(r2); - $s = -1; return [q, r]; - } - _r = z.divLarge(z2, u, v); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple$1 = _r; - q = _tuple$1[0]; - r = _tuple$1[1]; - $s = -1; return [q, r]; - /* */ } return; } var $f = {$blk: div, $c: true, $r, _r, _tuple, _tuple$1, q, r, r2, u, v, z, z2, $s};return $f; - }; - $ptrType(nat).prototype.div = function(...$args) { return this.$get().div(...$args); }; - nat.prototype.divW = function divW(x, y) { - var m, q, r, x, y, z; - q = nat.nil; - r = 0; - z = this; - m = x.$length; - if ((y === 0)) { - $panic(new $String("division by zero")); - } else if ((y === 1)) { - q = z.set(x); - return [q, r]; - } else if ((m === 0)) { - q = $subslice(z, 0, 0); - return [q, r]; - } - z = z.make(m); - r = divWVW($convertSliceType(z, sliceType$2), 0, $convertSliceType(x, sliceType$2), y); - q = z.norm(); - return [q, r]; - }; - $ptrType(nat).prototype.divW = function(...$args) { return this.$get().divW(...$args); }; - nat.prototype.modW = function modW(d) { - var d, q, r, x; - r = 0; - x = this; - q = nat.nil; - q = q.make(x.$length); - r = divWVW($convertSliceType(q, sliceType$2), 0, $convertSliceType(x, sliceType$2), d); - return r; - }; - $ptrType(nat).prototype.modW = function(...$args) { return this.$get().modW(...$args); }; - divWVW = function divWVW$1(z, xn, x, y) { - var _tuple, _tuple$1, i, qq, r, rec, rr, x, xn, y, z; - r = 0; - r = xn; - if (x.$length === 1) { - _tuple = bits.Div(((r >>> 0)), (((0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]) >>> 0)), ((y >>> 0))); - qq = _tuple[0]; - rr = _tuple[1]; - (0 >= z.$length ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + 0] = ((qq >>> 0))); - r = ((rr >>> 0)); - return r; - } - rec = reciprocalWord(y); - i = z.$length - 1 >> 0; - while (true) { - if (!(i >= 0)) { break; } - _tuple$1 = divWW(r, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]), y, rec); - ((i < 0 || i >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + i] = _tuple$1[0]); - r = _tuple$1[1]; - i = i - (1) >> 0; - } - r = r; - return r; - }; - nat.prototype.divLarge = function divLarge(u, uIn, vIn) { - var {_r, _tmp, _tmp$1, m, n, q, r, shift, u, uIn, v, vIn, vp, x, x$1, z, $s, $r, $c} = $restore(this, {u, uIn, vIn}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - q = nat.nil; - r = nat.nil; - z = this; - n = vIn.$length; - m = uIn.$length - n >> 0; - shift = nlz((x = n - 1 >> 0, ((x < 0 || x >= vIn.$length) ? ($throwRuntimeError("index out of range"), undefined) : vIn.$array[vIn.$offset + x]))); - _r = getNat(n); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - vp = _r; - v = vp.$get(); - shlVU($convertSliceType(v, sliceType$2), $convertSliceType(vIn, sliceType$2), shift); - u = u.make(uIn.$length + 1 >> 0); - (x$1 = uIn.$length, ((x$1 < 0 || x$1 >= u.$length) ? ($throwRuntimeError("index out of range"), undefined) : u.$array[u.$offset + x$1] = shlVU($convertSliceType($subslice(u, 0, uIn.$length), sliceType$2), $convertSliceType(uIn, sliceType$2), shift))); - if (alias(z, u)) { - z = nat.nil; - } - q = z.make(m + 1 >> 0); - /* */ if (n < 100) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (n < 100) { */ case 2: - $r = q.divBasic(u, v); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 4; continue; - /* } else { */ case 3: - $r = q.divRecursive(u, v); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 4: - putNat(vp); - q = q.norm(); - shrVU($convertSliceType(u, sliceType$2), $convertSliceType(u, sliceType$2), shift); - r = u.norm(); - _tmp = q; - _tmp$1 = r; - q = _tmp; - r = _tmp$1; - $s = -1; return [q, r]; - /* */ } return; } var $f = {$blk: divLarge, $c: true, $r, _r, _tmp, _tmp$1, m, n, q, r, shift, u, uIn, v, vIn, vp, x, x$1, z, $s};return $f; - }; - $ptrType(nat).prototype.divLarge = function(...$args) { return this.$get().divLarge(...$args); }; - nat.prototype.divBasic = function divBasic(u, v) { - var {_index, _r, _tuple, _tuple$1, _tuple$2, c, c$1, j, m, n, prevRhat, q, qhat, qhatv, qhatvp, qhl, rec, rhat, u, ujn, ujn2, v, vn1, vn2, x, x$1, x$2, x$3, x$4, x1, x2, $s, $r, $c} = $restore(this, {u, v}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - q = this; - n = v.$length; - m = u.$length - n >> 0; - _r = getNat(n + 1 >> 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - qhatvp = _r; - qhatv = qhatvp.$get(); - vn1 = (x = n - 1 >> 0, ((x < 0 || x >= v.$length) ? ($throwRuntimeError("index out of range"), undefined) : v.$array[v.$offset + x])); - rec = reciprocalWord(vn1); - j = m; - while (true) { - if (!(j >= 0)) { break; } - qhat = 4294967295; - ujn = 0; - if ((j + n >> 0) < u.$length) { - ujn = (x$1 = j + n >> 0, ((x$1 < 0 || x$1 >= u.$length) ? ($throwRuntimeError("index out of range"), undefined) : u.$array[u.$offset + x$1])); - } - if (!((ujn === vn1))) { - rhat = 0; - _tuple = divWW(ujn, (x$2 = (j + n >> 0) - 1 >> 0, ((x$2 < 0 || x$2 >= u.$length) ? ($throwRuntimeError("index out of range"), undefined) : u.$array[u.$offset + x$2])), vn1, rec); - qhat = _tuple[0]; - rhat = _tuple[1]; - vn2 = (x$3 = n - 2 >> 0, ((x$3 < 0 || x$3 >= v.$length) ? ($throwRuntimeError("index out of range"), undefined) : v.$array[v.$offset + x$3])); - _tuple$1 = mulWW(qhat, vn2); - x1 = _tuple$1[0]; - x2 = _tuple$1[1]; - ujn2 = (x$4 = (j + n >> 0) - 2 >> 0, ((x$4 < 0 || x$4 >= u.$length) ? ($throwRuntimeError("index out of range"), undefined) : u.$array[u.$offset + x$4])); - while (true) { - if (!(greaterThan(x1, x2, rhat, ujn2))) { break; } - qhat = qhat - (1) >>> 0; - prevRhat = rhat; - rhat = rhat + (vn1) >>> 0; - if (rhat < prevRhat) { - break; - } - _tuple$2 = mulWW(qhat, vn2); - x1 = _tuple$2[0]; - x2 = _tuple$2[1]; - } - } - ((n < 0 || n >= qhatv.$length) ? ($throwRuntimeError("index out of range"), undefined) : qhatv.$array[qhatv.$offset + n] = mulAddVWW($convertSliceType($subslice(qhatv, 0, n), sliceType$2), $convertSliceType(v, sliceType$2), qhat, 0)); - qhl = qhatv.$length; - if ((j + qhl >> 0) > u.$length && (((n < 0 || n >= qhatv.$length) ? ($throwRuntimeError("index out of range"), undefined) : qhatv.$array[qhatv.$offset + n]) === 0)) { - qhl = qhl - (1) >> 0; - } - c = subVV($convertSliceType($subslice(u, j, (j + qhl >> 0)), sliceType$2), $convertSliceType($subslice(u, j), sliceType$2), $convertSliceType(qhatv, sliceType$2)); - if (!((c === 0))) { - c$1 = addVV($convertSliceType($subslice(u, j, (j + n >> 0)), sliceType$2), $convertSliceType($subslice(u, j), sliceType$2), $convertSliceType(v, sliceType$2)); - if (n < qhl) { - _index = j + n >> 0; - ((_index < 0 || _index >= u.$length) ? ($throwRuntimeError("index out of range"), undefined) : u.$array[u.$offset + _index] = (((_index < 0 || _index >= u.$length) ? ($throwRuntimeError("index out of range"), undefined) : u.$array[u.$offset + _index]) + (c$1) >>> 0)); - } - qhat = qhat - (1) >>> 0; - } - if ((j === m) && (m === q.$length) && (qhat === 0)) { - j = j - (1) >> 0; - continue; - } - ((j < 0 || j >= q.$length) ? ($throwRuntimeError("index out of range"), undefined) : q.$array[q.$offset + j] = qhat); - j = j - (1) >> 0; - } - putNat(qhatvp); - $s = -1; return; - /* */ } return; } var $f = {$blk: divBasic, $c: true, $r, _index, _r, _tuple, _tuple$1, _tuple$2, c, c$1, j, m, n, prevRhat, q, qhat, qhatv, qhatvp, qhl, rec, rhat, u, ujn, ujn2, v, vn1, vn2, x, x$1, x$2, x$3, x$4, x1, x2, $s};return $f; - }; - $ptrType(nat).prototype.divBasic = function(...$args) { return this.$get().divBasic(...$args); }; - greaterThan = function greaterThan$1(x1, x2, y1, y2) { - var x1, x2, y1, y2; - return x1 > y1 || (x1 === y1) && x2 > y2; - }; - nat.prototype.divRecursive = function divRecursive(u, v) { - var {_i, _r, _ref, n, recDepth, temps, tmp, u, v, z, $s, $r, $c} = $restore(this, {u, v}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - recDepth = $imul(2, bits.Len(((v.$length >>> 0)))); - _r = getNat($imul(3, v.$length)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - tmp = _r; - temps = $makeSlice(sliceType$3, recDepth); - z.clear(); - $r = z.divRecursiveStep(u, v, 0, tmp, temps); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _ref = temps; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - n = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (!(n === ptrType$3.nil)) { - putNat(n); - } - _i++; - } - putNat(tmp); - $s = -1; return; - /* */ } return; } var $f = {$blk: divRecursive, $c: true, $r, _i, _r, _ref, n, recDepth, temps, tmp, u, v, z, $s};return $f; - }; - $ptrType(nat).prototype.divRecursive = function(...$args) { return this.$get().divRecursive(...$args); }; - nat.prototype.divRecursiveStep = function divRecursiveStep(u, v, depth, tmp, temps) { - var {B, _q, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, c, c$1, c$2, c$3, depth, e, e$1, i, i$1, j, m, n, qhat, qhat$1, qhatv, qhatv$1, s, s$1, temps, tmp, u, uu, v, z, $s, $r, $c} = $restore(this, {u, v, depth, tmp, temps}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - u = u.norm(); - v = v.norm(); - if (u.$length === 0) { - z.clear(); - $s = -1; return; - } - n = v.$length; - /* */ if (n < 100) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (n < 100) { */ case 1: - $r = z.divBasic(u, v); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 2: - m = u.$length - n >> 0; - if (m < 0) { - $s = -1; return; - } - B = (_q = n / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); - /* */ if (((depth < 0 || depth >= temps.$length) ? ($throwRuntimeError("index out of range"), undefined) : temps.$array[temps.$offset + depth]) === ptrType$3.nil) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (((depth < 0 || depth >= temps.$length) ? ($throwRuntimeError("index out of range"), undefined) : temps.$array[temps.$offset + depth]) === ptrType$3.nil) { */ case 4: - _r = getNat(n); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - ((depth < 0 || depth >= temps.$length) ? ($throwRuntimeError("index out of range"), undefined) : temps.$array[temps.$offset + depth] = _r); - $s = 6; continue; - /* } else { */ case 5: - ((depth < 0 || depth >= temps.$length) ? ($throwRuntimeError("index out of range"), undefined) : temps.$array[temps.$offset + depth]).$set(((depth < 0 || depth >= temps.$length) ? ($throwRuntimeError("index out of range"), undefined) : temps.$array[temps.$offset + depth]).make(B + 1 >> 0)); - /* } */ case 6: - j = m; - /* while (true) { */ case 8: - /* if (!(j > B)) { break; } */ if(!(j > B)) { $s = 9; continue; } - s = (B - 1 >> 0); - uu = $subslice(u, (j - B >> 0)); - qhat = ((depth < 0 || depth >= temps.$length) ? ($throwRuntimeError("index out of range"), undefined) : temps.$array[temps.$offset + depth]).$get(); - qhat.clear(); - $r = qhat.divRecursiveStep($subslice(uu, s, (B + n >> 0)), $subslice(v, s), depth + 1 >> 0, tmp, temps); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - qhat = qhat.norm(); - qhatv = tmp.make($imul(3, n)); - qhatv.clear(); - _r$1 = qhatv.mul(qhat, $subslice(v, 0, s)); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - qhatv = _r$1; - i = 0; - /* while (true) { */ case 12: - /* if (!(i < 2)) { break; } */ if(!(i < 2)) { $s = 13; continue; } - e = qhatv.cmp(uu.norm()); - if (e <= 0) { - /* break; */ $s = 13; continue; - } - _r$2 = subVW($convertSliceType(qhat, sliceType$2), $convertSliceType(qhat, sliceType$2), 1); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - c = subVV($convertSliceType($subslice(qhatv, 0, s), sliceType$2), $convertSliceType($subslice(qhatv, 0, s), sliceType$2), $convertSliceType($subslice(v, 0, s), sliceType$2)); - /* */ if (qhatv.$length > s) { $s = 15; continue; } - /* */ $s = 16; continue; - /* if (qhatv.$length > s) { */ case 15: - _r$3 = subVW($convertSliceType($subslice(qhatv, s), sliceType$2), $convertSliceType($subslice(qhatv, s), sliceType$2), c); /* */ $s = 17; case 17: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$3; - /* } */ case 16: - $r = addAt($subslice(uu, s), $subslice(v, s), 0); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - i = i + (1) >> 0; - $s = 12; continue; - case 13: - if (qhatv.cmp(uu.norm()) > 0) { - $panic(new $String("impossible")); - } - c$1 = subVV($convertSliceType($subslice(uu, 0, qhatv.$length), sliceType$2), $convertSliceType($subslice(uu, 0, qhatv.$length), sliceType$2), $convertSliceType(qhatv, sliceType$2)); - /* */ if (c$1 > 0) { $s = 19; continue; } - /* */ $s = 20; continue; - /* if (c$1 > 0) { */ case 19: - _r$4 = subVW($convertSliceType($subslice(uu, qhatv.$length), sliceType$2), $convertSliceType($subslice(uu, qhatv.$length), sliceType$2), c$1); /* */ $s = 21; case 21: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$4; - /* } */ case 20: - $r = addAt(z, qhat, j - B >> 0); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - j = j - (B) >> 0; - $s = 8; continue; - case 9: - s$1 = B - 1 >> 0; - qhat$1 = ((depth < 0 || depth >= temps.$length) ? ($throwRuntimeError("index out of range"), undefined) : temps.$array[temps.$offset + depth]).$get(); - qhat$1.clear(); - $r = qhat$1.divRecursiveStep($subslice(u, s$1).norm(), $subslice(v, s$1), depth + 1 >> 0, tmp, temps); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - qhat$1 = qhat$1.norm(); - qhatv$1 = tmp.make($imul(3, n)); - qhatv$1.clear(); - _r$5 = qhatv$1.mul(qhat$1, $subslice(v, 0, s$1)); /* */ $s = 24; case 24: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - qhatv$1 = _r$5; - i$1 = 0; - /* while (true) { */ case 25: - /* if (!(i$1 < 2)) { break; } */ if(!(i$1 < 2)) { $s = 26; continue; } - e$1 = qhatv$1.cmp(u.norm()); - /* */ if (e$1 > 0) { $s = 27; continue; } - /* */ $s = 28; continue; - /* if (e$1 > 0) { */ case 27: - _r$6 = subVW($convertSliceType(qhat$1, sliceType$2), $convertSliceType(qhat$1, sliceType$2), 1); /* */ $s = 29; case 29: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _r$6; - c$2 = subVV($convertSliceType($subslice(qhatv$1, 0, s$1), sliceType$2), $convertSliceType($subslice(qhatv$1, 0, s$1), sliceType$2), $convertSliceType($subslice(v, 0, s$1), sliceType$2)); - /* */ if (qhatv$1.$length > s$1) { $s = 30; continue; } - /* */ $s = 31; continue; - /* if (qhatv$1.$length > s$1) { */ case 30: - _r$7 = subVW($convertSliceType($subslice(qhatv$1, s$1), sliceType$2), $convertSliceType($subslice(qhatv$1, s$1), sliceType$2), c$2); /* */ $s = 32; case 32: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _r$7; - /* } */ case 31: - $r = addAt($subslice(u, s$1), $subslice(v, s$1), 0); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 28: - i$1 = i$1 + (1) >> 0; - $s = 25; continue; - case 26: - if (qhatv$1.cmp(u.norm()) > 0) { - $panic(new $String("impossible")); - } - c$3 = subVV($convertSliceType($subslice(u, 0, qhatv$1.$length), sliceType$2), $convertSliceType($subslice(u, 0, qhatv$1.$length), sliceType$2), $convertSliceType(qhatv$1, sliceType$2)); - /* */ if (c$3 > 0) { $s = 34; continue; } - /* */ $s = 35; continue; - /* if (c$3 > 0) { */ case 34: - _r$8 = subVW($convertSliceType($subslice(u, qhatv$1.$length), sliceType$2), $convertSliceType($subslice(u, qhatv$1.$length), sliceType$2), c$3); /* */ $s = 36; case 36: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - c$3 = _r$8; - /* } */ case 35: - if (c$3 > 0) { - $panic(new $String("impossible")); - } - $r = addAt(z, qhat$1.norm(), 0); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: divRecursiveStep, $c: true, $r, B, _q, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, c, c$1, c$2, c$3, depth, e, e$1, i, i$1, j, m, n, qhat, qhat$1, qhatv, qhatv$1, s, s$1, temps, tmp, u, uu, v, z, $s};return $f; - }; - $ptrType(nat).prototype.divRecursiveStep = function(...$args) { return this.$get().divRecursiveStep(...$args); }; - maxPow = function maxPow$1(b) { - var _q, _tmp, _tmp$1, b, max$1, n, p; - p = 0; - n = 0; - _tmp = b; - _tmp$1 = 1; - p = _tmp; - n = _tmp$1; - max$1 = (_q = 4294967295 / b, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); - while (true) { - if (!(p <= max$1)) { break; } - p = $imul(p, (b)) >>> 0; - n = n + (1) >> 0; - } - return [p, n]; - }; - pow = function pow$1(x, n) { - var n, p, x; - p = 0; - p = 1; - while (true) { - if (!(n > 0)) { break; } - if (!(((n & 1) === 0))) { - p = $imul(p, (x)) >>> 0; - } - x = $imul(x, (x)) >>> 0; - n = (n >> $min((1), 31)) >> 0; - } - return p; - }; - nat.prototype.scan = function scan(r, base, fracOk) { - var {_1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, b, b1, base, baseOk, bn, ch, count, d1, di, dp, err, fracOk, i, invalSep, n, prefix, prev, r, res, z, $s, $r, $c} = $restore(this, {r, base, fracOk}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - res = nat.nil; - b = 0; - count = 0; - err = $ifaceNil; - z = this; - baseOk = (base === 0) || !fracOk && 2 <= base && base <= 62 || fracOk && ((base === 2) || (base === 8) || (base === 10) || (base === 16)); - /* */ if (!baseOk) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!baseOk) { */ case 1: - _r = fmt.Sprintf("invalid number base %d", new sliceType([new $Int(base)])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $panic(new $String(_r)); - /* } */ case 2: - prev = 46; - invalSep = false; - _r$1 = r.ReadByte(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - ch = _tuple[0]; - err = _tuple[1]; - _tmp = base; - _tmp$1 = 0; - b = _tmp; - prefix = _tmp$1; - /* */ if (base === 0) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (base === 0) { */ case 5: - b = 10; - /* */ if ($interfaceIsEqual(err, $ifaceNil) && (ch === 48)) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if ($interfaceIsEqual(err, $ifaceNil) && (ch === 48)) { */ case 7: - prev = 48; - count = 1; - _r$2 = r.ReadByte(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple$1 = _r$2; - ch = _tuple$1[0]; - err = _tuple$1[1]; - /* */ if ($interfaceIsEqual(err, $ifaceNil)) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if ($interfaceIsEqual(err, $ifaceNil)) { */ case 10: - _1 = ch; - if ((_1 === (98)) || (_1 === (66))) { - _tmp$2 = 2; - _tmp$3 = 98; - b = _tmp$2; - prefix = _tmp$3; - } else if ((_1 === (111)) || (_1 === (79))) { - _tmp$4 = 8; - _tmp$5 = 111; - b = _tmp$4; - prefix = _tmp$5; - } else if ((_1 === (120)) || (_1 === (88))) { - _tmp$6 = 16; - _tmp$7 = 120; - b = _tmp$6; - prefix = _tmp$7; - } else if (!fracOk) { - _tmp$8 = 8; - _tmp$9 = 48; - b = _tmp$8; - prefix = _tmp$9; - } - /* */ if (!((prefix === 0))) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (!((prefix === 0))) { */ case 12: - count = 0; - /* */ if (!((prefix === 48))) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (!((prefix === 48))) { */ case 14: - _r$3 = r.ReadByte(); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple$2 = _r$3; - ch = _tuple$2[0]; - err = _tuple$2[1]; - /* } */ case 15: - /* } */ case 13: - /* } */ case 11: - /* } */ case 8: - /* } */ case 6: - z = $subslice(z, 0, 0); - b1 = ((b >>> 0)); - _tuple$3 = maxPow(b1); - bn = _tuple$3[0]; - n = _tuple$3[1]; - di = 0; - i = 0; - dp = -1; - /* while (true) { */ case 17: - /* if (!($interfaceIsEqual(err, $ifaceNil))) { break; } */ if(!($interfaceIsEqual(err, $ifaceNil))) { $s = 18; continue; } - /* */ if ((ch === 46) && fracOk) { $s = 19; continue; } - /* */ if ((ch === 95) && (base === 0)) { $s = 20; continue; } - /* */ $s = 21; continue; - /* if ((ch === 46) && fracOk) { */ case 19: - fracOk = false; - if (prev === 95) { - invalSep = true; - } - prev = 46; - dp = count; - $s = 22; continue; - /* } else if ((ch === 95) && (base === 0)) { */ case 20: - if (!((prev === 48))) { - invalSep = true; - } - prev = 95; - $s = 22; continue; - /* } else { */ case 21: - d1 = 0; - if (48 <= ch && ch <= 57) { - d1 = (((ch - 48 << 24 >>> 24) >>> 0)); - } else if (97 <= ch && ch <= 122) { - d1 = ((((ch - 97 << 24 >>> 24) + 10 << 24 >>> 24) >>> 0)); - } else if (65 <= ch && ch <= 90) { - if (b <= 36) { - d1 = ((((ch - 65 << 24 >>> 24) + 10 << 24 >>> 24) >>> 0)); - } else { - d1 = ((((ch - 65 << 24 >>> 24) + 36 << 24 >>> 24) >>> 0)); - } - } else { - d1 = 63; - } - /* */ if (d1 >= b1) { $s = 23; continue; } - /* */ $s = 24; continue; - /* if (d1 >= b1) { */ case 23: - _r$4 = r.UnreadByte(); /* */ $s = 25; case 25: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$4; - /* break; */ $s = 18; continue; - /* } */ case 24: - prev = 48; - count = count + (1) >> 0; - di = ($imul(di, b1) >>> 0) + d1 >>> 0; - i = i + (1) >> 0; - if (i === n) { - z = z.mulAddWW(z, bn, di); - di = 0; - i = 0; - } - /* } */ case 22: - _r$5 = r.ReadByte(); /* */ $s = 26; case 26: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _tuple$4 = _r$5; - ch = _tuple$4[0]; - err = _tuple$4[1]; - $s = 17; continue; - case 18: - if ($interfaceIsEqual(err, io.EOF)) { - err = $ifaceNil; - } - if ($interfaceIsEqual(err, $ifaceNil) && (invalSep || (prev === 95))) { - err = errInvalSep; - } - if (count === 0) { - if (prefix === 48) { - _tmp$10 = $subslice(z, 0, 0); - _tmp$11 = 10; - _tmp$12 = 1; - _tmp$13 = err; - res = _tmp$10; - b = _tmp$11; - count = _tmp$12; - err = _tmp$13; - $s = -1; return [res, b, count, err]; - } - err = errNoDigits; - } - if (i > 0) { - z = z.mulAddWW(z, pow(b1, i), di); - } - res = z.norm(); - if (dp >= 0) { - count = dp - count >> 0; - } - $s = -1; return [res, b, count, err]; - /* */ } return; } var $f = {$blk: scan, $c: true, $r, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, b, b1, base, baseOk, bn, ch, count, d1, di, dp, err, fracOk, i, invalSep, n, prefix, prev, r, res, z, $s};return $f; - }; - $ptrType(nat).prototype.scan = function(...$args) { return this.$get().scan(...$args); }; - nat.prototype.utoa = function utoa(base) { - var {$24r, _r, base, x, $s, $r, $c} = $restore(this, {base}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - _r = x.itoa(false, base); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: utoa, $c: true, $r, $24r, _r, base, x, $s};return $f; - }; - $ptrType(nat).prototype.utoa = function(...$args) { return this.$get().utoa(...$args); }; - nat.prototype.itoa = function itoa(neg, base) { - var {_r, _tuple, b, base, bb, i, k, mask, nbits, ndigits, neg, q, s, shift, table, w, x, y, y$1, y$2, y$3, y$4, $s, $r, $c} = $restore(this, {neg, base}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - if (base < 2 || base > 62) { - $panic(new $String("invalid base")); - } - if (x.$length === 0) { - $s = -1; return (new sliceType$1($stringToBytes("0"))); - } - i = (((x.bitLen()) / math.Log2((base)) >> 0)) + 1 >> 0; - if (neg) { - i = i + (1) >> 0; - } - s = $makeSlice(sliceType$1, i); - b = ((base >>> 0)); - /* */ if (b === ((b & (-b >>> 0)) >>> 0)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (b === ((b & (-b >>> 0)) >>> 0)) { */ case 1: - shift = ((bits.TrailingZeros(((b >>> 0))) >>> 0)); - mask = ((((y = shift, y < 32 ? (1 << y) : 0) >>> 0) - 1 >>> 0)); - w = (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]); - nbits = 32; - k = 1; - while (true) { - if (!(k < x.$length)) { break; } - while (true) { - if (!(nbits >= shift)) { break; } - i = i - (1) >> 0; - ((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i] = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".charCodeAt(((w & mask) >>> 0))); - w = (y$1 = (shift), y$1 < 32 ? (w >>> y$1) : 0) >>> 0; - nbits = nbits - (shift) >>> 0; - } - if (nbits === 0) { - w = ((k < 0 || k >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + k]); - nbits = 32; - } else { - w = (w | (((y$2 = nbits, y$2 < 32 ? (((k < 0 || k >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + k]) << y$2) : 0) >>> 0))) >>> 0; - i = i - (1) >> 0; - ((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i] = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".charCodeAt(((w & mask) >>> 0))); - w = (y$3 = ((shift - nbits >>> 0)), y$3 < 32 ? (((k < 0 || k >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + k]) >>> y$3) : 0) >>> 0; - nbits = 32 - ((shift - nbits >>> 0)) >>> 0; - } - k = k + (1) >> 0; - } - while (true) { - if (!(!((w === 0)))) { break; } - i = i - (1) >> 0; - ((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i] = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".charCodeAt(((w & mask) >>> 0))); - w = (y$4 = (shift), y$4 < 32 ? (w >>> y$4) : 0) >>> 0; - } - $s = 3; continue; - /* } else { */ case 2: - _tuple = maxPow(b); - bb = _tuple[0]; - ndigits = _tuple[1]; - _r = divisors(x.$length, b, ndigits, bb); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - table = _r; - q = (nat.nil).set(x); - $r = q.convertWords(s, b, ndigits, bb, table); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - i = 0; - while (true) { - if (!(((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i]) === 48)) { break; } - i = i + (1) >> 0; - } - /* } */ case 3: - if (neg) { - i = i - (1) >> 0; - ((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i] = 45); - } - $s = -1; return $subslice(s, i); - /* */ } return; } var $f = {$blk: itoa, $c: true, $r, _r, _tuple, b, base, bb, i, k, mask, nbits, ndigits, neg, q, s, shift, table, w, x, y, y$1, y$2, y$3, y$4, $s};return $f; - }; - $ptrType(nat).prototype.itoa = function(...$args) { return this.$get().itoa(...$args); }; - nat.prototype.convertWords = function convertWords(s, b, ndigits, bb, table) { - var {_q, _q$1, _r, _r$1, _tuple, _tuple$1, _tuple$2, b, bb, h, i, index, j, j$1, maxLength, minLength, ndigits, q, r, r$1, s, t, table, x, $s, $r, $c} = $restore(this, {s, b, ndigits, bb, table}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - q = this; - /* */ if (!(table === sliceType$4.nil)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(table === sliceType$4.nil)) { */ case 1: - r = nat.nil; - index = table.$length - 1 >> 0; - /* while (true) { */ case 3: - /* if (!(q.$length > leafSize)) { break; } */ if(!(q.$length > leafSize)) { $s = 4; continue; } - maxLength = q.bitLen(); - minLength = maxLength >> 1 >> 0; - while (true) { - if (!(index > 0 && (x = index - 1 >> 0, ((x < 0 || x >= table.$length) ? ($throwRuntimeError("index out of range"), undefined) : table.$array[table.$offset + x])).nbits > minLength)) { break; } - index = index - (1) >> 0; - } - if (((index < 0 || index >= table.$length) ? ($throwRuntimeError("index out of range"), undefined) : table.$array[table.$offset + index]).nbits >= maxLength && ((index < 0 || index >= table.$length) ? ($throwRuntimeError("index out of range"), undefined) : table.$array[table.$offset + index]).bbb.cmp(q) >= 0) { - index = index - (1) >> 0; - if (index < 0) { - $panic(new $String("internal inconsistency")); - } - } - _r = q.div(r, q, ((index < 0 || index >= table.$length) ? ($throwRuntimeError("index out of range"), undefined) : table.$array[table.$offset + index]).bbb); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - q = _tuple[0]; - r = _tuple[1]; - h = s.$length - ((index < 0 || index >= table.$length) ? ($throwRuntimeError("index out of range"), undefined) : table.$array[table.$offset + index]).ndigits >> 0; - $r = r.convertWords($subslice(s, h), b, ndigits, bb, $subslice(table, 0, index)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - s = $subslice(s, 0, h); - $s = 3; continue; - case 4: - /* } */ case 2: - i = s.$length; - r$1 = 0; - if (b === 10) { - while (true) { - if (!(q.$length > 0)) { break; } - _tuple$1 = q.divW(q, bb); - q = _tuple$1[0]; - r$1 = _tuple$1[1]; - j = 0; - while (true) { - if (!(j < ndigits && i > 0)) { break; } - i = i - (1) >> 0; - t = (_q = r$1 / 10, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); - ((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i] = (48 + (((r$1 - ($imul(t, 10) >>> 0) >>> 0) << 24 >>> 24)) << 24 >>> 24)); - r$1 = t; - j = j + (1) >> 0; - } - } - } else { - while (true) { - if (!(q.$length > 0)) { break; } - _tuple$2 = q.divW(q, bb); - q = _tuple$2[0]; - r$1 = _tuple$2[1]; - j$1 = 0; - while (true) { - if (!(j$1 < ndigits && i > 0)) { break; } - i = i - (1) >> 0; - ((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i] = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".charCodeAt((_r$1 = r$1 % b, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")))); - r$1 = (_q$1 = r$1 / (b), (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero")); - j$1 = j$1 + (1) >> 0; - } - } - } - while (true) { - if (!(i > 0)) { break; } - i = i - (1) >> 0; - ((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i] = 48); - } - $s = -1; return; - /* */ } return; } var $f = {$blk: convertWords, $c: true, $r, _q, _q$1, _r, _r$1, _tuple, _tuple$1, _tuple$2, b, bb, h, i, index, j, j$1, maxLength, minLength, ndigits, q, r, r$1, s, t, table, x, $s};return $f; - }; - $ptrType(nat).prototype.convertWords = function(...$args) { return this.$get().convertWords(...$args); }; - nat.prototype.expWW = function expWW(x, y) { - var {$24r, _r, x, y, z, $s, $r, $c} = $restore(this, {x, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - _r = z.expNN((nat.nil).setWord(x), (nat.nil).setWord(y), nat.nil, false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: expWW, $c: true, $r, $24r, _r, x, y, z, $s};return $f; - }; - $ptrType(nat).prototype.expWW = function(...$args) { return this.$get().expWW(...$args); }; - divisors = function divisors$1(m, b, ndigits, bb) { - var {_r, _r$1, b, bb, i, k, larger, m, ndigits, table, words, x, x$1, x$2, y, $s, $r, $c} = $restore(this, {m, b, ndigits, bb}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if ((leafSize === 0) || m <= leafSize) { - $s = -1; return sliceType$4.nil; - } - k = 1; - words = leafSize; - while (true) { - if (!(words < (m >> 1 >> 0) && k < 64)) { break; } - k = k + (1) >> 0; - words = (y = (1), y < 32 ? (words << y) : 0) >> 0; - } - table = sliceType$4.nil; - if (b === 10) { - cacheBase10.Mutex.Lock(); - table = $subslice(new sliceType$4(cacheBase10.table), 0, k); - } else { - table = $makeSlice(sliceType$4, k); - } - /* */ if ((x = k - 1 >> 0, ((x < 0 || x >= table.$length) ? ($throwRuntimeError("index out of range"), undefined) : table.$array[table.$offset + x])).ndigits === 0) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if ((x = k - 1 >> 0, ((x < 0 || x >= table.$length) ? ($throwRuntimeError("index out of range"), undefined) : table.$array[table.$offset + x])).ndigits === 0) { */ case 1: - larger = nat.nil; - i = 0; - /* while (true) { */ case 3: - /* if (!(i < k)) { break; } */ if(!(i < k)) { $s = 4; continue; } - /* */ if (((i < 0 || i >= table.$length) ? ($throwRuntimeError("index out of range"), undefined) : table.$array[table.$offset + i]).ndigits === 0) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (((i < 0 || i >= table.$length) ? ($throwRuntimeError("index out of range"), undefined) : table.$array[table.$offset + i]).ndigits === 0) { */ case 5: - /* */ if (i === 0) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (i === 0) { */ case 7: - _r = (nat.nil).expWW(bb, ((leafSize >>> 0))); /* */ $s = 10; case 10: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - (0 >= table.$length ? ($throwRuntimeError("index out of range"), undefined) : table.$array[table.$offset + 0]).bbb = _r; - (0 >= table.$length ? ($throwRuntimeError("index out of range"), undefined) : table.$array[table.$offset + 0]).ndigits = $imul(ndigits, leafSize); - $s = 9; continue; - /* } else { */ case 8: - _r$1 = (nat.nil).sqr((x$1 = i - 1 >> 0, ((x$1 < 0 || x$1 >= table.$length) ? ($throwRuntimeError("index out of range"), undefined) : table.$array[table.$offset + x$1])).bbb); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - ((i < 0 || i >= table.$length) ? ($throwRuntimeError("index out of range"), undefined) : table.$array[table.$offset + i]).bbb = _r$1; - ((i < 0 || i >= table.$length) ? ($throwRuntimeError("index out of range"), undefined) : table.$array[table.$offset + i]).ndigits = $imul(2, (x$2 = i - 1 >> 0, ((x$2 < 0 || x$2 >= table.$length) ? ($throwRuntimeError("index out of range"), undefined) : table.$array[table.$offset + x$2])).ndigits); - /* } */ case 9: - larger = (nat.nil).set(((i < 0 || i >= table.$length) ? ($throwRuntimeError("index out of range"), undefined) : table.$array[table.$offset + i]).bbb); - while (true) { - if (!(mulAddVWW($convertSliceType(larger, sliceType$2), $convertSliceType(larger, sliceType$2), b, 0) === 0)) { break; } - ((i < 0 || i >= table.$length) ? ($throwRuntimeError("index out of range"), undefined) : table.$array[table.$offset + i]).bbb = ((i < 0 || i >= table.$length) ? ($throwRuntimeError("index out of range"), undefined) : table.$array[table.$offset + i]).bbb.set(larger); - ((i < 0 || i >= table.$length) ? ($throwRuntimeError("index out of range"), undefined) : table.$array[table.$offset + i]).ndigits = ((i < 0 || i >= table.$length) ? ($throwRuntimeError("index out of range"), undefined) : table.$array[table.$offset + i]).ndigits + (1) >> 0; - } - ((i < 0 || i >= table.$length) ? ($throwRuntimeError("index out of range"), undefined) : table.$array[table.$offset + i]).nbits = ((i < 0 || i >= table.$length) ? ($throwRuntimeError("index out of range"), undefined) : table.$array[table.$offset + i]).bbb.bitLen(); - /* } */ case 6: - i = i + (1) >> 0; - $s = 3; continue; - case 4: - /* } */ case 2: - if (b === 10) { - cacheBase10.Mutex.Unlock(); - } - $s = -1; return table; - /* */ } return; } var $f = {$blk: divisors$1, $c: true, $r, _r, _r$1, b, bb, i, k, larger, m, ndigits, table, words, x, x$1, x$2, y, $s};return $f; - }; - nat.prototype.String = function String$2() { - var {$24r, _r, z, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - _r = z.itoa(false, 16); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = "0x" + ($bytesToString(_r)); - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$2, $c: true, $r, $24r, _r, z, $s};return $f; - }; - $ptrType(nat).prototype.String = function(...$args) { return this.$get().String(...$args); }; - nat.prototype.clear = function clear() { - var _i, _ref, i, z; - z = this; - _ref = z; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - ((i < 0 || i >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + i] = 0); - _i++; - } - }; - $ptrType(nat).prototype.clear = function(...$args) { return this.$get().clear(...$args); }; - nat.prototype.norm = function norm$1() { - var i, x, z; - z = this; - i = z.$length; - while (true) { - if (!(i > 0 && ((x = i - 1 >> 0, ((x < 0 || x >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + x])) === 0))) { break; } - i = i - (1) >> 0; - } - return $subslice(z, 0, i); - }; - $ptrType(nat).prototype.norm = function(...$args) { return this.$get().norm(...$args); }; - nat.prototype.make = function make(n) { - var n, z; - z = this; - if (n <= z.$capacity) { - return $subslice(z, 0, n); - } - if (n === 1) { - return $makeSlice(nat, 1); - } - return $makeSlice(nat, n, (n + 4 >> 0)); - }; - $ptrType(nat).prototype.make = function(...$args) { return this.$get().make(...$args); }; - nat.prototype.setWord = function setWord(x) { - var x, z; - z = this; - if (x === 0) { - return $subslice(z, 0, 0); - } - z = z.make(1); - (0 >= z.$length ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + 0] = x); - return z; - }; - $ptrType(nat).prototype.setWord = function(...$args) { return this.$get().setWord(...$args); }; - nat.prototype.setUint64 = function setUint64(x) { - var w, x, x$1, z; - z = this; - w = ((x.$low >>> 0)); - if ((x$1 = (new $Uint64(0, w)), (x$1.$high === x.$high && x$1.$low === x.$low))) { - return z.setWord(w); - } - z = z.make(2); - (1 >= z.$length ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + 1] = (($shiftRightUint64(x, 32).$low >>> 0))); - (0 >= z.$length ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + 0] = ((x.$low >>> 0))); - return z; - }; - $ptrType(nat).prototype.setUint64 = function(...$args) { return this.$get().setUint64(...$args); }; - nat.prototype.set = function set(x) { - var x, z; - z = this; - z = z.make(x.$length); - $copySlice(z, x); - return z; - }; - $ptrType(nat).prototype.set = function(...$args) { return this.$get().set(...$args); }; - nat.prototype.add = function add(x, y) { - var {$24r, _r, _r$1, c, m, n, x, y, z, $s, $r, $c} = $restore(this, {x, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - m = x.$length; - n = y.$length; - /* */ if (m < n) { $s = 2; continue; } - /* */ if ((m === 0)) { $s = 3; continue; } - /* */ if ((n === 0)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (m < n) { */ case 2: - _r = z.add(y, x); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 7; case 7: return $24r; - /* } else if ((m === 0)) { */ case 3: - $s = -1; return $subslice(z, 0, 0); - /* } else if ((n === 0)) { */ case 4: - $s = -1; return z.set(x); - /* } */ case 5: - case 1: - z = z.make(m + 1 >> 0); - c = addVV($convertSliceType($subslice(z, 0, n), sliceType$2), $convertSliceType(x, sliceType$2), $convertSliceType(y, sliceType$2)); - /* */ if (m > n) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (m > n) { */ case 8: - _r$1 = addVW($convertSliceType($subslice(z, n, m), sliceType$2), $convertSliceType($subslice(x, n), sliceType$2), c); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - c = _r$1; - /* } */ case 9: - ((m < 0 || m >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + m] = c); - $s = -1; return z.norm(); - /* */ } return; } var $f = {$blk: add, $c: true, $r, $24r, _r, _r$1, c, m, n, x, y, z, $s};return $f; - }; - $ptrType(nat).prototype.add = function(...$args) { return this.$get().add(...$args); }; - nat.prototype.sub = function sub(x, y) { - var {_r, c, m, n, x, y, z, $s, $r, $c} = $restore(this, {x, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - m = x.$length; - n = y.$length; - if (m < n) { - $panic(new $String("underflow")); - } else if ((m === 0)) { - $s = -1; return $subslice(z, 0, 0); - } else if ((n === 0)) { - $s = -1; return z.set(x); - } - z = z.make(m); - c = subVV($convertSliceType($subslice(z, 0, n), sliceType$2), $convertSliceType(x, sliceType$2), $convertSliceType(y, sliceType$2)); - /* */ if (m > n) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (m > n) { */ case 1: - _r = subVW($convertSliceType($subslice(z, n), sliceType$2), $convertSliceType($subslice(x, n), sliceType$2), c); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - c = _r; - /* } */ case 2: - if (!((c === 0))) { - $panic(new $String("underflow")); - } - $s = -1; return z.norm(); - /* */ } return; } var $f = {$blk: sub, $c: true, $r, _r, c, m, n, x, y, z, $s};return $f; - }; - $ptrType(nat).prototype.sub = function(...$args) { return this.$get().sub(...$args); }; - nat.prototype.cmp = function cmp(y) { - var i, m, n, r, x, y; - r = 0; - x = this; - m = x.$length; - n = y.$length; - if (!((m === n)) || (m === 0)) { - if (m < n) { - r = -1; - } else if (m > n) { - r = 1; - } - return r; - } - i = m - 1 >> 0; - while (true) { - if (!(i > 0 && (((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) === ((i < 0 || i >= y.$length) ? ($throwRuntimeError("index out of range"), undefined) : y.$array[y.$offset + i])))) { break; } - i = i - (1) >> 0; - } - if (((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) < ((i < 0 || i >= y.$length) ? ($throwRuntimeError("index out of range"), undefined) : y.$array[y.$offset + i])) { - r = -1; - } else if (((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) > ((i < 0 || i >= y.$length) ? ($throwRuntimeError("index out of range"), undefined) : y.$array[y.$offset + i])) { - r = 1; - } - return r; - }; - $ptrType(nat).prototype.cmp = function(...$args) { return this.$get().cmp(...$args); }; - nat.prototype.mulAddWW = function mulAddWW(x, y, r) { - var m, r, x, y, z; - z = this; - m = x.$length; - if ((m === 0) || (y === 0)) { - return z.setWord(r); - } - z = z.make(m + 1 >> 0); - ((m < 0 || m >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + m] = mulAddVWW($convertSliceType($subslice(z, 0, m), sliceType$2), $convertSliceType(x, sliceType$2), y, r)); - return z.norm(); - }; - $ptrType(nat).prototype.mulAddWW = function(...$args) { return this.$get().mulAddWW(...$args); }; - basicMul = function basicMul$1(z, x, y) { - var _i, _ref, d, i, x, x$1, y, z; - $subslice(z, 0, (x.$length + y.$length >> 0)).clear(); - _ref = y; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - d = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (!((d === 0))) { - (x$1 = x.$length + i >> 0, ((x$1 < 0 || x$1 >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + x$1] = addMulVVW($convertSliceType($subslice(z, i, (i + x.$length >> 0)), sliceType$2), $convertSliceType(x, sliceType$2), d))); - } - _i++; - } - }; - nat.prototype.montgomery = function montgomery(x, y, m, k, n) { - var c, c2, c3, cx, cy, d, i, k, m, n, t, x, x$1, y, z; - z = this; - if (!((x.$length === n)) || !((y.$length === n)) || !((m.$length === n))) { - $panic(new $String("math/big: mismatched montgomery number lengths")); - } - z = z.make($imul(n, 2)); - z.clear(); - c = 0; - i = 0; - while (true) { - if (!(i < n)) { break; } - d = ((i < 0 || i >= y.$length) ? ($throwRuntimeError("index out of range"), undefined) : y.$array[y.$offset + i]); - c2 = addMulVVW($convertSliceType($subslice(z, i, (n + i >> 0)), sliceType$2), $convertSliceType(x, sliceType$2), d); - t = $imul(((i < 0 || i >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + i]), k) >>> 0; - c3 = addMulVVW($convertSliceType($subslice(z, i, (n + i >> 0)), sliceType$2), $convertSliceType(m, sliceType$2), t); - cx = c + c2 >>> 0; - cy = cx + c3 >>> 0; - (x$1 = n + i >> 0, ((x$1 < 0 || x$1 >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + x$1] = cy)); - if (cx < c2 || cy < c3) { - c = 1; - } else { - c = 0; - } - i = i + (1) >> 0; - } - if (!((c === 0))) { - subVV($convertSliceType($subslice(z, 0, n), sliceType$2), $convertSliceType($subslice(z, n), sliceType$2), $convertSliceType(m, sliceType$2)); - } else { - $copySlice($subslice(z, 0, n), $subslice(z, n)); - } - return $subslice(z, 0, n); - }; - $ptrType(nat).prototype.montgomery = function(...$args) { return this.$get().montgomery(...$args); }; - karatsubaAdd = function karatsubaAdd$1(z, x, n) { - var {_r, c, n, x, z, $s, $r, $c} = $restore(this, {z, x, n}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - c = addVV($convertSliceType($subslice(z, 0, n), sliceType$2), $convertSliceType(z, sliceType$2), $convertSliceType(x, sliceType$2)); - /* */ if (!((c === 0))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!((c === 0))) { */ case 1: - _r = addVW($convertSliceType($subslice(z, n, (n + (n >> 1 >> 0) >> 0)), sliceType$2), $convertSliceType($subslice(z, n), sliceType$2), c); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r; - /* } */ case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: karatsubaAdd$1, $c: true, $r, _r, c, n, x, z, $s};return $f; - }; - karatsubaSub = function karatsubaSub$1(z, x, n) { - var {_r, c, n, x, z, $s, $r, $c} = $restore(this, {z, x, n}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - c = subVV($convertSliceType($subslice(z, 0, n), sliceType$2), $convertSliceType(z, sliceType$2), $convertSliceType(x, sliceType$2)); - /* */ if (!((c === 0))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!((c === 0))) { */ case 1: - _r = subVW($convertSliceType($subslice(z, n, (n + (n >> 1 >> 0) >> 0)), sliceType$2), $convertSliceType($subslice(z, n), sliceType$2), c); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r; - /* } */ case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: karatsubaSub$1, $c: true, $r, _r, c, n, x, z, $s};return $f; - }; - karatsuba = function karatsuba$1(z, x, y) { - var {_tmp, _tmp$1, _tmp$2, _tmp$3, n, n2, p, r, s, x, x0, x1, xd, y, y0, y1, yd, z, $s, $r, $c} = $restore(this, {z, x, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - n = y.$length; - if (!(((n & 1) === 0)) || n < karatsubaThreshold || n < 2) { - basicMul(z, x, y); - $s = -1; return; - } - n2 = n >> 1 >> 0; - _tmp = $subslice(x, n2); - _tmp$1 = $subslice(x, 0, n2); - x1 = _tmp; - x0 = _tmp$1; - _tmp$2 = $subslice(y, n2); - _tmp$3 = $subslice(y, 0, n2); - y1 = _tmp$2; - y0 = _tmp$3; - $r = karatsuba(z, x0, y0); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = karatsuba($subslice(z, n), x1, y1); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - s = 1; - xd = $subslice(z, ($imul(2, n)), (($imul(2, n)) + n2 >> 0)); - if (!((subVV($convertSliceType(xd, sliceType$2), $convertSliceType(x1, sliceType$2), $convertSliceType(x0, sliceType$2)) === 0))) { - s = -s; - subVV($convertSliceType(xd, sliceType$2), $convertSliceType(x0, sliceType$2), $convertSliceType(x1, sliceType$2)); - } - yd = $subslice(z, (($imul(2, n)) + n2 >> 0), ($imul(3, n))); - if (!((subVV($convertSliceType(yd, sliceType$2), $convertSliceType(y0, sliceType$2), $convertSliceType(y1, sliceType$2)) === 0))) { - s = -s; - subVV($convertSliceType(yd, sliceType$2), $convertSliceType(y1, sliceType$2), $convertSliceType(y0, sliceType$2)); - } - p = $subslice(z, ($imul(n, 3))); - $r = karatsuba(p, xd, yd); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - r = $subslice(z, ($imul(n, 4))); - $copySlice(r, $subslice(z, 0, ($imul(n, 2)))); - $r = karatsubaAdd($subslice(z, n2), r, n); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = karatsubaAdd($subslice(z, n2), $subslice(r, n), n); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (s > 0) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (s > 0) { */ case 6: - $r = karatsubaAdd($subslice(z, n2), p, n); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 8; continue; - /* } else { */ case 7: - $r = karatsubaSub($subslice(z, n2), p, n); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 8: - $s = -1; return; - /* */ } return; } var $f = {$blk: karatsuba$1, $c: true, $r, _tmp, _tmp$1, _tmp$2, _tmp$3, n, n2, p, r, s, x, x0, x1, xd, y, y0, y1, yd, z, $s};return $f; - }; - alias = function alias$1(x, y) { - var x, x$1, x$2, y; - return x.$capacity > 0 && y.$capacity > 0 && (x$1 = $subslice(x, 0, x.$capacity), $indexPtr(x$1.$array, x$1.$offset + (x.$capacity - 1 >> 0), ptrType$4)) === (x$2 = $subslice(y, 0, y.$capacity), $indexPtr(x$2.$array, x$2.$offset + (y.$capacity - 1 >> 0), ptrType$4)); - }; - addAt = function addAt$1(z, x, i) { - var {_r, c, i, j, n, x, z, $s, $r, $c} = $restore(this, {z, x, i}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - n = x.$length; - /* */ if (n > 0) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (n > 0) { */ case 1: - c = addVV($convertSliceType($subslice(z, i, (i + n >> 0)), sliceType$2), $convertSliceType($subslice(z, i), sliceType$2), $convertSliceType(x, sliceType$2)); - /* */ if (!((c === 0))) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!((c === 0))) { */ case 3: - j = i + n >> 0; - /* */ if (j < z.$length) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (j < z.$length) { */ case 5: - _r = addVW($convertSliceType($subslice(z, j), sliceType$2), $convertSliceType($subslice(z, j), sliceType$2), c); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r; - /* } */ case 6: - /* } */ case 4: - /* } */ case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: addAt$1, $c: true, $r, _r, c, i, j, n, x, z, $s};return $f; - }; - max = function max$1(x, y) { - var x, y; - if (x > y) { - return x; - } - return y; - }; - karatsubaLen = function karatsubaLen$1(n, threshold) { - var i, n, threshold, y; - i = 0; - while (true) { - if (!(n > threshold)) { break; } - n = (n >> $min((1), 31)) >> 0; - i = i + (1) >>> 0; - } - return (y = i, y < 32 ? (n << y) : 0) >> 0; - }; - nat.prototype.mul = function mul(x, y) { - var {$24r, _r, _r$1, _r$2, _r$3, _r$4, i, k, m, n, t, tp, x, x0, x0$1, xi, y, y0, y0$1, y1, z, $s, $r, $c} = $restore(this, {x, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - m = x.$length; - n = y.$length; - /* */ if (m < n) { $s = 2; continue; } - /* */ if ((m === 0) || (n === 0)) { $s = 3; continue; } - /* */ if ((n === 1)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (m < n) { */ case 2: - _r = z.mul(y, x); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 7; case 7: return $24r; - /* } else if ((m === 0) || (n === 0)) { */ case 3: - $s = -1; return $subslice(z, 0, 0); - /* } else if ((n === 1)) { */ case 4: - $s = -1; return z.mulAddWW(x, (0 >= y.$length ? ($throwRuntimeError("index out of range"), undefined) : y.$array[y.$offset + 0]), 0); - /* } */ case 5: - case 1: - if (alias(z, x) || alias(z, y)) { - z = nat.nil; - } - if (n < karatsubaThreshold) { - z = z.make(m + n >> 0); - basicMul(z, x, y); - $s = -1; return z.norm(); - } - k = karatsubaLen(n, karatsubaThreshold); - x0 = $subslice(x, 0, k); - y0 = $subslice(y, 0, k); - z = z.make(max($imul(6, k), m + n >> 0)); - $r = karatsuba(z, x0, y0); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - z = $subslice(z, 0, (m + n >> 0)); - $subslice(z, ($imul(2, k))).clear(); - /* */ if (k < n || !((m === n))) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (k < n || !((m === n))) { */ case 9: - _r$1 = getNat($imul(3, k)); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - tp = _r$1; - t = tp.$get(); - x0$1 = x0.norm(); - y1 = $subslice(y, k); - _r$2 = t.mul(x0$1, y1); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - t = _r$2; - $r = addAt(z, t, k); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - y0$1 = y0.norm(); - i = k; - /* while (true) { */ case 14: - /* if (!(i < x.$length)) { break; } */ if(!(i < x.$length)) { $s = 15; continue; } - xi = $subslice(x, i); - if (xi.$length > k) { - xi = $subslice(xi, 0, k); - } - xi = xi.norm(); - _r$3 = t.mul(xi, y0$1); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - t = _r$3; - $r = addAt(z, t, i); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$4 = t.mul(xi, y1); /* */ $s = 18; case 18: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - t = _r$4; - $r = addAt(z, t, i + k >> 0); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - i = i + (k) >> 0; - $s = 14; continue; - case 15: - putNat(tp); - /* } */ case 10: - $s = -1; return z.norm(); - /* */ } return; } var $f = {$blk: mul, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, i, k, m, n, t, tp, x, x0, x0$1, xi, y, y0, y0$1, y1, z, $s};return $f; - }; - $ptrType(nat).prototype.mul = function(...$args) { return this.$get().mul(...$args); }; - basicSqr = function basicSqr$1(z, x) { - var {_r, _tuple, _tuple$1, d, i, n, t, tp, x, x$1, x$2, x$3, x$4, z, $s, $r, $c} = $restore(this, {z, x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - n = x.$length; - _r = getNat($imul(2, n)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - tp = _r; - t = tp.$get(); - t.clear(); - _tuple = mulWW((0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]), (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); - (1 >= z.$length ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + 1] = _tuple[0]); - (0 >= z.$length ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + 0] = _tuple[1]); - i = 1; - while (true) { - if (!(i < n)) { break; } - d = ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]); - _tuple$1 = mulWW(d, d); - (x$1 = ($imul(2, i)) + 1 >> 0, ((x$1 < 0 || x$1 >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + x$1] = _tuple$1[0])); - (x$2 = $imul(2, i), ((x$2 < 0 || x$2 >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + x$2] = _tuple$1[1])); - (x$3 = $imul(2, i), ((x$3 < 0 || x$3 >= t.$length) ? ($throwRuntimeError("index out of range"), undefined) : t.$array[t.$offset + x$3] = addMulVVW($convertSliceType($subslice(t, i, ($imul(2, i))), sliceType$2), $convertSliceType($subslice(x, 0, i), sliceType$2), d))); - i = i + (1) >> 0; - } - (x$4 = ($imul(2, n)) - 1 >> 0, ((x$4 < 0 || x$4 >= t.$length) ? ($throwRuntimeError("index out of range"), undefined) : t.$array[t.$offset + x$4] = shlVU($convertSliceType($subslice(t, 1, (($imul(2, n)) - 1 >> 0)), sliceType$2), $convertSliceType($subslice(t, 1, (($imul(2, n)) - 1 >> 0)), sliceType$2), 1))); - addVV($convertSliceType(z, sliceType$2), $convertSliceType(z, sliceType$2), $convertSliceType(t, sliceType$2)); - putNat(tp); - $s = -1; return; - /* */ } return; } var $f = {$blk: basicSqr$1, $c: true, $r, _r, _tuple, _tuple$1, d, i, n, t, tp, x, x$1, x$2, x$3, x$4, z, $s};return $f; - }; - karatsubaSqr = function karatsubaSqr$1(z, x) { - var {_tmp, _tmp$1, n, n2, p, r, x, x0, x1, xd, z, $s, $r, $c} = $restore(this, {z, x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - n = x.$length; - /* */ if (!(((n & 1) === 0)) || n < karatsubaSqrThreshold || n < 2) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(((n & 1) === 0)) || n < karatsubaSqrThreshold || n < 2) { */ case 1: - $r = basicSqr($subslice(z, 0, ($imul(2, n))), x); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 2: - n2 = n >> 1 >> 0; - _tmp = $subslice(x, n2); - _tmp$1 = $subslice(x, 0, n2); - x1 = _tmp; - x0 = _tmp$1; - $r = karatsubaSqr(z, x0); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = karatsubaSqr($subslice(z, n), x1); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - xd = $subslice(z, ($imul(2, n)), (($imul(2, n)) + n2 >> 0)); - if (!((subVV($convertSliceType(xd, sliceType$2), $convertSliceType(x1, sliceType$2), $convertSliceType(x0, sliceType$2)) === 0))) { - subVV($convertSliceType(xd, sliceType$2), $convertSliceType(x0, sliceType$2), $convertSliceType(x1, sliceType$2)); - } - p = $subslice(z, ($imul(n, 3))); - $r = karatsubaSqr(p, xd); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - r = $subslice(z, ($imul(n, 4))); - $copySlice(r, $subslice(z, 0, ($imul(n, 2)))); - $r = karatsubaAdd($subslice(z, n2), r, n); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = karatsubaAdd($subslice(z, n2), $subslice(r, n), n); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = karatsubaSub($subslice(z, n2), p, n); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: karatsubaSqr$1, $c: true, $r, _tmp, _tmp$1, n, n2, p, r, x, x0, x1, xd, z, $s};return $f; - }; - nat.prototype.sqr = function sqr(x) { - var {_r, _r$1, _r$2, _tuple, d, k, n, t, tp, x, x0, x0$1, x1, z, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - n = x.$length; - if ((n === 0)) { - $s = -1; return $subslice(z, 0, 0); - } else if ((n === 1)) { - d = (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]); - z = z.make(2); - _tuple = mulWW(d, d); - (1 >= z.$length ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + 1] = _tuple[0]); - (0 >= z.$length ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + 0] = _tuple[1]); - $s = -1; return z.norm(); - } - if (alias(z, x)) { - z = nat.nil; - } - if (n < basicSqrThreshold) { - z = z.make($imul(2, n)); - basicMul(z, x, x); - $s = -1; return z.norm(); - } - /* */ if (n < karatsubaSqrThreshold) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (n < karatsubaSqrThreshold) { */ case 1: - z = z.make($imul(2, n)); - $r = basicSqr(z, x); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return z.norm(); - /* } */ case 2: - k = karatsubaLen(n, karatsubaSqrThreshold); - x0 = $subslice(x, 0, k); - z = z.make(max($imul(6, k), $imul(2, n))); - $r = karatsubaSqr(z, x0); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - z = $subslice(z, 0, ($imul(2, n))); - $subslice(z, ($imul(2, k))).clear(); - /* */ if (k < n) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (k < n) { */ case 5: - _r = getNat($imul(2, k)); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - tp = _r; - t = tp.$get(); - x0$1 = x0.norm(); - x1 = $subslice(x, k); - _r$1 = t.mul(x0$1, x1); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - t = _r$1; - $r = addAt(z, t, k); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = addAt(z, t, k); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$2 = t.sqr(x1); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - t = _r$2; - $r = addAt(z, t, $imul(2, k)); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - putNat(tp); - /* } */ case 6: - $s = -1; return z.norm(); - /* */ } return; } var $f = {$blk: sqr, $c: true, $r, _r, _r$1, _r$2, _tuple, d, k, n, t, tp, x, x0, x0$1, x1, z, $s};return $f; - }; - $ptrType(nat).prototype.sqr = function(...$args) { return this.$get().sqr(...$args); }; - nat.prototype.mulRange = function mulRange(a, b) { - var {$24r, $24r$1, _arg, _arg$1, _r, _r$1, _r$2, _r$3, a, b, m, x, z, $s, $r, $c} = $restore(this, {a, b}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - /* */ if ((a.$high === 0 && a.$low === 0)) { $s = 2; continue; } - /* */ if ((a.$high > b.$high || (a.$high === b.$high && a.$low > b.$low))) { $s = 3; continue; } - /* */ if ((a.$high === b.$high && a.$low === b.$low)) { $s = 4; continue; } - /* */ if ((x = new $Uint64(a.$high + 0, a.$low + 1), (x.$high === b.$high && x.$low === b.$low))) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if ((a.$high === 0 && a.$low === 0)) { */ case 2: - $s = -1; return z.setUint64(new $Uint64(0, 0)); - /* } else if ((a.$high > b.$high || (a.$high === b.$high && a.$low > b.$low))) { */ case 3: - $s = -1; return z.setUint64(new $Uint64(0, 1)); - /* } else if ((a.$high === b.$high && a.$low === b.$low)) { */ case 4: - $s = -1; return z.setUint64(a); - /* } else if ((x = new $Uint64(a.$high + 0, a.$low + 1), (x.$high === b.$high && x.$low === b.$low))) { */ case 5: - _r = z.mul((nat.nil).setUint64(a), (nat.nil).setUint64(b)); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 8; case 8: return $24r; - /* } */ case 6: - case 1: - m = $div64((new $Uint64(a.$high + b.$high, a.$low + b.$low)), new $Uint64(0, 2), false); - _r$1 = (nat.nil).mulRange(a, m); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _arg = _r$1; - _r$2 = (nat.nil).mulRange(new $Uint64(m.$high + 0, m.$low + 1), b); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _arg$1 = _r$2; - _r$3 = z.mul(_arg, _arg$1); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r$1 = _r$3; - $s = 12; case 12: return $24r$1; - /* */ } return; } var $f = {$blk: mulRange, $c: true, $r, $24r, $24r$1, _arg, _arg$1, _r, _r$1, _r$2, _r$3, a, b, m, x, z, $s};return $f; - }; - $ptrType(nat).prototype.mulRange = function(...$args) { return this.$get().mulRange(...$args); }; - getNat = function getNat$1(n) { - var {_r, n, v, x, z, $s, $r, $c} = $restore(this, {n}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = ptrType$3.nil; - _r = natPool.Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - v = _r; - if (!($interfaceIsEqual(v, $ifaceNil))) { - z = $assertType(v, ptrType$3); - } - if (z === ptrType$3.nil) { - z = $newDataPointer(nat.nil, ptrType$3); - } - z.$set(z.make(n)); - if (n > 0) { - (x = z.$get(), (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0] = 1043915)); - } - $s = -1; return z; - /* */ } return; } var $f = {$blk: getNat$1, $c: true, $r, _r, n, v, x, z, $s};return $f; - }; - putNat = function putNat$1(x) { - var x; - natPool.Put(x); - }; - nat.prototype.bitLen = function bitLen() { - var i, top, x; - x = this; - i = x.$length - 1 >> 0; - if (i >= 0) { - top = ((((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) >>> 0)); - top = (top | ((top >>> 1 >>> 0))) >>> 0; - top = (top | ((top >>> 2 >>> 0))) >>> 0; - top = (top | ((top >>> 4 >>> 0))) >>> 0; - top = (top | ((top >>> 8 >>> 0))) >>> 0; - top = (top | ((top >>> 16 >>> 0))) >>> 0; - top = (top | (((top >>> 16 >>> 0) >>> 16 >>> 0))) >>> 0; - return ($imul(i, 32)) + bits.Len(top) >> 0; - } - return 0; - }; - $ptrType(nat).prototype.bitLen = function(...$args) { return this.$get().bitLen(...$args); }; - nat.prototype.trailingZeroBits = function trailingZeroBits() { - var i, x; - x = this; - if (x.$length === 0) { - return 0; - } - i = 0; - while (true) { - if (!(((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) === 0)) { break; } - i = i + (1) >>> 0; - } - return ($imul(i, 32) >>> 0) + ((bits.TrailingZeros(((((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) >>> 0))) >>> 0)) >>> 0; - }; - $ptrType(nat).prototype.trailingZeroBits = function(...$args) { return this.$get().trailingZeroBits(...$args); }; - nat.prototype.isPow2 = function isPow2() { - var i, x; - x = this; - i = 0; - while (true) { - if (!(((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) === 0)) { break; } - i = i + (1) >>> 0; - } - if ((i === (((x.$length >>> 0)) - 1 >>> 0)) && (((((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) & ((((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) - 1 >>> 0))) >>> 0) === 0)) { - return [($imul(i, 32) >>> 0) + ((bits.TrailingZeros(((((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) >>> 0))) >>> 0)) >>> 0, true]; - } - return [0, false]; - }; - $ptrType(nat).prototype.isPow2 = function(...$args) { return this.$get().isPow2(...$args); }; - same = function same$1(x, y) { - var x, y; - return (x.$length === y.$length) && x.$length > 0 && $indexPtr(x.$array, x.$offset + 0, ptrType$4) === $indexPtr(y.$array, y.$offset + 0, ptrType$4); - }; - nat.prototype.shl = function shl(x, s) { - var _q, _r, m, n, s, x, z; - z = this; - if (s === 0) { - if (same(z, x)) { - return z; - } - if (!alias(z, x)) { - return z.set(x); - } - } - m = x.$length; - if (m === 0) { - return $subslice(z, 0, 0); - } - n = m + (((_q = s / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")) >> 0)) >> 0; - z = z.make(n + 1 >> 0); - ((n < 0 || n >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + n] = shlVU($convertSliceType($subslice(z, (n - m >> 0), n), sliceType$2), $convertSliceType(x, sliceType$2), (_r = s % 32, _r === _r ? _r : $throwRuntimeError("integer divide by zero")))); - $subslice(z, 0, (n - m >> 0)).clear(); - return z.norm(); - }; - $ptrType(nat).prototype.shl = function(...$args) { return this.$get().shl(...$args); }; - nat.prototype.shr = function shr$1(x, s) { - var _q, _r, m, n, s, x, z; - z = this; - if (s === 0) { - if (same(z, x)) { - return z; - } - if (!alias(z, x)) { - return z.set(x); - } - } - m = x.$length; - n = m - (((_q = s / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")) >> 0)) >> 0; - if (n <= 0) { - return $subslice(z, 0, 0); - } - z = z.make(n); - shrVU($convertSliceType(z, sliceType$2), $convertSliceType($subslice(x, (m - n >> 0)), sliceType$2), (_r = s % 32, _r === _r ? _r : $throwRuntimeError("integer divide by zero"))); - return z.norm(); - }; - $ptrType(nat).prototype.shr = function(...$args) { return this.$get().shr(...$args); }; - nat.prototype.setBit = function setBit(x, i, b) { - var _1, _q, _r, b, i, j, m, n, x, y, z; - z = this; - j = (((_q = i / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")) >> 0)); - m = (y = ((_r = i % 32, _r === _r ? _r : $throwRuntimeError("integer divide by zero"))), y < 32 ? (1 << y) : 0) >>> 0; - n = x.$length; - _1 = b; - if (_1 === (0)) { - z = z.make(n); - $copySlice(z, x); - if (j >= n) { - return z; - } - ((j < 0 || j >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + j] = ((((j < 0 || j >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + j]) & ~(m)) >>> 0)); - return z.norm(); - } else if (_1 === (1)) { - if (j >= n) { - z = z.make(j + 1 >> 0); - $subslice(z, n).clear(); - } else { - z = z.make(n); - } - $copySlice(z, x); - ((j < 0 || j >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + j] = ((((j < 0 || j >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + j]) | (m)) >>> 0)); - return z; - } - $panic(new $String("set bit is not 0 or 1")); - }; - $ptrType(nat).prototype.setBit = function(...$args) { return this.$get().setBit(...$args); }; - nat.prototype.bit = function bit(i) { - var _q, _r, i, j, x, y; - x = this; - j = (_q = i / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); - if (j >= ((x.$length >>> 0))) { - return 0; - } - return ((((((y = ((_r = i % 32, _r === _r ? _r : $throwRuntimeError("integer divide by zero"))), y < 32 ? (((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + j]) >>> y) : 0) >>> 0) & 1) >>> 0) >>> 0)); - }; - $ptrType(nat).prototype.bit = function(...$args) { return this.$get().bit(...$args); }; - nat.prototype.sticky = function sticky(i) { - var _i, _q, _r, _ref, i, j, x, x$1, y; - x = this; - j = (_q = i / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); - if (j >= ((x.$length >>> 0))) { - if (x.$length === 0) { - return 0; - } - return 1; - } - _ref = $subslice(x, 0, j); - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - x$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (!((x$1 === 0))) { - return 1; - } - _i++; - } - if (!((((y = ((32 - (_r = i % 32, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) >>> 0)), y < 32 ? (((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + j]) << y) : 0) >>> 0) === 0))) { - return 1; - } - return 0; - }; - $ptrType(nat).prototype.sticky = function(...$args) { return this.$get().sticky(...$args); }; - nat.prototype.and = function and(x, y) { - var i, m, n, x, y, z; - z = this; - m = x.$length; - n = y.$length; - if (m > n) { - m = n; - } - z = z.make(m); - i = 0; - while (true) { - if (!(i < m)) { break; } - ((i < 0 || i >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + i] = ((((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) & ((i < 0 || i >= y.$length) ? ($throwRuntimeError("index out of range"), undefined) : y.$array[y.$offset + i])) >>> 0)); - i = i + (1) >> 0; - } - return z.norm(); - }; - $ptrType(nat).prototype.and = function(...$args) { return this.$get().and(...$args); }; - nat.prototype.trunc = function trunc(x, n) { - var _index, _q, _r, _r$1, n, w, x, y, z; - z = this; - w = (_q = (((n + 32 >>> 0) - 1 >>> 0)) / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); - if (((x.$length >>> 0)) < w) { - return z.set(x); - } - z = z.make(((w >> 0))); - $copySlice(z, x); - if (!(((_r = n % 32, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) === 0))) { - _index = z.$length - 1 >> 0; - ((_index < 0 || _index >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + _index] = ((((_index < 0 || _index >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + _index]) & ((((y = ((_r$1 = n % 32, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero"))), y < 32 ? (1 << y) : 0) >>> 0) - 1 >>> 0))) >>> 0)); - } - return z.norm(); - }; - $ptrType(nat).prototype.trunc = function(...$args) { return this.$get().trunc(...$args); }; - nat.prototype.andNot = function andNot(x, y) { - var i, m, n, x, y, z; - z = this; - m = x.$length; - n = y.$length; - if (n > m) { - n = m; - } - z = z.make(m); - i = 0; - while (true) { - if (!(i < n)) { break; } - ((i < 0 || i >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + i] = ((((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) & ~((i < 0 || i >= y.$length) ? ($throwRuntimeError("index out of range"), undefined) : y.$array[y.$offset + i])) >>> 0)); - i = i + (1) >> 0; - } - $copySlice($subslice(z, n, m), $subslice(x, n, m)); - return z.norm(); - }; - $ptrType(nat).prototype.andNot = function(...$args) { return this.$get().andNot(...$args); }; - nat.prototype.or = function or(x, y) { - var _tmp, _tmp$1, i, m, n, s, x, y, z; - z = this; - m = x.$length; - n = y.$length; - s = x; - if (m < n) { - _tmp = m; - _tmp$1 = n; - n = _tmp; - m = _tmp$1; - s = y; - } - z = z.make(m); - i = 0; - while (true) { - if (!(i < n)) { break; } - ((i < 0 || i >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + i] = ((((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) | ((i < 0 || i >= y.$length) ? ($throwRuntimeError("index out of range"), undefined) : y.$array[y.$offset + i])) >>> 0)); - i = i + (1) >> 0; - } - $copySlice($subslice(z, n, m), $subslice(s, n, m)); - return z.norm(); - }; - $ptrType(nat).prototype.or = function(...$args) { return this.$get().or(...$args); }; - nat.prototype.xor = function xor(x, y) { - var _tmp, _tmp$1, i, m, n, s, x, y, z; - z = this; - m = x.$length; - n = y.$length; - s = x; - if (m < n) { - _tmp = m; - _tmp$1 = n; - n = _tmp; - m = _tmp$1; - s = y; - } - z = z.make(m); - i = 0; - while (true) { - if (!(i < n)) { break; } - ((i < 0 || i >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + i] = ((((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) ^ ((i < 0 || i >= y.$length) ? ($throwRuntimeError("index out of range"), undefined) : y.$array[y.$offset + i])) >>> 0)); - i = i + (1) >> 0; - } - $copySlice($subslice(z, n, m), $subslice(s, n, m)); - return z.norm(); - }; - $ptrType(nat).prototype.xor = function(...$args) { return this.$get().xor(...$args); }; - nat.prototype.random = function random(rand$1, limit, n) { - var {_1, _i, _i$1, _index, _r, _r$1, _r$2, _ref, _ref$1, bitLengthOfMSW, i, i$1, limit, mask, n, rand$1, y, z, $s, $r, $c} = $restore(this, {rand$1, limit, n}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - if (alias(z, limit)) { - z = nat.nil; - } - z = z.make(limit.$length); - bitLengthOfMSW = (((_r = n % 32, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) >>> 0)); - if (bitLengthOfMSW === 0) { - bitLengthOfMSW = 32; - } - mask = (((((y = bitLengthOfMSW, y < 32 ? (1 << y) : 0) >>> 0)) - 1 >>> 0)); - /* while (true) { */ case 1: - _1 = 32; - /* */ if (_1 === (32)) { $s = 4; continue; } - /* */ if (_1 === (64)) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (_1 === (32)) { */ case 4: - _ref = z; - _i = 0; - /* while (true) { */ case 8: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 9; continue; } - i = _i; - _r$1 = rand$1.Uint32(); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - ((i < 0 || i >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + i] = ((_r$1 >>> 0))); - _i++; - $s = 8; continue; - case 9: - $s = 7; continue; - /* } else if (_1 === (64)) { */ case 5: - _ref$1 = z; - _i$1 = 0; - /* while (true) { */ case 11: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 12; continue; } - i$1 = _i$1; - _r$2 = rand$1.Uint32(); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - ((i$1 < 0 || i$1 >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + i$1] = ((((_r$2 >>> 0)) | 0) >>> 0)); - _i$1++; - $s = 11; continue; - case 12: - $s = 7; continue; - /* } else { */ case 6: - $panic(new $String("unknown word size")); - /* } */ case 7: - case 3: - _index = limit.$length - 1 >> 0; - ((_index < 0 || _index >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + _index] = ((((_index < 0 || _index >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + _index]) & (mask)) >>> 0)); - if (z.cmp(limit) < 0) { - /* break; */ $s = 2; continue; - } - $s = 1; continue; - case 2: - $s = -1; return z.norm(); - /* */ } return; } var $f = {$blk: random, $c: true, $r, _1, _i, _i$1, _index, _r, _r$1, _r$2, _ref, _ref$1, bitLengthOfMSW, i, i$1, limit, mask, n, rand$1, y, z, $s};return $f; - }; - $ptrType(nat).prototype.random = function(...$args) { return this.$get().random(...$args); }; - nat.prototype.expNN = function expNN(x, y, m, slow) { - var {$24r, $24r$1, $24r$2, $24r$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, i, j, j$1, logM, m, ok, q, r, shift, slow, v, w, x, x$1, y, y$1, y$2, y$3, z, zz, $s, $r, $c} = $restore(this, {x, y, m, slow}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - if (alias(z, x) || alias(z, y)) { - z = nat.nil; - } - if ((m.$length === 1) && ((0 >= m.$length ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + 0]) === 1)) { - $s = -1; return z.setWord(0); - } - if (y.$length === 0) { - $s = -1; return z.setWord(1); - } - if (x.$length === 0) { - $s = -1; return z.setWord(0); - } - if ((x.$length === 1) && ((0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]) === 1)) { - $s = -1; return z.setWord(1); - } - /* */ if ((y.$length === 1) && ((0 >= y.$length ? ($throwRuntimeError("index out of range"), undefined) : y.$array[y.$offset + 0]) === 1)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if ((y.$length === 1) && ((0 >= y.$length ? ($throwRuntimeError("index out of range"), undefined) : y.$array[y.$offset + 0]) === 1)) { */ case 1: - /* */ if (!((m.$length === 0))) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!((m.$length === 0))) { */ case 3: - _r = z.rem(x, m); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 6; case 6: return $24r; - /* } */ case 4: - $s = -1; return z.set(x); - /* } */ case 2: - /* */ if (!((m.$length === 0))) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (!((m.$length === 0))) { */ case 7: - z = z.make(m.$length); - /* */ if (y.$length > 1 && !slow) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (y.$length > 1 && !slow) { */ case 9: - /* */ if ((((0 >= m.$length ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + 0]) & 1) >>> 0) === 1) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if ((((0 >= m.$length ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + 0]) & 1) >>> 0) === 1) { */ case 11: - _r$1 = z.expNNMontgomery(x, y, m); /* */ $s = 13; case 13: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r$1 = _r$1; - $s = 14; case 14: return $24r$1; - /* } */ case 12: - _tuple = m.isPow2(); - logM = _tuple[0]; - ok = _tuple[1]; - /* */ if (ok) { $s = 15; continue; } - /* */ $s = 16; continue; - /* if (ok) { */ case 15: - _r$2 = z.expNNWindowed(x, y, logM); /* */ $s = 17; case 17: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r$2 = _r$2; - $s = 18; case 18: return $24r$2; - /* } */ case 16: - _r$3 = z.expNNMontgomeryEven(x, y, m); /* */ $s = 19; case 19: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r$3 = _r$3; - $s = 20; case 20: return $24r$3; - /* } */ case 10: - /* } */ case 8: - z = z.set(x); - v = (x$1 = y.$length - 1 >> 0, ((x$1 < 0 || x$1 >= y.$length) ? ($throwRuntimeError("index out of range"), undefined) : y.$array[y.$offset + x$1])); - shift = nlz(v) + 1 >>> 0; - v = (y$1 = (shift), y$1 < 32 ? (v << y$1) : 0) >>> 0; - q = nat.nil; - w = 32 - ((shift >> 0)) >> 0; - _tmp = nat.nil; - _tmp$1 = nat.nil; - zz = _tmp; - r = _tmp$1; - j = 0; - /* while (true) { */ case 21: - /* if (!(j < w)) { break; } */ if(!(j < w)) { $s = 22; continue; } - _r$4 = zz.sqr(z); /* */ $s = 23; case 23: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - zz = _r$4; - _tmp$2 = z; - _tmp$3 = zz; - zz = _tmp$2; - z = _tmp$3; - /* */ if (!((((v & 2147483648) >>> 0) === 0))) { $s = 24; continue; } - /* */ $s = 25; continue; - /* if (!((((v & 2147483648) >>> 0) === 0))) { */ case 24: - _r$5 = zz.mul(z, x); /* */ $s = 26; case 26: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - zz = _r$5; - _tmp$4 = z; - _tmp$5 = zz; - zz = _tmp$4; - z = _tmp$5; - /* } */ case 25: - /* */ if (!((m.$length === 0))) { $s = 27; continue; } - /* */ $s = 28; continue; - /* if (!((m.$length === 0))) { */ case 27: - _r$6 = zz.div(r, z, m); /* */ $s = 29; case 29: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _tuple$1 = _r$6; - zz = _tuple$1[0]; - r = _tuple$1[1]; - _tmp$6 = q; - _tmp$7 = z; - _tmp$8 = zz; - _tmp$9 = r; - zz = _tmp$6; - r = _tmp$7; - q = _tmp$8; - z = _tmp$9; - /* } */ case 28: - v = (y$2 = (1), y$2 < 32 ? (v << y$2) : 0) >>> 0; - j = j + (1) >> 0; - $s = 21; continue; - case 22: - i = y.$length - 2 >> 0; - /* while (true) { */ case 30: - /* if (!(i >= 0)) { break; } */ if(!(i >= 0)) { $s = 31; continue; } - v = ((i < 0 || i >= y.$length) ? ($throwRuntimeError("index out of range"), undefined) : y.$array[y.$offset + i]); - j$1 = 0; - /* while (true) { */ case 32: - /* if (!(j$1 < 32)) { break; } */ if(!(j$1 < 32)) { $s = 33; continue; } - _r$7 = zz.sqr(z); /* */ $s = 34; case 34: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - zz = _r$7; - _tmp$10 = z; - _tmp$11 = zz; - zz = _tmp$10; - z = _tmp$11; - /* */ if (!((((v & 2147483648) >>> 0) === 0))) { $s = 35; continue; } - /* */ $s = 36; continue; - /* if (!((((v & 2147483648) >>> 0) === 0))) { */ case 35: - _r$8 = zz.mul(z, x); /* */ $s = 37; case 37: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - zz = _r$8; - _tmp$12 = z; - _tmp$13 = zz; - zz = _tmp$12; - z = _tmp$13; - /* } */ case 36: - /* */ if (!((m.$length === 0))) { $s = 38; continue; } - /* */ $s = 39; continue; - /* if (!((m.$length === 0))) { */ case 38: - _r$9 = zz.div(r, z, m); /* */ $s = 40; case 40: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _tuple$2 = _r$9; - zz = _tuple$2[0]; - r = _tuple$2[1]; - _tmp$14 = q; - _tmp$15 = z; - _tmp$16 = zz; - _tmp$17 = r; - zz = _tmp$14; - r = _tmp$15; - q = _tmp$16; - z = _tmp$17; - /* } */ case 39: - v = (y$3 = (1), y$3 < 32 ? (v << y$3) : 0) >>> 0; - j$1 = j$1 + (1) >> 0; - $s = 32; continue; - case 33: - i = i - (1) >> 0; - $s = 30; continue; - case 31: - $s = -1; return z.norm(); - /* */ } return; } var $f = {$blk: expNN, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, i, j, j$1, logM, m, ok, q, r, shift, slow, v, w, x, x$1, y, y$1, y$2, y$3, z, zz, $s};return $f; - }; - $ptrType(nat).prototype.expNN = function(...$args) { return this.$get().expNN(...$args); }; - nat.prototype.expNNMontgomeryEven = function expNNMontgomeryEven(x, y, m) { - var {_arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, m, m1, m2, m2inv, n, x, y, z, z1, z2, $s, $r, $c} = $restore(this, {x, y, m}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - n = m.trailingZeroBits(); - m1 = (nat.nil).shl(natOne, n); - m2 = (nat.nil).shr(m, n); - _r = (nat.nil).expNN(x, y, m1, false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - z1 = _r; - _r$1 = (nat.nil).expNN(x, y, m2, false); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - z2 = _r$1; - z = z.set(z2); - _r$2 = z1.subMod2N(z1, z2, n); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - z1 = _r$2; - _r$3 = (nat.nil).modInverse(m2, m1); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - m2inv = _r$3; - _r$4 = z2.mul(z1, m2inv); /* */ $s = 5; case 5: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - z2 = _r$4; - z2 = z2.trunc(z2, n); - _arg = z; - _r$5 = z1.mul(z2, m2); /* */ $s = 6; case 6: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _arg$1 = _r$5; - _r$6 = z.add(_arg, _arg$1); /* */ $s = 7; case 7: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - z = _r$6; - $s = -1; return z; - /* */ } return; } var $f = {$blk: expNNMontgomeryEven, $c: true, $r, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, m, m1, m2, m2inv, n, x, y, z, z1, z2, $s};return $f; - }; - $ptrType(nat).prototype.expNNMontgomeryEven = function(...$args) { return this.$get().expNNMontgomeryEven(...$args); }; - nat.prototype.expNNWindowed = function expNNWindowed(x, y, logM) { - var {_i, _i$1, _q, _q$1, _q$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _ref$1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, advance, i, i$1, i$2, i$3, j, logM, mbits, mmask, mtop, p, p1, p2, powers, w, x, x$1, x$2, x$3, y, y$1, y$2, yi, z, zz, zzp, $s, $r, $c} = $restore(this, {x, y, logM}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - if (y.$length <= 1) { - $panic(new $String("big: misuse of expNNWindowed")); - } - if ((((0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]) & 1) >>> 0) === 0) { - $s = -1; return z.setWord(0); - } - if (logM === 1) { - $s = -1; return z.setWord(1); - } - w = (((_q = (((logM + 32 >>> 0) - 1 >>> 0)) / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")) >> 0)); - _r = getNat(w); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - zzp = _r; - zz = zzp.$get(); - powers = arrayType$1.zero(); - _ref = powers; - _i = 0; - /* while (true) { */ case 2: - /* if (!(_i < 16)) { break; } */ if(!(_i < 16)) { $s = 3; continue; } - i = _i; - _r$1 = getNat(w); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - ((i < 0 || i >= powers.length) ? ($throwRuntimeError("index out of range"), undefined) : powers[i] = _r$1); - _i++; - $s = 2; continue; - case 3: - powers[0].$set(powers[0].set(natOne)); - powers[1].$set(powers[1].trunc(x, logM)); - i$1 = 2; - /* while (true) { */ case 5: - /* if (!(i$1 < 16)) { break; } */ if(!(i$1 < 16)) { $s = 6; continue; } - _tmp = (x$1 = (_q$1 = i$1 / 2, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")), ((x$1 < 0 || x$1 >= powers.length) ? ($throwRuntimeError("index out of range"), undefined) : powers[x$1])); - _tmp$1 = ((i$1 < 0 || i$1 >= powers.length) ? ($throwRuntimeError("index out of range"), undefined) : powers[i$1]); - _tmp$2 = (x$2 = i$1 + 1 >> 0, ((x$2 < 0 || x$2 >= powers.length) ? ($throwRuntimeError("index out of range"), undefined) : powers[x$2])); - p2 = _tmp; - p = _tmp$1; - p1 = _tmp$2; - _r$2 = p.sqr(p2.$get()); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - p.$set(_r$2); - p.$set(p.trunc(p.$get(), logM)); - _r$3 = p1.mul(p.$get(), x); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - p1.$set(_r$3); - p1.$set(p1.trunc(p1.$get(), logM)); - i$1 = i$1 + (2) >> 0; - $s = 5; continue; - case 6: - i$2 = y.$length - 1 >> 0; - mtop = (((_q$2 = ((logM - 2 >>> 0)) / 32, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >>> 0 : $throwRuntimeError("integer divide by zero")) >> 0)); - mmask = 4294967295; - mbits = (((logM - 1 >>> 0)) & 31) >>> 0; - if (!((mbits === 0))) { - mmask = (((y$1 = mbits, y$1 < 32 ? (1 << y$1) : 0) >>> 0)) - 1 >>> 0; - } - if (i$2 > mtop) { - i$2 = mtop; - } - advance = false; - z = z.setWord(1); - /* while (true) { */ case 9: - /* if (!(i$2 >= 0)) { break; } */ if(!(i$2 >= 0)) { $s = 10; continue; } - yi = ((i$2 < 0 || i$2 >= y.$length) ? ($throwRuntimeError("index out of range"), undefined) : y.$array[y.$offset + i$2]); - if (i$2 === mtop) { - yi = (yi & (mmask)) >>> 0; - } - j = 0; - /* while (true) { */ case 11: - /* if (!(j < 32)) { break; } */ if(!(j < 32)) { $s = 12; continue; } - /* */ if (advance) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (advance) { */ case 13: - _r$4 = zz.sqr(z); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - zz = _r$4; - _tmp$3 = z; - _tmp$4 = zz; - zz = _tmp$3; - z = _tmp$4; - z = z.trunc(z, logM); - _r$5 = zz.sqr(z); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - zz = _r$5; - _tmp$5 = z; - _tmp$6 = zz; - zz = _tmp$5; - z = _tmp$6; - z = z.trunc(z, logM); - _r$6 = zz.sqr(z); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - zz = _r$6; - _tmp$7 = z; - _tmp$8 = zz; - zz = _tmp$7; - z = _tmp$8; - z = z.trunc(z, logM); - _r$7 = zz.sqr(z); /* */ $s = 18; case 18: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - zz = _r$7; - _tmp$9 = z; - _tmp$10 = zz; - zz = _tmp$9; - z = _tmp$10; - z = z.trunc(z, logM); - /* } */ case 14: - _r$8 = zz.mul(z, (x$3 = yi >>> 28 >>> 0, ((x$3 < 0 || x$3 >= powers.length) ? ($throwRuntimeError("index out of range"), undefined) : powers[x$3])).$get()); /* */ $s = 19; case 19: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - zz = _r$8; - _tmp$11 = z; - _tmp$12 = zz; - zz = _tmp$11; - z = _tmp$12; - z = z.trunc(z, logM); - yi = (y$2 = (4), y$2 < 32 ? (yi << y$2) : 0) >>> 0; - advance = true; - j = j + (4) >> 0; - $s = 11; continue; - case 12: - i$2 = i$2 - (1) >> 0; - $s = 9; continue; - case 10: - zzp.$set(zz); - putNat(zzp); - _ref$1 = powers; - _i$1 = 0; - while (true) { - if (!(_i$1 < 16)) { break; } - i$3 = _i$1; - putNat(((i$3 < 0 || i$3 >= powers.length) ? ($throwRuntimeError("index out of range"), undefined) : powers[i$3])); - _i$1++; - } - $s = -1; return z.norm(); - /* */ } return; } var $f = {$blk: expNNWindowed, $c: true, $r, _i, _i$1, _q, _q$1, _q$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _ref$1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, advance, i, i$1, i$2, i$3, j, logM, mbits, mmask, mtop, p, p1, p2, powers, w, x, x$1, x$2, x$3, y, y$1, y$2, yi, z, zz, zzp, $s};return $f; - }; - $ptrType(nat).prototype.expNNWindowed = function(...$args) { return this.$get().expNNWindowed(...$args); }; - nat.prototype.expNNMontgomery = function expNNMontgomery(x, y, m) { - var {RR, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, i, i$1, i$2, j, k0, m, numWords, one, powers, rr, t, x, x$1, x$2, y, y$1, y$2, yi, z, zz, $s, $r, $c} = $restore(this, {x, y, m}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - numWords = m.$length; - /* */ if (x.$length > numWords) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (x.$length > numWords) { */ case 1: - _r = (nat.nil).div(nat.nil, x, m); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - x = _tuple[1]; - /* } */ case 2: - if (x.$length < numWords) { - rr = $makeSlice(nat, numWords); - $copySlice(rr, x); - x = rr; - } - k0 = 2 - (0 >= m.$length ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + 0]) >>> 0; - t = (0 >= m.$length ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + 0]) - 1 >>> 0; - i = 1; - while (true) { - if (!(i < 32)) { break; } - t = $imul(t, (t)) >>> 0; - k0 = $imul(k0, (((t + 1 >>> 0)))) >>> 0; - i = (y$1 = (1), y$1 < 32 ? (i << y$1) : 0) >> 0; - } - k0 = -k0 >>> 0; - RR = (nat.nil).setWord(1); - zz = (nat.nil).shl(RR, ((($imul(($imul(2, numWords)), 32)) >>> 0))); - _r$1 = (nat.nil).div(RR, zz, m); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$1 = _r$1; - RR = _tuple$1[1]; - if (RR.$length < numWords) { - zz = zz.make(numWords); - $copySlice(zz, RR); - RR = zz; - } - one = $makeSlice(nat, numWords); - (0 >= one.$length ? ($throwRuntimeError("index out of range"), undefined) : one.$array[one.$offset + 0] = 1); - powers = arrayType$2.zero(); - powers[0] = powers[0].montgomery(one, RR, m, k0, numWords); - powers[1] = powers[1].montgomery(x, RR, m, k0, numWords); - i$1 = 2; - while (true) { - if (!(i$1 < 16)) { break; } - ((i$1 < 0 || i$1 >= powers.length) ? ($throwRuntimeError("index out of range"), undefined) : powers[i$1] = ((i$1 < 0 || i$1 >= powers.length) ? ($throwRuntimeError("index out of range"), undefined) : powers[i$1]).montgomery((x$1 = i$1 - 1 >> 0, ((x$1 < 0 || x$1 >= powers.length) ? ($throwRuntimeError("index out of range"), undefined) : powers[x$1])), powers[1], m, k0, numWords)); - i$1 = i$1 + (1) >> 0; - } - z = z.make(numWords); - $copySlice(z, powers[0]); - zz = zz.make(numWords); - i$2 = y.$length - 1 >> 0; - while (true) { - if (!(i$2 >= 0)) { break; } - yi = ((i$2 < 0 || i$2 >= y.$length) ? ($throwRuntimeError("index out of range"), undefined) : y.$array[y.$offset + i$2]); - j = 0; - while (true) { - if (!(j < 32)) { break; } - if (!((i$2 === (y.$length - 1 >> 0))) || !((j === 0))) { - zz = zz.montgomery(z, z, m, k0, numWords); - z = z.montgomery(zz, zz, m, k0, numWords); - zz = zz.montgomery(z, z, m, k0, numWords); - z = z.montgomery(zz, zz, m, k0, numWords); - } - zz = zz.montgomery(z, (x$2 = yi >>> 28 >>> 0, ((x$2 < 0 || x$2 >= powers.length) ? ($throwRuntimeError("index out of range"), undefined) : powers[x$2])), m, k0, numWords); - _tmp = zz; - _tmp$1 = z; - z = _tmp; - zz = _tmp$1; - yi = (y$2 = (4), y$2 < 32 ? (yi << y$2) : 0) >>> 0; - j = j + (4) >> 0; - } - i$2 = i$2 - (1) >> 0; - } - zz = zz.montgomery(z, one, m, k0, numWords); - /* */ if (zz.cmp(m) >= 0) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (zz.cmp(m) >= 0) { */ case 5: - _r$2 = zz.sub(zz, m); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - zz = _r$2; - /* */ if (zz.cmp(m) >= 0) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (zz.cmp(m) >= 0) { */ case 8: - _r$3 = (nat.nil).div(nat.nil, zz, m); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple$2 = _r$3; - zz = _tuple$2[1]; - /* } */ case 9: - /* } */ case 6: - $s = -1; return zz.norm(); - /* */ } return; } var $f = {$blk: expNNMontgomery, $c: true, $r, RR, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, i, i$1, i$2, j, k0, m, numWords, one, powers, rr, t, x, x$1, x$2, y, y$1, y$2, yi, z, zz, $s};return $f; - }; - $ptrType(nat).prototype.expNNMontgomery = function(...$args) { return this.$get().expNNMontgomery(...$args); }; - nat.prototype.bytes = function bytes$1(buf) { - var _i, _ref, buf, d, i, j, y, z; - i = 0; - z = this; - i = buf.$length; - _ref = z; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - d = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - j = 0; - while (true) { - if (!(j < 4)) { break; } - i = i - (1) >> 0; - if (i >= 0) { - ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = ((d << 24 >>> 24))); - } else if (!((((d << 24 >>> 24)) === 0))) { - $panic(new $String("math/big: buffer too small to fit value")); - } - d = (y = (8), y < 32 ? (d >>> y) : 0) >>> 0; - j = j + (1) >> 0; - } - _i++; - } - if (i < 0) { - i = 0; - } - while (true) { - if (!(i < buf.$length && (((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i]) === 0))) { break; } - i = i + (1) >> 0; - } - return i; - }; - $ptrType(nat).prototype.bytes = function(...$args) { return this.$get().bytes(...$args); }; - bigEndianWord = function bigEndianWord$1(buf) { - var buf; - if (false) { - return (($clone(binary.BigEndian, binary.bigEndian).Uint64(buf).$low >>> 0)); - } - return (($clone(binary.BigEndian, binary.bigEndian).Uint32(buf) >>> 0)); - }; - nat.prototype.setBytes = function setBytes(buf) { - var _q, buf, d, i, k, s, x, x$1, y, z; - z = this; - z = z.make((_q = (((buf.$length + 4 >> 0) - 1 >> 0)) / 4, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))); - i = buf.$length; - k = 0; - while (true) { - if (!(i >= 4)) { break; } - ((k < 0 || k >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + k] = bigEndianWord($subslice(buf, (i - 4 >> 0), i))); - i = i - (4) >> 0; - k = k + (1) >> 0; - } - if (i > 0) { - d = 0; - s = 0; - while (true) { - if (!(i > 0)) { break; } - d = (d | (((y = s, y < 32 ? ((((x = i - 1 >> 0, ((x < 0 || x >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + x])) >>> 0)) << y) : 0) >>> 0))) >>> 0; - i = i - (1) >> 0; - s = s + (8) >>> 0; - } - (x$1 = z.$length - 1 >> 0, ((x$1 < 0 || x$1 >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + x$1] = d)); - } - return z.norm(); - }; - $ptrType(nat).prototype.setBytes = function(...$args) { return this.$get().setBytes(...$args); }; - nat.prototype.sqrt = function sqrt(x) { - var {_q, _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, n, x, z, z1, z2, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - if (x.cmp(natOne) <= 0) { - $s = -1; return z.set(x); - } - if (alias(z, x)) { - z = nat.nil; - } - _tmp = nat.nil; - _tmp$1 = nat.nil; - z1 = _tmp; - z2 = _tmp$1; - z1 = z; - z1 = z1.setUint64(new $Uint64(0, 1)); - z1 = z1.shl(z1, (_q = (((x.bitLen() + 1 >> 0) >>> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero"))); - n = 0; - /* while (true) { */ case 1: - _r = z2.div(nat.nil, x, z1); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - z2 = _tuple[0]; - _r$1 = z2.add(z2, z1); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - z2 = _r$1; - z2 = z2.shr(z2, 1); - if (z2.cmp(z1) >= 0) { - if ((n & 1) === 0) { - $s = -1; return z1; - } - $s = -1; return z.set(z1); - } - _tmp$2 = z2; - _tmp$3 = z1; - z1 = _tmp$2; - z2 = _tmp$3; - n = n + (1) >> 0; - $s = 1; continue; - case 2: - $s = -1; return nat.nil; - /* */ } return; } var $f = {$blk: sqrt, $c: true, $r, _q, _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, n, x, z, z1, z2, $s};return $f; - }; - $ptrType(nat).prototype.sqrt = function(...$args) { return this.$get().sqrt(...$args); }; - nat.prototype.subMod2N = function subMod2N(x, y, n) { - var {$24r, $24r$1, _i, _r, _r$1, _r$2, _ref, i, n, x, y, z, $s, $r, $c} = $restore(this, {x, y, n}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - if (((x.bitLen() >>> 0)) > n) { - if (alias(z, x)) { - x = x.trunc(x, n); - } else { - x = (nat.nil).trunc(x, n); - } - } - if (((y.bitLen() >>> 0)) > n) { - if (alias(z, y)) { - y = y.trunc(y, n); - } else { - y = (nat.nil).trunc(y, n); - } - } - /* */ if (x.cmp(y) >= 0) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (x.cmp(y) >= 0) { */ case 1: - _r = z.sub(x, y); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 4; case 4: return $24r; - /* } */ case 2: - _r$1 = z.sub(y, x); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - z = _r$1; - while (true) { - if (!(($imul(((z.$length >>> 0)), 32) >>> 0) < n)) { break; } - z = $append(z, 0); - } - _ref = z; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - ((i < 0 || i >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + i] = (~((i < 0 || i >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + i]) >>> 0)); - _i++; - } - z = z.trunc(z, n); - _r$2 = z.add(z, natOne); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r$1 = _r$2; - $s = 7; case 7: return $24r$1; - /* */ } return; } var $f = {$blk: subMod2N, $c: true, $r, $24r, $24r$1, _i, _r, _r$1, _r$2, _ref, i, n, x, y, z, $s};return $f; - }; - $ptrType(nat).prototype.subMod2N = function(...$args) { return this.$get().subMod2N(...$args); }; - $ptrType(Int).prototype.GobEncode = function GobEncode$1() { - var b, buf, i, x; - x = this; - if (x === ptrType$2.nil) { - return [sliceType$1.nil, $ifaceNil]; - } - buf = $makeSlice(sliceType$1, (1 + ($imul(x.abs.$length, 4)) >> 0)); - i = x.abs.bytes(buf) - 1 >> 0; - b = 2; - if (x.neg) { - b = (b | (1)) >>> 0; - } - ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = b); - return [$subslice(buf, i), $ifaceNil]; - }; - $ptrType(Int).prototype.GobDecode = function GobDecode$1(buf) { - var {$24r, _r, b, buf, z, $s, $r, $c} = $restore(this, {buf}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - if (buf.$length === 0) { - Int.copy(z, new Int.ptr(false, nat.nil)); - $s = -1; return $ifaceNil; - } - b = (0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]); - /* */ if (!(((b >>> 1 << 24 >>> 24) === 1))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(((b >>> 1 << 24 >>> 24) === 1))) { */ case 1: - _r = fmt.Errorf("Int.GobDecode: encoding version %d not supported", new sliceType([new $Uint8((b >>> 1 << 24 >>> 24))])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 4; case 4: return $24r; - /* } */ case 2: - z.neg = !((((b & 1) >>> 0) === 0)); - z.abs = z.abs.setBytes($subslice(buf, 1)); - $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: GobDecode$1, $c: true, $r, $24r, _r, b, buf, z, $s};return $f; - }; - $ptrType(Int).prototype.MarshalText = function MarshalText$1() { - var {$24r, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, err, text, x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - text = sliceType$1.nil; - err = $ifaceNil; - x = this; - if (x === ptrType$2.nil) { - _tmp = (new sliceType$1($stringToBytes(""))); - _tmp$1 = $ifaceNil; - text = _tmp; - err = _tmp$1; - $s = -1; return [text, err]; - } - _r = x.abs.itoa(x.neg, 10); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tmp$2 = _r; - _tmp$3 = $ifaceNil; - text = _tmp$2; - err = _tmp$3; - $24r = [text, err]; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: MarshalText$1, $c: true, $r, $24r, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, err, text, x, $s};return $f; - }; - $ptrType(Int).prototype.UnmarshalText = function UnmarshalText$1(text) { - var {$24r, _r, _r$1, _tuple, ok, text, z, $s, $r, $c} = $restore(this, {text}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - _r = z.setFromScanner(bytes.NewReader(text), 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - ok = _tuple[1]; - /* */ if (!ok) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!ok) { */ case 2: - _r$1 = fmt.Errorf("math/big: cannot unmarshal %q into a *big.Int", new sliceType([text])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 5; case 5: return $24r; - /* } */ case 3: - $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: UnmarshalText$1, $c: true, $r, $24r, _r, _r$1, _tuple, ok, text, z, $s};return $f; - }; - $ptrType(Int).prototype.MarshalJSON = function MarshalJSON() { - var {$24r, _r, x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - if (x === ptrType$2.nil) { - $s = -1; return [(new sliceType$1($stringToBytes("null"))), $ifaceNil]; - } - _r = x.abs.itoa(x.neg, 10); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = [_r, $ifaceNil]; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: MarshalJSON, $c: true, $r, $24r, _r, x, $s};return $f; - }; - $ptrType(Int).prototype.UnmarshalJSON = function UnmarshalJSON(text) { - var {$24r, _r, text, z, $s, $r, $c} = $restore(this, {text}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - if (($bytesToString(text)) === "null") { - $s = -1; return $ifaceNil; - } - _r = z.UnmarshalText(text); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: UnmarshalJSON, $c: true, $r, $24r, _r, text, z, $s};return $f; - }; - $ptrType(Int).prototype.Text = function Text(base) { - var {$24r, _r, base, x, $s, $r, $c} = $restore(this, {base}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - if (x === ptrType$2.nil) { - $s = -1; return ""; - } - _r = x.abs.itoa(x.neg, base); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = ($bytesToString(_r)); - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Text, $c: true, $r, $24r, _r, base, x, $s};return $f; - }; - $ptrType(Int).prototype.Append = function Append(buf, base) { - var {$24r, _arg, _arg$1, _r, base, buf, x, $s, $r, $c} = $restore(this, {buf, base}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - if (x === ptrType$2.nil) { - $s = -1; return $appendSlice(buf, ""); - } - _arg = buf; - _r = x.abs.itoa(x.neg, base); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _arg$1 = _r; - $24r = $appendSlice(_arg, _arg$1); - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Append, $c: true, $r, $24r, _arg, _arg$1, _r, base, buf, x, $s};return $f; - }; - $ptrType(Int).prototype.String = function String$3() { - var {$24r, _r, x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - _r = x.Text(10); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$3, $c: true, $r, $24r, _r, x, $s};return $f; - }; - writeMultiple = function writeMultiple$1(s, text, count) { - var {_r, b, count, s, text, $s, $r, $c} = $restore(this, {s, text, count}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - /* */ if (text.length > 0) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (text.length > 0) { */ case 1: - b = (new sliceType$1($stringToBytes(text))); - /* while (true) { */ case 3: - /* if (!(count > 0)) { break; } */ if(!(count > 0)) { $s = 4; continue; } - _r = s.Write(b); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r; - count = count - (1) >> 0; - $s = 3; continue; - case 4: - /* } */ case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: writeMultiple$1, $c: true, $r, _r, b, count, s, text, $s};return $f; - }; - $ptrType(Int).prototype.Format = function Format(s, ch) { - var {_1, _2, _arg, _arg$1, _arg$2, _i, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _tuple$1, base, ch, d, d$1, digits, i, left, length, precision, precisionSet, prefix, right, s, sign, width, widthSet, x, zeros, $s, $r, $c} = $restore(this, {s, ch}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - base = 0; - _1 = ch; - /* */ if (_1 === (98)) { $s = 2; continue; } - /* */ if ((_1 === (111)) || (_1 === (79))) { $s = 3; continue; } - /* */ if ((_1 === (100)) || (_1 === (115)) || (_1 === (118))) { $s = 4; continue; } - /* */ if ((_1 === (120)) || (_1 === (88))) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (_1 === (98)) { */ case 2: - base = 2; - $s = 7; continue; - /* } else if ((_1 === (111)) || (_1 === (79))) { */ case 3: - base = 8; - $s = 7; continue; - /* } else if ((_1 === (100)) || (_1 === (115)) || (_1 === (118))) { */ case 4: - base = 10; - $s = 7; continue; - /* } else if ((_1 === (120)) || (_1 === (88))) { */ case 5: - base = 16; - $s = 7; continue; - /* } else { */ case 6: - _arg = s; - _arg$1 = new $Int32(ch); - _r = x.String(); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _arg$2 = new $String(_r); - _r$1 = fmt.Fprintf(_arg, "%%!%c(big.Int=%s)", new sliceType([_arg$1, _arg$2])); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - $s = -1; return; - /* } */ case 7: - case 1: - /* */ if (x === ptrType$2.nil) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (x === ptrType$2.nil) { */ case 10: - _r$2 = fmt.Fprint(s, new sliceType([new $String("")])); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - $s = -1; return; - /* } */ case 11: - sign = ""; - /* */ if (x.neg) { $s = 14; continue; } - _r$3 = s.Flag(43); /* */ $s = 18; case 18: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (_r$3) { $s = 15; continue; } - _r$4 = s.Flag(32); /* */ $s = 19; case 19: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if (_r$4) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (x.neg) { */ case 14: - sign = "-"; - $s = 17; continue; - /* } else if (_r$3) { */ case 15: - sign = "+"; - $s = 17; continue; - /* } else if (_r$4) { */ case 16: - sign = " "; - /* } */ case 17: - case 13: - prefix = ""; - _r$5 = s.Flag(35); /* */ $s = 22; case 22: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* */ if (_r$5) { $s = 20; continue; } - /* */ $s = 21; continue; - /* if (_r$5) { */ case 20: - _2 = ch; - if (_2 === (98)) { - prefix = "0b"; - } else if (_2 === (111)) { - prefix = "0"; - } else if (_2 === (120)) { - prefix = "0x"; - } else if (_2 === (88)) { - prefix = "0X"; - } - /* } */ case 21: - if (ch === 79) { - prefix = "0o"; - } - _r$6 = x.abs.utoa(base); /* */ $s = 23; case 23: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - digits = _r$6; - if (ch === 88) { - _ref = digits; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - d = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (97 <= d && d <= 122) { - ((i < 0 || i >= digits.$length) ? ($throwRuntimeError("index out of range"), undefined) : digits.$array[digits.$offset + i] = (65 + ((d - 97 << 24 >>> 24)) << 24 >>> 24)); - } - _i++; - } - } - left = 0; - zeros = 0; - right = 0; - _r$7 = s.Precision(); /* */ $s = 24; case 24: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _tuple = _r$7; - precision = _tuple[0]; - precisionSet = _tuple[1]; - if (precisionSet) { - if (digits.$length < precision) { - zeros = precision - digits.$length >> 0; - } else if ((digits.$length === 1) && ((0 >= digits.$length ? ($throwRuntimeError("index out of range"), undefined) : digits.$array[digits.$offset + 0]) === 48) && (precision === 0)) { - $s = -1; return; - } - } - length = ((sign.length + prefix.length >> 0) + zeros >> 0) + digits.$length >> 0; - _r$8 = s.Width(); /* */ $s = 25; case 25: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _tuple$1 = _r$8; - width = _tuple$1[0]; - widthSet = _tuple$1[1]; - /* */ if (widthSet && length < width) { $s = 26; continue; } - /* */ $s = 27; continue; - /* if (widthSet && length < width) { */ case 26: - d$1 = width - length >> 0; - _r$9 = s.Flag(45); /* */ $s = 33; case 33: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - /* */ if (_r$9) { $s = 29; continue; } - _r$10 = s.Flag(48); /* */ $s = 34; case 34: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - /* */ if (_r$10 && !precisionSet) { $s = 30; continue; } - /* */ $s = 31; continue; - /* if (_r$9) { */ case 29: - right = d$1; - $s = 32; continue; - /* } else if (_r$10 && !precisionSet) { */ case 30: - zeros = d$1; - $s = 32; continue; - /* } else { */ case 31: - left = d$1; - /* } */ case 32: - case 28: - /* } */ case 27: - $r = writeMultiple(s, " ", left); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = writeMultiple(s, sign, 1); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = writeMultiple(s, prefix, 1); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = writeMultiple(s, "0", zeros); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$11 = s.Write(digits); /* */ $s = 39; case 39: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _r$11; - $r = writeMultiple(s, " ", right); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: Format, $c: true, $r, _1, _2, _arg, _arg$1, _arg$2, _i, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _tuple$1, base, ch, d, d$1, digits, i, left, length, precision, precisionSet, prefix, right, s, sign, width, widthSet, x, zeros, $s};return $f; - }; - $ptrType(Int).prototype.scan = function scan$1(r, base) { - var {_r, _r$1, _tuple, _tuple$1, base, err, neg, r, z, $s, $r, $c} = $restore(this, {r, base}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - _r = scanSign(r); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - neg = _tuple[0]; - err = _tuple[1]; - if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [ptrType$2.nil, 0, err]; - } - _r$1 = z.abs.scan(r, base, false); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$1 = _r$1; - z.abs = _tuple$1[0]; - base = _tuple$1[1]; - err = _tuple$1[3]; - if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [ptrType$2.nil, base, err]; - } - z.neg = z.abs.$length > 0 && neg; - $s = -1; return [z, base, $ifaceNil]; - /* */ } return; } var $f = {$blk: scan$1, $c: true, $r, _r, _r$1, _tuple, _tuple$1, base, err, neg, r, z, $s};return $f; - }; - scanSign = function scanSign$1(r) { - var {_1, _r, _r$1, _tmp, _tmp$1, _tuple, ch, err, neg, r, $s, $r, $c} = $restore(this, {r}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - neg = false; - err = $ifaceNil; - ch = 0; - _r = r.ReadByte(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - ch = _tuple[0]; - err = _tuple[1]; - if (!($interfaceIsEqual(err, $ifaceNil))) { - _tmp = false; - _tmp$1 = err; - neg = _tmp; - err = _tmp$1; - $s = -1; return [neg, err]; - } - _1 = ch; - /* */ if (_1 === (45)) { $s = 3; continue; } - /* */ if (_1 === (43)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_1 === (45)) { */ case 3: - neg = true; - $s = 6; continue; - /* } else if (_1 === (43)) { */ case 4: - $s = 6; continue; - /* } else { */ case 5: - _r$1 = r.UnreadByte(); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - /* } */ case 6: - case 2: - $s = -1; return [neg, err]; - /* */ } return; } var $f = {$blk: scanSign$1, $c: true, $r, _1, _r, _r$1, _tmp, _tmp$1, _tuple, ch, err, neg, r, $s};return $f; - }; - $ptrType(byteReader).prototype.ReadByte = function ReadByte() { - var {_r, _r$1, _tuple, ch, err, r, size, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - r = this; - _r = r.ScanState.ReadRune(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - ch = _tuple[0]; - size = _tuple[1]; - err = _tuple[2]; - /* */ if (!((size === 1)) && $interfaceIsEqual(err, $ifaceNil)) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!((size === 1)) && $interfaceIsEqual(err, $ifaceNil)) { */ case 2: - _r$1 = fmt.Errorf("invalid rune %#U", new sliceType([new $Int32(ch)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - err = _r$1; - /* } */ case 3: - $s = -1; return [((ch << 24 >>> 24)), err]; - /* */ } return; } var $f = {$blk: ReadByte, $c: true, $r, _r, _r$1, _tuple, ch, err, r, size, $s};return $f; - }; - byteReader.prototype.ReadByte = function(...$args) { return this.$val.ReadByte(...$args); }; - $ptrType(byteReader).prototype.UnreadByte = function UnreadByte() { - var {$24r, _r, r, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - r = this; - _r = r.ScanState.UnreadRune(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: UnreadByte, $c: true, $r, $24r, _r, r, $s};return $f; - }; - byteReader.prototype.UnreadByte = function(...$args) { return this.$val.UnreadByte(...$args); }; - $ptrType(Int).prototype.Scan = function Scan$1(s, ch) { - var {_1, _r, _tuple, base, ch, err, s, x, z, $s, $r, $c} = $restore(this, {s, ch}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - $r = s.SkipSpace(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - base = 0; - _1 = ch; - if (_1 === (98)) { - base = 2; - } else if (_1 === (111)) { - base = 8; - } else if (_1 === (100)) { - base = 10; - } else if ((_1 === (120)) || (_1 === (88))) { - base = 16; - } else if ((_1 === (115)) || (_1 === (118))) { - } else { - $s = -1; return errors.New("Int.Scan: invalid verb"); - } - _r = z.scan((x = new byteReader.ptr(s), new x.constructor.elem(x)), base); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - err = _tuple[2]; - $s = -1; return err; - /* */ } return; } var $f = {$blk: Scan$1, $c: true, $r, _1, _r, _tuple, base, ch, err, s, x, z, $s};return $f; - }; - $ptrType(Int).prototype.Sign = function Sign$1() { - var x; - x = this; - if (x.abs.$length === 0) { - return 0; - } - if (x.neg) { - return -1; - } - return 1; - }; - $ptrType(Int).prototype.SetInt64 = function SetInt64$1(x) { - var neg, x, z; - z = this; - neg = false; - if ((x.$high < 0 || (x.$high === 0 && x.$low < 0))) { - neg = true; - x = new $Int64(-x.$high, -x.$low); - } - z.abs = z.abs.setUint64((new $Uint64(x.$high, x.$low))); - z.neg = neg; - return z; - }; - $ptrType(Int).prototype.SetUint64 = function SetUint64$1(x) { - var x, z; - z = this; - z.abs = z.abs.setUint64(x); - z.neg = false; - return z; - }; - NewInt = function NewInt$1(x) { - var abs, u, x, x$1; - u = (new $Uint64(x.$high, x.$low)); - if ((x.$high < 0 || (x.$high === 0 && x.$low < 0))) { - u = new $Uint64(-u.$high, -u.$low); - } - abs = sliceType$2.nil; - if ((x.$high === 0 && x.$low === 0)) { - } else if (true && !((x$1 = $shiftRightUint64(u, 32), (x$1.$high === 0 && x$1.$low === 0)))) { - abs = new sliceType$2([((u.$low >>> 0)), (($shiftRightUint64(u, 32).$low >>> 0))]); - } else { - abs = new sliceType$2([((u.$low >>> 0))]); - } - return new Int.ptr((x.$high < 0 || (x.$high === 0 && x.$low < 0)), $convertSliceType(abs, nat)); - }; - $pkg.NewInt = NewInt; - $ptrType(Int).prototype.Set = function Set$1(x) { - var x, z; - z = this; - if (!(z === x)) { - z.abs = z.abs.set(x.abs); - z.neg = x.neg; - } - return z; - }; - $ptrType(Int).prototype.Bits = function Bits() { - var x; - x = this; - return $convertSliceType(x.abs, sliceType$2); - }; - $ptrType(Int).prototype.SetBits = function SetBits(abs) { - var abs, z; - z = this; - z.abs = ($convertSliceType(abs, nat)).norm(); - z.neg = false; - return z; - }; - $ptrType(Int).prototype.Abs = function Abs$1(x) { - var x, z; - z = this; - z.Set(x); - z.neg = false; - return z; - }; - $ptrType(Int).prototype.Neg = function Neg$1(x) { - var x, z; - z = this; - z.Set(x); - z.neg = z.abs.$length > 0 && !z.neg; - return z; - }; - $ptrType(Int).prototype.Add = function Add$1(x, y) { - var {_r, _r$1, _r$2, neg, x, y, z, $s, $r, $c} = $restore(this, {x, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - neg = x.neg; - /* */ if (x.neg === y.neg) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (x.neg === y.neg) { */ case 1: - _r = z.abs.add(x.abs, y.abs); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - z.abs = _r; - $s = 3; continue; - /* } else { */ case 2: - /* */ if (x.abs.cmp(y.abs) >= 0) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (x.abs.cmp(y.abs) >= 0) { */ case 5: - _r$1 = z.abs.sub(x.abs, y.abs); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - z.abs = _r$1; - $s = 7; continue; - /* } else { */ case 6: - neg = !neg; - _r$2 = z.abs.sub(y.abs, x.abs); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - z.abs = _r$2; - /* } */ case 7: - /* } */ case 3: - z.neg = z.abs.$length > 0 && neg; - $s = -1; return z; - /* */ } return; } var $f = {$blk: Add$1, $c: true, $r, _r, _r$1, _r$2, neg, x, y, z, $s};return $f; - }; - $ptrType(Int).prototype.Sub = function Sub$1(x, y) { - var {_r, _r$1, _r$2, neg, x, y, z, $s, $r, $c} = $restore(this, {x, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - neg = x.neg; - /* */ if (!(x.neg === y.neg)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(x.neg === y.neg)) { */ case 1: - _r = z.abs.add(x.abs, y.abs); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - z.abs = _r; - $s = 3; continue; - /* } else { */ case 2: - /* */ if (x.abs.cmp(y.abs) >= 0) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (x.abs.cmp(y.abs) >= 0) { */ case 5: - _r$1 = z.abs.sub(x.abs, y.abs); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - z.abs = _r$1; - $s = 7; continue; - /* } else { */ case 6: - neg = !neg; - _r$2 = z.abs.sub(y.abs, x.abs); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - z.abs = _r$2; - /* } */ case 7: - /* } */ case 3: - z.neg = z.abs.$length > 0 && neg; - $s = -1; return z; - /* */ } return; } var $f = {$blk: Sub$1, $c: true, $r, _r, _r$1, _r$2, neg, x, y, z, $s};return $f; - }; - $ptrType(Int).prototype.Mul = function Mul$1(x, y) { - var {_r, _r$1, x, y, z, $s, $r, $c} = $restore(this, {x, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - /* */ if (x === y) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (x === y) { */ case 1: - _r = z.abs.sqr(x.abs); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - z.abs = _r; - z.neg = false; - $s = -1; return z; - /* } */ case 2: - _r$1 = z.abs.mul(x.abs, y.abs); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - z.abs = _r$1; - z.neg = z.abs.$length > 0 && !(x.neg === y.neg); - $s = -1; return z; - /* */ } return; } var $f = {$blk: Mul$1, $c: true, $r, _r, _r$1, x, y, z, $s};return $f; - }; - $ptrType(Int).prototype.MulRange = function MulRange(a, b) { - var {_r, _tmp, _tmp$1, a, b, neg, x, x$1, z, $s, $r, $c} = $restore(this, {a, b}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - if ((a.$high > b.$high || (a.$high === b.$high && a.$low > b.$low))) { - $s = -1; return z.SetInt64(new $Int64(0, 1)); - } else if ((a.$high < 0 || (a.$high === 0 && a.$low <= 0)) && (b.$high > 0 || (b.$high === 0 && b.$low >= 0))) { - $s = -1; return z.SetInt64(new $Int64(0, 0)); - } - neg = false; - if ((a.$high < 0 || (a.$high === 0 && a.$low < 0))) { - neg = (x = (x$1 = new $Int64(b.$high - a.$high, b.$low - a.$low), new $Int64(x$1.$high & 0, (x$1.$low & 1) >>> 0)), (x.$high === 0 && x.$low === 0)); - _tmp = new $Int64(-b.$high, -b.$low); - _tmp$1 = new $Int64(-a.$high, -a.$low); - a = _tmp; - b = _tmp$1; - } - _r = z.abs.mulRange((new $Uint64(a.$high, a.$low)), (new $Uint64(b.$high, b.$low))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - z.abs = _r; - z.neg = neg; - $s = -1; return z; - /* */ } return; } var $f = {$blk: MulRange, $c: true, $r, _r, _tmp, _tmp$1, a, b, neg, x, x$1, z, $s};return $f; - }; - $ptrType(Int).prototype.Binomial = function Binomial(n, k) { - var {K, N, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, i, k, n, t, x, z, $s, $r, $c} = $restore(this, {n, k}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - K = [K]; - N = [N]; - i = [i]; - z = this; - if ((k.$high > n.$high || (k.$high === n.$high && k.$low > n.$low))) { - $s = -1; return z.SetInt64(new $Int64(0, 0)); - } - if ((x = new $Int64(n.$high - k.$high, n.$low - k.$low), (k.$high > x.$high || (k.$high === x.$high && k.$low > x.$low)))) { - k = new $Int64(n.$high - k.$high, n.$low - k.$low); - } - _tmp = new Int.ptr(false, nat.nil); - _tmp$1 = new Int.ptr(false, nat.nil); - _tmp$2 = new Int.ptr(false, nat.nil); - _tmp$3 = new Int.ptr(false, nat.nil); - N[0] = $clone(_tmp, Int); - K[0] = $clone(_tmp$1, Int); - i[0] = $clone(_tmp$2, Int); - t = $clone(_tmp$3, Int); - N[0].SetInt64(n); - K[0].SetInt64(k); - z.Set(intOne); - /* while (true) { */ case 1: - /* if (!(i[0].Cmp(K[0]) < 0)) { break; } */ if(!(i[0].Cmp(K[0]) < 0)) { $s = 2; continue; } - _arg = z; - _r = t.Sub(N[0], i[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _arg$1 = _r; - _r$1 = z.Mul(_arg, _arg$1); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - _r$2 = i[0].Add(i[0], intOne); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - _r$3 = z.Quo(z, i[0]); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$3; - $s = 1; continue; - case 2: - $s = -1; return z; - /* */ } return; } var $f = {$blk: Binomial, $c: true, $r, K, N, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, i, k, n, t, x, z, $s};return $f; - }; - $ptrType(Int).prototype.Quo = function Quo$1(x, y) { - var {_r, _tuple, x, y, z, $s, $r, $c} = $restore(this, {x, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - _r = z.abs.div(nat.nil, x.abs, y.abs); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - z.abs = _tuple[0]; - z.neg = z.abs.$length > 0 && !(x.neg === y.neg); - $s = -1; return z; - /* */ } return; } var $f = {$blk: Quo$1, $c: true, $r, _r, _tuple, x, y, z, $s};return $f; - }; - $ptrType(Int).prototype.Rem = function Rem(x, y) { - var {_r, _tuple, x, y, z, $s, $r, $c} = $restore(this, {x, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - _r = (nat.nil).div(z.abs, x.abs, y.abs); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - z.abs = _tuple[1]; - z.neg = z.abs.$length > 0 && x.neg; - $s = -1; return z; - /* */ } return; } var $f = {$blk: Rem, $c: true, $r, _r, _tuple, x, y, z, $s};return $f; - }; - $ptrType(Int).prototype.QuoRem = function QuoRem(x, y, r) { - var {_r, _tmp, _tmp$1, _tuple, r, x, y, z, $s, $r, $c} = $restore(this, {x, y, r}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - _r = z.abs.div(r.abs, x.abs, y.abs); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - z.abs = _tuple[0]; - r.abs = _tuple[1]; - _tmp = z.abs.$length > 0 && !(x.neg === y.neg); - _tmp$1 = r.abs.$length > 0 && x.neg; - z.neg = _tmp; - r.neg = _tmp$1; - $s = -1; return [z, r]; - /* */ } return; } var $f = {$blk: QuoRem, $c: true, $r, _r, _tmp, _tmp$1, _tuple, r, x, y, z, $s};return $f; - }; - $ptrType(Int).prototype.Div = function Div(x, y) { - var {_r, _r$1, _r$2, r, x, y, y_neg, z, $s, $r, $c} = $restore(this, {x, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - r = [r]; - z = this; - y_neg = y.neg; - r[0] = new Int.ptr(false, nat.nil); - _r = z.QuoRem(x, y, r[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r; - /* */ if (r[0].neg) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (r[0].neg) { */ case 2: - /* */ if (y_neg) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (y_neg) { */ case 4: - _r$1 = z.Add(z, intOne); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - $s = 6; continue; - /* } else { */ case 5: - _r$2 = z.Sub(z, intOne); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - /* } */ case 6: - /* } */ case 3: - $s = -1; return z; - /* */ } return; } var $f = {$blk: Div, $c: true, $r, _r, _r$1, _r$2, r, x, y, y_neg, z, $s};return $f; - }; - $ptrType(Int).prototype.Mod = function Mod(x, y) { - var {_r, _r$1, _r$2, q, x, y, y0, z, $s, $r, $c} = $restore(this, {x, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - y0 = y; - if (z === y || alias(z.abs, y.abs)) { - y0 = new Int.ptr(false, nat.nil).Set(y); - } - q = new Int.ptr(false, nat.nil); - _r = q.QuoRem(x, y, z); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r; - /* */ if (z.neg) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (z.neg) { */ case 2: - /* */ if (y0.neg) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (y0.neg) { */ case 4: - _r$1 = z.Sub(z, y0); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - $s = 6; continue; - /* } else { */ case 5: - _r$2 = z.Add(z, y0); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - /* } */ case 6: - /* } */ case 3: - $s = -1; return z; - /* */ } return; } var $f = {$blk: Mod, $c: true, $r, _r, _r$1, _r$2, q, x, y, y0, z, $s};return $f; - }; - $ptrType(Int).prototype.DivMod = function DivMod(x, y, m) { - var {_r, _r$1, _r$2, _r$3, _r$4, m, x, y, y0, z, $s, $r, $c} = $restore(this, {x, y, m}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - y0 = y; - if (z === y || alias(z.abs, y.abs)) { - y0 = new Int.ptr(false, nat.nil).Set(y); - } - _r = z.QuoRem(x, y, m); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r; - /* */ if (m.neg) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (m.neg) { */ case 2: - /* */ if (y0.neg) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (y0.neg) { */ case 4: - _r$1 = z.Add(z, intOne); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - _r$2 = m.Sub(m, y0); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - $s = 6; continue; - /* } else { */ case 5: - _r$3 = z.Sub(z, intOne); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$3; - _r$4 = m.Add(m, y0); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$4; - /* } */ case 6: - /* } */ case 3: - $s = -1; return [z, m]; - /* */ } return; } var $f = {$blk: DivMod, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, m, x, y, y0, z, $s};return $f; - }; - $ptrType(Int).prototype.Cmp = function Cmp$1(y) { - var r, x, y; - r = 0; - x = this; - if (x === y) { - } else if (x.neg === y.neg) { - r = x.abs.cmp(y.abs); - if (x.neg) { - r = -r; - } - } else if (x.neg) { - r = -1; - } else { - r = 1; - } - return r; - }; - $ptrType(Int).prototype.CmpAbs = function CmpAbs(y) { - var x, y; - x = this; - return x.abs.cmp(y.abs); - }; - low32 = function low32$1(x) { - var x; - if (x.$length === 0) { - return 0; - } - return (((0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]) >>> 0)); - }; - low64 = function low64$1(x) { - var v, x, x$1; - if (x.$length === 0) { - return new $Uint64(0, 0); - } - v = (new $Uint64(0, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))); - if (true && x.$length > 1) { - return (x$1 = $shiftLeft64((new $Uint64(0, (1 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 1]))), 32), new $Uint64(x$1.$high | v.$high, (x$1.$low | v.$low) >>> 0)); - } - return v; - }; - $ptrType(Int).prototype.Int64 = function Int64() { - var v, x, x$1; - x = this; - v = ((x$1 = low64(x.abs), new $Int64(x$1.$high, x$1.$low))); - if (x.neg) { - v = new $Int64(-v.$high, -v.$low); - } - return v; - }; - $ptrType(Int).prototype.Uint64 = function Uint64() { - var x; - x = this; - return low64(x.abs); - }; - $ptrType(Int).prototype.IsInt64 = function IsInt64() { - var w, x, x$1, x$2; - x = this; - if (x.abs.$length <= 2) { - w = ((x$1 = low64(x.abs), new $Int64(x$1.$high, x$1.$low))); - return (w.$high > 0 || (w.$high === 0 && w.$low >= 0)) || x.neg && (x$2 = new $Int64(-w.$high, -w.$low), (w.$high === x$2.$high && w.$low === x$2.$low)); - } - return false; - }; - $ptrType(Int).prototype.IsUint64 = function IsUint64() { - var x; - x = this; - return !x.neg && x.abs.$length <= 2; - }; - $ptrType(Int).prototype.SetString = function SetString$1(s, base) { - var {$24r, _r, base, s, z, $s, $r, $c} = $restore(this, {s, base}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - _r = z.setFromScanner(strings.NewReader(s), base); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: SetString$1, $c: true, $r, $24r, _r, base, s, z, $s};return $f; - }; - $ptrType(Int).prototype.setFromScanner = function setFromScanner(r, base) { - var {_r, _r$1, _tuple, _tuple$1, base, err, err$1, r, z, $s, $r, $c} = $restore(this, {r, base}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - _r = z.scan(r, base); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - err = _tuple[2]; - if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [ptrType$2.nil, false]; - } - _r$1 = r.ReadByte(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$1 = _r$1; - err$1 = _tuple$1[1]; - if (!($interfaceIsEqual(err$1, io.EOF))) { - $s = -1; return [ptrType$2.nil, false]; - } - $s = -1; return [z, true]; - /* */ } return; } var $f = {$blk: setFromScanner, $c: true, $r, _r, _r$1, _tuple, _tuple$1, base, err, err$1, r, z, $s};return $f; - }; - $ptrType(Int).prototype.SetBytes = function SetBytes(buf) { - var buf, z; - z = this; - z.abs = z.abs.setBytes(buf); - z.neg = false; - return z; - }; - $ptrType(Int).prototype.Bytes = function Bytes() { - var buf, x; - x = this; - buf = $makeSlice(sliceType$1, ($imul(x.abs.$length, 4))); - return $subslice(buf, x.abs.bytes(buf)); - }; - $ptrType(Int).prototype.FillBytes = function FillBytes(buf) { - var _i, _ref, buf, i, x; - x = this; - _ref = buf; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 0); - _i++; - } - x.abs.bytes(buf); - return buf; - }; - $ptrType(Int).prototype.BitLen = function BitLen() { - var x; - x = this; - return x.abs.bitLen(); - }; - $ptrType(Int).prototype.TrailingZeroBits = function TrailingZeroBits() { - var x; - x = this; - return x.abs.trailingZeroBits(); - }; - $ptrType(Int).prototype.Exp = function Exp(x, y, m) { - var {$24r, _r, m, x, y, z, $s, $r, $c} = $restore(this, {x, y, m}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - _r = z.exp(x, y, m, false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Exp, $c: true, $r, $24r, _r, m, x, y, z, $s};return $f; - }; - $ptrType(Int).prototype.exp = function exp(x, y, m, slow) { - var {_r, _r$1, _r$2, inverse, m, mWords, slow, x, xWords, y, yWords, z, $s, $r, $c} = $restore(this, {x, y, m, slow}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - xWords = x.abs; - /* */ if (y.neg) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (y.neg) { */ case 1: - if (m === ptrType$2.nil || (m.abs.$length === 0)) { - $s = -1; return z.SetInt64(new $Int64(0, 1)); - } - _r = new Int.ptr(false, nat.nil).ModInverse(x, m); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - inverse = _r; - if (inverse === ptrType$2.nil) { - $s = -1; return ptrType$2.nil; - } - xWords = inverse.abs; - /* } */ case 2: - yWords = y.abs; - mWords = nat.nil; - if (!(m === ptrType$2.nil)) { - if (z === m || alias(z.abs, m.abs)) { - m = new Int.ptr(false, nat.nil).Set(m); - } - mWords = m.abs; - } - _r$1 = z.abs.expNN(xWords, yWords, mWords, slow); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - z.abs = _r$1; - z.neg = z.abs.$length > 0 && x.neg && yWords.$length > 0 && ((((0 >= yWords.$length ? ($throwRuntimeError("index out of range"), undefined) : yWords.$array[yWords.$offset + 0]) & 1) >>> 0) === 1); - /* */ if (z.neg && mWords.$length > 0) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (z.neg && mWords.$length > 0) { */ case 5: - _r$2 = z.abs.sub(mWords, z.abs); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - z.abs = _r$2; - z.neg = false; - /* } */ case 6: - $s = -1; return z; - /* */ } return; } var $f = {$blk: exp, $c: true, $r, _r, _r$1, _r$2, inverse, m, mWords, slow, x, xWords, y, yWords, z, $s};return $f; - }; - $ptrType(Int).prototype.GCD = function GCD(x, y, a, b) { - var {$24r, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, a, b, lenA, lenB, negA, negB, x, y, z, $s, $r, $c} = $restore(this, {x, y, a, b}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - if ((a.abs.$length === 0) || (b.abs.$length === 0)) { - _tmp = a.abs.$length; - _tmp$1 = b.abs.$length; - _tmp$2 = a.neg; - _tmp$3 = b.neg; - lenA = _tmp; - lenB = _tmp$1; - negA = _tmp$2; - negB = _tmp$3; - if (lenA === 0) { - z.Set(b); - } else { - z.Set(a); - } - z.neg = false; - if (!(x === ptrType$2.nil)) { - if (lenA === 0) { - x.SetUint64(new $Uint64(0, 0)); - } else { - x.SetUint64(new $Uint64(0, 1)); - x.neg = negA; - } - } - if (!(y === ptrType$2.nil)) { - if (lenB === 0) { - y.SetUint64(new $Uint64(0, 0)); - } else { - y.SetUint64(new $Uint64(0, 1)); - y.neg = negB; - } - } - $s = -1; return z; - } - _r = z.lehmerGCD(x, y, a, b); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: GCD, $c: true, $r, $24r, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, a, b, lenA, lenB, negA, negB, x, y, z, $s};return $f; - }; - lehmerSimulate = function lehmerSimulate$1(A, B) { - var A, B, _q, _r, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, a1, a2, even, h, m, n, q, r, u0, u1, u2, v0, v1, v2, x, x$1, x$10, x$11, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, y, y$1, y$2, y$3, y$4; - u0 = 0; - u1 = 0; - v0 = 0; - v1 = 0; - even = false; - _tmp = 0; - _tmp$1 = 0; - _tmp$2 = 0; - _tmp$3 = 0; - a1 = _tmp; - a2 = _tmp$1; - u2 = _tmp$2; - v2 = _tmp$3; - m = B.abs.$length; - n = A.abs.$length; - h = nlz((x = A.abs, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1]))); - a1 = (((y = h, y < 32 ? ((x$2 = A.abs, x$3 = n - 1 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])) << y) : 0) >>> 0) | ((y$1 = ((32 - h >>> 0)), y$1 < 32 ? ((x$4 = A.abs, x$5 = n - 2 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])) >>> y$1) : 0) >>> 0)) >>> 0; - if ((n === m)) { - a2 = (((y$2 = h, y$2 < 32 ? ((x$6 = B.abs, x$7 = n - 1 >> 0, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])) << y$2) : 0) >>> 0) | ((y$3 = ((32 - h >>> 0)), y$3 < 32 ? ((x$8 = B.abs, x$9 = n - 2 >> 0, ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + x$9])) >>> y$3) : 0) >>> 0)) >>> 0; - } else if ((n === (m + 1 >> 0))) { - a2 = (y$4 = ((32 - h >>> 0)), y$4 < 32 ? ((x$10 = B.abs, x$11 = n - 2 >> 0, ((x$11 < 0 || x$11 >= x$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + x$11])) >>> y$4) : 0) >>> 0; - } else { - a2 = 0; - } - even = false; - _tmp$4 = 0; - _tmp$5 = 1; - _tmp$6 = 0; - u0 = _tmp$4; - u1 = _tmp$5; - u2 = _tmp$6; - _tmp$7 = 0; - _tmp$8 = 0; - _tmp$9 = 1; - v0 = _tmp$7; - v1 = _tmp$8; - v2 = _tmp$9; - while (true) { - if (!(a2 >= v2 && (a1 - a2 >>> 0) >= (v1 + v2 >>> 0))) { break; } - _tmp$10 = (_q = a1 / a2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); - _tmp$11 = (_r = a1 % a2, _r === _r ? _r : $throwRuntimeError("integer divide by zero")); - q = _tmp$10; - r = _tmp$11; - _tmp$12 = a2; - _tmp$13 = r; - a1 = _tmp$12; - a2 = _tmp$13; - _tmp$14 = u1; - _tmp$15 = u2; - _tmp$16 = u1 + ($imul(q, u2) >>> 0) >>> 0; - u0 = _tmp$14; - u1 = _tmp$15; - u2 = _tmp$16; - _tmp$17 = v1; - _tmp$18 = v2; - _tmp$19 = v1 + ($imul(q, v2) >>> 0) >>> 0; - v0 = _tmp$17; - v1 = _tmp$18; - v2 = _tmp$19; - even = !even; - } - return [u0, u1, v0, v1, even]; - }; - lehmerUpdate = function lehmerUpdate$1(A, B, q, r, s, t, u0, u1, v0, v1, even) { - var {A, B, _r, _r$1, _r$2, _r$3, _r$4, _r$5, even, q, r, s, t, u0, u1, v0, v1, $s, $r, $c} = $restore(this, {A, B, q, r, s, t, u0, u1, v0, v1, even}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t.abs = t.abs.setWord(u0); - s.abs = s.abs.setWord(v0); - t.neg = !even; - s.neg = even; - _r = t.Mul(A, t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r; - _r$1 = s.Mul(B, s); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - r.abs = r.abs.setWord(u1); - q.abs = q.abs.setWord(v1); - r.neg = even; - q.neg = !even; - _r$2 = r.Mul(A, r); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - _r$3 = q.Mul(B, q); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$3; - _r$4 = A.Add(t, s); /* */ $s = 5; case 5: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$4; - _r$5 = B.Add(r, q); /* */ $s = 6; case 6: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$5; - $s = -1; return; - /* */ } return; } var $f = {$blk: lehmerUpdate$1, $c: true, $r, A, B, _r, _r$1, _r$2, _r$3, _r$4, _r$5, even, q, r, s, t, u0, u1, v0, v1, $s};return $f; - }; - euclidUpdate = function euclidUpdate$1(A, B, Ua, Ub, q, r, s, t, extended) { - var {A, B, Ua, Ub, _r, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tuple, extended, q, r, s, t, $s, $r, $c} = $restore(this, {A, B, Ua, Ub, q, r, s, t, extended}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = q.QuoRem(A, B, r); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - q = _tuple[0]; - r = _tuple[1]; - _tmp = $clone(B, Int); - _tmp$1 = $clone(r, Int); - _tmp$2 = $clone(A, Int); - Int.copy(A, _tmp); - Int.copy(B, _tmp$1); - Int.copy(r, _tmp$2); - /* */ if (extended) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (extended) { */ case 2: - t.Set(Ub); - _r$1 = s.Mul(Ub, q); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - _r$2 = Ub.Sub(Ua, s); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - Ua.Set(t); - /* } */ case 3: - $s = -1; return; - /* */ } return; } var $f = {$blk: euclidUpdate$1, $c: true, $r, A, B, Ua, Ub, _r, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tuple, extended, q, r, s, t, $s};return $f; - }; - $ptrType(Int).prototype.lehmerGCD = function lehmerGCD(x, y, a, b) { - var {A, B, Ua, Ub, _q, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, a, aWord, b, bWord, even, even$1, extended, negA, q, q$1, r, r$1, s, t, u0, u1, ua, ub, v0, v1, va, vb, x, x$1, x$2, x$3, y, z, $s, $r, $c} = $restore(this, {x, y, a, b}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - _tmp = ptrType$2.nil; - _tmp$1 = ptrType$2.nil; - _tmp$2 = ptrType$2.nil; - _tmp$3 = ptrType$2.nil; - A = _tmp; - B = _tmp$1; - Ua = _tmp$2; - Ub = _tmp$3; - A = new Int.ptr(false, nat.nil).Abs(a); - B = new Int.ptr(false, nat.nil).Abs(b); - extended = !(x === ptrType$2.nil) || !(y === ptrType$2.nil); - if (extended) { - Ua = new Int.ptr(false, nat.nil).SetInt64(new $Int64(0, 1)); - Ub = new Int.ptr(false, nat.nil); - } - q = new Int.ptr(false, nat.nil); - r = new Int.ptr(false, nat.nil); - s = new Int.ptr(false, nat.nil); - t = new Int.ptr(false, nat.nil); - if (A.abs.cmp(B.abs) < 0) { - _tmp$4 = B; - _tmp$5 = A; - A = _tmp$4; - B = _tmp$5; - _tmp$6 = Ua; - _tmp$7 = Ub; - Ub = _tmp$6; - Ua = _tmp$7; - } - /* while (true) { */ case 1: - /* if (!(B.abs.$length > 1)) { break; } */ if(!(B.abs.$length > 1)) { $s = 2; continue; } - _tuple = lehmerSimulate(A, B); - u0 = _tuple[0]; - u1 = _tuple[1]; - v0 = _tuple[2]; - v1 = _tuple[3]; - even = _tuple[4]; - /* */ if (!((v0 === 0))) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!((v0 === 0))) { */ case 3: - $r = lehmerUpdate(A, B, q, r, s, t, u0, u1, v0, v1, even); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (extended) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (extended) { */ case 7: - $r = lehmerUpdate(Ua, Ub, q, r, s, t, u0, u1, v0, v1, even); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 8: - $s = 5; continue; - /* } else { */ case 4: - $r = euclidUpdate(A, B, Ua, Ub, q, r, s, t, extended); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 5: - $s = 1; continue; - case 2: - /* */ if (B.abs.$length > 0) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (B.abs.$length > 0) { */ case 11: - /* */ if (A.abs.$length > 1) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (A.abs.$length > 1) { */ case 13: - $r = euclidUpdate(A, B, Ua, Ub, q, r, s, t, extended); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 14: - /* */ if (B.abs.$length > 0) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (B.abs.$length > 0) { */ case 16: - _tmp$8 = (x$1 = A.abs, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])); - _tmp$9 = (x$2 = B.abs, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])); - aWord = _tmp$8; - bWord = _tmp$9; - /* */ if (extended) { $s = 18; continue; } - /* */ $s = 19; continue; - /* if (extended) { */ case 18: - _tmp$10 = 0; - _tmp$11 = 0; - _tmp$12 = 0; - _tmp$13 = 0; - ua = _tmp$10; - ub = _tmp$11; - va = _tmp$12; - vb = _tmp$13; - _tmp$14 = 1; - _tmp$15 = 0; - ua = _tmp$14; - ub = _tmp$15; - _tmp$16 = 0; - _tmp$17 = 1; - va = _tmp$16; - vb = _tmp$17; - even$1 = true; - while (true) { - if (!(!((bWord === 0)))) { break; } - _tmp$18 = (_q = aWord / bWord, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); - _tmp$19 = (_r = aWord % bWord, _r === _r ? _r : $throwRuntimeError("integer divide by zero")); - q$1 = _tmp$18; - r$1 = _tmp$19; - _tmp$20 = bWord; - _tmp$21 = r$1; - aWord = _tmp$20; - bWord = _tmp$21; - _tmp$22 = ub; - _tmp$23 = ua + ($imul(q$1, ub) >>> 0) >>> 0; - ua = _tmp$22; - ub = _tmp$23; - _tmp$24 = vb; - _tmp$25 = va + ($imul(q$1, vb) >>> 0) >>> 0; - va = _tmp$24; - vb = _tmp$25; - even$1 = !even$1; - } - t.abs = t.abs.setWord(ua); - s.abs = s.abs.setWord(va); - t.neg = !even$1; - s.neg = even$1; - _r$1 = t.Mul(Ua, t); /* */ $s = 21; case 21: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - _r$2 = s.Mul(Ub, s); /* */ $s = 22; case 22: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - _r$3 = Ua.Add(t, s); /* */ $s = 23; case 23: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$3; - $s = 20; continue; - /* } else { */ case 19: - while (true) { - if (!(!((bWord === 0)))) { break; } - _tmp$26 = bWord; - _tmp$27 = (_r$4 = aWord % bWord, _r$4 === _r$4 ? _r$4 : $throwRuntimeError("integer divide by zero")); - aWord = _tmp$26; - bWord = _tmp$27; - } - /* } */ case 20: - (x$3 = A.abs, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0] = aWord)); - /* } */ case 17: - /* } */ case 12: - negA = a.neg; - /* */ if (!(y === ptrType$2.nil)) { $s = 24; continue; } - /* */ $s = 25; continue; - /* if (!(y === ptrType$2.nil)) { */ case 24: - if (y === b) { - B.Set(b); - } else { - B = b; - } - _r$5 = y.Mul(a, Ua); /* */ $s = 26; case 26: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$5; - if (negA) { - y.neg = !y.neg; - } - _r$6 = y.Sub(A, y); /* */ $s = 27; case 27: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _r$6; - _r$7 = y.Div(y, B); /* */ $s = 28; case 28: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _r$7; - /* } */ case 25: - if (!(x === ptrType$2.nil)) { - Int.copy(x, Ua); - if (negA) { - x.neg = !x.neg; - } - } - Int.copy(z, A); - $s = -1; return z; - /* */ } return; } var $f = {$blk: lehmerGCD, $c: true, $r, A, B, Ua, Ub, _q, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, a, aWord, b, bWord, even, even$1, extended, negA, q, q$1, r, r$1, s, t, u0, u1, ua, ub, v0, v1, va, vb, x, x$1, x$2, x$3, y, z, $s};return $f; - }; - $ptrType(Int).prototype.Rand = function Rand(rnd, n) { - var {_r, n, rnd, z, $s, $r, $c} = $restore(this, {rnd, n}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - if (n.neg || (n.abs.$length === 0)) { - z.neg = false; - z.abs = nat.nil; - $s = -1; return z; - } - z.neg = false; - _r = z.abs.random(rnd, n.abs, n.abs.bitLen()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - z.abs = _r; - $s = -1; return z; - /* */ } return; } var $f = {$blk: Rand, $c: true, $r, _r, n, rnd, z, $s};return $f; - }; - $ptrType(Int).prototype.ModInverse = function ModInverse(g, n) { - var {_r, _r$1, _r$2, _tmp, _tmp$1, d, g, g2, n, n2, x, z, $s, $r, $c} = $restore(this, {g, n}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = [x]; - z = this; - if (n.neg) { - n2 = new Int.ptr(false, nat.nil); - n = n2.Neg(n); - } - /* */ if (g.neg) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (g.neg) { */ case 1: - g2 = new Int.ptr(false, nat.nil); - _r = g2.Mod(g, n); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - g = _r; - /* } */ case 2: - _tmp = new Int.ptr(false, nat.nil); - _tmp$1 = new Int.ptr(false, nat.nil); - d = $clone(_tmp, Int); - x[0] = $clone(_tmp$1, Int); - _r$1 = d.GCD(x[0], ptrType$2.nil, g, n); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - if (!((d.Cmp(intOne) === 0))) { - $s = -1; return ptrType$2.nil; - } - /* */ if (x[0].neg) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (x[0].neg) { */ case 5: - _r$2 = z.Add(x[0], n); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - $s = 7; continue; - /* } else { */ case 6: - z.Set(x[0]); - /* } */ case 7: - $s = -1; return z; - /* */ } return; } var $f = {$blk: ModInverse, $c: true, $r, _r, _r$1, _r$2, _tmp, _tmp$1, d, g, g2, n, n2, x, z, $s};return $f; - }; - nat.prototype.modInverse = function modInverse(g, n) { - var {$24r, _r, g, n, z, $s, $r, $c} = $restore(this, {g, n}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - _r = (new Int.ptr(false, z)).ModInverse(new Int.ptr(false, g), new Int.ptr(false, n)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r.abs; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: modInverse, $c: true, $r, $24r, _r, g, n, z, $s};return $f; - }; - $ptrType(nat).prototype.modInverse = function(...$args) { return this.$get().modInverse(...$args); }; - Jacobi = function Jacobi$1(x, y) { - var {_arg, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tmp$2, a, b, bmod8, c, j, s, x, x$1, x$2, x$3, x$4, y, $s, $r, $c} = $restore(this, {x, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - a = [a]; - b = [b]; - c = [c]; - /* */ if ((y.abs.$length === 0) || ((((x$1 = y.abs, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])) & 1) >>> 0) === 0)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if ((y.abs.$length === 0) || ((((x$1 = y.abs, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])) & 1) >>> 0) === 0)) { */ case 1: - _r = y.String(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _arg = new $String(_r); - _r$1 = fmt.Sprintf("big: invalid 2nd argument to Int.Jacobi: need odd integer but got %s", new sliceType([_arg])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $panic(new $String(_r$1)); - /* } */ case 2: - _tmp = new Int.ptr(false, nat.nil); - _tmp$1 = new Int.ptr(false, nat.nil); - _tmp$2 = new Int.ptr(false, nat.nil); - a[0] = $clone(_tmp, Int); - b[0] = $clone(_tmp$1, Int); - c[0] = $clone(_tmp$2, Int); - a[0].Set(x); - b[0].Set(y); - j = 1; - if (b[0].neg) { - if (a[0].neg) { - j = -1; - } - b[0].neg = false; - } - /* while (true) { */ case 5: - if (b[0].Cmp(intOne) === 0) { - $s = -1; return j; - } - if (a[0].abs.$length === 0) { - $s = -1; return 0; - } - _r$2 = a[0].Mod(a[0], b[0]); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - if (a[0].abs.$length === 0) { - $s = -1; return 0; - } - s = a[0].abs.trailingZeroBits(); - if (!((((s & 1) >>> 0) === 0))) { - bmod8 = ((x$2 = b[0].abs, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])) & 7) >>> 0; - if ((bmod8 === 3) || (bmod8 === 5)) { - j = -j; - } - } - _r$3 = c[0].Rsh(a[0], s); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$3; - if (((((x$3 = b[0].abs, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])) & 3) >>> 0) === 3) && ((((x$4 = c[0].abs, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])) & 3) >>> 0) === 3)) { - j = -j; - } - a[0].Set(b[0]); - b[0].Set(c[0]); - $s = 5; continue; - case 6: - $s = -1; return 0; - /* */ } return; } var $f = {$blk: Jacobi$1, $c: true, $r, _arg, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tmp$2, a, b, bmod8, c, j, s, x, x$1, x$2, x$3, x$4, y, $s};return $f; - }; - $pkg.Jacobi = Jacobi; - $ptrType(Int).prototype.modSqrt3Mod4Prime = function modSqrt3Mod4Prime(x, p) { - var {_r, _r$1, _r$2, e, p, x, z, $s, $r, $c} = $restore(this, {x, p}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - _r = new Int.ptr(false, nat.nil).Add(p, intOne); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - e = _r; - _r$1 = e.Rsh(e, 2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - _r$2 = z.Exp(x, e, p); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - $s = -1; return z; - /* */ } return; } var $f = {$blk: modSqrt3Mod4Prime, $c: true, $r, _r, _r$1, _r$2, e, p, x, z, $s};return $f; - }; - $ptrType(Int).prototype.modSqrt5Mod8Prime = function modSqrt5Mod8Prime(x, p) { - var {_r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, alpha, beta, e, p, tx, x, z, $s, $r, $c} = $restore(this, {x, p}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - _r = new Int.ptr(false, nat.nil).Rsh(p, 3); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - e = _r; - tx = new Int.ptr(false, nat.nil).Lsh(x, 1); - _r$1 = new Int.ptr(false, nat.nil).Exp(tx, e, p); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - alpha = _r$1; - _r$2 = new Int.ptr(false, nat.nil).Mul(alpha, alpha); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - beta = _r$2; - _r$3 = beta.Mod(beta, p); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$3; - _r$4 = beta.Mul(beta, tx); /* */ $s = 5; case 5: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$4; - _r$5 = beta.Mod(beta, p); /* */ $s = 6; case 6: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$5; - _r$6 = beta.Sub(beta, intOne); /* */ $s = 7; case 7: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _r$6; - _r$7 = beta.Mul(beta, x); /* */ $s = 8; case 8: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _r$7; - _r$8 = beta.Mod(beta, p); /* */ $s = 9; case 9: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _r$8; - _r$9 = beta.Mul(beta, alpha); /* */ $s = 10; case 10: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _r$9; - _r$10 = z.Mod(beta, p); /* */ $s = 11; case 11: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _r$10; - $s = -1; return z; - /* */ } return; } var $f = {$blk: modSqrt5Mod8Prime, $c: true, $r, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, alpha, beta, e, p, tx, x, z, $s};return $f; - }; - $ptrType(Int).prototype.modSqrtTonelliShanks = function modSqrtTonelliShanks(x, p) { - var {_r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$2, _tmp$3, b, e, g, m, n, p, r, s, t, x, y, z, $s, $r, $c} = $restore(this, {x, p}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - b = [b]; - g = [g]; - n = [n]; - s = [s]; - t = [t]; - y = [y]; - z = this; - s[0] = new Int.ptr(false, nat.nil); - _r = s[0].Sub(p, intOne); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r; - e = s[0].abs.trailingZeroBits(); - _r$1 = s[0].Rsh(s[0], e); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - n[0] = new Int.ptr(false, nat.nil); - n[0].SetInt64(new $Int64(0, 2)); - /* while (true) { */ case 3: - _r$2 = Jacobi(n[0], p); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* if (!(!((_r$2 === -1)))) { break; } */ if(!(!((_r$2 === -1)))) { $s = 4; continue; } - _r$3 = n[0].Add(n[0], intOne); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$3; - $s = 3; continue; - case 4: - _tmp = new Int.ptr(false, nat.nil); - _tmp$1 = new Int.ptr(false, nat.nil); - _tmp$2 = new Int.ptr(false, nat.nil); - _tmp$3 = new Int.ptr(false, nat.nil); - y[0] = $clone(_tmp, Int); - b[0] = $clone(_tmp$1, Int); - g[0] = $clone(_tmp$2, Int); - t[0] = $clone(_tmp$3, Int); - _r$4 = y[0].Add(s[0], intOne); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$4; - _r$5 = y[0].Rsh(y[0], 1); /* */ $s = 8; case 8: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$5; - _r$6 = y[0].Exp(x, y[0], p); /* */ $s = 9; case 9: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _r$6; - _r$7 = b[0].Exp(x, s[0], p); /* */ $s = 10; case 10: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _r$7; - _r$8 = g[0].Exp(n[0], s[0], p); /* */ $s = 11; case 11: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _r$8; - r = e; - /* while (true) { */ case 12: - m = 0; - t[0].Set(b[0]); - /* while (true) { */ case 14: - /* if (!(!((t[0].Cmp(intOne) === 0)))) { break; } */ if(!(!((t[0].Cmp(intOne) === 0)))) { $s = 15; continue; } - _r$9 = t[0].Mul(t[0], t[0]); /* */ $s = 16; case 16: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _r$10 = _r$9.Mod(t[0], p); /* */ $s = 17; case 17: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _r$10; - m = m + (1) >>> 0; - $s = 14; continue; - case 15: - if (m === 0) { - $s = -1; return z.Set(y[0]); - } - _r$11 = t[0].SetInt64(new $Int64(0, 0)).SetBit(t[0], ((((r - m >>> 0) - 1 >>> 0) >> 0)), 1); /* */ $s = 18; case 18: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _r$12 = _r$11.Exp(g[0], t[0], p); /* */ $s = 19; case 19: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _r$12; - _r$13 = g[0].Mul(t[0], t[0]); /* */ $s = 20; case 20: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - _r$14 = _r$13.Mod(g[0], p); /* */ $s = 21; case 21: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - _r$14; - _r$15 = y[0].Mul(y[0], t[0]); /* */ $s = 22; case 22: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - _r$16 = _r$15.Mod(y[0], p); /* */ $s = 23; case 23: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - _r$16; - _r$17 = b[0].Mul(b[0], g[0]); /* */ $s = 24; case 24: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - _r$18 = _r$17.Mod(b[0], p); /* */ $s = 25; case 25: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - _r$18; - r = m; - $s = 12; continue; - case 13: - $s = -1; return ptrType$2.nil; - /* */ } return; } var $f = {$blk: modSqrtTonelliShanks, $c: true, $r, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$2, _tmp$3, b, e, g, m, n, p, r, s, t, x, y, z, $s};return $f; - }; - $ptrType(Int).prototype.ModSqrt = function ModSqrt(x, p) { - var {$24r, $24r$1, $24r$2, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, p, x, x$1, x$2, z, $s, $r, $c} = $restore(this, {x, p}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - _r = Jacobi(x, p); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _1 = _r; - if (_1 === (-1)) { - $s = -1; return ptrType$2.nil; - } else if (_1 === (0)) { - $s = -1; return z.SetInt64(new $Int64(0, 0)); - } else if (_1 === (1)) { - /* break; */ $s = 1; continue; - } - case 1: - /* */ if (x.neg || x.Cmp(p) >= 0) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (x.neg || x.Cmp(p) >= 0) { */ case 3: - _r$1 = new Int.ptr(false, nat.nil).Mod(x, p); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - x = _r$1; - /* } */ case 4: - /* */ if (((_r$2 = (x$1 = p.abs, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])) % 4, _r$2 === _r$2 ? _r$2 : $throwRuntimeError("integer divide by zero")) === 3)) { $s = 7; continue; } - /* */ if (((_r$3 = (x$2 = p.abs, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])) % 8, _r$3 === _r$3 ? _r$3 : $throwRuntimeError("integer divide by zero")) === 5)) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (((_r$2 = (x$1 = p.abs, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])) % 4, _r$2 === _r$2 ? _r$2 : $throwRuntimeError("integer divide by zero")) === 3)) { */ case 7: - _r$4 = z.modSqrt3Mod4Prime(x, p); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $24r = _r$4; - $s = 12; case 12: return $24r; - /* } else if (((_r$3 = (x$2 = p.abs, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])) % 8, _r$3 === _r$3 ? _r$3 : $throwRuntimeError("integer divide by zero")) === 5)) { */ case 8: - _r$5 = z.modSqrt5Mod8Prime(x, p); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - $24r$1 = _r$5; - $s = 14; case 14: return $24r$1; - /* } else { */ case 9: - _r$6 = z.modSqrtTonelliShanks(x, p); /* */ $s = 15; case 15: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - $24r$2 = _r$6; - $s = 16; case 16: return $24r$2; - /* } */ case 10: - case 6: - $s = -1; return ptrType$2.nil; - /* */ } return; } var $f = {$blk: ModSqrt, $c: true, $r, $24r, $24r$1, $24r$2, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, p, x, x$1, x$2, z, $s};return $f; - }; - $ptrType(Int).prototype.Lsh = function Lsh(x, n) { - var n, x, z; - z = this; - z.abs = z.abs.shl(x.abs, n); - z.neg = x.neg; - return z; - }; - $ptrType(Int).prototype.Rsh = function Rsh(x, n) { - var {_r, _r$1, n, t, x, z, $s, $r, $c} = $restore(this, {x, n}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - /* */ if (x.neg) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (x.neg) { */ case 1: - _r = z.abs.sub(x.abs, natOne); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - t = _r; - t = t.shr(t, n); - _r$1 = t.add(t, natOne); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - z.abs = _r$1; - z.neg = true; - $s = -1; return z; - /* } */ case 2: - z.abs = z.abs.shr(x.abs, n); - z.neg = false; - $s = -1; return z; - /* */ } return; } var $f = {$blk: Rsh, $c: true, $r, _r, _r$1, n, t, x, z, $s};return $f; - }; - $ptrType(Int).prototype.Bit = function Bit(i) { - var {_r, i, t, x, x$1, $s, $r, $c} = $restore(this, {i}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - if (i === 0) { - if (x.abs.$length > 0) { - $s = -1; return (((((x$1 = x.abs, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])) & 1) >>> 0) >>> 0)); - } - $s = -1; return 0; - } - if (i < 0) { - $panic(new $String("negative bit index")); - } - /* */ if (x.neg) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (x.neg) { */ case 1: - _r = (nat.nil).sub(x.abs, natOne); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - t = _r; - $s = -1; return (t.bit(((i >>> 0))) ^ 1) >>> 0; - /* } */ case 2: - $s = -1; return x.abs.bit(((i >>> 0))); - /* */ } return; } var $f = {$blk: Bit, $c: true, $r, _r, i, t, x, x$1, $s};return $f; - }; - $ptrType(Int).prototype.SetBit = function SetBit(x, i, b) { - var {_r, _r$1, b, i, t, x, z, $s, $r, $c} = $restore(this, {x, i, b}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - if (i < 0) { - $panic(new $String("negative bit index")); - } - /* */ if (x.neg) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (x.neg) { */ case 1: - _r = z.abs.sub(x.abs, natOne); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - t = _r; - t = t.setBit(t, ((i >>> 0)), (b ^ 1) >>> 0); - _r$1 = t.add(t, natOne); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - z.abs = _r$1; - z.neg = z.abs.$length > 0; - $s = -1; return z; - /* } */ case 2: - z.abs = z.abs.setBit(x.abs, ((i >>> 0)), b); - z.neg = false; - $s = -1; return z; - /* */ } return; } var $f = {$blk: SetBit, $c: true, $r, _r, _r$1, b, i, t, x, z, $s};return $f; - }; - $ptrType(Int).prototype.And = function And(x, y) { - var {_r, _r$1, _r$2, _r$3, _tmp, _tmp$1, x, x1, y, y1, y1$1, z, $s, $r, $c} = $restore(this, {x, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - /* */ if (x.neg === y.neg) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (x.neg === y.neg) { */ case 1: - /* */ if (x.neg) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (x.neg) { */ case 3: - _r = (nat.nil).sub(x.abs, natOne); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - x1 = _r; - _r$1 = (nat.nil).sub(y.abs, natOne); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - y1 = _r$1; - _r$2 = z.abs.add(z.abs.or(x1, y1), natOne); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - z.abs = _r$2; - z.neg = true; - $s = -1; return z; - /* } */ case 4: - z.abs = z.abs.and(x.abs, y.abs); - z.neg = false; - $s = -1; return z; - /* } */ case 2: - if (x.neg) { - _tmp = y; - _tmp$1 = x; - x = _tmp; - y = _tmp$1; - } - _r$3 = (nat.nil).sub(y.abs, natOne); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - y1$1 = _r$3; - z.abs = z.abs.andNot(x.abs, y1$1); - z.neg = false; - $s = -1; return z; - /* */ } return; } var $f = {$blk: And, $c: true, $r, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, x, x1, y, y1, y1$1, z, $s};return $f; - }; - $ptrType(Int).prototype.AndNot = function AndNot(x, y) { - var {_r, _r$1, _r$2, _r$3, _r$4, x, x1, x1$1, y, y1, y1$1, z, $s, $r, $c} = $restore(this, {x, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - /* */ if (x.neg === y.neg) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (x.neg === y.neg) { */ case 1: - /* */ if (x.neg) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (x.neg) { */ case 3: - _r = (nat.nil).sub(x.abs, natOne); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - x1 = _r; - _r$1 = (nat.nil).sub(y.abs, natOne); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - y1 = _r$1; - z.abs = z.abs.andNot(y1, x1); - z.neg = false; - $s = -1; return z; - /* } */ case 4: - z.abs = z.abs.andNot(x.abs, y.abs); - z.neg = false; - $s = -1; return z; - /* } */ case 2: - /* */ if (x.neg) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (x.neg) { */ case 7: - _r$2 = (nat.nil).sub(x.abs, natOne); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - x1$1 = _r$2; - _r$3 = z.abs.add(z.abs.or(x1$1, y.abs), natOne); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - z.abs = _r$3; - z.neg = true; - $s = -1; return z; - /* } */ case 8: - _r$4 = (nat.nil).sub(y.abs, natOne); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - y1$1 = _r$4; - z.abs = z.abs.and(x.abs, y1$1); - z.neg = false; - $s = -1; return z; - /* */ } return; } var $f = {$blk: AndNot, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, x, x1, x1$1, y, y1, y1$1, z, $s};return $f; - }; - $ptrType(Int).prototype.Or = function Or(x, y) { - var {_r, _r$1, _r$2, _r$3, _r$4, _tmp, _tmp$1, x, x1, y, y1, y1$1, z, $s, $r, $c} = $restore(this, {x, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - /* */ if (x.neg === y.neg) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (x.neg === y.neg) { */ case 1: - /* */ if (x.neg) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (x.neg) { */ case 3: - _r = (nat.nil).sub(x.abs, natOne); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - x1 = _r; - _r$1 = (nat.nil).sub(y.abs, natOne); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - y1 = _r$1; - _r$2 = z.abs.add(z.abs.and(x1, y1), natOne); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - z.abs = _r$2; - z.neg = true; - $s = -1; return z; - /* } */ case 4: - z.abs = z.abs.or(x.abs, y.abs); - z.neg = false; - $s = -1; return z; - /* } */ case 2: - if (x.neg) { - _tmp = y; - _tmp$1 = x; - x = _tmp; - y = _tmp$1; - } - _r$3 = (nat.nil).sub(y.abs, natOne); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - y1$1 = _r$3; - _r$4 = z.abs.add(z.abs.andNot(y1$1, x.abs), natOne); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - z.abs = _r$4; - z.neg = true; - $s = -1; return z; - /* */ } return; } var $f = {$blk: Or, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _tmp, _tmp$1, x, x1, y, y1, y1$1, z, $s};return $f; - }; - $ptrType(Int).prototype.Xor = function Xor(x, y) { - var {_r, _r$1, _r$2, _r$3, _tmp, _tmp$1, x, x1, y, y1, y1$1, z, $s, $r, $c} = $restore(this, {x, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - /* */ if (x.neg === y.neg) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (x.neg === y.neg) { */ case 1: - /* */ if (x.neg) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (x.neg) { */ case 3: - _r = (nat.nil).sub(x.abs, natOne); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - x1 = _r; - _r$1 = (nat.nil).sub(y.abs, natOne); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - y1 = _r$1; - z.abs = z.abs.xor(x1, y1); - z.neg = false; - $s = -1; return z; - /* } */ case 4: - z.abs = z.abs.xor(x.abs, y.abs); - z.neg = false; - $s = -1; return z; - /* } */ case 2: - if (x.neg) { - _tmp = y; - _tmp$1 = x; - x = _tmp; - y = _tmp$1; - } - _r$2 = (nat.nil).sub(y.abs, natOne); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - y1$1 = _r$2; - _r$3 = z.abs.add(z.abs.xor(x.abs, y1$1), natOne); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - z.abs = _r$3; - z.neg = true; - $s = -1; return z; - /* */ } return; } var $f = {$blk: Xor, $c: true, $r, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, x, x1, y, y1, y1$1, z, $s};return $f; - }; - $ptrType(Int).prototype.Not = function Not(x) { - var {_r, _r$1, x, z, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - /* */ if (x.neg) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (x.neg) { */ case 1: - _r = z.abs.sub(x.abs, natOne); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - z.abs = _r; - z.neg = false; - $s = -1; return z; - /* } */ case 2: - _r$1 = z.abs.add(x.abs, natOne); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - z.abs = _r$1; - z.neg = true; - $s = -1; return z; - /* */ } return; } var $f = {$blk: Not, $c: true, $r, _r, _r$1, x, z, $s};return $f; - }; - $ptrType(Int).prototype.Sqrt = function Sqrt$1(x) { - var {_r, x, z, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - if (x.neg) { - $panic(new $String("square root of negative number")); - } - z.neg = false; - _r = z.abs.sqrt(x.abs); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - z.abs = _r; - $s = -1; return z; - /* */ } return; } var $f = {$blk: Sqrt$1, $c: true, $r, _r, x, z, $s};return $f; - }; - $ptrType(Float).prototype.Text = function Text$1(format, prec) { - var {$24r, _r, cap, format, prec, x, $s, $r, $c} = $restore(this, {format, prec}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - cap = 10; - if (prec > 0) { - cap = cap + (prec) >> 0; - } - _r = x.Append($makeSlice(sliceType$1, 0, cap), format, prec); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = ($bytesToString(_r)); - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Text$1, $c: true, $r, $24r, _r, cap, format, prec, x, $s};return $f; - }; - $ptrType(Float).prototype.String = function String$4() { - var {$24r, _r, x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - _r = x.Text(103, 10); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$4, $c: true, $r, $24r, _r, x, $s};return $f; - }; - $ptrType(Float).prototype.Append = function Append$1(buf, fmt$1, prec) { - var {$24r, $24r$1, $24r$2, _1, _2, _3, _4, _r, _r$1, _r$2, buf, d, eprec, exp$1, fmt$1, prec, shortest, x, $s, $r, $c} = $restore(this, {buf, fmt$1, prec}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - d = [d]; - x = this; - if (x.neg) { - buf = $append(buf, 45); - } - if (x.form === 2) { - if (!x.neg) { - buf = $append(buf, 43); - } - $s = -1; return $appendSlice(buf, "Inf"); - } - _1 = fmt$1; - /* */ if (_1 === (98)) { $s = 2; continue; } - /* */ if (_1 === (112)) { $s = 3; continue; } - /* */ if (_1 === (120)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_1 === (98)) { */ case 2: - _r = x.fmtB(buf); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 7; case 7: return $24r; - /* } else if (_1 === (112)) { */ case 3: - _r$1 = x.fmtP(buf); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r$1 = _r$1; - $s = 9; case 9: return $24r$1; - /* } else if (_1 === (120)) { */ case 4: - _r$2 = x.fmtX(buf, prec); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r$2 = _r$2; - $s = 11; case 11: return $24r$2; - /* } */ case 5: - case 1: - d[0] = new decimal.ptr(sliceType$1.nil, 0); - /* */ if (x.form === 1) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (x.form === 1) { */ case 12: - $r = d[0].init(x.mant, ((x.exp >> 0)) - x.mant.bitLen() >> 0); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 13: - shortest = false; - /* */ if (prec < 0) { $s = 15; continue; } - /* */ $s = 16; continue; - /* if (prec < 0) { */ case 15: - shortest = true; - $r = roundShortest(d[0], x); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _2 = fmt$1; - if ((_2 === (101)) || (_2 === (69))) { - prec = d[0].mant.$length - 1 >> 0; - } else if (_2 === (102)) { - prec = max(d[0].mant.$length - d[0].exp >> 0, 0); - } else if ((_2 === (103)) || (_2 === (71))) { - prec = d[0].mant.$length; - } - $s = 17; continue; - /* } else { */ case 16: - _3 = fmt$1; - if ((_3 === (101)) || (_3 === (69))) { - d[0].round(1 + prec >> 0); - } else if (_3 === (102)) { - d[0].round(d[0].exp + prec >> 0); - } else if ((_3 === (103)) || (_3 === (71))) { - if (prec === 0) { - prec = 1; - } - d[0].round(prec); - } - /* } */ case 17: - _4 = fmt$1; - if ((_4 === (101)) || (_4 === (69))) { - $s = -1; return fmtE(buf, fmt$1, prec, $clone(d[0], decimal)); - } else if (_4 === (102)) { - $s = -1; return fmtF(buf, prec, $clone(d[0], decimal)); - } else if ((_4 === (103)) || (_4 === (71))) { - eprec = prec; - if (eprec > d[0].mant.$length && d[0].mant.$length >= d[0].exp) { - eprec = d[0].mant.$length; - } - if (shortest) { - eprec = 6; - } - exp$1 = d[0].exp - 1 >> 0; - if (exp$1 < -4 || exp$1 >= eprec) { - if (prec > d[0].mant.$length) { - prec = d[0].mant.$length; - } - $s = -1; return fmtE(buf, (fmt$1 + 101 << 24 >>> 24) - 103 << 24 >>> 24, prec - 1 >> 0, $clone(d[0], decimal)); - } - if (prec > d[0].exp) { - prec = d[0].mant.$length; - } - $s = -1; return fmtF(buf, max(prec - d[0].exp >> 0, 0), $clone(d[0], decimal)); - } - if (x.neg) { - buf = $subslice(buf, 0, (buf.$length - 1 >> 0)); - } - $s = -1; return $append(buf, 37, fmt$1); - /* */ } return; } var $f = {$blk: Append$1, $c: true, $r, $24r, $24r$1, $24r$2, _1, _2, _3, _4, _r, _r$1, _r$2, buf, d, eprec, exp$1, fmt$1, prec, shortest, x, $s};return $f; - }; - roundShortest = function roundShortest$1(d, x) { - var {_i, _r, _r$1, _ref, d, exp$1, i, inclusive, l, lower, m, mant, okdown, okup, s, tmp, u, upper, x, $s, $r, $c} = $restore(this, {d, x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (d.mant.$length === 0) { - $s = -1; return; - } - mant = (nat.nil).set(x.mant); - exp$1 = ((x.exp >> 0)) - mant.bitLen() >> 0; - s = mant.bitLen() - (((x.prec + 1 >>> 0) >> 0)) >> 0; - if (s < 0) { - mant = mant.shl(mant, ((-s >>> 0))); - } else if (s > 0) { - mant = mant.shr(mant, ((s >>> 0))); - } - exp$1 = exp$1 + (s) >> 0; - lower = new decimal.ptr(sliceType$1.nil, 0); - tmp = nat.nil; - _r = tmp.sub(mant, natOne); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $r = lower.init(_r, exp$1); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - upper = new decimal.ptr(sliceType$1.nil, 0); - _r$1 = tmp.add(mant, natOne); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $r = upper.init(_r$1, exp$1); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - inclusive = (((0 >= mant.$length ? ($throwRuntimeError("index out of range"), undefined) : mant.$array[mant.$offset + 0]) & 2) >>> 0) === 0; - _ref = d.mant; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - m = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - l = lower.at(i); - u = upper.at(i); - okdown = !((l === m)) || inclusive && ((i + 1 >> 0) === lower.mant.$length); - okup = !((m === u)) && (inclusive || (m + 1 << 24 >>> 24) < u || (i + 1 >> 0) < upper.mant.$length); - if (okdown && okup) { - d.round(i + 1 >> 0); - $s = -1; return; - } else if (okdown) { - d.roundDown(i + 1 >> 0); - $s = -1; return; - } else if (okup) { - d.roundUp(i + 1 >> 0); - $s = -1; return; - } - _i++; - } - $s = -1; return; - /* */ } return; } var $f = {$blk: roundShortest$1, $c: true, $r, _i, _r, _r$1, _ref, d, exp$1, i, inclusive, l, lower, m, mant, okdown, okup, s, tmp, u, upper, x, $s};return $f; - }; - fmtE = function fmtE$1(buf, fmt$1, prec, d) { - var buf, ch, d, exp$1, fmt$1, i, m, prec, x, x$1; - ch = 48; - if (d.mant.$length > 0) { - ch = (x = d.mant, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); - } - buf = $append(buf, ch); - if (prec > 0) { - buf = $append(buf, 46); - i = 1; - m = min(d.mant.$length, prec + 1 >> 0); - if (i < m) { - buf = $appendSlice(buf, $subslice(d.mant, i, m)); - i = m; - } - while (true) { - if (!(i <= prec)) { break; } - buf = $append(buf, 48); - i = i + (1) >> 0; - } - } - buf = $append(buf, fmt$1); - exp$1 = new $Int64(0, 0); - if (d.mant.$length > 0) { - exp$1 = (x$1 = (new $Int64(0, d.exp)), new $Int64(x$1.$high - 0, x$1.$low - 1)); - } - if ((exp$1.$high < 0 || (exp$1.$high === 0 && exp$1.$low < 0))) { - ch = 45; - exp$1 = new $Int64(-exp$1.$high, -exp$1.$low); - } else { - ch = 43; - } - buf = $append(buf, ch); - if ((exp$1.$high < 0 || (exp$1.$high === 0 && exp$1.$low < 10))) { - buf = $append(buf, 48); - } - return strconv.AppendInt(buf, exp$1, 10); - }; - fmtF = function fmtF$1(buf, prec, d) { - var buf, d, i, m, prec; - if (d.exp > 0) { - m = min(d.mant.$length, d.exp); - buf = $appendSlice(buf, $subslice(d.mant, 0, m)); - while (true) { - if (!(m < d.exp)) { break; } - buf = $append(buf, 48); - m = m + (1) >> 0; - } - } else { - buf = $append(buf, 48); - } - if (prec > 0) { - buf = $append(buf, 46); - i = 0; - while (true) { - if (!(i < prec)) { break; } - buf = $append(buf, d.at(d.exp + i >> 0)); - i = i + (1) >> 0; - } - } - return buf; - }; - $ptrType(Float).prototype.fmtB = function fmtB(buf) { - var {_arg, _arg$1, _r, buf, e, m, w, x, x$1, x$2, $s, $r, $c} = $restore(this, {buf}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - if (x.form === 0) { - $s = -1; return $append(buf, 48); - } - if (false && !((x.form === 1))) { - $panic(new $String("non-finite float")); - } - m = x.mant; - w = $imul(((x.mant.$length >>> 0)), 32) >>> 0; - if (w < x.prec) { - m = (nat.nil).shl(m, (((x.prec - w >>> 0) >>> 0))); - } else if (w > x.prec) { - m = (nat.nil).shr(m, (((w - x.prec >>> 0) >>> 0))); - } - _arg = buf; - _r = m.utoa(10); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _arg$1 = _r; - buf = $appendSlice(_arg, _arg$1); - buf = $append(buf, 112); - e = (x$1 = (new $Int64(0, x.exp)), x$2 = (new $Int64(0, x.prec)), new $Int64(x$1.$high - x$2.$high, x$1.$low - x$2.$low)); - if ((e.$high > 0 || (e.$high === 0 && e.$low >= 0))) { - buf = $append(buf, 43); - } - $s = -1; return strconv.AppendInt(buf, e, 10); - /* */ } return; } var $f = {$blk: fmtB, $c: true, $r, _arg, _arg$1, _r, buf, e, m, w, x, x$1, x$2, $s};return $f; - }; - $ptrType(Float).prototype.fmtX = function fmtX(buf, prec) { - var {_q, _r, _r$1, _r$2, _r$3, buf, exp64, hm, i, m, n, prec, w, x, x$1, $s, $r, $c} = $restore(this, {buf, prec}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - if (x.form === 0) { - buf = $appendSlice(buf, "0x0"); - if (prec > 0) { - buf = $append(buf, 46); - i = 0; - while (true) { - if (!(i < prec)) { break; } - buf = $append(buf, 48); - i = i + (1) >> 0; - } - } - buf = $appendSlice(buf, "p+00"); - $s = -1; return buf; - } - if (false && !((x.form === 1))) { - $panic(new $String("non-finite float")); - } - n = 0; - if (prec < 0) { - n = 1 + ($imul((_q = (((x.MinPrec() - 1 >>> 0) + 3 >>> 0)) / 4, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")), 4) >>> 0) >>> 0; - } else { - n = 1 + ($imul(4, ((prec >>> 0))) >>> 0) >>> 0; - } - _r = new Float.ptr(0, 0, 0, 0, false, nat.nil, 0).SetPrec(n); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = _r.SetMode(x.mode); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = _r$1.Set(x); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - x = _r$2; - m = x.mant; - w = $imul(((x.mant.$length >>> 0)), 32) >>> 0; - if (w < n) { - m = (nat.nil).shl(m, n - w >>> 0); - } else if (w > n) { - m = (nat.nil).shr(m, w - n >>> 0); - } - exp64 = (x$1 = (new $Int64(0, x.exp)), new $Int64(x$1.$high - 0, x$1.$low - 1)); - _r$3 = m.utoa(16); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - hm = _r$3; - if (false && !(((0 >= hm.$length ? ($throwRuntimeError("index out of range"), undefined) : hm.$array[hm.$offset + 0]) === 49))) { - $panic(new $String("incorrect mantissa: " + ($bytesToString(hm)))); - } - buf = $appendSlice(buf, "0x1"); - if (hm.$length > 1) { - buf = $append(buf, 46); - buf = $appendSlice(buf, $subslice(hm, 1)); - } - buf = $append(buf, 112); - if ((exp64.$high > 0 || (exp64.$high === 0 && exp64.$low >= 0))) { - buf = $append(buf, 43); - } else { - exp64 = new $Int64(-exp64.$high, -exp64.$low); - buf = $append(buf, 45); - } - if ((exp64.$high < 0 || (exp64.$high === 0 && exp64.$low < 10))) { - buf = $append(buf, 48); - } - $s = -1; return strconv.AppendInt(buf, exp64, 10); - /* */ } return; } var $f = {$blk: fmtX, $c: true, $r, _q, _r, _r$1, _r$2, _r$3, buf, exp64, hm, i, m, n, prec, w, x, x$1, $s};return $f; - }; - $ptrType(Float).prototype.fmtP = function fmtP(buf) { - var {_arg, _arg$1, _r, _r$1, buf, i, m, x, $s, $r, $c} = $restore(this, {buf}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - if (x.form === 0) { - $s = -1; return $append(buf, 48); - } - if (false && !((x.form === 1))) { - $panic(new $String("non-finite float")); - } - m = x.mant; - i = 0; - while (true) { - if (!(i < m.$length && (((i < 0 || i >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + i]) === 0))) { break; } - i = i + (1) >> 0; - } - m = $subslice(m, i); - buf = $appendSlice(buf, "0x."); - _arg = buf; - _r = m.utoa(16); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = bytes.TrimRight(_r, "0"); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _arg$1 = _r$1; - buf = $appendSlice(_arg, _arg$1); - buf = $append(buf, 112); - if (x.exp >= 0) { - buf = $append(buf, 43); - } - $s = -1; return strconv.AppendInt(buf, (new $Int64(0, x.exp)), 10); - /* */ } return; } var $f = {$blk: fmtP, $c: true, $r, _arg, _arg$1, _r, _r$1, buf, i, m, x, $s};return $f; - }; - min = function min$1(x, y) { - var x, y; - if (x < y) { - return x; - } - return y; - }; - $ptrType(Float).prototype.Format = function Format$1(s, format) { - var {_1, _arg, _arg$1, _arg$2, _r, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, buf, format, hasPrec, hasWidth, padding, prec, s, sign, width, x, $s, $r, $c} = $restore(this, {s, format}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - _r = s.Precision(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - prec = _tuple[0]; - hasPrec = _tuple[1]; - if (!hasPrec) { - prec = 6; - } - _1 = format; - /* */ if ((_1 === (101)) || (_1 === (69)) || (_1 === (102)) || (_1 === (98)) || (_1 === (112)) || (_1 === (120))) { $s = 3; continue; } - /* */ if (_1 === (70)) { $s = 4; continue; } - /* */ if (_1 === (118)) { $s = 5; continue; } - /* */ if ((_1 === (103)) || (_1 === (71))) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if ((_1 === (101)) || (_1 === (69)) || (_1 === (102)) || (_1 === (98)) || (_1 === (112)) || (_1 === (120))) { */ case 3: - $s = 8; continue; - /* } else if (_1 === (70)) { */ case 4: - format = 102; - $s = 8; continue; - /* } else if (_1 === (118)) { */ case 5: - format = 103; - if (!hasPrec) { - prec = -1; - } - $s = 8; continue; - /* } else if ((_1 === (103)) || (_1 === (71))) { */ case 6: - if (!hasPrec) { - prec = -1; - } - $s = 8; continue; - /* } else { */ case 7: - _arg = s; - _arg$1 = new $Int32(format); - _r$1 = x.String(); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _arg$2 = new $String(_r$1); - _r$2 = fmt.Fprintf(_arg, "%%!%c(*big.Float=%s)", new sliceType([_arg$1, _arg$2])); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - $s = -1; return; - /* } */ case 8: - case 2: - buf = sliceType$1.nil; - _r$3 = x.Append(buf, ((format << 24 >>> 24)), prec); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - buf = _r$3; - if (buf.$length === 0) { - buf = (new sliceType$1($stringToBytes("?"))); - } - sign = ""; - /* */ if (((0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]) === 45)) { $s = 13; continue; } - /* */ if (((0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]) === 43)) { $s = 14; continue; } - _r$4 = s.Flag(43); /* */ $s = 18; case 18: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if (_r$4) { $s = 15; continue; } - _r$5 = s.Flag(32); /* */ $s = 19; case 19: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* */ if (_r$5) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (((0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]) === 45)) { */ case 13: - sign = "-"; - buf = $subslice(buf, 1); - $s = 17; continue; - /* } else if (((0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]) === 43)) { */ case 14: - sign = "+"; - _r$6 = s.Flag(32); /* */ $s = 22; case 22: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - /* */ if (_r$6) { $s = 20; continue; } - /* */ $s = 21; continue; - /* if (_r$6) { */ case 20: - sign = " "; - /* } */ case 21: - buf = $subslice(buf, 1); - $s = 17; continue; - /* } else if (_r$4) { */ case 15: - sign = "+"; - $s = 17; continue; - /* } else if (_r$5) { */ case 16: - sign = " "; - /* } */ case 17: - case 12: - padding = 0; - _r$7 = s.Width(); /* */ $s = 23; case 23: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _tuple$1 = _r$7; - width = _tuple$1[0]; - hasWidth = _tuple$1[1]; - if (hasWidth && width > (sign.length + buf.$length >> 0)) { - padding = (width - sign.length >> 0) - buf.$length >> 0; - } - _r$8 = s.Flag(48); /* */ $s = 29; case 29: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - /* */ if (_r$8 && !x.IsInf()) { $s = 25; continue; } - _r$9 = s.Flag(45); /* */ $s = 30; case 30: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - /* */ if (_r$9) { $s = 26; continue; } - /* */ $s = 27; continue; - /* if (_r$8 && !x.IsInf()) { */ case 25: - $r = writeMultiple(s, sign, 1); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = writeMultiple(s, "0", padding); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$10 = s.Write(buf); /* */ $s = 33; case 33: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _r$10; - $s = 28; continue; - /* } else if (_r$9) { */ case 26: - $r = writeMultiple(s, sign, 1); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$11 = s.Write(buf); /* */ $s = 35; case 35: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _r$11; - $r = writeMultiple(s, " ", padding); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 28; continue; - /* } else { */ case 27: - $r = writeMultiple(s, " ", padding); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = writeMultiple(s, sign, 1); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$12 = s.Write(buf); /* */ $s = 39; case 39: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _r$12; - /* } */ case 28: - case 24: - $s = -1; return; - /* */ } return; } var $f = {$blk: Format$1, $c: true, $r, _1, _arg, _arg$1, _arg$2, _r, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, buf, format, hasPrec, hasWidth, padding, prec, s, sign, width, x, $s};return $f; - }; - $ptrType(Float).prototype.GobEncode = function GobEncode$2() { - var _q, b, buf, n, sz, x; - x = this; - if (x === ptrType.nil) { - return [sliceType$1.nil, $ifaceNil]; - } - sz = 6; - n = 0; - if (x.form === 1) { - n = (((_q = ((x.prec + 31 >>> 0)) / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")) >> 0)); - if (x.mant.$length < n) { - n = x.mant.$length; - } - sz = sz + ((4 + ($imul(n, 4)) >> 0)) >> 0; - } - buf = $makeSlice(sliceType$1, sz); - (0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0] = 1); - b = ((((((((x.mode & 7) >>> 0) << 24 >>> 24)) << 5 << 24 >>> 24) | ((((((x.acc + 1 << 24 >> 24)) & 3) << 24 >>> 24)) << 3 << 24 >>> 24)) >>> 0) | (((((x.form & 3) >>> 0) << 24 >>> 24)) << 1 << 24 >>> 24)) >>> 0; - if (x.neg) { - b = (b | (1)) >>> 0; - } - (1 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 1] = b); - $clone(binary.BigEndian, binary.bigEndian).PutUint32($subslice(buf, 2), x.prec); - if (x.form === 1) { - $clone(binary.BigEndian, binary.bigEndian).PutUint32($subslice(buf, 6), ((x.exp >>> 0))); - $subslice(x.mant, (x.mant.$length - n >> 0)).bytes($subslice(buf, 10)); - } - return [buf, $ifaceNil]; - }; - $ptrType(Float).prototype.GobDecode = function GobDecode$2(buf) { - var {$24r, _r, _r$1, b, buf, oldMode, oldPrec, z, $s, $r, $c} = $restore(this, {buf}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - if (buf.$length === 0) { - Float.copy(z, new Float.ptr(0, 0, 0, 0, false, nat.nil, 0)); - $s = -1; return $ifaceNil; - } - if (buf.$length < 6) { - $s = -1; return errors.New("Float.GobDecode: buffer too small"); - } - /* */ if (!(((0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]) === 1))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(((0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]) === 1))) { */ case 1: - _r = fmt.Errorf("Float.GobDecode: encoding version %d not supported", new sliceType([new $Uint8((0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]))])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 4; case 4: return $24r; - /* } */ case 2: - oldPrec = z.prec; - oldMode = z.mode; - b = (1 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 1]); - z.mode = ((((((b >>> 5 << 24 >>> 24)) & 7) >>> 0) << 24 >>> 24)); - z.acc = ((((((b >>> 3 << 24 >>> 24)) & 3) >>> 0) << 24 >> 24)) - 1 << 24 >> 24; - z.form = ((((((b >>> 1 << 24 >>> 24)) & 3) >>> 0) << 24 >>> 24)); - z.neg = !((((b & 1) >>> 0) === 0)); - z.prec = $clone(binary.BigEndian, binary.bigEndian).Uint32($subslice(buf, 2)); - if (z.form === 1) { - if (buf.$length < 10) { - $s = -1; return errors.New("Float.GobDecode: buffer too small for finite form float"); - } - z.exp = (($clone(binary.BigEndian, binary.bigEndian).Uint32($subslice(buf, 6)) >> 0)); - z.mant = z.mant.setBytes($subslice(buf, 10)); - } - /* */ if (!((oldPrec === 0))) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (!((oldPrec === 0))) { */ case 5: - z.mode = oldMode; - _r$1 = z.SetPrec(((oldPrec >>> 0))); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - /* } */ case 6: - $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: GobDecode$2, $c: true, $r, $24r, _r, _r$1, b, buf, oldMode, oldPrec, z, $s};return $f; - }; - $ptrType(Float).prototype.MarshalText = function MarshalText$2() { - var {$24r, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, buf, err, text, x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - text = sliceType$1.nil; - err = $ifaceNil; - x = this; - if (x === ptrType.nil) { - _tmp = (new sliceType$1($stringToBytes(""))); - _tmp$1 = $ifaceNil; - text = _tmp; - err = _tmp$1; - $s = -1; return [text, err]; - } - buf = sliceType$1.nil; - _r = x.Append(buf, 103, -1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tmp$2 = _r; - _tmp$3 = $ifaceNil; - text = _tmp$2; - err = _tmp$3; - $24r = [text, err]; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: MarshalText$2, $c: true, $r, $24r, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, buf, err, text, x, $s};return $f; - }; - $ptrType(Float).prototype.UnmarshalText = function UnmarshalText$2(text) { - var {_r, _r$1, _tuple, err, text, z, $s, $r, $c} = $restore(this, {text}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - _r = z.Parse(($bytesToString(text)), 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - err = _tuple[2]; - /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2: - _r$1 = fmt.Errorf("math/big: cannot unmarshal %q into a *big.Float (%v)", new sliceType([text, err])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - err = _r$1; - /* } */ case 3: - $s = -1; return err; - /* */ } return; } var $f = {$blk: UnmarshalText$2, $c: true, $r, _r, _r$1, _tuple, err, text, z, $s};return $f; - }; - $ptrType(Float).prototype.SetString = function SetString$2(s) { - var {_r, _tuple, err, f, s, z, $s, $r, $c} = $restore(this, {s}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - _r = z.Parse(s, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - f = _tuple[0]; - err = _tuple[2]; - if ($interfaceIsEqual(err, $ifaceNil)) { - $s = -1; return [f, true]; - } - $s = -1; return [ptrType.nil, false]; - /* */ } return; } var $f = {$blk: SetString$2, $c: true, $r, _r, _tuple, err, f, s, z, $s};return $f; - }; - $ptrType(Float).prototype.scan = function scan$2(r, base) { - var {_1, _2, _arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _tuple, _tuple$1, _tuple$2, b, base, d, ebase, err, exp$1, exp2, exp5, f, fcount, p, prec, r, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, z, $s, $r, $c} = $restore(this, {r, base}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - f = ptrType.nil; - b = 0; - err = $ifaceNil; - z = this; - prec = z.prec; - if (prec === 0) { - prec = 64; - } - z.form = 0; - _r = scanSign(r); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - z.neg = _tuple[0]; - err = _tuple[1]; - if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [f, b, err]; - } - fcount = 0; - _r$1 = z.mant.scan(r, base, true); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$1 = _r$1; - z.mant = _tuple$1[0]; - b = _tuple$1[1]; - fcount = _tuple$1[2]; - err = _tuple$1[3]; - if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [f, b, err]; - } - exp$1 = new $Int64(0, 0); - ebase = 0; - _r$2 = scanExponent(r, true, base === 0); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple$2 = _r$2; - exp$1 = _tuple$2[0]; - ebase = _tuple$2[1]; - err = _tuple$2[2]; - if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [f, b, err]; - } - if (z.mant.$length === 0) { - z.prec = prec; - z.acc = 0; - z.form = 0; - f = z; - $s = -1; return [f, b, err]; - } - exp2 = (x = $mul64((new $Int64(0, z.mant.$length)), new $Int64(0, 32)), x$1 = fnorm(z.mant), new $Int64(x.$high - x$1.$high, x.$low - x$1.$low)); - exp5 = new $Int64(0, 0); - if (fcount < 0) { - d = (new $Int64(0, fcount)); - _1 = b; - if (_1 === (10)) { - exp5 = d; - exp2 = (x$2 = d, new $Int64(exp2.$high + x$2.$high, exp2.$low + x$2.$low)); - } else if (_1 === (2)) { - exp2 = (x$3 = d, new $Int64(exp2.$high + x$3.$high, exp2.$low + x$3.$low)); - } else if (_1 === (8)) { - exp2 = (x$4 = $mul64(d, new $Int64(0, 3)), new $Int64(exp2.$high + x$4.$high, exp2.$low + x$4.$low)); - } else if (_1 === (16)) { - exp2 = (x$5 = $mul64(d, new $Int64(0, 4)), new $Int64(exp2.$high + x$5.$high, exp2.$low + x$5.$low)); - } else { - $panic(new $String("unexpected mantissa base")); - } - } - _2 = ebase; - if (_2 === (10)) { - exp5 = (x$6 = exp$1, new $Int64(exp5.$high + x$6.$high, exp5.$low + x$6.$low)); - exp2 = (x$7 = exp$1, new $Int64(exp2.$high + x$7.$high, exp2.$low + x$7.$low)); - } else if (_2 === (2)) { - exp2 = (x$8 = exp$1, new $Int64(exp2.$high + x$8.$high, exp2.$low + x$8.$low)); - } else { - $panic(new $String("unexpected exponent base")); - } - /* */ if ((-1 < exp2.$high || (-1 === exp2.$high && 2147483648 <= exp2.$low)) && (exp2.$high < 0 || (exp2.$high === 0 && exp2.$low <= 2147483647))) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if ((-1 < exp2.$high || (-1 === exp2.$high && 2147483648 <= exp2.$low)) && (exp2.$high < 0 || (exp2.$high === 0 && exp2.$low <= 2147483647))) { */ case 4: - z.prec = prec; - z.form = 1; - z.exp = (((exp2.$low + ((exp2.$high >> 31) * 4294967296)) >> 0)); - f = z; - $s = 6; continue; - /* } else { */ case 5: - _r$3 = fmt.Errorf("exponent overflow", sliceType.nil); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - err = _r$3; - $s = -1; return [f, b, err]; - /* } */ case 6: - /* */ if ((exp5.$high === 0 && exp5.$low === 0)) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if ((exp5.$high === 0 && exp5.$low === 0)) { */ case 8: - $r = z.round(0); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return [f, b, err]; - /* } */ case 9: - _r$4 = new Float.ptr(0, 0, 0, 0, false, nat.nil, 0).SetPrec(z.Prec() + 64 >>> 0); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - p = _r$4; - /* */ if ((exp5.$high < 0 || (exp5.$high === 0 && exp5.$low < 0))) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if ((exp5.$high < 0 || (exp5.$high === 0 && exp5.$low < 0))) { */ case 12: - _arg = z; - _r$5 = p.pow5(((x$9 = new $Int64(-exp5.$high, -exp5.$low), new $Uint64(x$9.$high, x$9.$low)))); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _arg$1 = _r$5; - _r$6 = z.Quo(_arg, _arg$1); /* */ $s = 16; case 16: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _r$6; - $s = 14; continue; - /* } else { */ case 13: - _arg$2 = z; - _r$7 = p.pow5((new $Uint64(exp5.$high, exp5.$low))); /* */ $s = 17; case 17: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _arg$3 = _r$7; - _r$8 = z.Mul(_arg$2, _arg$3); /* */ $s = 18; case 18: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _r$8; - /* } */ case 14: - $s = -1; return [f, b, err]; - /* */ } return; } var $f = {$blk: scan$2, $c: true, $r, _1, _2, _arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _tuple, _tuple$1, _tuple$2, b, base, d, ebase, err, exp$1, exp2, exp5, f, fcount, p, prec, r, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, z, $s};return $f; - }; - $ptrType(Float).prototype.pow5 = function pow5(n) { - var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, f, n, x, x$1, z, $s, $r, $c} = $restore(this, {n}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - /* */ if ((n.$high < 0 || (n.$high === 0 && n.$low <= 27))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if ((n.$high < 0 || (n.$high === 0 && n.$low <= 27))) { */ case 1: - _r = z.SetUint64((($flatten64(n) < 0 || $flatten64(n) >= pow5tab.length) ? ($throwRuntimeError("index out of range"), undefined) : pow5tab[$flatten64(n)])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 4; case 4: return $24r; - /* } */ case 2: - _r$1 = z.SetUint64(pow5tab[27]); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - n = (x = new $Uint64(0, 27), new $Uint64(n.$high - x.$high, n.$low - x.$low)); - _r$2 = new Float.ptr(0, 0, 0, 0, false, nat.nil, 0).SetPrec(z.Prec() + 64 >>> 0); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = _r$2.SetUint64(new $Uint64(0, 5)); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - f = _r$3; - /* while (true) { */ case 8: - /* if (!((n.$high > 0 || (n.$high === 0 && n.$low > 0)))) { break; } */ if(!((n.$high > 0 || (n.$high === 0 && n.$low > 0)))) { $s = 9; continue; } - /* */ if (!((x$1 = new $Uint64(n.$high & 0, (n.$low & 1) >>> 0), (x$1.$high === 0 && x$1.$low === 0)))) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (!((x$1 = new $Uint64(n.$high & 0, (n.$low & 1) >>> 0), (x$1.$high === 0 && x$1.$low === 0)))) { */ case 10: - _r$4 = z.Mul(z, f); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$4; - /* } */ case 11: - _r$5 = f.Mul(f, f); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$5; - n = $shiftRightUint64(n, (1)); - $s = 8; continue; - case 9: - $s = -1; return z; - /* */ } return; } var $f = {$blk: pow5, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, f, n, x, x$1, z, $s};return $f; - }; - $ptrType(Float).prototype.Parse = function Parse(s, base) { - var {_r, _r$1, _tuple, _tuple$1, b, base, ch, err, err2, f, r, s, z, $s, $r, $c} = $restore(this, {s, base}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - f = ptrType.nil; - b = 0; - err = $ifaceNil; - z = this; - if ((s.length === 3) && (s === "Inf" || s === "inf")) { - f = z.SetInf(false); - $s = -1; return [f, b, err]; - } - if ((s.length === 4) && ((s.charCodeAt(0) === 43) || (s.charCodeAt(0) === 45)) && ($substring(s, 1) === "Inf" || $substring(s, 1) === "inf")) { - f = z.SetInf(s.charCodeAt(0) === 45); - $s = -1; return [f, b, err]; - } - r = strings.NewReader(s); - _r = z.scan(r, base); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - f = _tuple[0]; - b = _tuple[1]; - err = _tuple[2]; - if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [f, b, err]; - } - _tuple$1 = r.ReadByte(); - ch = _tuple$1[0]; - err2 = _tuple$1[1]; - /* */ if ($interfaceIsEqual(err2, $ifaceNil)) { $s = 2; continue; } - /* */ if (!($interfaceIsEqual(err2, io.EOF))) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if ($interfaceIsEqual(err2, $ifaceNil)) { */ case 2: - _r$1 = fmt.Errorf("expected end of string, found %q", new sliceType([new $Uint8(ch)])); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - err = _r$1; - $s = 4; continue; - /* } else if (!($interfaceIsEqual(err2, io.EOF))) { */ case 3: - err = err2; - /* } */ case 4: - $s = -1; return [f, b, err]; - /* */ } return; } var $f = {$blk: Parse, $c: true, $r, _r, _r$1, _tuple, _tuple$1, b, base, ch, err, err2, f, r, s, z, $s};return $f; - }; - $ptrType(Float).prototype.Scan = function Scan$2(s, ch) { - var {_r, _tuple, ch, err, s, x, z, $s, $r, $c} = $restore(this, {s, ch}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - $r = s.SkipSpace(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r = z.scan((x = new byteReader.ptr(s), new x.constructor.elem(x)), 0); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - err = _tuple[2]; - $s = -1; return err; - /* */ } return; } var $f = {$blk: Scan$2, $c: true, $r, _r, _tuple, ch, err, s, x, z, $s};return $f; - }; - $ptrType(ErrNaN).prototype.Error = function Error() { - var err; - err = this; - return err.msg; - }; - ErrNaN.prototype.Error = function(...$args) { return this.$val.Error(...$args); }; - NewFloat = function NewFloat$1(x) { - var {$24r, _r, x, x$1, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (math.IsNaN(x)) { - $panic((x$1 = new ErrNaN.ptr("NewFloat(NaN)"), new x$1.constructor.elem(x$1))); - } - _r = new Float.ptr(0, 0, 0, 0, false, nat.nil, 0).SetFloat64(x); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: NewFloat$1, $c: true, $r, $24r, _r, x, x$1, $s};return $f; - }; - $pkg.NewFloat = NewFloat; - $ptrType(Float).prototype.SetPrec = function SetPrec(prec) { - var {old, prec, z, $s, $r, $c} = $restore(this, {prec}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - z.acc = 0; - if (prec === 0) { - z.prec = 0; - if (z.form === 1) { - z.acc = makeAcc(z.neg); - z.form = 0; - } - $s = -1; return z; - } - if (prec > 4294967295) { - prec = 4294967295; - } - old = z.prec; - z.prec = ((prec >>> 0)); - /* */ if (z.prec < old) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (z.prec < old) { */ case 1: - $r = z.round(0); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - $s = -1; return z; - /* */ } return; } var $f = {$blk: SetPrec, $c: true, $r, old, prec, z, $s};return $f; - }; - makeAcc = function makeAcc$1(above) { - var above; - if (above) { - return 1; - } - return -1; - }; - $ptrType(Float).prototype.SetMode = function SetMode(mode) { - var mode, z; - z = this; - z.mode = mode; - z.acc = 0; - return z; - }; - $ptrType(Float).prototype.Prec = function Prec() { - var x; - x = this; - return ((x.prec >>> 0)); - }; - $ptrType(Float).prototype.MinPrec = function MinPrec() { - var x; - x = this; - if (!((x.form === 1))) { - return 0; - } - return ($imul(((x.mant.$length >>> 0)), 32) >>> 0) - x.mant.trailingZeroBits() >>> 0; - }; - $ptrType(Float).prototype.Mode = function Mode() { - var x; - x = this; - return x.mode; - }; - $ptrType(Float).prototype.Acc = function Acc() { - var x; - x = this; - return x.acc; - }; - $ptrType(Float).prototype.Sign = function Sign$2() { - var {x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - /* */ if (false) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (false) { */ case 1: - $r = x.validate(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - if (x.form === 0) { - $s = -1; return 0; - } - if (x.neg) { - $s = -1; return -1; - } - $s = -1; return 1; - /* */ } return; } var $f = {$blk: Sign$2, $c: true, $r, x, $s};return $f; - }; - $ptrType(Float).prototype.MantExp = function MantExp(mant) { - var {_r, exp$1, mant, x, $s, $r, $c} = $restore(this, {mant}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - exp$1 = 0; - x = this; - /* */ if (false) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (false) { */ case 1: - $r = x.validate(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - if (x.form === 1) { - exp$1 = ((x.exp >> 0)); - } - /* */ if (!(mant === ptrType.nil)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (!(mant === ptrType.nil)) { */ case 4: - _r = mant.Copy(x); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r; - if (mant.form === 1) { - mant.exp = 0; - } - /* } */ case 5: - $s = -1; return exp$1; - /* */ } return; } var $f = {$blk: MantExp, $c: true, $r, _r, exp$1, mant, x, $s};return $f; - }; - $ptrType(Float).prototype.setExpAndRound = function setExpAndRound(exp$1, sbit) { - var {exp$1, sbit, z, $s, $r, $c} = $restore(this, {exp$1, sbit}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - if ((exp$1.$high < -1 || (exp$1.$high === -1 && exp$1.$low < 2147483648))) { - z.acc = makeAcc(z.neg); - z.form = 0; - $s = -1; return; - } - if ((exp$1.$high > 0 || (exp$1.$high === 0 && exp$1.$low > 2147483647))) { - z.acc = makeAcc(!z.neg); - z.form = 2; - $s = -1; return; - } - z.form = 1; - z.exp = (((exp$1.$low + ((exp$1.$high >> 31) * 4294967296)) >> 0)); - $r = z.round(sbit); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: setExpAndRound, $c: true, $r, exp$1, sbit, z, $s};return $f; - }; - $ptrType(Float).prototype.SetMantExp = function SetMantExp(mant, exp$1) { - var {_r, exp$1, mant, x, x$1, z, $s, $r, $c} = $restore(this, {mant, exp$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - /* */ if (false) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (false) { */ case 1: - $r = z.validate(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = mant.validate(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - _r = z.Copy(mant); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r; - /* */ if (z.form === 1) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (z.form === 1) { */ case 6: - $r = z.setExpAndRound((x = (new $Int64(0, z.exp)), x$1 = (new $Int64(0, exp$1)), new $Int64(x.$high + x$1.$high, x.$low + x$1.$low)), 0); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 7: - $s = -1; return z; - /* */ } return; } var $f = {$blk: SetMantExp, $c: true, $r, _r, exp$1, mant, x, x$1, z, $s};return $f; - }; - $ptrType(Float).prototype.Signbit = function Signbit() { - var x; - x = this; - return x.neg; - }; - $ptrType(Float).prototype.IsInf = function IsInf() { - var x; - x = this; - return x.form === 2; - }; - $ptrType(Float).prototype.IsInt = function IsInt$1() { - var {x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - /* */ if (false) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (false) { */ case 1: - $r = x.validate(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - if (!((x.form === 1))) { - $s = -1; return x.form === 0; - } - if (x.exp <= 0) { - $s = -1; return false; - } - $s = -1; return x.prec <= ((x.exp >>> 0)) || x.MinPrec() <= ((x.exp >>> 0)); - /* */ } return; } var $f = {$blk: IsInt$1, $c: true, $r, x, $s};return $f; - }; - $ptrType(Float).prototype.validate = function validate() { - var {_arg, _arg$1, _r, _r$1, m, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - if (true) { - $panic(new $String("validate called but debugFloat is not set")); - } - if (!((x.form === 1))) { - $s = -1; return; - } - m = x.mant.$length; - if (m === 0) { - $panic(new $String("nonzero finite number with empty mantissa")); - } - /* */ if ((((x$1 = x.mant, x$2 = m - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])) & 2147483648) >>> 0) === 0) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if ((((x$1 = x.mant, x$2 = m - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])) & 2147483648) >>> 0) === 0) { */ case 1: - _arg = new Word((x$3 = x.mant, x$4 = m - 1 >> 0, ((x$4 < 0 || x$4 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + x$4]))); - _r = x.Text(112, 0); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _arg$1 = new $String(_r); - _r$1 = fmt.Sprintf("msb not set in last word %#x of %s", new sliceType([_arg, _arg$1])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $panic(new $String(_r$1)); - /* } */ case 2: - if (x.prec === 0) { - $panic(new $String("zero precision finite number")); - } - $s = -1; return; - /* */ } return; } var $f = {$blk: validate, $c: true, $r, _arg, _arg$1, _r, _r$1, m, x, x$1, x$2, x$3, x$4, $s};return $f; - }; - $ptrType(Float).prototype.round = function round(sbit) { - var {_1, _index, _q, _r, bits$1, inc, lsb, m, n, ntz, r, rbit, sbit, x, x$1, x$2, x$3, x$4, y, z, $s, $r, $c} = $restore(this, {sbit}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - /* */ if (false) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (false) { */ case 1: - $r = z.validate(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - z.acc = 0; - if (!((z.form === 1))) { - $s = -1; return; - } - m = ((z.mant.$length >>> 0)); - bits$1 = $imul(m, 32) >>> 0; - if (bits$1 <= z.prec) { - $s = -1; return; - } - r = ((((bits$1 - z.prec >>> 0) - 1 >>> 0) >>> 0)); - rbit = (z.mant.bit(r) & 1) >>> 0; - if ((sbit === 0) && ((rbit === 0) || (z.mode === 0))) { - sbit = z.mant.sticky(r); - } - sbit = (sbit & (1)) >>> 0; - n = (_q = ((z.prec + 31 >>> 0)) / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); - if (m > n) { - $copySlice(z.mant, $subslice(z.mant, (m - n >>> 0))); - z.mant = $subslice(z.mant, 0, n); - } - ntz = ($imul(n, 32) >>> 0) - z.prec >>> 0; - lsb = (y = ntz, y < 32 ? (1 << y) : 0) >>> 0; - /* */ if (!((((rbit | sbit) >>> 0) === 0))) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (!((((rbit | sbit) >>> 0) === 0))) { */ case 4: - inc = false; - _1 = z.mode; - if (_1 === (4)) { - inc = z.neg; - } else if (_1 === (2)) { - } else if (_1 === (0)) { - inc = !((rbit === 0)) && (!((sbit === 0)) || !(((((x = z.mant, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) & lsb) >>> 0) === 0))); - } else if (_1 === (1)) { - inc = !((rbit === 0)); - } else if (_1 === (3)) { - inc = true; - } else if (_1 === (5)) { - inc = !z.neg; - } else { - $panic(new $String("unreachable")); - } - z.acc = makeAcc(!(inc === z.neg)); - /* */ if (inc) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (inc) { */ case 6: - _r = addVW($convertSliceType(z.mant, sliceType$2), $convertSliceType(z.mant, sliceType$2), lsb); /* */ $s = 10; case 10: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - /* */ if (!((_r === 0))) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (!((_r === 0))) { */ case 8: - if (z.exp >= 2147483647) { - z.form = 2; - $s = -1; return; - } - z.exp = z.exp + (1) >> 0; - shrVU($convertSliceType(z.mant, sliceType$2), $convertSliceType(z.mant, sliceType$2), 1); - _index = n - 1 >>> 0; - (x$2 = z.mant, ((_index < 0 || _index >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + _index] = (((x$1 = z.mant, ((_index < 0 || _index >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + _index])) | (2147483648)) >>> 0))); - /* } */ case 9: - /* } */ case 7: - /* } */ case 5: - (x$4 = z.mant, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0] = (((x$3 = z.mant, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])) & ~((lsb - 1 >>> 0))) >>> 0))); - /* */ if (false) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (false) { */ case 11: - $r = z.validate(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 12: - $s = -1; return; - /* */ } return; } var $f = {$blk: round, $c: true, $r, _1, _index, _q, _r, bits$1, inc, lsb, m, n, ntz, r, rbit, sbit, x, x$1, x$2, x$3, x$4, y, z, $s};return $f; - }; - $ptrType(Float).prototype.setBits64 = function setBits64(neg, x) { - var {neg, s, x, z, $s, $r, $c} = $restore(this, {neg, x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - if (z.prec === 0) { - z.prec = 64; - } - z.acc = 0; - z.neg = neg; - if ((x.$high === 0 && x.$low === 0)) { - z.form = 0; - $s = -1; return z; - } - z.form = 1; - s = bits.LeadingZeros64(x); - z.mant = z.mant.setUint64($shiftLeft64(x, ((s >>> 0)))); - z.exp = (((64 - s >> 0) >> 0)); - /* */ if (z.prec < 64) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (z.prec < 64) { */ case 1: - $r = z.round(0); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - $s = -1; return z; - /* */ } return; } var $f = {$blk: setBits64, $c: true, $r, neg, s, x, z, $s};return $f; - }; - $ptrType(Float).prototype.SetUint64 = function SetUint64$2(x) { - var {$24r, _r, x, z, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - _r = z.setBits64(false, x); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: SetUint64$2, $c: true, $r, $24r, _r, x, z, $s};return $f; - }; - $ptrType(Float).prototype.SetInt64 = function SetInt64$2(x) { - var {$24r, _r, u, x, z, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - u = x; - if ((u.$high < 0 || (u.$high === 0 && u.$low < 0))) { - u = new $Int64(-u.$high, -u.$low); - } - _r = z.setBits64((x.$high < 0 || (x.$high === 0 && x.$low < 0)), (new $Uint64(u.$high, u.$low))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: SetInt64$2, $c: true, $r, $24r, _r, u, x, z, $s};return $f; - }; - $ptrType(Float).prototype.SetFloat64 = function SetFloat64$1(x) { - var {_tuple, exp$1, fmant, x, x$1, x$2, z, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - if (z.prec === 0) { - z.prec = 53; - } - if (math.IsNaN(x)) { - $panic((x$1 = new ErrNaN.ptr("Float.SetFloat64(NaN)"), new x$1.constructor.elem(x$1))); - } - z.acc = 0; - z.neg = math.Signbit(x); - if (x === 0) { - z.form = 0; - $s = -1; return z; - } - if (math.IsInf(x, 0)) { - z.form = 2; - $s = -1; return z; - } - z.form = 1; - _tuple = math.Frexp(x); - fmant = _tuple[0]; - exp$1 = _tuple[1]; - z.mant = z.mant.setUint64((x$2 = $shiftLeft64(math.Float64bits(fmant), 11), new $Uint64(2147483648 | x$2.$high, (0 | x$2.$low) >>> 0))); - z.exp = ((exp$1 >> 0)); - /* */ if (z.prec < 53) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (z.prec < 53) { */ case 1: - $r = z.round(0); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - $s = -1; return z; - /* */ } return; } var $f = {$blk: SetFloat64$1, $c: true, $r, _tuple, exp$1, fmant, x, x$1, x$2, z, $s};return $f; - }; - fnorm = function fnorm$1(m) { - var c, m, s, x, x$1; - if (false && ((m.$length === 0) || ((x = m.$length - 1 >> 0, ((x < 0 || x >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + x])) === 0))) { - $panic(new $String("msw of mantissa is 0")); - } - s = nlz((x$1 = m.$length - 1 >> 0, ((x$1 < 0 || x$1 >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + x$1]))); - if (s > 0) { - c = shlVU($convertSliceType(m, sliceType$2), $convertSliceType(m, sliceType$2), s); - if (false && !((c === 0))) { - $panic(new $String("nlz or shlVU incorrect")); - } - } - return (new $Int64(0, s)); - }; - $ptrType(Float).prototype.SetInt = function SetInt$1(x) { - var {bits$1, x, z, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - bits$1 = ((x.BitLen() >>> 0)); - if (z.prec === 0) { - z.prec = umax32(bits$1, 64); - } - z.acc = 0; - z.neg = x.neg; - if (x.abs.$length === 0) { - z.form = 0; - $s = -1; return z; - } - z.mant = z.mant.set(x.abs); - fnorm(z.mant); - $r = z.setExpAndRound((new $Int64(0, bits$1)), 0); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return z; - /* */ } return; } var $f = {$blk: SetInt$1, $c: true, $r, bits$1, x, z, $s};return $f; - }; - $ptrType(Float).prototype.SetRat = function SetRat(x) { - var {$24r, $24r$1, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, a, b, x, z, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - a = [a]; - b = [b]; - z = this; - /* */ if (x.IsInt()) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (x.IsInt()) { */ case 1: - _r = z.SetInt(x.Num()); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 4; case 4: return $24r; - /* } */ case 2: - _tmp = new Float.ptr(0, 0, 0, 0, false, nat.nil, 0); - _tmp$1 = new Float.ptr(0, 0, 0, 0, false, nat.nil, 0); - a[0] = $clone(_tmp, Float); - b[0] = $clone(_tmp$1, Float); - _r$1 = a[0].SetInt(x.Num()); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - _r$2 = b[0].SetInt(x.Denom()); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - if (z.prec === 0) { - z.prec = umax32(a[0].prec, b[0].prec); - } - _r$3 = z.Quo(a[0], b[0]); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r$1 = _r$3; - $s = 8; case 8: return $24r$1; - /* */ } return; } var $f = {$blk: SetRat, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, a, b, x, z, $s};return $f; - }; - $ptrType(Float).prototype.SetInf = function SetInf(signbit) { - var signbit, z; - z = this; - z.acc = 0; - z.form = 2; - z.neg = signbit; - return z; - }; - $ptrType(Float).prototype.Set = function Set$2(x) { - var {x, z, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - /* */ if (false) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (false) { */ case 1: - $r = x.validate(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - z.acc = 0; - /* */ if (!(z === x)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (!(z === x)) { */ case 4: - z.form = x.form; - z.neg = x.neg; - if (x.form === 1) { - z.exp = x.exp; - z.mant = z.mant.set(x.mant); - } - /* */ if (z.prec === 0) { $s = 6; continue; } - /* */ if (z.prec < x.prec) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (z.prec === 0) { */ case 6: - z.prec = x.prec; - $s = 8; continue; - /* } else if (z.prec < x.prec) { */ case 7: - $r = z.round(0); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 8: - /* } */ case 5: - $s = -1; return z; - /* */ } return; } var $f = {$blk: Set$2, $c: true, $r, x, z, $s};return $f; - }; - $ptrType(Float).prototype.Copy = function Copy(x) { - var {x, z, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - /* */ if (false) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (false) { */ case 1: - $r = x.validate(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - if (!(z === x)) { - z.prec = x.prec; - z.mode = x.mode; - z.acc = x.acc; - z.form = x.form; - z.neg = x.neg; - if (z.form === 1) { - z.mant = z.mant.set(x.mant); - z.exp = x.exp; - } - } - $s = -1; return z; - /* */ } return; } var $f = {$blk: Copy, $c: true, $r, x, z, $s};return $f; - }; - msb32 = function msb32$1(x) { - var _1, i, x; - i = x.$length - 1 >> 0; - if (i < 0) { - return 0; - } - if (false && (((((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) & 2147483648) >>> 0) === 0)) { - $panic(new $String("x not normalized")); - } - _1 = 32; - if (_1 === (32)) { - return ((((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) >>> 0)); - } else if (_1 === (64)) { - return ((0 >>> 0)); - } - $panic(new $String("unreachable")); - }; - msb64 = function msb64$1(x) { - var _1, i, v, x, x$1, x$2; - i = x.$length - 1 >> 0; - if (i < 0) { - return new $Uint64(0, 0); - } - if (false && (((((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) & 2147483648) >>> 0) === 0)) { - $panic(new $String("x not normalized")); - } - _1 = 32; - if (_1 === (32)) { - v = $shiftLeft64((new $Uint64(0, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]))), 32); - if (i > 0) { - v = (x$1 = (new $Uint64(0, (x$2 = i - 1 >> 0, ((x$2 < 0 || x$2 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$2])))), new $Uint64(v.$high | x$1.$high, (v.$low | x$1.$low) >>> 0)); - } - return v; - } else if (_1 === (64)) { - return (new $Uint64(0, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]))); - } - $panic(new $String("unreachable")); - }; - $ptrType(Float).prototype.Uint64 = function Uint64$1() { - var {_1, u, x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - /* */ if (false) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (false) { */ case 1: - $r = x.validate(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - _1 = x.form; - if (_1 === (1)) { - if (x.neg) { - $s = -1; return [new $Uint64(0, 0), 1]; - } - if (x.exp <= 0) { - $s = -1; return [new $Uint64(0, 0), -1]; - } - if (x.exp <= 64) { - u = $shiftRightUint64(msb64(x.mant), ((64 - ((x.exp >>> 0)) >>> 0))); - if (x.MinPrec() <= 64) { - $s = -1; return [u, 0]; - } - $s = -1; return [u, -1]; - } - $s = -1; return [new $Uint64(4294967295, 4294967295), -1]; - } else if (_1 === (0)) { - $s = -1; return [new $Uint64(0, 0), 0]; - } else if (_1 === (2)) { - if (x.neg) { - $s = -1; return [new $Uint64(0, 0), 1]; - } - $s = -1; return [new $Uint64(4294967295, 4294967295), -1]; - } - $panic(new $String("unreachable")); - $s = -1; return [new $Uint64(0, 0), 0]; - /* */ } return; } var $f = {$blk: Uint64$1, $c: true, $r, _1, u, x, $s};return $f; - }; - $ptrType(Float).prototype.Int64 = function Int64$1() { - var {_1, acc, i, x, x$1, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - /* */ if (false) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (false) { */ case 1: - $r = x.validate(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - _1 = x.form; - if (_1 === (1)) { - acc = makeAcc(x.neg); - if (x.exp <= 0) { - $s = -1; return [new $Int64(0, 0), acc]; - } - if (x.exp <= 63) { - i = ((x$1 = $shiftRightUint64(msb64(x.mant), ((64 - ((x.exp >>> 0)) >>> 0))), new $Int64(x$1.$high, x$1.$low))); - if (x.neg) { - i = new $Int64(-i.$high, -i.$low); - } - if (x.MinPrec() <= ((x.exp >>> 0))) { - $s = -1; return [i, 0]; - } - $s = -1; return [i, acc]; - } - if (x.neg) { - if ((x.exp === 64) && (x.MinPrec() === 1)) { - acc = 0; - } - $s = -1; return [new $Int64(-2147483648, 0), acc]; - } - $s = -1; return [new $Int64(2147483647, 4294967295), -1]; - } else if (_1 === (0)) { - $s = -1; return [new $Int64(0, 0), 0]; - } else if (_1 === (2)) { - if (x.neg) { - $s = -1; return [new $Int64(-2147483648, 0), 1]; - } - $s = -1; return [new $Int64(2147483647, 4294967295), -1]; - } - $panic(new $String("unreachable")); - $s = -1; return [new $Int64(0, 0), 0]; - /* */ } return; } var $f = {$blk: Int64$1, $c: true, $r, _1, acc, i, x, x$1, $s};return $f; - }; - $ptrType(Float).prototype.Float32 = function Float32$1() { - var {_1, _r, _tmp, _tmp$1, _tmp$2, bexp, e, mant, p, r, sign, x, y, z, z$1, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - /* */ if (false) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (false) { */ case 1: - $r = x.validate(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - _1 = x.form; - /* */ if (_1 === (1)) { $s = 5; continue; } - /* */ if (_1 === (0)) { $s = 6; continue; } - /* */ if (_1 === (2)) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (_1 === (1)) { */ case 5: - e = x.exp - 1 >> 0; - p = 24; - if (e < -126) { - p = 150 + ((e >> 0)) >> 0; - if (p < 0 || (p === 0) && (x.mant.sticky(($imul(((x.mant.$length >>> 0)), 32) >>> 0) - 1 >>> 0) === 0)) { - if (x.neg) { - z = 0; - $s = -1; return [-z, 1]; - } - $s = -1; return [0, -1]; - } - if (p === 0) { - if (x.neg) { - $s = -1; return [-1.401298464324817e-45, -1]; - } - $s = -1; return [1.401298464324817e-45, 1]; - } - } - r = new Float.ptr(0, 0, 0, 0, false, nat.nil, 0); - r.prec = ((p >>> 0)); - _r = r.Set(x); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r; - e = r.exp - 1 >> 0; - if ((r.form === 2) || e > 127) { - if (x.neg) { - $s = -1; return [($fround(math.Inf(-1))), -1]; - } - $s = -1; return [($fround(math.Inf(1))), 1]; - } - _tmp = 0; - _tmp$1 = 0; - _tmp$2 = 0; - sign = _tmp; - bexp = _tmp$1; - mant = _tmp$2; - if (x.neg) { - sign = 2147483648; - } - if (e < -126) { - p = 150 + ((e >> 0)) >> 0; - mant = (y = (((32 - p >> 0) >>> 0)), y < 32 ? (msb32(r.mant) >>> y) : 0) >>> 0; - } else { - bexp = (((e + 127 >> 0) >>> 0)) << 23 >>> 0; - mant = ((msb32(r.mant) >>> 8 >>> 0) & 8388607) >>> 0; - } - $s = -1; return [math.Float32frombits((((sign | bexp) >>> 0) | mant) >>> 0), r.acc]; - /* } else if (_1 === (0)) { */ case 6: - if (x.neg) { - z$1 = 0; - $s = -1; return [-z$1, 0]; - } - $s = -1; return [0, 0]; - /* } else if (_1 === (2)) { */ case 7: - if (x.neg) { - $s = -1; return [($fround(math.Inf(-1))), 0]; - } - $s = -1; return [($fround(math.Inf(1))), 0]; - /* } */ case 8: - case 4: - $panic(new $String("unreachable")); - $s = -1; return [0, 0]; - /* */ } return; } var $f = {$blk: Float32$1, $c: true, $r, _1, _r, _tmp, _tmp$1, _tmp$2, bexp, e, mant, p, r, sign, x, y, z, z$1, $s};return $f; - }; - $ptrType(Float).prototype.Float64 = function Float64$1() { - var {_1, _r, _tmp, _tmp$1, _tmp$2, bexp, e, mant, p, r, sign, x, x$1, x$2, z, z$1, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - /* */ if (false) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (false) { */ case 1: - $r = x.validate(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - _1 = x.form; - /* */ if (_1 === (1)) { $s = 5; continue; } - /* */ if (_1 === (0)) { $s = 6; continue; } - /* */ if (_1 === (2)) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (_1 === (1)) { */ case 5: - e = x.exp - 1 >> 0; - p = 53; - if (e < -1022) { - p = 1075 + ((e >> 0)) >> 0; - if (p < 0 || (p === 0) && (x.mant.sticky(($imul(((x.mant.$length >>> 0)), 32) >>> 0) - 1 >>> 0) === 0)) { - if (x.neg) { - z = 0; - $s = -1; return [-z, 1]; - } - $s = -1; return [0, -1]; - } - if (p === 0) { - if (x.neg) { - $s = -1; return [-5e-324, -1]; - } - $s = -1; return [5e-324, 1]; - } - } - r = new Float.ptr(0, 0, 0, 0, false, nat.nil, 0); - r.prec = ((p >>> 0)); - _r = r.Set(x); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r; - e = r.exp - 1 >> 0; - if ((r.form === 2) || e > 1023) { - if (x.neg) { - $s = -1; return [math.Inf(-1), -1]; - } - $s = -1; return [math.Inf(1), 1]; - } - _tmp = new $Uint64(0, 0); - _tmp$1 = new $Uint64(0, 0); - _tmp$2 = new $Uint64(0, 0); - sign = _tmp; - bexp = _tmp$1; - mant = _tmp$2; - if (x.neg) { - sign = new $Uint64(2147483648, 0); - } - if (e < -1022) { - p = 1075 + ((e >> 0)) >> 0; - mant = $shiftRightUint64(msb64(r.mant), (((64 - p >> 0) >>> 0))); - } else { - bexp = $shiftLeft64((new $Uint64(0, (e + 1023 >> 0))), 52); - mant = (x$1 = $shiftRightUint64(msb64(r.mant), 11), new $Uint64(x$1.$high & 1048575, (x$1.$low & 4294967295) >>> 0)); - } - $s = -1; return [math.Float64frombits((x$2 = new $Uint64(sign.$high | bexp.$high, (sign.$low | bexp.$low) >>> 0), new $Uint64(x$2.$high | mant.$high, (x$2.$low | mant.$low) >>> 0))), r.acc]; - /* } else if (_1 === (0)) { */ case 6: - if (x.neg) { - z$1 = 0; - $s = -1; return [-z$1, 0]; - } - $s = -1; return [0, 0]; - /* } else if (_1 === (2)) { */ case 7: - if (x.neg) { - $s = -1; return [math.Inf(-1), 0]; - } - $s = -1; return [math.Inf(1), 0]; - /* } */ case 8: - case 4: - $panic(new $String("unreachable")); - $s = -1; return [0, 0]; - /* */ } return; } var $f = {$blk: Float64$1, $c: true, $r, _1, _r, _tmp, _tmp$1, _tmp$2, bexp, e, mant, p, r, sign, x, x$1, x$2, z, z$1, $s};return $f; - }; - $ptrType(Float).prototype.Int = function Int$1(z) { - var {_1, acc, allBits, exp$1, x, z, $s, $r, $c} = $restore(this, {z}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - /* */ if (false) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (false) { */ case 1: - $r = x.validate(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - if (z === ptrType$2.nil && x.form <= 1) { - z = new Int.ptr(false, nat.nil); - } - _1 = x.form; - if (_1 === (1)) { - acc = makeAcc(x.neg); - if (x.exp <= 0) { - $s = -1; return [z.SetInt64(new $Int64(0, 0)), acc]; - } - allBits = $imul(((x.mant.$length >>> 0)), 32) >>> 0; - exp$1 = ((x.exp >>> 0)); - if (x.MinPrec() <= exp$1) { - acc = 0; - } - if (z === ptrType$2.nil) { - z = new Int.ptr(false, nat.nil); - } - z.neg = x.neg; - if (exp$1 > allBits) { - z.abs = z.abs.shl(x.mant, exp$1 - allBits >>> 0); - } else if (exp$1 < allBits) { - z.abs = z.abs.shr(x.mant, allBits - exp$1 >>> 0); - } else { - z.abs = z.abs.set(x.mant); - } - $s = -1; return [z, acc]; - } else if (_1 === (0)) { - $s = -1; return [z.SetInt64(new $Int64(0, 0)), 0]; - } else if (_1 === (2)) { - $s = -1; return [ptrType$2.nil, makeAcc(x.neg)]; - } - $panic(new $String("unreachable")); - $s = -1; return [ptrType$2.nil, 0]; - /* */ } return; } var $f = {$blk: Int$1, $c: true, $r, _1, acc, allBits, exp$1, x, z, $s};return $f; - }; - $ptrType(Float).prototype.Rat = function Rat$1(z) { - var {_1, _r, allBits, t, x, z, $s, $r, $c} = $restore(this, {z}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - /* */ if (false) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (false) { */ case 1: - $r = x.validate(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - if (z === ptrType$1.nil && x.form <= 1) { - z = new Rat.ptr(new Int.ptr(false, nat.nil), new Int.ptr(false, nat.nil)); - } - _1 = x.form; - /* */ if (_1 === (1)) { $s = 5; continue; } - /* */ if (_1 === (0)) { $s = 6; continue; } - /* */ if (_1 === (2)) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (_1 === (1)) { */ case 5: - allBits = $imul(((x.mant.$length >> 0)), 32); - z.a.neg = x.neg; - /* */ if (x.exp > allBits) { $s = 10; continue; } - /* */ if (x.exp < allBits) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (x.exp > allBits) { */ case 10: - z.a.abs = z.a.abs.shl(x.mant, (((x.exp - allBits >> 0) >>> 0))); - z.b.abs = $subslice(z.b.abs, 0, 0); - $s = 13; continue; - /* } else if (x.exp < allBits) { */ case 11: - z.a.abs = z.a.abs.set(x.mant); - t = z.b.abs.setUint64(new $Uint64(0, 1)); - z.b.abs = t.shl(t, (((allBits - x.exp >> 0) >>> 0))); - _r = z.norm(); /* */ $s = 14; case 14: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r; - $s = 13; continue; - /* } else { */ case 12: - z.a.abs = z.a.abs.set(x.mant); - z.b.abs = $subslice(z.b.abs, 0, 0); - /* } */ case 13: - case 9: - $s = -1; return [z, 0]; - /* } else if (_1 === (0)) { */ case 6: - $s = -1; return [z.SetInt64(new $Int64(0, 0)), 0]; - /* } else if (_1 === (2)) { */ case 7: - $s = -1; return [ptrType$1.nil, makeAcc(x.neg)]; - /* } */ case 8: - case 4: - $panic(new $String("unreachable")); - $s = -1; return [ptrType$1.nil, 0]; - /* */ } return; } var $f = {$blk: Rat$1, $c: true, $r, _1, _r, allBits, t, x, z, $s};return $f; - }; - $ptrType(Float).prototype.Abs = function Abs$2(x) { - var {_r, x, z, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - _r = z.Set(x); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r; - z.neg = false; - $s = -1; return z; - /* */ } return; } var $f = {$blk: Abs$2, $c: true, $r, _r, x, z, $s};return $f; - }; - $ptrType(Float).prototype.Neg = function Neg$2(x) { - var {_r, x, z, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - _r = z.Set(x); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r; - z.neg = !z.neg; - $s = -1; return z; - /* */ } return; } var $f = {$blk: Neg$2, $c: true, $r, _r, x, z, $s};return $f; - }; - validateBinaryOperands = function validateBinaryOperands$1(x, y) { - var x, y; - if (true) { - $panic(new $String("validateBinaryOperands called but debugFloat is not set")); - } - if (x.mant.$length === 0) { - $panic(new $String("empty mantissa for x")); - } - if (y.mant.$length === 0) { - $panic(new $String("empty mantissa for y")); - } - }; - $ptrType(Float).prototype.uadd = function uadd(x, y) { - var {_r, _r$1, _r$2, _r$3, _r$4, al, ex, ey, t, t$1, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, y, z, $s, $r, $c} = $restore(this, {x, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - if (false) { - validateBinaryOperands(x, y); - } - ex = (x$1 = (new $Int64(0, x.exp)), x$2 = $mul64((new $Int64(0, x.mant.$length)), new $Int64(0, 32)), new $Int64(x$1.$high - x$2.$high, x$1.$low - x$2.$low)); - ey = (x$3 = (new $Int64(0, y.exp)), x$4 = $mul64((new $Int64(0, y.mant.$length)), new $Int64(0, 32)), new $Int64(x$3.$high - x$4.$high, x$3.$low - x$4.$low)); - al = alias(z.mant, x.mant) || alias(z.mant, y.mant); - /* */ if ((ex.$high < ey.$high || (ex.$high === ey.$high && ex.$low < ey.$low))) { $s = 2; continue; } - /* */ if ((ex.$high > ey.$high || (ex.$high === ey.$high && ex.$low > ey.$low))) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if ((ex.$high < ey.$high || (ex.$high === ey.$high && ex.$low < ey.$low))) { */ case 2: - /* */ if (al) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (al) { */ case 6: - t = (nat.nil).shl(y.mant, ((new $Int64(ey.$high - ex.$high, ey.$low - ex.$low).$low >>> 0))); - _r = z.mant.add(x.mant, t); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - z.mant = _r; - $s = 8; continue; - /* } else { */ case 7: - z.mant = z.mant.shl(y.mant, ((new $Int64(ey.$high - ex.$high, ey.$low - ex.$low).$low >>> 0))); - _r$1 = z.mant.add(x.mant, z.mant); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - z.mant = _r$1; - /* } */ case 8: - $s = 5; continue; - /* } else if ((ex.$high > ey.$high || (ex.$high === ey.$high && ex.$low > ey.$low))) { */ case 3: - /* */ if (al) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (al) { */ case 11: - t$1 = (nat.nil).shl(x.mant, ((new $Int64(ex.$high - ey.$high, ex.$low - ey.$low).$low >>> 0))); - _r$2 = z.mant.add(t$1, y.mant); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - z.mant = _r$2; - $s = 13; continue; - /* } else { */ case 12: - z.mant = z.mant.shl(x.mant, ((new $Int64(ex.$high - ey.$high, ex.$low - ey.$low).$low >>> 0))); - _r$3 = z.mant.add(z.mant, y.mant); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - z.mant = _r$3; - /* } */ case 13: - ex = ey; - $s = 5; continue; - /* } else { */ case 4: - _r$4 = z.mant.add(x.mant, y.mant); /* */ $s = 16; case 16: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - z.mant = _r$4; - /* } */ case 5: - case 1: - $r = z.setExpAndRound((x$5 = (x$6 = $mul64((new $Int64(0, z.mant.$length)), new $Int64(0, 32)), new $Int64(ex.$high + x$6.$high, ex.$low + x$6.$low)), x$7 = fnorm(z.mant), new $Int64(x$5.$high - x$7.$high, x$5.$low - x$7.$low)), 0); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: uadd, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, al, ex, ey, t, t$1, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, y, z, $s};return $f; - }; - $ptrType(Float).prototype.usub = function usub(x, y) { - var {_r, _r$1, _r$2, _r$3, _r$4, al, ex, ey, t, t$1, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, y, z, $s, $r, $c} = $restore(this, {x, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - if (false) { - validateBinaryOperands(x, y); - } - ex = (x$1 = (new $Int64(0, x.exp)), x$2 = $mul64((new $Int64(0, x.mant.$length)), new $Int64(0, 32)), new $Int64(x$1.$high - x$2.$high, x$1.$low - x$2.$low)); - ey = (x$3 = (new $Int64(0, y.exp)), x$4 = $mul64((new $Int64(0, y.mant.$length)), new $Int64(0, 32)), new $Int64(x$3.$high - x$4.$high, x$3.$low - x$4.$low)); - al = alias(z.mant, x.mant) || alias(z.mant, y.mant); - /* */ if ((ex.$high < ey.$high || (ex.$high === ey.$high && ex.$low < ey.$low))) { $s = 2; continue; } - /* */ if ((ex.$high > ey.$high || (ex.$high === ey.$high && ex.$low > ey.$low))) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if ((ex.$high < ey.$high || (ex.$high === ey.$high && ex.$low < ey.$low))) { */ case 2: - /* */ if (al) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (al) { */ case 6: - t = (nat.nil).shl(y.mant, ((new $Int64(ey.$high - ex.$high, ey.$low - ex.$low).$low >>> 0))); - _r = t.sub(x.mant, t); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - z.mant = _r; - $s = 8; continue; - /* } else { */ case 7: - z.mant = z.mant.shl(y.mant, ((new $Int64(ey.$high - ex.$high, ey.$low - ex.$low).$low >>> 0))); - _r$1 = z.mant.sub(x.mant, z.mant); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - z.mant = _r$1; - /* } */ case 8: - $s = 5; continue; - /* } else if ((ex.$high > ey.$high || (ex.$high === ey.$high && ex.$low > ey.$low))) { */ case 3: - /* */ if (al) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (al) { */ case 11: - t$1 = (nat.nil).shl(x.mant, ((new $Int64(ex.$high - ey.$high, ex.$low - ey.$low).$low >>> 0))); - _r$2 = t$1.sub(t$1, y.mant); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - z.mant = _r$2; - $s = 13; continue; - /* } else { */ case 12: - z.mant = z.mant.shl(x.mant, ((new $Int64(ex.$high - ey.$high, ex.$low - ey.$low).$low >>> 0))); - _r$3 = z.mant.sub(z.mant, y.mant); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - z.mant = _r$3; - /* } */ case 13: - ex = ey; - $s = 5; continue; - /* } else { */ case 4: - _r$4 = z.mant.sub(x.mant, y.mant); /* */ $s = 16; case 16: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - z.mant = _r$4; - /* } */ case 5: - case 1: - if (z.mant.$length === 0) { - z.acc = 0; - z.form = 0; - z.neg = false; - $s = -1; return; - } - $r = z.setExpAndRound((x$5 = (x$6 = $mul64((new $Int64(0, z.mant.$length)), new $Int64(0, 32)), new $Int64(ex.$high + x$6.$high, ex.$low + x$6.$low)), x$7 = fnorm(z.mant), new $Int64(x$5.$high - x$7.$high, x$5.$low - x$7.$low)), 0); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: usub, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, al, ex, ey, t, t$1, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, y, z, $s};return $f; - }; - $ptrType(Float).prototype.umul = function umul(x, y) { - var {_r, _r$1, e, x, x$1, x$2, x$3, y, z, $s, $r, $c} = $restore(this, {x, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - if (false) { - validateBinaryOperands(x, y); - } - e = (x$1 = (new $Int64(0, x.exp)), x$2 = (new $Int64(0, y.exp)), new $Int64(x$1.$high + x$2.$high, x$1.$low + x$2.$low)); - /* */ if (x === y) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (x === y) { */ case 1: - _r = z.mant.sqr(x.mant); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - z.mant = _r; - $s = 3; continue; - /* } else { */ case 2: - _r$1 = z.mant.mul(x.mant, y.mant); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - z.mant = _r$1; - /* } */ case 3: - $r = z.setExpAndRound((x$3 = fnorm(z.mant), new $Int64(e.$high - x$3.$high, e.$low - x$3.$low)), 0); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: umul, $c: true, $r, _r, _r$1, e, x, x$1, x$2, x$3, y, z, $s};return $f; - }; - $ptrType(Float).prototype.uquo = function uquo(x, y) { - var {_q, _r, _tuple, d, d$1, e, n, r, sbit, x, x$1, x$2, x$3, x$4, x$5, xadj, y, z, $s, $r, $c} = $restore(this, {x, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - if (false) { - validateBinaryOperands(x, y); - } - n = (((_q = z.prec / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")) >> 0)) + 1 >> 0; - xadj = x.mant; - d = (n - x.mant.$length >> 0) + y.mant.$length >> 0; - if (d > 0) { - xadj = $makeSlice(nat, (x.mant.$length + d >> 0)); - $copySlice($subslice(xadj, d), x.mant); - } - d$1 = xadj.$length - y.mant.$length >> 0; - r = nat.nil; - _r = z.mant.div(nat.nil, xadj, y.mant); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - z.mant = _tuple[0]; - r = _tuple[1]; - e = (x$1 = (x$2 = (new $Int64(0, x.exp)), x$3 = (new $Int64(0, y.exp)), new $Int64(x$2.$high - x$3.$high, x$2.$low - x$3.$low)), x$4 = $mul64((new $Int64(0, (d$1 - z.mant.$length >> 0))), new $Int64(0, 32)), new $Int64(x$1.$high - x$4.$high, x$1.$low - x$4.$low)); - sbit = 0; - if (r.$length > 0) { - sbit = 1; - } - $r = z.setExpAndRound((x$5 = fnorm(z.mant), new $Int64(e.$high - x$5.$high, e.$low - x$5.$low)), sbit); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: uquo, $c: true, $r, _q, _r, _tuple, d, d$1, e, n, r, sbit, x, x$1, x$2, x$3, x$4, x$5, xadj, y, z, $s};return $f; - }; - $ptrType(Float).prototype.ucmp = function ucmp(y) { - var _tmp, _tmp$1, i, j, x, x$1, x$2, xm, y, ym; - x = this; - if (false) { - validateBinaryOperands(x, y); - } - if (x.exp < y.exp) { - return -1; - } else if (x.exp > y.exp) { - return 1; - } - i = x.mant.$length; - j = y.mant.$length; - while (true) { - if (!(i > 0 || j > 0)) { break; } - _tmp = 0; - _tmp$1 = 0; - xm = _tmp; - ym = _tmp$1; - if (i > 0) { - i = i - (1) >> 0; - xm = (x$1 = x.mant, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])); - } - if (j > 0) { - j = j - (1) >> 0; - ym = (x$2 = y.mant, ((j < 0 || j >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + j])); - } - if (xm < ym) { - return -1; - } else if (xm > ym) { - return 1; - } - } - return 0; - }; - $ptrType(Float).prototype.Add = function Add$2(x, y) { - var {$24r, $24r$1, _r, _r$1, x, x$1, y, yneg, z, $s, $r, $c} = $restore(this, {x, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - /* */ if (false) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (false) { */ case 1: - $r = x.validate(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = y.validate(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - if (z.prec === 0) { - z.prec = umax32(x.prec, y.prec); - } - /* */ if ((x.form === 1) && (y.form === 1)) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if ((x.form === 1) && (y.form === 1)) { */ case 5: - yneg = y.neg; - z.neg = x.neg; - /* */ if (x.neg === yneg) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (x.neg === yneg) { */ case 7: - $r = z.uadd(x, y); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 9; continue; - /* } else { */ case 8: - /* */ if (x.ucmp(y) > 0) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (x.ucmp(y) > 0) { */ case 11: - $r = z.usub(x, y); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 13; continue; - /* } else { */ case 12: - z.neg = !z.neg; - $r = z.usub(y, x); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 13: - /* } */ case 9: - if ((z.form === 0) && (z.mode === 4) && (z.acc === 0)) { - z.neg = true; - } - $s = -1; return z; - /* } */ case 6: - if ((x.form === 2) && (y.form === 2) && !(x.neg === y.neg)) { - z.acc = 0; - z.form = 0; - z.neg = false; - $panic((x$1 = new ErrNaN.ptr("addition of infinities with opposite signs"), new x$1.constructor.elem(x$1))); - } - if ((x.form === 0) && (y.form === 0)) { - z.acc = 0; - z.form = 0; - z.neg = x.neg && y.neg; - $s = -1; return z; - } - /* */ if ((x.form === 2) || (y.form === 0)) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if ((x.form === 2) || (y.form === 0)) { */ case 16: - _r = z.Set(x); /* */ $s = 18; case 18: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 19; case 19: return $24r; - /* } */ case 17: - _r$1 = z.Set(y); /* */ $s = 20; case 20: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r$1 = _r$1; - $s = 21; case 21: return $24r$1; - /* */ } return; } var $f = {$blk: Add$2, $c: true, $r, $24r, $24r$1, _r, _r$1, x, x$1, y, yneg, z, $s};return $f; - }; - $ptrType(Float).prototype.Sub = function Sub$2(x, y) { - var {$24r, $24r$1, _r, _r$1, x, x$1, y, yneg, z, $s, $r, $c} = $restore(this, {x, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - /* */ if (false) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (false) { */ case 1: - $r = x.validate(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = y.validate(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - if (z.prec === 0) { - z.prec = umax32(x.prec, y.prec); - } - /* */ if ((x.form === 1) && (y.form === 1)) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if ((x.form === 1) && (y.form === 1)) { */ case 5: - yneg = y.neg; - z.neg = x.neg; - /* */ if (!(x.neg === yneg)) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (!(x.neg === yneg)) { */ case 7: - $r = z.uadd(x, y); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 9; continue; - /* } else { */ case 8: - /* */ if (x.ucmp(y) > 0) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (x.ucmp(y) > 0) { */ case 11: - $r = z.usub(x, y); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 13; continue; - /* } else { */ case 12: - z.neg = !z.neg; - $r = z.usub(y, x); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 13: - /* } */ case 9: - if ((z.form === 0) && (z.mode === 4) && (z.acc === 0)) { - z.neg = true; - } - $s = -1; return z; - /* } */ case 6: - if ((x.form === 2) && (y.form === 2) && x.neg === y.neg) { - z.acc = 0; - z.form = 0; - z.neg = false; - $panic((x$1 = new ErrNaN.ptr("subtraction of infinities with equal signs"), new x$1.constructor.elem(x$1))); - } - if ((x.form === 0) && (y.form === 0)) { - z.acc = 0; - z.form = 0; - z.neg = x.neg && !y.neg; - $s = -1; return z; - } - /* */ if ((x.form === 2) || (y.form === 0)) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if ((x.form === 2) || (y.form === 0)) { */ case 16: - _r = z.Set(x); /* */ $s = 18; case 18: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 19; case 19: return $24r; - /* } */ case 17: - _r$1 = z.Neg(y); /* */ $s = 20; case 20: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r$1 = _r$1; - $s = 21; case 21: return $24r$1; - /* */ } return; } var $f = {$blk: Sub$2, $c: true, $r, $24r, $24r$1, _r, _r$1, x, x$1, y, yneg, z, $s};return $f; - }; - $ptrType(Float).prototype.Mul = function Mul$2(x, y) { - var {x, x$1, y, z, $s, $r, $c} = $restore(this, {x, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - /* */ if (false) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (false) { */ case 1: - $r = x.validate(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = y.validate(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - if (z.prec === 0) { - z.prec = umax32(x.prec, y.prec); - } - z.neg = !(x.neg === y.neg); - /* */ if ((x.form === 1) && (y.form === 1)) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if ((x.form === 1) && (y.form === 1)) { */ case 5: - $r = z.umul(x, y); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return z; - /* } */ case 6: - z.acc = 0; - if ((x.form === 0) && (y.form === 2) || (x.form === 2) && (y.form === 0)) { - z.form = 0; - z.neg = false; - $panic((x$1 = new ErrNaN.ptr("multiplication of zero with infinity"), new x$1.constructor.elem(x$1))); - } - if ((x.form === 2) || (y.form === 2)) { - z.form = 2; - $s = -1; return z; - } - z.form = 0; - $s = -1; return z; - /* */ } return; } var $f = {$blk: Mul$2, $c: true, $r, x, x$1, y, z, $s};return $f; - }; - $ptrType(Float).prototype.Quo = function Quo$2(x, y) { - var {x, x$1, y, z, $s, $r, $c} = $restore(this, {x, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - z = this; - /* */ if (false) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (false) { */ case 1: - $r = x.validate(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = y.validate(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - if (z.prec === 0) { - z.prec = umax32(x.prec, y.prec); - } - z.neg = !(x.neg === y.neg); - /* */ if ((x.form === 1) && (y.form === 1)) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if ((x.form === 1) && (y.form === 1)) { */ case 5: - $r = z.uquo(x, y); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return z; - /* } */ case 6: - z.acc = 0; - if ((x.form === 0) && (y.form === 0) || (x.form === 2) && (y.form === 2)) { - z.form = 0; - z.neg = false; - $panic((x$1 = new ErrNaN.ptr("division of zero by zero or infinity by infinity"), new x$1.constructor.elem(x$1))); - } - if ((x.form === 0) || (y.form === 2)) { - z.form = 0; - $s = -1; return z; - } - z.form = 2; - $s = -1; return z; - /* */ } return; } var $f = {$blk: Quo$2, $c: true, $r, x, x$1, y, z, $s};return $f; - }; - $ptrType(Float).prototype.Cmp = function Cmp$2(y) { - var {_1, mx, my, x, y, $s, $r, $c} = $restore(this, {y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - /* */ if (false) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (false) { */ case 1: - $r = x.validate(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = y.validate(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - mx = x.ord(); - my = y.ord(); - if (mx < my) { - $s = -1; return -1; - } else if (mx > my) { - $s = -1; return 1; - } - _1 = mx; - if (_1 === (-1)) { - $s = -1; return y.ucmp(x); - } else if (_1 === (1)) { - $s = -1; return x.ucmp(y); - } - $s = -1; return 0; - /* */ } return; } var $f = {$blk: Cmp$2, $c: true, $r, _1, mx, my, x, y, $s};return $f; - }; - $ptrType(Float).prototype.ord = function ord() { - var _1, m, x; - x = this; - m = 0; - _1 = x.form; - if (_1 === (1)) { - m = 1; - } else if (_1 === (0)) { - return 0; - } else if (_1 === (2)) { - m = 2; - } - if (x.neg) { - m = -m; - } - return m; - }; - umax32 = function umax32$1(x, y) { - var x, y; - if (x > y) { - return x; - } - return y; - }; - $ptrType(decimal).prototype.at = function at(i) { - var d, i, x; - d = this; - if (0 <= i && i < d.mant.$length) { - return (x = d.mant, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - } - return 48; - }; - $ptrType(decimal).prototype.init = function init(m, shift) { - var {_r, m, n, ntz, s, s$1, shift, x, x$1, $s, $r, $c} = $restore(this, {m, shift}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - if (m.$length === 0) { - x.mant = $subslice(x.mant, 0, 0); - x.exp = 0; - $s = -1; return; - } - if (shift < 0) { - ntz = m.trailingZeroBits(); - s = ((-shift >>> 0)); - if (s >= ntz) { - s = ntz; - } - m = (nat.nil).shr(m, s); - shift = shift + (((s >> 0))) >> 0; - } - if (shift > 0) { - m = (nat.nil).shl(m, ((shift >>> 0))); - shift = 0; - } - _r = m.utoa(10); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - s$1 = _r; - n = s$1.$length; - x.exp = n; - while (true) { - if (!(n > 0 && ((x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= s$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : s$1.$array[s$1.$offset + x$1])) === 48))) { break; } - n = n - (1) >> 0; - } - x.mant = $appendSlice($subslice(x.mant, 0, 0), $subslice(s$1, 0, n)); - if (shift < 0) { - while (true) { - if (!(shift < -28)) { break; } - shr(x, 28); - shift = shift + (28) >> 0; - } - shr(x, ((-shift >>> 0))); - } - $s = -1; return; - /* */ } return; } var $f = {$blk: init, $c: true, $r, _r, m, n, ntz, s, s$1, shift, x, x$1, $s};return $f; - }; - shr = function shr$2(x, s) { - var ch, ch$1, d, d$1, d$2, mask, n, r, s, w, x, x$1, x$2, x$3, x$4, y, y$1, y$2, y$3, y$4, y$5; - r = 0; - n = 0; - while (true) { - if (!((((y = s, y < 32 ? (n >>> y) : 0) >>> 0) === 0) && r < x.mant.$length)) { break; } - ch = (((x$1 = x.mant, ((r < 0 || r >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + r])) >>> 0)); - r = r + (1) >> 0; - n = (($imul(n, 10) >>> 0) + ch >>> 0) - 48 >>> 0; - } - if (n === 0) { - x.mant = $subslice(x.mant, 0, 0); - return; - } - while (true) { - if (!(((y$1 = s, y$1 < 32 ? (n >>> y$1) : 0) >>> 0) === 0)) { break; } - r = r + (1) >> 0; - n = $imul(n, (10)) >>> 0; - } - x.exp = x.exp + ((1 - r >> 0)) >> 0; - w = 0; - mask = ((y$2 = s, y$2 < 32 ? (1 << y$2) : 0) >>> 0) - 1 >>> 0; - while (true) { - if (!(r < x.mant.$length)) { break; } - ch$1 = (((x$2 = x.mant, ((r < 0 || r >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + r])) >>> 0)); - r = r + (1) >> 0; - d = (y$3 = s, y$3 < 32 ? (n >>> y$3) : 0) >>> 0; - n = (n & (mask)) >>> 0; - (x$3 = x.mant, ((w < 0 || w >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + w] = (((d + 48 >>> 0) << 24 >>> 24)))); - w = w + (1) >> 0; - n = (($imul(n, 10) >>> 0) + ch$1 >>> 0) - 48 >>> 0; - } - while (true) { - if (!(n > 0 && w < x.mant.$length)) { break; } - d$1 = (y$4 = s, y$4 < 32 ? (n >>> y$4) : 0) >>> 0; - n = (n & (mask)) >>> 0; - (x$4 = x.mant, ((w < 0 || w >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + w] = (((d$1 + 48 >>> 0) << 24 >>> 24)))); - w = w + (1) >> 0; - n = $imul(n, 10) >>> 0; - } - x.mant = $subslice(x.mant, 0, w); - while (true) { - if (!(n > 0)) { break; } - d$2 = (y$5 = s, y$5 < 32 ? (n >>> y$5) : 0) >>> 0; - n = (n & (mask)) >>> 0; - x.mant = $append(x.mant, (((d$2 + 48 >>> 0) << 24 >>> 24))); - n = $imul(n, 10) >>> 0; - } - trim(x); - }; - $ptrType(decimal).prototype.String = function String$5() { - var buf, x; - x = this; - if (x.mant.$length === 0) { - return "0"; - } - buf = sliceType$1.nil; - if (x.exp <= 0) { - buf = $makeSlice(sliceType$1, 0, ((2 + (-x.exp) >> 0) + x.mant.$length >> 0)); - buf = $appendSlice(buf, "0."); - buf = appendZeros(buf, -x.exp); - buf = $appendSlice(buf, x.mant); - } else if (x.exp < x.mant.$length) { - buf = $makeSlice(sliceType$1, 0, (1 + x.mant.$length >> 0)); - buf = $appendSlice(buf, $subslice(x.mant, 0, x.exp)); - buf = $append(buf, 46); - buf = $appendSlice(buf, $subslice(x.mant, x.exp)); - } else { - buf = $makeSlice(sliceType$1, 0, x.exp); - buf = $appendSlice(buf, x.mant); - buf = appendZeros(buf, x.exp - x.mant.$length >> 0); - } - return ($bytesToString(buf)); - }; - appendZeros = function appendZeros$1(buf, n) { - var buf, n; - while (true) { - if (!(n > 0)) { break; } - buf = $append(buf, 48); - n = n - (1) >> 0; - } - return buf; - }; - shouldRoundUp = function shouldRoundUp$1(x, n) { - var n, x, x$1, x$2, x$3, x$4; - if (((x$1 = x.mant, ((n < 0 || n >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + n])) === 53) && ((n + 1 >> 0) === x.mant.$length)) { - return n > 0 && !(((((((x$2 = x.mant, x$3 = n - 1 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])) - 48 << 24 >>> 24)) & 1) >>> 0) === 0)); - } - return (x$4 = x.mant, ((n < 0 || n >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + n])) >= 53; - }; - $ptrType(decimal).prototype.round = function round$1(n) { - var n, x; - x = this; - if (n < 0 || n >= x.mant.$length) { - return; - } - if (shouldRoundUp(x, n)) { - x.roundUp(n); - } else { - x.roundDown(n); - } - }; - $ptrType(decimal).prototype.roundUp = function roundUp(n) { - var _index, n, x, x$1, x$2, x$3, x$4, x$5; - x = this; - if (n < 0 || n >= x.mant.$length) { - return; - } - while (true) { - if (!(n > 0 && (x$1 = x.mant, x$2 = n - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])) >= 57)) { break; } - n = n - (1) >> 0; - } - if (n === 0) { - (x$3 = x.mant, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0] = 49)); - x.mant = $subslice(x.mant, 0, 1); - x.exp = x.exp + (1) >> 0; - return; - } - _index = n - 1 >> 0; - (x$5 = x.mant, ((_index < 0 || _index >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + _index] = ((x$4 = x.mant, ((_index < 0 || _index >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + _index])) + (1) << 24 >>> 24))); - x.mant = $subslice(x.mant, 0, n); - }; - $ptrType(decimal).prototype.roundDown = function roundDown(n) { - var n, x; - x = this; - if (n < 0 || n >= x.mant.$length) { - return; - } - x.mant = $subslice(x.mant, 0, n); - trim(x); - }; - trim = function trim$1(x) { - var i, x, x$1, x$2; - i = x.mant.$length; - while (true) { - if (!(i > 0 && ((x$1 = x.mant, x$2 = i - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])) === 48))) { break; } - i = i - (1) >> 0; - } - x.mant = $subslice(x.mant, 0, i); - if (i === 0) { - x.exp = 0; - } - }; - addVV = function addVV$1(z, x, y) { - var c, x, y, z; - c = 0; - c = addVV_g(z, x, y); - return c; - }; - subVV = function subVV$1(z, x, y) { - var c, x, y, z; - c = 0; - c = subVV_g(z, x, y); - return c; - }; - addVW = function addVW$1(z, x, y) { - var {$24r, _r, c, fn, x, y, z, $s, $r, $c} = $restore(this, {z, x, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - c = 0; - fn = addVW_g; - if (z.$length > 32) { - fn = addVWlarge; - } - _r = fn(z, x, y); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - c = _r; - $24r = c; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: addVW$1, $c: true, $r, $24r, _r, c, fn, x, y, z, $s};return $f; - }; - subVW = function subVW$1(z, x, y) { - var {$24r, _r, c, fn, x, y, z, $s, $r, $c} = $restore(this, {z, x, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - c = 0; - fn = subVW_g; - if (z.$length > 32) { - fn = subVWlarge; - } - _r = fn(z, x, y); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - c = _r; - $24r = c; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: subVW$1, $c: true, $r, $24r, _r, c, fn, x, y, z, $s};return $f; - }; - shlVU = function shlVU$1(z, x, s) { - var c, s, x, z; - c = 0; - c = shlVU_g(z, x, s); - return c; - }; - shrVU = function shrVU$1(z, x, s) { - var c, s, x, z; - c = 0; - c = shrVU_g(z, x, s); - return c; - }; - mulAddVWW = function mulAddVWW$1(z, x, y, r) { - var c, r, x, y, z; - c = 0; - c = mulAddVWW_g(z, x, y, r); - return c; - }; - addMulVVW = function addMulVVW$1(z, x, y) { - var c, x, y, z; - c = 0; - c = addMulVVW_g(z, x, y); - return c; - }; - mulWW = function mulWW$1(x, y) { - var _tmp, _tmp$1, _tuple, hi, lo, x, y, z0, z1; - z1 = 0; - z0 = 0; - _tuple = bits.Mul(((x >>> 0)), ((y >>> 0))); - hi = _tuple[0]; - lo = _tuple[1]; - _tmp = ((hi >>> 0)); - _tmp$1 = ((lo >>> 0)); - z1 = _tmp; - z0 = _tmp$1; - return [z1, z0]; - }; - mulAddWWW_g = function mulAddWWW_g$1(x, y, c) { - var _tmp, _tmp$1, _tuple, _tuple$1, c, cc, hi, lo, x, y, z0, z1; - z1 = 0; - z0 = 0; - _tuple = bits.Mul(((x >>> 0)), ((y >>> 0))); - hi = _tuple[0]; - lo = _tuple[1]; - cc = 0; - _tuple$1 = bits.Add(lo, ((c >>> 0)), 0); - lo = _tuple$1[0]; - cc = _tuple$1[1]; - _tmp = (((hi + cc >>> 0) >>> 0)); - _tmp$1 = ((lo >>> 0)); - z1 = _tmp; - z0 = _tmp$1; - return [z1, z0]; - }; - nlz = function nlz$1(x) { - var x; - return ((bits.LeadingZeros(((x >>> 0))) >>> 0)); - }; - addVV_g = function addVV_g$1(z, x, y) { - var _tuple, c, cc, i, x, y, z, zi; - c = 0; - i = 0; - while (true) { - if (!(i < z.$length && i < x.$length && i < y.$length)) { break; } - _tuple = bits.Add(((((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) >>> 0)), ((((i < 0 || i >= y.$length) ? ($throwRuntimeError("index out of range"), undefined) : y.$array[y.$offset + i]) >>> 0)), ((c >>> 0))); - zi = _tuple[0]; - cc = _tuple[1]; - ((i < 0 || i >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + i] = ((zi >>> 0))); - c = ((cc >>> 0)); - i = i + (1) >> 0; - } - return c; - }; - subVV_g = function subVV_g$1(z, x, y) { - var _tuple, c, cc, i, x, y, z, zi; - c = 0; - i = 0; - while (true) { - if (!(i < z.$length && i < x.$length && i < y.$length)) { break; } - _tuple = bits.Sub(((((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) >>> 0)), ((((i < 0 || i >= y.$length) ? ($throwRuntimeError("index out of range"), undefined) : y.$array[y.$offset + i]) >>> 0)), ((c >>> 0))); - zi = _tuple[0]; - cc = _tuple[1]; - ((i < 0 || i >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + i] = ((zi >>> 0))); - c = ((cc >>> 0)); - i = i + (1) >> 0; - } - return c; - }; - addVW_g = function addVW_g$1(z, x, y) { - var _tuple, c, cc, i, x, y, z, zi; - c = 0; - c = y; - i = 0; - while (true) { - if (!(i < z.$length && i < x.$length)) { break; } - _tuple = bits.Add(((((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) >>> 0)), ((c >>> 0)), 0); - zi = _tuple[0]; - cc = _tuple[1]; - ((i < 0 || i >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + i] = ((zi >>> 0))); - c = ((cc >>> 0)); - i = i + (1) >> 0; - } - return c; - }; - addVWlarge = function addVWlarge$1(z, x, y) { - var _tuple, c, cc, i, x, y, z, zi; - c = 0; - c = y; - i = 0; - while (true) { - if (!(i < z.$length && i < x.$length)) { break; } - if (c === 0) { - $copySlice($subslice(z, i), $subslice(x, i)); - return c; - } - _tuple = bits.Add(((((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) >>> 0)), ((c >>> 0)), 0); - zi = _tuple[0]; - cc = _tuple[1]; - ((i < 0 || i >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + i] = ((zi >>> 0))); - c = ((cc >>> 0)); - i = i + (1) >> 0; - } - return c; - }; - subVW_g = function subVW_g$1(z, x, y) { - var _tuple, c, cc, i, x, y, z, zi; - c = 0; - c = y; - i = 0; - while (true) { - if (!(i < z.$length && i < x.$length)) { break; } - _tuple = bits.Sub(((((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) >>> 0)), ((c >>> 0)), 0); - zi = _tuple[0]; - cc = _tuple[1]; - ((i < 0 || i >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + i] = ((zi >>> 0))); - c = ((cc >>> 0)); - i = i + (1) >> 0; - } - return c; - }; - subVWlarge = function subVWlarge$1(z, x, y) { - var _tuple, c, cc, i, x, y, z, zi; - c = 0; - c = y; - i = 0; - while (true) { - if (!(i < z.$length && i < x.$length)) { break; } - if (c === 0) { - $copySlice($subslice(z, i), $subslice(x, i)); - return c; - } - _tuple = bits.Sub(((((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) >>> 0)), ((c >>> 0)), 0); - zi = _tuple[0]; - cc = _tuple[1]; - ((i < 0 || i >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + i] = ((zi >>> 0))); - c = ((cc >>> 0)); - i = i + (1) >> 0; - } - return c; - }; - shlVU_g = function shlVU_g$1(z, x, s) { - var $C5$9D, c, i, s, x, x$1, x$2, y, y$1, y$2, y$3, z; - c = 0; - if (s === 0) { - $copySlice(z, x); - return c; - } - if (z.$length === 0) { - return c; - } - s = (s & (31)) >>> 0; - $C5$9D = 32 - s >>> 0; - $C5$9D = ($C5$9D & (31)) >>> 0; - c = (y = $C5$9D, y < 32 ? ((x$1 = z.$length - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])) >>> y) : 0) >>> 0; - i = z.$length - 1 >> 0; - while (true) { - if (!(i > 0)) { break; } - ((i < 0 || i >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + i] = ((((y$1 = s, y$1 < 32 ? (((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) << y$1) : 0) >>> 0) | ((y$2 = $C5$9D, y$2 < 32 ? ((x$2 = i - 1 >> 0, ((x$2 < 0 || x$2 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$2])) >>> y$2) : 0) >>> 0)) >>> 0)); - i = i - (1) >> 0; - } - (0 >= z.$length ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + 0] = ((y$3 = s, y$3 < 32 ? ((0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]) << y$3) : 0) >>> 0)); - return c; - }; - shrVU_g = function shrVU_g$1(z, x, s) { - var $C5$9D, c, i, s, x, x$1, x$2, x$3, x$4, y, y$1, y$2, y$3, z; - c = 0; - if (s === 0) { - $copySlice(z, x); - return c; - } - if (z.$length === 0) { - return c; - } - if (!((x.$length === z.$length))) { - $panic(new $String("len(x) != len(z)")); - } - s = (s & (31)) >>> 0; - $C5$9D = 32 - s >>> 0; - $C5$9D = ($C5$9D & (31)) >>> 0; - c = (y = $C5$9D, y < 32 ? ((0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]) << y) : 0) >>> 0; - i = 1; - while (true) { - if (!(i < z.$length)) { break; } - (x$2 = i - 1 >> 0, ((x$2 < 0 || x$2 >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + x$2] = ((((y$1 = s, y$1 < 32 ? ((x$1 = i - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])) >>> y$1) : 0) >>> 0) | ((y$2 = $C5$9D, y$2 < 32 ? (((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]) << y$2) : 0) >>> 0)) >>> 0))); - i = i + (1) >> 0; - } - (x$4 = z.$length - 1 >> 0, ((x$4 < 0 || x$4 >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + x$4] = ((y$3 = s, y$3 < 32 ? ((x$3 = z.$length - 1 >> 0, ((x$3 < 0 || x$3 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$3])) >>> y$3) : 0) >>> 0))); - return c; - }; - mulAddVWW_g = function mulAddVWW_g$1(z, x, y, r) { - var _tuple, c, i, r, x, y, z; - c = 0; - c = r; - i = 0; - while (true) { - if (!(i < z.$length && i < x.$length)) { break; } - _tuple = mulAddWWW_g(((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]), y, c); - c = _tuple[0]; - ((i < 0 || i >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + i] = _tuple[1]); - i = i + (1) >> 0; - } - return c; - }; - addMulVVW_g = function addMulVVW_g$1(z, x, y) { - var _tmp, _tmp$1, _tuple, _tuple$1, c, cc, i, lo, x, y, z, z0, z1; - c = 0; - i = 0; - while (true) { - if (!(i < z.$length && i < x.$length)) { break; } - _tuple = mulAddWWW_g(((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]), y, ((i < 0 || i >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + i])); - z1 = _tuple[0]; - z0 = _tuple[1]; - _tuple$1 = bits.Add(((z0 >>> 0)), ((c >>> 0)), 0); - lo = _tuple$1[0]; - cc = _tuple$1[1]; - _tmp = ((cc >>> 0)); - _tmp$1 = ((lo >>> 0)); - c = _tmp; - ((i < 0 || i >= z.$length) ? ($throwRuntimeError("index out of range"), undefined) : z.$array[z.$offset + i] = _tmp$1); - c = c + (z1) >>> 0; - i = i + (1) >> 0; - } - return c; - }; - divWW = function divWW$1(x1, x0, y, m) { - var _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, b, c, d, dq0, dq1, m, q, qq, r, r0, r1, s, t0, t1, x0, x1, y, y$1, y$2, y$3, y$4, y$5; - q = 0; - r = 0; - s = nlz(y); - if (!((s === 0))) { - x1 = (((y$1 = s, y$1 < 32 ? (x1 << y$1) : 0) >>> 0) | ((y$2 = ((32 - s >>> 0)), y$2 < 32 ? (x0 >>> y$2) : 0) >>> 0)) >>> 0; - x0 = (y$3 = (s), y$3 < 32 ? (x0 << y$3) : 0) >>> 0; - y = (y$4 = (s), y$4 < 32 ? (y << y$4) : 0) >>> 0; - } - d = ((y >>> 0)); - _tuple = bits.Mul(((m >>> 0)), ((x1 >>> 0))); - t1 = _tuple[0]; - t0 = _tuple[1]; - _tuple$1 = bits.Add(t0, ((x0 >>> 0)), 0); - c = _tuple$1[1]; - _tuple$2 = bits.Add(t1, ((x1 >>> 0)), c); - t1 = _tuple$2[0]; - qq = t1; - _tuple$3 = bits.Mul(d, qq); - dq1 = _tuple$3[0]; - dq0 = _tuple$3[1]; - _tuple$4 = bits.Sub(((x0 >>> 0)), dq0, 0); - r0 = _tuple$4[0]; - b = _tuple$4[1]; - _tuple$5 = bits.Sub(((x1 >>> 0)), dq1, b); - r1 = _tuple$5[0]; - if (!((r1 === 0))) { - qq = qq + (1) >>> 0; - r0 = r0 - (d) >>> 0; - } - if (r0 >= d) { - qq = qq + (1) >>> 0; - r0 = r0 - (d) >>> 0; - } - _tmp = ((qq >>> 0)); - _tmp$1 = ((((y$5 = s, y$5 < 32 ? (r0 >>> y$5) : 0) >>> 0) >>> 0)); - q = _tmp; - r = _tmp$1; - return [q, r]; - }; - reciprocalWord = function reciprocalWord$1(d1) { - var _tuple, d1, rec, u, x0, x1, y; - u = ((((y = nlz(d1), y < 32 ? (d1 << y) : 0) >>> 0) >>> 0)); - x1 = ~u >>> 0; - x0 = 4294967295; - _tuple = bits.Div(x1, x0, u); - rec = _tuple[0]; - return ((rec >>> 0)); - }; - Accuracy.prototype.String = function String$6() { - var i, x; - i = this.$val; - i = i - (-1) << 24 >> 24; - if (i < 0 || i >= 3) { - return "Accuracy(" + strconv.FormatInt((new $Int64(0, (i + -1 << 24 >> 24))), 10) + ")"; - } - return $substring("BelowExactAbove", ((i < 0 || i >= _Accuracy_index.length) ? ($throwRuntimeError("index out of range"), undefined) : _Accuracy_index[i]), (x = i + 1 << 24 >> 24, ((x < 0 || x >= _Accuracy_index.length) ? ($throwRuntimeError("index out of range"), undefined) : _Accuracy_index[x]))); - }; - $ptrType(Accuracy).prototype.String = function(...$args) { return new Accuracy(this.$get()).String(...$args); }; - ptrType$1.methods = [{prop: "GobEncode", name: "GobEncode", pkg: "", typ: $funcType([], [sliceType$1, $error], false)}, {prop: "GobDecode", name: "GobDecode", pkg: "", typ: $funcType([sliceType$1], [$error], false)}, {prop: "MarshalText", name: "MarshalText", pkg: "", typ: $funcType([], [sliceType$1, $error], false)}, {prop: "UnmarshalText", name: "UnmarshalText", pkg: "", typ: $funcType([sliceType$1], [$error], false)}, {prop: "Scan", name: "Scan", pkg: "", typ: $funcType([fmt.ScanState, $Int32], [$error], false)}, {prop: "SetString", name: "SetString", pkg: "", typ: $funcType([$String], [ptrType$1, $Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "marshal", name: "marshal", pkg: "math/big", typ: $funcType([], [sliceType$1], false)}, {prop: "RatString", name: "RatString", pkg: "", typ: $funcType([], [$String], false)}, {prop: "FloatString", name: "FloatString", pkg: "", typ: $funcType([$Int], [$String], false)}, {prop: "SetFloat64", name: "SetFloat64", pkg: "", typ: $funcType([$Float64], [ptrType$1], false)}, {prop: "Float32", name: "Float32", pkg: "", typ: $funcType([], [$Float32, $Bool], false)}, {prop: "Float64", name: "Float64", pkg: "", typ: $funcType([], [$Float64, $Bool], false)}, {prop: "SetFrac", name: "SetFrac", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$1], false)}, {prop: "SetFrac64", name: "SetFrac64", pkg: "", typ: $funcType([$Int64, $Int64], [ptrType$1], false)}, {prop: "SetInt", name: "SetInt", pkg: "", typ: $funcType([ptrType$2], [ptrType$1], false)}, {prop: "SetInt64", name: "SetInt64", pkg: "", typ: $funcType([$Int64], [ptrType$1], false)}, {prop: "SetUint64", name: "SetUint64", pkg: "", typ: $funcType([$Uint64], [ptrType$1], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([ptrType$1], [ptrType$1], false)}, {prop: "Abs", name: "Abs", pkg: "", typ: $funcType([ptrType$1], [ptrType$1], false)}, {prop: "Neg", name: "Neg", pkg: "", typ: $funcType([ptrType$1], [ptrType$1], false)}, {prop: "Inv", name: "Inv", pkg: "", typ: $funcType([ptrType$1], [ptrType$1], false)}, {prop: "Sign", name: "Sign", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "IsInt", name: "IsInt", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Num", name: "Num", pkg: "", typ: $funcType([], [ptrType$2], false)}, {prop: "Denom", name: "Denom", pkg: "", typ: $funcType([], [ptrType$2], false)}, {prop: "norm", name: "norm", pkg: "math/big", typ: $funcType([], [ptrType$1], false)}, {prop: "Cmp", name: "Cmp", pkg: "", typ: $funcType([ptrType$1], [$Int], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([ptrType$1, ptrType$1], [ptrType$1], false)}, {prop: "Sub", name: "Sub", pkg: "", typ: $funcType([ptrType$1, ptrType$1], [ptrType$1], false)}, {prop: "Mul", name: "Mul", pkg: "", typ: $funcType([ptrType$1, ptrType$1], [ptrType$1], false)}, {prop: "Quo", name: "Quo", pkg: "", typ: $funcType([ptrType$1, ptrType$1], [ptrType$1], false)}]; - nat.methods = [{prop: "probablyPrimeMillerRabin", name: "probablyPrimeMillerRabin", pkg: "math/big", typ: $funcType([$Int, $Bool], [$Bool], false)}, {prop: "probablyPrimeLucas", name: "probablyPrimeLucas", pkg: "math/big", typ: $funcType([], [$Bool], false)}, {prop: "rem", name: "rem", pkg: "math/big", typ: $funcType([nat, nat], [nat], false)}, {prop: "div", name: "div", pkg: "math/big", typ: $funcType([nat, nat, nat], [nat, nat], false)}, {prop: "divW", name: "divW", pkg: "math/big", typ: $funcType([nat, Word], [nat, Word], false)}, {prop: "modW", name: "modW", pkg: "math/big", typ: $funcType([Word], [Word], false)}, {prop: "divLarge", name: "divLarge", pkg: "math/big", typ: $funcType([nat, nat, nat], [nat, nat], false)}, {prop: "divBasic", name: "divBasic", pkg: "math/big", typ: $funcType([nat, nat], [], false)}, {prop: "divRecursive", name: "divRecursive", pkg: "math/big", typ: $funcType([nat, nat], [], false)}, {prop: "divRecursiveStep", name: "divRecursiveStep", pkg: "math/big", typ: $funcType([nat, nat, $Int, ptrType$3, sliceType$3], [], false)}, {prop: "scan", name: "scan", pkg: "math/big", typ: $funcType([io.ByteScanner, $Int, $Bool], [nat, $Int, $Int, $error], false)}, {prop: "utoa", name: "utoa", pkg: "math/big", typ: $funcType([$Int], [sliceType$1], false)}, {prop: "itoa", name: "itoa", pkg: "math/big", typ: $funcType([$Bool, $Int], [sliceType$1], false)}, {prop: "convertWords", name: "convertWords", pkg: "math/big", typ: $funcType([sliceType$1, Word, $Int, Word, sliceType$4], [], false)}, {prop: "expWW", name: "expWW", pkg: "math/big", typ: $funcType([Word, Word], [nat], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "clear", name: "clear", pkg: "math/big", typ: $funcType([], [], false)}, {prop: "norm", name: "norm", pkg: "math/big", typ: $funcType([], [nat], false)}, {prop: "make", name: "make", pkg: "math/big", typ: $funcType([$Int], [nat], false)}, {prop: "setWord", name: "setWord", pkg: "math/big", typ: $funcType([Word], [nat], false)}, {prop: "setUint64", name: "setUint64", pkg: "math/big", typ: $funcType([$Uint64], [nat], false)}, {prop: "set", name: "set", pkg: "math/big", typ: $funcType([nat], [nat], false)}, {prop: "add", name: "add", pkg: "math/big", typ: $funcType([nat, nat], [nat], false)}, {prop: "sub", name: "sub", pkg: "math/big", typ: $funcType([nat, nat], [nat], false)}, {prop: "cmp", name: "cmp", pkg: "math/big", typ: $funcType([nat], [$Int], false)}, {prop: "mulAddWW", name: "mulAddWW", pkg: "math/big", typ: $funcType([nat, Word, Word], [nat], false)}, {prop: "montgomery", name: "montgomery", pkg: "math/big", typ: $funcType([nat, nat, nat, Word, $Int], [nat], false)}, {prop: "mul", name: "mul", pkg: "math/big", typ: $funcType([nat, nat], [nat], false)}, {prop: "sqr", name: "sqr", pkg: "math/big", typ: $funcType([nat], [nat], false)}, {prop: "mulRange", name: "mulRange", pkg: "math/big", typ: $funcType([$Uint64, $Uint64], [nat], false)}, {prop: "bitLen", name: "bitLen", pkg: "math/big", typ: $funcType([], [$Int], false)}, {prop: "trailingZeroBits", name: "trailingZeroBits", pkg: "math/big", typ: $funcType([], [$Uint], false)}, {prop: "isPow2", name: "isPow2", pkg: "math/big", typ: $funcType([], [$Uint, $Bool], false)}, {prop: "shl", name: "shl", pkg: "math/big", typ: $funcType([nat, $Uint], [nat], false)}, {prop: "shr", name: "shr", pkg: "math/big", typ: $funcType([nat, $Uint], [nat], false)}, {prop: "setBit", name: "setBit", pkg: "math/big", typ: $funcType([nat, $Uint, $Uint], [nat], false)}, {prop: "bit", name: "bit", pkg: "math/big", typ: $funcType([$Uint], [$Uint], false)}, {prop: "sticky", name: "sticky", pkg: "math/big", typ: $funcType([$Uint], [$Uint], false)}, {prop: "and", name: "and", pkg: "math/big", typ: $funcType([nat, nat], [nat], false)}, {prop: "trunc", name: "trunc", pkg: "math/big", typ: $funcType([nat, $Uint], [nat], false)}, {prop: "andNot", name: "andNot", pkg: "math/big", typ: $funcType([nat, nat], [nat], false)}, {prop: "or", name: "or", pkg: "math/big", typ: $funcType([nat, nat], [nat], false)}, {prop: "xor", name: "xor", pkg: "math/big", typ: $funcType([nat, nat], [nat], false)}, {prop: "random", name: "random", pkg: "math/big", typ: $funcType([ptrType$5, nat, $Int], [nat], false)}, {prop: "expNN", name: "expNN", pkg: "math/big", typ: $funcType([nat, nat, nat, $Bool], [nat], false)}, {prop: "expNNMontgomeryEven", name: "expNNMontgomeryEven", pkg: "math/big", typ: $funcType([nat, nat, nat], [nat], false)}, {prop: "expNNWindowed", name: "expNNWindowed", pkg: "math/big", typ: $funcType([nat, nat, $Uint], [nat], false)}, {prop: "expNNMontgomery", name: "expNNMontgomery", pkg: "math/big", typ: $funcType([nat, nat, nat], [nat], false)}, {prop: "bytes", name: "bytes", pkg: "math/big", typ: $funcType([sliceType$1], [$Int], false)}, {prop: "setBytes", name: "setBytes", pkg: "math/big", typ: $funcType([sliceType$1], [nat], false)}, {prop: "sqrt", name: "sqrt", pkg: "math/big", typ: $funcType([nat], [nat], false)}, {prop: "subMod2N", name: "subMod2N", pkg: "math/big", typ: $funcType([nat, nat, $Uint], [nat], false)}, {prop: "modInverse", name: "modInverse", pkg: "math/big", typ: $funcType([nat, nat], [nat], false)}]; - byteReader.methods = [{prop: "ReadByte", name: "ReadByte", pkg: "", typ: $funcType([], [$Uint8, $error], false)}, {prop: "UnreadByte", name: "UnreadByte", pkg: "", typ: $funcType([], [$error], false)}]; - ptrType$2.methods = [{prop: "scaleDenom", name: "scaleDenom", pkg: "math/big", typ: $funcType([ptrType$2, nat], [], false)}, {prop: "ProbablyPrime", name: "ProbablyPrime", pkg: "", typ: $funcType([$Int], [$Bool], false)}, {prop: "GobEncode", name: "GobEncode", pkg: "", typ: $funcType([], [sliceType$1, $error], false)}, {prop: "GobDecode", name: "GobDecode", pkg: "", typ: $funcType([sliceType$1], [$error], false)}, {prop: "MarshalText", name: "MarshalText", pkg: "", typ: $funcType([], [sliceType$1, $error], false)}, {prop: "UnmarshalText", name: "UnmarshalText", pkg: "", typ: $funcType([sliceType$1], [$error], false)}, {prop: "MarshalJSON", name: "MarshalJSON", pkg: "", typ: $funcType([], [sliceType$1, $error], false)}, {prop: "UnmarshalJSON", name: "UnmarshalJSON", pkg: "", typ: $funcType([sliceType$1], [$error], false)}, {prop: "Text", name: "Text", pkg: "", typ: $funcType([$Int], [$String], false)}, {prop: "Append", name: "Append", pkg: "", typ: $funcType([sliceType$1, $Int], [sliceType$1], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Format", name: "Format", pkg: "", typ: $funcType([fmt.State, $Int32], [], false)}, {prop: "scan", name: "scan", pkg: "math/big", typ: $funcType([io.ByteScanner, $Int], [ptrType$2, $Int, $error], false)}, {prop: "Scan", name: "Scan", pkg: "", typ: $funcType([fmt.ScanState, $Int32], [$error], false)}, {prop: "Sign", name: "Sign", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "SetInt64", name: "SetInt64", pkg: "", typ: $funcType([$Int64], [ptrType$2], false)}, {prop: "SetUint64", name: "SetUint64", pkg: "", typ: $funcType([$Uint64], [ptrType$2], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([ptrType$2], [ptrType$2], false)}, {prop: "Bits", name: "Bits", pkg: "", typ: $funcType([], [sliceType$2], false)}, {prop: "SetBits", name: "SetBits", pkg: "", typ: $funcType([sliceType$2], [ptrType$2], false)}, {prop: "Abs", name: "Abs", pkg: "", typ: $funcType([ptrType$2], [ptrType$2], false)}, {prop: "Neg", name: "Neg", pkg: "", typ: $funcType([ptrType$2], [ptrType$2], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "Sub", name: "Sub", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "Mul", name: "Mul", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "MulRange", name: "MulRange", pkg: "", typ: $funcType([$Int64, $Int64], [ptrType$2], false)}, {prop: "Binomial", name: "Binomial", pkg: "", typ: $funcType([$Int64, $Int64], [ptrType$2], false)}, {prop: "Quo", name: "Quo", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "Rem", name: "Rem", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "QuoRem", name: "QuoRem", pkg: "", typ: $funcType([ptrType$2, ptrType$2, ptrType$2], [ptrType$2, ptrType$2], false)}, {prop: "Div", name: "Div", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "Mod", name: "Mod", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "DivMod", name: "DivMod", pkg: "", typ: $funcType([ptrType$2, ptrType$2, ptrType$2], [ptrType$2, ptrType$2], false)}, {prop: "Cmp", name: "Cmp", pkg: "", typ: $funcType([ptrType$2], [$Int], false)}, {prop: "CmpAbs", name: "CmpAbs", pkg: "", typ: $funcType([ptrType$2], [$Int], false)}, {prop: "Int64", name: "Int64", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "IsInt64", name: "IsInt64", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsUint64", name: "IsUint64", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "SetString", name: "SetString", pkg: "", typ: $funcType([$String, $Int], [ptrType$2, $Bool], false)}, {prop: "setFromScanner", name: "setFromScanner", pkg: "math/big", typ: $funcType([io.ByteScanner, $Int], [ptrType$2, $Bool], false)}, {prop: "SetBytes", name: "SetBytes", pkg: "", typ: $funcType([sliceType$1], [ptrType$2], false)}, {prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "FillBytes", name: "FillBytes", pkg: "", typ: $funcType([sliceType$1], [sliceType$1], false)}, {prop: "BitLen", name: "BitLen", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "TrailingZeroBits", name: "TrailingZeroBits", pkg: "", typ: $funcType([], [$Uint], false)}, {prop: "Exp", name: "Exp", pkg: "", typ: $funcType([ptrType$2, ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "expSlow", name: "expSlow", pkg: "math/big", typ: $funcType([ptrType$2, ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "exp", name: "exp", pkg: "math/big", typ: $funcType([ptrType$2, ptrType$2, ptrType$2, $Bool], [ptrType$2], false)}, {prop: "GCD", name: "GCD", pkg: "", typ: $funcType([ptrType$2, ptrType$2, ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "lehmerGCD", name: "lehmerGCD", pkg: "math/big", typ: $funcType([ptrType$2, ptrType$2, ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "Rand", name: "Rand", pkg: "", typ: $funcType([ptrType$5, ptrType$2], [ptrType$2], false)}, {prop: "ModInverse", name: "ModInverse", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "modSqrt3Mod4Prime", name: "modSqrt3Mod4Prime", pkg: "math/big", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "modSqrt5Mod8Prime", name: "modSqrt5Mod8Prime", pkg: "math/big", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "modSqrtTonelliShanks", name: "modSqrtTonelliShanks", pkg: "math/big", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "ModSqrt", name: "ModSqrt", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "Lsh", name: "Lsh", pkg: "", typ: $funcType([ptrType$2, $Uint], [ptrType$2], false)}, {prop: "Rsh", name: "Rsh", pkg: "", typ: $funcType([ptrType$2, $Uint], [ptrType$2], false)}, {prop: "Bit", name: "Bit", pkg: "", typ: $funcType([$Int], [$Uint], false)}, {prop: "SetBit", name: "SetBit", pkg: "", typ: $funcType([ptrType$2, $Int, $Uint], [ptrType$2], false)}, {prop: "And", name: "And", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "AndNot", name: "AndNot", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "Or", name: "Or", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "Xor", name: "Xor", pkg: "", typ: $funcType([ptrType$2, ptrType$2], [ptrType$2], false)}, {prop: "Not", name: "Not", pkg: "", typ: $funcType([ptrType$2], [ptrType$2], false)}, {prop: "Sqrt", name: "Sqrt", pkg: "", typ: $funcType([ptrType$2], [ptrType$2], false)}]; - ptrType.methods = [{prop: "Sqrt", name: "Sqrt", pkg: "", typ: $funcType([ptrType], [ptrType], false)}, {prop: "sqrtInverse", name: "sqrtInverse", pkg: "math/big", typ: $funcType([ptrType], [], false)}, {prop: "Text", name: "Text", pkg: "", typ: $funcType([$Uint8, $Int], [$String], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Append", name: "Append", pkg: "", typ: $funcType([sliceType$1, $Uint8, $Int], [sliceType$1], false)}, {prop: "fmtB", name: "fmtB", pkg: "math/big", typ: $funcType([sliceType$1], [sliceType$1], false)}, {prop: "fmtX", name: "fmtX", pkg: "math/big", typ: $funcType([sliceType$1, $Int], [sliceType$1], false)}, {prop: "fmtP", name: "fmtP", pkg: "math/big", typ: $funcType([sliceType$1], [sliceType$1], false)}, {prop: "Format", name: "Format", pkg: "", typ: $funcType([fmt.State, $Int32], [], false)}, {prop: "GobEncode", name: "GobEncode", pkg: "", typ: $funcType([], [sliceType$1, $error], false)}, {prop: "GobDecode", name: "GobDecode", pkg: "", typ: $funcType([sliceType$1], [$error], false)}, {prop: "MarshalText", name: "MarshalText", pkg: "", typ: $funcType([], [sliceType$1, $error], false)}, {prop: "UnmarshalText", name: "UnmarshalText", pkg: "", typ: $funcType([sliceType$1], [$error], false)}, {prop: "SetString", name: "SetString", pkg: "", typ: $funcType([$String], [ptrType, $Bool], false)}, {prop: "scan", name: "scan", pkg: "math/big", typ: $funcType([io.ByteScanner, $Int], [ptrType, $Int, $error], false)}, {prop: "pow5", name: "pow5", pkg: "math/big", typ: $funcType([$Uint64], [ptrType], false)}, {prop: "Parse", name: "Parse", pkg: "", typ: $funcType([$String, $Int], [ptrType, $Int, $error], false)}, {prop: "Scan", name: "Scan", pkg: "", typ: $funcType([fmt.ScanState, $Int32], [$error], false)}, {prop: "SetPrec", name: "SetPrec", pkg: "", typ: $funcType([$Uint], [ptrType], false)}, {prop: "SetMode", name: "SetMode", pkg: "", typ: $funcType([RoundingMode], [ptrType], false)}, {prop: "Prec", name: "Prec", pkg: "", typ: $funcType([], [$Uint], false)}, {prop: "MinPrec", name: "MinPrec", pkg: "", typ: $funcType([], [$Uint], false)}, {prop: "Mode", name: "Mode", pkg: "", typ: $funcType([], [RoundingMode], false)}, {prop: "Acc", name: "Acc", pkg: "", typ: $funcType([], [Accuracy], false)}, {prop: "Sign", name: "Sign", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "MantExp", name: "MantExp", pkg: "", typ: $funcType([ptrType], [$Int], false)}, {prop: "setExpAndRound", name: "setExpAndRound", pkg: "math/big", typ: $funcType([$Int64, $Uint], [], false)}, {prop: "SetMantExp", name: "SetMantExp", pkg: "", typ: $funcType([ptrType, $Int], [ptrType], false)}, {prop: "Signbit", name: "Signbit", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsInf", name: "IsInf", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsInt", name: "IsInt", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "validate", name: "validate", pkg: "math/big", typ: $funcType([], [], false)}, {prop: "round", name: "round", pkg: "math/big", typ: $funcType([$Uint], [], false)}, {prop: "setBits64", name: "setBits64", pkg: "math/big", typ: $funcType([$Bool, $Uint64], [ptrType], false)}, {prop: "SetUint64", name: "SetUint64", pkg: "", typ: $funcType([$Uint64], [ptrType], false)}, {prop: "SetInt64", name: "SetInt64", pkg: "", typ: $funcType([$Int64], [ptrType], false)}, {prop: "SetFloat64", name: "SetFloat64", pkg: "", typ: $funcType([$Float64], [ptrType], false)}, {prop: "SetInt", name: "SetInt", pkg: "", typ: $funcType([ptrType$2], [ptrType], false)}, {prop: "SetRat", name: "SetRat", pkg: "", typ: $funcType([ptrType$1], [ptrType], false)}, {prop: "SetInf", name: "SetInf", pkg: "", typ: $funcType([$Bool], [ptrType], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([ptrType], [ptrType], false)}, {prop: "Copy", name: "Copy", pkg: "", typ: $funcType([ptrType], [ptrType], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([], [$Uint64, Accuracy], false)}, {prop: "Int64", name: "Int64", pkg: "", typ: $funcType([], [$Int64, Accuracy], false)}, {prop: "Float32", name: "Float32", pkg: "", typ: $funcType([], [$Float32, Accuracy], false)}, {prop: "Float64", name: "Float64", pkg: "", typ: $funcType([], [$Float64, Accuracy], false)}, {prop: "Int", name: "Int", pkg: "", typ: $funcType([ptrType$2], [ptrType$2, Accuracy], false)}, {prop: "Rat", name: "Rat", pkg: "", typ: $funcType([ptrType$1], [ptrType$1, Accuracy], false)}, {prop: "Abs", name: "Abs", pkg: "", typ: $funcType([ptrType], [ptrType], false)}, {prop: "Neg", name: "Neg", pkg: "", typ: $funcType([ptrType], [ptrType], false)}, {prop: "uadd", name: "uadd", pkg: "math/big", typ: $funcType([ptrType, ptrType], [], false)}, {prop: "usub", name: "usub", pkg: "math/big", typ: $funcType([ptrType, ptrType], [], false)}, {prop: "umul", name: "umul", pkg: "math/big", typ: $funcType([ptrType, ptrType], [], false)}, {prop: "uquo", name: "uquo", pkg: "math/big", typ: $funcType([ptrType, ptrType], [], false)}, {prop: "ucmp", name: "ucmp", pkg: "math/big", typ: $funcType([ptrType], [$Int], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([ptrType, ptrType], [ptrType], false)}, {prop: "Sub", name: "Sub", pkg: "", typ: $funcType([ptrType, ptrType], [ptrType], false)}, {prop: "Mul", name: "Mul", pkg: "", typ: $funcType([ptrType, ptrType], [ptrType], false)}, {prop: "Quo", name: "Quo", pkg: "", typ: $funcType([ptrType, ptrType], [ptrType], false)}, {prop: "Cmp", name: "Cmp", pkg: "", typ: $funcType([ptrType], [$Int], false)}, {prop: "ord", name: "ord", pkg: "math/big", typ: $funcType([], [$Int], false)}]; - ErrNaN.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; - RoundingMode.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - Accuracy.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$6.methods = [{prop: "at", name: "at", pkg: "math/big", typ: $funcType([$Int], [$Uint8], false)}, {prop: "init", name: "init", pkg: "math/big", typ: $funcType([nat, $Int], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "round", name: "round", pkg: "math/big", typ: $funcType([$Int], [], false)}, {prop: "roundUp", name: "roundUp", pkg: "math/big", typ: $funcType([$Int], [], false)}, {prop: "roundDown", name: "roundDown", pkg: "math/big", typ: $funcType([$Int], [], false)}]; - Rat.init("math/big", [{prop: "a", name: "a", embedded: false, exported: false, typ: Int, tag: ""}, {prop: "b", name: "b", embedded: false, exported: false, typ: Int, tag: ""}]); - divisor.init("math/big", [{prop: "bbb", name: "bbb", embedded: false, exported: false, typ: nat, tag: ""}, {prop: "nbits", name: "nbits", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "ndigits", name: "ndigits", embedded: false, exported: false, typ: $Int, tag: ""}]); - nat.init(Word); - byteReader.init("", [{prop: "ScanState", name: "ScanState", embedded: true, exported: true, typ: fmt.ScanState, tag: ""}]); - Int.init("math/big", [{prop: "neg", name: "neg", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "abs", name: "abs", embedded: false, exported: false, typ: nat, tag: ""}]); - Float.init("math/big", [{prop: "prec", name: "prec", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "mode", name: "mode", embedded: false, exported: false, typ: RoundingMode, tag: ""}, {prop: "acc", name: "acc", embedded: false, exported: false, typ: Accuracy, tag: ""}, {prop: "form", name: "form", embedded: false, exported: false, typ: form, tag: ""}, {prop: "neg", name: "neg", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "mant", name: "mant", embedded: false, exported: false, typ: nat, tag: ""}, {prop: "exp", name: "exp", embedded: false, exported: false, typ: $Int32, tag: ""}]); - ErrNaN.init("math/big", [{prop: "msg", name: "msg", embedded: false, exported: false, typ: $String, tag: ""}]); - decimal.init("math/big", [{prop: "mant", name: "mant", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "exp", name: "exp", embedded: false, exported: false, typ: $Int, tag: ""}]); - }; - $init = function() { - $pkg.$init = function() {}; - /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: - $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = binary.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = errors.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = fmt.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = nosync.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = io.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = math.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = bits.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = rand.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = strconv.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = strings.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - threeOnce = new structType.ptr(new nosync.Once.ptr(false, false), ptrType.nil); - cacheBase10 = new structType$1.ptr(new nosync.Mutex.ptr(false, false, false, false, 0), arrayType.zero()); - natPool = new nosync.Pool.ptr(sliceType.nil, $throwNilPointerError); - _RoundingMode_index = $toNativeArray($kindUint8, [0, 13, 26, 32, 44, 57, 70]); - errNoDigits = errors.New("number has no digits"); - errInvalSep = errors.New("'_' must separate successive digits"); - leafSize = 8; - natOne = new nat([1]); - natTwo = new nat([2]); - natFive = new nat([5]); - natTen = new nat([10]); - karatsubaThreshold = 40; - basicSqrThreshold = 20; - karatsubaSqrThreshold = 260; - intOne = new Int.ptr(false, natOne); - pow5tab = $toNativeArray($kindUint64, [new $Uint64(0, 1), new $Uint64(0, 5), new $Uint64(0, 25), new $Uint64(0, 125), new $Uint64(0, 625), new $Uint64(0, 3125), new $Uint64(0, 15625), new $Uint64(0, 78125), new $Uint64(0, 390625), new $Uint64(0, 1953125), new $Uint64(0, 9765625), new $Uint64(0, 48828125), new $Uint64(0, 244140625), new $Uint64(0, 1220703125), new $Uint64(1, 1808548329), new $Uint64(7, 452807053), new $Uint64(35, 2264035265), new $Uint64(177, 2730241733), new $Uint64(888, 766306777), new $Uint64(4440, 3831533885), new $Uint64(22204, 1977800241), new $Uint64(111022, 1299066613), new $Uint64(555111, 2200365769), new $Uint64(2775557, 2411894253), new $Uint64(13877787, 3469536673), new $Uint64(69388939, 167814181), new $Uint64(346944695, 839070905), new $Uint64(1734723475, 4195354525)]); - _Accuracy_index = $toNativeArray($kindUint8, [0, 5, 10, 15]); - /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; - }; - $pkg.$init = $init; - return $pkg; -})(); -$packages["go/constant"] = (function() { - var $pkg = {}, $init, fmt, token, math, big, bits, strconv, strings, sync, utf8, Kind, Value, unknownVal, boolVal, stringVal, int64Val, intVal, ratVal, floatVal, complexVal, ptrType, sliceType, sliceType$1, ptrType$1, ptrType$2, ptrType$3, emptyString, emptyString$24ptr, floatVal0, _r, _Kind_index, reverse, newInt, newRat, newFloat, i64toi, i64tor, i64tof, itor, itof, rtof, vtoc, makeInt, makeRat, makeFloat, makeComplex, makeFloatFromLiteral, smallInt, smallFloat64, smallFloat, MakeUnknown, MakeBool, MakeString, MakeInt64, MakeFloat64, MakeFromLiteral, BoolVal, StringVal, Int64Val, Uint64Val, Float32Val, Float64Val, BitLen, Sign, MakeImag, Real, Imag, ToInt, ToFloat, ToComplex, is32bit, is63bit, UnaryOp, ord, match, match0, BinaryOp, add, sub, mul, quo, Shift, cmpZero, Compare; - fmt = $packages["fmt"]; - token = $packages["go/token"]; - math = $packages["math"]; - big = $packages["math/big"]; - bits = $packages["math/bits"]; - strconv = $packages["strconv"]; - strings = $packages["strings"]; - sync = $packages["sync"]; - utf8 = $packages["unicode/utf8"]; - Kind = $newType(4, $kindInt, "constant.Kind", true, "go/constant", true, null); - Value = $newType(8, $kindInterface, "constant.Value", true, "go/constant", true, null); - unknownVal = $newType(0, $kindStruct, "constant.unknownVal", true, "go/constant", false, function() { this.$val = this; }); - boolVal = $newType(1, $kindBool, "constant.boolVal", true, "go/constant", false, null); - stringVal = $newType(0, $kindStruct, "constant.stringVal", true, "go/constant", false, function(mu_, s_, l_, r_) { - this.$val = this; - if (arguments.length === 0) { - this.mu = new sync.Mutex.ptr(0, 0); - this.s = ""; - this.l = ptrType.nil; - this.r = ptrType.nil; - return; - } - this.mu = mu_; - this.s = s_; - this.l = l_; - this.r = r_; - }); - int64Val = $newType(8, $kindInt64, "constant.int64Val", true, "go/constant", false, null); - intVal = $newType(0, $kindStruct, "constant.intVal", true, "go/constant", false, function(val_) { - this.$val = this; - if (arguments.length === 0) { - this.val = ptrType$2.nil; - return; - } - this.val = val_; - }); - ratVal = $newType(0, $kindStruct, "constant.ratVal", true, "go/constant", false, function(val_) { - this.$val = this; - if (arguments.length === 0) { - this.val = ptrType$3.nil; - return; - } - this.val = val_; - }); - floatVal = $newType(0, $kindStruct, "constant.floatVal", true, "go/constant", false, function(val_) { - this.$val = this; - if (arguments.length === 0) { - this.val = ptrType$1.nil; - return; - } - this.val = val_; - }); - complexVal = $newType(0, $kindStruct, "constant.complexVal", true, "go/constant", false, function(re_, im_) { - this.$val = this; - if (arguments.length === 0) { - this.re = $ifaceNil; - this.im = $ifaceNil; - return; - } - this.re = re_; - this.im = im_; - }); - $pkg.Kind = Kind; - $pkg.Value = Value; - $pkg.unknownVal = unknownVal; - $pkg.boolVal = boolVal; - $pkg.stringVal = stringVal; - $pkg.int64Val = int64Val; - $pkg.intVal = intVal; - $pkg.ratVal = ratVal; - $pkg.floatVal = floatVal; - $pkg.complexVal = complexVal; - $pkg.$finishSetup = function() { - ptrType = $ptrType(stringVal); - sliceType = $sliceType($String); - sliceType$1 = $sliceType($emptyInterface); - ptrType$1 = $ptrType(big.Float); - ptrType$2 = $ptrType(big.Int); - ptrType$3 = $ptrType(big.Rat); - $ptrType(unknownVal).prototype.Kind = function Kind$1() { - return 0; - }; - unknownVal.prototype.Kind = function(...$args) { return this.$val.Kind(...$args); }; - boolVal.prototype.Kind = function Kind$2() { - return 1; - }; - $ptrType(boolVal).prototype.Kind = function(...$args) { return new boolVal(this.$get()).Kind(...$args); }; - $ptrType(stringVal).prototype.Kind = function Kind$3() { - return 2; - }; - int64Val.prototype.Kind = function Kind$4() { - return 3; - }; - $ptrType(int64Val).prototype.Kind = function(...$args) { return this.$get().Kind(...$args); }; - $ptrType(intVal).prototype.Kind = function Kind$5() { - return 3; - }; - intVal.prototype.Kind = function(...$args) { return this.$val.Kind(...$args); }; - $ptrType(ratVal).prototype.Kind = function Kind$6() { - return 4; - }; - ratVal.prototype.Kind = function(...$args) { return this.$val.Kind(...$args); }; - $ptrType(floatVal).prototype.Kind = function Kind$7() { - return 4; - }; - floatVal.prototype.Kind = function(...$args) { return this.$val.Kind(...$args); }; - $ptrType(complexVal).prototype.Kind = function Kind$8() { - return 5; - }; - complexVal.prototype.Kind = function(...$args) { return this.$val.Kind(...$args); }; - $ptrType(unknownVal).prototype.String = function String() { - return "unknown"; - }; - unknownVal.prototype.String = function(...$args) { return this.$val.String(...$args); }; - boolVal.prototype.String = function String$1() { - var x; - x = this.$val; - return strconv.FormatBool((x)); - }; - $ptrType(boolVal).prototype.String = function(...$args) { return new boolVal(this.$get()).String(...$args); }; - $ptrType(stringVal).prototype.String = function String$2() { - var {_r$1, _r$2, _tuple, i, n, s, size, x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - _r$1 = x.string(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = strconv.Quote(_r$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - s = _r$2; - if (utf8.RuneCountInString(s) > 72) { - i = 0; - n = 0; - while (true) { - if (!(n < 69)) { break; } - _tuple = utf8.DecodeRuneInString($substring(s, i)); - size = _tuple[1]; - i = i + (size) >> 0; - n = n + (1) >> 0; - } - s = $substring(s, 0, i) + "..."; - } - $s = -1; return s; - /* */ } return; } var $f = {$blk: String$2, $c: true, $r, _r$1, _r$2, _tuple, i, n, s, size, x, $s};return $f; - }; - $ptrType(stringVal).prototype.string = function string() { - var {_r$1, _r$2, _r$3, s, x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - $r = x.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!(x.l === ptrType.nil)) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!(x.l === ptrType.nil)) { */ case 2: - _r$1 = x.appendReverse(sliceType.nil); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = reverse(_r$1); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = strings.Join(_r$2, ""); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - x.s = _r$3; - x.l = ptrType.nil; - x.r = ptrType.nil; - /* } */ case 3: - s = x.s; - $r = x.mu.Unlock(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return s; - /* */ } return; } var $f = {$blk: string, $c: true, $r, _r$1, _r$2, _r$3, s, x, $s};return $f; - }; - reverse = function reverse$1(x) { - var _tmp, _tmp$1, i, n, x, x$1, x$2; - n = x.$length; - i = 0; - while (true) { - if (!((i + i >> 0) < n)) { break; } - _tmp = (x$1 = (n - 1 >> 0) - i >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); - _tmp$1 = ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]); - ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i] = _tmp); - (x$2 = (n - 1 >> 0) - i >> 0, ((x$2 < 0 || x$2 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$2] = _tmp$1)); - i = i + (1) >> 0; - } - return x; - }; - $ptrType(stringVal).prototype.appendReverse = function appendReverse(list) { - var {_r$1, l, list, s, x, y, $s, $r, $c} = $restore(this, {list}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - y = x; - /* while (true) { */ case 1: - /* if (!(!(y.r === ptrType.nil))) { break; } */ if(!(!(y.r === ptrType.nil))) { $s = 2; continue; } - $r = y.r.mu.Lock(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$1 = y.r.appendReverse(list); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - list = _r$1; - $r = y.r.mu.Unlock(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - l = y.l; - /* */ if (!(y === x)) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (!(y === x)) { */ case 6: - $r = y.mu.Unlock(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 7: - $r = l.mu.Lock(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - y = l; - $s = 1; continue; - case 2: - s = y.s; - /* */ if (!(y === x)) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (!(y === x)) { */ case 10: - $r = y.mu.Unlock(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 11: - $s = -1; return $append(list, s); - /* */ } return; } var $f = {$blk: appendReverse, $c: true, $r, _r$1, l, list, s, x, y, $s};return $f; - }; - int64Val.prototype.String = function String$3() { - var x; - x = this; - return strconv.FormatInt((new $Int64(x.$high, x.$low)), 10); - }; - $ptrType(int64Val).prototype.String = function(...$args) { return this.$get().String(...$args); }; - $ptrType(intVal).prototype.String = function String$4() { - var {$24r, _r$1, x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - _r$1 = x.val.String(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$4, $c: true, $r, $24r, _r$1, x, $s};return $f; - }; - intVal.prototype.String = function(...$args) { return this.$val.String(...$args); }; - $ptrType(ratVal).prototype.String = function String$5() { - var {$24r, _r$1, _r$2, x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - _r$1 = rtof($clone(x, ratVal)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = $clone(_r$1, floatVal).String(); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: String$5, $c: true, $r, $24r, _r$1, _r$2, x, $s};return $f; - }; - ratVal.prototype.String = function(...$args) { return this.$val.String(...$args); }; - $ptrType(floatVal).prototype.String = function String$6() { - var {$24r, $24r$1, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, am, d, e, exp, f, m, mant, s, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - mant = [mant]; - x = this; - f = x.val; - /* */ if (f.IsInf()) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (f.IsInf()) { */ case 1: - _r$1 = f.String(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 4; case 4: return $24r; - /* } */ case 2: - _r$2 = f.Float64(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple = _r$2; - x$1 = _tuple[0]; - _r$3 = f.Sign(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if ((_r$3 === 0) === ((x$1 === 0)) && !math.IsInf(x$1, 0)) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if ((_r$3 === 0) === ((x$1 === 0)) && !math.IsInf(x$1, 0)) { */ case 6: - _r$4 = fmt.Sprintf("%.6g", new sliceType$1([new $Float64(x$1)])); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - s = _r$4; - _r$5 = f.IsInt(); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* */ if (!_r$5 && strings.IndexByte(s, 46) < 0) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (!_r$5 && strings.IndexByte(s, 46) < 0) { */ case 10: - _r$6 = fmt.Sprintf("%g", new sliceType$1([new $Float64(x$1)])); /* */ $s = 13; case 13: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - s = _r$6; - /* } */ case 11: - $s = -1; return s; - /* } */ case 7: - mant[0] = new big.Float.ptr(0, 0, 0, 0, false, big.nat.nil, 0); - _r$7 = f.MantExp(mant[0]); /* */ $s = 14; case 14: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - exp = _r$7; - _r$8 = mant[0].Float64(); /* */ $s = 15; case 15: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _tuple$1 = _r$8; - m = _tuple$1[0]; - d = (exp) * 0.3010299956639812; - e = (new $Int64(0, d)); - m = m * (math.Pow(10, d - ($flatten64(e)))); - am = math.Abs(m); - if (am < 0.9999995) { - m = m * (10); - e = (x$2 = new $Int64(0, 1), new $Int64(e.$high - x$2.$high, e.$low - x$2.$low)); - } else if (am >= 10) { - m = m / (10); - e = (x$3 = new $Int64(0, 1), new $Int64(e.$high + x$3.$high, e.$low + x$3.$low)); - } - _r$9 = fmt.Sprintf("%.6ge%+d", new sliceType$1([new $Float64(m), e])); /* */ $s = 16; case 16: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - $24r$1 = _r$9; - $s = 17; case 17: return $24r$1; - /* */ } return; } var $f = {$blk: String$6, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, am, d, e, exp, f, m, mant, s, x, x$1, x$2, x$3, $s};return $f; - }; - floatVal.prototype.String = function(...$args) { return this.$val.String(...$args); }; - $ptrType(complexVal).prototype.String = function String$7() { - var {$24r, _r$1, x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - _r$1 = fmt.Sprintf("(%s + %si)", new sliceType$1([x.re, x.im])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$7, $c: true, $r, $24r, _r$1, x, $s};return $f; - }; - complexVal.prototype.String = function(...$args) { return this.$val.String(...$args); }; - $ptrType(unknownVal).prototype.ExactString = function ExactString() { - var x; - x = this; - return $clone(x, unknownVal).String(); - }; - unknownVal.prototype.ExactString = function(...$args) { return this.$val.ExactString(...$args); }; - boolVal.prototype.ExactString = function ExactString$1() { - var x; - x = this.$val; - return new boolVal(x).String(); - }; - $ptrType(boolVal).prototype.ExactString = function(...$args) { return new boolVal(this.$get()).ExactString(...$args); }; - $ptrType(stringVal).prototype.ExactString = function ExactString$2() { - var {$24r, _r$1, _r$2, x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - _r$1 = x.string(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = strconv.Quote(_r$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: ExactString$2, $c: true, $r, $24r, _r$1, _r$2, x, $s};return $f; - }; - int64Val.prototype.ExactString = function ExactString$3() { - var x; - x = this; - return x.String(); - }; - $ptrType(int64Val).prototype.ExactString = function(...$args) { return this.$get().ExactString(...$args); }; - $ptrType(intVal).prototype.ExactString = function ExactString$4() { - var {$24r, _r$1, x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - _r$1 = $clone(x, intVal).String(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: ExactString$4, $c: true, $r, $24r, _r$1, x, $s};return $f; - }; - intVal.prototype.ExactString = function(...$args) { return this.$val.ExactString(...$args); }; - $ptrType(ratVal).prototype.ExactString = function ExactString$5() { - var {$24r, $24r$1, _r$1, _r$2, r, x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - r = x.val; - /* */ if (r.IsInt()) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (r.IsInt()) { */ case 1: - _r$1 = r.Num().String(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 4; case 4: return $24r; - /* } */ case 2: - _r$2 = r.String(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r$1 = _r$2; - $s = 6; case 6: return $24r$1; - /* */ } return; } var $f = {$blk: ExactString$5, $c: true, $r, $24r, $24r$1, _r$1, _r$2, r, x, $s};return $f; - }; - ratVal.prototype.ExactString = function(...$args) { return this.$val.ExactString(...$args); }; - $ptrType(floatVal).prototype.ExactString = function ExactString$6() { - var {$24r, _r$1, x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - _r$1 = x.val.Text(112, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: ExactString$6, $c: true, $r, $24r, _r$1, x, $s};return $f; - }; - floatVal.prototype.ExactString = function(...$args) { return this.$val.ExactString(...$args); }; - $ptrType(complexVal).prototype.ExactString = function ExactString$7() { - var {$24r, _arg, _arg$1, _r$1, _r$2, _r$3, x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - _r$1 = x.re.ExactString(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _arg = new $String(_r$1); - _r$2 = x.im.ExactString(); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _arg$1 = new $String(_r$2); - _r$3 = fmt.Sprintf("(%s + %si)", new sliceType$1([_arg, _arg$1])); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r = _r$3; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: ExactString$7, $c: true, $r, $24r, _arg, _arg$1, _r$1, _r$2, _r$3, x, $s};return $f; - }; - complexVal.prototype.ExactString = function(...$args) { return this.$val.ExactString(...$args); }; - newInt = function newInt$1() { - return new big.Int.ptr(false, big.nat.nil); - }; - newRat = function newRat$1() { - return new big.Rat.ptr(new big.Int.ptr(false, big.nat.nil), new big.Int.ptr(false, big.nat.nil)); - }; - newFloat = function newFloat$1() { - var {$24r, _r$1, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = new big.Float.ptr(0, 0, 0, 0, false, big.nat.nil, 0).SetPrec(512); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: newFloat$1, $c: true, $r, $24r, _r$1, $s};return $f; - }; - i64toi = function i64toi$1(x) { - var x; - return new intVal.ptr(newInt().SetInt64((new $Int64(x.$high, x.$low)))); - }; - i64tor = function i64tor$1(x) { - var x; - return new ratVal.ptr(newRat().SetInt64((new $Int64(x.$high, x.$low)))); - }; - i64tof = function i64tof$1(x) { - var {$24r, _r$1, _r$2, x, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = newFloat(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = _r$1.SetInt64((new $Int64(x.$high, x.$low))); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = new floatVal.ptr(_r$2); - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: i64tof$1, $c: true, $r, $24r, _r$1, _r$2, x, $s};return $f; - }; - itor = function itor$1(x) { - var x; - return new ratVal.ptr(newRat().SetInt(x.val)); - }; - itof = function itof$1(x) { - var {$24r, _r$1, _r$2, x, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = newFloat(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = _r$1.SetInt(x.val); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = new floatVal.ptr(_r$2); - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: itof$1, $c: true, $r, $24r, _r$1, _r$2, x, $s};return $f; - }; - rtof = function rtof$1(x) { - var {$24r, _r$1, _r$2, x, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = newFloat(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = _r$1.SetRat(x.val); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = new floatVal.ptr(_r$2); - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: rtof$1, $c: true, $r, $24r, _r$1, _r$2, x, $s};return $f; - }; - vtoc = function vtoc$1(x) { - var x; - return new complexVal.ptr(x, new int64Val(0, 0)); - }; - makeInt = function makeInt$1(x) { - var x, x$1, x$2; - if (x.IsInt64()) { - return ((x$1 = x.Int64(), new int64Val(x$1.$high, x$1.$low))); - } - return (x$2 = new intVal.ptr(x), new x$2.constructor.elem(x$2)); - }; - makeRat = function makeRat$1(x) { - var {$24r, _r$1, _r$2, a, b, x, x$1, x$2, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - a = x.Num(); - b = x.Denom(); - if (smallInt(a) && smallInt(b)) { - $s = -1; return (x$1 = new ratVal.ptr(x), new x$1.constructor.elem(x$1)); - } - _r$1 = newFloat(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = _r$1.SetRat(x); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = (x$2 = new floatVal.ptr(_r$2), new x$2.constructor.elem(x$2)); - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: makeRat$1, $c: true, $r, $24r, _r$1, _r$2, a, b, x, x$1, x$2, $s};return $f; - }; - makeFloat = function makeFloat$1(x) { - var {_r$1, x, x$1, x$2, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = x.Sign(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1 === 0) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (_r$1 === 0) { */ case 1: - $s = -1; return new floatVal0.constructor.elem(floatVal0); - /* } */ case 2: - if (x.IsInf()) { - $s = -1; return (x$1 = new unknownVal.ptr(), new x$1.constructor.elem(x$1)); - } - $s = -1; return (x$2 = new floatVal.ptr(x), new x$2.constructor.elem(x$2)); - /* */ } return; } var $f = {$blk: makeFloat$1, $c: true, $r, _r$1, x, x$1, x$2, $s};return $f; - }; - makeComplex = function makeComplex$1(re, im) { - var {_r$1, _r$2, _v, im, re, x, x$1, $s, $r, $c} = $restore(this, {re, im}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = re.Kind(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - if (_r$1 === 0) { _v = true; $s = 3; continue s; } - _r$2 = im.Kind(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _v = _r$2 === 0; case 3: - /* */ if (_v) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (_v) { */ case 1: - $s = -1; return (x = new unknownVal.ptr(), new x.constructor.elem(x)); - /* } */ case 2: - $s = -1; return (x$1 = new complexVal.ptr(re, im), new x$1.constructor.elem(x$1)); - /* */ } return; } var $f = {$blk: makeComplex$1, $c: true, $r, _r$1, _r$2, _v, im, re, x, x$1, $s};return $f; - }; - makeFloatFromLiteral = function makeFloatFromLiteral$1(lit) { - var {$24r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, f, lit, ok, ok$1, r, x, $s, $r, $c} = $restore(this, {lit}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = newFloat(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = _r$1.SetString(lit); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple = _r$2; - f = _tuple[0]; - ok = _tuple[1]; - /* */ if (ok) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (ok) { */ case 3: - _r$3 = smallFloat(f); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (_r$3) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (_r$3) { */ case 5: - _r$4 = f.Sign(); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if (_r$4 === 0) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (_r$4 === 0) { */ case 8: - lit = "0"; - /* } */ case 9: - _r$5 = newRat().SetString(lit); /* */ $s = 11; case 11: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _tuple$1 = _r$5; - r = _tuple$1[0]; - ok$1 = _tuple$1[1]; - if (ok$1) { - $s = -1; return (x = new ratVal.ptr(r), new x.constructor.elem(x)); - } - /* } */ case 6: - _r$6 = makeFloat(f); /* */ $s = 12; case 12: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - $24r = _r$6; - $s = 13; case 13: return $24r; - /* } */ case 4: - $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: makeFloatFromLiteral$1, $c: true, $r, $24r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, f, lit, ok, ok$1, r, x, $s};return $f; - }; - smallInt = function smallInt$1(x) { - var x; - return x.BitLen() < 4096; - }; - smallFloat64 = function smallFloat64$1(x) { - var _tuple, e, x; - if (math.IsInf(x, 0)) { - return false; - } - _tuple = math.Frexp(x); - e = _tuple[1]; - return -4096 < e && e < 4096; - }; - smallFloat = function smallFloat$1(x) { - var {_r$1, e, x, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (x.IsInf()) { - $s = -1; return false; - } - _r$1 = x.MantExp(ptrType$1.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - e = _r$1; - $s = -1; return -4096 < e && e < 4096; - /* */ } return; } var $f = {$blk: smallFloat$1, $c: true, $r, _r$1, e, x, $s};return $f; - }; - MakeUnknown = function MakeUnknown$1() { - var x; - return (x = new unknownVal.ptr(), new x.constructor.elem(x)); - }; - $pkg.MakeUnknown = MakeUnknown; - MakeBool = function MakeBool$1(b) { - var b; - return new boolVal((b)); - }; - $pkg.MakeBool = MakeBool; - MakeString = function MakeString$1(s) { - var s; - if (s === "") { - return emptyString; - } - return new stringVal.ptr(new sync.Mutex.ptr(0, 0), s, ptrType.nil, ptrType.nil); - }; - $pkg.MakeString = MakeString; - MakeInt64 = function MakeInt64$1(x) { - var x; - return (new int64Val(x.$high, x.$low)); - }; - $pkg.MakeInt64 = MakeInt64; - MakeFloat64 = function MakeFloat64$1(x) { - var {$24r, $24r$1, _r$1, _r$2, _r$3, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (math.IsInf(x, 0) || math.IsNaN(x)) { - $s = -1; return (x$1 = new unknownVal.ptr(), new x$1.constructor.elem(x$1)); - } - /* */ if (smallFloat64(x)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (smallFloat64(x)) { */ case 1: - _r$1 = newRat().SetFloat64(x + 0); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = (x$2 = new ratVal.ptr(_r$1), new x$2.constructor.elem(x$2)); - $s = 4; case 4: return $24r; - /* } */ case 2: - _r$2 = newFloat(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = _r$2.SetFloat64(x + 0); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r$1 = (x$3 = new floatVal.ptr(_r$3), new x$3.constructor.elem(x$3)); - $s = 7; case 7: return $24r$1; - /* */ } return; } var $f = {$blk: MakeFloat64$1, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _r$3, x, x$1, x$2, x$3, $s};return $f; - }; - $pkg.MakeFloat64 = MakeFloat64; - MakeFromLiteral = function MakeFromLiteral$1(lit, tok, zero) { - var {$24r, _1, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, _tuple$2, _tuple$3, code, err, err$1, err$2, im, lit, n, n$1, ok, s, tok, x, x$1, x$2, x$3, x$4, zero, $s, $r, $c} = $restore(this, {lit, tok, zero}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (!((zero === 0))) { - $panic(new $String("MakeFromLiteral called with non-zero last argument")); - } - _1 = tok; - /* */ if (_1 === (5)) { $s = 2; continue; } - /* */ if (_1 === (6)) { $s = 3; continue; } - /* */ if (_1 === (7)) { $s = 4; continue; } - /* */ if (_1 === (8)) { $s = 5; continue; } - /* */ if (_1 === (9)) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (_1 === (5)) { */ case 2: - _tuple = strconv.ParseInt(lit, 0, 64); - x = _tuple[0]; - err = _tuple[1]; - if ($interfaceIsEqual(err, $ifaceNil)) { - $s = -1; return (new int64Val(x.$high, x.$low)); - } - _r$1 = newInt().SetString(lit, 0); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$1 = _r$1; - x$1 = _tuple$1[0]; - ok = _tuple$1[1]; - if (ok) { - $s = -1; return (x$2 = new intVal.ptr(x$1), new x$2.constructor.elem(x$2)); - } - $s = 8; continue; - /* } else if (_1 === (6)) { */ case 3: - _r$2 = makeFloatFromLiteral(lit); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - x$3 = _r$2; - if (!($interfaceIsEqual(x$3, $ifaceNil))) { - $s = -1; return x$3; - } - $s = 8; continue; - /* } else if (_1 === (7)) { */ case 4: - n = lit.length; - /* */ if (n > 0 && (lit.charCodeAt((n - 1 >> 0)) === 105)) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (n > 0 && (lit.charCodeAt((n - 1 >> 0)) === 105)) { */ case 11: - _r$3 = makeFloatFromLiteral($substring(lit, 0, (n - 1 >> 0))); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - im = _r$3; - /* */ if (!($interfaceIsEqual(im, $ifaceNil))) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (!($interfaceIsEqual(im, $ifaceNil))) { */ case 14: - _r$4 = makeComplex(new int64Val(0, 0), im); /* */ $s = 16; case 16: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $24r = _r$4; - $s = 17; case 17: return $24r; - /* } */ case 15: - /* } */ case 12: - $s = 8; continue; - /* } else if (_1 === (8)) { */ case 5: - n$1 = lit.length; - if (n$1 >= 2) { - _tuple$2 = strconv.UnquoteChar($substring(lit, 1, (n$1 - 1 >> 0)), 39); - code = _tuple$2[0]; - err$1 = _tuple$2[3]; - if ($interfaceIsEqual(err$1, $ifaceNil)) { - $s = -1; return MakeInt64((new $Int64(0, code))); - } - } - $s = 8; continue; - /* } else if (_1 === (9)) { */ case 6: - _tuple$3 = strconv.Unquote(lit); - s = _tuple$3[0]; - err$2 = _tuple$3[1]; - if ($interfaceIsEqual(err$2, $ifaceNil)) { - $s = -1; return MakeString(s); - } - $s = 8; continue; - /* } else { */ case 7: - _r$5 = fmt.Sprintf("%v is not a valid token", new sliceType$1([new token.Token(tok)])); /* */ $s = 18; case 18: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - $panic(new $String(_r$5)); - /* } */ case 8: - case 1: - $s = -1; return (x$4 = new unknownVal.ptr(), new x$4.constructor.elem(x$4)); - /* */ } return; } var $f = {$blk: MakeFromLiteral$1, $c: true, $r, $24r, _1, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, _tuple$2, _tuple$3, code, err, err$1, err$2, im, lit, n, n$1, ok, s, tok, x, x$1, x$2, x$3, x$4, zero, $s};return $f; - }; - $pkg.MakeFromLiteral = MakeFromLiteral; - BoolVal = function BoolVal$1(x) { - var {_r$1, _ref, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ref = x; - /* */ if ($assertType(_ref, boolVal, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, unknownVal, true)[1]) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if ($assertType(_ref, boolVal, true)[1]) { */ case 1: - x$1 = _ref.$val; - $s = -1; return (x$1); - /* } else if ($assertType(_ref, unknownVal, true)[1]) { */ case 2: - x$2 = $clone(_ref.$val, unknownVal); - $s = -1; return false; - /* } else { */ case 3: - x$3 = _ref; - _r$1 = fmt.Sprintf("%v not a Bool", new sliceType$1([x$3])); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $panic(new $String(_r$1)); - /* } */ case 4: - $s = -1; return false; - /* */ } return; } var $f = {$blk: BoolVal$1, $c: true, $r, _r$1, _ref, x, x$1, x$2, x$3, $s};return $f; - }; - $pkg.BoolVal = BoolVal; - StringVal = function StringVal$1(x) { - var {$24r, _r$1, _r$2, _ref, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ref = x; - /* */ if ($assertType(_ref, ptrType, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, unknownVal, true)[1]) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if ($assertType(_ref, ptrType, true)[1]) { */ case 1: - x$1 = _ref.$val; - _r$1 = x$1.string(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 6; case 6: return $24r; - /* } else if ($assertType(_ref, unknownVal, true)[1]) { */ case 2: - x$2 = $clone(_ref.$val, unknownVal); - $s = -1; return ""; - /* } else { */ case 3: - x$3 = _ref; - _r$2 = fmt.Sprintf("%v not a String", new sliceType$1([x$3])); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $panic(new $String(_r$2)); - /* } */ case 4: - $s = -1; return ""; - /* */ } return; } var $f = {$blk: StringVal$1, $c: true, $r, $24r, _r$1, _r$2, _ref, x, x$1, x$2, x$3, $s};return $f; - }; - $pkg.StringVal = StringVal; - Int64Val = function Int64Val$1(x) { - var {_r$1, _ref, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ref = x; - /* */ if ($assertType(_ref, int64Val, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, intVal, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, unknownVal, true)[1]) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if ($assertType(_ref, int64Val, true)[1]) { */ case 1: - x$1 = _ref.$val; - $s = -1; return [(new $Int64(x$1.$high, x$1.$low)), true]; - /* } else if ($assertType(_ref, intVal, true)[1]) { */ case 2: - x$2 = $clone(_ref.$val, intVal); - $s = -1; return [x$2.val.Int64(), false]; - /* } else if ($assertType(_ref, unknownVal, true)[1]) { */ case 3: - x$3 = $clone(_ref.$val, unknownVal); - $s = -1; return [new $Int64(0, 0), false]; - /* } else { */ case 4: - x$4 = _ref; - _r$1 = fmt.Sprintf("%v not an Int", new sliceType$1([x$4])); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $panic(new $String(_r$1)); - /* } */ case 5: - $s = -1; return [new $Int64(0, 0), false]; - /* */ } return; } var $f = {$blk: Int64Val$1, $c: true, $r, _r$1, _ref, x, x$1, x$2, x$3, x$4, $s};return $f; - }; - $pkg.Int64Val = Int64Val; - Uint64Val = function Uint64Val$1(x) { - var {_r$1, _ref, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ref = x; - /* */ if ($assertType(_ref, int64Val, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, intVal, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, unknownVal, true)[1]) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if ($assertType(_ref, int64Val, true)[1]) { */ case 1: - x$1 = _ref.$val; - $s = -1; return [(new $Uint64(x$1.$high, x$1.$low)), (x$1.$high > 0 || (x$1.$high === 0 && x$1.$low >= 0))]; - /* } else if ($assertType(_ref, intVal, true)[1]) { */ case 2: - x$2 = $clone(_ref.$val, intVal); - $s = -1; return [x$2.val.Uint64(), x$2.val.IsUint64()]; - /* } else if ($assertType(_ref, unknownVal, true)[1]) { */ case 3: - x$3 = $clone(_ref.$val, unknownVal); - $s = -1; return [new $Uint64(0, 0), false]; - /* } else { */ case 4: - x$4 = _ref; - _r$1 = fmt.Sprintf("%v not an Int", new sliceType$1([x$4])); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $panic(new $String(_r$1)); - /* } */ case 5: - $s = -1; return [new $Uint64(0, 0), false]; - /* */ } return; } var $f = {$blk: Uint64Val$1, $c: true, $r, _r$1, _ref, x, x$1, x$2, x$3, x$4, $s};return $f; - }; - $pkg.Uint64Val = Uint64Val; - Float32Val = function Float32Val$1(x) { - var {$24r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _tuple, _tuple$1, acc, acc$1, f, f$1, f$2, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ref = x; - /* */ if ($assertType(_ref, int64Val, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, intVal, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ratVal, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, floatVal, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, unknownVal, true)[1]) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if ($assertType(_ref, int64Val, true)[1]) { */ case 1: - x$1 = _ref.$val; - f = ($flatten64(x$1)); - $s = -1; return [f, (x$7 = (new int64Val(0, f)), (x$7.$high === x$1.$high && x$7.$low === x$1.$low))]; - /* } else if ($assertType(_ref, intVal, true)[1]) { */ case 2: - x$2 = $clone(_ref.$val, intVal); - _r$1 = newFloat(); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = _r$1.SetInt(x$2.val); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = _r$2.Float32(); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple = _r$3; - f$1 = _tuple[0]; - acc = _tuple[1]; - $s = -1; return [f$1, acc === 0]; - /* } else if ($assertType(_ref, ratVal, true)[1]) { */ case 3: - x$3 = $clone(_ref.$val, ratVal); - _r$4 = x$3.val.Float32(); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $24r = _r$4; - $s = 12; case 12: return $24r; - /* } else if ($assertType(_ref, floatVal, true)[1]) { */ case 4: - x$4 = $clone(_ref.$val, floatVal); - _r$5 = x$4.val.Float32(); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _tuple$1 = _r$5; - f$2 = _tuple$1[0]; - acc$1 = _tuple$1[1]; - $s = -1; return [f$2, acc$1 === 0]; - /* } else if ($assertType(_ref, unknownVal, true)[1]) { */ case 5: - x$5 = $clone(_ref.$val, unknownVal); - $s = -1; return [0, false]; - /* } else { */ case 6: - x$6 = _ref; - _r$6 = fmt.Sprintf("%v not a Float", new sliceType$1([x$6])); /* */ $s = 14; case 14: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - $panic(new $String(_r$6)); - /* } */ case 7: - $s = -1; return [0, false]; - /* */ } return; } var $f = {$blk: Float32Val$1, $c: true, $r, $24r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _tuple, _tuple$1, acc, acc$1, f, f$1, f$2, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s};return $f; - }; - $pkg.Float32Val = Float32Val; - Float64Val = function Float64Val$1(x) { - var {$24r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _tuple, _tuple$1, acc, acc$1, f, f$1, f$2, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ref = x; - /* */ if ($assertType(_ref, int64Val, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, intVal, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ratVal, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, floatVal, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, unknownVal, true)[1]) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if ($assertType(_ref, int64Val, true)[1]) { */ case 1: - x$1 = _ref.$val; - f = ($flatten64((new $Int64(x$1.$high, x$1.$low)))); - $s = -1; return [f, (x$7 = (new int64Val(0, f)), (x$7.$high === x$1.$high && x$7.$low === x$1.$low))]; - /* } else if ($assertType(_ref, intVal, true)[1]) { */ case 2: - x$2 = $clone(_ref.$val, intVal); - _r$1 = newFloat(); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = _r$1.SetInt(x$2.val); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = _r$2.Float64(); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple = _r$3; - f$1 = _tuple[0]; - acc = _tuple[1]; - $s = -1; return [f$1, acc === 0]; - /* } else if ($assertType(_ref, ratVal, true)[1]) { */ case 3: - x$3 = $clone(_ref.$val, ratVal); - _r$4 = x$3.val.Float64(); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $24r = _r$4; - $s = 12; case 12: return $24r; - /* } else if ($assertType(_ref, floatVal, true)[1]) { */ case 4: - x$4 = $clone(_ref.$val, floatVal); - _r$5 = x$4.val.Float64(); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _tuple$1 = _r$5; - f$2 = _tuple$1[0]; - acc$1 = _tuple$1[1]; - $s = -1; return [f$2, acc$1 === 0]; - /* } else if ($assertType(_ref, unknownVal, true)[1]) { */ case 5: - x$5 = $clone(_ref.$val, unknownVal); - $s = -1; return [0, false]; - /* } else { */ case 6: - x$6 = _ref; - _r$6 = fmt.Sprintf("%v not a Float", new sliceType$1([x$6])); /* */ $s = 14; case 14: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - $panic(new $String(_r$6)); - /* } */ case 7: - $s = -1; return [0, false]; - /* */ } return; } var $f = {$blk: Float64Val$1, $c: true, $r, $24r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _tuple, _tuple$1, acc, acc$1, f, f$1, f$2, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s};return $f; - }; - $pkg.Float64Val = Float64Val; - BitLen = function BitLen$1(x) { - var {_r$1, _ref, u, x, x$1, x$2, x$3, x$4, x$5, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ref = x; - /* */ if ($assertType(_ref, int64Val, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, intVal, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, unknownVal, true)[1]) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if ($assertType(_ref, int64Val, true)[1]) { */ case 1: - x$1 = _ref.$val; - u = (new $Uint64(x$1.$high, x$1.$low)); - if ((x$1.$high < 0 || (x$1.$high === 0 && x$1.$low < 0))) { - u = ((x$5 = new int64Val(-x$1.$high, -x$1.$low), new $Uint64(x$5.$high, x$5.$low))); - } - $s = -1; return 64 - bits.LeadingZeros64(u) >> 0; - /* } else if ($assertType(_ref, intVal, true)[1]) { */ case 2: - x$2 = $clone(_ref.$val, intVal); - $s = -1; return x$2.val.BitLen(); - /* } else if ($assertType(_ref, unknownVal, true)[1]) { */ case 3: - x$3 = $clone(_ref.$val, unknownVal); - $s = -1; return 0; - /* } else { */ case 4: - x$4 = _ref; - _r$1 = fmt.Sprintf("%v not an Int", new sliceType$1([x$4])); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $panic(new $String(_r$1)); - /* } */ case 5: - $s = -1; return 0; - /* */ } return; } var $f = {$blk: BitLen$1, $c: true, $r, _r$1, _ref, u, x, x$1, x$2, x$3, x$4, x$5, $s};return $f; - }; - $pkg.BitLen = BitLen; - Sign = function Sign$1(x) { - var {$24r, $24r$1, _r$1, _r$2, _r$3, _r$4, _ref, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ref = x; - /* */ if ($assertType(_ref, int64Val, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, intVal, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ratVal, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, floatVal, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, complexVal, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, unknownVal, true)[1]) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if ($assertType(_ref, int64Val, true)[1]) { */ case 1: - x$1 = _ref.$val; - if ((x$1.$high < 0 || (x$1.$high === 0 && x$1.$low < 0))) { - $s = -1; return -1; - } else if ((x$1.$high > 0 || (x$1.$high === 0 && x$1.$low > 0))) { - $s = -1; return 1; - } - $s = -1; return 0; - /* } else if ($assertType(_ref, intVal, true)[1]) { */ case 2: - x$2 = $clone(_ref.$val, intVal); - $s = -1; return x$2.val.Sign(); - /* } else if ($assertType(_ref, ratVal, true)[1]) { */ case 3: - x$3 = $clone(_ref.$val, ratVal); - $s = -1; return x$3.val.Sign(); - /* } else if ($assertType(_ref, floatVal, true)[1]) { */ case 4: - x$4 = $clone(_ref.$val, floatVal); - _r$1 = x$4.val.Sign(); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 10; case 10: return $24r; - /* } else if ($assertType(_ref, complexVal, true)[1]) { */ case 5: - x$5 = $clone(_ref.$val, complexVal); - _r$2 = Sign(x$5.re); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = Sign(x$5.im); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r$1 = _r$2 | _r$3; - $s = 13; case 13: return $24r$1; - /* } else if ($assertType(_ref, unknownVal, true)[1]) { */ case 6: - x$6 = $clone(_ref.$val, unknownVal); - $s = -1; return 1; - /* } else { */ case 7: - x$7 = _ref; - _r$4 = fmt.Sprintf("%v not numeric", new sliceType$1([x$7])); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $panic(new $String(_r$4)); - /* } */ case 8: - $s = -1; return 0; - /* */ } return; } var $f = {$blk: Sign$1, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _r$3, _r$4, _ref, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s};return $f; - }; - $pkg.Sign = Sign; - MakeImag = function MakeImag$1(x) { - var {$24r, _r$1, _r$2, _ref, x, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ref = x; - /* */ if ($assertType(_ref, unknownVal, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, int64Val, true)[1] || $assertType(_ref, intVal, true)[1] || $assertType(_ref, ratVal, true)[1] || $assertType(_ref, floatVal, true)[1]) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if ($assertType(_ref, unknownVal, true)[1]) { */ case 1: - $s = -1; return x; - /* } else if ($assertType(_ref, int64Val, true)[1] || $assertType(_ref, intVal, true)[1] || $assertType(_ref, ratVal, true)[1] || $assertType(_ref, floatVal, true)[1]) { */ case 2: - _r$1 = makeComplex(new int64Val(0, 0), x); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 6; case 6: return $24r; - /* } else { */ case 3: - _r$2 = fmt.Sprintf("%v not Int or Float", new sliceType$1([x])); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $panic(new $String(_r$2)); - /* } */ case 4: - $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: MakeImag$1, $c: true, $r, $24r, _r$1, _r$2, _ref, x, $s};return $f; - }; - $pkg.MakeImag = MakeImag; - Real = function Real$1(x) { - var {_r$1, _ref, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ref = x; - /* */ if ($assertType(_ref, unknownVal, true)[1] || $assertType(_ref, int64Val, true)[1] || $assertType(_ref, intVal, true)[1] || $assertType(_ref, ratVal, true)[1] || $assertType(_ref, floatVal, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, complexVal, true)[1]) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if ($assertType(_ref, unknownVal, true)[1] || $assertType(_ref, int64Val, true)[1] || $assertType(_ref, intVal, true)[1] || $assertType(_ref, ratVal, true)[1] || $assertType(_ref, floatVal, true)[1]) { */ case 1: - x$1 = _ref; - $s = -1; return x$1; - /* } else if ($assertType(_ref, complexVal, true)[1]) { */ case 2: - x$2 = $clone(_ref.$val, complexVal); - $s = -1; return x$2.re; - /* } else { */ case 3: - x$3 = _ref; - _r$1 = fmt.Sprintf("%v not numeric", new sliceType$1([x$3])); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $panic(new $String(_r$1)); - /* } */ case 4: - $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: Real$1, $c: true, $r, _r$1, _ref, x, x$1, x$2, x$3, $s};return $f; - }; - $pkg.Real = Real; - Imag = function Imag$1(x) { - var {_r$1, _ref, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ref = x; - /* */ if ($assertType(_ref, unknownVal, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, int64Val, true)[1] || $assertType(_ref, intVal, true)[1] || $assertType(_ref, ratVal, true)[1] || $assertType(_ref, floatVal, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, complexVal, true)[1]) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if ($assertType(_ref, unknownVal, true)[1]) { */ case 1: - x$1 = $clone(_ref.$val, unknownVal); - $s = -1; return new x$1.constructor.elem(x$1); - /* } else if ($assertType(_ref, int64Val, true)[1] || $assertType(_ref, intVal, true)[1] || $assertType(_ref, ratVal, true)[1] || $assertType(_ref, floatVal, true)[1]) { */ case 2: - x$2 = _ref; - $s = -1; return new int64Val(0, 0); - /* } else if ($assertType(_ref, complexVal, true)[1]) { */ case 3: - x$3 = $clone(_ref.$val, complexVal); - $s = -1; return x$3.im; - /* } else { */ case 4: - x$4 = _ref; - _r$1 = fmt.Sprintf("%v not numeric", new sliceType$1([x$4])); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $panic(new $String(_r$1)); - /* } */ case 5: - $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: Imag$1, $c: true, $r, _r$1, _ref, x, x$1, x$2, x$3, x$4, $s};return $f; - }; - $pkg.Imag = Imag; - ToInt = function ToInt$1(x) { - var {$24r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _tuple$1, _tuple$2, acc, acc$1, acc$2, i, re, t, x, x$1, x$2, x$3, x$4, x$5, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ref = x; - /* */ if ($assertType(_ref, int64Val, true)[1] || $assertType(_ref, intVal, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, ratVal, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, floatVal, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, complexVal, true)[1]) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if ($assertType(_ref, int64Val, true)[1] || $assertType(_ref, intVal, true)[1]) { */ case 1: - x$1 = _ref; - $s = -1; return x$1; - /* } else if ($assertType(_ref, ratVal, true)[1]) { */ case 2: - x$2 = $clone(_ref.$val, ratVal); - if (x$2.val.IsInt()) { - $s = -1; return makeInt(x$2.val.Num()); - } - $s = 5; continue; - /* } else if ($assertType(_ref, floatVal, true)[1]) { */ case 3: - x$3 = $clone(_ref.$val, floatVal); - _r$1 = smallFloat(x$3.val); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (_r$1) { */ case 6: - i = newInt(); - _r$2 = x$3.val.Int(i); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple = _r$2; - acc = _tuple[1]; - if (acc === 0) { - $s = -1; return makeInt(i); - } - t = new big.Float.ptr(0, 0, 0, 0, false, big.nat.nil, 0); - _r$3 = t.SetPrec(508); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$3; - t.SetMode(2); - _r$4 = t.Set(x$3.val); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$4; - _r$5 = t.Int(i); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _tuple$1 = _r$5; - acc$1 = _tuple$1[1]; - if (acc$1 === 0) { - $s = -1; return makeInt(i); - } - t.SetMode(3); - _r$6 = t.Set(x$3.val); /* */ $s = 13; case 13: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _r$6; - _r$7 = t.Int(i); /* */ $s = 14; case 14: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _tuple$2 = _r$7; - acc$2 = _tuple$2[1]; - if (acc$2 === 0) { - $s = -1; return makeInt(i); - } - /* } */ case 7: - $s = 5; continue; - /* } else if ($assertType(_ref, complexVal, true)[1]) { */ case 4: - x$4 = $clone(_ref.$val, complexVal); - _r$8 = ToFloat(new x$4.constructor.elem(x$4)); /* */ $s = 15; case 15: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - re = _r$8; - _r$9 = re.Kind(); /* */ $s = 18; case 18: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - /* */ if (_r$9 === 4) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (_r$9 === 4) { */ case 16: - _r$10 = ToInt(re); /* */ $s = 19; case 19: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - $24r = _r$10; - $s = 20; case 20: return $24r; - /* } */ case 17: - /* } */ case 5: - $s = -1; return (x$5 = new unknownVal.ptr(), new x$5.constructor.elem(x$5)); - /* */ } return; } var $f = {$blk: ToInt$1, $c: true, $r, $24r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _tuple$1, _tuple$2, acc, acc$1, acc$2, i, re, t, x, x$1, x$2, x$3, x$4, x$5, $s};return $f; - }; - $pkg.ToInt = ToInt; - ToFloat = function ToFloat$1(x) { - var {$24r, $24r$1, _r$1, _r$2, _r$3, _ref, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ref = x; - /* */ if ($assertType(_ref, int64Val, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, intVal, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ratVal, true)[1] || $assertType(_ref, floatVal, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, complexVal, true)[1]) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if ($assertType(_ref, int64Val, true)[1]) { */ case 1: - x$1 = _ref.$val; - $s = -1; return (x$5 = i64tor(x$1), new x$5.constructor.elem(x$5)); - /* } else if ($assertType(_ref, intVal, true)[1]) { */ case 2: - x$2 = $clone(_ref.$val, intVal); - if (smallInt(x$2.val)) { - $s = -1; return (x$6 = itor($clone(x$2, intVal)), new x$6.constructor.elem(x$6)); - } - _r$1 = itof($clone(x$2, intVal)); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = (x$7 = _r$1, new x$7.constructor.elem(x$7)); - $s = 7; case 7: return $24r; - /* } else if ($assertType(_ref, ratVal, true)[1] || $assertType(_ref, floatVal, true)[1]) { */ case 3: - x$3 = _ref; - $s = -1; return x$3; - /* } else if ($assertType(_ref, complexVal, true)[1]) { */ case 4: - x$4 = $clone(_ref.$val, complexVal); - _r$2 = Sign(x$4.im); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (_r$2 === 0) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (_r$2 === 0) { */ case 8: - _r$3 = ToFloat(x$4.re); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r$1 = _r$3; - $s = 12; case 12: return $24r$1; - /* } */ case 9: - /* } */ case 5: - $s = -1; return (x$8 = new unknownVal.ptr(), new x$8.constructor.elem(x$8)); - /* */ } return; } var $f = {$blk: ToFloat$1, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _r$3, _ref, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, $s};return $f; - }; - $pkg.ToFloat = ToFloat; - ToComplex = function ToComplex$1(x) { - var _ref, x, x$1, x$2, x$3, x$4; - _ref = x; - if ($assertType(_ref, int64Val, true)[1] || $assertType(_ref, intVal, true)[1] || $assertType(_ref, ratVal, true)[1] || $assertType(_ref, floatVal, true)[1]) { - x$1 = _ref; - return (x$3 = vtoc(x$1), new x$3.constructor.elem(x$3)); - } else if ($assertType(_ref, complexVal, true)[1]) { - x$2 = $clone(_ref.$val, complexVal); - return new x$2.constructor.elem(x$2); - } - return (x$4 = new unknownVal.ptr(), new x$4.constructor.elem(x$4)); - }; - $pkg.ToComplex = ToComplex; - is32bit = function is32bit$1(x) { - var x; - return (-1 < x.$high || (-1 === x.$high && 2147483648 <= x.$low)) && (x.$high < 0 || (x.$high === 0 && x.$low <= 2147483647)); - }; - is63bit = function is63bit$1(x) { - var x; - return (-1073741824 < x.$high || (-1073741824 === x.$high && 0 <= x.$low)) && (x.$high < 1073741823 || (x.$high === 1073741823 && x.$low <= 4294967295)); - }; - UnaryOp = function UnaryOp$1(op, y, prec) { - var {$24r, $24r$1, $24r$2, _1, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, im, op, prec, re, y, y$1, y$10, y$11, y$12, y$2, y$3, y$4, y$5, y$6, y$7, y$8, y$9, z, z$1, $s, $r, $c} = $restore(this, {op, y, prec}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _1 = op; - /* */ if (_1 === (12)) { $s = 2; continue; } - /* */ if (_1 === (13)) { $s = 3; continue; } - /* */ if (_1 === (19)) { $s = 4; continue; } - /* */ if (_1 === (43)) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (_1 === (12)) { */ case 2: - _ref = y; - if ($assertType(_ref, unknownVal, true)[1] || $assertType(_ref, int64Val, true)[1] || $assertType(_ref, intVal, true)[1] || $assertType(_ref, ratVal, true)[1] || $assertType(_ref, floatVal, true)[1] || $assertType(_ref, complexVal, true)[1]) { - $s = -1; return y; - } - $s = 6; continue; - /* } else if (_1 === (13)) { */ case 3: - _ref$1 = y; - /* */ if ($assertType(_ref$1, unknownVal, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref$1, int64Val, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref$1, intVal, true)[1]) { $s = 9; continue; } - /* */ if ($assertType(_ref$1, ratVal, true)[1]) { $s = 10; continue; } - /* */ if ($assertType(_ref$1, floatVal, true)[1]) { $s = 11; continue; } - /* */ if ($assertType(_ref$1, complexVal, true)[1]) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if ($assertType(_ref$1, unknownVal, true)[1]) { */ case 7: - y$1 = $clone(_ref$1.$val, unknownVal); - $s = -1; return new y$1.constructor.elem(y$1); - /* } else if ($assertType(_ref$1, int64Val, true)[1]) { */ case 8: - y$2 = _ref$1.$val; - z = new int64Val(-y$2.$high, -y$2.$low); - if (!((z.$high === y$2.$high && z.$low === y$2.$low))) { - $s = -1; return z; - } - $s = -1; return makeInt(newInt().Neg(big.NewInt((new $Int64(y$2.$high, y$2.$low))))); - /* } else if ($assertType(_ref$1, intVal, true)[1]) { */ case 9: - y$3 = $clone(_ref$1.$val, intVal); - $s = -1; return makeInt(newInt().Neg(y$3.val)); - /* } else if ($assertType(_ref$1, ratVal, true)[1]) { */ case 10: - y$4 = $clone(_ref$1.$val, ratVal); - _r$1 = makeRat(newRat().Neg(y$4.val)); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 15; case 15: return $24r; - /* } else if ($assertType(_ref$1, floatVal, true)[1]) { */ case 11: - y$5 = $clone(_ref$1.$val, floatVal); - _r$2 = newFloat(); /* */ $s = 16; case 16: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = _r$2.Neg(y$5.val); /* */ $s = 17; case 17: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$4 = makeFloat(_r$3); /* */ $s = 18; case 18: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $24r$1 = _r$4; - $s = 19; case 19: return $24r$1; - /* } else if ($assertType(_ref$1, complexVal, true)[1]) { */ case 12: - y$6 = $clone(_ref$1.$val, complexVal); - _r$5 = UnaryOp(13, y$6.re, 0); /* */ $s = 20; case 20: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - re = _r$5; - _r$6 = UnaryOp(13, y$6.im, 0); /* */ $s = 21; case 21: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - im = _r$6; - _r$7 = makeComplex(re, im); /* */ $s = 22; case 22: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - $24r$2 = _r$7; - $s = 23; case 23: return $24r$2; - /* } */ case 13: - $s = 6; continue; - /* } else if (_1 === (19)) { */ case 4: - z$1 = newInt(); - _ref$2 = y; - /* */ if ($assertType(_ref$2, unknownVal, true)[1]) { $s = 24; continue; } - /* */ if ($assertType(_ref$2, int64Val, true)[1]) { $s = 25; continue; } - /* */ if ($assertType(_ref$2, intVal, true)[1]) { $s = 26; continue; } - /* */ $s = 27; continue; - /* if ($assertType(_ref$2, unknownVal, true)[1]) { */ case 24: - y$7 = $clone(_ref$2.$val, unknownVal); - $s = -1; return new y$7.constructor.elem(y$7); - /* } else if ($assertType(_ref$2, int64Val, true)[1]) { */ case 25: - y$8 = _ref$2.$val; - _r$8 = z$1.Not(big.NewInt((new $Int64(y$8.$high, y$8.$low)))); /* */ $s = 29; case 29: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _r$8; - $s = 28; continue; - /* } else if ($assertType(_ref$2, intVal, true)[1]) { */ case 26: - y$9 = $clone(_ref$2.$val, intVal); - _r$9 = z$1.Not(y$9.val); /* */ $s = 30; case 30: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _r$9; - $s = 28; continue; - /* } else { */ case 27: - y$10 = _ref$2; - /* goto Error */ $s = 31; continue; - /* } */ case 28: - /* */ if (prec > 0) { $s = 32; continue; } - /* */ $s = 33; continue; - /* if (prec > 0) { */ case 32: - _r$10 = z$1.AndNot(z$1, newInt().Lsh(big.NewInt(new $Int64(-1, 4294967295)), prec)); /* */ $s = 34; case 34: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _r$10; - /* } */ case 33: - $s = -1; return makeInt(z$1); - /* } else if (_1 === (43)) { */ case 5: - _ref$3 = y; - if ($assertType(_ref$3, unknownVal, true)[1]) { - y$11 = $clone(_ref$3.$val, unknownVal); - $s = -1; return new y$11.constructor.elem(y$11); - } else if ($assertType(_ref$3, boolVal, true)[1]) { - y$12 = _ref$3.$val; - $s = -1; return new boolVal(!y$12); - } - /* } */ case 6: - case 1: - /* Error: */ case 31: - _r$11 = fmt.Sprintf("invalid unary operation %s%v", new sliceType$1([new token.Token(op), y])); /* */ $s = 35; case 35: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - $panic(new $String(_r$11)); - $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: UnaryOp$1, $c: true, $r, $24r, $24r$1, $24r$2, _1, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, im, op, prec, re, y, y$1, y$10, y$11, y$12, y$2, y$3, y$4, y$5, y$6, y$7, y$8, y$9, z, z$1, $s};return $f; - }; - $pkg.UnaryOp = UnaryOp; - ord = function ord$1(x) { - var _ref, x; - _ref = x; - if ($assertType(_ref, unknownVal, true)[1]) { - return 0; - } else if ($assertType(_ref, boolVal, true)[1] || $assertType(_ref, ptrType, true)[1]) { - return 1; - } else if ($assertType(_ref, int64Val, true)[1]) { - return 2; - } else if ($assertType(_ref, intVal, true)[1]) { - return 3; - } else if ($assertType(_ref, ratVal, true)[1]) { - return 4; - } else if ($assertType(_ref, floatVal, true)[1]) { - return 5; - } else if ($assertType(_ref, complexVal, true)[1]) { - return 6; - } else { - return -1; - } - }; - match = function match$1(x, y) { - var {_$1, _$2, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, ox, oy, x, y, $s, $r, $c} = $restore(this, {x, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _$1 = $ifaceNil; - _$2 = $ifaceNil; - _tmp = ord(x); - _tmp$1 = ord(y); - ox = _tmp; - oy = _tmp$1; - /* */ if (ox < oy) { $s = 2; continue; } - /* */ if (ox > oy) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (ox < oy) { */ case 2: - _r$1 = match0(x, y); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - x = _tuple[0]; - y = _tuple[1]; - $s = 4; continue; - /* } else if (ox > oy) { */ case 3: - _r$2 = match0(y, x); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple$1 = _r$2; - y = _tuple$1[0]; - x = _tuple$1[1]; - /* } */ case 4: - case 1: - _tmp$2 = x; - _tmp$3 = y; - _$1 = _tmp$2; - _$2 = _tmp$3; - $s = -1; return [_$1, _$2]; - /* */ } return; } var $f = {$blk: match$1, $c: true, $r, _$1, _$2, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, ox, oy, x, y, $s};return $f; - }; - match0 = function match0$1(x, y) { - var {$24r, $24r$1, $24r$2, _$1, _$2, _r$1, _r$2, _r$3, _ref, _ref$1, _ref$2, _ref$3, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x1, x1$1, x1$2, x1$3, x1$4, x1$5, y, $s, $r, $c} = $restore(this, {x, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _$1 = $ifaceNil; - _$2 = $ifaceNil; - _ref = y; - /* */ if ($assertType(_ref, intVal, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, ratVal, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, floatVal, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, complexVal, true)[1]) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if ($assertType(_ref, intVal, true)[1]) { */ case 1: - _ref$1 = x; - if ($assertType(_ref$1, int64Val, true)[1]) { - x1 = _ref$1.$val; - _tmp = (x$1 = i64toi(x1), new x$1.constructor.elem(x$1)); - _tmp$1 = y; - _$1 = _tmp; - _$2 = _tmp$1; - $s = -1; return [_$1, _$2]; - } - $s = 5; continue; - /* } else if ($assertType(_ref, ratVal, true)[1]) { */ case 2: - _ref$2 = x; - if ($assertType(_ref$2, int64Val, true)[1]) { - x1$1 = _ref$2.$val; - _tmp$2 = (x$2 = i64tor(x1$1), new x$2.constructor.elem(x$2)); - _tmp$3 = y; - _$1 = _tmp$2; - _$2 = _tmp$3; - $s = -1; return [_$1, _$2]; - } else if ($assertType(_ref$2, intVal, true)[1]) { - x1$2 = $clone(_ref$2.$val, intVal); - _tmp$4 = (x$3 = itor($clone(x1$2, intVal)), new x$3.constructor.elem(x$3)); - _tmp$5 = y; - _$1 = _tmp$4; - _$2 = _tmp$5; - $s = -1; return [_$1, _$2]; - } - $s = 5; continue; - /* } else if ($assertType(_ref, floatVal, true)[1]) { */ case 3: - _ref$3 = x; - /* */ if ($assertType(_ref$3, int64Val, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref$3, intVal, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref$3, ratVal, true)[1]) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if ($assertType(_ref$3, int64Val, true)[1]) { */ case 6: - x1$3 = _ref$3.$val; - _r$1 = i64tof(x1$3); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tmp$6 = (x$4 = _r$1, new x$4.constructor.elem(x$4)); - _tmp$7 = y; - _$1 = _tmp$6; - _$2 = _tmp$7; - $24r = [_$1, _$2]; - $s = 11; case 11: return $24r; - /* } else if ($assertType(_ref$3, intVal, true)[1]) { */ case 7: - x1$4 = $clone(_ref$3.$val, intVal); - _r$2 = itof($clone(x1$4, intVal)); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tmp$8 = (x$5 = _r$2, new x$5.constructor.elem(x$5)); - _tmp$9 = y; - _$1 = _tmp$8; - _$2 = _tmp$9; - $24r$1 = [_$1, _$2]; - $s = 13; case 13: return $24r$1; - /* } else if ($assertType(_ref$3, ratVal, true)[1]) { */ case 8: - x1$5 = $clone(_ref$3.$val, ratVal); - _r$3 = rtof($clone(x1$5, ratVal)); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tmp$10 = (x$6 = _r$3, new x$6.constructor.elem(x$6)); - _tmp$11 = y; - _$1 = _tmp$10; - _$2 = _tmp$11; - $24r$2 = [_$1, _$2]; - $s = 15; case 15: return $24r$2; - /* } */ case 9: - $s = 5; continue; - /* } else if ($assertType(_ref, complexVal, true)[1]) { */ case 4: - _tmp$12 = (x$7 = vtoc(x), new x$7.constructor.elem(x$7)); - _tmp$13 = y; - _$1 = _tmp$12; - _$2 = _tmp$13; - $s = -1; return [_$1, _$2]; - /* } */ case 5: - _tmp$14 = x; - _tmp$15 = x; - _$1 = _tmp$14; - _$2 = _tmp$15; - $s = -1; return [_$1, _$2]; - /* */ } return; } var $f = {$blk: match0$1, $c: true, $r, $24r, $24r$1, $24r$2, _$1, _$2, _r$1, _r$2, _r$3, _ref, _ref$1, _ref$2, _ref$3, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x1, x1$1, x1$2, x1$3, x1$4, x1$5, y, $s};return $f; - }; - BinaryOp = function BinaryOp$1(x_, op, y_) { - var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, _1, _2, _3, _4, _5, _6, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _r$5, _r$50, _r$51, _r$52, _r$53, _r$54, _r$6, _r$7, _r$8, _r$9, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, a, a$1, a$2, a$3, a$4, ac, ac$1, ad, ad$1, b, b$1, b$2, b$3, b$4, bc, bc$1, bd, bd$1, c, c$1, c$2, c$3, c$4, cc, d, dd, im, op, re, s, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, x_, y, y$1, y$2, y_, $s, $r, $c} = $restore(this, {x_, op, y_}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = match(x_, y_); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - x = _tuple[0]; - y = _tuple[1]; - _ref = x; - /* */ if ($assertType(_ref, unknownVal, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, boolVal, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, int64Val, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, intVal, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ratVal, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, floatVal, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref, complexVal, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref, ptrType, true)[1]) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if ($assertType(_ref, unknownVal, true)[1]) { */ case 2: - x$1 = $clone(_ref.$val, unknownVal); - $s = -1; return new x$1.constructor.elem(x$1); - /* } else if ($assertType(_ref, boolVal, true)[1]) { */ case 3: - x$2 = _ref.$val; - y$1 = $assertType(y, boolVal); - _1 = op; - if (_1 === (34)) { - $s = -1; return new boolVal(x$2 && y$1); - } else if (_1 === (35)) { - $s = -1; return new boolVal(x$2 || y$1); - } - $s = 10; continue; - /* } else if ($assertType(_ref, int64Val, true)[1]) { */ case 4: - x$3 = _ref.$val; - a = (new $Int64(x$3.$high, x$3.$low)); - b = ((x$9 = $assertType(y, int64Val), new $Int64(x$9.$high, x$9.$low))); - c = new $Int64(0, 0); - _2 = op; - /* */ if (_2 === (12)) { $s = 12; continue; } - /* */ if (_2 === (13)) { $s = 13; continue; } - /* */ if (_2 === (14)) { $s = 14; continue; } - /* */ if (_2 === (15)) { $s = 15; continue; } - /* */ if (_2 === (26)) { $s = 16; continue; } - /* */ if (_2 === (16)) { $s = 17; continue; } - /* */ if (_2 === (17)) { $s = 18; continue; } - /* */ if (_2 === (18)) { $s = 19; continue; } - /* */ if (_2 === (19)) { $s = 20; continue; } - /* */ if (_2 === (22)) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if (_2 === (12)) { */ case 12: - /* */ if (!is63bit(a) || !is63bit(b)) { $s = 24; continue; } - /* */ $s = 25; continue; - /* if (!is63bit(a) || !is63bit(b)) { */ case 24: - _r$2 = newInt().Add(big.NewInt(a), big.NewInt(b)); /* */ $s = 26; case 26: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = makeInt(_r$2); /* */ $s = 27; case 27: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r = _r$3; - $s = 28; case 28: return $24r; - /* } */ case 25: - c = new $Int64(a.$high + b.$high, a.$low + b.$low); - $s = 23; continue; - /* } else if (_2 === (13)) { */ case 13: - /* */ if (!is63bit(a) || !is63bit(b)) { $s = 29; continue; } - /* */ $s = 30; continue; - /* if (!is63bit(a) || !is63bit(b)) { */ case 29: - _r$4 = newInt().Sub(big.NewInt(a), big.NewInt(b)); /* */ $s = 31; case 31: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$5 = makeInt(_r$4); /* */ $s = 32; case 32: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - $24r$1 = _r$5; - $s = 33; case 33: return $24r$1; - /* } */ case 30: - c = new $Int64(a.$high - b.$high, a.$low - b.$low); - $s = 23; continue; - /* } else if (_2 === (14)) { */ case 14: - /* */ if (!is32bit(a) || !is32bit(b)) { $s = 34; continue; } - /* */ $s = 35; continue; - /* if (!is32bit(a) || !is32bit(b)) { */ case 34: - _r$6 = newInt().Mul(big.NewInt(a), big.NewInt(b)); /* */ $s = 36; case 36: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _r$7 = makeInt(_r$6); /* */ $s = 37; case 37: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - $24r$2 = _r$7; - $s = 38; case 38: return $24r$2; - /* } */ case 35: - c = $mul64(a, b); - $s = 23; continue; - /* } else if (_2 === (15)) { */ case 15: - _r$8 = big.NewRat(a, b); /* */ $s = 39; case 39: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _r$9 = makeRat(_r$8); /* */ $s = 40; case 40: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - $24r$3 = _r$9; - $s = 41; case 41: return $24r$3; - /* } else if (_2 === (26)) { */ case 16: - c = $div64(a, b, false); - $s = 23; continue; - /* } else if (_2 === (16)) { */ case 17: - c = $div64(a, b, true); - $s = 23; continue; - /* } else if (_2 === (17)) { */ case 18: - c = new $Int64(a.$high & b.$high, (a.$low & b.$low) >>> 0); - $s = 23; continue; - /* } else if (_2 === (18)) { */ case 19: - c = new $Int64(a.$high | b.$high, (a.$low | b.$low) >>> 0); - $s = 23; continue; - /* } else if (_2 === (19)) { */ case 20: - c = new $Int64(a.$high ^ b.$high, (a.$low ^ b.$low) >>> 0); - $s = 23; continue; - /* } else if (_2 === (22)) { */ case 21: - c = new $Int64(a.$high & ~b.$high, (a.$low & ~b.$low) >>> 0); - $s = 23; continue; - /* } else { */ case 22: - /* goto Error */ $s = 42; continue; - /* } */ case 23: - case 11: - $s = -1; return (new int64Val(c.$high, c.$low)); - /* } else if ($assertType(_ref, intVal, true)[1]) { */ case 5: - x$4 = $clone(_ref.$val, intVal); - a$1 = x$4.val; - b$1 = $assertType(y, intVal).val; - c$1 = newInt(); - _3 = op; - /* */ if (_3 === (12)) { $s = 44; continue; } - /* */ if (_3 === (13)) { $s = 45; continue; } - /* */ if (_3 === (14)) { $s = 46; continue; } - /* */ if (_3 === (15)) { $s = 47; continue; } - /* */ if (_3 === (26)) { $s = 48; continue; } - /* */ if (_3 === (16)) { $s = 49; continue; } - /* */ if (_3 === (17)) { $s = 50; continue; } - /* */ if (_3 === (18)) { $s = 51; continue; } - /* */ if (_3 === (19)) { $s = 52; continue; } - /* */ if (_3 === (22)) { $s = 53; continue; } - /* */ $s = 54; continue; - /* if (_3 === (12)) { */ case 44: - _r$10 = c$1.Add(a$1, b$1); /* */ $s = 56; case 56: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _r$10; - $s = 55; continue; - /* } else if (_3 === (13)) { */ case 45: - _r$11 = c$1.Sub(a$1, b$1); /* */ $s = 57; case 57: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _r$11; - $s = 55; continue; - /* } else if (_3 === (14)) { */ case 46: - _r$12 = c$1.Mul(a$1, b$1); /* */ $s = 58; case 58: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _r$12; - $s = 55; continue; - /* } else if (_3 === (15)) { */ case 47: - _r$13 = newRat().SetFrac(a$1, b$1); /* */ $s = 59; case 59: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - _r$14 = makeRat(_r$13); /* */ $s = 60; case 60: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - $24r$4 = _r$14; - $s = 61; case 61: return $24r$4; - /* } else if (_3 === (26)) { */ case 48: - _r$15 = c$1.Quo(a$1, b$1); /* */ $s = 62; case 62: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - _r$15; - $s = 55; continue; - /* } else if (_3 === (16)) { */ case 49: - _r$16 = c$1.Rem(a$1, b$1); /* */ $s = 63; case 63: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - _r$16; - $s = 55; continue; - /* } else if (_3 === (17)) { */ case 50: - _r$17 = c$1.And(a$1, b$1); /* */ $s = 64; case 64: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - _r$17; - $s = 55; continue; - /* } else if (_3 === (18)) { */ case 51: - _r$18 = c$1.Or(a$1, b$1); /* */ $s = 65; case 65: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - _r$18; - $s = 55; continue; - /* } else if (_3 === (19)) { */ case 52: - _r$19 = c$1.Xor(a$1, b$1); /* */ $s = 66; case 66: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - _r$19; - $s = 55; continue; - /* } else if (_3 === (22)) { */ case 53: - _r$20 = c$1.AndNot(a$1, b$1); /* */ $s = 67; case 67: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - _r$20; - $s = 55; continue; - /* } else { */ case 54: - /* goto Error */ $s = 42; continue; - /* } */ case 55: - case 43: - $s = -1; return makeInt(c$1); - /* } else if ($assertType(_ref, ratVal, true)[1]) { */ case 6: - x$5 = $clone(_ref.$val, ratVal); - a$2 = x$5.val; - b$2 = $assertType(y, ratVal).val; - c$2 = newRat(); - _4 = op; - /* */ if (_4 === (12)) { $s = 69; continue; } - /* */ if (_4 === (13)) { $s = 70; continue; } - /* */ if (_4 === (14)) { $s = 71; continue; } - /* */ if (_4 === (15)) { $s = 72; continue; } - /* */ $s = 73; continue; - /* if (_4 === (12)) { */ case 69: - _r$21 = c$2.Add(a$2, b$2); /* */ $s = 75; case 75: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } - _r$21; - $s = 74; continue; - /* } else if (_4 === (13)) { */ case 70: - _r$22 = c$2.Sub(a$2, b$2); /* */ $s = 76; case 76: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _r$22; - $s = 74; continue; - /* } else if (_4 === (14)) { */ case 71: - _r$23 = c$2.Mul(a$2, b$2); /* */ $s = 77; case 77: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _r$23; - $s = 74; continue; - /* } else if (_4 === (15)) { */ case 72: - _r$24 = c$2.Quo(a$2, b$2); /* */ $s = 78; case 78: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - _r$24; - $s = 74; continue; - /* } else { */ case 73: - /* goto Error */ $s = 42; continue; - /* } */ case 74: - case 68: - _r$25 = makeRat(c$2); /* */ $s = 79; case 79: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - $24r$5 = _r$25; - $s = 80; case 80: return $24r$5; - /* } else if ($assertType(_ref, floatVal, true)[1]) { */ case 7: - x$6 = $clone(_ref.$val, floatVal); - a$3 = x$6.val; - b$3 = $assertType(y, floatVal).val; - _r$26 = newFloat(); /* */ $s = 81; case 81: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - c$3 = _r$26; - _5 = op; - /* */ if (_5 === (12)) { $s = 83; continue; } - /* */ if (_5 === (13)) { $s = 84; continue; } - /* */ if (_5 === (14)) { $s = 85; continue; } - /* */ if (_5 === (15)) { $s = 86; continue; } - /* */ $s = 87; continue; - /* if (_5 === (12)) { */ case 83: - _r$27 = c$3.Add(a$3, b$3); /* */ $s = 89; case 89: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - _r$27; - $s = 88; continue; - /* } else if (_5 === (13)) { */ case 84: - _r$28 = c$3.Sub(a$3, b$3); /* */ $s = 90; case 90: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - _r$28; - $s = 88; continue; - /* } else if (_5 === (14)) { */ case 85: - _r$29 = c$3.Mul(a$3, b$3); /* */ $s = 91; case 91: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } - _r$29; - $s = 88; continue; - /* } else if (_5 === (15)) { */ case 86: - _r$30 = c$3.Quo(a$3, b$3); /* */ $s = 92; case 92: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } - _r$30; - $s = 88; continue; - /* } else { */ case 87: - /* goto Error */ $s = 42; continue; - /* } */ case 88: - case 82: - _r$31 = makeFloat(c$3); /* */ $s = 93; case 93: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } - $24r$6 = _r$31; - $s = 94; case 94: return $24r$6; - /* } else if ($assertType(_ref, complexVal, true)[1]) { */ case 8: - x$7 = $clone(_ref.$val, complexVal); - y$2 = $clone($assertType(y, complexVal), complexVal); - _tmp = x$7.re; - _tmp$1 = x$7.im; - a$4 = _tmp; - b$4 = _tmp$1; - _tmp$2 = y$2.re; - _tmp$3 = y$2.im; - c$4 = _tmp$2; - d = _tmp$3; - _tmp$4 = $ifaceNil; - _tmp$5 = $ifaceNil; - re = _tmp$4; - im = _tmp$5; - _6 = op; - /* */ if (_6 === (12)) { $s = 96; continue; } - /* */ if (_6 === (13)) { $s = 97; continue; } - /* */ if (_6 === (14)) { $s = 98; continue; } - /* */ if (_6 === (15)) { $s = 99; continue; } - /* */ $s = 100; continue; - /* if (_6 === (12)) { */ case 96: - _r$32 = add(a$4, c$4); /* */ $s = 102; case 102: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } - re = _r$32; - _r$33 = add(b$4, d); /* */ $s = 103; case 103: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } - im = _r$33; - $s = 101; continue; - /* } else if (_6 === (13)) { */ case 97: - _r$34 = sub(a$4, c$4); /* */ $s = 104; case 104: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } - re = _r$34; - _r$35 = sub(b$4, d); /* */ $s = 105; case 105: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } - im = _r$35; - $s = 101; continue; - /* } else if (_6 === (14)) { */ case 98: - _r$36 = mul(a$4, c$4); /* */ $s = 106; case 106: if($c) { $c = false; _r$36 = _r$36.$blk(); } if (_r$36 && _r$36.$blk !== undefined) { break s; } - ac = _r$36; - _r$37 = mul(b$4, d); /* */ $s = 107; case 107: if($c) { $c = false; _r$37 = _r$37.$blk(); } if (_r$37 && _r$37.$blk !== undefined) { break s; } - bd = _r$37; - _r$38 = mul(b$4, c$4); /* */ $s = 108; case 108: if($c) { $c = false; _r$38 = _r$38.$blk(); } if (_r$38 && _r$38.$blk !== undefined) { break s; } - bc = _r$38; - _r$39 = mul(a$4, d); /* */ $s = 109; case 109: if($c) { $c = false; _r$39 = _r$39.$blk(); } if (_r$39 && _r$39.$blk !== undefined) { break s; } - ad = _r$39; - _r$40 = sub(ac, bd); /* */ $s = 110; case 110: if($c) { $c = false; _r$40 = _r$40.$blk(); } if (_r$40 && _r$40.$blk !== undefined) { break s; } - re = _r$40; - _r$41 = add(bc, ad); /* */ $s = 111; case 111: if($c) { $c = false; _r$41 = _r$41.$blk(); } if (_r$41 && _r$41.$blk !== undefined) { break s; } - im = _r$41; - $s = 101; continue; - /* } else if (_6 === (15)) { */ case 99: - _r$42 = mul(a$4, c$4); /* */ $s = 112; case 112: if($c) { $c = false; _r$42 = _r$42.$blk(); } if (_r$42 && _r$42.$blk !== undefined) { break s; } - ac$1 = _r$42; - _r$43 = mul(b$4, d); /* */ $s = 113; case 113: if($c) { $c = false; _r$43 = _r$43.$blk(); } if (_r$43 && _r$43.$blk !== undefined) { break s; } - bd$1 = _r$43; - _r$44 = mul(b$4, c$4); /* */ $s = 114; case 114: if($c) { $c = false; _r$44 = _r$44.$blk(); } if (_r$44 && _r$44.$blk !== undefined) { break s; } - bc$1 = _r$44; - _r$45 = mul(a$4, d); /* */ $s = 115; case 115: if($c) { $c = false; _r$45 = _r$45.$blk(); } if (_r$45 && _r$45.$blk !== undefined) { break s; } - ad$1 = _r$45; - _r$46 = mul(c$4, c$4); /* */ $s = 116; case 116: if($c) { $c = false; _r$46 = _r$46.$blk(); } if (_r$46 && _r$46.$blk !== undefined) { break s; } - cc = _r$46; - _r$47 = mul(d, d); /* */ $s = 117; case 117: if($c) { $c = false; _r$47 = _r$47.$blk(); } if (_r$47 && _r$47.$blk !== undefined) { break s; } - dd = _r$47; - _r$48 = add(cc, dd); /* */ $s = 118; case 118: if($c) { $c = false; _r$48 = _r$48.$blk(); } if (_r$48 && _r$48.$blk !== undefined) { break s; } - s = _r$48; - _r$49 = add(ac$1, bd$1); /* */ $s = 119; case 119: if($c) { $c = false; _r$49 = _r$49.$blk(); } if (_r$49 && _r$49.$blk !== undefined) { break s; } - re = _r$49; - _r$50 = quo(re, s); /* */ $s = 120; case 120: if($c) { $c = false; _r$50 = _r$50.$blk(); } if (_r$50 && _r$50.$blk !== undefined) { break s; } - re = _r$50; - _r$51 = sub(bc$1, ad$1); /* */ $s = 121; case 121: if($c) { $c = false; _r$51 = _r$51.$blk(); } if (_r$51 && _r$51.$blk !== undefined) { break s; } - im = _r$51; - _r$52 = quo(im, s); /* */ $s = 122; case 122: if($c) { $c = false; _r$52 = _r$52.$blk(); } if (_r$52 && _r$52.$blk !== undefined) { break s; } - im = _r$52; - $s = 101; continue; - /* } else { */ case 100: - /* goto Error */ $s = 42; continue; - /* } */ case 101: - case 95: - _r$53 = makeComplex(re, im); /* */ $s = 123; case 123: if($c) { $c = false; _r$53 = _r$53.$blk(); } if (_r$53 && _r$53.$blk !== undefined) { break s; } - $24r$7 = _r$53; - $s = 124; case 124: return $24r$7; - /* } else if ($assertType(_ref, ptrType, true)[1]) { */ case 9: - x$8 = _ref.$val; - if (op === 12) { - $s = -1; return new stringVal.ptr(new sync.Mutex.ptr(0, 0), "", x$8, $assertType(y, ptrType)); - } - /* } */ case 10: - /* Error: */ case 42: - _r$54 = fmt.Sprintf("invalid binary operation %v %s %v", new sliceType$1([x_, new token.Token(op), y_])); /* */ $s = 125; case 125: if($c) { $c = false; _r$54 = _r$54.$blk(); } if (_r$54 && _r$54.$blk !== undefined) { break s; } - $panic(new $String(_r$54)); - $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: BinaryOp$1, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, _1, _2, _3, _4, _5, _6, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _r$5, _r$50, _r$51, _r$52, _r$53, _r$54, _r$6, _r$7, _r$8, _r$9, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, a, a$1, a$2, a$3, a$4, ac, ac$1, ad, ad$1, b, b$1, b$2, b$3, b$4, bc, bc$1, bd, bd$1, c, c$1, c$2, c$3, c$4, cc, d, dd, im, op, re, s, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, x_, y, y$1, y$2, y_, $s};return $f; - }; - $pkg.BinaryOp = BinaryOp; - add = function add$1(x, y) { - var {$24r, _r$1, x, y, $s, $r, $c} = $restore(this, {x, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = BinaryOp(x, 12, y); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: add$1, $c: true, $r, $24r, _r$1, x, y, $s};return $f; - }; - sub = function sub$1(x, y) { - var {$24r, _r$1, x, y, $s, $r, $c} = $restore(this, {x, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = BinaryOp(x, 13, y); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: sub$1, $c: true, $r, $24r, _r$1, x, y, $s};return $f; - }; - mul = function mul$1(x, y) { - var {$24r, _r$1, x, y, $s, $r, $c} = $restore(this, {x, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = BinaryOp(x, 14, y); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: mul$1, $c: true, $r, $24r, _r$1, x, y, $s};return $f; - }; - quo = function quo$1(x, y) { - var {$24r, _r$1, x, y, $s, $r, $c} = $restore(this, {x, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = BinaryOp(x, 15, y); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: quo$1, $c: true, $r, $24r, _r$1, x, y, $s};return $f; - }; - Shift = function Shift$1(x, op, s) { - var {$24r, _1, _2, _r$1, _r$2, _r$3, _ref, op, s, x, x$1, x$2, x$3, z, z$1, $s, $r, $c} = $restore(this, {x, op, s}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ref = x; - /* */ if ($assertType(_ref, unknownVal, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, int64Val, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, intVal, true)[1]) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if ($assertType(_ref, unknownVal, true)[1]) { */ case 1: - x$1 = $clone(_ref.$val, unknownVal); - $s = -1; return new x$1.constructor.elem(x$1); - /* } else if ($assertType(_ref, int64Val, true)[1]) { */ case 2: - x$2 = _ref.$val; - if (s === 0) { - $s = -1; return x$2; - } - _1 = op; - if (_1 === (20)) { - z = i64toi(x$2).val; - $s = -1; return makeInt(z.Lsh(z, s)); - } else if (_1 === (21)) { - $s = -1; return $shiftRightInt64(x$2, s); - } - $s = 4; continue; - /* } else if ($assertType(_ref, intVal, true)[1]) { */ case 3: - x$3 = $clone(_ref.$val, intVal); - if (s === 0) { - $s = -1; return new x$3.constructor.elem(x$3); - } - z$1 = newInt(); - _2 = op; - /* */ if (_2 === (20)) { $s = 6; continue; } - /* */ if (_2 === (21)) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (_2 === (20)) { */ case 6: - $s = -1; return makeInt(z$1.Lsh(x$3.val, s)); - /* } else if (_2 === (21)) { */ case 7: - _r$1 = z$1.Rsh(x$3.val, s); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = makeInt(_r$1); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 11; case 11: return $24r; - /* } */ case 8: - case 5: - /* } */ case 4: - _r$3 = fmt.Sprintf("invalid shift %v %s %d", new sliceType$1([x, new token.Token(op), new $Uint(s)])); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $panic(new $String(_r$3)); - $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: Shift$1, $c: true, $r, $24r, _1, _2, _r$1, _r$2, _r$3, _ref, op, s, x, x$1, x$2, x$3, z, z$1, $s};return $f; - }; - $pkg.Shift = Shift; - cmpZero = function cmpZero$1(x, op) { - var {_1, _r$1, op, x, $s, $r, $c} = $restore(this, {x, op}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _1 = op; - if (_1 === (39)) { - $s = -1; return x === 0; - } else if (_1 === (44)) { - $s = -1; return !((x === 0)); - } else if (_1 === (40)) { - $s = -1; return x < 0; - } else if (_1 === (45)) { - $s = -1; return x <= 0; - } else if (_1 === (41)) { - $s = -1; return x > 0; - } else if (_1 === (46)) { - $s = -1; return x >= 0; - } - _r$1 = fmt.Sprintf("invalid comparison %v %s 0", new sliceType$1([new $Int(x), new token.Token(op)])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $panic(new $String(_r$1)); - $s = -1; return false; - /* */ } return; } var $f = {$blk: cmpZero$1, $c: true, $r, _1, _r$1, op, x, $s};return $f; - }; - Compare = function Compare$1(x_, op, y_) { - var {$24r, $24r$1, $24r$2, _1, _2, _3, _4, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, im, op, re, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x_, xs, y, y$1, y$2, y$3, y_, ys, $s, $r, $c} = $restore(this, {x_, op, y_}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = match(x_, y_); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - x = _tuple[0]; - y = _tuple[1]; - _ref = x; - /* */ if ($assertType(_ref, unknownVal, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, boolVal, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, int64Val, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, intVal, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ratVal, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, floatVal, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref, complexVal, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref, ptrType, true)[1]) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if ($assertType(_ref, unknownVal, true)[1]) { */ case 2: - x$1 = $clone(_ref.$val, unknownVal); - $s = -1; return false; - /* } else if ($assertType(_ref, boolVal, true)[1]) { */ case 3: - x$2 = _ref.$val; - y$1 = $assertType(y, boolVal); - _1 = op; - if (_1 === (39)) { - $s = -1; return x$2 === y$1; - } else if (_1 === (44)) { - $s = -1; return !(x$2 === y$1); - } - $s = 10; continue; - /* } else if ($assertType(_ref, int64Val, true)[1]) { */ case 4: - x$3 = _ref.$val; - y$2 = $assertType(y, int64Val); - _2 = op; - if (_2 === (39)) { - $s = -1; return (x$3.$high === y$2.$high && x$3.$low === y$2.$low); - } else if (_2 === (44)) { - $s = -1; return !((x$3.$high === y$2.$high && x$3.$low === y$2.$low)); - } else if (_2 === (40)) { - $s = -1; return (x$3.$high < y$2.$high || (x$3.$high === y$2.$high && x$3.$low < y$2.$low)); - } else if (_2 === (45)) { - $s = -1; return (x$3.$high < y$2.$high || (x$3.$high === y$2.$high && x$3.$low <= y$2.$low)); - } else if (_2 === (41)) { - $s = -1; return (x$3.$high > y$2.$high || (x$3.$high === y$2.$high && x$3.$low > y$2.$low)); - } else if (_2 === (46)) { - $s = -1; return (x$3.$high > y$2.$high || (x$3.$high === y$2.$high && x$3.$low >= y$2.$low)); - } - $s = 10; continue; - /* } else if ($assertType(_ref, intVal, true)[1]) { */ case 5: - x$4 = $clone(_ref.$val, intVal); - _r$2 = cmpZero(x$4.val.Cmp($assertType(y, intVal).val), op); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 12; case 12: return $24r; - /* } else if ($assertType(_ref, ratVal, true)[1]) { */ case 6: - x$5 = $clone(_ref.$val, ratVal); - _r$3 = x$5.val.Cmp($assertType(y, ratVal).val); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$4 = cmpZero(_r$3, op); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $24r$1 = _r$4; - $s = 15; case 15: return $24r$1; - /* } else if ($assertType(_ref, floatVal, true)[1]) { */ case 7: - x$6 = $clone(_ref.$val, floatVal); - _r$5 = x$6.val.Cmp($assertType(y, floatVal).val); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$6 = cmpZero(_r$5, op); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - $24r$2 = _r$6; - $s = 18; case 18: return $24r$2; - /* } else if ($assertType(_ref, complexVal, true)[1]) { */ case 8: - x$7 = $clone(_ref.$val, complexVal); - y$3 = $clone($assertType(y, complexVal), complexVal); - _r$7 = Compare(x$7.re, 39, y$3.re); /* */ $s = 19; case 19: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - re = _r$7; - _r$8 = Compare(x$7.im, 39, y$3.im); /* */ $s = 20; case 20: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - im = _r$8; - _3 = op; - if (_3 === (39)) { - $s = -1; return re && im; - } else if (_3 === (44)) { - $s = -1; return !re || !im; - } - $s = 10; continue; - /* } else if ($assertType(_ref, ptrType, true)[1]) { */ case 9: - x$8 = _ref.$val; - _r$9 = x$8.string(); /* */ $s = 21; case 21: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - xs = _r$9; - _r$10 = $assertType(y, ptrType).string(); /* */ $s = 22; case 22: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - ys = _r$10; - _4 = op; - if (_4 === (39)) { - $s = -1; return xs === ys; - } else if (_4 === (44)) { - $s = -1; return !(xs === ys); - } else if (_4 === (40)) { - $s = -1; return xs < ys; - } else if (_4 === (45)) { - $s = -1; return xs <= ys; - } else if (_4 === (41)) { - $s = -1; return xs > ys; - } else if (_4 === (46)) { - $s = -1; return xs >= ys; - } - /* } */ case 10: - _r$11 = fmt.Sprintf("invalid comparison %v %s %v", new sliceType$1([x_, new token.Token(op), y_])); /* */ $s = 23; case 23: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - $panic(new $String(_r$11)); - $s = -1; return false; - /* */ } return; } var $f = {$blk: Compare$1, $c: true, $r, $24r, $24r$1, $24r$2, _1, _2, _3, _4, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, im, op, re, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x_, xs, y, y$1, y$2, y$3, y_, ys, $s};return $f; - }; - $pkg.Compare = Compare; - Kind.prototype.String = function String$8() { - var i, x; - i = this.$val; - if (i < 0 || i >= 6) { - return "Kind(" + strconv.FormatInt((new $Int64(0, i)), 10) + ")"; - } - return $substring("UnknownBoolStringIntFloatComplex", ((i < 0 || i >= _Kind_index.length) ? ($throwRuntimeError("index out of range"), undefined) : _Kind_index[i]), (x = i + 1 >> 0, ((x < 0 || x >= _Kind_index.length) ? ($throwRuntimeError("index out of range"), undefined) : _Kind_index[x]))); - }; - $ptrType(Kind).prototype.String = function(...$args) { return new Kind(this.$get()).String(...$args); }; - Kind.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - unknownVal.methods = [{prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "ExactString", name: "ExactString", pkg: "", typ: $funcType([], [$String], false)}, {prop: "implementsValue", name: "implementsValue", pkg: "go/constant", typ: $funcType([], [], false)}]; - boolVal.methods = [{prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "ExactString", name: "ExactString", pkg: "", typ: $funcType([], [$String], false)}, {prop: "implementsValue", name: "implementsValue", pkg: "go/constant", typ: $funcType([], [], false)}]; - ptrType.methods = [{prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "string", name: "string", pkg: "go/constant", typ: $funcType([], [$String], false)}, {prop: "appendReverse", name: "appendReverse", pkg: "go/constant", typ: $funcType([sliceType], [sliceType], false)}, {prop: "ExactString", name: "ExactString", pkg: "", typ: $funcType([], [$String], false)}, {prop: "implementsValue", name: "implementsValue", pkg: "go/constant", typ: $funcType([], [], false)}]; - int64Val.methods = [{prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "ExactString", name: "ExactString", pkg: "", typ: $funcType([], [$String], false)}, {prop: "implementsValue", name: "implementsValue", pkg: "go/constant", typ: $funcType([], [], false)}]; - intVal.methods = [{prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "ExactString", name: "ExactString", pkg: "", typ: $funcType([], [$String], false)}, {prop: "implementsValue", name: "implementsValue", pkg: "go/constant", typ: $funcType([], [], false)}]; - ratVal.methods = [{prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "ExactString", name: "ExactString", pkg: "", typ: $funcType([], [$String], false)}, {prop: "implementsValue", name: "implementsValue", pkg: "go/constant", typ: $funcType([], [], false)}]; - floatVal.methods = [{prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "ExactString", name: "ExactString", pkg: "", typ: $funcType([], [$String], false)}, {prop: "implementsValue", name: "implementsValue", pkg: "go/constant", typ: $funcType([], [], false)}]; - complexVal.methods = [{prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "ExactString", name: "ExactString", pkg: "", typ: $funcType([], [$String], false)}, {prop: "implementsValue", name: "implementsValue", pkg: "go/constant", typ: $funcType([], [], false)}]; - Value.init([{prop: "ExactString", name: "ExactString", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "implementsValue", name: "implementsValue", pkg: "go/constant", typ: $funcType([], [], false)}]); - unknownVal.init("", []); - stringVal.init("go/constant", [{prop: "mu", name: "mu", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "s", name: "s", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "l", name: "l", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "r", name: "r", embedded: false, exported: false, typ: ptrType, tag: ""}]); - intVal.init("go/constant", [{prop: "val", name: "val", embedded: false, exported: false, typ: ptrType$2, tag: ""}]); - ratVal.init("go/constant", [{prop: "val", name: "val", embedded: false, exported: false, typ: ptrType$3, tag: ""}]); - floatVal.init("go/constant", [{prop: "val", name: "val", embedded: false, exported: false, typ: ptrType$1, tag: ""}]); - complexVal.init("go/constant", [{prop: "re", name: "re", embedded: false, exported: false, typ: Value, tag: ""}, {prop: "im", name: "im", embedded: false, exported: false, typ: Value, tag: ""}]); - }; - $init = function() { - $pkg.$init = function() {}; - /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: - $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = token.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = math.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = big.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = bits.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = strconv.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = strings.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = sync.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = utf8.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - emptyString = new stringVal.ptr(new sync.Mutex.ptr(0, 0), "", ptrType.nil, ptrType.nil); - _r = newFloat(); /* */ $s = 10; case 10: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - floatVal0 = new floatVal.ptr(_r); - _Kind_index = $toNativeArray($kindUint8, [0, 7, 11, 17, 20, 25, 32]); - /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; - }; - $pkg.$init = $init; - return $pkg; -})(); -$packages["internal/types/errors"] = (function() { - var $pkg = {}, $init, Code; - Code = $newType(4, $kindInt, "errors.Code", true, "internal/types/errors", true, null); - $pkg.Code = Code; - $pkg.$finishSetup = function() { - }; - $init = function() { - $pkg.$init = function() {}; - /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: - /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; - }; - $pkg.$init = $init; - return $pkg; -})(); -$packages["regexp/syntax"] = (function() { - var $pkg = {}, $init, sort, strconv, strings, unicode, utf8, Regexp, Op, Prog, InstOp, EmptyOp, Inst, Error, ErrorCode, Flags, parser, charGroup, ranges, patchList, frag, compiler, sliceType, sliceType$1, sliceType$2, sliceType$3, ptrType, sliceType$4, arrayType, arrayType$1, ptrType$1, sliceType$5, ptrType$2, ptrType$3, ptrType$4, sliceType$6, ptrType$5, ptrType$6, ptrType$7, mapType, mapType$1, ptrType$8, instOpNames, code1, code2, code3, perlGroup, code4, code5, code6, code7, code8, code9, code10, code11, code12, code13, code14, code15, code16, code17, posixGroup, anyTable, _Op_index_0, anyRuneNotNL, anyRune, simplify1, writeRegexp, escape, IsWordChar, bw, dumpProg, u32, dumpInst, minFoldRune, repeatIsValid, cleanAlt, literalRegexp, Parse, parse, isValidCaptureName, isCharClass, matchRune, mergeCharClass, unicodeTable, cleanClass, appendLiteral, appendRange, appendFoldedRange, appendClass, appendFoldedClass, appendNegatedClass, appendTable, appendNegatedTable, negateClass, checkUTF8, nextRune, isalnum, unhex, makePatchList, Compile; - sort = $packages["sort"]; - strconv = $packages["strconv"]; - strings = $packages["strings"]; - unicode = $packages["unicode"]; - utf8 = $packages["unicode/utf8"]; - Regexp = $newType(0, $kindStruct, "syntax.Regexp", true, "regexp/syntax", true, function(Op_, Flags_, Sub_, Sub0_, Rune_, Rune0_, Min_, Max_, Cap_, Name_) { - this.$val = this; - if (arguments.length === 0) { - this.Op = 0; - this.Flags = 0; - this.Sub = sliceType$4.nil; - this.Sub0 = arrayType.zero(); - this.Rune = sliceType$1.nil; - this.Rune0 = arrayType$1.zero(); - this.Min = 0; - this.Max = 0; - this.Cap = 0; - this.Name = ""; - return; - } - this.Op = Op_; - this.Flags = Flags_; - this.Sub = Sub_; - this.Sub0 = Sub0_; - this.Rune = Rune_; - this.Rune0 = Rune0_; - this.Min = Min_; - this.Max = Max_; - this.Cap = Cap_; - this.Name = Name_; - }); - Op = $newType(1, $kindUint8, "syntax.Op", true, "regexp/syntax", true, null); - Prog = $newType(0, $kindStruct, "syntax.Prog", true, "regexp/syntax", true, function(Inst_, Start_, NumCap_) { - this.$val = this; - if (arguments.length === 0) { - this.Inst = sliceType$6.nil; - this.Start = 0; - this.NumCap = 0; - return; - } - this.Inst = Inst_; - this.Start = Start_; - this.NumCap = NumCap_; - }); - InstOp = $newType(1, $kindUint8, "syntax.InstOp", true, "regexp/syntax", true, null); - EmptyOp = $newType(1, $kindUint8, "syntax.EmptyOp", true, "regexp/syntax", true, null); - Inst = $newType(0, $kindStruct, "syntax.Inst", true, "regexp/syntax", true, function(Op_, Out_, Arg_, Rune_) { - this.$val = this; - if (arguments.length === 0) { - this.Op = 0; - this.Out = 0; - this.Arg = 0; - this.Rune = sliceType$1.nil; - return; - } - this.Op = Op_; - this.Out = Out_; - this.Arg = Arg_; - this.Rune = Rune_; - }); - Error = $newType(0, $kindStruct, "syntax.Error", true, "regexp/syntax", true, function(Code_, Expr_) { - this.$val = this; - if (arguments.length === 0) { - this.Code = ""; - this.Expr = ""; - return; - } - this.Code = Code_; - this.Expr = Expr_; - }); - ErrorCode = $newType(8, $kindString, "syntax.ErrorCode", true, "regexp/syntax", true, null); - Flags = $newType(2, $kindUint16, "syntax.Flags", true, "regexp/syntax", true, null); - parser = $newType(0, $kindStruct, "syntax.parser", true, "regexp/syntax", false, function(flags_, stack_, free_, numCap_, wholeRegexp_, tmpClass_, numRegexp_, numRunes_, repeats_, height_, size_) { - this.$val = this; - if (arguments.length === 0) { - this.flags = 0; - this.stack = sliceType$4.nil; - this.free = ptrType.nil; - this.numCap = 0; - this.wholeRegexp = ""; - this.tmpClass = sliceType$1.nil; - this.numRegexp = 0; - this.numRunes = 0; - this.repeats = new $Int64(0, 0); - this.height = false; - this.size = false; - return; - } - this.flags = flags_; - this.stack = stack_; - this.free = free_; - this.numCap = numCap_; - this.wholeRegexp = wholeRegexp_; - this.tmpClass = tmpClass_; - this.numRegexp = numRegexp_; - this.numRunes = numRunes_; - this.repeats = repeats_; - this.height = height_; - this.size = size_; - }); - charGroup = $newType(0, $kindStruct, "syntax.charGroup", true, "regexp/syntax", false, function(sign_, class$1_) { - this.$val = this; - if (arguments.length === 0) { - this.sign = 0; - this.class$1 = sliceType$1.nil; - return; - } - this.sign = sign_; - this.class$1 = class$1_; - }); - ranges = $newType(0, $kindStruct, "syntax.ranges", true, "regexp/syntax", false, function(p_) { - this.$val = this; - if (arguments.length === 0) { - this.p = ptrType$2.nil; - return; - } - this.p = p_; - }); - patchList = $newType(0, $kindStruct, "syntax.patchList", true, "regexp/syntax", false, function(head_, tail_) { - this.$val = this; - if (arguments.length === 0) { - this.head = 0; - this.tail = 0; - return; - } - this.head = head_; - this.tail = tail_; - }); - frag = $newType(0, $kindStruct, "syntax.frag", true, "regexp/syntax", false, function(i_, out_, nullable_) { - this.$val = this; - if (arguments.length === 0) { - this.i = 0; - this.out = new patchList.ptr(0, 0); - this.nullable = false; - return; - } - this.i = i_; - this.out = out_; - this.nullable = nullable_; - }); - compiler = $newType(0, $kindStruct, "syntax.compiler", true, "regexp/syntax", false, function(p_) { - this.$val = this; - if (arguments.length === 0) { - this.p = ptrType$4.nil; - return; - } - this.p = p_; - }); - $pkg.Regexp = Regexp; - $pkg.Op = Op; - $pkg.Prog = Prog; - $pkg.InstOp = InstOp; - $pkg.EmptyOp = EmptyOp; - $pkg.Inst = Inst; - $pkg.Error = Error; - $pkg.ErrorCode = ErrorCode; - $pkg.Flags = Flags; - $pkg.parser = parser; - $pkg.charGroup = charGroup; - $pkg.ranges = ranges; - $pkg.patchList = patchList; - $pkg.frag = frag; - $pkg.compiler = compiler; - $pkg.$finishSetup = function() { - sliceType = $sliceType($String); - sliceType$1 = $sliceType($Int32); - sliceType$2 = $sliceType(unicode.Range16); - sliceType$3 = $sliceType(unicode.Range32); - ptrType = $ptrType(Regexp); - sliceType$4 = $sliceType(ptrType); - arrayType = $arrayType(ptrType, 1); - arrayType$1 = $arrayType($Int32, 2); - ptrType$1 = $ptrType(strings.Builder); - sliceType$5 = $sliceType($Uint8); - ptrType$2 = $ptrType(sliceType$1); - ptrType$3 = $ptrType(unicode.RangeTable); - ptrType$4 = $ptrType(Prog); - sliceType$6 = $sliceType(Inst); - ptrType$5 = $ptrType(Inst); - ptrType$6 = $ptrType(Error); - ptrType$7 = $ptrType(parser); - mapType = $mapType(ptrType, $Int); - mapType$1 = $mapType(ptrType, $Int64); - ptrType$8 = $ptrType(compiler); - $ptrType(Regexp).prototype.Simplify = function Simplify() { - var _1, _i, _ref, i, i$1, i$2, i$3, nre, nre$1, nre2, nsub, prefix, re, sub, sub$1, sub$2, suffix, x, x$1; - re = this; - if (re === ptrType.nil) { - return ptrType.nil; - } - _1 = re.Op; - if ((_1 === (13)) || (_1 === (18)) || (_1 === (19))) { - nre = re; - _ref = re.Sub; + _ref = node; + /* */ if ($assertType(_ref, ptrType$2, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$5, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref, ptrType$6, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref, ptrType$7, true)[1]) { $s = 9; continue; } + /* */ if ($assertType(_ref, ptrType$8, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 11; continue; } + /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 12; continue; } + /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 13; continue; } + /* */ if ($assertType(_ref, ptrType$12, true)[1]) { $s = 14; continue; } + /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 15; continue; } + /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 16; continue; } + /* */ if ($assertType(_ref, ptrType$15, true)[1]) { $s = 17; continue; } + /* */ if ($assertType(_ref, ptrType$16, true)[1]) { $s = 18; continue; } + /* */ if ($assertType(_ref, ptrType$17, true)[1]) { $s = 19; continue; } + /* */ if ($assertType(_ref, ptrType$18, true)[1]) { $s = 20; continue; } + /* */ if ($assertType(_ref, ptrType$19, true)[1]) { $s = 21; continue; } + /* */ if ($assertType(_ref, ptrType$20, true)[1]) { $s = 22; continue; } + /* */ if ($assertType(_ref, ptrType$21, true)[1]) { $s = 23; continue; } + /* */ if ($assertType(_ref, ptrType$22, true)[1]) { $s = 24; continue; } + /* */ if ($assertType(_ref, ptrType$23, true)[1]) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if ($assertType(_ref, ptrType$2, true)[1]) { */ case 5: + n = _ref.$val; + $r = r.resolve(n, true); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$4, true)[1]) { */ case 6: + n$1 = _ref.$val; + _r$1 = n$1.Pos(); /* */ $s = 29; case 29: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $r = r.openScope(_r$1); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(r, "closeScope"), []]); + $r = r.walkFuncType(n$1.Type); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = r.walkBody(n$1.Body); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$5, true)[1]) { */ case 7: + n$2 = _ref.$val; + $r = ast.Walk(r, n$2.X); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$6, true)[1]) { */ case 8: + n$3 = _ref.$val; + $r = r.openScope(n$3.Pos()); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(r, "closeScope"), []]); + $r = r.walkFieldList(n$3.Fields, 4); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$7, true)[1]) { */ case 9: + n$4 = _ref.$val; + _r$2 = n$4.Pos(); /* */ $s = 36; case 36: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $r = r.openScope(_r$2); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(r, "closeScope"), []]); + $r = r.walkFuncType(n$4); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$8, true)[1]) { */ case 10: + n$5 = _ref.$val; + /* */ if (!($interfaceIsEqual(n$5.Type, $ifaceNil))) { $s = 39; continue; } + /* */ $s = 40; continue; + /* if (!($interfaceIsEqual(n$5.Type, $ifaceNil))) { */ case 39: + $r = ast.Walk(r, n$5.Type); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 40: + _ref$1 = n$5.Elts; _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - nsub = sub.Simplify(); - if (nre === re && !(nsub === sub)) { - nre = new Regexp.ptr(0, 0, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, ""); - Regexp.copy(nre, re); - nre.Rune = sliceType$1.nil; - nre.Sub = $appendSlice($subslice(new sliceType$4(nre.Sub0), 0, 0), $subslice(re.Sub, 0, i)); - } - if (!(nre === re)) { - nre.Sub = $append(nre.Sub, nsub); - } + /* while (true) { */ case 42: + /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 43; continue; } + e = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + _tuple = $assertType(e, ptrType$24, true); + kv = _tuple[0]; + /* */ if (!(kv === ptrType$24.nil)) { $s = 44; continue; } + /* */ $s = 45; continue; + /* if (!(kv === ptrType$24.nil)) { */ case 44: + _tuple$1 = $assertType(kv.Key, ptrType$2, true); + ident = _tuple$1[0]; + /* */ if (!(ident === ptrType$2.nil)) { $s = 47; continue; } + /* */ $s = 48; continue; + /* if (!(ident === ptrType$2.nil)) { */ case 47: + $r = r.resolve(ident, false); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 49; continue; + /* } else { */ case 48: + $r = ast.Walk(r, kv.Key); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 49: + $r = ast.Walk(r, kv.Value); /* */ $s = 52; case 52: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 46; continue; + /* } else { */ case 45: + $r = ast.Walk(r, e); /* */ $s = 53; case 53: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 46: _i++; + $s = 42; continue; + case 43: + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$9, true)[1]) { */ case 11: + n$6 = _ref.$val; + $r = r.openScope(n$6.Pos()); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(r, "closeScope"), []]); + $r = r.walkFieldList(n$6.Methods, 5); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 12: + n$7 = _ref.$val; + $r = r.declare(n$7, $ifaceNil, r.labelScope, 6, new sliceType([n$7.Label])); /* */ $s = 56; case 56: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = ast.Walk(r, n$7.Stmt); /* */ $s = 57; case 57: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 13: + n$8 = _ref.$val; + $r = r.walkExprs(n$8.Rhs); /* */ $s = 58; case 58: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (n$8.Tok === 47) { $s = 59; continue; } + /* */ $s = 60; continue; + /* if (n$8.Tok === 47) { */ case 59: + $r = r.shortVarDecl(n$8); /* */ $s = 62; case 62: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 61; continue; + /* } else { */ case 60: + $r = r.walkExprs(n$8.Lhs); /* */ $s = 63; case 63: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 61: + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$12, true)[1]) { */ case 14: + n$9 = _ref.$val; + if (!((n$9.Tok === 69)) && !(n$9.Label === ptrType$2.nil)) { + depth = r.targetStack.$length - 1 >> 0; + (x$1 = r.targetStack, ((depth < 0 || depth >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + depth] = $append((x = r.targetStack, ((depth < 0 || depth >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + depth])), n$9.Label))); } - return nre; - } else if ((_1 === (14)) || (_1 === (15)) || (_1 === (16))) { - sub$1 = (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).Simplify(); - return simplify1(re.Op, re.Flags, sub$1, re); - } else if (_1 === (17)) { - if ((re.Min === 0) && (re.Max === 0)) { - return new Regexp.ptr(2, 0, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, ""); - } - sub$2 = (x$1 = re.Sub, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])).Simplify(); - if (re.Max === -1) { - if (re.Min === 0) { - return simplify1(14, re.Flags, sub$2, ptrType.nil); - } - if (re.Min === 1) { - return simplify1(15, re.Flags, sub$2, ptrType.nil); - } - nre$1 = new Regexp.ptr(18, 0, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, ""); - nre$1.Sub = $subslice(new sliceType$4(nre$1.Sub0), 0, 0); - i$1 = 0; - while (true) { - if (!(i$1 < (re.Min - 1 >> 0))) { break; } - nre$1.Sub = $append(nre$1.Sub, sub$2); - i$1 = i$1 + (1) >> 0; - } - nre$1.Sub = $append(nre$1.Sub, simplify1(15, re.Flags, sub$2, ptrType.nil)); - return nre$1; - } - if ((re.Min === 1) && (re.Max === 1)) { - return sub$2; - } - prefix = ptrType.nil; - if (re.Min > 0) { - prefix = new Regexp.ptr(18, 0, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, ""); - prefix.Sub = $subslice(new sliceType$4(prefix.Sub0), 0, 0); - i$2 = 0; - while (true) { - if (!(i$2 < re.Min)) { break; } - prefix.Sub = $append(prefix.Sub, sub$2); - i$2 = i$2 + (1) >> 0; - } - } - if (re.Max > re.Min) { - suffix = simplify1(16, re.Flags, sub$2, ptrType.nil); - i$3 = re.Min + 1 >> 0; - while (true) { - if (!(i$3 < re.Max)) { break; } - nre2 = new Regexp.ptr(18, 0, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, ""); - nre2.Sub = $append($subslice(new sliceType$4(nre2.Sub0), 0, 0), sub$2, suffix); - suffix = simplify1(16, re.Flags, nre2, ptrType.nil); - i$3 = i$3 + (1) >> 0; - } - if (prefix === ptrType.nil) { - return suffix; - } - prefix.Sub = $append(prefix.Sub, suffix); + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 15: + n$10 = _ref.$val; + $r = r.openScope(n$10.Pos()); /* */ $s = 64; case 64: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(r, "closeScope"), []]); + $r = r.walkStmts(n$10.List); /* */ $s = 65; case 65: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 16: + n$11 = _ref.$val; + $r = r.openScope(n$11.Pos()); /* */ $s = 66; case 66: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(r, "closeScope"), []]); + /* */ if (!($interfaceIsEqual(n$11.Init, $ifaceNil))) { $s = 67; continue; } + /* */ $s = 68; continue; + /* if (!($interfaceIsEqual(n$11.Init, $ifaceNil))) { */ case 67: + $r = ast.Walk(r, n$11.Init); /* */ $s = 69; case 69: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 68: + $r = ast.Walk(r, n$11.Cond); /* */ $s = 70; case 70: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = ast.Walk(r, n$11.Body); /* */ $s = 71; case 71: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!($interfaceIsEqual(n$11.Else, $ifaceNil))) { $s = 72; continue; } + /* */ $s = 73; continue; + /* if (!($interfaceIsEqual(n$11.Else, $ifaceNil))) { */ case 72: + $r = ast.Walk(r, n$11.Else); /* */ $s = 74; case 74: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 73: + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$15, true)[1]) { */ case 17: + n$12 = _ref.$val; + $r = r.walkExprs(n$12.List); /* */ $s = 75; case 75: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = r.openScope(n$12.Pos()); /* */ $s = 76; case 76: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(r, "closeScope"), []]); + $r = r.walkStmts(n$12.Body); /* */ $s = 77; case 77: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$16, true)[1]) { */ case 18: + n$13 = _ref.$val; + $r = r.openScope(n$13.Pos()); /* */ $s = 78; case 78: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(r, "closeScope"), []]); + /* */ if (!($interfaceIsEqual(n$13.Init, $ifaceNil))) { $s = 79; continue; } + /* */ $s = 80; continue; + /* if (!($interfaceIsEqual(n$13.Init, $ifaceNil))) { */ case 79: + $r = ast.Walk(r, n$13.Init); /* */ $s = 81; case 81: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 80: + /* */ if (!($interfaceIsEqual(n$13.Tag, $ifaceNil))) { $s = 82; continue; } + /* */ $s = 83; continue; + /* if (!($interfaceIsEqual(n$13.Tag, $ifaceNil))) { */ case 82: + /* */ if (!($interfaceIsEqual(n$13.Init, $ifaceNil))) { $s = 84; continue; } + /* */ $s = 85; continue; + /* if (!($interfaceIsEqual(n$13.Init, $ifaceNil))) { */ case 84: + _r$3 = n$13.Tag.Pos(); /* */ $s = 86; case 86: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $r = r.openScope(_r$3); /* */ $s = 87; case 87: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(r, "closeScope"), []]); + /* } */ case 85: + $r = ast.Walk(r, n$13.Tag); /* */ $s = 88; case 88: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 83: + /* */ if (!(n$13.Body === ptrType$13.nil)) { $s = 89; continue; } + /* */ $s = 90; continue; + /* if (!(n$13.Body === ptrType$13.nil)) { */ case 89: + $r = r.walkStmts(n$13.Body.List); /* */ $s = 91; case 91: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 90: + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$17, true)[1]) { */ case 19: + n$14 = _ref.$val; + /* */ if (!($interfaceIsEqual(n$14.Init, $ifaceNil))) { $s = 92; continue; } + /* */ $s = 93; continue; + /* if (!($interfaceIsEqual(n$14.Init, $ifaceNil))) { */ case 92: + $r = r.openScope(n$14.Pos()); /* */ $s = 94; case 94: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(r, "closeScope"), []]); + $r = ast.Walk(r, n$14.Init); /* */ $s = 95; case 95: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 93: + _r$4 = n$14.Assign.Pos(); /* */ $s = 96; case 96: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $r = r.openScope(_r$4); /* */ $s = 97; case 97: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(r, "closeScope"), []]); + $r = ast.Walk(r, n$14.Assign); /* */ $s = 98; case 98: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!(n$14.Body === ptrType$13.nil)) { $s = 99; continue; } + /* */ $s = 100; continue; + /* if (!(n$14.Body === ptrType$13.nil)) { */ case 99: + $r = r.walkStmts(n$14.Body.List); /* */ $s = 101; case 101: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 100: + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$18, true)[1]) { */ case 20: + n$15 = _ref.$val; + $r = r.openScope(n$15.Pos()); /* */ $s = 102; case 102: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(r, "closeScope"), []]); + /* */ if (!($interfaceIsEqual(n$15.Comm, $ifaceNil))) { $s = 103; continue; } + /* */ $s = 104; continue; + /* if (!($interfaceIsEqual(n$15.Comm, $ifaceNil))) { */ case 103: + $r = ast.Walk(r, n$15.Comm); /* */ $s = 105; case 105: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 104: + $r = r.walkStmts(n$15.Body); /* */ $s = 106; case 106: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$19, true)[1]) { */ case 21: + n$16 = _ref.$val; + /* */ if (!(n$16.Body === ptrType$13.nil)) { $s = 107; continue; } + /* */ $s = 108; continue; + /* if (!(n$16.Body === ptrType$13.nil)) { */ case 107: + $r = r.walkStmts(n$16.Body.List); /* */ $s = 109; case 109: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 108: + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$20, true)[1]) { */ case 22: + n$17 = _ref.$val; + $r = r.openScope(n$17.Pos()); /* */ $s = 110; case 110: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(r, "closeScope"), []]); + /* */ if (!($interfaceIsEqual(n$17.Init, $ifaceNil))) { $s = 111; continue; } + /* */ $s = 112; continue; + /* if (!($interfaceIsEqual(n$17.Init, $ifaceNil))) { */ case 111: + $r = ast.Walk(r, n$17.Init); /* */ $s = 113; case 113: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 112: + /* */ if (!($interfaceIsEqual(n$17.Cond, $ifaceNil))) { $s = 114; continue; } + /* */ $s = 115; continue; + /* if (!($interfaceIsEqual(n$17.Cond, $ifaceNil))) { */ case 114: + $r = ast.Walk(r, n$17.Cond); /* */ $s = 116; case 116: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 115: + /* */ if (!($interfaceIsEqual(n$17.Post, $ifaceNil))) { $s = 117; continue; } + /* */ $s = 118; continue; + /* if (!($interfaceIsEqual(n$17.Post, $ifaceNil))) { */ case 117: + $r = ast.Walk(r, n$17.Post); /* */ $s = 119; case 119: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 118: + $r = ast.Walk(r, n$17.Body); /* */ $s = 120; case 120: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$21, true)[1]) { */ case 23: + n$18 = _ref.$val; + $r = r.openScope(n$18.Pos()); /* */ $s = 121; case 121: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(r, "closeScope"), []]); + $r = ast.Walk(r, n$18.X); /* */ $s = 122; case 122: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + lhs = sliceType$3.nil; + if (!($interfaceIsEqual(n$18.Key, $ifaceNil))) { + lhs = $append(lhs, n$18.Key); } - if (!(prefix === ptrType.nil)) { - return prefix; + if (!($interfaceIsEqual(n$18.Value, $ifaceNil))) { + lhs = $append(lhs, n$18.Value); } - return new Regexp.ptr(1, 0, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, ""); - } - return re; + /* */ if (lhs.$length > 0) { $s = 123; continue; } + /* */ $s = 124; continue; + /* if (lhs.$length > 0) { */ case 123: + /* */ if (n$18.Tok === 47) { $s = 125; continue; } + /* */ $s = 126; continue; + /* if (n$18.Tok === 47) { */ case 125: + as = new ast.AssignStmt.ptr(lhs, n$18.TokPos, 47, new sliceType$3([new ast.UnaryExpr.ptr(0, 79, n$18.X)])); + $r = r.walkLHS(lhs); /* */ $s = 128; case 128: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = r.shortVarDecl(as); /* */ $s = 129; case 129: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 127; continue; + /* } else { */ case 126: + $r = r.walkExprs(lhs); /* */ $s = 130; case 130: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 127: + /* } */ case 124: + $r = ast.Walk(r, n$18.Body); /* */ $s = 131; case 131: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$22, true)[1]) { */ case 24: + n$19 = _ref.$val; + _1 = n$19.Tok; + /* */ if ((_1 === (64)) || (_1 === (85))) { $s = 133; continue; } + /* */ if (_1 === (84)) { $s = 134; continue; } + /* */ $s = 135; continue; + /* if ((_1 === (64)) || (_1 === (85))) { */ case 133: + _ref$2 = n$19.Specs; + _i$1 = 0; + /* while (true) { */ case 136: + /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 137; continue; } + i = _i$1; + spec = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); + spec$1 = $assertType(spec, ptrType$25); + kind = 2; + if (n$19.Tok === 85) { + kind = 4; + } + $r = r.walkExprs(spec$1.Values); /* */ $s = 138; case 138: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!($interfaceIsEqual(spec$1.Type, $ifaceNil))) { $s = 139; continue; } + /* */ $s = 140; continue; + /* if (!($interfaceIsEqual(spec$1.Type, $ifaceNil))) { */ case 139: + $r = ast.Walk(r, spec$1.Type); /* */ $s = 141; case 141: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 140: + $r = r.declare(spec$1, new $Int(i), r.topScope, kind, spec$1.Names); /* */ $s = 142; case 142: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + $s = 136; continue; + case 137: + $s = 135; continue; + /* } else if (_1 === (84)) { */ case 134: + _ref$3 = n$19.Specs; + _i$2 = 0; + /* while (true) { */ case 143: + /* if (!(_i$2 < _ref$3.$length)) { break; } */ if(!(_i$2 < _ref$3.$length)) { $s = 144; continue; } + spec$2 = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]); + spec$3 = $assertType(spec$2, ptrType$26); + $r = r.declare(spec$3, $ifaceNil, r.topScope, 3, new sliceType([spec$3.Name])); /* */ $s = 145; case 145: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!(spec$3.TypeParams === ptrType$27.nil)) { $s = 146; continue; } + /* */ $s = 147; continue; + /* if (!(spec$3.TypeParams === ptrType$27.nil)) { */ case 146: + $r = r.openScope(spec$3.Pos()); /* */ $s = 148; case 148: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(r, "closeScope"), []]); + $r = r.walkTParams(spec$3.TypeParams); /* */ $s = 149; case 149: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 147: + $r = ast.Walk(r, spec$3.Type); /* */ $s = 150; case 150: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$2++; + $s = 143; continue; + case 144: + /* } */ case 135: + case 132: + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$23, true)[1]) { */ case 25: + n$20 = _ref.$val; + _r$5 = n$20.Pos(); /* */ $s = 151; case 151: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $r = r.openScope(_r$5); /* */ $s = 152; case 152: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(r, "closeScope"), []]); + $r = r.walkRecv(n$20.Recv); /* */ $s = 153; case 153: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!(n$20.Type.TypeParams === ptrType$27.nil)) { $s = 154; continue; } + /* */ $s = 155; continue; + /* if (!(n$20.Type.TypeParams === ptrType$27.nil)) { */ case 154: + $r = r.walkTParams(n$20.Type.TypeParams); /* */ $s = 156; case 156: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 155: + $r = r.resolveList(n$20.Type.Params); /* */ $s = 157; case 157: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = r.resolveList(n$20.Type.Results); /* */ $s = 158; case 158: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = r.declareList(n$20.Recv, 4); /* */ $s = 159; case 159: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = r.declareList(n$20.Type.Params, 4); /* */ $s = 160; case 160: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = r.declareList(n$20.Type.Results, 4); /* */ $s = 161; case 161: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = r.walkBody(n$20.Body); /* */ $s = 162; case 162: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (n$20.Recv === ptrType$27.nil && !(n$20.Name.Name === "init")) { $s = 163; continue; } + /* */ $s = 164; continue; + /* if (n$20.Recv === ptrType$27.nil && !(n$20.Name.Name === "init")) { */ case 163: + $r = r.declare(n$20, $ifaceNil, r.pkgScope, 5, new sliceType([n$20.Name])); /* */ $s = 165; case 165: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 164: + $s = 27; continue; + /* } else { */ case 26: + n$21 = _ref; + $24r = r; + $s = 166; case 166: return $24r; + /* } */ case 27: + $24r$1 = $ifaceNil; + $s = 167; case 167: return $24r$1; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Visit, $c: true, $r, $24r, $24r$1, _1, _arg, _arg$1, _i, _i$1, _i$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _ref$2, _ref$3, _tuple, _tuple$1, as, depth, e, i, ident, kind, kv, lhs, n, n$1, n$10, n$11, n$12, n$13, n$14, n$15, n$16, n$17, n$18, n$19, n$2, n$20, n$21, n$3, n$4, n$5, n$6, n$7, n$8, n$9, node, r, spec, spec$1, spec$2, spec$3, x, x$1, $s, $deferred};return $f; } } }; - simplify1 = function simplify1$1(op, flags, sub, re) { - var flags, op, re, sub, x; - if (sub.Op === 2) { - return sub; - } - if ((op === sub.Op) && (((flags & 32) >>> 0) === ((sub.Flags & 32) >>> 0))) { - return sub; + $ptrType(resolver).prototype.walkFuncType = function walkFuncType(typ) { + var {r, typ, $s, $r, $c} = $restore(this, {typ}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + $r = r.resolveList(typ.Params); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = r.resolveList(typ.Results); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = r.declareList(typ.Params, 4); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = r.declareList(typ.Results, 4); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: walkFuncType, $c: true, $r, r, typ, $s};return $f; + }; + $ptrType(resolver).prototype.resolveList = function resolveList(list) { + var {_i, _ref, f, list, r, $s, $r, $c} = $restore(this, {list}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + if (list === ptrType$27.nil) { + $s = -1; return; } - if (!(re === ptrType.nil) && (re.Op === op) && (((re.Flags & 32) >>> 0) === ((flags & 32) >>> 0)) && sub === (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))) { - return re; + _ref = list.List; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + /* */ if (!($interfaceIsEqual(f.Type, $ifaceNil))) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!($interfaceIsEqual(f.Type, $ifaceNil))) { */ case 3: + $r = ast.Walk(r, f.Type); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 4: + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: resolveList, $c: true, $r, _i, _ref, f, list, r, $s};return $f; + }; + $ptrType(resolver).prototype.declareList = function declareList(list, kind) { + var {_i, _ref, f, kind, list, r, $s, $r, $c} = $restore(this, {list, kind}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + if (list === ptrType$27.nil) { + $s = -1; return; } - re = new Regexp.ptr(op, flags, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, ""); - re.Sub = $append($subslice(new sliceType$4(re.Sub0), 0, 0), sub); - return re; + _ref = list.List; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = r.declare(f, $ifaceNil, r.topScope, kind, f.Names); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: declareList, $c: true, $r, _i, _ref, f, kind, list, r, $s};return $f; }; - $ptrType(Regexp).prototype.Equal = function Equal(y) { - var _1, _i, _i$1, _ref, _ref$1, i, i$1, r, sub, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, y; - x = this; - if (x === ptrType.nil || y === ptrType.nil) { - return x === y; + $ptrType(resolver).prototype.walkRecv = function walkRecv(recv) { + var {_i, _i$1, _i$2, _ref, _ref$1, _ref$2, _ref$3, _tuple, _tuple$1, declareExprs, expr, expr$1, f, id, ok, ptr, r, recv, resolveExprs, typ, typ$1, typ$2, typ$3, x, $s, $r, $c} = $restore(this, {recv}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + if (recv === ptrType$27.nil || (recv.List.$length === 0)) { + $s = -1; return; } - if (!((x.Op === y.Op))) { - return false; + typ = (x = recv.List, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).Type; + _tuple = $assertType(typ, ptrType$28, true); + ptr = _tuple[0]; + ok = _tuple[1]; + if (ok) { + typ = ptr.X; } - _1 = x.Op; - if (_1 === (10)) { - if (!((((x.Flags & 256) >>> 0) === ((y.Flags & 256) >>> 0)))) { - return false; - } - } else if ((_1 === (3)) || (_1 === (4))) { - if (!((x.Rune.$length === y.Rune.$length))) { - return false; - } - _ref = x.Rune; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - r = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (!((r === (x$1 = y.Rune, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i]))))) { - return false; - } - _i++; - } - } else if ((_1 === (19)) || (_1 === (18))) { - if (!((x.Sub.$length === y.Sub.$length))) { - return false; - } - _ref$1 = x.Sub; - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - i$1 = _i$1; - sub = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - if (!sub.Equal((x$2 = y.Sub, ((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$1])))) { - return false; - } - _i$1++; - } - } else if ((_1 === (14)) || (_1 === (15)) || (_1 === (16))) { - if (!((((x.Flags & 32) >>> 0) === ((y.Flags & 32) >>> 0))) || !(x$3 = x.Sub, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])).Equal((x$4 = y.Sub, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])))) { - return false; - } - } else if (_1 === (17)) { - if (!((((x.Flags & 32) >>> 0) === ((y.Flags & 32) >>> 0))) || !((x.Min === y.Min)) || !((x.Max === y.Max)) || !(x$5 = x.Sub, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0])).Equal((x$6 = y.Sub, (0 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + 0])))) { - return false; - } - } else if (_1 === (13)) { - if (!((x.Cap === y.Cap)) || !(x.Name === y.Name) || !(x$7 = x.Sub, (0 >= x$7.$length ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + 0])).Equal((x$8 = y.Sub, (0 >= x$8.$length ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + 0])))) { - return false; - } + declareExprs = sliceType$3.nil; + resolveExprs = sliceType$3.nil; + _ref = typ; + if ($assertType(_ref, ptrType$29, true)[1]) { + typ$1 = _ref.$val; + declareExprs = new sliceType$3([typ$1.Index]); + resolveExprs = $append(resolveExprs, typ$1.X); + } else if ($assertType(_ref, ptrType$30, true)[1]) { + typ$2 = _ref.$val; + declareExprs = typ$2.Indices; + resolveExprs = $append(resolveExprs, typ$2.X); + } else { + typ$3 = _ref; + resolveExprs = $append(resolveExprs, typ$3); } - return true; + _ref$1 = declareExprs; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 2; continue; } + expr = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + _tuple$1 = $assertType(expr, ptrType$2, true); + id = _tuple$1[0]; + /* */ if (!(id === ptrType$2.nil)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!(id === ptrType$2.nil)) { */ case 3: + $r = r.declare(expr, $ifaceNil, r.topScope, 3, new sliceType([id])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 5; continue; + /* } else { */ case 4: + resolveExprs = $append(resolveExprs, expr); + /* } */ case 5: + _i++; + $s = 1; continue; + case 2: + _ref$2 = resolveExprs; + _i$1 = 0; + /* while (true) { */ case 7: + /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 8; continue; } + expr$1 = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); + /* */ if (!($interfaceIsEqual(expr$1, $ifaceNil))) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!($interfaceIsEqual(expr$1, $ifaceNil))) { */ case 9: + $r = ast.Walk(r, expr$1); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 10: + _i$1++; + $s = 7; continue; + case 8: + _ref$3 = $subslice(recv.List, 1); + _i$2 = 0; + /* while (true) { */ case 12: + /* if (!(_i$2 < _ref$3.$length)) { break; } */ if(!(_i$2 < _ref$3.$length)) { $s = 13; continue; } + f = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]); + /* */ if (!($interfaceIsEqual(f.Type, $ifaceNil))) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (!($interfaceIsEqual(f.Type, $ifaceNil))) { */ case 14: + $r = ast.Walk(r, f.Type); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 15: + _i$2++; + $s = 12; continue; + case 13: + $s = -1; return; + /* */ } return; } var $f = {$blk: walkRecv, $c: true, $r, _i, _i$1, _i$2, _ref, _ref$1, _ref$2, _ref$3, _tuple, _tuple$1, declareExprs, expr, expr$1, f, id, ok, ptr, r, recv, resolveExprs, typ, typ$1, typ$2, typ$3, x, $s};return $f; }; - writeRegexp = function writeRegexp$1(b, re) { - var _1, _2, _i, _i$1, _i$2, _r, _ref, _ref$1, _ref$2, _tmp, _tmp$1, _tmp$2, _tmp$3, b, hi, hi$1, i, i$1, i$2, lo, lo$1, r, re, sub, sub$1, sub$2, x, x$1, x$10, x$11, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; - switch (0) { default: - _1 = re.Op; - if (_1 === (1)) { - b.WriteString("[^\\x00-\\x{10FFFF}]"); - } else if (_1 === (2)) { - b.WriteString("(?:)"); - } else if (_1 === (3)) { - if (!((((re.Flags & 1) >>> 0) === 0))) { - b.WriteString("(?i:"); - } - _ref = re.Rune; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - r = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - escape(b, r, false); - _i++; - } - if (!((((re.Flags & 1) >>> 0) === 0))) { - b.WriteString(")"); - } - } else if (_1 === (4)) { - if (!(((_r = re.Rune.$length % 2, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) === 0))) { - b.WriteString("[invalid char class]"); - break; - } - b.WriteRune(91); - if (re.Rune.$length === 0) { - b.WriteString("^\\x00-\\x{10FFFF}"); - } else if (((x = re.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) === 0) && ((x$1 = re.Rune, x$2 = re.Rune.$length - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])) === 1114111) && re.Rune.$length > 2) { - b.WriteRune(94); - i = 1; - while (true) { - if (!(i < (re.Rune.$length - 1 >> 0))) { break; } - _tmp = (x$3 = re.Rune, ((i < 0 || i >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + i])) + 1 >> 0; - _tmp$1 = (x$4 = re.Rune, x$5 = i + 1 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])) - 1 >> 0; - lo = _tmp; - hi = _tmp$1; - escape(b, lo, lo === 45); - if (!((lo === hi))) { - b.WriteRune(45); - escape(b, hi, hi === 45); - } - i = i + (2) >> 0; - } - } else { - i$1 = 0; - while (true) { - if (!(i$1 < re.Rune.$length)) { break; } - _tmp$2 = (x$6 = re.Rune, ((i$1 < 0 || i$1 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + i$1])); - _tmp$3 = (x$7 = re.Rune, x$8 = i$1 + 1 >> 0, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8])); - lo$1 = _tmp$2; - hi$1 = _tmp$3; - escape(b, lo$1, lo$1 === 45); - if (!((lo$1 === hi$1))) { - b.WriteRune(45); - escape(b, hi$1, hi$1 === 45); - } - i$1 = i$1 + (2) >> 0; - } - } - b.WriteRune(93); - } else if (_1 === (5)) { - b.WriteString("(?-s:.)"); - } else if (_1 === (6)) { - b.WriteString("(?s:.)"); - } else if (_1 === (7)) { - b.WriteString("(?m:^)"); - } else if (_1 === (8)) { - b.WriteString("(?m:$)"); - } else if (_1 === (9)) { - b.WriteString("\\A"); - } else if (_1 === (10)) { - if (!((((re.Flags & 256) >>> 0) === 0))) { - b.WriteString("(?-m:$)"); - } else { - b.WriteString("\\z"); - } - } else if (_1 === (11)) { - b.WriteString("\\b"); - } else if (_1 === (12)) { - b.WriteString("\\B"); - } else if (_1 === (13)) { - if (!(re.Name === "")) { - b.WriteString("(?P<"); - b.WriteString(re.Name); - b.WriteRune(62); - } else { - b.WriteRune(40); - } - if (!(((x$9 = re.Sub, (0 >= x$9.$length ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + 0])).Op === 2))) { - writeRegexp(b, (x$10 = re.Sub, (0 >= x$10.$length ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + 0]))); - } - b.WriteRune(41); - } else if ((_1 === (14)) || (_1 === (15)) || (_1 === (16)) || (_1 === (17))) { - sub = (x$11 = re.Sub, (0 >= x$11.$length ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + 0])); - if (sub.Op > 13 || (sub.Op === 3) && sub.Rune.$length > 1) { - b.WriteString("(?:"); - writeRegexp(b, sub); - b.WriteString(")"); - } else { - writeRegexp(b, sub); - } - _2 = re.Op; - if (_2 === (14)) { - b.WriteRune(42); - } else if (_2 === (15)) { - b.WriteRune(43); - } else if (_2 === (16)) { - b.WriteRune(63); - } else if (_2 === (17)) { - b.WriteRune(123); - b.WriteString(strconv.Itoa(re.Min)); - if (!((re.Max === re.Min))) { - b.WriteRune(44); - if (re.Max >= 0) { - b.WriteString(strconv.Itoa(re.Max)); - } - } - b.WriteRune(125); - } - if (!((((re.Flags & 32) >>> 0) === 0))) { - b.WriteRune(63); - } - } else if (_1 === (18)) { - _ref$1 = re.Sub; - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - sub$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - if (sub$1.Op === 19) { - b.WriteString("(?:"); - writeRegexp(b, sub$1); - b.WriteString(")"); - } else { - writeRegexp(b, sub$1); - } - _i$1++; - } - } else if (_1 === (19)) { - _ref$2 = re.Sub; - _i$2 = 0; - while (true) { - if (!(_i$2 < _ref$2.$length)) { break; } - i$2 = _i$2; - sub$2 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); - if (i$2 > 0) { - b.WriteRune(124); - } - writeRegexp(b, sub$2); - _i$2++; - } - } else { - b.WriteString("> 0))) + ">"); - } + $ptrType(resolver).prototype.walkFieldList = function walkFieldList(list, kind) { + var {kind, list, r, $s, $r, $c} = $restore(this, {list, kind}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + if (list === ptrType$27.nil) { + $s = -1; return; } + $r = r.resolveList(list); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = r.declareList(list, kind); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: walkFieldList, $c: true, $r, kind, list, r, $s};return $f; }; - $ptrType(Regexp).prototype.String = function String() { - var b, re; - re = this; - b = new strings.Builder.ptr(ptrType$1.nil, sliceType$5.nil); - writeRegexp(b, re); - return b.String(); + $ptrType(resolver).prototype.walkTParams = function walkTParams(list) { + var {list, r, $s, $r, $c} = $restore(this, {list}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + r = this; + $r = r.declareList(list, 3); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = r.resolveList(list); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: walkTParams, $c: true, $r, list, r, $s};return $f; }; - escape = function escape$1(b, r, force) { - var _1, b, force, r, s; - if (unicode.IsPrint(r)) { - if (strings.ContainsRune("\\.+*?()|[]{}^$", r) || force) { - b.WriteRune(92); - } - b.WriteRune(r); - return; - } - switch (0) { default: - _1 = r; - if (_1 === (7)) { - b.WriteString("\\a"); - } else if (_1 === (12)) { - b.WriteString("\\f"); - } else if (_1 === (10)) { - b.WriteString("\\n"); - } else if (_1 === (13)) { - b.WriteString("\\r"); - } else if (_1 === (9)) { - b.WriteString("\\t"); - } else if (_1 === (11)) { - b.WriteString("\\v"); - } else { - if (r < 256) { - b.WriteString("\\x"); - s = strconv.FormatInt((new $Int64(0, r)), 16); - if (s.length === 1) { - b.WriteRune(48); - } - b.WriteString(s); - break; - } - b.WriteString("\\x{"); - b.WriteString(strconv.FormatInt((new $Int64(0, r)), 16)); - b.WriteString("}"); - } + $ptrType(resolver).prototype.walkBody = function walkBody(body) { + var {body, r, $s, $deferred, $r, $c} = $restore(this, {body}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + r = this; + if (body === ptrType$13.nil) { + $s = -1; return; } + r.openLabelScope(); + $deferred.push([$methodVal(r, "closeLabelScope"), []]); + $r = r.walkStmts(body.List); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: walkBody, $c: true, $r, body, r, $s, $deferred};return $f; } } }; - $ptrType(Regexp).prototype.MaxCap = function MaxCap() { - var _i, _ref, m, n, re, sub; - re = this; - m = 0; - if (re.Op === 13) { - m = re.Cap; - } - _ref = re.Sub; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - n = sub.MaxCap(); - if (m < n) { - m = n; - } - _i++; - } - return m; + $ptrType(parser).prototype.init = function init(fset, filename, src, mode) { + var {_r, eh, filename, fset, mode, p, src, $s, $r, $c} = $restore(this, {fset, filename, src, mode}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = [p]; + p[0] = this; + _r = fset.AddFile(filename, -1, src.$length); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + p[0].file = _r; + eh = (function(p) { return function parser·init·func1(pos, msg) { + var msg, pos; + (p[0] === ptrType$31.nil && $throwNilPointerError(), (p[0].$ptr_errors || (p[0].$ptr_errors = new ptrType$32(function() { return this.$target.errors; }, function($v) { this.$target.errors = $v; }, p[0])))).Add($clone(pos, token.Position), msg); + }; })(p); + $r = p[0].scanner.Init(p[0].file, src, eh, 1); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + p[0].top = true; + p[0].mode = mode; + p[0].trace = !((((mode & 8) >>> 0) === 0)); + $r = p[0].next(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: init, $c: true, $r, _r, eh, filename, fset, mode, p, src, $s};return $f; + }; + $ptrType(parser).prototype.printTrace = function printTrace(a) { + var {_r, _r$1, _r$2, _r$3, _r$4, a, i, p, pos, $s, $r, $c} = $restore(this, {a}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _r = p.file.Position(p.pos); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + pos = $clone(_r, token.Position); + _r$1 = fmt.Printf("%5d:%3d: ", new sliceType$2([new $Int(pos.Line), new $Int(pos.Column)])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + i = $imul(2, p.indent); + /* while (true) { */ case 3: + /* if (!(i > 64)) { break; } */ if(!(i > 64)) { $s = 4; continue; } + _r$2 = fmt.Print(new sliceType$2([new $String(". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ")])); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + i = i - (64) >> 0; + $s = 3; continue; + case 4: + _r$3 = fmt.Print(new sliceType$2([new $String($substring(". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", 0, i))])); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + _r$4 = fmt.Println(a); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4; + $s = -1; return; + /* */ } return; } var $f = {$blk: printTrace, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, a, i, p, pos, $s};return $f; }; - $ptrType(Regexp).prototype.CapNames = function CapNames() { - var names, re; - re = this; - names = $makeSlice(sliceType, (re.MaxCap() + 1 >> 0)); - re.capNames(names); - return names; + trace = function trace$2(p, msg) { + var {msg, p, $s, $r, $c} = $restore(this, {p, msg}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = p.printTrace(new sliceType$2([new $String(msg), new $String("(")])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + p.indent = p.indent + (1) >> 0; + $s = -1; return p; + /* */ } return; } var $f = {$blk: trace$2, $c: true, $r, msg, p, $s};return $f; }; - $ptrType(Regexp).prototype.capNames = function capNames(names) { - var _i, _ref, names, re, sub, x; - re = this; - if (re.Op === 13) { - (x = re.Cap, ((x < 0 || x >= names.$length) ? ($throwRuntimeError("index out of range"), undefined) : names.$array[names.$offset + x] = re.Name)); - } - _ref = re.Sub; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - sub.capNames(names); - _i++; - } + un = function un$1(p) { + var {p, $s, $r, $c} = $restore(this, {p}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p.indent = p.indent - (1) >> 0; + $r = p.printTrace(new sliceType$2([new $String(")")])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: un$1, $c: true, $r, p, $s};return $f; }; - InstOp.prototype.String = function String$1() { - var i; - i = this.$val; - if (((i >>> 0)) >= ((instOpNames.$length >>> 0))) { - return ""; - } - return ((i < 0 || i >= instOpNames.$length) ? ($throwRuntimeError("index out of range"), undefined) : instOpNames.$array[instOpNames.$offset + i]); + incNestLev = function incNestLev$1(p) { + var {p, x, $s, $r, $c} = $restore(this, {p}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p.nestLev = p.nestLev + (1) >> 0; + /* */ if (p.nestLev > 100000) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.nestLev > 100000) { */ case 1: + $r = p.error(p.pos, "exceeded max nesting depth"); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $panic((x = new bailout.ptr(0, ""), new x.constructor.elem(x))); + /* } */ case 2: + $s = -1; return p; + /* */ } return; } var $f = {$blk: incNestLev$1, $c: true, $r, p, x, $s};return $f; }; - $ptrType(InstOp).prototype.String = function(...$args) { return new InstOp(this.$get()).String(...$args); }; - IsWordChar = function IsWordChar$1(r) { - var r; - return 65 <= r && r <= 90 || 97 <= r && r <= 122 || 48 <= r && r <= 57 || (r === 95); + decNestLev = function decNestLev$1(p) { + var p; + p.nestLev = p.nestLev - (1) >> 0; }; - $pkg.IsWordChar = IsWordChar; - $ptrType(Prog).prototype.String = function String$2() { - var b, p; + $ptrType(parser).prototype.next0 = function next0() { + var {_r, _r$1, _r$2, _tuple, _tuple$1, err, p, s, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; - b = new strings.Builder.ptr(ptrType$1.nil, sliceType$5.nil); - dumpProg(b, p); - return b.String(); + /* */ if (p.trace && new token.Pos(p.pos).IsValid()) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace && new token.Pos(p.pos).IsValid()) { */ case 1: + s = new token.Token(p.tok).String(); + /* */ if (new token.Token(p.tok).IsLiteral()) { $s = 4; continue; } + /* */ if ((new token.Token(p.tok).IsOperator()) || (new token.Token(p.tok).IsKeyword())) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (new token.Token(p.tok).IsLiteral()) { */ case 4: + $r = p.printTrace(new sliceType$2([new $String(s), new $String(p.lit)])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 7; continue; + /* } else if ((new token.Token(p.tok).IsOperator()) || (new token.Token(p.tok).IsKeyword())) { */ case 5: + $r = p.printTrace(new sliceType$2([new $String("\"" + s + "\"")])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 7; continue; + /* } else { */ case 6: + $r = p.printTrace(new sliceType$2([new $String(s)])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 7: + case 3: + /* } */ case 2: + /* while (true) { */ case 11: + _r = p.scanner.Scan(); /* */ $s = 13; case 13: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + p.pos = _tuple[0]; + p.tok = _tuple[1]; + p.lit = _tuple[2]; + /* */ if (p.tok === 2) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (p.tok === 2) { */ case 14: + /* */ if (p.top && strings.HasPrefix(p.lit, "//go:build")) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (p.top && strings.HasPrefix(p.lit, "//go:build")) { */ case 17: + _r$1 = constraint.Parse(p.lit); /* */ $s = 19; case 19: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + x = _tuple$1[0]; + err = _tuple$1[1]; + /* */ if ($interfaceIsEqual(err, $ifaceNil)) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if ($interfaceIsEqual(err, $ifaceNil)) { */ case 20: + _r$2 = constraint.GoVersion(x); /* */ $s = 22; case 22: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + p.goVersion = _r$2; + /* } */ case 21: + /* } */ case 18: + if (((p.mode & 4) >>> 0) === 0) { + /* continue; */ $s = 11; continue; + } + $s = 16; continue; + /* } else { */ case 15: + p.top = false; + /* } */ case 16: + /* break; */ $s = 12; continue; + case 12: + $s = -1; return; + /* */ } return; } var $f = {$blk: next0, $c: true, $r, _r, _r$1, _r$2, _tuple, _tuple$1, err, p, s, x, $s};return $f; }; - $ptrType(Prog).prototype.skipNop = function skipNop(pc) { - var i, p, pc, x, x$1, x$2; + $ptrType(parser).prototype.consumeComment = function consumeComment() { + var {_r, comment, endline, i, p, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + comment = ptrType$33.nil; + endline = 0; p = this; - i = (x = p.Inst, ((pc < 0 || pc >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pc])); - while (true) { - if (!((i.Op === 6) || (i.Op === 2))) { break; } - i = (x$1 = p.Inst, x$2 = i.Out, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])); + _r = p.file.Line(p.pos); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + endline = _r; + if (p.lit.charCodeAt(1) === 42) { + i = 0; + while (true) { + if (!(i < p.lit.length)) { break; } + if (p.lit.charCodeAt(i) === 10) { + endline = endline + (1) >> 0; + } + i = i + (1) >> 0; + } } - return i; + comment = new ast.Comment.ptr(p.pos, p.lit); + $r = p.next0(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return [comment, endline]; + /* */ } return; } var $f = {$blk: consumeComment, $c: true, $r, _r, comment, endline, i, p, $s};return $f; }; - $ptrType(Inst).prototype.op = function op() { - var _1, i, op$1; - i = this; - op$1 = i.Op; - _1 = op$1; - if ((_1 === (8)) || (_1 === (9)) || (_1 === (10))) { - op$1 = 7; - } - return op$1; + $ptrType(parser).prototype.consumeCommentGroup = function consumeCommentGroup(n) { + var {_r, _r$1, _r$2, _tuple, _v, comment, comments, endline, list, n, p, $s, $r, $c} = $restore(this, {n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + comments = ptrType$34.nil; + endline = 0; + p = this; + list = sliceType$4.nil; + _r = p.file.Line(p.pos); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + endline = _r; + /* while (true) { */ case 2: + if (!(p.tok === 2)) { _v = false; $s = 4; continue s; } + _r$1 = p.file.Line(p.pos); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = _r$1 <= (endline + n >> 0); case 4: + /* if (!(_v)) { break; } */ if(!(_v)) { $s = 3; continue; } + comment = ptrType$33.nil; + _r$2 = p.consumeComment(); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = _r$2; + comment = _tuple[0]; + endline = _tuple[1]; + list = $append(list, comment); + $s = 2; continue; + case 3: + comments = new ast.CommentGroup.ptr(list); + p.comments = $append(p.comments, comments); + $s = -1; return [comments, endline]; + /* */ } return; } var $f = {$blk: consumeCommentGroup, $c: true, $r, _r, _r$1, _r$2, _tuple, _v, comment, comments, endline, list, n, p, $s};return $f; }; - $ptrType(Prog).prototype.Prefix = function Prefix() { - var _tmp, _tmp$1, _tmp$2, _tmp$3, buf, complete, i, p, prefix, x, x$1; - prefix = ""; - complete = false; + $ptrType(parser).prototype.next = function next() { + var {_r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, comment, endline, p, prev, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; - i = p.skipNop(((p.Start >>> 0))); - if (!((i.op() === 7)) || !((i.Rune.$length === 1))) { - _tmp = ""; - _tmp$1 = i.Op === 4; - prefix = _tmp; - complete = _tmp$1; - return [prefix, complete]; - } - buf = new strings.Builder.ptr(ptrType$1.nil, sliceType$5.nil); - while (true) { - if (!((i.op() === 7) && (i.Rune.$length === 1) && (((((i.Arg << 16 >>> 16)) & 1) >>> 0) === 0) && !(((x = i.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) === 65533)))) { break; } - buf.WriteRune((x$1 = i.Rune, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0]))); - i = p.skipNop(i.Out); - } - _tmp$2 = buf.String(); - _tmp$3 = i.Op === 4; - prefix = _tmp$2; - complete = _tmp$3; - return [prefix, complete]; + p.leadComment = ptrType$34.nil; + p.lineComment = ptrType$34.nil; + prev = p.pos; + $r = p.next0(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (p.tok === 2) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (p.tok === 2) { */ case 2: + comment = ptrType$34.nil; + endline = 0; + _r = p.file.Line(p.pos); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = p.file.Line(prev); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r === _r$1) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_r === _r$1) { */ case 4: + _r$2 = p.consumeCommentGroup(0); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = _r$2; + comment = _tuple[0]; + endline = _tuple[1]; + _r$3 = p.file.Line(p.pos); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!((_r$3 === endline)) || (p.tok === 57) || (p.tok === 1)) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!((_r$3 === endline)) || (p.tok === 57) || (p.tok === 1)) { */ case 9: + p.lineComment = comment; + /* } */ case 10: + /* } */ case 5: + endline = -1; + /* while (true) { */ case 12: + /* if (!(p.tok === 2)) { break; } */ if(!(p.tok === 2)) { $s = 13; continue; } + _r$4 = p.consumeCommentGroup(1); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$1 = _r$4; + comment = _tuple$1[0]; + endline = _tuple$1[1]; + $s = 12; continue; + case 13: + _r$5 = p.file.Line(p.pos); /* */ $s = 17; case 17: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if ((endline + 1 >> 0) === _r$5) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if ((endline + 1 >> 0) === _r$5) { */ case 15: + p.leadComment = comment; + /* } */ case 16: + /* } */ case 3: + $s = -1; return; + /* */ } return; } var $f = {$blk: next, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, comment, endline, p, prev, $s};return $f; }; - $ptrType(Prog).prototype.StartCond = function StartCond() { - var _1, flag, i, p, pc, x, x$1; + $ptrType(parser).prototype.error = function error(pos, msg) { + var {_r, _r$1, epos, msg, n, p, pos, x, x$1, x$2, $s, $deferred, $r, $c} = $restore(this, {pos, msg}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); p = this; - flag = 0; - pc = ((p.Start >>> 0)); - i = (x = p.Inst, ((pc < 0 || pc >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pc])); - Loop: - while (true) { - _1 = i.Op; - if (_1 === (3)) { - flag = (flag | (((i.Arg << 24 >>> 24)))) >>> 0; - } else if (_1 === (5)) { - return 255; - } else if ((_1 === (2)) || (_1 === (6))) { - } else { - break Loop; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "error: " + msg); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.file.Position(pos); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + epos = $clone(_r$1, token.Position); + /* */ if (((p.mode & 32) >>> 0) === 0) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (((p.mode & 32) >>> 0) === 0) { */ case 5: + n = p.errors.$length; + /* */ if (n > 0 && ((x = p.errors, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Pos.Line === epos.Line)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (n > 0 && ((x = p.errors, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Pos.Line === epos.Line)) { */ case 7: + $s = 9; case 9: return; + /* } */ case 8: + if (n > 10) { + $panic((x$2 = new bailout.ptr(0, ""), new x$2.constructor.elem(x$2))); } - pc = i.Out; - i = (x$1 = p.Inst, ((pc < 0 || pc >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + pc])); - } - return flag; - }; - $ptrType(Inst).prototype.MatchRune = function MatchRune(r) { - var i, r; - i = this; - return !((i.MatchRunePos(r) === -1)); + /* } */ case 6: + (p === ptrType$31.nil && $throwNilPointerError(), (p.$ptr_errors || (p.$ptr_errors = new ptrType$32(function() { return this.$target.errors; }, function($v) { this.$target.errors = $v; }, p)))).Add($clone(epos, token.Position), msg); + $s = -1; return; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: error, $c: true, $r, _r, _r$1, epos, msg, n, p, pos, x, x$1, x$2, $s, $deferred};return $f; } } }; - $ptrType(Inst).prototype.MatchRunePos = function MatchRunePos(r) { - var _1, _q, _q$1, _q$2, c, hi, i, j, lo, m, r, r0, r1, rune, x, x$1, x$2; - i = this; - rune = i.Rune; - _1 = rune.$length; - if (_1 === (0)) { - return -1; - } else if (_1 === (1)) { - r0 = (0 >= rune.$length ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + 0]); - if (r === r0) { - return 0; - } - if (!((((((i.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { - r1 = unicode.SimpleFold(r0); - while (true) { - if (!(!((r1 === r0)))) { break; } - if (r === r1) { - return 0; - } - r1 = unicode.SimpleFold(r1); - } - } - return -1; - } else if (_1 === (2)) { - if (r >= (0 >= rune.$length ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + 0]) && r <= (1 >= rune.$length ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + 1])) { - return 0; - } - return -1; - } else if ((_1 === (4)) || (_1 === (6)) || (_1 === (8))) { - j = 0; - while (true) { - if (!(j < rune.$length)) { break; } - if (r < ((j < 0 || j >= rune.$length) ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + j])) { - return -1; - } - if (r <= (x = j + 1 >> 0, ((x < 0 || x >= rune.$length) ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + x]))) { - return (_q = j / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); - } - j = j + (2) >> 0; - } - return -1; - } - lo = 0; - hi = (_q$1 = rune.$length / 2, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")); - while (true) { - if (!(lo < hi)) { break; } - m = lo + (_q$2 = ((hi - lo >> 0)) / 2, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero")) >> 0; - c = (x$1 = $imul(2, m), ((x$1 < 0 || x$1 >= rune.$length) ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + x$1])); - if (c <= r) { - if (r <= (x$2 = ($imul(2, m)) + 1 >> 0, ((x$2 < 0 || x$2 >= rune.$length) ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + x$2]))) { - return m; - } - lo = m + 1 >> 0; + $ptrType(parser).prototype.errorExpected = function errorExpected(pos, msg) { + var {msg, p, pos, $s, $r, $c} = $restore(this, {pos, msg}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + msg = "expected " + msg; + if (pos === p.pos) { + if ((p.tok === 57) && p.lit === "\n") { + msg = msg + (", found newline"); + } else if (new token.Token(p.tok).IsLiteral()) { + msg = msg + (", found " + p.lit); } else { - hi = m; + msg = msg + (", found '" + new token.Token(p.tok).String() + "'"); } } - return -1; + $r = p.error(pos, msg); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: errorExpected, $c: true, $r, msg, p, pos, $s};return $f; }; - $ptrType(Inst).prototype.MatchEmptyWidth = function MatchEmptyWidth(before, after) { - var _1, after, before, i; - i = this; - _1 = ((i.Arg << 24 >>> 24)); - if (_1 === (1)) { - return (before === 10) || (before === -1); - } else if (_1 === (2)) { - return (after === 10) || (after === -1); - } else if (_1 === (4)) { - return before === -1; - } else if (_1 === (8)) { - return after === -1; - } else if (_1 === (16)) { - return !(IsWordChar(before) === IsWordChar(after)); - } else if (_1 === (32)) { - return IsWordChar(before) === IsWordChar(after); - } - $panic(new $String("unknown empty width arg")); + $ptrType(parser).prototype.expect = function expect(tok) { + var {p, pos, tok, $s, $r, $c} = $restore(this, {tok}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + pos = p.pos; + /* */ if (!((p.tok === tok))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((p.tok === tok))) { */ case 1: + $r = p.errorExpected(pos, "'" + new token.Token(tok).String() + "'"); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $r = p.next(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return pos; + /* */ } return; } var $f = {$blk: expect, $c: true, $r, p, pos, tok, $s};return $f; }; - $ptrType(Inst).prototype.String = function String$3() { - var b, i; - i = this; - b = new strings.Builder.ptr(ptrType$1.nil, sliceType$5.nil); - dumpInst(b, i); - return b.String(); + $ptrType(parser).prototype.expect2 = function expect2(tok) { + var {p, pos, tok, $s, $r, $c} = $restore(this, {tok}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + pos = 0; + p = this; + /* */ if (p.tok === tok) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.tok === tok) { */ case 1: + pos = p.pos; + $s = 3; continue; + /* } else { */ case 2: + $r = p.errorExpected(p.pos, "'" + new token.Token(tok).String() + "'"); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 3: + $r = p.next(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return pos; + /* */ } return; } var $f = {$blk: expect2, $c: true, $r, p, pos, tok, $s};return $f; }; - bw = function bw$1(b, args) { - var _i, _ref, args, b, s; - _ref = args; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - b.WriteString(s); - _i++; - } + $ptrType(parser).prototype.expectClosing = function expectClosing(tok, context) { + var {$24r, _r, context, p, tok, $s, $r, $c} = $restore(this, {tok, context}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + /* */ if (!((p.tok === tok)) && (p.tok === 57) && p.lit === "\n") { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((p.tok === tok)) && (p.tok === 57) && p.lit === "\n") { */ case 1: + $r = p.error(p.pos, "missing ',' before newline in " + context); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.next(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + _r = p.expect(tok); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 6; case 6: return $24r; + /* */ } return; } var $f = {$blk: expectClosing, $c: true, $r, $24r, _r, context, p, tok, $s};return $f; }; - dumpProg = function dumpProg$1(b, p) { - var _i, _ref, b, i, j, p, pc, x; - _ref = p.Inst; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - j = _i; - i = (x = p.Inst, ((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + j])); - pc = strconv.Itoa(j); - if (pc.length < 3) { - b.WriteString($substring(" ", pc.length)); + $ptrType(parser).prototype.expectSemi = function expectSemi() { + var {_1, comment, p, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + comment = ptrType$34.nil; + p = this; + /* */ if (!((p.tok === 54)) && !((p.tok === 56))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((p.tok === 54)) && !((p.tok === 56))) { */ case 1: + _1 = p.tok; + /* */ if (_1 === (52)) { $s = 4; continue; } + /* */ if (_1 === (57)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_1 === (52)) { */ case 4: + $r = p.errorExpected(p.pos, "';'"); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (p.lit === ";") { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (p.lit === ";") { */ case 9: + $r = p.next(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + comment = p.lineComment; + $s = 11; continue; + /* } else { */ case 10: + comment = p.lineComment; + $r = p.next(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 11: + comment = comment; + $s = -1; return comment; + /* } else if (_1 === (57)) { */ case 5: + /* */ if (p.lit === ";") { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (p.lit === ";") { */ case 14: + $r = p.next(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + comment = p.lineComment; + $s = 16; continue; + /* } else { */ case 15: + comment = p.lineComment; + $r = p.next(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 16: + comment = comment; + $s = -1; return comment; + /* } else { */ case 6: + $r = p.errorExpected(p.pos, "';'"); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.advance(stmtStart); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 7: + case 3: + /* } */ case 2: + comment = ptrType$34.nil; + $s = -1; return comment; + /* */ } return; } var $f = {$blk: expectSemi, $c: true, $r, _1, comment, p, $s};return $f; + }; + $ptrType(parser).prototype.atComma = function atComma(context, follow) { + var {context, follow, msg, p, $s, $r, $c} = $restore(this, {context, follow}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + if (p.tok === 52) { + $s = -1; return true; + } + /* */ if (!((p.tok === follow))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((p.tok === follow))) { */ case 1: + msg = "missing ','"; + if ((p.tok === 57) && p.lit === "\n") { + msg = msg + (" before newline"); } - if (j === p.Start) { - pc = pc + ("*"); + $r = p.error(p.pos, msg + " in " + context); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return true; + /* } */ case 2: + $s = -1; return false; + /* */ } return; } var $f = {$blk: atComma, $c: true, $r, context, follow, msg, p, $s};return $f; + }; + assert = function assert$1(cond, msg) { + var cond, msg; + if (!cond) { + $panic(new $String("go/parser internal error: " + msg)); + } + }; + $ptrType(parser).prototype.advance = function advance(to) { + var {_entry, p, to, $s, $r, $c} = $restore(this, {to}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + /* while (true) { */ case 1: + /* if (!(!((p.tok === 1)))) { break; } */ if(!(!((p.tok === 1)))) { $s = 2; continue; } + if ((_entry = $mapIndex(to,token.Token.keyFor(p.tok)), _entry !== undefined ? _entry.v : false)) { + if ((p.pos === p.syncPos) && p.syncCnt < 10) { + p.syncCnt = p.syncCnt + (1) >> 0; + $s = -1; return; + } + if (p.pos > p.syncPos) { + p.syncPos = p.pos; + p.syncCnt = 0; + $s = -1; return; + } } - bw(b, new sliceType([pc, "\t"])); - dumpInst(b, i); - bw(b, new sliceType(["\n"])); - _i++; - } + $r = p.next(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: advance, $c: true, $r, _entry, p, to, $s};return $f; }; - u32 = function u32$1(i) { - var i; - return strconv.FormatUint((new $Uint64(0, i)), 10); + $ptrType(parser).prototype.safePos = function safePos(pos) { + var {_r, p, pos, res, $s, $deferred, $r, $c} = $restore(this, {pos}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = [p]; + res = [res]; + res[0] = 0; + p[0] = this; + $deferred.push([(function(p, res) { return function parser·safePos·func1() { + if (!($interfaceIsEqual($recover(), $ifaceNil))) { + res[0] = (((p[0].file.Base() + p[0].file.Size() >> 0) >> 0)); + } + }; })(p, res), []]); + _r = p[0].file.Offset(pos); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $unused(_r); + res[0] = pos; + $s = -1; return res[0]; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return res[0]; } if($curGoroutine.asleep) { var $f = {$blk: safePos, $c: true, $r, _r, p, pos, res, $s, $deferred};return $f; } } }; - dumpInst = function dumpInst$1(b, i) { - var _1, b, i; - _1 = i.Op; - if (_1 === (0)) { - bw(b, new sliceType(["alt -> ", u32(i.Out), ", ", u32(i.Arg)])); - } else if (_1 === (1)) { - bw(b, new sliceType(["altmatch -> ", u32(i.Out), ", ", u32(i.Arg)])); - } else if (_1 === (2)) { - bw(b, new sliceType(["cap ", u32(i.Arg), " -> ", u32(i.Out)])); - } else if (_1 === (3)) { - bw(b, new sliceType(["empty ", u32(i.Arg), " -> ", u32(i.Out)])); - } else if (_1 === (4)) { - bw(b, new sliceType(["match"])); - } else if (_1 === (5)) { - bw(b, new sliceType(["fail"])); - } else if (_1 === (6)) { - bw(b, new sliceType(["nop -> ", u32(i.Out)])); - } else if (_1 === (7)) { - if (i.Rune === sliceType$1.nil) { - bw(b, new sliceType(["rune "])); - } - bw(b, new sliceType(["rune ", strconv.QuoteToASCII(($runesToString(i.Rune)))])); - if (!((((((i.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { - bw(b, new sliceType(["/i"])); - } - bw(b, new sliceType([" -> ", u32(i.Out)])); - } else if (_1 === (8)) { - bw(b, new sliceType(["rune1 ", strconv.QuoteToASCII(($runesToString(i.Rune))), " -> ", u32(i.Out)])); - } else if (_1 === (9)) { - bw(b, new sliceType(["any -> ", u32(i.Out)])); - } else if (_1 === (10)) { - bw(b, new sliceType(["anynotnl -> ", u32(i.Out)])); - } + $ptrType(parser).prototype.parseIdent = function parseIdent() { + var {_r, name, p, pos, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + pos = p.pos; + name = "_"; + /* */ if (p.tok === 4) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.tok === 4) { */ case 1: + name = p.lit; + $r = p.next(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 3; continue; + /* } else { */ case 2: + _r = p.expect(4); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + /* } */ case 3: + $s = -1; return new ast.Ident.ptr(pos, name, ptrType$3.nil); + /* */ } return; } var $f = {$blk: parseIdent, $c: true, $r, _r, name, p, pos, $s};return $f; }; - $ptrType(Error).prototype.Error = function Error$1() { - var e; - e = this; - return "error parsing regexp: " + new ErrorCode(e.Code).String() + ": `" + e.Expr + "`"; + $ptrType(parser).prototype.parseIdentList = function parseIdentList() { + var {$24r, _r, _r$1, _r$2, list, p, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + list = sliceType.nil; + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "IdentList"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.parseIdent(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + list = $append(list, _r$1); + /* while (true) { */ case 5: + /* if (!(p.tok === 52)) { break; } */ if(!(p.tok === 52)) { $s = 6; continue; } + $r = p.next(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = p.parseIdent(); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + list = $append(list, _r$2); + $s = 5; continue; + case 6: + $24r = list; + $s = 9; case 9: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return list; } if($curGoroutine.asleep) { var $f = {$blk: parseIdentList, $c: true, $r, $24r, _r, _r$1, _r$2, list, p, $s, $deferred};return $f; } } }; - ErrorCode.prototype.String = function String$4() { - var e; - e = this.$val; - return (e); + $ptrType(parser).prototype.parseExprList = function parseExprList() { + var {$24r, _r, _r$1, _r$2, list, p, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + list = sliceType$3.nil; + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "ExpressionList"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.parseExpr(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + list = $append(list, _r$1); + /* while (true) { */ case 5: + /* if (!(p.tok === 52)) { break; } */ if(!(p.tok === 52)) { $s = 6; continue; } + $r = p.next(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = p.parseExpr(); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + list = $append(list, _r$2); + $s = 5; continue; + case 6: + $24r = list; + $s = 9; case 9: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return list; } if($curGoroutine.asleep) { var $f = {$blk: parseExprList, $c: true, $r, $24r, _r, _r$1, _r$2, list, p, $s, $deferred};return $f; } } }; - $ptrType(ErrorCode).prototype.String = function(...$args) { return new ErrorCode(this.$get()).String(...$args); }; - $ptrType(parser).prototype.newRegexp = function newRegexp(op$1) { - var op$1, p, re; + $ptrType(parser).prototype.parseList = function parseList(inRhs) { + var {_r, inRhs, list, old, p, $s, $r, $c} = $restore(this, {inRhs}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: p = this; - re = p.free; - if (!(re === ptrType.nil)) { - p.free = re.Sub0[0]; - Regexp.copy(re, new Regexp.ptr(0, 0, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, "")); - } else { - re = new Regexp.ptr(0, 0, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, ""); - p.numRegexp = p.numRegexp + (1) >> 0; - } - re.Op = op$1; - return re; + old = p.inRhs; + p.inRhs = inRhs; + _r = p.parseExprList(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + list = _r; + p.inRhs = old; + $s = -1; return list; + /* */ } return; } var $f = {$blk: parseList, $c: true, $r, _r, inRhs, list, old, p, $s};return $f; }; - $ptrType(parser).prototype.reuse = function reuse(re) { - var p, re; + $ptrType(parser).prototype.parseType = function parseType() { + var {$24r, $24r$1, _r, _r$1, p, pos, typ, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); p = this; - if (!(p.height === false)) { - $mapDelete(p.height, ptrType.keyFor(re)); - } - re.Sub0[0] = p.free; - p.free = re; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "Type"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.tryIdentOrType(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + typ = _r$1; + /* */ if ($interfaceIsEqual(typ, $ifaceNil)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if ($interfaceIsEqual(typ, $ifaceNil)) { */ case 5: + pos = p.pos; + $r = p.errorExpected(pos, "type"); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.advance(exprEnd); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $24r = new ast.BadExpr.ptr(pos, p.pos); + $s = 9; case 9: return $24r; + /* } */ case 6: + $24r$1 = typ; + $s = 10; case 10: return $24r$1; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseType, $c: true, $r, $24r, $24r$1, _r, _r$1, p, pos, typ, $s, $deferred};return $f; } } }; - $ptrType(parser).prototype.checkLimits = function checkLimits(re) { - var p, re; + $ptrType(parser).prototype.parseQualifiedIdent = function parseQualifiedIdent(ident) { + var {$24r, _r, _r$1, _r$2, ident, p, typ, $s, $deferred, $r, $c} = $restore(this, {ident}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); p = this; - if (p.numRunes > 33554432) { - $panic(new ErrorCode("expression too large")); - } - p.checkSize(re); - p.checkHeight(re); + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "QualifiedIdent"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.parseTypeName(ident); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + typ = _r$1; + /* */ if (p.tok === 50) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (p.tok === 50) { */ case 5: + _r$2 = p.parseTypeInstance(typ); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + typ = _r$2; + /* } */ case 6: + $24r = typ; + $s = 8; case 8: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseQualifiedIdent, $c: true, $r, $24r, _r, _r$1, _r$2, ident, p, typ, $s, $deferred};return $f; } } }; - $ptrType(parser).prototype.checkSize = function checkSize(re) { - var _i, _ref, n, p, re, re$1, x, x$1, x$2, x$3, x$4, x$5; + $ptrType(parser).prototype.parseTypeName = function parseTypeName(ident) { + var {$24r, $24r$1, _r, _r$1, _r$2, ident, p, sel, $s, $deferred, $r, $c} = $restore(this, {ident}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); p = this; - if (p.size === false) { - if ((x = p.repeats, (x.$high === 0 && x.$low === 0))) { - p.repeats = new $Int64(0, 1); - } - if (re.Op === 17) { - n = re.Max; - if (n === -1) { - n = re.Min; - } - if (n <= 0) { - n = 1; - } - if ((x$1 = (new $Int64(0, n)), x$2 = $div64(new $Int64(0, 3355443), p.repeats, false), (x$1.$high > x$2.$high || (x$1.$high === x$2.$high && x$1.$low > x$2.$low)))) { - p.repeats = new $Int64(0, 3355443); - } else { - p.repeats = $mul64(p.repeats, ((new $Int64(0, n)))); - } - } - if ((x$3 = (new $Int64(0, p.numRegexp)), x$4 = $div64(new $Int64(0, 3355443), p.repeats, false), (x$3.$high < x$4.$high || (x$3.$high === x$4.$high && x$3.$low < x$4.$low)))) { - return; - } - p.size = new $global.Map(); - _ref = p.stack; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - re$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - p.checkSize(re$1); - _i++; - } - } - if ((x$5 = p.calcSize(re, true), (x$5.$high > 0 || (x$5.$high === 0 && x$5.$low > 3355443)))) { - $panic(new ErrorCode("expression too large")); - } + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "TypeName"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + /* */ if (ident === ptrType$2.nil) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (ident === ptrType$2.nil) { */ case 4: + _r$1 = p.parseIdent(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + ident = _r$1; + /* } */ case 5: + /* */ if (p.tok === 53) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (p.tok === 53) { */ case 7: + $r = p.next(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = p.parseIdent(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + sel = _r$2; + $24r = new ast.SelectorExpr.ptr(ident, sel); + $s = 11; case 11: return $24r; + /* } */ case 8: + $24r$1 = ident; + $s = 12; case 12: return $24r$1; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseTypeName, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, ident, p, sel, $s, $deferred};return $f; } } }; - $ptrType(parser).prototype.calcSize = function calcSize(re, force) { - var _1, _entry, _i, _i$1, _key, _ref, _ref$1, _tuple, force, ok, p, re, size, size$1, sub, sub$1, sub$2, x, x$1, x$10, x$11, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + $ptrType(parser).prototype.parseArrayType = function parseArrayType(lbrack, len) { + var {$24r, _r, _r$1, _r$2, _r$3, elt, lbrack, len, p, $s, $deferred, $r, $c} = $restore(this, {lbrack, len}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); p = this; - if (!force) { - _tuple = (_entry = $mapIndex(p.size,ptrType.keyFor(re)), _entry !== undefined ? [_entry.v, true] : [new $Int64(0, 0), false]); - size = _tuple[0]; - ok = _tuple[1]; - if (ok) { - return size; - } - } - size$1 = new $Int64(0, 0); - switch (0) { default: - _1 = re.Op; - if (_1 === (3)) { - size$1 = (new $Int64(0, re.Rune.$length)); - } else if ((_1 === (13)) || (_1 === (14))) { - size$1 = (x = p.calcSize((x$1 = re.Sub, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])), false), new $Int64(0 + x.$high, 2 + x.$low)); - } else if ((_1 === (15)) || (_1 === (16))) { - size$1 = (x$2 = p.calcSize((x$3 = re.Sub, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])), false), new $Int64(0 + x$2.$high, 1 + x$2.$low)); - } else if (_1 === (18)) { - _ref = re.Sub; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - size$1 = (x$4 = p.calcSize(sub, false), new $Int64(size$1.$high + x$4.$high, size$1.$low + x$4.$low)); - _i++; - } - } else if (_1 === (19)) { - _ref$1 = re.Sub; - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - sub$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - size$1 = (x$5 = p.calcSize(sub$1, false), new $Int64(size$1.$high + x$5.$high, size$1.$low + x$5.$low)); - _i$1++; - } - if (re.Sub.$length > 1) { - size$1 = (x$6 = (x$7 = (new $Int64(0, re.Sub.$length)), new $Int64(x$7.$high - 0, x$7.$low - 1)), new $Int64(size$1.$high + x$6.$high, size$1.$low + x$6.$low)); - } - } else if (_1 === (17)) { - sub$2 = p.calcSize((x$8 = re.Sub, (0 >= x$8.$length ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + 0])), false); - if (re.Max === -1) { - if (re.Min === 0) { - size$1 = new $Int64(0 + sub$2.$high, 2 + sub$2.$low); - } else { - size$1 = (x$9 = $mul64((new $Int64(0, re.Min)), sub$2), new $Int64(0 + x$9.$high, 1 + x$9.$low)); - } - break; - } - size$1 = (x$10 = $mul64((new $Int64(0, re.Max)), sub$2), x$11 = (new $Int64(0, (re.Max - re.Min >> 0))), new $Int64(x$10.$high + x$11.$high, x$10.$low + x$11.$low)); - } - } - if ((size$1.$high < 0 || (size$1.$high === 0 && size$1.$low < 1))) { - size$1 = new $Int64(0, 1); - } - _key = re; (p.size || $throwRuntimeError("assignment to entry in nil map")).set(ptrType.keyFor(_key), { k: _key, v: size$1 }); - return size$1; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "ArrayType"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + /* */ if ($interfaceIsEqual(len, $ifaceNil)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ($interfaceIsEqual(len, $ifaceNil)) { */ case 4: + p.exprLev = p.exprLev + (1) >> 0; + /* */ if (p.tok === 48) { $s = 6; continue; } + /* */ if (!((p.tok === 55))) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (p.tok === 48) { */ case 6: + len = new ast.Ellipsis.ptr(p.pos, $ifaceNil); + $r = p.next(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 8; continue; + /* } else if (!((p.tok === 55))) { */ case 7: + _r$1 = p.parseRhs(); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + len = _r$1; + /* } */ case 8: + p.exprLev = p.exprLev - (1) >> 0; + /* } */ case 5: + /* */ if (p.tok === 52) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (p.tok === 52) { */ case 11: + $r = p.error(p.pos, "unexpected comma; expecting ]"); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.next(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 12: + _r$2 = p.expect(55); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + _r$3 = p.parseType(); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + elt = _r$3; + $24r = new ast.ArrayType.ptr(lbrack, len, elt); + $s = 17; case 17: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$35.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseArrayType, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, elt, lbrack, len, p, $s, $deferred};return $f; } } }; - $ptrType(parser).prototype.checkHeight = function checkHeight(re) { - var _i, _ref, p, re, re$1; + $ptrType(parser).prototype.parseArrayFieldOrTypeInstance = function parseArrayFieldOrTypeInstance(x) { + var {$24r, $24r$1, $24r$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, args, comma, elt, elt$1, lbrack, p, rbrack, trailingComma, x, $s, $deferred, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); p = this; - if (p.numRegexp < 1000) { - return; - } - if (p.height === false) { - p.height = new $global.Map(); - _ref = p.stack; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - re$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - p.checkHeight(re$1); - _i++; - } - } - if (p.calcHeight(re, true) > 1000) { - $panic(new ErrorCode("expression nests too deeply")); - } + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "ArrayFieldOrTypeInstance"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.expect(50); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + lbrack = _r$1; + trailingComma = 0; + args = sliceType$3.nil; + /* */ if (!((p.tok === 55))) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!((p.tok === 55))) { */ case 5: + p.exprLev = p.exprLev + (1) >> 0; + _r$2 = p.parseRhs(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + args = $append(args, _r$2); + /* while (true) { */ case 8: + /* if (!(p.tok === 52)) { break; } */ if(!(p.tok === 52)) { $s = 9; continue; } + comma = p.pos; + $r = p.next(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (p.tok === 55) { + trailingComma = comma; + /* break; */ $s = 9; continue; + } + _r$3 = p.parseRhs(); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + args = $append(args, _r$3); + $s = 8; continue; + case 9: + p.exprLev = p.exprLev - (1) >> 0; + /* } */ case 6: + _r$4 = p.expect(55); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + rbrack = _r$4; + /* */ if (args.$length === 0) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (args.$length === 0) { */ case 13: + _r$5 = p.parseType(); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + elt = _r$5; + $24r = [x, new ast.ArrayType.ptr(lbrack, $ifaceNil, elt)]; + $s = 16; case 16: return $24r; + /* } */ case 14: + /* */ if (args.$length === 1) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (args.$length === 1) { */ case 17: + _r$6 = p.tryIdentOrType(); /* */ $s = 19; case 19: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + elt$1 = _r$6; + /* */ if (!($interfaceIsEqual(elt$1, $ifaceNil))) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (!($interfaceIsEqual(elt$1, $ifaceNil))) { */ case 20: + /* */ if (new token.Pos(trailingComma).IsValid()) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (new token.Pos(trailingComma).IsValid()) { */ case 22: + $r = p.error(trailingComma, "unexpected comma; expecting ]"); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 23: + $24r$1 = [x, new ast.ArrayType.ptr(lbrack, (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), elt$1)]; + $s = 25; case 25: return $24r$1; + /* } */ case 21: + /* } */ case 18: + $24r$2 = [ptrType$2.nil, typeparams.PackIndexExpr(x, lbrack, args, rbrack)]; + $s = 26; case 26: return $24r$2; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [ptrType$2.nil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseArrayFieldOrTypeInstance, $c: true, $r, $24r, $24r$1, $24r$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, args, comma, elt, elt$1, lbrack, p, rbrack, trailingComma, x, $s, $deferred};return $f; } } }; - $ptrType(parser).prototype.calcHeight = function calcHeight(re, force) { - var _entry, _i, _key, _ref, _tuple, force, h, h$1, hsub, ok, p, re, sub; + $ptrType(parser).prototype.parseFieldDecl = function parseFieldDecl() { + var {$24r, _1, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, comment, doc, field$1, name, names, p, pos, star, star$1, tag, typ, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); p = this; - if (!force) { - _tuple = (_entry = $mapIndex(p.height,ptrType.keyFor(re)), _entry !== undefined ? [_entry.v, true] : [0, false]); - h = _tuple[0]; - ok = _tuple[1]; - if (ok) { - return h; - } - } - h$1 = 1; - _ref = re.Sub; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - hsub = p.calcHeight(sub, false); - if (h$1 < (1 + hsub >> 0)) { - h$1 = 1 + hsub >> 0; - } - _i++; - } - _key = re; (p.height || $throwRuntimeError("assignment to entry in nil map")).set(ptrType.keyFor(_key), { k: _key, v: h$1 }); - return h$1; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "FieldDecl"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + doc = p.leadComment; + names = sliceType.nil; + typ = $ifaceNil; + _1 = p.tok; + /* */ if (_1 === (4)) { $s = 5; continue; } + /* */ if (_1 === (14)) { $s = 6; continue; } + /* */ if (_1 === (49)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (_1 === (4)) { */ case 5: + _r$1 = p.parseIdent(); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + name = _r$1; + /* */ if ((p.tok === 53) || (p.tok === 9) || (p.tok === 57) || (p.tok === 56)) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if ((p.tok === 53) || (p.tok === 9) || (p.tok === 57) || (p.tok === 56)) { */ case 11: + typ = name; + /* */ if (p.tok === 53) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (p.tok === 53) { */ case 14: + _r$2 = p.parseQualifiedIdent(name); /* */ $s = 16; case 16: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + typ = _r$2; + /* } */ case 15: + $s = 13; continue; + /* } else { */ case 12: + names = new sliceType([name]); + /* while (true) { */ case 17: + /* if (!(p.tok === 52)) { break; } */ if(!(p.tok === 52)) { $s = 18; continue; } + $r = p.next(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$3 = p.parseIdent(); /* */ $s = 20; case 20: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + names = $append(names, _r$3); + $s = 17; continue; + case 18: + /* */ if ((names.$length === 1) && (p.tok === 50)) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if ((names.$length === 1) && (p.tok === 50)) { */ case 21: + _r$4 = p.parseArrayFieldOrTypeInstance(name); /* */ $s = 24; case 24: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple = _r$4; + name = _tuple[0]; + typ = _tuple[1]; + if (name === ptrType$2.nil) { + names = sliceType.nil; + } + $s = 23; continue; + /* } else { */ case 22: + _r$5 = p.parseType(); /* */ $s = 25; case 25: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + typ = _r$5; + /* } */ case 23: + /* } */ case 13: + $s = 9; continue; + /* } else if (_1 === (14)) { */ case 6: + star = p.pos; + $r = p.next(); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (p.tok === 49) { $s = 27; continue; } + /* */ $s = 28; continue; + /* if (p.tok === 49) { */ case 27: + $r = p.error(p.pos, "cannot parenthesize embedded type"); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.next(); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$6 = p.parseQualifiedIdent(ptrType$2.nil); /* */ $s = 32; case 32: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + typ = _r$6; + /* */ if (p.tok === 54) { $s = 33; continue; } + /* */ $s = 34; continue; + /* if (p.tok === 54) { */ case 33: + $r = p.next(); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 34: + $s = 29; continue; + /* } else { */ case 28: + _r$7 = p.parseQualifiedIdent(ptrType$2.nil); /* */ $s = 36; case 36: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + typ = _r$7; + /* } */ case 29: + typ = new ast.StarExpr.ptr(star, typ); + $s = 9; continue; + /* } else if (_1 === (49)) { */ case 7: + $r = p.error(p.pos, "cannot parenthesize embedded type"); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.next(); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (p.tok === 14) { $s = 39; continue; } + /* */ $s = 40; continue; + /* if (p.tok === 14) { */ case 39: + star$1 = p.pos; + $r = p.next(); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$8 = p.parseQualifiedIdent(ptrType$2.nil); /* */ $s = 43; case 43: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + typ = new ast.StarExpr.ptr(star$1, _r$8); + $s = 41; continue; + /* } else { */ case 40: + _r$9 = p.parseQualifiedIdent(ptrType$2.nil); /* */ $s = 44; case 44: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + typ = _r$9; + /* } */ case 41: + /* */ if (p.tok === 54) { $s = 45; continue; } + /* */ $s = 46; continue; + /* if (p.tok === 54) { */ case 45: + $r = p.next(); /* */ $s = 47; case 47: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 46: + $s = 9; continue; + /* } else { */ case 8: + pos = p.pos; + $r = p.errorExpected(pos, "field name or embedded type"); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.advance(exprEnd); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + typ = new ast.BadExpr.ptr(pos, p.pos); + /* } */ case 9: + case 4: + tag = ptrType$36.nil; + /* */ if (p.tok === 9) { $s = 50; continue; } + /* */ $s = 51; continue; + /* if (p.tok === 9) { */ case 50: + tag = new ast.BasicLit.ptr(p.pos, p.tok, p.lit); + $r = p.next(); /* */ $s = 52; case 52: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 51: + _r$10 = p.expectSemi(); /* */ $s = 53; case 53: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + comment = _r$10; + field$1 = new ast.Field.ptr(doc, names, typ, tag, comment); + $24r = field$1; + $s = 54; case 54: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$37.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseFieldDecl, $c: true, $r, $24r, _1, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, comment, doc, field$1, name, names, p, pos, star, star$1, tag, typ, $s, $deferred};return $f; } } }; - $ptrType(parser).prototype.push = function push(re) { - var p, re, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + $ptrType(parser).prototype.parseStructType = function parseStructType() { + var {$24r, _r, _r$1, _r$2, _r$3, _r$4, lbrace, list, p, pos, rbrace, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); p = this; - p.numRunes = p.numRunes + (re.Rune.$length) >> 0; - if ((re.Op === 4) && (re.Rune.$length === 2) && ((x = re.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) === (x$1 = re.Rune, (1 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 1])))) { - if (p.maybeConcat((x$16 = re.Rune, (0 >= x$16.$length ? ($throwRuntimeError("index out of range"), undefined) : x$16.$array[x$16.$offset + 0])), (p.flags & ~1) << 16 >>> 16)) { - return ptrType.nil; - } - re.Op = 3; - re.Rune = $subslice(re.Rune, 0, 1); - re.Flags = (p.flags & ~1) << 16 >>> 16; - } else if ((re.Op === 4) && (re.Rune.$length === 4) && ((x$2 = re.Rune, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])) === (x$3 = re.Rune, (1 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 1]))) && ((x$4 = re.Rune, (2 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 2])) === (x$5 = re.Rune, (3 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 3]))) && (unicode.SimpleFold((x$6 = re.Rune, (0 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + 0]))) === (x$7 = re.Rune, (2 >= x$7.$length ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + 2]))) && (unicode.SimpleFold((x$8 = re.Rune, (2 >= x$8.$length ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + 2]))) === (x$9 = re.Rune, (0 >= x$9.$length ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + 0]))) || (re.Op === 4) && (re.Rune.$length === 2) && (((x$10 = re.Rune, (0 >= x$10.$length ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + 0])) + 1 >> 0) === (x$11 = re.Rune, (1 >= x$11.$length ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + 1]))) && (unicode.SimpleFold((x$12 = re.Rune, (0 >= x$12.$length ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + 0]))) === (x$13 = re.Rune, (1 >= x$13.$length ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + 1]))) && (unicode.SimpleFold((x$14 = re.Rune, (1 >= x$14.$length ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + 1]))) === (x$15 = re.Rune, (0 >= x$15.$length ? ($throwRuntimeError("index out of range"), undefined) : x$15.$array[x$15.$offset + 0])))) { - if (p.maybeConcat((x$17 = re.Rune, (0 >= x$17.$length ? ($throwRuntimeError("index out of range"), undefined) : x$17.$array[x$17.$offset + 0])), (p.flags | 1) >>> 0)) { - return ptrType.nil; - } - re.Op = 3; - re.Rune = $subslice(re.Rune, 0, 1); - re.Flags = (p.flags | 1) >>> 0; - } else { - p.maybeConcat(-1, 0); - } - p.stack = $append(p.stack, re); - p.checkLimits(re); - return re; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "StructType"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.expect(82); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + pos = _r$1; + _r$2 = p.expect(51); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + lbrace = _r$2; + list = sliceType$5.nil; + /* while (true) { */ case 6: + /* if (!((p.tok === 4) || (p.tok === 14) || (p.tok === 49))) { break; } */ if(!((p.tok === 4) || (p.tok === 14) || (p.tok === 49))) { $s = 7; continue; } + _r$3 = p.parseFieldDecl(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + list = $append(list, _r$3); + $s = 6; continue; + case 7: + _r$4 = p.expect(56); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + rbrace = _r$4; + $24r = new ast.StructType.ptr(pos, new ast.FieldList.ptr(lbrace, list, rbrace), false); + $s = 10; case 10: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$6.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseStructType, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, lbrace, list, p, pos, rbrace, $s, $deferred};return $f; } } }; - $ptrType(parser).prototype.maybeConcat = function maybeConcat(r, flags) { - var flags, n, p, r, re1, re2, x, x$1, x$2, x$3, x$4; + $ptrType(parser).prototype.parsePointerType = function parsePointerType() { + var {$24r, _r, _r$1, _r$2, base, p, star, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); p = this; - n = p.stack.$length; - if (n < 2) { - return false; - } - re1 = (x = p.stack, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); - re2 = (x$2 = p.stack, x$3 = n - 2 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])); - if (!((re1.Op === 3)) || !((re2.Op === 3)) || !((((re1.Flags & 1) >>> 0) === ((re2.Flags & 1) >>> 0)))) { - return false; - } - re2.Rune = $appendSlice(re2.Rune, re1.Rune); - if (r >= 0) { - re1.Rune = $subslice(new sliceType$1(re1.Rune0), 0, 1); - (x$4 = re1.Rune, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0] = r)); - re1.Flags = flags; - return true; - } - p.stack = $subslice(p.stack, 0, (n - 1 >> 0)); - p.reuse(re1); - return false; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "PointerType"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.expect(14); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + star = _r$1; + _r$2 = p.parseType(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + base = _r$2; + $24r = new ast.StarExpr.ptr(star, base); + $s = 6; case 6: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$28.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parsePointerType, $c: true, $r, $24r, _r, _r$1, _r$2, base, p, star, $s, $deferred};return $f; } } }; - $ptrType(parser).prototype.literal = function literal(r) { - var p, r, re; + $ptrType(parser).prototype.parseDotsType = function parseDotsType() { + var {$24r, _r, _r$1, _r$2, elt, p, pos, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); p = this; - re = p.newRegexp(3); - re.Flags = p.flags; - if (!((((p.flags & 1) >>> 0) === 0))) { - r = minFoldRune(r); - } - re.Rune0[0] = r; - re.Rune = $subslice(new sliceType$1(re.Rune0), 0, 1); - p.push(re); - }; - minFoldRune = function minFoldRune$1(r) { - var min, r, r0; - if (r < 65 || r > 125251) { - return r; - } - min = r; - r0 = r; - r = unicode.SimpleFold(r); - while (true) { - if (!(!((r === r0)))) { break; } - if (min > r) { - min = r; - } - r = unicode.SimpleFold(r); - } - return min; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "DotsType"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.expect(48); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + pos = _r$1; + _r$2 = p.parseType(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + elt = _r$2; + $24r = new ast.Ellipsis.ptr(pos, elt); + $s = 6; case 6: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$38.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseDotsType, $c: true, $r, $24r, _r, _r$1, _r$2, elt, p, pos, $s, $deferred};return $f; } } }; - $ptrType(parser).prototype.op = function op$1(op$2) { - var op$2, p, re; + $ptrType(parser).prototype.parseParamDecl = function parseParamDecl(name, typeSetsOK) { + var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, _1, _2, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, f, name, p, ptok, typeSetsOK, $s, $deferred, $r, $c} = $restore(this, {name, typeSetsOK}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + f = new field.ptr(ptrType$2.nil, $ifaceNil); p = this; - re = p.newRegexp(op$2); - re.Flags = p.flags; - return p.push(re); + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "ParamDeclOrNil"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + ptok = p.tok; + /* */ if (!(name === ptrType$2.nil)) { $s = 4; continue; } + /* */ if (typeSetsOK && (p.tok === 88)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!(name === ptrType$2.nil)) { */ case 4: + p.tok = 4; + $s = 6; continue; + /* } else if (typeSetsOK && (p.tok === 88)) { */ case 5: + _r$1 = p.embeddedElem($ifaceNil); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + field.copy(f, new field.ptr(ptrType$2.nil, _r$1)); + $24r = f; + $s = 8; case 8: return $24r; + /* } */ case 6: + _1 = p.tok; + /* */ if (_1 === (4)) { $s = 10; continue; } + /* */ if ((_1 === (14)) || (_1 === (36)) || (_1 === (71)) || (_1 === (50)) || (_1 === (63)) || (_1 === (77)) || (_1 === (82)) || (_1 === (76)) || (_1 === (49))) { $s = 11; continue; } + /* */ if (_1 === (48)) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (_1 === (4)) { */ case 10: + /* */ if (!(name === ptrType$2.nil)) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (!(name === ptrType$2.nil)) { */ case 15: + f.name = name; + p.tok = ptok; + $s = 17; continue; + /* } else { */ case 16: + _r$2 = p.parseIdent(); /* */ $s = 18; case 18: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + f.name = _r$2; + /* } */ case 17: + _2 = p.tok; + /* */ if ((_2 === (4)) || (_2 === (14)) || (_2 === (36)) || (_2 === (71)) || (_2 === (63)) || (_2 === (77)) || (_2 === (82)) || (_2 === (76)) || (_2 === (49))) { $s = 20; continue; } + /* */ if (_2 === (50)) { $s = 21; continue; } + /* */ if (_2 === (48)) { $s = 22; continue; } + /* */ if (_2 === (53)) { $s = 23; continue; } + /* */ if (_2 === (88)) { $s = 24; continue; } + /* */ if (_2 === (18)) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if ((_2 === (4)) || (_2 === (14)) || (_2 === (36)) || (_2 === (71)) || (_2 === (63)) || (_2 === (77)) || (_2 === (82)) || (_2 === (76)) || (_2 === (49))) { */ case 20: + _r$3 = p.parseType(); /* */ $s = 27; case 27: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + f.typ = _r$3; + $s = 26; continue; + /* } else if (_2 === (50)) { */ case 21: + _r$4 = p.parseArrayFieldOrTypeInstance(f.name); /* */ $s = 28; case 28: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple = _r$4; + f.name = _tuple[0]; + f.typ = _tuple[1]; + $s = 26; continue; + /* } else if (_2 === (48)) { */ case 22: + _r$5 = p.parseDotsType(); /* */ $s = 29; case 29: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + f.typ = _r$5; + $24r$1 = f; + $s = 30; case 30: return $24r$1; + /* } else if (_2 === (53)) { */ case 23: + _r$6 = p.parseQualifiedIdent(f.name); /* */ $s = 31; case 31: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + f.typ = _r$6; + f.name = ptrType$2.nil; + $s = 26; continue; + /* } else if (_2 === (88)) { */ case 24: + /* */ if (typeSetsOK) { $s = 32; continue; } + /* */ $s = 33; continue; + /* if (typeSetsOK) { */ case 32: + _r$7 = p.embeddedElem($ifaceNil); /* */ $s = 34; case 34: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + f.typ = _r$7; + $24r$2 = f; + $s = 35; case 35: return $24r$2; + /* } */ case 33: + $s = 26; continue; + /* } else if (_2 === (18)) { */ case 25: + /* */ if (typeSetsOK) { $s = 36; continue; } + /* */ $s = 37; continue; + /* if (typeSetsOK) { */ case 36: + _r$8 = p.embeddedElem(f.name); /* */ $s = 38; case 38: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + f.typ = _r$8; + f.name = ptrType$2.nil; + $24r$3 = f; + $s = 39; case 39: return $24r$3; + /* } */ case 37: + /* } */ case 26: + case 19: + $s = 14; continue; + /* } else if ((_1 === (14)) || (_1 === (36)) || (_1 === (71)) || (_1 === (50)) || (_1 === (63)) || (_1 === (77)) || (_1 === (82)) || (_1 === (76)) || (_1 === (49))) { */ case 11: + _r$9 = p.parseType(); /* */ $s = 40; case 40: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + f.typ = _r$9; + $s = 14; continue; + /* } else if (_1 === (48)) { */ case 12: + _r$10 = p.parseDotsType(); /* */ $s = 41; case 41: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + f.typ = _r$10; + $24r$4 = f; + $s = 42; case 42: return $24r$4; + /* } else { */ case 13: + $r = p.errorExpected(p.pos, "')'"); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.advance(exprEnd); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 14: + case 9: + /* */ if (typeSetsOK && (p.tok === 18) && !($interfaceIsEqual(f.typ, $ifaceNil))) { $s = 45; continue; } + /* */ $s = 46; continue; + /* if (typeSetsOK && (p.tok === 18) && !($interfaceIsEqual(f.typ, $ifaceNil))) { */ case 45: + _r$11 = p.embeddedElem(f.typ); /* */ $s = 47; case 47: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + f.typ = _r$11; + /* } */ case 46: + $24r$5 = f; + $s = 48; case 48: return $24r$5; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return f; } if($curGoroutine.asleep) { var $f = {$blk: parseParamDecl, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, _1, _2, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, f, name, p, ptok, typeSetsOK, $s, $deferred};return $f; } } }; - $ptrType(parser).prototype.repeat = function repeat(op$2, min, max, before, after, lastRepeat) { - var after, before, flags, lastRepeat, max, min, n, op$2, p, re, sub, x, x$1, x$2, x$3, x$4; + $ptrType(parser).prototype.parseParameterList = function parseParameterList(name0, typ0, closing) { + var {$24r, $24r$1, $24r$2, _i, _i$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, addParams, closing, i, i$1, list, missingName, n, name0, named, names, ok, p, par, par$1, par$2, par$3, par$4, params, pos, tparams, typ, typ$1, typ$2, typ0, typeSetsOK, $s, $deferred, $r, $c} = $restore(this, {name0, typ0, closing}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + names = [names]; + params = [params]; + typ = [typ]; + params[0] = sliceType$5.nil; p = this; - flags = p.flags; - if (!((((p.flags & 64) >>> 0) === 0))) { - if (after.length > 0 && (after.charCodeAt(0) === 63)) { - after = $substring(after, 1); - flags = (flags ^ (32)) << 16 >>> 16; - } - if (!(lastRepeat === "")) { - return ["", new Error.ptr("invalid nested repetition operator", $substring(lastRepeat, 0, (lastRepeat.length - after.length >> 0)))]; - } - } - n = p.stack.$length; - if (n === 0) { - return ["", new Error.ptr("missing argument to repetition operator", $substring(before, 0, (before.length - after.length >> 0)))]; - } - sub = (x = p.stack, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); - if (sub.Op >= 128) { - return ["", new Error.ptr("missing argument to repetition operator", $substring(before, 0, (before.length - after.length >> 0)))]; - } - re = p.newRegexp(op$2); - re.Min = min; - re.Max = max; - re.Flags = flags; - re.Sub = $subslice(new sliceType$4(re.Sub0), 0, 1); - (x$2 = re.Sub, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0] = sub)); - (x$3 = p.stack, x$4 = n - 1 >> 0, ((x$4 < 0 || x$4 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + x$4] = re)); - p.checkLimits(re); - if ((op$2 === 17) && (min >= 2 || max >= 2) && !repeatIsValid(re, 1000)) { - return ["", new Error.ptr("invalid repeat count", $substring(before, 0, (before.length - after.length >> 0)))]; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "ParameterList"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + tparams = closing === 55; + typeSetsOK = tparams; + pos = p.pos; + if (!(name0 === ptrType$2.nil)) { + pos = name0.Pos(); } - return [after, $ifaceNil]; - }; - repeatIsValid = function repeatIsValid$1(re, n) { - var _i, _q, _ref, m, n, re, sub; - if (re.Op === 17) { - m = re.Max; - if (m === 0) { - return true; - } - if (m < 0) { - m = re.Min; - } - if (m > n) { - return false; + list = sliceType$6.nil; + named = 0; + /* while (true) { */ case 4: + /* if (!(!(name0 === ptrType$2.nil) || !((p.tok === closing)) && !((p.tok === 1)))) { break; } */ if(!(!(name0 === ptrType$2.nil) || !((p.tok === closing)) && !((p.tok === 1)))) { $s = 5; continue; } + par = new field.ptr(ptrType$2.nil, $ifaceNil); + /* */ if (!($interfaceIsEqual(typ0, $ifaceNil))) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (!($interfaceIsEqual(typ0, $ifaceNil))) { */ case 6: + /* */ if (typeSetsOK) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (typeSetsOK) { */ case 9: + _r$1 = p.embeddedElem(typ0); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + typ0 = _r$1; + /* } */ case 10: + field.copy(par, new field.ptr(name0, typ0)); + $s = 8; continue; + /* } else { */ case 7: + _r$2 = p.parseParamDecl(name0, typeSetsOK); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + field.copy(par, _r$2); + /* } */ case 8: + name0 = ptrType$2.nil; + typ0 = $ifaceNil; + if (!(par.name === ptrType$2.nil) || !($interfaceIsEqual(par.typ, $ifaceNil))) { + list = $append(list, par); + if (!(par.name === ptrType$2.nil) && !($interfaceIsEqual(par.typ, $ifaceNil))) { + named = named + (1) >> 0; + } } - if (m > 0) { - n = (_q = n / (m), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + _r$3 = p.atComma("parameter list", closing); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!_r$3) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (!_r$3) { */ case 13: + /* break; */ $s = 5; continue; + /* } */ case 14: + $r = p.next(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 4; continue; + case 5: + /* */ if (list.$length === 0) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (list.$length === 0) { */ case 17: + $24r = params[0]; + $s = 19; case 19: return $24r; + /* } */ case 18: + /* */ if (named === 0) { $s = 20; continue; } + /* */ if (!((named === list.$length))) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (named === 0) { */ case 20: + i = 0; + while (true) { + if (!(i < list.$length)) { break; } + par$1 = ((i < 0 || i >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(list.$array, list.$offset + i, ptrType$39)); + typ$1 = par$1.name; + if (!(typ$1 === ptrType$2.nil)) { + par$1.typ = typ$1; + par$1.name = ptrType$2.nil; + } + i = i + (1) >> 0; } - } - _ref = re.Sub; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (!repeatIsValid(sub, n)) { - return false; + /* */ if (tparams) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (tparams) { */ case 23: + $r = p.error(pos, "type parameters must be named"); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 24: + $s = 22; continue; + /* } else if (!((named === list.$length))) { */ case 21: + ok = true; + typ$2 = $ifaceNil; + missingName = pos; + i$1 = list.$length - 1 >> 0; + /* while (true) { */ case 26: + /* if (!(i$1 >= 0)) { break; } */ if(!(i$1 >= 0)) { $s = 27; continue; } + par$2 = ((i$1 < 0 || i$1 >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(list.$array, list.$offset + i$1, ptrType$39)); + /* */ if (!($interfaceIsEqual(par$2.typ, $ifaceNil))) { $s = 28; continue; } + /* */ if (!($interfaceIsEqual(typ$2, $ifaceNil))) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if (!($interfaceIsEqual(par$2.typ, $ifaceNil))) { */ case 28: + typ$2 = par$2.typ; + /* */ if (par$2.name === ptrType$2.nil) { $s = 32; continue; } + /* */ $s = 33; continue; + /* if (par$2.name === ptrType$2.nil) { */ case 32: + ok = false; + _r$4 = par$2.typ.Pos(); /* */ $s = 34; case 34: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + missingName = _r$4; + n = ast.NewIdent("_"); + _r$5 = typ$2.Pos(); /* */ $s = 35; case 35: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + n.NamePos = _r$5; + par$2.name = n; + /* } */ case 33: + $s = 31; continue; + /* } else if (!($interfaceIsEqual(typ$2, $ifaceNil))) { */ case 29: + par$2.typ = typ$2; + $s = 31; continue; + /* } else { */ case 30: + ok = false; + missingName = par$2.name.Pos(); + par$2.typ = new ast.BadExpr.ptr(par$2.name.Pos(), p.pos); + /* } */ case 31: + i$1 = i$1 - (1) >> 0; + $s = 26; continue; + case 27: + /* */ if (!ok) { $s = 36; continue; } + /* */ $s = 37; continue; + /* if (!ok) { */ case 36: + /* */ if (tparams) { $s = 38; continue; } + /* */ $s = 39; continue; + /* if (tparams) { */ case 38: + $r = p.error(missingName, "type parameters must be named"); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 40; continue; + /* } else { */ case 39: + $r = p.error(pos, "mixed named and unnamed parameters"); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 40: + /* } */ case 37: + /* } */ case 22: + /* */ if (named === 0) { $s = 43; continue; } + /* */ $s = 44; continue; + /* if (named === 0) { */ case 43: + _ref = list; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + par$3 = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), field); + assert(!($interfaceIsEqual(par$3.typ, $ifaceNil)), "nil type in unnamed parameter list"); + params[0] = $append(params[0], new ast.Field.ptr(ptrType$34.nil, sliceType.nil, par$3.typ, ptrType$36.nil, ptrType$34.nil)); + _i++; } - _i++; - } - return true; - }; - $ptrType(parser).prototype.concat = function concat() { - var {$24r, _r, _r$1, i, p, subs, x, x$1, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - p.maybeConcat(-1, 0); - i = p.stack.$length; - while (true) { - if (!(i > 0 && (x = p.stack, x$1 = i - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Op < 128)) { break; } - i = i - (1) >> 0; - } - subs = $subslice(p.stack, i); - p.stack = $subslice(p.stack, 0, i); - if (subs.$length === 0) { - $s = -1; return p.push(p.newRegexp(2)); - } - _r = p.collapse(subs, 18); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = p.push(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: concat, $c: true, $r, $24r, _r, _r$1, i, p, subs, x, x$1, $s};return $f; + $24r$1 = params[0]; + $s = 45; case 45: return $24r$1; + /* } */ case 44: + names[0] = sliceType.nil; + typ[0] = $ifaceNil; + addParams = (function(names, params, typ) { return function parser·parseParameterList·func1() { + var field$1; + assert(!($interfaceIsEqual(typ[0], $ifaceNil)), "nil type in named parameter list"); + field$1 = new ast.Field.ptr(ptrType$34.nil, names[0], typ[0], ptrType$36.nil, ptrType$34.nil); + params[0] = $append(params[0], field$1); + names[0] = sliceType.nil; + }; })(names, params, typ); + _ref$1 = list; + _i$1 = 0; + /* while (true) { */ case 46: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 47; continue; } + par$4 = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), field); + /* */ if (!($interfaceIsEqual(par$4.typ, typ[0]))) { $s = 48; continue; } + /* */ $s = 49; continue; + /* if (!($interfaceIsEqual(par$4.typ, typ[0]))) { */ case 48: + /* */ if (names[0].$length > 0) { $s = 50; continue; } + /* */ $s = 51; continue; + /* if (names[0].$length > 0) { */ case 50: + $r = addParams(); /* */ $s = 52; case 52: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 51: + typ[0] = par$4.typ; + /* } */ case 49: + names[0] = $append(names[0], par$4.name); + _i$1++; + $s = 46; continue; + case 47: + /* */ if (names[0].$length > 0) { $s = 53; continue; } + /* */ $s = 54; continue; + /* if (names[0].$length > 0) { */ case 53: + $r = addParams(); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 54: + $24r$2 = params[0]; + $s = 56; case 56: return $24r$2; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return params[0]; } if($curGoroutine.asleep) { var $f = {$blk: parseParameterList, $c: true, $r, $24r, $24r$1, $24r$2, _i, _i$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, addParams, closing, i, i$1, list, missingName, n, name0, named, names, ok, p, par, par$1, par$2, par$3, par$4, params, pos, tparams, typ, typ$1, typ$2, typ0, typeSetsOK, $s, $deferred};return $f; } } }; - $ptrType(parser).prototype.alternate = function alternate() { - var {$24r, _r, _r$1, i, p, subs, x, x$1, x$2, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $ptrType(parser).prototype.parseParameters = function parseParameters(acceptTParams) { + var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, acceptTParams, fields, list, opening, opening$1, p, params, rbrack, rparen, tparams, $s, $deferred, $r, $c} = $restore(this, {acceptTParams}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + tparams = ptrType$27.nil; + params = ptrType$27.nil; p = this; - i = p.stack.$length; - while (true) { - if (!(i > 0 && (x = p.stack, x$1 = i - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Op < 128)) { break; } - i = i - (1) >> 0; - } - subs = $subslice(p.stack, i); - p.stack = $subslice(p.stack, 0, i); - /* */ if (subs.$length > 0) { $s = 1; continue; } + /* */ if (p.trace) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (subs.$length > 0) { */ case 1: - $r = cleanAlt((x$2 = subs.$length - 1 >> 0, ((x$2 < 0 || x$2 >= subs.$length) ? ($throwRuntimeError("index out of range"), undefined) : subs.$array[subs.$offset + x$2]))); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* if (p.trace) { */ case 1: + _r = trace(p, "Parameters"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); /* } */ case 2: - if (subs.$length === 0) { - $s = -1; return p.push(p.newRegexp(1)); - } - _r = p.collapse(subs, 19); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = p.push(_r); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 6; case 6: return $24r; - /* */ } return; } var $f = {$blk: alternate, $c: true, $r, $24r, _r, _r$1, i, p, subs, x, x$1, x$2, $s};return $f; - }; - cleanAlt = function cleanAlt$1(re) { - var {_1, _r, re, x, x$1, x$2, x$3, x$4, x$5, $s, $r, $c} = $restore(this, {re}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _1 = re.Op; - /* */ if (_1 === (4)) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (_1 === (4)) { */ case 2: - _r = cleanClass((re.$ptr_Rune || (re.$ptr_Rune = new ptrType$2(function() { return this.$target.Rune; }, function($v) { this.$target.Rune = $v; }, re)))); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - re.Rune = _r; - if ((re.Rune.$length === 2) && ((x = re.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) === 0) && ((x$1 = re.Rune, (1 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 1])) === 1114111)) { - re.Rune = sliceType$1.nil; - re.Op = 6; - $s = -1; return; - } - if ((re.Rune.$length === 4) && ((x$2 = re.Rune, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])) === 0) && ((x$3 = re.Rune, (1 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 1])) === 9) && ((x$4 = re.Rune, (2 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 2])) === 11) && ((x$5 = re.Rune, (3 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 3])) === 1114111)) { - re.Rune = sliceType$1.nil; - re.Op = 5; - $s = -1; return; - } - if ((re.Rune.$capacity - re.Rune.$length >> 0) > 100) { - re.Rune = $appendSlice($subslice(new sliceType$1(re.Rune0), 0, 0), re.Rune); - } - /* } */ case 3: - case 1: - $s = -1; return; - /* */ } return; } var $f = {$blk: cleanAlt$1, $c: true, $r, _1, _r, re, x, x$1, x$2, x$3, x$4, x$5, $s};return $f; + /* */ if (acceptTParams && (p.tok === 50)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (acceptTParams && (p.tok === 50)) { */ case 4: + opening = p.pos; + $r = p.next(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = p.parseParameterList(ptrType$2.nil, $ifaceNil, 55); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + list = _r$1; + _r$2 = p.expect(55); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + rbrack = _r$2; + tparams = new ast.FieldList.ptr(opening, list, rbrack); + /* */ if (tparams.NumFields() === 0) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (tparams.NumFields() === 0) { */ case 9: + $r = p.error(tparams.Closing, "empty type parameter list"); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + tparams = ptrType$27.nil; + /* } */ case 10: + /* } */ case 5: + _r$3 = p.expect(49); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + opening$1 = _r$3; + fields = sliceType$5.nil; + /* */ if (!((p.tok === 54))) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (!((p.tok === 54))) { */ case 13: + _r$4 = p.parseParameterList(ptrType$2.nil, $ifaceNil, 54); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + fields = _r$4; + /* } */ case 14: + _r$5 = p.expect(54); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + rparen = _r$5; + params = new ast.FieldList.ptr(opening$1, fields, rparen); + $24r = [tparams, params]; + $s = 17; case 17: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [tparams, params]; } if($curGoroutine.asleep) { var $f = {$blk: parseParameters, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, acceptTParams, fields, list, opening, opening$1, p, params, rbrack, rparen, tparams, $s, $deferred};return $f; } } }; - $ptrType(parser).prototype.collapse = function collapse(subs, op$2) { - var {_i, _r, _ref, old, op$2, p, re, sub, subs, x, $s, $r, $c} = $restore(this, {subs, op$2}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $ptrType(parser).prototype.parseResult = function parseResult() { + var {$24r, $24r$1, $24r$2, _r, _r$1, _r$2, _tuple, list, p, results, typ, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); p = this; - if (subs.$length === 1) { - $s = -1; return (0 >= subs.$length ? ($throwRuntimeError("index out of range"), undefined) : subs.$array[subs.$offset + 0]); - } - re = p.newRegexp(op$2); - re.Sub = $subslice(new sliceType$4(re.Sub0), 0, 0); - _ref = subs; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (sub.Op === op$2) { - re.Sub = $appendSlice(re.Sub, sub.Sub); - p.reuse(sub); - } else { - re.Sub = $append(re.Sub, sub); - } - _i++; - } - /* */ if (op$2 === 19) { $s = 1; continue; } + /* */ if (p.trace) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (op$2 === 19) { */ case 1: - _r = p.factor(re.Sub); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - re.Sub = _r; - if (re.Sub.$length === 1) { - old = re; - re = (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); - p.reuse(old); - } + /* if (p.trace) { */ case 1: + _r = trace(p, "Result"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); /* } */ case 2: - $s = -1; return re; - /* */ } return; } var $f = {$blk: collapse, $c: true, $r, _i, _r, _ref, old, op$2, p, re, sub, subs, x, $s};return $f; - }; - $ptrType(parser).prototype.factor = function factor(sub) { - var {_i, _r, _r$1, _ref, _tmp, _tmp$1, _tuple, first, i, i$1, i$2, i$3, ifirst, iflags, istr, j, j$1, j$2, j$3, max, out, p, prefix, prefix$1, re, re$1, reuse$1, same, start, str, strflags, sub, suffix, suffix$1, x, x$1, $s, $r, $c} = $restore(this, {sub}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = this; - if (sub.$length < 2) { - $s = -1; return sub; - } - str = sliceType$1.nil; - strflags = 0; - start = 0; - out = $subslice(sub, 0, 0); - i = 0; - /* while (true) { */ case 1: - /* if (!(i <= sub.$length)) { break; } */ if(!(i <= sub.$length)) { $s = 2; continue; } - istr = sliceType$1.nil; - iflags = 0; - if (i < sub.$length) { - _tuple = p.leadingString(((i < 0 || i >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i])); - istr = _tuple[0]; - iflags = _tuple[1]; - if (iflags === strflags) { - same = 0; - while (true) { - if (!(same < str.$length && same < istr.$length && (((same < 0 || same >= str.$length) ? ($throwRuntimeError("index out of range"), undefined) : str.$array[str.$offset + same]) === ((same < 0 || same >= istr.$length) ? ($throwRuntimeError("index out of range"), undefined) : istr.$array[istr.$offset + same])))) { break; } - same = same + (1) >> 0; - } - if (same > 0) { - str = $subslice(str, 0, same); - i = i + (1) >> 0; - /* continue; */ $s = 1; continue; - } - } - } - /* */ if (i === start) { $s = 3; continue; } - /* */ if (i === (start + 1 >> 0)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (i === start) { */ case 3: - $s = 6; continue; - /* } else if (i === (start + 1 >> 0)) { */ case 4: - out = $append(out, ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start])); - $s = 6; continue; - /* } else { */ case 5: - prefix = p.newRegexp(3); - prefix.Flags = strflags; - prefix.Rune = $appendSlice($subslice(prefix.Rune, 0, 0), str); - j = start; - while (true) { - if (!(j < i)) { break; } - ((j < 0 || j >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j] = p.removeLeadingString(((j < 0 || j >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j]), str.$length)); - p.checkLimits(((j < 0 || j >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j])); - j = j + (1) >> 0; - } - _r = p.collapse($subslice(sub, start, i), 19); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - suffix = _r; - re = p.newRegexp(18); - re.Sub = $append($subslice(re.Sub, 0, 0), prefix, suffix); - out = $append(out, re); - /* } */ case 6: - start = i; - str = istr; - strflags = iflags; - i = i + (1) >> 0; - $s = 1; continue; - case 2: - sub = out; - start = 0; - out = $subslice(sub, 0, 0); - first = ptrType.nil; - i$1 = 0; - /* while (true) { */ case 8: - /* if (!(i$1 <= sub.$length)) { break; } */ if(!(i$1 <= sub.$length)) { $s = 9; continue; } - ifirst = ptrType.nil; - if (i$1 < sub.$length) { - ifirst = p.leadingRegexp(((i$1 < 0 || i$1 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i$1])); - if (!(first === ptrType.nil) && first.Equal(ifirst) && (isCharClass(first) || ((first.Op === 17) && (first.Min === first.Max) && isCharClass((x = first.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])))))) { - i$1 = i$1 + (1) >> 0; - /* continue; */ $s = 8; continue; - } - } - /* */ if (i$1 === start) { $s = 10; continue; } - /* */ if (i$1 === (start + 1 >> 0)) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (i$1 === start) { */ case 10: - $s = 13; continue; - /* } else if (i$1 === (start + 1 >> 0)) { */ case 11: - out = $append(out, ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start])); - $s = 13; continue; - /* } else { */ case 12: - prefix$1 = first; - j$1 = start; - while (true) { - if (!(j$1 < i$1)) { break; } - reuse$1 = !((j$1 === start)); - ((j$1 < 0 || j$1 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$1] = p.removeLeadingRegexp(((j$1 < 0 || j$1 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$1]), reuse$1)); - p.checkLimits(((j$1 < 0 || j$1 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$1])); - j$1 = j$1 + (1) >> 0; - } - _r$1 = p.collapse($subslice(sub, start, i$1), 19); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - suffix$1 = _r$1; - re$1 = p.newRegexp(18); - re$1.Sub = $append($subslice(re$1.Sub, 0, 0), prefix$1, suffix$1); - out = $append(out, re$1); - /* } */ case 13: - start = i$1; - first = ifirst; - i$1 = i$1 + (1) >> 0; - $s = 8; continue; - case 9: - sub = out; - start = 0; - out = $subslice(sub, 0, 0); - i$2 = 0; - /* while (true) { */ case 15: - /* if (!(i$2 <= sub.$length)) { break; } */ if(!(i$2 <= sub.$length)) { $s = 16; continue; } - if (i$2 < sub.$length && isCharClass(((i$2 < 0 || i$2 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i$2]))) { - i$2 = i$2 + (1) >> 0; - /* continue; */ $s = 15; continue; - } - /* */ if (i$2 === start) { $s = 17; continue; } - /* */ if (i$2 === (start + 1 >> 0)) { $s = 18; continue; } - /* */ $s = 19; continue; - /* if (i$2 === start) { */ case 17: - $s = 20; continue; - /* } else if (i$2 === (start + 1 >> 0)) { */ case 18: - out = $append(out, ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start])); - $s = 20; continue; - /* } else { */ case 19: - max = start; - j$2 = start + 1 >> 0; - while (true) { - if (!(j$2 < i$2)) { break; } - if (((max < 0 || max >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + max]).Op < ((j$2 < 0 || j$2 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$2]).Op || (((max < 0 || max >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + max]).Op === ((j$2 < 0 || j$2 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$2]).Op) && ((max < 0 || max >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + max]).Rune.$length < ((j$2 < 0 || j$2 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$2]).Rune.$length) { - max = j$2; - } - j$2 = j$2 + (1) >> 0; - } - _tmp = ((max < 0 || max >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + max]); - _tmp$1 = ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start]); - ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start] = _tmp); - ((max < 0 || max >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + max] = _tmp$1); - j$3 = start + 1 >> 0; - while (true) { - if (!(j$3 < i$2)) { break; } - mergeCharClass(((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start]), ((j$3 < 0 || j$3 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$3])); - p.reuse(((j$3 < 0 || j$3 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$3])); - j$3 = j$3 + (1) >> 0; - } - $r = cleanAlt(((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start])); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - out = $append(out, ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start])); - /* } */ case 20: - if (i$2 < sub.$length) { - out = $append(out, ((i$2 < 0 || i$2 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i$2])); - } - start = i$2 + 1 >> 0; - i$2 = i$2 + (1) >> 0; - $s = 15; continue; - case 16: - sub = out; - start = 0; - out = $subslice(sub, 0, 0); - _ref = sub; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i$3 = _i; - if ((i$3 + 1 >> 0) < sub.$length && (((i$3 < 0 || i$3 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i$3]).Op === 2) && ((x$1 = i$3 + 1 >> 0, ((x$1 < 0 || x$1 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + x$1])).Op === 2)) { - _i++; - continue; - } - out = $append(out, ((i$3 < 0 || i$3 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i$3])); - _i++; - } - sub = out; - $s = -1; return sub; - /* */ } return; } var $f = {$blk: factor, $c: true, $r, _i, _r, _r$1, _ref, _tmp, _tmp$1, _tuple, first, i, i$1, i$2, i$3, ifirst, iflags, istr, j, j$1, j$2, j$3, max, out, p, prefix, prefix$1, re, re$1, reuse$1, same, start, str, strflags, sub, suffix, suffix$1, x, x$1, $s};return $f; + /* */ if (p.tok === 49) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (p.tok === 49) { */ case 4: + _r$1 = p.parseParameters(false); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + results = _tuple[1]; + $24r = results; + $s = 7; case 7: return $24r; + /* } */ case 5: + _r$2 = p.tryIdentOrType(); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + typ = _r$2; + /* */ if (!($interfaceIsEqual(typ, $ifaceNil))) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!($interfaceIsEqual(typ, $ifaceNil))) { */ case 9: + list = $makeSlice(sliceType$5, 1); + (0 >= list.$length ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + 0] = new ast.Field.ptr(ptrType$34.nil, sliceType.nil, typ, ptrType$36.nil, ptrType$34.nil)); + $24r$1 = new ast.FieldList.ptr(0, list, 0); + $s = 11; case 11: return $24r$1; + /* } */ case 10: + $24r$2 = ptrType$27.nil; + $s = 12; case 12: return $24r$2; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$27.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseResult, $c: true, $r, $24r, $24r$1, $24r$2, _r, _r$1, _r$2, _tuple, list, p, results, typ, $s, $deferred};return $f; } } }; - $ptrType(parser).prototype.leadingString = function leadingString(re) { - var p, re, x; + $ptrType(parser).prototype.parseFuncType = function parseFuncType() { + var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _tuple, p, params, pos, results, tparams, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); p = this; - if ((re.Op === 18) && re.Sub.$length > 0) { - re = (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); - } - if (!((re.Op === 3))) { - return [sliceType$1.nil, 0]; - } - return [re.Rune, (re.Flags & 1) >>> 0]; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "FuncType"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.expect(71); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + pos = _r$1; + _r$2 = p.parseParameters(true); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = _r$2; + tparams = _tuple[0]; + params = _tuple[1]; + /* */ if (!(tparams === ptrType$27.nil)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (!(tparams === ptrType$27.nil)) { */ case 6: + _r$3 = tparams.Pos(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $r = p.error(_r$3, "function type must have no type parameters"); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 7: + _r$4 = p.parseResult(); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + results = _r$4; + $24r = new ast.FuncType.ptr(pos, ptrType$27.nil, params, results); + $s = 11; case 11: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$7.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseFuncType, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _tuple, p, params, pos, results, tparams, $s, $deferred};return $f; } } }; - $ptrType(parser).prototype.removeLeadingString = function removeLeadingString(re, n) { - var _1, n, old, p, re, sub, x, x$1, x$2; + $ptrType(parser).prototype.parseMethodSpec = function parseMethodSpec() { + var {$24r, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, doc, ident, idents, lbrack, list, name0, p, params, params$1, rbrack, results, results$1, typ, x, x$1, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); p = this; - if ((re.Op === 18) && re.Sub.$length > 0) { - sub = (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); - sub = p.removeLeadingString(sub, n); - (x$1 = re.Sub, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0] = sub)); - if (sub.Op === 2) { - p.reuse(sub); - _1 = re.Sub.$length; - if ((_1 === (0)) || (_1 === (1))) { - re.Op = 2; - re.Sub = sliceType$4.nil; - } else if (_1 === (2)) { - old = re; - re = (x$2 = re.Sub, (1 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 1])); - p.reuse(old); - } else { - $copySlice(re.Sub, $subslice(re.Sub, 1)); - re.Sub = $subslice(re.Sub, 0, (re.Sub.$length - 1 >> 0)); - } - } - return re; - } - if (re.Op === 3) { - re.Rune = $subslice(re.Rune, 0, $copySlice(re.Rune, $subslice(re.Rune, n))); - if (re.Rune.$length === 0) { - re.Op = 2; - } - } - return re; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "MethodSpec"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + doc = p.leadComment; + idents = sliceType.nil; + typ = $ifaceNil; + _r$1 = p.parseTypeName(ptrType$2.nil); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + x = _r$1; + _tuple = $assertType(x, ptrType$2, true); + ident = _tuple[0]; + /* */ if (!(ident === ptrType$2.nil)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!(ident === ptrType$2.nil)) { */ case 5: + /* */ if ((p.tok === 50)) { $s = 9; continue; } + /* */ if ((p.tok === 49)) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if ((p.tok === 50)) { */ case 9: + lbrack = p.pos; + $r = p.next(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + p.exprLev = p.exprLev + (1) >> 0; + _r$2 = p.parseExpr(); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + x$1 = _r$2; + p.exprLev = p.exprLev - (1) >> 0; + _tuple$1 = $assertType(x$1, ptrType$2, true); + name0 = _tuple$1[0]; + /* */ if (!(name0 === ptrType$2.nil) && !((p.tok === 52)) && !((p.tok === 55))) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (!(name0 === ptrType$2.nil) && !((p.tok === 52)) && !((p.tok === 55))) { */ case 15: + _r$3 = p.parseParameterList(name0, $ifaceNil, 55); /* */ $s = 18; case 18: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $unused(_r$3); + _r$4 = p.expect(55); /* */ $s = 19; case 19: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $unused(_r$4); + $r = p.error(lbrack, "interface method must have no type parameters"); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$5 = p.parseParameters(false); /* */ $s = 21; case 21: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$2 = _r$5; + params = _tuple$2[1]; + _r$6 = p.parseResult(); /* */ $s = 22; case 22: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + results = _r$6; + idents = new sliceType([ident]); + typ = new ast.FuncType.ptr(0, ptrType$27.nil, params, results); + $s = 17; continue; + /* } else { */ case 16: + list = new sliceType$3([x$1]); + _r$7 = p.atComma("type argument list", 55); /* */ $s = 25; case 25: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + /* */ if (_r$7) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (_r$7) { */ case 23: + p.exprLev = p.exprLev + (1) >> 0; + $r = p.next(); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* while (true) { */ case 27: + /* if (!(!((p.tok === 55)) && !((p.tok === 1)))) { break; } */ if(!(!((p.tok === 55)) && !((p.tok === 1)))) { $s = 28; continue; } + _r$8 = p.parseType(); /* */ $s = 29; case 29: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + list = $append(list, _r$8); + _r$9 = p.atComma("type argument list", 55); /* */ $s = 32; case 32: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + /* */ if (!_r$9) { $s = 30; continue; } + /* */ $s = 31; continue; + /* if (!_r$9) { */ case 30: + /* break; */ $s = 28; continue; + /* } */ case 31: + $r = p.next(); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 27; continue; + case 28: + p.exprLev = p.exprLev - (1) >> 0; + /* } */ case 24: + _r$10 = p.expectClosing(55, "type argument list"); /* */ $s = 34; case 34: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + rbrack = _r$10; + typ = typeparams.PackIndexExpr(ident, lbrack, list, rbrack); + /* } */ case 17: + $s = 12; continue; + /* } else if ((p.tok === 49)) { */ case 10: + _r$11 = p.parseParameters(false); /* */ $s = 35; case 35: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _tuple$3 = _r$11; + params$1 = _tuple$3[1]; + _r$12 = p.parseResult(); /* */ $s = 36; case 36: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + results$1 = _r$12; + idents = new sliceType([ident]); + typ = new ast.FuncType.ptr(0, ptrType$27.nil, params$1, results$1); + $s = 12; continue; + /* } else { */ case 11: + typ = x; + /* } */ case 12: + case 8: + $s = 7; continue; + /* } else { */ case 6: + typ = x; + /* */ if (p.tok === 50) { $s = 37; continue; } + /* */ $s = 38; continue; + /* if (p.tok === 50) { */ case 37: + _r$13 = p.parseTypeInstance(typ); /* */ $s = 39; case 39: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + typ = _r$13; + /* } */ case 38: + /* } */ case 7: + $24r = new ast.Field.ptr(doc, idents, typ, ptrType$36.nil, ptrType$34.nil); + $s = 40; case 40: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$37.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseMethodSpec, $c: true, $r, $24r, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, doc, ident, idents, lbrack, list, name0, p, params, params$1, rbrack, results, results$1, typ, x, x$1, $s, $deferred};return $f; } } }; - $ptrType(parser).prototype.leadingRegexp = function leadingRegexp(re) { - var p, re, sub, x; + $ptrType(parser).prototype.embeddedElem = function embeddedElem(x) { + var {$24r, _r, _r$1, _r$2, p, t, x, $s, $deferred, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); p = this; - if (re.Op === 2) { - return ptrType.nil; - } - if ((re.Op === 18) && re.Sub.$length > 0) { - sub = (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); - if (sub.Op === 2) { - return ptrType.nil; - } - return sub; - } - return re; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "EmbeddedElem"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + /* */ if ($interfaceIsEqual(x, $ifaceNil)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ($interfaceIsEqual(x, $ifaceNil)) { */ case 4: + _r$1 = p.embeddedTerm(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + x = _r$1; + /* } */ case 5: + /* while (true) { */ case 7: + /* if (!(p.tok === 18)) { break; } */ if(!(p.tok === 18)) { $s = 8; continue; } + t = new ast.BinaryExpr.ptr($ifaceNil, 0, 0, $ifaceNil); + t.OpPos = p.pos; + t.Op = 18; + $r = p.next(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + t.X = x; + _r$2 = p.embeddedTerm(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + t.Y = _r$2; + x = t; + $s = 7; continue; + case 8: + $24r = x; + $s = 11; case 11: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: embeddedElem, $c: true, $r, $24r, _r, _r$1, _r$2, p, t, x, $s, $deferred};return $f; } } }; - $ptrType(parser).prototype.removeLeadingRegexp = function removeLeadingRegexp(re, reuse$1) { - var _1, old, p, re, reuse$1, x, x$1; + $ptrType(parser).prototype.embeddedTerm = function embeddedTerm() { + var {$24r, $24r$1, $24r$2, _r, _r$1, _r$2, p, pos, t, t$1, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); p = this; - if ((re.Op === 18) && re.Sub.$length > 0) { - if (reuse$1) { - p.reuse((x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))); - } - re.Sub = $subslice(re.Sub, 0, $copySlice(re.Sub, $subslice(re.Sub, 1))); - _1 = re.Sub.$length; - if (_1 === (0)) { - re.Op = 2; - re.Sub = sliceType$4.nil; - } else if (_1 === (1)) { - old = re; - re = (x$1 = re.Sub, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])); - p.reuse(old); - } - return re; - } - if (reuse$1) { - p.reuse(re); - } - return p.newRegexp(2); - }; - literalRegexp = function literalRegexp$1(s, flags) { - var _i, _ref, _rune, c, flags, re, s; - re = new Regexp.ptr(3, 0, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, ""); - re.Flags = flags; - re.Rune = $subslice(new sliceType$1(re.Rune0), 0, 0); - _ref = s; - _i = 0; - while (true) { - if (!(_i < _ref.length)) { break; } - _rune = $decodeRune(_ref, _i); - c = _rune[0]; - if (re.Rune.$length >= re.Rune.$capacity) { - re.Rune = (new sliceType$1($stringToRunes(s))); - break; - } - re.Rune = $append(re.Rune, c); - _i += _rune[1]; - } - return re; - }; - Parse = function Parse$1(s, flags) { - var {$24r, _r, flags, s, $s, $r, $c} = $restore(this, {s, flags}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = parse(s, flags); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Parse$1, $c: true, $r, $24r, _r, flags, s, $s};return $f; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "EmbeddedTerm"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + /* */ if (p.tok === 88) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (p.tok === 88) { */ case 4: + t = new ast.UnaryExpr.ptr(0, 0, $ifaceNil); + t.OpPos = p.pos; + t.Op = 88; + $r = p.next(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = p.parseType(); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + t.X = _r$1; + $24r = t; + $s = 8; case 8: return $24r; + /* } */ case 5: + _r$2 = p.tryIdentOrType(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + t$1 = _r$2; + /* */ if ($interfaceIsEqual(t$1, $ifaceNil)) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if ($interfaceIsEqual(t$1, $ifaceNil)) { */ case 10: + pos = p.pos; + $r = p.errorExpected(pos, "~ term or type"); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.advance(exprEnd); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $24r$1 = new ast.BadExpr.ptr(pos, p.pos); + $s = 14; case 14: return $24r$1; + /* } */ case 11: + $24r$2 = t$1; + $s = 15; case 15: return $24r$2; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: embeddedTerm, $c: true, $r, $24r, $24r$1, $24r$2, _r, _r$1, _r$2, p, pos, t, t$1, $s, $deferred};return $f; } } }; - $pkg.Parse = Parse; - parse = function parse$1(s, flags) { - var {_, _2, _3, _4, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _struct, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$10, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, after, after$1, before, before$1, c, c$1, err, err$1, err$2, err$3, flags, lastRepeat, lit, max, min, n, ok, op$2, p, r, r$1, re, repeat$1, rest, rest$1, rest$2, s, t, x, $s, $deferred, $r, $c} = $restore(this, {s, flags}); + $ptrType(parser).prototype.parseInterfaceType = function parseInterfaceType() { + var {$24r, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, comment, comment$1, f, lbrace, list, p, pos, rbrace, t, typ, typ$1, $s, $deferred, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - err = [err]; - s = [s]; - _ = ptrType.nil; - err[0] = $ifaceNil; - $deferred.push([(function(err, s) { return function parse·func1() { - var _1, r; - r = $recover(); - _1 = r; - if ($interfaceIsEqual(_1, $ifaceNil)) { - } else if ($interfaceIsEqual(_1, new ErrorCode(("expression too large")))) { - err[0] = new Error.ptr("expression too large", s[0]); - } else if ($interfaceIsEqual(_1, new ErrorCode(("expression nests too deeply")))) { - err[0] = new Error.ptr("expression nests too deeply", s[0]); - } else { - $panic(r); - } - }; })(err, s), []]); - if (!((((flags & 2) >>> 0) === 0))) { - err$1 = checkUTF8(s[0]); - if (!($interfaceIsEqual(err$1, $ifaceNil))) { - _tmp = ptrType.nil; - _tmp$1 = err$1; - _ = _tmp; - err[0] = _tmp$1; - $s = -1; return [_, err[0]]; - } - _tmp$2 = literalRegexp(s[0], flags); - _tmp$3 = $ifaceNil; - _ = _tmp$2; - err[0] = _tmp$3; - $s = -1; return [_, err[0]]; - } - p = new parser.ptr(0, sliceType$4.nil, ptrType.nil, 0, "", sliceType$1.nil, 0, 0, new $Int64(0, 0), false, false); - c = 0; - op$2 = 0; - lastRepeat = ""; - p.flags = flags; - p.wholeRegexp = s[0]; - t = s[0]; - /* while (true) { */ case 1: - /* if (!(!(t === ""))) { break; } */ if(!(!(t === ""))) { $s = 2; continue; } - repeat$1 = ""; - _2 = t.charCodeAt(0); - /* */ if (_2 === (40)) { $s = 4; continue; } - /* */ if (_2 === (124)) { $s = 5; continue; } - /* */ if (_2 === (41)) { $s = 6; continue; } - /* */ if (_2 === (94)) { $s = 7; continue; } - /* */ if (_2 === (36)) { $s = 8; continue; } - /* */ if (_2 === (46)) { $s = 9; continue; } - /* */ if (_2 === (91)) { $s = 10; continue; } - /* */ if ((_2 === (42)) || (_2 === (43)) || (_2 === (63))) { $s = 11; continue; } - /* */ if (_2 === (123)) { $s = 12; continue; } - /* */ if (_2 === (92)) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (_2 === (40)) { */ case 4: - if (!((((p.flags & 64) >>> 0) === 0)) && t.length >= 2 && (t.charCodeAt(1) === 63)) { - _tuple = p.parsePerlFlags(t); - t = _tuple[0]; - err[0] = _tuple[1]; - if (!($interfaceIsEqual(err[0], $ifaceNil))) { - _tmp$4 = ptrType.nil; - _tmp$5 = err[0]; - _ = _tmp$4; - err[0] = _tmp$5; - $s = -1; return [_, err[0]]; - } - /* break; */ $s = 3; continue; - } - p.numCap = p.numCap + (1) >> 0; - p.op(128).Cap = p.numCap; - t = $substring(t, 1); - $s = 15; continue; - /* } else if (_2 === (124)) { */ case 5: - _r = p.parseVerticalBar(); /* */ $s = 16; case 16: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - err[0] = _r; - if (!($interfaceIsEqual(err[0], $ifaceNil))) { - _tmp$6 = ptrType.nil; - _tmp$7 = err[0]; - _ = _tmp$6; - err[0] = _tmp$7; - $s = -1; return [_, err[0]]; - } - t = $substring(t, 1); - $s = 15; continue; - /* } else if (_2 === (41)) { */ case 6: - _r$1 = p.parseRightParen(); /* */ $s = 17; case 17: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - err[0] = _r$1; - if (!($interfaceIsEqual(err[0], $ifaceNil))) { - _tmp$8 = ptrType.nil; - _tmp$9 = err[0]; - _ = _tmp$8; - err[0] = _tmp$9; - $s = -1; return [_, err[0]]; - } - t = $substring(t, 1); - $s = 15; continue; - /* } else if (_2 === (94)) { */ case 7: - if (!((((p.flags & 16) >>> 0) === 0))) { - p.op(9); - } else { - p.op(7); - } - t = $substring(t, 1); - $s = 15; continue; - /* } else if (_2 === (36)) { */ case 8: - if (!((((p.flags & 16) >>> 0) === 0))) { - _struct = p.op(10); - _struct.Flags = (_struct.Flags | (256)) >>> 0; - } else { - p.op(8); - } - t = $substring(t, 1); - $s = 15; continue; - /* } else if (_2 === (46)) { */ case 9: - if (!((((p.flags & 8) >>> 0) === 0))) { - p.op(6); - } else { - p.op(5); - } - t = $substring(t, 1); - $s = 15; continue; - /* } else if (_2 === (91)) { */ case 10: - _r$2 = p.parseClass(t); /* */ $s = 18; case 18: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple$1 = _r$2; - t = _tuple$1[0]; - err[0] = _tuple$1[1]; - if (!($interfaceIsEqual(err[0], $ifaceNil))) { - _tmp$10 = ptrType.nil; - _tmp$11 = err[0]; - _ = _tmp$10; - err[0] = _tmp$11; - $s = -1; return [_, err[0]]; - } - $s = 15; continue; - /* } else if ((_2 === (42)) || (_2 === (43)) || (_2 === (63))) { */ case 11: - before = t; - _3 = t.charCodeAt(0); - if (_3 === (42)) { - op$2 = 14; - } else if (_3 === (43)) { - op$2 = 15; - } else if (_3 === (63)) { - op$2 = 16; - } - after = $substring(t, 1); - _tuple$2 = p.repeat(op$2, 0, 0, before, after, lastRepeat); - after = _tuple$2[0]; - err[0] = _tuple$2[1]; - if (!($interfaceIsEqual(err[0], $ifaceNil))) { - _tmp$12 = ptrType.nil; - _tmp$13 = err[0]; - _ = _tmp$12; - err[0] = _tmp$13; - $s = -1; return [_, err[0]]; - } - repeat$1 = before; - t = after; - $s = 15; continue; - /* } else if (_2 === (123)) { */ case 12: - op$2 = 17; - before$1 = t; - _tuple$3 = p.parseRepeat(t); - min = _tuple$3[0]; - max = _tuple$3[1]; - after$1 = _tuple$3[2]; - ok = _tuple$3[3]; - if (!ok) { - p.literal(123); - t = $substring(t, 1); - /* break; */ $s = 3; continue; - } - if (min < 0 || min > 1000 || max > 1000 || max >= 0 && min > max) { - _tmp$14 = ptrType.nil; - _tmp$15 = new Error.ptr("invalid repeat count", $substring(before$1, 0, (before$1.length - after$1.length >> 0))); - _ = _tmp$14; - err[0] = _tmp$15; - $s = -1; return [_, err[0]]; - } - _tuple$4 = p.repeat(op$2, min, max, before$1, after$1, lastRepeat); - after$1 = _tuple$4[0]; - err[0] = _tuple$4[1]; - if (!($interfaceIsEqual(err[0], $ifaceNil))) { - _tmp$16 = ptrType.nil; - _tmp$17 = err[0]; - _ = _tmp$16; - err[0] = _tmp$17; - $s = -1; return [_, err[0]]; - } - repeat$1 = before$1; - t = after$1; - $s = 15; continue; - /* } else if (_2 === (92)) { */ case 13: - if (!((((p.flags & 64) >>> 0) === 0)) && t.length >= 2) { - _4 = t.charCodeAt(1); - if (_4 === (65)) { - p.op(9); - t = $substring(t, 2); - /* break BigSwitch; */ $s = 3; continue s; - } else if (_4 === (98)) { - p.op(11); - t = $substring(t, 2); - /* break BigSwitch; */ $s = 3; continue s; - } else if (_4 === (66)) { - p.op(12); - t = $substring(t, 2); - /* break BigSwitch; */ $s = 3; continue s; - } else if (_4 === (67)) { - _tmp$18 = ptrType.nil; - _tmp$19 = new Error.ptr("invalid escape sequence", $substring(t, 0, 2)); - _ = _tmp$18; - err[0] = _tmp$19; - $s = -1; return [_, err[0]]; - } else if (_4 === (81)) { - lit = ""; - _tuple$5 = strings.Cut($substring(t, 2), "\\E"); - lit = _tuple$5[0]; - t = _tuple$5[1]; - while (true) { - if (!(!(lit === ""))) { break; } - _tuple$6 = nextRune(lit); - c$1 = _tuple$6[0]; - rest = _tuple$6[1]; - err$2 = _tuple$6[2]; - if (!($interfaceIsEqual(err$2, $ifaceNil))) { - _tmp$20 = ptrType.nil; - _tmp$21 = err$2; - _ = _tmp$20; - err[0] = _tmp$21; - $s = -1; return [_, err[0]]; - } - p.literal(c$1); - lit = rest; - } - /* break BigSwitch; */ $s = 3; continue s; - } else if (_4 === (122)) { - p.op(10); - t = $substring(t, 2); - /* break BigSwitch; */ $s = 3; continue s; - } - } - re = p.newRegexp(4); - re.Flags = p.flags; - /* */ if (t.length >= 2 && ((t.charCodeAt(1) === 112) || (t.charCodeAt(1) === 80))) { $s = 19; continue; } - /* */ $s = 20; continue; - /* if (t.length >= 2 && ((t.charCodeAt(1) === 112) || (t.charCodeAt(1) === 80))) { */ case 19: - _r$3 = p.parseUnicodeClass(t, $subslice(new sliceType$1(re.Rune0), 0, 0)); /* */ $s = 21; case 21: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple$7 = _r$3; - r = _tuple$7[0]; - rest$1 = _tuple$7[1]; - err$3 = _tuple$7[2]; - if (!($interfaceIsEqual(err$3, $ifaceNil))) { - _tmp$22 = ptrType.nil; - _tmp$23 = err$3; - _ = _tmp$22; - err[0] = _tmp$23; - $s = -1; return [_, err[0]]; - } - if (!(r === sliceType$1.nil)) { - re.Rune = r; - t = rest$1; - p.push(re); - /* break BigSwitch; */ $s = 3; continue s; - } - /* } */ case 20: - _r$4 = p.parsePerlClassEscape(t, $subslice(new sliceType$1(re.Rune0), 0, 0)); /* */ $s = 22; case 22: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _tuple$8 = _r$4; - r$1 = _tuple$8[0]; - rest$2 = _tuple$8[1]; - if (!(r$1 === sliceType$1.nil)) { - re.Rune = r$1; - t = rest$2; - p.push(re); - /* break BigSwitch; */ $s = 3; continue s; - } - p.reuse(re); - _tuple$9 = p.parseEscape(t); - c = _tuple$9[0]; - t = _tuple$9[1]; - err[0] = _tuple$9[2]; - if (!($interfaceIsEqual(err[0], $ifaceNil))) { - _tmp$24 = ptrType.nil; - _tmp$25 = err[0]; - _ = _tmp$24; - err[0] = _tmp$25; - $s = -1; return [_, err[0]]; - } - p.literal(c); - $s = 15; continue; - /* } else { */ case 14: - _tuple$10 = nextRune(t); - c = _tuple$10[0]; - t = _tuple$10[1]; - err[0] = _tuple$10[2]; - if (!($interfaceIsEqual(err[0], $ifaceNil))) { - _tmp$26 = ptrType.nil; - _tmp$27 = err[0]; - _ = _tmp$26; - err[0] = _tmp$27; - $s = -1; return [_, err[0]]; - } - p.literal(c); - /* } */ case 15: - case 3: - lastRepeat = repeat$1; - $s = 1; continue; - case 2: - _r$5 = p.concat(); /* */ $s = 23; case 23: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$5; - _r$6 = p.swapVerticalBar(); /* */ $s = 26; case 26: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - /* */ if (_r$6) { $s = 24; continue; } - /* */ $s = 25; continue; - /* if (_r$6) { */ case 24: - p.stack = $subslice(p.stack, 0, (p.stack.$length - 1 >> 0)); - /* } */ case 25: - _r$7 = p.alternate(); /* */ $s = 27; case 27: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _r$7; - n = p.stack.$length; - if (!((n === 1))) { - _tmp$28 = ptrType.nil; - _tmp$29 = new Error.ptr("missing closing )", s[0]); - _ = _tmp$28; - err[0] = _tmp$29; - $s = -1; return [_, err[0]]; - } - _tmp$30 = (x = p.stack, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); - _tmp$31 = $ifaceNil; - _ = _tmp$30; - err[0] = _tmp$31; - $s = -1; return [_, err[0]]; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [_, err[0]]; } if($curGoroutine.asleep) { var $f = {$blk: parse$1, $c: true, $r, _, _2, _3, _4, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _struct, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$10, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, after, after$1, before, before$1, c, c$1, err, err$1, err$2, err$3, flags, lastRepeat, lit, max, min, n, ok, op$2, p, r, r$1, re, repeat$1, rest, rest$1, rest$2, s, t, x, $s, $deferred};return $f; } } + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "InterfaceType"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.expect(76); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + pos = _r$1; + _r$2 = p.expect(51); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + lbrace = _r$2; + list = sliceType$5.nil; + /* while (true) { */ case 6: + /* */ if ((p.tok === 4)) { $s = 9; continue; } + /* */ if ((p.tok === 88)) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if ((p.tok === 4)) { */ case 9: + _r$3 = p.parseMethodSpec(); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + f = _r$3; + /* */ if (f.Names === sliceType.nil) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (f.Names === sliceType.nil) { */ case 14: + _r$4 = p.embeddedElem(f.Type); /* */ $s = 16; case 16: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + f.Type = _r$4; + /* } */ case 15: + _r$5 = p.expectSemi(); /* */ $s = 17; case 17: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + f.Comment = _r$5; + list = $append(list, f); + $s = 12; continue; + /* } else if ((p.tok === 88)) { */ case 10: + _r$6 = p.embeddedElem($ifaceNil); /* */ $s = 18; case 18: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + typ = _r$6; + _r$7 = p.expectSemi(); /* */ $s = 19; case 19: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + comment = _r$7; + list = $append(list, new ast.Field.ptr(ptrType$34.nil, sliceType.nil, typ, ptrType$36.nil, comment)); + $s = 12; continue; + /* } else { */ case 11: + _r$8 = p.tryIdentOrType(); /* */ $s = 20; case 20: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + t = _r$8; + /* */ if (!($interfaceIsEqual(t, $ifaceNil))) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (!($interfaceIsEqual(t, $ifaceNil))) { */ case 21: + _r$9 = p.embeddedElem(t); /* */ $s = 24; case 24: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + typ$1 = _r$9; + _r$10 = p.expectSemi(); /* */ $s = 25; case 25: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + comment$1 = _r$10; + list = $append(list, new ast.Field.ptr(ptrType$34.nil, sliceType.nil, typ$1, ptrType$36.nil, comment$1)); + $s = 23; continue; + /* } else { */ case 22: + /* break parseElements; */ $s = 7; continue s; + /* } */ case 23: + /* } */ case 12: + case 8: + $s = 6; continue; + case 7: + _r$11 = p.expect(56); /* */ $s = 26; case 26: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + rbrace = _r$11; + $24r = new ast.InterfaceType.ptr(pos, new ast.FieldList.ptr(lbrace, list, rbrace), false); + $s = 27; case 27: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$9.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseInterfaceType, $c: true, $r, $24r, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, comment, comment$1, f, lbrace, list, p, pos, rbrace, t, typ, typ$1, $s, $deferred};return $f; } } }; - $ptrType(parser).prototype.parseRepeat = function parseRepeat(s) { - var _tuple, _tuple$1, max, min, ok, ok1, p, rest, s; - min = 0; - max = 0; - rest = ""; - ok = false; + $ptrType(parser).prototype.parseMapType = function parseMapType() { + var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, key, p, pos, value, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); p = this; - if (s === "" || !((s.charCodeAt(0) === 123))) { - return [min, max, rest, ok]; - } - s = $substring(s, 1); - ok1 = false; - _tuple = p.parseInt(s); - min = _tuple[0]; - s = _tuple[1]; - ok1 = _tuple[2]; - if (!ok1) { - return [min, max, rest, ok]; - } - if (s === "") { - return [min, max, rest, ok]; - } - if (!((s.charCodeAt(0) === 44))) { - max = min; - } else { - s = $substring(s, 1); - if (s === "") { - return [min, max, rest, ok]; - } - if (s.charCodeAt(0) === 125) { - max = -1; - } else { - _tuple$1 = p.parseInt(s); - max = _tuple$1[0]; - s = _tuple$1[1]; - ok1 = _tuple$1[2]; - if (!ok1) { - return [min, max, rest, ok]; - } else if (max < 0) { - min = -1; - } - } - } - if (s === "" || !((s.charCodeAt(0) === 125))) { - return [min, max, rest, ok]; - } - rest = $substring(s, 1); - ok = true; - return [min, max, rest, ok]; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "MapType"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.expect(77); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + pos = _r$1; + _r$2 = p.expect(50); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + _r$3 = p.parseType(); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + key = _r$3; + _r$4 = p.expect(55); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4; + _r$5 = p.parseType(); /* */ $s = 8; case 8: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + value = _r$5; + $24r = new ast.MapType.ptr(pos, key, value); + $s = 9; case 9: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$40.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseMapType, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, key, p, pos, value, $s, $deferred};return $f; } } }; - $ptrType(parser).prototype.parsePerlFlags = function parsePerlFlags(s) { - var _1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, c, capture, end, err, flags, name, p, re, rest, s, sawFlag, sign, t; - rest = ""; - err = $ifaceNil; + $ptrType(parser).prototype.parseChanType = function parseChanType() { + var {$24r, _r, _r$1, _r$2, _r$3, arrow, dir, p, pos, value, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); p = this; - t = s; - if (t.length > 4 && (t.charCodeAt(2) === 80) && (t.charCodeAt(3) === 60)) { - end = strings.IndexRune(t, 62); - if (end < 0) { - err = checkUTF8(t); - if (!($interfaceIsEqual(err, $ifaceNil))) { - _tmp = ""; - _tmp$1 = err; - rest = _tmp; - err = _tmp$1; - return [rest, err]; - } - _tmp$2 = ""; - _tmp$3 = new Error.ptr("invalid named capture", s); - rest = _tmp$2; - err = _tmp$3; - return [rest, err]; - } - capture = $substring(t, 0, (end + 1 >> 0)); - name = $substring(t, 4, end); - err = checkUTF8(name); - if (!($interfaceIsEqual(err, $ifaceNil))) { - _tmp$4 = ""; - _tmp$5 = err; - rest = _tmp$4; - err = _tmp$5; - return [rest, err]; - } - if (!isValidCaptureName(name)) { - _tmp$6 = ""; - _tmp$7 = new Error.ptr("invalid named capture", capture); - rest = _tmp$6; - err = _tmp$7; - return [rest, err]; - } - p.numCap = p.numCap + (1) >> 0; - re = p.op(128); - re.Cap = p.numCap; - re.Name = name; - _tmp$8 = $substring(t, (end + 1 >> 0)); - _tmp$9 = $ifaceNil; - rest = _tmp$8; - err = _tmp$9; - return [rest, err]; - } - c = 0; - t = $substring(t, 2); - flags = p.flags; - sign = 1; - sawFlag = false; - Loop: - while (true) { - if (!(!(t === ""))) { break; } - _tuple = nextRune(t); - c = _tuple[0]; - t = _tuple[1]; - err = _tuple[2]; - if (!($interfaceIsEqual(err, $ifaceNil))) { - _tmp$10 = ""; - _tmp$11 = err; - rest = _tmp$10; - err = _tmp$11; - return [rest, err]; - } - _1 = c; - if (_1 === (105)) { - flags = (flags | (1)) >>> 0; - sawFlag = true; - } else if (_1 === (109)) { - flags = (flags & ~(16)) << 16 >>> 16; - sawFlag = true; - } else if (_1 === (115)) { - flags = (flags | (8)) >>> 0; - sawFlag = true; - } else if (_1 === (85)) { - flags = (flags | (32)) >>> 0; - sawFlag = true; - } else if (_1 === (45)) { - if (sign < 0) { - break Loop; - } - sign = -1; - flags = ~flags << 16 >>> 16; - sawFlag = false; - } else if ((_1 === (58)) || (_1 === (41))) { - if (sign < 0) { - if (!sawFlag) { - break Loop; - } - flags = ~flags << 16 >>> 16; - } - if (c === 58) { - p.op(128); - } - p.flags = flags; - _tmp$12 = t; - _tmp$13 = $ifaceNil; - rest = _tmp$12; - err = _tmp$13; - return [rest, err]; - } else { - break Loop; - } - } - _tmp$14 = ""; - _tmp$15 = new Error.ptr("invalid or unsupported Perl syntax", $substring(s, 0, (s.length - t.length >> 0))); - rest = _tmp$14; - err = _tmp$15; - return [rest, err]; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "ChanType"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + pos = p.pos; + dir = 3; + arrow = 0; + /* */ if (p.tok === 63) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (p.tok === 63) { */ case 4: + $r = p.next(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (p.tok === 36) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (p.tok === 36) { */ case 8: + arrow = p.pos; + $r = p.next(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + dir = 1; + /* } */ case 9: + $s = 6; continue; + /* } else { */ case 5: + _r$1 = p.expect(36); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + arrow = _r$1; + _r$2 = p.expect(63); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + dir = 2; + /* } */ case 6: + _r$3 = p.parseType(); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + value = _r$3; + $24r = new ast.ChanType.ptr(pos, arrow, dir, value); + $s = 14; case 14: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$41.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseChanType, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, arrow, dir, p, pos, value, $s, $deferred};return $f; } } }; - isValidCaptureName = function isValidCaptureName$1(name) { - var _i, _ref, _rune, c, name; - if (name === "") { - return false; - } - _ref = name; - _i = 0; - while (true) { - if (!(_i < _ref.length)) { break; } - _rune = $decodeRune(_ref, _i); - c = _rune[0]; - if (!((c === 95)) && !isalnum(c)) { - return false; - } - _i += _rune[1]; - } - return true; + $ptrType(parser).prototype.parseTypeInstance = function parseTypeInstance(typ) { + var {$24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, closing, list, opening, p, typ, $s, $deferred, $r, $c} = $restore(this, {typ}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "TypeInstance"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.expect(50); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + opening = _r$1; + p.exprLev = p.exprLev + (1) >> 0; + list = sliceType$3.nil; + /* while (true) { */ case 5: + /* if (!(!((p.tok === 55)) && !((p.tok === 1)))) { break; } */ if(!(!((p.tok === 55)) && !((p.tok === 1)))) { $s = 6; continue; } + _r$2 = p.parseType(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + list = $append(list, _r$2); + _r$3 = p.atComma("type argument list", 55); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!_r$3) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!_r$3) { */ case 8: + /* break; */ $s = 6; continue; + /* } */ case 9: + $r = p.next(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 5; continue; + case 6: + p.exprLev = p.exprLev - (1) >> 0; + _r$4 = p.expectClosing(55, "type argument list"); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + closing = _r$4; + /* */ if (list.$length === 0) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (list.$length === 0) { */ case 13: + $r = p.errorExpected(closing, "type argument list"); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $24r = new ast.IndexExpr.ptr(typ, opening, new ast.BadExpr.ptr(opening + 1 >> 0, closing), closing); + $s = 16; case 16: return $24r; + /* } */ case 14: + $24r$1 = typeparams.PackIndexExpr(typ, opening, list, closing); + $s = 17; case 17: return $24r$1; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseTypeInstance, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, closing, list, opening, p, typ, $s, $deferred};return $f; } } }; - $ptrType(parser).prototype.parseInt = function parseInt(s) { - var i, n, ok, p, rest, s, t; - n = 0; - rest = ""; - ok = false; + $ptrType(parser).prototype.tryIdentOrType = function tryIdentOrType() { + var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, _1, _r, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, lbrack, lparen, p, rparen, typ, typ$1, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); p = this; - if (s === "" || s.charCodeAt(0) < 48 || 57 < s.charCodeAt(0)) { - return [n, rest, ok]; - } - if (s.length >= 2 && (s.charCodeAt(0) === 48) && 48 <= s.charCodeAt(1) && s.charCodeAt(1) <= 57) { - return [n, rest, ok]; - } - t = s; - while (true) { - if (!(!(s === "") && 48 <= s.charCodeAt(0) && s.charCodeAt(0) <= 57)) { break; } - s = $substring(s, 1); - } - rest = s; - ok = true; - t = $substring(t, 0, (t.length - s.length >> 0)); - i = 0; - while (true) { - if (!(i < t.length)) { break; } - if (n >= 100000000) { - n = -1; - break; - } - n = (($imul(n, 10)) + ((t.charCodeAt(i) >> 0)) >> 0) - 48 >> 0; - i = i + (1) >> 0; - } - return [n, rest, ok]; + _r = incNestLev(p); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([decNestLev, [_r]]); + _1 = p.tok; + /* */ if (_1 === (4)) { $s = 3; continue; } + /* */ if (_1 === (50)) { $s = 4; continue; } + /* */ if (_1 === (82)) { $s = 5; continue; } + /* */ if (_1 === (14)) { $s = 6; continue; } + /* */ if (_1 === (71)) { $s = 7; continue; } + /* */ if (_1 === (76)) { $s = 8; continue; } + /* */ if (_1 === (77)) { $s = 9; continue; } + /* */ if ((_1 === (63)) || (_1 === (36))) { $s = 10; continue; } + /* */ if (_1 === (49)) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (_1 === (4)) { */ case 3: + _r$1 = p.parseTypeName(ptrType$2.nil); /* */ $s = 13; case 13: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + typ = _r$1; + /* */ if (p.tok === 50) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (p.tok === 50) { */ case 14: + _r$2 = p.parseTypeInstance(typ); /* */ $s = 16; case 16: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + typ = _r$2; + /* } */ case 15: + $s = -1; return typ; + /* } else if (_1 === (50)) { */ case 4: + _r$3 = p.expect(50); /* */ $s = 17; case 17: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + lbrack = _r$3; + _r$4 = p.parseArrayType(lbrack, $ifaceNil); /* */ $s = 18; case 18: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r = _r$4; + $s = 19; case 19: return $24r; + /* } else if (_1 === (82)) { */ case 5: + _r$5 = p.parseStructType(); /* */ $s = 20; case 20: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $24r$1 = _r$5; + $s = 21; case 21: return $24r$1; + /* } else if (_1 === (14)) { */ case 6: + _r$6 = p.parsePointerType(); /* */ $s = 22; case 22: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $24r$2 = _r$6; + $s = 23; case 23: return $24r$2; + /* } else if (_1 === (71)) { */ case 7: + _r$7 = p.parseFuncType(); /* */ $s = 24; case 24: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $24r$3 = _r$7; + $s = 25; case 25: return $24r$3; + /* } else if (_1 === (76)) { */ case 8: + _r$8 = p.parseInterfaceType(); /* */ $s = 26; case 26: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + $24r$4 = _r$8; + $s = 27; case 27: return $24r$4; + /* } else if (_1 === (77)) { */ case 9: + _r$9 = p.parseMapType(); /* */ $s = 28; case 28: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + $24r$5 = _r$9; + $s = 29; case 29: return $24r$5; + /* } else if ((_1 === (63)) || (_1 === (36))) { */ case 10: + _r$10 = p.parseChanType(); /* */ $s = 30; case 30: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + $24r$6 = _r$10; + $s = 31; case 31: return $24r$6; + /* } else if (_1 === (49)) { */ case 11: + lparen = p.pos; + $r = p.next(); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$11 = p.parseType(); /* */ $s = 33; case 33: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + typ$1 = _r$11; + _r$12 = p.expect(54); /* */ $s = 34; case 34: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + rparen = _r$12; + $s = -1; return new ast.ParenExpr.ptr(lparen, typ$1, rparen); + /* } */ case 12: + case 2: + $s = -1; return $ifaceNil; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: tryIdentOrType, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, _1, _r, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, lbrack, lparen, p, rparen, typ, typ$1, $s, $deferred};return $f; } } }; - isCharClass = function isCharClass$1(re) { - var re; - return (re.Op === 3) && (re.Rune.$length === 1) || (re.Op === 4) || (re.Op === 5) || (re.Op === 6); + $ptrType(parser).prototype.parseStmtList = function parseStmtList() { + var {$24r, _r, _r$1, list, p, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + list = sliceType$7.nil; + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "StatementList"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + /* while (true) { */ case 4: + /* if (!(!((p.tok === 62)) && !((p.tok === 66)) && !((p.tok === 56)) && !((p.tok === 1)))) { break; } */ if(!(!((p.tok === 62)) && !((p.tok === 66)) && !((p.tok === 56)) && !((p.tok === 1)))) { $s = 5; continue; } + _r$1 = p.parseStmt(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + list = $append(list, _r$1); + $s = 4; continue; + case 5: + $24r = list; + $s = 7; case 7: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return list; } if($curGoroutine.asleep) { var $f = {$blk: parseStmtList, $c: true, $r, $24r, _r, _r$1, list, p, $s, $deferred};return $f; } } }; - matchRune = function matchRune$1(re, r) { - var _1, i, r, re, x, x$1, x$2, x$3; - _1 = re.Op; - if (_1 === (3)) { - return (re.Rune.$length === 1) && ((x = re.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) === r); - } else if (_1 === (4)) { - i = 0; - while (true) { - if (!(i < re.Rune.$length)) { break; } - if ((x$1 = re.Rune, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])) <= r && r <= (x$2 = re.Rune, x$3 = i + 1 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3]))) { - return true; - } - i = i + (2) >> 0; - } - return false; - } else if (_1 === (5)) { - return !((r === 10)); - } else if (_1 === (6)) { - return true; - } - return false; + $ptrType(parser).prototype.parseBody = function parseBody() { + var {$24r, _r, _r$1, _r$2, _r$3, lbrace, list, p, rbrace, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "Body"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.expect(51); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + lbrace = _r$1; + _r$2 = p.parseStmtList(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + list = _r$2; + _r$3 = p.expect2(56); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + rbrace = _r$3; + $24r = new ast.BlockStmt.ptr(lbrace, list, rbrace); + $s = 7; case 7: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$13.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseBody, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, lbrace, list, p, rbrace, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseBlockStmt = function parseBlockStmt() { + var {$24r, _r, _r$1, _r$2, _r$3, lbrace, list, p, rbrace, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "BlockStmt"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.expect(51); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + lbrace = _r$1; + _r$2 = p.parseStmtList(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + list = _r$2; + _r$3 = p.expect2(56); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + rbrace = _r$3; + $24r = new ast.BlockStmt.ptr(lbrace, list, rbrace); + $s = 7; case 7: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$13.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseBlockStmt, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, lbrace, list, p, rbrace, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseFuncTypeOrLit = function parseFuncTypeOrLit() { + var {$24r, $24r$1, _r, _r$1, _r$2, body, p, typ, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "FuncTypeOrLit"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.parseFuncType(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + typ = _r$1; + /* */ if (!((p.tok === 51))) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!((p.tok === 51))) { */ case 5: + $24r = typ; + $s = 7; case 7: return $24r; + /* } */ case 6: + p.exprLev = p.exprLev + (1) >> 0; + _r$2 = p.parseBody(); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + body = _r$2; + p.exprLev = p.exprLev - (1) >> 0; + $24r$1 = new ast.FuncLit.ptr(typ, body); + $s = 9; case 9: return $24r$1; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseFuncTypeOrLit, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, body, p, typ, $s, $deferred};return $f; } } }; - $ptrType(parser).prototype.parseVerticalBar = function parseVerticalBar() { - var {_r, _r$1, p, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $ptrType(parser).prototype.parseOperand = function parseOperand() { + var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, isIdent, lparen, p, pos, rparen, typ, x, x$1, x$2, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); p = this; - _r = p.concat(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r; - _r$1 = p.swapVerticalBar(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (!_r$1) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!_r$1) { */ case 2: - p.op(129); - /* } */ case 3: - $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: parseVerticalBar, $c: true, $r, _r, _r$1, p, $s};return $f; - }; - mergeCharClass = function mergeCharClass$1(dst, src) { - var _1, dst, src, x, x$1, x$2, x$3, x$4; - switch (0) { default: - _1 = dst.Op; - if (_1 === (6)) { - } else if (_1 === (5)) { - if (matchRune(src, 10)) { - dst.Op = 6; - } - } else if (_1 === (4)) { - if (src.Op === 3) { - dst.Rune = appendLiteral(dst.Rune, (x = src.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])), src.Flags); - } else { - dst.Rune = appendClass(dst.Rune, src.Rune); - } - } else if (_1 === (3)) { - if (((x$1 = src.Rune, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])) === (x$2 = dst.Rune, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0]))) && (src.Flags === dst.Flags)) { - break; - } - dst.Op = 4; - dst.Rune = appendLiteral($subslice(dst.Rune, 0, 0), (x$3 = dst.Rune, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])), dst.Flags); - dst.Rune = appendLiteral(dst.Rune, (x$4 = src.Rune, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])), src.Flags); - } - } + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "Operand"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _1 = p.tok; + /* */ if (_1 === (4)) { $s = 5; continue; } + /* */ if ((_1 === (5)) || (_1 === (6)) || (_1 === (7)) || (_1 === (8)) || (_1 === (9))) { $s = 6; continue; } + /* */ if (_1 === (49)) { $s = 7; continue; } + /* */ if (_1 === (71)) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (_1 === (4)) { */ case 5: + _r$1 = p.parseIdent(); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + x = _r$1; + $24r = x; + $s = 11; case 11: return $24r; + /* } else if ((_1 === (5)) || (_1 === (6)) || (_1 === (7)) || (_1 === (8)) || (_1 === (9))) { */ case 6: + x$1 = new ast.BasicLit.ptr(p.pos, p.tok, p.lit); + $r = p.next(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $24r$1 = x$1; + $s = 13; case 13: return $24r$1; + /* } else if (_1 === (49)) { */ case 7: + lparen = p.pos; + $r = p.next(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + p.exprLev = p.exprLev + (1) >> 0; + _r$2 = p.parseRhs(); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + x$2 = _r$2; + p.exprLev = p.exprLev - (1) >> 0; + _r$3 = p.expect(54); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + rparen = _r$3; + $24r$2 = new ast.ParenExpr.ptr(lparen, x$2, rparen); + $s = 17; case 17: return $24r$2; + /* } else if (_1 === (71)) { */ case 8: + _r$4 = p.parseFuncTypeOrLit(); /* */ $s = 18; case 18: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r$3 = _r$4; + $s = 19; case 19: return $24r$3; + /* } */ case 9: + case 4: + _r$5 = p.tryIdentOrType(); /* */ $s = 20; case 20: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + typ = _r$5; + /* */ if (!($interfaceIsEqual(typ, $ifaceNil))) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (!($interfaceIsEqual(typ, $ifaceNil))) { */ case 21: + _tuple = $assertType(typ, ptrType$2, true); + isIdent = _tuple[1]; + assert(!isIdent, "type cannot be identifier"); + $24r$4 = typ; + $s = 23; case 23: return $24r$4; + /* } */ case 22: + pos = p.pos; + $r = p.errorExpected(pos, "operand"); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.advance(stmtStart); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $24r$5 = new ast.BadExpr.ptr(pos, p.pos); + $s = 26; case 26: return $24r$5; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseOperand, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, isIdent, lparen, p, pos, rparen, typ, x, x$1, x$2, $s, $deferred};return $f; } } }; - $ptrType(parser).prototype.swapVerticalBar = function swapVerticalBar() { - var {_tmp, _tmp$1, n, p, re1, re1$1, re2, re3, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $ptrType(parser).prototype.parseSelector = function parseSelector(x) { + var {$24r, _r, _r$1, p, sel, x, $s, $deferred, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); p = this; - n = p.stack.$length; - if (n >= 3 && ((x = p.stack, x$1 = n - 2 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Op === 129) && isCharClass((x$2 = p.stack, x$3 = n - 1 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3]))) && isCharClass((x$4 = p.stack, x$5 = n - 3 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])))) { - re1 = (x$6 = p.stack, x$7 = n - 1 >> 0, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])); - re3 = (x$8 = p.stack, x$9 = n - 3 >> 0, ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + x$9])); - if (re1.Op > re3.Op) { - _tmp = re3; - _tmp$1 = re1; - re1 = _tmp; - re3 = _tmp$1; - (x$10 = p.stack, x$11 = n - 3 >> 0, ((x$11 < 0 || x$11 >= x$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + x$11] = re3)); - } - mergeCharClass(re3, re1); - p.reuse(re1); - p.stack = $subslice(p.stack, 0, (n - 1 >> 0)); - $s = -1; return true; - } - /* */ if (n >= 2) { $s = 1; continue; } + /* */ if (p.trace) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (n >= 2) { */ case 1: - re1$1 = (x$12 = p.stack, x$13 = n - 1 >> 0, ((x$13 < 0 || x$13 >= x$12.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + x$13])); - re2 = (x$14 = p.stack, x$15 = n - 2 >> 0, ((x$15 < 0 || x$15 >= x$14.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + x$15])); - /* */ if (re2.Op === 129) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (re2.Op === 129) { */ case 3: - /* */ if (n >= 3) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (n >= 3) { */ case 5: - $r = cleanAlt((x$16 = p.stack, x$17 = n - 3 >> 0, ((x$17 < 0 || x$17 >= x$16.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$16.$array[x$16.$offset + x$17]))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 6: - (x$18 = p.stack, x$19 = n - 2 >> 0, ((x$19 < 0 || x$19 >= x$18.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$18.$array[x$18.$offset + x$19] = re1$1)); - (x$20 = p.stack, x$21 = n - 1 >> 0, ((x$21 < 0 || x$21 >= x$20.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$20.$array[x$20.$offset + x$21] = re2)); - $s = -1; return true; - /* } */ case 4: + /* if (p.trace) { */ case 1: + _r = trace(p, "Selector"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); /* } */ case 2: - $s = -1; return false; - /* */ } return; } var $f = {$blk: swapVerticalBar, $c: true, $r, _tmp, _tmp$1, n, p, re1, re1$1, re2, re3, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; + _r$1 = p.parseIdent(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + sel = _r$1; + $24r = new ast.SelectorExpr.ptr(x, sel); + $s = 5; case 5: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseSelector, $c: true, $r, $24r, _r, _r$1, p, sel, x, $s, $deferred};return $f; } } }; - $ptrType(parser).prototype.parseRightParen = function parseRightParen() { - var {_r, _r$1, _r$2, n, p, re1, re2, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $ptrType(parser).prototype.parseTypeAssertion = function parseTypeAssertion(x) { + var {$24r, _r, _r$1, _r$2, _r$3, lparen, p, rparen, typ, x, $s, $deferred, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); p = this; - _r = p.concat(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r; - _r$1 = p.swapVerticalBar(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (_r$1) { */ case 2: - p.stack = $subslice(p.stack, 0, (p.stack.$length - 1 >> 0)); - /* } */ case 3: - _r$2 = p.alternate(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - n = p.stack.$length; - if (n < 2) { - $s = -1; return new Error.ptr("unexpected )", p.wholeRegexp); - } - re1 = (x = p.stack, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); - re2 = (x$2 = p.stack, x$3 = n - 2 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])); - p.stack = $subslice(p.stack, 0, (n - 2 >> 0)); - if (!((re2.Op === 128))) { - $s = -1; return new Error.ptr("unexpected )", p.wholeRegexp); - } - p.flags = re2.Flags; - if (re2.Cap === 0) { - p.push(re1); - } else { - re2.Op = 13; - re2.Sub = $subslice(new sliceType$4(re2.Sub0), 0, 1); - (x$4 = re2.Sub, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0] = re1)); - p.push(re2); - } - $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: parseRightParen, $c: true, $r, _r, _r$1, _r$2, n, p, re1, re2, x, x$1, x$2, x$3, x$4, $s};return $f; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "TypeAssertion"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.expect(49); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + lparen = _r$1; + typ = $ifaceNil; + /* */ if (p.tok === 84) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (p.tok === 84) { */ case 5: + $r = p.next(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 7; continue; + /* } else { */ case 6: + _r$2 = p.parseType(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + typ = _r$2; + /* } */ case 7: + _r$3 = p.expect(54); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + rparen = _r$3; + $24r = new ast.TypeAssertExpr.ptr(x, lparen, typ, rparen); + $s = 11; case 11: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseTypeAssertion, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, lparen, p, rparen, typ, x, $s, $deferred};return $f; } } }; - $ptrType(parser).prototype.parseEscape = function parseEscape(s) { - var _1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$32, _tmp$33, _tmp$34, _tmp$35, _tmp$36, _tmp$37, _tmp$38, _tmp$39, _tmp$4, _tmp$40, _tmp$41, _tmp$42, _tmp$43, _tmp$44, _tmp$45, _tmp$46, _tmp$47, _tmp$48, _tmp$49, _tmp$5, _tmp$50, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, c, err, i, nhex, p, r, rest, s, t, v, x, y; - r = 0; - rest = ""; - err = $ifaceNil; + $ptrType(parser).prototype.parseIndexOrSliceOrInstance = function parseIndexOrSliceOrInstance(x) { + var {$24r, $24r$1, $24r$2, $24r$3, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, args, colons, index, lbrack, ncolons, p, rbrack, rbrack$1, slice3, x, $s, $deferred, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); p = this; - t = $substring(s, 1); - if (t === "") { - _tmp = 0; - _tmp$1 = ""; - _tmp$2 = new Error.ptr("trailing backslash at end of expression", ""); - r = _tmp; - rest = _tmp$1; - err = _tmp$2; - return [r, rest, err]; - } - _tuple = nextRune(t); - c = _tuple[0]; - t = _tuple[1]; - err = _tuple[2]; - if (!($interfaceIsEqual(err, $ifaceNil))) { - _tmp$3 = 0; - _tmp$4 = ""; - _tmp$5 = err; - r = _tmp$3; - rest = _tmp$4; - err = _tmp$5; - return [r, rest, err]; - } - Switch: - switch (0) { default: - _1 = c; - if ((_1 === (49)) || (_1 === (50)) || (_1 === (51)) || (_1 === (52)) || (_1 === (53)) || (_1 === (54)) || (_1 === (55))) { - if (t === "" || t.charCodeAt(0) < 48 || t.charCodeAt(0) > 55) { - break; - } - r = c - 48 >> 0; - i = 1; - while (true) { - if (!(i < 3)) { break; } - if (t === "" || t.charCodeAt(0) < 48 || t.charCodeAt(0) > 55) { - break; - } - r = (($imul(r, 8)) + ((t.charCodeAt(0) >> 0)) >> 0) - 48 >> 0; - t = $substring(t, 1); - i = i + (1) >> 0; - } - _tmp$6 = r; - _tmp$7 = t; - _tmp$8 = $ifaceNil; - r = _tmp$6; - rest = _tmp$7; - err = _tmp$8; - return [r, rest, err]; - } else if (_1 === (48)) { - r = c - 48 >> 0; - i = 1; - while (true) { - if (!(i < 3)) { break; } - if (t === "" || t.charCodeAt(0) < 48 || t.charCodeAt(0) > 55) { - break; - } - r = (($imul(r, 8)) + ((t.charCodeAt(0) >> 0)) >> 0) - 48 >> 0; - t = $substring(t, 1); - i = i + (1) >> 0; - } - _tmp$9 = r; - _tmp$10 = t; - _tmp$11 = $ifaceNil; - r = _tmp$9; - rest = _tmp$10; - err = _tmp$11; - return [r, rest, err]; - } else if (_1 === (120)) { - if (t === "") { - break; - } - _tuple$1 = nextRune(t); - c = _tuple$1[0]; - t = _tuple$1[1]; - err = _tuple$1[2]; - if (!($interfaceIsEqual(err, $ifaceNil))) { - _tmp$12 = 0; - _tmp$13 = ""; - _tmp$14 = err; - r = _tmp$12; - rest = _tmp$13; - err = _tmp$14; - return [r, rest, err]; - } - if (c === 123) { - nhex = 0; - r = 0; - while (true) { - if (t === "") { - break Switch; - } - _tuple$2 = nextRune(t); - c = _tuple$2[0]; - t = _tuple$2[1]; - err = _tuple$2[2]; - if (!($interfaceIsEqual(err, $ifaceNil))) { - _tmp$15 = 0; - _tmp$16 = ""; - _tmp$17 = err; - r = _tmp$15; - rest = _tmp$16; - err = _tmp$17; - return [r, rest, err]; - } - if (c === 125) { - break; - } - v = unhex(c); - if (v < 0) { - break Switch; - } - r = ($imul(r, 16)) + v >> 0; - if (r > 1114111) { - break Switch; - } - nhex = nhex + (1) >> 0; - } - if (nhex === 0) { - break Switch; - } - _tmp$18 = r; - _tmp$19 = t; - _tmp$20 = $ifaceNil; - r = _tmp$18; - rest = _tmp$19; - err = _tmp$20; - return [r, rest, err]; - } - x = unhex(c); - _tuple$3 = nextRune(t); - c = _tuple$3[0]; - t = _tuple$3[1]; - err = _tuple$3[2]; - if (!($interfaceIsEqual(err, $ifaceNil))) { - _tmp$21 = 0; - _tmp$22 = ""; - _tmp$23 = err; - r = _tmp$21; - rest = _tmp$22; - err = _tmp$23; - return [r, rest, err]; - } - y = unhex(c); - if (x < 0 || y < 0) { - break; - } - _tmp$24 = ($imul(x, 16)) + y >> 0; - _tmp$25 = t; - _tmp$26 = $ifaceNil; - r = _tmp$24; - rest = _tmp$25; - err = _tmp$26; - return [r, rest, err]; - } else if (_1 === (97)) { - _tmp$27 = 7; - _tmp$28 = t; - _tmp$29 = err; - r = _tmp$27; - rest = _tmp$28; - err = _tmp$29; - return [r, rest, err]; - } else if (_1 === (102)) { - _tmp$30 = 12; - _tmp$31 = t; - _tmp$32 = err; - r = _tmp$30; - rest = _tmp$31; - err = _tmp$32; - return [r, rest, err]; - } else if (_1 === (110)) { - _tmp$33 = 10; - _tmp$34 = t; - _tmp$35 = err; - r = _tmp$33; - rest = _tmp$34; - err = _tmp$35; - return [r, rest, err]; - } else if (_1 === (114)) { - _tmp$36 = 13; - _tmp$37 = t; - _tmp$38 = err; - r = _tmp$36; - rest = _tmp$37; - err = _tmp$38; - return [r, rest, err]; - } else if (_1 === (116)) { - _tmp$39 = 9; - _tmp$40 = t; - _tmp$41 = err; - r = _tmp$39; - rest = _tmp$40; - err = _tmp$41; - return [r, rest, err]; - } else if (_1 === (118)) { - _tmp$42 = 11; - _tmp$43 = t; - _tmp$44 = err; - r = _tmp$42; - rest = _tmp$43; - err = _tmp$44; - return [r, rest, err]; - } else if (c < 128 && !isalnum(c)) { - _tmp$45 = c; - _tmp$46 = t; - _tmp$47 = $ifaceNil; - r = _tmp$45; - rest = _tmp$46; - err = _tmp$47; - return [r, rest, err]; - } - } - _tmp$48 = 0; - _tmp$49 = ""; - _tmp$50 = new Error.ptr("invalid escape sequence", $substring(s, 0, (s.length - t.length >> 0))); - r = _tmp$48; - rest = _tmp$49; - err = _tmp$50; - return [r, rest, err]; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "parseIndexOrSliceOrInstance"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.expect(50); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + lbrack = _r$1; + /* */ if (p.tok === 55) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (p.tok === 55) { */ case 5: + $r = p.errorExpected(p.pos, "operand"); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + rbrack = p.pos; + $r = p.next(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $24r = new ast.IndexExpr.ptr(x, lbrack, new ast.BadExpr.ptr(rbrack, rbrack), rbrack); + $s = 9; case 9: return $24r; + /* } */ case 6: + p.exprLev = p.exprLev + (1) >> 0; + args = sliceType$3.nil; + index = arrayType.zero(); + colons = arrayType$1.zero(); + /* */ if (!((p.tok === 58))) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (!((p.tok === 58))) { */ case 10: + _r$2 = p.parseRhs(); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + index[0] = _r$2; + /* } */ case 11: + ncolons = 0; + _1 = p.tok; + /* */ if (_1 === (58)) { $s = 14; continue; } + /* */ if (_1 === (52)) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (_1 === (58)) { */ case 14: + /* while (true) { */ case 17: + /* if (!((p.tok === 58) && ncolons < 2)) { break; } */ if(!((p.tok === 58) && ncolons < 2)) { $s = 18; continue; } + ((ncolons < 0 || ncolons >= colons.length) ? ($throwRuntimeError("index out of range"), undefined) : colons[ncolons] = p.pos); + ncolons = ncolons + (1) >> 0; + $r = p.next(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!((p.tok === 58)) && !((p.tok === 55)) && !((p.tok === 1))) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (!((p.tok === 58)) && !((p.tok === 55)) && !((p.tok === 1))) { */ case 20: + _r$3 = p.parseRhs(); /* */ $s = 22; case 22: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + ((ncolons < 0 || ncolons >= index.length) ? ($throwRuntimeError("index out of range"), undefined) : index[ncolons] = _r$3); + /* } */ case 21: + $s = 17; continue; + case 18: + $s = 16; continue; + /* } else if (_1 === (52)) { */ case 15: + args = $append(args, index[0]); + /* while (true) { */ case 23: + /* if (!(p.tok === 52)) { break; } */ if(!(p.tok === 52)) { $s = 24; continue; } + $r = p.next(); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!((p.tok === 55)) && !((p.tok === 1))) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (!((p.tok === 55)) && !((p.tok === 1))) { */ case 26: + _r$4 = p.parseType(); /* */ $s = 28; case 28: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + args = $append(args, _r$4); + /* } */ case 27: + $s = 23; continue; + case 24: + /* } */ case 16: + case 13: + p.exprLev = p.exprLev - (1) >> 0; + _r$5 = p.expect(55); /* */ $s = 29; case 29: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + rbrack$1 = _r$5; + /* */ if (ncolons > 0) { $s = 30; continue; } + /* */ $s = 31; continue; + /* if (ncolons > 0) { */ case 30: + slice3 = false; + /* */ if (ncolons === 2) { $s = 32; continue; } + /* */ $s = 33; continue; + /* if (ncolons === 2) { */ case 32: + slice3 = true; + /* */ if ($interfaceIsEqual(index[1], $ifaceNil)) { $s = 34; continue; } + /* */ $s = 35; continue; + /* if ($interfaceIsEqual(index[1], $ifaceNil)) { */ case 34: + $r = p.error(colons[0], "middle index required in 3-index slice"); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + index[1] = new ast.BadExpr.ptr(colons[0] + 1 >> 0, colons[1]); + /* } */ case 35: + /* */ if ($interfaceIsEqual(index[2], $ifaceNil)) { $s = 37; continue; } + /* */ $s = 38; continue; + /* if ($interfaceIsEqual(index[2], $ifaceNil)) { */ case 37: + $r = p.error(colons[1], "final index required in 3-index slice"); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + index[2] = new ast.BadExpr.ptr(colons[1] + 1 >> 0, rbrack$1); + /* } */ case 38: + /* } */ case 33: + $24r$1 = new ast.SliceExpr.ptr(x, lbrack, index[0], index[1], index[2], slice3, rbrack$1); + $s = 40; case 40: return $24r$1; + /* } */ case 31: + /* */ if (args.$length === 0) { $s = 41; continue; } + /* */ $s = 42; continue; + /* if (args.$length === 0) { */ case 41: + $24r$2 = new ast.IndexExpr.ptr(x, lbrack, index[0], rbrack$1); + $s = 43; case 43: return $24r$2; + /* } */ case 42: + $24r$3 = typeparams.PackIndexExpr(x, lbrack, args, rbrack$1); + $s = 44; case 44: return $24r$3; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseIndexOrSliceOrInstance, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, args, colons, index, lbrack, ncolons, p, rbrack, rbrack$1, slice3, x, $s, $deferred};return $f; } } }; - $ptrType(parser).prototype.parseClassChar = function parseClassChar(s, wholeClass) { - var _tmp, _tmp$1, _tmp$2, _tuple, _tuple$1, err, p, r, rest, s, wholeClass; - r = 0; - rest = ""; - err = $ifaceNil; + $ptrType(parser).prototype.parseCallOrConversion = function parseCallOrConversion(fun) { + var {$24r, _r, _r$1, _r$2, _r$3, _r$4, ellipsis, fun, list, lparen, p, rparen, $s, $deferred, $r, $c} = $restore(this, {fun}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); p = this; - if (s === "") { - _tmp = 0; - _tmp$1 = ""; - _tmp$2 = new Error.ptr("missing closing ]", wholeClass); - r = _tmp; - rest = _tmp$1; - err = _tmp$2; - return [r, rest, err]; - } - if (s.charCodeAt(0) === 92) { - _tuple = p.parseEscape(s); - r = _tuple[0]; - rest = _tuple[1]; - err = _tuple[2]; - return [r, rest, err]; - } - _tuple$1 = nextRune(s); - r = _tuple$1[0]; - rest = _tuple$1[1]; - err = _tuple$1[2]; - return [r, rest, err]; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "CallOrConversion"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.expect(49); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + lparen = _r$1; + p.exprLev = p.exprLev + (1) >> 0; + list = sliceType$3.nil; + ellipsis = 0; + /* while (true) { */ case 5: + /* if (!(!((p.tok === 54)) && !((p.tok === 1)) && !new token.Pos(ellipsis).IsValid())) { break; } */ if(!(!((p.tok === 54)) && !((p.tok === 1)) && !new token.Pos(ellipsis).IsValid())) { $s = 6; continue; } + _r$2 = p.parseRhs(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + list = $append(list, _r$2); + /* */ if (p.tok === 48) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (p.tok === 48) { */ case 8: + ellipsis = p.pos; + $r = p.next(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 9: + _r$3 = p.atComma("argument list", 54); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!_r$3) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (!_r$3) { */ case 11: + /* break; */ $s = 6; continue; + /* } */ case 12: + $r = p.next(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 5; continue; + case 6: + p.exprLev = p.exprLev - (1) >> 0; + _r$4 = p.expectClosing(54, "argument list"); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + rparen = _r$4; + $24r = new ast.CallExpr.ptr(fun, lparen, list, ellipsis, rparen); + $s = 16; case 16: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$42.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseCallOrConversion, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, ellipsis, fun, list, lparen, p, rparen, $s, $deferred};return $f; } } }; - $ptrType(parser).prototype.parsePerlClassEscape = function parsePerlClassEscape(s, r) { - var {$24r, _entry, _r, _tmp, _tmp$1, g, out, p, r, rest, s, $s, $r, $c} = $restore(this, {s, r}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - out = sliceType$1.nil; - rest = ""; + $ptrType(parser).prototype.parseValue = function parseValue() { + var {$24r, $24r$1, _r, _r$1, _r$2, p, x, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); p = this; - if ((((p.flags & 64) >>> 0) === 0) || s.length < 2 || !((s.charCodeAt(0) === 92))) { - $s = -1; return [out, rest]; - } - g = $clone((_entry = $mapIndex(perlGroup,$String.keyFor($substring(s, 0, 2))), _entry !== undefined ? _entry.v : new charGroup.ptr(0, sliceType$1.nil)), charGroup); - if (g.sign === 0) { - $s = -1; return [out, rest]; - } - _r = p.appendGroup(r, $clone(g, charGroup)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tmp = _r; - _tmp$1 = $substring(s, 2); - out = _tmp; - rest = _tmp$1; - $24r = [out, rest]; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: parsePerlClassEscape, $c: true, $r, $24r, _entry, _r, _tmp, _tmp$1, g, out, p, r, rest, s, $s};return $f; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "Element"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + /* */ if (p.tok === 51) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (p.tok === 51) { */ case 4: + _r$1 = p.parseLiteralValue($ifaceNil); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 7; case 7: return $24r; + /* } */ case 5: + _r$2 = p.parseExpr(); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + x = _r$2; + $24r$1 = x; + $s = 9; case 9: return $24r$1; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseValue, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, p, x, $s, $deferred};return $f; } } }; - $ptrType(parser).prototype.parseNamedClass = function parseNamedClass(s, r) { - var {$24r, _entry, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, err, g, i, name, out, p, r, rest, s, $s, $r, $c} = $restore(this, {s, r}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - out = sliceType$1.nil; - rest = ""; - err = $ifaceNil; + $ptrType(parser).prototype.parseElement = function parseElement() { + var {$24r, _r, _r$1, _r$2, colon, p, x, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); p = this; - if (s.length < 2 || !((s.charCodeAt(0) === 91)) || !((s.charCodeAt(1) === 58))) { - $s = -1; return [out, rest, err]; - } - i = strings.Index($substring(s, 2), ":]"); - if (i < 0) { - $s = -1; return [out, rest, err]; - } - i = i + (2) >> 0; - _tmp = $substring(s, 0, (i + 2 >> 0)); - _tmp$1 = $substring(s, (i + 2 >> 0)); - name = _tmp; - s = _tmp$1; - g = $clone((_entry = $mapIndex(posixGroup,$String.keyFor(name)), _entry !== undefined ? _entry.v : new charGroup.ptr(0, sliceType$1.nil)), charGroup); - if (g.sign === 0) { - _tmp$2 = sliceType$1.nil; - _tmp$3 = ""; - _tmp$4 = new Error.ptr("invalid character class range", name); - out = _tmp$2; - rest = _tmp$3; - err = _tmp$4; - $s = -1; return [out, rest, err]; - } - _r = p.appendGroup(r, $clone(g, charGroup)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tmp$5 = _r; - _tmp$6 = s; - _tmp$7 = $ifaceNil; - out = _tmp$5; - rest = _tmp$6; - err = _tmp$7; - $24r = [out, rest, err]; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: parseNamedClass, $c: true, $r, $24r, _entry, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, err, g, i, name, out, p, r, rest, s, $s};return $f; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "Element"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.parseValue(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + x = _r$1; + /* */ if (p.tok === 58) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (p.tok === 58) { */ case 5: + colon = p.pos; + $r = p.next(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = p.parseValue(); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + x = new ast.KeyValueExpr.ptr(x, colon, _r$2); + /* } */ case 6: + $24r = x; + $s = 9; case 9: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseElement, $c: true, $r, $24r, _r, _r$1, _r$2, colon, p, x, $s, $deferred};return $f; } } }; - $ptrType(parser).prototype.appendGroup = function appendGroup(r, g) { - var {_r, g, p, r, tmp, $s, $r, $c} = $restore(this, {r, g}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $ptrType(parser).prototype.parseElementList = function parseElementList() { + var {$24r, _r, _r$1, _r$2, list, p, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + list = sliceType$3.nil; p = this; - /* */ if (((p.flags & 1) >>> 0) === 0) { $s = 1; continue; } + /* */ if (p.trace) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (((p.flags & 1) >>> 0) === 0) { */ case 1: - if (g.sign < 0) { - r = appendNegatedClass(r, g.class$1); - } else { - r = appendClass(r, g.class$1); - } - $s = 3; continue; - /* } else { */ case 2: - tmp = $subslice(p.tmpClass, 0, 0); - tmp = appendFoldedClass(tmp, g.class$1); - p.tmpClass = tmp; - _r = cleanClass((p.$ptr_tmpClass || (p.$ptr_tmpClass = new ptrType$2(function() { return this.$target.tmpClass; }, function($v) { this.$target.tmpClass = $v; }, p)))); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - tmp = _r; - if (g.sign < 0) { - r = appendNegatedClass(r, tmp); - } else { - r = appendClass(r, tmp); - } - /* } */ case 3: - $s = -1; return r; - /* */ } return; } var $f = {$blk: appendGroup, $c: true, $r, _r, g, p, r, tmp, $s};return $f; - }; - unicodeTable = function unicodeTable$1(name) { - var _entry, _entry$1, _entry$2, _entry$3, name, t, t$1; - if (name === "Any") { - return [anyTable, anyTable]; - } - t = (_entry = $mapIndex(unicode.Categories,$String.keyFor(name)), _entry !== undefined ? _entry.v : ptrType$3.nil); - if (!(t === ptrType$3.nil)) { - return [t, (_entry$1 = $mapIndex(unicode.FoldCategory,$String.keyFor(name)), _entry$1 !== undefined ? _entry$1.v : ptrType$3.nil)]; - } - t$1 = (_entry$2 = $mapIndex(unicode.Scripts,$String.keyFor(name)), _entry$2 !== undefined ? _entry$2.v : ptrType$3.nil); - if (!(t$1 === ptrType$3.nil)) { - return [t$1, (_entry$3 = $mapIndex(unicode.FoldScript,$String.keyFor(name)), _entry$3 !== undefined ? _entry$3.v : ptrType$3.nil)]; - } - return [ptrType$3.nil, ptrType$3.nil]; + /* if (p.trace) { */ case 1: + _r = trace(p, "ElementList"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + /* while (true) { */ case 4: + /* if (!(!((p.tok === 56)) && !((p.tok === 1)))) { break; } */ if(!(!((p.tok === 56)) && !((p.tok === 1)))) { $s = 5; continue; } + _r$1 = p.parseElement(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + list = $append(list, _r$1); + _r$2 = p.atComma("composite literal", 56); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (!_r$2) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!_r$2) { */ case 7: + /* break; */ $s = 5; continue; + /* } */ case 8: + $r = p.next(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 4; continue; + case 5: + $24r = list; + $s = 11; case 11: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return list; } if($curGoroutine.asleep) { var $f = {$blk: parseElementList, $c: true, $r, $24r, _r, _r$1, _r$2, list, p, $s, $deferred};return $f; } } }; - $ptrType(parser).prototype.parseUnicodeClass = function parseUnicodeClass(s, r) { - var {_r, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, c, end, err, fold, name, out, p, r, rest, s, seq, sign, t, tab, tmp, $s, $r, $c} = $restore(this, {s, r}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - out = sliceType$1.nil; - rest = ""; - err = $ifaceNil; + $ptrType(parser).prototype.parseLiteralValue = function parseLiteralValue(typ) { + var {$24r, _r, _r$1, _r$2, _r$3, elts, lbrace, p, rbrace, typ, $s, $deferred, $r, $c} = $restore(this, {typ}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); p = this; - if ((((p.flags & 128) >>> 0) === 0) || s.length < 2 || !((s.charCodeAt(0) === 92)) || !((s.charCodeAt(1) === 112)) && !((s.charCodeAt(1) === 80))) { - $s = -1; return [out, rest, err]; - } - sign = 1; - if (s.charCodeAt(1) === 80) { - sign = -1; - } - t = $substring(s, 2); - _tuple = nextRune(t); - c = _tuple[0]; - t = _tuple[1]; - err = _tuple[2]; - if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [out, rest, err]; - } - _tmp = ""; - _tmp$1 = ""; - seq = _tmp; - name = _tmp$1; - if (!((c === 123))) { - seq = $substring(s, 0, (s.length - t.length >> 0)); - name = $substring(seq, 2); - } else { - end = strings.IndexRune(s, 125); - if (end < 0) { - err = checkUTF8(s); - if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [out, rest, err]; - } - _tmp$2 = sliceType$1.nil; - _tmp$3 = ""; - _tmp$4 = new Error.ptr("invalid character class range", s); - out = _tmp$2; - rest = _tmp$3; - err = _tmp$4; - $s = -1; return [out, rest, err]; - } - _tmp$5 = $substring(s, 0, (end + 1 >> 0)); - _tmp$6 = $substring(s, (end + 1 >> 0)); - seq = _tmp$5; - t = _tmp$6; - name = $substring(s, 3, end); - err = checkUTF8(name); - if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [out, rest, err]; - } - } - if (!(name === "") && (name.charCodeAt(0) === 94)) { - sign = -sign; - name = $substring(name, 1); - } - _tuple$1 = unicodeTable(name); - tab = _tuple$1[0]; - fold = _tuple$1[1]; - if (tab === ptrType$3.nil) { - _tmp$7 = sliceType$1.nil; - _tmp$8 = ""; - _tmp$9 = new Error.ptr("invalid character class range", seq); - out = _tmp$7; - rest = _tmp$8; - err = _tmp$9; - $s = -1; return [out, rest, err]; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "LiteralValue"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.expect(51); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + lbrace = _r$1; + elts = sliceType$3.nil; + p.exprLev = p.exprLev + (1) >> 0; + /* */ if (!((p.tok === 56))) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!((p.tok === 56))) { */ case 5: + _r$2 = p.parseElementList(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + elts = _r$2; + /* } */ case 6: + p.exprLev = p.exprLev - (1) >> 0; + _r$3 = p.expectClosing(56, "composite literal"); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + rbrace = _r$3; + $24r = new ast.CompositeLit.ptr(typ, lbrace, elts, rbrace, false); + $s = 9; case 9: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseLiteralValue, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, elts, lbrace, p, rbrace, typ, $s, $deferred};return $f; } } + }; + unparen = function unparen$1(x) { + var _tuple, isParen, p, x; + _tuple = $assertType(x, ptrType$43, true); + p = _tuple[0]; + isParen = _tuple[1]; + if (isParen) { + x = unparen(p.X); } - /* */ if ((((p.flags & 1) >>> 0) === 0) || fold === ptrType$3.nil) { $s = 1; continue; } + return x; + }; + $ptrType(parser).prototype.parsePrimaryExpr = function parsePrimaryExpr(x) { + var {$24r, $24r$1, $24r$2, $24r$3, _1, _2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, n, p, pos, sel, t, x, $s, $deferred, $r, $c} = $restore(this, {x}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + n = [n]; + p = [p]; + p[0] = this; + /* */ if (p[0].trace) { $s = 1; continue; } /* */ $s = 2; continue; - /* if ((((p.flags & 1) >>> 0) === 0) || fold === ptrType$3.nil) { */ case 1: - if (sign > 0) { - r = appendTable(r, tab); - } else { - r = appendNegatedTable(r, tab); - } - $s = 3; continue; - /* } else { */ case 2: - tmp = $subslice(p.tmpClass, 0, 0); - tmp = appendTable(tmp, tab); - tmp = appendTable(tmp, fold); - p.tmpClass = tmp; - _r = cleanClass((p.$ptr_tmpClass || (p.$ptr_tmpClass = new ptrType$2(function() { return this.$target.tmpClass; }, function($v) { this.$target.tmpClass = $v; }, p)))); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - tmp = _r; - if (sign > 0) { - r = appendClass(r, tmp); - } else { - r = appendNegatedClass(r, tmp); - } + /* if (p[0].trace) { */ case 1: + _r = trace(p[0], "PrimaryExpr"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + /* */ if ($interfaceIsEqual(x, $ifaceNil)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ($interfaceIsEqual(x, $ifaceNil)) { */ case 4: + _r$1 = p[0].parseOperand(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + x = _r$1; + /* } */ case 5: + n[0] = 0; + $deferred.push([(function(n, p) { return function parser·parsePrimaryExpr·func1() { + p[0].nestLev = p[0].nestLev - (n[0]) >> 0; + }; })(n, p), []]); + n[0] = 1; + /* while (true) { */ case 7: + _r$2 = incNestLev(p[0]); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + _1 = p[0].tok; + /* */ if (_1 === (53)) { $s = 11; continue; } + /* */ if (_1 === (50)) { $s = 12; continue; } + /* */ if (_1 === (49)) { $s = 13; continue; } + /* */ if (_1 === (51)) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (_1 === (53)) { */ case 11: + $r = p[0].next(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _2 = p[0].tok; + /* */ if (_2 === (4)) { $s = 19; continue; } + /* */ if (_2 === (49)) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (_2 === (4)) { */ case 19: + _r$3 = p[0].parseSelector(x); /* */ $s = 23; case 23: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + x = _r$3; + $s = 22; continue; + /* } else if (_2 === (49)) { */ case 20: + _r$4 = p[0].parseTypeAssertion(x); /* */ $s = 24; case 24: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + x = _r$4; + $s = 22; continue; + /* } else { */ case 21: + pos = p[0].pos; + $r = p[0].errorExpected(pos, "selector or type assertion"); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!((p[0].tok === 56))) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (!((p[0].tok === 56))) { */ case 26: + $r = p[0].next(); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 27: + sel = new ast.Ident.ptr(pos, "_", ptrType$3.nil); + x = new ast.SelectorExpr.ptr(x, sel); + /* } */ case 22: + case 18: + $s = 16; continue; + /* } else if (_1 === (50)) { */ case 12: + _r$5 = p[0].parseIndexOrSliceOrInstance(x); /* */ $s = 29; case 29: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + x = _r$5; + $s = 16; continue; + /* } else if (_1 === (49)) { */ case 13: + _r$6 = p[0].parseCallOrConversion(x); /* */ $s = 30; case 30: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + x = _r$6; + $s = 16; continue; + /* } else if (_1 === (51)) { */ case 14: + t = unparen(x); + _ref = t; + /* */ if ($assertType(_ref, ptrType$44, true)[1] || $assertType(_ref, ptrType$2, true)[1] || $assertType(_ref, ptrType$5, true)[1]) { $s = 31; continue; } + /* */ if ($assertType(_ref, ptrType$29, true)[1] || $assertType(_ref, ptrType$30, true)[1]) { $s = 32; continue; } + /* */ if ($assertType(_ref, ptrType$35, true)[1] || $assertType(_ref, ptrType$6, true)[1] || $assertType(_ref, ptrType$40, true)[1]) { $s = 33; continue; } + /* */ $s = 34; continue; + /* if ($assertType(_ref, ptrType$44, true)[1] || $assertType(_ref, ptrType$2, true)[1] || $assertType(_ref, ptrType$5, true)[1]) { */ case 31: + /* */ if (p[0].exprLev < 0) { $s = 36; continue; } + /* */ $s = 37; continue; + /* if (p[0].exprLev < 0) { */ case 36: + $24r = x; + $s = 38; case 38: return $24r; + /* } */ case 37: + $s = 35; continue; + /* } else if ($assertType(_ref, ptrType$29, true)[1] || $assertType(_ref, ptrType$30, true)[1]) { */ case 32: + /* */ if (p[0].exprLev < 0) { $s = 39; continue; } + /* */ $s = 40; continue; + /* if (p[0].exprLev < 0) { */ case 39: + $24r$1 = x; + $s = 41; case 41: return $24r$1; + /* } */ case 40: + $s = 35; continue; + /* } else if ($assertType(_ref, ptrType$35, true)[1] || $assertType(_ref, ptrType$6, true)[1] || $assertType(_ref, ptrType$40, true)[1]) { */ case 33: + $s = 35; continue; + /* } else { */ case 34: + $24r$2 = x; + $s = 42; case 42: return $24r$2; + /* } */ case 35: + /* */ if (!($interfaceIsEqual(t, x))) { $s = 43; continue; } + /* */ $s = 44; continue; + /* if (!($interfaceIsEqual(t, x))) { */ case 43: + _r$7 = t.Pos(); /* */ $s = 45; case 45: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $r = p[0].error(_r$7, "cannot parenthesize type in composite literal"); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 44: + _r$8 = p[0].parseLiteralValue(x); /* */ $s = 47; case 47: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + x = _r$8; + $s = 16; continue; + /* } else { */ case 15: + $24r$3 = x; + $s = 48; case 48: return $24r$3; + /* } */ case 16: + case 10: + n[0] = n[0] + (1) >> 0; + $s = 7; continue; + case 8: + $s = -1; return $ifaceNil; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parsePrimaryExpr, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, _1, _2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, n, p, pos, sel, t, x, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseUnaryExpr = function parseUnaryExpr() { + var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tuple, _tuple$1, arrow, dir, ok, op, p, pos, pos$1, typ, x, x$1, x$2, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + _r = incNestLev(p); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([decNestLev, [_r]]); + /* */ if (p.trace) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (p.trace) { */ case 2: + _r$1 = trace(p, "UnaryExpr"); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $deferred.push([un, [_r$1]]); /* } */ case 3: - _tmp$10 = r; - _tmp$11 = t; - _tmp$12 = $ifaceNil; - out = _tmp$10; - rest = _tmp$11; - err = _tmp$12; - $s = -1; return [out, rest, err]; - /* */ } return; } var $f = {$blk: parseUnicodeClass, $c: true, $r, _r, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, c, end, err, fold, name, out, p, r, rest, s, seq, sign, t, tab, tmp, $s};return $f; + _1 = p.tok; + /* */ if ((_1 === (12)) || (_1 === (13)) || (_1 === (43)) || (_1 === (19)) || (_1 === (17)) || (_1 === (88))) { $s = 6; continue; } + /* */ if (_1 === (36)) { $s = 7; continue; } + /* */ if (_1 === (14)) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if ((_1 === (12)) || (_1 === (13)) || (_1 === (43)) || (_1 === (19)) || (_1 === (17)) || (_1 === (88))) { */ case 6: + _tmp = p.pos; + _tmp$1 = p.tok; + pos = _tmp; + op = _tmp$1; + $r = p.next(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = p.parseUnaryExpr(); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + x = _r$2; + $24r = new ast.UnaryExpr.ptr(pos, op, x); + $s = 12; case 12: return $24r; + /* } else if (_1 === (36)) { */ case 7: + arrow = p.pos; + $r = p.next(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$3 = p.parseUnaryExpr(); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + x$1 = _r$3; + _tuple = $assertType(x$1, ptrType$41, true); + typ = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (ok) { */ case 15: + dir = 1; + /* while (true) { */ case 17: + /* if (!(ok && (dir === 1))) { break; } */ if(!(ok && (dir === 1))) { $s = 18; continue; } + /* */ if (typ.Dir === 2) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (typ.Dir === 2) { */ case 19: + $r = p.errorExpected(typ.Arrow, "'chan'"); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 20: + _tmp$2 = typ.Arrow; + _tmp$3 = arrow; + _tmp$4 = arrow; + arrow = _tmp$2; + typ.Begin = _tmp$3; + typ.Arrow = _tmp$4; + _tmp$5 = typ.Dir; + _tmp$6 = 2; + dir = _tmp$5; + typ.Dir = _tmp$6; + _tuple$1 = $assertType(typ.Value, ptrType$41, true); + typ = _tuple$1[0]; + ok = _tuple$1[1]; + $s = 17; continue; + case 18: + /* */ if (dir === 1) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (dir === 1) { */ case 22: + $r = p.errorExpected(arrow, "channel type"); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 23: + $24r$1 = x$1; + $s = 25; case 25: return $24r$1; + /* } */ case 16: + $24r$2 = new ast.UnaryExpr.ptr(arrow, 36, x$1); + $s = 26; case 26: return $24r$2; + /* } else if (_1 === (14)) { */ case 8: + pos$1 = p.pos; + $r = p.next(); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$4 = p.parseUnaryExpr(); /* */ $s = 28; case 28: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + x$2 = _r$4; + $24r$3 = new ast.StarExpr.ptr(pos$1, x$2); + $s = 29; case 29: return $24r$3; + /* } */ case 9: + case 5: + _r$5 = p.parsePrimaryExpr($ifaceNil); /* */ $s = 30; case 30: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $24r$4 = _r$5; + $s = 31; case 31: return $24r$4; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseUnaryExpr, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tuple, _tuple$1, arrow, dir, ok, op, p, pos, pos$1, typ, x, x$1, x$2, $s, $deferred};return $f; } } }; - $ptrType(parser).prototype.parseClass = function parseClass(s) { - var {_r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, class$1, err, err$1, err$2, first, hi, lo, nclass, nclass$1, nclass$2, nt, nt$1, nt$2, p, re, rest, rng, s, sign, size, t, $s, $r, $c} = $restore(this, {s}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - rest = ""; - err = $ifaceNil; + $ptrType(parser).prototype.tokPrec = function tokPrec() { + var p, tok; p = this; - t = $substring(s, 1); - re = p.newRegexp(4); - re.Flags = p.flags; - re.Rune = $subslice(new sliceType$1(re.Rune0), 0, 0); - sign = 1; - if (!(t === "") && (t.charCodeAt(0) === 94)) { - sign = -1; - t = $substring(t, 1); - if (((p.flags & 4) >>> 0) === 0) { - re.Rune = $append(re.Rune, 10, 10); - } - } - class$1 = re.Rune; - first = true; - /* while (true) { */ case 1: - /* if (!(t === "" || !((t.charCodeAt(0) === 93)) || first)) { break; } */ if(!(t === "" || !((t.charCodeAt(0) === 93)) || first)) { $s = 2; continue; } - if (!(t === "") && (t.charCodeAt(0) === 45) && (((p.flags & 64) >>> 0) === 0) && !first && ((t.length === 1) || !((t.charCodeAt(1) === 93)))) { - _tuple = utf8.DecodeRuneInString($substring(t, 1)); - size = _tuple[1]; - _tmp = ""; - _tmp$1 = new Error.ptr("invalid character class range", $substring(t, 0, (1 + size >> 0))); - rest = _tmp; - err = _tmp$1; - $s = -1; return [rest, err]; - } - first = false; - /* */ if (t.length > 2 && (t.charCodeAt(0) === 91) && (t.charCodeAt(1) === 58)) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (t.length > 2 && (t.charCodeAt(0) === 91) && (t.charCodeAt(1) === 58)) { */ case 3: - _r = p.parseNamedClass(t, class$1); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple$1 = _r; - nclass = _tuple$1[0]; - nt = _tuple$1[1]; - err$1 = _tuple$1[2]; - if (!($interfaceIsEqual(err$1, $ifaceNil))) { - _tmp$2 = ""; - _tmp$3 = err$1; - rest = _tmp$2; - err = _tmp$3; - $s = -1; return [rest, err]; - } - if (!(nclass === sliceType$1.nil)) { - _tmp$4 = nclass; - _tmp$5 = nt; - class$1 = _tmp$4; - t = _tmp$5; - /* continue; */ $s = 1; continue; - } - /* } */ case 4: - _r$1 = p.parseUnicodeClass(t, class$1); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$2 = _r$1; - nclass$1 = _tuple$2[0]; - nt$1 = _tuple$2[1]; - err$2 = _tuple$2[2]; - if (!($interfaceIsEqual(err$2, $ifaceNil))) { - _tmp$6 = ""; - _tmp$7 = err$2; - rest = _tmp$6; - err = _tmp$7; - $s = -1; return [rest, err]; - } - if (!(nclass$1 === sliceType$1.nil)) { - _tmp$8 = nclass$1; - _tmp$9 = nt$1; - class$1 = _tmp$8; - t = _tmp$9; - /* continue; */ $s = 1; continue; - } - _r$2 = p.parsePerlClassEscape(t, class$1); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple$3 = _r$2; - nclass$2 = _tuple$3[0]; - nt$2 = _tuple$3[1]; - if (!(nclass$2 === sliceType$1.nil)) { - _tmp$10 = nclass$2; - _tmp$11 = nt$2; - class$1 = _tmp$10; - t = _tmp$11; - /* continue; */ $s = 1; continue; - } - rng = t; - _tmp$12 = 0; - _tmp$13 = 0; - lo = _tmp$12; - hi = _tmp$13; - _tuple$4 = p.parseClassChar(t, s); - lo = _tuple$4[0]; - t = _tuple$4[1]; - err$2 = _tuple$4[2]; - if (!($interfaceIsEqual(err$2, $ifaceNil))) { - _tmp$14 = ""; - _tmp$15 = err$2; - rest = _tmp$14; - err = _tmp$15; - $s = -1; return [rest, err]; - } - hi = lo; - if (t.length >= 2 && (t.charCodeAt(0) === 45) && !((t.charCodeAt(1) === 93))) { - t = $substring(t, 1); - _tuple$5 = p.parseClassChar(t, s); - hi = _tuple$5[0]; - t = _tuple$5[1]; - err$2 = _tuple$5[2]; - if (!($interfaceIsEqual(err$2, $ifaceNil))) { - _tmp$16 = ""; - _tmp$17 = err$2; - rest = _tmp$16; - err = _tmp$17; - $s = -1; return [rest, err]; - } - if (hi < lo) { - rng = $substring(rng, 0, (rng.length - t.length >> 0)); - _tmp$18 = ""; - _tmp$19 = new Error.ptr("invalid character class range", rng); - rest = _tmp$18; - err = _tmp$19; - $s = -1; return [rest, err]; - } - } - if (((p.flags & 1) >>> 0) === 0) { - class$1 = appendRange(class$1, lo, hi); - } else { - class$1 = appendFoldedRange(class$1, lo, hi); - } - $s = 1; continue; - case 2: - t = $substring(t, 1); - re.Rune = class$1; - _r$3 = cleanClass((re.$ptr_Rune || (re.$ptr_Rune = new ptrType$2(function() { return this.$target.Rune; }, function($v) { this.$target.Rune = $v; }, re)))); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - class$1 = _r$3; - if (sign < 0) { - class$1 = negateClass(class$1); + tok = p.tok; + if (p.inRhs && (tok === 42)) { + tok = 39; } - re.Rune = class$1; - p.push(re); - _tmp$20 = t; - _tmp$21 = $ifaceNil; - rest = _tmp$20; - err = _tmp$21; - $s = -1; return [rest, err]; - /* */ } return; } var $f = {$blk: parseClass, $c: true, $r, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, class$1, err, err$1, err$2, first, hi, lo, nclass, nclass$1, nclass$2, nt, nt$1, nt$2, p, re, rest, rng, s, sign, size, t, $s};return $f; + return [tok, new token.Token(tok).Precedence()]; }; - cleanClass = function cleanClass$1(rp) { - var {_tmp, _tmp$1, hi, i, lo, r, rp, w, x, x$1, x$2, x$3, x$4, x$5, $s, $r, $c} = $restore(this, {rp}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = sort.Sort((x = new ranges.ptr(rp), new x.constructor.elem(x))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - r = rp.$get(); - if (r.$length < 2) { - $s = -1; return r; - } - w = 2; - i = 2; - while (true) { - if (!(i < r.$length)) { break; } - _tmp = ((i < 0 || i >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + i]); - _tmp$1 = (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$1])); - lo = _tmp; - hi = _tmp$1; - if (lo <= ((x$2 = w - 1 >> 0, ((x$2 < 0 || x$2 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$2])) + 1 >> 0)) { - if (hi > (x$3 = w - 1 >> 0, ((x$3 < 0 || x$3 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$3]))) { - (x$4 = w - 1 >> 0, ((x$4 < 0 || x$4 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$4] = hi)); - } - i = i + (2) >> 0; - continue; - } - ((w < 0 || w >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + w] = lo); - (x$5 = w + 1 >> 0, ((x$5 < 0 || x$5 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$5] = hi)); - w = w + (2) >> 0; - i = i + (2) >> 0; - } - $s = -1; return $subslice(r, 0, w); - /* */ } return; } var $f = {$blk: cleanClass$1, $c: true, $r, _tmp, _tmp$1, hi, i, lo, r, rp, w, x, x$1, x$2, x$3, x$4, x$5, $s};return $f; + $ptrType(parser).prototype.parseBinaryExpr = function parseBinaryExpr(x, prec1) { + var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _tuple, n, op, oprec, p, pos, prec1, x, y, $s, $deferred, $r, $c} = $restore(this, {x, prec1}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + n = [n]; + p = [p]; + p[0] = this; + /* */ if (p[0].trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p[0].trace) { */ case 1: + _r = trace(p[0], "BinaryExpr"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + /* */ if ($interfaceIsEqual(x, $ifaceNil)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ($interfaceIsEqual(x, $ifaceNil)) { */ case 4: + _r$1 = p[0].parseUnaryExpr(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + x = _r$1; + /* } */ case 5: + n[0] = 0; + $deferred.push([(function(n, p) { return function parser·parseBinaryExpr·func1() { + p[0].nestLev = p[0].nestLev - (n[0]) >> 0; + }; })(n, p), []]); + n[0] = 1; + /* while (true) { */ case 7: + _r$2 = incNestLev(p[0]); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + _tuple = p[0].tokPrec(); + op = _tuple[0]; + oprec = _tuple[1]; + /* */ if (oprec < prec1) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (oprec < prec1) { */ case 10: + $24r = x; + $s = 12; case 12: return $24r; + /* } */ case 11: + _r$3 = p[0].expect(op); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + pos = _r$3; + _r$4 = p[0].parseBinaryExpr($ifaceNil, oprec + 1 >> 0); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + y = _r$4; + x = new ast.BinaryExpr.ptr(x, pos, op, y); + n[0] = n[0] + (1) >> 0; + $s = 7; continue; + case 8: + $s = -1; return $ifaceNil; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseBinaryExpr, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _tuple, n, op, oprec, p, pos, prec1, x, y, $s, $deferred};return $f; } } }; - appendLiteral = function appendLiteral$1(r, x, flags) { - var flags, r, x; - if (!((((flags & 1) >>> 0) === 0))) { - return appendFoldedRange(r, x, x); - } - return appendRange(r, x, x); + $ptrType(parser).prototype.parseExpr = function parseExpr() { + var {$24r, _r, _r$1, p, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "Expression"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.parseBinaryExpr($ifaceNil, 1); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 5; case 5: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseExpr, $c: true, $r, $24r, _r, _r$1, p, $s, $deferred};return $f; } } }; - appendRange = function appendRange$1(r, lo, hi) { - var _tmp, _tmp$1, hi, i, lo, n, r, rhi, rlo, x, x$1, x$2, x$3; - n = r.$length; - i = 2; - while (true) { - if (!(i <= 4)) { break; } - if (n >= i) { - _tmp = (x = n - i >> 0, ((x < 0 || x >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x])); - _tmp$1 = (x$1 = (n - i >> 0) + 1 >> 0, ((x$1 < 0 || x$1 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$1])); - rlo = _tmp; - rhi = _tmp$1; - if (lo <= (rhi + 1 >> 0) && rlo <= (hi + 1 >> 0)) { - if (lo < rlo) { - (x$2 = n - i >> 0, ((x$2 < 0 || x$2 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$2] = lo)); - } - if (hi > rhi) { - (x$3 = (n - i >> 0) + 1 >> 0, ((x$3 < 0 || x$3 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$3] = hi)); - } - return r; - } - } - i = i + (2) >> 0; - } - return $append(r, lo, hi); + $ptrType(parser).prototype.parseRhs = function parseRhs() { + var {_r, old, p, x, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + old = p.inRhs; + p.inRhs = true; + _r = p.parseExpr(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + x = _r; + p.inRhs = old; + $s = -1; return x; + /* */ } return; } var $f = {$blk: parseRhs, $c: true, $r, _r, old, p, x, $s};return $f; }; - appendFoldedRange = function appendFoldedRange$1(r, lo, hi) { - var c, f, hi, lo, r; - if (lo <= 65 && hi >= 125251) { - return appendRange(r, lo, hi); - } - if (hi < 65 || lo > 125251) { - return appendRange(r, lo, hi); - } - if (lo < 65) { - r = appendRange(r, lo, 64); - lo = 65; - } - if (hi > 125251) { - r = appendRange(r, 125252, hi); - hi = 125251; - } - c = lo; - while (true) { - if (!(c <= hi)) { break; } - r = appendRange(r, c, c); - f = unicode.SimpleFold(c); - while (true) { - if (!(!((f === c)))) { break; } - r = appendRange(r, f, f); - f = unicode.SimpleFold(f); - } - c = c + (1) >> 0; - } - return r; + $ptrType(parser).prototype.parseSimpleStmt = function parseSimpleStmt(mode) { + var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, _1, _2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tmp, _tmp$1, _tuple, arrow, colon, isIdent, isRange, label, mode, p, pos, pos$1, s, stmt, tok, x, y, y$1, $s, $deferred, $r, $c} = $restore(this, {mode}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "SimpleStmt"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.parseList(false); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + x = _r$1; + _1 = p.tok; + /* */ if ((_1 === (47)) || (_1 === (42)) || (_1 === (23)) || (_1 === (24)) || (_1 === (25)) || (_1 === (26)) || (_1 === (27)) || (_1 === (28)) || (_1 === (29)) || (_1 === (30)) || (_1 === (31)) || (_1 === (32)) || (_1 === (33))) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if ((_1 === (47)) || (_1 === (42)) || (_1 === (23)) || (_1 === (24)) || (_1 === (25)) || (_1 === (26)) || (_1 === (27)) || (_1 === (28)) || (_1 === (29)) || (_1 === (30)) || (_1 === (31)) || (_1 === (32)) || (_1 === (33))) { */ case 6: + _tmp = p.pos; + _tmp$1 = p.tok; + pos = _tmp; + tok = _tmp$1; + $r = p.next(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + y = sliceType$3.nil; + isRange = false; + /* */ if ((mode === 2) && (p.tok === 79) && ((tok === 47) || (tok === 42))) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if ((mode === 2) && (p.tok === 79) && ((tok === 47) || (tok === 42))) { */ case 9: + pos$1 = p.pos; + $r = p.next(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = p.parseRhs(); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + y = new sliceType$3([new ast.UnaryExpr.ptr(pos$1, 79, _r$2)]); + isRange = true; + $s = 11; continue; + /* } else { */ case 10: + _r$3 = p.parseList(true); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + y = _r$3; + /* } */ case 11: + $24r = [new ast.AssignStmt.ptr(x, pos, tok, y), isRange]; + $s = 15; case 15: return $24r; + /* } */ case 7: + case 5: + /* */ if (x.$length > 1) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (x.$length > 1) { */ case 16: + _r$4 = (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]).Pos(); /* */ $s = 18; case 18: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $r = p.errorExpected(_r$4, "1 expression"); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 17: + _2 = p.tok; + /* */ if (_2 === (58)) { $s = 21; continue; } + /* */ if (_2 === (36)) { $s = 22; continue; } + /* */ if ((_2 === (37)) || (_2 === (38))) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (_2 === (58)) { */ case 21: + colon = p.pos; + $r = p.next(); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tuple = $assertType((0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]), ptrType$2, true); + label = _tuple[0]; + isIdent = _tuple[1]; + /* */ if ((mode === 1) && isIdent) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if ((mode === 1) && isIdent) { */ case 26: + _r$5 = p.parseStmt(); /* */ $s = 28; case 28: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + stmt = new ast.LabeledStmt.ptr(label, colon, _r$5); + $24r$1 = [stmt, false]; + $s = 29; case 29: return $24r$1; + /* } */ case 27: + $r = p.error(colon, "illegal label declaration"); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$6 = (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]).Pos(); /* */ $s = 31; case 31: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $24r$2 = [new ast.BadStmt.ptr(_r$6, colon + 1 >> 0), false]; + $s = 32; case 32: return $24r$2; + /* } else if (_2 === (36)) { */ case 22: + arrow = p.pos; + $r = p.next(); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$7 = p.parseRhs(); /* */ $s = 34; case 34: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + y$1 = _r$7; + $24r$3 = [new ast.SendStmt.ptr((0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]), arrow, y$1), false]; + $s = 35; case 35: return $24r$3; + /* } else if ((_2 === (37)) || (_2 === (38))) { */ case 23: + s = new ast.IncDecStmt.ptr((0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]), p.pos, p.tok); + $r = p.next(); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $24r$4 = [s, false]; + $s = 37; case 37: return $24r$4; + /* } */ case 24: + case 20: + $24r$5 = [new ast.ExprStmt.ptr((0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])), false]; + $s = 38; case 38: return $24r$5; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [$ifaceNil, false]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseSimpleStmt, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, _1, _2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tmp, _tmp$1, _tuple, arrow, colon, isIdent, isRange, label, mode, p, pos, pos$1, s, stmt, tok, x, y, y$1, $s, $deferred};return $f; } } }; - appendClass = function appendClass$1(r, x) { - var i, r, x, x$1; - i = 0; - while (true) { - if (!(i < x.$length)) { break; } - r = appendRange(r, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]), (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1]))); - i = i + (2) >> 0; + $ptrType(parser).prototype.parseCallExpr = function parseCallExpr(callType) { + var {_arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, call, callType, isBad, isCall, p, t, x, $s, $r, $c} = $restore(this, {callType}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _r = p.parseRhs(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + x = _r; + t = unparen(x); + /* */ if (!($interfaceIsEqual(t, x))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(t, x))) { */ case 2: + _r$1 = x.Pos(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg = _r$1; + _r$2 = fmt.Sprintf("expression in %s must not be parenthesized", new sliceType$2([new $String(callType)])); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg$1 = _r$2; + $r = p.error(_arg, _arg$1); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + x = t; + /* } */ case 3: + _tuple = $assertType(x, ptrType$42, true); + call = _tuple[0]; + isCall = _tuple[1]; + if (isCall) { + $s = -1; return call; } - return r; + _tuple$1 = $assertType(x, ptrType$44, true); + isBad = _tuple$1[1]; + /* */ if (!isBad) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!isBad) { */ case 7: + _r$3 = x.End(); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$4 = p.safePos(_r$3); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _arg$2 = _r$4; + _r$5 = fmt.Sprintf("expression in %s must be function call", new sliceType$2([new $String(callType)])); /* */ $s = 11; case 11: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _arg$3 = _r$5; + $r = p.error(_arg$2, _arg$3); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 8: + $s = -1; return ptrType$42.nil; + /* */ } return; } var $f = {$blk: parseCallExpr, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, call, callType, isBad, isCall, p, t, x, $s};return $f; }; - appendFoldedClass = function appendFoldedClass$1(r, x) { - var i, r, x, x$1; - i = 0; - while (true) { - if (!(i < x.$length)) { break; } - r = appendFoldedRange(r, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]), (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1]))); - i = i + (2) >> 0; - } - return r; + $ptrType(parser).prototype.parseGoStmt = function parseGoStmt() { + var {$24r, $24r$1, _r, _r$1, _r$2, _r$3, call, p, pos, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "GoStmt"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.expect(72); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + pos = _r$1; + _r$2 = p.parseCallExpr("go"); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + call = _r$2; + _r$3 = p.expectSemi(); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + /* */ if (call === ptrType$42.nil) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (call === ptrType$42.nil) { */ case 7: + $24r = new ast.BadStmt.ptr(pos, pos + 2 >> 0); + $s = 9; case 9: return $24r; + /* } */ case 8: + $24r$1 = new ast.GoStmt.ptr(pos, call); + $s = 10; case 10: return $24r$1; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseGoStmt, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _r$3, call, p, pos, $s, $deferred};return $f; } } }; - appendNegatedClass = function appendNegatedClass$1(r, x) { - var _tmp, _tmp$1, hi, i, lo, nextLo, r, x, x$1; - nextLo = 0; - i = 0; - while (true) { - if (!(i < x.$length)) { break; } - _tmp = ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]); - _tmp$1 = (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); - lo = _tmp; - hi = _tmp$1; - if (nextLo <= (lo - 1 >> 0)) { - r = appendRange(r, nextLo, lo - 1 >> 0); - } - nextLo = hi + 1 >> 0; - i = i + (2) >> 0; - } - if (nextLo <= 1114111) { - r = appendRange(r, nextLo, 1114111); - } - return r; + $ptrType(parser).prototype.parseDeferStmt = function parseDeferStmt() { + var {$24r, $24r$1, _r, _r$1, _r$2, _r$3, call, p, pos, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "DeferStmt"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.expect(67); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + pos = _r$1; + _r$2 = p.parseCallExpr("defer"); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + call = _r$2; + _r$3 = p.expectSemi(); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + /* */ if (call === ptrType$42.nil) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (call === ptrType$42.nil) { */ case 7: + $24r = new ast.BadStmt.ptr(pos, pos + 5 >> 0); + $s = 9; case 9: return $24r; + /* } */ case 8: + $24r$1 = new ast.DeferStmt.ptr(pos, call); + $s = 10; case 10: return $24r$1; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseDeferStmt, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _r$3, call, p, pos, $s, $deferred};return $f; } } }; - appendTable = function appendTable$1(r, x) { - var _i, _i$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, c, c$1, hi, hi$1, lo, lo$1, r, stride, stride$1, x, xr, xr$1; - _ref = x.R16; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - xr = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), unicode.Range16); - _tmp = ((xr.Lo >> 0)); - _tmp$1 = ((xr.Hi >> 0)); - _tmp$2 = ((xr.Stride >> 0)); - lo = _tmp; - hi = _tmp$1; - stride = _tmp$2; - if (stride === 1) { - r = appendRange(r, lo, hi); - _i++; - continue; - } - c = lo; - while (true) { - if (!(c <= hi)) { break; } - r = appendRange(r, c, c); - c = c + (stride) >> 0; - } - _i++; - } - _ref$1 = x.R32; - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - xr$1 = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), unicode.Range32); - _tmp$3 = ((xr$1.Lo >> 0)); - _tmp$4 = ((xr$1.Hi >> 0)); - _tmp$5 = ((xr$1.Stride >> 0)); - lo$1 = _tmp$3; - hi$1 = _tmp$4; - stride$1 = _tmp$5; - if (stride$1 === 1) { - r = appendRange(r, lo$1, hi$1); - _i$1++; - continue; - } - c$1 = lo$1; - while (true) { - if (!(c$1 <= hi$1)) { break; } - r = appendRange(r, c$1, c$1); - c$1 = c$1 + (stride$1) >> 0; - } - _i$1++; - } - return r; + $ptrType(parser).prototype.parseReturnStmt = function parseReturnStmt() { + var {$24r, _r, _r$1, _r$2, _r$3, p, pos, x, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "ReturnStmt"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + pos = p.pos; + _r$1 = p.expect(80); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + x = sliceType$3.nil; + /* */ if (!((p.tok === 57)) && !((p.tok === 56))) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!((p.tok === 57)) && !((p.tok === 56))) { */ case 5: + _r$2 = p.parseList(true); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + x = _r$2; + /* } */ case 6: + _r$3 = p.expectSemi(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + $24r = new ast.ReturnStmt.ptr(pos, x); + $s = 9; case 9: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$45.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseReturnStmt, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, p, pos, x, $s, $deferred};return $f; } } }; - appendNegatedTable = function appendNegatedTable$1(r, x) { - var _i, _i$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, c, c$1, hi, hi$1, lo, lo$1, nextLo, r, stride, stride$1, x, xr, xr$1; - nextLo = 0; - _ref = x.R16; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - xr = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), unicode.Range16); - _tmp = ((xr.Lo >> 0)); - _tmp$1 = ((xr.Hi >> 0)); - _tmp$2 = ((xr.Stride >> 0)); - lo = _tmp; - hi = _tmp$1; - stride = _tmp$2; - if (stride === 1) { - if (nextLo <= (lo - 1 >> 0)) { - r = appendRange(r, nextLo, lo - 1 >> 0); - } - nextLo = hi + 1 >> 0; - _i++; - continue; - } - c = lo; - while (true) { - if (!(c <= hi)) { break; } - if (nextLo <= (c - 1 >> 0)) { - r = appendRange(r, nextLo, c - 1 >> 0); - } - nextLo = c + 1 >> 0; - c = c + (stride) >> 0; - } - _i++; + $ptrType(parser).prototype.parseBranchStmt = function parseBranchStmt(tok) { + var {$24r, _r, _r$1, _r$2, _r$3, label, p, pos, tok, $s, $deferred, $r, $c} = $restore(this, {tok}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "BranchStmt"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.expect(tok); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + pos = _r$1; + label = ptrType$2.nil; + /* */ if (!((tok === 69)) && (p.tok === 4)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!((tok === 69)) && (p.tok === 4)) { */ case 5: + _r$2 = p.parseIdent(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + label = _r$2; + /* } */ case 6: + _r$3 = p.expectSemi(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + $24r = new ast.BranchStmt.ptr(pos, tok, label); + $s = 9; case 9: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$12.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseBranchStmt, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, label, p, pos, tok, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.makeExpr = function makeExpr(s, want) { + var {$24r, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, es, found, isAss, isExpr, p, s, want, $s, $r, $c} = $restore(this, {s, want}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + if ($interfaceIsEqual(s, $ifaceNil)) { + $s = -1; return $ifaceNil; } - _ref$1 = x.R32; - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - xr$1 = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), unicode.Range32); - _tmp$3 = ((xr$1.Lo >> 0)); - _tmp$4 = ((xr$1.Hi >> 0)); - _tmp$5 = ((xr$1.Stride >> 0)); - lo$1 = _tmp$3; - hi$1 = _tmp$4; - stride$1 = _tmp$5; - if (stride$1 === 1) { - if (nextLo <= (lo$1 - 1 >> 0)) { - r = appendRange(r, nextLo, lo$1 - 1 >> 0); - } - nextLo = hi$1 + 1 >> 0; - _i$1++; - continue; - } - c$1 = lo$1; - while (true) { - if (!(c$1 <= hi$1)) { break; } - if (nextLo <= (c$1 - 1 >> 0)) { - r = appendRange(r, nextLo, c$1 - 1 >> 0); - } - nextLo = c$1 + 1 >> 0; - c$1 = c$1 + (stride$1) >> 0; - } - _i$1++; + _tuple = $assertType(s, ptrType$46, true); + es = _tuple[0]; + isExpr = _tuple[1]; + if (isExpr) { + $s = -1; return es.X; } - if (nextLo <= 1114111) { - r = appendRange(r, nextLo, 1114111); + found = "simple statement"; + _tuple$1 = $assertType(s, ptrType$11, true); + isAss = _tuple$1[1]; + if (isAss) { + found = "assignment"; } - return r; + _r = s.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg = _r; + _r$1 = fmt.Sprintf("expected %s, found %s (missing parentheses around composite literal?)", new sliceType$2([new $String(want), new $String(found)])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg$1 = _r$1; + $r = p.error(_arg, _arg$1); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = s.Pos(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = s.End(); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$4 = p.safePos(_r$3); /* */ $s = 6; case 6: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r = new ast.BadExpr.ptr(_r$2, _r$4); + $s = 7; case 7: return $24r; + /* */ } return; } var $f = {$blk: makeExpr, $c: true, $r, $24r, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, es, found, isAss, isExpr, p, s, want, $s};return $f; }; - negateClass = function negateClass$1(r) { - var _tmp, _tmp$1, hi, i, lo, nextLo, r, w, x, x$1; - nextLo = 0; - w = 0; - i = 0; - while (true) { - if (!(i < r.$length)) { break; } - _tmp = ((i < 0 || i >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + i]); - _tmp$1 = (x = i + 1 >> 0, ((x < 0 || x >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x])); - lo = _tmp; - hi = _tmp$1; - if (nextLo <= (lo - 1 >> 0)) { - ((w < 0 || w >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + w] = nextLo); - (x$1 = w + 1 >> 0, ((x$1 < 0 || x$1 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$1] = (lo - 1 >> 0))); - w = w + (2) >> 0; - } - nextLo = hi + 1 >> 0; - i = i + (2) >> 0; - } - r = $subslice(r, 0, w); - if (nextLo <= 1114111) { - r = $append(r, nextLo, 1114111); + $ptrType(parser).prototype.parseIfHeader = function parseIfHeader() { + var {_r, _r$1, _r$2, _r$3, _tuple, _tuple$1, cond, condStmt, init$1, p, prevLev, semi, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + init$1 = $ifaceNil; + cond = $ifaceNil; + p = this; + /* */ if (p.tok === 51) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.tok === 51) { */ case 1: + $r = p.error(p.pos, "missing condition in if statement"); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + cond = new ast.BadExpr.ptr(p.pos, p.pos); + $s = -1; return [init$1, cond]; + /* } */ case 2: + prevLev = p.exprLev; + p.exprLev = -1; + /* */ if (!((p.tok === 57))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!((p.tok === 57))) { */ case 4: + /* */ if (p.tok === 85) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (p.tok === 85) { */ case 6: + $r = p.next(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.error(p.pos, "var declaration not allowed in if initializer"); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 7: + _r = p.parseSimpleStmt(0); /* */ $s = 10; case 10: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + init$1 = _tuple[0]; + /* } */ case 5: + condStmt = $ifaceNil; + semi = new structType.ptr(0, ""); + /* */ if (!((p.tok === 51))) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (!((p.tok === 51))) { */ case 11: + /* */ if (p.tok === 57) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (p.tok === 57) { */ case 14: + semi.pos = p.pos; + semi.lit = p.lit; + $r = p.next(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 16; continue; + /* } else { */ case 15: + _r$1 = p.expect(57); /* */ $s = 18; case 18: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + /* } */ case 16: + /* */ if (!((p.tok === 51))) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (!((p.tok === 51))) { */ case 19: + _r$2 = p.parseSimpleStmt(0); /* */ $s = 21; case 21: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$1 = _r$2; + condStmt = _tuple$1[0]; + /* } */ case 20: + $s = 13; continue; + /* } else { */ case 12: + condStmt = init$1; + init$1 = $ifaceNil; + /* } */ case 13: + /* */ if (!($interfaceIsEqual(condStmt, $ifaceNil))) { $s = 22; continue; } + /* */ if (new token.Pos(semi.pos).IsValid()) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (!($interfaceIsEqual(condStmt, $ifaceNil))) { */ case 22: + _r$3 = p.makeExpr(condStmt, "boolean expression"); /* */ $s = 25; case 25: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + cond = _r$3; + $s = 24; continue; + /* } else if (new token.Pos(semi.pos).IsValid()) { */ case 23: + /* */ if (semi.lit === "\n") { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (semi.lit === "\n") { */ case 26: + $r = p.error(semi.pos, "unexpected newline, expecting { after if clause"); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 28; continue; + /* } else { */ case 27: + $r = p.error(semi.pos, "missing condition in if statement"); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 28: + /* } */ case 24: + if ($interfaceIsEqual(cond, $ifaceNil)) { + cond = new ast.BadExpr.ptr(p.pos, p.pos); } - return r; - }; - $ptrType(ranges).prototype.Less = function Less(i, j) { - var i, j, p, ra, x, x$1; - ra = this; - p = ra.p.$get(); - i = $imul(i, (2)); - j = $imul(j, (2)); - return ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]) < ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]) || (((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]) === ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j])) && (x = i + 1 >> 0, ((x < 0 || x >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x])) > (x$1 = j + 1 >> 0, ((x$1 < 0 || x$1 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$1])); + p.exprLev = prevLev; + $s = -1; return [init$1, cond]; + /* */ } return; } var $f = {$blk: parseIfHeader, $c: true, $r, _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, cond, condStmt, init$1, p, prevLev, semi, $s};return $f; }; - ranges.prototype.Less = function(...$args) { return this.$val.Less(...$args); }; - $ptrType(ranges).prototype.Len = function Len() { - var _q, ra; - ra = this; - return (_q = ra.p.$get().$length / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + $ptrType(parser).prototype.parseIfStmt = function parseIfStmt() { + var {$24r, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _tuple, body, cond, else_, init$1, p, pos, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + _r = incNestLev(p); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([decNestLev, [_r]]); + /* */ if (p.trace) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (p.trace) { */ case 2: + _r$1 = trace(p, "IfStmt"); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $deferred.push([un, [_r$1]]); + /* } */ case 3: + _r$2 = p.expect(74); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + pos = _r$2; + _r$3 = p.parseIfHeader(); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + init$1 = _tuple[0]; + cond = _tuple[1]; + _r$4 = p.parseBlockStmt(); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + body = _r$4; + else_ = $ifaceNil; + /* */ if (p.tok === 68) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (p.tok === 68) { */ case 8: + $r = p.next(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _1 = p.tok; + /* */ if (_1 === (74)) { $s = 13; continue; } + /* */ if (_1 === (51)) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (_1 === (74)) { */ case 13: + _r$5 = p.parseIfStmt(); /* */ $s = 17; case 17: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + else_ = _r$5; + $s = 16; continue; + /* } else if (_1 === (51)) { */ case 14: + _r$6 = p.parseBlockStmt(); /* */ $s = 18; case 18: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + else_ = _r$6; + _r$7 = p.expectSemi(); /* */ $s = 19; case 19: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$7; + $s = 16; continue; + /* } else { */ case 15: + $r = p.errorExpected(p.pos, "if statement or block"); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + else_ = new ast.BadStmt.ptr(p.pos, p.pos); + /* } */ case 16: + case 12: + $s = 10; continue; + /* } else { */ case 9: + _r$8 = p.expectSemi(); /* */ $s = 21; case 21: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$8; + /* } */ case 10: + $24r = new ast.IfStmt.ptr(pos, init$1, cond, body, else_); + $s = 22; case 22: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$14.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseIfStmt, $c: true, $r, $24r, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _tuple, body, cond, else_, init$1, p, pos, $s, $deferred};return $f; } } }; - ranges.prototype.Len = function(...$args) { return this.$val.Len(...$args); }; - $ptrType(ranges).prototype.Swap = function Swap(i, j) { - var _tmp, _tmp$1, _tmp$2, _tmp$3, i, j, p, ra, x, x$1, x$2, x$3; - ra = this; - p = ra.p.$get(); - i = $imul(i, (2)); - j = $imul(j, (2)); - _tmp = ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]); - _tmp$1 = (x = j + 1 >> 0, ((x < 0 || x >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x])); - _tmp$2 = ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]); - _tmp$3 = (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$1])); - ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i] = _tmp); - (x$2 = i + 1 >> 0, ((x$2 < 0 || x$2 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$2] = _tmp$1)); - ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j] = _tmp$2); - (x$3 = j + 1 >> 0, ((x$3 < 0 || x$3 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$3] = _tmp$3)); + $ptrType(parser).prototype.parseCaseClause = function parseCaseClause() { + var {$24r, _r, _r$1, _r$2, _r$3, _r$4, body, colon, list, p, pos, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "CaseClause"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + pos = p.pos; + list = sliceType$3.nil; + /* */ if (p.tok === 62) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (p.tok === 62) { */ case 4: + $r = p.next(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = p.parseList(true); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + list = _r$1; + $s = 6; continue; + /* } else { */ case 5: + _r$2 = p.expect(66); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + /* } */ case 6: + _r$3 = p.expect(58); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + colon = _r$3; + _r$4 = p.parseStmtList(); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + body = _r$4; + $24r = new ast.CaseClause.ptr(pos, list, colon, body); + $s = 12; case 12: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$15.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseCaseClause, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, body, colon, list, p, pos, $s, $deferred};return $f; } } }; - ranges.prototype.Swap = function(...$args) { return this.$val.Swap(...$args); }; - checkUTF8 = function checkUTF8$1(s) { - var _tuple, rune, s, size; - while (true) { - if (!(!(s === ""))) { break; } - _tuple = utf8.DecodeRuneInString(s); - rune = _tuple[0]; - size = _tuple[1]; - if ((rune === 65533) && (size === 1)) { - return new Error.ptr("invalid UTF-8", s); - } - s = $substring(s, size); - } - return $ifaceNil; + isTypeSwitchAssert = function isTypeSwitchAssert$1(x) { + var _tuple, a, ok, x; + _tuple = $assertType(x, ptrType$47, true); + a = _tuple[0]; + ok = _tuple[1]; + return ok && $interfaceIsEqual(a.Type, $ifaceNil); }; - nextRune = function nextRune$1(s) { - var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, c, err, s, size, t; - c = 0; - t = ""; - err = $ifaceNil; - _tuple = utf8.DecodeRuneInString(s); - c = _tuple[0]; - size = _tuple[1]; - if ((c === 65533) && (size === 1)) { - _tmp = 0; - _tmp$1 = ""; - _tmp$2 = new Error.ptr("invalid UTF-8", s); - c = _tmp; - t = _tmp$1; - err = _tmp$2; - return [c, t, err]; - } - _tmp$3 = c; - _tmp$4 = $substring(s, size); - _tmp$5 = $ifaceNil; - c = _tmp$3; - t = _tmp$4; - err = _tmp$5; - return [c, t, err]; + $ptrType(parser).prototype.isTypeSwitchGuard = function isTypeSwitchGuard(s) { + var {_1, _ref, p, s, t, t$1, x, $s, $r, $c} = $restore(this, {s}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _ref = s; + /* */ if ($assertType(_ref, ptrType$46, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if ($assertType(_ref, ptrType$46, true)[1]) { */ case 1: + t = _ref.$val; + $s = -1; return isTypeSwitchAssert(t.X); + /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 2: + t$1 = _ref.$val; + /* */ if ((t$1.Lhs.$length === 1) && (t$1.Rhs.$length === 1) && isTypeSwitchAssert((x = t$1.Rhs, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ((t$1.Lhs.$length === 1) && (t$1.Rhs.$length === 1) && isTypeSwitchAssert((x = t$1.Rhs, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])))) { */ case 4: + _1 = t$1.Tok; + /* */ if (_1 === (42)) { $s = 7; continue; } + /* */ if (_1 === (47)) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (_1 === (42)) { */ case 7: + $r = p.error(t$1.TokPos, "expected ':=', found '='"); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return true; + /* } else if (_1 === (47)) { */ case 8: + $s = -1; return true; + /* } */ case 9: + case 6: + /* } */ case 5: + /* } */ case 3: + $s = -1; return false; + /* */ } return; } var $f = {$blk: isTypeSwitchGuard, $c: true, $r, _1, _ref, p, s, t, t$1, x, $s};return $f; }; - isalnum = function isalnum$1(c) { - var c; - return 48 <= c && c <= 57 || 65 <= c && c <= 90 || 97 <= c && c <= 122; + $ptrType(parser).prototype.parseSwitchStmt = function parseSwitchStmt() { + var {$24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tuple, _tuple$1, body, lbrace, list, p, pos, prevLev, rbrace, s1, s2, typeSwitch, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "SwitchStmt"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.expect(83); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + pos = _r$1; + _tmp = $ifaceNil; + _tmp$1 = $ifaceNil; + s1 = _tmp; + s2 = _tmp$1; + /* */ if (!((p.tok === 51))) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!((p.tok === 51))) { */ case 5: + prevLev = p.exprLev; + p.exprLev = -1; + /* */ if (!((p.tok === 57))) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!((p.tok === 57))) { */ case 7: + _r$2 = p.parseSimpleStmt(0); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = _r$2; + s2 = _tuple[0]; + /* } */ case 8: + /* */ if (p.tok === 57) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (p.tok === 57) { */ case 10: + $r = p.next(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + s1 = s2; + s2 = $ifaceNil; + /* */ if (!((p.tok === 51))) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (!((p.tok === 51))) { */ case 13: + _r$3 = p.parseSimpleStmt(0); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$1 = _r$3; + s2 = _tuple$1[0]; + /* } */ case 14: + /* } */ case 11: + p.exprLev = prevLev; + /* } */ case 6: + _r$4 = p.isTypeSwitchGuard(s2); /* */ $s = 16; case 16: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + typeSwitch = _r$4; + _r$5 = p.expect(51); /* */ $s = 17; case 17: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + lbrace = _r$5; + list = sliceType$7.nil; + /* while (true) { */ case 18: + /* if (!((p.tok === 62) || (p.tok === 66))) { break; } */ if(!((p.tok === 62) || (p.tok === 66))) { $s = 19; continue; } + _r$6 = p.parseCaseClause(); /* */ $s = 20; case 20: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + list = $append(list, _r$6); + $s = 18; continue; + case 19: + _r$7 = p.expect(56); /* */ $s = 21; case 21: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + rbrace = _r$7; + _r$8 = p.expectSemi(); /* */ $s = 22; case 22: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$8; + body = new ast.BlockStmt.ptr(lbrace, list, rbrace); + /* */ if (typeSwitch) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (typeSwitch) { */ case 23: + $24r = new ast.TypeSwitchStmt.ptr(pos, s1, s2, body); + $s = 25; case 25: return $24r; + /* } */ case 24: + _r$9 = p.makeExpr(s2, "switch expression"); /* */ $s = 26; case 26: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + $24r$1 = new ast.SwitchStmt.ptr(pos, s1, _r$9, body); + $s = 27; case 27: return $24r$1; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseSwitchStmt, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tuple, _tuple$1, body, lbrace, list, p, pos, prevLev, rbrace, s1, s2, typeSwitch, $s, $deferred};return $f; } } }; - unhex = function unhex$1(c) { - var c; - if (48 <= c && c <= 57) { - return c - 48 >> 0; - } - if (97 <= c && c <= 102) { - return (c - 97 >> 0) + 10 >> 0; - } - if (65 <= c && c <= 70) { - return (c - 65 >> 0) + 10 >> 0; - } - return -1; + $ptrType(parser).prototype.parseCommClause = function parseCommClause() { + var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, arrow, body, colon, comm, lhs, p, pos, pos$1, rhs, rhs$1, tok, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "CommClause"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + pos = p.pos; + comm = $ifaceNil; + /* */ if (p.tok === 62) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (p.tok === 62) { */ case 4: + $r = p.next(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = p.parseList(false); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + lhs = _r$1; + /* */ if (p.tok === 36) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (p.tok === 36) { */ case 9: + /* */ if (lhs.$length > 1) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (lhs.$length > 1) { */ case 12: + _r$2 = (0 >= lhs.$length ? ($throwRuntimeError("index out of range"), undefined) : lhs.$array[lhs.$offset + 0]).Pos(); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $r = p.errorExpected(_r$2, "1 expression"); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 13: + arrow = p.pos; + $r = p.next(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$3 = p.parseRhs(); /* */ $s = 17; case 17: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + rhs = _r$3; + comm = new ast.SendStmt.ptr((0 >= lhs.$length ? ($throwRuntimeError("index out of range"), undefined) : lhs.$array[lhs.$offset + 0]), arrow, rhs); + $s = 11; continue; + /* } else { */ case 10: + tok = p.tok; + /* */ if ((tok === 42) || (tok === 47)) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if ((tok === 42) || (tok === 47)) { */ case 18: + /* */ if (lhs.$length > 2) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (lhs.$length > 2) { */ case 21: + _r$4 = (0 >= lhs.$length ? ($throwRuntimeError("index out of range"), undefined) : lhs.$array[lhs.$offset + 0]).Pos(); /* */ $s = 23; case 23: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $r = p.errorExpected(_r$4, "1 or 2 expressions"); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + lhs = $subslice(lhs, 0, 2); + /* } */ case 22: + pos$1 = p.pos; + $r = p.next(); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$5 = p.parseRhs(); /* */ $s = 26; case 26: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + rhs$1 = _r$5; + comm = new ast.AssignStmt.ptr(lhs, pos$1, tok, new sliceType$3([rhs$1])); + $s = 20; continue; + /* } else { */ case 19: + /* */ if (lhs.$length > 1) { $s = 27; continue; } + /* */ $s = 28; continue; + /* if (lhs.$length > 1) { */ case 27: + _r$6 = (0 >= lhs.$length ? ($throwRuntimeError("index out of range"), undefined) : lhs.$array[lhs.$offset + 0]).Pos(); /* */ $s = 29; case 29: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $r = p.errorExpected(_r$6, "1 expression"); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 28: + comm = new ast.ExprStmt.ptr((0 >= lhs.$length ? ($throwRuntimeError("index out of range"), undefined) : lhs.$array[lhs.$offset + 0])); + /* } */ case 20: + /* } */ case 11: + $s = 6; continue; + /* } else { */ case 5: + _r$7 = p.expect(66); /* */ $s = 31; case 31: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$7; + /* } */ case 6: + _r$8 = p.expect(58); /* */ $s = 32; case 32: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + colon = _r$8; + _r$9 = p.parseStmtList(); /* */ $s = 33; case 33: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + body = _r$9; + $24r = new ast.CommClause.ptr(pos, comm, colon, body); + $s = 34; case 34: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$18.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseCommClause, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, arrow, body, colon, comm, lhs, p, pos, pos$1, rhs, rhs$1, tok, $s, $deferred};return $f; } } }; - Op.prototype.String = function String$5() { - var i, x; - i = this.$val; - if (1 <= i && i <= 19) { - i = i - (1) << 24 >>> 24; - return $substring("NoMatchEmptyMatchLiteralCharClassAnyCharNotNLAnyCharBeginLineEndLineBeginTextEndTextWordBoundaryNoWordBoundaryCaptureStarPlusQuestRepeatConcatAlternate", ((i < 0 || i >= _Op_index_0.length) ? ($throwRuntimeError("index out of range"), undefined) : _Op_index_0[i]), (x = i + 1 << 24 >>> 24, ((x < 0 || x >= _Op_index_0.length) ? ($throwRuntimeError("index out of range"), undefined) : _Op_index_0[x]))); - } else if ((i === 128)) { - return "opPseudo"; - } else { - return "Op(" + strconv.FormatInt((new $Int64(0, i)), 10) + ")"; - } + $ptrType(parser).prototype.parseSelectStmt = function parseSelectStmt() { + var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, body, lbrace, list, p, pos, rbrace, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "SelectStmt"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.expect(81); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + pos = _r$1; + _r$2 = p.expect(51); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + lbrace = _r$2; + list = sliceType$7.nil; + /* while (true) { */ case 6: + /* if (!((p.tok === 62) || (p.tok === 66))) { break; } */ if(!((p.tok === 62) || (p.tok === 66))) { $s = 7; continue; } + _r$3 = p.parseCommClause(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + list = $append(list, _r$3); + $s = 6; continue; + case 7: + _r$4 = p.expect(56); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + rbrace = _r$4; + _r$5 = p.expectSemi(); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$5; + body = new ast.BlockStmt.ptr(lbrace, list, rbrace); + $24r = new ast.SelectStmt.ptr(pos, body); + $s = 11; case 11: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$19.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseSelectStmt, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, body, lbrace, list, p, pos, rbrace, $s, $deferred};return $f; } } }; - $ptrType(Op).prototype.String = function(...$args) { return new Op(this.$get()).String(...$args); }; - makePatchList = function makePatchList$1(n) { - var n; - return new patchList.ptr(n, n); + $ptrType(parser).prototype.parseForStmt = function parseForStmt() { + var {$24r, $24r$1, $24r$2, _1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tuple, _tuple$1, _tuple$2, as, body, isRange, key, p, pos, pos$1, prevLev, s1, s2, s3, value, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, y, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "ForStmt"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.expect(70); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + pos = _r$1; + _tmp = $ifaceNil; + _tmp$1 = $ifaceNil; + _tmp$2 = $ifaceNil; + s1 = _tmp; + s2 = _tmp$1; + s3 = _tmp$2; + isRange = false; + /* */ if (!((p.tok === 51))) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!((p.tok === 51))) { */ case 5: + prevLev = p.exprLev; + p.exprLev = -1; + /* */ if (!((p.tok === 57))) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!((p.tok === 57))) { */ case 7: + /* */ if (p.tok === 79) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (p.tok === 79) { */ case 9: + pos$1 = p.pos; + $r = p.next(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = p.parseRhs(); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + y = new sliceType$3([new ast.UnaryExpr.ptr(pos$1, 79, _r$2)]); + s2 = new ast.AssignStmt.ptr(sliceType$3.nil, 0, 0, y); + isRange = true; + $s = 11; continue; + /* } else { */ case 10: + _r$3 = p.parseSimpleStmt(2); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + s2 = _tuple[0]; + isRange = _tuple[1]; + /* } */ case 11: + /* } */ case 8: + /* */ if (!isRange && (p.tok === 57)) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (!isRange && (p.tok === 57)) { */ case 15: + $r = p.next(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + s1 = s2; + s2 = $ifaceNil; + /* */ if (!((p.tok === 57))) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (!((p.tok === 57))) { */ case 18: + _r$4 = p.parseSimpleStmt(0); /* */ $s = 20; case 20: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$1 = _r$4; + s2 = _tuple$1[0]; + /* } */ case 19: + _r$5 = p.expectSemi(); /* */ $s = 21; case 21: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$5; + /* */ if (!((p.tok === 51))) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (!((p.tok === 51))) { */ case 22: + _r$6 = p.parseSimpleStmt(0); /* */ $s = 24; case 24: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _tuple$2 = _r$6; + s3 = _tuple$2[0]; + /* } */ case 23: + /* } */ case 16: + p.exprLev = prevLev; + /* } */ case 6: + _r$7 = p.parseBlockStmt(); /* */ $s = 25; case 25: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + body = _r$7; + _r$8 = p.expectSemi(); /* */ $s = 26; case 26: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$8; + /* */ if (isRange) { $s = 27; continue; } + /* */ $s = 28; continue; + /* if (isRange) { */ case 27: + as = $assertType(s2, ptrType$11); + _tmp$3 = $ifaceNil; + _tmp$4 = $ifaceNil; + key = _tmp$3; + value = _tmp$4; + _1 = as.Lhs.$length; + /* */ if (_1 === (0)) { $s = 30; continue; } + /* */ if (_1 === (1)) { $s = 31; continue; } + /* */ if (_1 === (2)) { $s = 32; continue; } + /* */ $s = 33; continue; + /* if (_1 === (0)) { */ case 30: + $s = 34; continue; + /* } else if (_1 === (1)) { */ case 31: + key = (x = as.Lhs, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); + $s = 34; continue; + /* } else if (_1 === (2)) { */ case 32: + _tmp$5 = (x$1 = as.Lhs, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])); + _tmp$6 = (x$2 = as.Lhs, (1 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 1])); + key = _tmp$5; + value = _tmp$6; + $s = 34; continue; + /* } else { */ case 33: + _r$9 = (x$3 = as.Lhs, x$4 = as.Lhs.$length - 1 >> 0, ((x$4 < 0 || x$4 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + x$4])).Pos(); /* */ $s = 35; case 35: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + $r = p.errorExpected(_r$9, "at most 2 expressions"); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$10 = body.End(); /* */ $s = 37; case 37: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$11 = p.safePos(_r$10); /* */ $s = 38; case 38: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + $24r = new ast.BadStmt.ptr(pos, _r$11); + $s = 39; case 39: return $24r; + /* } */ case 34: + case 29: + x$6 = $assertType((x$5 = as.Rhs, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0])), ptrType$48).X; + _r$12 = (x$7 = as.Rhs, (0 >= x$7.$length ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + 0])).Pos(); /* */ $s = 40; case 40: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + $24r$1 = new ast.RangeStmt.ptr(pos, key, value, as.TokPos, as.Tok, _r$12, x$6, body); + $s = 41; case 41: return $24r$1; + /* } */ case 28: + _r$13 = p.makeExpr(s2, "boolean or range expression"); /* */ $s = 42; case 42: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + $24r$2 = new ast.ForStmt.ptr(pos, s1, _r$13, s3, body); + $s = 43; case 43: return $24r$2; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseForStmt, $c: true, $r, $24r, $24r$1, $24r$2, _1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tuple, _tuple$1, _tuple$2, as, body, isRange, key, p, pos, pos$1, prevLev, s1, s2, s3, value, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, y, $s, $deferred};return $f; } } }; - $ptrType(patchList).prototype.patch = function patch(p, val) { - var head, i, l, p, val, x, x$1; - l = this; - head = l.head; - while (true) { - if (!(!((head === 0)))) { break; } - i = (x = p.Inst, x$1 = head >>> 1 >>> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); - if (((head & 1) >>> 0) === 0) { - head = i.Out; - i.Out = val; - } else { - head = i.Arg; - i.Arg = val; - } - } + $ptrType(parser).prototype.parseStmt = function parseStmt() { + var {$24r, _1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, isLabeledStmt, p, pos, s, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + s = $ifaceNil; + p = this; + _r = incNestLev(p); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([decNestLev, [_r]]); + /* */ if (p.trace) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (p.trace) { */ case 2: + _r$1 = trace(p, "Statement"); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $deferred.push([un, [_r$1]]); + /* } */ case 3: + _1 = p.tok; + /* */ if ((_1 === (64)) || (_1 === (84)) || (_1 === (85))) { $s = 6; continue; } + /* */ if ((_1 === (4)) || (_1 === (5)) || (_1 === (6)) || (_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (71)) || (_1 === (49)) || (_1 === (50)) || (_1 === (82)) || (_1 === (77)) || (_1 === (63)) || (_1 === (76)) || (_1 === (12)) || (_1 === (13)) || (_1 === (14)) || (_1 === (17)) || (_1 === (19)) || (_1 === (36)) || (_1 === (43))) { $s = 7; continue; } + /* */ if (_1 === (72)) { $s = 8; continue; } + /* */ if (_1 === (67)) { $s = 9; continue; } + /* */ if (_1 === (80)) { $s = 10; continue; } + /* */ if ((_1 === (61)) || (_1 === (65)) || (_1 === (73)) || (_1 === (69))) { $s = 11; continue; } + /* */ if (_1 === (51)) { $s = 12; continue; } + /* */ if (_1 === (74)) { $s = 13; continue; } + /* */ if (_1 === (83)) { $s = 14; continue; } + /* */ if (_1 === (81)) { $s = 15; continue; } + /* */ if (_1 === (70)) { $s = 16; continue; } + /* */ if (_1 === (57)) { $s = 17; continue; } + /* */ if (_1 === (56)) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if ((_1 === (64)) || (_1 === (84)) || (_1 === (85))) { */ case 6: + _r$2 = p.parseDecl(stmtStart); /* */ $s = 21; case 21: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + s = new ast.DeclStmt.ptr(_r$2); + $s = 20; continue; + /* } else if ((_1 === (4)) || (_1 === (5)) || (_1 === (6)) || (_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (71)) || (_1 === (49)) || (_1 === (50)) || (_1 === (82)) || (_1 === (77)) || (_1 === (63)) || (_1 === (76)) || (_1 === (12)) || (_1 === (13)) || (_1 === (14)) || (_1 === (17)) || (_1 === (19)) || (_1 === (36)) || (_1 === (43))) { */ case 7: + _r$3 = p.parseSimpleStmt(1); /* */ $s = 22; case 22: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + s = _tuple[0]; + _tuple$1 = $assertType(s, ptrType$10, true); + isLabeledStmt = _tuple$1[1]; + /* */ if (!isLabeledStmt) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (!isLabeledStmt) { */ case 23: + _r$4 = p.expectSemi(); /* */ $s = 25; case 25: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4; + /* } */ case 24: + $s = 20; continue; + /* } else if (_1 === (72)) { */ case 8: + _r$5 = p.parseGoStmt(); /* */ $s = 26; case 26: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + s = _r$5; + $s = 20; continue; + /* } else if (_1 === (67)) { */ case 9: + _r$6 = p.parseDeferStmt(); /* */ $s = 27; case 27: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + s = _r$6; + $s = 20; continue; + /* } else if (_1 === (80)) { */ case 10: + _r$7 = p.parseReturnStmt(); /* */ $s = 28; case 28: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + s = _r$7; + $s = 20; continue; + /* } else if ((_1 === (61)) || (_1 === (65)) || (_1 === (73)) || (_1 === (69))) { */ case 11: + _r$8 = p.parseBranchStmt(p.tok); /* */ $s = 29; case 29: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + s = _r$8; + $s = 20; continue; + /* } else if (_1 === (51)) { */ case 12: + _r$9 = p.parseBlockStmt(); /* */ $s = 30; case 30: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + s = _r$9; + _r$10 = p.expectSemi(); /* */ $s = 31; case 31: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$10; + $s = 20; continue; + /* } else if (_1 === (74)) { */ case 13: + _r$11 = p.parseIfStmt(); /* */ $s = 32; case 32: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + s = _r$11; + $s = 20; continue; + /* } else if (_1 === (83)) { */ case 14: + _r$12 = p.parseSwitchStmt(); /* */ $s = 33; case 33: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + s = _r$12; + $s = 20; continue; + /* } else if (_1 === (81)) { */ case 15: + _r$13 = p.parseSelectStmt(); /* */ $s = 34; case 34: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + s = _r$13; + $s = 20; continue; + /* } else if (_1 === (70)) { */ case 16: + _r$14 = p.parseForStmt(); /* */ $s = 35; case 35: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + s = _r$14; + $s = 20; continue; + /* } else if (_1 === (57)) { */ case 17: + s = new ast.EmptyStmt.ptr(p.pos, p.lit === "\n"); + $r = p.next(); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 20; continue; + /* } else if (_1 === (56)) { */ case 18: + s = new ast.EmptyStmt.ptr(p.pos, true); + $s = 20; continue; + /* } else { */ case 19: + pos = p.pos; + $r = p.errorExpected(pos, "statement"); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.advance(stmtStart); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + s = new ast.BadStmt.ptr(pos, p.pos); + /* } */ case 20: + case 5: + $24r = s; + $s = 39; case 39: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return s; } if($curGoroutine.asleep) { var $f = {$blk: parseStmt, $c: true, $r, $24r, _1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, isLabeledStmt, p, pos, s, $s, $deferred};return $f; } } }; - patchList.prototype.patch = function(...$args) { return this.$val.patch(...$args); }; - $ptrType(patchList).prototype.append = function append(p, l2) { - var i, l1, l2, p, x, x$1; - l1 = this; - if (l1.head === 0) { - return l2; - } - if (l2.head === 0) { - return l1; - } - i = (x = p.Inst, x$1 = l1.tail >>> 1 >>> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); - if (((l1.tail & 1) >>> 0) === 0) { - i.Out = l2.head; - } else { - i.Arg = l2.head; - } - return new patchList.ptr(l1.head, l2.tail); + $ptrType(parser).prototype.parseImportSpec = function parseImportSpec(doc, param, param$1) { + var {$24r, _1, _r, _r$1, _r$2, comment, doc, ident, p, param, param$1, path, pos, spec, $s, $deferred, $r, $c} = $restore(this, {doc, param, param$1}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "ImportSpec"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + ident = ptrType$2.nil; + _1 = p.tok; + /* */ if (_1 === (4)) { $s = 5; continue; } + /* */ if (_1 === (53)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (_1 === (4)) { */ case 5: + _r$1 = p.parseIdent(); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + ident = _r$1; + $s = 7; continue; + /* } else if (_1 === (53)) { */ case 6: + ident = new ast.Ident.ptr(p.pos, ".", ptrType$3.nil); + $r = p.next(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 7: + case 4: + pos = p.pos; + path = ""; + /* */ if (p.tok === 9) { $s = 10; continue; } + /* */ if (new token.Token(p.tok).IsLiteral()) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (p.tok === 9) { */ case 10: + path = p.lit; + $r = p.next(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 13; continue; + /* } else if (new token.Token(p.tok).IsLiteral()) { */ case 11: + $r = p.error(pos, "import path must be a string"); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.next(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 13; continue; + /* } else { */ case 12: + $r = p.error(pos, "missing import path"); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.advance(exprEnd); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 13: + _r$2 = p.expectSemi(); /* */ $s = 19; case 19: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + comment = _r$2; + spec = new ast.ImportSpec.ptr(doc, ident, new ast.BasicLit.ptr(pos, 9, path), comment, 0); + p.imports = $append(p.imports, spec); + $24r = spec; + $s = 20; case 20: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseImportSpec, $c: true, $r, $24r, _1, _r, _r$1, _r$2, comment, doc, ident, p, param, param$1, path, pos, spec, $s, $deferred};return $f; } } + }; + $ptrType(parser).prototype.parseValueSpec = function parseValueSpec(doc, keyword, iota) { + var {$24r, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, comment, doc, idents, iota, keyword, p, spec, typ, values, $s, $deferred, $r, $c} = $restore(this, {doc, keyword, iota}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, new token.Token(keyword).String() + "Spec"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.parseIdentList(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + idents = _r$1; + typ = $ifaceNil; + values = sliceType$3.nil; + _1 = keyword; + /* */ if (_1 === (64)) { $s = 6; continue; } + /* */ if (_1 === (85)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (_1 === (64)) { */ case 6: + /* */ if (!((p.tok === 1)) && !((p.tok === 57)) && !((p.tok === 54))) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (!((p.tok === 1)) && !((p.tok === 57)) && !((p.tok === 54))) { */ case 10: + _r$2 = p.tryIdentOrType(); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + typ = _r$2; + /* */ if (p.tok === 42) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (p.tok === 42) { */ case 13: + $r = p.next(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$3 = p.parseList(true); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + values = _r$3; + /* } */ case 14: + /* } */ case 11: + $s = 9; continue; + /* } else if (_1 === (85)) { */ case 7: + /* */ if (!((p.tok === 42))) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (!((p.tok === 42))) { */ case 17: + _r$4 = p.parseType(); /* */ $s = 19; case 19: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + typ = _r$4; + /* } */ case 18: + /* */ if (p.tok === 42) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (p.tok === 42) { */ case 20: + $r = p.next(); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$5 = p.parseList(true); /* */ $s = 23; case 23: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + values = _r$5; + /* } */ case 21: + $s = 9; continue; + /* } else { */ case 8: + $panic(new $String("unreachable")); + /* } */ case 9: + case 5: + _r$6 = p.expectSemi(); /* */ $s = 24; case 24: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + comment = _r$6; + spec = new ast.ValueSpec.ptr(doc, idents, typ, values, comment); + $24r = spec; + $s = 25; case 25: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseValueSpec, $c: true, $r, $24r, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, comment, doc, idents, iota, keyword, p, spec, typ, values, $s, $deferred};return $f; } } }; - patchList.prototype.append = function(...$args) { return this.$val.append(...$args); }; - Compile = function Compile$1(re) { - var c, f, re; - c = new compiler.ptr(ptrType$4.nil); - c.init(); - f = $clone(c.compile(re), frag); - $clone(f.out, patchList).patch(c.p, c.inst(4).i); - c.p.Start = ((f.i >> 0)); - return [c.p, $ifaceNil]; + $ptrType(parser).prototype.parseGenericType = function parseGenericType(spec, openPos, name0, typ0) { + var {_r, _r$1, _r$2, _r$3, closePos, list, name0, openPos, p, spec, typ0, $s, $deferred, $r, $c} = $restore(this, {spec, openPos, name0, typ0}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "parseGenericType"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.parseParameterList(name0, typ0, 55); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + list = _r$1; + _r$2 = p.expect(55); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + closePos = _r$2; + spec.TypeParams = new ast.FieldList.ptr(openPos, list, closePos); + /* */ if (p.tok === 42) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (p.tok === 42) { */ case 6: + spec.Assign = p.pos; + $r = p.next(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 7: + _r$3 = p.parseType(); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + spec.Type = _r$3; + $s = -1; return; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseGenericType, $c: true, $r, _r, _r$1, _r$2, _r$3, closePos, list, name0, openPos, p, spec, typ0, $s, $deferred};return $f; } } }; - $pkg.Compile = Compile; - $ptrType(compiler).prototype.init = function init() { - var c; - c = this; - c.p = new Prog.ptr(sliceType$6.nil, 0, 0); - c.p.NumCap = 2; - c.inst(5); + $ptrType(parser).prototype.parseTypeSpec = function parseTypeSpec(doc, param, param$1) { + var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _tuple, doc, lbrack, lhs, name, p, param, param$1, pname, ptype, spec, x, $s, $deferred, $r, $c} = $restore(this, {doc, param, param$1}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "TypeSpec"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + _r$1 = p.parseIdent(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + name = _r$1; + spec = new ast.TypeSpec.ptr(doc, name, ptrType$27.nil, 0, $ifaceNil, ptrType$34.nil); + /* */ if (p.tok === 50) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (p.tok === 50) { */ case 5: + lbrack = p.pos; + $r = p.next(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (p.tok === 4) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (p.tok === 4) { */ case 9: + _r$2 = p.parseIdent(); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + x = _r$2; + /* */ if (!((p.tok === 50))) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (!((p.tok === 50))) { */ case 13: + p.exprLev = p.exprLev + (1) >> 0; + _r$3 = p.parsePrimaryExpr(x); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + lhs = _r$3; + _r$4 = p.parseBinaryExpr(lhs, 1); /* */ $s = 16; case 16: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + x = _r$4; + p.exprLev = p.exprLev - (1) >> 0; + /* } */ case 14: + _tuple = extractName(x, p.tok === 52); + pname = _tuple[0]; + ptype = _tuple[1]; + /* */ if (!(pname === ptrType$2.nil) && (!($interfaceIsEqual(ptype, $ifaceNil)) || !((p.tok === 55)))) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (!(pname === ptrType$2.nil) && (!($interfaceIsEqual(ptype, $ifaceNil)) || !((p.tok === 55)))) { */ case 17: + $r = p.parseGenericType(spec, lbrack, pname, ptype); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 19; continue; + /* } else { */ case 18: + _r$5 = p.parseArrayType(lbrack, x); /* */ $s = 21; case 21: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + spec.Type = _r$5; + /* } */ case 19: + $s = 11; continue; + /* } else { */ case 10: + _r$6 = p.parseArrayType(lbrack, $ifaceNil); /* */ $s = 22; case 22: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + spec.Type = _r$6; + /* } */ case 11: + $s = 7; continue; + /* } else { */ case 6: + /* */ if (p.tok === 42) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (p.tok === 42) { */ case 23: + spec.Assign = p.pos; + $r = p.next(); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 24: + _r$7 = p.parseType(); /* */ $s = 26; case 26: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + spec.Type = _r$7; + /* } */ case 7: + _r$8 = p.expectSemi(); /* */ $s = 27; case 27: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + spec.Comment = _r$8; + $24r = spec; + $s = 28; case 28: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseTypeSpec, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _tuple, doc, lbrack, lhs, name, p, param, param$1, pname, ptype, spec, x, $s, $deferred};return $f; } } }; - $ptrType(compiler).prototype.compile = function compile(re) { - var _1, _i, _i$1, _i$2, _ref, _ref$1, _ref$2, bra, c, f, f$1, f$2, f1, i, j, ket, re, sub, sub$1, sub$2, x, x$1, x$2, x$3; - c = this; - _1 = re.Op; - if (_1 === (1)) { - return c.fail(); - } else if (_1 === (2)) { - return c.nop(); - } else if (_1 === (3)) { - if (re.Rune.$length === 0) { - return c.nop(); - } - f = new frag.ptr(0, new patchList.ptr(0, 0), false); - _ref = re.Rune; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - j = _i; - f1 = $clone(c.rune($subslice(re.Rune, j, (j + 1 >> 0)), re.Flags), frag); - if (j === 0) { - frag.copy(f, f1); - } else { - frag.copy(f, c.cat($clone(f, frag), $clone(f1, frag))); + extractName = function extractName$1(x, force) { + var _1, _ref, _tuple, _tuple$1, _tuple$2, force, lhs, name, name$1, name$2, op, x, x$1, x$2, x$3, x$4, x$5; + _ref = x; + if ($assertType(_ref, ptrType$2, true)[1]) { + x$1 = _ref.$val; + return [x$1, $ifaceNil]; + } else if ($assertType(_ref, ptrType$49, true)[1]) { + x$2 = _ref.$val; + _1 = x$2.Op; + if (_1 === (14)) { + _tuple = $assertType(x$2.X, ptrType$2, true); + name = _tuple[0]; + if (!(name === ptrType$2.nil) && (force || isTypeElem(x$2.Y))) { + return [name, new ast.StarExpr.ptr(x$2.OpPos, x$2.Y)]; } - _i++; - } - return f; - } else if (_1 === (4)) { - return c.rune(re.Rune, re.Flags); - } else if (_1 === (5)) { - return c.rune(anyRuneNotNL, 0); - } else if (_1 === (6)) { - return c.rune(anyRune, 0); - } else if (_1 === (7)) { - return c.empty(1); - } else if (_1 === (8)) { - return c.empty(2); - } else if (_1 === (9)) { - return c.empty(4); - } else if (_1 === (10)) { - return c.empty(8); - } else if (_1 === (11)) { - return c.empty(16); - } else if (_1 === (12)) { - return c.empty(32); - } else if (_1 === (13)) { - bra = $clone(c.cap((((re.Cap << 1 >> 0) >>> 0))), frag); - sub = $clone(c.compile((x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))), frag); - ket = $clone(c.cap(((((re.Cap << 1 >> 0) | 1) >>> 0))), frag); - return c.cat($clone(c.cat($clone(bra, frag), $clone(sub, frag)), frag), $clone(ket, frag)); - } else if (_1 === (14)) { - return c.star($clone(c.compile((x$1 = re.Sub, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0]))), frag), !((((re.Flags & 32) >>> 0) === 0))); - } else if (_1 === (15)) { - return c.plus($clone(c.compile((x$2 = re.Sub, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0]))), frag), !((((re.Flags & 32) >>> 0) === 0))); - } else if (_1 === (16)) { - return c.quest($clone(c.compile((x$3 = re.Sub, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0]))), frag), !((((re.Flags & 32) >>> 0) === 0))); - } else if (_1 === (18)) { - if (re.Sub.$length === 0) { - return c.nop(); - } - f$1 = new frag.ptr(0, new patchList.ptr(0, 0), false); - _ref$1 = re.Sub; - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - i = _i$1; - sub$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - if (i === 0) { - frag.copy(f$1, c.compile(sub$1)); - } else { - frag.copy(f$1, c.cat($clone(f$1, frag), $clone(c.compile(sub$1), frag))); + } else if (_1 === (18)) { + _tuple$1 = extractName(x$2.X, force || isTypeElem(x$2.Y)); + name$1 = _tuple$1[0]; + lhs = _tuple$1[1]; + if (!(name$1 === ptrType$2.nil) && !($interfaceIsEqual(lhs, $ifaceNil))) { + op = $clone((x$2 === ptrType$49.nil && $throwNilPointerError(), x$2), ast.BinaryExpr); + op.X = lhs; + return [name$1, op]; } - _i$1++; } - return f$1; - } else if (_1 === (19)) { - f$2 = new frag.ptr(0, new patchList.ptr(0, 0), false); - _ref$2 = re.Sub; - _i$2 = 0; - while (true) { - if (!(_i$2 < _ref$2.$length)) { break; } - sub$2 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); - frag.copy(f$2, c.alt($clone(f$2, frag), $clone(c.compile(sub$2), frag))); - _i$2++; + } else if ($assertType(_ref, ptrType$42, true)[1]) { + x$3 = _ref.$val; + _tuple$2 = $assertType(x$3.Fun, ptrType$2, true); + name$2 = _tuple$2[0]; + if (!(name$2 === ptrType$2.nil)) { + if ((x$3.Args.$length === 1) && (x$3.Ellipsis === 0) && (force || isTypeElem((x$4 = x$3.Args, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0]))))) { + return [name$2, (x$5 = x$3.Args, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0]))]; + } } - return f$2; - } - $panic(new $String("regexp: unhandled case in compile")); - }; - $ptrType(compiler).prototype.inst = function inst(op$2) { - var c, f, op$2; - c = this; - f = new frag.ptr(((c.p.Inst.$length >>> 0)), new patchList.ptr(0, 0), true); - c.p.Inst = $append(c.p.Inst, new Inst.ptr(op$2, 0, 0, sliceType$1.nil)); - return f; - }; - $ptrType(compiler).prototype.nop = function nop() { - var c, f; - c = this; - f = $clone(c.inst(6), frag); - patchList.copy(f.out, makePatchList(f.i << 1 >>> 0)); - return f; - }; - $ptrType(compiler).prototype.fail = function fail() { - var c; - c = this; - return new frag.ptr(0, new patchList.ptr(0, 0), false); - }; - $ptrType(compiler).prototype.cap = function cap(arg) { - var arg, c, f, x, x$1; - c = this; - f = $clone(c.inst(2), frag); - patchList.copy(f.out, makePatchList(f.i << 1 >>> 0)); - (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Arg = arg; - if (c.p.NumCap < (((arg >> 0)) + 1 >> 0)) { - c.p.NumCap = ((arg >> 0)) + 1 >> 0; - } - return f; - }; - $ptrType(compiler).prototype.cat = function cat(f1, f2) { - var c, f1, f2; - c = this; - if ((f1.i === 0) || (f2.i === 0)) { - return new frag.ptr(0, new patchList.ptr(0, 0), false); } - $clone(f1.out, patchList).patch(c.p, f2.i); - return new frag.ptr(f1.i, $clone(f2.out, patchList), f1.nullable && f2.nullable); + return [ptrType$2.nil, x]; }; - $ptrType(compiler).prototype.alt = function alt(f1, f2) { - var c, f, f1, f2, i, x, x$1; - c = this; - if (f1.i === 0) { - return f2; - } - if (f2.i === 0) { - return f1; + isTypeElem = function isTypeElem$1(x) { + var _ref, x, x$1, x$2, x$3, x$4; + _ref = x; + if ($assertType(_ref, ptrType$35, true)[1] || $assertType(_ref, ptrType$6, true)[1] || $assertType(_ref, ptrType$7, true)[1] || $assertType(_ref, ptrType$9, true)[1] || $assertType(_ref, ptrType$40, true)[1] || $assertType(_ref, ptrType$41, true)[1]) { + x$1 = _ref; + return true; + } else if ($assertType(_ref, ptrType$49, true)[1]) { + x$2 = _ref.$val; + return isTypeElem(x$2.X) || isTypeElem(x$2.Y); + } else if ($assertType(_ref, ptrType$48, true)[1]) { + x$3 = _ref.$val; + return x$3.Op === 88; + } else if ($assertType(_ref, ptrType$43, true)[1]) { + x$4 = _ref.$val; + return isTypeElem(x$4.X); } - f = $clone(c.inst(0), frag); - i = (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); - i.Out = f1.i; - i.Arg = f2.i; - patchList.copy(f.out, $clone(f1.out, patchList).append(c.p, $clone(f2.out, patchList))); - f.nullable = f1.nullable || f2.nullable; - return f; + return false; }; - $ptrType(compiler).prototype.quest = function quest(f1, nongreedy) { - var c, f, f1, i, nongreedy, x, x$1; - c = this; - f = $clone(c.inst(0), frag); - i = (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); - if (nongreedy) { - i.Arg = f1.i; - patchList.copy(f.out, makePatchList(f.i << 1 >>> 0)); - } else { - i.Out = f1.i; - patchList.copy(f.out, makePatchList(((f.i << 1 >>> 0) | 1) >>> 0)); - } - patchList.copy(f.out, $clone(f.out, patchList).append(c.p, $clone(f1.out, patchList))); - return f; + $ptrType(parser).prototype.parseGenDecl = function parseGenDecl(keyword, f) { + var {$24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tmp, _tmp$1, doc, f, iota, keyword, list, lparen, p, pos, rparen, $s, $deferred, $r, $c} = $restore(this, {keyword, f}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "GenDecl(" + new token.Token(keyword).String() + ")"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + doc = p.leadComment; + _r$1 = p.expect(keyword); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + pos = _r$1; + _tmp = 0; + _tmp$1 = 0; + lparen = _tmp; + rparen = _tmp$1; + list = sliceType$8.nil; + /* */ if (p.tok === 49) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (p.tok === 49) { */ case 5: + lparen = p.pos; + $r = p.next(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + iota = 0; + /* while (true) { */ case 9: + /* if (!(!((p.tok === 54)) && !((p.tok === 1)))) { break; } */ if(!(!((p.tok === 54)) && !((p.tok === 1)))) { $s = 10; continue; } + _r$2 = f(p.leadComment, keyword, iota); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + list = $append(list, _r$2); + iota = iota + (1) >> 0; + $s = 9; continue; + case 10: + _r$3 = p.expect(54); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + rparen = _r$3; + _r$4 = p.expectSemi(); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4; + $s = 7; continue; + /* } else { */ case 6: + _r$5 = f(ptrType$34.nil, keyword, 0); /* */ $s = 14; case 14: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + list = $append(list, _r$5); + /* } */ case 7: + $24r = new ast.GenDecl.ptr(doc, pos, keyword, lparen, list, rparen); + $s = 15; case 15: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$22.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseGenDecl, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tmp, _tmp$1, doc, f, iota, keyword, list, lparen, p, pos, rparen, $s, $deferred};return $f; } } }; - $ptrType(compiler).prototype.loop = function loop(f1, nongreedy) { - var c, f, f1, i, nongreedy, x, x$1; - c = this; - f = $clone(c.inst(0), frag); - i = (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); - if (nongreedy) { - i.Arg = f1.i; - patchList.copy(f.out, makePatchList(f.i << 1 >>> 0)); - } else { - i.Out = f1.i; - patchList.copy(f.out, makePatchList(((f.i << 1 >>> 0) | 1) >>> 0)); - } - $clone(f1.out, patchList).patch(c.p, f.i); - return f; + $ptrType(parser).prototype.parseFuncDecl = function parseFuncDecl() { + var {$24r, _1, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, body, decl, doc, ident, p, params, pos, recv, results, tparams, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "FunctionDecl"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + doc = p.leadComment; + _r$1 = p.expect(71); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + pos = _r$1; + recv = ptrType$27.nil; + /* */ if (p.tok === 49) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (p.tok === 49) { */ case 5: + _r$2 = p.parseParameters(false); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = _r$2; + recv = _tuple[1]; + /* } */ case 6: + _r$3 = p.parseIdent(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + ident = _r$3; + _r$4 = p.parseParameters(true); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$1 = _r$4; + tparams = _tuple$1[0]; + params = _tuple$1[1]; + /* */ if (!(recv === ptrType$27.nil) && !(tparams === ptrType$27.nil)) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (!(recv === ptrType$27.nil) && !(tparams === ptrType$27.nil)) { */ case 10: + $r = p.error(tparams.Opening, "method must have no type parameters"); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + tparams = ptrType$27.nil; + /* } */ case 11: + _r$5 = p.parseResult(); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + results = _r$5; + body = ptrType$13.nil; + _1 = p.tok; + /* */ if (_1 === (51)) { $s = 15; continue; } + /* */ if (_1 === (57)) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (_1 === (51)) { */ case 15: + _r$6 = p.parseBody(); /* */ $s = 19; case 19: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + body = _r$6; + _r$7 = p.expectSemi(); /* */ $s = 20; case 20: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$7; + $s = 18; continue; + /* } else if (_1 === (57)) { */ case 16: + $r = p.next(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (p.tok === 51) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (p.tok === 51) { */ case 22: + $r = p.error(p.pos, "unexpected semicolon or newline before {"); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$8 = p.parseBody(); /* */ $s = 25; case 25: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + body = _r$8; + _r$9 = p.expectSemi(); /* */ $s = 26; case 26: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$9; + /* } */ case 23: + $s = 18; continue; + /* } else { */ case 17: + _r$10 = p.expectSemi(); /* */ $s = 27; case 27: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$10; + /* } */ case 18: + case 14: + decl = new ast.FuncDecl.ptr(doc, recv, ident, new ast.FuncType.ptr(pos, tparams, params, results), body); + $24r = decl; + $s = 28; case 28: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$23.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseFuncDecl, $c: true, $r, $24r, _1, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, body, decl, doc, ident, p, params, pos, recv, results, tparams, $s, $deferred};return $f; } } }; - $ptrType(compiler).prototype.star = function star(f1, nongreedy) { - var c, f1, nongreedy; - c = this; - if (f1.nullable) { - return c.quest($clone(c.plus($clone(f1, frag), nongreedy), frag), nongreedy); - } - return c.loop($clone(f1, frag), nongreedy); + $ptrType(parser).prototype.parseDecl = function parseDecl(sync) { + var {$24r, $24r$1, $24r$2, _1, _r, _r$1, _r$2, f, p, pos, sync, $s, $deferred, $r, $c} = $restore(this, {sync}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "Declaration"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + f = $throwNilPointerError; + _1 = p.tok; + /* */ if (_1 === (75)) { $s = 5; continue; } + /* */ if ((_1 === (64)) || (_1 === (85))) { $s = 6; continue; } + /* */ if (_1 === (84)) { $s = 7; continue; } + /* */ if (_1 === (71)) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (_1 === (75)) { */ case 5: + f = $methodVal(p, "parseImportSpec"); + $s = 10; continue; + /* } else if ((_1 === (64)) || (_1 === (85))) { */ case 6: + f = $methodVal(p, "parseValueSpec"); + $s = 10; continue; + /* } else if (_1 === (84)) { */ case 7: + f = $methodVal(p, "parseTypeSpec"); + $s = 10; continue; + /* } else if (_1 === (71)) { */ case 8: + _r$1 = p.parseFuncDecl(); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 12; case 12: return $24r; + /* } else { */ case 9: + pos = p.pos; + $r = p.errorExpected(pos, "declaration"); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.advance(sync); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $24r$1 = new ast.BadDecl.ptr(pos, p.pos); + $s = 15; case 15: return $24r$1; + /* } */ case 10: + case 4: + _r$2 = p.parseGenDecl(p.tok, f); /* */ $s = 16; case 16: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r$2 = _r$2; + $s = 17; case 17: return $24r$2; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseDecl, $c: true, $r, $24r, $24r$1, $24r$2, _1, _r, _r$1, _r$2, f, p, pos, sync, $s, $deferred};return $f; } } }; - $ptrType(compiler).prototype.plus = function plus(f1, nongreedy) { - var c, f1, nongreedy; - c = this; - return new frag.ptr(f1.i, $clone(c.loop($clone(f1, frag), nongreedy).out, patchList), f1.nullable); + $ptrType(parser).prototype.parseFile = function parseFile() { + var {$24r, $24r$1, $24r$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, declErr, decls, doc, f, ident, p, pos, prev, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = this; + /* */ if (p.trace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.trace) { */ case 1: + _r = trace(p, "File"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $deferred.push([un, [_r]]); + /* } */ case 2: + /* */ if (!((p.errors.Len() === 0))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!((p.errors.Len() === 0))) { */ case 4: + $24r = ptrType$50.nil; + $s = 6; case 6: return $24r; + /* } */ case 5: + doc = p.leadComment; + _r$1 = p.expect(78); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + pos = _r$1; + _r$2 = p.parseIdent(); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + ident = _r$2; + /* */ if (ident.Name === "_" && !((((p.mode & 16) >>> 0) === 0))) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (ident.Name === "_" && !((((p.mode & 16) >>> 0) === 0))) { */ case 9: + $r = p.error(p.pos, "invalid package name _"); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 10: + _r$3 = p.expectSemi(); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + /* */ if (!((p.errors.Len() === 0))) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (!((p.errors.Len() === 0))) { */ case 13: + $24r$1 = ptrType$50.nil; + $s = 15; case 15: return $24r$1; + /* } */ case 14: + decls = sliceType$9.nil; + /* */ if (((p.mode & 1) >>> 0) === 0) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (((p.mode & 1) >>> 0) === 0) { */ case 16: + /* while (true) { */ case 18: + /* if (!(p.tok === 75)) { break; } */ if(!(p.tok === 75)) { $s = 19; continue; } + _r$4 = p.parseGenDecl(75, $methodVal(p, "parseImportSpec")); /* */ $s = 20; case 20: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + decls = $append(decls, _r$4); + $s = 18; continue; + case 19: + /* */ if (((p.mode & 2) >>> 0) === 0) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (((p.mode & 2) >>> 0) === 0) { */ case 21: + prev = 75; + /* while (true) { */ case 23: + /* if (!(!((p.tok === 1)))) { break; } */ if(!(!((p.tok === 1)))) { $s = 24; continue; } + /* */ if ((p.tok === 75) && !((prev === 75))) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if ((p.tok === 75) && !((prev === 75))) { */ case 25: + $r = p.error(p.pos, "imports must appear before other declarations"); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 26: + prev = p.tok; + _r$5 = p.parseDecl(declStart); /* */ $s = 28; case 28: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + decls = $append(decls, _r$5); + $s = 23; continue; + case 24: + /* } */ case 22: + /* } */ case 17: + f = new ast.File.ptr(doc, pos, ident, decls, ((p.file.Base() >> 0)), (((p.file.Base() + p.file.Size() >> 0) >> 0)), ptrType.nil, p.imports, sliceType.nil, p.comments, p.goVersion); + declErr = $throwNilPointerError; + if (!((((p.mode & 16) >>> 0) === 0))) { + declErr = $methodVal(p, "error"); + } + /* */ if (((p.mode & 64) >>> 0) === 0) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if (((p.mode & 64) >>> 0) === 0) { */ case 29: + $r = resolveFile(f, p.file, declErr); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 30: + $24r$2 = f; + $s = 32; case 32: return $24r$2; + /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$50.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: parseFile, $c: true, $r, $24r, $24r$1, $24r$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, declErr, decls, doc, f, ident, p, pos, prev, $s, $deferred};return $f; } } }; - $ptrType(compiler).prototype.empty = function empty(op$2) { - var c, f, op$2, x, x$1; - c = this; - f = $clone(c.inst(3), frag); - (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Arg = ((op$2 >>> 0)); - patchList.copy(f.out, makePatchList(f.i << 1 >>> 0)); - return f; + readSource = function readSource$1(filename, src) { + var {$24r, $24r$1, _r, _r$1, _ref, filename, s, s$1, s$2, s$3, src, $s, $r, $c} = $restore(this, {filename, src}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + /* */ if (!($interfaceIsEqual(src, $ifaceNil))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!($interfaceIsEqual(src, $ifaceNil))) { */ case 1: + _ref = src; + /* */ if ($assertType(_ref, $String, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, sliceType$12, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$52, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, io.Reader, true)[1]) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if ($assertType(_ref, $String, true)[1]) { */ case 3: + s = _ref.$val; + $s = -1; return [(new sliceType$12($stringToBytes(s))), $ifaceNil]; + /* } else if ($assertType(_ref, sliceType$12, true)[1]) { */ case 4: + s$1 = _ref.$val; + $s = -1; return [s$1, $ifaceNil]; + /* } else if ($assertType(_ref, ptrType$52, true)[1]) { */ case 5: + s$2 = _ref.$val; + if (!(s$2 === ptrType$52.nil)) { + $s = -1; return [s$2.Bytes(), $ifaceNil]; + } + $s = 7; continue; + /* } else if ($assertType(_ref, io.Reader, true)[1]) { */ case 6: + s$3 = _ref; + _r = io.ReadAll(s$3); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 9; case 9: return $24r; + /* } */ case 7: + $s = -1; return [sliceType$12.nil, errors.New("invalid source")]; + /* } */ case 2: + _r$1 = os.ReadFile(filename); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r$1 = _r$1; + $s = 11; case 11: return $24r$1; + /* */ } return; } var $f = {$blk: readSource$1, $c: true, $r, $24r, $24r$1, _r, _r$1, _ref, filename, s, s$1, s$2, s$3, src, $s};return $f; }; - $ptrType(compiler).prototype.rune = function rune(r, flags) { - var c, f, flags, i, r, x, x$1; - c = this; - f = $clone(c.inst(7), frag); - f.nullable = false; - i = (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); - i.Rune = r; - flags = (flags & (1)) >>> 0; - if (!((r.$length === 1)) || (unicode.SimpleFold((0 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 0])) === (0 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 0]))) { - flags = (flags & ~(1)) << 16 >>> 16; + ParseFile = function ParseFile$1(fset, filename, src, mode) { + var {$24r, _r, _r$1, _tmp, _tmp$1, _tuple, err, f, filename, fset, mode, p, src, text, $s, $deferred, $r, $c} = $restore(this, {fset, filename, src, mode}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + err = [err]; + f = [f]; + p = [p]; + f[0] = ptrType$50.nil; + err[0] = $ifaceNil; + if (fset === ptrType$53.nil) { + $panic(new $String("parser.ParseFile: no token.FileSet provided (fset == nil)")); } - i.Arg = ((flags >>> 0)); - patchList.copy(f.out, makePatchList(f.i << 1 >>> 0)); - if ((((flags & 1) >>> 0) === 0) && ((r.$length === 1) || (r.$length === 2) && ((0 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 0]) === (1 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 1])))) { - i.Op = 8; - } else if ((r.$length === 2) && ((0 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 0]) === 0) && ((1 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 1]) === 1114111)) { - i.Op = 9; - } else if ((r.$length === 4) && ((0 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 0]) === 0) && ((1 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 1]) === 9) && ((2 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 2]) === 11) && ((3 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 3]) === 1114111)) { - i.Op = 10; + _r = readSource(filename, src); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + text = _tuple[0]; + err[0] = _tuple[1]; + if (!($interfaceIsEqual(err[0], $ifaceNil))) { + _tmp = ptrType$50.nil; + _tmp$1 = err[0]; + f[0] = _tmp; + err[0] = _tmp$1; + $s = -1; return [f[0], err[0]]; } - return f; + p[0] = new parser.ptr(ptrType$1.nil, scanner.ErrorList.nil, new scanner.Scanner.ptr(ptrType$1.nil, "", sliceType$12.nil, $throwNilPointerError, 0, 0, 0, 0, 0, false, 0, 0), 0, false, 0, sliceType$11.nil, ptrType$34.nil, ptrType$34.nil, false, "", 0, 0, "", 0, 0, 0, false, sliceType$10.nil, 0); + $deferred.push([(function(err, f, p) { return function ParseFile·func1() { + var {_r$1, _tuple$1, bail, e, ok, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + e = $recover(); + /* */ if (!($interfaceIsEqual(e, $ifaceNil))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!($interfaceIsEqual(e, $ifaceNil))) { */ case 1: + _tuple$1 = $assertType(e, bailout, true); + bail = $clone(_tuple$1[0], bailout); + ok = _tuple$1[1]; + /* */ if (!ok) { $s = 3; continue; } + /* */ if (!(bail.msg === "")) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!ok) { */ case 3: + $panic(e); + $s = 5; continue; + /* } else if (!(bail.msg === "")) { */ case 4: + _r$1 = p[0].file.Position(bail.pos); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $r = (p[0].$ptr_errors || (p[0].$ptr_errors = new ptrType$32(function() { return this.$target.errors; }, function($v) { this.$target.errors = $v; }, p[0]))).Add($clone(_r$1, token.Position), bail.msg); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 5: + /* } */ case 2: + if (f[0] === ptrType$50.nil) { + f[0] = new ast.File.ptr(ptrType$34.nil, 0, new ast.Ident.ptr(0, "", ptrType$3.nil), sliceType$9.nil, 0, 0, ast.NewScope(ptrType.nil), sliceType$10.nil, sliceType.nil, sliceType$11.nil, ""); + } + $r = p[0].errors.Sort(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + err[0] = p[0].errors.Err(); + $s = -1; return; + /* */ } return; } var $f = {$blk: ParseFile·func1, $c: true, $r, _r$1, _tuple$1, bail, e, ok, $s};return $f; + }; })(err, f, p), []]); + $r = p[0].init(fset, filename, text, mode); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = p[0].parseFile(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + f[0] = _r$1; + $24r = [f[0], err[0]]; + $s = 4; case 4: return $24r; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [f[0], err[0]]; } if($curGoroutine.asleep) { var $f = {$blk: ParseFile$1, $c: true, $r, $24r, _r, _r$1, _tmp, _tmp$1, _tuple, err, f, filename, fset, mode, p, src, text, $s, $deferred};return $f; } } }; - ptrType.methods = [{prop: "Simplify", name: "Simplify", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "Equal", name: "Equal", pkg: "", typ: $funcType([ptrType], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "MaxCap", name: "MaxCap", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "CapNames", name: "CapNames", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "capNames", name: "capNames", pkg: "regexp/syntax", typ: $funcType([sliceType], [], false)}]; - Op.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$4.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "skipNop", name: "skipNop", pkg: "regexp/syntax", typ: $funcType([$Uint32], [ptrType$5], false)}, {prop: "Prefix", name: "Prefix", pkg: "", typ: $funcType([], [$String, $Bool], false)}, {prop: "StartCond", name: "StartCond", pkg: "", typ: $funcType([], [EmptyOp], false)}]; - InstOp.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$5.methods = [{prop: "op", name: "op", pkg: "regexp/syntax", typ: $funcType([], [InstOp], false)}, {prop: "MatchRune", name: "MatchRune", pkg: "", typ: $funcType([$Int32], [$Bool], false)}, {prop: "MatchRunePos", name: "MatchRunePos", pkg: "", typ: $funcType([$Int32], [$Int], false)}, {prop: "MatchEmptyWidth", name: "MatchEmptyWidth", pkg: "", typ: $funcType([$Int32, $Int32], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$6.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; - ErrorCode.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$7.methods = [{prop: "newRegexp", name: "newRegexp", pkg: "regexp/syntax", typ: $funcType([Op], [ptrType], false)}, {prop: "reuse", name: "reuse", pkg: "regexp/syntax", typ: $funcType([ptrType], [], false)}, {prop: "checkLimits", name: "checkLimits", pkg: "regexp/syntax", typ: $funcType([ptrType], [], false)}, {prop: "checkSize", name: "checkSize", pkg: "regexp/syntax", typ: $funcType([ptrType], [], false)}, {prop: "calcSize", name: "calcSize", pkg: "regexp/syntax", typ: $funcType([ptrType, $Bool], [$Int64], false)}, {prop: "checkHeight", name: "checkHeight", pkg: "regexp/syntax", typ: $funcType([ptrType], [], false)}, {prop: "calcHeight", name: "calcHeight", pkg: "regexp/syntax", typ: $funcType([ptrType, $Bool], [$Int], false)}, {prop: "push", name: "push", pkg: "regexp/syntax", typ: $funcType([ptrType], [ptrType], false)}, {prop: "maybeConcat", name: "maybeConcat", pkg: "regexp/syntax", typ: $funcType([$Int32, Flags], [$Bool], false)}, {prop: "literal", name: "literal", pkg: "regexp/syntax", typ: $funcType([$Int32], [], false)}, {prop: "op", name: "op", pkg: "regexp/syntax", typ: $funcType([Op], [ptrType], false)}, {prop: "repeat", name: "repeat", pkg: "regexp/syntax", typ: $funcType([Op, $Int, $Int, $String, $String, $String], [$String, $error], false)}, {prop: "concat", name: "concat", pkg: "regexp/syntax", typ: $funcType([], [ptrType], false)}, {prop: "alternate", name: "alternate", pkg: "regexp/syntax", typ: $funcType([], [ptrType], false)}, {prop: "collapse", name: "collapse", pkg: "regexp/syntax", typ: $funcType([sliceType$4, Op], [ptrType], false)}, {prop: "factor", name: "factor", pkg: "regexp/syntax", typ: $funcType([sliceType$4], [sliceType$4], false)}, {prop: "leadingString", name: "leadingString", pkg: "regexp/syntax", typ: $funcType([ptrType], [sliceType$1, Flags], false)}, {prop: "removeLeadingString", name: "removeLeadingString", pkg: "regexp/syntax", typ: $funcType([ptrType, $Int], [ptrType], false)}, {prop: "leadingRegexp", name: "leadingRegexp", pkg: "regexp/syntax", typ: $funcType([ptrType], [ptrType], false)}, {prop: "removeLeadingRegexp", name: "removeLeadingRegexp", pkg: "regexp/syntax", typ: $funcType([ptrType, $Bool], [ptrType], false)}, {prop: "parseRepeat", name: "parseRepeat", pkg: "regexp/syntax", typ: $funcType([$String], [$Int, $Int, $String, $Bool], false)}, {prop: "parsePerlFlags", name: "parsePerlFlags", pkg: "regexp/syntax", typ: $funcType([$String], [$String, $error], false)}, {prop: "parseInt", name: "parseInt", pkg: "regexp/syntax", typ: $funcType([$String], [$Int, $String, $Bool], false)}, {prop: "parseVerticalBar", name: "parseVerticalBar", pkg: "regexp/syntax", typ: $funcType([], [$error], false)}, {prop: "swapVerticalBar", name: "swapVerticalBar", pkg: "regexp/syntax", typ: $funcType([], [$Bool], false)}, {prop: "parseRightParen", name: "parseRightParen", pkg: "regexp/syntax", typ: $funcType([], [$error], false)}, {prop: "parseEscape", name: "parseEscape", pkg: "regexp/syntax", typ: $funcType([$String], [$Int32, $String, $error], false)}, {prop: "parseClassChar", name: "parseClassChar", pkg: "regexp/syntax", typ: $funcType([$String, $String], [$Int32, $String, $error], false)}, {prop: "parsePerlClassEscape", name: "parsePerlClassEscape", pkg: "regexp/syntax", typ: $funcType([$String, sliceType$1], [sliceType$1, $String], false)}, {prop: "parseNamedClass", name: "parseNamedClass", pkg: "regexp/syntax", typ: $funcType([$String, sliceType$1], [sliceType$1, $String, $error], false)}, {prop: "appendGroup", name: "appendGroup", pkg: "regexp/syntax", typ: $funcType([sliceType$1, charGroup], [sliceType$1], false)}, {prop: "parseUnicodeClass", name: "parseUnicodeClass", pkg: "regexp/syntax", typ: $funcType([$String, sliceType$1], [sliceType$1, $String, $error], false)}, {prop: "parseClass", name: "parseClass", pkg: "regexp/syntax", typ: $funcType([$String], [$String, $error], false)}]; - ranges.methods = [{prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}]; - patchList.methods = [{prop: "patch", name: "patch", pkg: "regexp/syntax", typ: $funcType([ptrType$4, $Uint32], [], false)}, {prop: "append", name: "append", pkg: "regexp/syntax", typ: $funcType([ptrType$4, patchList], [patchList], false)}]; - ptrType$8.methods = [{prop: "init", name: "init", pkg: "regexp/syntax", typ: $funcType([], [], false)}, {prop: "compile", name: "compile", pkg: "regexp/syntax", typ: $funcType([ptrType], [frag], false)}, {prop: "inst", name: "inst", pkg: "regexp/syntax", typ: $funcType([InstOp], [frag], false)}, {prop: "nop", name: "nop", pkg: "regexp/syntax", typ: $funcType([], [frag], false)}, {prop: "fail", name: "fail", pkg: "regexp/syntax", typ: $funcType([], [frag], false)}, {prop: "cap", name: "cap", pkg: "regexp/syntax", typ: $funcType([$Uint32], [frag], false)}, {prop: "cat", name: "cat", pkg: "regexp/syntax", typ: $funcType([frag, frag], [frag], false)}, {prop: "alt", name: "alt", pkg: "regexp/syntax", typ: $funcType([frag, frag], [frag], false)}, {prop: "quest", name: "quest", pkg: "regexp/syntax", typ: $funcType([frag, $Bool], [frag], false)}, {prop: "loop", name: "loop", pkg: "regexp/syntax", typ: $funcType([frag, $Bool], [frag], false)}, {prop: "star", name: "star", pkg: "regexp/syntax", typ: $funcType([frag, $Bool], [frag], false)}, {prop: "plus", name: "plus", pkg: "regexp/syntax", typ: $funcType([frag, $Bool], [frag], false)}, {prop: "empty", name: "empty", pkg: "regexp/syntax", typ: $funcType([EmptyOp], [frag], false)}, {prop: "rune", name: "rune", pkg: "regexp/syntax", typ: $funcType([sliceType$1, Flags], [frag], false)}]; - Regexp.init("", [{prop: "Op", name: "Op", embedded: false, exported: true, typ: Op, tag: ""}, {prop: "Flags", name: "Flags", embedded: false, exported: true, typ: Flags, tag: ""}, {prop: "Sub", name: "Sub", embedded: false, exported: true, typ: sliceType$4, tag: ""}, {prop: "Sub0", name: "Sub0", embedded: false, exported: true, typ: arrayType, tag: ""}, {prop: "Rune", name: "Rune", embedded: false, exported: true, typ: sliceType$1, tag: ""}, {prop: "Rune0", name: "Rune0", embedded: false, exported: true, typ: arrayType$1, tag: ""}, {prop: "Min", name: "Min", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Max", name: "Max", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Cap", name: "Cap", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}]); - Prog.init("", [{prop: "Inst", name: "Inst", embedded: false, exported: true, typ: sliceType$6, tag: ""}, {prop: "Start", name: "Start", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "NumCap", name: "NumCap", embedded: false, exported: true, typ: $Int, tag: ""}]); - Inst.init("", [{prop: "Op", name: "Op", embedded: false, exported: true, typ: InstOp, tag: ""}, {prop: "Out", name: "Out", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Arg", name: "Arg", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Rune", name: "Rune", embedded: false, exported: true, typ: sliceType$1, tag: ""}]); - Error.init("", [{prop: "Code", name: "Code", embedded: false, exported: true, typ: ErrorCode, tag: ""}, {prop: "Expr", name: "Expr", embedded: false, exported: true, typ: $String, tag: ""}]); - parser.init("regexp/syntax", [{prop: "flags", name: "flags", embedded: false, exported: false, typ: Flags, tag: ""}, {prop: "stack", name: "stack", embedded: false, exported: false, typ: sliceType$4, tag: ""}, {prop: "free", name: "free", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "numCap", name: "numCap", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "wholeRegexp", name: "wholeRegexp", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "tmpClass", name: "tmpClass", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "numRegexp", name: "numRegexp", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "numRunes", name: "numRunes", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "repeats", name: "repeats", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "height", name: "height", embedded: false, exported: false, typ: mapType, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: mapType$1, tag: ""}]); - charGroup.init("regexp/syntax", [{prop: "sign", name: "sign", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "class$1", name: "class", embedded: false, exported: false, typ: sliceType$1, tag: ""}]); - ranges.init("regexp/syntax", [{prop: "p", name: "p", embedded: false, exported: false, typ: ptrType$2, tag: ""}]); - patchList.init("regexp/syntax", [{prop: "head", name: "head", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "tail", name: "tail", embedded: false, exported: false, typ: $Uint32, tag: ""}]); - frag.init("regexp/syntax", [{prop: "i", name: "i", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "out", name: "out", embedded: false, exported: false, typ: patchList, tag: ""}, {prop: "nullable", name: "nullable", embedded: false, exported: false, typ: $Bool, tag: ""}]); - compiler.init("regexp/syntax", [{prop: "p", name: "p", embedded: false, exported: false, typ: ptrType$4, tag: ""}]); + $pkg.ParseFile = ParseFile; + ptrType$55.methods = [{prop: "trace", name: "trace", pkg: "go/parser", typ: $funcType([$String, sliceType$2], [], true)}, {prop: "sprintf", name: "sprintf", pkg: "go/parser", typ: $funcType([$String, sliceType$2], [$String], true)}, {prop: "openScope", name: "openScope", pkg: "go/parser", typ: $funcType([token.Pos], [], false)}, {prop: "closeScope", name: "closeScope", pkg: "go/parser", typ: $funcType([], [], false)}, {prop: "openLabelScope", name: "openLabelScope", pkg: "go/parser", typ: $funcType([], [], false)}, {prop: "closeLabelScope", name: "closeLabelScope", pkg: "go/parser", typ: $funcType([], [], false)}, {prop: "declare", name: "declare", pkg: "go/parser", typ: $funcType([$emptyInterface, $emptyInterface, ptrType, ast.ObjKind, sliceType], [], true)}, {prop: "shortVarDecl", name: "shortVarDecl", pkg: "go/parser", typ: $funcType([ptrType$11], [], false)}, {prop: "resolve", name: "resolve", pkg: "go/parser", typ: $funcType([ptrType$2, $Bool], [], false)}, {prop: "walkExprs", name: "walkExprs", pkg: "go/parser", typ: $funcType([sliceType$3], [], false)}, {prop: "walkLHS", name: "walkLHS", pkg: "go/parser", typ: $funcType([sliceType$3], [], false)}, {prop: "walkStmts", name: "walkStmts", pkg: "go/parser", typ: $funcType([sliceType$7], [], false)}, {prop: "Visit", name: "Visit", pkg: "", typ: $funcType([ast.Node], [ast.Visitor], false)}, {prop: "walkFuncType", name: "walkFuncType", pkg: "go/parser", typ: $funcType([ptrType$7], [], false)}, {prop: "resolveList", name: "resolveList", pkg: "go/parser", typ: $funcType([ptrType$27], [], false)}, {prop: "declareList", name: "declareList", pkg: "go/parser", typ: $funcType([ptrType$27, ast.ObjKind], [], false)}, {prop: "walkRecv", name: "walkRecv", pkg: "go/parser", typ: $funcType([ptrType$27], [], false)}, {prop: "walkFieldList", name: "walkFieldList", pkg: "go/parser", typ: $funcType([ptrType$27, ast.ObjKind], [], false)}, {prop: "walkTParams", name: "walkTParams", pkg: "go/parser", typ: $funcType([ptrType$27], [], false)}, {prop: "walkBody", name: "walkBody", pkg: "go/parser", typ: $funcType([ptrType$13], [], false)}]; + ptrType$31.methods = [{prop: "init", name: "init", pkg: "go/parser", typ: $funcType([ptrType$53, $String, sliceType$12, Mode], [], false)}, {prop: "printTrace", name: "printTrace", pkg: "go/parser", typ: $funcType([sliceType$2], [], true)}, {prop: "next0", name: "next0", pkg: "go/parser", typ: $funcType([], [], false)}, {prop: "consumeComment", name: "consumeComment", pkg: "go/parser", typ: $funcType([], [ptrType$33, $Int], false)}, {prop: "consumeCommentGroup", name: "consumeCommentGroup", pkg: "go/parser", typ: $funcType([$Int], [ptrType$34, $Int], false)}, {prop: "next", name: "next", pkg: "go/parser", typ: $funcType([], [], false)}, {prop: "error", name: "error", pkg: "go/parser", typ: $funcType([token.Pos, $String], [], false)}, {prop: "errorExpected", name: "errorExpected", pkg: "go/parser", typ: $funcType([token.Pos, $String], [], false)}, {prop: "expect", name: "expect", pkg: "go/parser", typ: $funcType([token.Token], [token.Pos], false)}, {prop: "expect2", name: "expect2", pkg: "go/parser", typ: $funcType([token.Token], [token.Pos], false)}, {prop: "expectClosing", name: "expectClosing", pkg: "go/parser", typ: $funcType([token.Token, $String], [token.Pos], false)}, {prop: "expectSemi", name: "expectSemi", pkg: "go/parser", typ: $funcType([], [ptrType$34], false)}, {prop: "atComma", name: "atComma", pkg: "go/parser", typ: $funcType([$String, token.Token], [$Bool], false)}, {prop: "advance", name: "advance", pkg: "go/parser", typ: $funcType([mapType], [], false)}, {prop: "safePos", name: "safePos", pkg: "go/parser", typ: $funcType([token.Pos], [token.Pos], false)}, {prop: "parseIdent", name: "parseIdent", pkg: "go/parser", typ: $funcType([], [ptrType$2], false)}, {prop: "parseIdentList", name: "parseIdentList", pkg: "go/parser", typ: $funcType([], [sliceType], false)}, {prop: "parseExprList", name: "parseExprList", pkg: "go/parser", typ: $funcType([], [sliceType$3], false)}, {prop: "parseList", name: "parseList", pkg: "go/parser", typ: $funcType([$Bool], [sliceType$3], false)}, {prop: "parseType", name: "parseType", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseQualifiedIdent", name: "parseQualifiedIdent", pkg: "go/parser", typ: $funcType([ptrType$2], [ast.Expr], false)}, {prop: "parseTypeName", name: "parseTypeName", pkg: "go/parser", typ: $funcType([ptrType$2], [ast.Expr], false)}, {prop: "parseArrayType", name: "parseArrayType", pkg: "go/parser", typ: $funcType([token.Pos, ast.Expr], [ptrType$35], false)}, {prop: "parseArrayFieldOrTypeInstance", name: "parseArrayFieldOrTypeInstance", pkg: "go/parser", typ: $funcType([ptrType$2], [ptrType$2, ast.Expr], false)}, {prop: "parseFieldDecl", name: "parseFieldDecl", pkg: "go/parser", typ: $funcType([], [ptrType$37], false)}, {prop: "parseStructType", name: "parseStructType", pkg: "go/parser", typ: $funcType([], [ptrType$6], false)}, {prop: "parsePointerType", name: "parsePointerType", pkg: "go/parser", typ: $funcType([], [ptrType$28], false)}, {prop: "parseDotsType", name: "parseDotsType", pkg: "go/parser", typ: $funcType([], [ptrType$38], false)}, {prop: "parseParamDecl", name: "parseParamDecl", pkg: "go/parser", typ: $funcType([ptrType$2, $Bool], [field], false)}, {prop: "parseParameterList", name: "parseParameterList", pkg: "go/parser", typ: $funcType([ptrType$2, ast.Expr, token.Token], [sliceType$5], false)}, {prop: "parseParameters", name: "parseParameters", pkg: "go/parser", typ: $funcType([$Bool], [ptrType$27, ptrType$27], false)}, {prop: "parseResult", name: "parseResult", pkg: "go/parser", typ: $funcType([], [ptrType$27], false)}, {prop: "parseFuncType", name: "parseFuncType", pkg: "go/parser", typ: $funcType([], [ptrType$7], false)}, {prop: "parseMethodSpec", name: "parseMethodSpec", pkg: "go/parser", typ: $funcType([], [ptrType$37], false)}, {prop: "embeddedElem", name: "embeddedElem", pkg: "go/parser", typ: $funcType([ast.Expr], [ast.Expr], false)}, {prop: "embeddedTerm", name: "embeddedTerm", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseInterfaceType", name: "parseInterfaceType", pkg: "go/parser", typ: $funcType([], [ptrType$9], false)}, {prop: "parseMapType", name: "parseMapType", pkg: "go/parser", typ: $funcType([], [ptrType$40], false)}, {prop: "parseChanType", name: "parseChanType", pkg: "go/parser", typ: $funcType([], [ptrType$41], false)}, {prop: "parseTypeInstance", name: "parseTypeInstance", pkg: "go/parser", typ: $funcType([ast.Expr], [ast.Expr], false)}, {prop: "tryIdentOrType", name: "tryIdentOrType", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseStmtList", name: "parseStmtList", pkg: "go/parser", typ: $funcType([], [sliceType$7], false)}, {prop: "parseBody", name: "parseBody", pkg: "go/parser", typ: $funcType([], [ptrType$13], false)}, {prop: "parseBlockStmt", name: "parseBlockStmt", pkg: "go/parser", typ: $funcType([], [ptrType$13], false)}, {prop: "parseFuncTypeOrLit", name: "parseFuncTypeOrLit", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseOperand", name: "parseOperand", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseSelector", name: "parseSelector", pkg: "go/parser", typ: $funcType([ast.Expr], [ast.Expr], false)}, {prop: "parseTypeAssertion", name: "parseTypeAssertion", pkg: "go/parser", typ: $funcType([ast.Expr], [ast.Expr], false)}, {prop: "parseIndexOrSliceOrInstance", name: "parseIndexOrSliceOrInstance", pkg: "go/parser", typ: $funcType([ast.Expr], [ast.Expr], false)}, {prop: "parseCallOrConversion", name: "parseCallOrConversion", pkg: "go/parser", typ: $funcType([ast.Expr], [ptrType$42], false)}, {prop: "parseValue", name: "parseValue", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseElement", name: "parseElement", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseElementList", name: "parseElementList", pkg: "go/parser", typ: $funcType([], [sliceType$3], false)}, {prop: "parseLiteralValue", name: "parseLiteralValue", pkg: "go/parser", typ: $funcType([ast.Expr], [ast.Expr], false)}, {prop: "parsePrimaryExpr", name: "parsePrimaryExpr", pkg: "go/parser", typ: $funcType([ast.Expr], [ast.Expr], false)}, {prop: "parseUnaryExpr", name: "parseUnaryExpr", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "tokPrec", name: "tokPrec", pkg: "go/parser", typ: $funcType([], [token.Token, $Int], false)}, {prop: "parseBinaryExpr", name: "parseBinaryExpr", pkg: "go/parser", typ: $funcType([ast.Expr, $Int], [ast.Expr], false)}, {prop: "parseExpr", name: "parseExpr", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseRhs", name: "parseRhs", pkg: "go/parser", typ: $funcType([], [ast.Expr], false)}, {prop: "parseSimpleStmt", name: "parseSimpleStmt", pkg: "go/parser", typ: $funcType([$Int], [ast.Stmt, $Bool], false)}, {prop: "parseCallExpr", name: "parseCallExpr", pkg: "go/parser", typ: $funcType([$String], [ptrType$42], false)}, {prop: "parseGoStmt", name: "parseGoStmt", pkg: "go/parser", typ: $funcType([], [ast.Stmt], false)}, {prop: "parseDeferStmt", name: "parseDeferStmt", pkg: "go/parser", typ: $funcType([], [ast.Stmt], false)}, {prop: "parseReturnStmt", name: "parseReturnStmt", pkg: "go/parser", typ: $funcType([], [ptrType$45], false)}, {prop: "parseBranchStmt", name: "parseBranchStmt", pkg: "go/parser", typ: $funcType([token.Token], [ptrType$12], false)}, {prop: "makeExpr", name: "makeExpr", pkg: "go/parser", typ: $funcType([ast.Stmt, $String], [ast.Expr], false)}, {prop: "parseIfHeader", name: "parseIfHeader", pkg: "go/parser", typ: $funcType([], [ast.Stmt, ast.Expr], false)}, {prop: "parseIfStmt", name: "parseIfStmt", pkg: "go/parser", typ: $funcType([], [ptrType$14], false)}, {prop: "parseCaseClause", name: "parseCaseClause", pkg: "go/parser", typ: $funcType([], [ptrType$15], false)}, {prop: "isTypeSwitchGuard", name: "isTypeSwitchGuard", pkg: "go/parser", typ: $funcType([ast.Stmt], [$Bool], false)}, {prop: "parseSwitchStmt", name: "parseSwitchStmt", pkg: "go/parser", typ: $funcType([], [ast.Stmt], false)}, {prop: "parseCommClause", name: "parseCommClause", pkg: "go/parser", typ: $funcType([], [ptrType$18], false)}, {prop: "parseSelectStmt", name: "parseSelectStmt", pkg: "go/parser", typ: $funcType([], [ptrType$19], false)}, {prop: "parseForStmt", name: "parseForStmt", pkg: "go/parser", typ: $funcType([], [ast.Stmt], false)}, {prop: "parseStmt", name: "parseStmt", pkg: "go/parser", typ: $funcType([], [ast.Stmt], false)}, {prop: "parseImportSpec", name: "parseImportSpec", pkg: "go/parser", typ: $funcType([ptrType$34, token.Token, $Int], [ast.Spec], false)}, {prop: "parseValueSpec", name: "parseValueSpec", pkg: "go/parser", typ: $funcType([ptrType$34, token.Token, $Int], [ast.Spec], false)}, {prop: "parseGenericType", name: "parseGenericType", pkg: "go/parser", typ: $funcType([ptrType$26, token.Pos, ptrType$2, ast.Expr], [], false)}, {prop: "parseTypeSpec", name: "parseTypeSpec", pkg: "go/parser", typ: $funcType([ptrType$34, token.Token, $Int], [ast.Spec], false)}, {prop: "parseGenDecl", name: "parseGenDecl", pkg: "go/parser", typ: $funcType([token.Token, parseSpecFunction], [ptrType$22], false)}, {prop: "parseFuncDecl", name: "parseFuncDecl", pkg: "go/parser", typ: $funcType([], [ptrType$23], false)}, {prop: "parseDecl", name: "parseDecl", pkg: "go/parser", typ: $funcType([mapType], [ast.Decl], false)}, {prop: "parseFile", name: "parseFile", pkg: "go/parser", typ: $funcType([], [ptrType$50], false)}]; + resolver.init("go/parser", [{prop: "handle", name: "handle", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "declErr", name: "declErr", embedded: false, exported: false, typ: funcType, tag: ""}, {prop: "pkgScope", name: "pkgScope", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "topScope", name: "topScope", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "unresolved", name: "unresolved", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "depth", name: "depth", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "labelScope", name: "labelScope", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "targetStack", name: "targetStack", embedded: false, exported: false, typ: sliceType$1, tag: ""}]); + parser.init("go/parser", [{prop: "file", name: "file", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "errors", name: "errors", embedded: false, exported: false, typ: scanner.ErrorList, tag: ""}, {prop: "scanner", name: "scanner", embedded: false, exported: false, typ: scanner.Scanner, tag: ""}, {prop: "mode", name: "mode", embedded: false, exported: false, typ: Mode, tag: ""}, {prop: "trace", name: "trace", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "indent", name: "indent", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "comments", name: "comments", embedded: false, exported: false, typ: sliceType$11, tag: ""}, {prop: "leadComment", name: "leadComment", embedded: false, exported: false, typ: ptrType$34, tag: ""}, {prop: "lineComment", name: "lineComment", embedded: false, exported: false, typ: ptrType$34, tag: ""}, {prop: "top", name: "top", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "goVersion", name: "goVersion", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "tok", name: "tok", embedded: false, exported: false, typ: token.Token, tag: ""}, {prop: "lit", name: "lit", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "syncPos", name: "syncPos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "syncCnt", name: "syncCnt", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "exprLev", name: "exprLev", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "inRhs", name: "inRhs", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "imports", name: "imports", embedded: false, exported: false, typ: sliceType$10, tag: ""}, {prop: "nestLev", name: "nestLev", embedded: false, exported: false, typ: $Int, tag: ""}]); + bailout.init("go/parser", [{prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "msg", name: "msg", embedded: false, exported: false, typ: $String, tag: ""}]); + field.init("go/parser", [{prop: "name", name: "name", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: ast.Expr, tag: ""}]); + parseSpecFunction.init([ptrType$34, token.Token, $Int], [ast.Spec], false); }; $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: - $r = sort.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = strconv.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = strings.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = unicode.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = utf8.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - instOpNames = new sliceType(["InstAlt", "InstAltMatch", "InstCapture", "InstEmptyWidth", "InstMatch", "InstFail", "InstNop", "InstRune", "InstRune1", "InstRuneAny", "InstRuneAnyNotNL"]); - code1 = new sliceType$1([48, 57]); - code2 = new sliceType$1([9, 10, 12, 13, 32, 32]); - code3 = new sliceType$1([48, 57, 65, 90, 95, 95, 97, 122]); - perlGroup = $makeMap($String.keyFor, [{ k: "\\d", v: $clone(new charGroup.ptr(1, code1), charGroup) }, { k: "\\D", v: $clone(new charGroup.ptr(-1, code1), charGroup) }, { k: "\\s", v: $clone(new charGroup.ptr(1, code2), charGroup) }, { k: "\\S", v: $clone(new charGroup.ptr(-1, code2), charGroup) }, { k: "\\w", v: $clone(new charGroup.ptr(1, code3), charGroup) }, { k: "\\W", v: $clone(new charGroup.ptr(-1, code3), charGroup) }]); - code4 = new sliceType$1([48, 57, 65, 90, 97, 122]); - code5 = new sliceType$1([65, 90, 97, 122]); - code6 = new sliceType$1([0, 127]); - code7 = new sliceType$1([9, 9, 32, 32]); - code8 = new sliceType$1([0, 31, 127, 127]); - code9 = new sliceType$1([48, 57]); - code10 = new sliceType$1([33, 126]); - code11 = new sliceType$1([97, 122]); - code12 = new sliceType$1([32, 126]); - code13 = new sliceType$1([33, 47, 58, 64, 91, 96, 123, 126]); - code14 = new sliceType$1([9, 13, 32, 32]); - code15 = new sliceType$1([65, 90]); - code16 = new sliceType$1([48, 57, 65, 90, 95, 95, 97, 122]); - code17 = new sliceType$1([48, 57, 65, 70, 97, 102]); - posixGroup = $makeMap($String.keyFor, [{ k: "[:alnum:]", v: $clone(new charGroup.ptr(1, code4), charGroup) }, { k: "[:^alnum:]", v: $clone(new charGroup.ptr(-1, code4), charGroup) }, { k: "[:alpha:]", v: $clone(new charGroup.ptr(1, code5), charGroup) }, { k: "[:^alpha:]", v: $clone(new charGroup.ptr(-1, code5), charGroup) }, { k: "[:ascii:]", v: $clone(new charGroup.ptr(1, code6), charGroup) }, { k: "[:^ascii:]", v: $clone(new charGroup.ptr(-1, code6), charGroup) }, { k: "[:blank:]", v: $clone(new charGroup.ptr(1, code7), charGroup) }, { k: "[:^blank:]", v: $clone(new charGroup.ptr(-1, code7), charGroup) }, { k: "[:cntrl:]", v: $clone(new charGroup.ptr(1, code8), charGroup) }, { k: "[:^cntrl:]", v: $clone(new charGroup.ptr(-1, code8), charGroup) }, { k: "[:digit:]", v: $clone(new charGroup.ptr(1, code9), charGroup) }, { k: "[:^digit:]", v: $clone(new charGroup.ptr(-1, code9), charGroup) }, { k: "[:graph:]", v: $clone(new charGroup.ptr(1, code10), charGroup) }, { k: "[:^graph:]", v: $clone(new charGroup.ptr(-1, code10), charGroup) }, { k: "[:lower:]", v: $clone(new charGroup.ptr(1, code11), charGroup) }, { k: "[:^lower:]", v: $clone(new charGroup.ptr(-1, code11), charGroup) }, { k: "[:print:]", v: $clone(new charGroup.ptr(1, code12), charGroup) }, { k: "[:^print:]", v: $clone(new charGroup.ptr(-1, code12), charGroup) }, { k: "[:punct:]", v: $clone(new charGroup.ptr(1, code13), charGroup) }, { k: "[:^punct:]", v: $clone(new charGroup.ptr(-1, code13), charGroup) }, { k: "[:space:]", v: $clone(new charGroup.ptr(1, code14), charGroup) }, { k: "[:^space:]", v: $clone(new charGroup.ptr(-1, code14), charGroup) }, { k: "[:upper:]", v: $clone(new charGroup.ptr(1, code15), charGroup) }, { k: "[:^upper:]", v: $clone(new charGroup.ptr(-1, code15), charGroup) }, { k: "[:word:]", v: $clone(new charGroup.ptr(1, code16), charGroup) }, { k: "[:^word:]", v: $clone(new charGroup.ptr(-1, code16), charGroup) }, { k: "[:xdigit:]", v: $clone(new charGroup.ptr(1, code17), charGroup) }, { k: "[:^xdigit:]", v: $clone(new charGroup.ptr(-1, code17), charGroup) }]); - anyTable = new unicode.RangeTable.ptr(new sliceType$2([$clone(new unicode.Range16.ptr(0, 65535, 1), unicode.Range16)]), new sliceType$3([$clone(new unicode.Range32.ptr(65536, 1114111, 1), unicode.Range32)]), 0); - _Op_index_0 = $toNativeArray($kindUint8, [0, 7, 17, 24, 33, 45, 52, 61, 68, 77, 84, 96, 110, 117, 121, 125, 130, 136, 142, 151]); - anyRuneNotNL = new sliceType$1([0, 9, 11, 1114111]); - anyRune = new sliceType$1([0, 1114111]); + $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errors.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fmt.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = ast.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = constraint.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = typeparams.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = scanner.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = token.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fs.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = os.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = filepath.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + unresolved = new ast.Object.ptr(0, "", $ifaceNil, $ifaceNil, $ifaceNil); + stmtStart = $makeMap(token.Token.keyFor, [{ k: 61, v: true }, { k: 64, v: true }, { k: 65, v: true }, { k: 67, v: true }, { k: 69, v: true }, { k: 70, v: true }, { k: 72, v: true }, { k: 73, v: true }, { k: 74, v: true }, { k: 80, v: true }, { k: 81, v: true }, { k: 83, v: true }, { k: 84, v: true }, { k: 85, v: true }]); + declStart = $makeMap(token.Token.keyFor, [{ k: 75, v: true }, { k: 64, v: true }, { k: 84, v: true }, { k: 85, v: true }]); + exprEnd = $makeMap(token.Token.keyFor, [{ k: 52, v: true }, { k: 58, v: true }, { k: 57, v: true }, { k: 54, v: true }, { k: 55, v: true }, { k: 56, v: true }]); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); -$packages["regexp"] = (function() { - var $pkg = {}, $init, bytes, nosync, io, syntax, sort, strconv, strings, unicode, utf8, Regexp, input, inputString, inputBytes, inputReader, onePassProg, onePassInst, queueOnePass, runeSlice, queue, entry, thread, machine, inputs, lazyFlag, onePassMachine, job, bitState, sliceType, arrayType, arrayType$1, arrayType$2, sliceType$1, sliceType$2, ptrType, ptrType$1, ptrType$2, sliceType$3, sliceType$4, ptrType$3, sliceType$5, ptrType$4, sliceType$6, sliceType$7, arrayType$3, arrayType$4, sliceType$8, sliceType$9, sliceType$10, sliceType$11, ptrType$5, ptrType$6, ptrType$7, sliceType$12, ptrType$8, sliceType$13, ptrType$9, sliceType$14, ptrType$10, ptrType$11, ptrType$12, ptrType$13, sliceType$15, funcType, funcType$1, funcType$2, funcType$3, ptrType$14, ptrType$15, ptrType$16, ptrType$17, ptrType$18, matchPool, specialBytes, onePassPool, arrayNoInts, bitStatePool, matchSize, noRune, noNext, anyRuneNotNL, anyRune, Compile, compile, minInputLen, MustCompile, quote, init, extract, onePassPrefix, onePassNext, iop, newQueue, mergeRuneSets, cleanupOnePass, onePassCopy, makeOnePass, compileOnePass, newLazyFlag, newOnePassMachine, freeOnePassMachine, newBitState, freeBitState, maxBitStateLen, shouldBacktrack; +$packages["go/doc/comment"] = (function() { + var $pkg = {}, $init, bytes, fmt, sort, strconv, strings, unicode, utf8, textPrinter, Printer, commentPrinter, Doc, LinkDef, Block, Heading, List, ListItem, Paragraph, Code, Text, Plain, Italic, Link, DocLink, Parser, parseDoc, span, spanKind, mdPrinter, htmlPrinter, score, sliceType, ptrType, ptrType$1, sliceType$1, sliceType$2, ptrType$2, ptrType$3, ptrType$4, ptrType$5, sliceType$3, ptrType$6, ptrType$7, sliceType$4, ptrType$8, ptrType$9, sliceType$5, ptrType$10, sliceType$6, sliceType$7, sliceType$8, ptrType$11, sliceType$9, ptrType$12, ptrType$13, funcType, funcType$1, ptrType$14, mapType, funcType$2, funcType$3, ptrType$15, mapType$1, ptrType$16, ptrType$17, stdPkgs, writeNL, wrap, wrapPenalty, blankBefore, isStdPkg, DefaultLookupPackage, parseSpans, indented, unindent, isBlank, commonPrefix, leadingSpace, isOldHeading, isHeading, parseLink, listMarker, isList, splitDocName, autoURL, isScheme, isHost, isPunct, isPath, isName, ident, isIdentASCII, validImportPath, validImportPathElem, importPathOK, inc; bytes = $packages["bytes"]; - nosync = $packages["github.com/gopherjs/gopherjs/nosync"]; - io = $packages["io"]; - syntax = $packages["regexp/syntax"]; + fmt = $packages["fmt"]; sort = $packages["sort"]; strconv = $packages["strconv"]; strings = $packages["strings"]; unicode = $packages["unicode"]; utf8 = $packages["unicode/utf8"]; - Regexp = $newType(0, $kindStruct, "regexp.Regexp", true, "regexp", true, function(expr_, prog_, onepass_, numSubexp_, maxBitStateLen_, subexpNames_, prefix_, prefixBytes_, prefixRune_, prefixEnd_, mpool_, matchcap_, prefixComplete_, cond_, minInputLen_, longest_) { + textPrinter = $newType(0, $kindStruct, "comment.textPrinter", true, "go/doc/comment", false, function(Printer_, long$1_, prefix_, codePrefix_, width_) { this.$val = this; if (arguments.length === 0) { - this.expr = ""; - this.prog = ptrType$1.nil; - this.onepass = ptrType$2.nil; - this.numSubexp = 0; - this.maxBitStateLen = 0; - this.subexpNames = sliceType$3.nil; + this.Printer = ptrType.nil; + this.long$1 = new strings.Builder.ptr(ptrType$1.nil, sliceType$1.nil); this.prefix = ""; - this.prefixBytes = sliceType$4.nil; - this.prefixRune = 0; - this.prefixEnd = 0; - this.mpool = 0; - this.matchcap = 0; - this.prefixComplete = false; - this.cond = 0; - this.minInputLen = 0; - this.longest = false; + this.codePrefix = ""; + this.width = 0; return; } - this.expr = expr_; - this.prog = prog_; - this.onepass = onepass_; - this.numSubexp = numSubexp_; - this.maxBitStateLen = maxBitStateLen_; - this.subexpNames = subexpNames_; + this.Printer = Printer_; + this.long$1 = long$1_; this.prefix = prefix_; - this.prefixBytes = prefixBytes_; - this.prefixRune = prefixRune_; - this.prefixEnd = prefixEnd_; - this.mpool = mpool_; - this.matchcap = matchcap_; - this.prefixComplete = prefixComplete_; - this.cond = cond_; - this.minInputLen = minInputLen_; - this.longest = longest_; + this.codePrefix = codePrefix_; + this.width = width_; }); - input = $newType(8, $kindInterface, "regexp.input", true, "regexp", false, null); - inputString = $newType(0, $kindStruct, "regexp.inputString", true, "regexp", false, function(str_) { + Printer = $newType(0, $kindStruct, "comment.Printer", true, "go/doc/comment", true, function(HeadingLevel_, HeadingID_, DocLinkURL_, DocLinkBaseURL_, TextPrefix_, TextCodePrefix_, TextWidth_) { this.$val = this; if (arguments.length === 0) { - this.str = ""; + this.HeadingLevel = 0; + this.HeadingID = $throwNilPointerError; + this.DocLinkURL = $throwNilPointerError; + this.DocLinkBaseURL = ""; + this.TextPrefix = ""; + this.TextCodePrefix = ""; + this.TextWidth = 0; return; } - this.str = str_; + this.HeadingLevel = HeadingLevel_; + this.HeadingID = HeadingID_; + this.DocLinkURL = DocLinkURL_; + this.DocLinkBaseURL = DocLinkBaseURL_; + this.TextPrefix = TextPrefix_; + this.TextCodePrefix = TextCodePrefix_; + this.TextWidth = TextWidth_; }); - inputBytes = $newType(0, $kindStruct, "regexp.inputBytes", true, "regexp", false, function(str_) { + commentPrinter = $newType(0, $kindStruct, "comment.commentPrinter", true, "go/doc/comment", false, function(Printer_) { this.$val = this; if (arguments.length === 0) { - this.str = sliceType$4.nil; + this.Printer = ptrType.nil; return; } - this.str = str_; + this.Printer = Printer_; }); - inputReader = $newType(0, $kindStruct, "regexp.inputReader", true, "regexp", false, function(r_, atEOT_, pos_) { + Doc = $newType(0, $kindStruct, "comment.Doc", true, "go/doc/comment", true, function(Content_, Links_) { this.$val = this; if (arguments.length === 0) { - this.r = $ifaceNil; - this.atEOT = false; - this.pos = 0; + this.Content = sliceType$5.nil; + this.Links = sliceType$6.nil; return; } - this.r = r_; - this.atEOT = atEOT_; - this.pos = pos_; + this.Content = Content_; + this.Links = Links_; }); - onePassProg = $newType(0, $kindStruct, "regexp.onePassProg", true, "regexp", false, function(Inst_, Start_, NumCap_) { + LinkDef = $newType(0, $kindStruct, "comment.LinkDef", true, "go/doc/comment", true, function(Text_, URL_, Used_) { this.$val = this; if (arguments.length === 0) { - this.Inst = sliceType$12.nil; - this.Start = 0; - this.NumCap = 0; + this.Text = ""; + this.URL = ""; + this.Used = false; return; } - this.Inst = Inst_; - this.Start = Start_; - this.NumCap = NumCap_; + this.Text = Text_; + this.URL = URL_; + this.Used = Used_; }); - onePassInst = $newType(0, $kindStruct, "regexp.onePassInst", true, "regexp", false, function(Inst_, Next_) { + Block = $newType(8, $kindInterface, "comment.Block", true, "go/doc/comment", true, null); + Heading = $newType(0, $kindStruct, "comment.Heading", true, "go/doc/comment", true, function(Text_) { this.$val = this; if (arguments.length === 0) { - this.Inst = new syntax.Inst.ptr(0, 0, 0, sliceType$1.nil); - this.Next = sliceType$2.nil; + this.Text = sliceType$8.nil; return; } - this.Inst = Inst_; - this.Next = Next_; + this.Text = Text_; }); - queueOnePass = $newType(0, $kindStruct, "regexp.queueOnePass", true, "regexp", false, function(sparse_, dense_, size_, nextIndex_) { + List = $newType(0, $kindStruct, "comment.List", true, "go/doc/comment", true, function(Items_, ForceBlankBefore_, ForceBlankBetween_) { this.$val = this; if (arguments.length === 0) { - this.sparse = sliceType$2.nil; - this.dense = sliceType$2.nil; - this.size = 0; - this.nextIndex = 0; + this.Items = sliceType$9.nil; + this.ForceBlankBefore = false; + this.ForceBlankBetween = false; return; } - this.sparse = sparse_; - this.dense = dense_; - this.size = size_; - this.nextIndex = nextIndex_; + this.Items = Items_; + this.ForceBlankBefore = ForceBlankBefore_; + this.ForceBlankBetween = ForceBlankBetween_; }); - runeSlice = $newType(12, $kindSlice, "regexp.runeSlice", true, "regexp", false, null); - queue = $newType(0, $kindStruct, "regexp.queue", true, "regexp", false, function(sparse_, dense_) { + ListItem = $newType(0, $kindStruct, "comment.ListItem", true, "go/doc/comment", true, function(Number_, Content_) { this.$val = this; if (arguments.length === 0) { - this.sparse = sliceType$2.nil; - this.dense = sliceType$5.nil; + this.Number = ""; + this.Content = sliceType$5.nil; return; } - this.sparse = sparse_; - this.dense = dense_; + this.Number = Number_; + this.Content = Content_; }); - entry = $newType(0, $kindStruct, "regexp.entry", true, "regexp", false, function(pc_, t_) { + Paragraph = $newType(0, $kindStruct, "comment.Paragraph", true, "go/doc/comment", true, function(Text_) { this.$val = this; if (arguments.length === 0) { - this.pc = 0; - this.t = ptrType$4.nil; + this.Text = sliceType$8.nil; return; } - this.pc = pc_; - this.t = t_; + this.Text = Text_; }); - thread = $newType(0, $kindStruct, "regexp.thread", true, "regexp", false, function(inst_, cap_) { + Code = $newType(0, $kindStruct, "comment.Code", true, "go/doc/comment", true, function(Text_) { this.$val = this; if (arguments.length === 0) { - this.inst = ptrType$10.nil; - this.cap = sliceType$7.nil; + this.Text = ""; return; } - this.inst = inst_; - this.cap = cap_; + this.Text = Text_; }); - machine = $newType(0, $kindStruct, "regexp.machine", true, "regexp", false, function(re_, p_, q0_, q1_, pool_, matched_, matchcap_, inputs_) { + Text = $newType(8, $kindInterface, "comment.Text", true, "go/doc/comment", true, null); + Plain = $newType(8, $kindString, "comment.Plain", true, "go/doc/comment", true, null); + Italic = $newType(8, $kindString, "comment.Italic", true, "go/doc/comment", true, null); + Link = $newType(0, $kindStruct, "comment.Link", true, "go/doc/comment", true, function(Auto_, Text_, URL_) { this.$val = this; if (arguments.length === 0) { - this.re = ptrType.nil; - this.p = ptrType$1.nil; - this.q0 = new queue.ptr(sliceType$2.nil, sliceType$5.nil); - this.q1 = new queue.ptr(sliceType$2.nil, sliceType$5.nil); - this.pool = sliceType$6.nil; - this.matched = false; - this.matchcap = sliceType$7.nil; - this.inputs = new inputs.ptr(new inputBytes.ptr(sliceType$4.nil), new inputString.ptr(""), new inputReader.ptr($ifaceNil, false, 0)); + this.Auto = false; + this.Text = sliceType$8.nil; + this.URL = ""; return; } - this.re = re_; - this.p = p_; - this.q0 = q0_; - this.q1 = q1_; - this.pool = pool_; - this.matched = matched_; - this.matchcap = matchcap_; - this.inputs = inputs_; + this.Auto = Auto_; + this.Text = Text_; + this.URL = URL_; }); - inputs = $newType(0, $kindStruct, "regexp.inputs", true, "regexp", false, function(bytes_, string_, reader_) { + DocLink = $newType(0, $kindStruct, "comment.DocLink", true, "go/doc/comment", true, function(Text_, ImportPath_, Recv_, Name_) { this.$val = this; if (arguments.length === 0) { - this.bytes = new inputBytes.ptr(sliceType$4.nil); - this.string = new inputString.ptr(""); - this.reader = new inputReader.ptr($ifaceNil, false, 0); + this.Text = sliceType$8.nil; + this.ImportPath = ""; + this.Recv = ""; + this.Name = ""; return; } - this.bytes = bytes_; - this.string = string_; - this.reader = reader_; + this.Text = Text_; + this.ImportPath = ImportPath_; + this.Recv = Recv_; + this.Name = Name_; }); - lazyFlag = $newType(8, $kindUint64, "regexp.lazyFlag", true, "regexp", false, null); - onePassMachine = $newType(0, $kindStruct, "regexp.onePassMachine", true, "regexp", false, function(inputs_, matchcap_) { + Parser = $newType(0, $kindStruct, "comment.Parser", true, "go/doc/comment", true, function(Words_, LookupPackage_, LookupSym_) { this.$val = this; if (arguments.length === 0) { - this.inputs = new inputs.ptr(new inputBytes.ptr(sliceType$4.nil), new inputString.ptr(""), new inputReader.ptr($ifaceNil, false, 0)); - this.matchcap = sliceType$7.nil; + this.Words = false; + this.LookupPackage = $throwNilPointerError; + this.LookupSym = $throwNilPointerError; return; } - this.inputs = inputs_; - this.matchcap = matchcap_; + this.Words = Words_; + this.LookupPackage = LookupPackage_; + this.LookupSym = LookupSym_; }); - job = $newType(0, $kindStruct, "regexp.job", true, "regexp", false, function(pc_, arg_, pos_) { + parseDoc = $newType(0, $kindStruct, "comment.parseDoc", true, "go/doc/comment", false, function(Parser_, Doc_, links_, lines_, lookupSym_) { this.$val = this; if (arguments.length === 0) { - this.pc = 0; - this.arg = false; - this.pos = 0; + this.Parser = ptrType$8.nil; + this.Doc = ptrType$9.nil; + this.links = false; + this.lines = sliceType.nil; + this.lookupSym = $throwNilPointerError; return; } - this.pc = pc_; - this.arg = arg_; - this.pos = pos_; + this.Parser = Parser_; + this.Doc = Doc_; + this.links = links_; + this.lines = lines_; + this.lookupSym = lookupSym_; }); - bitState = $newType(0, $kindStruct, "regexp.bitState", true, "regexp", false, function(end_, cap_, matchcap_, jobs_, visited_, inputs_) { + span = $newType(0, $kindStruct, "comment.span", true, "go/doc/comment", false, function(start_, end_, kind_) { this.$val = this; if (arguments.length === 0) { + this.start = 0; this.end = 0; - this.cap = sliceType$7.nil; - this.matchcap = sliceType$7.nil; - this.jobs = sliceType$15.nil; - this.visited = sliceType$2.nil; - this.inputs = new inputs.ptr(new inputBytes.ptr(sliceType$4.nil), new inputString.ptr(""), new inputReader.ptr($ifaceNil, false, 0)); + this.kind = 0; return; } + this.start = start_; this.end = end_; - this.cap = cap_; - this.matchcap = matchcap_; - this.jobs = jobs_; - this.visited = visited_; - this.inputs = inputs_; + this.kind = kind_; + }); + spanKind = $newType(4, $kindInt, "comment.spanKind", true, "go/doc/comment", false, null); + mdPrinter = $newType(0, $kindStruct, "comment.mdPrinter", true, "go/doc/comment", false, function(Printer_, headingPrefix_, raw_) { + this.$val = this; + if (arguments.length === 0) { + this.Printer = ptrType.nil; + this.headingPrefix = ""; + this.raw = new bytes.Buffer.ptr(sliceType$1.nil, 0, 0); + return; + } + this.Printer = Printer_; + this.headingPrefix = headingPrefix_; + this.raw = raw_; + }); + htmlPrinter = $newType(0, $kindStruct, "comment.htmlPrinter", true, "go/doc/comment", false, function(Printer_, tight_) { + this.$val = this; + if (arguments.length === 0) { + this.Printer = ptrType.nil; + this.tight = false; + return; + } + this.Printer = Printer_; + this.tight = tight_; + }); + score = $newType(0, $kindStruct, "comment.score", true, "go/doc/comment", false, function(hi_, lo_) { + this.$val = this; + if (arguments.length === 0) { + this.hi = new $Int64(0, 0); + this.lo = new $Int64(0, 0); + return; + } + this.hi = hi_; + this.lo = lo_; }); - $pkg.Regexp = Regexp; - $pkg.input = input; - $pkg.inputString = inputString; - $pkg.inputBytes = inputBytes; - $pkg.inputReader = inputReader; - $pkg.onePassProg = onePassProg; - $pkg.onePassInst = onePassInst; - $pkg.queueOnePass = queueOnePass; - $pkg.runeSlice = runeSlice; - $pkg.queue = queue; - $pkg.entry = entry; - $pkg.thread = thread; - $pkg.machine = machine; - $pkg.inputs = inputs; - $pkg.lazyFlag = lazyFlag; - $pkg.onePassMachine = onePassMachine; - $pkg.job = job; - $pkg.bitState = bitState; + $pkg.textPrinter = textPrinter; + $pkg.Printer = Printer; + $pkg.commentPrinter = commentPrinter; + $pkg.Doc = Doc; + $pkg.LinkDef = LinkDef; + $pkg.Block = Block; + $pkg.Heading = Heading; + $pkg.List = List; + $pkg.ListItem = ListItem; + $pkg.Paragraph = Paragraph; + $pkg.Code = Code; + $pkg.Text = Text; + $pkg.Plain = Plain; + $pkg.Italic = Italic; + $pkg.Link = Link; + $pkg.DocLink = DocLink; + $pkg.Parser = Parser; + $pkg.parseDoc = parseDoc; + $pkg.span = span; + $pkg.spanKind = spanKind; + $pkg.mdPrinter = mdPrinter; + $pkg.htmlPrinter = htmlPrinter; + $pkg.score = score; $pkg.$finishSetup = function() { - sliceType = $sliceType($emptyInterface); - arrayType = $arrayType(nosync.Pool, 5); - arrayType$1 = $arrayType($Uint8, 16); - arrayType$2 = $arrayType($Int, 0); - sliceType$1 = $sliceType($Int32); - sliceType$2 = $sliceType($Uint32); - ptrType = $ptrType(Regexp); - ptrType$1 = $ptrType(syntax.Prog); - ptrType$2 = $ptrType(onePassProg); - sliceType$3 = $sliceType($String); - sliceType$4 = $sliceType($Uint8); - ptrType$3 = $ptrType(machine); - sliceType$5 = $sliceType(entry); - ptrType$4 = $ptrType(thread); - sliceType$6 = $sliceType(ptrType$4); - sliceType$7 = $sliceType($Int); - arrayType$3 = $arrayType($Int, 2); - arrayType$4 = $arrayType($Int, 4); - sliceType$8 = $sliceType(sliceType$4); - sliceType$9 = $sliceType(sliceType$7); - sliceType$10 = $sliceType(sliceType$8); - sliceType$11 = $sliceType(sliceType$3); - ptrType$5 = $ptrType(strings.Builder); - ptrType$6 = $ptrType(queueOnePass); - ptrType$7 = $ptrType($Int); - sliceType$12 = $sliceType(onePassInst); - ptrType$8 = $ptrType($Uint32); - sliceType$13 = $sliceType(sliceType$1); - ptrType$9 = $ptrType(sliceType$1); - sliceType$14 = $sliceType($Bool); - ptrType$10 = $ptrType(syntax.Inst); - ptrType$11 = $ptrType(lazyFlag); - ptrType$12 = $ptrType(onePassMachine); - ptrType$13 = $ptrType(bitState); - sliceType$15 = $sliceType(job); - funcType = $funcType([$String], [$String], false); - funcType$1 = $funcType([sliceType$4, sliceType$7], [sliceType$4], false); - funcType$2 = $funcType([sliceType$4], [sliceType$4], false); - funcType$3 = $funcType([sliceType$7], [], false); - ptrType$14 = $ptrType(inputString); - ptrType$15 = $ptrType(inputBytes); - ptrType$16 = $ptrType(inputReader); - ptrType$17 = $ptrType(queue); - ptrType$18 = $ptrType(inputs); - $ptrType(Regexp).prototype.String = function String() { - var re; - re = this; - return re.expr; - }; - $ptrType(Regexp).prototype.Copy = function Copy() { - var re, re2; - re = this; - re2 = $clone(re, Regexp); - return re2; - }; - Compile = function Compile$1(expr) { - var {$24r, _r, expr, $s, $r, $c} = $restore(this, {expr}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = compile(expr, 212, false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Compile$1, $c: true, $r, $24r, _r, expr, $s};return $f; - }; - $pkg.Compile = Compile; - $ptrType(Regexp).prototype.Longest = function Longest() { - var re; - re = this; - re.longest = true; - }; - compile = function compile$1(expr, mode, longest) { - var {_r, _r$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, capNames, err, expr, i, longest, matchcap, maxCap, mode, n, prog, re, regexp, $s, $r, $c} = $restore(this, {expr, mode, longest}); + sliceType = $sliceType($String); + ptrType = $ptrType(Printer); + ptrType$1 = $ptrType(strings.Builder); + sliceType$1 = $sliceType($Uint8); + sliceType$2 = $sliceType($emptyInterface); + ptrType$2 = $ptrType(Paragraph); + ptrType$3 = $ptrType(Heading); + ptrType$4 = $ptrType(Code); + ptrType$5 = $ptrType(List); + sliceType$3 = $sliceType($Int); + ptrType$6 = $ptrType(Link); + ptrType$7 = $ptrType(DocLink); + sliceType$4 = $sliceType(score); + ptrType$8 = $ptrType(Parser); + ptrType$9 = $ptrType(Doc); + sliceType$5 = $sliceType(Block); + ptrType$10 = $ptrType(LinkDef); + sliceType$6 = $sliceType(ptrType$10); + sliceType$7 = $sliceType(span); + sliceType$8 = $sliceType(Text); + ptrType$11 = $ptrType(ListItem); + sliceType$9 = $sliceType(ptrType$11); + ptrType$12 = $ptrType(bytes.Buffer); + ptrType$13 = $ptrType(textPrinter); + funcType = $funcType([ptrType$3], [$String], false); + funcType$1 = $funcType([ptrType$7], [$String], false); + ptrType$14 = $ptrType(commentPrinter); + mapType = $mapType($String, $String); + funcType$2 = $funcType([$String], [$String, $Bool], false); + funcType$3 = $funcType([$String, $String], [$Bool], false); + ptrType$15 = $ptrType(parseDoc); + mapType$1 = $mapType($String, ptrType$10); + ptrType$16 = $ptrType(mdPrinter); + ptrType$17 = $ptrType(htmlPrinter); + $ptrType(Printer).prototype.Text = function Text$1(d) { + var {_i, _i$1, _i$2, _r, _ref, _ref$1, _ref$2, anyUsed, d, def, def$1, i, out, p, tp, x, $s, $r, $c} = $restore(this, {d}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = syntax.Parse(expr, mode); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - re = _tuple[0]; - err = _tuple[1]; - if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [ptrType.nil, err]; - } - maxCap = re.MaxCap(); - capNames = re.CapNames(); - re = re.Simplify(); - _tuple$1 = syntax.Compile(re); - prog = _tuple$1[0]; - err = _tuple$1[1]; - if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [ptrType.nil, err]; - } - matchcap = prog.NumCap; - if (matchcap < 2) { - matchcap = 2; - } - _r$1 = compileOnePass(prog); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - regexp = new Regexp.ptr(expr, prog, _r$1, maxCap, 0, capNames, "", sliceType$4.nil, 0, 0, 0, matchcap, false, prog.StartCond(), minInputLen(re), longest); - if (regexp.onepass === ptrType$2.nil) { - _tuple$2 = prog.Prefix(); - regexp.prefix = _tuple$2[0]; - regexp.prefixComplete = _tuple$2[1]; - regexp.maxBitStateLen = maxBitStateLen(prog); - } else { - _tuple$3 = onePassPrefix(prog); - regexp.prefix = _tuple$3[0]; - regexp.prefixComplete = _tuple$3[1]; - regexp.prefixEnd = _tuple$3[2]; + out = [out]; + p = this; + tp = new textPrinter.ptr(p, new strings.Builder.ptr(ptrType$1.nil, sliceType$1.nil), p.TextPrefix, p.TextCodePrefix, p.TextWidth); + if (tp.codePrefix === "") { + tp.codePrefix = p.TextPrefix + "\t"; } - if (!(regexp.prefix === "")) { - regexp.prefixBytes = (new sliceType$4($stringToBytes(regexp.prefix))); - _tuple$4 = utf8.DecodeRuneInString(regexp.prefix); - regexp.prefixRune = _tuple$4[0]; + if (tp.width === 0) { + tp.width = 80 - utf8.RuneCountInString(tp.prefix) >> 0; } - n = prog.Inst.$length; - i = 0; + out[0] = new bytes.Buffer.ptr(sliceType$1.nil, 0, 0); + _ref = d.Content; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (i > 0 && blankBefore(x)) { + out[0].WriteString(tp.prefix); + writeNL(out[0]); + } + $r = tp.block(out[0], x); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 1; continue; + case 2: + anyUsed = false; + _ref$1 = d.Links; + _i$1 = 0; while (true) { - if (!(!((((i < 0 || i >= matchSize.length) ? ($throwRuntimeError("index out of range"), undefined) : matchSize[i]) === 0)) && ((i < 0 || i >= matchSize.length) ? ($throwRuntimeError("index out of range"), undefined) : matchSize[i]) < n)) { break; } - i = i + (1) >> 0; - } - regexp.mpool = i; - $s = -1; return [regexp, $ifaceNil]; - /* */ } return; } var $f = {$blk: compile$1, $c: true, $r, _r, _r$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, capNames, err, expr, i, longest, matchcap, maxCap, mode, n, prog, re, regexp, $s};return $f; - }; - $ptrType(Regexp).prototype.get = function get() { - var {_i, _r, _ref, _tuple, m, n, ok, re, t, x, x$1, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - re = this; - _r = (x = re.mpool, ((x < 0 || x >= matchPool.length) ? ($throwRuntimeError("index out of range"), undefined) : matchPool[x])).Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = $assertType(_r, ptrType$3, true); - m = _tuple[0]; - ok = _tuple[1]; - if (!ok) { - m = new machine.ptr(ptrType.nil, ptrType$1.nil, new queue.ptr(sliceType$2.nil, sliceType$5.nil), new queue.ptr(sliceType$2.nil, sliceType$5.nil), sliceType$6.nil, false, sliceType$7.nil, new inputs.ptr(new inputBytes.ptr(sliceType$4.nil), new inputString.ptr(""), new inputReader.ptr($ifaceNil, false, 0))); - } - m.re = re; - m.p = re.prog; - if (m.matchcap.$capacity < re.matchcap) { - m.matchcap = $makeSlice(sliceType$7, re.matchcap); - _ref = m.pool; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - t.cap = $makeSlice(sliceType$7, re.matchcap); - _i++; + if (!(_i$1 < _ref$1.$length)) { break; } + def = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + if (def.Used) { + anyUsed = true; + break; } + _i$1++; } - n = (x$1 = re.mpool, ((x$1 < 0 || x$1 >= matchSize.length) ? ($throwRuntimeError("index out of range"), undefined) : matchSize[x$1])); - if (n === 0) { - n = re.prog.Inst.$length; + /* */ if (anyUsed) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (anyUsed) { */ case 4: + writeNL(out[0]); + _ref$2 = d.Links; + _i$2 = 0; + /* while (true) { */ case 6: + /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 7; continue; } + def$1 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); + /* */ if (def$1.Used) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (def$1.Used) { */ case 8: + _r = fmt.Fprintf(out[0], "[%s]: %s\n", new sliceType$2([new $String(def$1.Text), new $String(def$1.URL)])); /* */ $s = 10; case 10: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + /* } */ case 9: + _i$2++; + $s = 6; continue; + case 7: + /* } */ case 5: + $s = -1; return out[0].Bytes(); + /* */ } return; } var $f = {$blk: Text$1, $c: true, $r, _i, _i$1, _i$2, _r, _ref, _ref$1, _ref$2, anyUsed, d, def, def$1, i, out, p, tp, x, $s};return $f; + }; + writeNL = function writeNL$1(out) { + var data, n, out, x, x$1; + data = out.Bytes(); + n = 0; + while (true) { + if (!(n < data.$length && (((x = (data.$length - n >> 0) - 1 >> 0, ((x < 0 || x >= data.$length) ? ($throwRuntimeError("index out of range"), undefined) : data.$array[data.$offset + x])) === 32) || ((x$1 = (data.$length - n >> 0) - 1 >> 0, ((x$1 < 0 || x$1 >= data.$length) ? ($throwRuntimeError("index out of range"), undefined) : data.$array[data.$offset + x$1])) === 9)))) { break; } + n = n + (1) >> 0; } - if (m.q0.sparse.$length < n) { - queue.copy(m.q0, new queue.ptr($makeSlice(sliceType$2, n), $makeSlice(sliceType$5, 0, n))); - queue.copy(m.q1, new queue.ptr($makeSlice(sliceType$2, n), $makeSlice(sliceType$5, 0, n))); + if (n > 0) { + out.Truncate(data.$length - n >> 0); } - $s = -1; return m; - /* */ } return; } var $f = {$blk: get, $c: true, $r, _i, _r, _ref, _tuple, m, n, ok, re, t, x, x$1, $s};return $f; - }; - $ptrType(Regexp).prototype.put = function put(m) { - var m, re, x; - re = this; - m.re = ptrType.nil; - m.p = ptrType$1.nil; - m.inputs.clear(); - (x = re.mpool, ((x < 0 || x >= matchPool.length) ? ($throwRuntimeError("index out of range"), undefined) : matchPool[x])).Put(m); + out.WriteByte(10); }; - minInputLen = function minInputLen$1(re) { - var _1, _i, _i$1, _i$2, _ref, _ref$1, _ref$2, l, l$1, l$2, lnext, r, re, sub, sub$1, x, x$1, x$2; - _1 = re.Op; - if ((_1 === (6)) || (_1 === (5)) || (_1 === (4))) { - return 1; - } else if (_1 === (3)) { - l = 0; - _ref = re.Rune; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - r = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (r === 65533) { - l = l + (1) >> 0; - } else { - l = l + (utf8.RuneLen(r)) >> 0; - } - _i++; - } - return l; - } else if ((_1 === (13)) || (_1 === (15))) { - return minInputLen((x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))); - } else if (_1 === (17)) { - return $imul(re.Min, minInputLen((x$1 = re.Sub, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])))); - } else if (_1 === (18)) { - l$1 = 0; - _ref$1 = re.Sub; - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - sub = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - l$1 = l$1 + (minInputLen(sub)) >> 0; - _i$1++; - } - return l$1; - } else if (_1 === (19)) { - l$2 = minInputLen((x$2 = re.Sub, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0]))); - lnext = 0; - _ref$2 = $subslice(re.Sub, 1); - _i$2 = 0; + $ptrType(textPrinter).prototype.block = function block(out, x) { + var {_i, _i$1, _r, _ref, _ref$1, _ref$2, _tuple, blk, i, i$1, item, line, loose, out, p, text, x, x$1, x$2, x$3, x$4, x$5, $s, $r, $c} = $restore(this, {out, x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _ref = x; + /* */ if ($assertType(_ref, ptrType$2, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$3, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$5, true)[1]) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ($assertType(_ref, ptrType$2, true)[1]) { */ case 1: + x$2 = _ref.$val; + out.WriteString(p.prefix); + $r = p.text(out, "", x$2.Text); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 6; continue; + /* } else if ($assertType(_ref, ptrType$3, true)[1]) { */ case 2: + x$3 = _ref.$val; + out.WriteString(p.prefix); + out.WriteString("# "); + $r = p.text(out, "", x$3.Text); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 6; continue; + /* } else if ($assertType(_ref, ptrType$4, true)[1]) { */ case 3: + x$4 = _ref.$val; + text = x$4.Text; while (true) { - if (!(_i$2 < _ref$2.$length)) { break; } - sub$1 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); - lnext = minInputLen(sub$1); - if (lnext < l$2) { - l$2 = lnext; + if (!(!(text === ""))) { break; } + line = ""; + _tuple = strings.Cut(text, "\n"); + line = _tuple[0]; + text = _tuple[1]; + if (!(line === "")) { + out.WriteString(p.codePrefix); + out.WriteString(line); } - _i$2++; + writeNL(out); } - return l$2; - } else { - return 0; - } - }; - MustCompile = function MustCompile$1(str) { - var {_r, _r$1, _tuple, err, regexp, str, $s, $r, $c} = $restore(this, {str}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = Compile(str); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - regexp = _tuple[0]; - err = _tuple[1]; - /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2: - _r$1 = err.Error(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $panic(new $String("regexp: Compile(" + quote(str) + "): " + _r$1)); - /* } */ case 3: - $s = -1; return regexp; - /* */ } return; } var $f = {$blk: MustCompile$1, $c: true, $r, _r, _r$1, _tuple, err, regexp, str, $s};return $f; - }; - $pkg.MustCompile = MustCompile; - quote = function quote$1(s) { - var s; - if (strconv.CanBackquote(s)) { - return "`" + s + "`"; - } - return strconv.Quote(s); - }; - $ptrType(Regexp).prototype.NumSubexp = function NumSubexp() { - var re; - re = this; - return re.numSubexp; - }; - $ptrType(Regexp).prototype.SubexpNames = function SubexpNames() { - var re; - re = this; - return re.subexpNames; - }; - $ptrType(Regexp).prototype.SubexpIndex = function SubexpIndex(name) { - var _i, _ref, i, name, re, s; - re = this; - if (!(name === "")) { - _ref = re.subexpNames; + $s = 6; continue; + /* } else if ($assertType(_ref, ptrType$5, true)[1]) { */ case 4: + x$5 = _ref.$val; + loose = x$5.BlankBetween(); + _ref$1 = x$5.Items; _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } + /* while (true) { */ case 9: + /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 10; continue; } i = _i; - s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (name === s) { - return i; + item = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + if (i > 0 && loose) { + out.WriteString(p.prefix); + writeNL(out); + } + out.WriteString(p.prefix); + out.WriteString(" "); + if (item.Number === "") { + out.WriteString(" - "); + } else { + out.WriteString(item.Number); + out.WriteString(". "); } + _ref$2 = item.Content; + _i$1 = 0; + /* while (true) { */ case 11: + /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 12; continue; } + i$1 = _i$1; + blk = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); + if (i$1 > 0) { + writeNL(out); + out.WriteString(p.prefix); + out.WriteString(" "); + } + $r = p.text(out, " ", $assertType(blk, ptrType$2).Text); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + $s = 11; continue; + case 12: _i++; - } - } - return -1; - }; - $ptrType(inputString).prototype.step = function step(pos) { - var c, i, pos; - i = this; - if (pos < i.str.length) { - c = i.str.charCodeAt(pos); - if (c < 128) { - return [((c >> 0)), 1]; - } - return utf8.DecodeRuneInString($substring(i.str, pos)); - } - return [-1, 0]; - }; - $ptrType(inputString).prototype.canCheckPrefix = function canCheckPrefix() { - var i; - i = this; - return true; - }; - $ptrType(inputString).prototype.hasPrefix = function hasPrefix(re) { - var i, re; - i = this; - return strings.HasPrefix(i.str, re.prefix); - }; - $ptrType(inputString).prototype.index = function index(re, pos) { - var i, pos, re; - i = this; - return strings.Index($substring(i.str, pos), re.prefix); + $s = 9; continue; + case 10: + $s = 6; continue; + /* } else { */ case 5: + x$1 = _ref; + _r = fmt.Fprintf(out, "?%T\n", new sliceType$2([x$1])); /* */ $s = 14; case 14: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + /* } */ case 6: + $s = -1; return; + /* */ } return; } var $f = {$blk: block, $c: true, $r, _i, _i$1, _r, _ref, _ref$1, _ref$2, _tuple, blk, i, i$1, item, line, loose, out, p, text, x, x$1, x$2, x$3, x$4, x$5, $s};return $f; }; - $ptrType(inputString).prototype.context = function context(pos) { - var _tmp, _tmp$1, _tuple, _tuple$1, i, pos, r1, r2; - i = this; - _tmp = -1; - _tmp$1 = -1; - r1 = _tmp; - r2 = _tmp$1; - if ((((pos - 1 >> 0) >>> 0)) < ((i.str.length >>> 0))) { - r1 = ((i.str.charCodeAt((pos - 1 >> 0)) >> 0)); - if (r1 >= 128) { - _tuple = utf8.DecodeLastRuneInString($substring(i.str, 0, pos)); - r1 = _tuple[0]; - } - } - if (((pos >>> 0)) < ((i.str.length >>> 0))) { - r2 = ((i.str.charCodeAt(pos) >> 0)); - if (r2 >= 128) { - _tuple$1 = utf8.DecodeRuneInString($substring(i.str, pos)); - r2 = _tuple$1[0]; + $ptrType(textPrinter).prototype.text = function text(out, indent, x) { + var {_i, _r, _r$1, _ref, i, indent, j, out, p, seq, w, words, x, x$1, $s, $r, $c} = $restore(this, {out, indent, x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + p.oneLongLine(p.long$1, x); + _r = strings.Fields(p.long$1.String()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + words = _r; + p.long$1.Reset(); + seq = sliceType$3.nil; + /* */ if (p.width < 0 || (words.$length === 0)) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (p.width < 0 || (words.$length === 0)) { */ case 2: + seq = new sliceType$3([0, words.$length]); + $s = 4; continue; + /* } else { */ case 3: + _r$1 = wrap(words, p.width - utf8.RuneCountInString(indent) >> 0); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + seq = _r$1; + /* } */ case 4: + i = 0; + while (true) { + if (!((i + 1 >> 0) < seq.$length)) { break; } + if (i > 0) { + out.WriteString(p.prefix); + out.WriteString(indent); } - } - return newLazyFlag(r1, r2); - }; - $ptrType(inputBytes).prototype.step = function step$1(pos) { - var c, i, pos, x; - i = this; - if (pos < i.str.$length) { - c = (x = i.str, ((pos < 0 || pos >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pos])); - if (c < 128) { - return [((c >> 0)), 1]; + _ref = $subslice(words, ((i < 0 || i >= seq.$length) ? ($throwRuntimeError("index out of range"), undefined) : seq.$array[seq.$offset + i]), (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= seq.$length) ? ($throwRuntimeError("index out of range"), undefined) : seq.$array[seq.$offset + x$1]))); + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + j = _i; + w = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (j > 0) { + out.WriteString(" "); + } + out.WriteString(w); + _i++; } - return utf8.DecodeRune($subslice(i.str, pos)); + writeNL(out); + i = i + (1) >> 0; } - return [-1, 0]; - }; - $ptrType(inputBytes).prototype.canCheckPrefix = function canCheckPrefix$1() { - var i; - i = this; - return true; - }; - $ptrType(inputBytes).prototype.hasPrefix = function hasPrefix$1(re) { - var i, re; - i = this; - return bytes.HasPrefix(i.str, re.prefixBytes); - }; - $ptrType(inputBytes).prototype.index = function index$1(re, pos) { - var i, pos, re; - i = this; - return bytes.Index($subslice(i.str, pos), re.prefixBytes); + $s = -1; return; + /* */ } return; } var $f = {$blk: text, $c: true, $r, _i, _r, _r$1, _ref, i, indent, j, out, p, seq, w, words, x, x$1, $s};return $f; }; - $ptrType(inputBytes).prototype.context = function context$1(pos) { - var _tmp, _tmp$1, _tuple, _tuple$1, i, pos, r1, r2, x, x$1, x$2; - i = this; - _tmp = -1; - _tmp$1 = -1; - r1 = _tmp; - r2 = _tmp$1; - if ((((pos - 1 >> 0) >>> 0)) < ((i.str.$length >>> 0))) { - r1 = (((x = i.str, x$1 = pos - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])) >> 0)); - if (r1 >= 128) { - _tuple = utf8.DecodeLastRune($subslice(i.str, 0, pos)); - r1 = _tuple[0]; - } - } - if (((pos >>> 0)) < ((i.str.$length >>> 0))) { - r2 = (((x$2 = i.str, ((pos < 0 || pos >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + pos])) >> 0)); - if (r2 >= 128) { - _tuple$1 = utf8.DecodeRune($subslice(i.str, pos)); - r2 = _tuple$1[0]; + $ptrType(textPrinter).prototype.oneLongLine = function oneLongLine(out, x) { + var _i, _ref, _ref$1, out, p, t, t$1, t$2, t$3, t$4, x; + p = this; + _ref = x; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _ref$1 = t; + if ($assertType(_ref$1, Plain, true)[1]) { + t$1 = _ref$1.$val; + out.WriteString((t$1)); + } else if ($assertType(_ref$1, Italic, true)[1]) { + t$2 = _ref$1.$val; + out.WriteString((t$2)); + } else if ($assertType(_ref$1, ptrType$6, true)[1]) { + t$3 = _ref$1.$val; + p.oneLongLine(out, t$3.Text); + } else if ($assertType(_ref$1, ptrType$7, true)[1]) { + t$4 = _ref$1.$val; + p.oneLongLine(out, t$4.Text); } + _i++; } - return newLazyFlag(r1, r2); }; - $ptrType(inputReader).prototype.step = function step$2(pos) { - var {_r, _tuple, err, i, pos, r, w, $s, $r, $c} = $restore(this, {pos}); + wrap = function wrap$1(words, max) { + var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _i, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _v, _v$1, _v$2, add, bestleft, bridge, cmp, d, f, g, i, m, m$1, m$2, max, n, s, seq, total, weight, words, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {words, max}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - i = this; - if (!i.atEOT && !((pos === i.pos))) { - $s = -1; return [-1, 0]; + add = [add]; + cmp = [cmp]; + f = [f]; + g = [g]; + max = [max]; + total = [total]; + weight = [weight]; + words = [words]; + seq = sliceType$3.nil; + add[0] = (function(add, cmp, f, g, max, total, weight, words) { return function wrap·func1(s, t) { + var s, t, x, x$1, x$2, x$3; + return new score.ptr((x = s.hi, x$1 = t.hi, new $Int64(x.$high + x$1.$high, x.$low + x$1.$low)), (x$2 = s.lo, x$3 = t.lo, new $Int64(x$2.$high + x$3.$high, x$2.$low + x$3.$low))); + }; })(add, cmp, f, g, max, total, weight, words); + cmp[0] = (function(add, cmp, f, g, max, total, weight, words) { return function wrap·func2(s, t) { + var s, t, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7; + if ((x = s.hi, x$1 = t.hi, (x.$high < x$1.$high || (x.$high === x$1.$high && x.$low < x$1.$low)))) { + return -1; + } else if ((x$2 = s.hi, x$3 = t.hi, (x$2.$high > x$3.$high || (x$2.$high === x$3.$high && x$2.$low > x$3.$low)))) { + return 1; + } else if ((x$4 = s.lo, x$5 = t.lo, (x$4.$high < x$5.$high || (x$4.$high === x$5.$high && x$4.$low < x$5.$low)))) { + return -1; + } else if ((x$6 = s.lo, x$7 = t.lo, (x$6.$high > x$7.$high || (x$6.$high === x$7.$high && x$6.$low > x$7.$low)))) { + return 1; + } + return 0; + }; })(add, cmp, f, g, max, total, weight, words); + total[0] = $makeSlice(sliceType$3, (words[0].$length + 1 >> 0)); + (0 >= total[0].$length ? ($throwRuntimeError("index out of range"), undefined) : total[0].$array[total[0].$offset + 0] = 0); + _ref = words[0]; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + (x = 1 + i >> 0, ((x < 0 || x >= total[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : total[0].$array[total[0].$offset + x] = ((((i < 0 || i >= total[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : total[0].$array[total[0].$offset + i]) + utf8.RuneCountInString(s) >> 0) + 1 >> 0))); + _i++; } - _r = i.r.ReadRune(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - r = _tuple[0]; - w = _tuple[1]; - err = _tuple[2]; - if (!($interfaceIsEqual(err, $ifaceNil))) { - i.atEOT = true; - $s = -1; return [-1, 0]; + weight[0] = (function(add, cmp, f, g, max, total, weight, words) { return function wrap·func3(i$1, j) { + var i$1, j, n, p, v, x$1; + n = (((j < 0 || j >= total[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : total[0].$array[total[0].$offset + j]) - 1 >> 0) - ((i$1 < 0 || i$1 >= total[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : total[0].$array[total[0].$offset + i$1]) >> 0; + if ((j === words[0].$length) && n <= max[0]) { + return new score.ptr(new $Int64(0, 0), new $Int64(0, 0)); + } + p = wrapPenalty((x$1 = j - 1 >> 0, ((x$1 < 0 || x$1 >= words[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : words[0].$array[words[0].$offset + x$1]))); + v = $mul64((new $Int64(0, (max[0] - n >> 0))), (new $Int64(0, (max[0] - n >> 0)))); + if (n > max[0]) { + return new score.ptr(v, p); + } + return new score.ptr(new $Int64(0, 0), new $Int64(v.$high + p.$high, v.$low + p.$low)); + }; })(add, cmp, f, g, max, total, weight, words); + f[0] = new sliceType$4([$clone(new score.ptr(new $Int64(0, 0), new $Int64(0, 0)), score)]); + g[0] = (function(add, cmp, f, g, max, total, weight, words) { return function wrap·func4(i$1, j) { + var {$24r, _arg, _arg$1, _r, _r$1, i$1, j, $s, $r, $c} = $restore(this, {i$1, j}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _arg = $clone(((i$1 < 0 || i$1 >= f[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : f[0].$array[f[0].$offset + i$1]), score); + _r = weight[0](i$1, j); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = $clone(_r, score); + _r$1 = add[0](_arg, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: wrap·func4, $c: true, $r, $24r, _arg, _arg$1, _r, _r$1, i$1, j, $s};return $f; + }; })(add, cmp, f, g, max, total, weight, words); + bridge = (function(add, cmp, f, g, max, total, weight, words) { return function wrap·func5(a, b, c) { + var {$24r, _arg, _arg$1, _r, _r$1, _r$2, _r$3, a, b, c, k, $s, $r, $c} = $restore(this, {a, b, c}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + a = [a]; + b = [b]; + c = [c]; + _r = sort.Search((words[0].$length + 1 >> 0) - c[0] >> 0, (function(a, add, b, c, cmp, f, g, max, total, weight, words) { return function wrap·func5·func1(k) { + var {$24r, _arg, _arg$1, _r, _r$1, _r$2, k, $s, $r, $c} = $restore(this, {k}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + k = k + (c[0]) >> 0; + _r = g[0](a[0], k); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg = $clone(_r, score); + _r$1 = g[0](b[0], k); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg$1 = $clone(_r$1, score); + _r$2 = cmp[0](_arg, _arg$1); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2 > 0; + $s = 4; case 4: return $24r; + /* */ } return; } var $f = {$blk: wrap·func5·func1, $c: true, $r, $24r, _arg, _arg$1, _r, _r$1, _r$2, k, $s};return $f; + }; })(a, add, b, c, cmp, f, g, max, total, weight, words)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + k = c[0] + _r >> 0; + if (k > words[0].$length) { + $s = -1; return true; + } + _r$1 = g[0](c[0], k); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg = $clone(_r$1, score); + _r$2 = g[0](b[0], k); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg$1 = $clone(_r$2, score); + _r$3 = cmp[0](_arg, _arg$1); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = _r$3 <= 0; + $s = 5; case 5: return $24r; + /* */ } return; } var $f = {$blk: wrap·func5, $c: true, $r, $24r, _arg, _arg$1, _r, _r$1, _r$2, _r$3, a, b, c, k, $s};return $f; + }; })(add, cmp, f, g, max, total, weight, words); + d = $makeSlice(sliceType$3, 1, words[0].$length); + (0 >= d.$length ? ($throwRuntimeError("index out of range"), undefined) : d.$array[d.$offset + 0] = 0); + bestleft = $makeSlice(sliceType$3, 1, words[0].$length); + (0 >= bestleft.$length ? ($throwRuntimeError("index out of range"), undefined) : bestleft.$array[bestleft.$offset + 0] = -1); + m = 1; + /* while (true) { */ case 1: + /* if (!(m < words[0].$length)) { break; } */ if(!(m < words[0].$length)) { $s = 2; continue; } + _r = g[0]((0 >= d.$length ? ($throwRuntimeError("index out of range"), undefined) : d.$array[d.$offset + 0]), m); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + f[0] = $append(f[0], _r); + bestleft = $append(bestleft, (0 >= d.$length ? ($throwRuntimeError("index out of range"), undefined) : d.$array[d.$offset + 0])); + /* while (true) { */ case 4: + if (!(d.$length > 1)) { _v = false; $s = 6; continue s; } + _r$1 = g[0]((1 >= d.$length ? ($throwRuntimeError("index out of range"), undefined) : d.$array[d.$offset + 1]), m + 1 >> 0); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg = $clone(_r$1, score); + _r$2 = g[0]((0 >= d.$length ? ($throwRuntimeError("index out of range"), undefined) : d.$array[d.$offset + 0]), m + 1 >> 0); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg$1 = $clone(_r$2, score); + _r$3 = cmp[0](_arg, _arg$1); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v = _r$3 <= 0; case 6: + /* if (!(_v)) { break; } */ if(!(_v)) { $s = 5; continue; } + d = $subslice(d, 1); + $s = 4; continue; + case 5: + /* while (true) { */ case 10: + if (!(d.$length > 1)) { _v$1 = false; $s = 12; continue s; } + _r$4 = bridge((x$1 = d.$length - 2 >> 0, ((x$1 < 0 || x$1 >= d.$length) ? ($throwRuntimeError("index out of range"), undefined) : d.$array[d.$offset + x$1])), (x$2 = d.$length - 1 >> 0, ((x$2 < 0 || x$2 >= d.$length) ? ($throwRuntimeError("index out of range"), undefined) : d.$array[d.$offset + x$2])), m); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _v$1 = _r$4; case 12: + /* if (!(_v$1)) { break; } */ if(!(_v$1)) { $s = 11; continue; } + d = $subslice(d, 0, (d.$length - 1 >> 0)); + $s = 10; continue; + case 11: + _r$5 = g[0](m, words[0].$length); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _arg$2 = $clone(_r$5, score); + _r$6 = g[0]((x$3 = d.$length - 1 >> 0, ((x$3 < 0 || x$3 >= d.$length) ? ($throwRuntimeError("index out of range"), undefined) : d.$array[d.$offset + x$3])), words[0].$length); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _arg$3 = $clone(_r$6, score); + _r$7 = cmp[0](_arg$2, _arg$3); /* */ $s = 18; case 18: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + /* */ if (_r$7 < 0) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (_r$7 < 0) { */ case 14: + d = $append(d, m); + if (!(d.$length === 2)) { _v$2 = false; $s = 21; continue s; } + _r$8 = g[0]((1 >= d.$length ? ($throwRuntimeError("index out of range"), undefined) : d.$array[d.$offset + 1]), m + 1 >> 0); /* */ $s = 22; case 22: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _arg$4 = $clone(_r$8, score); + _r$9 = g[0]((0 >= d.$length ? ($throwRuntimeError("index out of range"), undefined) : d.$array[d.$offset + 0]), m + 1 >> 0); /* */ $s = 23; case 23: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _arg$5 = $clone(_r$9, score); + _r$10 = cmp[0](_arg$4, _arg$5); /* */ $s = 24; case 24: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _v$2 = _r$10 <= 0; case 21: + /* */ if (_v$2) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (_v$2) { */ case 19: + d = $subslice(d, 1); + /* } */ case 20: + /* } */ case 15: + m = m + (1) >> 0; + $s = 1; continue; + case 2: + bestleft = $append(bestleft, (0 >= d.$length ? ($throwRuntimeError("index out of range"), undefined) : d.$array[d.$offset + 0])); + n = 1; + m$1 = words[0].$length; + while (true) { + if (!(m$1 > 0)) { break; } + n = n + (1) >> 0; + m$1 = ((m$1 < 0 || m$1 >= bestleft.$length) ? ($throwRuntimeError("index out of range"), undefined) : bestleft.$array[bestleft.$offset + m$1]); } - i.pos = i.pos + (w) >> 0; - $s = -1; return [r, w]; - /* */ } return; } var $f = {$blk: step$2, $c: true, $r, _r, _tuple, err, i, pos, r, w, $s};return $f; - }; - $ptrType(inputReader).prototype.canCheckPrefix = function canCheckPrefix$2() { - var i; - i = this; - return false; - }; - $ptrType(inputReader).prototype.hasPrefix = function hasPrefix$2(re) { - var i, re; - i = this; - return false; - }; - $ptrType(inputReader).prototype.index = function index$2(re, pos) { - var i, pos, re; - i = this; - return -1; - }; - $ptrType(inputReader).prototype.context = function context$2(pos) { - var i, pos; - i = this; - return new lazyFlag(0, 0); - }; - $ptrType(Regexp).prototype.LiteralPrefix = function LiteralPrefix() { - var _tmp, _tmp$1, complete, prefix, re; - prefix = ""; - complete = false; - re = this; - _tmp = re.prefix; - _tmp$1 = re.prefixComplete; - prefix = _tmp; - complete = _tmp$1; - return [prefix, complete]; - }; - $ptrType(Regexp).prototype.MatchReader = function MatchReader$1(r) { - var {$24r, _r, r, re, $s, $r, $c} = $restore(this, {r}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - re = this; - _r = re.doMatch(r, sliceType$4.nil, ""); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: MatchReader$1, $c: true, $r, $24r, _r, r, re, $s};return $f; - }; - $ptrType(Regexp).prototype.MatchString = function MatchString$1(s) { - var {$24r, _r, re, s, $s, $r, $c} = $restore(this, {s}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - re = this; - _r = re.doMatch($ifaceNil, sliceType$4.nil, s); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: MatchString$1, $c: true, $r, $24r, _r, re, s, $s};return $f; + seq = $makeSlice(sliceType$3, n); + m$2 = words[0].$length; + while (true) { + if (!(m$2 > 0)) { break; } + n = n - (1) >> 0; + ((n < 0 || n >= seq.$length) ? ($throwRuntimeError("index out of range"), undefined) : seq.$array[seq.$offset + n] = m$2); + m$2 = ((m$2 < 0 || m$2 >= bestleft.$length) ? ($throwRuntimeError("index out of range"), undefined) : bestleft.$array[bestleft.$offset + m$2]); + } + seq = seq; + $s = -1; return seq; + /* */ } return; } var $f = {$blk: wrap$1, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _i, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _v, _v$1, _v$2, add, bestleft, bridge, cmp, d, f, g, i, m, m$1, m$2, max, n, s, seq, total, weight, words, x, x$1, x$2, x$3, $s};return $f; }; - $ptrType(Regexp).prototype.Match = function Match$1(b) { - var {$24r, _r, b, re, $s, $r, $c} = $restore(this, {b}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - re = this; - _r = re.doMatch($ifaceNil, b, ""); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Match$1, $c: true, $r, $24r, _r, b, re, $s};return $f; + wrapPenalty = function wrapPenalty$1(s) { + var _1, s; + _1 = s.charCodeAt((s.length - 1 >> 0)); + if ((_1 === (46)) || (_1 === (44)) || (_1 === (58)) || (_1 === (59))) { + return new $Int64(0, 0); + } + return new $Int64(0, 64); }; - $ptrType(Regexp).prototype.ReplaceAllString = function ReplaceAllString(src, repl) { - var {_r, b, n, re, repl, src, $s, $r, $c} = $restore(this, {src, repl}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - re = [re]; - repl = [repl]; - src = [src]; - re[0] = this; - n = 2; - if (strings.Contains(repl[0], "$")) { - n = $imul(2, ((re[0].numSubexp + 1 >> 0))); + $ptrType(Printer).prototype.headingLevel = function headingLevel() { + var p; + p = this; + if (p.HeadingLevel <= 0) { + return 3; } - _r = re[0].replaceAll(sliceType$4.nil, src[0], n, (function(re, repl, src) { return function Regexp·ReplaceAllString·func1(dst, match) { - var dst, match; - return re[0].expand(dst, repl[0], sliceType$4.nil, src[0], match); - }; })(re, repl, src)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - b = _r; - $s = -1; return ($bytesToString(b)); - /* */ } return; } var $f = {$blk: ReplaceAllString, $c: true, $r, _r, b, n, re, repl, src, $s};return $f; + return p.HeadingLevel; }; - $ptrType(Regexp).prototype.ReplaceAllLiteralString = function ReplaceAllLiteralString(src, repl) { - var {$24r, _r, re, repl, src, $s, $r, $c} = $restore(this, {src, repl}); + $ptrType(Printer).prototype.headingID = function headingID(h) { + var {$24r, $24r$1, _r, _r$1, h, p, $s, $r, $c} = $restore(this, {h}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - repl = [repl]; - re = this; - _r = re.replaceAll(sliceType$4.nil, src, 2, (function(repl) { return function Regexp·ReplaceAllLiteralString·func1(dst, match) { - var dst, match; - return $appendSlice(dst, repl[0]); - }; })(repl)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = ($bytesToString(_r)); - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: ReplaceAllLiteralString, $c: true, $r, $24r, _r, re, repl, src, $s};return $f; + p = this; + /* */ if (p.HeadingID === $throwNilPointerError) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.HeadingID === $throwNilPointerError) { */ case 1: + _r = h.DefaultID(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; + /* } */ case 2: + _r$1 = p.HeadingID(h); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r$1 = _r$1; + $s = 6; case 6: return $24r$1; + /* */ } return; } var $f = {$blk: headingID, $c: true, $r, $24r, $24r$1, _r, _r$1, h, p, $s};return $f; }; - $ptrType(Regexp).prototype.ReplaceAllStringFunc = function ReplaceAllStringFunc(src, repl) { - var {_r, b, re, repl, src, $s, $r, $c} = $restore(this, {src, repl}); + $ptrType(Printer).prototype.docLinkURL = function docLinkURL(link) { + var {$24r, _r, link, p, $s, $r, $c} = $restore(this, {link}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - repl = [repl]; - src = [src]; - re = this; - _r = re.replaceAll(sliceType$4.nil, src[0], 2, (function(repl, src) { return function Regexp·ReplaceAllStringFunc·func1(dst, match) { - var {$24r, _arg, _arg$1, _r, dst, match, $s, $r, $c} = $restore(this, {dst, match}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _arg = dst; - _r = repl[0]($substring(src[0], (0 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 0]), (1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _arg$1 = _r; - $24r = $appendSlice(_arg, _arg$1); - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Regexp·ReplaceAllStringFunc·func1, $c: true, $r, $24r, _arg, _arg$1, _r, dst, match, $s};return $f; - }; })(repl, src)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - b = _r; - $s = -1; return ($bytesToString(b)); - /* */ } return; } var $f = {$blk: ReplaceAllStringFunc, $c: true, $r, _r, b, re, repl, src, $s};return $f; + p = this; + /* */ if (!(p.DocLinkURL === $throwNilPointerError)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(p.DocLinkURL === $throwNilPointerError)) { */ case 1: + _r = p.DocLinkURL(link); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; + /* } */ case 2: + $s = -1; return link.DefaultURL(p.DocLinkBaseURL); + /* */ } return; } var $f = {$blk: docLinkURL, $c: true, $r, $24r, _r, link, p, $s};return $f; }; - $ptrType(Regexp).prototype.replaceAll = function replaceAll(bsrc, src, nmatch, repl) { - var {_r, _r$1, _tuple, _tuple$1, a, bsrc, buf, dstCap, endPos, lastMatchEnd, nmatch, re, repl, searchPos, src, width, $s, $r, $c} = $restore(this, {bsrc, src, nmatch, repl}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - re = this; - lastMatchEnd = 0; - searchPos = 0; - buf = sliceType$4.nil; - endPos = 0; - if (!(bsrc === sliceType$4.nil)) { - endPos = bsrc.$length; - } else { - endPos = src.length; - } - if (nmatch > re.prog.NumCap) { - nmatch = re.prog.NumCap; - } - dstCap = arrayType$3.zero(); - /* while (true) { */ case 1: - /* if (!(searchPos <= endPos)) { break; } */ if(!(searchPos <= endPos)) { $s = 2; continue; } - _r = re.doExecute($ifaceNil, bsrc, src, searchPos, nmatch, $subslice(new sliceType$7(dstCap), 0, 0)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - a = _r; - if (a.$length === 0) { - /* break; */ $s = 2; continue; - } - if (!(bsrc === sliceType$4.nil)) { - buf = $appendSlice(buf, $subslice(bsrc, lastMatchEnd, (0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]))); + $ptrType(DocLink).prototype.DefaultURL = function DefaultURL(baseURL) { + var baseURL, l, slash; + l = this; + if (!(l.ImportPath === "")) { + slash = ""; + if (strings.HasSuffix(baseURL, "/")) { + slash = "/"; } else { - buf = $appendSlice(buf, $substring(src, lastMatchEnd, (0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]))); + baseURL = baseURL + ("/"); } - /* */ if ((1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1]) > lastMatchEnd || ((0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]) === 0)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if ((1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1]) > lastMatchEnd || ((0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]) === 0)) { */ case 4: - _r$1 = repl(buf, a); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - buf = _r$1; - /* } */ case 5: - lastMatchEnd = (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1]); - width = 0; - if (!(bsrc === sliceType$4.nil)) { - _tuple = utf8.DecodeRune($subslice(bsrc, searchPos)); - width = _tuple[1]; + if (l.Name === "") { + return baseURL + l.ImportPath + slash; + } else if (!(l.Recv === "")) { + return baseURL + l.ImportPath + slash + "#" + l.Recv + "." + l.Name; } else { - _tuple$1 = utf8.DecodeRuneInString($substring(src, searchPos)); - width = _tuple$1[1]; + return baseURL + l.ImportPath + slash + "#" + l.Name; } - if ((searchPos + width >> 0) > (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1])) { - searchPos = searchPos + (width) >> 0; - } else if ((searchPos + 1 >> 0) > (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1])) { - searchPos = searchPos + (1) >> 0; + } + if (!(l.Recv === "")) { + return "#" + l.Recv + "." + l.Name; + } + return "#" + l.Name; + }; + $ptrType(Heading).prototype.DefaultID = function DefaultID() { + var {_i, _r, _ref, _rune, h, out, p, r, s, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + out = [out]; + h = this; + out[0] = new strings.Builder.ptr(ptrType$1.nil, sliceType$1.nil); + p = new textPrinter.ptr(ptrType.nil, new strings.Builder.ptr(ptrType$1.nil, sliceType$1.nil), "", "", 0); + p.oneLongLine(out[0], h.Text); + _r = strings.TrimSpace(out[0].String()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + s = _r; + if (s === "") { + $s = -1; return ""; + } + out[0].Reset(); + out[0].WriteString("hdr-"); + _ref = s; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + r = _rune[0]; + if (r < 128 && isIdentASCII(((r << 24 >>> 24)))) { + out[0].WriteByte(((r << 24 >>> 24))); } else { - searchPos = (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1]); + out[0].WriteByte(95); + } + _i += _rune[1]; + } + $s = -1; return out[0].String(); + /* */ } return; } var $f = {$blk: DefaultID, $c: true, $r, _i, _r, _ref, _rune, h, out, p, r, s, $s};return $f; + }; + $ptrType(Printer).prototype.Comment = function Comment(d) { + var {_i, _i$1, _ref, _ref$1, cp, d, def, first, i, i$1, out, p, used, x, $s, $r, $c} = $restore(this, {d}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + out = [out]; + p = this; + cp = new commentPrinter.ptr(p); + out[0] = new bytes.Buffer.ptr(sliceType$1.nil, 0, 0); + _ref = d.Content; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (i > 0 && blankBefore(x)) { + out[0].WriteString("\n"); } + $r = cp.block(out[0], x); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; $s = 1; continue; case 2: - if (!(bsrc === sliceType$4.nil)) { - buf = $appendSlice(buf, $subslice(bsrc, lastMatchEnd)); - } else { - buf = $appendSlice(buf, $substring(src, lastMatchEnd)); + i$1 = 0; + while (true) { + if (!(i$1 < 2)) { break; } + used = i$1 === 0; + first = true; + _ref$1 = d.Links; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + def = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + if (def.Used === used) { + if (first) { + out[0].WriteString("\n"); + first = false; + } + out[0].WriteString("["); + out[0].WriteString(def.Text); + out[0].WriteString("]: "); + out[0].WriteString(def.URL); + out[0].WriteString("\n"); + } + _i$1++; + } + i$1 = i$1 + (1) >> 0; } - $s = -1; return buf; - /* */ } return; } var $f = {$blk: replaceAll, $c: true, $r, _r, _r$1, _tuple, _tuple$1, a, bsrc, buf, dstCap, endPos, lastMatchEnd, nmatch, re, repl, searchPos, src, width, $s};return $f; + $s = -1; return out[0].Bytes(); + /* */ } return; } var $f = {$blk: Comment, $c: true, $r, _i, _i$1, _ref, _ref$1, cp, d, def, first, i, i$1, out, p, used, x, $s};return $f; }; - $ptrType(Regexp).prototype.ReplaceAll = function ReplaceAll(src, repl) { - var {_r, b, n, re, repl, src, srepl, $s, $r, $c} = $restore(this, {src, repl}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - re = [re]; - repl = [repl]; - src = [src]; - srepl = [srepl]; - re[0] = this; - n = 2; - if (bytes.IndexByte(repl[0], 36) >= 0) { - n = $imul(2, ((re[0].numSubexp + 1 >> 0))); + blankBefore = function blankBefore$1(x) { + var _tuple, ok, x, x$1; + _tuple = $assertType(x, ptrType$5, true); + x$1 = _tuple[0]; + ok = _tuple[1]; + if (ok) { + return x$1.BlankBefore(); } - srepl[0] = ""; - _r = re[0].replaceAll(src[0], "", n, (function(re, repl, src, srepl) { return function Regexp·ReplaceAll·func1(dst, match) { - var dst, match; - if (!((srepl[0].length === repl[0].$length))) { - srepl[0] = ($bytesToString(repl[0])); - } - return re[0].expand(dst, srepl[0], src[0], "", match); - }; })(re, repl, src, srepl)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - b = _r; - $s = -1; return b; - /* */ } return; } var $f = {$blk: ReplaceAll, $c: true, $r, _r, b, n, re, repl, src, srepl, $s};return $f; - }; - $ptrType(Regexp).prototype.ReplaceAllLiteral = function ReplaceAllLiteral(src, repl) { - var {$24r, _r, re, repl, src, $s, $r, $c} = $restore(this, {src, repl}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - repl = [repl]; - re = this; - _r = re.replaceAll(src, "", 2, (function(repl) { return function Regexp·ReplaceAllLiteral·func1(dst, match) { - var dst, match; - return $appendSlice(dst, repl[0]); - }; })(repl)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: ReplaceAllLiteral, $c: true, $r, $24r, _r, re, repl, src, $s};return $f; + return true; }; - $ptrType(Regexp).prototype.ReplaceAllFunc = function ReplaceAllFunc(src, repl) { - var {$24r, _r, re, repl, src, $s, $r, $c} = $restore(this, {src, repl}); + $ptrType(commentPrinter).prototype.block = function block$1(out, x) { + var {_i, _i$1, _r, _ref, _ref$1, _ref$2, _tuple, blk, i, i$1, item, line, loose, md, out, p, x, x$1, x$2, x$3, x$4, x$5, $s, $r, $c} = $restore(this, {out, x}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - repl = [repl]; - src = [src]; - re = this; - _r = re.replaceAll(src[0], "", 2, (function(repl, src) { return function Regexp·ReplaceAllFunc·func1(dst, match) { - var {$24r, _arg, _arg$1, _r, dst, match, $s, $r, $c} = $restore(this, {dst, match}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _arg = dst; - _r = repl[0]($subslice(src[0], (0 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 0]), (1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _arg$1 = _r; - $24r = $appendSlice(_arg, _arg$1); - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Regexp·ReplaceAllFunc·func1, $c: true, $r, $24r, _arg, _arg$1, _r, dst, match, $s};return $f; - }; })(repl, src)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: ReplaceAllFunc, $c: true, $r, $24r, _r, re, repl, src, $s};return $f; + p = this; + _ref = x; + /* */ if ($assertType(_ref, ptrType$2, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$3, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$5, true)[1]) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ($assertType(_ref, ptrType$2, true)[1]) { */ case 1: + x$2 = _ref.$val; + p.text(out, "", x$2.Text); + out.WriteString("\n"); + $s = 6; continue; + /* } else if ($assertType(_ref, ptrType$3, true)[1]) { */ case 2: + x$3 = _ref.$val; + out.WriteString("# "); + p.text(out, "", x$3.Text); + out.WriteString("\n"); + $s = 6; continue; + /* } else if ($assertType(_ref, ptrType$4, true)[1]) { */ case 3: + x$4 = _ref.$val; + md = x$4.Text; + while (true) { + if (!(!(md === ""))) { break; } + line = ""; + _tuple = strings.Cut(md, "\n"); + line = _tuple[0]; + md = _tuple[1]; + if (!(line === "")) { + out.WriteString("\t"); + out.WriteString(line); + } + out.WriteString("\n"); + } + $s = 6; continue; + /* } else if ($assertType(_ref, ptrType$5, true)[1]) { */ case 4: + x$5 = _ref.$val; + loose = x$5.BlankBetween(); + _ref$1 = x$5.Items; + _i = 0; + while (true) { + if (!(_i < _ref$1.$length)) { break; } + i = _i; + item = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + if (i > 0 && loose) { + out.WriteString("\n"); + } + out.WriteString(" "); + if (item.Number === "") { + out.WriteString(" - "); + } else { + out.WriteString(item.Number); + out.WriteString(". "); + } + _ref$2 = item.Content; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$2.$length)) { break; } + i$1 = _i$1; + blk = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); + if (i$1 > 0) { + out.WriteString("\n "); + } + p.text(out, " ", $assertType(blk, ptrType$2).Text); + out.WriteString("\n"); + _i$1++; + } + _i++; + } + $s = 6; continue; + /* } else { */ case 5: + x$1 = _ref; + _r = fmt.Fprintf(out, "?%T", new sliceType$2([x$1])); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + /* } */ case 6: + $s = -1; return; + /* */ } return; } var $f = {$blk: block$1, $c: true, $r, _i, _i$1, _r, _ref, _ref$1, _ref$2, _tuple, blk, i, i$1, item, line, loose, md, out, p, x, x$1, x$2, x$3, x$4, x$5, $s};return $f; }; - init = function init$1() { - var _i, _index, _q, _r, _ref, b, y; - _ref = (new sliceType$4($stringToBytes("\\.+*?()|[]{}^$"))); + $ptrType(commentPrinter).prototype.text = function text$1(out, indent, x) { + var _i, _ref, _ref$1, indent, out, p, t, t$1, t$2, t$3, t$4, x; + p = this; + _ref = x; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } - b = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _index = (_r = b % 16, _r === _r ? _r : $throwRuntimeError("integer divide by zero")); - ((_index < 0 || _index >= specialBytes.length) ? ($throwRuntimeError("index out of range"), undefined) : specialBytes[_index] = ((((_index < 0 || _index >= specialBytes.length) ? ($throwRuntimeError("index out of range"), undefined) : specialBytes[_index]) | (((y = ((_q = b / 16, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero"))), y < 32 ? (1 << y) : 0) << 24 >>> 24))) >>> 0)); + t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _ref$1 = t; + if ($assertType(_ref$1, Plain, true)[1]) { + t$1 = _ref$1.$val; + p.indent(out, indent, (t$1)); + } else if ($assertType(_ref$1, Italic, true)[1]) { + t$2 = _ref$1.$val; + p.indent(out, indent, (t$2)); + } else if ($assertType(_ref$1, ptrType$6, true)[1]) { + t$3 = _ref$1.$val; + if (t$3.Auto) { + p.text(out, indent, t$3.Text); + } else { + out.WriteString("["); + p.text(out, indent, t$3.Text); + out.WriteString("]"); + } + } else if ($assertType(_ref$1, ptrType$7, true)[1]) { + t$4 = _ref$1.$val; + out.WriteString("["); + p.text(out, indent, t$4.Text); + out.WriteString("]"); + } _i++; } }; - $ptrType(Regexp).prototype.pad = function pad(a) { - var a, n, re; - re = this; - if (a === sliceType$7.nil) { - return sliceType$7.nil; + $ptrType(commentPrinter).prototype.indent = function indent(out, indent$1, s) { + var _tuple, indent$1, line, ok, out, p, rest, s; + p = this; + while (true) { + if (!(!(s === ""))) { break; } + _tuple = strings.Cut(s, "\n"); + line = _tuple[0]; + rest = _tuple[1]; + ok = _tuple[2]; + out.WriteString(line); + if (ok) { + out.WriteString("\n"); + out.WriteString(indent$1); + } + s = rest; } - n = $imul(((1 + re.numSubexp >> 0)), 2); + }; + $ptrType(List).prototype.BlankBefore = function BlankBefore() { + var l; + l = this; + return l.ForceBlankBefore || l.BlankBetween(); + }; + $ptrType(List).prototype.BlankBetween = function BlankBetween() { + var _i, _ref, item, l; + l = this; + if (l.ForceBlankBetween) { + return true; + } + _ref = l.Items; + _i = 0; while (true) { - if (!(a.$length < n)) { break; } - a = $append(a, -1); + if (!(_i < _ref.$length)) { break; } + item = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!((item.Content.$length === 1))) { + return true; + } + _i++; } - return a; + return false; }; - $ptrType(Regexp).prototype.allMatches = function allMatches(s, b, n, deliver) { - var {_r, _tmp, _tmp$1, _tmp$2, _tuple, _tuple$1, accept, b, deliver, end, i, ib, is, matches, n, pos, prevMatchEnd, re, s, width, $s, $r, $c} = $restore(this, {s, b, n, deliver}); + $ptrType(parseDoc).prototype.lookupPkg = function lookupPkg(pkg) { + var {$24r, _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, d, importPath, ok, ok$1, path, pkg, $s, $r, $c} = $restore(this, {pkg}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - re = this; - end = 0; - if (b === sliceType$4.nil) { - end = s.length; - } else { - end = b.$length; + importPath = ""; + ok = false; + d = this; + if (strings.Contains(pkg, "/")) { + if (validImportPath(pkg)) { + _tmp = pkg; + _tmp$1 = true; + importPath = _tmp; + ok = _tmp$1; + $s = -1; return [importPath, ok]; + } + _tmp$2 = ""; + _tmp$3 = false; + importPath = _tmp$2; + ok = _tmp$3; + $s = -1; return [importPath, ok]; } - _tmp = 0; - _tmp$1 = 0; - _tmp$2 = -1; - pos = _tmp; - i = _tmp$1; - prevMatchEnd = _tmp$2; + /* */ if (!(d.Parser.LookupPackage === $throwNilPointerError)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(d.Parser.LookupPackage === $throwNilPointerError)) { */ case 1: + _r = d.Parser.LookupPackage(pkg); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + path = _tuple[0]; + ok$1 = _tuple[1]; + if (ok$1) { + _tmp$4 = path; + _tmp$5 = true; + importPath = _tmp$4; + ok = _tmp$5; + $s = -1; return [importPath, ok]; + } + /* } */ case 2: + _r$1 = DefaultLookupPackage(pkg); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + importPath = _tuple$1[0]; + ok = _tuple$1[1]; + $24r = [importPath, ok]; + $s = 5; case 5: return $24r; + /* */ } return; } var $f = {$blk: lookupPkg, $c: true, $r, $24r, _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, d, importPath, ok, ok$1, path, pkg, $s};return $f; + }; + isStdPkg = function isStdPkg$1(path) { + var {_r, i, path, $s, $r, $c} = $restore(this, {path}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + path = [path]; + _r = sort.Search(stdPkgs.$length, (function(path) { return function isStdPkg·func1(i) { + var i; + return ((i < 0 || i >= stdPkgs.$length) ? ($throwRuntimeError("index out of range"), undefined) : stdPkgs.$array[stdPkgs.$offset + i]) >= path[0]; + }; })(path)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + i = _r; + $s = -1; return i < stdPkgs.$length && ((i < 0 || i >= stdPkgs.$length) ? ($throwRuntimeError("index out of range"), undefined) : stdPkgs.$array[stdPkgs.$offset + i]) === path[0]; + /* */ } return; } var $f = {$blk: isStdPkg$1, $c: true, $r, _r, i, path, $s};return $f; + }; + DefaultLookupPackage = function DefaultLookupPackage$1(name) { + var {_r, _tmp, _tmp$1, _tmp$2, _tmp$3, importPath, name, ok, $s, $r, $c} = $restore(this, {name}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + importPath = ""; + ok = false; + _r = isStdPkg(name); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r) { */ case 1: + _tmp = name; + _tmp$1 = true; + importPath = _tmp; + ok = _tmp$1; + $s = -1; return [importPath, ok]; + /* } */ case 2: + _tmp$2 = ""; + _tmp$3 = false; + importPath = _tmp$2; + ok = _tmp$3; + $s = -1; return [importPath, ok]; + /* */ } return; } var $f = {$blk: DefaultLookupPackage$1, $c: true, $r, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, importPath, name, ok, $s};return $f; + }; + $pkg.DefaultLookupPackage = DefaultLookupPackage; + $ptrType(Parser).prototype.Parse = function Parse(text$6) { + var {_1, _i, _i$1, _i$2, _i$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _ref$1, _ref$2, _ref$3, _ref$4, b, b$1, b$2, b$3, c, d, i, lines, p, p$1, prev, s, text$6, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {text$6}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _r = unindent(strings.Split(text$6, "\n")); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + lines = _r; + d = new parseDoc.ptr(p, new Doc.ptr(sliceType$5.nil, sliceType$6.nil), new $global.Map(), lines, (function Parser·Parse·func1(recv, name) { + var name, recv; + return false; + })); + if (!(p.LookupSym === $throwNilPointerError)) { + d.lookupSym = p.LookupSym; + } + prev = new span.ptr(0, 0, 0); + _r$1 = parseSpans(lines); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _ref = _r$1; + _i = 0; + /* while (true) { */ case 3: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } + s = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), span); + b = $ifaceNil; + _1 = s.kind; + /* */ if (_1 === (3)) { $s = 6; continue; } + /* */ if (_1 === (1)) { $s = 7; continue; } + /* */ if (_1 === (4)) { $s = 8; continue; } + /* */ if (_1 === (2)) { $s = 9; continue; } + /* */ if (_1 === (5)) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (_1 === (3)) { */ case 6: + _r$2 = d.list($subslice(lines, s.start, s.end), prev.end < s.start); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + b = _r$2; + $s = 12; continue; + /* } else if (_1 === (1)) { */ case 7: + _r$3 = d.code($subslice(lines, s.start, s.end)); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + b = _r$3; + $s = 12; continue; + /* } else if (_1 === (4)) { */ case 8: + _r$4 = d.oldHeading((x = s.start, ((x < 0 || x >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + x]))); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + b = _r$4; + $s = 12; continue; + /* } else if (_1 === (2)) { */ case 9: + _r$5 = d.heading((x$1 = s.start, ((x$1 < 0 || x$1 >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + x$1]))); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + b = _r$5; + $s = 12; continue; + /* } else if (_1 === (5)) { */ case 10: + _r$6 = d.paragraph($subslice(lines, s.start, s.end)); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + b = _r$6; + $s = 12; continue; + /* } else { */ case 11: + $panic(new $String("go/doc/comment: internal error: unknown span kind")); + /* } */ case 12: + case 5: + if (!($interfaceIsEqual(b, $ifaceNil))) { + d.Doc.Content = $append(d.Doc.Content, b); + } + span.copy(prev, s); + _i++; + $s = 3; continue; + case 4: + _ref$1 = d.Doc.Content; + _i$1 = 0; + /* while (true) { */ case 18: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 19; continue; } + b$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + _ref$2 = b$1; + /* */ if ($assertType(_ref$2, ptrType$2, true)[1]) { $s = 20; continue; } + /* */ if ($assertType(_ref$2, ptrType$5, true)[1]) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if ($assertType(_ref$2, ptrType$2, true)[1]) { */ case 20: + b$2 = _ref$2.$val; + _r$7 = d.parseLinkedText(($assertType((x$2 = b$2.Text, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])), Plain))); /* */ $s = 23; case 23: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + b$2.Text = _r$7; + $s = 22; continue; + /* } else if ($assertType(_ref$2, ptrType$5, true)[1]) { */ case 21: + b$3 = _ref$2.$val; + _ref$3 = b$3.Items; + _i$2 = 0; + /* while (true) { */ case 24: + /* if (!(_i$2 < _ref$3.$length)) { break; } */ if(!(_i$2 < _ref$3.$length)) { $s = 25; continue; } + i = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]); + _ref$4 = i.Content; + _i$3 = 0; + /* while (true) { */ case 26: + /* if (!(_i$3 < _ref$4.$length)) { break; } */ if(!(_i$3 < _ref$4.$length)) { $s = 27; continue; } + c = ((_i$3 < 0 || _i$3 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$3]); + p$1 = $assertType(c, ptrType$2); + _r$8 = d.parseLinkedText(($assertType((x$3 = p$1.Text, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])), Plain))); /* */ $s = 28; case 28: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + p$1.Text = _r$8; + _i$3++; + $s = 26; continue; + case 27: + _i$2++; + $s = 24; continue; + case 25: + /* } */ case 22: + _i$1++; + $s = 18; continue; + case 19: + $s = -1; return d.Doc; + /* */ } return; } var $f = {$blk: Parse, $c: true, $r, _1, _i, _i$1, _i$2, _i$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _ref$1, _ref$2, _ref$3, _ref$4, b, b$1, b$2, b$3, c, d, i, lines, p, p$1, prev, s, text$6, x, x$1, x$2, x$3, $s};return $f; + }; + parseSpans = function parseSpans$1(lines) { + var {_r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _v, _v$1, _v$2, _v$3, _v$4, _v$5, _v$6, end, forceIndent, i, kind, lines, spans, start, unindentedListOK, watchdog, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {lines}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + spans = sliceType$7.nil; + watchdog = $imul(2, lines.$length); + i = 0; + forceIndent = 0; /* while (true) { */ case 1: - /* if (!(i < n && pos <= end)) { break; } */ if(!(i < n && pos <= end)) { $s = 2; continue; } - _r = re.doExecute($ifaceNil, b, s, pos, re.prog.NumCap, sliceType$7.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - matches = _r; - if (matches.$length === 0) { + while (true) { + if (!(i < lines.$length && ((i < 0 || i >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + i]) === "")) { break; } + i = i + (1) >> 0; + } + if (i >= lines.$length) { /* break; */ $s = 2; continue; } - accept = true; - if ((1 >= matches.$length ? ($throwRuntimeError("index out of range"), undefined) : matches.$array[matches.$offset + 1]) === pos) { - if ((0 >= matches.$length ? ($throwRuntimeError("index out of range"), undefined) : matches.$array[matches.$offset + 0]) === prevMatchEnd) { - accept = false; - } - width = 0; - if (b === sliceType$4.nil) { - is = new inputString.ptr(s); - _tuple = is.step(pos); - width = _tuple[1]; - } else { - ib = new inputBytes.ptr(b); - _tuple$1 = ib.step(pos); - width = _tuple$1[1]; + watchdog = watchdog - (1) >> 0; + if (watchdog < 0) { + $panic(new $String("go/doc/comment: internal error: not making progress")); + } + kind = 0; + start = i; + end = i; + /* */ if (i < forceIndent || indented(((i < 0 || i >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + i]))) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (i < forceIndent || indented(((i < 0 || i >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + i]))) { */ case 3: + _r = isList(((i < 0 || i >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + i])); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + unindentedListOK = _r && i < forceIndent; + i = i + (1) >> 0; + /* while (true) { */ case 7: + if (!(i < lines.$length)) { _v = false; $s = 9; continue s; } + if (((i < 0 || i >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + i]) === "" || i < forceIndent || indented(((i < 0 || i >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + i]))) { _v$1 = true; $s = 10; continue s; } + if (!(unindentedListOK)) { _v$2 = false; $s = 11; continue s; } + _r$1 = isList(((i < 0 || i >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + i])); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v$2 = _r$1; case 11: + _v$1 = _v$2; case 10: + _v = _v$1; case 9: + /* if (!(_v)) { break; } */ if(!(_v)) { $s = 8; continue; } + if (((i < 0 || i >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + i]) === "") { + unindentedListOK = false; + } + i = i + (1) >> 0; + $s = 7; continue; + case 8: + end = i; + while (true) { + if (!(end > start && (x = end - 1 >> 0, ((x < 0 || x >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + x])) === "")) { break; } + end = end - (1) >> 0; } - if (width > 0) { - pos = pos + (width) >> 0; - } else { - pos = end + 1 >> 0; + if (end < lines.$length && strings.HasPrefix(((end < 0 || end >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + end]), "}")) { + end = end + (1) >> 0; } - } else { - pos = (1 >= matches.$length ? ($throwRuntimeError("index out of range"), undefined) : matches.$array[matches.$offset + 1]); - } - prevMatchEnd = (1 >= matches.$length ? ($throwRuntimeError("index out of range"), undefined) : matches.$array[matches.$offset + 1]); - /* */ if (accept) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (accept) { */ case 4: - $r = deliver(re.pad(matches)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = isList(((start < 0 || start >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + start])); /* */ $s = 16; case 16: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (_r$2) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (_r$2) { */ case 13: + kind = 3; + $s = 15; continue; + /* } else { */ case 14: + kind = 1; + /* } */ case 15: + $s = 5; continue; + /* } else { */ case 4: i = i + (1) >> 0; + while (true) { + if (!(i < lines.$length && !(((i < 0 || i >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + i]) === "") && !indented(((i < 0 || i >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + i])))) { break; } + i = i + (1) >> 0; + } + end = i; + if (!(i < lines.$length && !(((i < 0 || i >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + i]) === ""))) { _v$3 = false; $s = 19; continue s; } + _r$3 = isList(((i < 0 || i >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + i])); /* */ $s = 20; case 20: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v$3 = !_r$3; case 19: + /* */ if (_v$3) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (_v$3) { */ case 17: + _r$4 = isList((x$1 = i - 1 >> 0, ((x$1 < 0 || x$1 >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + x$1]))); /* */ $s = 25; case 25: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (_r$4) { $s = 22; continue; } + /* */ if (strings.HasSuffix((x$2 = i - 1 >> 0, ((x$2 < 0 || x$2 >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + x$2])), "{") || strings.HasSuffix((x$3 = i - 1 >> 0, ((x$3 < 0 || x$3 >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + x$3])), "\\")) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (_r$4) { */ case 22: + forceIndent = end; + end = end - (1) >> 0; + /* while (true) { */ case 26: + if (!(end > start)) { _v$4 = false; $s = 28; continue s; } + _r$5 = isList((x$4 = end - 1 >> 0, ((x$4 < 0 || x$4 >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + x$4]))); /* */ $s = 29; case 29: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _v$4 = _r$5; case 28: + /* if (!(_v$4)) { break; } */ if(!(_v$4)) { $s = 27; continue; } + end = end - (1) >> 0; + $s = 26; continue; + case 27: + $s = 24; continue; + /* } else if (strings.HasSuffix((x$2 = i - 1 >> 0, ((x$2 < 0 || x$2 >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + x$2])), "{") || strings.HasSuffix((x$3 = i - 1 >> 0, ((x$3 < 0 || x$3 >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + x$3])), "\\")) { */ case 23: + forceIndent = end; + end = end - (1) >> 0; + /* } */ case 24: + case 21: + if ((start === end) && forceIndent > start) { + i = start; + /* continue Spans; */ $s = 1; continue s; + } + /* } */ case 18: + if (!((end - start >> 0) === 1)) { _v$5 = false; $s = 34; continue s; } + _r$6 = isHeading(((start < 0 || start >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + start])); /* */ $s = 35; case 35: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _v$5 = _r$6; case 34: + /* */ if (_v$5) { $s = 30; continue; } + if (!((end - start >> 0) === 1)) { _v$6 = false; $s = 36; continue s; } + _r$7 = isOldHeading(((start < 0 || start >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + start]), lines, start); /* */ $s = 37; case 37: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _v$6 = _r$7; case 36: + /* */ if (_v$6) { $s = 31; continue; } + /* */ $s = 32; continue; + /* if (_v$5) { */ case 30: + kind = 2; + $s = 33; continue; + /* } else if (_v$6) { */ case 31: + kind = 4; + $s = 33; continue; + /* } else { */ case 32: + kind = 5; + /* } */ case 33: /* } */ case 5: + spans = $append(spans, new span.ptr(start, end, kind)); + i = end; $s = 1; continue; case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: allMatches, $c: true, $r, _r, _tmp, _tmp$1, _tmp$2, _tuple, _tuple$1, accept, b, deliver, end, i, ib, is, matches, n, pos, prevMatchEnd, re, s, width, $s};return $f; - }; - $ptrType(Regexp).prototype.Find = function Find(b) { - var {_r, a, b, dstCap, re, $s, $r, $c} = $restore(this, {b}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - re = this; - dstCap = arrayType$3.zero(); - _r = re.doExecute($ifaceNil, b, "", 0, 2, $subslice(new sliceType$7(dstCap), 0, 0)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - a = _r; - if (a === sliceType$7.nil) { - $s = -1; return sliceType$4.nil; - } - $s = -1; return $subslice(b, (0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]), (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1]), (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1])); - /* */ } return; } var $f = {$blk: Find, $c: true, $r, _r, a, b, dstCap, re, $s};return $f; - }; - $ptrType(Regexp).prototype.FindIndex = function FindIndex(b) { - var {_r, a, b, loc, re, $s, $r, $c} = $restore(this, {b}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - loc = sliceType$7.nil; - re = this; - _r = re.doExecute($ifaceNil, b, "", 0, 2, sliceType$7.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - a = _r; - if (a === sliceType$7.nil) { - loc = sliceType$7.nil; - $s = -1; return loc; - } - loc = $subslice(a, 0, 2); - $s = -1; return loc; - /* */ } return; } var $f = {$blk: FindIndex, $c: true, $r, _r, a, b, loc, re, $s};return $f; + $s = -1; return spans; + /* */ } return; } var $f = {$blk: parseSpans$1, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _v, _v$1, _v$2, _v$3, _v$4, _v$5, _v$6, end, forceIndent, i, kind, lines, spans, start, unindentedListOK, watchdog, x, x$1, x$2, x$3, x$4, $s};return $f; }; - $ptrType(Regexp).prototype.FindString = function FindString(s) { - var {_r, a, dstCap, re, s, $s, $r, $c} = $restore(this, {s}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - re = this; - dstCap = arrayType$3.zero(); - _r = re.doExecute($ifaceNil, sliceType$4.nil, s, 0, 2, $subslice(new sliceType$7(dstCap), 0, 0)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - a = _r; - if (a === sliceType$7.nil) { - $s = -1; return ""; - } - $s = -1; return $substring(s, (0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]), (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1])); - /* */ } return; } var $f = {$blk: FindString, $c: true, $r, _r, a, dstCap, re, s, $s};return $f; + indented = function indented$1(line) { + var line; + return !(line === "") && ((line.charCodeAt(0) === 32) || (line.charCodeAt(0) === 9)); }; - $ptrType(Regexp).prototype.FindStringIndex = function FindStringIndex(s) { - var {_r, a, loc, re, s, $s, $r, $c} = $restore(this, {s}); + unindent = function unindent$1(lines) { + var {_i, _i$1, _r, _ref, _ref$1, i, line, line$1, lines, out, prefix, x, x$1, $s, $r, $c} = $restore(this, {lines}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - loc = sliceType$7.nil; - re = this; - _r = re.doExecute($ifaceNil, sliceType$4.nil, s, 0, 2, sliceType$7.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - a = _r; - if (a === sliceType$7.nil) { - loc = sliceType$7.nil; - $s = -1; return loc; + while (true) { + if (!(lines.$length > 0 && isBlank((0 >= lines.$length ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + 0])))) { break; } + lines = $subslice(lines, 1); } - loc = $subslice(a, 0, 2); - $s = -1; return loc; - /* */ } return; } var $f = {$blk: FindStringIndex, $c: true, $r, _r, a, loc, re, s, $s};return $f; - }; - $ptrType(Regexp).prototype.FindReaderIndex = function FindReaderIndex(r) { - var {_r, a, loc, r, re, $s, $r, $c} = $restore(this, {r}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - loc = sliceType$7.nil; - re = this; - _r = re.doExecute(r, sliceType$4.nil, "", 0, 2, sliceType$7.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - a = _r; - if (a === sliceType$7.nil) { - loc = sliceType$7.nil; - $s = -1; return loc; + while (true) { + if (!(lines.$length > 0 && isBlank((x = lines.$length - 1 >> 0, ((x < 0 || x >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + x]))))) { break; } + lines = $subslice(lines, 0, (lines.$length - 1 >> 0)); } - loc = $subslice(a, 0, 2); - $s = -1; return loc; - /* */ } return; } var $f = {$blk: FindReaderIndex, $c: true, $r, _r, a, loc, r, re, $s};return $f; - }; - $ptrType(Regexp).prototype.FindSubmatch = function FindSubmatch(b) { - var {_i, _r, _ref, a, b, dstCap, i, re, ret, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {b}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - re = this; - dstCap = arrayType$4.zero(); - _r = re.doExecute($ifaceNil, b, "", 0, re.prog.NumCap, $subslice(new sliceType$7(dstCap), 0, 0)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - a = _r; - if (a === sliceType$7.nil) { - $s = -1; return sliceType$8.nil; + if (lines.$length === 0) { + $s = -1; return sliceType.nil; } - ret = $makeSlice(sliceType$8, (1 + re.numSubexp >> 0)); - _ref = ret; + prefix = leadingSpace((0 >= lines.$length ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + 0])); + _ref = $subslice(lines, 1); _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } - i = _i; - if (($imul(2, i)) < a.$length && (x = $imul(2, i), ((x < 0 || x >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x])) >= 0) { - ((i < 0 || i >= ret.$length) ? ($throwRuntimeError("index out of range"), undefined) : ret.$array[ret.$offset + i] = $subslice(b, (x$1 = $imul(2, i), ((x$1 < 0 || x$1 >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x$1])), (x$2 = ($imul(2, i)) + 1 >> 0, ((x$2 < 0 || x$2 >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x$2])), (x$3 = ($imul(2, i)) + 1 >> 0, ((x$3 < 0 || x$3 >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x$3])))); + line = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!isBlank(line)) { + prefix = commonPrefix(prefix, leadingSpace(line)); } _i++; } - $s = -1; return ret; - /* */ } return; } var $f = {$blk: FindSubmatch, $c: true, $r, _i, _r, _ref, a, b, dstCap, i, re, ret, x, x$1, x$2, x$3, $s};return $f; + out = $makeSlice(sliceType, lines.$length); + _ref$1 = lines; + _i$1 = 0; + /* while (true) { */ case 1: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 2; continue; } + i = _i$1; + line$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + line$1 = strings.TrimPrefix(line$1, prefix); + _r = strings.TrimSpace(line$1); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r === "") { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_r === "") { */ case 3: + line$1 = ""; + /* } */ case 4: + ((i < 0 || i >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + i] = line$1); + _i$1++; + $s = 1; continue; + case 2: + while (true) { + if (!(out.$length > 0 && (0 >= out.$length ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + 0]) === "")) { break; } + out = $subslice(out, 1); + } + while (true) { + if (!(out.$length > 0 && (x$1 = out.$length - 1 >> 0, ((x$1 < 0 || x$1 >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + x$1])) === "")) { break; } + out = $subslice(out, 0, (out.$length - 1 >> 0)); + } + $s = -1; return out; + /* */ } return; } var $f = {$blk: unindent$1, $c: true, $r, _i, _i$1, _r, _ref, _ref$1, i, line, line$1, lines, out, prefix, x, x$1, $s};return $f; }; - $ptrType(Regexp).prototype.Expand = function Expand(dst, template, src, match) { - var dst, match, re, src, template; - re = this; - return re.expand(dst, ($bytesToString(template)), src, "", match); + isBlank = function isBlank$1(s) { + var s; + return (s.length === 0) || ((s.length === 1) && (s.charCodeAt(0) === 10)); }; - $ptrType(Regexp).prototype.ExpandString = function ExpandString(dst, template, src, match) { - var dst, match, re, src, template; - re = this; - return re.expand(dst, template, sliceType$4.nil, src, match); + commonPrefix = function commonPrefix$1(a, b) { + var a, b, i; + i = 0; + while (true) { + if (!(i < a.length && i < b.length && (a.charCodeAt(i) === b.charCodeAt(i)))) { break; } + i = i + (1) >> 0; + } + return $substring(a, 0, i); }; - $ptrType(Regexp).prototype.expand = function expand(dst, template, bsrc, src, match) { - var _i, _ref, _tuple, _tuple$1, after, before, bsrc, dst, i, match, name, namei, num, ok, re, rest, src, template, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; - re = this; + leadingSpace = function leadingSpace$1(s) { + var i, s; + i = 0; while (true) { - if (!(template.length > 0)) { break; } - _tuple = strings.Cut(template, "$"); - before = _tuple[0]; - after = _tuple[1]; - ok = _tuple[2]; - if (!ok) { - break; - } - dst = $appendSlice(dst, before); - template = after; - if (!(template === "") && (template.charCodeAt(0) === 36)) { - dst = $append(dst, 36); - template = $substring(template, 1); - continue; - } - _tuple$1 = extract(template); - name = _tuple$1[0]; - num = _tuple$1[1]; - rest = _tuple$1[2]; - ok = _tuple$1[3]; - if (!ok) { - dst = $append(dst, 36); - continue; - } - template = rest; - if (num >= 0) { - if ((($imul(2, num)) + 1 >> 0) < match.$length && (x = $imul(2, num), ((x < 0 || x >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x])) >= 0) { - if (!(bsrc === sliceType$4.nil)) { - dst = $appendSlice(dst, $subslice(bsrc, (x$1 = $imul(2, num), ((x$1 < 0 || x$1 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$1])), (x$2 = ($imul(2, num)) + 1 >> 0, ((x$2 < 0 || x$2 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$2])))); - } else { - dst = $appendSlice(dst, $substring(src, (x$3 = $imul(2, num), ((x$3 < 0 || x$3 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$3])), (x$4 = ($imul(2, num)) + 1 >> 0, ((x$4 < 0 || x$4 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$4])))); - } - } - } else { - _ref = re.subexpNames; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - namei = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (name === namei && (($imul(2, i)) + 1 >> 0) < match.$length && (x$5 = $imul(2, i), ((x$5 < 0 || x$5 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$5])) >= 0) { - if (!(bsrc === sliceType$4.nil)) { - dst = $appendSlice(dst, $subslice(bsrc, (x$6 = $imul(2, i), ((x$6 < 0 || x$6 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$6])), (x$7 = ($imul(2, i)) + 1 >> 0, ((x$7 < 0 || x$7 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$7])))); - } else { - dst = $appendSlice(dst, $substring(src, (x$8 = $imul(2, i), ((x$8 < 0 || x$8 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$8])), (x$9 = ($imul(2, i)) + 1 >> 0, ((x$9 < 0 || x$9 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$9])))); - } - break; - } - _i++; - } - } + if (!(i < s.length && ((s.charCodeAt(i) === 32) || (s.charCodeAt(i) === 9)))) { break; } + i = i + (1) >> 0; } - dst = $appendSlice(dst, template); - return dst; + return $substring(s, 0, i); }; - extract = function extract$1(str) { - var _tuple, brace, i, i$1, name, num, ok, rest, rune, size, str; - name = ""; - num = 0; - rest = ""; - ok = false; - if (str === "") { - return [name, num, rest, ok]; + isOldHeading = function isOldHeading$1(line, all, off) { + var {_r, _tuple, _tuple$1, _tuple$2, _tuple$3, all, b, b$1, line, off, ok, ok$1, r, x, x$1, x$2, $s, $r, $c} = $restore(this, {line, all, off}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (off <= 0 || !((x = off - 1 >> 0, ((x < 0 || x >= all.$length) ? ($throwRuntimeError("index out of range"), undefined) : all.$array[all.$offset + x])) === "") || (off + 2 >> 0) >= all.$length || !((x$1 = off + 1 >> 0, ((x$1 < 0 || x$1 >= all.$length) ? ($throwRuntimeError("index out of range"), undefined) : all.$array[all.$offset + x$1])) === "") || !(leadingSpace((x$2 = off + 2 >> 0, ((x$2 < 0 || x$2 >= all.$length) ? ($throwRuntimeError("index out of range"), undefined) : all.$array[all.$offset + x$2]))) === "")) { + $s = -1; return false; } - brace = false; - if (str.charCodeAt(0) === 123) { - brace = true; - str = $substring(str, 1); + _r = strings.TrimSpace(line); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + line = _r; + _tuple = utf8.DecodeRuneInString(line); + r = _tuple[0]; + if (!unicode.IsLetter(r) || !unicode.IsUpper(r)) { + $s = -1; return false; } - i = 0; + _tuple$1 = utf8.DecodeLastRuneInString(line); + r = _tuple$1[0]; + if (!unicode.IsLetter(r) && !unicode.IsDigit(r)) { + $s = -1; return false; + } + if (strings.ContainsAny(line, ";:!?+*/=[]{}_^\xC2\xB0&\xC2\xA7~%#@<\">\\")) { + $s = -1; return false; + } + b = line; while (true) { - if (!(i < str.length)) { break; } - _tuple = utf8.DecodeRuneInString($substring(str, i)); - rune = _tuple[0]; - size = _tuple[1]; - if (!unicode.IsLetter(rune) && !unicode.IsDigit(rune) && !((rune === 95))) { + ok = false; + _tuple$2 = strings.Cut(b, "'"); + b = _tuple$2[1]; + ok = _tuple$2[2]; + if (!ok) { break; } - i = i + (size) >> 0; - } - if (i === 0) { - return [name, num, rest, ok]; - } - name = $substring(str, 0, i); - if (brace) { - if (i >= str.length || !((str.charCodeAt(i) === 125))) { - return [name, num, rest, ok]; + if (!(b === "s") && !strings.HasPrefix(b, "s ")) { + $s = -1; return false; } - i = i + (1) >> 0; } - num = 0; - i$1 = 0; + b$1 = line; while (true) { - if (!(i$1 < name.length)) { break; } - if (name.charCodeAt(i$1) < 48 || 57 < name.charCodeAt(i$1) || num >= 100000000) { - num = -1; + ok$1 = false; + _tuple$3 = strings.Cut(b$1, "."); + b$1 = _tuple$3[1]; + ok$1 = _tuple$3[2]; + if (!ok$1) { break; } - num = (($imul(num, 10)) + ((name.charCodeAt(i$1) >> 0)) >> 0) - 48 >> 0; - i$1 = i$1 + (1) >> 0; - } - if ((name.charCodeAt(0) === 48) && name.length > 1) { - num = -1; + if (b$1 === "" || strings.HasPrefix(b$1, " ")) { + $s = -1; return false; + } } - rest = $substring(str, i); - ok = true; - return [name, num, rest, ok]; + $s = -1; return true; + /* */ } return; } var $f = {$blk: isOldHeading$1, $c: true, $r, _r, _tuple, _tuple$1, _tuple$2, _tuple$3, all, b, b$1, line, off, ok, ok$1, r, x, x$1, x$2, $s};return $f; }; - $ptrType(Regexp).prototype.FindSubmatchIndex = function FindSubmatchIndex(b) { - var {$24r, _r, _r$1, b, re, $s, $r, $c} = $restore(this, {b}); + $ptrType(parseDoc).prototype.oldHeading = function oldHeading(line) { + var {$24r, _r, d, line, $s, $r, $c} = $restore(this, {line}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - re = this; - _r = re.doExecute($ifaceNil, b, "", 0, re.prog.NumCap, sliceType$7.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = re.pad(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; + d = this; + _r = strings.TrimSpace(line); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = new Heading.ptr(new sliceType$8([new Plain((_r))])); + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: oldHeading, $c: true, $r, $24r, _r, d, line, $s};return $f; + }; + isHeading = function isHeading$1(line) { + var {$24r, _r, _v, line, $s, $r, $c} = $restore(this, {line}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (!(line.length >= 2 && (line.charCodeAt(0) === 35) && ((line.charCodeAt(1) === 32) || (line.charCodeAt(1) === 9)))) { _v = false; $s = 1; continue s; } + _r = strings.TrimSpace(line); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = !(_r === "#"); case 1: + $24r = _v; $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: FindSubmatchIndex, $c: true, $r, $24r, _r, _r$1, b, re, $s};return $f; + /* */ } return; } var $f = {$blk: isHeading$1, $c: true, $r, $24r, _r, _v, line, $s};return $f; + }; + $ptrType(parseDoc).prototype.heading = function heading(line) { + var {$24r, _r, d, line, $s, $r, $c} = $restore(this, {line}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + d = this; + _r = strings.TrimSpace($substring(line, 1)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = new Heading.ptr(new sliceType$8([new Plain((_r))])); + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: heading, $c: true, $r, $24r, _r, d, line, $s};return $f; + }; + $ptrType(parseDoc).prototype.code = function code(lines) { + var {_r, body, d, lines, $s, $r, $c} = $restore(this, {lines}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + d = this; + _r = unindent(lines); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + body = _r; + body = $append(body, ""); + $s = -1; return new Code.ptr(strings.Join(body, "\n")); + /* */ } return; } var $f = {$blk: code, $c: true, $r, _r, body, d, lines, $s};return $f; + }; + $ptrType(parseDoc).prototype.paragraph = function paragraph(lines) { + var {_entry, _i, _i$1, _key, _r, _ref, _ref$1, _tuple, d, def, def$1, defs, line, lines, ok, $s, $r, $c} = $restore(this, {lines}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + d = this; + defs = sliceType$6.nil; + _ref = lines; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + line = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r = parseLink(line); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + def = _tuple[0]; + ok = _tuple[1]; + /* */ if (!ok) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!ok) { */ case 4: + /* goto NoDefs */ $s = 6; continue; + /* } */ case 5: + defs = $append(defs, def); + _i++; + $s = 1; continue; + case 2: + _ref$1 = defs; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + def$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + d.Doc.Links = $append(d.Doc.Links, def$1); + if ((_entry = $mapIndex(d.links,$String.keyFor(def$1.Text)), _entry !== undefined ? _entry.v : ptrType$10.nil) === ptrType$10.nil) { + _key = def$1.Text; (d.links || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: def$1 }); + } + _i$1++; + } + $s = -1; return $ifaceNil; + /* NoDefs: */ case 6: + $s = -1; return new Paragraph.ptr(new sliceType$8([new Plain((strings.Join(lines, "\n")))])); + /* */ } return; } var $f = {$blk: paragraph, $c: true, $r, _entry, _i, _i$1, _key, _r, _ref, _ref$1, _tuple, d, def, def$1, defs, line, lines, ok, $s};return $f; + }; + parseLink = function parseLink$1(line) { + var {_r, i, j, line, text$6, url, $s, $r, $c} = $restore(this, {line}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + if (line === "" || !((line.charCodeAt(0) === 91))) { + $s = -1; return [ptrType$10.nil, false]; + } + i = strings.Index(line, "]:"); + if (i < 0 || (i + 3 >> 0) >= line.length || (!((line.charCodeAt((i + 2 >> 0)) === 32)) && !((line.charCodeAt((i + 2 >> 0)) === 9)))) { + $s = -1; return [ptrType$10.nil, false]; + } + text$6 = $substring(line, 1, i); + _r = strings.TrimSpace($substring(line, (i + 3 >> 0))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + url = _r; + j = strings.Index(url, "://"); + if (j < 0 || !isScheme($substring(url, 0, j))) { + $s = -1; return [ptrType$10.nil, false]; + } + $s = -1; return [new LinkDef.ptr(text$6, url, false), true]; + /* */ } return; } var $f = {$blk: parseLink$1, $c: true, $r, _r, i, j, line, text$6, url, $s};return $f; + }; + $ptrType(parseDoc).prototype.list = function list(lines, forceBlankBefore) { + var {_i, _r, _r$1, _r$2, _r$3, _ref, _tuple, _tuple$1, after, d, flush, forceBlankBefore, item, line, lines, list$1, n, num, ok, text$6, $s, $r, $c} = $restore(this, {lines, forceBlankBefore}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + d = [d]; + item = [item]; + text$6 = [text$6]; + d[0] = this; + _r = listMarker((0 >= lines.$length ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + 0])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + num = _tuple[0]; + list$1 = new List.ptr(sliceType$9.nil, forceBlankBefore, false); + item[0] = ptrType$11.nil; + text$6[0] = sliceType.nil; + flush = (function(d, item, text$6) { return function parseDoc·list·func1() { + var {_r$1, para, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + /* */ if (!(item[0] === ptrType$11.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(item[0] === ptrType$11.nil)) { */ case 1: + _r$1 = d[0].paragraph(text$6[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + para = _r$1; + if (!($interfaceIsEqual(para, $ifaceNil))) { + item[0].Content = $append(item[0].Content, para); + } + /* } */ case 2: + text$6[0] = sliceType.nil; + $s = -1; return; + /* */ } return; } var $f = {$blk: parseDoc·list·func1, $c: true, $r, _r$1, para, $s};return $f; + }; })(d, item, text$6); + _ref = lines; + _i = 0; + /* while (true) { */ case 2: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } + line = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r$1 = listMarker(line); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + n = _tuple$1[0]; + after = _tuple$1[1]; + ok = _tuple$1[2]; + /* */ if (ok && (!(n === "")) === (!(num === ""))) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (ok && (!(n === "")) === (!(num === ""))) { */ case 5: + $r = flush(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + item[0] = new ListItem.ptr(n, sliceType$5.nil); + list$1.Items = $append(list$1.Items, item[0]); + line = after; + /* } */ case 6: + _r$2 = strings.TrimSpace(line); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + line = _r$2; + /* */ if (line === "") { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (line === "") { */ case 9: + list$1.ForceBlankBetween = true; + $r = flush(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* continue; */ $s = 2; continue; + /* } */ case 10: + _r$3 = strings.TrimSpace(line); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + text$6[0] = $append(text$6[0], _r$3); + _i++; + $s = 2; continue; + case 3: + $r = flush(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return list$1; + /* */ } return; } var $f = {$blk: list, $c: true, $r, _i, _r, _r$1, _r$2, _r$3, _ref, _tuple, _tuple$1, after, d, flush, forceBlankBefore, item, line, lines, list$1, n, num, ok, text$6, $s};return $f; }; - $ptrType(Regexp).prototype.FindStringSubmatch = function FindStringSubmatch(s) { - var {_i, _r, _ref, a, dstCap, i, re, ret, s, x, x$1, x$2, $s, $r, $c} = $restore(this, {s}); + listMarker = function listMarker$1(line) { + var {_r, _r$1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _v, line, n, n$1, num, ok, r, rest, $s, $r, $c} = $restore(this, {line}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - re = this; - dstCap = arrayType$4.zero(); - _r = re.doExecute($ifaceNil, sliceType$4.nil, s, 0, re.prog.NumCap, $subslice(new sliceType$7(dstCap), 0, 0)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - a = _r; - if (a === sliceType$7.nil) { - $s = -1; return sliceType$3.nil; + num = ""; + rest = ""; + ok = false; + _r = strings.TrimSpace(line); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + line = _r; + if (line === "") { + _tmp = ""; + _tmp$1 = ""; + _tmp$2 = false; + num = _tmp; + rest = _tmp$1; + ok = _tmp$2; + $s = -1; return [num, rest, ok]; } - ret = $makeSlice(sliceType$3, (1 + re.numSubexp >> 0)); - _ref = ret; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - if (($imul(2, i)) < a.$length && (x = $imul(2, i), ((x < 0 || x >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x])) >= 0) { - ((i < 0 || i >= ret.$length) ? ($throwRuntimeError("index out of range"), undefined) : ret.$array[ret.$offset + i] = $substring(s, (x$1 = $imul(2, i), ((x$1 < 0 || x$1 >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x$1])), (x$2 = ($imul(2, i)) + 1 >> 0, ((x$2 < 0 || x$2 >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x$2])))); + _tuple = utf8.DecodeRuneInString(line); + r = _tuple[0]; + n = _tuple[1]; + if ((r === 8226) || (r === 42) || (r === 43) || (r === 45)) { + _tmp$3 = ""; + _tmp$4 = $substring(line, n); + num = _tmp$3; + rest = _tmp$4; + } else if (48 <= line.charCodeAt(0) && line.charCodeAt(0) <= 57) { + n$1 = 1; + while (true) { + if (!(n$1 < line.length && 48 <= line.charCodeAt(n$1) && line.charCodeAt(n$1) <= 57)) { break; } + n$1 = n$1 + (1) >> 0; } - _i++; + if (n$1 >= line.length || (!((line.charCodeAt(n$1) === 46)) && !((line.charCodeAt(n$1) === 41)))) { + _tmp$5 = ""; + _tmp$6 = ""; + _tmp$7 = false; + num = _tmp$5; + rest = _tmp$6; + ok = _tmp$7; + $s = -1; return [num, rest, ok]; + } + _tmp$8 = $substring(line, 0, n$1); + _tmp$9 = $substring(line, (n$1 + 1 >> 0)); + num = _tmp$8; + rest = _tmp$9; + } else { + _tmp$10 = ""; + _tmp$11 = ""; + _tmp$12 = false; + num = _tmp$10; + rest = _tmp$11; + ok = _tmp$12; + $s = -1; return [num, rest, ok]; } - $s = -1; return ret; - /* */ } return; } var $f = {$blk: FindStringSubmatch, $c: true, $r, _i, _r, _ref, a, dstCap, i, re, ret, s, x, x$1, x$2, $s};return $f; + if (!indented(rest)) { _v = true; $s = 4; continue s; } + _r$1 = strings.TrimSpace(rest); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = _r$1 === ""; case 4: + /* */ if (_v) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (_v) { */ case 2: + _tmp$13 = ""; + _tmp$14 = ""; + _tmp$15 = false; + num = _tmp$13; + rest = _tmp$14; + ok = _tmp$15; + $s = -1; return [num, rest, ok]; + /* } */ case 3: + _tmp$16 = num; + _tmp$17 = rest; + _tmp$18 = true; + num = _tmp$16; + rest = _tmp$17; + ok = _tmp$18; + $s = -1; return [num, rest, ok]; + /* */ } return; } var $f = {$blk: listMarker$1, $c: true, $r, _r, _r$1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _v, line, n, n$1, num, ok, r, rest, $s};return $f; }; - $ptrType(Regexp).prototype.FindStringSubmatchIndex = function FindStringSubmatchIndex(s) { - var {$24r, _r, _r$1, re, s, $s, $r, $c} = $restore(this, {s}); + isList = function isList$1(line) { + var {_r, _tuple, line, ok, $s, $r, $c} = $restore(this, {line}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - re = this; - _r = re.doExecute($ifaceNil, sliceType$4.nil, s, 0, re.prog.NumCap, sliceType$7.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = re.pad(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: FindStringSubmatchIndex, $c: true, $r, $24r, _r, _r$1, re, s, $s};return $f; + _r = listMarker(line); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + ok = _tuple[2]; + $s = -1; return ok; + /* */ } return; } var $f = {$blk: isList$1, $c: true, $r, _r, _tuple, line, ok, $s};return $f; }; - $ptrType(Regexp).prototype.FindReaderSubmatchIndex = function FindReaderSubmatchIndex(r) { - var {$24r, _r, _r$1, r, re, $s, $r, $c} = $restore(this, {r}); + $ptrType(parseDoc).prototype.parseLinkedText = function parseLinkedText(text$6) { + var {_1, _entry, _r, _r$1, _r$2, _tuple, _tuple$1, buf, c, d, def, flush, i, link, ok, ok$1, out, start, text$6, wrote, $s, $r, $c} = $restore(this, {text$6}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - re = this; - _r = re.doExecute(r, sliceType$4.nil, "", 0, re.prog.NumCap, sliceType$7.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = re.pad(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: FindReaderSubmatchIndex, $c: true, $r, $24r, _r, _r$1, r, re, $s};return $f; + d = [d]; + out = [out]; + text$6 = [text$6]; + wrote = [wrote]; + d[0] = this; + out[0] = sliceType$8.nil; + wrote[0] = 0; + flush = (function(d, out, text$6, wrote) { return function parseDoc·parseLinkedText·func1(i) { + var {_r, i, $s, $r, $c} = $restore(this, {i}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + /* */ if (wrote[0] < i) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (wrote[0] < i) { */ case 1: + _r = d[0].parseText(out[0], $substring(text$6[0], wrote[0], i), true); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + out[0] = _r; + wrote[0] = i; + /* } */ case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: parseDoc·parseLinkedText·func1, $c: true, $r, _r, i, $s};return $f; + }; })(d, out, text$6, wrote); + start = -1; + buf = sliceType$1.nil; + i = 0; + /* while (true) { */ case 1: + /* if (!(i < text$6[0].length)) { break; } */ if(!(i < text$6[0].length)) { $s = 2; continue; } + c = text$6[0].charCodeAt(i); + if ((c === 10) || (c === 9)) { + c = 32; + } + _1 = c; + /* */ if (_1 === (91)) { $s = 4; continue; } + /* */ if (_1 === (93)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_1 === (91)) { */ case 4: + start = i; + $s = 6; continue; + /* } else if (_1 === (93)) { */ case 5: + /* */ if (start >= 0) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (start >= 0) { */ case 7: + _tuple = (_entry = $mapIndex(d[0].links,$String.keyFor(($bytesToString(buf)))), _entry !== undefined ? [_entry.v, true] : [ptrType$10.nil, false]); + def = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (ok) { */ case 9: + def.Used = true; + $r = flush(start); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r = d[0].parseText(sliceType$8.nil, $substring(text$6[0], (start + 1 >> 0), i), false); /* */ $s = 13; case 13: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + out[0] = $append(out[0], new Link.ptr(false, _r, def.URL)); + wrote[0] = i + 1 >> 0; + $s = 11; continue; + /* } else { */ case 10: + _r$1 = d[0].docLink($substring(text$6[0], (start + 1 >> 0), i), $substring(text$6[0], 0, start), $substring(text$6[0], (i + 1 >> 0))); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + link = _tuple$1[0]; + ok$1 = _tuple$1[1]; + /* */ if (ok$1) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (ok$1) { */ case 15: + $r = flush(start); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = d[0].parseText(sliceType$8.nil, $substring(text$6[0], (start + 1 >> 0), i), false); /* */ $s = 18; case 18: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + link.Text = _r$2; + out[0] = $append(out[0], link); + wrote[0] = i + 1 >> 0; + /* } */ case 16: + /* } */ case 11: + /* } */ case 8: + start = -1; + buf = $subslice(buf, 0, 0); + /* } */ case 6: + case 3: + if (start >= 0 && !((i === start))) { + buf = $append(buf, c); + } + i = i + (1) >> 0; + $s = 1; continue; + case 2: + $r = flush(text$6[0].length); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return out[0]; + /* */ } return; } var $f = {$blk: parseLinkedText, $c: true, $r, _1, _entry, _r, _r$1, _r$2, _tuple, _tuple$1, buf, c, d, def, flush, i, link, ok, ok$1, out, start, text$6, wrote, $s};return $f; }; - $ptrType(Regexp).prototype.FindAll = function FindAll(b, n) { - var {b, n, re, result, $s, $r, $c} = $restore(this, {b, n}); + $ptrType(parseDoc).prototype.docLink = function docLink(text$6, before, after) { + var {_r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, after, before, d, link, name, ok, pkg, r, r$1, recv, text$6, $s, $r, $c} = $restore(this, {text$6, before, after}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - b = [b]; - result = [result]; - re = this; - if (n < 0) { - n = b[0].$length + 1 >> 0; + link = ptrType$7.nil; + ok = false; + d = this; + if (!(before === "")) { + _tuple = utf8.DecodeLastRuneInString(before); + r = _tuple[0]; + if (!unicode.IsPunct(r) && !((r === 32)) && !((r === 9)) && !((r === 10))) { + _tmp = ptrType$7.nil; + _tmp$1 = false; + link = _tmp; + ok = _tmp$1; + $s = -1; return [link, ok]; + } } - result[0] = sliceType$8.nil; - $r = re.allMatches("", b[0], n, (function(b, result) { return function Regexp·FindAll·func1(match) { - var match; - if (result[0] === sliceType$8.nil) { - result[0] = $makeSlice(sliceType$8, 0, 10); - } - result[0] = $append(result[0], $subslice(b[0], (0 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 0]), (1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]), (1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]))); - }; })(b, result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return result[0]; - /* */ } return; } var $f = {$blk: FindAll, $c: true, $r, b, n, re, result, $s};return $f; - }; - $ptrType(Regexp).prototype.FindAllIndex = function FindAllIndex(b, n) { - var {b, n, re, result, $s, $r, $c} = $restore(this, {b, n}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - result = [result]; - re = this; - if (n < 0) { - n = b.$length + 1 >> 0; + if (!(after === "")) { + _tuple$1 = utf8.DecodeRuneInString(after); + r$1 = _tuple$1[0]; + if (!unicode.IsPunct(r$1) && !((r$1 === 32)) && !((r$1 === 9)) && !((r$1 === 10))) { + _tmp$2 = ptrType$7.nil; + _tmp$3 = false; + link = _tmp$2; + ok = _tmp$3; + $s = -1; return [link, ok]; + } } - result[0] = sliceType$9.nil; - $r = re.allMatches("", b, n, (function(result) { return function Regexp·FindAllIndex·func1(match) { - var match; - if (result[0] === sliceType$9.nil) { - result[0] = $makeSlice(sliceType$9, 0, 10); - } - result[0] = $append(result[0], $subslice(match, 0, 2)); - }; })(result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return result[0]; - /* */ } return; } var $f = {$blk: FindAllIndex, $c: true, $r, b, n, re, result, $s};return $f; - }; - $ptrType(Regexp).prototype.FindAllString = function FindAllString(s, n) { - var {n, re, result, s, $s, $r, $c} = $restore(this, {s, n}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - result = [result]; - s = [s]; - re = this; - if (n < 0) { - n = s[0].length + 1 >> 0; + text$6 = strings.TrimPrefix(text$6, "*"); + _tuple$2 = splitDocName(text$6); + pkg = _tuple$2[0]; + name = _tuple$2[1]; + ok = _tuple$2[2]; + recv = ""; + if (ok) { + _tuple$3 = splitDocName(pkg); + pkg = _tuple$3[0]; + recv = _tuple$3[1]; } - result[0] = sliceType$3.nil; - $r = re.allMatches(s[0], sliceType$4.nil, n, (function(result, s) { return function Regexp·FindAllString·func1(match) { - var match; - if (result[0] === sliceType$3.nil) { - result[0] = $makeSlice(sliceType$3, 0, 10); - } - result[0] = $append(result[0], $substring(s[0], (0 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 0]), (1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]))); - }; })(result, s)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return result[0]; - /* */ } return; } var $f = {$blk: FindAllString, $c: true, $r, n, re, result, s, $s};return $f; + /* */ if (!(pkg === "")) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(pkg === "")) { */ case 1: + _r = d.lookupPkg(pkg); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple$4 = _r; + pkg = _tuple$4[0]; + ok = _tuple$4[1]; + if (!ok) { + _tmp$4 = ptrType$7.nil; + _tmp$5 = false; + link = _tmp$4; + ok = _tmp$5; + $s = -1; return [link, ok]; + } + $s = 3; continue; + /* } else { */ case 2: + _r$1 = d.lookupSym(recv, name); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + ok = _r$1; + if (!ok) { + _tmp$6 = ptrType$7.nil; + _tmp$7 = false; + link = _tmp$6; + ok = _tmp$7; + $s = -1; return [link, ok]; + } + /* } */ case 3: + link = new DocLink.ptr(sliceType$8.nil, pkg, recv, name); + _tmp$8 = link; + _tmp$9 = true; + link = _tmp$8; + ok = _tmp$9; + $s = -1; return [link, ok]; + /* */ } return; } var $f = {$blk: docLink, $c: true, $r, _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, after, before, d, link, name, ok, pkg, r, r$1, recv, text$6, $s};return $f; }; - $ptrType(Regexp).prototype.FindAllStringIndex = function FindAllStringIndex(s, n) { - var {n, re, result, s, $s, $r, $c} = $restore(this, {s, n}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - result = [result]; - re = this; - if (n < 0) { - n = s.length + 1 >> 0; + splitDocName = function splitDocName$1(text$6) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, before, foundDot, i, name, text$6; + before = ""; + name = ""; + foundDot = false; + i = strings.LastIndex(text$6, "."); + name = $substring(text$6, (i + 1 >> 0)); + if (!isName(name)) { + _tmp = text$6; + _tmp$1 = ""; + _tmp$2 = false; + before = _tmp; + name = _tmp$1; + foundDot = _tmp$2; + return [before, name, foundDot]; } - result[0] = sliceType$9.nil; - $r = re.allMatches(s, sliceType$4.nil, n, (function(result) { return function Regexp·FindAllStringIndex·func1(match) { - var match; - if (result[0] === sliceType$9.nil) { - result[0] = $makeSlice(sliceType$9, 0, 10); - } - result[0] = $append(result[0], $subslice(match, 0, 2)); - }; })(result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return result[0]; - /* */ } return; } var $f = {$blk: FindAllStringIndex, $c: true, $r, n, re, result, s, $s};return $f; + if (i >= 0) { + before = $substring(text$6, 0, i); + } + _tmp$3 = before; + _tmp$4 = name; + _tmp$5 = true; + before = _tmp$3; + name = _tmp$4; + foundDot = _tmp$5; + return [before, name, foundDot]; }; - $ptrType(Regexp).prototype.FindAllSubmatch = function FindAllSubmatch(b, n) { - var {b, n, re, result, $s, $r, $c} = $restore(this, {b, n}); + $ptrType(parseDoc).prototype.parseText = function parseText(out, s, autoLink) { + var {_entry, _tuple, _tuple$1, _tuple$2, autoLink, d, flush, i, id, italics, ok, ok$1, out, s, t, url, url$1, w, writeUntil, wrote, $s, $r, $c} = $restore(this, {out, s, autoLink}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - b = [b]; - result = [result]; - re = this; - if (n < 0) { - n = b[0].$length + 1 >> 0; - } - result[0] = sliceType$10.nil; - $r = re.allMatches("", b[0], n, (function(b, result) { return function Regexp·FindAllSubmatch·func1(match) { - var _i, _q, _ref, j, match, slice, x, x$1, x$2, x$3; - if (result[0] === sliceType$10.nil) { - result[0] = $makeSlice(sliceType$10, 0, 10); + out = [out]; + s = [s]; + w = [w]; + writeUntil = [writeUntil]; + wrote = [wrote]; + d = this; + w[0] = new strings.Builder.ptr(ptrType$1.nil, sliceType$1.nil); + wrote[0] = 0; + writeUntil[0] = (function(out, s, w, writeUntil, wrote) { return function parseDoc·parseText·func1(i) { + var i; + w[0].WriteString($substring(s[0], wrote[0], i)); + wrote[0] = i; + }; })(out, s, w, writeUntil, wrote); + flush = (function(out, s, w, writeUntil, wrote) { return function parseDoc·parseText·func2(i) { + var {i, $s, $r, $c} = $restore(this, {i}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + $r = writeUntil[0](i); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (w[0].Len() > 0) { + out[0] = $append(out[0], new Plain((w[0].String()))); + w[0].Reset(); } - slice = $makeSlice(sliceType$8, (_q = match.$length / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))); - _ref = slice; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - j = _i; - if ((x = $imul(2, j), ((x < 0 || x >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x])) >= 0) { - ((j < 0 || j >= slice.$length) ? ($throwRuntimeError("index out of range"), undefined) : slice.$array[slice.$offset + j] = $subslice(b[0], (x$1 = $imul(2, j), ((x$1 < 0 || x$1 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$1])), (x$2 = ($imul(2, j)) + 1 >> 0, ((x$2 < 0 || x$2 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$2])), (x$3 = ($imul(2, j)) + 1 >> 0, ((x$3 < 0 || x$3 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$3])))); + $s = -1; return; + /* */ } return; } var $f = {$blk: parseDoc·parseText·func2, $c: true, $r, i, $s};return $f; + }; })(out, s, w, writeUntil, wrote); + i = 0; + /* while (true) { */ case 1: + /* if (!(i < s[0].length)) { break; } */ if(!(i < s[0].length)) { $s = 2; continue; } + t = $substring(s[0], i); + /* */ if (autoLink) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (autoLink) { */ case 3: + _tuple = autoURL(t); + url = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (ok) { */ case 5: + $r = flush(i); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + out[0] = $append(out[0], new Link.ptr(true, new sliceType$8([new Plain((url))]), url)); + i = i + (url.length) >> 0; + wrote[0] = i; + /* continue; */ $s = 1; continue; + /* } */ case 6: + _tuple$1 = ident(t); + id = _tuple$1[0]; + ok$1 = _tuple$1[1]; + /* */ if (ok$1) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (ok$1) { */ case 8: + _tuple$2 = (_entry = $mapIndex(d.Parser.Words,$String.keyFor(id)), _entry !== undefined ? [_entry.v, true] : ["", false]); + url$1 = _tuple$2[0]; + italics = _tuple$2[1]; + if (!italics) { + i = i + (id.length) >> 0; + /* continue; */ $s = 1; continue; } - _i++; - } - result[0] = $append(result[0], slice); - }; })(b, result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return result[0]; - /* */ } return; } var $f = {$blk: FindAllSubmatch, $c: true, $r, b, n, re, result, $s};return $f; + $r = flush(i); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (url$1 === "") { + out[0] = $append(out[0], new Italic((id))); + } else { + out[0] = $append(out[0], new Link.ptr(true, new sliceType$8([new Italic((id))]), url$1)); + } + i = i + (id.length) >> 0; + wrote[0] = i; + /* continue; */ $s = 1; continue; + /* } */ case 9: + /* } */ case 4: + /* */ if (strings.HasPrefix(t, "``")) { $s = 12; continue; } + /* */ if (strings.HasPrefix(t, "''")) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (strings.HasPrefix(t, "``")) { */ case 12: + if (t.length >= 3 && (t.charCodeAt(2) === 96)) { + i = i + (3) >> 0; + while (true) { + if (!(i < t.length && (t.charCodeAt(i) === 96))) { break; } + i = i + (1) >> 0; + } + /* break; */ $s = 11; continue; + } + $r = writeUntil[0](i); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + w[0].WriteRune(8220); + i = i + (2) >> 0; + wrote[0] = i; + $s = 15; continue; + /* } else if (strings.HasPrefix(t, "''")) { */ case 13: + $r = writeUntil[0](i); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + w[0].WriteRune(8221); + i = i + (2) >> 0; + wrote[0] = i; + $s = 15; continue; + /* } else { */ case 14: + i = i + (1) >> 0; + /* } */ case 15: + case 11: + $s = 1; continue; + case 2: + $r = flush(s[0].length); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return out[0]; + /* */ } return; } var $f = {$blk: parseText, $c: true, $r, _entry, _tuple, _tuple$1, _tuple$2, autoLink, d, flush, i, id, italics, ok, ok$1, out, s, t, url, url$1, w, writeUntil, wrote, $s};return $f; }; - $ptrType(Regexp).prototype.FindAllSubmatchIndex = function FindAllSubmatchIndex(b, n) { - var {b, n, re, result, $s, $r, $c} = $restore(this, {b, n}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - result = [result]; - re = this; - if (n < 0) { - n = b.$length + 1 >> 0; + autoURL = function autoURL$1(s) { + var _1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, end, i, ok, s, stk, url, x; + url = ""; + ok = false; + i = 0; + if (s.length < 7) { + _tmp = ""; + _tmp$1 = false; + url = _tmp; + ok = _tmp$1; + return [url, ok]; + } else if ((s.charCodeAt(3) === 58)) { + i = 3; + } else if ((s.charCodeAt(4) === 58)) { + i = 4; + } else if ((s.charCodeAt(5) === 58)) { + i = 5; + } else if ((s.charCodeAt(6) === 58)) { + i = 6; + } else { + _tmp$2 = ""; + _tmp$3 = false; + url = _tmp$2; + ok = _tmp$3; + return [url, ok]; } - result[0] = sliceType$9.nil; - $r = re.allMatches("", b, n, (function(result) { return function Regexp·FindAllSubmatchIndex·func1(match) { - var match; - if (result[0] === sliceType$9.nil) { - result[0] = $makeSlice(sliceType$9, 0, 10); - } - result[0] = $append(result[0], match); - }; })(result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return result[0]; - /* */ } return; } var $f = {$blk: FindAllSubmatchIndex, $c: true, $r, b, n, re, result, $s};return $f; - }; - $ptrType(Regexp).prototype.FindAllStringSubmatch = function FindAllStringSubmatch(s, n) { - var {n, re, result, s, $s, $r, $c} = $restore(this, {s, n}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - result = [result]; - s = [s]; - re = this; - if (n < 0) { - n = s[0].length + 1 >> 0; + if ((i + 3 >> 0) > s.length || !($substring(s, i, (i + 3 >> 0)) === "://")) { + _tmp$4 = ""; + _tmp$5 = false; + url = _tmp$4; + ok = _tmp$5; + return [url, ok]; } - result[0] = sliceType$11.nil; - $r = re.allMatches(s[0], sliceType$4.nil, n, (function(result, s) { return function Regexp·FindAllStringSubmatch·func1(match) { - var _i, _q, _ref, j, match, slice, x, x$1, x$2; - if (result[0] === sliceType$11.nil) { - result[0] = $makeSlice(sliceType$11, 0, 10); - } - slice = $makeSlice(sliceType$3, (_q = match.$length / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))); - _ref = slice; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - j = _i; - if ((x = $imul(2, j), ((x < 0 || x >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x])) >= 0) { - ((j < 0 || j >= slice.$length) ? ($throwRuntimeError("index out of range"), undefined) : slice.$array[slice.$offset + j] = $substring(s[0], (x$1 = $imul(2, j), ((x$1 < 0 || x$1 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$1])), (x$2 = ($imul(2, j)) + 1 >> 0, ((x$2 < 0 || x$2 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$2])))); - } - _i++; - } - result[0] = $append(result[0], slice); - }; })(result, s)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return result[0]; - /* */ } return; } var $f = {$blk: FindAllStringSubmatch, $c: true, $r, n, re, result, s, $s};return $f; - }; - $ptrType(Regexp).prototype.FindAllStringSubmatchIndex = function FindAllStringSubmatchIndex(s, n) { - var {n, re, result, s, $s, $r, $c} = $restore(this, {s, n}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - result = [result]; - re = this; - if (n < 0) { - n = s.length + 1 >> 0; + if (!isScheme($substring(s, 0, i))) { + _tmp$6 = ""; + _tmp$7 = false; + url = _tmp$6; + ok = _tmp$7; + return [url, ok]; } - result[0] = sliceType$9.nil; - $r = re.allMatches(s, sliceType$4.nil, n, (function(result) { return function Regexp·FindAllStringSubmatchIndex·func1(match) { - var match; - if (result[0] === sliceType$9.nil) { - result[0] = $makeSlice(sliceType$9, 0, 10); - } - result[0] = $append(result[0], match); - }; })(result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return result[0]; - /* */ } return; } var $f = {$blk: FindAllStringSubmatchIndex, $c: true, $r, n, re, result, s, $s};return $f; - }; - $ptrType(Regexp).prototype.Split = function Split(s, n) { - var {_i, _r, _ref, beg, end, match, matches, n, re, s, strings$1, $s, $r, $c} = $restore(this, {s, n}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - re = this; - if (n === 0) { - $s = -1; return sliceType$3.nil; + i = i + (3) >> 0; + if (i >= s.length || !isHost(s.charCodeAt(i)) || isPunct(s.charCodeAt(i))) { + _tmp$8 = ""; + _tmp$9 = false; + url = _tmp$8; + ok = _tmp$9; + return [url, ok]; } - if (re.expr.length > 0 && (s.length === 0)) { - $s = -1; return new sliceType$3([""]); + i = i + (1) >> 0; + end = i; + while (true) { + if (!(i < s.length && isHost(s.charCodeAt(i)))) { break; } + if (!isPunct(s.charCodeAt(i))) { + end = i + 1 >> 0; + } + i = i + (1) >> 0; } - _r = re.FindAllStringIndex(s, n); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - matches = _r; - strings$1 = $makeSlice(sliceType$3, 0, matches.$length); - beg = 0; - end = 0; - _ref = matches; - _i = 0; + i = end; + stk = new sliceType$1([]); + end = i; + Path: while (true) { - if (!(_i < _ref.$length)) { break; } - match = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (n > 0 && strings$1.$length >= (n - 1 >> 0)) { + if (!(i < s.length)) { break; } + if (isPunct(s.charCodeAt(i))) { + i = i + (1) >> 0; + continue; + } + if (!isPath(s.charCodeAt(i))) { break; } - end = (0 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 0]); - if (!(((1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]) === 0))) { - strings$1 = $append(strings$1, $substring(s, beg, end)); + _1 = s.charCodeAt(i); + if (_1 === (40)) { + stk = $append(stk, 41); + } else if (_1 === (123)) { + stk = $append(stk, 125); + } else if (_1 === (91)) { + stk = $append(stk, 93); + } else if ((_1 === (41)) || (_1 === (125)) || (_1 === (93))) { + if ((stk.$length === 0) || !(((x = stk.$length - 1 >> 0, ((x < 0 || x >= stk.$length) ? ($throwRuntimeError("index out of range"), undefined) : stk.$array[stk.$offset + x])) === s.charCodeAt(i)))) { + break Path; + } + stk = $subslice(stk, 0, (stk.$length - 1 >> 0)); } - beg = (1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]); - _i++; - } - if (!((end === s.length))) { - strings$1 = $append(strings$1, $substring(s, beg)); + if (stk.$length === 0) { + end = i + 1 >> 0; + } + i = i + (1) >> 0; } - $s = -1; return strings$1; - /* */ } return; } var $f = {$blk: Split, $c: true, $r, _i, _r, _ref, beg, end, match, matches, n, re, s, strings$1, $s};return $f; + _tmp$10 = $substring(s, 0, end); + _tmp$11 = true; + url = _tmp$10; + ok = _tmp$11; + return [url, ok]; }; - onePassPrefix = function onePassPrefix$1(p) { - var _tmp, _tmp$1, _tmp$10, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, buf, complete, i, p, pc, prefix, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; - prefix = ""; - complete = false; - pc = 0; - i = (x = p.Inst, x$1 = p.Start, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); - if (!((i.Op === 3)) || ((((((i.Arg << 24 >>> 24))) & 4) >>> 0) === 0)) { - _tmp = ""; - _tmp$1 = i.Op === 4; - _tmp$2 = ((p.Start >>> 0)); - prefix = _tmp; - complete = _tmp$1; - pc = _tmp$2; - return [prefix, complete, pc]; - } - pc = i.Out; - i = (x$2 = p.Inst, ((pc < 0 || pc >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + pc])); - while (true) { - if (!(i.Op === 6)) { break; } - pc = i.Out; - i = (x$3 = p.Inst, ((pc < 0 || pc >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + pc])); - } - if (!((iop(i) === 7)) || !((i.Rune.$length === 1))) { - _tmp$3 = ""; - _tmp$4 = i.Op === 4; - _tmp$5 = ((p.Start >>> 0)); - prefix = _tmp$3; - complete = _tmp$4; - pc = _tmp$5; - return [prefix, complete, pc]; - } - buf = new strings.Builder.ptr(ptrType$5.nil, sliceType$4.nil); - while (true) { - if (!((iop(i) === 7) && (i.Rune.$length === 1) && (((((i.Arg << 16 >>> 16)) & 1) >>> 0) === 0) && !(((x$4 = i.Rune, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])) === 65533)))) { break; } - buf.WriteRune((x$5 = i.Rune, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0]))); - _tmp$6 = i.Out; - _tmp$7 = (x$6 = p.Inst, x$7 = i.Out, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])); - pc = _tmp$6; - i = _tmp$7; - } - if ((i.Op === 3) && !((((((i.Arg << 24 >>> 24)) & 8) >>> 0) === 0)) && ((x$8 = p.Inst, x$9 = i.Out, ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + x$9])).Op === 4)) { - complete = true; + isScheme = function isScheme$1(s) { + var _1, s; + _1 = s; + if (_1 === ("file") || _1 === ("ftp") || _1 === ("gopher") || _1 === ("http") || _1 === ("https") || _1 === ("mailto") || _1 === ("nntp")) { + return true; } - _tmp$8 = buf.String(); - _tmp$9 = complete; - _tmp$10 = pc; - prefix = _tmp$8; - complete = _tmp$9; - pc = _tmp$10; - return [prefix, complete, pc]; + return false; }; - onePassNext = function onePassNext$1(i, r) { - var i, next, r, x; - next = i.Inst.MatchRunePos(r); - if (next >= 0) { - return (x = i.Next, ((next < 0 || next >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + next])); - } - if (i.Inst.Op === 1) { - return i.Inst.Out; - } - return 0; + isHost = function isHost$1(c) { + var c, x, x$1, x$2, x$3, x$4; + return !((x = (x$1 = (x$2 = $shiftLeft64(new $Uint64(0, 1), c), new $Uint64(x$2.$high & 134176768, (x$2.$low & 0) >>> 0)), x$3 = (x$4 = $shiftLeft64(new $Uint64(0, 1), ((c - 64 << 24 >>> 24))), new $Uint64(x$4.$high & 134217726, (x$4.$low & 2952790015) >>> 0)), new $Uint64(x$1.$high | x$3.$high, (x$1.$low | x$3.$low) >>> 0)), (x.$high === 0 && x.$low === 0))); }; - iop = function iop$1(i) { - var _1, i, op; - op = i.Op; - _1 = op; - if ((_1 === (8)) || (_1 === (9)) || (_1 === (10))) { - op = 7; - } - return op; + isPunct = function isPunct$1(c) { + var c, x, x$1, x$2, x$3, x$4; + return !((x = (x$1 = (x$2 = $shiftLeft64(new $Uint64(0, 1), c), new $Uint64(x$2.$high & 2348830722, (x$2.$low & 0) >>> 0)), x$3 = (x$4 = $shiftLeft64(new $Uint64(0, 1), ((c - 64 << 24 >>> 24))), new $Uint64(x$4.$high & 0, (x$4.$low & 0) >>> 0)), new $Uint64(x$1.$high | x$3.$high, (x$1.$low | x$3.$low) >>> 0)), (x.$high === 0 && x.$low === 0))); }; - $ptrType(queueOnePass).prototype.empty = function empty() { - var q; - q = this; - return q.nextIndex >= q.size; + isPath = function isPath$1(c) { + var c, x, x$1, x$2, x$3, x$4; + return !((x = (x$1 = (x$2 = $shiftLeft64(new $Uint64(0, 1), c), new $Uint64(x$2.$high & 603959288, (x$2.$low & 0) >>> 0)), x$3 = (x$4 = $shiftLeft64(new $Uint64(0, 1), ((c - 64 << 24 >>> 24))), new $Uint64(x$4.$high & 1879048190, (x$4.$low & 2952790015) >>> 0)), new $Uint64(x$1.$high | x$3.$high, (x$1.$low | x$3.$low) >>> 0)), (x.$high === 0 && x.$low === 0))); }; - $ptrType(queueOnePass).prototype.next = function next() { - var n, q, x, x$1; + isName = function isName$1(s) { + var _tuple, _tuple$1, ok, r, s, t; + _tuple = ident(s); + t = _tuple[0]; + ok = _tuple[1]; + if (!ok || !(t === s)) { + return false; + } + _tuple$1 = utf8.DecodeRuneInString(s); + r = _tuple$1[0]; + return unicode.IsUpper(r); + }; + ident = function ident$1(s) { + var _tmp, _tmp$1, _tuple, c, id, n, nr, ok, r, s; + id = ""; + ok = false; n = 0; - q = this; - n = (x = q.dense, x$1 = q.nextIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); - q.nextIndex = q.nextIndex + (1) >>> 0; - return n; + while (true) { + if (!(n < s.length)) { break; } + c = s.charCodeAt(n); + if (c < 128) { + if (isIdentASCII(c) && (n > 0 || c < 48 || c > 57)) { + n = n + (1) >> 0; + continue; + } + break; + } + _tuple = utf8.DecodeRuneInString($substring(s, n)); + r = _tuple[0]; + nr = _tuple[1]; + if (unicode.IsLetter(r)) { + n = n + (nr) >> 0; + continue; + } + break; + } + _tmp = $substring(s, 0, n); + _tmp$1 = n > 0; + id = _tmp; + ok = _tmp$1; + return [id, ok]; }; - $ptrType(queueOnePass).prototype.clear = function clear() { - var q; - q = this; - q.size = 0; - q.nextIndex = 0; + isIdentASCII = function isIdentASCII$1(c) { + var c, x, x$1, x$2, x$3, x$4; + return !((x = (x$1 = (x$2 = $shiftLeft64(new $Uint64(0, 1), c), new $Uint64(x$2.$high & 67043328, (x$2.$low & 0) >>> 0)), x$3 = (x$4 = $shiftLeft64(new $Uint64(0, 1), ((c - 64 << 24 >>> 24))), new $Uint64(x$4.$high & 134217726, (x$4.$low & 2281701374) >>> 0)), new $Uint64(x$1.$high | x$3.$high, (x$1.$low | x$3.$low) >>> 0)), (x.$high === 0 && x.$low === 0))); }; - $ptrType(queueOnePass).prototype.contains = function contains(u) { - var q, u, x, x$1, x$2, x$3; - q = this; - if (u >= ((q.sparse.$length >>> 0))) { + validImportPath = function validImportPath$1(path) { + var _i, _ref, _rune, elemStart, i, path, r; + if (!utf8.ValidString(path)) { return false; } - return (x = q.sparse, ((u < 0 || u >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + u])) < q.size && ((x$1 = q.dense, x$2 = (x$3 = q.sparse, ((u < 0 || u >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + u])), ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])) === u); - }; - $ptrType(queueOnePass).prototype.insert = function insert(u) { - var q, u; - q = this; - if (!q.contains(u)) { - q.insertNew(u); + if (path === "") { + return false; } - }; - $ptrType(queueOnePass).prototype.insertNew = function insertNew(u) { - var q, u, x, x$1, x$2; - q = this; - if (u >= ((q.sparse.$length >>> 0))) { - return; + if (path.charCodeAt(0) === 45) { + return false; } - (x = q.sparse, ((u < 0 || u >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + u] = q.size)); - (x$1 = q.dense, x$2 = q.size, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2] = u)); - q.size = q.size + (1) >>> 0; - }; - newQueue = function newQueue$1(size) { - var q, size; - q = ptrType$6.nil; - q = new queueOnePass.ptr($makeSlice(sliceType$2, size), $makeSlice(sliceType$2, size), 0, 0); - return q; - }; - mergeRuneSets = function mergeRuneSets$1(leftRunes, rightRunes, leftPC, rightPC) { - var {_r, _r$1, _r$2, _r$3, _tmp, _tmp$1, extend, ix, leftLen, leftPC, leftRunes, lx, merged, next$1, ok, rightLen, rightPC, rightRunes, rx, x, x$1, $s, $deferred, $r, $c} = $restore(this, {leftRunes, rightRunes, leftPC, rightPC}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - ix = [ix]; - lx = [lx]; - merged = [merged]; - next$1 = [next$1]; - ok = [ok]; - rx = [rx]; - leftLen = leftRunes.$get().$length; - rightLen = rightRunes.$get().$length; - if (!(((leftLen & 1) === 0)) || !(((rightLen & 1) === 0))) { - $panic(new $String("mergeRuneSets odd length []rune")); + if (strings.Contains(path, "//")) { + return false; } - _tmp = 0; - _tmp$1 = 0; - lx[0] = _tmp; - rx[0] = _tmp$1; - merged[0] = $makeSlice(sliceType$1, 0); - next$1[0] = $makeSlice(sliceType$2, 0); - ok[0] = true; - $deferred.push([(function(ix, lx, merged, next$1, ok, rx) { return function mergeRuneSets·func1() { - if (!ok[0]) { - merged[0] = sliceType$1.nil; - next$1[0] = sliceType$2.nil; - } - }; })(ix, lx, merged, next$1, ok, rx), []]); - ix[0] = -1; - extend = (function(ix, lx, merged, next$1, ok, rx) { return function mergeRuneSets·func2(newLow, newArray, pc) { - var newArray, newLow, pc, x, x$1, x$2, x$3, x$4, x$5; - if (ix[0] > 0 && (x = newArray.$get(), x$1 = newLow.$get(), ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])) <= ((ix[0] < 0 || ix[0] >= merged[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : merged[0].$array[merged[0].$offset + ix[0]])) { - return false; - } - merged[0] = $append(merged[0], (x$2 = newArray.$get(), x$3 = newLow.$get(), ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])), (x$4 = newArray.$get(), x$5 = newLow.$get() + 1 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5]))); - newLow.$set(newLow.$get() + (2) >> 0); - ix[0] = ix[0] + (2) >> 0; - next$1[0] = $append(next$1[0], pc); - return true; - }; })(ix, lx, merged, next$1, ok, rx); - /* while (true) { */ case 1: - /* if (!(lx[0] < leftLen || rx[0] < rightLen)) { break; } */ if(!(lx[0] < leftLen || rx[0] < rightLen)) { $s = 2; continue; } - /* */ if (rx[0] >= rightLen) { $s = 4; continue; } - /* */ if (lx[0] >= leftLen) { $s = 5; continue; } - /* */ if ((x = rightRunes.$get(), ((rx[0] < 0 || rx[0] >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + rx[0]])) < (x$1 = leftRunes.$get(), ((lx[0] < 0 || lx[0] >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + lx[0]]))) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (rx[0] >= rightLen) { */ case 4: - _r = extend((lx.$ptr || (lx.$ptr = new ptrType$7(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, lx))), leftRunes, leftPC); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - ok[0] = _r; - $s = 8; continue; - /* } else if (lx[0] >= leftLen) { */ case 5: - _r$1 = extend((rx.$ptr || (rx.$ptr = new ptrType$7(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, rx))), rightRunes, rightPC); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - ok[0] = _r$1; - $s = 8; continue; - /* } else if ((x = rightRunes.$get(), ((rx[0] < 0 || rx[0] >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + rx[0]])) < (x$1 = leftRunes.$get(), ((lx[0] < 0 || lx[0] >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + lx[0]]))) { */ case 6: - _r$2 = extend((rx.$ptr || (rx.$ptr = new ptrType$7(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, rx))), rightRunes, rightPC); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - ok[0] = _r$2; - $s = 8; continue; - /* } else { */ case 7: - _r$3 = extend((lx.$ptr || (lx.$ptr = new ptrType$7(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, lx))), leftRunes, leftPC); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - ok[0] = _r$3; - /* } */ case 8: - case 3: - if (!ok[0]) { - $s = -1; return [noRune, noNext]; - } - $s = 1; continue; - case 2: - $s = -1; return [merged[0], next$1[0]]; - /* */ } return; } } catch(err) { $err = err; $s = -1; return [sliceType$1.nil, sliceType$2.nil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: mergeRuneSets$1, $c: true, $r, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, extend, ix, leftLen, leftPC, leftRunes, lx, merged, next$1, ok, rightLen, rightPC, rightRunes, rx, x, x$1, $s, $deferred};return $f; } } - }; - cleanupOnePass = function cleanupOnePass$1(prog, original) { - var _1, _i, _ref, instOriginal, ix, original, prog, x, x$1, x$2; - _ref = original.Inst; + if (path.charCodeAt((path.length - 1 >> 0)) === 47) { + return false; + } + elemStart = 0; + _ref = path; _i = 0; while (true) { - if (!(_i < _ref.$length)) { break; } - ix = _i; - instOriginal = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), syntax.Inst); - _1 = instOriginal.Op; - if ((_1 === (0)) || (_1 === (1)) || (_1 === (7))) { - } else if ((_1 === (2)) || (_1 === (3)) || (_1 === (6)) || (_1 === (4)) || (_1 === (5))) { - (x = prog.Inst, ((ix < 0 || ix >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + ix])).Next = sliceType$2.nil; - } else if ((_1 === (8)) || (_1 === (9)) || (_1 === (10))) { - (x$1 = prog.Inst, ((ix < 0 || ix >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + ix])).Next = sliceType$2.nil; - onePassInst.copy((x$2 = prog.Inst, ((ix < 0 || ix >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + ix])), new onePassInst.ptr($clone(instOriginal, syntax.Inst), sliceType$2.nil)); + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + i = _i; + r = _rune[0]; + if (r === 47) { + if (!validImportPathElem($substring(path, elemStart, i))) { + return false; + } + elemStart = i + 1 >> 0; } - _i++; + _i += _rune[1]; } + return validImportPathElem($substring(path, elemStart)); }; - onePassCopy = function onePassCopy$1(prog) { - var _1, _i, _i$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, i, inst, instAlt, instOther, p, p_A_Alt, p_A_Other, p_B_Alt, p_B_Other, patch, pc, prog, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; - p = new onePassProg.ptr($makeSlice(sliceType$12, prog.Inst.$length), prog.Start, prog.NumCap); - _ref = prog.Inst; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - inst = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), syntax.Inst); - onePassInst.copy((x = p.Inst, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])), new onePassInst.ptr($clone(inst, syntax.Inst), sliceType$2.nil)); - _i++; + validImportPathElem = function validImportPathElem$1(elem) { + var elem, i; + if (elem === "" || (elem.charCodeAt(0) === 46) || (elem.charCodeAt((elem.length - 1 >> 0)) === 46)) { + return false; } - _ref$1 = p.Inst; - _i$1 = 0; + i = 0; while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - pc = _i$1; - _1 = (x$1 = p.Inst, ((pc < 0 || pc >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + pc])).Inst.Op; - if ((_1 === (0)) || (_1 === (1))) { - p_A_Other = (x$2 = (x$3 = p.Inst, ((pc < 0 || pc >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + pc])), (x$2.$ptr_Out || (x$2.$ptr_Out = new ptrType$8(function() { return this.$target.Inst.Out; }, function($v) { this.$target.Inst.Out = $v; }, x$2)))); - p_A_Alt = (x$4 = (x$5 = p.Inst, ((pc < 0 || pc >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + pc])), (x$4.$ptr_Arg || (x$4.$ptr_Arg = new ptrType$8(function() { return this.$target.Inst.Arg; }, function($v) { this.$target.Inst.Arg = $v; }, x$4)))); - instAlt = $clone((x$6 = p.Inst, x$7 = p_A_Alt.$get(), ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])), onePassInst); - if (!((instAlt.Inst.Op === 0) || (instAlt.Inst.Op === 1))) { - _tmp = p_A_Other; - _tmp$1 = p_A_Alt; - p_A_Alt = _tmp; - p_A_Other = _tmp$1; - onePassInst.copy(instAlt, (x$8 = p.Inst, x$9 = p_A_Alt.$get(), ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + x$9]))); - if (!((instAlt.Inst.Op === 0) || (instAlt.Inst.Op === 1))) { - _i$1++; - continue; - } - } - instOther = $clone((x$10 = p.Inst, x$11 = p_A_Other.$get(), ((x$11 < 0 || x$11 >= x$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + x$11])), onePassInst); - if ((instOther.Inst.Op === 0) || (instOther.Inst.Op === 1)) { - _i$1++; - continue; - } - p_B_Alt = (x$12 = (x$13 = p.Inst, x$14 = p_A_Alt.$get(), ((x$14 < 0 || x$14 >= x$13.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + x$14])), (x$12.$ptr_Out || (x$12.$ptr_Out = new ptrType$8(function() { return this.$target.Inst.Out; }, function($v) { this.$target.Inst.Out = $v; }, x$12)))); - p_B_Other = (x$15 = (x$16 = p.Inst, x$17 = p_A_Alt.$get(), ((x$17 < 0 || x$17 >= x$16.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$16.$array[x$16.$offset + x$17])), (x$15.$ptr_Arg || (x$15.$ptr_Arg = new ptrType$8(function() { return this.$target.Inst.Arg; }, function($v) { this.$target.Inst.Arg = $v; }, x$15)))); - patch = false; - if (instAlt.Inst.Out === ((pc >>> 0))) { - patch = true; - } else if (instAlt.Inst.Arg === ((pc >>> 0))) { - patch = true; - _tmp$2 = p_B_Other; - _tmp$3 = p_B_Alt; - p_B_Alt = _tmp$2; - p_B_Other = _tmp$3; - } - if (patch) { - p_B_Alt.$set(p_A_Other.$get()); - } - if (p_A_Other.$get() === p_B_Alt.$get()) { - p_A_Alt.$set(p_B_Other.$get()); - } - } else { - _i$1++; - continue; + if (!(i < elem.length)) { break; } + if (!importPathOK(elem.charCodeAt(i))) { + return false; } - _i$1++; + i = i + (1) >> 0; } - return p; - }; - runeSlice.prototype.Len = function Len() { - var p; - p = this; - return p.$length; - }; - $ptrType(runeSlice).prototype.Len = function(...$args) { return this.$get().Len(...$args); }; - runeSlice.prototype.Less = function Less(i, j) { - var i, j, p; - p = this; - return ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]) < ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]); + return true; }; - $ptrType(runeSlice).prototype.Less = function(...$args) { return this.$get().Less(...$args); }; - runeSlice.prototype.Swap = function Swap(i, j) { - var _tmp, _tmp$1, i, j, p; - p = this; - _tmp = ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]); - _tmp$1 = ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]); - ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i] = _tmp); - ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j] = _tmp$1); + importPathOK = function importPathOK$1(c) { + var c, x, x$1, x$2, x$3, x$4; + return !((x = (x$1 = (x$2 = $shiftLeft64(new $Uint64(0, 1), c), new $Uint64(x$2.$high & 67069952, (x$2.$low & 0) >>> 0)), x$3 = (x$4 = $shiftLeft64(new $Uint64(0, 1), ((c - 64 << 24 >>> 24))), new $Uint64(x$4.$high & 1207959550, (x$4.$low & 2281701374) >>> 0)), new $Uint64(x$1.$high | x$3.$high, (x$1.$low | x$3.$low) >>> 0)), (x.$high === 0 && x.$low === 0))); }; - $ptrType(runeSlice).prototype.Swap = function(...$args) { return this.$get().Swap(...$args); }; - makeOnePass = function makeOnePass$1(p) { - var {_i, _r, _ref, check, i, instQueue, m, onePassRunes, p, pc, visitQueue, x, $s, $r, $c} = $restore(this, {p}); + $ptrType(Printer).prototype.Markdown = function Markdown(d) { + var {_i, _ref, d, i, mp, out, p, x, $s, $r, $c} = $restore(this, {d}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = [check]; - instQueue = [instQueue]; - onePassRunes = [onePassRunes]; - p = [p]; - visitQueue = [visitQueue]; - if (p[0].Inst.$length >= 1000) { - $s = -1; return ptrType$2.nil; - } - instQueue[0] = newQueue(p[0].Inst.$length); - visitQueue[0] = newQueue(p[0].Inst.$length); - check[0] = $throwNilPointerError; - onePassRunes[0] = $makeSlice(sliceType$13, p[0].Inst.$length); - check[0] = (function(check, instQueue, onePassRunes, p, visitQueue) { return function makeOnePass·func1(pc, m) { - var {_1, _i, _i$1, _i$2, _i$3, _i$4, _q, _q$1, _q$2, _q$3, _q$4, _r, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _v, i, i$1, i$2, i$3, i$4, inst, m, matchArg, matchOut, ok, pc, r0, r0$1, r1, r1$1, runes, runes$1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {pc, m}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - ok = false; - ok = true; - inst = (x = p[0].Inst, ((pc < 0 || pc >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pc])); - if (visitQueue[0].contains(pc)) { - $s = -1; return ok; - } - visitQueue[0].insert(pc); - _1 = inst.Inst.Op; - /* */ if ((_1 === (0)) || (_1 === (1))) { $s = 2; continue; } - /* */ if ((_1 === (2)) || (_1 === (6))) { $s = 3; continue; } - /* */ if (_1 === (3)) { $s = 4; continue; } - /* */ if ((_1 === (4)) || (_1 === (5))) { $s = 5; continue; } - /* */ if (_1 === (7)) { $s = 6; continue; } - /* */ if (_1 === (8)) { $s = 7; continue; } - /* */ if (_1 === (9)) { $s = 8; continue; } - /* */ if (_1 === (10)) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if ((_1 === (0)) || (_1 === (1))) { */ case 2: - _r = check[0](inst.Inst.Out, m); /* */ $s = 12; case 12: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - if (!(_r)) { _v = false; $s = 11; continue s; } - _r$1 = check[0](inst.Inst.Arg, m); /* */ $s = 13; case 13: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = _r$1; case 11: - ok = _v; - matchOut = (x$1 = inst.Inst.Out, ((x$1 < 0 || x$1 >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + x$1])); - matchArg = (x$2 = inst.Inst.Arg, ((x$2 < 0 || x$2 >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + x$2])); - if (matchOut && matchArg) { - ok = false; - /* break; */ $s = 1; continue; - } - if (matchArg) { - _tmp = inst.Inst.Arg; - _tmp$1 = inst.Inst.Out; - inst.Inst.Out = _tmp; - inst.Inst.Arg = _tmp$1; - _tmp$2 = matchArg; - _tmp$3 = matchOut; - matchOut = _tmp$2; - matchArg = _tmp$3; - } - if (matchOut) { - ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = true); - inst.Inst.Op = 1; - } - _r$2 = mergeRuneSets($indexPtr(onePassRunes[0].$array, onePassRunes[0].$offset + inst.Inst.Out, ptrType$9), $indexPtr(onePassRunes[0].$array, onePassRunes[0].$offset + inst.Inst.Arg, ptrType$9), inst.Inst.Out, inst.Inst.Arg); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple = _r$2; - ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = _tuple[0]); - inst.Next = _tuple[1]; - if (inst.Next.$length > 0 && ((x$3 = inst.Next, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])) === 4294967295)) { - ok = false; - /* break; */ $s = 1; continue; - } - $s = 10; continue; - /* } else if ((_1 === (2)) || (_1 === (6))) { */ case 3: - _r$3 = check[0](inst.Inst.Out, m); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - ok = _r$3; - ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = (x$4 = inst.Inst.Out, ((x$4 < 0 || x$4 >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + x$4]))); - ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = $appendSlice(new sliceType$1([]), (x$5 = inst.Inst.Out, ((x$5 < 0 || x$5 >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + x$5])))); - inst.Next = $makeSlice(sliceType$2, ((_q = ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc]).$length / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0)); - _ref = inst.Next; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - (x$6 = inst.Next, ((i < 0 || i >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + i] = inst.Inst.Out)); - _i++; - } - $s = 10; continue; - /* } else if (_1 === (3)) { */ case 4: - _r$4 = check[0](inst.Inst.Out, m); /* */ $s = 16; case 16: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - ok = _r$4; - ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = (x$7 = inst.Inst.Out, ((x$7 < 0 || x$7 >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + x$7]))); - ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = $appendSlice(new sliceType$1([]), (x$8 = inst.Inst.Out, ((x$8 < 0 || x$8 >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + x$8])))); - inst.Next = $makeSlice(sliceType$2, ((_q$1 = ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc]).$length / 2, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0)); - _ref$1 = inst.Next; - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - i$1 = _i$1; - (x$9 = inst.Next, ((i$1 < 0 || i$1 >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + i$1] = inst.Inst.Out)); - _i$1++; - } - $s = 10; continue; - /* } else if ((_1 === (4)) || (_1 === (5))) { */ case 5: - ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = (inst.Inst.Op === 4)); - $s = 10; continue; - /* } else if (_1 === (7)) { */ case 6: - ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = false); - if (inst.Next.$length > 0) { - /* break; */ $s = 1; continue; - } - instQueue[0].insert(inst.Inst.Out); - if (inst.Inst.Rune.$length === 0) { - ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = new sliceType$1([])); - inst.Next = new sliceType$2([inst.Inst.Out]); - /* break; */ $s = 1; continue; - } - runes = $makeSlice(sliceType$1, 0); - /* */ if ((inst.Inst.Rune.$length === 1) && !((((((inst.Inst.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if ((inst.Inst.Rune.$length === 1) && !((((((inst.Inst.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { */ case 17: - r0 = (x$10 = inst.Inst.Rune, (0 >= x$10.$length ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + 0])); - runes = $append(runes, r0, r0); - r1 = unicode.SimpleFold(r0); - while (true) { - if (!(!((r1 === r0)))) { break; } - runes = $append(runes, r1, r1); - r1 = unicode.SimpleFold(r1); - } - $r = sort.Sort(($convertSliceType(runes, runeSlice))); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 19; continue; - /* } else { */ case 18: - runes = $appendSlice(runes, inst.Inst.Rune); - /* } */ case 19: - ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = runes); - inst.Next = $makeSlice(sliceType$2, ((_q$2 = ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc]).$length / 2, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0)); - _ref$2 = inst.Next; - _i$2 = 0; - while (true) { - if (!(_i$2 < _ref$2.$length)) { break; } - i$2 = _i$2; - (x$11 = inst.Next, ((i$2 < 0 || i$2 >= x$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + i$2] = inst.Inst.Out)); - _i$2++; - } - inst.Inst.Op = 7; - $s = 10; continue; - /* } else if (_1 === (8)) { */ case 7: - ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = false); - if (inst.Next.$length > 0) { - /* break; */ $s = 1; continue; - } - instQueue[0].insert(inst.Inst.Out); - runes$1 = new sliceType$1([]); - /* */ if (!((((((inst.Inst.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if (!((((((inst.Inst.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { */ case 21: - r0$1 = (x$12 = inst.Inst.Rune, (0 >= x$12.$length ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + 0])); - runes$1 = $append(runes$1, r0$1, r0$1); - r1$1 = unicode.SimpleFold(r0$1); - while (true) { - if (!(!((r1$1 === r0$1)))) { break; } - runes$1 = $append(runes$1, r1$1, r1$1); - r1$1 = unicode.SimpleFold(r1$1); - } - $r = sort.Sort(($convertSliceType(runes$1, runeSlice))); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 23; continue; - /* } else { */ case 22: - runes$1 = $append(runes$1, (x$13 = inst.Inst.Rune, (0 >= x$13.$length ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + 0])), (x$14 = inst.Inst.Rune, (0 >= x$14.$length ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + 0]))); - /* } */ case 23: - ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = runes$1); - inst.Next = $makeSlice(sliceType$2, ((_q$3 = ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc]).$length / 2, (_q$3 === _q$3 && _q$3 !== 1/0 && _q$3 !== -1/0) ? _q$3 >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0)); - _ref$3 = inst.Next; - _i$3 = 0; - while (true) { - if (!(_i$3 < _ref$3.$length)) { break; } - i$3 = _i$3; - (x$15 = inst.Next, ((i$3 < 0 || i$3 >= x$15.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$15.$array[x$15.$offset + i$3] = inst.Inst.Out)); - _i$3++; - } - inst.Inst.Op = 7; - $s = 10; continue; - /* } else if (_1 === (9)) { */ case 8: - ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = false); - if (inst.Next.$length > 0) { - /* break; */ $s = 1; continue; - } - instQueue[0].insert(inst.Inst.Out); - ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = $appendSlice(new sliceType$1([]), anyRune)); - inst.Next = new sliceType$2([inst.Inst.Out]); - $s = 10; continue; - /* } else if (_1 === (10)) { */ case 9: - ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = false); - if (inst.Next.$length > 0) { - /* break; */ $s = 1; continue; - } - instQueue[0].insert(inst.Inst.Out); - ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = $appendSlice(new sliceType$1([]), anyRuneNotNL)); - inst.Next = $makeSlice(sliceType$2, ((_q$4 = ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc]).$length / 2, (_q$4 === _q$4 && _q$4 !== 1/0 && _q$4 !== -1/0) ? _q$4 >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0)); - _ref$4 = inst.Next; - _i$4 = 0; - while (true) { - if (!(_i$4 < _ref$4.$length)) { break; } - i$4 = _i$4; - (x$16 = inst.Next, ((i$4 < 0 || i$4 >= x$16.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$16.$array[x$16.$offset + i$4] = inst.Inst.Out)); - _i$4++; - } - /* } */ case 10: - case 1: - $s = -1; return ok; - /* */ } return; } var $f = {$blk: makeOnePass·func1, $c: true, $r, _1, _i, _i$1, _i$2, _i$3, _i$4, _q, _q$1, _q$2, _q$3, _q$4, _r, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _v, i, i$1, i$2, i$3, i$4, inst, m, matchArg, matchOut, ok, pc, r0, r0$1, r1, r1$1, runes, runes$1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; - }; })(check, instQueue, onePassRunes, p, visitQueue); - instQueue[0].clear(); - instQueue[0].insert(((p[0].Start >>> 0))); - m = $makeSlice(sliceType$14, p[0].Inst.$length); + out = [out]; + p = this; + mp = new mdPrinter.ptr(p, strings.Repeat("#", p.headingLevel()) + " ", new bytes.Buffer.ptr(sliceType$1.nil, 0, 0)); + out[0] = new bytes.Buffer.ptr(sliceType$1.nil, 0, 0); + _ref = d.Content; + _i = 0; /* while (true) { */ case 1: - /* if (!(!instQueue[0].empty())) { break; } */ if(!(!instQueue[0].empty())) { $s = 2; continue; } - visitQueue[0].clear(); - pc = instQueue[0].next(); - _r = check[0](pc, m); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - /* */ if (!_r) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!_r) { */ case 3: - p[0] = ptrType$2.nil; - /* break; */ $s = 2; continue; - /* } */ case 4: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (i > 0) { + out[0].WriteByte(10); + } + $r = mp.block(out[0], x); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; $s = 1; continue; case 2: - if (!(p[0] === ptrType$2.nil)) { - _ref = p[0].Inst; - _i = 0; + $s = -1; return out[0].Bytes(); + /* */ } return; } var $f = {$blk: Markdown, $c: true, $r, _i, _ref, d, i, mp, out, p, x, $s};return $f; + }; + $ptrType(mdPrinter).prototype.block = function block$6(out, x) { + var {_i, _i$1, _r, _r$1, _ref, _ref$1, _ref$2, _tuple, blk, i, i$1, id, item, line, loose, md, n, out, p, x, x$1, x$2, x$3, x$4, x$5, $s, $r, $c} = $restore(this, {out, x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _ref = x; + /* */ if ($assertType(_ref, ptrType$2, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$3, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$5, true)[1]) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ($assertType(_ref, ptrType$2, true)[1]) { */ case 1: + x$2 = _ref.$val; + $r = p.text(out, x$2.Text); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + out.WriteString("\n"); + $s = 6; continue; + /* } else if ($assertType(_ref, ptrType$3, true)[1]) { */ case 2: + x$3 = _ref.$val; + out.WriteString(p.headingPrefix); + $r = p.text(out, x$3.Text); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r = p.Printer.headingID(x$3); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + id = _r; + if (!(id === "")) { + out.WriteString(" {#"); + out.WriteString(id); + out.WriteString("}"); + } + out.WriteString("\n"); + $s = 6; continue; + /* } else if ($assertType(_ref, ptrType$4, true)[1]) { */ case 3: + x$4 = _ref.$val; + md = x$4.Text; while (true) { - if (!(_i < _ref.$length)) { break; } + if (!(!(md === ""))) { break; } + line = ""; + _tuple = strings.Cut(md, "\n"); + line = _tuple[0]; + md = _tuple[1]; + if (!(line === "")) { + out.WriteString("\t"); + out.WriteString(line); + } + out.WriteString("\n"); + } + $s = 6; continue; + /* } else if ($assertType(_ref, ptrType$5, true)[1]) { */ case 4: + x$5 = _ref.$val; + loose = x$5.BlankBetween(); + _ref$1 = x$5.Items; + _i = 0; + /* while (true) { */ case 10: + /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 11; continue; } i = _i; - (x = p[0].Inst, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])).Inst.Rune = ((i < 0 || i >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + i]); + item = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + if (i > 0 && loose) { + out.WriteString("\n"); + } + n = item.Number; + if (!(n === "")) { + out.WriteString(" "); + out.WriteString(n); + out.WriteString(". "); + } else { + out.WriteString(" - "); + } + _ref$2 = item.Content; + _i$1 = 0; + /* while (true) { */ case 12: + /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 13; continue; } + i$1 = _i$1; + blk = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); + if (i$1 > 0) { + out.WriteString("\n "); + } + $r = p.text(out, $assertType(blk, ptrType$2).Text); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + out.WriteString("\n"); + _i$1++; + $s = 12; continue; + case 13: _i++; - } - } - $s = -1; return p[0]; - /* */ } return; } var $f = {$blk: makeOnePass$1, $c: true, $r, _i, _r, _ref, check, i, instQueue, m, onePassRunes, p, pc, visitQueue, x, $s};return $f; + $s = 10; continue; + case 11: + $s = 6; continue; + /* } else { */ case 5: + x$1 = _ref; + _r$1 = fmt.Fprintf(out, "?%T", new sliceType$2([x$1])); /* */ $s = 15; case 15: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + /* } */ case 6: + $s = -1; return; + /* */ } return; } var $f = {$blk: block$6, $c: true, $r, _i, _i$1, _r, _r$1, _ref, _ref$1, _ref$2, _tuple, blk, i, i$1, id, item, line, loose, md, n, out, p, x, x$1, x$2, x$3, x$4, x$5, $s};return $f; }; - compileOnePass = function compileOnePass$1(prog) { - var {_1, _i, _r, _ref, inst, opOut, p, prog, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r, $c} = $restore(this, {prog}); + $ptrType(mdPrinter).prototype.text = function text$6(out, x) { + var {_1, _r, i, line, out, p, x, $s, $r, $c} = $restore(this, {out, x}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = ptrType$2.nil; - if (prog.Start === 0) { - p = ptrType$2.nil; - $s = -1; return p; + p = this; + p.raw.Reset(); + $r = p.rawText(p.raw, x); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r = bytes.TrimSpace(p.raw.Bytes()); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + line = _r; + if (line.$length === 0) { + $s = -1; return; } - if (!(((x = prog.Inst, x$1 = prog.Start, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Op === 3)) || !(((((((x$2 = prog.Inst, x$3 = prog.Start, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])).Arg << 24 >>> 24)) & 4) >>> 0) === 4))) { - p = ptrType$2.nil; - $s = -1; return p; + _1 = (0 >= line.$length ? ($throwRuntimeError("index out of range"), undefined) : line.$array[line.$offset + 0]); + if ((_1 === (43)) || (_1 === (45)) || (_1 === (42)) || (_1 === (35))) { + out.WriteByte(92); + } else if ((_1 === (48)) || (_1 === (49)) || (_1 === (50)) || (_1 === (51)) || (_1 === (52)) || (_1 === (53)) || (_1 === (54)) || (_1 === (55)) || (_1 === (56)) || (_1 === (57))) { + i = 1; + while (true) { + if (!(i < line.$length && 48 <= ((i < 0 || i >= line.$length) ? ($throwRuntimeError("index out of range"), undefined) : line.$array[line.$offset + i]) && ((i < 0 || i >= line.$length) ? ($throwRuntimeError("index out of range"), undefined) : line.$array[line.$offset + i]) <= 57)) { break; } + i = i + (1) >> 0; + } + if (i < line.$length && ((((i < 0 || i >= line.$length) ? ($throwRuntimeError("index out of range"), undefined) : line.$array[line.$offset + i]) === 46) || (((i < 0 || i >= line.$length) ? ($throwRuntimeError("index out of range"), undefined) : line.$array[line.$offset + i]) === 41))) { + out.Write($subslice(line, 0, i)); + out.WriteByte(92); + line = $subslice(line, i); + } } - _ref = prog.Inst; + out.Write(line); + $s = -1; return; + /* */ } return; } var $f = {$blk: text$6, $c: true, $r, _1, _r, i, line, out, p, x, $s};return $f; + }; + $ptrType(mdPrinter).prototype.rawText = function rawText(out, x) { + var {_i, _r, _ref, _ref$1, out, p, t, t$1, t$2, t$3, t$4, url, x, $s, $r, $c} = $restore(this, {out, x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _ref = x; _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - inst = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), syntax.Inst); - opOut = (x$4 = prog.Inst, x$5 = inst.Out, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])).Op; - _1 = inst.Op; - if ((_1 === (0)) || (_1 === (1))) { - if ((opOut === 4) || ((x$6 = prog.Inst, x$7 = inst.Arg, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])).Op === 4)) { - p = ptrType$2.nil; - $s = -1; return p; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _ref$1 = t; + /* */ if ($assertType(_ref$1, Plain, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref$1, Italic, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref$1, ptrType$6, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref$1, ptrType$7, true)[1]) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if ($assertType(_ref$1, Plain, true)[1]) { */ case 3: + t$1 = _ref$1.$val; + p.escape(out, (t$1)); + $s = 7; continue; + /* } else if ($assertType(_ref$1, Italic, true)[1]) { */ case 4: + t$2 = _ref$1.$val; + out.WriteString("*"); + p.escape(out, (t$2)); + out.WriteString("*"); + $s = 7; continue; + /* } else if ($assertType(_ref$1, ptrType$6, true)[1]) { */ case 5: + t$3 = _ref$1.$val; + out.WriteString("["); + $r = p.rawText(out, t$3.Text); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + out.WriteString("]("); + out.WriteString(t$3.URL); + out.WriteString(")"); + $s = 7; continue; + /* } else if ($assertType(_ref$1, ptrType$7, true)[1]) { */ case 6: + t$4 = _ref$1.$val; + _r = p.Printer.docLinkURL(t$4); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + url = _r; + if (!(url === "")) { + out.WriteString("["); } - } else if (_1 === (3)) { - if (opOut === 4) { - if (((((inst.Arg << 24 >>> 24)) & 8) >>> 0) === 8) { - _i++; - continue; - } - p = ptrType$2.nil; - $s = -1; return p; + $r = p.rawText(out, t$4.Text); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (!(url === "")) { + out.WriteString("]("); + url = strings.ReplaceAll(url, "(", "%28"); + url = strings.ReplaceAll(url, ")", "%29"); + out.WriteString(url); + out.WriteString(")"); } - } else if (opOut === 4) { - p = ptrType$2.nil; - $s = -1; return p; - } + /* } */ case 7: _i++; - } - p = onePassCopy(prog); - _r = makeOnePass(p); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - p = _r; - if (!(p === ptrType$2.nil)) { - cleanupOnePass(p, prog); - } - p = p; - $s = -1; return p; - /* */ } return; } var $f = {$blk: compileOnePass$1, $c: true, $r, _1, _i, _r, _ref, inst, opOut, p, prog, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s};return $f; - }; - $ptrType(inputs).prototype.newBytes = function newBytes(b) { - var b, i; - i = this; - i.bytes.str = b; - return i.bytes; - }; - $ptrType(inputs).prototype.newString = function newString(s) { - var i, s; - i = this; - i.string.str = s; - return i.string; - }; - $ptrType(inputs).prototype.newReader = function newReader(r) { - var i, r; - i = this; - i.reader.r = r; - i.reader.atEOT = false; - i.reader.pos = 0; - return i.reader; - }; - $ptrType(inputs).prototype.clear = function clear$1() { - var i; - i = this; - if (!(i.bytes.str === sliceType$4.nil)) { - i.bytes.str = sliceType$4.nil; - } else if (!($interfaceIsEqual(i.reader.r, $ifaceNil))) { - i.reader.r = $ifaceNil; - } else { - i.string.str = ""; - } + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: rawText, $c: true, $r, _i, _r, _ref, _ref$1, out, p, t, t$1, t$2, t$3, t$4, url, x, $s};return $f; }; - $ptrType(inputs).prototype.init = function init$2(r, b, s) { - var b, i, r, s; - i = this; - if (!($interfaceIsEqual(r, $ifaceNil))) { - return [i.newReader(r), 0]; - } - if (!(b === sliceType$4.nil)) { - return [i.newBytes(b), b.$length]; + $ptrType(mdPrinter).prototype.escape = function escape(out, s) { + var _1, i, out, p, s, start; + p = this; + start = 0; + i = 0; + while (true) { + if (!(i < s.length)) { break; } + _1 = s.charCodeAt(i); + if (_1 === (10)) { + out.WriteString($substring(s, start, i)); + out.WriteByte(32); + start = i + 1 >> 0; + i = i + (1) >> 0; + continue; + } else if ((_1 === (96)) || (_1 === (95)) || (_1 === (42)) || (_1 === (91)) || (_1 === (60)) || (_1 === (92))) { + out.WriteString($substring(s, start, i)); + out.WriteByte(92); + out.WriteByte(s.charCodeAt(i)); + start = i + 1 >> 0; + } + i = i + (1) >> 0; } - return [i.newString(s), s.length]; + out.WriteString($substring(s, start)); }; - $ptrType(machine).prototype.init = function init$3(ncap) { - var _i, _ref, m, ncap, t; - m = this; - _ref = m.pool; + $ptrType(Printer).prototype.HTML = function HTML(d) { + var {_i, _ref, d, hp, out, p, x, $s, $r, $c} = $restore(this, {d}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + out = [out]; + p = this; + hp = new htmlPrinter.ptr(p, false); + out[0] = new bytes.Buffer.ptr(sliceType$1.nil, 0, 0); + _ref = d.Content; _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - t.cap = $subslice(t.cap, 0, ncap); + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = hp.block(out[0], x); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _i++; - } - m.matchcap = $subslice(m.matchcap, 0, ncap); - }; - $ptrType(machine).prototype.alloc = function alloc(i) { - var i, m, n, t, x, x$1; - m = this; - t = ptrType$4.nil; - n = m.pool.$length; - if (n > 0) { - t = (x = m.pool, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); - m.pool = $subslice(m.pool, 0, (n - 1 >> 0)); - } else { - t = new thread.ptr(ptrType$10.nil, sliceType$7.nil); - t.cap = $makeSlice(sliceType$7, m.matchcap.$length, m.matchcap.$capacity); - } - t.inst = i; - return t; - }; - newLazyFlag = function newLazyFlag$1(r1, r2) { - var r1, r2, x, x$1, x$2; - return ((x = (x$1 = $shiftLeft64((new $Uint64(0, r1)), 32), x$2 = (new $Uint64(0, ((r2 >>> 0)))), new $Uint64(x$1.$high | x$2.$high, (x$1.$low | x$2.$low) >>> 0)), new lazyFlag(x.$high, x.$low))); + $s = 1; continue; + case 2: + $s = -1; return out[0].Bytes(); + /* */ } return; } var $f = {$blk: HTML, $c: true, $r, _i, _ref, d, hp, out, p, x, $s};return $f; }; - lazyFlag.prototype.match = function match(op) { - var f, op, r1, r2; - f = this; - if (op === 0) { - return true; - } - r1 = (($shiftRightUint64(f, 32).$low >> 0)); - if (!((((op & 1) >>> 0) === 0))) { - if (!((r1 === 10)) && r1 >= 0) { - return false; + $ptrType(htmlPrinter).prototype.block = function block$7(out, x) { + var {_i, _i$1, _r, _r$1, _ref, _ref$1, _ref$2, blk, h, id, item, kind, n, next, out, p, x, x$1, x$2, x$3, x$4, x$5, x$6, $s, $r, $c} = $restore(this, {out, x}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _ref = x; + /* */ if ($assertType(_ref, ptrType$2, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$3, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$5, true)[1]) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ($assertType(_ref, ptrType$2, true)[1]) { */ case 1: + x$2 = _ref.$val; + if (!p.tight) { + out.WriteString("

"); } - op = (op & ~(1)) << 24 >>> 24; - } - if (!((((op & 4) >>> 0) === 0))) { - if (r1 >= 0) { - return false; + $r = p.text(out, x$2.Text); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + out.WriteString("\n"); + $s = 6; continue; + /* } else if ($assertType(_ref, ptrType$3, true)[1]) { */ case 2: + x$3 = _ref.$val; + out.WriteString(">> 24; - } - if (op === 0) { - return true; - } - r2 = ((f.$low >> 0)); - if (!((((op & 2) >>> 0) === 0))) { - if (!((r2 === 10)) && r2 >= 0) { - return false; + out.WriteString(">"); + $r = p.text(out, x$3.Text); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + out.WriteString("\n"); + $s = 6; continue; + /* } else if ($assertType(_ref, ptrType$4, true)[1]) { */ case 3: + x$4 = _ref.$val; + out.WriteString("

");
+				p.escape(out, x$4.Text);
+				out.WriteString("
\n"); + $s = 6; continue; + /* } else if ($assertType(_ref, ptrType$5, true)[1]) { */ case 4: + x$5 = _ref.$val; + kind = "ol>\n"; + if ((x$6 = x$5.Items, (0 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + 0])).Number === "") { + kind = "ul>\n"; } - op = (op & ~(2)) << 24 >>> 24; - } - if (!((((op & 8) >>> 0) === 0))) { - if (r2 >= 0) { - return false; + out.WriteString("<"); + out.WriteString(kind); + next = "1"; + _ref$1 = x$5.Items; + _i = 0; + /* while (true) { */ case 10: + /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 11; continue; } + item = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + out.WriteString(""); + p.tight = !x$5.BlankBetween(); + _ref$2 = item.Content; + _i$1 = 0; + /* while (true) { */ case 12: + /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 13; continue; } + blk = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); + $r = p.block(out, blk); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + $s = 12; continue; + case 13: + p.tight = false; + _i++; + $s = 10; continue; + case 11: + out.WriteString("> 0; + while (true) { + if (!(i >= 0)) { break; } + if (((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i]) < 57) { + ((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i] = (((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i]) + (1) << 24 >>> 24)); + return ($bytesToString(b)); } - op = (op & ~(8)) << 24 >>> 24; - } - if (op === 0) { - return true; - } - if (!(syntax.IsWordChar(r1) === syntax.IsWordChar(r2))) { - op = (op & ~(16)) << 24 >>> 24; - } else { - op = (op & ~(32)) << 24 >>> 24; + ((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i] = 48); + i = i - (1) >> 0; } - return op === 0; + return "1" + ($bytesToString(b)); }; - $ptrType(lazyFlag).prototype.match = function(...$args) { return this.$get().match(...$args); }; - $ptrType(machine).prototype.match = function match$1(i, pos) { - var {_i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _v, advance, flag, i, i$1, m, nextq, pos, r, r1, runq, startCond, width, width1, x, x$1, $s, $r, $c} = $restore(this, {i, pos}); + $ptrType(htmlPrinter).prototype.text = function text$7(out, x) { + var {_i, _r, _ref, _ref$1, out, p, t, t$1, t$2, t$3, t$4, url, x, $s, $r, $c} = $restore(this, {out, x}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - flag = [flag]; - m = this; - startCond = m.re.cond; - if (startCond === 255) { - $s = -1; return false; - } - m.matched = false; - _ref = m.matchcap; + p = this; + _ref = x; _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i$1 = _i; - (x = m.matchcap, ((i$1 < 0 || i$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i$1] = -1)); - _i++; - } - _tmp = m.q0; - _tmp$1 = m.q1; - runq = _tmp; - nextq = _tmp$1; - _tmp$2 = -1; - _tmp$3 = -1; - r = _tmp$2; - r1 = _tmp$3; - _tmp$4 = 0; - _tmp$5 = 0; - width = _tmp$4; - width1 = _tmp$5; - _r = i.step(pos); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - r = _tuple[0]; - width = _tuple[1]; - /* */ if (!((r === -1))) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!((r === -1))) { */ case 2: - _r$1 = i.step(pos + width >> 0); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$1 = _r$1; - r1 = _tuple$1[0]; - width1 = _tuple$1[1]; - /* } */ case 3: - flag[0] = new lazyFlag(0, 0); - /* */ if (pos === 0) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (pos === 0) { */ case 5: - flag[0] = newLazyFlag(-1, r); - $s = 7; continue; - /* } else { */ case 6: - _r$2 = i.context(pos); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - flag[0] = _r$2; - /* } */ case 7: - /* while (true) { */ case 9: - /* */ if (runq.dense.$length === 0) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (runq.dense.$length === 0) { */ case 11: - if (!((((startCond & 4) >>> 0) === 0)) && !((pos === 0))) { - /* break; */ $s = 10; continue; - } - if (m.matched) { - /* break; */ $s = 10; continue; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _ref$1 = t; + /* */ if ($assertType(_ref$1, Plain, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref$1, Italic, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref$1, ptrType$6, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref$1, ptrType$7, true)[1]) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if ($assertType(_ref$1, Plain, true)[1]) { */ case 3: + t$1 = _ref$1.$val; + p.escape(out, (t$1)); + $s = 7; continue; + /* } else if ($assertType(_ref$1, Italic, true)[1]) { */ case 4: + t$2 = _ref$1.$val; + out.WriteString(""); + p.escape(out, (t$2)); + out.WriteString(""); + $s = 7; continue; + /* } else if ($assertType(_ref$1, ptrType$6, true)[1]) { */ case 5: + t$3 = _ref$1.$val; + out.WriteString(""); + $r = p.text(out, t$3.Text); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + out.WriteString(""); + $s = 7; continue; + /* } else if ($assertType(_ref$1, ptrType$7, true)[1]) { */ case 6: + t$4 = _ref$1.$val; + _r = p.Printer.docLinkURL(t$4); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + url = _r; + if (!(url === "")) { + out.WriteString(""); } - if (!(m.re.prefix.length > 0 && !((r1 === m.re.prefixRune)))) { _v = false; $s = 15; continue s; } - _r$3 = i.canCheckPrefix(); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _v = _r$3; case 15: - /* */ if (_v) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (_v) { */ case 13: - _r$4 = i.index(m.re, pos); /* */ $s = 17; case 17: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - advance = _r$4; - if (advance < 0) { - /* break; */ $s = 10; continue; - } - pos = pos + (advance) >> 0; - _r$5 = i.step(pos); /* */ $s = 18; case 18: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _tuple$2 = _r$5; - r = _tuple$2[0]; - width = _tuple$2[1]; - _r$6 = i.step(pos + width >> 0); /* */ $s = 19; case 19: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _tuple$3 = _r$6; - r1 = _tuple$3[0]; - width1 = _tuple$3[1]; - /* } */ case 14: - /* } */ case 12: - if (!m.matched) { - if (m.matchcap.$length > 0) { - (x$1 = m.matchcap, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0] = pos)); + $r = p.text(out, t$4.Text); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (!(url === "")) { + out.WriteString(""); } - m.add(runq, ((m.p.Start >>> 0)), pos, m.matchcap, (flag.$ptr || (flag.$ptr = new ptrType$11(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, flag))), ptrType$4.nil); - } - flag[0] = newLazyFlag(r, r1); - m.step(runq, nextq, pos, pos + width >> 0, r, (flag.$ptr || (flag.$ptr = new ptrType$11(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, flag)))); - if (width === 0) { - /* break; */ $s = 10; continue; - } - if ((m.matchcap.$length === 0) && m.matched) { - /* break; */ $s = 10; continue; - } - pos = pos + (width) >> 0; - _tmp$6 = r1; - _tmp$7 = width1; - r = _tmp$6; - width = _tmp$7; - /* */ if (!((r === -1))) { $s = 20; continue; } - /* */ $s = 21; continue; - /* if (!((r === -1))) { */ case 20: - _r$7 = i.step(pos + width >> 0); /* */ $s = 22; case 22: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _tuple$4 = _r$7; - r1 = _tuple$4[0]; - width1 = _tuple$4[1]; - /* } */ case 21: - _tmp$8 = nextq; - _tmp$9 = runq; - runq = _tmp$8; - nextq = _tmp$9; - $s = 9; continue; - case 10: - m.clear(nextq); - $s = -1; return m.matched; - /* */ } return; } var $f = {$blk: match$1, $c: true, $r, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _v, advance, flag, i, i$1, m, nextq, pos, r, r1, runq, startCond, width, width1, x, x$1, $s};return $f; + /* } */ case 7: + _i++; + $s = 1; continue; + case 2: + $s = -1; return; + /* */ } return; } var $f = {$blk: text$7, $c: true, $r, _i, _r, _ref, _ref$1, out, p, t, t$1, t$2, t$3, t$4, url, x, $s};return $f; }; - $ptrType(machine).prototype.clear = function clear$2(q) { - var _i, _ref, d, m, q; - m = this; - _ref = q.dense; - _i = 0; + $ptrType(htmlPrinter).prototype.escape = function escape$1(out, s) { + var _1, i, out, p, s, start; + p = this; + start = 0; + i = 0; while (true) { - if (!(_i < _ref.$length)) { break; } - d = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), entry); - if (!(d.t === ptrType$4.nil)) { - m.pool = $append(m.pool, d.t); + if (!(i < s.length)) { break; } + _1 = s.charCodeAt(i); + if (_1 === (60)) { + out.WriteString($substring(s, start, i)); + out.WriteString("<"); + start = i + 1 >> 0; + } else if (_1 === (38)) { + out.WriteString($substring(s, start, i)); + out.WriteString("&"); + start = i + 1 >> 0; + } else if (_1 === (34)) { + out.WriteString($substring(s, start, i)); + out.WriteString("""); + start = i + 1 >> 0; + } else if (_1 === (39)) { + out.WriteString($substring(s, start, i)); + out.WriteString("'"); + start = i + 1 >> 0; + } else if (_1 === (62)) { + out.WriteString($substring(s, start, i)); + out.WriteString(">"); + start = i + 1 >> 0; } - _i++; + i = i + (1) >> 0; + } + out.WriteString($substring(s, start)); + }; + ptrType$13.methods = [{prop: "block", name: "block", pkg: "go/doc/comment", typ: $funcType([ptrType$12, Block], [], false)}, {prop: "text", name: "text", pkg: "go/doc/comment", typ: $funcType([ptrType$12, $String, sliceType$8], [], false)}, {prop: "oneLongLine", name: "oneLongLine", pkg: "go/doc/comment", typ: $funcType([ptrType$1, sliceType$8], [], false)}]; + ptrType.methods = [{prop: "Text", name: "Text", pkg: "", typ: $funcType([ptrType$9], [sliceType$1], false)}, {prop: "headingLevel", name: "headingLevel", pkg: "go/doc/comment", typ: $funcType([], [$Int], false)}, {prop: "headingID", name: "headingID", pkg: "go/doc/comment", typ: $funcType([ptrType$3], [$String], false)}, {prop: "docLinkURL", name: "docLinkURL", pkg: "go/doc/comment", typ: $funcType([ptrType$7], [$String], false)}, {prop: "Comment", name: "Comment", pkg: "", typ: $funcType([ptrType$9], [sliceType$1], false)}, {prop: "Markdown", name: "Markdown", pkg: "", typ: $funcType([ptrType$9], [sliceType$1], false)}, {prop: "HTML", name: "HTML", pkg: "", typ: $funcType([ptrType$9], [sliceType$1], false)}]; + ptrType$14.methods = [{prop: "block", name: "block", pkg: "go/doc/comment", typ: $funcType([ptrType$12, Block], [], false)}, {prop: "text", name: "text", pkg: "go/doc/comment", typ: $funcType([ptrType$12, $String, sliceType$8], [], false)}, {prop: "indent", name: "indent", pkg: "go/doc/comment", typ: $funcType([ptrType$12, $String, $String], [], false)}]; + ptrType$3.methods = [{prop: "DefaultID", name: "DefaultID", pkg: "", typ: $funcType([], [$String], false)}, {prop: "block", name: "block", pkg: "go/doc/comment", typ: $funcType([], [], false)}]; + ptrType$5.methods = [{prop: "block", name: "block", pkg: "go/doc/comment", typ: $funcType([], [], false)}, {prop: "BlankBefore", name: "BlankBefore", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "BlankBetween", name: "BlankBetween", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$2.methods = [{prop: "block", name: "block", pkg: "go/doc/comment", typ: $funcType([], [], false)}]; + ptrType$4.methods = [{prop: "block", name: "block", pkg: "go/doc/comment", typ: $funcType([], [], false)}]; + Plain.methods = [{prop: "text", name: "text", pkg: "go/doc/comment", typ: $funcType([], [], false)}]; + Italic.methods = [{prop: "text", name: "text", pkg: "go/doc/comment", typ: $funcType([], [], false)}]; + ptrType$6.methods = [{prop: "text", name: "text", pkg: "go/doc/comment", typ: $funcType([], [], false)}]; + ptrType$7.methods = [{prop: "DefaultURL", name: "DefaultURL", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "text", name: "text", pkg: "go/doc/comment", typ: $funcType([], [], false)}]; + ptrType$8.methods = [{prop: "Parse", name: "Parse", pkg: "", typ: $funcType([$String], [ptrType$9], false)}]; + ptrType$15.methods = [{prop: "lookupPkg", name: "lookupPkg", pkg: "go/doc/comment", typ: $funcType([$String], [$String, $Bool], false)}, {prop: "oldHeading", name: "oldHeading", pkg: "go/doc/comment", typ: $funcType([$String], [Block], false)}, {prop: "heading", name: "heading", pkg: "go/doc/comment", typ: $funcType([$String], [Block], false)}, {prop: "code", name: "code", pkg: "go/doc/comment", typ: $funcType([sliceType], [ptrType$4], false)}, {prop: "paragraph", name: "paragraph", pkg: "go/doc/comment", typ: $funcType([sliceType], [Block], false)}, {prop: "list", name: "list", pkg: "go/doc/comment", typ: $funcType([sliceType, $Bool], [ptrType$5], false)}, {prop: "parseLinkedText", name: "parseLinkedText", pkg: "go/doc/comment", typ: $funcType([$String], [sliceType$8], false)}, {prop: "docLink", name: "docLink", pkg: "go/doc/comment", typ: $funcType([$String, $String, $String], [ptrType$7, $Bool], false)}, {prop: "parseText", name: "parseText", pkg: "go/doc/comment", typ: $funcType([sliceType$8, $String, $Bool], [sliceType$8], false)}]; + ptrType$16.methods = [{prop: "block", name: "block", pkg: "go/doc/comment", typ: $funcType([ptrType$12, Block], [], false)}, {prop: "text", name: "text", pkg: "go/doc/comment", typ: $funcType([ptrType$12, sliceType$8], [], false)}, {prop: "rawText", name: "rawText", pkg: "go/doc/comment", typ: $funcType([ptrType$12, sliceType$8], [], false)}, {prop: "escape", name: "escape", pkg: "go/doc/comment", typ: $funcType([ptrType$12, $String], [], false)}]; + ptrType$17.methods = [{prop: "block", name: "block", pkg: "go/doc/comment", typ: $funcType([ptrType$12, Block], [], false)}, {prop: "text", name: "text", pkg: "go/doc/comment", typ: $funcType([ptrType$12, sliceType$8], [], false)}, {prop: "escape", name: "escape", pkg: "go/doc/comment", typ: $funcType([ptrType$12, $String], [], false)}]; + textPrinter.init("go/doc/comment", [{prop: "Printer", name: "Printer", embedded: true, exported: true, typ: ptrType, tag: ""}, {prop: "long$1", name: "long", embedded: false, exported: false, typ: strings.Builder, tag: ""}, {prop: "prefix", name: "prefix", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "codePrefix", name: "codePrefix", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "width", name: "width", embedded: false, exported: false, typ: $Int, tag: ""}]); + Printer.init("", [{prop: "HeadingLevel", name: "HeadingLevel", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "HeadingID", name: "HeadingID", embedded: false, exported: true, typ: funcType, tag: ""}, {prop: "DocLinkURL", name: "DocLinkURL", embedded: false, exported: true, typ: funcType$1, tag: ""}, {prop: "DocLinkBaseURL", name: "DocLinkBaseURL", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "TextPrefix", name: "TextPrefix", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "TextCodePrefix", name: "TextCodePrefix", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "TextWidth", name: "TextWidth", embedded: false, exported: true, typ: $Int, tag: ""}]); + commentPrinter.init("", [{prop: "Printer", name: "Printer", embedded: true, exported: true, typ: ptrType, tag: ""}]); + Doc.init("", [{prop: "Content", name: "Content", embedded: false, exported: true, typ: sliceType$5, tag: ""}, {prop: "Links", name: "Links", embedded: false, exported: true, typ: sliceType$6, tag: ""}]); + LinkDef.init("", [{prop: "Text", name: "Text", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "URL", name: "URL", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Used", name: "Used", embedded: false, exported: true, typ: $Bool, tag: ""}]); + Block.init([{prop: "block", name: "block", pkg: "go/doc/comment", typ: $funcType([], [], false)}]); + Heading.init("", [{prop: "Text", name: "Text", embedded: false, exported: true, typ: sliceType$8, tag: ""}]); + List.init("", [{prop: "Items", name: "Items", embedded: false, exported: true, typ: sliceType$9, tag: ""}, {prop: "ForceBlankBefore", name: "ForceBlankBefore", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "ForceBlankBetween", name: "ForceBlankBetween", embedded: false, exported: true, typ: $Bool, tag: ""}]); + ListItem.init("", [{prop: "Number", name: "Number", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Content", name: "Content", embedded: false, exported: true, typ: sliceType$5, tag: ""}]); + Paragraph.init("", [{prop: "Text", name: "Text", embedded: false, exported: true, typ: sliceType$8, tag: ""}]); + Code.init("", [{prop: "Text", name: "Text", embedded: false, exported: true, typ: $String, tag: ""}]); + Text.init([{prop: "text", name: "text", pkg: "go/doc/comment", typ: $funcType([], [], false)}]); + Link.init("", [{prop: "Auto", name: "Auto", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Text", name: "Text", embedded: false, exported: true, typ: sliceType$8, tag: ""}, {prop: "URL", name: "URL", embedded: false, exported: true, typ: $String, tag: ""}]); + DocLink.init("", [{prop: "Text", name: "Text", embedded: false, exported: true, typ: sliceType$8, tag: ""}, {prop: "ImportPath", name: "ImportPath", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Recv", name: "Recv", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}]); + Parser.init("", [{prop: "Words", name: "Words", embedded: false, exported: true, typ: mapType, tag: ""}, {prop: "LookupPackage", name: "LookupPackage", embedded: false, exported: true, typ: funcType$2, tag: ""}, {prop: "LookupSym", name: "LookupSym", embedded: false, exported: true, typ: funcType$3, tag: ""}]); + parseDoc.init("go/doc/comment", [{prop: "Parser", name: "Parser", embedded: true, exported: true, typ: ptrType$8, tag: ""}, {prop: "Doc", name: "Doc", embedded: true, exported: true, typ: ptrType$9, tag: ""}, {prop: "links", name: "links", embedded: false, exported: false, typ: mapType$1, tag: ""}, {prop: "lines", name: "lines", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "lookupSym", name: "lookupSym", embedded: false, exported: false, typ: funcType$3, tag: ""}]); + span.init("go/doc/comment", [{prop: "start", name: "start", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "end", name: "end", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "kind", name: "kind", embedded: false, exported: false, typ: spanKind, tag: ""}]); + mdPrinter.init("go/doc/comment", [{prop: "Printer", name: "Printer", embedded: true, exported: true, typ: ptrType, tag: ""}, {prop: "headingPrefix", name: "headingPrefix", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "raw", name: "raw", embedded: false, exported: false, typ: bytes.Buffer, tag: ""}]); + htmlPrinter.init("go/doc/comment", [{prop: "Printer", name: "Printer", embedded: true, exported: true, typ: ptrType, tag: ""}, {prop: "tight", name: "tight", embedded: false, exported: false, typ: $Bool, tag: ""}]); + score.init("go/doc/comment", [{prop: "hi", name: "hi", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "lo", name: "lo", embedded: false, exported: false, typ: $Int64, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fmt.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sort.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unicode.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + stdPkgs = new sliceType(["bufio", "bytes", "cmp", "context", "crypto", "embed", "encoding", "errors", "expvar", "flag", "fmt", "hash", "html", "image", "io", "log", "maps", "math", "mime", "net", "os", "path", "plugin", "reflect", "regexp", "runtime", "slices", "sort", "strconv", "strings", "sync", "syscall", "testing", "time", "unicode", "unsafe"]); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["text/tabwriter"] = (function() { + var $pkg = {}, $init, io, utf8, cell, Writer, osError, sliceType, sliceType$1, ptrType, ptrType$1, arrayType, sliceType$2, sliceType$3, ptrType$2, newline, tabs, vbar, hbar, NewWriter; + io = $packages["io"]; + utf8 = $packages["unicode/utf8"]; + cell = $newType(0, $kindStruct, "tabwriter.cell", true, "text/tabwriter", false, function(size_, width_, htab_) { + this.$val = this; + if (arguments.length === 0) { + this.size = 0; + this.width = 0; + this.htab = false; + return; + } + this.size = size_; + this.width = width_; + this.htab = htab_; + }); + Writer = $newType(0, $kindStruct, "tabwriter.Writer", true, "text/tabwriter", true, function(output_, minwidth_, tabwidth_, padding_, padbytes_, flags_, buf_, pos_, cell_, endChar_, lines_, widths_) { + this.$val = this; + if (arguments.length === 0) { + this.output = $ifaceNil; + this.minwidth = 0; + this.tabwidth = 0; + this.padding = 0; + this.padbytes = arrayType.zero(); + this.flags = 0; + this.buf = sliceType.nil; + this.pos = 0; + this.cell = new cell.ptr(0, 0, false); + this.endChar = 0; + this.lines = sliceType$2.nil; + this.widths = sliceType$3.nil; + return; + } + this.output = output_; + this.minwidth = minwidth_; + this.tabwidth = tabwidth_; + this.padding = padding_; + this.padbytes = padbytes_; + this.flags = flags_; + this.buf = buf_; + this.pos = pos_; + this.cell = cell_; + this.endChar = endChar_; + this.lines = lines_; + this.widths = widths_; + }); + osError = $newType(0, $kindStruct, "tabwriter.osError", true, "text/tabwriter", false, function(err_) { + this.$val = this; + if (arguments.length === 0) { + this.err = $ifaceNil; + return; + } + this.err = err_; + }); + $pkg.cell = cell; + $pkg.Writer = Writer; + $pkg.osError = osError; + $pkg.$finishSetup = function() { + sliceType = $sliceType($Uint8); + sliceType$1 = $sliceType(cell); + ptrType = $ptrType(sliceType$1); + ptrType$1 = $ptrType($error); + arrayType = $arrayType($Uint8, 8); + sliceType$2 = $sliceType(sliceType$1); + sliceType$3 = $sliceType($Int); + ptrType$2 = $ptrType(Writer); + $ptrType(Writer).prototype.addLine = function addLine(flushed) { + var b, flushed, n, n$1, prev, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + b = this; + n = b.lines.$length + 1 >> 0; + if (n <= b.lines.$capacity) { + b.lines = $subslice(b.lines, 0, n); + (x$2 = b.lines, x$3 = n - 1 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3] = $subslice((x = b.lines, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])), 0, 0))); + } else { + b.lines = $append(b.lines, sliceType$1.nil); } - q.dense = $subslice(q.dense, 0, 0); - }; - $ptrType(machine).prototype.step = function step$3(runq, nextq, pos, nextPos, c, nextCond) { - var _1, _i, _ref, add, c, d, d$1, i, j, longest, m, nextCond, nextPos, nextq, pos, runq, t, x, x$1, x$2, x$3, x$4, x$5; - m = this; - longest = m.re.longest; - j = 0; - while (true) { - if (!(j < runq.dense.$length)) { break; } - d = (x = runq.dense, ((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + j])); - t = d.t; - if (t === ptrType$4.nil) { - j = j + (1) >> 0; - continue; - } - if (longest && m.matched && t.cap.$length > 0 && (x$1 = m.matchcap, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])) < (x$2 = t.cap, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0]))) { - m.pool = $append(m.pool, t); - j = j + (1) >> 0; - continue; - } - i = t.inst; - add = false; - _1 = i.Op; - if (_1 === (4)) { - if (t.cap.$length > 0 && (!longest || !m.matched || (x$3 = m.matchcap, (1 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 1])) < pos)) { - (x$4 = t.cap, (1 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 1] = pos)); - $copySlice(m.matchcap, t.cap); - } - if (!longest) { - _ref = $subslice(runq.dense, (j + 1 >> 0)); - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - d$1 = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), entry); - if (!(d$1.t === ptrType$4.nil)) { - m.pool = $append(m.pool, d$1.t); - } - _i++; - } - runq.dense = $subslice(runq.dense, 0, 0); + if (!flushed) { + n$1 = b.lines.$length; + if (n$1 >= 2) { + prev = (x$4 = b.lines, x$5 = n$1 - 2 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])).$length; + if (prev > (x$6 = b.lines, x$7 = n$1 - 1 >> 0, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])).$capacity) { + (x$8 = b.lines, x$9 = n$1 - 1 >> 0, ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + x$9] = $makeSlice(sliceType$1, 0, prev))); } - m.matched = true; - } else if (_1 === (7)) { - add = i.MatchRune(c); - } else if (_1 === (8)) { - add = c === (x$5 = i.Rune, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0])); - } else if (_1 === (9)) { - add = true; - } else if (_1 === (10)) { - add = !((c === 10)); - } else { - $panic(new $String("bad inst")); - } - if (add) { - t = m.add(nextq, i.Out, nextPos, t.cap, nextCond, t); } - if (!(t === ptrType$4.nil)) { - m.pool = $append(m.pool, t); - } - j = j + (1) >> 0; - } - runq.dense = $subslice(runq.dense, 0, 0); - }; - $ptrType(machine).prototype.add = function add(q, pc, pos, cap, cond, t) { - var _1, cap, cond, d, i, j, j$1, m, opos, pc, pos, q, t, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, $s; - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - m = this; - /* Again: */ case 1: - if (pc === 0) { - $s = -1; return t; - } - j = (x = q.sparse, ((pc < 0 || pc >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pc])); - if (j < ((q.dense.$length >>> 0)) && ((x$1 = q.dense, ((j < 0 || j >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + j])).pc === pc)) { - $s = -1; return t; - } - j$1 = q.dense.$length; - q.dense = $subslice(q.dense, 0, (j$1 + 1 >> 0)); - d = (x$2 = q.dense, ((j$1 < 0 || j$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + j$1])); - d.t = ptrType$4.nil; - d.pc = pc; - (x$3 = q.sparse, ((pc < 0 || pc >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + pc] = ((j$1 >>> 0)))); - i = (x$4 = m.p.Inst, ((pc < 0 || pc >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + pc])); - _1 = i.Op; - /* */ if (_1 === (5)) { $s = 3; continue; } - /* */ if ((_1 === (0)) || (_1 === (1))) { $s = 4; continue; } - /* */ if (_1 === (3)) { $s = 5; continue; } - /* */ if (_1 === (6)) { $s = 6; continue; } - /* */ if (_1 === (2)) { $s = 7; continue; } - /* */ if ((_1 === (4)) || (_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10))) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (_1 === (5)) { */ case 3: - $s = 10; continue; - /* } else if ((_1 === (0)) || (_1 === (1))) { */ case 4: - t = m.add(q, i.Out, pos, cap, cond, t); - pc = i.Arg; - /* goto Again */ $s = 1; continue; - $s = 10; continue; - /* } else if (_1 === (3)) { */ case 5: - /* */ if (cond.match(((i.Arg << 24 >>> 24)))) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (cond.match(((i.Arg << 24 >>> 24)))) { */ case 11: - pc = i.Out; - /* goto Again */ $s = 1; continue; - /* } */ case 12: - $s = 10; continue; - /* } else if (_1 === (6)) { */ case 6: - pc = i.Out; - /* goto Again */ $s = 1; continue; - $s = 10; continue; - /* } else if (_1 === (2)) { */ case 7: - /* */ if (((i.Arg >> 0)) < cap.$length) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (((i.Arg >> 0)) < cap.$length) { */ case 13: - opos = (x$5 = i.Arg, ((x$5 < 0 || x$5 >= cap.$length) ? ($throwRuntimeError("index out of range"), undefined) : cap.$array[cap.$offset + x$5])); - (x$6 = i.Arg, ((x$6 < 0 || x$6 >= cap.$length) ? ($throwRuntimeError("index out of range"), undefined) : cap.$array[cap.$offset + x$6] = pos)); - m.add(q, i.Out, pos, cap, cond, ptrType$4.nil); - (x$7 = i.Arg, ((x$7 < 0 || x$7 >= cap.$length) ? ($throwRuntimeError("index out of range"), undefined) : cap.$array[cap.$offset + x$7] = opos)); - $s = 15; continue; - /* } else { */ case 14: - pc = i.Out; - /* goto Again */ $s = 1; continue; - /* } */ case 15: - $s = 10; continue; - /* } else if ((_1 === (4)) || (_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10))) { */ case 8: - if (t === ptrType$4.nil) { - t = m.alloc(i); - } else { - t.inst = i; - } - if (cap.$length > 0 && !((x$8 = t.cap, $indexPtr(x$8.$array, x$8.$offset + 0, ptrType$7)) === $indexPtr(cap.$array, cap.$offset + 0, ptrType$7))) { - $copySlice(t.cap, cap); - } - d.t = t; - t = ptrType$4.nil; - $s = 10; continue; - /* } else { */ case 9: - $panic(new $String("unhandled")); - /* } */ case 10: - case 2: - $s = -1; return t; - /* */ } return; } - }; - newOnePassMachine = function newOnePassMachine$1() { - var {_r, _tuple, m, ok, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = onePassPool.Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = $assertType(_r, ptrType$12, true); - m = _tuple[0]; - ok = _tuple[1]; - if (!ok) { - m = new onePassMachine.ptr(new inputs.ptr(new inputBytes.ptr(sliceType$4.nil), new inputString.ptr(""), new inputReader.ptr($ifaceNil, false, 0)), sliceType$7.nil); } - $s = -1; return m; - /* */ } return; } var $f = {$blk: newOnePassMachine$1, $c: true, $r, _r, _tuple, m, ok, $s};return $f; }; - freeOnePassMachine = function freeOnePassMachine$1(m) { - var m; - m.inputs.clear(); - onePassPool.Put(m); + $ptrType(Writer).prototype.reset = function reset() { + var b; + b = this; + b.buf = $subslice(b.buf, 0, 0); + b.pos = 0; + cell.copy(b.cell, new cell.ptr(0, 0, false)); + b.endChar = 0; + b.lines = $subslice(b.lines, 0, 0); + b.widths = $subslice(b.widths, 0, 0); + b.addLine(true); }; - $ptrType(Regexp).prototype.doOnePass = function doOnePass(ir, ib, is, pos, ncap, dstCap) { - var {_1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _v, dstCap, flag, i, i$1, ib, inst, ir, is, m, matched, ncap, pc, pos, r, r1, re, startCond, width, width1, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r, $c} = $restore(this, {ir, ib, is, pos, ncap, dstCap}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - re = this; - startCond = re.cond; - if (startCond === 255) { - $s = -1; return sliceType$7.nil; - } - _r = newOnePassMachine(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - m = _r; - if (m.matchcap.$capacity < ncap) { - m.matchcap = $makeSlice(sliceType$7, ncap); - } else { - m.matchcap = $subslice(m.matchcap, 0, ncap); + $ptrType(Writer).prototype.Init = function Init(output, minwidth, tabwidth, padding, padchar, flags) { + var _i, _ref, b, flags, i, minwidth, output, padchar, padding, tabwidth, x; + b = this; + if (minwidth < 0 || tabwidth < 0 || padding < 0) { + $panic(new $String("negative minwidth, tabwidth, or padding")); } - matched = false; - _ref = m.matchcap; + b.output = output; + b.minwidth = minwidth; + b.tabwidth = tabwidth; + b.padding = padding; + _ref = b.padbytes; _i = 0; while (true) { - if (!(_i < _ref.$length)) { break; } + if (!(_i < 8)) { break; } i = _i; - (x = m.matchcap, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i] = -1)); + (x = b.padbytes, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i] = padchar)); _i++; } - _tuple = m.inputs.init(ir, ib, is); - i$1 = _tuple[0]; - _tmp = -1; - _tmp$1 = -1; - r = _tmp; - r1 = _tmp$1; - _tmp$2 = 0; - _tmp$3 = 0; - width = _tmp$2; - width1 = _tmp$3; - _r$1 = i$1.step(pos); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$1 = _r$1; - r = _tuple$1[0]; - width = _tuple$1[1]; - /* */ if (!((r === -1))) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!((r === -1))) { */ case 3: - _r$2 = i$1.step(pos + width >> 0); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple$2 = _r$2; - r1 = _tuple$2[0]; - width1 = _tuple$2[1]; - /* } */ case 4: - flag = new lazyFlag(0, 0); - /* */ if (pos === 0) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (pos === 0) { */ case 6: - flag = newLazyFlag(-1, r); - $s = 8; continue; - /* } else { */ case 7: - _r$3 = i$1.context(pos); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - flag = _r$3; - /* } */ case 8: - pc = re.onepass.Start; - inst = (x$1 = re.onepass.Inst, ((pc < 0 || pc >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + pc])); - if (!((pos === 0) && flag.match(((inst.Inst.Arg << 24 >>> 24))) && re.prefix.length > 0)) { _v = false; $s = 12; continue s; } - _r$4 = i$1.canCheckPrefix(); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _v = _r$4; case 12: - /* */ if (_v) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (_v) { */ case 10: - _r$5 = i$1.hasPrefix(re); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* */ if (!_r$5) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (!_r$5) { */ case 14: - /* goto Return */ $s = 17; continue; - /* } */ case 15: - pos = pos + (re.prefix.length) >> 0; - _r$6 = i$1.step(pos); /* */ $s = 18; case 18: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _tuple$3 = _r$6; - r = _tuple$3[0]; - width = _tuple$3[1]; - _r$7 = i$1.step(pos + width >> 0); /* */ $s = 19; case 19: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _tuple$4 = _r$7; - r1 = _tuple$4[0]; - width1 = _tuple$4[1]; - _r$8 = i$1.context(pos); /* */ $s = 20; case 20: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - flag = _r$8; - pc = ((re.prefixEnd >> 0)); - /* } */ case 11: - /* while (true) { */ case 21: - inst = (x$2 = re.onepass.Inst, ((pc < 0 || pc >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + pc])); - pc = ((inst.Inst.Out >> 0)); - _1 = inst.Inst.Op; - /* */ if (_1 === (4)) { $s = 24; continue; } - /* */ if (_1 === (7)) { $s = 25; continue; } - /* */ if (_1 === (8)) { $s = 26; continue; } - /* */ if (_1 === (9)) { $s = 27; continue; } - /* */ if (_1 === (10)) { $s = 28; continue; } - /* */ if ((_1 === (0)) || (_1 === (1))) { $s = 29; continue; } - /* */ if (_1 === (5)) { $s = 30; continue; } - /* */ if (_1 === (6)) { $s = 31; continue; } - /* */ if (_1 === (3)) { $s = 32; continue; } - /* */ if (_1 === (2)) { $s = 33; continue; } - /* */ $s = 34; continue; - /* if (_1 === (4)) { */ case 24: - matched = true; - if (m.matchcap.$length > 0) { - (x$3 = m.matchcap, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0] = 0)); - (x$4 = m.matchcap, (1 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 1] = pos)); - } - /* goto Return */ $s = 17; continue; - $s = 35; continue; - /* } else if (_1 === (7)) { */ case 25: - /* */ if (!inst.Inst.MatchRune(r)) { $s = 36; continue; } - /* */ $s = 37; continue; - /* if (!inst.Inst.MatchRune(r)) { */ case 36: - /* goto Return */ $s = 17; continue; - /* } */ case 37: - $s = 35; continue; - /* } else if (_1 === (8)) { */ case 26: - /* */ if (!((r === (x$5 = inst.Inst.Rune, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0]))))) { $s = 38; continue; } - /* */ $s = 39; continue; - /* if (!((r === (x$5 = inst.Inst.Rune, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0]))))) { */ case 38: - /* goto Return */ $s = 17; continue; - /* } */ case 39: - $s = 35; continue; - /* } else if (_1 === (9)) { */ case 27: - $s = 35; continue; - /* } else if (_1 === (10)) { */ case 28: - /* */ if (r === 10) { $s = 40; continue; } - /* */ $s = 41; continue; - /* if (r === 10) { */ case 40: - /* goto Return */ $s = 17; continue; - /* } */ case 41: - $s = 35; continue; - /* } else if ((_1 === (0)) || (_1 === (1))) { */ case 29: - pc = ((onePassNext(inst, r) >> 0)); - /* continue; */ $s = 21; continue; - $s = 35; continue; - /* } else if (_1 === (5)) { */ case 30: - /* goto Return */ $s = 17; continue; - $s = 35; continue; - /* } else if (_1 === (6)) { */ case 31: - /* continue; */ $s = 21; continue; - $s = 35; continue; - /* } else if (_1 === (3)) { */ case 32: - /* */ if (!flag.match(((inst.Inst.Arg << 24 >>> 24)))) { $s = 42; continue; } - /* */ $s = 43; continue; - /* if (!flag.match(((inst.Inst.Arg << 24 >>> 24)))) { */ case 42: - /* goto Return */ $s = 17; continue; - /* } */ case 43: - /* continue; */ $s = 21; continue; - $s = 35; continue; - /* } else if (_1 === (2)) { */ case 33: - if (((inst.Inst.Arg >> 0)) < m.matchcap.$length) { - (x$6 = m.matchcap, x$7 = inst.Inst.Arg, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7] = pos)); - } - /* continue; */ $s = 21; continue; - $s = 35; continue; - /* } else { */ case 34: - $panic(new $String("bad inst")); - /* } */ case 35: - case 23: - if (width === 0) { - /* break; */ $s = 22; continue; - } - flag = newLazyFlag(r, r1); - pos = pos + (width) >> 0; - _tmp$4 = r1; - _tmp$5 = width1; - r = _tmp$4; - width = _tmp$5; - /* */ if (!((r === -1))) { $s = 44; continue; } - /* */ $s = 45; continue; - /* if (!((r === -1))) { */ case 44: - _r$9 = i$1.step(pos + width >> 0); /* */ $s = 46; case 46: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _tuple$5 = _r$9; - r1 = _tuple$5[0]; - width1 = _tuple$5[1]; - /* } */ case 45: - $s = 21; continue; - case 22: - /* Return: */ case 17: - if (!matched) { - freeOnePassMachine(m); - $s = -1; return sliceType$7.nil; + if (padchar === 9) { + flags = (flags & ~(4)) >>> 0; } - dstCap = $appendSlice(dstCap, m.matchcap); - freeOnePassMachine(m); - $s = -1; return dstCap; - /* */ } return; } var $f = {$blk: doOnePass, $c: true, $r, _1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _v, dstCap, flag, i, i$1, ib, inst, ir, is, m, matched, ncap, pc, pos, r, r1, re, startCond, width, width1, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s};return $f; - }; - $ptrType(Regexp).prototype.doMatch = function doMatch(r, b, s) { - var {$24r, _r, b, r, re, s, $s, $r, $c} = $restore(this, {r, b, s}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - re = this; - _r = re.doExecute(r, b, s, 0, 0, sliceType$7.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = !(_r === sliceType$7.nil); - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: doMatch, $c: true, $r, $24r, _r, b, r, re, s, $s};return $f; + b.flags = flags; + b.reset(); + return b; }; - $ptrType(Regexp).prototype.doExecute = function doExecute(r, b, s, pos, ncap, dstCap) { - var {$24r, $24r$1, _r, _r$1, _r$2, _r$3, _tuple, b, dstCap, i, m, ncap, pos, r, re, s, $s, $r, $c} = $restore(this, {r, b, s, pos, ncap, dstCap}); + $ptrType(Writer).prototype.write0 = function write0(buf) { + var {_r, _tuple, b, buf, err, n, x, $s, $r, $c} = $restore(this, {buf}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - re = this; - if (dstCap === sliceType$7.nil) { - dstCap = $subslice(new sliceType$7(arrayNoInts), 0, 0, 0); + b = this; + _r = b.output.Write(buf); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err = _tuple[1]; + if (!((n === buf.$length)) && $interfaceIsEqual(err, $ifaceNil)) { + err = io.ErrShortWrite; } - if ($interfaceIsEqual(r, $ifaceNil) && (b.$length + s.length >> 0) < re.minInputLen) { - $s = -1; return sliceType$7.nil; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $panic((x = new osError.ptr(err), new x.constructor.elem(x))); } - /* */ if (!(re.onepass === ptrType$2.nil)) { $s = 1; continue; } + $s = -1; return; + /* */ } return; } var $f = {$blk: write0, $c: true, $r, _r, _tuple, b, buf, err, n, x, $s};return $f; + }; + $ptrType(Writer).prototype.writeN = function writeN(src, n) { + var {b, n, src, $s, $r, $c} = $restore(this, {src, n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + b = this; + /* while (true) { */ case 1: + /* if (!(n > src.$length)) { break; } */ if(!(n > src.$length)) { $s = 2; continue; } + $r = b.write0(src); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + n = n - (src.$length) >> 0; + $s = 1; continue; + case 2: + $r = b.write0($subslice(src, 0, n)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: writeN, $c: true, $r, b, n, src, $s};return $f; + }; + $ptrType(Writer).prototype.writePadding = function writePadding(textw, cellw, useTabs) { + var {_q, _q$1, b, cellw, n, textw, useTabs, $s, $r, $c} = $restore(this, {textw, cellw, useTabs}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + b = this; + /* */ if ((b.padbytes[0] === 9) || useTabs) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (!(re.onepass === ptrType$2.nil)) { */ case 1: - _r = re.doOnePass(r, b, s, pos, ncap, dstCap); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = _r; - $s = 4; case 4: return $24r; + /* if ((b.padbytes[0] === 9) || useTabs) { */ case 1: + if (b.tabwidth === 0) { + $s = -1; return; + } + cellw = $imul((_q = (((cellw + b.tabwidth >> 0) - 1 >> 0)) / b.tabwidth, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), b.tabwidth); + n = cellw - textw >> 0; + if (n < 0) { + $panic(new $String("internal error")); + } + $r = b.writeN(tabs, (_q$1 = (((n + b.tabwidth >> 0) - 1 >> 0)) / b.tabwidth, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; /* } */ case 2: - /* */ if ($interfaceIsEqual(r, $ifaceNil) && (b.$length + s.length >> 0) < re.maxBitStateLen) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if ($interfaceIsEqual(r, $ifaceNil) && (b.$length + s.length >> 0) < re.maxBitStateLen) { */ case 5: - _r$1 = re.backtrack(b, s, pos, ncap, dstCap); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r$1 = _r$1; - $s = 8; case 8: return $24r$1; - /* } */ case 6: - _r$2 = re.get(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - m = _r$2; - _tuple = m.inputs.init(r, b, s); - i = _tuple[0]; - m.init(ncap); - _r$3 = m.match(i, pos); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (!_r$3) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (!_r$3) { */ case 10: - re.put(m); - $s = -1; return sliceType$7.nil; - /* } */ case 11: - dstCap = $appendSlice(dstCap, m.matchcap); - re.put(m); - $s = -1; return dstCap; - /* */ } return; } var $f = {$blk: doExecute, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _r$3, _tuple, b, dstCap, i, m, ncap, pos, r, re, s, $s};return $f; + $r = b.writeN($subslice(new sliceType(b.padbytes), 0), cellw - textw >> 0); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: writePadding, $c: true, $r, _q, _q$1, b, cellw, n, textw, useTabs, $s};return $f; + }; + $ptrType(Writer).prototype.writeLines = function writeLines(pos0, line0, line1) { + var {_i, _ref, b, c, i, j, line, line0, line1, pos, pos0, useTabs, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {pos0, line0, line1}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + pos = 0; + b = this; + pos = pos0; + i = line0; + /* while (true) { */ case 1: + /* if (!(i < line1)) { break; } */ if(!(i < line1)) { $s = 2; continue; } + line = (x = b.lines, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + useTabs = !((((b.flags & 16) >>> 0) === 0)); + _ref = line; + _i = 0; + /* while (true) { */ case 3: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } + j = _i; + c = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), cell); + /* */ if (j > 0 && !((((b.flags & 32) >>> 0) === 0))) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (j > 0 && !((((b.flags & 32) >>> 0) === 0))) { */ case 5: + $r = b.write0(vbar); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + /* */ if (c.size === 0) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (c.size === 0) { */ case 8: + /* */ if (j < b.widths.$length) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (j < b.widths.$length) { */ case 11: + $r = b.writePadding(c.width, (x$1 = b.widths, ((j < 0 || j >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + j])), useTabs); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 12: + $s = 10; continue; + /* } else { */ case 9: + useTabs = false; + /* */ if (((b.flags & 4) >>> 0) === 0) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (((b.flags & 4) >>> 0) === 0) { */ case 14: + $r = b.write0($subslice(b.buf, pos, (pos + c.size >> 0))); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + pos = pos + (c.size) >> 0; + /* */ if (j < b.widths.$length) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (j < b.widths.$length) { */ case 18: + $r = b.writePadding(c.width, (x$2 = b.widths, ((j < 0 || j >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + j])), false); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 19: + $s = 16; continue; + /* } else { */ case 15: + /* */ if (j < b.widths.$length) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (j < b.widths.$length) { */ case 21: + $r = b.writePadding(c.width, (x$3 = b.widths, ((j < 0 || j >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + j])), false); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 22: + $r = b.write0($subslice(b.buf, pos, (pos + c.size >> 0))); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + pos = pos + (c.size) >> 0; + /* } */ case 16: + /* } */ case 10: + _i++; + $s = 3; continue; + case 4: + /* */ if ((i + 1 >> 0) === b.lines.$length) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if ((i + 1 >> 0) === b.lines.$length) { */ case 25: + $r = b.write0($subslice(b.buf, pos, (pos + b.cell.size >> 0))); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + pos = pos + (b.cell.size) >> 0; + $s = 27; continue; + /* } else { */ case 26: + $r = b.write0(newline); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 27: + i = i + (1) >> 0; + $s = 1; continue; + case 2: + $s = -1; return pos; + /* */ } return; } var $f = {$blk: writeLines, $c: true, $r, _i, _ref, b, c, i, j, line, line0, line1, pos, pos0, useTabs, x, x$1, x$2, x$3, $s};return $f; }; - newBitState = function newBitState$1() { - var {_r, _tuple, b, ok, $s, $r, $c} = $restore(this, {}); + $ptrType(Writer).prototype.format = function format(pos0, line0, line1) { + var {$24r, _r, _r$1, _r$2, b, c, column, discardable, line, line0, line1, pos, pos0, this$1, w, width, x, x$1, $s, $r, $c} = $restore(this, {pos0, line0, line1}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r = bitStatePool.Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = $assertType(_r, ptrType$13, true); - b = _tuple[0]; - ok = _tuple[1]; - if (!ok) { - b = new bitState.ptr(0, sliceType$7.nil, sliceType$7.nil, sliceType$15.nil, sliceType$2.nil, new inputs.ptr(new inputBytes.ptr(sliceType$4.nil), new inputString.ptr(""), new inputReader.ptr($ifaceNil, false, 0))); - } - $s = -1; return b; - /* */ } return; } var $f = {$blk: newBitState$1, $c: true, $r, _r, _tuple, b, ok, $s};return $f; + pos = 0; + b = this; + pos = pos0; + column = b.widths.$length; + this$1 = line0; + /* while (true) { */ case 1: + /* if (!(this$1 < line1)) { break; } */ if(!(this$1 < line1)) { $s = 2; continue; } + line = (x = b.lines, ((this$1 < 0 || this$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + this$1])); + if (column >= (line.$length - 1 >> 0)) { + this$1 = this$1 + (1) >> 0; + /* continue; */ $s = 1; continue; + } + _r = b.writeLines(pos, line0, this$1); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + pos = _r; + line0 = this$1; + width = b.minwidth; + discardable = true; + while (true) { + if (!(this$1 < line1)) { break; } + line = (x$1 = b.lines, ((this$1 < 0 || this$1 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + this$1])); + if (column >= (line.$length - 1 >> 0)) { + break; + } + c = $clone(((column < 0 || column >= line.$length) ? ($throwRuntimeError("index out of range"), undefined) : line.$array[line.$offset + column]), cell); + w = c.width + b.padding >> 0; + if (w > width) { + width = w; + } + if (c.width > 0 || c.htab) { + discardable = false; + } + this$1 = this$1 + (1) >> 0; + } + if (discardable && !((((b.flags & 8) >>> 0) === 0))) { + width = 0; + } + b.widths = $append(b.widths, width); + _r$1 = b.format(pos, line0, this$1); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + pos = _r$1; + b.widths = $subslice(b.widths, 0, (b.widths.$length - 1 >> 0)); + line0 = this$1; + this$1 = this$1 + (1) >> 0; + $s = 1; continue; + case 2: + _r$2 = b.writeLines(pos, line0, line1); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + pos = _r$2; + $24r = pos; + $s = 6; case 6: return $24r; + /* */ } return; } var $f = {$blk: format, $c: true, $r, $24r, _r, _r$1, _r$2, b, c, column, discardable, line, line0, line1, pos, pos0, this$1, w, width, x, x$1, $s};return $f; }; - freeBitState = function freeBitState$1(b) { + $ptrType(Writer).prototype.append = function append(text) { + var b, text; + b = this; + b.buf = $appendSlice(b.buf, text); + b.cell.size = b.cell.size + (text.$length) >> 0; + }; + $ptrType(Writer).prototype.updateWidth = function updateWidth() { var b; - b.inputs.clear(); - bitStatePool.Put(b); + b = this; + b.cell.width = b.cell.width + (utf8.RuneCount($subslice(b.buf, b.pos))) >> 0; + b.pos = b.buf.$length; }; - maxBitStateLen = function maxBitStateLen$1(prog) { - var _q, prog; - if (!shouldBacktrack(prog)) { - return 0; + $ptrType(Writer).prototype.startEscape = function startEscape(ch) { + var _1, b, ch; + b = this; + _1 = ch; + if (_1 === (255)) { + b.endChar = 255; + } else if (_1 === (60)) { + b.endChar = 62; + } else if (_1 === (38)) { + b.endChar = 59; } - return (_q = 262144 / prog.Inst.$length, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); - }; - shouldBacktrack = function shouldBacktrack$1(prog) { - var prog; - return prog.Inst.$length <= 500; }; - $ptrType(bitState).prototype.reset = function reset(prog, end, ncap) { - var _i, _i$1, _i$2, _q, _ref, _ref$1, _ref$2, b, end, i, i$1, i$2, ncap, prog, visitedSize, x, x$1, x$2; + $ptrType(Writer).prototype.endEscape = function endEscape() { + var _1, b; b = this; - b.end = end; - if (b.jobs.$capacity === 0) { - b.jobs = $makeSlice(sliceType$15, 0, 256); - } else { - b.jobs = $subslice(b.jobs, 0, 0); - } - visitedSize = (_q = (((($imul(prog.Inst.$length, ((end + 1 >> 0)))) + 32 >> 0) - 1 >> 0)) / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); - if (b.visited.$capacity < visitedSize) { - b.visited = $makeSlice(sliceType$2, visitedSize, 8192); - } else { - b.visited = $subslice(b.visited, 0, visitedSize); - _ref = b.visited; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - (x = b.visited, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i] = 0)); - _i++; + _1 = b.endChar; + if (_1 === (255)) { + b.updateWidth(); + if (((b.flags & 2) >>> 0) === 0) { + b.cell.width = b.cell.width - (2) >> 0; } + } else if (_1 === (62)) { + } else if (_1 === (59)) { + b.cell.width = b.cell.width + (1) >> 0; } - if (b.cap.$capacity < ncap) { - b.cap = $makeSlice(sliceType$7, ncap); - } else { - b.cap = $subslice(b.cap, 0, ncap); - } - _ref$1 = b.cap; - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - i$1 = _i$1; - (x$1 = b.cap, ((i$1 < 0 || i$1 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$1] = -1)); - _i$1++; - } - if (b.matchcap.$capacity < ncap) { - b.matchcap = $makeSlice(sliceType$7, ncap); - } else { - b.matchcap = $subslice(b.matchcap, 0, ncap); - } - _ref$2 = b.matchcap; - _i$2 = 0; - while (true) { - if (!(_i$2 < _ref$2.$length)) { break; } - i$2 = _i$2; - (x$2 = b.matchcap, ((i$2 < 0 || i$2 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$2] = -1)); - _i$2++; - } + b.pos = b.buf.$length; + b.endChar = 0; }; - $ptrType(bitState).prototype.shouldVisit = function shouldVisit(pc, pos) { - var _index, _q, _q$1, b, n, pc, pos, x, x$1, x$2, x$3, y, y$1; + $ptrType(Writer).prototype.terminateCell = function terminateCell(htab) { + var b, htab, line, x, x$1; b = this; - n = (((($imul(((pc >> 0)), ((b.end + 1 >> 0)))) + pos >> 0) >>> 0)); - if (!(((((x = b.visited, x$1 = (_q = n / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")), ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])) & (((y = (((n & 31) >>> 0)), y < 32 ? (1 << y) : 0) >>> 0))) >>> 0) === 0))) { - return false; - } - _index = (_q$1 = n / 32, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero")); - (x$3 = b.visited, ((_index < 0 || _index >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + _index] = (((x$2 = b.visited, ((_index < 0 || _index >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + _index])) | (((y$1 = (((n & 31) >>> 0)), y$1 < 32 ? (1 << y$1) : 0) >>> 0))) >>> 0))); - return true; + b.cell.htab = htab; + line = (x = b.lines, x$1 = b.lines.$length - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + x$1, ptrType))); + line.$set($append(line.$get(), b.cell)); + cell.copy(b.cell, new cell.ptr(0, 0, false)); + return line.$get().$length; }; - $ptrType(bitState).prototype.push = function push(re, pc, pos, arg) { - var arg, b, pc, pos, re, x; + $ptrType(Writer).prototype.handlePanic = function handlePanic(err, op) { + var _tuple, b, e, err, nerr, ok, op; b = this; - if (!(((x = re.prog.Inst, ((pc < 0 || pc >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pc])).Op === 5)) && (arg || b.shouldVisit(pc, pos))) { - b.jobs = $append(b.jobs, new job.ptr(pc, arg, pos)); + e = $recover(); + if (!($interfaceIsEqual(e, $ifaceNil))) { + if (op === "Flush") { + b.reset(); + } + _tuple = $assertType(e, osError, true); + nerr = $clone(_tuple[0], osError); + ok = _tuple[1]; + if (ok) { + err.$set(nerr.err); + return; + } + $panic(new $String("tabwriter: panic during " + op)); } }; - $ptrType(Regexp).prototype.tryBacktrack = function tryBacktrack(b, i, pc, pos) { - var {_1, _2, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, _tuple$2, _tuple$3, arg, b, flag, i, inst, l, longest, old, pc, pc$1, pos, pos$1, r, r$1, r$2, r$3, re, width, width$1, width$2, width$3, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {b, i, pc, pos}); + $ptrType(Writer).prototype.Flush = function Flush() { + var {$24r, _r, b, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - re = this; - longest = re.longest; - b.push(re, pc, pos, false); - /* while (true) { */ case 1: - /* if (!(b.jobs.$length > 0)) { break; } */ if(!(b.jobs.$length > 0)) { $s = 2; continue; } - l = b.jobs.$length - 1 >> 0; - pc$1 = (x = b.jobs, ((l < 0 || l >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + l])).pc; - pos$1 = (x$1 = b.jobs, ((l < 0 || l >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + l])).pos; - arg = (x$2 = b.jobs, ((l < 0 || l >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + l])).arg; - b.jobs = $subslice(b.jobs, 0, l); - /* goto Skip */ $s = 3; continue; - /* CheckAndLoop: */ case 4: - if (!b.shouldVisit(pc$1, pos$1)) { - /* continue; */ $s = 1; continue; - } - /* Skip: */ case 3: - inst = (x$3 = re.prog.Inst, ((pc$1 < 0 || pc$1 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + pc$1])); - _1 = inst.Op; - /* */ if (_1 === (5)) { $s = 6; continue; } - /* */ if (_1 === (0)) { $s = 7; continue; } - /* */ if (_1 === (1)) { $s = 8; continue; } - /* */ if (_1 === (7)) { $s = 9; continue; } - /* */ if (_1 === (8)) { $s = 10; continue; } - /* */ if (_1 === (10)) { $s = 11; continue; } - /* */ if (_1 === (9)) { $s = 12; continue; } - /* */ if (_1 === (2)) { $s = 13; continue; } - /* */ if (_1 === (3)) { $s = 14; continue; } - /* */ if (_1 === (6)) { $s = 15; continue; } - /* */ if (_1 === (4)) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (_1 === (5)) { */ case 6: - $panic(new $String("unexpected InstFail")); - $s = 18; continue; - /* } else if (_1 === (0)) { */ case 7: - /* */ if (arg) { $s = 19; continue; } - /* */ $s = 20; continue; - /* if (arg) { */ case 19: - arg = false; - pc$1 = inst.Arg; - /* goto CheckAndLoop */ $s = 4; continue; - $s = 21; continue; - /* } else { */ case 20: - b.push(re, pc$1, pos$1, true); - pc$1 = inst.Out; - /* goto CheckAndLoop */ $s = 4; continue; - /* } */ case 21: - $s = 18; continue; - /* } else if (_1 === (1)) { */ case 8: - _2 = (x$4 = re.prog.Inst, x$5 = inst.Out, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])).Op; - /* */ if ((_2 === (7)) || (_2 === (8)) || (_2 === (9)) || (_2 === (10))) { $s = 23; continue; } - /* */ $s = 24; continue; - /* if ((_2 === (7)) || (_2 === (8)) || (_2 === (9)) || (_2 === (10))) { */ case 23: - b.push(re, inst.Arg, pos$1, false); - pc$1 = inst.Arg; - pos$1 = b.end; - /* goto CheckAndLoop */ $s = 4; continue; - /* } */ case 24: - case 22: - b.push(re, inst.Out, b.end, false); - pc$1 = inst.Out; - /* goto CheckAndLoop */ $s = 4; continue; - $s = 18; continue; - /* } else if (_1 === (7)) { */ case 9: - _r = i.step(pos$1); /* */ $s = 25; case 25: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _tuple = _r; - r = _tuple[0]; - width = _tuple[1]; - if (!inst.MatchRune(r)) { - /* continue; */ $s = 1; continue; - } - pos$1 = pos$1 + (width) >> 0; - pc$1 = inst.Out; - /* goto CheckAndLoop */ $s = 4; continue; - $s = 18; continue; - /* } else if (_1 === (8)) { */ case 10: - _r$1 = i.step(pos$1); /* */ $s = 26; case 26: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$1 = _r$1; - r$1 = _tuple$1[0]; - width$1 = _tuple$1[1]; - if (!((r$1 === (x$6 = inst.Rune, (0 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + 0]))))) { - /* continue; */ $s = 1; continue; - } - pos$1 = pos$1 + (width$1) >> 0; - pc$1 = inst.Out; - /* goto CheckAndLoop */ $s = 4; continue; - $s = 18; continue; - /* } else if (_1 === (10)) { */ case 11: - _r$2 = i.step(pos$1); /* */ $s = 27; case 27: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple$2 = _r$2; - r$2 = _tuple$2[0]; - width$2 = _tuple$2[1]; - if ((r$2 === 10) || (r$2 === -1)) { - /* continue; */ $s = 1; continue; - } - pos$1 = pos$1 + (width$2) >> 0; - pc$1 = inst.Out; - /* goto CheckAndLoop */ $s = 4; continue; - $s = 18; continue; - /* } else if (_1 === (9)) { */ case 12: - _r$3 = i.step(pos$1); /* */ $s = 28; case 28: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple$3 = _r$3; - r$3 = _tuple$3[0]; - width$3 = _tuple$3[1]; - if (r$3 === -1) { - /* continue; */ $s = 1; continue; - } - pos$1 = pos$1 + (width$3) >> 0; - pc$1 = inst.Out; - /* goto CheckAndLoop */ $s = 4; continue; - $s = 18; continue; - /* } else if (_1 === (2)) { */ case 13: - /* */ if (arg) { $s = 29; continue; } - /* */ $s = 30; continue; - /* if (arg) { */ case 29: - (x$7 = b.cap, x$8 = inst.Arg, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8] = pos$1)); - /* continue; */ $s = 1; continue; - $s = 31; continue; - /* } else { */ case 30: - if (inst.Arg < ((b.cap.$length >>> 0))) { - b.push(re, pc$1, (x$9 = b.cap, x$10 = inst.Arg, ((x$10 < 0 || x$10 >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + x$10])), true); - (x$11 = b.cap, x$12 = inst.Arg, ((x$12 < 0 || x$12 >= x$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + x$12] = pos$1)); - } - pc$1 = inst.Out; - /* goto CheckAndLoop */ $s = 4; continue; - /* } */ case 31: - $s = 18; continue; - /* } else if (_1 === (3)) { */ case 14: - _r$4 = i.context(pos$1); /* */ $s = 32; case 32: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - flag = _r$4; - if (!flag.match(((inst.Arg << 24 >>> 24)))) { - /* continue; */ $s = 1; continue; - } - pc$1 = inst.Out; - /* goto CheckAndLoop */ $s = 4; continue; - $s = 18; continue; - /* } else if (_1 === (6)) { */ case 15: - pc$1 = inst.Out; - /* goto CheckAndLoop */ $s = 4; continue; - $s = 18; continue; - /* } else if (_1 === (4)) { */ case 16: - if (b.cap.$length === 0) { - $s = -1; return true; - } - if (b.cap.$length > 1) { - (x$13 = b.cap, (1 >= x$13.$length ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + 1] = pos$1)); - } - old = (x$14 = b.matchcap, (1 >= x$14.$length ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + 1])); - if ((old === -1) || (longest && pos$1 > 0 && pos$1 > old)) { - $copySlice(b.matchcap, b.cap); - } - if (!longest) { - $s = -1; return true; - } - if (pos$1 === b.end) { - $s = -1; return true; - } - /* continue; */ $s = 1; continue; - $s = 18; continue; - /* } else { */ case 17: - $panic(new $String("bad inst")); - /* } */ case 18: - case 5: - $s = 1; continue; - case 2: - $s = -1; return longest && b.matchcap.$length > 1 && (x$15 = b.matchcap, (1 >= x$15.$length ? ($throwRuntimeError("index out of range"), undefined) : x$15.$array[x$15.$offset + 1])) >= 0; - /* */ } return; } var $f = {$blk: tryBacktrack, $c: true, $r, _1, _2, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, _tuple$2, _tuple$3, arg, b, flag, i, inst, l, longest, old, pc, pc$1, pos, pos$1, r, r$1, r$2, r$3, re, width, width$1, width$2, width$3, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; + b = this; + _r = b.flush(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Flush, $c: true, $r, $24r, _r, b, $s};return $f; }; - $ptrType(Regexp).prototype.backtrack = function backtrack(ib, is, pos, ncap, dstCap) { - var {_r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, advance, b, dstCap, end, i, ib, is, ncap, pos, re, startCond, width, x, x$1, $s, $r, $c} = $restore(this, {ib, is, pos, ncap, dstCap}); + $ptrType(Writer).prototype.flush = function flush() { + var {b, err, $s, $deferred, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + err = [err]; + err[0] = $ifaceNil; + b = this; + $deferred.push([$methodVal(b, "handlePanic"), [(err.$ptr || (err.$ptr = new ptrType$1(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, err))), "Flush"]]); + $r = b.flushNoDefers(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + err[0] = $ifaceNil; + $s = -1; return err[0]; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return err[0]; } if($curGoroutine.asleep) { var $f = {$blk: flush, $c: true, $r, b, err, $s, $deferred};return $f; } } + }; + $ptrType(Writer).prototype.flushNoDefers = function flushNoDefers() { + var {_r, b, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - re = this; - startCond = re.cond; - if (startCond === 255) { - $s = -1; return sliceType$7.nil; - } - if (!((((startCond & 4) >>> 0) === 0)) && !((pos === 0))) { - $s = -1; return sliceType$7.nil; - } - _r = newBitState(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - b = _r; - _tuple = b.inputs.init($ifaceNil, ib, is); - i = _tuple[0]; - end = _tuple[1]; - b.reset(re.prog, end, ncap); - /* */ if (!((((startCond & 4) >>> 0) === 0))) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!((((startCond & 4) >>> 0) === 0))) { */ case 2: - if (b.cap.$length > 0) { - (x = b.cap, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0] = pos)); + b = this; + if (b.cell.size > 0) { + if (!((b.endChar === 0))) { + b.endEscape(); } - _r$1 = re.tryBacktrack(b, i, ((re.prog.Start >>> 0)), pos); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (!_r$1) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (!_r$1) { */ case 5: - freeBitState(b); - $s = -1; return sliceType$7.nil; - /* } */ case 6: - $s = 4; continue; - /* } else { */ case 3: - width = -1; - /* while (true) { */ case 8: - /* if (!(pos <= end && !((width === 0)))) { break; } */ if(!(pos <= end && !((width === 0)))) { $s = 9; continue; } - /* */ if (re.prefix.length > 0) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (re.prefix.length > 0) { */ case 10: - _r$2 = i.index(re, pos); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - advance = _r$2; - if (advance < 0) { - freeBitState(b); - $s = -1; return sliceType$7.nil; + b.terminateCell(false); + } + _r = b.format(0, 0, b.lines.$length); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + b.reset(); + $s = -1; return; + /* */ } return; } var $f = {$blk: flushNoDefers, $c: true, $r, _r, b, $s};return $f; + }; + $ptrType(Writer).prototype.Write = function Write(buf) { + var {_1, _i, _ref, b, buf, ch, err, i, j, n, ncells, $s, $deferred, $r, $c} = $restore(this, {buf}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + err = [err]; + n = 0; + err[0] = $ifaceNil; + b = this; + $deferred.push([$methodVal(b, "handlePanic"), [(err.$ptr || (err.$ptr = new ptrType$1(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, err))), "Write"]]); + n = 0; + _ref = buf; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + ch = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + /* */ if (b.endChar === 0) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (b.endChar === 0) { */ case 3: + _1 = ch; + /* */ if ((_1 === (9)) || (_1 === (11)) || (_1 === (10)) || (_1 === (12))) { $s = 7; continue; } + /* */ if (_1 === (255)) { $s = 8; continue; } + /* */ if ((_1 === (60)) || (_1 === (38))) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if ((_1 === (9)) || (_1 === (11)) || (_1 === (10)) || (_1 === (12))) { */ case 7: + b.append($subslice(buf, n, i)); + b.updateWidth(); + n = i + 1 >> 0; + ncells = b.terminateCell(ch === 9); + /* */ if ((ch === 10) || (ch === 12)) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if ((ch === 10) || (ch === 12)) { */ case 11: + b.addLine(ch === 12); + /* */ if ((ch === 12) || (ncells === 1)) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if ((ch === 12) || (ncells === 1)) { */ case 13: + $r = b.flushNoDefers(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if ((ch === 12) && !((((b.flags & 32) >>> 0) === 0))) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if ((ch === 12) && !((((b.flags & 32) >>> 0) === 0))) { */ case 16: + $r = b.write0(hbar); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 17: + /* } */ case 14: + /* } */ case 12: + $s = 10; continue; + /* } else if (_1 === (255)) { */ case 8: + b.append($subslice(buf, n, i)); + b.updateWidth(); + n = i; + if (!((((b.flags & 2) >>> 0) === 0))) { + n = n + (1) >> 0; + } + b.startEscape(255); + $s = 10; continue; + /* } else if ((_1 === (60)) || (_1 === (38))) { */ case 9: + if (!((((b.flags & 1) >>> 0) === 0))) { + b.append($subslice(buf, n, i)); + b.updateWidth(); + n = i; + b.startEscape(ch); + } + /* } */ case 10: + case 6: + $s = 5; continue; + /* } else { */ case 4: + if (ch === b.endChar) { + j = i + 1 >> 0; + if ((ch === 255) && !((((b.flags & 2) >>> 0) === 0))) { + j = i; } - pos = pos + (advance) >> 0; - /* } */ case 11: - if (b.cap.$length > 0) { - (x$1 = b.cap, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0] = pos)); + b.append($subslice(buf, n, j)); + n = i + 1 >> 0; + b.endEscape(); } - _r$3 = re.tryBacktrack(b, i, ((re.prog.Start >>> 0)), pos); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (_r$3) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (_r$3) { */ case 13: - /* goto Match */ $s = 16; continue; - /* } */ case 14: - _r$4 = i.step(pos); /* */ $s = 17; case 17: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _tuple$1 = _r$4; - width = _tuple$1[1]; - pos = pos + (width) >> 0; - $s = 8; continue; - case 9: - freeBitState(b); - $s = -1; return sliceType$7.nil; - /* } */ case 4: - /* Match: */ case 16: - dstCap = $appendSlice(dstCap, b.matchcap); - freeBitState(b); - $s = -1; return dstCap; - /* */ } return; } var $f = {$blk: backtrack, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, advance, b, dstCap, end, i, ib, is, ncap, pos, re, startCond, width, x, x$1, $s};return $f; + /* } */ case 5: + _i++; + $s = 1; continue; + case 2: + b.append($subslice(buf, n)); + n = buf.$length; + $s = -1; return [n, err[0]]; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [n, err[0]]; } if($curGoroutine.asleep) { var $f = {$blk: Write, $c: true, $r, _1, _i, _ref, b, buf, ch, err, i, j, n, ncells, $s, $deferred};return $f; } } }; - ptrType.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Copy", name: "Copy", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "Longest", name: "Longest", pkg: "", typ: $funcType([], [], false)}, {prop: "get", name: "get", pkg: "regexp", typ: $funcType([], [ptrType$3], false)}, {prop: "put", name: "put", pkg: "regexp", typ: $funcType([ptrType$3], [], false)}, {prop: "NumSubexp", name: "NumSubexp", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "SubexpNames", name: "SubexpNames", pkg: "", typ: $funcType([], [sliceType$3], false)}, {prop: "SubexpIndex", name: "SubexpIndex", pkg: "", typ: $funcType([$String], [$Int], false)}, {prop: "LiteralPrefix", name: "LiteralPrefix", pkg: "", typ: $funcType([], [$String, $Bool], false)}, {prop: "MatchReader", name: "MatchReader", pkg: "", typ: $funcType([io.RuneReader], [$Bool], false)}, {prop: "MatchString", name: "MatchString", pkg: "", typ: $funcType([$String], [$Bool], false)}, {prop: "Match", name: "Match", pkg: "", typ: $funcType([sliceType$4], [$Bool], false)}, {prop: "ReplaceAllString", name: "ReplaceAllString", pkg: "", typ: $funcType([$String, $String], [$String], false)}, {prop: "ReplaceAllLiteralString", name: "ReplaceAllLiteralString", pkg: "", typ: $funcType([$String, $String], [$String], false)}, {prop: "ReplaceAllStringFunc", name: "ReplaceAllStringFunc", pkg: "", typ: $funcType([$String, funcType], [$String], false)}, {prop: "replaceAll", name: "replaceAll", pkg: "regexp", typ: $funcType([sliceType$4, $String, $Int, funcType$1], [sliceType$4], false)}, {prop: "ReplaceAll", name: "ReplaceAll", pkg: "", typ: $funcType([sliceType$4, sliceType$4], [sliceType$4], false)}, {prop: "ReplaceAllLiteral", name: "ReplaceAllLiteral", pkg: "", typ: $funcType([sliceType$4, sliceType$4], [sliceType$4], false)}, {prop: "ReplaceAllFunc", name: "ReplaceAllFunc", pkg: "", typ: $funcType([sliceType$4, funcType$2], [sliceType$4], false)}, {prop: "pad", name: "pad", pkg: "regexp", typ: $funcType([sliceType$7], [sliceType$7], false)}, {prop: "allMatches", name: "allMatches", pkg: "regexp", typ: $funcType([$String, sliceType$4, $Int, funcType$3], [], false)}, {prop: "Find", name: "Find", pkg: "", typ: $funcType([sliceType$4], [sliceType$4], false)}, {prop: "FindIndex", name: "FindIndex", pkg: "", typ: $funcType([sliceType$4], [sliceType$7], false)}, {prop: "FindString", name: "FindString", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "FindStringIndex", name: "FindStringIndex", pkg: "", typ: $funcType([$String], [sliceType$7], false)}, {prop: "FindReaderIndex", name: "FindReaderIndex", pkg: "", typ: $funcType([io.RuneReader], [sliceType$7], false)}, {prop: "FindSubmatch", name: "FindSubmatch", pkg: "", typ: $funcType([sliceType$4], [sliceType$8], false)}, {prop: "Expand", name: "Expand", pkg: "", typ: $funcType([sliceType$4, sliceType$4, sliceType$4, sliceType$7], [sliceType$4], false)}, {prop: "ExpandString", name: "ExpandString", pkg: "", typ: $funcType([sliceType$4, $String, $String, sliceType$7], [sliceType$4], false)}, {prop: "expand", name: "expand", pkg: "regexp", typ: $funcType([sliceType$4, $String, sliceType$4, $String, sliceType$7], [sliceType$4], false)}, {prop: "FindSubmatchIndex", name: "FindSubmatchIndex", pkg: "", typ: $funcType([sliceType$4], [sliceType$7], false)}, {prop: "FindStringSubmatch", name: "FindStringSubmatch", pkg: "", typ: $funcType([$String], [sliceType$3], false)}, {prop: "FindStringSubmatchIndex", name: "FindStringSubmatchIndex", pkg: "", typ: $funcType([$String], [sliceType$7], false)}, {prop: "FindReaderSubmatchIndex", name: "FindReaderSubmatchIndex", pkg: "", typ: $funcType([io.RuneReader], [sliceType$7], false)}, {prop: "FindAll", name: "FindAll", pkg: "", typ: $funcType([sliceType$4, $Int], [sliceType$8], false)}, {prop: "FindAllIndex", name: "FindAllIndex", pkg: "", typ: $funcType([sliceType$4, $Int], [sliceType$9], false)}, {prop: "FindAllString", name: "FindAllString", pkg: "", typ: $funcType([$String, $Int], [sliceType$3], false)}, {prop: "FindAllStringIndex", name: "FindAllStringIndex", pkg: "", typ: $funcType([$String, $Int], [sliceType$9], false)}, {prop: "FindAllSubmatch", name: "FindAllSubmatch", pkg: "", typ: $funcType([sliceType$4, $Int], [sliceType$10], false)}, {prop: "FindAllSubmatchIndex", name: "FindAllSubmatchIndex", pkg: "", typ: $funcType([sliceType$4, $Int], [sliceType$9], false)}, {prop: "FindAllStringSubmatch", name: "FindAllStringSubmatch", pkg: "", typ: $funcType([$String, $Int], [sliceType$11], false)}, {prop: "FindAllStringSubmatchIndex", name: "FindAllStringSubmatchIndex", pkg: "", typ: $funcType([$String, $Int], [sliceType$9], false)}, {prop: "Split", name: "Split", pkg: "", typ: $funcType([$String, $Int], [sliceType$3], false)}, {prop: "doOnePass", name: "doOnePass", pkg: "regexp", typ: $funcType([io.RuneReader, sliceType$4, $String, $Int, $Int, sliceType$7], [sliceType$7], false)}, {prop: "doMatch", name: "doMatch", pkg: "regexp", typ: $funcType([io.RuneReader, sliceType$4, $String], [$Bool], false)}, {prop: "doExecute", name: "doExecute", pkg: "regexp", typ: $funcType([io.RuneReader, sliceType$4, $String, $Int, $Int, sliceType$7], [sliceType$7], false)}, {prop: "tryBacktrack", name: "tryBacktrack", pkg: "regexp", typ: $funcType([ptrType$13, input, $Uint32, $Int], [$Bool], false)}, {prop: "backtrack", name: "backtrack", pkg: "regexp", typ: $funcType([sliceType$4, $String, $Int, $Int, sliceType$7], [sliceType$7], false)}]; - ptrType$14.methods = [{prop: "step", name: "step", pkg: "regexp", typ: $funcType([$Int], [$Int32, $Int], false)}, {prop: "canCheckPrefix", name: "canCheckPrefix", pkg: "regexp", typ: $funcType([], [$Bool], false)}, {prop: "hasPrefix", name: "hasPrefix", pkg: "regexp", typ: $funcType([ptrType], [$Bool], false)}, {prop: "index", name: "index", pkg: "regexp", typ: $funcType([ptrType, $Int], [$Int], false)}, {prop: "context", name: "context", pkg: "regexp", typ: $funcType([$Int], [lazyFlag], false)}]; - ptrType$15.methods = [{prop: "step", name: "step", pkg: "regexp", typ: $funcType([$Int], [$Int32, $Int], false)}, {prop: "canCheckPrefix", name: "canCheckPrefix", pkg: "regexp", typ: $funcType([], [$Bool], false)}, {prop: "hasPrefix", name: "hasPrefix", pkg: "regexp", typ: $funcType([ptrType], [$Bool], false)}, {prop: "index", name: "index", pkg: "regexp", typ: $funcType([ptrType, $Int], [$Int], false)}, {prop: "context", name: "context", pkg: "regexp", typ: $funcType([$Int], [lazyFlag], false)}]; - ptrType$16.methods = [{prop: "step", name: "step", pkg: "regexp", typ: $funcType([$Int], [$Int32, $Int], false)}, {prop: "canCheckPrefix", name: "canCheckPrefix", pkg: "regexp", typ: $funcType([], [$Bool], false)}, {prop: "hasPrefix", name: "hasPrefix", pkg: "regexp", typ: $funcType([ptrType], [$Bool], false)}, {prop: "index", name: "index", pkg: "regexp", typ: $funcType([ptrType, $Int], [$Int], false)}, {prop: "context", name: "context", pkg: "regexp", typ: $funcType([$Int], [lazyFlag], false)}]; - ptrType$6.methods = [{prop: "empty", name: "empty", pkg: "regexp", typ: $funcType([], [$Bool], false)}, {prop: "next", name: "next", pkg: "regexp", typ: $funcType([], [$Uint32], false)}, {prop: "clear", name: "clear", pkg: "regexp", typ: $funcType([], [], false)}, {prop: "contains", name: "contains", pkg: "regexp", typ: $funcType([$Uint32], [$Bool], false)}, {prop: "insert", name: "insert", pkg: "regexp", typ: $funcType([$Uint32], [], false)}, {prop: "insertNew", name: "insertNew", pkg: "regexp", typ: $funcType([$Uint32], [], false)}]; - runeSlice.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}]; - ptrType$3.methods = [{prop: "init", name: "init", pkg: "regexp", typ: $funcType([$Int], [], false)}, {prop: "alloc", name: "alloc", pkg: "regexp", typ: $funcType([ptrType$10], [ptrType$4], false)}, {prop: "match", name: "match", pkg: "regexp", typ: $funcType([input, $Int], [$Bool], false)}, {prop: "clear", name: "clear", pkg: "regexp", typ: $funcType([ptrType$17], [], false)}, {prop: "step", name: "step", pkg: "regexp", typ: $funcType([ptrType$17, ptrType$17, $Int, $Int, $Int32, ptrType$11], [], false)}, {prop: "add", name: "add", pkg: "regexp", typ: $funcType([ptrType$17, $Uint32, $Int, sliceType$7, ptrType$11, ptrType$4], [ptrType$4], false)}]; - ptrType$18.methods = [{prop: "newBytes", name: "newBytes", pkg: "regexp", typ: $funcType([sliceType$4], [input], false)}, {prop: "newString", name: "newString", pkg: "regexp", typ: $funcType([$String], [input], false)}, {prop: "newReader", name: "newReader", pkg: "regexp", typ: $funcType([io.RuneReader], [input], false)}, {prop: "clear", name: "clear", pkg: "regexp", typ: $funcType([], [], false)}, {prop: "init", name: "init", pkg: "regexp", typ: $funcType([io.RuneReader, sliceType$4, $String], [input, $Int], false)}]; - lazyFlag.methods = [{prop: "match", name: "match", pkg: "regexp", typ: $funcType([syntax.EmptyOp], [$Bool], false)}]; - ptrType$13.methods = [{prop: "reset", name: "reset", pkg: "regexp", typ: $funcType([ptrType$1, $Int, $Int], [], false)}, {prop: "shouldVisit", name: "shouldVisit", pkg: "regexp", typ: $funcType([$Uint32, $Int], [$Bool], false)}, {prop: "push", name: "push", pkg: "regexp", typ: $funcType([ptrType, $Uint32, $Int, $Bool], [], false)}]; - Regexp.init("regexp", [{prop: "expr", name: "expr", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "prog", name: "prog", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "onepass", name: "onepass", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "numSubexp", name: "numSubexp", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "maxBitStateLen", name: "maxBitStateLen", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "subexpNames", name: "subexpNames", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "prefix", name: "prefix", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "prefixBytes", name: "prefixBytes", embedded: false, exported: false, typ: sliceType$4, tag: ""}, {prop: "prefixRune", name: "prefixRune", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "prefixEnd", name: "prefixEnd", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "mpool", name: "mpool", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "matchcap", name: "matchcap", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "prefixComplete", name: "prefixComplete", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "cond", name: "cond", embedded: false, exported: false, typ: syntax.EmptyOp, tag: ""}, {prop: "minInputLen", name: "minInputLen", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "longest", name: "longest", embedded: false, exported: false, typ: $Bool, tag: ""}]); - input.init([{prop: "canCheckPrefix", name: "canCheckPrefix", pkg: "regexp", typ: $funcType([], [$Bool], false)}, {prop: "context", name: "context", pkg: "regexp", typ: $funcType([$Int], [lazyFlag], false)}, {prop: "hasPrefix", name: "hasPrefix", pkg: "regexp", typ: $funcType([ptrType], [$Bool], false)}, {prop: "index", name: "index", pkg: "regexp", typ: $funcType([ptrType, $Int], [$Int], false)}, {prop: "step", name: "step", pkg: "regexp", typ: $funcType([$Int], [$Int32, $Int], false)}]); - inputString.init("regexp", [{prop: "str", name: "str", embedded: false, exported: false, typ: $String, tag: ""}]); - inputBytes.init("regexp", [{prop: "str", name: "str", embedded: false, exported: false, typ: sliceType$4, tag: ""}]); - inputReader.init("regexp", [{prop: "r", name: "r", embedded: false, exported: false, typ: io.RuneReader, tag: ""}, {prop: "atEOT", name: "atEOT", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: $Int, tag: ""}]); - onePassProg.init("", [{prop: "Inst", name: "Inst", embedded: false, exported: true, typ: sliceType$12, tag: ""}, {prop: "Start", name: "Start", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "NumCap", name: "NumCap", embedded: false, exported: true, typ: $Int, tag: ""}]); - onePassInst.init("", [{prop: "Inst", name: "Inst", embedded: true, exported: true, typ: syntax.Inst, tag: ""}, {prop: "Next", name: "Next", embedded: false, exported: true, typ: sliceType$2, tag: ""}]); - queueOnePass.init("regexp", [{prop: "sparse", name: "sparse", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "dense", name: "dense", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "nextIndex", name: "nextIndex", embedded: false, exported: false, typ: $Uint32, tag: ""}]); - runeSlice.init($Int32); - queue.init("regexp", [{prop: "sparse", name: "sparse", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "dense", name: "dense", embedded: false, exported: false, typ: sliceType$5, tag: ""}]); - entry.init("regexp", [{prop: "pc", name: "pc", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "t", name: "t", embedded: false, exported: false, typ: ptrType$4, tag: ""}]); - thread.init("regexp", [{prop: "inst", name: "inst", embedded: false, exported: false, typ: ptrType$10, tag: ""}, {prop: "cap", name: "cap", embedded: false, exported: false, typ: sliceType$7, tag: ""}]); - machine.init("regexp", [{prop: "re", name: "re", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "p", name: "p", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "q0", name: "q0", embedded: false, exported: false, typ: queue, tag: ""}, {prop: "q1", name: "q1", embedded: false, exported: false, typ: queue, tag: ""}, {prop: "pool", name: "pool", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "matched", name: "matched", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "matchcap", name: "matchcap", embedded: false, exported: false, typ: sliceType$7, tag: ""}, {prop: "inputs", name: "inputs", embedded: false, exported: false, typ: inputs, tag: ""}]); - inputs.init("regexp", [{prop: "bytes", name: "bytes", embedded: false, exported: false, typ: inputBytes, tag: ""}, {prop: "string", name: "string", embedded: false, exported: false, typ: inputString, tag: ""}, {prop: "reader", name: "reader", embedded: false, exported: false, typ: inputReader, tag: ""}]); - onePassMachine.init("regexp", [{prop: "inputs", name: "inputs", embedded: false, exported: false, typ: inputs, tag: ""}, {prop: "matchcap", name: "matchcap", embedded: false, exported: false, typ: sliceType$7, tag: ""}]); - job.init("regexp", [{prop: "pc", name: "pc", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "arg", name: "arg", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: $Int, tag: ""}]); - bitState.init("regexp", [{prop: "end", name: "end", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "cap", name: "cap", embedded: false, exported: false, typ: sliceType$7, tag: ""}, {prop: "matchcap", name: "matchcap", embedded: false, exported: false, typ: sliceType$7, tag: ""}, {prop: "jobs", name: "jobs", embedded: false, exported: false, typ: sliceType$15, tag: ""}, {prop: "visited", name: "visited", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "inputs", name: "inputs", embedded: false, exported: false, typ: inputs, tag: ""}]); + NewWriter = function NewWriter$1(output, minwidth, tabwidth, padding, padchar, flags) { + var flags, minwidth, output, padchar, padding, tabwidth; + return new Writer.ptr($ifaceNil, 0, 0, 0, arrayType.zero(), 0, sliceType.nil, 0, new cell.ptr(0, 0, false), 0, sliceType$2.nil, sliceType$3.nil).Init(output, minwidth, tabwidth, padding, padchar, flags); + }; + $pkg.NewWriter = NewWriter; + ptrType$2.methods = [{prop: "addLine", name: "addLine", pkg: "text/tabwriter", typ: $funcType([$Bool], [], false)}, {prop: "reset", name: "reset", pkg: "text/tabwriter", typ: $funcType([], [], false)}, {prop: "Init", name: "Init", pkg: "", typ: $funcType([io.Writer, $Int, $Int, $Int, $Uint8, $Uint], [ptrType$2], false)}, {prop: "dump", name: "dump", pkg: "text/tabwriter", typ: $funcType([], [], false)}, {prop: "write0", name: "write0", pkg: "text/tabwriter", typ: $funcType([sliceType], [], false)}, {prop: "writeN", name: "writeN", pkg: "text/tabwriter", typ: $funcType([sliceType, $Int], [], false)}, {prop: "writePadding", name: "writePadding", pkg: "text/tabwriter", typ: $funcType([$Int, $Int, $Bool], [], false)}, {prop: "writeLines", name: "writeLines", pkg: "text/tabwriter", typ: $funcType([$Int, $Int, $Int], [$Int], false)}, {prop: "format", name: "format", pkg: "text/tabwriter", typ: $funcType([$Int, $Int, $Int], [$Int], false)}, {prop: "append", name: "append", pkg: "text/tabwriter", typ: $funcType([sliceType], [], false)}, {prop: "updateWidth", name: "updateWidth", pkg: "text/tabwriter", typ: $funcType([], [], false)}, {prop: "startEscape", name: "startEscape", pkg: "text/tabwriter", typ: $funcType([$Uint8], [], false)}, {prop: "endEscape", name: "endEscape", pkg: "text/tabwriter", typ: $funcType([], [], false)}, {prop: "terminateCell", name: "terminateCell", pkg: "text/tabwriter", typ: $funcType([$Bool], [$Int], false)}, {prop: "handlePanic", name: "handlePanic", pkg: "text/tabwriter", typ: $funcType([ptrType$1, $String], [], false)}, {prop: "Flush", name: "Flush", pkg: "", typ: $funcType([], [$error], false)}, {prop: "flush", name: "flush", pkg: "text/tabwriter", typ: $funcType([], [$error], false)}, {prop: "flushNoDefers", name: "flushNoDefers", pkg: "text/tabwriter", typ: $funcType([], [], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}]; + cell.init("text/tabwriter", [{prop: "size", name: "size", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "width", name: "width", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "htab", name: "htab", embedded: false, exported: false, typ: $Bool, tag: ""}]); + Writer.init("text/tabwriter", [{prop: "output", name: "output", embedded: false, exported: false, typ: io.Writer, tag: ""}, {prop: "minwidth", name: "minwidth", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "tabwidth", name: "tabwidth", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "padding", name: "padding", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "padbytes", name: "padbytes", embedded: false, exported: false, typ: arrayType, tag: ""}, {prop: "flags", name: "flags", embedded: false, exported: false, typ: $Uint, tag: ""}, {prop: "buf", name: "buf", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "cell", name: "cell", embedded: false, exported: false, typ: cell, tag: ""}, {prop: "endChar", name: "endChar", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "lines", name: "lines", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "widths", name: "widths", embedded: false, exported: false, typ: sliceType$3, tag: ""}]); + osError.init("text/tabwriter", [{prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}]); }; $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: - $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = nosync.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = io.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = syntax.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = sort.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = strconv.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = strings.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = unicode.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = utf8.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - matchPool = arrayType.zero(); - specialBytes = arrayType$1.zero(); - onePassPool = new nosync.Pool.ptr(sliceType.nil, $throwNilPointerError); - arrayNoInts = arrayType$2.zero(); - bitStatePool = new nosync.Pool.ptr(sliceType.nil, $throwNilPointerError); - matchSize = $toNativeArray($kindInt, [128, 512, 2048, 16384, 0]); - noRune = new sliceType$1([]); - noNext = new sliceType$2([4294967295]); - anyRuneNotNL = new sliceType$1([0, 9, 11, 1114111]); - anyRune = new sliceType$1([0, 1114111]); - init(); + $r = io.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + newline = new sliceType([10]); + tabs = (new sliceType($stringToBytes("\t\t\t\t\t\t\t\t"))); + vbar = new sliceType([124]); + hbar = (new sliceType($stringToBytes("---\n"))); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; return $pkg; })(); -$packages["go/types"] = (function() { - var $pkg = {}, $init, bytes, heap, errors, fmt, ast, constant, typeparams, parser, token, errors$1, io, math, regexp, runtime, sort, strconv, strings, sync, atomic, unicode, utf8, version, builtinId, Union, Term, unifier, tparamsList, term, Qualifier, typeWriter, _TypeSet, byUniqueMethodName, TypeParam, TypeParamList, TypeList, Type, Tuple, termlist, substMap, subster, Struct, stmtContext, valueMap, valueType, Slice, Sizes, StdSizes, Signature, SelectionKind, Selection, Scope, lazyObject, declInfo, inSourceOrder, ifacePair, Pointer, Package, operandMode, operand, objset, Object, object, color, PkgName, Const, TypeName, Var, Func, Label, Builtin, Nil, Named, instance, namedState, monoGraph, monoVertex, monoEdge, MethodSet, methodSet, Map, embeddedType, instanceLookup, block, Interface, dependency, graphNode, nodeSet, nodeQueue, tpWalker, cycleFinder, opPredicates, exprKind, error_, errorDesc, positioner, posSpan, atPos, decl, importDecl, constDecl, varDecl, typeDecl, funcDecl, Context, ctxtEntry, exprInfo, environment, importKey, dotImportKey, action, actionDesc, Checker, cleaner, bailout, Chan, ChanDir, BasicKind, BasicInfo, Basic, Array, Error, Importer, ImportMode, ImporterFrom, Config, Info, TypeAndValue, Instance, Initializer, methodInfo, ptrType, ptrType$1, ptrType$2, sliceType, ptrType$3, sliceType$1, ptrType$4, sliceType$2, structType, structType$1, ptrType$5, ptrType$6, sliceType$3, sliceType$4, ptrType$7, ptrType$8, sliceType$5, sliceType$6, ptrType$9, sliceType$7, ptrType$10, ptrType$11, ptrType$12, ptrType$13, ptrType$14, sliceType$8, sliceType$9, ptrType$15, ptrType$16, sliceType$10, ptrType$17, ptrType$18, sliceType$11, ptrType$19, sliceType$12, ptrType$20, ptrType$21, ptrType$22, sliceType$13, ptrType$23, ptrType$24, sliceType$14, ptrType$25, ptrType$26, ptrType$27, ptrType$28, ptrType$29, ptrType$30, ptrType$31, ptrType$32, ptrType$33, ptrType$34, ptrType$35, ptrType$36, ptrType$37, ptrType$38, ptrType$39, ptrType$40, ptrType$41, ptrType$42, ptrType$43, ptrType$44, ptrType$45, ptrType$46, ptrType$47, ptrType$48, ptrType$49, ptrType$50, ptrType$51, ptrType$52, arrayType, ptrType$53, ptrType$54, ptrType$55, ptrType$56, sliceType$15, sliceType$16, ptrType$57, ptrType$58, ptrType$59, sliceType$17, ptrType$60, ptrType$61, sliceType$18, ptrType$62, ptrType$63, ptrType$64, ptrType$65, ptrType$66, ptrType$67, ptrType$68, ptrType$69, ptrType$70, ptrType$71, ptrType$72, ptrType$73, ptrType$74, ptrType$75, ptrType$76, ptrType$77, ptrType$78, ptrType$79, ptrType$80, ptrType$81, ptrType$82, sliceType$19, ptrType$83, ptrType$84, sliceType$20, ptrType$85, ptrType$86, ptrType$87, ptrType$88, sliceType$21, ptrType$89, ptrType$90, sliceType$22, sliceType$23, sliceType$24, ptrType$91, sliceType$25, arrayType$1, ptrType$92, sliceType$26, ptrType$93, sliceType$27, ptrType$94, ptrType$95, ptrType$96, sliceType$28, sliceType$29, arrayType$2, ptrType$97, ptrType$98, ptrType$99, ptrType$100, ptrType$101, ptrType$102, sliceType$30, ptrType$103, sliceType$31, ptrType$104, ptrType$105, ptrType$106, ptrType$107, ptrType$108, sliceType$32, sliceType$33, sliceType$34, ptrType$109, ptrType$110, ptrType$111, sliceType$35, sliceType$36, sliceType$37, sliceType$38, sliceType$39, sliceType$40, funcType$1, ptrType$112, sliceType$41, arrayType$3, ptrType$113, ptrType$114, ptrType$115, mapType, funcType$2, funcType$3, ptrType$116, funcType$4, funcType$5, mapType$1, mapType$2, ptrType$117, funcType$6, ptrType$118, mapType$3, mapType$4, ptrType$119, ptrType$120, mapType$5, mapType$6, ptrType$121, ptrType$122, mapType$7, mapType$8, ptrType$123, mapType$9, ptrType$124, mapType$10, sliceType$42, funcType$7, funcType$8, mapType$11, mapType$12, mapType$13, mapType$14, mapType$15, mapType$16, mapType$17, mapType$18, mapType$19, mapType$20, mapType$21, funcType$9, mapType$22, mapType$23, mapType$24, mapType$25, mapType$26, mapType$27, universeIota, universeByte, universeRune, universeAny, universeError, universeComparable, invalidTypeSet, invalidTypeSet$24ptr, lastID, lastID$24ptr, emptyMethodSet, emptyMethodSet$24ptr, unaryOpPredicates, binaryOpPredicates, goVersionRx, _r, aliases, predeclaredConsts, predeclaredFuncs, allTermlist, topTypeSet, topTypeSet$24ptr, basicSizes, gcArchSizes, operandModeString, emptyInterface, emptyInterface$24ptr, gccgoArchSizes, stdSizes, op2str1, op2str2, errBadCgo, cgoPrefixes, parseGoVersion, makeObjList, defPredeclaredTypes, defPredeclaredConsts, defPredeclaredNil, defPredeclaredFuncs, init, def, NewUnion, NewTerm, parseUnion, parseTilde, overlappingTerm, flattenUnion, newUnifier, tparamIndex, goTypeName, RelativeTo, TypeString, WriteType, WriteSignature, newTypeWriter, newTypeHasher, subscript, computeInterfaceTypeSet, intersectTermLists, sortMethods, assertSortedMethods, computeUnionTypeSet, nextID, NewTypeParam, newTypeList, bindTParams, under, coreType, coreString, match, NewTuple, makeSubstMap, makeRenameMap, substVar, substFunc, replaceRecvType, embeddedFieldIdent, trimTrailingEmptyStmts, assignOp, goVal, rangeKeyVal, NewSlice, isSyncAtomicAlign64, SizesFor, align, NewSignatureType, SelectionString, NewScope, resolve, hasBreak, hasBreakList, validatedImportPath, dir, isBoolean, isInteger, isUnsigned, isFloat, isComplex, isNumeric, isString, isIntegerOrFloat, isConstType, isBasic, allBoolean, allInteger, allUnsigned, allNumeric, allString, allOrdered, allNumericOrString, allBasic, hasName, isTyped, isUntyped, IsInterface, isNonTypeParamInterface, isTypeParam, hasEmptyTypeset, isGeneric, Comparable, comparable, hasNil, identical, identicalInstance, Default, NewPointer, NewPackage, operandString, Id, colorFor, NewPkgName, NewConst, NewTypeName, NewVar, NewParam, NewField, NewFunc, NewLabel, newBuiltin, writeObject, packagePrefix, ObjectString, writeFuncName, NewNamed, safeUnderlying, NewMethodSet, LookupFieldOrMethod, lookupFieldOrMethod, consolidateMultiples, lookupType, isInterfacePtr, deref, derefStructPtr, concat, fieldIndex, lookupMethod, NewInterfaceType, mentions, findPath, dependencyGraph, typeParamsString, isParameterized, coreTerm, ExprString, WriteExpr, writeSigExpr, writeFieldList, writeIdentList, writeExprList, init$1, opName, underIs, isShift, isComparison, fitsFloat32, roundFloat32, fitsFloat64, roundFloat64, representableConst, init$2, keyVal, assert, unreachable, sprintf, newErrorf, inNode, spanOf, stripAnnotations, pathString, firstInSrc, isUintptr, isUnsafePointer, isPointer, isBytesOrRunes, NewContext, NewChecker, instantiatedIdent, hasVarSize, makeSig, arrayPtrDeref, unparen, operandTypes, varTypes, measure, Identical, IdenticalIgnoreTags; - bytes = $packages["bytes"]; - heap = $packages["container/heap"]; - errors = $packages["errors"]; +$packages["go/printer"] = (function() { + var $pkg = {}, $init, fmt, ast, constraint, comment, token, io, math, os, sort, strconv, strings, sync, tabwriter, unicode, utf8, whiteSpace, pmode, commentInfo, printer, trimmer, Mode, Config, CommentedNode, exprListMode, paramMode, sizeCounter, sliceType, sliceType$1, ptrType, sliceType$2, sliceType$3, ptrType$1, ptrType$2, sliceType$4, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, ptrType$11, ptrType$12, ptrType$13, sliceType$5, sliceType$6, ptrType$14, ptrType$15, ptrType$16, ptrType$17, sliceType$7, ptrType$18, ptrType$19, ptrType$20, ptrType$21, ptrType$22, ptrType$23, ptrType$24, ptrType$25, ptrType$26, ptrType$27, ptrType$28, ptrType$29, sliceType$8, sliceType$9, ptrType$30, ptrType$31, ptrType$32, ptrType$33, ptrType$34, ptrType$35, ptrType$36, ptrType$37, ptrType$38, ptrType$39, ptrType$40, ptrType$41, ptrType$42, ptrType$43, ptrType$44, ptrType$45, ptrType$46, ptrType$47, ptrType$48, ptrType$49, ptrType$50, ptrType$51, ptrType$52, ptrType$53, ptrType$54, ptrType$55, ptrType$56, ptrType$57, ptrType$58, ptrType$59, sliceType$10, ptrType$60, sliceType$11, ptrType$61, sliceType$12, mapType, ptrType$62, ptrType$63, aNewline, printerPool, isBlank, commonPrefix, trimRight, stripCommonPrefix, nlimit, mayCombine, getDoc, getLastComment, newPrinter, combinesWithName, isTypeElem, identListSize, walkBinary, cutoff, diffPrec, reduceDepth, isBinary, normalizedNumber, isTypeName, stripParens, stripParensAlways, keepTypeColumn, sanitizeImportPath, declToken, appendLines, isNL, formatDocComment, isDirective, allStars; fmt = $packages["fmt"]; ast = $packages["go/ast"]; - constant = $packages["go/constant"]; - typeparams = $packages["go/internal/typeparams"]; - parser = $packages["go/parser"]; + constraint = $packages["go/build/constraint"]; + comment = $packages["go/doc/comment"]; token = $packages["go/token"]; - errors$1 = $packages["internal/types/errors"]; io = $packages["io"]; math = $packages["math"]; - regexp = $packages["regexp"]; - runtime = $packages["runtime"]; - sort = $packages["sort"]; - strconv = $packages["strconv"]; - strings = $packages["strings"]; - sync = $packages["sync"]; - atomic = $packages["sync/atomic"]; - unicode = $packages["unicode"]; - utf8 = $packages["unicode/utf8"]; - version = $newType(0, $kindStruct, "types.version", true, "go/types", false, function(major_, minor_) { - this.$val = this; - if (arguments.length === 0) { - this.major = 0; - this.minor = 0; - return; - } - this.major = major_; - this.minor = minor_; - }); - builtinId = $newType(4, $kindInt, "types.builtinId", true, "go/types", false, null); - Union = $newType(0, $kindStruct, "types.Union", true, "go/types", true, function(terms_) { - this.$val = this; - if (arguments.length === 0) { - this.terms = sliceType$12.nil; - return; - } - this.terms = terms_; - }); - Term = $newType(0, $kindStruct, "types.Term", true, "go/types", true, function(tilde_, typ_) { - this.$val = this; - if (arguments.length === 0) { - this.tilde = false; - this.typ = $ifaceNil; - return; - } - this.tilde = tilde_; - this.typ = typ_; - }); - unifier = $newType(0, $kindStruct, "types.unifier", true, "go/types", false, function(exact_, x_, y_, types_, depth_) { - this.$val = this; - if (arguments.length === 0) { - this.exact = false; - this.x = new tparamsList.ptr(ptrType$22.nil, sliceType$9.nil, sliceType$13.nil); - this.y = new tparamsList.ptr(ptrType$22.nil, sliceType$9.nil, sliceType$13.nil); - this.types = sliceType$3.nil; - this.depth = 0; - return; - } - this.exact = exact_; - this.x = x_; - this.y = y_; - this.types = types_; - this.depth = depth_; - }); - tparamsList = $newType(0, $kindStruct, "types.tparamsList", true, "go/types", false, function(unifier_, tparams_, indices_) { - this.$val = this; - if (arguments.length === 0) { - this.unifier = ptrType$22.nil; - this.tparams = sliceType$9.nil; - this.indices = sliceType$13.nil; - return; - } - this.unifier = unifier_; - this.tparams = tparams_; - this.indices = indices_; - }); - term = $newType(0, $kindStruct, "types.term", true, "go/types", false, function(tilde_, typ_) { - this.$val = this; - if (arguments.length === 0) { - this.tilde = false; - this.typ = $ifaceNil; - return; - } - this.tilde = tilde_; - this.typ = typ_; - }); - Qualifier = $newType(4, $kindFunc, "types.Qualifier", true, "go/types", true, null); - typeWriter = $newType(0, $kindStruct, "types.typeWriter", true, "go/types", false, function(buf_, seen_, qf_, ctxt_, tparams_, paramNames_, tpSubscripts_, pkgInfo_) { - this.$val = this; - if (arguments.length === 0) { - this.buf = ptrType$114.nil; - this.seen = false; - this.qf = $throwNilPointerError; - this.ctxt = ptrType$51.nil; - this.tparams = ptrType$48.nil; - this.paramNames = false; - this.tpSubscripts = false; - this.pkgInfo = false; - return; - } - this.buf = buf_; - this.seen = seen_; - this.qf = qf_; - this.ctxt = ctxt_; - this.tparams = tparams_; - this.paramNames = paramNames_; - this.tpSubscripts = tpSubscripts_; - this.pkgInfo = pkgInfo_; - }); - _TypeSet = $newType(0, $kindStruct, "types._TypeSet", true, "go/types", false, function(methods_, terms_, comparable_) { - this.$val = this; - if (arguments.length === 0) { - this.methods = sliceType.nil; - this.terms = termlist.nil; - this.comparable = false; - return; - } - this.methods = methods_; - this.terms = terms_; - this.comparable = comparable_; - }); - byUniqueMethodName = $newType(12, $kindSlice, "types.byUniqueMethodName", true, "go/types", false, null); - TypeParam = $newType(0, $kindStruct, "types.TypeParam", true, "go/types", true, function(check_, id_, obj_, index_, bound_) { - this.$val = this; - if (arguments.length === 0) { - this.check = ptrType$6.nil; - this.id = new $Uint64(0, 0); - this.obj = ptrType$17.nil; - this.index = 0; - this.bound = $ifaceNil; - return; - } - this.check = check_; - this.id = id_; - this.obj = obj_; - this.index = index_; - this.bound = bound_; - }); - TypeParamList = $newType(0, $kindStruct, "types.TypeParamList", true, "go/types", true, function(tparams_) { - this.$val = this; - if (arguments.length === 0) { - this.tparams = sliceType$9.nil; - return; - } - this.tparams = tparams_; - }); - TypeList = $newType(0, $kindStruct, "types.TypeList", true, "go/types", true, function(types_) { - this.$val = this; - if (arguments.length === 0) { - this.types = sliceType$3.nil; - return; - } - this.types = types_; - }); - Type = $newType(8, $kindInterface, "types.Type", true, "go/types", true, null); - Tuple = $newType(0, $kindStruct, "types.Tuple", true, "go/types", true, function(vars_) { - this.$val = this; - if (arguments.length === 0) { - this.vars = sliceType$10.nil; - return; - } - this.vars = vars_; - }); - termlist = $newType(12, $kindSlice, "types.termlist", true, "go/types", false, null); - substMap = $newType(4, $kindMap, "types.substMap", true, "go/types", false, null); - subster = $newType(0, $kindStruct, "types.subster", true, "go/types", false, function(pos_, smap_, check_, expanding_, ctxt_) { - this.$val = this; - if (arguments.length === 0) { - this.pos = 0; - this.smap = false; - this.check = ptrType$6.nil; - this.expanding = ptrType$9.nil; - this.ctxt = ptrType$51.nil; - return; - } - this.pos = pos_; - this.smap = smap_; - this.check = check_; - this.expanding = expanding_; - this.ctxt = ctxt_; - }); - Struct = $newType(0, $kindStruct, "types.Struct", true, "go/types", true, function(fields_, tags_) { - this.$val = this; - if (arguments.length === 0) { - this.fields = sliceType$10.nil; - this.tags = sliceType$5.nil; - return; - } - this.fields = fields_; - this.tags = tags_; - }); - stmtContext = $newType(4, $kindUint, "types.stmtContext", true, "go/types", false, null); - valueMap = $newType(4, $kindMap, "types.valueMap", true, "go/types", false, null); - valueType = $newType(0, $kindStruct, "types.valueType", true, "go/types", false, function(pos_, typ_) { - this.$val = this; - if (arguments.length === 0) { - this.pos = 0; - this.typ = $ifaceNil; - return; - } - this.pos = pos_; - this.typ = typ_; - }); - Slice = $newType(0, $kindStruct, "types.Slice", true, "go/types", true, function(elem_) { - this.$val = this; - if (arguments.length === 0) { - this.elem = $ifaceNil; - return; - } - this.elem = elem_; - }); - Sizes = $newType(8, $kindInterface, "types.Sizes", true, "go/types", true, null); - StdSizes = $newType(0, $kindStruct, "types.StdSizes", true, "go/types", true, function(WordSize_, MaxAlign_) { - this.$val = this; - if (arguments.length === 0) { - this.WordSize = new $Int64(0, 0); - this.MaxAlign = new $Int64(0, 0); - return; - } - this.WordSize = WordSize_; - this.MaxAlign = MaxAlign_; - }); - Signature = $newType(0, $kindStruct, "types.Signature", true, "go/types", true, function(rparams_, tparams_, scope_, recv_, params_, results_, variadic_) { - this.$val = this; - if (arguments.length === 0) { - this.rparams = ptrType$48.nil; - this.tparams = ptrType$48.nil; - this.scope = ptrType.nil; - this.recv = ptrType$16.nil; - this.params = ptrType$15.nil; - this.results = ptrType$15.nil; - this.variadic = false; - return; - } - this.rparams = rparams_; - this.tparams = tparams_; - this.scope = scope_; - this.recv = recv_; - this.params = params_; - this.results = results_; - this.variadic = variadic_; - }); - SelectionKind = $newType(4, $kindInt, "types.SelectionKind", true, "go/types", true, null); - Selection = $newType(0, $kindStruct, "types.Selection", true, "go/types", true, function(kind_, recv_, obj_, index_, indirect_) { - this.$val = this; - if (arguments.length === 0) { - this.kind = 0; - this.recv = $ifaceNil; - this.obj = $ifaceNil; - this.index = sliceType$13.nil; - this.indirect = false; - return; - } - this.kind = kind_; - this.recv = recv_; - this.obj = obj_; - this.index = index_; - this.indirect = indirect_; - }); - Scope = $newType(0, $kindStruct, "types.Scope", true, "go/types", true, function(parent_, children_, number_, elems_, pos_, end_, comment_, isFunc_) { - this.$val = this; - if (arguments.length === 0) { - this.parent = ptrType.nil; - this.children = sliceType$20.nil; - this.number = 0; - this.elems = false; - this.pos = 0; - this.end = 0; - this.comment = ""; - this.isFunc = false; - return; - } - this.parent = parent_; - this.children = children_; - this.number = number_; - this.elems = elems_; - this.pos = pos_; - this.end = end_; - this.comment = comment_; - this.isFunc = isFunc_; - }); - lazyObject = $newType(0, $kindStruct, "types.lazyObject", true, "go/types", false, function(parent_, resolve_, obj_, once_) { - this.$val = this; - if (arguments.length === 0) { - this.parent = ptrType.nil; - this.resolve = $throwNilPointerError; - this.obj = $ifaceNil; - this.once = new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0)); - return; - } - this.parent = parent_; - this.resolve = resolve_; - this.obj = obj_; - this.once = once_; - }); - declInfo = $newType(0, $kindStruct, "types.declInfo", true, "go/types", false, function(file_, lhs_, vtyp_, init_, inherited_, tdecl_, fdecl_, deps_) { - this.$val = this; - if (arguments.length === 0) { - this.file = ptrType.nil; - this.lhs = sliceType$10.nil; - this.vtyp = $ifaceNil; - this.init = $ifaceNil; - this.inherited = false; - this.tdecl = ptrType$90.nil; - this.fdecl = ptrType$87.nil; - this.deps = false; - return; - } - this.file = file_; - this.lhs = lhs_; - this.vtyp = vtyp_; - this.init = init_; - this.inherited = inherited_; - this.tdecl = tdecl_; - this.fdecl = fdecl_; - this.deps = deps_; - }); - inSourceOrder = $newType(12, $kindSlice, "types.inSourceOrder", true, "go/types", false, null); - ifacePair = $newType(0, $kindStruct, "types.ifacePair", true, "go/types", false, function(x_, y_, prev_) { - this.$val = this; - if (arguments.length === 0) { - this.x = ptrType$13.nil; - this.y = ptrType$13.nil; - this.prev = ptrType$23.nil; - return; - } - this.x = x_; - this.y = y_; - this.prev = prev_; - }); - Pointer = $newType(0, $kindStruct, "types.Pointer", true, "go/types", true, function(base_) { - this.$val = this; - if (arguments.length === 0) { - this.base = $ifaceNil; - return; - } - this.base = base_; - }); - Package = $newType(0, $kindStruct, "types.Package", true, "go/types", true, function(path_, name_, scope_, complete_, imports_, fake_, cgo_) { - this.$val = this; - if (arguments.length === 0) { - this.path = ""; - this.name = ""; - this.scope = ptrType.nil; - this.complete = false; - this.imports = sliceType$24.nil; - this.fake = false; - this.cgo = false; - return; - } - this.path = path_; - this.name = name_; - this.scope = scope_; - this.complete = complete_; - this.imports = imports_; - this.fake = fake_; - this.cgo = cgo_; - }); - operandMode = $newType(1, $kindUint8, "types.operandMode", true, "go/types", false, null); - operand = $newType(0, $kindStruct, "types.operand", true, "go/types", false, function(mode_, expr_, typ_, val_, id_) { - this.$val = this; - if (arguments.length === 0) { - this.mode = 0; - this.expr = $ifaceNil; - this.typ = $ifaceNil; - this.val = $ifaceNil; - this.id = 0; - return; - } - this.mode = mode_; - this.expr = expr_; - this.typ = typ_; - this.val = val_; - this.id = id_; - }); - objset = $newType(4, $kindMap, "types.objset", true, "go/types", false, null); - Object = $newType(8, $kindInterface, "types.Object", true, "go/types", true, null); - object = $newType(0, $kindStruct, "types.object", true, "go/types", false, function(parent_, pos_, pkg_, name_, typ_, order__, color__, scopePos__) { - this.$val = this; - if (arguments.length === 0) { - this.parent = ptrType.nil; - this.pos = 0; - this.pkg = ptrType$1.nil; - this.name = ""; - this.typ = $ifaceNil; - this.order_ = 0; - this.color_ = 0; - this.scopePos_ = 0; - return; - } - this.parent = parent_; - this.pos = pos_; - this.pkg = pkg_; - this.name = name_; - this.typ = typ_; - this.order_ = order__; - this.color_ = color__; - this.scopePos_ = scopePos__; - }); - color = $newType(4, $kindUint32, "types.color", true, "go/types", false, null); - PkgName = $newType(0, $kindStruct, "types.PkgName", true, "go/types", true, function(object_, imported_, used_) { - this.$val = this; - if (arguments.length === 0) { - this.object = new object.ptr(ptrType.nil, 0, ptrType$1.nil, "", $ifaceNil, 0, 0, 0); - this.imported = ptrType$1.nil; - this.used = false; - return; - } - this.object = object_; - this.imported = imported_; - this.used = used_; - }); - Const = $newType(0, $kindStruct, "types.Const", true, "go/types", true, function(object_, val_) { - this.$val = this; - if (arguments.length === 0) { - this.object = new object.ptr(ptrType.nil, 0, ptrType$1.nil, "", $ifaceNil, 0, 0, 0); - this.val = $ifaceNil; - return; - } - this.object = object_; - this.val = val_; - }); - TypeName = $newType(0, $kindStruct, "types.TypeName", true, "go/types", true, function(object_) { - this.$val = this; - if (arguments.length === 0) { - this.object = new object.ptr(ptrType.nil, 0, ptrType$1.nil, "", $ifaceNil, 0, 0, 0); - return; - } - this.object = object_; - }); - Var = $newType(0, $kindStruct, "types.Var", true, "go/types", true, function(object_, embedded_, isField_, used_, origin_) { - this.$val = this; - if (arguments.length === 0) { - this.object = new object.ptr(ptrType.nil, 0, ptrType$1.nil, "", $ifaceNil, 0, 0, 0); - this.embedded = false; - this.isField = false; - this.used = false; - this.origin = ptrType$16.nil; - return; - } - this.object = object_; - this.embedded = embedded_; - this.isField = isField_; - this.used = used_; - this.origin = origin_; - }); - Func = $newType(0, $kindStruct, "types.Func", true, "go/types", true, function(object_, hasPtrRecv__, origin_) { - this.$val = this; - if (arguments.length === 0) { - this.object = new object.ptr(ptrType.nil, 0, ptrType$1.nil, "", $ifaceNil, 0, 0, 0); - this.hasPtrRecv_ = false; - this.origin = ptrType$2.nil; - return; - } - this.object = object_; - this.hasPtrRecv_ = hasPtrRecv__; - this.origin = origin_; - }); - Label = $newType(0, $kindStruct, "types.Label", true, "go/types", true, function(object_, used_) { - this.$val = this; - if (arguments.length === 0) { - this.object = new object.ptr(ptrType.nil, 0, ptrType$1.nil, "", $ifaceNil, 0, 0, 0); - this.used = false; - return; - } - this.object = object_; - this.used = used_; - }); - Builtin = $newType(0, $kindStruct, "types.Builtin", true, "go/types", true, function(object_, id_) { - this.$val = this; - if (arguments.length === 0) { - this.object = new object.ptr(ptrType.nil, 0, ptrType$1.nil, "", $ifaceNil, 0, 0, 0); - this.id = 0; - return; - } - this.object = object_; - this.id = id_; - }); - Nil = $newType(0, $kindStruct, "types.Nil", true, "go/types", true, function(object_) { - this.$val = this; - if (arguments.length === 0) { - this.object = new object.ptr(ptrType.nil, 0, ptrType$1.nil, "", $ifaceNil, 0, 0, 0); - return; - } - this.object = object_; - }); - Named = $newType(0, $kindStruct, "types.Named", true, "go/types", true, function(check_, obj_, fromRHS_, inst_, mu_, state__, underlying_, tparams_, methods_, loader_) { - this.$val = this; - if (arguments.length === 0) { - this.check = ptrType$6.nil; - this.obj = ptrType$17.nil; - this.fromRHS = $ifaceNil; - this.inst = ptrType$52.nil; - this.mu = new sync.Mutex.ptr(0, 0); - this.state_ = 0; - this.underlying = $ifaceNil; - this.tparams = ptrType$48.nil; - this.methods = sliceType.nil; - this.loader = $throwNilPointerError; - return; - } - this.check = check_; - this.obj = obj_; - this.fromRHS = fromRHS_; - this.inst = inst_; - this.mu = mu_; - this.state_ = state__; - this.underlying = underlying_; - this.tparams = tparams_; - this.methods = methods_; - this.loader = loader_; - }); - instance = $newType(0, $kindStruct, "types.instance", true, "go/types", false, function(orig_, targs_, expandedMethods_, ctxt_) { - this.$val = this; - if (arguments.length === 0) { - this.orig = ptrType$9.nil; - this.targs = ptrType$56.nil; - this.expandedMethods = 0; - this.ctxt = ptrType$51.nil; - return; - } - this.orig = orig_; - this.targs = targs_; - this.expandedMethods = expandedMethods_; - this.ctxt = ctxt_; - }); - namedState = $newType(4, $kindUint32, "types.namedState", true, "go/types", false, null); - monoGraph = $newType(0, $kindStruct, "types.monoGraph", true, "go/types", false, function(vertices_, edges_, canon_, nameIdx_) { - this.$val = this; - if (arguments.length === 0) { - this.vertices = sliceType$37.nil; - this.edges = sliceType$38.nil; - this.canon = false; - this.nameIdx = false; - return; - } - this.vertices = vertices_; - this.edges = edges_; - this.canon = canon_; - this.nameIdx = nameIdx_; - }); - monoVertex = $newType(0, $kindStruct, "types.monoVertex", true, "go/types", false, function(weight_, pre_, len_, obj_) { - this.$val = this; - if (arguments.length === 0) { - this.weight = 0; - this.pre = 0; - this.len = 0; - this.obj = ptrType$17.nil; - return; - } - this.weight = weight_; - this.pre = pre_; - this.len = len_; - this.obj = obj_; - }); - monoEdge = $newType(0, $kindStruct, "types.monoEdge", true, "go/types", false, function(dst_, src_, weight_, pos_, typ_) { - this.$val = this; - if (arguments.length === 0) { - this.dst = 0; - this.src = 0; - this.weight = 0; - this.pos = 0; - this.typ = $ifaceNil; - return; - } - this.dst = dst_; - this.src = src_; - this.weight = weight_; - this.pos = pos_; - this.typ = typ_; - }); - MethodSet = $newType(0, $kindStruct, "types.MethodSet", true, "go/types", true, function(list_) { - this.$val = this; - if (arguments.length === 0) { - this.list = sliceType$1.nil; - return; - } - this.list = list_; - }); - methodSet = $newType(4, $kindMap, "types.methodSet", true, "go/types", false, null); - Map = $newType(0, $kindStruct, "types.Map", true, "go/types", true, function(key_, elem_) { - this.$val = this; - if (arguments.length === 0) { - this.key = $ifaceNil; - this.elem = $ifaceNil; - return; - } - this.key = key_; - this.elem = elem_; - }); - embeddedType = $newType(0, $kindStruct, "types.embeddedType", true, "go/types", false, function(typ_, index_, indirect_, multiples_) { - this.$val = this; - if (arguments.length === 0) { - this.typ = $ifaceNil; - this.index = sliceType$13.nil; - this.indirect = false; - this.multiples = false; - return; - } - this.typ = typ_; - this.index = index_; - this.indirect = indirect_; - this.multiples = multiples_; - }); - instanceLookup = $newType(0, $kindStruct, "types.instanceLookup", true, "go/types", false, function(buf_, m_) { - this.$val = this; - if (arguments.length === 0) { - this.buf = arrayType$1.zero(); - this.m = false; - return; - } - this.buf = buf_; - this.m = m_; - }); - block = $newType(0, $kindStruct, "types.block", true, "go/types", false, function(parent_, lstmt_, labels_) { - this.$val = this; - if (arguments.length === 0) { - this.parent = ptrType$92.nil; - this.lstmt = ptrType$65.nil; - this.labels = false; - return; - } - this.parent = parent_; - this.lstmt = lstmt_; - this.labels = labels_; - }); - Interface = $newType(0, $kindStruct, "types.Interface", true, "go/types", true, function(check_, methods_, embeddeds_, embedPos_, implicit_, complete_, tset_) { - this.$val = this; - if (arguments.length === 0) { - this.check = ptrType$6.nil; - this.methods = sliceType.nil; - this.embeddeds = sliceType$3.nil; - this.embedPos = ptrType$7.nil; - this.implicit = false; - this.complete = false; - this.tset = ptrType$8.nil; - return; - } - this.check = check_; - this.methods = methods_; - this.embeddeds = embeddeds_; - this.embedPos = embedPos_; - this.implicit = implicit_; - this.complete = complete_; - this.tset = tset_; - }); - dependency = $newType(8, $kindInterface, "types.dependency", true, "go/types", false, null); - graphNode = $newType(0, $kindStruct, "types.graphNode", true, "go/types", false, function(obj_, pred_, succ_, index_, ndeps_) { - this.$val = this; - if (arguments.length === 0) { - this.obj = $ifaceNil; - this.pred = false; - this.succ = false; - this.index = 0; - this.ndeps = 0; - return; - } - this.obj = obj_; - this.pred = pred_; - this.succ = succ_; - this.index = index_; - this.ndeps = ndeps_; - }); - nodeSet = $newType(4, $kindMap, "types.nodeSet", true, "go/types", false, null); - nodeQueue = $newType(12, $kindSlice, "types.nodeQueue", true, "go/types", false, null); - tpWalker = $newType(0, $kindStruct, "types.tpWalker", true, "go/types", false, function(seen_, tparams_) { - this.$val = this; - if (arguments.length === 0) { - this.seen = false; - this.tparams = sliceType$9.nil; - return; - } - this.seen = seen_; - this.tparams = tparams_; - }); - cycleFinder = $newType(0, $kindStruct, "types.cycleFinder", true, "go/types", false, function(tparams_, types_, seen_) { - this.$val = this; - if (arguments.length === 0) { - this.tparams = sliceType$9.nil; - this.types = sliceType$3.nil; - this.seen = false; - return; - } - this.tparams = tparams_; - this.types = types_; - this.seen = seen_; - }); - opPredicates = $newType(4, $kindMap, "types.opPredicates", true, "go/types", false, null); - exprKind = $newType(4, $kindInt, "types.exprKind", true, "go/types", false, null); - error_ = $newType(0, $kindStruct, "types.error_", true, "go/types", false, function(desc_, code_, soft_) { - this.$val = this; - if (arguments.length === 0) { - this.desc = sliceType$31.nil; - this.code = 0; - this.soft = false; - return; - } - this.desc = desc_; - this.code = code_; - this.soft = soft_; - }); - errorDesc = $newType(0, $kindStruct, "types.errorDesc", true, "go/types", false, function(posn_, format_, args_) { - this.$val = this; - if (arguments.length === 0) { - this.posn = $ifaceNil; - this.format = ""; - this.args = sliceType$6.nil; - return; - } - this.posn = posn_; - this.format = format_; - this.args = args_; - }); - positioner = $newType(8, $kindInterface, "types.positioner", true, "go/types", false, null); - posSpan = $newType(0, $kindStruct, "types.posSpan", true, "go/types", false, function(start_, pos_, end_) { - this.$val = this; - if (arguments.length === 0) { - this.start = 0; - this.pos = 0; - this.end = 0; - return; - } - this.start = start_; - this.pos = pos_; - this.end = end_; - }); - atPos = $newType(4, $kindInt, "types.atPos", true, "go/types", false, null); - decl = $newType(8, $kindInterface, "types.decl", true, "go/types", false, null); - importDecl = $newType(0, $kindStruct, "types.importDecl", true, "go/types", false, function(spec_) { - this.$val = this; - if (arguments.length === 0) { - this.spec = ptrType$106.nil; - return; - } - this.spec = spec_; - }); - constDecl = $newType(0, $kindStruct, "types.constDecl", true, "go/types", false, function(spec_, iota_, typ_, init_, inherited_) { - this.$val = this; - if (arguments.length === 0) { - this.spec = ptrType$88.nil; - this.iota = 0; - this.typ = $ifaceNil; - this.init = sliceType$11.nil; - this.inherited = false; - return; - } - this.spec = spec_; - this.iota = iota_; - this.typ = typ_; - this.init = init_; - this.inherited = inherited_; - }); - varDecl = $newType(0, $kindStruct, "types.varDecl", true, "go/types", false, function(spec_) { - this.$val = this; - if (arguments.length === 0) { - this.spec = ptrType$88.nil; - return; - } - this.spec = spec_; - }); - typeDecl = $newType(0, $kindStruct, "types.typeDecl", true, "go/types", false, function(spec_) { - this.$val = this; - if (arguments.length === 0) { - this.spec = ptrType$90.nil; - return; - } - this.spec = spec_; - }); - funcDecl = $newType(0, $kindStruct, "types.funcDecl", true, "go/types", false, function(decl_) { - this.$val = this; - if (arguments.length === 0) { - this.decl = ptrType$87.nil; - return; - } - this.decl = decl_; - }); - Context = $newType(0, $kindStruct, "types.Context", true, "go/types", true, function(mu_, typeMap_, nextID_, originIDs_) { - this.$val = this; - if (arguments.length === 0) { - this.mu = new sync.Mutex.ptr(0, 0); - this.typeMap = false; - this.nextID = 0; - this.originIDs = false; - return; - } - this.mu = mu_; - this.typeMap = typeMap_; - this.nextID = nextID_; - this.originIDs = originIDs_; - }); - ctxtEntry = $newType(0, $kindStruct, "types.ctxtEntry", true, "go/types", false, function(orig_, targs_, instance_) { - this.$val = this; - if (arguments.length === 0) { - this.orig = $ifaceNil; - this.targs = sliceType$3.nil; - this.instance = $ifaceNil; - return; - } - this.orig = orig_; - this.targs = targs_; - this.instance = instance_; - }); - exprInfo = $newType(0, $kindStruct, "types.exprInfo", true, "go/types", false, function(isLhs_, mode_, typ_, val_) { - this.$val = this; - if (arguments.length === 0) { - this.isLhs = false; - this.mode = 0; - this.typ = ptrType$4.nil; - this.val = $ifaceNil; - return; - } - this.isLhs = isLhs_; - this.mode = mode_; - this.typ = typ_; - this.val = val_; - }); - environment = $newType(0, $kindStruct, "types.environment", true, "go/types", false, function(decl_, scope_, pos_, iota_, errpos_, inTParamList_, sig_, isPanic_, hasLabel_, hasCallOrRecv_) { - this.$val = this; - if (arguments.length === 0) { - this.decl = ptrType$58.nil; - this.scope = ptrType.nil; - this.pos = 0; - this.iota = $ifaceNil; - this.errpos = $ifaceNil; - this.inTParamList = false; - this.sig = ptrType$27.nil; - this.isPanic = false; - this.hasLabel = false; - this.hasCallOrRecv = false; - return; - } - this.decl = decl_; - this.scope = scope_; - this.pos = pos_; - this.iota = iota_; - this.errpos = errpos_; - this.inTParamList = inTParamList_; - this.sig = sig_; - this.isPanic = isPanic_; - this.hasLabel = hasLabel_; - this.hasCallOrRecv = hasCallOrRecv_; - }); - importKey = $newType(0, $kindStruct, "types.importKey", true, "go/types", false, function(path_, dir_) { - this.$val = this; - if (arguments.length === 0) { - this.path = ""; - this.dir = ""; - return; - } - this.path = path_; - this.dir = dir_; - }); - dotImportKey = $newType(0, $kindStruct, "types.dotImportKey", true, "go/types", false, function(scope_, name_) { - this.$val = this; - if (arguments.length === 0) { - this.scope = ptrType.nil; - this.name = ""; - return; - } - this.scope = scope_; - this.name = name_; - }); - action = $newType(0, $kindStruct, "types.action", true, "go/types", false, function(f_, desc_) { - this.$val = this; - if (arguments.length === 0) { - this.f = $throwNilPointerError; - this.desc = ptrType$109.nil; - return; - } - this.f = f_; - this.desc = desc_; - }); - actionDesc = $newType(0, $kindStruct, "types.actionDesc", true, "go/types", false, function(pos_, format_, args_) { + os = $packages["os"]; + sort = $packages["sort"]; + strconv = $packages["strconv"]; + strings = $packages["strings"]; + sync = $packages["sync"]; + tabwriter = $packages["text/tabwriter"]; + unicode = $packages["unicode"]; + utf8 = $packages["unicode/utf8"]; + whiteSpace = $newType(1, $kindUint8, "printer.whiteSpace", true, "go/printer", false, null); + pmode = $newType(4, $kindInt, "printer.pmode", true, "go/printer", false, null); + commentInfo = $newType(0, $kindStruct, "printer.commentInfo", true, "go/printer", false, function(cindex_, comment_, commentOffset_, commentNewline_) { this.$val = this; if (arguments.length === 0) { - this.pos = $ifaceNil; - this.format = ""; - this.args = sliceType$6.nil; + this.cindex = 0; + this.comment = ptrType$2.nil; + this.commentOffset = 0; + this.commentNewline = false; return; } - this.pos = pos_; - this.format = format_; - this.args = args_; + this.cindex = cindex_; + this.comment = comment_; + this.commentOffset = commentOffset_; + this.commentNewline = commentNewline_; }); - Checker = $newType(0, $kindStruct, "types.Checker", true, "go/types", true, function(conf_, ctxt_, fset_, pkg_, Info_, version_, nextID_, objMap_, impMap_, valids_, pkgPathMap_, seenPkgMap_, files_, imports_, dotImportMap_, recvTParamMap_, brokenAliases_, unionTypeSets_, mono_, firstErr_, methods_, untyped_, delayed_, objPath_, cleaners_, environment_, indent_) { + printer = $newType(0, $kindStruct, "printer.printer", true, "go/printer", false, function(Config_, fset_, output_, indent_, level_, mode_, endAlignment_, impliedSemi_, lastTok_, prevOpen_, wsbuf_, goBuild_, plusBuild_, pos_, out_, last_, linePtr_, sourcePosErr_, comments_, useNodeComments_, commentInfo_, nodeSizes_, cachedPos_, cachedLine_) { this.$val = this; if (arguments.length === 0) { - this.conf = ptrType$101.nil; - this.ctxt = ptrType$51.nil; - this.fset = ptrType$24.nil; - this.pkg = ptrType$1.nil; - this.Info = ptrType$110.nil; - this.version = new version.ptr(0, 0); - this.nextID = new $Uint64(0, 0); - this.objMap = false; - this.impMap = false; - this.valids = new instanceLookup.ptr(arrayType$1.zero(), false); - this.pkgPathMap = false; - this.seenPkgMap = false; - this.files = sliceType$35.nil; - this.imports = sliceType$36.nil; - this.dotImportMap = false; - this.recvTParamMap = false; - this.brokenAliases = false; - this.unionTypeSets = false; - this.mono = new monoGraph.ptr(sliceType$37.nil, sliceType$38.nil, false, false); - this.firstErr = $ifaceNil; - this.methods = false; - this.untyped = false; - this.delayed = sliceType$39.nil; - this.objPath = sliceType$8.nil; - this.cleaners = sliceType$40.nil; - this.environment = new environment.ptr(ptrType$58.nil, ptrType.nil, 0, $ifaceNil, $ifaceNil, false, ptrType$27.nil, false, false, false); + this.Config = new Config.ptr(0, 0, 0); + this.fset = ptrType.nil; + this.output = sliceType.nil; this.indent = 0; + this.level = 0; + this.mode = 0; + this.endAlignment = false; + this.impliedSemi = false; + this.lastTok = 0; + this.prevOpen = 0; + this.wsbuf = sliceType$2.nil; + this.goBuild = sliceType$3.nil; + this.plusBuild = sliceType$3.nil; + this.pos = new token.Position.ptr("", 0, 0, 0); + this.out = new token.Position.ptr("", 0, 0, 0); + this.last = new token.Position.ptr("", 0, 0, 0); + this.linePtr = ptrType$1.nil; + this.sourcePosErr = $ifaceNil; + this.comments = sliceType$4.nil; + this.useNodeComments = false; + this.commentInfo = new commentInfo.ptr(0, ptrType$2.nil, 0, false); + this.nodeSizes = false; + this.cachedPos = 0; + this.cachedLine = 0; return; } - this.conf = conf_; - this.ctxt = ctxt_; + this.Config = Config_; this.fset = fset_; - this.pkg = pkg_; - this.Info = Info_; - this.version = version_; - this.nextID = nextID_; - this.objMap = objMap_; - this.impMap = impMap_; - this.valids = valids_; - this.pkgPathMap = pkgPathMap_; - this.seenPkgMap = seenPkgMap_; - this.files = files_; - this.imports = imports_; - this.dotImportMap = dotImportMap_; - this.recvTParamMap = recvTParamMap_; - this.brokenAliases = brokenAliases_; - this.unionTypeSets = unionTypeSets_; - this.mono = mono_; - this.firstErr = firstErr_; - this.methods = methods_; - this.untyped = untyped_; - this.delayed = delayed_; - this.objPath = objPath_; - this.cleaners = cleaners_; - this.environment = environment_; + this.output = output_; this.indent = indent_; + this.level = level_; + this.mode = mode_; + this.endAlignment = endAlignment_; + this.impliedSemi = impliedSemi_; + this.lastTok = lastTok_; + this.prevOpen = prevOpen_; + this.wsbuf = wsbuf_; + this.goBuild = goBuild_; + this.plusBuild = plusBuild_; + this.pos = pos_; + this.out = out_; + this.last = last_; + this.linePtr = linePtr_; + this.sourcePosErr = sourcePosErr_; + this.comments = comments_; + this.useNodeComments = useNodeComments_; + this.commentInfo = commentInfo_; + this.nodeSizes = nodeSizes_; + this.cachedPos = cachedPos_; + this.cachedLine = cachedLine_; }); - cleaner = $newType(8, $kindInterface, "types.cleaner", true, "go/types", false, null); - bailout = $newType(0, $kindStruct, "types.bailout", true, "go/types", false, function() { this.$val = this; }); - Chan = $newType(0, $kindStruct, "types.Chan", true, "go/types", true, function(dir_, elem_) { - this.$val = this; - if (arguments.length === 0) { - this.dir = 0; - this.elem = $ifaceNil; - return; - } - this.dir = dir_; - this.elem = elem_; - }); - ChanDir = $newType(4, $kindInt, "types.ChanDir", true, "go/types", true, null); - BasicKind = $newType(4, $kindInt, "types.BasicKind", true, "go/types", true, null); - BasicInfo = $newType(4, $kindInt, "types.BasicInfo", true, "go/types", true, null); - Basic = $newType(0, $kindStruct, "types.Basic", true, "go/types", true, function(kind_, info_, name_) { - this.$val = this; - if (arguments.length === 0) { - this.kind = 0; - this.info = 0; - this.name = ""; - return; - } - this.kind = kind_; - this.info = info_; - this.name = name_; - }); - Array = $newType(0, $kindStruct, "types.Array", true, "go/types", true, function(len_, elem_) { - this.$val = this; - if (arguments.length === 0) { - this.len = new $Int64(0, 0); - this.elem = $ifaceNil; - return; - } - this.len = len_; - this.elem = elem_; - }); - Error = $newType(0, $kindStruct, "types.Error", true, "go/types", true, function(Fset_, Pos_, Msg_, Soft_, go116code_, go116start_, go116end_) { - this.$val = this; - if (arguments.length === 0) { - this.Fset = ptrType$24.nil; - this.Pos = 0; - this.Msg = ""; - this.Soft = false; - this.go116code = 0; - this.go116start = 0; - this.go116end = 0; - return; - } - this.Fset = Fset_; - this.Pos = Pos_; - this.Msg = Msg_; - this.Soft = Soft_; - this.go116code = go116code_; - this.go116start = go116start_; - this.go116end = go116end_; - }); - Importer = $newType(8, $kindInterface, "types.Importer", true, "go/types", true, null); - ImportMode = $newType(4, $kindInt, "types.ImportMode", true, "go/types", true, null); - ImporterFrom = $newType(8, $kindInterface, "types.ImporterFrom", true, "go/types", true, null); - Config = $newType(0, $kindStruct, "types.Config", true, "go/types", true, function(Context_, GoVersion_, IgnoreFuncBodies_, FakeImportC_, go115UsesCgo_, Error_, Importer_, Sizes_, DisableUnusedImportCheck_, oldComparableSemantics_) { - this.$val = this; - if (arguments.length === 0) { - this.Context = ptrType$51.nil; - this.GoVersion = ""; - this.IgnoreFuncBodies = false; - this.FakeImportC = false; - this.go115UsesCgo = false; - this.Error = $throwNilPointerError; - this.Importer = $ifaceNil; - this.Sizes = $ifaceNil; - this.DisableUnusedImportCheck = false; - this.oldComparableSemantics = false; - return; - } - this.Context = Context_; - this.GoVersion = GoVersion_; - this.IgnoreFuncBodies = IgnoreFuncBodies_; - this.FakeImportC = FakeImportC_; - this.go115UsesCgo = go115UsesCgo_; - this.Error = Error_; - this.Importer = Importer_; - this.Sizes = Sizes_; - this.DisableUnusedImportCheck = DisableUnusedImportCheck_; - this.oldComparableSemantics = oldComparableSemantics_; - }); - Info = $newType(0, $kindStruct, "types.Info", true, "go/types", true, function(Types_, Instances_, Defs_, Uses_, Implicits_, Selections_, Scopes_, InitOrder_) { - this.$val = this; - if (arguments.length === 0) { - this.Types = false; - this.Instances = false; - this.Defs = false; - this.Uses = false; - this.Implicits = false; - this.Selections = false; - this.Scopes = false; - this.InitOrder = sliceType$30.nil; - return; - } - this.Types = Types_; - this.Instances = Instances_; - this.Defs = Defs_; - this.Uses = Uses_; - this.Implicits = Implicits_; - this.Selections = Selections_; - this.Scopes = Scopes_; - this.InitOrder = InitOrder_; - }); - TypeAndValue = $newType(0, $kindStruct, "types.TypeAndValue", true, "go/types", true, function(mode_, Type_, Value_) { + trimmer = $newType(0, $kindStruct, "printer.trimmer", true, "go/printer", false, function(output_, state_, space_) { this.$val = this; if (arguments.length === 0) { - this.mode = 0; - this.Type = $ifaceNil; - this.Value = $ifaceNil; + this.output = $ifaceNil; + this.state = 0; + this.space = sliceType.nil; return; } - this.mode = mode_; - this.Type = Type_; - this.Value = Value_; + this.output = output_; + this.state = state_; + this.space = space_; }); - Instance = $newType(0, $kindStruct, "types.Instance", true, "go/types", true, function(TypeArgs_, Type_) { + Mode = $newType(4, $kindUint, "printer.Mode", true, "go/printer", true, null); + Config = $newType(0, $kindStruct, "printer.Config", true, "go/printer", true, function(Mode_, Tabwidth_, Indent_) { this.$val = this; if (arguments.length === 0) { - this.TypeArgs = ptrType$56.nil; - this.Type = $ifaceNil; + this.Mode = 0; + this.Tabwidth = 0; + this.Indent = 0; return; } - this.TypeArgs = TypeArgs_; - this.Type = Type_; + this.Mode = Mode_; + this.Tabwidth = Tabwidth_; + this.Indent = Indent_; }); - Initializer = $newType(0, $kindStruct, "types.Initializer", true, "go/types", true, function(Lhs_, Rhs_) { + CommentedNode = $newType(0, $kindStruct, "printer.CommentedNode", true, "go/printer", true, function(Node_, Comments_) { this.$val = this; if (arguments.length === 0) { - this.Lhs = sliceType$10.nil; - this.Rhs = $ifaceNil; + this.Node = $ifaceNil; + this.Comments = sliceType$4.nil; return; } - this.Lhs = Lhs_; - this.Rhs = Rhs_; + this.Node = Node_; + this.Comments = Comments_; }); - methodInfo = $newType(0, $kindStruct, "types.methodInfo", true, "go/types", false, function(obj_, ptr_, recv_) { + exprListMode = $newType(4, $kindUint, "printer.exprListMode", true, "go/printer", false, null); + paramMode = $newType(4, $kindInt, "printer.paramMode", true, "go/printer", false, null); + sizeCounter = $newType(0, $kindStruct, "printer.sizeCounter", true, "go/printer", false, function(hasNewline_, size_) { this.$val = this; if (arguments.length === 0) { - this.obj = ptrType$2.nil; - this.ptr = false; - this.recv = ptrType$30.nil; + this.hasNewline = false; + this.size = 0; return; } - this.obj = obj_; - this.ptr = ptr_; - this.recv = recv_; + this.hasNewline = hasNewline_; + this.size = size_; }); - $pkg.version = version; - $pkg.builtinId = builtinId; - $pkg.Union = Union; - $pkg.Term = Term; - $pkg.unifier = unifier; - $pkg.tparamsList = tparamsList; - $pkg.term = term; - $pkg.Qualifier = Qualifier; - $pkg.typeWriter = typeWriter; - $pkg._TypeSet = _TypeSet; - $pkg.byUniqueMethodName = byUniqueMethodName; - $pkg.TypeParam = TypeParam; - $pkg.TypeParamList = TypeParamList; - $pkg.TypeList = TypeList; - $pkg.Type = Type; - $pkg.Tuple = Tuple; - $pkg.termlist = termlist; - $pkg.substMap = substMap; - $pkg.subster = subster; - $pkg.Struct = Struct; - $pkg.stmtContext = stmtContext; - $pkg.valueMap = valueMap; - $pkg.valueType = valueType; - $pkg.Slice = Slice; - $pkg.Sizes = Sizes; - $pkg.StdSizes = StdSizes; - $pkg.Signature = Signature; - $pkg.SelectionKind = SelectionKind; - $pkg.Selection = Selection; - $pkg.Scope = Scope; - $pkg.lazyObject = lazyObject; - $pkg.declInfo = declInfo; - $pkg.inSourceOrder = inSourceOrder; - $pkg.ifacePair = ifacePair; - $pkg.Pointer = Pointer; - $pkg.Package = Package; - $pkg.operandMode = operandMode; - $pkg.operand = operand; - $pkg.objset = objset; - $pkg.Object = Object; - $pkg.object = object; - $pkg.color = color; - $pkg.PkgName = PkgName; - $pkg.Const = Const; - $pkg.TypeName = TypeName; - $pkg.Var = Var; - $pkg.Func = Func; - $pkg.Label = Label; - $pkg.Builtin = Builtin; - $pkg.Nil = Nil; - $pkg.Named = Named; - $pkg.instance = instance; - $pkg.namedState = namedState; - $pkg.monoGraph = monoGraph; - $pkg.monoVertex = monoVertex; - $pkg.monoEdge = monoEdge; - $pkg.MethodSet = MethodSet; - $pkg.methodSet = methodSet; - $pkg.Map = Map; - $pkg.embeddedType = embeddedType; - $pkg.instanceLookup = instanceLookup; - $pkg.block = block; - $pkg.Interface = Interface; - $pkg.dependency = dependency; - $pkg.graphNode = graphNode; - $pkg.nodeSet = nodeSet; - $pkg.nodeQueue = nodeQueue; - $pkg.tpWalker = tpWalker; - $pkg.cycleFinder = cycleFinder; - $pkg.opPredicates = opPredicates; - $pkg.exprKind = exprKind; - $pkg.error_ = error_; - $pkg.errorDesc = errorDesc; - $pkg.positioner = positioner; - $pkg.posSpan = posSpan; - $pkg.atPos = atPos; - $pkg.decl = decl; - $pkg.importDecl = importDecl; - $pkg.constDecl = constDecl; - $pkg.varDecl = varDecl; - $pkg.typeDecl = typeDecl; - $pkg.funcDecl = funcDecl; - $pkg.Context = Context; - $pkg.ctxtEntry = ctxtEntry; - $pkg.exprInfo = exprInfo; - $pkg.environment = environment; - $pkg.importKey = importKey; - $pkg.dotImportKey = dotImportKey; - $pkg.action = action; - $pkg.actionDesc = actionDesc; - $pkg.Checker = Checker; - $pkg.cleaner = cleaner; - $pkg.bailout = bailout; - $pkg.Chan = Chan; - $pkg.ChanDir = ChanDir; - $pkg.BasicKind = BasicKind; - $pkg.BasicInfo = BasicInfo; - $pkg.Basic = Basic; - $pkg.Array = Array; - $pkg.Error = Error; - $pkg.Importer = Importer; - $pkg.ImportMode = ImportMode; - $pkg.ImporterFrom = ImporterFrom; + $pkg.whiteSpace = whiteSpace; + $pkg.pmode = pmode; + $pkg.commentInfo = commentInfo; + $pkg.printer = printer; + $pkg.trimmer = trimmer; + $pkg.Mode = Mode; $pkg.Config = Config; - $pkg.Info = Info; - $pkg.TypeAndValue = TypeAndValue; - $pkg.Instance = Instance; - $pkg.Initializer = Initializer; - $pkg.methodInfo = methodInfo; + $pkg.CommentedNode = CommentedNode; + $pkg.exprListMode = exprListMode; + $pkg.paramMode = paramMode; + $pkg.sizeCounter = sizeCounter; $pkg.$finishSetup = function() { - ptrType = $ptrType(Scope); - ptrType$1 = $ptrType(Package); - ptrType$2 = $ptrType(Func); - sliceType = $sliceType(ptrType$2); - ptrType$3 = $ptrType(Selection); - sliceType$1 = $sliceType(ptrType$3); - ptrType$4 = $ptrType(Basic); - sliceType$2 = $sliceType(ptrType$4); - structType = $structType("go/types", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "kind", name: "kind", embedded: false, exported: false, typ: BasicKind, tag: ""}, {prop: "val", name: "val", embedded: false, exported: false, typ: constant.Value, tag: ""}]); - structType$1 = $structType("go/types", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "nargs", name: "nargs", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "variadic", name: "variadic", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "kind", name: "kind", embedded: false, exported: false, typ: exprKind, tag: ""}]); - ptrType$5 = $ptrType(term); - ptrType$6 = $ptrType(Checker); - sliceType$3 = $sliceType(Type); - sliceType$4 = $sliceType(token.Pos); - ptrType$7 = $ptrType(sliceType$4); - ptrType$8 = $ptrType(_TypeSet); - sliceType$5 = $sliceType($String); - sliceType$6 = $sliceType($emptyInterface); - ptrType$9 = $ptrType(Named); - sliceType$7 = $sliceType(ptrType$9); - ptrType$10 = $ptrType(Array); - ptrType$11 = $ptrType(Struct); - ptrType$12 = $ptrType(Union); - ptrType$13 = $ptrType(Interface); - ptrType$14 = $ptrType(TypeParam); - sliceType$8 = $sliceType(Object); - sliceType$9 = $sliceType(ptrType$14); - ptrType$15 = $ptrType(Tuple); - ptrType$16 = $ptrType(Var); - sliceType$10 = $sliceType(ptrType$16); - ptrType$17 = $ptrType(TypeName); - ptrType$18 = $ptrType(Builtin); - sliceType$11 = $sliceType(ast.Expr); - ptrType$19 = $ptrType(Term); - sliceType$12 = $sliceType(ptrType$19); - ptrType$20 = $ptrType(ast.UnaryExpr); - ptrType$21 = $ptrType(ast.BinaryExpr); - ptrType$22 = $ptrType(unifier); - sliceType$13 = $sliceType($Int); - ptrType$23 = $ptrType(ifacePair); - ptrType$24 = $ptrType(token.FileSet); - sliceType$14 = $sliceType($Uint8); - ptrType$25 = $ptrType(Slice); - ptrType$26 = $ptrType(Pointer); - ptrType$27 = $ptrType(Signature); - ptrType$28 = $ptrType(Map); - ptrType$29 = $ptrType(Chan); - ptrType$30 = $ptrType(ast.Ident); - ptrType$31 = $ptrType(PkgName); - ptrType$32 = $ptrType(Const); - ptrType$33 = $ptrType(Nil); - ptrType$34 = $ptrType($String); - ptrType$35 = $ptrType(ast.BadExpr); - ptrType$36 = $ptrType(ast.SelectorExpr); - ptrType$37 = $ptrType(ast.IndexExpr); - ptrType$38 = $ptrType(ast.IndexListExpr); - ptrType$39 = $ptrType(ast.ParenExpr); - ptrType$40 = $ptrType(ast.ArrayType); - ptrType$41 = $ptrType(ast.Ellipsis); - ptrType$42 = $ptrType(ast.StructType); - ptrType$43 = $ptrType(ast.StarExpr); - ptrType$44 = $ptrType(ast.FuncType); - ptrType$45 = $ptrType(ast.InterfaceType); - ptrType$46 = $ptrType(ast.MapType); - ptrType$47 = $ptrType(ast.ChanType); - ptrType$48 = $ptrType(TypeParamList); - ptrType$49 = $ptrType(ast.FieldList); - ptrType$50 = $ptrType(constant.Value); - ptrType$51 = $ptrType(Context); - ptrType$52 = $ptrType(instance); - arrayType = $arrayType($Uint8, 96); - ptrType$53 = $ptrType(strings.Builder); - ptrType$54 = $ptrType(objset); - ptrType$55 = $ptrType($Uint32); - ptrType$56 = $ptrType(TypeList); - sliceType$15 = $sliceType($Bool); - sliceType$16 = $sliceType(ptrType$5); - ptrType$57 = $ptrType(ast.BasicLit); - ptrType$58 = $ptrType(declInfo); - ptrType$59 = $ptrType(ast.EmptyStmt); - sliceType$17 = $sliceType(ast.Stmt); - ptrType$60 = $ptrType(ast.CaseClause); - ptrType$61 = $ptrType(ast.CommClause); - sliceType$18 = $sliceType(valueType); - ptrType$62 = $ptrType(operand); - ptrType$63 = $ptrType(ast.BadStmt); - ptrType$64 = $ptrType(ast.DeclStmt); - ptrType$65 = $ptrType(ast.LabeledStmt); - ptrType$66 = $ptrType(ast.ExprStmt); - ptrType$67 = $ptrType(ast.SendStmt); - ptrType$68 = $ptrType(ast.IncDecStmt); - ptrType$69 = $ptrType(ast.AssignStmt); - ptrType$70 = $ptrType(ast.GoStmt); - ptrType$71 = $ptrType(ast.DeferStmt); - ptrType$72 = $ptrType(ast.ReturnStmt); - ptrType$73 = $ptrType(ast.BranchStmt); - ptrType$74 = $ptrType(ast.BlockStmt); - ptrType$75 = $ptrType(ast.IfStmt); - ptrType$76 = $ptrType(ast.SwitchStmt); - ptrType$77 = $ptrType(ast.TypeSwitchStmt); - ptrType$78 = $ptrType(ast.SelectStmt); - ptrType$79 = $ptrType(ast.ForStmt); - ptrType$80 = $ptrType(ast.RangeStmt); - ptrType$81 = $ptrType(ast.Object); - ptrType$82 = $ptrType(ast.TypeAssertExpr); - sliceType$19 = $sliceType($Int64); - ptrType$83 = $ptrType(StdSizes); - ptrType$84 = $ptrType(ptrType$48); - sliceType$20 = $sliceType(ptrType); - ptrType$85 = $ptrType(lazyObject); - ptrType$86 = $ptrType(ast.CallExpr); - ptrType$87 = $ptrType(ast.FuncDecl); - ptrType$88 = $ptrType(ast.ValueSpec); - sliceType$21 = $sliceType(methodInfo); - ptrType$89 = $ptrType(token.File); - ptrType$90 = $ptrType(ast.TypeSpec); - sliceType$22 = $sliceType(ptrType$30); - sliceType$23 = $sliceType(ptrType$17); - sliceType$24 = $sliceType(ptrType$1); - ptrType$91 = $ptrType(Label); - sliceType$25 = $sliceType(embeddedType); - arrayType$1 = $arrayType(ptrType$9, 3); - ptrType$92 = $ptrType(block); - sliceType$26 = $sliceType(ptrType$73); - ptrType$93 = $ptrType(ast.GenDecl); - sliceType$27 = $sliceType(ptrType$51); - ptrType$94 = $ptrType(nodeQueue); - ptrType$95 = $ptrType(graphNode); - ptrType$96 = $ptrType(nodeSet); - sliceType$28 = $sliceType(ptrType$95); - sliceType$29 = $sliceType(ptrType$62); - arrayType$2 = $arrayType($Int64, 3); - ptrType$97 = $ptrType(ast.KeyValueExpr); - ptrType$98 = $ptrType(ast.FuncLit); - ptrType$99 = $ptrType(ast.CompositeLit); - ptrType$100 = $ptrType(ast.SliceExpr); - ptrType$101 = $ptrType(Config); - ptrType$102 = $ptrType(Initializer); - sliceType$30 = $sliceType(ptrType$102); - ptrType$103 = $ptrType($error); - sliceType$31 = $sliceType(errorDesc); - ptrType$104 = $ptrType(error_); - ptrType$105 = $ptrType(ast.BadDecl); - ptrType$106 = $ptrType(ast.ImportSpec); - ptrType$107 = $ptrType(ast.CommentGroup); - ptrType$108 = $ptrType(ast.Field); - sliceType$32 = $sliceType(ptrType$108); - sliceType$33 = $sliceType(ptrType$32); - sliceType$34 = $sliceType(ctxtEntry); - ptrType$109 = $ptrType(actionDesc); - ptrType$110 = $ptrType(Info); - ptrType$111 = $ptrType(ast.File); - sliceType$35 = $sliceType(ptrType$111); - sliceType$36 = $sliceType(ptrType$31); - sliceType$37 = $sliceType(monoVertex); - sliceType$38 = $sliceType(monoEdge); - sliceType$39 = $sliceType(action); - sliceType$40 = $sliceType(cleaner); - funcType$1 = $funcType([], [], false); - ptrType$112 = $ptrType(typeparams.IndexExpr); - sliceType$41 = $sliceType(operand); - arrayType$3 = $arrayType(Type, 2); - ptrType$113 = $ptrType(tparamsList); - ptrType$114 = $ptrType(bytes.Buffer); - ptrType$115 = $ptrType(typeWriter); - mapType = $mapType(Type, $Bool); - funcType$2 = $funcType([ptrType$5], [$Bool], false); - funcType$3 = $funcType([Type], [$Bool], false); - ptrType$116 = $ptrType(subster); - funcType$4 = $funcType([], [Object], false); - funcType$5 = $funcType([Object, Object], [], false); - mapType$1 = $mapType($String, Object); - mapType$2 = $mapType(Object, $Bool); - ptrType$117 = $ptrType(object); - funcType$6 = $funcType([ptrType$9], [sliceType$9, Type, sliceType], false); - ptrType$118 = $ptrType(monoGraph); - mapType$3 = $mapType(ptrType$14, ptrType$14); - mapType$4 = $mapType(ptrType$17, $Int); - ptrType$119 = $ptrType(MethodSet); - ptrType$120 = $ptrType(instanceLookup); - mapType$5 = $mapType(ptrType$9, sliceType$7); - mapType$6 = $mapType($String, ptrType$65); - ptrType$121 = $ptrType(tpWalker); - ptrType$122 = $ptrType(cycleFinder); - mapType$7 = $mapType($String, sliceType$34); - mapType$8 = $mapType(Type, $Int); - ptrType$123 = $ptrType(environment); - mapType$9 = $mapType(ptrType$86, $Bool); - ptrType$124 = $ptrType(action); - mapType$10 = $mapType(Type, ast.Expr); - sliceType$42 = $sliceType(ast.Decl); - funcType$7 = $funcType([decl], [], false); - funcType$8 = $funcType([Type], [Type], false); - mapType$11 = $mapType(Object, ptrType$58); - mapType$12 = $mapType(importKey, ptrType$1); - mapType$13 = $mapType($String, $Bool); - mapType$14 = $mapType($String, mapType$13); - mapType$15 = $mapType(ptrType$1, $Bool); - mapType$16 = $mapType(dotImportKey, ptrType$31); - mapType$17 = $mapType(ptrType$30, ptrType$14); - mapType$18 = $mapType(ptrType$17, $Bool); - mapType$19 = $mapType(ptrType$12, ptrType$8); - mapType$20 = $mapType(ptrType$17, sliceType); - mapType$21 = $mapType(ast.Expr, exprInfo); - funcType$9 = $funcType([$error], [], false); - mapType$22 = $mapType(ast.Expr, TypeAndValue); - mapType$23 = $mapType(ptrType$30, Instance); - mapType$24 = $mapType(ptrType$30, Object); - mapType$25 = $mapType(ast.Node, Object); - mapType$26 = $mapType(ptrType$36, ptrType$3); - mapType$27 = $mapType(ast.Node, ptrType); - $ptrType(Checker).prototype.langCompat = function langCompat(lit) { - var {check, lit, radix, s, $s, $r, $c} = $restore(this, {lit}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - s = lit.Value; - if (s.length <= 2 || check.allowVersion(check.pkg, 1, 13)) { - $s = -1; return; - } - /* */ if (strings.Contains(s, "_")) { $s = 1; continue; } + sliceType = $sliceType($Uint8); + sliceType$1 = $sliceType($emptyInterface); + ptrType = $ptrType(token.FileSet); + sliceType$2 = $sliceType(whiteSpace); + sliceType$3 = $sliceType($Int); + ptrType$1 = $ptrType($Int); + ptrType$2 = $ptrType(ast.CommentGroup); + sliceType$4 = $sliceType(ptrType$2); + ptrType$3 = $ptrType(ast.Comment); + ptrType$4 = $ptrType(ast.Ident); + ptrType$5 = $ptrType(ast.BasicLit); + ptrType$6 = $ptrType(ast.Field); + ptrType$7 = $ptrType(ast.ImportSpec); + ptrType$8 = $ptrType(ast.ValueSpec); + ptrType$9 = $ptrType(ast.TypeSpec); + ptrType$10 = $ptrType(ast.GenDecl); + ptrType$11 = $ptrType(ast.FuncDecl); + ptrType$12 = $ptrType(ast.File); + ptrType$13 = $ptrType(CommentedNode); + sliceType$5 = $sliceType(ast.Stmt); + sliceType$6 = $sliceType(ast.Decl); + ptrType$14 = $ptrType(ast.LabeledStmt); + ptrType$15 = $ptrType(printer); + ptrType$16 = $ptrType(Config); + ptrType$17 = $ptrType(tabwriter.Writer); + sliceType$7 = $sliceType(ast.Expr); + ptrType$18 = $ptrType(ast.KeyValueExpr); + ptrType$19 = $ptrType(ast.StarExpr); + ptrType$20 = $ptrType(ast.BinaryExpr); + ptrType$21 = $ptrType(ast.ParenExpr); + ptrType$22 = $ptrType(ast.ArrayType); + ptrType$23 = $ptrType(ast.StructType); + ptrType$24 = $ptrType(ast.FuncType); + ptrType$25 = $ptrType(ast.InterfaceType); + ptrType$26 = $ptrType(ast.MapType); + ptrType$27 = $ptrType(ast.ChanType); + ptrType$28 = $ptrType(ast.UnaryExpr); + ptrType$29 = $ptrType(ast.FieldList); + sliceType$8 = $sliceType(ptrType$4); + sliceType$9 = $sliceType(ptrType$3); + ptrType$30 = $ptrType(ast.BadExpr); + ptrType$31 = $ptrType(ast.FuncLit); + ptrType$32 = $ptrType(ast.SelectorExpr); + ptrType$33 = $ptrType(ast.TypeAssertExpr); + ptrType$34 = $ptrType(ast.IndexExpr); + ptrType$35 = $ptrType(ast.IndexListExpr); + ptrType$36 = $ptrType(ast.SliceExpr); + ptrType$37 = $ptrType(ast.CallExpr); + ptrType$38 = $ptrType(ast.CompositeLit); + ptrType$39 = $ptrType(ast.Ellipsis); + ptrType$40 = $ptrType(ast.EmptyStmt); + ptrType$41 = $ptrType(ast.BadStmt); + ptrType$42 = $ptrType(ast.DeclStmt); + ptrType$43 = $ptrType(ast.ExprStmt); + ptrType$44 = $ptrType(ast.SendStmt); + ptrType$45 = $ptrType(ast.IncDecStmt); + ptrType$46 = $ptrType(ast.AssignStmt); + ptrType$47 = $ptrType(ast.GoStmt); + ptrType$48 = $ptrType(ast.DeferStmt); + ptrType$49 = $ptrType(ast.ReturnStmt); + ptrType$50 = $ptrType(ast.BranchStmt); + ptrType$51 = $ptrType(ast.BlockStmt); + ptrType$52 = $ptrType(ast.IfStmt); + ptrType$53 = $ptrType(ast.CaseClause); + ptrType$54 = $ptrType(ast.SwitchStmt); + ptrType$55 = $ptrType(ast.TypeSwitchStmt); + ptrType$56 = $ptrType(ast.CommClause); + ptrType$57 = $ptrType(ast.SelectStmt); + ptrType$58 = $ptrType(ast.ForStmt); + ptrType$59 = $ptrType(ast.RangeStmt); + sliceType$10 = $sliceType($Bool); + ptrType$60 = $ptrType(ast.BadDecl); + sliceType$11 = $sliceType($String); + ptrType$61 = $ptrType(strings.Builder); + sliceType$12 = $sliceType(ptrType$6); + mapType = $mapType(ast.Node, $Int); + ptrType$62 = $ptrType(trimmer); + ptrType$63 = $ptrType(sizeCounter); + $ptrType(printer).prototype.internalError = function internalError(msg) { + var {_r, _r$1, _r$2, msg, p, $s, $r, $c} = $restore(this, {msg}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + /* */ if (false) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (strings.Contains(s, "_")) { */ case 1: - $r = check.error(lit, 135, "underscores in numeric literals requires go1.13 or later"); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; + /* if (false) { */ case 1: + _r = $clone(p.pos, token.Position).String(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = fmt.Print(new sliceType$1([new $String(_r + ": ")])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + _r$2 = fmt.Println(msg); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + $panic(new $String("go/printer")); /* } */ case 2: - if (!((s.charCodeAt(0) === 48))) { - $s = -1; return; - } - radix = s.charCodeAt(1); - /* */ if ((radix === 98) || (radix === 66)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if ((radix === 98) || (radix === 66)) { */ case 4: - $r = check.error(lit, 135, "binary literals requires go1.13 or later"); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 5: - /* */ if ((radix === 111) || (radix === 79)) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if ((radix === 111) || (radix === 79)) { */ case 7: - $r = check.error(lit, 135, "0o/0O-style octal literals requires go1.13 or later"); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 8: - /* */ if (!((lit.Kind === 5)) && ((radix === 120) || (radix === 88))) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (!((lit.Kind === 5)) && ((radix === 120) || (radix === 88))) { */ case 10: - $r = check.error(lit, 135, "hexadecimal floating-point literals requires go1.13 or later"); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 11: - $s = -1; return; - /* */ } return; } var $f = {$blk: langCompat, $c: true, $r, check, lit, radix, s, $s};return $f; - }; - $ptrType(Checker).prototype.allowVersion = function allowVersion(pkg, major, minor) { - var _tmp, _tmp$1, check, ma, major, mi, minor, pkg; - check = this; - if (!(pkg === check.pkg)) { - return true; - } - _tmp = check.version.major; - _tmp$1 = check.version.minor; - ma = _tmp; - mi = _tmp$1; - return (ma === 0) && (mi === 0) || ma > major || (ma === major) && mi >= minor; - }; - parseGoVersion = function parseGoVersion$1(s) { - var {_r$1, _r$2, _tuple, _tuple$1, err, matches, s, v, $s, $r, $c} = $restore(this, {s}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - v = new version.ptr(0, 0); - err = $ifaceNil; - if (s === "") { - $s = -1; return [v, err]; - } - _r$1 = goVersionRx.FindStringSubmatch(s); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - matches = _r$1; - /* */ if (matches === sliceType$5.nil) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (matches === sliceType$5.nil) { */ case 2: - _r$2 = fmt.Errorf("should be something like \"go1.12\"", sliceType$6.nil); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - err = _r$2; - $s = -1; return [v, err]; - /* } */ case 3: - _tuple = strconv.Atoi((1 >= matches.$length ? ($throwRuntimeError("index out of range"), undefined) : matches.$array[matches.$offset + 1])); - v.major = _tuple[0]; - err = _tuple[1]; - if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return [v, err]; - } - _tuple$1 = strconv.Atoi((2 >= matches.$length ? ($throwRuntimeError("index out of range"), undefined) : matches.$array[matches.$offset + 2])); - v.minor = _tuple$1[0]; - err = _tuple$1[1]; - $s = -1; return [v, err]; - /* */ } return; } var $f = {$blk: parseGoVersion$1, $c: true, $r, _r$1, _r$2, _tuple, _tuple$1, err, matches, s, v, $s};return $f; - }; - $ptrType(Checker).prototype.validType = function validType(typ) { - var {_r$1, check, typ, $s, $r, $c} = $restore(this, {typ}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = check.validType0(typ, sliceType$7.nil, sliceType$7.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; $s = -1; return; - /* */ } return; } var $f = {$blk: validType, $c: true, $r, _r$1, check, typ, $s};return $f; + /* */ } return; } var $f = {$blk: internalError, $c: true, $r, _r, _r$1, _r$2, msg, p, $s};return $f; }; - $ptrType(Checker).prototype.validType0 = function validType0(typ, nest, path) { - var {$24r, $24r$1, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, check, e, etyp, f, i, inst, nest, p, path, start, t, t$1, t$2, t$3, t$4, t$5, t$6, t$7, targ, tparam, typ, x, $s, $r, $c} = $restore(this, {typ, nest, path}); + $ptrType(printer).prototype.commentsHaveNewline = function commentsHaveNewline(list) { + var {_i, _r, _r$1, _ref, _v, c, i, line, list, p, t, $s, $r, $c} = $restore(this, {list}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _ref = typ; - /* */ if (_ref === $ifaceNil) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$12, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 7; continue; } - /* */ $s = 8; continue; - /* switch (0) { default: if (_ref === $ifaceNil) { */ case 1: - t = _ref; - if (false) { - $panic(new $String("validType0(nil)")); - } - $s = 8; continue; - /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 2: - t$1 = _ref.$val; - _r$1 = check.validType0(t$1.elem, nest, path); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 10; case 10: return $24r; - /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 3: - t$2 = _ref.$val; - _ref$1 = t$2.fields; - _i = 0; - /* while (true) { */ case 11: - /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 12; continue; } - f = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); - _r$2 = check.validType0(f.object.typ, nest, path); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (!_r$2) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (!_r$2) { */ case 13: - $s = -1; return false; - /* } */ case 14: - _i++; - $s = 11; continue; - case 12: - $s = 8; continue; - /* } else if ($assertType(_ref, ptrType$12, true)[1]) { */ case 4: - t$3 = _ref.$val; - _ref$2 = t$3.terms; - _i$1 = 0; - /* while (true) { */ case 16: - /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 17; continue; } - t$7 = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); - _r$3 = check.validType0(t$7.typ, nest, path); /* */ $s = 20; case 20: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (!_r$3) { $s = 18; continue; } - /* */ $s = 19; continue; - /* if (!_r$3) { */ case 18: - $s = -1; return false; - /* } */ case 19: - _i$1++; - $s = 16; continue; - case 17: - $s = 8; continue; - /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 5: - t$4 = _ref.$val; - _ref$3 = t$4.embeddeds; - _i$2 = 0; - /* while (true) { */ case 21: - /* if (!(_i$2 < _ref$3.$length)) { break; } */ if(!(_i$2 < _ref$3.$length)) { $s = 22; continue; } - etyp = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]); - _r$4 = check.validType0(etyp, nest, path); /* */ $s = 25; case 25: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if (!_r$4) { $s = 23; continue; } - /* */ $s = 24; continue; - /* if (!_r$4) { */ case 23: - $s = -1; return false; - /* } */ case 24: - _i$2++; - $s = 21; continue; - case 22: - $s = 8; continue; - /* } else if ($assertType(_ref, ptrType$9, true)[1]) { */ case 6: - t$5 = _ref.$val; - _r$5 = check.valids.lookup(t$5); /* */ $s = 28; case 28: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* */ if (!(_r$5 === ptrType$9.nil)) { $s = 26; continue; } - /* */ $s = 27; continue; - /* if (!(_r$5 === ptrType$9.nil)) { */ case 26: - /* break; */ $s = 8; continue; - /* } */ case 27: - _r$6 = t$5.Underlying(); /* */ $s = 31; case 31: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - /* */ if ($interfaceIsEqual(_r$6, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { $s = 29; continue; } - /* */ $s = 30; continue; - /* if ($interfaceIsEqual(_r$6, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { */ case 29: - $s = -1; return false; - /* } */ case 30: - _ref$4 = nest; - _i$3 = 0; - /* while (true) { */ case 32: - /* if (!(_i$3 < _ref$4.$length)) { break; } */ if(!(_i$3 < _ref$4.$length)) { $s = 33; continue; } - e = ((_i$3 < 0 || _i$3 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$3]); - _r$7 = Identical(e, t$5); /* */ $s = 36; case 36: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - /* */ if (_r$7) { $s = 34; continue; } - /* */ $s = 35; continue; - /* if (_r$7) { */ case 34: - $r = assert(t$5.obj.object.pkg === check.pkg); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = assert(t$5.Origin().obj.object.pkg === check.pkg); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - t$5.underlying = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - t$5.Origin().underlying = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - _ref$5 = path; - _i$4 = 0; - /* while (true) { */ case 39: - /* if (!(_i$4 < _ref$5.$length)) { break; } */ if(!(_i$4 < _ref$5.$length)) { $s = 40; continue; } - start = _i$4; - p = ((_i$4 < 0 || _i$4 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$4]); - _r$8 = Identical(p, t$5); /* */ $s = 43; case 43: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - /* */ if (_r$8) { $s = 41; continue; } - /* */ $s = 42; continue; - /* if (_r$8) { */ case 41: - $r = check.cycleError(makeObjList($subslice(path, start))); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return false; - /* } */ case 42: - _i$4++; - $s = 39; continue; - case 40: - $panic(new $String("cycle start not found")); - /* } */ case 35: - _i$3++; - $s = 32; continue; - case 33: - _r$9 = check.validType0(t$5.Origin().fromRHS, $append(nest, t$5), $append(path, t$5)); /* */ $s = 47; case 47: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - /* */ if (!_r$9) { $s = 45; continue; } - /* */ $s = 46; continue; - /* if (!_r$9) { */ case 45: - $s = -1; return false; - /* } */ case 46: - check.valids.add(t$5); - $s = 8; continue; - /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 7: - t$6 = _ref.$val; - /* */ if (nest.$length > 0) { $s = 48; continue; } - /* */ $s = 49; continue; - /* if (nest.$length > 0) { */ case 48: - inst = (x = nest.$length - 1 >> 0, ((x < 0 || x >= nest.$length) ? ($throwRuntimeError("index out of range"), undefined) : nest.$array[nest.$offset + x])); - _r$10 = inst.TypeParams(); /* */ $s = 50; case 50: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _r$11 = _r$10.list(); /* */ $s = 51; case 51: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _ref$6 = _r$11; - _i$5 = 0; - /* while (true) { */ case 52: - /* if (!(_i$5 < _ref$6.$length)) { break; } */ if(!(_i$5 < _ref$6.$length)) { $s = 53; continue; } - i = _i$5; - tparam = ((_i$5 < 0 || _i$5 >= _ref$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$6.$array[_ref$6.$offset + _i$5]); - /* */ if (t$6 === tparam && i < inst.TypeArgs().Len()) { $s = 54; continue; } - /* */ $s = 55; continue; - /* if (t$6 === tparam && i < inst.TypeArgs().Len()) { */ case 54: - targ = inst.TypeArgs().At(i); - _r$12 = check.validType0(targ, $subslice(nest, 0, (nest.$length - 1 >> 0)), path); /* */ $s = 56; case 56: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - $24r$1 = _r$12; - $s = 57; case 57: return $24r$1; - /* } */ case 55: - _i$5++; - $s = 52; continue; - case 53: - /* } */ case 49: - /* } } */ case 8: - $s = -1; return true; - /* */ } return; } var $f = {$blk: validType0, $c: true, $r, $24r, $24r$1, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, check, e, etyp, f, i, inst, nest, p, path, start, t, t$1, t$2, t$3, t$4, t$5, t$6, t$7, targ, tparam, typ, x, $s};return $f; - }; - makeObjList = function makeObjList$1(tlist) { - var _i, _ref, i, olist, t, tlist; - olist = $makeSlice(sliceType$8, tlist.$length); - _ref = tlist; + p = this; + _r = p.lineFor((0 >= list.$length ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + 0]).Pos()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + line = _r; + _ref = list; _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } + /* while (true) { */ case 2: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } i = _i; - t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - ((i < 0 || i >= olist.$length) ? ($throwRuntimeError("index out of range"), undefined) : olist.$array[olist.$offset + i] = t.obj); + c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!(i > 0)) { _v = false; $s = 6; continue s; } + _r$1 = p.lineFor(((i < 0 || i >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + i]).Pos()); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = !((_r$1 === line)); case 6: + /* */ if (_v) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_v) { */ case 4: + $s = -1; return true; + /* } */ case 5: + t = c.Text; + if (t.length >= 2 && ((t.charCodeAt(1) === 47) || strings.Contains(t, "\n"))) { + $s = -1; return true; + } _i++; - } - return olist; + $s = 2; continue; + case 3: + $unused(line); + $s = -1; return false; + /* */ } return; } var $f = {$blk: commentsHaveNewline, $c: true, $r, _i, _r, _r$1, _ref, _v, c, i, line, list, p, t, $s};return $f; }; - defPredeclaredTypes = function defPredeclaredTypes$1() { - var {_i, _i$1, _r$1, _r$2, _ref, _ref$1, err, ityp, ityp$1, obj, obj$1, recv, res, sig, t, t$1, typ, typ$1, $s, $r, $c} = $restore(this, {}); + $ptrType(printer).prototype.nextComment = function nextComment() { + var {_r, _r$1, c, list, p, x, x$1, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ref = $pkg.Typ; - _i = 0; + p = this; /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - $r = def(NewTypeName(0, ptrType$1.nil, t.name, t)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; + /* if (!(p.commentInfo.cindex < p.comments.$length)) { break; } */ if(!(p.commentInfo.cindex < p.comments.$length)) { $s = 2; continue; } + c = (x = p.comments, x$1 = p.commentInfo.cindex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + p.commentInfo.cindex = p.commentInfo.cindex + (1) >> 0; + list = c.List; + /* */ if (list.$length > 0) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (list.$length > 0) { */ case 3: + p.commentInfo.comment = c; + _r = p.posFor((0 >= list.$length ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + 0]).Pos()); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + p.commentInfo.commentOffset = _r.Offset; + _r$1 = p.commentsHaveNewline(list); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + p.commentInfo.commentNewline = _r$1; + $s = -1; return; + /* } */ case 4: $s = 1; continue; case 2: - _ref$1 = aliases; - _i$1 = 0; - /* while (true) { */ case 4: - /* if (!(_i$1 < 2)) { break; } */ if(!(_i$1 < 2)) { $s = 5; continue; } - t$1 = ((_i$1 < 0 || _i$1 >= _ref$1.length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1[_i$1]); - $r = def(NewTypeName(0, ptrType$1.nil, t$1.name, t$1)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$1++; - $s = 4; continue; - case 5: - $r = def(NewTypeName(0, ptrType$1.nil, "any", new Interface.ptr(ptrType$6.nil, sliceType.nil, sliceType$3.nil, ptrType$7.nil, false, true, topTypeSet))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - obj = NewTypeName(0, ptrType$1.nil, "error", $ifaceNil); - $r = obj.object.setColor(1); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - typ = NewNamed(obj, $ifaceNil, sliceType.nil); - recv = NewVar(0, ptrType$1.nil, "", typ); - res = NewVar(0, ptrType$1.nil, "", (17 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 17])); - _r$1 = NewSignatureType(recv, sliceType$9.nil, sliceType$9.nil, ptrType$15.nil, NewTuple(new sliceType$10([res])), false); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - sig = _r$1; - err = NewFunc(0, ptrType$1.nil, "Error", sig); - ityp = new Interface.ptr(ptrType$6.nil, new sliceType([err]), sliceType$3.nil, ptrType$7.nil, false, true, ptrType$8.nil); - _r$2 = computeInterfaceTypeSet(ptrType$6.nil, 0, ityp); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - $r = typ.SetUnderlying(ityp); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = def(obj); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - obj$1 = NewTypeName(0, ptrType$1.nil, "comparable", $ifaceNil); - $r = obj$1.object.setColor(1); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - typ$1 = NewNamed(obj$1, $ifaceNil, sliceType.nil); - ityp$1 = new Interface.ptr(ptrType$6.nil, sliceType.nil, sliceType$3.nil, ptrType$7.nil, false, true, new _TypeSet.ptr(sliceType.nil, allTermlist, true)); - $r = typ$1.SetUnderlying(ityp$1); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = def(obj$1); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + p.commentInfo.commentOffset = 1073741824; $s = -1; return; - /* */ } return; } var $f = {$blk: defPredeclaredTypes$1, $c: true, $r, _i, _i$1, _r$1, _r$2, _ref, _ref$1, err, ityp, ityp$1, obj, obj$1, recv, res, sig, t, t$1, typ, typ$1, $s};return $f; + /* */ } return; } var $f = {$blk: nextComment, $c: true, $r, _r, _r$1, c, list, p, x, x$1, $s};return $f; }; - defPredeclaredConsts = function defPredeclaredConsts$1() { - var {_i, _ref, c, x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ref = predeclaredConsts; - _i = 0; + $ptrType(printer).prototype.commentBefore = function commentBefore(next) { + var next, p; + p = this; + return p.commentInfo.commentOffset < next.Offset && (!p.impliedSemi || !p.commentInfo.commentNewline); + }; + $ptrType(printer).prototype.commentSizeBefore = function commentSizeBefore(next) { + var {_i, _ref, c, next, p, size, $s, $deferred, $r, $c} = $restore(this, {next}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = [p]; + p[0] = this; + $deferred.push([(function(p) { return function printer·commentSizeBefore·func1(info) { + var info; + commentInfo.copy(p[0].commentInfo, info); + }; })(p), [$clone(p[0].commentInfo, commentInfo)]]); + size = 0; /* while (true) { */ case 1: - /* if (!(_i < 3)) { break; } */ if(!(_i < 3)) { $s = 2; continue; } - c = $clone(((_i < 0 || _i >= _ref.length) ? ($throwRuntimeError("index out of range"), undefined) : _ref[_i]), structType); - $r = def(NewConst(0, ptrType$1.nil, c.name, (x = c.kind, ((x < 0 || x >= $pkg.Typ.$length) ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + x])), c.val)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; + /* if (!(p[0].commentBefore($clone(next, token.Position)))) { break; } */ if(!(p[0].commentBefore($clone(next, token.Position)))) { $s = 2; continue; } + _ref = p[0].commentInfo.comment.List; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + size = size + (c.Text.length) >> 0; + _i++; + } + $r = p[0].nextComment(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = 1; continue; case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: defPredeclaredConsts$1, $c: true, $r, _i, _ref, c, x, $s};return $f; + $s = -1; return size; + /* */ } return; } } catch(err) { $err = err; $s = -1; return 0; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: commentSizeBefore, $c: true, $r, _i, _ref, c, next, p, size, $s, $deferred};return $f; } } + }; + $ptrType(printer).prototype.recordLine = function recordLine(linePtr) { + var linePtr, p; + p = this; + p.linePtr = linePtr; + }; + $ptrType(printer).prototype.linesFrom = function linesFrom(line) { + var line, p; + p = this; + return p.out.Line - line >> 0; + }; + $ptrType(printer).prototype.posFor = function posFor(pos) { + var {$24r, _r, p, pos, $s, $r, $c} = $restore(this, {pos}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _r = p.fset.PositionFor(pos, false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: posFor, $c: true, $r, $24r, _r, p, pos, $s};return $f; + }; + $ptrType(printer).prototype.lineFor = function lineFor(pos) { + var {_r, p, pos, $s, $r, $c} = $restore(this, {pos}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + /* */ if (!((pos === p.cachedPos))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((pos === p.cachedPos))) { */ case 1: + p.cachedPos = pos; + _r = p.fset.PositionFor(pos, false); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + p.cachedLine = _r.Line; + /* } */ case 2: + $s = -1; return p.cachedLine; + /* */ } return; } var $f = {$blk: lineFor, $c: true, $r, _r, p, pos, $s};return $f; }; - defPredeclaredNil = function defPredeclaredNil$1() { - var {$s, $r, $c} = $restore(this, {}); + $ptrType(printer).prototype.writeLineDirective = function writeLineDirective(pos) { + var {_arg, _arg$1, _r, _r$1, p, pos, $s, $r, $c} = $restore(this, {pos}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = def(new Nil.ptr($clone(new object.ptr(ptrType.nil, 0, ptrType$1.nil, "nil", (25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25]), 0, 1, 0), object))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + p = this; + /* */ if (pos.IsValid() && (!((p.out.Line === pos.Line)) || !(p.out.Filename === pos.Filename))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (pos.IsValid() && (!((p.out.Line === pos.Line)) || !(p.out.Filename === pos.Filename))) { */ case 1: + /* */ if (strings.ContainsAny(pos.Filename, "\r\n")) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (strings.ContainsAny(pos.Filename, "\r\n")) { */ case 3: + /* */ if ($interfaceIsEqual(p.sourcePosErr, $ifaceNil)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if ($interfaceIsEqual(p.sourcePosErr, $ifaceNil)) { */ case 5: + _r = fmt.Errorf("go/printer: source filename contains unexpected newline character: %q", new sliceType$1([new $String(pos.Filename)])); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + p.sourcePosErr = _r; + /* } */ case 6: + $s = -1; return; + /* } */ case 4: + p.output = $append(p.output, 255); + _arg = p.output; + _r$1 = fmt.Sprintf("//line %s:%d\n", new sliceType$1([new $String(pos.Filename), new $Int(pos.Line)])); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg$1 = _r$1; + p.output = $appendSlice(_arg, _arg$1); + p.output = $append(p.output, 255); + p.out.Filename = pos.Filename; + p.out.Line = pos.Line; + /* } */ case 2: $s = -1; return; - /* */ } return; } var $f = {$blk: defPredeclaredNil$1, $c: true, $r, $s};return $f; + /* */ } return; } var $f = {$blk: writeLineDirective, $c: true, $r, _arg, _arg$1, _r, _r$1, p, pos, $s};return $f; + }; + $ptrType(printer).prototype.writeIndent = function writeIndent() { + var i, n, p; + p = this; + n = p.Config.Indent + p.indent >> 0; + i = 0; + while (true) { + if (!(i < n)) { break; } + p.output = $append(p.output, 9); + i = i + (1) >> 0; + } + p.pos.Offset = p.pos.Offset + (n) >> 0; + p.pos.Column = p.pos.Column + (n) >> 0; + p.out.Column = p.out.Column + (n) >> 0; + }; + $ptrType(printer).prototype.writeByte = function writeByte(ch, n) { + var _1, ch, i, n, p; + p = this; + if (p.endAlignment) { + _1 = ch; + if ((_1 === (9)) || (_1 === (11))) { + ch = 32; + } else if ((_1 === (10)) || (_1 === (12))) { + ch = 12; + p.endAlignment = false; + } + } + if (p.out.Column === 1) { + p.writeIndent(); + } + i = 0; + while (true) { + if (!(i < n)) { break; } + p.output = $append(p.output, ch); + i = i + (1) >> 0; + } + p.pos.Offset = p.pos.Offset + (n) >> 0; + if ((ch === 10) || (ch === 12)) { + p.pos.Line = p.pos.Line + (n) >> 0; + p.out.Line = p.out.Line + (n) >> 0; + p.pos.Column = 1; + p.out.Column = 1; + return; + } + p.pos.Column = p.pos.Column + (n) >> 0; + p.out.Column = p.out.Column + (n) >> 0; }; - defPredeclaredFuncs = function defPredeclaredFuncs$1() { - var {_i, _ref, i, id, $s, $r, $c} = $restore(this, {}); + $ptrType(printer).prototype.writeString = function writeString(pos, s, isLit) { + var {_arg, _arg$1, _r, c, ch, i, isLit, li, nlines, p, pos, s, $s, $r, $c} = $restore(this, {pos, s, isLit}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ref = predeclaredFuncs; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < 26)) { break; } */ if(!(_i < 26)) { $s = 2; continue; } - i = _i; - id = ((i >> 0)); - if ((id === 24) || (id === 25)) { - _i++; - /* continue; */ $s = 1; continue; + p = this; + /* */ if (p.out.Column === 1) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.out.Column === 1) { */ case 1: + /* */ if (!((((p.Config.Mode & 8) >>> 0) === 0))) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!((((p.Config.Mode & 8) >>> 0) === 0))) { */ case 3: + $r = p.writeLineDirective($clone(pos, token.Position)); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 4: + p.writeIndent(); + /* } */ case 2: + if (pos.IsValid()) { + token.Position.copy(p.pos, pos); + } + if (isLit) { + p.output = $append(p.output, 255); + } + /* */ if (false) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (false) { */ case 6: + _arg = p.output; + _r = fmt.Sprintf("/*%s*/", new sliceType$1([new pos.constructor.elem(pos)])); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = _r; + p.output = $appendSlice(_arg, _arg$1); + /* } */ case 7: + p.output = $appendSlice(p.output, s); + nlines = 0; + li = 0; + i = 0; + while (true) { + if (!(i < s.length)) { break; } + ch = s.charCodeAt(i); + if ((ch === 10) || (ch === 12)) { + nlines = nlines + (1) >> 0; + li = i; + p.endAlignment = true; } - $r = def(newBuiltin(id)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 1; continue; - case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: defPredeclaredFuncs$1, $c: true, $r, _i, _ref, i, id, $s};return $f; - }; - init = function init$3() { - var {_r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $pkg.Universe = NewScope(ptrType.nil, 0, 0, "universe"); - _r$1 = NewPackage("unsafe", "unsafe"); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $pkg.Unsafe = _r$1; - $pkg.Unsafe.complete = true; - $r = defPredeclaredTypes(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = defPredeclaredConsts(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = defPredeclaredNil(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = defPredeclaredFuncs(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$2 = $pkg.Universe.Lookup("iota"); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - universeIota = _r$2; - _r$3 = $pkg.Universe.Lookup("byte"); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$4 = _r$3.Type(); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - universeByte = _r$4; - _r$5 = $pkg.Universe.Lookup("rune"); /* */ $s = 9; case 9: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$6 = _r$5.Type(); /* */ $s = 10; case 10: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - universeRune = _r$6; - _r$7 = $pkg.Universe.Lookup("any"); /* */ $s = 11; case 11: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - universeAny = _r$7; - _r$8 = $pkg.Universe.Lookup("error"); /* */ $s = 12; case 12: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _r$9 = _r$8.Type(); /* */ $s = 13; case 13: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - universeError = _r$9; - _r$10 = $pkg.Universe.Lookup("comparable"); /* */ $s = 14; case 14: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - universeComparable = _r$10; + i = i + (1) >> 0; + } + p.pos.Offset = p.pos.Offset + (s.length) >> 0; + if (nlines > 0) { + p.pos.Line = p.pos.Line + (nlines) >> 0; + p.out.Line = p.out.Line + (nlines) >> 0; + c = s.length - li >> 0; + p.pos.Column = c; + p.out.Column = c; + } else { + p.pos.Column = p.pos.Column + (s.length) >> 0; + p.out.Column = p.out.Column + (s.length) >> 0; + } + if (isLit) { + p.output = $append(p.output, 255); + } + token.Position.copy(p.last, p.pos); $s = -1; return; - /* */ } return; } var $f = {$blk: init$3, $c: true, $r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, $s};return $f; + /* */ } return; } var $f = {$blk: writeString, $c: true, $r, _arg, _arg$1, _r, c, ch, i, isLit, li, nlines, p, pos, s, $s};return $f; }; - def = function def$1(obj) { - var {_r$1, _r$2, _r$3, _r$4, _r$5, _ref, _tuple, name, obj, obj$1, obj$2, obj$3, scope, typ, $s, $r, $c} = $restore(this, {obj}); + $ptrType(printer).prototype.writeCommentPrefix = function writeCommentPrefix(pos, next, prev, tok) { + var {_1, _2, _i, _i$1, _ref, _ref$1, ch, ch$1, droppedLinebreak, hasSep, i, i$1, j, j$1, n, next, p, pos, prev, sep, tok, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {pos, next, prev, tok}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = obj.color(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $r = assert(_r$1 === 1); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$2 = obj.Name(); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - name = _r$2; - if (strings.Contains(name, " ")) { + p = this; + if (p.output.$length === 0) { $s = -1; return; } - _r$3 = obj.Type(); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple = $assertType(_r$3, ptrType$9, true); - typ = _tuple[0]; - if (!(typ === ptrType$9.nil)) { - typ.obj = $assertType(obj, ptrType$17); - } - scope = $pkg.Universe; - _r$4 = obj.Exported(); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if (_r$4) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (_r$4) { */ case 5: - scope = $pkg.Unsafe.scope; - _ref = obj; - if ($assertType(_ref, ptrType$17, true)[1]) { - obj$1 = _ref.$val; - obj$1.object.pkg = $pkg.Unsafe; - } else if ($assertType(_ref, ptrType$18, true)[1]) { - obj$2 = _ref.$val; - obj$2.object.pkg = $pkg.Unsafe; - } else { - obj$3 = _ref; - unreachable(); - } - /* } */ case 6: - _r$5 = scope.Insert(obj); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* */ if (!($interfaceIsEqual(_r$5, $ifaceNil))) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (!($interfaceIsEqual(_r$5, $ifaceNil))) { */ case 8: - $panic(new $String("double declaration of predeclared identifier")); - /* } */ case 9: - $s = -1; return; - /* */ } return; } var $f = {$blk: def$1, $c: true, $r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _tuple, name, obj, obj$1, obj$2, obj$3, scope, typ, $s};return $f; - }; - NewUnion = function NewUnion$1(terms) { - var terms; - if (terms.$length === 0) { - $panic(new $String("empty union")); + if (pos.IsValid() && !(pos.Filename === p.last.Filename)) { + p.writeByte(12, 2); + $s = -1; return; } - return new Union.ptr(terms); - }; - $pkg.NewUnion = NewUnion; - $ptrType(Union).prototype.Len = function Len() { - var u; - u = this; - return u.terms.$length; - }; - $ptrType(Union).prototype.Term = function Term$1(i) { - var i, u, x; - u = this; - return (x = u.terms, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - }; - $ptrType(Union).prototype.Underlying = function Underlying() { - var u; - u = this; - return u; - }; - $ptrType(Union).prototype.String = function String() { - var {$24r, _r$1, u, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - u = this; - _r$1 = TypeString(u, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String, $c: true, $r, $24r, _r$1, u, $s};return $f; - }; - NewTerm = function NewTerm$1(tilde, typ) { - var tilde, typ; - return new Term.ptr(tilde, typ); - }; - $pkg.NewTerm = NewTerm; - $ptrType(Term).prototype.Tilde = function Tilde() { - var t; - t = this; - return t.tilde; - }; - $ptrType(Term).prototype.Type = function Type$1() { - var t; - t = this; - return t.typ; - }; - $ptrType(Term).prototype.String = function String$1() { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = ($pointerOfStructConversion(t, ptrType$5)).String(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$1, $c: true, $r, $24r, _r$1, t, $s};return $f; - }; - parseUnion = function parseUnion$1(check, uexpr) { - var {_i, _r$1, _ref, _tuple, blist, check, i, term$1, terms, tlist, u, uexpr, x, x$1, $s, $r, $c} = $restore(this, {check, uexpr}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = [check]; - terms = [terms]; - tlist = [tlist]; - _tuple = flattenUnion(sliceType$11.nil, uexpr); - blist = _tuple[0]; - tlist[0] = _tuple[1]; - $r = assert(blist.$length === (tlist[0].$length - 1 >> 0)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - terms[0] = sliceType$12.nil; - u = $ifaceNil; - _ref = tlist[0]; - _i = 0; - /* while (true) { */ case 2: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } - i = _i; - x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$1 = parseTilde(check[0], x); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - term$1 = _r$1; - if ((tlist[0].$length === 1) && !term$1.tilde) { - $s = -1; return term$1.typ; + /* */ if ((pos.Line === p.last.Line) && (prev === ptrType$3.nil || !((prev.Text.charCodeAt(1) === 47)))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ((pos.Line === p.last.Line) && (prev === ptrType$3.nil || !((prev.Text.charCodeAt(1) === 47)))) { */ case 1: + hasSep = false; + /* */ if (prev === ptrType$3.nil) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (prev === ptrType$3.nil) { */ case 4: + j = 0; + _ref = p.wsbuf; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + ch = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _1 = ch; + if (_1 === (32)) { + (x = p.wsbuf, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i] = 0)); + _i++; + continue; + } else if (_1 === (11)) { + hasSep = true; + _i++; + continue; + } else if (_1 === (62)) { + _i++; + continue; + } + j = i; + break; + } + $r = p.writeWhitespace(j); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 5: + if (!hasSep) { + sep = 9; + if (pos.Line === next.Line) { + sep = 32; + } + p.writeByte(sep, 1); } - /* */ if (terms[0].$length >= 100) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (terms[0].$length >= 100) { */ case 5: - /* */ if (!($interfaceIsEqual(u, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (!($interfaceIsEqual(u, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { */ case 8: - $r = check[0].errorf(x, 141, "cannot handle more than %d union terms (implementation limitation)", new sliceType$6([new $Int(100)])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - u = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - /* } */ case 9: - $s = 7; continue; - /* } else { */ case 6: - terms[0] = $append(terms[0], term$1); - u = new Union.ptr(terms[0]); - /* } */ case 7: - /* */ if (i > 0) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (i > 0) { */ case 11: - $r = check[0].recordTypeAndValue((x$1 = i - 1 >> 0, ((x$1 < 0 || x$1 >= blist.$length) ? ($throwRuntimeError("index out of range"), undefined) : blist.$array[blist.$offset + x$1])), 3, u, $ifaceNil); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 12: - _i++; - $s = 2; continue; - case 3: - if ($interfaceIsEqual(u, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { - $s = -1; return u; - } - check[0].later((function(check, terms, tlist) { return function parseUnion·func1() { - var {_i$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref$1, _tuple$1, f, i$1, j, t, tset, u$1, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ref$1 = terms[0]; - _i$1 = 0; - /* while (true) { */ case 1: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 2; continue; } - i$1 = _i$1; - t = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - if ($interfaceIsEqual(t.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { + $s = 3; continue; + /* } else { */ case 2: + droppedLinebreak = false; + j$1 = 0; + _ref$1 = p.wsbuf; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i$1 = _i$1; + ch$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + _2 = ch$1; + if ((_2 === (32)) || (_2 === (11))) { + (x$1 = p.wsbuf, ((i$1 < 0 || i$1 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$1] = 0)); + _i$1++; + continue; + } else if (_2 === (62)) { + _i$1++; + continue; + } else if (_2 === (60)) { + if ((i$1 + 1 >> 0) < p.wsbuf.$length && ((x$2 = p.wsbuf, x$3 = i$1 + 1 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])) === 60)) { _i$1++; - /* continue; */ $s = 1; continue; + continue; } - _r$2 = under(t.typ); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - u$1 = _r$2; - _tuple$1 = $assertType(u$1, ptrType$13, true); - f = _tuple$1[0]; - /* */ if (t.tilde) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (t.tilde) { */ case 4: - /* */ if (!(f === ptrType$13.nil)) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (!(f === ptrType$13.nil)) { */ case 6: - $r = check[0].errorf(((i$1 < 0 || i$1 >= tlist[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : tlist[0].$array[tlist[0].$offset + i$1]), 141, "invalid use of ~ (%s is an interface)", new sliceType$6([t.typ])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$1++; - /* continue; */ $s = 1; continue; - /* } */ case 7: - _r$3 = Identical(u$1, t.typ); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (!_r$3) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (!_r$3) { */ case 9: - $r = check[0].errorf(((i$1 < 0 || i$1 >= tlist[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : tlist[0].$array[tlist[0].$offset + i$1]), 141, "invalid use of ~ (underlying type of %s is %s)", new sliceType$6([t.typ, u$1])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$1++; - /* continue; */ $s = 1; continue; - /* } */ case 10: - /* } */ case 5: - /* */ if (!(f === ptrType$13.nil)) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (!(f === ptrType$13.nil)) { */ case 13: - _r$4 = f.typeSet(); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - tset = _r$4; - /* */ if (!((tset.NumMethods() === 0))) { $s = 17; continue; } - _r$5 = universeComparable.Type(); /* */ $s = 21; case 21: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* */ if ($interfaceIsEqual(t.typ, _r$5)) { $s = 18; continue; } - /* */ if (tset.comparable) { $s = 19; continue; } - /* */ $s = 20; continue; - /* if (!((tset.NumMethods() === 0))) { */ case 17: - $r = check[0].errorf(((i$1 < 0 || i$1 >= tlist[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : tlist[0].$array[tlist[0].$offset + i$1]), 141, "cannot use %s in union (%s contains methods)", new sliceType$6([t, t])); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 20; continue; - /* } else if ($interfaceIsEqual(t.typ, _r$5)) { */ case 18: - $r = check[0].error(((i$1 < 0 || i$1 >= tlist[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : tlist[0].$array[tlist[0].$offset + i$1]), 141, "cannot use comparable in union"); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 20; continue; - /* } else if (tset.comparable) { */ case 19: - $r = check[0].errorf(((i$1 < 0 || i$1 >= tlist[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : tlist[0].$array[tlist[0].$offset + i$1]), 141, "cannot use %s in union (%s embeds comparable)", new sliceType$6([t, t])); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 20: - case 16: + if (!((tok === 56)) && (pos.Column === next.Column)) { _i$1++; - /* continue; */ $s = 1; continue; - /* } */ case 14: - _r$6 = overlappingTerm($subslice(terms[0], 0, i$1), t); /* */ $s = 25; case 25: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - j = _r$6; - /* */ if (j >= 0) { $s = 26; continue; } - /* */ $s = 27; continue; - /* if (j >= 0) { */ case 26: - $r = check[0].softErrorf(((i$1 < 0 || i$1 >= tlist[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : tlist[0].$array[tlist[0].$offset + i$1]), 141, "overlapping terms %s and %s", new sliceType$6([t, ((j < 0 || j >= terms[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : terms[0].$array[terms[0].$offset + j])])); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 27: - _i$1++; - $s = 1; continue; - case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: parseUnion·func1, $c: true, $r, _i$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref$1, _tuple$1, f, i$1, j, t, tset, u$1, $s};return $f; - }; })(check, terms, tlist)).describef(uexpr, "check term validity %s", new sliceType$6([uexpr])); - $s = -1; return u; - /* */ } return; } var $f = {$blk: parseUnion$1, $c: true, $r, _i, _r$1, _ref, _tuple, blist, check, i, term$1, terms, tlist, u, uexpr, x, x$1, $s};return $f; - }; - parseTilde = function parseTilde$1(check, tx) { - var {_r$1, _tuple, check, op, term$1, tilde, tx, typ, x, $s, $r, $c} = $restore(this, {check, tx}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = tx; - tilde = false; - _tuple = $assertType(x, ptrType$20, true); - op = _tuple[0]; - if (!(op === ptrType$20.nil) && (op.Op === 88)) { - x = op.X; - tilde = true; - } - _r$1 = check.typ(x); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - typ = _r$1; - /* */ if (isTypeParam(typ)) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (isTypeParam(typ)) { */ case 2: - /* */ if (tilde) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (tilde) { */ case 4: - $r = check.errorf(x, 144, "type in term %s cannot be a type parameter", new sliceType$6([tx])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 6; continue; - /* } else { */ case 5: - $r = check.error(x, 144, "term cannot be a type parameter"); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 6: - typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - /* } */ case 3: - term$1 = NewTerm(tilde, typ); - /* */ if (tilde) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (tilde) { */ case 9: - $r = check.recordTypeAndValue(tx, 3, new Union.ptr(new sliceType$12([term$1])), $ifaceNil); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 10: - $s = -1; return term$1; - /* */ } return; } var $f = {$blk: parseTilde$1, $c: true, $r, _r$1, _tuple, check, op, term$1, tilde, tx, typ, x, $s};return $f; - }; - overlappingTerm = function overlappingTerm$1(terms, y) { - var {_i, _r$1, _r$2, _r$3, _ref, i, terms, x, y, $s, $r, $c} = $restore(this, {terms, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = IsInterface(y.typ); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $r = assert(!_r$1); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _ref = terms; - _i = 0; - /* while (true) { */ case 3: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } - i = _i; - x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$2 = IsInterface(x.typ); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (_r$2) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (_r$2) { */ case 5: - _i++; - /* continue; */ $s = 3; continue; - /* } */ case 6: - if (false) { - if (x === ptrType$19.nil || $interfaceIsEqual(x.typ, $ifaceNil) || y === ptrType$19.nil || $interfaceIsEqual(y.typ, $ifaceNil)) { - $panic(new $String("empty or top union term")); + continue; + } + } else if ((_2 === (10)) || (_2 === (12))) { + (x$4 = p.wsbuf, ((i$1 < 0 || i$1 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + i$1] = 0)); + droppedLinebreak = prev === ptrType$3.nil; } + j$1 = i$1; + break; } - _r$3 = ($pointerOfStructConversion(x, ptrType$5)).disjoint(($pointerOfStructConversion(y, ptrType$5))); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (!_r$3) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (!_r$3) { */ case 8: - $s = -1; return i; - /* } */ case 9: - _i++; - $s = 3; continue; - case 4: - $s = -1; return -1; - /* */ } return; } var $f = {$blk: overlappingTerm$1, $c: true, $r, _i, _r$1, _r$2, _r$3, _ref, i, terms, x, y, $s};return $f; - }; - flattenUnion = function flattenUnion$1(list, x) { - var _tmp, _tmp$1, _tuple, _tuple$1, blist, list, o, tlist, x; - blist = sliceType$11.nil; - tlist = sliceType$11.nil; - _tuple = $assertType(x, ptrType$21, true); - o = _tuple[0]; - if (!(o === ptrType$21.nil) && (o.Op === 18)) { - _tuple$1 = flattenUnion(list, o.X); - blist = _tuple$1[0]; - tlist = _tuple$1[1]; - blist = $append(blist, o); - x = o.Y; - } - _tmp = blist; - _tmp$1 = $append(tlist, x); - blist = _tmp; - tlist = _tmp$1; - return [blist, tlist]; - }; - newUnifier = function newUnifier$1(exact) { - var exact, u; - u = new unifier.ptr(exact, new tparamsList.ptr(ptrType$22.nil, sliceType$9.nil, sliceType$13.nil), new tparamsList.ptr(ptrType$22.nil, sliceType$9.nil, sliceType$13.nil), sliceType$3.nil, 0); - u.x.unifier = u; - u.y.unifier = u; - return u; - }; - $ptrType(unifier).prototype.unify = function unify(x, y) { - var {$24r, _r$1, u, x, y, $s, $r, $c} = $restore(this, {x, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - u = this; - _r$1 = u.nify(x, y, ptrType$23.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: unify, $c: true, $r, $24r, _r$1, u, x, y, $s};return $f; - }; - $ptrType(unifier).prototype.tracef = function tracef(format, args) { - var {_r$1, _r$2, args, format, u, $s, $r, $c} = $restore(this, {format, args}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - u = this; - _r$1 = sprintf(ptrType$24.nil, $throwNilPointerError, true, format, args); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = fmt.Println(new sliceType$6([new $String(strings.Repeat(". ", u.depth) + _r$1)])); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; + $r = p.writeWhitespace(j$1); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + n = 0; + if (pos.IsValid() && p.last.IsValid()) { + n = pos.Line - p.last.Line >> 0; + if (n < 0) { + n = 0; + } + } + if ((p.indent === 0) && droppedLinebreak) { + n = n + (1) >> 0; + } + if ((n === 0) && !(prev === ptrType$3.nil) && (prev.Text.charCodeAt(1) === 47)) { + n = 1; + } + if (n > 0) { + p.writeByte(12, nlimit(n)); + } + /* } */ case 3: $s = -1; return; - /* */ } return; } var $f = {$blk: tracef, $c: true, $r, _r$1, _r$2, args, format, u, $s};return $f; + /* */ } return; } var $f = {$blk: writeCommentPrefix, $c: true, $r, _1, _2, _i, _i$1, _ref, _ref$1, ch, ch$1, droppedLinebreak, hasSep, i, i$1, j, j$1, n, next, p, pos, prev, sep, tok, x, x$1, x$2, x$3, x$4, $s};return $f; }; - $ptrType(tparamsList).prototype.String = function String$2() { - var {_i, _ref, buf, d, i, tpar, w, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - buf = [buf]; - d = this; - buf[0] = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); - w = newTypeWriter(buf[0], $throwNilPointerError); - w.byte$(91); - _ref = d.tparams; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - tpar = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (i > 0) { - w.string(", "); + isBlank = function isBlank$1(s) { + var i, s; + i = 0; + while (true) { + if (!(i < s.length)) { break; } + if (s.charCodeAt(i) > 32) { + return false; } - $r = w.typ(tpar); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - w.string(": "); - $r = w.typ(d.at(i)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 1; continue; - case 2: - w.byte$(93); - $s = -1; return buf[0].String(); - /* */ } return; } var $f = {$blk: String$2, $c: true, $r, _i, _ref, buf, d, i, tpar, w, $s};return $f; + i = i + (1) >> 0; + } + return true; + }; + commonPrefix = function commonPrefix$1(a, b) { + var a, b, i; + i = 0; + while (true) { + if (!(i < a.length && i < b.length && (a.charCodeAt(i) === b.charCodeAt(i)) && (a.charCodeAt(i) <= 32 || (a.charCodeAt(i) === 42)))) { break; } + i = i + (1) >> 0; + } + return $substring(a, 0, i); }; - $ptrType(tparamsList).prototype.init = function init$4(tparams) { - var {_i, _ref, d, i, tpar, tparams, $s, $r, $c} = $restore(this, {tparams}); + trimRight = function trimRight$1(s) { + var {$24r, _r, s, $s, $r, $c} = $restore(this, {s}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - d = this; - if (tparams.$length === 0) { - $s = -1; return; + _r = strings.TrimRightFunc(s, unicode.IsSpace); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: trimRight$1, $c: true, $r, $24r, _r, s, $s};return $f; + }; + stripCommonPrefix = function stripCommonPrefix$1(lines) { + var _i, _i$1, _ref, _ref$1, _tmp, _tmp$1, _tuple, _tuple$1, before, closing, first, i, i$1, i$2, last, line, line$1, line$2, lineOfStars, lines, n, n$1, ok, p, prefix, prefixSet, suffix, x, x$1, x$2, x$3; + if (lines.$length <= 1) { + return; } - /* */ if (false) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (false) { */ case 1: - _ref = tparams; + prefix = ""; + prefixSet = false; + if (lines.$length > 2) { + _ref = $subslice(lines, 1, (lines.$length - 1 >> 0)); _i = 0; - /* while (true) { */ case 3: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } + while (true) { + if (!(_i < _ref.$length)) { break; } i = _i; - tpar = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - $r = assert(i === tpar.index); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + line = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (isBlank(line)) { + (x = 1 + i >> 0, ((x < 0 || x >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + x] = "")); + } else { + if (!prefixSet) { + prefix = line; + prefixSet = true; + } + prefix = commonPrefix(prefix, line); + } _i++; - $s = 3; continue; - case 4: - /* } */ case 2: - d.tparams = tparams; - d.indices = $makeSlice(sliceType$13, tparams.$length); - $s = -1; return; - /* */ } return; } var $f = {$blk: init$4, $c: true, $r, _i, _ref, d, i, tpar, tparams, $s};return $f; - }; - $ptrType(unifier).prototype.join = function join(i, j) { - var {i, j, ti, tj, u, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r, $c} = $restore(this, {i, j}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - u = this; - /* */ if (false) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (false) { */ case 1: - $r = u.tracef("%s \xE2\x87\x84 %s", new sliceType$6([(x = u.x.tparams, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])), (x$1 = u.y.tparams, ((j < 0 || j >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + j]))])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - ti = (x$2 = u.x.indices, ((i < 0 || i >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i])); - tj = (x$3 = u.y.indices, ((j < 0 || j >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + j])); - /* */ if ((ti === 0) && (tj === 0)) { $s = 5; continue; } - /* */ if ((ti === 0)) { $s = 6; continue; } - /* */ if ((tj === 0)) { $s = 7; continue; } - /* */ if ((ti === tj)) { $s = 8; continue; } - /* */ if (ti > 0 && tj > 0) { $s = 9; continue; } - /* */ if (ti > 0) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if ((ti === 0) && (tj === 0)) { */ case 5: - u.types = $append(u.types, $ifaceNil); - (x$4 = u.x.indices, ((i < 0 || i >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + i] = -u.types.$length)); - (x$5 = u.y.indices, ((j < 0 || j >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + j] = -u.types.$length)); - $s = 12; continue; - /* } else if ((ti === 0)) { */ case 6: - (x$6 = u.x.indices, ((i < 0 || i >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + i] = tj)); - $s = 12; continue; - /* } else if ((tj === 0)) { */ case 7: - (x$7 = u.y.indices, ((j < 0 || j >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + j] = ti)); - $s = 12; continue; - /* } else if ((ti === tj)) { */ case 8: - /* break; */ $s = 4; continue; - $s = 12; continue; - /* } else if (ti > 0 && tj > 0) { */ case 9: - $s = -1; return false; - /* } else if (ti > 0) { */ case 10: - $r = u.y.setIndex(j, ti); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 12; continue; - /* } else { */ case 11: - $r = u.x.setIndex(i, tj); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 12: - case 4: - $s = -1; return true; - /* */ } return; } var $f = {$blk: join, $c: true, $r, i, j, ti, tj, u, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s};return $f; - }; - $ptrType(tparamsList).prototype.index = function index(typ) { - var _tuple, d, ok, tpar, typ; - d = this; - _tuple = $assertType(typ, ptrType$14, true); - tpar = _tuple[0]; - ok = _tuple[1]; + } + } + if (!prefixSet) { + line$1 = (x$1 = lines.$length - 1 >> 0, ((x$1 < 0 || x$1 >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + x$1])); + prefix = commonPrefix(line$1, line$1); + } + lineOfStars = false; + _tuple = strings.Cut(prefix, "*"); + p = _tuple[0]; + ok = _tuple[2]; if (ok) { - return tparamIndex(d.tparams, tpar); + prefix = strings.TrimSuffix(p, " "); + lineOfStars = true; + } else { + first = (0 >= lines.$length ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + 0]); + if (isBlank($substring(first, 2))) { + i$1 = prefix.length; + n = 0; + while (true) { + if (!(n < 3 && i$1 > 0 && (prefix.charCodeAt((i$1 - 1 >> 0)) === 32))) { break; } + i$1 = i$1 - (1) >> 0; + n = n + (1) >> 0; + } + if ((i$1 === prefix.length) && i$1 > 0 && (prefix.charCodeAt((i$1 - 1 >> 0)) === 9)) { + i$1 = i$1 - (1) >> 0; + } + prefix = $substring(prefix, 0, i$1); + } else { + suffix = $makeSlice(sliceType, first.length); + n$1 = 2; + while (true) { + if (!(n$1 < first.length && first.charCodeAt(n$1) <= 32)) { break; } + ((n$1 < 0 || n$1 >= suffix.$length) ? ($throwRuntimeError("index out of range"), undefined) : suffix.$array[suffix.$offset + n$1] = first.charCodeAt(n$1)); + n$1 = n$1 + (1) >> 0; + } + if (n$1 > 2 && ((2 >= suffix.$length ? ($throwRuntimeError("index out of range"), undefined) : suffix.$array[suffix.$offset + 2]) === 9)) { + suffix = $subslice(suffix, 2, n$1); + } else { + _tmp = 32; + _tmp$1 = 32; + (0 >= suffix.$length ? ($throwRuntimeError("index out of range"), undefined) : suffix.$array[suffix.$offset + 0] = _tmp); + (1 >= suffix.$length ? ($throwRuntimeError("index out of range"), undefined) : suffix.$array[suffix.$offset + 1] = _tmp$1); + suffix = $subslice(suffix, 0, n$1); + } + prefix = strings.TrimSuffix(prefix, ($bytesToString(suffix))); + } } - return -1; - }; - tparamIndex = function tparamIndex$1(list, tpar) { - var i, list, tpar; - i = tpar.index; - if (0 <= i && i < list.$length && ((i < 0 || i >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + i]) === tpar) { - return i; + last = (x$2 = lines.$length - 1 >> 0, ((x$2 < 0 || x$2 >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + x$2])); + closing = "*/"; + _tuple$1 = strings.Cut(last, closing); + before = _tuple$1[0]; + if (isBlank(before)) { + if (lineOfStars) { + closing = " */"; + } + (x$3 = lines.$length - 1 >> 0, ((x$3 < 0 || x$3 >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + x$3] = prefix + closing)); + } else { + prefix = commonPrefix(prefix, last); } - return -1; - }; - $ptrType(tparamsList).prototype.setIndex = function setIndex(i, tj) { - var {_i, _ref, d, i, k, ti, tj, tk, x, x$1, $s, $r, $c} = $restore(this, {i, tj}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - d = this; - ti = (x = d.indices, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - $r = assert(!((ti === 0)) && !((tj === 0))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _ref = d.indices; - _i = 0; + _ref$1 = lines; + _i$1 = 0; while (true) { - if (!(_i < _ref.$length)) { break; } - k = _i; - tk = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (tk === ti) { - (x$1 = d.indices, ((k < 0 || k >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + k] = tj)); + if (!(_i$1 < _ref$1.$length)) { break; } + i$2 = _i$1; + line$2 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + if (i$2 > 0 && !(line$2 === "")) { + ((i$2 < 0 || i$2 >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + i$2] = $substring(line$2, prefix.length)); } - _i++; - } - $s = -1; return; - /* */ } return; } var $f = {$blk: setIndex, $c: true, $r, _i, _ref, d, i, k, ti, tj, tk, x, x$1, $s};return $f; - }; - $ptrType(tparamsList).prototype.at = function at(i) { - var d, i, ti, x, x$1, x$2; - d = this; - ti = (x = d.indices, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - if (ti > 0) { - return (x$1 = d.unifier.types, x$2 = ti - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])); + _i$1++; } - return $ifaceNil; }; - $ptrType(tparamsList).prototype.set = function set(i, typ) { - var {d, i, ti, typ, u, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {i, typ}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - d = this; - $r = assert(!($interfaceIsEqual(typ, $ifaceNil))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - u = d.unifier; - /* */ if (false) { $s = 2; continue; } + $ptrType(printer).prototype.writeComment = function writeComment(comment$1) { + var {_arg, _arg$1, _arg$2, _arg$3, _i, _i$1, _r, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, comment$1, i, i$1, line, line$1, lines, p, pos, text, x, $s, $deferred, $r, $c} = $restore(this, {comment$1}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = [p]; + p[0] = this; + text = comment$1.Text; + _r = p[0].posFor(comment$1.Pos()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + pos = $clone(_r, token.Position); + /* */ if (strings.HasPrefix(text, "//line ") && (!pos.IsValid() || (pos.Column === 1))) { $s = 2; continue; } /* */ $s = 3; continue; - /* if (false) { */ case 2: - $r = u.tracef("%s \xE2\x9E\x9E %s", new sliceType$6([(x = d.tparams, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])), typ])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* if (strings.HasPrefix(text, "//line ") && (!pos.IsValid() || (pos.Column === 1))) { */ case 2: + $deferred.push([(function(p) { return function printer·writeComment·func1(indent) { + var indent; + p[0].indent = indent; + }; })(p), [p[0].indent]]); + p[0].indent = 0; /* } */ case 3: - ti = (x$1 = d.indices, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])); - /* */ if (ti < 0) { $s = 6; continue; } - /* */ if ((ti === 0)) { $s = 7; continue; } + /* */ if (text.charCodeAt(1) === 47) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (text.charCodeAt(1) === 47) { */ case 4: + _r$1 = constraint.IsGoBuild(text); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 6; continue; } + _r$2 = constraint.IsPlusBuild(text); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (_r$2) { $s = 7; continue; } /* */ $s = 8; continue; - /* if (ti < 0) { */ case 6: - (x$2 = u.types, x$3 = -ti - 1 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3] = typ)); - $r = d.setIndex(i, -ti); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 9; continue; - /* } else if ((ti === 0)) { */ case 7: - u.types = $append(u.types, typ); - (x$4 = d.indices, ((i < 0 || i >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + i] = u.types.$length)); - $s = 9; continue; - /* } else { */ case 8: - $panic(new $String("type already set")); - /* } */ case 9: - case 5: + /* if (_r$1) { */ case 6: + p[0].goBuild = $append(p[0].goBuild, p[0].output.$length); + $s = 8; continue; + /* } else if (_r$2) { */ case 7: + p[0].plusBuild = $append(p[0].plusBuild, p[0].output.$length); + /* } */ case 8: + _arg = $clone(pos, token.Position); + _r$3 = trimRight(text); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _arg$1 = _r$3; + $r = p[0].writeString(_arg, _arg$1, true); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 5: + lines = strings.Split(text, "\n"); + if (pos.IsValid() && (pos.Column === 1) && p[0].indent > 0) { + _ref = $subslice(lines, 1); + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + line = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + (x = 1 + i >> 0, ((x < 0 || x >= lines.$length) ? ($throwRuntimeError("index out of range"), undefined) : lines.$array[lines.$offset + x] = " " + line)); + _i++; + } + } + stripCommonPrefix(lines); + _ref$1 = lines; + _i$1 = 0; + /* while (true) { */ case 13: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 14; continue; } + i$1 = _i$1; + line$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + if (i$1 > 0) { + p[0].writeByte(12, 1); + token.Position.copy(pos, p[0].pos); + } + /* */ if (line$1.length > 0) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (line$1.length > 0) { */ case 15: + _arg$2 = $clone(pos, token.Position); + _r$4 = trimRight(line$1); /* */ $s = 17; case 17: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _arg$3 = _r$4; + $r = p[0].writeString(_arg$2, _arg$3, true); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 16: + _i$1++; + $s = 13; continue; + case 14: $s = -1; return; - /* */ } return; } var $f = {$blk: set, $c: true, $r, d, i, ti, typ, u, x, x$1, x$2, x$3, x$4, $s};return $f; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: writeComment, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _i, _i$1, _r, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, comment$1, i, i$1, line, line$1, lines, p, pos, text, x, $s, $deferred};return $f; } } }; - $ptrType(tparamsList).prototype.unknowns = function unknowns() { - var _i, _ref, d, n, ti; - d = this; - n = 0; - _ref = d.indices; + $ptrType(printer).prototype.writeCommentSuffix = function writeCommentSuffix(needsLinebreak) { + var {_1, _i, _ref, ch, droppedFF, i, needsLinebreak, p, wroteNewline, x, x$1, $s, $r, $c} = $restore(this, {needsLinebreak}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + wroteNewline = false; + droppedFF = false; + p = this; + _ref = p.wsbuf; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } - ti = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (ti <= 0) { - n = n + (1) >> 0; + i = _i; + ch = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _1 = ch; + if ((_1 === (32)) || (_1 === (11))) { + (x = p.wsbuf, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i] = 0)); + } else if ((_1 === (62)) || (_1 === (60))) { + } else if ((_1 === (10)) || (_1 === (12))) { + if (needsLinebreak) { + needsLinebreak = false; + wroteNewline = true; + } else { + if (ch === 12) { + droppedFF = true; + } + (x$1 = p.wsbuf, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i] = 0)); + } } _i++; } - return n; + $r = p.writeWhitespace(p.wsbuf.$length); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (needsLinebreak) { + p.writeByte(10, 1); + wroteNewline = true; + } + $s = -1; return [wroteNewline, droppedFF]; + /* */ } return; } var $f = {$blk: writeCommentSuffix, $c: true, $r, _1, _i, _ref, ch, droppedFF, i, needsLinebreak, p, wroteNewline, x, x$1, $s};return $f; }; - $ptrType(tparamsList).prototype.types = function types() { - var _i, _ref, d, i, index$1, list, t; - list = sliceType$3.nil; - index$1 = 0; - d = this; - list = $makeSlice(sliceType$3, d.tparams.$length); - index$1 = -1; - _ref = d.tparams; + $ptrType(printer).prototype.containsLinebreak = function containsLinebreak() { + var _i, _ref, ch, p; + p = this; + _ref = p.wsbuf; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } - i = _i; - t = d.at(i); - ((i < 0 || i >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + i] = t); - if (index$1 < 0 && $interfaceIsEqual(t, $ifaceNil)) { - index$1 = i; + ch = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if ((ch === 10) || (ch === 12)) { + return true; } _i++; } - return [list, index$1]; + return false; }; - $ptrType(unifier).prototype.nifyEq = function nifyEq(x, y, p) { - var {$24r, _r$1, _v, p, u, x, y, $s, $r, $c} = $restore(this, {x, y, p}); + $ptrType(printer).prototype.intersperseComments = function intersperseComments(next, tok) { + var {$24r, $24r$1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _tuple, _tuple$1, _v, _v$1, _v$2, c, changed, droppedFF, last, list, needsLinebreak, next, p, tok, wroteNewline, x, x$1, $s, $r, $c} = $restore(this, {next, tok}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - u = this; - if ($interfaceIsEqual(x, y)) { _v = true; $s = 1; continue s; } - _r$1 = u.nify(x, y, p); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = _r$1; case 1: - $24r = _v; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: nifyEq, $c: true, $r, $24r, _r$1, _v, p, u, x, y, $s};return $f; - }; - $ptrType(unifier).prototype.nify = function nify(x, y, p) { - var {$24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$13, $24r$14, $24r$15, $24r$16, $24r$17, $24r$18, $24r$19, $24r$2, $24r$20, $24r$21, $24r$22, $24r$23, $24r$24, $24r$25, $24r$26, $24r$27, $24r$28, $24r$29, $24r$3, $24r$30, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _arg, _arg$1, _arg$2, _i, _i$1, _i$2, _i$3, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, _v$2, _v$3, _v$4, _v$5, _v$6, a, b, cx, cy, f, f$1, g, g$1, i, i$1, i$2, i$3, i$4, j, nx, ny, ok, ok$1, ok$10, ok$2, ok$3, ok$4, ok$5, ok$6, ok$7, ok$8, ok$9, p, q, result, tx, ty, u, v, w, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9, xargs, xset, y, y$1, y$10, y$11, y$2, y$3, y$4, y$5, y$6, y$7, y$8, y$9, yargs, yset, $s, $deferred, $r, $c} = $restore(this, {x, y, p}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - result = [result]; - u = [u]; - x = [x]; - y = [y]; - result[0] = false; - u[0] = this; - /* */ if (false) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (false) { */ case 1: - $r = u[0].tracef("%s \xE2\x89\xA1 %s", new sliceType$6([x[0], y[0]])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - /* */ if (u[0].depth >= 50) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (u[0].depth >= 50) { */ case 4: - /* */ if (false) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (false) { */ case 6: - $r = u[0].tracef("depth %d >= %d", new sliceType$6([new $Int(u[0].depth), new $Int(50)])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 7: - if (true) { - $panic(new $String("unification reached recursion depth limit")); + wroteNewline = false; + droppedFF = false; + p = this; + last = ptrType$3.nil; + /* while (true) { */ case 1: + /* if (!(p.commentBefore($clone(next, token.Position)))) { break; } */ if(!(p.commentBefore($clone(next, token.Position)))) { $s = 2; continue; } + list = p.commentInfo.comment.List; + changed = false; + if (!(!((p.lastTok === 75)))) { _v$1 = false; $s = 6; continue s; } + _r = p.posFor(p.commentInfo.comment.Pos()); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v$1 = _r.Column === 1; case 6: + if (!(_v$1)) { _v = false; $s = 5; continue s; } + _r$1 = p.posFor(p.commentInfo.comment.End() + 1 >> 0); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = $equal(_r$1, next, token.Position); case 5: + /* */ if (_v) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_v) { */ case 3: + _r$2 = formatDocComment(list); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + list = _r$2; + changed = true; + /* */ if (p.commentInfo.comment.List.$length > 0 && (list.$length === 0)) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (p.commentInfo.comment.List.$length > 0 && (list.$length === 0)) { */ case 10: + _r$3 = p.posFor(p.commentInfo.comment.Pos()); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $r = p.writeCommentPrefix($clone(_r$3, token.Position), $clone(next, token.Position), last, tok); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + token.Position.copy(p.pos, next); + token.Position.copy(p.last, next); + $r = p.nextComment(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$4 = p.writeCommentSuffix(false); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple = _r$4; + wroteNewline = _tuple[0]; + droppedFF = _tuple[1]; + $24r = [wroteNewline, droppedFF]; + $s = 16; case 16: return $24r; + /* } */ case 11: + /* } */ case 4: + _ref = list; + _i = 0; + /* while (true) { */ case 17: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 18; continue; } + c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r$5 = p.posFor(c.Pos()); /* */ $s = 19; case 19: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $r = p.writeCommentPrefix($clone(_r$5, token.Position), $clone(next, token.Position), last, tok); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.writeComment(c); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + last = c; + _i++; + $s = 17; continue; + case 18: + /* */ if (p.commentInfo.comment.List.$length > 0 && changed) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (p.commentInfo.comment.List.$length > 0 && changed) { */ case 22: + last = (x = p.commentInfo.comment.List, x$1 = p.commentInfo.comment.List.$length - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + _r$6 = p.posFor(last.End()); /* */ $s = 24; case 24: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + token.Position.copy(p.pos, _r$6); + token.Position.copy(p.last, p.pos); + /* } */ case 23: + $r = p.nextComment(); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 1; continue; + case 2: + /* */ if (!(last === ptrType$3.nil)) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (!(last === ptrType$3.nil)) { */ case 26: + needsLinebreak = false; + if (!(((p.mode & 1) === 0) && (last.Text.charCodeAt(1) === 42))) { _v$2 = false; $s = 30; continue s; } + _r$7 = p.lineFor(last.Pos()); /* */ $s = 31; case 31: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _v$2 = _r$7 === next.Line; case 30: + /* */ if (_v$2 && !((tok === 52)) && (!((tok === 54)) || (p.prevOpen === 49)) && (!((tok === 55)) || (p.prevOpen === 50))) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (_v$2 && !((tok === 52)) && (!((tok === 54)) || (p.prevOpen === 49)) && (!((tok === 55)) || (p.prevOpen === 50))) { */ case 28: + if (p.containsLinebreak() && ((p.mode & 2) === 0) && (p.level === 0)) { + needsLinebreak = true; + } else { + p.writeByte(32, 1); + } + /* } */ case 29: + if ((last.Text.charCodeAt(1) === 47) || (tok === 1) || (tok === 56) && ((p.mode & 2) === 0)) { + needsLinebreak = true; } - result[0] = false; - $s = -1; return result[0]; - /* } */ case 5: - u[0].depth = u[0].depth + (1) >> 0; - $deferred.push([(function(result, u, x, y) { return function unifier·nify·func1() { - var {$s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - u[0].depth = u[0].depth - (1) >> 0; - /* */ if (false && !result[0]) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (false && !result[0]) { */ case 1: - $r = u[0].tracef("%s \xE2\x89\xA2 %s", new sliceType$6([x[0], y[0]])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: unifier·nify·func1, $c: true, $r, $s};return $f; - }; })(result, u, x, y), []]); - /* */ if (!u[0].exact) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (!u[0].exact) { */ case 9: - _tuple = $assertType(x[0], ptrType$9, true); - nx = _tuple[0]; - /* */ if (!(nx === ptrType$9.nil) && !hasName(y[0])) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (!(nx === ptrType$9.nil) && !hasName(y[0])) { */ case 11: - /* */ if (false) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (false) { */ case 14: - $r = u[0].tracef("under %s \xE2\x89\xA1 %s", new sliceType$6([nx, y[0]])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 15: - _r$1 = nx.under(); /* */ $s = 17; case 17: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = u[0].nify(_r$1, y[0], p); /* */ $s = 18; case 18: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - result[0] = _r$2; - $24r = result[0]; - $s = 19; case 19: return $24r; - /* } else { */ case 12: - _tuple$1 = $assertType(y[0], ptrType$9, true); - ny = _tuple$1[0]; - /* */ if (!(ny === ptrType$9.nil) && !hasName(x[0])) { $s = 20; continue; } - /* */ $s = 21; continue; - /* if (!(ny === ptrType$9.nil) && !hasName(x[0])) { */ case 20: - /* */ if (false) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if (false) { */ case 22: - $r = u[0].tracef("%s \xE2\x89\xA1 under %s", new sliceType$6([x[0], ny])); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 23: - _arg = x[0]; - _r$3 = ny.under(); /* */ $s = 25; case 25: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _arg$1 = _r$3; - _arg$2 = p; - _r$4 = u[0].nify(_arg, _arg$1, _arg$2); /* */ $s = 26; case 26: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - result[0] = _r$4; - $24r$1 = result[0]; - $s = 27; case 27: return $24r$1; - /* } */ case 21: - /* } */ case 13: - /* } */ case 10: - _tmp = u[0].x.index(x[0]); - _tmp$1 = u[0].y.index(y[0]); - i = _tmp; - j = _tmp$1; - /* */ if (i >= 0 && j >= 0) { $s = 29; continue; } - /* */ if (i >= 0) { $s = 30; continue; } - /* */ if (j >= 0) { $s = 31; continue; } - /* */ $s = 32; continue; - /* if (i >= 0 && j >= 0) { */ case 29: - _r$5 = u[0].join(i, j); /* */ $s = 35; case 35: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* */ if (_r$5) { $s = 33; continue; } - /* */ $s = 34; continue; - /* if (_r$5) { */ case 33: - result[0] = true; - $24r$2 = result[0]; - $s = 36; case 36: return $24r$2; - /* } */ case 34: - _r$6 = u[0].nifyEq(u[0].x.at(i), u[0].y.at(j), p); /* */ $s = 37; case 37: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - result[0] = _r$6; - $24r$3 = result[0]; - $s = 38; case 38: return $24r$3; - /* } else if (i >= 0) { */ case 30: - tx = u[0].x.at(i); - /* */ if (!($interfaceIsEqual(tx, $ifaceNil))) { $s = 39; continue; } - /* */ $s = 40; continue; - /* if (!($interfaceIsEqual(tx, $ifaceNil))) { */ case 39: - _r$7 = u[0].nifyEq(tx, y[0], p); /* */ $s = 41; case 41: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - result[0] = _r$7; - $24r$4 = result[0]; - $s = 42; case 42: return $24r$4; - /* } */ case 40: - $r = u[0].x.set(i, y[0]); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - result[0] = true; - $24r$5 = result[0]; - $s = 44; case 44: return $24r$5; - /* } else if (j >= 0) { */ case 31: - ty = u[0].y.at(j); - /* */ if (!($interfaceIsEqual(ty, $ifaceNil))) { $s = 45; continue; } - /* */ $s = 46; continue; - /* if (!($interfaceIsEqual(ty, $ifaceNil))) { */ case 45: - _r$8 = u[0].nifyEq(x[0], ty, p); /* */ $s = 47; case 47: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - result[0] = _r$8; - $24r$6 = result[0]; - $s = 48; case 48: return $24r$6; - /* } */ case 46: - $r = u[0].y.set(j, x[0]); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - result[0] = true; - $24r$7 = result[0]; - $s = 50; case 50: return $24r$7; - /* } */ case 32: - case 28: - /* */ if (true && !u[0].exact) { $s = 51; continue; } - /* */ $s = 52; continue; - /* if (true && !u[0].exact) { */ case 51: - /* */ if (isTypeParam(x[0]) && !hasName(y[0])) { $s = 53; continue; } - /* */ if (isTypeParam(y[0]) && !hasName(x[0])) { $s = 54; continue; } - /* */ $s = 55; continue; - /* if (isTypeParam(x[0]) && !hasName(y[0])) { */ case 53: - _r$9 = coreType(x[0]); /* */ $s = 56; case 56: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - cx = _r$9; - /* */ if (!($interfaceIsEqual(cx, $ifaceNil))) { $s = 57; continue; } - /* */ $s = 58; continue; - /* if (!($interfaceIsEqual(cx, $ifaceNil))) { */ case 57: - /* */ if (false) { $s = 59; continue; } - /* */ $s = 60; continue; - /* if (false) { */ case 59: - $r = u[0].tracef("core %s \xE2\x89\xA1 %s", new sliceType$6([x[0], y[0]])); /* */ $s = 61; case 61: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 60: - _r$10 = u[0].nify(cx, y[0], p); /* */ $s = 62; case 62: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - result[0] = _r$10; - $24r$8 = result[0]; - $s = 63; case 63: return $24r$8; - /* } */ case 58: - $s = 55; continue; - /* } else if (isTypeParam(y[0]) && !hasName(x[0])) { */ case 54: - _r$11 = coreType(y[0]); /* */ $s = 64; case 64: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - cy = _r$11; - /* */ if (!($interfaceIsEqual(cy, $ifaceNil))) { $s = 65; continue; } - /* */ $s = 66; continue; - /* if (!($interfaceIsEqual(cy, $ifaceNil))) { */ case 65: - /* */ if (false) { $s = 67; continue; } - /* */ $s = 68; continue; - /* if (false) { */ case 67: - $r = u[0].tracef("%s \xE2\x89\xA1 core %s", new sliceType$6([x[0], y[0]])); /* */ $s = 69; case 69: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 68: - _r$12 = u[0].nify(x[0], cy, p); /* */ $s = 70; case 70: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - result[0] = _r$12; - $24r$9 = result[0]; - $s = 71; case 71: return $24r$9; - /* } */ case 66: - /* } */ case 55: - /* } */ case 52: - _ref = x[0]; - /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 72; continue; } - /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 73; continue; } - /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 74; continue; } - /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 75; continue; } - /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 76; continue; } - /* */ if ($assertType(_ref, ptrType$15, true)[1]) { $s = 77; continue; } - /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 78; continue; } - /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 79; continue; } - /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 80; continue; } - /* */ if ($assertType(_ref, ptrType$29, true)[1]) { $s = 81; continue; } - /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 82; continue; } - /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 83; continue; } - /* */ if (_ref === $ifaceNil) { $s = 84; continue; } - /* */ $s = 85; continue; - /* if ($assertType(_ref, ptrType$4, true)[1]) { */ case 72: - x$1 = _ref.$val; - _tuple$2 = $assertType(y[0], ptrType$4, true); - y$1 = _tuple$2[0]; - ok = _tuple$2[1]; - /* */ if (ok) { $s = 87; continue; } - /* */ $s = 88; continue; - /* if (ok) { */ case 87: - result[0] = x$1.kind === y$1.kind; - $24r$10 = result[0]; - $s = 89; case 89: return $24r$10; - /* } */ case 88: - $s = 86; continue; - /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 73: - x$2 = _ref.$val; - _tuple$3 = $assertType(y[0], ptrType$10, true); - y$2 = _tuple$3[0]; - ok$1 = _tuple$3[1]; - /* */ if (ok$1) { $s = 90; continue; } - /* */ $s = 91; continue; - /* if (ok$1) { */ case 90: - if (!((x$15 = x$2.len, (x$15.$high < 0 || (x$15.$high === 0 && x$15.$low < 0))) || (x$16 = y$2.len, (x$16.$high < 0 || (x$16.$high === 0 && x$16.$low < 0))) || (x$17 = x$2.len, x$18 = y$2.len, (x$17.$high === x$18.$high && x$17.$low === x$18.$low)))) { _v = false; $s = 92; continue s; } - _r$13 = u[0].nify(x$2.elem, y$2.elem, p); /* */ $s = 93; case 93: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - _v = _r$13; case 92: - result[0] = _v; - $24r$11 = result[0]; - $s = 94; case 94: return $24r$11; - /* } */ case 91: - $s = 86; continue; - /* } else if ($assertType(_ref, ptrType$25, true)[1]) { */ case 74: - x$3 = _ref.$val; - _tuple$4 = $assertType(y[0], ptrType$25, true); - y$3 = _tuple$4[0]; - ok$2 = _tuple$4[1]; - /* */ if (ok$2) { $s = 95; continue; } - /* */ $s = 96; continue; - /* if (ok$2) { */ case 95: - _r$14 = u[0].nify(x$3.elem, y$3.elem, p); /* */ $s = 97; case 97: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - result[0] = _r$14; - $24r$12 = result[0]; - $s = 98; case 98: return $24r$12; - /* } */ case 96: - $s = 86; continue; - /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 75: - x$4 = _ref.$val; - _tuple$5 = $assertType(y[0], ptrType$11, true); - y$4 = _tuple$5[0]; - ok$3 = _tuple$5[1]; - /* */ if (ok$3) { $s = 99; continue; } - /* */ $s = 100; continue; - /* if (ok$3) { */ case 99: - /* */ if (x$4.NumFields() === y$4.NumFields()) { $s = 101; continue; } - /* */ $s = 102; continue; - /* if (x$4.NumFields() === y$4.NumFields()) { */ case 101: - _ref$1 = x$4.fields; - _i = 0; - /* while (true) { */ case 103: - /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 104; continue; } - i$1 = _i; - f = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); - g = (x$19 = y$4.fields, ((i$1 < 0 || i$1 >= x$19.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$19.$array[x$19.$offset + i$1])); - if (!(f.embedded === g.embedded) || !(x$4.Tag(i$1) === y$4.Tag(i$1)) || !f.object.sameId(g.object.pkg, g.object.name)) { _v$1 = true; $s = 107; continue s; } - _r$15 = u[0].nify(f.object.typ, g.object.typ, p); /* */ $s = 108; case 108: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - _v$1 = !_r$15; case 107: - /* */ if (_v$1) { $s = 105; continue; } - /* */ $s = 106; continue; - /* if (_v$1) { */ case 105: - result[0] = false; - $24r$13 = result[0]; - $s = 109; case 109: return $24r$13; - /* } */ case 106: - _i++; - $s = 103; continue; - case 104: - result[0] = true; - $24r$14 = result[0]; - $s = 110; case 110: return $24r$14; - /* } */ case 102: - /* } */ case 100: - $s = 86; continue; - /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 76: - x$5 = _ref.$val; - _tuple$6 = $assertType(y[0], ptrType$26, true); - y$5 = _tuple$6[0]; - ok$4 = _tuple$6[1]; - /* */ if (ok$4) { $s = 111; continue; } - /* */ $s = 112; continue; - /* if (ok$4) { */ case 111: - _r$16 = u[0].nify(x$5.base, y$5.base, p); /* */ $s = 113; case 113: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - result[0] = _r$16; - $24r$15 = result[0]; - $s = 114; case 114: return $24r$15; - /* } */ case 112: - $s = 86; continue; - /* } else if ($assertType(_ref, ptrType$15, true)[1]) { */ case 77: - x$6 = _ref.$val; - _tuple$7 = $assertType(y[0], ptrType$15, true); - y$6 = _tuple$7[0]; - ok$5 = _tuple$7[1]; - /* */ if (ok$5) { $s = 115; continue; } - /* */ $s = 116; continue; - /* if (ok$5) { */ case 115: - /* */ if (x$6.Len() === y$6.Len()) { $s = 117; continue; } - /* */ $s = 118; continue; - /* if (x$6.Len() === y$6.Len()) { */ case 117: - /* */ if (!(x$6 === ptrType$15.nil)) { $s = 119; continue; } - /* */ $s = 120; continue; - /* if (!(x$6 === ptrType$15.nil)) { */ case 119: - _ref$2 = x$6.vars; - _i$1 = 0; - /* while (true) { */ case 121: - /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 122; continue; } - i$2 = _i$1; - v = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); - w = (x$20 = y$6.vars, ((i$2 < 0 || i$2 >= x$20.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$20.$array[x$20.$offset + i$2])); - _r$17 = u[0].nify(v.object.typ, w.object.typ, p); /* */ $s = 125; case 125: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - /* */ if (!_r$17) { $s = 123; continue; } - /* */ $s = 124; continue; - /* if (!_r$17) { */ case 123: - result[0] = false; - $24r$16 = result[0]; - $s = 126; case 126: return $24r$16; - /* } */ case 124: - _i$1++; - $s = 121; continue; - case 122: - /* } */ case 120: - result[0] = true; - $24r$17 = result[0]; - $s = 127; case 127: return $24r$17; - /* } */ case 118: - /* } */ case 116: - $s = 86; continue; - /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 78: - x$7 = _ref.$val; - _tuple$8 = $assertType(y[0], ptrType$27, true); - y$7 = _tuple$8[0]; - ok$6 = _tuple$8[1]; - /* */ if (ok$6) { $s = 128; continue; } - /* */ $s = 129; continue; - /* if (ok$6) { */ case 128: - if (!(x$7.variadic === y$7.variadic)) { _v$3 = false; $s = 131; continue s; } - _r$18 = u[0].nify(x$7.params, y$7.params, p); /* */ $s = 132; case 132: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - _v$3 = _r$18; case 131: - if (!(_v$3)) { _v$2 = false; $s = 130; continue s; } - _r$19 = u[0].nify(x$7.results, y$7.results, p); /* */ $s = 133; case 133: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - _v$2 = _r$19; case 130: - result[0] = _v$2; - $24r$18 = result[0]; - $s = 134; case 134: return $24r$18; - /* } */ case 129: - $s = 86; continue; - /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 79: - x$8 = _ref.$val; - _tuple$9 = $assertType(y[0], ptrType$13, true); - y$8 = _tuple$9[0]; - ok$7 = _tuple$9[1]; - /* */ if (ok$7) { $s = 135; continue; } - /* */ $s = 136; continue; - /* if (ok$7) { */ case 135: - _r$20 = x$8.typeSet(); /* */ $s = 137; case 137: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - xset = _r$20; - _r$21 = y$8.typeSet(); /* */ $s = 138; case 138: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } - yset = _r$21; - /* */ if (!(xset.comparable === yset.comparable)) { $s = 139; continue; } - /* */ $s = 140; continue; - /* if (!(xset.comparable === yset.comparable)) { */ case 139: - result[0] = false; - $24r$19 = result[0]; - $s = 141; case 141: return $24r$19; - /* } */ case 140: - _r$22 = xset.terms.equal(yset.terms); /* */ $s = 144; case 144: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - /* */ if (!_r$22) { $s = 142; continue; } - /* */ $s = 143; continue; - /* if (!_r$22) { */ case 142: - result[0] = false; - $24r$20 = result[0]; - $s = 145; case 145: return $24r$20; - /* } */ case 143: - a = xset.methods; - b = yset.methods; - /* */ if (a.$length === b.$length) { $s = 146; continue; } - /* */ $s = 147; continue; - /* if (a.$length === b.$length) { */ case 146: - q = new ifacePair.ptr(x$8, y$8, p); - /* while (true) { */ case 148: - /* if (!(!(p === ptrType$23.nil))) { break; } */ if(!(!(p === ptrType$23.nil))) { $s = 149; continue; } - /* */ if (p.identical(q)) { $s = 150; continue; } - /* */ $s = 151; continue; - /* if (p.identical(q)) { */ case 150: - result[0] = true; - $24r$21 = result[0]; - $s = 152; case 152: return $24r$21; - /* } */ case 151: - p = p.prev; - $s = 148; continue; - case 149: - /* */ if (false) { $s = 153; continue; } - /* */ $s = 154; continue; - /* if (false) { */ case 153: - $r = assertSortedMethods(a); /* */ $s = 155; case 155: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = assertSortedMethods(b); /* */ $s = 156; case 156: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 154: - _ref$3 = a; - _i$2 = 0; - /* while (true) { */ case 157: - /* if (!(_i$2 < _ref$3.$length)) { break; } */ if(!(_i$2 < _ref$3.$length)) { $s = 158; continue; } - i$3 = _i$2; - f$1 = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]); - g$1 = ((i$3 < 0 || i$3 >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i$3]); - if (!(f$1.object.Id() === g$1.object.Id())) { _v$4 = true; $s = 161; continue s; } - _r$23 = u[0].nify(f$1.object.typ, g$1.object.typ, q); /* */ $s = 162; case 162: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _v$4 = !_r$23; case 161: - /* */ if (_v$4) { $s = 159; continue; } - /* */ $s = 160; continue; - /* if (_v$4) { */ case 159: - result[0] = false; - $24r$22 = result[0]; - $s = 163; case 163: return $24r$22; - /* } */ case 160: - _i$2++; - $s = 157; continue; - case 158: - result[0] = true; - $24r$23 = result[0]; - $s = 164; case 164: return $24r$23; - /* } */ case 147: - /* } */ case 136: - $s = 86; continue; - /* } else if ($assertType(_ref, ptrType$28, true)[1]) { */ case 80: - x$9 = _ref.$val; - _tuple$10 = $assertType(y[0], ptrType$28, true); - y$9 = _tuple$10[0]; - ok$8 = _tuple$10[1]; - /* */ if (ok$8) { $s = 165; continue; } - /* */ $s = 166; continue; - /* if (ok$8) { */ case 165: - _r$24 = u[0].nify(x$9.key, y$9.key, p); /* */ $s = 168; case 168: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - if (!(_r$24)) { _v$5 = false; $s = 167; continue s; } - _r$25 = u[0].nify(x$9.elem, y$9.elem, p); /* */ $s = 169; case 169: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - _v$5 = _r$25; case 167: - result[0] = _v$5; - $24r$24 = result[0]; - $s = 170; case 170: return $24r$24; - /* } */ case 166: - $s = 86; continue; - /* } else if ($assertType(_ref, ptrType$29, true)[1]) { */ case 81: - x$10 = _ref.$val; - _tuple$11 = $assertType(y[0], ptrType$29, true); - y$10 = _tuple$11[0]; - ok$9 = _tuple$11[1]; - /* */ if (ok$9) { $s = 171; continue; } - /* */ $s = 172; continue; - /* if (ok$9) { */ case 171: - if (!(!u[0].exact || (x$10.dir === y$10.dir))) { _v$6 = false; $s = 173; continue s; } - _r$26 = u[0].nify(x$10.elem, y$10.elem, p); /* */ $s = 174; case 174: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - _v$6 = _r$26; case 173: - result[0] = _v$6; - $24r$25 = result[0]; - $s = 175; case 175: return $24r$25; - /* } */ case 172: - $s = 86; continue; - /* } else if ($assertType(_ref, ptrType$9, true)[1]) { */ case 82: - x$11 = _ref.$val; - _tuple$12 = $assertType(y[0], ptrType$9, true); - y$11 = _tuple$12[0]; - ok$10 = _tuple$12[1]; - /* */ if (ok$10) { $s = 176; continue; } - /* */ $s = 177; continue; - /* if (ok$10) { */ case 176: - xargs = x$11.TypeArgs().list(); - yargs = y$11.TypeArgs().list(); - /* */ if (!((xargs.$length === yargs.$length))) { $s = 178; continue; } - /* */ $s = 179; continue; - /* if (!((xargs.$length === yargs.$length))) { */ case 178: - result[0] = false; - $24r$26 = result[0]; - $s = 180; case 180: return $24r$26; - /* } */ case 179: - /* */ if (x$11.obj.object.pkg === y$11.obj.object.pkg && x$11.obj.object.name === y$11.obj.object.name) { $s = 181; continue; } - /* */ $s = 182; continue; - /* if (x$11.obj.object.pkg === y$11.obj.object.pkg && x$11.obj.object.name === y$11.obj.object.name) { */ case 181: - _ref$4 = xargs; - _i$3 = 0; - /* while (true) { */ case 183: - /* if (!(_i$3 < _ref$4.$length)) { break; } */ if(!(_i$3 < _ref$4.$length)) { $s = 184; continue; } - i$4 = _i$3; - x$21 = ((_i$3 < 0 || _i$3 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$3]); - _r$27 = u[0].nify(x$21, ((i$4 < 0 || i$4 >= yargs.$length) ? ($throwRuntimeError("index out of range"), undefined) : yargs.$array[yargs.$offset + i$4]), p); /* */ $s = 187; case 187: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - /* */ if (!_r$27) { $s = 185; continue; } - /* */ $s = 186; continue; - /* if (!_r$27) { */ case 185: - result[0] = false; - $24r$27 = result[0]; - $s = 188; case 188: return $24r$27; - /* } */ case 186: - _i$3++; - $s = 183; continue; - case 184: - result[0] = true; - $24r$28 = result[0]; - $s = 189; case 189: return $24r$28; - /* } */ case 182: - /* } */ case 177: - $s = 86; continue; - /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 83: - x$12 = _ref.$val; - result[0] = $interfaceIsEqual(x$12, y[0]); - $24r$29 = result[0]; - $s = 190; case 190: return $24r$29; - /* } else if (_ref === $ifaceNil) { */ case 84: - x$13 = _ref; - $s = 86; continue; - /* } else { */ case 85: - x$14 = _ref; - _r$28 = sprintf(ptrType$24.nil, $throwNilPointerError, true, "u.nify(%s, %s), u.x.tparams = %s", new sliceType$6([x$14, y[0], u[0].x.tparams])); /* */ $s = 191; case 191: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - $panic(new $String(_r$28)); - /* } */ case 86: - result[0] = false; - $24r$30 = result[0]; - $s = 192; case 192: return $24r$30; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return result[0]; } if($curGoroutine.asleep) { var $f = {$blk: nify, $c: true, $r, $24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$13, $24r$14, $24r$15, $24r$16, $24r$17, $24r$18, $24r$19, $24r$2, $24r$20, $24r$21, $24r$22, $24r$23, $24r$24, $24r$25, $24r$26, $24r$27, $24r$28, $24r$29, $24r$3, $24r$30, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, _arg, _arg$1, _arg$2, _i, _i$1, _i$2, _i$3, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, _v$2, _v$3, _v$4, _v$5, _v$6, a, b, cx, cy, f, f$1, g, g$1, i, i$1, i$2, i$3, i$4, j, nx, ny, ok, ok$1, ok$10, ok$2, ok$3, ok$4, ok$5, ok$6, ok$7, ok$8, ok$9, p, q, result, tx, ty, u, v, w, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9, xargs, xset, y, y$1, y$10, y$11, y$2, y$3, y$4, y$5, y$6, y$7, y$8, y$9, yargs, yset, $s, $deferred};return $f; } } - }; - $ptrType(Checker).prototype.ident = function ident(x, e, def$2, wantType) { - var {_1, _entry, _entry$1, _r$1, _r$2, _r$3, _r$4, _ref, _tuple, _tuple$1, check, def$2, e, gotType, obj, obj$1, obj$2, obj$3, obj$4, obj$5, obj$6, obj$7, obj$8, pkgName, scope, tpar, typ, wantType, x, $s, $r, $c} = $restore(this, {x, e, def$2, wantType}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - x.mode = 0; - x.expr = e; - _r$1 = check.environment.scope.LookupParent(e.Name, check.environment.pos); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - scope = _tuple[0]; - obj = _tuple[1]; - _1 = obj; - /* */ if ($interfaceIsEqual(_1, $ifaceNil)) { $s = 3; continue; } - /* */ if ($interfaceIsEqual(_1, (universeAny)) || $interfaceIsEqual(_1, (universeComparable))) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if ($interfaceIsEqual(_1, $ifaceNil)) { */ case 3: - /* */ if (e.Name === "_") { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (e.Name === "_") { */ case 6: - tpar = (_entry = $mapIndex(check.recvTParamMap,ptrType$30.keyFor(e)), _entry !== undefined ? _entry.v : ptrType$14.nil); - /* */ if (!(tpar === ptrType$14.nil)) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (!(tpar === ptrType$14.nil)) { */ case 9: - x.mode = 3; - x.typ = tpar; - $s = 11; continue; - /* } else { */ case 10: - $r = check.error(e, 35, "cannot use _ as value or type"); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$8 = p.writeCommentSuffix(needsLinebreak); /* */ $s = 32; case 32: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _tuple$1 = _r$8; + wroteNewline = _tuple$1[0]; + droppedFF = _tuple$1[1]; + $24r$1 = [wroteNewline, droppedFF]; + $s = 33; case 33: return $24r$1; + /* } */ case 27: + $r = p.internalError(new sliceType$1([new $String("intersperseComments called without pending comments")])); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return [wroteNewline, droppedFF]; + /* */ } return; } var $f = {$blk: intersperseComments, $c: true, $r, $24r, $24r$1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _tuple, _tuple$1, _v, _v$1, _v$2, c, changed, droppedFF, last, list, needsLinebreak, next, p, tok, wroteNewline, x, x$1, $s};return $f; + }; + $ptrType(printer).prototype.writeWhitespace = function writeWhitespace(n) { + var {_1, _tmp, _tmp$1, ch, i, l, n, p, x, x$1, x$2, x$3, x$4, x$5, $s, $r, $c} = $restore(this, {n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + i = 0; + /* while (true) { */ case 1: + /* if (!(i < n)) { break; } */ if(!(i < n)) { $s = 2; continue; } + ch = (x = p.wsbuf, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + _1 = ch; + /* */ if (_1 === (0)) { $s = 4; continue; } + /* */ if (_1 === (62)) { $s = 5; continue; } + /* */ if (_1 === (60)) { $s = 6; continue; } + /* */ if ((_1 === (10)) || (_1 === (12))) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (_1 === (0)) { */ case 4: + $s = 9; continue; + /* } else if (_1 === (62)) { */ case 5: + p.indent = p.indent + (1) >> 0; + $s = 9; continue; + /* } else if (_1 === (60)) { */ case 6: + p.indent = p.indent - (1) >> 0; + /* */ if (p.indent < 0) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (p.indent < 0) { */ case 10: + $r = p.internalError(new sliceType$1([new $String("negative indentation:"), new $Int(p.indent)])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + p.indent = 0; /* } */ case 11: - $s = 8; continue; - /* } else { */ case 7: - $r = check.errorf(e, 75, "undefined: %s", new sliceType$6([new $String(e.Name)])); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 8: - $s = -1; return; - /* } else if ($interfaceIsEqual(_1, (universeAny)) || $interfaceIsEqual(_1, (universeComparable))) { */ case 4: - /* */ if (!check.allowVersion(check.pkg, 1, 18)) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (!check.allowVersion(check.pkg, 1, 18)) { */ case 14: - $r = check.versionErrorf(e, "go1.18", "predeclared %s", new sliceType$6([new $String(e.Name)])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 15: - /* } */ case 5: + $s = 9; continue; + /* } else if ((_1 === (10)) || (_1 === (12))) { */ case 7: + if ((i + 1 >> 0) < n && ((x$1 = p.wsbuf, x$2 = i + 1 >> 0, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])) === 60)) { + _tmp = 60; + _tmp$1 = 12; + (x$3 = p.wsbuf, ((i < 0 || i >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + i] = _tmp)); + (x$4 = p.wsbuf, x$5 = i + 1 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5] = _tmp$1)); + i = i - (1) >> 0; + i = i + (1) >> 0; + /* continue; */ $s = 1; continue; + } + p.writeByte(((ch << 24 >>> 24)), 1); + $s = 9; continue; + /* } else { */ case 8: + p.writeByte(((ch << 24 >>> 24)), 1); + /* } */ case 9: + case 3: + i = i + (1) >> 0; + $s = 1; continue; case 2: - $r = check.recordUse(e, obj); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$2 = obj.Type(); /* */ $s = 18; case 18: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - typ = _r$2; - _tuple$1 = $assertType(obj, ptrType$17, true); - gotType = _tuple$1[1]; - /* */ if ($interfaceIsEqual(typ, $ifaceNil) || gotType && wantType) { $s = 19; continue; } - /* */ $s = 20; continue; - /* if ($interfaceIsEqual(typ, $ifaceNil) || gotType && wantType) { */ case 19: - $r = check.objDecl(obj, def$2); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$3 = obj.Type(); /* */ $s = 22; case 22: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - typ = _r$3; - /* } */ case 20: - $r = assert(!($interfaceIsEqual(typ, $ifaceNil))); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$4 = obj.Name(); /* */ $s = 24; case 24: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - pkgName = (_entry$1 = $mapIndex(check.dotImportMap,dotImportKey.keyFor(new dotImportKey.ptr(scope, _r$4))), _entry$1 !== undefined ? _entry$1.v : ptrType$31.nil); - if (!(pkgName === ptrType$31.nil)) { - pkgName.used = true; - } - _ref = obj; - /* */ if ($assertType(_ref, ptrType$31, true)[1]) { $s = 25; continue; } - /* */ if ($assertType(_ref, ptrType$32, true)[1]) { $s = 26; continue; } - /* */ if ($assertType(_ref, ptrType$17, true)[1]) { $s = 27; continue; } - /* */ if ($assertType(_ref, ptrType$16, true)[1]) { $s = 28; continue; } - /* */ if ($assertType(_ref, ptrType$2, true)[1]) { $s = 29; continue; } - /* */ if ($assertType(_ref, ptrType$18, true)[1]) { $s = 30; continue; } - /* */ if ($assertType(_ref, ptrType$33, true)[1]) { $s = 31; continue; } - /* */ $s = 32; continue; - /* if ($assertType(_ref, ptrType$31, true)[1]) { */ case 25: - obj$1 = _ref.$val; - $r = check.errorf(e, 4, "use of package %s not in selector", new sliceType$6([new $String(obj$1.object.name)])); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } else if ($assertType(_ref, ptrType$32, true)[1]) { */ case 26: - obj$2 = _ref.$val; - check.addDeclDep(obj$2); - if ($interfaceIsEqual(typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { - $s = -1; return; - } - /* */ if ($interfaceIsEqual(obj$2, universeIota)) { $s = 35; continue; } - /* */ $s = 36; continue; - /* if ($interfaceIsEqual(obj$2, universeIota)) { */ case 35: - /* */ if ($interfaceIsEqual(check.environment.iota, $ifaceNil)) { $s = 38; continue; } - /* */ $s = 39; continue; - /* if ($interfaceIsEqual(check.environment.iota, $ifaceNil)) { */ case 38: - $r = check.error(e, 36, "cannot use iota outside constant declaration"); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 39: - x.val = check.environment.iota; - $s = 37; continue; - /* } else { */ case 36: - x.val = obj$2.val; - /* } */ case 37: - $r = assert(!($interfaceIsEqual(x.val, $ifaceNil))); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 4; - $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$17, true)[1]) { */ case 27: - obj$3 = _ref.$val; - /* */ if (check.isBrokenAlias(obj$3)) { $s = 42; continue; } - /* */ $s = 43; continue; - /* if (check.isBrokenAlias(obj$3)) { */ case 42: - $r = check.errorf(e, 11, "invalid use of type alias %s in recursive type (see issue #50729)", new sliceType$6([new $String(obj$3.object.name)])); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 43: - x.mode = 3; - $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$16, true)[1]) { */ case 28: - obj$4 = _ref.$val; - if (obj$4.object.pkg === check.pkg) { - obj$4.used = true; - } - check.addDeclDep(obj$4); - if ($interfaceIsEqual(typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { - $s = -1; return; - } - x.mode = 5; - $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$2, true)[1]) { */ case 29: - obj$5 = _ref.$val; - check.addDeclDep(obj$5); - x.mode = 7; - $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$18, true)[1]) { */ case 30: - obj$6 = _ref.$val; - x.id = obj$6.id; - x.mode = 2; - $s = 33; continue; - /* } else if ($assertType(_ref, ptrType$33, true)[1]) { */ case 31: - obj$7 = _ref.$val; - x.mode = 7; - $s = 33; continue; - /* } else { */ case 32: - obj$8 = _ref; - unreachable(); - /* } */ case 33: - x.typ = typ; + l = $copySlice(p.wsbuf, $subslice(p.wsbuf, n)); + p.wsbuf = $subslice(p.wsbuf, 0, l); $s = -1; return; - /* */ } return; } var $f = {$blk: ident, $c: true, $r, _1, _entry, _entry$1, _r$1, _r$2, _r$3, _r$4, _ref, _tuple, _tuple$1, check, def$2, e, gotType, obj, obj$1, obj$2, obj$3, obj$4, obj$5, obj$6, obj$7, obj$8, pkgName, scope, tpar, typ, wantType, x, $s};return $f; + /* */ } return; } var $f = {$blk: writeWhitespace, $c: true, $r, _1, _tmp, _tmp$1, ch, i, l, n, p, x, x$1, x$2, x$3, x$4, x$5, $s};return $f; }; - $ptrType(Checker).prototype.typ = function typ(e) { - var {$24r, _r$1, check, e, $s, $r, $c} = $restore(this, {e}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = check.definedType(e, ptrType$9.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: typ, $c: true, $r, $24r, _r$1, check, e, $s};return $f; - }; - $ptrType(Checker).prototype.varType = function varType(e) { - var {_r$1, check, e, typ$1, $s, $r, $c} = $restore(this, {e}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = check.definedType(e, ptrType$9.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - typ$1 = _r$1; - check.validVarType(e, typ$1); - $s = -1; return typ$1; - /* */ } return; } var $f = {$blk: varType, $c: true, $r, _r$1, check, e, typ$1, $s};return $f; - }; - $ptrType(Checker).prototype.validVarType = function validVarType(e, typ$1) { - var check, e, typ$1; - check = this; - if (isTypeParam(typ$1)) { - return; + nlimit = function nlimit$1(n) { + var n; + if (n > 2) { + n = 2; } - check.later((function Checker·validVarType·func1() { - var {_arg, _arg$1, _arg$2, _r$1, _r$2, _r$3, _tuple, t, tset, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = under(typ$1); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = $assertType(_r$1, ptrType$13, true); - t = _tuple[0]; - /* */ if (!(t === ptrType$13.nil)) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!(t === ptrType$13.nil)) { */ case 2: - _arg = check; - _r$2 = e.Pos(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _arg$1 = _r$2; - _arg$2 = t; - _r$3 = computeInterfaceTypeSet(_arg, _arg$1, _arg$2); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - tset = _r$3; - /* */ if (!tset.IsMethodSet()) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (!tset.IsMethodSet()) { */ case 6: - /* */ if (tset.comparable) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (tset.comparable) { */ case 8: - $r = check.softErrorf(e, 142, "cannot use type %s outside a type constraint: interface is (or embeds) comparable", new sliceType$6([typ$1])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 10; continue; - /* } else { */ case 9: - $r = check.softErrorf(e, 142, "cannot use type %s outside a type constraint: interface contains type constraints", new sliceType$6([typ$1])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 10: - /* } */ case 7: - /* } */ case 3: - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·validVarType·func1, $c: true, $r, _arg, _arg$1, _arg$2, _r$1, _r$2, _r$3, _tuple, t, tset, $s};return $f; - })).describef(e, "check var type %s", new sliceType$6([typ$1])); - }; - $ptrType(Checker).prototype.definedType = function definedType(e, def$2) { - var {_r$1, _r$2, check, def$2, e, typ$1, $s, $r, $c} = $restore(this, {e, def$2}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = check.typInternal(e, def$2); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - typ$1 = _r$1; - $r = assert(isTyped(typ$1)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$2 = isGeneric(typ$1); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (_r$2) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (_r$2) { */ case 3: - $r = check.errorf(e, 137, "cannot use generic type %s without instantiation", new sliceType$6([typ$1])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - typ$1 = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - /* } */ case 4: - $r = check.recordTypeAndValue(e, 3, typ$1, $ifaceNil); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return typ$1; - /* */ } return; } var $f = {$blk: definedType, $c: true, $r, _r$1, _r$2, check, def$2, e, typ$1, $s};return $f; - }; - $ptrType(Checker).prototype.genericType = function genericType(e, cause) { - var {_r$1, _r$2, _r$3, _v, cause, check, e, typ$1, $s, $r, $c} = $restore(this, {e, cause}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = check.typInternal(e, ptrType$9.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - typ$1 = _r$1; - $r = assert(isTyped(typ$1)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (!(!($interfaceIsEqual(typ$1, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))))) { _v = false; $s = 5; continue s; } - _r$2 = isGeneric(typ$1); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _v = !_r$2; case 5: - /* */ if (_v) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (_v) { */ case 3: - /* */ if (!(cause === ptrType$34.nil)) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (!(cause === ptrType$34.nil)) { */ case 7: - _r$3 = check.sprintf("%s is not a generic type", new sliceType$6([typ$1])); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - cause.$set(_r$3); - /* } */ case 8: - typ$1 = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - /* } */ case 4: - $r = check.recordTypeAndValue(e, 3, typ$1, $ifaceNil); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return typ$1; - /* */ } return; } var $f = {$blk: genericType, $c: true, $r, _r$1, _r$2, _r$3, _v, cause, check, e, typ$1, $s};return $f; + return n; }; - goTypeName = function goTypeName$1(typ$1) { - var {$24r, _r$1, _r$2, typ$1, $s, $r, $c} = $restore(this, {typ$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = fmt.Sprintf("%T", new sliceType$6([typ$1])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = strings.ReplaceAll(_r$1, "types.", ""); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: goTypeName$1, $c: true, $r, $24r, _r$1, _r$2, typ$1, $s};return $f; + mayCombine = function mayCombine$1(prev, next) { + var _1, b, next, prev; + b = false; + _1 = prev; + if (_1 === (5)) { + b = next === 46; + } else if (_1 === (12)) { + b = next === 43; + } else if (_1 === (13)) { + b = next === 45; + } else if (_1 === (15)) { + b = next === 42; + } else if (_1 === (40)) { + b = (next === 45) || (next === 60); + } else if (_1 === (17)) { + b = (next === 38) || (next === 94); + } + return b; }; - $ptrType(Checker).prototype.typInternal = function typInternal(e0, def$2) { - var {$24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, T, _1, _2, _3, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, check, def$2, dir$1, e, e$1, e$10, e$11, e$12, e$13, e$2, e$3, e$4, e$5, e$6, e$7, e$8, e$9, e0, ix, ok, typ$1, typ$10, typ$11, typ$2, typ$3, typ$4, typ$5, typ$6, typ$7, typ$8, typ$9, x, x$1, x$2, x$3, $s, $deferred, $r, $c} = $restore(this, {e0, def$2}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - T = [T]; - check = [check]; - e = [e]; - e0 = [e0]; - typ$1 = [typ$1]; - x = [x]; - x$1 = [x$1]; - T[0] = $ifaceNil; - check[0] = this; - /* */ if (false) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (false) { */ case 1: - _r$1 = e0[0].Pos(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $r = check[0].trace(_r$1, "-- type %s", new sliceType$6([e0[0]])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - check[0].indent = check[0].indent + (1) >> 0; - $deferred.push([(function(T, check, e, e0, typ$1, x, x$1) { return function Checker·typInternal·func1() { - var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _r$2, _r$3, _r$4, _r$5, _r$6, under$1, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check[0].indent = check[0].indent - (1) >> 0; - under$1 = $ifaceNil; - /* */ if (!($interfaceIsEqual(T[0], $ifaceNil))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!($interfaceIsEqual(T[0], $ifaceNil))) { */ case 1: - _r$2 = safeUnderlying(T[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - under$1 = _r$2; - /* } */ case 2: - /* */ if ($interfaceIsEqual(T[0], under$1)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if ($interfaceIsEqual(T[0], under$1)) { */ case 4: - _r$3 = e0[0].Pos(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _arg = _r$3; - _arg$1 = T[0]; - _r$4 = goTypeName(T[0]); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _arg$2 = new $String(_r$4); - $r = check[0].trace(_arg, "=> %s // %s", new sliceType$6([_arg$1, _arg$2])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 6; continue; - /* } else { */ case 5: - _r$5 = e0[0].Pos(); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _arg$3 = _r$5; - _arg$4 = T[0]; - _arg$5 = under$1; - _r$6 = goTypeName(T[0]); /* */ $s = 11; case 11: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _arg$6 = new $String(_r$6); - $r = check[0].trace(_arg$3, "=> %s (under = %s) // %s", new sliceType$6([_arg$4, _arg$5, _arg$6])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 6: - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·typInternal·func1, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _r$2, _r$3, _r$4, _r$5, _r$6, under$1, $s};return $f; - }; })(T, check, e, e0, typ$1, x, x$1), []]); - /* } */ case 2: - _ref = e0[0]; - /* */ if ($assertType(_ref, ptrType$35, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$30, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType$36, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref, ptrType$37, true)[1] || $assertType(_ref, ptrType$38, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref, ptrType$39, true)[1]) { $s = 9; continue; } - /* */ if ($assertType(_ref, ptrType$40, true)[1]) { $s = 10; continue; } - /* */ if ($assertType(_ref, ptrType$41, true)[1]) { $s = 11; continue; } - /* */ if ($assertType(_ref, ptrType$42, true)[1]) { $s = 12; continue; } - /* */ if ($assertType(_ref, ptrType$43, true)[1]) { $s = 13; continue; } - /* */ if ($assertType(_ref, ptrType$44, true)[1]) { $s = 14; continue; } - /* */ if ($assertType(_ref, ptrType$45, true)[1]) { $s = 15; continue; } - /* */ if ($assertType(_ref, ptrType$46, true)[1]) { $s = 16; continue; } - /* */ if ($assertType(_ref, ptrType$47, true)[1]) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if ($assertType(_ref, ptrType$35, true)[1]) { */ case 5: - e$1 = _ref.$val; - $s = 19; continue; - /* } else if ($assertType(_ref, ptrType$30, true)[1]) { */ case 6: - e$2 = _ref.$val; - x[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = check[0].ident(x[0], e$2, def$2, true); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _1 = x[0].mode; - /* */ if (_1 === (3)) { $s = 22; continue; } - /* */ if (_1 === (0)) { $s = 23; continue; } - /* */ if (_1 === (1)) { $s = 24; continue; } - /* */ $s = 25; continue; - /* if (_1 === (3)) { */ case 22: - typ$2 = x[0].typ; - def$2.setUnderlying(typ$2); - T[0] = typ$2; - $24r = T[0]; - $s = 27; case 27: return $24r; - /* } else if (_1 === (0)) { */ case 23: - $s = 26; continue; - /* } else if (_1 === (1)) { */ case 24: - $r = check[0].errorf(x[0], 25, "%s used as type", new sliceType$6([x[0]])); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 26; continue; - /* } else { */ case 25: - $r = check[0].errorf(x[0], 25, "%s is not a type", new sliceType$6([x[0]])); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 26: - case 21: - $s = 19; continue; - /* } else if ($assertType(_ref, ptrType$36, true)[1]) { */ case 7: - e$3 = _ref.$val; - x$1[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = check[0].selector(x$1[0], e$3, def$2, true); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _2 = x$1[0].mode; - /* */ if (_2 === (3)) { $s = 32; continue; } - /* */ if (_2 === (0)) { $s = 33; continue; } - /* */ if (_2 === (1)) { $s = 34; continue; } - /* */ $s = 35; continue; - /* if (_2 === (3)) { */ case 32: - typ$3 = x$1[0].typ; - def$2.setUnderlying(typ$3); - T[0] = typ$3; - $24r$1 = T[0]; - $s = 37; case 37: return $24r$1; - /* } else if (_2 === (0)) { */ case 33: - $s = 36; continue; - /* } else if (_2 === (1)) { */ case 34: - $r = check[0].errorf(x$1[0], 25, "%s used as type", new sliceType$6([x$1[0]])); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 36; continue; - /* } else { */ case 35: - $r = check[0].errorf(x$1[0], 25, "%s is not a type", new sliceType$6([x$1[0]])); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 36: - case 31: - $s = 19; continue; - /* } else if ($assertType(_ref, ptrType$37, true)[1] || $assertType(_ref, ptrType$38, true)[1]) { */ case 8: - e$4 = _ref; - ix = typeparams.UnpackIndexExpr(e$4); - /* */ if (!check[0].allowVersion(check[0].pkg, 1, 18)) { $s = 40; continue; } - /* */ $s = 41; continue; - /* if (!check[0].allowVersion(check[0].pkg, 1, 18)) { */ case 40: - _r$2 = inNode(e$4, ix.IndexListExpr.Lbrack); /* */ $s = 42; case 42: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $r = check[0].softErrorf((x$2 = _r$2, new x$2.constructor.elem(x$2)), 135, "type instantiation requires go1.18 or later", sliceType$6.nil); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 41: - _r$3 = check[0].instantiatedType(ix, def$2); /* */ $s = 44; case 44: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - T[0] = _r$3; - $24r$2 = T[0]; - $s = 45; case 45: return $24r$2; - /* } else if ($assertType(_ref, ptrType$39, true)[1]) { */ case 9: - e$5 = _ref.$val; - _r$4 = check[0].definedType(e$5.X, def$2); /* */ $s = 46; case 46: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - T[0] = _r$4; - $24r$3 = T[0]; - $s = 47; case 47: return $24r$3; - /* } else if ($assertType(_ref, ptrType$40, true)[1]) { */ case 10: - e$6 = _ref.$val; - /* */ if ($interfaceIsEqual(e$6.Len, $ifaceNil)) { $s = 48; continue; } - /* */ $s = 49; continue; - /* if ($interfaceIsEqual(e$6.Len, $ifaceNil)) { */ case 48: - typ$4 = new Slice.ptr($ifaceNil); - def$2.setUnderlying(typ$4); - _r$5 = check[0].varType(e$6.Elt); /* */ $s = 50; case 50: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - typ$4.elem = _r$5; - T[0] = typ$4; - $24r$4 = T[0]; - $s = 51; case 51: return $24r$4; - /* } */ case 49: - typ$5 = new Array.ptr(new $Int64(0, 0), $ifaceNil); - def$2.setUnderlying(typ$5); - _tuple = $assertType(e$6.Len, ptrType$41, true); - ok = _tuple[1]; - /* */ if (ok) { $s = 52; continue; } - /* */ $s = 53; continue; - /* if (ok) { */ case 52: - $r = check[0].error(e$6.Len, 77, "invalid use of [...] array (outside a composite literal)"); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - typ$5.len = new $Int64(-1, 4294967295); - $s = 54; continue; - /* } else { */ case 53: - _r$6 = check[0].arrayLength(e$6.Len); /* */ $s = 56; case 56: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - typ$5.len = _r$6; - /* } */ case 54: - _r$7 = check[0].varType(e$6.Elt); /* */ $s = 57; case 57: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - typ$5.elem = _r$7; - /* */ if ((x$3 = typ$5.len, (x$3.$high > 0 || (x$3.$high === 0 && x$3.$low >= 0)))) { $s = 58; continue; } - /* */ $s = 59; continue; - /* if ((x$3 = typ$5.len, (x$3.$high > 0 || (x$3.$high === 0 && x$3.$low >= 0)))) { */ case 58: - T[0] = typ$5; - $24r$5 = T[0]; - $s = 60; case 60: return $24r$5; - /* } */ case 59: - $s = 19; continue; - /* } else if ($assertType(_ref, ptrType$41, true)[1]) { */ case 11: - e$7 = _ref.$val; - $r = check[0].error(e$7, 81, "invalid use of '...'"); /* */ $s = 61; case 61: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].use(new sliceType$11([e$7.Elt])); /* */ $s = 62; case 62: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 19; continue; - /* } else if ($assertType(_ref, ptrType$42, true)[1]) { */ case 12: - e$8 = _ref.$val; - typ$6 = new Struct.ptr(sliceType$10.nil, sliceType$5.nil); - def$2.setUnderlying(typ$6); - $r = check[0].structType(typ$6, e$8); /* */ $s = 63; case 63: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - T[0] = typ$6; - $24r$6 = T[0]; - $s = 64; case 64: return $24r$6; - /* } else if ($assertType(_ref, ptrType$43, true)[1]) { */ case 13: - e$9 = _ref.$val; - typ$7 = new Pointer.ptr($ifaceNil); - typ$7.base = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - def$2.setUnderlying(typ$7); - _r$8 = check[0].varType(e$9.X); /* */ $s = 65; case 65: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - typ$7.base = _r$8; - T[0] = typ$7; - $24r$7 = T[0]; - $s = 66; case 66: return $24r$7; - /* } else if ($assertType(_ref, ptrType$44, true)[1]) { */ case 14: - e$10 = _ref.$val; - typ$8 = new Signature.ptr(ptrType$48.nil, ptrType$48.nil, ptrType.nil, ptrType$16.nil, ptrType$15.nil, ptrType$15.nil, false); - def$2.setUnderlying(typ$8); - $r = check[0].funcType(typ$8, ptrType$49.nil, e$10); /* */ $s = 67; case 67: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - T[0] = typ$8; - $24r$8 = T[0]; - $s = 68; case 68: return $24r$8; - /* } else if ($assertType(_ref, ptrType$45, true)[1]) { */ case 15: - e$11 = _ref.$val; - typ$9 = check[0].newInterface(); - def$2.setUnderlying(typ$9); - $r = check[0].interfaceType(typ$9, e$11, def$2); /* */ $s = 69; case 69: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - T[0] = typ$9; - $24r$9 = T[0]; - $s = 70; case 70: return $24r$9; - /* } else if ($assertType(_ref, ptrType$46, true)[1]) { */ case 16: - e[0] = _ref.$val; - typ$1[0] = new Map.ptr($ifaceNil, $ifaceNil); - def$2.setUnderlying(typ$1[0]); - _r$9 = check[0].varType(e[0].Key); /* */ $s = 71; case 71: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - typ$1[0].key = _r$9; - _r$10 = check[0].varType(e[0].Value); /* */ $s = 72; case 72: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - typ$1[0].elem = _r$10; - check[0].later((function(T, check, e, e0, typ$1, x, x$1) { return function Checker·typInternal·func2() { - var {_r$11, why, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$11 = Comparable(typ$1[0].key); /* */ $s = 3; case 3: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - /* */ if (!_r$11) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!_r$11) { */ case 1: - why = ""; - if (isTypeParam(typ$1[0].key)) { - why = " (missing comparable constraint)"; - } - $r = check[0].errorf(e[0].Key, 28, "invalid map key type %s%s", new sliceType$6([typ$1[0].key, new $String(why)])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·typInternal·func2, $c: true, $r, _r$11, why, $s};return $f; - }; })(T, check, e, e0, typ$1, x, x$1)).describef(e[0].Key, "check map key %s", new sliceType$6([typ$1[0].key])); - T[0] = typ$1[0]; - $24r$10 = T[0]; - $s = 73; case 73: return $24r$10; - /* } else if ($assertType(_ref, ptrType$47, true)[1]) { */ case 17: - e$12 = _ref.$val; - typ$10 = new Chan.ptr(0, $ifaceNil); - def$2.setUnderlying(typ$10); - dir$1 = 0; - _3 = e$12.Dir; - /* */ if (_3 === (3)) { $s = 75; continue; } - /* */ if (_3 === (1)) { $s = 76; continue; } - /* */ if (_3 === (2)) { $s = 77; continue; } - /* */ $s = 78; continue; - /* if (_3 === (3)) { */ case 75: - $s = 79; continue; - /* } else if (_3 === (1)) { */ case 76: - dir$1 = 1; - $s = 79; continue; - /* } else if (_3 === (2)) { */ case 77: - dir$1 = 2; - $s = 79; continue; - /* } else { */ case 78: - $r = check[0].errorf(e$12, -1, "unknown channel direction %d", new sliceType$6([new ast.ChanDir(e$12.Dir)])); /* */ $s = 80; case 80: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 79: - case 74: - typ$10.dir = dir$1; - _r$11 = check[0].varType(e$12.Value); /* */ $s = 81; case 81: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - typ$10.elem = _r$11; - T[0] = typ$10; - $24r$11 = T[0]; - $s = 82; case 82: return $24r$11; - /* } else { */ case 18: - e$13 = _ref; - $r = check[0].errorf(e0[0], 25, "%s is not a type", new sliceType$6([e0[0]])); /* */ $s = 83; case 83: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].use(new sliceType$11([e0[0]])); /* */ $s = 84; case 84: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 19: - typ$11 = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - def$2.setUnderlying(typ$11); - T[0] = typ$11; - $24r$12 = T[0]; - $s = 85; case 85: return $24r$12; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return T[0]; } if($curGoroutine.asleep) { var $f = {$blk: typInternal, $c: true, $r, $24r, $24r$1, $24r$10, $24r$11, $24r$12, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, $24r$8, $24r$9, T, _1, _2, _3, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, check, def$2, dir$1, e, e$1, e$10, e$11, e$12, e$13, e$2, e$3, e$4, e$5, e$6, e$7, e$8, e$9, e0, ix, ok, typ$1, typ$10, typ$11, typ$2, typ$3, typ$4, typ$5, typ$6, typ$7, typ$8, typ$9, x, x$1, x$2, x$3, $s, $deferred};return $f; } } - }; - $ptrType(Checker).prototype.instantiatedType = function instantiatedType(ix, def$2) { - var {$24r, $24r$1, $24r$2, _arg, _arg$1, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, cause, check, def$2, gtyp, inst, ix, orig, res, targs, $s, $deferred, $r, $c} = $restore(this, {ix, def$2}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - cause = [cause]; - check = [check]; - inst = [inst]; - ix = [ix]; - res = [res]; - res[0] = $ifaceNil; - check[0] = this; - /* */ if (false) { $s = 1; continue; } + $ptrType(printer).prototype.setPos = function setPos(pos) { + var {_r, p, pos, $s, $r, $c} = $restore(this, {pos}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + /* */ if (new token.Pos(pos).IsValid()) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (false) { */ case 1: - _r$1 = ix[0].IndexListExpr.Pos(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $r = check[0].trace(_r$1, "-- instantiating type %s with %s", new sliceType$6([ix[0].IndexListExpr.X, ix[0].IndexListExpr.Indices])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - check[0].indent = check[0].indent + (1) >> 0; - $deferred.push([(function(cause, check, inst, ix, res) { return function Checker·instantiatedType·func1() { - var {_r$2, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check[0].indent = check[0].indent - (1) >> 0; - _r$2 = ix[0].IndexListExpr.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $r = check[0].trace(_r$2, "=> %s", new sliceType$6([res[0]])); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·instantiatedType·func1, $c: true, $r, _r$2, $s};return $f; - }; })(cause, check, inst, ix, res), []]); + /* if (new token.Pos(pos).IsValid()) { */ case 1: + _r = p.posFor(pos); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + token.Position.copy(p.pos, _r); /* } */ case 2: - cause[0] = ""; - _r$2 = check[0].genericType(ix[0].IndexListExpr.X, (cause.$ptr || (cause.$ptr = new ptrType$34(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, cause)))); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - gtyp = _r$2; - /* */ if (!(cause[0] === "")) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (!(cause[0] === "")) { */ case 6: - $r = check[0].errorf(ix[0].Orig, 136, "invalid operation: %s (%s)", new sliceType$6([ix[0].Orig, new $String(cause[0])])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 7: - /* */ if ($interfaceIsEqual(gtyp, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if ($interfaceIsEqual(gtyp, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { */ case 9: - res[0] = gtyp; - $24r = res[0]; - $s = 11; case 11: return $24r; - /* } */ case 10: - _tuple = $assertType(gtyp, ptrType$9, true); - orig = _tuple[0]; - /* */ if (orig === ptrType$9.nil) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (orig === ptrType$9.nil) { */ case 12: - _r$3 = ix[0].IndexListExpr.Pos(); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _arg = new token.Pos(_r$3); - _arg$1 = gtyp; - _r$4 = fmt.Sprintf("%v: cannot instantiate %v", new sliceType$6([_arg, _arg$1])); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $panic(new $String(_r$4)); - /* } */ case 13: - _r$5 = check[0].typeList(ix[0].IndexListExpr.Indices); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - targs = _r$5; - /* */ if (targs === sliceType$3.nil) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (targs === sliceType$3.nil) { */ case 17: - def$2.setUnderlying((0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])); - res[0] = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - $24r$1 = res[0]; - $s = 19; case 19: return $24r$1; - /* } */ case 18: - _r$6 = ix[0].IndexListExpr.Pos(); /* */ $s = 20; case 20: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _r$7 = check[0].instance(_r$6, orig, targs, ptrType$9.nil, check[0].context()); /* */ $s = 21; case 21: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - inst[0] = $assertType(_r$7, ptrType$9); - def$2.setUnderlying(inst[0]); - check[0].later((function(cause, check, inst, ix, res) { return function Checker·instantiatedType·func2() { - var {_arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$20, _r$21, _r$8, _r$9, _tuple$1, err, i, pos, x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = check[0].recordInstance(ix[0].Orig, inst[0].TypeArgs().list(), inst[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$8 = ix[0].IndexListExpr.Pos(); /* */ $s = 4; case 4: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _arg$2 = _r$8; - _r$9 = inst[0].TypeParams(); /* */ $s = 5; case 5: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _r$10 = _r$9.Len(); /* */ $s = 6; case 6: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _arg$3 = _r$10; - _arg$4 = inst[0].TypeArgs().Len(); - _r$11 = check[0].validateTArgLen(_arg$2, _arg$3, _arg$4); /* */ $s = 7; case 7: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - /* */ if (_r$11) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (_r$11) { */ case 2: - _r$12 = ix[0].IndexListExpr.Pos(); /* */ $s = 8; case 8: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _arg$5 = _r$12; - _r$13 = inst[0].TypeParams(); /* */ $s = 9; case 9: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - _r$14 = _r$13.list(); /* */ $s = 10; case 10: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - _arg$6 = _r$14; - _arg$7 = inst[0].TypeArgs().list(); - _arg$8 = check[0].context(); - _r$15 = check[0].verify(_arg$5, _arg$6, _arg$7, _arg$8); /* */ $s = 11; case 11: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - _tuple$1 = _r$15; - i = _tuple$1[0]; - err = _tuple$1[1]; - /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 12: - _r$16 = ix[0].IndexListExpr.Pos(); /* */ $s = 15; case 15: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - pos = _r$16; - /* */ if (i < ix[0].IndexListExpr.Indices.$length) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (i < ix[0].IndexListExpr.Indices.$length) { */ case 16: - _r$17 = (x = ix[0].IndexListExpr.Indices, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])).Pos(); /* */ $s = 18; case 18: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - pos = _r$17; - /* } */ case 17: - _arg$9 = new atPos(((pos >> 0))); - _r$18 = err.Error(); /* */ $s = 19; case 19: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - _arg$10 = _r$18; - $r = check[0].softErrorf(_arg$9, 139, _arg$10, sliceType$6.nil); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 14; continue; - /* } else { */ case 13: - _arg$11 = check[0].pkg; - _r$19 = ix[0].IndexListExpr.Pos(); /* */ $s = 21; case 21: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - _arg$12 = _r$19; - _r$20 = inst[0].TypeParams(); /* */ $s = 22; case 22: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - _r$21 = _r$20.list(); /* */ $s = 23; case 23: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } - _arg$13 = _r$21; - _arg$14 = inst[0].TypeArgs().list(); - _arg$15 = ix[0].IndexListExpr.Indices; - $r = check[0].mono.recordInstance(_arg$11, _arg$12, _arg$13, _arg$14, _arg$15); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 14: - /* } */ case 3: - $r = check[0].validType(inst[0]); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·instantiatedType·func2, $c: true, $r, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$20, _r$21, _r$8, _r$9, _tuple$1, err, i, pos, x, $s};return $f; - }; })(cause, check, inst, ix, res)).describef(ix[0], "resolve instance %s", new sliceType$6([inst[0]])); - res[0] = inst[0]; - $24r$2 = res[0]; - $s = 22; case 22: return $24r$2; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return res[0]; } if($curGoroutine.asleep) { var $f = {$blk: instantiatedType, $c: true, $r, $24r, $24r$1, $24r$2, _arg, _arg$1, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, cause, check, def$2, gtyp, inst, ix, orig, res, targs, $s, $deferred};return $f; } } + $s = -1; return; + /* */ } return; } var $f = {$blk: setPos, $c: true, $r, _r, p, pos, $s};return $f; }; - $ptrType(Checker).prototype.arrayLength = function arrayLength(e) { - var {_r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, _tuple$2, _v, check, e, n, name, obj, ok, ok$1, val, x, $s, $r, $c} = $restore(this, {e}); + $ptrType(printer).prototype.print = function print(args) { + var {_1, _2, _i, _r, _r$1, _ref, _ref$1, _tuple, arg, args, ch, data, droppedFF, i, impliedSemi, isLit, n, next, p, s, wroteNewline, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, $s, $r, $c} = $restore(this, {args}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = [x]; - check = this; - _tuple = $assertType(e, ptrType$30, true); - name = _tuple[0]; - /* */ if (!(name === ptrType$30.nil)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(name === ptrType$30.nil)) { */ case 1: - _r$1 = check.environment.lookup(name.Name); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - obj = _r$1; - /* */ if ($interfaceIsEqual(obj, $ifaceNil)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if ($interfaceIsEqual(obj, $ifaceNil)) { */ case 4: - $r = check.errorf(name, 26, "undefined array length %s or missing type constraint", new sliceType$6([new $String(name.Name)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return new $Int64(-1, 4294967295); - /* } */ case 5: - _tuple$1 = $assertType(obj, ptrType$32, true); - ok = _tuple$1[1]; - /* */ if (!ok) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (!ok) { */ case 7: - $r = check.errorf(name, 26, "invalid array length %s", new sliceType$6([new $String(name.Name)])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return new $Int64(-1, 4294967295); - /* } */ case 8: - /* } */ case 2: - x[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = check.expr(x[0], e); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!((x[0].mode === 4))) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (!((x[0].mode === 4))) { */ case 11: - /* */ if (!((x[0].mode === 0))) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (!((x[0].mode === 0))) { */ case 13: - $r = check.errorf(x[0], 26, "array length %s must be constant", new sliceType$6([x[0]])); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 14: - $s = -1; return new $Int64(-1, 4294967295); - /* } */ case 12: - if (isUntyped(x[0].typ)) { _v = true; $s = 18; continue s; } - _r$2 = isInteger(x[0].typ); /* */ $s = 19; case 19: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _v = _r$2; case 18: - /* */ if (_v) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (_v) { */ case 16: - _r$3 = constant.ToInt(x[0].val); /* */ $s = 20; case 20: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - val = _r$3; - _r$4 = val.Kind(); /* */ $s = 23; case 23: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if (_r$4 === 3) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if (_r$4 === 3) { */ case 21: - _r$5 = representableConst(val, check, (2 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 2]), ptrType$50.nil); /* */ $s = 26; case 26: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* */ if (_r$5) { $s = 24; continue; } - /* */ $s = 25; continue; - /* if (_r$5) { */ case 24: - _r$6 = constant.Int64Val(val); /* */ $s = 27; case 27: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _tuple$2 = _r$6; - n = _tuple$2[0]; - ok$1 = _tuple$2[1]; - if (ok$1 && (n.$high > 0 || (n.$high === 0 && n.$low >= 0))) { - $s = -1; return n; + p = this; + _ref = args; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + data = ""; + isLit = false; + impliedSemi = false; + _1 = p.lastTok; + if (_1 === (0)) { + } else if ((_1 === (49)) || (_1 === (50))) { + p.prevOpen = p.lastTok; + } else { + p.prevOpen = 0; + } + _ref$1 = arg; + /* */ if ($assertType(_ref$1, pmode, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref$1, whiteSpace, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref$1, ptrType$4, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref$1, ptrType$5, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref$1, token.Token, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref$1, $String, true)[1]) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if ($assertType(_ref$1, pmode, true)[1]) { */ case 3: + x = _ref$1.$val; + p.mode = (p.mode ^ (x)) >> 0; + _i++; + /* continue; */ $s = 1; continue; + $s = 10; continue; + /* } else if ($assertType(_ref$1, whiteSpace, true)[1]) { */ case 4: + x$1 = _ref$1.$val; + if (x$1 === 0) { + _i++; + /* continue; */ $s = 1; continue; + } + i = p.wsbuf.$length; + /* */ if (i === p.wsbuf.$capacity) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (i === p.wsbuf.$capacity) { */ case 11: + $r = p.writeWhitespace(i); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = 0; + /* } */ case 12: + p.wsbuf = $subslice(p.wsbuf, 0, (i + 1 >> 0)); + (x$7 = p.wsbuf, ((i < 0 || i >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + i] = x$1)); + if ((x$1 === 10) || (x$1 === 12)) { + p.impliedSemi = false; + } + p.lastTok = 0; + _i++; + /* continue; */ $s = 1; continue; + $s = 10; continue; + /* } else if ($assertType(_ref$1, ptrType$4, true)[1]) { */ case 5: + x$2 = _ref$1.$val; + data = x$2.Name; + impliedSemi = true; + p.lastTok = 4; + $s = 10; continue; + /* } else if ($assertType(_ref$1, ptrType$5, true)[1]) { */ case 6: + x$3 = _ref$1.$val; + data = x$3.Value; + isLit = true; + impliedSemi = true; + p.lastTok = x$3.Kind; + $s = 10; continue; + /* } else if ($assertType(_ref$1, token.Token, true)[1]) { */ case 7: + x$4 = _ref$1.$val; + s = new token.Token(x$4).String(); + /* */ if (mayCombine(p.lastTok, s.charCodeAt(0))) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (mayCombine(p.lastTok, s.charCodeAt(0))) { */ case 14: + /* */ if (!((p.wsbuf.$length === 0))) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (!((p.wsbuf.$length === 0))) { */ case 16: + $r = p.internalError(new sliceType$1([new $String("whitespace buffer not empty")])); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 17: + p.wsbuf = $subslice(p.wsbuf, 0, 1); + (x$8 = p.wsbuf, (0 >= x$8.$length ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + 0] = 32)); + /* } */ case 15: + data = s; + _2 = x$4; + if ((_2 === (61)) || (_2 === (65)) || (_2 === (69)) || (_2 === (80)) || (_2 === (37)) || (_2 === (38)) || (_2 === (54)) || (_2 === (55)) || (_2 === (56))) { + impliedSemi = true; + } + p.lastTok = x$4; + $s = 10; continue; + /* } else if ($assertType(_ref$1, $String, true)[1]) { */ case 8: + x$5 = _ref$1.$val; + data = x$5; + isLit = true; + impliedSemi = true; + p.lastTok = 9; + $s = 10; continue; + /* } else { */ case 9: + x$6 = _ref$1; + _r = fmt.Fprintf(os.Stderr, "print: unsupported argument %v (%T)\n", new sliceType$1([arg, arg])); /* */ $s = 19; case 19: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + $panic(new $String("go/printer type")); + /* } */ case 10: + next = $clone(p.pos, token.Position); + _r$1 = p.flush($clone(next, token.Position), p.lastTok); /* */ $s = 20; case 20: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + wroteNewline = _tuple[0]; + droppedFF = _tuple[1]; + if (!p.impliedSemi) { + n = nlimit(next.Line - p.pos.Line >> 0); + if (wroteNewline && (n === 2)) { + n = 1; + } + if (n > 0) { + ch = 10; + if (droppedFF) { + ch = 12; } - $r = check.errorf(x[0], 26, "invalid array length %s", new sliceType$6([x[0]])); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return new $Int64(-1, 4294967295); - /* } */ case 25: - /* } */ case 22: - /* } */ case 17: - $r = check.errorf(x[0], 26, "array length %s must be integer", new sliceType$6([x[0]])); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return new $Int64(-1, 4294967295); - /* */ } return; } var $f = {$blk: arrayLength, $c: true, $r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, _tuple$2, _v, check, e, n, name, obj, ok, ok$1, val, x, $s};return $f; - }; - $ptrType(Checker).prototype.typeList = function typeList(list) { - var {_i, _r$1, _ref, check, i, list, res, t, x, $s, $r, $c} = $restore(this, {list}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - res = $makeSlice(sliceType$3, list.$length); - _ref = list; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$1 = check.varType(x); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - t = _r$1; - if ($interfaceIsEqual(t, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { - res = sliceType$3.nil; + p.writeByte(ch, n); + impliedSemi = false; + } } - if (!(res === sliceType$3.nil)) { - ((i < 0 || i >= res.$length) ? ($throwRuntimeError("index out of range"), undefined) : res.$array[res.$offset + i] = t); + if (!(p.linePtr === ptrType$1.nil)) { + p.linePtr.$set(p.out.Line); + p.linePtr = ptrType$1.nil; } + $r = p.writeString($clone(next, token.Position), data, isLit); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + p.impliedSemi = impliedSemi; _i++; $s = 1; continue; case 2: - $s = -1; return res; - /* */ } return; } var $f = {$blk: typeList, $c: true, $r, _i, _r$1, _ref, check, i, list, res, t, x, $s};return $f; - }; - $ptrType(term).prototype.String = function String$3() { - var {$24r, $24r$1, _r$1, _r$2, x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - /* */ if (x === ptrType$5.nil) { $s = 2; continue; } - /* */ if ($interfaceIsEqual(x.typ, $ifaceNil)) { $s = 3; continue; } - /* */ if (x.tilde) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (x === ptrType$5.nil) { */ case 2: - $s = -1; return "\xE2\x88\x85"; - /* } else if ($interfaceIsEqual(x.typ, $ifaceNil)) { */ case 3: - $s = -1; return "\xF0\x9D\x93\xA4"; - /* } else if (x.tilde) { */ case 4: - _r$1 = x.typ.String(); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = "~" + _r$1; - $s = 8; case 8: return $24r; - /* } else { */ case 5: - _r$2 = x.typ.String(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r$1 = _r$2; - $s = 10; case 10: return $24r$1; - /* } */ case 6: - case 1: - $s = -1; return ""; - /* */ } return; } var $f = {$blk: String$3, $c: true, $r, $24r, $24r$1, _r$1, _r$2, x, $s};return $f; + $s = -1; return; + /* */ } return; } var $f = {$blk: print, $c: true, $r, _1, _2, _i, _r, _r$1, _ref, _ref$1, _tuple, arg, args, ch, data, droppedFF, i, impliedSemi, isLit, n, next, p, s, wroteNewline, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, $s};return $f; }; - $ptrType(term).prototype.union = function union(y) { - var {_, _$1, _r$1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, x, y, $s, $r, $c} = $restore(this, {y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ = ptrType$5.nil; - _$1 = ptrType$5.nil; - x = this; - if (x === ptrType$5.nil && y === ptrType$5.nil) { - _tmp = ptrType$5.nil; - _tmp$1 = ptrType$5.nil; - _ = _tmp; - _$1 = _tmp$1; - $s = -1; return [_, _$1]; - } else if (x === ptrType$5.nil) { - _tmp$2 = y; - _tmp$3 = ptrType$5.nil; - _ = _tmp$2; - _$1 = _tmp$3; - $s = -1; return [_, _$1]; - } else if (y === ptrType$5.nil) { - _tmp$4 = x; - _tmp$5 = ptrType$5.nil; - _ = _tmp$4; - _$1 = _tmp$5; - $s = -1; return [_, _$1]; - } else if ($interfaceIsEqual(x.typ, $ifaceNil)) { - _tmp$6 = x; - _tmp$7 = ptrType$5.nil; - _ = _tmp$6; - _$1 = _tmp$7; - $s = -1; return [_, _$1]; - } else if ($interfaceIsEqual(y.typ, $ifaceNil)) { - _tmp$8 = y; - _tmp$9 = ptrType$5.nil; - _ = _tmp$8; - _$1 = _tmp$9; - $s = -1; return [_, _$1]; - } - _r$1 = x.disjoint(y); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (_r$1) { */ case 1: - _tmp$10 = x; - _tmp$11 = y; - _ = _tmp$10; - _$1 = _tmp$11; - $s = -1; return [_, _$1]; - /* } */ case 2: - if (x.tilde || !y.tilde) { - _tmp$12 = x; - _tmp$13 = ptrType$5.nil; - _ = _tmp$12; - _$1 = _tmp$13; - $s = -1; return [_, _$1]; - } - _tmp$14 = y; - _tmp$15 = ptrType$5.nil; - _ = _tmp$14; - _$1 = _tmp$15; - $s = -1; return [_, _$1]; - /* */ } return; } var $f = {$blk: union, $c: true, $r, _, _$1, _r$1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, x, y, $s};return $f; - }; - $ptrType(term).prototype.intersect = function intersect(y) { - var {_r$1, x, y, $s, $r, $c} = $restore(this, {y}); + $ptrType(printer).prototype.flush = function flush(next, tok) { + var {_r, _tuple, droppedFF, next, p, tok, wroteNewline, $s, $r, $c} = $restore(this, {next, tok}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - if (x === ptrType$5.nil || y === ptrType$5.nil) { - $s = -1; return ptrType$5.nil; - } else if ($interfaceIsEqual(x.typ, $ifaceNil)) { - $s = -1; return y; - } else if ($interfaceIsEqual(y.typ, $ifaceNil)) { - $s = -1; return x; - } - _r$1 = x.disjoint(y); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 1; continue; } + wroteNewline = false; + droppedFF = false; + p = this; + /* */ if (p.commentBefore($clone(next, token.Position))) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (_r$1) { */ case 1: - $s = -1; return ptrType$5.nil; - /* } */ case 2: - if (!x.tilde || y.tilde) { - $s = -1; return x; - } - $s = -1; return y; - /* */ } return; } var $f = {$blk: intersect, $c: true, $r, _r$1, x, y, $s};return $f; + /* if (p.commentBefore($clone(next, token.Position))) { */ case 1: + _r = p.intersperseComments($clone(next, token.Position), tok); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + wroteNewline = _tuple[0]; + droppedFF = _tuple[1]; + $s = 3; continue; + /* } else { */ case 2: + $r = p.writeWhitespace(p.wsbuf.$length); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 3: + $s = -1; return [wroteNewline, droppedFF]; + /* */ } return; } var $f = {$blk: flush, $c: true, $r, _r, _tuple, droppedFF, next, p, tok, wroteNewline, $s};return $f; }; - $ptrType(term).prototype.includes = function includes(t) { - var {$24r, _r$1, _r$2, t, u, x, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - if (x === ptrType$5.nil) { - $s = -1; return false; - } else if ($interfaceIsEqual(x.typ, $ifaceNil)) { - $s = -1; return true; + getDoc = function getDoc$1(n) { + var _ref, n, n$1, n$2, n$3, n$4, n$5, n$6, n$7; + _ref = n; + if ($assertType(_ref, ptrType$6, true)[1]) { + n$1 = _ref.$val; + return n$1.Doc; + } else if ($assertType(_ref, ptrType$7, true)[1]) { + n$2 = _ref.$val; + return n$2.Doc; + } else if ($assertType(_ref, ptrType$8, true)[1]) { + n$3 = _ref.$val; + return n$3.Doc; + } else if ($assertType(_ref, ptrType$9, true)[1]) { + n$4 = _ref.$val; + return n$4.Doc; + } else if ($assertType(_ref, ptrType$10, true)[1]) { + n$5 = _ref.$val; + return n$5.Doc; + } else if ($assertType(_ref, ptrType$11, true)[1]) { + n$6 = _ref.$val; + return n$6.Doc; + } else if ($assertType(_ref, ptrType$12, true)[1]) { + n$7 = _ref.$val; + return n$7.Doc; } - u = t; - /* */ if (x.tilde) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (x.tilde) { */ case 1: - _r$1 = under(u); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - u = _r$1; - /* } */ case 2: - _r$2 = Identical(x.typ, u); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 5; case 5: return $24r; - /* */ } return; } var $f = {$blk: includes, $c: true, $r, $24r, _r$1, _r$2, t, u, x, $s};return $f; + return ptrType$2.nil; }; - $ptrType(term).prototype.subsetOf = function subsetOf(y) { - var {_r$1, x, y, $s, $r, $c} = $restore(this, {y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - if (x === ptrType$5.nil) { - $s = -1; return true; - } else if (y === ptrType$5.nil) { - $s = -1; return false; - } else if ($interfaceIsEqual(y.typ, $ifaceNil)) { - $s = -1; return true; - } else if ($interfaceIsEqual(x.typ, $ifaceNil)) { - $s = -1; return false; + getLastComment = function getLastComment$1(n) { + var _ref, n, n$1, n$2, n$3, n$4, n$5, n$6, x, x$1, x$2, x$3; + _ref = n; + if ($assertType(_ref, ptrType$6, true)[1]) { + n$1 = _ref.$val; + return n$1.Comment; + } else if ($assertType(_ref, ptrType$7, true)[1]) { + n$2 = _ref.$val; + return n$2.Comment; + } else if ($assertType(_ref, ptrType$8, true)[1]) { + n$3 = _ref.$val; + return n$3.Comment; + } else if ($assertType(_ref, ptrType$9, true)[1]) { + n$4 = _ref.$val; + return n$4.Comment; + } else if ($assertType(_ref, ptrType$10, true)[1]) { + n$5 = _ref.$val; + if (n$5.Specs.$length > 0) { + return getLastComment((x = n$5.Specs, x$1 = n$5.Specs.$length - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1]))); + } + } else if ($assertType(_ref, ptrType$12, true)[1]) { + n$6 = _ref.$val; + if (n$6.Comments.$length > 0) { + return (x$2 = n$6.Comments, x$3 = n$6.Comments.$length - 1 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])); + } } - _r$1 = x.disjoint(y); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (_r$1) { */ case 1: - $s = -1; return false; - /* } */ case 2: - $s = -1; return !x.tilde || y.tilde; - /* */ } return; } var $f = {$blk: subsetOf, $c: true, $r, _r$1, x, y, $s};return $f; + return ptrType$2.nil; }; - $ptrType(term).prototype.disjoint = function disjoint(y) { - var {$24r, _r$1, _r$2, _r$3, ux, uy, x, y, $s, $r, $c} = $restore(this, {y}); + $ptrType(printer).prototype.printNode = function printNode(node) { + var {$24r, _i, _r, _r$1, _r$2, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, beg, cnode, com, comments, doc, e, end, i, j, n, n$1, n$2, n$3, n$4, n$5, n$6, n$7, n$8, n$9, node, ok, ok$1, ok$2, ok$3, ok$4, p, s, $s, $r, $c} = $restore(this, {node}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - if (false && ($interfaceIsEqual(x.typ, $ifaceNil) || $interfaceIsEqual(y.typ, $ifaceNil))) { - $panic(new $String("invalid argument(s)")); + p = this; + comments = sliceType$4.nil; + _tuple = $assertType(node, ptrType$13, true); + cnode = _tuple[0]; + ok = _tuple[1]; + if (ok) { + node = cnode.Node; + comments = cnode.Comments; } - ux = x.typ; - /* */ if (y.tilde) { $s = 1; continue; } + /* */ if (!(comments === sliceType$4.nil)) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (y.tilde) { */ case 1: - _r$1 = under(ux); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - ux = _r$1; - /* } */ case 2: - uy = y.typ; - /* */ if (x.tilde) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (x.tilde) { */ case 4: - _r$2 = under(uy); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - uy = _r$2; - /* } */ case 5: - _r$3 = Identical(ux, uy); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r = !_r$3; - $s = 8; case 8: return $24r; - /* */ } return; } var $f = {$blk: disjoint, $c: true, $r, $24r, _r$1, _r$2, _r$3, ux, uy, x, y, $s};return $f; - }; - RelativeTo = function RelativeTo$1(pkg) { - var pkg; - if (pkg === ptrType$1.nil) { - return $throwNilPointerError; - } - return (function RelativeTo·func1(other) { - var other; - if (pkg === other) { - return ""; - } - return other.Path(); - }); - }; - $pkg.RelativeTo = RelativeTo; - TypeString = function TypeString$1(typ$1, qf) { - var {buf, qf, typ$1, $s, $r, $c} = $restore(this, {typ$1, qf}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - buf = [buf]; - buf[0] = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); - $r = WriteType(buf[0], typ$1, qf); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return buf[0].String(); - /* */ } return; } var $f = {$blk: TypeString$1, $c: true, $r, buf, qf, typ$1, $s};return $f; - }; - $pkg.TypeString = TypeString; - WriteType = function WriteType$1(buf, typ$1, qf) { - var {buf, qf, typ$1, $s, $r, $c} = $restore(this, {buf, typ$1, qf}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = newTypeWriter(buf, qf).typ(typ$1); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: WriteType$1, $c: true, $r, buf, qf, typ$1, $s};return $f; - }; - $pkg.WriteType = WriteType; - WriteSignature = function WriteSignature$1(buf, sig, qf) { - var {buf, qf, sig, $s, $r, $c} = $restore(this, {buf, sig, qf}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = newTypeWriter(buf, qf).signature(sig); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: WriteSignature$1, $c: true, $r, buf, qf, sig, $s};return $f; - }; - $pkg.WriteSignature = WriteSignature; - newTypeWriter = function newTypeWriter$1(buf, qf) { - var buf, qf; - return new typeWriter.ptr(buf, new $global.Map(), qf, ptrType$51.nil, ptrType$48.nil, true, false, false); - }; - newTypeHasher = function newTypeHasher$1(buf, ctxt) { - var {buf, ctxt, $s, $r, $c} = $restore(this, {buf, ctxt}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = assert(!(ctxt === ptrType$51.nil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return new typeWriter.ptr(buf, new $global.Map(), $throwNilPointerError, ctxt, ptrType$48.nil, false, false, false); - /* */ } return; } var $f = {$blk: newTypeHasher$1, $c: true, $r, buf, ctxt, $s};return $f; - }; - $ptrType(typeWriter).prototype.byte$ = function byte$1(b) { - var b, w; - w = this; - if (!(w.ctxt === ptrType$51.nil)) { - if (b === 32) { - b = 35; + /* if (!(comments === sliceType$4.nil)) { */ case 1: + _tuple$1 = $assertType(node, ast.Node, true); + n = _tuple$1[0]; + ok$1 = _tuple$1[1]; + /* */ if (!ok$1) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!ok$1) { */ case 4: + /* goto unsupported */ $s = 6; continue; + /* } */ case 5: + _r = n.Pos(); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + beg = _r; + _r$1 = n.End(); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + end = _r$1; + doc = getDoc(n); + if (!(doc === ptrType$2.nil)) { + beg = doc.Pos(); } - w.buf.WriteByte(b); - return; - } - w.buf.WriteByte(b); - if ((b === 44) || (b === 59)) { - w.buf.WriteByte(32); - } - }; - $ptrType(typeWriter).prototype.string = function string(s) { - var s, w; - w = this; - w.buf.WriteString(s); - }; - $ptrType(typeWriter).prototype.error = function error(msg) { - var msg, w; - w = this; - if (!(w.ctxt === ptrType$51.nil)) { - $panic(new $String(msg)); - } - w.buf.WriteString("<" + msg + ">"); - }; - $ptrType(typeWriter).prototype.typ = function typ$1(typ$2) { - var {_1, _arg, _arg$1, _entry, _i, _i$1, _i$2, _i$3, _key, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tuple, _tuple$1, _v, c, f, first, i, i$1, i$2, m, obj, parens, pkgAnnotate, s, t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, tag, typ$2, typ$3, w, x, $s, $deferred, $r, $c} = $restore(this, {typ$2}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - w = this; - /* */ if ((_entry = $mapIndex(w.seen,Type.keyFor(typ$2)), _entry !== undefined ? _entry.v : false)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if ((_entry = $mapIndex(w.seen,Type.keyFor(typ$2)), _entry !== undefined ? _entry.v : false)) { */ case 1: - _r$1 = goTypeName(typ$2); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $r = w.error("cycle to " + _r$1); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 2: - _key = typ$2; (w.seen || $throwRuntimeError("assignment to entry in nil map")).set(Type.keyFor(_key), { k: _key, v: true }); - $deferred.push([function(_arg, _arg$1) { $mapDelete(_arg, Type.keyFor(_arg$1)); }, [w.seen, typ$2]]); - _ref = typ$2; - /* */ if (_ref === $ifaceNil) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 9; continue; } - /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 10; continue; } - /* */ if ($assertType(_ref, ptrType$15, true)[1]) { $s = 11; continue; } - /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 12; continue; } - /* */ if ($assertType(_ref, ptrType$12, true)[1]) { $s = 13; continue; } - /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 14; continue; } - /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 15; continue; } - /* */ if ($assertType(_ref, ptrType$29, true)[1]) { $s = 16; continue; } - /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 17; continue; } - /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 18; continue; } - /* */ $s = 19; continue; - /* switch (0) { default: if (_ref === $ifaceNil) { */ case 5: - t = _ref; - w.error("nil"); - $s = 20; continue; - /* } else if ($assertType(_ref, ptrType$4, true)[1]) { */ case 6: - t$1 = _ref.$val; - /* */ if (token.IsExported(t$1.name)) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if (token.IsExported(t$1.name)) { */ case 21: - _r$2 = $pkg.Unsafe.scope.Lookup(t$1.name); /* */ $s = 23; case 23: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple = $assertType(_r$2, ptrType$17, true); - obj = _tuple[0]; - /* */ if (!(obj === ptrType$17.nil)) { $s = 24; continue; } - /* */ $s = 25; continue; - /* if (!(obj === ptrType$17.nil)) { */ case 24: - $r = w.typeName(obj); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* break; */ $s = 20; continue; - /* } */ case 25: - /* } */ case 22: - w.string(t$1.name); - $s = 20; continue; - /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 7: - t$2 = _ref.$val; - w.byte$(91); - w.string(strconv.FormatInt(t$2.len, 10)); - w.byte$(93); - $r = w.typ(t$2.elem); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 20; continue; - /* } else if ($assertType(_ref, ptrType$25, true)[1]) { */ case 8: - t$3 = _ref.$val; - w.string("[]"); - $r = w.typ(t$3.elem); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 20; continue; - /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 9: - t$4 = _ref.$val; - w.string("struct{"); - _ref$1 = t$4.fields; - _i = 0; - /* while (true) { */ case 29: - /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 30; continue; } - i = _i; - f = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); - if (i > 0) { - w.byte$(59); - } - pkgAnnotate = false; - if (w.qf === $throwNilPointerError && w.pkgInfo && !token.IsExported(f.object.name)) { - pkgAnnotate = true; - w.pkgInfo = false; - } - if (!f.embedded) { - w.string(f.object.name); - w.byte$(32); - } - $r = w.typ(f.object.typ); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (pkgAnnotate) { - w.string(" /* package "); - w.string(f.object.pkg.Path()); - w.string(" */ "); - } - tag = t$4.Tag(i); - if (!(tag === "")) { - w.byte$(32); - w.string(strconv.Quote(tag)); + com = getLastComment(n); + if (!(com === ptrType$2.nil)) { + e = com.End(); + if (e > end) { + end = e; } - _i++; - $s = 29; continue; - case 30: - w.byte$(125); - $s = 20; continue; - /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 10: - t$5 = _ref.$val; - w.byte$(42); - $r = w.typ(t$5.base); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 20; continue; - /* } else if ($assertType(_ref, ptrType$15, true)[1]) { */ case 11: - t$6 = _ref.$val; - $r = w.tuple(t$6, false); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 20; continue; - /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 12: - t$7 = _ref.$val; - w.string("func"); - $r = w.signature(t$7); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 20; continue; - /* } else if ($assertType(_ref, ptrType$12, true)[1]) { */ case 13: - t$8 = _ref.$val; - if (t$8.Len() === 0) { - w.error("empty union"); - /* break; */ $s = 20; continue; } - _ref$2 = t$8.terms; - _i$1 = 0; - /* while (true) { */ case 35: - /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 36; continue; } - i$1 = _i$1; - t$15 = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); - if (i$1 > 0) { - w.string(" | "); - } - if (t$15.tilde) { - w.byte$(126); - } - $r = w.typ(t$15.typ); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$1++; - $s = 35; continue; - case 36: - $s = 20; continue; - /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 14: - t$9 = _ref.$val; - /* */ if (w.ctxt === ptrType$51.nil) { $s = 38; continue; } - /* */ $s = 39; continue; - /* if (w.ctxt === ptrType$51.nil) { */ case 38: - _r$3 = universeAny.Type(); /* */ $s = 42; case 42: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if ($interfaceIsEqual(t$9, _r$3)) { $s = 40; continue; } - /* */ $s = 41; continue; - /* if ($interfaceIsEqual(t$9, _r$3)) { */ case 40: - w.string("any"); - /* break; */ $s = 20; continue; - /* } */ case 41: - _r$4 = universeComparable.Type(); /* */ $s = 45; case 45: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if ($interfaceIsEqual(t$9, $assertType(_r$4, ptrType$9).underlying)) { $s = 43; continue; } - /* */ $s = 44; continue; - /* if ($interfaceIsEqual(t$9, $assertType(_r$4, ptrType$9).underlying)) { */ case 43: - w.string("interface{comparable}"); - /* break; */ $s = 20; continue; - /* } */ case 44: - /* } */ case 39: - /* */ if (t$9.implicit) { $s = 46; continue; } - /* */ $s = 47; continue; - /* if (t$9.implicit) { */ case 46: - /* */ if ((t$9.methods.$length === 0) && (t$9.embeddeds.$length === 1)) { $s = 48; continue; } - /* */ $s = 49; continue; - /* if ((t$9.methods.$length === 0) && (t$9.embeddeds.$length === 1)) { */ case 48: - $r = w.typ((x = t$9.embeddeds, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* break; */ $s = 20; continue; - /* } */ case 49: - w.string("/* implicit */ "); - /* } */ case 47: - w.string("interface{"); - first = true; - /* */ if (!(w.ctxt === ptrType$51.nil)) { $s = 51; continue; } - /* */ $s = 52; continue; - /* if (!(w.ctxt === ptrType$51.nil)) { */ case 51: - _r$5 = t$9.typeSet(); /* */ $s = 54; case 54: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - $r = w.typeSet(_r$5); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 53; continue; - /* } else { */ case 52: - _ref$3 = t$9.methods; - _i$2 = 0; - /* while (true) { */ case 56: - /* if (!(_i$2 < _ref$3.$length)) { break; } */ if(!(_i$2 < _ref$3.$length)) { $s = 57; continue; } - m = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]); - if (!first) { - w.byte$(59); - } - first = false; - w.string(m.object.name); - $r = w.signature($assertType(m.object.typ, ptrType$27)); /* */ $s = 58; case 58: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$2++; - $s = 56; continue; - case 57: - _ref$4 = t$9.embeddeds; - _i$3 = 0; - /* while (true) { */ case 59: - /* if (!(_i$3 < _ref$4.$length)) { break; } */ if(!(_i$3 < _ref$4.$length)) { $s = 60; continue; } - typ$3 = ((_i$3 < 0 || _i$3 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$3]); - if (!first) { - w.byte$(59); - } - first = false; - $r = w.typ(typ$3); /* */ $s = 61; case 61: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$3++; - $s = 59; continue; - case 60: - /* } */ case 53: - w.byte$(125); - $s = 20; continue; - /* } else if ($assertType(_ref, ptrType$28, true)[1]) { */ case 15: - t$10 = _ref.$val; - w.string("map["); - $r = w.typ(t$10.key); /* */ $s = 62; case 62: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - w.byte$(93); - $r = w.typ(t$10.elem); /* */ $s = 63; case 63: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 20; continue; - /* } else if ($assertType(_ref, ptrType$29, true)[1]) { */ case 16: - t$11 = _ref.$val; - s = ""; - parens = false; - _1 = t$11.dir; - if (_1 === (0)) { - s = "chan "; - _tuple$1 = $assertType(t$11.elem, ptrType$29, true); - c = _tuple$1[0]; - if (!(c === ptrType$29.nil) && (c.dir === 2)) { - parens = true; - } - } else if (_1 === (1)) { - s = "chan<- "; - } else if (_1 === (2)) { - s = "<-chan "; - } else { - w.error("unknown channel direction"); + i = 0; + while (true) { + if (!(i < comments.$length && ((i < 0 || i >= comments.$length) ? ($throwRuntimeError("index out of range"), undefined) : comments.$array[comments.$offset + i]).End() < beg)) { break; } + i = i + (1) >> 0; } - w.string(s); - if (parens) { - w.byte$(40); + j = i; + while (true) { + if (!(j < comments.$length && ((j < 0 || j >= comments.$length) ? ($throwRuntimeError("index out of range"), undefined) : comments.$array[comments.$offset + j]).Pos() < end)) { break; } + j = j + (1) >> 0; } - $r = w.typ(t$11.elem); /* */ $s = 64; case 64: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (parens) { - w.byte$(41); + if (i < j) { + p.comments = $subslice(comments, i, j); } - $s = 20; continue; - /* } else if ($assertType(_ref, ptrType$9, true)[1]) { */ case 17: - t$12 = _ref.$val; - /* */ if (!(w.ctxt === ptrType$51.nil)) { $s = 65; continue; } - /* */ $s = 66; continue; - /* if (!(w.ctxt === ptrType$51.nil)) { */ case 65: - _r$6 = w.ctxt.getID(t$12); /* */ $s = 67; case 67: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _r$7 = strconv.Itoa(_r$6); /* */ $s = 68; case 68: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - $r = w.string(_r$7); /* */ $s = 69; case 69: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 66: - $r = w.typeName(t$12.obj); /* */ $s = 70; case 70: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!(t$12.inst === ptrType$52.nil)) { $s = 71; continue; } - if (!(w.ctxt === ptrType$51.nil)) { _v = false; $s = 74; continue s; } - _r$8 = t$12.TypeParams(); /* */ $s = 75; case 75: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _r$9 = _r$8.Len(); /* */ $s = 76; case 76: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _v = !((_r$9 === 0)); case 74: - /* */ if (_v) { $s = 72; continue; } - /* */ $s = 73; continue; - /* if (!(t$12.inst === ptrType$52.nil)) { */ case 71: - $r = w.typeList(t$12.inst.targs.list()); /* */ $s = 77; case 77: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 73; continue; - /* } else if (_v) { */ case 72: - _r$10 = t$12.TypeParams(); /* */ $s = 78; case 78: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _r$11 = _r$10.list(); /* */ $s = 79; case 79: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - $r = w.tParamList(_r$11); /* */ $s = 80; case 80: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 73: - $s = 20; continue; - /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 18: - t$13 = _ref.$val; - if (t$13.obj === ptrType$17.nil) { - w.error("unnamed type parameter"); - /* break; */ $s = 20; continue; - } - i$2 = tparamIndex(w.tparams.list(), t$13); - /* */ if (i$2 >= 0) { $s = 81; continue; } - /* */ $s = 82; continue; - /* if (i$2 >= 0) { */ case 81: - _r$12 = fmt.Sprintf("$%d", new sliceType$6([new $Int(i$2)])); /* */ $s = 84; case 84: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - $r = w.string(_r$12); /* */ $s = 85; case 85: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 83; continue; - /* } else { */ case 82: - w.string(t$13.obj.object.name); - if (w.tpSubscripts || !(w.ctxt === ptrType$51.nil)) { - w.string(subscript(t$13.id)); - } - /* } */ case 83: - $s = 20; continue; - /* } else { */ case 19: - t$14 = _ref; - _r$13 = t$14.String(); /* */ $s = 86; case 86: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - $r = w.string(_r$13); /* */ $s = 87; case 87: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } } */ case 20: - $s = -1; return; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: typ$1, $c: true, $r, _1, _arg, _arg$1, _entry, _i, _i$1, _i$2, _i$3, _key, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tuple, _tuple$1, _v, c, f, first, i, i$1, i$2, m, obj, parens, pkgAnnotate, s, t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, tag, typ$2, typ$3, w, x, $s, $deferred};return $f; } } - }; - $ptrType(typeWriter).prototype.typeSet = function typeSet(s) { - var {_i, _i$1, _r$1, _r$2, _ref, _ref$1, buf, first, m, s, term$1, termHashes, w, $s, $r, $c} = $restore(this, {s}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - w = this; - $r = assert(!(w.ctxt === ptrType$51.nil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - first = true; - _ref = s.methods; - _i = 0; - /* while (true) { */ case 2: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } - m = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (!first) { - w.byte$(59); + $s = 3; continue; + /* } else { */ case 2: + _tuple$2 = $assertType(node, ptrType$12, true); + n$1 = _tuple$2[0]; + ok$2 = _tuple$2[1]; + if (ok$2) { + p.comments = n$1.Comments; } - first = false; - w.string(m.object.name); - $r = w.signature($assertType(m.object.typ, ptrType$27)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 2; continue; - case 3: - /* */ if (s.terms.isAll()) { $s = 6; continue; } - /* */ if (s.terms.isEmpty()) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (s.terms.isAll()) { */ case 6: - $s = 9; continue; - /* } else if (s.terms.isEmpty()) { */ case 7: - _r$1 = s.terms.String(); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $r = w.string(_r$1); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 9; continue; - /* } else { */ case 8: - termHashes = sliceType$5.nil; - _ref$1 = s.terms; - _i$1 = 0; - /* while (true) { */ case 12: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 13; continue; } - buf = [buf]; - term$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - buf[0] = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); - if (term$1.tilde) { - buf[0].WriteByte(126); - } - _r$2 = newTypeHasher(buf[0], w.ctxt); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $r = _r$2.typ(term$1.typ); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - termHashes = $append(termHashes, buf[0].String()); - _i$1++; - $s = 12; continue; - case 13: - $r = sort.Strings(termHashes); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (!first) { - w.byte$(59); + /* } */ case 3: + p.useNodeComments = p.comments === sliceType$4.nil; + $r = p.nextComment(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new pmode(0)])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _ref = node; + /* */ if ($assertType(_ref, ast.Expr, true)[1]) { $s = 11; continue; } + /* */ if ($assertType(_ref, ast.Stmt, true)[1]) { $s = 12; continue; } + /* */ if ($assertType(_ref, ast.Decl, true)[1]) { $s = 13; continue; } + /* */ if ($assertType(_ref, ast.Spec, true)[1]) { $s = 14; continue; } + /* */ if ($assertType(_ref, sliceType$5, true)[1]) { $s = 15; continue; } + /* */ if ($assertType(_ref, sliceType$6, true)[1]) { $s = 16; continue; } + /* */ if ($assertType(_ref, ptrType$12, true)[1]) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if ($assertType(_ref, ast.Expr, true)[1]) { */ case 11: + n$2 = _ref; + $r = p.expr(n$2); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 19; continue; + /* } else if ($assertType(_ref, ast.Stmt, true)[1]) { */ case 12: + n$3 = _ref; + _tuple$3 = $assertType(n$3, ptrType$14, true); + ok$3 = _tuple$3[1]; + if (ok$3) { + p.indent = 1; + } + $r = p.stmt(n$3, false); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 19; continue; + /* } else if ($assertType(_ref, ast.Decl, true)[1]) { */ case 13: + n$4 = _ref; + $r = p.decl(n$4); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 19; continue; + /* } else if ($assertType(_ref, ast.Spec, true)[1]) { */ case 14: + n$5 = _ref; + $r = p.spec(n$5, 1, false); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 19; continue; + /* } else if ($assertType(_ref, sliceType$5, true)[1]) { */ case 15: + n$6 = _ref.$val; + _ref$1 = n$6; + _i = 0; + while (true) { + if (!(_i < _ref$1.$length)) { break; } + s = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + _tuple$4 = $assertType(s, ptrType$14, true); + ok$4 = _tuple$4[1]; + if (ok$4) { + p.indent = 1; } - w.string(strings.Join(termHashes, "|")); - /* } */ case 9: - case 5: - $s = -1; return; - /* */ } return; } var $f = {$blk: typeSet, $c: true, $r, _i, _i$1, _r$1, _r$2, _ref, _ref$1, buf, first, m, s, term$1, termHashes, w, $s};return $f; - }; - $ptrType(typeWriter).prototype.typeList = function typeList$1(list) { - var {_i, _ref, i, list, typ$2, w, $s, $r, $c} = $restore(this, {list}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - w = this; - w.byte$(91); - _ref = list; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - typ$2 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (i > 0) { - w.byte$(44); + _i++; } - $r = w.typ(typ$2); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 1; continue; - case 2: - w.byte$(93); - $s = -1; return; - /* */ } return; } var $f = {$blk: typeList$1, $c: true, $r, _i, _ref, i, list, typ$2, w, $s};return $f; + $r = p.stmtList(n$6, 0, false); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 19; continue; + /* } else if ($assertType(_ref, sliceType$6, true)[1]) { */ case 16: + n$7 = _ref.$val; + $r = p.declList(n$7); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 19; continue; + /* } else if ($assertType(_ref, ptrType$12, true)[1]) { */ case 17: + n$8 = _ref.$val; + $r = p.file(n$8); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 19; continue; + /* } else { */ case 18: + n$9 = _ref; + /* goto unsupported */ $s = 6; continue; + /* } */ case 19: + $s = -1; return p.sourcePosErr; + /* unsupported: */ case 6: + _r$2 = fmt.Errorf("go/printer: unsupported node type %T", new sliceType$1([node])); /* */ $s = 27; case 27: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $24r = _r$2; + $s = 28; case 28: return $24r; + /* */ } return; } var $f = {$blk: printNode, $c: true, $r, $24r, _i, _r, _r$1, _r$2, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, beg, cnode, com, comments, doc, e, end, i, j, n, n$1, n$2, n$3, n$4, n$5, n$6, n$7, n$8, n$9, node, ok, ok$1, ok$2, ok$3, ok$4, p, s, $s};return $f; + }; + $ptrType(trimmer).prototype.resetSpace = function resetSpace() { + var p; + p = this; + p.state = 0; + p.space = $subslice(p.space, 0, 0); }; - $ptrType(typeWriter).prototype.tParamList = function tParamList(list) { - var {_i, _ref, i, list, prev, tpar, w, $s, $r, $c} = $restore(this, {list}); + $ptrType(trimmer).prototype.Write = function Write(data) { + var {_1, _2, _3, _4, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, b, data, err, m, n, p, $s, $r, $c} = $restore(this, {data}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - w = this; - w.byte$(91); - prev = $ifaceNil; - _ref = list; + n = 0; + err = $ifaceNil; + p = this; + m = 0; + b = 0; + _ref = data; _i = 0; /* while (true) { */ case 1: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - tpar = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (tpar === ptrType$14.nil) { - w.error("nil type parameter"); - _i++; - /* continue; */ $s = 1; continue; + n = _i; + b = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (b === 11) { + b = 9; + } + _1 = p.state; + /* */ if (_1 === (0)) { $s = 4; continue; } + /* */ if (_1 === (1)) { $s = 5; continue; } + /* */ if (_1 === (2)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (_1 === (0)) { */ case 4: + _2 = b; + /* */ if ((_2 === (9)) || (_2 === (32))) { $s = 10; continue; } + /* */ if ((_2 === (10)) || (_2 === (12))) { $s = 11; continue; } + /* */ if (_2 === (255)) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if ((_2 === (9)) || (_2 === (32))) { */ case 10: + p.space = $append(p.space, b); + $s = 14; continue; + /* } else if ((_2 === (10)) || (_2 === (12))) { */ case 11: + p.resetSpace(); + _r = p.output.Write(aNewline); /* */ $s = 15; case 15: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + err = _tuple[1]; + $s = 14; continue; + /* } else if (_2 === (255)) { */ case 12: + _r$1 = p.output.Write(p.space); /* */ $s = 16; case 16: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + err = _tuple$1[1]; + p.state = 1; + m = n + 1 >> 0; + $s = 14; continue; + /* } else { */ case 13: + _r$2 = p.output.Write(p.space); /* */ $s = 17; case 17: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$2 = _r$2; + err = _tuple$2[1]; + p.state = 2; + m = n; + /* } */ case 14: + case 9: + $s = 8; continue; + /* } else if (_1 === (1)) { */ case 5: + /* */ if (b === 255) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (b === 255) { */ case 18: + _r$3 = p.output.Write($subslice(data, m, n)); /* */ $s = 20; case 20: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$3 = _r$3; + err = _tuple$3[1]; + p.resetSpace(); + /* } */ case 19: + $s = 8; continue; + /* } else if (_1 === (2)) { */ case 6: + _3 = b; + /* */ if ((_3 === (9)) || (_3 === (32))) { $s = 22; continue; } + /* */ if ((_3 === (10)) || (_3 === (12))) { $s = 23; continue; } + /* */ if (_3 === (255)) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if ((_3 === (9)) || (_3 === (32))) { */ case 22: + _r$4 = p.output.Write($subslice(data, m, n)); /* */ $s = 26; case 26: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$4 = _r$4; + err = _tuple$4[1]; + p.resetSpace(); + p.space = $append(p.space, b); + $s = 25; continue; + /* } else if ((_3 === (10)) || (_3 === (12))) { */ case 23: + _r$5 = p.output.Write($subslice(data, m, n)); /* */ $s = 27; case 27: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$5 = _r$5; + err = _tuple$5[1]; + p.resetSpace(); + /* */ if ($interfaceIsEqual(err, $ifaceNil)) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if ($interfaceIsEqual(err, $ifaceNil)) { */ case 28: + _r$6 = p.output.Write(aNewline); /* */ $s = 30; case 30: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _tuple$6 = _r$6; + err = _tuple$6[1]; + /* } */ case 29: + $s = 25; continue; + /* } else if (_3 === (255)) { */ case 24: + _r$7 = p.output.Write($subslice(data, m, n)); /* */ $s = 31; case 31: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _tuple$7 = _r$7; + err = _tuple$7[1]; + p.state = 1; + m = n + 1 >> 0; + /* } */ case 25: + case 21: + $s = 8; continue; + /* } else { */ case 7: + $panic(new $String("unreachable")); + /* } */ case 8: + case 3: + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [n, err]; } - /* */ if (i > 0) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (i > 0) { */ case 3: - /* */ if (!($interfaceIsEqual(tpar.bound, prev))) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (!($interfaceIsEqual(tpar.bound, prev))) { */ case 5: - w.byte$(32); - $r = w.typ(prev); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 6: - w.byte$(44); - /* } */ case 4: - prev = tpar.bound; - $r = w.typ(tpar); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _i++; $s = 1; continue; case 2: - /* */ if (!($interfaceIsEqual(prev, $ifaceNil))) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (!($interfaceIsEqual(prev, $ifaceNil))) { */ case 9: - w.byte$(32); - $r = w.typ(prev); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 10: - w.byte$(93); - $s = -1; return; - /* */ } return; } var $f = {$blk: tParamList, $c: true, $r, _i, _ref, i, list, prev, tpar, w, $s};return $f; + n = data.$length; + _4 = p.state; + /* */ if ((_4 === (1)) || (_4 === (2))) { $s = 33; continue; } + /* */ $s = 34; continue; + /* if ((_4 === (1)) || (_4 === (2))) { */ case 33: + _r$8 = p.output.Write($subslice(data, m, n)); /* */ $s = 35; case 35: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _tuple$8 = _r$8; + err = _tuple$8[1]; + p.resetSpace(); + /* } */ case 34: + case 32: + $s = -1; return [n, err]; + /* */ } return; } var $f = {$blk: Write, $c: true, $r, _1, _2, _3, _4, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, b, data, err, m, n, p, $s};return $f; }; - $ptrType(typeWriter).prototype.typeName = function typeName(obj) { - var {_r$1, obj, w, $s, $r, $c} = $restore(this, {obj}); + newPrinter = function newPrinter$1(cfg, fset, nodeSizes) { + var {_r, cfg, fset, nodeSizes, p, $s, $r, $c} = $restore(this, {cfg, fset, nodeSizes}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - w = this; - _r$1 = packagePrefix(obj.object.pkg, w.qf); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $r = w.string(_r$1); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - w.string(obj.object.name); - $s = -1; return; - /* */ } return; } var $f = {$blk: typeName, $c: true, $r, _r$1, obj, w, $s};return $f; + _r = printerPool.Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + p = $assertType(_r, ptrType$15); + printer.copy((p === ptrType$15.nil && $throwNilPointerError(), p), new printer.ptr($clone((cfg === ptrType$16.nil && $throwNilPointerError(), cfg), Config), fset, $subslice(p.output, 0, 0), 0, 0, 0, false, false, 0, 0, $subslice(p.wsbuf, 0, 0), sliceType$3.nil, sliceType$3.nil, $clone(new token.Position.ptr("", 0, 1, 1), token.Position), $clone(new token.Position.ptr("", 0, 1, 1), token.Position), new token.Position.ptr("", 0, 0, 0), ptrType$1.nil, $ifaceNil, sliceType$4.nil, false, new commentInfo.ptr(0, ptrType$2.nil, 0, false), nodeSizes, -1, 0)); + $s = -1; return p; + /* */ } return; } var $f = {$blk: newPrinter$1, $c: true, $r, _r, cfg, fset, nodeSizes, p, $s};return $f; }; - $ptrType(typeWriter).prototype.tuple = function tuple(tup, variadic) { - var {_i, _r$1, _ref, _tuple, _tuple$1, i, ok, s, t, tup, typ$2, v, variadic, w, $s, $r, $c} = $restore(this, {tup, variadic}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - w = this; - w.byte$(40); - /* */ if (!(tup === ptrType$15.nil)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(tup === ptrType$15.nil)) { */ case 1: - _ref = tup.vars; - _i = 0; - /* while (true) { */ case 3: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } - i = _i; - v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (i > 0) { - w.byte$(44); - } - if (w.ctxt === ptrType$51.nil && !(v.object.name === "") && w.paramNames) { - w.string(v.object.name); - w.byte$(32); - } - typ$2 = v.object.typ; - /* */ if (variadic && (i === (tup.vars.$length - 1 >> 0))) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (variadic && (i === (tup.vars.$length - 1 >> 0))) { */ case 5: - _tuple = $assertType(typ$2, ptrType$25, true); - s = _tuple[0]; - ok = _tuple[1]; - /* */ if (ok) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (ok) { */ case 7: - w.string("..."); - typ$2 = s.elem; - $s = 9; continue; - /* } else { */ case 8: - _r$1 = under(typ$2); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$1 = $assertType(_r$1, ptrType$4, true); - t = _tuple$1[0]; - if (t === ptrType$4.nil || !((t.kind === 17))) { - w.error("expected string type"); - _i++; - /* continue; */ $s = 3; continue; - } - $r = w.typ(typ$2); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - w.string("..."); - _i++; - /* continue; */ $s = 3; continue; - /* } */ case 9: - /* } */ case 6: - $r = w.typ(typ$2); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 3; continue; - case 4: - /* } */ case 2: - w.byte$(41); - $s = -1; return; - /* */ } return; } var $f = {$blk: tuple, $c: true, $r, _i, _r$1, _ref, _tuple, _tuple$1, i, ok, s, t, tup, typ$2, v, variadic, w, $s};return $f; + $ptrType(printer).prototype.free = function free() { + var p; + p = this; + if (p.output.$capacity > 65536) { + return; + } + printerPool.Put(p); }; - $ptrType(typeWriter).prototype.signature = function signature(sig) { - var {n, sig, w, x, x$1, $s, $deferred, $r, $c} = $restore(this, {sig}); + $ptrType(Config).prototype.fprint = function fprint(output, fset, node, nodeSizes) { + var {_r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, cfg, err, fset, minwidth, node, nodeSizes, output, p, padchar, tw, twmode, $s, $deferred, $r, $c} = $restore(this, {output, fset, node, nodeSizes}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - w = [w]; - w[0] = this; - /* */ if (!((sig.TypeParams().Len() === 0))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!((sig.TypeParams().Len() === 0))) { */ case 1: - /* */ if (!(w[0].ctxt === ptrType$51.nil)) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!(w[0].ctxt === ptrType$51.nil)) { */ case 3: - $r = assert(w[0].tparams === ptrType$48.nil); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - w[0].tparams = sig.TypeParams(); - $deferred.push([(function(w) { return function typeWriter·signature·func1() { - w[0].tparams = ptrType$48.nil; - }; })(w), []]); - /* } */ case 4: - $r = w[0].tParamList(sig.TypeParams().list()); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - $r = w[0].tuple(sig.params, sig.variadic); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - n = sig.results.Len(); - if (n === 0) { - $s = -1; return; + err = $ifaceNil; + cfg = this; + _r = newPrinter(cfg, fset, nodeSizes); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + p = _r; + $deferred.push([$methodVal(p, "free"), []]); + _r$1 = p.printNode(node); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + err = _r$1; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; } - w[0].byte$(32); - /* */ if ((n === 1) && (!(w[0].ctxt === ptrType$51.nil) || (x = sig.results.vars, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).object.name === "")) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if ((n === 1) && (!(w[0].ctxt === ptrType$51.nil) || (x = sig.results.vars, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).object.name === "")) { */ case 8: - $r = w[0].typ((x$1 = sig.results.vars, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])).object.typ); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 9: - $r = w[0].tuple(sig.results, false); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: signature, $c: true, $r, n, sig, w, x, x$1, $s, $deferred};return $f; } } - }; - subscript = function subscript$1(x) { - var buf, i, x; - buf = arrayType.zero(); - i = 96; - while (true) { - i = i - (3) >> 0; - utf8.EncodeRune($subslice(new sliceType$14(buf), i), 8320 + (($div64(x, new $Uint64(0, 10), true).$low >> 0)) >> 0); - x = $div64(x, (new $Uint64(0, 10)), false); - if ((x.$high === 0 && x.$low === 0)) { - break; + p.impliedSemi = false; + _r$2 = p.flush($clone(new token.Position.ptr("", 1073741824, 1073741824, 0), token.Position), 1); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + $r = p.fixGoBuildLines(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + output = new trimmer.ptr(output, 0, sliceType.nil); + if (((cfg.Mode & 1) >>> 0) === 0) { + minwidth = cfg.Tabwidth; + padchar = 9; + if (!((((cfg.Mode & 4) >>> 0) === 0))) { + padchar = 32; } - } - return ($bytesToString($subslice(new sliceType$14(buf), i))); - }; - $ptrType(_TypeSet).prototype.IsEmpty = function IsEmpty() { - var s; - s = this; - return s.terms.isEmpty(); - }; - $ptrType(_TypeSet).prototype.IsAll = function IsAll() { - var s; - s = this; - return s.IsMethodSet() && (s.methods.$length === 0); - }; - $ptrType(_TypeSet).prototype.IsMethodSet = function IsMethodSet() { - var s; - s = this; - return !s.comparable && s.terms.isAll(); - }; - $ptrType(_TypeSet).prototype.IsComparable = function IsComparable(seen) { - var {$24r, _r$1, s, seen, $s, $r, $c} = $restore(this, {seen}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - seen = [seen]; - s = this; - if (s.terms.isAll()) { - $s = -1; return s.comparable; - } - _r$1 = s.is((function(seen) { return function _TypeSet·IsComparable·func1(t) { - var {$24r, _r$1, _v, t, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (!(!(t === ptrType$5.nil))) { _v = false; $s = 1; continue s; } - _r$1 = comparable(t.typ, false, seen[0], $throwNilPointerError); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = _r$1; case 1: - $24r = _v; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: _TypeSet·IsComparable·func1, $c: true, $r, $24r, _r$1, _v, t, $s};return $f; - }; })(seen)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: IsComparable, $c: true, $r, $24r, _r$1, s, seen, $s};return $f; - }; - $ptrType(_TypeSet).prototype.NumMethods = function NumMethods() { - var s; - s = this; - return s.methods.$length; - }; - $ptrType(_TypeSet).prototype.Method = function Method(i) { - var i, s, x; - s = this; - return (x = s.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - }; - $ptrType(_TypeSet).prototype.LookupMethod = function LookupMethod(pkg, name, foldCase) { - var foldCase, name, pkg, s; - s = this; - return lookupMethod(s.methods, pkg, name, foldCase); - }; - $ptrType(_TypeSet).prototype.String = function String$4() { - var {_i, _r$1, _r$2, _r$3, _r$4, _ref, buf, hasMethods, hasTerms, i, m, s, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - s = this; - if (s.IsEmpty()) { - $s = -1; return "\xE2\x88\x85"; - } else if (s.IsAll()) { - $s = -1; return "\xF0\x9D\x93\xA4"; - } - hasMethods = s.methods.$length > 0; - hasTerms = s.hasTerms(); - buf = new strings.Builder.ptr(ptrType$53.nil, sliceType$14.nil); - buf.WriteByte(123); - if (s.comparable) { - buf.WriteString("comparable"); - if (hasMethods || hasTerms) { - buf.WriteString("; "); - } - } - _ref = s.methods; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - m = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (i > 0) { - buf.WriteString("; "); + twmode = 8; + if (!((((cfg.Mode & 2) >>> 0) === 0))) { + minwidth = 0; + twmode = (twmode | (16)) >>> 0; } - _r$1 = m.String(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = buf.WriteString(_r$1); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - _i++; - $s = 1; continue; - case 2: - if (hasMethods && hasTerms) { - buf.WriteString("; "); + output = tabwriter.NewWriter(output, minwidth, cfg.Tabwidth, 1, padchar, twmode); } - /* */ if (hasTerms) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (hasTerms) { */ case 5: - _r$3 = s.terms.String(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$4 = buf.WriteString(_r$3); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$4; - /* } */ case 6: - buf.WriteString("}"); - $s = -1; return buf.String(); - /* */ } return; } var $f = {$blk: String$4, $c: true, $r, _i, _r$1, _r$2, _r$3, _r$4, _ref, buf, hasMethods, hasTerms, i, m, s, $s};return $f; - }; - $ptrType(_TypeSet).prototype.hasTerms = function hasTerms() { - var s; - s = this; - return !s.terms.isEmpty() && !s.terms.isAll(); + _r$3 = output.Write(p.output); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _tuple$1 = $assertType(output, ptrType$17, true); + tw = _tuple$1[0]; + /* */ if (!(tw === ptrType$17.nil)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (!(tw === ptrType$17.nil)) { */ case 6: + _r$4 = tw.Flush(); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + err = _r$4; + /* } */ case 7: + $s = -1; return err; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return err; } if($curGoroutine.asleep) { var $f = {$blk: fprint, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, cfg, err, fset, minwidth, node, nodeSizes, output, p, padchar, tw, twmode, $s, $deferred};return $f; } } }; - $ptrType(_TypeSet).prototype.subsetOf = function subsetOf$1(s2) { - var {$24r, _r$1, s1, s2, $s, $r, $c} = $restore(this, {s2}); + $ptrType(Config).prototype.Fprint = function Fprint$1(output, fset, node) { + var {$24r, _r, cfg, fset, node, output, $s, $r, $c} = $restore(this, {output, fset, node}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - s1 = this; - _r$1 = s1.terms.subsetOf(s2.terms); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; + cfg = this; + _r = cfg.fprint(output, fset, node, new $global.Map()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: subsetOf$1, $c: true, $r, $24r, _r$1, s1, s2, $s};return $f; + /* */ } return; } var $f = {$blk: Fprint$1, $c: true, $r, $24r, _r, cfg, fset, node, output, $s};return $f; }; - $ptrType(_TypeSet).prototype.is = function is(f) { - var {$24r, _i, _r$1, _r$2, _ref, f, s, t, $s, $r, $c} = $restore(this, {f}); + $ptrType(printer).prototype.linebreak = function linebreak(line, min, ws, newSection) { + var {line, min, n, nbreaks, newSection, p, ws, $s, $r, $c} = $restore(this, {line, min, ws, newSection}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - s = this; - /* */ if (!s.hasTerms()) { $s = 1; continue; } + nbreaks = 0; + p = this; + n = nlimit(line - p.pos.Line >> 0); + if (n < min) { + n = min; + } + /* */ if (n > 0) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (!s.hasTerms()) { */ case 1: - _r$1 = f(ptrType$5.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 4; case 4: return $24r; + /* if (n > 0) { */ case 1: + $r = p.print(new sliceType$1([new whiteSpace(ws)])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (newSection) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (newSection) { */ case 4: + $r = p.print(new sliceType$1([new whiteSpace(12)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + n = n - (1) >> 0; + nbreaks = 2; + /* } */ case 5: + nbreaks = nbreaks + (n) >> 0; + /* while (true) { */ case 7: + /* if (!(n > 0)) { break; } */ if(!(n > 0)) { $s = 8; continue; } + $r = p.print(new sliceType$1([new whiteSpace(10)])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + n = n - (1) >> 0; + $s = 7; continue; + case 8: /* } */ case 2: - _ref = s.terms; - _i = 0; - /* while (true) { */ case 5: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 6; continue; } - t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - $r = assert(!($interfaceIsEqual(t.typ, $ifaceNil))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$2 = f(t); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (!_r$2) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (!_r$2) { */ case 8: - $s = -1; return false; - /* } */ case 9: - _i++; - $s = 5; continue; - case 6: - $s = -1; return true; - /* */ } return; } var $f = {$blk: is, $c: true, $r, $24r, _i, _r$1, _r$2, _ref, f, s, t, $s};return $f; + $s = -1; return nbreaks; + /* */ } return; } var $f = {$blk: linebreak, $c: true, $r, line, min, n, nbreaks, newSection, p, ws, $s};return $f; }; - $ptrType(_TypeSet).prototype.underIs = function underIs$1(f) { - var {$24r, _arg, _arg$1, _i, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, f, s, t, u, $s, $r, $c} = $restore(this, {f}); + $ptrType(printer).prototype.setComment = function setComment(g) { + var {_r, _r$1, g, p, x, x$1, $s, $r, $c} = $restore(this, {g}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - s = this; - /* */ if (!s.hasTerms()) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!s.hasTerms()) { */ case 1: - _r$1 = f($ifaceNil); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 4; case 4: return $24r; - /* } */ case 2: - _ref = s.terms; - _i = 0; - /* while (true) { */ case 5: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 6; continue; } - t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - $r = assert(!($interfaceIsEqual(t.typ, $ifaceNil))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - u = t.typ; - /* */ if (!t.tilde) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (!t.tilde) { */ case 8: - _r$2 = under(u); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - u = _r$2; - /* } */ case 9: - /* */ if (false) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (false) { */ case 11: - _arg = u; - _r$3 = under(u); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _arg$1 = _r$3; - _r$4 = Identical(_arg, _arg$1); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $r = assert(_r$4); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 12: - _r$5 = f(u); /* */ $s = 18; case 18: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* */ if (!_r$5) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (!_r$5) { */ case 16: - $s = -1; return false; - /* } */ case 17: - _i++; - $s = 5; continue; - case 6: - $s = -1; return true; - /* */ } return; } var $f = {$blk: underIs$1, $c: true, $r, $24r, _arg, _arg$1, _i, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, f, s, t, u, $s};return $f; - }; - computeInterfaceTypeSet = function computeInterfaceTypeSet$1(check, pos, ityp) { - var {$24r, _i, _i$1, _i$2, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _ref$2, _ref$3, _tuple, _v, addMethod, allComparable, allMethods, allTerms, check, comparable$1, i, ityp, m, m$1, mpos, pos, pos$1, seen, terms, tset, tset$1, typ$2, u, u$1, u$2, unionSets, x, x$1, $s, $deferred, $r, $c} = $restore(this, {check, pos, ityp}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - allMethods = [allMethods]; - check = [check]; - ityp = [ityp]; - mpos = [mpos]; - pos = [pos]; - seen = [seen]; - if (!(ityp[0].tset === ptrType$8.nil)) { - $s = -1; return ityp[0].tset; - } - if (!ityp[0].complete) { - $s = -1; return topTypeSet; - } - /* */ if (!(check[0] === ptrType$6.nil) && false) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(check[0] === ptrType$6.nil) && false) { */ case 1: - if (!new token.Pos(pos[0]).IsValid() && ityp[0].methods.$length > 0) { - pos[0] = (x = ityp[0].methods, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).object.pos; - } - $r = check[0].trace(pos[0], "-- type set for %s", new sliceType$6([ityp[0]])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - check[0].indent = check[0].indent + (1) >> 0; - $deferred.push([(function(allMethods, check, ityp, mpos, pos, seen) { return function computeInterfaceTypeSet·func1() { - var {_arg, _arg$1, _r$1, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check[0].indent = check[0].indent - (1) >> 0; - _arg = pos[0]; - _r$1 = ityp[0].typeSet(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _arg$1 = _r$1; - $r = check[0].trace(_arg, "=> %s ", new sliceType$6([_arg$1])); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: computeInterfaceTypeSet·func1, $c: true, $r, _arg, _arg$1, _r$1, $s};return $f; - }; })(allMethods, check, ityp, mpos, pos, seen), []]); - /* } */ case 2: - ityp[0].tset = new _TypeSet.ptr(sliceType.nil, allTermlist, false); - unionSets = false; - if (!(check[0] === ptrType$6.nil)) { - if (check[0].unionTypeSets === false) { - check[0].unionTypeSets = new $global.Map(); - } - unionSets = check[0].unionTypeSets; - } else { - unionSets = new $global.Map(); + p = this; + if (g === ptrType$2.nil || !p.useNodeComments) { + $s = -1; return; } - seen[0] = false; - allMethods[0] = sliceType.nil; - mpos[0] = new $global.Map(); - addMethod = (function(allMethods, check, ityp, mpos, pos, seen) { return function computeInterfaceTypeSet·func2(pos$1, m, explicit) { - var {_entry, _key, _r$1, explicit, m, other, pos$1, $s, $r, $c} = $restore(this, {pos$1, m, explicit}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - m = [m]; - other = [other]; - pos$1 = [pos$1]; - _r$1 = (seen.$ptr || (seen.$ptr = new ptrType$54(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, seen))).insert(m[0]); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - other[0] = _r$1; - /* */ if ($interfaceIsEqual(other[0], $ifaceNil)) { $s = 3; continue; } - /* */ if (explicit) { $s = 4; continue; } - /* */ if (!(check[0] === ptrType$6.nil)) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if ($interfaceIsEqual(other[0], $ifaceNil)) { */ case 3: - allMethods[0] = $append(allMethods[0], m[0]); - _key = m[0]; (mpos[0] || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$2.keyFor(_key), { k: _key, v: pos$1[0] }); - $s = 6; continue; - /* } else if (explicit) { */ case 4: - /* */ if (!(check[0] === ptrType$6.nil)) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (!(check[0] === ptrType$6.nil)) { */ case 7: - $r = check[0].errorf(new atPos(((pos$1[0] >> 0))), 10, "duplicate method %s", new sliceType$6([new $String(m[0].object.name)])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].errorf(new atPos((((_entry = $mapIndex(mpos[0],ptrType$2.keyFor($assertType(other[0], ptrType$2))), _entry !== undefined ? _entry.v : 0) >> 0))), 10, "\tother declaration of %s", new sliceType$6([new $String(m[0].object.name)])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 8: - $s = 6; continue; - /* } else if (!(check[0] === ptrType$6.nil)) { */ case 5: - check[0].later((function(allMethods, check, ityp, m, mpos, other, pos, pos$1, seen) { return function computeInterfaceTypeSet·func2·func1() { - var {_arg, _arg$1, _entry$1, _r$2, _r$3, _v, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (!check[0].allowVersion(m[0].object.pkg, 1, 14)) { _v = true; $s = 3; continue s; } - _arg = m[0].object.typ; - _r$2 = other[0].Type(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _arg$1 = _r$2; - _r$3 = Identical(_arg, _arg$1); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _v = !_r$3; case 3: - /* */ if (_v) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (_v) { */ case 1: - $r = check[0].errorf(new atPos(((pos$1[0] >> 0))), 10, "duplicate method %s", new sliceType$6([new $String(m[0].object.name)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].errorf(new atPos((((_entry$1 = $mapIndex(mpos[0],ptrType$2.keyFor($assertType(other[0], ptrType$2))), _entry$1 !== undefined ? _entry$1.v : 0) >> 0))), 10, "\tother declaration of %s", new sliceType$6([new $String(m[0].object.name)])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: computeInterfaceTypeSet·func2·func1, $c: true, $r, _arg, _arg$1, _entry$1, _r$2, _r$3, _v, $s};return $f; - }; })(allMethods, check, ityp, m, mpos, other, pos, pos$1, seen)).describef(new atPos(((pos$1[0] >> 0))), "duplicate method check for %s", new sliceType$6([new $String(m[0].object.name)])); - /* } */ case 6: - case 1: - $s = -1; return; - /* */ } return; } var $f = {$blk: computeInterfaceTypeSet·func2, $c: true, $r, _entry, _key, _r$1, explicit, m, other, pos$1, $s};return $f; - }; })(allMethods, check, ityp, mpos, pos, seen); - _ref = ityp[0].methods; - _i = 0; - /* while (true) { */ case 4: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 5; continue; } - m = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - $r = addMethod(m.object.pos, m, true); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 4; continue; - case 5: - allTerms = allTermlist; - allComparable = false; - _ref$1 = ityp[0].embeddeds; - _i$1 = 0; - /* while (true) { */ case 7: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 8; continue; } - i = _i$1; - typ$2 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - pos$1 = 0; - if (!(ityp[0].embedPos === ptrType$7.nil)) { - pos$1 = (x$1 = ityp[0].embedPos.$get(), ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])); - } - comparable$1 = false; - terms = termlist.nil; - _r$1 = under(typ$2); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _ref$2 = _r$1; - /* */ if ($assertType(_ref$2, ptrType$13, true)[1]) { $s = 10; continue; } - /* */ if ($assertType(_ref$2, ptrType$12, true)[1]) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if ($assertType(_ref$2, ptrType$13, true)[1]) { */ case 10: - u = _ref$2.$val; - $r = assert(!isTypeParam(typ$2)); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$2 = computeInterfaceTypeSet(check[0], pos$1, u); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - tset = _r$2; - if (!(!(check[0] === ptrType$6.nil))) { _v = false; $s = 18; continue s; } - _r$3 = check[0].isImportedConstraint(typ$2); /* */ $s = 19; case 19: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _v = _r$3; case 18: - /* */ if (_v && !check[0].allowVersion(check[0].pkg, 1, 18)) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (_v && !check[0].allowVersion(check[0].pkg, 1, 18)) { */ case 16: - $r = check[0].errorf(new atPos(((pos$1 >> 0))), 135, "embedding constraint interface %s requires go1.18 or later", new sliceType$6([typ$2])); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$1++; - /* continue; */ $s = 7; continue; - /* } */ case 17: - comparable$1 = tset.comparable; - _ref$3 = tset.methods; - _i$2 = 0; - /* while (true) { */ case 21: - /* if (!(_i$2 < _ref$3.$length)) { break; } */ if(!(_i$2 < _ref$3.$length)) { $s = 22; continue; } - m$1 = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]); - $r = addMethod(pos$1, m$1, false); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$2++; - $s = 21; continue; - case 22: - terms = tset.terms; - $s = 13; continue; - /* } else if ($assertType(_ref$2, ptrType$12, true)[1]) { */ case 11: - u$1 = _ref$2.$val; - /* */ if (!(check[0] === ptrType$6.nil) && !check[0].allowVersion(check[0].pkg, 1, 18)) { $s = 24; continue; } - /* */ $s = 25; continue; - /* if (!(check[0] === ptrType$6.nil) && !check[0].allowVersion(check[0].pkg, 1, 18)) { */ case 24: - $r = check[0].errorf(new atPos(((pos$1 >> 0))), 135, "embedding interface element %s requires go1.18 or later", new sliceType$6([u$1])); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$1++; - /* continue; */ $s = 7; continue; - /* } */ case 25: - _r$4 = computeUnionTypeSet(check[0], unionSets, pos$1, u$1); /* */ $s = 27; case 27: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - tset$1 = _r$4; - if (tset$1 === invalidTypeSet) { - _i$1++; - /* continue; */ $s = 7; continue; - } - $r = assert(!tset$1.comparable); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = assert(tset$1.methods.$length === 0); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - terms = tset$1.terms; - $s = 13; continue; - /* } else { */ case 12: - u$2 = _ref$2; - if ($interfaceIsEqual(u$2, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { - _i$1++; - /* continue; */ $s = 7; continue; - } - /* */ if (!(check[0] === ptrType$6.nil) && !check[0].allowVersion(check[0].pkg, 1, 18)) { $s = 30; continue; } - /* */ $s = 31; continue; - /* if (!(check[0] === ptrType$6.nil) && !check[0].allowVersion(check[0].pkg, 1, 18)) { */ case 30: - $r = check[0].errorf(new atPos(((pos$1 >> 0))), 135, "embedding non-interface type %s requires go1.18 or later", new sliceType$6([typ$2])); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$1++; - /* continue; */ $s = 7; continue; - /* } */ case 31: - terms = new termlist([new term.ptr(false, typ$2)]); - /* } */ case 13: - _r$5 = intersectTermLists(allTerms, allComparable, terms, comparable$1); /* */ $s = 33; case 33: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _tuple = _r$5; - allTerms = _tuple[0]; - allComparable = _tuple[1]; - _i$1++; - $s = 7; continue; - case 8: - ityp[0].embedPos = ptrType$7.nil; - ityp[0].tset.comparable = allComparable; - /* */ if (!((allMethods[0].$length === 0))) { $s = 34; continue; } - /* */ $s = 35; continue; - /* if (!((allMethods[0].$length === 0))) { */ case 34: - $r = sortMethods(allMethods[0]); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - ityp[0].tset.methods = allMethods[0]; - /* } */ case 35: - ityp[0].tset.terms = allTerms; - $24r = ityp[0].tset; - $s = 37; case 37: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$8.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: computeInterfaceTypeSet$1, $c: true, $r, $24r, _i, _i$1, _i$2, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _ref$2, _ref$3, _tuple, _v, addMethod, allComparable, allMethods, allTerms, check, comparable$1, i, ityp, m, m$1, mpos, pos, pos$1, seen, terms, tset, tset$1, typ$2, u, u$1, u$2, unionSets, x, x$1, $s, $deferred};return $f; } } - }; - intersectTermLists = function intersectTermLists$1(xterms, xcomp, yterms, ycomp) { - var {_i, _r$1, _r$2, _ref, comp, i, t, terms, xcomp, xterms, ycomp, yterms, $s, $r, $c} = $restore(this, {xterms, xcomp, yterms, ycomp}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = xterms.intersect(yterms); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - terms = _r$1; - comp = xcomp || ycomp; - /* */ if (comp && !terms.isAll()) { $s = 2; continue; } + /* */ if (p.comments === sliceType$4.nil) { $s = 1; continue; } + /* */ if (p.commentInfo.cindex < p.comments.$length) { $s = 2; continue; } /* */ $s = 3; continue; - /* if (comp && !terms.isAll()) { */ case 2: - i = 0; - _ref = terms; - _i = 0; - /* while (true) { */ case 4: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 5; continue; } - t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - $r = assert(!($interfaceIsEqual(t.typ, $ifaceNil))); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$2 = comparable(t.typ, false, false, $throwNilPointerError); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (_r$2) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (_r$2) { */ case 7: - ((i < 0 || i >= terms.$length) ? ($throwRuntimeError("index out of range"), undefined) : terms.$array[terms.$offset + i] = t); - i = i + (1) >> 0; - /* } */ case 8: - _i++; - $s = 4; continue; - case 5: - terms = $subslice(terms, 0, i); - if (!terms.isAll()) { - comp = false; - } + /* if (p.comments === sliceType$4.nil) { */ case 1: + p.comments = $makeSlice(sliceType$4, 1); + $s = 3; continue; + /* } else if (p.commentInfo.cindex < p.comments.$length) { */ case 2: + _r = p.posFor((x = g.List, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).Pos()); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = p.flush($clone(_r, token.Position), 0); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + p.comments = $subslice(p.comments, 0, 1); + $r = p.internalError(new sliceType$1([new $String("setComment found pending comments")])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 3: - $r = assert(!comp || terms.isAll()); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return [terms, comp]; - /* */ } return; } var $f = {$blk: intersectTermLists$1, $c: true, $r, _i, _r$1, _r$2, _ref, comp, i, t, terms, xcomp, xterms, ycomp, yterms, $s};return $f; + (x$1 = p.comments, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0] = g)); + p.commentInfo.cindex = 0; + /* */ if (p.commentInfo.commentOffset === 1073741824) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (p.commentInfo.commentOffset === 1073741824) { */ case 7: + $r = p.nextComment(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 8: + $s = -1; return; + /* */ } return; } var $f = {$blk: setComment, $c: true, $r, _r, _r$1, g, p, x, x$1, $s};return $f; }; - sortMethods = function sortMethods$1(list) { - var {list, $s, $r, $c} = $restore(this, {list}); + $ptrType(printer).prototype.identList = function identList(list, indent) { + var {_i, _ref, i, indent, list, mode, p, x, xlist, $s, $r, $c} = $restore(this, {list, indent}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = sort.Sort(($convertSliceType(list, byUniqueMethodName))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + p = this; + xlist = $makeSlice(sliceType$7, list.$length); + _ref = list; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + ((i < 0 || i >= xlist.$length) ? ($throwRuntimeError("index out of range"), undefined) : xlist.$array[xlist.$offset + i] = x); + _i++; + } + mode = 0; + if (!indent) { + mode = 2; + } + $r = p.exprList(0, xlist, 1, mode, 0, false); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } var $f = {$blk: sortMethods$1, $c: true, $r, list, $s};return $f; + /* */ } return; } var $f = {$blk: identList, $c: true, $r, _i, _ref, i, indent, list, mode, p, x, xlist, $s};return $f; }; - assertSortedMethods = function assertSortedMethods$1(list) { - var {_r$1, list, $s, $r, $c} = $restore(this, {list}); + $ptrType(printer).prototype.exprList = function exprList(prev0, list, depth, mode, next0, isIncomplete) { + var {_i, _i$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _v, count, depth, endLine, geomean, i, i$1, isIncomplete, isPair, line, list, lnsum, mode, nbreaks, needsBlank, needsLinebreak, next, next$1, next0, p, pair, prev, prev$1, prev0, prevBreak, prevLine, prevSize, ratio, size, useFF, ws, x, x$1, x$2, $s, $r, $c} = $restore(this, {prev0, list, depth, mode, next0, isIncomplete}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (true) { - $panic(new $String("assertSortedMethods called outside debug mode")); - } - _r$1 = sort.IsSorted(($convertSliceType(list, byUniqueMethodName))); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (!_r$1) { $s = 1; continue; } + p = this; + /* */ if (list.$length === 0) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (!_r$1) { */ case 1: - $panic(new $String("methods not sorted")); + /* if (list.$length === 0) { */ case 1: + /* */ if (isIncomplete) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (isIncomplete) { */ case 3: + _r = p.posFor(prev0); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + prev = $clone(_r, token.Position); + _r$1 = p.posFor(next0); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + next = $clone(_r$1, token.Position); + /* */ if (prev.IsValid() && (prev.Line === next.Line)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (prev.IsValid() && (prev.Line === next.Line)) { */ case 7: + $r = p.print(new sliceType$1([new $String("/* contains filtered or unexported fields */")])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 9; continue; + /* } else { */ case 8: + $r = p.print(new sliceType$1([new whiteSpace(10)])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new whiteSpace(62), new $String("// contains filtered or unexported fields"), new whiteSpace(60), new whiteSpace(10)])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 9: + /* } */ case 4: + $s = -1; return; /* } */ case 2: + _r$2 = p.posFor(prev0); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + prev$1 = $clone(_r$2, token.Position); + _r$3 = p.posFor(next0); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + next$1 = $clone(_r$3, token.Position); + _r$4 = (0 >= list.$length ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + 0]).Pos(); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$5 = p.lineFor(_r$4); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + line = _r$5; + _r$6 = (x = list.$length - 1 >> 0, ((x < 0 || x >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + x])).End(); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$7 = p.lineFor(_r$6); /* */ $s = 18; case 18: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + endLine = _r$7; + /* */ if (prev$1.IsValid() && (prev$1.Line === line) && (line === endLine)) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (prev$1.IsValid() && (prev$1.Line === line) && (line === endLine)) { */ case 19: + _ref = list; + _i = 0; + /* while (true) { */ case 21: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 22; continue; } + i = _i; + x$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + /* */ if (i > 0) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (i > 0) { */ case 23: + _r$8 = x$1.Pos(); /* */ $s = 25; case 25: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + $r = p.setPos(_r$8); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(52), new whiteSpace(32)])); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 24: + $r = p.expr0(x$1, depth); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 21; continue; + case 22: + /* */ if (isIncomplete) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if (isIncomplete) { */ case 29: + $r = p.print(new sliceType$1([new token.Token(52), new whiteSpace(32), new $String("/* contains filtered or unexported fields */")])); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 30: + $s = -1; return; + /* } */ case 20: + ws = 0; + if (((mode & 2) >>> 0) === 0) { + ws = 62; + } + prevBreak = -1; + if (!(prev$1.IsValid() && prev$1.Line < line)) { _v = false; $s = 34; continue s; } + _r$9 = p.linebreak(line, 0, ws, true); /* */ $s = 35; case 35: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _v = _r$9 > 0; case 34: + /* */ if (_v) { $s = 32; continue; } + /* */ $s = 33; continue; + /* if (_v) { */ case 32: + ws = 0; + prevBreak = 0; + /* } */ case 33: + size = 0; + lnsum = 0; + count = 0; + prevLine = prev$1.Line; + _ref$1 = list; + _i$1 = 0; + /* while (true) { */ case 36: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 37; continue; } + i$1 = _i$1; + x$2 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + _r$10 = x$2.Pos(); /* */ $s = 38; case 38: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$11 = p.lineFor(_r$10); /* */ $s = 39; case 39: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + line = _r$11; + useFF = true; + prevSize = size; + _r$12 = p.nodeSize(x$2, 1000000); /* */ $s = 40; case 40: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + size = _r$12; + _tuple = $assertType(x$2, ptrType$18, true); + pair = _tuple[0]; + isPair = _tuple[1]; + /* */ if (size <= 1000000 && prev$1.IsValid() && next$1.IsValid()) { $s = 41; continue; } + /* */ $s = 42; continue; + /* if (size <= 1000000 && prev$1.IsValid() && next$1.IsValid()) { */ case 41: + /* */ if (isPair) { $s = 44; continue; } + /* */ $s = 45; continue; + /* if (isPair) { */ case 44: + _r$13 = p.nodeSize(pair.Key, 1000000); /* */ $s = 46; case 46: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + size = _r$13; + /* } */ case 45: + $s = 43; continue; + /* } else { */ case 42: + size = 0; + /* } */ case 43: + if (prevSize > 0 && size > 0) { + if ((count === 0) || prevSize <= 40 && size <= 40) { + useFF = false; + } else { + geomean = math.Exp(lnsum / (count)); + ratio = (size) / geomean; + useFF = 2.5 * ratio <= 1 || 2.5 <= ratio; + } + } + needsLinebreak = 0 < prevLine && prevLine < line; + /* */ if (i$1 > 0) { $s = 47; continue; } + /* */ $s = 48; continue; + /* if (i$1 > 0) { */ case 47: + /* */ if (!needsLinebreak) { $s = 49; continue; } + /* */ $s = 50; continue; + /* if (!needsLinebreak) { */ case 49: + _r$14 = x$2.Pos(); /* */ $s = 51; case 51: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + $r = p.setPos(_r$14); /* */ $s = 52; case 52: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 50: + $r = p.print(new sliceType$1([new token.Token(52)])); /* */ $s = 53; case 53: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + needsBlank = true; + /* */ if (needsLinebreak) { $s = 54; continue; } + /* */ $s = 55; continue; + /* if (needsLinebreak) { */ case 54: + _r$15 = p.linebreak(line, 0, ws, useFF || (prevBreak + 1 >> 0) < i$1); /* */ $s = 56; case 56: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + nbreaks = _r$15; + if (nbreaks > 0) { + ws = 0; + prevBreak = i$1; + needsBlank = false; + } + if (nbreaks > 1) { + lnsum = 0; + count = 0; + } + /* } */ case 55: + /* */ if (needsBlank) { $s = 57; continue; } + /* */ $s = 58; continue; + /* if (needsBlank) { */ case 57: + $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 59; case 59: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 58: + /* } */ case 48: + /* */ if (list.$length > 1 && isPair && size > 0 && needsLinebreak) { $s = 60; continue; } + /* */ $s = 61; continue; + /* if (list.$length > 1 && isPair && size > 0 && needsLinebreak) { */ case 60: + $r = p.expr(pair.Key); /* */ $s = 63; case 63: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.setPos(pair.Colon); /* */ $s = 64; case 64: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(58), new whiteSpace(11)])); /* */ $s = 65; case 65: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.expr(pair.Value); /* */ $s = 66; case 66: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 62; continue; + /* } else { */ case 61: + $r = p.expr0(x$2, depth); /* */ $s = 67; case 67: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 62: + if (size > 0) { + lnsum = lnsum + (math.Log((size))); + count = count + (1) >> 0; + } + prevLine = line; + _i$1++; + $s = 36; continue; + case 37: + /* */ if (!((((mode & 1) >>> 0) === 0)) && next$1.IsValid() && p.pos.Line < next$1.Line) { $s = 68; continue; } + /* */ $s = 69; continue; + /* if (!((((mode & 1) >>> 0) === 0)) && next$1.IsValid() && p.pos.Line < next$1.Line) { */ case 68: + $r = p.print(new sliceType$1([new token.Token(52)])); /* */ $s = 70; case 70: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (isIncomplete) { $s = 71; continue; } + /* */ $s = 72; continue; + /* if (isIncomplete) { */ case 71: + $r = p.print(new sliceType$1([new whiteSpace(10)])); /* */ $s = 73; case 73: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new $String("// contains filtered or unexported fields")])); /* */ $s = 74; case 74: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 72: + /* */ if ((ws === 0) && (((mode & 2) >>> 0) === 0)) { $s = 75; continue; } + /* */ $s = 76; continue; + /* if ((ws === 0) && (((mode & 2) >>> 0) === 0)) { */ case 75: + $r = p.print(new sliceType$1([new whiteSpace(60)])); /* */ $s = 77; case 77: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 76: + $r = p.print(new sliceType$1([new whiteSpace(12)])); /* */ $s = 78; case 78: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 69: + /* */ if (isIncomplete) { $s = 79; continue; } + /* */ $s = 80; continue; + /* if (isIncomplete) { */ case 79: + $r = p.print(new sliceType$1([new token.Token(52), new whiteSpace(10)])); /* */ $s = 81; case 81: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new $String("// contains filtered or unexported fields"), new whiteSpace(10)])); /* */ $s = 82; case 82: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 80: + /* */ if ((ws === 0) && (((mode & 2) >>> 0) === 0)) { $s = 83; continue; } + /* */ $s = 84; continue; + /* if ((ws === 0) && (((mode & 2) >>> 0) === 0)) { */ case 83: + $r = p.print(new sliceType$1([new whiteSpace(60)])); /* */ $s = 85; case 85: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 84: $s = -1; return; - /* */ } return; } var $f = {$blk: assertSortedMethods$1, $c: true, $r, _r$1, list, $s};return $f; - }; - byUniqueMethodName.prototype.Len = function Len$1() { - var a; - a = this; - return a.$length; - }; - $ptrType(byUniqueMethodName).prototype.Len = function(...$args) { return this.$get().Len(...$args); }; - byUniqueMethodName.prototype.Less = function Less(i, j) { - var a, i, j; - a = this; - return ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i]).object.Id() < ((j < 0 || j >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + j]).object.Id(); - }; - $ptrType(byUniqueMethodName).prototype.Less = function(...$args) { return this.$get().Less(...$args); }; - byUniqueMethodName.prototype.Swap = function Swap(i, j) { - var _tmp, _tmp$1, a, i, j; - a = this; - _tmp = ((j < 0 || j >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + j]); - _tmp$1 = ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i]); - ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i] = _tmp); - ((j < 0 || j >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + j] = _tmp$1); - }; - $ptrType(byUniqueMethodName).prototype.Swap = function(...$args) { return this.$get().Swap(...$args); }; - computeUnionTypeSet = function computeUnionTypeSet$1(check, unionSets, pos, utyp) { - var {_entry, _entry$1, _entry$2, _entry$3, _i, _key, _key$1, _r$1, _r$2, _r$3, _r$4, _ref, _tuple, _tuple$1, _v, allTerms, check, pos, t, terms, tset, u, ui, unionSets, utyp, $s, $r, $c} = $restore(this, {check, unionSets, pos, utyp}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _tuple = (_entry = $mapIndex(unionSets,ptrType$12.keyFor(utyp)), _entry !== undefined ? [_entry.v, true] : [ptrType$8.nil, false]); - tset = _tuple[0]; - if (!(tset === ptrType$8.nil)) { - $s = -1; return tset; - } - _key = utyp; (unionSets || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$12.keyFor(_key), { k: _key, v: new _TypeSet.ptr(sliceType.nil, termlist.nil, false) }); - allTerms = termlist.nil; - _ref = utyp.terms; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - terms = termlist.nil; - _r$1 = under(t.typ); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - u = _r$1; - _tuple$1 = $assertType(u, ptrType$13, true); - ui = _tuple$1[0]; - /* */ if (!(ui === ptrType$13.nil)) { $s = 4; continue; } - /* */ if ($interfaceIsEqual(u, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (!(ui === ptrType$13.nil)) { */ case 4: - $r = assert(!isTypeParam(t.typ)); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$2 = computeInterfaceTypeSet(check, pos, ui); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - terms = _r$2.terms; - $s = 7; continue; - /* } else if ($interfaceIsEqual(u, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { */ case 5: - _i++; - /* continue; */ $s = 1; continue; - $s = 7; continue; - /* } else { */ case 6: - if (!(t.tilde)) { _v = false; $s = 12; continue s; } - _r$3 = Identical(t.typ, u); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _v = !_r$3; case 12: - /* */ if (_v) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (_v) { */ case 10: - t = ptrType$19.nil; - /* } */ case 11: - terms = new termlist([($pointerOfStructConversion(t, ptrType$5))]); - /* } */ case 7: - _r$4 = allTerms.union(terms); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - allTerms = _r$4; - /* */ if (allTerms.$length > 100) { $s = 15; continue; } - /* */ $s = 16; continue; - /* if (allTerms.$length > 100) { */ case 15: - /* */ if (!(check === ptrType$6.nil)) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (!(check === ptrType$6.nil)) { */ case 17: - $r = check.errorf(new atPos(((pos >> 0))), 141, "cannot handle more than %d union terms (implementation limitation)", new sliceType$6([new $Int(100)])); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 18: - _key$1 = utyp; (unionSets || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$12.keyFor(_key$1), { k: _key$1, v: invalidTypeSet }); - $s = -1; return (_entry$1 = $mapIndex(unionSets,ptrType$12.keyFor(utyp)), _entry$1 !== undefined ? _entry$1.v : ptrType$8.nil); - /* } */ case 16: - _i++; - $s = 1; continue; - case 2: - (_entry$2 = $mapIndex(unionSets,ptrType$12.keyFor(utyp)), _entry$2 !== undefined ? _entry$2.v : ptrType$8.nil).terms = allTerms; - $s = -1; return (_entry$3 = $mapIndex(unionSets,ptrType$12.keyFor(utyp)), _entry$3 !== undefined ? _entry$3.v : ptrType$8.nil); - /* */ } return; } var $f = {$blk: computeUnionTypeSet$1, $c: true, $r, _entry, _entry$1, _entry$2, _entry$3, _i, _key, _key$1, _r$1, _r$2, _r$3, _r$4, _ref, _tuple, _tuple$1, _v, allTerms, check, pos, t, terms, tset, u, ui, unionSets, utyp, $s};return $f; - }; - nextID = function nextID$1() { - return (new $Uint64(0, atomic.AddUint32((lastID$24ptr || (lastID$24ptr = new ptrType$55(function() { return lastID; }, function($v) { lastID = $v; }))), 1))); - }; - NewTypeParam = function NewTypeParam$1(obj, constraint) { - var {$24r, _r$1, constraint, obj, $s, $r, $c} = $restore(this, {obj, constraint}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = (ptrType$6.nil).newTypeParam(obj, constraint); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: NewTypeParam$1, $c: true, $r, $24r, _r$1, constraint, obj, $s};return $f; - }; - $pkg.NewTypeParam = NewTypeParam; - $ptrType(Checker).prototype.newTypeParam = function newTypeParam(obj, constraint) { - var {_r$1, check, constraint, id, obj, typ$2, x, x$1, $s, $r, $c} = $restore(this, {obj, constraint}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - id = nextID(); - if (!(check === ptrType$6.nil)) { - check.nextID = (x = check.nextID, x$1 = new $Uint64(0, 1), new $Uint64(x.$high + x$1.$high, x.$low + x$1.$low)); - id = check.nextID; - } - typ$2 = new TypeParam.ptr(check, id, obj, -1, constraint); - if ($interfaceIsEqual(obj.object.typ, $ifaceNil)) { - obj.object.typ = typ$2; - } - /* */ if (!(check === ptrType$6.nil)) { $s = 1; continue; } - /* */ if (!($interfaceIsEqual(constraint, $ifaceNil))) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!(check === ptrType$6.nil)) { */ case 1: - check.needsCleanup(typ$2); - $s = 3; continue; - /* } else if (!($interfaceIsEqual(constraint, $ifaceNil))) { */ case 2: - _r$1 = typ$2.iface(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - /* } */ case 3: - $s = -1; return typ$2; - /* */ } return; } var $f = {$blk: newTypeParam, $c: true, $r, _r$1, check, constraint, id, obj, typ$2, x, x$1, $s};return $f; - }; - $ptrType(TypeParam).prototype.Index = function Index() { - var t; - t = this; - return t.index; - }; - $ptrType(TypeParam).prototype.Obj = function Obj() { - var t; - t = this; - return t.obj; - }; - $ptrType(TypeParam).prototype.Constraint = function Constraint() { - var t; - t = this; - return t.bound; + /* */ } return; } var $f = {$blk: exprList, $c: true, $r, _i, _i$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _v, count, depth, endLine, geomean, i, i$1, isIncomplete, isPair, line, list, lnsum, mode, nbreaks, needsBlank, needsLinebreak, next, next$1, next0, p, pair, prev, prev$1, prev0, prevBreak, prevLine, prevSize, ratio, size, useFF, ws, x, x$1, x$2, $s};return $f; }; - $ptrType(TypeParam).prototype.SetConstraint = function SetConstraint(bound) { - var {_r$1, bound, t, $s, $r, $c} = $restore(this, {bound}); + $ptrType(printer).prototype.parameters = function parameters(fields, mode) { + var {_i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _v, closeTok, closing, fields, i, mode, needsLinebreak, openTok, p, par, parLineBeg, parLineEnd, prevLine, ws, x, $s, $r, $c} = $restore(this, {fields, mode}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - if ($interfaceIsEqual(bound, $ifaceNil)) { - $panic(new $String("nil constraint")); + p = this; + _tmp = 49; + _tmp$1 = 54; + openTok = _tmp; + closeTok = _tmp$1; + if (!((mode === 0))) { + _tmp$2 = 50; + _tmp$3 = 55; + openTok = _tmp$2; + closeTok = _tmp$3; } - t.bound = bound; - _r$1 = t.iface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - $s = -1; return; - /* */ } return; } var $f = {$blk: SetConstraint, $c: true, $r, _r$1, bound, t, $s};return $f; - }; - $ptrType(TypeParam).prototype.Underlying = function Underlying$1() { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = t.iface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Underlying$1, $c: true, $r, $24r, _r$1, t, $s};return $f; - }; - $ptrType(TypeParam).prototype.String = function String$5() { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = TypeString(t, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$5, $c: true, $r, $24r, _r$1, t, $s};return $f; - }; - $ptrType(TypeParam).prototype.cleanup = function cleanup() { - var {_r$1, t, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = t.iface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - t.check = ptrType$6.nil; - $s = -1; return; - /* */ } return; } var $f = {$blk: cleanup, $c: true, $r, _r$1, t, $s};return $f; - }; - $ptrType(TypeParam).prototype.iface = function iface() { - var {_r$1, _r$2, _r$3, _ref, _tuple, bound, ityp, n, pos, t, u, u$1, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - bound = t.bound; - ityp = ptrType$13.nil; - _r$1 = under(bound); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _ref = _r$1; - /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 3; continue; } + $r = p.setPos(fields.Opening); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(openTok)])); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (fields.List.$length > 0) { $s = 3; continue; } /* */ $s = 4; continue; - /* if ($assertType(_ref, ptrType$4, true)[1]) { */ case 2: - u = _ref.$val; - if (u === (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])) { - $s = -1; return emptyInterface; - } - $s = 4; continue; - /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 3: - u$1 = _ref.$val; - if (isTypeParam(bound)) { - $s = -1; return emptyInterface; - } - ityp = u$1; + /* if (fields.List.$length > 0) { */ case 3: + _r = p.lineFor(fields.Opening); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + prevLine = _r; + ws = 62; + _ref = fields.List; + _i = 0; + /* while (true) { */ case 6: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 7; continue; } + i = _i; + par = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r$1 = par.Pos(); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = p.lineFor(_r$1); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + parLineBeg = _r$2; + _r$3 = par.End(); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$4 = p.lineFor(_r$3); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + parLineEnd = _r$4; + needsLinebreak = 0 < prevLine && prevLine < parLineBeg; + /* */ if (i > 0) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (i > 0) { */ case 12: + /* */ if (!needsLinebreak) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (!needsLinebreak) { */ case 14: + _r$5 = par.Pos(); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $r = p.setPos(_r$5); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 15: + $r = p.print(new sliceType$1([new token.Token(52)])); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 13: + if (!(needsLinebreak)) { _v = false; $s = 22; continue s; } + _r$6 = p.linebreak(parLineBeg, 0, ws, true); /* */ $s = 23; case 23: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _v = _r$6 > 0; case 22: + /* */ if (_v) { $s = 19; continue; } + /* */ if (i > 0) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (_v) { */ case 19: + ws = 0; + $s = 21; continue; + /* } else if (i > 0) { */ case 20: + $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 21: + /* */ if (par.Names.$length > 0) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (par.Names.$length > 0) { */ case 25: + $r = p.identList(par.Names, ws === 62); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 26: + $r = p.expr(stripParensAlways(par.Type)); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + prevLine = parLineEnd; + _i++; + $s = 6; continue; + case 7: + _r$7 = p.lineFor(fields.Closing); /* */ $s = 30; case 30: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + closing = _r$7; + /* */ if (0 < prevLine && prevLine < closing) { $s = 31; continue; } + /* */ if ((mode === 2) && (fields.NumFields() === 1) && combinesWithName((x = fields.List, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).Type)) { $s = 32; continue; } + /* */ $s = 33; continue; + /* if (0 < prevLine && prevLine < closing) { */ case 31: + $r = p.print(new sliceType$1([new token.Token(52)])); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$8 = p.linebreak(closing, 0, 0, true); /* */ $s = 35; case 35: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$8; + $s = 33; continue; + /* } else if ((mode === 2) && (fields.NumFields() === 1) && combinesWithName((x = fields.List, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).Type)) { */ case 32: + $r = p.print(new sliceType$1([new token.Token(52)])); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 33: + /* */ if (ws === 0) { $s = 37; continue; } + /* */ $s = 38; continue; + /* if (ws === 0) { */ case 37: + $r = p.print(new sliceType$1([new whiteSpace(60)])); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 38: /* } */ case 4: - /* */ if (ityp === ptrType$13.nil) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (ityp === ptrType$13.nil) { */ case 5: - _r$2 = NewInterfaceType(sliceType.nil, new sliceType$3([bound])); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - ityp = _r$2; - ityp.implicit = true; - t.bound = ityp; - /* } */ case 6: - /* */ if (ityp.tset === ptrType$8.nil) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (ityp.tset === ptrType$8.nil) { */ case 8: - pos = t.obj.object.pos; - _tuple = $assertType(bound, ptrType$9, true); - n = _tuple[0]; - if (!(n === ptrType$9.nil)) { - pos = n.obj.object.pos; - } - _r$3 = computeInterfaceTypeSet(t.check, pos, ityp); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$3; - /* } */ case 9: - $s = -1; return ityp; - /* */ } return; } var $f = {$blk: iface, $c: true, $r, _r$1, _r$2, _r$3, _ref, _tuple, bound, ityp, n, pos, t, u, u$1, $s};return $f; - }; - $ptrType(TypeParam).prototype.is = function is$1(f) { - var {$24r, _r$1, _r$2, _r$3, f, t, $s, $r, $c} = $restore(this, {f}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = t.iface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = _r$1.typeSet(); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = _r$2.is(f); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r = _r$3; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: is$1, $c: true, $r, $24r, _r$1, _r$2, _r$3, f, t, $s};return $f; - }; - $ptrType(TypeParam).prototype.underIs = function underIs$2(f) { - var {$24r, _r$1, _r$2, _r$3, f, t, $s, $r, $c} = $restore(this, {f}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = t.iface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = _r$1.typeSet(); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = _r$2.underIs(f); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r = _r$3; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: underIs$2, $c: true, $r, $24r, _r$1, _r$2, _r$3, f, t, $s};return $f; - }; - $ptrType(TypeParamList).prototype.Len = function Len$2() { - var l; - l = this; - return l.list().$length; - }; - $ptrType(TypeParamList).prototype.At = function At(i) { - var i, l, x; - l = this; - return (x = l.tparams, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + $r = p.setPos(fields.Closing); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(closeTok)])); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: parameters, $c: true, $r, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _v, closeTok, closing, fields, i, mode, needsLinebreak, openTok, p, par, parLineBeg, parLineEnd, prevLine, ws, x, $s};return $f; }; - $ptrType(TypeParamList).prototype.list = function list() { - var l; - l = this; - if (l === ptrType$48.nil) { - return sliceType$9.nil; + combinesWithName = function combinesWithName$1(x) { + var _ref, x, x$1, x$2, x$3; + _ref = x; + if ($assertType(_ref, ptrType$19, true)[1]) { + x$1 = _ref.$val; + return !isTypeElem(x$1.X); + } else if ($assertType(_ref, ptrType$20, true)[1]) { + x$2 = _ref.$val; + return combinesWithName(x$2.X) && !isTypeElem(x$2.Y); + } else if ($assertType(_ref, ptrType$21, true)[1]) { + x$3 = _ref.$val; + $panic(new $String("unexpected parenthesized expression")); } - return l.tparams; + return false; }; - newTypeList = function newTypeList$1(list$1) { - var list$1; - if (list$1.$length === 0) { - return ptrType$56.nil; + isTypeElem = function isTypeElem$1(x) { + var _ref, x, x$1, x$2, x$3, x$4; + _ref = x; + if ($assertType(_ref, ptrType$22, true)[1] || $assertType(_ref, ptrType$23, true)[1] || $assertType(_ref, ptrType$24, true)[1] || $assertType(_ref, ptrType$25, true)[1] || $assertType(_ref, ptrType$26, true)[1] || $assertType(_ref, ptrType$27, true)[1]) { + x$1 = _ref; + return true; + } else if ($assertType(_ref, ptrType$28, true)[1]) { + x$2 = _ref.$val; + return x$2.Op === 88; + } else if ($assertType(_ref, ptrType$20, true)[1]) { + x$3 = _ref.$val; + return isTypeElem(x$3.X) || isTypeElem(x$3.Y); + } else if ($assertType(_ref, ptrType$21, true)[1]) { + x$4 = _ref.$val; + return isTypeElem(x$4.X); } - return new TypeList.ptr(list$1); - }; - $ptrType(TypeList).prototype.Len = function Len$3() { - var l; - l = this; - return l.list().$length; - }; - $ptrType(TypeList).prototype.At = function At$1(i) { - var i, l, x; - l = this; - return (x = l.types, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + return false; }; - $ptrType(TypeList).prototype.list = function list$1() { - var l; - l = this; - if (l === ptrType$56.nil) { - return sliceType$3.nil; - } - return l.types; + $ptrType(printer).prototype.signature = function signature(sig) { + var {n, p, res, sig, x, x$1, $s, $r, $c} = $restore(this, {sig}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + /* */ if (!(sig.TypeParams === ptrType$29.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(sig.TypeParams === ptrType$29.nil)) { */ case 1: + $r = p.parameters(sig.TypeParams, 1); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + /* */ if (!(sig.Params === ptrType$29.nil)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!(sig.Params === ptrType$29.nil)) { */ case 4: + $r = p.parameters(sig.Params, 0); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 6; continue; + /* } else { */ case 5: + $r = p.print(new sliceType$1([new token.Token(49), new token.Token(54)])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + res = sig.Results; + n = res.NumFields(); + /* */ if (n > 0) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (n > 0) { */ case 9: + $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if ((n === 1) && (x = res.List, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).Names === sliceType$8.nil) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if ((n === 1) && (x = res.List, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).Names === sliceType$8.nil) { */ case 12: + $r = p.expr(stripParensAlways((x$1 = res.List, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])).Type)); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 13: + $r = p.parameters(res, 0); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 10: + $s = -1; return; + /* */ } return; } var $f = {$blk: signature, $c: true, $r, n, p, res, sig, x, x$1, $s};return $f; }; - bindTParams = function bindTParams$1(list$2) { - var _i, _ref, i, list$2, typ$2; - if (list$2.$length === 0) { - return ptrType$48.nil; - } - _ref = list$2; + identListSize = function identListSize$1(list, maxSize) { + var _i, _ref, i, list, maxSize, size, x; + size = 0; + _ref = list; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } i = _i; - typ$2 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (typ$2.index >= 0) { - $panic(new $String("type parameter bound more than once")); + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (i > 0) { + size = size + (2) >> 0; + } + size = size + (utf8.RuneCountInString(x.Name)) >> 0; + if (size >= maxSize) { + break; } - typ$2.index = i; _i++; } - return new TypeParamList.ptr(list$2); - }; - under = function under$1(t) { - var {$24r, $24r$1, _r$1, _r$2, _tuple, t, t$1, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _tuple = $assertType(t, ptrType$9, true); - t$1 = _tuple[0]; - /* */ if (!(t$1 === ptrType$9.nil)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(t$1 === ptrType$9.nil)) { */ case 1: - _r$1 = t$1.under(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 4; case 4: return $24r; - /* } */ case 2: - _r$2 = t.Underlying(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r$1 = _r$2; - $s = 6; case 6: return $24r$1; - /* */ } return; } var $f = {$blk: under$1, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _tuple, t, t$1, $s};return $f; - }; - coreType = function coreType$1(t) { - var {$24r, _r$1, _r$2, _tuple, su, t, tpar, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - su = [su]; - _tuple = $assertType(t, ptrType$14, true); - tpar = _tuple[0]; - /* */ if (tpar === ptrType$14.nil) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (tpar === ptrType$14.nil) { */ case 1: - _r$1 = under(t); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 4; case 4: return $24r; - /* } */ case 2: - su[0] = $ifaceNil; - _r$2 = tpar.underIs((function(su) { return function coreType·func1(u) { - var {_r$2, u, $s, $r, $c} = $restore(this, {u}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if ($interfaceIsEqual(u, $ifaceNil)) { - $s = -1; return false; - } - /* */ if (!($interfaceIsEqual(su[0], $ifaceNil))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!($interfaceIsEqual(su[0], $ifaceNil))) { */ case 1: - _r$2 = match(su[0], u); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - u = _r$2; - if ($interfaceIsEqual(u, $ifaceNil)) { - $s = -1; return false; - } - /* } */ case 2: - su[0] = u; - $s = -1; return true; - /* */ } return; } var $f = {$blk: coreType·func1, $c: true, $r, _r$2, u, $s};return $f; - }; })(su)); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (_r$2) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (_r$2) { */ case 5: - $s = -1; return su[0]; - /* } */ case 6: - $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: coreType$1, $c: true, $r, $24r, _r$1, _r$2, _tuple, su, t, tpar, $s};return $f; - }; - coreString = function coreString$1(t) { - var {$24r, _r$1, _r$2, _tuple, hasString, su, t, tpar, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - hasString = [hasString]; - su = [su]; - _tuple = $assertType(t, ptrType$14, true); - tpar = _tuple[0]; - /* */ if (tpar === ptrType$14.nil) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (tpar === ptrType$14.nil) { */ case 1: - _r$1 = under(t); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 4; case 4: return $24r; - /* } */ case 2: - su[0] = $ifaceNil; - hasString[0] = false; - _r$2 = tpar.underIs((function(hasString, su) { return function coreString·func1(u) { - var {_r$2, _r$3, u, $s, $r, $c} = $restore(this, {u}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if ($interfaceIsEqual(u, $ifaceNil)) { - $s = -1; return false; - } - _r$2 = isString(u); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (_r$2) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (_r$2) { */ case 1: - u = NewSlice(universeByte); - hasString[0] = true; - /* } */ case 2: - /* */ if (!($interfaceIsEqual(su[0], $ifaceNil))) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (!($interfaceIsEqual(su[0], $ifaceNil))) { */ case 4: - _r$3 = match(su[0], u); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - u = _r$3; - if ($interfaceIsEqual(u, $ifaceNil)) { - $s = -1; return false; - } - /* } */ case 5: - su[0] = u; - $s = -1; return true; - /* */ } return; } var $f = {$blk: coreString·func1, $c: true, $r, _r$2, _r$3, u, $s};return $f; - }; })(hasString, su)); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (_r$2) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (_r$2) { */ case 5: - if (hasString[0]) { - $s = -1; return (17 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 17]); - } - $s = -1; return su[0]; - /* } */ case 6: - $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: coreString$1, $c: true, $r, $24r, _r$1, _r$2, _tuple, hasString, su, t, tpar, $s};return $f; + return size; }; - match = function match$1(x, y) { - var {_r$1, _r$2, _tuple, _tuple$1, _v, x, x$1, y, y$1, $s, $r, $c} = $restore(this, {x, y}); + $ptrType(printer).prototype.isOneLineFieldList = function isOneLineFieldList(list) { + var {_r, f, list, namesSize, p, typeSize, $s, $r, $c} = $restore(this, {list}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = Identical(x, y); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (_r$1) { */ case 1: - $s = -1; return x; - /* } */ case 2: - _tuple = $assertType(x, ptrType$29, true); - x$1 = _tuple[0]; - /* */ if (!(x$1 === ptrType$29.nil)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (!(x$1 === ptrType$29.nil)) { */ case 4: - _tuple$1 = $assertType(y, ptrType$29, true); - y$1 = _tuple$1[0]; - if (!(!(y$1 === ptrType$29.nil))) { _v = false; $s = 8; continue s; } - _r$2 = Identical(x$1.elem, y$1.elem); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _v = _r$2; case 8: - /* */ if (_v) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (_v) { */ case 6: - if ((x$1.dir === 0)) { - $s = -1; return y$1; - } else if ((y$1.dir === 0)) { - $s = -1; return x$1; - } - /* } */ case 7: - /* } */ case 5: - $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: match$1, $c: true, $r, _r$1, _r$2, _tuple, _tuple$1, _v, x, x$1, y, y$1, $s};return $f; - }; - NewTuple = function NewTuple$1(x) { - var x; - if (x.$length > 0) { - return new Tuple.ptr(x); + p = this; + if (!((list.$length === 1))) { + $s = -1; return false; } - return ptrType$15.nil; - }; - $pkg.NewTuple = NewTuple; - $ptrType(Tuple).prototype.Len = function Len$4() { - var t; - t = this; - if (!(t === ptrType$15.nil)) { - return t.vars.$length; + f = (0 >= list.$length ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + 0]); + if (!(f.Tag === ptrType$5.nil) || !(f.Comment === ptrType$2.nil)) { + $s = -1; return false; } - return 0; - }; - $ptrType(Tuple).prototype.At = function At$2(i) { - var i, t, x; - t = this; - return (x = t.vars, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + namesSize = identListSize(f.Names, 30); + if (namesSize > 0) { + namesSize = 1; + } + _r = p.nodeSize(f.Type, 30); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + typeSize = _r; + $s = -1; return (namesSize + typeSize >> 0) <= 30; + /* */ } return; } var $f = {$blk: isOneLineFieldList, $c: true, $r, _r, f, list, namesSize, p, typeSize, $s};return $f; }; - $ptrType(Tuple).prototype.Underlying = function Underlying$2() { - var t; - t = this; - return t; + $ptrType(printer).prototype.setLineComment = function setLineComment(text) { + var {p, text, $s, $r, $c} = $restore(this, {text}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + $r = p.setComment(new ast.CommentGroup.ptr(new sliceType$9([new ast.Comment.ptr(0, text)]))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: setLineComment, $c: true, $r, p, text, $s};return $f; }; - $ptrType(Tuple).prototype.String = function String$6() { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); + $ptrType(printer).prototype.fieldList = function fieldList(fields, isStruct, isIncomplete) { + var {_i, _i$1, _i$2, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _v, _v$1, extraTabs, f, f$1, f$2, fields, hasComments, i, i$1, i$2, isIncomplete, isStruct, lbrace, line, line$1, list, min, name, name$1, p, prev, rbrace, sep, srcIsOneLine, x, x$1, x$2, $s, $r, $c} = $restore(this, {fields, isStruct, isIncomplete}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = TypeString(t, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$6, $c: true, $r, $24r, _r$1, t, $s};return $f; + line = [line]; + line$1 = [line$1]; + p = this; + lbrace = fields.Opening; + list = fields.List; + rbrace = fields.Closing; + if (isIncomplete) { _v = true; $s = 1; continue s; } + _r = p.posFor(rbrace); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = p.commentBefore($clone(_r, token.Position)); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = _r$1; case 1: + hasComments = _v; + if (!(new token.Pos(lbrace).IsValid() && new token.Pos(rbrace).IsValid())) { _v$1 = false; $s = 4; continue s; } + _r$2 = p.lineFor(lbrace); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = p.lineFor(rbrace); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v$1 = _r$2 === _r$3; case 4: + srcIsOneLine = _v$1; + /* */ if (!hasComments && srcIsOneLine) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!hasComments && srcIsOneLine) { */ case 7: + /* */ if (list.$length === 0) { $s = 9; continue; } + _r$4 = p.isOneLineFieldList(list); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (_r$4) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (list.$length === 0) { */ case 9: + $r = p.setPos(lbrace); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(51)])); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.setPos(rbrace); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(56)])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } else if (_r$4) { */ case 10: + $r = p.setPos(lbrace); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(51), new whiteSpace(32)])); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + f = (0 >= list.$length ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + 0]); + /* */ if (isStruct) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (isStruct) { */ case 19: + _ref = f.Names; + _i = 0; + /* while (true) { */ case 22: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 23; continue; } + i = _i; + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + /* */ if (i > 0) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (i > 0) { */ case 24: + $r = p.print(new sliceType$1([new token.Token(52), new whiteSpace(32)])); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 25: + $r = p.expr(x); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 22; continue; + case 23: + /* */ if (f.Names.$length > 0) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (f.Names.$length > 0) { */ case 28: + $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 29: + $r = p.expr(f.Type); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 21; continue; + /* } else { */ case 20: + /* */ if (f.Names.$length > 0) { $s = 32; continue; } + /* */ $s = 33; continue; + /* if (f.Names.$length > 0) { */ case 32: + name = (x$1 = f.Names, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])); + $r = p.expr(name); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.signature($assertType(f.Type, ptrType$24)); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 34; continue; + /* } else { */ case 33: + $r = p.expr(f.Type); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 34: + /* } */ case 21: + $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.setPos(rbrace); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(56)])); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 11: + /* } */ case 8: + $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.setPos(lbrace); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(51), new whiteSpace(62)])); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (hasComments || list.$length > 0) { $s = 44; continue; } + /* */ $s = 45; continue; + /* if (hasComments || list.$length > 0) { */ case 44: + $r = p.print(new sliceType$1([new whiteSpace(12)])); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 45: + /* */ if (isStruct) { $s = 47; continue; } + /* */ $s = 48; continue; + /* if (isStruct) { */ case 47: + sep = 11; + if (list.$length === 1) { + sep = 32; + } + line[0] = 0; + _ref$1 = list; + _i$1 = 0; + /* while (true) { */ case 50: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 51; continue; } + i$1 = _i$1; + f$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + /* */ if (i$1 > 0) { $s = 52; continue; } + /* */ $s = 53; continue; + /* if (i$1 > 0) { */ case 52: + _r$5 = f$1.Pos(); /* */ $s = 54; case 54: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$6 = p.lineFor(_r$5); /* */ $s = 55; case 55: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$7 = p.linebreak(_r$6, 1, 0, p.linesFrom(line[0]) > 0); /* */ $s = 56; case 56: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$7; + /* } */ case 53: + extraTabs = 0; + $r = p.setComment(f$1.Doc); /* */ $s = 57; case 57: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + p.recordLine((line.$ptr || (line.$ptr = new ptrType$1(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, line)))); + /* */ if (f$1.Names.$length > 0) { $s = 58; continue; } + /* */ $s = 59; continue; + /* if (f$1.Names.$length > 0) { */ case 58: + $r = p.identList(f$1.Names, false); /* */ $s = 61; case 61: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new whiteSpace(sep)])); /* */ $s = 62; case 62: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.expr(f$1.Type); /* */ $s = 63; case 63: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + extraTabs = 1; + $s = 60; continue; + /* } else { */ case 59: + $r = p.expr(f$1.Type); /* */ $s = 64; case 64: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + extraTabs = 2; + /* } */ case 60: + /* */ if (!(f$1.Tag === ptrType$5.nil)) { $s = 65; continue; } + /* */ $s = 66; continue; + /* if (!(f$1.Tag === ptrType$5.nil)) { */ case 65: + /* */ if (f$1.Names.$length > 0 && (sep === 11)) { $s = 67; continue; } + /* */ $s = 68; continue; + /* if (f$1.Names.$length > 0 && (sep === 11)) { */ case 67: + $r = p.print(new sliceType$1([new whiteSpace(sep)])); /* */ $s = 69; case 69: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 68: + $r = p.print(new sliceType$1([new whiteSpace(sep)])); /* */ $s = 70; case 70: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.expr(f$1.Tag); /* */ $s = 71; case 71: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + extraTabs = 0; + /* } */ case 66: + /* */ if (!(f$1.Comment === ptrType$2.nil)) { $s = 72; continue; } + /* */ $s = 73; continue; + /* if (!(f$1.Comment === ptrType$2.nil)) { */ case 72: + /* while (true) { */ case 74: + /* if (!(extraTabs > 0)) { break; } */ if(!(extraTabs > 0)) { $s = 75; continue; } + $r = p.print(new sliceType$1([new whiteSpace(sep)])); /* */ $s = 76; case 76: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + extraTabs = extraTabs - (1) >> 0; + $s = 74; continue; + case 75: + $r = p.setComment(f$1.Comment); /* */ $s = 77; case 77: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 73: + _i$1++; + $s = 50; continue; + case 51: + /* */ if (isIncomplete) { $s = 78; continue; } + /* */ $s = 79; continue; + /* if (isIncomplete) { */ case 78: + /* */ if (list.$length > 0) { $s = 80; continue; } + /* */ $s = 81; continue; + /* if (list.$length > 0) { */ case 80: + $r = p.print(new sliceType$1([new whiteSpace(12)])); /* */ $s = 82; case 82: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 81: + _r$8 = p.posFor(rbrace); /* */ $s = 83; case 83: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$9 = p.flush($clone(_r$8, token.Position), 56); /* */ $s = 84; case 84: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$9; + $r = p.setLineComment("// contains filtered or unexported fields"); /* */ $s = 85; case 85: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 79: + $s = 49; continue; + /* } else { */ case 48: + line$1[0] = 0; + prev = ptrType$4.nil; + _ref$2 = list; + _i$2 = 0; + /* while (true) { */ case 86: + /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 87; continue; } + i$2 = _i$2; + f$2 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); + name$1 = ptrType$4.nil; + if (f$2.Names.$length > 0) { + name$1 = (x$2 = f$2.Names, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])); + } + /* */ if (i$2 > 0) { $s = 88; continue; } + /* */ $s = 89; continue; + /* if (i$2 > 0) { */ case 88: + min = 1; + if (!(prev === ptrType$4.nil) && name$1 === prev) { + min = 0; + } + _r$10 = f$2.Pos(); /* */ $s = 90; case 90: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$11 = p.lineFor(_r$10); /* */ $s = 91; case 91: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _r$12 = p.linebreak(_r$11, min, 0, p.linesFrom(line$1[0]) > 0); /* */ $s = 92; case 92: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _r$12; + /* } */ case 89: + $r = p.setComment(f$2.Doc); /* */ $s = 93; case 93: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + p.recordLine((line$1.$ptr || (line$1.$ptr = new ptrType$1(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, line$1)))); + /* */ if (!(name$1 === ptrType$4.nil)) { $s = 94; continue; } + /* */ $s = 95; continue; + /* if (!(name$1 === ptrType$4.nil)) { */ case 94: + $r = p.expr(name$1); /* */ $s = 97; case 97: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.signature($assertType(f$2.Type, ptrType$24)); /* */ $s = 98; case 98: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + prev = ptrType$4.nil; + $s = 96; continue; + /* } else { */ case 95: + $r = p.expr(f$2.Type); /* */ $s = 99; case 99: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + prev = ptrType$4.nil; + /* } */ case 96: + $r = p.setComment(f$2.Comment); /* */ $s = 100; case 100: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$2++; + $s = 86; continue; + case 87: + /* */ if (isIncomplete) { $s = 101; continue; } + /* */ $s = 102; continue; + /* if (isIncomplete) { */ case 101: + /* */ if (list.$length > 0) { $s = 103; continue; } + /* */ $s = 104; continue; + /* if (list.$length > 0) { */ case 103: + $r = p.print(new sliceType$1([new whiteSpace(12)])); /* */ $s = 105; case 105: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 104: + _r$13 = p.posFor(rbrace); /* */ $s = 106; case 106: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _r$14 = p.flush($clone(_r$13, token.Position), 56); /* */ $s = 107; case 107: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _r$14; + $r = p.setLineComment("// contains filtered or unexported methods"); /* */ $s = 108; case 108: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 102: + /* } */ case 49: + $r = p.print(new sliceType$1([new whiteSpace(60), new whiteSpace(12)])); /* */ $s = 109; case 109: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.setPos(rbrace); /* */ $s = 110; case 110: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(56)])); /* */ $s = 111; case 111: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: fieldList, $c: true, $r, _i, _i$1, _i$2, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _v, _v$1, extraTabs, f, f$1, f$2, fields, hasComments, i, i$1, i$2, isIncomplete, isStruct, lbrace, line, line$1, list, min, name, name$1, p, prev, rbrace, sep, srcIsOneLine, x, x$1, x$2, $s};return $f; }; - termlist.prototype.String = function String$7() { - var {_i, _r$1, _r$2, _ref, buf, i, x, xl, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - xl = this; - if (xl.$length === 0) { - $s = -1; return "\xE2\x88\x85"; + walkBinary = function walkBinary$1(e) { + var _1, _2, _ref, _ref$1, _tuple, _tuple$1, e, h4, h4$1, h5, h5$1, has4, has5, l, maxProblem, mp, mp$1, r, r$1, r$2; + has4 = false; + has5 = false; + maxProblem = 0; + _1 = new token.Token(e.Op).Precedence(); + if (_1 === (4)) { + has4 = true; + } else if (_1 === (5)) { + has5 = true; } - buf = new strings.Builder.ptr(ptrType$53.nil, sliceType$14.nil); - _ref = xl; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (i > 0) { - buf.WriteString(" | "); + _ref = e.X; + switch (0) { default: if ($assertType(_ref, ptrType$20, true)[1]) { + l = _ref.$val; + if (new token.Token(l.Op).Precedence() < new token.Token(e.Op).Precedence()) { + break; } - _r$1 = x.String(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = buf.WriteString(_r$1); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - _i++; - $s = 1; continue; - case 2: - $s = -1; return buf.String(); - /* */ } return; } var $f = {$blk: String$7, $c: true, $r, _i, _r$1, _r$2, _ref, buf, i, x, xl, $s};return $f; - }; - $ptrType(termlist).prototype.String = function(...$args) { return this.$get().String(...$args); }; - termlist.prototype.isEmpty = function isEmpty() { - var _i, _ref, x, xl; - xl = this; - _ref = xl; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (!(x === ptrType$5.nil)) { - return false; + _tuple = walkBinary(l); + h4 = _tuple[0]; + h5 = _tuple[1]; + mp = _tuple[2]; + has4 = has4 || h4; + has5 = has5 || h5; + if (maxProblem < mp) { + maxProblem = mp; } - _i++; - } - return true; - }; - $ptrType(termlist).prototype.isEmpty = function(...$args) { return this.$get().isEmpty(...$args); }; - termlist.prototype.isAll = function isAll() { - var _i, _ref, x, xl; - xl = this; - _ref = xl; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (!(x === ptrType$5.nil) && $interfaceIsEqual(x.typ, $ifaceNil)) { - return true; + } } + _ref$1 = e.Y; + switch (0) { default: if ($assertType(_ref$1, ptrType$20, true)[1]) { + r = _ref$1.$val; + if (new token.Token(r.Op).Precedence() <= new token.Token(e.Op).Precedence()) { + break; } - _i++; - } - return false; - }; - $ptrType(termlist).prototype.isAll = function(...$args) { return this.$get().isAll(...$args); }; - termlist.prototype.norm = function norm() { - var {_i, _r$1, _ref, _tuple, i, j, rl, u1, u2, used, xi, xj, xl, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - xl = this; - used = $makeSlice(sliceType$15, xl.$length); - rl = termlist.nil; - _ref = xl; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - xi = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (xi === ptrType$5.nil || ((i < 0 || i >= used.$length) ? ($throwRuntimeError("index out of range"), undefined) : used.$array[used.$offset + i])) { - _i++; - /* continue; */ $s = 1; continue; + _tuple$1 = walkBinary(r); + h4$1 = _tuple$1[0]; + h5$1 = _tuple$1[1]; + mp$1 = _tuple$1[2]; + has4 = has4 || h4$1; + has5 = has5 || h5$1; + if (maxProblem < mp$1) { + maxProblem = mp$1; } - j = i + 1 >> 0; - /* while (true) { */ case 3: - /* if (!(j < xl.$length)) { break; } */ if(!(j < xl.$length)) { $s = 4; continue; } - xj = ((j < 0 || j >= xl.$length) ? ($throwRuntimeError("index out of range"), undefined) : xl.$array[xl.$offset + j]); - if (xj === ptrType$5.nil || ((j < 0 || j >= used.$length) ? ($throwRuntimeError("index out of range"), undefined) : used.$array[used.$offset + j])) { - j = j + (1) >> 0; - /* continue; */ $s = 3; continue; - } - _r$1 = xi.union(xj); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - u1 = _tuple[0]; - u2 = _tuple[1]; - if (u2 === ptrType$5.nil) { - if ($interfaceIsEqual(u1.typ, $ifaceNil)) { - $s = -1; return allTermlist; - } - xi = u1; - ((j < 0 || j >= used.$length) ? ($throwRuntimeError("index out of range"), undefined) : used.$array[used.$offset + j] = true); - } - j = j + (1) >> 0; - $s = 3; continue; - case 4: - rl = $append(rl, xi); - _i++; - $s = 1; continue; - case 2: - $s = -1; return rl; - /* */ } return; } var $f = {$blk: norm, $c: true, $r, _i, _r$1, _ref, _tuple, i, j, rl, u1, u2, used, xi, xj, xl, $s};return $f; - }; - $ptrType(termlist).prototype.norm = function(...$args) { return this.$get().norm(...$args); }; - termlist.prototype.union = function union$1(yl) { - var {$24r, _r$1, xl, yl, $s, $r, $c} = $restore(this, {yl}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - xl = this; - _r$1 = $appendSlice(xl, $convertSliceType(yl, sliceType$16)).norm(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: union$1, $c: true, $r, $24r, _r$1, xl, yl, $s};return $f; - }; - $ptrType(termlist).prototype.union = function(...$args) { return this.$get().union(...$args); }; - termlist.prototype.intersect = function intersect$1(yl) { - var {$24r, _i, _i$1, _r$1, _r$2, _ref, _ref$1, r, rl, x, xl, y, yl, $s, $r, $c} = $restore(this, {yl}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - xl = this; - if (xl.isEmpty() || yl.isEmpty()) { - $s = -1; return termlist.nil; - } - rl = termlist.nil; - _ref = xl; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _ref$1 = yl; - _i$1 = 0; - /* while (true) { */ case 3: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 4; continue; } - y = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - _r$1 = x.intersect(y); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - r = _r$1; - if (!(r === ptrType$5.nil)) { - rl = $append(rl, r); + } else if ($assertType(_ref$1, ptrType$19, true)[1]) { + r$1 = _ref$1.$val; + if (e.Op === 15) { + maxProblem = 5; + } + } else if ($assertType(_ref$1, ptrType$28, true)[1]) { + r$2 = _ref$1.$val; + _2 = new token.Token(e.Op).String() + new token.Token(r$2.Op).String(); + if (_2 === ("/*") || _2 === ("&&") || _2 === ("&^")) { + maxProblem = 5; + } else if (_2 === ("++") || _2 === ("--")) { + if (maxProblem < 4) { + maxProblem = 4; } - _i$1++; - $s = 3; continue; - case 4: - _i++; - $s = 1; continue; - case 2: - _r$2 = rl.norm(); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 7; case 7: return $24r; - /* */ } return; } var $f = {$blk: intersect$1, $c: true, $r, $24r, _i, _i$1, _r$1, _r$2, _ref, _ref$1, r, rl, x, xl, y, yl, $s};return $f; - }; - $ptrType(termlist).prototype.intersect = function(...$args) { return this.$get().intersect(...$args); }; - termlist.prototype.equal = function equal$1(yl) { - var {$24r, _r$1, _r$2, _v, xl, yl, $s, $r, $c} = $restore(this, {yl}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - xl = this; - _r$1 = xl.subsetOf(yl); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - if (!(_r$1)) { _v = false; $s = 1; continue s; } - _r$2 = yl.subsetOf(xl); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _v = _r$2; case 1: - $24r = _v; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: equal$1, $c: true, $r, $24r, _r$1, _r$2, _v, xl, yl, $s};return $f; - }; - $ptrType(termlist).prototype.equal = function(...$args) { return this.$get().equal(...$args); }; - termlist.prototype.includes = function includes$1(t) { - var {_i, _r$1, _ref, t, x, xl, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - xl = this; - _ref = xl; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$1 = x.includes(t); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (_r$1) { */ case 3: - $s = -1; return true; - /* } */ case 4: - _i++; - $s = 1; continue; - case 2: - $s = -1; return false; - /* */ } return; } var $f = {$blk: includes$1, $c: true, $r, _i, _r$1, _ref, t, x, xl, $s};return $f; - }; - $ptrType(termlist).prototype.includes = function(...$args) { return this.$get().includes(...$args); }; - termlist.prototype.supersetOf = function supersetOf(y) { - var {_i, _r$1, _ref, x, xl, y, $s, $r, $c} = $restore(this, {y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - xl = this; - _ref = xl; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$1 = y.subsetOf(x); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (_r$1) { */ case 3: - $s = -1; return true; - /* } */ case 4: - _i++; - $s = 1; continue; - case 2: - $s = -1; return false; - /* */ } return; } var $f = {$blk: supersetOf, $c: true, $r, _i, _r$1, _ref, x, xl, y, $s};return $f; + } + } } + return [has4, has5, maxProblem]; }; - $ptrType(termlist).prototype.supersetOf = function(...$args) { return this.$get().supersetOf(...$args); }; - termlist.prototype.subsetOf = function subsetOf$2(yl) { - var {_i, _r$1, _ref, x, xl, yl, $s, $r, $c} = $restore(this, {yl}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - xl = this; - if (yl.isEmpty()) { - $s = -1; return xl.isEmpty(); + cutoff = function cutoff$1(e, depth) { + var _tuple, depth, e, has4, has5, maxProblem; + _tuple = walkBinary(e); + has4 = _tuple[0]; + has5 = _tuple[1]; + maxProblem = _tuple[2]; + if (maxProblem > 0) { + return maxProblem + 1 >> 0; } - _ref = xl; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$1 = yl.supersetOf(x); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (!_r$1) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!_r$1) { */ case 3: - $s = -1; return false; - /* } */ case 4: - _i++; - $s = 1; continue; - case 2: - $s = -1; return true; - /* */ } return; } var $f = {$blk: subsetOf$2, $c: true, $r, _i, _r$1, _ref, x, xl, yl, $s};return $f; - }; - $ptrType(termlist).prototype.subsetOf = function(...$args) { return this.$get().subsetOf(...$args); }; - makeSubstMap = function makeSubstMap$1(tpars, targs) { - var {_i, _key, _ref, i, proj, targs, tpar, tpars, x, $s, $r, $c} = $restore(this, {tpars, targs}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = assert(tpars.$length === targs.$length); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - proj = (x = tpars.$length, ((x < 0 || x > 2147483647) ? $throwRuntimeError("makemap: size out of range") : new $global.Map())); - _ref = tpars; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - tpar = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _key = tpar; (proj || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$14.keyFor(_key), { k: _key, v: ((i < 0 || i >= targs.$length) ? ($throwRuntimeError("index out of range"), undefined) : targs.$array[targs.$offset + i]) }); - _i++; + if (has4 && has5) { + if (depth === 1) { + return 5; + } + return 4; } - $s = -1; return proj; - /* */ } return; } var $f = {$blk: makeSubstMap$1, $c: true, $r, _i, _key, _ref, i, proj, targs, tpar, tpars, x, $s};return $f; - }; - makeRenameMap = function makeRenameMap$1(from, to) { - var {_i, _key, _ref, from, i, proj, to, tpar, x, $s, $r, $c} = $restore(this, {from, to}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = assert(from.$length === to.$length); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - proj = (x = from.$length, ((x < 0 || x > 2147483647) ? $throwRuntimeError("makemap: size out of range") : new $global.Map())); - _ref = from; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - tpar = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _key = tpar; (proj || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$14.keyFor(_key), { k: _key, v: ((i < 0 || i >= to.$length) ? ($throwRuntimeError("index out of range"), undefined) : to.$array[to.$offset + i]) }); - _i++; + if (depth === 1) { + return 6; } - $s = -1; return proj; - /* */ } return; } var $f = {$blk: makeRenameMap$1, $c: true, $r, _i, _key, _ref, from, i, proj, to, tpar, x, $s};return $f; - }; - substMap.prototype.empty = function empty() { - var m; - m = this.$val; - return (m ? m.size : 0) === 0; + return 4; }; - $ptrType(substMap).prototype.empty = function(...$args) { return new substMap(this.$get()).empty(...$args); }; - substMap.prototype.lookup = function lookup(tpar) { - var _entry, m, t, tpar; - m = this.$val; - t = (_entry = $mapIndex(m,ptrType$14.keyFor(tpar)), _entry !== undefined ? _entry.v : $ifaceNil); - if (!($interfaceIsEqual(t, $ifaceNil))) { - return t; + diffPrec = function diffPrec$1(expr, prec) { + var _tuple, expr, ok, prec, x; + _tuple = $assertType(expr, ptrType$20, true); + x = _tuple[0]; + ok = _tuple[1]; + if (!ok || !((prec === new token.Token(x.Op).Precedence()))) { + return 1; } - return tpar; + return 0; }; - $ptrType(substMap).prototype.lookup = function(...$args) { return new substMap(this.$get()).lookup(...$args); }; - $ptrType(Checker).prototype.subst = function subst(pos, typ$2, smap, expanding, ctxt) { - var {$24r, _r$1, _ref, check, ctxt, expanding, pos, smap, subst$1, t, t$1, typ$2, $s, $r, $c} = $restore(this, {pos, typ$2, smap, expanding, ctxt}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - $r = assert(!(expanding === ptrType$9.nil) || !(ctxt === ptrType$51.nil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (new substMap(smap).empty()) { - $s = -1; return typ$2; - } - _ref = typ$2; - if ($assertType(_ref, ptrType$4, true)[1]) { - t = _ref.$val; - $s = -1; return typ$2; - } else if ($assertType(_ref, ptrType$14, true)[1]) { - t$1 = _ref.$val; - $s = -1; return new substMap(smap).lookup(t$1); + reduceDepth = function reduceDepth$1(depth) { + var depth; + depth = depth - (1) >> 0; + if (depth < 1) { + depth = 1; } - subst$1 = new subster.ptr(pos, smap, check, expanding, ctxt); - _r$1 = subst$1.typ(typ$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: subst, $c: true, $r, $24r, _r$1, _ref, check, ctxt, expanding, pos, smap, subst$1, t, t$1, typ$2, $s};return $f; - }; - $ptrType(subster).prototype.typ = function typ$2(typ$3) { - var {$24r, $24r$1, _i, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, base, copied, copied$1, dump, ecopied, elem, elem$1, elem$2, elem$3, embeddeds, fields, i, iface$1, key, mcopied, methods, n, newTArgs, new_targ, orig, params, recv, results, s, subst$1, t, t$1, t$10, t$11, t$12, t$13, t$14, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, targ, terms, typ$3, $s, $deferred, $r, $c} = $restore(this, {typ$3}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - subst$1 = [subst$1]; - subst$1[0] = this; - _ref = typ$3; - /* */ if (_ref === $ifaceNil) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType$15, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref, ptrType$12, true)[1]) { $s = 9; continue; } - /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 10; continue; } - /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 11; continue; } - /* */ if ($assertType(_ref, ptrType$29, true)[1]) { $s = 12; continue; } - /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 13; continue; } - /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (_ref === $ifaceNil) { */ case 1: - t = _ref; - $panic(new $String("nil typ")); - $s = 16; continue; - /* } else if ($assertType(_ref, ptrType$4, true)[1]) { */ case 2: - t$1 = _ref.$val; - $s = 16; continue; - /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 3: - t$2 = _ref.$val; - _r$1 = subst$1[0].typOrNil(t$2.elem); /* */ $s = 17; case 17: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - elem = _r$1; - if (!($interfaceIsEqual(elem, t$2.elem))) { - $s = -1; return new Array.ptr(t$2.len, elem); - } - $s = 16; continue; - /* } else if ($assertType(_ref, ptrType$25, true)[1]) { */ case 4: - t$3 = _ref.$val; - _r$2 = subst$1[0].typOrNil(t$3.elem); /* */ $s = 18; case 18: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - elem$1 = _r$2; - if (!($interfaceIsEqual(elem$1, t$3.elem))) { - $s = -1; return new Slice.ptr(elem$1); - } - $s = 16; continue; - /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 5: - t$4 = _ref.$val; - _r$3 = subst$1[0].varList(t$4.fields); /* */ $s = 19; case 19: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple = _r$3; - fields = _tuple[0]; - copied = _tuple[1]; - if (copied) { - s = new Struct.ptr(fields, t$4.tags); - s.markComplete(); - $s = -1; return s; - } - $s = 16; continue; - /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 6: - t$5 = _ref.$val; - _r$4 = subst$1[0].typ(t$5.base); /* */ $s = 20; case 20: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - base = _r$4; - if (!($interfaceIsEqual(base, t$5.base))) { - $s = -1; return new Pointer.ptr(base); - } - $s = 16; continue; - /* } else if ($assertType(_ref, ptrType$15, true)[1]) { */ case 7: - t$6 = _ref.$val; - _r$5 = subst$1[0].tuple(t$6); /* */ $s = 21; case 21: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - $24r = _r$5; - $s = 22; case 22: return $24r; - /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 8: - t$7 = _ref.$val; - recv = t$7.recv; - _r$6 = subst$1[0].tuple(t$7.params); /* */ $s = 23; case 23: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - params = _r$6; - _r$7 = subst$1[0].tuple(t$7.results); /* */ $s = 24; case 24: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - results = _r$7; - if (!(params === t$7.params) || !(results === t$7.results)) { - $s = -1; return new Signature.ptr(t$7.rparams, t$7.tparams, ptrType.nil, recv, params, results, t$7.variadic); - } - $s = 16; continue; - /* } else if ($assertType(_ref, ptrType$12, true)[1]) { */ case 9: - t$8 = _ref.$val; - _r$8 = subst$1[0].termlist(t$8.terms); /* */ $s = 25; case 25: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _tuple$1 = _r$8; - terms = _tuple$1[0]; - copied$1 = _tuple$1[1]; - if (copied$1) { - $s = -1; return new Union.ptr(terms); - } - $s = 16; continue; - /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 10: - t$9 = _ref.$val; - _r$9 = subst$1[0].funcList(t$9.methods); /* */ $s = 26; case 26: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _tuple$2 = _r$9; - methods = _tuple$2[0]; - mcopied = _tuple$2[1]; - _r$10 = subst$1[0].typeList(t$9.embeddeds); /* */ $s = 27; case 27: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _tuple$3 = _r$10; - embeddeds = _tuple$3[0]; - ecopied = _tuple$3[1]; - if (mcopied || ecopied) { - iface$1 = subst$1[0].check.newInterface(); - iface$1.embeddeds = embeddeds; - iface$1.implicit = t$9.implicit; - iface$1.complete = t$9.complete; - _tuple$4 = replaceRecvType(methods, t$9, iface$1); - iface$1.methods = _tuple$4[0]; - $s = -1; return iface$1; - } - $s = 16; continue; - /* } else if ($assertType(_ref, ptrType$28, true)[1]) { */ case 11: - t$10 = _ref.$val; - _r$11 = subst$1[0].typ(t$10.key); /* */ $s = 28; case 28: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - key = _r$11; - _r$12 = subst$1[0].typ(t$10.elem); /* */ $s = 29; case 29: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - elem$2 = _r$12; - if (!($interfaceIsEqual(key, t$10.key)) || !($interfaceIsEqual(elem$2, t$10.elem))) { - $s = -1; return new Map.ptr(key, elem$2); - } - $s = 16; continue; - /* } else if ($assertType(_ref, ptrType$29, true)[1]) { */ case 12: - t$11 = _ref.$val; - _r$13 = subst$1[0].typ(t$11.elem); /* */ $s = 30; case 30: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - elem$3 = _r$13; - if (!($interfaceIsEqual(elem$3, t$11.elem))) { - $s = -1; return new Chan.ptr(t$11.dir, elem$3); - } - $s = 16; continue; - /* } else if ($assertType(_ref, ptrType$9, true)[1]) { */ case 13: - t$12 = _ref.$val; - dump = (function(subst$1) { return function subster·typ·func1(param, param$1) { - var param, param$1; - }; })(subst$1); - /* */ if (!(subst$1[0].check === ptrType$6.nil) && false) { $s = 31; continue; } - /* */ $s = 32; continue; - /* if (!(subst$1[0].check === ptrType$6.nil) && false) { */ case 31: - subst$1[0].check.indent = subst$1[0].check.indent + (1) >> 0; - $deferred.push([(function(subst$1) { return function subster·typ·func2() { - subst$1[0].check.indent = subst$1[0].check.indent - (1) >> 0; - }; })(subst$1), []]); - dump = (function(subst$1) { return function subster·typ·func3(format, args) { - var {args, format, $s, $r, $c} = $restore(this, {format, args}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = subst$1[0].check.trace(subst$1[0].pos, format, args); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: subster·typ·func3, $c: true, $r, args, format, $s};return $f; - }; })(subst$1); - /* } */ case 32: - orig = t$12.Origin(); - _r$14 = orig.TypeParams(); /* */ $s = 33; case 33: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - _r$15 = _r$14.Len(); /* */ $s = 34; case 34: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - n = _r$15; - /* */ if (n === 0) { $s = 35; continue; } - /* */ $s = 36; continue; - /* if (n === 0) { */ case 35: - $r = dump(">>> %s is not parameterized", new sliceType$6([t$12])); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return t$12; - /* } */ case 36: - newTArgs = sliceType$3.nil; - if (!((t$12.TypeArgs().Len() === n))) { - $s = -1; return (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - } - $r = dump(">>> %s already instantiated", new sliceType$6([t$12])); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _ref$1 = t$12.TypeArgs().list(); - _i = 0; - /* while (true) { */ case 39: - /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 40; continue; } - i = _i; - targ = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); - $r = dump(">>> %d targ = %s", new sliceType$6([new $Int(i), targ])); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$16 = subst$1[0].typ(targ); /* */ $s = 42; case 42: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - new_targ = _r$16; - /* */ if (!($interfaceIsEqual(new_targ, targ))) { $s = 43; continue; } - /* */ $s = 44; continue; - /* if (!($interfaceIsEqual(new_targ, targ))) { */ case 43: - $r = dump(">>> substituted %d targ %s => %s", new sliceType$6([new $Int(i), targ, new_targ])); /* */ $s = 45; case 45: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (newTArgs === sliceType$3.nil) { - newTArgs = $makeSlice(sliceType$3, n); - $copySlice(newTArgs, t$12.TypeArgs().list()); - } - ((i < 0 || i >= newTArgs.$length) ? ($throwRuntimeError("index out of range"), undefined) : newTArgs.$array[newTArgs.$offset + i] = new_targ); - /* } */ case 44: - _i++; - $s = 39; continue; - case 40: - /* */ if (newTArgs === sliceType$3.nil) { $s = 46; continue; } - /* */ $s = 47; continue; - /* if (newTArgs === sliceType$3.nil) { */ case 46: - $r = dump(">>> nothing to substitute in %s", new sliceType$6([t$12])); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return t$12; - /* } */ case 47: - _r$17 = subst$1[0].check.instance(subst$1[0].pos, orig, newTArgs, subst$1[0].expanding, subst$1[0].ctxt); /* */ $s = 49; case 49: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - $24r$1 = _r$17; - $s = 50; case 50: return $24r$1; - /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 14: - t$13 = _ref.$val; - $s = -1; return new substMap(subst$1[0].smap).lookup(t$13); - /* } else { */ case 15: - t$14 = _ref; - unreachable(); - /* } */ case 16: - $s = -1; return typ$3; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: typ$2, $c: true, $r, $24r, $24r$1, _i, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, base, copied, copied$1, dump, ecopied, elem, elem$1, elem$2, elem$3, embeddeds, fields, i, iface$1, key, mcopied, methods, n, newTArgs, new_targ, orig, params, recv, results, s, subst$1, t, t$1, t$10, t$11, t$12, t$13, t$14, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, targ, terms, typ$3, $s, $deferred};return $f; } } - }; - $ptrType(subster).prototype.typOrNil = function typOrNil(typ$3) { - var {$24r, _r$1, subst$1, typ$3, $s, $r, $c} = $restore(this, {typ$3}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - subst$1 = this; - if ($interfaceIsEqual(typ$3, $ifaceNil)) { - $s = -1; return (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - } - _r$1 = subst$1.typ(typ$3); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: typOrNil, $c: true, $r, $24r, _r$1, subst$1, typ$3, $s};return $f; + return depth; }; - $ptrType(subster).prototype.var_ = function var_(v) { - var {_r$1, subst$1, typ$3, v, $s, $r, $c} = $restore(this, {v}); + $ptrType(printer).prototype.binaryExpr = function binaryExpr(x, prec1, cutoff$2, depth) { + var {_r, _r$1, _r$2, cutoff$2, depth, p, prec, prec1, printBlank, ws, x, xline, yline, $s, $r, $c} = $restore(this, {x, prec1, cutoff$2, depth}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - subst$1 = this; - /* */ if (!(v === ptrType$16.nil)) { $s = 1; continue; } + p = this; + prec = new token.Token(x.Op).Precedence(); + /* */ if (prec < prec1) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (!(v === ptrType$16.nil)) { */ case 1: - _r$1 = subst$1.typ(v.object.typ); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - typ$3 = _r$1; - if (!($interfaceIsEqual(typ$3, v.object.typ))) { - $s = -1; return substVar(v, typ$3); - } + /* if (prec < prec1) { */ case 1: + $r = p.print(new sliceType$1([new token.Token(49)])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.expr0(x, reduceDepth(depth)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(54)])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; /* } */ case 2: - $s = -1; return v; - /* */ } return; } var $f = {$blk: var_, $c: true, $r, _r$1, subst$1, typ$3, v, $s};return $f; - }; - substVar = function substVar$1(v, typ$3) { - var copy, typ$3, v; - copy = $clone(v, Var); - copy.object.typ = typ$3; - copy.origin = v.Origin(); - return copy; + printBlank = prec < cutoff$2; + ws = 62; + $r = p.expr1(x.X, prec, depth + diffPrec(x.X, prec) >> 0); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (printBlank) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (printBlank) { */ case 7: + $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 8: + xline = p.pos.Line; + _r = x.Y.Pos(); /* */ $s = 10; case 10: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = p.lineFor(_r); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + yline = _r$1; + $r = p.setPos(x.OpPos); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(x.Op)])); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!((xline === yline)) && xline > 0 && yline > 0) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (!((xline === yline)) && xline > 0 && yline > 0) { */ case 14: + _r$2 = p.linebreak(yline, 1, ws, true); /* */ $s = 18; case 18: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (_r$2 > 0) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (_r$2 > 0) { */ case 16: + ws = 0; + printBlank = false; + /* } */ case 17: + /* } */ case 15: + /* */ if (printBlank) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (printBlank) { */ case 19: + $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 20: + $r = p.expr1(x.Y, prec + 1 >> 0, depth + 1 >> 0); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (ws === 0) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (ws === 0) { */ case 23: + $r = p.print(new sliceType$1([new whiteSpace(60)])); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 24: + $s = -1; return; + /* */ } return; } var $f = {$blk: binaryExpr, $c: true, $r, _r, _r$1, _r$2, cutoff$2, depth, p, prec, prec1, printBlank, ws, x, xline, yline, $s};return $f; }; - $ptrType(subster).prototype.tuple = function tuple$1(t) { - var {_r$1, _tuple, copied, subst$1, t, vars, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - subst$1 = this; - /* */ if (!(t === ptrType$15.nil)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(t === ptrType$15.nil)) { */ case 1: - _r$1 = subst$1.varList(t.vars); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - vars = _tuple[0]; - copied = _tuple[1]; - if (copied) { - $s = -1; return new Tuple.ptr(vars); - } - /* } */ case 2: - $s = -1; return t; - /* */ } return; } var $f = {$blk: tuple$1, $c: true, $r, _r$1, _tuple, copied, subst$1, t, vars, $s};return $f; + isBinary = function isBinary$1(expr) { + var _tuple, expr, ok; + _tuple = $assertType(expr, ptrType$20, true); + ok = _tuple[1]; + return ok; }; - $ptrType(subster).prototype.varList = function varList(in$1) { - var {_i, _r$1, _ref, copied, i, in$1, new$1, out, subst$1, v, w, $s, $r, $c} = $restore(this, {in$1}); + $ptrType(printer).prototype.expr1 = function expr1(expr, prec1, depth) { + var {_1, _i, _i$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _ref$1, _ref$2, _tuple, _tuple$1, _v, depth, expr, hasBinaries, hasParens, i, indexCount, indices, mode, needsBlanks, ok, p, prec1, startCol, wasIndented, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$25, x$26, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {expr, prec1, depth}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - out = sliceType$10.nil; - copied = false; - subst$1 = this; - out = in$1; - _ref = in$1; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$1 = subst$1.var_(v); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - w = _r$1; - if (!(w === v)) { - if (!copied) { - new$1 = $makeSlice(sliceType$10, in$1.$length); - $copySlice(new$1, out); - out = new$1; - copied = true; - } - ((i < 0 || i >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + i] = w); + p = this; + _r = expr.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = p.setPos(_r); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _ref = expr; + /* */ if ($assertType(_ref, ptrType$30, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$20, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$18, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$19, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref, ptrType$5, true)[1]) { $s = 9; continue; } + /* */ if ($assertType(_ref, ptrType$31, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref, ptrType$21, true)[1]) { $s = 11; continue; } + /* */ if ($assertType(_ref, ptrType$32, true)[1]) { $s = 12; continue; } + /* */ if ($assertType(_ref, ptrType$33, true)[1]) { $s = 13; continue; } + /* */ if ($assertType(_ref, ptrType$34, true)[1]) { $s = 14; continue; } + /* */ if ($assertType(_ref, ptrType$35, true)[1]) { $s = 15; continue; } + /* */ if ($assertType(_ref, ptrType$36, true)[1]) { $s = 16; continue; } + /* */ if ($assertType(_ref, ptrType$37, true)[1]) { $s = 17; continue; } + /* */ if ($assertType(_ref, ptrType$38, true)[1]) { $s = 18; continue; } + /* */ if ($assertType(_ref, ptrType$39, true)[1]) { $s = 19; continue; } + /* */ if ($assertType(_ref, ptrType$22, true)[1]) { $s = 20; continue; } + /* */ if ($assertType(_ref, ptrType$23, true)[1]) { $s = 21; continue; } + /* */ if ($assertType(_ref, ptrType$24, true)[1]) { $s = 22; continue; } + /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 23; continue; } + /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 24; continue; } + /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if ($assertType(_ref, ptrType$30, true)[1]) { */ case 3: + x = _ref.$val; + $r = p.print(new sliceType$1([new $String("BadExpr")])); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$4, true)[1]) { */ case 4: + x$1 = _ref.$val; + $r = p.print(new sliceType$1([x$1])); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$20, true)[1]) { */ case 5: + x$2 = _ref.$val; + /* */ if (depth < 1) { $s = 30; continue; } + /* */ $s = 31; continue; + /* if (depth < 1) { */ case 30: + $r = p.internalError(new sliceType$1([new $String("depth < 1:"), new $Int(depth)])); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + depth = 1; + /* } */ case 31: + $r = p.binaryExpr(x$2, prec1, cutoff(x$2, depth), depth); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$18, true)[1]) { */ case 6: + x$3 = _ref.$val; + $r = p.expr(x$3.Key); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.setPos(x$3.Colon); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(58), new whiteSpace(32)])); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.expr(x$3.Value); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$19, true)[1]) { */ case 7: + x$4 = _ref.$val; + /* */ if (6 < prec1) { $s = 38; continue; } + /* */ $s = 39; continue; + /* if (6 < prec1) { */ case 38: + $r = p.print(new sliceType$1([new token.Token(49)])); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(14)])); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.expr(x$4.X); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(54)])); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 40; continue; + /* } else { */ case 39: + $r = p.print(new sliceType$1([new token.Token(14)])); /* */ $s = 45; case 45: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.expr(x$4.X); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 40: + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$28, true)[1]) { */ case 8: + x$5 = _ref.$val; + /* */ if (6 < prec1) { $s = 47; continue; } + /* */ $s = 48; continue; + /* if (6 < prec1) { */ case 47: + $r = p.print(new sliceType$1([new token.Token(49)])); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.expr(x$5); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(54)])); /* */ $s = 52; case 52: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 49; continue; + /* } else { */ case 48: + $r = p.print(new sliceType$1([new token.Token(x$5.Op)])); /* */ $s = 53; case 53: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (x$5.Op === 79) { $s = 54; continue; } + /* */ $s = 55; continue; + /* if (x$5.Op === 79) { */ case 54: + $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 56; case 56: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 55: + $r = p.expr1(x$5.X, 6, depth); /* */ $s = 57; case 57: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 49: + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$5, true)[1]) { */ case 9: + x$6 = _ref.$val; + if (!((((p.Config.Mode & 1073741824) >>> 0) === 0))) { + x$6 = normalizedNumber(x$6); } - _i++; - $s = 1; continue; - case 2: - $s = -1; return [out, copied]; - /* */ } return; } var $f = {$blk: varList, $c: true, $r, _i, _r$1, _ref, copied, i, in$1, new$1, out, subst$1, v, w, $s};return $f; - }; - $ptrType(subster).prototype.func_ = function func_(f) { - var {_r$1, f, subst$1, typ$3, $s, $r, $c} = $restore(this, {f}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - subst$1 = this; - /* */ if (!(f === ptrType$2.nil)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(f === ptrType$2.nil)) { */ case 1: - _r$1 = subst$1.typ(f.object.typ); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - typ$3 = _r$1; - if (!($interfaceIsEqual(typ$3, f.object.typ))) { - $s = -1; return substFunc(f, typ$3); + $r = p.print(new sliceType$1([x$6])); /* */ $s = 58; case 58: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$31, true)[1]) { */ case 10: + x$7 = _ref.$val; + _r$1 = x$7.Type.Pos(); /* */ $s = 59; case 59: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $r = p.setPos(_r$1); /* */ $s = 60; case 60: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(71)])); /* */ $s = 61; case 61: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + startCol = p.out.Column - 4 >> 0; + $r = p.signature(x$7.Type); /* */ $s = 62; case 62: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = x$7.Type.Pos(); /* */ $s = 63; case 63: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = p.distanceFrom(_r$2, startCol); /* */ $s = 64; case 64: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $r = p.funcBody(_r$3, 32, x$7.Body); /* */ $s = 65; case 65: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$21, true)[1]) { */ case 11: + x$8 = _ref.$val; + _tuple = $assertType(x$8.X, ptrType$21, true); + hasParens = _tuple[1]; + /* */ if (hasParens) { $s = 66; continue; } + /* */ $s = 67; continue; + /* if (hasParens) { */ case 66: + $r = p.expr0(x$8.X, depth); /* */ $s = 69; case 69: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 68; continue; + /* } else { */ case 67: + $r = p.print(new sliceType$1([new token.Token(49)])); /* */ $s = 70; case 70: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.expr0(x$8.X, reduceDepth(depth)); /* */ $s = 71; case 71: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.setPos(x$8.Rparen); /* */ $s = 72; case 72: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(54)])); /* */ $s = 73; case 73: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 68: + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$32, true)[1]) { */ case 12: + x$9 = _ref.$val; + _r$4 = p.selectorExpr(x$9, depth, false); /* */ $s = 74; case 74: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4; + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$33, true)[1]) { */ case 13: + x$10 = _ref.$val; + $r = p.expr1(x$10.X, 7, depth); /* */ $s = 75; case 75: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(53)])); /* */ $s = 76; case 76: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.setPos(x$10.Lparen); /* */ $s = 77; case 77: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(49)])); /* */ $s = 78; case 78: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!($interfaceIsEqual(x$10.Type, $ifaceNil))) { $s = 79; continue; } + /* */ $s = 80; continue; + /* if (!($interfaceIsEqual(x$10.Type, $ifaceNil))) { */ case 79: + $r = p.expr(x$10.Type); /* */ $s = 82; case 82: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 81; continue; + /* } else { */ case 80: + $r = p.print(new sliceType$1([new token.Token(84)])); /* */ $s = 83; case 83: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 81: + $r = p.setPos(x$10.Rparen); /* */ $s = 84; case 84: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(54)])); /* */ $s = 85; case 85: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$34, true)[1]) { */ case 14: + x$11 = _ref.$val; + $r = p.expr1(x$11.X, 7, 1); /* */ $s = 86; case 86: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.setPos(x$11.Lbrack); /* */ $s = 87; case 87: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(50)])); /* */ $s = 88; case 88: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.expr0(x$11.Index, depth + 1 >> 0); /* */ $s = 89; case 89: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.setPos(x$11.Rbrack); /* */ $s = 90; case 90: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(55)])); /* */ $s = 91; case 91: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$35, true)[1]) { */ case 15: + x$12 = _ref.$val; + $r = p.expr1(x$12.X, 7, 1); /* */ $s = 92; case 92: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.setPos(x$12.Lbrack); /* */ $s = 93; case 93: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(50)])); /* */ $s = 94; case 94: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.exprList(x$12.Lbrack, x$12.Indices, depth + 1 >> 0, 1, x$12.Rbrack, false); /* */ $s = 95; case 95: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.setPos(x$12.Rbrack); /* */ $s = 96; case 96: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(55)])); /* */ $s = 97; case 97: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$36, true)[1]) { */ case 16: + x$13 = _ref.$val; + $r = p.expr1(x$13.X, 7, 1); /* */ $s = 98; case 98: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.setPos(x$13.Lbrack); /* */ $s = 99; case 99: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(50)])); /* */ $s = 100; case 100: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + indices = new sliceType$7([x$13.Low, x$13.High]); + if (!($interfaceIsEqual(x$13.Max, $ifaceNil))) { + indices = $append(indices, x$13.Max); } - /* } */ case 2: - $s = -1; return f; - /* */ } return; } var $f = {$blk: func_, $c: true, $r, _r$1, f, subst$1, typ$3, $s};return $f; - }; - substFunc = function substFunc$1(f, typ$3) { - var copy, f, typ$3; - copy = $clone(f, Func); - copy.object.typ = typ$3; - copy.origin = f.Origin(); - return copy; - }; - $ptrType(subster).prototype.funcList = function funcList(in$1) { - var {_i, _r$1, _ref, copied, f, g, i, in$1, new$1, out, subst$1, $s, $r, $c} = $restore(this, {in$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - out = sliceType.nil; - copied = false; - subst$1 = this; - out = in$1; - _ref = in$1; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$1 = subst$1.func_(f); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - g = _r$1; - if (!(g === f)) { - if (!copied) { - new$1 = $makeSlice(sliceType, in$1.$length); - $copySlice(new$1, out); - out = new$1; - copied = true; + needsBlanks = false; + if (depth <= 1) { + indexCount = 0; + hasBinaries = false; + _ref$1 = indices; + _i = 0; + while (true) { + if (!(_i < _ref$1.$length)) { break; } + x$24 = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); + if (!($interfaceIsEqual(x$24, $ifaceNil))) { + indexCount = indexCount + (1) >> 0; + if (isBinary(x$24)) { + hasBinaries = true; + } + } + _i++; } - ((i < 0 || i >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + i] = g); - } - _i++; - $s = 1; continue; - case 2: - $s = -1; return [out, copied]; - /* */ } return; } var $f = {$blk: funcList, $c: true, $r, _i, _r$1, _ref, copied, f, g, i, in$1, new$1, out, subst$1, $s};return $f; - }; - $ptrType(subster).prototype.typeList = function typeList$2(in$1) { - var {_i, _r$1, _ref, copied, i, in$1, new$1, out, subst$1, t, u, $s, $r, $c} = $restore(this, {in$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - out = sliceType$3.nil; - copied = false; - subst$1 = this; - out = in$1; - _ref = in$1; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$1 = subst$1.typ(t); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - u = _r$1; - if (!($interfaceIsEqual(u, t))) { - if (!copied) { - new$1 = $makeSlice(sliceType$3, in$1.$length); - $copySlice(new$1, out); - out = new$1; - copied = true; + if (indexCount > 1 && hasBinaries) { + needsBlanks = true; } - ((i < 0 || i >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + i] = u); } - _i++; - $s = 1; continue; - case 2: - $s = -1; return [out, copied]; - /* */ } return; } var $f = {$blk: typeList$2, $c: true, $r, _i, _r$1, _ref, copied, i, in$1, new$1, out, subst$1, t, u, $s};return $f; - }; - $ptrType(subster).prototype.termlist = function termlist$1(in$1) { - var {_i, _r$1, _ref, copied, i, in$1, new$1, out, subst$1, t, u, $s, $r, $c} = $restore(this, {in$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - out = sliceType$12.nil; - copied = false; - subst$1 = this; - out = in$1; - _ref = in$1; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$1 = subst$1.typ(t.typ); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - u = _r$1; - if (!($interfaceIsEqual(u, t.typ))) { - if (!copied) { - new$1 = $makeSlice(sliceType$12, in$1.$length); - $copySlice(new$1, out); - out = new$1; - copied = true; - } - ((i < 0 || i >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + i] = NewTerm(t.tilde, u)); + _ref$2 = indices; + _i$1 = 0; + /* while (true) { */ case 101: + /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 102; continue; } + i = _i$1; + x$25 = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); + /* */ if (i > 0) { $s = 103; continue; } + /* */ $s = 104; continue; + /* if (i > 0) { */ case 103: + /* */ if (!($interfaceIsEqual((x$26 = i - 1 >> 0, ((x$26 < 0 || x$26 >= indices.$length) ? ($throwRuntimeError("index out of range"), undefined) : indices.$array[indices.$offset + x$26])), $ifaceNil)) && needsBlanks) { $s = 105; continue; } + /* */ $s = 106; continue; + /* if (!($interfaceIsEqual((x$26 = i - 1 >> 0, ((x$26 < 0 || x$26 >= indices.$length) ? ($throwRuntimeError("index out of range"), undefined) : indices.$array[indices.$offset + x$26])), $ifaceNil)) && needsBlanks) { */ case 105: + $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 107; case 107: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 106: + $r = p.print(new sliceType$1([new token.Token(58)])); /* */ $s = 108; case 108: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!($interfaceIsEqual(x$25, $ifaceNil)) && needsBlanks) { $s = 109; continue; } + /* */ $s = 110; continue; + /* if (!($interfaceIsEqual(x$25, $ifaceNil)) && needsBlanks) { */ case 109: + $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 111; case 111: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 110: + /* } */ case 104: + /* */ if (!($interfaceIsEqual(x$25, $ifaceNil))) { $s = 112; continue; } + /* */ $s = 113; continue; + /* if (!($interfaceIsEqual(x$25, $ifaceNil))) { */ case 112: + $r = p.expr0(x$25, depth + 1 >> 0); /* */ $s = 114; case 114: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 113: + _i$1++; + $s = 101; continue; + case 102: + $r = p.setPos(x$13.Rbrack); /* */ $s = 115; case 115: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(55)])); /* */ $s = 116; case 116: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$37, true)[1]) { */ case 17: + x$14 = _ref.$val; + if (x$14.Args.$length > 1) { + depth = depth + (1) >> 0; } - _i++; - $s = 1; continue; - case 2: - $s = -1; return [out, copied]; - /* */ } return; } var $f = {$blk: termlist$1, $c: true, $r, _i, _r$1, _ref, copied, i, in$1, new$1, out, subst$1, t, u, $s};return $f; - }; - replaceRecvType = function replaceRecvType$1(in$1, old, new$1) { - var _i, _ref, copied, i, in$1, method, new$1, newsig, old, out, sig; - out = sliceType.nil; - copied = false; - out = in$1; - _ref = in$1; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - newsig = [newsig]; - i = _i; - method = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - sig = $assertType(method.object.Type(), ptrType$27); - if (!(sig.recv === ptrType$16.nil) && $interfaceIsEqual(sig.recv.object.Type(), old)) { - if (!copied) { - out = $makeSlice(sliceType, in$1.$length); - $copySlice(out, in$1); - copied = true; - } - newsig[0] = $clone(sig, Signature); - newsig[0].recv = substVar(sig.recv, new$1); - ((i < 0 || i >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + i] = substFunc(method, newsig[0])); + wasIndented = false; + _tuple$1 = $assertType(x$14.Fun, ptrType$24, true); + ok = _tuple$1[1]; + /* */ if (ok) { $s = 117; continue; } + /* */ $s = 118; continue; + /* if (ok) { */ case 117: + $r = p.print(new sliceType$1([new token.Token(49)])); /* */ $s = 120; case 120: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$5 = p.possibleSelectorExpr(x$14.Fun, 7, depth); /* */ $s = 121; case 121: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + wasIndented = _r$5; + $r = p.print(new sliceType$1([new token.Token(54)])); /* */ $s = 122; case 122: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 119; continue; + /* } else { */ case 118: + _r$6 = p.possibleSelectorExpr(x$14.Fun, 7, depth); /* */ $s = 123; case 123: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + wasIndented = _r$6; + /* } */ case 119: + $r = p.setPos(x$14.Lparen); /* */ $s = 124; case 124: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(49)])); /* */ $s = 125; case 125: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (new token.Pos(x$14.Ellipsis).IsValid()) { $s = 126; continue; } + /* */ $s = 127; continue; + /* if (new token.Pos(x$14.Ellipsis).IsValid()) { */ case 126: + $r = p.exprList(x$14.Lparen, x$14.Args, depth, 0, x$14.Ellipsis, false); /* */ $s = 129; case 129: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.setPos(x$14.Ellipsis); /* */ $s = 130; case 130: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(48)])); /* */ $s = 131; case 131: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (!(new token.Pos(x$14.Rparen).IsValid())) { _v = false; $s = 134; continue s; } + _r$7 = p.lineFor(x$14.Ellipsis); /* */ $s = 135; case 135: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$8 = p.lineFor(x$14.Rparen); /* */ $s = 136; case 136: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _v = _r$7 < _r$8; case 134: + /* */ if (_v) { $s = 132; continue; } + /* */ $s = 133; continue; + /* if (_v) { */ case 132: + $r = p.print(new sliceType$1([new token.Token(52), new whiteSpace(12)])); /* */ $s = 137; case 137: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 133: + $s = 128; continue; + /* } else { */ case 127: + $r = p.exprList(x$14.Lparen, x$14.Args, depth, 1, x$14.Rparen, false); /* */ $s = 138; case 138: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 128: + $r = p.setPos(x$14.Rparen); /* */ $s = 139; case 139: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(54)])); /* */ $s = 140; case 140: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (wasIndented) { $s = 141; continue; } + /* */ $s = 142; continue; + /* if (wasIndented) { */ case 141: + $r = p.print(new sliceType$1([new whiteSpace(60)])); /* */ $s = 143; case 143: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 142: + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$38, true)[1]) { */ case 18: + x$15 = _ref.$val; + /* */ if (!($interfaceIsEqual(x$15.Type, $ifaceNil))) { $s = 144; continue; } + /* */ $s = 145; continue; + /* if (!($interfaceIsEqual(x$15.Type, $ifaceNil))) { */ case 144: + $r = p.expr1(x$15.Type, 7, depth); /* */ $s = 146; case 146: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 145: + p.level = p.level + (1) >> 0; + $r = p.setPos(x$15.Lbrace); /* */ $s = 147; case 147: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(51)])); /* */ $s = 148; case 148: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.exprList(x$15.Lbrace, x$15.Elts, 1, 1, x$15.Rbrace, x$15.Incomplete); /* */ $s = 149; case 149: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + mode = 2; + if (x$15.Elts.$length > 0) { + mode = mode | (1); } - _i++; - } - return [out, copied]; - }; - $ptrType(Struct).prototype.NumFields = function NumFields() { - var s; - s = this; - return s.fields.$length; - }; - $ptrType(Struct).prototype.Field = function Field(i) { - var i, s, x; - s = this; - return (x = s.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - }; - $ptrType(Struct).prototype.Tag = function Tag(i) { - var i, s, x; - s = this; - if (i < s.tags.$length) { - return (x = s.tags, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - } - return ""; - }; - $ptrType(Struct).prototype.Underlying = function Underlying$3() { - var t; - t = this; - return t; - }; - $ptrType(Struct).prototype.String = function String$8() { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = TypeString(t, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$8, $c: true, $r, $24r, _r$1, t, $s};return $f; + $r = p.print(new sliceType$1([new whiteSpace(62), new whiteSpace(60), new pmode(mode)])); /* */ $s = 150; case 150: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.setPos(x$15.Rbrace); /* */ $s = 151; case 151: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(56), new pmode(mode)])); /* */ $s = 152; case 152: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + p.level = p.level - (1) >> 0; + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$39, true)[1]) { */ case 19: + x$16 = _ref.$val; + $r = p.print(new sliceType$1([new token.Token(48)])); /* */ $s = 153; case 153: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!($interfaceIsEqual(x$16.Elt, $ifaceNil))) { $s = 154; continue; } + /* */ $s = 155; continue; + /* if (!($interfaceIsEqual(x$16.Elt, $ifaceNil))) { */ case 154: + $r = p.expr(x$16.Elt); /* */ $s = 156; case 156: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 155: + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$22, true)[1]) { */ case 20: + x$17 = _ref.$val; + $r = p.print(new sliceType$1([new token.Token(50)])); /* */ $s = 157; case 157: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!($interfaceIsEqual(x$17.Len, $ifaceNil))) { $s = 158; continue; } + /* */ $s = 159; continue; + /* if (!($interfaceIsEqual(x$17.Len, $ifaceNil))) { */ case 158: + $r = p.expr(x$17.Len); /* */ $s = 160; case 160: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 159: + $r = p.print(new sliceType$1([new token.Token(55)])); /* */ $s = 161; case 161: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.expr(x$17.Elt); /* */ $s = 162; case 162: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$23, true)[1]) { */ case 21: + x$18 = _ref.$val; + $r = p.print(new sliceType$1([new token.Token(82)])); /* */ $s = 163; case 163: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.fieldList(x$18.Fields, true, x$18.Incomplete); /* */ $s = 164; case 164: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$24, true)[1]) { */ case 22: + x$19 = _ref.$val; + $r = p.print(new sliceType$1([new token.Token(71)])); /* */ $s = 165; case 165: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.signature(x$19); /* */ $s = 166; case 166: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$25, true)[1]) { */ case 23: + x$20 = _ref.$val; + $r = p.print(new sliceType$1([new token.Token(76)])); /* */ $s = 167; case 167: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.fieldList(x$20.Methods, false, x$20.Incomplete); /* */ $s = 168; case 168: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 24: + x$21 = _ref.$val; + $r = p.print(new sliceType$1([new token.Token(77), new token.Token(50)])); /* */ $s = 169; case 169: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.expr(x$21.Key); /* */ $s = 170; case 170: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(55)])); /* */ $s = 171; case 171: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.expr(x$21.Value); /* */ $s = 172; case 172: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 27; continue; + /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 25: + x$22 = _ref.$val; + _1 = x$22.Dir; + /* */ if (_1 === (3)) { $s = 174; continue; } + /* */ if (_1 === (2)) { $s = 175; continue; } + /* */ if (_1 === (1)) { $s = 176; continue; } + /* */ $s = 177; continue; + /* if (_1 === (3)) { */ case 174: + $r = p.print(new sliceType$1([new token.Token(63)])); /* */ $s = 178; case 178: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 177; continue; + /* } else if (_1 === (2)) { */ case 175: + $r = p.print(new sliceType$1([new token.Token(36), new token.Token(63)])); /* */ $s = 179; case 179: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 177; continue; + /* } else if (_1 === (1)) { */ case 176: + $r = p.print(new sliceType$1([new token.Token(63)])); /* */ $s = 180; case 180: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.setPos(x$22.Arrow); /* */ $s = 181; case 181: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(36)])); /* */ $s = 182; case 182: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 177: + case 173: + $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 183; case 183: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.expr(x$22.Value); /* */ $s = 184; case 184: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 27; continue; + /* } else { */ case 26: + x$23 = _ref; + $panic(new $String("unreachable")); + /* } */ case 27: + $s = -1; return; + /* */ } return; } var $f = {$blk: expr1, $c: true, $r, _1, _i, _i$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _ref$1, _ref$2, _tuple, _tuple$1, _v, depth, expr, hasBinaries, hasParens, i, indexCount, indices, mode, needsBlanks, ok, p, prec1, startCol, wasIndented, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$25, x$26, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; }; - $ptrType(Struct).prototype.markComplete = function markComplete() { - var s; - s = this; - if (s.fields === sliceType$10.nil) { - s.fields = $makeSlice(sliceType$10, 0); + normalizedNumber = function normalizedNumber$1(lit) { + var _1, i, i$1, i$2, lit, x; + if (!((lit.Kind === 5)) && !((lit.Kind === 6)) && !((lit.Kind === 7))) { + return lit; } - }; - $ptrType(Checker).prototype.structType = function structType$2(styp, e) { - var {_i, _i$1, _r$1, _r$2, _r$3, _ref, _ref$1, add, addInvalid, check, e, embeddedPos, embeddedTyp, f, fields, fset, list$2, name, name$1, pos, styp, tag, tags, typ$3, $s, $r, $c} = $restore(this, {styp, e}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - add = [add]; - check = [check]; - fields = [fields]; - fset = [fset]; - tag = [tag]; - tags = [tags]; - typ$3 = [typ$3]; - check[0] = this; - list$2 = e.Fields; - if (list$2 === ptrType$49.nil) { - styp.markComplete(); - $s = -1; return; + if (lit.Value.length < 2) { + return lit; } - fields[0] = sliceType$10.nil; - tags[0] = sliceType$5.nil; - fset[0] = false; - typ$3[0] = $ifaceNil; - tag[0] = ""; - add[0] = (function(add, check, fields, fset, tag, tags, typ$3) { return function Checker·structType·func1(ident$1, embedded, pos) { - var {_r$1, _v, embedded, fld, ident$1, name, pos, $s, $r, $c} = $restore(this, {ident$1, embedded, pos}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (!(tag[0] === "") && tags[0] === sliceType$5.nil) { - tags[0] = $makeSlice(sliceType$5, fields[0].$length); + x = lit.Value; + switch (0) { default: + _1 = $substring(x, 0, 2); + if (_1 === ("0X")) { + x = "0x" + $substring(x, 2); + i = strings.LastIndexByte(x, 80); + if (i >= 0) { + x = $substring(x, 0, i) + "p" + $substring(x, (i + 1 >> 0)); } - if (!(tags[0] === sliceType$5.nil)) { - tags[0] = $append(tags[0], tag[0]); + } else if (_1 === ("0x")) { + i$1 = strings.LastIndexByte(x, 80); + if (i$1 === -1) { + return lit; } - name = ident$1.Name; - fld = NewField(pos, check[0].pkg, name, typ$3[0], embedded); - if (name === "_") { _v = true; $s = 3; continue s; } - _r$1 = check[0].declareInSet((fset.$ptr || (fset.$ptr = new ptrType$54(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, fset))), pos, fld); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = _r$1; case 3: - /* */ if (_v) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (_v) { */ case 1: - fields[0] = $append(fields[0], fld); - $r = check[0].recordDef(ident$1, fld); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·structType·func1, $c: true, $r, _r$1, _v, embedded, fld, ident$1, name, pos, $s};return $f; - }; })(add, check, fields, fset, tag, tags, typ$3); - addInvalid = (function(add, check, fields, fset, tag, tags, typ$3) { return function Checker·structType·func2(ident$1, pos) { - var {ident$1, pos, $s, $r, $c} = $restore(this, {ident$1, pos}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - typ$3[0] = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - tag[0] = ""; - $r = add[0](ident$1, true, pos); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·structType·func2, $c: true, $r, ident$1, pos, $s};return $f; - }; })(add, check, fields, fset, tag, tags, typ$3); - _ref = list$2.List; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - embeddedPos = [embeddedPos]; - embeddedTyp = [embeddedTyp]; - f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$1 = check[0].varType(f.Type); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - typ$3[0] = _r$1; - _r$2 = check[0].tag(f.Tag); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - tag[0] = _r$2; - /* */ if (f.Names.$length > 0) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (f.Names.$length > 0) { */ case 5: - _ref$1 = f.Names; - _i$1 = 0; - /* while (true) { */ case 8: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 9; continue; } - name = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - $r = add[0](name, false, name.Pos()); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$1++; - $s = 8; continue; - case 9: - $s = 7; continue; - /* } else { */ case 6: - _r$3 = f.Type.Pos(); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - pos = _r$3; - name$1 = embeddedFieldIdent(f.Type); - /* */ if (name$1 === ptrType$30.nil) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (name$1 === ptrType$30.nil) { */ case 12: - $r = check[0].errorf(f.Type, -1, "embedded field type %s has no name", new sliceType$6([f.Type])); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - name$1 = ast.NewIdent("_"); - name$1.NamePos = pos; - $r = addInvalid(name$1, pos); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - /* continue; */ $s = 1; continue; - /* } */ case 13: - $r = add[0](name$1, true, pos); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - embeddedTyp[0] = typ$3[0]; - embeddedPos[0] = f.Type; - check[0].later((function(add, check, embeddedPos, embeddedTyp, fields, fset, tag, tags, typ$3) { return function Checker·structType·func3() { - var {_r$4, _ref$2, _tuple, isPtr, t, u, u$1, u$2, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _tuple = deref(embeddedTyp[0]); - t = _tuple[0]; - isPtr = _tuple[1]; - _r$4 = under(t); /* */ $s = 1; case 1: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _ref$2 = _r$4; - /* */ if ($assertType(_ref$2, ptrType$4, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref$2, ptrType$26, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref$2, ptrType$13, true)[1]) { $s = 4; continue; } - /* */ $s = 5; continue; - /* switch (0) { default: if ($assertType(_ref$2, ptrType$4, true)[1]) { */ case 2: - u = _ref$2.$val; - if ($interfaceIsEqual(t, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { - $s = -1; return; - } - /* */ if (u.kind === 18) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (u.kind === 18) { */ case 6: - $r = check[0].error(embeddedPos[0], 30, "embedded field type cannot be unsafe.Pointer"); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 7: - $s = 5; continue; - /* } else if ($assertType(_ref$2, ptrType$26, true)[1]) { */ case 3: - u$1 = _ref$2.$val; - $r = check[0].error(embeddedPos[0], 30, "embedded field type cannot be a pointer"); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 5; continue; - /* } else if ($assertType(_ref$2, ptrType$13, true)[1]) { */ case 4: - u$2 = _ref$2.$val; - /* */ if (isTypeParam(t)) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (isTypeParam(t)) { */ case 10: - $r = check[0].error(embeddedPos[0], 144, "embedded field type cannot be a (pointer to a) type parameter"); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* break; */ $s = 5; continue; - /* } */ case 11: - /* */ if (isPtr) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (isPtr) { */ case 13: - $r = check[0].error(embeddedPos[0], 30, "embedded field type cannot be a pointer to an interface"); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 14: - /* } } */ case 5: - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·structType·func3, $c: true, $r, _r$4, _ref$2, _tuple, isPtr, t, u, u$1, u$2, $s};return $f; - }; })(add, check, embeddedPos, embeddedTyp, fields, fset, tag, tags, typ$3)).describef(embeddedPos[0], "check embedded type %s", new sliceType$6([embeddedTyp[0]])); - /* } */ case 7: - _i++; - $s = 1; continue; - case 2: - styp.fields = fields[0]; - styp.tags = tags[0]; - styp.markComplete(); - $s = -1; return; - /* */ } return; } var $f = {$blk: structType$2, $c: true, $r, _i, _i$1, _r$1, _r$2, _r$3, _ref, _ref$1, add, addInvalid, check, e, embeddedPos, embeddedTyp, f, fields, fset, list$2, name, name$1, pos, styp, tag, tags, typ$3, $s};return $f; - }; - embeddedFieldIdent = function embeddedFieldIdent$1(e) { - var _ref, _tuple, e, e$1, e$2, e$3, e$4, e$5, ok; - _ref = e; - if ($assertType(_ref, ptrType$30, true)[1]) { - e$1 = _ref.$val; - return e$1; - } else if ($assertType(_ref, ptrType$43, true)[1]) { - e$2 = _ref.$val; - _tuple = $assertType(e$2.X, ptrType$43, true); - ok = _tuple[1]; - if (!ok) { - return embeddedFieldIdent(e$2.X); - } - } else if ($assertType(_ref, ptrType$36, true)[1]) { - e$3 = _ref.$val; - return e$3.Sel; - } else if ($assertType(_ref, ptrType$37, true)[1]) { - e$4 = _ref.$val; - return embeddedFieldIdent(e$4.X); - } else if ($assertType(_ref, ptrType$38, true)[1]) { - e$5 = _ref.$val; - return embeddedFieldIdent(e$5.X); - } - return ptrType$30.nil; - }; - $ptrType(Checker).prototype.declareInSet = function declareInSet(oset, pos, obj) { - var {_arg, _arg$1, _r$1, _r$2, alt, check, obj, oset, pos, $s, $r, $c} = $restore(this, {oset, pos, obj}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = oset.insert(obj); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - alt = _r$1; - /* */ if (!($interfaceIsEqual(alt, $ifaceNil))) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!($interfaceIsEqual(alt, $ifaceNil))) { */ case 2: - _arg = new atPos(((pos >> 0))); - _r$2 = obj.Name(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _arg$1 = new $String(_r$2); - $r = check.errorf(_arg, 10, "%s redeclared", new sliceType$6([_arg$1])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.reportAltDecl(alt); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return false; - /* } */ case 3: - $s = -1; return true; - /* */ } return; } var $f = {$blk: declareInSet, $c: true, $r, _arg, _arg$1, _r$1, _r$2, alt, check, obj, oset, pos, $s};return $f; - }; - $ptrType(Checker).prototype.tag = function tag(t) { - var {_tuple, check, err, t, val, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - /* */ if (!(t === ptrType$57.nil)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(t === ptrType$57.nil)) { */ case 1: - if (t.Kind === 9) { - _tuple = strconv.Unquote(t.Value); - val = _tuple[0]; - err = _tuple[1]; - if ($interfaceIsEqual(err, $ifaceNil)) { - $s = -1; return val; + x = $substring(x, 0, i$1) + "p" + $substring(x, (i$1 + 1 >> 0)); + } else if (_1 === ("0O")) { + x = "0o" + $substring(x, 2); + } else if (_1 === ("0o")) { + return lit; + } else if (_1 === ("0B")) { + x = "0b" + $substring(x, 2); + } else if (_1 === ("0b")) { + return lit; + } else { + i$2 = strings.LastIndexByte(x, 69); + if (i$2 >= 0) { + x = $substring(x, 0, i$2) + "e" + $substring(x, (i$2 + 1 >> 0)); + break; + } + if ((x.charCodeAt((x.length - 1 >> 0)) === 105) && !strings.ContainsAny(x, ".e")) { + x = strings.TrimLeft(x, "0_"); + if (x === "i") { + x = "0i"; + } } } - $r = check.errorf(t, -1, "incorrect tag syntax: %q", new sliceType$6([new $String(t.Value)])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - $s = -1; return ""; - /* */ } return; } var $f = {$blk: tag, $c: true, $r, _tuple, check, err, t, val, $s};return $f; - }; - $ptrType(Checker).prototype.funcBody = function funcBody(decl$1, name, sig, body, iota) { - var {_r$1, body, check, decl$1, iota, name, sig, $s, $deferred, $r, $c} = $restore(this, {decl$1, name, sig, body, iota}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - check = [check]; - check[0] = this; - if (check[0].conf.IgnoreFuncBodies) { - $panic(new $String("function body not ignored")); } - /* */ if (false) { $s = 1; continue; } + return new ast.BasicLit.ptr(lit.ValuePos, lit.Kind, x); + }; + $ptrType(printer).prototype.possibleSelectorExpr = function possibleSelectorExpr(expr, prec1, depth) { + var {$24r, _r, _tuple, depth, expr, ok, p, prec1, x, $s, $r, $c} = $restore(this, {expr, prec1, depth}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _tuple = $assertType(expr, ptrType$32, true); + x = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (false) { */ case 1: - $r = check[0].trace(body.Pos(), "-- %s: %s", new sliceType$6([new $String(name), sig])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* if (ok) { */ case 1: + _r = p.selectorExpr(x, depth, true); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; /* } */ case 2: - sig.scope.pos = body.Pos(); - _r$1 = body.End(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - sig.scope.end = _r$1; - $deferred.push([(function(check) { return function Checker·funcBody·func1(env, indent) { - var env, indent; - environment.copy(check[0].environment, env); - check[0].indent = indent; - }; })(check), [$clone(check[0].environment, environment), check[0].indent]]); - environment.copy(check[0].environment, new environment.ptr(decl$1, sig.scope, 0, iota, $ifaceNil, false, sig, false, false, false)); - check[0].indent = 0; - $r = check[0].stmtList(0, body.List); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (check[0].environment.hasLabel) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (check[0].environment.hasLabel) { */ case 6: - $r = check[0].labels(body); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 7: - /* */ if (sig.results.Len() > 0 && !check[0].isTerminating(body, "")) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (sig.results.Len() > 0 && !check[0].isTerminating(body, "")) { */ case 9: - $r = check[0].error(new atPos(((body.Rbrace >> 0))), 102, "missing return"); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 10: - $r = check[0].usage(sig.scope); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: funcBody, $c: true, $r, _r$1, body, check, decl$1, iota, name, sig, $s, $deferred};return $f; } } + $r = p.expr1(expr, prec1, depth); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; + /* */ } return; } var $f = {$blk: possibleSelectorExpr, $c: true, $r, $24r, _r, _tuple, depth, expr, ok, p, prec1, x, $s};return $f; }; - $ptrType(Checker).prototype.usage = function usage(scope) { - var {_entry, _i, _i$1, _i$2, _key, _keys, _r$1, _ref, _ref$1, _ref$2, _size, _tuple, check, elem, name, scope, scope$1, unused, v, v$1, $s, $r, $c} = $restore(this, {scope}); + $ptrType(printer).prototype.selectorExpr = function selectorExpr(x, depth, isMethod) { + var {_r, depth, isMethod, line, p, x, $s, $r, $c} = $restore(this, {x, depth, isMethod}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - unused = [unused]; - check = this; - unused[0] = sliceType$10.nil; - _ref = scope.elems; - _i = 0; - _keys = _ref ? _ref.keys() : undefined; - _size = _ref ? _ref.size : 0; - /* while (true) { */ case 1: - /* if (!(_i < _size)) { break; } */ if(!(_i < _size)) { $s = 2; continue; } - _key = _keys.next().value; - _entry = _ref.get(_key); - if (_entry === undefined) { - _i++; - /* continue; */ $s = 1; continue; - } - name = _entry.k; - elem = _entry.v; - _r$1 = resolve(name, elem); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - elem = _r$1; - _tuple = $assertType(elem, ptrType$16, true); - v = _tuple[0]; - if (!(v === ptrType$16.nil) && !v.used) { - unused[0] = $append(unused[0], v); - } - _i++; - $s = 1; continue; - case 2: - $r = sort.Slice(unused[0], (function(unused) { return function Checker·usage·func1(i, j) { - var i, j; - return ((i < 0 || i >= unused[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : unused[0].$array[unused[0].$offset + i]).object.pos < ((j < 0 || j >= unused[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : unused[0].$array[unused[0].$offset + j]).object.pos; - }; })(unused)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _ref$1 = unused[0]; - _i$1 = 0; - /* while (true) { */ case 5: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 6; continue; } - v$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - $r = check.softErrorf(v$1, 101, "%s declared and not used", new sliceType$6([new $String(v$1.object.name)])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$1++; - $s = 5; continue; - case 6: - _ref$2 = scope.children; - _i$2 = 0; - /* while (true) { */ case 8: - /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 9; continue; } - scope$1 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); - /* */ if (!scope$1.isFunc) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (!scope$1.isFunc) { */ case 10: - $r = check.usage(scope$1); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 11: - _i$2++; - $s = 8; continue; - case 9: - $s = -1; return; - /* */ } return; } var $f = {$blk: usage, $c: true, $r, _entry, _i, _i$1, _i$2, _key, _keys, _r$1, _ref, _ref$1, _ref$2, _size, _tuple, check, elem, name, scope, scope$1, unused, v, v$1, $s};return $f; + p = this; + $r = p.expr1(x.X, 7, depth); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(53)])); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r = p.lineFor(x.Sel.Pos()); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + line = _r; + /* */ if (p.pos.IsValid() && p.pos.Line < line) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (p.pos.IsValid() && p.pos.Line < line) { */ case 4: + $r = p.print(new sliceType$1([new whiteSpace(62), new whiteSpace(10)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.setPos(x.Sel.Pos()); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([x.Sel])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!isMethod) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!isMethod) { */ case 9: + $r = p.print(new sliceType$1([new whiteSpace(60)])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 10: + $s = -1; return true; + /* } */ case 5: + $r = p.setPos(x.Sel.Pos()); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([x.Sel])); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return false; + /* */ } return; } var $f = {$blk: selectorExpr, $c: true, $r, _r, depth, isMethod, line, p, x, $s};return $f; }; - $ptrType(Checker).prototype.simpleStmt = function simpleStmt(s) { - var {check, s, $s, $r, $c} = $restore(this, {s}); + $ptrType(printer).prototype.expr0 = function expr0(x, depth) { + var {depth, p, x, $s, $r, $c} = $restore(this, {x, depth}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - /* */ if (!($interfaceIsEqual(s, $ifaceNil))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!($interfaceIsEqual(s, $ifaceNil))) { */ case 1: - $r = check.stmt(0, s); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: + p = this; + $r = p.expr1(x, 0, depth); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } var $f = {$blk: simpleStmt, $c: true, $r, check, s, $s};return $f; - }; - trimTrailingEmptyStmts = function trimTrailingEmptyStmts$1(list$2) { - var _tuple, i, list$2, ok, x; - i = list$2.$length; - while (true) { - if (!(i > 0)) { break; } - _tuple = $assertType((x = i - 1 >> 0, ((x < 0 || x >= list$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : list$2.$array[list$2.$offset + x])), ptrType$59, true); - ok = _tuple[1]; - if (!ok) { - return $subslice(list$2, 0, i); - } - i = i - (1) >> 0; - } - return sliceType$17.nil; + /* */ } return; } var $f = {$blk: expr0, $c: true, $r, depth, p, x, $s};return $f; }; - $ptrType(Checker).prototype.stmtList = function stmtList(ctxt, list$2) { - var {_i, _ref, check, ctxt, i, inner, inner$1, list$2, ok, s, $s, $r, $c} = $restore(this, {ctxt, list$2}); + $ptrType(printer).prototype.expr = function expr(x) { + var {p, x, $s, $r, $c} = $restore(this, {x}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - ok = !((((ctxt & 4) >>> 0) === 0)); - inner = (ctxt & ~4) >>> 0; - list$2 = trimTrailingEmptyStmts(list$2); - _ref = list$2; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - inner$1 = inner; - if (ok && ((i + 1 >> 0) === list$2.$length)) { - inner$1 = (inner$1 | (4)) >>> 0; - } - $r = check.stmt(inner$1, s); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 1; continue; - case 2: + p = this; + $r = p.expr1(x, 0, 1); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } var $f = {$blk: stmtList, $c: true, $r, _i, _ref, check, ctxt, i, inner, inner$1, list$2, ok, s, $s};return $f; + /* */ } return; } var $f = {$blk: expr, $c: true, $r, p, x, $s};return $f; }; - $ptrType(Checker).prototype.multipleDefaults = function multipleDefaults(list$2) { - var {_arg, _arg$1, _i, _r$1, _r$2, _ref, _ref$1, c, c$1, c$2, check, d, first, list$2, s, x, $s, $r, $c} = $restore(this, {list$2}); + $ptrType(printer).prototype.stmtList = function stmtList(list, nindent, nextIsRBrace) { + var {_i, _r, _r$1, _r$2, _ref, _tuple, _tuple$1, i, isEmpty, line, list, lt, nextIsRBrace, nindent, p, s, t, $s, $r, $c} = $restore(this, {list, nindent, nextIsRBrace}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - first = $ifaceNil; - _ref = list$2; + line = [line]; + p = this; + /* */ if (nindent > 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (nindent > 0) { */ case 1: + $r = p.print(new sliceType$1([new whiteSpace(62)])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + line[0] = 0; + i = 0; + _ref = list; _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + /* while (true) { */ case 4: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 5; continue; } s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - d = $ifaceNil; - _ref$1 = s; - /* */ if ($assertType(_ref$1, ptrType$60, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref$1, ptrType$61, true)[1]) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if ($assertType(_ref$1, ptrType$60, true)[1]) { */ case 3: - c = _ref$1.$val; - if (c.List.$length === 0) { - d = s; - } - $s = 6; continue; - /* } else if ($assertType(_ref$1, ptrType$61, true)[1]) { */ case 4: - c$1 = _ref$1.$val; - if ($interfaceIsEqual(c$1.Comm, $ifaceNil)) { - d = s; - } - $s = 6; continue; - /* } else { */ case 5: - c$2 = _ref$1; - $r = check.error(s, -1, "case/communication clause expected"); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 6: - /* */ if (!($interfaceIsEqual(d, $ifaceNil))) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (!($interfaceIsEqual(d, $ifaceNil))) { */ case 8: - /* */ if (!($interfaceIsEqual(first, $ifaceNil))) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (!($interfaceIsEqual(first, $ifaceNil))) { */ case 10: - _arg = d; - _r$1 = first.Pos(); /* */ $s = 13; case 13: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = check.fset.Position(_r$1); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _arg$1 = (x = _r$2, new x.constructor.elem(x)); - $r = check.errorf(_arg, 114, "multiple defaults (first at %s)", new sliceType$6([_arg$1])); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 12; continue; - /* } else { */ case 11: - first = d; - /* } */ case 12: - /* } */ case 9: + _tuple = $assertType(s, ptrType$40, true); + isEmpty = _tuple[1]; + /* */ if (!isEmpty) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (!isEmpty) { */ case 6: + /* */ if (p.output.$length > 0) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (p.output.$length > 0) { */ case 8: + _r = s.Pos(); /* */ $s = 10; case 10: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = p.lineFor(_r); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = p.linebreak(_r$1, 1, 0, (i === 0) || (nindent === 0) || p.linesFrom(line[0]) > 0); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + /* } */ case 9: + p.recordLine((line.$ptr || (line.$ptr = new ptrType$1(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, line)))); + $r = p.stmt(s, nextIsRBrace && (i === (list.$length - 1 >> 0))); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + t = s; + while (true) { + _tuple$1 = $assertType(t, ptrType$14, true); + lt = _tuple$1[0]; + if (lt === ptrType$14.nil) { + break; + } + line[0] = line[0] + (1) >> 0; + t = lt.Stmt; + } + i = i + (1) >> 0; + /* } */ case 7: _i++; - $s = 1; continue; - case 2: + $s = 4; continue; + case 5: + /* */ if (nindent > 0) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (nindent > 0) { */ case 14: + $r = p.print(new sliceType$1([new whiteSpace(60)])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 15: $s = -1; return; - /* */ } return; } var $f = {$blk: multipleDefaults, $c: true, $r, _arg, _arg$1, _i, _r$1, _r$2, _ref, _ref$1, c, c$1, c$2, check, d, first, list$2, s, x, $s};return $f; + /* */ } return; } var $f = {$blk: stmtList, $c: true, $r, _i, _r, _r$1, _r$2, _ref, _tuple, _tuple$1, i, isEmpty, line, list, lt, nextIsRBrace, nindent, p, s, t, $s};return $f; }; - $ptrType(Checker).prototype.openScope = function openScope(node, comment) { - var {_arg, _arg$1, _arg$2, _arg$3, _r$1, _r$2, _r$3, check, comment, node, scope, $s, $r, $c} = $restore(this, {node, comment}); + $ptrType(printer).prototype.block = function block(b, nindent) { + var {_r, _r$1, b, nindent, p, $s, $r, $c} = $restore(this, {b, nindent}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _arg = check.environment.scope; - _r$1 = node.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _arg$1 = _r$1; - _r$2 = node.End(); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _arg$2 = _r$2; - _arg$3 = comment; - _r$3 = NewScope(_arg, _arg$1, _arg$2, _arg$3); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - scope = _r$3; - $r = check.recordScope(node, scope); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - check.environment.scope = scope; + p = this; + $r = p.setPos(b.Lbrace); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(51)])); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.stmtList(b.List, nindent, true); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r = p.lineFor(b.Rbrace); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = p.linebreak(_r, 1, 0, true); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + $r = p.setPos(b.Rbrace); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(56)])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } $s = -1; return; - /* */ } return; } var $f = {$blk: openScope, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _r$1, _r$2, _r$3, check, comment, node, scope, $s};return $f; - }; - $ptrType(Checker).prototype.closeScope = function closeScope() { - var check; - check = this; - check.environment.scope = check.environment.scope.Parent(); + /* */ } return; } var $f = {$blk: block, $c: true, $r, _r, _r$1, b, nindent, p, $s};return $f; }; - assignOp = function assignOp$1(op) { - var op; - if (23 <= op && op <= 33) { - return op + -11 >> 0; + isTypeName = function isTypeName$1(x) { + var _ref, t, t$1, x; + _ref = x; + if ($assertType(_ref, ptrType$4, true)[1]) { + t = _ref.$val; + return true; + } else if ($assertType(_ref, ptrType$32, true)[1]) { + t$1 = _ref.$val; + return isTypeName(t$1.X); } - return 0; + return false; }; - $ptrType(Checker).prototype.suspendedCall = function suspendedCall(keyword, call) { - var {_1, _r$1, call, check, code, keyword, msg, x, $s, $r, $c} = $restore(this, {keyword, call}); + stripParens = function stripParens$1(x) { + var {$24r, _r, _tuple, px, strip, x, $s, $r, $c} = $restore(this, {x}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = [x]; - check = this; - x[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - msg = ""; - code = 0; - _r$1 = check.rawExpr(x[0], call, $ifaceNil, false); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _1 = _r$1; - if (_1 === (0)) { - msg = "requires function call, not conversion"; - code = 129; - if (keyword === "go") { - code = 130; - } - } else if (_1 === (1)) { - msg = "discards result of"; - code = 128; - } else if (_1 === (2)) { - $s = -1; return; - } else { - unreachable(); - } - case 1: - $r = check.errorf(x[0], code, "%s %s %s", new sliceType$6([new $String(keyword), new $String(msg), x[0]])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: suspendedCall, $c: true, $r, _1, _r$1, call, check, code, keyword, msg, x, $s};return $f; + strip = [strip]; + _tuple = $assertType(x, ptrType$21, true); + px = _tuple[0]; + strip[0] = _tuple[1]; + /* */ if (strip[0]) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (strip[0]) { */ case 1: + $r = ast.Inspect(px.X, (function(strip) { return function stripParens·func1(node) { + var _ref, node, x$1, x$2; + _ref = node; + if ($assertType(_ref, ptrType$21, true)[1]) { + x$1 = _ref.$val; + return false; + } else if ($assertType(_ref, ptrType$38, true)[1]) { + x$2 = _ref.$val; + if (isTypeName(x$2.Type)) { + strip[0] = false; + } + return false; + } + return true; + }; })(strip)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (strip[0]) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (strip[0]) { */ case 4: + _r = stripParens(px.X); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 7; case 7: return $24r; + /* } */ case 5: + /* } */ case 2: + $s = -1; return x; + /* */ } return; } var $f = {$blk: stripParens$1, $c: true, $r, $24r, _r, _tuple, px, strip, x, $s};return $f; }; - goVal = function goVal$1(val) { - var {$24r, _1, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, _tuple$2, ok, ok$1, ok$2, val, x, x$1, x$2, $s, $r, $c} = $restore(this, {val}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if ($interfaceIsEqual(val, $ifaceNil)) { - $s = -1; return $ifaceNil; + stripParensAlways = function stripParensAlways$1(x) { + var _tuple, ok, x, x$1; + _tuple = $assertType(x, ptrType$21, true); + x$1 = _tuple[0]; + ok = _tuple[1]; + if (ok) { + return stripParensAlways(x$1.X); } - _r$1 = val.Kind(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _1 = _r$1; - /* */ if (_1 === (3)) { $s = 3; continue; } - /* */ if (_1 === (4)) { $s = 4; continue; } - /* */ if (_1 === (2)) { $s = 5; continue; } + return x; + }; + $ptrType(printer).prototype.controlClause = function controlClause(isForStmt, init, expr$1, post) { + var {_r, _r$1, expr$1, init, isForStmt, needsBlank, p, post, $s, $r, $c} = $restore(this, {isForStmt, init, expr$1, post}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + needsBlank = false; + /* */ if ($interfaceIsEqual(init, $ifaceNil) && $interfaceIsEqual(post, $ifaceNil)) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if ($interfaceIsEqual(init, $ifaceNil) && $interfaceIsEqual(post, $ifaceNil)) { */ case 2: + /* */ if (!($interfaceIsEqual(expr$1, $ifaceNil))) { $s = 5; continue; } /* */ $s = 6; continue; - /* if (_1 === (3)) { */ case 3: - _r$2 = constant.Int64Val(val); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple = _r$2; - x = _tuple[0]; - ok = _tuple[1]; - if (ok) { - $s = -1; return x; - } - _r$3 = constant.Uint64Val(val); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple$1 = _r$3; - x$1 = _tuple$1[0]; - ok$1 = _tuple$1[1]; - if (ok$1) { - $s = -1; return x$1; - } - $s = 6; continue; - /* } else if (_1 === (4)) { */ case 4: - _r$4 = constant.Float64Val(val); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _tuple$2 = _r$4; - x$2 = _tuple$2[0]; - ok$2 = _tuple$2[1]; - if (ok$2) { - $s = -1; return new $Float64(x$2); - } - $s = 6; continue; - /* } else if (_1 === (2)) { */ case 5: - _r$5 = constant.StringVal(val); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - $24r = new $String(_r$5); - $s = 11; case 11: return $24r; + /* if (!($interfaceIsEqual(expr$1, $ifaceNil))) { */ case 5: + _r = stripParens(expr$1); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = p.expr(_r); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + needsBlank = true; /* } */ case 6: - case 1: - $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: goVal$1, $c: true, $r, $24r, _1, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, _tuple$2, ok, ok$1, ok$2, val, x, x$1, x$2, $s};return $f; + $s = 4; continue; + /* } else { */ case 3: + /* */ if (!($interfaceIsEqual(init, $ifaceNil))) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!($interfaceIsEqual(init, $ifaceNil))) { */ case 9: + $r = p.stmt(init, false); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 10: + $r = p.print(new sliceType$1([new token.Token(57), new whiteSpace(32)])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!($interfaceIsEqual(expr$1, $ifaceNil))) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (!($interfaceIsEqual(expr$1, $ifaceNil))) { */ case 13: + _r$1 = stripParens(expr$1); /* */ $s = 15; case 15: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $r = p.expr(_r$1); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + needsBlank = true; + /* } */ case 14: + /* */ if (isForStmt) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (isForStmt) { */ case 17: + $r = p.print(new sliceType$1([new token.Token(57), new whiteSpace(32)])); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + needsBlank = false; + /* */ if (!($interfaceIsEqual(post, $ifaceNil))) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (!($interfaceIsEqual(post, $ifaceNil))) { */ case 20: + $r = p.stmt(post, false); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + needsBlank = true; + /* } */ case 21: + /* } */ case 18: + /* } */ case 4: + /* */ if (needsBlank) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (needsBlank) { */ case 23: + $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 24: + $s = -1; return; + /* */ } return; } var $f = {$blk: controlClause, $c: true, $r, _r, _r$1, expr$1, init, isForStmt, needsBlank, p, post, $s};return $f; }; - $ptrType(Checker).prototype.caseValues = function caseValues(x, values, seen) { - var {_entry, _entry$1, _i, _i$1, _key, _r$1, _r$2, _r$3, _ref, _ref$1, check, e, res, seen, v, val, values, vt, x, $s, $r, $c} = $restore(this, {x, values, seen}); + $ptrType(printer).prototype.indentList = function indentList(list) { + var {_i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, b, e, line, list, n, p, x, x$1, xb, xe, $s, $r, $c} = $restore(this, {list}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _ref = values; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - res = [res]; - v = [v]; - e = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - v[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = check.expr(v[0], e); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if ((x.mode === 0) || (v[0].mode === 0)) { - _i++; - /* continue L; */ $s = 1; continue s; - } - $r = check.convertUntyped(v[0], x.typ); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (v[0].mode === 0) { - _i++; - /* continue L; */ $s = 1; continue s; - } - res[0] = $clone(v[0], operand); - $r = check.comparison(res[0], x, 39, true); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (res[0].mode === 0) { - _i++; - /* continue L; */ $s = 1; continue s; - } - if (!((v[0].mode === 4))) { - _i++; - /* continue L; */ $s = 1; continue s; - } - _r$1 = goVal(v[0].val); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - val = _r$1; - /* */ if (!($interfaceIsEqual(val, $ifaceNil))) { $s = 7; continue; } + p = this; + /* */ if (list.$length >= 2) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (list.$length >= 2) { */ case 1: + _r = (0 >= list.$length ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + 0]).Pos(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = p.lineFor(_r); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + b = _r$1; + _r$2 = (x = list.$length - 1 >> 0, ((x < 0 || x >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + x])).End(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = p.lineFor(_r$2); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + e = _r$3; + /* */ if (0 < b && b < e) { $s = 7; continue; } /* */ $s = 8; continue; - /* if (!($interfaceIsEqual(val, $ifaceNil))) { */ case 7: - _ref$1 = (_entry = $mapIndex(seen,$emptyInterface.keyFor(val)), _entry !== undefined ? _entry.v : sliceType$18.nil); - _i$1 = 0; + /* if (0 < b && b < e) { */ case 7: + n = 0; + line = b; + _ref = list; + _i = 0; /* while (true) { */ case 9: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 10; continue; } - vt = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), valueType); - _r$2 = Identical(v[0].typ, vt.typ); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (_r$2) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (_r$2) { */ case 11: - $r = check.errorf(v[0], 113, "duplicate case %s in expression switch", new sliceType$6([v[0]])); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.error(new atPos(((vt.pos >> 0))), 113, "\tprevious case"); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - /* continue L; */ $s = 1; continue s; - /* } */ case 12: - _i$1++; + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 10; continue; } + x$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r$4 = x$1.Pos(); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$5 = p.lineFor(_r$4); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + xb = _r$5; + _r$6 = x$1.End(); /* */ $s = 13; case 13: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$7 = p.lineFor(_r$6); /* */ $s = 14; case 14: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + xe = _r$7; + if (line < xb) { + $s = -1; return true; + } + if (xb < xe) { + n = n + (1) >> 0; + } + line = xe; + _i++; $s = 9; continue; case 10: - _r$3 = v[0].Pos(); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _key = val; (seen || $throwRuntimeError("assignment to entry in nil map")).set($emptyInterface.keyFor(_key), { k: _key, v: $append((_entry$1 = $mapIndex(seen,$emptyInterface.keyFor(val)), _entry$1 !== undefined ? _entry$1.v : sliceType$18.nil), new valueType.ptr(_r$3, v[0].typ)) }); + $s = -1; return n > 1; /* } */ case 8: - _i++; - $s = 1; continue; - case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: caseValues, $c: true, $r, _entry, _entry$1, _i, _i$1, _key, _r$1, _r$2, _r$3, _ref, _ref$1, check, e, res, seen, v, val, values, vt, x, $s};return $f; - }; - $ptrType(Checker).prototype.isNil = function isNil(e) { - var {_r$1, _tuple, _tuple$1, check, e, name, ok, $s, $r, $c} = $restore(this, {e}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _tuple = $assertType(unparen(e), ptrType$30, true); - name = _tuple[0]; - /* */ if (!(name === ptrType$30.nil)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(name === ptrType$30.nil)) { */ case 1: - _r$1 = check.environment.lookup(name.Name); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$1 = $assertType(_r$1, ptrType$33, true); - ok = _tuple$1[1]; - $s = -1; return ok; /* } */ case 2: $s = -1; return false; - /* */ } return; } var $f = {$blk: isNil, $c: true, $r, _r$1, _tuple, _tuple$1, check, e, name, ok, $s};return $f; + /* */ } return; } var $f = {$blk: indentList, $c: true, $r, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, b, e, line, list, n, p, x, x$1, xb, xe, $s};return $f; }; - $ptrType(Checker).prototype.caseTypes = function caseTypes(x, types$1, seen) { - var {T, Ts, _entry, _i, _i$1, _key, _key$1, _keys, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _size, _v, _v$1, check, dummy, e, other, seen, t, types$1, x, $s, $r, $c} = $restore(this, {x, types$1, seen}); + $ptrType(printer).prototype.stmt = function stmt(stmt$1, nextIsRBrace) { + var {_r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _v, body, depth, e, isEmpty, nextIsRBrace, p, s, s$1, s$10, s$11, s$12, s$13, s$14, s$15, s$16, s$17, s$18, s$19, s$2, s$20, s$21, s$3, s$4, s$5, s$6, s$7, s$8, s$9, stmt$1, $s, $r, $c} = $restore(this, {stmt$1, nextIsRBrace}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - dummy = [dummy]; - T = $ifaceNil; - check = this; - dummy[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - _ref = types$1; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - e = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$1 = check.isNil(e); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (_r$1) { */ case 3: - T = $ifaceNil; - $r = check.expr(dummy[0], e); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 5; continue; - /* } else { */ case 4: - _r$2 = check.varType(e); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - T = _r$2; - if ($interfaceIsEqual(T, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { - _i++; - /* continue L; */ $s = 1; continue s; - } - /* } */ case 5: - _ref$1 = seen; - _i$1 = 0; - _keys = _ref$1 ? _ref$1.keys() : undefined; - _size = _ref$1 ? _ref$1.size : 0; - /* while (true) { */ case 9: - /* if (!(_i$1 < _size)) { break; } */ if(!(_i$1 < _size)) { $s = 10; continue; } - _key = _keys.next().value; - _entry = _ref$1.get(_key); - if (_entry === undefined) { - _i$1++; - /* continue; */ $s = 9; continue; - } - t = _entry.k; - other = _entry.v; - if ($interfaceIsEqual(T, $ifaceNil) && $interfaceIsEqual(t, $ifaceNil)) { _v = true; $s = 13; continue s; } - if (!(!($interfaceIsEqual(T, $ifaceNil)) && !($interfaceIsEqual(t, $ifaceNil)))) { _v$1 = false; $s = 14; continue s; } - _r$3 = Identical(T, t); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _v$1 = _r$3; case 14: - _v = _v$1; case 13: - /* */ if (_v) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (_v) { */ case 11: - Ts = "nil"; - /* */ if (!($interfaceIsEqual(T, $ifaceNil))) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (!($interfaceIsEqual(T, $ifaceNil))) { */ case 16: - _r$4 = TypeString(T, $methodVal(check, "qualifier")); /* */ $s = 18; case 18: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - Ts = _r$4; - /* } */ case 17: - $r = check.errorf(e, 113, "duplicate case %s in type switch", new sliceType$6([new $String(Ts)])); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.error(other, 113, "\tprevious case"); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - /* continue L; */ $s = 1; continue s; - /* } */ case 12: - _i$1++; - $s = 9; continue; - case 10: - _key$1 = T; (seen || $throwRuntimeError("assignment to entry in nil map")).set(Type.keyFor(_key$1), { k: _key$1, v: e }); - /* */ if (!(x === ptrType$62.nil) && !($interfaceIsEqual(T, $ifaceNil))) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if (!(x === ptrType$62.nil) && !($interfaceIsEqual(T, $ifaceNil))) { */ case 21: - $r = check.typeAssertion(e, x, T, true); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 22: - _i++; - $s = 1; continue; - case 2: - $s = -1; return T; - /* */ } return; } var $f = {$blk: caseTypes, $c: true, $r, T, Ts, _entry, _i, _i$1, _key, _key$1, _keys, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _size, _v, _v$1, check, dummy, e, other, seen, t, types$1, x, $s};return $f; - }; - $ptrType(Checker).prototype.stmt = function stmt(ctxt, s) { - var {T, Y, _1, _2, _3, _4, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$10, _ref$11, _ref$12, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _ref$9, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, _tuple$10, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, _v$2, _v$3, alt, c, cause, ch, check, clause, clause$1, clause$2, code, ctxt, expr, guard, guard$1, guard$2, i, i$1, i$2, ident$1, inner, inner$1, key, kind, lhs, lhs$1, lhs$2, lhs$3, lhs$4, lhsVars, msg, msg$1, n, name, obj, obj$1, obj$2, obj$3, ok, op, op$1, res, rhs, rhs$1, rhs$2, s, s$1, s$10, s$11, s$12, s$13, s$14, s$15, s$16, s$17, s$18, s$19, s$2, s$20, s$21, s$22, s$23, s$24, s$25, s$3, s$4, s$5, s$6, s$7, s$8, s$9, scopePos, scopePos$1, seen, seen$1, sx, t, t$1, typ$3, typ$4, u, u$1, uch, used, v, val, val$1, valid, vars, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $deferred, $r, $c} = $restore(this, {ctxt, s}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - ch = [ch]; - check = [check]; - val = [val]; - x = [x]; - x$1 = [x$1]; - x$2 = [x$2]; - x$3 = [x$3]; - x$4 = [x$4]; - x$5 = [x$5]; - x$6 = [x$6]; - x$7 = [x$7]; - check[0] = this; - /* */ if (false) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (false) { */ case 1: - $deferred.push([(function(ch, check, val, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7) { return function Checker·stmt·func1(scope) { - var {p, scope, $s, $r, $c} = $restore(this, {scope}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - p = $recover(); - if (!($interfaceIsEqual(p, $ifaceNil))) { - $panic(p); - } - $r = assert(scope === check[0].environment.scope); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·stmt·func1, $c: true, $r, p, scope, $s};return $f; - }; })(ch, check, val, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7), [check[0].environment.scope]]); - /* } */ case 2: - $deferred.push([$methodVal(check[0], "processDelayed"), [check[0].delayed.$length]]); - inner = (ctxt & ~28) >>> 0; - _ref = s; - /* */ if ($assertType(_ref, ptrType$63, true)[1] || $assertType(_ref, ptrType$59, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$64, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$65, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$66, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType$67, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref, ptrType$68, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref, ptrType$69, true)[1]) { $s = 9; continue; } - /* */ if ($assertType(_ref, ptrType$70, true)[1]) { $s = 10; continue; } - /* */ if ($assertType(_ref, ptrType$71, true)[1]) { $s = 11; continue; } - /* */ if ($assertType(_ref, ptrType$72, true)[1]) { $s = 12; continue; } - /* */ if ($assertType(_ref, ptrType$73, true)[1]) { $s = 13; continue; } - /* */ if ($assertType(_ref, ptrType$74, true)[1]) { $s = 14; continue; } - /* */ if ($assertType(_ref, ptrType$75, true)[1]) { $s = 15; continue; } - /* */ if ($assertType(_ref, ptrType$76, true)[1]) { $s = 16; continue; } - /* */ if ($assertType(_ref, ptrType$77, true)[1]) { $s = 17; continue; } - /* */ if ($assertType(_ref, ptrType$78, true)[1]) { $s = 18; continue; } - /* */ if ($assertType(_ref, ptrType$79, true)[1]) { $s = 19; continue; } - /* */ if ($assertType(_ref, ptrType$80, true)[1]) { $s = 20; continue; } - /* */ $s = 21; continue; - /* if ($assertType(_ref, ptrType$63, true)[1] || $assertType(_ref, ptrType$59, true)[1]) { */ case 3: - s$1 = _ref; - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$64, true)[1]) { */ case 4: + p = this; + _r = stmt$1.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = p.setPos(_r); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _ref = stmt$1; + /* */ if ($assertType(_ref, ptrType$41, true)[1]) { $s = 3; continue; } + /* */ if ($assertType(_ref, ptrType$42, true)[1]) { $s = 4; continue; } + /* */ if ($assertType(_ref, ptrType$40, true)[1]) { $s = 5; continue; } + /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 6; continue; } + /* */ if ($assertType(_ref, ptrType$43, true)[1]) { $s = 7; continue; } + /* */ if ($assertType(_ref, ptrType$44, true)[1]) { $s = 8; continue; } + /* */ if ($assertType(_ref, ptrType$45, true)[1]) { $s = 9; continue; } + /* */ if ($assertType(_ref, ptrType$46, true)[1]) { $s = 10; continue; } + /* */ if ($assertType(_ref, ptrType$47, true)[1]) { $s = 11; continue; } + /* */ if ($assertType(_ref, ptrType$48, true)[1]) { $s = 12; continue; } + /* */ if ($assertType(_ref, ptrType$49, true)[1]) { $s = 13; continue; } + /* */ if ($assertType(_ref, ptrType$50, true)[1]) { $s = 14; continue; } + /* */ if ($assertType(_ref, ptrType$51, true)[1]) { $s = 15; continue; } + /* */ if ($assertType(_ref, ptrType$52, true)[1]) { $s = 16; continue; } + /* */ if ($assertType(_ref, ptrType$53, true)[1]) { $s = 17; continue; } + /* */ if ($assertType(_ref, ptrType$54, true)[1]) { $s = 18; continue; } + /* */ if ($assertType(_ref, ptrType$55, true)[1]) { $s = 19; continue; } + /* */ if ($assertType(_ref, ptrType$56, true)[1]) { $s = 20; continue; } + /* */ if ($assertType(_ref, ptrType$57, true)[1]) { $s = 21; continue; } + /* */ if ($assertType(_ref, ptrType$58, true)[1]) { $s = 22; continue; } + /* */ if ($assertType(_ref, ptrType$59, true)[1]) { $s = 23; continue; } + /* */ $s = 24; continue; + /* switch (0) { default: if ($assertType(_ref, ptrType$41, true)[1]) { */ case 3: + s = _ref.$val; + $r = p.print(new sliceType$1([new $String("BadStmt")])); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 25; continue; + /* } else if ($assertType(_ref, ptrType$42, true)[1]) { */ case 4: + s$1 = _ref.$val; + $r = p.decl(s$1.Decl); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 25; continue; + /* } else if ($assertType(_ref, ptrType$40, true)[1]) { */ case 5: s$2 = _ref.$val; - $r = check[0].declStmt(s$2.Decl); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$65, true)[1]) { */ case 5: + $s = 25; continue; + /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 6: s$3 = _ref.$val; - check[0].environment.hasLabel = true; - $r = check[0].stmt(ctxt, s$3.Stmt); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$66, true)[1]) { */ case 6: + $r = p.print(new sliceType$1([new whiteSpace(60)])); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.expr(s$3.Label); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.setPos(s$3.Colon); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(58), new whiteSpace(62)])); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tuple = $assertType(s$3.Stmt, ptrType$40, true); + e = _tuple[0]; + isEmpty = _tuple[1]; + /* */ if (isEmpty) { $s = 32; continue; } + /* */ $s = 33; continue; + /* if (isEmpty) { */ case 32: + /* */ if (!nextIsRBrace) { $s = 35; continue; } + /* */ $s = 36; continue; + /* if (!nextIsRBrace) { */ case 35: + $r = p.print(new sliceType$1([new whiteSpace(10)])); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.setPos(e.Pos()); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(57)])); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* break; */ $s = 25; continue; + /* } */ case 36: + $s = 34; continue; + /* } else { */ case 33: + _r$1 = s$3.Stmt.Pos(); /* */ $s = 40; case 40: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = p.lineFor(_r$1); /* */ $s = 41; case 41: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = p.linebreak(_r$2, 1, 0, true); /* */ $s = 42; case 42: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + /* } */ case 34: + $r = p.stmt(s$3.Stmt, nextIsRBrace); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 25; continue; + /* } else if ($assertType(_ref, ptrType$43, true)[1]) { */ case 7: s$4 = _ref.$val; - x[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - _r$1 = check[0].rawExpr(x[0], s$4.X, $ifaceNil, false); /* */ $s = 25; case 25: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - kind = _r$1; - msg = ""; - code = 0; - _1 = x[0].mode; - /* */ if (_1 === (2)) { $s = 27; continue; } - /* */ if (_1 === (3)) { $s = 28; continue; } - /* */ $s = 29; continue; - /* if (_1 === (2)) { */ case 27: - msg = "must be called"; - code = 82; - $s = 30; continue; - /* } else if (_1 === (3)) { */ case 28: - msg = "is not an expression"; - code = 42; - $s = 30; continue; - /* } else { */ case 29: - /* */ if (kind === 2) { $s = 31; continue; } - /* */ $s = 32; continue; - /* if (kind === 2) { */ case 31: - $s = 33; case 33: return; - /* } */ case 32: - msg = "is not used"; - code = 100; - /* } */ case 30: - case 26: - $r = check[0].errorf(x[0], code, "%s %s", new sliceType$6([x[0], new $String(msg)])); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$67, true)[1]) { */ case 7: + $r = p.expr0(s$4.X, 1); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 25; continue; + /* } else if ($assertType(_ref, ptrType$44, true)[1]) { */ case 8: s$5 = _ref.$val; - _tmp = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - _tmp$1 = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - ch[0] = $clone(_tmp, operand); - val[0] = $clone(_tmp$1, operand); - $r = check[0].expr(ch[0], s$5.Chan); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].expr(val[0], s$5.Value); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if ((ch[0].mode === 0) || (val[0].mode === 0)) { $s = 37; continue; } - /* */ $s = 38; continue; - /* if ((ch[0].mode === 0) || (val[0].mode === 0)) { */ case 37: - $s = 39; case 39: return; - /* } */ case 38: - _r$2 = coreType(ch[0].typ); /* */ $s = 40; case 40: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - u = _r$2; - /* */ if ($interfaceIsEqual(u, $ifaceNil)) { $s = 41; continue; } - /* */ $s = 42; continue; - /* if ($interfaceIsEqual(u, $ifaceNil)) { */ case 41: - _r$3 = inNode(s$5, s$5.Arrow); /* */ $s = 43; case 43: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $r = check[0].errorf((x$8 = _r$3, new x$8.constructor.elem(x$8)), 59, "invalid operation: cannot send to %s: no core type", new sliceType$6([ch[0]])); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 45; case 45: return; - /* } */ case 42: - _tuple = $assertType(u, ptrType$29, true); - uch = _tuple[0]; - /* */ if (uch === ptrType$29.nil) { $s = 46; continue; } - /* */ $s = 47; continue; - /* if (uch === ptrType$29.nil) { */ case 46: - _r$4 = inNode(s$5, s$5.Arrow); /* */ $s = 48; case 48: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $r = check[0].errorf((x$9 = _r$4, new x$9.constructor.elem(x$9)), 59, "invalid operation: cannot send to non-channel %s", new sliceType$6([ch[0]])); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 50; case 50: return; - /* } */ case 47: - /* */ if (uch.dir === 2) { $s = 51; continue; } - /* */ $s = 52; continue; - /* if (uch.dir === 2) { */ case 51: - _r$5 = inNode(s$5, s$5.Arrow); /* */ $s = 53; case 53: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - $r = check[0].errorf((x$10 = _r$5, new x$10.constructor.elem(x$10)), 59, "invalid operation: cannot send to receive-only channel %s", new sliceType$6([ch[0]])); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 55; case 55: return; - /* } */ case 52: - $r = check[0].assignment(val[0], uch.elem, "send"); /* */ $s = 56; case 56: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$68, true)[1]) { */ case 8: + $r = p.expr0(s$5.Chan, 1); /* */ $s = 45; case 45: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.setPos(s$5.Arrow); /* */ $s = 47; case 47: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(36), new whiteSpace(32)])); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.expr0(s$5.Value, 1); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 25; continue; + /* } else if ($assertType(_ref, ptrType$45, true)[1]) { */ case 9: s$6 = _ref.$val; - op = 0; - _2 = s$6.Tok; - /* */ if (_2 === (37)) { $s = 58; continue; } - /* */ if (_2 === (38)) { $s = 59; continue; } - /* */ $s = 60; continue; - /* if (_2 === (37)) { */ case 58: - op = 12; - $s = 61; continue; - /* } else if (_2 === (38)) { */ case 59: - op = 13; - $s = 61; continue; - /* } else { */ case 60: - _r$6 = inNode(s$6, s$6.TokPos); /* */ $s = 62; case 62: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - $r = check[0].errorf((x$11 = _r$6, new x$11.constructor.elem(x$11)), -1, "unknown inc/dec operation %s", new sliceType$6([new token.Token(s$6.Tok)])); /* */ $s = 63; case 63: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 64; case 64: return; - /* } */ case 61: - case 57: - x$1[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = check[0].expr(x$1[0], s$6.X); /* */ $s = 65; case 65: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (x$1[0].mode === 0) { $s = 66; continue; } - /* */ $s = 67; continue; - /* if (x$1[0].mode === 0) { */ case 66: - $s = 68; case 68: return; - /* } */ case 67: - _r$7 = allNumeric(x$1[0].typ); /* */ $s = 71; case 71: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - /* */ if (!_r$7) { $s = 69; continue; } - /* */ $s = 70; continue; - /* if (!_r$7) { */ case 69: - $r = check[0].errorf(s$6.X, 48, "invalid operation: %s%s (non-numeric type %s)", new sliceType$6([s$6.X, new token.Token(s$6.Tok), x$1[0].typ])); /* */ $s = 72; case 72: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 73; case 73: return; - /* } */ case 70: - _r$8 = s$6.X.Pos(); /* */ $s = 74; case 74: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - Y = new ast.BasicLit.ptr(_r$8, 5, "1"); - $r = check[0].binary(x$1[0], $ifaceNil, s$6.X, Y, op, s$6.TokPos); /* */ $s = 75; case 75: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (x$1[0].mode === 0) { $s = 76; continue; } - /* */ $s = 77; continue; - /* if (x$1[0].mode === 0) { */ case 76: - $s = 78; case 78: return; - /* } */ case 77: - _r$9 = check[0].assignVar(s$6.X, x$1[0]); /* */ $s = 79; case 79: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _r$9; - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$69, true)[1]) { */ case 9: + $r = p.expr0(s$6.X, 2); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.setPos(s$6.TokPos); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(s$6.Tok)])); /* */ $s = 52; case 52: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 25; continue; + /* } else if ($assertType(_ref, ptrType$46, true)[1]) { */ case 10: s$7 = _ref.$val; - _3 = s$7.Tok; - /* */ if ((_3 === (42)) || (_3 === (47))) { $s = 81; continue; } - /* */ $s = 82; continue; - /* if ((_3 === (42)) || (_3 === (47))) { */ case 81: - /* */ if (s$7.Lhs.$length === 0) { $s = 84; continue; } - /* */ $s = 85; continue; - /* if (s$7.Lhs.$length === 0) { */ case 84: - $r = check[0].error(s$7, -1, "missing lhs in assignment"); /* */ $s = 86; case 86: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 87; case 87: return; - /* } */ case 85: - /* */ if (s$7.Tok === 47) { $s = 88; continue; } - /* */ $s = 89; continue; - /* if (s$7.Tok === 47) { */ case 88: - _r$10 = inNode(s$7, s$7.TokPos); /* */ $s = 91; case 91: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - $r = check[0].shortVarDecl((x$12 = _r$10, new x$12.constructor.elem(x$12)), s$7.Lhs, s$7.Rhs); /* */ $s = 92; case 92: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 90; continue; - /* } else { */ case 89: - $r = check[0].assignVars(s$7.Lhs, s$7.Rhs); /* */ $s = 93; case 93: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 90: - $s = 83; continue; - /* } else { */ case 82: - /* */ if (!((s$7.Lhs.$length === 1)) || !((s$7.Rhs.$length === 1))) { $s = 94; continue; } - /* */ $s = 95; continue; - /* if (!((s$7.Lhs.$length === 1)) || !((s$7.Rhs.$length === 1))) { */ case 94: - _r$11 = inNode(s$7, s$7.TokPos); /* */ $s = 96; case 96: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - $r = check[0].errorf((x$13 = _r$11, new x$13.constructor.elem(x$13)), 20, "assignment operation %s requires single-valued expressions", new sliceType$6([new token.Token(s$7.Tok)])); /* */ $s = 97; case 97: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 98; case 98: return; - /* } */ case 95: - op$1 = assignOp(s$7.Tok); - /* */ if (op$1 === 0) { $s = 99; continue; } - /* */ $s = 100; continue; - /* if (op$1 === 0) { */ case 99: - $r = check[0].errorf(new atPos(((s$7.TokPos >> 0))), -1, "unknown assignment operation %s", new sliceType$6([new token.Token(s$7.Tok)])); /* */ $s = 101; case 101: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 102; case 102: return; - /* } */ case 100: - x$2[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = check[0].binary(x$2[0], $ifaceNil, (x$14 = s$7.Lhs, (0 >= x$14.$length ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + 0])), (x$15 = s$7.Rhs, (0 >= x$15.$length ? ($throwRuntimeError("index out of range"), undefined) : x$15.$array[x$15.$offset + 0])), op$1, s$7.TokPos); /* */ $s = 103; case 103: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (x$2[0].mode === 0) { $s = 104; continue; } - /* */ $s = 105; continue; - /* if (x$2[0].mode === 0) { */ case 104: - $s = 106; case 106: return; - /* } */ case 105: - _r$12 = check[0].assignVar((x$16 = s$7.Lhs, (0 >= x$16.$length ? ($throwRuntimeError("index out of range"), undefined) : x$16.$array[x$16.$offset + 0])), x$2[0]); /* */ $s = 107; case 107: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _r$12; - /* } */ case 83: - case 80: - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$70, true)[1]) { */ case 10: + depth = 1; + if (s$7.Lhs.$length > 1 && s$7.Rhs.$length > 1) { + depth = depth + (1) >> 0; + } + _r$4 = s$7.Pos(); /* */ $s = 53; case 53: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $r = p.exprList(_r$4, s$7.Lhs, depth, 0, s$7.TokPos, false); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.setPos(s$7.TokPos); /* */ $s = 56; case 56: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(s$7.Tok), new whiteSpace(32)])); /* */ $s = 57; case 57: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.exprList(s$7.TokPos, s$7.Rhs, depth, 0, 0, false); /* */ $s = 58; case 58: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 25; continue; + /* } else if ($assertType(_ref, ptrType$47, true)[1]) { */ case 11: s$8 = _ref.$val; - $r = check[0].suspendedCall("go", s$8.Call); /* */ $s = 108; case 108: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$71, true)[1]) { */ case 11: + $r = p.print(new sliceType$1([new token.Token(72), new whiteSpace(32)])); /* */ $s = 59; case 59: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.expr(s$8.Call); /* */ $s = 60; case 60: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 25; continue; + /* } else if ($assertType(_ref, ptrType$48, true)[1]) { */ case 12: s$9 = _ref.$val; - $r = check[0].suspendedCall("defer", s$9.Call); /* */ $s = 109; case 109: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$72, true)[1]) { */ case 12: + $r = p.print(new sliceType$1([new token.Token(67), new whiteSpace(32)])); /* */ $s = 61; case 61: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.expr(s$9.Call); /* */ $s = 62; case 62: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 25; continue; + /* } else if ($assertType(_ref, ptrType$49, true)[1]) { */ case 13: s$10 = _ref.$val; - res = check[0].environment.sig.results; - /* */ if ((s$10.Results.$length === 0) && res.Len() > 0 && !((x$17 = res.vars, (0 >= x$17.$length ? ($throwRuntimeError("index out of range"), undefined) : x$17.$array[x$17.$offset + 0])).object.name === "")) { $s = 110; continue; } - /* */ $s = 111; continue; - /* if ((s$10.Results.$length === 0) && res.Len() > 0 && !((x$17 = res.vars, (0 >= x$17.$length ? ($throwRuntimeError("index out of range"), undefined) : x$17.$array[x$17.$offset + 0])).object.name === "")) { */ case 110: - _ref$1 = res.vars; - _i = 0; - /* while (true) { */ case 113: - /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 114; continue; } - obj = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); - _r$13 = check[0].environment.lookup(obj.object.name); /* */ $s = 115; case 115: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - alt = _r$13; - /* */ if (!($interfaceIsEqual(alt, $ifaceNil)) && !($interfaceIsEqual(alt, obj))) { $s = 116; continue; } - /* */ $s = 117; continue; - /* if (!($interfaceIsEqual(alt, $ifaceNil)) && !($interfaceIsEqual(alt, obj))) { */ case 116: - $r = check[0].errorf(s$10, 104, "result parameter %s not in scope at return", new sliceType$6([new $String(obj.object.name)])); /* */ $s = 118; case 118: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].errorf(alt, 104, "\tinner declaration of %s", new sliceType$6([obj])); /* */ $s = 119; case 119: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 117: - _i++; - $s = 113; continue; - case 114: - $s = 112; continue; - /* } else { */ case 111: - lhs = sliceType$10.nil; - if (res.Len() > 0) { - lhs = res.vars; - } - $r = check[0].initVars(lhs, s$10.Results, s$10); /* */ $s = 120; case 120: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 112: - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$73, true)[1]) { */ case 13: + $r = p.print(new sliceType$1([new token.Token(80)])); /* */ $s = 63; case 63: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!(s$10.Results === sliceType$7.nil)) { $s = 64; continue; } + /* */ $s = 65; continue; + /* if (!(s$10.Results === sliceType$7.nil)) { */ case 64: + $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 66; case 66: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$5 = p.indentList(s$10.Results); /* */ $s = 70; case 70: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (_r$5) { $s = 67; continue; } + /* */ $s = 68; continue; + /* if (_r$5) { */ case 67: + $r = p.print(new sliceType$1([new whiteSpace(62)])); /* */ $s = 71; case 71: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.exprList(0, s$10.Results, 1, 2, 0, false); /* */ $s = 72; case 72: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new whiteSpace(60)])); /* */ $s = 73; case 73: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 69; continue; + /* } else { */ case 68: + $r = p.exprList(0, s$10.Results, 1, 0, 0, false); /* */ $s = 74; case 74: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 69: + /* } */ case 65: + $s = 25; continue; + /* } else if ($assertType(_ref, ptrType$50, true)[1]) { */ case 14: s$11 = _ref.$val; - /* */ if (!(s$11.Label === ptrType$30.nil)) { $s = 121; continue; } - /* */ $s = 122; continue; - /* if (!(s$11.Label === ptrType$30.nil)) { */ case 121: - check[0].environment.hasLabel = true; - $s = 123; case 123: return; - /* } */ case 122: - _4 = s$11.Tok; - /* */ if (_4 === (61)) { $s = 125; continue; } - /* */ if (_4 === (65)) { $s = 126; continue; } - /* */ if (_4 === (69)) { $s = 127; continue; } - /* */ $s = 128; continue; - /* if (_4 === (61)) { */ case 125: - /* */ if (((ctxt & 1) >>> 0) === 0) { $s = 130; continue; } - /* */ $s = 131; continue; - /* if (((ctxt & 1) >>> 0) === 0) { */ case 130: - $r = check[0].error(s$11, 110, "break not in for, switch, or select statement"); /* */ $s = 132; case 132: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 131: - $s = 129; continue; - /* } else if (_4 === (65)) { */ case 126: - /* */ if (((ctxt & 2) >>> 0) === 0) { $s = 133; continue; } - /* */ $s = 134; continue; - /* if (((ctxt & 2) >>> 0) === 0) { */ case 133: - $r = check[0].error(s$11, 111, "continue not in for statement"); /* */ $s = 135; case 135: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 134: - $s = 129; continue; - /* } else if (_4 === (69)) { */ case 127: - /* */ if (((ctxt & 4) >>> 0) === 0) { $s = 136; continue; } - /* */ $s = 137; continue; - /* if (((ctxt & 4) >>> 0) === 0) { */ case 136: - msg$1 = ""; - if (!((((ctxt & 8) >>> 0) === 0))) { - msg$1 = "cannot fallthrough final case in switch"; - } else if (!((((ctxt & 16) >>> 0) === 0))) { - msg$1 = "cannot fallthrough in type switch"; - } else { - msg$1 = "fallthrough statement out of place"; - } - $r = check[0].error(s$11, 112, msg$1); /* */ $s = 138; case 138: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 137: - $s = 129; continue; - /* } else { */ case 128: - $r = check[0].errorf(s$11, -1, "branch statement: %s", new sliceType$6([new token.Token(s$11.Tok)])); /* */ $s = 139; case 139: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 129: - case 124: - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$74, true)[1]) { */ case 14: + $r = p.print(new sliceType$1([new token.Token(s$11.Tok)])); /* */ $s = 75; case 75: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!(s$11.Label === ptrType$4.nil)) { $s = 76; continue; } + /* */ $s = 77; continue; + /* if (!(s$11.Label === ptrType$4.nil)) { */ case 76: + $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 78; case 78: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.expr(s$11.Label); /* */ $s = 79; case 79: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 77: + $s = 25; continue; + /* } else if ($assertType(_ref, ptrType$51, true)[1]) { */ case 15: s$12 = _ref.$val; - $r = check[0].openScope(s$12, "block"); /* */ $s = 140; case 140: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(check[0], "closeScope"), []]); - $r = check[0].stmtList(inner, s$12.List); /* */ $s = 141; case 141: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$75, true)[1]) { */ case 15: + $r = p.block(s$12, 1); /* */ $s = 80; case 80: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 25; continue; + /* } else if ($assertType(_ref, ptrType$52, true)[1]) { */ case 16: s$13 = _ref.$val; - $r = check[0].openScope(s$13, "if"); /* */ $s = 142; case 142: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(check[0], "closeScope"), []]); - $r = check[0].simpleStmt(s$13.Init); /* */ $s = 143; case 143: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x$3[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = check[0].expr(x$3[0], s$13.Cond); /* */ $s = 144; case 144: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (!(!((x$3[0].mode === 0)))) { _v = false; $s = 147; continue s; } - _r$14 = allBoolean(x$3[0].typ); /* */ $s = 148; case 148: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - _v = !_r$14; case 147: - /* */ if (_v) { $s = 145; continue; } - /* */ $s = 146; continue; - /* if (_v) { */ case 145: - $r = check[0].error(s$13.Cond, 105, "non-boolean condition in if statement"); /* */ $s = 149; case 149: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 146: - $r = check[0].stmt(inner, s$13.Body); /* */ $s = 150; case 150: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _ref$2 = s$13.Else; - /* */ if (_ref$2 === $ifaceNil || $assertType(_ref$2, ptrType$63, true)[1]) { $s = 151; continue; } - /* */ if ($assertType(_ref$2, ptrType$75, true)[1] || $assertType(_ref$2, ptrType$74, true)[1]) { $s = 152; continue; } - /* */ $s = 153; continue; - /* if (_ref$2 === $ifaceNil || $assertType(_ref$2, ptrType$63, true)[1]) { */ case 151: - $s = 154; continue; - /* } else if ($assertType(_ref$2, ptrType$75, true)[1] || $assertType(_ref$2, ptrType$74, true)[1]) { */ case 152: - $r = check[0].stmt(inner, s$13.Else); /* */ $s = 155; case 155: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 154; continue; - /* } else { */ case 153: - $r = check[0].error(s$13.Else, -1, "invalid else branch in if statement"); /* */ $s = 156; case 156: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 154: - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$76, true)[1]) { */ case 16: + $r = p.print(new sliceType$1([new token.Token(74)])); /* */ $s = 81; case 81: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.controlClause(false, s$13.Init, s$13.Cond, $ifaceNil); /* */ $s = 82; case 82: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.block(s$13.Body, 1); /* */ $s = 83; case 83: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!($interfaceIsEqual(s$13.Else, $ifaceNil))) { $s = 84; continue; } + /* */ $s = 85; continue; + /* if (!($interfaceIsEqual(s$13.Else, $ifaceNil))) { */ case 84: + $r = p.print(new sliceType$1([new whiteSpace(32), new token.Token(68), new whiteSpace(32)])); /* */ $s = 86; case 86: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _ref$1 = s$13.Else; + /* */ if ($assertType(_ref$1, ptrType$51, true)[1] || $assertType(_ref$1, ptrType$52, true)[1]) { $s = 87; continue; } + /* */ $s = 88; continue; + /* if ($assertType(_ref$1, ptrType$51, true)[1] || $assertType(_ref$1, ptrType$52, true)[1]) { */ case 87: + $r = p.stmt(s$13.Else, nextIsRBrace); /* */ $s = 90; case 90: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 89; continue; + /* } else { */ case 88: + $r = p.print(new sliceType$1([new token.Token(51), new whiteSpace(62), new whiteSpace(12)])); /* */ $s = 91; case 91: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.stmt(s$13.Else, true); /* */ $s = 92; case 92: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new whiteSpace(60), new whiteSpace(12), new token.Token(56)])); /* */ $s = 93; case 93: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 89: + /* } */ case 85: + $s = 25; continue; + /* } else if ($assertType(_ref, ptrType$53, true)[1]) { */ case 17: s$14 = _ref.$val; - inner = (inner | (1)) >>> 0; - $r = check[0].openScope(s$14, "switch"); /* */ $s = 157; case 157: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(check[0], "closeScope"), []]); - $r = check[0].simpleStmt(s$14.Init); /* */ $s = 158; case 158: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x$4[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - /* */ if (!($interfaceIsEqual(s$14.Tag, $ifaceNil))) { $s = 159; continue; } - /* */ $s = 160; continue; - /* if (!($interfaceIsEqual(s$14.Tag, $ifaceNil))) { */ case 159: - $r = check[0].expr(x$4[0], s$14.Tag); /* */ $s = 162; case 162: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].assignment(x$4[0], $ifaceNil, "switch expression"); /* */ $s = 163; case 163: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (!(!((x$4[0].mode === 0)))) { _v$2 = false; $s = 167; continue s; } - _r$15 = Comparable(x$4[0].typ); /* */ $s = 168; case 168: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - _v$2 = !_r$15; case 167: - if (!(_v$2)) { _v$1 = false; $s = 166; continue s; } - _r$16 = hasNil(x$4[0].typ); /* */ $s = 169; case 169: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - _v$1 = !_r$16; case 166: - /* */ if (_v$1) { $s = 164; continue; } - /* */ $s = 165; continue; - /* if (_v$1) { */ case 164: - $r = check[0].errorf(x$4[0], 117, "cannot switch on %s (%s is not comparable)", new sliceType$6([x$4[0], x$4[0].typ])); /* */ $s = 170; case 170: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x$4[0].mode = 0; - /* } */ case 165: - $s = 161; continue; - /* } else { */ case 160: - x$4[0].mode = 4; - x$4[0].typ = (1 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 1]); - x$4[0].val = constant.MakeBool(true); - x$4[0].expr = new ast.Ident.ptr(s$14.Body.Lbrace, "true", ptrType$81.nil); - /* } */ case 161: - $r = check[0].multipleDefaults(s$14.Body.List); /* */ $s = 171; case 171: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - seen = new $global.Map(); - _ref$3 = s$14.Body.List; - _i$1 = 0; - /* while (true) { */ case 172: - /* if (!(_i$1 < _ref$3.$length)) { break; } */ if(!(_i$1 < _ref$3.$length)) { $s = 173; continue; } - i = _i$1; - c = ((_i$1 < 0 || _i$1 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$1]); - _tuple$1 = $assertType(c, ptrType$60, true); - clause = _tuple$1[0]; - /* */ if (clause === ptrType$60.nil) { $s = 174; continue; } - /* */ $s = 175; continue; - /* if (clause === ptrType$60.nil) { */ case 174: - $r = check[0].error(c, -1, "incorrect expression switch case"); /* */ $s = 176; case 176: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$1++; - /* continue; */ $s = 172; continue; - /* } */ case 175: - $r = check[0].caseValues(x$4[0], clause.List, seen); /* */ $s = 177; case 177: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].openScope(clause, "case"); /* */ $s = 178; case 178: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - inner$1 = inner; - if ((i + 1 >> 0) < s$14.Body.List.$length) { - inner$1 = (inner$1 | (4)) >>> 0; - } else { - inner$1 = (inner$1 | (8)) >>> 0; - } - $r = check[0].stmtList(inner$1, clause.Body); /* */ $s = 179; case 179: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - check[0].closeScope(); - _i$1++; - $s = 172; continue; - case 173: - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$77, true)[1]) { */ case 17: + /* */ if (!(s$14.List === sliceType$7.nil)) { $s = 94; continue; } + /* */ $s = 95; continue; + /* if (!(s$14.List === sliceType$7.nil)) { */ case 94: + $r = p.print(new sliceType$1([new token.Token(62), new whiteSpace(32)])); /* */ $s = 97; case 97: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.exprList(s$14.Pos(), s$14.List, 1, 0, s$14.Colon, false); /* */ $s = 98; case 98: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 96; continue; + /* } else { */ case 95: + $r = p.print(new sliceType$1([new token.Token(66)])); /* */ $s = 99; case 99: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 96: + $r = p.setPos(s$14.Colon); /* */ $s = 100; case 100: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(58)])); /* */ $s = 101; case 101: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.stmtList(s$14.Body, 1, nextIsRBrace); /* */ $s = 102; case 102: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 25; continue; + /* } else if ($assertType(_ref, ptrType$54, true)[1]) { */ case 18: s$15 = _ref.$val; - inner = (inner | (17)) >>> 0; - $r = check[0].openScope(s$15, "type switch"); /* */ $s = 180; case 180: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(check[0], "closeScope"), []]); - $r = check[0].simpleStmt(s$15.Init); /* */ $s = 181; case 181: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - lhs$1 = ptrType$30.nil; - rhs = $ifaceNil; - _ref$4 = s$15.Assign; - /* */ if ($assertType(_ref$4, ptrType$66, true)[1]) { $s = 182; continue; } - /* */ if ($assertType(_ref$4, ptrType$69, true)[1]) { $s = 183; continue; } - /* */ $s = 184; continue; - /* if ($assertType(_ref$4, ptrType$66, true)[1]) { */ case 182: - guard = _ref$4.$val; - rhs = guard.X; - $s = 185; continue; - /* } else if ($assertType(_ref$4, ptrType$69, true)[1]) { */ case 183: - guard$1 = _ref$4.$val; - /* */ if (!((guard$1.Lhs.$length === 1)) || !((guard$1.Tok === 47)) || !((guard$1.Rhs.$length === 1))) { $s = 186; continue; } - /* */ $s = 187; continue; - /* if (!((guard$1.Lhs.$length === 1)) || !((guard$1.Tok === 47)) || !((guard$1.Rhs.$length === 1))) { */ case 186: - $r = check[0].error(s$15, -1, "incorrect form of type switch guard"); /* */ $s = 188; case 188: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 189; case 189: return; - /* } */ case 187: - _tuple$2 = $assertType((x$18 = guard$1.Lhs, (0 >= x$18.$length ? ($throwRuntimeError("index out of range"), undefined) : x$18.$array[x$18.$offset + 0])), ptrType$30, true); - lhs$1 = _tuple$2[0]; - /* */ if (lhs$1 === ptrType$30.nil) { $s = 190; continue; } - /* */ $s = 191; continue; - /* if (lhs$1 === ptrType$30.nil) { */ case 190: - $r = check[0].error(s$15, -1, "incorrect form of type switch guard"); /* */ $s = 192; case 192: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 193; case 193: return; - /* } */ case 191: - /* */ if (lhs$1.Name === "_") { $s = 194; continue; } - /* */ $s = 195; continue; - /* if (lhs$1.Name === "_") { */ case 194: - $r = check[0].softErrorf(lhs$1, 19, "no new variable on left side of :=", sliceType$6.nil); /* */ $s = 197; case 197: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - lhs$1 = ptrType$30.nil; - $s = 196; continue; - /* } else { */ case 195: - $r = check[0].recordDef(lhs$1, $ifaceNil); /* */ $s = 198; case 198: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 196: - rhs = (x$19 = guard$1.Rhs, (0 >= x$19.$length ? ($throwRuntimeError("index out of range"), undefined) : x$19.$array[x$19.$offset + 0])); - $s = 185; continue; - /* } else { */ case 184: - guard$2 = _ref$4; - $r = check[0].error(s$15, -1, "incorrect form of type switch guard"); /* */ $s = 199; case 199: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 200; case 200: return; - /* } */ case 185: - _tuple$3 = $assertType(rhs, ptrType$82, true); - expr = _tuple$3[0]; - /* */ if (expr === ptrType$82.nil || !($interfaceIsEqual(expr.Type, $ifaceNil))) { $s = 201; continue; } - /* */ $s = 202; continue; - /* if (expr === ptrType$82.nil || !($interfaceIsEqual(expr.Type, $ifaceNil))) { */ case 201: - $r = check[0].error(s$15, -1, "incorrect form of type switch guard"); /* */ $s = 203; case 203: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 204; case 204: return; - /* } */ case 202: - x$5[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = check[0].expr(x$5[0], expr.X); /* */ $s = 205; case 205: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (x$5[0].mode === 0) { $s = 206; continue; } - /* */ $s = 207; continue; - /* if (x$5[0].mode === 0) { */ case 206: - $s = 208; case 208: return; - /* } */ case 207: - sx = ptrType$62.nil; - /* */ if (isTypeParam(x$5[0].typ)) { $s = 209; continue; } - /* */ $s = 210; continue; - /* if (isTypeParam(x$5[0].typ)) { */ case 209: - $r = check[0].errorf(x$5[0], 116, "cannot use type switch on type parameter value %s", new sliceType$6([x$5[0]])); /* */ $s = 212; case 212: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 211; continue; - /* } else { */ case 210: - _r$17 = under(x$5[0].typ); /* */ $s = 213; case 213: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - _tuple$4 = $assertType(_r$17, ptrType$13, true); - ok = _tuple$4[1]; - /* */ if (ok) { $s = 214; continue; } - /* */ $s = 215; continue; - /* if (ok) { */ case 214: - sx = x$5[0]; - $s = 216; continue; - /* } else { */ case 215: - $r = check[0].errorf(x$5[0], 116, "%s is not an interface", new sliceType$6([x$5[0]])); /* */ $s = 217; case 217: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 216: - /* } */ case 211: - $r = check[0].multipleDefaults(s$15.Body.List); /* */ $s = 218; case 218: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - lhsVars = sliceType$10.nil; - seen$1 = new $global.Map(); - _ref$5 = s$15.Body.List; - _i$2 = 0; - /* while (true) { */ case 219: - /* if (!(_i$2 < _ref$5.$length)) { break; } */ if(!(_i$2 < _ref$5.$length)) { $s = 220; continue; } - s$20 = ((_i$2 < 0 || _i$2 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$2]); - _tuple$5 = $assertType(s$20, ptrType$60, true); - clause$1 = _tuple$5[0]; - /* */ if (clause$1 === ptrType$60.nil) { $s = 221; continue; } - /* */ $s = 222; continue; - /* if (clause$1 === ptrType$60.nil) { */ case 221: - $r = check[0].error(s$20, -1, "incorrect type switch case"); /* */ $s = 223; case 223: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$2++; - /* continue; */ $s = 219; continue; - /* } */ case 222: - _r$18 = check[0].caseTypes(sx, clause$1.List, seen$1); /* */ $s = 224; case 224: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - T = _r$18; - $r = check[0].openScope(clause$1, "case"); /* */ $s = 225; case 225: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!(lhs$1 === ptrType$30.nil)) { $s = 226; continue; } - /* */ $s = 227; continue; - /* if (!(lhs$1 === ptrType$30.nil)) { */ case 226: - if (!((clause$1.List.$length === 1)) || $interfaceIsEqual(T, $ifaceNil)) { - T = x$5[0].typ; - } - obj$1 = NewVar(lhs$1.Pos(), check[0].pkg, lhs$1.Name, T); - scopePos = clause$1.Pos() + 7 >> 0; - n = clause$1.List.$length; - /* */ if (n > 0) { $s = 228; continue; } - /* */ $s = 229; continue; - /* if (n > 0) { */ case 228: - _r$19 = (x$20 = clause$1.List, x$21 = n - 1 >> 0, ((x$21 < 0 || x$21 >= x$20.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$20.$array[x$20.$offset + x$21])).End(); /* */ $s = 230; case 230: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - scopePos = _r$19; - /* } */ case 229: - $r = check[0].declare(check[0].environment.scope, ptrType$30.nil, obj$1, scopePos); /* */ $s = 231; case 231: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].recordImplicit(clause$1, obj$1); /* */ $s = 232; case 232: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - lhsVars = $append(lhsVars, obj$1); - /* } */ case 227: - $r = check[0].stmtList(inner, clause$1.Body); /* */ $s = 233; case 233: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - check[0].closeScope(); - _i$2++; - $s = 219; continue; - case 220: - /* */ if (!(lhs$1 === ptrType$30.nil)) { $s = 234; continue; } - /* */ $s = 235; continue; - /* if (!(lhs$1 === ptrType$30.nil)) { */ case 234: - used = false; - _ref$6 = lhsVars; - _i$3 = 0; - while (true) { - if (!(_i$3 < _ref$6.$length)) { break; } - v = ((_i$3 < 0 || _i$3 >= _ref$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$6.$array[_ref$6.$offset + _i$3]); - if (v.used) { - used = true; - } - v.used = true; - _i$3++; - } - /* */ if (!used) { $s = 236; continue; } - /* */ $s = 237; continue; - /* if (!used) { */ case 236: - $r = check[0].softErrorf(lhs$1, 101, "%s declared and not used", new sliceType$6([new $String(lhs$1.Name)])); /* */ $s = 238; case 238: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 237: - /* } */ case 235: - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$78, true)[1]) { */ case 18: + $r = p.print(new sliceType$1([new token.Token(83)])); /* */ $s = 103; case 103: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.controlClause(false, s$15.Init, s$15.Tag, $ifaceNil); /* */ $s = 104; case 104: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.block(s$15.Body, 0); /* */ $s = 105; case 105: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 25; continue; + /* } else if ($assertType(_ref, ptrType$55, true)[1]) { */ case 19: s$16 = _ref.$val; - inner = (inner | (1)) >>> 0; - $r = check[0].multipleDefaults(s$16.Body.List); /* */ $s = 239; case 239: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _ref$7 = s$16.Body.List; - _i$4 = 0; - /* while (true) { */ case 240: - /* if (!(_i$4 < _ref$7.$length)) { break; } */ if(!(_i$4 < _ref$7.$length)) { $s = 241; continue; } - s$21 = ((_i$4 < 0 || _i$4 >= _ref$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$7.$array[_ref$7.$offset + _i$4]); - _tuple$6 = $assertType(s$21, ptrType$61, true); - clause$2 = _tuple$6[0]; - if (clause$2 === ptrType$61.nil) { - _i$4++; - /* continue; */ $s = 240; continue; - } - valid = false; - rhs$1 = $ifaceNil; - _ref$8 = clause$2.Comm; - if (_ref$8 === $ifaceNil || $assertType(_ref$8, ptrType$67, true)[1]) { - s$22 = _ref$8; - valid = true; - } else if ($assertType(_ref$8, ptrType$69, true)[1]) { - s$23 = _ref$8.$val; - if (s$23.Rhs.$length === 1) { - rhs$1 = (x$22 = s$23.Rhs, (0 >= x$22.$length ? ($throwRuntimeError("index out of range"), undefined) : x$22.$array[x$22.$offset + 0])); + $r = p.print(new sliceType$1([new token.Token(83)])); /* */ $s = 106; case 106: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!($interfaceIsEqual(s$16.Init, $ifaceNil))) { $s = 107; continue; } + /* */ $s = 108; continue; + /* if (!($interfaceIsEqual(s$16.Init, $ifaceNil))) { */ case 107: + $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 109; case 109: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.stmt(s$16.Init, false); /* */ $s = 110; case 110: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(57)])); /* */ $s = 111; case 111: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 108: + $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 112; case 112: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.stmt(s$16.Assign, false); /* */ $s = 113; case 113: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 114; case 114: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.block(s$16.Body, 0); /* */ $s = 115; case 115: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 25; continue; + /* } else if ($assertType(_ref, ptrType$56, true)[1]) { */ case 20: + s$17 = _ref.$val; + /* */ if (!($interfaceIsEqual(s$17.Comm, $ifaceNil))) { $s = 116; continue; } + /* */ $s = 117; continue; + /* if (!($interfaceIsEqual(s$17.Comm, $ifaceNil))) { */ case 116: + $r = p.print(new sliceType$1([new token.Token(62), new whiteSpace(32)])); /* */ $s = 119; case 119: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.stmt(s$17.Comm, false); /* */ $s = 120; case 120: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 118; continue; + /* } else { */ case 117: + $r = p.print(new sliceType$1([new token.Token(66)])); /* */ $s = 121; case 121: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 118: + $r = p.setPos(s$17.Colon); /* */ $s = 122; case 122: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(58)])); /* */ $s = 123; case 123: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.stmtList(s$17.Body, 1, nextIsRBrace); /* */ $s = 124; case 124: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 25; continue; + /* } else if ($assertType(_ref, ptrType$57, true)[1]) { */ case 21: + s$18 = _ref.$val; + $r = p.print(new sliceType$1([new token.Token(81), new whiteSpace(32)])); /* */ $s = 125; case 125: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + body = s$18.Body; + if (!(body.List.$length === 0)) { _v = false; $s = 129; continue s; } + _r$6 = p.posFor(body.Rbrace); /* */ $s = 130; case 130: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$7 = p.commentBefore($clone(_r$6, token.Position)); /* */ $s = 131; case 131: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _v = !_r$7; case 129: + /* */ if (_v) { $s = 126; continue; } + /* */ $s = 127; continue; + /* if (_v) { */ case 126: + $r = p.setPos(body.Lbrace); /* */ $s = 132; case 132: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(51)])); /* */ $s = 133; case 133: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.setPos(body.Rbrace); /* */ $s = 134; case 134: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(56)])); /* */ $s = 135; case 135: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 128; continue; + /* } else { */ case 127: + $r = p.block(body, 0); /* */ $s = 136; case 136: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 128: + $s = 25; continue; + /* } else if ($assertType(_ref, ptrType$58, true)[1]) { */ case 22: + s$19 = _ref.$val; + $r = p.print(new sliceType$1([new token.Token(70)])); /* */ $s = 137; case 137: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.controlClause(true, s$19.Init, s$19.Cond, s$19.Post); /* */ $s = 138; case 138: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.block(s$19.Body, 1); /* */ $s = 139; case 139: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 25; continue; + /* } else if ($assertType(_ref, ptrType$59, true)[1]) { */ case 23: + s$20 = _ref.$val; + $r = p.print(new sliceType$1([new token.Token(70), new whiteSpace(32)])); /* */ $s = 140; case 140: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!($interfaceIsEqual(s$20.Key, $ifaceNil))) { $s = 141; continue; } + /* */ $s = 142; continue; + /* if (!($interfaceIsEqual(s$20.Key, $ifaceNil))) { */ case 141: + $r = p.expr(s$20.Key); /* */ $s = 143; case 143: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!($interfaceIsEqual(s$20.Value, $ifaceNil))) { $s = 144; continue; } + /* */ $s = 145; continue; + /* if (!($interfaceIsEqual(s$20.Value, $ifaceNil))) { */ case 144: + _r$8 = s$20.Value.Pos(); /* */ $s = 146; case 146: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + $r = p.setPos(_r$8); /* */ $s = 147; case 147: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(52), new whiteSpace(32)])); /* */ $s = 148; case 148: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.expr(s$20.Value); /* */ $s = 149; case 149: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 145: + $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 150; case 150: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.setPos(s$20.TokPos); /* */ $s = 151; case 151: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(s$20.Tok), new whiteSpace(32)])); /* */ $s = 152; case 152: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 142: + $r = p.print(new sliceType$1([new token.Token(79), new whiteSpace(32)])); /* */ $s = 153; case 153: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$9 = stripParens(s$20.X); /* */ $s = 154; case 154: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + $r = p.expr(_r$9); /* */ $s = 155; case 155: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 156; case 156: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.block(s$20.Body, 1); /* */ $s = 157; case 157: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 25; continue; + /* } else { */ case 24: + s$21 = _ref; + $panic(new $String("unreachable")); + /* } } */ case 25: + $s = -1; return; + /* */ } return; } var $f = {$blk: stmt, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _v, body, depth, e, isEmpty, nextIsRBrace, p, s, s$1, s$10, s$11, s$12, s$13, s$14, s$15, s$16, s$17, s$18, s$19, s$2, s$20, s$21, s$3, s$4, s$5, s$6, s$7, s$8, s$9, stmt$1, $s};return $f; + }; + keepTypeColumn = function keepTypeColumn$1(specs) { + var {_i, _ref, i, i0, keepType, m, populate, s, specs, t, $s, $r, $c} = $restore(this, {specs}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + m = [m]; + m[0] = $makeSlice(sliceType$10, specs.$length); + populate = (function(m) { return function keepTypeColumn·func1(i, j, keepType) { + var i, j, keepType; + if (keepType) { + while (true) { + if (!(i < j)) { break; } + ((i < 0 || i >= m[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : m[0].$array[m[0].$offset + i] = true); + i = i + (1) >> 0; } - } else if ($assertType(_ref$8, ptrType$66, true)[1]) { - s$24 = _ref$8.$val; - rhs$1 = s$24.X; } - if (!($interfaceIsEqual(rhs$1, $ifaceNil))) { - _tuple$7 = $assertType(unparen(rhs$1), ptrType$20, true); - x$23 = _tuple$7[0]; - if (!(x$23 === ptrType$20.nil) && (x$23.Op === 36)) { - valid = true; - } + }; })(m); + i0 = -1; + keepType = false; + _ref = specs; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + t = $assertType(s, ptrType$8); + /* */ if (!(t.Values === sliceType$7.nil)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!(t.Values === sliceType$7.nil)) { */ case 3: + if (i0 < 0) { + i0 = i; + keepType = false; } - /* */ if (!valid) { $s = 242; continue; } - /* */ $s = 243; continue; - /* if (!valid) { */ case 242: - $r = check[0].error(clause$2.Comm, 118, "select case must be send or receive (possibly with assignment)"); /* */ $s = 244; case 244: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$4++; - /* continue; */ $s = 240; continue; - /* } */ case 243: - $r = check[0].openScope(s$21, "case"); /* */ $s = 245; case 245: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!($interfaceIsEqual(clause$2.Comm, $ifaceNil))) { $s = 246; continue; } - /* */ $s = 247; continue; - /* if (!($interfaceIsEqual(clause$2.Comm, $ifaceNil))) { */ case 246: - $r = check[0].stmt(inner, clause$2.Comm); /* */ $s = 248; case 248: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 247: - $r = check[0].stmtList(inner, clause$2.Body); /* */ $s = 249; case 249: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - check[0].closeScope(); - _i$4++; - $s = 240; continue; - case 241: - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$79, true)[1]) { */ case 19: - s$17 = _ref.$val; - inner = (inner | (3)) >>> 0; - $r = check[0].openScope(s$17, "for"); /* */ $s = 250; case 250: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(check[0], "closeScope"), []]); - $r = check[0].simpleStmt(s$17.Init); /* */ $s = 251; case 251: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!($interfaceIsEqual(s$17.Cond, $ifaceNil))) { $s = 252; continue; } - /* */ $s = 253; continue; - /* if (!($interfaceIsEqual(s$17.Cond, $ifaceNil))) { */ case 252: - x$6[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = check[0].expr(x$6[0], s$17.Cond); /* */ $s = 254; case 254: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (!(!((x$6[0].mode === 0)))) { _v$3 = false; $s = 257; continue s; } - _r$20 = allBoolean(x$6[0].typ); /* */ $s = 258; case 258: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - _v$3 = !_r$20; case 257: - /* */ if (_v$3) { $s = 255; continue; } - /* */ $s = 256; continue; - /* if (_v$3) { */ case 255: - $r = check[0].error(s$17.Cond, 105, "non-boolean condition in for statement"); /* */ $s = 259; case 259: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 256: - /* } */ case 253: - $r = check[0].simpleStmt(s$17.Post); /* */ $s = 260; case 260: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _tuple$8 = $assertType(s$17.Post, ptrType$69, true); - s$25 = _tuple$8[0]; - /* */ if (!(s$25 === ptrType$69.nil) && (s$25.Tok === 47)) { $s = 261; continue; } - /* */ $s = 262; continue; - /* if (!(s$25 === ptrType$69.nil) && (s$25.Tok === 47)) { */ case 261: - $r = check[0].softErrorf(s$25, 106, "cannot declare in post statement", sliceType$6.nil); /* */ $s = 263; case 263: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].use(s$25.Lhs); /* */ $s = 264; case 264: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 262: - $r = check[0].stmt(inner, s$17.Body); /* */ $s = 265; case 265: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$80, true)[1]) { */ case 20: - s$18 = _ref.$val; - inner = (inner | (3)) >>> 0; - x$7[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = check[0].expr(x$7[0], s$18.X); /* */ $s = 266; case 266: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _tmp$2 = $ifaceNil; - _tmp$3 = $ifaceNil; - key = _tmp$2; - val$1 = _tmp$3; - /* */ if (!((x$7[0].mode === 0))) { $s = 267; continue; } - /* */ $s = 268; continue; - /* if (!((x$7[0].mode === 0))) { */ case 267: - cause = ""; - _r$21 = coreType(x$7[0].typ); /* */ $s = 269; case 269: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } - u$1 = _r$21; - _ref$9 = u$1; - /* */ if (_ref$9 === $ifaceNil) { $s = 270; continue; } - /* */ if ($assertType(_ref$9, ptrType$29, true)[1]) { $s = 271; continue; } - /* */ $s = 272; continue; - /* if (_ref$9 === $ifaceNil) { */ case 270: - t = _ref$9; - _r$22 = check[0].sprintf("%s has no core type", new sliceType$6([x$7[0].typ])); /* */ $s = 273; case 273: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - cause = _r$22; - $s = 272; continue; - /* } else if ($assertType(_ref$9, ptrType$29, true)[1]) { */ case 271: - t$1 = _ref$9.$val; - /* */ if (!($interfaceIsEqual(s$18.Value, $ifaceNil))) { $s = 274; continue; } - /* */ $s = 275; continue; - /* if (!($interfaceIsEqual(s$18.Value, $ifaceNil))) { */ case 274: - $r = check[0].softErrorf(s$18.Value, 108, "range over %s permits only one iteration variable", new sliceType$6([x$7[0]])); /* */ $s = 276; case 276: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 275: - if (t$1.dir === 1) { - cause = "receive from send-only channel"; - } - /* } */ case 272: - _r$23 = rangeKeyVal(u$1); /* */ $s = 277; case 277: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _tuple$9 = _r$23; - key = _tuple$9[0]; - val$1 = _tuple$9[1]; - /* */ if ($interfaceIsEqual(key, $ifaceNil) || !(cause === "")) { $s = 278; continue; } - /* */ $s = 279; continue; - /* if ($interfaceIsEqual(key, $ifaceNil) || !(cause === "")) { */ case 278: - /* */ if (cause === "") { $s = 280; continue; } - /* */ $s = 281; continue; - /* if (cause === "") { */ case 280: - $r = check[0].softErrorf(x$7[0], 109, "cannot range over %s", new sliceType$6([x$7[0]])); /* */ $s = 283; case 283: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 282; continue; - /* } else { */ case 281: - $r = check[0].softErrorf(x$7[0], 109, "cannot range over %s (%s)", new sliceType$6([x$7[0], new $String(cause)])); /* */ $s = 284; case 284: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 282: - /* } */ case 279: - /* } */ case 268: - $r = check[0].openScope(s$18, "range"); /* */ $s = 285; case 285: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(check[0], "closeScope"), []]); - lhs$2 = $toNativeArray($kindInterface, [s$18.Key, s$18.Value]); - rhs$2 = $toNativeArray($kindInterface, [key, val$1]); - /* */ if (s$18.Tok === 47) { $s = 286; continue; } - /* */ $s = 287; continue; - /* if (s$18.Tok === 47) { */ case 286: - vars = sliceType$10.nil; - _ref$10 = lhs$2; - _i$5 = 0; - /* while (true) { */ case 289: - /* if (!(_i$5 < 2)) { break; } */ if(!(_i$5 < 2)) { $s = 290; continue; } - i$1 = _i$5; - lhs$3 = ((_i$5 < 0 || _i$5 >= _ref$10.length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$10[_i$5]); - if ($interfaceIsEqual(lhs$3, $ifaceNil)) { - _i$5++; - /* continue; */ $s = 289; continue; - } - obj$2 = ptrType$16.nil; - _tuple$10 = $assertType(lhs$3, ptrType$30, true); - ident$1 = _tuple$10[0]; - /* */ if (!(ident$1 === ptrType$30.nil)) { $s = 291; continue; } - /* */ $s = 292; continue; - /* if (!(ident$1 === ptrType$30.nil)) { */ case 291: - name = ident$1.Name; - obj$2 = NewVar(ident$1.Pos(), check[0].pkg, name, $ifaceNil); - $r = check[0].recordDef(ident$1, obj$2); /* */ $s = 294; case 294: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (!(name === "_")) { - vars = $append(vars, obj$2); - } - $s = 293; continue; - /* } else { */ case 292: - $r = check[0].errorf(lhs$3, -1, "cannot declare %s", new sliceType$6([lhs$3])); /* */ $s = 295; case 295: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$24 = lhs$3.Pos(); /* */ $s = 296; case 296: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - _r$25 = NewVar(_r$24, check[0].pkg, "_", $ifaceNil); /* */ $s = 297; case 297: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - obj$2 = _r$25; - /* } */ case 293: - typ$3 = ((i$1 < 0 || i$1 >= rhs$2.length) ? ($throwRuntimeError("index out of range"), undefined) : rhs$2[i$1]); - /* */ if (!($interfaceIsEqual(typ$3, $ifaceNil))) { $s = 298; continue; } - /* */ $s = 299; continue; - /* if (!($interfaceIsEqual(typ$3, $ifaceNil))) { */ case 298: - x$7[0].mode = 7; - x$7[0].expr = lhs$3; - x$7[0].typ = typ$3; - _r$26 = check[0].initVar(obj$2, x$7[0], "range clause"); /* */ $s = 301; case 301: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - _r$26; - $s = 300; continue; - /* } else { */ case 299: - obj$2.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - obj$2.used = true; - /* } */ case 300: - _i$5++; - $s = 289; continue; - case 290: - /* */ if (vars.$length > 0) { $s = 302; continue; } - /* */ $s = 303; continue; - /* if (vars.$length > 0) { */ case 302: - scopePos$1 = s$18.Body.Pos(); - _ref$11 = vars; - _i$6 = 0; - /* while (true) { */ case 305: - /* if (!(_i$6 < _ref$11.$length)) { break; } */ if(!(_i$6 < _ref$11.$length)) { $s = 306; continue; } - obj$3 = ((_i$6 < 0 || _i$6 >= _ref$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$11.$array[_ref$11.$offset + _i$6]); - $r = check[0].declare(check[0].environment.scope, ptrType$30.nil, obj$3, scopePos$1); /* */ $s = 307; case 307: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$6++; - $s = 305; continue; - case 306: - $s = 304; continue; - /* } else { */ case 303: - _r$27 = inNode(s$18, s$18.TokPos); /* */ $s = 308; case 308: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - $r = check[0].error((x$24 = _r$27, new x$24.constructor.elem(x$24)), 19, "no new variables on left side of :="); /* */ $s = 309; case 309: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 304: - $s = 288; continue; - /* } else { */ case 287: - _ref$12 = lhs$2; - _i$7 = 0; - /* while (true) { */ case 310: - /* if (!(_i$7 < 2)) { break; } */ if(!(_i$7 < 2)) { $s = 311; continue; } - i$2 = _i$7; - lhs$4 = ((_i$7 < 0 || _i$7 >= _ref$12.length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$12[_i$7]); - if ($interfaceIsEqual(lhs$4, $ifaceNil)) { - _i$7++; - /* continue; */ $s = 310; continue; - } - typ$4 = ((i$2 < 0 || i$2 >= rhs$2.length) ? ($throwRuntimeError("index out of range"), undefined) : rhs$2[i$2]); - /* */ if (!($interfaceIsEqual(typ$4, $ifaceNil))) { $s = 312; continue; } - /* */ $s = 313; continue; - /* if (!($interfaceIsEqual(typ$4, $ifaceNil))) { */ case 312: - x$7[0].mode = 7; - x$7[0].expr = lhs$4; - x$7[0].typ = typ$4; - _r$28 = check[0].assignVar(lhs$4, x$7[0]); /* */ $s = 314; case 314: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - _r$28; - /* } */ case 313: - _i$7++; - $s = 310; continue; - case 311: - /* } */ case 288: - $r = check[0].stmt(inner, s$18.Body); /* */ $s = 315; case 315: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 22; continue; - /* } else { */ case 21: - s$19 = _ref; - $r = check[0].error(s$19, -1, "invalid statement"); /* */ $s = 316; case 316: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 22: - $s = -1; return; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: stmt, $c: true, $r, T, Y, _1, _2, _3, _4, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$10, _ref$11, _ref$12, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _ref$9, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, _tuple$10, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, _v$2, _v$3, alt, c, cause, ch, check, clause, clause$1, clause$2, code, ctxt, expr, guard, guard$1, guard$2, i, i$1, i$2, ident$1, inner, inner$1, key, kind, lhs, lhs$1, lhs$2, lhs$3, lhs$4, lhsVars, msg, msg$1, n, name, obj, obj$1, obj$2, obj$3, ok, op, op$1, res, rhs, rhs$1, rhs$2, s, s$1, s$10, s$11, s$12, s$13, s$14, s$15, s$16, s$17, s$18, s$19, s$2, s$20, s$21, s$22, s$23, s$24, s$25, s$3, s$4, s$5, s$6, s$7, s$8, s$9, scopePos, scopePos$1, seen, seen$1, sx, t, t$1, typ$3, typ$4, u, u$1, uch, used, v, val, val$1, valid, vars, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $deferred};return $f; } } + $s = 5; continue; + /* } else { */ case 4: + /* */ if (i0 >= 0) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (i0 >= 0) { */ case 6: + $r = populate(i0, i, keepType); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i0 = -1; + /* } */ case 7: + /* } */ case 5: + if (!($interfaceIsEqual(t.Type, $ifaceNil))) { + keepType = true; + } + _i++; + $s = 1; continue; + case 2: + /* */ if (i0 >= 0) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (i0 >= 0) { */ case 9: + $r = populate(i0, specs.$length, keepType); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 10: + $s = -1; return m[0]; + /* */ } return; } var $f = {$blk: keepTypeColumn$1, $c: true, $r, _i, _ref, i, i0, keepType, m, populate, s, specs, t, $s};return $f; }; - rangeKeyVal = function rangeKeyVal$1(typ$3) { - var {_r$1, _r$2, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, key, typ$3, typ$4, typ$5, typ$6, typ$7, typ$8, val, $s, $r, $c} = $restore(this, {typ$3}); + $ptrType(printer).prototype.valueSpec = function valueSpec(s, keepType) { + var {extraTabs, keepType, p, s, $s, $r, $c} = $restore(this, {s, keepType}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - key = $ifaceNil; - val = $ifaceNil; - _r$1 = arrayPtrDeref(typ$3); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _ref = _r$1; - /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$29, true)[1]) { $s = 6; continue; } + p = this; + $r = p.setComment(s.Doc); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.identList(s.Names, false); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + extraTabs = 3; + /* */ if (!($interfaceIsEqual(s.Type, $ifaceNil)) || keepType) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!($interfaceIsEqual(s.Type, $ifaceNil)) || keepType) { */ case 3: + $r = p.print(new sliceType$1([new whiteSpace(11)])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + extraTabs = extraTabs - (1) >> 0; + /* } */ case 4: + /* */ if (!($interfaceIsEqual(s.Type, $ifaceNil))) { $s = 6; continue; } /* */ $s = 7; continue; - /* if ($assertType(_ref, ptrType$4, true)[1]) { */ case 2: - typ$4 = _ref.$val; - _r$2 = isString(typ$4); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (_r$2) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (_r$2) { */ case 8: - _tmp = (2 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 2]); - _tmp$1 = universeRune; - key = _tmp; - val = _tmp$1; - $s = -1; return [key, val]; - /* } */ case 9: - $s = 7; continue; - /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 3: - typ$5 = _ref.$val; - _tmp$2 = (2 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 2]); - _tmp$3 = typ$5.elem; - key = _tmp$2; - val = _tmp$3; - $s = -1; return [key, val]; - /* } else if ($assertType(_ref, ptrType$25, true)[1]) { */ case 4: - typ$6 = _ref.$val; - _tmp$4 = (2 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 2]); - _tmp$5 = typ$6.elem; - key = _tmp$4; - val = _tmp$5; - $s = -1; return [key, val]; - /* } else if ($assertType(_ref, ptrType$28, true)[1]) { */ case 5: - typ$7 = _ref.$val; - _tmp$6 = typ$7.key; - _tmp$7 = typ$7.elem; - key = _tmp$6; - val = _tmp$7; - $s = -1; return [key, val]; - /* } else if ($assertType(_ref, ptrType$29, true)[1]) { */ case 6: - typ$8 = _ref.$val; - _tmp$8 = typ$8.elem; - _tmp$9 = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - key = _tmp$8; - val = _tmp$9; - $s = -1; return [key, val]; + /* if (!($interfaceIsEqual(s.Type, $ifaceNil))) { */ case 6: + $r = p.expr(s.Type); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } /* } */ case 7: - $s = -1; return [key, val]; - /* */ } return; } var $f = {$blk: rangeKeyVal$1, $c: true, $r, _r$1, _r$2, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, key, typ$3, typ$4, typ$5, typ$6, typ$7, typ$8, val, $s};return $f; - }; - NewSlice = function NewSlice$1(elem) { - var elem; - return new Slice.ptr(elem); - }; - $pkg.NewSlice = NewSlice; - $ptrType(Slice).prototype.Elem = function Elem() { - var s; - s = this; - return s.elem; + /* */ if (!(s.Values === sliceType$7.nil)) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!(s.Values === sliceType$7.nil)) { */ case 9: + $r = p.print(new sliceType$1([new whiteSpace(11), new token.Token(42), new whiteSpace(32)])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.exprList(0, s.Values, 1, 0, 0, false); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + extraTabs = extraTabs - (1) >> 0; + /* } */ case 10: + /* */ if (!(s.Comment === ptrType$2.nil)) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (!(s.Comment === ptrType$2.nil)) { */ case 13: + /* while (true) { */ case 15: + /* if (!(extraTabs > 0)) { break; } */ if(!(extraTabs > 0)) { $s = 16; continue; } + $r = p.print(new sliceType$1([new whiteSpace(11)])); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + extraTabs = extraTabs - (1) >> 0; + $s = 15; continue; + case 16: + $r = p.setComment(s.Comment); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 14: + $s = -1; return; + /* */ } return; } var $f = {$blk: valueSpec, $c: true, $r, extraTabs, keepType, p, s, $s};return $f; }; - $ptrType(Slice).prototype.Underlying = function Underlying$4() { - var t; - t = this; - return t; + sanitizeImportPath = function sanitizeImportPath$1(lit) { + var _i, _ref, _rune, _tuple, err, lit, r, s; + if (!((lit.Kind === 9))) { + return lit; + } + _tuple = strconv.Unquote(lit.Value); + s = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + return lit; + } + if (s === "") { + return lit; + } + _ref = s; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + r = _rune[0]; + if (!unicode.IsGraphic(r) || unicode.IsSpace(r) || strings.ContainsRune("!\"#$%&'()*,:;<=>?[\\]^{|}`\xEF\xBF\xBD", r)) { + return lit; + } + _i += _rune[1]; + } + s = strconv.Quote(s); + if (s === lit.Value) { + return lit; + } + return new ast.BasicLit.ptr(lit.ValuePos, 9, s); }; - $ptrType(Slice).prototype.String = function String$9() { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); + $ptrType(printer).prototype.spec = function spec(spec$1, n, doIndent) { + var {_ref, doIndent, n, p, s, s$1, s$2, s$3, spec$1, $s, $r, $c} = $restore(this, {spec$1, n, doIndent}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = TypeString(t, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$9, $c: true, $r, $24r, _r$1, t, $s};return $f; + p = this; + _ref = spec$1; + /* */ if ($assertType(_ref, ptrType$7, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$8, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if ($assertType(_ref, ptrType$7, true)[1]) { */ case 1: + s = _ref.$val; + $r = p.setComment(s.Doc); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!(s.Name === ptrType$4.nil)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!(s.Name === ptrType$4.nil)) { */ case 7: + $r = p.expr(s.Name); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 8: + $r = p.expr(sanitizeImportPath(s.Path)); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.setComment(s.Comment); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.setPos(s.EndPos); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 5; continue; + /* } else if ($assertType(_ref, ptrType$8, true)[1]) { */ case 2: + s$1 = _ref.$val; + /* */ if (!((n === 1))) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (!((n === 1))) { */ case 14: + $r = p.internalError(new sliceType$1([new $String("expected n = 1; got"), new $Int(n)])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 15: + $r = p.setComment(s$1.Doc); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.identList(s$1.Names, doIndent); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!($interfaceIsEqual(s$1.Type, $ifaceNil))) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (!($interfaceIsEqual(s$1.Type, $ifaceNil))) { */ case 19: + $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.expr(s$1.Type); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 20: + /* */ if (!(s$1.Values === sliceType$7.nil)) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (!(s$1.Values === sliceType$7.nil)) { */ case 23: + $r = p.print(new sliceType$1([new whiteSpace(32), new token.Token(42), new whiteSpace(32)])); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.exprList(0, s$1.Values, 1, 0, 0, false); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 24: + $r = p.setComment(s$1.Comment); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 5; continue; + /* } else if ($assertType(_ref, ptrType$9, true)[1]) { */ case 3: + s$2 = _ref.$val; + $r = p.setComment(s$2.Doc); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.expr(s$2.Name); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!(s$2.TypeParams === ptrType$29.nil)) { $s = 30; continue; } + /* */ $s = 31; continue; + /* if (!(s$2.TypeParams === ptrType$29.nil)) { */ case 30: + $r = p.parameters(s$2.TypeParams, 2); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 31: + /* */ if (n === 1) { $s = 33; continue; } + /* */ $s = 34; continue; + /* if (n === 1) { */ case 33: + $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 35; continue; + /* } else { */ case 34: + $r = p.print(new sliceType$1([new whiteSpace(11)])); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 35: + /* */ if (new token.Pos(s$2.Assign).IsValid()) { $s = 38; continue; } + /* */ $s = 39; continue; + /* if (new token.Pos(s$2.Assign).IsValid()) { */ case 38: + $r = p.print(new sliceType$1([new token.Token(42), new whiteSpace(32)])); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 39: + $r = p.expr(s$2.Type); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.setComment(s$2.Comment); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 5; continue; + /* } else { */ case 4: + s$3 = _ref; + $panic(new $String("unreachable")); + /* } */ case 5: + $s = -1; return; + /* */ } return; } var $f = {$blk: spec, $c: true, $r, _ref, doIndent, n, p, s, s$1, s$2, s$3, spec$1, $s};return $f; }; - $ptrType(StdSizes).prototype.Alignof = function Alignof(T) { - var {$24r, T, _i, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, a, a$1, f, max, s, t, t$1, t$2, t$3, t$4, x, $s, $r, $c} = $restore(this, {T}); + $ptrType(printer).prototype.genDecl = function genDecl(d) { + var {_i, _i$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, d, i, i$1, keepType, line, line$1, n, p, s, s$1, x, $s, $r, $c} = $restore(this, {d}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - s = this; - _r$1 = under(T); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _ref = _r$1; - /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$25, true)[1] || $assertType(_ref, ptrType$13, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$14, true)[1] || $assertType(_ref, ptrType$12, true)[1]) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if ($assertType(_ref, ptrType$10, true)[1]) { */ case 2: - t = _ref.$val; - _r$2 = s.Alignof(t.elem); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 9; case 9: return $24r; - /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 3: - t$1 = _ref.$val; - if ((t$1.fields.$length === 0) && isSyncAtomicAlign64(T)) { - $s = -1; return new $Int64(0, 8); - } - max = new $Int64(0, 1); - _ref$1 = t$1.fields; + line = [line]; + line$1 = [line$1]; + p = this; + $r = p.setComment(d.Doc); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.setPos(d.Pos()); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(d.Tok), new whiteSpace(32)])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (new token.Pos(d.Lparen).IsValid() || d.Specs.$length > 1) { $s = 4; continue; } + /* */ if (d.Specs.$length > 0) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (new token.Pos(d.Lparen).IsValid() || d.Specs.$length > 1) { */ case 4: + $r = p.setPos(d.Lparen); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(49)])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + n = d.Specs.$length; + /* */ if (n > 0) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (n > 0) { */ case 9: + $r = p.print(new sliceType$1([new whiteSpace(62), new whiteSpace(12)])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (n > 1 && ((d.Tok === 64) || (d.Tok === 85))) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (n > 1 && ((d.Tok === 64) || (d.Tok === 85))) { */ case 12: + _r = keepTypeColumn(d.Specs); /* */ $s = 15; case 15: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + keepType = _r; + line[0] = 0; + _ref = d.Specs; + _i = 0; + /* while (true) { */ case 16: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 17; continue; } + i = _i; + s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + /* */ if (i > 0) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (i > 0) { */ case 18: + _r$1 = s.Pos(); /* */ $s = 20; case 20: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = p.lineFor(_r$1); /* */ $s = 21; case 21: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = p.linebreak(_r$2, 1, 0, p.linesFrom(line[0]) > 0); /* */ $s = 22; case 22: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + /* } */ case 19: + p.recordLine((line.$ptr || (line.$ptr = new ptrType$1(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, line)))); + $r = p.valueSpec($assertType(s, ptrType$8), ((i < 0 || i >= keepType.$length) ? ($throwRuntimeError("index out of range"), undefined) : keepType.$array[keepType.$offset + i])); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + $s = 16; continue; + case 17: + $s = 14; continue; + /* } else { */ case 13: + line$1[0] = 0; + _ref$1 = d.Specs; + _i$1 = 0; + /* while (true) { */ case 24: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 25; continue; } + i$1 = _i$1; + s$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + /* */ if (i$1 > 0) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (i$1 > 0) { */ case 26: + _r$4 = s$1.Pos(); /* */ $s = 28; case 28: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$5 = p.lineFor(_r$4); /* */ $s = 29; case 29: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$6 = p.linebreak(_r$5, 1, 0, p.linesFrom(line$1[0]) > 0); /* */ $s = 30; case 30: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$6; + /* } */ case 27: + p.recordLine((line$1.$ptr || (line$1.$ptr = new ptrType$1(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, line$1)))); + $r = p.spec(s$1, n, false); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + $s = 24; continue; + case 25: + /* } */ case 14: + $r = p.print(new sliceType$1([new whiteSpace(60), new whiteSpace(12)])); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 10: + $r = p.setPos(d.Rparen); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(54)])); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 6; continue; + /* } else if (d.Specs.$length > 0) { */ case 5: + $r = p.spec((x = d.Specs, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])), 1, true); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + $s = -1; return; + /* */ } return; } var $f = {$blk: genDecl, $c: true, $r, _i, _i$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, d, i, i$1, keepType, line, line$1, n, p, s, s$1, x, $s};return $f; + }; + $ptrType(sizeCounter).prototype.Write = function Write$1(p) { + var _i, _ref, b, c, p; + c = this; + if (!c.hasNewline) { + _ref = p; _i = 0; - /* while (true) { */ case 10: - /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 11; continue; } - f = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); - _r$3 = s.Alignof(f.object.typ); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - a = _r$3; - if ((a.$high > max.$high || (a.$high === max.$high && a.$low > max.$low))) { - max = a; + while (true) { + if (!(_i < _ref.$length)) { break; } + b = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if ((b === 10) || (b === 12)) { + c.hasNewline = true; + break; } _i++; - $s = 10; continue; - case 11: - $s = -1; return max; - /* } else if ($assertType(_ref, ptrType$25, true)[1] || $assertType(_ref, ptrType$13, true)[1]) { */ case 4: - t$2 = _ref; - $r = assert(!isTypeParam(T)); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return s.WordSize; - /* } else if ($assertType(_ref, ptrType$4, true)[1]) { */ case 5: - t$3 = _ref.$val; - if (!(((t$3.Info() & 32) === 0))) { - $s = -1; return s.WordSize; } - $s = 7; continue; - /* } else if ($assertType(_ref, ptrType$14, true)[1] || $assertType(_ref, ptrType$12, true)[1]) { */ case 6: - t$4 = _ref; - unreachable(); - /* } */ case 7: - _r$4 = s.Sizeof(T); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - a$1 = _r$4; - if ((a$1.$high < 0 || (a$1.$high === 0 && a$1.$low < 1))) { - $s = -1; return new $Int64(0, 1); - } - _r$5 = isComplex(T); /* */ $s = 17; case 17: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* */ if (_r$5) { $s = 15; continue; } - /* */ $s = 16; continue; - /* if (_r$5) { */ case 15: - a$1 = $div64(a$1, (new $Int64(0, 2)), false); - /* } */ case 16: - if ((x = s.MaxAlign, (a$1.$high > x.$high || (a$1.$high === x.$high && a$1.$low > x.$low)))) { - $s = -1; return s.MaxAlign; - } - $s = -1; return a$1; - /* */ } return; } var $f = {$blk: Alignof, $c: true, $r, $24r, T, _i, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, a, a$1, f, max, s, t, t$1, t$2, t$3, t$4, x, $s};return $f; - }; - isSyncAtomicAlign64 = function isSyncAtomicAlign64$1(T) { - var T, _tuple, named, obj, ok; - _tuple = $assertType(T, ptrType$9, true); - named = _tuple[0]; - ok = _tuple[1]; - if (!ok) { - return false; } - obj = named.Obj(); - return obj.object.Name() === "align64" && !(obj.object.Pkg() === ptrType$1.nil) && (obj.object.Pkg().Path() === "sync/atomic" || obj.object.Pkg().Path() === "runtime/internal/atomic"); - }; - $ptrType(StdSizes).prototype.Offsetsof = function Offsetsof(fields) { - var {_i, _r$1, _r$2, _ref, a, f, fields, i, o, offsets, s, x, $s, $r, $c} = $restore(this, {fields}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - s = this; - offsets = $makeSlice(sliceType$19, fields.$length); - o = new $Int64(0, 0); - _ref = fields; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$1 = s.Alignof(f.object.typ); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - a = _r$1; - o = align(o, a); - ((i < 0 || i >= offsets.$length) ? ($throwRuntimeError("index out of range"), undefined) : offsets.$array[offsets.$offset + i] = o); - _r$2 = s.Sizeof(f.object.typ); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - o = (x = _r$2, new $Int64(o.$high + x.$high, o.$low + x.$low)); - _i++; - $s = 1; continue; - case 2: - $s = -1; return offsets; - /* */ } return; } var $f = {$blk: Offsetsof, $c: true, $r, _i, _r$1, _r$2, _ref, a, f, fields, i, o, offsets, s, x, $s};return $f; + c.size = c.size + (p.$length) >> 0; + return [p.$length, $ifaceNil]; }; - $ptrType(StdSizes).prototype.Sizeof = function Sizeof(T) { - var {$24r, T, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, a, k, n, n$1, offsets, s, s$1, t, t$1, t$2, t$3, t$4, t$5, x, x$1, x$2, x$3, x$4, x$5, z, $s, $r, $c} = $restore(this, {T}); + $ptrType(printer).prototype.nodeSize = function nodeSize(n, maxSize) { + var {_entry, _key, _key$1, _r, _tuple, cfg, counter, err, found, maxSize, n, p, size, size$1, $s, $r, $c} = $restore(this, {n, maxSize}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - s = this; - _r$1 = under(T); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _ref = _r$1; - /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType$14, true)[1] || $assertType(_ref, ptrType$12, true)[1]) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if ($assertType(_ref, ptrType$4, true)[1]) { */ case 2: - t = _ref.$val; - $r = assert(isTyped(T)); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - k = t.kind; - if (((k >> 0)) < 17) { - s$1 = ((k < 0 || k >= basicSizes.length) ? ($throwRuntimeError("index out of range"), undefined) : basicSizes[k]); - if (s$1 > 0) { - $s = -1; return (new $Int64(0, s$1)); - } - } - if (k === 17) { - $s = -1; return $mul64(s.WordSize, new $Int64(0, 2)); - } - $s = 8; continue; - /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 3: - t$1 = _ref.$val; - n = t$1.len; - if ((n.$high < 0 || (n.$high === 0 && n.$low <= 0))) { - $s = -1; return new $Int64(0, 0); - } - _r$2 = s.Alignof(t$1.elem); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - a = _r$2; - _r$3 = s.Sizeof(t$1.elem); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - z = _r$3; - $s = -1; return (x = $mul64(align(z, a), (new $Int64(n.$high - 0, n.$low - 1))), new $Int64(x.$high + z.$high, x.$low + z.$low)); - /* } else if ($assertType(_ref, ptrType$25, true)[1]) { */ case 4: - t$2 = _ref.$val; - $s = -1; return $mul64(s.WordSize, new $Int64(0, 3)); - /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 5: - t$3 = _ref.$val; - n$1 = t$3.NumFields(); - if (n$1 === 0) { - $s = -1; return new $Int64(0, 0); - } - _r$4 = s.Offsetsof(t$3.fields); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - offsets = _r$4; - _r$5 = s.Sizeof((x$4 = t$3.fields, x$5 = n$1 - 1 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])).object.typ); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - $24r = (x$1 = (x$2 = n$1 - 1 >> 0, ((x$2 < 0 || x$2 >= offsets.$length) ? ($throwRuntimeError("index out of range"), undefined) : offsets.$array[offsets.$offset + x$2])), x$3 = _r$5, new $Int64(x$1.$high + x$3.$high, x$1.$low + x$3.$low)); - $s = 14; case 14: return $24r; - /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 6: - t$4 = _ref.$val; - $r = assert(!isTypeParam(T)); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return $mul64(s.WordSize, new $Int64(0, 2)); - /* } else if ($assertType(_ref, ptrType$14, true)[1] || $assertType(_ref, ptrType$12, true)[1]) { */ case 7: - t$5 = _ref; - unreachable(); - /* } */ case 8: - $s = -1; return s.WordSize; - /* */ } return; } var $f = {$blk: Sizeof, $c: true, $r, $24r, T, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, a, k, n, n$1, offsets, s, s$1, t, t$1, t$2, t$3, t$4, t$5, x, x$1, x$2, x$3, x$4, x$5, z, $s};return $f; - }; - SizesFor = function SizesFor$1(compiler, arch) { - var _1, _entry, _tuple, arch, compiler, m, ok, s; - m = false; - _1 = compiler; - if (_1 === ("gc")) { - m = gcArchSizes; - } else if (_1 === ("gccgo")) { - m = gccgoArchSizes; - } else { - return $ifaceNil; + counter = [counter]; + size = 0; + p = this; + _tuple = (_entry = $mapIndex(p.nodeSizes,ast.Node.keyFor(n)), _entry !== undefined ? [_entry.v, true] : [0, false]); + size$1 = _tuple[0]; + found = _tuple[1]; + if (found) { + size = size$1; + $s = -1; return size; } - _tuple = (_entry = $mapIndex(m,$String.keyFor(arch)), _entry !== undefined ? [_entry.v, true] : [ptrType$83.nil, false]); - s = _tuple[0]; - ok = _tuple[1]; - if (!ok) { - return $ifaceNil; + size = maxSize + 1 >> 0; + _key = n; (p.nodeSizes || $throwRuntimeError("assignment to entry in nil map")).set(ast.Node.keyFor(_key), { k: _key, v: size }); + cfg = new Config.ptr(1, 0, 0); + counter[0] = new sizeCounter.ptr(false, 0); + _r = cfg.fprint(counter[0], p.fset, n, p.nodeSizes); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return size; } - return s; + if (counter[0].size <= maxSize && !counter[0].hasNewline) { + size = counter[0].size; + _key$1 = n; (p.nodeSizes || $throwRuntimeError("assignment to entry in nil map")).set(ast.Node.keyFor(_key$1), { k: _key$1, v: size }); + } + $s = -1; return size; + /* */ } return; } var $f = {$blk: nodeSize, $c: true, $r, _entry, _key, _key$1, _r, _tuple, cfg, counter, err, found, maxSize, n, p, size, size$1, $s};return $f; + }; + $ptrType(printer).prototype.numLines = function numLines(n) { + var {$24r, _r, _r$1, _r$2, _r$3, from, n, p, to, $s, $r, $c} = $restore(this, {n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _r = n.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + from = _r; + /* */ if (new token.Pos(from).IsValid()) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (new token.Pos(from).IsValid()) { */ case 2: + _r$1 = n.End(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + to = _r$1; + /* */ if (new token.Pos(to).IsValid()) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (new token.Pos(to).IsValid()) { */ case 5: + _r$2 = p.lineFor(to); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = p.lineFor(from); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $24r = (_r$2 - _r$3 >> 0) + 1 >> 0; + $s = 9; case 9: return $24r; + /* } */ case 6: + /* } */ case 3: + $s = -1; return 1073741824; + /* */ } return; } var $f = {$blk: numLines, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, from, n, p, to, $s};return $f; }; - $pkg.SizesFor = SizesFor; - $ptrType(Config).prototype.alignof = function alignof(T) { - var {$24r, T, _r$1, _r$2, a, conf, s, $s, $r, $c} = $restore(this, {T}); + $ptrType(printer).prototype.bodySize = function bodySize(b, maxSize) { + var {_i, _r, _r$1, _r$2, _r$3, _r$4, _ref, _v, b, bodySize$1, i, maxSize, p, pos1, pos2, s, $s, $r, $c} = $restore(this, {b, maxSize}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - conf = this; - s = conf.Sizes; - /* */ if (!($interfaceIsEqual(s, $ifaceNil))) { $s = 1; continue; } + p = this; + pos1 = b.Pos(); + pos2 = b.Rbrace; + if (!(new token.Pos(pos1).IsValid() && new token.Pos(pos2).IsValid())) { _v = false; $s = 3; continue s; } + _r = p.lineFor(pos1); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = p.lineFor(pos2); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = !((_r === _r$1)); case 3: + /* */ if (_v) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (!($interfaceIsEqual(s, $ifaceNil))) { */ case 1: - _r$1 = s.Alignof(T); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - a = _r$1; - if ((a.$high > 0 || (a.$high === 0 && a.$low >= 1))) { - $s = -1; return a; - } - $panic(new $String("Config.Sizes.Alignof returned an alignment < 1")); + /* if (_v) { */ case 1: + $s = -1; return maxSize + 1 >> 0; /* } */ case 2: - _r$2 = stdSizes.Alignof(T); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 5; case 5: return $24r; - /* */ } return; } var $f = {$blk: alignof, $c: true, $r, $24r, T, _r$1, _r$2, a, conf, s, $s};return $f; + if (b.List.$length > 5) { + $s = -1; return maxSize + 1 >> 0; + } + _r$2 = p.posFor(pos2); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = p.commentSizeBefore($clone(_r$2, token.Position)); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + bodySize$1 = _r$3; + _ref = b.List; + _i = 0; + /* while (true) { */ case 8: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 9; continue; } + i = _i; + s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (bodySize$1 > maxSize) { + /* break; */ $s = 9; continue; + } + if (i > 0) { + bodySize$1 = bodySize$1 + (2) >> 0; + } + _r$4 = p.nodeSize(s, maxSize); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + bodySize$1 = bodySize$1 + (_r$4) >> 0; + _i++; + $s = 8; continue; + case 9: + $s = -1; return bodySize$1; + /* */ } return; } var $f = {$blk: bodySize, $c: true, $r, _i, _r, _r$1, _r$2, _r$3, _r$4, _ref, _v, b, bodySize$1, i, maxSize, p, pos1, pos2, s, $s};return $f; }; - $ptrType(Config).prototype.offsetsof = function offsetsof(T) { - var {T, _i, _r$1, _r$2, _ref, conf, o, offsets, s, $s, $r, $c} = $restore(this, {T}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - conf = this; - offsets = sliceType$19.nil; - /* */ if (T.NumFields() > 0) { $s = 1; continue; } + $ptrType(printer).prototype.funcBody = function funcBody(headerSize, sep, b) { + var {_i, _r, _ref, b, headerSize, i, p, s, sep, $s, $deferred, $r, $c} = $restore(this, {headerSize, sep, b}); + /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + p = [p]; + p[0] = this; + if (b === ptrType$51.nil) { + $s = -1; return; + } + $deferred.push([(function(p) { return function printer·funcBody·func1(level) { + var level; + p[0].level = level; + }; })(p), [p[0].level]]); + p[0].level = 0; + _r = p[0].bodySize(b, 100); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if ((headerSize + _r >> 0) <= 100) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (T.NumFields() > 0) { */ case 1: - s = conf.Sizes; - /* */ if (!($interfaceIsEqual(s, $ifaceNil))) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!($interfaceIsEqual(s, $ifaceNil))) { */ case 3: - _r$1 = s.Offsetsof(T.fields); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - offsets = _r$1; - if (!((offsets.$length === T.NumFields()))) { - $panic(new $String("Config.Sizes.Offsetsof returned the wrong number of offsets")); - } - _ref = offsets; + /* if ((headerSize + _r >> 0) <= 100) { */ case 1: + $r = p[0].print(new sliceType$1([new whiteSpace(sep)])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p[0].setPos(b.Lbrace); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p[0].print(new sliceType$1([new token.Token(51)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (b.List.$length > 0) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (b.List.$length > 0) { */ case 7: + $r = p[0].print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _ref = b.List; _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - o = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if ((o.$high < 0 || (o.$high === 0 && o.$low < 0))) { - $panic(new $String("Config.Sizes.Offsetsof returned an offset < 0")); - } + /* while (true) { */ case 10: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 11; continue; } + i = _i; + s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + /* */ if (i > 0) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (i > 0) { */ case 12: + $r = p[0].print(new sliceType$1([new token.Token(57), new whiteSpace(32)])); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 13: + $r = p[0].stmt(s, i === (b.List.$length - 1 >> 0)); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _i++; - } - $s = 5; continue; - /* } else { */ case 4: - _r$2 = stdSizes.Offsetsof(T.fields); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - offsets = _r$2; - /* } */ case 5: + $s = 10; continue; + case 11: + $r = p[0].print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 8: + $r = p[0].print(new sliceType$1([new pmode(2)])); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p[0].setPos(b.Rbrace); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p[0].print(new sliceType$1([new token.Token(56), new pmode(2)])); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; /* } */ case 2: - $s = -1; return offsets; - /* */ } return; } var $f = {$blk: offsetsof, $c: true, $r, T, _i, _r$1, _r$2, _ref, conf, o, offsets, s, $s};return $f; - }; - $ptrType(Config).prototype.offsetof = function offsetof(typ$3, index$1) { - var {_i, _r$1, _r$2, _ref, conf, i, index$1, o, s, typ$3, x, x$1, x$2, $s, $r, $c} = $restore(this, {typ$3, index$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - conf = this; - o = new $Int64(0, 0); - _ref = index$1; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$1 = under(typ$3); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - s = $assertType(_r$1, ptrType$11); - _r$2 = conf.offsetsof(s); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - o = (x = (x$1 = _r$2, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])), new $Int64(o.$high + x.$high, o.$low + x.$low)); - typ$3 = (x$2 = s.fields, ((i < 0 || i >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i])).object.typ; - _i++; - $s = 1; continue; - case 2: - $s = -1; return o; - /* */ } return; } var $f = {$blk: offsetof, $c: true, $r, _i, _r$1, _r$2, _ref, conf, i, index$1, o, s, typ$3, x, x$1, x$2, $s};return $f; + /* */ if (!((sep === 0))) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (!((sep === 0))) { */ case 20: + $r = p[0].print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 21: + $r = p[0].block(b, 1); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: funcBody, $c: true, $r, _i, _r, _ref, b, headerSize, i, p, s, sep, $s, $deferred};return $f; } } }; - $ptrType(Config).prototype.sizeof = function sizeof(T) { - var {$24r, T, _r$1, _r$2, conf, s, z, $s, $r, $c} = $restore(this, {T}); + $ptrType(printer).prototype.distanceFrom = function distanceFrom(startPos, startOutCol) { + var {_r, _v, p, startOutCol, startPos, $s, $r, $c} = $restore(this, {startPos, startOutCol}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - conf = this; - s = conf.Sizes; - /* */ if (!($interfaceIsEqual(s, $ifaceNil))) { $s = 1; continue; } + p = this; + if (!(new token.Pos(startPos).IsValid() && p.pos.IsValid())) { _v = false; $s = 3; continue s; } + _r = p.posFor(startPos); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r.Line === p.pos.Line; case 3: + /* */ if (_v) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (!($interfaceIsEqual(s, $ifaceNil))) { */ case 1: - _r$1 = s.Sizeof(T); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - z = _r$1; - if ((z.$high > 0 || (z.$high === 0 && z.$low >= 0))) { - $s = -1; return z; - } - $panic(new $String("Config.Sizes.Sizeof returned a size < 0")); + /* if (_v) { */ case 1: + $s = -1; return p.out.Column - startOutCol >> 0; /* } */ case 2: - _r$2 = stdSizes.Sizeof(T); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 5; case 5: return $24r; - /* */ } return; } var $f = {$blk: sizeof, $c: true, $r, $24r, T, _r$1, _r$2, conf, s, z, $s};return $f; - }; - align = function align$1(x, a) { - var a, x, x$1, x$2, y; - y = (x$1 = new $Int64(x.$high + a.$high, x.$low + a.$low), new $Int64(x$1.$high - 0, x$1.$low - 1)); - return (x$2 = $div64(y, a, true), new $Int64(y.$high - x$2.$high, y.$low - x$2.$low)); + $s = -1; return 1073741824; + /* */ } return; } var $f = {$blk: distanceFrom, $c: true, $r, _r, _v, p, startOutCol, startPos, $s};return $f; }; - NewSignatureType = function NewSignatureType$1(recv, recvTypeParams, typeParams, params, results, variadic) { - var {_arg, _r$1, _r$2, _r$3, _r$4, _tuple, _v, core, n, ok, params, recv, recvTypeParams, results, sig, typeParams, variadic, $s, $r, $c} = $restore(this, {recv, recvTypeParams, typeParams, params, results, variadic}); + $ptrType(printer).prototype.funcDecl = function funcDecl(d) { + var {_r, _r$1, _r$2, d, p, startCol, $s, $r, $c} = $restore(this, {d}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - /* */ if (variadic) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (variadic) { */ case 1: - n = params.Len(); - if (n === 0) { - $panic(new $String("variadic function must have at least one parameter")); - } - _r$1 = coreString(params.At(n - 1 >> 0).object.typ); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - core = _r$1; - _tuple = $assertType(core, ptrType$25, true); - ok = _tuple[1]; - if (!(!ok)) { _v = false; $s = 6; continue s; } - _r$2 = isString(core); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _v = !_r$2; case 6: - /* */ if (_v) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_v) { */ case 4: - _r$3 = core.String(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _arg = new $String(_r$3); - _r$4 = fmt.Sprintf("got %s, want variadic parameter with unnamed slice type or string as core type", new sliceType$6([_arg])); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $panic(new $String(_r$4)); - /* } */ case 5: - /* } */ case 2: - sig = new Signature.ptr(ptrType$48.nil, ptrType$48.nil, ptrType.nil, recv, params, results, variadic); - if (!((recvTypeParams.$length === 0))) { - if (recv === ptrType$16.nil) { - $panic(new $String("function with receiver type parameters must have a receiver")); - } - sig.rparams = bindTParams(recvTypeParams); - } - if (!((typeParams.$length === 0))) { - if (!(recv === ptrType$16.nil)) { - $panic(new $String("function with type parameters cannot have a receiver")); - } - sig.tparams = bindTParams(typeParams); - } - $s = -1; return sig; - /* */ } return; } var $f = {$blk: NewSignatureType$1, $c: true, $r, _arg, _r$1, _r$2, _r$3, _r$4, _tuple, _v, core, n, ok, params, recv, recvTypeParams, results, sig, typeParams, variadic, $s};return $f; - }; - $pkg.NewSignatureType = NewSignatureType; - $ptrType(Signature).prototype.Recv = function Recv() { - var s; - s = this; - return s.recv; - }; - $ptrType(Signature).prototype.TypeParams = function TypeParams() { - var s; - s = this; - return s.tparams; - }; - $ptrType(Signature).prototype.RecvTypeParams = function RecvTypeParams() { - var s; - s = this; - return s.rparams; - }; - $ptrType(Signature).prototype.Params = function Params() { - var s; - s = this; - return s.params; - }; - $ptrType(Signature).prototype.Results = function Results() { - var s; - s = this; - return s.results; - }; - $ptrType(Signature).prototype.Variadic = function Variadic() { - var s; - s = this; - return s.variadic; - }; - $ptrType(Signature).prototype.Underlying = function Underlying$5() { - var t; - t = this; - return t; + p = this; + $r = p.setComment(d.Doc); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r = d.Pos(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = p.setPos(_r); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(71), new whiteSpace(32)])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + startCol = p.out.Column - 5 >> 0; + /* */ if (!(d.Recv === ptrType$29.nil)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!(d.Recv === ptrType$29.nil)) { */ case 5: + $r = p.parameters(d.Recv, 0); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new whiteSpace(32)])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + $r = p.expr(d.Name); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.signature(d.Type); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = d.Pos(); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = p.distanceFrom(_r$1, startCol); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $r = p.funcBody(_r$2, 11, d.Body); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: funcDecl, $c: true, $r, _r, _r$1, _r$2, d, p, startCol, $s};return $f; }; - $ptrType(Signature).prototype.String = function String$10() { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); + $ptrType(printer).prototype.decl = function decl(decl$1) { + var {_ref, d, d$1, d$2, d$3, decl$1, p, $s, $r, $c} = $restore(this, {decl$1}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = TypeString(t, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$10, $c: true, $r, $24r, _r$1, t, $s};return $f; - }; - $ptrType(Checker).prototype.funcType = function funcType(sig, recvPar, ftyp) { - var {_1, _i, _i$1, _key, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, check, ftyp, got, i, i$1, p, params, recv, recv$1, recvList, recvPar, recvTPar, recvTParams, results, rname, rparams, scope, sig, smap, tpar, tparams, variadic, x, x$1, $s, $deferred, $r, $c} = $restore(this, {sig, recvPar, ftyp}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - check = [check]; - recv = [recv]; - sig = [sig]; - check[0] = this; - $r = check[0].openScope(ftyp, "function"); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - check[0].environment.scope.isFunc = true; - $r = check[0].recordScope(ftyp, check[0].environment.scope); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - sig[0].scope = check[0].environment.scope; - $deferred.push([$methodVal(check[0], "closeScope"), []]); - /* */ if (!(recvPar === ptrType$49.nil) && recvPar.List.$length > 0) { $s = 3; continue; } + p = this; + _ref = decl$1; + /* */ if ($assertType(_ref, ptrType$60, true)[1]) { $s = 1; continue; } + /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 2; continue; } + /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 3; continue; } /* */ $s = 4; continue; - /* if (!(recvPar === ptrType$49.nil) && recvPar.List.$length > 0) { */ case 3: - _r$1 = check[0].unpackRecv((x = recvPar.List, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).Type, true); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - rname = _tuple[1]; - rparams = _tuple[2]; - /* */ if (rparams.$length > 0) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (rparams.$length > 0) { */ case 6: - _r$2 = check[0].declareTypeParams(sliceType$9.nil, rparams); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - tparams = _r$2; - sig[0].rparams = bindTParams(tparams); - _ref = rparams; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - p = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (p.Name === "_") { - if (check[0].recvTParamMap === false) { - check[0].recvTParamMap = new $global.Map(); - } - _key = p; (check[0].recvTParamMap || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$30.keyFor(_key), { k: _key, v: ((i < 0 || i >= tparams.$length) ? ($throwRuntimeError("index out of range"), undefined) : tparams.$array[tparams.$offset + i]) }); - } - _i++; - } - recvTParams = sliceType$9.nil; - /* */ if (!(rname === ptrType$30.nil)) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (!(rname === ptrType$30.nil)) { */ case 9: - _r$3 = check[0].genericType(rname, ptrType$34.nil); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple$1 = $assertType(_r$3, ptrType$9, true); - recv$1 = _tuple$1[0]; - /* */ if (!(recv$1 === ptrType$9.nil)) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (!(recv$1 === ptrType$9.nil)) { */ case 12: - _r$4 = recv$1.TypeParams(); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$5 = _r$4.list(); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - recvTParams = _r$5; - /* } */ case 13: - /* } */ case 10: - /* */ if (tparams.$length === recvTParams.$length) { $s = 16; continue; } - /* */ if (tparams.$length < recvTParams.$length) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (tparams.$length === recvTParams.$length) { */ case 16: - _r$6 = makeRenameMap(recvTParams, tparams); /* */ $s = 19; case 19: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - smap = _r$6; - _ref$1 = tparams; - _i$1 = 0; - /* while (true) { */ case 20: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 21; continue; } - i$1 = _i$1; - tpar = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - recvTPar = ((i$1 < 0 || i$1 >= recvTParams.$length) ? ($throwRuntimeError("index out of range"), undefined) : recvTParams.$array[recvTParams.$offset + i$1]); - check[0].mono.recordCanon(tpar, recvTPar); - _r$7 = check[0].subst(tpar.obj.object.pos, recvTPar.bound, smap, ptrType$9.nil, check[0].context()); /* */ $s = 22; case 22: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - tpar.bound = _r$7; - _i$1++; - $s = 20; continue; - case 21: - $s = 18; continue; - /* } else if (tparams.$length < recvTParams.$length) { */ case 17: - _r$8 = measure(tparams.$length, "type parameter"); /* */ $s = 23; case 23: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - got = _r$8; - $r = check[0].errorf(recvPar, 31, "got %s, but receiver base type declares %d", new sliceType$6([new $String(got), new $Int(recvTParams.$length)])); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 18: - /* } */ case 7: - /* } */ case 4: - /* */ if (!(ftyp.TypeParams === ptrType$49.nil)) { $s = 25; continue; } - /* */ $s = 26; continue; - /* if (!(ftyp.TypeParams === ptrType$49.nil)) { */ case 25: - $r = check[0].collectTypeParams((sig[0].$ptr_tparams || (sig[0].$ptr_tparams = new ptrType$84(function() { return this.$target.tparams; }, function($v) { this.$target.tparams = $v; }, sig[0]))), ftyp.TypeParams); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!(recvPar === ptrType$49.nil)) { $s = 28; continue; } - /* */ $s = 29; continue; - /* if (!(recvPar === ptrType$49.nil)) { */ case 28: - $r = check[0].error(ftyp.TypeParams, 143, "methods cannot have type parameters"); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 29: - /* } */ case 26: - scope = NewScope(check[0].environment.scope, 0, 0, "function body (temp. scope)"); - _r$9 = check[0].collectParams(scope, recvPar, false); /* */ $s = 31; case 31: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _tuple$2 = _r$9; - recvList = _tuple$2[0]; - _r$10 = check[0].collectParams(scope, ftyp.Params, true); /* */ $s = 32; case 32: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _tuple$3 = _r$10; - params = _tuple$3[0]; - variadic = _tuple$3[1]; - _r$11 = check[0].collectParams(scope, ftyp.Results, false); /* */ $s = 33; case 33: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _tuple$4 = _r$11; - results = _tuple$4[0]; - $r = scope.squash((function(check, recv, sig) { return function Checker·funcType·func1(obj, alt) { - var {_arg, _arg$1, _r$12, alt, obj, $s, $r, $c} = $restore(this, {obj, alt}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _arg = obj; - _r$12 = obj.Name(); /* */ $s = 1; case 1: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _arg$1 = new $String(_r$12); - $r = check[0].errorf(_arg, 10, "%s redeclared in this block", new sliceType$6([_arg$1])); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].reportAltDecl(alt); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·funcType·func1, $c: true, $r, _arg, _arg$1, _r$12, alt, obj, $s};return $f; - }; })(check, recv, sig)); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!(recvPar === ptrType$49.nil)) { $s = 35; continue; } - /* */ $s = 36; continue; - /* if (!(recvPar === ptrType$49.nil)) { */ case 35: - recv[0] = ptrType$16.nil; - _1 = recvList.$length; - /* */ if (_1 === (0)) { $s = 38; continue; } - /* */ if (_1 === (1)) { $s = 39; continue; } - /* */ $s = 40; continue; - /* if (_1 === (0)) { */ case 38: - recv[0] = NewParam(0, ptrType$1.nil, "", (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])); - $s = 41; continue; - /* } else if (_1 === (1)) { */ case 39: - recv[0] = (0 >= recvList.$length ? ($throwRuntimeError("index out of range"), undefined) : recvList.$array[recvList.$offset + 0]); - $s = 41; continue; - /* } else { */ case 40: - $r = check[0].error((x$1 = recvList.$length - 1 >> 0, ((x$1 < 0 || x$1 >= recvList.$length) ? ($throwRuntimeError("index out of range"), undefined) : recvList.$array[recvList.$offset + x$1])), 32, "method has multiple receivers"); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - recv[0] = (0 >= recvList.$length ? ($throwRuntimeError("index out of range"), undefined) : recvList.$array[recvList.$offset + 0]); - /* } */ case 41: - case 37: - sig[0].recv = recv[0]; - check[0].later((function(check, recv, sig) { return function Checker·funcType·func2() { - var {T, T$1, T$2, _r$12, _ref$2, _ref$3, _tuple$5, cause, rtyp, u, u$1, u$2, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _tuple$5 = deref(recv[0].object.typ); - rtyp = _tuple$5[0]; - if ($interfaceIsEqual(rtyp, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { - $s = -1; return; - } - _ref$2 = rtyp; - /* */ if ($assertType(_ref$2, ptrType$9, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref$2, ptrType$4, true)[1]) { $s = 2; continue; } - /* */ $s = 3; continue; - /* switch (0) { default: if ($assertType(_ref$2, ptrType$9, true)[1]) { */ case 1: - T = _ref$2.$val; - /* */ if (!(T.TypeArgs() === ptrType$56.nil) && sig[0].RecvTypeParams() === ptrType$48.nil) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (!(T.TypeArgs() === ptrType$56.nil) && sig[0].RecvTypeParams() === ptrType$48.nil) { */ case 5: - $r = check[0].errorf(recv[0], 32, "cannot define new methods on instantiated type %s", new sliceType$6([rtyp])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* break; */ $s = 4; continue; - /* } */ case 6: - /* */ if (!(T.obj.object.pkg === check[0].pkg)) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (!(T.obj.object.pkg === check[0].pkg)) { */ case 8: - $r = check[0].errorf(recv[0], 32, "cannot define new methods on non-local type %s", new sliceType$6([rtyp])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* break; */ $s = 4; continue; - /* } */ case 9: - cause = ""; - _r$12 = T.under(); /* */ $s = 11; case 11: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _ref$3 = _r$12; - /* */ if ($assertType(_ref$3, ptrType$4, true)[1]) { $s = 12; continue; } - /* */ if ($assertType(_ref$3, ptrType$26, true)[1] || $assertType(_ref$3, ptrType$13, true)[1]) { $s = 13; continue; } - /* */ if ($assertType(_ref$3, ptrType$14, true)[1]) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if ($assertType(_ref$3, ptrType$4, true)[1]) { */ case 12: - u = _ref$3.$val; - if (u.kind === 18) { - cause = "unsafe.Pointer"; - } - $s = 15; continue; - /* } else if ($assertType(_ref$3, ptrType$26, true)[1] || $assertType(_ref$3, ptrType$13, true)[1]) { */ case 13: - u$1 = _ref$3; - cause = "pointer or interface type"; - $s = 15; continue; - /* } else if ($assertType(_ref$3, ptrType$14, true)[1]) { */ case 14: - u$2 = _ref$3.$val; - unreachable(); - /* } */ case 15: - /* */ if (!(cause === "")) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (!(cause === "")) { */ case 16: - $r = check[0].errorf(recv[0], 32, "invalid receiver type %s (%s)", new sliceType$6([rtyp, new $String(cause)])); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 17: - $s = 4; continue; - /* } else if ($assertType(_ref$2, ptrType$4, true)[1]) { */ case 2: - T$1 = _ref$2.$val; - $r = check[0].errorf(recv[0], 32, "cannot define new methods on non-local type %s", new sliceType$6([rtyp])); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 4; continue; - /* } else { */ case 3: - T$2 = _ref$2; - $r = check[0].errorf(recv[0], 32, "invalid receiver type %s", new sliceType$6([recv[0].object.typ])); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } } */ case 4: - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·funcType·func2, $c: true, $r, T, T$1, T$2, _r$12, _ref$2, _ref$3, _tuple$5, cause, rtyp, u, u$1, u$2, $s};return $f; - }; })(check, recv, sig)).describef(recv[0], "validate receiver %s", new sliceType$6([recv[0]])); - /* } */ case 36: - sig[0].params = NewTuple(params); - sig[0].results = NewTuple(results); - sig[0].variadic = variadic; + /* if ($assertType(_ref, ptrType$60, true)[1]) { */ case 1: + d = _ref.$val; + $r = p.setPos(d.Pos()); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new $String("BadDecl")])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 5; continue; + /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 2: + d$1 = _ref.$val; + $r = p.genDecl(d$1); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 5; continue; + /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 3: + d$2 = _ref.$val; + $r = p.funcDecl(d$2); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 5; continue; + /* } else { */ case 4: + d$3 = _ref; + $panic(new $String("unreachable")); + /* } */ case 5: $s = -1; return; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: funcType, $c: true, $r, _1, _i, _i$1, _key, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, check, ftyp, got, i, i$1, p, params, recv, recv$1, recvList, recvPar, recvTPar, recvTParams, results, rname, rparams, scope, sig, smap, tpar, tparams, variadic, x, x$1, $s, $deferred};return $f; } } + /* */ } return; } var $f = {$blk: decl, $c: true, $r, _ref, d, d$1, d$2, d$3, decl$1, p, $s};return $f; }; - $ptrType(Checker).prototype.collectParams = function collectParams(scope, list$2, variadicOk) { - var {_i, _i$1, _r$1, _r$2, _r$3, _ref, _ref$1, _tmp, _tmp$1, _tuple, anonymous, check, field, ftype, i, last, list$2, name, named, par, par$1, params, scope, t, typ$3, variadic, variadicOk, x, x$1, x$2, $s, $r, $c} = $restore(this, {scope, list$2, variadicOk}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - params = sliceType$10.nil; - variadic = false; - check = this; - if (list$2 === ptrType$49.nil) { - $s = -1; return [params, variadic]; + declToken = function declToken$1(decl$1) { + var _ref, d, d$1, decl$1, tok; + tok = 0; + tok = 0; + _ref = decl$1; + if ($assertType(_ref, ptrType$10, true)[1]) { + d = _ref.$val; + tok = d.Tok; + } else if ($assertType(_ref, ptrType$11, true)[1]) { + d$1 = _ref.$val; + tok = 71; } - _tmp = false; - _tmp$1 = false; - named = _tmp; - anonymous = _tmp$1; - _ref = list$2.List; + return tok; + }; + $ptrType(printer).prototype.declList = function declList(list) { + var {_arg, _arg$1, _arg$2, _i, _r, _r$1, _r$2, _r$3, _ref, _v, d, list, min, p, prev, tok, $s, $r, $c} = $restore(this, {list}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + tok = 0; + _ref = list; _i = 0; /* while (true) { */ case 1: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - field = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - ftype = field.Type; - _tuple = $assertType(ftype, ptrType$41, true); - t = _tuple[0]; - /* */ if (!(t === ptrType$41.nil)) { $s = 3; continue; } + d = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + prev = tok; + tok = declToken(d); + /* */ if (p.output.$length > 0) { $s = 3; continue; } /* */ $s = 4; continue; - /* if (!(t === ptrType$41.nil)) { */ case 3: - ftype = t.Elt; - /* */ if (variadicOk && (i === (list$2.List.$length - 1 >> 0)) && field.Names.$length <= 1) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (variadicOk && (i === (list$2.List.$length - 1 >> 0)) && field.Names.$length <= 1) { */ case 5: - variadic = true; - $s = 7; continue; - /* } else { */ case 6: - $r = check.softErrorf(t, 79, "can only use ... with final parameter in list", sliceType$6.nil); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 7: + /* if (p.output.$length > 0) { */ case 3: + min = 1; + if (!((prev === tok)) || !(getDoc(d) === ptrType$2.nil)) { + min = 2; + } + _r = d.Pos(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = p.lineFor(_r); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg = _r$1; + _arg$1 = min; + if (!(tok === 71)) { _v = false; $s = 7; continue s; } + _r$2 = p.numLines(d); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v = _r$2 > 1; case 7: + _arg$2 = _v; + _r$3 = p.linebreak(_arg, _arg$1, 0, _arg$2); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; /* } */ case 4: - _r$1 = check.varType(ftype); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - typ$3 = _r$1; - /* */ if (field.Names.$length > 0) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (field.Names.$length > 0) { */ case 10: - _ref$1 = field.Names; - _i$1 = 0; - /* while (true) { */ case 13: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 14; continue; } - name = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - /* */ if (name.Name === "") { $s = 15; continue; } - /* */ $s = 16; continue; - /* if (name.Name === "") { */ case 15: - $r = check.error(name, -1, "anonymous parameter"); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 16: - par = NewParam(name.Pos(), check.pkg, name.Name, typ$3); - $r = check.declare(scope, name, par, scope.pos); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - params = $append(params, par); - _i$1++; - $s = 13; continue; - case 14: - named = true; - $s = 12; continue; - /* } else { */ case 11: - _r$2 = ftype.Pos(); /* */ $s = 19; case 19: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = NewParam(_r$2, check.pkg, "", typ$3); /* */ $s = 20; case 20: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - par$1 = _r$3; - $r = check.recordImplicit(field, par$1); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - params = $append(params, par$1); - anonymous = true; - /* } */ case 12: + $r = p.decl(d); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } _i++; $s = 1; continue; case 2: - /* */ if (named && anonymous) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if (named && anonymous) { */ case 22: - $r = check.error(list$2, -1, "list contains both named and anonymous parameters"); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 23: - /* */ if (variadic) { $s = 25; continue; } - /* */ $s = 26; continue; - /* if (variadic) { */ case 25: - last = (x = params.$length - 1 >> 0, ((x < 0 || x >= params.$length) ? ($throwRuntimeError("index out of range"), undefined) : params.$array[params.$offset + x])); - last.object.typ = new Slice.ptr(last.object.typ); - $r = check.recordTypeAndValue((x$1 = list$2.List, x$2 = list$2.List.$length - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])).Type, 3, last.object.typ, $ifaceNil); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 26: - $s = -1; return [params, variadic]; - /* */ } return; } var $f = {$blk: collectParams, $c: true, $r, _i, _i$1, _r$1, _r$2, _r$3, _ref, _ref$1, _tmp, _tmp$1, _tuple, anonymous, check, field, ftype, i, last, list$2, name, named, par, par$1, params, scope, t, typ$3, variadic, variadicOk, x, x$1, x$2, $s};return $f; - }; - $ptrType(Selection).prototype.Kind = function Kind() { - var s; - s = this; - return s.kind; - }; - $ptrType(Selection).prototype.Recv = function Recv$1() { - var s; - s = this; - return s.recv; - }; - $ptrType(Selection).prototype.Obj = function Obj$1() { - var s; - s = this; - return s.obj; - }; - $ptrType(Selection).prototype.Type = function Type$2() { - var {$24r, _1, _r$1, arg0, params, recv, s, sig, sig$1, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - arg0 = [arg0]; - recv = [recv]; - sig = [sig]; - sig$1 = [sig$1]; - s = this; - _1 = s.kind; - if (_1 === (1)) { - sig[0] = $clone($assertType($assertType(s.obj, ptrType$2).object.typ, ptrType$27), Signature); - recv[0] = $clone(sig[0].recv, Var); - recv[0].object.typ = s.recv; - sig[0].recv = recv[0]; - $s = -1; return sig[0]; - } else if (_1 === (2)) { - sig$1[0] = $clone($assertType($assertType(s.obj, ptrType$2).object.typ, ptrType$27), Signature); - arg0[0] = $clone(sig$1[0].recv, Var); - sig$1[0].recv = ptrType$16.nil; - arg0[0].object.typ = s.recv; - params = sliceType$10.nil; - if (!(sig$1[0].params === ptrType$15.nil)) { - params = sig$1[0].params.vars; - } - sig$1[0].params = NewTuple($appendSlice(new sliceType$10([arg0[0]]), params)); - $s = -1; return sig$1[0]; - } - _r$1 = s.obj.Type(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Type$2, $c: true, $r, $24r, _1, _r$1, arg0, params, recv, s, sig, sig$1, $s};return $f; - }; - $ptrType(Selection).prototype.Index = function Index$1() { - var s; - s = this; - return s.index; - }; - $ptrType(Selection).prototype.Indirect = function Indirect() { - var s; - s = this; - return s.indirect; + $s = -1; return; + /* */ } return; } var $f = {$blk: declList, $c: true, $r, _arg, _arg$1, _arg$2, _i, _r, _r$1, _r$2, _r$3, _ref, _v, d, list, min, p, prev, tok, $s};return $f; }; - $ptrType(Selection).prototype.String = function String$11() { - var {$24r, _r$1, s, $s, $r, $c} = $restore(this, {}); + $ptrType(printer).prototype.file = function file(src) { + var {p, src, $s, $r, $c} = $restore(this, {src}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - s = this; - _r$1 = SelectionString(s, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$11, $c: true, $r, $24r, _r$1, s, $s};return $f; + p = this; + $r = p.setComment(src.Doc); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.setPos(src.Pos()); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new token.Token(78), new whiteSpace(32)])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.expr(src.Name); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.declList(src.Decls); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.print(new sliceType$1([new whiteSpace(10)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } var $f = {$blk: file, $c: true, $r, p, src, $s};return $f; }; - SelectionString = function SelectionString$1(s, qf) { - var {T, _1, _arg, _arg$1, _r$1, _r$2, _r$3, buf, k, qf, s, $s, $r, $c} = $restore(this, {s, qf}); + $ptrType(printer).prototype.fixGoBuildLines = function fixGoBuildLines() { + var {_1, _arg, _arg$1, _i, _i$1, _i$2, _i$3, _i$4, _r, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tuple, _tuple$1, _tuple$2, after, blank, block$1, end, err, err$1, insert, line, lines, n, p, pos, pos$1, pos$2, pos$3, start, toDelete, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, y, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - buf = [buf]; - k = ""; - _1 = s.kind; - if (_1 === (0)) { - k = "field "; - } else if (_1 === (1)) { - k = "method "; - } else if (_1 === (2)) { - k = "method expr "; - } else { - unreachable(); - } - buf[0] = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); - buf[0].WriteString(k); - buf[0].WriteByte(40); - $r = WriteType(buf[0], s.Recv(), qf); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _arg = buf[0]; - _r$1 = s.obj.Name(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _arg$1 = new $String(_r$1); - _r$2 = fmt.Fprintf(_arg, ") %s", new sliceType$6([_arg$1])); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - _r$3 = s.Type(); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - T = _r$3; - /* */ if (s.kind === 0) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (s.kind === 0) { */ case 5: - buf[0].WriteByte(32); - $r = WriteType(buf[0], T, qf); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 7; continue; - /* } else { */ case 6: - $r = WriteSignature(buf[0], $assertType(T, ptrType$27), qf); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 7: - $s = -1; return buf[0].String(); - /* */ } return; } var $f = {$blk: SelectionString$1, $c: true, $r, T, _1, _arg, _arg$1, _r$1, _r$2, _r$3, buf, k, qf, s, $s};return $f; - }; - $pkg.SelectionString = SelectionString; - NewScope = function NewScope$1(parent, pos, end, comment) { - var comment, end, parent, pos, s; - s = new Scope.ptr(parent, sliceType$20.nil, 0, false, pos, end, comment, false); - if (!(parent === ptrType.nil) && !(parent === $pkg.Universe)) { - parent.children = $append(parent.children, s); - s.number = parent.children.$length; + p = this; + if ((p.goBuild.$length + p.plusBuild.$length >> 0) === 0) { + $s = -1; return; } - return s; - }; - $pkg.NewScope = NewScope; - $ptrType(Scope).prototype.Parent = function Parent() { - var s; - s = this; - return s.parent; - }; - $ptrType(Scope).prototype.Len = function Len$5() { - var s; - s = this; - return (s.elems ? s.elems.size : 0); - }; - $ptrType(Scope).prototype.Names = function Names() { - var {_entry, _i, _key, _keys, _ref, _size, i, name, names, s, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - s = this; - names = $makeSlice(sliceType$5, (s.elems ? s.elems.size : 0)); - i = 0; - _ref = s.elems; - _i = 0; - _keys = _ref ? _ref.keys() : undefined; - _size = _ref ? _ref.size : 0; + insert = 0; + pos = 0; while (true) { - if (!(_i < _size)) { break; } - _key = _keys.next().value; - _entry = _ref.get(_key); - if (_entry === undefined) { - _i++; + blank = true; + while (true) { + if (!(pos < p.output.$length && (((x = p.output, ((pos < 0 || pos >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pos])) === 32) || ((x$1 = p.output, ((pos < 0 || pos >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + pos])) === 9)))) { break; } + pos = pos + (1) >> 0; + } + if ((pos + 3 >> 0) < p.output.$length && ((x$2 = p.output, ((pos < 0 || pos >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + pos])) === 255) && ((x$3 = p.output, x$4 = pos + 1 >> 0, ((x$4 < 0 || x$4 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + x$4])) === 47) && ((x$5 = p.output, x$6 = pos + 2 >> 0, ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$6])) === 47)) { + blank = false; + while (true) { + if (!(pos < p.output.$length && !isNL((x$7 = p.output, ((pos < 0 || pos >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + pos]))))) { break; } + pos = pos + (1) >> 0; + } + } + if (pos >= p.output.$length || !isNL((x$8 = p.output, ((pos < 0 || pos >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + pos])))) { + break; + } + pos = pos + (1) >> 0; + if (blank) { + insert = pos; + } + } + if (p.goBuild.$length > 0 && (x$9 = p.goBuild, (0 >= x$9.$length ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + 0])) < insert) { + insert = (x$11 = p.goBuild, (0 >= x$11.$length ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + 0])); + } else if (p.plusBuild.$length > 0 && (x$10 = p.plusBuild, (0 >= x$10.$length ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + 0])) < insert) { + insert = (x$12 = p.plusBuild, (0 >= x$12.$length ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + 0])); + } + x$13 = $ifaceNil; + _1 = p.goBuild.$length; + /* */ if (_1 === (0)) { $s = 2; continue; } + /* */ if (_1 === (1)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_1 === (0)) { */ case 2: + _ref = p.plusBuild; + _i = 0; + /* while (true) { */ case 5: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 6; continue; } + pos$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r = constraint.Parse(p.commentTextAt(pos$1)); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + y = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + x$13 = $ifaceNil; + /* break; */ $s = 6; continue; + } + if ($interfaceIsEqual(x$13, $ifaceNil)) { + x$13 = y; + } else { + x$13 = new constraint.AndExpr.ptr(x$13, y); + } + _i++; + $s = 5; continue; + case 6: + $s = 4; continue; + /* } else if (_1 === (1)) { */ case 3: + _r$1 = constraint.Parse(p.commentTextAt((x$14 = p.goBuild, (0 >= x$14.$length ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + 0])))); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + x$13 = _tuple$1[0]; + /* } */ case 4: + case 1: + block$1 = sliceType.nil; + /* */ if ($interfaceIsEqual(x$13, $ifaceNil)) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if ($interfaceIsEqual(x$13, $ifaceNil)) { */ case 9: + _ref$1 = p.goBuild; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + pos$2 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + block$1 = $appendSlice(block$1, p.lineAt(pos$2)); + _i$1++; + } + _ref$2 = p.plusBuild; + _i$2 = 0; + while (true) { + if (!(_i$2 < _ref$2.$length)) { break; } + pos$3 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); + block$1 = $appendSlice(block$1, p.lineAt(pos$3)); + _i$2++; + } + $s = 11; continue; + /* } else { */ case 10: + block$1 = $append(block$1, 255); + block$1 = $appendSlice(block$1, "//go:build "); + _arg = block$1; + _r$2 = x$13.String(); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg$1 = _r$2; + block$1 = $appendSlice(_arg, _arg$1); + block$1 = $append(block$1, 255, 10); + /* */ if (p.plusBuild.$length > 0) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (p.plusBuild.$length > 0) { */ case 13: + _r$3 = constraint.PlusBuildLines(x$13); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$2 = _r$3; + lines = _tuple$2[0]; + err$1 = _tuple$2[1]; + /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 16: + _r$4 = err$1.Error(); /* */ $s = 18; case 18: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + lines = new sliceType$11(["// +build error: " + _r$4]); + /* } */ case 17: + _ref$3 = lines; + _i$3 = 0; + while (true) { + if (!(_i$3 < _ref$3.$length)) { break; } + line = ((_i$3 < 0 || _i$3 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$3]); + block$1 = $append(block$1, 255); + block$1 = $appendSlice(block$1, line); + block$1 = $append(block$1, 255, 10); + _i$3++; + } + /* } */ case 14: + /* } */ case 11: + block$1 = $append(block$1, 10); + toDelete = $appendSlice(p.goBuild, p.plusBuild); + $r = sort.Ints(toDelete); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + after = sliceType.nil; + start = insert; + _ref$4 = toDelete; + _i$4 = 0; + while (true) { + if (!(_i$4 < _ref$4.$length)) { break; } + end = ((_i$4 < 0 || _i$4 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$4]); + if (end < start) { + _i$4++; continue; } - name = _entry.k; - ((i < 0 || i >= names.$length) ? ($throwRuntimeError("index out of range"), undefined) : names.$array[names.$offset + i] = name); - i = i + (1) >> 0; - _i++; + after = appendLines(after, $subslice(p.output, start, end)); + start = end + p.lineAt(end).$length >> 0; + _i$4++; } - $r = sort.Strings(names); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return names; - /* */ } return; } var $f = {$blk: Names, $c: true, $r, _entry, _i, _key, _keys, _ref, _size, i, name, names, s, $s};return $f; - }; - $ptrType(Scope).prototype.NumChildren = function NumChildren() { - var s; - s = this; - return s.children.$length; - }; - $ptrType(Scope).prototype.Child = function Child(i) { - var i, s, x; - s = this; - return (x = s.children, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - }; - $ptrType(Scope).prototype.Lookup = function Lookup(name) { - var {$24r, _entry, _r$1, name, s, $s, $r, $c} = $restore(this, {name}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - s = this; - _r$1 = resolve(name, (_entry = $mapIndex(s.elems,$String.keyFor(name)), _entry !== undefined ? _entry.v : $ifaceNil)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Lookup, $c: true, $r, $24r, _entry, _r$1, name, s, $s};return $f; - }; - $ptrType(Scope).prototype.LookupParent = function LookupParent(name, pos) { - var {_r$1, _r$2, _v, _v$1, name, obj, pos, s, $s, $r, $c} = $restore(this, {name, pos}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - s = this; - /* while (true) { */ case 1: - /* if (!(!(s === ptrType.nil))) { break; } */ if(!(!(s === ptrType.nil))) { $s = 2; continue; } - _r$1 = s.Lookup(name); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - obj = _r$1; - if (!(!($interfaceIsEqual(obj, $ifaceNil)))) { _v = false; $s = 6; continue s; } - if (!new token.Pos(pos).IsValid()) { _v$1 = true; $s = 7; continue s; } - _r$2 = obj.scopePos(); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _v$1 = _r$2 <= pos; case 7: - _v = _v$1; case 6: - /* */ if (_v) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_v) { */ case 4: - $s = -1; return [s, obj]; - /* } */ case 5: - s = s.parent; - $s = 1; continue; - case 2: - $s = -1; return [ptrType.nil, $ifaceNil]; - /* */ } return; } var $f = {$blk: LookupParent, $c: true, $r, _r$1, _r$2, _v, _v$1, name, obj, pos, s, $s};return $f; - }; - $ptrType(Scope).prototype.Insert = function Insert(obj) { - var {_r$1, _r$2, _r$3, alt, name, obj, s, $s, $r, $c} = $restore(this, {obj}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - s = this; - _r$1 = obj.Name(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - name = _r$1; - _r$2 = s.Lookup(name); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - alt = _r$2; - if (!($interfaceIsEqual(alt, $ifaceNil))) { - $s = -1; return alt; - } - s.insert(name, obj); - _r$3 = obj.Parent(); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (_r$3 === ptrType.nil) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (_r$3 === ptrType.nil) { */ case 3: - $r = obj.setParent(s); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 4: - $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: Insert, $c: true, $r, _r$1, _r$2, _r$3, alt, name, obj, s, $s};return $f; + after = appendLines(after, $subslice(p.output, start)); + n = after.$length; + if (n >= 2 && isNL((x$15 = n - 1 >> 0, ((x$15 < 0 || x$15 >= after.$length) ? ($throwRuntimeError("index out of range"), undefined) : after.$array[after.$offset + x$15]))) && isNL((x$16 = n - 2 >> 0, ((x$16 < 0 || x$16 >= after.$length) ? ($throwRuntimeError("index out of range"), undefined) : after.$array[after.$offset + x$16])))) { + after = $subslice(after, 0, (n - 1 >> 0)); + } + p.output = $subslice(p.output, 0, insert); + p.output = $appendSlice(p.output, block$1); + p.output = $appendSlice(p.output, after); + $s = -1; return; + /* */ } return; } var $f = {$blk: fixGoBuildLines, $c: true, $r, _1, _arg, _arg$1, _i, _i$1, _i$2, _i$3, _i$4, _r, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tuple, _tuple$1, _tuple$2, after, blank, block$1, end, err, err$1, insert, line, lines, n, p, pos, pos$1, pos$2, pos$3, start, toDelete, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, y, $s};return $f; }; - $ptrType(Scope).prototype.insert = function insert(name, obj) { - var _key, name, obj, s; - s = this; - if (s.elems === false) { - s.elems = new $global.Map(); + appendLines = function appendLines$1(x, y) { + var x, x$1, x$2, y; + if (y.$length > 0 && isNL((0 >= y.$length ? ($throwRuntimeError("index out of range"), undefined) : y.$array[y.$offset + 0])) && ((x.$length === 0) || x.$length >= 2 && isNL((x$1 = x.$length - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1]))) && isNL((x$2 = x.$length - 2 >> 0, ((x$2 < 0 || x$2 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$2]))))) { + y = $subslice(y, 1); } - _key = name; (s.elems || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: obj }); + return $appendSlice(x, y); }; - $ptrType(Scope).prototype.squash = function squash(err) { - var {_entry, _i, _i$1, _key, _keys, _r$1, _r$2, _ref, _ref$1, _size, alt, ch, err, i, j, k, name, obj, p, s, x, x$1, $s, $r, $c} = $restore(this, {err}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - s = this; - p = s.parent; - $r = assert(!(p === ptrType.nil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _ref = s.elems; - _i = 0; - _keys = _ref ? _ref.keys() : undefined; - _size = _ref ? _ref.size : 0; - /* while (true) { */ case 2: - /* if (!(_i < _size)) { break; } */ if(!(_i < _size)) { $s = 3; continue; } - _key = _keys.next().value; - _entry = _ref.get(_key); - if (_entry === undefined) { - _i++; - /* continue; */ $s = 2; continue; - } - name = _entry.k; - obj = _entry.v; - _r$1 = resolve(name, obj); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - obj = _r$1; - $r = obj.setParent(ptrType.nil); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$2 = p.Insert(obj); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - alt = _r$2; - /* */ if (!($interfaceIsEqual(alt, $ifaceNil))) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (!($interfaceIsEqual(alt, $ifaceNil))) { */ case 7: - $r = err(obj, alt); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 8: - _i++; - $s = 2; continue; - case 3: - j = -1; - _ref$1 = p.children; - _i$1 = 0; + $ptrType(printer).prototype.lineAt = function lineAt(start) { + var p, pos, start, x; + p = this; + pos = start; while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - i = _i$1; - ch = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - if (ch === s) { - j = i; - break; - } - _i$1++; + if (!(pos < p.output.$length && !isNL((x = p.output, ((pos < 0 || pos >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pos]))))) { break; } + pos = pos + (1) >> 0; + } + if (pos < p.output.$length) { + pos = pos + (1) >> 0; } - $r = assert(j >= 0); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - k = p.children.$length - 1 >> 0; - (x$1 = p.children, ((j < 0 || j >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + j] = (x = p.children, ((k < 0 || k >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + k])))); - p.children = $subslice(p.children, 0, k); - p.children = $appendSlice(p.children, s.children); - s.children = sliceType$20.nil; - s.elems = false; - $s = -1; return; - /* */ } return; } var $f = {$blk: squash, $c: true, $r, _entry, _i, _i$1, _key, _keys, _r$1, _r$2, _ref, _ref$1, _size, alt, ch, err, i, j, k, name, obj, p, s, x, x$1, $s};return $f; - }; - $ptrType(Scope).prototype.Pos = function Pos() { - var s; - s = this; - return s.pos; + return $subslice(p.output, start, pos); }; - $ptrType(Scope).prototype.End = function End() { - var s; - s = this; - return s.end; + $ptrType(printer).prototype.commentTextAt = function commentTextAt(start) { + var p, pos, start, x, x$1, x$2; + p = this; + if (start < p.output.$length && ((x = p.output, ((start < 0 || start >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + start])) === 255)) { + start = start + (1) >> 0; + } + pos = start; + while (true) { + if (!(pos < p.output.$length && !(((x$1 = p.output, ((pos < 0 || pos >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + pos])) === 255)) && !isNL((x$2 = p.output, ((pos < 0 || pos >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + pos]))))) { break; } + pos = pos + (1) >> 0; + } + return ($bytesToString($subslice(p.output, start, pos))); }; - $ptrType(Scope).prototype.Contains = function Contains(pos) { - var pos, s; - s = this; - return s.pos <= pos && pos < s.end; + isNL = function isNL$1(b) { + var b; + return (b === 10) || (b === 12); }; - $ptrType(Scope).prototype.Innermost = function Innermost(pos) { - var _i, _i$1, _ref, _ref$1, inner, pos, s, s$1, s$2; - s = this; - if (s.parent === $pkg.Universe) { - _ref = s.children; + formatDocComment = function formatDocComment$1(list) { + var {_i, _i$1, _r, _r$1, _ref, _ref$1, _tmp, _tmp$1, _tuple, _tuple$1, after, b, c, c$1, c$2, d, directives, found, kind, line, list, out, p, pr, slash, text, $s, $r, $c} = $restore(this, {list}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _tmp = ""; + _tmp$1 = ""; + kind = _tmp; + text = _tmp$1; + directives = sliceType$9.nil; + if ((list.$length === 1) && strings.HasPrefix((0 >= list.$length ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + 0]).Text, "/*")) { + kind = "/*"; + text = (0 >= list.$length ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + 0]).Text; + if (!strings.Contains(text, "\n") || allStars(text)) { + $s = -1; return list; + } + text = $substring(text, 2, (text.length - 2 >> 0)); + } else if (strings.HasPrefix((0 >= list.$length ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + 0]).Text, "//")) { + kind = "//"; + b = new strings.Builder.ptr(ptrType$61.nil, sliceType.nil); + _ref = list; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } - s$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - inner = s$1.Innermost(pos); - if (!(inner === ptrType.nil)) { - return inner; + c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _tuple = strings.CutPrefix(c.Text, "//"); + after = _tuple[0]; + found = _tuple[1]; + if (!found) { + $s = -1; return list; + } + if (isDirective(after)) { + directives = $append(directives, c); + _i++; + continue; } + b.WriteString(strings.TrimPrefix(after, " ")); + b.WriteString("\n"); _i++; } + text = b.String(); + } else { + $s = -1; return list; + } + if (text === "") { + $s = -1; return list; + } + p = new comment.Parser.ptr(false, $throwNilPointerError, $throwNilPointerError); + _r = p.Parse(text); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + d = _r; + pr = new comment.Printer.ptr(0, $throwNilPointerError, $throwNilPointerError, "", "", "", 0); + _r$1 = pr.Comment(d); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + text = ($bytesToString(_r$1)); + slash = (0 >= list.$length ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + 0]).Slash; + if (kind === "/*") { + c$1 = new ast.Comment.ptr(slash, "/*\n" + text + "*/"); + $s = -1; return new sliceType$9([c$1]); + } + out = sliceType$9.nil; + while (true) { + if (!(!(text === ""))) { break; } + line = ""; + _tuple$1 = strings.Cut(text, "\n"); + line = _tuple$1[0]; + text = _tuple$1[1]; + if (line === "") { + line = "//"; + } else if (strings.HasPrefix(line, "\t")) { + line = "//" + line; + } else { + line = "// " + line; + } + out = $append(out, new ast.Comment.ptr(slash, line)); } - if (s.Contains(pos)) { - _ref$1 = s.children; + if (directives.$length > 0) { + out = $append(out, new ast.Comment.ptr(slash, "//")); + _ref$1 = directives; _i$1 = 0; while (true) { if (!(_i$1 < _ref$1.$length)) { break; } - s$2 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - if (s$2.Contains(pos)) { - return s$2.Innermost(pos); - } + c$2 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + out = $append(out, new ast.Comment.ptr(slash, c$2.Text)); _i$1++; } - return s; } - return ptrType.nil; + $s = -1; return out; + /* */ } return; } var $f = {$blk: formatDocComment$1, $c: true, $r, _i, _i$1, _r, _r$1, _ref, _ref$1, _tmp, _tmp$1, _tuple, _tuple$1, after, b, c, c$1, c$2, d, directives, found, kind, line, list, out, p, pr, slash, text, $s};return $f; }; - $ptrType(Scope).prototype.WriteTo = function WriteTo(w, n, recurse) { - var {_arg, _arg$1, _arg$2, _i, _i$1, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, indn, indn1, n, name, recurse, s, s$1, w, $s, $r, $c} = $restore(this, {w, n, recurse}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - s = this; - indn = strings.Repeat(". ", n); - _r$1 = fmt.Fprintf(w, "%s%s scope %p {\n", new sliceType$6([new $String(indn), new $String(s.comment), s])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - indn1 = indn + ". "; - _r$2 = s.Names(); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _ref = _r$2; - _i = 0; - /* while (true) { */ case 3: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } - name = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _arg = w; - _arg$1 = new $String(indn1); - _r$3 = s.Lookup(name); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _arg$2 = _r$3; - _r$4 = fmt.Fprintf(_arg, "%s%s\n", new sliceType$6([_arg$1, _arg$2])); /* */ $s = 6; case 6: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$4; - _i++; - $s = 3; continue; - case 4: - /* */ if (recurse) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (recurse) { */ case 7: - _ref$1 = s.children; - _i$1 = 0; - /* while (true) { */ case 9: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 10; continue; } - s$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - $r = s$1.WriteTo(w, n + 1 >> 0, recurse); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$1++; - $s = 9; continue; - case 10: - /* } */ case 8: - _r$5 = fmt.Fprintf(w, "%s}\n", new sliceType$6([new $String(indn)])); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$5; - $s = -1; return; - /* */ } return; } var $f = {$blk: WriteTo, $c: true, $r, _arg, _arg$1, _arg$2, _i, _i$1, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, indn, indn1, n, name, recurse, s, s$1, w, $s};return $f; + isDirective = function isDirective$1(c) { + var b, c, colon, i; + if (strings.HasPrefix(c, "line ") || strings.HasPrefix(c, "extern ") || strings.HasPrefix(c, "export ")) { + return true; + } + colon = strings.Index(c, ":"); + if (colon <= 0 || (colon + 1 >> 0) >= c.length) { + return false; + } + i = 0; + while (true) { + if (!(i <= (colon + 1 >> 0))) { break; } + if (i === colon) { + i = i + (1) >> 0; + continue; + } + b = c.charCodeAt(i); + if (!(97 <= b && b <= 122 || 48 <= b && b <= 57)) { + return false; + } + i = i + (1) >> 0; + } + return true; }; - $ptrType(Scope).prototype.String = function String$12() { - var {buf, s, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - buf = [buf]; - s = this; - buf[0] = new strings.Builder.ptr(ptrType$53.nil, sliceType$14.nil); - $r = s.WriteTo(buf[0], 0, false); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return buf[0].String(); - /* */ } return; } var $f = {$blk: String$12, $c: true, $r, buf, s, $s};return $f; + allStars = function allStars$1(text) { + var i, j, text; + i = 0; + while (true) { + if (!(i < text.length)) { break; } + if (text.charCodeAt(i) === 10) { + j = i + 1 >> 0; + while (true) { + if (!(j < text.length && ((text.charCodeAt(j) === 32) || (text.charCodeAt(j) === 9)))) { break; } + j = j + (1) >> 0; + } + if (j < text.length && !((text.charCodeAt(j) === 42))) { + return false; + } + } + i = i + (1) >> 0; + } + return true; }; - resolve = function resolve$1(name, obj) { - var {_tuple, lazy, name, obj, ok, $s, $r, $c} = $restore(this, {name, obj}); + ptrType$15.methods = [{prop: "internalError", name: "internalError", pkg: "go/printer", typ: $funcType([sliceType$1], [], true)}, {prop: "commentsHaveNewline", name: "commentsHaveNewline", pkg: "go/printer", typ: $funcType([sliceType$9], [$Bool], false)}, {prop: "nextComment", name: "nextComment", pkg: "go/printer", typ: $funcType([], [], false)}, {prop: "commentBefore", name: "commentBefore", pkg: "go/printer", typ: $funcType([token.Position], [$Bool], false)}, {prop: "commentSizeBefore", name: "commentSizeBefore", pkg: "go/printer", typ: $funcType([token.Position], [$Int], false)}, {prop: "recordLine", name: "recordLine", pkg: "go/printer", typ: $funcType([ptrType$1], [], false)}, {prop: "linesFrom", name: "linesFrom", pkg: "go/printer", typ: $funcType([$Int], [$Int], false)}, {prop: "posFor", name: "posFor", pkg: "go/printer", typ: $funcType([token.Pos], [token.Position], false)}, {prop: "lineFor", name: "lineFor", pkg: "go/printer", typ: $funcType([token.Pos], [$Int], false)}, {prop: "writeLineDirective", name: "writeLineDirective", pkg: "go/printer", typ: $funcType([token.Position], [], false)}, {prop: "writeIndent", name: "writeIndent", pkg: "go/printer", typ: $funcType([], [], false)}, {prop: "writeByte", name: "writeByte", pkg: "go/printer", typ: $funcType([$Uint8, $Int], [], false)}, {prop: "writeString", name: "writeString", pkg: "go/printer", typ: $funcType([token.Position, $String, $Bool], [], false)}, {prop: "writeCommentPrefix", name: "writeCommentPrefix", pkg: "go/printer", typ: $funcType([token.Position, token.Position, ptrType$3, token.Token], [], false)}, {prop: "writeComment", name: "writeComment", pkg: "go/printer", typ: $funcType([ptrType$3], [], false)}, {prop: "writeCommentSuffix", name: "writeCommentSuffix", pkg: "go/printer", typ: $funcType([$Bool], [$Bool, $Bool], false)}, {prop: "containsLinebreak", name: "containsLinebreak", pkg: "go/printer", typ: $funcType([], [$Bool], false)}, {prop: "intersperseComments", name: "intersperseComments", pkg: "go/printer", typ: $funcType([token.Position, token.Token], [$Bool, $Bool], false)}, {prop: "writeWhitespace", name: "writeWhitespace", pkg: "go/printer", typ: $funcType([$Int], [], false)}, {prop: "setPos", name: "setPos", pkg: "go/printer", typ: $funcType([token.Pos], [], false)}, {prop: "print", name: "print", pkg: "go/printer", typ: $funcType([sliceType$1], [], true)}, {prop: "flush", name: "flush", pkg: "go/printer", typ: $funcType([token.Position, token.Token], [$Bool, $Bool], false)}, {prop: "printNode", name: "printNode", pkg: "go/printer", typ: $funcType([$emptyInterface], [$error], false)}, {prop: "free", name: "free", pkg: "go/printer", typ: $funcType([], [], false)}, {prop: "linebreak", name: "linebreak", pkg: "go/printer", typ: $funcType([$Int, $Int, whiteSpace, $Bool], [$Int], false)}, {prop: "setComment", name: "setComment", pkg: "go/printer", typ: $funcType([ptrType$2], [], false)}, {prop: "identList", name: "identList", pkg: "go/printer", typ: $funcType([sliceType$8, $Bool], [], false)}, {prop: "exprList", name: "exprList", pkg: "go/printer", typ: $funcType([token.Pos, sliceType$7, $Int, exprListMode, token.Pos, $Bool], [], false)}, {prop: "parameters", name: "parameters", pkg: "go/printer", typ: $funcType([ptrType$29, paramMode], [], false)}, {prop: "signature", name: "signature", pkg: "go/printer", typ: $funcType([ptrType$24], [], false)}, {prop: "isOneLineFieldList", name: "isOneLineFieldList", pkg: "go/printer", typ: $funcType([sliceType$12], [$Bool], false)}, {prop: "setLineComment", name: "setLineComment", pkg: "go/printer", typ: $funcType([$String], [], false)}, {prop: "fieldList", name: "fieldList", pkg: "go/printer", typ: $funcType([ptrType$29, $Bool, $Bool], [], false)}, {prop: "binaryExpr", name: "binaryExpr", pkg: "go/printer", typ: $funcType([ptrType$20, $Int, $Int, $Int], [], false)}, {prop: "expr1", name: "expr1", pkg: "go/printer", typ: $funcType([ast.Expr, $Int, $Int], [], false)}, {prop: "possibleSelectorExpr", name: "possibleSelectorExpr", pkg: "go/printer", typ: $funcType([ast.Expr, $Int, $Int], [$Bool], false)}, {prop: "selectorExpr", name: "selectorExpr", pkg: "go/printer", typ: $funcType([ptrType$32, $Int, $Bool], [$Bool], false)}, {prop: "expr0", name: "expr0", pkg: "go/printer", typ: $funcType([ast.Expr, $Int], [], false)}, {prop: "expr", name: "expr", pkg: "go/printer", typ: $funcType([ast.Expr], [], false)}, {prop: "stmtList", name: "stmtList", pkg: "go/printer", typ: $funcType([sliceType$5, $Int, $Bool], [], false)}, {prop: "block", name: "block", pkg: "go/printer", typ: $funcType([ptrType$51, $Int], [], false)}, {prop: "controlClause", name: "controlClause", pkg: "go/printer", typ: $funcType([$Bool, ast.Stmt, ast.Expr, ast.Stmt], [], false)}, {prop: "indentList", name: "indentList", pkg: "go/printer", typ: $funcType([sliceType$7], [$Bool], false)}, {prop: "stmt", name: "stmt", pkg: "go/printer", typ: $funcType([ast.Stmt, $Bool], [], false)}, {prop: "valueSpec", name: "valueSpec", pkg: "go/printer", typ: $funcType([ptrType$8, $Bool], [], false)}, {prop: "spec", name: "spec", pkg: "go/printer", typ: $funcType([ast.Spec, $Int, $Bool], [], false)}, {prop: "genDecl", name: "genDecl", pkg: "go/printer", typ: $funcType([ptrType$10], [], false)}, {prop: "nodeSize", name: "nodeSize", pkg: "go/printer", typ: $funcType([ast.Node, $Int], [$Int], false)}, {prop: "numLines", name: "numLines", pkg: "go/printer", typ: $funcType([ast.Node], [$Int], false)}, {prop: "bodySize", name: "bodySize", pkg: "go/printer", typ: $funcType([ptrType$51, $Int], [$Int], false)}, {prop: "funcBody", name: "funcBody", pkg: "go/printer", typ: $funcType([$Int, whiteSpace, ptrType$51], [], false)}, {prop: "distanceFrom", name: "distanceFrom", pkg: "go/printer", typ: $funcType([token.Pos, $Int], [$Int], false)}, {prop: "funcDecl", name: "funcDecl", pkg: "go/printer", typ: $funcType([ptrType$11], [], false)}, {prop: "decl", name: "decl", pkg: "go/printer", typ: $funcType([ast.Decl], [], false)}, {prop: "declList", name: "declList", pkg: "go/printer", typ: $funcType([sliceType$6], [], false)}, {prop: "file", name: "file", pkg: "go/printer", typ: $funcType([ptrType$12], [], false)}, {prop: "fixGoBuildLines", name: "fixGoBuildLines", pkg: "go/printer", typ: $funcType([], [], false)}, {prop: "lineAt", name: "lineAt", pkg: "go/printer", typ: $funcType([$Int], [sliceType], false)}, {prop: "commentTextAt", name: "commentTextAt", pkg: "go/printer", typ: $funcType([$Int], [$String], false)}]; + ptrType$62.methods = [{prop: "resetSpace", name: "resetSpace", pkg: "go/printer", typ: $funcType([], [], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}]; + ptrType$16.methods = [{prop: "fprint", name: "fprint", pkg: "go/printer", typ: $funcType([io.Writer, ptrType, $emptyInterface, mapType], [$error], false)}, {prop: "Fprint", name: "Fprint", pkg: "", typ: $funcType([io.Writer, ptrType, $emptyInterface], [$error], false)}]; + ptrType$63.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}]; + commentInfo.init("go/printer", [{prop: "cindex", name: "cindex", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "comment", name: "comment", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "commentOffset", name: "commentOffset", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "commentNewline", name: "commentNewline", embedded: false, exported: false, typ: $Bool, tag: ""}]); + printer.init("go/printer", [{prop: "Config", name: "Config", embedded: true, exported: true, typ: Config, tag: ""}, {prop: "fset", name: "fset", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "output", name: "output", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "indent", name: "indent", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "level", name: "level", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "mode", name: "mode", embedded: false, exported: false, typ: pmode, tag: ""}, {prop: "endAlignment", name: "endAlignment", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "impliedSemi", name: "impliedSemi", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "lastTok", name: "lastTok", embedded: false, exported: false, typ: token.Token, tag: ""}, {prop: "prevOpen", name: "prevOpen", embedded: false, exported: false, typ: token.Token, tag: ""}, {prop: "wsbuf", name: "wsbuf", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "goBuild", name: "goBuild", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "plusBuild", name: "plusBuild", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Position, tag: ""}, {prop: "out", name: "out", embedded: false, exported: false, typ: token.Position, tag: ""}, {prop: "last", name: "last", embedded: false, exported: false, typ: token.Position, tag: ""}, {prop: "linePtr", name: "linePtr", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "sourcePosErr", name: "sourcePosErr", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "comments", name: "comments", embedded: false, exported: false, typ: sliceType$4, tag: ""}, {prop: "useNodeComments", name: "useNodeComments", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "commentInfo", name: "commentInfo", embedded: true, exported: false, typ: commentInfo, tag: ""}, {prop: "nodeSizes", name: "nodeSizes", embedded: false, exported: false, typ: mapType, tag: ""}, {prop: "cachedPos", name: "cachedPos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "cachedLine", name: "cachedLine", embedded: false, exported: false, typ: $Int, tag: ""}]); + trimmer.init("go/printer", [{prop: "output", name: "output", embedded: false, exported: false, typ: io.Writer, tag: ""}, {prop: "state", name: "state", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "space", name: "space", embedded: false, exported: false, typ: sliceType, tag: ""}]); + Config.init("", [{prop: "Mode", name: "Mode", embedded: false, exported: true, typ: Mode, tag: ""}, {prop: "Tabwidth", name: "Tabwidth", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Indent", name: "Indent", embedded: false, exported: true, typ: $Int, tag: ""}]); + CommentedNode.init("", [{prop: "Node", name: "Node", embedded: false, exported: true, typ: $emptyInterface, tag: ""}, {prop: "Comments", name: "Comments", embedded: false, exported: true, typ: sliceType$4, tag: ""}]); + sizeCounter.init("go/printer", [{prop: "hasNewline", name: "hasNewline", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: $Int, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = ast.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = constraint.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = comment.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = token.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = math.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = os.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sort.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = tabwriter.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unicode.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + aNewline = (new sliceType($stringToBytes("\n"))); + printerPool = new sync.Pool.ptr(sliceType$1.nil, (function func1() { + return new printer.ptr(new Config.ptr(0, 0, 0), ptrType.nil, $makeSlice(sliceType, 0, 16384), 0, 0, 0, false, false, 0, 0, $makeSlice(sliceType$2, 0, 16), sliceType$3.nil, sliceType$3.nil, new token.Position.ptr("", 0, 0, 0), new token.Position.ptr("", 0, 0, 0), new token.Position.ptr("", 0, 0, 0), ptrType$1.nil, $ifaceNil, sliceType$4.nil, false, new commentInfo.ptr(0, ptrType$2.nil, 0, false), false, 0, 0); + })); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["go/format"] = (function() { + var $pkg = {}, $init, bytes, fmt, ast, parser, printer, token, io, strings, ptrType, sliceType, config, parse, format, isSpace, Source; + bytes = $packages["bytes"]; + fmt = $packages["fmt"]; + ast = $packages["go/ast"]; + parser = $packages["go/parser"]; + printer = $packages["go/printer"]; + token = $packages["go/token"]; + io = $packages["io"]; + strings = $packages["strings"]; + $pkg.$finishSetup = function() { + ptrType = $ptrType(ast.File); + sliceType = $sliceType($Uint8); + parse = function parse$1(fset, filename, src, fragmentOk) { + var {_r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, _tuple$2, _v, err, file, filename, fragmentOk, fset, fsrc, indentAdj, psrc, sourceAdj, src, $s, $r, $c} = $restore(this, {fset, filename, src, fragmentOk}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - lazy = [lazy]; - name = [name]; - _tuple = $assertType(obj, ptrType$85, true); - lazy[0] = _tuple[0]; - ok = _tuple[1]; - /* */ if (ok) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (ok) { */ case 1: - $r = lazy[0].once.Do((function(lazy, name) { return function resolve·func1() { - var {_r$1, _r$2, _r$3, _tuple$1, obj$1, ok$1, $s, $r, $c} = $restore(this, {}); + file = ptrType.nil; + sourceAdj = $throwNilPointerError; + indentAdj = 0; + err = $ifaceNil; + _r = parser.ParseFile(fset, filename, src, 68); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + file = _tuple[0]; + err = _tuple[1]; + if ($interfaceIsEqual(err, $ifaceNil) || !fragmentOk) { _v = true; $s = 4; continue s; } + _r$1 = err.Error(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = strings.Contains(_r$1, "expected 'package'"); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v = !_r$2; case 4: + /* */ if (_v) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (_v) { */ case 2: + $s = -1; return [file, sourceAdj, indentAdj, err]; + /* } */ case 3: + psrc = $appendSlice((new sliceType($stringToBytes("package p;"))), src); + _r$3 = parser.ParseFile(fset, filename, psrc, 68); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$1 = _r$3; + file = _tuple$1[0]; + err = _tuple$1[1]; + /* */ if ($interfaceIsEqual(err, $ifaceNil)) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if ($interfaceIsEqual(err, $ifaceNil)) { */ case 8: + sourceAdj = (function parse·func1(src$1, indent) { + var {$24r, _r$4, indent, src$1, $s, $r, $c} = $restore(this, {src$1, indent}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + src$1 = $subslice(src$1, (indent + 10 >> 0)); + _r$4 = bytes.TrimSpace(src$1); /* */ $s = 1; case 1: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $24r = _r$4; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: parse·func1, $c: true, $r, $24r, _r$4, indent, src$1, $s};return $f; + }); + $s = -1; return [file, sourceAdj, indentAdj, err]; + /* } */ case 9: + _r$4 = err.Error(); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$5 = strings.Contains(_r$4, "expected declaration"); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (!_r$5) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (!_r$5) { */ case 10: + $s = -1; return [file, sourceAdj, indentAdj, err]; + /* } */ case 11: + fsrc = $append($appendSlice((new sliceType($stringToBytes("package p; func _() {"))), src), 10, 10, 125); + _r$6 = parser.ParseFile(fset, filename, fsrc, 68); /* */ $s = 14; case 14: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _tuple$2 = _r$6; + file = _tuple$2[0]; + err = _tuple$2[1]; + if ($interfaceIsEqual(err, $ifaceNil)) { + sourceAdj = (function parse·func2(src$1, indent) { + var {$24r, _r$7, indent, src$1, $s, $r, $c} = $restore(this, {src$1, indent}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = lazy[0].resolve(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - obj$1 = _r$1; - _tuple$1 = $assertType(obj$1, ptrType$85, true); - ok$1 = _tuple$1[1]; - if (ok$1) { - $panic(new $String("recursive lazy object")); + if (indent < 0) { + indent = 0; } - _r$2 = obj$1.Name(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (!(_r$2 === name[0])) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!(_r$2 === name[0])) { */ case 2: - $panic(new $String("lazy object has unexpected name")); - /* } */ case 3: - _r$3 = obj$1.Parent(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (_r$3 === ptrType.nil) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (_r$3 === ptrType.nil) { */ case 5: - $r = obj$1.setParent(lazy[0].parent); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 6: - lazy[0].obj = obj$1; - $s = -1; return; - /* */ } return; } var $f = {$blk: resolve·func1, $c: true, $r, _r$1, _r$2, _r$3, _tuple$1, obj$1, ok$1, $s};return $f; - }; })(lazy, name)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - obj = lazy[0].obj; - /* } */ case 2: - $s = -1; return obj; - /* */ } return; } var $f = {$blk: resolve$1, $c: true, $r, _tuple, lazy, name, obj, ok, $s};return $f; - }; - $ptrType(lazyObject).prototype.Parent = function Parent$1() { - $panic(new $String("unreachable")); - }; - $ptrType(lazyObject).prototype.Pos = function Pos$1() { - $panic(new $String("unreachable")); - }; - $ptrType(lazyObject).prototype.Pkg = function Pkg() { - $panic(new $String("unreachable")); - }; - $ptrType(lazyObject).prototype.Name = function Name() { - $panic(new $String("unreachable")); - }; - $ptrType(lazyObject).prototype.Type = function Type$3() { - $panic(new $String("unreachable")); - }; - $ptrType(lazyObject).prototype.Exported = function Exported() { - $panic(new $String("unreachable")); - }; - $ptrType(lazyObject).prototype.Id = function Id$1() { - $panic(new $String("unreachable")); - }; - $ptrType(lazyObject).prototype.String = function String$13() { - $panic(new $String("unreachable")); - }; - $ptrType(lazyObject).prototype.order = function order() { - $panic(new $String("unreachable")); - }; - $ptrType(lazyObject).prototype.color = function color$1() { - $panic(new $String("unreachable")); - }; - $ptrType(lazyObject).prototype.setOrder = function setOrder(param) { - var param; - $panic(new $String("unreachable")); - }; - $ptrType(lazyObject).prototype.setColor = function setColor(color$2) { - var color$2; - $panic(new $String("unreachable")); - }; - $ptrType(lazyObject).prototype.setParent = function setParent(param) { - var param; - $panic(new $String("unreachable")); - }; - $ptrType(lazyObject).prototype.sameId = function sameId(pkg, name) { - var name, pkg; - $panic(new $String("unreachable")); - }; - $ptrType(lazyObject).prototype.scopePos = function scopePos() { - $panic(new $String("unreachable")); - }; - $ptrType(lazyObject).prototype.setScopePos = function setScopePos(pos) { - var pos; - $panic(new $String("unreachable")); + src$1 = $subslice(src$1, (($imul(2, indent)) + 21 >> 0)); + src$1 = $subslice(src$1, 0, (src$1.$length - 2 >> 0)); + _r$7 = bytes.TrimSpace(src$1); /* */ $s = 1; case 1: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $24r = _r$7; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: parse·func2, $c: true, $r, $24r, _r$7, indent, src$1, $s};return $f; + }); + indentAdj = -1; + } + $s = -1; return [file, sourceAdj, indentAdj, err]; + /* */ } return; } var $f = {$blk: parse$1, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, _tuple$2, _v, err, file, filename, fragmentOk, fset, fsrc, indentAdj, psrc, sourceAdj, src, $s};return $f; }; - $ptrType(Checker).prototype.isTerminating = function isTerminating(s, label) { - var _entry, _i, _ref, _ref$1, _tuple, call, cc, check, label, ok, s, s$1, s$10, s$11, s$12, s$13, s$2, s$3, s$4, s$5, s$6, s$7, s$8, s$9; - check = this; - _ref = s; - if ($assertType(_ref, ptrType$63, true)[1] || $assertType(_ref, ptrType$64, true)[1] || $assertType(_ref, ptrType$59, true)[1] || $assertType(_ref, ptrType$67, true)[1] || $assertType(_ref, ptrType$68, true)[1] || $assertType(_ref, ptrType$69, true)[1] || $assertType(_ref, ptrType$70, true)[1] || $assertType(_ref, ptrType$71, true)[1] || $assertType(_ref, ptrType$80, true)[1]) { - s$2 = _ref; - } else if ($assertType(_ref, ptrType$65, true)[1]) { - s$3 = _ref.$val; - return check.isTerminating(s$3.Stmt, s$3.Label.Name); - } else if ($assertType(_ref, ptrType$66, true)[1]) { - s$4 = _ref.$val; - _tuple = $assertType(unparen(s$4.X), ptrType$86, true); - call = _tuple[0]; - ok = _tuple[1]; - if (ok && (_entry = $mapIndex(check.environment.isPanic,ptrType$86.keyFor(call)), _entry !== undefined ? _entry.v : false)) { - return true; - } - } else if ($assertType(_ref, ptrType$72, true)[1]) { - s$5 = _ref.$val; - return true; - } else if ($assertType(_ref, ptrType$73, true)[1]) { - s$6 = _ref.$val; - if ((s$6.Tok === 73) || (s$6.Tok === 69)) { - return true; - } - } else if ($assertType(_ref, ptrType$74, true)[1]) { - s$7 = _ref.$val; - return check.isTerminatingList(s$7.List, ""); - } else if ($assertType(_ref, ptrType$75, true)[1]) { - s$8 = _ref.$val; - if (!($interfaceIsEqual(s$8.Else, $ifaceNil)) && check.isTerminating(s$8.Body, "") && check.isTerminating(s$8.Else, "")) { - return true; - } - } else if ($assertType(_ref, ptrType$76, true)[1]) { - s$9 = _ref.$val; - return check.isTerminatingSwitch(s$9.Body, label); - } else if ($assertType(_ref, ptrType$77, true)[1]) { - s$10 = _ref.$val; - return check.isTerminatingSwitch(s$10.Body, label); - } else if ($assertType(_ref, ptrType$78, true)[1]) { - s$11 = _ref.$val; - _ref$1 = s$11.Body.List; - _i = 0; - while (true) { - if (!(_i < _ref$1.$length)) { break; } - s$13 = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); - cc = $assertType(s$13, ptrType$61); - if (!check.isTerminatingList(cc.Body, "") || hasBreakList(cc.Body, label, true)) { - return false; - } - _i++; + format = function format$1(fset, file, sourceAdj, indentAdj, src, cfg) { + var {_1, _i, _r, _r$1, _r$2, _ref, _tmp, _tmp$1, b, buf, buf$1, cfg, err, err$1, file, fset, hasSpace, i, i$1, indent, indentAdj, j, out, res, sourceAdj, src, x, $s, $r, $c} = $restore(this, {fset, file, sourceAdj, indentAdj, src, cfg}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + buf = [buf]; + buf$1 = [buf$1]; + /* */ if (sourceAdj === $throwNilPointerError) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (sourceAdj === $throwNilPointerError) { */ case 1: + buf[0] = new bytes.Buffer.ptr(sliceType.nil, 0, 0); + _r = cfg.Fprint(buf[0], fset, file); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [sliceType.nil, err]; } - return true; - } else if ($assertType(_ref, ptrType$79, true)[1]) { - s$12 = _ref.$val; - if ($interfaceIsEqual(s$12.Cond, $ifaceNil) && !hasBreak(s$12.Body, label, true)) { - return true; + $s = -1; return [buf[0].Bytes(), $ifaceNil]; + /* } */ case 2: + _tmp = 0; + _tmp$1 = 0; + i = _tmp; + j = _tmp$1; + while (true) { + if (!(j < src.$length && isSpace(((j < 0 || j >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + j])))) { break; } + if (((j < 0 || j >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + j]) === 10) { + i = j + 1 >> 0; } - } else { - s$1 = _ref; - unreachable(); + j = j + (1) >> 0; } - return false; - }; - $ptrType(Checker).prototype.isTerminatingList = function isTerminatingList(list$2, label) { - var _tuple, check, i, label, list$2, ok; - check = this; - i = list$2.$length - 1 >> 0; + res = sliceType.nil; + res = $appendSlice(res, $subslice(src, 0, i)); + indent = 0; + hasSpace = false; + _ref = $subslice(src, i, j); + _i = 0; while (true) { - if (!(i >= 0)) { break; } - _tuple = $assertType(((i < 0 || i >= list$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : list$2.$array[list$2.$offset + i]), ptrType$59, true); - ok = _tuple[1]; - if (!ok) { - return check.isTerminating(((i < 0 || i >= list$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : list$2.$array[list$2.$offset + i]), label); + if (!(_i < _ref.$length)) { break; } + b = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _1 = b; + if (_1 === (32)) { + hasSpace = true; + } else if (_1 === (9)) { + indent = indent + (1) >> 0; } + _i++; + } + if ((indent === 0) && hasSpace) { + indent = 1; + } + i$1 = 0; + while (true) { + if (!(i$1 < indent)) { break; } + res = $append(res, 9); + i$1 = i$1 + (1) >> 0; + } + cfg.Indent = indent + indentAdj >> 0; + buf$1[0] = new bytes.Buffer.ptr(sliceType.nil, 0, 0); + _r$1 = cfg.Fprint(buf$1[0], fset, file); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + err$1 = _r$1; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [sliceType.nil, err$1]; + } + _r$2 = sourceAdj(buf$1[0].Bytes(), cfg.Indent); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + out = _r$2; + if (out.$length === 0) { + $s = -1; return [src, $ifaceNil]; + } + res = $appendSlice(res, out); + i = src.$length; + while (true) { + if (!(i > 0 && isSpace((x = i - 1 >> 0, ((x < 0 || x >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x]))))) { break; } i = i - (1) >> 0; } - return false; - }; - $ptrType(Checker).prototype.isTerminatingSwitch = function isTerminatingSwitch(body, label) { - var _i, _ref, body, cc, check, hasDefault, label, s; - check = this; - hasDefault = false; - _ref = body.List; + $s = -1; return [$appendSlice(res, $subslice(src, i)), $ifaceNil]; + /* */ } return; } var $f = {$blk: format$1, $c: true, $r, _1, _i, _r, _r$1, _r$2, _ref, _tmp, _tmp$1, b, buf, buf$1, cfg, err, err$1, file, fset, hasSpace, i, i$1, indent, indentAdj, j, out, res, sourceAdj, src, x, $s};return $f; + }; + isSpace = function isSpace$1(b) { + var b; + return (b === 32) || (b === 9) || (b === 10) || (b === 13); + }; + Source = function Source$1(src) { + var {$24r, _r, _r$1, _tuple, err, file, fset, indentAdj, sourceAdj, src, $s, $r, $c} = $restore(this, {src}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + fset = token.NewFileSet(); + _r = parse(fset, "", src, true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + file = _tuple[0]; + sourceAdj = _tuple[1]; + indentAdj = _tuple[2]; + err = _tuple[3]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [sliceType.nil, err]; + } + /* */ if (sourceAdj === $throwNilPointerError) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (sourceAdj === $throwNilPointerError) { */ case 2: + $r = ast.SortImports(fset, file); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 3: + _r$1 = format(fset, file, sourceAdj, indentAdj, src, $clone(config, printer.Config)); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 6; case 6: return $24r; + /* */ } return; } var $f = {$blk: Source$1, $c: true, $r, $24r, _r, _r$1, _tuple, err, file, fset, indentAdj, sourceAdj, src, $s};return $f; + }; + $pkg.Source = Source; + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fmt.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = ast.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = parser.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = printer.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = token.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + config = new printer.Config.ptr(1073741830, 8, 0); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["golang.org/x/tools/go/ast/astutil"] = (function() { + var $pkg = {}, $init, fmt, ast, token, reflect, sort, strconv, strings, ptrType, ptrType$6, ptrType$10, ptrType$11, ptrType$52, ptrType$56, sliceType$2, ptrType$58, sliceType$3, sliceType$4, sliceType$5, sliceType$6, abort, AddImport, AddNamedImport, isThirdParty, DeleteImport, DeleteNamedImport, imports, importName, importPath, declImports, matchLen, Imports; + fmt = $packages["fmt"]; + ast = $packages["go/ast"]; + token = $packages["go/token"]; + reflect = $packages["reflect"]; + sort = $packages["sort"]; + strconv = $packages["strconv"]; + strings = $packages["strings"]; + $pkg.$finishSetup = function() { + ptrType = $ptrType($Int); + ptrType$6 = $ptrType(ast.CommentGroup); + ptrType$10 = $ptrType(ast.Ident); + ptrType$11 = $ptrType(ast.BasicLit); + ptrType$52 = $ptrType(ast.ImportSpec); + ptrType$56 = $ptrType(ast.GenDecl); + sliceType$2 = $sliceType($emptyInterface); + ptrType$58 = $ptrType(ast.Object); + sliceType$3 = $sliceType(ast.Spec); + sliceType$4 = $sliceType(ptrType$52); + sliceType$5 = $sliceType(ptrType$6); + sliceType$6 = $sliceType(sliceType$4); + AddImport = function AddImport$1(fset, f, path) { + var {$24r, _r, added, f, fset, path, $s, $r, $c} = $restore(this, {fset, f, path}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + added = false; + _r = AddNamedImport(fset, f, "", path); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + added = _r; + $24r = added; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: AddImport$1, $c: true, $r, $24r, _r, added, f, fset, path, $s};return $f; + }; + $pkg.AddImport = AddImport; + AddNamedImport = function AddNamedImport$1(fset, f, name, path) { + var {_i, _i$1, _i$2, _i$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _ref$2, _ref$3, _tuple, _tuple$1, _tuple$2, added, bestMatch, c, decl, decl$1, f, file, first, fset, gen, gen$1, i, i$1, impDecl, impIndex, impspec, insertAt, isThirdPartyPath, j, lastImport, n, name, newImport, ok, ok$1, ok$2, p, path, pkgLine, pos, seenAnyThirdParty, spec, spec$1, spec$2, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {fset, f, name, path}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + added = false; + if (imports(f, name, path)) { + added = false; + $s = -1; return added; + } + newImport = new ast.ImportSpec.ptr(ptrType$6.nil, ptrType$10.nil, new ast.BasicLit.ptr(0, 9, strconv.Quote(path)), ptrType$6.nil, 0); + if (!(name === "")) { + newImport.Name = new ast.Ident.ptr(0, name, ptrType$58.nil); + } + bestMatch = -1; + lastImport = -1; + impDecl = ptrType$56.nil; + impIndex = -1; + isThirdPartyPath = isThirdParty(path); + _ref = f.Decls; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } - s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - cc = $assertType(s, ptrType$60); - if (cc.List === sliceType$11.nil) { - hasDefault = true; - } - if (!check.isTerminatingList(cc.Body, "") || hasBreakList(cc.Body, label, true)) { - return false; - } - _i++; - } - return hasDefault; - }; - hasBreak = function hasBreak$1(s, label, implicit) { - var _ref, implicit, label, s, s$1, s$10, s$11, s$12, s$13, s$2, s$3, s$4, s$5, s$6, s$7, s$8, s$9; - _ref = s; - if ($assertType(_ref, ptrType$63, true)[1] || $assertType(_ref, ptrType$64, true)[1] || $assertType(_ref, ptrType$59, true)[1] || $assertType(_ref, ptrType$66, true)[1] || $assertType(_ref, ptrType$67, true)[1] || $assertType(_ref, ptrType$68, true)[1] || $assertType(_ref, ptrType$69, true)[1] || $assertType(_ref, ptrType$70, true)[1] || $assertType(_ref, ptrType$71, true)[1] || $assertType(_ref, ptrType$72, true)[1]) { - s$2 = _ref; - } else if ($assertType(_ref, ptrType$65, true)[1]) { - s$3 = _ref.$val; - return hasBreak(s$3.Stmt, label, implicit); - } else if ($assertType(_ref, ptrType$73, true)[1]) { - s$4 = _ref.$val; - if (s$4.Tok === 61) { - if (s$4.Label === ptrType$30.nil) { - return implicit; + i = _i; + decl = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _tuple = $assertType(decl, ptrType$56, true); + gen = _tuple[0]; + ok = _tuple[1]; + if (ok && (gen.Tok === 75)) { + lastImport = i; + if (declImports(gen, "C")) { + _i++; + continue; } - if (s$4.Label.Name === label) { - return true; + if ((gen.Specs.$length === 0) && (bestMatch === -1)) { + impDecl = gen; + } + seenAnyThirdParty = false; + _ref$1 = gen.Specs; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + j = _i$1; + spec = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + impspec = $assertType(spec, ptrType$52); + p = importPath(impspec); + n = matchLen(p, path); + if (n > bestMatch || ((bestMatch === 0) && !seenAnyThirdParty && isThirdPartyPath)) { + bestMatch = n; + impDecl = gen; + impIndex = j; + } + seenAnyThirdParty = seenAnyThirdParty || isThirdParty(p); + _i$1++; } - } - } else if ($assertType(_ref, ptrType$74, true)[1]) { - s$5 = _ref.$val; - return hasBreakList(s$5.List, label, implicit); - } else if ($assertType(_ref, ptrType$75, true)[1]) { - s$6 = _ref.$val; - if (hasBreak(s$6.Body, label, implicit) || !($interfaceIsEqual(s$6.Else, $ifaceNil)) && hasBreak(s$6.Else, label, implicit)) { - return true; - } - } else if ($assertType(_ref, ptrType$60, true)[1]) { - s$7 = _ref.$val; - return hasBreakList(s$7.Body, label, implicit); - } else if ($assertType(_ref, ptrType$76, true)[1]) { - s$8 = _ref.$val; - if (!(label === "") && hasBreak(s$8.Body, label, false)) { - return true; - } - } else if ($assertType(_ref, ptrType$77, true)[1]) { - s$9 = _ref.$val; - if (!(label === "") && hasBreak(s$9.Body, label, false)) { - return true; - } - } else if ($assertType(_ref, ptrType$61, true)[1]) { - s$10 = _ref.$val; - return hasBreakList(s$10.Body, label, implicit); - } else if ($assertType(_ref, ptrType$78, true)[1]) { - s$11 = _ref.$val; - if (!(label === "") && hasBreak(s$11.Body, label, false)) { - return true; - } - } else if ($assertType(_ref, ptrType$79, true)[1]) { - s$12 = _ref.$val; - if (!(label === "") && hasBreak(s$12.Body, label, false)) { - return true; - } - } else if ($assertType(_ref, ptrType$80, true)[1]) { - s$13 = _ref.$val; - if (!(label === "") && hasBreak(s$13.Body, label, false)) { - return true; - } - } else { - s$1 = _ref; - unreachable(); - } - return false; - }; - hasBreakList = function hasBreakList$1(list$2, label, implicit) { - var _i, _ref, implicit, label, list$2, s; - _ref = list$2; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (hasBreak(s, label, implicit)) { - return true; } _i++; } - return false; - }; - $ptrType(declInfo).prototype.hasInitializer = function hasInitializer() { - var d; - d = this; - return !($interfaceIsEqual(d.init, $ifaceNil)) || !(d.fdecl === ptrType$87.nil) && !(d.fdecl.Body === ptrType$74.nil); - }; - $ptrType(declInfo).prototype.addDep = function addDep(obj) { - var _key, d, m, obj; - d = this; - m = d.deps; - if (m === false) { - m = new $global.Map(); - d.deps = m; - } - _key = obj; (m || $throwRuntimeError("assignment to entry in nil map")).set(Object.keyFor(_key), { k: _key, v: true }); - }; - $ptrType(Checker).prototype.arityMatch = function arityMatch(s, init$5) { - var {_arg, _arg$1, _r$1, check, init$5, l, n, n$1, r, s, x, x$1, x$2, $s, $r, $c} = $restore(this, {s, init$5}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - l = s.Names.$length; - r = s.Values.$length; - if (!(init$5 === ptrType$88.nil)) { - r = init$5.Values.$length; - } - /* */ if (init$5 === ptrType$88.nil && (r === 0)) { $s = 2; continue; } - /* */ if (l < r) { $s = 3; continue; } - /* */ if (l > r && (!(init$5 === ptrType$88.nil) || !((r === 1)))) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (init$5 === ptrType$88.nil && (r === 0)) { */ case 2: - /* */ if ($interfaceIsEqual(s.Type, $ifaceNil)) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if ($interfaceIsEqual(s.Type, $ifaceNil)) { */ case 6: - $r = check.error(s, 17, "missing type or init expr"); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 7: - $s = 5; continue; - /* } else if (l < r) { */ case 3: - /* */ if (l < s.Values.$length) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (l < s.Values.$length) { */ case 9: - n = (x = s.Values, ((l < 0 || l >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + l])); - $r = check.errorf(n, 17, "extra init expr %s", new sliceType$6([n])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 11; continue; - /* } else { */ case 10: - _arg = s; - _r$1 = check.fset.Position(init$5.Pos()); /* */ $s = 13; case 13: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _arg$1 = (x$1 = _r$1, new x$1.constructor.elem(x$1)); - $r = check.errorf(_arg, 17, "extra init expr at %s", new sliceType$6([_arg$1])); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 11: + /* */ if (impDecl === ptrType$56.nil) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (impDecl === ptrType$56.nil) { */ case 1: + impDecl = new ast.GenDecl.ptr(ptrType$6.nil, 0, 75, 0, sliceType$3.nil, 0); + /* */ if (lastImport >= 0) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (lastImport >= 0) { */ case 3: + _r = (x = f.Decls, ((lastImport < 0 || lastImport >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + lastImport])).End(); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + impDecl.TokPos = _r; $s = 5; continue; - /* } else if (l > r && (!(init$5 === ptrType$88.nil) || !((r === 1)))) { */ case 4: - n$1 = (x$2 = s.Names, ((r < 0 || r >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + r])); - $r = check.errorf(n$1, 17, "missing init expr for %s", new sliceType$6([n$1])); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } else { */ case 4: + impDecl.TokPos = f.Package; + _r$1 = fset.File(f.Package); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + file = _r$1; + _r$2 = file.Line(f.Package); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + pkgLine = _r$2; + _ref$2 = f.Comments; + _i$2 = 0; + /* while (true) { */ case 9: + /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 10; continue; } + c = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); + _r$3 = file.Line(c.Pos()); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3 > pkgLine) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (_r$3 > pkgLine) { */ case 11: + /* break; */ $s = 10; continue; + /* } */ case 12: + impDecl.TokPos = c.End() + 2 >> 0; + _i$2++; + $s = 9; continue; + case 10: /* } */ case 5: - case 1: - $s = -1; return; - /* */ } return; } var $f = {$blk: arityMatch, $c: true, $r, _arg, _arg$1, _r$1, check, init$5, l, n, n$1, r, s, x, x$1, x$2, $s};return $f; - }; - validatedImportPath = function validatedImportPath$1(path) { - var {$24r, $24r$1, _i, _r$1, _r$2, _ref, _rune, _tuple, err, path, r, s, $s, $r, $c} = $restore(this, {path}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _tuple = strconv.Unquote(path); - s = _tuple[0]; - err = _tuple[1]; - if (!($interfaceIsEqual(err, $ifaceNil))) { - $s = -1; return ["", err]; - } - /* */ if (s === "") { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (s === "") { */ case 1: - _r$1 = fmt.Errorf("empty string", sliceType$6.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = ["", _r$1]; - $s = 4; case 4: return $24r; - /* } */ case 2: - _ref = s; - _i = 0; - /* while (true) { */ case 5: - /* if (!(_i < _ref.length)) { break; } */ if(!(_i < _ref.length)) { $s = 6; continue; } - _rune = $decodeRune(_ref, _i); - r = _rune[0]; - /* */ if (!unicode.IsGraphic(r) || unicode.IsSpace(r) || strings.ContainsRune("!\"#$%&'()*,:;<=>?[\\]^{|}`\xEF\xBF\xBD", r)) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (!unicode.IsGraphic(r) || unicode.IsSpace(r) || strings.ContainsRune("!\"#$%&'()*,:;<=>?[\\]^{|}`\xEF\xBF\xBD", r)) { */ case 7: - _r$2 = fmt.Errorf("invalid character %#U", new sliceType$6([new $Int32(r)])); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r$1 = [s, _r$2]; - $s = 10; case 10: return $24r$1; - /* } */ case 8: - _i += _rune[1]; - $s = 5; continue; - case 6: - $s = -1; return [s, $ifaceNil]; - /* */ } return; } var $f = {$blk: validatedImportPath$1, $c: true, $r, $24r, $24r$1, _i, _r$1, _r$2, _ref, _rune, _tuple, err, path, r, s, $s};return $f; - }; - $ptrType(Checker).prototype.declarePkgObj = function declarePkgObj(ident$1, obj, d) { - var {_key, _r$1, check, d, ident$1, obj, $s, $r, $c} = $restore(this, {ident$1, obj, d}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = obj.Name(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $r = assert(ident$1.Name === _r$1); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (ident$1.Name === "init") { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (ident$1.Name === "init") { */ case 3: - $r = check.error(ident$1, 39, "cannot declare init - must be func"); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 4: - /* */ if (ident$1.Name === "main" && check.pkg.name === "main") { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (ident$1.Name === "main" && check.pkg.name === "main") { */ case 6: - $r = check.error(ident$1, 40, "cannot declare main - must be func"); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 7: - $r = check.declare(check.pkg.scope, ident$1, obj, 0); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _key = obj; (check.objMap || $throwRuntimeError("assignment to entry in nil map")).set(Object.keyFor(_key), { k: _key, v: d }); - $r = obj.setOrder((((check.objMap ? check.objMap.size : 0) >>> 0))); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: declarePkgObj, $c: true, $r, _key, _r$1, check, d, ident$1, obj, $s};return $f; - }; - $ptrType(Checker).prototype.filename = function filename(fileNo) { - var {$24r, $24r$1, _r$1, _r$2, _r$3, check, file, fileNo, pos, x, $s, $r, $c} = $restore(this, {fileNo}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - file = (x = check.files, ((fileNo < 0 || fileNo >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + fileNo])); - pos = file.Pos(); - /* */ if (new token.Pos(pos).IsValid()) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (new token.Pos(pos).IsValid()) { */ case 1: - _r$1 = check.fset.File(pos); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = _r$1.Name(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 5; case 5: return $24r; + f.Decls = $append(f.Decls, $ifaceNil); + $copySlice($subslice(f.Decls, (lastImport + 2 >> 0)), $subslice(f.Decls, (lastImport + 1 >> 0))); + (x$1 = f.Decls, x$2 = lastImport + 1 >> 0, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2] = impDecl)); /* } */ case 2: - _r$3 = fmt.Sprintf("file[%d]", new sliceType$6([new $Int(fileNo)])); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r$1 = _r$3; - $s = 7; case 7: return $24r$1; - /* */ } return; } var $f = {$blk: filename, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _r$3, check, file, fileNo, pos, x, $s};return $f; - }; - $ptrType(Checker).prototype.importPackage = function importPackage(at$1, path, dir$1) { - var {_entry, _key, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _tuple, _tuple$1, _tuple$2, at$1, check, dir$1, err, i, i$1, imp, importer, importerFrom, key, name, ok, path, $s, $r, $c} = $restore(this, {at$1, path, dir$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - key = new importKey.ptr(path, dir$1); - imp = (_entry = $mapIndex(check.impMap,importKey.keyFor(key)), _entry !== undefined ? _entry.v : ptrType$1.nil); - if (!(imp === ptrType$1.nil)) { - $s = -1; return imp; + insertAt = 0; + if (impIndex >= 0) { + insertAt = impIndex + 1 >> 0; } - /* */ if (path === "C" && (check.conf.FakeImportC || check.conf.go115UsesCgo)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (path === "C" && (check.conf.FakeImportC || check.conf.go115UsesCgo)) { */ case 1: - _r$1 = NewPackage("C", "C"); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - imp = _r$1; - imp.fake = true; - imp.cgo = check.conf.go115UsesCgo; - $s = 3; continue; - /* } else { */ case 2: - err = $ifaceNil; - importer = check.conf.Importer; - /* */ if ($interfaceIsEqual(importer, $ifaceNil)) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if ($interfaceIsEqual(importer, $ifaceNil)) { */ case 5: - _r$2 = fmt.Errorf("Config.Importer not installed", sliceType$6.nil); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - err = _r$2; - $s = 7; continue; - /* } else { */ case 6: - _tuple = $assertType(importer, ImporterFrom, true); - importerFrom = _tuple[0]; - ok = _tuple[1]; - /* */ if (ok) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (ok) { */ case 9: - _r$3 = importerFrom.ImportFrom(path, dir$1, 0); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple$1 = _r$3; - imp = _tuple$1[0]; - err = _tuple$1[1]; - /* */ if (imp === ptrType$1.nil && $interfaceIsEqual(err, $ifaceNil)) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (imp === ptrType$1.nil && $interfaceIsEqual(err, $ifaceNil)) { */ case 13: - _r$4 = fmt.Errorf("Config.Importer.ImportFrom(%s, %s, 0) returned nil but no error", new sliceType$6([new $String(path), new $String(dir$1)])); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - err = _r$4; - /* } */ case 14: - $s = 11; continue; - /* } else { */ case 10: - _r$5 = importer.Import(path); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _tuple$2 = _r$5; - imp = _tuple$2[0]; - err = _tuple$2[1]; - /* */ if (imp === ptrType$1.nil && $interfaceIsEqual(err, $ifaceNil)) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (imp === ptrType$1.nil && $interfaceIsEqual(err, $ifaceNil)) { */ case 17: - _r$6 = fmt.Errorf("Config.Importer.Import(%s) returned nil but no error", new sliceType$6([new $String(path)])); /* */ $s = 19; case 19: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - err = _r$6; - /* } */ case 18: - /* } */ case 11: - /* } */ case 7: - /* */ if ($interfaceIsEqual(err, $ifaceNil) && !(imp === ptrType$1.nil) && (imp.name === "_" || imp.name === "")) { $s = 20; continue; } - /* */ $s = 21; continue; - /* if ($interfaceIsEqual(err, $ifaceNil) && !(imp === ptrType$1.nil) && (imp.name === "_" || imp.name === "")) { */ case 20: - _r$7 = fmt.Errorf("invalid package name: %q", new sliceType$6([new $String(imp.name)])); /* */ $s = 22; case 22: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - err = _r$7; - imp = ptrType$1.nil; - /* } */ case 21: - /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 23; continue; } - /* */ $s = 24; continue; - /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 23: - $r = check.errorf(at$1, 6, "could not import %s (%s)", new sliceType$6([new $String(path), err])); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (imp === ptrType$1.nil) { $s = 26; continue; } - /* */ $s = 27; continue; - /* if (imp === ptrType$1.nil) { */ case 26: - name = path; - i = name.length; - if (i > 0 && (name.charCodeAt((i - 1 >> 0)) === 47)) { - name = $substring(name, 0, (i - 1 >> 0)); - } - i$1 = strings.LastIndex(name, "/"); - if (i$1 >= 0) { - name = $substring(name, (i$1 + 1 >> 0)); - } - _r$8 = NewPackage(path, name); /* */ $s = 28; case 28: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - imp = _r$8; - /* } */ case 27: - imp.fake = true; - /* } */ case 24: - /* } */ case 3: - if (imp.complete || imp.fake) { - _key = $clone(key, importKey); (check.impMap || $throwRuntimeError("assignment to entry in nil map")).set(importKey.keyFor(_key), { k: _key, v: imp }); - if (!(check.pkgPathMap === false)) { - check.markImports(imp); + impDecl.Specs = $append(impDecl.Specs, $ifaceNil); + $copySlice($subslice(impDecl.Specs, (insertAt + 1 >> 0)), $subslice(impDecl.Specs, insertAt)); + (x$3 = impDecl.Specs, ((insertAt < 0 || insertAt >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + insertAt] = newImport)); + pos = impDecl.Pos(); + /* */ if (insertAt > 0) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (insertAt > 0) { */ case 14: + _tuple$1 = $assertType((x$4 = impDecl.Specs, x$5 = insertAt - 1 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])), ptrType$52, true); + spec$1 = _tuple$1[0]; + ok$1 = _tuple$1[1]; + /* */ if (ok$1 && !(spec$1.Comment === ptrType$6.nil)) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (ok$1 && !(spec$1.Comment === ptrType$6.nil)) { */ case 16: + pos = spec$1.Comment.End(); + $s = 18; continue; + /* } else { */ case 17: + _r$4 = (x$6 = impDecl.Specs, x$7 = insertAt - 1 >> 0, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])).Pos(); /* */ $s = 19; case 19: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + pos = _r$4; + /* } */ case 18: + /* } */ case 15: + if (!(newImport.Name === ptrType$10.nil)) { + newImport.Name.NamePos = pos; + } + newImport.Path.ValuePos = pos; + newImport.EndPos = pos; + /* */ if (impDecl.Specs.$length === 1) { $s = 20; continue; } + /* */ if (!new token.Pos(impDecl.Lparen).IsValid()) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (impDecl.Specs.$length === 1) { */ case 20: + impDecl.Lparen = 0; + $s = 22; continue; + /* } else if (!new token.Pos(impDecl.Lparen).IsValid()) { */ case 21: + _r$5 = (x$8 = impDecl.Specs, (0 >= x$8.$length ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + 0])).Pos(); /* */ $s = 23; case 23: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + impDecl.Lparen = _r$5; + /* } */ case 22: + f.Imports = $append(f.Imports, newImport); + if (f.Decls.$length <= 1) { + added = true; + $s = -1; return added; + } + first = ptrType$56.nil; + i$1 = 0; + while (true) { + if (!(i$1 < f.Decls.$length)) { break; } + decl$1 = (x$9 = f.Decls, ((i$1 < 0 || i$1 >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + i$1])); + _tuple$2 = $assertType(decl$1, ptrType$56, true); + gen$1 = _tuple$2[0]; + ok$2 = _tuple$2[1]; + if (!ok$2 || !((gen$1.Tok === 75)) || declImports(gen$1, "C")) { + i$1 = i$1 + (1) >> 0; + continue; } - $s = -1; return imp; + if (first === ptrType$56.nil) { + first = gen$1; + i$1 = i$1 + (1) >> 0; + continue; + } + first.Lparen = first.Pos(); + _ref$3 = gen$1.Specs; + _i$3 = 0; + while (true) { + if (!(_i$3 < _ref$3.$length)) { break; } + spec$2 = ((_i$3 < 0 || _i$3 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$3]); + $assertType(spec$2, ptrType$52).Path.ValuePos = first.Pos(); + first.Specs = $append(first.Specs, spec$2); + _i$3++; + } + f.Decls = $appendSlice($subslice(f.Decls, 0, i$1), $subslice(f.Decls, (i$1 + 1 >> 0))); + i$1 = i$1 - (1) >> 0; + i$1 = i$1 + (1) >> 0; } - $s = -1; return ptrType$1.nil; - /* */ } return; } var $f = {$blk: importPackage, $c: true, $r, _entry, _key, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _tuple, _tuple$1, _tuple$2, at$1, check, dir$1, err, i, i$1, imp, importer, importerFrom, key, name, ok, path, $s};return $f; + added = true; + $s = -1; return added; + /* */ } return; } var $f = {$blk: AddNamedImport$1, $c: true, $r, _i, _i$1, _i$2, _i$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _ref$2, _ref$3, _tuple, _tuple$1, _tuple$2, added, bestMatch, c, decl, decl$1, f, file, first, fset, gen, gen$1, i, i$1, impDecl, impIndex, impspec, insertAt, isThirdPartyPath, j, lastImport, n, name, newImport, ok, ok$1, ok$2, p, path, pkgLine, pos, seenAnyThirdParty, spec, spec$1, spec$2, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; + }; + $pkg.AddNamedImport = AddNamedImport; + isThirdParty = function isThirdParty$1(importPath$1) { + var importPath$1; + return strings.Contains(importPath$1, "."); }; - $ptrType(Checker).prototype.collectObjects = function collectObjects() { - var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _entry, _entry$1, _i, _i$1, _i$2, _i$3, _i$4, _key, _key$1, _key$2, _keys, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _size, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, alt, base, check, end, f, file, fileDir, fileNo, fileScope, fileScopes, i, imp, m, methods, name, obj, ok, pkg, pkg$1, pkgImports, pos, ptr, scope, $s, $r, $c} = $restore(this, {}); + DeleteImport = function DeleteImport$1(fset, f, path) { + var {$24r, _r, deleted, f, fset, path, $s, $r, $c} = $restore(this, {fset, f, path}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = [check]; - methods = [methods]; - pkg = [pkg]; - pkgImports = [pkgImports]; - check[0] = this; - pkg[0] = check[0].pkg; - pkgImports[0] = new $global.Map(); - _ref = pkg[0].imports; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - imp = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _key = imp; (pkgImports[0] || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$1.keyFor(_key), { k: _key, v: true }); - _i++; - } - methods[0] = sliceType$21.nil; - fileScopes = sliceType$20.nil; - _ref$1 = check[0].files; - _i$1 = 0; + deleted = false; + _r = DeleteNamedImport(fset, f, "", path); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + deleted = _r; + $24r = deleted; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: DeleteImport$1, $c: true, $r, $24r, _r, deleted, f, fset, path, $s};return $f; + }; + $pkg.DeleteImport = DeleteImport; + DeleteNamedImport = function DeleteNamedImport$1(fset, f, name, path) { + var {_i, _i$1, _i$2, _i$3, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _tuple, _v, _v$1, cg, cg$1, cg$2, decl, del, del$1, delcomments, deleted, delspecs, f, fset, gen, i, i$1, i$2, imp, impspec, j, j$1, j$2, lastImpspec, lastLine, line, name, ok, path, spec, spec$1, x, x$1, x$2, x$3, x$4, x$5, x$6, $s, $r, $c} = $restore(this, {fset, f, name, path}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + deleted = false; + delspecs = sliceType$4.nil; + delcomments = sliceType$5.nil; + i = 0; /* while (true) { */ case 1: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 2; continue; } - fileDir = [fileDir]; - fileScope = [fileScope]; - fileNo = _i$1; - file = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - $r = check[0].recordDef(file.Name, $ifaceNil); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _tmp = file.Pos(); - _r$1 = file.End(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tmp$1 = _r$1; - pos = _tmp; - end = _tmp$1; - _r$2 = check[0].fset.File(file.Pos()); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - f = _r$2; - if (!(f === ptrType$89.nil)) { - _tmp$2 = ((f.Base() >> 0)); - _tmp$3 = (((f.Base() + f.Size() >> 0) >> 0)); - pos = _tmp$2; - end = _tmp$3; + /* if (!(i < f.Decls.$length)) { break; } */ if(!(i < f.Decls.$length)) { $s = 2; continue; } + decl = (x = f.Decls, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + _tuple = $assertType(decl, ptrType$56, true); + gen = _tuple[0]; + ok = _tuple[1]; + if (!ok || !((gen.Tok === 75))) { + i = i + (1) >> 0; + /* continue; */ $s = 1; continue; } - _arg = check[0].pkg.scope; - _arg$1 = pos; - _arg$2 = end; - _r$3 = check[0].filename(fileNo); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _arg$3 = _r$3; - _r$4 = NewScope(_arg, _arg$1, _arg$2, _arg$3); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - fileScope[0] = _r$4; - fileScopes = $append(fileScopes, fileScope[0]); - $r = check[0].recordScope(file, fileScope[0]); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$5 = check[0].fset.Position(file.Name.Pos()); /* */ $s = 9; case 9: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$6 = dir(_r$5.Filename); /* */ $s = 10; case 10: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - fileDir[0] = _r$6; - $r = check[0].walkDecls(file.Decls, (function(check, fileDir, fileScope, methods, pkg, pkgImports) { return function Checker·collectObjects·func1(d) { - var {_arg$4, _arg$5, _entry, _entry$1, _i$2, _i$3, _i$4, _key$1, _key$2, _key$3, _key$4, _keys, _r$10, _r$11, _r$7, _r$8, _r$9, _ref$2, _ref$3, _ref$4, _ref$5, _size, _tuple, _tuple$1, alt, code, d, d$1, d$2, d$3, d$4, d$5, d$6, d1, di, err, hasTParamError, i, i$1, imp$1, info, init$5, init$6, lhs, name, name$1, name$2, name$3, name$4, obj, obj$1, obj$2, obj$3, obj$4, path, pkgName, ptr, recv, t, x, x$1, x$2, x$3, x$4, x$5, x$6, $s, $r, $c} = $restore(this, {d}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ref$2 = d; - /* */ if ($assertType(_ref$2, importDecl, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref$2, constDecl, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref$2, varDecl, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref$2, typeDecl, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref$2, funcDecl, true)[1]) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if ($assertType(_ref$2, importDecl, true)[1]) { */ case 1: - d$1 = $clone(_ref$2.$val, importDecl); - if (d$1.spec.Path.Value === "") { - $s = -1; return; - } - _r$7 = validatedImportPath(d$1.spec.Path.Value); /* */ $s = 7; case 7: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _tuple = _r$7; - path = _tuple[0]; - err = _tuple[1]; - /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 8: - $r = check[0].errorf(d$1.spec.Path, 5, "invalid import path (%s)", new sliceType$6([err])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 9: - _r$8 = check[0].importPackage(d$1.spec.Path, path, fileDir[0]); /* */ $s = 11; case 11: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - imp$1 = _r$8; - if (imp$1 === ptrType$1.nil) { - $s = -1; return; - } - name = imp$1.name; - /* */ if (!(d$1.spec.Name === ptrType$30.nil)) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (!(d$1.spec.Name === ptrType$30.nil)) { */ case 12: - name = d$1.spec.Name.Name; - /* */ if (path === "C") { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (path === "C") { */ case 14: - $r = check[0].error(d$1.spec.Name, 7, "cannot rename import \"C\""); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 15: - /* } */ case 13: - /* */ if (name === "init") { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (name === "init") { */ case 17: - $r = check[0].error(d$1.spec, 39, "cannot import package as init - init must be a func"); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 18: - if (!(_entry = $mapIndex(pkgImports[0],ptrType$1.keyFor(imp$1)), _entry !== undefined ? _entry.v : false)) { - _key$1 = imp$1; (pkgImports[0] || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$1.keyFor(_key$1), { k: _key$1, v: true }); - pkg[0].imports = $append(pkg[0].imports, imp$1); - } - pkgName = NewPkgName(d$1.spec.Pos(), pkg[0], name, imp$1); - /* */ if (!(d$1.spec.Name === ptrType$30.nil)) { $s = 20; continue; } - /* */ $s = 21; continue; - /* if (!(d$1.spec.Name === ptrType$30.nil)) { */ case 20: - $r = check[0].recordDef(d$1.spec.Name, pkgName); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 22; continue; - /* } else { */ case 21: - $r = check[0].recordImplicit(d$1.spec, pkgName); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 22: - if (imp$1.fake) { - pkgName.used = true; - } - check[0].imports = $append(check[0].imports, pkgName); - /* */ if (name === ".") { $s = 25; continue; } - /* */ $s = 26; continue; - /* if (name === ".") { */ case 25: - if (check[0].dotImportMap === false) { - check[0].dotImportMap = new $global.Map(); - } - _ref$3 = imp$1.scope.elems; - _i$2 = 0; - _keys = _ref$3 ? _ref$3.keys() : undefined; - _size = _ref$3 ? _ref$3.size : 0; - /* while (true) { */ case 28: - /* if (!(_i$2 < _size)) { break; } */ if(!(_i$2 < _size)) { $s = 29; continue; } - _key$2 = _keys.next().value; - _entry$1 = _ref$3.get(_key$2); - if (_entry$1 === undefined) { - _i$2++; - /* continue; */ $s = 28; continue; - } - name$1 = _entry$1.k; - obj = _entry$1.v; - /* */ if (token.IsExported(name$1)) { $s = 30; continue; } - /* */ $s = 31; continue; - /* if (token.IsExported(name$1)) { */ case 30: - _r$9 = fileScope[0].Lookup(name$1); /* */ $s = 32; case 32: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - alt = _r$9; - /* */ if (!($interfaceIsEqual(alt, $ifaceNil))) { $s = 33; continue; } - /* */ $s = 34; continue; - /* if (!($interfaceIsEqual(alt, $ifaceNil))) { */ case 33: - _arg$4 = d$1.spec.Name; - _r$10 = alt.Name(); /* */ $s = 36; case 36: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _arg$5 = new $String(_r$10); - $r = check[0].errorf(_arg$4, 10, "%s redeclared in this block", new sliceType$6([_arg$5])); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].reportAltDecl(alt); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 35; continue; - /* } else { */ case 34: - fileScope[0].insert(name$1, obj); - _key$3 = $clone(new dotImportKey.ptr(fileScope[0], name$1), dotImportKey); (check[0].dotImportMap || $throwRuntimeError("assignment to entry in nil map")).set(dotImportKey.keyFor(_key$3), { k: _key$3, v: pkgName }); - /* } */ case 35: - /* } */ case 31: - _i$2++; - $s = 28; continue; - case 29: - $s = 27; continue; - /* } else { */ case 26: - $r = check[0].declare(fileScope[0], ptrType$30.nil, pkgName, 0); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + j = 0; + /* while (true) { */ case 3: + /* if (!(j < gen.Specs.$length)) { break; } */ if(!(j < gen.Specs.$length)) { $s = 4; continue; } + spec = (x$1 = gen.Specs, ((j < 0 || j >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + j])); + impspec = $assertType(spec, ptrType$52); + if (!(importName(impspec) === name) || !(importPath(impspec) === path)) { + j = j + (1) >> 0; + /* continue; */ $s = 3; continue; + } + delspecs = $append(delspecs, impspec); + deleted = true; + $copySlice($subslice(gen.Specs, j), $subslice(gen.Specs, (j + 1 >> 0))); + gen.Specs = $subslice(gen.Specs, 0, (gen.Specs.$length - 1 >> 0)); + /* */ if (gen.Specs.$length === 0) { $s = 5; continue; } + /* */ if (gen.Specs.$length === 1) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (gen.Specs.$length === 0) { */ case 5: + $copySlice($subslice(f.Decls, i), $subslice(f.Decls, (i + 1 >> 0))); + f.Decls = $subslice(f.Decls, 0, (f.Decls.$length - 1 >> 0)); + i = i - (1) >> 0; + /* break; */ $s = 4; continue; + $s = 7; continue; + /* } else if (gen.Specs.$length === 1) { */ case 6: + if (!(impspec.Doc === ptrType$6.nil)) { + delcomments = $append(delcomments, impspec.Doc); + } + if (!(impspec.Comment === ptrType$6.nil)) { + delcomments = $append(delcomments, impspec.Comment); + } + _ref = f.Comments; + _i = 0; + /* while (true) { */ case 8: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 9; continue; } + cg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!(cg.End() < impspec.Pos())) { _v = false; $s = 12; continue s; } + _r = fset.Position(cg.End()); /* */ $s = 13; case 13: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = fset.Position(impspec.Pos()); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = _r.Line === _r$1.Line; case 12: + /* */ if (_v) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (_v) { */ case 10: + delcomments = $append(delcomments, cg); + /* break; */ $s = 9; continue; + /* } */ case 11: + _i++; + $s = 8; continue; + case 9: + spec$1 = $assertType((x$2 = gen.Specs, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])), ptrType$52); + /* */ if (!(spec$1.Doc === ptrType$6.nil)) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (!(spec$1.Doc === ptrType$6.nil)) { */ case 15: + /* while (true) { */ case 17: + _r$2 = fset.Position(gen.TokPos); /* */ $s = 19; case 19: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = fset.Position(spec$1.Doc.Pos()); /* */ $s = 20; case 20: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* if (!((_r$2.Line + 1 >> 0) < _r$3.Line)) { break; } */ if(!((_r$2.Line + 1 >> 0) < _r$3.Line)) { $s = 18; continue; } + _r$4 = fset.File(gen.TokPos); /* */ $s = 21; case 21: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$5 = fset.Position(gen.TokPos); /* */ $s = 22; case 22: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $r = _r$4.MergeLine(_r$5.Line); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 17; continue; + case 18: + /* } */ case 16: + _ref$1 = f.Comments; + _i$1 = 0; + /* while (true) { */ case 24: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 25; continue; } + cg$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + if (!(cg$1.End() < spec$1.Pos())) { _v$1 = false; $s = 28; continue s; } + _r$6 = fset.Position(cg$1.End()); /* */ $s = 29; case 29: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$7 = fset.Position(spec$1.Pos()); /* */ $s = 30; case 30: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _v$1 = _r$6.Line === _r$7.Line; case 28: + /* */ if (_v$1) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (_v$1) { */ case 26: + /* while (true) { */ case 31: + _r$8 = fset.Position(gen.TokPos); /* */ $s = 33; case 33: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$9 = fset.Position(spec$1.Pos()); /* */ $s = 34; case 34: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + /* if (!((_r$8.Line + 1 >> 0) < _r$9.Line)) { break; } */ if(!((_r$8.Line + 1 >> 0) < _r$9.Line)) { $s = 32; continue; } + _r$10 = fset.File(gen.TokPos); /* */ $s = 35; case 35: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$11 = fset.Position(gen.TokPos); /* */ $s = 36; case 36: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + $r = _r$10.MergeLine(_r$11.Line); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 31; continue; + case 32: + /* break; */ $s = 25; continue; /* } */ case 27: - $s = 6; continue; - /* } else if ($assertType(_ref$2, constDecl, true)[1]) { */ case 2: - d$2 = $clone(_ref$2.$val, constDecl); - _ref$4 = d$2.spec.Names; - _i$3 = 0; - /* while (true) { */ case 40: - /* if (!(_i$3 < _ref$4.$length)) { break; } */ if(!(_i$3 < _ref$4.$length)) { $s = 41; continue; } - i = _i$3; - name$2 = ((_i$3 < 0 || _i$3 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$3]); - obj$1 = NewConst(name$2.Pos(), pkg[0], name$2.Name, $ifaceNil, constant.MakeInt64((new $Int64(0, d$2.iota)))); - init$5 = $ifaceNil; - if (i < d$2.init.$length) { - init$5 = (x = d$2.init, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - } - d$6 = new declInfo.ptr(fileScope[0], sliceType$10.nil, d$2.typ, init$5, d$2.inherited, ptrType$90.nil, ptrType$87.nil, false); - $r = check[0].declarePkgObj(name$2, obj$1, d$6); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$3++; - $s = 40; continue; - case 41: - $s = 6; continue; - /* } else if ($assertType(_ref$2, varDecl, true)[1]) { */ case 3: - d$3 = $clone(_ref$2.$val, varDecl); - lhs = $makeSlice(sliceType$10, d$3.spec.Names.$length); - d1 = ptrType$58.nil; - if (d$3.spec.Values.$length === 1) { - d1 = new declInfo.ptr(fileScope[0], lhs, d$3.spec.Type, (x$1 = d$3.spec.Values, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])), false, ptrType$90.nil, ptrType$87.nil, false); - } - _ref$5 = d$3.spec.Names; - _i$4 = 0; - /* while (true) { */ case 43: - /* if (!(_i$4 < _ref$5.$length)) { break; } */ if(!(_i$4 < _ref$5.$length)) { $s = 44; continue; } - i$1 = _i$4; - name$3 = ((_i$4 < 0 || _i$4 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$4]); - obj$2 = NewVar(name$3.Pos(), pkg[0], name$3.Name, $ifaceNil); - ((i$1 < 0 || i$1 >= lhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : lhs.$array[lhs.$offset + i$1] = obj$2); - di = d1; - if (di === ptrType$58.nil) { - init$6 = $ifaceNil; - if (i$1 < d$3.spec.Values.$length) { - init$6 = (x$2 = d$3.spec.Values, ((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$1])); - } - di = new declInfo.ptr(fileScope[0], sliceType$10.nil, d$3.spec.Type, init$6, false, ptrType$90.nil, ptrType$87.nil, false); - } - $r = check[0].declarePkgObj(name$3, obj$2, di); /* */ $s = 45; case 45: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$4++; - $s = 43; continue; - case 44: - $s = 6; continue; - /* } else if ($assertType(_ref$2, typeDecl, true)[1]) { */ case 4: - d$4 = $clone(_ref$2.$val, typeDecl); - /* */ if (!((d$4.spec.TypeParams.NumFields() === 0)) && !check[0].allowVersion(pkg[0], 1, 18)) { $s = 46; continue; } - /* */ $s = 47; continue; - /* if (!((d$4.spec.TypeParams.NumFields() === 0)) && !check[0].allowVersion(pkg[0], 1, 18)) { */ case 46: - $r = check[0].softErrorf((x$3 = d$4.spec.TypeParams.List, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])), 135, "type parameter requires go1.18 or later", sliceType$6.nil); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 47: - obj$3 = NewTypeName(d$4.spec.Name.Pos(), pkg[0], d$4.spec.Name.Name, $ifaceNil); - $r = check[0].declarePkgObj(d$4.spec.Name, obj$3, new declInfo.ptr(fileScope[0], sliceType$10.nil, $ifaceNil, $ifaceNil, false, d$4.spec, ptrType$87.nil, false)); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 6; continue; - /* } else if ($assertType(_ref$2, funcDecl, true)[1]) { */ case 5: - d$5 = $clone(_ref$2.$val, funcDecl); - name$4 = d$5.decl.Name.Name; - obj$4 = NewFunc(d$5.decl.Name.Pos(), pkg[0], name$4, ptrType$27.nil); - hasTParamError = false; - /* */ if (d$5.decl.Recv.NumFields() === 0) { $s = 50; continue; } - /* */ $s = 51; continue; - /* if (d$5.decl.Recv.NumFields() === 0) { */ case 50: - /* */ if (!(d$5.decl.Recv === ptrType$49.nil)) { $s = 53; continue; } - /* */ $s = 54; continue; - /* if (!(d$5.decl.Recv === ptrType$49.nil)) { */ case 53: - $r = check[0].error(d$5.decl.Recv, 31, "method has no receiver"); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 54: - /* */ if (name$4 === "init" || (name$4 === "main" && check[0].pkg.name === "main")) { $s = 56; continue; } - /* */ $s = 57; continue; - /* if (name$4 === "init" || (name$4 === "main" && check[0].pkg.name === "main")) { */ case 56: - code = 39; - if (name$4 === "main") { - code = 40; - } - /* */ if (!((d$5.decl.Type.TypeParams.NumFields() === 0))) { $s = 58; continue; } - /* */ $s = 59; continue; - /* if (!((d$5.decl.Type.TypeParams.NumFields() === 0))) { */ case 58: - $r = check[0].softErrorf((x$4 = d$5.decl.Type.TypeParams.List, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])), code, "func %s must have no type parameters", new sliceType$6([new $String(name$4)])); /* */ $s = 60; case 60: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - hasTParamError = true; - /* } */ case 59: - t = d$5.decl.Type; - /* */ if (!((t.Params.NumFields() === 0)) || !(t.Results === ptrType$49.nil)) { $s = 61; continue; } - /* */ $s = 62; continue; - /* if (!((t.Params.NumFields() === 0)) || !(t.Results === ptrType$49.nil)) { */ case 61: - $r = check[0].softErrorf(d$5.decl.Name, code, "func %s must have no arguments and no return values", new sliceType$6([new $String(name$4)])); /* */ $s = 63; case 63: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 62: - /* } */ case 57: - /* */ if (name$4 === "init") { $s = 64; continue; } - /* */ $s = 65; continue; - /* if (name$4 === "init") { */ case 64: - obj$4.object.parent = pkg[0].scope; - $r = check[0].recordDef(d$5.decl.Name, obj$4); /* */ $s = 67; case 67: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (d$5.decl.Body === ptrType$74.nil) { $s = 68; continue; } - /* */ $s = 69; continue; - /* if (d$5.decl.Body === ptrType$74.nil) { */ case 68: - $r = check[0].softErrorf(obj$4, 37, "missing function body", sliceType$6.nil); /* */ $s = 70; case 70: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 69: - $s = 66; continue; - /* } else { */ case 65: - $r = check[0].declare(pkg[0].scope, d$5.decl.Name, obj$4, 0); /* */ $s = 71; case 71: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 66: - $s = 52; continue; - /* } else { */ case 51: - _r$11 = check[0].unpackRecv((x$5 = d$5.decl.Recv.List, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0])).Type, false); /* */ $s = 72; case 72: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _tuple$1 = _r$11; - ptr = _tuple$1[0]; - recv = _tuple$1[1]; - if (!(recv === ptrType$30.nil) && !(name$4 === "_")) { - methods[0] = $append(methods[0], new methodInfo.ptr(obj$4, ptr, recv)); - } - $r = check[0].recordDef(d$5.decl.Name, obj$4); /* */ $s = 73; case 73: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 52: - /* */ if (!((d$5.decl.Type.TypeParams.NumFields() === 0)) && !check[0].allowVersion(pkg[0], 1, 18) && !hasTParamError) { $s = 74; continue; } - /* */ $s = 75; continue; - /* if (!((d$5.decl.Type.TypeParams.NumFields() === 0)) && !check[0].allowVersion(pkg[0], 1, 18) && !hasTParamError) { */ case 74: - $r = check[0].softErrorf((x$6 = d$5.decl.Type.TypeParams.List, (0 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + 0])), 135, "type parameter requires go1.18 or later", sliceType$6.nil); /* */ $s = 76; case 76: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 75: - info = new declInfo.ptr(fileScope[0], sliceType$10.nil, $ifaceNil, $ifaceNil, false, ptrType$90.nil, d$5.decl, false); - _key$4 = obj$4; (check[0].objMap || $throwRuntimeError("assignment to entry in nil map")).set(Object.keyFor(_key$4), { k: _key$4, v: info }); - $r = obj$4.object.setOrder((((check[0].objMap ? check[0].objMap.size : 0) >>> 0))); /* */ $s = 77; case 77: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 6: - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·collectObjects·func1, $c: true, $r, _arg$4, _arg$5, _entry, _entry$1, _i$2, _i$3, _i$4, _key$1, _key$2, _key$3, _key$4, _keys, _r$10, _r$11, _r$7, _r$8, _r$9, _ref$2, _ref$3, _ref$4, _ref$5, _size, _tuple, _tuple$1, alt, code, d, d$1, d$2, d$3, d$4, d$5, d$6, d1, di, err, hasTParamError, i, i$1, imp$1, info, init$5, init$6, lhs, name, name$1, name$2, name$3, name$4, obj, obj$1, obj$2, obj$3, obj$4, path, pkgName, ptr, recv, t, x, x$1, x$2, x$3, x$4, x$5, x$6, $s};return $f; - }; })(check, fileDir, fileScope, methods, pkg, pkgImports)); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$1++; + _i$1++; + $s = 24; continue; + case 25: + /* } */ case 7: + /* */ if (j > 0) { $s = 38; continue; } + /* */ $s = 39; continue; + /* if (j > 0) { */ case 38: + lastImpspec = $assertType((x$3 = gen.Specs, x$4 = j - 1 >> 0, ((x$4 < 0 || x$4 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + x$4])), ptrType$52); + _r$12 = fset.PositionFor(lastImpspec.Path.ValuePos, false); /* */ $s = 40; case 40: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + lastLine = _r$12.Line; + _r$13 = fset.PositionFor(impspec.Path.ValuePos, false); /* */ $s = 41; case 41: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + line = _r$13.Line; + /* */ if ((line - lastLine >> 0) > 1 || !new token.Pos(gen.Rparen).IsValid()) { $s = 42; continue; } + _r$14 = fset.File(gen.Rparen); /* */ $s = 45; case 45: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _r$15 = _r$14.LineCount(); /* */ $s = 46; case 46: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + /* */ if (!((line === _r$15))) { $s = 43; continue; } + /* */ $s = 44; continue; + /* if ((line - lastLine >> 0) > 1 || !new token.Pos(gen.Rparen).IsValid()) { */ case 42: + $s = 44; continue; + /* } else if (!((line === _r$15))) { */ case 43: + _r$16 = fset.File(gen.Rparen); /* */ $s = 47; case 47: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + $r = _r$16.MergeLine(line); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 44: + /* } */ case 39: + j = j - (1) >> 0; + j = j + (1) >> 0; + $s = 3; continue; + case 4: + i = i + (1) >> 0; $s = 1; continue; case 2: - _ref$2 = fileScopes; - _i$2 = 0; - /* while (true) { */ case 12: - /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 13; continue; } - scope = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); - _ref$3 = scope.elems; + i$1 = 0; + while (true) { + if (!(i$1 < f.Imports.$length)) { break; } + imp = (x$5 = f.Imports, ((i$1 < 0 || i$1 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + i$1])); + _ref$2 = delspecs; + _i$2 = 0; + while (true) { + if (!(_i$2 < _ref$2.$length)) { break; } + j$1 = _i$2; + del = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); + if (imp === del) { + $copySlice($subslice(f.Imports, i$1), $subslice(f.Imports, (i$1 + 1 >> 0))); + f.Imports = $subslice(f.Imports, 0, (f.Imports.$length - 1 >> 0)); + $copySlice($subslice(delspecs, j$1), $subslice(delspecs, (j$1 + 1 >> 0))); + delspecs = $subslice(delspecs, 0, (delspecs.$length - 1 >> 0)); + i$1 = i$1 - (1) >> 0; + break; + } + _i$2++; + } + i$1 = i$1 + (1) >> 0; + } + i$2 = 0; + while (true) { + if (!(i$2 < f.Comments.$length)) { break; } + cg$2 = (x$6 = f.Comments, ((i$2 < 0 || i$2 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + i$2])); + _ref$3 = delcomments; _i$3 = 0; - _keys = _ref$3 ? _ref$3.keys() : undefined; - _size = _ref$3 ? _ref$3.size : 0; - /* while (true) { */ case 14: - /* if (!(_i$3 < _size)) { break; } */ if(!(_i$3 < _size)) { $s = 15; continue; } - _key$1 = _keys.next().value; - _entry = _ref$3.get(_key$1); - if (_entry === undefined) { - _i$3++; - /* continue; */ $s = 14; continue; + while (true) { + if (!(_i$3 < _ref$3.$length)) { break; } + j$2 = _i$3; + del$1 = ((_i$3 < 0 || _i$3 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$3]); + if (cg$2 === del$1) { + $copySlice($subslice(f.Comments, i$2), $subslice(f.Comments, (i$2 + 1 >> 0))); + f.Comments = $subslice(f.Comments, 0, (f.Comments.$length - 1 >> 0)); + $copySlice($subslice(delcomments, j$2), $subslice(delcomments, (j$2 + 1 >> 0))); + delcomments = $subslice(delcomments, 0, (delcomments.$length - 1 >> 0)); + i$2 = i$2 - (1) >> 0; + break; } - name = _entry.k; - obj = _entry.v; - _r$7 = pkg[0].scope.Lookup(name); /* */ $s = 16; case 16: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - alt = _r$7; - /* */ if (!($interfaceIsEqual(alt, $ifaceNil))) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (!($interfaceIsEqual(alt, $ifaceNil))) { */ case 17: - _r$8 = resolve(name, obj); /* */ $s = 19; case 19: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - obj = _r$8; - _tuple = $assertType(obj, ptrType$31, true); - pkg$1 = _tuple[0]; - ok = _tuple[1]; - /* */ if (ok) { $s = 20; continue; } - /* */ $s = 21; continue; - /* if (ok) { */ case 20: - _arg$4 = alt; - _r$9 = alt.Name(); /* */ $s = 23; case 23: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _arg$5 = new $String(_r$9); - _arg$6 = pkg$1.Imported(); - $r = check[0].errorf(_arg$4, 10, "%s already declared through import of %s", new sliceType$6([_arg$5, _arg$6])); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].reportAltDecl(pkg$1); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 22; continue; - /* } else { */ case 21: - _arg$7 = alt; - _r$10 = alt.Name(); /* */ $s = 26; case 26: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _arg$8 = new $String(_r$10); - _r$11 = obj.Pkg(); /* */ $s = 27; case 27: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _arg$9 = _r$11; - $r = check[0].errorf(_arg$7, 10, "%s already declared through dot-import of %s", new sliceType$6([_arg$8, _arg$9])); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].reportAltDecl(obj); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 22: - /* } */ case 18: _i$3++; - $s = 14; continue; - case 15: - _i$2++; - $s = 12; continue; - case 13: - if (methods[0] === sliceType$21.nil) { - $s = -1; return; - } - check[0].methods = new $global.Map(); - _ref$4 = methods[0]; - _i$4 = 0; - /* while (true) { */ case 30: - /* if (!(_i$4 < _ref$4.$length)) { break; } */ if(!(_i$4 < _ref$4.$length)) { $s = 31; continue; } - i = _i$4; - m = ((i < 0 || i >= methods[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : methods[0].$array[methods[0].$offset + i]); - _r$12 = check[0].resolveBaseTypeName(m.ptr, m.recv); /* */ $s = 32; case 32: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _tuple$1 = _r$12; - ptr = _tuple$1[0]; - base = _tuple$1[1]; - if (!(base === ptrType$17.nil)) { - m.obj.hasPtrRecv_ = ptr; - _key$2 = base; (check[0].methods || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$17.keyFor(_key$2), { k: _key$2, v: $append((_entry$1 = $mapIndex(check[0].methods,ptrType$17.keyFor(base)), _entry$1 !== undefined ? _entry$1.v : sliceType.nil), m.obj) }); } - _i$4++; - $s = 30; continue; - case 31: - $s = -1; return; - /* */ } return; } var $f = {$blk: collectObjects, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _entry, _entry$1, _i, _i$1, _i$2, _i$3, _i$4, _key, _key$1, _key$2, _keys, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _size, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, alt, base, check, end, f, file, fileDir, fileNo, fileScope, fileScopes, i, imp, m, methods, name, obj, ok, pkg, pkg$1, pkgImports, pos, ptr, scope, $s};return $f; + i$2 = i$2 + (1) >> 0; + } + /* */ if (delspecs.$length > 0) { $s = 49; continue; } + /* */ $s = 50; continue; + /* if (delspecs.$length > 0) { */ case 49: + _r$17 = fmt.Sprintf("deleted specs from Decls but not Imports: %v", new sliceType$2([delspecs])); /* */ $s = 51; case 51: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + $panic(new $String(_r$17)); + /* } */ case 50: + $s = -1; return deleted; + /* */ } return; } var $f = {$blk: DeleteNamedImport$1, $c: true, $r, _i, _i$1, _i$2, _i$3, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _tuple, _v, _v$1, cg, cg$1, cg$2, decl, del, del$1, delcomments, deleted, delspecs, f, fset, gen, i, i$1, i$2, imp, impspec, j, j$1, j$2, lastImpspec, lastLine, line, name, ok, path, spec, spec$1, x, x$1, x$2, x$3, x$4, x$5, x$6, $s};return $f; }; - $ptrType(Checker).prototype.unpackRecv = function unpackRecv(rtyp, unpackParams) { - var {_i, _r$1, _ref, _ref$1, _ref$2, _ref$3, _tuple, arg, arg$1, arg$2, arg$3, arg$4, check, ix, name, par, ptr, rname, rtyp, t, t$1, t$2, tparams, unpackParams, $s, $r, $c} = $restore(this, {rtyp, unpackParams}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - ptr = false; - rname = ptrType$30.nil; - tparams = sliceType$22.nil; - check = this; - L: + $pkg.DeleteNamedImport = DeleteNamedImport; + imports = function imports$1(f, name, path) { + var _i, _ref, f, name, path, s; + _ref = f.Imports; + _i = 0; while (true) { - _ref = rtyp; - if ($assertType(_ref, ptrType$39, true)[1]) { - t = _ref.$val; - rtyp = t.X; - } else if ($assertType(_ref, ptrType$43, true)[1]) { - t$1 = _ref.$val; - ptr = true; - rtyp = t$1.X; - } else { - t$2 = _ref; - break L; + if (!(_i < _ref.$length)) { break; } + s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (importName(s) === name && importPath(s) === path) { + return true; } + _i++; } - _ref$1 = rtyp; - /* */ if ($assertType(_ref$1, ptrType$37, true)[1] || $assertType(_ref$1, ptrType$38, true)[1]) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if ($assertType(_ref$1, ptrType$37, true)[1] || $assertType(_ref$1, ptrType$38, true)[1]) { */ case 1: - ix = typeparams.UnpackIndexExpr(rtyp); - rtyp = ix.IndexListExpr.X; - /* */ if (unpackParams) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (unpackParams) { */ case 3: - _ref$2 = ix.IndexListExpr.Indices; - _i = 0; - /* while (true) { */ case 5: - /* if (!(_i < _ref$2.$length)) { break; } */ if(!(_i < _ref$2.$length)) { $s = 6; continue; } - arg = ((_i < 0 || _i >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i]); - par = ptrType$30.nil; - _ref$3 = arg; - /* */ if ($assertType(_ref$3, ptrType$30, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref$3, ptrType$35, true)[1]) { $s = 8; continue; } - /* */ if (_ref$3 === $ifaceNil) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if ($assertType(_ref$3, ptrType$30, true)[1]) { */ case 7: - arg$1 = _ref$3.$val; - par = arg$1; - $s = 11; continue; - /* } else if ($assertType(_ref$3, ptrType$35, true)[1]) { */ case 8: - arg$2 = _ref$3.$val; - $s = 11; continue; - /* } else if (_ref$3 === $ifaceNil) { */ case 9: - arg$3 = _ref$3; - $r = check.error(ix.Orig, -1, "parameterized receiver contains nil parameters"); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 11; continue; - /* } else { */ case 10: - arg$4 = _ref$3; - $r = check.errorf(arg$4, 131, "receiver type parameter %s must be an identifier", new sliceType$6([arg$4])); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 11: - /* */ if (par === ptrType$30.nil) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (par === ptrType$30.nil) { */ case 14: - _r$1 = arg.Pos(); /* */ $s = 16; case 16: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - par = new ast.Ident.ptr(_r$1, "_", ptrType$81.nil); - /* } */ case 15: - tparams = $append(tparams, par); - _i++; - $s = 5; continue; - case 6: - /* } */ case 4: - /* } */ case 2: - _tuple = $assertType(rtyp, ptrType$30, true); - name = _tuple[0]; - if (!(name === ptrType$30.nil)) { - rname = name; + return false; + }; + importName = function importName$1(s) { + var s; + if (s.Name === ptrType$10.nil) { + return ""; } - $s = -1; return [ptr, rname, tparams]; - /* */ } return; } var $f = {$blk: unpackRecv, $c: true, $r, _i, _r$1, _ref, _ref$1, _ref$2, _ref$3, _tuple, arg, arg$1, arg$2, arg$3, arg$4, check, ix, name, par, ptr, rname, rtyp, t, t$1, t$2, tparams, unpackParams, $s};return $f; + return s.Name.Name; }; - $ptrType(Checker).prototype.resolveBaseTypeName = function resolveBaseTypeName(seenPtr, name) { - var {_entry, _entry$1, _key, _r$1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, base, check, name, name$1, obj, pexpr, ptr, seen, seenPtr, tdecl, tname, typ$3, $s, $r, $c} = $restore(this, {seenPtr, name}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - ptr = false; - base = ptrType$17.nil; - check = this; - ptr = seenPtr; - seen = false; - typ$3 = name; - /* while (true) { */ case 1: - typ$3 = unparen(typ$3); - _tuple = $assertType(typ$3, ptrType$43, true); - pexpr = _tuple[0]; - if (!(pexpr === ptrType$43.nil)) { - if (ptr) { - _tmp = false; - _tmp$1 = ptrType$17.nil; - ptr = _tmp; - base = _tmp$1; - $s = -1; return [ptr, base]; - } - ptr = true; - typ$3 = unparen(pexpr.X); - } - _tuple$1 = $assertType(typ$3, ptrType$30, true); - name$1 = _tuple$1[0]; - if (name$1 === ptrType$30.nil) { - _tmp$2 = false; - _tmp$3 = ptrType$17.nil; - ptr = _tmp$2; - base = _tmp$3; - $s = -1; return [ptr, base]; - } - _r$1 = check.pkg.scope.Lookup(name$1.Name); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - obj = _r$1; - if ($interfaceIsEqual(obj, $ifaceNil)) { - _tmp$4 = false; - _tmp$5 = ptrType$17.nil; - ptr = _tmp$4; - base = _tmp$5; - $s = -1; return [ptr, base]; - } - _tuple$2 = $assertType(obj, ptrType$17, true); - tname = _tuple$2[0]; - if (tname === ptrType$17.nil) { - _tmp$6 = false; - _tmp$7 = ptrType$17.nil; - ptr = _tmp$6; - base = _tmp$7; - $s = -1; return [ptr, base]; - } - if ((_entry = $mapIndex(seen,ptrType$17.keyFor(tname)), _entry !== undefined ? _entry.v : false)) { - _tmp$8 = false; - _tmp$9 = ptrType$17.nil; - ptr = _tmp$8; - base = _tmp$9; - $s = -1; return [ptr, base]; - } - tdecl = (_entry$1 = $mapIndex(check.objMap,Object.keyFor(tname)), _entry$1 !== undefined ? _entry$1.v : ptrType$58.nil).tdecl; - if (!new token.Pos(tdecl.Assign).IsValid()) { - _tmp$10 = ptr; - _tmp$11 = tname; - ptr = _tmp$10; - base = _tmp$11; - $s = -1; return [ptr, base]; - } - typ$3 = tdecl.Type; - if (seen === false) { - seen = new $global.Map(); - } - _key = tname; (seen || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$17.keyFor(_key), { k: _key, v: true }); - $s = 1; continue; - case 2: - $s = -1; return [ptr, base]; - /* */ } return; } var $f = {$blk: resolveBaseTypeName, $c: true, $r, _entry, _entry$1, _key, _r$1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, base, check, name, name$1, obj, pexpr, ptr, seen, seenPtr, tdecl, tname, typ$3, $s};return $f; + importPath = function importPath$1(s) { + var _tuple, err, s, t; + _tuple = strconv.Unquote(s.Path.Value); + t = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + return ""; + } + return t; }; - $ptrType(Checker).prototype.packageObjects = function packageObjects() { - var {_entry, _entry$1, _i, _i$1, _i$2, _i$3, _i$4, _key, _keys, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _size, _tuple, _tuple$1, aliasList, check, i, obj, obj$1, obj$2, obj$3, obj$4, obj$5, objList, othersList, tname, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - objList = $makeSlice(sliceType$8, (check.objMap ? check.objMap.size : 0)); - i = 0; - _ref = check.objMap; + declImports = function declImports$1(gen, path) { + var _i, _ref, gen, impspec, path, spec; + if (!((gen.Tok === 75))) { + return false; + } + _ref = gen.Specs; _i = 0; - _keys = _ref ? _ref.keys() : undefined; - _size = _ref ? _ref.size : 0; while (true) { - if (!(_i < _size)) { break; } - _key = _keys.next().value; - _entry = _ref.get(_key); - if (_entry === undefined) { - _i++; - continue; + if (!(_i < _ref.$length)) { break; } + spec = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + impspec = $assertType(spec, ptrType$52); + if (importPath(impspec) === path) { + return true; } - obj = _entry.k; - ((i < 0 || i >= objList.$length) ? ($throwRuntimeError("index out of range"), undefined) : objList.$array[objList.$offset + i] = obj); - i = i + (1) >> 0; _i++; } - $r = sort.Sort(($convertSliceType(objList, inSourceOrder))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _ref$1 = objList; - _i$1 = 0; - /* while (true) { */ case 2: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 3; continue; } - obj$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - _tuple = $assertType(obj$1, ptrType$17, true); - obj$2 = _tuple[0]; - /* */ if (!(obj$2 === ptrType$17.nil) && !($interfaceIsEqual(obj$2.object.typ, $ifaceNil))) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (!(obj$2 === ptrType$17.nil) && !($interfaceIsEqual(obj$2.object.typ, $ifaceNil))) { */ case 4: - $r = check.collectMethods(obj$2); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 5: - _i$1++; - $s = 2; continue; - case 3: - aliasList = sliceType$23.nil; - othersList = sliceType$8.nil; - _ref$2 = objList; - _i$2 = 0; - /* while (true) { */ case 7: - /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 8; continue; } - obj$3 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); - _tuple$1 = $assertType(obj$3, ptrType$17, true); - tname = _tuple$1[0]; - /* */ if (!(tname === ptrType$17.nil)) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (!(tname === ptrType$17.nil)) { */ case 9: - /* */ if (new token.Pos((_entry$1 = $mapIndex(check.objMap,Object.keyFor(tname)), _entry$1 !== undefined ? _entry$1.v : ptrType$58.nil).tdecl.Assign).IsValid()) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (new token.Pos((_entry$1 = $mapIndex(check.objMap,Object.keyFor(tname)), _entry$1 !== undefined ? _entry$1.v : ptrType$58.nil).tdecl.Assign).IsValid()) { */ case 12: - aliasList = $append(aliasList, tname); - $s = 14; continue; - /* } else { */ case 13: - $r = check.objDecl(obj$3, ptrType$9.nil); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 14: - $s = 11; continue; - /* } else { */ case 10: - othersList = $append(othersList, obj$3); - /* } */ case 11: - _i$2++; - $s = 7; continue; - case 8: - _ref$3 = aliasList; - _i$3 = 0; - /* while (true) { */ case 16: - /* if (!(_i$3 < _ref$3.$length)) { break; } */ if(!(_i$3 < _ref$3.$length)) { $s = 17; continue; } - obj$4 = ((_i$3 < 0 || _i$3 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$3]); - $r = check.objDecl(obj$4, ptrType$9.nil); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$3++; - $s = 16; continue; - case 17: - _ref$4 = othersList; - _i$4 = 0; - /* while (true) { */ case 19: - /* if (!(_i$4 < _ref$4.$length)) { break; } */ if(!(_i$4 < _ref$4.$length)) { $s = 20; continue; } - obj$5 = ((_i$4 < 0 || _i$4 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$4]); - $r = check.objDecl(obj$5, ptrType$9.nil); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$4++; - $s = 19; continue; - case 20: - check.methods = false; - $s = -1; return; - /* */ } return; } var $f = {$blk: packageObjects, $c: true, $r, _entry, _entry$1, _i, _i$1, _i$2, _i$3, _i$4, _key, _keys, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _size, _tuple, _tuple$1, aliasList, check, i, obj, obj$1, obj$2, obj$3, obj$4, obj$5, objList, othersList, tname, $s};return $f; - }; - inSourceOrder.prototype.Len = function Len$6() { - var a; - a = this; - return a.$length; - }; - $ptrType(inSourceOrder).prototype.Len = function(...$args) { return this.$get().Len(...$args); }; - inSourceOrder.prototype.Less = function Less$1(i, j) { - var {$24r, _r$1, _r$2, a, i, j, $s, $r, $c} = $restore(this, {i, j}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - a = this; - _r$1 = ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i]).order(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = ((j < 0 || j >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + j]).order(); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$1 < _r$2; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: Less$1, $c: true, $r, $24r, _r$1, _r$2, a, i, j, $s};return $f; + return false; }; - $ptrType(inSourceOrder).prototype.Less = function(...$args) { return this.$get().Less(...$args); }; - inSourceOrder.prototype.Swap = function Swap$1(i, j) { - var _tmp, _tmp$1, a, i, j; - a = this; - _tmp = ((j < 0 || j >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + j]); - _tmp$1 = ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i]); - ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i] = _tmp); - ((j < 0 || j >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + j] = _tmp$1); + matchLen = function matchLen$1(x, y) { + var i, n, x, y; + n = 0; + i = 0; + while (true) { + if (!(i < x.length && i < y.length && (x.charCodeAt(i) === y.charCodeAt(i)))) { break; } + if (x.charCodeAt(i) === 47) { + n = n + (1) >> 0; + } + i = i + (1) >> 0; + } + return n; }; - $ptrType(inSourceOrder).prototype.Swap = function(...$args) { return this.$get().Swap(...$args); }; - $ptrType(Checker).prototype.unusedImports = function unusedImports() { - var {_i, _ref, check, obj, $s, $r, $c} = $restore(this, {}); + Imports = function Imports$1(fset, f) { + var {_i, _i$1, _r, _ref, _ref$1, _tuple, decl, f, fset, genDecl, group, groups, importSpec$2, lastLine, line, ok, pos, spec, $s, $r, $c} = $restore(this, {fset, f}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - if (check.conf.IgnoreFuncBodies) { - $s = -1; return; - } - _ref = check.imports; + groups = sliceType$6.nil; + _ref = f.Decls; _i = 0; /* while (true) { */ case 1: /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - obj = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - /* */ if (!obj.used && !(obj.object.name === "_")) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!obj.used && !(obj.object.name === "_")) { */ case 3: - $r = check.errorUnusedPkg(obj); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 4: + decl = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _tuple = $assertType(decl, ptrType$56, true); + genDecl = _tuple[0]; + ok = _tuple[1]; + if (!ok || !((genDecl.Tok === 75))) { + /* break; */ $s = 2; continue; + } + group = new sliceType$4([]); + lastLine = 0; + _ref$1 = genDecl.Specs; + _i$1 = 0; + /* while (true) { */ case 3: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 4; continue; } + spec = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + importSpec$2 = $assertType(spec, ptrType$52); + pos = importSpec$2.Path.ValuePos; + _r = fset.Position(pos); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + line = _r.Line; + if (lastLine > 0 && pos > 0 && (line - lastLine >> 0) > 1) { + groups = $append(groups, group); + group = new sliceType$4([]); + } + group = $append(group, importSpec$2); + lastLine = line; + _i$1++; + $s = 3; continue; + case 4: + groups = $append(groups, group); _i++; $s = 1; continue; case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: unusedImports, $c: true, $r, _i, _ref, check, obj, $s};return $f; - }; - $ptrType(Checker).prototype.errorUnusedPkg = function errorUnusedPkg(obj) { - var {check, elem, i, obj, path, $s, $r, $c} = $restore(this, {obj}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - path = obj.imported.path; - elem = path; - i = strings.LastIndex(elem, "/"); - if (i >= 0) { - elem = $substring(elem, (i + 1 >> 0)); - } - /* */ if (obj.object.name === "" || obj.object.name === "." || obj.object.name === elem) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (obj.object.name === "" || obj.object.name === "." || obj.object.name === elem) { */ case 1: - $r = check.softErrorf(obj, 8, "%q imported and not used", new sliceType$6([new $String(path)])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 3; continue; - /* } else { */ case 2: - $r = check.softErrorf(obj, 8, "%q imported as %s and not used", new sliceType$6([new $String(path), new $String(obj.object.name)])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 3: - $s = -1; return; - /* */ } return; } var $f = {$blk: errorUnusedPkg, $c: true, $r, check, elem, i, obj, path, $s};return $f; + $s = -1; return groups; + /* */ } return; } var $f = {$blk: Imports$1, $c: true, $r, _i, _i$1, _r, _ref, _ref$1, _tuple, decl, f, fset, genDecl, group, groups, importSpec$2, lastLine, line, ok, pos, spec, $s};return $f; }; - dir = function dir$1(path) { - var i, path; - i = strings.LastIndexAny(path, "/\\"); - if (i > 0) { - return $substring(path, 0, i); + $pkg.Imports = Imports; + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = ast.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = token.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = reflect.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sort.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + abort = $newDataPointer(0, ptrType); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["regexp/syntax"] = (function() { + var $pkg = {}, $init, sort, strconv, strings, unicode, utf8, Regexp, Op, Prog, InstOp, EmptyOp, Inst, Error, ErrorCode, Flags, parser, charGroup, ranges, patchList, frag, compiler, sliceType, sliceType$1, sliceType$2, sliceType$3, ptrType, sliceType$4, arrayType, arrayType$1, ptrType$1, sliceType$5, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, sliceType$6, ptrType$7, mapType, mapType$1, ptrType$8, instOpNames, code1, code2, code3, perlGroup, code4, code5, code6, code7, code8, code9, code10, code11, code12, code13, code14, code15, code16, code17, posixGroup, anyTable, _Op_index_0, anyRuneNotNL, anyRune, simplify1, writeRegexp, escape, IsWordChar, bw, dumpProg, u32, dumpInst, minFoldRune, repeatIsValid, cleanAlt, literalRegexp, Parse, parse, isValidCaptureName, isCharClass, matchRune, mergeCharClass, unicodeTable, cleanClass, appendLiteral, appendRange, appendFoldedRange, appendClass, appendFoldedClass, appendNegatedClass, appendTable, appendNegatedTable, negateClass, checkUTF8, nextRune, isalnum, unhex, makePatchList, Compile; + sort = $packages["sort"]; + strconv = $packages["strconv"]; + strings = $packages["strings"]; + unicode = $packages["unicode"]; + utf8 = $packages["unicode/utf8"]; + Regexp = $newType(0, $kindStruct, "syntax.Regexp", true, "regexp/syntax", true, function(Op_, Flags_, Sub_, Sub0_, Rune_, Rune0_, Min_, Max_, Cap_, Name_) { + this.$val = this; + if (arguments.length === 0) { + this.Op = 0; + this.Flags = 0; + this.Sub = sliceType$4.nil; + this.Sub0 = arrayType.zero(); + this.Rune = sliceType$1.nil; + this.Rune0 = arrayType$1.zero(); + this.Min = 0; + this.Max = 0; + this.Cap = 0; + this.Name = ""; + return; + } + this.Op = Op_; + this.Flags = Flags_; + this.Sub = Sub_; + this.Sub0 = Sub0_; + this.Rune = Rune_; + this.Rune0 = Rune0_; + this.Min = Min_; + this.Max = Max_; + this.Cap = Cap_; + this.Name = Name_; + }); + Op = $newType(1, $kindUint8, "syntax.Op", true, "regexp/syntax", true, null); + Prog = $newType(0, $kindStruct, "syntax.Prog", true, "regexp/syntax", true, function(Inst_, Start_, NumCap_) { + this.$val = this; + if (arguments.length === 0) { + this.Inst = sliceType$6.nil; + this.Start = 0; + this.NumCap = 0; + return; + } + this.Inst = Inst_; + this.Start = Start_; + this.NumCap = NumCap_; + }); + InstOp = $newType(1, $kindUint8, "syntax.InstOp", true, "regexp/syntax", true, null); + EmptyOp = $newType(1, $kindUint8, "syntax.EmptyOp", true, "regexp/syntax", true, null); + Inst = $newType(0, $kindStruct, "syntax.Inst", true, "regexp/syntax", true, function(Op_, Out_, Arg_, Rune_) { + this.$val = this; + if (arguments.length === 0) { + this.Op = 0; + this.Out = 0; + this.Arg = 0; + this.Rune = sliceType$1.nil; + return; + } + this.Op = Op_; + this.Out = Out_; + this.Arg = Arg_; + this.Rune = Rune_; + }); + Error = $newType(0, $kindStruct, "syntax.Error", true, "regexp/syntax", true, function(Code_, Expr_) { + this.$val = this; + if (arguments.length === 0) { + this.Code = ""; + this.Expr = ""; + return; + } + this.Code = Code_; + this.Expr = Expr_; + }); + ErrorCode = $newType(8, $kindString, "syntax.ErrorCode", true, "regexp/syntax", true, null); + Flags = $newType(2, $kindUint16, "syntax.Flags", true, "regexp/syntax", true, null); + parser = $newType(0, $kindStruct, "syntax.parser", true, "regexp/syntax", false, function(flags_, stack_, free_, numCap_, wholeRegexp_, tmpClass_, numRegexp_, numRunes_, repeats_, height_, size_) { + this.$val = this; + if (arguments.length === 0) { + this.flags = 0; + this.stack = sliceType$4.nil; + this.free = ptrType.nil; + this.numCap = 0; + this.wholeRegexp = ""; + this.tmpClass = sliceType$1.nil; + this.numRegexp = 0; + this.numRunes = 0; + this.repeats = new $Int64(0, 0); + this.height = false; + this.size = false; + return; + } + this.flags = flags_; + this.stack = stack_; + this.free = free_; + this.numCap = numCap_; + this.wholeRegexp = wholeRegexp_; + this.tmpClass = tmpClass_; + this.numRegexp = numRegexp_; + this.numRunes = numRunes_; + this.repeats = repeats_; + this.height = height_; + this.size = size_; + }); + charGroup = $newType(0, $kindStruct, "syntax.charGroup", true, "regexp/syntax", false, function(sign_, class$1_) { + this.$val = this; + if (arguments.length === 0) { + this.sign = 0; + this.class$1 = sliceType$1.nil; + return; + } + this.sign = sign_; + this.class$1 = class$1_; + }); + ranges = $newType(0, $kindStruct, "syntax.ranges", true, "regexp/syntax", false, function(p_) { + this.$val = this; + if (arguments.length === 0) { + this.p = ptrType$3.nil; + return; + } + this.p = p_; + }); + patchList = $newType(0, $kindStruct, "syntax.patchList", true, "regexp/syntax", false, function(head_, tail_) { + this.$val = this; + if (arguments.length === 0) { + this.head = 0; + this.tail = 0; + return; + } + this.head = head_; + this.tail = tail_; + }); + frag = $newType(0, $kindStruct, "syntax.frag", true, "regexp/syntax", false, function(i_, out_, nullable_) { + this.$val = this; + if (arguments.length === 0) { + this.i = 0; + this.out = new patchList.ptr(0, 0); + this.nullable = false; + return; + } + this.i = i_; + this.out = out_; + this.nullable = nullable_; + }); + compiler = $newType(0, $kindStruct, "syntax.compiler", true, "regexp/syntax", false, function(p_) { + this.$val = this; + if (arguments.length === 0) { + this.p = ptrType$6.nil; + return; + } + this.p = p_; + }); + $pkg.Regexp = Regexp; + $pkg.Op = Op; + $pkg.Prog = Prog; + $pkg.InstOp = InstOp; + $pkg.EmptyOp = EmptyOp; + $pkg.Inst = Inst; + $pkg.Error = Error; + $pkg.ErrorCode = ErrorCode; + $pkg.Flags = Flags; + $pkg.parser = parser; + $pkg.charGroup = charGroup; + $pkg.ranges = ranges; + $pkg.patchList = patchList; + $pkg.frag = frag; + $pkg.compiler = compiler; + $pkg.$finishSetup = function() { + sliceType = $sliceType($String); + sliceType$1 = $sliceType($Int32); + sliceType$2 = $sliceType(unicode.Range16); + sliceType$3 = $sliceType(unicode.Range32); + ptrType = $ptrType(Regexp); + sliceType$4 = $sliceType(ptrType); + arrayType = $arrayType(ptrType, 1); + arrayType$1 = $arrayType($Int32, 2); + ptrType$1 = $ptrType(strings.Builder); + sliceType$5 = $sliceType($Uint8); + ptrType$2 = $ptrType(Inst); + ptrType$3 = $ptrType(sliceType$1); + ptrType$4 = $ptrType(parser); + ptrType$5 = $ptrType(unicode.RangeTable); + ptrType$6 = $ptrType(Prog); + sliceType$6 = $sliceType(Inst); + ptrType$7 = $ptrType(Error); + mapType = $mapType(ptrType, $Int); + mapType$1 = $mapType(ptrType, $Int64); + ptrType$8 = $ptrType(compiler); + $ptrType(Regexp).prototype.Simplify = function Simplify() { + var _1, _i, _ref, i, i$1, i$2, i$3, nre, nre$1, nre2, nsub, prefix, re, sub, sub$1, sub$2, suffix, x, x$1; + re = this; + if (re === ptrType.nil) { + return ptrType.nil; } - return "."; - }; - isBoolean = function isBoolean$1(t) { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = isBasic(t, 1); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: isBoolean$1, $c: true, $r, $24r, _r$1, t, $s};return $f; - }; - isInteger = function isInteger$1(t) { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = isBasic(t, 2); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: isInteger$1, $c: true, $r, $24r, _r$1, t, $s};return $f; - }; - isUnsigned = function isUnsigned$1(t) { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = isBasic(t, 4); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: isUnsigned$1, $c: true, $r, $24r, _r$1, t, $s};return $f; - }; - isFloat = function isFloat$1(t) { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = isBasic(t, 8); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: isFloat$1, $c: true, $r, $24r, _r$1, t, $s};return $f; - }; - isComplex = function isComplex$1(t) { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = isBasic(t, 16); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: isComplex$1, $c: true, $r, $24r, _r$1, t, $s};return $f; - }; - isNumeric = function isNumeric$1(t) { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = isBasic(t, 26); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: isNumeric$1, $c: true, $r, $24r, _r$1, t, $s};return $f; - }; - isString = function isString$1(t) { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = isBasic(t, 32); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: isString$1, $c: true, $r, $24r, _r$1, t, $s};return $f; - }; - isIntegerOrFloat = function isIntegerOrFloat$1(t) { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = isBasic(t, 10); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: isIntegerOrFloat$1, $c: true, $r, $24r, _r$1, t, $s};return $f; - }; - isConstType = function isConstType$1(t) { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = isBasic(t, 59); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: isConstType$1, $c: true, $r, $24r, _r$1, t, $s};return $f; - }; - isBasic = function isBasic$1(t, info) { - var {_r$1, _tuple, info, t, u, $s, $r, $c} = $restore(this, {t, info}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = under(t); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = $assertType(_r$1, ptrType$4, true); - u = _tuple[0]; - $s = -1; return !(u === ptrType$4.nil) && !(((u.info & info) === 0)); - /* */ } return; } var $f = {$blk: isBasic$1, $c: true, $r, _r$1, _tuple, info, t, u, $s};return $f; - }; - allBoolean = function allBoolean$1(typ$3) { - var {$24r, _r$1, typ$3, $s, $r, $c} = $restore(this, {typ$3}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = allBasic(typ$3, 1); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: allBoolean$1, $c: true, $r, $24r, _r$1, typ$3, $s};return $f; - }; - allInteger = function allInteger$1(typ$3) { - var {$24r, _r$1, typ$3, $s, $r, $c} = $restore(this, {typ$3}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = allBasic(typ$3, 2); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: allInteger$1, $c: true, $r, $24r, _r$1, typ$3, $s};return $f; - }; - allUnsigned = function allUnsigned$1(typ$3) { - var {$24r, _r$1, typ$3, $s, $r, $c} = $restore(this, {typ$3}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = allBasic(typ$3, 4); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: allUnsigned$1, $c: true, $r, $24r, _r$1, typ$3, $s};return $f; - }; - allNumeric = function allNumeric$1(typ$3) { - var {$24r, _r$1, typ$3, $s, $r, $c} = $restore(this, {typ$3}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = allBasic(typ$3, 26); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: allNumeric$1, $c: true, $r, $24r, _r$1, typ$3, $s};return $f; - }; - allString = function allString$1(typ$3) { - var {$24r, _r$1, typ$3, $s, $r, $c} = $restore(this, {typ$3}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = allBasic(typ$3, 32); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: allString$1, $c: true, $r, $24r, _r$1, typ$3, $s};return $f; - }; - allOrdered = function allOrdered$1(typ$3) { - var {$24r, _r$1, typ$3, $s, $r, $c} = $restore(this, {typ$3}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = allBasic(typ$3, 42); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: allOrdered$1, $c: true, $r, $24r, _r$1, typ$3, $s};return $f; - }; - allNumericOrString = function allNumericOrString$1(typ$3) { - var {$24r, _r$1, typ$3, $s, $r, $c} = $restore(this, {typ$3}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = allBasic(typ$3, 58); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: allNumericOrString$1, $c: true, $r, $24r, _r$1, typ$3, $s};return $f; - }; - allBasic = function allBasic$1(t, info) { - var {$24r, $24r$1, _r$1, _r$2, _tuple, info, t, tpar, $s, $r, $c} = $restore(this, {t, info}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - info = [info]; - _tuple = $assertType(t, ptrType$14, true); - tpar = _tuple[0]; - /* */ if (!(tpar === ptrType$14.nil)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(tpar === ptrType$14.nil)) { */ case 1: - _r$1 = tpar.is((function(info) { return function allBasic·func1(t$1) { - var {$24r, _r$1, _v, t$1, $s, $r, $c} = $restore(this, {t$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (!(!(t$1 === ptrType$5.nil))) { _v = false; $s = 1; continue s; } - _r$1 = isBasic(t$1.typ, info[0]); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = _r$1; case 1: - $24r = _v; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: allBasic·func1, $c: true, $r, $24r, _r$1, _v, t$1, $s};return $f; - }; })(info)); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 4; case 4: return $24r; - /* } */ case 2: - _r$2 = isBasic(t, info[0]); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r$1 = _r$2; - $s = 6; case 6: return $24r$1; - /* */ } return; } var $f = {$blk: allBasic$1, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _tuple, info, t, tpar, $s};return $f; - }; - hasName = function hasName$1(t) { - var _ref, t; - _ref = t; - if ($assertType(_ref, ptrType$4, true)[1] || $assertType(_ref, ptrType$9, true)[1] || $assertType(_ref, ptrType$14, true)[1]) { - return true; + _1 = re.Op; + if ((_1 === (13)) || (_1 === (18)) || (_1 === (19))) { + nre = re; + _ref = re.Sub; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + nsub = sub.Simplify(); + if (nre === re && !(nsub === sub)) { + nre = new Regexp.ptr(0, 0, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, ""); + Regexp.copy((nre === ptrType.nil && $throwNilPointerError(), nre), (re === ptrType.nil && $throwNilPointerError(), re)); + nre.Rune = sliceType$1.nil; + nre.Sub = $appendSlice($subslice(new sliceType$4(nre.Sub0), 0, 0), $subslice(re.Sub, 0, i)); + } + if (!(nre === re)) { + nre.Sub = $append(nre.Sub, nsub); + } + _i++; + } + return nre; + } else if ((_1 === (14)) || (_1 === (15)) || (_1 === (16))) { + sub$1 = (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).Simplify(); + return simplify1(re.Op, re.Flags, sub$1, re); + } else if (_1 === (17)) { + if ((re.Min === 0) && (re.Max === 0)) { + return new Regexp.ptr(2, 0, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, ""); + } + sub$2 = (x$1 = re.Sub, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])).Simplify(); + if (re.Max === -1) { + if (re.Min === 0) { + return simplify1(14, re.Flags, sub$2, ptrType.nil); + } + if (re.Min === 1) { + return simplify1(15, re.Flags, sub$2, ptrType.nil); + } + nre$1 = new Regexp.ptr(18, 0, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, ""); + nre$1.Sub = $subslice(new sliceType$4(nre$1.Sub0), 0, 0); + i$1 = 0; + while (true) { + if (!(i$1 < (re.Min - 1 >> 0))) { break; } + nre$1.Sub = $append(nre$1.Sub, sub$2); + i$1 = i$1 + (1) >> 0; + } + nre$1.Sub = $append(nre$1.Sub, simplify1(15, re.Flags, sub$2, ptrType.nil)); + return nre$1; + } + if ((re.Min === 1) && (re.Max === 1)) { + return sub$2; + } + prefix = ptrType.nil; + if (re.Min > 0) { + prefix = new Regexp.ptr(18, 0, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, ""); + prefix.Sub = $subslice(new sliceType$4(prefix.Sub0), 0, 0); + i$2 = 0; + while (true) { + if (!(i$2 < re.Min)) { break; } + prefix.Sub = $append(prefix.Sub, sub$2); + i$2 = i$2 + (1) >> 0; + } + } + if (re.Max > re.Min) { + suffix = simplify1(16, re.Flags, sub$2, ptrType.nil); + i$3 = re.Min + 1 >> 0; + while (true) { + if (!(i$3 < re.Max)) { break; } + nre2 = new Regexp.ptr(18, 0, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, ""); + nre2.Sub = $append($subslice(new sliceType$4(nre2.Sub0), 0, 0), sub$2, suffix); + suffix = simplify1(16, re.Flags, nre2, ptrType.nil); + i$3 = i$3 + (1) >> 0; + } + if (prefix === ptrType.nil) { + return suffix; + } + prefix.Sub = $append(prefix.Sub, suffix); + } + if (!(prefix === ptrType.nil)) { + return prefix; + } + return new Regexp.ptr(1, 0, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, ""); } - return false; - }; - isTyped = function isTyped$1(t) { - var _tuple, b, t; - _tuple = $assertType(t, ptrType$4, true); - b = _tuple[0]; - return b === ptrType$4.nil || ((b.info & 64) === 0); - }; - isUntyped = function isUntyped$1(t) { - var t; - return !isTyped(t); - }; - IsInterface = function IsInterface$1(t) { - var {_r$1, _tuple, ok, t, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = under(t); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = $assertType(_r$1, ptrType$13, true); - ok = _tuple[1]; - $s = -1; return ok; - /* */ } return; } var $f = {$blk: IsInterface$1, $c: true, $r, _r$1, _tuple, ok, t, $s};return $f; - }; - $pkg.IsInterface = IsInterface; - isNonTypeParamInterface = function isNonTypeParamInterface$1(t) { - var {$24r, _r$1, _v, t, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (!(!isTypeParam(t))) { _v = false; $s = 1; continue s; } - _r$1 = IsInterface(t); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = _r$1; case 1: - $24r = _v; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: isNonTypeParamInterface$1, $c: true, $r, $24r, _r$1, _v, t, $s};return $f; - }; - isTypeParam = function isTypeParam$1(t) { - var _tuple, ok, t; - _tuple = $assertType(t, ptrType$14, true); - ok = _tuple[1]; - return ok; - }; - hasEmptyTypeset = function hasEmptyTypeset$1(t) { - var {_r$1, _tuple, _tuple$1, iface$1, t, tpar, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _tuple = $assertType(t, ptrType$14, true); - tpar = _tuple[0]; - /* */ if (!(tpar === ptrType$14.nil) && !($interfaceIsEqual(tpar.bound, $ifaceNil))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(tpar === ptrType$14.nil) && !($interfaceIsEqual(tpar.bound, $ifaceNil))) { */ case 1: - _r$1 = safeUnderlying(tpar.bound); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$1 = $assertType(_r$1, ptrType$13, true); - iface$1 = _tuple$1[0]; - $s = -1; return !(iface$1 === ptrType$13.nil) && !(iface$1.tset === ptrType$8.nil) && iface$1.tset.IsEmpty(); - /* } */ case 2: - $s = -1; return false; - /* */ } return; } var $f = {$blk: hasEmptyTypeset$1, $c: true, $r, _r$1, _tuple, _tuple$1, iface$1, t, tpar, $s};return $f; - }; - isGeneric = function isGeneric$1(t) { - var {$24r, _r$1, _r$2, _tuple, _v, named, t, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _tuple = $assertType(t, ptrType$9, true); - named = _tuple[0]; - if (!(!(named === ptrType$9.nil) && !(named.obj === ptrType$17.nil) && named.inst === ptrType$52.nil)) { _v = false; $s = 1; continue s; } - _r$1 = named.TypeParams(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = _r$1.Len(); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _v = _r$2 > 0; case 1: - $24r = _v; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: isGeneric$1, $c: true, $r, $24r, _r$1, _r$2, _tuple, _v, named, t, $s};return $f; + return re; }; - Comparable = function Comparable$1(T) { - var {$24r, T, _r$1, $s, $r, $c} = $restore(this, {T}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = comparable(T, true, false, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Comparable$1, $c: true, $r, $24r, T, _r$1, $s};return $f; + simplify1 = function simplify1$1(op, flags, sub, re) { + var flags, op, re, sub, x; + if (sub.Op === 2) { + return sub; + } + if ((op === sub.Op) && (((flags & 32) >>> 0) === ((sub.Flags & 32) >>> 0))) { + return sub; + } + if (!(re === ptrType.nil) && (re.Op === op) && (((re.Flags & 32) >>> 0) === ((flags & 32) >>> 0)) && sub === (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))) { + return re; + } + re = new Regexp.ptr(op, flags, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, ""); + re.Sub = $append($subslice(new sliceType$4(re.Sub0), 0, 0), sub); + return re; }; - $pkg.Comparable = Comparable; - comparable = function comparable$1(T, dynamic, seen, reportf) { - var {T, _entry, _i, _key, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _ref$1, _v, dynamic, f, reportf, seen, t, t$1, t$2, t$3, t$4, $s, $r, $c} = $restore(this, {T, dynamic, seen, reportf}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if ((_entry = $mapIndex(seen,Type.keyFor(T)), _entry !== undefined ? _entry.v : false)) { - $s = -1; return true; + $ptrType(Regexp).prototype.Equal = function Equal(y) { + var _1, _i, _i$1, _ref, _ref$1, i, i$1, r, sub, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, y; + x = this; + if (x === ptrType.nil || y === ptrType.nil) { + return x === y; } - if (seen === false) { - seen = new $global.Map(); + if (!((x.Op === y.Op))) { + return false; } - _key = T; (seen || $throwRuntimeError("assignment to entry in nil map")).set(Type.keyFor(_key), { k: _key, v: true }); - _r$1 = under(T); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _ref = _r$1; - /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$26, true)[1] || $assertType(_ref, ptrType$29, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if ($assertType(_ref, ptrType$4, true)[1]) { */ case 2: - t = _ref.$val; - $s = -1; return !((t.kind === 25)); - /* } else if ($assertType(_ref, ptrType$26, true)[1] || $assertType(_ref, ptrType$29, true)[1]) { */ case 3: - t$1 = _ref; - $s = -1; return true; - /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 4: - t$2 = _ref.$val; - _ref$1 = t$2.fields; + _1 = x.Op; + if (_1 === (10)) { + if (!((((x.Flags & 256) >>> 0) === ((y.Flags & 256) >>> 0)))) { + return false; + } + } else if ((_1 === (3)) || (_1 === (4))) { + if (!((x.Rune.$length === y.Rune.$length))) { + return false; + } + _ref = x.Rune; _i = 0; - /* while (true) { */ case 8: - /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 9; continue; } - f = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); - _r$2 = comparable(f.object.typ, dynamic, seen, $throwNilPointerError); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (!_r$2) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (!_r$2) { */ case 10: - /* */ if (!(reportf === $throwNilPointerError)) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (!(reportf === $throwNilPointerError)) { */ case 13: - $r = reportf("struct containing %s cannot be compared", new sliceType$6([f.object.typ])); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 14: - $s = -1; return false; - /* } */ case 11: + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + r = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!((r === (x$1 = y.Rune, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i]))))) { + return false; + } _i++; - $s = 8; continue; - case 9: - $s = -1; return true; - /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 5: - t$3 = _ref.$val; - _r$3 = comparable(t$3.elem, dynamic, seen, $throwNilPointerError); /* */ $s = 18; case 18: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (!_r$3) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (!_r$3) { */ case 16: - /* */ if (!(reportf === $throwNilPointerError)) { $s = 19; continue; } - /* */ $s = 20; continue; - /* if (!(reportf === $throwNilPointerError)) { */ case 19: - $r = reportf("%s cannot be compared", new sliceType$6([t$3])); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 20: - $s = -1; return false; - /* } */ case 17: - $s = -1; return true; - /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 6: - t$4 = _ref.$val; - if (dynamic && !isTypeParam(T)) { _v = true; $s = 24; continue s; } - _r$4 = t$4.typeSet(); /* */ $s = 25; case 25: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$5 = _r$4.IsComparable(seen); /* */ $s = 26; case 26: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _v = _r$5; case 24: - /* */ if (_v) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if (_v) { */ case 22: - $s = -1; return true; - /* } */ case 23: - /* */ if (!(reportf === $throwNilPointerError)) { $s = 27; continue; } - /* */ $s = 28; continue; - /* if (!(reportf === $throwNilPointerError)) { */ case 27: - _r$6 = t$4.typeSet(); /* */ $s = 32; case 32: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _r$7 = _r$6.IsEmpty(); /* */ $s = 33; case 33: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - /* */ if (_r$7) { $s = 29; continue; } - /* */ $s = 30; continue; - /* if (_r$7) { */ case 29: - $r = reportf("empty type set", sliceType$6.nil); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 31; continue; - /* } else { */ case 30: - $r = reportf("incomparable types in type set", sliceType$6.nil); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 31: - /* } */ case 28: - /* } */ case 7: - $s = -1; return false; - /* */ } return; } var $f = {$blk: comparable$1, $c: true, $r, T, _entry, _i, _key, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _ref$1, _v, dynamic, f, reportf, seen, t, t$1, t$2, t$3, t$4, $s};return $f; - }; - hasNil = function hasNil$1(t) { - var {$24r, _r$1, _r$2, _r$3, _ref, _v, t, u, u$1, u$2, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = under(t); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _ref = _r$1; - /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$25, true)[1] || $assertType(_ref, ptrType$26, true)[1] || $assertType(_ref, ptrType$27, true)[1] || $assertType(_ref, ptrType$28, true)[1] || $assertType(_ref, ptrType$29, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if ($assertType(_ref, ptrType$4, true)[1]) { */ case 2: - u = _ref.$val; - $s = -1; return u.kind === 18; - /* } else if ($assertType(_ref, ptrType$25, true)[1] || $assertType(_ref, ptrType$26, true)[1] || $assertType(_ref, ptrType$27, true)[1] || $assertType(_ref, ptrType$28, true)[1] || $assertType(_ref, ptrType$29, true)[1]) { */ case 3: - u$1 = _ref; - $s = -1; return true; - /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 4: - u$2 = _ref.$val; - if (!isTypeParam(t)) { _v = true; $s = 6; continue s; } - _r$2 = u$2.typeSet(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = _r$2.underIs((function hasNil·func1(u$3) { - var {$24r, _r$3, _v$1, u$3, $s, $r, $c} = $restore(this, {u$3}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (!(!($interfaceIsEqual(u$3, $ifaceNil)))) { _v$1 = false; $s = 1; continue s; } - _r$3 = hasNil(u$3); /* */ $s = 2; case 2: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _v$1 = _r$3; case 1: - $24r = _v$1; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: hasNil·func1, $c: true, $r, $24r, _r$3, _v$1, u$3, $s};return $f; - })); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _v = _r$3; case 6: - $24r = _v; - $s = 9; case 9: return $24r; - /* } */ case 5: - $s = -1; return false; - /* */ } return; } var $f = {$blk: hasNil$1, $c: true, $r, $24r, _r$1, _r$2, _r$3, _ref, _v, t, u, u$1, u$2, $s};return $f; - }; - $ptrType(ifacePair).prototype.identical = function identical$1(q) { - var p, q; - p = this; - return p.x === q.x && p.y === q.y || p.x === q.y && p.y === q.x; - }; - identical = function identical$2(x, y, cmpTags, p) { - var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, _v$2, _v$3, _v$4, _v$5, _v$6, a, b, check, cmpTags, ctxt, f, f$1, g, g$1, i, i$1, i$2, i$3, i$4, i$5, ok, ok$1, ok$2, ok$3, ok$4, ok$5, ok$6, ok$7, ok$8, ok$9, p, q, smap, targs, unionSets, v, w, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9, xa, xargs, xset, xset$1, xtparam, xtparams, y, y$1, y$10, y$11, y$12, y$2, y$3, y$4, y$5, y$6, y$7, y$8, y$9, yargs, ybound, yparams, yresults, yset, yset$1, ytparams, $s, $r, $c} = $restore(this, {x, y, cmpTags, p}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if ($interfaceIsEqual(x, y)) { - $s = -1; return true; - } - _ref = x; - /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$15, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref, ptrType$12, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 9; continue; } - /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 10; continue; } - /* */ if ($assertType(_ref, ptrType$29, true)[1]) { $s = 11; continue; } - /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 12; continue; } - /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 13; continue; } - /* */ if (_ref === $ifaceNil) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if ($assertType(_ref, ptrType$4, true)[1]) { */ case 1: - x$1 = _ref.$val; - _tuple = $assertType(y, ptrType$4, true); - y$1 = _tuple[0]; - ok = _tuple[1]; - if (ok) { - $s = -1; return x$1.kind === y$1.kind; } - $s = 16; continue; - /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 2: - x$2 = _ref.$val; - _tuple$1 = $assertType(y, ptrType$10, true); - y$2 = _tuple$1[0]; - ok$1 = _tuple$1[1]; - /* */ if (ok$1) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (ok$1) { */ case 17: - if (!((x$16 = x$2.len, (x$16.$high < 0 || (x$16.$high === 0 && x$16.$low < 0))) || (x$17 = y$2.len, (x$17.$high < 0 || (x$17.$high === 0 && x$17.$low < 0))) || (x$18 = x$2.len, x$19 = y$2.len, (x$18.$high === x$19.$high && x$18.$low === x$19.$low)))) { _v = false; $s = 19; continue s; } - _r$1 = identical(x$2.elem, y$2.elem, cmpTags, p); /* */ $s = 20; case 20: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = _r$1; case 19: - $24r = _v; - $s = 21; case 21: return $24r; - /* } */ case 18: - $s = 16; continue; - /* } else if ($assertType(_ref, ptrType$25, true)[1]) { */ case 3: - x$3 = _ref.$val; - _tuple$2 = $assertType(y, ptrType$25, true); - y$3 = _tuple$2[0]; - ok$2 = _tuple$2[1]; - /* */ if (ok$2) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if (ok$2) { */ case 22: - _r$2 = identical(x$3.elem, y$3.elem, cmpTags, p); /* */ $s = 24; case 24: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r$1 = _r$2; - $s = 25; case 25: return $24r$1; - /* } */ case 23: - $s = 16; continue; - /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 4: - x$4 = _ref.$val; - _tuple$3 = $assertType(y, ptrType$11, true); - y$4 = _tuple$3[0]; - ok$3 = _tuple$3[1]; - /* */ if (ok$3) { $s = 26; continue; } - /* */ $s = 27; continue; - /* if (ok$3) { */ case 26: - /* */ if (x$4.NumFields() === y$4.NumFields()) { $s = 28; continue; } - /* */ $s = 29; continue; - /* if (x$4.NumFields() === y$4.NumFields()) { */ case 28: - _ref$1 = x$4.fields; - _i = 0; - /* while (true) { */ case 30: - /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 31; continue; } - i = _i; - f = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); - g = (x$20 = y$4.fields, ((i < 0 || i >= x$20.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$20.$array[x$20.$offset + i])); - if (!(f.embedded === g.embedded) || cmpTags && !(x$4.Tag(i) === y$4.Tag(i)) || !f.object.sameId(g.object.pkg, g.object.name)) { _v$1 = true; $s = 34; continue s; } - _r$3 = identical(f.object.typ, g.object.typ, cmpTags, p); /* */ $s = 35; case 35: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _v$1 = !_r$3; case 34: - /* */ if (_v$1) { $s = 32; continue; } - /* */ $s = 33; continue; - /* if (_v$1) { */ case 32: - $s = -1; return false; - /* } */ case 33: - _i++; - $s = 30; continue; - case 31: - $s = -1; return true; - /* } */ case 29: - /* } */ case 27: - $s = 16; continue; - /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 5: - x$5 = _ref.$val; - _tuple$4 = $assertType(y, ptrType$26, true); - y$5 = _tuple$4[0]; - ok$4 = _tuple$4[1]; - /* */ if (ok$4) { $s = 36; continue; } - /* */ $s = 37; continue; - /* if (ok$4) { */ case 36: - _r$4 = identical(x$5.base, y$5.base, cmpTags, p); /* */ $s = 38; case 38: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $24r$2 = _r$4; - $s = 39; case 39: return $24r$2; - /* } */ case 37: - $s = 16; continue; - /* } else if ($assertType(_ref, ptrType$15, true)[1]) { */ case 6: - x$6 = _ref.$val; - _tuple$5 = $assertType(y, ptrType$15, true); - y$6 = _tuple$5[0]; - ok$5 = _tuple$5[1]; - /* */ if (ok$5) { $s = 40; continue; } - /* */ $s = 41; continue; - /* if (ok$5) { */ case 40: - /* */ if (x$6.Len() === y$6.Len()) { $s = 42; continue; } - /* */ $s = 43; continue; - /* if (x$6.Len() === y$6.Len()) { */ case 42: - /* */ if (!(x$6 === ptrType$15.nil)) { $s = 44; continue; } - /* */ $s = 45; continue; - /* if (!(x$6 === ptrType$15.nil)) { */ case 44: - _ref$2 = x$6.vars; - _i$1 = 0; - /* while (true) { */ case 46: - /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 47; continue; } - i$1 = _i$1; - v = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); - w = (x$21 = y$6.vars, ((i$1 < 0 || i$1 >= x$21.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$21.$array[x$21.$offset + i$1])); - _r$5 = identical(v.object.typ, w.object.typ, cmpTags, p); /* */ $s = 50; case 50: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* */ if (!_r$5) { $s = 48; continue; } - /* */ $s = 49; continue; - /* if (!_r$5) { */ case 48: - $s = -1; return false; - /* } */ case 49: - _i$1++; - $s = 46; continue; - case 47: - /* } */ case 45: - $s = -1; return true; - /* } */ case 43: - /* } */ case 41: - $s = 16; continue; - /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 7: - x$7 = _ref.$val; - _tuple$6 = $assertType(y, ptrType$27, true); - y$7 = _tuple$6[0]; - if (y$7 === ptrType$27.nil) { - $s = -1; return false; + } else if ((_1 === (19)) || (_1 === (18))) { + if (!((x.Sub.$length === y.Sub.$length))) { + return false; } - if (!((x$7.TypeParams().Len() === y$7.TypeParams().Len()))) { - $s = -1; return false; + _ref$1 = x.Sub; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i$1 = _i$1; + sub = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + if (!sub.Equal((x$2 = y.Sub, ((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$1])))) { + return false; + } + _i$1++; } - yparams = y$7.params; - yresults = y$7.results; - /* */ if (x$7.TypeParams().Len() > 0) { $s = 51; continue; } - /* */ $s = 52; continue; - /* if (x$7.TypeParams().Len() > 0) { */ case 51: - xtparams = x$7.TypeParams().list(); - ytparams = y$7.TypeParams().list(); - targs = sliceType$3.nil; - _ref$3 = xtparams; - _i$2 = 0; + } else if ((_1 === (14)) || (_1 === (15)) || (_1 === (16))) { + if (!((((x.Flags & 32) >>> 0) === ((y.Flags & 32) >>> 0))) || !(x$3 = x.Sub, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])).Equal((x$4 = y.Sub, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])))) { + return false; + } + } else if (_1 === (17)) { + if (!((((x.Flags & 32) >>> 0) === ((y.Flags & 32) >>> 0))) || !((x.Min === y.Min)) || !((x.Max === y.Max)) || !(x$5 = x.Sub, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0])).Equal((x$6 = y.Sub, (0 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + 0])))) { + return false; + } + } else if (_1 === (13)) { + if (!((x.Cap === y.Cap)) || !(x.Name === y.Name) || !(x$7 = x.Sub, (0 >= x$7.$length ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + 0])).Equal((x$8 = y.Sub, (0 >= x$8.$length ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + 0])))) { + return false; + } + } + return true; + }; + writeRegexp = function writeRegexp$1(b, re) { + var _1, _2, _i, _i$1, _i$2, _r, _ref, _ref$1, _ref$2, _tmp, _tmp$1, _tmp$2, _tmp$3, b, hi, hi$1, i, i$1, i$2, lo, lo$1, r, re, sub, sub$1, sub$2, x, x$1, x$10, x$11, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + switch (0) { default: + _1 = re.Op; + if (_1 === (1)) { + b.WriteString("[^\\x00-\\x{10FFFF}]"); + } else if (_1 === (2)) { + b.WriteString("(?:)"); + } else if (_1 === (3)) { + if (!((((re.Flags & 1) >>> 0) === 0))) { + b.WriteString("(?i:"); + } + _ref = re.Rune; + _i = 0; while (true) { - if (!(_i$2 < _ref$3.$length)) { break; } - i$2 = _i$2; - targs = $append(targs, x$7.TypeParams().At(i$2)); - _i$2++; + if (!(_i < _ref.$length)) { break; } + r = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + escape(b, r, false); + _i++; } - _r$6 = makeSubstMap(ytparams, targs); /* */ $s = 53; case 53: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - smap = _r$6; - check = ptrType$6.nil; - ctxt = NewContext(); - _ref$4 = xtparams; - _i$3 = 0; - /* while (true) { */ case 54: - /* if (!(_i$3 < _ref$4.$length)) { break; } */ if(!(_i$3 < _ref$4.$length)) { $s = 55; continue; } - i$3 = _i$3; - xtparam = ((_i$3 < 0 || _i$3 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$3]); - _r$7 = check.subst(0, ((i$3 < 0 || i$3 >= ytparams.$length) ? ($throwRuntimeError("index out of range"), undefined) : ytparams.$array[ytparams.$offset + i$3]).bound, smap, ptrType$9.nil, ctxt); /* */ $s = 56; case 56: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - ybound = _r$7; - _r$8 = identical(xtparam.bound, ybound, cmpTags, p); /* */ $s = 59; case 59: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - /* */ if (!_r$8) { $s = 57; continue; } - /* */ $s = 58; continue; - /* if (!_r$8) { */ case 57: - $s = -1; return false; - /* } */ case 58: - _i$3++; - $s = 54; continue; - case 55: - _r$9 = check.subst(0, y$7.params, smap, ptrType$9.nil, ctxt); /* */ $s = 60; case 60: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - yparams = $assertType(_r$9, ptrType$15); - _r$10 = check.subst(0, y$7.results, smap, ptrType$9.nil, ctxt); /* */ $s = 61; case 61: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - yresults = $assertType(_r$10, ptrType$15); - /* } */ case 52: - if (!(x$7.variadic === y$7.variadic)) { _v$3 = false; $s = 63; continue s; } - _r$11 = identical(x$7.params, yparams, cmpTags, p); /* */ $s = 64; case 64: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _v$3 = _r$11; case 63: - if (!(_v$3)) { _v$2 = false; $s = 62; continue s; } - _r$12 = identical(x$7.results, yresults, cmpTags, p); /* */ $s = 65; case 65: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _v$2 = _r$12; case 62: - $24r$3 = _v$2; - $s = 66; case 66: return $24r$3; - /* } else if ($assertType(_ref, ptrType$12, true)[1]) { */ case 8: - x$8 = _ref.$val; - _tuple$7 = $assertType(y, ptrType$12, true); - y$8 = _tuple$7[0]; - /* */ if (!(y$8 === ptrType$12.nil)) { $s = 67; continue; } - /* */ $s = 68; continue; - /* if (!(y$8 === ptrType$12.nil)) { */ case 67: - unionSets = new $global.Map(); - _r$13 = computeUnionTypeSet(ptrType$6.nil, unionSets, 0, x$8); /* */ $s = 69; case 69: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - xset = _r$13; - _r$14 = computeUnionTypeSet(ptrType$6.nil, unionSets, 0, y$8); /* */ $s = 70; case 70: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - yset = _r$14; - _r$15 = xset.terms.equal(yset.terms); /* */ $s = 71; case 71: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - $24r$4 = _r$15; - $s = 72; case 72: return $24r$4; - /* } */ case 68: - $s = 16; continue; - /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 9: - x$9 = _ref.$val; - _tuple$8 = $assertType(y, ptrType$13, true); - y$9 = _tuple$8[0]; - ok$6 = _tuple$8[1]; - /* */ if (ok$6) { $s = 73; continue; } - /* */ $s = 74; continue; - /* if (ok$6) { */ case 73: - _r$16 = x$9.typeSet(); /* */ $s = 75; case 75: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - xset$1 = _r$16; - _r$17 = y$9.typeSet(); /* */ $s = 76; case 76: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - yset$1 = _r$17; - if (!(xset$1.comparable === yset$1.comparable)) { - $s = -1; return false; + if (!((((re.Flags & 1) >>> 0) === 0))) { + b.WriteString(")"); } - _r$18 = xset$1.terms.equal(yset$1.terms); /* */ $s = 79; case 79: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - /* */ if (!_r$18) { $s = 77; continue; } - /* */ $s = 78; continue; - /* if (!_r$18) { */ case 77: - $s = -1; return false; - /* } */ case 78: - a = xset$1.methods; - b = yset$1.methods; - /* */ if (a.$length === b.$length) { $s = 80; continue; } - /* */ $s = 81; continue; - /* if (a.$length === b.$length) { */ case 80: - q = new ifacePair.ptr(x$9, y$9, p); + } else if (_1 === (4)) { + if (!(((_r = re.Rune.$length % 2, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) === 0))) { + b.WriteString("[invalid char class]"); + break; + } + b.WriteRune(91); + if (re.Rune.$length === 0) { + b.WriteString("^\\x00-\\x{10FFFF}"); + } else if (((x = re.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) === 0) && ((x$1 = re.Rune, x$2 = re.Rune.$length - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])) === 1114111) && re.Rune.$length > 2) { + b.WriteRune(94); + i = 1; while (true) { - if (!(!(p === ptrType$23.nil))) { break; } - if (p.identical(q)) { - $s = -1; return true; + if (!(i < (re.Rune.$length - 1 >> 0))) { break; } + _tmp = (x$3 = re.Rune, ((i < 0 || i >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + i])) + 1 >> 0; + _tmp$1 = (x$4 = re.Rune, x$5 = i + 1 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])) - 1 >> 0; + lo = _tmp; + hi = _tmp$1; + escape(b, lo, lo === 45); + if (!((lo === hi))) { + b.WriteRune(45); + escape(b, hi, hi === 45); } - p = p.prev; + i = i + (2) >> 0; + } + } else { + i$1 = 0; + while (true) { + if (!(i$1 < re.Rune.$length)) { break; } + _tmp$2 = (x$6 = re.Rune, ((i$1 < 0 || i$1 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + i$1])); + _tmp$3 = (x$7 = re.Rune, x$8 = i$1 + 1 >> 0, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8])); + lo$1 = _tmp$2; + hi$1 = _tmp$3; + escape(b, lo$1, lo$1 === 45); + if (!((lo$1 === hi$1))) { + b.WriteRune(45); + escape(b, hi$1, hi$1 === 45); + } + i$1 = i$1 + (2) >> 0; } - /* */ if (false) { $s = 82; continue; } - /* */ $s = 83; continue; - /* if (false) { */ case 82: - $r = assertSortedMethods(a); /* */ $s = 84; case 84: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = assertSortedMethods(b); /* */ $s = 85; case 85: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 83: - _ref$5 = a; - _i$4 = 0; - /* while (true) { */ case 86: - /* if (!(_i$4 < _ref$5.$length)) { break; } */ if(!(_i$4 < _ref$5.$length)) { $s = 87; continue; } - i$4 = _i$4; - f$1 = ((_i$4 < 0 || _i$4 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$4]); - g$1 = ((i$4 < 0 || i$4 >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i$4]); - if (!(f$1.object.Id() === g$1.object.Id())) { _v$4 = true; $s = 90; continue s; } - _r$19 = identical(f$1.object.typ, g$1.object.typ, cmpTags, q); /* */ $s = 91; case 91: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - _v$4 = !_r$19; case 90: - /* */ if (_v$4) { $s = 88; continue; } - /* */ $s = 89; continue; - /* if (_v$4) { */ case 88: - $s = -1; return false; - /* } */ case 89: - _i$4++; - $s = 86; continue; - case 87: - $s = -1; return true; - /* } */ case 81: - /* } */ case 74: - $s = 16; continue; - /* } else if ($assertType(_ref, ptrType$28, true)[1]) { */ case 10: - x$10 = _ref.$val; - _tuple$9 = $assertType(y, ptrType$28, true); - y$10 = _tuple$9[0]; - ok$7 = _tuple$9[1]; - /* */ if (ok$7) { $s = 92; continue; } - /* */ $s = 93; continue; - /* if (ok$7) { */ case 92: - _r$20 = identical(x$10.key, y$10.key, cmpTags, p); /* */ $s = 95; case 95: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - if (!(_r$20)) { _v$5 = false; $s = 94; continue s; } - _r$21 = identical(x$10.elem, y$10.elem, cmpTags, p); /* */ $s = 96; case 96: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } - _v$5 = _r$21; case 94: - $24r$5 = _v$5; - $s = 97; case 97: return $24r$5; - /* } */ case 93: - $s = 16; continue; - /* } else if ($assertType(_ref, ptrType$29, true)[1]) { */ case 11: - x$11 = _ref.$val; - _tuple$10 = $assertType(y, ptrType$29, true); - y$11 = _tuple$10[0]; - ok$8 = _tuple$10[1]; - /* */ if (ok$8) { $s = 98; continue; } - /* */ $s = 99; continue; - /* if (ok$8) { */ case 98: - if (!(x$11.dir === y$11.dir)) { _v$6 = false; $s = 100; continue s; } - _r$22 = identical(x$11.elem, y$11.elem, cmpTags, p); /* */ $s = 101; case 101: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _v$6 = _r$22; case 100: - $24r$6 = _v$6; - $s = 102; case 102: return $24r$6; - /* } */ case 99: - $s = 16; continue; - /* } else if ($assertType(_ref, ptrType$9, true)[1]) { */ case 12: - x$12 = _ref.$val; - _tuple$11 = $assertType(y, ptrType$9, true); - y$12 = _tuple$11[0]; - ok$9 = _tuple$11[1]; - /* */ if (ok$9) { $s = 103; continue; } - /* */ $s = 104; continue; - /* if (ok$9) { */ case 103: - xargs = x$12.TypeArgs().list(); - yargs = y$12.TypeArgs().list(); - if (!((xargs.$length === yargs.$length))) { - $s = -1; return false; } - /* */ if (xargs.$length > 0) { $s = 105; continue; } - /* */ $s = 106; continue; - /* if (xargs.$length > 0) { */ case 105: - _r$23 = Identical(x$12.Origin(), y$12.Origin()); /* */ $s = 109; case 109: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - /* */ if (!_r$23) { $s = 107; continue; } - /* */ $s = 108; continue; - /* if (!_r$23) { */ case 107: - $s = -1; return false; - /* } */ case 108: - _ref$6 = xargs; - _i$5 = 0; - /* while (true) { */ case 110: - /* if (!(_i$5 < _ref$6.$length)) { break; } */ if(!(_i$5 < _ref$6.$length)) { $s = 111; continue; } - i$5 = _i$5; - xa = ((_i$5 < 0 || _i$5 >= _ref$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$6.$array[_ref$6.$offset + _i$5]); - _r$24 = Identical(xa, ((i$5 < 0 || i$5 >= yargs.$length) ? ($throwRuntimeError("index out of range"), undefined) : yargs.$array[yargs.$offset + i$5])); /* */ $s = 114; case 114: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - /* */ if (!_r$24) { $s = 112; continue; } - /* */ $s = 113; continue; - /* if (!_r$24) { */ case 112: - $s = -1; return false; - /* } */ case 113: - _i$5++; - $s = 110; continue; - case 111: - $s = -1; return true; - /* } */ case 106: - $s = -1; return x$12.obj === y$12.obj; - /* } */ case 104: - $s = 16; continue; - /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 13: - x$13 = _ref.$val; - $s = 16; continue; - /* } else if (_ref === $ifaceNil) { */ case 14: - x$14 = _ref; - $s = 16; continue; - /* } else { */ case 15: - x$15 = _ref; - unreachable(); - /* } */ case 16: - $s = -1; return false; - /* */ } return; } var $f = {$blk: identical$2, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, _v$2, _v$3, _v$4, _v$5, _v$6, a, b, check, cmpTags, ctxt, f, f$1, g, g$1, i, i$1, i$2, i$3, i$4, i$5, ok, ok$1, ok$2, ok$3, ok$4, ok$5, ok$6, ok$7, ok$8, ok$9, p, q, smap, targs, unionSets, v, w, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9, xa, xargs, xset, xset$1, xtparam, xtparams, y, y$1, y$10, y$11, y$12, y$2, y$3, y$4, y$5, y$6, y$7, y$8, y$9, yargs, ybound, yparams, yresults, yset, yset$1, ytparams, $s};return $f; + b.WriteRune(93); + } else if (_1 === (5)) { + b.WriteString("(?-s:.)"); + } else if (_1 === (6)) { + b.WriteString("(?s:.)"); + } else if (_1 === (7)) { + b.WriteString("(?m:^)"); + } else if (_1 === (8)) { + b.WriteString("(?m:$)"); + } else if (_1 === (9)) { + b.WriteString("\\A"); + } else if (_1 === (10)) { + if (!((((re.Flags & 256) >>> 0) === 0))) { + b.WriteString("(?-m:$)"); + } else { + b.WriteString("\\z"); + } + } else if (_1 === (11)) { + b.WriteString("\\b"); + } else if (_1 === (12)) { + b.WriteString("\\B"); + } else if (_1 === (13)) { + if (!(re.Name === "")) { + b.WriteString("(?P<"); + b.WriteString(re.Name); + b.WriteRune(62); + } else { + b.WriteRune(40); + } + if (!(((x$9 = re.Sub, (0 >= x$9.$length ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + 0])).Op === 2))) { + writeRegexp(b, (x$10 = re.Sub, (0 >= x$10.$length ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + 0]))); + } + b.WriteRune(41); + } else if ((_1 === (14)) || (_1 === (15)) || (_1 === (16)) || (_1 === (17))) { + sub = (x$11 = re.Sub, (0 >= x$11.$length ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + 0])); + if (sub.Op > 13 || (sub.Op === 3) && sub.Rune.$length > 1) { + b.WriteString("(?:"); + writeRegexp(b, sub); + b.WriteString(")"); + } else { + writeRegexp(b, sub); + } + _2 = re.Op; + if (_2 === (14)) { + b.WriteRune(42); + } else if (_2 === (15)) { + b.WriteRune(43); + } else if (_2 === (16)) { + b.WriteRune(63); + } else if (_2 === (17)) { + b.WriteRune(123); + b.WriteString(strconv.Itoa(re.Min)); + if (!((re.Max === re.Min))) { + b.WriteRune(44); + if (re.Max >= 0) { + b.WriteString(strconv.Itoa(re.Max)); + } + } + b.WriteRune(125); + } + if (!((((re.Flags & 32) >>> 0) === 0))) { + b.WriteRune(63); + } + } else if (_1 === (18)) { + _ref$1 = re.Sub; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + sub$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + if (sub$1.Op === 19) { + b.WriteString("(?:"); + writeRegexp(b, sub$1); + b.WriteString(")"); + } else { + writeRegexp(b, sub$1); + } + _i$1++; + } + } else if (_1 === (19)) { + _ref$2 = re.Sub; + _i$2 = 0; + while (true) { + if (!(_i$2 < _ref$2.$length)) { break; } + i$2 = _i$2; + sub$2 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); + if (i$2 > 0) { + b.WriteRune(124); + } + writeRegexp(b, sub$2); + _i$2++; + } + } else { + b.WriteString("> 0))) + ">"); + } + } }; - identicalInstance = function identicalInstance$1(xorig, xargs, yorig, yargs) { - var {$24r, _i, _r$1, _r$2, _ref, i, xa, xargs, xorig, yargs, yorig, $s, $r, $c} = $restore(this, {xorig, xargs, yorig, yargs}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (!((xargs.$length === yargs.$length))) { - $s = -1; return false; + $ptrType(Regexp).prototype.String = function String() { + var b, re; + re = this; + b = new strings.Builder.ptr(ptrType$1.nil, sliceType$5.nil); + writeRegexp(b, re); + return b.String(); + }; + escape = function escape$1(b, r, force) { + var _1, b, force, r, s; + if (unicode.IsPrint(r)) { + if (strings.ContainsRune("\\.+*?()|[]{}^$", r) || force) { + b.WriteRune(92); + } + b.WriteRune(r); + return; + } + switch (0) { default: + _1 = r; + if (_1 === (7)) { + b.WriteString("\\a"); + } else if (_1 === (12)) { + b.WriteString("\\f"); + } else if (_1 === (10)) { + b.WriteString("\\n"); + } else if (_1 === (13)) { + b.WriteString("\\r"); + } else if (_1 === (9)) { + b.WriteString("\\t"); + } else if (_1 === (11)) { + b.WriteString("\\v"); + } else { + if (r < 256) { + b.WriteString("\\x"); + s = strconv.FormatInt((new $Int64(0, r)), 16); + if (s.length === 1) { + b.WriteRune(48); + } + b.WriteString(s); + break; + } + b.WriteString("\\x{"); + b.WriteString(strconv.FormatInt((new $Int64(0, r)), 16)); + b.WriteString("}"); + } + } + }; + $ptrType(Regexp).prototype.MaxCap = function MaxCap() { + var _i, _ref, m, n, re, sub; + re = this; + m = 0; + if (re.Op === 13) { + m = re.Cap; } - _ref = xargs; + _ref = re.Sub; _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - xa = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$1 = Identical(xa, ((i < 0 || i >= yargs.$length) ? ($throwRuntimeError("index out of range"), undefined) : yargs.$array[yargs.$offset + i])); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (!_r$1) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!_r$1) { */ case 3: - $s = -1; return false; - /* } */ case 4: + while (true) { + if (!(_i < _ref.$length)) { break; } + sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + n = sub.MaxCap(); + if (m < n) { + m = n; + } + _i++; + } + return m; + }; + $ptrType(Regexp).prototype.CapNames = function CapNames() { + var names, re; + re = this; + names = $makeSlice(sliceType, (re.MaxCap() + 1 >> 0)); + re.capNames(names); + return names; + }; + $ptrType(Regexp).prototype.capNames = function capNames(names) { + var _i, _ref, names, re, sub, x; + re = this; + if (re.Op === 13) { + (x = re.Cap, ((x < 0 || x >= names.$length) ? ($throwRuntimeError("index out of range"), undefined) : names.$array[names.$offset + x] = re.Name)); + } + _ref = re.Sub; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + sub.capNames(names); _i++; - $s = 1; continue; - case 2: - _r$2 = Identical(xorig, yorig); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 7; case 7: return $24r; - /* */ } return; } var $f = {$blk: identicalInstance$1, $c: true, $r, $24r, _i, _r$1, _r$2, _ref, i, xa, xargs, xorig, yargs, yorig, $s};return $f; + } }; - Default = function Default$1(t) { - var _1, _tuple, ok, t, t$1; - _tuple = $assertType(t, ptrType$4, true); - t$1 = _tuple[0]; - ok = _tuple[1]; - if (ok) { - _1 = t$1.kind; - if (_1 === (19)) { - return (1 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 1]); - } else if (_1 === (20)) { - return (2 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 2]); - } else if (_1 === (21)) { - return universeRune; - } else if (_1 === (22)) { - return (14 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 14]); - } else if (_1 === (23)) { - return (16 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 16]); - } else if (_1 === (24)) { - return (17 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 17]); - } + InstOp.prototype.String = function String$1() { + var i; + i = this.$val; + if (((i >>> 0)) >= ((instOpNames.$length >>> 0))) { + return ""; } - return t; + return ((i < 0 || i >= instOpNames.$length) ? ($throwRuntimeError("index out of range"), undefined) : instOpNames.$array[instOpNames.$offset + i]); }; - $pkg.Default = Default; - NewPointer = function NewPointer$1(elem) { - var elem; - return new Pointer.ptr(elem); + $ptrType(InstOp).prototype.String = function(...$args) { return new InstOp(this.$get()).String(...$args); }; + IsWordChar = function IsWordChar$1(r) { + var r; + return 97 <= r && r <= 122 || 65 <= r && r <= 90 || 48 <= r && r <= 57 || (r === 95); }; - $pkg.NewPointer = NewPointer; - $ptrType(Pointer).prototype.Elem = function Elem$1() { - var p; + $pkg.IsWordChar = IsWordChar; + $ptrType(Prog).prototype.String = function String$2() { + var b, p; p = this; - return p.base; - }; - $ptrType(Pointer).prototype.Underlying = function Underlying$6() { - var t; - t = this; - return t; + b = new strings.Builder.ptr(ptrType$1.nil, sliceType$5.nil); + dumpProg(b, p); + return b.String(); }; - $ptrType(Pointer).prototype.String = function String$14() { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = TypeString(t, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$14, $c: true, $r, $24r, _r$1, t, $s};return $f; + $ptrType(Prog).prototype.skipNop = function skipNop(pc) { + var i, p, pc, x, x$1, x$2; + p = this; + i = (x = p.Inst, ((pc < 0 || pc >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + pc, ptrType$2))); + while (true) { + if (!((i.Op === 6) || (i.Op === 2))) { break; } + i = (x$1 = p.Inst, x$2 = i.Out, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + x$2, ptrType$2))); + } + return i; }; - NewPackage = function NewPackage$1(path, name) { - var {_arg, _arg$1, _r$1, _r$2, name, path, scope, $s, $r, $c} = $restore(this, {path, name}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _arg = $pkg.Universe; - _r$1 = fmt.Sprintf("package %q", new sliceType$6([new $String(path)])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _arg$1 = _r$1; - _r$2 = NewScope(_arg, 0, 0, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - scope = _r$2; - $s = -1; return new Package.ptr(path, name, scope, false, sliceType$24.nil, false, false); - /* */ } return; } var $f = {$blk: NewPackage$1, $c: true, $r, _arg, _arg$1, _r$1, _r$2, name, path, scope, $s};return $f; - }; - $pkg.NewPackage = NewPackage; - $ptrType(Package).prototype.Path = function Path() { - var pkg; - pkg = this; - return pkg.path; - }; - $ptrType(Package).prototype.Name = function Name$1() { - var pkg; - pkg = this; - return pkg.name; - }; - $ptrType(Package).prototype.SetName = function SetName(name) { - var name, pkg; - pkg = this; - pkg.name = name; - }; - $ptrType(Package).prototype.Scope = function Scope$1() { - var pkg; - pkg = this; - if (!(pkg === ptrType$1.nil)) { - return pkg.scope; - } - return $pkg.Universe; - }; - $ptrType(Package).prototype.Complete = function Complete() { - var pkg; - pkg = this; - return pkg.complete; - }; - $ptrType(Package).prototype.MarkComplete = function MarkComplete() { - var pkg; - pkg = this; - pkg.complete = true; - }; - $ptrType(Package).prototype.Imports = function Imports() { - var pkg; - pkg = this; - return pkg.imports; - }; - $ptrType(Package).prototype.SetImports = function SetImports(list$2) { - var list$2, pkg; - pkg = this; - pkg.imports = list$2; - }; - $ptrType(Package).prototype.String = function String$15() { - var {$24r, _r$1, pkg, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - pkg = this; - _r$1 = fmt.Sprintf("package %s (%q)", new sliceType$6([new $String(pkg.name), new $String(pkg.path)])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$15, $c: true, $r, $24r, _r$1, pkg, $s};return $f; + $ptrType(Inst).prototype.op = function op() { + var _1, i, op$1; + i = this; + op$1 = i.Op; + _1 = op$1; + if ((_1 === (8)) || (_1 === (9)) || (_1 === (10))) { + op$1 = 7; + } + return op$1; }; - $ptrType(operand).prototype.Pos = function Pos$2() { - var {$24r, _r$1, x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - if ($interfaceIsEqual(x.expr, $ifaceNil)) { - $s = -1; return 0; + $ptrType(Prog).prototype.Prefix = function Prefix() { + var _tmp, _tmp$1, _tmp$2, _tmp$3, buf, complete, i, p, prefix, x, x$1; + prefix = ""; + complete = false; + p = this; + i = p.skipNop(((p.Start >>> 0))); + if (!((i.op() === 7)) || !((i.Rune.$length === 1))) { + _tmp = ""; + _tmp$1 = i.Op === 4; + prefix = _tmp; + complete = _tmp$1; + return [prefix, complete]; } - _r$1 = x.expr.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Pos$2, $c: true, $r, $24r, _r$1, x, $s};return $f; + buf = new strings.Builder.ptr(ptrType$1.nil, sliceType$5.nil); + while (true) { + if (!((i.op() === 7) && (i.Rune.$length === 1) && (((((i.Arg << 16 >>> 16)) & 1) >>> 0) === 0) && !(((x = i.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) === 65533)))) { break; } + buf.WriteRune((x$1 = i.Rune, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0]))); + i = p.skipNop(i.Out); + } + _tmp$2 = buf.String(); + _tmp$3 = i.Op === 4; + prefix = _tmp$2; + complete = _tmp$3; + return [prefix, complete]; }; - operandString = function operandString$1(x, qf) { - var {_1, _2, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, buf, expr, hasType, intro, qf, s, tpar, x, x$1, x$2, $s, $r, $c} = $restore(this, {x, qf}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - buf = [buf]; - if ((x.mode === 7) && $interfaceIsEqual(x.typ, (25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25]))) { - $s = -1; return "nil"; + $ptrType(Prog).prototype.StartCond = function StartCond() { + var _1, flag, i, p, pc, x, x$1; + p = this; + flag = 0; + pc = ((p.Start >>> 0)); + i = (x = p.Inst, ((pc < 0 || pc >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + pc, ptrType$2))); + Loop: + while (true) { + _1 = i.Op; + if (_1 === (3)) { + flag = (flag | (((i.Arg << 24 >>> 24)))) >>> 0; + } else if (_1 === (5)) { + return 255; + } else if ((_1 === (2)) || (_1 === (6))) { + } else { + break Loop; + } + pc = i.Out; + i = (x$1 = p.Inst, ((pc < 0 || pc >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + pc, ptrType$2))); } - buf[0] = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); - expr = ""; - /* */ if (!($interfaceIsEqual(x.expr, $ifaceNil))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!($interfaceIsEqual(x.expr, $ifaceNil))) { */ case 1: - _r$1 = ExprString(x.expr); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - expr = _r$1; - $s = 3; continue; - /* } else { */ case 2: - _1 = x.mode; - /* */ if (_1 === (2)) { $s = 6; continue; } - /* */ if (_1 === (3)) { $s = 7; continue; } - /* */ if (_1 === (4)) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (_1 === (2)) { */ case 6: - expr = (x$1 = x.id, ((x$1 < 0 || x$1 >= predeclaredFuncs.length) ? ($throwRuntimeError("index out of range"), undefined) : predeclaredFuncs[x$1])).name; - $s = 9; continue; - /* } else if (_1 === (3)) { */ case 7: - _r$2 = TypeString(x.typ, qf); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - expr = _r$2; - $s = 9; continue; - /* } else if (_1 === (4)) { */ case 8: - _r$3 = x.val.String(); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - expr = _r$3; - /* } */ case 9: - case 5: - /* } */ case 3: - if (!(expr === "")) { - buf[0].WriteString(expr); - buf[0].WriteString(" ("); + return flag; + }; + $ptrType(Inst).prototype.MatchRune = function MatchRune(r) { + var i, r; + i = this; + return !((i.MatchRunePos(r) === -1)); + }; + $ptrType(Inst).prototype.MatchRunePos = function MatchRunePos(r) { + var _1, _q, _q$1, _q$2, c, hi, i, j, lo, m, r, r0, r1, rune, x, x$1, x$2; + i = this; + rune = i.Rune; + _1 = rune.$length; + if (_1 === (0)) { + return -1; + } else if (_1 === (1)) { + r0 = (0 >= rune.$length ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + 0]); + if (r === r0) { + return 0; + } + if (!((((((i.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { + r1 = unicode.SimpleFold(r0); + while (true) { + if (!(!((r1 === r0)))) { break; } + if (r === r1) { + return 0; + } + r1 = unicode.SimpleFold(r1); + } + } + return -1; + } else if (_1 === (2)) { + if (r >= (0 >= rune.$length ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + 0]) && r <= (1 >= rune.$length ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + 1])) { + return 0; + } + return -1; + } else if ((_1 === (4)) || (_1 === (6)) || (_1 === (8))) { + j = 0; + while (true) { + if (!(j < rune.$length)) { break; } + if (r < ((j < 0 || j >= rune.$length) ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + j])) { + return -1; + } + if (r <= (x = j + 1 >> 0, ((x < 0 || x >= rune.$length) ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + x]))) { + return (_q = j / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + } + j = j + (2) >> 0; + } + return -1; } - hasType = false; - switch (0) { default: - _2 = x.mode; - if ((_2 === (0)) || (_2 === (1)) || (_2 === (2)) || (_2 === (3))) { - } else if (!($interfaceIsEqual(x.typ, $ifaceNil))) { - if (isUntyped(x.typ)) { - buf[0].WriteString($assertType(x.typ, ptrType$4).name); - buf[0].WriteByte(32); - break; + lo = 0; + hi = (_q$1 = rune.$length / 2, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")); + while (true) { + if (!(lo < hi)) { break; } + m = lo + (_q$2 = ((hi - lo >> 0)) / 2, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero")) >> 0; + c = (x$1 = $imul(2, m), ((x$1 < 0 || x$1 >= rune.$length) ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + x$1])); + if (c <= r) { + if (r <= (x$2 = ($imul(2, m)) + 1 >> 0, ((x$2 < 0 || x$2 >= rune.$length) ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + x$2]))) { + return m; } - hasType = true; + lo = m + 1 >> 0; + } else { + hi = m; } } - buf[0].WriteString((x$2 = x.mode, ((x$2 < 0 || x$2 >= operandModeString.length) ? ($throwRuntimeError("index out of range"), undefined) : operandModeString[x$2]))); - /* */ if (x.mode === 4) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (x.mode === 4) { */ case 12: - _r$4 = x.val.String(); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - s = _r$4; - if (!(s === expr)) { - buf[0].WriteByte(32); - buf[0].WriteString(s); + return -1; + }; + $ptrType(Inst).prototype.MatchEmptyWidth = function MatchEmptyWidth(before, after) { + var _1, after, before, i; + i = this; + _1 = ((i.Arg << 24 >>> 24)); + if (_1 === (1)) { + return (before === 10) || (before === -1); + } else if (_1 === (2)) { + return (after === 10) || (after === -1); + } else if (_1 === (4)) { + return before === -1; + } else if (_1 === (8)) { + return after === -1; + } else if (_1 === (16)) { + return !(IsWordChar(before) === IsWordChar(after)); + } else if (_1 === (32)) { + return IsWordChar(before) === IsWordChar(after); + } + $panic(new $String("unknown empty width arg")); + }; + $ptrType(Inst).prototype.String = function String$3() { + var b, i; + i = this; + b = new strings.Builder.ptr(ptrType$1.nil, sliceType$5.nil); + dumpInst(b, i); + return b.String(); + }; + bw = function bw$1(b, args) { + var _i, _ref, args, b, s; + _ref = args; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + b.WriteString(s); + _i++; + } + }; + dumpProg = function dumpProg$1(b, p) { + var _i, _ref, b, i, j, p, pc, x; + _ref = p.Inst; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + j = _i; + i = (x = p.Inst, ((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + j, ptrType$2))); + pc = strconv.Itoa(j); + if (pc.length < 3) { + b.WriteString($substring(" ", pc.length)); } - /* } */ case 13: - /* */ if (hasType) { $s = 15; continue; } - /* */ $s = 16; continue; - /* if (hasType) { */ case 15: - /* */ if (!($interfaceIsEqual(x.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (!($interfaceIsEqual(x.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { */ case 17: - intro = ""; - _r$5 = isGeneric(x.typ); /* */ $s = 23; case 23: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* */ if (_r$5) { $s = 20; continue; } - /* */ $s = 21; continue; - /* if (_r$5) { */ case 20: - intro = " of generic type "; - $s = 22; continue; - /* } else { */ case 21: - intro = " of type "; - /* } */ case 22: - buf[0].WriteString(intro); - $r = WriteType(buf[0], x.typ, qf); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _tuple = $assertType(x.typ, ptrType$14, true); - tpar = _tuple[0]; - /* */ if (!(tpar === ptrType$14.nil)) { $s = 25; continue; } - /* */ $s = 26; continue; - /* if (!(tpar === ptrType$14.nil)) { */ case 25: - buf[0].WriteString(" constrained by "); - $r = WriteType(buf[0], tpar.bound, qf); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$6 = hasEmptyTypeset(tpar); /* */ $s = 30; case 30: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - /* */ if (_r$6) { $s = 28; continue; } - /* */ $s = 29; continue; - /* if (_r$6) { */ case 28: - buf[0].WriteString(" with empty type set"); - /* } */ case 29: - /* } */ case 26: - $s = 19; continue; - /* } else { */ case 18: - buf[0].WriteString(" with invalid type"); - /* } */ case 19: - /* } */ case 16: - if (!(expr === "")) { - buf[0].WriteByte(41); + if (j === p.Start) { + pc = pc + ("*"); + } + bw(b, new sliceType([pc, "\t"])); + dumpInst(b, i); + bw(b, new sliceType(["\n"])); + _i++; } - $s = -1; return buf[0].String(); - /* */ } return; } var $f = {$blk: operandString$1, $c: true, $r, _1, _2, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, buf, expr, hasType, intro, qf, s, tpar, x, x$1, x$2, $s};return $f; }; - $ptrType(operand).prototype.String = function String$16() { - var {$24r, _r$1, x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - _r$1 = operandString(x, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$16, $c: true, $r, $24r, _r$1, x, $s};return $f; + u32 = function u32$1(i) { + var i; + return strconv.FormatUint((new $Uint64(0, i)), 10); }; - $ptrType(operand).prototype.setConst = function setConst(tok, lit) { - var {_1, _r$1, _r$2, kind, lit, tok, val, x, $s, $r, $c} = $restore(this, {tok, lit}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - kind = 0; - _1 = tok; - if (_1 === (5)) { - kind = 20; + dumpInst = function dumpInst$1(b, i) { + var _1, b, i; + _1 = i.Op; + if (_1 === (0)) { + bw(b, new sliceType(["alt -> ", u32(i.Out), ", ", u32(i.Arg)])); + } else if (_1 === (1)) { + bw(b, new sliceType(["altmatch -> ", u32(i.Out), ", ", u32(i.Arg)])); + } else if (_1 === (2)) { + bw(b, new sliceType(["cap ", u32(i.Arg), " -> ", u32(i.Out)])); + } else if (_1 === (3)) { + bw(b, new sliceType(["empty ", u32(i.Arg), " -> ", u32(i.Out)])); + } else if (_1 === (4)) { + bw(b, new sliceType(["match"])); + } else if (_1 === (5)) { + bw(b, new sliceType(["fail"])); } else if (_1 === (6)) { - kind = 22; + bw(b, new sliceType(["nop -> ", u32(i.Out)])); } else if (_1 === (7)) { - kind = 23; + if (i.Rune === sliceType$1.nil) { + bw(b, new sliceType(["rune "])); + } + bw(b, new sliceType(["rune ", strconv.QuoteToASCII(($runesToString(i.Rune)))])); + if (!((((((i.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { + bw(b, new sliceType(["/i"])); + } + bw(b, new sliceType([" -> ", u32(i.Out)])); } else if (_1 === (8)) { - kind = 21; + bw(b, new sliceType(["rune1 ", strconv.QuoteToASCII(($runesToString(i.Rune))), " -> ", u32(i.Out)])); } else if (_1 === (9)) { - kind = 24; + bw(b, new sliceType(["any -> ", u32(i.Out)])); + } else if (_1 === (10)) { + bw(b, new sliceType(["anynotnl -> ", u32(i.Out)])); + } + }; + $ptrType(Error).prototype.Error = function Error$1() { + var e; + e = this; + return "error parsing regexp: " + new ErrorCode(e.Code).String() + ": `" + e.Expr + "`"; + }; + ErrorCode.prototype.String = function String$4() { + var e; + e = this.$val; + return (e); + }; + $ptrType(ErrorCode).prototype.String = function(...$args) { return new ErrorCode(this.$get()).String(...$args); }; + $ptrType(parser).prototype.newRegexp = function newRegexp(op$1) { + var op$1, p, re; + p = this; + re = p.free; + if (!(re === ptrType.nil)) { + p.free = re.Sub0[0]; + Regexp.copy((re === ptrType.nil && $throwNilPointerError(), re), new Regexp.ptr(0, 0, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, "")); } else { - unreachable(); + re = new Regexp.ptr(0, 0, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, ""); + p.numRegexp = p.numRegexp + (1) >> 0; } - _r$1 = constant.MakeFromLiteral(lit, tok, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - val = _r$1; - _r$2 = val.Kind(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (_r$2 === 0) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (_r$2 === 0) { */ case 2: - x.mode = 0; - x.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - $s = -1; return; - /* } */ case 3: - x.mode = 4; - x.typ = ((kind < 0 || kind >= $pkg.Typ.$length) ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + kind]); - x.val = val; - $s = -1; return; - /* */ } return; } var $f = {$blk: setConst, $c: true, $r, _1, _r$1, _r$2, kind, lit, tok, val, x, $s};return $f; + re.Op = op$1; + return re; }; - $ptrType(operand).prototype.isNil = function isNil$1() { - var x; - x = this; - return (x.mode === 7) && $interfaceIsEqual(x.typ, (25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25])); + $ptrType(parser).prototype.reuse = function reuse(re) { + var p, re; + p = this; + if (!(p.height === false)) { + $mapDelete(p.height, ptrType.keyFor(re)); + } + re.Sub0[0] = p.free; + p.free = re; }; - $ptrType(operand).prototype.assignableTo = function assignableTo(check, T, cause) { - var {$24r, T, Tc, Tp, Tu, V, Vc, Vi, Vp, Vu, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _v, _v$1, cause, check, code, code$1, errorf, newType, ok, ok$1, ok$2, ok$3, ok$4, x, x$1, $s, $r, $c} = $restore(this, {check, T, cause}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - T = [T]; - Tp = [Tp]; - Vp = [Vp]; - cause = [cause]; - check = [check]; - code = [code]; - code$1 = [code$1]; - errorf = [errorf]; - ok = [ok]; - ok$1 = [ok$1]; - x = [x]; - x$1 = [x$1]; - x[0] = this; - if ((x[0].mode === 0) || $interfaceIsEqual(T[0], (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { - $s = -1; return [true, 0]; - } - V = x[0].typ; - _r$1 = Identical(V, T[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (_r$1) { */ case 1: - $s = -1; return [true, 0]; - /* } */ case 2: - _r$2 = under(V); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - Vu = _r$2; - _r$3 = under(T[0]); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - Tu = _r$3; - _tuple = $assertType(V, ptrType$14, true); - Vp[0] = _tuple[0]; - _tuple$1 = $assertType(T[0], ptrType$14, true); - Tp[0] = _tuple$1[0]; - /* */ if (isUntyped(Vu)) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (isUntyped(Vu)) { */ case 6: - $r = assert(Vp[0] === ptrType$14.nil); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!(Tp[0] === ptrType$14.nil)) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (!(Tp[0] === ptrType$14.nil)) { */ case 9: - _r$4 = Tp[0].is((function(T, Tp, Vp, cause, check, code, code$1, errorf, ok, ok$1, x, x$1) { return function operand·assignableTo·func1(t) { - var {_r$4, _tuple$2, newType, t, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (t === ptrType$5.nil) { - $s = -1; return false; - } - _r$4 = check[0].implicitTypeAndValue(x[0], t.typ); /* */ $s = 1; case 1: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _tuple$2 = _r$4; - newType = _tuple$2[0]; - $s = -1; return !($interfaceIsEqual(newType, $ifaceNil)); - /* */ } return; } var $f = {$blk: operand·assignableTo·func1, $c: true, $r, _r$4, _tuple$2, newType, t, $s};return $f; - }; })(T, Tp, Vp, cause, check, code, code$1, errorf, ok, ok$1, x, x$1)); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $24r = [_r$4, 23]; - $s = 12; case 12: return $24r; - /* } */ case 10: - _r$5 = check[0].implicitTypeAndValue(x[0], T[0]); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _tuple$2 = _r$5; - newType = _tuple$2[0]; - $s = -1; return [!($interfaceIsEqual(newType, $ifaceNil)), 23]; - /* } */ case 7: - _r$6 = Identical(Vu, Tu); /* */ $s = 16; case 16: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - /* */ if (_r$6 && (!hasName(V) || !hasName(T[0])) && Vp[0] === ptrType$14.nil && Tp[0] === ptrType$14.nil) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (_r$6 && (!hasName(V) || !hasName(T[0])) && Vp[0] === ptrType$14.nil && Tp[0] === ptrType$14.nil) { */ case 14: - $s = -1; return [true, 0]; - /* } */ case 15: - _tuple$3 = $assertType(Tu, ptrType$13, true); - ok$2 = _tuple$3[1]; - if (ok$2 && Tp[0] === ptrType$14.nil) { _v = true; $s = 19; continue s; } - _r$7 = isInterfacePtr(Tu); /* */ $s = 20; case 20: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _v = _r$7; case 19: - /* */ if (_v) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (_v) { */ case 17: - _r$8 = check[0].implements$(V, T[0], false, cause[0]); /* */ $s = 23; case 23: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - /* */ if (!_r$8) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if (!_r$8) { */ case 21: - $s = -1; return [false, 21]; - /* } */ case 22: - $s = -1; return [true, 0]; - /* } */ case 18: - _tuple$4 = $assertType(Vu, ptrType$13, true); - Vi = _tuple$4[0]; - /* */ if (!(Vi === ptrType$13.nil) && Vp[0] === ptrType$14.nil) { $s = 24; continue; } - /* */ $s = 25; continue; - /* if (!(Vi === ptrType$13.nil) && Vp[0] === ptrType$14.nil) { */ case 24: - _r$9 = check[0].implements$(T[0], V, false, ptrType$34.nil); /* */ $s = 28; case 28: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - /* */ if (_r$9) { $s = 26; continue; } - /* */ $s = 27; continue; - /* if (_r$9) { */ case 26: - if (!(cause[0] === ptrType$34.nil)) { - cause[0].$set("need type assertion"); + $ptrType(parser).prototype.checkLimits = function checkLimits(re) { + var p, re; + p = this; + if (p.numRunes > 33554432) { + $panic(new ErrorCode("expression too large")); + } + p.checkSize(re); + p.checkHeight(re); + }; + $ptrType(parser).prototype.checkSize = function checkSize(re) { + var _i, _ref, n, p, re, re$1, x, x$1, x$2, x$3, x$4, x$5; + p = this; + if (p.size === false) { + if ((x = p.repeats, (x.$high === 0 && x.$low === 0))) { + p.repeats = new $Int64(0, 1); + } + if (re.Op === 17) { + n = re.Max; + if (n === -1) { + n = re.Min; } - $s = -1; return [false, 23]; - /* } */ case 27: - /* } */ case 25: - _tuple$5 = $assertType(Vu, ptrType$29, true); - Vc = _tuple$5[0]; - ok$3 = _tuple$5[1]; - /* */ if (ok$3 && (Vc.dir === 0)) { $s = 29; continue; } - /* */ $s = 30; continue; - /* if (ok$3 && (Vc.dir === 0)) { */ case 29: - _tuple$6 = $assertType(Tu, ptrType$29, true); - Tc = _tuple$6[0]; - ok$4 = _tuple$6[1]; - if (!(ok$4)) { _v$1 = false; $s = 33; continue s; } - _r$10 = Identical(Vc.elem, Tc.elem); /* */ $s = 34; case 34: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _v$1 = _r$10; case 33: - /* */ if (_v$1) { $s = 31; continue; } - /* */ $s = 32; continue; - /* if (_v$1) { */ case 31: - $s = -1; return [!hasName(V) || !hasName(T[0]), 22]; - /* } */ case 32: - /* } */ case 30: - if (Vp[0] === ptrType$14.nil && Tp[0] === ptrType$14.nil) { - $s = -1; return [false, 23]; + if (n <= 0) { + n = 1; + } + if ((x$1 = (new $Int64(0, n)), x$2 = $div64(new $Int64(0, 3355443), p.repeats, false), (x$1.$high > x$2.$high || (x$1.$high === x$2.$high && x$1.$low > x$2.$low)))) { + p.repeats = new $Int64(0, 3355443); + } else { + p.repeats = $mul64(p.repeats, ((new $Int64(0, n)))); + } + } + if ((x$3 = (new $Int64(0, p.numRegexp)), x$4 = $div64(new $Int64(0, 3355443), p.repeats, false), (x$3.$high < x$4.$high || (x$3.$high === x$4.$high && x$3.$low < x$4.$low)))) { + return; + } + p.size = new $global.Map(); + _ref = p.stack; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + re$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + p.checkSize(re$1); + _i++; + } } - errorf[0] = (function(T, Tp, Vp, cause, check, code, code$1, errorf, ok, ok$1, x, x$1) { return function operand·assignableTo·func2(format, args) { - var {_r$11, args, format, msg, $s, $r, $c} = $restore(this, {format, args}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - /* */ if (!(check[0] === ptrType$6.nil) && !(cause[0] === ptrType$34.nil)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(check[0] === ptrType$6.nil) && !(cause[0] === ptrType$34.nil)) { */ case 1: - _r$11 = check[0].sprintf(format, args); /* */ $s = 3; case 3: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - msg = _r$11; - if (!(cause[0].$get() === "")) { - msg = msg + ("\n\t" + cause[0].$get()); - } - cause[0].$set(msg); - /* } */ case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: operand·assignableTo·func2, $c: true, $r, _r$11, args, format, msg, $s};return $f; - }; })(T, Tp, Vp, cause, check, code, code$1, errorf, ok, ok$1, x, x$1); - /* */ if (!hasName(V) && !(Tp[0] === ptrType$14.nil)) { $s = 35; continue; } - /* */ $s = 36; continue; - /* if (!hasName(V) && !(Tp[0] === ptrType$14.nil)) { */ case 35: - ok[0] = false; - code[0] = 23; - _r$11 = Tp[0].is((function(T, Tp, Vp, cause, check, code, code$1, errorf, ok, ok$1, x, x$1) { return function operand·assignableTo·func3(T$1) { - var {T$1, _r$11, _tuple$7, $s, $r, $c} = $restore(this, {T$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (T$1 === ptrType$5.nil) { - $s = -1; return false; - } - _r$11 = x[0].assignableTo(check[0], T$1.typ, cause[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _tuple$7 = _r$11; - ok[0] = _tuple$7[0]; - code[0] = _tuple$7[1]; - /* */ if (!ok[0]) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!ok[0]) { */ case 2: - $r = errorf[0]("cannot assign %s to %s (in %s)", new sliceType$6([x[0].typ, T$1.typ, Tp[0]])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return false; - /* } */ case 3: - $s = -1; return true; - /* */ } return; } var $f = {$blk: operand·assignableTo·func3, $c: true, $r, T$1, _r$11, _tuple$7, $s};return $f; - }; })(T, Tp, Vp, cause, check, code, code$1, errorf, ok, ok$1, x, x$1)); /* */ $s = 37; case 37: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _r$11; - $s = -1; return [ok[0], code[0]]; - /* } */ case 36: - /* */ if (!(Vp[0] === ptrType$14.nil) && !hasName(T[0])) { $s = 38; continue; } - /* */ $s = 39; continue; - /* if (!(Vp[0] === ptrType$14.nil) && !hasName(T[0])) { */ case 38: - x$1[0] = $clone(x[0], operand); - ok$1[0] = false; - code$1[0] = 23; - _r$12 = Vp[0].is((function(T, Tp, Vp, cause, check, code, code$1, errorf, ok, ok$1, x, x$1) { return function operand·assignableTo·func4(V$1) { - var {V$1, _r$12, _tuple$7, $s, $r, $c} = $restore(this, {V$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (V$1 === ptrType$5.nil) { - $s = -1; return false; + if ((x$5 = p.calcSize(re, true), (x$5.$high > 0 || (x$5.$high === 0 && x$5.$low > 3355443)))) { + $panic(new ErrorCode("expression too large")); + } + }; + $ptrType(parser).prototype.calcSize = function calcSize(re, force) { + var _1, _entry, _i, _i$1, _key, _ref, _ref$1, _tuple, force, ok, p, re, size, size$1, sub, sub$1, sub$2, x, x$1, x$10, x$11, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + p = this; + if (!force) { + _tuple = (_entry = $mapIndex(p.size,ptrType.keyFor(re)), _entry !== undefined ? [_entry.v, true] : [new $Int64(0, 0), false]); + size = _tuple[0]; + ok = _tuple[1]; + if (ok) { + return size; + } + } + size$1 = new $Int64(0, 0); + switch (0) { default: + _1 = re.Op; + if (_1 === (3)) { + size$1 = (new $Int64(0, re.Rune.$length)); + } else if ((_1 === (13)) || (_1 === (14))) { + size$1 = (x = p.calcSize((x$1 = re.Sub, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])), false), new $Int64(0 + x.$high, 2 + x.$low)); + } else if ((_1 === (15)) || (_1 === (16))) { + size$1 = (x$2 = p.calcSize((x$3 = re.Sub, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])), false), new $Int64(0 + x$2.$high, 1 + x$2.$low)); + } else if (_1 === (18)) { + _ref = re.Sub; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + size$1 = (x$4 = p.calcSize(sub, false), new $Int64(size$1.$high + x$4.$high, size$1.$low + x$4.$low)); + _i++; + } + } else if (_1 === (19)) { + _ref$1 = re.Sub; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + sub$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + size$1 = (x$5 = p.calcSize(sub$1, false), new $Int64(size$1.$high + x$5.$high, size$1.$low + x$5.$low)); + _i$1++; + } + if (re.Sub.$length > 1) { + size$1 = (x$6 = (x$7 = (new $Int64(0, re.Sub.$length)), new $Int64(x$7.$high - 0, x$7.$low - 1)), new $Int64(size$1.$high + x$6.$high, size$1.$low + x$6.$low)); + } + } else if (_1 === (17)) { + sub$2 = p.calcSize((x$8 = re.Sub, (0 >= x$8.$length ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + 0])), false); + if (re.Max === -1) { + if (re.Min === 0) { + size$1 = new $Int64(0 + sub$2.$high, 2 + sub$2.$low); + } else { + size$1 = (x$9 = $mul64((new $Int64(0, re.Min)), sub$2), new $Int64(0 + x$9.$high, 1 + x$9.$low)); } - x$1[0].typ = V$1.typ; - _r$12 = x$1[0].assignableTo(check[0], T[0], cause[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _tuple$7 = _r$12; - ok$1[0] = _tuple$7[0]; - code$1[0] = _tuple$7[1]; - /* */ if (!ok$1[0]) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!ok$1[0]) { */ case 2: - $r = errorf[0]("cannot assign %s (in %s) to %s", new sliceType$6([V$1.typ, Vp[0], T[0]])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return false; - /* } */ case 3: - $s = -1; return true; - /* */ } return; } var $f = {$blk: operand·assignableTo·func4, $c: true, $r, V$1, _r$12, _tuple$7, $s};return $f; - }; })(T, Tp, Vp, cause, check, code, code$1, errorf, ok, ok$1, x, x$1)); /* */ $s = 40; case 40: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _r$12; - $s = -1; return [ok$1[0], code$1[0]]; - /* } */ case 39: - $s = -1; return [false, 23]; - /* */ } return; } var $f = {$blk: assignableTo, $c: true, $r, $24r, T, Tc, Tp, Tu, V, Vc, Vi, Vp, Vu, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _v, _v$1, cause, check, code, code$1, errorf, newType, ok, ok$1, ok$2, ok$3, ok$4, x, x$1, $s};return $f; + break; + } + size$1 = (x$10 = $mul64((new $Int64(0, re.Max)), sub$2), x$11 = (new $Int64(0, (re.Max - re.Min >> 0))), new $Int64(x$10.$high + x$11.$high, x$10.$low + x$11.$low)); + } + } + if ((size$1.$high < 0 || (size$1.$high === 0 && size$1.$low < 1))) { + size$1 = new $Int64(0, 1); + } + _key = re; (p.size || $throwRuntimeError("assignment to entry in nil map")).set(ptrType.keyFor(_key), { k: _key, v: size$1 }); + return size$1; }; - $ptrType(objset).prototype.insert = function insert$1(obj) { - var {_entry, _key, _r$1, alt, id, obj, s, $s, $r, $c} = $restore(this, {obj}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - s = this; - _r$1 = obj.Id(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - id = _r$1; - alt = (_entry = $mapIndex((s.$get()),$String.keyFor(id)), _entry !== undefined ? _entry.v : $ifaceNil); - if (!($interfaceIsEqual(alt, $ifaceNil))) { - $s = -1; return alt; + $ptrType(parser).prototype.checkHeight = function checkHeight(re) { + var _i, _ref, p, re, re$1; + p = this; + if (p.numRegexp < 1000) { + return; + } + if (p.height === false) { + p.height = new $global.Map(); + _ref = p.stack; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + re$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + p.checkHeight(re$1); + _i++; + } } - if (s.$get() === false) { - s.$set(new $global.Map()); + if (p.calcHeight(re, true) > 1000) { + $panic(new ErrorCode("expression nests too deeply")); } - _key = id; (s.$get() || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: obj }); - $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: insert$1, $c: true, $r, _entry, _key, _r$1, alt, id, obj, s, $s};return $f; }; - Id = function Id$2(pkg, name) { - var name, path, pkg; - if (token.IsExported(name)) { - return name; + $ptrType(parser).prototype.calcHeight = function calcHeight(re, force) { + var _entry, _i, _key, _ref, _tuple, force, h, h$1, hsub, ok, p, re, sub; + p = this; + if (!force) { + _tuple = (_entry = $mapIndex(p.height,ptrType.keyFor(re)), _entry !== undefined ? [_entry.v, true] : [0, false]); + h = _tuple[0]; + ok = _tuple[1]; + if (ok) { + return h; + } } - path = "_"; - if (!(pkg === ptrType$1.nil) && !(pkg.path === "")) { - path = pkg.path; + h$1 = 1; + _ref = re.Sub; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + hsub = p.calcHeight(sub, false); + if (h$1 < (1 + hsub >> 0)) { + h$1 = 1 + hsub >> 0; + } + _i++; } - return path + "." + name; + _key = re; (p.height || $throwRuntimeError("assignment to entry in nil map")).set(ptrType.keyFor(_key), { k: _key, v: h$1 }); + return h$1; }; - $pkg.Id = Id; - color.prototype.String = function String$17() { - var _1, c; - c = this.$val; - _1 = c; - if (_1 === (0)) { - return "white"; - } else if (_1 === (1)) { - return "black"; + $ptrType(parser).prototype.push = function push(re) { + var p, re, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + p = this; + p.numRunes = p.numRunes + (re.Rune.$length) >> 0; + if ((re.Op === 4) && (re.Rune.$length === 2) && ((x = re.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) === (x$1 = re.Rune, (1 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 1])))) { + if (p.maybeConcat((x$16 = re.Rune, (0 >= x$16.$length ? ($throwRuntimeError("index out of range"), undefined) : x$16.$array[x$16.$offset + 0])), (p.flags & ~1) << 16 >>> 16)) { + return ptrType.nil; + } + re.Op = 3; + re.Rune = $subslice(re.Rune, 0, 1); + re.Flags = (p.flags & ~1) << 16 >>> 16; + } else if ((re.Op === 4) && (re.Rune.$length === 4) && ((x$2 = re.Rune, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])) === (x$3 = re.Rune, (1 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 1]))) && ((x$4 = re.Rune, (2 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 2])) === (x$5 = re.Rune, (3 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 3]))) && (unicode.SimpleFold((x$6 = re.Rune, (0 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + 0]))) === (x$7 = re.Rune, (2 >= x$7.$length ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + 2]))) && (unicode.SimpleFold((x$8 = re.Rune, (2 >= x$8.$length ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + 2]))) === (x$9 = re.Rune, (0 >= x$9.$length ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + 0]))) || (re.Op === 4) && (re.Rune.$length === 2) && (((x$10 = re.Rune, (0 >= x$10.$length ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + 0])) + 1 >> 0) === (x$11 = re.Rune, (1 >= x$11.$length ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + 1]))) && (unicode.SimpleFold((x$12 = re.Rune, (0 >= x$12.$length ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + 0]))) === (x$13 = re.Rune, (1 >= x$13.$length ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + 1]))) && (unicode.SimpleFold((x$14 = re.Rune, (1 >= x$14.$length ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + 1]))) === (x$15 = re.Rune, (0 >= x$15.$length ? ($throwRuntimeError("index out of range"), undefined) : x$15.$array[x$15.$offset + 0])))) { + if (p.maybeConcat((x$17 = re.Rune, (0 >= x$17.$length ? ($throwRuntimeError("index out of range"), undefined) : x$17.$array[x$17.$offset + 0])), (p.flags | 1) >>> 0)) { + return ptrType.nil; + } + re.Op = 3; + re.Rune = $subslice(re.Rune, 0, 1); + re.Flags = (p.flags | 1) >>> 0; } else { - return "grey"; + p.maybeConcat(-1, 0); } + p.stack = $append(p.stack, re); + p.checkLimits(re); + return re; }; - $ptrType(color).prototype.String = function(...$args) { return new color(this.$get()).String(...$args); }; - colorFor = function colorFor$1(t) { - var t; - if (!($interfaceIsEqual(t, $ifaceNil))) { - return 1; + $ptrType(parser).prototype.maybeConcat = function maybeConcat(r, flags) { + var flags, n, p, r, re1, re2, x, x$1, x$2, x$3, x$4; + p = this; + n = p.stack.$length; + if (n < 2) { + return false; } - return 0; - }; - $ptrType(object).prototype.Parent = function Parent$2() { - var obj; - obj = this; - return obj.parent; - }; - $ptrType(object).prototype.Pos = function Pos$3() { - var obj; - obj = this; - return obj.pos; - }; - $ptrType(object).prototype.Pkg = function Pkg$1() { - var obj; - obj = this; - return obj.pkg; - }; - $ptrType(object).prototype.Name = function Name$2() { - var obj; - obj = this; - return obj.name; - }; - $ptrType(object).prototype.Type = function Type$4() { - var obj; - obj = this; - return obj.typ; - }; - $ptrType(object).prototype.Exported = function Exported$1() { - var obj; - obj = this; - return token.IsExported(obj.name); - }; - $ptrType(object).prototype.Id = function Id$3() { - var obj; - obj = this; - return Id(obj.pkg, obj.name); - }; - $ptrType(object).prototype.String = function String$18() { - var obj; - obj = this; - $panic(new $String("abstract")); - }; - $ptrType(object).prototype.order = function order$1() { - var obj; - obj = this; - return obj.order_; - }; - $ptrType(object).prototype.color = function color$2() { - var obj; - obj = this; - return obj.color_; - }; - $ptrType(object).prototype.scopePos = function scopePos$1() { - var obj; - obj = this; - return obj.scopePos_; - }; - $ptrType(object).prototype.setParent = function setParent$1(parent) { - var obj, parent; - obj = this; - obj.parent = parent; - }; - $ptrType(object).prototype.setOrder = function setOrder$1(order$2) { - var {obj, order$2, $s, $r, $c} = $restore(this, {order$2}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - obj = this; - $r = assert(order$2 > 0); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - obj.order_ = order$2; - $s = -1; return; - /* */ } return; } var $f = {$blk: setOrder$1, $c: true, $r, obj, order$2, $s};return $f; - }; - $ptrType(object).prototype.setColor = function setColor$1(color$3) { - var {color$3, obj, $s, $r, $c} = $restore(this, {color$3}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - obj = this; - $r = assert(!((color$3 === 0))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - obj.color_ = color$3; - $s = -1; return; - /* */ } return; } var $f = {$blk: setColor$1, $c: true, $r, color$3, obj, $s};return $f; - }; - $ptrType(object).prototype.setScopePos = function setScopePos$1(pos) { - var obj, pos; - obj = this; - obj.scopePos_ = pos; - }; - $ptrType(object).prototype.sameId = function sameId$1(pkg, name) { - var name, obj, pkg; - obj = this; - if (!(name === obj.name)) { + re1 = (x = p.stack, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + re2 = (x$2 = p.stack, x$3 = n - 2 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])); + if (!((re1.Op === 3)) || !((re2.Op === 3)) || !((((re1.Flags & 1) >>> 0) === ((re2.Flags & 1) >>> 0)))) { return false; } - if (obj.Exported()) { + re2.Rune = $appendSlice(re2.Rune, re1.Rune); + if (r >= 0) { + re1.Rune = $subslice(new sliceType$1(re1.Rune0), 0, 1); + (x$4 = re1.Rune, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0] = r)); + re1.Flags = flags; return true; } - if (pkg === ptrType$1.nil || obj.pkg === ptrType$1.nil) { - return pkg === obj.pkg; - } - return pkg.path === obj.pkg.path; - }; - NewPkgName = function NewPkgName$1(pos, pkg, name, imported) { - var imported, name, pkg, pos; - return new PkgName.ptr($clone(new object.ptr(ptrType.nil, pos, pkg, name, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]), 0, 1, 0), object), imported, false); - }; - $pkg.NewPkgName = NewPkgName; - $ptrType(PkgName).prototype.Imported = function Imported() { - var obj; - obj = this; - return obj.imported; - }; - NewConst = function NewConst$1(pos, pkg, name, typ$3, val) { - var name, pkg, pos, typ$3, val; - return new Const.ptr($clone(new object.ptr(ptrType.nil, pos, pkg, name, typ$3, 0, colorFor(typ$3), 0), object), val); - }; - $pkg.NewConst = NewConst; - $ptrType(Const).prototype.Val = function Val() { - var obj; - obj = this; - return obj.val; + p.stack = $subslice(p.stack, 0, (n - 1 >> 0)); + p.reuse(re1); + return false; }; - NewTypeName = function NewTypeName$1(pos, pkg, name, typ$3) { - var name, pkg, pos, typ$3; - return new TypeName.ptr($clone(new object.ptr(ptrType.nil, pos, pkg, name, typ$3, 0, colorFor(typ$3), 0), object)); + $ptrType(parser).prototype.literal = function literal(r) { + var p, r, re; + p = this; + re = p.newRegexp(3); + re.Flags = p.flags; + if (!((((p.flags & 1) >>> 0) === 0))) { + r = minFoldRune(r); + } + re.Rune0[0] = r; + re.Rune = $subslice(new sliceType$1(re.Rune0), 0, 1); + p.push(re); }; - $pkg.NewTypeName = NewTypeName; - $ptrType(TypeName).prototype.IsAlias = function IsAlias() { - var _ref, obj, t, t$1, t$2, t$3, t$4; - obj = this; - _ref = obj.object.typ; - if (_ref === $ifaceNil) { - t = _ref; - return false; - } else if ($assertType(_ref, ptrType$4, true)[1]) { - t$1 = _ref.$val; - if (obj.object.pkg === $pkg.Unsafe) { - return false; + minFoldRune = function minFoldRune$1(r) { + var min, r, r0; + if (r < 65 || r > 125251) { + return r; + } + min = r; + r0 = r; + r = unicode.SimpleFold(r); + while (true) { + if (!(!((r === r0)))) { break; } + if (min > r) { + min = r; } - return !(obj.object.pkg === ptrType$1.nil) || !(t$1.name === obj.object.name) || $interfaceIsEqual(t$1, universeByte) || $interfaceIsEqual(t$1, universeRune); - } else if ($assertType(_ref, ptrType$9, true)[1]) { - t$2 = _ref.$val; - return !(obj === t$2.obj); - } else if ($assertType(_ref, ptrType$14, true)[1]) { - t$3 = _ref.$val; - return !(obj === t$3.obj); - } else { - t$4 = _ref; - return true; + r = unicode.SimpleFold(r); } + return min; }; - NewVar = function NewVar$1(pos, pkg, name, typ$3) { - var name, pkg, pos, typ$3; - return new Var.ptr($clone(new object.ptr(ptrType.nil, pos, pkg, name, typ$3, 0, colorFor(typ$3), 0), object), false, false, false, ptrType$16.nil); - }; - $pkg.NewVar = NewVar; - NewParam = function NewParam$1(pos, pkg, name, typ$3) { - var name, pkg, pos, typ$3; - return new Var.ptr($clone(new object.ptr(ptrType.nil, pos, pkg, name, typ$3, 0, colorFor(typ$3), 0), object), false, false, true, ptrType$16.nil); - }; - $pkg.NewParam = NewParam; - NewField = function NewField$1(pos, pkg, name, typ$3, embedded) { - var embedded, name, pkg, pos, typ$3; - return new Var.ptr($clone(new object.ptr(ptrType.nil, pos, pkg, name, typ$3, 0, colorFor(typ$3), 0), object), embedded, true, false, ptrType$16.nil); - }; - $pkg.NewField = NewField; - $ptrType(Var).prototype.Anonymous = function Anonymous() { - var obj; - obj = this; - return obj.embedded; - }; - $ptrType(Var).prototype.Embedded = function Embedded() { - var obj; - obj = this; - return obj.embedded; - }; - $ptrType(Var).prototype.IsField = function IsField() { - var obj; - obj = this; - return obj.isField; + $ptrType(parser).prototype.op = function op$1(op$2) { + var op$2, p, re; + p = this; + re = p.newRegexp(op$2); + re.Flags = p.flags; + return p.push(re); }; - $ptrType(Var).prototype.Origin = function Origin() { - var obj; - obj = this; - if (!(obj.origin === ptrType$16.nil)) { - return obj.origin; + $ptrType(parser).prototype.repeat = function repeat(op$2, min, max, before, after, lastRepeat) { + var after, before, flags, lastRepeat, max, min, n, op$2, p, re, sub, x, x$1, x$2, x$3, x$4; + p = this; + flags = p.flags; + if (!((((p.flags & 64) >>> 0) === 0))) { + if (after.length > 0 && (after.charCodeAt(0) === 63)) { + after = $substring(after, 1); + flags = (flags ^ (32)) << 16 >>> 16; + } + if (!(lastRepeat === "")) { + return ["", new Error.ptr("invalid nested repetition operator", $substring(lastRepeat, 0, (lastRepeat.length - after.length >> 0)))]; + } } - return obj; - }; - NewFunc = function NewFunc$1(pos, pkg, name, sig) { - var name, pkg, pos, sig, typ$3; - typ$3 = $ifaceNil; - if (!(sig === ptrType$27.nil)) { - typ$3 = sig; + n = p.stack.$length; + if (n === 0) { + return ["", new Error.ptr("missing argument to repetition operator", $substring(before, 0, (before.length - after.length >> 0)))]; } - return new Func.ptr($clone(new object.ptr(ptrType.nil, pos, pkg, name, typ$3, 0, colorFor(typ$3), 0), object), false, ptrType$2.nil); - }; - $pkg.NewFunc = NewFunc; - $ptrType(Func).prototype.FullName = function FullName() { - var {buf, obj, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - buf = [buf]; - obj = this; - buf[0] = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); - $r = writeFuncName(buf[0], obj, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return buf[0].String(); - /* */ } return; } var $f = {$blk: FullName, $c: true, $r, buf, obj, $s};return $f; - }; - $ptrType(Func).prototype.Scope = function Scope$2() { - var obj; - obj = this; - return $assertType(obj.object.typ, ptrType$27).scope; - }; - $ptrType(Func).prototype.Origin = function Origin$1() { - var obj; - obj = this; - if (!(obj.origin === ptrType$2.nil)) { - return obj.origin; + sub = (x = p.stack, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + if (sub.Op >= 128) { + return ["", new Error.ptr("missing argument to repetition operator", $substring(before, 0, (before.length - after.length >> 0)))]; } - return obj; - }; - $ptrType(Func).prototype.hasPtrRecv = function hasPtrRecv() { - var _tuple, _tuple$1, isPtr, obj, sig; - obj = this; - _tuple = $assertType(obj.object.typ, ptrType$27, true); - sig = _tuple[0]; - if (!(sig === ptrType$27.nil) && !(sig.recv === ptrType$16.nil)) { - _tuple$1 = deref(sig.recv.object.typ); - isPtr = _tuple$1[1]; - return isPtr; + re = p.newRegexp(op$2); + re.Min = min; + re.Max = max; + re.Flags = flags; + re.Sub = $subslice(new sliceType$4(re.Sub0), 0, 1); + (x$2 = re.Sub, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0] = sub)); + (x$3 = p.stack, x$4 = n - 1 >> 0, ((x$4 < 0 || x$4 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + x$4] = re)); + p.checkLimits(re); + if ((op$2 === 17) && (min >= 2 || max >= 2) && !repeatIsValid(re, 1000)) { + return ["", new Error.ptr("invalid repeat count", $substring(before, 0, (before.length - after.length >> 0)))]; } - return obj.hasPtrRecv_; - }; - NewLabel = function NewLabel$1(pos, pkg, name) { - var name, pkg, pos; - return new Label.ptr($clone(new object.ptr(ptrType.nil, pos, pkg, name, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]), 0, 1, 0), object), false); + return [after, $ifaceNil]; }; - $pkg.NewLabel = NewLabel; - newBuiltin = function newBuiltin$1(id) { - var id; - return new Builtin.ptr($clone(new object.ptr(ptrType.nil, 0, ptrType$1.nil, ((id < 0 || id >= predeclaredFuncs.length) ? ($throwRuntimeError("index out of range"), undefined) : predeclaredFuncs[id]).name, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]), 0, 1, 0), object), id); - }; - writeObject = function writeObject$1(buf, obj, qf) { - var {_r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _v, buf, obj, obj$1, obj$2, obj$3, obj$4, obj$5, obj$6, obj$7, obj$8, obj$9, path, qf, t, t$1, t$2, tname, typ$3, $s, $r, $c} = $restore(this, {buf, obj, qf}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - tname = ptrType$17.nil; - _r$1 = obj.Type(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - typ$3 = _r$1; - _ref = obj; - /* */ if ($assertType(_ref, ptrType$31, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$32, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$17, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$16, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$2, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType$91, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref, ptrType$18, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref, ptrType$33, true)[1]) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if ($assertType(_ref, ptrType$31, true)[1]) { */ case 2: - obj$1 = _ref.$val; - _r$2 = fmt.Fprintf(buf, "package %s", new sliceType$6([new $String(obj$1.object.Name())])); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - path = obj$1.imported.path; - /* */ if (!(path === "") && !(path === obj$1.object.name)) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (!(path === "") && !(path === obj$1.object.name)) { */ case 13: - _r$3 = fmt.Fprintf(buf, " (%q)", new sliceType$6([new $String(path)])); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$3; - /* } */ case 14: - $s = -1; return; - /* } else if ($assertType(_ref, ptrType$32, true)[1]) { */ case 3: - obj$2 = _ref.$val; - buf.WriteString("const"); - $s = 11; continue; - /* } else if ($assertType(_ref, ptrType$17, true)[1]) { */ case 4: - obj$3 = _ref.$val; - tname = obj$3; - buf.WriteString("type"); - if (isTypeParam(typ$3)) { - buf.WriteString(" parameter"); + repeatIsValid = function repeatIsValid$1(re, n) { + var _i, _q, _ref, m, n, re, sub; + if (re.Op === 17) { + m = re.Max; + if (m === 0) { + return true; } - $s = 11; continue; - /* } else if ($assertType(_ref, ptrType$16, true)[1]) { */ case 5: - obj$4 = _ref.$val; - if (obj$4.isField) { - buf.WriteString("field"); - } else { - buf.WriteString("var"); + if (m < 0) { + m = re.Min; + } + if (m > n) { + return false; + } + if (m > 0) { + n = (_q = n / (m), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); } - $s = 11; continue; - /* } else if ($assertType(_ref, ptrType$2, true)[1]) { */ case 6: - obj$5 = _ref.$val; - buf.WriteString("func "); - $r = writeFuncName(buf, obj$5, qf); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!($interfaceIsEqual(typ$3, $ifaceNil))) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (!($interfaceIsEqual(typ$3, $ifaceNil))) { */ case 17: - $r = WriteSignature(buf, $assertType(typ$3, ptrType$27), qf); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 18: - $s = -1; return; - /* } else if ($assertType(_ref, ptrType$91, true)[1]) { */ case 7: - obj$6 = _ref.$val; - buf.WriteString("label"); - typ$3 = $ifaceNil; - $s = 11; continue; - /* } else if ($assertType(_ref, ptrType$18, true)[1]) { */ case 8: - obj$7 = _ref.$val; - buf.WriteString("builtin"); - typ$3 = $ifaceNil; - $s = 11; continue; - /* } else if ($assertType(_ref, ptrType$33, true)[1]) { */ case 9: - obj$8 = _ref.$val; - buf.WriteString("nil"); - $s = -1; return; - /* } else { */ case 10: - obj$9 = _ref; - _r$4 = fmt.Sprintf("writeObject(%T)", new sliceType$6([obj$9])); /* */ $s = 20; case 20: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $panic(new $String(_r$4)); - /* } */ case 11: - buf.WriteByte(32); - _r$5 = obj.Pkg(); /* */ $s = 24; case 24: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - if (!(!(_r$5 === ptrType$1.nil))) { _v = false; $s = 23; continue s; } - _r$6 = obj.Pkg(); /* */ $s = 25; case 25: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _r$7 = obj.Name(); /* */ $s = 26; case 26: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _r$8 = _r$6.scope.Lookup(_r$7); /* */ $s = 27; case 27: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _v = $interfaceIsEqual(_r$8, obj); case 23: - /* */ if (_v) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if (_v) { */ case 21: - _r$9 = obj.Pkg(); /* */ $s = 28; case 28: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _r$10 = packagePrefix(_r$9, qf); /* */ $s = 29; case 29: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _r$11 = buf.WriteString(_r$10); /* */ $s = 30; case 30: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _r$11; - /* } */ case 22: - _r$12 = obj.Name(); /* */ $s = 31; case 31: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _r$13 = buf.WriteString(_r$12); /* */ $s = 32; case 32: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - _r$13; - if ($interfaceIsEqual(typ$3, $ifaceNil)) { - $s = -1; return; } - /* */ if (!(tname === ptrType$17.nil)) { $s = 33; continue; } - /* */ $s = 34; continue; - /* if (!(tname === ptrType$17.nil)) { */ case 33: - _ref$1 = typ$3; - /* */ if ($assertType(_ref$1, ptrType$4, true)[1]) { $s = 35; continue; } - /* */ if ($assertType(_ref$1, ptrType$9, true)[1]) { $s = 36; continue; } - /* */ $s = 37; continue; - /* if ($assertType(_ref$1, ptrType$4, true)[1]) { */ case 35: - t = _ref$1.$val; - $s = -1; return; - /* } else if ($assertType(_ref$1, ptrType$9, true)[1]) { */ case 36: - t$1 = _ref$1.$val; - _r$14 = t$1.TypeParams(); /* */ $s = 40; case 40: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - _r$15 = _r$14.Len(); /* */ $s = 41; case 41: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - /* */ if (_r$15 > 0) { $s = 38; continue; } - /* */ $s = 39; continue; - /* if (_r$15 > 0) { */ case 38: - _r$16 = t$1.TypeParams(); /* */ $s = 42; case 42: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - _r$17 = _r$16.list(); /* */ $s = 43; case 43: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - $r = newTypeWriter(buf, qf).tParamList(_r$17); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 39: - /* } */ case 37: - /* */ if (tname.IsAlias()) { $s = 45; continue; } - /* */ $s = 46; continue; - /* if (tname.IsAlias()) { */ case 45: - buf.WriteString(" ="); - $s = 47; continue; - /* } else { */ case 46: - _tuple = $assertType(typ$3, ptrType$14, true); - t$2 = _tuple[0]; - /* */ if (!(t$2 === ptrType$14.nil)) { $s = 48; continue; } - /* */ $s = 49; continue; - /* if (!(t$2 === ptrType$14.nil)) { */ case 48: - typ$3 = t$2.bound; - $s = 50; continue; - /* } else { */ case 49: - _r$18 = under(typ$3); /* */ $s = 51; case 51: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - typ$3 = _r$18; - /* } */ case 50: - /* } */ case 47: - /* } */ case 34: - /* */ if ($interfaceIsEqual(obj, universeAny)) { $s = 52; continue; } - /* */ $s = 53; continue; - /* if ($interfaceIsEqual(obj, universeAny)) { */ case 52: - _r$19 = Identical(typ$3, emptyInterface); /* */ $s = 54; case 54: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - $r = assert(_r$19); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - typ$3 = emptyInterface; - /* } */ case 53: - buf.WriteByte(32); - $r = WriteType(buf, typ$3, qf); /* */ $s = 56; case 56: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: writeObject$1, $c: true, $r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tuple, _v, buf, obj, obj$1, obj$2, obj$3, obj$4, obj$5, obj$6, obj$7, obj$8, obj$9, path, qf, t, t$1, t$2, tname, typ$3, $s};return $f; + _ref = re.Sub; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!repeatIsValid(sub, n)) { + return false; + } + _i++; + } + return true; }; - packagePrefix = function packagePrefix$1(pkg, qf) { - var {_r$1, pkg, qf, s, $s, $r, $c} = $restore(this, {pkg, qf}); + $ptrType(parser).prototype.concat = function concat() { + var {$24r, _r, _r$1, i, p, subs, x, x$1, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (pkg === ptrType$1.nil) { - $s = -1; return ""; + p = this; + p.maybeConcat(-1, 0); + i = p.stack.$length; + while (true) { + if (!(i > 0 && (x = p.stack, x$1 = i - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Op < 128)) { break; } + i = i - (1) >> 0; } - s = ""; - /* */ if (!(qf === $throwNilPointerError)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(qf === $throwNilPointerError)) { */ case 1: - _r$1 = qf(pkg); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - s = _r$1; - $s = 3; continue; - /* } else { */ case 2: - s = pkg.Path(); - /* } */ case 3: - if (!(s === "")) { - s = s + ("."); + subs = $subslice(p.stack, i); + p.stack = $subslice(p.stack, 0, i); + if (subs.$length === 0) { + $s = -1; return p.push(p.newRegexp(2)); } - $s = -1; return s; - /* */ } return; } var $f = {$blk: packagePrefix$1, $c: true, $r, _r$1, pkg, qf, s, $s};return $f; - }; - ObjectString = function ObjectString$1(obj, qf) { - var {buf, obj, qf, $s, $r, $c} = $restore(this, {obj, qf}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - buf = [buf]; - buf[0] = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); - $r = writeObject(buf[0], obj, qf); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return buf[0].String(); - /* */ } return; } var $f = {$blk: ObjectString$1, $c: true, $r, buf, obj, qf, $s};return $f; - }; - $pkg.ObjectString = ObjectString; - $ptrType(PkgName).prototype.String = function String$19() { - var {$24r, _r$1, obj, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - obj = this; - _r$1 = ObjectString(obj, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$19, $c: true, $r, $24r, _r$1, obj, $s};return $f; - }; - $ptrType(Const).prototype.String = function String$20() { - var {$24r, _r$1, obj, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - obj = this; - _r$1 = ObjectString(obj, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$20, $c: true, $r, $24r, _r$1, obj, $s};return $f; - }; - $ptrType(TypeName).prototype.String = function String$21() { - var {$24r, _r$1, obj, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - obj = this; - _r$1 = ObjectString(obj, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$21, $c: true, $r, $24r, _r$1, obj, $s};return $f; - }; - $ptrType(Var).prototype.String = function String$22() { - var {$24r, _r$1, obj, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - obj = this; - _r$1 = ObjectString(obj, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$22, $c: true, $r, $24r, _r$1, obj, $s};return $f; - }; - $ptrType(Func).prototype.String = function String$23() { - var {$24r, _r$1, obj, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - obj = this; - _r$1 = ObjectString(obj, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$23, $c: true, $r, $24r, _r$1, obj, $s};return $f; - }; - $ptrType(Label).prototype.String = function String$24() { - var {$24r, _r$1, obj, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - obj = this; - _r$1 = ObjectString(obj, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r = p.collapse(subs, 18); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = p.push(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$24, $c: true, $r, $24r, _r$1, obj, $s};return $f; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: concat, $c: true, $r, $24r, _r, _r$1, i, p, subs, x, x$1, $s};return $f; }; - $ptrType(Builtin).prototype.String = function String$25() { - var {$24r, _r$1, obj, $s, $r, $c} = $restore(this, {}); + $ptrType(parser).prototype.alternate = function alternate() { + var {$24r, _r, _r$1, i, p, subs, x, x$1, x$2, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - obj = this; - _r$1 = ObjectString(obj, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + p = this; + i = p.stack.$length; + while (true) { + if (!(i > 0 && (x = p.stack, x$1 = i - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Op < 128)) { break; } + i = i - (1) >> 0; + } + subs = $subslice(p.stack, i); + p.stack = $subslice(p.stack, 0, i); + /* */ if (subs.$length > 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (subs.$length > 0) { */ case 1: + $r = cleanAlt((x$2 = subs.$length - 1 >> 0, ((x$2 < 0 || x$2 >= subs.$length) ? ($throwRuntimeError("index out of range"), undefined) : subs.$array[subs.$offset + x$2]))); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + if (subs.$length === 0) { + $s = -1; return p.push(p.newRegexp(1)); + } + _r = p.collapse(subs, 19); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = p.push(_r); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$25, $c: true, $r, $24r, _r$1, obj, $s};return $f; + $s = 6; case 6: return $24r; + /* */ } return; } var $f = {$blk: alternate, $c: true, $r, $24r, _r, _r$1, i, p, subs, x, x$1, x$2, $s};return $f; }; - $ptrType(Nil).prototype.String = function String$26() { - var {$24r, _r$1, obj, $s, $r, $c} = $restore(this, {}); + cleanAlt = function cleanAlt$1(re) { + var {_1, _r, re, x, x$1, x$2, x$3, x$4, x$5, $s, $r, $c} = $restore(this, {re}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - obj = this; - _r$1 = ObjectString(obj, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$26, $c: true, $r, $24r, _r$1, obj, $s};return $f; + _1 = re.Op; + /* */ if (_1 === (4)) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (_1 === (4)) { */ case 2: + _r = cleanClass((re === ptrType.nil && $throwNilPointerError(), (re.$ptr_Rune || (re.$ptr_Rune = new ptrType$3(function() { return this.$target.Rune; }, function($v) { this.$target.Rune = $v; }, re))))); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + re.Rune = _r; + if ((re.Rune.$length === 2) && ((x = re.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) === 0) && ((x$1 = re.Rune, (1 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 1])) === 1114111)) { + re.Rune = sliceType$1.nil; + re.Op = 6; + $s = -1; return; + } + if ((re.Rune.$length === 4) && ((x$2 = re.Rune, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])) === 0) && ((x$3 = re.Rune, (1 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 1])) === 9) && ((x$4 = re.Rune, (2 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 2])) === 11) && ((x$5 = re.Rune, (3 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 3])) === 1114111)) { + re.Rune = sliceType$1.nil; + re.Op = 5; + $s = -1; return; + } + if ((re.Rune.$capacity - re.Rune.$length >> 0) > 100) { + re.Rune = $appendSlice($subslice(new sliceType$1(re.Rune0), 0, 0), re.Rune); + } + /* } */ case 3: + case 1: + $s = -1; return; + /* */ } return; } var $f = {$blk: cleanAlt$1, $c: true, $r, _1, _r, re, x, x$1, x$2, x$3, x$4, x$5, $s};return $f; }; - writeFuncName = function writeFuncName$1(buf, f, qf) { - var {_r$1, _r$2, _tuple, buf, f, ok, qf, recv, sig, $s, $r, $c} = $restore(this, {buf, f, qf}); + $ptrType(parser).prototype.collapse = function collapse(subs, op$2) { + var {_i, _r, _ref, old, op$2, p, re, sub, subs, x, $s, $r, $c} = $restore(this, {subs, op$2}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - /* */ if (!($interfaceIsEqual(f.object.typ, $ifaceNil))) { $s = 1; continue; } + p = this; + if (subs.$length === 1) { + $s = -1; return (0 >= subs.$length ? ($throwRuntimeError("index out of range"), undefined) : subs.$array[subs.$offset + 0]); + } + re = p.newRegexp(op$2); + re.Sub = $subslice(new sliceType$4(re.Sub0), 0, 0); + _ref = subs; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (sub.Op === op$2) { + re.Sub = $appendSlice(re.Sub, sub.Sub); + p.reuse(sub); + } else { + re.Sub = $append(re.Sub, sub); + } + _i++; + } + /* */ if (op$2 === 19) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (!($interfaceIsEqual(f.object.typ, $ifaceNil))) { */ case 1: - sig = $assertType(f.object.typ, ptrType$27); - recv = sig.Recv(); - /* */ if (!(recv === ptrType$16.nil)) { $s = 3; continue; } - /* */ if (!(f.object.pkg === ptrType$1.nil)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (!(recv === ptrType$16.nil)) { */ case 3: - buf.WriteByte(40); - _tuple = $assertType(recv.object.Type(), ptrType$13, true); - ok = _tuple[1]; - /* */ if (ok) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (ok) { */ case 6: - buf.WriteString("interface"); - $s = 8; continue; - /* } else { */ case 7: - $r = WriteType(buf, recv.object.Type(), qf); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 8: - buf.WriteByte(41); - buf.WriteByte(46); - $s = 5; continue; - /* } else if (!(f.object.pkg === ptrType$1.nil)) { */ case 4: - _r$1 = packagePrefix(f.object.pkg, qf); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = buf.WriteString(_r$1); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - /* } */ case 5: + /* if (op$2 === 19) { */ case 1: + _r = p.factor(re.Sub); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + re.Sub = _r; + if (re.Sub.$length === 1) { + old = re; + re = (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); + p.reuse(old); + } /* } */ case 2: - buf.WriteString(f.object.name); - $s = -1; return; - /* */ } return; } var $f = {$blk: writeFuncName$1, $c: true, $r, _r$1, _r$2, _tuple, buf, f, ok, qf, recv, sig, $s};return $f; - }; - NewNamed = function NewNamed$1(obj, underlying, methods) { - var _tuple, methods, obj, ok, underlying; - _tuple = $assertType(underlying, ptrType$9, true); - ok = _tuple[1]; - if (ok) { - $panic(new $String("underlying type must not be *Named")); - } - return (ptrType$6.nil).newNamed(obj, underlying, methods); + $s = -1; return re; + /* */ } return; } var $f = {$blk: collapse, $c: true, $r, _i, _r, _ref, old, op$2, p, re, sub, subs, x, $s};return $f; }; - $pkg.NewNamed = NewNamed; - $ptrType(Named).prototype.resolve = function resolve$2() { - var {$24r, $24r$1, $24r$2, _r$1, _r$2, _r$3, _tuple, methods, n, orig, tparams, underlying, underlying$1, $s, $deferred, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - n = this; - if (n.state() >= 1) { - $s = -1; return n; + $ptrType(parser).prototype.factor = function factor(sub) { + var {_i, _r, _r$1, _ref, _tmp, _tmp$1, _tuple, first, i, i$1, i$2, i$3, ifirst, iflags, istr, j, j$1, j$2, j$3, max, out, p, prefix, prefix$1, re, re$1, reuse$1, same, start, str, strflags, sub, suffix, suffix$1, x, x$1, $s, $r, $c} = $restore(this, {sub}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + if (sub.$length < 2) { + $s = -1; return sub; } - $r = n.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(n.mu, "Unlock"), []]); - /* */ if (n.state() >= 1) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (n.state() >= 1) { */ case 2: - $24r = n; - $s = 4; case 4: return $24r; - /* } */ case 3: - /* */ if (!(n.inst === ptrType$52.nil)) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (!(n.inst === ptrType$52.nil)) { */ case 5: - $r = assert($interfaceIsEqual(n.underlying, $ifaceNil)); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = assert(n.loader === $throwNilPointerError); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - orig = n.inst.orig; - _r$1 = orig.resolve(); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - _r$2 = n.expandUnderlying(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - underlying = _r$2; - n.tparams = orig.tparams; - n.underlying = underlying; - n.fromRHS = orig.fromRHS; - if (orig.methods.$length === 0) { - n.setState(2); - n.inst.ctxt = ptrType$51.nil; - } else { - n.setState(1); + str = sliceType$1.nil; + strflags = 0; + start = 0; + out = $subslice(sub, 0, 0); + i = 0; + /* while (true) { */ case 1: + /* if (!(i <= sub.$length)) { break; } */ if(!(i <= sub.$length)) { $s = 2; continue; } + istr = sliceType$1.nil; + iflags = 0; + if (i < sub.$length) { + _tuple = p.leadingString(((i < 0 || i >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i])); + istr = _tuple[0]; + iflags = _tuple[1]; + if (iflags === strflags) { + same = 0; + while (true) { + if (!(same < str.$length && same < istr.$length && (((same < 0 || same >= str.$length) ? ($throwRuntimeError("index out of range"), undefined) : str.$array[str.$offset + same]) === ((same < 0 || same >= istr.$length) ? ($throwRuntimeError("index out of range"), undefined) : istr.$array[istr.$offset + same])))) { break; } + same = same + (1) >> 0; + } + if (same > 0) { + str = $subslice(str, 0, same); + i = i + (1) >> 0; + /* continue; */ $s = 1; continue; + } + } + } + /* */ if (i === start) { $s = 3; continue; } + /* */ if (i === (start + 1 >> 0)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (i === start) { */ case 3: + $s = 6; continue; + /* } else if (i === (start + 1 >> 0)) { */ case 4: + out = $append(out, ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start])); + $s = 6; continue; + /* } else { */ case 5: + prefix = p.newRegexp(3); + prefix.Flags = strflags; + prefix.Rune = $appendSlice($subslice(prefix.Rune, 0, 0), str); + j = start; + while (true) { + if (!(j < i)) { break; } + ((j < 0 || j >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j] = p.removeLeadingString(((j < 0 || j >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j]), str.$length)); + p.checkLimits(((j < 0 || j >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j])); + j = j + (1) >> 0; + } + _r = p.collapse($subslice(sub, start, i), 19); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + suffix = _r; + re = p.newRegexp(18); + re.Sub = $append($subslice(re.Sub, 0, 0), prefix, suffix); + out = $append(out, re); + /* } */ case 6: + start = i; + str = istr; + strflags = iflags; + i = i + (1) >> 0; + $s = 1; continue; + case 2: + sub = out; + start = 0; + out = $subslice(sub, 0, 0); + first = ptrType.nil; + i$1 = 0; + /* while (true) { */ case 8: + /* if (!(i$1 <= sub.$length)) { break; } */ if(!(i$1 <= sub.$length)) { $s = 9; continue; } + ifirst = ptrType.nil; + if (i$1 < sub.$length) { + ifirst = p.leadingRegexp(((i$1 < 0 || i$1 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i$1])); + if (!(first === ptrType.nil) && first.Equal(ifirst) && (isCharClass(first) || ((first.Op === 17) && (first.Min === first.Max) && isCharClass((x = first.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])))))) { + i$1 = i$1 + (1) >> 0; + /* continue; */ $s = 8; continue; + } + } + /* */ if (i$1 === start) { $s = 10; continue; } + /* */ if (i$1 === (start + 1 >> 0)) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (i$1 === start) { */ case 10: + $s = 13; continue; + /* } else if (i$1 === (start + 1 >> 0)) { */ case 11: + out = $append(out, ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start])); + $s = 13; continue; + /* } else { */ case 12: + prefix$1 = first; + j$1 = start; + while (true) { + if (!(j$1 < i$1)) { break; } + reuse$1 = !((j$1 === start)); + ((j$1 < 0 || j$1 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$1] = p.removeLeadingRegexp(((j$1 < 0 || j$1 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$1]), reuse$1)); + p.checkLimits(((j$1 < 0 || j$1 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$1])); + j$1 = j$1 + (1) >> 0; + } + _r$1 = p.collapse($subslice(sub, start, i$1), 19); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + suffix$1 = _r$1; + re$1 = p.newRegexp(18); + re$1.Sub = $append($subslice(re$1.Sub, 0, 0), prefix$1, suffix$1); + out = $append(out, re$1); + /* } */ case 13: + start = i$1; + first = ifirst; + i$1 = i$1 + (1) >> 0; + $s = 8; continue; + case 9: + sub = out; + start = 0; + out = $subslice(sub, 0, 0); + i$2 = 0; + /* while (true) { */ case 15: + /* if (!(i$2 <= sub.$length)) { break; } */ if(!(i$2 <= sub.$length)) { $s = 16; continue; } + if (i$2 < sub.$length && isCharClass(((i$2 < 0 || i$2 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i$2]))) { + i$2 = i$2 + (1) >> 0; + /* continue; */ $s = 15; continue; } - $24r$1 = n; - $s = 11; case 11: return $24r$1; - /* } */ case 6: - /* */ if (!(n.loader === $throwNilPointerError)) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (!(n.loader === $throwNilPointerError)) { */ case 12: - $r = assert($interfaceIsEqual(n.underlying, $ifaceNil)); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = assert(n.TypeArgs().Len() === 0); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$3 = n.loader(n); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple = _r$3; - tparams = _tuple[0]; - underlying$1 = _tuple[1]; - methods = _tuple[2]; - n.tparams = bindTParams(tparams); - n.underlying = underlying$1; - n.fromRHS = underlying$1; - n.methods = methods; - n.loader = $throwNilPointerError; - /* } */ case 13: - n.setState(2); - $24r$2 = n; - $s = 17; case 17: return $24r$2; - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$9.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: resolve$2, $c: true, $r, $24r, $24r$1, $24r$2, _r$1, _r$2, _r$3, _tuple, methods, n, orig, tparams, underlying, underlying$1, $s, $deferred};return $f; } } - }; - $ptrType(Named).prototype.state = function state() { - var n; - n = this; - return ((atomic.LoadUint32((n.$ptr_state_ || (n.$ptr_state_ = new ptrType$55(function() { return this.$target.state_; }, function($v) { this.$target.state_ = $v; }, n)))) >>> 0)); - }; - $ptrType(Named).prototype.setState = function setState(state$1) { - var n, state$1; - n = this; - atomic.StoreUint32((n.$ptr_state_ || (n.$ptr_state_ = new ptrType$55(function() { return this.$target.state_; }, function($v) { this.$target.state_ = $v; }, n))), ((state$1 >>> 0))); - }; - $ptrType(Checker).prototype.newNamed = function newNamed(obj, underlying, methods) { - var check, methods, obj, typ$3, underlying; - check = this; - typ$3 = new Named.ptr(check, obj, underlying, ptrType$52.nil, new sync.Mutex.ptr(0, 0), 0, underlying, ptrType$48.nil, methods, $throwNilPointerError); - if ($interfaceIsEqual(obj.object.typ, $ifaceNil)) { - obj.object.typ = typ$3; - } - if (!(check === ptrType$6.nil)) { - check.needsCleanup(typ$3); + /* */ if (i$2 === start) { $s = 17; continue; } + /* */ if (i$2 === (start + 1 >> 0)) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (i$2 === start) { */ case 17: + $s = 20; continue; + /* } else if (i$2 === (start + 1 >> 0)) { */ case 18: + out = $append(out, ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start])); + $s = 20; continue; + /* } else { */ case 19: + max = start; + j$2 = start + 1 >> 0; + while (true) { + if (!(j$2 < i$2)) { break; } + if (((max < 0 || max >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + max]).Op < ((j$2 < 0 || j$2 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$2]).Op || (((max < 0 || max >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + max]).Op === ((j$2 < 0 || j$2 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$2]).Op) && ((max < 0 || max >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + max]).Rune.$length < ((j$2 < 0 || j$2 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$2]).Rune.$length) { + max = j$2; + } + j$2 = j$2 + (1) >> 0; + } + _tmp = ((max < 0 || max >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + max]); + _tmp$1 = ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start]); + ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start] = _tmp); + ((max < 0 || max >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + max] = _tmp$1); + j$3 = start + 1 >> 0; + while (true) { + if (!(j$3 < i$2)) { break; } + mergeCharClass(((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start]), ((j$3 < 0 || j$3 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$3])); + p.reuse(((j$3 < 0 || j$3 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$3])); + j$3 = j$3 + (1) >> 0; + } + $r = cleanAlt(((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start])); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + out = $append(out, ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start])); + /* } */ case 20: + if (i$2 < sub.$length) { + out = $append(out, ((i$2 < 0 || i$2 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i$2])); + } + start = i$2 + 1 >> 0; + i$2 = i$2 + (1) >> 0; + $s = 15; continue; + case 16: + sub = out; + start = 0; + out = $subslice(sub, 0, 0); + _ref = sub; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i$3 = _i; + if ((i$3 + 1 >> 0) < sub.$length && (((i$3 < 0 || i$3 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i$3]).Op === 2) && ((x$1 = i$3 + 1 >> 0, ((x$1 < 0 || x$1 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + x$1])).Op === 2)) { + _i++; + continue; + } + out = $append(out, ((i$3 < 0 || i$3 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i$3])); + _i++; } - return typ$3; + sub = out; + $s = -1; return sub; + /* */ } return; } var $f = {$blk: factor, $c: true, $r, _i, _r, _r$1, _ref, _tmp, _tmp$1, _tuple, first, i, i$1, i$2, i$3, ifirst, iflags, istr, j, j$1, j$2, j$3, max, out, p, prefix, prefix$1, re, re$1, reuse$1, same, start, str, strflags, sub, suffix, suffix$1, x, x$1, $s};return $f; }; - $ptrType(Checker).prototype.newNamedInstance = function newNamedInstance(pos, orig, targs, expanding) { - var {check, expanding, inst, obj, orig, pos, targs, typ$3, $s, $r, $c} = $restore(this, {pos, orig, targs, expanding}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - $r = assert(targs.$length > 0); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - obj = NewTypeName(pos, orig.obj.object.pkg, orig.obj.object.name, $ifaceNil); - inst = new instance.ptr(orig, newTypeList(targs), 0, ptrType$51.nil); - if (!(expanding === ptrType$9.nil) && expanding.Obj().object.pkg === obj.object.pkg) { - inst.ctxt = expanding.inst.ctxt; + $ptrType(parser).prototype.leadingString = function leadingString(re) { + var p, re, x; + p = this; + if ((re.Op === 18) && re.Sub.$length > 0) { + re = (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); } - typ$3 = new Named.ptr(check, obj, $ifaceNil, inst, new sync.Mutex.ptr(0, 0), 0, $ifaceNil, ptrType$48.nil, sliceType.nil, $throwNilPointerError); - obj.object.typ = typ$3; - if (!(check === ptrType$6.nil)) { - check.needsCleanup(typ$3); + if (!((re.Op === 3))) { + return [sliceType$1.nil, 0]; } - $s = -1; return typ$3; - /* */ } return; } var $f = {$blk: newNamedInstance, $c: true, $r, check, expanding, inst, obj, orig, pos, targs, typ$3, $s};return $f; + return [re.Rune, (re.Flags & 1) >>> 0]; }; - $ptrType(Named).prototype.cleanup = function cleanup$1() { - var {_r$1, _ref, t, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - $r = assert(t.inst === ptrType$52.nil || t.inst.orig.inst === ptrType$52.nil); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _ref = t.underlying; - /* */ if (_ref === $ifaceNil) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (_ref === $ifaceNil) { */ case 2: - if (t.TypeArgs().Len() === 0) { - $panic(new $String("nil underlying")); + $ptrType(parser).prototype.removeLeadingString = function removeLeadingString(re, n) { + var _1, n, old, p, re, sub, x, x$1, x$2; + p = this; + if ((re.Op === 18) && re.Sub.$length > 0) { + sub = (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); + sub = p.removeLeadingString(sub, n); + (x$1 = re.Sub, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0] = sub)); + if (sub.Op === 2) { + p.reuse(sub); + _1 = re.Sub.$length; + if ((_1 === (0)) || (_1 === (1))) { + re.Op = 2; + re.Sub = sliceType$4.nil; + } else if (_1 === (2)) { + old = re; + re = (x$2 = re.Sub, (1 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 1])); + p.reuse(old); + } else { + $copySlice(re.Sub, $subslice(re.Sub, 1)); + re.Sub = $subslice(re.Sub, 0, (re.Sub.$length - 1 >> 0)); + } } - $s = 4; continue; - /* } else if ($assertType(_ref, ptrType$9, true)[1]) { */ case 3: - _r$1 = t.under(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - /* } */ case 4: - t.check = ptrType$6.nil; - $s = -1; return; - /* */ } return; } var $f = {$blk: cleanup$1, $c: true, $r, _r$1, _ref, t, $s};return $f; - }; - $ptrType(Named).prototype.Obj = function Obj$2() { - var t; - t = this; - if (t.inst === ptrType$52.nil) { - return t.obj; + return re; } - return t.inst.orig.obj; - }; - $ptrType(Named).prototype.Origin = function Origin$2() { - var t; - t = this; - if (t.inst === ptrType$52.nil) { - return t; + if (re.Op === 3) { + re.Rune = $subslice(re.Rune, 0, $copySlice(re.Rune, $subslice(re.Rune, n))); + if (re.Rune.$length === 0) { + re.Op = 2; + } } - return t.inst.orig; - }; - $ptrType(Named).prototype.TypeParams = function TypeParams$1() { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = t.resolve(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1.tparams; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: TypeParams$1, $c: true, $r, $24r, _r$1, t, $s};return $f; - }; - $ptrType(Named).prototype.SetTypeParams = function SetTypeParams(tparams) { - var {_r$1, t, tparams, $s, $r, $c} = $restore(this, {tparams}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - $r = assert(t.inst === ptrType$52.nil); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$1 = t.resolve(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1.tparams = bindTParams(tparams); - $s = -1; return; - /* */ } return; } var $f = {$blk: SetTypeParams, $c: true, $r, _r$1, t, tparams, $s};return $f; + return re; }; - $ptrType(Named).prototype.TypeArgs = function TypeArgs() { - var t; - t = this; - if (t.inst === ptrType$52.nil) { - return ptrType$56.nil; + $ptrType(parser).prototype.leadingRegexp = function leadingRegexp(re) { + var p, re, sub, x; + p = this; + if (re.Op === 2) { + return ptrType.nil; } - return t.inst.targs; - }; - $ptrType(Named).prototype.NumMethods = function NumMethods$1() { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = t.Origin().resolve(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1.methods.$length; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: NumMethods$1, $c: true, $r, $24r, _r$1, t, $s};return $f; - }; - $ptrType(Named).prototype.Method = function Method$1(i) { - var {$24r, _r$1, _r$2, i, orig, t, x, x$1, x$2, x$3, $s, $deferred, $r, $c} = $restore(this, {i}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - t = this; - _r$1 = t.resolve(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - if (t.state() >= 2) { - $s = -1; return (x = t.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - } - $r = assert(!(t.inst === ptrType$52.nil)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - orig = t.inst.orig; - $r = t.mu.Lock(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(t.mu, "Unlock"), []]); - /* */ if (!((t.methods.$length === orig.methods.$length))) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (!((t.methods.$length === orig.methods.$length))) { */ case 4: - $r = assert(t.methods.$length === 0); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - t.methods = $makeSlice(sliceType, orig.methods.$length); - /* } */ case 5: - /* */ if ((x$1 = t.methods, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])) === ptrType$2.nil) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if ((x$1 = t.methods, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])) === ptrType$2.nil) { */ case 7: - $r = assert(!(t.inst.ctxt === ptrType$51.nil)); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$2 = t.expandMethod(i); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - (x$2 = t.methods, ((i < 0 || i >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i] = _r$2)); - t.inst.expandedMethods = t.inst.expandedMethods + (1) >> 0; - if (t.inst.expandedMethods === orig.methods.$length) { - t.setState(2); - t.inst.ctxt = ptrType$51.nil; + if ((re.Op === 18) && re.Sub.$length > 0) { + sub = (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); + if (sub.Op === 2) { + return ptrType.nil; } - /* } */ case 8: - $24r = (x$3 = t.methods, ((i < 0 || i >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + i])); - $s = 11; case 11: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return ptrType$2.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Method$1, $c: true, $r, $24r, _r$1, _r$2, i, orig, t, x, x$1, x$2, x$3, $s, $deferred};return $f; } } - }; - $ptrType(Named).prototype.expandMethod = function expandMethod(i) { - var {_r$1, _r$2, _r$3, _tuple, check, copy, ctxt, i, origSig, origm, rbase, rtyp, sig, smap, t, $s, $r, $c} = $restore(this, {i}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - copy = [copy]; - t = this; - _r$1 = t.inst.orig.Method(i); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - origm = _r$1; - $r = assert(!(origm === ptrType$2.nil)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - check = t.check; - /* */ if (!(check === ptrType$6.nil)) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!(check === ptrType$6.nil)) { */ case 3: - $r = check.objDecl(origm, ptrType$9.nil); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 4: - origSig = $assertType(origm.object.typ, ptrType$27); - _tuple = deref(origSig.Recv().object.Type()); - rbase = _tuple[0]; - if ($interfaceIsEqual(rbase, t)) { - $s = -1; return origm; - } - sig = origSig; - /* */ if (origSig.RecvTypeParams().Len() === t.inst.targs.Len()) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (origSig.RecvTypeParams().Len() === t.inst.targs.Len()) { */ case 6: - _r$2 = makeSubstMap(origSig.RecvTypeParams().list(), t.inst.targs.list()); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - smap = _r$2; - ctxt = ptrType$51.nil; - if (!(check === ptrType$6.nil)) { - ctxt = check.context(); - } - _r$3 = check.subst(origm.object.pos, origSig, smap, t, ctxt); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - sig = $assertType(_r$3, ptrType$27); - /* } */ case 7: - if (sig === origSig) { - copy[0] = $clone(origSig, Signature); - sig = copy[0]; - } - rtyp = $ifaceNil; - if (origm.hasPtrRecv()) { - rtyp = NewPointer(t); - } else { - rtyp = t; + return sub; } - sig.recv = substVar(origSig.recv, rtyp); - $s = -1; return substFunc(origm, sig); - /* */ } return; } var $f = {$blk: expandMethod, $c: true, $r, _r$1, _r$2, _r$3, _tuple, check, copy, ctxt, i, origSig, origm, rbase, rtyp, sig, smap, t, $s};return $f; + return re; }; - $ptrType(Named).prototype.SetUnderlying = function SetUnderlying(underlying) { - var {_r$1, _tuple, ok, t, underlying, $s, $r, $c} = $restore(this, {underlying}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - $r = assert(t.inst === ptrType$52.nil); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if ($interfaceIsEqual(underlying, $ifaceNil)) { - $panic(new $String("underlying type must not be nil")); - } - _tuple = $assertType(underlying, ptrType$9, true); - ok = _tuple[1]; - if (ok) { - $panic(new $String("underlying type must not be *Named")); - } - _r$1 = t.resolve(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1.underlying = underlying; - if ($interfaceIsEqual(t.fromRHS, $ifaceNil)) { - t.fromRHS = underlying; + $ptrType(parser).prototype.removeLeadingRegexp = function removeLeadingRegexp(re, reuse$1) { + var _1, old, p, re, reuse$1, x, x$1; + p = this; + if ((re.Op === 18) && re.Sub.$length > 0) { + if (reuse$1) { + p.reuse((x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))); + } + re.Sub = $subslice(re.Sub, 0, $copySlice(re.Sub, $subslice(re.Sub, 1))); + _1 = re.Sub.$length; + if (_1 === (0)) { + re.Op = 2; + re.Sub = sliceType$4.nil; + } else if (_1 === (1)) { + old = re; + re = (x$1 = re.Sub, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])); + p.reuse(old); + } + return re; } - $s = -1; return; - /* */ } return; } var $f = {$blk: SetUnderlying, $c: true, $r, _r$1, _tuple, ok, t, underlying, $s};return $f; - }; - $ptrType(Named).prototype.AddMethod = function AddMethod(m) { - var {_r$1, _tuple, i, m, t, $s, $r, $c} = $restore(this, {m}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - $r = assert(t.inst === ptrType$52.nil); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$1 = t.resolve(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - _tuple = lookupMethod(t.methods, m.object.pkg, m.object.name, false); - i = _tuple[0]; - if (i < 0) { - t.methods = $append(t.methods, m); + if (reuse$1) { + p.reuse(re); } - $s = -1; return; - /* */ } return; } var $f = {$blk: AddMethod, $c: true, $r, _r$1, _tuple, i, m, t, $s};return $f; - }; - $ptrType(Named).prototype.Underlying = function Underlying$7() { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = t.resolve(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1.underlying; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Underlying$7, $c: true, $r, $24r, _r$1, t, $s};return $f; + return p.newRegexp(2); }; - $ptrType(Named).prototype.String = function String$27() { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = TypeString(t, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$27, $c: true, $r, $24r, _r$1, t, $s};return $f; - }; - $ptrType(Named).prototype.under = function under$2() { - var {_entry, _entry$1, _i, _key, _key$1, _keys, _r$1, _r$2, _ref, _ref$1, _ref$2, _size, _tuple, check, i, n, n$1, n0, n1, ok, path, seen, u, u1, u1$1, u1$2, u1$3, u1$4, u1$5, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - n0 = this; - _r$1 = n0.Underlying(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - u = _r$1; - n1 = ptrType$9.nil; - _ref = u; - if (_ref === $ifaceNil) { - u1 = _ref; - $panic(new $String("nil underlying")); - } else if ($assertType(_ref, ptrType$9, true)[1]) { - u1$2 = _ref.$val; - n1 = u1$2; - } else { - u1$1 = _ref; - $s = -1; return u; - } - if (n0.check === ptrType$6.nil) { - $panic(new $String("Named.check == nil but type is incomplete")); - } - check = n0.check; - n = n0; - seen = new $global.Map(); - path = sliceType$8.nil; - /* while (true) { */ case 2: - _key = n; (seen || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$9.keyFor(_key), { k: _key, v: (seen ? seen.size : 0) }); - path = $append(path, n.obj); - n = n1; - _tuple = (_entry = $mapIndex(seen,ptrType$9.keyFor(n)), _entry !== undefined ? [_entry.v, true] : [0, false]); - i = _tuple[0]; - ok = _tuple[1]; - /* */ if (ok) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (ok) { */ case 4: - $r = check.cycleError($subslice(path, i)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - u = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - /* break; */ $s = 3; continue; - /* } */ case 5: - _r$2 = n.Underlying(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - u = _r$2; - _ref$1 = u; - if (_ref$1 === $ifaceNil) { - u1$3 = _ref$1; - u = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - /* break loop; */ $s = 3; continue s; - } else if ($assertType(_ref$1, ptrType$9, true)[1]) { - u1$5 = _ref$1.$val; - n1 = u1$5; - } else { - u1$4 = _ref$1; - /* break loop; */ $s = 3; continue s; - } - $s = 2; continue; - case 3: - _ref$2 = seen; + literalRegexp = function literalRegexp$1(s, flags) { + var _i, _ref, _rune, c, flags, re, s; + re = new Regexp.ptr(3, 0, sliceType$4.nil, arrayType.zero(), sliceType$1.nil, arrayType$1.zero(), 0, 0, 0, ""); + re.Flags = flags; + re.Rune = $subslice(new sliceType$1(re.Rune0), 0, 0); + _ref = s; _i = 0; - _keys = _ref$2 ? _ref$2.keys() : undefined; - _size = _ref$2 ? _ref$2.size : 0; while (true) { - if (!(_i < _size)) { break; } - _key$1 = _keys.next().value; - _entry$1 = _ref$2.get(_key$1); - if (_entry$1 === undefined) { - _i++; - continue; - } - n$1 = _entry$1.k; - if (!(n$1.obj.object.pkg === check.pkg)) { - $panic(new $String("imported type with unresolved underlying type")); + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + c = _rune[0]; + if (re.Rune.$length >= re.Rune.$capacity) { + re.Rune = (new sliceType$1($stringToRunes(s))); + break; } - n$1.underlying = u; - _i++; - } - $s = -1; return u; - /* */ } return; } var $f = {$blk: under$2, $c: true, $r, _entry, _entry$1, _i, _key, _key$1, _keys, _r$1, _r$2, _ref, _ref$1, _ref$2, _size, _tuple, check, i, n, n$1, n0, n1, ok, path, seen, u, u1, u1$1, u1$2, u1$3, u1$4, u1$5, $s};return $f; - }; - $ptrType(Named).prototype.setUnderlying = function setUnderlying(typ$3) { - var n, typ$3; - n = this; - if (!(n === ptrType$9.nil)) { - n.underlying = typ$3; + re.Rune = $append(re.Rune, c); + _i += _rune[1]; } + return re; }; - $ptrType(Named).prototype.lookupMethod = function lookupMethod$1(pkg, name, foldCase) { - var {$24r, _r$1, _r$2, _tuple, foldCase, i, n, name, pkg, $s, $r, $c} = $restore(this, {pkg, name, foldCase}); + Parse = function Parse$1(s, flags) { + var {$24r, _r, flags, s, $s, $r, $c} = $restore(this, {s, flags}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - n = this; - _r$1 = n.resolve(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - _tuple = lookupMethod(n.Origin().methods, pkg, name, foldCase); - i = _tuple[0]; - if (i < 0) { - $s = -1; return [-1, ptrType$2.nil]; - } - _r$2 = n.Method(i); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = [i, _r$2]; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: lookupMethod$1, $c: true, $r, $24r, _r$1, _r$2, _tuple, foldCase, i, n, name, pkg, $s};return $f; - }; - $ptrType(Checker).prototype.context = function context() { - var check; - check = this; - if (check.ctxt === ptrType$51.nil) { - check.ctxt = NewContext(); - } - return check.ctxt; + _r = parse(s, flags); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Parse$1, $c: true, $r, $24r, _r, flags, s, $s};return $f; }; - $ptrType(Named).prototype.expandUnderlying = function expandUnderlying() { - var {$24r, $24r$1, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, _tuple$2, check, copied, ctxt, h, iface$1, methods, n, n2, old, orig, smap, targs, underlying, unexpanded, $s, $deferred, $r, $c} = $restore(this, {}); + $pkg.Parse = Parse; + parse = function parse$1(s, flags) { + var {_$1, _2, _3, _4, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _struct, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$10, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, after, after$1, before, before$1, c, c$1, err, err$1, err$2, err$3, flags, lastRepeat, lit, max, min, n, ok, op$2, p, r, r$1, re, repeat$1, rest, rest$1, rest$2, s, t, x, $s, $deferred, $r, $c} = $restore(this, {s, flags}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - check = [check]; - n = [n]; - n[0] = this; - check[0] = n[0].check; - /* */ if (!(check[0] === ptrType$6.nil) && false) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(check[0] === ptrType$6.nil) && false) { */ case 1: - $r = check[0].trace(n[0].obj.object.pos, "-- Named.expandUnderlying %s", new sliceType$6([n[0]])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - check[0].indent = check[0].indent + (1) >> 0; - $deferred.push([(function(check, n) { return function Named·expandUnderlying·func1() { - var {$s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check[0].indent = check[0].indent - (1) >> 0; - $r = check[0].trace(n[0].obj.object.pos, "=> %s (tparams = %s, under = %s)", new sliceType$6([n[0], n[0].tparams.list(), n[0].underlying])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: Named·expandUnderlying·func1, $c: true, $r, $s};return $f; - }; })(check, n), []]); - /* } */ case 2: - $r = assert(!($interfaceIsEqual(n[0].inst.orig.underlying, $ifaceNil))); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (n[0].inst.ctxt === ptrType$51.nil) { - n[0].inst.ctxt = NewContext(); - } - orig = n[0].inst.orig; - targs = n[0].inst.targs; - _tuple = $assertType(orig.underlying, ptrType$9, true); - unexpanded = _tuple[1]; - /* */ if (unexpanded) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (unexpanded) { */ case 5: - $r = assert(!(check[0] === ptrType$6.nil)); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 6: - /* */ if (!((orig.tparams.Len() === targs.Len()))) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (!((orig.tparams.Len() === targs.Len()))) { */ case 8: - $24r = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - $s = 10; case 10: return $24r; - /* } */ case 9: - _r$1 = n[0].inst.ctxt.instanceHash(orig, targs.list()); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - h = _r$1; - _r$2 = n[0].inst.ctxt.update(h, orig, n[0].TypeArgs().list(), n[0]); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - n2 = _r$2; - $r = assert($interfaceIsEqual(n[0], n2)); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$3 = makeSubstMap(orig.tparams.list(), targs.list()); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - smap = _r$3; - ctxt = ptrType$51.nil; - if (!(check[0] === ptrType$6.nil)) { - ctxt = check[0].context(); - } - _r$4 = n[0].check.subst(n[0].obj.object.pos, orig.underlying, smap, n[0], ctxt); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - underlying = _r$4; - _tuple$1 = $assertType(underlying, ptrType$13, true); - iface$1 = _tuple$1[0]; - if (!(iface$1 === ptrType$13.nil)) { - _tuple$2 = replaceRecvType(iface$1.methods, orig, n[0]); - methods = _tuple$2[0]; - copied = _tuple$2[1]; - if (copied) { - if ($interfaceIsEqual(iface$1, orig.underlying)) { - old = iface$1; - iface$1 = check[0].newInterface(); - iface$1.embeddeds = old.embeddeds; - iface$1.complete = old.complete; - iface$1.implicit = old.implicit; - underlying = iface$1; + err = [err]; + s = [s]; + _$1 = ptrType.nil; + err[0] = $ifaceNil; + $deferred.push([(function(err, s) { return function parse·func1() { + var _1, r; + r = $recover(); + _1 = r; + if ($interfaceIsEqual(_1, $ifaceNil)) { + } else if ($interfaceIsEqual(_1, new ErrorCode(("expression too large")))) { + err[0] = new Error.ptr("expression too large", s[0]); + } else if ($interfaceIsEqual(_1, new ErrorCode(("expression nests too deeply")))) { + err[0] = new Error.ptr("expression nests too deeply", s[0]); + } else { + $panic(r); } - iface$1.methods = methods; + }; })(err, s), []]); + if (!((((flags & 2) >>> 0) === 0))) { + err$1 = checkUTF8(s[0]); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + _tmp = ptrType.nil; + _tmp$1 = err$1; + _$1 = _tmp; + err[0] = _tmp$1; + $s = -1; return [_$1, err[0]]; } + _tmp$2 = literalRegexp(s[0], flags); + _tmp$3 = $ifaceNil; + _$1 = _tmp$2; + err[0] = _tmp$3; + $s = -1; return [_$1, err[0]]; } - $24r$1 = underlying; - $s = 16; case 16: return $24r$1; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: expandUnderlying, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, _tuple$2, check, copied, ctxt, h, iface$1, methods, n, n2, old, orig, smap, targs, underlying, unexpanded, $s, $deferred};return $f; } } - }; - safeUnderlying = function safeUnderlying$1(typ$3) { - var {$24r, _r$1, _tuple, t, typ$3, $s, $r, $c} = $restore(this, {typ$3}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _tuple = $assertType(typ$3, ptrType$9, true); - t = _tuple[0]; - if (!(t === ptrType$9.nil)) { - $s = -1; return t.underlying; - } - _r$1 = typ$3.Underlying(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: safeUnderlying$1, $c: true, $r, $24r, _r$1, _tuple, t, typ$3, $s};return $f; - }; - $ptrType(Checker).prototype.monomorph = function monomorph() { - var {_i, _ref, again, check, dst, edge, i, src, w, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - again = true; - /* while (true) { */ case 1: - /* if (!(again)) { break; } */ if(!(again)) { $s = 2; continue; } - again = false; - _ref = check.mono.edges; - _i = 0; - /* while (true) { */ case 3: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } - i = _i; - edge = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), monoEdge); - src = (x = check.mono.vertices, x$1 = edge.src, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); - dst = (x$2 = check.mono.vertices, x$3 = edge.dst, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])); - w = src.weight + edge.weight >> 0; - if (w <= dst.weight) { - _i++; - /* continue; */ $s = 3; continue; - } - dst.pre = i; - dst.len = src.len + 1 >> 0; - /* */ if (dst.len === check.mono.vertices.$length) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (dst.len === check.mono.vertices.$length) { */ case 5: - $r = check.reportInstanceLoop(edge.dst); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 6: - dst.weight = w; - again = true; - _i++; - $s = 3; continue; - case 4: - $s = 1; continue; - case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: monomorph, $c: true, $r, _i, _ref, again, check, dst, edge, i, src, w, x, x$1, x$2, x$3, $s};return $f; - }; - $ptrType(Checker).prototype.reportInstanceLoop = function reportInstanceLoop(v) { - var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _i, _r$1, _r$2, _ref, _ref$1, check, edge, obj, obj0, qf, seen, stack, v, v$1, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, $s, $r, $c} = $restore(this, {v}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - stack = sliceType$13.nil; - seen = $makeSlice(sliceType$15, check.mono.vertices.$length); - while (true) { - if (!(!((v < 0 || v >= seen.$length) ? ($throwRuntimeError("index out of range"), undefined) : seen.$array[seen.$offset + v]))) { break; } - stack = $append(stack, v); - ((v < 0 || v >= seen.$length) ? ($throwRuntimeError("index out of range"), undefined) : seen.$array[seen.$offset + v] = true); - v = (x = check.mono.edges, x$1 = (x$2 = check.mono.vertices, ((v < 0 || v >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + v])).pre, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).src; - } - while (true) { - if (!(!(((0 >= stack.$length ? ($throwRuntimeError("index out of range"), undefined) : stack.$array[stack.$offset + 0]) === v)))) { break; } - stack = $subslice(stack, 1); - } - obj0 = (x$3 = check.mono.vertices, ((v < 0 || v >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + v])).obj; - $r = check.error(obj0, 140, "instantiation cycle:"); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - qf = RelativeTo(check.pkg); - _ref = stack; - _i = 0; - /* while (true) { */ case 2: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } - v$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - edge = $clone((x$4 = check.mono.edges, x$5 = (x$6 = check.mono.vertices, ((v$1 < 0 || v$1 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + v$1])).pre, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])), monoEdge); - obj = (x$7 = check.mono.vertices, x$8 = edge.dst, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8])).obj; - _ref$1 = obj.object.Type(); - /* */ if ($assertType(_ref$1, ptrType$9, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref$1, ptrType$14, true)[1]) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if ($assertType(_ref$1, ptrType$9, true)[1]) { */ case 4: - _arg = new atPos(((edge.pos >> 0))); - _arg$1 = new $String(obj.object.Name()); - _r$1 = TypeString(edge.typ, qf); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _arg$2 = new $String(_r$1); - $r = check.errorf(_arg, 140, "\t%s implicitly parameterized by %s", new sliceType$6([_arg$1, _arg$2])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 7; continue; - /* } else if ($assertType(_ref$1, ptrType$14, true)[1]) { */ case 5: - _arg$3 = new atPos(((edge.pos >> 0))); - _arg$4 = new $String(obj.object.Name()); - _r$2 = TypeString(edge.typ, qf); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _arg$5 = new $String(_r$2); - $r = check.errorf(_arg$3, 140, "\t%s instantiated as %s", new sliceType$6([_arg$4, _arg$5])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 7; continue; - /* } else { */ case 6: - $panic(new $String("unexpected type")); - /* } */ case 7: - _i++; - $s = 2; continue; - case 3: - $s = -1; return; - /* */ } return; } var $f = {$blk: reportInstanceLoop, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _i, _r$1, _r$2, _ref, _ref$1, check, edge, obj, obj0, qf, seen, stack, v, v$1, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, $s};return $f; - }; - $ptrType(monoGraph).prototype.recordCanon = function recordCanon(mpar, tpar) { - var _key, mpar, tpar, w; - w = this; - if (w.canon === false) { - w.canon = new $global.Map(); - } - _key = mpar; (w.canon || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$14.keyFor(_key), { k: _key, v: tpar }); - }; - $ptrType(monoGraph).prototype.recordInstance = function recordInstance(pkg, pos, tparams, targs, xlist) { - var {_i, _r$1, _ref, i, pkg, pos, pos$1, targs, tpar, tparams, w, xlist, $s, $r, $c} = $restore(this, {pkg, pos, tparams, targs, xlist}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - w = this; - _ref = tparams; - _i = 0; + p = new parser.ptr(0, sliceType$4.nil, ptrType.nil, 0, "", sliceType$1.nil, 0, 0, new $Int64(0, 0), false, false); + c = 0; + op$2 = 0; + lastRepeat = ""; + p.flags = flags; + p.wholeRegexp = s[0]; + t = s[0]; /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - tpar = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - pos$1 = pos; - /* */ if (i < xlist.$length) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (i < xlist.$length) { */ case 3: - _r$1 = ((i < 0 || i >= xlist.$length) ? ($throwRuntimeError("index out of range"), undefined) : xlist.$array[xlist.$offset + i]).Pos(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - pos$1 = _r$1; - /* } */ case 4: - $r = w.assign(pkg, pos$1, tpar, ((i < 0 || i >= targs.$length) ? ($throwRuntimeError("index out of range"), undefined) : targs.$array[targs.$offset + i])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; + /* if (!(!(t === ""))) { break; } */ if(!(!(t === ""))) { $s = 2; continue; } + repeat$1 = ""; + _2 = t.charCodeAt(0); + /* */ if (_2 === (40)) { $s = 4; continue; } + /* */ if (_2 === (124)) { $s = 5; continue; } + /* */ if (_2 === (41)) { $s = 6; continue; } + /* */ if (_2 === (94)) { $s = 7; continue; } + /* */ if (_2 === (36)) { $s = 8; continue; } + /* */ if (_2 === (46)) { $s = 9; continue; } + /* */ if (_2 === (91)) { $s = 10; continue; } + /* */ if ((_2 === (42)) || (_2 === (43)) || (_2 === (63))) { $s = 11; continue; } + /* */ if (_2 === (123)) { $s = 12; continue; } + /* */ if (_2 === (92)) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (_2 === (40)) { */ case 4: + if (!((((p.flags & 64) >>> 0) === 0)) && t.length >= 2 && (t.charCodeAt(1) === 63)) { + _tuple = p.parsePerlFlags(t); + t = _tuple[0]; + err[0] = _tuple[1]; + if (!($interfaceIsEqual(err[0], $ifaceNil))) { + _tmp$4 = ptrType.nil; + _tmp$5 = err[0]; + _$1 = _tmp$4; + err[0] = _tmp$5; + $s = -1; return [_$1, err[0]]; + } + /* break; */ $s = 3; continue; + } + p.numCap = p.numCap + (1) >> 0; + p.op(128).Cap = p.numCap; + t = $substring(t, 1); + $s = 15; continue; + /* } else if (_2 === (124)) { */ case 5: + _r = p.parseVerticalBar(); /* */ $s = 16; case 16: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err[0] = _r; + if (!($interfaceIsEqual(err[0], $ifaceNil))) { + _tmp$6 = ptrType.nil; + _tmp$7 = err[0]; + _$1 = _tmp$6; + err[0] = _tmp$7; + $s = -1; return [_$1, err[0]]; + } + t = $substring(t, 1); + $s = 15; continue; + /* } else if (_2 === (41)) { */ case 6: + _r$1 = p.parseRightParen(); /* */ $s = 17; case 17: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + err[0] = _r$1; + if (!($interfaceIsEqual(err[0], $ifaceNil))) { + _tmp$8 = ptrType.nil; + _tmp$9 = err[0]; + _$1 = _tmp$8; + err[0] = _tmp$9; + $s = -1; return [_$1, err[0]]; + } + t = $substring(t, 1); + $s = 15; continue; + /* } else if (_2 === (94)) { */ case 7: + if (!((((p.flags & 16) >>> 0) === 0))) { + p.op(9); + } else { + p.op(7); + } + t = $substring(t, 1); + $s = 15; continue; + /* } else if (_2 === (36)) { */ case 8: + if (!((((p.flags & 16) >>> 0) === 0))) { + _struct = p.op(10); + _struct.Flags = (_struct.Flags | (256)) >>> 0; + } else { + p.op(8); + } + t = $substring(t, 1); + $s = 15; continue; + /* } else if (_2 === (46)) { */ case 9: + if (!((((p.flags & 8) >>> 0) === 0))) { + p.op(6); + } else { + p.op(5); + } + t = $substring(t, 1); + $s = 15; continue; + /* } else if (_2 === (91)) { */ case 10: + _r$2 = p.parseClass(t); /* */ $s = 18; case 18: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$1 = _r$2; + t = _tuple$1[0]; + err[0] = _tuple$1[1]; + if (!($interfaceIsEqual(err[0], $ifaceNil))) { + _tmp$10 = ptrType.nil; + _tmp$11 = err[0]; + _$1 = _tmp$10; + err[0] = _tmp$11; + $s = -1; return [_$1, err[0]]; + } + $s = 15; continue; + /* } else if ((_2 === (42)) || (_2 === (43)) || (_2 === (63))) { */ case 11: + before = t; + _3 = t.charCodeAt(0); + if (_3 === (42)) { + op$2 = 14; + } else if (_3 === (43)) { + op$2 = 15; + } else if (_3 === (63)) { + op$2 = 16; + } + after = $substring(t, 1); + _tuple$2 = p.repeat(op$2, 0, 0, before, after, lastRepeat); + after = _tuple$2[0]; + err[0] = _tuple$2[1]; + if (!($interfaceIsEqual(err[0], $ifaceNil))) { + _tmp$12 = ptrType.nil; + _tmp$13 = err[0]; + _$1 = _tmp$12; + err[0] = _tmp$13; + $s = -1; return [_$1, err[0]]; + } + repeat$1 = before; + t = after; + $s = 15; continue; + /* } else if (_2 === (123)) { */ case 12: + op$2 = 17; + before$1 = t; + _tuple$3 = p.parseRepeat(t); + min = _tuple$3[0]; + max = _tuple$3[1]; + after$1 = _tuple$3[2]; + ok = _tuple$3[3]; + if (!ok) { + p.literal(123); + t = $substring(t, 1); + /* break; */ $s = 3; continue; + } + if (min < 0 || min > 1000 || max > 1000 || max >= 0 && min > max) { + _tmp$14 = ptrType.nil; + _tmp$15 = new Error.ptr("invalid repeat count", $substring(before$1, 0, (before$1.length - after$1.length >> 0))); + _$1 = _tmp$14; + err[0] = _tmp$15; + $s = -1; return [_$1, err[0]]; + } + _tuple$4 = p.repeat(op$2, min, max, before$1, after$1, lastRepeat); + after$1 = _tuple$4[0]; + err[0] = _tuple$4[1]; + if (!($interfaceIsEqual(err[0], $ifaceNil))) { + _tmp$16 = ptrType.nil; + _tmp$17 = err[0]; + _$1 = _tmp$16; + err[0] = _tmp$17; + $s = -1; return [_$1, err[0]]; + } + repeat$1 = before$1; + t = after$1; + $s = 15; continue; + /* } else if (_2 === (92)) { */ case 13: + if (!((((p.flags & 64) >>> 0) === 0)) && t.length >= 2) { + _4 = t.charCodeAt(1); + if (_4 === (65)) { + p.op(9); + t = $substring(t, 2); + /* break BigSwitch; */ $s = 3; continue s; + } else if (_4 === (98)) { + p.op(11); + t = $substring(t, 2); + /* break BigSwitch; */ $s = 3; continue s; + } else if (_4 === (66)) { + p.op(12); + t = $substring(t, 2); + /* break BigSwitch; */ $s = 3; continue s; + } else if (_4 === (67)) { + _tmp$18 = ptrType.nil; + _tmp$19 = new Error.ptr("invalid escape sequence", $substring(t, 0, 2)); + _$1 = _tmp$18; + err[0] = _tmp$19; + $s = -1; return [_$1, err[0]]; + } else if (_4 === (81)) { + lit = ""; + _tuple$5 = strings.Cut($substring(t, 2), "\\E"); + lit = _tuple$5[0]; + t = _tuple$5[1]; + while (true) { + if (!(!(lit === ""))) { break; } + _tuple$6 = nextRune(lit); + c$1 = _tuple$6[0]; + rest = _tuple$6[1]; + err$2 = _tuple$6[2]; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + _tmp$20 = ptrType.nil; + _tmp$21 = err$2; + _$1 = _tmp$20; + err[0] = _tmp$21; + $s = -1; return [_$1, err[0]]; + } + p.literal(c$1); + lit = rest; + } + /* break BigSwitch; */ $s = 3; continue s; + } else if (_4 === (122)) { + p.op(10); + t = $substring(t, 2); + /* break BigSwitch; */ $s = 3; continue s; + } + } + re = p.newRegexp(4); + re.Flags = p.flags; + /* */ if (t.length >= 2 && ((t.charCodeAt(1) === 112) || (t.charCodeAt(1) === 80))) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (t.length >= 2 && ((t.charCodeAt(1) === 112) || (t.charCodeAt(1) === 80))) { */ case 19: + _r$3 = p.parseUnicodeClass(t, $subslice(new sliceType$1(re.Rune0), 0, 0)); /* */ $s = 21; case 21: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$7 = _r$3; + r = _tuple$7[0]; + rest$1 = _tuple$7[1]; + err$3 = _tuple$7[2]; + if (!($interfaceIsEqual(err$3, $ifaceNil))) { + _tmp$22 = ptrType.nil; + _tmp$23 = err$3; + _$1 = _tmp$22; + err[0] = _tmp$23; + $s = -1; return [_$1, err[0]]; + } + if (!(r === sliceType$1.nil)) { + re.Rune = r; + t = rest$1; + p.push(re); + /* break BigSwitch; */ $s = 3; continue s; + } + /* } */ case 20: + _r$4 = p.parsePerlClassEscape(t, $subslice(new sliceType$1(re.Rune0), 0, 0)); /* */ $s = 22; case 22: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$8 = _r$4; + r$1 = _tuple$8[0]; + rest$2 = _tuple$8[1]; + if (!(r$1 === sliceType$1.nil)) { + re.Rune = r$1; + t = rest$2; + p.push(re); + /* break BigSwitch; */ $s = 3; continue s; + } + p.reuse(re); + _tuple$9 = p.parseEscape(t); + c = _tuple$9[0]; + t = _tuple$9[1]; + err[0] = _tuple$9[2]; + if (!($interfaceIsEqual(err[0], $ifaceNil))) { + _tmp$24 = ptrType.nil; + _tmp$25 = err[0]; + _$1 = _tmp$24; + err[0] = _tmp$25; + $s = -1; return [_$1, err[0]]; + } + p.literal(c); + $s = 15; continue; + /* } else { */ case 14: + _tuple$10 = nextRune(t); + c = _tuple$10[0]; + t = _tuple$10[1]; + err[0] = _tuple$10[2]; + if (!($interfaceIsEqual(err[0], $ifaceNil))) { + _tmp$26 = ptrType.nil; + _tmp$27 = err[0]; + _$1 = _tmp$26; + err[0] = _tmp$27; + $s = -1; return [_$1, err[0]]; + } + p.literal(c); + /* } */ case 15: + case 3: + lastRepeat = repeat$1; $s = 1; continue; case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: recordInstance, $c: true, $r, _i, _r$1, _ref, i, pkg, pos, pos$1, targs, tpar, tparams, w, xlist, $s};return $f; - }; - $ptrType(monoGraph).prototype.assign = function assign(pkg, pos, tpar, targ) { - var {do$1, flow, pkg, pos, targ, tpar, w, $s, $r, $c} = $restore(this, {pkg, pos, tpar, targ}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - do$1 = [do$1]; - flow = [flow]; - pkg = [pkg]; - pos = [pos]; - targ = [targ]; - tpar = [tpar]; - w = [w]; - w[0] = this; - if (!(tpar[0].Obj().object.Pkg() === pkg[0])) { - $s = -1; return; + _r$5 = p.concat(); /* */ $s = 23; case 23: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$5; + _r$6 = p.swapVerticalBar(); /* */ $s = 26; case 26: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + /* */ if (_r$6) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (_r$6) { */ case 24: + p.stack = $subslice(p.stack, 0, (p.stack.$length - 1 >> 0)); + /* } */ case 25: + _r$7 = p.alternate(); /* */ $s = 27; case 27: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$7; + n = p.stack.$length; + if (!((n === 1))) { + _tmp$28 = ptrType.nil; + _tmp$29 = new Error.ptr("missing closing )", s[0]); + _$1 = _tmp$28; + err[0] = _tmp$29; + $s = -1; return [_$1, err[0]]; } - flow[0] = (function(do$1, flow, pkg, pos, targ, tpar, w) { return function monoGraph·assign·func1(src, typ$3) { - var src, typ$3, weight; - weight = 1; - if ($interfaceIsEqual(typ$3, targ[0])) { - weight = 0; - } - w[0].addEdge(w[0].typeParamVertex(tpar[0]), src, weight, pos[0], targ[0]); - }; })(do$1, flow, pkg, pos, targ, tpar, w); - do$1[0] = $throwNilPointerError; - do$1[0] = (function(do$1, flow, pkg, pos, targ, tpar, w) { return function monoGraph·assign·func2(typ$3) { - var {_r$1, _r$2, _r$3, _ref, i, i$1, i$2, src, targs, tuple$2, typ$10, typ$11, typ$12, typ$13, typ$14, typ$15, typ$3, typ$4, typ$5, typ$6, typ$7, typ$8, typ$9, $s, $r, $c} = $restore(this, {typ$3}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ref = typ$3; - /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$29, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 9; continue; } - /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 10; continue; } - /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if ($assertType(_ref, ptrType$14, true)[1]) { */ case 1: - typ$5 = _ref.$val; - $r = assert(typ$5.Obj().object.Pkg() === pkg[0]); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = flow[0](w[0].typeParamVertex(typ$5), typ$5); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 13; continue; - /* } else if ($assertType(_ref, ptrType$9, true)[1]) { */ case 2: - typ$6 = _ref.$val; - src = w[0].localNamedVertex(pkg[0], typ$6.Origin()); - /* */ if (src >= 0) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (src >= 0) { */ case 16: - $r = flow[0](src, typ$6); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 17: - targs = typ$6.TypeArgs(); - i = 0; - /* while (true) { */ case 19: - /* if (!(i < targs.Len())) { break; } */ if(!(i < targs.Len())) { $s = 20; continue; } - $r = do$1[0](targs.At(i)); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - i = i + (1) >> 0; - $s = 19; continue; - case 20: - $s = 13; continue; - /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 3: - typ$7 = _ref.$val; - $r = do$1[0](typ$7.Elem()); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 13; continue; - /* } else if ($assertType(_ref, ptrType$4, true)[1]) { */ case 4: - typ$8 = _ref.$val; - $s = 13; continue; - /* } else if ($assertType(_ref, ptrType$29, true)[1]) { */ case 5: - typ$9 = _ref.$val; - $r = do$1[0](typ$9.Elem()); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 13; continue; - /* } else if ($assertType(_ref, ptrType$28, true)[1]) { */ case 6: - typ$10 = _ref.$val; - $r = do$1[0](typ$10.Key()); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = do$1[0](typ$10.Elem()); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 13; continue; - /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 7: - typ$11 = _ref.$val; - $r = do$1[0](typ$11.Elem()); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 13; continue; - /* } else if ($assertType(_ref, ptrType$25, true)[1]) { */ case 8: - typ$12 = _ref.$val; - $r = do$1[0](typ$12.Elem()); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 13; continue; - /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 9: - typ$13 = _ref.$val; - i$1 = 0; - /* while (true) { */ case 28: - _r$1 = typ$13.NumMethods(); /* */ $s = 30; case 30: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* if (!(i$1 < _r$1)) { break; } */ if(!(i$1 < _r$1)) { $s = 29; continue; } - _r$2 = typ$13.Method(i$1); /* */ $s = 31; case 31: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = _r$2.object.Type(); /* */ $s = 32; case 32: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $r = do$1[0](_r$3); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - i$1 = i$1 + (1) >> 0; - $s = 28; continue; - case 29: - $s = 13; continue; - /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 10: - typ$14 = _ref.$val; - tuple$2 = (function(do$1, flow, pkg, pos, targ, tpar, w) { return function monoGraph·assign·func2·func1(tup) { - var {i$2, tup, $s, $r, $c} = $restore(this, {tup}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - i$2 = 0; - /* while (true) { */ case 1: - /* if (!(i$2 < tup.Len())) { break; } */ if(!(i$2 < tup.Len())) { $s = 2; continue; } - $r = do$1[0](tup.At(i$2).object.Type()); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - i$2 = i$2 + (1) >> 0; - $s = 1; continue; - case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: monoGraph·assign·func2·func1, $c: true, $r, i$2, tup, $s};return $f; - }; })(do$1, flow, pkg, pos, targ, tpar, w); - $r = tuple$2(typ$14.Params()); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = tuple$2(typ$14.Results()); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 13; continue; - /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 11: - typ$15 = _ref.$val; - i$2 = 0; - /* while (true) { */ case 36: - /* if (!(i$2 < typ$15.NumFields())) { break; } */ if(!(i$2 < typ$15.NumFields())) { $s = 37; continue; } - $r = do$1[0](typ$15.Field(i$2).object.Type()); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - i$2 = i$2 + (1) >> 0; - $s = 36; continue; - case 37: - $s = 13; continue; - /* } else { */ case 12: - typ$4 = _ref; - $panic(new $String("unexpected type")); - /* } */ case 13: - $s = -1; return; - /* */ } return; } var $f = {$blk: monoGraph·assign·func2, $c: true, $r, _r$1, _r$2, _r$3, _ref, i, i$1, i$2, src, targs, tuple$2, typ$10, typ$11, typ$12, typ$13, typ$14, typ$15, typ$3, typ$4, typ$5, typ$6, typ$7, typ$8, typ$9, $s};return $f; - }; })(do$1, flow, pkg, pos, targ, tpar, w); - $r = do$1[0](targ[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: assign, $c: true, $r, do$1, flow, pkg, pos, targ, tpar, w, $s};return $f; + _tmp$30 = (x = p.stack, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); + _tmp$31 = $ifaceNil; + _$1 = _tmp$30; + err[0] = _tmp$31; + $s = -1; return [_$1, err[0]]; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [_$1, err[0]]; } if($curGoroutine.asleep) { var $f = {$blk: parse$1, $c: true, $r, _$1, _2, _3, _4, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _struct, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$10, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, after, after$1, before, before$1, c, c$1, err, err$1, err$2, err$3, flags, lastRepeat, lit, max, min, n, ok, op$2, p, r, r$1, re, repeat$1, rest, rest$1, rest$2, s, t, x, $s, $deferred};return $f; } } }; - $ptrType(monoGraph).prototype.localNamedVertex = function localNamedVertex(pkg, named) { - var _entry, _entry$1, _i, _key, _key$1, _keys, _ref, _size, _tuple, _tuple$1, _tuple$2, elem, elem$1, idx, idx$1, named, obj, ok, ok$1, ok$2, pkg, root, scope, tpar, w; - w = this; - obj = named.Obj(); - if (!(obj.object.Pkg() === pkg)) { - return -1; + $ptrType(parser).prototype.parseRepeat = function parseRepeat(s) { + var _tuple, _tuple$1, max, min, ok, ok1, p, rest, s; + min = 0; + max = 0; + rest = ""; + ok = false; + p = this; + if (s === "" || !((s.charCodeAt(0) === 123))) { + return [min, max, rest, ok]; } - root = pkg.Scope(); - if (obj.object.Parent() === root) { - return -1; + s = $substring(s, 1); + ok1 = false; + _tuple = p.parseInt(s); + min = _tuple[0]; + s = _tuple[1]; + ok1 = _tuple[2]; + if (!ok1) { + return [min, max, rest, ok]; } - _tuple = (_entry = $mapIndex(w.nameIdx,ptrType$17.keyFor(obj)), _entry !== undefined ? [_entry.v, true] : [0, false]); - idx = _tuple[0]; - ok = _tuple[1]; - if (ok) { - return idx; + if (s === "") { + return [min, max, rest, ok]; } - idx$1 = -1; - scope = obj.object.Parent(); - while (true) { - if (!(!(scope === root))) { break; } - _ref = scope.elems; - _i = 0; - _keys = _ref ? _ref.keys() : undefined; - _size = _ref ? _ref.size : 0; - while (true) { - if (!(_i < _size)) { break; } - _key = _keys.next().value; - _entry$1 = _ref.get(_key); - if (_entry$1 === undefined) { - _i++; - continue; - } - elem = _entry$1.v; - _tuple$1 = $assertType(elem, ptrType$17, true); - elem$1 = _tuple$1[0]; - ok$1 = _tuple$1[1]; - if (ok$1 && !elem$1.IsAlias() && elem$1.object.Pos() < obj.object.Pos()) { - _tuple$2 = $assertType(elem$1.object.Type(), ptrType$14, true); - tpar = _tuple$2[0]; - ok$2 = _tuple$2[1]; - if (ok$2) { - if (idx$1 < 0) { - idx$1 = w.vertices.$length; - w.vertices = $append(w.vertices, new monoVertex.ptr(0, 0, 0, obj)); - } - w.addEdge(idx$1, w.typeParamVertex(tpar), 1, obj.object.Pos(), tpar); - } + if (!((s.charCodeAt(0) === 44))) { + max = min; + } else { + s = $substring(s, 1); + if (s === "") { + return [min, max, rest, ok]; + } + if (s.charCodeAt(0) === 125) { + max = -1; + } else { + _tuple$1 = p.parseInt(s); + max = _tuple$1[0]; + s = _tuple$1[1]; + ok1 = _tuple$1[2]; + if (!ok1) { + return [min, max, rest, ok]; + } else if (max < 0) { + min = -1; } - _i++; } - scope = scope.Parent(); - } - if (w.nameIdx === false) { - w.nameIdx = new $global.Map(); - } - _key$1 = obj; (w.nameIdx || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$17.keyFor(_key$1), { k: _key$1, v: idx$1 }); - return idx$1; - }; - $ptrType(monoGraph).prototype.typeParamVertex = function typeParamVertex(tpar) { - var _entry, _entry$1, _key, _tuple, _tuple$1, idx, idx$1, obj, ok, ok$1, tpar, w, x; - w = this; - _tuple = (_entry = $mapIndex(w.canon,ptrType$14.keyFor(tpar)), _entry !== undefined ? [_entry.v, true] : [ptrType$14.nil, false]); - x = _tuple[0]; - ok = _tuple[1]; - if (ok) { - tpar = x; - } - obj = tpar.Obj(); - _tuple$1 = (_entry$1 = $mapIndex(w.nameIdx,ptrType$17.keyFor(obj)), _entry$1 !== undefined ? [_entry$1.v, true] : [0, false]); - idx = _tuple$1[0]; - ok$1 = _tuple$1[1]; - if (ok$1) { - return idx; - } - if (w.nameIdx === false) { - w.nameIdx = new $global.Map(); } - idx$1 = w.vertices.$length; - w.vertices = $append(w.vertices, new monoVertex.ptr(0, 0, 0, obj)); - _key = obj; (w.nameIdx || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$17.keyFor(_key), { k: _key, v: idx$1 }); - return idx$1; - }; - $ptrType(monoGraph).prototype.addEdge = function addEdge(dst, src, weight, pos, typ$3) { - var dst, pos, src, typ$3, w, weight; - w = this; - w.edges = $append(w.edges, new monoEdge.ptr(dst, src, weight, pos, typ$3)); - }; - $ptrType(MethodSet).prototype.String = function String$28() { - var {_i, _r$1, _r$2, _r$3, _ref, buf, f, s, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - buf = [buf]; - s = this; - if (s.Len() === 0) { - $s = -1; return "MethodSet {}"; + if (s === "" || !((s.charCodeAt(0) === 125))) { + return [min, max, rest, ok]; } - buf[0] = new strings.Builder.ptr(ptrType$53.nil, sliceType$14.nil); - _r$1 = fmt.Fprintln(buf[0], new sliceType$6([new $String("MethodSet {")])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - _ref = s.list; - _i = 0; - /* while (true) { */ case 2: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } - f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$2 = fmt.Fprintf(buf[0], "\t%s\n", new sliceType$6([f])); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - _i++; - $s = 2; continue; - case 3: - _r$3 = fmt.Fprintln(buf[0], new sliceType$6([new $String("}")])); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$3; - $s = -1; return buf[0].String(); - /* */ } return; } var $f = {$blk: String$28, $c: true, $r, _i, _r$1, _r$2, _r$3, _ref, buf, f, s, $s};return $f; - }; - $ptrType(MethodSet).prototype.Len = function Len$7() { - var s; - s = this; - return s.list.$length; - }; - $ptrType(MethodSet).prototype.At = function At$3(i) { - var i, s, x; - s = this; - return (x = s.list, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + rest = $substring(s, 1); + ok = true; + return [min, max, rest, ok]; }; - $ptrType(MethodSet).prototype.Lookup = function Lookup$1(pkg, name) { - var {_r$1, _r$2, i, key, m, name, pkg, s, x, $s, $r, $c} = $restore(this, {pkg, name}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - key = [key]; - s = [s]; - s[0] = this; - if (s[0].Len() === 0) { - $s = -1; return ptrType$3.nil; - } - key[0] = Id(pkg, name); - _r$1 = sort.Search(s[0].list.$length, (function(key, s) { return function MethodSet·Lookup·func1(i) { - var {$24r, _r$1, i, m, x, $s, $r, $c} = $restore(this, {i}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - m = (x = s[0].list, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - _r$1 = m.obj.Id(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1 >= key[0]; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: MethodSet·Lookup·func1, $c: true, $r, $24r, _r$1, i, m, x, $s};return $f; - }; })(key, s)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - i = _r$1; - /* */ if (i < s[0].list.$length) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (i < s[0].list.$length) { */ case 2: - m = (x = s[0].list, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - _r$2 = m.obj.Id(); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (_r$2 === key[0]) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_r$2 === key[0]) { */ case 4: - $s = -1; return m; - /* } */ case 5: - /* } */ case 3: - $s = -1; return ptrType$3.nil; - /* */ } return; } var $f = {$blk: Lookup$1, $c: true, $r, _r$1, _r$2, i, key, m, name, pkg, s, x, $s};return $f; - }; - NewMethodSet = function NewMethodSet$1(T) { - var {T, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _i, _i$1, _i$2, _i$3, _i$4, _key, _key$1, _key$2, _key$3, _key$4, _key$5, _keys, _keys$1, _keys$2, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _size, _size$1, _size$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _v, alt, base, current, e, f, found, found$1, fset, i, i$1, isPtr, isPtr$1, k, k$1, list$2, m, m$1, mset, named, next, seen, t, t$1, typ$3, typ$4, typ$5, $s, $r, $c} = $restore(this, {T}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - list$2 = [list$2]; - base = false; - _tuple = deref(T); - typ$3 = _tuple[0]; - isPtr = _tuple[1]; - if (!(isPtr)) { _v = false; $s = 3; continue s; } - _r$1 = IsInterface(typ$3); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = _r$1; case 3: - /* */ if (_v) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (_v) { */ case 1: - $s = -1; return emptyMethodSet; - /* } */ case 2: - current = new sliceType$25([$clone(new embeddedType.ptr(typ$3, sliceType$13.nil, isPtr, false), embeddedType)]); - seen = new instanceLookup.ptr(arrayType$1.zero(), false); - /* while (true) { */ case 5: - /* if (!(current.$length > 0)) { break; } */ if(!(current.$length > 0)) { $s = 6; continue; } - next = sliceType$25.nil; - fset = false; - mset = false; - _ref = current; - _i = 0; - /* while (true) { */ case 7: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 8; continue; } - e = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), embeddedType); - typ$4 = e.typ; - _tuple$1 = $assertType(typ$4, ptrType$9, true); - named = _tuple$1[0]; - /* */ if (!(named === ptrType$9.nil)) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (!(named === ptrType$9.nil)) { */ case 9: - _r$2 = seen.lookup(named); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - alt = _r$2; - if (!(alt === ptrType$9.nil)) { - _i++; - /* continue; */ $s = 7; continue; - } - seen.add(named); - i = 0; - /* while (true) { */ case 12: - _r$3 = named.NumMethods(); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* if (!(i < _r$3)) { break; } */ if(!(i < _r$3)) { $s = 13; continue; } - _r$4 = named.Method(i); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$5 = new methodSet(mset).addOne(_r$4, concat(e.index, i), e.indirect, e.multiples); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - mset = _r$5; - i = i + (1) >> 0; - $s = 12; continue; - case 13: - /* } */ case 10: - _r$6 = under(typ$4); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _ref$1 = _r$6; - /* */ if ($assertType(_ref$1, ptrType$11, true)[1]) { $s = 18; continue; } - /* */ if ($assertType(_ref$1, ptrType$13, true)[1]) { $s = 19; continue; } - /* */ $s = 20; continue; - /* if ($assertType(_ref$1, ptrType$11, true)[1]) { */ case 18: - t = _ref$1.$val; - _ref$2 = t.fields; - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$2.$length)) { break; } - i$1 = _i$1; - f = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); - if (fset === false) { - fset = new $global.Map(); - } - _key = f.object.Id(); (fset || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: true }); - if (f.embedded) { - _tuple$2 = deref(f.object.typ); - typ$5 = _tuple$2[0]; - isPtr$1 = _tuple$2[1]; - next = $append(next, new embeddedType.ptr(typ$5, concat(e.index, i$1), e.indirect || isPtr$1, e.multiples)); - } - _i$1++; - } - $s = 20; continue; - /* } else if ($assertType(_ref$1, ptrType$13, true)[1]) { */ case 19: - t$1 = _ref$1.$val; - _r$7 = t$1.typeSet(); /* */ $s = 21; case 21: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _r$8 = new methodSet(mset).add(_r$7.methods, e.index, true, e.multiples); /* */ $s = 22; case 22: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - mset = _r$8; - /* } */ case 20: - _i++; - $s = 7; continue; - case 8: - _ref$3 = mset; - _i$2 = 0; - _keys = _ref$3 ? _ref$3.keys() : undefined; - _size = _ref$3 ? _ref$3.size : 0; - while (true) { - if (!(_i$2 < _size)) { break; } - _key$1 = _keys.next().value; - _entry = _ref$3.get(_key$1); - if (_entry === undefined) { - _i$2++; - continue; - } - k = _entry.k; - m = _entry.v; - _tuple$3 = (_entry$1 = $mapIndex(base,$String.keyFor(k)), _entry$1 !== undefined ? [_entry$1.v, true] : [ptrType$3.nil, false]); - found = _tuple$3[1]; - if (!found) { - if ((_entry$2 = $mapIndex(fset,$String.keyFor(k)), _entry$2 !== undefined ? _entry$2.v : false)) { - m = ptrType$3.nil; - } - if (base === false) { - base = new $global.Map(); - } - _key$2 = k; (base || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$2), { k: _key$2, v: m }); - } - _i$2++; - } - _ref$4 = fset; - _i$3 = 0; - _keys$1 = _ref$4 ? _ref$4.keys() : undefined; - _size$1 = _ref$4 ? _ref$4.size : 0; - while (true) { - if (!(_i$3 < _size$1)) { break; } - _key$3 = _keys$1.next().value; - _entry$3 = _ref$4.get(_key$3); - if (_entry$3 === undefined) { - _i$3++; - continue; - } - k$1 = _entry$3.k; - _tuple$4 = (_entry$4 = $mapIndex(base,$String.keyFor(k$1)), _entry$4 !== undefined ? [_entry$4.v, true] : [ptrType$3.nil, false]); - found$1 = _tuple$4[1]; - if (!found$1) { - if (base === false) { - base = new $global.Map(); - } - _key$4 = k$1; (base || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$4), { k: _key$4, v: ptrType$3.nil }); + $ptrType(parser).prototype.parsePerlFlags = function parsePerlFlags(s) { + var _1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, c, capture, end, err, flags, name, p, re, rest, s, sawFlag, sign, t; + rest = ""; + err = $ifaceNil; + p = this; + t = s; + if (t.length > 4 && (t.charCodeAt(2) === 80) && (t.charCodeAt(3) === 60)) { + end = strings.IndexRune(t, 62); + if (end < 0) { + err = checkUTF8(t); + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp = ""; + _tmp$1 = err; + rest = _tmp; + err = _tmp$1; + return [rest, err]; } - _i$3++; + _tmp$2 = ""; + _tmp$3 = new Error.ptr("invalid named capture", s); + rest = _tmp$2; + err = _tmp$3; + return [rest, err]; } - _r$9 = consolidateMultiples(next); /* */ $s = 23; case 23: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - current = _r$9; - $s = 5; continue; - case 6: - if ((base ? base.size : 0) === 0) { - $s = -1; return emptyMethodSet; - } - list$2[0] = sliceType$1.nil; - _ref$5 = base; - _i$4 = 0; - _keys$2 = _ref$5 ? _ref$5.keys() : undefined; - _size$2 = _ref$5 ? _ref$5.size : 0; - while (true) { - if (!(_i$4 < _size$2)) { break; } - _key$5 = _keys$2.next().value; - _entry$5 = _ref$5.get(_key$5); - if (_entry$5 === undefined) { - _i$4++; - continue; + capture = $substring(t, 0, (end + 1 >> 0)); + name = $substring(t, 4, end); + err = checkUTF8(name); + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp$4 = ""; + _tmp$5 = err; + rest = _tmp$4; + err = _tmp$5; + return [rest, err]; } - m$1 = _entry$5.v; - if (!(m$1 === ptrType$3.nil)) { - m$1.recv = T; - list$2[0] = $append(list$2[0], m$1); + if (!isValidCaptureName(name)) { + _tmp$6 = ""; + _tmp$7 = new Error.ptr("invalid named capture", capture); + rest = _tmp$6; + err = _tmp$7; + return [rest, err]; } - _i$4++; - } - $r = sort.Slice(list$2[0], (function(list$2) { return function NewMethodSet·func1(i$2, j) { - var {$24r, _r$10, _r$11, i$2, j, $s, $r, $c} = $restore(this, {i$2, j}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$10 = ((i$2 < 0 || i$2 >= list$2[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : list$2[0].$array[list$2[0].$offset + i$2]).obj.Id(); /* */ $s = 1; case 1: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _r$11 = ((j < 0 || j >= list$2[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : list$2[0].$array[list$2[0].$offset + j]).obj.Id(); /* */ $s = 2; case 2: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - $24r = _r$10 < _r$11; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: NewMethodSet·func1, $c: true, $r, $24r, _r$10, _r$11, i$2, j, $s};return $f; - }; })(list$2)); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return new MethodSet.ptr(list$2[0]); - /* */ } return; } var $f = {$blk: NewMethodSet$1, $c: true, $r, T, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _i, _i$1, _i$2, _i$3, _i$4, _key, _key$1, _key$2, _key$3, _key$4, _key$5, _keys, _keys$1, _keys$2, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _size, _size$1, _size$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _v, alt, base, current, e, f, found, found$1, fset, i, i$1, isPtr, isPtr$1, k, k$1, list$2, m, m$1, mset, named, next, seen, t, t$1, typ$3, typ$4, typ$5, $s};return $f; - }; - $pkg.NewMethodSet = NewMethodSet; - methodSet.prototype.add = function add(list$2, index$1, indirect, multiples) { - var _i, _ref, f, i, index$1, indirect, list$2, multiples, s; - s = this.$val; - if (list$2.$length === 0) { - return s; + p.numCap = p.numCap + (1) >> 0; + re = p.op(128); + re.Cap = p.numCap; + re.Name = name; + _tmp$8 = $substring(t, (end + 1 >> 0)); + _tmp$9 = $ifaceNil; + rest = _tmp$8; + err = _tmp$9; + return [rest, err]; } - _ref = list$2; - _i = 0; + c = 0; + t = $substring(t, 2); + flags = p.flags; + sign = 1; + sawFlag = false; + Loop: while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - s = new methodSet(s).addOne(f, concat(index$1, i), indirect, multiples); - _i++; - } - return s; - }; - $ptrType(methodSet).prototype.add = function(...$args) { return new methodSet(this.$get()).add(...$args); }; - methodSet.prototype.addOne = function addOne(f, index$1, indirect, multiples) { - var _entry, _key, _key$1, _tuple, f, found, index$1, indirect, key, multiples, s; - s = this.$val; - if (s === false) { - s = new $global.Map(); - } - key = f.object.Id(); - if (!multiples) { - _tuple = (_entry = $mapIndex(s,$String.keyFor(key)), _entry !== undefined ? [_entry.v, true] : [ptrType$3.nil, false]); - found = _tuple[1]; - if (!found && (indirect || !f.hasPtrRecv())) { - _key = key; (s || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: new Selection.ptr(1, $ifaceNil, f, index$1, indirect) }); - return s; + if (!(!(t === ""))) { break; } + _tuple = nextRune(t); + c = _tuple[0]; + t = _tuple[1]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp$10 = ""; + _tmp$11 = err; + rest = _tmp$10; + err = _tmp$11; + return [rest, err]; } - } - _key$1 = key; (s || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$1), { k: _key$1, v: ptrType$3.nil }); - return s; - }; - $ptrType(methodSet).prototype.addOne = function(...$args) { return new methodSet(this.$get()).addOne(...$args); }; - $ptrType(Map).prototype.Key = function Key() { - var m; - m = this; - return m.key; - }; - $ptrType(Map).prototype.Elem = function Elem$2() { - var m; - m = this; - return m.elem; - }; - $ptrType(Map).prototype.Underlying = function Underlying$8() { - var t; - t = this; - return t; - }; - $ptrType(Map).prototype.String = function String$29() { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = TypeString(t, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$29, $c: true, $r, $24r, _r$1, t, $s};return $f; - }; - LookupFieldOrMethod = function LookupFieldOrMethod$1(T, addressable, pkg, name) { - var {T, _r$1, _r$2, _r$3, _r$4, _r$5, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, addressable, index$1, indirect, name, obj, ok, ok$1, p, pkg, t, t$1, $s, $r, $c} = $restore(this, {T, addressable, pkg, name}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - obj = $ifaceNil; - index$1 = sliceType$13.nil; - indirect = false; - if ($interfaceIsEqual(T, $ifaceNil)) { - $panic(new $String("LookupFieldOrMethod on nil type")); - } - _tuple = $assertType(T, ptrType$9, true); - t = _tuple[0]; - /* */ if (!(t === ptrType$9.nil)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(t === ptrType$9.nil)) { */ case 1: - _r$1 = t.Underlying(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$1 = $assertType(_r$1, ptrType$26, true); - p = _tuple$1[0]; - /* */ if (!(p === ptrType$26.nil)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (!(p === ptrType$26.nil)) { */ case 4: - _r$2 = lookupFieldOrMethod(p, false, pkg, name, false); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple$2 = _r$2; - obj = _tuple$2[0]; - index$1 = _tuple$2[1]; - indirect = _tuple$2[2]; - _tuple$3 = $assertType(obj, ptrType$2, true); - ok = _tuple$3[1]; - if (ok) { - _tmp = $ifaceNil; - _tmp$1 = sliceType$13.nil; - _tmp$2 = false; - obj = _tmp; - index$1 = _tmp$1; - indirect = _tmp$2; - $s = -1; return [obj, index$1, indirect]; - } - $s = -1; return [obj, index$1, indirect]; - /* } */ case 5: - /* } */ case 2: - _r$3 = lookupFieldOrMethod(T, addressable, pkg, name, false); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple$4 = _r$3; - obj = _tuple$4[0]; - index$1 = _tuple$4[1]; - indirect = _tuple$4[2]; - /* */ if (false && $interfaceIsEqual(obj, $ifaceNil) && isTypeParam(T)) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (false && $interfaceIsEqual(obj, $ifaceNil) && isTypeParam(T)) { */ case 8: - _r$4 = coreType(T); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - t$1 = _r$4; - /* */ if (!($interfaceIsEqual(t$1, $ifaceNil))) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (!($interfaceIsEqual(t$1, $ifaceNil))) { */ case 11: - _r$5 = lookupFieldOrMethod(t$1, addressable, pkg, name, false); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _tuple$5 = _r$5; - obj = _tuple$5[0]; - index$1 = _tuple$5[1]; - indirect = _tuple$5[2]; - _tuple$6 = $assertType(obj, ptrType$16, true); - ok$1 = _tuple$6[1]; - if (!ok$1) { - _tmp$3 = $ifaceNil; - _tmp$4 = sliceType$13.nil; - _tmp$5 = false; - obj = _tmp$3; - index$1 = _tmp$4; - indirect = _tmp$5; + _1 = c; + if (_1 === (105)) { + flags = (flags | (1)) >>> 0; + sawFlag = true; + } else if (_1 === (109)) { + flags = (flags & ~(16)) << 16 >>> 16; + sawFlag = true; + } else if (_1 === (115)) { + flags = (flags | (8)) >>> 0; + sawFlag = true; + } else if (_1 === (85)) { + flags = (flags | (32)) >>> 0; + sawFlag = true; + } else if (_1 === (45)) { + if (sign < 0) { + break Loop; } - /* } */ case 12: - /* } */ case 9: - $s = -1; return [obj, index$1, indirect]; - /* */ } return; } var $f = {$blk: LookupFieldOrMethod$1, $c: true, $r, T, _r$1, _r$2, _r$3, _r$4, _r$5, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, addressable, index$1, indirect, name, obj, ok, ok$1, p, pkg, t, t$1, $s};return $f; - }; - $pkg.LookupFieldOrMethod = LookupFieldOrMethod; - lookupFieldOrMethod = function lookupFieldOrMethod$1(T, addressable, pkg, name, foldCase) { - var {T, _i, _i$1, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _ref$1, _ref$2, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, addressable, alt, current, e, f, f$1, foldCase, i, i$1, i$2, index$1, indirect, isPtr, isPtr$1, m, m$1, name, named, next, obj, ok, pkg, seen, t, t$1, typ$3, typ$4, typ$5, $s, $r, $c} = $restore(this, {T, addressable, pkg, name, foldCase}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - obj = $ifaceNil; - index$1 = sliceType$13.nil; - indirect = false; - if (name === "_") { - $s = -1; return [obj, index$1, indirect]; - } - _tuple = deref(T); - typ$3 = _tuple[0]; - isPtr = _tuple[1]; - /* */ if (isPtr) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (isPtr) { */ case 1: - _r$1 = under(typ$3); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$1 = $assertType(_r$1, ptrType$13, true); - ok = _tuple$1[1]; - if (ok) { - $s = -1; return [obj, index$1, indirect]; - } - /* } */ case 2: - current = new sliceType$25([$clone(new embeddedType.ptr(typ$3, sliceType$13.nil, isPtr, false), embeddedType)]); - seen = new instanceLookup.ptr(arrayType$1.zero(), false); - /* while (true) { */ case 4: - /* if (!(current.$length > 0)) { break; } */ if(!(current.$length > 0)) { $s = 5; continue; } - next = sliceType$25.nil; - _ref = current; - _i = 0; - /* while (true) { */ case 6: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 7; continue; } - e = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), embeddedType); - typ$4 = e.typ; - _tuple$2 = $assertType(typ$4, ptrType$9, true); - named = _tuple$2[0]; - /* */ if (!(named === ptrType$9.nil)) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (!(named === ptrType$9.nil)) { */ case 8: - _r$2 = seen.lookup(named); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - alt = _r$2; - if (!(alt === ptrType$9.nil)) { - _i++; - /* continue; */ $s = 6; continue; - } - seen.add(named); - _r$3 = named.lookupMethod(pkg, name, foldCase); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple$3 = _r$3; - i = _tuple$3[0]; - m = _tuple$3[1]; - if (!(m === ptrType$2.nil)) { - index$1 = concat(e.index, i); - if (!($interfaceIsEqual(obj, $ifaceNil)) || e.multiples) { - _tmp = $ifaceNil; - _tmp$1 = index$1; - _tmp$2 = false; - obj = _tmp; - index$1 = _tmp$1; - indirect = _tmp$2; - $s = -1; return [obj, index$1, indirect]; - } - obj = m; - indirect = e.indirect; - _i++; - /* continue; */ $s = 6; continue; - } - /* } */ case 9: - _r$4 = under(typ$4); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _ref$1 = _r$4; - /* */ if ($assertType(_ref$1, ptrType$11, true)[1]) { $s = 13; continue; } - /* */ if ($assertType(_ref$1, ptrType$13, true)[1]) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if ($assertType(_ref$1, ptrType$11, true)[1]) { */ case 13: - t = _ref$1.$val; - _ref$2 = t.fields; - _i$1 = 0; - /* while (true) { */ case 16: - /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 17; continue; } - i$1 = _i$1; - f = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); - /* */ if (f.object.sameId(pkg, name)) { $s = 18; continue; } - /* */ $s = 19; continue; - /* if (f.object.sameId(pkg, name)) { */ case 18: - $r = assert(!($interfaceIsEqual(f.object.typ, $ifaceNil))); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - index$1 = concat(e.index, i$1); - if (!($interfaceIsEqual(obj, $ifaceNil)) || e.multiples) { - _tmp$3 = $ifaceNil; - _tmp$4 = index$1; - _tmp$5 = false; - obj = _tmp$3; - index$1 = _tmp$4; - indirect = _tmp$5; - $s = -1; return [obj, index$1, indirect]; - } - obj = f; - indirect = e.indirect; - _i$1++; - /* continue; */ $s = 16; continue; - /* } */ case 19: - if ($interfaceIsEqual(obj, $ifaceNil) && f.embedded) { - _tuple$4 = deref(f.object.typ); - typ$5 = _tuple$4[0]; - isPtr$1 = _tuple$4[1]; - next = $append(next, new embeddedType.ptr(typ$5, concat(e.index, i$1), e.indirect || isPtr$1, e.multiples)); - } - _i$1++; - $s = 16; continue; - case 17: - $s = 15; continue; - /* } else if ($assertType(_ref$1, ptrType$13, true)[1]) { */ case 14: - t$1 = _ref$1.$val; - _r$5 = t$1.typeSet(); /* */ $s = 21; case 21: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$6 = _r$5.LookupMethod(pkg, name, foldCase); /* */ $s = 22; case 22: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _tuple$5 = _r$6; - i$2 = _tuple$5[0]; - m$1 = _tuple$5[1]; - /* */ if (!(m$1 === ptrType$2.nil)) { $s = 23; continue; } - /* */ $s = 24; continue; - /* if (!(m$1 === ptrType$2.nil)) { */ case 23: - $r = assert(!($interfaceIsEqual(m$1.object.typ, $ifaceNil))); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - index$1 = concat(e.index, i$2); - if (!($interfaceIsEqual(obj, $ifaceNil)) || e.multiples) { - _tmp$6 = $ifaceNil; - _tmp$7 = index$1; - _tmp$8 = false; - obj = _tmp$6; - index$1 = _tmp$7; - indirect = _tmp$8; - $s = -1; return [obj, index$1, indirect]; - } - obj = m$1; - indirect = e.indirect; - /* } */ case 24: - /* } */ case 15: - _i++; - $s = 6; continue; - case 7: - if (!($interfaceIsEqual(obj, $ifaceNil))) { - _tuple$6 = $assertType(obj, ptrType$2, true); - f$1 = _tuple$6[0]; - if (!(f$1 === ptrType$2.nil)) { - if (f$1.hasPtrRecv() && !indirect && !addressable) { - _tmp$9 = $ifaceNil; - _tmp$10 = sliceType$13.nil; - _tmp$11 = true; - obj = _tmp$9; - index$1 = _tmp$10; - indirect = _tmp$11; - $s = -1; return [obj, index$1, indirect]; + sign = -1; + flags = ~flags << 16 >>> 16; + sawFlag = false; + } else if ((_1 === (58)) || (_1 === (41))) { + if (sign < 0) { + if (!sawFlag) { + break Loop; } + flags = ~flags << 16 >>> 16; } - $s = -1; return [obj, index$1, indirect]; - } - _r$7 = consolidateMultiples(next); /* */ $s = 26; case 26: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - current = _r$7; - $s = 4; continue; - case 5: - _tmp$12 = $ifaceNil; - _tmp$13 = sliceType$13.nil; - _tmp$14 = false; - obj = _tmp$12; - index$1 = _tmp$13; - indirect = _tmp$14; - $s = -1; return [obj, index$1, indirect]; - /* */ } return; } var $f = {$blk: lookupFieldOrMethod$1, $c: true, $r, T, _i, _i$1, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _ref$1, _ref$2, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, addressable, alt, current, e, f, f$1, foldCase, i, i$1, i$2, index$1, indirect, isPtr, isPtr$1, m, m$1, name, named, next, obj, ok, pkg, seen, t, t$1, typ$3, typ$4, typ$5, $s};return $f; - }; - consolidateMultiples = function consolidateMultiples$1(list$2) { - var {_i, _key, _r$1, _ref, _tuple, e, found, i, list$2, n, prev, $s, $r, $c} = $restore(this, {list$2}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (list$2.$length <= 1) { - $s = -1; return list$2; - } - n = 0; - prev = new $global.Map(); - _ref = list$2; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - e = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), embeddedType); - _r$1 = lookupType(prev, e.typ); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - i = _tuple[0]; - found = _tuple[1]; - if (found) { - ((i < 0 || i >= list$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : list$2.$array[list$2.$offset + i]).multiples = true; + if (c === 58) { + p.op(128); + } + p.flags = flags; + _tmp$12 = t; + _tmp$13 = $ifaceNil; + rest = _tmp$12; + err = _tmp$13; + return [rest, err]; } else { - _key = e.typ; (prev || $throwRuntimeError("assignment to entry in nil map")).set(Type.keyFor(_key), { k: _key, v: n }); - embeddedType.copy(((n < 0 || n >= list$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : list$2.$array[list$2.$offset + n]), e); - n = n + (1) >> 0; - } - _i++; - $s = 1; continue; - case 2: - $s = -1; return $subslice(list$2, 0, n); - /* */ } return; } var $f = {$blk: consolidateMultiples$1, $c: true, $r, _i, _key, _r$1, _ref, _tuple, e, found, i, list$2, n, prev, $s};return $f; + break Loop; + } + } + _tmp$14 = ""; + _tmp$15 = new Error.ptr("invalid or unsupported Perl syntax", $substring(s, 0, (s.length - t.length >> 0))); + rest = _tmp$14; + err = _tmp$15; + return [rest, err]; }; - lookupType = function lookupType$1(m, typ$3) { - var {_entry, _entry$1, _i, _key, _keys, _r$1, _ref, _size, _tuple, found, i, i$1, m, t, typ$3, $s, $r, $c} = $restore(this, {m, typ$3}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _tuple = (_entry = $mapIndex(m,Type.keyFor(typ$3)), _entry !== undefined ? [_entry.v, true] : [0, false]); - i = _tuple[0]; - found = _tuple[1]; - if (found) { - $s = -1; return [i, true]; + isValidCaptureName = function isValidCaptureName$1(name) { + var _i, _ref, _rune, c, name; + if (name === "") { + return false; } - _ref = m; + _ref = name; _i = 0; - _keys = _ref ? _ref.keys() : undefined; - _size = _ref ? _ref.size : 0; - /* while (true) { */ case 1: - /* if (!(_i < _size)) { break; } */ if(!(_i < _size)) { $s = 2; continue; } - _key = _keys.next().value; - _entry$1 = _ref.get(_key); - if (_entry$1 === undefined) { - _i++; - /* continue; */ $s = 1; continue; + while (true) { + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + c = _rune[0]; + if (!((c === 95)) && !isalnum(c)) { + return false; } - t = _entry$1.k; - i$1 = _entry$1.v; - _r$1 = Identical(t, typ$3); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (_r$1) { */ case 3: - $s = -1; return [i$1, true]; - /* } */ case 4: - _i++; - $s = 1; continue; - case 2: - $s = -1; return [0, false]; - /* */ } return; } var $f = {$blk: lookupType$1, $c: true, $r, _entry, _entry$1, _i, _key, _keys, _r$1, _ref, _size, _tuple, found, i, i$1, m, t, typ$3, $s};return $f; - }; - $ptrType(instanceLookup).prototype.lookup = function lookup$1(inst) { - var {_entry, _i, _i$1, _r$1, _r$2, _ref, _ref$1, _v, inst, l, t, t$1, $s, $r, $c} = $restore(this, {inst}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - l = this; - _ref = l.buf; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < 3)) { break; } */ if(!(_i < 3)) { $s = 2; continue; } - t = ((_i < 0 || _i >= _ref.length) ? ($throwRuntimeError("index out of range"), undefined) : _ref[_i]); - if (!(!(t === ptrType$9.nil))) { _v = false; $s = 5; continue s; } - _r$1 = Identical(inst, t); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = _r$1; case 5: - /* */ if (_v) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (_v) { */ case 3: - $s = -1; return t; - /* } */ case 4: - _i++; - $s = 1; continue; - case 2: - _ref$1 = (_entry = $mapIndex(l.m,ptrType$9.keyFor(inst.Origin())), _entry !== undefined ? _entry.v : sliceType$7.nil); - _i$1 = 0; - /* while (true) { */ case 7: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 8; continue; } - t$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - _r$2 = Identical(inst, t$1); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (_r$2) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (_r$2) { */ case 9: - $s = -1; return t$1; - /* } */ case 10: - _i$1++; - $s = 7; continue; - case 8: - $s = -1; return ptrType$9.nil; - /* */ } return; } var $f = {$blk: lookup$1, $c: true, $r, _entry, _i, _i$1, _r$1, _r$2, _ref, _ref$1, _v, inst, l, t, t$1, $s};return $f; + _i += _rune[1]; + } + return true; }; - $ptrType(instanceLookup).prototype.add = function add$1(inst) { - var _entry, _i, _key, _ref, i, inst, insts, l, t, x; - l = this; - _ref = l.buf; - _i = 0; + $ptrType(parser).prototype.parseInt = function parseInt(s) { + var i, n, ok, p, rest, s, t; + n = 0; + rest = ""; + ok = false; + p = this; + if (s === "" || s.charCodeAt(0) < 48 || 57 < s.charCodeAt(0)) { + return [n, rest, ok]; + } + if (s.length >= 2 && (s.charCodeAt(0) === 48) && 48 <= s.charCodeAt(1) && s.charCodeAt(1) <= 57) { + return [n, rest, ok]; + } + t = s; while (true) { - if (!(_i < 3)) { break; } - i = _i; - t = ((_i < 0 || _i >= _ref.length) ? ($throwRuntimeError("index out of range"), undefined) : _ref[_i]); - if (t === ptrType$9.nil) { - (x = l.buf, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i] = inst)); - return; - } - _i++; + if (!(!(s === "") && 48 <= s.charCodeAt(0) && s.charCodeAt(0) <= 57)) { break; } + s = $substring(s, 1); } - if (l.m === false) { - l.m = new $global.Map(); + rest = s; + ok = true; + t = $substring(t, 0, (t.length - s.length >> 0)); + i = 0; + while (true) { + if (!(i < t.length)) { break; } + if (n >= 100000000) { + n = -1; + break; + } + n = (($imul(n, 10)) + ((t.charCodeAt(i) >> 0)) >> 0) - 48 >> 0; + i = i + (1) >> 0; } - insts = (_entry = $mapIndex(l.m,ptrType$9.keyFor(inst.Origin())), _entry !== undefined ? _entry.v : sliceType$7.nil); - _key = inst.Origin(); (l.m || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$9.keyFor(_key), { k: _key, v: $append(insts, inst) }); - }; - $ptrType(Checker).prototype.missingMethod = function missingMethod(V, T, static$1) { - var {T, V, _i, _i$1, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _v, alt, check, f, f$1, found, m, m$1, method, obj, static$1, tset, u, $s, $r, $c} = $restore(this, {V, T, static$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - method = ptrType$2.nil; - alt = ptrType$2.nil; - check = this; - _r$1 = T.NumMethods(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1 === 0) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (_r$1 === 0) { */ case 1: - $s = -1; return [method, alt]; - /* } */ case 2: - _r$2 = under(V); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple = $assertType(_r$2, ptrType$13, true); - u = _tuple[0]; - /* */ if (!(u === ptrType$13.nil)) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (!(u === ptrType$13.nil)) { */ case 5: - _r$3 = u.typeSet(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - tset = _r$3; - _r$4 = T.typeSet(); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _ref = _r$4.methods; - _i = 0; - /* while (true) { */ case 9: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 10; continue; } - m = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _tuple$1 = tset.LookupMethod(m.object.pkg, m.object.name, false); - f = _tuple$1[1]; - if (f === ptrType$2.nil) { - if (!static$1) { - _i++; - /* continue; */ $s = 9; continue; - } - _tmp = m; - _tmp$1 = ptrType$2.nil; - method = _tmp; - alt = _tmp$1; - $s = -1; return [method, alt]; - } - _r$5 = Identical(f.object.typ, m.object.typ); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* */ if (!_r$5) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (!_r$5) { */ case 11: - _tmp$2 = m; - _tmp$3 = f; - method = _tmp$2; - alt = _tmp$3; - $s = -1; return [method, alt]; - /* } */ case 12: - _i++; - $s = 9; continue; - case 10: - $s = -1; return [method, alt]; - /* } */ case 6: - _r$6 = T.typeSet(); /* */ $s = 14; case 14: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _ref$1 = _r$6.methods; - _i$1 = 0; - /* while (true) { */ case 15: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 16; continue; } - m$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - _r$7 = lookupFieldOrMethod(V, false, m$1.object.pkg, m$1.object.name, false); /* */ $s = 17; case 17: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _tuple$2 = _r$7; - obj = _tuple$2[0]; - found = !($interfaceIsEqual(obj, $ifaceNil)); - /* */ if (!found) { $s = 18; continue; } - /* */ $s = 19; continue; - /* if (!found) { */ case 18: - _r$8 = lookupFieldOrMethod(NewPointer(V), false, m$1.object.pkg, m$1.object.name, false); /* */ $s = 20; case 20: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _tuple$3 = _r$8; - obj = _tuple$3[0]; - /* */ if ($interfaceIsEqual(obj, $ifaceNil)) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if ($interfaceIsEqual(obj, $ifaceNil)) { */ case 21: - _r$9 = lookupFieldOrMethod(V, false, m$1.object.pkg, m$1.object.name, true); /* */ $s = 23; case 23: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _tuple$4 = _r$9; - obj = _tuple$4[0]; - /* } */ case 22: - /* } */ case 19: - _tuple$5 = $assertType(obj, ptrType$2, true); - f$1 = _tuple$5[0]; - if (f$1 === ptrType$2.nil) { - _tmp$4 = m$1; - _tmp$5 = ptrType$2.nil; - method = _tmp$4; - alt = _tmp$5; - $s = -1; return [method, alt]; - } - /* */ if (!(check === ptrType$6.nil)) { $s = 24; continue; } - /* */ $s = 25; continue; - /* if (!(check === ptrType$6.nil)) { */ case 24: - $r = check.objDecl(f$1, ptrType$9.nil); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 25: - if (!found) { _v = true; $s = 29; continue s; } - _r$10 = Identical(f$1.object.typ, m$1.object.typ); /* */ $s = 30; case 30: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _v = !_r$10; case 29: - /* */ if (_v) { $s = 27; continue; } - /* */ $s = 28; continue; - /* if (_v) { */ case 27: - _tmp$6 = m$1; - _tmp$7 = f$1; - method = _tmp$6; - alt = _tmp$7; - $s = -1; return [method, alt]; - /* } */ case 28: - _i$1++; - $s = 15; continue; - case 16: - $s = -1; return [method, alt]; - /* */ } return; } var $f = {$blk: missingMethod, $c: true, $r, T, V, _i, _i$1, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _v, alt, check, f, f$1, found, m, m$1, method, obj, static$1, tset, u, $s};return $f; - }; - $ptrType(Checker).prototype.missingMethodCause = function missingMethodCause(V, T, m, alt) { - var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, T, V, _arg, _arg$1, _arg$2, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, alt, altS, check, fld, m, mS, mname, obj, $s, $r, $c} = $restore(this, {V, T, m, alt}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - mname = "method " + m.object.Name(); - /* */ if (!(alt === ptrType$2.nil)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(alt === ptrType$2.nil)) { */ case 1: - /* */ if (!(m.object.Name() === alt.object.Name())) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!(m.object.Name() === alt.object.Name())) { */ case 3: - _arg = new $String(mname); - _r$1 = check.funcString(alt, false); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _arg$1 = new $String(_r$1); - _r$2 = check.funcString(m, false); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _arg$2 = new $String(_r$2); - _r$3 = check.sprintf("(missing %s)\n\t\thave %s\n\t\twant %s", new sliceType$6([_arg, _arg$1, _arg$2])); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r = _r$3; - $s = 8; case 8: return $24r; - /* } */ case 4: - _r$4 = Identical(m.object.typ, alt.object.typ); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if (_r$4) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (_r$4) { */ case 9: - _r$5 = check.sprintf("(%s has pointer receiver)", new sliceType$6([new $String(mname)])); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - $24r$1 = _r$5; - $s = 13; case 13: return $24r$1; - /* } */ case 10: - _r$6 = check.funcString(alt, false); /* */ $s = 14; case 14: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _tmp = _r$6; - _r$7 = check.funcString(m, false); /* */ $s = 15; case 15: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _tmp$1 = _r$7; - altS = _tmp; - mS = _tmp$1; - /* */ if (altS === mS) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (altS === mS) { */ case 16: - _r$8 = check.funcString(alt, true); /* */ $s = 18; case 18: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _tmp$2 = _r$8; - _r$9 = check.funcString(m, true); /* */ $s = 19; case 19: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _tmp$3 = _r$9; - altS = _tmp$2; - mS = _tmp$3; - /* } */ case 17: - _r$10 = check.sprintf("(wrong type for %s)\n\t\thave %s\n\t\twant %s", new sliceType$6([new $String(mname), new $String(altS), new $String(mS)])); /* */ $s = 20; case 20: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - $24r$2 = _r$10; - $s = 21; case 21: return $24r$2; - /* } */ case 2: - _r$11 = isInterfacePtr(V); /* */ $s = 24; case 24: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - /* */ if (_r$11) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if (_r$11) { */ case 22: - _r$12 = check.interfacePtrError(V); /* */ $s = 25; case 25: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - $24r$3 = "(" + _r$12 + ")"; - $s = 26; case 26: return $24r$3; - /* } */ case 23: - _r$13 = isInterfacePtr(T); /* */ $s = 29; case 29: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - /* */ if (_r$13) { $s = 27; continue; } - /* */ $s = 28; continue; - /* if (_r$13) { */ case 27: - _r$14 = check.interfacePtrError(T); /* */ $s = 30; case 30: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - $24r$4 = "(" + _r$14 + ")"; - $s = 31; case 31: return $24r$4; - /* } */ case 28: - _r$15 = lookupFieldOrMethod(V, true, m.object.pkg, m.object.name, false); /* */ $s = 32; case 32: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - _tuple = _r$15; - obj = _tuple[0]; - _tuple$1 = $assertType(obj, ptrType$16, true); - fld = _tuple$1[0]; - /* */ if (!(fld === ptrType$16.nil)) { $s = 33; continue; } - /* */ $s = 34; continue; - /* if (!(fld === ptrType$16.nil)) { */ case 33: - _r$16 = check.sprintf("(%s.%s is a field, not a method)", new sliceType$6([V, new $String(fld.object.Name())])); /* */ $s = 35; case 35: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - $24r$5 = _r$16; - $s = 36; case 36: return $24r$5; - /* } */ case 34: - _r$17 = check.sprintf("(missing %s)", new sliceType$6([new $String(mname)])); /* */ $s = 37; case 37: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - $24r$6 = _r$17; - $s = 38; case 38: return $24r$6; - /* */ } return; } var $f = {$blk: missingMethodCause, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, T, V, _arg, _arg$1, _arg$2, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, alt, altS, check, fld, m, mS, mname, obj, $s};return $f; - }; - isInterfacePtr = function isInterfacePtr$1(T) { - var {$24r, T, _r$1, _r$2, _tuple, _v, p, $s, $r, $c} = $restore(this, {T}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = under(T); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = $assertType(_r$1, ptrType$26, true); - p = _tuple[0]; - if (!(!(p === ptrType$26.nil))) { _v = false; $s = 2; continue s; } - _r$2 = IsInterface(p.base); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _v = _r$2; case 2: - $24r = _v; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: isInterfacePtr$1, $c: true, $r, $24r, T, _r$1, _r$2, _tuple, _v, p, $s};return $f; + return [n, rest, ok]; }; - $ptrType(Checker).prototype.interfacePtrError = function interfacePtrError(T) { - var {$24r, $24r$1, T, _r$1, _r$2, _r$3, _r$4, _tuple, check, p, $s, $r, $c} = $restore(this, {T}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = isInterfacePtr(T); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $r = assert(_r$1); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$2 = under(T); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple = $assertType(_r$2, ptrType$26, true); - p = _tuple[0]; - /* */ if (isTypeParam(p.base)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (isTypeParam(p.base)) { */ case 4: - _r$3 = check.sprintf("type %s is pointer to type parameter, not type parameter", new sliceType$6([T])); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r = _r$3; - $s = 7; case 7: return $24r; - /* } */ case 5: - _r$4 = check.sprintf("type %s is pointer to interface, not interface", new sliceType$6([T])); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $24r$1 = _r$4; - $s = 9; case 9: return $24r$1; - /* */ } return; } var $f = {$blk: interfacePtrError, $c: true, $r, $24r, $24r$1, T, _r$1, _r$2, _r$3, _r$4, _tuple, check, p, $s};return $f; - }; - $ptrType(Checker).prototype.funcString = function funcString(f, pkgInfo) { - var {buf, check, f, pkgInfo, qf, w, $s, $r, $c} = $restore(this, {f, pkgInfo}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - buf = bytes.NewBufferString(f.object.name); - qf = $throwNilPointerError; - if (!(check === ptrType$6.nil) && !pkgInfo) { - qf = $methodVal(check, "qualifier"); - } - w = newTypeWriter(buf, qf); - w.pkgInfo = pkgInfo; - w.paramNames = false; - $r = w.signature($assertType(f.object.typ, ptrType$27)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return buf.String(); - /* */ } return; } var $f = {$blk: funcString, $c: true, $r, buf, check, f, pkgInfo, qf, w, $s};return $f; - }; - $ptrType(Checker).prototype.assertableTo = function assertableTo(V, T) { - var {$24r, T, V, _r$1, _r$2, _tuple, check, method, wrongType, $s, $r, $c} = $restore(this, {V, T}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - method = ptrType$2.nil; - wrongType = ptrType$2.nil; - check = this; - _r$1 = IsInterface(T); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (_r$1) { */ case 1: - $s = -1; return [method, wrongType]; - /* } */ case 2: - _r$2 = check.missingMethod(T, V, false); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple = _r$2; - method = _tuple[0]; - wrongType = _tuple[1]; - $24r = [method, wrongType]; - $s = 5; case 5: return $24r; - /* */ } return; } var $f = {$blk: assertableTo, $c: true, $r, $24r, T, V, _r$1, _r$2, _tuple, check, method, wrongType, $s};return $f; + isCharClass = function isCharClass$1(re) { + var re; + return (re.Op === 3) && (re.Rune.$length === 1) || (re.Op === 4) || (re.Op === 5) || (re.Op === 6); }; - deref = function deref$1(typ$3) { - var _tuple, p, typ$3; - _tuple = $assertType(typ$3, ptrType$26, true); - p = _tuple[0]; - if (!(p === ptrType$26.nil)) { - if ($interfaceIsEqual(p.base, $ifaceNil)) { - if (false) { - $panic(new $String("pointer with nil base type (possibly due to an invalid cyclic declaration)")); + matchRune = function matchRune$1(re, r) { + var _1, i, r, re, x, x$1, x$2, x$3; + _1 = re.Op; + if (_1 === (3)) { + return (re.Rune.$length === 1) && ((x = re.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) === r); + } else if (_1 === (4)) { + i = 0; + while (true) { + if (!(i < re.Rune.$length)) { break; } + if ((x$1 = re.Rune, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])) <= r && r <= (x$2 = re.Rune, x$3 = i + 1 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3]))) { + return true; } - return [(0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]), true]; + i = i + (2) >> 0; } - return [p.base, true]; + return false; + } else if (_1 === (5)) { + return !((r === 10)); + } else if (_1 === (6)) { + return true; } - return [typ$3, false]; + return false; }; - derefStructPtr = function derefStructPtr$1(typ$3) { - var {_r$1, _r$2, _tuple, _tuple$1, ok, p, typ$3, $s, $r, $c} = $restore(this, {typ$3}); + $ptrType(parser).prototype.parseVerticalBar = function parseVerticalBar() { + var {_r, _r$1, p, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = under(typ$3); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = $assertType(_r$1, ptrType$26, true); - p = _tuple[0]; - /* */ if (!(p === ptrType$26.nil)) { $s = 2; continue; } + p = this; + _r = p.concat(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + _r$1 = p.swapVerticalBar(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 2; continue; } /* */ $s = 3; continue; - /* if (!(p === ptrType$26.nil)) { */ case 2: - _r$2 = under(p.base); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple$1 = $assertType(_r$2, ptrType$11, true); - ok = _tuple$1[1]; - if (ok) { - $s = -1; return p.base; - } + /* if (!_r$1) { */ case 2: + p.op(129); /* } */ case 3: - $s = -1; return typ$3; - /* */ } return; } var $f = {$blk: derefStructPtr$1, $c: true, $r, _r$1, _r$2, _tuple, _tuple$1, ok, p, typ$3, $s};return $f; - }; - concat = function concat$1(list$2, i) { - var i, list$2, t; - t = sliceType$13.nil; - t = $appendSlice(t, list$2); - return $append(t, i); - }; - fieldIndex = function fieldIndex$1(fields, pkg, name) { - var _i, _ref, f, fields, i, name, pkg; - if (!(name === "_")) { - _ref = fields; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (f.object.sameId(pkg, name)) { - return i; - } - _i++; - } - } - return -1; + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: parseVerticalBar, $c: true, $r, _r, _r$1, p, $s};return $f; }; - lookupMethod = function lookupMethod$2(methods, pkg, name, foldCase) { - var _i, _ref, foldCase, i, m, methods, name, pkg; - if (!(name === "_")) { - _ref = methods; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - m = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if ((m.object.name === name || foldCase && strings.EqualFold(m.object.name, name)) && m.object.sameId(pkg, m.object.name)) { - return [i, m]; + mergeCharClass = function mergeCharClass$1(dst, src) { + var _1, dst, src, x, x$1, x$2, x$3, x$4; + switch (0) { default: + _1 = dst.Op; + if (_1 === (6)) { + } else if (_1 === (5)) { + if (matchRune(src, 10)) { + dst.Op = 6; } - _i++; + } else if (_1 === (4)) { + if (src.Op === 3) { + dst.Rune = appendLiteral(dst.Rune, (x = src.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])), src.Flags); + } else { + dst.Rune = appendClass(dst.Rune, src.Rune); + } + } else if (_1 === (3)) { + if (((x$1 = src.Rune, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])) === (x$2 = dst.Rune, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0]))) && (src.Flags === dst.Flags)) { + break; + } + dst.Op = 4; + dst.Rune = appendLiteral($subslice(dst.Rune, 0, 0), (x$3 = dst.Rune, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])), dst.Flags); + dst.Rune = appendLiteral(dst.Rune, (x$4 = src.Rune, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])), src.Flags); } } - return [-1, ptrType$2.nil]; }; - $ptrType(Checker).prototype.labels = function labels(body) { - var {_arg, _arg$1, _arg$2, _entry, _i, _i$1, _key, _keys, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _size, all, alt, body, check, code, fwdJumps, jmp, lbl, msg, name, name$1, obj, $s, $r, $c} = $restore(this, {body}); + $ptrType(parser).prototype.swapVerticalBar = function swapVerticalBar() { + var {_tmp, _tmp$1, n, p, re1, re1$1, re2, re3, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _arg = ptrType.nil; - _arg$1 = body.Pos(); - _r$1 = body.End(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _arg$2 = _r$1; - _r$2 = NewScope(_arg, _arg$1, _arg$2, "label"); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - all = _r$2; - _r$3 = check.blockBranches(all, ptrType$92.nil, ptrType$65.nil, body.List); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - fwdJumps = _r$3; - _ref = fwdJumps; - _i = 0; - /* while (true) { */ case 4: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 5; continue; } - jmp = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - msg = ""; - code = 0; - name = jmp.Label.Name; - _r$4 = all.Lookup(name); /* */ $s = 6; case 6: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - alt = _r$4; - if (!($interfaceIsEqual(alt, $ifaceNil))) { - msg = "goto %s jumps into block"; - $assertType(alt, ptrType$91).used = true; - code = 124; - } else { - msg = "label %s not declared"; - code = 119; + p = this; + n = p.stack.$length; + if (n >= 3 && ((x = p.stack, x$1 = n - 2 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Op === 129) && isCharClass((x$2 = p.stack, x$3 = n - 1 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3]))) && isCharClass((x$4 = p.stack, x$5 = n - 3 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])))) { + re1 = (x$6 = p.stack, x$7 = n - 1 >> 0, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])); + re3 = (x$8 = p.stack, x$9 = n - 3 >> 0, ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + x$9])); + if (re1.Op > re3.Op) { + _tmp = re3; + _tmp$1 = re1; + re1 = _tmp; + re3 = _tmp$1; + (x$10 = p.stack, x$11 = n - 3 >> 0, ((x$11 < 0 || x$11 >= x$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + x$11] = re3)); } - $r = check.errorf(jmp.Label, code, msg, new sliceType$6([new $String(name)])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 4; continue; - case 5: - _ref$1 = all.elems; - _i$1 = 0; - _keys = _ref$1 ? _ref$1.keys() : undefined; - _size = _ref$1 ? _ref$1.size : 0; - /* while (true) { */ case 8: - /* if (!(_i$1 < _size)) { break; } */ if(!(_i$1 < _size)) { $s = 9; continue; } - _key = _keys.next().value; - _entry = _ref$1.get(_key); - if (_entry === undefined) { - _i$1++; - /* continue; */ $s = 8; continue; - } - name$1 = _entry.k; - obj = _entry.v; - _r$5 = resolve(name$1, obj); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - obj = _r$5; - lbl = $assertType(obj, ptrType$91); - /* */ if (!lbl.used) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (!lbl.used) { */ case 11: - $r = check.softErrorf(lbl, 122, "label %s declared and not used", new sliceType$6([new $String(lbl.object.name)])); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 12: - _i$1++; - $s = 8; continue; - case 9: - $s = -1; return; - /* */ } return; } var $f = {$blk: labels, $c: true, $r, _arg, _arg$1, _arg$2, _entry, _i, _i$1, _key, _keys, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _size, all, alt, body, check, code, fwdJumps, jmp, lbl, msg, name, name$1, obj, $s};return $f; - }; - $ptrType(block).prototype.insert = function insert$2(s) { - var {_key, b, labels$1, name, s, $s, $r, $c} = $restore(this, {s}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - b = this; - name = s.Label.Name; - /* */ if (false) { $s = 1; continue; } + mergeCharClass(re3, re1); + p.reuse(re1); + p.stack = $subslice(p.stack, 0, (n - 1 >> 0)); + $s = -1; return true; + } + /* */ if (n >= 2) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (false) { */ case 1: - $r = assert(b.gotoTarget(name) === ptrType$65.nil); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* if (n >= 2) { */ case 1: + re1$1 = (x$12 = p.stack, x$13 = n - 1 >> 0, ((x$13 < 0 || x$13 >= x$12.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + x$13])); + re2 = (x$14 = p.stack, x$15 = n - 2 >> 0, ((x$15 < 0 || x$15 >= x$14.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + x$15])); + /* */ if (re2.Op === 129) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (re2.Op === 129) { */ case 3: + /* */ if (n >= 3) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (n >= 3) { */ case 5: + $r = cleanAlt((x$16 = p.stack, x$17 = n - 3 >> 0, ((x$17 < 0 || x$17 >= x$16.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$16.$array[x$16.$offset + x$17]))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + (x$18 = p.stack, x$19 = n - 2 >> 0, ((x$19 < 0 || x$19 >= x$18.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$18.$array[x$18.$offset + x$19] = re1$1)); + (x$20 = p.stack, x$21 = n - 1 >> 0, ((x$21 < 0 || x$21 >= x$20.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$20.$array[x$20.$offset + x$21] = re2)); + $s = -1; return true; + /* } */ case 4: /* } */ case 2: - labels$1 = b.labels; - if (labels$1 === false) { - labels$1 = new $global.Map(); - b.labels = labels$1; + $s = -1; return false; + /* */ } return; } var $f = {$blk: swapVerticalBar, $c: true, $r, _tmp, _tmp$1, n, p, re1, re1$1, re2, re3, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; + }; + $ptrType(parser).prototype.parseRightParen = function parseRightParen() { + var {_r, _r$1, _r$2, n, p, re1, re2, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + p = this; + _r = p.concat(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + _r$1 = p.swapVerticalBar(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (_r$1) { */ case 2: + p.stack = $subslice(p.stack, 0, (p.stack.$length - 1 >> 0)); + /* } */ case 3: + _r$2 = p.alternate(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + n = p.stack.$length; + if (n < 2) { + $s = -1; return new Error.ptr("unexpected )", p.wholeRegexp); } - _key = name; (labels$1 || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: s }); - $s = -1; return; - /* */ } return; } var $f = {$blk: insert$2, $c: true, $r, _key, b, labels$1, name, s, $s};return $f; + re1 = (x = p.stack, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + re2 = (x$2 = p.stack, x$3 = n - 2 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])); + p.stack = $subslice(p.stack, 0, (n - 2 >> 0)); + if (!((re2.Op === 128))) { + $s = -1; return new Error.ptr("unexpected )", p.wholeRegexp); + } + p.flags = re2.Flags; + if (re2.Cap === 0) { + p.push(re1); + } else { + re2.Op = 13; + re2.Sub = $subslice(new sliceType$4(re2.Sub0), 0, 1); + (x$4 = re2.Sub, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0] = re1)); + p.push(re2); + } + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: parseRightParen, $c: true, $r, _r, _r$1, _r$2, n, p, re1, re2, x, x$1, x$2, x$3, x$4, $s};return $f; }; - $ptrType(block).prototype.gotoTarget = function gotoTarget(name) { - var _entry, b, name, s, t; - b = this; - s = b; - while (true) { - if (!(!(s === ptrType$92.nil))) { break; } - t = (_entry = $mapIndex(s.labels,$String.keyFor(name)), _entry !== undefined ? _entry.v : ptrType$65.nil); - if (!(t === ptrType$65.nil)) { - return t; + $ptrType(parser).prototype.parseEscape = function parseEscape(s) { + var _1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$32, _tmp$33, _tmp$34, _tmp$35, _tmp$36, _tmp$37, _tmp$38, _tmp$39, _tmp$4, _tmp$40, _tmp$41, _tmp$42, _tmp$43, _tmp$44, _tmp$45, _tmp$46, _tmp$47, _tmp$48, _tmp$49, _tmp$5, _tmp$50, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, c, err, i, nhex, p, r, rest, s, t, v, x, y; + r = 0; + rest = ""; + err = $ifaceNil; + p = this; + t = $substring(s, 1); + if (t === "") { + _tmp = 0; + _tmp$1 = ""; + _tmp$2 = new Error.ptr("trailing backslash at end of expression", ""); + r = _tmp; + rest = _tmp$1; + err = _tmp$2; + return [r, rest, err]; + } + _tuple = nextRune(t); + c = _tuple[0]; + t = _tuple[1]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp$3 = 0; + _tmp$4 = ""; + _tmp$5 = err; + r = _tmp$3; + rest = _tmp$4; + err = _tmp$5; + return [r, rest, err]; + } + Switch: + switch (0) { default: + _1 = c; + if ((_1 === (49)) || (_1 === (50)) || (_1 === (51)) || (_1 === (52)) || (_1 === (53)) || (_1 === (54)) || (_1 === (55))) { + if (t === "" || t.charCodeAt(0) < 48 || t.charCodeAt(0) > 55) { + break; + } + r = c - 48 >> 0; + i = 1; + while (true) { + if (!(i < 3)) { break; } + if (t === "" || t.charCodeAt(0) < 48 || t.charCodeAt(0) > 55) { + break; + } + r = (($imul(r, 8)) + ((t.charCodeAt(0) >> 0)) >> 0) - 48 >> 0; + t = $substring(t, 1); + i = i + (1) >> 0; + } + _tmp$6 = r; + _tmp$7 = t; + _tmp$8 = $ifaceNil; + r = _tmp$6; + rest = _tmp$7; + err = _tmp$8; + return [r, rest, err]; + } else if (_1 === (48)) { + r = c - 48 >> 0; + i = 1; + while (true) { + if (!(i < 3)) { break; } + if (t === "" || t.charCodeAt(0) < 48 || t.charCodeAt(0) > 55) { + break; + } + r = (($imul(r, 8)) + ((t.charCodeAt(0) >> 0)) >> 0) - 48 >> 0; + t = $substring(t, 1); + i = i + (1) >> 0; + } + _tmp$9 = r; + _tmp$10 = t; + _tmp$11 = $ifaceNil; + r = _tmp$9; + rest = _tmp$10; + err = _tmp$11; + return [r, rest, err]; + } else if (_1 === (120)) { + if (t === "") { + break; + } + _tuple$1 = nextRune(t); + c = _tuple$1[0]; + t = _tuple$1[1]; + err = _tuple$1[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp$12 = 0; + _tmp$13 = ""; + _tmp$14 = err; + r = _tmp$12; + rest = _tmp$13; + err = _tmp$14; + return [r, rest, err]; + } + if (c === 123) { + nhex = 0; + r = 0; + while (true) { + if (t === "") { + break Switch; + } + _tuple$2 = nextRune(t); + c = _tuple$2[0]; + t = _tuple$2[1]; + err = _tuple$2[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp$15 = 0; + _tmp$16 = ""; + _tmp$17 = err; + r = _tmp$15; + rest = _tmp$16; + err = _tmp$17; + return [r, rest, err]; + } + if (c === 125) { + break; + } + v = unhex(c); + if (v < 0) { + break Switch; + } + r = ($imul(r, 16)) + v >> 0; + if (r > 1114111) { + break Switch; + } + nhex = nhex + (1) >> 0; + } + if (nhex === 0) { + break Switch; + } + _tmp$18 = r; + _tmp$19 = t; + _tmp$20 = $ifaceNil; + r = _tmp$18; + rest = _tmp$19; + err = _tmp$20; + return [r, rest, err]; + } + x = unhex(c); + _tuple$3 = nextRune(t); + c = _tuple$3[0]; + t = _tuple$3[1]; + err = _tuple$3[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp$21 = 0; + _tmp$22 = ""; + _tmp$23 = err; + r = _tmp$21; + rest = _tmp$22; + err = _tmp$23; + return [r, rest, err]; + } + y = unhex(c); + if (x < 0 || y < 0) { + break; + } + _tmp$24 = ($imul(x, 16)) + y >> 0; + _tmp$25 = t; + _tmp$26 = $ifaceNil; + r = _tmp$24; + rest = _tmp$25; + err = _tmp$26; + return [r, rest, err]; + } else if (_1 === (97)) { + _tmp$27 = 7; + _tmp$28 = t; + _tmp$29 = err; + r = _tmp$27; + rest = _tmp$28; + err = _tmp$29; + return [r, rest, err]; + } else if (_1 === (102)) { + _tmp$30 = 12; + _tmp$31 = t; + _tmp$32 = err; + r = _tmp$30; + rest = _tmp$31; + err = _tmp$32; + return [r, rest, err]; + } else if (_1 === (110)) { + _tmp$33 = 10; + _tmp$34 = t; + _tmp$35 = err; + r = _tmp$33; + rest = _tmp$34; + err = _tmp$35; + return [r, rest, err]; + } else if (_1 === (114)) { + _tmp$36 = 13; + _tmp$37 = t; + _tmp$38 = err; + r = _tmp$36; + rest = _tmp$37; + err = _tmp$38; + return [r, rest, err]; + } else if (_1 === (116)) { + _tmp$39 = 9; + _tmp$40 = t; + _tmp$41 = err; + r = _tmp$39; + rest = _tmp$40; + err = _tmp$41; + return [r, rest, err]; + } else if (_1 === (118)) { + _tmp$42 = 11; + _tmp$43 = t; + _tmp$44 = err; + r = _tmp$42; + rest = _tmp$43; + err = _tmp$44; + return [r, rest, err]; + } else if (c < 128 && !isalnum(c)) { + _tmp$45 = c; + _tmp$46 = t; + _tmp$47 = $ifaceNil; + r = _tmp$45; + rest = _tmp$46; + err = _tmp$47; + return [r, rest, err]; } - s = s.parent; } - return ptrType$65.nil; + _tmp$48 = 0; + _tmp$49 = ""; + _tmp$50 = new Error.ptr("invalid escape sequence", $substring(s, 0, (s.length - t.length >> 0))); + r = _tmp$48; + rest = _tmp$49; + err = _tmp$50; + return [r, rest, err]; }; - $ptrType(block).prototype.enclosingTarget = function enclosingTarget(name) { - var b, name, s, t; - b = this; - s = b; - while (true) { - if (!(!(s === ptrType$92.nil))) { break; } - t = s.lstmt; - if (!(t === ptrType$65.nil) && t.Label.Name === name) { - return t; - } - s = s.parent; + $ptrType(parser).prototype.parseClassChar = function parseClassChar(s, wholeClass) { + var _tmp, _tmp$1, _tmp$2, _tuple, _tuple$1, err, p, r, rest, s, wholeClass; + r = 0; + rest = ""; + err = $ifaceNil; + p = this; + if (s === "") { + _tmp = 0; + _tmp$1 = ""; + _tmp$2 = new Error.ptr("missing closing ]", wholeClass); + r = _tmp; + rest = _tmp$1; + err = _tmp$2; + return [r, rest, err]; } - return ptrType$65.nil; - }; - $ptrType(Checker).prototype.blockBranches = function blockBranches(all, parent, lstmt, list$2) { - var {_i, _ref, _tmp, _tmp$1, all, b, badJumps, blockBranches$1, check, fwdJumps, jumpsOverVarDecl, list$2, lstmt, parent, recordVarDecl, s, stmtBranches, varDeclPos, $s, $r, $c} = $restore(this, {all, parent, lstmt, list$2}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - all = [all]; - b = [b]; - badJumps = [badJumps]; - blockBranches$1 = [blockBranches$1]; - check = [check]; - fwdJumps = [fwdJumps]; - jumpsOverVarDecl = [jumpsOverVarDecl]; - lstmt = [lstmt]; - recordVarDecl = [recordVarDecl]; - stmtBranches = [stmtBranches]; - varDeclPos = [varDeclPos]; - check[0] = this; - b[0] = new block.ptr(parent, lstmt[0], false); - varDeclPos[0] = 0; - _tmp = sliceType$26.nil; - _tmp$1 = sliceType$26.nil; - fwdJumps[0] = _tmp; - badJumps[0] = _tmp$1; - recordVarDecl[0] = (function(all, b, badJumps, blockBranches$1, check, fwdJumps, jumpsOverVarDecl, lstmt, recordVarDecl, stmtBranches, varDeclPos) { return function Checker·blockBranches·func1(pos) { - var pos; - varDeclPos[0] = pos; - badJumps[0] = $appendSlice($subslice(badJumps[0], 0, 0), fwdJumps[0]); - }; })(all, b, badJumps, blockBranches$1, check, fwdJumps, jumpsOverVarDecl, lstmt, recordVarDecl, stmtBranches, varDeclPos); - jumpsOverVarDecl[0] = (function(all, b, badJumps, blockBranches$1, check, fwdJumps, jumpsOverVarDecl, lstmt, recordVarDecl, stmtBranches, varDeclPos) { return function Checker·blockBranches·func2(jmp) { - var _i, _ref, bad, jmp; - if (new token.Pos(varDeclPos[0]).IsValid()) { - _ref = badJumps[0]; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - bad = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (jmp === bad) { - return true; - } - _i++; - } - } - return false; - }; })(all, b, badJumps, blockBranches$1, check, fwdJumps, jumpsOverVarDecl, lstmt, recordVarDecl, stmtBranches, varDeclPos); - blockBranches$1[0] = (function(all, b, badJumps, blockBranches$1, check, fwdJumps, jumpsOverVarDecl, lstmt, recordVarDecl, stmtBranches, varDeclPos) { return function Checker·blockBranches·func3(lstmt$1, list$3) { - var {_arg, _arg$1, _r$1, list$3, lstmt$1, $s, $r, $c} = $restore(this, {lstmt$1, list$3}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _arg = fwdJumps[0]; - _r$1 = check[0].blockBranches(all[0], b[0], lstmt$1, list$3); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _arg$1 = _r$1; - fwdJumps[0] = $appendSlice(_arg, _arg$1); - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·blockBranches·func3, $c: true, $r, _arg, _arg$1, _r$1, list$3, lstmt$1, $s};return $f; - }; })(all, b, badJumps, blockBranches$1, check, fwdJumps, jumpsOverVarDecl, lstmt, recordVarDecl, stmtBranches, varDeclPos); - stmtBranches[0] = $throwNilPointerError; - stmtBranches[0] = (function(all, b, badJumps, blockBranches$1, check, fwdJumps, jumpsOverVarDecl, lstmt, recordVarDecl, stmtBranches, varDeclPos) { return function Checker·blockBranches·func4(s) { - var {_1, _arg, _arg$1, _arg$2, _i, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _ref$2, _ref$3, _tuple, alt, d, i, jmp, lbl, name, name$1, obj, s, s$1, s$10, s$11, s$12, s$13, s$2, s$3, s$4, s$5, s$6, s$7, s$8, s$9, t, t$1, valid, valid$1, $s, $r, $c} = $restore(this, {s}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ref = s; - /* */ if ($assertType(_ref, ptrType$64, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$65, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$73, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$69, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$74, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$75, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType$60, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref, ptrType$76, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref, ptrType$77, true)[1]) { $s = 9; continue; } - /* */ if ($assertType(_ref, ptrType$61, true)[1]) { $s = 10; continue; } - /* */ if ($assertType(_ref, ptrType$78, true)[1]) { $s = 11; continue; } - /* */ if ($assertType(_ref, ptrType$79, true)[1]) { $s = 12; continue; } - /* */ if ($assertType(_ref, ptrType$80, true)[1]) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if ($assertType(_ref, ptrType$64, true)[1]) { */ case 1: - s$1 = _ref.$val; - _tuple = $assertType(s$1.Decl, ptrType$93, true); - d = _tuple[0]; - /* */ if (!(d === ptrType$93.nil) && (d.Tok === 85)) { $s = 15; continue; } - /* */ $s = 16; continue; - /* if (!(d === ptrType$93.nil) && (d.Tok === 85)) { */ case 15: - $r = recordVarDecl[0](d.Pos()); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 16: - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$65, true)[1]) { */ case 2: - s$2 = _ref.$val; - name = s$2.Label.Name; - /* */ if (!(name === "_")) { $s = 18; continue; } - /* */ $s = 19; continue; - /* if (!(name === "_")) { */ case 18: - lbl = NewLabel(s$2.Label.Pos(), check[0].pkg, name); - _r$1 = all[0].Insert(lbl); /* */ $s = 20; case 20: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - alt = _r$1; - /* */ if (!($interfaceIsEqual(alt, $ifaceNil))) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if (!($interfaceIsEqual(alt, $ifaceNil))) { */ case 21: - $r = check[0].softErrorf(lbl, 120, "label %s already declared", new sliceType$6([new $String(name)])); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].reportAltDecl(alt); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 23; continue; - /* } else { */ case 22: - $r = b[0].insert(s$2); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].recordDef(s$2.Label, lbl); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 23: - i = 0; - _ref$1 = fwdJumps[0]; - _i = 0; - /* while (true) { */ case 28: - /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 29; continue; } - jmp = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); - /* */ if (jmp.Label.Name === name) { $s = 30; continue; } - /* */ $s = 31; continue; - /* if (jmp.Label.Name === name) { */ case 30: - lbl.used = true; - $r = check[0].recordUse(jmp.Label, lbl); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$2 = jumpsOverVarDecl[0](jmp); /* */ $s = 36; case 36: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (_r$2) { $s = 34; continue; } - /* */ $s = 35; continue; - /* if (_r$2) { */ case 34: - _arg = jmp.Label; - _arg$1 = new $String(name); - _r$3 = check[0].fset.Position(varDeclPos[0]); /* */ $s = 37; case 37: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _arg$2 = new $Int(_r$3.Line); - $r = check[0].softErrorf(_arg, 123, "goto %s jumps over variable declaration at line %d", new sliceType$6([_arg$1, _arg$2])); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 35: - $s = 32; continue; - /* } else { */ case 31: - ((i < 0 || i >= fwdJumps[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : fwdJumps[0].$array[fwdJumps[0].$offset + i] = jmp); - i = i + (1) >> 0; - /* } */ case 32: - _i++; - $s = 28; continue; - case 29: - fwdJumps[0] = $subslice(fwdJumps[0], 0, i); - lstmt[0] = s$2; - /* } */ case 19: - $r = stmtBranches[0](s$2.Stmt); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$73, true)[1]) { */ case 3: - s$3 = _ref.$val; - if (s$3.Label === ptrType$30.nil) { - $s = -1; return; - } - name$1 = s$3.Label.Name; - _1 = s$3.Tok; - /* */ if (_1 === (61)) { $s = 41; continue; } - /* */ if (_1 === (65)) { $s = 42; continue; } - /* */ if (_1 === (73)) { $s = 43; continue; } - /* */ $s = 44; continue; - /* if (_1 === (61)) { */ case 41: - valid = false; - t = b[0].enclosingTarget(name$1); - if (!(t === ptrType$65.nil)) { - _ref$2 = t.Stmt; - if ($assertType(_ref$2, ptrType$76, true)[1] || $assertType(_ref$2, ptrType$77, true)[1] || $assertType(_ref$2, ptrType$78, true)[1] || $assertType(_ref$2, ptrType$79, true)[1] || $assertType(_ref$2, ptrType$80, true)[1]) { - valid = true; - } - } - /* */ if (!valid) { $s = 46; continue; } - /* */ $s = 47; continue; - /* if (!valid) { */ case 46: - $r = check[0].errorf(s$3.Label, 121, "invalid break label %s", new sliceType$6([new $String(name$1)])); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 47: - $s = 45; continue; - /* } else if (_1 === (65)) { */ case 42: - valid$1 = false; - t$1 = b[0].enclosingTarget(name$1); - if (!(t$1 === ptrType$65.nil)) { - _ref$3 = t$1.Stmt; - if ($assertType(_ref$3, ptrType$79, true)[1] || $assertType(_ref$3, ptrType$80, true)[1]) { - valid$1 = true; - } - } - /* */ if (!valid$1) { $s = 49; continue; } - /* */ $s = 50; continue; - /* if (!valid$1) { */ case 49: - $r = check[0].errorf(s$3.Label, 121, "invalid continue label %s", new sliceType$6([new $String(name$1)])); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 50: - $s = 45; continue; - /* } else if (_1 === (73)) { */ case 43: - if (b[0].gotoTarget(name$1) === ptrType$65.nil) { - fwdJumps[0] = $append(fwdJumps[0], s$3); - $s = -1; return; - } - $s = 45; continue; - /* } else { */ case 44: - $r = check[0].errorf(s$3, -1, "branch statement: %s %s", new sliceType$6([new token.Token(s$3.Tok), new $String(name$1)])); /* */ $s = 52; case 52: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 45: - case 40: - _r$4 = all[0].Lookup(name$1); /* */ $s = 53; case 53: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - obj = _r$4; - $assertType(obj, ptrType$91).used = true; - $r = check[0].recordUse(s$3.Label, obj); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$69, true)[1]) { */ case 4: - s$4 = _ref.$val; - /* */ if (s$4.Tok === 47) { $s = 55; continue; } - /* */ $s = 56; continue; - /* if (s$4.Tok === 47) { */ case 55: - _r$5 = s$4.Pos(); /* */ $s = 57; case 57: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - $r = recordVarDecl[0](_r$5); /* */ $s = 58; case 58: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 56: - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$74, true)[1]) { */ case 5: - s$5 = _ref.$val; - $r = blockBranches$1[0](lstmt[0], s$5.List); /* */ $s = 59; case 59: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$75, true)[1]) { */ case 6: - s$6 = _ref.$val; - $r = stmtBranches[0](s$6.Body); /* */ $s = 60; case 60: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!($interfaceIsEqual(s$6.Else, $ifaceNil))) { $s = 61; continue; } - /* */ $s = 62; continue; - /* if (!($interfaceIsEqual(s$6.Else, $ifaceNil))) { */ case 61: - $r = stmtBranches[0](s$6.Else); /* */ $s = 63; case 63: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 62: - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$60, true)[1]) { */ case 7: - s$7 = _ref.$val; - $r = blockBranches$1[0](ptrType$65.nil, s$7.Body); /* */ $s = 64; case 64: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$76, true)[1]) { */ case 8: - s$8 = _ref.$val; - $r = stmtBranches[0](s$8.Body); /* */ $s = 65; case 65: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$77, true)[1]) { */ case 9: - s$9 = _ref.$val; - $r = stmtBranches[0](s$9.Body); /* */ $s = 66; case 66: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$61, true)[1]) { */ case 10: - s$10 = _ref.$val; - $r = blockBranches$1[0](ptrType$65.nil, s$10.Body); /* */ $s = 67; case 67: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$78, true)[1]) { */ case 11: - s$11 = _ref.$val; - $r = stmtBranches[0](s$11.Body); /* */ $s = 68; case 68: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$79, true)[1]) { */ case 12: - s$12 = _ref.$val; - $r = stmtBranches[0](s$12.Body); /* */ $s = 69; case 69: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$80, true)[1]) { */ case 13: - s$13 = _ref.$val; - $r = stmtBranches[0](s$13.Body); /* */ $s = 70; case 70: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 14: - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·blockBranches·func4, $c: true, $r, _1, _arg, _arg$1, _arg$2, _i, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _ref$2, _ref$3, _tuple, alt, d, i, jmp, lbl, name, name$1, obj, s, s$1, s$10, s$11, s$12, s$13, s$2, s$3, s$4, s$5, s$6, s$7, s$8, s$9, t, t$1, valid, valid$1, $s};return $f; - }; })(all, b, badJumps, blockBranches$1, check, fwdJumps, jumpsOverVarDecl, lstmt, recordVarDecl, stmtBranches, varDeclPos); - _ref = list$2; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - $r = stmtBranches[0](s); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 1; continue; - case 2: - $s = -1; return fwdJumps[0]; - /* */ } return; } var $f = {$blk: blockBranches, $c: true, $r, _i, _ref, _tmp, _tmp$1, all, b, badJumps, blockBranches$1, check, fwdJumps, jumpsOverVarDecl, list$2, lstmt, parent, recordVarDecl, s, stmtBranches, varDeclPos, $s};return $f; + if (s.charCodeAt(0) === 92) { + _tuple = p.parseEscape(s); + r = _tuple[0]; + rest = _tuple[1]; + err = _tuple[2]; + return [r, rest, err]; + } + _tuple$1 = nextRune(s); + r = _tuple$1[0]; + rest = _tuple$1[1]; + err = _tuple$1[2]; + return [r, rest, err]; }; - $ptrType(Interface).prototype.typeSet = function typeSet$1() { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); + $ptrType(parser).prototype.parsePerlClassEscape = function parsePerlClassEscape(s, r) { + var {$24r, _entry, _r, _tmp, _tmp$1, g, out, p, r, rest, s, $s, $r, $c} = $restore(this, {s, r}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = computeInterfaceTypeSet(t.check, 0, t); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; + out = sliceType$1.nil; + rest = ""; + p = this; + if ((((p.flags & 64) >>> 0) === 0) || s.length < 2 || !((s.charCodeAt(0) === 92))) { + $s = -1; return [out, rest]; + } + g = $clone((_entry = $mapIndex(perlGroup,$String.keyFor($substring(s, 0, 2))), _entry !== undefined ? _entry.v : new charGroup.ptr(0, sliceType$1.nil)), charGroup); + if (g.sign === 0) { + $s = -1; return [out, rest]; + } + _r = p.appendGroup(r, $clone(g, charGroup)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tmp = _r; + _tmp$1 = $substring(s, 2); + out = _tmp; + rest = _tmp$1; + $24r = [out, rest]; $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: typeSet$1, $c: true, $r, $24r, _r$1, t, $s};return $f; + /* */ } return; } var $f = {$blk: parsePerlClassEscape, $c: true, $r, $24r, _entry, _r, _tmp, _tmp$1, g, out, p, r, rest, s, $s};return $f; }; - NewInterfaceType = function NewInterfaceType$1(methods, embeddeds) { - var {_i, _ref, embeddeds, m, methods, sig, typ$3, $s, $r, $c} = $restore(this, {methods, embeddeds}); + $ptrType(parser).prototype.parseNamedClass = function parseNamedClass(s, r) { + var {$24r, _entry, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, err, g, i, name, out, p, r, rest, s, $s, $r, $c} = $restore(this, {s, r}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if ((methods.$length === 0) && (embeddeds.$length === 0)) { - $s = -1; return emptyInterface; - } - typ$3 = (ptrType$6.nil).newInterface(); - _ref = methods; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - m = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - sig = $assertType(m.object.typ, ptrType$27); - if (sig.recv === ptrType$16.nil) { - sig.recv = NewVar(m.object.pos, m.object.pkg, "", typ$3); - } - _i++; + out = sliceType$1.nil; + rest = ""; + err = $ifaceNil; + p = this; + if (s.length < 2 || !((s.charCodeAt(0) === 91)) || !((s.charCodeAt(1) === 58))) { + $s = -1; return [out, rest, err]; } - $r = sortMethods(methods); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - typ$3.methods = methods; - typ$3.embeddeds = embeddeds; - typ$3.complete = true; - $s = -1; return typ$3; - /* */ } return; } var $f = {$blk: NewInterfaceType$1, $c: true, $r, _i, _ref, embeddeds, m, methods, sig, typ$3, $s};return $f; - }; - $pkg.NewInterfaceType = NewInterfaceType; - $ptrType(Checker).prototype.newInterface = function newInterface() { - var check, typ$3; - check = this; - typ$3 = new Interface.ptr(check, sliceType.nil, sliceType$3.nil, ptrType$7.nil, false, false, ptrType$8.nil); - if (!(check === ptrType$6.nil)) { - check.needsCleanup(typ$3); + i = strings.Index($substring(s, 2), ":]"); + if (i < 0) { + $s = -1; return [out, rest, err]; } - return typ$3; - }; - $ptrType(Interface).prototype.MarkImplicit = function MarkImplicit() { - var t; - t = this; - t.implicit = true; - }; - $ptrType(Interface).prototype.NumExplicitMethods = function NumExplicitMethods() { - var t; - t = this; - return t.methods.$length; - }; - $ptrType(Interface).prototype.ExplicitMethod = function ExplicitMethod(i) { - var i, t, x; - t = this; - return (x = t.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - }; - $ptrType(Interface).prototype.NumEmbeddeds = function NumEmbeddeds() { - var t; - t = this; - return t.embeddeds.$length; - }; - $ptrType(Interface).prototype.Embedded = function Embedded$1(i) { - var _tuple, i, t, tname, x; - t = this; - _tuple = $assertType((x = t.embeddeds, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])), ptrType$9, true); - tname = _tuple[0]; - return tname; - }; - $ptrType(Interface).prototype.EmbeddedType = function EmbeddedType(i) { - var i, t, x; - t = this; - return (x = t.embeddeds, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - }; - $ptrType(Interface).prototype.NumMethods = function NumMethods$2() { - var {$24r, _r$1, _r$2, t, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = t.typeSet(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = _r$1.NumMethods(); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: NumMethods$2, $c: true, $r, $24r, _r$1, _r$2, t, $s};return $f; - }; - $ptrType(Interface).prototype.Method = function Method$2(i) { - var {$24r, _r$1, _r$2, i, t, $s, $r, $c} = $restore(this, {i}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = t.typeSet(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = _r$1.Method(i); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: Method$2, $c: true, $r, $24r, _r$1, _r$2, i, t, $s};return $f; - }; - $ptrType(Interface).prototype.Empty = function Empty() { - var {$24r, _r$1, _r$2, t, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = t.typeSet(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = _r$1.IsAll(); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: Empty, $c: true, $r, $24r, _r$1, _r$2, t, $s};return $f; - }; - $ptrType(Interface).prototype.IsComparable = function IsComparable$1() { - var {$24r, _r$1, _r$2, t, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = t.typeSet(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = _r$1.IsComparable(false); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: IsComparable$1, $c: true, $r, $24r, _r$1, _r$2, t, $s};return $f; - }; - $ptrType(Interface).prototype.IsMethodSet = function IsMethodSet$1() { - var {$24r, _r$1, _r$2, t, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = t.typeSet(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = _r$1.IsMethodSet(); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: IsMethodSet$1, $c: true, $r, $24r, _r$1, _r$2, t, $s};return $f; - }; - $ptrType(Interface).prototype.IsImplicit = function IsImplicit() { - var t; - t = this; - return t.implicit; - }; - $ptrType(Interface).prototype.Complete = function Complete$1() { - var {_r$1, t, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - if (!t.complete) { - t.complete = true; + i = i + (2) >> 0; + _tmp = $substring(s, 0, (i + 2 >> 0)); + _tmp$1 = $substring(s, (i + 2 >> 0)); + name = _tmp; + s = _tmp$1; + g = $clone((_entry = $mapIndex(posixGroup,$String.keyFor(name)), _entry !== undefined ? _entry.v : new charGroup.ptr(0, sliceType$1.nil)), charGroup); + if (g.sign === 0) { + _tmp$2 = sliceType$1.nil; + _tmp$3 = ""; + _tmp$4 = new Error.ptr("invalid character class range", name); + out = _tmp$2; + rest = _tmp$3; + err = _tmp$4; + $s = -1; return [out, rest, err]; } - _r$1 = t.typeSet(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - $s = -1; return t; - /* */ } return; } var $f = {$blk: Complete$1, $c: true, $r, _r$1, t, $s};return $f; - }; - $ptrType(Interface).prototype.Underlying = function Underlying$9() { - var t; - t = this; - return t; - }; - $ptrType(Interface).prototype.String = function String$30() { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = TypeString(t, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; + _r = p.appendGroup(r, $clone(g, charGroup)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tmp$5 = _r; + _tmp$6 = s; + _tmp$7 = $ifaceNil; + out = _tmp$5; + rest = _tmp$6; + err = _tmp$7; + $24r = [out, rest, err]; $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$30, $c: true, $r, $24r, _r$1, t, $s};return $f; - }; - $ptrType(Interface).prototype.cleanup = function cleanup$2() { - var t; - t = this; - t.check = ptrType$6.nil; - t.embedPos = ptrType$7.nil; - }; - $ptrType(Checker).prototype.interfaceType = function interfaceType(ityp, iface$1, def$2) { - var {_arg, _arg$1, _i, _r$1, _r$2, _r$3, _ref, _tuple, _tuple$1, addEmbedded, at$1, check, def$2, f, ftyp, iface$1, ityp, m, name, recvTyp, sig, typ$3, x, $s, $r, $c} = $restore(this, {ityp, iface$1, def$2}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = [check]; - iface$1 = [iface$1]; - ityp = [ityp]; - check[0] = this; - addEmbedded = (function(check, iface$1, ityp) { return function Checker·interfaceType·func1(pos, typ$3) { - var pos, typ$3; - ityp[0].embeddeds = $append(ityp[0].embeddeds, typ$3); - if (ityp[0].embedPos === ptrType$7.nil) { - ityp[0].embedPos = $newDataPointer(sliceType$4.nil, ptrType$7); - } - ityp[0].embedPos.$set($append(ityp[0].embedPos.$get(), pos)); - }; })(check, iface$1, ityp); - _ref = iface$1[0].Methods.List; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - /* */ if (f.Names.$length === 0) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (f.Names.$length === 0) { */ case 3: - _r$1 = f.Type.Pos(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _arg = _r$1; - _r$2 = parseUnion(check[0], f.Type); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _arg$1 = _r$2; - $r = addEmbedded(_arg, _arg$1); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - /* continue; */ $s = 1; continue; - /* } */ case 4: - name = (x = f.Names, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); - /* */ if (name.Name === "_") { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (name.Name === "_") { */ case 8: - $r = check[0].error(name, 27, "methods must have a unique non-blank name"); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - /* continue; */ $s = 1; continue; - /* } */ case 9: - _r$3 = check[0].typ(f.Type); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - typ$3 = _r$3; - _tuple = $assertType(typ$3, ptrType$27, true); - sig = _tuple[0]; - /* */ if (sig === ptrType$27.nil) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (sig === ptrType$27.nil) { */ case 12: - /* */ if (!($interfaceIsEqual(typ$3, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (!($interfaceIsEqual(typ$3, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { */ case 14: - $r = check[0].errorf(f.Type, -1, "%s is not a method signature", new sliceType$6([typ$3])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 15: - _i++; - /* continue; */ $s = 1; continue; - /* } */ case 13: - /* */ if (!(sig.tparams === ptrType$48.nil)) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (!(sig.tparams === ptrType$48.nil)) { */ case 17: - at$1 = f.Type; - _tuple$1 = $assertType(f.Type, ptrType$44, true); - ftyp = _tuple$1[0]; - if (!(ftyp === ptrType$44.nil) && !(ftyp.TypeParams === ptrType$49.nil)) { - at$1 = ftyp.TypeParams; - } - $r = check[0].error(at$1, 143, "methods cannot have type parameters"); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 18: - recvTyp = ityp[0]; - if (!(def$2 === ptrType$9.nil)) { - recvTyp = def$2; - } - sig.recv = NewVar(name.Pos(), check[0].pkg, "", recvTyp); - m = NewFunc(name.Pos(), check[0].pkg, name.Name, sig); - $r = check[0].recordDef(name, m); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - ityp[0].methods = $append(ityp[0].methods, m); - _i++; - $s = 1; continue; - case 2: - ityp[0].complete = true; - if ((ityp[0].methods.$length === 0) && (ityp[0].embeddeds.$length === 0)) { - ityp[0].tset = topTypeSet; - $s = -1; return; - } - $r = sortMethods(ityp[0].methods); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - check[0].later((function(check, iface$1, ityp) { return function Checker·interfaceType·func2() { - var {_r$4, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$4 = computeInterfaceTypeSet(check[0], iface$1[0].Pos(), ityp[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$4; - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·interfaceType·func2, $c: true, $r, _r$4, $s};return $f; - }; })(check, iface$1, ityp)).describef(iface$1[0], "compute type set for %s", new sliceType$6([ityp[0]])); - $s = -1; return; - /* */ } return; } var $f = {$blk: interfaceType, $c: true, $r, _arg, _arg$1, _i, _r$1, _r$2, _r$3, _ref, _tuple, _tuple$1, addEmbedded, at$1, check, def$2, f, ftyp, iface$1, ityp, m, name, recvTyp, sig, typ$3, x, $s};return $f; - }; - $ptrType(Checker).prototype.instance = function instance$1(pos, orig, targs, expanding, ctxt) { - var {$24r, $24r$1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _i, _i$1, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, check, copy, ctxt, ctxt$1, ctxt$2, ctxts, expanding, hashes, i, i$1, inst, orig, orig$1, orig$2, orig$3, pos, res, sig, targs, tparams, updateContexts, $s, $r, $c} = $restore(this, {pos, orig, targs, expanding, ctxt}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - copy = [copy]; - ctxts = [ctxts]; - hashes = [hashes]; - orig = [orig]; - targs = [targs]; - res = $ifaceNil; - check = this; - ctxts[0] = sliceType$27.nil; - if (!(expanding === ptrType$9.nil)) { - ctxts[0] = $append(ctxts[0], expanding.inst.ctxt); - } - if (!(ctxt === ptrType$51.nil)) { - ctxts[0] = $append(ctxts[0], ctxt); - } - $r = assert(ctxts[0].$length > 0); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - hashes[0] = $makeSlice(sliceType$5, ctxts[0].$length); - _ref = ctxts[0]; - _i = 0; - /* while (true) { */ case 2: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } - i = _i; - ctxt$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$1 = ctxt$1.instanceHash(orig[0], targs[0]); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - ((i < 0 || i >= hashes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : hashes[0].$array[hashes[0].$offset + i] = _r$1); - _i++; - $s = 2; continue; - case 3: - updateContexts = (function(copy, ctxts, hashes, orig, targs) { return function Checker·instance·func1(res$1) { - var {_r$2, i$1, res$1, $s, $r, $c} = $restore(this, {res$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - i$1 = ctxts[0].$length - 1 >> 0; - /* while (true) { */ case 1: - /* if (!(i$1 >= 0)) { break; } */ if(!(i$1 >= 0)) { $s = 2; continue; } - _r$2 = ((i$1 < 0 || i$1 >= ctxts[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : ctxts[0].$array[ctxts[0].$offset + i$1]).update(((i$1 < 0 || i$1 >= hashes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : hashes[0].$array[hashes[0].$offset + i$1]), orig[0], targs[0], res$1); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - res$1 = _r$2; - i$1 = i$1 - (1) >> 0; - $s = 1; continue; - case 2: - $s = -1; return res$1; - /* */ } return; } var $f = {$blk: Checker·instance·func1, $c: true, $r, _r$2, i$1, res$1, $s};return $f; - }; })(copy, ctxts, hashes, orig, targs); - _ref$1 = ctxts[0]; - _i$1 = 0; - /* while (true) { */ case 5: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 6; continue; } - i$1 = _i$1; - ctxt$2 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - _r$2 = ctxt$2.lookup(((i$1 < 0 || i$1 >= hashes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : hashes[0].$array[hashes[0].$offset + i$1]), orig[0], targs[0]); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - inst = _r$2; - /* */ if (!($interfaceIsEqual(inst, $ifaceNil))) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (!($interfaceIsEqual(inst, $ifaceNil))) { */ case 8: - _r$3 = updateContexts(inst); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - res = _r$3; - $24r = res; - $s = 11; case 11: return $24r; - /* } */ case 9: - _i$1++; - $s = 5; continue; - case 6: - _ref$2 = orig[0]; - /* */ if ($assertType(_ref$2, ptrType$9, true)[1]) { $s = 12; continue; } - /* */ if ($assertType(_ref$2, ptrType$27, true)[1]) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if ($assertType(_ref$2, ptrType$9, true)[1]) { */ case 12: - orig$1 = _ref$2.$val; - _r$4 = check.newNamedInstance(pos, orig$1, targs[0], expanding); /* */ $s = 16; case 16: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - res = _r$4; - $s = 15; continue; - /* } else if ($assertType(_ref$2, ptrType$27, true)[1]) { */ case 13: - orig$2 = _ref$2.$val; - $r = assert(expanding === ptrType$9.nil); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - tparams = orig$2.TypeParams(); - _r$5 = check.validateTArgLen(pos, tparams.Len(), targs[0].$length); /* */ $s = 20; case 20: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* */ if (!_r$5) { $s = 18; continue; } - /* */ $s = 19; continue; - /* if (!_r$5) { */ case 18: - res = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - $s = -1; return res; - /* } */ case 19: - if (tparams.Len() === 0) { - res = orig$2; - $s = -1; return res; - } - _arg = pos; - _arg$1 = orig$2; - _r$6 = makeSubstMap(tparams.list(), targs[0]); /* */ $s = 21; case 21: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _arg$2 = _r$6; - _arg$3 = ptrType$9.nil; - _arg$4 = ctxt; - _r$7 = check.subst(_arg, _arg$1, _arg$2, _arg$3, _arg$4); /* */ $s = 22; case 22: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - sig = $assertType(_r$7, ptrType$27); - if (sig === orig$2) { - copy[0] = $clone(sig, Signature); - sig = copy[0]; - } - sig.tparams = ptrType$48.nil; - res = sig; - $s = 15; continue; - /* } else { */ case 14: - orig$3 = _ref$2; - _r$8 = fmt.Sprintf("%v: cannot instantiate %v", new sliceType$6([new token.Pos(pos), orig$3])); /* */ $s = 23; case 23: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - $panic(new $String(_r$8)); - /* } */ case 15: - _r$9 = updateContexts(res); /* */ $s = 24; case 24: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - res = _r$9; - $24r$1 = res; - $s = 25; case 25: return $24r$1; - /* */ } return; } var $f = {$blk: instance$1, $c: true, $r, $24r, $24r$1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _i, _i$1, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, check, copy, ctxt, ctxt$1, ctxt$2, ctxts, expanding, hashes, i, i$1, inst, orig, orig$1, orig$2, orig$3, pos, res, sig, targs, tparams, updateContexts, $s};return $f; + /* */ } return; } var $f = {$blk: parseNamedClass, $c: true, $r, $24r, _entry, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, err, g, i, name, out, p, r, rest, s, $s};return $f; }; - $ptrType(Checker).prototype.validateTArgLen = function validateTArgLen(pos, ntparams, ntargs) { - var {_r$1, check, ntargs, ntparams, pos, $s, $r, $c} = $restore(this, {pos, ntparams, ntargs}); + $ptrType(parser).prototype.appendGroup = function appendGroup(r, g) { + var {_r, g, p, r, tmp, $s, $r, $c} = $restore(this, {r, g}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - /* */ if (!((ntargs === ntparams))) { $s = 1; continue; } + p = this; + /* */ if (((p.flags & 1) >>> 0) === 0) { $s = 1; continue; } /* */ $s = 2; continue; - /* if (!((ntargs === ntparams))) { */ case 1: - /* */ if (!(check === ptrType$6.nil)) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!(check === ptrType$6.nil)) { */ case 3: - $r = check.errorf(new atPos(((pos >> 0))), 137, "got %d arguments but %d type parameters", new sliceType$6([new $Int(ntargs), new $Int(ntparams)])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return false; - /* } */ case 4: - _r$1 = fmt.Sprintf("%v: got %d arguments but %d type parameters", new sliceType$6([new token.Pos(pos), new $Int(ntargs), new $Int(ntparams)])); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $panic(new $String(_r$1)); - /* } */ case 2: - $s = -1; return true; - /* */ } return; } var $f = {$blk: validateTArgLen, $c: true, $r, _r$1, check, ntargs, ntparams, pos, $s};return $f; + /* if (((p.flags & 1) >>> 0) === 0) { */ case 1: + if (g.sign < 0) { + r = appendNegatedClass(r, g.class$1); + } else { + r = appendClass(r, g.class$1); + } + $s = 3; continue; + /* } else { */ case 2: + tmp = $subslice(p.tmpClass, 0, 0); + tmp = appendFoldedClass(tmp, g.class$1); + p.tmpClass = tmp; + _r = cleanClass((p === ptrType$4.nil && $throwNilPointerError(), (p.$ptr_tmpClass || (p.$ptr_tmpClass = new ptrType$3(function() { return this.$target.tmpClass; }, function($v) { this.$target.tmpClass = $v; }, p))))); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + tmp = _r; + if (g.sign < 0) { + r = appendNegatedClass(r, tmp); + } else { + r = appendClass(r, tmp); + } + /* } */ case 3: + $s = -1; return r; + /* */ } return; } var $f = {$blk: appendGroup, $c: true, $r, _r, g, p, r, tmp, $s};return $f; }; - $ptrType(Checker).prototype.verify = function verify(pos, tparams, targs, ctxt) { - var {_i, _r$1, _r$2, _r$3, _r$4, _ref, bound, cause, check, ctxt, i, pos, smap, targs, tpar, tparams, $s, $r, $c} = $restore(this, {pos, tparams, targs, ctxt}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = makeSubstMap(tparams, targs); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - smap = _r$1; - _ref = tparams; - _i = 0; - /* while (true) { */ case 2: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } - cause = [cause]; - i = _i; - tpar = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$2 = tpar.iface(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - _r$3 = check.subst(pos, tpar.bound, smap, ptrType$9.nil, ctxt); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - bound = _r$3; - cause[0] = ""; - _r$4 = check.implements$(((i < 0 || i >= targs.$length) ? ($throwRuntimeError("index out of range"), undefined) : targs.$array[targs.$offset + i]), bound, true, (cause.$ptr || (cause.$ptr = new ptrType$34(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, cause)))); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if (!_r$4) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (!_r$4) { */ case 6: - $s = -1; return [i, errors.New(cause[0])]; - /* } */ case 7: - _i++; - $s = 2; continue; - case 3: - $s = -1; return [-1, $ifaceNil]; - /* */ } return; } var $f = {$blk: verify, $c: true, $r, _i, _r$1, _r$2, _r$3, _r$4, _ref, bound, cause, check, ctxt, i, pos, smap, targs, tpar, tparams, $s};return $f; + unicodeTable = function unicodeTable$1(name) { + var _entry, _entry$1, _entry$2, _entry$3, name, t, t$1; + if (name === "Any") { + return [anyTable, anyTable]; + } + t = (_entry = $mapIndex(unicode.Categories,$String.keyFor(name)), _entry !== undefined ? _entry.v : ptrType$5.nil); + if (!(t === ptrType$5.nil)) { + return [t, (_entry$1 = $mapIndex(unicode.FoldCategory,$String.keyFor(name)), _entry$1 !== undefined ? _entry$1.v : ptrType$5.nil)]; + } + t$1 = (_entry$2 = $mapIndex(unicode.Scripts,$String.keyFor(name)), _entry$2 !== undefined ? _entry$2.v : ptrType$5.nil); + if (!(t$1 === ptrType$5.nil)) { + return [t$1, (_entry$3 = $mapIndex(unicode.FoldScript,$String.keyFor(name)), _entry$3 !== undefined ? _entry$3.v : ptrType$5.nil)]; + } + return [ptrType$5.nil, ptrType$5.nil]; }; - $ptrType(Checker).prototype.implements$ = function implements$1(V, T, constraint, cause) { - var {$24r, $24r$1, $24r$2, T, Ti, Tu, V, Vi, Vu, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _v, _v$1, alt, cause, check, checkComparability, constraint, detail, detail$1, m, p, verb, wrong, $s, $r, $c} = $restore(this, {V, T, constraint, cause}); + $ptrType(parser).prototype.parseUnicodeClass = function parseUnicodeClass(s, r) { + var {_r, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, c, end, err, fold, name, out, p, r, rest, s, seq, sign, t, tab, tmp, $s, $r, $c} = $restore(this, {s, r}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - Ti = [Ti]; - V = [V]; - alt = [alt]; - cause = [cause]; - check = [check]; - constraint = [constraint]; - verb = [verb]; - check[0] = this; - _r$1 = under(V[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - Vu = _r$1; - _r$2 = under(T); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - Tu = _r$2; - if ($interfaceIsEqual(Vu, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])) || $interfaceIsEqual(Tu, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { - $s = -1; return true; + out = sliceType$1.nil; + rest = ""; + err = $ifaceNil; + p = this; + if ((((p.flags & 128) >>> 0) === 0) || s.length < 2 || !((s.charCodeAt(0) === 92)) || !((s.charCodeAt(1) === 112)) && !((s.charCodeAt(1) === 80))) { + $s = -1; return [out, rest, err]; } - _tuple = $assertType(Vu, ptrType$26, true); - p = _tuple[0]; - if (!(!(p === ptrType$26.nil))) { _v = false; $s = 5; continue s; } - _r$3 = under(p.base); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _v = $interfaceIsEqual(_r$3, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])); case 5: - /* */ if (_v) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (_v) { */ case 3: - $s = -1; return true; - /* } */ case 4: - verb[0] = "implement"; - if (constraint[0]) { - verb[0] = "satisfy"; + sign = 1; + if (s.charCodeAt(1) === 80) { + sign = -1; } - _tuple$1 = $assertType(Tu, ptrType$13, true); - Ti[0] = _tuple$1[0]; - /* */ if (Ti[0] === ptrType$13.nil) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (Ti[0] === ptrType$13.nil) { */ case 7: - /* */ if (!(cause[0] === ptrType$34.nil)) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (!(cause[0] === ptrType$34.nil)) { */ case 9: - detail = ""; - _r$4 = isInterfacePtr(Tu); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if (_r$4) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (_r$4) { */ case 11: - _r$5 = check[0].sprintf("type %s is pointer to interface, not interface", new sliceType$6([T])); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - detail = _r$5; - $s = 13; continue; - /* } else { */ case 12: - _r$6 = check[0].sprintf("%s is not an interface", new sliceType$6([T])); /* */ $s = 16; case 16: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - detail = _r$6; - /* } */ case 13: - _r$7 = check[0].sprintf("%s does not %s %s (%s)", new sliceType$6([V[0], new $String(verb[0]), T, new $String(detail)])); /* */ $s = 17; case 17: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - cause[0].$set(_r$7); - /* } */ case 10: - $s = -1; return false; - /* } */ case 8: - _r$8 = Ti[0].Empty(); /* */ $s = 20; case 20: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - /* */ if (_r$8) { $s = 18; continue; } - /* */ $s = 19; continue; - /* if (_r$8) { */ case 18: - $s = -1; return true; - /* } */ case 19: - _tuple$2 = $assertType(Vu, ptrType$13, true); - Vi = _tuple$2[0]; - if (!(!(Vi === ptrType$13.nil))) { _v$1 = false; $s = 23; continue s; } - _r$9 = Vi.typeSet(); /* */ $s = 24; case 24: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _r$10 = _r$9.IsEmpty(); /* */ $s = 25; case 25: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _v$1 = _r$10; case 23: - /* */ if (_v$1) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if (_v$1) { */ case 21: - $s = -1; return true; - /* } */ case 22: - _r$11 = Ti[0].typeSet(); /* */ $s = 28; case 28: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _r$12 = _r$11.IsEmpty(); /* */ $s = 29; case 29: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - /* */ if (_r$12) { $s = 26; continue; } - /* */ $s = 27; continue; - /* if (_r$12) { */ case 26: - /* */ if (!(cause[0] === ptrType$34.nil)) { $s = 30; continue; } - /* */ $s = 31; continue; - /* if (!(cause[0] === ptrType$34.nil)) { */ case 30: - _r$13 = check[0].sprintf("cannot %s %s (empty type set)", new sliceType$6([new $String(verb[0]), T])); /* */ $s = 32; case 32: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - cause[0].$set(_r$13); - /* } */ case 31: - $s = -1; return false; - /* } */ case 27: - _r$14 = check[0].missingMethod(V[0], Ti[0], true); /* */ $s = 33; case 33: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - _tuple$3 = _r$14; - m = _tuple$3[0]; - wrong = _tuple$3[1]; - /* */ if (!(m === ptrType$2.nil)) { $s = 34; continue; } - /* */ $s = 35; continue; - /* if (!(m === ptrType$2.nil)) { */ case 34: - /* */ if (!(cause[0] === ptrType$34.nil)) { $s = 36; continue; } - /* */ $s = 37; continue; - /* if (!(cause[0] === ptrType$34.nil)) { */ case 36: - _arg = V[0]; - _arg$1 = new $String(verb[0]); - _arg$2 = T; - _r$15 = check[0].missingMethodCause(V[0], T, m, wrong); /* */ $s = 38; case 38: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - _arg$3 = new $String(_r$15); - _r$16 = check[0].sprintf("%s does not %s %s %s", new sliceType$6([_arg, _arg$1, _arg$2, _arg$3])); /* */ $s = 39; case 39: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - cause[0].$set(_r$16); - /* } */ case 37: - $s = -1; return false; - /* } */ case 35: - checkComparability = (function(Ti, V, alt, cause, check, constraint, verb) { return function Checker·implements·func1() { - var {_r$17, _r$18, _r$19, _r$20, _r$21, _r$22, _v$2, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$17 = Ti[0].IsComparable(); /* */ $s = 3; case 3: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - /* */ if (!_r$17) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!_r$17) { */ case 1: - $s = -1; return true; - /* } */ case 2: - _r$18 = comparable(V[0], false, false, $throwNilPointerError); /* */ $s = 6; case 6: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - /* */ if (_r$18) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_r$18) { */ case 4: - $s = -1; return true; - /* } */ case 5: - /* */ if (!(check[0] === ptrType$6.nil) && check[0].conf.oldComparableSemantics) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (!(check[0] === ptrType$6.nil) && check[0].conf.oldComparableSemantics) { */ case 7: - /* */ if (!(cause[0] === ptrType$34.nil)) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (!(cause[0] === ptrType$34.nil)) { */ case 9: - _r$19 = check[0].sprintf("%s does not %s comparable", new sliceType$6([V[0], new $String(verb[0])])); /* */ $s = 11; case 11: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - cause[0].$set(_r$19); - /* } */ case 10: - $s = -1; return false; - /* } */ case 8: - if (!(constraint[0])) { _v$2 = false; $s = 14; continue s; } - _r$20 = comparable(V[0], true, false, $throwNilPointerError); /* */ $s = 15; case 15: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - _v$2 = _r$20; case 14: - /* */ if (_v$2) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (_v$2) { */ case 12: - if (check[0] === ptrType$6.nil || check[0].allowVersion(check[0].pkg, 1, 20)) { - $s = -1; return true; - } - /* */ if (!(cause[0] === ptrType$34.nil)) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (!(cause[0] === ptrType$34.nil)) { */ case 16: - _r$21 = check[0].sprintf("%s to %s comparable requires go1.20 or later", new sliceType$6([V[0], new $String(verb[0])])); /* */ $s = 18; case 18: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } - cause[0].$set(_r$21); - /* } */ case 17: - $s = -1; return false; - /* } */ case 13: - /* */ if (!(cause[0] === ptrType$34.nil)) { $s = 19; continue; } - /* */ $s = 20; continue; - /* if (!(cause[0] === ptrType$34.nil)) { */ case 19: - _r$22 = check[0].sprintf("%s does not %s comparable", new sliceType$6([V[0], new $String(verb[0])])); /* */ $s = 21; case 21: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - cause[0].$set(_r$22); - /* } */ case 20: - $s = -1; return false; - /* */ } return; } var $f = {$blk: Checker·implements·func1, $c: true, $r, _r$17, _r$18, _r$19, _r$20, _r$21, _r$22, _v$2, $s};return $f; - }; })(Ti, V, alt, cause, check, constraint, verb); - _r$17 = Ti[0].typeSet(); /* */ $s = 42; case 42: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - _r$18 = _r$17.hasTerms(); /* */ $s = 43; case 43: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - /* */ if (!_r$18) { $s = 40; continue; } - /* */ $s = 41; continue; - /* if (!_r$18) { */ case 40: - _r$19 = checkComparability(); /* */ $s = 44; case 44: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - $24r = _r$19; - $s = 45; case 45: return $24r; - /* } */ case 41: - /* */ if (!(Vi === ptrType$13.nil)) { $s = 46; continue; } - /* */ $s = 47; continue; - /* if (!(Vi === ptrType$13.nil)) { */ case 46: - _r$20 = Vi.typeSet(); /* */ $s = 50; case 50: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - _r$21 = Ti[0].typeSet(); /* */ $s = 51; case 51: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } - _r$22 = _r$20.subsetOf(_r$21); /* */ $s = 52; case 52: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - /* */ if (!_r$22) { $s = 48; continue; } - /* */ $s = 49; continue; - /* if (!_r$22) { */ case 48: - /* */ if (!(cause[0] === ptrType$34.nil)) { $s = 53; continue; } - /* */ $s = 54; continue; - /* if (!(cause[0] === ptrType$34.nil)) { */ case 53: - _r$23 = check[0].sprintf("%s does not %s %s", new sliceType$6([V[0], new $String(verb[0]), T])); /* */ $s = 55; case 55: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - cause[0].$set(_r$23); - /* } */ case 54: - $s = -1; return false; - /* } */ case 49: - _r$24 = checkComparability(); /* */ $s = 56; case 56: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - $24r$1 = _r$24; - $s = 57; case 57: return $24r$1; - /* } */ case 47: - alt[0] = $ifaceNil; - _r$25 = Ti[0].typeSet(); /* */ $s = 60; case 60: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - _r$26 = _r$25.is((function(Ti, V, alt, cause, check, constraint, verb) { return function Checker·implements·func2(t) { - var {_arg$4, _arg$5, _r$26, _r$27, _r$28, _r$29, _v$2, t, tt, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$26 = t.includes(V[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - /* */ if (!_r$26) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!_r$26) { */ case 1: - if (!($interfaceIsEqual(alt[0], $ifaceNil) && !t.tilde)) { _v$2 = false; $s = 6; continue s; } - _arg$4 = t.typ; - _r$27 = under(t.typ); /* */ $s = 7; case 7: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - _arg$5 = _r$27; - _r$28 = Identical(_arg$4, _arg$5); /* */ $s = 8; case 8: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - _v$2 = _r$28; case 6: - /* */ if (_v$2) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_v$2) { */ case 4: - tt = $clone(t, term); - tt.tilde = true; - _r$29 = tt.includes(V[0]); /* */ $s = 11; case 11: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } - /* */ if (_r$29) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (_r$29) { */ case 9: - alt[0] = t.typ; - /* } */ case 10: - /* } */ case 5: - $s = -1; return true; - /* } */ case 2: - $s = -1; return false; - /* */ } return; } var $f = {$blk: Checker·implements·func2, $c: true, $r, _arg$4, _arg$5, _r$26, _r$27, _r$28, _r$29, _v$2, t, tt, $s};return $f; - }; })(Ti, V, alt, cause, check, constraint, verb)); /* */ $s = 61; case 61: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - /* */ if (_r$26) { $s = 58; continue; } - /* */ $s = 59; continue; - /* if (_r$26) { */ case 58: - /* */ if (!(cause[0] === ptrType$34.nil)) { $s = 62; continue; } - /* */ $s = 63; continue; - /* if (!(cause[0] === ptrType$34.nil)) { */ case 62: - detail$1 = ""; - /* */ if (!($interfaceIsEqual(alt[0], $ifaceNil))) { $s = 65; continue; } - _r$27 = mentions(Ti[0], V[0]); /* */ $s = 69; case 69: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - /* */ if (_r$27) { $s = 66; continue; } - /* */ $s = 67; continue; - /* if (!($interfaceIsEqual(alt[0], $ifaceNil))) { */ case 65: - _r$28 = check[0].sprintf("possibly missing ~ for %s in %s", new sliceType$6([alt[0], T])); /* */ $s = 70; case 70: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - detail$1 = _r$28; - $s = 68; continue; - /* } else if (_r$27) { */ case 66: - _r$29 = check[0].sprintf("%s mentions %s, but %s is not in the type set of %s", new sliceType$6([T, V[0], V[0], T])); /* */ $s = 71; case 71: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } - detail$1 = _r$29; - $s = 68; continue; - /* } else { */ case 67: - _arg$4 = V[0]; - _r$30 = Ti[0].typeSet(); /* */ $s = 72; case 72: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } - _arg$5 = _r$30.terms; - _r$31 = check[0].sprintf("%s missing in %s", new sliceType$6([_arg$4, _arg$5])); /* */ $s = 73; case 73: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } - detail$1 = _r$31; - /* } */ case 68: - case 64: - _r$32 = check[0].sprintf("%s does not %s %s (%s)", new sliceType$6([V[0], new $String(verb[0]), T, new $String(detail$1)])); /* */ $s = 74; case 74: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } - cause[0].$set(_r$32); - /* } */ case 63: - $s = -1; return false; - /* } */ case 59: - _r$33 = checkComparability(); /* */ $s = 75; case 75: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } - $24r$2 = _r$33; - $s = 76; case 76: return $24r$2; - /* */ } return; } var $f = {$blk: implements$1, $c: true, $r, $24r, $24r$1, $24r$2, T, Ti, Tu, V, Vi, Vu, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _v, _v$1, alt, cause, check, checkComparability, constraint, detail, detail$1, m, p, verb, wrong, $s};return $f; - }; - mentions = function mentions$1(T, typ$3) { - var {T, T$1, T$2, T$3, _i, _i$1, _r$1, _r$2, _r$3, _ref, _ref$1, _ref$2, e, t, typ$3, $s, $r, $c} = $restore(this, {T, typ$3}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ref = T; - /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$12, true)[1]) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if ($assertType(_ref, ptrType$13, true)[1]) { */ case 1: - T$1 = _ref.$val; - _ref$1 = T$1.embeddeds; - _i = 0; - /* while (true) { */ case 5: - /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 6; continue; } - e = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); - _r$1 = mentions(e, typ$3); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (_r$1) { */ case 7: - $s = -1; return true; - /* } */ case 8: - _i++; - $s = 5; continue; - case 6: - $s = 4; continue; - /* } else if ($assertType(_ref, ptrType$12, true)[1]) { */ case 2: - T$2 = _ref.$val; - _ref$2 = T$2.terms; - _i$1 = 0; - /* while (true) { */ case 10: - /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 11; continue; } - t = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); - _r$2 = mentions(t.typ, typ$3); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (_r$2) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (_r$2) { */ case 12: - $s = -1; return true; - /* } */ case 13: - _i$1++; - $s = 10; continue; - case 11: - $s = 4; continue; - /* } else { */ case 3: - T$3 = _ref; - _r$3 = Identical(T$3, typ$3); /* */ $s = 17; case 17: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (_r$3) { $s = 15; continue; } - /* */ $s = 16; continue; - /* if (_r$3) { */ case 15: - $s = -1; return true; - /* } */ case 16: - /* } */ case 4: - $s = -1; return false; - /* */ } return; } var $f = {$blk: mentions$1, $c: true, $r, T, T$1, T$2, T$3, _i, _i$1, _r$1, _r$2, _r$3, _ref, _ref$1, _ref$2, e, t, typ$3, $s};return $f; - }; - $ptrType(Checker).prototype.initOrder = function initOrder() { - var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _key, _key$1, _key$2, _key$3, _key$4, _keys, _keys$1, _keys$2, _keys$3, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _size, _size$1, _size$2, _size$3, _tuple, _tuple$1, check, cycle, d, dep, emitted, info, infoLhs, init$5, init$6, n, n$1, obj, obj$1, p, p$1, pq, v, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - pq = [pq]; - check = this; - check.Info.InitOrder = $subslice(check.Info.InitOrder, 0, 0); - _r$1 = dependencyGraph(check.objMap); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - pq[0] = ($convertSliceType(_r$1, nodeQueue)); - $r = heap.Init((pq.$ptr || (pq.$ptr = new ptrType$94(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, pq)))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (false) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (false) { */ case 3: - _r$2 = fmt.Printf("Computing initialization order for %s\n\n", new sliceType$6([check.pkg])); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - _r$3 = fmt.Println(new sliceType$6([new $String("Object dependency graph:")])); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$3; - _ref = check.objMap; - _i = 0; - _keys = _ref ? _ref.keys() : undefined; - _size = _ref ? _ref.size : 0; - /* while (true) { */ case 7: - /* if (!(_i < _size)) { break; } */ if(!(_i < _size)) { $s = 8; continue; } - _key = _keys.next().value; - _entry = _ref.get(_key); - if (_entry === undefined) { - _i++; - /* continue; */ $s = 7; continue; - } - obj = _entry.k; - d = _entry.v; - _tuple = $assertType(obj, dependency, true); - obj$1 = _tuple[0]; - /* */ if (!($interfaceIsEqual(obj$1, $ifaceNil))) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (!($interfaceIsEqual(obj$1, $ifaceNil))) { */ case 9: - /* */ if ((d.deps ? d.deps.size : 0) > 0) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if ((d.deps ? d.deps.size : 0) > 0) { */ case 11: - _r$4 = obj$1.Name(); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _arg = new $String(_r$4); - _r$5 = fmt.Printf("\t%s depends on\n", new sliceType$6([_arg])); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$5; - _ref$1 = d.deps; - _i$1 = 0; - _keys$1 = _ref$1 ? _ref$1.keys() : undefined; - _size$1 = _ref$1 ? _ref$1.size : 0; - /* while (true) { */ case 16: - /* if (!(_i$1 < _size$1)) { break; } */ if(!(_i$1 < _size$1)) { $s = 17; continue; } - _key$1 = _keys$1.next().value; - _entry$1 = _ref$1.get(_key$1); - if (_entry$1 === undefined) { - _i$1++; - /* continue; */ $s = 16; continue; - } - dep = _entry$1.k; - _r$6 = dep.Name(); /* */ $s = 18; case 18: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _arg$1 = new $String(_r$6); - _r$7 = fmt.Printf("\t\t%s\n", new sliceType$6([_arg$1])); /* */ $s = 19; case 19: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _r$7; - _i$1++; - $s = 16; continue; - case 17: - $s = 13; continue; - /* } else { */ case 12: - _r$8 = obj$1.Name(); /* */ $s = 20; case 20: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _arg$2 = new $String(_r$8); - _r$9 = fmt.Printf("\t%s has no dependencies\n", new sliceType$6([_arg$2])); /* */ $s = 21; case 21: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _r$9; - /* } */ case 13: - /* } */ case 10: - _i++; - $s = 7; continue; - case 8: - _r$10 = fmt.Println(sliceType$6.nil); /* */ $s = 22; case 22: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _r$10; - _r$11 = fmt.Println(new sliceType$6([new $String("Transposed object dependency graph (functions eliminated):")])); /* */ $s = 23; case 23: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _r$11; - _ref$2 = pq[0]; - _i$2 = 0; - /* while (true) { */ case 24: - /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 25; continue; } - n = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); - _r$12 = n.obj.Name(); /* */ $s = 26; case 26: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _arg$3 = new $String(_r$12); - _arg$4 = new $Int(n.ndeps); - _r$13 = fmt.Printf("\t%s depends on %d nodes\n", new sliceType$6([_arg$3, _arg$4])); /* */ $s = 27; case 27: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - _r$13; - _ref$3 = n.pred; - _i$3 = 0; - _keys$2 = _ref$3 ? _ref$3.keys() : undefined; - _size$2 = _ref$3 ? _ref$3.size : 0; - /* while (true) { */ case 28: - /* if (!(_i$3 < _size$2)) { break; } */ if(!(_i$3 < _size$2)) { $s = 29; continue; } - _key$2 = _keys$2.next().value; - _entry$2 = _ref$3.get(_key$2); - if (_entry$2 === undefined) { - _i$3++; - /* continue; */ $s = 28; continue; - } - p = _entry$2.k; - _r$14 = p.obj.Name(); /* */ $s = 30; case 30: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - _arg$5 = new $String(_r$14); - _r$15 = fmt.Printf("\t\t%s is dependent\n", new sliceType$6([_arg$5])); /* */ $s = 31; case 31: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - _r$15; - _i$3++; - $s = 28; continue; - case 29: - _i$2++; - $s = 24; continue; - case 25: - _r$16 = fmt.Println(sliceType$6.nil); /* */ $s = 32; case 32: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - _r$16; - _r$17 = fmt.Println(new sliceType$6([new $String("Processing nodes:")])); /* */ $s = 33; case 33: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - _r$17; - /* } */ case 4: - emitted = new $global.Map(); - /* while (true) { */ case 34: - /* if (!(pq[0].$length > 0)) { break; } */ if(!(pq[0].$length > 0)) { $s = 35; continue; } - _r$18 = heap.Pop((pq.$ptr || (pq.$ptr = new ptrType$94(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, pq)))); /* */ $s = 36; case 36: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - n$1 = $assertType(_r$18, ptrType$95); - /* */ if (false) { $s = 37; continue; } - /* */ $s = 38; continue; - /* if (false) { */ case 37: - _r$19 = n$1.obj.Name(); /* */ $s = 39; case 39: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - _arg$6 = new $String(_r$19); - _r$20 = n$1.obj.order(); /* */ $s = 40; case 40: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - _arg$7 = new $Uint32(_r$20); - _arg$8 = new $Int(n$1.ndeps); - _r$21 = fmt.Printf("\t%s (src pos %d) depends on %d nodes now\n", new sliceType$6([_arg$6, _arg$7, _arg$8])); /* */ $s = 41; case 41: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } - _r$21; - /* } */ case 38: - /* */ if (n$1.ndeps > 0) { $s = 42; continue; } - /* */ $s = 43; continue; - /* if (n$1.ndeps > 0) { */ case 42: - cycle = findPath(check.objMap, n$1.obj, n$1.obj, new $global.Map()); - /* */ if (!(cycle === sliceType$8.nil)) { $s = 44; continue; } - /* */ $s = 45; continue; - /* if (!(cycle === sliceType$8.nil)) { */ case 44: - $r = check.reportCycle(cycle); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 45: - /* } */ case 43: - _ref$4 = n$1.pred; - _i$4 = 0; - _keys$3 = _ref$4 ? _ref$4.keys() : undefined; - _size$3 = _ref$4 ? _ref$4.size : 0; - /* while (true) { */ case 47: - /* if (!(_i$4 < _size$3)) { break; } */ if(!(_i$4 < _size$3)) { $s = 48; continue; } - _key$3 = _keys$3.next().value; - _entry$3 = _ref$4.get(_key$3); - if (_entry$3 === undefined) { - _i$4++; - /* continue; */ $s = 47; continue; + t = $substring(s, 2); + _tuple = nextRune(t); + c = _tuple[0]; + t = _tuple[1]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [out, rest, err]; + } + _tmp = ""; + _tmp$1 = ""; + seq = _tmp; + name = _tmp$1; + if (!((c === 123))) { + seq = $substring(s, 0, (s.length - t.length >> 0)); + name = $substring(seq, 2); + } else { + end = strings.IndexRune(s, 125); + if (end < 0) { + err = checkUTF8(s); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [out, rest, err]; } - p$1 = _entry$3.k; - p$1.ndeps = p$1.ndeps - (1) >> 0; - $r = heap.Fix((pq.$ptr || (pq.$ptr = new ptrType$94(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, pq))), p$1.index); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$4++; - $s = 47; continue; - case 48: - _tuple$1 = $assertType(n$1.obj, ptrType$16, true); - v = _tuple$1[0]; - info = (_entry$4 = $mapIndex(check.objMap,Object.keyFor(v)), _entry$4 !== undefined ? _entry$4.v : ptrType$58.nil); - if (v === ptrType$16.nil || !info.hasInitializer()) { - /* continue; */ $s = 34; continue; - } - if ((_entry$5 = $mapIndex(emitted,ptrType$58.keyFor(info)), _entry$5 !== undefined ? _entry$5.v : false)) { - /* continue; */ $s = 34; continue; - } - _key$4 = info; (emitted || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$58.keyFor(_key$4), { k: _key$4, v: true }); - infoLhs = info.lhs; - if (infoLhs === sliceType$10.nil) { - infoLhs = new sliceType$10([v]); - } - init$5 = new Initializer.ptr(infoLhs, info.init); - check.Info.InitOrder = $append(check.Info.InitOrder, init$5); - $s = 34; continue; - case 35: - /* */ if (false) { $s = 50; continue; } - /* */ $s = 51; continue; - /* if (false) { */ case 50: - _r$22 = fmt.Println(sliceType$6.nil); /* */ $s = 52; case 52: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _r$22; - _r$23 = fmt.Println(new sliceType$6([new $String("Initialization order:")])); /* */ $s = 53; case 53: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _r$23; - _ref$5 = check.Info.InitOrder; - _i$5 = 0; - /* while (true) { */ case 54: - /* if (!(_i$5 < _ref$5.$length)) { break; } */ if(!(_i$5 < _ref$5.$length)) { $s = 55; continue; } - init$6 = ((_i$5 < 0 || _i$5 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$5]); - _r$24 = fmt.Printf("\t%s\n", new sliceType$6([init$6])); /* */ $s = 56; case 56: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - _r$24; - _i$5++; - $s = 54; continue; - case 55: - _r$25 = fmt.Println(sliceType$6.nil); /* */ $s = 57; case 57: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - _r$25; - /* } */ case 51: - $s = -1; return; - /* */ } return; } var $f = {$blk: initOrder, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _key, _key$1, _key$2, _key$3, _key$4, _keys, _keys$1, _keys$2, _keys$3, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _size, _size$1, _size$2, _size$3, _tuple, _tuple$1, check, cycle, d, dep, emitted, info, infoLhs, init$5, init$6, n, n$1, obj, obj$1, p, p$1, pq, v, $s};return $f; - }; - findPath = function findPath$1(objMap, from, to, seen) { - var P, _entry, _entry$1, _entry$2, _i, _key, _key$1, _keys, _ref, _size, d, from, objMap, seen, to; - if ((_entry = $mapIndex(seen,Object.keyFor(from)), _entry !== undefined ? _entry.v : false)) { - return sliceType$8.nil; - } - _key = from; (seen || $throwRuntimeError("assignment to entry in nil map")).set(Object.keyFor(_key), { k: _key, v: true }); - _ref = (_entry$1 = $mapIndex(objMap,Object.keyFor(from)), _entry$1 !== undefined ? _entry$1.v : ptrType$58.nil).deps; - _i = 0; - _keys = _ref ? _ref.keys() : undefined; - _size = _ref ? _ref.size : 0; - while (true) { - if (!(_i < _size)) { break; } - _key$1 = _keys.next().value; - _entry$2 = _ref.get(_key$1); - if (_entry$2 === undefined) { - _i++; - continue; - } - d = _entry$2.k; - if ($interfaceIsEqual(d, to)) { - return new sliceType$8([d]); + _tmp$2 = sliceType$1.nil; + _tmp$3 = ""; + _tmp$4 = new Error.ptr("invalid character class range", s); + out = _tmp$2; + rest = _tmp$3; + err = _tmp$4; + $s = -1; return [out, rest, err]; } - P = findPath(objMap, d, to, seen); - if (!(P === sliceType$8.nil)) { - return $append(P, d); + _tmp$5 = $substring(s, 0, (end + 1 >> 0)); + _tmp$6 = $substring(s, (end + 1 >> 0)); + seq = _tmp$5; + t = _tmp$6; + name = $substring(s, 3, end); + err = checkUTF8(name); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [out, rest, err]; } - _i++; } - return sliceType$8.nil; - }; - $ptrType(Checker).prototype.reportCycle = function reportCycle(cycle) { - var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _r$1, _r$2, _r$3, _r$4, check, cycle, i, obj, $s, $r, $c} = $restore(this, {cycle}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - obj = (0 >= cycle.$length ? ($throwRuntimeError("index out of range"), undefined) : cycle.$array[cycle.$offset + 0]); - /* */ if (cycle.$length === 1) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (cycle.$length === 1) { */ case 1: - _arg = obj; - _r$1 = obj.Name(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _arg$1 = new $String(_r$1); - $r = check.errorf(_arg, 9, "initialization cycle: %s refers to itself", new sliceType$6([_arg$1])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 2: - _arg$2 = obj; - _r$2 = obj.Name(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _arg$3 = new $String(_r$2); - $r = check.errorf(_arg$2, 9, "initialization cycle for %s", new sliceType$6([_arg$3])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - i = cycle.$length - 1 >> 0; - /* while (true) { */ case 7: - /* if (!(i >= 0)) { break; } */ if(!(i >= 0)) { $s = 8; continue; } - _arg$4 = obj; - _r$3 = obj.Name(); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _arg$5 = new $String(_r$3); - $r = check.errorf(_arg$4, 9, "\t%s refers to", new sliceType$6([_arg$5])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - obj = ((i < 0 || i >= cycle.$length) ? ($throwRuntimeError("index out of range"), undefined) : cycle.$array[cycle.$offset + i]); - i = i - (1) >> 0; - $s = 7; continue; - case 8: - _arg$6 = obj; - _r$4 = obj.Name(); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _arg$7 = new $String(_r$4); - $r = check.errorf(_arg$6, 9, "\t%s", new sliceType$6([_arg$7])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: reportCycle, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _r$1, _r$2, _r$3, _r$4, check, cycle, i, obj, $s};return $f; - }; - $ptrType(graphNode).prototype.cost = function cost() { - var n; - n = this; - return $imul((n.pred ? n.pred.size : 0), (n.succ ? n.succ.size : 0)); - }; - $ptrType(nodeSet).prototype.add = function add$2(p) { - var _key, p, s; - s = this; - if (s.$get() === false) { - s.$set(new $global.Map()); + if (!(name === "") && (name.charCodeAt(0) === 94)) { + sign = -sign; + name = $substring(name, 1); + } + _tuple$1 = unicodeTable(name); + tab = _tuple$1[0]; + fold = _tuple$1[1]; + if (tab === ptrType$5.nil) { + _tmp$7 = sliceType$1.nil; + _tmp$8 = ""; + _tmp$9 = new Error.ptr("invalid character class range", seq); + out = _tmp$7; + rest = _tmp$8; + err = _tmp$9; + $s = -1; return [out, rest, err]; } - _key = p; (s.$get() || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$95.keyFor(_key), { k: _key, v: true }); + /* */ if ((((p.flags & 1) >>> 0) === 0) || fold === ptrType$5.nil) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ((((p.flags & 1) >>> 0) === 0) || fold === ptrType$5.nil) { */ case 1: + if (sign > 0) { + r = appendTable(r, tab); + } else { + r = appendNegatedTable(r, tab); + } + $s = 3; continue; + /* } else { */ case 2: + tmp = $subslice(p.tmpClass, 0, 0); + tmp = appendTable(tmp, tab); + tmp = appendTable(tmp, fold); + p.tmpClass = tmp; + _r = cleanClass((p === ptrType$4.nil && $throwNilPointerError(), (p.$ptr_tmpClass || (p.$ptr_tmpClass = new ptrType$3(function() { return this.$target.tmpClass; }, function($v) { this.$target.tmpClass = $v; }, p))))); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + tmp = _r; + if (sign > 0) { + r = appendClass(r, tmp); + } else { + r = appendNegatedClass(r, tmp); + } + /* } */ case 3: + _tmp$10 = r; + _tmp$11 = t; + _tmp$12 = $ifaceNil; + out = _tmp$10; + rest = _tmp$11; + err = _tmp$12; + $s = -1; return [out, rest, err]; + /* */ } return; } var $f = {$blk: parseUnicodeClass, $c: true, $r, _r, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, c, end, err, fold, name, out, p, r, rest, s, seq, sign, t, tab, tmp, $s};return $f; }; - dependencyGraph = function dependencyGraph$1(objMap) { - var {G, M, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _entry$6, _entry$7, _entry$8, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _i$8, _key, _key$1, _key$2, _key$3, _key$4, _key$5, _key$6, _key$7, _keys, _keys$1, _keys$2, _keys$3, _keys$4, _keys$5, _keys$6, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _size, _size$1, _size$2, _size$3, _size$4, _size$5, _size$6, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, d, d$1, d$2, funcG, i, n, n$1, n$2, n$3, obj, obj$1, obj$2, objMap, ok, p, s, s$1, $s, $r, $c} = $restore(this, {objMap}); + $ptrType(parser).prototype.parseClass = function parseClass(s) { + var {_r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, class$1, err, err$1, err$2, first, hi, lo, nclass, nclass$1, nclass$2, nt, nt$1, nt$2, p, re, rest, rng, s, sign, size, t, $s, $r, $c} = $restore(this, {s}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - funcG = [funcG]; - M = new $global.Map(); - _ref = objMap; - _i = 0; - _keys = _ref ? _ref.keys() : undefined; - _size = _ref ? _ref.size : 0; - while (true) { - if (!(_i < _size)) { break; } - _key = _keys.next().value; - _entry = _ref.get(_key); - if (_entry === undefined) { - _i++; - continue; - } - obj = _entry.k; - _tuple = $assertType(obj, dependency, true); - obj$1 = _tuple[0]; - if (!($interfaceIsEqual(obj$1, $ifaceNil))) { - _key$1 = obj$1; (M || $throwRuntimeError("assignment to entry in nil map")).set(dependency.keyFor(_key$1), { k: _key$1, v: new graphNode.ptr(obj$1, false, false, 0, 0) }); + rest = ""; + err = $ifaceNil; + p = this; + t = $substring(s, 1); + re = p.newRegexp(4); + re.Flags = p.flags; + re.Rune = $subslice(new sliceType$1(re.Rune0), 0, 0); + sign = 1; + if (!(t === "") && (t.charCodeAt(0) === 94)) { + sign = -1; + t = $substring(t, 1); + if (((p.flags & 4) >>> 0) === 0) { + re.Rune = $append(re.Rune, 10, 10); } - _i++; } - _ref$1 = M; - _i$1 = 0; - _keys$1 = _ref$1 ? _ref$1.keys() : undefined; - _size$1 = _ref$1 ? _ref$1.size : 0; - while (true) { - if (!(_i$1 < _size$1)) { break; } - _key$2 = _keys$1.next().value; - _entry$1 = _ref$1.get(_key$2); - if (_entry$1 === undefined) { - _i$1++; - continue; + class$1 = re.Rune; + first = true; + /* while (true) { */ case 1: + /* if (!(t === "" || !((t.charCodeAt(0) === 93)) || first)) { break; } */ if(!(t === "" || !((t.charCodeAt(0) === 93)) || first)) { $s = 2; continue; } + if (!(t === "") && (t.charCodeAt(0) === 45) && (((p.flags & 64) >>> 0) === 0) && !first && ((t.length === 1) || !((t.charCodeAt(1) === 93)))) { + _tuple = utf8.DecodeRuneInString($substring(t, 1)); + size = _tuple[1]; + _tmp = ""; + _tmp$1 = new Error.ptr("invalid character class range", $substring(t, 0, (1 + size >> 0))); + rest = _tmp; + err = _tmp$1; + $s = -1; return [rest, err]; } - obj$2 = _entry$1.k; - n = _entry$1.v; - _ref$2 = (_entry$2 = $mapIndex(objMap,Object.keyFor(obj$2)), _entry$2 !== undefined ? _entry$2.v : ptrType$58.nil).deps; - _i$2 = 0; - _keys$2 = _ref$2 ? _ref$2.keys() : undefined; - _size$2 = _ref$2 ? _ref$2.size : 0; - while (true) { - if (!(_i$2 < _size$2)) { break; } - _key$3 = _keys$2.next().value; - _entry$3 = _ref$2.get(_key$3); - if (_entry$3 === undefined) { - _i$2++; - continue; + first = false; + /* */ if (t.length > 2 && (t.charCodeAt(0) === 91) && (t.charCodeAt(1) === 58)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (t.length > 2 && (t.charCodeAt(0) === 91) && (t.charCodeAt(1) === 58)) { */ case 3: + _r = p.parseNamedClass(t, class$1); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple$1 = _r; + nclass = _tuple$1[0]; + nt = _tuple$1[1]; + err$1 = _tuple$1[2]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + _tmp$2 = ""; + _tmp$3 = err$1; + rest = _tmp$2; + err = _tmp$3; + $s = -1; return [rest, err]; } - d = _entry$3.k; - _tuple$1 = $assertType(d, dependency, true); - d$1 = _tuple$1[0]; - if (!($interfaceIsEqual(d$1, $ifaceNil))) { - d$2 = (_entry$4 = $mapIndex(M,dependency.keyFor(d$1)), _entry$4 !== undefined ? _entry$4.v : ptrType$95.nil); - (n.$ptr_succ || (n.$ptr_succ = new ptrType$96(function() { return this.$target.succ; }, function($v) { this.$target.succ = $v; }, n))).add(d$2); - (d$2.$ptr_pred || (d$2.$ptr_pred = new ptrType$96(function() { return this.$target.pred; }, function($v) { this.$target.pred = $v; }, d$2))).add(n); + if (!(nclass === sliceType$1.nil)) { + _tmp$4 = nclass; + _tmp$5 = nt; + class$1 = _tmp$4; + t = _tmp$5; + /* continue; */ $s = 1; continue; } - _i$2++; + /* } */ case 4: + _r$1 = p.parseUnicodeClass(t, class$1); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$2 = _r$1; + nclass$1 = _tuple$2[0]; + nt$1 = _tuple$2[1]; + err$2 = _tuple$2[2]; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + _tmp$6 = ""; + _tmp$7 = err$2; + rest = _tmp$6; + err = _tmp$7; + $s = -1; return [rest, err]; } - _i$1++; - } - _tmp = sliceType$28.nil; - _tmp$1 = sliceType$28.nil; - G = _tmp; - funcG[0] = _tmp$1; - _ref$3 = M; - _i$3 = 0; - _keys$3 = _ref$3 ? _ref$3.keys() : undefined; - _size$3 = _ref$3 ? _ref$3.size : 0; - while (true) { - if (!(_i$3 < _size$3)) { break; } - _key$4 = _keys$3.next().value; - _entry$5 = _ref$3.get(_key$4); - if (_entry$5 === undefined) { - _i$3++; - continue; + if (!(nclass$1 === sliceType$1.nil)) { + _tmp$8 = nclass$1; + _tmp$9 = nt$1; + class$1 = _tmp$8; + t = _tmp$9; + /* continue; */ $s = 1; continue; } - n$1 = _entry$5.v; - _tuple$2 = $assertType(n$1.obj, ptrType$2, true); - ok = _tuple$2[1]; - if (ok) { - funcG[0] = $append(funcG[0], n$1); - } else { - G = $append(G, n$1); + _r$2 = p.parsePerlClassEscape(t, class$1); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$3 = _r$2; + nclass$2 = _tuple$3[0]; + nt$2 = _tuple$3[1]; + if (!(nclass$2 === sliceType$1.nil)) { + _tmp$10 = nclass$2; + _tmp$11 = nt$2; + class$1 = _tmp$10; + t = _tmp$11; + /* continue; */ $s = 1; continue; } - _i$3++; - } - $r = sort.Slice(funcG[0], (function(funcG) { return function dependencyGraph·func1(i, j) { - var i, j; - return ((i < 0 || i >= funcG[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : funcG[0].$array[funcG[0].$offset + i]).cost() < ((j < 0 || j >= funcG[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : funcG[0].$array[funcG[0].$offset + j]).cost(); - }; })(funcG)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _ref$4 = funcG[0]; - _i$4 = 0; - while (true) { - if (!(_i$4 < _ref$4.$length)) { break; } - n$2 = ((_i$4 < 0 || _i$4 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$4]); - _ref$5 = n$2.pred; - _i$5 = 0; - _keys$4 = _ref$5 ? _ref$5.keys() : undefined; - _size$4 = _ref$5 ? _ref$5.size : 0; - while (true) { - if (!(_i$5 < _size$4)) { break; } - _key$5 = _keys$4.next().value; - _entry$6 = _ref$5.get(_key$5); - if (_entry$6 === undefined) { - _i$5++; - continue; + rng = t; + _tmp$12 = 0; + _tmp$13 = 0; + lo = _tmp$12; + hi = _tmp$13; + _tuple$4 = p.parseClassChar(t, s); + lo = _tuple$4[0]; + t = _tuple$4[1]; + err$2 = _tuple$4[2]; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + _tmp$14 = ""; + _tmp$15 = err$2; + rest = _tmp$14; + err = _tmp$15; + $s = -1; return [rest, err]; + } + hi = lo; + if (t.length >= 2 && (t.charCodeAt(0) === 45) && !((t.charCodeAt(1) === 93))) { + t = $substring(t, 1); + _tuple$5 = p.parseClassChar(t, s); + hi = _tuple$5[0]; + t = _tuple$5[1]; + err$2 = _tuple$5[2]; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + _tmp$16 = ""; + _tmp$17 = err$2; + rest = _tmp$16; + err = _tmp$17; + $s = -1; return [rest, err]; } - p = _entry$6.k; - if (!(p === n$2)) { - _ref$6 = n$2.succ; - _i$6 = 0; - _keys$5 = _ref$6 ? _ref$6.keys() : undefined; - _size$5 = _ref$6 ? _ref$6.size : 0; - while (true) { - if (!(_i$6 < _size$5)) { break; } - _key$6 = _keys$5.next().value; - _entry$7 = _ref$6.get(_key$6); - if (_entry$7 === undefined) { - _i$6++; - continue; - } - s = _entry$7.k; - if (!(s === n$2)) { - (p.$ptr_succ || (p.$ptr_succ = new ptrType$96(function() { return this.$target.succ; }, function($v) { this.$target.succ = $v; }, p))).add(s); - (s.$ptr_pred || (s.$ptr_pred = new ptrType$96(function() { return this.$target.pred; }, function($v) { this.$target.pred = $v; }, s))).add(p); - } - _i$6++; - } - $mapDelete(p.succ, ptrType$95.keyFor(n$2)); + if (hi < lo) { + rng = $substring(rng, 0, (rng.length - t.length >> 0)); + _tmp$18 = ""; + _tmp$19 = new Error.ptr("invalid character class range", rng); + rest = _tmp$18; + err = _tmp$19; + $s = -1; return [rest, err]; } - _i$5++; } - _ref$7 = n$2.succ; - _i$7 = 0; - _keys$6 = _ref$7 ? _ref$7.keys() : undefined; - _size$6 = _ref$7 ? _ref$7.size : 0; - while (true) { - if (!(_i$7 < _size$6)) { break; } - _key$7 = _keys$6.next().value; - _entry$8 = _ref$7.get(_key$7); - if (_entry$8 === undefined) { - _i$7++; - continue; - } - s$1 = _entry$8.k; - $mapDelete(s$1.pred, ptrType$95.keyFor(n$2)); - _i$7++; + if (((p.flags & 1) >>> 0) === 0) { + class$1 = appendRange(class$1, lo, hi); + } else { + class$1 = appendFoldedRange(class$1, lo, hi); } - _i$4++; - } - _ref$8 = G; - _i$8 = 0; - while (true) { - if (!(_i$8 < _ref$8.$length)) { break; } - i = _i$8; - n$3 = ((_i$8 < 0 || _i$8 >= _ref$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$8.$array[_ref$8.$offset + _i$8]); - n$3.index = i; - n$3.ndeps = (n$3.succ ? n$3.succ.size : 0); - _i$8++; + $s = 1; continue; + case 2: + t = $substring(t, 1); + re.Rune = class$1; + _r$3 = cleanClass((re === ptrType.nil && $throwNilPointerError(), (re.$ptr_Rune || (re.$ptr_Rune = new ptrType$3(function() { return this.$target.Rune; }, function($v) { this.$target.Rune = $v; }, re))))); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + class$1 = _r$3; + if (sign < 0) { + class$1 = negateClass(class$1); } - $s = -1; return G; - /* */ } return; } var $f = {$blk: dependencyGraph$1, $c: true, $r, G, M, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _entry$6, _entry$7, _entry$8, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _i$8, _key, _key$1, _key$2, _key$3, _key$4, _key$5, _key$6, _key$7, _keys, _keys$1, _keys$2, _keys$3, _keys$4, _keys$5, _keys$6, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _ref$8, _size, _size$1, _size$2, _size$3, _size$4, _size$5, _size$6, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, d, d$1, d$2, funcG, i, n, n$1, n$2, n$3, obj, obj$1, obj$2, objMap, ok, p, s, s$1, $s};return $f; - }; - nodeQueue.prototype.Len = function Len$8() { - var a; - a = this; - return a.$length; - }; - $ptrType(nodeQueue).prototype.Len = function(...$args) { return this.$get().Len(...$args); }; - nodeQueue.prototype.Swap = function Swap$2(i, j) { - var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, a, i, j, x, y; - a = this; - _tmp = ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i]); - _tmp$1 = ((j < 0 || j >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + j]); - x = _tmp; - y = _tmp$1; - _tmp$2 = y; - _tmp$3 = x; - ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i] = _tmp$2); - ((j < 0 || j >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + j] = _tmp$3); - _tmp$4 = j; - _tmp$5 = i; - x.index = _tmp$4; - y.index = _tmp$5; + re.Rune = class$1; + p.push(re); + _tmp$20 = t; + _tmp$21 = $ifaceNil; + rest = _tmp$20; + err = _tmp$21; + $s = -1; return [rest, err]; + /* */ } return; } var $f = {$blk: parseClass, $c: true, $r, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, class$1, err, err$1, err$2, first, hi, lo, nclass, nclass$1, nclass$2, nt, nt$1, nt$2, p, re, rest, rng, s, sign, size, t, $s};return $f; }; - $ptrType(nodeQueue).prototype.Swap = function(...$args) { return this.$get().Swap(...$args); }; - nodeQueue.prototype.Less = function Less$2(i, j) { - var {$24r, _r$1, _r$2, _tmp, _tmp$1, _v, _v$1, a, i, j, x, y, $s, $r, $c} = $restore(this, {i, j}); + cleanClass = function cleanClass$1(rp) { + var {_tmp, _tmp$1, hi, i, lo, r, rp, w, x, x$1, x$2, x$3, x$4, x$5, $s, $r, $c} = $restore(this, {rp}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - a = this; - _tmp = ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i]); - _tmp$1 = ((j < 0 || j >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + j]); - x = _tmp; - y = _tmp$1; - if (x.ndeps < y.ndeps) { _v = true; $s = 1; continue s; } - if (!(x.ndeps === y.ndeps)) { _v$1 = false; $s = 2; continue s; } - _r$1 = x.obj.order(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = y.obj.order(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _v$1 = _r$1 < _r$2; case 2: - _v = _v$1; case 1: - $24r = _v; - $s = 5; case 5: return $24r; - /* */ } return; } var $f = {$blk: Less$2, $c: true, $r, $24r, _r$1, _r$2, _tmp, _tmp$1, _v, _v$1, a, i, j, x, y, $s};return $f; - }; - $ptrType(nodeQueue).prototype.Less = function(...$args) { return this.$get().Less(...$args); }; - $ptrType(nodeQueue).prototype.Push = function Push(x) { - var a, x; - a = this; - $panic(new $String("unreachable")); - }; - $ptrType(nodeQueue).prototype.Pop = function Pop() { - var a, n, x, x$1, x$2; - a = this; - n = a.$get().$length; - x$2 = (x = a.$get(), x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); - x$2.index = -1; - a.$set($subslice((a.$get()), 0, (n - 1 >> 0))); - return x$2; - }; - $ptrType(Checker).prototype.infer = function infer(posn, tparams, targs, params, args) { - var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _v, arg, arg$1, arg$2, args, args2, check, errorf, i, i$1, i$2, i$3, i$4, i$5, i$6, index$1, indices, j, j$1, m, n, named, ok, par, params, params2, posn, renameMap, result, smap, targ, targ$1, targ$2, targs, targs2, tname, tpar, tpar$1, tparam, tparam$1, tparams, tparams2, u, unnamed, x, $s, $deferred, $r, $c} = $restore(this, {posn, tparams, targs, params, args}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - check = [check]; - result = [result]; - tparams = [tparams]; - u = [u]; - result[0] = sliceType$3.nil; - check[0] = this; - /* */ if (false) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (false) { */ case 1: - $deferred.push([(function(check, result, tparams, u) { return function Checker·infer·func1() { - var {_i, _ref, targ, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = assert(result[0] === sliceType$3.nil || (result[0].$length === tparams[0].$length)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _ref = result[0]; - _i = 0; - /* while (true) { */ case 2: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } - targ = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - $r = assert(!($interfaceIsEqual(targ, $ifaceNil))); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 2; continue; - case 3: - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·infer·func1, $c: true, $r, _i, _ref, targ, $s};return $f; - }; })(check, result, tparams, u), []]); - /* } */ case 2: - /* */ if (false) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (false) { */ case 3: - $r = check[0].dump("-- inferA %s%s \xE2\x9E\x9E %s", new sliceType$6([tparams[0], params, targs])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([(function(check, result, tparams, u) { return function Checker·infer·func2() { - var {$s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = check[0].dump("=> inferA %s \xE2\x9E\x9E %s", new sliceType$6([tparams[0], result[0]])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·infer·func2, $c: true, $r, $s};return $f; - }; })(check, result, tparams, u), []]); - /* } */ case 4: - n = tparams[0].$length; - $r = assert(n > 0 && targs.$length <= n); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = assert(params.Len() === args.$length); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (targs.$length === n) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (targs.$length === n) { */ case 8: - result[0] = targs; - $24r = result[0]; - $s = 10; case 10: return $24r; - /* } */ case 9: - /* */ if (true) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (true) { */ case 11: - tparams2 = $makeSlice(sliceType$9, tparams[0].$length); - _ref = tparams[0]; - _i = 0; - /* while (true) { */ case 13: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 14; continue; } - i = _i; - tparam = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - tname = NewTypeName(tparam.Obj().object.Pos(), tparam.Obj().object.Pkg(), tparam.Obj().object.Name(), $ifaceNil); - _r$1 = NewTypeParam(tname, $ifaceNil); /* */ $s = 15; case 15: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - ((i < 0 || i >= tparams2.$length) ? ($throwRuntimeError("index out of range"), undefined) : tparams2.$array[tparams2.$offset + i] = _r$1); - ((i < 0 || i >= tparams2.$length) ? ($throwRuntimeError("index out of range"), undefined) : tparams2.$array[tparams2.$offset + i]).index = tparam.index; - _i++; - $s = 13; continue; - case 14: - _r$2 = makeRenameMap(tparams[0], tparams2); /* */ $s = 16; case 16: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - renameMap = _r$2; - _ref$1 = tparams[0]; - _i$1 = 0; - /* while (true) { */ case 17: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 18; continue; } - i$1 = _i$1; - tparam$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - _r$3 = posn.Pos(); /* */ $s = 19; case 19: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$4 = check[0].subst(_r$3, tparam$1.bound, renameMap, ptrType$9.nil, check[0].context()); /* */ $s = 20; case 20: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - ((i$1 < 0 || i$1 >= tparams2.$length) ? ($throwRuntimeError("index out of range"), undefined) : tparams2.$array[tparams2.$offset + i$1]).bound = _r$4; - _i$1++; - $s = 17; continue; - case 18: - tparams[0] = tparams2; - _r$5 = posn.Pos(); /* */ $s = 21; case 21: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$6 = check[0].subst(_r$5, params, renameMap, ptrType$9.nil, check[0].context()); /* */ $s = 22; case 22: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - params = $assertType(_r$6, ptrType$15); - /* } */ case 12: - m = args.$length; - if (m >= 2 && true) { - _tmp = sliceType$13.nil; - _tmp$1 = sliceType$13.nil; - named = _tmp; - unnamed = _tmp$1; - _ref$2 = args; - _i$2 = 0; - while (true) { - if (!(_i$2 < _ref$2.$length)) { break; } - i$2 = _i$2; - arg = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); - if (hasName(arg.typ)) { - named = $append(named, i$2); - } else { - unnamed = $append(unnamed, i$2); - } - _i$2++; - } - if (!((named.$length === 0)) && !((unnamed.$length === 0))) { - params2 = $makeSlice(sliceType$10, m); - args2 = $makeSlice(sliceType$29, m); - i$3 = 0; - _ref$3 = named; - _i$3 = 0; - while (true) { - if (!(_i$3 < _ref$3.$length)) { break; } - j = ((_i$3 < 0 || _i$3 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$3]); - ((i$3 < 0 || i$3 >= params2.$length) ? ($throwRuntimeError("index out of range"), undefined) : params2.$array[params2.$offset + i$3] = params.At(j)); - ((i$3 < 0 || i$3 >= args2.$length) ? ($throwRuntimeError("index out of range"), undefined) : args2.$array[args2.$offset + i$3] = ((j < 0 || j >= args.$length) ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + j])); - i$3 = i$3 + (1) >> 0; - _i$3++; - } - _ref$4 = unnamed; - _i$4 = 0; - while (true) { - if (!(_i$4 < _ref$4.$length)) { break; } - j$1 = ((_i$4 < 0 || _i$4 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$4]); - ((i$3 < 0 || i$3 >= params2.$length) ? ($throwRuntimeError("index out of range"), undefined) : params2.$array[params2.$offset + i$3] = params.At(j$1)); - ((i$3 < 0 || i$3 >= args2.$length) ? ($throwRuntimeError("index out of range"), undefined) : args2.$array[args2.$offset + i$3] = ((j$1 < 0 || j$1 >= args.$length) ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + j$1])); - i$3 = i$3 + (1) >> 0; - _i$4++; - } - params = NewTuple(params2); - args = args2; - } - } - if (targs.$length < n) { - targs2 = $makeSlice(sliceType$3, n); - $copySlice(targs2, targs); - targs = targs2; - } - /* */ if (params.Len() > 0) { $s = 23; continue; } - /* */ $s = 24; continue; - /* if (params.Len() > 0) { */ case 23: - _r$7 = makeSubstMap(tparams[0], targs); /* */ $s = 25; case 25: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - smap = _r$7; - _r$8 = check[0].subst(0, params, smap, ptrType$9.nil, check[0].context()); /* */ $s = 26; case 26: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - params = $assertType(_r$8, ptrType$15); - /* } */ case 24: - u[0] = newUnifier(false); - $r = u[0].x.init(tparams[0]); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _ref$5 = targs; - _i$5 = 0; - /* while (true) { */ case 28: - /* if (!(_i$5 < _ref$5.$length)) { break; } */ if(!(_i$5 < _ref$5.$length)) { $s = 29; continue; } - i$4 = _i$5; - targ = ((_i$5 < 0 || _i$5 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$5]); - /* */ if (!($interfaceIsEqual(targ, $ifaceNil))) { $s = 30; continue; } - /* */ $s = 31; continue; - /* if (!($interfaceIsEqual(targ, $ifaceNil))) { */ case 30: - $r = u[0].x.set(i$4, targ); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 31: - _i$5++; - $s = 28; continue; - case 29: - errorf = (function(check, result, tparams, u) { return function Checker·infer·func3(kind, tpar, targ$1, arg$1) { - var {_i$6, _r$10, _r$11, _r$9, _ref$6, _tuple, allFailed, arg$1, index$1, inferred, kind, smap$1, targ$1, targ$2, targs$1, tpar, $s, $r, $c} = $restore(this, {kind, tpar, targ$1, arg$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _tuple = u[0].x.types(); - targs$1 = _tuple[0]; - index$1 = _tuple[1]; - /* */ if (index$1 === 0) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (index$1 === 0) { */ case 1: - allFailed = true; - _ref$6 = targs$1; - _i$6 = 0; - while (true) { - if (!(_i$6 < _ref$6.$length)) { break; } - targ$2 = ((_i$6 < 0 || _i$6 >= _ref$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$6.$array[_ref$6.$offset + _i$6]); - if (!($interfaceIsEqual(targ$2, $ifaceNil))) { - allFailed = false; - break; - } - _i$6++; - } - /* */ if (allFailed) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (allFailed) { */ case 3: - $r = check[0].errorf(arg$1, 138, "%s %s of %s does not match %s (cannot infer %s)", new sliceType$6([new $String(kind), targ$1, arg$1.expr, tpar, new $String(typeParamsString(tparams[0]))])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 4: - /* } */ case 2: - _r$9 = makeSubstMap(tparams[0], targs$1); /* */ $s = 6; case 6: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - smap$1 = _r$9; - _r$10 = arg$1.Pos(); /* */ $s = 7; case 7: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _r$11 = check[0].subst(_r$10, tpar, smap$1, ptrType$9.nil, check[0].context()); /* */ $s = 8; case 8: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - inferred = _r$11; - /* */ if (!($interfaceIsEqual(inferred, tpar))) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (!($interfaceIsEqual(inferred, tpar))) { */ case 9: - $r = check[0].errorf(arg$1, 138, "%s %s of %s does not match inferred type %s for %s", new sliceType$6([new $String(kind), targ$1, arg$1.expr, inferred, tpar])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 11; continue; - /* } else { */ case 10: - $r = check[0].errorf(arg$1, 138, "%s %s of %s does not match %s", new sliceType$6([new $String(kind), targ$1, arg$1.expr, tpar])); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 11: - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·infer·func3, $c: true, $r, _i$6, _r$10, _r$11, _r$9, _ref$6, _tuple, allFailed, arg$1, index$1, inferred, kind, smap$1, targ$1, targ$2, targs$1, tpar, $s};return $f; - }; })(check, result, tparams, u); - indices = sliceType$13.nil; - _ref$6 = args; - _i$6 = 0; - /* while (true) { */ case 33: - /* if (!(_i$6 < _ref$6.$length)) { break; } */ if(!(_i$6 < _ref$6.$length)) { $s = 34; continue; } - i$5 = _i$6; - arg$1 = ((_i$6 < 0 || _i$6 >= _ref$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$6.$array[_ref$6.$offset + _i$6]); - par = params.At(i$5); - _r$9 = isParameterized(tparams[0], par.object.typ); /* */ $s = 37; case 37: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - /* */ if (_r$9) { $s = 35; continue; } - /* */ $s = 36; continue; - /* if (_r$9) { */ case 35: - if (arg$1.mode === 0) { - _i$6++; - /* continue; */ $s = 33; continue; - } - targ$1 = arg$1.typ; - /* */ if (isTyped(targ$1)) { $s = 38; continue; } - /* */ $s = 39; continue; - /* if (isTyped(targ$1)) { */ case 38: - _r$10 = u[0].unify(par.object.typ, targ$1); /* */ $s = 43; case 43: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - /* */ if (!_r$10) { $s = 41; continue; } - /* */ $s = 42; continue; - /* if (!_r$10) { */ case 41: - $r = errorf("type", par.object.typ, targ$1, arg$1); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - result[0] = sliceType$3.nil; - $24r$1 = result[0]; - $s = 45; case 45: return $24r$1; - /* } */ case 42: - $s = 40; continue; - /* } else { */ case 39: - _tuple = $assertType(par.object.typ, ptrType$14, true); - ok = _tuple[1]; - if (ok) { - indices = $append(indices, i$5); - } - /* } */ case 40: - /* } */ case 36: - _i$6++; - $s = 33; continue; - case 34: - index$1 = 0; - _tuple$1 = u[0].x.types(); - targs = _tuple$1[0]; - index$1 = _tuple$1[1]; - /* */ if (index$1 < 0) { $s = 46; continue; } - /* */ $s = 47; continue; - /* if (index$1 < 0) { */ case 46: - result[0] = targs; - $24r$2 = result[0]; - $s = 48; case 48: return $24r$2; - /* } */ case 47: - _r$11 = check[0].inferB(posn, tparams[0], targs); /* */ $s = 49; case 49: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _tuple$2 = _r$11; - targs = _tuple$2[0]; - index$1 = _tuple$2[1]; - /* */ if (targs === sliceType$3.nil || index$1 < 0) { $s = 50; continue; } - /* */ $s = 51; continue; - /* if (targs === sliceType$3.nil || index$1 < 0) { */ case 50: - result[0] = targs; - $24r$3 = result[0]; - $s = 52; case 52: return $24r$3; - /* } */ case 51: - _ref$7 = indices; - _i$7 = 0; - /* while (true) { */ case 53: - /* if (!(_i$7 < _ref$7.$length)) { break; } */ if(!(_i$7 < _ref$7.$length)) { $s = 54; continue; } - i$6 = ((_i$7 < 0 || _i$7 >= _ref$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$7.$array[_ref$7.$offset + _i$7]); - tpar = $assertType(params.At(i$6).object.typ, ptrType$14); - /* */ if ($interfaceIsEqual((x = tpar.index, ((x < 0 || x >= targs.$length) ? ($throwRuntimeError("index out of range"), undefined) : targs.$array[targs.$offset + x])), $ifaceNil)) { $s = 55; continue; } - /* */ $s = 56; continue; - /* if ($interfaceIsEqual((x = tpar.index, ((x < 0 || x >= targs.$length) ? ($throwRuntimeError("index out of range"), undefined) : targs.$array[targs.$offset + x])), $ifaceNil)) { */ case 55: - arg$2 = ((i$6 < 0 || i$6 >= args.$length) ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + i$6]); - targ$2 = Default(arg$2.typ); - if (!(isTyped(targ$2))) { _v = false; $s = 59; continue s; } - _r$12 = u[0].unify(tpar, targ$2); /* */ $s = 60; case 60: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _v = !_r$12; case 59: - /* */ if (_v) { $s = 57; continue; } - /* */ $s = 58; continue; - /* if (_v) { */ case 57: - $r = errorf("default type", tpar, targ$2, arg$2); /* */ $s = 61; case 61: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - result[0] = sliceType$3.nil; - $24r$4 = result[0]; - $s = 62; case 62: return $24r$4; - /* } */ case 58: - /* } */ case 56: - _i$7++; - $s = 53; continue; - case 54: - _tuple$3 = u[0].x.types(); - targs = _tuple$3[0]; - index$1 = _tuple$3[1]; - /* */ if (index$1 < 0) { $s = 63; continue; } - /* */ $s = 64; continue; - /* if (index$1 < 0) { */ case 63: - result[0] = targs; - $24r$5 = result[0]; - $s = 65; case 65: return $24r$5; - /* } */ case 64: - _r$13 = check[0].inferB(posn, tparams[0], targs); /* */ $s = 66; case 66: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - _tuple$4 = _r$13; - targs = _tuple$4[0]; - index$1 = _tuple$4[1]; - /* */ if (targs === sliceType$3.nil || index$1 < 0) { $s = 67; continue; } - /* */ $s = 68; continue; - /* if (targs === sliceType$3.nil || index$1 < 0) { */ case 67: - result[0] = targs; - $24r$6 = result[0]; - $s = 69; case 69: return $24r$6; - /* } */ case 68: - $r = assert(index$1 >= 0 && $interfaceIsEqual(((index$1 < 0 || index$1 >= targs.$length) ? ($throwRuntimeError("index out of range"), undefined) : targs.$array[targs.$offset + index$1]), $ifaceNil)); /* */ $s = 70; case 70: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - tpar$1 = ((index$1 < 0 || index$1 >= tparams[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : tparams[0].$array[tparams[0].$offset + index$1]); - $r = check[0].errorf(posn, 138, "cannot infer %s (%v)", new sliceType$6([new $String(tpar$1.obj.object.name), new token.Pos(tpar$1.obj.object.pos)])); /* */ $s = 71; case 71: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - result[0] = sliceType$3.nil; - $24r$7 = result[0]; - $s = 72; case 72: return $24r$7; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return result[0]; } if($curGoroutine.asleep) { var $f = {$blk: infer, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _v, arg, arg$1, arg$2, args, args2, check, errorf, i, i$1, i$2, i$3, i$4, i$5, i$6, index$1, indices, j, j$1, m, n, named, ok, par, params, params2, posn, renameMap, result, smap, targ, targ$1, targ$2, targs, targs2, tname, tpar, tpar$1, tparam, tparam$1, tparams, tparams2, u, unnamed, x, $s, $deferred};return $f; } } - }; - typeParamsString = function typeParamsString$1(list$2) { - var _1, _i, _ref, buf, i, list$2, n, tname, x; - n = list$2.$length; - _1 = n; - if (_1 === (0)) { - return ""; - } else if (_1 === (1)) { - return (0 >= list$2.$length ? ($throwRuntimeError("index out of range"), undefined) : list$2.$array[list$2.$offset + 0]).obj.object.name; - } else if (_1 === (2)) { - return (0 >= list$2.$length ? ($throwRuntimeError("index out of range"), undefined) : list$2.$array[list$2.$offset + 0]).obj.object.name + " and " + (1 >= list$2.$length ? ($throwRuntimeError("index out of range"), undefined) : list$2.$array[list$2.$offset + 1]).obj.object.name; + $r = sort.Sort((x = new ranges.ptr(rp), new x.constructor.elem(x))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + r = rp.$get(); + if (r.$length < 2) { + $s = -1; return r; } - buf = new strings.Builder.ptr(ptrType$53.nil, sliceType$14.nil); - _ref = $subslice(list$2, 0, (n - 1 >> 0)); - _i = 0; + w = 2; + i = 2; while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - tname = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (i > 0) { - buf.WriteString(", "); + if (!(i < r.$length)) { break; } + _tmp = ((i < 0 || i >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + i]); + _tmp$1 = (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$1])); + lo = _tmp; + hi = _tmp$1; + if (lo <= ((x$2 = w - 1 >> 0, ((x$2 < 0 || x$2 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$2])) + 1 >> 0)) { + if (hi > (x$3 = w - 1 >> 0, ((x$3 < 0 || x$3 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$3]))) { + (x$4 = w - 1 >> 0, ((x$4 < 0 || x$4 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$4] = hi)); + } + i = i + (2) >> 0; + continue; } - buf.WriteString(tname.obj.object.name); - _i++; + ((w < 0 || w >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + w] = lo); + (x$5 = w + 1 >> 0, ((x$5 < 0 || x$5 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$5] = hi)); + w = w + (2) >> 0; + i = i + (2) >> 0; } - buf.WriteString(", and "); - buf.WriteString((x = n - 1 >> 0, ((x < 0 || x >= list$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : list$2.$array[list$2.$offset + x])).obj.object.name); - return buf.String(); - }; - isParameterized = function isParameterized$1(tparams, typ$3) { - var {$24r, _r$1, tparams, typ$3, w, $s, $r, $c} = $restore(this, {tparams, typ$3}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - w = new tpWalker.ptr(new $global.Map(), tparams); - _r$1 = w.isParameterized(typ$3); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: isParameterized$1, $c: true, $r, $24r, _r$1, tparams, typ$3, w, $s};return $f; - }; - $ptrType(tpWalker).prototype.isParameterized = function isParameterized$2(typ$3) { - var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, _entry, _i, _i$1, _key, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tuple, _v, _v$1, fld, i, m, n, ok, res, t, t$1, t$10, t$11, t$12, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, tset, typ$3, w, x, $s, $deferred, $r, $c} = $restore(this, {typ$3}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - res = [res]; - typ$3 = [typ$3]; - w = [w]; - res[0] = false; - w[0] = this; - _tuple = (_entry = $mapIndex(w[0].seen,Type.keyFor(typ$3[0])), _entry !== undefined ? [_entry.v, true] : [false, false]); - x = _tuple[0]; - ok = _tuple[1]; - if (ok) { - res[0] = x; - $s = -1; return res[0]; - } - _key = typ$3[0]; (w[0].seen || $throwRuntimeError("assignment to entry in nil map")).set(Type.keyFor(_key), { k: _key, v: false }); - $deferred.push([(function(res, typ$3, w) { return function tpWalker·isParameterized·func1() { - var _key$1; - _key$1 = typ$3[0]; (w[0].seen || $throwRuntimeError("assignment to entry in nil map")).set(Type.keyFor(_key$1), { k: _key$1, v: res[0] }); - }; })(res, typ$3, w), []]); - _ref = typ$3[0]; - /* */ if (_ref === $ifaceNil || $assertType(_ref, ptrType$4, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$15, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 9; continue; } - /* */ if ($assertType(_ref, ptrType$29, true)[1]) { $s = 10; continue; } - /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 11; continue; } - /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 12; continue; } - /* */ $s = 13; continue; - /* switch (0) { default: if (_ref === $ifaceNil || $assertType(_ref, ptrType$4, true)[1]) { */ case 1: - t = _ref; - /* break; */ $s = 14; continue; - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 2: - t$1 = _ref.$val; - _r$1 = w[0].isParameterized(t$1.elem); /* */ $s = 15; case 15: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - res[0] = _r$1; - $24r = res[0]; - $s = 16; case 16: return $24r; - /* } else if ($assertType(_ref, ptrType$25, true)[1]) { */ case 3: - t$2 = _ref.$val; - _r$2 = w[0].isParameterized(t$2.elem); /* */ $s = 17; case 17: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - res[0] = _r$2; - $24r$1 = res[0]; - $s = 18; case 18: return $24r$1; - /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 4: - t$3 = _ref.$val; - _ref$1 = t$3.fields; - _i = 0; - /* while (true) { */ case 19: - /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 20; continue; } - fld = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); - _r$3 = w[0].isParameterized(fld.object.typ); /* */ $s = 23; case 23: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (_r$3) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if (_r$3) { */ case 21: - res[0] = true; - $s = -1; return res[0]; - /* } */ case 22: - _i++; - $s = 19; continue; - case 20: - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 5: - t$4 = _ref.$val; - _r$4 = w[0].isParameterized(t$4.base); /* */ $s = 24; case 24: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - res[0] = _r$4; - $24r$2 = res[0]; - $s = 25; case 25: return $24r$2; - /* } else if ($assertType(_ref, ptrType$15, true)[1]) { */ case 6: - t$5 = _ref.$val; - n = t$5.Len(); - i = 0; - /* while (true) { */ case 26: - /* if (!(i < n)) { break; } */ if(!(i < n)) { $s = 27; continue; } - _r$5 = w[0].isParameterized(t$5.At(i).object.typ); /* */ $s = 30; case 30: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* */ if (_r$5) { $s = 28; continue; } - /* */ $s = 29; continue; - /* if (_r$5) { */ case 28: - res[0] = true; - $s = -1; return res[0]; - /* } */ case 29: - i = i + (1) >> 0; - $s = 26; continue; - case 27: - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 7: - t$6 = _ref.$val; - _r$6 = w[0].isParameterized(t$6.params); /* */ $s = 32; case 32: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - if (_r$6) { _v = true; $s = 31; continue s; } - _r$7 = w[0].isParameterized(t$6.results); /* */ $s = 33; case 33: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _v = _r$7; case 31: - res[0] = _v; - $24r$3 = res[0]; - $s = 34; case 34: return $24r$3; - /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 8: - t$7 = _ref.$val; - _r$8 = t$7.typeSet(); /* */ $s = 35; case 35: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - tset = _r$8; - _ref$2 = tset.methods; - _i$1 = 0; - /* while (true) { */ case 36: - /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 37; continue; } - m = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); - _r$9 = w[0].isParameterized(m.object.typ); /* */ $s = 40; case 40: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - /* */ if (_r$9) { $s = 38; continue; } - /* */ $s = 39; continue; - /* if (_r$9) { */ case 38: - res[0] = true; - $s = -1; return res[0]; - /* } */ case 39: - _i$1++; - $s = 36; continue; - case 37: - _r$10 = tset.is((function(res, typ$3, w) { return function tpWalker·isParameterized·func2(t$13) { - var {$24r$4, _r$10, _v$1, t$13, $s, $r, $c} = $restore(this, {t$13}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (!(!(t$13 === ptrType$5.nil))) { _v$1 = false; $s = 1; continue s; } - _r$10 = w[0].isParameterized(t$13.typ); /* */ $s = 2; case 2: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _v$1 = _r$10; case 1: - $24r$4 = _v$1; - $s = 3; case 3: return $24r$4; - /* */ } return; } var $f = {$blk: tpWalker·isParameterized·func2, $c: true, $r, $24r$4, _r$10, _v$1, t$13, $s};return $f; - }; })(res, typ$3, w)); /* */ $s = 41; case 41: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - res[0] = _r$10; - $24r$4 = res[0]; - $s = 42; case 42: return $24r$4; - /* } else if ($assertType(_ref, ptrType$28, true)[1]) { */ case 9: - t$8 = _ref.$val; - _r$11 = w[0].isParameterized(t$8.key); /* */ $s = 44; case 44: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - if (_r$11) { _v$1 = true; $s = 43; continue s; } - _r$12 = w[0].isParameterized(t$8.elem); /* */ $s = 45; case 45: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _v$1 = _r$12; case 43: - res[0] = _v$1; - $24r$5 = res[0]; - $s = 46; case 46: return $24r$5; - /* } else if ($assertType(_ref, ptrType$29, true)[1]) { */ case 10: - t$9 = _ref.$val; - _r$13 = w[0].isParameterized(t$9.elem); /* */ $s = 47; case 47: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - res[0] = _r$13; - $24r$6 = res[0]; - $s = 48; case 48: return $24r$6; - /* } else if ($assertType(_ref, ptrType$9, true)[1]) { */ case 11: - t$10 = _ref.$val; - _r$14 = w[0].isParameterizedTypeList(t$10.TypeArgs().list()); /* */ $s = 49; case 49: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - res[0] = _r$14; - $24r$7 = res[0]; - $s = 50; case 50: return $24r$7; - /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 12: - t$11 = _ref.$val; - res[0] = tparamIndex(w[0].tparams, t$11) >= 0; - $s = -1; return res[0]; - /* } else { */ case 13: - t$12 = _ref; - unreachable(); - /* } } */ case 14: - res[0] = false; - $s = -1; return res[0]; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return res[0]; } if($curGoroutine.asleep) { var $f = {$blk: isParameterized$2, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, _entry, _i, _i$1, _key, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tuple, _v, _v$1, fld, i, m, n, ok, res, t, t$1, t$10, t$11, t$12, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, tset, typ$3, w, x, $s, $deferred};return $f; } } + $s = -1; return $subslice(r, 0, w); + /* */ } return; } var $f = {$blk: cleanClass$1, $c: true, $r, _tmp, _tmp$1, hi, i, lo, r, rp, w, x, x$1, x$2, x$3, x$4, x$5, $s};return $f; }; - $ptrType(tpWalker).prototype.isParameterizedTypeList = function isParameterizedTypeList(list$2) { - var {_i, _r$1, _ref, list$2, t, w, $s, $r, $c} = $restore(this, {list$2}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - w = this; - _ref = list$2; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$1 = w.isParameterized(t); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (_r$1) { */ case 3: - $s = -1; return true; - /* } */ case 4: - _i++; - $s = 1; continue; - case 2: - $s = -1; return false; - /* */ } return; } var $f = {$blk: isParameterizedTypeList, $c: true, $r, _i, _r$1, _ref, list$2, t, w, $s};return $f; + appendLiteral = function appendLiteral$1(r, x, flags) { + var flags, r, x; + if (!((((flags & 1) >>> 0) === 0))) { + return appendFoldedRange(r, x, x); + } + return appendRange(r, x, x); }; - $ptrType(Checker).prototype.inferB = function inferB(posn, tparams, targs) { - var {$24r, $24r$1, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _tmp, _tmp$1, _tuple, _tuple$1, _v, check, core, dirty, i, i$1, i$2, i$3, i$4, i$5, index$1, index$2, n, n$1, nn, posn, single, smap, t, t0, t1, targ, targ$1, targs, tilde, tpar, tparams, tx, typ$3, typ$4, typ$5, types$1, u, w, $s, $deferred, $r, $c} = $restore(this, {posn, tparams, targs}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - check = [check]; - tparams = [tparams]; - types$1 = [types$1]; - types$1[0] = sliceType$3.nil; - index$1 = 0; - check[0] = this; - $r = assert(tparams[0].$length >= targs.$length && targs.$length > 0); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (false) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (false) { */ case 2: - $r = check[0].dump("-- inferB %s \xE2\x9E\x9E %s", new sliceType$6([tparams[0], targs])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([(function(check, tparams, types$1) { return function Checker·inferB·func1() { - var {$s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = check[0].dump("=> inferB %s \xE2\x9E\x9E %s", new sliceType$6([tparams[0], types$1[0]])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·inferB·func1, $c: true, $r, $s};return $f; - }; })(check, tparams, types$1), []]); - /* } */ case 3: - u = newUnifier(false); - $r = u.x.init(tparams[0]); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - tparamsList.copy(u.y, u.x); - _ref = targs; - _i = 0; - /* while (true) { */ case 6: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 7; continue; } - i = _i; - targ = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - /* */ if (!($interfaceIsEqual(targ, $ifaceNil))) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (!($interfaceIsEqual(targ, $ifaceNil))) { */ case 8: - $r = u.x.set(i, targ); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 9: - _i++; - $s = 6; continue; - case 7: - n = u.x.unknowns(); - /* while (true) { */ case 11: - /* if (!(n > 0)) { break; } */ if(!(n > 0)) { $s = 12; continue; } - nn = n; - _ref$1 = tparams[0]; - _i$1 = 0; - /* while (true) { */ case 13: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 14; continue; } - i$1 = _i$1; - tpar = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - _r$1 = coreTerm(tpar); /* */ $s = 15; case 15: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - core = _tuple[0]; - single = _tuple[1]; - /* */ if (!(core === ptrType$5.nil)) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (!(core === ptrType$5.nil)) { */ case 16: - tx = u.x.at(i$1); - /* */ if (!($interfaceIsEqual(tx, $ifaceNil))) { $s = 19; continue; } - /* */ if (single && !core.tilde) { $s = 20; continue; } - /* */ $s = 21; continue; - /* if (!($interfaceIsEqual(tx, $ifaceNil))) { */ case 19: - /* */ if (core.tilde && !isTypeParam(tx)) { $s = 23; continue; } - /* */ $s = 24; continue; - /* if (core.tilde && !isTypeParam(tx)) { */ case 23: - _r$2 = under(tx); /* */ $s = 25; case 25: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - tx = _r$2; - /* } */ case 24: - _r$3 = u.unify(tx, core.typ); /* */ $s = 28; case 28: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (!_r$3) { $s = 26; continue; } - /* */ $s = 27; continue; - /* if (!_r$3) { */ case 26: - tilde = ""; - if (core.tilde) { - tilde = "~"; - } - $r = check[0].errorf(posn, 139, "%s does not match %s%s", new sliceType$6([tx, new $String(tilde), core.typ])); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _tmp = sliceType$3.nil; - _tmp$1 = 0; - types$1[0] = _tmp; - index$1 = _tmp$1; - $24r = [types$1[0], index$1]; - $s = 30; case 30: return $24r; - /* } */ case 27: - $s = 22; continue; - /* } else if (single && !core.tilde) { */ case 20: - $r = u.x.set(i$1, core.typ); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 22; continue; - /* } else { */ case 21: - _i$1++; - /* continue; */ $s = 13; continue; - /* } */ case 22: - case 18: - nn = u.x.unknowns(); - if (nn === 0) { - /* break; */ $s = 14; continue; + appendRange = function appendRange$1(r, lo, hi) { + var _tmp, _tmp$1, hi, i, lo, n, r, rhi, rlo, x, x$1, x$2, x$3; + n = r.$length; + i = 2; + while (true) { + if (!(i <= 4)) { break; } + if (n >= i) { + _tmp = (x = n - i >> 0, ((x < 0 || x >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x])); + _tmp$1 = (x$1 = (n - i >> 0) + 1 >> 0, ((x$1 < 0 || x$1 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$1])); + rlo = _tmp; + rhi = _tmp$1; + if (lo <= (rhi + 1 >> 0) && rlo <= (hi + 1 >> 0)) { + if (lo < rlo) { + (x$2 = n - i >> 0, ((x$2 < 0 || x$2 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$2] = lo)); + } + if (hi > rhi) { + (x$3 = (n - i >> 0) + 1 >> 0, ((x$3 < 0 || x$3 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$3] = hi)); } - /* } */ case 17: - _i$1++; - $s = 13; continue; - case 14: - $r = assert(nn <= n); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (nn === n) { - /* break; */ $s = 12; continue; + return r; + } } - n = nn; - $s = 11; continue; - case 12: - _tuple$1 = u.x.types(); - types$1[0] = _tuple$1[0]; - /* */ if (false) { $s = 33; continue; } - /* */ $s = 34; continue; - /* if (false) { */ case 33: - _ref$2 = targs; - _i$2 = 0; - /* while (true) { */ case 35: - /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 36; continue; } - i$2 = _i$2; - targ$1 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); - $r = assert($interfaceIsEqual(targ$1, $ifaceNil) || $interfaceIsEqual(((i$2 < 0 || i$2 >= types$1[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : types$1[0].$array[types$1[0].$offset + i$2]), targ$1)); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$2++; - $s = 35; continue; - case 36: - /* } */ case 34: - w = new cycleFinder.ptr(tparams[0], types$1[0], new $global.Map()); - _ref$3 = tparams[0]; - _i$3 = 0; - /* while (true) { */ case 38: - /* if (!(_i$3 < _ref$3.$length)) { break; } */ if(!(_i$3 < _ref$3.$length)) { $s = 39; continue; } - t = ((_i$3 < 0 || _i$3 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$3]); - $r = w.typ(t); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$3++; - $s = 38; continue; - case 39: - dirty = sliceType$13.nil; - _ref$4 = types$1[0]; - _i$4 = 0; + i = i + (2) >> 0; + } + return $append(r, lo, hi); + }; + appendFoldedRange = function appendFoldedRange$1(r, lo, hi) { + var c, f, hi, lo, r; + if (lo <= 65 && hi >= 125251) { + return appendRange(r, lo, hi); + } + if (hi < 65 || lo > 125251) { + return appendRange(r, lo, hi); + } + if (lo < 65) { + r = appendRange(r, lo, 64); + lo = 65; + } + if (hi > 125251) { + r = appendRange(r, 125252, hi); + hi = 125251; + } + c = lo; while (true) { - if (!(_i$4 < _ref$4.$length)) { break; } - i$3 = _i$4; - typ$3 = ((_i$4 < 0 || _i$4 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$4]); - if (!($interfaceIsEqual(typ$3, $ifaceNil)) && (i$3 >= targs.$length || $interfaceIsEqual(((i$3 < 0 || i$3 >= targs.$length) ? ($throwRuntimeError("index out of range"), undefined) : targs.$array[targs.$offset + i$3]), $ifaceNil))) { - dirty = $append(dirty, i$3); + if (!(c <= hi)) { break; } + r = appendRange(r, c, c); + f = unicode.SimpleFold(c); + while (true) { + if (!(!((f === c)))) { break; } + r = appendRange(r, f, f); + f = unicode.SimpleFold(f); } - _i$4++; + c = c + (1) >> 0; } - /* while (true) { */ case 41: - /* if (!(dirty.$length > 0)) { break; } */ if(!(dirty.$length > 0)) { $s = 42; continue; } - _r$4 = makeSubstMap(tparams[0], types$1[0]); /* */ $s = 43; case 43: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - smap = _r$4; - n$1 = 0; - _ref$5 = dirty; - _i$5 = 0; - /* while (true) { */ case 44: - /* if (!(_i$5 < _ref$5.$length)) { break; } */ if(!(_i$5 < _ref$5.$length)) { $s = 45; continue; } - index$2 = ((_i$5 < 0 || _i$5 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$5]); - t0 = ((index$2 < 0 || index$2 >= types$1[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : types$1[0].$array[types$1[0].$offset + index$2]); - _r$5 = check[0].subst(0, t0, smap, ptrType$9.nil, check[0].context()); /* */ $s = 46; case 46: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - t1 = _r$5; - if (!($interfaceIsEqual(t1, t0))) { - ((index$2 < 0 || index$2 >= types$1[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : types$1[0].$array[types$1[0].$offset + index$2] = t1); - ((n$1 < 0 || n$1 >= dirty.$length) ? ($throwRuntimeError("index out of range"), undefined) : dirty.$array[dirty.$offset + n$1] = index$2); - n$1 = n$1 + (1) >> 0; - } - _i$5++; - $s = 44; continue; - case 45: - dirty = $subslice(dirty, 0, n$1); - $s = 41; continue; - case 42: - _ref$6 = types$1[0]; - _i$6 = 0; - /* while (true) { */ case 47: - /* if (!(_i$6 < _ref$6.$length)) { break; } */ if(!(_i$6 < _ref$6.$length)) { $s = 48; continue; } - i$4 = _i$6; - typ$4 = ((_i$6 < 0 || _i$6 >= _ref$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$6.$array[_ref$6.$offset + _i$6]); - if (!(!($interfaceIsEqual(typ$4, $ifaceNil)))) { _v = false; $s = 51; continue s; } - _r$6 = isParameterized(tparams[0], typ$4); /* */ $s = 52; case 52: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _v = _r$6; case 51: - /* */ if (_v) { $s = 49; continue; } - /* */ $s = 50; continue; - /* if (_v) { */ case 49: - ((i$4 < 0 || i$4 >= types$1[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : types$1[0].$array[types$1[0].$offset + i$4] = $ifaceNil); - /* } */ case 50: - _i$6++; - $s = 47; continue; - case 48: - index$1 = -1; - _ref$7 = types$1[0]; - _i$7 = 0; + return r; + }; + appendClass = function appendClass$1(r, x) { + var i, r, x, x$1; + i = 0; while (true) { - if (!(_i$7 < _ref$7.$length)) { break; } - i$5 = _i$7; - typ$5 = ((_i$7 < 0 || _i$7 >= _ref$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$7.$array[_ref$7.$offset + _i$7]); - if ($interfaceIsEqual(typ$5, $ifaceNil)) { - index$1 = i$5; - break; - } - _i$7++; + if (!(i < x.$length)) { break; } + r = appendRange(r, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]), (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1]))); + i = i + (2) >> 0; } - $24r$1 = [types$1[0], index$1]; - $s = 53; case 53: return $24r$1; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [types$1[0], index$1]; } if($curGoroutine.asleep) { var $f = {$blk: inferB, $c: true, $r, $24r, $24r$1, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _i$7, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, _tmp, _tmp$1, _tuple, _tuple$1, _v, check, core, dirty, i, i$1, i$2, i$3, i$4, i$5, index$1, index$2, n, n$1, nn, posn, single, smap, t, t0, t1, targ, targ$1, targs, tilde, tpar, tparams, tx, typ$3, typ$4, typ$5, types$1, u, w, $s, $deferred};return $f; } } + return r; }; - coreTerm = function coreTerm$1(tpar) { - var {_r$1, _r$2, _r$3, _r$4, _v, n, single, tilde, tpar, typ$3, $s, $r, $c} = $restore(this, {tpar}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - n = [n]; - single = [single]; - tilde = [tilde]; - n[0] = 0; - single[0] = ptrType$5.nil; - tilde[0] = false; - _r$1 = tpar.is((function(n, single, tilde) { return function coreTerm·func1(t) { - var {t, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - /* */ if (t === ptrType$5.nil) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (t === ptrType$5.nil) { */ case 1: - $r = assert(n[0] === 0); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return false; - /* } */ case 2: - n[0] = n[0] + (1) >> 0; - single[0] = t; - if (t.tilde) { - tilde[0] = true; - } - $s = -1; return true; - /* */ } return; } var $f = {$blk: coreTerm·func1, $c: true, $r, t, $s};return $f; - }; })(n, single, tilde)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - /* */ if (n[0] === 1) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (n[0] === 1) { */ case 2: - /* */ if (false) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (false) { */ case 4: - if (!(false)) { _v = false; $s = 6; continue s; } - _r$2 = under(single[0].typ); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = coreType(tpar); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _v = $interfaceIsEqual(_r$2, _r$3); case 6: - $r = assert(_v); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 5: - $s = -1; return [single[0], true]; - /* } */ case 3: - _r$4 = coreType(tpar); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - typ$3 = _r$4; - if (!($interfaceIsEqual(typ$3, $ifaceNil))) { - $s = -1; return [new term.ptr(tilde[0], typ$3), false]; + appendFoldedClass = function appendFoldedClass$1(r, x) { + var i, r, x, x$1; + i = 0; + while (true) { + if (!(i < x.$length)) { break; } + r = appendFoldedRange(r, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]), (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1]))); + i = i + (2) >> 0; } - $s = -1; return [ptrType$5.nil, false]; - /* */ } return; } var $f = {$blk: coreTerm$1, $c: true, $r, _r$1, _r$2, _r$3, _r$4, _v, n, single, tilde, tpar, typ$3, $s};return $f; + return r; }; - $ptrType(cycleFinder).prototype.typ = function typ$3(typ$4) { - var {_arg, _arg$1, _entry, _i, _i$1, _i$2, _i$3, _key, _r$1, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tuple, i, i$1, m, t, t$1, t$10, t$11, t$12, t$13, t$14, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, tpar, tpar$1, typ$4, w, x, x$1, x$2, $s, $deferred, $r, $c} = $restore(this, {typ$4}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - w = this; - if ((_entry = $mapIndex(w.seen,Type.keyFor(typ$4)), _entry !== undefined ? _entry.v : false)) { - _tuple = $assertType(typ$4, ptrType$14, true); - tpar = _tuple[0]; - if (!(tpar === ptrType$14.nil)) { - i = tparamIndex(w.tparams, tpar); - if (i >= 0) { - (x = w.types, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i] = $ifaceNil)); - } + appendNegatedClass = function appendNegatedClass$1(r, x) { + var _tmp, _tmp$1, hi, i, lo, nextLo, r, x, x$1; + nextLo = 0; + i = 0; + while (true) { + if (!(i < x.$length)) { break; } + _tmp = ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]); + _tmp$1 = (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + lo = _tmp; + hi = _tmp$1; + if (nextLo <= (lo - 1 >> 0)) { + r = appendRange(r, nextLo, lo - 1 >> 0); } - $s = -1; return; + nextLo = hi + 1 >> 0; + i = i + (2) >> 0; } - _key = typ$4; (w.seen || $throwRuntimeError("assignment to entry in nil map")).set(Type.keyFor(_key), { k: _key, v: true }); - $deferred.push([function(_arg, _arg$1) { $mapDelete(_arg, Type.keyFor(_arg$1)); }, [w.seen, typ$4]]); - _ref = typ$4; - /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType$12, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 9; continue; } - /* */ if ($assertType(_ref, ptrType$29, true)[1]) { $s = 10; continue; } - /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 11; continue; } - /* */ if ($assertType(_ref, ptrType$14, true)[1]) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if ($assertType(_ref, ptrType$4, true)[1]) { */ case 1: - t = _ref.$val; - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 2: - t$1 = _ref.$val; - $r = w.typ(t$1.elem); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$25, true)[1]) { */ case 3: - t$2 = _ref.$val; - $r = w.typ(t$2.elem); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 4: - t$3 = _ref.$val; - $r = w.varList(t$3.fields); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 5: - t$4 = _ref.$val; - $r = w.typ(t$4.base); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 6: - t$5 = _ref.$val; - /* */ if (!(t$5.params === ptrType$15.nil)) { $s = 19; continue; } - /* */ $s = 20; continue; - /* if (!(t$5.params === ptrType$15.nil)) { */ case 19: - $r = w.varList(t$5.params.vars); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 20: - /* */ if (!(t$5.results === ptrType$15.nil)) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if (!(t$5.results === ptrType$15.nil)) { */ case 22: - $r = w.varList(t$5.results.vars); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 23: - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$12, true)[1]) { */ case 7: - t$6 = _ref.$val; - _ref$1 = t$6.terms; - _i = 0; - /* while (true) { */ case 25: - /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 26; continue; } - t$13 = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); - $r = w.typ(t$13.typ); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 25; continue; - case 26: - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 8: - t$7 = _ref.$val; - _ref$2 = t$7.methods; - _i$1 = 0; - /* while (true) { */ case 28: - /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 29; continue; } - m = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); - $r = w.typ(m.object.typ); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$1++; - $s = 28; continue; - case 29: - _ref$3 = t$7.embeddeds; - _i$2 = 0; - /* while (true) { */ case 31: - /* if (!(_i$2 < _ref$3.$length)) { break; } */ if(!(_i$2 < _ref$3.$length)) { $s = 32; continue; } - t$14 = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]); - $r = w.typ(t$14); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$2++; - $s = 31; continue; - case 32: - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$28, true)[1]) { */ case 9: - t$8 = _ref.$val; - $r = w.typ(t$8.key); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = w.typ(t$8.elem); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$29, true)[1]) { */ case 10: - t$9 = _ref.$val; - $r = w.typ(t$9.elem); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$9, true)[1]) { */ case 11: - t$10 = _ref.$val; - _ref$4 = t$10.TypeArgs().list(); - _i$3 = 0; - /* while (true) { */ case 37: - /* if (!(_i$3 < _ref$4.$length)) { break; } */ if(!(_i$3 < _ref$4.$length)) { $s = 38; continue; } - tpar$1 = ((_i$3 < 0 || _i$3 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$3]); - $r = w.typ(tpar$1); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$3++; - $s = 37; continue; - case 38: - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$14, true)[1]) { */ case 12: - t$11 = _ref.$val; - i$1 = tparamIndex(w.tparams, t$11); - /* */ if (i$1 >= 0 && !($interfaceIsEqual((x$1 = w.types, ((i$1 < 0 || i$1 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$1])), $ifaceNil))) { $s = 40; continue; } - /* */ $s = 41; continue; - /* if (i$1 >= 0 && !($interfaceIsEqual((x$1 = w.types, ((i$1 < 0 || i$1 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$1])), $ifaceNil))) { */ case 40: - $r = w.typ((x$2 = w.types, ((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$1]))); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 41: - $s = 14; continue; - /* } else { */ case 13: - t$12 = _ref; - _r$1 = fmt.Sprintf("unexpected %T", new sliceType$6([typ$4])); /* */ $s = 43; case 43: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $panic(new $String(_r$1)); - /* } */ case 14: - $s = -1; return; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: typ$3, $c: true, $r, _arg, _arg$1, _entry, _i, _i$1, _i$2, _i$3, _key, _r$1, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tuple, i, i$1, m, t, t$1, t$10, t$11, t$12, t$13, t$14, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, tpar, tpar$1, typ$4, w, x, x$1, x$2, $s, $deferred};return $f; } } + if (nextLo <= 1114111) { + r = appendRange(r, nextLo, 1114111); + } + return r; }; - $ptrType(cycleFinder).prototype.varList = function varList$1(list$2) { - var {_i, _ref, list$2, v, w, $s, $r, $c} = $restore(this, {list$2}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - w = this; - _ref = list$2; + appendTable = function appendTable$1(r, x) { + var _i, _i$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, c, c$1, hi, hi$1, lo, lo$1, r, stride, stride$1, x, xr, xr$1; + _ref = x.R16; _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - $r = w.typ(v.object.typ); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 1; continue; - case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: varList$1, $c: true, $r, _i, _ref, list$2, v, w, $s};return $f; - }; - $ptrType(Checker).prototype.indexExpr = function indexExpr(x, e) { - var {_1, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tmp, _tmp$1, _tuple, _tuple$1, check, e, elem, index$1, index$2, index$3, isFuncInst, k, key, key$1, length, mode, sig, typ$10, typ$4, typ$5, typ$6, typ$7, typ$8, typ$9, valid, x, $s, $r, $c} = $restore(this, {x, e}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - elem = [elem]; - k = [k]; - key = [key]; - key$1 = [key$1]; - length = [length]; - mode = [mode]; - x = [x]; - isFuncInst = false; - check = this; - $r = check.exprOrType(x[0], e.IndexListExpr.X, true); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _1 = x[0].mode; - /* */ if (_1 === (0)) { $s = 3; continue; } - /* */ if (_1 === (3)) { $s = 4; continue; } - /* */ if (_1 === (7)) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (_1 === (0)) { */ case 3: - $r = check.use(e.IndexListExpr.Indices); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - isFuncInst = false; - $s = -1; return isFuncInst; - /* } else if (_1 === (3)) { */ case 4: - x[0].mode = 0; - _r$1 = check.varType(e.Orig); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - x[0].typ = _r$1; - if (!($interfaceIsEqual(x[0].typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { - x[0].mode = 3; - } - isFuncInst = false; - $s = -1; return isFuncInst; - /* } else if (_1 === (7)) { */ case 5: - _r$2 = under(x[0].typ); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple = $assertType(_r$2, ptrType$27, true); - sig = _tuple[0]; - if (!(sig === ptrType$27.nil) && sig.TypeParams().Len() > 0) { - isFuncInst = true; - $s = -1; return isFuncInst; - } - /* } */ case 6: - case 2: - $r = check.nonGeneric(x[0]); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x[0].mode === 0) { - isFuncInst = false; - $s = -1; return isFuncInst; - } - valid = false; - length[0] = new $Int64(-1, 4294967295); - _r$3 = under(x[0].typ); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _ref = _r$3; - /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 12; continue; } - /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 13; continue; } - /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 14; continue; } - /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 15; continue; } - /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 16; continue; } - /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 17; continue; } - /* */ $s = 18; continue; - /* switch (0) { default: if ($assertType(_ref, ptrType$4, true)[1]) { */ case 12: - typ$4 = _ref.$val; - _r$4 = isString(typ$4); /* */ $s = 21; case 21: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if (_r$4) { $s = 19; continue; } - /* */ $s = 20; continue; - /* if (_r$4) { */ case 19: - valid = true; - /* */ if (x[0].mode === 4) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if (x[0].mode === 4) { */ case 22: - _r$5 = constant.StringVal(x[0].val); /* */ $s = 24; case 24: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - length[0] = (new $Int64(0, _r$5.length)); - /* } */ case 23: - x[0].mode = 7; - x[0].typ = universeByte; - /* } */ case 20: - $s = 18; continue; - /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 13: - typ$5 = _ref.$val; - valid = true; - length[0] = typ$5.len; - if (!((x[0].mode === 5))) { - x[0].mode = 7; - } - x[0].typ = typ$5.elem; - $s = 18; continue; - /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 14: - typ$6 = _ref.$val; - _r$6 = under(typ$6.base); /* */ $s = 25; case 25: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _tuple$1 = $assertType(_r$6, ptrType$10, true); - typ$10 = _tuple$1[0]; - if (!(typ$10 === ptrType$10.nil)) { - valid = true; - length[0] = typ$10.len; - x[0].mode = 5; - x[0].typ = typ$10.elem; + while (true) { + if (!(_i < _ref.$length)) { break; } + xr = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), unicode.Range16); + _tmp = ((xr.Lo >> 0)); + _tmp$1 = ((xr.Hi >> 0)); + _tmp$2 = ((xr.Stride >> 0)); + lo = _tmp; + hi = _tmp$1; + stride = _tmp$2; + if (stride === 1) { + r = appendRange(r, lo, hi); + _i++; + continue; } - $s = 18; continue; - /* } else if ($assertType(_ref, ptrType$25, true)[1]) { */ case 15: - typ$7 = _ref.$val; - valid = true; - x[0].mode = 5; - x[0].typ = typ$7.elem; - $s = 18; continue; - /* } else if ($assertType(_ref, ptrType$28, true)[1]) { */ case 16: - typ$8 = _ref.$val; - _r$7 = check.singleIndex(e); /* */ $s = 26; case 26: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - index$1 = _r$7; - if ($interfaceIsEqual(index$1, $ifaceNil)) { - x[0].mode = 0; - isFuncInst = false; - $s = -1; return isFuncInst; - } - key[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = check.expr(key[0], index$1); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.assignment(key[0], typ$8.key, "map index"); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x[0].mode = 6; - x[0].typ = typ$8.elem; - x[0].expr = e.Orig; - isFuncInst = false; - $s = -1; return isFuncInst; - /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 17: - typ$9 = _ref.$val; - if (!isTypeParam(x[0].typ)) { - /* break; */ $s = 18; continue; - } - _tmp = $ifaceNil; - _tmp$1 = $ifaceNil; - key$1[0] = _tmp; - elem[0] = _tmp$1; - mode[0] = 5; - _r$8 = typ$9.typeSet(); /* */ $s = 31; case 31: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _r$9 = _r$8.underIs((function(elem, k, key, key$1, length, mode, x) { return function Checker·indexExpr·func1(u) { - var {_r$10, _r$11, _r$12, _r$9, _ref$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple$2, e$1, k$1, l, t, t$1, t$2, t$3, t$4, t$5, u, $s, $r, $c} = $restore(this, {u}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - l = new $Int64(-1, 4294967295); - _tmp$2 = $ifaceNil; - _tmp$3 = $ifaceNil; - k$1 = _tmp$2; - e$1 = _tmp$3; - _ref$1 = u; - /* */ if ($assertType(_ref$1, ptrType$4, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref$1, ptrType$10, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref$1, ptrType$26, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref$1, ptrType$25, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref$1, ptrType$28, true)[1]) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if ($assertType(_ref$1, ptrType$4, true)[1]) { */ case 1: - t = _ref$1.$val; - _r$9 = isString(t); /* */ $s = 9; case 9: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - /* */ if (_r$9) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (_r$9) { */ case 7: - e$1 = universeByte; - mode[0] = 7; - /* } */ case 8: - $s = 6; continue; - /* } else if ($assertType(_ref$1, ptrType$10, true)[1]) { */ case 2: - t$1 = _ref$1.$val; - l = t$1.len; - e$1 = t$1.elem; - if (!((x[0].mode === 5))) { - mode[0] = 7; - } - $s = 6; continue; - /* } else if ($assertType(_ref$1, ptrType$26, true)[1]) { */ case 3: - t$2 = _ref$1.$val; - _r$10 = under(t$2.base); /* */ $s = 10; case 10: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _tuple$2 = $assertType(_r$10, ptrType$10, true); - t$5 = _tuple$2[0]; - if (!(t$5 === ptrType$10.nil)) { - l = t$5.len; - e$1 = t$5.elem; - } - $s = 6; continue; - /* } else if ($assertType(_ref$1, ptrType$25, true)[1]) { */ case 4: - t$3 = _ref$1.$val; - e$1 = t$3.elem; - $s = 6; continue; - /* } else if ($assertType(_ref$1, ptrType$28, true)[1]) { */ case 5: - t$4 = _ref$1.$val; - k$1 = t$4.key; - e$1 = t$4.elem; - /* } */ case 6: - if ($interfaceIsEqual(e$1, $ifaceNil)) { - $s = -1; return false; - } - if ($interfaceIsEqual(elem[0], $ifaceNil)) { - length[0] = l; - _tmp$4 = k$1; - _tmp$5 = e$1; - key$1[0] = _tmp$4; - elem[0] = _tmp$5; - $s = -1; return true; - } - _r$11 = Identical(key$1[0], k$1); /* */ $s = 13; case 13: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - /* */ if (!_r$11) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (!_r$11) { */ case 11: - $s = -1; return false; - /* } */ case 12: - _r$12 = Identical(elem[0], e$1); /* */ $s = 16; case 16: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - /* */ if (!_r$12) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (!_r$12) { */ case 14: - $s = -1; return false; - /* } */ case 15: - if ((l.$high > 0 || (l.$high === 0 && l.$low >= 0)) && (l.$high < length[0].$high || (l.$high === length[0].$high && l.$low < length[0].$low))) { - length[0] = l; - } - $s = -1; return true; - /* */ } return; } var $f = {$blk: Checker·indexExpr·func1, $c: true, $r, _r$10, _r$11, _r$12, _r$9, _ref$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple$2, e$1, k$1, l, t, t$1, t$2, t$3, t$4, t$5, u, $s};return $f; - }; })(elem, k, key, key$1, length, mode, x)); /* */ $s = 32; case 32: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - /* */ if (_r$9) { $s = 29; continue; } - /* */ $s = 30; continue; - /* if (_r$9) { */ case 29: - /* */ if (!($interfaceIsEqual(key$1[0], $ifaceNil))) { $s = 33; continue; } - /* */ $s = 34; continue; - /* if (!($interfaceIsEqual(key$1[0], $ifaceNil))) { */ case 33: - _r$10 = check.singleIndex(e); /* */ $s = 35; case 35: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - index$2 = _r$10; - if ($interfaceIsEqual(index$2, $ifaceNil)) { - x[0].mode = 0; - isFuncInst = false; - $s = -1; return isFuncInst; - } - k[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = check.expr(k[0], index$2); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.assignment(k[0], key$1[0], "map index"); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x[0].mode = 6; - x[0].typ = elem[0]; - x[0].expr = e; - isFuncInst = false; - $s = -1; return isFuncInst; - /* } */ case 34: - valid = true; - x[0].mode = mode[0]; - x[0].typ = elem[0]; - /* } */ case 30: - /* } } */ case 18: - /* */ if (!valid) { $s = 38; continue; } - /* */ $s = 39; continue; - /* if (!valid) { */ case 38: - $r = check.errorf(x[0], 51, "invalid operation: cannot index %s", new sliceType$6([x[0]])); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x[0].mode = 0; - isFuncInst = false; - $s = -1; return isFuncInst; - /* } */ case 39: - _r$11 = check.singleIndex(e); /* */ $s = 41; case 41: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - index$3 = _r$11; - if ($interfaceIsEqual(index$3, $ifaceNil)) { - x[0].mode = 0; - isFuncInst = false; - $s = -1; return isFuncInst; - } - if ($interfaceIsEqual(x[0].typ, $ifaceNil)) { - x[0].typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - } - _r$12 = check.index(index$3, length[0]); /* */ $s = 42; case 42: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _r$12; - isFuncInst = false; - $s = -1; return isFuncInst; - /* */ } return; } var $f = {$blk: indexExpr, $c: true, $r, _1, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tmp, _tmp$1, _tuple, _tuple$1, check, e, elem, index$1, index$2, index$3, isFuncInst, k, key, key$1, length, mode, sig, typ$10, typ$4, typ$5, typ$6, typ$7, typ$8, typ$9, valid, x, $s};return $f; - }; - $ptrType(Checker).prototype.sliceExpr = function sliceExpr(x, e) { - var {_i, _i$1, _i$2, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, _ref$2, _ref$3, _tuple, _tuple$1, at$1, at$2, check, e, expr, i, i$1, ind, j, length, max, u, u$1, u$2, u$3, u$4, u$5, v, valid, x, x$1, x$2, x$3, x$4, x$5, y, $s, $r, $c} = $restore(this, {x, e}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - $r = check.expr(x, e.X); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (x.mode === 0) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (x.mode === 0) { */ case 2: - $r = check.use(new sliceType$11([e.Low, e.High, e.Max])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 3: - valid = false; - length = new $Int64(-1, 4294967295); - _r$1 = coreString(x.typ); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _ref = _r$1; - /* */ if (_ref === $ifaceNil) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 9; continue; } - /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (_ref === $ifaceNil) { */ case 6: - u = _ref; - $r = check.errorf(x, 54, "invalid operation: cannot slice %s: %s has no core type", new sliceType$6([x, x.typ])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - $s = -1; return; - /* } else if ($assertType(_ref, ptrType$4, true)[1]) { */ case 7: - u$1 = _ref.$val; - _r$2 = isString(u$1); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (_r$2) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (_r$2) { */ case 13: - /* */ if (e.Slice3) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (e.Slice3) { */ case 16: - at$1 = e.Max; - if ($interfaceIsEqual(at$1, $ifaceNil)) { - at$1 = e; - } - $r = check.error(at$1, 55, "invalid operation: 3-index slice of string"); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - $s = -1; return; - /* } */ case 17: - valid = true; - /* */ if (x.mode === 4) { $s = 19; continue; } - /* */ $s = 20; continue; - /* if (x.mode === 4) { */ case 19: - _r$3 = constant.StringVal(x.val); /* */ $s = 21; case 21: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - length = (new $Int64(0, _r$3.length)); - /* } */ case 20: - if (isUntyped(x.typ)) { - x.typ = (17 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 17]); - } - /* } */ case 14: - $s = 11; continue; - /* } else if ($assertType(_ref, ptrType$10, true)[1]) { */ case 8: - u$2 = _ref.$val; - valid = true; - length = u$2.len; - /* */ if (!((x.mode === 5))) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if (!((x.mode === 5))) { */ case 22: - $r = check.errorf(x, 54, "invalid operation: cannot slice %s (value not addressable)", new sliceType$6([x])); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - $s = -1; return; - /* } */ case 23: - x.typ = new Slice.ptr(u$2.elem); - $s = 11; continue; - /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 9: - u$3 = _ref.$val; - _r$4 = under(u$3.base); /* */ $s = 25; case 25: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _tuple = $assertType(_r$4, ptrType$10, true); - u$5 = _tuple[0]; - if (!(u$5 === ptrType$10.nil)) { - valid = true; - length = u$5.len; - x.typ = new Slice.ptr(u$5.elem); + c = lo; + while (true) { + if (!(c <= hi)) { break; } + r = appendRange(r, c, c); + c = c + (stride) >> 0; } - $s = 11; continue; - /* } else if ($assertType(_ref, ptrType$25, true)[1]) { */ case 10: - u$4 = _ref.$val; - valid = true; - /* } */ case 11: - /* */ if (!valid) { $s = 26; continue; } - /* */ $s = 27; continue; - /* if (!valid) { */ case 26: - $r = check.errorf(x, 54, "invalid operation: cannot slice %s", new sliceType$6([x])); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - $s = -1; return; - /* } */ case 27: - x.mode = 7; - /* */ if (e.Slice3 && ($interfaceIsEqual(e.High, $ifaceNil) || $interfaceIsEqual(e.Max, $ifaceNil))) { $s = 29; continue; } - /* */ $s = 30; continue; - /* if (e.Slice3 && ($interfaceIsEqual(e.High, $ifaceNil) || $interfaceIsEqual(e.Max, $ifaceNil))) { */ case 29: - _r$5 = inNode(e, e.Rbrack); /* */ $s = 31; case 31: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - $r = check.error((x$1 = _r$5, new x$1.constructor.elem(x$1)), -1, "2nd and 3rd index required in 3-index slice"); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - $s = -1; return; - /* } */ case 30: - ind = arrayType$2.zero(); - _ref$1 = new sliceType$11([e.Low, e.High, e.Max]); - _i = 0; - /* while (true) { */ case 33: - /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 34; continue; } - i = _i; - expr = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); - x$2 = new $Int64(-1, 4294967295); - /* */ if (!($interfaceIsEqual(expr, $ifaceNil))) { $s = 36; continue; } - /* */ if ((i === 0)) { $s = 37; continue; } - /* */ if ((length.$high > 0 || (length.$high === 0 && length.$low >= 0))) { $s = 38; continue; } - /* */ $s = 39; continue; - /* if (!($interfaceIsEqual(expr, $ifaceNil))) { */ case 36: - max = new $Int64(-1, 4294967295); - if ((length.$high > 0 || (length.$high === 0 && length.$low >= 0))) { - max = new $Int64(length.$high + 0, length.$low + 1); - } - _r$6 = check.index(expr, max); /* */ $s = 40; case 40: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _tuple$1 = _r$6; - v = _tuple$1[1]; - if ((v.$high > 0 || (v.$high === 0 && v.$low >= 0))) { - x$2 = v; - } - $s = 39; continue; - /* } else if ((i === 0)) { */ case 37: - x$2 = new $Int64(0, 0); - $s = 39; continue; - /* } else if ((length.$high > 0 || (length.$high === 0 && length.$low >= 0))) { */ case 38: - x$2 = length; - /* } */ case 39: - case 35: - ((i < 0 || i >= ind.length) ? ($throwRuntimeError("index out of range"), undefined) : ind[i] = x$2); _i++; - $s = 33; continue; - case 34: - _ref$2 = $subslice(new sliceType$19(ind), 0, 2); + } + _ref$1 = x.R32; _i$1 = 0; - /* while (true) { */ case 41: - /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 42; continue; } - i$1 = _i$1; - x$3 = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); - /* */ if ((x$3.$high > 0 || (x$3.$high === 0 && x$3.$low > 0))) { $s = 43; continue; } - /* */ $s = 44; continue; - /* if ((x$3.$high > 0 || (x$3.$high === 0 && x$3.$low > 0))) { */ case 43: - _ref$3 = $subslice(new sliceType$19(ind), (i$1 + 1 >> 0)); - _i$2 = 0; - /* while (true) { */ case 45: - /* if (!(_i$2 < _ref$3.$length)) { break; } */ if(!(_i$2 < _ref$3.$length)) { $s = 46; continue; } - j = _i$2; - y = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]); - /* */ if ((y.$high > 0 || (y.$high === 0 && y.$low >= 0)) && (y.$high < x$3.$high || (y.$high === x$3.$high && y.$low < x$3.$low))) { $s = 47; continue; } - /* */ $s = 48; continue; - /* if ((y.$high > 0 || (y.$high === 0 && y.$low >= 0)) && (y.$high < x$3.$high || (y.$high === x$3.$high && y.$low < x$3.$low))) { */ case 47: - at$2 = (x$4 = new sliceType$11([e.Low, e.High, e.Max]), x$5 = (i$1 + 1 >> 0) + j >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])); - $r = check.errorf(at$2, 53, "invalid slice indices: %d < %d", new sliceType$6([y, x$3])); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* break L; */ $s = 42; continue s; - /* } */ case 48: - _i$2++; - $s = 45; continue; - case 46: - /* } */ case 44: + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + xr$1 = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), unicode.Range32); + _tmp$3 = ((xr$1.Lo >> 0)); + _tmp$4 = ((xr$1.Hi >> 0)); + _tmp$5 = ((xr$1.Stride >> 0)); + lo$1 = _tmp$3; + hi$1 = _tmp$4; + stride$1 = _tmp$5; + if (stride$1 === 1) { + r = appendRange(r, lo$1, hi$1); + _i$1++; + continue; + } + c$1 = lo$1; + while (true) { + if (!(c$1 <= hi$1)) { break; } + r = appendRange(r, c$1, c$1); + c$1 = c$1 + (stride$1) >> 0; + } _i$1++; - $s = 41; continue; - case 42: - $s = -1; return; - /* */ } return; } var $f = {$blk: sliceExpr, $c: true, $r, _i, _i$1, _i$2, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, _ref$2, _ref$3, _tuple, _tuple$1, at$1, at$2, check, e, expr, i, i$1, ind, j, length, max, u, u$1, u$2, u$3, u$4, u$5, v, valid, x, x$1, x$2, x$3, x$4, x$5, y, $s};return $f; - }; - $ptrType(Checker).prototype.singleIndex = function singleIndex(expr) { - var {check, expr, x, x$1, $s, $r, $c} = $restore(this, {expr}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - /* */ if (expr.IndexListExpr.Indices.$length === 0) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (expr.IndexListExpr.Indices.$length === 0) { */ case 1: - $r = check.errorf(expr.Orig, -1, "index expression %v with 0 indices", new sliceType$6([expr])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return $ifaceNil; - /* } */ case 2: - /* */ if (expr.IndexListExpr.Indices.$length > 1) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (expr.IndexListExpr.Indices.$length > 1) { */ case 4: - $r = check.error((x = expr.IndexListExpr.Indices, (1 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 1])), 52, "invalid operation: more than one index"); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 5: - $s = -1; return (x$1 = expr.IndexListExpr.Indices, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])); - /* */ } return; } var $f = {$blk: singleIndex, $c: true, $r, check, expr, x, x$1, $s};return $f; - }; - $ptrType(Checker).prototype.index = function index$1(index$2, max) { - var {_arg, _arg$1, _arg$2, _r$1, _r$2, _r$3, _r$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, check, index$2, max, ok, typ$4, v, val, x, $s, $r, $c} = $restore(this, {index$2, max}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = [x]; - typ$4 = $ifaceNil; - val = new $Int64(0, 0); - check = this; - typ$4 = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - val = new $Int64(-1, 4294967295); - x[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = check.expr(x[0], index$2); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$1 = check.isValidIndex(x[0], 52, "index", false); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (!_r$1) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!_r$1) { */ case 2: - $s = -1; return [typ$4, val]; - /* } */ case 3: - if (!((x[0].mode === 4))) { - _tmp = x[0].typ; - _tmp$1 = new $Int64(-1, 4294967295); - typ$4 = _tmp; - val = _tmp$1; - $s = -1; return [typ$4, val]; - } - _r$2 = x[0].val.Kind(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (_r$2 === 0) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (_r$2 === 0) { */ case 5: - $s = -1; return [typ$4, val]; - /* } */ case 6: - _r$3 = constant.Int64Val(x[0].val); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple = _r$3; - v = _tuple[0]; - ok = _tuple[1]; - $r = assert(ok); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if ((max.$high > 0 || (max.$high === 0 && max.$low >= 0)) && (v.$high > max.$high || (v.$high === max.$high && v.$low >= max.$low))) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if ((max.$high > 0 || (max.$high === 0 && max.$low >= 0)) && (v.$high > max.$high || (v.$high === max.$high && v.$low >= max.$low))) { */ case 10: - _arg = x[0]; - _r$4 = x[0].val.String(); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _arg$1 = new $String(_r$4); - _arg$2 = max; - $r = check.errorf(_arg, 52, "invalid argument: index %s out of bounds [0:%d]", new sliceType$6([_arg$1, _arg$2])); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return [typ$4, val]; - /* } */ case 11: - _tmp$2 = x[0].typ; - _tmp$3 = v; - typ$4 = _tmp$2; - val = _tmp$3; - $s = -1; return [typ$4, val]; - /* */ } return; } var $f = {$blk: index$1, $c: true, $r, _arg, _arg$1, _arg$2, _r$1, _r$2, _r$3, _r$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, check, index$2, max, ok, typ$4, v, val, x, $s};return $f; - }; - $ptrType(Checker).prototype.isValidIndex = function isValidIndex(x, code, what, allowNegative) { - var {_r$1, _r$2, _r$3, _v, allowNegative, check, code, what, x, $s, $r, $c} = $restore(this, {x, code, what, allowNegative}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - if (x.mode === 0) { - $s = -1; return false; } - $r = check.convertUntyped(x, (2 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 2])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x.mode === 0) { - $s = -1; return false; - } - _r$1 = allInteger(x.typ); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (!_r$1) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!_r$1) { */ case 2: - $r = check.errorf(x, code, "invalid argument: %s %s must be integer", new sliceType$6([new $String(what), x])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return false; - /* } */ case 3: - /* */ if (x.mode === 4) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (x.mode === 4) { */ case 6: - if (!(!allowNegative)) { _v = false; $s = 10; continue s; } - _r$2 = constant.Sign(x.val); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _v = _r$2 < 0; case 10: - /* */ if (_v) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (_v) { */ case 8: - $r = check.errorf(x, code, "invalid argument: %s %s must not be negative", new sliceType$6([new $String(what), x])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return false; - /* } */ case 9: - _r$3 = representableConst(x.val, check, (2 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 2]), (x.$ptr_val || (x.$ptr_val = new ptrType$50(function() { return this.$target.val; }, function($v) { this.$target.val = $v; }, x)))); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (!_r$3) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (!_r$3) { */ case 13: - $r = check.errorf(x, code, "invalid argument: %s %s overflows int", new sliceType$6([new $String(what), x])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return false; - /* } */ case 14: - /* } */ case 7: - $s = -1; return true; - /* */ } return; } var $f = {$blk: isValidIndex, $c: true, $r, _r$1, _r$2, _r$3, _v, allowNegative, check, code, what, x, $s};return $f; + return r; }; - $ptrType(Checker).prototype.indexedElts = function indexedElts(elts, typ$4, length) { - var {_entry, _i, _key, _r$1, _ref, _tmp, _tmp$1, _tuple, _tuple$1, check, e, elts, eval$1, i, index$2, kv, length, max, typ$4, typ$5, validIndex, visited, x, x$1, x$2, $s, $r, $c} = $restore(this, {elts, typ$4, length}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - visited = (x = elts.$length, ((x < 0 || x > 2147483647) ? $throwRuntimeError("makemap: size out of range") : new $global.Map())); - _tmp = new $Int64(0, 0); - _tmp$1 = new $Int64(0, 0); - index$2 = _tmp; - max = _tmp$1; - _ref = elts; + appendNegatedTable = function appendNegatedTable$1(r, x) { + var _i, _i$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, c, c$1, hi, hi$1, lo, lo$1, nextLo, r, stride, stride$1, x, xr, xr$1; + nextLo = 0; + _ref = x.R16; _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - x$1 = [x$1]; - e = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - validIndex = false; - eval$1 = e; - _tuple = $assertType(e, ptrType$97, true); - kv = _tuple[0]; - /* */ if (!(kv === ptrType$97.nil)) { $s = 3; continue; } - /* */ if ((length.$high > 0 || (length.$high === 0 && length.$low >= 0)) && (index$2.$high > length.$high || (index$2.$high === length.$high && index$2.$low >= length.$low))) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (!(kv === ptrType$97.nil)) { */ case 3: - _r$1 = check.index(kv.Key, length); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$1 = _r$1; - typ$5 = _tuple$1[0]; - i = _tuple$1[1]; - /* */ if (!($interfaceIsEqual(typ$5, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (!($interfaceIsEqual(typ$5, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { */ case 8: - /* */ if ((i.$high > 0 || (i.$high === 0 && i.$low >= 0))) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if ((i.$high > 0 || (i.$high === 0 && i.$low >= 0))) { */ case 10: - index$2 = i; - validIndex = true; - $s = 12; continue; - /* } else { */ case 11: - $r = check.errorf(e, 62, "index %s must be integer constant", new sliceType$6([kv.Key])); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 12: - /* } */ case 9: - eval$1 = kv.Value; - $s = 6; continue; - /* } else if ((length.$high > 0 || (length.$high === 0 && length.$low >= 0)) && (index$2.$high > length.$high || (index$2.$high === length.$high && index$2.$low >= length.$low))) { */ case 4: - $r = check.errorf(e, 63, "index %d is out of bounds (>= %d)", new sliceType$6([index$2, length])); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 6; continue; - /* } else { */ case 5: - validIndex = true; - /* } */ case 6: - /* */ if (validIndex) { $s = 15; continue; } - /* */ $s = 16; continue; - /* if (validIndex) { */ case 15: - /* */ if ((_entry = $mapIndex(visited,$Int64.keyFor(index$2)), _entry !== undefined ? _entry.v : false)) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if ((_entry = $mapIndex(visited,$Int64.keyFor(index$2)), _entry !== undefined ? _entry.v : false)) { */ case 17: - $r = check.errorf(e, 60, "duplicate index %d in array or slice literal", new sliceType$6([index$2])); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 18: - _key = index$2; (visited || $throwRuntimeError("assignment to entry in nil map")).set($Int64.keyFor(_key), { k: _key, v: true }); - /* } */ case 16: - index$2 = (x$2 = new $Int64(0, 1), new $Int64(index$2.$high + x$2.$high, index$2.$low + x$2.$low)); - if ((index$2.$high > max.$high || (index$2.$high === max.$high && index$2.$low > max.$low))) { - max = index$2; - } - x$1[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = check.exprWithHint(x$1[0], eval$1, typ$4); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.assignment(x$1[0], typ$4, "array or slice literal"); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 1; continue; - case 2: - $s = -1; return max; - /* */ } return; } var $f = {$blk: indexedElts, $c: true, $r, _entry, _i, _key, _r$1, _ref, _tmp, _tmp$1, _tuple, _tuple$1, check, e, elts, eval$1, i, index$2, kv, length, max, typ$4, typ$5, validIndex, visited, x, x$1, x$2, $s};return $f; - }; - ExprString = function ExprString$1(x) { - var {buf, x, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - buf = [buf]; - buf[0] = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); - $r = WriteExpr(buf[0], x); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return buf[0].String(); - /* */ } return; } var $f = {$blk: ExprString$1, $c: true, $r, buf, x, $s};return $f; - }; - $pkg.ExprString = ExprString; - WriteExpr = function WriteExpr$1(buf, x) { - var {_1, _r$1, _ref, buf, ix, s, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {buf, x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ref = x; - /* */ if ($assertType(_ref, ptrType$30, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$41, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$57, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$98, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$99, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$39, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType$36, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref, ptrType$37, true)[1] || $assertType(_ref, ptrType$38, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref, ptrType$100, true)[1]) { $s = 9; continue; } - /* */ if ($assertType(_ref, ptrType$82, true)[1]) { $s = 10; continue; } - /* */ if ($assertType(_ref, ptrType$86, true)[1]) { $s = 11; continue; } - /* */ if ($assertType(_ref, ptrType$43, true)[1]) { $s = 12; continue; } - /* */ if ($assertType(_ref, ptrType$20, true)[1]) { $s = 13; continue; } - /* */ if ($assertType(_ref, ptrType$21, true)[1]) { $s = 14; continue; } - /* */ if ($assertType(_ref, ptrType$40, true)[1]) { $s = 15; continue; } - /* */ if ($assertType(_ref, ptrType$42, true)[1]) { $s = 16; continue; } - /* */ if ($assertType(_ref, ptrType$44, true)[1]) { $s = 17; continue; } - /* */ if ($assertType(_ref, ptrType$45, true)[1]) { $s = 18; continue; } - /* */ if ($assertType(_ref, ptrType$46, true)[1]) { $s = 19; continue; } - /* */ if ($assertType(_ref, ptrType$47, true)[1]) { $s = 20; continue; } - /* */ $s = 21; continue; - /* if ($assertType(_ref, ptrType$30, true)[1]) { */ case 1: - x$2 = _ref.$val; - buf.WriteString(x$2.Name); - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$41, true)[1]) { */ case 2: - x$3 = _ref.$val; - buf.WriteString("..."); - /* */ if (!($interfaceIsEqual(x$3.Elt, $ifaceNil))) { $s = 23; continue; } - /* */ $s = 24; continue; - /* if (!($interfaceIsEqual(x$3.Elt, $ifaceNil))) { */ case 23: - $r = WriteExpr(buf, x$3.Elt); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 24: - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$57, true)[1]) { */ case 3: - x$4 = _ref.$val; - buf.WriteString(x$4.Value); - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$98, true)[1]) { */ case 4: - x$5 = _ref.$val; - buf.WriteByte(40); - $r = WriteExpr(buf, x$5.Type); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - buf.WriteString(" literal)"); - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$99, true)[1]) { */ case 5: - x$6 = _ref.$val; - $r = WriteExpr(buf, x$6.Type); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - buf.WriteByte(123); - if (x$6.Elts.$length > 0) { - buf.WriteString("\xE2\x80\xA6"); - } - buf.WriteByte(125); - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$39, true)[1]) { */ case 6: - x$7 = _ref.$val; - buf.WriteByte(40); - $r = WriteExpr(buf, x$7.X); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - buf.WriteByte(41); - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$36, true)[1]) { */ case 7: - x$8 = _ref.$val; - $r = WriteExpr(buf, x$8.X); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - buf.WriteByte(46); - buf.WriteString(x$8.Sel.Name); - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$37, true)[1] || $assertType(_ref, ptrType$38, true)[1]) { */ case 8: - x$9 = _ref; - ix = typeparams.UnpackIndexExpr(x$9); - $r = WriteExpr(buf, ix.IndexListExpr.X); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - buf.WriteByte(91); - $r = writeExprList(buf, ix.IndexListExpr.Indices); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - buf.WriteByte(93); - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$100, true)[1]) { */ case 9: - x$10 = _ref.$val; - $r = WriteExpr(buf, x$10.X); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - buf.WriteByte(91); - /* */ if (!($interfaceIsEqual(x$10.Low, $ifaceNil))) { $s = 33; continue; } - /* */ $s = 34; continue; - /* if (!($interfaceIsEqual(x$10.Low, $ifaceNil))) { */ case 33: - $r = WriteExpr(buf, x$10.Low); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 34: - buf.WriteByte(58); - /* */ if (!($interfaceIsEqual(x$10.High, $ifaceNil))) { $s = 36; continue; } - /* */ $s = 37; continue; - /* if (!($interfaceIsEqual(x$10.High, $ifaceNil))) { */ case 36: - $r = WriteExpr(buf, x$10.High); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 37: - /* */ if (x$10.Slice3) { $s = 39; continue; } - /* */ $s = 40; continue; - /* if (x$10.Slice3) { */ case 39: - buf.WriteByte(58); - /* */ if (!($interfaceIsEqual(x$10.Max, $ifaceNil))) { $s = 41; continue; } - /* */ $s = 42; continue; - /* if (!($interfaceIsEqual(x$10.Max, $ifaceNil))) { */ case 41: - $r = WriteExpr(buf, x$10.Max); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 42: - /* } */ case 40: - buf.WriteByte(93); - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$82, true)[1]) { */ case 10: - x$11 = _ref.$val; - $r = WriteExpr(buf, x$11.X); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - buf.WriteString(".("); - $r = WriteExpr(buf, x$11.Type); /* */ $s = 45; case 45: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - buf.WriteByte(41); - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$86, true)[1]) { */ case 11: - x$12 = _ref.$val; - $r = WriteExpr(buf, x$12.Fun); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - buf.WriteByte(40); - $r = writeExprList(buf, x$12.Args); /* */ $s = 47; case 47: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (new token.Pos(x$12.Ellipsis).IsValid()) { - buf.WriteString("..."); + while (true) { + if (!(_i < _ref.$length)) { break; } + xr = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), unicode.Range16); + _tmp = ((xr.Lo >> 0)); + _tmp$1 = ((xr.Hi >> 0)); + _tmp$2 = ((xr.Stride >> 0)); + lo = _tmp; + hi = _tmp$1; + stride = _tmp$2; + if (stride === 1) { + if (nextLo <= (lo - 1 >> 0)) { + r = appendRange(r, nextLo, lo - 1 >> 0); + } + nextLo = hi + 1 >> 0; + _i++; + continue; } - buf.WriteByte(41); - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$43, true)[1]) { */ case 12: - x$13 = _ref.$val; - buf.WriteByte(42); - $r = WriteExpr(buf, x$13.X); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$20, true)[1]) { */ case 13: - x$14 = _ref.$val; - buf.WriteString(new token.Token(x$14.Op).String()); - $r = WriteExpr(buf, x$14.X); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$21, true)[1]) { */ case 14: - x$15 = _ref.$val; - $r = WriteExpr(buf, x$15.X); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - buf.WriteByte(32); - buf.WriteString(new token.Token(x$15.Op).String()); - buf.WriteByte(32); - $r = WriteExpr(buf, x$15.Y); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$40, true)[1]) { */ case 15: - x$16 = _ref.$val; - buf.WriteByte(91); - /* */ if (!($interfaceIsEqual(x$16.Len, $ifaceNil))) { $s = 52; continue; } - /* */ $s = 53; continue; - /* if (!($interfaceIsEqual(x$16.Len, $ifaceNil))) { */ case 52: - $r = WriteExpr(buf, x$16.Len); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 53: - buf.WriteByte(93); - $r = WriteExpr(buf, x$16.Elt); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$42, true)[1]) { */ case 16: - x$17 = _ref.$val; - buf.WriteString("struct{"); - $r = writeFieldList(buf, x$17.Fields.List, "; ", false); /* */ $s = 56; case 56: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - buf.WriteByte(125); - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$44, true)[1]) { */ case 17: - x$18 = _ref.$val; - buf.WriteString("func"); - $r = writeSigExpr(buf, x$18); /* */ $s = 57; case 57: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$45, true)[1]) { */ case 18: - x$19 = _ref.$val; - buf.WriteString("interface{"); - $r = writeFieldList(buf, x$19.Methods.List, "; ", true); /* */ $s = 58; case 58: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - buf.WriteByte(125); - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$46, true)[1]) { */ case 19: - x$20 = _ref.$val; - buf.WriteString("map["); - $r = WriteExpr(buf, x$20.Key); /* */ $s = 59; case 59: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - buf.WriteByte(93); - $r = WriteExpr(buf, x$20.Value); /* */ $s = 60; case 60: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 22; continue; - /* } else if ($assertType(_ref, ptrType$47, true)[1]) { */ case 20: - x$21 = _ref.$val; - s = ""; - _1 = x$21.Dir; - if (_1 === (1)) { - s = "chan<- "; - } else if (_1 === (2)) { - s = "<-chan "; - } else { - s = "chan "; + c = lo; + while (true) { + if (!(c <= hi)) { break; } + if (nextLo <= (c - 1 >> 0)) { + r = appendRange(r, nextLo, c - 1 >> 0); + } + nextLo = c + 1 >> 0; + c = c + (stride) >> 0; } - buf.WriteString(s); - $r = WriteExpr(buf, x$21.Value); /* */ $s = 61; case 61: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 22; continue; - /* } else { */ case 21: - x$1 = _ref; - _r$1 = fmt.Fprintf(buf, "(ast: %T)", new sliceType$6([x$1])); /* */ $s = 62; case 62: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - /* } */ case 22: - $s = -1; return; - /* */ } return; } var $f = {$blk: WriteExpr$1, $c: true, $r, _1, _r$1, _ref, buf, ix, s, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; - }; - $pkg.WriteExpr = WriteExpr; - writeSigExpr = function writeSigExpr$1(buf, sig) { - var {buf, n, res, sig, x, x$1, $s, $r, $c} = $restore(this, {buf, sig}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - buf.WriteByte(40); - $r = writeFieldList(buf, sig.Params.List, ", ", false); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - buf.WriteByte(41); - res = sig.Results; - n = res.NumFields(); - if (n === 0) { - $s = -1; return; + _i++; } - buf.WriteByte(32); - /* */ if ((n === 1) && ((x = res.List, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).Names.$length === 0)) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if ((n === 1) && ((x = res.List, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).Names.$length === 0)) { */ case 2: - $r = WriteExpr(buf, (x$1 = res.List, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])).Type); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 3: - buf.WriteByte(40); - $r = writeFieldList(buf, res.List, ", ", false); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - buf.WriteByte(41); - $s = -1; return; - /* */ } return; } var $f = {$blk: writeSigExpr$1, $c: true, $r, buf, n, res, sig, x, x$1, $s};return $f; - }; - writeFieldList = function writeFieldList$1(buf, list$2, sep, iface$1) { - var {_i, _ref, _tuple, buf, f, i, iface$1, list$2, sep, sig, $s, $r, $c} = $restore(this, {buf, list$2, sep, iface$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ref = list$2; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (i > 0) { - buf.WriteString(sep); + _ref$1 = x.R32; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + xr$1 = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), unicode.Range32); + _tmp$3 = ((xr$1.Lo >> 0)); + _tmp$4 = ((xr$1.Hi >> 0)); + _tmp$5 = ((xr$1.Stride >> 0)); + lo$1 = _tmp$3; + hi$1 = _tmp$4; + stride$1 = _tmp$5; + if (stride$1 === 1) { + if (nextLo <= (lo$1 - 1 >> 0)) { + r = appendRange(r, nextLo, lo$1 - 1 >> 0); + } + nextLo = hi$1 + 1 >> 0; + _i$1++; + continue; } - writeIdentList(buf, f.Names); - _tuple = $assertType(f.Type, ptrType$44, true); - sig = _tuple[0]; - /* */ if (!(sig === ptrType$44.nil) && iface$1) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!(sig === ptrType$44.nil) && iface$1) { */ case 3: - $r = writeSigExpr(buf, sig); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - /* continue; */ $s = 1; continue; - /* } */ case 4: - if (f.Names.$length > 0) { - buf.WriteByte(32); + c$1 = lo$1; + while (true) { + if (!(c$1 <= hi$1)) { break; } + if (nextLo <= (c$1 - 1 >> 0)) { + r = appendRange(r, nextLo, c$1 - 1 >> 0); + } + nextLo = c$1 + 1 >> 0; + c$1 = c$1 + (stride$1) >> 0; } - $r = WriteExpr(buf, f.Type); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 1; continue; - case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: writeFieldList$1, $c: true, $r, _i, _ref, _tuple, buf, f, i, iface$1, list$2, sep, sig, $s};return $f; + _i$1++; + } + if (nextLo <= 1114111) { + r = appendRange(r, nextLo, 1114111); + } + return r; }; - writeIdentList = function writeIdentList$1(buf, list$2) { - var _i, _ref, buf, i, list$2, x; - _ref = list$2; - _i = 0; + negateClass = function negateClass$1(r) { + var _tmp, _tmp$1, hi, i, lo, nextLo, r, w, x, x$1; + nextLo = 0; + w = 0; + i = 0; while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (i > 0) { - buf.WriteString(", "); + if (!(i < r.$length)) { break; } + _tmp = ((i < 0 || i >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + i]); + _tmp$1 = (x = i + 1 >> 0, ((x < 0 || x >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x])); + lo = _tmp; + hi = _tmp$1; + if (nextLo <= (lo - 1 >> 0)) { + ((w < 0 || w >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + w] = nextLo); + (x$1 = w + 1 >> 0, ((x$1 < 0 || x$1 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$1] = (lo - 1 >> 0))); + w = w + (2) >> 0; } - buf.WriteString(x.Name); - _i++; + nextLo = hi + 1 >> 0; + i = i + (2) >> 0; + } + r = $subslice(r, 0, w); + if (nextLo <= 1114111) { + r = $append(r, nextLo, 1114111); } + return r; }; - writeExprList = function writeExprList$1(buf, list$2) { - var {_i, _ref, buf, i, list$2, x, $s, $r, $c} = $restore(this, {buf, list$2}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ref = list$2; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (i > 0) { - buf.WriteString(", "); - } - $r = WriteExpr(buf, x); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 1; continue; - case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: writeExprList$1, $c: true, $r, _i, _ref, buf, i, list$2, x, $s};return $f; + $ptrType(ranges).prototype.Less = function Less(i, j) { + var i, j, p, ra, x, x$1; + ra = this; + p = ra.p.$get(); + i = $imul(i, (2)); + j = $imul(j, (2)); + return ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]) < ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]) || (((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]) === ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j])) && (x = i + 1 >> 0, ((x < 0 || x >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x])) > (x$1 = j + 1 >> 0, ((x$1 < 0 || x$1 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$1])); }; - init$1 = function init$5() { - unaryOpPredicates = $makeMap(token.Token.keyFor, [{ k: 12, v: allNumeric }, { k: 13, v: allNumeric }, { k: 19, v: allInteger }, { k: 43, v: allBoolean }]); + ranges.prototype.Less = function(...$args) { return this.$val.Less(...$args); }; + $ptrType(ranges).prototype.Len = function Len() { + var _q, ra; + ra = this; + return (_q = ra.p.$get().$length / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); }; - $ptrType(Checker).prototype.op = function op(m, x, op$1) { - var {_entry, _r$1, check, m, op$1, pred, x, $s, $r, $c} = $restore(this, {m, x, op$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - pred = (_entry = $mapIndex(m,token.Token.keyFor(op$1)), _entry !== undefined ? _entry.v : $throwNilPointerError); - /* */ if (!(pred === $throwNilPointerError)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(pred === $throwNilPointerError)) { */ case 1: - _r$1 = pred(x.typ); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (!_r$1) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (!_r$1) { */ case 4: - $r = check.errorf(x, 45, "invalid operation: operator %s not defined on %s", new sliceType$6([new token.Token(op$1), x])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return false; - /* } */ case 5: - $s = 3; continue; - /* } else { */ case 2: - $r = check.errorf(x, -1, "unknown operator %s", new sliceType$6([new token.Token(op$1)])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return false; - /* } */ case 3: - $s = -1; return true; - /* */ } return; } var $f = {$blk: op, $c: true, $r, _entry, _r$1, check, m, op$1, pred, x, $s};return $f; + ranges.prototype.Len = function(...$args) { return this.$val.Len(...$args); }; + $ptrType(ranges).prototype.Swap = function Swap(i, j) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, i, j, p, ra, x, x$1, x$2, x$3; + ra = this; + p = ra.p.$get(); + i = $imul(i, (2)); + j = $imul(j, (2)); + _tmp = ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]); + _tmp$1 = (x = j + 1 >> 0, ((x < 0 || x >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x])); + _tmp$2 = ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]); + _tmp$3 = (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$1])); + ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i] = _tmp); + (x$2 = i + 1 >> 0, ((x$2 < 0 || x$2 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$2] = _tmp$1)); + ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j] = _tmp$2); + (x$3 = j + 1 >> 0, ((x$3 < 0 || x$3 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$3] = _tmp$3)); }; - $ptrType(Checker).prototype.overflow = function overflow(x, opPos) { - var {_arg, _arg$1, _r$1, _r$2, _r$3, _r$4, _v, check, op$1, opPos, x, $s, $r, $c} = $restore(this, {x, opPos}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - $r = assert(x.mode === 4); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$1 = x.val.Kind(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1 === 0) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (_r$1 === 0) { */ case 2: - $r = check.error(new atPos(((opPos >> 0))), 14, "constant result is not representable"); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 3: - /* */ if (isTyped(x.typ)) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (isTyped(x.typ)) { */ case 6: - _arg = x; - _r$2 = under(x.typ); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _arg$1 = $assertType(_r$2, ptrType$4); - $r = check.representable(_arg, _arg$1); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 7: - _r$3 = x.val.Kind(); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - if (!(_r$3 === 3)) { _v = false; $s = 12; continue s; } - _r$4 = constant.BitLen(x.val); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _v = _r$4 > 512; case 12: - /* */ if (_v) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (_v) { */ case 10: - op$1 = opName(x.expr); - if (!(op$1 === "")) { - op$1 = op$1 + (" "); + ranges.prototype.Swap = function(...$args) { return this.$val.Swap(...$args); }; + checkUTF8 = function checkUTF8$1(s) { + var _tuple, rune, s, size; + while (true) { + if (!(!(s === ""))) { break; } + _tuple = utf8.DecodeRuneInString(s); + rune = _tuple[0]; + size = _tuple[1]; + if ((rune === 65533) && (size === 1)) { + return new Error.ptr("invalid UTF-8", s); } - $r = check.errorf(new atPos(((opPos >> 0))), 14, "constant %soverflow", new sliceType$6([new $String(op$1)])); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.val = constant.MakeUnknown(); - /* } */ case 11: - $s = -1; return; - /* */ } return; } var $f = {$blk: overflow, $c: true, $r, _arg, _arg$1, _r$1, _r$2, _r$3, _r$4, _v, check, op$1, opPos, x, $s};return $f; + s = $substring(s, size); + } + return $ifaceNil; }; - opName = function opName$1(e) { - var _ref, e, e$1, e$2, x, x$1; - _ref = e; - if ($assertType(_ref, ptrType$21, true)[1]) { - e$1 = _ref.$val; - if (((e$1.Op >> 0)) < 21) { - return (x = e$1.Op, ((x < 0 || x >= op2str2.length) ? ($throwRuntimeError("index out of range"), undefined) : op2str2[x])); - } - } else if ($assertType(_ref, ptrType$20, true)[1]) { - e$2 = _ref.$val; - if (((e$2.Op >> 0)) < 20) { - return (x$1 = e$2.Op, ((x$1 < 0 || x$1 >= op2str1.length) ? ($throwRuntimeError("index out of range"), undefined) : op2str1[x$1])); - } + nextRune = function nextRune$1(s) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, c, err, s, size, t; + c = 0; + t = ""; + err = $ifaceNil; + _tuple = utf8.DecodeRuneInString(s); + c = _tuple[0]; + size = _tuple[1]; + if ((c === 65533) && (size === 1)) { + _tmp = 0; + _tmp$1 = ""; + _tmp$2 = new Error.ptr("invalid UTF-8", s); + c = _tmp; + t = _tmp$1; + err = _tmp$2; + return [c, t, err]; } - return ""; + _tmp$3 = c; + _tmp$4 = $substring(s, size); + _tmp$5 = $ifaceNil; + c = _tmp$3; + t = _tmp$4; + err = _tmp$5; + return [c, t, err]; }; - underIs = function underIs$3(typ$4, f) { - var {$24r, $24r$1, _r$1, _r$2, _r$3, _tuple, f, tpar, typ$4, $s, $r, $c} = $restore(this, {typ$4, f}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _tuple = $assertType(typ$4, ptrType$14, true); - tpar = _tuple[0]; - /* */ if (!(tpar === ptrType$14.nil)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(tpar === ptrType$14.nil)) { */ case 1: - _r$1 = tpar.underIs(f); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 4; case 4: return $24r; - /* } */ case 2: - _r$2 = under(typ$4); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = f(_r$2); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r$1 = _r$3; - $s = 7; case 7: return $24r$1; - /* */ } return; } var $f = {$blk: underIs$3, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _r$3, _tuple, f, tpar, typ$4, $s};return $f; + isalnum = function isalnum$1(c) { + var c; + return 48 <= c && c <= 57 || 65 <= c && c <= 90 || 97 <= c && c <= 122; }; - $ptrType(Checker).prototype.unary = function unary(x, e) { - var {_1, _arg, _arg$1, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, _tuple$1, ch, check, e, ok, prec, u, x, $s, $r, $c} = $restore(this, {x, e}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - $r = check.expr(x, e.X); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x.mode === 0) { - $s = -1; return; + unhex = function unhex$1(c) { + var c; + if (48 <= c && c <= 57) { + return c - 48 >> 0; } - _1 = e.Op; - /* */ if (_1 === (17)) { $s = 3; continue; } - /* */ if (_1 === (36)) { $s = 4; continue; } - /* */ if (_1 === (88)) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (_1 === (17)) { */ case 3: - _tuple = $assertType(unparen(e.X), ptrType$99, true); - ok = _tuple[1]; - /* */ if (!ok && !((x.mode === 5))) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (!ok && !((x.mode === 5))) { */ case 7: - $r = check.errorf(x, 49, "invalid operation: cannot take address of %s", new sliceType$6([x])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - $s = -1; return; - /* } */ case 8: - x.mode = 7; - x.typ = new Pointer.ptr(x.typ); - $s = -1; return; - /* } else if (_1 === (36)) { */ case 4: - _r$1 = coreType(x.typ); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - u = _r$1; - /* */ if ($interfaceIsEqual(u, $ifaceNil)) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if ($interfaceIsEqual(u, $ifaceNil)) { */ case 11: - $r = check.errorf(x, 58, "invalid operation: cannot receive from %s (no core type)", new sliceType$6([x])); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - $s = -1; return; - /* } */ case 12: - _tuple$1 = $assertType(u, ptrType$29, true); - ch = _tuple$1[0]; - /* */ if (ch === ptrType$29.nil) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (ch === ptrType$29.nil) { */ case 14: - $r = check.errorf(x, 58, "invalid operation: cannot receive from non-channel %s", new sliceType$6([x])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - $s = -1; return; - /* } */ case 15: - /* */ if (ch.dir === 1) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (ch.dir === 1) { */ case 17: - $r = check.errorf(x, 58, "invalid operation: cannot receive from send-only channel %s", new sliceType$6([x])); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - $s = -1; return; - /* } */ case 18: - x.mode = 8; - x.typ = ch.elem; - check.environment.hasCallOrRecv = true; - $s = -1; return; - /* } else if (_1 === (88)) { */ case 5: - $r = check.error(e, 45, "cannot use ~ outside of interface or type constraint"); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - $s = -1; return; - /* } */ case 6: - case 2: - _r$2 = check.op(unaryOpPredicates, x, e.Op); /* */ $s = 23; case 23: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (!_r$2) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if (!_r$2) { */ case 21: - x.mode = 0; - $s = -1; return; - /* } */ case 22: - /* */ if (x.mode === 4) { $s = 24; continue; } - /* */ $s = 25; continue; - /* if (x.mode === 4) { */ case 24: - _r$3 = x.val.Kind(); /* */ $s = 28; case 28: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (_r$3 === 0) { $s = 26; continue; } - /* */ $s = 27; continue; - /* if (_r$3 === 0) { */ case 26: - $s = -1; return; - /* } */ case 27: - prec = 0; - _r$4 = isUnsigned(x.typ); /* */ $s = 31; case 31: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if (_r$4) { $s = 29; continue; } - /* */ $s = 30; continue; - /* if (_r$4) { */ case 29: - _r$5 = check.conf.sizeof(x.typ); /* */ $s = 32; case 32: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - prec = (($mul64(_r$5, new $Int64(0, 8)).$low >>> 0)); - /* } */ case 30: - _r$6 = constant.UnaryOp(e.Op, x.val, prec); /* */ $s = 33; case 33: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - x.val = _r$6; - x.expr = e; - _arg = x; - _r$7 = x.Pos(); /* */ $s = 34; case 34: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _arg$1 = _r$7; - $r = check.overflow(_arg, _arg$1); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 25: - x.mode = 7; - $s = -1; return; - /* */ } return; } var $f = {$blk: unary, $c: true, $r, _1, _arg, _arg$1, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, _tuple$1, ch, check, e, ok, prec, u, x, $s};return $f; - }; - isShift = function isShift$1(op$1) { - var op$1; - return (op$1 === 20) || (op$1 === 21); + if (97 <= c && c <= 102) { + return (c - 97 >> 0) + 10 >> 0; + } + if (65 <= c && c <= 70) { + return (c - 65 >> 0) + 10 >> 0; + } + return -1; }; - isComparison = function isComparison$1(op$1) { - var _1, op$1; - _1 = op$1; - if ((_1 === (39)) || (_1 === (44)) || (_1 === (40)) || (_1 === (45)) || (_1 === (41)) || (_1 === (46))) { - return true; + Op.prototype.String = function String$5() { + var i, x; + i = this.$val; + if (1 <= i && i <= 19) { + i = i - (1) << 24 >>> 24; + return $substring("NoMatchEmptyMatchLiteralCharClassAnyCharNotNLAnyCharBeginLineEndLineBeginTextEndTextWordBoundaryNoWordBoundaryCaptureStarPlusQuestRepeatConcatAlternate", ((i < 0 || i >= _Op_index_0.length) ? ($throwRuntimeError("index out of range"), undefined) : _Op_index_0[i]), (x = i + 1 << 24 >>> 24, ((x < 0 || x >= _Op_index_0.length) ? ($throwRuntimeError("index out of range"), undefined) : _Op_index_0[x]))); + } else if ((i === 128)) { + return "opPseudo"; + } else { + return "Op(" + strconv.FormatInt((new $Int64(0, i)), 10) + ")"; } - return false; }; - fitsFloat32 = function fitsFloat32$1(x) { - var {_r$1, _tuple, f, f32, x, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = constant.Float32Val(x); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - f32 = _tuple[0]; - f = (f32); - $s = -1; return !math.IsInf(f, 0); - /* */ } return; } var $f = {$blk: fitsFloat32$1, $c: true, $r, _r$1, _tuple, f, f32, x, $s};return $f; + $ptrType(Op).prototype.String = function(...$args) { return new Op(this.$get()).String(...$args); }; + makePatchList = function makePatchList$1(n) { + var n; + return new patchList.ptr(n, n); }; - roundFloat32 = function roundFloat32$1(x) { - var {$24r, _r$1, _r$2, _tuple, f, f32, x, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = constant.Float32Val(x); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - f32 = _tuple[0]; - f = (f32); - /* */ if (!math.IsInf(f, 0)) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!math.IsInf(f, 0)) { */ case 2: - _r$2 = constant.MakeFloat64(f); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 5; case 5: return $24r; - /* } */ case 3: - $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: roundFloat32$1, $c: true, $r, $24r, _r$1, _r$2, _tuple, f, f32, x, $s};return $f; + $ptrType(patchList).prototype.patch = function patch(p, val) { + var head, i, l, p, val, x, x$1; + l = this; + head = l.head; + while (true) { + if (!(!((head === 0)))) { break; } + i = (x = p.Inst, x$1 = head >>> 1 >>> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + x$1, ptrType$2))); + if (((head & 1) >>> 0) === 0) { + head = i.Out; + i.Out = val; + } else { + head = i.Arg; + i.Arg = val; + } + } }; - fitsFloat64 = function fitsFloat64$1(x) { - var {_r$1, _tuple, f, x, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = constant.Float64Val(x); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - f = _tuple[0]; - $s = -1; return !math.IsInf(f, 0); - /* */ } return; } var $f = {$blk: fitsFloat64$1, $c: true, $r, _r$1, _tuple, f, x, $s};return $f; + patchList.prototype.patch = function(...$args) { return this.$val.patch(...$args); }; + $ptrType(patchList).prototype.append = function append(p, l2) { + var i, l1, l2, p, x, x$1; + l1 = this; + if (l1.head === 0) { + return l2; + } + if (l2.head === 0) { + return l1; + } + i = (x = p.Inst, x$1 = l1.tail >>> 1 >>> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + x$1, ptrType$2))); + if (((l1.tail & 1) >>> 0) === 0) { + i.Out = l2.head; + } else { + i.Arg = l2.head; + } + return new patchList.ptr(l1.head, l2.tail); }; - roundFloat64 = function roundFloat64$1(x) { - var {$24r, _r$1, _r$2, _tuple, f, x, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = constant.Float64Val(x); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - f = _tuple[0]; - /* */ if (!math.IsInf(f, 0)) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!math.IsInf(f, 0)) { */ case 2: - _r$2 = constant.MakeFloat64(f); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 5; case 5: return $24r; - /* } */ case 3: - $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: roundFloat64$1, $c: true, $r, $24r, _r$1, _r$2, _tuple, f, x, $s};return $f; + patchList.prototype.append = function(...$args) { return this.$val.append(...$args); }; + Compile = function Compile$1(re) { + var c, f, re; + c = new compiler.ptr(ptrType$6.nil); + c.init(); + f = $clone(c.compile(re), frag); + $clone(f.out, patchList).patch(c.p, c.inst(4).i); + c.p.Start = ((f.i >> 0)); + return [c.p, $ifaceNil]; }; - representableConst = function representableConst$1(x, check, typ$4, rounded) { - var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, _1, _2, _3, _4, _arg, _arg$1, _arg$2, _arg$3, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _v, _v$1, check, conf, im, im$1, n, ok, r, r$1, re, re$1, rounded, s, s$1, s$2, typ$4, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {x, check, typ$4, rounded}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = x.Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1 === 0) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (_r$1 === 0) { */ case 1: - $s = -1; return true; - /* } */ case 2: - conf = ptrType$101.nil; - if (!(check === ptrType$6.nil)) { - conf = check.conf; - } - _r$2 = isInteger(typ$4); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (_r$2) { $s = 5; continue; } - _r$3 = isFloat(typ$4); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (_r$3) { $s = 6; continue; } - _r$4 = isComplex(typ$4); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if (_r$4) { $s = 7; continue; } - _r$5 = isString(typ$4); /* */ $s = 14; case 14: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* */ if (_r$5) { $s = 8; continue; } - _r$6 = isBoolean(typ$4); /* */ $s = 15; case 15: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - /* */ if (_r$6) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (_r$2) { */ case 5: - _r$7 = constant.ToInt(x); /* */ $s = 16; case 16: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - x$1 = _r$7; - _r$8 = x$1.Kind(); /* */ $s = 19; case 19: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - /* */ if (!((_r$8 === 3))) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (!((_r$8 === 3))) { */ case 17: - $s = -1; return false; - /* } */ case 18: - if (!(rounded === ptrType$50.nil)) { - rounded.$set(x$1); + $pkg.Compile = Compile; + $ptrType(compiler).prototype.init = function init() { + var c; + c = this; + c.p = new Prog.ptr(sliceType$6.nil, 0, 0); + c.p.NumCap = 2; + c.inst(5); + }; + $ptrType(compiler).prototype.compile = function compile(re) { + var _1, _i, _i$1, _i$2, _ref, _ref$1, _ref$2, bra, c, f, f$1, f$2, f1, i, j, ket, re, sub, sub$1, sub$2, x, x$1, x$2, x$3; + c = this; + _1 = re.Op; + if (_1 === (1)) { + return c.fail(); + } else if (_1 === (2)) { + return c.nop(); + } else if (_1 === (3)) { + if (re.Rune.$length === 0) { + return c.nop(); + } + f = new frag.ptr(0, new patchList.ptr(0, 0), false); + _ref = re.Rune; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + j = _i; + f1 = $clone(c.rune($subslice(re.Rune, j, (j + 1 >> 0)), re.Flags), frag); + if (j === 0) { + frag.copy(f, f1); + } else { + frag.copy(f, c.cat($clone(f, frag), $clone(f1, frag))); } - _r$9 = constant.Int64Val(x$1); /* */ $s = 20; case 20: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _tuple = _r$9; - x$2 = _tuple[0]; - ok = _tuple[1]; - /* */ if (ok) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if (ok) { */ case 21: - _1 = typ$4.kind; - /* */ if (_1 === (2)) { $s = 24; continue; } - /* */ if (_1 === (3)) { $s = 25; continue; } - /* */ if (_1 === (4)) { $s = 26; continue; } - /* */ if (_1 === (5)) { $s = 27; continue; } - /* */ if ((_1 === (6)) || (_1 === (20))) { $s = 28; continue; } - /* */ if ((_1 === (7)) || (_1 === (12))) { $s = 29; continue; } - /* */ if (_1 === (8)) { $s = 30; continue; } - /* */ if (_1 === (9)) { $s = 31; continue; } - /* */ if (_1 === (10)) { $s = 32; continue; } - /* */ if (_1 === (11)) { $s = 33; continue; } - /* */ $s = 34; continue; - /* if (_1 === (2)) { */ case 24: - _r$10 = conf.sizeof(typ$4); /* */ $s = 36; case 36: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - s = $imul(((_r$10.$low >>> 0)), 8) >>> 0; - $s = -1; return (x$3 = $shiftLeft64(new $Int64(-1, 4294967295), ((s - 1 >>> 0))), (x$3.$high < x$2.$high || (x$3.$high === x$2.$high && x$3.$low <= x$2.$low))) && (x$4 = (x$5 = $shiftLeft64(new $Int64(0, 1), ((s - 1 >>> 0))), new $Int64(x$5.$high - 0, x$5.$low - 1)), (x$2.$high < x$4.$high || (x$2.$high === x$4.$high && x$2.$low <= x$4.$low))); - /* } else if (_1 === (3)) { */ case 25: - $s = -1; return (-1 < x$2.$high || (-1 === x$2.$high && 4294967168 <= x$2.$low)) && (x$2.$high < 0 || (x$2.$high === 0 && x$2.$low <= 127)); - /* } else if (_1 === (4)) { */ case 26: - $s = -1; return (-1 < x$2.$high || (-1 === x$2.$high && 4294934528 <= x$2.$low)) && (x$2.$high < 0 || (x$2.$high === 0 && x$2.$low <= 32767)); - /* } else if (_1 === (5)) { */ case 27: - $s = -1; return (-1 < x$2.$high || (-1 === x$2.$high && 2147483648 <= x$2.$low)) && (x$2.$high < 0 || (x$2.$high === 0 && x$2.$low <= 2147483647)); - /* } else if ((_1 === (6)) || (_1 === (20))) { */ case 28: - $s = -1; return true; - /* } else if ((_1 === (7)) || (_1 === (12))) { */ case 29: - _r$11 = conf.sizeof(typ$4); /* */ $s = 37; case 37: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - s$1 = $imul(((_r$11.$low >>> 0)), 8) >>> 0; - if (s$1 < 64) { - $s = -1; return (0 < x$2.$high || (0 === x$2.$high && 0 <= x$2.$low)) && (x$6 = (x$7 = $shiftLeft64(new $Int64(0, 1), s$1), new $Int64(x$7.$high - 0, x$7.$low - 1)), (x$2.$high < x$6.$high || (x$2.$high === x$6.$high && x$2.$low <= x$6.$low))); - } - $s = -1; return (0 < x$2.$high || (0 === x$2.$high && 0 <= x$2.$low)); - /* } else if (_1 === (8)) { */ case 30: - $s = -1; return (0 < x$2.$high || (0 === x$2.$high && 0 <= x$2.$low)) && (x$2.$high < 0 || (x$2.$high === 0 && x$2.$low <= 255)); - /* } else if (_1 === (9)) { */ case 31: - $s = -1; return (0 < x$2.$high || (0 === x$2.$high && 0 <= x$2.$low)) && (x$2.$high < 0 || (x$2.$high === 0 && x$2.$low <= 65535)); - /* } else if (_1 === (10)) { */ case 32: - $s = -1; return (0 < x$2.$high || (0 === x$2.$high && 0 <= x$2.$low)) && (x$2.$high < 0 || (x$2.$high === 0 && x$2.$low <= 4294967295)); - /* } else if (_1 === (11)) { */ case 33: - $s = -1; return (0 < x$2.$high || (0 === x$2.$high && 0 <= x$2.$low)); - /* } else { */ case 34: - unreachable(); - /* } */ case 35: - case 23: - /* } */ case 22: - _r$12 = constant.BitLen(x$1); /* */ $s = 39; case 39: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - n = _r$12; - _2 = typ$4.kind; - /* */ if ((_2 === (7)) || (_2 === (12))) { $s = 40; continue; } - /* */ if (_2 === (11)) { $s = 41; continue; } - /* */ if (_2 === (20)) { $s = 42; continue; } - /* */ $s = 43; continue; - /* if ((_2 === (7)) || (_2 === (12))) { */ case 40: - _r$13 = conf.sizeof(typ$4); /* */ $s = 44; case 44: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - s$2 = $imul(((_r$13.$low >>> 0)), 8) >>> 0; - _r$14 = constant.Sign(x$1); /* */ $s = 45; case 45: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - $24r = _r$14 >= 0 && n <= ((s$2 >> 0)); - $s = 46; case 46: return $24r; - /* } else if (_2 === (11)) { */ case 41: - _r$15 = constant.Sign(x$1); /* */ $s = 47; case 47: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - $24r$1 = _r$15 >= 0 && n <= 64; - $s = 48; case 48: return $24r$1; - /* } else if (_2 === (20)) { */ case 42: - $s = -1; return true; - /* } */ case 43: - case 38: - $s = 10; continue; - /* } else if (_r$3) { */ case 6: - _r$16 = constant.ToFloat(x); /* */ $s = 49; case 49: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - x$8 = _r$16; - _r$17 = x$8.Kind(); /* */ $s = 52; case 52: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - /* */ if (!((_r$17 === 4))) { $s = 50; continue; } - /* */ $s = 51; continue; - /* if (!((_r$17 === 4))) { */ case 50: - $s = -1; return false; - /* } */ case 51: - _3 = typ$4.kind; - /* */ if (_3 === (13)) { $s = 54; continue; } - /* */ if (_3 === (14)) { $s = 55; continue; } - /* */ if (_3 === (22)) { $s = 56; continue; } - /* */ $s = 57; continue; - /* if (_3 === (13)) { */ case 54: - /* */ if (rounded === ptrType$50.nil) { $s = 59; continue; } - /* */ $s = 60; continue; - /* if (rounded === ptrType$50.nil) { */ case 59: - _r$18 = fitsFloat32(x$8); /* */ $s = 61; case 61: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - $24r$2 = _r$18; - $s = 62; case 62: return $24r$2; - /* } */ case 60: - _r$19 = roundFloat32(x$8); /* */ $s = 63; case 63: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - r = _r$19; - if (!($interfaceIsEqual(r, $ifaceNil))) { - rounded.$set(r); - $s = -1; return true; - } - $s = 58; continue; - /* } else if (_3 === (14)) { */ case 55: - /* */ if (rounded === ptrType$50.nil) { $s = 64; continue; } - /* */ $s = 65; continue; - /* if (rounded === ptrType$50.nil) { */ case 64: - _r$20 = fitsFloat64(x$8); /* */ $s = 66; case 66: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - $24r$3 = _r$20; - $s = 67; case 67: return $24r$3; - /* } */ case 65: - _r$21 = roundFloat64(x$8); /* */ $s = 68; case 68: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } - r$1 = _r$21; - if (!($interfaceIsEqual(r$1, $ifaceNil))) { - rounded.$set(r$1); - $s = -1; return true; - } - $s = 58; continue; - /* } else if (_3 === (22)) { */ case 56: - $s = -1; return true; - /* } else { */ case 57: - unreachable(); - /* } */ case 58: - case 53: - $s = 10; continue; - /* } else if (_r$4) { */ case 7: - x$9 = constant.ToComplex(x); - _r$22 = x$9.Kind(); /* */ $s = 71; case 71: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - /* */ if (!((_r$22 === 5))) { $s = 69; continue; } - /* */ $s = 70; continue; - /* if (!((_r$22 === 5))) { */ case 69: - $s = -1; return false; - /* } */ case 70: - _4 = typ$4.kind; - /* */ if (_4 === (15)) { $s = 73; continue; } - /* */ if (_4 === (16)) { $s = 74; continue; } - /* */ if (_4 === (23)) { $s = 75; continue; } - /* */ $s = 76; continue; - /* if (_4 === (15)) { */ case 73: - /* */ if (rounded === ptrType$50.nil) { $s = 78; continue; } - /* */ $s = 79; continue; - /* if (rounded === ptrType$50.nil) { */ case 78: - _r$23 = constant.Real(x$9); /* */ $s = 81; case 81: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _r$24 = fitsFloat32(_r$23); /* */ $s = 82; case 82: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - if (!(_r$24)) { _v = false; $s = 80; continue s; } - _r$25 = constant.Imag(x$9); /* */ $s = 83; case 83: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - _r$26 = fitsFloat32(_r$25); /* */ $s = 84; case 84: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - _v = _r$26; case 80: - $24r$4 = _v; - $s = 85; case 85: return $24r$4; - /* } */ case 79: - _r$27 = constant.Real(x$9); /* */ $s = 86; case 86: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - _r$28 = roundFloat32(_r$27); /* */ $s = 87; case 87: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - re = _r$28; - _r$29 = constant.Imag(x$9); /* */ $s = 88; case 88: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } - _r$30 = roundFloat32(_r$29); /* */ $s = 89; case 89: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } - im = _r$30; - /* */ if (!($interfaceIsEqual(re, $ifaceNil)) && !($interfaceIsEqual(im, $ifaceNil))) { $s = 90; continue; } - /* */ $s = 91; continue; - /* if (!($interfaceIsEqual(re, $ifaceNil)) && !($interfaceIsEqual(im, $ifaceNil))) { */ case 90: - _arg = re; - _r$31 = constant.MakeImag(im); /* */ $s = 92; case 92: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } - _arg$1 = _r$31; - _r$32 = constant.BinaryOp(_arg, 12, _arg$1); /* */ $s = 93; case 93: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } - rounded.$set(_r$32); - $s = -1; return true; - /* } */ case 91: - $s = 77; continue; - /* } else if (_4 === (16)) { */ case 74: - /* */ if (rounded === ptrType$50.nil) { $s = 94; continue; } - /* */ $s = 95; continue; - /* if (rounded === ptrType$50.nil) { */ case 94: - _r$33 = constant.Real(x$9); /* */ $s = 97; case 97: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } - _r$34 = fitsFloat64(_r$33); /* */ $s = 98; case 98: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } - if (!(_r$34)) { _v$1 = false; $s = 96; continue s; } - _r$35 = constant.Imag(x$9); /* */ $s = 99; case 99: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } - _r$36 = fitsFloat64(_r$35); /* */ $s = 100; case 100: if($c) { $c = false; _r$36 = _r$36.$blk(); } if (_r$36 && _r$36.$blk !== undefined) { break s; } - _v$1 = _r$36; case 96: - $24r$5 = _v$1; - $s = 101; case 101: return $24r$5; - /* } */ case 95: - _r$37 = constant.Real(x$9); /* */ $s = 102; case 102: if($c) { $c = false; _r$37 = _r$37.$blk(); } if (_r$37 && _r$37.$blk !== undefined) { break s; } - _r$38 = roundFloat64(_r$37); /* */ $s = 103; case 103: if($c) { $c = false; _r$38 = _r$38.$blk(); } if (_r$38 && _r$38.$blk !== undefined) { break s; } - re$1 = _r$38; - _r$39 = constant.Imag(x$9); /* */ $s = 104; case 104: if($c) { $c = false; _r$39 = _r$39.$blk(); } if (_r$39 && _r$39.$blk !== undefined) { break s; } - _r$40 = roundFloat64(_r$39); /* */ $s = 105; case 105: if($c) { $c = false; _r$40 = _r$40.$blk(); } if (_r$40 && _r$40.$blk !== undefined) { break s; } - im$1 = _r$40; - /* */ if (!($interfaceIsEqual(re$1, $ifaceNil)) && !($interfaceIsEqual(im$1, $ifaceNil))) { $s = 106; continue; } - /* */ $s = 107; continue; - /* if (!($interfaceIsEqual(re$1, $ifaceNil)) && !($interfaceIsEqual(im$1, $ifaceNil))) { */ case 106: - _arg$2 = re$1; - _r$41 = constant.MakeImag(im$1); /* */ $s = 108; case 108: if($c) { $c = false; _r$41 = _r$41.$blk(); } if (_r$41 && _r$41.$blk !== undefined) { break s; } - _arg$3 = _r$41; - _r$42 = constant.BinaryOp(_arg$2, 12, _arg$3); /* */ $s = 109; case 109: if($c) { $c = false; _r$42 = _r$42.$blk(); } if (_r$42 && _r$42.$blk !== undefined) { break s; } - rounded.$set(_r$42); - $s = -1; return true; - /* } */ case 107: - $s = 77; continue; - /* } else if (_4 === (23)) { */ case 75: - $s = -1; return true; - /* } else { */ case 76: - unreachable(); - /* } */ case 77: - case 72: - $s = 10; continue; - /* } else if (_r$5) { */ case 8: - _r$43 = x.Kind(); /* */ $s = 110; case 110: if($c) { $c = false; _r$43 = _r$43.$blk(); } if (_r$43 && _r$43.$blk !== undefined) { break s; } - $24r$6 = _r$43 === 2; - $s = 111; case 111: return $24r$6; - /* } else if (_r$6) { */ case 9: - _r$44 = x.Kind(); /* */ $s = 112; case 112: if($c) { $c = false; _r$44 = _r$44.$blk(); } if (_r$44 && _r$44.$blk !== undefined) { break s; } - $24r$7 = _r$44 === 1; - $s = 113; case 113: return $24r$7; - /* } */ case 10: - case 4: - $s = -1; return false; - /* */ } return; } var $f = {$blk: representableConst$1, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, $24r$7, _1, _2, _3, _4, _arg, _arg$1, _arg$2, _arg$3, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _v, _v$1, check, conf, im, im$1, n, ok, r, r$1, re, re$1, rounded, s, s$1, s$2, typ$4, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; + _i++; + } + return f; + } else if (_1 === (4)) { + return c.rune(re.Rune, re.Flags); + } else if (_1 === (5)) { + return c.rune(anyRuneNotNL, 0); + } else if (_1 === (6)) { + return c.rune(anyRune, 0); + } else if (_1 === (7)) { + return c.empty(1); + } else if (_1 === (8)) { + return c.empty(2); + } else if (_1 === (9)) { + return c.empty(4); + } else if (_1 === (10)) { + return c.empty(8); + } else if (_1 === (11)) { + return c.empty(16); + } else if (_1 === (12)) { + return c.empty(32); + } else if (_1 === (13)) { + bra = $clone(c.cap((((re.Cap << 1 >> 0) >>> 0))), frag); + sub = $clone(c.compile((x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))), frag); + ket = $clone(c.cap(((((re.Cap << 1 >> 0) | 1) >>> 0))), frag); + return c.cat($clone(c.cat($clone(bra, frag), $clone(sub, frag)), frag), $clone(ket, frag)); + } else if (_1 === (14)) { + return c.star($clone(c.compile((x$1 = re.Sub, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0]))), frag), !((((re.Flags & 32) >>> 0) === 0))); + } else if (_1 === (15)) { + return c.plus($clone(c.compile((x$2 = re.Sub, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0]))), frag), !((((re.Flags & 32) >>> 0) === 0))); + } else if (_1 === (16)) { + return c.quest($clone(c.compile((x$3 = re.Sub, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0]))), frag), !((((re.Flags & 32) >>> 0) === 0))); + } else if (_1 === (18)) { + if (re.Sub.$length === 0) { + return c.nop(); + } + f$1 = new frag.ptr(0, new patchList.ptr(0, 0), false); + _ref$1 = re.Sub; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i = _i$1; + sub$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + if (i === 0) { + frag.copy(f$1, c.compile(sub$1)); + } else { + frag.copy(f$1, c.cat($clone(f$1, frag), $clone(c.compile(sub$1), frag))); + } + _i$1++; + } + return f$1; + } else if (_1 === (19)) { + f$2 = new frag.ptr(0, new patchList.ptr(0, 0), false); + _ref$2 = re.Sub; + _i$2 = 0; + while (true) { + if (!(_i$2 < _ref$2.$length)) { break; } + sub$2 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); + frag.copy(f$2, c.alt($clone(f$2, frag), $clone(c.compile(sub$2), frag))); + _i$2++; + } + return f$2; + } + $panic(new $String("regexp: unhandled case in compile")); }; - $ptrType(Checker).prototype.representable = function representable(x, typ$4) { - var {_r$1, _tuple, check, code, typ$4, v, x, $s, $r, $c} = $restore(this, {x, typ$4}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = check.representation(x, typ$4); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - v = _tuple[0]; - code = _tuple[1]; - /* */ if (!((code === 0))) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!((code === 0))) { */ case 2: - $r = check.invalidConversion(code, x, typ$4); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - $s = -1; return; - /* } */ case 3: - $r = assert(!($interfaceIsEqual(v, $ifaceNil))); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.val = v; - $s = -1; return; - /* */ } return; } var $f = {$blk: representable, $c: true, $r, _r$1, _tuple, check, code, typ$4, v, x, $s};return $f; + $ptrType(compiler).prototype.inst = function inst(op$2) { + var c, f, op$2; + c = this; + f = new frag.ptr(((c.p.Inst.$length >>> 0)), new patchList.ptr(0, 0), true); + c.p.Inst = $append(c.p.Inst, new Inst.ptr(op$2, 0, 0, sliceType$1.nil)); + return f; }; - $ptrType(Checker).prototype.representation = function representation(x, typ$4) { - var {_r$1, _r$2, _r$3, _r$4, _r$5, _v, _v$1, check, typ$4, v, x, $s, $r, $c} = $restore(this, {x, typ$4}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - v = [v]; - check = this; - $r = assert(x.mode === 4); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - v[0] = x.val; - _r$1 = representableConst(x.val, check, typ$4, (v.$ptr || (v.$ptr = new ptrType$50(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, v)))); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (!_r$1) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!_r$1) { */ case 2: - _r$2 = isNumeric(x.typ); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - if (!(_r$2)) { _v = false; $s = 7; continue s; } - _r$3 = isNumeric(typ$4); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _v = _r$3; case 7: - /* */ if (_v) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (_v) { */ case 5: - _r$4 = isInteger(x.typ); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - if (!(!_r$4)) { _v$1 = false; $s = 13; continue s; } - _r$5 = isInteger(typ$4); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _v$1 = _r$5; case 13: - /* */ if (_v$1) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (_v$1) { */ case 10: - $s = -1; return [$ifaceNil, 43]; - /* } else { */ case 11: - $s = -1; return [$ifaceNil, 44]; - /* } */ case 12: - /* } */ case 6: - $s = -1; return [$ifaceNil, 14]; - /* } */ case 3: - $s = -1; return [v[0], 0]; - /* */ } return; } var $f = {$blk: representation, $c: true, $r, _r$1, _r$2, _r$3, _r$4, _r$5, _v, _v$1, check, typ$4, v, x, $s};return $f; + $ptrType(compiler).prototype.nop = function nop() { + var c, f; + c = this; + f = $clone(c.inst(6), frag); + patchList.copy(f.out, makePatchList(f.i << 1 >>> 0)); + return f; }; - $ptrType(Checker).prototype.invalidConversion = function invalidConversion(code, x, target) { - var {_1, check, code, msg, target, x, $s, $r, $c} = $restore(this, {code, x, target}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - msg = "cannot convert %s to type %s"; - _1 = code; - if (_1 === (43)) { - msg = "%s truncated to %s"; - } else if (_1 === (44)) { - msg = "%s overflows %s"; + $ptrType(compiler).prototype.fail = function fail() { + var c; + c = this; + return new frag.ptr(0, new patchList.ptr(0, 0), false); + }; + $ptrType(compiler).prototype.cap = function cap(arg) { + var arg, c, f, x, x$1; + c = this; + f = $clone(c.inst(2), frag); + patchList.copy(f.out, makePatchList(f.i << 1 >>> 0)); + (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Arg = arg; + if (c.p.NumCap < (((arg >> 0)) + 1 >> 0)) { + c.p.NumCap = ((arg >> 0)) + 1 >> 0; } - $r = check.errorf(x, code, msg, new sliceType$6([x, target])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: invalidConversion, $c: true, $r, _1, check, code, msg, target, x, $s};return $f; + return f; }; - $ptrType(Checker).prototype.updateExprType = function updateExprType(x, typ$4, final$1) { - var {check, final$1, typ$4, x, $s, $r, $c} = $restore(this, {x, typ$4, final$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - $r = check.updateExprType0($ifaceNil, x, typ$4, final$1); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: updateExprType, $c: true, $r, check, final$1, typ$4, x, $s};return $f; + $ptrType(compiler).prototype.cat = function cat(f1, f2) { + var c, f1, f2; + c = this; + if ((f1.i === 0) || (f2.i === 0)) { + return new frag.ptr(0, new patchList.ptr(0, 0), false); + } + $clone(f1.out, patchList).patch(c.p, f2.i); + return new frag.ptr(f1.i, $clone(f2.out, patchList), f1.nullable && f2.nullable); }; - $ptrType(Checker).prototype.updateExprType0 = function updateExprType0(parent, x, typ$4, final$1) { - var {_arg, _arg$1, _arg$2, _arg$3, _entry, _key, _r$1, _r$2, _r$3, _ref, _tuple, c, check, final$1, found, old, parent, typ$4, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r, $c} = $restore(this, {parent, x, typ$4, final$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - c = [c]; - check = this; - _tuple = (_entry = $mapIndex(check.untyped,ast.Expr.keyFor(x)), _entry !== undefined ? [_entry.v, true] : [new exprInfo.ptr(false, 0, ptrType$4.nil, $ifaceNil), false]); - old = $clone(_tuple[0], exprInfo); - found = _tuple[1]; - if (!found) { - $s = -1; return; + $ptrType(compiler).prototype.alt = function alt(f1, f2) { + var c, f, f1, f2, i, x, x$1; + c = this; + if (f1.i === 0) { + return f2; } - _ref = x; - /* */ if ($assertType(_ref, ptrType$35, true)[1] || $assertType(_ref, ptrType$98, true)[1] || $assertType(_ref, ptrType$99, true)[1] || $assertType(_ref, ptrType$37, true)[1] || $assertType(_ref, ptrType$100, true)[1] || $assertType(_ref, ptrType$82, true)[1] || $assertType(_ref, ptrType$43, true)[1] || $assertType(_ref, ptrType$97, true)[1] || $assertType(_ref, ptrType$40, true)[1] || $assertType(_ref, ptrType$42, true)[1] || $assertType(_ref, ptrType$44, true)[1] || $assertType(_ref, ptrType$45, true)[1] || $assertType(_ref, ptrType$46, true)[1] || $assertType(_ref, ptrType$47, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$86, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$30, true)[1] || $assertType(_ref, ptrType$57, true)[1] || $assertType(_ref, ptrType$36, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$39, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$20, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$21, true)[1]) { $s = 6; continue; } - /* */ $s = 7; continue; - /* switch (0) { default: if ($assertType(_ref, ptrType$35, true)[1] || $assertType(_ref, ptrType$98, true)[1] || $assertType(_ref, ptrType$99, true)[1] || $assertType(_ref, ptrType$37, true)[1] || $assertType(_ref, ptrType$100, true)[1] || $assertType(_ref, ptrType$82, true)[1] || $assertType(_ref, ptrType$43, true)[1] || $assertType(_ref, ptrType$97, true)[1] || $assertType(_ref, ptrType$40, true)[1] || $assertType(_ref, ptrType$42, true)[1] || $assertType(_ref, ptrType$44, true)[1] || $assertType(_ref, ptrType$45, true)[1] || $assertType(_ref, ptrType$46, true)[1] || $assertType(_ref, ptrType$47, true)[1]) { */ case 1: - x$1 = _ref; - /* */ if (false) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (false) { */ case 9: - _r$1 = x$1.Pos(); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _arg = new token.Pos(_r$1); - _arg$1 = x$1; - _arg$2 = old.typ; - _arg$3 = typ$4; - $r = check.dump("%v: found old type(%s): %s (new: %s)", new sliceType$6([_arg, _arg$1, _arg$2, _arg$3])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - unreachable(); - /* } */ case 10: - $s = -1; return; - /* } else if ($assertType(_ref, ptrType$86, true)[1]) { */ case 2: - x$2 = _ref.$val; - $s = 8; continue; - /* } else if ($assertType(_ref, ptrType$30, true)[1] || $assertType(_ref, ptrType$57, true)[1] || $assertType(_ref, ptrType$36, true)[1]) { */ case 3: - x$3 = _ref; - $s = 8; continue; - /* } else if ($assertType(_ref, ptrType$39, true)[1]) { */ case 4: - x$4 = _ref.$val; - $r = check.updateExprType0(x$4, x$4.X, typ$4, final$1); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 8; continue; - /* } else if ($assertType(_ref, ptrType$20, true)[1]) { */ case 5: - x$5 = _ref.$val; - if (!($interfaceIsEqual(old.val, $ifaceNil))) { - /* break; */ $s = 8; continue; - } - $r = check.updateExprType0(x$5, x$5.X, typ$4, final$1); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 8; continue; - /* } else if ($assertType(_ref, ptrType$21, true)[1]) { */ case 6: - x$6 = _ref.$val; - if (!($interfaceIsEqual(old.val, $ifaceNil))) { - /* break; */ $s = 8; continue; - } - /* */ if (isComparison(x$6.Op)) { $s = 15; continue; } - /* */ if (isShift(x$6.Op)) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (isComparison(x$6.Op)) { */ case 15: - $s = 18; continue; - /* } else if (isShift(x$6.Op)) { */ case 16: - $r = check.updateExprType0(x$6, x$6.X, typ$4, final$1); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 18; continue; - /* } else { */ case 17: - $r = check.updateExprType0(x$6, x$6.X, typ$4, final$1); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.updateExprType0(x$6, x$6.Y, typ$4, final$1); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 18: - $s = 8; continue; - /* } else { */ case 7: - x$7 = _ref; - unreachable(); - /* } } */ case 8: - /* */ if (!final$1 && isUntyped(typ$4)) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if (!final$1 && isUntyped(typ$4)) { */ case 22: - _r$2 = under(typ$4); /* */ $s = 24; case 24: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - old.typ = $assertType(_r$2, ptrType$4); - _key = x; (check.untyped || $throwRuntimeError("assignment to entry in nil map")).set(ast.Expr.keyFor(_key), { k: _key, v: $clone(old, exprInfo) }); - $s = -1; return; - /* } */ case 23: - $mapDelete(check.untyped, ast.Expr.keyFor(x)); - /* */ if (old.isLhs) { $s = 25; continue; } - /* */ $s = 26; continue; - /* if (old.isLhs) { */ case 25: - _r$3 = allInteger(typ$4); /* */ $s = 29; case 29: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (!_r$3) { $s = 27; continue; } - /* */ $s = 28; continue; - /* if (!_r$3) { */ case 27: - $r = check.errorf(x, 57, "invalid operation: shifted operand %s (type %s) must be integer", new sliceType$6([x, typ$4])); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 28: - /* } */ case 26: - /* */ if (!($interfaceIsEqual(old.val, $ifaceNil))) { $s = 31; continue; } - /* */ $s = 32; continue; - /* if (!($interfaceIsEqual(old.val, $ifaceNil))) { */ case 31: - c[0] = new operand.ptr(old.mode, x, old.typ, old.val, 0); - $r = check.convertUntyped(c[0], typ$4); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (c[0].mode === 0) { - $s = -1; return; - } - /* } */ case 32: - $r = check.recordTypeAndValue(x, old.mode, typ$4, old.val); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: updateExprType0, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _entry, _key, _r$1, _r$2, _r$3, _ref, _tuple, c, check, final$1, found, old, parent, typ$4, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s};return $f; + if (f2.i === 0) { + return f1; + } + f = $clone(c.inst(0), frag); + i = (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + x$1, ptrType$2))); + i.Out = f1.i; + i.Arg = f2.i; + patchList.copy(f.out, $clone(f1.out, patchList).append(c.p, $clone(f2.out, patchList))); + f.nullable = f1.nullable || f2.nullable; + return f; }; - $ptrType(Checker).prototype.updateExprVal = function updateExprVal(x, val) { - var _entry, _key, _tuple, check, info, ok, val, x; - check = this; - _tuple = (_entry = $mapIndex(check.untyped,ast.Expr.keyFor(x)), _entry !== undefined ? [_entry.v, true] : [new exprInfo.ptr(false, 0, ptrType$4.nil, $ifaceNil), false]); - info = $clone(_tuple[0], exprInfo); - ok = _tuple[1]; - if (ok) { - info.val = val; - _key = x; (check.untyped || $throwRuntimeError("assignment to entry in nil map")).set(ast.Expr.keyFor(_key), { k: _key, v: $clone(info, exprInfo) }); + $ptrType(compiler).prototype.quest = function quest(f1, nongreedy) { + var c, f, f1, i, nongreedy, x, x$1; + c = this; + f = $clone(c.inst(0), frag); + i = (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + x$1, ptrType$2))); + if (nongreedy) { + i.Arg = f1.i; + patchList.copy(f.out, makePatchList(f.i << 1 >>> 0)); + } else { + i.Out = f1.i; + patchList.copy(f.out, makePatchList(((f.i << 1 >>> 0) | 1) >>> 0)); + } + patchList.copy(f.out, $clone(f.out, patchList).append(c.p, $clone(f1.out, patchList))); + return f; + }; + $ptrType(compiler).prototype.loop = function loop(f1, nongreedy) { + var c, f, f1, i, nongreedy, x, x$1; + c = this; + f = $clone(c.inst(0), frag); + i = (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + x$1, ptrType$2))); + if (nongreedy) { + i.Arg = f1.i; + patchList.copy(f.out, makePatchList(f.i << 1 >>> 0)); + } else { + i.Out = f1.i; + patchList.copy(f.out, makePatchList(((f.i << 1 >>> 0) | 1) >>> 0)); } + $clone(f1.out, patchList).patch(c.p, f.i); + return f; }; - $ptrType(Checker).prototype.convertUntyped = function convertUntyped(x, target) { - var {_r$1, _r$2, _tuple, check, code, newType, t, target, val, x, $s, $r, $c} = $restore(this, {x, target}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = check.implicitTypeAndValue(x, target); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - newType = _tuple[0]; - val = _tuple[1]; - code = _tuple[2]; - /* */ if (!((code === 0))) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!((code === 0))) { */ case 2: - t = target; - /* */ if (!isTypeParam(target)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (!isTypeParam(target)) { */ case 4: - _r$2 = safeUnderlying(target); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - t = _r$2; - /* } */ case 5: - $r = check.invalidConversion(code, x, t); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - $s = -1; return; - /* } */ case 3: - if (!($interfaceIsEqual(val, $ifaceNil))) { - x.val = val; - check.updateExprVal(x.expr, val); + $ptrType(compiler).prototype.star = function star(f1, nongreedy) { + var c, f1, nongreedy; + c = this; + if (f1.nullable) { + return c.quest($clone(c.plus($clone(f1, frag), nongreedy), frag), nongreedy); } - /* */ if (!($interfaceIsEqual(newType, x.typ))) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (!($interfaceIsEqual(newType, x.typ))) { */ case 8: - x.typ = newType; - $r = check.updateExprType(x.expr, newType, false); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 9: - $s = -1; return; - /* */ } return; } var $f = {$blk: convertUntyped, $c: true, $r, _r$1, _r$2, _tuple, check, code, newType, t, target, val, x, $s};return $f; + return c.loop($clone(f1, frag), nongreedy); }; - $ptrType(Checker).prototype.implicitTypeAndValue = function implicitTypeAndValue(x, target) { - var {_1, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _v, check, code, target, tkind, u, u$1, u$2, u$3, v, x, xkind, $s, $r, $c} = $restore(this, {x, target}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = [check]; - x = [x]; - check[0] = this; - if ((x[0].mode === 0) || isTyped(x[0].typ) || $interfaceIsEqual(target, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { - $s = -1; return [x[0].typ, $ifaceNil, 0]; - } - /* */ if (isUntyped(target)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (isUntyped(target)) { */ case 1: - xkind = $assertType(x[0].typ, ptrType$4).kind; - tkind = $assertType(target, ptrType$4).kind; - _r$1 = isNumeric(x[0].typ); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - if (!(_r$1)) { _v = false; $s = 6; continue s; } - _r$2 = isNumeric(target); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _v = _r$2; case 6: - /* */ if (_v) { $s = 3; continue; } - /* */ if (!((xkind === tkind))) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_v) { */ case 3: - if (xkind < tkind) { - $s = -1; return [target, $ifaceNil, 0]; - } - $s = 5; continue; - /* } else if (!((xkind === tkind))) { */ case 4: - $s = -1; return [$ifaceNil, $ifaceNil, 97]; - /* } */ case 5: - $s = -1; return [x[0].typ, $ifaceNil, 0]; - /* } */ case 2: - _r$3 = under(target); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _ref = _r$3; - /* */ if ($assertType(_ref, ptrType$4, true)[1]) { $s = 10; continue; } - /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 11; continue; } - /* */ if ($assertType(_ref, ptrType$26, true)[1] || $assertType(_ref, ptrType$27, true)[1] || $assertType(_ref, ptrType$25, true)[1] || $assertType(_ref, ptrType$28, true)[1] || $assertType(_ref, ptrType$29, true)[1]) { $s = 12; continue; } - /* */ $s = 13; continue; - /* switch (0) { default: if ($assertType(_ref, ptrType$4, true)[1]) { */ case 10: - u = _ref.$val; - /* */ if (x[0].mode === 4) { $s = 15; continue; } - /* */ $s = 16; continue; - /* if (x[0].mode === 4) { */ case 15: - _r$4 = check[0].representation(x[0], u); /* */ $s = 17; case 17: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _tuple = _r$4; - v = _tuple[0]; - code = _tuple[1]; - if (!((code === 0))) { - $s = -1; return [$ifaceNil, $ifaceNil, code]; - } - $s = -1; return [target, v, code]; - /* } */ case 16: - _1 = $assertType(x[0].typ, ptrType$4).kind; - /* */ if (_1 === (19)) { $s = 19; continue; } - /* */ if ((_1 === (20)) || (_1 === (21)) || (_1 === (22)) || (_1 === (23))) { $s = 20; continue; } - /* */ if (_1 === (24)) { $s = 21; continue; } - /* */ if (_1 === (25)) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if (_1 === (19)) { */ case 19: - _r$5 = isBoolean(target); /* */ $s = 27; case 27: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* */ if (!_r$5) { $s = 25; continue; } - /* */ $s = 26; continue; - /* if (!_r$5) { */ case 25: - $s = -1; return [$ifaceNil, $ifaceNil, 97]; - /* } */ case 26: - $s = 24; continue; - /* } else if ((_1 === (20)) || (_1 === (21)) || (_1 === (22)) || (_1 === (23))) { */ case 20: - _r$6 = isNumeric(target); /* */ $s = 30; case 30: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - /* */ if (!_r$6) { $s = 28; continue; } - /* */ $s = 29; continue; - /* if (!_r$6) { */ case 28: - $s = -1; return [$ifaceNil, $ifaceNil, 97]; - /* } */ case 29: - $s = 24; continue; - /* } else if (_1 === (24)) { */ case 21: - _r$7 = isString(target); /* */ $s = 33; case 33: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - /* */ if (!_r$7) { $s = 31; continue; } - /* */ $s = 32; continue; - /* if (!_r$7) { */ case 31: - $s = -1; return [$ifaceNil, $ifaceNil, 97]; - /* } */ case 32: - $s = 24; continue; - /* } else if (_1 === (25)) { */ case 22: - _r$8 = hasNil(target); /* */ $s = 36; case 36: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - /* */ if (!_r$8) { $s = 34; continue; } - /* */ $s = 35; continue; - /* if (!_r$8) { */ case 34: - $s = -1; return [$ifaceNil, $ifaceNil, 97]; - /* } */ case 35: - $s = -1; return [(25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25]), $ifaceNil, 0]; - /* } else { */ case 23: - $s = -1; return [$ifaceNil, $ifaceNil, 97]; - /* } */ case 24: - case 18: - $s = 14; continue; - /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 11: - u$1 = _ref.$val; - /* */ if (isTypeParam(target)) { $s = 37; continue; } - /* */ $s = 38; continue; - /* if (isTypeParam(target)) { */ case 37: - _r$9 = u$1.typeSet(); /* */ $s = 41; case 41: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _r$10 = _r$9.underIs((function(check, x) { return function Checker·implicitTypeAndValue·func1(u$4) { - var {_r$10, _tuple$1, t, u$4, $s, $r, $c} = $restore(this, {u$4}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if ($interfaceIsEqual(u$4, $ifaceNil)) { - $s = -1; return false; - } - _r$10 = check[0].implicitTypeAndValue(x[0], u$4); /* */ $s = 1; case 1: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _tuple$1 = _r$10; - t = _tuple$1[0]; - $s = -1; return !($interfaceIsEqual(t, $ifaceNil)); - /* */ } return; } var $f = {$blk: Checker·implicitTypeAndValue·func1, $c: true, $r, _r$10, _tuple$1, t, u$4, $s};return $f; - }; })(check, x)); /* */ $s = 42; case 42: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - /* */ if (!_r$10) { $s = 39; continue; } - /* */ $s = 40; continue; - /* if (!_r$10) { */ case 39: - $s = -1; return [$ifaceNil, $ifaceNil, 97]; - /* } */ case 40: - if (x[0].isNil()) { - $s = -1; return [(25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25]), $ifaceNil, 0]; - } - /* break; */ $s = 14; continue; - /* } */ case 38: - if (x[0].isNil()) { - $s = -1; return [(25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25]), $ifaceNil, 0]; - } - _r$11 = u$1.Empty(); /* */ $s = 45; case 45: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - /* */ if (!_r$11) { $s = 43; continue; } - /* */ $s = 44; continue; - /* if (!_r$11) { */ case 43: - $s = -1; return [$ifaceNil, $ifaceNil, 97]; - /* } */ case 44: - $s = -1; return [Default(x[0].typ), $ifaceNil, 0]; - /* } else if ($assertType(_ref, ptrType$26, true)[1] || $assertType(_ref, ptrType$27, true)[1] || $assertType(_ref, ptrType$25, true)[1] || $assertType(_ref, ptrType$28, true)[1] || $assertType(_ref, ptrType$29, true)[1]) { */ case 12: - u$2 = _ref; - if (!x[0].isNil()) { - $s = -1; return [$ifaceNil, $ifaceNil, 97]; - } - $s = -1; return [(25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25]), $ifaceNil, 0]; - /* } else { */ case 13: - u$3 = _ref; - $s = -1; return [$ifaceNil, $ifaceNil, 97]; - /* } } */ case 14: - $s = -1; return [target, $ifaceNil, 0]; - /* */ } return; } var $f = {$blk: implicitTypeAndValue, $c: true, $r, _1, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _v, check, code, target, tkind, u, u$1, u$2, u$3, v, x, xkind, $s};return $f; - }; - $ptrType(Checker).prototype.comparison = function comparison(x, y, op$1, switchCase) { - var {_1, _arg, _arg$1, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, cause, check, code, errOp, ok, op$1, switchCase, typ$4, x, y, $s, $r, $c} = $restore(this, {x, y, op$1, switchCase}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - if ($interfaceIsEqual(x.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])) || $interfaceIsEqual(y.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { - x.mode = 0; - $s = -1; return; + $ptrType(compiler).prototype.plus = function plus(f1, nongreedy) { + var c, f1, nongreedy; + c = this; + return new frag.ptr(f1.i, $clone(c.loop($clone(f1, frag), nongreedy).out, patchList), f1.nullable); + }; + $ptrType(compiler).prototype.empty = function empty(op$2) { + var c, f, op$2, x, x$1; + c = this; + f = $clone(c.inst(3), frag); + (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Arg = ((op$2 >>> 0)); + patchList.copy(f.out, makePatchList(f.i << 1 >>> 0)); + return f; + }; + $ptrType(compiler).prototype.rune = function rune(r, flags) { + var c, f, flags, i, r, x, x$1; + c = this; + f = $clone(c.inst(7), frag); + f.nullable = false; + i = (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + x$1, ptrType$2))); + i.Rune = r; + flags = (flags & (1)) >>> 0; + if (!((r.$length === 1)) || (unicode.SimpleFold((0 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 0])) === (0 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 0]))) { + flags = (flags & ~(1)) << 16 >>> 16; } - if (switchCase) { - op$1 = 39; + i.Arg = ((flags >>> 0)); + patchList.copy(f.out, makePatchList(f.i << 1 >>> 0)); + if ((((flags & 1) >>> 0) === 0) && ((r.$length === 1) || (r.$length === 2) && ((0 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 0]) === (1 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 1])))) { + i.Op = 8; + } else if ((r.$length === 2) && ((0 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 0]) === 0) && ((1 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 1]) === 1114111)) { + i.Op = 9; + } else if ((r.$length === 4) && ((0 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 0]) === 0) && ((1 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 1]) === 9) && ((2 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 2]) === 11) && ((3 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 3]) === 1114111)) { + i.Op = 10; } - errOp = x; - cause = ""; - code = 46; - _r$1 = x.assignableTo(check, y.typ, ptrType$34.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - ok = _tuple[0]; - /* */ if (!ok) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!ok) { */ case 2: - _r$2 = y.assignableTo(check, x.typ, ptrType$34.nil); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple$1 = _r$2; - ok = _tuple$1[0]; - /* } */ case 3: - /* */ if (!ok) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (!ok) { */ case 5: - errOp = y; - _r$3 = check.sprintf("mismatched types %s and %s", new sliceType$6([x.typ, y.typ])); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - cause = _r$3; - /* goto Error */ $s = 8; continue; - /* } */ case 6: - code = 45; - _1 = op$1; - /* */ if ((_1 === (39)) || (_1 === (44))) { $s = 10; continue; } - /* */ if ((_1 === (40)) || (_1 === (45)) || (_1 === (41)) || (_1 === (46))) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if ((_1 === (39)) || (_1 === (44))) { */ case 10: - /* */ if (x.isNil() || y.isNil()) { $s = 15; continue; } - _r$4 = Comparable(x.typ); /* */ $s = 19; case 19: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if (!_r$4) { $s = 16; continue; } - _r$5 = Comparable(y.typ); /* */ $s = 20; case 20: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* */ if (!_r$5) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (x.isNil() || y.isNil()) { */ case 15: - typ$4 = x.typ; - if (x.isNil()) { - typ$4 = y.typ; - } - _r$6 = hasNil(typ$4); /* */ $s = 23; case 23: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - /* */ if (!_r$6) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if (!_r$6) { */ case 21: - errOp = y; - /* goto Error */ $s = 8; continue; - /* } */ case 22: - $s = 18; continue; - /* } else if (!_r$4) { */ case 16: - errOp = x; - _r$7 = check.incomparableCause(x.typ); /* */ $s = 24; case 24: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - cause = _r$7; - /* goto Error */ $s = 8; continue; - $s = 18; continue; - /* } else if (!_r$5) { */ case 17: - errOp = y; - _r$8 = check.incomparableCause(y.typ); /* */ $s = 25; case 25: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - cause = _r$8; - /* goto Error */ $s = 8; continue; - /* } */ case 18: - case 14: - $s = 13; continue; - /* } else if ((_1 === (40)) || (_1 === (45)) || (_1 === (41)) || (_1 === (46))) { */ case 11: - _r$9 = allOrdered(x.typ); /* */ $s = 30; case 30: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - /* */ if (!_r$9) { $s = 27; continue; } - _r$10 = allOrdered(y.typ); /* */ $s = 31; case 31: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - /* */ if (!_r$10) { $s = 28; continue; } - /* */ $s = 29; continue; - /* if (!_r$9) { */ case 27: - errOp = x; - /* goto Error */ $s = 8; continue; - $s = 29; continue; - /* } else if (!_r$10) { */ case 28: - errOp = y; - /* goto Error */ $s = 8; continue; - /* } */ case 29: - case 26: - $s = 13; continue; - /* } else { */ case 12: - unreachable(); - /* } */ case 13: - case 9: - /* */ if ((x.mode === 4) && (y.mode === 4)) { $s = 32; continue; } - /* */ $s = 33; continue; - /* if ((x.mode === 4) && (y.mode === 4)) { */ case 32: - _r$11 = constant.Compare(x.val, op$1, y.val); /* */ $s = 35; case 35: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _r$12 = constant.MakeBool(_r$11); /* */ $s = 36; case 36: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - x.val = _r$12; - $s = 34; continue; - /* } else { */ case 33: - x.mode = 7; - $r = check.updateExprType(x.expr, Default(x.typ), true); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.updateExprType(y.expr, Default(y.typ), true); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 34: - x.typ = (19 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 19]); - $s = -1; return; - /* Error: */ case 8: - /* */ if (cause === "") { $s = 39; continue; } - /* */ $s = 40; continue; - /* if (cause === "") { */ case 39: - /* */ if (isTypeParam(x.typ) || isTypeParam(y.typ)) { $s = 41; continue; } - /* */ $s = 42; continue; - /* if (isTypeParam(x.typ) || isTypeParam(y.typ)) { */ case 41: - if (!isTypeParam(x.typ)) { - errOp = y; - } - _r$13 = check.sprintf("type parameter %s is not comparable with %s", new sliceType$6([errOp.typ, new token.Token(op$1)])); /* */ $s = 44; case 44: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - cause = _r$13; - $s = 43; continue; - /* } else { */ case 42: - _arg = new token.Token(op$1); - _r$14 = check.kindString(errOp.typ); /* */ $s = 45; case 45: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - _arg$1 = new $String(_r$14); - _r$15 = check.sprintf("operator %s not defined on %s", new sliceType$6([_arg, _arg$1])); /* */ $s = 46; case 46: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - cause = _r$15; - /* } */ case 43: - /* } */ case 40: - /* */ if (switchCase) { $s = 47; continue; } - /* */ $s = 48; continue; - /* if (switchCase) { */ case 47: - $r = check.errorf(x, code, "invalid case %s in switch on %s (%s)", new sliceType$6([x.expr, y.expr, new $String(cause)])); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 49; continue; - /* } else { */ case 48: - $r = check.errorf(errOp, code, "invalid operation: %s %s %s (%s)", new sliceType$6([x.expr, new token.Token(op$1), y.expr, new $String(cause)])); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 49: - x.mode = 0; - $s = -1; return; - /* */ } return; } var $f = {$blk: comparison, $c: true, $r, _1, _arg, _arg$1, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, cause, check, code, errOp, ok, op$1, switchCase, typ$4, x, y, $s};return $f; + return f; }; - $ptrType(Checker).prototype.incomparableCause = function incomparableCause(typ$4) { - var {$24r, _r$1, _r$2, _r$3, _ref, cause, check, typ$4, $s, $r, $c} = $restore(this, {typ$4}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - cause = [cause]; - check = [check]; - check[0] = this; - _r$1 = under(typ$4); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _ref = _r$1; - /* */ if ($assertType(_ref, ptrType$25, true)[1] || $assertType(_ref, ptrType$27, true)[1] || $assertType(_ref, ptrType$28, true)[1]) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if ($assertType(_ref, ptrType$25, true)[1] || $assertType(_ref, ptrType$27, true)[1] || $assertType(_ref, ptrType$28, true)[1]) { */ case 2: - _r$2 = check[0].kindString(typ$4); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2 + " can only be compared to nil"; - $s = 5; case 5: return $24r; - /* } */ case 3: - cause[0] = ""; - _r$3 = comparable(typ$4, true, false, (function(cause, check) { return function Checker·incomparableCause·func1(format, args) { - var {_r$3, args, format, $s, $r, $c} = $restore(this, {format, args}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$3 = check[0].sprintf(format, args); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - cause[0] = _r$3; - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·incomparableCause·func1, $c: true, $r, _r$3, args, format, $s};return $f; - }; })(cause, check)); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$3; - $s = -1; return cause[0]; - /* */ } return; } var $f = {$blk: incomparableCause, $c: true, $r, $24r, _r$1, _r$2, _r$3, _ref, cause, check, typ$4, $s};return $f; + ptrType.methods = [{prop: "Simplify", name: "Simplify", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "Equal", name: "Equal", pkg: "", typ: $funcType([ptrType], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "MaxCap", name: "MaxCap", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "CapNames", name: "CapNames", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "capNames", name: "capNames", pkg: "regexp/syntax", typ: $funcType([sliceType], [], false)}]; + Op.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$6.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "skipNop", name: "skipNop", pkg: "regexp/syntax", typ: $funcType([$Uint32], [ptrType$2], false)}, {prop: "Prefix", name: "Prefix", pkg: "", typ: $funcType([], [$String, $Bool], false)}, {prop: "StartCond", name: "StartCond", pkg: "", typ: $funcType([], [EmptyOp], false)}]; + InstOp.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$2.methods = [{prop: "op", name: "op", pkg: "regexp/syntax", typ: $funcType([], [InstOp], false)}, {prop: "MatchRune", name: "MatchRune", pkg: "", typ: $funcType([$Int32], [$Bool], false)}, {prop: "MatchRunePos", name: "MatchRunePos", pkg: "", typ: $funcType([$Int32], [$Int], false)}, {prop: "MatchEmptyWidth", name: "MatchEmptyWidth", pkg: "", typ: $funcType([$Int32, $Int32], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$7.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + ErrorCode.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$4.methods = [{prop: "newRegexp", name: "newRegexp", pkg: "regexp/syntax", typ: $funcType([Op], [ptrType], false)}, {prop: "reuse", name: "reuse", pkg: "regexp/syntax", typ: $funcType([ptrType], [], false)}, {prop: "checkLimits", name: "checkLimits", pkg: "regexp/syntax", typ: $funcType([ptrType], [], false)}, {prop: "checkSize", name: "checkSize", pkg: "regexp/syntax", typ: $funcType([ptrType], [], false)}, {prop: "calcSize", name: "calcSize", pkg: "regexp/syntax", typ: $funcType([ptrType, $Bool], [$Int64], false)}, {prop: "checkHeight", name: "checkHeight", pkg: "regexp/syntax", typ: $funcType([ptrType], [], false)}, {prop: "calcHeight", name: "calcHeight", pkg: "regexp/syntax", typ: $funcType([ptrType, $Bool], [$Int], false)}, {prop: "push", name: "push", pkg: "regexp/syntax", typ: $funcType([ptrType], [ptrType], false)}, {prop: "maybeConcat", name: "maybeConcat", pkg: "regexp/syntax", typ: $funcType([$Int32, Flags], [$Bool], false)}, {prop: "literal", name: "literal", pkg: "regexp/syntax", typ: $funcType([$Int32], [], false)}, {prop: "op", name: "op", pkg: "regexp/syntax", typ: $funcType([Op], [ptrType], false)}, {prop: "repeat", name: "repeat", pkg: "regexp/syntax", typ: $funcType([Op, $Int, $Int, $String, $String, $String], [$String, $error], false)}, {prop: "concat", name: "concat", pkg: "regexp/syntax", typ: $funcType([], [ptrType], false)}, {prop: "alternate", name: "alternate", pkg: "regexp/syntax", typ: $funcType([], [ptrType], false)}, {prop: "collapse", name: "collapse", pkg: "regexp/syntax", typ: $funcType([sliceType$4, Op], [ptrType], false)}, {prop: "factor", name: "factor", pkg: "regexp/syntax", typ: $funcType([sliceType$4], [sliceType$4], false)}, {prop: "leadingString", name: "leadingString", pkg: "regexp/syntax", typ: $funcType([ptrType], [sliceType$1, Flags], false)}, {prop: "removeLeadingString", name: "removeLeadingString", pkg: "regexp/syntax", typ: $funcType([ptrType, $Int], [ptrType], false)}, {prop: "leadingRegexp", name: "leadingRegexp", pkg: "regexp/syntax", typ: $funcType([ptrType], [ptrType], false)}, {prop: "removeLeadingRegexp", name: "removeLeadingRegexp", pkg: "regexp/syntax", typ: $funcType([ptrType, $Bool], [ptrType], false)}, {prop: "parseRepeat", name: "parseRepeat", pkg: "regexp/syntax", typ: $funcType([$String], [$Int, $Int, $String, $Bool], false)}, {prop: "parsePerlFlags", name: "parsePerlFlags", pkg: "regexp/syntax", typ: $funcType([$String], [$String, $error], false)}, {prop: "parseInt", name: "parseInt", pkg: "regexp/syntax", typ: $funcType([$String], [$Int, $String, $Bool], false)}, {prop: "parseVerticalBar", name: "parseVerticalBar", pkg: "regexp/syntax", typ: $funcType([], [$error], false)}, {prop: "swapVerticalBar", name: "swapVerticalBar", pkg: "regexp/syntax", typ: $funcType([], [$Bool], false)}, {prop: "parseRightParen", name: "parseRightParen", pkg: "regexp/syntax", typ: $funcType([], [$error], false)}, {prop: "parseEscape", name: "parseEscape", pkg: "regexp/syntax", typ: $funcType([$String], [$Int32, $String, $error], false)}, {prop: "parseClassChar", name: "parseClassChar", pkg: "regexp/syntax", typ: $funcType([$String, $String], [$Int32, $String, $error], false)}, {prop: "parsePerlClassEscape", name: "parsePerlClassEscape", pkg: "regexp/syntax", typ: $funcType([$String, sliceType$1], [sliceType$1, $String], false)}, {prop: "parseNamedClass", name: "parseNamedClass", pkg: "regexp/syntax", typ: $funcType([$String, sliceType$1], [sliceType$1, $String, $error], false)}, {prop: "appendGroup", name: "appendGroup", pkg: "regexp/syntax", typ: $funcType([sliceType$1, charGroup], [sliceType$1], false)}, {prop: "parseUnicodeClass", name: "parseUnicodeClass", pkg: "regexp/syntax", typ: $funcType([$String, sliceType$1], [sliceType$1, $String, $error], false)}, {prop: "parseClass", name: "parseClass", pkg: "regexp/syntax", typ: $funcType([$String], [$String, $error], false)}]; + ranges.methods = [{prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}]; + patchList.methods = [{prop: "patch", name: "patch", pkg: "regexp/syntax", typ: $funcType([ptrType$6, $Uint32], [], false)}, {prop: "append", name: "append", pkg: "regexp/syntax", typ: $funcType([ptrType$6, patchList], [patchList], false)}]; + ptrType$8.methods = [{prop: "init", name: "init", pkg: "regexp/syntax", typ: $funcType([], [], false)}, {prop: "compile", name: "compile", pkg: "regexp/syntax", typ: $funcType([ptrType], [frag], false)}, {prop: "inst", name: "inst", pkg: "regexp/syntax", typ: $funcType([InstOp], [frag], false)}, {prop: "nop", name: "nop", pkg: "regexp/syntax", typ: $funcType([], [frag], false)}, {prop: "fail", name: "fail", pkg: "regexp/syntax", typ: $funcType([], [frag], false)}, {prop: "cap", name: "cap", pkg: "regexp/syntax", typ: $funcType([$Uint32], [frag], false)}, {prop: "cat", name: "cat", pkg: "regexp/syntax", typ: $funcType([frag, frag], [frag], false)}, {prop: "alt", name: "alt", pkg: "regexp/syntax", typ: $funcType([frag, frag], [frag], false)}, {prop: "quest", name: "quest", pkg: "regexp/syntax", typ: $funcType([frag, $Bool], [frag], false)}, {prop: "loop", name: "loop", pkg: "regexp/syntax", typ: $funcType([frag, $Bool], [frag], false)}, {prop: "star", name: "star", pkg: "regexp/syntax", typ: $funcType([frag, $Bool], [frag], false)}, {prop: "plus", name: "plus", pkg: "regexp/syntax", typ: $funcType([frag, $Bool], [frag], false)}, {prop: "empty", name: "empty", pkg: "regexp/syntax", typ: $funcType([EmptyOp], [frag], false)}, {prop: "rune", name: "rune", pkg: "regexp/syntax", typ: $funcType([sliceType$1, Flags], [frag], false)}]; + Regexp.init("", [{prop: "Op", name: "Op", embedded: false, exported: true, typ: Op, tag: ""}, {prop: "Flags", name: "Flags", embedded: false, exported: true, typ: Flags, tag: ""}, {prop: "Sub", name: "Sub", embedded: false, exported: true, typ: sliceType$4, tag: ""}, {prop: "Sub0", name: "Sub0", embedded: false, exported: true, typ: arrayType, tag: ""}, {prop: "Rune", name: "Rune", embedded: false, exported: true, typ: sliceType$1, tag: ""}, {prop: "Rune0", name: "Rune0", embedded: false, exported: true, typ: arrayType$1, tag: ""}, {prop: "Min", name: "Min", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Max", name: "Max", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Cap", name: "Cap", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}]); + Prog.init("", [{prop: "Inst", name: "Inst", embedded: false, exported: true, typ: sliceType$6, tag: ""}, {prop: "Start", name: "Start", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "NumCap", name: "NumCap", embedded: false, exported: true, typ: $Int, tag: ""}]); + Inst.init("", [{prop: "Op", name: "Op", embedded: false, exported: true, typ: InstOp, tag: ""}, {prop: "Out", name: "Out", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Arg", name: "Arg", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Rune", name: "Rune", embedded: false, exported: true, typ: sliceType$1, tag: ""}]); + Error.init("", [{prop: "Code", name: "Code", embedded: false, exported: true, typ: ErrorCode, tag: ""}, {prop: "Expr", name: "Expr", embedded: false, exported: true, typ: $String, tag: ""}]); + parser.init("regexp/syntax", [{prop: "flags", name: "flags", embedded: false, exported: false, typ: Flags, tag: ""}, {prop: "stack", name: "stack", embedded: false, exported: false, typ: sliceType$4, tag: ""}, {prop: "free", name: "free", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "numCap", name: "numCap", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "wholeRegexp", name: "wholeRegexp", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "tmpClass", name: "tmpClass", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "numRegexp", name: "numRegexp", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "numRunes", name: "numRunes", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "repeats", name: "repeats", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "height", name: "height", embedded: false, exported: false, typ: mapType, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: mapType$1, tag: ""}]); + charGroup.init("regexp/syntax", [{prop: "sign", name: "sign", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "class$1", name: "class", embedded: false, exported: false, typ: sliceType$1, tag: ""}]); + ranges.init("regexp/syntax", [{prop: "p", name: "p", embedded: false, exported: false, typ: ptrType$3, tag: ""}]); + patchList.init("regexp/syntax", [{prop: "head", name: "head", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "tail", name: "tail", embedded: false, exported: false, typ: $Uint32, tag: ""}]); + frag.init("regexp/syntax", [{prop: "i", name: "i", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "out", name: "out", embedded: false, exported: false, typ: patchList, tag: ""}, {prop: "nullable", name: "nullable", embedded: false, exported: false, typ: $Bool, tag: ""}]); + compiler.init("regexp/syntax", [{prop: "p", name: "p", embedded: false, exported: false, typ: ptrType$6, tag: ""}]); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = sort.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unicode.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + instOpNames = new sliceType(["InstAlt", "InstAltMatch", "InstCapture", "InstEmptyWidth", "InstMatch", "InstFail", "InstNop", "InstRune", "InstRune1", "InstRuneAny", "InstRuneAnyNotNL"]); + code1 = new sliceType$1([48, 57]); + code2 = new sliceType$1([9, 10, 12, 13, 32, 32]); + code3 = new sliceType$1([48, 57, 65, 90, 95, 95, 97, 122]); + perlGroup = $makeMap($String.keyFor, [{ k: "\\d", v: $clone(new charGroup.ptr(1, code1), charGroup) }, { k: "\\D", v: $clone(new charGroup.ptr(-1, code1), charGroup) }, { k: "\\s", v: $clone(new charGroup.ptr(1, code2), charGroup) }, { k: "\\S", v: $clone(new charGroup.ptr(-1, code2), charGroup) }, { k: "\\w", v: $clone(new charGroup.ptr(1, code3), charGroup) }, { k: "\\W", v: $clone(new charGroup.ptr(-1, code3), charGroup) }]); + code4 = new sliceType$1([48, 57, 65, 90, 97, 122]); + code5 = new sliceType$1([65, 90, 97, 122]); + code6 = new sliceType$1([0, 127]); + code7 = new sliceType$1([9, 9, 32, 32]); + code8 = new sliceType$1([0, 31, 127, 127]); + code9 = new sliceType$1([48, 57]); + code10 = new sliceType$1([33, 126]); + code11 = new sliceType$1([97, 122]); + code12 = new sliceType$1([32, 126]); + code13 = new sliceType$1([33, 47, 58, 64, 91, 96, 123, 126]); + code14 = new sliceType$1([9, 13, 32, 32]); + code15 = new sliceType$1([65, 90]); + code16 = new sliceType$1([48, 57, 65, 90, 95, 95, 97, 122]); + code17 = new sliceType$1([48, 57, 65, 70, 97, 102]); + posixGroup = $makeMap($String.keyFor, [{ k: "[:alnum:]", v: $clone(new charGroup.ptr(1, code4), charGroup) }, { k: "[:^alnum:]", v: $clone(new charGroup.ptr(-1, code4), charGroup) }, { k: "[:alpha:]", v: $clone(new charGroup.ptr(1, code5), charGroup) }, { k: "[:^alpha:]", v: $clone(new charGroup.ptr(-1, code5), charGroup) }, { k: "[:ascii:]", v: $clone(new charGroup.ptr(1, code6), charGroup) }, { k: "[:^ascii:]", v: $clone(new charGroup.ptr(-1, code6), charGroup) }, { k: "[:blank:]", v: $clone(new charGroup.ptr(1, code7), charGroup) }, { k: "[:^blank:]", v: $clone(new charGroup.ptr(-1, code7), charGroup) }, { k: "[:cntrl:]", v: $clone(new charGroup.ptr(1, code8), charGroup) }, { k: "[:^cntrl:]", v: $clone(new charGroup.ptr(-1, code8), charGroup) }, { k: "[:digit:]", v: $clone(new charGroup.ptr(1, code9), charGroup) }, { k: "[:^digit:]", v: $clone(new charGroup.ptr(-1, code9), charGroup) }, { k: "[:graph:]", v: $clone(new charGroup.ptr(1, code10), charGroup) }, { k: "[:^graph:]", v: $clone(new charGroup.ptr(-1, code10), charGroup) }, { k: "[:lower:]", v: $clone(new charGroup.ptr(1, code11), charGroup) }, { k: "[:^lower:]", v: $clone(new charGroup.ptr(-1, code11), charGroup) }, { k: "[:print:]", v: $clone(new charGroup.ptr(1, code12), charGroup) }, { k: "[:^print:]", v: $clone(new charGroup.ptr(-1, code12), charGroup) }, { k: "[:punct:]", v: $clone(new charGroup.ptr(1, code13), charGroup) }, { k: "[:^punct:]", v: $clone(new charGroup.ptr(-1, code13), charGroup) }, { k: "[:space:]", v: $clone(new charGroup.ptr(1, code14), charGroup) }, { k: "[:^space:]", v: $clone(new charGroup.ptr(-1, code14), charGroup) }, { k: "[:upper:]", v: $clone(new charGroup.ptr(1, code15), charGroup) }, { k: "[:^upper:]", v: $clone(new charGroup.ptr(-1, code15), charGroup) }, { k: "[:word:]", v: $clone(new charGroup.ptr(1, code16), charGroup) }, { k: "[:^word:]", v: $clone(new charGroup.ptr(-1, code16), charGroup) }, { k: "[:xdigit:]", v: $clone(new charGroup.ptr(1, code17), charGroup) }, { k: "[:^xdigit:]", v: $clone(new charGroup.ptr(-1, code17), charGroup) }]); + anyTable = new unicode.RangeTable.ptr(new sliceType$2([$clone(new unicode.Range16.ptr(0, 65535, 1), unicode.Range16)]), new sliceType$3([$clone(new unicode.Range32.ptr(65536, 1114111, 1), unicode.Range32)]), 0); + _Op_index_0 = $toNativeArray($kindUint8, [0, 7, 17, 24, 33, 45, 52, 61, 68, 77, 84, 96, 110, 117, 121, 125, 130, 136, 142, 151]); + anyRuneNotNL = new sliceType$1([0, 9, 11, 1114111]); + anyRune = new sliceType$1([0, 1114111]); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["regexp"] = (function() { + var $pkg = {}, $init, bytes, nosync, io, syntax, sort, strconv, strings, unicode, utf8, Regexp, input, inputString, inputBytes, inputReader, onePassProg, onePassInst, queueOnePass, runeSlice, queue, entry, thread, machine, inputs, lazyFlag, onePassMachine, job, bitState, sliceType, arrayType, arrayType$1, arrayType$2, sliceType$1, sliceType$2, ptrType, ptrType$1, ptrType$2, sliceType$3, sliceType$4, ptrType$3, ptrType$4, sliceType$5, ptrType$5, sliceType$6, sliceType$7, arrayType$3, arrayType$4, sliceType$8, sliceType$9, sliceType$10, sliceType$11, ptrType$6, ptrType$7, ptrType$8, ptrType$9, sliceType$12, ptrType$10, sliceType$13, ptrType$11, ptrType$12, sliceType$14, ptrType$13, ptrType$14, ptrType$15, ptrType$16, sliceType$15, funcType, funcType$1, funcType$2, funcType$3, ptrType$17, ptrType$18, ptrType$19, ptrType$20, ptrType$21, matchPool, specialBytes, onePassPool, arrayNoInts, bitStatePool, matchSize, noRune, noNext, anyRuneNotNL, anyRune, Compile, compile, minInputLen, MustCompile, quote, init, extract, onePassPrefix, onePassNext, iop, newQueue, mergeRuneSets, cleanupOnePass, onePassCopy, makeOnePass, compileOnePass, newLazyFlag, newOnePassMachine, freeOnePassMachine, newBitState, freeBitState, maxBitStateLen, shouldBacktrack; + bytes = $packages["bytes"]; + nosync = $packages["github.com/gopherjs/gopherjs/nosync"]; + io = $packages["io"]; + syntax = $packages["regexp/syntax"]; + sort = $packages["sort"]; + strconv = $packages["strconv"]; + strings = $packages["strings"]; + unicode = $packages["unicode"]; + utf8 = $packages["unicode/utf8"]; + Regexp = $newType(0, $kindStruct, "regexp.Regexp", true, "regexp", true, function(expr_, prog_, onepass_, numSubexp_, maxBitStateLen_, subexpNames_, prefix_, prefixBytes_, prefixRune_, prefixEnd_, mpool_, matchcap_, prefixComplete_, cond_, minInputLen_, longest_) { + this.$val = this; + if (arguments.length === 0) { + this.expr = ""; + this.prog = ptrType$1.nil; + this.onepass = ptrType$2.nil; + this.numSubexp = 0; + this.maxBitStateLen = 0; + this.subexpNames = sliceType$3.nil; + this.prefix = ""; + this.prefixBytes = sliceType$4.nil; + this.prefixRune = 0; + this.prefixEnd = 0; + this.mpool = 0; + this.matchcap = 0; + this.prefixComplete = false; + this.cond = 0; + this.minInputLen = 0; + this.longest = false; + return; + } + this.expr = expr_; + this.prog = prog_; + this.onepass = onepass_; + this.numSubexp = numSubexp_; + this.maxBitStateLen = maxBitStateLen_; + this.subexpNames = subexpNames_; + this.prefix = prefix_; + this.prefixBytes = prefixBytes_; + this.prefixRune = prefixRune_; + this.prefixEnd = prefixEnd_; + this.mpool = mpool_; + this.matchcap = matchcap_; + this.prefixComplete = prefixComplete_; + this.cond = cond_; + this.minInputLen = minInputLen_; + this.longest = longest_; + }); + input = $newType(8, $kindInterface, "regexp.input", true, "regexp", false, null); + inputString = $newType(0, $kindStruct, "regexp.inputString", true, "regexp", false, function(str_) { + this.$val = this; + if (arguments.length === 0) { + this.str = ""; + return; + } + this.str = str_; + }); + inputBytes = $newType(0, $kindStruct, "regexp.inputBytes", true, "regexp", false, function(str_) { + this.$val = this; + if (arguments.length === 0) { + this.str = sliceType$4.nil; + return; + } + this.str = str_; + }); + inputReader = $newType(0, $kindStruct, "regexp.inputReader", true, "regexp", false, function(r_, atEOT_, pos_) { + this.$val = this; + if (arguments.length === 0) { + this.r = $ifaceNil; + this.atEOT = false; + this.pos = 0; + return; + } + this.r = r_; + this.atEOT = atEOT_; + this.pos = pos_; + }); + onePassProg = $newType(0, $kindStruct, "regexp.onePassProg", true, "regexp", false, function(Inst_, Start_, NumCap_) { + this.$val = this; + if (arguments.length === 0) { + this.Inst = sliceType$12.nil; + this.Start = 0; + this.NumCap = 0; + return; + } + this.Inst = Inst_; + this.Start = Start_; + this.NumCap = NumCap_; + }); + onePassInst = $newType(0, $kindStruct, "regexp.onePassInst", true, "regexp", false, function(Inst_, Next_) { + this.$val = this; + if (arguments.length === 0) { + this.Inst = new syntax.Inst.ptr(0, 0, 0, sliceType$1.nil); + this.Next = sliceType$2.nil; + return; + } + this.Inst = Inst_; + this.Next = Next_; + }); + queueOnePass = $newType(0, $kindStruct, "regexp.queueOnePass", true, "regexp", false, function(sparse_, dense_, size_, nextIndex_) { + this.$val = this; + if (arguments.length === 0) { + this.sparse = sliceType$2.nil; + this.dense = sliceType$2.nil; + this.size = 0; + this.nextIndex = 0; + return; + } + this.sparse = sparse_; + this.dense = dense_; + this.size = size_; + this.nextIndex = nextIndex_; + }); + runeSlice = $newType(12, $kindSlice, "regexp.runeSlice", true, "regexp", false, null); + queue = $newType(0, $kindStruct, "regexp.queue", true, "regexp", false, function(sparse_, dense_) { + this.$val = this; + if (arguments.length === 0) { + this.sparse = sliceType$2.nil; + this.dense = sliceType$5.nil; + return; + } + this.sparse = sparse_; + this.dense = dense_; + }); + entry = $newType(0, $kindStruct, "regexp.entry", true, "regexp", false, function(pc_, t_) { + this.$val = this; + if (arguments.length === 0) { + this.pc = 0; + this.t = ptrType$5.nil; + return; + } + this.pc = pc_; + this.t = t_; + }); + thread = $newType(0, $kindStruct, "regexp.thread", true, "regexp", false, function(inst_, cap_) { + this.$val = this; + if (arguments.length === 0) { + this.inst = ptrType$6.nil; + this.cap = sliceType$7.nil; + return; + } + this.inst = inst_; + this.cap = cap_; + }); + machine = $newType(0, $kindStruct, "regexp.machine", true, "regexp", false, function(re_, p_, q0_, q1_, pool_, matched_, matchcap_, inputs_) { + this.$val = this; + if (arguments.length === 0) { + this.re = ptrType.nil; + this.p = ptrType$1.nil; + this.q0 = new queue.ptr(sliceType$2.nil, sliceType$5.nil); + this.q1 = new queue.ptr(sliceType$2.nil, sliceType$5.nil); + this.pool = sliceType$6.nil; + this.matched = false; + this.matchcap = sliceType$7.nil; + this.inputs = new inputs.ptr(new inputBytes.ptr(sliceType$4.nil), new inputString.ptr(""), new inputReader.ptr($ifaceNil, false, 0)); + return; + } + this.re = re_; + this.p = p_; + this.q0 = q0_; + this.q1 = q1_; + this.pool = pool_; + this.matched = matched_; + this.matchcap = matchcap_; + this.inputs = inputs_; + }); + inputs = $newType(0, $kindStruct, "regexp.inputs", true, "regexp", false, function(bytes_, string_, reader_) { + this.$val = this; + if (arguments.length === 0) { + this.bytes = new inputBytes.ptr(sliceType$4.nil); + this.string = new inputString.ptr(""); + this.reader = new inputReader.ptr($ifaceNil, false, 0); + return; + } + this.bytes = bytes_; + this.string = string_; + this.reader = reader_; + }); + lazyFlag = $newType(8, $kindUint64, "regexp.lazyFlag", true, "regexp", false, null); + onePassMachine = $newType(0, $kindStruct, "regexp.onePassMachine", true, "regexp", false, function(inputs_, matchcap_) { + this.$val = this; + if (arguments.length === 0) { + this.inputs = new inputs.ptr(new inputBytes.ptr(sliceType$4.nil), new inputString.ptr(""), new inputReader.ptr($ifaceNil, false, 0)); + this.matchcap = sliceType$7.nil; + return; + } + this.inputs = inputs_; + this.matchcap = matchcap_; + }); + job = $newType(0, $kindStruct, "regexp.job", true, "regexp", false, function(pc_, arg_, pos_) { + this.$val = this; + if (arguments.length === 0) { + this.pc = 0; + this.arg = false; + this.pos = 0; + return; + } + this.pc = pc_; + this.arg = arg_; + this.pos = pos_; + }); + bitState = $newType(0, $kindStruct, "regexp.bitState", true, "regexp", false, function(end_, cap_, matchcap_, jobs_, visited_, inputs_) { + this.$val = this; + if (arguments.length === 0) { + this.end = 0; + this.cap = sliceType$7.nil; + this.matchcap = sliceType$7.nil; + this.jobs = sliceType$15.nil; + this.visited = sliceType$2.nil; + this.inputs = new inputs.ptr(new inputBytes.ptr(sliceType$4.nil), new inputString.ptr(""), new inputReader.ptr($ifaceNil, false, 0)); + return; + } + this.end = end_; + this.cap = cap_; + this.matchcap = matchcap_; + this.jobs = jobs_; + this.visited = visited_; + this.inputs = inputs_; + }); + $pkg.Regexp = Regexp; + $pkg.input = input; + $pkg.inputString = inputString; + $pkg.inputBytes = inputBytes; + $pkg.inputReader = inputReader; + $pkg.onePassProg = onePassProg; + $pkg.onePassInst = onePassInst; + $pkg.queueOnePass = queueOnePass; + $pkg.runeSlice = runeSlice; + $pkg.queue = queue; + $pkg.entry = entry; + $pkg.thread = thread; + $pkg.machine = machine; + $pkg.inputs = inputs; + $pkg.lazyFlag = lazyFlag; + $pkg.onePassMachine = onePassMachine; + $pkg.job = job; + $pkg.bitState = bitState; + $pkg.$finishSetup = function() { + sliceType = $sliceType($emptyInterface); + arrayType = $arrayType(nosync.Pool, 5); + arrayType$1 = $arrayType($Uint8, 16); + arrayType$2 = $arrayType($Int, 0); + sliceType$1 = $sliceType($Int32); + sliceType$2 = $sliceType($Uint32); + ptrType = $ptrType(Regexp); + ptrType$1 = $ptrType(syntax.Prog); + ptrType$2 = $ptrType(onePassProg); + sliceType$3 = $sliceType($String); + sliceType$4 = $sliceType($Uint8); + ptrType$3 = $ptrType(machine); + ptrType$4 = $ptrType(nosync.Pool); + sliceType$5 = $sliceType(entry); + ptrType$5 = $ptrType(thread); + sliceType$6 = $sliceType(ptrType$5); + sliceType$7 = $sliceType($Int); + arrayType$3 = $arrayType($Int, 2); + arrayType$4 = $arrayType($Int, 4); + sliceType$8 = $sliceType(sliceType$4); + sliceType$9 = $sliceType(sliceType$7); + sliceType$10 = $sliceType(sliceType$8); + sliceType$11 = $sliceType(sliceType$3); + ptrType$6 = $ptrType(syntax.Inst); + ptrType$7 = $ptrType(strings.Builder); + ptrType$8 = $ptrType(queueOnePass); + ptrType$9 = $ptrType($Int); + sliceType$12 = $sliceType(onePassInst); + ptrType$10 = $ptrType($Uint32); + sliceType$13 = $sliceType(sliceType$1); + ptrType$11 = $ptrType(onePassInst); + ptrType$12 = $ptrType(sliceType$1); + sliceType$14 = $sliceType($Bool); + ptrType$13 = $ptrType(lazyFlag); + ptrType$14 = $ptrType(entry); + ptrType$15 = $ptrType(onePassMachine); + ptrType$16 = $ptrType(bitState); + sliceType$15 = $sliceType(job); + funcType = $funcType([$String], [$String], false); + funcType$1 = $funcType([sliceType$4, sliceType$7], [sliceType$4], false); + funcType$2 = $funcType([sliceType$4], [sliceType$4], false); + funcType$3 = $funcType([sliceType$7], [], false); + ptrType$17 = $ptrType(inputString); + ptrType$18 = $ptrType(inputBytes); + ptrType$19 = $ptrType(inputReader); + ptrType$20 = $ptrType(queue); + ptrType$21 = $ptrType(inputs); + $ptrType(Regexp).prototype.String = function String() { + var re; + re = this; + return re.expr; }; - $ptrType(Checker).prototype.kindString = function kindString(typ$4) { - var {$24r, $24r$1, _r$1, _r$2, _r$3, _ref, check, typ$4, $s, $r, $c} = $restore(this, {typ$4}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = under(typ$4); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _ref = _r$1; - /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref, ptrType$28, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref, ptrType$29, true)[1]) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if ($assertType(_ref, ptrType$10, true)[1]) { */ case 2: - $s = -1; return "array"; - /* } else if ($assertType(_ref, ptrType$25, true)[1]) { */ case 3: - $s = -1; return "slice"; - /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 4: - $s = -1; return "struct"; - /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 5: - $s = -1; return "pointer"; - /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 6: - $s = -1; return "func"; - /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 7: - /* */ if (isTypeParam(typ$4)) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (isTypeParam(typ$4)) { */ case 12: - _r$2 = check.sprintf("type parameter %s", new sliceType$6([typ$4])); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 15; case 15: return $24r; - /* } */ case 13: - $s = -1; return "interface"; - /* } else if ($assertType(_ref, ptrType$28, true)[1]) { */ case 8: - $s = -1; return "map"; - /* } else if ($assertType(_ref, ptrType$29, true)[1]) { */ case 9: - $s = -1; return "chan"; - /* } else { */ case 10: - _r$3 = check.sprintf("%s", new sliceType$6([typ$4])); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r$1 = _r$3; - $s = 17; case 17: return $24r$1; - /* } */ case 11: - $s = -1; return ""; - /* */ } return; } var $f = {$blk: kindString, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _r$3, _ref, check, typ$4, $s};return $f; + $ptrType(Regexp).prototype.Copy = function Copy() { + var re, re2; + re = this; + re2 = $clone((re === ptrType.nil && $throwNilPointerError(), re), Regexp); + return re2; }; - $ptrType(Checker).prototype.shift = function shift(x, y, e, op$1) { - var {_entry, _key, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _v, _v$1, _v$2, _v$3, b, check, e, found, info, ok, op$1, opPos, s, x, xval, y, yval, $s, $r, $c} = $restore(this, {x, y, e, op$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - xval = $ifaceNil; - /* */ if (x.mode === 4) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (x.mode === 4) { */ case 1: - _r$1 = constant.ToInt(x.val); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - xval = _r$1; - /* } */ case 2: - _r$2 = allInteger(x.typ); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - if (_r$2) { _v = true; $s = 7; continue s; } - if (!(isUntyped(x.typ) && !($interfaceIsEqual(xval, $ifaceNil)))) { _v$1 = false; $s = 9; continue s; } - _r$3 = xval.Kind(); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _v$1 = _r$3 === 3; case 9: - _v = _v$1; case 7: - /* */ if (_v) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_v) { */ case 4: - $s = 6; continue; - /* } else { */ case 5: - $r = check.errorf(x, 57, "invalid operation: shifted operand %s must be integer", new sliceType$6([x])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - $s = -1; return; - /* } */ case 6: - yval = $ifaceNil; - /* */ if (y.mode === 4) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (y.mode === 4) { */ case 12: - _r$4 = constant.ToInt(y.val); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - yval = _r$4; - _r$5 = yval.Kind(); /* */ $s = 19; case 19: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - if (!(_r$5 === 3)) { _v$2 = false; $s = 18; continue s; } - _r$6 = constant.Sign(yval); /* */ $s = 20; case 20: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _v$2 = _r$6 < 0; case 18: - /* */ if (_v$2) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (_v$2) { */ case 16: - $r = check.errorf(y, 56, "invalid operation: negative shift count %s", new sliceType$6([y])); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - $s = -1; return; - /* } */ case 17: - /* */ if (isUntyped(y.typ)) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if (isUntyped(y.typ)) { */ case 22: - $r = check.representable(y, (7 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 7])); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (y.mode === 0) { - x.mode = 0; - $s = -1; return; - } - /* } */ case 23: - $s = 14; continue; - /* } else { */ case 13: - _r$7 = allInteger(y.typ); /* */ $s = 30; case 30: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - /* */ if (_r$7) { $s = 26; continue; } - /* */ if (isUntyped(y.typ)) { $s = 27; continue; } - /* */ $s = 28; continue; - /* if (_r$7) { */ case 26: - _r$8 = allUnsigned(y.typ); /* */ $s = 33; case 33: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - /* */ if (!_r$8 && !check.allowVersion(check.pkg, 1, 13)) { $s = 31; continue; } - /* */ $s = 32; continue; - /* if (!_r$8 && !check.allowVersion(check.pkg, 1, 13)) { */ case 31: - $r = check.errorf(y, 135, "invalid operation: signed shift count %s requires go1.13 or later", new sliceType$6([y])); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - $s = -1; return; - /* } */ case 32: - $s = 29; continue; - /* } else if (isUntyped(y.typ)) { */ case 27: - $r = check.convertUntyped(y, (7 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 7])); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (y.mode === 0) { - x.mode = 0; - $s = -1; return; - } - $s = 29; continue; - /* } else { */ case 28: - $r = check.errorf(y, 56, "invalid operation: shift count %s must be integer", new sliceType$6([y])); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - $s = -1; return; - /* } */ case 29: - case 25: - /* } */ case 14: - /* */ if (x.mode === 4) { $s = 37; continue; } - /* */ $s = 38; continue; - /* if (x.mode === 4) { */ case 37: - /* */ if (y.mode === 4) { $s = 39; continue; } - /* */ $s = 40; continue; - /* if (y.mode === 4) { */ case 39: - _r$9 = x.val.Kind(); /* */ $s = 44; case 44: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - if (_r$9 === 0) { _v$3 = true; $s = 43; continue s; } - _r$10 = y.val.Kind(); /* */ $s = 45; case 45: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _v$3 = _r$10 === 0; case 43: - /* */ if (_v$3) { $s = 41; continue; } - /* */ $s = 42; continue; - /* if (_v$3) { */ case 41: - x.val = constant.MakeUnknown(); - _r$11 = isInteger(x.typ); /* */ $s = 48; case 48: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - /* */ if (!_r$11) { $s = 46; continue; } - /* */ $s = 47; continue; - /* if (!_r$11) { */ case 46: - x.typ = (20 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 20]); - /* } */ case 47: - $s = -1; return; - /* } */ case 42: - _r$12 = constant.Uint64Val(yval); /* */ $s = 49; case 49: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _tuple = _r$12; - s = _tuple[0]; - ok = _tuple[1]; - /* */ if (!ok || (s.$high > 0 || (s.$high === 0 && s.$low > 1074))) { $s = 50; continue; } - /* */ $s = 51; continue; - /* if (!ok || (s.$high > 0 || (s.$high === 0 && s.$low > 1074))) { */ case 50: - $r = check.errorf(y, 56, "invalid operation: invalid shift count %s", new sliceType$6([y])); /* */ $s = 52; case 52: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - $s = -1; return; - /* } */ case 51: - _r$13 = isInteger(x.typ); /* */ $s = 55; case 55: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - /* */ if (!_r$13) { $s = 53; continue; } - /* */ $s = 54; continue; - /* if (!_r$13) { */ case 53: - x.typ = (20 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 20]); - /* } */ case 54: - _r$14 = constant.Shift(xval, op$1, ((s.$low >>> 0))); /* */ $s = 56; case 56: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - x.val = _r$14; - x.expr = e; - _r$15 = x.Pos(); /* */ $s = 57; case 57: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - opPos = _r$15; - _tuple$1 = $assertType(e, ptrType$21, true); - b = _tuple$1[0]; - if (!(b === ptrType$21.nil)) { - opPos = b.OpPos; - } - $r = check.overflow(x, opPos); /* */ $s = 58; case 58: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 40: - if (isUntyped(x.typ)) { - _tuple$2 = (_entry = $mapIndex(check.untyped,ast.Expr.keyFor(x.expr)), _entry !== undefined ? [_entry.v, true] : [new exprInfo.ptr(false, 0, ptrType$4.nil, $ifaceNil), false]); - info = $clone(_tuple$2[0], exprInfo); - found = _tuple$2[1]; - if (found) { - info.isLhs = true; - _key = x.expr; (check.untyped || $throwRuntimeError("assignment to entry in nil map")).set(ast.Expr.keyFor(_key), { k: _key, v: $clone(info, exprInfo) }); - } - x.mode = 7; - $s = -1; return; - } - /* } */ case 38: - _r$16 = allInteger(x.typ); /* */ $s = 61; case 61: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - /* */ if (!_r$16) { $s = 59; continue; } - /* */ $s = 60; continue; - /* if (!_r$16) { */ case 59: - $r = check.errorf(x, 57, "invalid operation: shifted operand %s must be integer", new sliceType$6([x])); /* */ $s = 62; case 62: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - $s = -1; return; - /* } */ case 60: - x.mode = 7; - $s = -1; return; - /* */ } return; } var $f = {$blk: shift, $c: true, $r, _entry, _key, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _v, _v$1, _v$2, _v$3, b, check, e, found, info, ok, op$1, opPos, s, x, xval, y, yval, $s};return $f; + Compile = function Compile$1(expr) { + var {$24r, _r, expr, $s, $r, $c} = $restore(this, {expr}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = compile(expr, 212, false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Compile$1, $c: true, $r, $24r, _r, expr, $s};return $f; }; - init$2 = function init$6() { - binaryOpPredicates = $makeMap(token.Token.keyFor, [{ k: 12, v: allNumericOrString }, { k: 13, v: allNumeric }, { k: 14, v: allNumeric }, { k: 15, v: allNumeric }, { k: 16, v: allInteger }, { k: 17, v: allInteger }, { k: 18, v: allInteger }, { k: 19, v: allInteger }, { k: 22, v: allInteger }, { k: 34, v: allBoolean }, { k: 35, v: allBoolean }]); + $pkg.Compile = Compile; + $ptrType(Regexp).prototype.Longest = function Longest() { + var re; + re = this; + re.longest = true; }; - $ptrType(Checker).prototype.binary = function binary(x, e, lhs, rhs, op$1, opPos) { - var {_r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$2, _tmp$3, _v, _v$1, _v$2, _v$3, _v$4, _v$5, check, e, im, im2, lhs, mayConvert, op$1, opPos, posn, re, re2, rhs, x, y, $s, $r, $c} = $restore(this, {x, e, lhs, rhs, op$1, opPos}); + compile = function compile$1(expr, mode, longest) { + var {_r, _r$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, capNames, err, expr, i, longest, matchcap, maxCap, mode, n, prog, re, regexp, $s, $r, $c} = $restore(this, {expr, mode, longest}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - y = [y]; - check = this; - y[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = check.expr(x, lhs); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.expr(y[0], rhs); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x.mode === 0) { - $s = -1; return; + _r = syntax.Parse(expr, mode); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + re = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [ptrType.nil, err]; } - if (y[0].mode === 0) { - x.mode = 0; - x.expr = y[0].expr; - $s = -1; return; + maxCap = re.MaxCap(); + capNames = re.CapNames(); + re = re.Simplify(); + _tuple$1 = syntax.Compile(re); + prog = _tuple$1[0]; + err = _tuple$1[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [ptrType.nil, err]; } - /* */ if (isShift(op$1)) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (isShift(op$1)) { */ case 3: - $r = check.shift(x, y[0], e, op$1); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 4: - mayConvert = (function(y) { return function Checker·binary·func1(x$1, y$1) { - var {$24r, $24r$1, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _v, _v$1, x$1, y$1, $s, $r, $c} = $restore(this, {x$1, y$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (isTyped(x$1.typ) && isTyped(y$1.typ)) { - $s = -1; return false; - } - _r$1 = isNonTypeParamInterface(x$1.typ); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - if (_r$1) { _v = true; $s = 3; continue s; } - _r$2 = isNonTypeParamInterface(y$1.typ); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _v = _r$2; case 3: - /* */ if (_v) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (_v) { */ case 1: - $s = -1; return true; - /* } */ case 2: - _r$3 = allBoolean(x$1.typ); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$4 = allBoolean(y$1.typ); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if (!(_r$3 === _r$4)) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (!(_r$3 === _r$4)) { */ case 6: - $s = -1; return false; - /* } */ case 7: - _r$5 = allString(x$1.typ); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$6 = allString(y$1.typ); /* */ $s = 13; case 13: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - /* */ if (!(_r$5 === _r$6)) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (!(_r$5 === _r$6)) { */ case 10: - $s = -1; return false; - /* } */ case 11: - /* */ if (x$1.isNil()) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (x$1.isNil()) { */ case 14: - _r$7 = hasNil(y$1.typ); /* */ $s = 16; case 16: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - $24r = _r$7; - $s = 17; case 17: return $24r; - /* } */ case 15: - /* */ if (y$1.isNil()) { $s = 18; continue; } - /* */ $s = 19; continue; - /* if (y$1.isNil()) { */ case 18: - _r$8 = hasNil(x$1.typ); /* */ $s = 20; case 20: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - $24r$1 = _r$8; - $s = 21; case 21: return $24r$1; - /* } */ case 19: - _r$9 = isPointer(x$1.typ); /* */ $s = 25; case 25: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - if (_r$9) { _v$1 = true; $s = 24; continue s; } - _r$10 = isPointer(y$1.typ); /* */ $s = 26; case 26: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _v$1 = _r$10; case 24: - /* */ if (_v$1) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if (_v$1) { */ case 22: - $s = -1; return false; - /* } */ case 23: - $s = -1; return true; - /* */ } return; } var $f = {$blk: Checker·binary·func1, $c: true, $r, $24r, $24r$1, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _v, _v$1, x$1, y$1, $s};return $f; - }; })(y); - _r$1 = mayConvert(x, y[0]); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (_r$1) { */ case 6: - $r = check.convertUntyped(x, y[0].typ); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x.mode === 0) { - $s = -1; return; - } - $r = check.convertUntyped(y[0], x.typ); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (y[0].mode === 0) { - x.mode = 0; - $s = -1; return; - } - /* } */ case 7: - /* */ if (isComparison(op$1)) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (isComparison(op$1)) { */ case 11: - $r = check.comparison(x, y[0], op$1, false); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 12: - _r$2 = Identical(x.typ, y[0].typ); /* */ $s = 16; case 16: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (!_r$2) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (!_r$2) { */ case 14: - /* */ if (!($interfaceIsEqual(x.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) && !($interfaceIsEqual(y[0].typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (!($interfaceIsEqual(x.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) && !($interfaceIsEqual(y[0].typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { */ case 17: - posn = x; - if (!($interfaceIsEqual(e, $ifaceNil))) { - posn = e; - } - /* */ if (!($interfaceIsEqual(e, $ifaceNil))) { $s = 19; continue; } - /* */ $s = 20; continue; - /* if (!($interfaceIsEqual(e, $ifaceNil))) { */ case 19: - $r = check.errorf(posn, 46, "invalid operation: %s (mismatched types %s and %s)", new sliceType$6([e, x.typ, y[0].typ])); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 21; continue; - /* } else { */ case 20: - $r = check.errorf(posn, 46, "invalid operation: %s %s= %s (mismatched types %s and %s)", new sliceType$6([lhs, new token.Token(op$1), rhs, x.typ, y[0].typ])); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 21: - /* } */ case 18: - x.mode = 0; - $s = -1; return; - /* } */ case 15: - _r$3 = check.op(binaryOpPredicates, x, op$1); /* */ $s = 26; case 26: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (!_r$3) { $s = 24; continue; } - /* */ $s = 25; continue; - /* if (!_r$3) { */ case 24: - x.mode = 0; - $s = -1; return; - /* } */ case 25: - /* */ if ((op$1 === 15) || (op$1 === 16)) { $s = 27; continue; } - /* */ $s = 28; continue; - /* if ((op$1 === 15) || (op$1 === 16)) { */ case 27: - if (x.mode === 4) { _v$1 = true; $s = 32; continue s; } - _r$4 = allInteger(x.typ); /* */ $s = 33; case 33: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _v$1 = _r$4; case 32: - if (!((_v$1) && (y[0].mode === 4))) { _v = false; $s = 31; continue s; } - _r$5 = constant.Sign(y[0].val); /* */ $s = 34; case 34: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _v = _r$5 === 0; case 31: - /* */ if (_v) { $s = 29; continue; } - /* */ $s = 30; continue; - /* if (_v) { */ case 29: - $r = check.error(y[0], 47, "invalid operation: division by zero"); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - $s = -1; return; - /* } */ case 30: - if (!((x.mode === 4) && (y[0].mode === 4))) { _v$2 = false; $s = 38; continue s; } - _r$6 = isComplex(x.typ); /* */ $s = 39; case 39: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _v$2 = _r$6; case 38: - /* */ if (_v$2) { $s = 36; continue; } - /* */ $s = 37; continue; - /* if (_v$2) { */ case 36: - _r$7 = constant.Real(y[0].val); /* */ $s = 40; case 40: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _tmp = _r$7; - _r$8 = constant.Imag(y[0].val); /* */ $s = 41; case 41: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _tmp$1 = _r$8; - re = _tmp; - im = _tmp$1; - _r$9 = constant.BinaryOp(re, 14, re); /* */ $s = 42; case 42: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _tmp$2 = _r$9; - _r$10 = constant.BinaryOp(im, 14, im); /* */ $s = 43; case 43: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _tmp$3 = _r$10; - re2 = _tmp$2; - im2 = _tmp$3; - _r$11 = constant.Sign(re2); /* */ $s = 47; case 47: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - if (!(_r$11 === 0)) { _v$3 = false; $s = 46; continue s; } - _r$12 = constant.Sign(im2); /* */ $s = 48; case 48: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _v$3 = _r$12 === 0; case 46: - /* */ if (_v$3) { $s = 44; continue; } - /* */ $s = 45; continue; - /* if (_v$3) { */ case 44: - $r = check.error(y[0], 47, "invalid operation: division by zero"); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - $s = -1; return; - /* } */ case 45: - /* } */ case 37: - /* } */ case 28: - /* */ if ((x.mode === 4) && (y[0].mode === 4)) { $s = 50; continue; } - /* */ $s = 51; continue; - /* if ((x.mode === 4) && (y[0].mode === 4)) { */ case 50: - _r$13 = x.val.Kind(); /* */ $s = 55; case 55: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - if (_r$13 === 0) { _v$4 = true; $s = 54; continue s; } - _r$14 = y[0].val.Kind(); /* */ $s = 56; case 56: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - _v$4 = _r$14 === 0; case 54: - /* */ if (_v$4) { $s = 52; continue; } - /* */ $s = 53; continue; - /* if (_v$4) { */ case 52: - x.val = constant.MakeUnknown(); - $s = -1; return; - /* } */ case 53: - if (!(op$1 === 15)) { _v$5 = false; $s = 59; continue s; } - _r$15 = isInteger(x.typ); /* */ $s = 60; case 60: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - _v$5 = _r$15; case 59: - /* */ if (_v$5) { $s = 57; continue; } - /* */ $s = 58; continue; - /* if (_v$5) { */ case 57: - op$1 = 26; - /* } */ case 58: - _r$16 = constant.BinaryOp(x.val, op$1, y[0].val); /* */ $s = 61; case 61: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - x.val = _r$16; - x.expr = e; - $r = check.overflow(x, opPos); /* */ $s = 62; case 62: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 51: - x.mode = 7; - $s = -1; return; - /* */ } return; } var $f = {$blk: binary, $c: true, $r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$2, _tmp$3, _v, _v$1, _v$2, _v$3, _v$4, _v$5, check, e, im, im2, lhs, mayConvert, op$1, opPos, posn, re, re2, rhs, x, y, $s};return $f; - }; - $ptrType(Checker).prototype.rawExpr = function rawExpr(x, e, hint, allowGeneric) { - var {$24r, _r$1, _r$2, allowGeneric, check, e, hint, kind, x, $s, $deferred, $r, $c} = $restore(this, {x, e, hint, allowGeneric}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - check = [check]; - e = [e]; - x = [x]; - check[0] = this; - /* */ if (false) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (false) { */ case 1: - _r$1 = e[0].Pos(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $r = check[0].trace(_r$1, "-- expr %s", new sliceType$6([e[0]])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - check[0].indent = check[0].indent + (1) >> 0; - $deferred.push([(function(check, e, x) { return function Checker·rawExpr·func1() { - var {_r$2, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check[0].indent = check[0].indent - (1) >> 0; - _r$2 = e[0].Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $r = check[0].trace(_r$2, "=> %s", new sliceType$6([x[0]])); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·rawExpr·func1, $c: true, $r, _r$2, $s};return $f; - }; })(check, e, x), []]); - /* } */ case 2: - _r$2 = check[0].exprInternal(x[0], e[0], hint); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - kind = _r$2; - /* */ if (!allowGeneric) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (!allowGeneric) { */ case 6: - $r = check[0].nonGeneric(x[0]); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 7: - $r = check[0].record(x[0]); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $24r = kind; - $s = 10; case 10: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return 0; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: rawExpr, $c: true, $r, $24r, _r$1, _r$2, allowGeneric, check, e, hint, kind, x, $s, $deferred};return $f; } } + matchcap = prog.NumCap; + if (matchcap < 2) { + matchcap = 2; + } + _r$1 = compileOnePass(prog); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + regexp = new Regexp.ptr(expr, prog, _r$1, maxCap, 0, capNames, "", sliceType$4.nil, 0, 0, 0, matchcap, false, prog.StartCond(), minInputLen(re), longest); + if (regexp.onepass === ptrType$2.nil) { + _tuple$2 = prog.Prefix(); + regexp.prefix = _tuple$2[0]; + regexp.prefixComplete = _tuple$2[1]; + regexp.maxBitStateLen = maxBitStateLen(prog); + } else { + _tuple$3 = onePassPrefix(prog); + regexp.prefix = _tuple$3[0]; + regexp.prefixComplete = _tuple$3[1]; + regexp.prefixEnd = _tuple$3[2]; + } + if (!(regexp.prefix === "")) { + regexp.prefixBytes = (new sliceType$4($stringToBytes(regexp.prefix))); + _tuple$4 = utf8.DecodeRuneInString(regexp.prefix); + regexp.prefixRune = _tuple$4[0]; + } + n = prog.Inst.$length; + i = 0; + while (true) { + if (!(!((((i < 0 || i >= matchSize.length) ? ($throwRuntimeError("index out of range"), undefined) : matchSize[i]) === 0)) && ((i < 0 || i >= matchSize.length) ? ($throwRuntimeError("index out of range"), undefined) : matchSize[i]) < n)) { break; } + i = i + (1) >> 0; + } + regexp.mpool = i; + $s = -1; return [regexp, $ifaceNil]; + /* */ } return; } var $f = {$blk: compile$1, $c: true, $r, _r, _r$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, capNames, err, expr, i, longest, matchcap, maxCap, mode, n, prog, re, regexp, $s};return $f; }; - $ptrType(Checker).prototype.nonGeneric = function nonGeneric(x) { - var {_r$1, _ref, check, t, t$1, what, x, $s, $r, $c} = $restore(this, {x}); + $ptrType(Regexp).prototype.get = function get() { + var {_i, _r, _ref, _tuple, m, n, ok, re, t, x, x$1, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - if ((x.mode === 0) || (x.mode === 1)) { - $s = -1; return; + re = this; + _r = (x = re.mpool, ((x < 0 || x >= matchPool.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(matchPool, x, ptrType$4))).Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = $assertType(_r, ptrType$3, true); + m = _tuple[0]; + ok = _tuple[1]; + if (!ok) { + m = new machine.ptr(ptrType.nil, ptrType$1.nil, new queue.ptr(sliceType$2.nil, sliceType$5.nil), new queue.ptr(sliceType$2.nil, sliceType$5.nil), sliceType$6.nil, false, sliceType$7.nil, new inputs.ptr(new inputBytes.ptr(sliceType$4.nil), new inputString.ptr(""), new inputReader.ptr($ifaceNil, false, 0))); } - what = ""; - _ref = x.typ; - /* */ if ($assertType(_ref, ptrType$9, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if ($assertType(_ref, ptrType$9, true)[1]) { */ case 1: - t = _ref.$val; - _r$1 = isGeneric(t); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_r$1) { */ case 4: - what = "type"; - /* } */ case 5: - $s = 3; continue; - /* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 2: - t$1 = _ref.$val; - if (!(t$1.tparams === ptrType$48.nil)) { - what = "function"; + m.re = re; + m.p = re.prog; + if (m.matchcap.$capacity < re.matchcap) { + m.matchcap = $makeSlice(sliceType$7, re.matchcap); + _ref = m.pool; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + t.cap = $makeSlice(sliceType$7, re.matchcap); + _i++; } - /* } */ case 3: - /* */ if (!(what === "")) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (!(what === "")) { */ case 7: - $r = check.errorf(x.expr, 137, "cannot use generic %s %s without instantiation", new sliceType$6([new $String(what), x.expr])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - x.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - /* } */ case 8: - $s = -1; return; - /* */ } return; } var $f = {$blk: nonGeneric, $c: true, $r, _r$1, _ref, check, t, t$1, what, x, $s};return $f; + } + n = (x$1 = re.mpool, ((x$1 < 0 || x$1 >= matchSize.length) ? ($throwRuntimeError("index out of range"), undefined) : matchSize[x$1])); + if (n === 0) { + n = re.prog.Inst.$length; + } + if (m.q0.sparse.$length < n) { + queue.copy(m.q0, new queue.ptr($makeSlice(sliceType$2, n), $makeSlice(sliceType$5, 0, n))); + queue.copy(m.q1, new queue.ptr($makeSlice(sliceType$2, n), $makeSlice(sliceType$5, 0, n))); + } + $s = -1; return m; + /* */ } return; } var $f = {$blk: get, $c: true, $r, _i, _r, _ref, _tuple, m, n, ok, re, t, x, x$1, $s};return $f; }; - $ptrType(Checker).prototype.exprInternal = function exprInternal(x, e, hint) { - var {$24r, T, _1, _2, _arg, _arg$1, _entry, _entry$1, _entry$2, _i, _i$1, _i$2, _i$3, _i$4, _key, _key$1, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, atyp, base, base$1, check, decl$1, duplicate, e, e$1, e$10, e$11, e$12, e$13, e$14, e$15, e$16, e$17, e$18, e$19, e$2, e$20, e$21, e$22, e$3, e$4, e$5, e$6, e$7, e$8, e$9, ellip, etyp, etyp$1, fields, fld, fld$1, hint, i, i$1, iota, ix, key, keyIsInterface, kind, kv, kv$1, kv$2, kv$3, n, ok, ok$1, ok$2, sig, typ$4, utyp, utyp$1, utyp$2, utyp$3, utyp$4, visited, visited$1, vtyp, x, x$1, x$2, x$3, x$4, x$5, xkey, $s, $r, $c} = $restore(this, {x, e, hint}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - base = [base]; - check = [check]; - decl$1 = [decl$1]; - e$1 = [e$1]; - iota = [iota]; - sig = [sig]; - x = [x]; - check[0] = this; - x[0].mode = 0; - x[0].typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - _ref = e; - /* */ if ($assertType(_ref, ptrType$35, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$30, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$41, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$57, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$98, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$99, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType$39, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref, ptrType$36, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref, ptrType$37, true)[1] || $assertType(_ref, ptrType$38, true)[1]) { $s = 9; continue; } - /* */ if ($assertType(_ref, ptrType$100, true)[1]) { $s = 10; continue; } - /* */ if ($assertType(_ref, ptrType$82, true)[1]) { $s = 11; continue; } - /* */ if ($assertType(_ref, ptrType$86, true)[1]) { $s = 12; continue; } - /* */ if ($assertType(_ref, ptrType$43, true)[1]) { $s = 13; continue; } - /* */ if ($assertType(_ref, ptrType$20, true)[1]) { $s = 14; continue; } - /* */ if ($assertType(_ref, ptrType$21, true)[1]) { $s = 15; continue; } - /* */ if ($assertType(_ref, ptrType$97, true)[1]) { $s = 16; continue; } - /* */ if ($assertType(_ref, ptrType$40, true)[1] || $assertType(_ref, ptrType$42, true)[1] || $assertType(_ref, ptrType$44, true)[1] || $assertType(_ref, ptrType$45, true)[1] || $assertType(_ref, ptrType$46, true)[1] || $assertType(_ref, ptrType$47, true)[1]) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if ($assertType(_ref, ptrType$35, true)[1]) { */ case 1: - e$2 = _ref.$val; - /* goto Error */ $s = 20; continue; - $s = 19; continue; - /* } else if ($assertType(_ref, ptrType$30, true)[1]) { */ case 2: - e$3 = _ref.$val; - $r = check[0].ident(x[0], e$3, ptrType$9.nil, false); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 19; continue; - /* } else if ($assertType(_ref, ptrType$41, true)[1]) { */ case 3: - e$4 = _ref.$val; - $r = check[0].error(e$4, 77, "invalid use of '...'"); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 20; continue; - $s = 19; continue; - /* } else if ($assertType(_ref, ptrType$57, true)[1]) { */ case 4: - e$5 = _ref.$val; - _1 = e$5.Kind; - /* */ if ((_1 === (5)) || (_1 === (6)) || (_1 === (7))) { $s = 24; continue; } - /* */ $s = 25; continue; - /* if ((_1 === (5)) || (_1 === (6)) || (_1 === (7))) { */ case 24: - $r = check[0].langCompat(e$5); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (e$5.Value.length > 10000) { $s = 27; continue; } - /* */ $s = 28; continue; - /* if (e$5.Value.length > 10000) { */ case 27: - $r = check[0].errorf(e$5, 14, "excessively long constant: %s... (%d chars)", new sliceType$6([new $String($substring(e$5.Value, 0, 10)), new $Int(e$5.Value.length)])); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 20; continue; - /* } */ case 28: - /* } */ case 25: - case 23: - $r = x[0].setConst(e$5.Kind, e$5.Value); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (x[0].mode === 0) { $s = 31; continue; } - /* */ $s = 32; continue; - /* if (x[0].mode === 0) { */ case 31: - $r = check[0].errorf(e$5, 14, "malformed constant: %s", new sliceType$6([new $String(e$5.Value)])); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 20; continue; - /* } */ case 32: - $r = check[0].overflow(x[0], e$5.Pos()); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 19; continue; - /* } else if ($assertType(_ref, ptrType$98, true)[1]) { */ case 5: - e$1[0] = _ref.$val; - _r$1 = check[0].typ(e$1[0].Type); /* */ $s = 35; case 35: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = $assertType(_r$1, ptrType$27, true); - sig[0] = _tuple[0]; - ok = _tuple[1]; - /* */ if (ok) { $s = 36; continue; } - /* */ $s = 37; continue; - /* if (ok) { */ case 36: - if (!check[0].conf.IgnoreFuncBodies && !(e$1[0].Body === ptrType$74.nil)) { - decl$1[0] = check[0].environment.decl; - iota[0] = check[0].environment.iota; - check[0].later((function(base, check, decl$1, e$1, iota, sig, x) { return function Checker·exprInternal·func1() { - var {$s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = check[0].funcBody(decl$1[0], "", sig[0], e$1[0].Body, iota[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·exprInternal·func1, $c: true, $r, $s};return $f; - }; })(base, check, decl$1, e$1, iota, sig, x)).describef(e$1[0], "func literal", sliceType$6.nil); - } - x[0].mode = 7; - x[0].typ = sig[0]; - $s = 38; continue; - /* } else { */ case 37: - $r = check[0].errorf(e$1[0], -1, "invalid function literal %s", new sliceType$6([e$1[0]])); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 20; continue; - /* } */ case 38: - $s = 19; continue; - /* } else if ($assertType(_ref, ptrType$99, true)[1]) { */ case 6: - e$6 = _ref.$val; - _tmp = $ifaceNil; - _tmp$1 = $ifaceNil; - typ$4 = _tmp; - base$1 = _tmp$1; - /* */ if (!($interfaceIsEqual(e$6.Type, $ifaceNil))) { $s = 41; continue; } - /* */ if (!($interfaceIsEqual(hint, $ifaceNil))) { $s = 42; continue; } - /* */ $s = 43; continue; - /* if (!($interfaceIsEqual(e$6.Type, $ifaceNil))) { */ case 41: - _tuple$1 = $assertType(e$6.Type, ptrType$40, true); - atyp = _tuple$1[0]; - /* */ if (!(atyp === ptrType$40.nil) && !($interfaceIsEqual(atyp.Len, $ifaceNil))) { $s = 45; continue; } - /* */ $s = 46; continue; - /* if (!(atyp === ptrType$40.nil) && !($interfaceIsEqual(atyp.Len, $ifaceNil))) { */ case 45: - _tuple$2 = $assertType(atyp.Len, ptrType$41, true); - ellip = _tuple$2[0]; - /* */ if (!(ellip === ptrType$41.nil) && $interfaceIsEqual(ellip.Elt, $ifaceNil)) { $s = 47; continue; } - /* */ $s = 48; continue; - /* if (!(ellip === ptrType$41.nil) && $interfaceIsEqual(ellip.Elt, $ifaceNil)) { */ case 47: - _r$2 = check[0].varType(atyp.Elt); /* */ $s = 49; case 49: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - typ$4 = new Array.ptr(new $Int64(-1, 4294967295), _r$2); - base$1 = typ$4; - /* break; */ $s = 40; continue; - /* } */ case 48: - /* } */ case 46: - _r$3 = check[0].typ(e$6.Type); /* */ $s = 50; case 50: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - typ$4 = _r$3; - base$1 = typ$4; - $s = 44; continue; - /* } else if (!($interfaceIsEqual(hint, $ifaceNil))) { */ case 42: - typ$4 = hint; - _r$4 = coreType(typ$4); /* */ $s = 51; case 51: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$5 = deref(_r$4); /* */ $s = 52; case 52: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _tuple$3 = _r$5; - base$1 = _tuple$3[0]; - /* */ if ($interfaceIsEqual(base$1, $ifaceNil)) { $s = 53; continue; } - /* */ $s = 54; continue; - /* if ($interfaceIsEqual(base$1, $ifaceNil)) { */ case 53: - $r = check[0].errorf(e$6, 71, "invalid composite literal element type %s (no core type)", new sliceType$6([typ$4])); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 20; continue; - /* } */ case 54: - $s = 44; continue; - /* } else { */ case 43: - $r = check[0].error(e$6, 70, "missing type in composite literal"); /* */ $s = 56; case 56: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 20; continue; - /* } */ case 44: - case 40: - _r$6 = coreType(base$1); /* */ $s = 57; case 57: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _ref$1 = _r$6; - /* */ if ($assertType(_ref$1, ptrType$11, true)[1]) { $s = 58; continue; } - /* */ if ($assertType(_ref$1, ptrType$10, true)[1]) { $s = 59; continue; } - /* */ if ($assertType(_ref$1, ptrType$25, true)[1]) { $s = 60; continue; } - /* */ if ($assertType(_ref$1, ptrType$28, true)[1]) { $s = 61; continue; } - /* */ $s = 62; continue; - /* switch (0) { default: if ($assertType(_ref$1, ptrType$11, true)[1]) { */ case 58: - utyp = _ref$1.$val; - /* */ if (utyp.fields === sliceType$10.nil) { $s = 64; continue; } - /* */ $s = 65; continue; - /* if (utyp.fields === sliceType$10.nil) { */ case 64: - $r = check[0].error(e$6, 12, "invalid recursive type"); /* */ $s = 66; case 66: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 20; continue; - /* } */ case 65: - if (e$6.Elts.$length === 0) { - /* break; */ $s = 63; continue; + $ptrType(Regexp).prototype.put = function put(m) { + var m, re, x; + re = this; + m.re = ptrType.nil; + m.p = ptrType$1.nil; + m.inputs.clear(); + (x = re.mpool, ((x < 0 || x >= matchPool.length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(matchPool, x, ptrType$4))).Put(m); + }; + minInputLen = function minInputLen$1(re) { + var _1, _i, _i$1, _i$2, _ref, _ref$1, _ref$2, l, l$1, l$2, lnext, r, re, sub, sub$1, x, x$1, x$2; + _1 = re.Op; + if ((_1 === (6)) || (_1 === (5)) || (_1 === (4))) { + return 1; + } else if (_1 === (3)) { + l = 0; + _ref = re.Rune; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + r = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (r === 65533) { + l = l + (1) >> 0; + } else { + l = l + (utf8.RuneLen(r)) >> 0; } - fields = utyp.fields; - _tuple$4 = $assertType((x$1 = e$6.Elts, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])), ptrType$97, true); - ok$1 = _tuple$4[1]; - /* */ if (ok$1) { $s = 67; continue; } - /* */ $s = 68; continue; - /* if (ok$1) { */ case 67: - visited = $makeSlice(sliceType$15, fields.$length); - _ref$2 = e$6.Elts; - _i = 0; - /* while (true) { */ case 70: - /* if (!(_i < _ref$2.$length)) { break; } */ if(!(_i < _ref$2.$length)) { $s = 71; continue; } - e$19 = ((_i < 0 || _i >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i]); - _tuple$5 = $assertType(e$19, ptrType$97, true); - kv = _tuple$5[0]; - /* */ if (kv === ptrType$97.nil) { $s = 72; continue; } - /* */ $s = 73; continue; - /* if (kv === ptrType$97.nil) { */ case 72: - $r = check[0].error(e$19, 64, "mixture of field:value and value elements in struct literal"); /* */ $s = 74; case 74: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - /* continue; */ $s = 70; continue; - /* } */ case 73: - _tuple$6 = $assertType(kv.Key, ptrType$30, true); - key = _tuple$6[0]; - $r = check[0].expr(x[0], kv.Value); /* */ $s = 75; case 75: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (key === ptrType$30.nil) { $s = 76; continue; } - /* */ $s = 77; continue; - /* if (key === ptrType$30.nil) { */ case 76: - $r = check[0].errorf(kv, 69, "invalid field name %s in struct literal", new sliceType$6([kv.Key])); /* */ $s = 78; case 78: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - /* continue; */ $s = 70; continue; - /* } */ case 77: - i = fieldIndex(utyp.fields, check[0].pkg, key.Name); - /* */ if (i < 0) { $s = 79; continue; } - /* */ $s = 80; continue; - /* if (i < 0) { */ case 79: - $r = check[0].errorf(kv, 66, "unknown field %s in struct literal of type %s", new sliceType$6([new $String(key.Name), base$1])); /* */ $s = 81; case 81: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - /* continue; */ $s = 70; continue; - /* } */ case 80: - fld = ((i < 0 || i >= fields.$length) ? ($throwRuntimeError("index out of range"), undefined) : fields.$array[fields.$offset + i]); - $r = check[0].recordUse(key, fld); /* */ $s = 82; case 82: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - etyp = fld.object.typ; - $r = check[0].assignment(x[0], etyp, "struct literal"); /* */ $s = 83; case 83: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (((i < 0 || i >= visited.$length) ? ($throwRuntimeError("index out of range"), undefined) : visited.$array[visited.$offset + i])) { $s = 84; continue; } - /* */ $s = 85; continue; - /* if (((i < 0 || i >= visited.$length) ? ($throwRuntimeError("index out of range"), undefined) : visited.$array[visited.$offset + i])) { */ case 84: - $r = check[0].errorf(kv, 67, "duplicate field name %s in struct literal", new sliceType$6([new $String(key.Name)])); /* */ $s = 86; case 86: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - /* continue; */ $s = 70; continue; - /* } */ case 85: - ((i < 0 || i >= visited.$length) ? ($throwRuntimeError("index out of range"), undefined) : visited.$array[visited.$offset + i] = true); - _i++; - $s = 70; continue; - case 71: - $s = 69; continue; - /* } else { */ case 68: - _ref$3 = e$6.Elts; - _i$1 = 0; - /* while (true) { */ case 87: - /* if (!(_i$1 < _ref$3.$length)) { break; } */ if(!(_i$1 < _ref$3.$length)) { $s = 88; continue; } - i$1 = _i$1; - e$20 = ((_i$1 < 0 || _i$1 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$1]); - _tuple$7 = $assertType(e$20, ptrType$97, true); - kv$1 = _tuple$7[0]; - /* */ if (!(kv$1 === ptrType$97.nil)) { $s = 89; continue; } - /* */ $s = 90; continue; - /* if (!(kv$1 === ptrType$97.nil)) { */ case 89: - $r = check[0].error(kv$1, 64, "mixture of field:value and value elements in struct literal"); /* */ $s = 91; case 91: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$1++; - /* continue; */ $s = 87; continue; - /* } */ case 90: - $r = check[0].expr(x[0], e$20); /* */ $s = 92; case 92: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (i$1 >= fields.$length) { $s = 93; continue; } - /* */ $s = 94; continue; - /* if (i$1 >= fields.$length) { */ case 93: - $r = check[0].errorf(x[0], 65, "too many values in struct literal of type %s", new sliceType$6([base$1])); /* */ $s = 95; case 95: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* break; */ $s = 88; continue; - /* } */ case 94: - fld$1 = ((i$1 < 0 || i$1 >= fields.$length) ? ($throwRuntimeError("index out of range"), undefined) : fields.$array[fields.$offset + i$1]); - /* */ if (!fld$1.object.Exported() && !(fld$1.object.pkg === check[0].pkg)) { $s = 96; continue; } - /* */ $s = 97; continue; - /* if (!fld$1.object.Exported() && !(fld$1.object.pkg === check[0].pkg)) { */ case 96: - $r = check[0].errorf(x[0], 68, "implicit assignment to unexported field %s in struct literal of type %s", new sliceType$6([new $String(fld$1.object.name), base$1])); /* */ $s = 98; case 98: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$1++; - /* continue; */ $s = 87; continue; - /* } */ case 97: - etyp$1 = fld$1.object.typ; - $r = check[0].assignment(x[0], etyp$1, "struct literal"); /* */ $s = 99; case 99: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$1++; - $s = 87; continue; - case 88: - /* */ if (e$6.Elts.$length < fields.$length) { $s = 100; continue; } - /* */ $s = 101; continue; - /* if (e$6.Elts.$length < fields.$length) { */ case 100: - _r$7 = inNode(e$6, e$6.Rbrace); /* */ $s = 102; case 102: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - $r = check[0].errorf((x$2 = _r$7, new x$2.constructor.elem(x$2)), 65, "too few values in struct literal of type %s", new sliceType$6([base$1])); /* */ $s = 103; case 103: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 101: - /* } */ case 69: - $s = 63; continue; - /* } else if ($assertType(_ref$1, ptrType$10, true)[1]) { */ case 59: - utyp$1 = _ref$1.$val; - /* */ if ($interfaceIsEqual(utyp$1.elem, $ifaceNil)) { $s = 104; continue; } - /* */ $s = 105; continue; - /* if ($interfaceIsEqual(utyp$1.elem, $ifaceNil)) { */ case 104: - $r = check[0].error(e$6, 12, "invalid recursive type"); /* */ $s = 106; case 106: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 20; continue; - /* } */ case 105: - _r$8 = check[0].indexedElts(e$6.Elts, utyp$1.elem, utyp$1.len); /* */ $s = 107; case 107: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - n = _r$8; - /* */ if ((x$3 = utyp$1.len, (x$3.$high < 0 || (x$3.$high === 0 && x$3.$low < 0)))) { $s = 108; continue; } - /* */ $s = 109; continue; - /* if ((x$3 = utyp$1.len, (x$3.$high < 0 || (x$3.$high === 0 && x$3.$low < 0)))) { */ case 108: - utyp$1.len = n; - /* */ if (!($interfaceIsEqual(e$6.Type, $ifaceNil))) { $s = 110; continue; } - /* */ $s = 111; continue; - /* if (!($interfaceIsEqual(e$6.Type, $ifaceNil))) { */ case 110: - $r = check[0].recordTypeAndValue(e$6.Type, 3, utyp$1, $ifaceNil); /* */ $s = 112; case 112: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 111: - /* } */ case 109: - $s = 63; continue; - /* } else if ($assertType(_ref$1, ptrType$25, true)[1]) { */ case 60: - utyp$2 = _ref$1.$val; - /* */ if ($interfaceIsEqual(utyp$2.elem, $ifaceNil)) { $s = 113; continue; } - /* */ $s = 114; continue; - /* if ($interfaceIsEqual(utyp$2.elem, $ifaceNil)) { */ case 113: - $r = check[0].error(e$6, 12, "invalid recursive type"); /* */ $s = 115; case 115: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 20; continue; - /* } */ case 114: - _r$9 = check[0].indexedElts(e$6.Elts, utyp$2.elem, new $Int64(-1, 4294967295)); /* */ $s = 116; case 116: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _r$9; - $s = 63; continue; - /* } else if ($assertType(_ref$1, ptrType$28, true)[1]) { */ case 61: - utyp$3 = _ref$1.$val; - /* */ if ($interfaceIsEqual(utyp$3.key, $ifaceNil) || $interfaceIsEqual(utyp$3.elem, $ifaceNil)) { $s = 117; continue; } - /* */ $s = 118; continue; - /* if ($interfaceIsEqual(utyp$3.key, $ifaceNil) || $interfaceIsEqual(utyp$3.elem, $ifaceNil)) { */ case 117: - $r = check[0].error(e$6, 12, "invalid recursive type"); /* */ $s = 119; case 119: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 20; continue; - /* } */ case 118: - _r$10 = isNonTypeParamInterface(utyp$3.key); /* */ $s = 120; case 120: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - keyIsInterface = _r$10; - visited$1 = (x$4 = e$6.Elts.$length, ((x$4 < 0 || x$4 > 2147483647) ? $throwRuntimeError("makemap: size out of range") : new $global.Map())); - _ref$4 = e$6.Elts; - _i$2 = 0; - /* while (true) { */ case 121: - /* if (!(_i$2 < _ref$4.$length)) { break; } */ if(!(_i$2 < _ref$4.$length)) { $s = 122; continue; } - e$21 = ((_i$2 < 0 || _i$2 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$2]); - _tuple$8 = $assertType(e$21, ptrType$97, true); - kv$2 = _tuple$8[0]; - /* */ if (kv$2 === ptrType$97.nil) { $s = 123; continue; } - /* */ $s = 124; continue; - /* if (kv$2 === ptrType$97.nil) { */ case 123: - $r = check[0].error(e$21, 61, "missing key in map literal"); /* */ $s = 125; case 125: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$2++; - /* continue; */ $s = 121; continue; - /* } */ case 124: - $r = check[0].exprWithHint(x[0], kv$2.Key, utyp$3.key); /* */ $s = 126; case 126: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].assignment(x[0], utyp$3.key, "map literal"); /* */ $s = 127; case 127: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x[0].mode === 0) { - _i$2++; - /* continue; */ $s = 121; continue; - } - /* */ if (x[0].mode === 4) { $s = 128; continue; } - /* */ $s = 129; continue; - /* if (x[0].mode === 4) { */ case 128: - duplicate = false; - _r$11 = keyVal(x[0].val); /* */ $s = 130; case 130: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - xkey = _r$11; - /* */ if (keyIsInterface) { $s = 131; continue; } - /* */ $s = 132; continue; - /* if (keyIsInterface) { */ case 131: - _ref$5 = (_entry = $mapIndex(visited$1,$emptyInterface.keyFor(xkey)), _entry !== undefined ? _entry.v : sliceType$3.nil); - _i$3 = 0; - /* while (true) { */ case 134: - /* if (!(_i$3 < _ref$5.$length)) { break; } */ if(!(_i$3 < _ref$5.$length)) { $s = 135; continue; } - vtyp = ((_i$3 < 0 || _i$3 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$3]); - _r$12 = Identical(vtyp, x[0].typ); /* */ $s = 138; case 138: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - /* */ if (_r$12) { $s = 136; continue; } - /* */ $s = 137; continue; - /* if (_r$12) { */ case 136: - duplicate = true; - /* break; */ $s = 135; continue; - /* } */ case 137: - _i$3++; - $s = 134; continue; - case 135: - _key = xkey; (visited$1 || $throwRuntimeError("assignment to entry in nil map")).set($emptyInterface.keyFor(_key), { k: _key, v: $append((_entry$1 = $mapIndex(visited$1,$emptyInterface.keyFor(xkey)), _entry$1 !== undefined ? _entry$1.v : sliceType$3.nil), x[0].typ) }); - $s = 133; continue; - /* } else { */ case 132: - _tuple$9 = (_entry$2 = $mapIndex(visited$1,$emptyInterface.keyFor(xkey)), _entry$2 !== undefined ? [_entry$2.v, true] : [sliceType$3.nil, false]); - duplicate = _tuple$9[1]; - _key$1 = xkey; (visited$1 || $throwRuntimeError("assignment to entry in nil map")).set($emptyInterface.keyFor(_key$1), { k: _key$1, v: sliceType$3.nil }); - /* } */ case 133: - /* */ if (duplicate) { $s = 139; continue; } - /* */ $s = 140; continue; - /* if (duplicate) { */ case 139: - $r = check[0].errorf(x[0], 60, "duplicate key %s in map literal", new sliceType$6([x[0].val])); /* */ $s = 141; case 141: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$2++; - /* continue; */ $s = 121; continue; - /* } */ case 140: - /* } */ case 129: - $r = check[0].exprWithHint(x[0], kv$2.Value, utyp$3.elem); /* */ $s = 142; case 142: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].assignment(x[0], utyp$3.elem, "map literal"); /* */ $s = 143; case 143: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$2++; - $s = 121; continue; - case 122: - $s = 63; continue; - /* } else { */ case 62: - utyp$4 = _ref$1; - _ref$6 = e$6.Elts; - _i$4 = 0; - /* while (true) { */ case 144: - /* if (!(_i$4 < _ref$6.$length)) { break; } */ if(!(_i$4 < _ref$6.$length)) { $s = 145; continue; } - e$22 = ((_i$4 < 0 || _i$4 >= _ref$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$6.$array[_ref$6.$offset + _i$4]); - _tuple$10 = $assertType(e$22, ptrType$97, true); - kv$3 = _tuple$10[0]; - if (!(kv$3 === ptrType$97.nil)) { - e$22 = kv$3.Value; - } - $r = check[0].use(new sliceType$11([e$22])); /* */ $s = 146; case 146: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$4++; - $s = 144; continue; - case 145: - /* */ if (!($interfaceIsEqual(utyp$4, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { $s = 147; continue; } - /* */ $s = 148; continue; - /* if (!($interfaceIsEqual(utyp$4, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { */ case 147: - $r = check[0].errorf(e$6, 71, "invalid composite literal type %s", new sliceType$6([typ$4])); /* */ $s = 149; case 149: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 20; continue; - /* } */ case 148: - /* } } */ case 63: - x[0].mode = 7; - x[0].typ = typ$4; - $s = 19; continue; - /* } else if ($assertType(_ref, ptrType$39, true)[1]) { */ case 7: - e$7 = _ref.$val; - _r$13 = check[0].rawExpr(x[0], e$7.X, $ifaceNil, false); /* */ $s = 150; case 150: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - kind = _r$13; - x[0].expr = e$7; - $s = -1; return kind; - /* } else if ($assertType(_ref, ptrType$36, true)[1]) { */ case 8: - e$8 = _ref.$val; - $r = check[0].selector(x[0], e$8, ptrType$9.nil, false); /* */ $s = 151; case 151: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 19; continue; - /* } else if ($assertType(_ref, ptrType$37, true)[1] || $assertType(_ref, ptrType$38, true)[1]) { */ case 9: - e$9 = _ref; - ix = typeparams.UnpackIndexExpr(e$9); - _r$14 = check[0].indexExpr(x[0], ix); /* */ $s = 154; case 154: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - /* */ if (_r$14) { $s = 152; continue; } - /* */ $s = 153; continue; - /* if (_r$14) { */ case 152: - $r = check[0].funcInst(x[0], ix); /* */ $s = 155; case 155: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 153: - /* */ if (x[0].mode === 0) { $s = 156; continue; } - /* */ $s = 157; continue; - /* if (x[0].mode === 0) { */ case 156: - /* goto Error */ $s = 20; continue; - /* } */ case 157: - $s = 19; continue; - /* } else if ($assertType(_ref, ptrType$100, true)[1]) { */ case 10: - e$10 = _ref.$val; - $r = check[0].sliceExpr(x[0], e$10); /* */ $s = 158; case 158: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (x[0].mode === 0) { $s = 159; continue; } - /* */ $s = 160; continue; - /* if (x[0].mode === 0) { */ case 159: - /* goto Error */ $s = 20; continue; - /* } */ case 160: - $s = 19; continue; - /* } else if ($assertType(_ref, ptrType$82, true)[1]) { */ case 11: - e$11 = _ref.$val; - $r = check[0].expr(x[0], e$11.X); /* */ $s = 161; case 161: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (x[0].mode === 0) { $s = 162; continue; } - /* */ $s = 163; continue; - /* if (x[0].mode === 0) { */ case 162: - /* goto Error */ $s = 20; continue; - /* } */ case 163: - /* */ if (isTypeParam(x[0].typ)) { $s = 164; continue; } - /* */ $s = 165; continue; - /* if (isTypeParam(x[0].typ)) { */ case 164: - $r = check[0].errorf(x[0], 94, "invalid operation: cannot use type assertion on type parameter value %s", new sliceType$6([x[0]])); /* */ $s = 166; case 166: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 20; continue; - /* } */ case 165: - _r$15 = under(x[0].typ); /* */ $s = 167; case 167: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - _tuple$11 = $assertType(_r$15, ptrType$13, true); - ok$2 = _tuple$11[1]; - /* */ if (!ok$2) { $s = 168; continue; } - /* */ $s = 169; continue; - /* if (!ok$2) { */ case 168: - $r = check[0].errorf(x[0], 94, "invalid operation: %s is not an interface", new sliceType$6([x[0]])); /* */ $s = 170; case 170: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 20; continue; - /* } */ case 169: - /* */ if ($interfaceIsEqual(e$11.Type, $ifaceNil)) { $s = 171; continue; } - /* */ $s = 172; continue; - /* if ($interfaceIsEqual(e$11.Type, $ifaceNil)) { */ case 171: - $r = check[0].error(e$11, 115, "use of .(type) outside type switch"); /* */ $s = 173; case 173: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 20; continue; - /* } */ case 172: - _r$16 = check[0].varType(e$11.Type); /* */ $s = 174; case 174: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - T = _r$16; - /* */ if ($interfaceIsEqual(T, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { $s = 175; continue; } - /* */ $s = 176; continue; - /* if ($interfaceIsEqual(T, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { */ case 175: - /* goto Error */ $s = 20; continue; - /* } */ case 176: - $r = check[0].typeAssertion(e$11, x[0], T, false); /* */ $s = 177; case 177: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x[0].mode = 8; - x[0].typ = T; - $s = 19; continue; - /* } else if ($assertType(_ref, ptrType$86, true)[1]) { */ case 12: - e$12 = _ref.$val; - _r$17 = check[0].callExpr(x[0], e$12); /* */ $s = 178; case 178: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - $24r = _r$17; - $s = 179; case 179: return $24r; - /* } else if ($assertType(_ref, ptrType$43, true)[1]) { */ case 13: - e$13 = _ref.$val; - $r = check[0].exprOrType(x[0], e$13.X, false); /* */ $s = 180; case 180: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _2 = x[0].mode; - /* */ if (_2 === (0)) { $s = 182; continue; } - /* */ if (_2 === (3)) { $s = 183; continue; } - /* */ $s = 184; continue; - /* if (_2 === (0)) { */ case 182: - /* goto Error */ $s = 20; continue; - $s = 185; continue; - /* } else if (_2 === (3)) { */ case 183: - check[0].validVarType(e$13.X, x[0].typ); - x[0].typ = new Pointer.ptr(x[0].typ); - $s = 185; continue; - /* } else { */ case 184: - base[0] = $ifaceNil; - _r$18 = underIs(x[0].typ, (function(base, check, decl$1, e$1, iota, sig, x) { return function Checker·exprInternal·func2(u) { - var {_r$18, _tuple$12, _v, p, u, $s, $r, $c} = $restore(this, {u}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _tuple$12 = $assertType(u, ptrType$26, true); - p = _tuple$12[0]; - /* */ if (p === ptrType$26.nil) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (p === ptrType$26.nil) { */ case 1: - $r = check[0].errorf(x[0], 50, "invalid operation: cannot indirect %s", new sliceType$6([x[0]])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return false; - /* } */ case 2: - if (!(!($interfaceIsEqual(base[0], $ifaceNil)))) { _v = false; $s = 6; continue s; } - _r$18 = Identical(p.base, base[0]); /* */ $s = 7; case 7: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - _v = !_r$18; case 6: - /* */ if (_v) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_v) { */ case 4: - $r = check[0].errorf(x[0], 50, "invalid operation: pointers of %s must have identical base types", new sliceType$6([x[0]])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return false; - /* } */ case 5: - base[0] = p.base; - $s = -1; return true; - /* */ } return; } var $f = {$blk: Checker·exprInternal·func2, $c: true, $r, _r$18, _tuple$12, _v, p, u, $s};return $f; - }; })(base, check, decl$1, e$1, iota, sig, x)); /* */ $s = 188; case 188: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - /* */ if (!_r$18) { $s = 186; continue; } - /* */ $s = 187; continue; - /* if (!_r$18) { */ case 186: - /* goto Error */ $s = 20; continue; - /* } */ case 187: - x[0].mode = 5; - x[0].typ = base[0]; - /* } */ case 185: - case 181: - $s = 19; continue; - /* } else if ($assertType(_ref, ptrType$20, true)[1]) { */ case 14: - e$14 = _ref.$val; - $r = check[0].unary(x[0], e$14); /* */ $s = 189; case 189: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (x[0].mode === 0) { $s = 190; continue; } - /* */ $s = 191; continue; - /* if (x[0].mode === 0) { */ case 190: - /* goto Error */ $s = 20; continue; - /* } */ case 191: - if (e$14.Op === 36) { - x[0].expr = e$14; - $s = -1; return 2; + _i++; } - $s = 19; continue; - /* } else if ($assertType(_ref, ptrType$21, true)[1]) { */ case 15: - e$15 = _ref.$val; - $r = check[0].binary(x[0], e$15, e$15.X, e$15.Y, e$15.Op, e$15.OpPos); /* */ $s = 192; case 192: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (x[0].mode === 0) { $s = 193; continue; } - /* */ $s = 194; continue; - /* if (x[0].mode === 0) { */ case 193: - /* goto Error */ $s = 20; continue; - /* } */ case 194: - $s = 19; continue; - /* } else if ($assertType(_ref, ptrType$97, true)[1]) { */ case 16: - e$16 = _ref.$val; - $r = check[0].error(e$16, -1, "no key:value expected"); /* */ $s = 195; case 195: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 20; continue; - $s = 19; continue; - /* } else if ($assertType(_ref, ptrType$40, true)[1] || $assertType(_ref, ptrType$42, true)[1] || $assertType(_ref, ptrType$44, true)[1] || $assertType(_ref, ptrType$45, true)[1] || $assertType(_ref, ptrType$46, true)[1] || $assertType(_ref, ptrType$47, true)[1]) { */ case 17: - e$17 = _ref; - x[0].mode = 3; - _r$19 = check[0].typ(e$17); /* */ $s = 196; case 196: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - x[0].typ = _r$19; - $s = 19; continue; - /* } else { */ case 18: - e$18 = _ref; - _r$20 = e$18.Pos(); /* */ $s = 197; case 197: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - _r$21 = check[0].fset.Position(_r$20); /* */ $s = 198; case 198: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } - _arg = (x$5 = _r$21, new x$5.constructor.elem(x$5)); - _arg$1 = e$18; - _r$22 = fmt.Sprintf("%s: unknown expression type %T", new sliceType$6([_arg, _arg$1])); /* */ $s = 199; case 199: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - $panic(new $String(_r$22)); - /* } */ case 19: - x[0].expr = e; - $s = -1; return 1; - /* Error: */ case 20: - x[0].mode = 0; - x[0].expr = e; - $s = -1; return 2; - /* */ } return; } var $f = {$blk: exprInternal, $c: true, $r, $24r, T, _1, _2, _arg, _arg$1, _entry, _entry$1, _entry$2, _i, _i$1, _i$2, _i$3, _i$4, _key, _key$1, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, atyp, base, base$1, check, decl$1, duplicate, e, e$1, e$10, e$11, e$12, e$13, e$14, e$15, e$16, e$17, e$18, e$19, e$2, e$20, e$21, e$22, e$3, e$4, e$5, e$6, e$7, e$8, e$9, ellip, etyp, etyp$1, fields, fld, fld$1, hint, i, i$1, iota, ix, key, keyIsInterface, kind, kv, kv$1, kv$2, kv$3, n, ok, ok$1, ok$2, sig, typ$4, utyp, utyp$1, utyp$2, utyp$3, utyp$4, visited, visited$1, vtyp, x, x$1, x$2, x$3, x$4, x$5, xkey, $s};return $f; - }; - keyVal = function keyVal$1(x) { - var {$24r, $24r$1, _1, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, f, i, i$1, ok, ok$1, r, v, v$1, v$2, x, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = x.Kind(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _1 = _r$1; - /* */ if (_1 === (5)) { $s = 3; continue; } - /* */ if (_1 === (4)) { $s = 4; continue; } - /* */ if (_1 === (3)) { $s = 5; continue; } - /* */ if (_1 === (2)) { $s = 6; continue; } - /* */ if (_1 === (1)) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (_1 === (5)) { */ case 3: - _r$2 = constant.ToFloat(x); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - f = _r$2; - _r$3 = f.Kind(); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (!((_r$3 === 4))) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (!((_r$3 === 4))) { */ case 10: - _r$4 = constant.Real(x); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$5 = constant.Float64Val(_r$4); /* */ $s = 14; case 14: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _tuple = _r$5; - r = _tuple[0]; - _r$6 = constant.Imag(x); /* */ $s = 15; case 15: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _r$7 = constant.Float64Val(_r$6); /* */ $s = 16; case 16: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _tuple$1 = _r$7; - i = _tuple$1[0]; - $s = -1; return new $Complex128(r, i); - /* } */ case 11: - x = f; - _r$8 = constant.ToInt(x); /* */ $s = 17; case 17: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - i$1 = _r$8; - _r$9 = i$1.Kind(); /* */ $s = 20; case 20: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - /* */ if (!((_r$9 === 3))) { $s = 18; continue; } - /* */ $s = 19; continue; - /* if (!((_r$9 === 3))) { */ case 18: - _r$10 = constant.Float64Val(x); /* */ $s = 21; case 21: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _tuple$2 = _r$10; - v = _tuple$2[0]; - $s = -1; return new $Float64(v); - /* } */ case 19: - x = i$1; - _r$11 = constant.Int64Val(x); /* */ $s = 22; case 22: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _tuple$3 = _r$11; - v$1 = _tuple$3[0]; - ok = _tuple$3[1]; - if (ok) { - $s = -1; return v$1; - } - _r$12 = constant.Uint64Val(x); /* */ $s = 23; case 23: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - _tuple$4 = _r$12; - v$2 = _tuple$4[0]; - ok$1 = _tuple$4[1]; - if (ok$1) { - $s = -1; return v$2; - } - $s = 8; continue; - /* } else if (_1 === (4)) { */ case 4: - _r$13 = constant.ToInt(x); /* */ $s = 24; case 24: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - i$1 = _r$13; - _r$14 = i$1.Kind(); /* */ $s = 27; case 27: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - /* */ if (!((_r$14 === 3))) { $s = 25; continue; } - /* */ $s = 26; continue; - /* if (!((_r$14 === 3))) { */ case 25: - _r$15 = constant.Float64Val(x); /* */ $s = 28; case 28: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - _tuple$5 = _r$15; - v = _tuple$5[0]; - $s = -1; return new $Float64(v); - /* } */ case 26: - x = i$1; - _r$16 = constant.Int64Val(x); /* */ $s = 29; case 29: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - _tuple$6 = _r$16; - v$1 = _tuple$6[0]; - ok = _tuple$6[1]; - if (ok) { - $s = -1; return v$1; - } - _r$17 = constant.Uint64Val(x); /* */ $s = 30; case 30: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - _tuple$7 = _r$17; - v$2 = _tuple$7[0]; - ok$1 = _tuple$7[1]; - if (ok$1) { - $s = -1; return v$2; - } - $s = 8; continue; - /* } else if (_1 === (3)) { */ case 5: - _r$18 = constant.Int64Val(x); /* */ $s = 31; case 31: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - _tuple$8 = _r$18; - v$1 = _tuple$8[0]; - ok = _tuple$8[1]; - if (ok) { - $s = -1; return v$1; - } - _r$19 = constant.Uint64Val(x); /* */ $s = 32; case 32: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - _tuple$9 = _r$19; - v$2 = _tuple$9[0]; - ok$1 = _tuple$9[1]; - if (ok$1) { - $s = -1; return v$2; + return l; + } else if ((_1 === (13)) || (_1 === (15))) { + return minInputLen((x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))); + } else if (_1 === (17)) { + return $imul(re.Min, minInputLen((x$1 = re.Sub, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])))); + } else if (_1 === (18)) { + l$1 = 0; + _ref$1 = re.Sub; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + sub = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + l$1 = l$1 + (minInputLen(sub)) >> 0; + _i$1++; + } + return l$1; + } else if (_1 === (19)) { + l$2 = minInputLen((x$2 = re.Sub, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0]))); + lnext = 0; + _ref$2 = $subslice(re.Sub, 1); + _i$2 = 0; + while (true) { + if (!(_i$2 < _ref$2.$length)) { break; } + sub$1 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); + lnext = minInputLen(sub$1); + if (lnext < l$2) { + l$2 = lnext; } - $s = 8; continue; - /* } else if (_1 === (2)) { */ case 6: - _r$20 = constant.StringVal(x); /* */ $s = 33; case 33: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - $24r = new $String(_r$20); - $s = 34; case 34: return $24r; - /* } else if (_1 === (1)) { */ case 7: - _r$21 = constant.BoolVal(x); /* */ $s = 35; case 35: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } - $24r$1 = new $Bool(_r$21); - $s = 36; case 36: return $24r$1; - /* } */ case 8: - case 1: - $s = -1; return x; - /* */ } return; } var $f = {$blk: keyVal$1, $c: true, $r, $24r, $24r$1, _1, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, f, i, i$1, ok, ok$1, r, v, v$1, v$2, x, $s};return $f; - }; - $ptrType(Checker).prototype.typeAssertion = function typeAssertion(e, x, T, typeSwitch) { - var {T, _r$1, _r$2, _r$3, _tuple, alt, cause, check, e, method, typeSwitch, x, $s, $r, $c} = $restore(this, {e, x, T, typeSwitch}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = under(x.typ); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = check.assertableTo($assertType(_r$1, ptrType$13), T); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple = _r$2; - method = _tuple[0]; - alt = _tuple[1]; - if (method === ptrType$2.nil) { - $s = -1; return; + _i$2++; + } + return l$2; + } else { + return 0; } - _r$3 = check.missingMethodCause(T, x.typ, method, alt); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - cause = _r$3; - /* */ if (typeSwitch) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (typeSwitch) { */ case 4: - $r = check.errorf(e, 95, "impossible type switch case: %s\n\t%s cannot have dynamic type %s %s", new sliceType$6([e, x, T, new $String(cause)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 5: - $r = check.errorf(e, 95, "impossible type assertion: %s\n\t%s does not implement %s %s", new sliceType$6([e, T, x.typ, new $String(cause)])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: typeAssertion, $c: true, $r, T, _r$1, _r$2, _r$3, _tuple, alt, cause, check, e, method, typeSwitch, x, $s};return $f; }; - $ptrType(Checker).prototype.expr = function expr(x, e) { - var {_r$1, check, e, x, $s, $r, $c} = $restore(this, {x, e}); + MustCompile = function MustCompile$1(str) { + var {_r, _r$1, _tuple, err, regexp, str, $s, $r, $c} = $restore(this, {str}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = check.rawExpr(x, e, $ifaceNil, false); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - $r = check.exclude(x, 14); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.singleValue(x); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: expr, $c: true, $r, _r$1, check, e, x, $s};return $f; + _r = Compile(str); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + regexp = _tuple[0]; + err = _tuple[1]; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2: + _r$1 = err.Error(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $panic(new $String("regexp: Compile(" + quote(str) + "): " + _r$1)); + /* } */ case 3: + $s = -1; return regexp; + /* */ } return; } var $f = {$blk: MustCompile$1, $c: true, $r, _r, _r$1, _tuple, err, regexp, str, $s};return $f; }; - $ptrType(Checker).prototype.multiExpr = function multiExpr(x, e) { - var {_r$1, check, e, x, $s, $r, $c} = $restore(this, {x, e}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = check.rawExpr(x, e, $ifaceNil, false); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - $r = check.exclude(x, 14); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: multiExpr, $c: true, $r, _r$1, check, e, x, $s};return $f; + $pkg.MustCompile = MustCompile; + quote = function quote$1(s) { + var s; + if (strconv.CanBackquote(s)) { + return "`" + s + "`"; + } + return strconv.Quote(s); }; - $ptrType(Checker).prototype.exprWithHint = function exprWithHint(x, e, hint) { - var {_r$1, check, e, hint, x, $s, $r, $c} = $restore(this, {x, e, hint}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - $r = assert(!($interfaceIsEqual(hint, $ifaceNil))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$1 = check.rawExpr(x, e, hint, false); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - $r = check.exclude(x, 14); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.singleValue(x); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: exprWithHint, $c: true, $r, _r$1, check, e, hint, x, $s};return $f; + $ptrType(Regexp).prototype.NumSubexp = function NumSubexp() { + var re; + re = this; + return re.numSubexp; }; - $ptrType(Checker).prototype.exprOrType = function exprOrType(x, e, allowGeneric) { - var {_r$1, allowGeneric, check, e, x, $s, $r, $c} = $restore(this, {x, e, allowGeneric}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = check.rawExpr(x, e, $ifaceNil, allowGeneric); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - $r = check.exclude(x, 2); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.singleValue(x); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: exprOrType, $c: true, $r, _r$1, allowGeneric, check, e, x, $s};return $f; + $ptrType(Regexp).prototype.SubexpNames = function SubexpNames() { + var re; + re = this; + return re.subexpNames; }; - $ptrType(Checker).prototype.exclude = function exclude(x, modeset) { - var {_1, check, code, modeset, msg, x, y, $s, $r, $c} = $restore(this, {x, modeset}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - /* */ if (!((((modeset & (((y = x.mode, y < 32 ? (1 << y) : 0) >>> 0))) >>> 0) === 0))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!((((modeset & (((y = x.mode, y < 32 ? (1 << y) : 0) >>> 0))) >>> 0) === 0))) { */ case 1: - msg = ""; - code = 0; - _1 = x.mode; - if (_1 === (1)) { - if (!((((modeset & 8) >>> 0) === 0))) { - msg = "%s used as value"; - } else { - msg = "%s used as value or type"; + $ptrType(Regexp).prototype.SubexpIndex = function SubexpIndex(name) { + var _i, _ref, i, name, re, s; + re = this; + if (!(name === "")) { + _ref = re.subexpNames; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (name === s) { + return i; } - code = 41; - } else if (_1 === (2)) { - msg = "%s must be called"; - code = 82; - } else if (_1 === (3)) { - msg = "%s is not an expression"; - code = 42; - } else { - unreachable(); + _i++; } - $r = check.errorf(x, code, msg, new sliceType$6([x])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - /* } */ case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: exclude, $c: true, $r, _1, check, code, modeset, msg, x, y, $s};return $f; + } + return -1; }; - $ptrType(Checker).prototype.singleValue = function singleValue(x) { - var {_tuple, check, ok, t, x, $s, $r, $c} = $restore(this, {x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - /* */ if (x.mode === 7) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (x.mode === 7) { */ case 1: - _tuple = $assertType(x.typ, ptrType$15, true); - t = _tuple[0]; - ok = _tuple[1]; - /* */ if (ok) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (ok) { */ case 3: - $r = assert(!((t.Len() === 1))); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.errorf(x, 41, "multiple-value %s in single-value context", new sliceType$6([x])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - /* } */ case 4: - /* } */ case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: singleValue, $c: true, $r, _tuple, check, ok, t, x, $s};return $f; + $ptrType(inputString).prototype.step = function step(pos) { + var c, i, pos; + i = this; + if (pos < i.str.length) { + c = i.str.charCodeAt(pos); + if (c < 128) { + return [((c >> 0)), 1]; + } + return utf8.DecodeRuneInString($substring(i.str, pos)); + } + return [-1, 0]; }; - assert = function assert$1(p) { - var {_r$1, _tuple, file, line, msg, ok, p, $s, $r, $c} = $restore(this, {p}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - /* */ if (!p) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!p) { */ case 1: - msg = "assertion failed"; - _tuple = runtime.Caller(1); - file = _tuple[1]; - line = _tuple[2]; - ok = _tuple[3]; - /* */ if (ok) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (ok) { */ case 3: - _r$1 = fmt.Sprintf("%s:%d: %s", new sliceType$6([new $String(file), new $Int(line), new $String(msg)])); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - msg = _r$1; - /* } */ case 4: - $panic(new $String(msg)); - /* } */ case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: assert$1, $c: true, $r, _r$1, _tuple, file, line, msg, ok, p, $s};return $f; + $ptrType(inputString).prototype.canCheckPrefix = function canCheckPrefix() { + var i; + i = this; + return true; }; - unreachable = function unreachable$1() { - $panic(new $String("unreachable")); + $ptrType(inputString).prototype.hasPrefix = function hasPrefix(re) { + var i, re; + i = this; + return strings.HasPrefix(i.str, re.prefix); }; - $ptrType(error_).prototype.empty = function empty$1() { - var err; - err = this; - return err.desc === sliceType$31.nil; + $ptrType(inputString).prototype.index = function index(re, pos) { + var i, pos, re; + i = this; + return strings.Index($substring(i.str, pos), re.prefix); }; - $ptrType(error_).prototype.pos = function pos() { - var {$24r, _r$1, err, x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - err = this; - if (err.empty()) { - $s = -1; return 0; + $ptrType(inputString).prototype.context = function context(pos) { + var _tmp, _tmp$1, _tuple, _tuple$1, i, pos, r1, r2; + i = this; + _tmp = -1; + _tmp$1 = -1; + r1 = _tmp; + r2 = _tmp$1; + if ((((pos - 1 >> 0) >>> 0)) < ((i.str.length >>> 0))) { + r1 = ((i.str.charCodeAt((pos - 1 >> 0)) >> 0)); + if (r1 >= 128) { + _tuple = utf8.DecodeLastRuneInString($substring(i.str, 0, pos)); + r1 = _tuple[0]; + } } - _r$1 = (x = err.desc, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).posn.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: pos, $c: true, $r, $24r, _r$1, err, x, $s};return $f; + if (((pos >>> 0)) < ((i.str.length >>> 0))) { + r2 = ((i.str.charCodeAt(pos) >> 0)); + if (r2 >= 128) { + _tuple$1 = utf8.DecodeRuneInString($substring(i.str, pos)); + r2 = _tuple$1[0]; + } + } + return newLazyFlag(r1, r2); }; - $ptrType(error_).prototype.msg = function msg(fset, qf) { - var {_arg, _arg$1, _i, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, buf, err, fset, i, p, qf, x, x$1, $s, $r, $c} = $restore(this, {fset, qf}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - buf = [buf]; - err = this; - if (err.empty()) { - $s = -1; return "no error"; + $ptrType(inputBytes).prototype.step = function step$1(pos) { + var c, i, pos, x; + i = this; + if (pos < i.str.$length) { + c = (x = i.str, ((pos < 0 || pos >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pos])); + if (c < 128) { + return [((c >> 0)), 1]; + } + return utf8.DecodeRune($subslice(i.str, pos)); } - buf[0] = new strings.Builder.ptr(ptrType$53.nil, sliceType$14.nil); - _ref = err.desc; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - p = (x = err.desc, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - /* */ if (i > 0) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (i > 0) { */ case 3: - _r$1 = fmt.Fprint(buf[0], new sliceType$6([new $String("\n\t")])); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - _r$2 = p.posn.Pos(); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = new token.Pos(_r$2).IsValid(); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (_r$3) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (_r$3) { */ case 6: - _arg = buf[0]; - _r$4 = p.posn.Pos(); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$5 = fset.Position(_r$4); /* */ $s = 11; case 11: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _arg$1 = (x$1 = _r$5, new x$1.constructor.elem(x$1)); - _r$6 = fmt.Fprintf(_arg, "%s: ", new sliceType$6([_arg$1])); /* */ $s = 12; case 12: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _r$6; - /* } */ case 7: - /* } */ case 4: - _r$7 = sprintf(fset, qf, false, p.format, p.args); /* */ $s = 13; case 13: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _r$8 = buf[0].WriteString(_r$7); /* */ $s = 14; case 14: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _r$8; - _i++; - $s = 1; continue; - case 2: - $s = -1; return buf[0].String(); - /* */ } return; } var $f = {$blk: msg, $c: true, $r, _arg, _arg$1, _i, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, buf, err, fset, i, p, qf, x, x$1, $s};return $f; + return [-1, 0]; + }; + $ptrType(inputBytes).prototype.canCheckPrefix = function canCheckPrefix$1() { + var i; + i = this; + return true; }; - $ptrType(error_).prototype.String = function String$31() { - var {$24r, _arg, _arg$1, _r$1, _r$2, _r$3, err, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - err = this; - if (err.empty()) { - $s = -1; return "no error"; - } - _r$1 = err.pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _arg = new token.Pos(_r$1); - _r$2 = err.msg(ptrType$24.nil, $throwNilPointerError); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _arg$1 = new $String(_r$2); - _r$3 = fmt.Sprintf("%d: %s", new sliceType$6([_arg, _arg$1])); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r = _r$3; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: String$31, $c: true, $r, $24r, _arg, _arg$1, _r$1, _r$2, _r$3, err, $s};return $f; + $ptrType(inputBytes).prototype.hasPrefix = function hasPrefix$1(re) { + var i, re; + i = this; + return bytes.HasPrefix(i.str, re.prefixBytes); }; - $ptrType(error_).prototype.errorf = function errorf(at$1, format, args) { - var args, at$1, err, format; - err = this; - err.desc = $append(err.desc, new errorDesc.ptr(new atPos(((at$1 >> 0))), format, args)); + $ptrType(inputBytes).prototype.index = function index$1(re, pos) { + var i, pos, re; + i = this; + return bytes.Index($subslice(i.str, pos), re.prefixBytes); }; - $ptrType(Checker).prototype.qualifier = function qualifier(pkg) { - var _entry, _entry$1, check, pkg; - check = this; - if (!(pkg === check.pkg)) { - if (check.pkgPathMap === false) { - check.pkgPathMap = new $global.Map(); - check.seenPkgMap = new $global.Map(); - check.markImports(check.pkg); + $ptrType(inputBytes).prototype.context = function context$1(pos) { + var _tmp, _tmp$1, _tuple, _tuple$1, i, pos, r1, r2, x, x$1, x$2; + i = this; + _tmp = -1; + _tmp$1 = -1; + r1 = _tmp; + r2 = _tmp$1; + if ((((pos - 1 >> 0) >>> 0)) < ((i.str.$length >>> 0))) { + r1 = (((x = i.str, x$1 = pos - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])) >> 0)); + if (r1 >= 128) { + _tuple = utf8.DecodeLastRune($subslice(i.str, 0, pos)); + r1 = _tuple[0]; } - if (((_entry = $mapIndex(check.pkgPathMap,$String.keyFor(pkg.name)), _entry !== undefined ? _entry.v : false) ? (_entry$1 = $mapIndex(check.pkgPathMap,$String.keyFor(pkg.name)), _entry$1 !== undefined ? _entry$1.v : false).size : 0) > 1) { - return strconv.Quote(pkg.path); + } + if (((pos >>> 0)) < ((i.str.$length >>> 0))) { + r2 = (((x$2 = i.str, ((pos < 0 || pos >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + pos])) >> 0)); + if (r2 >= 128) { + _tuple$1 = utf8.DecodeRune($subslice(i.str, pos)); + r2 = _tuple$1[0]; } - return pkg.name; } - return ""; + return newLazyFlag(r1, r2); }; - $ptrType(Checker).prototype.markImports = function markImports(pkg) { - var _entry, _entry$1, _i, _key, _key$1, _key$2, _ref, _tuple, check, forName, imp, ok, pkg; - check = this; - if ((_entry = $mapIndex(check.seenPkgMap,ptrType$1.keyFor(pkg)), _entry !== undefined ? _entry.v : false)) { - return; - } - _key = pkg; (check.seenPkgMap || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$1.keyFor(_key), { k: _key, v: true }); - _tuple = (_entry$1 = $mapIndex(check.pkgPathMap,$String.keyFor(pkg.name)), _entry$1 !== undefined ? [_entry$1.v, true] : [false, false]); - forName = _tuple[0]; - ok = _tuple[1]; - if (!ok) { - forName = new $global.Map(); - _key$1 = pkg.name; (check.pkgPathMap || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$1), { k: _key$1, v: forName }); + $ptrType(inputReader).prototype.step = function step$2(pos) { + var {_r, _tuple, err, i, pos, r, w, $s, $r, $c} = $restore(this, {pos}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + i = this; + if (!i.atEOT && !((pos === i.pos))) { + $s = -1; return [-1, 0]; } - _key$2 = pkg.path; (forName || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$2), { k: _key$2, v: true }); - _ref = pkg.imports; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - imp = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - check.markImports(imp); - _i++; + _r = i.r.ReadRune(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + r = _tuple[0]; + w = _tuple[1]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + i.atEOT = true; + $s = -1; return [-1, 0]; } + i.pos = i.pos + (w) >> 0; + $s = -1; return [r, w]; + /* */ } return; } var $f = {$blk: step$2, $c: true, $r, _r, _tuple, err, i, pos, r, w, $s};return $f; + }; + $ptrType(inputReader).prototype.canCheckPrefix = function canCheckPrefix$2() { + var i; + i = this; + return false; + }; + $ptrType(inputReader).prototype.hasPrefix = function hasPrefix$2(re) { + var i, re; + i = this; + return false; + }; + $ptrType(inputReader).prototype.index = function index$2(re, pos) { + var i, pos, re; + i = this; + return -1; + }; + $ptrType(inputReader).prototype.context = function context$2(pos) { + var i, pos; + i = this; + return new lazyFlag(0, 0); }; - $ptrType(Checker).prototype.sprintf = function sprintf$1(format, args) { - var {$24r, _r$1, args, check, format, fset, qf, $s, $r, $c} = $restore(this, {format, args}); + $ptrType(Regexp).prototype.LiteralPrefix = function LiteralPrefix() { + var _tmp, _tmp$1, complete, prefix, re; + prefix = ""; + complete = false; + re = this; + _tmp = re.prefix; + _tmp$1 = re.prefixComplete; + prefix = _tmp; + complete = _tmp$1; + return [prefix, complete]; + }; + $ptrType(Regexp).prototype.MatchReader = function MatchReader$1(r) { + var {$24r, _r, r, re, $s, $r, $c} = $restore(this, {r}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - fset = ptrType$24.nil; - qf = $throwNilPointerError; - if (!(check === ptrType$6.nil)) { - fset = check.fset; - qf = $methodVal(check, "qualifier"); - } - _r$1 = sprintf(fset, qf, false, format, args); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; + re = this; + _r = re.doMatch(r, sliceType$4.nil, ""); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: sprintf$1, $c: true, $r, $24r, _r$1, args, check, format, fset, qf, $s};return $f; + /* */ } return; } var $f = {$blk: MatchReader$1, $c: true, $r, $24r, _r, r, re, $s};return $f; }; - sprintf = function sprintf$2(fset, qf, tpSubscripts, format, args) { - var {$24r, _i, _i$1, _i$2, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, _ref$2, _ref$3, a, a$1, a$2, a$3, a$4, a$5, a$6, a$7, a$8, a$9, arg, args, buf, buf$1, buf$2, buf$3, format, fset, i, i$1, i$2, qf, tpSubscripts, w, w$1, w$2, x, x$1, $s, $r, $c} = $restore(this, {fset, qf, tpSubscripts, format, args}); + $ptrType(Regexp).prototype.MatchString = function MatchString$1(s) { + var {$24r, _r, re, s, $s, $r, $c} = $restore(this, {s}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ref = args; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - buf = [buf]; - buf$1 = [buf$1]; - buf$2 = [buf$2]; - buf$3 = [buf$3]; - i = _i; - arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _ref$1 = arg; - /* */ if (_ref$1 === $ifaceNil) { $s = 3; continue; } - /* */ if ($assertType(_ref$1, operand, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref$1, ptrType$62, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref$1, token.Pos, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref$1, ast.Expr, true)[1]) { $s = 7; continue; } - /* */ if ($assertType(_ref$1, sliceType$11, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref$1, Object, true)[1]) { $s = 9; continue; } - /* */ if ($assertType(_ref$1, Type, true)[1]) { $s = 10; continue; } - /* */ if ($assertType(_ref$1, sliceType$3, true)[1]) { $s = 11; continue; } - /* */ if ($assertType(_ref$1, sliceType$9, true)[1]) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (_ref$1 === $ifaceNil) { */ case 3: - a = _ref$1; - arg = new $String(""); - $s = 13; continue; - /* } else if ($assertType(_ref$1, operand, true)[1]) { */ case 4: - a$1 = $clone(_ref$1.$val, operand); - $panic(new $String("got operand instead of *operand")); - $s = 13; continue; - /* } else if ($assertType(_ref$1, ptrType$62, true)[1]) { */ case 5: - a$2 = _ref$1.$val; - _r$1 = operandString(a$2, qf); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - arg = new $String(_r$1); - $s = 13; continue; - /* } else if ($assertType(_ref$1, token.Pos, true)[1]) { */ case 6: - a$3 = _ref$1.$val; - /* */ if (!(fset === ptrType$24.nil)) { $s = 15; continue; } - /* */ $s = 16; continue; - /* if (!(fset === ptrType$24.nil)) { */ case 15: - _r$2 = fset.Position(a$3); /* */ $s = 17; case 17: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = $clone(_r$2, token.Position).String(); /* */ $s = 18; case 18: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - arg = new $String(_r$3); - /* } */ case 16: - $s = 13; continue; - /* } else if ($assertType(_ref$1, ast.Expr, true)[1]) { */ case 7: - a$4 = _ref$1; - _r$4 = ExprString(a$4); /* */ $s = 19; case 19: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - arg = new $String(_r$4); - $s = 13; continue; - /* } else if ($assertType(_ref$1, sliceType$11, true)[1]) { */ case 8: - a$5 = _ref$1.$val; - buf[0] = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); - buf[0].WriteByte(91); - $r = writeExprList(buf[0], a$5); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - buf[0].WriteByte(93); - arg = new $String(buf[0].String()); - $s = 13; continue; - /* } else if ($assertType(_ref$1, Object, true)[1]) { */ case 9: - a$6 = _ref$1; - _r$5 = ObjectString(a$6, qf); /* */ $s = 21; case 21: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - arg = new $String(_r$5); - $s = 13; continue; - /* } else if ($assertType(_ref$1, Type, true)[1]) { */ case 10: - a$7 = _ref$1; - buf$1[0] = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); - w = newTypeWriter(buf$1[0], qf); - w.tpSubscripts = tpSubscripts; - $r = w.typ(a$7); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - arg = new $String(buf$1[0].String()); - $s = 13; continue; - /* } else if ($assertType(_ref$1, sliceType$3, true)[1]) { */ case 11: - a$8 = _ref$1.$val; - buf$2[0] = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); - w$1 = newTypeWriter(buf$2[0], qf); - w$1.tpSubscripts = tpSubscripts; - buf$2[0].WriteByte(91); - _ref$2 = a$8; - _i$1 = 0; - /* while (true) { */ case 23: - /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 24; continue; } - i$1 = _i$1; - x = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); - if (i$1 > 0) { - buf$2[0].WriteString(", "); - } - $r = w$1.typ(x); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$1++; - $s = 23; continue; - case 24: - buf$2[0].WriteByte(93); - arg = new $String(buf$2[0].String()); - $s = 13; continue; - /* } else if ($assertType(_ref$1, sliceType$9, true)[1]) { */ case 12: - a$9 = _ref$1.$val; - buf$3[0] = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); - w$2 = newTypeWriter(buf$3[0], qf); - w$2.tpSubscripts = tpSubscripts; - buf$3[0].WriteByte(91); - _ref$3 = a$9; - _i$2 = 0; - /* while (true) { */ case 26: - /* if (!(_i$2 < _ref$3.$length)) { break; } */ if(!(_i$2 < _ref$3.$length)) { $s = 27; continue; } - i$2 = _i$2; - x$1 = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]); - if (i$2 > 0) { - buf$3[0].WriteString(", "); - } - $r = w$2.typ(x$1); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$2++; - $s = 26; continue; - case 27: - buf$3[0].WriteByte(93); - arg = new $String(buf$3[0].String()); - /* } */ case 13: - ((i < 0 || i >= args.$length) ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + i] = arg); - _i++; - $s = 1; continue; - case 2: - _r$6 = fmt.Sprintf(format, args); /* */ $s = 29; case 29: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - $24r = _r$6; - $s = 30; case 30: return $24r; - /* */ } return; } var $f = {$blk: sprintf$2, $c: true, $r, $24r, _i, _i$1, _i$2, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _ref$1, _ref$2, _ref$3, a, a$1, a$2, a$3, a$4, a$5, a$6, a$7, a$8, a$9, arg, args, buf, buf$1, buf$2, buf$3, format, fset, i, i$1, i$2, qf, tpSubscripts, w, w$1, w$2, x, x$1, $s};return $f; - }; - $ptrType(Checker).prototype.trace = function trace(pos$1, format, args) { - var {_arg, _arg$1, _arg$2, _r$1, _r$2, _r$3, args, check, format, pos$1, x, $s, $r, $c} = $restore(this, {pos$1, format, args}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = check.fset.Position(pos$1); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _arg = (x = _r$1, new x.constructor.elem(x)); - _arg$1 = new $String(strings.Repeat(". ", check.indent)); - _r$2 = sprintf(check.fset, $methodVal(check, "qualifier"), true, format, args); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _arg$2 = new $String(_r$2); - _r$3 = fmt.Printf("%s:\t%s%s\n", new sliceType$6([_arg, _arg$1, _arg$2])); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$3; - $s = -1; return; - /* */ } return; } var $f = {$blk: trace, $c: true, $r, _arg, _arg$1, _arg$2, _r$1, _r$2, _r$3, args, check, format, pos$1, x, $s};return $f; + re = this; + _r = re.doMatch($ifaceNil, sliceType$4.nil, s); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: MatchString$1, $c: true, $r, $24r, _r, re, s, $s};return $f; }; - $ptrType(Checker).prototype.dump = function dump(format, args) { - var {_r$1, _r$2, args, check, format, $s, $r, $c} = $restore(this, {format, args}); + $ptrType(Regexp).prototype.Match = function Match$1(b) { + var {$24r, _r, b, re, $s, $r, $c} = $restore(this, {b}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = sprintf(check.fset, $methodVal(check, "qualifier"), true, format, args); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = fmt.Println(new sliceType$6([new $String(_r$1)])); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - $s = -1; return; - /* */ } return; } var $f = {$blk: dump, $c: true, $r, _r$1, _r$2, args, check, format, $s};return $f; + re = this; + _r = re.doMatch($ifaceNil, b, ""); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Match$1, $c: true, $r, $24r, _r, b, re, $s};return $f; }; - $ptrType(Checker).prototype.report = function report(errp) { - var {_1, _r$1, _r$2, _r$3, check, e, err, errp, f, isInvalidErr, msg$1, msg$2, pos$1, span, span$1, x, x$1, $s, $r, $c} = $restore(this, {errp}); + $ptrType(Regexp).prototype.ReplaceAllString = function ReplaceAllString(src, repl) { + var {_r, b, n, re, repl, src, $s, $r, $c} = $restore(this, {src, repl}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - if (errp.empty()) { - $panic(new $String("empty error details")); - } - _r$1 = errp.msg(check.fset, $methodVal(check, "qualifier")); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - msg$1 = _r$1; - _1 = errp.code; - if (_1 === (-1)) { - msg$1 = "invalid AST: " + msg$1; - } else if (_1 === (0)) { - $panic(new $String("no error code provided")); - } - _r$2 = spanOf((x = errp.desc, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).posn); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - span = $clone(_r$2, posSpan); - e = new Error.ptr(check.fset, span.pos, msg$1, errp.soft, errp.code, span.start, span.end); - isInvalidErr = strings.Index(e.Msg, "invalid operand") > 0 || strings.Index(e.Msg, "invalid type") > 0; - if (!($interfaceIsEqual(check.firstErr, $ifaceNil)) && isInvalidErr) { - $s = -1; return; - } - e.Msg = stripAnnotations(e.Msg); - /* */ if (!($interfaceIsEqual(check.environment.errpos, $ifaceNil))) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!($interfaceIsEqual(check.environment.errpos, $ifaceNil))) { */ case 3: - _r$3 = spanOf(check.environment.errpos); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - span$1 = $clone(_r$3, posSpan); - e.Pos = span$1.pos; - e.go116start = span$1.start; - e.go116end = span$1.end; - /* } */ case 4: - err = $clone(e, Error); - if ($interfaceIsEqual(check.firstErr, $ifaceNil)) { - check.firstErr = new err.constructor.elem(err); - } - /* */ if (false) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (false) { */ case 6: - pos$1 = e.Pos; - msg$2 = e.Msg; - $r = check.trace(pos$1, "ERROR: %s", new sliceType$6([new $String(msg$2)])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 7: - f = check.conf.Error; - if (f === $throwNilPointerError) { - $panic((x$1 = new bailout.ptr(), new x$1.constructor.elem(x$1))); + re = [re]; + repl = [repl]; + src = [src]; + re[0] = this; + n = 2; + if (strings.Contains(repl[0], "$")) { + n = $imul(2, ((re[0].numSubexp + 1 >> 0))); } - $r = f(new err.constructor.elem(err)); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: report, $c: true, $r, _1, _r$1, _r$2, _r$3, check, e, err, errp, f, isInvalidErr, msg$1, msg$2, pos$1, span, span$1, x, x$1, $s};return $f; - }; - newErrorf = function newErrorf$1(at$1, code, format, args) { - var args, at$1, code, format; - return new error_.ptr(new sliceType$31([$clone(new errorDesc.ptr(at$1, format, args), errorDesc)]), code, false); + _r = re[0].replaceAll(sliceType$4.nil, src[0], n, (function(re, repl, src) { return function Regexp·ReplaceAllString·func1(dst, match) { + var dst, match; + return re[0].expand(dst, repl[0], sliceType$4.nil, src[0], match); + }; })(re, repl, src)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + b = _r; + $s = -1; return ($bytesToString(b)); + /* */ } return; } var $f = {$blk: ReplaceAllString, $c: true, $r, _r, b, n, re, repl, src, $s};return $f; }; - $ptrType(Checker).prototype.error = function error$1(at$1, code, msg$1) { - var {at$1, check, code, msg$1, $s, $r, $c} = $restore(this, {at$1, code, msg$1}); + $ptrType(Regexp).prototype.ReplaceAllLiteralString = function ReplaceAllLiteralString(src, repl) { + var {$24r, _r, re, repl, src, $s, $r, $c} = $restore(this, {src, repl}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - $r = check.report(newErrorf(at$1, code, msg$1, sliceType$6.nil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: error$1, $c: true, $r, at$1, check, code, msg$1, $s};return $f; + repl = [repl]; + re = this; + _r = re.replaceAll(sliceType$4.nil, src, 2, (function(repl) { return function Regexp·ReplaceAllLiteralString·func1(dst, match) { + var dst, match; + return $appendSlice(dst, repl[0]); + }; })(repl)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = ($bytesToString(_r)); + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: ReplaceAllLiteralString, $c: true, $r, $24r, _r, re, repl, src, $s};return $f; }; - $ptrType(Checker).prototype.errorf = function errorf$1(at$1, code, format, args) { - var {args, at$1, check, code, format, $s, $r, $c} = $restore(this, {at$1, code, format, args}); + $ptrType(Regexp).prototype.ReplaceAllStringFunc = function ReplaceAllStringFunc(src, repl) { + var {_r, b, re, repl, src, $s, $r, $c} = $restore(this, {src, repl}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - $r = check.report(newErrorf(at$1, code, format, args)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: errorf$1, $c: true, $r, args, at$1, check, code, format, $s};return $f; + repl = [repl]; + src = [src]; + re = this; + _r = re.replaceAll(sliceType$4.nil, src[0], 2, (function(repl, src) { return function Regexp·ReplaceAllStringFunc·func1(dst, match) { + var {$24r, _arg, _arg$1, _r, dst, match, $s, $r, $c} = $restore(this, {dst, match}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _arg = dst; + _r = repl[0]($substring(src[0], (0 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 0]), (1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = _r; + $24r = $appendSlice(_arg, _arg$1); + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Regexp·ReplaceAllStringFunc·func1, $c: true, $r, $24r, _arg, _arg$1, _r, dst, match, $s};return $f; + }; })(repl, src)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + b = _r; + $s = -1; return ($bytesToString(b)); + /* */ } return; } var $f = {$blk: ReplaceAllStringFunc, $c: true, $r, _r, b, re, repl, src, $s};return $f; }; - $ptrType(Checker).prototype.softErrorf = function softErrorf(at$1, code, format, args) { - var {args, at$1, check, code, err, format, $s, $r, $c} = $restore(this, {at$1, code, format, args}); + $ptrType(Regexp).prototype.replaceAll = function replaceAll(bsrc, src, nmatch, repl) { + var {_r, _r$1, _tuple, _tuple$1, a, bsrc, buf, dstCap, endPos, lastMatchEnd, nmatch, re, repl, searchPos, src, width, $s, $r, $c} = $restore(this, {bsrc, src, nmatch, repl}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - err = newErrorf(at$1, code, format, args); - err.soft = true; - $r = check.report(err); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: softErrorf, $c: true, $r, args, at$1, check, code, err, format, $s};return $f; + re = this; + lastMatchEnd = 0; + searchPos = 0; + buf = sliceType$4.nil; + endPos = 0; + if (!(bsrc === sliceType$4.nil)) { + endPos = bsrc.$length; + } else { + endPos = src.length; + } + if (nmatch > re.prog.NumCap) { + nmatch = re.prog.NumCap; + } + dstCap = arrayType$3.zero(); + /* while (true) { */ case 1: + /* if (!(searchPos <= endPos)) { break; } */ if(!(searchPos <= endPos)) { $s = 2; continue; } + _r = re.doExecute($ifaceNil, bsrc, src, searchPos, nmatch, $subslice(new sliceType$7(dstCap), 0, 0)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + a = _r; + if (a.$length === 0) { + /* break; */ $s = 2; continue; + } + if (!(bsrc === sliceType$4.nil)) { + buf = $appendSlice(buf, $subslice(bsrc, lastMatchEnd, (0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]))); + } else { + buf = $appendSlice(buf, $substring(src, lastMatchEnd, (0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]))); + } + /* */ if ((1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1]) > lastMatchEnd || ((0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]) === 0)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ((1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1]) > lastMatchEnd || ((0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]) === 0)) { */ case 4: + _r$1 = repl(buf, a); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + buf = _r$1; + /* } */ case 5: + lastMatchEnd = (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1]); + width = 0; + if (!(bsrc === sliceType$4.nil)) { + _tuple = utf8.DecodeRune($subslice(bsrc, searchPos)); + width = _tuple[1]; + } else { + _tuple$1 = utf8.DecodeRuneInString($substring(src, searchPos)); + width = _tuple$1[1]; + } + if ((searchPos + width >> 0) > (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1])) { + searchPos = searchPos + (width) >> 0; + } else if ((searchPos + 1 >> 0) > (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1])) { + searchPos = searchPos + (1) >> 0; + } else { + searchPos = (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1]); + } + $s = 1; continue; + case 2: + if (!(bsrc === sliceType$4.nil)) { + buf = $appendSlice(buf, $subslice(bsrc, lastMatchEnd)); + } else { + buf = $appendSlice(buf, $substring(src, lastMatchEnd)); + } + $s = -1; return buf; + /* */ } return; } var $f = {$blk: replaceAll, $c: true, $r, _r, _r$1, _tuple, _tuple$1, a, bsrc, buf, dstCap, endPos, lastMatchEnd, nmatch, re, repl, searchPos, src, width, $s};return $f; }; - $ptrType(Checker).prototype.versionErrorf = function versionErrorf(at$1, goVersion, format, args) { - var {_r$1, args, at$1, check, err, format, goVersion, msg$1, $s, $r, $c} = $restore(this, {at$1, goVersion, format, args}); + $ptrType(Regexp).prototype.ReplaceAll = function ReplaceAll(src, repl) { + var {_r, b, n, re, repl, src, srepl, $s, $r, $c} = $restore(this, {src, repl}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = check.sprintf(format, args); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - msg$1 = _r$1; - err = ptrType$104.nil; - err = newErrorf(at$1, 135, "%s requires %s or later", new sliceType$6([new $String(msg$1), new $String(goVersion)])); - $r = check.report(err); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: versionErrorf, $c: true, $r, _r$1, args, at$1, check, err, format, goVersion, msg$1, $s};return $f; - }; - $ptrType(posSpan).prototype.Pos = function Pos$4() { - var e; - e = this; - return e.pos; + re = [re]; + repl = [repl]; + src = [src]; + srepl = [srepl]; + re[0] = this; + n = 2; + if (bytes.IndexByte(repl[0], 36) >= 0) { + n = $imul(2, ((re[0].numSubexp + 1 >> 0))); + } + srepl[0] = ""; + _r = re[0].replaceAll(src[0], "", n, (function(re, repl, src, srepl) { return function Regexp·ReplaceAll·func1(dst, match) { + var dst, match; + if (!((srepl[0].length === repl[0].$length))) { + srepl[0] = ($bytesToString(repl[0])); + } + return re[0].expand(dst, srepl[0], src[0], "", match); + }; })(re, repl, src, srepl)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + b = _r; + $s = -1; return b; + /* */ } return; } var $f = {$blk: ReplaceAll, $c: true, $r, _r, b, n, re, repl, src, srepl, $s};return $f; }; - posSpan.prototype.Pos = function(...$args) { return this.$val.Pos(...$args); }; - inNode = function inNode$1(node, pos$1) { - var {_r$1, _r$2, _tmp, _tmp$1, end, node, pos$1, start, $s, $r, $c} = $restore(this, {node, pos$1}); + $ptrType(Regexp).prototype.ReplaceAllLiteral = function ReplaceAllLiteral(src, repl) { + var {$24r, _r, re, repl, src, $s, $r, $c} = $restore(this, {src, repl}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = node.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tmp = _r$1; - _r$2 = node.End(); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tmp$1 = _r$2; - start = _tmp; - end = _tmp$1; - /* */ if (false) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (false) { */ case 3: - $r = assert(start <= pos$1 && pos$1 < end); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 4: - $s = -1; return new posSpan.ptr(start, pos$1, end); - /* */ } return; } var $f = {$blk: inNode$1, $c: true, $r, _r$1, _r$2, _tmp, _tmp$1, end, node, pos$1, start, $s};return $f; + repl = [repl]; + re = this; + _r = re.replaceAll(src, "", 2, (function(repl) { return function Regexp·ReplaceAllLiteral·func1(dst, match) { + var dst, match; + return $appendSlice(dst, repl[0]); + }; })(repl)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: ReplaceAllLiteral, $c: true, $r, $24r, _r, re, repl, src, $s};return $f; }; - atPos.prototype.Pos = function Pos$5() { - var s; - s = this.$val; - return ((s >> 0)); - }; - $ptrType(atPos).prototype.Pos = function(...$args) { return new atPos(this.$get()).Pos(...$args); }; - spanOf = function spanOf$1(at$1) { - var {$24r, $24r$1, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, at$1, pos$1, pos$2, pos$3, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {at$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ref = at$1; - /* */ if (_ref === $ifaceNil) { $s = 1; continue; } - /* */ if ($assertType(_ref, posSpan, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ast.Node, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref, ptrType$62, true)[1]) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_ref === $ifaceNil) { */ case 1: - x = _ref; - $panic(new $String("nil positioner")); - $s = 6; continue; - /* } else if ($assertType(_ref, posSpan, true)[1]) { */ case 2: - x$1 = $clone(_ref.$val, posSpan); - $s = -1; return x$1; - /* } else if ($assertType(_ref, ast.Node, true)[1]) { */ case 3: - x$2 = _ref; - _r$1 = x$2.Pos(); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - pos$1 = _r$1; - _r$2 = x$2.End(); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = new posSpan.ptr(pos$1, pos$1, _r$2); - $s = 9; case 9: return $24r; - /* } else if ($assertType(_ref, ptrType$62, true)[1]) { */ case 4: - x$3 = _ref.$val; - /* */ if (!($interfaceIsEqual(x$3.expr, $ifaceNil))) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (!($interfaceIsEqual(x$3.expr, $ifaceNil))) { */ case 10: - _r$3 = x$3.Pos(); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - pos$2 = _r$3; - _r$4 = x$3.expr.End(); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $24r$1 = new posSpan.ptr(pos$2, pos$2, _r$4); - $s = 14; case 14: return $24r$1; - /* } */ case 11: - $s = -1; return new posSpan.ptr(0, 0, 0); - /* } else { */ case 5: - x$4 = _ref; - _r$5 = at$1.Pos(); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - pos$3 = _r$5; - $s = -1; return new posSpan.ptr(pos$3, pos$3, pos$3); - /* } */ case 6: - $s = -1; return new posSpan.ptr(0, 0, 0); - /* */ } return; } var $f = {$blk: spanOf$1, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, at$1, pos$1, pos$2, pos$3, x, x$1, x$2, x$3, x$4, $s};return $f; + $ptrType(Regexp).prototype.ReplaceAllFunc = function ReplaceAllFunc(src, repl) { + var {$24r, _r, re, repl, src, $s, $r, $c} = $restore(this, {src, repl}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + repl = [repl]; + src = [src]; + re = this; + _r = re.replaceAll(src[0], "", 2, (function(repl, src) { return function Regexp·ReplaceAllFunc·func1(dst, match) { + var {$24r, _arg, _arg$1, _r, dst, match, $s, $r, $c} = $restore(this, {dst, match}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _arg = dst; + _r = repl[0]($subslice(src[0], (0 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 0]), (1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = _r; + $24r = $appendSlice(_arg, _arg$1); + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: Regexp·ReplaceAllFunc·func1, $c: true, $r, $24r, _arg, _arg$1, _r, dst, match, $s};return $f; + }; })(repl, src)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: ReplaceAllFunc, $c: true, $r, $24r, _r, re, repl, src, $s};return $f; }; - stripAnnotations = function stripAnnotations$1(s) { - var _i, _ref, _rune, buf, r, s; - buf = new strings.Builder.ptr(ptrType$53.nil, sliceType$14.nil); - _ref = s; + init = function init$1() { + var _i, _index, _q, _r, _ref, b, y; + _ref = (new sliceType$4($stringToBytes("\\.+*?()|[]{}^$"))); _i = 0; while (true) { - if (!(_i < _ref.length)) { break; } - _rune = $decodeRune(_ref, _i); - r = _rune[0]; - if (r < 8320 || 8330 <= r) { - buf.WriteRune(r); - } - _i += _rune[1]; - } - if (buf.Len() < s.length) { - return buf.String(); + if (!(_i < _ref.$length)) { break; } + b = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _index = (_r = b % 16, _r === _r ? _r : $throwRuntimeError("integer divide by zero")); + ((_index < 0 || _index >= specialBytes.length) ? ($throwRuntimeError("index out of range"), undefined) : specialBytes[_index] = ((((_index < 0 || _index >= specialBytes.length) ? ($throwRuntimeError("index out of range"), undefined) : specialBytes[_index]) | (((y = ((_q = b / 16, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero"))), y < 32 ? (1 << y) : 0) << 24 >>> 24))) >>> 0)); + _i++; } - return s; - }; - $ptrType(Checker).prototype.reportAltDecl = function reportAltDecl(obj) { - var {_arg, _arg$1, _r$1, _r$2, check, obj, pos$1, $s, $r, $c} = $restore(this, {obj}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = obj.Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - pos$1 = _r$1; - /* */ if (new token.Pos(pos$1).IsValid()) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (new token.Pos(pos$1).IsValid()) { */ case 2: - _arg = obj; - _r$2 = obj.Name(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _arg$1 = new $String(_r$2); - $r = check.errorf(_arg, 10, "\tother declaration of %s", new sliceType$6([_arg$1])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 3: - $s = -1; return; - /* */ } return; } var $f = {$blk: reportAltDecl, $c: true, $r, _arg, _arg$1, _r$1, _r$2, check, obj, pos$1, $s};return $f; }; - $ptrType(Checker).prototype.declare = function declare(scope, id, obj, pos$1) { - var {_arg, _arg$1, _r$1, _r$2, _r$3, alt, check, id, obj, pos$1, scope, $s, $r, $c} = $restore(this, {scope, id, obj, pos$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = obj.Name(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (!(_r$1 === "_")) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(_r$1 === "_")) { */ case 1: - _r$2 = scope.Insert(obj); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - alt = _r$2; - /* */ if (!($interfaceIsEqual(alt, $ifaceNil))) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (!($interfaceIsEqual(alt, $ifaceNil))) { */ case 5: - _arg = obj; - _r$3 = obj.Name(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _arg$1 = new $String(_r$3); - $r = check.errorf(_arg, 10, "%s redeclared in this block", new sliceType$6([_arg$1])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.reportAltDecl(alt); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 6: - $r = obj.setScopePos(pos$1); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - /* */ if (!(id === ptrType$30.nil)) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (!(id === ptrType$30.nil)) { */ case 11: - $r = check.recordDef(id, obj); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 12: - $s = -1; return; - /* */ } return; } var $f = {$blk: declare, $c: true, $r, _arg, _arg$1, _r$1, _r$2, _r$3, alt, check, id, obj, pos$1, scope, $s};return $f; + $ptrType(Regexp).prototype.pad = function pad(a) { + var a, n, re; + re = this; + if (a === sliceType$7.nil) { + return sliceType$7.nil; + } + n = $imul(((1 + re.numSubexp >> 0)), 2); + while (true) { + if (!(a.$length < n)) { break; } + a = $append(a, -1); + } + return a; }; - pathString = function pathString$1(path) { - var {_i, _r$1, _ref, i, p, path, s, $s, $r, $c} = $restore(this, {path}); + $ptrType(Regexp).prototype.allMatches = function allMatches(s, b, n, deliver) { + var {_r, _tmp, _tmp$1, _tmp$2, _tuple, _tuple$1, accept, b, deliver, end, i, ib, is, matches, n, pos, prevMatchEnd, re, s, width, $s, $r, $c} = $restore(this, {s, b, n, deliver}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - s = ""; - _ref = path; - _i = 0; + re = this; + end = 0; + if (b === sliceType$4.nil) { + end = s.length; + } else { + end = b.$length; + } + _tmp = 0; + _tmp$1 = 0; + _tmp$2 = -1; + pos = _tmp; + i = _tmp$1; + prevMatchEnd = _tmp$2; /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - p = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (i > 0) { - s = s + ("->"); + /* if (!(i < n && pos <= end)) { break; } */ if(!(i < n && pos <= end)) { $s = 2; continue; } + _r = re.doExecute($ifaceNil, b, s, pos, re.prog.NumCap, sliceType$7.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + matches = _r; + if (matches.$length === 0) { + /* break; */ $s = 2; continue; } - _r$1 = p.Name(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - s = s + (_r$1); - _i++; - $s = 1; continue; - case 2: - $s = -1; return s; - /* */ } return; } var $f = {$blk: pathString$1, $c: true, $r, _i, _r$1, _ref, i, p, path, s, $s};return $f; - }; - $ptrType(Checker).prototype.objDecl = function objDecl(obj, def$2) { - var {_1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _entry, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _v, _v$1, check, d, def$2, obj, obj$1, obj$10, obj$2, obj$3, obj$4, obj$5, obj$6, obj$7, obj$8, obj$9, $s, $deferred, $r, $c} = $restore(this, {obj, def$2}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - check = [check]; - obj = [obj]; - check[0] = this; - if (!(false)) { _v = false; $s = 3; continue s; } - _r$1 = obj[0].Type(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = $interfaceIsEqual(_r$1, $ifaceNil); case 3: - /* */ if (_v) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (_v) { */ case 1: - /* */ if (check[0].indent === 0) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (check[0].indent === 0) { */ case 5: - _r$2 = fmt.Println(sliceType$6.nil); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - /* } */ case 6: - _r$3 = obj[0].Pos(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _arg = _r$3; - _arg$1 = obj[0]; - _r$4 = obj[0].color(); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _arg$2 = new color(_r$4); - _r$5 = pathString(check[0].objPath); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _arg$3 = new $String(_r$5); - $r = check[0].trace(_arg, "-- checking %s (%s, objPath = %s)", new sliceType$6([_arg$1, _arg$2, _arg$3])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - check[0].indent = check[0].indent + (1) >> 0; - $deferred.push([(function(check, obj) { return function Checker·objDecl·func1() { - var {_arg$4, _arg$5, _arg$6, _r$6, _r$7, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check[0].indent = check[0].indent - (1) >> 0; - _r$6 = obj[0].Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _arg$4 = _r$6; - _arg$5 = obj[0]; - _r$7 = obj[0].color(); /* */ $s = 2; case 2: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _arg$6 = new color(_r$7); - $r = check[0].trace(_arg$4, "=> %s (%s)", new sliceType$6([_arg$5, _arg$6])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·objDecl·func1, $c: true, $r, _arg$4, _arg$5, _arg$6, _r$6, _r$7, $s};return $f; - }; })(check, obj), []]); - /* } */ case 2: - _r$6 = obj[0].color(); /* */ $s = 15; case 15: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - if (!(_r$6 === 0)) { _v$1 = false; $s = 14; continue s; } - _r$7 = obj[0].Type(); /* */ $s = 16; case 16: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _v$1 = !($interfaceIsEqual(_r$7, $ifaceNil)); case 14: - /* */ if (_v$1) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (_v$1) { */ case 12: - $r = obj[0].setColor(1); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 18; case 18: return; - /* } */ case 13: - _r$8 = obj[0].color(); /* */ $s = 20; case 20: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _1 = _r$8; - /* */ if (_1 === (0)) { $s = 21; continue; } - /* */ if (_1 === (1)) { $s = 22; continue; } - /* */ if (_1 === (2)) { $s = 23; continue; } - /* */ $s = 24; continue; - /* if (_1 === (0)) { */ case 21: - _r$9 = obj[0].Type(); /* */ $s = 26; case 26: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - $r = assert($interfaceIsEqual(_r$9, $ifaceNil)); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = obj[0].setColor(2 + ((check[0].push(obj[0]) >>> 0)) >>> 0); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([(function(check, obj) { return function Checker·objDecl·func2() { - var {$s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = check[0].pop().setColor(1); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·objDecl·func2, $c: true, $r, $s};return $f; - }; })(check, obj), []]); - $s = 25; continue; - /* } else if (_1 === (1)) { */ case 22: - _r$10 = obj[0].Type(); /* */ $s = 29; case 29: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - $r = assert(!($interfaceIsEqual(_r$10, $ifaceNil))); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 31; case 31: return; - /* } else if (_1 === (2)) { */ case 23: - _ref = obj[0]; - /* */ if ($assertType(_ref, ptrType$32, true)[1]) { $s = 32; continue; } - /* */ if ($assertType(_ref, ptrType$16, true)[1]) { $s = 33; continue; } - /* */ if ($assertType(_ref, ptrType$17, true)[1]) { $s = 34; continue; } - /* */ if ($assertType(_ref, ptrType$2, true)[1]) { $s = 35; continue; } - /* */ $s = 36; continue; - /* if ($assertType(_ref, ptrType$32, true)[1]) { */ case 32: - obj$1 = _ref.$val; - _r$11 = check[0].validCycle(obj$1); /* */ $s = 40; case 40: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - /* */ if (!_r$11 || $interfaceIsEqual(obj$1.object.typ, $ifaceNil)) { $s = 38; continue; } - /* */ $s = 39; continue; - /* if (!_r$11 || $interfaceIsEqual(obj$1.object.typ, $ifaceNil)) { */ case 38: - obj$1.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - /* } */ case 39: - $s = 37; continue; - /* } else if ($assertType(_ref, ptrType$16, true)[1]) { */ case 33: - obj$2 = _ref.$val; - _r$12 = check[0].validCycle(obj$2); /* */ $s = 43; case 43: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - /* */ if (!_r$12 || $interfaceIsEqual(obj$2.object.typ, $ifaceNil)) { $s = 41; continue; } - /* */ $s = 42; continue; - /* if (!_r$12 || $interfaceIsEqual(obj$2.object.typ, $ifaceNil)) { */ case 41: - obj$2.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - /* } */ case 42: - $s = 37; continue; - /* } else if ($assertType(_ref, ptrType$17, true)[1]) { */ case 34: - obj$3 = _ref.$val; - _r$13 = check[0].validCycle(obj$3); /* */ $s = 46; case 46: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - /* */ if (!_r$13) { $s = 44; continue; } - /* */ $s = 45; continue; - /* if (!_r$13) { */ case 44: - obj$3.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - /* } */ case 45: - $s = 37; continue; - /* } else if ($assertType(_ref, ptrType$2, true)[1]) { */ case 35: - obj$4 = _ref.$val; - _r$14 = check[0].validCycle(obj$4); /* */ $s = 49; case 49: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - /* */ if (!_r$14) { $s = 47; continue; } - /* */ $s = 48; continue; - /* if (!_r$14) { */ case 47: - /* } */ case 48: - $s = 37; continue; - /* } else { */ case 36: - obj$5 = _ref; - unreachable(); - /* } */ case 37: - _r$15 = obj[0].Type(); /* */ $s = 50; case 50: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - $r = assert(!($interfaceIsEqual(_r$15, $ifaceNil))); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 52; case 52: return; - /* } else { */ case 24: - _ref$1 = obj[0]; - /* */ if ($assertType(_ref$1, ptrType$32, true)[1]) { $s = 53; continue; } - /* */ if ($assertType(_ref$1, ptrType$16, true)[1]) { $s = 54; continue; } - /* */ if ($assertType(_ref$1, ptrType$17, true)[1]) { $s = 55; continue; } - /* */ if ($assertType(_ref$1, ptrType$2, true)[1]) { $s = 56; continue; } - /* */ $s = 57; continue; - /* if ($assertType(_ref$1, ptrType$32, true)[1]) { */ case 53: - obj$1 = _ref$1.$val; - _r$16 = check[0].validCycle(obj$1); /* */ $s = 61; case 61: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - /* */ if (!_r$16 || $interfaceIsEqual(obj$1.object.typ, $ifaceNil)) { $s = 59; continue; } - /* */ $s = 60; continue; - /* if (!_r$16 || $interfaceIsEqual(obj$1.object.typ, $ifaceNil)) { */ case 59: - obj$1.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - /* } */ case 60: - $s = 58; continue; - /* } else if ($assertType(_ref$1, ptrType$16, true)[1]) { */ case 54: - obj$2 = _ref$1.$val; - _r$17 = check[0].validCycle(obj$2); /* */ $s = 64; case 64: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - /* */ if (!_r$17 || $interfaceIsEqual(obj$2.object.typ, $ifaceNil)) { $s = 62; continue; } - /* */ $s = 63; continue; - /* if (!_r$17 || $interfaceIsEqual(obj$2.object.typ, $ifaceNil)) { */ case 62: - obj$2.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - /* } */ case 63: - $s = 58; continue; - /* } else if ($assertType(_ref$1, ptrType$17, true)[1]) { */ case 55: - obj$3 = _ref$1.$val; - _r$18 = check[0].validCycle(obj$3); /* */ $s = 67; case 67: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - /* */ if (!_r$18) { $s = 65; continue; } - /* */ $s = 66; continue; - /* if (!_r$18) { */ case 65: - obj$3.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - /* } */ case 66: - $s = 58; continue; - /* } else if ($assertType(_ref$1, ptrType$2, true)[1]) { */ case 56: - obj$4 = _ref$1.$val; - _r$19 = check[0].validCycle(obj$4); /* */ $s = 70; case 70: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - /* */ if (!_r$19) { $s = 68; continue; } - /* */ $s = 69; continue; - /* if (!_r$19) { */ case 68: - /* } */ case 69: - $s = 58; continue; - /* } else { */ case 57: - obj$5 = _ref$1; - unreachable(); - /* } */ case 58: - _r$20 = obj[0].Type(); /* */ $s = 71; case 71: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - $r = assert(!($interfaceIsEqual(_r$20, $ifaceNil))); /* */ $s = 72; case 72: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 73; case 73: return; - /* } */ case 25: - case 19: - d = (_entry = $mapIndex(check[0].objMap,Object.keyFor(obj[0])), _entry !== undefined ? _entry.v : ptrType$58.nil); - /* */ if (d === ptrType$58.nil) { $s = 74; continue; } - /* */ $s = 75; continue; - /* if (d === ptrType$58.nil) { */ case 74: - _r$21 = obj[0].Pos(); /* */ $s = 76; case 76: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } - _arg$4 = new token.Pos(_r$21); - _arg$5 = obj[0]; - $r = check[0].dump("%v: %s should have been declared", new sliceType$6([_arg$4, _arg$5])); /* */ $s = 77; case 77: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - unreachable(); - /* } */ case 75: - $deferred.push([(function(check, obj) { return function Checker·objDecl·func3(env) { - var env; - environment.copy(check[0].environment, env); - }; })(check, obj), [$clone(check[0].environment, environment)]]); - environment.copy(check[0].environment, new environment.ptr(ptrType$58.nil, d.file, 0, $ifaceNil, $ifaceNil, false, ptrType$27.nil, false, false, false)); - _ref$2 = obj[0]; - /* */ if ($assertType(_ref$2, ptrType$32, true)[1]) { $s = 78; continue; } - /* */ if ($assertType(_ref$2, ptrType$16, true)[1]) { $s = 79; continue; } - /* */ if ($assertType(_ref$2, ptrType$17, true)[1]) { $s = 80; continue; } - /* */ if ($assertType(_ref$2, ptrType$2, true)[1]) { $s = 81; continue; } - /* */ $s = 82; continue; - /* if ($assertType(_ref$2, ptrType$32, true)[1]) { */ case 78: - obj$6 = _ref$2.$val; - check[0].environment.decl = d; - $r = check[0].constDecl(obj$6, d.vtyp, d.init, d.inherited); /* */ $s = 84; case 84: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 83; continue; - /* } else if ($assertType(_ref$2, ptrType$16, true)[1]) { */ case 79: - obj$7 = _ref$2.$val; - check[0].environment.decl = d; - $r = check[0].varDecl(obj$7, d.lhs, d.vtyp, d.init); /* */ $s = 85; case 85: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 83; continue; - /* } else if ($assertType(_ref$2, ptrType$17, true)[1]) { */ case 80: - obj$8 = _ref$2.$val; - $r = check[0].typeDecl(obj$8, d.tdecl, def$2); /* */ $s = 86; case 86: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].collectMethods(obj$8); /* */ $s = 87; case 87: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 83; continue; - /* } else if ($assertType(_ref$2, ptrType$2, true)[1]) { */ case 81: - obj$9 = _ref$2.$val; - $r = check[0].funcDecl(obj$9, d); /* */ $s = 88; case 88: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 83; continue; - /* } else { */ case 82: - obj$10 = _ref$2; - unreachable(); - /* } */ case 83: - $s = -1; return; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: objDecl, $c: true, $r, _1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _entry, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _v, _v$1, check, d, def$2, obj, obj$1, obj$10, obj$2, obj$3, obj$4, obj$5, obj$6, obj$7, obj$8, obj$9, $s, $deferred};return $f; } } - }; - $ptrType(Checker).prototype.validCycle = function validCycle(obj) { - var {$24r, $24r$1, $24r$2, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _entry, _entry$1, _i, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _v, alias, check, cycle, d, inObjMap, info, isPkgObj, ndef, nval, obj, obj$1, obj$2, obj$3, obj$4, obj$5, start, tparCycle, valid, $s, $deferred, $r, $c} = $restore(this, {obj}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - check = [check]; - obj = [obj]; - valid = [valid]; - valid[0] = false; - check[0] = this; - /* */ if (false) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (false) { */ case 1: - info = (_entry = $mapIndex(check[0].objMap,Object.keyFor(obj[0])), _entry !== undefined ? _entry.v : ptrType$58.nil); - inObjMap = !(info === ptrType$58.nil) && (info.fdecl === ptrType$87.nil || info.fdecl.Recv === ptrType$49.nil); - _r$1 = obj[0].Parent(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - isPkgObj = _r$1 === check[0].pkg.scope; - /* */ if (!(isPkgObj === inObjMap)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (!(isPkgObj === inObjMap)) { */ case 4: - _r$2 = obj[0].Pos(); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _arg = new token.Pos(_r$2); - _arg$1 = obj[0]; - _arg$2 = new $Bool(isPkgObj); - _arg$3 = new $Bool(inObjMap); - $r = check[0].dump("%v: inconsistent object map for %s (isPkgObj = %v, inObjMap = %v)", new sliceType$6([_arg, _arg$1, _arg$2, _arg$3])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - unreachable(); - /* } */ case 5: - /* } */ case 2: - _r$3 = obj[0].color(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $r = assert(_r$3 >= 2); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$4 = obj[0].color(); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - start = _r$4 - 2 >>> 0; - cycle = $subslice(check[0].objPath, start); - tparCycle = false; - nval = 0; - ndef = 0; - _ref = cycle; - _i = 0; - /* while (true) { */ case 11: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 12; continue; } - obj$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _ref$1 = obj$1; - /* */ if ($assertType(_ref$1, ptrType$32, true)[1] || $assertType(_ref$1, ptrType$16, true)[1]) { $s = 13; continue; } - /* */ if ($assertType(_ref$1, ptrType$17, true)[1]) { $s = 14; continue; } - /* */ if ($assertType(_ref$1, ptrType$2, true)[1]) { $s = 15; continue; } - /* */ $s = 16; continue; - /* if ($assertType(_ref$1, ptrType$32, true)[1] || $assertType(_ref$1, ptrType$16, true)[1]) { */ case 13: - obj$2 = _ref$1; - nval = nval + (1) >> 0; - $s = 17; continue; - /* } else if ($assertType(_ref$1, ptrType$17, true)[1]) { */ case 14: - obj$3 = _ref$1.$val; - if (!(check[0].environment.inTParamList)) { _v = false; $s = 20; continue s; } - _r$5 = isGeneric(obj$3.object.typ); /* */ $s = 21; case 21: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _v = _r$5; case 20: - /* */ if (_v) { $s = 18; continue; } - /* */ $s = 19; continue; - /* if (_v) { */ case 18: - tparCycle = true; - /* break loop; */ $s = 12; continue s; - /* } */ case 19: - alias = false; - d = (_entry$1 = $mapIndex(check[0].objMap,Object.keyFor(obj$3)), _entry$1 !== undefined ? _entry$1.v : ptrType$58.nil); - if (!(d === ptrType$58.nil)) { - alias = new token.Pos(d.tdecl.Assign).IsValid(); + accept = true; + if ((1 >= matches.$length ? ($throwRuntimeError("index out of range"), undefined) : matches.$array[matches.$offset + 1]) === pos) { + if ((0 >= matches.$length ? ($throwRuntimeError("index out of range"), undefined) : matches.$array[matches.$offset + 0]) === prevMatchEnd) { + accept = false; + } + width = 0; + if (b === sliceType$4.nil) { + is = new inputString.ptr(s); + _tuple = is.step(pos); + width = _tuple[1]; } else { - alias = obj$3.IsAlias(); + ib = new inputBytes.ptr(b); + _tuple$1 = ib.step(pos); + width = _tuple$1[1]; } - if (!alias) { - ndef = ndef + (1) >> 0; + if (width > 0) { + pos = pos + (width) >> 0; + } else { + pos = end + 1 >> 0; } - $s = 17; continue; - /* } else if ($assertType(_ref$1, ptrType$2, true)[1]) { */ case 15: - obj$4 = _ref$1.$val; - $s = 17; continue; - /* } else { */ case 16: - obj$5 = _ref$1; - unreachable(); - /* } */ case 17: - _i++; - $s = 11; continue; - case 12: - /* */ if (false) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if (false) { */ case 22: - _r$6 = obj[0].Pos(); /* */ $s = 24; case 24: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _arg$4 = _r$6; - _r$7 = pathString(cycle); /* */ $s = 25; case 25: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _arg$5 = new $String(_r$7); - _r$8 = obj[0].Name(); /* */ $s = 26; case 26: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _arg$6 = new $String(_r$8); - _arg$7 = new $Int(cycle.$length); - $r = check[0].trace(_arg$4, "## cycle detected: objPath = %s->%s (len = %d)", new sliceType$6([_arg$5, _arg$6, _arg$7])); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (tparCycle) { $s = 28; continue; } - /* */ $s = 29; continue; - /* if (tparCycle) { */ case 28: - _r$9 = obj[0].Pos(); /* */ $s = 31; case 31: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - $r = check[0].trace(_r$9, "## cycle contains: generic type in a type parameter list", sliceType$6.nil); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 30; continue; - /* } else { */ case 29: - _r$10 = obj[0].Pos(); /* */ $s = 33; case 33: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - $r = check[0].trace(_r$10, "## cycle contains: %d values, %d type definitions", new sliceType$6([new $Int(nval), new $Int(ndef)])); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 30: - $deferred.push([(function(check, obj, valid) { return function Checker·validCycle·func1() { - var {_r$11, _r$12, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - /* */ if (valid[0]) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (valid[0]) { */ case 1: - _r$11 = obj[0].Pos(); /* */ $s = 4; case 4: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - $r = check[0].trace(_r$11, "=> cycle is valid", sliceType$6.nil); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 3; continue; - /* } else { */ case 2: - _r$12 = obj[0].Pos(); /* */ $s = 6; case 6: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - $r = check[0].trace(_r$12, "=> error: cycle is invalid", sliceType$6.nil); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 3: - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·validCycle·func1, $c: true, $r, _r$11, _r$12, $s};return $f; - }; })(check, obj, valid), []]); - /* } */ case 23: - /* */ if (!tparCycle) { $s = 35; continue; } - /* */ $s = 36; continue; - /* if (!tparCycle) { */ case 35: - /* */ if (nval === cycle.$length) { $s = 37; continue; } - /* */ $s = 38; continue; - /* if (nval === cycle.$length) { */ case 37: - valid[0] = true; - $24r = valid[0]; - $s = 39; case 39: return $24r; - /* } */ case 38: - /* */ if ((nval === 0) && ndef > 0) { $s = 40; continue; } - /* */ $s = 41; continue; - /* if ((nval === 0) && ndef > 0) { */ case 40: - valid[0] = true; - $24r$1 = valid[0]; - $s = 42; case 42: return $24r$1; - /* } */ case 41: - /* } */ case 36: - $r = check[0].cycleError(cycle); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - valid[0] = false; - $24r$2 = valid[0]; - $s = 44; case 44: return $24r$2; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return valid[0]; } if($curGoroutine.asleep) { var $f = {$blk: validCycle, $c: true, $r, $24r, $24r$1, $24r$2, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _entry, _entry$1, _i, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _v, alias, check, cycle, d, inObjMap, info, isPkgObj, ndef, nval, obj, obj$1, obj$2, obj$3, obj$4, obj$5, start, tparCycle, valid, $s, $deferred};return $f; } } - }; - $ptrType(Checker).prototype.cycleError = function cycleError(cycle) { - var {_i, _r$1, _r$2, _r$3, _ref, _tuple, check, cycle, i, name, obj, objName, tname, $s, $r, $c} = $restore(this, {cycle}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = [check]; - check[0] = this; - name = (function(check) { return function Checker·cycleError·func1(obj) { - var {$24r, _r$1, _r$2, _r$3, obj, $s, $r, $c} = $restore(this, {obj}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = obj.Pkg(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$2 = packagePrefix(_r$1, $methodVal(check[0], "qualifier")); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = obj.Name(); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r = _r$2 + _r$3; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: Checker·cycleError·func1, $c: true, $r, $24r, _r$1, _r$2, _r$3, obj, $s};return $f; - }; })(check); - _r$1 = firstInSrc(cycle); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - i = _r$1; - obj = ((i < 0 || i >= cycle.$length) ? ($throwRuntimeError("index out of range"), undefined) : cycle.$array[cycle.$offset + i]); - _r$2 = name(obj); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - objName = _r$2; - _tuple = $assertType(obj, ptrType$17, true); - tname = _tuple[0]; - if (!(tname === ptrType$17.nil) && tname.IsAlias()) { - check[0].validAlias(tname, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])); - } - /* */ if (cycle.$length === 1) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (cycle.$length === 1) { */ case 3: - /* */ if (!(tname === ptrType$17.nil)) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (!(tname === ptrType$17.nil)) { */ case 5: - $r = check[0].errorf(obj, 11, "invalid recursive type: %s refers to itself", new sliceType$6([new $String(objName)])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 7; continue; - /* } else { */ case 6: - $r = check[0].errorf(obj, 11, "invalid cycle in declaration: %s refers to itself", new sliceType$6([new $String(objName)])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 7: - $s = -1; return; - /* } */ case 4: - /* */ if (!(tname === ptrType$17.nil)) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (!(tname === ptrType$17.nil)) { */ case 10: - $r = check[0].errorf(obj, 11, "invalid recursive type %s", new sliceType$6([new $String(objName)])); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 12; continue; - /* } else { */ case 11: - $r = check[0].errorf(obj, 11, "invalid cycle in declaration of %s", new sliceType$6([new $String(objName)])); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 12: - _ref = cycle; - _i = 0; - /* while (true) { */ case 15: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 16; continue; } - $r = check[0].errorf(obj, 11, "\t%s refers to", new sliceType$6([new $String(objName)])); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - i = i + (1) >> 0; - if (i >= cycle.$length) { - i = 0; + } else { + pos = (1 >= matches.$length ? ($throwRuntimeError("index out of range"), undefined) : matches.$array[matches.$offset + 1]); } - obj = ((i < 0 || i >= cycle.$length) ? ($throwRuntimeError("index out of range"), undefined) : cycle.$array[cycle.$offset + i]); - _r$3 = name(obj); /* */ $s = 18; case 18: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - objName = _r$3; - _i++; - $s = 15; continue; - case 16: - $r = check[0].errorf(obj, 11, "\t%s", new sliceType$6([new $String(objName)])); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: cycleError, $c: true, $r, _i, _r$1, _r$2, _r$3, _ref, _tuple, check, cycle, i, name, obj, objName, tname, $s};return $f; - }; - firstInSrc = function firstInSrc$1(path) { - var {_i, _r$1, _r$2, _r$3, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, fst, i, path, pos$1, t, $s, $r, $c} = $restore(this, {path}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _tmp = 0; - _r$1 = (0 >= path.$length ? ($throwRuntimeError("index out of range"), undefined) : path.$array[path.$offset + 0]).Pos(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tmp$1 = _r$1; - fst = _tmp; - pos$1 = _tmp$1; - _ref = $subslice(path, 1); - _i = 0; - /* while (true) { */ case 2: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } - i = _i; - t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$2 = t.Pos(); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (_r$2 < pos$1) { $s = 4; continue; } + prevMatchEnd = (1 >= matches.$length ? ($throwRuntimeError("index out of range"), undefined) : matches.$array[matches.$offset + 1]); + /* */ if (accept) { $s = 4; continue; } /* */ $s = 5; continue; - /* if (_r$2 < pos$1) { */ case 4: - _tmp$2 = i + 1 >> 0; - _r$3 = t.Pos(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tmp$3 = _r$3; - fst = _tmp$2; - pos$1 = _tmp$3; + /* if (accept) { */ case 4: + $r = deliver(re.pad(matches)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i + (1) >> 0; /* } */ case 5: - _i++; - $s = 2; continue; - case 3: - $s = -1; return fst; - /* */ } return; } var $f = {$blk: firstInSrc$1, $c: true, $r, _i, _r$1, _r$2, _r$3, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, fst, i, path, pos$1, t, $s};return $f; - }; - $ptrType(importDecl).prototype.node = function node() { - var d; - d = this; - return d.spec; - }; - importDecl.prototype.node = function(...$args) { return this.$val.node(...$args); }; - $ptrType(constDecl).prototype.node = function node$1() { - var d; - d = this; - return d.spec; - }; - constDecl.prototype.node = function(...$args) { return this.$val.node(...$args); }; - $ptrType(varDecl).prototype.node = function node$2() { - var d; - d = this; - return d.spec; - }; - varDecl.prototype.node = function(...$args) { return this.$val.node(...$args); }; - $ptrType(typeDecl).prototype.node = function node$3() { - var d; - d = this; - return d.spec; - }; - typeDecl.prototype.node = function(...$args) { return this.$val.node(...$args); }; - $ptrType(funcDecl).prototype.node = function node$4() { - var d; - d = this; - return d.decl; - }; - funcDecl.prototype.node = function(...$args) { return this.$val.node(...$args); }; - $ptrType(Checker).prototype.walkDecls = function walkDecls(decls, f) { - var {_i, _ref, check, d, decls, f, $s, $r, $c} = $restore(this, {decls, f}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _ref = decls; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - d = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - $r = check.walkDecl(d, f); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; $s = 1; continue; case 2: $s = -1; return; - /* */ } return; } var $f = {$blk: walkDecls, $c: true, $r, _i, _ref, check, d, decls, f, $s};return $f; + /* */ } return; } var $f = {$blk: allMatches, $c: true, $r, _r, _tmp, _tmp$1, _tmp$2, _tuple, _tuple$1, accept, b, deliver, end, i, ib, is, matches, n, pos, prevMatchEnd, re, s, width, $s};return $f; }; - $ptrType(Checker).prototype.walkDecl = function walkDecl(d, f) { - var {_1, _i, _ref, _ref$1, _ref$2, check, d, d$1, d$2, d$3, d$4, f, inherited, iota, last, s, s$1, s$2, s$3, s$4, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {d, f}); + $ptrType(Regexp).prototype.Find = function Find(b) { + var {_r, a, b, dstCap, re, $s, $r, $c} = $restore(this, {b}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _ref = d; - /* */ if ($assertType(_ref, ptrType$105, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, ptrType$93, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, ptrType$87, true)[1]) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if ($assertType(_ref, ptrType$105, true)[1]) { */ case 1: - d$1 = _ref.$val; - $s = 5; continue; - /* } else if ($assertType(_ref, ptrType$93, true)[1]) { */ case 2: - d$2 = _ref.$val; - last = ptrType$88.nil; - _ref$1 = d$2.Specs; - _i = 0; - /* while (true) { */ case 6: - /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 7; continue; } - iota = _i; - s = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); - _ref$2 = s; - /* */ if ($assertType(_ref$2, ptrType$106, true)[1]) { $s = 8; continue; } - /* */ if ($assertType(_ref$2, ptrType$88, true)[1]) { $s = 9; continue; } - /* */ if ($assertType(_ref$2, ptrType$90, true)[1]) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if ($assertType(_ref$2, ptrType$106, true)[1]) { */ case 8: - s$1 = _ref$2.$val; - $r = f((x = new importDecl.ptr(s$1), new x.constructor.elem(x))); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 12; continue; - /* } else if ($assertType(_ref$2, ptrType$88, true)[1]) { */ case 9: - s$2 = _ref$2.$val; - _1 = d$2.Tok; - /* */ if (_1 === (64)) { $s = 15; continue; } - /* */ if (_1 === (85)) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (_1 === (64)) { */ case 15: - inherited = true; - if (!($interfaceIsEqual(s$2.Type, $ifaceNil)) || s$2.Values.$length > 0) { - last = s$2; - inherited = false; - } else if (last === ptrType$88.nil) { - last = new ast.ValueSpec.ptr(ptrType$107.nil, sliceType$22.nil, $ifaceNil, sliceType$11.nil, ptrType$107.nil); - inherited = false; - } - $r = check.arityMatch(s$2, last); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = f((x$1 = new constDecl.ptr(s$2, iota, last.Type, last.Values, inherited), new x$1.constructor.elem(x$1))); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 18; continue; - /* } else if (_1 === (85)) { */ case 16: - $r = check.arityMatch(s$2, ptrType$88.nil); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = f((x$2 = new varDecl.ptr(s$2), new x$2.constructor.elem(x$2))); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 18; continue; - /* } else { */ case 17: - $r = check.errorf(s$2, -1, "invalid token %s", new sliceType$6([new token.Token(d$2.Tok)])); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 18: - case 14: - $s = 12; continue; - /* } else if ($assertType(_ref$2, ptrType$90, true)[1]) { */ case 10: - s$3 = _ref$2.$val; - $r = f((x$3 = new typeDecl.ptr(s$3), new x$3.constructor.elem(x$3))); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 12; continue; - /* } else { */ case 11: - s$4 = _ref$2; - $r = check.errorf(s$4, -1, "unknown ast.Spec node %T", new sliceType$6([s$4])); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 12: - _i++; - $s = 6; continue; - case 7: - $s = 5; continue; - /* } else if ($assertType(_ref, ptrType$87, true)[1]) { */ case 3: - d$3 = _ref.$val; - $r = f((x$4 = new funcDecl.ptr(d$3), new x$4.constructor.elem(x$4))); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 5; continue; - /* } else { */ case 4: - d$4 = _ref; - $r = check.errorf(d$4, -1, "unknown ast.Decl node %T", new sliceType$6([d$4])); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 5: - $s = -1; return; - /* */ } return; } var $f = {$blk: walkDecl, $c: true, $r, _1, _i, _ref, _ref$1, _ref$2, check, d, d$1, d$2, d$3, d$4, f, inherited, iota, last, s, s$1, s$2, s$3, s$4, x, x$1, x$2, x$3, x$4, $s};return $f; - }; - $ptrType(Checker).prototype.constDecl = function constDecl$1(obj, typ$4, init$7, inherited) { - var {_r$1, _r$2, _r$3, check, inherited, init$7, obj, t, typ$4, x, $s, $deferred, $r, $c} = $restore(this, {obj, typ$4, init$7, inherited}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - check = [check]; - x = [x]; - check[0] = this; - $r = assert($interfaceIsEqual(obj.object.typ, $ifaceNil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([(function(check, x) { return function Checker·constDecl·func1(iota, errpos) { - var errpos, iota; - check[0].environment.iota = iota; - check[0].environment.errpos = errpos; - }; })(check, x), [check[0].environment.iota, check[0].environment.errpos]]); - check[0].environment.iota = obj.val; - check[0].environment.errpos = $ifaceNil; - obj.val = constant.MakeUnknown(); - /* */ if (!($interfaceIsEqual(typ$4, $ifaceNil))) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!($interfaceIsEqual(typ$4, $ifaceNil))) { */ case 2: - _r$1 = check[0].typ(typ$4); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - t = _r$1; - _r$2 = isConstType(t); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (!_r$2) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (!_r$2) { */ case 5: - _r$3 = under(t); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (!($interfaceIsEqual(_r$3, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (!($interfaceIsEqual(_r$3, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])))) { */ case 8: - $r = check[0].errorf(typ$4, 15, "invalid constant type %s", new sliceType$6([t])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 9: - obj.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - $s = -1; return; - /* } */ case 6: - obj.object.typ = t; - /* } */ case 3: - x[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - /* */ if (!($interfaceIsEqual(init$7, $ifaceNil))) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (!($interfaceIsEqual(init$7, $ifaceNil))) { */ case 12: - if (inherited) { - check[0].environment.errpos = new atPos(((obj.object.pos >> 0))); - } - $r = check[0].expr(x[0], init$7); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 13: - $r = check[0].initConst(obj, x[0]); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: constDecl$1, $c: true, $r, _r$1, _r$2, _r$3, check, inherited, init$7, obj, t, typ$4, x, $s, $deferred};return $f; } } + re = this; + dstCap = arrayType$3.zero(); + _r = re.doExecute($ifaceNil, b, "", 0, 2, $subslice(new sliceType$7(dstCap), 0, 0)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + a = _r; + if (a === sliceType$7.nil) { + $s = -1; return sliceType$4.nil; + } + $s = -1; return $subslice(b, (0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]), (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1]), (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1])); + /* */ } return; } var $f = {$blk: Find, $c: true, $r, _r, a, b, dstCap, re, $s};return $f; }; - $ptrType(Checker).prototype.varDecl = function varDecl$1(obj, lhs, typ$4, init$7) { - var {_i, _i$1, _r$1, _r$2, _ref, _ref$1, check, found, init$7, lhs, lhs$1, lhs$2, obj, typ$4, x, $s, $r, $c} = $restore(this, {obj, lhs, typ$4, init$7}); + $ptrType(Regexp).prototype.FindIndex = function FindIndex(b) { + var {_r, a, b, loc, re, $s, $r, $c} = $restore(this, {b}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = [x]; - check = this; - $r = assert($interfaceIsEqual(obj.object.typ, $ifaceNil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!($interfaceIsEqual(typ$4, $ifaceNil))) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!($interfaceIsEqual(typ$4, $ifaceNil))) { */ case 2: - _r$1 = check.varType(typ$4); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - obj.object.typ = _r$1; - /* } */ case 3: - if ($interfaceIsEqual(init$7, $ifaceNil)) { - if ($interfaceIsEqual(typ$4, $ifaceNil)) { - obj.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - } - $s = -1; return; - } - /* */ if (lhs === sliceType$10.nil || (lhs.$length === 1)) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (lhs === sliceType$10.nil || (lhs.$length === 1)) { */ case 5: - $r = assert(lhs === sliceType$10.nil || (0 >= lhs.$length ? ($throwRuntimeError("index out of range"), undefined) : lhs.$array[lhs.$offset + 0]) === obj); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = check.expr(x[0], init$7); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$2 = check.initVar(obj, x[0], "variable declaration"); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - $s = -1; return; - /* } */ case 6: - if (false) { - found = false; - _ref = lhs; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - lhs$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (obj === lhs$1) { - found = true; - break; - } - _i++; - } - if (!found) { - $panic(new $String("inconsistent lhs")); - } - } - if (!($interfaceIsEqual(typ$4, $ifaceNil))) { - _ref$1 = lhs; - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - lhs$2 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - lhs$2.object.typ = obj.object.typ; - _i$1++; - } + loc = sliceType$7.nil; + re = this; + _r = re.doExecute($ifaceNil, b, "", 0, 2, sliceType$7.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + a = _r; + if (a === sliceType$7.nil) { + loc = sliceType$7.nil; + $s = -1; return loc; } - $r = check.initVars(lhs, new sliceType$11([init$7]), $ifaceNil); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: varDecl$1, $c: true, $r, _i, _i$1, _r$1, _r$2, _ref, _ref$1, check, found, init$7, lhs, lhs$1, lhs$2, obj, typ$4, x, $s};return $f; + loc = $subslice(a, 0, 2); + $s = -1; return loc; + /* */ } return; } var $f = {$blk: FindIndex, $c: true, $r, _r, a, b, loc, re, $s};return $f; }; - $ptrType(Checker).prototype.isImportedConstraint = function isImportedConstraint(typ$4) { - var {$24r, _r$1, _r$2, _tuple, _tuple$1, _v, check, named, typ$4, u, $s, $r, $c} = $restore(this, {typ$4}); + $ptrType(Regexp).prototype.FindString = function FindString(s) { + var {_r, a, dstCap, re, s, $s, $r, $c} = $restore(this, {s}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _tuple = $assertType(typ$4, ptrType$9, true); - named = _tuple[0]; - if (named === ptrType$9.nil || named.obj.object.pkg === check.pkg || named.obj.object.pkg === ptrType$1.nil) { - $s = -1; return false; + re = this; + dstCap = arrayType$3.zero(); + _r = re.doExecute($ifaceNil, sliceType$4.nil, s, 0, 2, $subslice(new sliceType$7(dstCap), 0, 0)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + a = _r; + if (a === sliceType$7.nil) { + $s = -1; return ""; } - _r$1 = named.under(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$1 = $assertType(_r$1, ptrType$13, true); - u = _tuple$1[0]; - if (!(!(u === ptrType$13.nil))) { _v = false; $s = 2; continue s; } - _r$2 = u.IsMethodSet(); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _v = !_r$2; case 2: - $24r = _v; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: isImportedConstraint, $c: true, $r, $24r, _r$1, _r$2, _tuple, _tuple$1, _v, check, named, typ$4, u, $s};return $f; - }; - $ptrType(Checker).prototype.typeDecl = function typeDecl$1(obj, tdecl, def$2) { - var {_r$1, _r$2, alias, check, def$2, named, obj, rhs, tdecl, $s, $deferred, $r, $c} = $restore(this, {obj, tdecl, def$2}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - check = [check]; - obj = [obj]; - rhs = [rhs]; - tdecl = [tdecl]; - check[0] = this; - $r = assert($interfaceIsEqual(obj[0].object.typ, $ifaceNil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - rhs[0] = $ifaceNil; - check[0].later((function(check, obj, rhs, tdecl) { return function Checker·typeDecl·func1() { - var {_r$1, _tuple, t, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _tuple = $assertType(obj[0].object.typ, ptrType$9, true); - t = _tuple[0]; - /* */ if (!(t === ptrType$9.nil)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(t === ptrType$9.nil)) { */ case 1: - $r = check[0].validType(t); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - _r$1 = check[0].isImportedConstraint(rhs[0]); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1 && !check[0].allowVersion(check[0].pkg, 1, 18)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_r$1 && !check[0].allowVersion(check[0].pkg, 1, 18)) { */ case 4: - $r = check[0].errorf(tdecl[0].Type, 135, "using type constraint %s requires go1.18 or later", new sliceType$6([rhs[0]])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 5: - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·typeDecl·func1, $c: true, $r, _r$1, _tuple, t, $s};return $f; - }; })(check, obj, rhs, tdecl)).describef(obj[0], "validType(%s)", new sliceType$6([new $String(obj[0].object.Name())])); - alias = new token.Pos(tdecl[0].Assign).IsValid(); - /* */ if (alias && !((tdecl[0].TypeParams.NumFields() === 0))) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (alias && !((tdecl[0].TypeParams.NumFields() === 0))) { */ case 2: - $r = check[0].error(new atPos(((tdecl[0].Assign >> 0))), 131, "generic type cannot be alias"); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - alias = false; - /* } */ case 3: - /* */ if (alias) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (alias) { */ case 5: - /* */ if (!check[0].allowVersion(check[0].pkg, 1, 9)) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (!check[0].allowVersion(check[0].pkg, 1, 9)) { */ case 7: - $r = check[0].error(new atPos(((tdecl[0].Assign >> 0))), 135, "type aliases requires go1.9 or later"); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 8: - check[0].brokenAlias(obj[0]); - _r$1 = check[0].typ(tdecl[0].Type); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - rhs[0] = _r$1; - check[0].validAlias(obj[0], rhs[0]); - $s = -1; return; - /* } */ case 6: - named = check[0].newNamed(obj[0], $ifaceNil, sliceType.nil); - def$2.setUnderlying(named); - /* */ if (!(tdecl[0].TypeParams === ptrType$49.nil)) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (!(tdecl[0].TypeParams === ptrType$49.nil)) { */ case 11: - $r = check[0].openScope(tdecl[0], "type parameters"); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(check[0], "closeScope"), []]); - $r = check[0].collectTypeParams((named.$ptr_tparams || (named.$ptr_tparams = new ptrType$84(function() { return this.$target.tparams; }, function($v) { this.$target.tparams = $v; }, named))), tdecl[0].TypeParams); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 12: - _r$2 = check[0].definedType(tdecl[0].Type, named); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - rhs[0] = _r$2; - $r = assert(!($interfaceIsEqual(rhs[0], $ifaceNil))); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - named.fromRHS = rhs[0]; - if ($interfaceIsEqual(named.underlying, $ifaceNil)) { - named.underlying = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - } - /* */ if (isTypeParam(rhs[0])) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (isTypeParam(rhs[0])) { */ case 17: - $r = check[0].error(tdecl[0].Type, 144, "cannot use a type parameter as RHS in type declaration"); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - named.underlying = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - /* } */ case 18: - $s = -1; return; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: typeDecl$1, $c: true, $r, _r$1, _r$2, alias, check, def$2, named, obj, rhs, tdecl, $s, $deferred};return $f; } } - }; - $ptrType(Checker).prototype.collectTypeParams = function collectTypeParams(dst, list$2) { - var {_i, _i$1, _i$2, _r$1, _r$2, _ref, _ref$1, _ref$2, bound, check, dst, f, f$1, i, index$2, list$2, tparams, x, $s, $deferred, $r, $c} = $restore(this, {dst, list$2}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - check = [check]; - check[0] = this; - tparams = sliceType$9.nil; - _ref = list$2.List; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - f = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _r$1 = check[0].declareTypeParams(tparams, f.Names); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - tparams = _r$1; - _i++; - $s = 1; continue; - case 2: - dst.$set(bindTParams(tparams)); - $r = assert(!check[0].environment.inTParamList); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - check[0].environment.inTParamList = true; - $deferred.push([(function(check) { return function Checker·collectTypeParams·func1() { - check[0].environment.inTParamList = false; - }; })(check), []]); - index$2 = 0; - _ref$1 = list$2.List; - _i$1 = 0; - /* while (true) { */ case 5: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 6; continue; } - f$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - bound = $ifaceNil; - /* */ if (!($interfaceIsEqual(f$1.Type, $ifaceNil))) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (!($interfaceIsEqual(f$1.Type, $ifaceNil))) { */ case 7: - _r$2 = check[0].bound(f$1.Type); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - bound = _r$2; - /* */ if (isTypeParam(bound)) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (isTypeParam(bound)) { */ case 11: - $r = check[0].error(f$1.Type, 144, "cannot use a type parameter as constraint"); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - bound = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - /* } */ case 12: - $s = 9; continue; - /* } else { */ case 8: - bound = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - /* } */ case 9: - _ref$2 = f$1.Names; - _i$2 = 0; - while (true) { - if (!(_i$2 < _ref$2.$length)) { break; } - i = _i$2; - (x = index$2 + i >> 0, ((x < 0 || x >= tparams.$length) ? ($throwRuntimeError("index out of range"), undefined) : tparams.$array[tparams.$offset + x])).bound = bound; - _i$2++; - } - index$2 = index$2 + (f$1.Names.$length) >> 0; - _i$1++; - $s = 5; continue; - case 6: - $s = -1; return; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: collectTypeParams, $c: true, $r, _i, _i$1, _i$2, _r$1, _r$2, _ref, _ref$1, _ref$2, bound, check, dst, f, f$1, i, index$2, list$2, tparams, x, $s, $deferred};return $f; } } + $s = -1; return $substring(s, (0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]), (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1])); + /* */ } return; } var $f = {$blk: FindString, $c: true, $r, _r, a, dstCap, re, s, $s};return $f; }; - $ptrType(Checker).prototype.bound = function bound(x) { - var {$24r, _r$1, _r$2, _ref, _tuple, check, op$1, op$2, t, t$1, wrap, x, $s, $r, $c} = $restore(this, {x}); + $ptrType(Regexp).prototype.FindStringIndex = function FindStringIndex(s) { + var {_r, a, loc, re, s, $s, $r, $c} = $restore(this, {s}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - wrap = false; - _ref = x; - if ($assertType(_ref, ptrType$20, true)[1]) { - op$1 = _ref.$val; - wrap = op$1.Op === 88; - } else if ($assertType(_ref, ptrType$21, true)[1]) { - op$2 = _ref.$val; - wrap = op$2.Op === 18; + loc = sliceType$7.nil; + re = this; + _r = re.doExecute($ifaceNil, sliceType$4.nil, s, 0, 2, sliceType$7.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + a = _r; + if (a === sliceType$7.nil) { + loc = sliceType$7.nil; + $s = -1; return loc; } - /* */ if (wrap) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (wrap) { */ case 1: - x = new ast.InterfaceType.ptr(0, new ast.FieldList.ptr(0, new sliceType$32([new ast.Field.ptr(ptrType$107.nil, sliceType$22.nil, x, ptrType$57.nil, ptrType$107.nil)]), 0), false); - _r$1 = check.typ(x); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - t = _r$1; - _tuple = $assertType(t, ptrType$13, true); - t$1 = _tuple[0]; - if (!(t$1 === ptrType$13.nil)) { - t$1.implicit = true; - } - $s = -1; return t; - /* } */ case 2: - _r$2 = check.typ(x); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 5; case 5: return $24r; - /* */ } return; } var $f = {$blk: bound, $c: true, $r, $24r, _r$1, _r$2, _ref, _tuple, check, op$1, op$2, t, t$1, wrap, x, $s};return $f; + loc = $subslice(a, 0, 2); + $s = -1; return loc; + /* */ } return; } var $f = {$blk: FindStringIndex, $c: true, $r, _r, a, loc, re, s, $s};return $f; }; - $ptrType(Checker).prototype.declareTypeParams = function declareTypeParams(tparams, names) { - var {_i, _r$1, _ref, check, name, names, tname, tpar, tparams, $s, $r, $c} = $restore(this, {tparams, names}); + $ptrType(Regexp).prototype.FindReaderIndex = function FindReaderIndex(r) { + var {_r, a, loc, r, re, $s, $r, $c} = $restore(this, {r}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _ref = names; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - name = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - tname = NewTypeName(name.Pos(), check.pkg, name.Name, $ifaceNil); - _r$1 = check.newTypeParam(tname, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - tpar = _r$1; - $r = check.declare(check.environment.scope, name, tname, check.environment.scope.pos); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - tparams = $append(tparams, tpar); - _i++; - $s = 1; continue; - case 2: - /* */ if (false && names.$length > 0) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (false && names.$length > 0) { */ case 5: - $r = check.trace((0 >= names.$length ? ($throwRuntimeError("index out of range"), undefined) : names.$array[names.$offset + 0]).Pos(), "type params = %v", new sliceType$6([$subslice(tparams, (tparams.$length - names.$length >> 0))])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 6: - $s = -1; return tparams; - /* */ } return; } var $f = {$blk: declareTypeParams, $c: true, $r, _i, _r$1, _ref, check, name, names, tname, tpar, tparams, $s};return $f; + loc = sliceType$7.nil; + re = this; + _r = re.doExecute(r, sliceType$4.nil, "", 0, 2, sliceType$7.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + a = _r; + if (a === sliceType$7.nil) { + loc = sliceType$7.nil; + $s = -1; return loc; + } + loc = $subslice(a, 0, 2); + $s = -1; return loc; + /* */ } return; } var $f = {$blk: FindReaderIndex, $c: true, $r, _r, a, loc, r, re, $s};return $f; }; - $ptrType(Checker).prototype.collectMethods = function collectMethods(obj) { - var {_arg, _arg$1, _arg$2, _arg$3, _entry, _entry$1, _i, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _tuple, alt, base, check, i, m, m$1, methods, mset, mset$24ptr, obj, $s, $r, $c} = $restore(this, {obj}); + $ptrType(Regexp).prototype.FindSubmatch = function FindSubmatch(b) { + var {_i, _r, _ref, a, b, dstCap, i, re, ret, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {b}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - base = [base]; - check = [check]; - check[0] = this; - methods = (_entry = $mapIndex(check[0].methods,ptrType$17.keyFor(obj)), _entry !== undefined ? _entry.v : sliceType.nil); - if (methods === sliceType.nil) { - $s = -1; return; + re = this; + dstCap = arrayType$4.zero(); + _r = re.doExecute($ifaceNil, b, "", 0, re.prog.NumCap, $subslice(new sliceType$7(dstCap), 0, 0)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + a = _r; + if (a === sliceType$7.nil) { + $s = -1; return sliceType$8.nil; } - $mapDelete(check[0].methods, ptrType$17.keyFor(obj)); - $r = assert(!new token.Pos((_entry$1 = $mapIndex(check[0].objMap,Object.keyFor(obj)), _entry$1 !== undefined ? _entry$1.v : ptrType$58.nil).tdecl.Assign).IsValid()); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - mset = false; - _tuple = $assertType(obj.object.typ, ptrType$9, true); - base[0] = _tuple[0]; - /* */ if (!(base[0] === ptrType$9.nil)) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!(base[0] === ptrType$9.nil)) { */ case 2: - $r = assert(base[0].TypeArgs().Len() === 0); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - check[0].later((function(base, check) { return function Checker·collectMethods·func1() { - var {$s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = check[0].checkFieldUniqueness(base[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·collectMethods·func1, $c: true, $r, $s};return $f; - }; })(base, check)).describef(obj, "verifying field uniqueness for %v", new sliceType$6([base[0]])); - i = 0; - /* while (true) { */ case 5: - _r$1 = base[0].NumMethods(); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* if (!(i < _r$1)) { break; } */ if(!(i < _r$1)) { $s = 6; continue; } - _r$2 = base[0].Method(i); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - m = _r$2; - $r = assert(!(m.object.name === "_")); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$3 = (mset$24ptr || (mset$24ptr = new ptrType$54(function() { return mset; }, function($v) { mset = $v; }))).insert(m); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $r = assert($interfaceIsEqual(_r$3, $ifaceNil)); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - i = i + (1) >> 0; - $s = 5; continue; - case 6: - /* } */ case 3: - _ref = methods; + ret = $makeSlice(sliceType$8, (1 + re.numSubexp >> 0)); + _ref = ret; _i = 0; - /* while (true) { */ case 12: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 13; continue; } - m$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - $r = assert(!(m$1.object.name === "_")); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$4 = (mset$24ptr || (mset$24ptr = new ptrType$54(function() { return mset; }, function($v) { mset = $v; }))).insert(m$1); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - alt = _r$4; - /* */ if (!($interfaceIsEqual(alt, $ifaceNil))) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (!($interfaceIsEqual(alt, $ifaceNil))) { */ case 16: - _r$5 = alt.Pos(); /* */ $s = 21; case 21: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$6 = new token.Pos(_r$5).IsValid(); /* */ $s = 22; case 22: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - /* */ if (_r$6) { $s = 18; continue; } - /* */ $s = 19; continue; - /* if (_r$6) { */ case 18: - _arg = m$1; - _arg$1 = new $String(obj.object.Name()); - _arg$2 = new $String(m$1.object.name); - _r$7 = alt.Pos(); /* */ $s = 23; case 23: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _arg$3 = new token.Pos(_r$7); - $r = check[0].errorf(_arg, 34, "method %s.%s already declared at %s", new sliceType$6([_arg$1, _arg$2, _arg$3])); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 20; continue; - /* } else { */ case 19: - $r = check[0].errorf(m$1, 34, "method %s.%s already declared", new sliceType$6([new $String(obj.object.Name()), new $String(m$1.object.name)])); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 20: - _i++; - /* continue; */ $s = 12; continue; - /* } */ case 17: - /* */ if (!(base[0] === ptrType$9.nil)) { $s = 26; continue; } - /* */ $s = 27; continue; - /* if (!(base[0] === ptrType$9.nil)) { */ case 26: - $r = base[0].AddMethod(m$1); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 27: + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + if (($imul(2, i)) < a.$length && (x = $imul(2, i), ((x < 0 || x >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x])) >= 0) { + ((i < 0 || i >= ret.$length) ? ($throwRuntimeError("index out of range"), undefined) : ret.$array[ret.$offset + i] = $subslice(b, (x$1 = $imul(2, i), ((x$1 < 0 || x$1 >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x$1])), (x$2 = ($imul(2, i)) + 1 >> 0, ((x$2 < 0 || x$2 >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x$2])), (x$3 = ($imul(2, i)) + 1 >> 0, ((x$3 < 0 || x$3 >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x$3])))); + } _i++; - $s = 12; continue; - case 13: - $s = -1; return; - /* */ } return; } var $f = {$blk: collectMethods, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _entry, _entry$1, _i, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _tuple, alt, base, check, i, m, m$1, methods, mset, mset$24ptr, obj, $s};return $f; + } + $s = -1; return ret; + /* */ } return; } var $f = {$blk: FindSubmatch, $c: true, $r, _i, _r, _ref, a, b, dstCap, i, re, ret, x, x$1, x$2, x$3, $s};return $f; }; - $ptrType(Checker).prototype.checkFieldUniqueness = function checkFieldUniqueness(base) { - var {_i, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _tuple, alt, base, check, fld, i, m, mset, mset$24ptr, t, $s, $r, $c} = $restore(this, {base}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = base.under(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = $assertType(_r$1, ptrType$11, true); - t = _tuple[0]; - /* */ if (!(t === ptrType$11.nil)) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!(t === ptrType$11.nil)) { */ case 2: - mset = false; - i = 0; - /* while (true) { */ case 4: - _r$2 = base.NumMethods(); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* if (!(i < _r$2)) { break; } */ if(!(i < _r$2)) { $s = 5; continue; } - _r$3 = base.Method(i); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - m = _r$3; - $r = assert(!(m.object.name === "_")); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$4 = (mset$24ptr || (mset$24ptr = new ptrType$54(function() { return mset; }, function($v) { mset = $v; }))).insert(m); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $r = assert($interfaceIsEqual(_r$4, $ifaceNil)); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - i = i + (1) >> 0; - $s = 4; continue; - case 5: - _ref = t.fields; - _i = 0; - /* while (true) { */ case 11: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 12; continue; } - fld = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - /* */ if (!(fld.object.name === "_")) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (!(fld.object.name === "_")) { */ case 13: - _r$5 = (mset$24ptr || (mset$24ptr = new ptrType$54(function() { return mset; }, function($v) { mset = $v; }))).insert(fld); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - alt = _r$5; - /* */ if (!($interfaceIsEqual(alt, $ifaceNil))) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (!($interfaceIsEqual(alt, $ifaceNil))) { */ case 16: - $unused($assertType(alt, ptrType$2)); - $r = check.errorf(alt, 33, "field and method with the same name %s", new sliceType$6([new $String(fld.object.name)])); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.reportAltDecl(fld); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 17: - /* } */ case 14: - _i++; - $s = 11; continue; - case 12: - /* } */ case 3: - $s = -1; return; - /* */ } return; } var $f = {$blk: checkFieldUniqueness, $c: true, $r, _i, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _tuple, alt, base, check, fld, i, m, mset, mset$24ptr, t, $s};return $f; + $ptrType(Regexp).prototype.Expand = function Expand(dst, template, src, match) { + var dst, match, re, src, template; + re = this; + return re.expand(dst, ($bytesToString(template)), src, "", match); }; - $ptrType(Checker).prototype.funcDecl = function funcDecl$1(obj, decl$1) { - var {check, decl$1, fdecl, obj, saved, sig, $s, $r, $c} = $restore(this, {obj, decl$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = [check]; - decl$1 = [decl$1]; - fdecl = [fdecl]; - obj = [obj]; - sig = [sig]; - check[0] = this; - $r = assert($interfaceIsEqual(obj[0].object.typ, $ifaceNil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = assert($interfaceIsEqual(check[0].environment.iota, $ifaceNil)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - sig[0] = new Signature.ptr(ptrType$48.nil, ptrType$48.nil, ptrType.nil, ptrType$16.nil, ptrType$15.nil, ptrType$15.nil, false); - obj[0].object.typ = sig[0]; - saved = obj[0].object.color_; - obj[0].object.color_ = 1; - fdecl[0] = decl$1[0].fdecl; - $r = check[0].funcType(sig[0], fdecl[0].Recv, fdecl[0].Type); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - obj[0].object.color_ = saved; - /* */ if (fdecl[0].Type.TypeParams.NumFields() > 0 && fdecl[0].Body === ptrType$74.nil) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (fdecl[0].Type.TypeParams.NumFields() > 0 && fdecl[0].Body === ptrType$74.nil) { */ case 4: - $r = check[0].softErrorf(fdecl[0].Name, 131, "generic function is missing function body", sliceType$6.nil); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 5: - if (!check[0].conf.IgnoreFuncBodies && !(fdecl[0].Body === ptrType$74.nil)) { - check[0].later((function(check, decl$1, fdecl, obj, sig) { return function Checker·funcDecl·func1() { - var {$s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = check[0].funcBody(decl$1[0], obj[0].object.name, sig[0], fdecl[0].Body, $ifaceNil); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·funcDecl·func1, $c: true, $r, $s};return $f; - }; })(check, decl$1, fdecl, obj, sig)).describef(obj[0], "func %s", new sliceType$6([new $String(obj[0].object.name)])); - } - $s = -1; return; - /* */ } return; } var $f = {$blk: funcDecl$1, $c: true, $r, check, decl$1, fdecl, obj, saved, sig, $s};return $f; + $ptrType(Regexp).prototype.ExpandString = function ExpandString(dst, template, src, match) { + var dst, match, re, src, template; + re = this; + return re.expand(dst, template, sliceType$4.nil, src, match); }; - $ptrType(Checker).prototype.declStmt = function declStmt(d) { - var {check, d, pkg, $s, $r, $c} = $restore(this, {d}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = [check]; - pkg = [pkg]; - check[0] = this; - pkg[0] = check[0].pkg; - $r = check[0].walkDecl(d, (function(check, pkg) { return function Checker·declStmt·func1(d$1) { - var {_1, _arg, _arg$1, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, d$1, d$2, d$3, d$4, d$5, i, i$1, i$2, i$3, i$4, init$7, init$8, lhs, lhs$1, lhs0, name, name$1, name$2, name$3, obj, obj$1, obj$2, obj$3, scopePos$2, scopePos$3, scopePos$4, top, top$1, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {d$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ref = d$1; - /* */ if ($assertType(_ref, constDecl, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref, varDecl, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref, typeDecl, true)[1]) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if ($assertType(_ref, constDecl, true)[1]) { */ case 1: - d$2 = $clone(_ref.$val, constDecl); - top = check[0].delayed.$length; - lhs = $makeSlice(sliceType$33, d$2.spec.Names.$length); - _ref$1 = d$2.spec.Names; - _i = 0; - /* while (true) { */ case 6: - /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 7; continue; } - i = _i; - name = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); - obj = NewConst(name.Pos(), pkg[0], name.Name, $ifaceNil, constant.MakeInt64((new $Int64(0, d$2.iota)))); - ((i < 0 || i >= lhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : lhs.$array[lhs.$offset + i] = obj); - init$7 = $ifaceNil; - if (i < d$2.init.$length) { - init$7 = (x = d$2.init, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - } - $r = check[0].constDecl(obj, d$2.typ, init$7, d$2.inherited); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 6; continue; - case 7: - $r = check[0].processDelayed(top); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$1 = d$2.spec.End(); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - scopePos$2 = _r$1; - _ref$2 = d$2.spec.Names; - _i$1 = 0; - /* while (true) { */ case 11: - /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 12; continue; } - i$1 = _i$1; - name$1 = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); - $r = check[0].declare(check[0].environment.scope, name$1, ((i$1 < 0 || i$1 >= lhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : lhs.$array[lhs.$offset + i$1]), scopePos$2); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$1++; - $s = 11; continue; - case 12: - $s = 5; continue; - /* } else if ($assertType(_ref, varDecl, true)[1]) { */ case 2: - d$3 = $clone(_ref.$val, varDecl); - top$1 = check[0].delayed.$length; - lhs0 = $makeSlice(sliceType$10, d$3.spec.Names.$length); - _ref$3 = d$3.spec.Names; - _i$2 = 0; - while (true) { - if (!(_i$2 < _ref$3.$length)) { break; } - i$2 = _i$2; - name$2 = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]); - ((i$2 < 0 || i$2 >= lhs0.$length) ? ($throwRuntimeError("index out of range"), undefined) : lhs0.$array[lhs0.$offset + i$2] = NewVar(name$2.Pos(), pkg[0], name$2.Name, $ifaceNil)); - _i$2++; + $ptrType(Regexp).prototype.expand = function expand(dst, template, bsrc, src, match) { + var _i, _ref, _tuple, _tuple$1, after, before, bsrc, dst, i, match, name, namei, num, ok, re, rest, src, template, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + re = this; + while (true) { + if (!(template.length > 0)) { break; } + _tuple = strings.Cut(template, "$"); + before = _tuple[0]; + after = _tuple[1]; + ok = _tuple[2]; + if (!ok) { + break; + } + dst = $appendSlice(dst, before); + template = after; + if (!(template === "") && (template.charCodeAt(0) === 36)) { + dst = $append(dst, 36); + template = $substring(template, 1); + continue; + } + _tuple$1 = extract(template); + name = _tuple$1[0]; + num = _tuple$1[1]; + rest = _tuple$1[2]; + ok = _tuple$1[3]; + if (!ok) { + dst = $append(dst, 36); + continue; + } + template = rest; + if (num >= 0) { + if ((($imul(2, num)) + 1 >> 0) < match.$length && (x = $imul(2, num), ((x < 0 || x >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x])) >= 0) { + if (!(bsrc === sliceType$4.nil)) { + dst = $appendSlice(dst, $subslice(bsrc, (x$1 = $imul(2, num), ((x$1 < 0 || x$1 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$1])), (x$2 = ($imul(2, num)) + 1 >> 0, ((x$2 < 0 || x$2 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$2])))); + } else { + dst = $appendSlice(dst, $substring(src, (x$3 = $imul(2, num), ((x$3 < 0 || x$3 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$3])), (x$4 = ($imul(2, num)) + 1 >> 0, ((x$4 < 0 || x$4 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$4])))); } - _ref$4 = lhs0; - _i$3 = 0; - /* while (true) { */ case 14: - /* if (!(_i$3 < _ref$4.$length)) { break; } */ if(!(_i$3 < _ref$4.$length)) { $s = 15; continue; } - i$3 = _i$3; - obj$1 = ((_i$3 < 0 || _i$3 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$3]); - lhs$1 = sliceType$10.nil; - init$8 = $ifaceNil; - _1 = d$3.spec.Values.$length; - if (_1 === (d$3.spec.Names.$length)) { - init$8 = (x$1 = d$3.spec.Values, ((i$3 < 0 || i$3 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$3])); - } else if (_1 === (1)) { - lhs$1 = lhs0; - init$8 = (x$2 = d$3.spec.Values, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])); - } else if (i$3 < d$3.spec.Values.$length) { - init$8 = (x$3 = d$3.spec.Values, ((i$3 < 0 || i$3 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + i$3])); + } + } else { + _ref = re.subexpNames; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + namei = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (name === namei && (($imul(2, i)) + 1 >> 0) < match.$length && (x$5 = $imul(2, i), ((x$5 < 0 || x$5 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$5])) >= 0) { + if (!(bsrc === sliceType$4.nil)) { + dst = $appendSlice(dst, $subslice(bsrc, (x$6 = $imul(2, i), ((x$6 < 0 || x$6 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$6])), (x$7 = ($imul(2, i)) + 1 >> 0, ((x$7 < 0 || x$7 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$7])))); + } else { + dst = $appendSlice(dst, $substring(src, (x$8 = $imul(2, i), ((x$8 < 0 || x$8 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$8])), (x$9 = ($imul(2, i)) + 1 >> 0, ((x$9 < 0 || x$9 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$9])))); } - $r = check[0].varDecl(obj$1, lhs$1, d$3.spec.Type, init$8); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (d$3.spec.Values.$length === 1) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (d$3.spec.Values.$length === 1) { */ case 17: - /* */ if (false) { $s = 19; continue; } - /* */ $s = 20; continue; - /* if (false) { */ case 19: - _ref$5 = lhs0; - _i$4 = 0; - /* while (true) { */ case 21: - /* if (!(_i$4 < _ref$5.$length)) { break; } */ if(!(_i$4 < _ref$5.$length)) { $s = 22; continue; } - obj$2 = ((_i$4 < 0 || _i$4 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$4]); - $r = assert(!($interfaceIsEqual(obj$2.object.typ, $ifaceNil))); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$4++; - $s = 21; continue; - case 22: - /* } */ case 20: - /* break; */ $s = 15; continue; - /* } */ case 18: - _i$3++; - $s = 14; continue; - case 15: - $r = check[0].processDelayed(top$1); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$2 = d$3.spec.End(); /* */ $s = 25; case 25: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - scopePos$3 = _r$2; - _ref$6 = d$3.spec.Names; - _i$5 = 0; - /* while (true) { */ case 26: - /* if (!(_i$5 < _ref$6.$length)) { break; } */ if(!(_i$5 < _ref$6.$length)) { $s = 27; continue; } - i$4 = _i$5; - name$3 = ((_i$5 < 0 || _i$5 >= _ref$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$6.$array[_ref$6.$offset + _i$5]); - $r = check[0].declare(check[0].environment.scope, name$3, ((i$4 < 0 || i$4 >= lhs0.$length) ? ($throwRuntimeError("index out of range"), undefined) : lhs0.$array[lhs0.$offset + i$4]), scopePos$3); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$5++; - $s = 26; continue; - case 27: - $s = 5; continue; - /* } else if ($assertType(_ref, typeDecl, true)[1]) { */ case 3: - d$4 = $clone(_ref.$val, typeDecl); - obj$3 = NewTypeName(d$4.spec.Name.Pos(), pkg[0], d$4.spec.Name.Name, $ifaceNil); - scopePos$4 = d$4.spec.Name.Pos(); - $r = check[0].declare(check[0].environment.scope, d$4.spec.Name, obj$3, scopePos$4); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = obj$3.object.setColor(2 + ((check[0].push(obj$3) >>> 0)) >>> 0); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].typeDecl(obj$3, d$4.spec, ptrType$9.nil); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].pop().setColor(1); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 5; continue; - /* } else { */ case 4: - d$5 = _ref; - _r$3 = d$5.node(); /* */ $s = 33; case 33: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _arg = _r$3; - _r$4 = d$5.node(); /* */ $s = 34; case 34: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _arg$1 = _r$4; - $r = check[0].errorf(_arg, -1, "unknown ast.Decl node %T", new sliceType$6([_arg$1])); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 5: - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·declStmt·func1, $c: true, $r, _1, _arg, _arg$1, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, d$1, d$2, d$3, d$4, d$5, i, i$1, i$2, i$3, i$4, init$7, init$8, lhs, lhs$1, lhs0, name, name$1, name$2, name$3, obj, obj$1, obj$2, obj$3, scopePos$2, scopePos$3, scopePos$4, top, top$1, x, x$1, x$2, x$3, $s};return $f; - }; })(check, pkg)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: declStmt, $c: true, $r, check, d, pkg, $s};return $f; + break; + } + _i++; + } + } + } + dst = $appendSlice(dst, template); + return dst; }; - $ptrType(Checker).prototype.conversion = function conversion(x, T) { - var {T, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _v, _v$1, _v$2, _v$3, _v$4, cause, check, constArg, constConvertibleTo, final$1, ok, x, $s, $r, $c} = $restore(this, {x, T}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - T = [T]; - cause = [cause]; - check = [check]; - constConvertibleTo = [constConvertibleTo]; - x = [x]; - check[0] = this; - constArg = x[0].mode === 4; - constConvertibleTo[0] = (function(T, cause, check, constConvertibleTo, x) { return function Checker·conversion·func1(T$1, val) { - var {T$1, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, _v, codepoint, i, ok, t, val, $s, $r, $c} = $restore(this, {T$1, val}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = under(T$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = $assertType(_r$1, ptrType$4, true); - t = _tuple[0]; - /* */ if (t === ptrType$4.nil) { $s = 3; continue; } - _r$2 = representableConst(x[0].val, check[0], t, val); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (_r$2) { $s = 4; continue; } - _r$3 = isInteger(x[0].typ); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - if (!(_r$3)) { _v = false; $s = 8; continue s; } - _r$4 = isString(t); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _v = _r$4; case 8: - /* */ if (_v) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (t === ptrType$4.nil) { */ case 3: - $s = 6; continue; - /* } else if (_r$2) { */ case 4: - $s = -1; return true; - /* } else if (_v) { */ case 5: - codepoint = 65533; - _r$5 = constant.Uint64Val(x[0].val); /* */ $s = 11; case 11: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _tuple$1 = _r$5; - i = _tuple$1[0]; - ok = _tuple$1[1]; - if (ok && (i.$high < 0 || (i.$high === 0 && i.$low <= 1114111))) { - codepoint = ((i.$low >> 0)); - } - if (!(val === ptrType$50.nil)) { - val.$set(constant.MakeString(($encodeRune(codepoint)))); - } - $s = -1; return true; - /* } */ case 6: - case 1: - $s = -1; return false; - /* */ } return; } var $f = {$blk: Checker·conversion·func1, $c: true, $r, T$1, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, _v, codepoint, i, ok, t, val, $s};return $f; - }; })(T, cause, check, constConvertibleTo, x); + extract = function extract$1(str) { + var _tuple, brace, i, i$1, name, num, ok, rest, rune, size, str; + name = ""; + num = 0; + rest = ""; ok = false; - cause[0] = ""; - if (!(constArg)) { _v = false; $s = 6; continue s; } - _r$1 = isConstType(T[0]); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = _r$1; case 6: - /* */ if (_v) { $s = 2; continue; } - /* */ if (constArg && isTypeParam(T[0])) { $s = 3; continue; } - _r$2 = x[0].convertibleTo(check[0], T[0], (cause.$ptr || (cause.$ptr = new ptrType$34(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, cause)))); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - /* */ if (_r$2) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_v) { */ case 2: - _r$3 = constConvertibleTo[0](T[0], (x[0].$ptr_val || (x[0].$ptr_val = new ptrType$50(function() { return this.$target.val; }, function($v) { this.$target.val = $v; }, x[0])))); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - ok = _r$3; - $s = 5; continue; - /* } else if (constArg && isTypeParam(T[0])) { */ case 3: - _r$4 = $assertType(T[0], ptrType$14).underIs((function(T, cause, check, constConvertibleTo, x) { return function Checker·conversion·func2(u) { - var {_r$4, _r$5, _r$6, _r$7, _r$8, _v$1, u, $s, $r, $c} = $restore(this, {u}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - /* */ if ($interfaceIsEqual(u, $ifaceNil)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if ($interfaceIsEqual(u, $ifaceNil)) { */ case 1: - _r$4 = check[0].sprintf("%s does not contain specific types", new sliceType$6([T[0]])); /* */ $s = 3; case 3: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - cause[0] = _r$4; - $s = -1; return false; - /* } */ case 2: - _r$5 = isString(x[0].typ); /* */ $s = 7; case 7: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - if (!(_r$5)) { _v$1 = false; $s = 6; continue s; } - _r$6 = isBytesOrRunes(u); /* */ $s = 8; case 8: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _v$1 = _r$6; case 6: - /* */ if (_v$1) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_v$1) { */ case 4: - $s = -1; return true; - /* } */ case 5: - _r$7 = constConvertibleTo[0](u, ptrType$50.nil); /* */ $s = 11; case 11: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - /* */ if (!_r$7) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (!_r$7) { */ case 9: - _r$8 = check[0].sprintf("cannot convert %s to type %s (in %s)", new sliceType$6([x[0], u, T[0]])); /* */ $s = 12; case 12: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - cause[0] = _r$8; - $s = -1; return false; - /* } */ case 10: - $s = -1; return true; - /* */ } return; } var $f = {$blk: Checker·conversion·func2, $c: true, $r, _r$4, _r$5, _r$6, _r$7, _r$8, _v$1, u, $s};return $f; - }; })(T, cause, check, constConvertibleTo, x)); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - ok = _r$4; - x[0].mode = 7; - $s = 5; continue; - /* } else if (_r$2) { */ case 4: - ok = true; - x[0].mode = 7; - /* } */ case 5: - case 1: - /* */ if (!ok) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (!ok) { */ case 11: - /* */ if (!(cause[0] === "")) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (!(cause[0] === "")) { */ case 13: - $r = check[0].errorf(x[0], 96, "cannot convert %s to type %s: %s", new sliceType$6([x[0], T[0], new $String(cause[0])])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 15; continue; - /* } else { */ case 14: - $r = check[0].errorf(x[0], 96, "cannot convert %s to type %s", new sliceType$6([x[0], T[0]])); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 15: - x[0].mode = 0; - $s = -1; return; - /* } */ case 12: - /* */ if (isUntyped(x[0].typ)) { $s = 18; continue; } - /* */ $s = 19; continue; - /* if (isUntyped(x[0].typ)) { */ case 18: - final$1 = T[0]; - _r$5 = isNonTypeParamInterface(T[0]); /* */ $s = 24; case 24: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - if (_r$5) { _v$1 = true; $s = 23; continue s; } - if (!(constArg)) { _v$2 = false; $s = 25; continue s; } - _r$6 = isConstType(T[0]); /* */ $s = 26; case 26: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _v$2 = !_r$6; case 25: - _v$1 = _v$2; case 23: - /* */ if (_v$1 || x[0].isNil()) { $s = 20; continue; } - if (!(x[0].mode === 4)) { _v$4 = false; $s = 28; continue s; } - _r$7 = isInteger(x[0].typ); /* */ $s = 29; case 29: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _v$4 = _r$7; case 28: - if (!(_v$4)) { _v$3 = false; $s = 27; continue s; } - _r$8 = allString(T[0]); /* */ $s = 30; case 30: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _v$3 = _r$8; case 27: - /* */ if (_v$3) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if (_v$1 || x[0].isNil()) { */ case 20: - final$1 = Default(x[0].typ); - $s = 22; continue; - /* } else if (_v$3) { */ case 21: - final$1 = x[0].typ; - /* } */ case 22: - $r = check[0].updateExprType(x[0].expr, final$1, true); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 19: - x[0].typ = T[0]; - $s = -1; return; - /* */ } return; } var $f = {$blk: conversion, $c: true, $r, T, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _v, _v$1, _v$2, _v$3, _v$4, cause, check, constArg, constConvertibleTo, final$1, ok, x, $s};return $f; - }; - $ptrType(operand).prototype.convertibleTo = function convertibleTo(check, T, cause) { - var {$24r, $24r$1, $24r$2, T, T$1, Tp, Tu, V, V$1, Vp, Vu, _arg, _arg$1, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _v, _v$1, _v$2, _v$3, _v$4, _v$5, _v$6, _v$7, _v$8, a, a$1, a$2, cause, check, errorf$2, ok, ok$1, ok$2, s, x, x$1, x$2, $s, $r, $c} = $restore(this, {check, T, cause}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - T = [T]; - Tp = [Tp]; - Vp = [Vp]; - cause = [cause]; - check = [check]; - errorf$2 = [errorf$2]; - x = [x]; - x$1 = [x$1]; - x$2 = [x$2]; - x$2[0] = this; - _r$1 = x$2[0].assignableTo(check[0], T[0], cause[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - ok = _tuple[0]; - if (ok) { - $s = -1; return true; + if (str === "") { + return [name, num, rest, ok]; } - V = x$2[0].typ; - _r$2 = under(V); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - Vu = _r$2; - _r$3 = under(T[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - Tu = _r$3; - _tuple$1 = $assertType(V, ptrType$14, true); - Vp[0] = _tuple$1[0]; - _tuple$2 = $assertType(T[0], ptrType$14, true); - Tp[0] = _tuple$2[0]; - _r$4 = IdenticalIgnoreTags(Vu, Tu); /* */ $s = 6; case 6: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if (_r$4 && Vp[0] === ptrType$14.nil && Tp[0] === ptrType$14.nil) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_r$4 && Vp[0] === ptrType$14.nil && Tp[0] === ptrType$14.nil) { */ case 4: - $s = -1; return true; - /* } */ case 5: - _tuple$3 = $assertType(V, ptrType$26, true); - V$1 = _tuple$3[0]; - ok$1 = _tuple$3[1]; - /* */ if (ok$1) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (ok$1) { */ case 7: - _tuple$4 = $assertType(T[0], ptrType$26, true); - T$1 = _tuple$4[0]; - ok$2 = _tuple$4[1]; - /* */ if (ok$2) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (ok$2) { */ case 9: - _r$5 = under(V$1.base); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _arg = _r$5; - _r$6 = under(T$1.base); /* */ $s = 14; case 14: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _arg$1 = _r$6; - _r$7 = IdenticalIgnoreTags(_arg, _arg$1); /* */ $s = 15; case 15: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - /* */ if (_r$7 && !isTypeParam(V$1.base) && !isTypeParam(T$1.base)) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (_r$7 && !isTypeParam(V$1.base) && !isTypeParam(T$1.base)) { */ case 11: - $s = -1; return true; - /* } */ case 12: - /* } */ case 10: - /* } */ case 8: - _r$8 = isIntegerOrFloat(Vu); /* */ $s = 19; case 19: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - if (!(_r$8)) { _v = false; $s = 18; continue s; } - _r$9 = isIntegerOrFloat(Tu); /* */ $s = 20; case 20: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _v = _r$9; case 18: - /* */ if (_v) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (_v) { */ case 16: - $s = -1; return true; - /* } */ case 17: - _r$10 = isComplex(Vu); /* */ $s = 24; case 24: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - if (!(_r$10)) { _v$1 = false; $s = 23; continue s; } - _r$11 = isComplex(Tu); /* */ $s = 25; case 25: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _v$1 = _r$11; case 23: - /* */ if (_v$1) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if (_v$1) { */ case 21: - $s = -1; return true; - /* } */ case 22: - _r$12 = isInteger(Vu); /* */ $s = 30; case 30: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - if (_r$12) { _v$3 = true; $s = 29; continue s; } - _r$13 = isBytesOrRunes(Vu); /* */ $s = 31; case 31: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - _v$3 = _r$13; case 29: - if (!(_v$3)) { _v$2 = false; $s = 28; continue s; } - _r$14 = isString(Tu); /* */ $s = 32; case 32: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - _v$2 = _r$14; case 28: - /* */ if (_v$2) { $s = 26; continue; } - /* */ $s = 27; continue; - /* if (_v$2) { */ case 26: - $s = -1; return true; - /* } */ case 27: - _r$15 = isString(Vu); /* */ $s = 36; case 36: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - if (!(_r$15)) { _v$4 = false; $s = 35; continue s; } - _r$16 = isBytesOrRunes(Tu); /* */ $s = 37; case 37: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - _v$4 = _r$16; case 35: - /* */ if (_v$4) { $s = 33; continue; } - /* */ $s = 34; continue; - /* if (_v$4) { */ case 33: - $s = -1; return true; - /* } */ case 34: - _r$17 = isPointer(Vu); /* */ $s = 42; case 42: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - if (_r$17) { _v$6 = true; $s = 41; continue s; } - _r$18 = isUintptr(Vu); /* */ $s = 43; case 43: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - _v$6 = _r$18; case 41: - if (!(_v$6)) { _v$5 = false; $s = 40; continue s; } - _r$19 = isUnsafePointer(Tu); /* */ $s = 44; case 44: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - _v$5 = _r$19; case 40: - /* */ if (_v$5) { $s = 38; continue; } - /* */ $s = 39; continue; - /* if (_v$5) { */ case 38: - $s = -1; return true; - /* } */ case 39: - _r$20 = isUnsafePointer(Vu); /* */ $s = 48; case 48: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - if (!(_r$20)) { _v$7 = false; $s = 47; continue s; } - _r$21 = isPointer(Tu); /* */ $s = 50; case 50: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } - if (_r$21) { _v$8 = true; $s = 49; continue s; } - _r$22 = isUintptr(Tu); /* */ $s = 51; case 51: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _v$8 = _r$22; case 49: - _v$7 = _v$8; case 47: - /* */ if (_v$7) { $s = 45; continue; } - /* */ $s = 46; continue; - /* if (_v$7) { */ case 45: - $s = -1; return true; - /* } */ case 46: - _tuple$5 = $assertType(Vu, ptrType$25, true); - s = _tuple$5[0]; - /* */ if (!(s === ptrType$25.nil)) { $s = 52; continue; } - /* */ $s = 53; continue; - /* if (!(s === ptrType$25.nil)) { */ case 52: - _ref = Tu; - /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 54; continue; } - /* */ if ($assertType(_ref, ptrType$26, true)[1]) { $s = 55; continue; } - /* */ $s = 56; continue; - /* if ($assertType(_ref, ptrType$10, true)[1]) { */ case 54: - a = _ref.$val; - _r$23 = Identical(s.Elem(), a.Elem()); /* */ $s = 59; case 59: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - /* */ if (_r$23) { $s = 57; continue; } - /* */ $s = 58; continue; - /* if (_r$23) { */ case 57: - if (check[0] === ptrType$6.nil || check[0].allowVersion(check[0].pkg, 1, 20)) { - $s = -1; return true; - } - if (!(cause[0] === ptrType$34.nil)) { - cause[0].$set("conversion of slices to arrays requires go1.20 or later"); - } - $s = -1; return false; - /* } */ case 58: - $s = 56; continue; - /* } else if ($assertType(_ref, ptrType$26, true)[1]) { */ case 55: - a$1 = _ref.$val; - _r$24 = under(a$1.Elem()); /* */ $s = 60; case 60: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - _tuple$6 = $assertType(_r$24, ptrType$10, true); - a$2 = _tuple$6[0]; - /* */ if (!(a$2 === ptrType$10.nil)) { $s = 61; continue; } - /* */ $s = 62; continue; - /* if (!(a$2 === ptrType$10.nil)) { */ case 61: - _r$25 = Identical(s.Elem(), a$2.Elem()); /* */ $s = 65; case 65: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - /* */ if (_r$25) { $s = 63; continue; } - /* */ $s = 64; continue; - /* if (_r$25) { */ case 63: - if (check[0] === ptrType$6.nil || check[0].allowVersion(check[0].pkg, 1, 17)) { - $s = -1; return true; - } - if (!(cause[0] === ptrType$34.nil)) { - cause[0].$set("conversion of slices to array pointers requires go1.17 or later"); - } - $s = -1; return false; - /* } */ case 64: - /* } */ case 62: - /* } */ case 56: - /* } */ case 53: - if (Vp[0] === ptrType$14.nil && Tp[0] === ptrType$14.nil) { - $s = -1; return false; + brace = false; + if (str.charCodeAt(0) === 123) { + brace = true; + str = $substring(str, 1); + } + i = 0; + while (true) { + if (!(i < str.length)) { break; } + _tuple = utf8.DecodeRuneInString($substring(str, i)); + rune = _tuple[0]; + size = _tuple[1]; + if (!unicode.IsLetter(rune) && !unicode.IsDigit(rune) && !((rune === 95))) { + break; + } + i = i + (size) >> 0; + } + if (i === 0) { + return [name, num, rest, ok]; + } + name = $substring(str, 0, i); + if (brace) { + if (i >= str.length || !((str.charCodeAt(i) === 125))) { + return [name, num, rest, ok]; + } + i = i + (1) >> 0; + } + num = 0; + i$1 = 0; + while (true) { + if (!(i$1 < name.length)) { break; } + if (name.charCodeAt(i$1) < 48 || 57 < name.charCodeAt(i$1) || num >= 100000000) { + num = -1; + break; + } + num = (($imul(num, 10)) + ((name.charCodeAt(i$1) >> 0)) >> 0) - 48 >> 0; + i$1 = i$1 + (1) >> 0; } - errorf$2[0] = (function(T, Tp, Vp, cause, check, errorf$2, x, x$1, x$2) { return function operand·convertibleTo·func1(format, args) { - var {_r$26, args, format, msg$1, $s, $r, $c} = $restore(this, {format, args}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - /* */ if (!(check[0] === ptrType$6.nil) && !(cause[0] === ptrType$34.nil)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(check[0] === ptrType$6.nil) && !(cause[0] === ptrType$34.nil)) { */ case 1: - _r$26 = check[0].sprintf(format, args); /* */ $s = 3; case 3: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - msg$1 = _r$26; - if (!(cause[0].$get() === "")) { - msg$1 = msg$1 + ("\n\t" + cause[0].$get()); - } - cause[0].$set(msg$1); - /* } */ case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: operand·convertibleTo·func1, $c: true, $r, _r$26, args, format, msg$1, $s};return $f; - }; })(T, Tp, Vp, cause, check, errorf$2, x, x$1, x$2); - /* */ if (!(Vp[0] === ptrType$14.nil) && !(Tp[0] === ptrType$14.nil)) { $s = 67; continue; } - /* */ if (!(Vp[0] === ptrType$14.nil)) { $s = 68; continue; } - /* */ if (!(Tp[0] === ptrType$14.nil)) { $s = 69; continue; } - /* */ $s = 70; continue; - /* if (!(Vp[0] === ptrType$14.nil) && !(Tp[0] === ptrType$14.nil)) { */ case 67: - x[0] = $clone(x$2[0], operand); - _r$26 = Vp[0].is((function(T, Tp, Vp, cause, check, errorf$2, x, x$1, x$2) { return function operand·convertibleTo·func2(V$2) { - var {$24r, V$2, _r$26, $s, $r, $c} = $restore(this, {V$2}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - V$2 = [V$2]; - if (V$2[0] === ptrType$5.nil) { - $s = -1; return false; - } - x[0].typ = V$2[0].typ; - _r$26 = Tp[0].is((function(T, Tp, V$2, Vp, cause, check, errorf$2, x, x$1, x$2) { return function operand·convertibleTo·func2·func1(T$2) { - var {T$2, _r$26, $s, $r, $c} = $restore(this, {T$2}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (T$2 === ptrType$5.nil) { - $s = -1; return false; - } - _r$26 = x[0].convertibleTo(check[0], T$2.typ, cause[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - /* */ if (!_r$26) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!_r$26) { */ case 1: - $r = errorf$2[0]("cannot convert %s (in %s) to type %s (in %s)", new sliceType$6([V$2[0].typ, Vp[0], T$2.typ, Tp[0]])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return false; - /* } */ case 2: - $s = -1; return true; - /* */ } return; } var $f = {$blk: operand·convertibleTo·func2·func1, $c: true, $r, T$2, _r$26, $s};return $f; - }; })(T, Tp, V$2, Vp, cause, check, errorf$2, x, x$1, x$2)); /* */ $s = 1; case 1: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - $24r = _r$26; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: operand·convertibleTo·func2, $c: true, $r, $24r, V$2, _r$26, $s};return $f; - }; })(T, Tp, Vp, cause, check, errorf$2, x, x$1, x$2)); /* */ $s = 71; case 71: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - $24r = _r$26; - $s = 72; case 72: return $24r; - /* } else if (!(Vp[0] === ptrType$14.nil)) { */ case 68: - x$1[0] = $clone(x$2[0], operand); - _r$27 = Vp[0].is((function(T, Tp, Vp, cause, check, errorf$2, x, x$1, x$2) { return function operand·convertibleTo·func3(V$2) { - var {V$2, _r$27, $s, $r, $c} = $restore(this, {V$2}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (V$2 === ptrType$5.nil) { - $s = -1; return false; - } - x$1[0].typ = V$2.typ; - _r$27 = x$1[0].convertibleTo(check[0], T[0], cause[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - /* */ if (!_r$27) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!_r$27) { */ case 1: - $r = errorf$2[0]("cannot convert %s (in %s) to type %s", new sliceType$6([V$2.typ, Vp[0], T[0]])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return false; - /* } */ case 2: - $s = -1; return true; - /* */ } return; } var $f = {$blk: operand·convertibleTo·func3, $c: true, $r, V$2, _r$27, $s};return $f; - }; })(T, Tp, Vp, cause, check, errorf$2, x, x$1, x$2)); /* */ $s = 73; case 73: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - $24r$1 = _r$27; - $s = 74; case 74: return $24r$1; - /* } else if (!(Tp[0] === ptrType$14.nil)) { */ case 69: - _r$28 = Tp[0].is((function(T, Tp, Vp, cause, check, errorf$2, x, x$1, x$2) { return function operand·convertibleTo·func4(T$2) { - var {T$2, _r$28, $s, $r, $c} = $restore(this, {T$2}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (T$2 === ptrType$5.nil) { - $s = -1; return false; - } - _r$28 = x$2[0].convertibleTo(check[0], T$2.typ, cause[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - /* */ if (!_r$28) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!_r$28) { */ case 1: - $r = errorf$2[0]("cannot convert %s to type %s (in %s)", new sliceType$6([x$2[0].typ, T$2.typ, Tp[0]])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return false; - /* } */ case 2: - $s = -1; return true; - /* */ } return; } var $f = {$blk: operand·convertibleTo·func4, $c: true, $r, T$2, _r$28, $s};return $f; - }; })(T, Tp, Vp, cause, check, errorf$2, x, x$1, x$2)); /* */ $s = 75; case 75: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - $24r$2 = _r$28; - $s = 76; case 76: return $24r$2; - /* } */ case 70: - case 66: - $s = -1; return false; - /* */ } return; } var $f = {$blk: convertibleTo, $c: true, $r, $24r, $24r$1, $24r$2, T, T$1, Tp, Tu, V, V$1, Vp, Vu, _arg, _arg$1, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _v, _v$1, _v$2, _v$3, _v$4, _v$5, _v$6, _v$7, _v$8, a, a$1, a$2, cause, check, errorf$2, ok, ok$1, ok$2, s, x, x$1, x$2, $s};return $f; + if ((name.charCodeAt(0) === 48) && name.length > 1) { + num = -1; + } + rest = $substring(str, i); + ok = true; + return [name, num, rest, ok]; }; - isUintptr = function isUintptr$1(typ$4) { - var {_r$1, _tuple, t, typ$4, $s, $r, $c} = $restore(this, {typ$4}); + $ptrType(Regexp).prototype.FindSubmatchIndex = function FindSubmatchIndex(b) { + var {$24r, _r, _r$1, b, re, $s, $r, $c} = $restore(this, {b}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = under(typ$4); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = $assertType(_r$1, ptrType$4, true); - t = _tuple[0]; - $s = -1; return !(t === ptrType$4.nil) && (t.kind === 12); - /* */ } return; } var $f = {$blk: isUintptr$1, $c: true, $r, _r$1, _tuple, t, typ$4, $s};return $f; + re = this; + _r = re.doExecute($ifaceNil, b, "", 0, re.prog.NumCap, sliceType$7.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = re.pad(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: FindSubmatchIndex, $c: true, $r, $24r, _r, _r$1, b, re, $s};return $f; }; - isUnsafePointer = function isUnsafePointer$1(typ$4) { - var {_r$1, _tuple, t, typ$4, $s, $r, $c} = $restore(this, {typ$4}); + $ptrType(Regexp).prototype.FindStringSubmatch = function FindStringSubmatch(s) { + var {_i, _r, _ref, a, dstCap, i, re, ret, s, x, x$1, x$2, $s, $r, $c} = $restore(this, {s}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = under(typ$4); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = $assertType(_r$1, ptrType$4, true); - t = _tuple[0]; - $s = -1; return !(t === ptrType$4.nil) && (t.kind === 18); - /* */ } return; } var $f = {$blk: isUnsafePointer$1, $c: true, $r, _r$1, _tuple, t, typ$4, $s};return $f; + re = this; + dstCap = arrayType$4.zero(); + _r = re.doExecute($ifaceNil, sliceType$4.nil, s, 0, re.prog.NumCap, $subslice(new sliceType$7(dstCap), 0, 0)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + a = _r; + if (a === sliceType$7.nil) { + $s = -1; return sliceType$3.nil; + } + ret = $makeSlice(sliceType$3, (1 + re.numSubexp >> 0)); + _ref = ret; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + if (($imul(2, i)) < a.$length && (x = $imul(2, i), ((x < 0 || x >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x])) >= 0) { + ((i < 0 || i >= ret.$length) ? ($throwRuntimeError("index out of range"), undefined) : ret.$array[ret.$offset + i] = $substring(s, (x$1 = $imul(2, i), ((x$1 < 0 || x$1 >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x$1])), (x$2 = ($imul(2, i)) + 1 >> 0, ((x$2 < 0 || x$2 >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x$2])))); + } + _i++; + } + $s = -1; return ret; + /* */ } return; } var $f = {$blk: FindStringSubmatch, $c: true, $r, _i, _r, _ref, a, dstCap, i, re, ret, s, x, x$1, x$2, $s};return $f; }; - isPointer = function isPointer$1(typ$4) { - var {_r$1, _tuple, ok, typ$4, $s, $r, $c} = $restore(this, {typ$4}); + $ptrType(Regexp).prototype.FindStringSubmatchIndex = function FindStringSubmatchIndex(s) { + var {$24r, _r, _r$1, re, s, $s, $r, $c} = $restore(this, {s}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = under(typ$4); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = $assertType(_r$1, ptrType$26, true); - ok = _tuple[1]; - $s = -1; return ok; - /* */ } return; } var $f = {$blk: isPointer$1, $c: true, $r, _r$1, _tuple, ok, typ$4, $s};return $f; + re = this; + _r = re.doExecute($ifaceNil, sliceType$4.nil, s, 0, re.prog.NumCap, sliceType$7.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = re.pad(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: FindStringSubmatchIndex, $c: true, $r, $24r, _r, _r$1, re, s, $s};return $f; }; - isBytesOrRunes = function isBytesOrRunes$1(typ$4) { - var {_r$1, _r$2, _tuple, _tuple$1, s, t, typ$4, $s, $r, $c} = $restore(this, {typ$4}); + $ptrType(Regexp).prototype.FindReaderSubmatchIndex = function FindReaderSubmatchIndex(r) { + var {$24r, _r, _r$1, r, re, $s, $r, $c} = $restore(this, {r}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = under(typ$4); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = $assertType(_r$1, ptrType$25, true); - s = _tuple[0]; - /* */ if (!(s === ptrType$25.nil)) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!(s === ptrType$25.nil)) { */ case 2: - _r$2 = under(s.elem); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple$1 = $assertType(_r$2, ptrType$4, true); - t = _tuple$1[0]; - $s = -1; return !(t === ptrType$4.nil) && ((t.kind === 8) || (t.kind === 5)); - /* } */ case 3: - $s = -1; return false; - /* */ } return; } var $f = {$blk: isBytesOrRunes$1, $c: true, $r, _r$1, _r$2, _tuple, _tuple$1, s, t, typ$4, $s};return $f; - }; - NewContext = function NewContext$1() { - return new Context.ptr(new sync.Mutex.ptr(0, 0), new $global.Map(), 0, new $global.Map()); + re = this; + _r = re.doExecute(r, sliceType$4.nil, "", 0, re.prog.NumCap, sliceType$7.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = re.pad(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r = _r$1; + $s = 3; case 3: return $24r; + /* */ } return; } var $f = {$blk: FindReaderSubmatchIndex, $c: true, $r, $24r, _r, _r$1, r, re, $s};return $f; }; - $pkg.NewContext = NewContext; - $ptrType(Context).prototype.instanceHash = function instanceHash(orig, targs) { - var {_r$1, _r$2, _r$3, buf, ctxt, h, orig, targs, $s, $r, $c} = $restore(this, {orig, targs}); + $ptrType(Regexp).prototype.FindAll = function FindAll(b, n) { + var {b, n, re, result, $s, $r, $c} = $restore(this, {b, n}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - buf = [buf]; - ctxt = this; - $r = assert(!(ctxt === ptrType$51.nil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = assert(!($interfaceIsEqual(orig, $ifaceNil))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - buf[0] = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); - _r$1 = newTypeHasher(buf[0], ctxt); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - h = _r$1; - _r$2 = ctxt.getID(orig); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = strconv.Itoa(_r$2); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $r = h.string(_r$3); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = h.typ(orig); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (targs.$length > 0) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (targs.$length > 0) { */ case 8: - $r = h.typeList(targs); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 9: - $s = -1; return strings.Replace(buf[0].String(), " ", "#", -1); - /* */ } return; } var $f = {$blk: instanceHash, $c: true, $r, _r$1, _r$2, _r$3, buf, ctxt, h, orig, targs, $s};return $f; - }; - $ptrType(Context).prototype.lookup = function lookup$2(h, orig, targs) { - var {$24r, $24r$1, _entry, _i, _r$1, _r$2, _ref, ctxt, e, h, orig, targs, $s, $deferred, $r, $c} = $restore(this, {h, orig, targs}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - ctxt = this; - $r = ctxt.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(ctxt.mu, "Unlock"), []]); - _ref = (_entry = $mapIndex(ctxt.typeMap,$String.keyFor(h)), _entry !== undefined ? _entry.v : sliceType$34.nil); - _i = 0; - /* while (true) { */ case 2: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } - e = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), ctxtEntry); - _r$1 = identicalInstance(orig, targs, e.orig, e.targs); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_r$1) { */ case 4: - $24r = e.instance; - $s = 7; case 7: return $24r; - /* } */ case 5: - /* */ if (false) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (false) { */ case 8: - _r$2 = fmt.Sprintf("non-identical instances: (orig: %s, targs: %v) and %s", new sliceType$6([orig, targs, e.instance])); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $panic(new $String(_r$2)); - /* } */ case 9: - _i++; - $s = 2; continue; - case 3: - $24r$1 = $ifaceNil; - $s = 11; case 11: return $24r$1; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: lookup$2, $c: true, $r, $24r, $24r$1, _entry, _i, _r$1, _r$2, _ref, ctxt, e, h, orig, targs, $s, $deferred};return $f; } } - }; - $ptrType(Context).prototype.update = function update(h, orig, targs, inst) { - var {$24r, $24r$1, _entry, _entry$1, _i, _key, _r$1, _r$2, _ref, _v, ctxt, e, h, inst, orig, targs, $s, $deferred, $r, $c} = $restore(this, {h, orig, targs, inst}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - ctxt = this; - $r = assert(!($interfaceIsEqual(inst, $ifaceNil))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = ctxt.mu.Lock(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(ctxt.mu, "Unlock"), []]); - _ref = (_entry = $mapIndex(ctxt.typeMap,$String.keyFor(h)), _entry !== undefined ? _entry.v : sliceType$34.nil); - _i = 0; - /* while (true) { */ case 3: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } - e = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), ctxtEntry); - if ($interfaceIsEqual(inst, $ifaceNil)) { _v = true; $s = 7; continue s; } - _r$1 = Identical(inst, e.instance); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = _r$1; case 7: - /* */ if (_v) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (_v) { */ case 5: - $24r = e.instance; - $s = 9; case 9: return $24r; - /* } */ case 6: - /* */ if (false) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (false) { */ case 10: - _r$2 = fmt.Sprintf("%s and %s are not identical", new sliceType$6([inst, e.instance])); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $panic(new $String(_r$2)); - /* } */ case 11: - _i++; - $s = 3; continue; - case 4: - _key = h; (ctxt.typeMap || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: $append((_entry$1 = $mapIndex(ctxt.typeMap,$String.keyFor(h)), _entry$1 !== undefined ? _entry$1.v : sliceType$34.nil), new ctxtEntry.ptr(orig, targs, inst)) }); - $24r$1 = inst; - $s = 13; case 13: return $24r$1; - /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: update, $c: true, $r, $24r, $24r$1, _entry, _entry$1, _i, _key, _r$1, _r$2, _ref, _v, ctxt, e, h, inst, orig, targs, $s, $deferred};return $f; } } - }; - $ptrType(Context).prototype.getID = function getID(t) { - var {$24r, _entry, _key, _tuple, ctxt, id, ok, t, $s, $deferred, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - ctxt = this; - $r = ctxt.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $deferred.push([$methodVal(ctxt.mu, "Unlock"), []]); - _tuple = (_entry = $mapIndex(ctxt.originIDs,Type.keyFor(t)), _entry !== undefined ? [_entry.v, true] : [0, false]); - id = _tuple[0]; - ok = _tuple[1]; - if (!ok) { - id = ctxt.nextID; - _key = t; (ctxt.originIDs || $throwRuntimeError("assignment to entry in nil map")).set(Type.keyFor(_key), { k: _key, v: id }); - ctxt.nextID = ctxt.nextID + (1) >> 0; + b = [b]; + result = [result]; + re = this; + if (n < 0) { + n = b[0].$length + 1 >> 0; } - $24r = id; - $s = 2; case 2: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; return 0; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: getID, $c: true, $r, $24r, _entry, _key, _tuple, ctxt, id, ok, t, $s, $deferred};return $f; } } + result[0] = sliceType$8.nil; + $r = re.allMatches("", b[0], n, (function(b, result) { return function Regexp·FindAll·func1(match) { + var match; + if (result[0] === sliceType$8.nil) { + result[0] = $makeSlice(sliceType$8, 0, 10); + } + result[0] = $append(result[0], $subslice(b[0], (0 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 0]), (1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]), (1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]))); + }; })(b, result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return result[0]; + /* */ } return; } var $f = {$blk: FindAll, $c: true, $r, b, n, re, result, $s};return $f; }; - $ptrType(environment).prototype.lookup = function lookup$3(name) { - var {_r$1, _tuple, env, name, obj, $s, $r, $c} = $restore(this, {name}); + $ptrType(Regexp).prototype.FindAllIndex = function FindAllIndex(b, n) { + var {b, n, re, result, $s, $r, $c} = $restore(this, {b, n}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - env = this; - _r$1 = env.scope.LookupParent(name, env.pos); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - obj = _tuple[1]; - $s = -1; return obj; - /* */ } return; } var $f = {$blk: lookup$3, $c: true, $r, _r$1, _tuple, env, name, obj, $s};return $f; - }; - $ptrType(action).prototype.describef = function describef(pos$1, format, args) { - var a, args, format, pos$1; - a = this; - if (false) { - a.desc = new actionDesc.ptr(pos$1, format, args); + result = [result]; + re = this; + if (n < 0) { + n = b.$length + 1 >> 0; } + result[0] = sliceType$9.nil; + $r = re.allMatches("", b, n, (function(result) { return function Regexp·FindAllIndex·func1(match) { + var match; + if (result[0] === sliceType$9.nil) { + result[0] = $makeSlice(sliceType$9, 0, 10); + } + result[0] = $append(result[0], $subslice(match, 0, 2)); + }; })(result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return result[0]; + /* */ } return; } var $f = {$blk: FindAllIndex, $c: true, $r, b, n, re, result, $s};return $f; }; - $ptrType(Checker).prototype.addDeclDep = function addDeclDep(to) { - var _entry, _tuple, check, found, from, to; - check = this; - from = check.environment.decl; - if (from === ptrType$58.nil) { - return; - } - _tuple = (_entry = $mapIndex(check.objMap,Object.keyFor(to)), _entry !== undefined ? [_entry.v, true] : [ptrType$58.nil, false]); - found = _tuple[1]; - if (!found) { - return; - } - from.addDep(to); - }; - $ptrType(Checker).prototype.brokenAlias = function brokenAlias(alias) { - var _key, alias, check; - check = this; - if (check.brokenAliases === false) { - check.brokenAliases = new $global.Map(); - } - _key = alias; (check.brokenAliases || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$17.keyFor(_key), { k: _key, v: true }); - alias.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - }; - $ptrType(Checker).prototype.validAlias = function validAlias(alias, typ$4) { - var alias, check, typ$4; - check = this; - $mapDelete(check.brokenAliases, ptrType$17.keyFor(alias)); - alias.object.typ = typ$4; - }; - $ptrType(Checker).prototype.isBrokenAlias = function isBrokenAlias(alias) { - var _entry, alias, check; - check = this; - return $interfaceIsEqual(alias.object.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])) && (_entry = $mapIndex(check.brokenAliases,ptrType$17.keyFor(alias)), _entry !== undefined ? _entry.v : false); - }; - $ptrType(Checker).prototype.rememberUntyped = function rememberUntyped(e, lhs, mode, typ$4, val) { - var _key, check, e, lhs, m, mode, typ$4, val; - check = this; - m = check.untyped; - if (m === false) { - m = new $global.Map(); - check.untyped = m; - } - _key = e; (m || $throwRuntimeError("assignment to entry in nil map")).set(ast.Expr.keyFor(_key), { k: _key, v: $clone(new exprInfo.ptr(lhs, mode, typ$4, val), exprInfo) }); - }; - $ptrType(Checker).prototype.later = function later(f) { - var check, f, i, x; - check = this; - i = check.delayed.$length; - check.delayed = $append(check.delayed, new action.ptr(f, ptrType$109.nil)); - return (x = check.delayed, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - }; - $ptrType(Checker).prototype.push = function push(obj) { - var check, obj; - check = this; - check.objPath = $append(check.objPath, obj); - return check.objPath.$length - 1 >> 0; - }; - $ptrType(Checker).prototype.pop = function pop() { - var check, i, obj, x, x$1; - check = this; - i = check.objPath.$length - 1 >> 0; - obj = (x = check.objPath, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - (x$1 = check.objPath, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i] = $ifaceNil)); - check.objPath = $subslice(check.objPath, 0, i); - return obj; - }; - $ptrType(Checker).prototype.needsCleanup = function needsCleanup(c) { - var c, check; - check = this; - check.cleaners = $append(check.cleaners, c); - }; - NewChecker = function NewChecker$1(conf, fset, pkg, info) { - var {_r$1, _r$2, _tuple, conf, err, fset, info, pkg, version$1, $s, $r, $c} = $restore(this, {conf, fset, pkg, info}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (conf === ptrType$101.nil) { - conf = new Config.ptr(ptrType$51.nil, "", false, false, false, $throwNilPointerError, $ifaceNil, $ifaceNil, false, false); - } - if (info === ptrType$110.nil) { - info = new Info.ptr(false, false, false, false, false, false, false, sliceType$30.nil); - } - _r$1 = parseGoVersion(conf.GoVersion); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - version$1 = $clone(_tuple[0], version); - err = _tuple[1]; - /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2: - _r$2 = fmt.Sprintf("invalid Go version %q (%v)", new sliceType$6([new $String(conf.GoVersion), err])); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $panic(new $String(_r$2)); - /* } */ case 3: - $s = -1; return new Checker.ptr(conf, conf.Context, fset, pkg, info, $clone(version$1, version), new $Uint64(0, 0), new $global.Map(), new $global.Map(), new instanceLookup.ptr(arrayType$1.zero(), false), false, false, sliceType$35.nil, sliceType$36.nil, false, false, false, false, new monoGraph.ptr(sliceType$37.nil, sliceType$38.nil, false, false), $ifaceNil, false, false, sliceType$39.nil, sliceType$8.nil, sliceType$40.nil, new environment.ptr(ptrType$58.nil, ptrType.nil, 0, $ifaceNil, $ifaceNil, false, ptrType$27.nil, false, false, false), 0); - /* */ } return; } var $f = {$blk: NewChecker$1, $c: true, $r, _r$1, _r$2, _tuple, conf, err, fset, info, pkg, version$1, $s};return $f; - }; - $pkg.NewChecker = NewChecker; - $ptrType(Checker).prototype.initFiles = function initFiles(files) { - var {_1, _i, _ref, check, file, files, name, pkg, $s, $r, $c} = $restore(this, {files}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - check.files = sliceType$35.nil; - check.imports = sliceType$36.nil; - check.dotImportMap = false; - check.firstErr = $ifaceNil; - check.methods = false; - check.untyped = false; - check.delayed = sliceType$39.nil; - check.objPath = sliceType$8.nil; - check.cleaners = sliceType$40.nil; - pkg = check.pkg; - _ref = files; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - file = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - name = file.Name.Name; - _1 = pkg.name; - /* */ if (_1 === ("")) { $s = 4; continue; } - /* */ if (_1 === (name)) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (_1 === ("")) { */ case 4: - /* */ if (!(name === "_")) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (!(name === "_")) { */ case 8: - pkg.name = name; - $s = 10; continue; - /* } else { */ case 9: - $r = check.error(file.Name, 2, "invalid package name _"); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 10: - check.files = $append(check.files, file); - $s = 7; continue; - /* } else if (_1 === (name)) { */ case 5: - check.files = $append(check.files, file); - $s = 7; continue; - /* } else { */ case 6: - $r = check.errorf(new atPos(((file.Package >> 0))), 3, "package %s; expected %s", new sliceType$6([new $String(name), new $String(pkg.name)])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 7: - case 3: - _i++; - $s = 1; continue; - case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: initFiles, $c: true, $r, _1, _i, _ref, check, file, files, name, pkg, $s};return $f; - }; - $ptrType(Checker).prototype.handleBailout = function handleBailout(err) { - var _ref, check, err, p, p$1; - check = this; - _ref = $recover(); - if (_ref === $ifaceNil || $assertType(_ref, bailout, true)[1]) { - p = _ref; - err.$set(check.firstErr); - } else { - p$1 = _ref; - $panic(p$1); + $ptrType(Regexp).prototype.FindAllString = function FindAllString(s, n) { + var {n, re, result, s, $s, $r, $c} = $restore(this, {s, n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + result = [result]; + s = [s]; + re = this; + if (n < 0) { + n = s[0].length + 1 >> 0; } + result[0] = sliceType$3.nil; + $r = re.allMatches(s[0], sliceType$4.nil, n, (function(result, s) { return function Regexp·FindAllString·func1(match) { + var match; + if (result[0] === sliceType$3.nil) { + result[0] = $makeSlice(sliceType$3, 0, 10); + } + result[0] = $append(result[0], $substring(s[0], (0 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 0]), (1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]))); + }; })(result, s)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return result[0]; + /* */ } return; } var $f = {$blk: FindAllString, $c: true, $r, n, re, result, s, $s};return $f; }; - $ptrType(Checker).prototype.Files = function Files(files) { - var {$24r, _r$1, check, files, $s, $r, $c} = $restore(this, {files}); + $ptrType(Regexp).prototype.FindAllStringIndex = function FindAllStringIndex(s, n) { + var {n, re, result, s, $s, $r, $c} = $restore(this, {s, n}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = check.checkFiles(files); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Files, $c: true, $r, $24r, _r$1, check, files, $s};return $f; + result = [result]; + re = this; + if (n < 0) { + n = s.length + 1 >> 0; + } + result[0] = sliceType$9.nil; + $r = re.allMatches(s, sliceType$4.nil, n, (function(result) { return function Regexp·FindAllStringIndex·func1(match) { + var match; + if (result[0] === sliceType$9.nil) { + result[0] = $makeSlice(sliceType$9, 0, 10); + } + result[0] = $append(result[0], $subslice(match, 0, 2)); + }; })(result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return result[0]; + /* */ } return; } var $f = {$blk: FindAllStringIndex, $c: true, $r, n, re, result, s, $s};return $f; }; - $ptrType(Checker).prototype.checkFiles = function checkFiles(files) { - var {check, err, files, print, $s, $deferred, $r, $c} = $restore(this, {files}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - err = [err]; - err[0] = $ifaceNil; - check = this; - if (check.conf.FakeImportC && check.conf.go115UsesCgo) { - err[0] = errBadCgo; - $s = -1; return err[0]; - } - $deferred.push([$methodVal(check, "handleBailout"), [(err.$ptr || (err.$ptr = new ptrType$103(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, err)))]]); - print = (function(err) { return function Checker·checkFiles·func1(msg$1) { - var {_r$1, _r$2, msg$1, $s, $r, $c} = $restore(this, {msg$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - /* */ if (false) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (false) { */ case 1: - _r$1 = fmt.Println(sliceType$6.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - _r$2 = fmt.Println(new sliceType$6([new $String(msg$1)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - /* } */ case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·checkFiles·func1, $c: true, $r, _r$1, _r$2, msg$1, $s};return $f; - }; })(err); - $r = print("== initFiles =="); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.initFiles(files); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = print("== collectObjects =="); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.collectObjects(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = print("== packageObjects =="); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.packageObjects(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = print("== processDelayed =="); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.processDelayed(0); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = print("== cleanup =="); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.cleanup(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = print("== initOrder =="); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.initOrder(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!check.conf.DisableUnusedImportCheck) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (!check.conf.DisableUnusedImportCheck) { */ case 13: - $r = print("== unusedImports =="); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.unusedImports(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 14: - $r = print("== recordUntyped =="); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.recordUntyped(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if ($interfaceIsEqual(check.firstErr, $ifaceNil)) { $s = 19; continue; } - /* */ $s = 20; continue; - /* if ($interfaceIsEqual(check.firstErr, $ifaceNil)) { */ case 19: - $r = check.monomorph(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 20: - check.pkg.complete = true; - check.imports = sliceType$36.nil; - check.dotImportMap = false; - check.pkgPathMap = false; - check.seenPkgMap = false; - check.recvTParamMap = false; - check.brokenAliases = false; - check.unionTypeSets = false; - check.ctxt = ptrType$51.nil; - $s = -1; return err[0]; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return err[0]; } if($curGoroutine.asleep) { var $f = {$blk: checkFiles, $c: true, $r, check, err, files, print, $s, $deferred};return $f; } } + $ptrType(Regexp).prototype.FindAllSubmatch = function FindAllSubmatch(b, n) { + var {b, n, re, result, $s, $r, $c} = $restore(this, {b, n}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + b = [b]; + result = [result]; + re = this; + if (n < 0) { + n = b[0].$length + 1 >> 0; + } + result[0] = sliceType$10.nil; + $r = re.allMatches("", b[0], n, (function(b, result) { return function Regexp·FindAllSubmatch·func1(match) { + var _i, _q, _ref, j, match, slice, x, x$1, x$2, x$3; + if (result[0] === sliceType$10.nil) { + result[0] = $makeSlice(sliceType$10, 0, 10); + } + slice = $makeSlice(sliceType$8, (_q = match.$length / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))); + _ref = slice; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + j = _i; + if ((x = $imul(2, j), ((x < 0 || x >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x])) >= 0) { + ((j < 0 || j >= slice.$length) ? ($throwRuntimeError("index out of range"), undefined) : slice.$array[slice.$offset + j] = $subslice(b[0], (x$1 = $imul(2, j), ((x$1 < 0 || x$1 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$1])), (x$2 = ($imul(2, j)) + 1 >> 0, ((x$2 < 0 || x$2 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$2])), (x$3 = ($imul(2, j)) + 1 >> 0, ((x$3 < 0 || x$3 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$3])))); + } + _i++; + } + result[0] = $append(result[0], slice); + }; })(b, result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return result[0]; + /* */ } return; } var $f = {$blk: FindAllSubmatch, $c: true, $r, b, n, re, result, $s};return $f; }; - $ptrType(Checker).prototype.processDelayed = function processDelayed(top) { - var {_r$1, _r$2, a, check, i, top, x, $s, $r, $c} = $restore(this, {top}); + $ptrType(Regexp).prototype.FindAllSubmatchIndex = function FindAllSubmatchIndex(b, n) { + var {b, n, re, result, $s, $r, $c} = $restore(this, {b, n}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - i = top; - /* while (true) { */ case 1: - /* if (!(i < check.delayed.$length)) { break; } */ if(!(i < check.delayed.$length)) { $s = 2; continue; } - a = (x = check.delayed, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - /* */ if (false) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (false) { */ case 3: - /* */ if (!(a.desc === ptrType$109.nil)) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (!(a.desc === ptrType$109.nil)) { */ case 5: - _r$1 = a.desc.pos.Pos(); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $r = check.trace(_r$1, "-- " + a.desc.format, a.desc.args); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 7; continue; - /* } else { */ case 6: - $r = check.trace(0, "-- delayed %p", new sliceType$6([new funcType$1(a.f)])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 7: - /* } */ case 4: - $r = a.f(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (false) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (false) { */ case 12: - _r$2 = fmt.Println(sliceType$6.nil); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - /* } */ case 13: - i = i + (1) >> 0; - $s = 1; continue; - case 2: - $r = assert(top <= check.delayed.$length); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - check.delayed = $subslice(check.delayed, 0, top); - $s = -1; return; - /* */ } return; } var $f = {$blk: processDelayed, $c: true, $r, _r$1, _r$2, a, check, i, top, x, $s};return $f; + result = [result]; + re = this; + if (n < 0) { + n = b.$length + 1 >> 0; + } + result[0] = sliceType$9.nil; + $r = re.allMatches("", b, n, (function(result) { return function Regexp·FindAllSubmatchIndex·func1(match) { + var match; + if (result[0] === sliceType$9.nil) { + result[0] = $makeSlice(sliceType$9, 0, 10); + } + result[0] = $append(result[0], match); + }; })(result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return result[0]; + /* */ } return; } var $f = {$blk: FindAllSubmatchIndex, $c: true, $r, b, n, re, result, $s};return $f; }; - $ptrType(Checker).prototype.cleanup = function cleanup$3() { - var {check, i, x, $s, $r, $c} = $restore(this, {}); + $ptrType(Regexp).prototype.FindAllStringSubmatch = function FindAllStringSubmatch(s, n) { + var {n, re, result, s, $s, $r, $c} = $restore(this, {s, n}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - i = 0; - /* while (true) { */ case 1: - /* if (!(i < check.cleaners.$length)) { break; } */ if(!(i < check.cleaners.$length)) { $s = 2; continue; } - $r = (x = check.cleaners, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])).cleanup(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - i = i + (1) >> 0; - $s = 1; continue; - case 2: - check.cleaners = sliceType$40.nil; - $s = -1; return; - /* */ } return; } var $f = {$blk: cleanup$3, $c: true, $r, check, i, x, $s};return $f; + result = [result]; + s = [s]; + re = this; + if (n < 0) { + n = s[0].length + 1 >> 0; + } + result[0] = sliceType$11.nil; + $r = re.allMatches(s[0], sliceType$4.nil, n, (function(result, s) { return function Regexp·FindAllStringSubmatch·func1(match) { + var _i, _q, _ref, j, match, slice, x, x$1, x$2; + if (result[0] === sliceType$11.nil) { + result[0] = $makeSlice(sliceType$11, 0, 10); + } + slice = $makeSlice(sliceType$3, (_q = match.$length / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))); + _ref = slice; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + j = _i; + if ((x = $imul(2, j), ((x < 0 || x >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x])) >= 0) { + ((j < 0 || j >= slice.$length) ? ($throwRuntimeError("index out of range"), undefined) : slice.$array[slice.$offset + j] = $substring(s[0], (x$1 = $imul(2, j), ((x$1 < 0 || x$1 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$1])), (x$2 = ($imul(2, j)) + 1 >> 0, ((x$2 < 0 || x$2 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$2])))); + } + _i++; + } + result[0] = $append(result[0], slice); + }; })(result, s)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return result[0]; + /* */ } return; } var $f = {$blk: FindAllStringSubmatch, $c: true, $r, n, re, result, s, $s};return $f; }; - $ptrType(Checker).prototype.record = function record(x) { - var {_1, check, typ$4, val, x, $s, $r, $c} = $restore(this, {x}); + $ptrType(Regexp).prototype.FindAllStringSubmatchIndex = function FindAllStringSubmatchIndex(s, n) { + var {n, re, result, s, $s, $r, $c} = $restore(this, {s, n}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - typ$4 = $ifaceNil; - val = $ifaceNil; - _1 = x.mode; - if (_1 === (0)) { - typ$4 = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - } else if (_1 === (1)) { - typ$4 = (ptrType$15.nil); - } else if (_1 === (4)) { - typ$4 = x.typ; - val = x.val; - } else { - typ$4 = x.typ; + result = [result]; + re = this; + if (n < 0) { + n = s.length + 1 >> 0; } - $r = assert(!($interfaceIsEqual(x.expr, $ifaceNil)) && !($interfaceIsEqual(typ$4, $ifaceNil))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (isUntyped(typ$4)) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (isUntyped(typ$4)) { */ case 2: - check.rememberUntyped(x.expr, false, x.mode, $assertType(typ$4, ptrType$4), val); - $s = 4; continue; - /* } else { */ case 3: - $r = check.recordTypeAndValue(x.expr, x.mode, typ$4, val); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 4: - $s = -1; return; - /* */ } return; } var $f = {$blk: record, $c: true, $r, _1, check, typ$4, val, x, $s};return $f; + result[0] = sliceType$9.nil; + $r = re.allMatches(s, sliceType$4.nil, n, (function(result) { return function Regexp·FindAllStringSubmatchIndex·func1(match) { + var match; + if (result[0] === sliceType$9.nil) { + result[0] = $makeSlice(sliceType$9, 0, 10); + } + result[0] = $append(result[0], match); + }; })(result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return result[0]; + /* */ } return; } var $f = {$blk: FindAllStringSubmatchIndex, $c: true, $r, n, re, result, s, $s};return $f; }; - $ptrType(Checker).prototype.recordUntyped = function recordUntyped() { - var {_arg, _arg$1, _arg$2, _entry, _i, _key, _keys, _r$1, _ref, _size, check, info, x, $s, $r, $c} = $restore(this, {}); + $ptrType(Regexp).prototype.Split = function Split(s, n) { + var {_i, _r, _ref, beg, end, match, matches, n, re, s, strings$1, $s, $r, $c} = $restore(this, {s, n}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - if (true && check.Info.Types === false) { - $s = -1; return; + re = this; + if (n === 0) { + $s = -1; return sliceType$3.nil; + } + if (re.expr.length > 0 && (s.length === 0)) { + $s = -1; return new sliceType$3([""]); } - _ref = check.untyped; + _r = re.FindAllStringIndex(s, n); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + matches = _r; + strings$1 = $makeSlice(sliceType$3, 0, matches.$length); + beg = 0; + end = 0; + _ref = matches; _i = 0; - _keys = _ref ? _ref.keys() : undefined; - _size = _ref ? _ref.size : 0; - /* while (true) { */ case 1: - /* if (!(_i < _size)) { break; } */ if(!(_i < _size)) { $s = 2; continue; } - _key = _keys.next().value; - _entry = _ref.get(_key); - if (_entry === undefined) { - _i++; - /* continue; */ $s = 1; continue; + while (true) { + if (!(_i < _ref.$length)) { break; } + match = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (n > 0 && strings$1.$length >= (n - 1 >> 0)) { + break; } - x = _entry.k; - info = $clone(_entry.v, exprInfo); - /* */ if (false && isTyped(info.typ)) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (false && isTyped(info.typ)) { */ case 3: - _r$1 = x.Pos(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _arg = new token.Pos(_r$1); - _arg$1 = x; - _arg$2 = info.typ; - $r = check.dump("%v: %s (type %s) is typed", new sliceType$6([_arg, _arg$1, _arg$2])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - unreachable(); - /* } */ case 4: - $r = check.recordTypeAndValue(x, info.mode, info.typ, info.val); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + end = (0 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 0]); + if (!(((1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]) === 0))) { + strings$1 = $append(strings$1, $substring(s, beg, end)); + } + beg = (1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]); _i++; - $s = 1; continue; - case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: recordUntyped, $c: true, $r, _arg, _arg$1, _arg$2, _entry, _i, _key, _keys, _r$1, _ref, _size, check, info, x, $s};return $f; - }; - $ptrType(Checker).prototype.recordTypeAndValue = function recordTypeAndValue(x, mode, typ$4, val) { - var {_key, _r$1, _v, check, m, mode, typ$4, val, x, $s, $r, $c} = $restore(this, {x, mode, typ$4, val}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - $r = assert(!($interfaceIsEqual(x, $ifaceNil))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = assert(!($interfaceIsEqual(typ$4, $ifaceNil))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (mode === 0) { - $s = -1; return; } - /* */ if (mode === 4) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (mode === 4) { */ case 3: - $r = assert(!($interfaceIsEqual(val, $ifaceNil))); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if ($interfaceIsEqual(typ$4, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { _v = true; $s = 6; continue s; } - _r$1 = allBasic(typ$4, 59); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = _r$1; case 6: - $r = assert(_v); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 4: - m = check.Info.Types; - if (!(m === false)) { - _key = x; (m || $throwRuntimeError("assignment to entry in nil map")).set(ast.Expr.keyFor(_key), { k: _key, v: $clone(new TypeAndValue.ptr(mode, typ$4, val), TypeAndValue) }); + if (!((end === s.length))) { + strings$1 = $append(strings$1, $substring(s, beg)); } - $s = -1; return; - /* */ } return; } var $f = {$blk: recordTypeAndValue, $c: true, $r, _key, _r$1, _v, check, m, mode, typ$4, val, x, $s};return $f; + $s = -1; return strings$1; + /* */ } return; } var $f = {$blk: Split, $c: true, $r, _i, _r, _ref, beg, end, match, matches, n, re, s, strings$1, $s};return $f; }; - $ptrType(Checker).prototype.recordBuiltinType = function recordBuiltinType(f, sig) { - var {_ref, check, f, p, p$1, p$2, sig, $s, $r, $c} = $restore(this, {f, sig}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - /* while (true) { */ case 1: - $r = check.recordTypeAndValue(f, 2, sig, $ifaceNil); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _ref = f; - if ($assertType(_ref, ptrType$30, true)[1] || $assertType(_ref, ptrType$36, true)[1]) { - p = _ref; - $s = -1; return; - } else if ($assertType(_ref, ptrType$39, true)[1]) { - p$1 = _ref.$val; - f = p$1.X; - } else { - p$2 = _ref; - unreachable(); - } - $s = 1; continue; - case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: recordBuiltinType, $c: true, $r, _ref, check, f, p, p$1, p$2, sig, $s};return $f; + $ptrType(Regexp).prototype.MarshalText = function MarshalText() { + var re; + re = this; + return [(new sliceType$4($stringToBytes(re.String()))), $ifaceNil]; }; - $ptrType(Checker).prototype.recordCommaOkTypes = function recordCommaOkTypes(x, a) { - var {_entry, _key, _r$1, _r$2, _tuple, _v, a, check, m, p, pos$1, tv, x, $s, $r, $c} = $restore(this, {x, a}); + $ptrType(Regexp).prototype.UnmarshalText = function UnmarshalText(text) { + var {_r, _tuple, err, newRE, re, text, $s, $r, $c} = $restore(this, {text}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - $r = assert(!($interfaceIsEqual(x, $ifaceNil))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if ($interfaceIsEqual(a[0], $ifaceNil) || $interfaceIsEqual(a[1], $ifaceNil)) { - $s = -1; return; + re = this; + _r = Compile(($bytesToString(text))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + newRE = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; } - if (!(isTyped(a[0]) && isTyped(a[1]))) { _v = false; $s = 2; continue s; } - _r$1 = isBoolean(a[1]); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = _r$1 || $interfaceIsEqual(a[1], universeError); case 2: - $r = assert(_v); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - m = check.Info.Types; - /* */ if (!(m === false)) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (!(m === false)) { */ case 5: - /* while (true) { */ case 7: - tv = $clone((_entry = $mapIndex(m,ast.Expr.keyFor(x)), _entry !== undefined ? _entry.v : new TypeAndValue.ptr(0, $ifaceNil, $ifaceNil)), TypeAndValue); - $r = assert(!($interfaceIsEqual(tv.Type, $ifaceNil))); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$2 = x.Pos(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - pos$1 = _r$2; - tv.Type = NewTuple(new sliceType$10([NewVar(pos$1, check.pkg, "", a[0]), NewVar(pos$1, check.pkg, "", a[1])])); - _key = x; (m || $throwRuntimeError("assignment to entry in nil map")).set(ast.Expr.keyFor(_key), { k: _key, v: $clone(tv, TypeAndValue) }); - _tuple = $assertType(x, ptrType$39, true); - p = _tuple[0]; - if (p === ptrType$39.nil) { - /* break; */ $s = 8; continue; - } - x = p.X; - $s = 7; continue; - case 8: - /* } */ case 6: - $s = -1; return; - /* */ } return; } var $f = {$blk: recordCommaOkTypes, $c: true, $r, _entry, _key, _r$1, _r$2, _tuple, _v, a, check, m, p, pos$1, tv, x, $s};return $f; + Regexp.copy((re === ptrType.nil && $throwNilPointerError(), re), (newRE === ptrType.nil && $throwNilPointerError(), newRE)); + $s = -1; return $ifaceNil; + /* */ } return; } var $f = {$blk: UnmarshalText, $c: true, $r, _r, _tuple, err, newRE, re, text, $s};return $f; }; - $ptrType(Checker).prototype.recordInstance = function recordInstance$1(expr$1, targs, typ$4) { - var {_key, check, expr$1, ident$1, m, targs, typ$4, $s, $r, $c} = $restore(this, {expr$1, targs, typ$4}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - ident$1 = instantiatedIdent(expr$1); - $r = assert(!(ident$1 === ptrType$30.nil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = assert(!($interfaceIsEqual(typ$4, $ifaceNil))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - m = check.Info.Instances; - if (!(m === false)) { - _key = ident$1; (m || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$30.keyFor(_key), { k: _key, v: $clone(new Instance.ptr(newTypeList(targs), typ$4), Instance) }); + onePassPrefix = function onePassPrefix$1(p) { + var _tmp, _tmp$1, _tmp$10, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, buf, complete, i, p, pc, prefix, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + prefix = ""; + complete = false; + pc = 0; + i = (x = p.Inst, x$1 = p.Start, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + x$1, ptrType$6))); + if (!((i.Op === 3)) || ((((((i.Arg << 24 >>> 24))) & 4) >>> 0) === 0)) { + _tmp = ""; + _tmp$1 = i.Op === 4; + _tmp$2 = ((p.Start >>> 0)); + prefix = _tmp; + complete = _tmp$1; + pc = _tmp$2; + return [prefix, complete, pc]; } - $s = -1; return; - /* */ } return; } var $f = {$blk: recordInstance$1, $c: true, $r, _key, check, expr$1, ident$1, m, targs, typ$4, $s};return $f; - }; - instantiatedIdent = function instantiatedIdent$1(expr$1) { - var _ref, _ref$1, e, e$1, e$2, expr$1, selOrIdent, x, x$1; - selOrIdent = $ifaceNil; - _ref = expr$1; - if ($assertType(_ref, ptrType$37, true)[1]) { - e = _ref.$val; - selOrIdent = e.X; - } else if ($assertType(_ref, ptrType$38, true)[1]) { - e$1 = _ref.$val; - selOrIdent = e$1.X; - } else if ($assertType(_ref, ptrType$36, true)[1] || $assertType(_ref, ptrType$30, true)[1]) { - e$2 = _ref; - selOrIdent = e$2; - } - _ref$1 = selOrIdent; - if ($assertType(_ref$1, ptrType$30, true)[1]) { - x = _ref$1.$val; - return x; - } else if ($assertType(_ref$1, ptrType$36, true)[1]) { - x$1 = _ref$1.$val; - return x$1.Sel; + pc = i.Out; + i = (x$2 = p.Inst, ((pc < 0 || pc >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$2.$array, x$2.$offset + pc, ptrType$6))); + while (true) { + if (!(i.Op === 6)) { break; } + pc = i.Out; + i = (x$3 = p.Inst, ((pc < 0 || pc >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$3.$array, x$3.$offset + pc, ptrType$6))); + } + if (!((iop(i) === 7)) || !((i.Rune.$length === 1))) { + _tmp$3 = ""; + _tmp$4 = i.Op === 4; + _tmp$5 = ((p.Start >>> 0)); + prefix = _tmp$3; + complete = _tmp$4; + pc = _tmp$5; + return [prefix, complete, pc]; + } + buf = new strings.Builder.ptr(ptrType$7.nil, sliceType$4.nil); + while (true) { + if (!((iop(i) === 7) && (i.Rune.$length === 1) && (((((i.Arg << 16 >>> 16)) & 1) >>> 0) === 0) && !(((x$4 = i.Rune, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])) === 65533)))) { break; } + buf.WriteRune((x$5 = i.Rune, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0]))); + _tmp$6 = i.Out; + _tmp$7 = (x$6 = p.Inst, x$7 = i.Out, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$6.$array, x$6.$offset + x$7, ptrType$6))); + pc = _tmp$6; + i = _tmp$7; + } + if ((i.Op === 3) && !((((((i.Arg << 24 >>> 24)) & 8) >>> 0) === 0)) && ((x$8 = p.Inst, x$9 = i.Out, ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + x$9])).Op === 4)) { + complete = true; } - $panic(new $String("instantiated ident not found")); + _tmp$8 = buf.String(); + _tmp$9 = complete; + _tmp$10 = pc; + prefix = _tmp$8; + complete = _tmp$9; + pc = _tmp$10; + return [prefix, complete, pc]; }; - $ptrType(Checker).prototype.recordDef = function recordDef(id, obj) { - var {_key, check, id, m, obj, $s, $r, $c} = $restore(this, {id, obj}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - $r = assert(!(id === ptrType$30.nil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - m = check.Info.Defs; - if (!(m === false)) { - _key = id; (m || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$30.keyFor(_key), { k: _key, v: obj }); + onePassNext = function onePassNext$1(i, r) { + var i, next, r, x; + next = i.Inst.MatchRunePos(r); + if (next >= 0) { + return (x = i.Next, ((next < 0 || next >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + next])); } - $s = -1; return; - /* */ } return; } var $f = {$blk: recordDef, $c: true, $r, _key, check, id, m, obj, $s};return $f; + if (i.Inst.Op === 1) { + return i.Inst.Out; + } + return 0; + }; + iop = function iop$1(i) { + var _1, i, op; + op = i.Op; + _1 = op; + if ((_1 === (8)) || (_1 === (9)) || (_1 === (10))) { + op = 7; + } + return op; + }; + $ptrType(queueOnePass).prototype.empty = function empty() { + var q; + q = this; + return q.nextIndex >= q.size; + }; + $ptrType(queueOnePass).prototype.next = function next() { + var n, q, x, x$1; + n = 0; + q = this; + n = (x = q.dense, x$1 = q.nextIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + q.nextIndex = q.nextIndex + (1) >>> 0; + return n; }; - $ptrType(Checker).prototype.recordUse = function recordUse(id, obj) { - var {_key, check, id, m, obj, $s, $r, $c} = $restore(this, {id, obj}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - $r = assert(!(id === ptrType$30.nil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = assert(!($interfaceIsEqual(obj, $ifaceNil))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - m = check.Info.Uses; - if (!(m === false)) { - _key = id; (m || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$30.keyFor(_key), { k: _key, v: obj }); - } - $s = -1; return; - /* */ } return; } var $f = {$blk: recordUse, $c: true, $r, _key, check, id, m, obj, $s};return $f; + $ptrType(queueOnePass).prototype.clear = function clear() { + var q; + q = this; + q.size = 0; + q.nextIndex = 0; }; - $ptrType(Checker).prototype.recordImplicit = function recordImplicit(node$5, obj) { - var {_key, check, m, node$5, obj, $s, $r, $c} = $restore(this, {node$5, obj}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - $r = assert(!($interfaceIsEqual(node$5, $ifaceNil))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = assert(!($interfaceIsEqual(obj, $ifaceNil))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - m = check.Info.Implicits; - if (!(m === false)) { - _key = node$5; (m || $throwRuntimeError("assignment to entry in nil map")).set(ast.Node.keyFor(_key), { k: _key, v: obj }); + $ptrType(queueOnePass).prototype.contains = function contains(u) { + var q, u, x, x$1, x$2, x$3; + q = this; + if (u >= ((q.sparse.$length >>> 0))) { + return false; } - $s = -1; return; - /* */ } return; } var $f = {$blk: recordImplicit, $c: true, $r, _key, check, m, node$5, obj, $s};return $f; + return (x = q.sparse, ((u < 0 || u >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + u])) < q.size && ((x$1 = q.dense, x$2 = (x$3 = q.sparse, ((u < 0 || u >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + u])), ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])) === u); }; - $ptrType(Checker).prototype.recordSelection = function recordSelection(x, kind, recv, obj, index$2, indirect) { - var {_key, check, index$2, indirect, kind, m, obj, recv, x, $s, $r, $c} = $restore(this, {x, kind, recv, obj, index$2, indirect}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - $r = assert(!($interfaceIsEqual(obj, $ifaceNil)) && ($interfaceIsEqual(recv, $ifaceNil) || index$2.$length > 0)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.recordUse(x.Sel, obj); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - m = check.Info.Selections; - if (!(m === false)) { - _key = x; (m || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$36.keyFor(_key), { k: _key, v: new Selection.ptr(kind, recv, obj, index$2, indirect) }); + $ptrType(queueOnePass).prototype.insert = function insert(u) { + var q, u; + q = this; + if (!q.contains(u)) { + q.insertNew(u); } - $s = -1; return; - /* */ } return; } var $f = {$blk: recordSelection, $c: true, $r, _key, check, index$2, indirect, kind, m, obj, recv, x, $s};return $f; }; - $ptrType(Checker).prototype.recordScope = function recordScope(node$5, scope) { - var {_key, check, m, node$5, scope, $s, $r, $c} = $restore(this, {node$5, scope}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - $r = assert(!($interfaceIsEqual(node$5, $ifaceNil))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = assert(!(scope === ptrType.nil)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - m = check.Info.Scopes; - if (!(m === false)) { - _key = node$5; (m || $throwRuntimeError("assignment to entry in nil map")).set(ast.Node.keyFor(_key), { k: _key, v: scope }); + $ptrType(queueOnePass).prototype.insertNew = function insertNew(u) { + var q, u, x, x$1, x$2; + q = this; + if (u >= ((q.sparse.$length >>> 0))) { + return; } - $s = -1; return; - /* */ } return; } var $f = {$blk: recordScope, $c: true, $r, _key, check, m, node$5, scope, $s};return $f; - }; - $ptrType(Chan).prototype.Dir = function Dir() { - var c; - c = this; - return c.dir; - }; - $ptrType(Chan).prototype.Elem = function Elem$3() { - var c; - c = this; - return c.elem; - }; - $ptrType(Chan).prototype.Underlying = function Underlying$10() { - var t; - t = this; - return t; - }; - $ptrType(Chan).prototype.String = function String$32() { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = TypeString(t, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$32, $c: true, $r, $24r, _r$1, t, $s};return $f; + (x = q.sparse, ((u < 0 || u >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + u] = q.size)); + (x$1 = q.dense, x$2 = q.size, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2] = u)); + q.size = q.size + (1) >>> 0; }; - $ptrType(Checker).prototype.funcInst = function funcInst(x, ix) { - var {_r$1, _r$2, _r$3, _r$4, _r$5, _tmp, _tmp$1, check, got, ix, sig, targs, want, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {x, ix}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - /* */ if (!check.allowVersion(check.pkg, 1, 18)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!check.allowVersion(check.pkg, 1, 18)) { */ case 1: - _r$1 = inNode(ix.Orig, ix.IndexListExpr.Lbrack); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $r = check.softErrorf((x$1 = _r$1, new x$1.constructor.elem(x$1)), 135, "function instantiation requires go1.18 or later", sliceType$6.nil); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 2: - _r$2 = check.typeList(ix.IndexListExpr.Indices); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - targs = _r$2; - if (targs === sliceType$3.nil) { - x.mode = 0; - x.expr = ix.Orig; - $s = -1; return; - } - $r = assert(targs.$length === ix.IndexListExpr.Indices.$length); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - sig = $assertType(x.typ, ptrType$27); - _tmp = targs.$length; - _tmp$1 = sig.TypeParams().Len(); - got = _tmp; - want = _tmp$1; - /* */ if (got > want) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (got > want) { */ case 7: - $r = check.errorf((x$2 = ix.IndexListExpr.Indices, x$3 = got - 1 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])), 137, "got %d type arguments but want %d", new sliceType$6([new $Int(got), new $Int(want)])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - x.expr = ix.Orig; - $s = -1; return; - /* } */ case 8: - /* */ if (got < want) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (got < want) { */ case 10: - _r$3 = check.infer(ix.Orig, sig.TypeParams().list(), targs, ptrType$15.nil, sliceType$29.nil); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - targs = _r$3; - if (targs === sliceType$3.nil) { - x.mode = 0; - x.expr = ix.Orig; - $s = -1; return; - } - got = targs.$length; - /* } */ case 11: - $r = assert(got === want); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$4 = x.Pos(); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$5 = check.instantiateSignature(_r$4, sig, targs, ix.IndexListExpr.Indices); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - sig = _r$5; - $r = assert(sig.TypeParams().Len() === 0); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.recordInstance(ix.Orig, targs, sig); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.typ = sig; - x.mode = 7; - x.expr = ix.Orig; - $s = -1; return; - /* */ } return; } var $f = {$blk: funcInst, $c: true, $r, _r$1, _r$2, _r$3, _r$4, _r$5, _tmp, _tmp$1, check, got, ix, sig, targs, want, x, x$1, x$2, x$3, $s};return $f; + newQueue = function newQueue$1(size) { + var q, size; + q = ptrType$8.nil; + q = new queueOnePass.ptr($makeSlice(sliceType$2, size), $makeSlice(sliceType$2, size), 0, 0); + return q; }; - $ptrType(Checker).prototype.instantiateSignature = function instantiateSignature(pos$1, typ$4, targs, xlist) { - var {$24r, _r$1, check, inst, pos$1, res, targs, typ$4, xlist, $s, $deferred, $r, $c} = $restore(this, {pos$1, typ$4, targs, xlist}); + mergeRuneSets = function mergeRuneSets$1(leftRunes, rightRunes, leftPC, rightPC) { + var {_r, _r$1, _r$2, _r$3, _tmp, _tmp$1, extend, ix, leftLen, leftPC, leftRunes, lx, merged, next$1, ok, rightLen, rightPC, rightRunes, rx, x, x$1, $s, $deferred, $r, $c} = $restore(this, {leftRunes, rightRunes, leftPC, rightPC}); /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - check = [check]; - pos$1 = [pos$1]; - res = [res]; - targs = [targs]; - typ$4 = [typ$4]; - xlist = [xlist]; - res[0] = ptrType$27.nil; - check[0] = this; - $r = assert(!(check[0] === ptrType$6.nil)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = assert(targs[0].$length === typ$4[0].TypeParams().Len()); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (false) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (false) { */ case 3: - $r = check[0].trace(pos$1[0], "-- instantiating signature %s with %s", new sliceType$6([typ$4[0], targs[0]])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - check[0].indent = check[0].indent + (1) >> 0; - $deferred.push([(function(check, pos$1, res, targs, typ$4, xlist) { return function Checker·instantiateSignature·func1() { - var {$s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check[0].indent = check[0].indent - (1) >> 0; - $r = check[0].trace(pos$1[0], "=> %s (under = %s)", new sliceType$6([res[0], res[0].Underlying()])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·instantiateSignature·func1, $c: true, $r, $s};return $f; - }; })(check, pos$1, res, targs, typ$4, xlist), []]); - /* } */ case 4: - _r$1 = check[0].instance(pos$1[0], typ$4[0], targs[0], ptrType$9.nil, check[0].context()); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - inst = $assertType(_r$1, ptrType$27); - $r = assert(xlist[0].$length <= targs[0].$length); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - check[0].later((function(check, pos$1, res, targs, typ$4, xlist) { return function Checker·instantiateSignature·func2() { - var {_r$2, _r$3, _tuple, err, i, pos$2, tparams, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - tparams = typ$4[0].TypeParams().list(); - _r$2 = check[0].verify(pos$1[0], tparams, targs[0], check[0].context()); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple = _r$2; - i = _tuple[0]; - err = _tuple[1]; - /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2: - pos$2 = pos$1[0]; - /* */ if (i < xlist[0].$length) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (i < xlist[0].$length) { */ case 5: - _r$3 = ((i < 0 || i >= xlist[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : xlist[0].$array[xlist[0].$offset + i]).Pos(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - pos$2 = _r$3; - /* } */ case 6: - $r = check[0].softErrorf(new atPos(((pos$2 >> 0))), 139, "%s", new sliceType$6([err])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 4; continue; - /* } else { */ case 3: - $r = check[0].mono.recordInstance(check[0].pkg, pos$1[0], tparams, targs[0], xlist[0]); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 4: - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·instantiateSignature·func2, $c: true, $r, _r$2, _r$3, _tuple, err, i, pos$2, tparams, $s};return $f; - }; })(check, pos$1, res, targs, typ$4, xlist)).describef(new atPos(((pos$1[0] >> 0))), "verify instantiation", sliceType$6.nil); - res[0] = inst; - $24r = res[0]; - $s = 8; case 8: return $24r; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return res[0]; } if($curGoroutine.asleep) { var $f = {$blk: instantiateSignature, $c: true, $r, $24r, _r$1, check, inst, pos$1, res, targs, typ$4, xlist, $s, $deferred};return $f; } } - }; - $ptrType(Checker).prototype.callExpr = function callExpr(x, call) { - var {T, _1, _2, _3, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _v, args, call, cgocall, check, got, id, ix, n, sig, t, targs, want, wasGeneric, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, xlist, $s, $r, $c} = $restore(this, {x, call}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - ix = typeparams.UnpackIndexExpr(call.Fun); - /* */ if (!(ix === ptrType$112.nil)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(ix === ptrType$112.nil)) { */ case 1: - _r$1 = check.indexExpr(x, ix); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_r$1) { */ case 4: - $r = assert(x.mode === 7); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 6; continue; - /* } else { */ case 5: - ix = ptrType$112.nil; - /* } */ case 6: - x.expr = call.Fun; - $r = check.record(x); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 3; continue; - /* } else { */ case 2: - $r = check.exprOrType(x, call.Fun, true); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 3: - _1 = x.mode; - /* */ if (_1 === (0)) { $s = 12; continue; } - /* */ if (_1 === (3)) { $s = 13; continue; } - /* */ if (_1 === (2)) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (_1 === (0)) { */ case 12: - $r = check.use(call.Args); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.expr = call; - $s = -1; return 2; - /* } else if (_1 === (3)) { */ case 13: - $r = check.nonGeneric(x); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x.mode === 0) { - $s = -1; return 0; - } - T = x.typ; - x.mode = 0; - n = call.Args.$length; - _2 = n; - /* */ if (_2 === (0)) { $s = 19; continue; } - /* */ if (_2 === (1)) { $s = 20; continue; } - /* */ $s = 21; continue; - /* if (_2 === (0)) { */ case 19: - _r$2 = inNode(call, call.Rparen); /* */ $s = 23; case 23: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $r = check.errorf((x$1 = _r$2, new x$1.constructor.elem(x$1)), 126, "missing argument in conversion to %s", new sliceType$6([T])); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 22; continue; - /* } else if (_2 === (1)) { */ case 20: - $r = check.expr(x, (x$2 = call.Args, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0]))); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (!((x.mode === 0))) { $s = 26; continue; } - /* */ $s = 27; continue; - /* if (!((x.mode === 0))) { */ case 26: - /* */ if (new token.Pos(call.Ellipsis).IsValid()) { $s = 28; continue; } - /* */ $s = 29; continue; - /* if (new token.Pos(call.Ellipsis).IsValid()) { */ case 28: - $r = check.errorf((x$3 = call.Args, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])), 77, "invalid use of ... in conversion to %s", new sliceType$6([T])); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* break; */ $s = 18; continue; - /* } */ case 29: - _r$3 = under(T); /* */ $s = 31; case 31: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple = $assertType(_r$3, ptrType$13, true); - t = _tuple[0]; - /* */ if (!(t === ptrType$13.nil) && !isTypeParam(T)) { $s = 32; continue; } - /* */ $s = 33; continue; - /* if (!(t === ptrType$13.nil) && !isTypeParam(T)) { */ case 32: - _r$4 = t.IsMethodSet(); /* */ $s = 36; case 36: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if (!_r$4) { $s = 34; continue; } - /* */ $s = 35; continue; - /* if (!_r$4) { */ case 34: - $r = check.errorf(call, 142, "cannot use interface %s in conversion (contains specific type constraints or is comparable)", new sliceType$6([T])); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* break; */ $s = 18; continue; - /* } */ case 35: - /* } */ case 33: - $r = check.conversion(x, T); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 27: - $s = 22; continue; - /* } else { */ case 21: - $r = check.use(call.Args); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.errorf((x$4 = call.Args, x$5 = n - 1 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])), 126, "too many arguments in conversion to %s", new sliceType$6([T])); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 22: - case 18: - x.expr = call; - $s = -1; return 0; - /* } else if (_1 === (2)) { */ case 14: - id = x.id; - _r$5 = check.builtin(x, call, id); /* */ $s = 43; case 43: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - /* */ if (!_r$5) { $s = 41; continue; } - /* */ $s = 42; continue; - /* if (!_r$5) { */ case 41: - x.mode = 0; - /* } */ case 42: - x.expr = call; - if (!((x.mode === 0)) && !((x.mode === 4))) { - check.environment.hasCallOrRecv = true; - } - $s = -1; return ((id < 0 || id >= predeclaredFuncs.length) ? ($throwRuntimeError("index out of range"), undefined) : predeclaredFuncs[id]).kind; - /* } */ case 15: - case 11: - cgocall = x.mode === 10; - _r$6 = coreType(x.typ); /* */ $s = 44; case 44: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _tuple$1 = $assertType(_r$6, ptrType$27, true); - sig = _tuple$1[0]; - /* */ if (sig === ptrType$27.nil) { $s = 45; continue; } - /* */ $s = 46; continue; - /* if (sig === ptrType$27.nil) { */ case 45: - $r = check.errorf(x, 127, "invalid operation: cannot call non-function %s", new sliceType$6([x])); /* */ $s = 47; case 47: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - x.expr = call; - $s = -1; return 2; - /* } */ case 46: - wasGeneric = sig.TypeParams().Len() > 0; - xlist = sliceType$11.nil; - targs = sliceType$3.nil; - /* */ if (!(ix === ptrType$112.nil)) { $s = 48; continue; } - /* */ $s = 49; continue; - /* if (!(ix === ptrType$112.nil)) { */ case 48: - xlist = ix.IndexListExpr.Indices; - _r$7 = check.typeList(xlist); /* */ $s = 50; case 50: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - targs = _r$7; - /* */ if (targs === sliceType$3.nil) { $s = 51; continue; } - /* */ $s = 52; continue; - /* if (targs === sliceType$3.nil) { */ case 51: - $r = check.use(call.Args); /* */ $s = 53; case 53: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - x.expr = call; - $s = -1; return 2; - /* } */ case 52: - $r = assert(targs.$length === xlist.$length); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _tmp = targs.$length; - _tmp$1 = sig.TypeParams().Len(); - got = _tmp; - want = _tmp$1; - /* */ if (got > want) { $s = 55; continue; } - /* */ $s = 56; continue; - /* if (got > want) { */ case 55: - $r = check.errorf(((want < 0 || want >= xlist.$length) ? ($throwRuntimeError("index out of range"), undefined) : xlist.$array[xlist.$offset + want]), 137, "got %d type arguments but want %d", new sliceType$6([new $Int(got), new $Int(want)])); /* */ $s = 57; case 57: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.use(call.Args); /* */ $s = 58; case 58: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - x.expr = call; - $s = -1; return 2; - /* } */ case 56: - /* */ if ((got === want) && want > 0) { $s = 59; continue; } - /* */ $s = 60; continue; - /* if ((got === want) && want > 0) { */ case 59: - /* */ if (!check.allowVersion(check.pkg, 1, 18)) { $s = 61; continue; } - /* */ $s = 62; continue; - /* if (!check.allowVersion(check.pkg, 1, 18)) { */ case 61: - _r$8 = inNode(call.Fun, ix.IndexListExpr.Lbrack); /* */ $s = 63; case 63: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - $r = check.softErrorf((x$6 = _r$8, new x$6.constructor.elem(x$6)), 135, "function instantiation requires go1.18 or later", sliceType$6.nil); /* */ $s = 64; case 64: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 62: - _r$9 = ix.IndexListExpr.Pos(); /* */ $s = 65; case 65: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - _r$10 = check.instantiateSignature(_r$9, sig, targs, xlist); /* */ $s = 66; case 66: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - sig = _r$10; - $r = assert(sig.TypeParams().Len() === 0); /* */ $s = 67; case 67: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.recordInstance(ix.Orig, targs, sig); /* */ $s = 68; case 68: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - targs = sliceType$3.nil; - xlist = sliceType$11.nil; - /* } */ case 60: - /* } */ case 49: - _r$11 = check.exprList(call.Args, false); /* */ $s = 69; case 69: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _tuple$2 = _r$11; - args = _tuple$2[0]; - _r$12 = check.arguments$(call, sig, targs, args, xlist); /* */ $s = 70; case 70: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - sig = _r$12; - /* */ if (wasGeneric && (sig.TypeParams().Len() === 0)) { $s = 71; continue; } - /* */ $s = 72; continue; - /* if (wasGeneric && (sig.TypeParams().Len() === 0)) { */ case 71: - $r = check.recordTypeAndValue(call.Fun, 7, sig, $ifaceNil); /* */ $s = 73; case 73: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 72: - _3 = sig.results.Len(); - if (_3 === (0)) { - x.mode = 1; - } else if (_3 === (1)) { - if (cgocall) { - x.mode = 9; - } else { - x.mode = 7; - } - x.typ = (x$7 = sig.results.vars, (0 >= x$7.$length ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + 0])).object.typ; - } else { - x.mode = 7; - x.typ = sig.results; - } - x.expr = call; - check.environment.hasCallOrRecv = true; - if (!((x.mode === 7) && sig.TypeParams().Len() > 0)) { _v = false; $s = 76; continue s; } - _r$13 = isParameterized(sig.TypeParams().list(), x.typ); /* */ $s = 77; case 77: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - _v = _r$13; case 76: - /* */ if (_v) { $s = 74; continue; } - /* */ $s = 75; continue; - /* if (_v) { */ case 74: - x.mode = 0; - /* } */ case 75: - $s = -1; return 2; - /* */ } return; } var $f = {$blk: callExpr, $c: true, $r, T, _1, _2, _3, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _v, args, call, cgocall, check, got, id, ix, n, sig, t, targs, want, wasGeneric, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, xlist, $s};return $f; - }; - $ptrType(Checker).prototype.exprList = function exprList(elist, allowCommaOk) { - var {_1, _i, _i$1, _ref, _ref$1, _tuple, allowCommaOk, check, commaOk, e, e$1, elist, i, i$1, ok, t, v, x, x$1, x2, xlist, $s, $r, $c} = $restore(this, {elist, allowCommaOk}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = [x]; - xlist = sliceType$29.nil; - commaOk = false; - check = this; - _1 = elist.$length; - /* */ if (_1 === (0)) { $s = 2; continue; } - /* */ if (_1 === (1)) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (_1 === (0)) { */ case 2: - $s = 5; continue; - /* } else if (_1 === (1)) { */ case 3: - e = (0 >= elist.$length ? ($throwRuntimeError("index out of range"), undefined) : elist.$array[elist.$offset + 0]); - x[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = check.multiExpr(x[0], e); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _tuple = $assertType(x[0].typ, ptrType$15, true); - t = _tuple[0]; - ok = _tuple[1]; - if (ok && !((x[0].mode === 0))) { - xlist = $makeSlice(sliceType$29, t.Len()); - _ref = t.vars; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - ((i < 0 || i >= xlist.$length) ? ($throwRuntimeError("index out of range"), undefined) : xlist.$array[xlist.$offset + i] = new operand.ptr(7, e, v.object.typ, $ifaceNil, 0)); - _i++; - } - /* break; */ $s = 1; continue; + ix = [ix]; + lx = [lx]; + merged = [merged]; + next$1 = [next$1]; + ok = [ok]; + rx = [rx]; + leftLen = leftRunes.$get().$length; + rightLen = rightRunes.$get().$length; + if (!(((leftLen & 1) === 0)) || !(((rightLen & 1) === 0))) { + $panic(new $String("mergeRuneSets odd length []rune")); + } + _tmp = 0; + _tmp$1 = 0; + lx[0] = _tmp; + rx[0] = _tmp$1; + merged[0] = $makeSlice(sliceType$1, 0); + next$1[0] = $makeSlice(sliceType$2, 0); + ok[0] = true; + $deferred.push([(function(ix, lx, merged, next$1, ok, rx) { return function mergeRuneSets·func1() { + if (!ok[0]) { + merged[0] = sliceType$1.nil; + next$1[0] = sliceType$2.nil; } - xlist = new sliceType$29([x[0]]); - if (allowCommaOk && ((x[0].mode === 6) || (x[0].mode === 8) || (x[0].mode === 9))) { - x2 = new operand.ptr(7, e, (19 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 19]), $ifaceNil, 0); - if (x[0].mode === 9) { - x2.typ = universeError; - } - xlist = $append(xlist, x2); - commaOk = true; + }; })(ix, lx, merged, next$1, ok, rx), []]); + ix[0] = -1; + extend = (function(ix, lx, merged, next$1, ok, rx) { return function mergeRuneSets·func2(newLow, newArray, pc) { + var newArray, newLow, pc, x, x$1, x$2, x$3, x$4, x$5; + if (ix[0] > 0 && (x = newArray.$get(), x$1 = newLow.$get(), ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])) <= ((ix[0] < 0 || ix[0] >= merged[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : merged[0].$array[merged[0].$offset + ix[0]])) { + return false; } - $s = 5; continue; - /* } else { */ case 4: - xlist = $makeSlice(sliceType$29, elist.$length); - _ref$1 = elist; - _i$1 = 0; - /* while (true) { */ case 7: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 8; continue; } - x$1 = [x$1]; - i$1 = _i$1; - e$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - x$1[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = check.expr(x$1[0], e$1); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - ((i$1 < 0 || i$1 >= xlist.$length) ? ($throwRuntimeError("index out of range"), undefined) : xlist.$array[xlist.$offset + i$1] = x$1[0]); - _i$1++; - $s = 7; continue; - case 8: - /* } */ case 5: - case 1: - $s = -1; return [xlist, commaOk]; - /* */ } return; } var $f = {$blk: exprList, $c: true, $r, _1, _i, _i$1, _ref, _ref$1, _tuple, allowCommaOk, check, commaOk, e, e$1, elist, i, i$1, ok, t, v, x, x$1, x2, xlist, $s};return $f; - }; - $ptrType(Checker).prototype.arguments$ = function arguments$1(call, sig, targs, args, xlist) { - var {_1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _i, _i$1, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, a, a$1, adjusted, args, at$1, call, check, context$1, ddd, err, i, ix, last, nargs, npars, params, qualifier$1, rsig, sig, sigParams, targs, targs$1, typ$4, vars, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, xlist, $s, $r, $c} = $restore(this, {call, sig, targs, args, xlist}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - rsig = ptrType$27.nil; - check = this; - rsig = sig; - _ref = args; - _i = 0; + merged[0] = $append(merged[0], (x$2 = newArray.$get(), x$3 = newLow.$get(), ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])), (x$4 = newArray.$get(), x$5 = newLow.$get() + 1 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5]))); + newLow.$set(newLow.$get() + (2) >> 0); + ix[0] = ix[0] + (2) >> 0; + next$1[0] = $append(next$1[0], pc); + return true; + }; })(ix, lx, merged, next$1, ok, rx); /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - a = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _1 = a.mode; - /* */ if (_1 === (3)) { $s = 4; continue; } - /* */ if (_1 === (0)) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (_1 === (3)) { */ case 4: - $r = check.errorf(a, 42, "%s used as value", new sliceType$6([a])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return rsig; - /* } else if (_1 === (0)) { */ case 5: - $s = -1; return rsig; - /* } */ case 6: + /* if (!(lx[0] < leftLen || rx[0] < rightLen)) { break; } */ if(!(lx[0] < leftLen || rx[0] < rightLen)) { $s = 2; continue; } + /* */ if (rx[0] >= rightLen) { $s = 4; continue; } + /* */ if (lx[0] >= leftLen) { $s = 5; continue; } + /* */ if ((x = rightRunes.$get(), ((rx[0] < 0 || rx[0] >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + rx[0]])) < (x$1 = leftRunes.$get(), ((lx[0] < 0 || lx[0] >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + lx[0]]))) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (rx[0] >= rightLen) { */ case 4: + _r = extend((lx.$ptr || (lx.$ptr = new ptrType$9(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, lx))), leftRunes, leftPC); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + ok[0] = _r; + $s = 8; continue; + /* } else if (lx[0] >= leftLen) { */ case 5: + _r$1 = extend((rx.$ptr || (rx.$ptr = new ptrType$9(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, rx))), rightRunes, rightPC); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + ok[0] = _r$1; + $s = 8; continue; + /* } else if ((x = rightRunes.$get(), ((rx[0] < 0 || rx[0] >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + rx[0]])) < (x$1 = leftRunes.$get(), ((lx[0] < 0 || lx[0] >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + lx[0]]))) { */ case 6: + _r$2 = extend((rx.$ptr || (rx.$ptr = new ptrType$9(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, rx))), rightRunes, rightPC); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + ok[0] = _r$2; + $s = 8; continue; + /* } else { */ case 7: + _r$3 = extend((lx.$ptr || (lx.$ptr = new ptrType$9(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, lx))), leftRunes, leftPC); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + ok[0] = _r$3; + /* } */ case 8: case 3: - _i++; + if (!ok[0]) { + $s = -1; return [noRune, noNext]; + } $s = 1; continue; case 2: - nargs = args.$length; - npars = sig.params.Len(); - ddd = new token.Pos(call.Ellipsis).IsValid(); - sigParams = sig.params; - adjusted = false; - /* */ if (sig.variadic) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (sig.variadic) { */ case 8: - /* */ if (ddd) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (ddd) { */ case 11: - /* */ if ((call.Args.$length === 1) && nargs > 1) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if ((call.Args.$length === 1) && nargs > 1) { */ case 14: - _r$1 = inNode(call, call.Ellipsis); /* */ $s = 16; case 16: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $r = check.errorf((x = _r$1, new x.constructor.elem(x)), 81, "cannot use ... with %d-valued %s", new sliceType$6([new $Int(nargs), (x$1 = call.Args, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0]))])); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return rsig; - /* } */ case 15: - $s = 13; continue; - /* } else { */ case 12: - if (nargs >= (npars - 1 >> 0)) { - vars = $makeSlice(sliceType$10, (npars - 1 >> 0)); - $copySlice(vars, sig.params.vars); - last = (x$2 = sig.params.vars, x$3 = npars - 1 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])); - typ$4 = $assertType(last.object.typ, ptrType$25).elem; - while (true) { - if (!(vars.$length < nargs)) { break; } - vars = $append(vars, NewParam(last.object.pos, last.object.pkg, last.object.name, typ$4)); - } - sigParams = NewTuple(vars); - adjusted = true; - npars = nargs; - } else { - npars = npars - (1) >> 0; - } - /* } */ case 13: - $s = 10; continue; - /* } else { */ case 9: - /* */ if (ddd) { $s = 18; continue; } - /* */ $s = 19; continue; - /* if (ddd) { */ case 18: - _r$2 = inNode(call, call.Ellipsis); /* */ $s = 20; case 20: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $r = check.errorf((x$4 = _r$2, new x$4.constructor.elem(x$4)), 78, "cannot use ... in call to non-variadic %s", new sliceType$6([call.Fun])); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return rsig; - /* } */ case 19: - /* } */ case 10: - /* */ if (!((nargs === npars))) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if (!((nargs === npars))) { */ case 22: - at$1 = call; - qualifier$1 = "not enough"; - if (nargs > npars) { - at$1 = ((npars < 0 || npars >= args.$length) ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + npars]).expr; - qualifier$1 = "too many"; - } else { - at$1 = new atPos(((call.Rparen >> 0))); - } - params = sliceType$10.nil; - if (!(sig.params === ptrType$15.nil)) { - params = sig.params.vars; - } - err = newErrorf(at$1, 126, "%s arguments in call to %s", new sliceType$6([new $String(qualifier$1), call.Fun])); - _r$3 = check.typesSummary(operandTypes(args), false); /* */ $s = 24; case 24: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _arg = new $String(_r$3); - $r = err.errorf(0, "have %s", new sliceType$6([_arg])); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$4 = check.typesSummary(varTypes(params), sig.variadic); /* */ $s = 26; case 26: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _arg$1 = new $String(_r$4); - $r = err.errorf(0, "want %s", new sliceType$6([_arg$1])); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.report(err); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return rsig; - /* } */ case 23: - /* */ if (sig.TypeParams().Len() > 0) { $s = 29; continue; } - /* */ $s = 30; continue; - /* if (sig.TypeParams().Len() > 0) { */ case 29: - /* */ if (!check.allowVersion(check.pkg, 1, 18)) { $s = 31; continue; } - /* */ $s = 32; continue; - /* if (!check.allowVersion(check.pkg, 1, 18)) { */ case 31: - _ref$1 = call.Fun; - /* */ if ($assertType(_ref$1, ptrType$37, true)[1] || $assertType(_ref$1, ptrType$38, true)[1]) { $s = 33; continue; } - /* */ $s = 34; continue; - /* if ($assertType(_ref$1, ptrType$37, true)[1] || $assertType(_ref$1, ptrType$38, true)[1]) { */ case 33: - ix = typeparams.UnpackIndexExpr(call.Fun); - _r$5 = inNode(call.Fun, ix.IndexListExpr.Lbrack); /* */ $s = 36; case 36: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - $r = check.softErrorf((x$5 = _r$5, new x$5.constructor.elem(x$5)), 135, "function instantiation requires go1.18 or later", sliceType$6.nil); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 35; continue; - /* } else { */ case 34: - _r$6 = inNode(call, call.Lparen); /* */ $s = 38; case 38: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - $r = check.softErrorf((x$6 = _r$6, new x$6.constructor.elem(x$6)), 135, "implicit function instantiation requires go1.18 or later", sliceType$6.nil); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 35: - /* } */ case 32: - _r$7 = check.infer(call, sig.TypeParams().list(), targs, sigParams, args); /* */ $s = 40; case 40: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - targs$1 = _r$7; - if (targs$1 === sliceType$3.nil) { - $s = -1; return rsig; - } - _r$8 = call.Pos(); /* */ $s = 41; case 41: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _r$9 = check.instantiateSignature(_r$8, sig, targs$1, xlist); /* */ $s = 42; case 42: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - rsig = _r$9; - $r = assert(rsig.TypeParams().Len() === 0); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.recordInstance(call.Fun, targs$1, rsig); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (adjusted) { $s = 45; continue; } - /* */ $s = 46; continue; - /* if (adjusted) { */ case 45: - _r$10 = call.Pos(); /* */ $s = 48; case 48: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _arg$2 = _r$10; - _arg$3 = sigParams; - _r$11 = makeSubstMap(sig.TypeParams().list(), targs$1); /* */ $s = 49; case 49: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _arg$4 = _r$11; - _arg$5 = ptrType$9.nil; - _arg$6 = check.context(); - _r$12 = check.subst(_arg$2, _arg$3, _arg$4, _arg$5, _arg$6); /* */ $s = 50; case 50: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - sigParams = $assertType(_r$12, ptrType$15); - $s = 47; continue; - /* } else { */ case 46: - sigParams = rsig.params; - /* } */ case 47: - /* } */ case 30: - /* */ if (args.$length > 0) { $s = 51; continue; } - /* */ $s = 52; continue; - /* if (args.$length > 0) { */ case 51: - _r$13 = check.sprintf("argument to %s", new sliceType$6([call.Fun])); /* */ $s = 53; case 53: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - context$1 = _r$13; - _ref$2 = args; - _i$1 = 0; - /* while (true) { */ case 54: - /* if (!(_i$1 < _ref$2.$length)) { break; } */ if(!(_i$1 < _ref$2.$length)) { $s = 55; continue; } - i = _i$1; - a$1 = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]); - $r = check.assignment(a$1, (x$7 = sigParams.vars, ((i < 0 || i >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + i])).object.typ, context$1); /* */ $s = 56; case 56: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$1++; - $s = 54; continue; - case 55: - /* } */ case 52: - $s = -1; return rsig; - /* */ } return; } var $f = {$blk: arguments$1, $c: true, $r, _1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _i, _i$1, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, a, a$1, adjusted, args, at$1, call, check, context$1, ddd, err, i, ix, last, nargs, npars, params, qualifier$1, rsig, sig, sigParams, targs, targs$1, typ$4, vars, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, xlist, $s};return $f; - }; - $ptrType(Checker).prototype.selector = function selector(x, e, def$2, wantType) { - var {_1, _arg, _arg$1, _arg$2, _arg$3, _i, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _v, changeCase, check, def$2, disabled, e, exp, exp$1, exp$2, exp$3, exp$4, exp$5, exp$6, funcMode, ident$1, index$2, indirect, m, m$1, m$2, mset, name, obj, obj$1, obj$2, obj$3, obj$4, ok, ok$1, params, pkg, pname, prefix, r, sel, sig, sig$1, typ$4, wantType, why, x, x$1, $s, $r, $c} = $restore(this, {x, e, def$2, wantType}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - sig = [sig]; - check = this; - obj = $ifaceNil; - index$2 = sliceType$13.nil; - indirect = false; - sel = e.Sel.Name; - _tuple = $assertType(e.X, ptrType$30, true); - ident$1 = _tuple[0]; - ok = _tuple[1]; - /* */ if (ok) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (ok) { */ case 1: - _r$1 = check.environment.lookup(ident$1.Name); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - obj$1 = _r$1; - _tuple$1 = $assertType(obj$1, ptrType$31, true); - pname = _tuple$1[0]; - /* */ if (!(pname === ptrType$31.nil)) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (!(pname === ptrType$31.nil)) { */ case 4: - $r = assert(pname.object.pkg === check.pkg); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.recordUse(ident$1, pname); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - pname.used = true; - pkg = pname.imported; - exp = $ifaceNil; - funcMode = 7; - /* */ if (pkg.cgo) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (pkg.cgo) { */ case 8: - if (sel === "malloc") { - sel = "_CMalloc"; - } else { - funcMode = 10; - } - _ref = cgoPrefixes; - _i = 0; - /* while (true) { */ case 11: - /* if (!(_i < 8)) { break; } */ if(!(_i < 8)) { $s = 12; continue; } - prefix = ((_i < 0 || _i >= _ref.length) ? ($throwRuntimeError("index out of range"), undefined) : _ref[_i]); - _r$2 = check.environment.scope.LookupParent(prefix + sel, check.environment.pos); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple$2 = _r$2; - exp = _tuple$2[1]; - if (!($interfaceIsEqual(exp, $ifaceNil))) { - /* break; */ $s = 12; continue; - } - _i++; - $s = 11; continue; - case 12: - /* */ if ($interfaceIsEqual(exp, $ifaceNil)) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if ($interfaceIsEqual(exp, $ifaceNil)) { */ case 14: - $r = check.errorf(e.Sel, 73, "undefined: %s", new sliceType$6([(e)])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 17; continue; - /* } */ case 15: - $r = check.objDecl(exp, ptrType$9.nil); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 10; continue; - /* } else { */ case 9: - _r$3 = pkg.scope.Lookup(sel); /* */ $s = 19; case 19: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - exp = _r$3; - /* */ if ($interfaceIsEqual(exp, $ifaceNil)) { $s = 20; continue; } - /* */ $s = 21; continue; - /* if ($interfaceIsEqual(exp, $ifaceNil)) { */ case 20: - /* */ if (!pkg.fake) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if (!pkg.fake) { */ case 22: - $r = check.errorf(e.Sel, 73, "undefined: %s", new sliceType$6([(e)])); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 23: - /* goto Error */ $s = 17; continue; - /* } */ case 21: - _r$4 = exp.Exported(); /* */ $s = 27; case 27: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - /* */ if (!_r$4) { $s = 25; continue; } - /* */ $s = 26; continue; - /* if (!_r$4) { */ case 25: - $r = check.errorf(e.Sel, 74, "%s not exported by package %s", new sliceType$6([new $String(sel), new $String(pkg.name)])); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 26: - /* } */ case 10: - $r = check.recordUse(e.Sel, exp); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _ref$1 = exp; - /* */ if ($assertType(_ref$1, ptrType$32, true)[1]) { $s = 30; continue; } - /* */ if ($assertType(_ref$1, ptrType$17, true)[1]) { $s = 31; continue; } - /* */ if ($assertType(_ref$1, ptrType$16, true)[1]) { $s = 32; continue; } - /* */ if ($assertType(_ref$1, ptrType$2, true)[1]) { $s = 33; continue; } - /* */ if ($assertType(_ref$1, ptrType$18, true)[1]) { $s = 34; continue; } - /* */ $s = 35; continue; - /* if ($assertType(_ref$1, ptrType$32, true)[1]) { */ case 30: - exp$1 = _ref$1.$val; - $r = assert(!($interfaceIsEqual(exp$1.Val(), $ifaceNil))); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 4; - x.typ = exp$1.object.typ; - x.val = exp$1.val; - $s = 36; continue; - /* } else if ($assertType(_ref$1, ptrType$17, true)[1]) { */ case 31: - exp$2 = _ref$1.$val; - x.mode = 3; - x.typ = exp$2.object.typ; - $s = 36; continue; - /* } else if ($assertType(_ref$1, ptrType$16, true)[1]) { */ case 32: - exp$3 = _ref$1.$val; - x.mode = 5; - x.typ = exp$3.object.typ; - if (pkg.cgo && strings.HasPrefix(exp$3.object.name, "_Cvar_")) { - x.typ = $assertType(x.typ, ptrType$26).base; - } - $s = 36; continue; - /* } else if ($assertType(_ref$1, ptrType$2, true)[1]) { */ case 33: - exp$4 = _ref$1.$val; - x.mode = funcMode; - x.typ = exp$4.object.typ; - if (pkg.cgo && strings.HasPrefix(exp$4.object.name, "_Cmacro_")) { - x.mode = 7; - x.typ = (x$1 = $assertType(x.typ, ptrType$27).results.vars, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])).object.typ; - } - $s = 36; continue; - /* } else if ($assertType(_ref$1, ptrType$18, true)[1]) { */ case 34: - exp$5 = _ref$1.$val; - x.mode = 2; - x.typ = exp$5.object.typ; - x.id = exp$5.id; - $s = 36; continue; - /* } else { */ case 35: - exp$6 = _ref$1; - $r = check.dump("%v: unexpected object %v", new sliceType$6([new token.Pos(e.Sel.Pos()), exp$6])); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - unreachable(); - /* } */ case 36: - x.expr = e; - $s = -1; return; - /* } */ case 5: - /* } */ case 2: - $r = check.exprOrType(x, e.X, false); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _1 = x.mode; - /* */ if (_1 === (3)) { $s = 41; continue; } - /* */ if (_1 === (2)) { $s = 42; continue; } - /* */ if (_1 === (0)) { $s = 43; continue; } - /* */ $s = 44; continue; - /* if (_1 === (3)) { */ case 41: - /* */ if (!(def$2 === ptrType$9.nil) && $interfaceIsEqual(x.typ, def$2)) { $s = 45; continue; } - /* */ $s = 46; continue; - /* if (!(def$2 === ptrType$9.nil) && $interfaceIsEqual(x.typ, def$2)) { */ case 45: - $r = check.cycleError(new sliceType$8([def$2.obj])); /* */ $s = 47; case 47: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 17; continue; - /* } */ case 46: - $s = 44; continue; - /* } else if (_1 === (2)) { */ case 42: - $r = check.errorf(e.Sel, 82, "cannot select on %s", new sliceType$6([x])); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 17; continue; - $s = 44; continue; - /* } else if (_1 === (0)) { */ case 43: - /* goto Error */ $s = 17; continue; - /* } */ case 44: - case 40: - /* */ if (wantType) { $s = 49; continue; } - /* */ $s = 50; continue; - /* if (wantType) { */ case 49: - $r = check.errorf(e.Sel, 25, "%s is not a type", new sliceType$6([(e)])); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 17; continue; - /* } */ case 50: - _r$5 = LookupFieldOrMethod(x.typ, x.mode === 5, check.pkg, sel); /* */ $s = 52; case 52: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _tuple$3 = _r$5; - obj = _tuple$3[0]; - index$2 = _tuple$3[1]; - indirect = _tuple$3[2]; - /* */ if ($interfaceIsEqual(obj, $ifaceNil)) { $s = 53; continue; } - /* */ $s = 54; continue; - /* if ($interfaceIsEqual(obj, $ifaceNil)) { */ case 53: - _r$6 = under(x.typ); /* */ $s = 57; case 57: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - /* */ if ($interfaceIsEqual(_r$6, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { $s = 55; continue; } - /* */ $s = 56; continue; - /* if ($interfaceIsEqual(_r$6, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { */ case 55: - /* goto Error */ $s = 17; continue; - /* } */ case 56: - /* */ if (!(index$2 === sliceType$13.nil)) { $s = 58; continue; } - /* */ $s = 59; continue; - /* if (!(index$2 === sliceType$13.nil)) { */ case 58: - $r = check.errorf(e.Sel, 72, "ambiguous selector %s.%s", new sliceType$6([x.expr, new $String(sel)])); /* */ $s = 60; case 60: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 17; continue; - /* } */ case 59: - /* */ if (indirect) { $s = 61; continue; } - /* */ $s = 62; continue; - /* if (indirect) { */ case 61: - /* */ if (x.mode === 3) { $s = 63; continue; } - /* */ $s = 64; continue; - /* if (x.mode === 3) { */ case 63: - $r = check.errorf(e.Sel, 125, "invalid method expression %s.%s (needs pointer receiver (*%s).%s)", new sliceType$6([x.typ, new $String(sel), x.typ, new $String(sel)])); /* */ $s = 66; case 66: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 65; continue; - /* } else { */ case 64: - $r = check.errorf(e.Sel, 125, "cannot call pointer method %s on %s", new sliceType$6([new $String(sel), x.typ])); /* */ $s = 67; case 67: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 65: - /* goto Error */ $s = 17; continue; - /* } */ case 62: - why = ""; - _r$7 = isInterfacePtr(x.typ); /* */ $s = 71; case 71: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - /* */ if (_r$7) { $s = 68; continue; } - /* */ $s = 69; continue; - /* if (_r$7) { */ case 68: - _r$8 = check.interfacePtrError(x.typ); /* */ $s = 72; case 72: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - why = _r$8; - $s = 70; continue; - /* } else { */ case 69: - _r$9 = check.sprintf("type %s has no field or method %s", new sliceType$6([x.typ, new $String(sel)])); /* */ $s = 73; case 73: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - why = _r$9; - /* */ if (sel.length > 0) { $s = 74; continue; } - /* */ $s = 75; continue; - /* if (sel.length > 0) { */ case 74: - changeCase = ""; - r = ((sel.charCodeAt(0) >> 0)); - if (unicode.IsUpper(r)) { - changeCase = ($encodeRune(unicode.ToLower(r))) + $substring(sel, 1); - } else { - changeCase = ($encodeRune(unicode.ToUpper(r))) + $substring(sel, 1); - } - _r$10 = LookupFieldOrMethod(x.typ, x.mode === 5, check.pkg, changeCase); /* */ $s = 76; case 76: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _tuple$4 = _r$10; - obj = _tuple$4[0]; - if (!($interfaceIsEqual(obj, $ifaceNil))) { - why = why + (", but does have " + changeCase); - } - /* } */ case 75: - /* } */ case 70: - $r = check.errorf(e.Sel, 76, "%s.%s undefined (%s)", new sliceType$6([x.expr, new $String(sel), new $String(why)])); /* */ $s = 77; case 77: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 17; continue; - /* } */ case 54: - _tuple$5 = $assertType(obj, ptrType$2, true); - m = _tuple$5[0]; - /* */ if (!(m === ptrType$2.nil)) { $s = 78; continue; } - /* */ $s = 79; continue; - /* if (!(m === ptrType$2.nil)) { */ case 78: - $r = check.objDecl(m, ptrType$9.nil); /* */ $s = 80; case 80: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 79: - /* */ if (x.mode === 3) { $s = 81; continue; } - /* */ $s = 82; continue; - /* if (x.mode === 3) { */ case 81: - _tuple$6 = $assertType(obj, ptrType$2, true); - m$1 = _tuple$6[0]; - /* */ if (m$1 === ptrType$2.nil) { $s = 84; continue; } - /* */ $s = 85; continue; - /* if (m$1 === ptrType$2.nil) { */ case 84: - $r = check.errorf(e.Sel, 76, "%s.%s undefined (type %s has no method %s)", new sliceType$6([x.expr, new $String(sel), x.typ, new $String(sel)])); /* */ $s = 86; case 86: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 17; continue; - /* } */ case 85: - $r = check.recordSelection(e, 2, x.typ, m$1, index$2, indirect); /* */ $s = 87; case 87: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - sig$1 = $assertType(m$1.object.typ, ptrType$27); - /* */ if (sig$1.recv === ptrType$16.nil) { $s = 88; continue; } - /* */ $s = 89; continue; - /* if (sig$1.recv === ptrType$16.nil) { */ case 88: - $r = check.error(e, 11, "illegal cycle in method declaration"); /* */ $s = 90; case 90: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* goto Error */ $s = 17; continue; - /* } */ case 89: - params = sliceType$10.nil; - if (!(sig$1.params === ptrType$15.nil)) { - params = sig$1.params.vars; - } - name = ""; - if (params.$length > 0 && !((0 >= params.$length ? ($throwRuntimeError("index out of range"), undefined) : params.$array[params.$offset + 0]).object.name === "")) { - name = sig$1.recv.object.name; - if (name === "") { - name = "_"; - } - } - params = $appendSlice(new sliceType$10([NewVar(sig$1.recv.object.pos, sig$1.recv.object.pkg, name, x.typ)]), params); - x.mode = 7; - x.typ = new Signature.ptr(ptrType$48.nil, sig$1.tparams, ptrType.nil, ptrType$16.nil, NewTuple(params), sig$1.results, sig$1.variadic); - check.addDeclDep(m$1); - $s = 83; continue; - /* } else { */ case 82: - _ref$2 = obj; - /* */ if ($assertType(_ref$2, ptrType$16, true)[1]) { $s = 91; continue; } - /* */ if ($assertType(_ref$2, ptrType$2, true)[1]) { $s = 92; continue; } - /* */ $s = 93; continue; - /* if ($assertType(_ref$2, ptrType$16, true)[1]) { */ case 91: - obj$2 = _ref$2.$val; - $r = check.recordSelection(e, 0, x.typ, obj$2, index$2, indirect); /* */ $s = 95; case 95: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if ((x.mode === 5) || indirect) { - x.mode = 5; - } else { - x.mode = 7; - } - x.typ = obj$2.object.typ; - $s = 94; continue; - /* } else if ($assertType(_ref$2, ptrType$2, true)[1]) { */ case 92: - obj$3 = _ref$2.$val; - $r = check.recordSelection(e, 1, x.typ, obj$3, index$2, indirect); /* */ $s = 96; case 96: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - disabled = true; - /* */ if (!disabled && false) { $s = 97; continue; } - /* */ $s = 98; continue; - /* if (!disabled && false) { */ case 97: - typ$4 = x.typ; - /* */ if (x.mode === 5) { $s = 99; continue; } - /* */ $s = 100; continue; - /* if (x.mode === 5) { */ case 99: - _tuple$7 = $assertType(typ$4, ptrType$26, true); - ok$1 = _tuple$7[1]; - if (!(!ok$1)) { _v = false; $s = 103; continue s; } - _r$11 = IsInterface(typ$4); /* */ $s = 104; case 104: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - _v = !_r$11; case 103: - /* */ if (_v) { $s = 101; continue; } - /* */ $s = 102; continue; - /* if (_v) { */ case 101: - typ$4 = new Pointer.ptr(typ$4); - /* } */ case 102: - /* } */ case 100: - _r$12 = NewMethodSet(typ$4); /* */ $s = 105; case 105: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - mset = _r$12; - _r$13 = mset.Lookup(check.pkg, sel); /* */ $s = 106; case 106: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - m$2 = _r$13; - /* */ if (m$2 === ptrType$3.nil || !($interfaceIsEqual(m$2.obj, obj$3))) { $s = 107; continue; } - /* */ $s = 108; continue; - /* if (m$2 === ptrType$3.nil || !($interfaceIsEqual(m$2.obj, obj$3))) { */ case 107: - _r$14 = e.Pos(); /* */ $s = 109; case 109: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - _arg = new token.Pos(_r$14); - _arg$1 = typ$4; - _arg$2 = new $String(obj$3.object.name); - _arg$3 = m$2; - $r = check.dump("%v: (%s).%v -> %s", new sliceType$6([_arg, _arg$1, _arg$2, _arg$3])); /* */ $s = 110; case 110: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.dump("%s\n", new sliceType$6([mset])); /* */ $s = 111; case 111: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $panic(new $String("method sets and lookup don't agree")); - /* } */ case 108: - /* } */ case 98: - x.mode = 7; - sig[0] = $clone($assertType(obj$3.object.typ, ptrType$27), Signature); - sig[0].recv = ptrType$16.nil; - x.typ = sig[0]; - check.addDeclDep(obj$3); - $s = 94; continue; - /* } else { */ case 93: - obj$4 = _ref$2; - unreachable(); - /* } */ case 94: - /* } */ case 83: - x.expr = e; - $s = -1; return; - /* Error: */ case 17: - x.mode = 0; - x.expr = e; - $s = -1; return; - /* */ } return; } var $f = {$blk: selector, $c: true, $r, _1, _arg, _arg$1, _arg$2, _arg$3, _i, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _v, changeCase, check, def$2, disabled, e, exp, exp$1, exp$2, exp$3, exp$4, exp$5, exp$6, funcMode, ident$1, index$2, indirect, m, m$1, m$2, mset, name, obj, obj$1, obj$2, obj$3, obj$4, ok, ok$1, params, pkg, pname, prefix, r, sel, sig, sig$1, typ$4, wantType, why, x, x$1, $s};return $f; + $s = -1; return [merged[0], next$1[0]]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [sliceType$1.nil, sliceType$2.nil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: mergeRuneSets$1, $c: true, $r, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, extend, ix, leftLen, leftPC, leftRunes, lx, merged, next$1, ok, rightLen, rightPC, rightRunes, rx, x, x$1, $s, $deferred};return $f; } } }; - $ptrType(Checker).prototype.use = function use(arg) { - var {_i, _r$1, _ref, arg, check, e, x, $s, $r, $c} = $restore(this, {arg}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = [x]; - check = this; - x[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - _ref = arg; + cleanupOnePass = function cleanupOnePass$1(prog, original) { + var _1, _i, _ref, instOriginal, ix, original, prog, x, x$1, x$2; + _ref = original.Inst; _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - e = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - /* */ if (!($interfaceIsEqual(e, $ifaceNil))) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!($interfaceIsEqual(e, $ifaceNil))) { */ case 3: - _r$1 = check.rawExpr(x[0], e, $ifaceNil, false); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - /* } */ case 4: + while (true) { + if (!(_i < _ref.$length)) { break; } + ix = _i; + instOriginal = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), syntax.Inst); + _1 = instOriginal.Op; + if ((_1 === (0)) || (_1 === (1)) || (_1 === (7))) { + } else if ((_1 === (2)) || (_1 === (3)) || (_1 === (6)) || (_1 === (4)) || (_1 === (5))) { + (x = prog.Inst, ((ix < 0 || ix >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + ix])).Next = sliceType$2.nil; + } else if ((_1 === (8)) || (_1 === (9)) || (_1 === (10))) { + (x$1 = prog.Inst, ((ix < 0 || ix >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + ix])).Next = sliceType$2.nil; + onePassInst.copy((x$2 = prog.Inst, ((ix < 0 || ix >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + ix])), new onePassInst.ptr($clone(instOriginal, syntax.Inst), sliceType$2.nil)); + } _i++; - $s = 1; continue; - case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: use, $c: true, $r, _i, _r$1, _ref, arg, check, e, x, $s};return $f; + } }; - $ptrType(Checker).prototype.useLHS = function useLHS(arg) { - var {_i, _r$1, _r$2, _ref, _tuple, _tuple$1, _tuple$2, arg, check, e, ident$1, obj, v, v_used, w, x, $s, $r, $c} = $restore(this, {arg}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = [x]; - check = this; - x[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - _ref = arg; + onePassCopy = function onePassCopy$1(prog) { + var _1, _i, _i$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, i, inst, instAlt, instOther, p, p_A_Alt, p_A_Other, p_B_Alt, p_B_Other, patch, pc, prog, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + p = new onePassProg.ptr($makeSlice(sliceType$12, prog.Inst.$length), prog.Start, prog.NumCap); + _ref = prog.Inst; _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - e = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - v = ptrType$16.nil; - v_used = false; - _tuple = $assertType(unparen(e), ptrType$30, true); - ident$1 = _tuple[0]; - /* */ if (!(ident$1 === ptrType$30.nil)) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!(ident$1 === ptrType$30.nil)) { */ case 3: - if (ident$1.Name === "_") { - _i++; - /* continue; */ $s = 1; continue; - } - _r$1 = check.environment.scope.LookupParent(ident$1.Name, 0); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$1 = _r$1; - obj = _tuple$1[1]; - if (!($interfaceIsEqual(obj, $ifaceNil))) { - _tuple$2 = $assertType(obj, ptrType$16, true); - w = _tuple$2[0]; - if (!(w === ptrType$16.nil) && w.object.pkg === check.pkg) { - v = w; - v_used = v.used; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + inst = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), syntax.Inst); + onePassInst.copy((x = p.Inst, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])), new onePassInst.ptr($clone(inst, syntax.Inst), sliceType$2.nil)); + _i++; + } + _ref$1 = p.Inst; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + pc = _i$1; + _1 = (x$1 = p.Inst, ((pc < 0 || pc >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + pc])).Inst.Op; + if ((_1 === (0)) || (_1 === (1))) { + p_A_Other = (x$2 = (x$3 = p.Inst, ((pc < 0 || pc >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + pc])), (x$2.$ptr_Out || (x$2.$ptr_Out = new ptrType$10(function() { return this.$target.Inst.Out; }, function($v) { this.$target.Inst.Out = $v; }, x$2)))); + p_A_Alt = (x$4 = (x$5 = p.Inst, ((pc < 0 || pc >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + pc])), (x$4.$ptr_Arg || (x$4.$ptr_Arg = new ptrType$10(function() { return this.$target.Inst.Arg; }, function($v) { this.$target.Inst.Arg = $v; }, x$4)))); + instAlt = $clone((x$6 = p.Inst, x$7 = p_A_Alt.$get(), ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])), onePassInst); + if (!((instAlt.Inst.Op === 0) || (instAlt.Inst.Op === 1))) { + _tmp = p_A_Other; + _tmp$1 = p_A_Alt; + p_A_Alt = _tmp; + p_A_Other = _tmp$1; + onePassInst.copy(instAlt, (x$8 = p.Inst, x$9 = p_A_Alt.$get(), ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + x$9]))); + if (!((instAlt.Inst.Op === 0) || (instAlt.Inst.Op === 1))) { + _i$1++; + continue; } } - /* } */ case 4: - _r$2 = check.rawExpr(x[0], e, $ifaceNil, false); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$2; - if (!(v === ptrType$16.nil)) { - v.used = v_used; + instOther = $clone((x$10 = p.Inst, x$11 = p_A_Other.$get(), ((x$11 < 0 || x$11 >= x$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + x$11])), onePassInst); + if ((instOther.Inst.Op === 0) || (instOther.Inst.Op === 1)) { + _i$1++; + continue; + } + p_B_Alt = (x$12 = (x$13 = p.Inst, x$14 = p_A_Alt.$get(), ((x$14 < 0 || x$14 >= x$13.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + x$14])), (x$12.$ptr_Out || (x$12.$ptr_Out = new ptrType$10(function() { return this.$target.Inst.Out; }, function($v) { this.$target.Inst.Out = $v; }, x$12)))); + p_B_Other = (x$15 = (x$16 = p.Inst, x$17 = p_A_Alt.$get(), ((x$17 < 0 || x$17 >= x$16.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$16.$array[x$16.$offset + x$17])), (x$15.$ptr_Arg || (x$15.$ptr_Arg = new ptrType$10(function() { return this.$target.Inst.Arg; }, function($v) { this.$target.Inst.Arg = $v; }, x$15)))); + patch = false; + if (instAlt.Inst.Out === ((pc >>> 0))) { + patch = true; + } else if (instAlt.Inst.Arg === ((pc >>> 0))) { + patch = true; + _tmp$2 = p_B_Other; + _tmp$3 = p_B_Alt; + p_B_Alt = _tmp$2; + p_B_Other = _tmp$3; + } + if (patch) { + p_B_Alt.$set(p_A_Other.$get()); + } + if (p_A_Other.$get() === p_B_Alt.$get()) { + p_A_Alt.$set(p_B_Other.$get()); + } + } else { + _i$1++; + continue; } - _i++; - $s = 1; continue; - case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: useLHS, $c: true, $r, _i, _r$1, _r$2, _ref, _tuple, _tuple$1, _tuple$2, arg, check, e, ident$1, obj, v, v_used, w, x, $s};return $f; + _i$1++; + } + return p; }; - $ptrType(Checker).prototype.builtin = function builtin(x, call, id) { - var {S, T, T$1, T$2, _, _1, _2, _3, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$16, _arg$17, _arg$18, _arg$19, _arg$2, _arg$20, _arg$21, _arg$22, _arg$23, _arg$24, _arg$25, _arg$26, _arg$27, _arg$28, _arg$29, _arg$3, _arg$30, _arg$31, _arg$32, _arg$33, _arg$34, _arg$35, _arg$36, _arg$37, _arg$38, _arg$39, _arg$4, _arg$40, _arg$41, _arg$42, _arg$43, _arg$44, _arg$45, _arg$46, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _i, _i$1, _i$2, _key, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _r$5, _r$50, _r$51, _r$52, _r$53, _r$54, _r$55, _r$56, _r$57, _r$58, _r$59, _r$6, _r$60, _r$61, _r$62, _r$63, _r$64, _r$65, _r$66, _r$67, _r$68, _r$69, _r$7, _r$70, _r$71, _r$72, _r$73, _r$74, _r$75, _r$76, _r$77, _r$78, _r$79, _r$8, _r$80, _r$81, _r$82, _r$83, _r$84, _r$85, _r$86, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, _v$2, _v$3, alist, arg, arg$1, arg$2, arg0, arg0$1, base, bin, call, cause, check, code, code$1, d, dst, f, f$1, i, i$1, i$2, id, index$2, indirect, key, map_, min, mode, mode$1, msg$1, nargs, obj, ok, p, params, ptr, resTyp, resTyp$1, s, sel, selx, sig, sig$1, size, sizes, slice, src, src0, t, t$1, t$2, t$3, t$4, t$5, t$6, toFloat, typ$4, types$1, u, val, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, x1, xlist, xlist$1, y, y$1, y$2, y$3, y$4, $s, $deferred, $r, $c} = $restore(this, {x, call, id}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); + runeSlice.prototype.Len = function Len() { + var p; + p = this; + return p.$length; + }; + $ptrType(runeSlice).prototype.Len = function(...$args) { return this.$get().Len(...$args); }; + runeSlice.prototype.Less = function Less(i, j) { + var i, j, p; + p = this; + return ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]) < ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]); + }; + $ptrType(runeSlice).prototype.Less = function(...$args) { return this.$get().Less(...$args); }; + runeSlice.prototype.Swap = function Swap(i, j) { + var _tmp, _tmp$1, i, j, p; + p = this; + _tmp = ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]); + _tmp$1 = ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]); + ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i] = _tmp); + ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j] = _tmp$1); + }; + $ptrType(runeSlice).prototype.Swap = function(...$args) { return this.$get().Swap(...$args); }; + makeOnePass = function makeOnePass$1(p) { + var {_i, _r, _ref, check, i, instQueue, m, onePassRunes, p, pc, visitQueue, x, $s, $r, $c} = $restore(this, {p}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: check = [check]; - id = [id]; - key = [key]; - t = [t]; - x = [x]; - xlist = [xlist]; - y = [y]; - y$1 = [y$1]; - y$2 = [y$2]; - y$3 = [y$3]; - y$4 = [y$4]; - _ = false; - check[0] = this; - bin = $clone(((id[0] < 0 || id[0] >= predeclaredFuncs.length) ? ($throwRuntimeError("index out of range"), undefined) : predeclaredFuncs[id[0]]), structType$1); - /* */ if (new token.Pos(call.Ellipsis).IsValid() && !((id[0] === 0))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (new token.Pos(call.Ellipsis).IsValid() && !((id[0] === 0))) { */ case 1: - $r = check[0].errorf(new atPos(((call.Ellipsis >> 0))), 81, "invalid operation: invalid use of ... with built-in %s", new sliceType$6([new $String(bin.name)])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].use(call.Args); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 2: - /* */ if ((id[0] === 8) || (id[0] === 1)) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if ((id[0] === 8) || (id[0] === 1)) { */ case 5: - $deferred.push([(function(check, id, key, t, x, xlist, y, y$1, y$2, y$3, y$4) { return function Checker·builtin·func1(b) { - var b; - check[0].environment.hasCallOrRecv = b; - }; })(check, id, key, t, x, xlist, y, y$1, y$2, y$3, y$4), [check[0].environment.hasCallOrRecv]]); - check[0].environment.hasCallOrRecv = false; - /* } */ case 6: - arg = $throwNilPointerError; - nargs = call.Args.$length; - _1 = id[0]; - /* */ if ((_1 === (9)) || (_1 === (10)) || (_1 === (18)) || (_1 === (25))) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if ((_1 === (9)) || (_1 === (10)) || (_1 === (18)) || (_1 === (25))) { */ case 8: - $s = 10; continue; - /* } else { */ case 9: - _r$1 = check[0].exprList(call.Args, false); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - xlist[0] = _tuple[0]; - arg = (function(check, id, key, t, x, xlist, y, y$1, y$2, y$3, y$4) { return function Checker·builtin·func2(x$1, i) { - var i, x$1; - operand.copy(x$1, ((i < 0 || i >= xlist[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : xlist[0].$array[xlist[0].$offset + i])); - }; })(check, id, key, t, x, xlist, y, y$1, y$2, y$3, y$4); - nargs = xlist[0].$length; - /* */ if (nargs > 0) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (nargs > 0) { */ case 12: - $r = arg(x[0], 0); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x[0].mode === 0) { - $s = -1; return _; - } - /* } */ case 13: - /* } */ case 10: - case 7: - msg$1 = ""; - if (nargs < bin.nargs) { - msg$1 = "not enough"; - } else if (!bin.variadic && nargs > bin.nargs) { - msg$1 = "too many"; - } - /* */ if (!(msg$1 === "")) { $s = 15; continue; } - /* */ $s = 16; continue; - /* if (!(msg$1 === "")) { */ case 15: - _r$2 = inNode(call, call.Rparen); /* */ $s = 17; case 17: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $r = check[0].errorf((x$1 = _r$2, new x$1.constructor.elem(x$1)), 126, "invalid operation: %s arguments for %s (expected %d, found %d)", new sliceType$6([new $String(msg$1), call, new $Int(bin.nargs), new $Int(nargs)])); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 16: - _2 = id[0]; - /* */ if (_2 === (0)) { $s = 20; continue; } - /* */ if ((_2 === (1)) || (_2 === (8))) { $s = 21; continue; } - /* */ if (_2 === (2)) { $s = 22; continue; } - /* */ if (_2 === (3)) { $s = 23; continue; } - /* */ if (_2 === (4)) { $s = 24; continue; } - /* */ if (_2 === (5)) { $s = 25; continue; } - /* */ if (_2 === (6)) { $s = 26; continue; } - /* */ if ((_2 === (7)) || (_2 === (14))) { $s = 27; continue; } - /* */ if (_2 === (9)) { $s = 28; continue; } - /* */ if (_2 === (10)) { $s = 29; continue; } - /* */ if (_2 === (11)) { $s = 30; continue; } - /* */ if ((_2 === (12)) || (_2 === (13))) { $s = 31; continue; } - /* */ if (_2 === (15)) { $s = 32; continue; } - /* */ if (_2 === (16)) { $s = 33; continue; } - /* */ if (_2 === (17)) { $s = 34; continue; } - /* */ if (_2 === (18)) { $s = 35; continue; } - /* */ if (_2 === (19)) { $s = 36; continue; } - /* */ if (_2 === (20)) { $s = 37; continue; } - /* */ if (_2 === (21)) { $s = 38; continue; } - /* */ if (_2 === (22)) { $s = 39; continue; } - /* */ if (_2 === (23)) { $s = 40; continue; } - /* */ if (_2 === (24)) { $s = 41; continue; } - /* */ if (_2 === (25)) { $s = 42; continue; } - /* */ $s = 43; continue; - /* if (_2 === (0)) { */ case 20: - S = x[0].typ; - T = $ifaceNil; - _r$3 = coreType(S); /* */ $s = 45; case 45: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _tuple$1 = $assertType(_r$3, ptrType$25, true); - s = _tuple$1[0]; - /* */ if (!(s === ptrType$25.nil)) { $s = 46; continue; } - /* */ $s = 47; continue; - /* if (!(s === ptrType$25.nil)) { */ case 46: - T = s.elem; - $s = 48; continue; - /* } else { */ case 47: - cause = ""; - /* */ if (x[0].isNil()) { $s = 50; continue; } - /* */ if (isTypeParam(S)) { $s = 51; continue; } - /* */ $s = 52; continue; - /* if (x[0].isNil()) { */ case 50: - cause = "have untyped nil"; - $s = 53; continue; - /* } else if (isTypeParam(S)) { */ case 51: - _r$4 = coreType(S); /* */ $s = 54; case 54: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - u = _r$4; - /* */ if (!($interfaceIsEqual(u, $ifaceNil))) { $s = 55; continue; } - /* */ $s = 56; continue; - /* if (!($interfaceIsEqual(u, $ifaceNil))) { */ case 55: - _r$5 = check[0].sprintf("%s has core type %s", new sliceType$6([x[0], u])); /* */ $s = 58; case 58: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - cause = _r$5; - $s = 57; continue; - /* } else { */ case 56: - _r$6 = check[0].sprintf("%s has no core type", new sliceType$6([x[0]])); /* */ $s = 59; case 59: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - cause = _r$6; - /* } */ case 57: - $s = 53; continue; - /* } else { */ case 52: - _r$7 = check[0].sprintf("have %s", new sliceType$6([x[0]])); /* */ $s = 60; case 60: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - cause = _r$7; - /* } */ case 53: - case 49: - $r = check[0].errorf(x[0], 83, "first argument to append must be a slice; %s", new sliceType$6([new $String(cause)])); /* */ $s = 61; case 61: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 48: - alist = new sliceType$41([$clone(x[0], operand)]); - /* */ if ((nargs === 2) && new token.Pos(call.Ellipsis).IsValid()) { $s = 62; continue; } - /* */ $s = 63; continue; - /* if ((nargs === 2) && new token.Pos(call.Ellipsis).IsValid()) { */ case 62: - _r$8 = x[0].assignableTo(check[0], NewSlice(universeByte), ptrType$34.nil); /* */ $s = 64; case 64: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _tuple$2 = _r$8; - ok = _tuple$2[0]; - /* */ if (ok) { $s = 65; continue; } - /* */ $s = 66; continue; - /* if (ok) { */ case 65: - $r = arg(x[0], 1); /* */ $s = 67; case 67: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x[0].mode === 0) { - $s = -1; return _; + instQueue = [instQueue]; + onePassRunes = [onePassRunes]; + p = [p]; + visitQueue = [visitQueue]; + if (p[0].Inst.$length >= 1000) { + $s = -1; return ptrType$2.nil; + } + instQueue[0] = newQueue(p[0].Inst.$length); + visitQueue[0] = newQueue(p[0].Inst.$length); + check[0] = $throwNilPointerError; + onePassRunes[0] = $makeSlice(sliceType$13, p[0].Inst.$length); + check[0] = (function(check, instQueue, onePassRunes, p, visitQueue) { return function makeOnePass·func1(pc, m) { + var {_1, _i, _i$1, _i$2, _i$3, _i$4, _q, _q$1, _q$2, _q$3, _q$4, _r, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _v, i, i$1, i$2, i$3, i$4, inst, m, matchArg, matchOut, ok, pc, r0, r0$1, r1, r1$1, runes, runes$1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {pc, m}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + ok = false; + ok = true; + inst = (x = p[0].Inst, ((pc < 0 || pc >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + pc, ptrType$11))); + if (visitQueue[0].contains(pc)) { + $s = -1; return ok; + } + visitQueue[0].insert(pc); + _1 = inst.Inst.Op; + /* */ if ((_1 === (0)) || (_1 === (1))) { $s = 2; continue; } + /* */ if ((_1 === (2)) || (_1 === (6))) { $s = 3; continue; } + /* */ if (_1 === (3)) { $s = 4; continue; } + /* */ if ((_1 === (4)) || (_1 === (5))) { $s = 5; continue; } + /* */ if (_1 === (7)) { $s = 6; continue; } + /* */ if (_1 === (8)) { $s = 7; continue; } + /* */ if (_1 === (9)) { $s = 8; continue; } + /* */ if (_1 === (10)) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if ((_1 === (0)) || (_1 === (1))) { */ case 2: + _r = check[0](inst.Inst.Out, m); /* */ $s = 12; case 12: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + if (!(_r)) { _v = false; $s = 11; continue s; } + _r$1 = check[0](inst.Inst.Arg, m); /* */ $s = 13; case 13: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = _r$1; case 11: + ok = _v; + matchOut = (x$1 = inst.Inst.Out, ((x$1 < 0 || x$1 >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + x$1])); + matchArg = (x$2 = inst.Inst.Arg, ((x$2 < 0 || x$2 >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + x$2])); + if (matchOut && matchArg) { + ok = false; + /* break; */ $s = 1; continue; + } + if (matchArg) { + _tmp = inst.Inst.Arg; + _tmp$1 = inst.Inst.Out; + inst.Inst.Out = _tmp; + inst.Inst.Arg = _tmp$1; + _tmp$2 = matchArg; + _tmp$3 = matchOut; + matchOut = _tmp$2; + matchArg = _tmp$3; + } + if (matchOut) { + ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = true); + inst.Inst.Op = 1; + } + _r$2 = mergeRuneSets((x$3 = inst.Inst.Out, ((x$3 < 0 || x$3 >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(onePassRunes[0].$array, onePassRunes[0].$offset + x$3, ptrType$12))), (x$4 = inst.Inst.Arg, ((x$4 < 0 || x$4 >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(onePassRunes[0].$array, onePassRunes[0].$offset + x$4, ptrType$12))), inst.Inst.Out, inst.Inst.Arg); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = _r$2; + ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = _tuple[0]); + inst.Next = _tuple[1]; + if (inst.Next.$length > 0 && ((x$5 = inst.Next, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0])) === 4294967295)) { + ok = false; + /* break; */ $s = 1; continue; + } + $s = 10; continue; + /* } else if ((_1 === (2)) || (_1 === (6))) { */ case 3: + _r$3 = check[0](inst.Inst.Out, m); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + ok = _r$3; + ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = (x$6 = inst.Inst.Out, ((x$6 < 0 || x$6 >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + x$6]))); + ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = $appendSlice(new sliceType$1([]), (x$7 = inst.Inst.Out, ((x$7 < 0 || x$7 >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + x$7])))); + inst.Next = $makeSlice(sliceType$2, ((_q = ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc]).$length / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0)); + _ref = inst.Next; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + (x$8 = inst.Next, ((i < 0 || i >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + i] = inst.Inst.Out)); + _i++; + } + $s = 10; continue; + /* } else if (_1 === (3)) { */ case 4: + _r$4 = check[0](inst.Inst.Out, m); /* */ $s = 16; case 16: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + ok = _r$4; + ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = (x$9 = inst.Inst.Out, ((x$9 < 0 || x$9 >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + x$9]))); + ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = $appendSlice(new sliceType$1([]), (x$10 = inst.Inst.Out, ((x$10 < 0 || x$10 >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + x$10])))); + inst.Next = $makeSlice(sliceType$2, ((_q$1 = ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc]).$length / 2, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0)); + _ref$1 = inst.Next; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i$1 = _i$1; + (x$11 = inst.Next, ((i$1 < 0 || i$1 >= x$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + i$1] = inst.Inst.Out)); + _i$1++; } - _r$9 = coreString(x[0].typ); /* */ $s = 68; case 68: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - t$1 = _r$9; - if (!(!($interfaceIsEqual(t$1, $ifaceNil)))) { _v = false; $s = 71; continue s; } - _r$10 = isString(t$1); /* */ $s = 72; case 72: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _v = _r$10; case 71: - /* */ if (_v) { $s = 69; continue; } - /* */ $s = 70; continue; - /* if (_v) { */ case 69: - /* */ if (!(check[0].Info.Types === false)) { $s = 73; continue; } - /* */ $s = 74; continue; - /* if (!(check[0].Info.Types === false)) { */ case 73: - _r$11 = makeSig(S, new sliceType$3([S, x[0].typ])); /* */ $s = 75; case 75: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - sig = _r$11; - sig.variadic = true; - $r = check[0].recordBuiltinType(call.Fun, sig); /* */ $s = 76; case 76: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 74: - x[0].mode = 7; - x[0].typ = S; - /* break; */ $s = 19; continue; - /* } */ case 70: - alist = $append(alist, x[0]); - /* } */ case 66: - /* } */ case 63: - _r$12 = makeSig(S, new sliceType$3([S, NewSlice(T)])); /* */ $s = 77; case 77: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - sig$1 = _r$12; - sig$1.variadic = true; - xlist$1 = sliceType$29.nil; - _ref = alist; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - xlist$1 = $append(xlist$1, ((i < 0 || i >= alist.$length) ? ($throwRuntimeError("index out of range"), undefined) : alist.$array[alist.$offset + i])); - _i++; - } - i$1 = alist.$length; - /* while (true) { */ case 78: - /* if (!(i$1 < nargs)) { break; } */ if(!(i$1 < nargs)) { $s = 79; continue; } - x$2 = [x$2]; - x$2[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = arg(x$2[0], i$1); /* */ $s = 80; case 80: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - xlist$1 = $append(xlist$1, x$2[0]); - i$1 = i$1 + (1) >> 0; - $s = 78; continue; - case 79: - _r$13 = check[0].arguments$(call, sig$1, sliceType$3.nil, xlist$1, sliceType$11.nil); /* */ $s = 81; case 81: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - _r$13; - x[0].mode = 7; - x[0].typ = S; - /* */ if (!(check[0].Info.Types === false)) { $s = 82; continue; } - /* */ $s = 83; continue; - /* if (!(check[0].Info.Types === false)) { */ case 82: - $r = check[0].recordBuiltinType(call.Fun, sig$1); /* */ $s = 84; case 84: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 83: - $s = 44; continue; - /* } else if ((_2 === (1)) || (_2 === (8))) { */ case 21: - mode = 0; - val = $ifaceNil; - _r$14 = under(x[0].typ); /* */ $s = 85; case 85: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - _r$15 = arrayPtrDeref(_r$14); /* */ $s = 86; case 86: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - _ref$1 = _r$15; - /* */ if ($assertType(_ref$1, ptrType$4, true)[1]) { $s = 87; continue; } - /* */ if ($assertType(_ref$1, ptrType$10, true)[1]) { $s = 88; continue; } - /* */ if ($assertType(_ref$1, ptrType$25, true)[1] || $assertType(_ref$1, ptrType$29, true)[1]) { $s = 89; continue; } - /* */ if ($assertType(_ref$1, ptrType$28, true)[1]) { $s = 90; continue; } - /* */ if ($assertType(_ref$1, ptrType$13, true)[1]) { $s = 91; continue; } - /* */ $s = 92; continue; - /* switch (0) { default: if ($assertType(_ref$1, ptrType$4, true)[1]) { */ case 87: - t$2 = _ref$1.$val; - _r$16 = isString(t$2); /* */ $s = 95; case 95: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - /* */ if (_r$16 && (id[0] === 8)) { $s = 93; continue; } - /* */ $s = 94; continue; - /* if (_r$16 && (id[0] === 8)) { */ case 93: - /* */ if (x[0].mode === 4) { $s = 96; continue; } - /* */ $s = 97; continue; - /* if (x[0].mode === 4) { */ case 96: - mode = 4; - _r$17 = constant.StringVal(x[0].val); /* */ $s = 99; case 99: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - _r$18 = constant.MakeInt64((new $Int64(0, _r$17.length))); /* */ $s = 100; case 100: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } - val = _r$18; - $s = 98; continue; - /* } else { */ case 97: - mode = 7; - /* } */ case 98: - /* } */ case 94: - $s = 92; continue; - /* } else if ($assertType(_ref$1, ptrType$10, true)[1]) { */ case 88: - t$3 = _ref$1.$val; - mode = 7; - if (!check[0].environment.hasCallOrRecv) { - mode = 4; - if ((x$3 = t$3.len, (x$3.$high > 0 || (x$3.$high === 0 && x$3.$low >= 0)))) { - val = constant.MakeInt64(t$3.len); - } else { - val = constant.MakeUnknown(); + $s = 10; continue; + /* } else if ((_1 === (4)) || (_1 === (5))) { */ case 5: + ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = (inst.Inst.Op === 4)); + $s = 10; continue; + /* } else if (_1 === (7)) { */ case 6: + ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = false); + if (inst.Next.$length > 0) { + /* break; */ $s = 1; continue; } - } - $s = 92; continue; - /* } else if ($assertType(_ref$1, ptrType$25, true)[1] || $assertType(_ref$1, ptrType$29, true)[1]) { */ case 89: - t$4 = _ref$1; - mode = 7; - $s = 92; continue; - /* } else if ($assertType(_ref$1, ptrType$28, true)[1]) { */ case 90: - t$5 = _ref$1.$val; - if (id[0] === 8) { - mode = 7; - } - $s = 92; continue; - /* } else if ($assertType(_ref$1, ptrType$13, true)[1]) { */ case 91: - t$6 = _ref$1.$val; - if (!isTypeParam(x[0].typ)) { - /* break; */ $s = 92; continue; - } - _r$19 = t$6.typeSet(); /* */ $s = 103; case 103: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } - _r$20 = _r$19.underIs((function(check, id, key, t, x, xlist, y, y$1, y$2, y$3, y$4) { return function Checker·builtin·func3(t$7) { - var {_r$20, _r$21, _ref$2, t$10, t$7, t$8, t$9, $s, $r, $c} = $restore(this, {t$7}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$20 = arrayPtrDeref(t$7); /* */ $s = 1; case 1: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - _ref$2 = _r$20; - /* */ if ($assertType(_ref$2, ptrType$4, true)[1]) { $s = 2; continue; } - /* */ if ($assertType(_ref$2, ptrType$10, true)[1] || $assertType(_ref$2, ptrType$25, true)[1] || $assertType(_ref$2, ptrType$29, true)[1]) { $s = 3; continue; } - /* */ if ($assertType(_ref$2, ptrType$28, true)[1]) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if ($assertType(_ref$2, ptrType$4, true)[1]) { */ case 2: - t$8 = _ref$2.$val; - _r$21 = isString(t$8); /* */ $s = 8; case 8: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } - /* */ if (_r$21 && (id[0] === 8)) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (_r$21 && (id[0] === 8)) { */ case 6: - $s = -1; return true; - /* } */ case 7: - $s = 5; continue; - /* } else if ($assertType(_ref$2, ptrType$10, true)[1] || $assertType(_ref$2, ptrType$25, true)[1] || $assertType(_ref$2, ptrType$29, true)[1]) { */ case 3: - t$9 = _ref$2; - $s = -1; return true; - /* } else if ($assertType(_ref$2, ptrType$28, true)[1]) { */ case 4: - t$10 = _ref$2.$val; - if (id[0] === 8) { - $s = -1; return true; - } - /* } */ case 5: - $s = -1; return false; - /* */ } return; } var $f = {$blk: Checker·builtin·func3, $c: true, $r, _r$20, _r$21, _ref$2, t$10, t$7, t$8, t$9, $s};return $f; - }; })(check, id, key, t, x, xlist, y, y$1, y$2, y$3, y$4)); /* */ $s = 104; case 104: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } - /* */ if (_r$20) { $s = 101; continue; } - /* */ $s = 102; continue; - /* if (_r$20) { */ case 101: - mode = 7; - /* } */ case 102: - /* } } */ case 92: - if (!(mode === 0)) { _v$1 = false; $s = 107; continue s; } - _r$21 = under(x[0].typ); /* */ $s = 108; case 108: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } - _v$1 = !($interfaceIsEqual(_r$21, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))); case 107: - /* */ if (_v$1) { $s = 105; continue; } - /* */ $s = 106; continue; - /* if (_v$1) { */ case 105: - code = 84; - if (id[0] === 8) { - code = 90; - } - $r = check[0].errorf(x[0], code, "invalid argument: %s for %s", new sliceType$6([x[0], new $String(bin.name)])); /* */ $s = 109; case 109: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 106: - /* */ if (!(check[0].Info.Types === false) && !((mode === 4))) { $s = 110; continue; } - /* */ $s = 111; continue; - /* if (!(check[0].Info.Types === false) && !((mode === 4))) { */ case 110: - _arg = call.Fun; - _r$22 = makeSig((2 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 2]), new sliceType$3([x[0].typ])); /* */ $s = 112; case 112: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } - _arg$1 = _r$22; - $r = check[0].recordBuiltinType(_arg, _arg$1); /* */ $s = 113; case 113: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 111: - x[0].mode = mode; - x[0].typ = (2 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 2]); - x[0].val = val; - $s = 44; continue; - /* } else if (_2 === (2)) { */ case 22: - /* */ if (!check[0].allowVersion(check[0].pkg, 1, 21)) { $s = 114; continue; } - /* */ $s = 115; continue; - /* if (!check[0].allowVersion(check[0].pkg, 1, 21)) { */ case 114: - $r = check[0].error(call.Fun, 135, "clear requires go1.21 or later"); /* */ $s = 116; case 116: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 115: - _r$23 = underIs(x[0].typ, (function(check, id, key, t, x, xlist, y, y$1, y$2, y$3, y$4) { return function Checker·builtin·func4(u$1) { - var {_r$23, _ref$2, _tuple$3, ok$1, u$1, u$2, u$3, $s, $r, $c} = $restore(this, {u$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _ref$2 = u$1; - /* */ if ($assertType(_ref$2, ptrType$28, true)[1] || $assertType(_ref$2, ptrType$25, true)[1]) { $s = 1; continue; } - /* */ if ($assertType(_ref$2, ptrType$26, true)[1]) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if ($assertType(_ref$2, ptrType$28, true)[1] || $assertType(_ref$2, ptrType$25, true)[1]) { */ case 1: - u$2 = _ref$2; - $s = -1; return true; - /* } else if ($assertType(_ref$2, ptrType$26, true)[1]) { */ case 2: - u$3 = _ref$2.$val; - _r$23 = under(u$3.base); /* */ $s = 4; case 4: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - _tuple$3 = $assertType(_r$23, ptrType$10, true); - ok$1 = _tuple$3[1]; - if (ok$1) { - $s = -1; return true; - } - /* } */ case 3: - $r = check[0].errorf(x[0], 148, "invalid argument: cannot clear %s: argument must be (or constrained by) map, slice, or array pointer", new sliceType$6([x[0]])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return false; - /* */ } return; } var $f = {$blk: Checker·builtin·func4, $c: true, $r, _r$23, _ref$2, _tuple$3, ok$1, u$1, u$2, u$3, $s};return $f; - }; })(check, id, key, t, x, xlist, y, y$1, y$2, y$3, y$4)); /* */ $s = 119; case 119: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } - /* */ if (!_r$23) { $s = 117; continue; } - /* */ $s = 118; continue; - /* if (!_r$23) { */ case 117: - $s = -1; return _; - /* } */ case 118: - x[0].mode = 1; - /* */ if (!(check[0].Info.Types === false)) { $s = 120; continue; } - /* */ $s = 121; continue; - /* if (!(check[0].Info.Types === false)) { */ case 120: - _arg$2 = call.Fun; - _r$24 = makeSig($ifaceNil, new sliceType$3([x[0].typ])); /* */ $s = 122; case 122: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } - _arg$3 = _r$24; - $r = check[0].recordBuiltinType(_arg$2, _arg$3); /* */ $s = 123; case 123: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 121: - $s = 44; continue; - /* } else if (_2 === (3)) { */ case 23: - _r$25 = underIs(x[0].typ, (function(check, id, key, t, x, xlist, y, y$1, y$2, y$3, y$4) { return function Checker·builtin·func5(u$1) { - var {_tuple$3, u$1, uch, $s, $r, $c} = $restore(this, {u$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _tuple$3 = $assertType(u$1, ptrType$29, true); - uch = _tuple$3[0]; - /* */ if (uch === ptrType$29.nil) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (uch === ptrType$29.nil) { */ case 1: - $r = check[0].errorf(x[0], 85, "invalid operation: cannot close non-channel %s", new sliceType$6([x[0]])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return false; - /* } */ case 2: - /* */ if (uch.dir === 2) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (uch.dir === 2) { */ case 4: - $r = check[0].errorf(x[0], 85, "invalid operation: cannot close receive-only channel %s", new sliceType$6([x[0]])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return false; - /* } */ case 5: - $s = -1; return true; - /* */ } return; } var $f = {$blk: Checker·builtin·func5, $c: true, $r, _tuple$3, u$1, uch, $s};return $f; - }; })(check, id, key, t, x, xlist, y, y$1, y$2, y$3, y$4)); /* */ $s = 126; case 126: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } - /* */ if (!_r$25) { $s = 124; continue; } - /* */ $s = 125; continue; - /* if (!_r$25) { */ case 124: - $s = -1; return _; - /* } */ case 125: - x[0].mode = 1; - /* */ if (!(check[0].Info.Types === false)) { $s = 127; continue; } - /* */ $s = 128; continue; - /* if (!(check[0].Info.Types === false)) { */ case 127: - _arg$4 = call.Fun; - _r$26 = makeSig($ifaceNil, new sliceType$3([x[0].typ])); /* */ $s = 129; case 129: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } - _arg$5 = _r$26; - $r = check[0].recordBuiltinType(_arg$4, _arg$5); /* */ $s = 130; case 130: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 128: - $s = 44; continue; - /* } else if (_2 === (4)) { */ case 24: - y[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = arg(y[0], 1); /* */ $s = 131; case 131: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (y[0].mode === 0) { - $s = -1; return _; - } - d = 0; - if (isUntyped(x[0].typ)) { - d = d | (1); - } - if (isUntyped(y[0].typ)) { - d = d | (2); - } - _3 = d; - /* */ if (_3 === (0)) { $s = 133; continue; } - /* */ if (_3 === (1)) { $s = 134; continue; } - /* */ if (_3 === (2)) { $s = 135; continue; } - /* */ if (_3 === (3)) { $s = 136; continue; } - /* */ $s = 137; continue; - /* if (_3 === (0)) { */ case 133: - $s = 137; continue; - /* } else if (_3 === (1)) { */ case 134: - $r = check[0].convertUntyped(x[0], y[0].typ); /* */ $s = 138; case 138: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 137; continue; - /* } else if (_3 === (2)) { */ case 135: - $r = check[0].convertUntyped(y[0], x[0].typ); /* */ $s = 139; case 139: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 137; continue; - /* } else if (_3 === (3)) { */ case 136: - /* */ if ((x[0].mode === 4) && (y[0].mode === 4)) { $s = 140; continue; } - /* */ $s = 141; continue; - /* if ((x[0].mode === 4) && (y[0].mode === 4)) { */ case 140: - toFloat = (function(check, id, key, t, x, xlist, y, y$1, y$2, y$3, y$4) { return function Checker·builtin·func6(x$4) { - var {_r$27, _r$28, _r$29, _v$2, x$4, $s, $r, $c} = $restore(this, {x$4}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$27 = isNumeric(x$4.typ); /* */ $s = 4; case 4: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - if (!(_r$27)) { _v$2 = false; $s = 3; continue s; } - _r$28 = constant.Imag(x$4.val); /* */ $s = 5; case 5: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - _r$29 = constant.Sign(_r$28); /* */ $s = 6; case 6: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } - _v$2 = _r$29 === 0; case 3: - /* */ if (_v$2) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (_v$2) { */ case 1: - x$4.typ = (22 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 22]); - /* } */ case 2: - $s = -1; return; - /* */ } return; } var $f = {$blk: Checker·builtin·func6, $c: true, $r, _r$27, _r$28, _r$29, _v$2, x$4, $s};return $f; - }; })(check, id, key, t, x, xlist, y, y$1, y$2, y$3, y$4); - $r = toFloat(x[0]); /* */ $s = 143; case 143: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = toFloat(y[0]); /* */ $s = 144; case 144: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 142; continue; - /* } else { */ case 141: - $r = check[0].convertUntyped(x[0], (14 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 14])); /* */ $s = 145; case 145: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].convertUntyped(y[0], (14 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 14])); /* */ $s = 146; case 146: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 142: - /* } */ case 137: - case 132: - if ((x[0].mode === 0) || (y[0].mode === 0)) { - $s = -1; return _; - } - _r$27 = Identical(x[0].typ, y[0].typ); /* */ $s = 149; case 149: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } - /* */ if (!_r$27) { $s = 147; continue; } - /* */ $s = 148; continue; - /* if (!_r$27) { */ case 147: - $r = check[0].errorf(x[0], 87, "invalid argument: mismatched types %s and %s", new sliceType$6([x[0].typ, y[0].typ])); /* */ $s = 150; case 150: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 148: - f = (function(check, id, key, t, x, xlist, y, y$1, y$2, y$3, y$4) { return function Checker·builtin·func7(typ$4) { - var {_4, _r$28, _tuple$3, t$7, typ$4, $s, $r, $c} = $restore(this, {typ$4}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = assert(!isTypeParam(typ$4)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$28 = under(typ$4); /* */ $s = 2; case 2: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - _tuple$3 = $assertType(_r$28, ptrType$4, true); - t$7 = _tuple$3[0]; - if (!(t$7 === ptrType$4.nil)) { - _4 = t$7.kind; - if (_4 === (13)) { - $s = -1; return (15 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 15]); - } else if (_4 === (14)) { - $s = -1; return (16 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 16]); - } else if (_4 === (22)) { - $s = -1; return (23 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 23]); + instQueue[0].insert(inst.Inst.Out); + if (inst.Inst.Rune.$length === 0) { + ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = new sliceType$1([])); + inst.Next = new sliceType$2([inst.Inst.Out]); + /* break; */ $s = 1; continue; + } + runes = $makeSlice(sliceType$1, 0); + /* */ if ((inst.Inst.Rune.$length === 1) && !((((((inst.Inst.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if ((inst.Inst.Rune.$length === 1) && !((((((inst.Inst.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { */ case 17: + r0 = (x$12 = inst.Inst.Rune, (0 >= x$12.$length ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + 0])); + runes = $append(runes, r0, r0); + r1 = unicode.SimpleFold(r0); + while (true) { + if (!(!((r1 === r0)))) { break; } + runes = $append(runes, r1, r1); + r1 = unicode.SimpleFold(r1); } + $r = sort.Sort(($convertSliceType(runes, runeSlice))); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 19; continue; + /* } else { */ case 18: + runes = $appendSlice(runes, inst.Inst.Rune); + /* } */ case 19: + ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = runes); + inst.Next = $makeSlice(sliceType$2, ((_q$2 = ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc]).$length / 2, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0)); + _ref$2 = inst.Next; + _i$2 = 0; + while (true) { + if (!(_i$2 < _ref$2.$length)) { break; } + i$2 = _i$2; + (x$13 = inst.Next, ((i$2 < 0 || i$2 >= x$13.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + i$2] = inst.Inst.Out)); + _i$2++; } - $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: Checker·builtin·func7, $c: true, $r, _4, _r$28, _tuple$3, t$7, typ$4, $s};return $f; - }; })(check, id, key, t, x, xlist, y, y$1, y$2, y$3, y$4); - _r$28 = check[0].applyTypeFunc(f, x[0], id[0]); /* */ $s = 151; case 151: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } - resTyp = _r$28; - /* */ if ($interfaceIsEqual(resTyp, $ifaceNil)) { $s = 152; continue; } - /* */ $s = 153; continue; - /* if ($interfaceIsEqual(resTyp, $ifaceNil)) { */ case 152: - $r = check[0].errorf(x[0], 87, "invalid argument: arguments have type %s, expected floating-point", new sliceType$6([x[0].typ])); /* */ $s = 154; case 154: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 153: - /* */ if ((x[0].mode === 4) && (y[0].mode === 4)) { $s = 155; continue; } - /* */ $s = 156; continue; - /* if ((x[0].mode === 4) && (y[0].mode === 4)) { */ case 155: - _r$29 = constant.ToFloat(x[0].val); /* */ $s = 158; case 158: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } - _arg$6 = _r$29; - _r$30 = constant.ToFloat(y[0].val); /* */ $s = 159; case 159: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } - _r$31 = constant.MakeImag(_r$30); /* */ $s = 160; case 160: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } - _arg$7 = _r$31; - _r$32 = constant.BinaryOp(_arg$6, 12, _arg$7); /* */ $s = 161; case 161: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } - x[0].val = _r$32; - $s = 157; continue; - /* } else { */ case 156: - x[0].mode = 7; - /* } */ case 157: - /* */ if (!(check[0].Info.Types === false) && !((x[0].mode === 4))) { $s = 162; continue; } - /* */ $s = 163; continue; - /* if (!(check[0].Info.Types === false) && !((x[0].mode === 4))) { */ case 162: - _arg$8 = call.Fun; - _r$33 = makeSig(resTyp, new sliceType$3([x[0].typ, x[0].typ])); /* */ $s = 164; case 164: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } - _arg$9 = _r$33; - $r = check[0].recordBuiltinType(_arg$8, _arg$9); /* */ $s = 165; case 165: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 163: - x[0].typ = resTyp; - $s = 44; continue; - /* } else if (_2 === (5)) { */ case 25: - _r$34 = coreType(x[0].typ); /* */ $s = 166; case 166: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } - _tuple$3 = $assertType(_r$34, ptrType$25, true); - dst = _tuple$3[0]; - y$1[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = arg(y$1[0], 1); /* */ $s = 167; case 167: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (y$1[0].mode === 0) { - $s = -1; return _; - } - _r$35 = coreString(y$1[0].typ); /* */ $s = 168; case 168: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } - src0 = _r$35; - if (!(!($interfaceIsEqual(src0, $ifaceNil)))) { _v$2 = false; $s = 171; continue s; } - _r$36 = isString(src0); /* */ $s = 172; case 172: if($c) { $c = false; _r$36 = _r$36.$blk(); } if (_r$36 && _r$36.$blk !== undefined) { break s; } - _v$2 = _r$36; case 171: - /* */ if (_v$2) { $s = 169; continue; } - /* */ $s = 170; continue; - /* if (_v$2) { */ case 169: - src0 = NewSlice(universeByte); - /* } */ case 170: - _tuple$4 = $assertType(src0, ptrType$25, true); - src = _tuple$4[0]; - /* */ if (dst === ptrType$25.nil || src === ptrType$25.nil) { $s = 173; continue; } - /* */ $s = 174; continue; - /* if (dst === ptrType$25.nil || src === ptrType$25.nil) { */ case 173: - $r = check[0].errorf(x[0], 86, "invalid argument: copy expects slice arguments; found %s and %s", new sliceType$6([x[0], y$1[0]])); /* */ $s = 175; case 175: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 174: - _r$37 = Identical(dst.elem, src.elem); /* */ $s = 178; case 178: if($c) { $c = false; _r$37 = _r$37.$blk(); } if (_r$37 && _r$37.$blk !== undefined) { break s; } - /* */ if (!_r$37) { $s = 176; continue; } - /* */ $s = 177; continue; - /* if (!_r$37) { */ case 176: - $r = check[0].errorf(x[0], 86, "arguments to copy %s and %s have different element types %s and %s", new sliceType$6([x[0], y$1[0], dst.elem, src.elem])); /* */ $s = 179; case 179: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 177: - /* */ if (!(check[0].Info.Types === false)) { $s = 180; continue; } - /* */ $s = 181; continue; - /* if (!(check[0].Info.Types === false)) { */ case 180: - _arg$10 = call.Fun; - _r$38 = makeSig((2 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 2]), new sliceType$3([x[0].typ, y$1[0].typ])); /* */ $s = 182; case 182: if($c) { $c = false; _r$38 = _r$38.$blk(); } if (_r$38 && _r$38.$blk !== undefined) { break s; } - _arg$11 = _r$38; - $r = check[0].recordBuiltinType(_arg$10, _arg$11); /* */ $s = 183; case 183: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 181: - x[0].mode = 7; - x[0].typ = (2 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 2]); - $s = 44; continue; - /* } else if (_2 === (6)) { */ case 26: - map_ = x[0].typ; - key[0] = $ifaceNil; - _r$39 = underIs(map_, (function(check, id, key, t, x, xlist, y, y$1, y$2, y$3, y$4) { return function Checker·builtin·func8(u$1) { - var {_r$39, _tuple$5, _v$3, map_$1, u$1, $s, $r, $c} = $restore(this, {u$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _tuple$5 = $assertType(u$1, ptrType$28, true); - map_$1 = _tuple$5[0]; - /* */ if (map_$1 === ptrType$28.nil) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (map_$1 === ptrType$28.nil) { */ case 1: - $r = check[0].errorf(x[0], 88, "invalid argument: %s is not a map", new sliceType$6([x[0]])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return false; - /* } */ case 2: - if (!(!($interfaceIsEqual(key[0], $ifaceNil)))) { _v$3 = false; $s = 6; continue s; } - _r$39 = Identical(map_$1.key, key[0]); /* */ $s = 7; case 7: if($c) { $c = false; _r$39 = _r$39.$blk(); } if (_r$39 && _r$39.$blk !== undefined) { break s; } - _v$3 = !_r$39; case 6: - /* */ if (_v$3) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_v$3) { */ case 4: - $r = check[0].errorf(x[0], 88, "invalid argument: maps of %s must have identical key types", new sliceType$6([x[0]])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return false; - /* } */ case 5: - key[0] = map_$1.key; - $s = -1; return true; - /* */ } return; } var $f = {$blk: Checker·builtin·func8, $c: true, $r, _r$39, _tuple$5, _v$3, map_$1, u$1, $s};return $f; - }; })(check, id, key, t, x, xlist, y, y$1, y$2, y$3, y$4)); /* */ $s = 186; case 186: if($c) { $c = false; _r$39 = _r$39.$blk(); } if (_r$39 && _r$39.$blk !== undefined) { break s; } - /* */ if (!_r$39) { $s = 184; continue; } - /* */ $s = 185; continue; - /* if (!_r$39) { */ case 184: - $s = -1; return _; - /* } */ case 185: - $r = arg(x[0], 1); /* */ $s = 187; case 187: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x[0].mode === 0) { - $s = -1; return _; - } - $r = check[0].assignment(x[0], key[0], "argument to delete"); /* */ $s = 188; case 188: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x[0].mode === 0) { - $s = -1; return _; - } - x[0].mode = 1; - /* */ if (!(check[0].Info.Types === false)) { $s = 189; continue; } - /* */ $s = 190; continue; - /* if (!(check[0].Info.Types === false)) { */ case 189: - _arg$12 = call.Fun; - _r$40 = makeSig($ifaceNil, new sliceType$3([map_, key[0]])); /* */ $s = 191; case 191: if($c) { $c = false; _r$40 = _r$40.$blk(); } if (_r$40 && _r$40.$blk !== undefined) { break s; } - _arg$13 = _r$40; - $r = check[0].recordBuiltinType(_arg$12, _arg$13); /* */ $s = 192; case 192: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 190: - $s = 44; continue; - /* } else if ((_2 === (7)) || (_2 === (14))) { */ case 27: - /* */ if (isUntyped(x[0].typ)) { $s = 193; continue; } - /* */ $s = 194; continue; - /* if (isUntyped(x[0].typ)) { */ case 193: - /* */ if (x[0].mode === 4) { $s = 195; continue; } - /* */ $s = 196; continue; - /* if (x[0].mode === 4) { */ case 195: - _r$41 = isNumeric(x[0].typ); /* */ $s = 200; case 200: if($c) { $c = false; _r$41 = _r$41.$blk(); } if (_r$41 && _r$41.$blk !== undefined) { break s; } - /* */ if (_r$41) { $s = 198; continue; } - /* */ $s = 199; continue; - /* if (_r$41) { */ case 198: - x[0].typ = (23 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 23]); - /* } */ case 199: - $s = 197; continue; - /* } else { */ case 196: - $r = check[0].convertUntyped(x[0], (16 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 16])); /* */ $s = 201; case 201: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x[0].mode === 0) { - $s = -1; return _; + inst.Inst.Op = 7; + $s = 10; continue; + /* } else if (_1 === (8)) { */ case 7: + ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = false); + if (inst.Next.$length > 0) { + /* break; */ $s = 1; continue; } - /* } */ case 197: - /* } */ case 194: - f$1 = (function(check, id, key, t, x, xlist, y, y$1, y$2, y$3, y$4) { return function Checker·builtin·func9(typ$4) { - var {_5, _r$42, _tuple$5, t$7, typ$4, $s, $r, $c} = $restore(this, {typ$4}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - $r = assert(!isTypeParam(typ$4)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$42 = under(typ$4); /* */ $s = 2; case 2: if($c) { $c = false; _r$42 = _r$42.$blk(); } if (_r$42 && _r$42.$blk !== undefined) { break s; } - _tuple$5 = $assertType(_r$42, ptrType$4, true); - t$7 = _tuple$5[0]; - if (!(t$7 === ptrType$4.nil)) { - _5 = t$7.kind; - if (_5 === (15)) { - $s = -1; return (13 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 13]); - } else if (_5 === (16)) { - $s = -1; return (14 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 14]); - } else if (_5 === (23)) { - $s = -1; return (22 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 22]); + instQueue[0].insert(inst.Inst.Out); + runes$1 = new sliceType$1([]); + /* */ if (!((((((inst.Inst.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (!((((((inst.Inst.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { */ case 21: + r0$1 = (x$14 = inst.Inst.Rune, (0 >= x$14.$length ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + 0])); + runes$1 = $append(runes$1, r0$1, r0$1); + r1$1 = unicode.SimpleFold(r0$1); + while (true) { + if (!(!((r1$1 === r0$1)))) { break; } + runes$1 = $append(runes$1, r1$1, r1$1); + r1$1 = unicode.SimpleFold(r1$1); } + $r = sort.Sort(($convertSliceType(runes$1, runeSlice))); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 23; continue; + /* } else { */ case 22: + runes$1 = $append(runes$1, (x$15 = inst.Inst.Rune, (0 >= x$15.$length ? ($throwRuntimeError("index out of range"), undefined) : x$15.$array[x$15.$offset + 0])), (x$16 = inst.Inst.Rune, (0 >= x$16.$length ? ($throwRuntimeError("index out of range"), undefined) : x$16.$array[x$16.$offset + 0]))); + /* } */ case 23: + ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = runes$1); + inst.Next = $makeSlice(sliceType$2, ((_q$3 = ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc]).$length / 2, (_q$3 === _q$3 && _q$3 !== 1/0 && _q$3 !== -1/0) ? _q$3 >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0)); + _ref$3 = inst.Next; + _i$3 = 0; + while (true) { + if (!(_i$3 < _ref$3.$length)) { break; } + i$3 = _i$3; + (x$17 = inst.Next, ((i$3 < 0 || i$3 >= x$17.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$17.$array[x$17.$offset + i$3] = inst.Inst.Out)); + _i$3++; } - $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: Checker·builtin·func9, $c: true, $r, _5, _r$42, _tuple$5, t$7, typ$4, $s};return $f; - }; })(check, id, key, t, x, xlist, y, y$1, y$2, y$3, y$4); - _r$42 = check[0].applyTypeFunc(f$1, x[0], id[0]); /* */ $s = 202; case 202: if($c) { $c = false; _r$42 = _r$42.$blk(); } if (_r$42 && _r$42.$blk !== undefined) { break s; } - resTyp$1 = _r$42; - /* */ if ($interfaceIsEqual(resTyp$1, $ifaceNil)) { $s = 203; continue; } - /* */ $s = 204; continue; - /* if ($interfaceIsEqual(resTyp$1, $ifaceNil)) { */ case 203: - code$1 = 89; - if (id[0] === 14) { - code$1 = 93; - } - $r = check[0].errorf(x[0], code$1, "invalid argument: argument has type %s, expected complex type", new sliceType$6([x[0].typ])); /* */ $s = 205; case 205: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 204: - /* */ if (x[0].mode === 4) { $s = 206; continue; } - /* */ $s = 207; continue; - /* if (x[0].mode === 4) { */ case 206: - /* */ if (id[0] === 14) { $s = 209; continue; } - /* */ $s = 210; continue; - /* if (id[0] === 14) { */ case 209: - _r$43 = constant.Real(x[0].val); /* */ $s = 212; case 212: if($c) { $c = false; _r$43 = _r$43.$blk(); } if (_r$43 && _r$43.$blk !== undefined) { break s; } - x[0].val = _r$43; - $s = 211; continue; - /* } else { */ case 210: - _r$44 = constant.Imag(x[0].val); /* */ $s = 213; case 213: if($c) { $c = false; _r$44 = _r$44.$blk(); } if (_r$44 && _r$44.$blk !== undefined) { break s; } - x[0].val = _r$44; - /* } */ case 211: - $s = 208; continue; - /* } else { */ case 207: - x[0].mode = 7; - /* } */ case 208: - /* */ if (!(check[0].Info.Types === false) && !((x[0].mode === 4))) { $s = 214; continue; } - /* */ $s = 215; continue; - /* if (!(check[0].Info.Types === false) && !((x[0].mode === 4))) { */ case 214: - _arg$14 = call.Fun; - _r$45 = makeSig(resTyp$1, new sliceType$3([x[0].typ])); /* */ $s = 216; case 216: if($c) { $c = false; _r$45 = _r$45.$blk(); } if (_r$45 && _r$45.$blk !== undefined) { break s; } - _arg$15 = _r$45; - $r = check[0].recordBuiltinType(_arg$14, _arg$15); /* */ $s = 217; case 217: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 215: - x[0].typ = resTyp$1; - $s = 44; continue; - /* } else if (_2 === (9)) { */ case 28: - arg0 = (x$4 = call.Args, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])); - _r$46 = check[0].varType(arg0); /* */ $s = 218; case 218: if($c) { $c = false; _r$46 = _r$46.$blk(); } if (_r$46 && _r$46.$blk !== undefined) { break s; } - T$1 = _r$46; - if ($interfaceIsEqual(T$1, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { - $s = -1; return _; - } - min = 0; - _r$47 = coreType(T$1); /* */ $s = 219; case 219: if($c) { $c = false; _r$47 = _r$47.$blk(); } if (_r$47 && _r$47.$blk !== undefined) { break s; } - _ref$2 = _r$47; - /* */ if ($assertType(_ref$2, ptrType$25, true)[1]) { $s = 220; continue; } - /* */ if ($assertType(_ref$2, ptrType$28, true)[1] || $assertType(_ref$2, ptrType$29, true)[1]) { $s = 221; continue; } - /* */ if (_ref$2 === $ifaceNil) { $s = 222; continue; } - /* */ $s = 223; continue; - /* if ($assertType(_ref$2, ptrType$25, true)[1]) { */ case 220: - min = 2; - $s = 224; continue; - /* } else if ($assertType(_ref$2, ptrType$28, true)[1] || $assertType(_ref$2, ptrType$29, true)[1]) { */ case 221: - min = 1; - $s = 224; continue; - /* } else if (_ref$2 === $ifaceNil) { */ case 222: - $r = check[0].errorf(arg0, 92, "cannot make %s: no core type", new sliceType$6([arg0])); /* */ $s = 225; case 225: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } else { */ case 223: - $r = check[0].errorf(arg0, 92, "invalid argument: cannot make %s; type must be slice, map, or channel", new sliceType$6([arg0])); /* */ $s = 226; case 226: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 224: - /* */ if (nargs < min || (min + 1 >> 0) < nargs) { $s = 227; continue; } - /* */ $s = 228; continue; - /* if (nargs < min || (min + 1 >> 0) < nargs) { */ case 227: - $r = check[0].errorf(call, 126, "invalid operation: %v expects %d or %d arguments; found %d", new sliceType$6([call, new $Int(min), new $Int((min + 1 >> 0)), new $Int(nargs)])); /* */ $s = 229; case 229: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 228: - types$1 = new sliceType$3([T$1]); - sizes = sliceType$19.nil; - _ref$3 = $subslice(call.Args, 1); - _i$1 = 0; - /* while (true) { */ case 230: - /* if (!(_i$1 < _ref$3.$length)) { break; } */ if(!(_i$1 < _ref$3.$length)) { $s = 231; continue; } - arg$1 = ((_i$1 < 0 || _i$1 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$1]); - _r$48 = check[0].index(arg$1, new $Int64(-1, 4294967295)); /* */ $s = 232; case 232: if($c) { $c = false; _r$48 = _r$48.$blk(); } if (_r$48 && _r$48.$blk !== undefined) { break s; } - _tuple$5 = _r$48; - typ$4 = _tuple$5[0]; - size = _tuple$5[1]; - types$1 = $append(types$1, typ$4); - if ((size.$high > 0 || (size.$high === 0 && size.$low >= 0))) { - sizes = $append(sizes, size); - } - _i$1++; - $s = 230; continue; - case 231: - /* */ if ((sizes.$length === 2) && (x$5 = (0 >= sizes.$length ? ($throwRuntimeError("index out of range"), undefined) : sizes.$array[sizes.$offset + 0]), x$6 = (1 >= sizes.$length ? ($throwRuntimeError("index out of range"), undefined) : sizes.$array[sizes.$offset + 1]), (x$5.$high > x$6.$high || (x$5.$high === x$6.$high && x$5.$low > x$6.$low)))) { $s = 233; continue; } - /* */ $s = 234; continue; - /* if ((sizes.$length === 2) && (x$5 = (0 >= sizes.$length ? ($throwRuntimeError("index out of range"), undefined) : sizes.$array[sizes.$offset + 0]), x$6 = (1 >= sizes.$length ? ($throwRuntimeError("index out of range"), undefined) : sizes.$array[sizes.$offset + 1]), (x$5.$high > x$6.$high || (x$5.$high === x$6.$high && x$5.$low > x$6.$low)))) { */ case 233: - $r = check[0].error((x$7 = call.Args, (1 >= x$7.$length ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + 1])), 91, "invalid argument: length and capacity swapped"); /* */ $s = 235; case 235: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 234: - x[0].mode = 7; - x[0].typ = T$1; - /* */ if (!(check[0].Info.Types === false)) { $s = 236; continue; } - /* */ $s = 237; continue; - /* if (!(check[0].Info.Types === false)) { */ case 236: - _arg$16 = call.Fun; - _r$49 = makeSig(x[0].typ, types$1); /* */ $s = 238; case 238: if($c) { $c = false; _r$49 = _r$49.$blk(); } if (_r$49 && _r$49.$blk !== undefined) { break s; } - _arg$17 = _r$49; - $r = check[0].recordBuiltinType(_arg$16, _arg$17); /* */ $s = 239; case 239: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 237: - $s = 44; continue; - /* } else if (_2 === (10)) { */ case 29: - _r$50 = check[0].varType((x$8 = call.Args, (0 >= x$8.$length ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + 0]))); /* */ $s = 240; case 240: if($c) { $c = false; _r$50 = _r$50.$blk(); } if (_r$50 && _r$50.$blk !== undefined) { break s; } - T$2 = _r$50; - if ($interfaceIsEqual(T$2, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { - $s = -1; return _; - } - x[0].mode = 7; - x[0].typ = new Pointer.ptr(T$2); - /* */ if (!(check[0].Info.Types === false)) { $s = 241; continue; } - /* */ $s = 242; continue; - /* if (!(check[0].Info.Types === false)) { */ case 241: - _arg$18 = call.Fun; - _r$51 = makeSig(x[0].typ, new sliceType$3([T$2])); /* */ $s = 243; case 243: if($c) { $c = false; _r$51 = _r$51.$blk(); } if (_r$51 && _r$51.$blk !== undefined) { break s; } - _arg$19 = _r$51; - $r = check[0].recordBuiltinType(_arg$18, _arg$19); /* */ $s = 244; case 244: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 242: - $s = 44; continue; - /* } else if (_2 === (11)) { */ case 30: - if (!(check[0].environment.sig === ptrType$27.nil) && check[0].environment.sig.results.Len() > 0) { - p = check[0].environment.isPanic; - if (p === false) { - p = new $global.Map(); - check[0].environment.isPanic = p; - } - _key = call; (p || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$86.keyFor(_key), { k: _key, v: true }); - } - $r = check[0].assignment(x[0], emptyInterface, "argument to panic"); /* */ $s = 245; case 245: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x[0].mode === 0) { - $s = -1; return _; - } - x[0].mode = 1; - /* */ if (!(check[0].Info.Types === false)) { $s = 246; continue; } - /* */ $s = 247; continue; - /* if (!(check[0].Info.Types === false)) { */ case 246: - _arg$20 = call.Fun; - _r$52 = makeSig($ifaceNil, new sliceType$3([emptyInterface])); /* */ $s = 248; case 248: if($c) { $c = false; _r$52 = _r$52.$blk(); } if (_r$52 && _r$52.$blk !== undefined) { break s; } - _arg$21 = _r$52; - $r = check[0].recordBuiltinType(_arg$20, _arg$21); /* */ $s = 249; case 249: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 247: - $s = 44; continue; - /* } else if ((_2 === (12)) || (_2 === (13))) { */ case 31: - params = sliceType$3.nil; - /* */ if (nargs > 0) { $s = 250; continue; } - /* */ $s = 251; continue; - /* if (nargs > 0) { */ case 250: - params = $makeSlice(sliceType$3, nargs); - i$2 = 0; - /* while (true) { */ case 252: - /* if (!(i$2 < nargs)) { break; } */ if(!(i$2 < nargs)) { $s = 253; continue; } - /* */ if (i$2 > 0) { $s = 254; continue; } - /* */ $s = 255; continue; - /* if (i$2 > 0) { */ case 254: - $r = arg(x[0], i$2); /* */ $s = 256; case 256: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 255: - $r = check[0].assignment(x[0], $ifaceNil, "argument to " + ((id[0] < 0 || id[0] >= predeclaredFuncs.length) ? ($throwRuntimeError("index out of range"), undefined) : predeclaredFuncs[id[0]]).name); /* */ $s = 257; case 257: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x[0].mode === 0) { - $s = -1; return _; + inst.Inst.Op = 7; + $s = 10; continue; + /* } else if (_1 === (9)) { */ case 8: + ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = false); + if (inst.Next.$length > 0) { + /* break; */ $s = 1; continue; } - ((i$2 < 0 || i$2 >= params.$length) ? ($throwRuntimeError("index out of range"), undefined) : params.$array[params.$offset + i$2] = x[0].typ); - i$2 = i$2 + (1) >> 0; - $s = 252; continue; - case 253: - /* } */ case 251: - x[0].mode = 1; - /* */ if (!(check[0].Info.Types === false)) { $s = 258; continue; } - /* */ $s = 259; continue; - /* if (!(check[0].Info.Types === false)) { */ case 258: - _arg$22 = call.Fun; - _r$53 = makeSig($ifaceNil, params); /* */ $s = 260; case 260: if($c) { $c = false; _r$53 = _r$53.$blk(); } if (_r$53 && _r$53.$blk !== undefined) { break s; } - _arg$23 = _r$53; - $r = check[0].recordBuiltinType(_arg$22, _arg$23); /* */ $s = 261; case 261: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 259: - $s = 44; continue; - /* } else if (_2 === (15)) { */ case 32: - x[0].mode = 7; - x[0].typ = emptyInterface; - /* */ if (!(check[0].Info.Types === false)) { $s = 262; continue; } - /* */ $s = 263; continue; - /* if (!(check[0].Info.Types === false)) { */ case 262: - _arg$24 = call.Fun; - _r$54 = makeSig(x[0].typ, sliceType$3.nil); /* */ $s = 264; case 264: if($c) { $c = false; _r$54 = _r$54.$blk(); } if (_r$54 && _r$54.$blk !== undefined) { break s; } - _arg$25 = _r$54; - $r = check[0].recordBuiltinType(_arg$24, _arg$25); /* */ $s = 265; case 265: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 263: - $s = 44; continue; - /* } else if (_2 === (16)) { */ case 33: - /* */ if (!check[0].allowVersion(check[0].pkg, 1, 17)) { $s = 266; continue; } - /* */ $s = 267; continue; - /* if (!check[0].allowVersion(check[0].pkg, 1, 17)) { */ case 266: - $r = check[0].error(call.Fun, 135, "unsafe.Add requires go1.17 or later"); /* */ $s = 268; case 268: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 267: - $r = check[0].assignment(x[0], (18 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 18]), "argument to unsafe.Add"); /* */ $s = 269; case 269: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x[0].mode === 0) { - $s = -1; return _; - } - y$2[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = arg(y$2[0], 1); /* */ $s = 270; case 270: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$55 = check[0].isValidIndex(y$2[0], 133, "length", true); /* */ $s = 273; case 273: if($c) { $c = false; _r$55 = _r$55.$blk(); } if (_r$55 && _r$55.$blk !== undefined) { break s; } - /* */ if (!_r$55) { $s = 271; continue; } - /* */ $s = 272; continue; - /* if (!_r$55) { */ case 271: - $s = -1; return _; - /* } */ case 272: - x[0].mode = 7; - x[0].typ = (18 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 18]); - /* */ if (!(check[0].Info.Types === false)) { $s = 274; continue; } - /* */ $s = 275; continue; - /* if (!(check[0].Info.Types === false)) { */ case 274: - _arg$26 = call.Fun; - _r$56 = makeSig(x[0].typ, new sliceType$3([x[0].typ, y$2[0].typ])); /* */ $s = 276; case 276: if($c) { $c = false; _r$56 = _r$56.$blk(); } if (_r$56 && _r$56.$blk !== undefined) { break s; } - _arg$27 = _r$56; - $r = check[0].recordBuiltinType(_arg$26, _arg$27); /* */ $s = 277; case 277: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 275: - $s = 44; continue; - /* } else if (_2 === (17)) { */ case 34: - $r = check[0].assignment(x[0], $ifaceNil, "argument to unsafe.Alignof"); /* */ $s = 278; case 278: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x[0].mode === 0) { - $s = -1; return _; - } - _r$57 = hasVarSize(x[0].typ, false); /* */ $s = 282; case 282: if($c) { $c = false; _r$57 = _r$57.$blk(); } if (_r$57 && _r$57.$blk !== undefined) { break s; } - /* */ if (_r$57) { $s = 279; continue; } - /* */ $s = 280; continue; - /* if (_r$57) { */ case 279: - x[0].mode = 7; - /* */ if (!(check[0].Info.Types === false)) { $s = 283; continue; } - /* */ $s = 284; continue; - /* if (!(check[0].Info.Types === false)) { */ case 283: - _arg$28 = call.Fun; - _r$58 = makeSig((12 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 12]), new sliceType$3([x[0].typ])); /* */ $s = 285; case 285: if($c) { $c = false; _r$58 = _r$58.$blk(); } if (_r$58 && _r$58.$blk !== undefined) { break s; } - _arg$29 = _r$58; - $r = check[0].recordBuiltinType(_arg$28, _arg$29); /* */ $s = 286; case 286: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 284: - $s = 281; continue; - /* } else { */ case 280: - x[0].mode = 4; - _r$59 = check[0].conf.alignof(x[0].typ); /* */ $s = 287; case 287: if($c) { $c = false; _r$59 = _r$59.$blk(); } if (_r$59 && _r$59.$blk !== undefined) { break s; } - _r$60 = constant.MakeInt64(_r$59); /* */ $s = 288; case 288: if($c) { $c = false; _r$60 = _r$60.$blk(); } if (_r$60 && _r$60.$blk !== undefined) { break s; } - x[0].val = _r$60; - /* } */ case 281: - x[0].typ = (12 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 12]); - $s = 44; continue; - /* } else if (_2 === (18)) { */ case 35: - arg0$1 = (x$9 = call.Args, (0 >= x$9.$length ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + 0])); - _tuple$6 = $assertType(unparen(arg0$1), ptrType$36, true); - selx = _tuple$6[0]; - /* */ if (selx === ptrType$36.nil) { $s = 289; continue; } - /* */ $s = 290; continue; - /* if (selx === ptrType$36.nil) { */ case 289: - $r = check[0].errorf(arg0$1, 98, "invalid argument: %s is not a selector expression", new sliceType$6([arg0$1])); /* */ $s = 291; case 291: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check[0].use(new sliceType$11([arg0$1])); /* */ $s = 292; case 292: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 290: - $r = check[0].expr(x[0], selx.X); /* */ $s = 293; case 293: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x[0].mode === 0) { - $s = -1; return _; - } - _r$61 = derefStructPtr(x[0].typ); /* */ $s = 294; case 294: if($c) { $c = false; _r$61 = _r$61.$blk(); } if (_r$61 && _r$61.$blk !== undefined) { break s; } - base = _r$61; - sel = selx.Sel.Name; - _r$62 = LookupFieldOrMethod(base, false, check[0].pkg, sel); /* */ $s = 295; case 295: if($c) { $c = false; _r$62 = _r$62.$blk(); } if (_r$62 && _r$62.$blk !== undefined) { break s; } - _tuple$7 = _r$62; - obj = _tuple$7[0]; - index$2 = _tuple$7[1]; - indirect = _tuple$7[2]; - _ref$4 = obj; - /* */ if (_ref$4 === $ifaceNil) { $s = 296; continue; } - /* */ if ($assertType(_ref$4, ptrType$2, true)[1]) { $s = 297; continue; } - /* */ $s = 298; continue; - /* if (_ref$4 === $ifaceNil) { */ case 296: - $r = check[0].errorf(x[0], 76, "invalid argument: %s has no single field %s", new sliceType$6([base, new $String(sel)])); /* */ $s = 299; case 299: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } else if ($assertType(_ref$4, ptrType$2, true)[1]) { */ case 297: - $r = check[0].errorf(arg0$1, 99, "invalid argument: %s is a method value", new sliceType$6([arg0$1])); /* */ $s = 300; case 300: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 298: - /* */ if (indirect) { $s = 301; continue; } - /* */ $s = 302; continue; - /* if (indirect) { */ case 301: - $r = check[0].errorf(x[0], 99, "invalid argument: field %s is embedded via a pointer in %s", new sliceType$6([new $String(sel), base])); /* */ $s = 303; case 303: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 302: - $r = check[0].recordSelection(selx, 0, base, obj, index$2, false); /* */ $s = 304; case 304: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - mode$1 = 7; - if ((x[0].mode === 5) || indirect) { - mode$1 = 5; - } - _r$63 = obj.Type(); /* */ $s = 305; case 305: if($c) { $c = false; _r$63 = _r$63.$blk(); } if (_r$63 && _r$63.$blk !== undefined) { break s; } - $r = check[0].record(new operand.ptr(mode$1, selx, _r$63, $ifaceNil, 0)); /* */ $s = 306; case 306: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$64 = hasVarSize(base, false); /* */ $s = 310; case 310: if($c) { $c = false; _r$64 = _r$64.$blk(); } if (_r$64 && _r$64.$blk !== undefined) { break s; } - /* */ if (_r$64) { $s = 307; continue; } - /* */ $s = 308; continue; - /* if (_r$64) { */ case 307: - x[0].mode = 7; - /* */ if (!(check[0].Info.Types === false)) { $s = 311; continue; } - /* */ $s = 312; continue; - /* if (!(check[0].Info.Types === false)) { */ case 311: - _arg$30 = call.Fun; - _arg$31 = (12 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 12]); - _r$65 = obj.Type(); /* */ $s = 313; case 313: if($c) { $c = false; _r$65 = _r$65.$blk(); } if (_r$65 && _r$65.$blk !== undefined) { break s; } - _arg$32 = _r$65; - _r$66 = makeSig(_arg$31, new sliceType$3([_arg$32])); /* */ $s = 314; case 314: if($c) { $c = false; _r$66 = _r$66.$blk(); } if (_r$66 && _r$66.$blk !== undefined) { break s; } - _arg$33 = _r$66; - $r = check[0].recordBuiltinType(_arg$30, _arg$33); /* */ $s = 315; case 315: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 312: - $s = 309; continue; - /* } else { */ case 308: - x[0].mode = 4; - _r$67 = check[0].conf.offsetof(base, index$2); /* */ $s = 316; case 316: if($c) { $c = false; _r$67 = _r$67.$blk(); } if (_r$67 && _r$67.$blk !== undefined) { break s; } - _r$68 = constant.MakeInt64(_r$67); /* */ $s = 317; case 317: if($c) { $c = false; _r$68 = _r$68.$blk(); } if (_r$68 && _r$68.$blk !== undefined) { break s; } - x[0].val = _r$68; - /* } */ case 309: - x[0].typ = (12 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 12]); - $s = 44; continue; - /* } else if (_2 === (19)) { */ case 36: - $r = check[0].assignment(x[0], $ifaceNil, "argument to unsafe.Sizeof"); /* */ $s = 318; case 318: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x[0].mode === 0) { - $s = -1; return _; - } - _r$69 = hasVarSize(x[0].typ, false); /* */ $s = 322; case 322: if($c) { $c = false; _r$69 = _r$69.$blk(); } if (_r$69 && _r$69.$blk !== undefined) { break s; } - /* */ if (_r$69) { $s = 319; continue; } - /* */ $s = 320; continue; - /* if (_r$69) { */ case 319: - x[0].mode = 7; - /* */ if (!(check[0].Info.Types === false)) { $s = 323; continue; } - /* */ $s = 324; continue; - /* if (!(check[0].Info.Types === false)) { */ case 323: - _arg$34 = call.Fun; - _r$70 = makeSig((12 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 12]), new sliceType$3([x[0].typ])); /* */ $s = 325; case 325: if($c) { $c = false; _r$70 = _r$70.$blk(); } if (_r$70 && _r$70.$blk !== undefined) { break s; } - _arg$35 = _r$70; - $r = check[0].recordBuiltinType(_arg$34, _arg$35); /* */ $s = 326; case 326: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 324: - $s = 321; continue; - /* } else { */ case 320: - x[0].mode = 4; - _r$71 = check[0].conf.sizeof(x[0].typ); /* */ $s = 327; case 327: if($c) { $c = false; _r$71 = _r$71.$blk(); } if (_r$71 && _r$71.$blk !== undefined) { break s; } - _r$72 = constant.MakeInt64(_r$71); /* */ $s = 328; case 328: if($c) { $c = false; _r$72 = _r$72.$blk(); } if (_r$72 && _r$72.$blk !== undefined) { break s; } - x[0].val = _r$72; - /* } */ case 321: - x[0].typ = (12 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 12]); - $s = 44; continue; - /* } else if (_2 === (20)) { */ case 37: - /* */ if (!check[0].allowVersion(check[0].pkg, 1, 17)) { $s = 329; continue; } - /* */ $s = 330; continue; - /* if (!check[0].allowVersion(check[0].pkg, 1, 17)) { */ case 329: - $r = check[0].error(call.Fun, 135, "unsafe.Slice requires go1.17 or later"); /* */ $s = 331; case 331: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 330: - _r$73 = under(x[0].typ); /* */ $s = 332; case 332: if($c) { $c = false; _r$73 = _r$73.$blk(); } if (_r$73 && _r$73.$blk !== undefined) { break s; } - _tuple$8 = $assertType(_r$73, ptrType$26, true); - ptr = _tuple$8[0]; - /* */ if (ptr === ptrType$26.nil) { $s = 333; continue; } - /* */ $s = 334; continue; - /* if (ptr === ptrType$26.nil) { */ case 333: - $r = check[0].errorf(x[0], 134, "invalid argument: %s is not a pointer", new sliceType$6([x[0]])); /* */ $s = 335; case 335: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 334: - y$3[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = arg(y$3[0], 1); /* */ $s = 336; case 336: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$74 = check[0].isValidIndex(y$3[0], 134, "length", false); /* */ $s = 339; case 339: if($c) { $c = false; _r$74 = _r$74.$blk(); } if (_r$74 && _r$74.$blk !== undefined) { break s; } - /* */ if (!_r$74) { $s = 337; continue; } - /* */ $s = 338; continue; - /* if (!_r$74) { */ case 337: - $s = -1; return _; - /* } */ case 338: - x[0].mode = 7; - x[0].typ = NewSlice(ptr.base); - /* */ if (!(check[0].Info.Types === false)) { $s = 340; continue; } - /* */ $s = 341; continue; - /* if (!(check[0].Info.Types === false)) { */ case 340: - _arg$36 = call.Fun; - _r$75 = makeSig(x[0].typ, new sliceType$3([ptr, y$3[0].typ])); /* */ $s = 342; case 342: if($c) { $c = false; _r$75 = _r$75.$blk(); } if (_r$75 && _r$75.$blk !== undefined) { break s; } - _arg$37 = _r$75; - $r = check[0].recordBuiltinType(_arg$36, _arg$37); /* */ $s = 343; case 343: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 341: - $s = 44; continue; - /* } else if (_2 === (21)) { */ case 38: - /* */ if (!check[0].allowVersion(check[0].pkg, 1, 20)) { $s = 344; continue; } - /* */ $s = 345; continue; - /* if (!check[0].allowVersion(check[0].pkg, 1, 20)) { */ case 344: - $r = check[0].error(call.Fun, 135, "unsafe.SliceData requires go1.20 or later"); /* */ $s = 346; case 346: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 345: - _r$76 = under(x[0].typ); /* */ $s = 347; case 347: if($c) { $c = false; _r$76 = _r$76.$blk(); } if (_r$76 && _r$76.$blk !== undefined) { break s; } - _tuple$9 = $assertType(_r$76, ptrType$25, true); - slice = _tuple$9[0]; - /* */ if (slice === ptrType$25.nil) { $s = 348; continue; } - /* */ $s = 349; continue; - /* if (slice === ptrType$25.nil) { */ case 348: - $r = check[0].errorf(x[0], 145, "invalid argument: %s is not a slice", new sliceType$6([x[0]])); /* */ $s = 350; case 350: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 349: - x[0].mode = 7; - x[0].typ = NewPointer(slice.elem); - /* */ if (!(check[0].Info.Types === false)) { $s = 351; continue; } - /* */ $s = 352; continue; - /* if (!(check[0].Info.Types === false)) { */ case 351: - _arg$38 = call.Fun; - _r$77 = makeSig(x[0].typ, new sliceType$3([slice])); /* */ $s = 353; case 353: if($c) { $c = false; _r$77 = _r$77.$blk(); } if (_r$77 && _r$77.$blk !== undefined) { break s; } - _arg$39 = _r$77; - $r = check[0].recordBuiltinType(_arg$38, _arg$39); /* */ $s = 354; case 354: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 352: - $s = 44; continue; - /* } else if (_2 === (22)) { */ case 39: - /* */ if (!check[0].allowVersion(check[0].pkg, 1, 20)) { $s = 355; continue; } - /* */ $s = 356; continue; - /* if (!check[0].allowVersion(check[0].pkg, 1, 20)) { */ case 355: - $r = check[0].error(call.Fun, 135, "unsafe.String requires go1.20 or later"); /* */ $s = 357; case 357: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 356: - $r = check[0].assignment(x[0], NewPointer(universeByte), "argument to unsafe.String"); /* */ $s = 358; case 358: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x[0].mode === 0) { - $s = -1; return _; - } - y$4[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = arg(y$4[0], 1); /* */ $s = 359; case 359: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$78 = check[0].isValidIndex(y$4[0], 146, "length", false); /* */ $s = 362; case 362: if($c) { $c = false; _r$78 = _r$78.$blk(); } if (_r$78 && _r$78.$blk !== undefined) { break s; } - /* */ if (!_r$78) { $s = 360; continue; } - /* */ $s = 361; continue; - /* if (!_r$78) { */ case 360: - $s = -1; return _; - /* } */ case 361: - x[0].mode = 7; - x[0].typ = (17 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 17]); - /* */ if (!(check[0].Info.Types === false)) { $s = 363; continue; } - /* */ $s = 364; continue; - /* if (!(check[0].Info.Types === false)) { */ case 363: - _arg$40 = call.Fun; - _r$79 = makeSig(x[0].typ, new sliceType$3([NewPointer(universeByte), y$4[0].typ])); /* */ $s = 365; case 365: if($c) { $c = false; _r$79 = _r$79.$blk(); } if (_r$79 && _r$79.$blk !== undefined) { break s; } - _arg$41 = _r$79; - $r = check[0].recordBuiltinType(_arg$40, _arg$41); /* */ $s = 366; case 366: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 364: - $s = 44; continue; - /* } else if (_2 === (23)) { */ case 40: - /* */ if (!check[0].allowVersion(check[0].pkg, 1, 20)) { $s = 367; continue; } - /* */ $s = 368; continue; - /* if (!check[0].allowVersion(check[0].pkg, 1, 20)) { */ case 367: - $r = check[0].error(call.Fun, 135, "unsafe.StringData requires go1.20 or later"); /* */ $s = 369; case 369: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 368: - $r = check[0].assignment(x[0], (17 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 17]), "argument to unsafe.StringData"); /* */ $s = 370; case 370: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x[0].mode === 0) { - $s = -1; return _; - } - x[0].mode = 7; - x[0].typ = NewPointer(universeByte); - /* */ if (!(check[0].Info.Types === false)) { $s = 371; continue; } - /* */ $s = 372; continue; - /* if (!(check[0].Info.Types === false)) { */ case 371: - _arg$42 = call.Fun; - _r$80 = makeSig(x[0].typ, new sliceType$3([(17 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 17])])); /* */ $s = 373; case 373: if($c) { $c = false; _r$80 = _r$80.$blk(); } if (_r$80 && _r$80.$blk !== undefined) { break s; } - _arg$43 = _r$80; - $r = check[0].recordBuiltinType(_arg$42, _arg$43); /* */ $s = 374; case 374: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 372: - $s = 44; continue; - /* } else if (_2 === (24)) { */ case 41: - if (!((x[0].mode === 4))) { _v$3 = true; $s = 377; continue s; } - _r$81 = isBoolean(x[0].typ); /* */ $s = 378; case 378: if($c) { $c = false; _r$81 = _r$81.$blk(); } if (_r$81 && _r$81.$blk !== undefined) { break s; } - _v$3 = !_r$81; case 377: - /* */ if (_v$3) { $s = 375; continue; } - /* */ $s = 376; continue; - /* if (_v$3) { */ case 375: - $r = check[0].errorf(x[0], 1, "invalid argument: %s is not a boolean constant", new sliceType$6([x[0]])); /* */ $s = 379; case 379: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 376: - _r$82 = x[0].val.Kind(); /* */ $s = 382; case 382: if($c) { $c = false; _r$82 = _r$82.$blk(); } if (_r$82 && _r$82.$blk !== undefined) { break s; } - /* */ if (!((_r$82 === 1))) { $s = 380; continue; } - /* */ $s = 381; continue; - /* if (!((_r$82 === 1))) { */ case 380: - $r = check[0].errorf(x[0], 1, "internal error: value of %s should be a boolean constant", new sliceType$6([x[0]])); /* */ $s = 383; case 383: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return _; - /* } */ case 381: - _r$83 = constant.BoolVal(x[0].val); /* */ $s = 386; case 386: if($c) { $c = false; _r$83 = _r$83.$blk(); } if (_r$83 && _r$83.$blk !== undefined) { break s; } - /* */ if (!_r$83) { $s = 384; continue; } - /* */ $s = 385; continue; - /* if (!_r$83) { */ case 384: - $r = check[0].errorf(call, 1, "%v failed", new sliceType$6([call])); /* */ $s = 387; case 387: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 385: - $s = 44; continue; - /* } else if (_2 === (25)) { */ case 42: - /* */ if (nargs === 0) { $s = 388; continue; } - /* */ $s = 389; continue; - /* if (nargs === 0) { */ case 388: - _r$84 = call.Pos(); /* */ $s = 390; case 390: if($c) { $c = false; _r$84 = _r$84.$blk(); } if (_r$84 && _r$84.$blk !== undefined) { break s; } - _arg$44 = new token.Pos(_r$84); - $r = check[0].dump("%v: trace() without arguments", new sliceType$6([_arg$44])); /* */ $s = 391; case 391: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x[0].mode = 1; - /* break; */ $s = 19; continue; - /* } */ case 389: - t[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - x1 = x[0]; - _ref$5 = call.Args; - _i$2 = 0; - /* while (true) { */ case 392: - /* if (!(_i$2 < _ref$5.$length)) { break; } */ if(!(_i$2 < _ref$5.$length)) { $s = 393; continue; } - arg$2 = ((_i$2 < 0 || _i$2 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$2]); - _r$85 = check[0].rawExpr(x1, arg$2, $ifaceNil, false); /* */ $s = 394; case 394: if($c) { $c = false; _r$85 = _r$85.$blk(); } if (_r$85 && _r$85.$blk !== undefined) { break s; } - _r$85; - _r$86 = x1.Pos(); /* */ $s = 395; case 395: if($c) { $c = false; _r$86 = _r$86.$blk(); } if (_r$86 && _r$86.$blk !== undefined) { break s; } - _arg$45 = new token.Pos(_r$86); - _arg$46 = x1; - $r = check[0].dump("%v: %s", new sliceType$6([_arg$45, _arg$46])); /* */ $s = 396; case 396: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x1 = t[0]; - _i$2++; - $s = 392; continue; - case 393: - $s = 44; continue; - /* } else { */ case 43: - unreachable(); - /* } */ case 44: - case 19: - _ = true; - $s = -1; return _; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return _; } if($curGoroutine.asleep) { var $f = {$blk: builtin, $c: true, $r, S, T, T$1, T$2, _, _1, _2, _3, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$16, _arg$17, _arg$18, _arg$19, _arg$2, _arg$20, _arg$21, _arg$22, _arg$23, _arg$24, _arg$25, _arg$26, _arg$27, _arg$28, _arg$29, _arg$3, _arg$30, _arg$31, _arg$32, _arg$33, _arg$34, _arg$35, _arg$36, _arg$37, _arg$38, _arg$39, _arg$4, _arg$40, _arg$41, _arg$42, _arg$43, _arg$44, _arg$45, _arg$46, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _i, _i$1, _i$2, _key, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$49, _r$5, _r$50, _r$51, _r$52, _r$53, _r$54, _r$55, _r$56, _r$57, _r$58, _r$59, _r$6, _r$60, _r$61, _r$62, _r$63, _r$64, _r$65, _r$66, _r$67, _r$68, _r$69, _r$7, _r$70, _r$71, _r$72, _r$73, _r$74, _r$75, _r$76, _r$77, _r$78, _r$79, _r$8, _r$80, _r$81, _r$82, _r$83, _r$84, _r$85, _r$86, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, _v, _v$1, _v$2, _v$3, alist, arg, arg$1, arg$2, arg0, arg0$1, base, bin, call, cause, check, code, code$1, d, dst, f, f$1, i, i$1, i$2, id, index$2, indirect, key, map_, min, mode, mode$1, msg$1, nargs, obj, ok, p, params, ptr, resTyp, resTyp$1, s, sel, selx, sig, sig$1, size, sizes, slice, src, src0, t, t$1, t$2, t$3, t$4, t$5, t$6, toFloat, typ$4, types$1, u, val, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, x1, xlist, xlist$1, y, y$1, y$2, y$3, y$4, $s, $deferred};return $f; } } - }; - hasVarSize = function hasVarSize$1(t, seen) { - var {$24r, _entry, _i, _key, _r$1, _r$2, _r$3, _ref, _ref$1, _tuple, _tuple$1, f, named, ok, seen, t, u, u$1, u$2, u$3, v, varSized, $s, $deferred, $r, $c} = $restore(this, {t, seen}); - /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred); - named = [named]; - seen = [seen]; - varSized = [varSized]; - varSized[0] = false; - _tuple = $assertType(t, ptrType$9, true); - named[0] = _tuple[0]; - /* */ if (!(named[0] === ptrType$9.nil)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(named[0] === ptrType$9.nil)) { */ case 1: - _tuple$1 = (_entry = $mapIndex(seen[0],ptrType$9.keyFor(named[0])), _entry !== undefined ? [_entry.v, true] : [false, false]); - v = _tuple$1[0]; - ok = _tuple$1[1]; - if (ok) { - varSized[0] = v; - $s = -1; return varSized[0]; - } - if (seen[0] === false) { - seen[0] = new $global.Map(); - } - _key = named[0]; (seen[0] || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$9.keyFor(_key), { k: _key, v: true }); - $deferred.push([(function(named, seen, varSized) { return function hasVarSize·func1() { - var _key$1; - _key$1 = named[0]; (seen[0] || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$9.keyFor(_key$1), { k: _key$1, v: varSized[0] }); - }; })(named, seen, varSized), []]); - /* } */ case 2: - _r$1 = under(t); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _ref = _r$1; - /* */ if ($assertType(_ref, ptrType$10, true)[1]) { $s = 4; continue; } - /* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 5; continue; } - /* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 6; continue; } - /* */ if ($assertType(_ref, ptrType$9, true)[1] || $assertType(_ref, ptrType$12, true)[1]) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if ($assertType(_ref, ptrType$10, true)[1]) { */ case 4: - u = _ref.$val; - _r$2 = hasVarSize(u.elem, seen[0]); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - varSized[0] = _r$2; - $24r = varSized[0]; - $s = 10; case 10: return $24r; - /* } else if ($assertType(_ref, ptrType$11, true)[1]) { */ case 5: - u$1 = _ref.$val; - _ref$1 = u$1.fields; - _i = 0; - /* while (true) { */ case 11: - /* if (!(_i < _ref$1.$length)) { break; } */ if(!(_i < _ref$1.$length)) { $s = 12; continue; } - f = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]); - _r$3 = hasVarSize(f.object.typ, seen[0]); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (_r$3) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (_r$3) { */ case 13: - varSized[0] = true; - $s = -1; return varSized[0]; - /* } */ case 14: - _i++; - $s = 11; continue; - case 12: - $s = 8; continue; - /* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 6: - u$2 = _ref.$val; - varSized[0] = isTypeParam(t); - $s = -1; return varSized[0]; - /* } else if ($assertType(_ref, ptrType$9, true)[1] || $assertType(_ref, ptrType$12, true)[1]) { */ case 7: - u$3 = _ref; - unreachable(); - /* } */ case 8: - varSized[0] = false; - $s = -1; return varSized[0]; - /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return varSized[0]; } if($curGoroutine.asleep) { var $f = {$blk: hasVarSize$1, $c: true, $r, $24r, _entry, _i, _key, _r$1, _r$2, _r$3, _ref, _ref$1, _tuple, _tuple$1, f, named, ok, seen, t, u, u$1, u$2, u$3, v, varSized, $s, $deferred};return $f; } } - }; - $ptrType(Checker).prototype.applyTypeFunc = function applyTypeFunc(f, x, id) { - var {$24r, _1, _arg, _arg$1, _r$1, _r$2, _r$3, _r$4, _tuple, check, code, f, id, ptyp, terms, tp, tpar, x, $s, $r, $c} = $restore(this, {f, x, id}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - f = [f]; - terms = [terms]; - check = this; - _tuple = $assertType(x.typ, ptrType$14, true); - tp = _tuple[0]; - /* */ if (!(tp === ptrType$14.nil)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(tp === ptrType$14.nil)) { */ case 1: - terms[0] = sliceType$12.nil; - _r$1 = tp.is((function(f, terms) { return function Checker·applyTypeFunc·func1(t) { - var {_r$1, r, t, $s, $r, $c} = $restore(this, {t}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (t === ptrType$5.nil) { - $s = -1; return false; - } - _r$1 = f[0](t.typ); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - r = _r$1; - if (!($interfaceIsEqual(r, $ifaceNil))) { - terms[0] = $append(terms[0], NewTerm(t.tilde, r)); - $s = -1; return true; - } - $s = -1; return false; - /* */ } return; } var $f = {$blk: Checker·applyTypeFunc·func1, $c: true, $r, _r$1, r, t, $s};return $f; - }; })(f, terms)); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (!_r$1) { $s = 3; continue; } + instQueue[0].insert(inst.Inst.Out); + ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = $appendSlice(new sliceType$1([]), anyRune)); + inst.Next = new sliceType$2([inst.Inst.Out]); + $s = 10; continue; + /* } else if (_1 === (10)) { */ case 9: + ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = false); + if (inst.Next.$length > 0) { + /* break; */ $s = 1; continue; + } + instQueue[0].insert(inst.Inst.Out); + ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = $appendSlice(new sliceType$1([]), anyRuneNotNL)); + inst.Next = $makeSlice(sliceType$2, ((_q$4 = ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc]).$length / 2, (_q$4 === _q$4 && _q$4 !== 1/0 && _q$4 !== -1/0) ? _q$4 >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0)); + _ref$4 = inst.Next; + _i$4 = 0; + while (true) { + if (!(_i$4 < _ref$4.$length)) { break; } + i$4 = _i$4; + (x$18 = inst.Next, ((i$4 < 0 || i$4 >= x$18.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$18.$array[x$18.$offset + i$4] = inst.Inst.Out)); + _i$4++; + } + /* } */ case 10: + case 1: + $s = -1; return ok; + /* */ } return; } var $f = {$blk: makeOnePass·func1, $c: true, $r, _1, _i, _i$1, _i$2, _i$3, _i$4, _q, _q$1, _q$2, _q$3, _q$4, _r, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _v, i, i$1, i$2, i$3, i$4, inst, m, matchArg, matchOut, ok, pc, r0, r0$1, r1, r1$1, runes, runes$1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; + }; })(check, instQueue, onePassRunes, p, visitQueue); + instQueue[0].clear(); + instQueue[0].insert(((p[0].Start >>> 0))); + m = $makeSlice(sliceType$14, p[0].Inst.$length); + /* while (true) { */ case 1: + /* if (!(!instQueue[0].empty())) { break; } */ if(!(!instQueue[0].empty())) { $s = 2; continue; } + visitQueue[0].clear(); + pc = instQueue[0].next(); + _r = check[0](pc, m); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!_r) { $s = 3; continue; } /* */ $s = 4; continue; - /* if (!_r$1) { */ case 3: - $s = -1; return $ifaceNil; + /* if (!_r) { */ case 3: + p[0] = ptrType$2.nil; + /* break; */ $s = 2; continue; /* } */ case 4: - code = 0; - _1 = id; - if (_1 === (14)) { - code = 93; - } else if (_1 === (7)) { - code = 89; - } else if (_1 === (4)) { - code = 87; - } else { - unreachable(); + $s = 1; continue; + case 2: + if (!(p[0] === ptrType$2.nil)) { + _ref = p[0].Inst; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + (x = p[0].Inst, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])).Inst.Rune = ((i < 0 || i >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + i]); + _i++; } - $r = check.softErrorf(x, code, "%s not supported as argument to %s for go1.18 (see issue #50937)", new sliceType$6([x, new $String(((id < 0 || id >= predeclaredFuncs.length) ? ($throwRuntimeError("index out of range"), undefined) : predeclaredFuncs[id]).name)])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - tpar = NewTypeName(0, check.pkg, tp.obj.object.name, $ifaceNil); - _arg = tpar; - _r$2 = NewInterfaceType(sliceType.nil, new sliceType$3([NewUnion(terms[0])])); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _arg$1 = _r$2; - _r$3 = check.newTypeParam(_arg, _arg$1); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - ptyp = _r$3; - ptyp.index = tp.index; - $s = -1; return ptyp; - /* } */ case 2: - _r$4 = f[0](x.typ); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - $24r = _r$4; - $s = 10; case 10: return $24r; - /* */ } return; } var $f = {$blk: applyTypeFunc, $c: true, $r, $24r, _1, _arg, _arg$1, _r$1, _r$2, _r$3, _r$4, _tuple, check, code, f, id, ptyp, terms, tp, tpar, x, $s};return $f; + } + $s = -1; return p[0]; + /* */ } return; } var $f = {$blk: makeOnePass$1, $c: true, $r, _i, _r, _ref, check, i, instQueue, m, onePassRunes, p, pc, visitQueue, x, $s};return $f; }; - makeSig = function makeSig$1(res, args) { - var {_i, _ref, args, i, list$2, param, params, res, result, $s, $r, $c} = $restore(this, {res, args}); + compileOnePass = function compileOnePass$1(prog) { + var {_1, _i, _r, _ref, inst, opOut, p, prog, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r, $c} = $restore(this, {prog}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - list$2 = $makeSlice(sliceType$10, args.$length); - _ref = args; + p = ptrType$2.nil; + if (prog.Start === 0) { + p = ptrType$2.nil; + $s = -1; return p; + } + if (!(((x = prog.Inst, x$1 = prog.Start, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Op === 3)) || !(((((((x$2 = prog.Inst, x$3 = prog.Start, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])).Arg << 24 >>> 24)) & 4) >>> 0) === 4))) { + p = ptrType$2.nil; + $s = -1; return p; + } + _ref = prog.Inst; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } - i = _i; - param = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - ((i < 0 || i >= list$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : list$2.$array[list$2.$offset + i] = NewVar(0, ptrType$1.nil, "", Default(param))); + inst = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), syntax.Inst); + opOut = (x$4 = prog.Inst, x$5 = inst.Out, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])).Op; + _1 = inst.Op; + if ((_1 === (0)) || (_1 === (1))) { + if ((opOut === 4) || ((x$6 = prog.Inst, x$7 = inst.Arg, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])).Op === 4)) { + p = ptrType$2.nil; + $s = -1; return p; + } + } else if (_1 === (3)) { + if (opOut === 4) { + if (((((inst.Arg << 24 >>> 24)) & 8) >>> 0) === 8) { + _i++; + continue; + } + p = ptrType$2.nil; + $s = -1; return p; + } + } else if (opOut === 4) { + p = ptrType$2.nil; + $s = -1; return p; + } _i++; } - params = NewTuple(list$2); - result = ptrType$15.nil; - /* */ if (!($interfaceIsEqual(res, $ifaceNil))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!($interfaceIsEqual(res, $ifaceNil))) { */ case 1: - $r = assert(!isUntyped(res)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - result = NewTuple(new sliceType$10([NewVar(0, ptrType$1.nil, "", res)])); - /* } */ case 2: - $s = -1; return new Signature.ptr(ptrType$48.nil, ptrType$48.nil, ptrType.nil, ptrType$16.nil, params, result, false); - /* */ } return; } var $f = {$blk: makeSig$1, $c: true, $r, _i, _ref, args, i, list$2, param, params, res, result, $s};return $f; + p = onePassCopy(prog); + _r = makeOnePass(p); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + p = _r; + if (!(p === ptrType$2.nil)) { + cleanupOnePass(p, prog); + } + p = p; + $s = -1; return p; + /* */ } return; } var $f = {$blk: compileOnePass$1, $c: true, $r, _1, _i, _r, _ref, inst, opOut, p, prog, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s};return $f; }; - arrayPtrDeref = function arrayPtrDeref$1(typ$4) { - var {_r$1, _tuple, _tuple$1, a, ok, p, typ$4, $s, $r, $c} = $restore(this, {typ$4}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _tuple = $assertType(typ$4, ptrType$26, true); - p = _tuple[0]; - ok = _tuple[1]; - /* */ if (ok) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (ok) { */ case 1: - _r$1 = under(p.base); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple$1 = $assertType(_r$1, ptrType$10, true); - a = _tuple$1[0]; - if (!(a === ptrType$10.nil)) { - $s = -1; return a; - } - /* } */ case 2: - $s = -1; return typ$4; - /* */ } return; } var $f = {$blk: arrayPtrDeref$1, $c: true, $r, _r$1, _tuple, _tuple$1, a, ok, p, typ$4, $s};return $f; + $ptrType(inputs).prototype.newBytes = function newBytes(b) { + var b, i; + i = this; + i.bytes.str = b; + return i.bytes; }; - unparen = function unparen$1(e) { - var _tuple, e, ok, p; - while (true) { - _tuple = $assertType(e, ptrType$39, true); - p = _tuple[0]; - ok = _tuple[1]; - if (!ok) { - return e; - } - e = p.X; - } + $ptrType(inputs).prototype.newString = function newString(s) { + var i, s; + i = this; + i.string.str = s; + return i.string; }; - $ptrType(Basic).prototype.Kind = function Kind$1() { - var b; - b = this; - return b.kind; + $ptrType(inputs).prototype.newReader = function newReader(r) { + var i, r; + i = this; + i.reader.r = r; + i.reader.atEOT = false; + i.reader.pos = 0; + return i.reader; }; - $ptrType(Basic).prototype.Info = function Info$1() { - var b; - b = this; - return b.info; + $ptrType(inputs).prototype.clear = function clear$1() { + var i; + i = this; + if (!(i.bytes.str === sliceType$4.nil)) { + i.bytes.str = sliceType$4.nil; + } else if (!($interfaceIsEqual(i.reader.r, $ifaceNil))) { + i.reader.r = $ifaceNil; + } else { + i.string.str = ""; + } }; - $ptrType(Basic).prototype.Name = function Name$3() { - var b; - b = this; - return b.name; + $ptrType(inputs).prototype.init = function init$2(r, b, s) { + var b, i, r, s; + i = this; + if (!($interfaceIsEqual(r, $ifaceNil))) { + return [i.newReader(r), 0]; + } + if (!(b === sliceType$4.nil)) { + return [i.newBytes(b), b.$length]; + } + return [i.newString(s), s.length]; }; - $ptrType(Basic).prototype.Underlying = function Underlying$11() { - var t; - t = this; + $ptrType(machine).prototype.init = function init$3(ncap) { + var _i, _ref, m, ncap, t; + m = this; + _ref = m.pool; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + t.cap = $subslice(t.cap, 0, ncap); + _i++; + } + m.matchcap = $subslice(m.matchcap, 0, ncap); + }; + $ptrType(machine).prototype.alloc = function alloc(i) { + var i, m, n, t, x, x$1; + m = this; + t = ptrType$5.nil; + n = m.pool.$length; + if (n > 0) { + t = (x = m.pool, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + m.pool = $subslice(m.pool, 0, (n - 1 >> 0)); + } else { + t = new thread.ptr(ptrType$6.nil, sliceType$7.nil); + t.cap = $makeSlice(sliceType$7, m.matchcap.$length, m.matchcap.$capacity); + } + t.inst = i; return t; }; - $ptrType(Basic).prototype.String = function String$33() { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = TypeString(t, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$33, $c: true, $r, $24r, _r$1, t, $s};return $f; + newLazyFlag = function newLazyFlag$1(r1, r2) { + var r1, r2, x, x$1, x$2; + return ((x = (x$1 = $shiftLeft64((new $Uint64(0, r1)), 32), x$2 = (new $Uint64(0, ((r2 >>> 0)))), new $Uint64(x$1.$high | x$2.$high, (x$1.$low | x$2.$low) >>> 0)), new lazyFlag(x.$high, x.$low))); }; - $ptrType(Checker).prototype.assignment = function assignment(x, T, context$1) { - var {T, _1, _2, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, _tuple$2, _v, cause, check, code, code$1, context$1, msg$1, newType, ok, sig, target, val, x, $s, $r, $c} = $restore(this, {x, T, context$1}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - cause = [cause]; - check = this; - $r = check.singleValue(x); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _1 = x.mode; - /* */ if (_1 === (0)) { $s = 3; continue; } - /* */ if ((_1 === (4)) || (_1 === (5)) || (_1 === (6)) || (_1 === (7)) || (_1 === (8)) || (_1 === (9))) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (_1 === (0)) { */ case 3: - $s = -1; return; - /* } else if ((_1 === (4)) || (_1 === (5)) || (_1 === (6)) || (_1 === (7)) || (_1 === (8)) || (_1 === (9))) { */ case 4: - $s = 6; continue; - /* } else { */ case 5: - $r = check.errorf(x, 23, "cannot assign %s to %s in %s", new sliceType$6([x, T, new $String(context$1)])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 6: - case 2: - /* */ if (isUntyped(x.typ)) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (isUntyped(x.typ)) { */ case 8: - target = T; - if ($interfaceIsEqual(T, $ifaceNil)) { _v = true; $s = 12; continue s; } - _r$1 = isNonTypeParamInterface(T); /* */ $s = 13; case 13: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = _r$1; case 12: - /* */ if (_v) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (_v) { */ case 10: - /* */ if ($interfaceIsEqual(T, $ifaceNil) && $interfaceIsEqual(x.typ, (25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25]))) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if ($interfaceIsEqual(T, $ifaceNil) && $interfaceIsEqual(x.typ, (25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25]))) { */ case 14: - $r = check.errorf(x, 16, "use of untyped nil in %s", new sliceType$6([new $String(context$1)])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - $s = -1; return; - /* } */ case 15: - target = Default(x.typ); - /* } */ case 11: - _r$2 = check.implicitTypeAndValue(x, target); /* */ $s = 17; case 17: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _tuple = _r$2; - newType = _tuple[0]; - val = _tuple[1]; - code = _tuple[2]; - /* */ if (!((code === 0))) { $s = 18; continue; } - /* */ $s = 19; continue; - /* if (!((code === 0))) { */ case 18: - _r$3 = check.sprintf("cannot use %s as %s value in %s", new sliceType$6([x, target, new $String(context$1)])); /* */ $s = 20; case 20: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - msg$1 = _r$3; - _2 = code; - if (_2 === (43)) { - msg$1 = msg$1 + (" (truncated)"); - } else if (_2 === (44)) { - msg$1 = msg$1 + (" (overflows)"); - } else { - code = 23; - } - $r = check.error(x, code, msg$1); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - x.mode = 0; - $s = -1; return; - /* } */ case 19: - if (!($interfaceIsEqual(val, $ifaceNil))) { - x.val = val; - check.updateExprVal(x.expr, val); + lazyFlag.prototype.match = function match(op) { + var f, op, r1, r2; + f = this; + if (op === 0) { + return true; + } + r1 = (($shiftRightUint64(f, 32).$low >> 0)); + if (!((((op & 1) >>> 0) === 0))) { + if (!((r1 === 10)) && r1 >= 0) { + return false; } - /* */ if (!($interfaceIsEqual(newType, x.typ))) { $s = 22; continue; } - /* */ $s = 23; continue; - /* if (!($interfaceIsEqual(newType, x.typ))) { */ case 22: - x.typ = newType; - $r = check.updateExprType(x.expr, newType, false); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 23: - /* } */ case 9: - _r$4 = under(x.typ); /* */ $s = 25; case 25: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _tuple$1 = $assertType(_r$4, ptrType$27, true); - sig = _tuple$1[0]; - /* */ if (!(sig === ptrType$27.nil) && sig.TypeParams().Len() > 0) { $s = 26; continue; } - /* */ $s = 27; continue; - /* if (!(sig === ptrType$27.nil) && sig.TypeParams().Len() > 0) { */ case 26: - $r = check.errorf(x, 137, "cannot use generic function %s without instantiation in %s", new sliceType$6([x, new $String(context$1)])); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 27: - if ($interfaceIsEqual(T, $ifaceNil)) { - $s = -1; return; + op = (op & ~(1)) << 24 >>> 24; } - cause[0] = ""; - _r$5 = x.assignableTo(check, T, (cause.$ptr || (cause.$ptr = new ptrType$34(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, cause)))); /* */ $s = 29; case 29: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _tuple$2 = _r$5; - ok = _tuple$2[0]; - code$1 = _tuple$2[1]; - /* */ if (!ok) { $s = 30; continue; } - /* */ $s = 31; continue; - /* if (!ok) { */ case 30: - /* */ if (!(cause[0] === "")) { $s = 32; continue; } - /* */ $s = 33; continue; - /* if (!(cause[0] === "")) { */ case 32: - $r = check.errorf(x, code$1, "cannot use %s as %s value in %s: %s", new sliceType$6([x, T, new $String(context$1), new $String(cause[0])])); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 34; continue; - /* } else { */ case 33: - $r = check.errorf(x, code$1, "cannot use %s as %s value in %s", new sliceType$6([x, T, new $String(context$1)])); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 34: - x.mode = 0; - /* } */ case 31: - $s = -1; return; - /* */ } return; } var $f = {$blk: assignment, $c: true, $r, T, _1, _2, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, _tuple$1, _tuple$2, _v, cause, check, code, code$1, context$1, msg$1, newType, ok, sig, target, val, x, $s};return $f; - }; - $ptrType(Checker).prototype.initConst = function initConst(lhs, x) { - var {_r$1, check, lhs, x, $s, $r, $c} = $restore(this, {lhs, x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - if ((x.mode === 0) || $interfaceIsEqual(x.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])) || $interfaceIsEqual(lhs.object.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { - if ($interfaceIsEqual(lhs.object.typ, $ifaceNil)) { - lhs.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + if (!((((op & 4) >>> 0) === 0))) { + if (r1 >= 0) { + return false; } - $s = -1; return; + op = (op & ~(4)) << 24 >>> 24; } - /* */ if (!((x.mode === 4))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!((x.mode === 4))) { */ case 1: - $r = check.errorf(x, 13, "%s is not constant", new sliceType$6([x])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if ($interfaceIsEqual(lhs.object.typ, $ifaceNil)) { - lhs.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + if (op === 0) { + return true; + } + r2 = ((f.$low >> 0)); + if (!((((op & 2) >>> 0) === 0))) { + if (!((r2 === 10)) && r2 >= 0) { + return false; } - $s = -1; return; - /* } */ case 2: - _r$1 = isConstType(x.typ); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $r = assert(_r$1); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if ($interfaceIsEqual(lhs.object.typ, $ifaceNil)) { - lhs.object.typ = x.typ; + op = (op & ~(2)) << 24 >>> 24; } - $r = check.assignment(x, lhs.object.typ, "constant declaration"); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x.mode === 0) { - $s = -1; return; + if (!((((op & 8) >>> 0) === 0))) { + if (r2 >= 0) { + return false; + } + op = (op & ~(8)) << 24 >>> 24; } - lhs.val = x.val; - $s = -1; return; - /* */ } return; } var $f = {$blk: initConst, $c: true, $r, _r$1, check, lhs, x, $s};return $f; + if (op === 0) { + return true; + } + if (!(syntax.IsWordChar(r1) === syntax.IsWordChar(r2))) { + op = (op & ~(16)) << 24 >>> 24; + } else { + op = (op & ~(32)) << 24 >>> 24; + } + return op === 0; }; - $ptrType(Checker).prototype.initVar = function initVar(lhs, x, context$1) { - var {check, context$1, lhs, typ$4, x, $s, $r, $c} = $restore(this, {lhs, x, context$1}); + $ptrType(lazyFlag).prototype.match = function(...$args) { return this.$get().match(...$args); }; + $ptrType(machine).prototype.match = function match$1(i, pos) { + var {_i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _v, advance, flag, i, i$1, m, nextq, pos, r, r1, runq, startCond, width, width1, x, x$1, $s, $r, $c} = $restore(this, {i, pos}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - if ((x.mode === 0) || $interfaceIsEqual(x.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0])) || $interfaceIsEqual(lhs.object.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { - if ($interfaceIsEqual(lhs.object.typ, $ifaceNil)) { - lhs.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); + flag = [flag]; + m = this; + startCond = m.re.cond; + if (startCond === 255) { + $s = -1; return false; + } + m.matched = false; + _ref = m.matchcap; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i$1 = _i; + (x = m.matchcap, ((i$1 < 0 || i$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i$1] = -1)); + _i++; + } + _tmp = m.q0; + _tmp$1 = m.q1; + runq = _tmp; + nextq = _tmp$1; + _tmp$2 = -1; + _tmp$3 = -1; + r = _tmp$2; + r1 = _tmp$3; + _tmp$4 = 0; + _tmp$5 = 0; + width = _tmp$4; + width1 = _tmp$5; + _r = i.step(pos); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + r = _tuple[0]; + width = _tuple[1]; + /* */ if (!((r === -1))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!((r === -1))) { */ case 2: + _r$1 = i.step(pos + width >> 0); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + r1 = _tuple$1[0]; + width1 = _tuple$1[1]; + /* } */ case 3: + flag[0] = new lazyFlag(0, 0); + /* */ if (pos === 0) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (pos === 0) { */ case 5: + flag[0] = newLazyFlag(-1, r); + $s = 7; continue; + /* } else { */ case 6: + _r$2 = i.context(pos); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + flag[0] = _r$2; + /* } */ case 7: + /* while (true) { */ case 9: + /* */ if (runq.dense.$length === 0) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (runq.dense.$length === 0) { */ case 11: + if (!((((startCond & 4) >>> 0) === 0)) && !((pos === 0))) { + /* break; */ $s = 10; continue; + } + if (m.matched) { + /* break; */ $s = 10; continue; + } + if (!(m.re.prefix.length > 0 && !((r1 === m.re.prefixRune)))) { _v = false; $s = 15; continue s; } + _r$3 = i.canCheckPrefix(); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v = _r$3; case 15: + /* */ if (_v) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (_v) { */ case 13: + _r$4 = i.index(m.re, pos); /* */ $s = 17; case 17: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + advance = _r$4; + if (advance < 0) { + /* break; */ $s = 10; continue; + } + pos = pos + (advance) >> 0; + _r$5 = i.step(pos); /* */ $s = 18; case 18: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$2 = _r$5; + r = _tuple$2[0]; + width = _tuple$2[1]; + _r$6 = i.step(pos + width >> 0); /* */ $s = 19; case 19: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _tuple$3 = _r$6; + r1 = _tuple$3[0]; + width1 = _tuple$3[1]; + /* } */ case 14: + /* } */ case 12: + if (!m.matched) { + if (m.matchcap.$length > 0) { + (x$1 = m.matchcap, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0] = pos)); + } + m.add(runq, ((m.p.Start >>> 0)), pos, m.matchcap, (flag.$ptr || (flag.$ptr = new ptrType$13(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, flag))), ptrType$5.nil); } - $s = -1; return $ifaceNil; - } - /* */ if ($interfaceIsEqual(lhs.object.typ, $ifaceNil)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if ($interfaceIsEqual(lhs.object.typ, $ifaceNil)) { */ case 1: - typ$4 = x.typ; - /* */ if (isUntyped(typ$4)) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (isUntyped(typ$4)) { */ case 3: - /* */ if ($interfaceIsEqual(typ$4, (25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25]))) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if ($interfaceIsEqual(typ$4, (25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25]))) { */ case 5: - $r = check.errorf(x, 16, "use of untyped nil in %s", new sliceType$6([new $String(context$1)])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - lhs.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - $s = -1; return $ifaceNil; - /* } */ case 6: - typ$4 = Default(typ$4); - /* } */ case 4: - lhs.object.typ = typ$4; - /* } */ case 2: - $r = check.assignment(x, lhs.object.typ, context$1); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x.mode === 0) { - $s = -1; return $ifaceNil; - } - $s = -1; return x.typ; - /* */ } return; } var $f = {$blk: initVar, $c: true, $r, check, context$1, lhs, typ$4, x, $s};return $f; - }; - $ptrType(Checker).prototype.assignVar = function assignVar(lhs, x) { - var {_1, _arg, _arg$1, _r$1, _r$2, _tuple, _tuple$1, _tuple$2, check, ident$1, lhs, obj, ok, op$1, sel, v, v_used, w, x, z, $s, $r, $c} = $restore(this, {lhs, x}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - op$1 = [op$1]; - z = [z]; - check = this; - /* */ if ((x.mode === 0) || $interfaceIsEqual(x.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if ((x.mode === 0) || $interfaceIsEqual(x.typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { */ case 1: - $r = check.useLHS(new sliceType$11([lhs])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return $ifaceNil; - /* } */ case 2: - _tuple = $assertType(unparen(lhs), ptrType$30, true); - ident$1 = _tuple[0]; - /* */ if (!(ident$1 === ptrType$30.nil) && ident$1.Name === "_") { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (!(ident$1 === ptrType$30.nil) && ident$1.Name === "_") { */ case 4: - $r = check.recordDef(ident$1, $ifaceNil); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.assignment(x, $ifaceNil, "assignment to _ identifier"); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x.mode === 0) { - $s = -1; return $ifaceNil; + flag[0] = newLazyFlag(r, r1); + m.step(runq, nextq, pos, pos + width >> 0, r, (flag.$ptr || (flag.$ptr = new ptrType$13(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, flag)))); + if (width === 0) { + /* break; */ $s = 10; continue; } - $s = -1; return x.typ; - /* } */ case 5: - v = ptrType$16.nil; - v_used = false; - /* */ if (!(ident$1 === ptrType$30.nil)) { $s = 8; continue; } - /* */ $s = 9; continue; - /* if (!(ident$1 === ptrType$30.nil)) { */ case 8: - _r$1 = check.environment.lookup(ident$1.Name); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - obj = _r$1; - if (!($interfaceIsEqual(obj, $ifaceNil))) { - _tuple$1 = $assertType(obj, ptrType$16, true); - w = _tuple$1[0]; - if (!(w === ptrType$16.nil) && w.object.pkg === check.pkg) { - v = w; - v_used = v.used; - } + if ((m.matchcap.$length === 0) && m.matched) { + /* break; */ $s = 10; continue; } - /* } */ case 9: - z[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = check.expr(z[0], lhs); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (!(v === ptrType$16.nil)) { - v.used = v_used; - } - if ((z[0].mode === 0) || $interfaceIsEqual(z[0].typ, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { - $s = -1; return $ifaceNil; - } - _1 = z[0].mode; - /* */ if (_1 === (0)) { $s = 13; continue; } - /* */ if ((_1 === (5)) || (_1 === (6))) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (_1 === (0)) { */ case 13: - $s = -1; return $ifaceNil; - /* } else if ((_1 === (5)) || (_1 === (6))) { */ case 14: - $s = 16; continue; - /* } else { */ case 15: - _tuple$2 = $assertType(z[0].expr, ptrType$36, true); - sel = _tuple$2[0]; - ok = _tuple$2[1]; - /* */ if (ok) { $s = 17; continue; } - /* */ $s = 18; continue; - /* if (ok) { */ case 17: - op$1[0] = new operand.ptr(0, $ifaceNil, $ifaceNil, $ifaceNil, 0); - $r = check.expr(op$1[0], sel.X); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if (op$1[0].mode === 6) { $s = 20; continue; } - /* */ $s = 21; continue; - /* if (op$1[0].mode === 6) { */ case 20: - _arg = z[0]; - _r$2 = ExprString(z[0].expr); /* */ $s = 22; case 22: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _arg$1 = new $String(_r$2); - $r = check.errorf(_arg, 24, "cannot assign to struct field %s in map", new sliceType$6([_arg$1])); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return $ifaceNil; - /* } */ case 21: - /* } */ case 18: - $r = check.errorf(z[0], 18, "cannot assign to %s", new sliceType$6([z[0]])); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return $ifaceNil; - /* } */ case 16: - case 12: - $r = check.assignment(x, z[0].typ, "assignment"); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - if (x.mode === 0) { - $s = -1; return $ifaceNil; - } - $s = -1; return x.typ; - /* */ } return; } var $f = {$blk: assignVar, $c: true, $r, _1, _arg, _arg$1, _r$1, _r$2, _tuple, _tuple$1, _tuple$2, check, ident$1, lhs, obj, ok, op$1, sel, v, v_used, w, x, z, $s};return $f; + pos = pos + (width) >> 0; + _tmp$6 = r1; + _tmp$7 = width1; + r = _tmp$6; + width = _tmp$7; + /* */ if (!((r === -1))) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (!((r === -1))) { */ case 20: + _r$7 = i.step(pos + width >> 0); /* */ $s = 22; case 22: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _tuple$4 = _r$7; + r1 = _tuple$4[0]; + width1 = _tuple$4[1]; + /* } */ case 21: + _tmp$8 = nextq; + _tmp$9 = runq; + runq = _tmp$8; + nextq = _tmp$9; + $s = 9; continue; + case 10: + m.clear(nextq); + $s = -1; return m.matched; + /* */ } return; } var $f = {$blk: match$1, $c: true, $r, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _v, advance, flag, i, i$1, m, nextq, pos, r, r1, runq, startCond, width, width1, x, x$1, $s};return $f; }; - operandTypes = function operandTypes$1(list$2) { - var _i, _ref, list$2, res, x; - res = sliceType$3.nil; - _ref = list$2; + $ptrType(machine).prototype.clear = function clear$2(q) { + var _i, _ref, d, m, q; + m = this; + _ref = q.dense; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } - x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - res = $append(res, x.typ); + d = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), entry); + if (!(d.t === ptrType$5.nil)) { + m.pool = $append(m.pool, d.t); + } _i++; } - res = res; - return res; + q.dense = $subslice(q.dense, 0, 0); }; - varTypes = function varTypes$1(list$2) { - var _i, _ref, list$2, res, x; - res = sliceType$3.nil; - _ref = list$2; - _i = 0; + $ptrType(machine).prototype.step = function step$3(runq, nextq, pos, nextPos, c, nextCond) { + var _1, _i, _ref, add, c, d, d$1, i, j, longest, m, nextCond, nextPos, nextq, pos, runq, t, x, x$1, x$2, x$3, x$4, x$5; + m = this; + longest = m.re.longest; + j = 0; while (true) { - if (!(_i < _ref.$length)) { break; } - x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - res = $append(res, x.object.typ); - _i++; - } - res = res; - return res; - }; - $ptrType(Checker).prototype.typesSummary = function typesSummary(list$2, variadic) { - var {_i, _r$1, _r$2, _r$3, _ref, check, i, list$2, res, s, t, variadic, $s, $r, $c} = $restore(this, {list$2, variadic}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - res = sliceType$5.nil; - _ref = list$2; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - s = ""; - /* */ if ($interfaceIsEqual(t, $ifaceNil)) { $s = 4; continue; } - /* */ if ($interfaceIsEqual(t, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { $s = 5; continue; } - /* */ if (isUntyped(t)) { $s = 6; continue; } - /* */ if (variadic && (i === (list$2.$length - 1 >> 0))) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if ($interfaceIsEqual(t, $ifaceNil)) { */ case 4: - s = ""; - $s = 8; continue; - /* } else if ($interfaceIsEqual(t, (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]))) { */ case 5: - s = ""; - $s = 8; continue; - /* } else if (isUntyped(t)) { */ case 6: - _r$1 = isNumeric(t); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - /* */ if (_r$1) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if (_r$1) { */ case 9: - s = "number"; - $s = 11; continue; - /* } else { */ case 10: - s = strings.Replace($assertType(t, ptrType$4).name, "untyped ", "", -1); - /* } */ case 11: - $s = 8; continue; - /* } else if (variadic && (i === (list$2.$length - 1 >> 0))) { */ case 7: - _r$2 = check.sprintf("...%s", new sliceType$6([$assertType(t, ptrType$25).elem])); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - s = _r$2; - /* } */ case 8: - case 3: - /* */ if (s === "") { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (s === "") { */ case 14: - _r$3 = check.sprintf("%s", new sliceType$6([t])); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - s = _r$3; - /* } */ case 15: - res = $append(res, s); - _i++; - $s = 1; continue; - case 2: - $s = -1; return "(" + strings.Join(res, ", ") + ")"; - /* */ } return; } var $f = {$blk: typesSummary, $c: true, $r, _i, _r$1, _r$2, _r$3, _ref, check, i, list$2, res, s, t, variadic, $s};return $f; - }; - measure = function measure$1(x, unit) { - var {$24r, _r$1, unit, x, $s, $r, $c} = $restore(this, {x, unit}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - if (!((x === 1))) { - unit = unit + ("s"); - } - _r$1 = fmt.Sprintf("%d %s", new sliceType$6([new $Int(x), new $String(unit)])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: measure$1, $c: true, $r, $24r, _r$1, unit, x, $s};return $f; - }; - $ptrType(Checker).prototype.assignError = function assignError(rhs, nvars, nvals) { - var {_r$1, _r$2, _tuple, call, check, nvals, nvars, rhs, rhs0, vals, vars, $s, $r, $c} = $restore(this, {rhs, nvars, nvals}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = measure(nvars, "variable"); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - vars = _r$1; - _r$2 = measure(nvals, "value"); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - vals = _r$2; - rhs0 = (0 >= rhs.$length ? ($throwRuntimeError("index out of range"), undefined) : rhs.$array[rhs.$offset + 0]); - /* */ if (rhs.$length === 1) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (rhs.$length === 1) { */ case 3: - _tuple = $assertType(unparen(rhs0), ptrType$86, true); - call = _tuple[0]; - /* */ if (!(call === ptrType$86.nil)) { $s = 5; continue; } - /* */ $s = 6; continue; - /* if (!(call === ptrType$86.nil)) { */ case 5: - $r = check.errorf(rhs0, 17, "assignment mismatch: %s but %s returns %s", new sliceType$6([new $String(vars), call.Fun, new $String(vals)])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 6: - /* } */ case 4: - $r = check.errorf(rhs0, 17, "assignment mismatch: %s but %s", new sliceType$6([new $String(vars), new $String(vals)])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* */ } return; } var $f = {$blk: assignError, $c: true, $r, _r$1, _r$2, _tuple, call, check, nvals, nvars, rhs, rhs0, vals, vars, $s};return $f; - }; - $ptrType(Checker).prototype.initVars = function initVars(lhs, origRHS, returnStmt) { - var {_arg, _arg$1, _i, _i$1, _i$2, _i$3, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _ref$2, _ref$3, _tuple, a, at$1, check, commaOk, context$1, err, i, i$1, lhs, lhs$1, obj, origRHS, qualifier$1, returnStmt, rhs, x, x$1, x$2, $s, $r, $c} = $restore(this, {lhs, origRHS, returnStmt}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = check.exprList(origRHS, (lhs.$length === 2) && $interfaceIsEqual(returnStmt, $ifaceNil)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - rhs = _tuple[0]; - commaOk = _tuple[1]; - /* */ if (!((lhs.$length === rhs.$length))) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!((lhs.$length === rhs.$length))) { */ case 2: - _ref = lhs; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - obj = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - obj.used = true; - if ($interfaceIsEqual(obj.object.typ, $ifaceNil)) { - obj.object.typ = (0 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 0]); - } - _i++; + if (!(j < runq.dense.$length)) { break; } + d = (x = runq.dense, ((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x.$array, x.$offset + j, ptrType$14))); + t = d.t; + if (t === ptrType$5.nil) { + j = j + (1) >> 0; + continue; } - _ref$1 = rhs; - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - x = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - if (x.mode === 0) { - $s = -1; return; - } - _i$1++; + if (longest && m.matched && t.cap.$length > 0 && (x$1 = m.matchcap, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])) < (x$2 = t.cap, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0]))) { + m.pool = $append(m.pool, t); + j = j + (1) >> 0; + continue; } - /* */ if (!($interfaceIsEqual(returnStmt, $ifaceNil))) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (!($interfaceIsEqual(returnStmt, $ifaceNil))) { */ case 4: - at$1 = returnStmt; - qualifier$1 = "not enough"; - if (rhs.$length > lhs.$length) { - at$1 = (x$1 = lhs.$length, ((x$1 < 0 || x$1 >= rhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : rhs.$array[rhs.$offset + x$1])).expr; - qualifier$1 = "too many"; - } else if (rhs.$length > 0) { - at$1 = (x$2 = rhs.$length - 1 >> 0, ((x$2 < 0 || x$2 >= rhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : rhs.$array[rhs.$offset + x$2])).expr; + i = t.inst; + add = false; + _1 = i.Op; + if (_1 === (4)) { + if (t.cap.$length > 0 && (!longest || !m.matched || (x$3 = m.matchcap, (1 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 1])) < pos)) { + (x$4 = t.cap, (1 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 1] = pos)); + $copySlice(m.matchcap, t.cap); } - err = newErrorf(at$1, 103, "%s return values", new sliceType$6([new $String(qualifier$1)])); - _r$2 = check.typesSummary(operandTypes(rhs), false); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _arg = new $String(_r$2); - $r = err.errorf(0, "have %s", new sliceType$6([_arg])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _r$3 = check.typesSummary(varTypes(lhs), false); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _arg$1 = new $String(_r$3); - $r = err.errorf(0, "want %s", new sliceType$6([_arg$1])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.report(err); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 5: - $r = check.assignError(origRHS, lhs.$length, rhs.$length); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 3: - context$1 = "assignment"; - if (!($interfaceIsEqual(returnStmt, $ifaceNil))) { - context$1 = "return statement"; - } - /* */ if (commaOk) { $s = 12; continue; } - /* */ $s = 13; continue; - /* if (commaOk) { */ case 12: - a = arrayType$3.zero(); - _ref$2 = a; - _i$2 = 0; - /* while (true) { */ case 14: - /* if (!(_i$2 < 2)) { break; } */ if(!(_i$2 < 2)) { $s = 15; continue; } - i = _i$2; - _r$4 = check.initVar(((i < 0 || i >= lhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : lhs.$array[lhs.$offset + i]), ((i < 0 || i >= rhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : rhs.$array[rhs.$offset + i]), context$1); /* */ $s = 16; case 16: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = _r$4); - _i$2++; - $s = 14; continue; - case 15: - $r = check.recordCommaOkTypes((0 >= origRHS.$length ? ($throwRuntimeError("index out of range"), undefined) : origRHS.$array[origRHS.$offset + 0]), $clone(a, arrayType$3)); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 13: - _ref$3 = lhs; - _i$3 = 0; - /* while (true) { */ case 18: - /* if (!(_i$3 < _ref$3.$length)) { break; } */ if(!(_i$3 < _ref$3.$length)) { $s = 19; continue; } - i$1 = _i$3; - lhs$1 = ((_i$3 < 0 || _i$3 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$3]); - _r$5 = check.initVar(lhs$1, ((i$1 < 0 || i$1 >= rhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : rhs.$array[rhs.$offset + i$1]), context$1); /* */ $s = 20; case 20: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - _r$5; - _i$3++; - $s = 18; continue; - case 19: - $s = -1; return; - /* */ } return; } var $f = {$blk: initVars, $c: true, $r, _arg, _arg$1, _i, _i$1, _i$2, _i$3, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _ref$2, _ref$3, _tuple, a, at$1, check, commaOk, context$1, err, i, i$1, lhs, lhs$1, obj, origRHS, qualifier$1, returnStmt, rhs, x, x$1, x$2, $s};return $f; - }; - $ptrType(Checker).prototype.assignVars = function assignVars(lhs, origRHS) { - var {_i, _i$1, _i$2, _r$1, _r$2, _r$3, _ref, _ref$1, _ref$2, _tuple, a, check, commaOk, i, i$1, lhs, lhs$1, origRHS, rhs, x, $s, $r, $c} = $restore(this, {lhs, origRHS}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - _r$1 = check.exprList(origRHS, lhs.$length === 2); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _tuple = _r$1; - rhs = _tuple[0]; - commaOk = _tuple[1]; - /* */ if (!((lhs.$length === rhs.$length))) { $s = 2; continue; } - /* */ $s = 3; continue; - /* if (!((lhs.$length === rhs.$length))) { */ case 2: - $r = check.useLHS(lhs); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _ref = rhs; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (x.mode === 0) { - $s = -1; return; + if (!longest) { + _ref = $subslice(runq.dense, (j + 1 >> 0)); + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + d$1 = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), entry); + if (!(d$1.t === ptrType$5.nil)) { + m.pool = $append(m.pool, d$1.t); + } + _i++; + } + runq.dense = $subslice(runq.dense, 0, 0); } - _i++; + m.matched = true; + } else if (_1 === (7)) { + add = i.MatchRune(c); + } else if (_1 === (8)) { + add = c === (x$5 = i.Rune, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0])); + } else if (_1 === (9)) { + add = true; + } else if (_1 === (10)) { + add = !((c === 10)); + } else { + $panic(new $String("bad inst")); } - $r = check.assignError(origRHS, lhs.$length, rhs.$length); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 3: - /* */ if (commaOk) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (commaOk) { */ case 6: - a = arrayType$3.zero(); - _ref$1 = a; - _i$1 = 0; - /* while (true) { */ case 8: - /* if (!(_i$1 < 2)) { break; } */ if(!(_i$1 < 2)) { $s = 9; continue; } - i = _i$1; - _r$2 = check.assignVar(((i < 0 || i >= lhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : lhs.$array[lhs.$offset + i]), ((i < 0 || i >= rhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : rhs.$array[rhs.$offset + i])); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = _r$2); - _i$1++; - $s = 8; continue; - case 9: - $r = check.recordCommaOkTypes((0 >= origRHS.$length ? ($throwRuntimeError("index out of range"), undefined) : origRHS.$array[origRHS.$offset + 0]), $clone(a, arrayType$3)); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 7: - _ref$2 = lhs; - _i$2 = 0; - /* while (true) { */ case 12: - /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 13; continue; } - i$1 = _i$2; - lhs$1 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); - _r$3 = check.assignVar(lhs$1, ((i$1 < 0 || i$1 >= rhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : rhs.$array[rhs.$offset + i$1])); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - _r$3; - _i$2++; - $s = 12; continue; - case 13: - $s = -1; return; - /* */ } return; } var $f = {$blk: assignVars, $c: true, $r, _i, _i$1, _i$2, _r$1, _r$2, _r$3, _ref, _ref$1, _ref$2, _tuple, a, check, commaOk, i, i$1, lhs, lhs$1, origRHS, rhs, x, $s};return $f; - }; - $ptrType(Checker).prototype.shortVarDecl = function shortVarDecl(pos$1, lhs, rhs) { - var {_entry, _i, _i$1, _i$2, _key, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _ref$2, _tuple, _tuple$1, alt, check, hasErr, i, i$1, ident$1, lhs, lhs$1, lhsVars, name, newVars, obj, obj$1, obj$2, obj$3, pos$1, rhs, scope, scopePos$2, seen, top, x, x$1, $s, $r, $c} = $restore(this, {pos$1, lhs, rhs}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - check = this; - top = check.delayed.$length; - scope = check.environment.scope; - seen = (x = lhs.$length, ((x < 0 || x > 2147483647) ? $throwRuntimeError("makemap: size out of range") : new $global.Map())); - lhsVars = $makeSlice(sliceType$10, lhs.$length); - newVars = $makeSlice(sliceType$10, 0, lhs.$length); - hasErr = false; - _ref = lhs; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - lhs$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _tuple = $assertType(lhs$1, ptrType$30, true); - ident$1 = _tuple[0]; - /* */ if (ident$1 === ptrType$30.nil) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (ident$1 === ptrType$30.nil) { */ case 3: - $r = check.useLHS(new sliceType$11([lhs$1])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.errorf(lhs$1, 131, "non-name %s on left side of :=", new sliceType$6([lhs$1])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - hasErr = true; - _i++; - /* continue; */ $s = 1; continue; - /* } */ case 4: - name = ident$1.Name; - /* */ if (!(name === "_")) { $s = 7; continue; } - /* */ $s = 8; continue; - /* if (!(name === "_")) { */ case 7: - /* */ if ((_entry = $mapIndex(seen,$String.keyFor(name)), _entry !== undefined ? _entry.v : false)) { $s = 9; continue; } - /* */ $s = 10; continue; - /* if ((_entry = $mapIndex(seen,$String.keyFor(name)), _entry !== undefined ? _entry.v : false)) { */ case 9: - $r = check.errorf(lhs$1, 132, "%s repeated on left side of :=", new sliceType$6([lhs$1])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - hasErr = true; - _i++; - /* continue; */ $s = 1; continue; - /* } */ case 10: - _key = name; (seen || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: true }); - /* } */ case 8: - _r$1 = scope.Lookup(name); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - alt = _r$1; - /* */ if (!($interfaceIsEqual(alt, $ifaceNil))) { $s = 13; continue; } - /* */ $s = 14; continue; - /* if (!($interfaceIsEqual(alt, $ifaceNil))) { */ case 13: - $r = check.recordUse(ident$1, alt); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _tuple$1 = $assertType(alt, ptrType$16, true); - obj = _tuple$1[0]; - /* */ if (!(obj === ptrType$16.nil)) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (!(obj === ptrType$16.nil)) { */ case 16: - ((i < 0 || i >= lhsVars.$length) ? ($throwRuntimeError("index out of range"), undefined) : lhsVars.$array[lhsVars.$offset + i] = obj); - $s = 18; continue; - /* } else { */ case 17: - $r = check.errorf(lhs$1, 18, "cannot assign to %s", new sliceType$6([lhs$1])); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - hasErr = true; - /* } */ case 18: - _i++; - /* continue; */ $s = 1; continue; - /* } */ case 14: - obj$1 = NewVar(ident$1.Pos(), check.pkg, name, $ifaceNil); - ((i < 0 || i >= lhsVars.$length) ? ($throwRuntimeError("index out of range"), undefined) : lhsVars.$array[lhsVars.$offset + i] = obj$1); - if (!(name === "_")) { - newVars = $append(newVars, obj$1); + if (add) { + t = m.add(nextq, i.Out, nextPos, t.cap, nextCond, t); } - $r = check.recordDef(ident$1, obj$1); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i++; - $s = 1; continue; - case 2: - _ref$1 = lhsVars; - _i$1 = 0; - /* while (true) { */ case 21: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 22; continue; } - i$1 = _i$1; - obj$2 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - /* */ if (obj$2 === ptrType$16.nil) { $s = 23; continue; } - /* */ $s = 24; continue; - /* if (obj$2 === ptrType$16.nil) { */ case 23: - _r$2 = ((i$1 < 0 || i$1 >= lhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : lhs.$array[lhs.$offset + i$1]).Pos(); /* */ $s = 25; case 25: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = NewVar(_r$2, check.pkg, "_", $ifaceNil); /* */ $s = 26; case 26: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - ((i$1 < 0 || i$1 >= lhsVars.$length) ? ($throwRuntimeError("index out of range"), undefined) : lhsVars.$array[lhsVars.$offset + i$1] = _r$3); - /* } */ case 24: - _i$1++; - $s = 21; continue; - case 22: - $r = check.initVars(lhsVars, rhs, $ifaceNil); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = check.processDelayed(top); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* */ if ((newVars.$length === 0) && !hasErr) { $s = 29; continue; } - /* */ $s = 30; continue; - /* if ((newVars.$length === 0) && !hasErr) { */ case 29: - $r = check.softErrorf(pos$1, 19, "no new variables on left side of :=", sliceType$6.nil); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return; - /* } */ case 30: - _r$4 = (x$1 = rhs.$length - 1 >> 0, ((x$1 < 0 || x$1 >= rhs.$length) ? ($throwRuntimeError("index out of range"), undefined) : rhs.$array[rhs.$offset + x$1])).End(); /* */ $s = 32; case 32: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - scopePos$2 = _r$4; - _ref$2 = newVars; - _i$2 = 0; - /* while (true) { */ case 33: - /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 34; continue; } - obj$3 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); - $r = check.declare(scope, ptrType$30.nil, obj$3, scopePos$2); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - _i$2++; - $s = 33; continue; - case 34: - $s = -1; return; - /* */ } return; } var $f = {$blk: shortVarDecl, $c: true, $r, _entry, _i, _i$1, _i$2, _key, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _ref$2, _tuple, _tuple$1, alt, check, hasErr, i, i$1, ident$1, lhs, lhs$1, lhsVars, name, newVars, obj, obj$1, obj$2, obj$3, pos$1, rhs, scope, scopePos$2, seen, top, x, x$1, $s};return $f; - }; - $ptrType(Array).prototype.Len = function Len$9() { - var a; - a = this; - return a.len; - }; - $ptrType(Array).prototype.Elem = function Elem$4() { - var a; - a = this; - return a.elem; - }; - $ptrType(Array).prototype.Underlying = function Underlying$12() { - var t; - t = this; - return t; - }; - $ptrType(Array).prototype.String = function String$34() { - var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - t = this; - _r$1 = TypeString(t, $throwNilPointerError); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: String$34, $c: true, $r, $24r, _r$1, t, $s};return $f; - }; - $ptrType(Error).prototype.Error = function Error$1() { - var {$24r, _arg, _arg$1, _r$1, _r$2, err, x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - err = this; - _r$1 = err.Fset.Position(err.Pos); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _arg = (x = _r$1, new x.constructor.elem(x)); - _arg$1 = new $String(err.Msg); - _r$2 = fmt.Sprintf("%s: %s", new sliceType$6([_arg, _arg$1])); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - $24r = _r$2; - $s = 3; case 3: return $24r; - /* */ } return; } var $f = {$blk: Error$1, $c: true, $r, $24r, _arg, _arg$1, _r$1, _r$2, err, x, $s};return $f; + if (!(t === ptrType$5.nil)) { + m.pool = $append(m.pool, t); + } + j = j + (1) >> 0; + } + runq.dense = $subslice(runq.dense, 0, 0); }; - Error.prototype.Error = function(...$args) { return this.$val.Error(...$args); }; - $ptrType(Info).prototype.TypeOf = function TypeOf(e) { - var {$24r, _entry, _r$1, _tuple, _tuple$1, e, id, info, obj, ok, t, $s, $r, $c} = $restore(this, {e}); + $ptrType(machine).prototype.add = function add(q, pc, pos, cap, cond, t) { + var _1, cap, cond, d, i, j, j$1, m, opos, pc, pos, q, t, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, $s; /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - info = this; - _tuple = (_entry = $mapIndex(info.Types,ast.Expr.keyFor(e)), _entry !== undefined ? [_entry.v, true] : [new TypeAndValue.ptr(0, $ifaceNil, $ifaceNil), false]); - t = $clone(_tuple[0], TypeAndValue); - ok = _tuple[1]; - if (ok) { - $s = -1; return t.Type; + m = this; + /* Again: */ case 1: + if (pc === 0) { + $s = -1; return t; } - _tuple$1 = $assertType(e, ptrType$30, true); - id = _tuple$1[0]; - /* */ if (!(id === ptrType$30.nil)) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (!(id === ptrType$30.nil)) { */ case 1: - obj = info.ObjectOf(id); - /* */ if (!($interfaceIsEqual(obj, $ifaceNil))) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (!($interfaceIsEqual(obj, $ifaceNil))) { */ case 3: - _r$1 = obj.Type(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 6; case 6: return $24r; - /* } */ case 4: - /* } */ case 2: - $s = -1; return $ifaceNil; - /* */ } return; } var $f = {$blk: TypeOf, $c: true, $r, $24r, _entry, _r$1, _tuple, _tuple$1, e, id, info, obj, ok, t, $s};return $f; - }; - $ptrType(Info).prototype.ObjectOf = function ObjectOf(id) { - var _entry, _entry$1, id, info, obj; - info = this; - obj = (_entry = $mapIndex(info.Defs,ptrType$30.keyFor(id)), _entry !== undefined ? _entry.v : $ifaceNil); - if (!($interfaceIsEqual(obj, $ifaceNil))) { - return obj; - } - return (_entry$1 = $mapIndex(info.Uses,ptrType$30.keyFor(id)), _entry$1 !== undefined ? _entry$1.v : $ifaceNil); - }; - $ptrType(TypeAndValue).prototype.IsVoid = function IsVoid() { - var tv; - tv = this; - return tv.mode === 1; - }; - TypeAndValue.prototype.IsVoid = function(...$args) { return this.$val.IsVoid(...$args); }; - $ptrType(TypeAndValue).prototype.IsType = function IsType() { - var tv; - tv = this; - return tv.mode === 3; - }; - TypeAndValue.prototype.IsType = function(...$args) { return this.$val.IsType(...$args); }; - $ptrType(TypeAndValue).prototype.IsBuiltin = function IsBuiltin() { - var tv; - tv = this; - return tv.mode === 2; - }; - TypeAndValue.prototype.IsBuiltin = function(...$args) { return this.$val.IsBuiltin(...$args); }; - $ptrType(TypeAndValue).prototype.IsValue = function IsValue() { - var _1, tv; - tv = this; - _1 = tv.mode; - if ((_1 === (4)) || (_1 === (5)) || (_1 === (6)) || (_1 === (7)) || (_1 === (8)) || (_1 === (9))) { - return true; + j = (x = q.sparse, ((pc < 0 || pc >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pc])); + if (j < ((q.dense.$length >>> 0)) && ((x$1 = q.dense, ((j < 0 || j >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + j])).pc === pc)) { + $s = -1; return t; } - return false; + j$1 = q.dense.$length; + q.dense = $subslice(q.dense, 0, (j$1 + 1 >> 0)); + d = (x$2 = q.dense, ((j$1 < 0 || j$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$2.$array, x$2.$offset + j$1, ptrType$14))); + d.t = ptrType$5.nil; + d.pc = pc; + (x$3 = q.sparse, ((pc < 0 || pc >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + pc] = ((j$1 >>> 0)))); + i = (x$4 = m.p.Inst, ((pc < 0 || pc >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$4.$array, x$4.$offset + pc, ptrType$6))); + _1 = i.Op; + /* */ if (_1 === (5)) { $s = 3; continue; } + /* */ if ((_1 === (0)) || (_1 === (1))) { $s = 4; continue; } + /* */ if (_1 === (3)) { $s = 5; continue; } + /* */ if (_1 === (6)) { $s = 6; continue; } + /* */ if (_1 === (2)) { $s = 7; continue; } + /* */ if ((_1 === (4)) || (_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10))) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (_1 === (5)) { */ case 3: + $s = 10; continue; + /* } else if ((_1 === (0)) || (_1 === (1))) { */ case 4: + t = m.add(q, i.Out, pos, cap, cond, t); + pc = i.Arg; + /* goto Again */ $s = 1; continue; + $s = 10; continue; + /* } else if (_1 === (3)) { */ case 5: + /* */ if (cond.match(((i.Arg << 24 >>> 24)))) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (cond.match(((i.Arg << 24 >>> 24)))) { */ case 11: + pc = i.Out; + /* goto Again */ $s = 1; continue; + /* } */ case 12: + $s = 10; continue; + /* } else if (_1 === (6)) { */ case 6: + pc = i.Out; + /* goto Again */ $s = 1; continue; + $s = 10; continue; + /* } else if (_1 === (2)) { */ case 7: + /* */ if (((i.Arg >> 0)) < cap.$length) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (((i.Arg >> 0)) < cap.$length) { */ case 13: + opos = (x$5 = i.Arg, ((x$5 < 0 || x$5 >= cap.$length) ? ($throwRuntimeError("index out of range"), undefined) : cap.$array[cap.$offset + x$5])); + (x$6 = i.Arg, ((x$6 < 0 || x$6 >= cap.$length) ? ($throwRuntimeError("index out of range"), undefined) : cap.$array[cap.$offset + x$6] = pos)); + m.add(q, i.Out, pos, cap, cond, ptrType$5.nil); + (x$7 = i.Arg, ((x$7 < 0 || x$7 >= cap.$length) ? ($throwRuntimeError("index out of range"), undefined) : cap.$array[cap.$offset + x$7] = opos)); + $s = 15; continue; + /* } else { */ case 14: + pc = i.Out; + /* goto Again */ $s = 1; continue; + /* } */ case 15: + $s = 10; continue; + /* } else if ((_1 === (4)) || (_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10))) { */ case 8: + if (t === ptrType$5.nil) { + t = m.alloc(i); + } else { + t.inst = i; + } + if (cap.$length > 0 && !((x$8 = t.cap, (0 >= x$8.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$8.$array, x$8.$offset + 0, ptrType$9))) === (0 >= cap.$length ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(cap.$array, cap.$offset + 0, ptrType$9)))) { + $copySlice(t.cap, cap); + } + d.t = t; + t = ptrType$5.nil; + $s = 10; continue; + /* } else { */ case 9: + $panic(new $String("unhandled")); + /* } */ case 10: + case 2: + $s = -1; return t; + /* */ } return; } }; - TypeAndValue.prototype.IsValue = function(...$args) { return this.$val.IsValue(...$args); }; - $ptrType(TypeAndValue).prototype.IsNil = function IsNil() { - var tv; - tv = this; - return (tv.mode === 7) && $interfaceIsEqual(tv.Type, (25 >= $pkg.Typ.$length ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Typ.$array[$pkg.Typ.$offset + 25])); - }; - TypeAndValue.prototype.IsNil = function(...$args) { return this.$val.IsNil(...$args); }; - $ptrType(TypeAndValue).prototype.Addressable = function Addressable() { - var tv; - tv = this; - return tv.mode === 5; - }; - TypeAndValue.prototype.Addressable = function(...$args) { return this.$val.Addressable(...$args); }; - $ptrType(TypeAndValue).prototype.Assignable = function Assignable() { - var tv; - tv = this; - return (tv.mode === 5) || (tv.mode === 6); - }; - TypeAndValue.prototype.Assignable = function(...$args) { return this.$val.Assignable(...$args); }; - $ptrType(TypeAndValue).prototype.HasOk = function HasOk() { - var tv; - tv = this; - return (tv.mode === 8) || (tv.mode === 6); - }; - TypeAndValue.prototype.HasOk = function(...$args) { return this.$val.HasOk(...$args); }; - $ptrType(Initializer).prototype.String = function String$35() { - var {_i, _ref, buf, i, init$7, lhs, $s, $r, $c} = $restore(this, {}); + newOnePassMachine = function newOnePassMachine$1() { + var {_r, _tuple, m, ok, $s, $r, $c} = $restore(this, {}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - buf = [buf]; - init$7 = this; - buf[0] = new bytes.Buffer.ptr(sliceType$14.nil, 0, 0); - _ref = init$7.Lhs; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - i = _i; - lhs = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (i > 0) { - buf[0].WriteString(", "); - } - buf[0].WriteString(lhs.object.Name()); - _i++; + _r = onePassPool.Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = $assertType(_r, ptrType$15, true); + m = _tuple[0]; + ok = _tuple[1]; + if (!ok) { + m = new onePassMachine.ptr(new inputs.ptr(new inputBytes.ptr(sliceType$4.nil), new inputString.ptr(""), new inputReader.ptr($ifaceNil, false, 0)), sliceType$7.nil); } - buf[0].WriteString(" = "); - $r = WriteExpr(buf[0], init$7.Rhs); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = -1; return buf[0].String(); - /* */ } return; } var $f = {$blk: String$35, $c: true, $r, _i, _ref, buf, i, init$7, lhs, $s};return $f; - }; - $ptrType(Config).prototype.Check = function Check(path, fset, files, info) { - var {$24r, _r$1, _r$2, _r$3, conf, files, fset, info, path, pkg, $s, $r, $c} = $restore(this, {path, fset, files, info}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - conf = this; - _r$1 = NewPackage(path, ""); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - pkg = _r$1; - _r$2 = NewChecker(conf, fset, pkg, info); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = _r$2.Files(files); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - $24r = [pkg, _r$3]; - $s = 4; case 4: return $24r; - /* */ } return; } var $f = {$blk: Check, $c: true, $r, $24r, _r$1, _r$2, _r$3, conf, files, fset, info, path, pkg, $s};return $f; - }; - Identical = function Identical$1(x, y) { - var {$24r, _r$1, x, y, $s, $r, $c} = $restore(this, {x, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = identical(x, y, true, ptrType$23.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: Identical$1, $c: true, $r, $24r, _r$1, x, y, $s};return $f; - }; - $pkg.Identical = Identical; - IdenticalIgnoreTags = function IdenticalIgnoreTags$1(x, y) { - var {$24r, _r$1, x, y, $s, $r, $c} = $restore(this, {x, y}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - _r$1 = identical(x, y, false, ptrType$23.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r = _r$1; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: IdenticalIgnoreTags$1, $c: true, $r, $24r, _r$1, x, y, $s};return $f; - }; - $pkg.IdenticalIgnoreTags = IdenticalIgnoreTags; - ptrType$12.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Term", name: "Term", pkg: "", typ: $funcType([$Int], [ptrType$19], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$19.methods = [{prop: "Tilde", name: "Tilde", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$22.methods = [{prop: "unify", name: "unify", pkg: "go/types", typ: $funcType([Type, Type], [$Bool], false)}, {prop: "tracef", name: "tracef", pkg: "go/types", typ: $funcType([$String, sliceType$6], [], true)}, {prop: "join", name: "join", pkg: "go/types", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "nifyEq", name: "nifyEq", pkg: "go/types", typ: $funcType([Type, Type, ptrType$23], [$Bool], false)}, {prop: "nify", name: "nify", pkg: "go/types", typ: $funcType([Type, Type, ptrType$23], [$Bool], false)}]; - ptrType$113.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "init", name: "init", pkg: "go/types", typ: $funcType([sliceType$9], [], false)}, {prop: "index", name: "index", pkg: "go/types", typ: $funcType([Type], [$Int], false)}, {prop: "setIndex", name: "setIndex", pkg: "go/types", typ: $funcType([$Int, $Int], [], false)}, {prop: "at", name: "at", pkg: "go/types", typ: $funcType([$Int], [Type], false)}, {prop: "set", name: "set", pkg: "go/types", typ: $funcType([$Int, Type], [], false)}, {prop: "unknowns", name: "unknowns", pkg: "go/types", typ: $funcType([], [$Int], false)}, {prop: "types", name: "types", pkg: "go/types", typ: $funcType([], [sliceType$3, $Int], false)}]; - ptrType$5.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "equal", name: "equal", pkg: "go/types", typ: $funcType([ptrType$5], [$Bool], false)}, {prop: "union", name: "union", pkg: "go/types", typ: $funcType([ptrType$5], [ptrType$5, ptrType$5], false)}, {prop: "intersect", name: "intersect", pkg: "go/types", typ: $funcType([ptrType$5], [ptrType$5], false)}, {prop: "includes", name: "includes", pkg: "go/types", typ: $funcType([Type], [$Bool], false)}, {prop: "subsetOf", name: "subsetOf", pkg: "go/types", typ: $funcType([ptrType$5], [$Bool], false)}, {prop: "disjoint", name: "disjoint", pkg: "go/types", typ: $funcType([ptrType$5], [$Bool], false)}]; - ptrType$115.methods = [{prop: "byte$", name: "byte", pkg: "go/types", typ: $funcType([$Uint8], [], false)}, {prop: "string", name: "string", pkg: "go/types", typ: $funcType([$String], [], false)}, {prop: "error", name: "error", pkg: "go/types", typ: $funcType([$String], [], false)}, {prop: "typ", name: "typ", pkg: "go/types", typ: $funcType([Type], [], false)}, {prop: "typeSet", name: "typeSet", pkg: "go/types", typ: $funcType([ptrType$8], [], false)}, {prop: "typeList", name: "typeList", pkg: "go/types", typ: $funcType([sliceType$3], [], false)}, {prop: "tParamList", name: "tParamList", pkg: "go/types", typ: $funcType([sliceType$9], [], false)}, {prop: "typeName", name: "typeName", pkg: "go/types", typ: $funcType([ptrType$17], [], false)}, {prop: "tuple", name: "tuple", pkg: "go/types", typ: $funcType([ptrType$15, $Bool], [], false)}, {prop: "signature", name: "signature", pkg: "go/types", typ: $funcType([ptrType$27], [], false)}]; - ptrType$8.methods = [{prop: "IsEmpty", name: "IsEmpty", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsAll", name: "IsAll", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsMethodSet", name: "IsMethodSet", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsComparable", name: "IsComparable", pkg: "", typ: $funcType([mapType], [$Bool], false)}, {prop: "NumMethods", name: "NumMethods", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [ptrType$2], false)}, {prop: "LookupMethod", name: "LookupMethod", pkg: "", typ: $funcType([ptrType$1, $String, $Bool], [$Int, ptrType$2], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "hasTerms", name: "hasTerms", pkg: "go/types", typ: $funcType([], [$Bool], false)}, {prop: "subsetOf", name: "subsetOf", pkg: "go/types", typ: $funcType([ptrType$8], [$Bool], false)}, {prop: "is", name: "is", pkg: "go/types", typ: $funcType([funcType$2], [$Bool], false)}, {prop: "underIs", name: "underIs", pkg: "go/types", typ: $funcType([funcType$3], [$Bool], false)}]; - byUniqueMethodName.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}]; - ptrType$14.methods = [{prop: "Index", name: "Index", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Obj", name: "Obj", pkg: "", typ: $funcType([], [ptrType$17], false)}, {prop: "Constraint", name: "Constraint", pkg: "", typ: $funcType([], [Type], false)}, {prop: "SetConstraint", name: "SetConstraint", pkg: "", typ: $funcType([Type], [], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "cleanup", name: "cleanup", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "iface", name: "iface", pkg: "go/types", typ: $funcType([], [ptrType$13], false)}, {prop: "is", name: "is", pkg: "go/types", typ: $funcType([funcType$2], [$Bool], false)}, {prop: "underIs", name: "underIs", pkg: "go/types", typ: $funcType([funcType$3], [$Bool], false)}]; - ptrType$48.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "At", name: "At", pkg: "", typ: $funcType([$Int], [ptrType$14], false)}, {prop: "list", name: "list", pkg: "go/types", typ: $funcType([], [sliceType$9], false)}]; - ptrType$56.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "At", name: "At", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "list", name: "list", pkg: "go/types", typ: $funcType([], [sliceType$3], false)}]; - ptrType$15.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "At", name: "At", pkg: "", typ: $funcType([$Int], [ptrType$16], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - termlist.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "isEmpty", name: "isEmpty", pkg: "go/types", typ: $funcType([], [$Bool], false)}, {prop: "isAll", name: "isAll", pkg: "go/types", typ: $funcType([], [$Bool], false)}, {prop: "norm", name: "norm", pkg: "go/types", typ: $funcType([], [termlist], false)}, {prop: "union", name: "union", pkg: "go/types", typ: $funcType([termlist], [termlist], false)}, {prop: "intersect", name: "intersect", pkg: "go/types", typ: $funcType([termlist], [termlist], false)}, {prop: "equal", name: "equal", pkg: "go/types", typ: $funcType([termlist], [$Bool], false)}, {prop: "includes", name: "includes", pkg: "go/types", typ: $funcType([Type], [$Bool], false)}, {prop: "supersetOf", name: "supersetOf", pkg: "go/types", typ: $funcType([ptrType$5], [$Bool], false)}, {prop: "subsetOf", name: "subsetOf", pkg: "go/types", typ: $funcType([termlist], [$Bool], false)}]; - substMap.methods = [{prop: "empty", name: "empty", pkg: "go/types", typ: $funcType([], [$Bool], false)}, {prop: "lookup", name: "lookup", pkg: "go/types", typ: $funcType([ptrType$14], [Type], false)}]; - ptrType$116.methods = [{prop: "typ", name: "typ", pkg: "go/types", typ: $funcType([Type], [Type], false)}, {prop: "typOrNil", name: "typOrNil", pkg: "go/types", typ: $funcType([Type], [Type], false)}, {prop: "var_", name: "var_", pkg: "go/types", typ: $funcType([ptrType$16], [ptrType$16], false)}, {prop: "tuple", name: "tuple", pkg: "go/types", typ: $funcType([ptrType$15], [ptrType$15], false)}, {prop: "varList", name: "varList", pkg: "go/types", typ: $funcType([sliceType$10], [sliceType$10, $Bool], false)}, {prop: "func_", name: "func_", pkg: "go/types", typ: $funcType([ptrType$2], [ptrType$2], false)}, {prop: "funcList", name: "funcList", pkg: "go/types", typ: $funcType([sliceType], [sliceType, $Bool], false)}, {prop: "typeList", name: "typeList", pkg: "go/types", typ: $funcType([sliceType$3], [sliceType$3, $Bool], false)}, {prop: "termlist", name: "termlist", pkg: "go/types", typ: $funcType([sliceType$12], [sliceType$12, $Bool], false)}]; - ptrType$11.methods = [{prop: "NumFields", name: "NumFields", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [ptrType$16], false)}, {prop: "Tag", name: "Tag", pkg: "", typ: $funcType([$Int], [$String], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "markComplete", name: "markComplete", pkg: "go/types", typ: $funcType([], [], false)}]; - ptrType$25.methods = [{prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$83.methods = [{prop: "Alignof", name: "Alignof", pkg: "", typ: $funcType([Type], [$Int64], false)}, {prop: "Offsetsof", name: "Offsetsof", pkg: "", typ: $funcType([sliceType$10], [sliceType$19], false)}, {prop: "Sizeof", name: "Sizeof", pkg: "", typ: $funcType([Type], [$Int64], false)}]; - ptrType$27.methods = [{prop: "Recv", name: "Recv", pkg: "", typ: $funcType([], [ptrType$16], false)}, {prop: "TypeParams", name: "TypeParams", pkg: "", typ: $funcType([], [ptrType$48], false)}, {prop: "RecvTypeParams", name: "RecvTypeParams", pkg: "", typ: $funcType([], [ptrType$48], false)}, {prop: "Params", name: "Params", pkg: "", typ: $funcType([], [ptrType$15], false)}, {prop: "Results", name: "Results", pkg: "", typ: $funcType([], [ptrType$15], false)}, {prop: "Variadic", name: "Variadic", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$3.methods = [{prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [SelectionKind], false)}, {prop: "Recv", name: "Recv", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Obj", name: "Obj", pkg: "", typ: $funcType([], [Object], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Index", name: "Index", pkg: "", typ: $funcType([], [sliceType$13], false)}, {prop: "Indirect", name: "Indirect", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType.methods = [{prop: "Parent", name: "Parent", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Names", name: "Names", pkg: "", typ: $funcType([], [sliceType$5], false)}, {prop: "NumChildren", name: "NumChildren", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Child", name: "Child", pkg: "", typ: $funcType([$Int], [ptrType], false)}, {prop: "Lookup", name: "Lookup", pkg: "", typ: $funcType([$String], [Object], false)}, {prop: "LookupParent", name: "LookupParent", pkg: "", typ: $funcType([$String, token.Pos], [ptrType, Object], false)}, {prop: "Insert", name: "Insert", pkg: "", typ: $funcType([Object], [Object], false)}, {prop: "_InsertLazy", name: "_InsertLazy", pkg: "go/types", typ: $funcType([$String, funcType$4], [$Bool], false)}, {prop: "insert", name: "insert", pkg: "go/types", typ: $funcType([$String, Object], [], false)}, {prop: "squash", name: "squash", pkg: "go/types", typ: $funcType([funcType$5], [], false)}, {prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "End", name: "End", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "Contains", name: "Contains", pkg: "", typ: $funcType([token.Pos], [$Bool], false)}, {prop: "Innermost", name: "Innermost", pkg: "", typ: $funcType([token.Pos], [ptrType], false)}, {prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([io.Writer, $Int, $Bool], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$85.methods = [{prop: "Parent", name: "Parent", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "Pkg", name: "Pkg", pkg: "", typ: $funcType([], [ptrType$1], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Exported", name: "Exported", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Id", name: "Id", pkg: "", typ: $funcType([], [$String], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "order", name: "order", pkg: "go/types", typ: $funcType([], [$Uint32], false)}, {prop: "color", name: "color", pkg: "go/types", typ: $funcType([], [color], false)}, {prop: "setType", name: "setType", pkg: "go/types", typ: $funcType([Type], [], false)}, {prop: "setOrder", name: "setOrder", pkg: "go/types", typ: $funcType([$Uint32], [], false)}, {prop: "setColor", name: "setColor", pkg: "go/types", typ: $funcType([color], [], false)}, {prop: "setParent", name: "setParent", pkg: "go/types", typ: $funcType([ptrType], [], false)}, {prop: "sameId", name: "sameId", pkg: "go/types", typ: $funcType([ptrType$1, $String], [$Bool], false)}, {prop: "scopePos", name: "scopePos", pkg: "go/types", typ: $funcType([], [token.Pos], false)}, {prop: "setScopePos", name: "setScopePos", pkg: "go/types", typ: $funcType([token.Pos], [], false)}]; - ptrType$58.methods = [{prop: "hasInitializer", name: "hasInitializer", pkg: "go/types", typ: $funcType([], [$Bool], false)}, {prop: "addDep", name: "addDep", pkg: "go/types", typ: $funcType([Object], [], false)}]; - inSourceOrder.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}]; - ptrType$23.methods = [{prop: "identical", name: "identical", pkg: "go/types", typ: $funcType([ptrType$23], [$Bool], false)}]; - ptrType$26.methods = [{prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$1.methods = [{prop: "Path", name: "Path", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "SetName", name: "SetName", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Scope", name: "Scope", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "Complete", name: "Complete", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "MarkComplete", name: "MarkComplete", pkg: "", typ: $funcType([], [], false)}, {prop: "Imports", name: "Imports", pkg: "", typ: $funcType([], [sliceType$24], false)}, {prop: "SetImports", name: "SetImports", pkg: "", typ: $funcType([sliceType$24], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$62.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "setConst", name: "setConst", pkg: "go/types", typ: $funcType([token.Token, $String], [], false)}, {prop: "isNil", name: "isNil", pkg: "go/types", typ: $funcType([], [$Bool], false)}, {prop: "assignableTo", name: "assignableTo", pkg: "go/types", typ: $funcType([ptrType$6, Type, ptrType$34], [$Bool, errors$1.Code], false)}, {prop: "convertibleTo", name: "convertibleTo", pkg: "go/types", typ: $funcType([ptrType$6, Type, ptrType$34], [$Bool], false)}]; - ptrType$54.methods = [{prop: "insert", name: "insert", pkg: "go/types", typ: $funcType([Object], [Object], false)}]; - ptrType$117.methods = [{prop: "Parent", name: "Parent", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "Pkg", name: "Pkg", pkg: "", typ: $funcType([], [ptrType$1], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Exported", name: "Exported", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Id", name: "Id", pkg: "", typ: $funcType([], [$String], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "order", name: "order", pkg: "go/types", typ: $funcType([], [$Uint32], false)}, {prop: "color", name: "color", pkg: "go/types", typ: $funcType([], [color], false)}, {prop: "scopePos", name: "scopePos", pkg: "go/types", typ: $funcType([], [token.Pos], false)}, {prop: "setParent", name: "setParent", pkg: "go/types", typ: $funcType([ptrType], [], false)}, {prop: "setType", name: "setType", pkg: "go/types", typ: $funcType([Type], [], false)}, {prop: "setOrder", name: "setOrder", pkg: "go/types", typ: $funcType([$Uint32], [], false)}, {prop: "setColor", name: "setColor", pkg: "go/types", typ: $funcType([color], [], false)}, {prop: "setScopePos", name: "setScopePos", pkg: "go/types", typ: $funcType([token.Pos], [], false)}, {prop: "sameId", name: "sameId", pkg: "go/types", typ: $funcType([ptrType$1, $String], [$Bool], false)}]; - color.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$31.methods = [{prop: "Imported", name: "Imported", pkg: "", typ: $funcType([], [ptrType$1], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$32.methods = [{prop: "Val", name: "Val", pkg: "", typ: $funcType([], [constant.Value], false)}, {prop: "isDependency", name: "isDependency", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$17.methods = [{prop: "IsAlias", name: "IsAlias", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$16.methods = [{prop: "Anonymous", name: "Anonymous", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Embedded", name: "Embedded", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsField", name: "IsField", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Origin", name: "Origin", pkg: "", typ: $funcType([], [ptrType$16], false)}, {prop: "isDependency", name: "isDependency", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$2.methods = [{prop: "FullName", name: "FullName", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Scope", name: "Scope", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "Origin", name: "Origin", pkg: "", typ: $funcType([], [ptrType$2], false)}, {prop: "hasPtrRecv", name: "hasPtrRecv", pkg: "go/types", typ: $funcType([], [$Bool], false)}, {prop: "isDependency", name: "isDependency", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$91.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$18.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$33.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$9.methods = [{prop: "resolve", name: "resolve", pkg: "go/types", typ: $funcType([], [ptrType$9], false)}, {prop: "state", name: "state", pkg: "go/types", typ: $funcType([], [namedState], false)}, {prop: "setState", name: "setState", pkg: "go/types", typ: $funcType([namedState], [], false)}, {prop: "cleanup", name: "cleanup", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "Obj", name: "Obj", pkg: "", typ: $funcType([], [ptrType$17], false)}, {prop: "Origin", name: "Origin", pkg: "", typ: $funcType([], [ptrType$9], false)}, {prop: "TypeParams", name: "TypeParams", pkg: "", typ: $funcType([], [ptrType$48], false)}, {prop: "SetTypeParams", name: "SetTypeParams", pkg: "", typ: $funcType([sliceType$9], [], false)}, {prop: "TypeArgs", name: "TypeArgs", pkg: "", typ: $funcType([], [ptrType$56], false)}, {prop: "NumMethods", name: "NumMethods", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [ptrType$2], false)}, {prop: "expandMethod", name: "expandMethod", pkg: "go/types", typ: $funcType([$Int], [ptrType$2], false)}, {prop: "SetUnderlying", name: "SetUnderlying", pkg: "", typ: $funcType([Type], [], false)}, {prop: "AddMethod", name: "AddMethod", pkg: "", typ: $funcType([ptrType$2], [], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "under", name: "under", pkg: "go/types", typ: $funcType([], [Type], false)}, {prop: "setUnderlying", name: "setUnderlying", pkg: "go/types", typ: $funcType([Type], [], false)}, {prop: "lookupMethod", name: "lookupMethod", pkg: "go/types", typ: $funcType([ptrType$1, $String, $Bool], [$Int, ptrType$2], false)}, {prop: "expandUnderlying", name: "expandUnderlying", pkg: "go/types", typ: $funcType([], [Type], false)}]; - ptrType$118.methods = [{prop: "recordCanon", name: "recordCanon", pkg: "go/types", typ: $funcType([ptrType$14, ptrType$14], [], false)}, {prop: "recordInstance", name: "recordInstance", pkg: "go/types", typ: $funcType([ptrType$1, token.Pos, sliceType$9, sliceType$3, sliceType$11], [], false)}, {prop: "assign", name: "assign", pkg: "go/types", typ: $funcType([ptrType$1, token.Pos, ptrType$14, Type], [], false)}, {prop: "localNamedVertex", name: "localNamedVertex", pkg: "go/types", typ: $funcType([ptrType$1, ptrType$9], [$Int], false)}, {prop: "typeParamVertex", name: "typeParamVertex", pkg: "go/types", typ: $funcType([ptrType$14], [$Int], false)}, {prop: "addEdge", name: "addEdge", pkg: "go/types", typ: $funcType([$Int, $Int, $Int, token.Pos, Type], [], false)}]; - ptrType$119.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "At", name: "At", pkg: "", typ: $funcType([$Int], [ptrType$3], false)}, {prop: "Lookup", name: "Lookup", pkg: "", typ: $funcType([ptrType$1, $String], [ptrType$3], false)}]; - methodSet.methods = [{prop: "add", name: "add", pkg: "go/types", typ: $funcType([sliceType, sliceType$13, $Bool, $Bool], [methodSet], false)}, {prop: "addOne", name: "addOne", pkg: "go/types", typ: $funcType([ptrType$2, sliceType$13, $Bool, $Bool], [methodSet], false)}]; - ptrType$28.methods = [{prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$120.methods = [{prop: "lookup", name: "lookup", pkg: "go/types", typ: $funcType([ptrType$9], [ptrType$9], false)}, {prop: "add", name: "add", pkg: "go/types", typ: $funcType([ptrType$9], [], false)}]; - ptrType$92.methods = [{prop: "insert", name: "insert", pkg: "go/types", typ: $funcType([ptrType$65], [], false)}, {prop: "gotoTarget", name: "gotoTarget", pkg: "go/types", typ: $funcType([$String], [ptrType$65], false)}, {prop: "enclosingTarget", name: "enclosingTarget", pkg: "go/types", typ: $funcType([$String], [ptrType$65], false)}]; - ptrType$13.methods = [{prop: "typeSet", name: "typeSet", pkg: "go/types", typ: $funcType([], [ptrType$8], false)}, {prop: "MarkImplicit", name: "MarkImplicit", pkg: "", typ: $funcType([], [], false)}, {prop: "NumExplicitMethods", name: "NumExplicitMethods", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "ExplicitMethod", name: "ExplicitMethod", pkg: "", typ: $funcType([$Int], [ptrType$2], false)}, {prop: "NumEmbeddeds", name: "NumEmbeddeds", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Embedded", name: "Embedded", pkg: "", typ: $funcType([$Int], [ptrType$9], false)}, {prop: "EmbeddedType", name: "EmbeddedType", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "NumMethods", name: "NumMethods", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [ptrType$2], false)}, {prop: "Empty", name: "Empty", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsComparable", name: "IsComparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsMethodSet", name: "IsMethodSet", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsImplicit", name: "IsImplicit", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Complete", name: "Complete", pkg: "", typ: $funcType([], [ptrType$13], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "cleanup", name: "cleanup", pkg: "go/types", typ: $funcType([], [], false)}]; - ptrType$95.methods = [{prop: "cost", name: "cost", pkg: "go/types", typ: $funcType([], [$Int], false)}]; - ptrType$96.methods = [{prop: "add", name: "add", pkg: "go/types", typ: $funcType([ptrType$95], [], false)}]; - nodeQueue.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}]; - ptrType$94.methods = [{prop: "Push", name: "Push", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "Pop", name: "Pop", pkg: "", typ: $funcType([], [$emptyInterface], false)}]; - ptrType$121.methods = [{prop: "isParameterized", name: "isParameterized", pkg: "go/types", typ: $funcType([Type], [$Bool], false)}, {prop: "isParameterizedTypeList", name: "isParameterizedTypeList", pkg: "go/types", typ: $funcType([sliceType$3], [$Bool], false)}]; - ptrType$122.methods = [{prop: "typ", name: "typ", pkg: "go/types", typ: $funcType([Type], [], false)}, {prop: "varList", name: "varList", pkg: "go/types", typ: $funcType([sliceType$10], [], false)}]; - ptrType$104.methods = [{prop: "empty", name: "empty", pkg: "go/types", typ: $funcType([], [$Bool], false)}, {prop: "pos", name: "pos", pkg: "go/types", typ: $funcType([], [token.Pos], false)}, {prop: "msg", name: "msg", pkg: "go/types", typ: $funcType([ptrType$24, Qualifier], [$String], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "errorf", name: "errorf", pkg: "go/types", typ: $funcType([token.Pos, $String, sliceType$6], [], true)}]; - posSpan.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}]; - atPos.methods = [{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}]; - importDecl.methods = [{prop: "node", name: "node", pkg: "go/types", typ: $funcType([], [ast.Node], false)}]; - constDecl.methods = [{prop: "node", name: "node", pkg: "go/types", typ: $funcType([], [ast.Node], false)}]; - varDecl.methods = [{prop: "node", name: "node", pkg: "go/types", typ: $funcType([], [ast.Node], false)}]; - typeDecl.methods = [{prop: "node", name: "node", pkg: "go/types", typ: $funcType([], [ast.Node], false)}]; - funcDecl.methods = [{prop: "node", name: "node", pkg: "go/types", typ: $funcType([], [ast.Node], false)}]; - ptrType$51.methods = [{prop: "instanceHash", name: "instanceHash", pkg: "go/types", typ: $funcType([Type, sliceType$3], [$String], false)}, {prop: "lookup", name: "lookup", pkg: "go/types", typ: $funcType([$String, Type, sliceType$3], [Type], false)}, {prop: "update", name: "update", pkg: "go/types", typ: $funcType([$String, Type, sliceType$3, Type], [Type], false)}, {prop: "getID", name: "getID", pkg: "go/types", typ: $funcType([Type], [$Int], false)}]; - ptrType$123.methods = [{prop: "lookup", name: "lookup", pkg: "go/types", typ: $funcType([$String], [Object], false)}]; - ptrType$124.methods = [{prop: "describef", name: "describef", pkg: "go/types", typ: $funcType([positioner, $String, sliceType$6], [], true)}]; - ptrType$6.methods = [{prop: "langCompat", name: "langCompat", pkg: "go/types", typ: $funcType([ptrType$57], [], false)}, {prop: "allowVersion", name: "allowVersion", pkg: "go/types", typ: $funcType([ptrType$1, $Int, $Int], [$Bool], false)}, {prop: "validType", name: "validType", pkg: "go/types", typ: $funcType([ptrType$9], [], false)}, {prop: "validType0", name: "validType0", pkg: "go/types", typ: $funcType([Type, sliceType$7, sliceType$7], [$Bool], false)}, {prop: "ident", name: "ident", pkg: "go/types", typ: $funcType([ptrType$62, ptrType$30, ptrType$9, $Bool], [], false)}, {prop: "typ", name: "typ", pkg: "go/types", typ: $funcType([ast.Expr], [Type], false)}, {prop: "varType", name: "varType", pkg: "go/types", typ: $funcType([ast.Expr], [Type], false)}, {prop: "validVarType", name: "validVarType", pkg: "go/types", typ: $funcType([ast.Expr, Type], [], false)}, {prop: "definedType", name: "definedType", pkg: "go/types", typ: $funcType([ast.Expr, ptrType$9], [Type], false)}, {prop: "genericType", name: "genericType", pkg: "go/types", typ: $funcType([ast.Expr, ptrType$34], [Type], false)}, {prop: "typInternal", name: "typInternal", pkg: "go/types", typ: $funcType([ast.Expr, ptrType$9], [Type], false)}, {prop: "instantiatedType", name: "instantiatedType", pkg: "go/types", typ: $funcType([ptrType$112, ptrType$9], [Type], false)}, {prop: "arrayLength", name: "arrayLength", pkg: "go/types", typ: $funcType([ast.Expr], [$Int64], false)}, {prop: "typeList", name: "typeList", pkg: "go/types", typ: $funcType([sliceType$11], [sliceType$3], false)}, {prop: "newTypeParam", name: "newTypeParam", pkg: "go/types", typ: $funcType([ptrType$17, Type], [ptrType$14], false)}, {prop: "subst", name: "subst", pkg: "go/types", typ: $funcType([token.Pos, Type, substMap, ptrType$9, ptrType$51], [Type], false)}, {prop: "structType", name: "structType", pkg: "go/types", typ: $funcType([ptrType$11, ptrType$42], [], false)}, {prop: "declareInSet", name: "declareInSet", pkg: "go/types", typ: $funcType([ptrType$54, token.Pos, Object], [$Bool], false)}, {prop: "tag", name: "tag", pkg: "go/types", typ: $funcType([ptrType$57], [$String], false)}, {prop: "funcBody", name: "funcBody", pkg: "go/types", typ: $funcType([ptrType$58, $String, ptrType$27, ptrType$74, constant.Value], [], false)}, {prop: "usage", name: "usage", pkg: "go/types", typ: $funcType([ptrType], [], false)}, {prop: "simpleStmt", name: "simpleStmt", pkg: "go/types", typ: $funcType([ast.Stmt], [], false)}, {prop: "stmtList", name: "stmtList", pkg: "go/types", typ: $funcType([stmtContext, sliceType$17], [], false)}, {prop: "multipleDefaults", name: "multipleDefaults", pkg: "go/types", typ: $funcType([sliceType$17], [], false)}, {prop: "openScope", name: "openScope", pkg: "go/types", typ: $funcType([ast.Node, $String], [], false)}, {prop: "closeScope", name: "closeScope", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "suspendedCall", name: "suspendedCall", pkg: "go/types", typ: $funcType([$String, ptrType$86], [], false)}, {prop: "caseValues", name: "caseValues", pkg: "go/types", typ: $funcType([ptrType$62, sliceType$11, valueMap], [], false)}, {prop: "isNil", name: "isNil", pkg: "go/types", typ: $funcType([ast.Expr], [$Bool], false)}, {prop: "caseTypes", name: "caseTypes", pkg: "go/types", typ: $funcType([ptrType$62, sliceType$11, mapType$10], [Type], false)}, {prop: "stmt", name: "stmt", pkg: "go/types", typ: $funcType([stmtContext, ast.Stmt], [], false)}, {prop: "funcType", name: "funcType", pkg: "go/types", typ: $funcType([ptrType$27, ptrType$49, ptrType$44], [], false)}, {prop: "collectParams", name: "collectParams", pkg: "go/types", typ: $funcType([ptrType, ptrType$49, $Bool], [sliceType$10, $Bool], false)}, {prop: "isTerminating", name: "isTerminating", pkg: "go/types", typ: $funcType([ast.Stmt, $String], [$Bool], false)}, {prop: "isTerminatingList", name: "isTerminatingList", pkg: "go/types", typ: $funcType([sliceType$17, $String], [$Bool], false)}, {prop: "isTerminatingSwitch", name: "isTerminatingSwitch", pkg: "go/types", typ: $funcType([ptrType$74, $String], [$Bool], false)}, {prop: "arityMatch", name: "arityMatch", pkg: "go/types", typ: $funcType([ptrType$88, ptrType$88], [], false)}, {prop: "declarePkgObj", name: "declarePkgObj", pkg: "go/types", typ: $funcType([ptrType$30, Object, ptrType$58], [], false)}, {prop: "filename", name: "filename", pkg: "go/types", typ: $funcType([$Int], [$String], false)}, {prop: "importPackage", name: "importPackage", pkg: "go/types", typ: $funcType([positioner, $String, $String], [ptrType$1], false)}, {prop: "collectObjects", name: "collectObjects", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "unpackRecv", name: "unpackRecv", pkg: "go/types", typ: $funcType([ast.Expr, $Bool], [$Bool, ptrType$30, sliceType$22], false)}, {prop: "resolveBaseTypeName", name: "resolveBaseTypeName", pkg: "go/types", typ: $funcType([$Bool, ptrType$30], [$Bool, ptrType$17], false)}, {prop: "packageObjects", name: "packageObjects", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "unusedImports", name: "unusedImports", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "errorUnusedPkg", name: "errorUnusedPkg", pkg: "go/types", typ: $funcType([ptrType$31], [], false)}, {prop: "newNamed", name: "newNamed", pkg: "go/types", typ: $funcType([ptrType$17, Type, sliceType], [ptrType$9], false)}, {prop: "newNamedInstance", name: "newNamedInstance", pkg: "go/types", typ: $funcType([token.Pos, ptrType$9, sliceType$3, ptrType$9], [ptrType$9], false)}, {prop: "context", name: "context", pkg: "go/types", typ: $funcType([], [ptrType$51], false)}, {prop: "monomorph", name: "monomorph", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "reportInstanceLoop", name: "reportInstanceLoop", pkg: "go/types", typ: $funcType([$Int], [], false)}, {prop: "missingMethod", name: "missingMethod", pkg: "go/types", typ: $funcType([Type, ptrType$13, $Bool], [ptrType$2, ptrType$2], false)}, {prop: "missingMethodCause", name: "missingMethodCause", pkg: "go/types", typ: $funcType([Type, Type, ptrType$2, ptrType$2], [$String], false)}, {prop: "interfacePtrError", name: "interfacePtrError", pkg: "go/types", typ: $funcType([Type], [$String], false)}, {prop: "funcString", name: "funcString", pkg: "go/types", typ: $funcType([ptrType$2, $Bool], [$String], false)}, {prop: "assertableTo", name: "assertableTo", pkg: "go/types", typ: $funcType([ptrType$13, Type], [ptrType$2, ptrType$2], false)}, {prop: "newAssertableTo", name: "newAssertableTo", pkg: "go/types", typ: $funcType([ptrType$13, Type], [$Bool], false)}, {prop: "labels", name: "labels", pkg: "go/types", typ: $funcType([ptrType$74], [], false)}, {prop: "blockBranches", name: "blockBranches", pkg: "go/types", typ: $funcType([ptrType, ptrType$92, ptrType$65, sliceType$17], [sliceType$26], false)}, {prop: "newInterface", name: "newInterface", pkg: "go/types", typ: $funcType([], [ptrType$13], false)}, {prop: "interfaceType", name: "interfaceType", pkg: "go/types", typ: $funcType([ptrType$13, ptrType$45, ptrType$9], [], false)}, {prop: "instance", name: "instance", pkg: "go/types", typ: $funcType([token.Pos, Type, sliceType$3, ptrType$9, ptrType$51], [Type], false)}, {prop: "validateTArgLen", name: "validateTArgLen", pkg: "go/types", typ: $funcType([token.Pos, $Int, $Int], [$Bool], false)}, {prop: "verify", name: "verify", pkg: "go/types", typ: $funcType([token.Pos, sliceType$9, sliceType$3, ptrType$51], [$Int, $error], false)}, {prop: "implements$", name: "implements", pkg: "go/types", typ: $funcType([Type, Type, $Bool, ptrType$34], [$Bool], false)}, {prop: "initOrder", name: "initOrder", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "reportCycle", name: "reportCycle", pkg: "go/types", typ: $funcType([sliceType$8], [], false)}, {prop: "infer", name: "infer", pkg: "go/types", typ: $funcType([positioner, sliceType$9, sliceType$3, ptrType$15, sliceType$29], [sliceType$3], false)}, {prop: "inferB", name: "inferB", pkg: "go/types", typ: $funcType([positioner, sliceType$9, sliceType$3], [sliceType$3, $Int], false)}, {prop: "indexExpr", name: "indexExpr", pkg: "go/types", typ: $funcType([ptrType$62, ptrType$112], [$Bool], false)}, {prop: "sliceExpr", name: "sliceExpr", pkg: "go/types", typ: $funcType([ptrType$62, ptrType$100], [], false)}, {prop: "singleIndex", name: "singleIndex", pkg: "go/types", typ: $funcType([ptrType$112], [ast.Expr], false)}, {prop: "index", name: "index", pkg: "go/types", typ: $funcType([ast.Expr, $Int64], [Type, $Int64], false)}, {prop: "isValidIndex", name: "isValidIndex", pkg: "go/types", typ: $funcType([ptrType$62, errors$1.Code, $String, $Bool], [$Bool], false)}, {prop: "indexedElts", name: "indexedElts", pkg: "go/types", typ: $funcType([sliceType$11, Type, $Int64], [$Int64], false)}, {prop: "op", name: "op", pkg: "go/types", typ: $funcType([opPredicates, ptrType$62, token.Token], [$Bool], false)}, {prop: "overflow", name: "overflow", pkg: "go/types", typ: $funcType([ptrType$62, token.Pos], [], false)}, {prop: "unary", name: "unary", pkg: "go/types", typ: $funcType([ptrType$62, ptrType$20], [], false)}, {prop: "representable", name: "representable", pkg: "go/types", typ: $funcType([ptrType$62, ptrType$4], [], false)}, {prop: "representation", name: "representation", pkg: "go/types", typ: $funcType([ptrType$62, ptrType$4], [constant.Value, errors$1.Code], false)}, {prop: "invalidConversion", name: "invalidConversion", pkg: "go/types", typ: $funcType([errors$1.Code, ptrType$62, Type], [], false)}, {prop: "updateExprType", name: "updateExprType", pkg: "go/types", typ: $funcType([ast.Expr, Type, $Bool], [], false)}, {prop: "updateExprType0", name: "updateExprType0", pkg: "go/types", typ: $funcType([ast.Expr, ast.Expr, Type, $Bool], [], false)}, {prop: "updateExprVal", name: "updateExprVal", pkg: "go/types", typ: $funcType([ast.Expr, constant.Value], [], false)}, {prop: "convertUntyped", name: "convertUntyped", pkg: "go/types", typ: $funcType([ptrType$62, Type], [], false)}, {prop: "implicitTypeAndValue", name: "implicitTypeAndValue", pkg: "go/types", typ: $funcType([ptrType$62, Type], [Type, constant.Value, errors$1.Code], false)}, {prop: "comparison", name: "comparison", pkg: "go/types", typ: $funcType([ptrType$62, ptrType$62, token.Token, $Bool], [], false)}, {prop: "incomparableCause", name: "incomparableCause", pkg: "go/types", typ: $funcType([Type], [$String], false)}, {prop: "kindString", name: "kindString", pkg: "go/types", typ: $funcType([Type], [$String], false)}, {prop: "shift", name: "shift", pkg: "go/types", typ: $funcType([ptrType$62, ptrType$62, ast.Expr, token.Token], [], false)}, {prop: "binary", name: "binary", pkg: "go/types", typ: $funcType([ptrType$62, ast.Expr, ast.Expr, ast.Expr, token.Token, token.Pos], [], false)}, {prop: "rawExpr", name: "rawExpr", pkg: "go/types", typ: $funcType([ptrType$62, ast.Expr, Type, $Bool], [exprKind], false)}, {prop: "nonGeneric", name: "nonGeneric", pkg: "go/types", typ: $funcType([ptrType$62], [], false)}, {prop: "exprInternal", name: "exprInternal", pkg: "go/types", typ: $funcType([ptrType$62, ast.Expr, Type], [exprKind], false)}, {prop: "typeAssertion", name: "typeAssertion", pkg: "go/types", typ: $funcType([ast.Expr, ptrType$62, Type, $Bool], [], false)}, {prop: "expr", name: "expr", pkg: "go/types", typ: $funcType([ptrType$62, ast.Expr], [], false)}, {prop: "multiExpr", name: "multiExpr", pkg: "go/types", typ: $funcType([ptrType$62, ast.Expr], [], false)}, {prop: "exprWithHint", name: "exprWithHint", pkg: "go/types", typ: $funcType([ptrType$62, ast.Expr, Type], [], false)}, {prop: "exprOrType", name: "exprOrType", pkg: "go/types", typ: $funcType([ptrType$62, ast.Expr, $Bool], [], false)}, {prop: "exclude", name: "exclude", pkg: "go/types", typ: $funcType([ptrType$62, $Uint], [], false)}, {prop: "singleValue", name: "singleValue", pkg: "go/types", typ: $funcType([ptrType$62], [], false)}, {prop: "qualifier", name: "qualifier", pkg: "go/types", typ: $funcType([ptrType$1], [$String], false)}, {prop: "markImports", name: "markImports", pkg: "go/types", typ: $funcType([ptrType$1], [], false)}, {prop: "sprintf", name: "sprintf", pkg: "go/types", typ: $funcType([$String, sliceType$6], [$String], true)}, {prop: "trace", name: "trace", pkg: "go/types", typ: $funcType([token.Pos, $String, sliceType$6], [], true)}, {prop: "dump", name: "dump", pkg: "go/types", typ: $funcType([$String, sliceType$6], [], true)}, {prop: "report", name: "report", pkg: "go/types", typ: $funcType([ptrType$104], [], false)}, {prop: "error", name: "error", pkg: "go/types", typ: $funcType([positioner, errors$1.Code, $String], [], false)}, {prop: "errorf", name: "errorf", pkg: "go/types", typ: $funcType([positioner, errors$1.Code, $String, sliceType$6], [], true)}, {prop: "softErrorf", name: "softErrorf", pkg: "go/types", typ: $funcType([positioner, errors$1.Code, $String, sliceType$6], [], true)}, {prop: "versionErrorf", name: "versionErrorf", pkg: "go/types", typ: $funcType([positioner, $String, $String, sliceType$6], [], true)}, {prop: "reportAltDecl", name: "reportAltDecl", pkg: "go/types", typ: $funcType([Object], [], false)}, {prop: "declare", name: "declare", pkg: "go/types", typ: $funcType([ptrType, ptrType$30, Object, token.Pos], [], false)}, {prop: "objDecl", name: "objDecl", pkg: "go/types", typ: $funcType([Object, ptrType$9], [], false)}, {prop: "validCycle", name: "validCycle", pkg: "go/types", typ: $funcType([Object], [$Bool], false)}, {prop: "cycleError", name: "cycleError", pkg: "go/types", typ: $funcType([sliceType$8], [], false)}, {prop: "walkDecls", name: "walkDecls", pkg: "go/types", typ: $funcType([sliceType$42, funcType$7], [], false)}, {prop: "walkDecl", name: "walkDecl", pkg: "go/types", typ: $funcType([ast.Decl, funcType$7], [], false)}, {prop: "constDecl", name: "constDecl", pkg: "go/types", typ: $funcType([ptrType$32, ast.Expr, ast.Expr, $Bool], [], false)}, {prop: "varDecl", name: "varDecl", pkg: "go/types", typ: $funcType([ptrType$16, sliceType$10, ast.Expr, ast.Expr], [], false)}, {prop: "isImportedConstraint", name: "isImportedConstraint", pkg: "go/types", typ: $funcType([Type], [$Bool], false)}, {prop: "typeDecl", name: "typeDecl", pkg: "go/types", typ: $funcType([ptrType$17, ptrType$90, ptrType$9], [], false)}, {prop: "collectTypeParams", name: "collectTypeParams", pkg: "go/types", typ: $funcType([ptrType$84, ptrType$49], [], false)}, {prop: "bound", name: "bound", pkg: "go/types", typ: $funcType([ast.Expr], [Type], false)}, {prop: "declareTypeParams", name: "declareTypeParams", pkg: "go/types", typ: $funcType([sliceType$9, sliceType$22], [sliceType$9], false)}, {prop: "collectMethods", name: "collectMethods", pkg: "go/types", typ: $funcType([ptrType$17], [], false)}, {prop: "checkFieldUniqueness", name: "checkFieldUniqueness", pkg: "go/types", typ: $funcType([ptrType$9], [], false)}, {prop: "funcDecl", name: "funcDecl", pkg: "go/types", typ: $funcType([ptrType$2, ptrType$58], [], false)}, {prop: "declStmt", name: "declStmt", pkg: "go/types", typ: $funcType([ast.Decl], [], false)}, {prop: "conversion", name: "conversion", pkg: "go/types", typ: $funcType([ptrType$62, Type], [], false)}, {prop: "addDeclDep", name: "addDeclDep", pkg: "go/types", typ: $funcType([Object], [], false)}, {prop: "brokenAlias", name: "brokenAlias", pkg: "go/types", typ: $funcType([ptrType$17], [], false)}, {prop: "validAlias", name: "validAlias", pkg: "go/types", typ: $funcType([ptrType$17, Type], [], false)}, {prop: "isBrokenAlias", name: "isBrokenAlias", pkg: "go/types", typ: $funcType([ptrType$17], [$Bool], false)}, {prop: "rememberUntyped", name: "rememberUntyped", pkg: "go/types", typ: $funcType([ast.Expr, $Bool, operandMode, ptrType$4, constant.Value], [], false)}, {prop: "later", name: "later", pkg: "go/types", typ: $funcType([funcType$1], [ptrType$124], false)}, {prop: "push", name: "push", pkg: "go/types", typ: $funcType([Object], [$Int], false)}, {prop: "pop", name: "pop", pkg: "go/types", typ: $funcType([], [Object], false)}, {prop: "needsCleanup", name: "needsCleanup", pkg: "go/types", typ: $funcType([cleaner], [], false)}, {prop: "initFiles", name: "initFiles", pkg: "go/types", typ: $funcType([sliceType$35], [], false)}, {prop: "handleBailout", name: "handleBailout", pkg: "go/types", typ: $funcType([ptrType$103], [], false)}, {prop: "Files", name: "Files", pkg: "", typ: $funcType([sliceType$35], [$error], false)}, {prop: "checkFiles", name: "checkFiles", pkg: "go/types", typ: $funcType([sliceType$35], [$error], false)}, {prop: "processDelayed", name: "processDelayed", pkg: "go/types", typ: $funcType([$Int], [], false)}, {prop: "cleanup", name: "cleanup", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "record", name: "record", pkg: "go/types", typ: $funcType([ptrType$62], [], false)}, {prop: "recordUntyped", name: "recordUntyped", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "recordTypeAndValue", name: "recordTypeAndValue", pkg: "go/types", typ: $funcType([ast.Expr, operandMode, Type, constant.Value], [], false)}, {prop: "recordBuiltinType", name: "recordBuiltinType", pkg: "go/types", typ: $funcType([ast.Expr, ptrType$27], [], false)}, {prop: "recordCommaOkTypes", name: "recordCommaOkTypes", pkg: "go/types", typ: $funcType([ast.Expr, arrayType$3], [], false)}, {prop: "recordInstance", name: "recordInstance", pkg: "go/types", typ: $funcType([ast.Expr, sliceType$3, Type], [], false)}, {prop: "recordDef", name: "recordDef", pkg: "go/types", typ: $funcType([ptrType$30, Object], [], false)}, {prop: "recordUse", name: "recordUse", pkg: "go/types", typ: $funcType([ptrType$30, Object], [], false)}, {prop: "recordImplicit", name: "recordImplicit", pkg: "go/types", typ: $funcType([ast.Node, Object], [], false)}, {prop: "recordSelection", name: "recordSelection", pkg: "go/types", typ: $funcType([ptrType$36, SelectionKind, Type, Object, sliceType$13, $Bool], [], false)}, {prop: "recordScope", name: "recordScope", pkg: "go/types", typ: $funcType([ast.Node, ptrType], [], false)}, {prop: "funcInst", name: "funcInst", pkg: "go/types", typ: $funcType([ptrType$62, ptrType$112], [], false)}, {prop: "instantiateSignature", name: "instantiateSignature", pkg: "go/types", typ: $funcType([token.Pos, ptrType$27, sliceType$3, sliceType$11], [ptrType$27], false)}, {prop: "callExpr", name: "callExpr", pkg: "go/types", typ: $funcType([ptrType$62, ptrType$86], [exprKind], false)}, {prop: "exprList", name: "exprList", pkg: "go/types", typ: $funcType([sliceType$11, $Bool], [sliceType$29, $Bool], false)}, {prop: "arguments$", name: "arguments", pkg: "go/types", typ: $funcType([ptrType$86, ptrType$27, sliceType$3, sliceType$29, sliceType$11], [ptrType$27], false)}, {prop: "selector", name: "selector", pkg: "go/types", typ: $funcType([ptrType$62, ptrType$36, ptrType$9, $Bool], [], false)}, {prop: "use", name: "use", pkg: "go/types", typ: $funcType([sliceType$11], [], true)}, {prop: "useLHS", name: "useLHS", pkg: "go/types", typ: $funcType([sliceType$11], [], true)}, {prop: "builtin", name: "builtin", pkg: "go/types", typ: $funcType([ptrType$62, ptrType$86, builtinId], [$Bool], false)}, {prop: "applyTypeFunc", name: "applyTypeFunc", pkg: "go/types", typ: $funcType([funcType$8, ptrType$62, builtinId], [Type], false)}, {prop: "assignment", name: "assignment", pkg: "go/types", typ: $funcType([ptrType$62, Type, $String], [], false)}, {prop: "initConst", name: "initConst", pkg: "go/types", typ: $funcType([ptrType$32, ptrType$62], [], false)}, {prop: "initVar", name: "initVar", pkg: "go/types", typ: $funcType([ptrType$16, ptrType$62, $String], [Type], false)}, {prop: "assignVar", name: "assignVar", pkg: "go/types", typ: $funcType([ast.Expr, ptrType$62], [Type], false)}, {prop: "typesSummary", name: "typesSummary", pkg: "go/types", typ: $funcType([sliceType$3, $Bool], [$String], false)}, {prop: "assignError", name: "assignError", pkg: "go/types", typ: $funcType([sliceType$11, $Int, $Int], [], false)}, {prop: "initVars", name: "initVars", pkg: "go/types", typ: $funcType([sliceType$10, sliceType$11, ast.Stmt], [], false)}, {prop: "assignVars", name: "assignVars", pkg: "go/types", typ: $funcType([sliceType$11, sliceType$11], [], false)}, {prop: "shortVarDecl", name: "shortVarDecl", pkg: "go/types", typ: $funcType([positioner, sliceType$11, sliceType$11], [], false)}]; - ptrType$29.methods = [{prop: "Dir", name: "Dir", pkg: "", typ: $funcType([], [ChanDir], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$4.methods = [{prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [BasicKind], false)}, {prop: "Info", name: "Info", pkg: "", typ: $funcType([], [BasicInfo], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$10.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - Error.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; - ptrType$101.methods = [{prop: "alignof", name: "alignof", pkg: "go/types", typ: $funcType([Type], [$Int64], false)}, {prop: "offsetsof", name: "offsetsof", pkg: "go/types", typ: $funcType([ptrType$11], [sliceType$19], false)}, {prop: "offsetof", name: "offsetof", pkg: "go/types", typ: $funcType([Type, sliceType$13], [$Int64], false)}, {prop: "sizeof", name: "sizeof", pkg: "go/types", typ: $funcType([Type], [$Int64], false)}, {prop: "Check", name: "Check", pkg: "", typ: $funcType([$String, ptrType$24, sliceType$35, ptrType$110], [ptrType$1, $error], false)}]; - ptrType$110.methods = [{prop: "TypeOf", name: "TypeOf", pkg: "", typ: $funcType([ast.Expr], [Type], false)}, {prop: "ObjectOf", name: "ObjectOf", pkg: "", typ: $funcType([ptrType$30], [Object], false)}]; - TypeAndValue.methods = [{prop: "IsVoid", name: "IsVoid", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsType", name: "IsType", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsBuiltin", name: "IsBuiltin", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsValue", name: "IsValue", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsNil", name: "IsNil", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Addressable", name: "Addressable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Assignable", name: "Assignable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "HasOk", name: "HasOk", pkg: "", typ: $funcType([], [$Bool], false)}]; - ptrType$102.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; - version.init("go/types", [{prop: "major", name: "major", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "minor", name: "minor", embedded: false, exported: false, typ: $Int, tag: ""}]); - Union.init("go/types", [{prop: "terms", name: "terms", embedded: false, exported: false, typ: sliceType$12, tag: ""}]); - Term.init("go/types", [{prop: "tilde", name: "tilde", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: Type, tag: ""}]); - unifier.init("go/types", [{prop: "exact", name: "exact", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "x", name: "x", embedded: false, exported: false, typ: tparamsList, tag: ""}, {prop: "y", name: "y", embedded: false, exported: false, typ: tparamsList, tag: ""}, {prop: "types", name: "types", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "depth", name: "depth", embedded: false, exported: false, typ: $Int, tag: ""}]); - tparamsList.init("go/types", [{prop: "unifier", name: "unifier", embedded: false, exported: false, typ: ptrType$22, tag: ""}, {prop: "tparams", name: "tparams", embedded: false, exported: false, typ: sliceType$9, tag: ""}, {prop: "indices", name: "indices", embedded: false, exported: false, typ: sliceType$13, tag: ""}]); - term.init("go/types", [{prop: "tilde", name: "tilde", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: Type, tag: ""}]); - Qualifier.init([ptrType$1], [$String], false); - typeWriter.init("go/types", [{prop: "buf", name: "buf", embedded: false, exported: false, typ: ptrType$114, tag: ""}, {prop: "seen", name: "seen", embedded: false, exported: false, typ: mapType, tag: ""}, {prop: "qf", name: "qf", embedded: false, exported: false, typ: Qualifier, tag: ""}, {prop: "ctxt", name: "ctxt", embedded: false, exported: false, typ: ptrType$51, tag: ""}, {prop: "tparams", name: "tparams", embedded: false, exported: false, typ: ptrType$48, tag: ""}, {prop: "paramNames", name: "paramNames", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "tpSubscripts", name: "tpSubscripts", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "pkgInfo", name: "pkgInfo", embedded: false, exported: false, typ: $Bool, tag: ""}]); - _TypeSet.init("go/types", [{prop: "methods", name: "methods", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "terms", name: "terms", embedded: false, exported: false, typ: termlist, tag: ""}, {prop: "comparable", name: "comparable", embedded: false, exported: false, typ: $Bool, tag: ""}]); - byUniqueMethodName.init(ptrType$2); - TypeParam.init("go/types", [{prop: "check", name: "check", embedded: false, exported: false, typ: ptrType$6, tag: ""}, {prop: "id", name: "id", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "obj", name: "obj", embedded: false, exported: false, typ: ptrType$17, tag: ""}, {prop: "index", name: "index", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "bound", name: "bound", embedded: false, exported: false, typ: Type, tag: ""}]); - TypeParamList.init("go/types", [{prop: "tparams", name: "tparams", embedded: false, exported: false, typ: sliceType$9, tag: ""}]); - TypeList.init("go/types", [{prop: "types", name: "types", embedded: false, exported: false, typ: sliceType$3, tag: ""}]); - Type.init([{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Underlying", name: "Underlying", pkg: "", typ: $funcType([], [Type], false)}]); - Tuple.init("go/types", [{prop: "vars", name: "vars", embedded: false, exported: false, typ: sliceType$10, tag: ""}]); - termlist.init(ptrType$5); - substMap.init(ptrType$14, Type); - subster.init("go/types", [{prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "smap", name: "smap", embedded: false, exported: false, typ: substMap, tag: ""}, {prop: "check", name: "check", embedded: false, exported: false, typ: ptrType$6, tag: ""}, {prop: "expanding", name: "expanding", embedded: false, exported: false, typ: ptrType$9, tag: ""}, {prop: "ctxt", name: "ctxt", embedded: false, exported: false, typ: ptrType$51, tag: ""}]); - Struct.init("go/types", [{prop: "fields", name: "fields", embedded: false, exported: false, typ: sliceType$10, tag: ""}, {prop: "tags", name: "tags", embedded: false, exported: false, typ: sliceType$5, tag: ""}]); - valueMap.init($emptyInterface, sliceType$18); - valueType.init("go/types", [{prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: Type, tag: ""}]); - Slice.init("go/types", [{prop: "elem", name: "elem", embedded: false, exported: false, typ: Type, tag: ""}]); - Sizes.init([{prop: "Alignof", name: "Alignof", pkg: "", typ: $funcType([Type], [$Int64], false)}, {prop: "Offsetsof", name: "Offsetsof", pkg: "", typ: $funcType([sliceType$10], [sliceType$19], false)}, {prop: "Sizeof", name: "Sizeof", pkg: "", typ: $funcType([Type], [$Int64], false)}]); - StdSizes.init("", [{prop: "WordSize", name: "WordSize", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "MaxAlign", name: "MaxAlign", embedded: false, exported: true, typ: $Int64, tag: ""}]); - Signature.init("go/types", [{prop: "rparams", name: "rparams", embedded: false, exported: false, typ: ptrType$48, tag: ""}, {prop: "tparams", name: "tparams", embedded: false, exported: false, typ: ptrType$48, tag: ""}, {prop: "scope", name: "scope", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "recv", name: "recv", embedded: false, exported: false, typ: ptrType$16, tag: ""}, {prop: "params", name: "params", embedded: false, exported: false, typ: ptrType$15, tag: ""}, {prop: "results", name: "results", embedded: false, exported: false, typ: ptrType$15, tag: ""}, {prop: "variadic", name: "variadic", embedded: false, exported: false, typ: $Bool, tag: ""}]); - Selection.init("go/types", [{prop: "kind", name: "kind", embedded: false, exported: false, typ: SelectionKind, tag: ""}, {prop: "recv", name: "recv", embedded: false, exported: false, typ: Type, tag: ""}, {prop: "obj", name: "obj", embedded: false, exported: false, typ: Object, tag: ""}, {prop: "index", name: "index", embedded: false, exported: false, typ: sliceType$13, tag: ""}, {prop: "indirect", name: "indirect", embedded: false, exported: false, typ: $Bool, tag: ""}]); - Scope.init("go/types", [{prop: "parent", name: "parent", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "children", name: "children", embedded: false, exported: false, typ: sliceType$20, tag: ""}, {prop: "number", name: "number", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "elems", name: "elems", embedded: false, exported: false, typ: mapType$1, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "end", name: "end", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "comment", name: "comment", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "isFunc", name: "isFunc", embedded: false, exported: false, typ: $Bool, tag: ""}]); - lazyObject.init("go/types", [{prop: "parent", name: "parent", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "resolve", name: "resolve", embedded: false, exported: false, typ: funcType$4, tag: ""}, {prop: "obj", name: "obj", embedded: false, exported: false, typ: Object, tag: ""}, {prop: "once", name: "once", embedded: false, exported: false, typ: sync.Once, tag: ""}]); - declInfo.init("go/types", [{prop: "file", name: "file", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "lhs", name: "lhs", embedded: false, exported: false, typ: sliceType$10, tag: ""}, {prop: "vtyp", name: "vtyp", embedded: false, exported: false, typ: ast.Expr, tag: ""}, {prop: "init", name: "init", embedded: false, exported: false, typ: ast.Expr, tag: ""}, {prop: "inherited", name: "inherited", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "tdecl", name: "tdecl", embedded: false, exported: false, typ: ptrType$90, tag: ""}, {prop: "fdecl", name: "fdecl", embedded: false, exported: false, typ: ptrType$87, tag: ""}, {prop: "deps", name: "deps", embedded: false, exported: false, typ: mapType$2, tag: ""}]); - inSourceOrder.init(Object); - ifacePair.init("go/types", [{prop: "x", name: "x", embedded: false, exported: false, typ: ptrType$13, tag: ""}, {prop: "y", name: "y", embedded: false, exported: false, typ: ptrType$13, tag: ""}, {prop: "prev", name: "prev", embedded: false, exported: false, typ: ptrType$23, tag: ""}]); - Pointer.init("go/types", [{prop: "base", name: "base", embedded: false, exported: false, typ: Type, tag: ""}]); - Package.init("go/types", [{prop: "path", name: "path", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "scope", name: "scope", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "complete", name: "complete", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "imports", name: "imports", embedded: false, exported: false, typ: sliceType$24, tag: ""}, {prop: "fake", name: "fake", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "cgo", name: "cgo", embedded: false, exported: false, typ: $Bool, tag: ""}]); - operand.init("go/types", [{prop: "mode", name: "mode", embedded: false, exported: false, typ: operandMode, tag: ""}, {prop: "expr", name: "expr", embedded: false, exported: false, typ: ast.Expr, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: Type, tag: ""}, {prop: "val", name: "val", embedded: false, exported: false, typ: constant.Value, tag: ""}, {prop: "id", name: "id", embedded: false, exported: false, typ: builtinId, tag: ""}]); - objset.init($String, Object); - Object.init([{prop: "Exported", name: "Exported", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Id", name: "Id", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Parent", name: "Parent", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "Pkg", name: "Pkg", pkg: "", typ: $funcType([], [ptrType$1], false)}, {prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [Type], false)}, {prop: "color", name: "color", pkg: "go/types", typ: $funcType([], [color], false)}, {prop: "order", name: "order", pkg: "go/types", typ: $funcType([], [$Uint32], false)}, {prop: "sameId", name: "sameId", pkg: "go/types", typ: $funcType([ptrType$1, $String], [$Bool], false)}, {prop: "scopePos", name: "scopePos", pkg: "go/types", typ: $funcType([], [token.Pos], false)}, {prop: "setColor", name: "setColor", pkg: "go/types", typ: $funcType([color], [], false)}, {prop: "setOrder", name: "setOrder", pkg: "go/types", typ: $funcType([$Uint32], [], false)}, {prop: "setParent", name: "setParent", pkg: "go/types", typ: $funcType([ptrType], [], false)}, {prop: "setScopePos", name: "setScopePos", pkg: "go/types", typ: $funcType([token.Pos], [], false)}, {prop: "setType", name: "setType", pkg: "go/types", typ: $funcType([Type], [], false)}]); - object.init("go/types", [{prop: "parent", name: "parent", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "pkg", name: "pkg", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: Type, tag: ""}, {prop: "order_", name: "order_", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "color_", name: "color_", embedded: false, exported: false, typ: color, tag: ""}, {prop: "scopePos_", name: "scopePos_", embedded: false, exported: false, typ: token.Pos, tag: ""}]); - PkgName.init("go/types", [{prop: "object", name: "object", embedded: true, exported: false, typ: object, tag: ""}, {prop: "imported", name: "imported", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "used", name: "used", embedded: false, exported: false, typ: $Bool, tag: ""}]); - Const.init("go/types", [{prop: "object", name: "object", embedded: true, exported: false, typ: object, tag: ""}, {prop: "val", name: "val", embedded: false, exported: false, typ: constant.Value, tag: ""}]); - TypeName.init("go/types", [{prop: "object", name: "object", embedded: true, exported: false, typ: object, tag: ""}]); - Var.init("go/types", [{prop: "object", name: "object", embedded: true, exported: false, typ: object, tag: ""}, {prop: "embedded", name: "embedded", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "isField", name: "isField", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "used", name: "used", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "origin", name: "origin", embedded: false, exported: false, typ: ptrType$16, tag: ""}]); - Func.init("go/types", [{prop: "object", name: "object", embedded: true, exported: false, typ: object, tag: ""}, {prop: "hasPtrRecv_", name: "hasPtrRecv_", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "origin", name: "origin", embedded: false, exported: false, typ: ptrType$2, tag: ""}]); - Label.init("go/types", [{prop: "object", name: "object", embedded: true, exported: false, typ: object, tag: ""}, {prop: "used", name: "used", embedded: false, exported: false, typ: $Bool, tag: ""}]); - Builtin.init("go/types", [{prop: "object", name: "object", embedded: true, exported: false, typ: object, tag: ""}, {prop: "id", name: "id", embedded: false, exported: false, typ: builtinId, tag: ""}]); - Nil.init("go/types", [{prop: "object", name: "object", embedded: true, exported: false, typ: object, tag: ""}]); - Named.init("go/types", [{prop: "check", name: "check", embedded: false, exported: false, typ: ptrType$6, tag: ""}, {prop: "obj", name: "obj", embedded: false, exported: false, typ: ptrType$17, tag: ""}, {prop: "fromRHS", name: "fromRHS", embedded: false, exported: false, typ: Type, tag: ""}, {prop: "inst", name: "inst", embedded: false, exported: false, typ: ptrType$52, tag: ""}, {prop: "mu", name: "mu", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "state_", name: "state_", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "underlying", name: "underlying", embedded: false, exported: false, typ: Type, tag: ""}, {prop: "tparams", name: "tparams", embedded: false, exported: false, typ: ptrType$48, tag: ""}, {prop: "methods", name: "methods", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "loader", name: "loader", embedded: false, exported: false, typ: funcType$6, tag: ""}]); - instance.init("go/types", [{prop: "orig", name: "orig", embedded: false, exported: false, typ: ptrType$9, tag: ""}, {prop: "targs", name: "targs", embedded: false, exported: false, typ: ptrType$56, tag: ""}, {prop: "expandedMethods", name: "expandedMethods", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "ctxt", name: "ctxt", embedded: false, exported: false, typ: ptrType$51, tag: ""}]); - monoGraph.init("go/types", [{prop: "vertices", name: "vertices", embedded: false, exported: false, typ: sliceType$37, tag: ""}, {prop: "edges", name: "edges", embedded: false, exported: false, typ: sliceType$38, tag: ""}, {prop: "canon", name: "canon", embedded: false, exported: false, typ: mapType$3, tag: ""}, {prop: "nameIdx", name: "nameIdx", embedded: false, exported: false, typ: mapType$4, tag: ""}]); - monoVertex.init("go/types", [{prop: "weight", name: "weight", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "pre", name: "pre", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "len", name: "len", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "obj", name: "obj", embedded: false, exported: false, typ: ptrType$17, tag: ""}]); - monoEdge.init("go/types", [{prop: "dst", name: "dst", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "src", name: "src", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "weight", name: "weight", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: Type, tag: ""}]); - MethodSet.init("go/types", [{prop: "list", name: "list", embedded: false, exported: false, typ: sliceType$1, tag: ""}]); - methodSet.init($String, ptrType$3); - Map.init("go/types", [{prop: "key", name: "key", embedded: false, exported: false, typ: Type, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: Type, tag: ""}]); - embeddedType.init("go/types", [{prop: "typ", name: "typ", embedded: false, exported: false, typ: Type, tag: ""}, {prop: "index", name: "index", embedded: false, exported: false, typ: sliceType$13, tag: ""}, {prop: "indirect", name: "indirect", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "multiples", name: "multiples", embedded: false, exported: false, typ: $Bool, tag: ""}]); - instanceLookup.init("go/types", [{prop: "buf", name: "buf", embedded: false, exported: false, typ: arrayType$1, tag: ""}, {prop: "m", name: "m", embedded: false, exported: false, typ: mapType$5, tag: ""}]); - block.init("go/types", [{prop: "parent", name: "parent", embedded: false, exported: false, typ: ptrType$92, tag: ""}, {prop: "lstmt", name: "lstmt", embedded: false, exported: false, typ: ptrType$65, tag: ""}, {prop: "labels", name: "labels", embedded: false, exported: false, typ: mapType$6, tag: ""}]); - Interface.init("go/types", [{prop: "check", name: "check", embedded: false, exported: false, typ: ptrType$6, tag: ""}, {prop: "methods", name: "methods", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "embeddeds", name: "embeddeds", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "embedPos", name: "embedPos", embedded: false, exported: false, typ: ptrType$7, tag: ""}, {prop: "implicit", name: "implicit", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "complete", name: "complete", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "tset", name: "tset", embedded: false, exported: false, typ: ptrType$8, tag: ""}]); - dependency.init([{prop: "Exported", name: "Exported", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Id", name: "Id", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Parent", name: "Parent", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "Pkg", name: "Pkg", pkg: "", typ: $funcType([], [ptrType$1], false)}, {prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [Type], false)}, {prop: "color", name: "color", pkg: "go/types", typ: $funcType([], [color], false)}, {prop: "isDependency", name: "isDependency", pkg: "go/types", typ: $funcType([], [], false)}, {prop: "order", name: "order", pkg: "go/types", typ: $funcType([], [$Uint32], false)}, {prop: "sameId", name: "sameId", pkg: "go/types", typ: $funcType([ptrType$1, $String], [$Bool], false)}, {prop: "scopePos", name: "scopePos", pkg: "go/types", typ: $funcType([], [token.Pos], false)}, {prop: "setColor", name: "setColor", pkg: "go/types", typ: $funcType([color], [], false)}, {prop: "setOrder", name: "setOrder", pkg: "go/types", typ: $funcType([$Uint32], [], false)}, {prop: "setParent", name: "setParent", pkg: "go/types", typ: $funcType([ptrType], [], false)}, {prop: "setScopePos", name: "setScopePos", pkg: "go/types", typ: $funcType([token.Pos], [], false)}, {prop: "setType", name: "setType", pkg: "go/types", typ: $funcType([Type], [], false)}]); - graphNode.init("go/types", [{prop: "obj", name: "obj", embedded: false, exported: false, typ: dependency, tag: ""}, {prop: "pred", name: "pred", embedded: false, exported: false, typ: nodeSet, tag: ""}, {prop: "succ", name: "succ", embedded: false, exported: false, typ: nodeSet, tag: ""}, {prop: "index", name: "index", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "ndeps", name: "ndeps", embedded: false, exported: false, typ: $Int, tag: ""}]); - nodeSet.init(ptrType$95, $Bool); - nodeQueue.init(ptrType$95); - tpWalker.init("go/types", [{prop: "seen", name: "seen", embedded: false, exported: false, typ: mapType, tag: ""}, {prop: "tparams", name: "tparams", embedded: false, exported: false, typ: sliceType$9, tag: ""}]); - cycleFinder.init("go/types", [{prop: "tparams", name: "tparams", embedded: false, exported: false, typ: sliceType$9, tag: ""}, {prop: "types", name: "types", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "seen", name: "seen", embedded: false, exported: false, typ: mapType, tag: ""}]); - opPredicates.init(token.Token, funcType$3); - error_.init("go/types", [{prop: "desc", name: "desc", embedded: false, exported: false, typ: sliceType$31, tag: ""}, {prop: "code", name: "code", embedded: false, exported: false, typ: errors$1.Code, tag: ""}, {prop: "soft", name: "soft", embedded: false, exported: false, typ: $Bool, tag: ""}]); - errorDesc.init("go/types", [{prop: "posn", name: "posn", embedded: false, exported: false, typ: positioner, tag: ""}, {prop: "format", name: "format", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "args", name: "args", embedded: false, exported: false, typ: sliceType$6, tag: ""}]); - positioner.init([{prop: "Pos", name: "Pos", pkg: "", typ: $funcType([], [token.Pos], false)}]); - posSpan.init("go/types", [{prop: "start", name: "start", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "end", name: "end", embedded: false, exported: false, typ: token.Pos, tag: ""}]); - decl.init([{prop: "node", name: "node", pkg: "go/types", typ: $funcType([], [ast.Node], false)}]); - importDecl.init("go/types", [{prop: "spec", name: "spec", embedded: false, exported: false, typ: ptrType$106, tag: ""}]); - constDecl.init("go/types", [{prop: "spec", name: "spec", embedded: false, exported: false, typ: ptrType$88, tag: ""}, {prop: "iota", name: "iota", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: ast.Expr, tag: ""}, {prop: "init", name: "init", embedded: false, exported: false, typ: sliceType$11, tag: ""}, {prop: "inherited", name: "inherited", embedded: false, exported: false, typ: $Bool, tag: ""}]); - varDecl.init("go/types", [{prop: "spec", name: "spec", embedded: false, exported: false, typ: ptrType$88, tag: ""}]); - typeDecl.init("go/types", [{prop: "spec", name: "spec", embedded: false, exported: false, typ: ptrType$90, tag: ""}]); - funcDecl.init("go/types", [{prop: "decl", name: "decl", embedded: false, exported: false, typ: ptrType$87, tag: ""}]); - Context.init("go/types", [{prop: "mu", name: "mu", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "typeMap", name: "typeMap", embedded: false, exported: false, typ: mapType$7, tag: ""}, {prop: "nextID", name: "nextID", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "originIDs", name: "originIDs", embedded: false, exported: false, typ: mapType$8, tag: ""}]); - ctxtEntry.init("go/types", [{prop: "orig", name: "orig", embedded: false, exported: false, typ: Type, tag: ""}, {prop: "targs", name: "targs", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "instance", name: "instance", embedded: false, exported: false, typ: Type, tag: ""}]); - exprInfo.init("go/types", [{prop: "isLhs", name: "isLhs", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "mode", name: "mode", embedded: false, exported: false, typ: operandMode, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "val", name: "val", embedded: false, exported: false, typ: constant.Value, tag: ""}]); - environment.init("go/types", [{prop: "decl", name: "decl", embedded: false, exported: false, typ: ptrType$58, tag: ""}, {prop: "scope", name: "scope", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "iota", name: "iota", embedded: false, exported: false, typ: constant.Value, tag: ""}, {prop: "errpos", name: "errpos", embedded: false, exported: false, typ: positioner, tag: ""}, {prop: "inTParamList", name: "inTParamList", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "sig", name: "sig", embedded: false, exported: false, typ: ptrType$27, tag: ""}, {prop: "isPanic", name: "isPanic", embedded: false, exported: false, typ: mapType$9, tag: ""}, {prop: "hasLabel", name: "hasLabel", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "hasCallOrRecv", name: "hasCallOrRecv", embedded: false, exported: false, typ: $Bool, tag: ""}]); - importKey.init("go/types", [{prop: "path", name: "path", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "dir", name: "dir", embedded: false, exported: false, typ: $String, tag: ""}]); - dotImportKey.init("go/types", [{prop: "scope", name: "scope", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}]); - action.init("go/types", [{prop: "f", name: "f", embedded: false, exported: false, typ: funcType$1, tag: ""}, {prop: "desc", name: "desc", embedded: false, exported: false, typ: ptrType$109, tag: ""}]); - actionDesc.init("go/types", [{prop: "pos", name: "pos", embedded: false, exported: false, typ: positioner, tag: ""}, {prop: "format", name: "format", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "args", name: "args", embedded: false, exported: false, typ: sliceType$6, tag: ""}]); - Checker.init("go/types", [{prop: "conf", name: "conf", embedded: false, exported: false, typ: ptrType$101, tag: ""}, {prop: "ctxt", name: "ctxt", embedded: false, exported: false, typ: ptrType$51, tag: ""}, {prop: "fset", name: "fset", embedded: false, exported: false, typ: ptrType$24, tag: ""}, {prop: "pkg", name: "pkg", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "Info", name: "Info", embedded: true, exported: true, typ: ptrType$110, tag: ""}, {prop: "version", name: "version", embedded: false, exported: false, typ: version, tag: ""}, {prop: "nextID", name: "nextID", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "objMap", name: "objMap", embedded: false, exported: false, typ: mapType$11, tag: ""}, {prop: "impMap", name: "impMap", embedded: false, exported: false, typ: mapType$12, tag: ""}, {prop: "valids", name: "valids", embedded: false, exported: false, typ: instanceLookup, tag: ""}, {prop: "pkgPathMap", name: "pkgPathMap", embedded: false, exported: false, typ: mapType$14, tag: ""}, {prop: "seenPkgMap", name: "seenPkgMap", embedded: false, exported: false, typ: mapType$15, tag: ""}, {prop: "files", name: "files", embedded: false, exported: false, typ: sliceType$35, tag: ""}, {prop: "imports", name: "imports", embedded: false, exported: false, typ: sliceType$36, tag: ""}, {prop: "dotImportMap", name: "dotImportMap", embedded: false, exported: false, typ: mapType$16, tag: ""}, {prop: "recvTParamMap", name: "recvTParamMap", embedded: false, exported: false, typ: mapType$17, tag: ""}, {prop: "brokenAliases", name: "brokenAliases", embedded: false, exported: false, typ: mapType$18, tag: ""}, {prop: "unionTypeSets", name: "unionTypeSets", embedded: false, exported: false, typ: mapType$19, tag: ""}, {prop: "mono", name: "mono", embedded: false, exported: false, typ: monoGraph, tag: ""}, {prop: "firstErr", name: "firstErr", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "methods", name: "methods", embedded: false, exported: false, typ: mapType$20, tag: ""}, {prop: "untyped", name: "untyped", embedded: false, exported: false, typ: mapType$21, tag: ""}, {prop: "delayed", name: "delayed", embedded: false, exported: false, typ: sliceType$39, tag: ""}, {prop: "objPath", name: "objPath", embedded: false, exported: false, typ: sliceType$8, tag: ""}, {prop: "cleaners", name: "cleaners", embedded: false, exported: false, typ: sliceType$40, tag: ""}, {prop: "environment", name: "environment", embedded: true, exported: false, typ: environment, tag: ""}, {prop: "indent", name: "indent", embedded: false, exported: false, typ: $Int, tag: ""}]); - cleaner.init([{prop: "cleanup", name: "cleanup", pkg: "go/types", typ: $funcType([], [], false)}]); - bailout.init("", []); - Chan.init("go/types", [{prop: "dir", name: "dir", embedded: false, exported: false, typ: ChanDir, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: Type, tag: ""}]); - Basic.init("go/types", [{prop: "kind", name: "kind", embedded: false, exported: false, typ: BasicKind, tag: ""}, {prop: "info", name: "info", embedded: false, exported: false, typ: BasicInfo, tag: ""}, {prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}]); - Array.init("go/types", [{prop: "len", name: "len", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: Type, tag: ""}]); - Error.init("go/types", [{prop: "Fset", name: "Fset", embedded: false, exported: true, typ: ptrType$24, tag: ""}, {prop: "Pos", name: "Pos", embedded: false, exported: true, typ: token.Pos, tag: ""}, {prop: "Msg", name: "Msg", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Soft", name: "Soft", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "go116code", name: "go116code", embedded: false, exported: false, typ: errors$1.Code, tag: ""}, {prop: "go116start", name: "go116start", embedded: false, exported: false, typ: token.Pos, tag: ""}, {prop: "go116end", name: "go116end", embedded: false, exported: false, typ: token.Pos, tag: ""}]); - Importer.init([{prop: "Import", name: "Import", pkg: "", typ: $funcType([$String], [ptrType$1, $error], false)}]); - ImporterFrom.init([{prop: "Import", name: "Import", pkg: "", typ: $funcType([$String], [ptrType$1, $error], false)}, {prop: "ImportFrom", name: "ImportFrom", pkg: "", typ: $funcType([$String, $String, ImportMode], [ptrType$1, $error], false)}]); - Config.init("go/types", [{prop: "Context", name: "Context", embedded: false, exported: true, typ: ptrType$51, tag: ""}, {prop: "GoVersion", name: "GoVersion", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "IgnoreFuncBodies", name: "IgnoreFuncBodies", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "FakeImportC", name: "FakeImportC", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "go115UsesCgo", name: "go115UsesCgo", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "Error", name: "Error", embedded: false, exported: true, typ: funcType$9, tag: ""}, {prop: "Importer", name: "Importer", embedded: false, exported: true, typ: Importer, tag: ""}, {prop: "Sizes", name: "Sizes", embedded: false, exported: true, typ: Sizes, tag: ""}, {prop: "DisableUnusedImportCheck", name: "DisableUnusedImportCheck", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "oldComparableSemantics", name: "oldComparableSemantics", embedded: false, exported: false, typ: $Bool, tag: ""}]); - Info.init("", [{prop: "Types", name: "Types", embedded: false, exported: true, typ: mapType$22, tag: ""}, {prop: "Instances", name: "Instances", embedded: false, exported: true, typ: mapType$23, tag: ""}, {prop: "Defs", name: "Defs", embedded: false, exported: true, typ: mapType$24, tag: ""}, {prop: "Uses", name: "Uses", embedded: false, exported: true, typ: mapType$24, tag: ""}, {prop: "Implicits", name: "Implicits", embedded: false, exported: true, typ: mapType$25, tag: ""}, {prop: "Selections", name: "Selections", embedded: false, exported: true, typ: mapType$26, tag: ""}, {prop: "Scopes", name: "Scopes", embedded: false, exported: true, typ: mapType$27, tag: ""}, {prop: "InitOrder", name: "InitOrder", embedded: false, exported: true, typ: sliceType$30, tag: ""}]); - TypeAndValue.init("go/types", [{prop: "mode", name: "mode", embedded: false, exported: false, typ: operandMode, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: Type, tag: ""}, {prop: "Value", name: "Value", embedded: false, exported: true, typ: constant.Value, tag: ""}]); - Instance.init("", [{prop: "TypeArgs", name: "TypeArgs", embedded: false, exported: true, typ: ptrType$56, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: Type, tag: ""}]); - Initializer.init("", [{prop: "Lhs", name: "Lhs", embedded: false, exported: true, typ: sliceType$10, tag: ""}, {prop: "Rhs", name: "Rhs", embedded: false, exported: true, typ: ast.Expr, tag: ""}]); - methodInfo.init("go/types", [{prop: "obj", name: "obj", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "ptr", name: "ptr", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "recv", name: "recv", embedded: false, exported: false, typ: ptrType$30, tag: ""}]); - }; - $init = function() { - $pkg.$init = function() {}; - /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: - $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = heap.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = errors.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = fmt.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = ast.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = constant.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = typeparams.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = parser.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = token.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = errors$1.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = io.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = math.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = regexp.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = runtime.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = sort.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = strconv.$init(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = strings.$init(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = sync.$init(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = atomic.$init(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = unicode.$init(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = utf8.$init(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $pkg.Universe = ptrType.nil; - $pkg.Unsafe = ptrType$1.nil; - universeIota = $ifaceNil; - universeByte = $ifaceNil; - universeRune = $ifaceNil; - universeAny = $ifaceNil; - universeError = $ifaceNil; - universeComparable = $ifaceNil; - invalidTypeSet = new _TypeSet.ptr(sliceType.nil, termlist.nil, false); - lastID = 0; - emptyMethodSet = new MethodSet.ptr(sliceType$1.nil); - unaryOpPredicates = false; - binaryOpPredicates = false; - _r = regexp.MustCompile("^go([1-9]\\d*)\\.(0|[1-9]\\d*)$"); /* */ $s = 22; case 22: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - goVersionRx = _r; - $pkg.Typ = new sliceType$2([new Basic.ptr(0, 0, "invalid type"), new Basic.ptr(1, 1, "bool"), new Basic.ptr(2, 2, "int"), new Basic.ptr(3, 2, "int8"), new Basic.ptr(4, 2, "int16"), new Basic.ptr(5, 2, "int32"), new Basic.ptr(6, 2, "int64"), new Basic.ptr(7, 6, "uint"), new Basic.ptr(8, 6, "uint8"), new Basic.ptr(9, 6, "uint16"), new Basic.ptr(10, 6, "uint32"), new Basic.ptr(11, 6, "uint64"), new Basic.ptr(12, 6, "uintptr"), new Basic.ptr(13, 8, "float32"), new Basic.ptr(14, 8, "float64"), new Basic.ptr(15, 16, "complex64"), new Basic.ptr(16, 16, "complex128"), new Basic.ptr(17, 32, "string"), new Basic.ptr(18, 0, "Pointer"), new Basic.ptr(19, 65, "untyped bool"), new Basic.ptr(20, 66, "untyped int"), new Basic.ptr(21, 66, "untyped rune"), new Basic.ptr(22, 72, "untyped float"), new Basic.ptr(23, 80, "untyped complex"), new Basic.ptr(24, 96, "untyped string"), new Basic.ptr(25, 64, "untyped nil")]); - aliases = $toNativeArray($kindPtr, [new Basic.ptr(8, 6, "byte"), new Basic.ptr(5, 2, "rune")]); - predeclaredConsts = $toNativeArray($kindStruct, [$clone(new structType.ptr("true", 19, constant.MakeBool(true)), structType), $clone(new structType.ptr("false", 19, constant.MakeBool(false)), structType), $clone(new structType.ptr("iota", 20, constant.MakeInt64(new $Int64(0, 0))), structType)]); - predeclaredFuncs = $toNativeArray($kindStruct, [$clone(new structType$1.ptr("append", 1, true, 1), structType$1), $clone(new structType$1.ptr("cap", 1, false, 1), structType$1), $clone(new structType$1.ptr("clear", 1, false, 2), structType$1), $clone(new structType$1.ptr("close", 1, false, 2), structType$1), $clone(new structType$1.ptr("complex", 2, false, 1), structType$1), $clone(new structType$1.ptr("copy", 2, false, 2), structType$1), $clone(new structType$1.ptr("delete", 2, false, 2), structType$1), $clone(new structType$1.ptr("imag", 1, false, 1), structType$1), $clone(new structType$1.ptr("len", 1, false, 1), structType$1), $clone(new structType$1.ptr("make", 1, true, 1), structType$1), $clone(new structType$1.ptr("new", 1, false, 1), structType$1), $clone(new structType$1.ptr("panic", 1, false, 2), structType$1), $clone(new structType$1.ptr("print", 0, true, 2), structType$1), $clone(new structType$1.ptr("println", 0, true, 2), structType$1), $clone(new structType$1.ptr("real", 1, false, 1), structType$1), $clone(new structType$1.ptr("recover", 0, false, 2), structType$1), $clone(new structType$1.ptr("Add", 2, false, 1), structType$1), $clone(new structType$1.ptr("Alignof", 1, false, 1), structType$1), $clone(new structType$1.ptr("Offsetof", 1, false, 1), structType$1), $clone(new structType$1.ptr("Sizeof", 1, false, 1), structType$1), $clone(new structType$1.ptr("Slice", 2, false, 1), structType$1), $clone(new structType$1.ptr("SliceData", 1, false, 1), structType$1), $clone(new structType$1.ptr("String", 2, false, 1), structType$1), $clone(new structType$1.ptr("StringData", 1, false, 1), structType$1), $clone(new structType$1.ptr("assert", 1, false, 2), structType$1), $clone(new structType$1.ptr("trace", 0, true, 2), structType$1)]); - allTermlist = new termlist([new term.ptr(false, $ifaceNil)]); - topTypeSet = new _TypeSet.ptr(sliceType.nil, allTermlist, false); - basicSizes = $toNativeArray($kindUint8, [0, 1, 0, 1, 2, 4, 8, 0, 1, 2, 4, 8, 0, 4, 8, 8, 16]); - gcArchSizes = $makeMap($String.keyFor, [{ k: "386", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 4)) }, { k: "amd64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "amd64p32", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "arm", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 4)) }, { k: "arm64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "loong64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "mips", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 4)) }, { k: "mipsle", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 4)) }, { k: "mips64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "mips64le", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "ppc64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "ppc64le", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "riscv64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "s390x", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "sparc64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "wasm", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }]); - operandModeString = $toNativeArray($kindString, ["invalid operand", "no value", "built-in", "type", "constant", "variable", "map index expression", "value", "comma, ok expression", "comma, error expression", "cgo function"]); - emptyInterface = new Interface.ptr(ptrType$6.nil, sliceType.nil, sliceType$3.nil, ptrType$7.nil, false, true, topTypeSet); - gccgoArchSizes = $makeMap($String.keyFor, [{ k: "386", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 4)) }, { k: "alpha", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "amd64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "amd64p32", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "arm", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "armbe", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "arm64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "arm64be", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "ia64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "loong64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "m68k", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 2)) }, { k: "mips", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "mipsle", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "mips64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "mips64le", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "mips64p32", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "mips64p32le", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "nios2", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "ppc", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "ppc64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "ppc64le", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "riscv", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "riscv64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "s390", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "s390x", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "sh", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "shbe", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "sparc", v: new StdSizes.ptr(new $Int64(0, 4), new $Int64(0, 8)) }, { k: "sparc64", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }, { k: "wasm", v: new StdSizes.ptr(new $Int64(0, 8), new $Int64(0, 8)) }]); - stdSizes = SizesFor("gc", "amd64"); - op2str1 = $toNativeArray($kindString, ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "bitwise complement"]); - op2str2 = $toNativeArray($kindString, ["", "", "", "", "", "", "", "", "", "", "", "", "addition", "subtraction", "multiplication", "", "", "", "", "bitwise XOR", "shift"]); - errBadCgo = errors.New("cannot use FakeImportC and go115UsesCgo together"); - cgoPrefixes = $toNativeArray($kindString, ["_Ciconst_", "_Cfconst_", "_Csconst_", "_Ctype_", "_Cvar_", "_Cfpvar_fp_", "_Cfunc_", "_Cmacro_"]); - $r = init(); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - init$1(); - init$2(); - /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; - }; - $pkg.$init = $init; - return $pkg; -})(); -$packages["golang.org/x/tools/internal/typeparams"] = (function() { - var $pkg = {}, $init, bytes, errors, fmt, ast, token, types, os, strings, term, termlist, ptrType, sliceType, allTermlist; - bytes = $packages["bytes"]; - errors = $packages["errors"]; - fmt = $packages["fmt"]; - ast = $packages["go/ast"]; - token = $packages["go/token"]; - types = $packages["go/types"]; - os = $packages["os"]; - strings = $packages["strings"]; - term = $newType(0, $kindStruct, "typeparams.term", true, "golang.org/x/tools/internal/typeparams", false, function(tilde_, typ_) { - this.$val = this; - if (arguments.length === 0) { - this.tilde = false; - this.typ = $ifaceNil; - return; - } - this.tilde = tilde_; - this.typ = typ_; - }); - termlist = $newType(12, $kindSlice, "typeparams.termlist", true, "golang.org/x/tools/internal/typeparams", false, null); - $pkg.term = term; - $pkg.termlist = termlist; - $pkg.$finishSetup = function() { - ptrType = $ptrType(term); - sliceType = $sliceType($Uint8); - $ptrType(term).prototype.String = function String() { - var {$24r, $24r$1, _r, _r$1, x, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - x = this; - /* */ if (x === ptrType.nil) { $s = 2; continue; } - /* */ if ($interfaceIsEqual(x.typ, $ifaceNil)) { $s = 3; continue; } - /* */ if (x.tilde) { $s = 4; continue; } - /* */ $s = 5; continue; - /* if (x === ptrType.nil) { */ case 2: - $s = -1; return "\xE2\x88\x85"; - /* } else if ($interfaceIsEqual(x.typ, $ifaceNil)) { */ case 3: - $s = -1; return "\xF0\x9D\x93\xA4"; - /* } else if (x.tilde) { */ case 4: - _r = x.typ.String(); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - $24r = "~" + _r; - $s = 8; case 8: return $24r; - /* } else { */ case 5: - _r$1 = x.typ.String(); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - $24r$1 = _r$1; - $s = 10; case 10: return $24r$1; - /* } */ case 6: - case 1: - $s = -1; return ""; - /* */ } return; } var $f = {$blk: String, $c: true, $r, $24r, $24r$1, _r, _r$1, x, $s};return $f; + $s = -1; return m; + /* */ } return; } var $f = {$blk: newOnePassMachine$1, $c: true, $r, _r, _tuple, m, ok, $s};return $f; }; - termlist.prototype.String = function String$1() { - var {_i, _r, _r$1, _ref, buf, i, x, xl, $s, $r, $c} = $restore(this, {}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - xl = this; - if (xl.$length === 0) { - $s = -1; return "\xE2\x88\x85"; - } - buf = new bytes.Buffer.ptr(sliceType.nil, 0, 0); - _ref = xl; - _i = 0; - /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - i = _i; - x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (i > 0) { - buf.WriteString(" | "); - } - _r = x.String(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = buf.WriteString(_r); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _r$1; - _i++; - $s = 1; continue; - case 2: - $s = -1; return buf.String(); - /* */ } return; } var $f = {$blk: String$1, $c: true, $r, _i, _r, _r$1, _ref, buf, i, x, xl, $s};return $f; - }; - $ptrType(termlist).prototype.String = function(...$args) { return this.$get().String(...$args); }; - ptrType.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "equal", name: "equal", pkg: "golang.org/x/tools/internal/typeparams", typ: $funcType([ptrType], [$Bool], false)}, {prop: "union", name: "union", pkg: "golang.org/x/tools/internal/typeparams", typ: $funcType([ptrType], [ptrType, ptrType], false)}, {prop: "intersect", name: "intersect", pkg: "golang.org/x/tools/internal/typeparams", typ: $funcType([ptrType], [ptrType], false)}, {prop: "includes", name: "includes", pkg: "golang.org/x/tools/internal/typeparams", typ: $funcType([types.Type], [$Bool], false)}, {prop: "subsetOf", name: "subsetOf", pkg: "golang.org/x/tools/internal/typeparams", typ: $funcType([ptrType], [$Bool], false)}, {prop: "disjoint", name: "disjoint", pkg: "golang.org/x/tools/internal/typeparams", typ: $funcType([ptrType], [$Bool], false)}]; - termlist.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "isEmpty", name: "isEmpty", pkg: "golang.org/x/tools/internal/typeparams", typ: $funcType([], [$Bool], false)}, {prop: "isAll", name: "isAll", pkg: "golang.org/x/tools/internal/typeparams", typ: $funcType([], [$Bool], false)}, {prop: "norm", name: "norm", pkg: "golang.org/x/tools/internal/typeparams", typ: $funcType([], [termlist], false)}, {prop: "union", name: "union", pkg: "golang.org/x/tools/internal/typeparams", typ: $funcType([termlist], [termlist], false)}, {prop: "intersect", name: "intersect", pkg: "golang.org/x/tools/internal/typeparams", typ: $funcType([termlist], [termlist], false)}, {prop: "equal", name: "equal", pkg: "golang.org/x/tools/internal/typeparams", typ: $funcType([termlist], [$Bool], false)}, {prop: "includes", name: "includes", pkg: "golang.org/x/tools/internal/typeparams", typ: $funcType([types.Type], [$Bool], false)}, {prop: "supersetOf", name: "supersetOf", pkg: "golang.org/x/tools/internal/typeparams", typ: $funcType([ptrType], [$Bool], false)}, {prop: "subsetOf", name: "subsetOf", pkg: "golang.org/x/tools/internal/typeparams", typ: $funcType([termlist], [$Bool], false)}]; - term.init("golang.org/x/tools/internal/typeparams", [{prop: "tilde", name: "tilde", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: types.Type, tag: ""}]); - termlist.init(ptrType); - }; - $init = function() { - $pkg.$init = function() {}; - /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: - $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = errors.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = fmt.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = ast.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = token.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = types.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = os.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = strings.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - allTermlist = new termlist([new term.ptr(false, $ifaceNil)]); - $pkg.ErrEmptyTypeSet = errors.New("empty type set"); - /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; - }; - $pkg.$init = $init; - return $pkg; -})(); -$packages["golang.org/x/tools/go/ast/astutil"] = (function() { - var $pkg = {}, $init, fmt, ast, token, typeparams, reflect, sort, strconv, strings, ptrType, ptrType$6, ptrType$10, ptrType$11, ptrType$52, ptrType$56, sliceType$2, ptrType$58, sliceType$3, sliceType$4, sliceType$5, sliceType$6, abort, AddImport, AddNamedImport, isThirdParty, DeleteImport, DeleteNamedImport, imports, importName, importPath, declImports, matchLen, Imports; - fmt = $packages["fmt"]; - ast = $packages["go/ast"]; - token = $packages["go/token"]; - typeparams = $packages["golang.org/x/tools/internal/typeparams"]; - reflect = $packages["reflect"]; - sort = $packages["sort"]; - strconv = $packages["strconv"]; - strings = $packages["strings"]; - $pkg.$finishSetup = function() { - ptrType = $ptrType($Int); - ptrType$6 = $ptrType(ast.CommentGroup); - ptrType$10 = $ptrType(ast.Ident); - ptrType$11 = $ptrType(ast.BasicLit); - ptrType$52 = $ptrType(ast.ImportSpec); - ptrType$56 = $ptrType(ast.GenDecl); - sliceType$2 = $sliceType($emptyInterface); - ptrType$58 = $ptrType(ast.Object); - sliceType$3 = $sliceType(ast.Spec); - sliceType$4 = $sliceType(ptrType$52); - sliceType$5 = $sliceType(ptrType$6); - sliceType$6 = $sliceType(sliceType$4); - AddImport = function AddImport$1(fset, f, path) { - var {$24r, _r, added, f, fset, path, $s, $r, $c} = $restore(this, {fset, f, path}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - added = false; - _r = AddNamedImport(fset, f, "", path); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - added = _r; - $24r = added; - $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: AddImport$1, $c: true, $r, $24r, _r, added, f, fset, path, $s};return $f; + freeOnePassMachine = function freeOnePassMachine$1(m) { + var m; + m.inputs.clear(); + onePassPool.Put(m); }; - $pkg.AddImport = AddImport; - AddNamedImport = function AddNamedImport$1(fset, f, name, path) { - var {_i, _i$1, _i$2, _i$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _ref$2, _ref$3, _tuple, _tuple$1, _tuple$2, added, bestMatch, c, decl, decl$1, f, file, first, fset, gen, gen$1, i, i$1, impDecl, impIndex, impspec, insertAt, isThirdPartyPath, j, lastImport, n, name, newImport, ok, ok$1, ok$2, p, path, pkgLine, pos, seenAnyThirdParty, spec, spec$1, spec$2, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {fset, f, name, path}); - /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - added = false; - if (imports(f, name, path)) { - added = false; - $s = -1; return added; + $ptrType(Regexp).prototype.doOnePass = function doOnePass(ir, ib, is, pos, ncap, dstCap) { + var {_1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _v, dstCap, flag, i, i$1, ib, inst, ir, is, m, matched, ncap, pc, pos, r, r1, re, startCond, width, width1, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r, $c} = $restore(this, {ir, ib, is, pos, ncap, dstCap}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + re = this; + startCond = re.cond; + if (startCond === 255) { + $s = -1; return sliceType$7.nil; } - newImport = new ast.ImportSpec.ptr(ptrType$6.nil, ptrType$10.nil, new ast.BasicLit.ptr(0, 9, strconv.Quote(path)), ptrType$6.nil, 0); - if (!(name === "")) { - newImport.Name = new ast.Ident.ptr(0, name, ptrType$58.nil); + _r = newOnePassMachine(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + m = _r; + if (m.matchcap.$capacity < ncap) { + m.matchcap = $makeSlice(sliceType$7, ncap); + } else { + m.matchcap = $subslice(m.matchcap, 0, ncap); } - bestMatch = -1; - lastImport = -1; - impDecl = ptrType$56.nil; - impIndex = -1; - isThirdPartyPath = isThirdParty(path); - _ref = f.Decls; + matched = false; + _ref = m.matchcap; _i = 0; while (true) { if (!(_i < _ref.$length)) { break; } i = _i; - decl = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _tuple = $assertType(decl, ptrType$56, true); - gen = _tuple[0]; - ok = _tuple[1]; - if (ok && (gen.Tok === 75)) { - lastImport = i; - if (declImports(gen, "C")) { - _i++; - continue; - } - if ((gen.Specs.$length === 0) && (bestMatch === -1)) { - impDecl = gen; - } - seenAnyThirdParty = false; - _ref$1 = gen.Specs; - _i$1 = 0; - while (true) { - if (!(_i$1 < _ref$1.$length)) { break; } - j = _i$1; - spec = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - impspec = $assertType(spec, ptrType$52); - p = importPath(impspec); - n = matchLen(p, path); - if (n > bestMatch || ((bestMatch === 0) && !seenAnyThirdParty && isThirdPartyPath)) { - bestMatch = n; - impDecl = gen; - impIndex = j; - } - seenAnyThirdParty = seenAnyThirdParty || isThirdParty(p); - _i$1++; - } - } + (x = m.matchcap, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i] = -1)); _i++; } - /* */ if (impDecl === ptrType$56.nil) { $s = 1; continue; } - /* */ $s = 2; continue; - /* if (impDecl === ptrType$56.nil) { */ case 1: - impDecl = new ast.GenDecl.ptr(ptrType$6.nil, 0, 75, 0, sliceType$3.nil, 0); - /* */ if (lastImport >= 0) { $s = 3; continue; } - /* */ $s = 4; continue; - /* if (lastImport >= 0) { */ case 3: - _r = (x = f.Decls, ((lastImport < 0 || lastImport >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + lastImport])).End(); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - impDecl.TokPos = _r; - $s = 5; continue; - /* } else { */ case 4: - impDecl.TokPos = f.Package; - _r$1 = fset.File(f.Package); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - file = _r$1; - _r$2 = file.Line(f.Package); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - pkgLine = _r$2; - _ref$2 = f.Comments; - _i$2 = 0; - /* while (true) { */ case 9: - /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 10; continue; } - c = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); - _r$3 = file.Line(c.Pos()); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* */ if (_r$3 > pkgLine) { $s = 11; continue; } - /* */ $s = 12; continue; - /* if (_r$3 > pkgLine) { */ case 11: - /* break; */ $s = 10; continue; - /* } */ case 12: - impDecl.TokPos = c.End() + 2 >> 0; - _i$2++; - $s = 9; continue; - case 10: - /* } */ case 5: - f.Decls = $append(f.Decls, $ifaceNil); - $copySlice($subslice(f.Decls, (lastImport + 2 >> 0)), $subslice(f.Decls, (lastImport + 1 >> 0))); - (x$1 = f.Decls, x$2 = lastImport + 1 >> 0, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2] = impDecl)); - /* } */ case 2: - insertAt = 0; - if (impIndex >= 0) { - insertAt = impIndex + 1 >> 0; - } - impDecl.Specs = $append(impDecl.Specs, $ifaceNil); - $copySlice($subslice(impDecl.Specs, (insertAt + 1 >> 0)), $subslice(impDecl.Specs, insertAt)); - (x$3 = impDecl.Specs, ((insertAt < 0 || insertAt >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + insertAt] = newImport)); - pos = impDecl.Pos(); - /* */ if (insertAt > 0) { $s = 14; continue; } - /* */ $s = 15; continue; - /* if (insertAt > 0) { */ case 14: - _tuple$1 = $assertType((x$4 = impDecl.Specs, x$5 = insertAt - 1 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])), ptrType$52, true); - spec$1 = _tuple$1[0]; - ok$1 = _tuple$1[1]; - /* */ if (ok$1 && !(spec$1.Comment === ptrType$6.nil)) { $s = 16; continue; } - /* */ $s = 17; continue; - /* if (ok$1 && !(spec$1.Comment === ptrType$6.nil)) { */ case 16: - pos = spec$1.Comment.End(); - $s = 18; continue; - /* } else { */ case 17: - _r$4 = (x$6 = impDecl.Specs, x$7 = insertAt - 1 >> 0, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])).Pos(); /* */ $s = 19; case 19: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - pos = _r$4; - /* } */ case 18: - /* } */ case 15: - if (!(newImport.Name === ptrType$10.nil)) { - newImport.Name.NamePos = pos; - } - newImport.Path.ValuePos = pos; - newImport.EndPos = pos; - /* */ if (impDecl.Specs.$length === 1) { $s = 20; continue; } - /* */ if (!new token.Pos(impDecl.Lparen).IsValid()) { $s = 21; continue; } - /* */ $s = 22; continue; - /* if (impDecl.Specs.$length === 1) { */ case 20: - impDecl.Lparen = 0; - $s = 22; continue; - /* } else if (!new token.Pos(impDecl.Lparen).IsValid()) { */ case 21: - _r$5 = (x$8 = impDecl.Specs, (0 >= x$8.$length ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + 0])).Pos(); /* */ $s = 23; case 23: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - impDecl.Lparen = _r$5; - /* } */ case 22: - f.Imports = $append(f.Imports, newImport); - if (f.Decls.$length <= 1) { - added = true; - $s = -1; return added; - } - first = ptrType$56.nil; - i$1 = 0; - while (true) { - if (!(i$1 < f.Decls.$length)) { break; } - decl$1 = (x$9 = f.Decls, ((i$1 < 0 || i$1 >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + i$1])); - _tuple$2 = $assertType(decl$1, ptrType$56, true); - gen$1 = _tuple$2[0]; - ok$2 = _tuple$2[1]; - if (!ok$2 || !((gen$1.Tok === 75)) || declImports(gen$1, "C")) { - i$1 = i$1 + (1) >> 0; - continue; - } - if (first === ptrType$56.nil) { - first = gen$1; - i$1 = i$1 + (1) >> 0; - continue; - } - first.Lparen = first.Pos(); - _ref$3 = gen$1.Specs; - _i$3 = 0; - while (true) { - if (!(_i$3 < _ref$3.$length)) { break; } - spec$2 = ((_i$3 < 0 || _i$3 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$3]); - $assertType(spec$2, ptrType$52).Path.ValuePos = first.Pos(); - first.Specs = $append(first.Specs, spec$2); - _i$3++; + _tuple = m.inputs.init(ir, ib, is); + i$1 = _tuple[0]; + _tmp = -1; + _tmp$1 = -1; + r = _tmp; + r1 = _tmp$1; + _tmp$2 = 0; + _tmp$3 = 0; + width = _tmp$2; + width1 = _tmp$3; + _r$1 = i$1.step(pos); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + r = _tuple$1[0]; + width = _tuple$1[1]; + /* */ if (!((r === -1))) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!((r === -1))) { */ case 3: + _r$2 = i$1.step(pos + width >> 0); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$2 = _r$2; + r1 = _tuple$2[0]; + width1 = _tuple$2[1]; + /* } */ case 4: + flag = new lazyFlag(0, 0); + /* */ if (pos === 0) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (pos === 0) { */ case 6: + flag = newLazyFlag(-1, r); + $s = 8; continue; + /* } else { */ case 7: + _r$3 = i$1.context(pos); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + flag = _r$3; + /* } */ case 8: + pc = re.onepass.Start; + inst = (x$1 = re.onepass.Inst, ((pc < 0 || pc >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$1.$array, x$1.$offset + pc, ptrType$11))); + if (!((pos === 0) && flag.match(((inst.Inst.Arg << 24 >>> 24))) && re.prefix.length > 0)) { _v = false; $s = 12; continue s; } + _r$4 = i$1.canCheckPrefix(); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _v = _r$4; case 12: + /* */ if (_v) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (_v) { */ case 10: + _r$5 = i$1.hasPrefix(re); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (!_r$5) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (!_r$5) { */ case 14: + /* goto Return */ $s = 17; continue; + /* } */ case 15: + pos = pos + (re.prefix.length) >> 0; + _r$6 = i$1.step(pos); /* */ $s = 18; case 18: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _tuple$3 = _r$6; + r = _tuple$3[0]; + width = _tuple$3[1]; + _r$7 = i$1.step(pos + width >> 0); /* */ $s = 19; case 19: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _tuple$4 = _r$7; + r1 = _tuple$4[0]; + width1 = _tuple$4[1]; + _r$8 = i$1.context(pos); /* */ $s = 20; case 20: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + flag = _r$8; + pc = ((re.prefixEnd >> 0)); + /* } */ case 11: + /* while (true) { */ case 21: + inst = (x$2 = re.onepass.Inst, ((pc < 0 || pc >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$2.$array, x$2.$offset + pc, ptrType$11))); + pc = ((inst.Inst.Out >> 0)); + _1 = inst.Inst.Op; + /* */ if (_1 === (4)) { $s = 24; continue; } + /* */ if (_1 === (7)) { $s = 25; continue; } + /* */ if (_1 === (8)) { $s = 26; continue; } + /* */ if (_1 === (9)) { $s = 27; continue; } + /* */ if (_1 === (10)) { $s = 28; continue; } + /* */ if ((_1 === (0)) || (_1 === (1))) { $s = 29; continue; } + /* */ if (_1 === (5)) { $s = 30; continue; } + /* */ if (_1 === (6)) { $s = 31; continue; } + /* */ if (_1 === (3)) { $s = 32; continue; } + /* */ if (_1 === (2)) { $s = 33; continue; } + /* */ $s = 34; continue; + /* if (_1 === (4)) { */ case 24: + matched = true; + if (m.matchcap.$length > 0) { + (x$3 = m.matchcap, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0] = 0)); + (x$4 = m.matchcap, (1 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 1] = pos)); + } + /* goto Return */ $s = 17; continue; + $s = 35; continue; + /* } else if (_1 === (7)) { */ case 25: + /* */ if (!inst.Inst.MatchRune(r)) { $s = 36; continue; } + /* */ $s = 37; continue; + /* if (!inst.Inst.MatchRune(r)) { */ case 36: + /* goto Return */ $s = 17; continue; + /* } */ case 37: + $s = 35; continue; + /* } else if (_1 === (8)) { */ case 26: + /* */ if (!((r === (x$5 = inst.Inst.Rune, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0]))))) { $s = 38; continue; } + /* */ $s = 39; continue; + /* if (!((r === (x$5 = inst.Inst.Rune, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0]))))) { */ case 38: + /* goto Return */ $s = 17; continue; + /* } */ case 39: + $s = 35; continue; + /* } else if (_1 === (9)) { */ case 27: + $s = 35; continue; + /* } else if (_1 === (10)) { */ case 28: + /* */ if (r === 10) { $s = 40; continue; } + /* */ $s = 41; continue; + /* if (r === 10) { */ case 40: + /* goto Return */ $s = 17; continue; + /* } */ case 41: + $s = 35; continue; + /* } else if ((_1 === (0)) || (_1 === (1))) { */ case 29: + pc = ((onePassNext(inst, r) >> 0)); + /* continue; */ $s = 21; continue; + $s = 35; continue; + /* } else if (_1 === (5)) { */ case 30: + /* goto Return */ $s = 17; continue; + $s = 35; continue; + /* } else if (_1 === (6)) { */ case 31: + /* continue; */ $s = 21; continue; + $s = 35; continue; + /* } else if (_1 === (3)) { */ case 32: + /* */ if (!flag.match(((inst.Inst.Arg << 24 >>> 24)))) { $s = 42; continue; } + /* */ $s = 43; continue; + /* if (!flag.match(((inst.Inst.Arg << 24 >>> 24)))) { */ case 42: + /* goto Return */ $s = 17; continue; + /* } */ case 43: + /* continue; */ $s = 21; continue; + $s = 35; continue; + /* } else if (_1 === (2)) { */ case 33: + if (((inst.Inst.Arg >> 0)) < m.matchcap.$length) { + (x$6 = m.matchcap, x$7 = inst.Inst.Arg, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7] = pos)); + } + /* continue; */ $s = 21; continue; + $s = 35; continue; + /* } else { */ case 34: + $panic(new $String("bad inst")); + /* } */ case 35: + case 23: + if (width === 0) { + /* break; */ $s = 22; continue; } - f.Decls = $appendSlice($subslice(f.Decls, 0, i$1), $subslice(f.Decls, (i$1 + 1 >> 0))); - i$1 = i$1 - (1) >> 0; - i$1 = i$1 + (1) >> 0; + flag = newLazyFlag(r, r1); + pos = pos + (width) >> 0; + _tmp$4 = r1; + _tmp$5 = width1; + r = _tmp$4; + width = _tmp$5; + /* */ if (!((r === -1))) { $s = 44; continue; } + /* */ $s = 45; continue; + /* if (!((r === -1))) { */ case 44: + _r$9 = i$1.step(pos + width >> 0); /* */ $s = 46; case 46: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _tuple$5 = _r$9; + r1 = _tuple$5[0]; + width1 = _tuple$5[1]; + /* } */ case 45: + $s = 21; continue; + case 22: + /* Return: */ case 17: + if (!matched) { + freeOnePassMachine(m); + $s = -1; return sliceType$7.nil; } - added = true; - $s = -1; return added; - /* */ } return; } var $f = {$blk: AddNamedImport$1, $c: true, $r, _i, _i$1, _i$2, _i$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _ref$2, _ref$3, _tuple, _tuple$1, _tuple$2, added, bestMatch, c, decl, decl$1, f, file, first, fset, gen, gen$1, i, i$1, impDecl, impIndex, impspec, insertAt, isThirdPartyPath, j, lastImport, n, name, newImport, ok, ok$1, ok$2, p, path, pkgLine, pos, seenAnyThirdParty, spec, spec$1, spec$2, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; - }; - $pkg.AddNamedImport = AddNamedImport; - isThirdParty = function isThirdParty$1(importPath$1) { - var importPath$1; - return strings.Contains(importPath$1, "."); + dstCap = $appendSlice(dstCap, m.matchcap); + freeOnePassMachine(m); + $s = -1; return dstCap; + /* */ } return; } var $f = {$blk: doOnePass, $c: true, $r, _1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _v, dstCap, flag, i, i$1, ib, inst, ir, is, m, matched, ncap, pc, pos, r, r1, re, startCond, width, width1, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s};return $f; }; - DeleteImport = function DeleteImport$1(fset, f, path) { - var {$24r, _r, deleted, f, fset, path, $s, $r, $c} = $restore(this, {fset, f, path}); + $ptrType(Regexp).prototype.doMatch = function doMatch(r, b, s) { + var {$24r, _r, b, r, re, s, $s, $r, $c} = $restore(this, {r, b, s}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - deleted = false; - _r = DeleteNamedImport(fset, f, "", path); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - deleted = _r; - $24r = deleted; + re = this; + _r = re.doExecute(r, b, s, 0, 0, sliceType$7.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = !(_r === sliceType$7.nil); $s = 2; case 2: return $24r; - /* */ } return; } var $f = {$blk: DeleteImport$1, $c: true, $r, $24r, _r, deleted, f, fset, path, $s};return $f; + /* */ } return; } var $f = {$blk: doMatch, $c: true, $r, $24r, _r, b, r, re, s, $s};return $f; }; - $pkg.DeleteImport = DeleteImport; - DeleteNamedImport = function DeleteNamedImport$1(fset, f, name, path) { - var {_i, _i$1, _i$2, _i$3, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _tuple, _v, _v$1, cg, cg$1, cg$2, decl, del, del$1, delcomments, deleted, delspecs, f, fset, gen, i, i$1, i$2, imp, impspec, j, j$1, j$2, lastImpspec, lastLine, line, name, ok, path, spec, spec$1, x, x$1, x$2, x$3, x$4, x$5, x$6, $s, $r, $c} = $restore(this, {fset, f, name, path}); + $ptrType(Regexp).prototype.doExecute = function doExecute(r, b, s, pos, ncap, dstCap) { + var {$24r, $24r$1, _r, _r$1, _r$2, _r$3, _tuple, b, dstCap, i, m, ncap, pos, r, re, s, $s, $r, $c} = $restore(this, {r, b, s, pos, ncap, dstCap}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - deleted = false; - delspecs = sliceType$4.nil; - delcomments = sliceType$5.nil; - i = 0; - /* while (true) { */ case 1: - /* if (!(i < f.Decls.$length)) { break; } */ if(!(i < f.Decls.$length)) { $s = 2; continue; } - decl = (x = f.Decls, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); - _tuple = $assertType(decl, ptrType$56, true); - gen = _tuple[0]; - ok = _tuple[1]; - if (!ok || !((gen.Tok === 75))) { - i = i + (1) >> 0; - /* continue; */ $s = 1; continue; - } - j = 0; - /* while (true) { */ case 3: - /* if (!(j < gen.Specs.$length)) { break; } */ if(!(j < gen.Specs.$length)) { $s = 4; continue; } - spec = (x$1 = gen.Specs, ((j < 0 || j >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + j])); - impspec = $assertType(spec, ptrType$52); - if (!(importName(impspec) === name) || !(importPath(impspec) === path)) { - j = j + (1) >> 0; - /* continue; */ $s = 3; continue; - } - delspecs = $append(delspecs, impspec); - deleted = true; - $copySlice($subslice(gen.Specs, j), $subslice(gen.Specs, (j + 1 >> 0))); - gen.Specs = $subslice(gen.Specs, 0, (gen.Specs.$length - 1 >> 0)); - /* */ if (gen.Specs.$length === 0) { $s = 5; continue; } - /* */ if (gen.Specs.$length === 1) { $s = 6; continue; } - /* */ $s = 7; continue; - /* if (gen.Specs.$length === 0) { */ case 5: - $copySlice($subslice(f.Decls, i), $subslice(f.Decls, (i + 1 >> 0))); - f.Decls = $subslice(f.Decls, 0, (f.Decls.$length - 1 >> 0)); - i = i - (1) >> 0; - /* break; */ $s = 4; continue; - $s = 7; continue; - /* } else if (gen.Specs.$length === 1) { */ case 6: - if (!(impspec.Doc === ptrType$6.nil)) { - delcomments = $append(delcomments, impspec.Doc); - } - if (!(impspec.Comment === ptrType$6.nil)) { - delcomments = $append(delcomments, impspec.Comment); - } - _ref = f.Comments; - _i = 0; - /* while (true) { */ case 8: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 9; continue; } - cg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (!(cg.End() < impspec.Pos())) { _v = false; $s = 12; continue s; } - _r = fset.Position(cg.End()); /* */ $s = 13; case 13: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - _r$1 = fset.Position(impspec.Pos()); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } - _v = _r.Line === _r$1.Line; case 12: - /* */ if (_v) { $s = 10; continue; } - /* */ $s = 11; continue; - /* if (_v) { */ case 10: - delcomments = $append(delcomments, cg); - /* break; */ $s = 9; continue; - /* } */ case 11: - _i++; - $s = 8; continue; - case 9: - spec$1 = $assertType((x$2 = gen.Specs, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])), ptrType$52); - /* */ if (!(spec$1.Doc === ptrType$6.nil)) { $s = 15; continue; } - /* */ $s = 16; continue; - /* if (!(spec$1.Doc === ptrType$6.nil)) { */ case 15: - /* while (true) { */ case 17: - _r$2 = fset.Position(gen.TokPos); /* */ $s = 19; case 19: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } - _r$3 = fset.Position(spec$1.Doc.Pos()); /* */ $s = 20; case 20: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } - /* if (!((_r$2.Line + 1 >> 0) < _r$3.Line)) { break; } */ if(!((_r$2.Line + 1 >> 0) < _r$3.Line)) { $s = 18; continue; } - _r$4 = fset.File(gen.TokPos); /* */ $s = 21; case 21: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } - _r$5 = fset.Position(gen.TokPos); /* */ $s = 22; case 22: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } - $r = _r$4.MergeLine(_r$5.Line); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 17; continue; - case 18: - /* } */ case 16: - _ref$1 = f.Comments; - _i$1 = 0; - /* while (true) { */ case 24: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 25; continue; } - cg$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - if (!(cg$1.End() < spec$1.Pos())) { _v$1 = false; $s = 28; continue s; } - _r$6 = fset.Position(cg$1.End()); /* */ $s = 29; case 29: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } - _r$7 = fset.Position(spec$1.Pos()); /* */ $s = 30; case 30: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } - _v$1 = _r$6.Line === _r$7.Line; case 28: - /* */ if (_v$1) { $s = 26; continue; } - /* */ $s = 27; continue; - /* if (_v$1) { */ case 26: - /* while (true) { */ case 31: - _r$8 = fset.Position(gen.TokPos); /* */ $s = 33; case 33: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } - _r$9 = fset.Position(spec$1.Pos()); /* */ $s = 34; case 34: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } - /* if (!((_r$8.Line + 1 >> 0) < _r$9.Line)) { break; } */ if(!((_r$8.Line + 1 >> 0) < _r$9.Line)) { $s = 32; continue; } - _r$10 = fset.File(gen.TokPos); /* */ $s = 35; case 35: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } - _r$11 = fset.Position(gen.TokPos); /* */ $s = 36; case 36: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } - $r = _r$10.MergeLine(_r$11.Line); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $s = 31; continue; - case 32: - /* break; */ $s = 25; continue; - /* } */ case 27: - _i$1++; - $s = 24; continue; - case 25: - /* } */ case 7: - /* */ if (j > 0) { $s = 38; continue; } - /* */ $s = 39; continue; - /* if (j > 0) { */ case 38: - lastImpspec = $assertType((x$3 = gen.Specs, x$4 = j - 1 >> 0, ((x$4 < 0 || x$4 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + x$4])), ptrType$52); - _r$12 = fset.PositionFor(lastImpspec.Path.ValuePos, false); /* */ $s = 40; case 40: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } - lastLine = _r$12.Line; - _r$13 = fset.PositionFor(impspec.Path.ValuePos, false); /* */ $s = 41; case 41: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } - line = _r$13.Line; - /* */ if ((line - lastLine >> 0) > 1 || !new token.Pos(gen.Rparen).IsValid()) { $s = 42; continue; } - _r$14 = fset.File(gen.Rparen); /* */ $s = 45; case 45: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } - _r$15 = _r$14.LineCount(); /* */ $s = 46; case 46: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } - /* */ if (!((line === _r$15))) { $s = 43; continue; } - /* */ $s = 44; continue; - /* if ((line - lastLine >> 0) > 1 || !new token.Pos(gen.Rparen).IsValid()) { */ case 42: - $s = 44; continue; - /* } else if (!((line === _r$15))) { */ case 43: - _r$16 = fset.File(gen.Rparen); /* */ $s = 47; case 47: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } - $r = _r$16.MergeLine(line); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - /* } */ case 44: - /* } */ case 39: - j = j - (1) >> 0; - j = j + (1) >> 0; - $s = 3; continue; - case 4: - i = i + (1) >> 0; - $s = 1; continue; - case 2: - i$1 = 0; - while (true) { - if (!(i$1 < f.Imports.$length)) { break; } - imp = (x$5 = f.Imports, ((i$1 < 0 || i$1 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + i$1])); - _ref$2 = delspecs; - _i$2 = 0; - while (true) { - if (!(_i$2 < _ref$2.$length)) { break; } - j$1 = _i$2; - del = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); - if (imp === del) { - $copySlice($subslice(f.Imports, i$1), $subslice(f.Imports, (i$1 + 1 >> 0))); - f.Imports = $subslice(f.Imports, 0, (f.Imports.$length - 1 >> 0)); - $copySlice($subslice(delspecs, j$1), $subslice(delspecs, (j$1 + 1 >> 0))); - delspecs = $subslice(delspecs, 0, (delspecs.$length - 1 >> 0)); - i$1 = i$1 - (1) >> 0; - break; - } - _i$2++; - } - i$1 = i$1 + (1) >> 0; + re = this; + if (dstCap === sliceType$7.nil) { + dstCap = $subslice(new sliceType$7(arrayNoInts), 0, 0, 0); + } + if ($interfaceIsEqual(r, $ifaceNil) && (b.$length + s.length >> 0) < re.minInputLen) { + $s = -1; return sliceType$7.nil; + } + /* */ if (!(re.onepass === ptrType$2.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(re.onepass === ptrType$2.nil)) { */ case 1: + _r = re.doOnePass(r, b, s, pos, ncap, dstCap); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 4; case 4: return $24r; + /* } */ case 2: + /* */ if ($interfaceIsEqual(r, $ifaceNil) && (b.$length + s.length >> 0) < re.maxBitStateLen) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if ($interfaceIsEqual(r, $ifaceNil) && (b.$length + s.length >> 0) < re.maxBitStateLen) { */ case 5: + _r$1 = re.backtrack(b, s, pos, ncap, dstCap); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $24r$1 = _r$1; + $s = 8; case 8: return $24r$1; + /* } */ case 6: + _r$2 = re.get(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + m = _r$2; + _tuple = m.inputs.init(r, b, s); + i = _tuple[0]; + m.init(ncap); + _r$3 = m.match(i, pos); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!_r$3) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (!_r$3) { */ case 10: + re.put(m); + $s = -1; return sliceType$7.nil; + /* } */ case 11: + dstCap = $appendSlice(dstCap, m.matchcap); + re.put(m); + $s = -1; return dstCap; + /* */ } return; } var $f = {$blk: doExecute, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _r$3, _tuple, b, dstCap, i, m, ncap, pos, r, re, s, $s};return $f; + }; + newBitState = function newBitState$1() { + var {_r, _tuple, b, ok, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + _r = bitStatePool.Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = $assertType(_r, ptrType$16, true); + b = _tuple[0]; + ok = _tuple[1]; + if (!ok) { + b = new bitState.ptr(0, sliceType$7.nil, sliceType$7.nil, sliceType$15.nil, sliceType$2.nil, new inputs.ptr(new inputBytes.ptr(sliceType$4.nil), new inputString.ptr(""), new inputReader.ptr($ifaceNil, false, 0))); } - i$2 = 0; - while (true) { - if (!(i$2 < f.Comments.$length)) { break; } - cg$2 = (x$6 = f.Comments, ((i$2 < 0 || i$2 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + i$2])); - _ref$3 = delcomments; - _i$3 = 0; + $s = -1; return b; + /* */ } return; } var $f = {$blk: newBitState$1, $c: true, $r, _r, _tuple, b, ok, $s};return $f; + }; + freeBitState = function freeBitState$1(b) { + var b; + b.inputs.clear(); + bitStatePool.Put(b); + }; + maxBitStateLen = function maxBitStateLen$1(prog) { + var _q, prog; + if (!shouldBacktrack(prog)) { + return 0; + } + return (_q = 262144 / prog.Inst.$length, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + }; + shouldBacktrack = function shouldBacktrack$1(prog) { + var prog; + return prog.Inst.$length <= 500; + }; + $ptrType(bitState).prototype.reset = function reset(prog, end, ncap) { + var _i, _i$1, _i$2, _q, _ref, _ref$1, _ref$2, b, end, i, i$1, i$2, ncap, prog, visitedSize, x, x$1, x$2; + b = this; + b.end = end; + if (b.jobs.$capacity === 0) { + b.jobs = $makeSlice(sliceType$15, 0, 256); + } else { + b.jobs = $subslice(b.jobs, 0, 0); + } + visitedSize = (_q = (((($imul(prog.Inst.$length, ((end + 1 >> 0)))) + 32 >> 0) - 1 >> 0)) / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + if (b.visited.$capacity < visitedSize) { + b.visited = $makeSlice(sliceType$2, visitedSize, 8192); + } else { + b.visited = $subslice(b.visited, 0, visitedSize); + _ref = b.visited; + _i = 0; while (true) { - if (!(_i$3 < _ref$3.$length)) { break; } - j$2 = _i$3; - del$1 = ((_i$3 < 0 || _i$3 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$3]); - if (cg$2 === del$1) { - $copySlice($subslice(f.Comments, i$2), $subslice(f.Comments, (i$2 + 1 >> 0))); - f.Comments = $subslice(f.Comments, 0, (f.Comments.$length - 1 >> 0)); - $copySlice($subslice(delcomments, j$2), $subslice(delcomments, (j$2 + 1 >> 0))); - delcomments = $subslice(delcomments, 0, (delcomments.$length - 1 >> 0)); - i$2 = i$2 - (1) >> 0; - break; - } - _i$3++; + if (!(_i < _ref.$length)) { break; } + i = _i; + (x = b.visited, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i] = 0)); + _i++; } - i$2 = i$2 + (1) >> 0; } - /* */ if (delspecs.$length > 0) { $s = 49; continue; } - /* */ $s = 50; continue; - /* if (delspecs.$length > 0) { */ case 49: - _r$17 = fmt.Sprintf("deleted specs from Decls but not Imports: %v", new sliceType$2([delspecs])); /* */ $s = 51; case 51: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } - $panic(new $String(_r$17)); - /* } */ case 50: - $s = -1; return deleted; - /* */ } return; } var $f = {$blk: DeleteNamedImport$1, $c: true, $r, _i, _i$1, _i$2, _i$3, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _tuple, _v, _v$1, cg, cg$1, cg$2, decl, del, del$1, delcomments, deleted, delspecs, f, fset, gen, i, i$1, i$2, imp, impspec, j, j$1, j$2, lastImpspec, lastLine, line, name, ok, path, spec, spec$1, x, x$1, x$2, x$3, x$4, x$5, x$6, $s};return $f; - }; - $pkg.DeleteNamedImport = DeleteNamedImport; - imports = function imports$1(f, name, path) { - var _i, _ref, f, name, path, s; - _ref = f.Imports; - _i = 0; + if (b.cap.$capacity < ncap) { + b.cap = $makeSlice(sliceType$7, ncap); + } else { + b.cap = $subslice(b.cap, 0, ncap); + } + _ref$1 = b.cap; + _i$1 = 0; while (true) { - if (!(_i < _ref.$length)) { break; } - s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - if (importName(s) === name && importPath(s) === path) { - return true; - } - _i++; + if (!(_i$1 < _ref$1.$length)) { break; } + i$1 = _i$1; + (x$1 = b.cap, ((i$1 < 0 || i$1 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$1] = -1)); + _i$1++; } - return false; - }; - importName = function importName$1(s) { - var s; - if (s.Name === ptrType$10.nil) { - return ""; + if (b.matchcap.$capacity < ncap) { + b.matchcap = $makeSlice(sliceType$7, ncap); + } else { + b.matchcap = $subslice(b.matchcap, 0, ncap); } - return s.Name.Name; - }; - importPath = function importPath$1(s) { - var _tuple, err, s, t; - _tuple = strconv.Unquote(s.Path.Value); - t = _tuple[0]; - err = _tuple[1]; - if (!($interfaceIsEqual(err, $ifaceNil))) { - return ""; + _ref$2 = b.matchcap; + _i$2 = 0; + while (true) { + if (!(_i$2 < _ref$2.$length)) { break; } + i$2 = _i$2; + (x$2 = b.matchcap, ((i$2 < 0 || i$2 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$2] = -1)); + _i$2++; } - return t; }; - declImports = function declImports$1(gen, path) { - var _i, _ref, gen, impspec, path, spec; - if (!((gen.Tok === 75))) { + $ptrType(bitState).prototype.shouldVisit = function shouldVisit(pc, pos) { + var _index, _q, _q$1, b, n, pc, pos, x, x$1, x$2, x$3, y, y$1; + b = this; + n = (((($imul(((pc >> 0)), ((b.end + 1 >> 0)))) + pos >> 0) >>> 0)); + if (!(((((x = b.visited, x$1 = (_q = n / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")), ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])) & (((y = (((n & 31) >>> 0)), y < 32 ? (1 << y) : 0) >>> 0))) >>> 0) === 0))) { return false; } - _ref = gen.Specs; - _i = 0; - while (true) { - if (!(_i < _ref.$length)) { break; } - spec = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - impspec = $assertType(spec, ptrType$52); - if (importPath(impspec) === path) { - return true; - } - _i++; - } - return false; + _index = (_q$1 = n / 32, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero")); + (x$3 = b.visited, ((_index < 0 || _index >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + _index] = (((x$2 = b.visited, ((_index < 0 || _index >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + _index])) | (((y$1 = (((n & 31) >>> 0)), y$1 < 32 ? (1 << y$1) : 0) >>> 0))) >>> 0))); + return true; }; - matchLen = function matchLen$1(x, y) { - var i, n, x, y; - n = 0; - i = 0; - while (true) { - if (!(i < x.length && i < y.length && (x.charCodeAt(i) === y.charCodeAt(i)))) { break; } - if (x.charCodeAt(i) === 47) { - n = n + (1) >> 0; - } - i = i + (1) >> 0; + $ptrType(bitState).prototype.push = function push(re, pc, pos, arg) { + var arg, b, pc, pos, re, x; + b = this; + if (!(((x = re.prog.Inst, ((pc < 0 || pc >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pc])).Op === 5)) && (arg || b.shouldVisit(pc, pos))) { + b.jobs = $append(b.jobs, new job.ptr(pc, arg, pos)); } - return n; }; - Imports = function Imports$1(fset, f) { - var {_i, _i$1, _r, _ref, _ref$1, _tuple, decl, f, fset, genDecl, group, groups, importSpec$2, lastLine, line, ok, pos, spec, $s, $r, $c} = $restore(this, {fset, f}); + $ptrType(Regexp).prototype.tryBacktrack = function tryBacktrack(b, i, pc, pos) { + var {_1, _2, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, _tuple$2, _tuple$3, arg, b, flag, i, inst, l, longest, old, pc, pc$1, pos, pos$1, r, r$1, r$2, r$3, re, width, width$1, width$2, width$3, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {b, i, pc, pos}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: - groups = sliceType$6.nil; - _ref = f.Decls; - _i = 0; + re = this; + longest = re.longest; + b.push(re, pc, pos, false); /* while (true) { */ case 1: - /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } - decl = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - _tuple = $assertType(decl, ptrType$56, true); - genDecl = _tuple[0]; - ok = _tuple[1]; - if (!ok || !((genDecl.Tok === 75))) { - /* break; */ $s = 2; continue; + /* if (!(b.jobs.$length > 0)) { break; } */ if(!(b.jobs.$length > 0)) { $s = 2; continue; } + l = b.jobs.$length - 1 >> 0; + pc$1 = (x = b.jobs, ((l < 0 || l >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + l])).pc; + pos$1 = (x$1 = b.jobs, ((l < 0 || l >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + l])).pos; + arg = (x$2 = b.jobs, ((l < 0 || l >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + l])).arg; + b.jobs = $subslice(b.jobs, 0, l); + /* goto Skip */ $s = 3; continue; + /* CheckAndLoop: */ case 4: + if (!b.shouldVisit(pc$1, pos$1)) { + /* continue; */ $s = 1; continue; } - group = new sliceType$4([]); - lastLine = 0; - _ref$1 = genDecl.Specs; - _i$1 = 0; - /* while (true) { */ case 3: - /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 4; continue; } - spec = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); - importSpec$2 = $assertType(spec, ptrType$52); - pos = importSpec$2.Path.ValuePos; - _r = fset.Position(pos); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } - line = _r.Line; - if (lastLine > 0 && pos > 0 && (line - lastLine >> 0) > 1) { - groups = $append(groups, group); - group = new sliceType$4([]); - } - group = $append(group, importSpec$2); - lastLine = line; - _i$1++; - $s = 3; continue; - case 4: - groups = $append(groups, group); - _i++; + /* Skip: */ case 3: + inst = (x$3 = re.prog.Inst, ((pc$1 < 0 || pc$1 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$3.$array, x$3.$offset + pc$1, ptrType$6))); + _1 = inst.Op; + /* */ if (_1 === (5)) { $s = 6; continue; } + /* */ if (_1 === (0)) { $s = 7; continue; } + /* */ if (_1 === (1)) { $s = 8; continue; } + /* */ if (_1 === (7)) { $s = 9; continue; } + /* */ if (_1 === (8)) { $s = 10; continue; } + /* */ if (_1 === (10)) { $s = 11; continue; } + /* */ if (_1 === (9)) { $s = 12; continue; } + /* */ if (_1 === (2)) { $s = 13; continue; } + /* */ if (_1 === (3)) { $s = 14; continue; } + /* */ if (_1 === (6)) { $s = 15; continue; } + /* */ if (_1 === (4)) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (_1 === (5)) { */ case 6: + $panic(new $String("unexpected InstFail")); + $s = 18; continue; + /* } else if (_1 === (0)) { */ case 7: + /* */ if (arg) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (arg) { */ case 19: + arg = false; + pc$1 = inst.Arg; + /* goto CheckAndLoop */ $s = 4; continue; + $s = 21; continue; + /* } else { */ case 20: + b.push(re, pc$1, pos$1, true); + pc$1 = inst.Out; + /* goto CheckAndLoop */ $s = 4; continue; + /* } */ case 21: + $s = 18; continue; + /* } else if (_1 === (1)) { */ case 8: + _2 = (x$4 = re.prog.Inst, x$5 = inst.Out, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])).Op; + /* */ if ((_2 === (7)) || (_2 === (8)) || (_2 === (9)) || (_2 === (10))) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if ((_2 === (7)) || (_2 === (8)) || (_2 === (9)) || (_2 === (10))) { */ case 23: + b.push(re, inst.Arg, pos$1, false); + pc$1 = inst.Arg; + pos$1 = b.end; + /* goto CheckAndLoop */ $s = 4; continue; + /* } */ case 24: + case 22: + b.push(re, inst.Out, b.end, false); + pc$1 = inst.Out; + /* goto CheckAndLoop */ $s = 4; continue; + $s = 18; continue; + /* } else if (_1 === (7)) { */ case 9: + _r = i.step(pos$1); /* */ $s = 25; case 25: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + r = _tuple[0]; + width = _tuple[1]; + if (!inst.MatchRune(r)) { + /* continue; */ $s = 1; continue; + } + pos$1 = pos$1 + (width) >> 0; + pc$1 = inst.Out; + /* goto CheckAndLoop */ $s = 4; continue; + $s = 18; continue; + /* } else if (_1 === (8)) { */ case 10: + _r$1 = i.step(pos$1); /* */ $s = 26; case 26: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + r$1 = _tuple$1[0]; + width$1 = _tuple$1[1]; + if (!((r$1 === (x$6 = inst.Rune, (0 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + 0]))))) { + /* continue; */ $s = 1; continue; + } + pos$1 = pos$1 + (width$1) >> 0; + pc$1 = inst.Out; + /* goto CheckAndLoop */ $s = 4; continue; + $s = 18; continue; + /* } else if (_1 === (10)) { */ case 11: + _r$2 = i.step(pos$1); /* */ $s = 27; case 27: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$2 = _r$2; + r$2 = _tuple$2[0]; + width$2 = _tuple$2[1]; + if ((r$2 === 10) || (r$2 === -1)) { + /* continue; */ $s = 1; continue; + } + pos$1 = pos$1 + (width$2) >> 0; + pc$1 = inst.Out; + /* goto CheckAndLoop */ $s = 4; continue; + $s = 18; continue; + /* } else if (_1 === (9)) { */ case 12: + _r$3 = i.step(pos$1); /* */ $s = 28; case 28: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$3 = _r$3; + r$3 = _tuple$3[0]; + width$3 = _tuple$3[1]; + if (r$3 === -1) { + /* continue; */ $s = 1; continue; + } + pos$1 = pos$1 + (width$3) >> 0; + pc$1 = inst.Out; + /* goto CheckAndLoop */ $s = 4; continue; + $s = 18; continue; + /* } else if (_1 === (2)) { */ case 13: + /* */ if (arg) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if (arg) { */ case 29: + (x$7 = b.cap, x$8 = inst.Arg, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8] = pos$1)); + /* continue; */ $s = 1; continue; + $s = 31; continue; + /* } else { */ case 30: + if (inst.Arg < ((b.cap.$length >>> 0))) { + b.push(re, pc$1, (x$9 = b.cap, x$10 = inst.Arg, ((x$10 < 0 || x$10 >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + x$10])), true); + (x$11 = b.cap, x$12 = inst.Arg, ((x$12 < 0 || x$12 >= x$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + x$12] = pos$1)); + } + pc$1 = inst.Out; + /* goto CheckAndLoop */ $s = 4; continue; + /* } */ case 31: + $s = 18; continue; + /* } else if (_1 === (3)) { */ case 14: + _r$4 = i.context(pos$1); /* */ $s = 32; case 32: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + flag = _r$4; + if (!flag.match(((inst.Arg << 24 >>> 24)))) { + /* continue; */ $s = 1; continue; + } + pc$1 = inst.Out; + /* goto CheckAndLoop */ $s = 4; continue; + $s = 18; continue; + /* } else if (_1 === (6)) { */ case 15: + pc$1 = inst.Out; + /* goto CheckAndLoop */ $s = 4; continue; + $s = 18; continue; + /* } else if (_1 === (4)) { */ case 16: + if (b.cap.$length === 0) { + $s = -1; return true; + } + if (b.cap.$length > 1) { + (x$13 = b.cap, (1 >= x$13.$length ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + 1] = pos$1)); + } + old = (x$14 = b.matchcap, (1 >= x$14.$length ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + 1])); + if ((old === -1) || (longest && pos$1 > 0 && pos$1 > old)) { + $copySlice(b.matchcap, b.cap); + } + if (!longest) { + $s = -1; return true; + } + if (pos$1 === b.end) { + $s = -1; return true; + } + /* continue; */ $s = 1; continue; + $s = 18; continue; + /* } else { */ case 17: + $panic(new $String("bad inst")); + /* } */ case 18: + case 5: $s = 1; continue; case 2: - $s = -1; return groups; - /* */ } return; } var $f = {$blk: Imports$1, $c: true, $r, _i, _i$1, _r, _ref, _ref$1, _tuple, decl, f, fset, genDecl, group, groups, importSpec$2, lastLine, line, ok, pos, spec, $s};return $f; + $s = -1; return longest && b.matchcap.$length > 1 && (x$15 = b.matchcap, (1 >= x$15.$length ? ($throwRuntimeError("index out of range"), undefined) : x$15.$array[x$15.$offset + 1])) >= 0; + /* */ } return; } var $f = {$blk: tryBacktrack, $c: true, $r, _1, _2, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, _tuple$2, _tuple$3, arg, b, flag, i, inst, l, longest, old, pc, pc$1, pos, pos$1, r, r$1, r$2, r$3, re, width, width$1, width$2, width$3, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f; }; - $pkg.Imports = Imports; + $ptrType(Regexp).prototype.backtrack = function backtrack(ib, is, pos, ncap, dstCap) { + var {_r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, advance, b, dstCap, end, i, ib, is, ncap, pos, re, startCond, width, x, x$1, $s, $r, $c} = $restore(this, {ib, is, pos, ncap, dstCap}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + re = this; + startCond = re.cond; + if (startCond === 255) { + $s = -1; return sliceType$7.nil; + } + if (!((((startCond & 4) >>> 0) === 0)) && !((pos === 0))) { + $s = -1; return sliceType$7.nil; + } + _r = newBitState(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + b = _r; + _tuple = b.inputs.init($ifaceNil, ib, is); + i = _tuple[0]; + end = _tuple[1]; + b.reset(re.prog, end, ncap); + /* */ if (!((((startCond & 4) >>> 0) === 0))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!((((startCond & 4) >>> 0) === 0))) { */ case 2: + if (b.cap.$length > 0) { + (x = b.cap, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0] = pos)); + } + _r$1 = re.tryBacktrack(b, i, ((re.prog.Start >>> 0)), pos); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!_r$1) { */ case 5: + freeBitState(b); + $s = -1; return sliceType$7.nil; + /* } */ case 6: + $s = 4; continue; + /* } else { */ case 3: + width = -1; + /* while (true) { */ case 8: + /* if (!(pos <= end && !((width === 0)))) { break; } */ if(!(pos <= end && !((width === 0)))) { $s = 9; continue; } + /* */ if (re.prefix.length > 0) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (re.prefix.length > 0) { */ case 10: + _r$2 = i.index(re, pos); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + advance = _r$2; + if (advance < 0) { + freeBitState(b); + $s = -1; return sliceType$7.nil; + } + pos = pos + (advance) >> 0; + /* } */ case 11: + if (b.cap.$length > 0) { + (x$1 = b.cap, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0] = pos)); + } + _r$3 = re.tryBacktrack(b, i, ((re.prog.Start >>> 0)), pos); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (_r$3) { */ case 13: + /* goto Match */ $s = 16; continue; + /* } */ case 14: + _r$4 = i.step(pos); /* */ $s = 17; case 17: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$1 = _r$4; + width = _tuple$1[1]; + pos = pos + (width) >> 0; + $s = 8; continue; + case 9: + freeBitState(b); + $s = -1; return sliceType$7.nil; + /* } */ case 4: + /* Match: */ case 16: + dstCap = $appendSlice(dstCap, b.matchcap); + freeBitState(b); + $s = -1; return dstCap; + /* */ } return; } var $f = {$blk: backtrack, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, advance, b, dstCap, end, i, ib, is, ncap, pos, re, startCond, width, x, x$1, $s};return $f; + }; + ptrType.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Copy", name: "Copy", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "Longest", name: "Longest", pkg: "", typ: $funcType([], [], false)}, {prop: "get", name: "get", pkg: "regexp", typ: $funcType([], [ptrType$3], false)}, {prop: "put", name: "put", pkg: "regexp", typ: $funcType([ptrType$3], [], false)}, {prop: "NumSubexp", name: "NumSubexp", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "SubexpNames", name: "SubexpNames", pkg: "", typ: $funcType([], [sliceType$3], false)}, {prop: "SubexpIndex", name: "SubexpIndex", pkg: "", typ: $funcType([$String], [$Int], false)}, {prop: "LiteralPrefix", name: "LiteralPrefix", pkg: "", typ: $funcType([], [$String, $Bool], false)}, {prop: "MatchReader", name: "MatchReader", pkg: "", typ: $funcType([io.RuneReader], [$Bool], false)}, {prop: "MatchString", name: "MatchString", pkg: "", typ: $funcType([$String], [$Bool], false)}, {prop: "Match", name: "Match", pkg: "", typ: $funcType([sliceType$4], [$Bool], false)}, {prop: "ReplaceAllString", name: "ReplaceAllString", pkg: "", typ: $funcType([$String, $String], [$String], false)}, {prop: "ReplaceAllLiteralString", name: "ReplaceAllLiteralString", pkg: "", typ: $funcType([$String, $String], [$String], false)}, {prop: "ReplaceAllStringFunc", name: "ReplaceAllStringFunc", pkg: "", typ: $funcType([$String, funcType], [$String], false)}, {prop: "replaceAll", name: "replaceAll", pkg: "regexp", typ: $funcType([sliceType$4, $String, $Int, funcType$1], [sliceType$4], false)}, {prop: "ReplaceAll", name: "ReplaceAll", pkg: "", typ: $funcType([sliceType$4, sliceType$4], [sliceType$4], false)}, {prop: "ReplaceAllLiteral", name: "ReplaceAllLiteral", pkg: "", typ: $funcType([sliceType$4, sliceType$4], [sliceType$4], false)}, {prop: "ReplaceAllFunc", name: "ReplaceAllFunc", pkg: "", typ: $funcType([sliceType$4, funcType$2], [sliceType$4], false)}, {prop: "pad", name: "pad", pkg: "regexp", typ: $funcType([sliceType$7], [sliceType$7], false)}, {prop: "allMatches", name: "allMatches", pkg: "regexp", typ: $funcType([$String, sliceType$4, $Int, funcType$3], [], false)}, {prop: "Find", name: "Find", pkg: "", typ: $funcType([sliceType$4], [sliceType$4], false)}, {prop: "FindIndex", name: "FindIndex", pkg: "", typ: $funcType([sliceType$4], [sliceType$7], false)}, {prop: "FindString", name: "FindString", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "FindStringIndex", name: "FindStringIndex", pkg: "", typ: $funcType([$String], [sliceType$7], false)}, {prop: "FindReaderIndex", name: "FindReaderIndex", pkg: "", typ: $funcType([io.RuneReader], [sliceType$7], false)}, {prop: "FindSubmatch", name: "FindSubmatch", pkg: "", typ: $funcType([sliceType$4], [sliceType$8], false)}, {prop: "Expand", name: "Expand", pkg: "", typ: $funcType([sliceType$4, sliceType$4, sliceType$4, sliceType$7], [sliceType$4], false)}, {prop: "ExpandString", name: "ExpandString", pkg: "", typ: $funcType([sliceType$4, $String, $String, sliceType$7], [sliceType$4], false)}, {prop: "expand", name: "expand", pkg: "regexp", typ: $funcType([sliceType$4, $String, sliceType$4, $String, sliceType$7], [sliceType$4], false)}, {prop: "FindSubmatchIndex", name: "FindSubmatchIndex", pkg: "", typ: $funcType([sliceType$4], [sliceType$7], false)}, {prop: "FindStringSubmatch", name: "FindStringSubmatch", pkg: "", typ: $funcType([$String], [sliceType$3], false)}, {prop: "FindStringSubmatchIndex", name: "FindStringSubmatchIndex", pkg: "", typ: $funcType([$String], [sliceType$7], false)}, {prop: "FindReaderSubmatchIndex", name: "FindReaderSubmatchIndex", pkg: "", typ: $funcType([io.RuneReader], [sliceType$7], false)}, {prop: "FindAll", name: "FindAll", pkg: "", typ: $funcType([sliceType$4, $Int], [sliceType$8], false)}, {prop: "FindAllIndex", name: "FindAllIndex", pkg: "", typ: $funcType([sliceType$4, $Int], [sliceType$9], false)}, {prop: "FindAllString", name: "FindAllString", pkg: "", typ: $funcType([$String, $Int], [sliceType$3], false)}, {prop: "FindAllStringIndex", name: "FindAllStringIndex", pkg: "", typ: $funcType([$String, $Int], [sliceType$9], false)}, {prop: "FindAllSubmatch", name: "FindAllSubmatch", pkg: "", typ: $funcType([sliceType$4, $Int], [sliceType$10], false)}, {prop: "FindAllSubmatchIndex", name: "FindAllSubmatchIndex", pkg: "", typ: $funcType([sliceType$4, $Int], [sliceType$9], false)}, {prop: "FindAllStringSubmatch", name: "FindAllStringSubmatch", pkg: "", typ: $funcType([$String, $Int], [sliceType$11], false)}, {prop: "FindAllStringSubmatchIndex", name: "FindAllStringSubmatchIndex", pkg: "", typ: $funcType([$String, $Int], [sliceType$9], false)}, {prop: "Split", name: "Split", pkg: "", typ: $funcType([$String, $Int], [sliceType$3], false)}, {prop: "MarshalText", name: "MarshalText", pkg: "", typ: $funcType([], [sliceType$4, $error], false)}, {prop: "UnmarshalText", name: "UnmarshalText", pkg: "", typ: $funcType([sliceType$4], [$error], false)}, {prop: "doOnePass", name: "doOnePass", pkg: "regexp", typ: $funcType([io.RuneReader, sliceType$4, $String, $Int, $Int, sliceType$7], [sliceType$7], false)}, {prop: "doMatch", name: "doMatch", pkg: "regexp", typ: $funcType([io.RuneReader, sliceType$4, $String], [$Bool], false)}, {prop: "doExecute", name: "doExecute", pkg: "regexp", typ: $funcType([io.RuneReader, sliceType$4, $String, $Int, $Int, sliceType$7], [sliceType$7], false)}, {prop: "tryBacktrack", name: "tryBacktrack", pkg: "regexp", typ: $funcType([ptrType$16, input, $Uint32, $Int], [$Bool], false)}, {prop: "backtrack", name: "backtrack", pkg: "regexp", typ: $funcType([sliceType$4, $String, $Int, $Int, sliceType$7], [sliceType$7], false)}]; + ptrType$17.methods = [{prop: "step", name: "step", pkg: "regexp", typ: $funcType([$Int], [$Int32, $Int], false)}, {prop: "canCheckPrefix", name: "canCheckPrefix", pkg: "regexp", typ: $funcType([], [$Bool], false)}, {prop: "hasPrefix", name: "hasPrefix", pkg: "regexp", typ: $funcType([ptrType], [$Bool], false)}, {prop: "index", name: "index", pkg: "regexp", typ: $funcType([ptrType, $Int], [$Int], false)}, {prop: "context", name: "context", pkg: "regexp", typ: $funcType([$Int], [lazyFlag], false)}]; + ptrType$18.methods = [{prop: "step", name: "step", pkg: "regexp", typ: $funcType([$Int], [$Int32, $Int], false)}, {prop: "canCheckPrefix", name: "canCheckPrefix", pkg: "regexp", typ: $funcType([], [$Bool], false)}, {prop: "hasPrefix", name: "hasPrefix", pkg: "regexp", typ: $funcType([ptrType], [$Bool], false)}, {prop: "index", name: "index", pkg: "regexp", typ: $funcType([ptrType, $Int], [$Int], false)}, {prop: "context", name: "context", pkg: "regexp", typ: $funcType([$Int], [lazyFlag], false)}]; + ptrType$19.methods = [{prop: "step", name: "step", pkg: "regexp", typ: $funcType([$Int], [$Int32, $Int], false)}, {prop: "canCheckPrefix", name: "canCheckPrefix", pkg: "regexp", typ: $funcType([], [$Bool], false)}, {prop: "hasPrefix", name: "hasPrefix", pkg: "regexp", typ: $funcType([ptrType], [$Bool], false)}, {prop: "index", name: "index", pkg: "regexp", typ: $funcType([ptrType, $Int], [$Int], false)}, {prop: "context", name: "context", pkg: "regexp", typ: $funcType([$Int], [lazyFlag], false)}]; + ptrType$8.methods = [{prop: "empty", name: "empty", pkg: "regexp", typ: $funcType([], [$Bool], false)}, {prop: "next", name: "next", pkg: "regexp", typ: $funcType([], [$Uint32], false)}, {prop: "clear", name: "clear", pkg: "regexp", typ: $funcType([], [], false)}, {prop: "contains", name: "contains", pkg: "regexp", typ: $funcType([$Uint32], [$Bool], false)}, {prop: "insert", name: "insert", pkg: "regexp", typ: $funcType([$Uint32], [], false)}, {prop: "insertNew", name: "insertNew", pkg: "regexp", typ: $funcType([$Uint32], [], false)}]; + runeSlice.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}]; + ptrType$3.methods = [{prop: "init", name: "init", pkg: "regexp", typ: $funcType([$Int], [], false)}, {prop: "alloc", name: "alloc", pkg: "regexp", typ: $funcType([ptrType$6], [ptrType$5], false)}, {prop: "match", name: "match", pkg: "regexp", typ: $funcType([input, $Int], [$Bool], false)}, {prop: "clear", name: "clear", pkg: "regexp", typ: $funcType([ptrType$20], [], false)}, {prop: "step", name: "step", pkg: "regexp", typ: $funcType([ptrType$20, ptrType$20, $Int, $Int, $Int32, ptrType$13], [], false)}, {prop: "add", name: "add", pkg: "regexp", typ: $funcType([ptrType$20, $Uint32, $Int, sliceType$7, ptrType$13, ptrType$5], [ptrType$5], false)}]; + ptrType$21.methods = [{prop: "newBytes", name: "newBytes", pkg: "regexp", typ: $funcType([sliceType$4], [input], false)}, {prop: "newString", name: "newString", pkg: "regexp", typ: $funcType([$String], [input], false)}, {prop: "newReader", name: "newReader", pkg: "regexp", typ: $funcType([io.RuneReader], [input], false)}, {prop: "clear", name: "clear", pkg: "regexp", typ: $funcType([], [], false)}, {prop: "init", name: "init", pkg: "regexp", typ: $funcType([io.RuneReader, sliceType$4, $String], [input, $Int], false)}]; + lazyFlag.methods = [{prop: "match", name: "match", pkg: "regexp", typ: $funcType([syntax.EmptyOp], [$Bool], false)}]; + ptrType$16.methods = [{prop: "reset", name: "reset", pkg: "regexp", typ: $funcType([ptrType$1, $Int, $Int], [], false)}, {prop: "shouldVisit", name: "shouldVisit", pkg: "regexp", typ: $funcType([$Uint32, $Int], [$Bool], false)}, {prop: "push", name: "push", pkg: "regexp", typ: $funcType([ptrType, $Uint32, $Int, $Bool], [], false)}]; + Regexp.init("regexp", [{prop: "expr", name: "expr", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "prog", name: "prog", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "onepass", name: "onepass", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "numSubexp", name: "numSubexp", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "maxBitStateLen", name: "maxBitStateLen", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "subexpNames", name: "subexpNames", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "prefix", name: "prefix", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "prefixBytes", name: "prefixBytes", embedded: false, exported: false, typ: sliceType$4, tag: ""}, {prop: "prefixRune", name: "prefixRune", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "prefixEnd", name: "prefixEnd", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "mpool", name: "mpool", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "matchcap", name: "matchcap", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "prefixComplete", name: "prefixComplete", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "cond", name: "cond", embedded: false, exported: false, typ: syntax.EmptyOp, tag: ""}, {prop: "minInputLen", name: "minInputLen", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "longest", name: "longest", embedded: false, exported: false, typ: $Bool, tag: ""}]); + input.init([{prop: "canCheckPrefix", name: "canCheckPrefix", pkg: "regexp", typ: $funcType([], [$Bool], false)}, {prop: "context", name: "context", pkg: "regexp", typ: $funcType([$Int], [lazyFlag], false)}, {prop: "hasPrefix", name: "hasPrefix", pkg: "regexp", typ: $funcType([ptrType], [$Bool], false)}, {prop: "index", name: "index", pkg: "regexp", typ: $funcType([ptrType, $Int], [$Int], false)}, {prop: "step", name: "step", pkg: "regexp", typ: $funcType([$Int], [$Int32, $Int], false)}]); + inputString.init("regexp", [{prop: "str", name: "str", embedded: false, exported: false, typ: $String, tag: ""}]); + inputBytes.init("regexp", [{prop: "str", name: "str", embedded: false, exported: false, typ: sliceType$4, tag: ""}]); + inputReader.init("regexp", [{prop: "r", name: "r", embedded: false, exported: false, typ: io.RuneReader, tag: ""}, {prop: "atEOT", name: "atEOT", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: $Int, tag: ""}]); + onePassProg.init("", [{prop: "Inst", name: "Inst", embedded: false, exported: true, typ: sliceType$12, tag: ""}, {prop: "Start", name: "Start", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "NumCap", name: "NumCap", embedded: false, exported: true, typ: $Int, tag: ""}]); + onePassInst.init("", [{prop: "Inst", name: "Inst", embedded: true, exported: true, typ: syntax.Inst, tag: ""}, {prop: "Next", name: "Next", embedded: false, exported: true, typ: sliceType$2, tag: ""}]); + queueOnePass.init("regexp", [{prop: "sparse", name: "sparse", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "dense", name: "dense", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "nextIndex", name: "nextIndex", embedded: false, exported: false, typ: $Uint32, tag: ""}]); + runeSlice.init($Int32); + queue.init("regexp", [{prop: "sparse", name: "sparse", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "dense", name: "dense", embedded: false, exported: false, typ: sliceType$5, tag: ""}]); + entry.init("regexp", [{prop: "pc", name: "pc", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "t", name: "t", embedded: false, exported: false, typ: ptrType$5, tag: ""}]); + thread.init("regexp", [{prop: "inst", name: "inst", embedded: false, exported: false, typ: ptrType$6, tag: ""}, {prop: "cap", name: "cap", embedded: false, exported: false, typ: sliceType$7, tag: ""}]); + machine.init("regexp", [{prop: "re", name: "re", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "p", name: "p", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "q0", name: "q0", embedded: false, exported: false, typ: queue, tag: ""}, {prop: "q1", name: "q1", embedded: false, exported: false, typ: queue, tag: ""}, {prop: "pool", name: "pool", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "matched", name: "matched", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "matchcap", name: "matchcap", embedded: false, exported: false, typ: sliceType$7, tag: ""}, {prop: "inputs", name: "inputs", embedded: false, exported: false, typ: inputs, tag: ""}]); + inputs.init("regexp", [{prop: "bytes", name: "bytes", embedded: false, exported: false, typ: inputBytes, tag: ""}, {prop: "string", name: "string", embedded: false, exported: false, typ: inputString, tag: ""}, {prop: "reader", name: "reader", embedded: false, exported: false, typ: inputReader, tag: ""}]); + onePassMachine.init("regexp", [{prop: "inputs", name: "inputs", embedded: false, exported: false, typ: inputs, tag: ""}, {prop: "matchcap", name: "matchcap", embedded: false, exported: false, typ: sliceType$7, tag: ""}]); + job.init("regexp", [{prop: "pc", name: "pc", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "arg", name: "arg", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: $Int, tag: ""}]); + bitState.init("regexp", [{prop: "end", name: "end", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "cap", name: "cap", embedded: false, exported: false, typ: sliceType$7, tag: ""}, {prop: "matchcap", name: "matchcap", embedded: false, exported: false, typ: sliceType$7, tag: ""}, {prop: "jobs", name: "jobs", embedded: false, exported: false, typ: sliceType$15, tag: ""}, {prop: "visited", name: "visited", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "inputs", name: "inputs", embedded: false, exported: false, typ: inputs, tag: ""}]); }; $init = function() { $pkg.$init = function() {}; /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: - $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = ast.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = token.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = typeparams.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = reflect.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = sort.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = strconv.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - $r = strings.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } - abort = $newDataPointer(0, ptrType); + $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = nosync.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = syntax.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sort.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unicode.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + matchPool = arrayType.zero(); + specialBytes = arrayType$1.zero(); + onePassPool = new nosync.Pool.ptr(sliceType.nil, $throwNilPointerError); + arrayNoInts = arrayType$2.zero(); + bitStatePool = new nosync.Pool.ptr(sliceType.nil, $throwNilPointerError); + matchSize = $toNativeArray($kindInt, [128, 512, 2048, 16384, 0]); + noRune = new sliceType$1([]); + noNext = new sliceType$2([4294967295]); + anyRuneNotNL = new sliceType$1([0, 9, 11, 1114111]); + anyRune = new sliceType$1([0, 1114111]); + init(); /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; }; $pkg.$init = $init; @@ -100872,6 +61103,15 @@ $packages["embed"] = (function() { } return 292; }; + $ptrType(file).prototype.String = function String() { + var {$24r, _r, f, $s, $r, $c} = $restore(this, {}); + /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: + f = this; + _r = fs.FormatFileInfo(f); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $24r = _r; + $s = 2; case 2: return $24r; + /* */ } return; } var $f = {$blk: String, $c: true, $r, $24r, _r, f, $s};return $f; + }; $ptrType(FS).prototype.lookup = function lookup(name) { var {_r, _tuple, dir, elem, f, files, i, name, $s, $r, $c} = $restore(this, {name}); /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0: @@ -100901,7 +61141,7 @@ $packages["embed"] = (function() { }; })(dir, elem, files)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } i = _r; if (i < files[0].$length && trimSlash(((i < 0 || i >= files[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : files[0].$array[files[0].$offset + i]).name) === name) { - $s = -1; return ((i < 0 || i >= files[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : files[0].$array[files[0].$offset + i]); + $s = -1; return ((i < 0 || i >= files[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(files[0].$array, files[0].$offset + i, ptrType$1)); } $s = -1; return ptrType$1.nil; /* */ } return; } var $f = {$blk: lookup, $c: true, $r, _r, _tuple, dir, elem, f, files, i, name, $s};return $f; @@ -100978,7 +61218,7 @@ $packages["embed"] = (function() { while (true) { if (!(_i < _ref.$length)) { break; } i = _i; - ((i < 0 || i >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + i] = (x$2 = dir.files, ((i < 0 || i >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i]))); + ((i < 0 || i >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + i] = (x$2 = dir.files, ((i < 0 || i >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$2.$array, x$2.$offset + i, ptrType$1)))); _i++; } $s = -1; return [list, $ifaceNil]; @@ -101045,6 +61285,18 @@ $packages["embed"] = (function() { f.offset = offset; return [offset, $ifaceNil]; }; + $ptrType(openFile).prototype.ReadAt = function ReadAt(b, offset) { + var b, f, n, offset, x$2; + f = this; + if ((offset.$high < 0 || (offset.$high === 0 && offset.$low < 0)) || (x$2 = (new $Int64(0, f.f.data.length)), (offset.$high > x$2.$high || (offset.$high === x$2.$high && offset.$low > x$2.$low)))) { + return [0, new fs.PathError.ptr("read", f.f.name, fs.ErrInvalid)]; + } + n = $copyString(b, $substring(f.f.data, $flatten64(offset))); + if (n < b.$length) { + return [n, io.EOF]; + } + return [n, $ifaceNil]; + }; $ptrType(openDir).prototype.Close = function Close$1() { var d; d = this; @@ -101079,7 +61331,7 @@ $packages["embed"] = (function() { while (true) { if (!(_i < _ref.$length)) { break; } i = _i; - ((i < 0 || i >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + i] = (x$2 = d.files, x$3 = d.offset + i >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3]))); + ((i < 0 || i >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + i] = (x$2 = d.files, x$3 = d.offset + i >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : $indexPtr(x$2.$array, x$2.$offset + x$3, ptrType$1)))); _i++; } d.offset = d.offset + (n) >> 0; @@ -101110,8 +61362,8 @@ $packages["embed"] = (function() { /* */ } return; } var $f = {$blk: sortSearch$1, $c: true, $r, _r, _tmp, _tmp$1, f, h, i, j, n, $s};return $f; }; FS.methods = [{prop: "lookup", name: "lookup", pkg: "embed", typ: $funcType([$String], [ptrType$1], false)}, {prop: "readDir", name: "readDir", pkg: "embed", typ: $funcType([$String], [sliceType], false)}, {prop: "Open", name: "Open", pkg: "", typ: $funcType([$String], [fs.File, $error], false)}, {prop: "ReadDir", name: "ReadDir", pkg: "", typ: $funcType([$String], [sliceType$1, $error], false)}, {prop: "ReadFile", name: "ReadFile", pkg: "", typ: $funcType([$String], [sliceType$2, $error], false)}]; - ptrType$1.methods = [{prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "ModTime", name: "ModTime", pkg: "", typ: $funcType([], [time.Time], false)}, {prop: "IsDir", name: "IsDir", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Sys", name: "Sys", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [fs.FileMode], false)}, {prop: "Info", name: "Info", pkg: "", typ: $funcType([], [fs.FileInfo, $error], false)}, {prop: "Mode", name: "Mode", pkg: "", typ: $funcType([], [fs.FileMode], false)}]; - ptrType$2.methods = [{prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Stat", name: "Stat", pkg: "", typ: $funcType([], [fs.FileInfo, $error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "Seek", name: "Seek", pkg: "", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}]; + ptrType$1.methods = [{prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "ModTime", name: "ModTime", pkg: "", typ: $funcType([], [time.Time], false)}, {prop: "IsDir", name: "IsDir", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Sys", name: "Sys", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [fs.FileMode], false)}, {prop: "Info", name: "Info", pkg: "", typ: $funcType([], [fs.FileInfo, $error], false)}, {prop: "Mode", name: "Mode", pkg: "", typ: $funcType([], [fs.FileMode], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$2.methods = [{prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Stat", name: "Stat", pkg: "", typ: $funcType([], [fs.FileInfo, $error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "Seek", name: "Seek", pkg: "", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "ReadAt", name: "ReadAt", pkg: "", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}]; ptrType$4.methods = [{prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Stat", name: "Stat", pkg: "", typ: $funcType([], [fs.FileInfo, $error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "ReadDir", name: "ReadDir", pkg: "", typ: $funcType([$Int], [sliceType$1, $error], false)}]; FS.init("embed", [{prop: "files", name: "files", embedded: false, exported: false, typ: ptrType, tag: ""}]); file.init("embed", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "data", name: "data", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "hash", name: "hash", embedded: false, exported: false, typ: arrayType, tag: ""}]); @@ -101219,7 +61471,7 @@ $packages["hash/crc32"] = (function() { while (true) { if (!(_i < _ref.$length)) { break; } v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); - crc = ((x = tab, x$1 = (((crc << 24 >>> 24)) ^ v) << 24 >>> 24, ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])) ^ ((crc >>> 8 >>> 0))) >>> 0; + crc = ((x = (tab === ptrType.nil && $throwNilPointerError(), tab), x$1 = (((crc << 24 >>> 24)) ^ v) << 24 >>> 24, ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])) ^ ((crc >>> 8 >>> 0))) >>> 0; _i++; } return ~crc >>> 0; @@ -101227,16 +61479,16 @@ $packages["hash/crc32"] = (function() { slicingMakeTable = function slicingMakeTable$1(poly) { var crc, i, j, poly, t, x, x$1, x$2, x$3, x$4; t = arrayType$1.zero(); - simplePopulateTable(poly, t[0]); + simplePopulateTable(poly, $indexPtr(t, 0, ptrType)); i = 0; while (true) { if (!(i < 256)) { break; } - crc = (x = t[0], ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i])); + crc = (x = (t === ptrType$1.nil && $throwNilPointerError(), t)[0], ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i])); j = 1; while (true) { if (!(j < 8)) { break; } - crc = ((x$1 = t[0], x$2 = (crc & 255) >>> 0, ((x$2 < 0 || x$2 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$2])) ^ ((crc >>> 8 >>> 0))) >>> 0; - (x$3 = (x$4 = t, ((j < 0 || j >= x$4.length) ? ($throwRuntimeError("index out of range"), undefined) : x$4[j])), ((i < 0 || i >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[i] = crc)); + crc = ((x$1 = (t === ptrType$1.nil && $throwNilPointerError(), t)[0], x$2 = (crc & 255) >>> 0, ((x$2 < 0 || x$2 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$2])) ^ ((crc >>> 8 >>> 0))) >>> 0; + (x$3 = (x$4 = (t === ptrType$1.nil && $throwNilPointerError(), t), ((j < 0 || j >= x$4.length) ? ($throwRuntimeError("index out of range"), undefined) : x$4[j])), ((i < 0 || i >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[i] = crc)); j = j + (1) >> 0; } i = i + (1) >> 0; @@ -101250,7 +61502,7 @@ $packages["hash/crc32"] = (function() { while (true) { if (!(p.$length > 8)) { break; } crc = (crc ^ ((((((((((0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0]) >>> 0)) | ((((1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1]) >>> 0)) << 8 >>> 0)) >>> 0) | ((((2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2]) >>> 0)) << 16 >>> 0)) >>> 0) | ((((3 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 3]) >>> 0)) << 24 >>> 0)) >>> 0))) >>> 0; - crc = ((((((((((((((x = tab[0], x$1 = (7 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 7]), ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])) ^ (x$2 = tab[1], x$3 = (6 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 6]), ((x$3 < 0 || x$3 >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[x$3]))) >>> 0) ^ (x$4 = tab[2], x$5 = (5 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 5]), ((x$5 < 0 || x$5 >= x$4.length) ? ($throwRuntimeError("index out of range"), undefined) : x$4[x$5]))) >>> 0) ^ (x$6 = tab[3], x$7 = (4 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 4]), ((x$7 < 0 || x$7 >= x$6.length) ? ($throwRuntimeError("index out of range"), undefined) : x$6[x$7]))) >>> 0) ^ (x$8 = tab[4], x$9 = crc >>> 24 >>> 0, ((x$9 < 0 || x$9 >= x$8.length) ? ($throwRuntimeError("index out of range"), undefined) : x$8[x$9]))) >>> 0) ^ (x$10 = tab[5], x$11 = (((crc >>> 16 >>> 0)) & 255) >>> 0, ((x$11 < 0 || x$11 >= x$10.length) ? ($throwRuntimeError("index out of range"), undefined) : x$10[x$11]))) >>> 0) ^ (x$12 = tab[6], x$13 = (((crc >>> 8 >>> 0)) & 255) >>> 0, ((x$13 < 0 || x$13 >= x$12.length) ? ($throwRuntimeError("index out of range"), undefined) : x$12[x$13]))) >>> 0) ^ (x$14 = tab[7], x$15 = (crc & 255) >>> 0, ((x$15 < 0 || x$15 >= x$14.length) ? ($throwRuntimeError("index out of range"), undefined) : x$14[x$15]))) >>> 0; + crc = ((((((((((((((x = (tab === ptrType$1.nil && $throwNilPointerError(), tab)[0], x$1 = (7 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 7]), ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])) ^ (x$2 = (tab === ptrType$1.nil && $throwNilPointerError(), tab)[1], x$3 = (6 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 6]), ((x$3 < 0 || x$3 >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[x$3]))) >>> 0) ^ (x$4 = (tab === ptrType$1.nil && $throwNilPointerError(), tab)[2], x$5 = (5 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 5]), ((x$5 < 0 || x$5 >= x$4.length) ? ($throwRuntimeError("index out of range"), undefined) : x$4[x$5]))) >>> 0) ^ (x$6 = (tab === ptrType$1.nil && $throwNilPointerError(), tab)[3], x$7 = (4 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 4]), ((x$7 < 0 || x$7 >= x$6.length) ? ($throwRuntimeError("index out of range"), undefined) : x$6[x$7]))) >>> 0) ^ (x$8 = (tab === ptrType$1.nil && $throwNilPointerError(), tab)[4], x$9 = crc >>> 24 >>> 0, ((x$9 < 0 || x$9 >= x$8.length) ? ($throwRuntimeError("index out of range"), undefined) : x$8[x$9]))) >>> 0) ^ (x$10 = (tab === ptrType$1.nil && $throwNilPointerError(), tab)[5], x$11 = (((crc >>> 16 >>> 0)) & 255) >>> 0, ((x$11 < 0 || x$11 >= x$10.length) ? ($throwRuntimeError("index out of range"), undefined) : x$10[x$11]))) >>> 0) ^ (x$12 = (tab === ptrType$1.nil && $throwNilPointerError(), tab)[6], x$13 = (((crc >>> 8 >>> 0)) & 255) >>> 0, ((x$13 < 0 || x$13 >= x$12.length) ? ($throwRuntimeError("index out of range"), undefined) : x$12[x$13]))) >>> 0) ^ (x$14 = (tab === ptrType$1.nil && $throwNilPointerError(), tab)[7], x$15 = (crc & 255) >>> 0, ((x$15 < 0 || x$15 >= x$14.length) ? ($throwRuntimeError("index out of range"), undefined) : x$14[x$15]))) >>> 0; p = $subslice(p, 8); } crc = ~crc >>> 0; @@ -101258,7 +61510,7 @@ $packages["hash/crc32"] = (function() { if (p.$length === 0) { return crc; } - return simpleUpdate(crc, tab[0], p); + return simpleUpdate(crc, $indexPtr(tab, 0, ptrType), p); }; ieeeInit = function ieeeInit$1() { if (archAvailableIEEE()) { @@ -101425,7 +61677,7 @@ $packages["hash/crc32"] = (function() { _i = 0; while (true) { if (!(_i < 256)) { break; } - x$1 = (x = _ref, ((_i < 0 || _i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[_i])); + x$1 = (x = (_ref === ptrType.nil && $throwNilPointerError(), _ref), ((_i < 0 || _i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[_i])); b = appendUint32(b, x$1); _i++; } @@ -102025,7 +62277,7 @@ $packages["github.com/gopherjs/gopherjs.github.io/playground/internal/snippets"] return $pkg; })(); $packages["github.com/gopherjs/gopherjs.github.io/playground/internal/undoRedo"] = (function() { - var $pkg = {}, $init, common, time, UndoRedoStack, undoRedoStackImp, stateChange, ptrType, sliceType, ptrType$1, ptrType$2, sliceType$1, sliceType$2, ptrType$3, funcType, NewStack, newState, diffTrim, joinStates, revertChange, joinRunes, min; + var $pkg = {}, $init, common, time, UndoRedoStack, undoRedoStackImp, stateChange, ptrType, sliceType, ptrType$1, ptrType$2, ptrType$3, sliceType$1, sliceType$2, funcType, NewStack, newState, diffTrim, joinStates, revertChange, joinRunes, min; common = $packages["github.com/gopherjs/gopherjs.github.io/playground/internal/common"]; time = $packages["time"]; UndoRedoStack = $newType(8, $kindInterface, "undoRedo.UndoRedoStack", true, "github.com/gopherjs/gopherjs.github.io/playground/internal/undoRedo", true, null); @@ -102074,10 +62326,10 @@ $packages["github.com/gopherjs/gopherjs.github.io/playground/internal/undoRedo"] ptrType = $ptrType(stateChange); sliceType = $sliceType(ptrType); ptrType$1 = $ptrType(time.Location); - ptrType$2 = $ptrType(sliceType); + ptrType$2 = $ptrType(undoRedoStackImp); + ptrType$3 = $ptrType(sliceType); sliceType$1 = $sliceType($Int32); sliceType$2 = $sliceType(sliceType$1); - ptrType$3 = $ptrType(undoRedoStackImp); funcType = $funcType([], [time.Time], false); NewStack = function NewStack$1() { return new undoRedoStackImp.ptr(sliceType.nil, sliceType.nil, time.Now, new time.Duration(0, 1000000000), new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$1.nil), new common.Selection.ptr(0, 0), ""); @@ -102086,12 +62338,12 @@ $packages["github.com/gopherjs/gopherjs.github.io/playground/internal/undoRedo"] $ptrType(undoRedoStackImp).prototype.PerformUndo = function PerformUndo() { var s; s = this; - return s.performRevert((s.$ptr_undos || (s.$ptr_undos = new ptrType$2(function() { return this.$target.undos; }, function($v) { this.$target.undos = $v; }, s))), (s.$ptr_redos || (s.$ptr_redos = new ptrType$2(function() { return this.$target.redos; }, function($v) { this.$target.redos = $v; }, s)))); + return s.performRevert((s === ptrType$2.nil && $throwNilPointerError(), (s.$ptr_undos || (s.$ptr_undos = new ptrType$3(function() { return this.$target.undos; }, function($v) { this.$target.undos = $v; }, s)))), (s === ptrType$2.nil && $throwNilPointerError(), (s.$ptr_redos || (s.$ptr_redos = new ptrType$3(function() { return this.$target.redos; }, function($v) { this.$target.redos = $v; }, s))))); }; $ptrType(undoRedoStackImp).prototype.PerformRedo = function PerformRedo() { var s; s = this; - return s.performRevert((s.$ptr_redos || (s.$ptr_redos = new ptrType$2(function() { return this.$target.redos; }, function($v) { this.$target.redos = $v; }, s))), (s.$ptr_undos || (s.$ptr_undos = new ptrType$2(function() { return this.$target.undos; }, function($v) { this.$target.undos = $v; }, s)))); + return s.performRevert((s === ptrType$2.nil && $throwNilPointerError(), (s.$ptr_redos || (s.$ptr_redos = new ptrType$3(function() { return this.$target.redos; }, function($v) { this.$target.redos = $v; }, s)))), (s === ptrType$2.nil && $throwNilPointerError(), (s.$ptr_undos || (s.$ptr_undos = new ptrType$3(function() { return this.$target.undos; }, function($v) { this.$target.undos = $v; }, s))))); }; $ptrType(undoRedoStackImp).prototype.performRevert = function performRevert(fromStack, toStack) { var _tuple, fromStack, maxIndex, newState$1, oldCode, oldSel, redoChange, s, toStack, x; @@ -102262,7 +62514,7 @@ $packages["github.com/gopherjs/gopherjs.github.io/playground/internal/undoRedo"] } return b; }; - ptrType$3.methods = [{prop: "PerformUndo", name: "PerformUndo", pkg: "", typ: $funcType([], [common.Selection, $String, $Bool], false)}, {prop: "PerformRedo", name: "PerformRedo", pkg: "", typ: $funcType([], [common.Selection, $String, $Bool], false)}, {prop: "performRevert", name: "performRevert", pkg: "github.com/gopherjs/gopherjs.github.io/playground/internal/undoRedo", typ: $funcType([ptrType$2, ptrType$2], [common.Selection, $String, $Bool], false)}, {prop: "AddBreak", name: "AddBreak", pkg: "", typ: $funcType([], [], false)}, {prop: "RecordSelectionChange", name: "RecordSelectionChange", pkg: "", typ: $funcType([common.Selection], [], false)}, {prop: "RecordCodeChange", name: "RecordCodeChange", pkg: "", typ: $funcType([common.Selection, $String], [], false)}]; + ptrType$2.methods = [{prop: "PerformUndo", name: "PerformUndo", pkg: "", typ: $funcType([], [common.Selection, $String, $Bool], false)}, {prop: "PerformRedo", name: "PerformRedo", pkg: "", typ: $funcType([], [common.Selection, $String, $Bool], false)}, {prop: "performRevert", name: "performRevert", pkg: "github.com/gopherjs/gopherjs.github.io/playground/internal/undoRedo", typ: $funcType([ptrType$3, ptrType$3], [common.Selection, $String, $Bool], false)}, {prop: "AddBreak", name: "AddBreak", pkg: "", typ: $funcType([], [], false)}, {prop: "RecordSelectionChange", name: "RecordSelectionChange", pkg: "", typ: $funcType([common.Selection], [], false)}, {prop: "RecordCodeChange", name: "RecordCodeChange", pkg: "", typ: $funcType([common.Selection, $String], [], false)}]; UndoRedoStack.init([{prop: "AddBreak", name: "AddBreak", pkg: "", typ: $funcType([], [], false)}, {prop: "PerformRedo", name: "PerformRedo", pkg: "", typ: $funcType([], [common.Selection, $String, $Bool], false)}, {prop: "PerformUndo", name: "PerformUndo", pkg: "", typ: $funcType([], [common.Selection, $String, $Bool], false)}, {prop: "RecordCodeChange", name: "RecordCodeChange", pkg: "", typ: $funcType([common.Selection, $String], [], false)}, {prop: "RecordSelectionChange", name: "RecordSelectionChange", pkg: "", typ: $funcType([common.Selection], [], false)}]); undoRedoStackImp.init("github.com/gopherjs/gopherjs.github.io/playground/internal/undoRedo", [{prop: "undos", name: "undos", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "redos", name: "redos", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "getTime", name: "getTime", embedded: false, exported: false, typ: funcType, tag: ""}, {prop: "joinDur", name: "joinDur", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "lastChange", name: "lastChange", embedded: false, exported: false, typ: time.Time, tag: ""}, {prop: "lastSel", name: "lastSel", embedded: false, exported: false, typ: common.Selection, tag: ""}, {prop: "curCode", name: "curCode", embedded: false, exported: false, typ: $String, tag: ""}]); stateChange.init("github.com/gopherjs/gopherjs.github.io/playground/internal/undoRedo", [{prop: "prefix", name: "prefix", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "suffix", name: "suffix", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "oldCode", name: "oldCode", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "newCode", name: "newCode", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "oldSel", name: "oldSel", embedded: false, exported: false, typ: common.Selection, tag: ""}, {prop: "newSel", name: "newSel", embedded: false, exported: false, typ: common.Selection, tag: ""}]);